Почему мое 5-уровневое шифрование RSA не работает должным образом? расшифровка не возвращает правильное значение - PullRequest
0 голосов
/ 07 ноября 2019

Когда я дешифрую 5-уровневое зашифрованное сообщение RSA, результатом будет не оригинальное сообщение, хотя я использую правильные закрытые ключи и правильные закрытые ключи

Я уже пробовал играть с целыми числами и количествомшифровки. Это работает, если я шифрую только один раз

import Crypto
from Crypto.PublicKey import RSA
from Crypto import Random
import ast

publickeys = []
privatekeys = []

for i in range (0,5):
    random_generator = Random.new().read
    key = RSA.generate(1024, random_generator)
    privatekeys.append(key)
    publickeys.append(key.publickey())

data = "ack"

for publickey in publickeys:
    data = publickey.encrypt(str(data), 32)

for i in range (1,len(privatekeys)+1):
    data = privatekeys[-i].decrypt(ast.literal_eval(str(tuple(data))))

Нет сообщений об ошибках, но результаты не соответствуют ожиданиям. вместо правильного сообщения "ack" я получаю странную строку.

1 Ответ

0 голосов
/ 07 ноября 2019

Отменить значение None, возвращаемое encrypt;это не поможет вам сохранить его и значительно усложнит декодирование зашифрованной строки.

for publickey in publickeys:
    data, _ = publickey.encrypt(data, 32)

for privatekey in reversed(privatekeys):
    data = privatekey.decrypt(data)
...