Ошибка переполнения с реализацией Python шифрования-дешифрования Эль-Гамаля с PyCrypto - PullRequest
0 голосов
/ 29 мая 2019

В настоящее время я использую библиотеку PyCrypto для реализации шифрования ElGamal для академического задания, и я получаю следующую ошибку:

OverflowError: невозможно вписать int в целое число размером с индекс

from Crypto import Random
from Crypto.Random import random
from Crypto.PublicKey import ElGamal
from Crypto.Util.number import GCD


message = "Hello!"

key = ElGamal.generate(1024, Random.new().read)

while 1:
    k = random.StrongRandom().randint(1, key.p - 1)

    if GCD(k, key.p - 1) == 1:
        break

h = key.encrypt(message, k)

d = key.decrypt(h)
print(d)

Я не уверен, правильно ли я читаю документацию, но я основываю ее на этой странице:

https://www.dlitz.net/software/pycrypto/api/current/Crypto.PublicKey.ElGamal.ElGamalobj-class.html#encrypt

Если у кого-нибудь есть примеры кода правильногореализация я был бы признателен.

1 Ответ

0 голосов
/ 19 июля 2019

Сообщение в вашем случае должно быть целым числом, вы должны преобразовать слово "привет" в целое число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...