¿Podría haber estándares de cifrado que descansen en un problema NP-hard distinto de la factorización entera?

No existe un criptosistema cuya seguridad sea equivalente a un problema NP-hard. Ver ¿Están los problemas de descifrado involucrados en los algoritmos de criptografía asimétrica actuales NP-Complete? En particular, no se cree que la factorización de enteros sea NP-hard.

Sin embargo, hay varios problemas difíciles que se utilizan además de la factorización. El ejemplo más común es el problema de logaritmo discreto (DLP) y sus primos, los problemas de Diffie-Hellman (CDH, DDH, etc.). El problema del logaritmo discreto es más o menos: dado [matemática] g [/ matemática] y [matemática] g ^ x [/ matemática] en algún grupo (digamos, los enteros distintos de cero modulo algún primo, o una curva elíptica), para encontrar el exponente [matemáticas] x [/ matemáticas].

Los problemas de Diffie-Hellman son cosas como: dado [matemáticas] g, g ^ x, g ^ y [/ matemáticas], calcular [matemáticas] g ^ {xy} [/ matemáticas]. Los problemas de Diffie-Hellman se pueden resolver si conoce el registro discreto, y si bien esa es la mejor manera de resolverlos, no podemos demostrar que sea el mejor. Esto es algo así como que el problema RSA (encontrar un e mod raíz N ) no es lo mismo que factorizar, pero la gente dice “factorizar” porque esa suele ser la mejor manera de resolverlo.

Hay otros problemas para otros criptosistemas sofisticados: resolver ciertas ecuaciones en muchas variables, o encontrar los vectores más cortos que no sean cero en una red, o eliminar el ruido de ciertos tipos de sistemas de codificación. Ninguno de estos se usa ampliamente, pero pueden ser importantes si se inventa una computadora cuántica, y mientras tanto se usan en ciertos nichos.

Luego, por supuesto, están los problemas más ad-hoc, como “dado y, encuentre alguna x tal que SHA256 (x) = y”.

More Interesting

Cómo implementar un algoritmo técnico en papel desde cero en C ++ o MATLAB

¿Cuál es la diferencia entre recursividad e iteración?

¿Cómo construiría una estructura de datos compartidos para un alto rendimiento y disponibilidad?

¿Qué tan difícil es implementar un sitio web de reserva de boletos con un volumen máximo de 1 millón de boletos por hora durante ciertas horas del día?

¿El aprendizaje automático es todo sobre software? ¿Qué tipo de hardware se requiere para simular algoritmos de aprendizaje automático?

¿Por qué la notación Big-O es una forma muy útil de analizar la complejidad del algoritmo?

Si hay una matriz de 101 números que consiste en números del 1 al 100 con el número repetido, ¿cómo encuentra el número repetido en el número mínimo de iteraciones (en el programa C)?

¿Cuál es el algoritmo para la eliminación en un árbol B +?

¿Cuáles son los ejemplos de aplicación de la estructura de datos gráficos en la programación real?

¿Dónde puedo encontrar a alguien dispuesto a enseñarme estructura de datos y algoritmos de forma gratuita o a un costo muy barato?

¿Cuál es la complejidad del tiempo para la escalera de palabras?

Si podemos ordenar datos usando SQL, ¿por qué necesitamos estudiar diferentes algoritmos de ordenación?

¿Cómo implementas quicksort en c? Sé que hay respuestas disponibles en línea, pero estoy buscando idealmente la forma más elegante.

¿Cuál es el mejor algoritmo de cifrado real utilizado en el almacenamiento de datos basado en hardware?

Cómo escribir un programa para ingresar una cadena e imprimir el número de caracteres en minúscula y mayúscula en la cadena