Реализация полного RSA в Python - PullRequest
10 голосов
/ 01 февраля 2012

В настоящее время я работаю над проектом, использующим python для реализации p2p-связи между двумя (или более) компьютерами. Хотя я довольно хорошо разбираюсь в python, я ни в коем случае не эксперт; программирование и шифрование отнюдь не моя профессия, просто хобби. Однако, работая над этим проектом, я пытался узнать больше о шифровании, а также о сетевом программировании.

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

Ранее я использовал pycrypto для выполнения некоторого базового шифрования / дешифрования в python, и до сих пор мне вполне комфортно пользоваться всеми задействованными инструментами, включая необходимые шифры с открытым ключом. Более того, мне также известно, что у pycrypto есть некоторые недостатки: в нем реализованы только базовые алгоритмы шифрования / дешифрования низкого уровня, необходимые для реализации RSA, и не реализован полный протокол шифрования с открытым ключом. Я также знаю, что pycrypto содержит некоторые другие полезные инструменты, такие как преобразование AllOrNothing, которое можно использовать для заполнения связи и т. Д. Однако мой вопрос: может ли кто-нибудь порекомендовать какие-либо статьи, книги, публикации в блогах, проекты и т. Д., Которые могут помочь мне в моем стремлении реализовать эффективный протокол RSA?

И, наконец, я понимаю, что у криптологов эта тема очень сложная, поскольку реализованные любителями протоколы обычно означают меньшую безопасность в программе. Как я уже отмечал выше, этот проект - просто учебный опыт; если бы я профессионально завершал этот проект, я бы наверняка использовал M2Crypto или какой-нибудь другой профессионально реализованный, безопасный протокол - то есть SSL / TLS. Увы, я просто пытаюсь узнать больше о шифровании, реализуя собственную модель проверенного протокола для создания безопасного соединения между двумя узлами.

Спасибо, Kevin

Ответы [ 3 ]

8 голосов
/ 01 февраля 2012

Взгляните на рецепт Раймонда Хеттингера: Шифрование с открытым ключом (RSA)

4 голосов
/ 19 ноября 2012

Почему бы не взглянуть на мою чистую Python RSA библиотеку? Это может быть именно то, что вам нужно: http://stuvel.eu/rsa

0 голосов
/ 19 ноября 2012

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

Текущая версия PyCrypto (2.6) поддерживает все основные протоколы RSA для подписи и шифрования, а именно те, которые указаны в PKCS # 1 (v1.5, PSS, OAEP).

...