Le coppie di chiavi vengono utilizzate per due cose:
- Crittografia di un valore segreto per la crittografia simmetrica
- Firma dei dati per la convalida
Entrambi RSA e DH si basano su algoritmi asimmetrici. Quindi abbiamo due casi per uno scambio sicuro.
RSA
Alice firma un messaggio a Bob e crittografa il messaggio con la chiave pubblica di Bob. Invia un messaggio a Bob. Bob decripta con la sua chiave privata. Verifica la firma per assicurarsi che Alice l'abbia inviata. Il messaggio sarà una chiave di crittografia simmetrica. Questo è ciò che viene utilizzato per proteggere la connessione.
DH
Lo scambio Diffie Hellman si basa su due entità separate che generano un valore segreto. Attraverso alcuni matematica magica sono entrambi in grado di generare un valore segreto comune. Questo segreto comune è ciò che viene usato come una chiave simmetrica o per derivare le chiavi simmetriche. Ma questi valori segreti generati da ciascun lato vengono generati al momento del bisogno. Non hanno un'identità associata a loro.
L'ultima parte è il motivo per cui potresti aver bisogno di entrambi. Usando RSA puoi avere una coppia di chiavi che farà sia la crittografia che la firma. Con DH esegui solo la crittografia, non esiste un meccanismo di firma . Quindi hai bisogno di un certificato RSA per poter convalidare i dati DH che stai inviando.
Quindi perché usare Diffie Hellman? Perché DH è la base per Perfect Forward Secrecy. Che è spiegato meglio in questa risposta .