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 è difficilissimo (o meglio computazionalmente molto oneroso) calcolare la chiave privata a partire da quella pubblica. La sicurezza di un algoritmo asimmetrico risiede proprio nella difficoltà a 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.