Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
#Круги добра
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Поднимайтесь как можно выше по дереву, собирайте цветы и дарите их близким.
Вас ждут уникальные награды и 22 выгодных промокода!

Пикаджамп

Аркады, Казуальные, На ловкость

Играть

Топ прошлой недели

  • SpongeGod SpongeGod 1 пост
  • Uncleyogurt007 Uncleyogurt007 9 постов
  • ZaTaS ZaTaS 3 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
37
Hlebhueb
Hlebhueb
7 лет назад
Информационная безопасность IT

RSA на домашнем Питоне ⁠⁠

Доброго времени суток, господа пикабушники! Сегодня мы с вами нарушим все правила шифрования в том числе и правило о "Домашнем шифровании".


Как вы уже поняли, я буду хвастаться перед вами собранным на коленке шифраторе и дешифраторе, написанным на Python.


Итак, преступим! 


Начнём с того, что познакомимся с понятием "шифрование".


Шифрование — обратимое преобразование информации в целях сокрытия от неавторизованных лиц. (Честная копипаста с русскоязычного Вики)


Шифрование давно известно людям.

Первым известным применением криптографии принято считать использование специальных иероглифов около 4000 лет назад в Древнем Египте. Криптография египтян использовалась не с целью затруднить чтение, а вероятнее, со стремлением писцов превзойти друг друга в остроумии и изобретательности, а также, с помощью необычности и загадочности, привлечь внимание к своим текстам

RSA на домашнем Питоне  Шифрование, Python, Cryptonator, Длиннопост, Программирование, Программирование на python, Безопасность

Скитала - одно из древнейших известных криптографических устройств

Но вернёмся в современный мир. Для чего сейчас используется криптография? Вы даже не можете представить себе, что она окружает вас везде. Начиная от ваших компьютеров и смартфонов, заканчивая простой ТВ-трансляцией любимого телешоу.


Современные криптографы разделяют 2 основных метода шифрования симметричное и асимметричное.


Симметричное шифрование


Способ шифрования, в котором для шифрования и расшифровывания применяется один и тот же криптографический ключ. Отсюда название — симметричные.


Давайте представим, что я хочу передать вам сообщение с помощью симметричного шифрования.


Возьмём простую фразу:


Шифрование - это здорово!

Теперь переведём её в более простой вид - вид числа.


26-10-22-18-16-3-1-15-10-6 - 31-20-16 9-5-16-18-16-3-16!

(Кстати, такой вид шифрования называется очень просто - "A1Z26" )


Теперь выберем ключ. Пусть им будет число, состоящее из 3 знаков. Будем дублировать его, для получения нужного результата.


Я предлагаю выбрать число 123


Теперь, если мы сложим исходную числовую комбинацию с цифрами ключа вот так:


26-10-22-18-16-3-1-15-10-6-31-20-16-9-5-16-18-16-3-16
++++++++++++++++++++++++++++++++++++++++++
1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3

Получим результат:

27-12-25-19-18-6-2-18-11-8-34-21-18-12-17-20-19-4-18

Теперь, если попробуем расшифровать такую строку - получим тарабарщину:


щкчсребрйжundefinedуркптсгр

Нетрудно догадаться, что чтобы расшифровать такое сообщение нужно будет применить операции в обратной последовательности.

RSA на домашнем Питоне  Шифрование, Python, Cryptonator, Длиннопост, Программирование, Программирование на python, Безопасность

(Циничная копипаста пикчи с Вики)

Асимметричное шифрование


Такое шифрование в разы сложнее.

Давайте предположим, что Я - Алиса, а Вы - Боб. Нам нужно безопасно передать друг-другу сообщение. Но к сожалению, Мы вынуждены передавать сообщения друг-другу через болтливую секретаршу, что любит почитать чужие письма. Что делать? Теперь и ключом-то не обменяешься.


Решение лежит на поверхности - нужно передать что-то такое, благодаря чему Алиса мог бы передать Бобу своё сообщение в обход передачи ключа. И тут нам на помощь приходит математика с её простыми числами.


----------------------------------------------------------------------------------------------------------------------------------------------------------------------

АХТУНГ. ДАЛЬШЕ БУДЕТ БОЛЬНО. МНОГО МАТЕМАТИКИ.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------


Мы воспользуемся алгоритмом RSA. Его создатели Рональд Линн Ривест, Ади Шамир и Леонард Макс Адлеман придумали его и в августе 1977 года в колонке «Математические игры» Мартина Гарднера в журнале Scientific American появилось первое описание криптосистемы RSA.


Читателям также было предложено дешифровать, зашифрованную описанным алгоритмом:


96861477882974310816356989621829961314090575987429823147801394517546222599916951251466223919578122064355124520935708883990555154

За расшифровку была обещана награда в 100 долларов США. По заявлению Ривеста, для факторизации числа потребовалось бы более 40 квадриллионов лет.


Спойлер - фразу смогли разгадать только спустя полгода одновременной работы 16 сотен вычислительных машин. Загаданной фразой оказались слова "брезгливый ягнятник".


Так как же оно работает и почему так сложно разгадать проклятое сообщение?

Дело в том, что асимметричные шифры используют так называемые "Односторонние функции".


Односторонние функции


Односторонняя функция — математическая функция, которая легко вычисляется для любого входного значения, но трудно найти аргумент по заданному значению функции.


Как мы знаем из курса математики 5-6 класса - любое не простое число можно представить  в виде произведения простых множителей.


Итак:


10 = 2*5

20 = 2*2*5


А вот из каких простых множителей состоит число 12547864874?

Вот. Исходя из этого мы предполагаем, что факторизация (разложение числа на произведение простых множителей) куда сложнее, чем то же умножение. 


Чтобы зашифровать сообщение нам придётся не хило попотеть и найти два НУ ОЧЕНЬ простых и длинных числа :)


Теперь, чтобы вычислить наши ключи и текст нам нужно выполнять такие шаги:


-Выбираются два различных случайных простых числа  p и  q заданного размера (например, 1024 бита каждое).


-Вычисляется их произведение  n=p*q, которое называется модулем.


-Вычисляется значение функции Эйлера от числа Ф(n)=(p-1)*(q-1).


-Выбирается целое число e (1<e<Ф(n)), взаимно простое со значением функции Ф(n).

Число e называется открытой экспонентой (англ. public exponent)

Обычно в качествеe берут простые числа, содержащие небольшое количество единичных бит в двоичной записи, например, простые из чисел Ферма: 17, 257 или 65537, так как в этом случае время, необходимое для шифрования с использованием быстрого возведения в степень будет меньше.

Слишком малые значения e, например 3, потенциально могут ослабить безопасность схемы RSA.


-Вычисляется число d, мультипликативно обратное к числу e по модулю.


Число d называется секретной экспонентой. Обычно, оно вычисляется при помощи расширенного алгоритма Евклида.


-Пара {e,n} публикуется в качестве открытого ключа RSA (англ. RSA public key).
-Пара {d,n} играет роль закрытого ключа RSA (англ. RSA private key) и держится в секрете.
RSA на домашнем Питоне  Шифрование, Python, Cryptonator, Длиннопост, Программирование, Программирование на python, Безопасность

Поздравляю, Вы сломали себе мозг и научились RSA шифрованию. Теперь можете сойти с ума.

Ну а теперь вернёмся к моему говнокоду:


Перво-наперво нам понадобится Python 2.7 и библиотека, для шифрования pycryptodome (Для *nix) и pycryptodomex (Для Windows).


Я строго придерживаюсь мнения, что Pikabu - не Habr и не буду расписывать код принципиально. Ниже в ссылках прикреплены ссылки на GitHub. За говнокод и оформление просьба не кидаться камнями - писал для себя и не планировал писать статьи. Если буду разбирать код на Гитхабе - обязательно отпишу. 


Итак, ниже представлены скрин сухого остатка после работы программы:

RSA на домашнем Питоне  Шифрование, Python, Cryptonator, Длиннопост, Программирование, Программирование на python, Безопасность

1 - исходное сообщение

2 - зашифрованное сообщение

3 - публичный ключ

4 - приватный ключ



Спасибо, что зашли послушать лекцию дилетанта. Всегда рад помочь :3



Мультипликативно-

https://ru.wikipedia.org/wiki/%D0%9C%D1%83%D0%BB%D1%8C%D1%82...




Если у вас возникли вопросы - жду у себя в вк: https://vk.com/barashkoff3
  или твиттере: @canusupportme

|

ССЫЛКИ В КОММЕНТАРИЯХ  \ /

Показать полностью 4
[моё] Шифрование Python Cryptonator Длиннопост Программирование Программирование на python Безопасность
22
Feniks912
Feniks912
7 лет назад

Халатное отношение ru.cryptonator.com⁠⁠

Общем просто предостережение людей с чем можете столкнуться
4 недели назад попробовал вывести деньги с кошелька cryptonator, на яндекс деньги платеж вроде прошел, но яндекс отказался отдать деньги и вернул их обратно на счет криптонатора,  собственно на балансе они больше не появились, поддержка молчит уже почти месяц. вот так и живем, будьте осторожны

[моё] Интернет-мошенники Биткоины Cryptonator Текст
3
IAmOldMan
IAmOldMan
7 лет назад

Cryptonator scammers!?!Криптонатор кидалы?!⁠⁠

Здравствуйте, попал в такую ситуацию, решил я вывести свои 0.12 zec, через приложение cryptonator на android, обменял в гривны и нажал вывод на карту... Средства ушли "отправлено" открываю транзакцию "Подтверждено" но не средств на кошельке не на банковской карте нет. Техническая поддержка немы как рыбы...При чём не только от меня, на многих форумах жалуются на пропавшие средства на cryptonator и о мошенничестве, многим не доходят средства на карты!!! На сайте вывода гривны нет, а в приложении есть... но деньги не выводятся.Хотел бы обратится ко всем кто пользуется этим сервисом будьте осторожны сайт мошенники либо показывают себя такими ужасная работа администрации которая ничего не отвечает и связь только по почте.



https://gyazo.com/3bc1f4959edb49e8c8af0e5a3d7f0981


https://gyazo.com/d20b304f67511f1b16803e119c8e2de6



Hello, I got into this situation, I decided to withdraw my 0.12 zec, through the cryptonator application on android, exchanged for UAH and clicked the output to the card ... The funds went "sent" by opening the transaction "Confirmed" but not funds on the wallet are not on the bank card no. Technical support is dumb as a fish ... At what not only from me, on many forums complain about the missing funds for a cryptonator and about fraud, many do not get money for cards !!! On the withdrawal site there is no hryvnia, but there is an application in the application ... but the money is not being deduced. I would like to appeal to all who use this service. Be cautious of the site. The scammers either show themselves to such a terrible job of the administration that nothing answers and the communication is only by mail.

Показать полностью
[моё] Биткоины Электронные деньги Cryptonator Криптонатор Криптовалюта Майнинг Текст Помощь
6
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии