Respondo a este hilo antiguo porque es una pregunta muy común e importante, y todas las respuestas aquí son inexactas.
La respuesta breve a la pregunta original es un "NO" inequívoco. No existen esquemas de encriptación conocidos (y mucho menos los de clave pública) que se basan en un problema NP-completo (y, por lo tanto, todos ellos, en reducciones de tiempo polinomial). Sin embargo, algunos están "más cerca" que otros, así que permítanme dar más detalles.
Hay mucho que aclarar aquí, así que comencemos con el significado de "basado en un problema NP-completo". La interpretación generalmente acordada de esto es: "se puede probar que es seguro en un modelo formal particular, suponiendo que no existen algoritmos de tiempo polinomial para problemas NP-completos". Para ser aún más precisos, suponemos que no existe ningún algoritmo que siempre resuelva un problema NP-completo. Esta es una suposición muy segura, porque eso es algo muy difícil de hacer para un algoritmo; aparentemente es mucho más fácil encontrar un algoritmo que resuelva instancias aleatorias del problema con buena probabilidad.
Sin embargo, ningún esquema de cifrado tiene tal prueba. Si nos fijamos en la literatura, con muy pocas excepciones (véase más adelante), los teoremas de seguridad se leen como la siguiente:
Teorema: Este esquema de cifrado es demostrablemente seguro, en el supuesto de que no existe algoritmo de tiempo polinomial para resolviendo instancias aleatorias de algún problema X.
Tenga en cuenta la parte "instancias aleatorias". Para un ejemplo concreto, podemos suponer que no existe un algoritmo de tiempo polinomial para factorizar el producto de dos primos aleatorios de n bits con alguna buena probabilidad. Esto es muy diferente (menos seguro) de suponer que no existe un algoritmo de tiempo polinomial para siempre factorizando todos los productos de dos primos aleatorios de n bits.
El problema de las "instancias aleatorias" frente a las "instancias de los peores casos" es lo que ha provocado la falla de varios de los que respondieron anteriormente. Los esquemas de cifrado del tipo McEliece se basan en una versión aleatoria muy especial de códigos lineales de decodificación, y no en la versión del peor caso real que es NP-completa.
Impulsar más allá de este problema de "instancias aleatorias" ha requerido una profunda y hermosa investigación en informática teórica.Comenzando con el trabajo de Miklós Ajtai, hemos encontrado algoritmos criptográficos donde la suposición de seguridad es una suposición del "peor caso" (más seguro) en lugar de un caso aleatorio. Desafortunadamente, las suposiciones del peor caso son para problemas que no se sabe que son NP completos, y algunas evidencias teóricas sugieren que no podemos adaptarlos para usar problemas NP-completos. Para los interesados, busque "criptografía basada en celosía".
Hay algunos problemas en TCS que se cree que son difíciles en instancias aleatorias con probabilidad no despreciable. La camarilla plantada viene a la mente ... – JeremyKun
¿Merkle-Hellman no está basado en el problema de la mochila binaria (que es un problema de suma subconjunto sujeto a los ataques vectoriales más cortos)? – user13675