Tengo una clave privada 2048 que puedo usar para descifrar 2056 bits de datos encriptados. Salgo de 128 bits de datos sin cifrar. He verificado que esta información es correcta. (No sé el comando de cifrado original).
openssl rsautl -decrypt -inkey private.pem -in data.2056bits.enc.bin -out data.128bits.dec.bin
Supongo que la reducción de la entrada de 2056 bits a la salida de 128 bits se realiza mediante algún tipo de relleno.
Lo que me gustaría hacer ahora es revertir el descifrado. Cifrando datos.128bits.dec.bin me gustaría terminar con los mismos datos.2056bits.enc.bin con los que comencé. Pensé que las siguientes líneas harían esto:
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
Sin embargo, data.2056bits.enc.bin es diferente al con el que empecé.
Sin embargo, es un cifrado válido. Puedo hacer un
openssl rsautl -decrypt -inkey private.pem -in data.2056bits.enc.bin -out data.128bits.dec.bin
de nuevo y termina con los mismos datos.128bits.dec.bin.
¿En qué me equivoco? ¿Puede haber 2 datos diferentes.2056bits.enc.bin que produzcan los mismos datos.128bits.dec.bin?