При реализации шифрования/дешифрования RSA (с использованием python) открытый текст не совпадает с расшифрованным зашифрованным текстом для больших значений открытого текста. Отлично работает для меньших значений для открытого текста (числовое значение).
Ввод: p=53 q=59 e=3 открытый текст = 1000 (закрытый ключ рассчитан как 2011)
Здесь расшифровка дает 1000
как открытый текст, что правильно.
Сейчас если
Ввод: p=53 q=59 e=3 открытый текст = 10000 (закрытый ключ рассчитан как 2011)
Здесь, после расшифровки, вычисленный открытый текст 619
(что должно быть 10000
)
Код для того же здесь,
дешифровать (открытый текст):
зашифрованный текст = (открытый текст**publicKey) % (self.n)
вернуть зашифрованный текст
def расшифровать (зашифрованный текст):
открытый текст = (зашифрованный текст**privateKey) % (self.n)
вернуть открытый текст
Учитывая, что алгоритм будет использоваться для шифрования/дешифрования буквенно-цифрового текста, который будет давать большие числовые значения, какие модификации необходимы, или я что-то упустил?
ps: проверка нескольких значений открытого текста, это может происходить из-за п = 3127
и любой открытый текст больше, чем 3127
не будет создавать исходный открытый текст при расшифровке. Я могу быть не прав.
Как заставить его работать с открытым текстом больше, чем н
, здесь 3127
?