OpenPGP.js cifrado determinista?

0

Estoy cifrando algo con una clave pública generada usando la curva ed25519, con OpenPGP.js. Va algo como esto:

var options = {
    data: str,
    publicKeys: publicKeys,
    armor: false
};

openpgp.encrypt(options).then(function(ciphertext) {
    var bytes = ciphertext.message.packets.write();
});

Por lo que puedo observar, la salida es determinista, es decir, es la misma salida cada vez sin un componente aleatorio. Estoy explotando este hecho en el diseño de mi base de datos, por lo que necesito que sea siempre determinista.

¿Es esto algo que puedo asumir? ¿Está esto documentado en alguna parte? ¿Es un comportamiento correcto para OpenPGP?

Tengo dudas ahora porque esta publicación especifica que debería tener un componente aleatorio: ¿Encriptar el mismo archivo con GnuPG y la misma clave producirá el mismo texto cifrado?

    
pregunta HelloWorld 06.05.2018 - 15:06
fuente

1 respuesta

0

Debería tener un componente aleatorio. La forma en que normalmente funciona el cifrado con claves asimétricas es que genera una clave AES aleatoria, cifra los datos utilizando AES y luego cifra la clave aleatoria con su clave asimétrica. Esto se hace por razones de rendimiento. Sin embargo, dado que la clave es aleatoria cada vez, el texto cifrado resultante debe ser diferente cada vez. No estoy seguro de por qué no está en su caso.

    
respondido por el Peter Harmann 06.05.2018 - 15:09
fuente

Lea otras preguntas en las etiquetas