Внедрение полного RSA в Python

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

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

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

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

Спасибо, Кевин

Ответ 2

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

Ответ 3

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

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