Как экспортировать ключ Эль-Гамаля в текстовый файл?

Я работал над шифрованием строки и отображением ее как QR-кода (после кодирования строки base64).

Я хочу использовать модуль шифрования закрытого и открытого ключа ElGamal в PyCrypto для шифрования, но проблема в том, что у него нет функции экспорта для сохранения ключа в текстовый файл. Я что-то упускаю? А если нет, то есть ли какой-нибудь умный способ экспортировать его или что-то еще, на что я должен вместо этого взглянуть?

PS. Причина использования ElGamal, а не RSA, заключается в том, что я могу сделать ключи меньше 1024 байтов, что делает код qr меньшего размера и менее сложным.


person user2090916    schedule 26.06.2013    source источник
comment
Размеры ключей Эль-Гамаля не короче RSA. Вы должны изучить ECC (криптографию эллиптических кривых) для более короткого асимметричного размера ключа.   -  person zindorsky    schedule 26.06.2013
comment
Просто быстрая помощь в поиске в Google: на самом деле этот алгоритм называется ElGamal. Обратите внимание на букву «а» вместо «е».   -  person korius    schedule 27.06.2013
comment
768-битные ключи уже взломаны, и атаки методом перебора становятся все быстрее. 1024 бита в настоящее время - это минимум для любой безопасности.   -  person ntoskrnl    schedule 27.06.2013


Ответы (1)


Вы можете использовать доступ к ключевым компонентам Эль-Гамаля напрямую, поскольку они являются членами ключевого объекта.

В Python 2.x можно было сделать следующее, чтобы распечатать компоненты в текстовом файле:

from Crypto.PublicKey import ElGamal
from Crypto.Random import get_random_bytes

key = ElGamal.generate(2048, get_random_bytes)
comps = ('p', 'g', 'y', 'x')
out = "\n".join(["{} = {}".format(comp, getattr(key, comp)) for comp in comps])
print out
person SquareRootOfTwentyThree    schedule 08.07.2013