Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 19, 2016 10:36:06

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Шифрование rsa

py.user.next
Из приватного ключа можно сделать публичный ключ, а из публичного приватный не сделаешь. И публичный короче приватного получается.

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

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

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

-sign
-verify
-encrypt
-decrypt

два для ЭЦП и два для шифрования соответственно.



Офлайн

#2 Ноя. 19, 2016 12:11:35

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9993
Репутация: +  857  -
Профиль   Отправить e-mail  

Шифрование rsa

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



Отредактировано py.user.next (Ноя. 19, 2016 12:14:46)

Прикреплённый файлы:
attachment rsa.tar.bz2 (381 байт)

Офлайн

#3 Ноя. 19, 2016 12:57:43

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Шифрование rsa

Ну это вполне нормальная ситуация, так как openssl реализует стандарт, да и форматы открытого и закрытого ключа отличаются. Можете вывести текстовое представление обоих ключей, чтобы посмотреть из каких компонент он состоит:

 openssl rsa -in key -text

Как-то так. Так же попробуйте проделать операции с флагами -sign и -verify



Отредактировано cutwater (Ноя. 19, 2016 13:00:11)

Офлайн

#4 Ноя. 20, 2016 01:02:56

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9993
Репутация: +  857  -
Профиль   Отправить e-mail  

Шифрование rsa

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

(Добавил скрипт вывода ключей.)



Отредактировано py.user.next (Ноя. 20, 2016 01:05:18)

Прикреплённый файлы:
attachment rsa2.tar.bz2 (450 байт)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version