Реализация полного RSA в Python

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

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

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

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

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

10
задан Kevin C 1 February 2012 в 08:50
поделиться