Mettre des clés en circulation et garantir leur sécurité est considéré aujourd'hui comme un tâche impossible. Comment échanger des clés sans prendre le risque qu'un message soit décrypé par un tiers non autorisé ? L'idée de la réponse est d'utiliser deux clés : pour chiffrer et pour déchiffrer. Le destinataire du message est la seule personne à détenir , elle diffuse librement. Un message est chiffré avec une fonction en un message . Son destinataire déchiffre le message avec une fonction telle que . Les deux fonctions , , et la clé doivent pouvoir être publiées et tomber entre les mains d'un tiers non autorisé sans qu'il puisse déchiffrer . Autrement dit, il doit être difficile de trouver à partir de , , et .
On peut se représenter ce type de protocole de la façon suivante. Alice veut envoyer un message à Bob. Bob lui envoie une boîte et un cadenas ouvert. Alice place le message dans la boîte et verrouille le cadenas. Maintenant, seul le détenteur de la clé du cadenas peut ouvrir la boîte. S'il s'agit de Bob, lui seul pourra récupérer le message, même Alice ne pourra pas le faire. Le principe le la cryptographie asymétrique est le même :