Энджи Альбертини (Аnge Albertini), специализирующийся на экспериментах с обратным инжинирингом, упорным трудом сумел подобрать JPEG-изображение, которое при шифровании с использованием алгоритма AES превращается в другое изображение в формате PNG, а при расшифровке использованием алгоритма 3DES становится пустым документом в формате PDF. Секрет подобного превращения заключается в подборе начальных векторов инициализации для AES и 3DES, при которых первый блок исходного файла трансформируется в корректный заголовок форматов PNG и PDF.
from Crypto.Cipher import DES3, AES with open('mrmcd.jpg', "rb") as f: d = f.read() da = AES.new('encryptwithAES!!', AES.MODE_CBC, 'x1axfbKx8emxcbxfdx8cxTxcexcd8 1R').encrypt(d) dd = DES3.new('decryptwithDES3!', DES3.MODE_CBC, 'x05xa4xfblxbbx9b*xf0').decrypt(d) with open("encrypted_aes.png", "wb") as fa: fa.write(da) with open("decrypted_des3.pdf", "wb") as fd: fd.write(dd)
Следует отметить, что это не первый эксперимент такого рода, в прошлом Энджи сумел сформировать файл PNG, который отображал изначальное изображение даже после AES-шифрования.