В настоящее время я использую библиотеку 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
Если у кого-нибудь есть примеры кода правильногореализация я был бы признателен.