Ciascuno degli endpoint ha una propria coppia di chiavi privata e pubblica, ciò che è condiviso è solo la chiave pubblica, ognuno ha la chiave pubblica dell'altro, lo utilizza per crittografare i dati prima di inviarli.
per addizione: in genere gli algoritmi di crittografia RSA o asimmetrica non vengono utilizzati come un algoritmo standalone, vengono utilizzati solo per condividere una chiave di sessione simmetrica, ed ecco come va:
supponiamo che ci siano due endpoint A e B,
A, generates a pair of keys a pirvare and a public one, sends the public one two B.
B, generates a symetric session key, encrypt it with the received public key, and send it back to A.
Ora che A e B hanno una chiave di sessione simmetrica, comunicano usando questo, poiché gli algoritmi di crittografia simmetrica sono molto più veloci di quelli asimmetrici.
la sessione asimmetrica assicura che la chiave della sessione simmetrica sia trasportata in sicurezza.