I metodi utilizzati tradizionalmente per la crittografia classica erano tutti metodi a chiave simmetrica, basati sull'ipotesi che gli alleati condividessero una chiave nota solo a loro (e per questo detta segreta o anche privata). Quando A vuole spedire a B un messaggio cifrato con un metodo a chiave segreta deve, prima di tutto, fare in modo che B conosca la sua stessa chiave di crittografia, K e, poi, criptare il messaggio con F e K. Quando B riceve il messaggio utilizza F' e K per decriptarlo.
La crittografia a chiave pubblica è un metodo asimmetrico basato sull'esistenza di due diverse chiavi, una utilizzata per criptare e una utilizzata per decriptare. Ciascun utente deve quindi possedere due chiavi, una privata che conosce solo lui e una pubblica che rende nota a tutti. Ovviamente esiste una relazione matematica tra chiave pubblica e chiave privata che deve rendere semplice calcolare la chiave pubblica a partire da quella privata e difficilissimo (o meglio computazionalmente impossibile) calcolare la chiave privata a partire da quella pubblica. La sicurezza di un algoritmo asimmetrico risiede proprio nella difficoltà di individuare la chiave privata, quando si è in possesso di quella pubblica.
Se A vuole inviare un messaggio riservato a B deve dunque procurarsi la chiave pubblica di B (che è disponibile a tutti) e utilizzarla per criptare il messaggio. B sarà l'unico a riuscire a decriptare il messaggio poiché è l'unico in possesso della chiave privata.
I meccanismi di crittografia sono alla base delle diverse forme di certificazione a disposizione su Internet e del funzionamento della firma digitale. Sulla crittografia è disponibile un approfondimento .