El criptosistema de mochila Naccache-Stern es un criptosistema de clave pública atípico desarrollado por David Naccache y Jacques Stern en 1997. Este criptosistema es determinista y, por lo tanto, no es semánticamente seguro . Si bien hasta la fecha no ha sufrido fallas, este sistema también carece de seguridad demostrable .
Este sistema se basa en un tipo de problema de mochila . En concreto, el problema subyacente es el siguiente: dados los números enteros c , n , p y v 0 ,..., v n , hallar un vector tal que
La idea aquí es que cuando los v i son primos entre sí y mucho menores que el módulo p, este problema se puede resolver fácilmente. Es esta observación la que permite descifrarlo.
Para generar un par de claves pública/privada
La clave pública es entonces p , n y v 0 ,..., v n . La clave privada es s .
Para cifrar un mensaje de n bits de longitud m , calcule
donde m i es el i- ésimo bit del mensaje m .
Para descifrar un mensaje c , calcule
Esto funciona porque la fracción
es 0 o 1 dependiendo de si p i divide c s mod p .
La seguridad de la función de trampilla se basa en la dificultad del siguiente problema multiplicativo de la mochila : dado que se recupera el . A diferencia de los criptosistemas aditivos basados en la mochila, como Merkle-Hellman , las técnicas como la reducción reticular euclidiana no se aplican a este problema.
El ataque genérico más conocido consiste en resolver el problema del logaritmo discreto para recuperarse de , lo que se considera difícil para un computador clásico. Sin embargo, el algoritmo cuántico de Shor resuelve eficientemente este problema. Además, actualmente (2023), no hay ninguna prueba de que la mochila de Naccache-Stern se reduzca al problema del logaritmo discreto.
El ataque específico más conocido (en 2018) utiliza el teorema del cumpleaños para invertir parcialmente la función sin conocer la trampilla, asumiendo que el mensaje tiene un peso de Hamming muy bajo . [1]