Este es el modelo de correos electrónicos encriptados. Así que vea OpenPGP , en particular su implementación de código abierto GnuPG . Con sus notaciones, el nodo B tiene un par de claves pública / privada, y el nodo A conoce la clave pública de B. El nodo A cifra de manera asimétrica el mensaje con la clave pública del nodo B, y solo el nodo B puede descifrarlo, usando su clave privada, que ningún otro nodo lo sabe. Cuando A envía el mensaje, en realidad lo envía a algún servidor de repositorio (el "buzón" de B), que B consultará cuando vuelva a conectarse. El repositorio no tiene una copia de la clave privada de B y, por lo tanto, no puede descifrar el mensaje.
Para el proceso de cifrado , el nodo A solo necesita una copia de la clave pública de B, que es pública , y no cambia; El nodo A puede usar el público de B para cifrar mil millones de mensajes sucesivos sin ningún problema de seguridad. La clave pública de B no se "desgasta" con el uso. El nodo B no necesita estar en línea en ningún momento para que el cifrado funcione.
Hay muchos detalles difíciles de cuidar al diseñar un formato para el cifrado asimétrico, por lo que se recomienda encarecidamente a no que lo haga, y en cambio confíe en algún protocolo existente (como OpenPGP) que Ha sido revisado a fondo por muchos criptógrafos. De manera similar, la implementación también es una parte peligrosa, y no puede probar las fugas de datos involuntarias, por lo que reutilizar un código existente también es un movimiento inteligente.
La parte difícil en el cifrado asimétrico es cómo asegurarse de que el nodo A que se considera "clave pública de B" sea realmente la clave pública de B, no una clave pública falsa cuya clave privada correspondiente sea conocida por el atacante. Dependiendo de su contexto, esta parte de "asegurarse" puede ser tan simple como una configuración única, o tan compleja como una completa PKI .