L'analogia dell'invio della scatola non è abbastanza precisa in nessun algoritmo di chiave pubblica / privata. È solo buono come è qualcosa che potrebbe funzionare nel mondo fisico. Con quello fuori mano, passiamo allo scambio di chiavi Diffie-Hellman.
Diffie Hellman non scambia effettivamente le chiavi, scambia alcune informazioni per generare le chiavi. Tuttavia scambia solo parte di queste informazioni, il resto è tenuto da ciascun utente. Passiamo attraverso, chiameremo i nostri utenti Alice e Bob;):
- Alice e Bob accettano di utilizzare un numero primo come modulo p e una base che è una radice modulo primitiva di p che è g. Queste proprietà matematiche devono essere valide per il problema del logaritmo discreto su cui viene costruita la matematica.
-
Alice e Bob scelgono ciascuno un numero intero che tengono a se stessi, chiamiamoli aeb, quindi ognuno di essi esegue lo stesso calcolo su quel numero intero, prima calcolano g alla potenza del modulo intero p. E lo mandano l'un l'altro.
ga mod p
gb mod p
-
Ora questo è il bit intelligente, né ora è possibile scoprire quale sia l'intero segreto degli altri, ma se prendono quello che hanno dall'altro e lo aumentano al loro intero e calcolano il modulo p di quello, entrambi ottengono lo stesso numero S:
(ga mod p)b mod p = gab mod p
(gb mod p)a mod p = gba mod p
4) Il numero condiviso è ora utilizzato per ricavare qualche chiave di crittografia per ulteriori informazioni.
Senza conoscere uno di questi interi segreti, un utente malintenzionato non può generare lo stesso numero e quindi la stessa chiave. L'algoritmo di Schors su un computer quantistico può risolvere il problema del logaritmo discreto per recuperare quei numeri interi segreti dai dati che sono stati scambiati, ma oltre quello o ottenere la macchina di Alice o Bob per inviarli (nel qual caso è possibile farli inviare la chiave derivata , o i messaggi non criptati inviati / ricevuti invece).
Tuttavia, se tali informazioni non provengono effettivamente dall'altra parte ma dall'attore stesso senza altri controlli (questo è il significato dei certificati SSL / TLS), l'utente malintenzionato può decrittografare, crittografare e inoltrare i dati.