Ho una chiave privata 2048 che posso usare per decrittografare 2056 bit di dati crittografati. Ottengo 128 bit di dati non criptati. Ho verificato che questi dati sono corretti. (Non conosco il comando di crittografia originale).
openssl rsautl -decrypt -inkey private.pem -in data.2056bits.enc.bin -out data.128bits.dec.bin
Suppongo che il restringimento da 2056 bit di input a 128 bit di output venga eseguito utilizzando una sorta di padding.
Quello che vorrei fare ora è invertire la decrittazione. Crittografia data.128bits.dec.bin vorrei finire con lo stesso data.2056bits.enc.bin con cui ho iniziato. Ho pensato che le righe seguenti avrebbero fatto questo:
opendssl rsa -in private.pem -pubout > pub.pem
openssl rsautl -encrypt -inkey pub.pem -pubin -in data.128bits.dec.bin -out data.2056bits.enc.bin
Tuttavia data.2056bits.enc.bin è diverso da quello con cui ho iniziato.
È comunque una crittografia valida. Posso fare un
openssl rsautl -decrypt -inkey private.pem -in data.2056bits.enc.bin -out data.128bits.dec.bin
di nuovo e termina con lo stesso data.128bits.dec.bin.
Che cosa non sbaglio? Possono esserci 2 dati diversi.2056bits.enc.bin che producono gli stessi dati.128bits.dec.bin?