La criptografía de clave pública tal como la conocemos hoy se basa en permutaciones de trampillas unidireccionales , y la trampilla es esencial.
Para que un protocolo sea público seguro, necesita una clave disponible para todos y una forma de cifrar un mensaje con esta clave. Obviamente, una vez encriptado, debería ser difícil recuperar el mensaje original conociendo solo su cifrado y la clave pública: el cifrado solo debe ser descifrable con alguna información adicional, es decir, su clave privada.
Con eso en mente, es fácil construir un sistema criptográfico primitivo basado en cualquier permutación de trampilla unidireccional.
- Alice le da la permutación unidireccional al público, y mantiene la trampa para ella sola.
- Bob puso su entrada en la permutación y transmitió la salida a Alice.
- Alice usa la trampilla para invertir la permutación con la salida de Bob.
P≠NP , por lo que probar que una función es unidireccional es intratable.
P≠NPNPINPNPNPINP
NPNPNP