Crittografia deterministica OpenPGP.js?

0

Sto crittografando qualcosa con una chiave pubblica generata usando la curva ed25519, con OpenPGP.js. Va qualcosa del genere:

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

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

Da quello che posso osservare, l'output è deterministico - cioè è lo stesso output ogni volta senza un componente casuale. Sto sfruttando questo fatto nel mio progetto di database, e quindi ho bisogno che sia sempre deterministico.

È questo qualcosa che posso assumere? È documentato da qualche parte? È un comportamento corretto per OpenPGP?

Ora mi sento in dubbio perché questo post specifica che dovrebbe avere un componente casuale: Crittografa lo stesso file con GnuPG e la stessa chiave produce lo stesso testo cifrato?

    
posta HelloWorld 06.05.2018 - 15:06
fonte

1 risposta

0

Dovrebbe avere un componente casuale. Il modo in cui la crittografia con le chiavi asimmetriche di solito funziona è che si genera una chiave AES casuale, si crittografa i dati utilizzando AES e quindi si cripta la chiave casuale con la chiave asimmetrica. Questo è fatto per ragioni di prestazioni. Tuttavia, poiché la chiave è casuale ogni volta, il testo cifrato risultante dovrebbe essere diverso ogni volta. Non sono sicuro del motivo per cui non è nel tuo caso.

    
risposta data 06.05.2018 - 15:09
fonte

Leggi altre domande sui tag