Il sistema a chiave pubblica risulta essere il sistema maggiormente utilizzato dai programmi di crittografia. Innanzitutto tale sistema elimina il problema di generare tante chiavi diverse per quanti sono gli interlocutori ed elimina la necessità di un contatto fisico per scambiare le chiavi in modo sicuro, rendendo così più agevole lo scambio delle chiavi.

Il sistema a chiave pubblica è basato sull'utilizzo di una coppia di chiavi per ogni parte in gioco (mittente e destinatario); il mittente cifra il messaggio da inviare con la chiave pubblica che il destinatario stesso ha distribuito pubblicamente. Il destinatario, una volta ricevuto il messaggio, lo decifra con la propria chiave privata. L'utente può inviare tranquillamente la propria chiave pubblica, in quanto essa serve solamente a crittografare i messaggi a lui destinati; per decifrare il messaggio è necessaria la rispettiva chiave privata, che conosce solo il destinatario della corrispondenza cifrata. Chiave pubblica e chiave privata, saranno tra loro diverse ma complementari: ciascuna si "sposa" esclusivamente con la propria compagna. L'idea fondamentale è quella di creare un algoritmo che permetta la criptazione facendo uso di una chiave, e che operi la decriptazione facendo uso di un'altra chiave, e solo di essa. Quindi il sistema ha bisogno di generare una coppia di chiavi tra di loro intimamente legate. Una di queste chiavi, quella che permette la criptazione, viene resa pubblica da colui che deve ricevere il messaggio: chiunque può usarla per generare un messaggio che sarà comprensibile esclusivamente dal possessore della relativa chiave privata. I possessori della chiave pubblica non possono risalire in alcun modo alla chiave privata; questi possono solo cifrare i messaggi, non decifrarli.

Rispetto al sistema a chiave privata, quello a chiave pubblica è più lento e soprattutto richiede una dimensione molto alta, in numero di bit, per la coppia di chiavi per garantire al messaggio un buon livello di sicurezza.

Ogni persona che comunichi usando questo sistema possiede una sua chiave privata ed una pubblica. La chiave privata dovrà essere custodita gelosamente e non dovrà essere riferita a nessuno, mentre quella pubblica, appunto, dovrà essere diffusa a qualunque persona con la quale si desideri comunicare.

Affinché una persona riesca a comunicare con noi utilizzando un sistema asimmetrico di criptazione è necessario che tale persona:

  1. conosca la nostra chiave pubblica;
  2. scriva in chiaro il messaggio che vuole mandarci;
  3. cifri il messaggio utilizzando la "nostra" chiave pubblica.

A questo punto solo noi, che abbiamo la corrispondente chiave privata, possiamo decifrarlo e leggerlo. Allo stesso modo se noi vogliamo comunicare con un nostro amico/collega, ci faremo dare la sua chiave pubblica, cripteremo il nostro messaggio con questa, e lui lo decripterà utilizzando la sua chiave privata. Badate bene che il testo che noi scriviamo, una volta criptato con la chiave pubblica del destinatario, non potrà essere decodificato nemmeno da noi che l'abbiamo scritto, ma solo dal proprietario della corrispondente chiave privata.

L'enorme vantaggio della crittografia a chiave pubblica rispetto a quella privata è la gestione delle chiavi. Ogni utente dovrà provvedere a gestire un archivio delle chiavi pubbliche delle persone con cui è abituato a comunicare (tale archivio è generalmente chiamato key ring), nessun tipo di precauzione particolare dovrà essere presa al fine di proteggere tale archivio poiché per definizione, esso contiene informazioni pubbliche. La protezione della propria chiave privata, invece, deve essere massima come nel caso degli algoritmi a chiave simmetrica.