Найти - Пользователи
Полная версия: Шифрование rsa
Начало » Python для новичков » Шифрование rsa
1 2 3 4
cutwater
py.user.next
Из приватного ключа можно сделать публичный ключ, а из публичного приватный не сделаешь. И публичный короче приватного получается.

Если известны параметры, то да. Поэтому если обратить внимание на RFC описывается два формата записи (представления) приватного ключа. Из пары (n, d) публичный ключ не восстановить. Нужно хранить параметры (p, q), использованные для генерации ключей.

py.user.next
Я в openssl проверил, она не хочет использовать приватный ключ как публичный, а публичный - как приватный.

А как проверяли? У openssl есть команда rsautl, которая имеет флаги:

-sign
-verify
-encrypt
-decrypt

два для ЭЦП и два для шифрования соответственно.
py.user.next
cutwater
А как проверяли? У openssl есть команда rsautl
Сделал скрипт генерации ключей и скрипт шифрования и расшифровки файла. В архиве скрипты и начальное состояние файлов. Дальше генерятся ключи первым скриптом, потом шифруется и расшифровывается файл вторым скриптом. А дальше всё то же самое, только содержимое приватного и публичного ключа меняются местами (части в base64). И оно не понимает публичный ключ как пригодный для зашифровывания (пишет, что непригодный ключ).
cutwater
Ну это вполне нормальная ситуация, так как openssl реализует стандарт, да и форматы открытого и закрытого ключа отличаются. Можете вывести текстовое представление обоих ключей, чтобы посмотреть из каких компонент он состоит:

 openssl rsa -in key -text

Как-то так. Так же попробуйте проделать операции с флагами -sign и -verify
py.user.next
cutwater
да и форматы открытого и закрытого ключа отличаются. Можете вывести текстовое представление обоих ключей, чтобы посмотреть из каких компонент он состоит:
Да, форматы отличаются, публичный ключ не может вывести, только приватный.
Print public key...
unable to load Private Key
3077510944:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: ANY PRIVATE KEY
Ok

(Добавил скрипт вывода ключей.)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB