È possibile creare una nuova chiave per la crittografia simmetrica per ciascun messaggio piuttosto che negoziare una sessione a lunga vita?

2

Il normale metodo di fornire un canale crittografato sembra negoziare una chiave di sessione (usando Diffie Hellman o simili), quindi usare questa chiave per una sessione di lunga durata. Anche IPSec basato sul messaggio negozia prima una chiave che viene poi utilizzata per molti singoli messaggi.

Quali sono le ragioni per cui invece ogni singolo messaggio deve essere crittografato utilizzando un cifrario simmetrico, con la sua chiave di crittografia una sola derivata dal messaggio, utilizzando Diffie Hellman, crittografato usando RSA ecc.? È semplicemente dovuto a una maggiore complessità computazionale nel derivare questa chiave rispetto alla decrittografia del cifrario simmetrico usando una chiave conosciuta, o ci sono altri motivi per questo?

    
posta Amanda West 07.01.2015 - 23:40
fonte

1 risposta

1

Il motivo principale è che non è necessario: non c'è un vero motivo per cui vorrebbe creare una nuova chiave per ogni messaggio, perché l'utilizzo di una chiave per tutti i messaggi è perfettamente sicuro con i moderni algoritmi di crittografia . Sebbene non sia possibile utilizzare una sola chiave per troppi dati, con AES "troppo" è 256 exabyte (ovvero circa 256 milioni di terabyte), che è di gran lunga più di quanto effettivamente si utilizza una sessione chiave per. L'uso di una chiave per un'intera sessione non rende più facilmente più facile per un utente malintenzionato recuperare la chiave, per sessioni realistiche.

Non sono sicuro di cosa intendi con "derivare una chiave usando Diffie-Hellman" o "crittografato usando RSA", ma presumo tu voglia dire rinegoziare la chiave di ogni messaggio (cioè entrambe le parti comunicano negoziare una nuova chiave, "derivare" è una strana parola da usare, perché generalmente si riferisce a qualcosa calcolato su un lato senza dover parlare all'altro capo). Rinegoziare una chiave per ogni messaggio non è fatta perché è una perdita di tempo. La negoziazione delle chiavi richiede alcuni messaggi avanti e indietro, ed è un po 'lenta (coinvolge almeno un algoritmo asimmetrico, e un tratto comune degli algoritmi asimmetrici è che sono lenti).

Per i tasti che derivano , mentre è possibile, non ce n'è davvero bisogno e di nuovo aggiunge complessità. Non è possibile ricavare la chiave per un messaggio dal testo in chiaro di quel messaggio per ovvi motivi (l'altra estremità non conosce quel testo in chiaro finché non la decodifica con la chiave). È possibile derivare una chiave univoca per ogni messaggio da una chiave principale (questo è comune nei sistemi di elaborazione dei pagamenti), ma non è necessaria nelle comunicazioni tipiche e non è necessaria per rendere più difficile il ripristino di una chiave di transazione (è stata eseguita in questo modo che il ripristino di una chiave di transazione non consente di decrittografare tutte le transazioni).

    
risposta data 08.01.2015 - 00:26
fonte

Leggi altre domande sui tag