Un problema di fondo riguarda la distribuzione delle chiavi: mittente e destinatario debbono accordarsi in qualche modo sulla chiave, altrimenti dovrebbero scambiarsi la chiave prima di aver creato i presupposti di una comunicazione sicura, di fatto rendendola insicura.
Si possono pensare cinque modi per uno scambio sicuro:
Consegna fisica da A a B
Consegna fisica da C (fidato per entrambi) a A e B
A e B hanno una chiave e la usano per scambiarsi una nuova chiave
A e B hanno chiavi per comunicare con C, e C assegna la chiave a A e B
A e B contribuiscono entrambi alla creazione di una nuova chiave comune
Alcuni algoritmi a chiave simmetrica:
DES Data Encryption Standard (1977)
Cifrario a blocchi di 64 bit, chiave a 56 bit (piccola per le attuali capacità di calcolo)
3DES Triple DES (1985)
Tre chiavi e tre esecuzioni di DES, chiave a 168 bit
IDEA International Data Encryption Algorithm (1991)
Chiave a 128 bit, usato per PGP
BLOWFISH (1993)
Facile, veloce, necessita di 5kb per girare, chiavi fino a 448 bit
RC5 (1994)
Velocissimo, leggero, lunghezza della chiave variabile, molto sicuro