En la teoría de la complejidad computacional , un supuesto de dureza computacional es la hipótesis de que un problema particular no se puede resolver de manera eficiente (donde eficientemente generalmente significa "en tiempo polinomial "). No se sabe cómo demostrar la dureza (incondicional) para esencialmente cualquier problema útil. En cambio, los científicos informáticos se basan en reducciones para relacionar formalmente la dureza de un problema nuevo o complicado con un supuesto de dureza computacional sobre un problema que se entiende mejor.
Los supuestos de dureza computacional son de particular importancia en criptografía . Un objetivo principal en criptografía es crear primitivas criptográficas con seguridad demostrable . En algunos casos, se descubre que los protocolos criptográficos tienen seguridad teórica de la información ; el bloc de notas de un solo uso es un ejemplo común. Sin embargo, la seguridad teórica de la información no siempre se puede lograr; en tales casos, los criptógrafos recurren a la seguridad computacional. En términos generales, esto significa que estos sistemas son seguros suponiendo que cualquier adversario esté limitado computacionalmente , como lo están todos los adversarios en la práctica.
Las suposiciones de dureza computacional también son útiles para guiar a los diseñadores de algoritmos : es poco probable que un algoritmo simple refute una suposición de dureza computacional bien estudiada como P ≠ NP .
Los científicos informáticos tienen diferentes formas de evaluar qué supuestos de dureza son más confiables.
Decimos que una suposición es más fuerte que otra cuando implica (y lo inverso es falso o no se sabe). En otras palabras, incluso si la suposición fuera falsa, la suposición podría seguir siendo verdadera y los protocolos criptográficos basados en suposiciones podrían seguir siendo seguros de usar. Por lo tanto, cuando se diseñan protocolos criptográficos, se espera poder demostrar la seguridad utilizando las suposiciones más débiles posibles.
Una suposición de caso promedio dice que un problema específico es difícil en la mayoría de las instancias de alguna distribución explícita, mientras que una suposición de peor caso solo dice que el problema es difícil en algunas instancias. Para un problema dado, la dureza del caso promedio implica la dureza del peor caso, por lo que una suposición de dureza del caso promedio es más fuerte que una suposición de dureza del peor caso para el mismo problema. Además, incluso para problemas incomparables, una suposición como la Hipótesis del Tiempo Exponencial a menudo se considera preferible a una suposición de caso promedio como la conjetura de la camarilla plantada . [1] Sin embargo, para aplicaciones criptográficas, saber que un problema tiene alguna instancia difícil (el problema es difícil en el peor de los casos) es inútil porque no nos proporciona una forma de generar instancias difíciles. [2] Afortunadamente, muchas suposiciones de caso promedio utilizadas en criptografía (incluidos RSA, logaritmo discreto y algunos problemas de celosía) pueden basarse en suposiciones del peor de los casos a través de reducciones del peor de los casos al caso promedio. [3]
Una característica deseada de un supuesto de dureza computacional es la falsabilidad , es decir, que si el supuesto fuera falso, entonces sería posible probarlo. En particular, Naor (2003) introdujo una noción formal de falsabilidad criptográfica. [4] En términos generales, se dice que un supuesto de dureza computacional es falsable si puede formularse en términos de un desafío: un protocolo interactivo entre un adversario y un verificador eficiente, donde un adversario eficiente puede convencer al verificador de aceptar si y solo si el supuesto es falso.
Existen muchas suposiciones de dureza criptográfica en uso. Esta es una lista de algunas de las más comunes y algunos protocolos criptográficos que las utilizan.
Dado un entero compuesto , y en particular uno que es el producto de dos primos grandes , el problema de factorización de enteros es encontrar y (más generalmente, encontrar primos tales que ). Es un problema abierto importante encontrar un algoritmo para la factorización de enteros que se ejecute en tiempo polinomial en el tamaño de representación ( ). La seguridad de muchos protocolos criptográficos se basa en el supuesto de que la factorización de enteros es difícil (es decir, no se puede resolver en tiempo polinomial). Los criptosistemas cuya seguridad es equivalente a este supuesto incluyen el criptosistema Rabin y el criptosistema Okamoto-Uchiyama . Muchos más criptosistemas se basan en supuestos más fuertes como RSA, problemas de residuosidad y ocultamiento de Phi.
Dado un número compuesto , exponente y número , el problema RSA consiste en encontrar . Se supone que el problema es difícil, pero se vuelve fácil dada la factorización de . En el criptosistema RSA , es la clave pública , es el cifrado del mensaje y la factorización de es la clave secreta utilizada para el descifrado.
Dado un número compuesto y enteros , el problema de residuosidad es determinar si existe (alternativamente, encontrar un) tal que
Entre los casos especiales importantes se incluyen el problema de residuosidad cuadrática y el problema de residuosidad compuesta decisional . Como en el caso de RSA, se supone que este problema (y sus casos especiales) son difíciles, pero se vuelven fáciles dada la factorización de . Algunos criptosistemas que dependen de la dificultad de los problemas de residuosidad incluyen:
Para un número compuesto , no se sabe cómo calcular de manera eficiente su función totiente de Euler . La suposición de ocultamiento de Phi postula que es difícil calcular , y además, incluso calcular cualquier factor primo de es difícil. Esta suposición se utiliza en el protocolo PIR de Cachin–Micali–Stadler . [5]
Dados los elementos y de un grupo , el problema del logaritmo discreto pide un entero tal que . No se sabe que el problema del logaritmo discreto sea comparable a la factorización de enteros, pero sus complejidades computacionales están estrechamente relacionadas .
La mayoría de los protocolos criptográficos relacionados con el problema del logaritmo discreto se basan en realidad en el supuesto más fuerte de Diffie-Hellman : dados los elementos del grupo , donde es un generador y son números enteros aleatorios, es difícil encontrar . Entre los ejemplos de protocolos que utilizan este supuesto se incluyen el intercambio de claves Diffie-Hellman original , así como el cifrado ElGamal (que se basa en la variante aún más fuerte de Diffie-Hellman decisional (DDH) ).
Un mapa multilineal es una función (donde son grupos ) tal que para cualquier y ,
Para aplicaciones criptográficas, uno quisiera construir grupos y un mapa tales que las operaciones del mapa y del grupo puedan calcularse eficientemente, pero el problema del logaritmo discreto sigue siendo difícil. [6] Algunas aplicaciones requieren suposiciones más fuertes, por ejemplo, análogos multilineales de las suposiciones de Diffie-Hellman.
Para el caso especial de , se han construido mapas bilineales con seguridad creíble utilizando emparejamiento de Weil y emparejamiento de Tate . [7] En los últimos años se han propuesto muchas construcciones, pero muchas de ellas también se han roto, y actualmente no hay consenso sobre un candidato seguro. [8]
Algunos criptosistemas que se basan en supuestos de dureza multilineal incluyen:
El problema computacional más fundamental en los retículos es el problema del vector más corto (SVP) : dado un retículo , encuentre el vector distinto de cero más corto . La mayoría de los criptosistemas requieren suposiciones más sólidas en las variantes del SVP, como el problema de los vectores independientes más cortos (SIVP) , GapSVP [10] o Unique-SVP [11] .
La suposición de dureza de red más útil en criptografía es para el problema de aprendizaje con errores (LWE): dadas muestras de , donde para alguna función lineal , es fácil aprender usando álgebra lineal . En el problema LWE, la entrada al algoritmo tiene errores, es decir, para cada par con una pequeña probabilidad . Se cree que los errores hacen que el problema sea intratable (para parámetros apropiados); en particular, existen reducciones conocidas del peor caso al caso promedio a partir de variantes de SVP. [12]
Para las computadoras cuánticas , los problemas de factorización y logaritmo discreto son fáciles, pero se conjetura que los problemas de red son difíciles. [13] Esto hace que algunos criptosistemas basados en red sean candidatos para la criptografía post-cuántica .
Algunos criptosistemas que se basan en la dureza de los problemas de red incluyen:
Además de sus aplicaciones criptográficas, los supuestos de dureza se utilizan en la teoría de la complejidad computacional para proporcionar evidencia de enunciados matemáticos que son difíciles de probar incondicionalmente. En estas aplicaciones, se demuestra que el supuesto de dureza implica algún enunciado teórico de la complejidad deseado, en lugar de demostrar que el enunciado es en sí mismo verdadero. El supuesto más conocido de este tipo es el supuesto de que P ≠ NP , [14] pero otros incluyen la hipótesis del tiempo exponencial , [15] la conjetura de la camarilla plantada y la conjetura de los juegos únicos . [16]
Se sabe que muchos problemas computacionales en el peor de los casos son difíciles o incluso completos para alguna clase de complejidad , en particular NP-hard (pero a menudo también PSPACE-hard , PPAD-hard , etc.). Esto significa que son al menos tan difíciles como cualquier problema de la clase . Si un problema es -hard (con respecto a las reducciones de tiempo polinomial), entonces no se puede resolver mediante un algoritmo de tiempo polinomial a menos que el supuesto de dificultad computacional sea falso.
La hipótesis del tiempo exponencial (ETH) es un fortalecimiento de la hipótesis de dureza, que conjetura que no solo el problema de satisfacibilidad booleano (SAT) no tiene un algoritmo de tiempo polinomial, sino que además requiere tiempo exponencial ( ). [17] Una hipótesis aún más fuerte, conocida como la hipótesis del tiempo exponencial fuerte (SETH) conjetura que -SAT requiere tiempo, donde . ETH, SETH y las suposiciones de dureza computacional relacionadas permiten deducir resultados de complejidad de grano fino, por ejemplo, resultados que distinguen el tiempo polinomial y el tiempo cuasipolinomial , [1] o incluso frente a . [18] Dichas suposiciones también son útiles en la complejidad parametrizada . [19]
Se supone que algunos problemas computacionales son difíciles en promedio sobre una distribución particular de instancias. Por ejemplo, en el problema de la camarilla plantada , la entrada es un gráfico aleatorio muestreado, muestreando un gráfico aleatorio de Erdős–Rényi y luego "plantando" una -clique aleatoria, es decir, conectando nodos uniformemente aleatorios (donde ), y el objetivo es encontrar la -clique plantada (que es única whp). [20] Otro ejemplo importante es la Hipótesis de Feige , que es una suposición de dureza computacional sobre instancias aleatorias de 3-SAT (muestreadas para mantener una proporción específica de cláusulas a variables). [21] Las suposiciones de dureza computacional de caso promedio son útiles para probar la dureza de caso promedio en aplicaciones como las estadísticas, donde hay una distribución natural sobre las entradas. [22] Además, el supuesto de dureza de camarilla plantada también se ha utilizado para distinguir entre la complejidad temporal del peor caso polinomial y cuasi-polinomial de otros problemas, [23] de manera similar a la Hipótesis del Tiempo Exponencial.
El problema de cobertura de etiqueta única es un problema de satisfacción de restricciones, donde cada restricción involucra dos variables , y para cada valor de hay un valor único de que satisface . Determinar si se pueden satisfacer todas las restricciones es fácil, pero la Conjetura del Juego Único (UGC) postula que determinar si se pueden satisfacer casi todas las restricciones ( -fracción, para cualquier constante ) o casi ninguna de ellas ( -fracción) es NP-difícil. [16] A menudo se sabe que los problemas de aproximación son NP-difíciles suponiendo UGC; dichos problemas se conocen como UG-difíciles. En particular, suponiendo UGC hay un algoritmo de programación semidefinida que logra garantías de aproximación óptimas para muchos problemas importantes. [24]
Estrechamente relacionado con el problema de la cobertura de etiqueta única está el problema de expansión de conjuntos pequeños (SSE) : dado un grafo , encuentre un conjunto pequeño de vértices (de tamaño ) cuya expansión de aristas sea mínima. Se sabe que si SSE es difícil de aproximar, entonces también lo es la cobertura de etiqueta única. Por lo tanto, la hipótesis de expansión de conjuntos pequeños , que postula que SSE es difícil de aproximar, es una suposición más fuerte (pero estrechamente relacionada) que la conjetura del juego único. [25] Se sabe que algunos problemas de aproximación son SSE-hard [26] (es decir, al menos tan difíciles como aproximar SSE).
Dado un conjunto de números, el problema 3SUM pregunta si existe un triplete de números cuya suma sea cero. Existe un algoritmo de tiempo cuadrático para 3SUM, y se ha conjeturado que ningún algoritmo puede resolver 3SUM en "tiempo verdaderamente subcuadrático": la conjetura 3SUM es la suposición de dureza computacional de que no existen algoritmos de tiempo cuadrático para 3SUM (para cualquier constante ). Esta conjetura es útil para probar límites inferiores casi cuadráticos para varios problemas, principalmente de geometría computacional . [27]