Я написал некоторый код, используя библиотеку pycrypt, и, должно быть, я что-то делаю не так, но я не могу понять, что я делаю неправильно. Я могу (почти) дешифровать сообщения с неправильным вектором инициализации, хотя я верю, что следую их примеру.
from Crypto.Cipher import AES
import os
from string import ascii_letters
key, iv = os.urandom(32), os.urandom(16)
cipher = AES.new(key, AES.MODE_CBC, iv)
plaintext = ascii_letters
plaintext += ' ' * (-len(plaintext) % 16) # Padding
ciphertext = cipher.encrypt(plaintext)
cipher = AES.new(key, AES.MODE_CBC, os.urandom(16))
text = cipher.decrypt(ciphertext)
# text[16:] = b'qrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ '
Теперь, кроме первых 16 байтов расшифрованного текста, у вас все правильно расшифровано с совершенно случайным выбором IV. Может ли кто-нибудь помочь мне понять, где я иду не так?