¿Cuáles son los impactos de resolver el problema P = NP en la criptología?

Depende.

Lo difícil de romper el crpyto actual es la factorización de números primos. Se sabe que este problema está en NP, pero nadie ha podido encontrar un algoritmo de tiempo polinómico (lo que demuestra que está en P). Tenga en cuenta que nadie ha podido demostrar que es NP-hard (y se cree que no lo es).

Digamos que alguien encontró un algoritmo de tiempo polinómico para un problema como SAT (todos los problemas en NP pueden reducirse a SAT), mostrando así P = NP. La forma en que eso afecta a la criptología depende del algoritmo ahora. Como es polinomial, su complejidad es [matemática] O (n ^ c) [/ matemática] (donde O es la notación O grande yn es la longitud de la entrada). Si c es pequeño (2,5,7 y así sucesivamente), tenemos un problema en criptología, ya que significa que los primos se pueden factorizar rápidamente. Si c es grande (nueve a la potencia de nueve a la potencia de nueve … cien veces) entonces es un resultado inútil para aplicaciones prácticas. Sí, es polinomial, pero el exponente es muy grande, aunque sea una constante.

Digamos que alguien descubrió que no puede haber un algoritmo que resuelva todos los problemas en NP en tiempo polinómico, mostrando así P! = NP. Digamos que ha demostrado que lo más rápido que haremos para resolverlos es [matemática] O (2 ^ {n / 100}) [/ matemática]. Eso no es bueno si quieres romper la criptografía. Sí, es mucho mejor de lo que tenemos hoy en día, pero aumentar n cien veces nos lleva a donde estábamos. Digamos que muestra que el límite inferior para la complejidad de la velocidad de cualquier algoritmo que resuelva los problemas NP más difíciles es [matemática] O (2 ^ {\ log \ log \ log n}) [/ matemática]. Ahora esto es exponencial, pero espere un minuto … en realidad es mucho mejor que el algoritmo que realiza los pasos [math] \ leq d * n [/ math] (para algunos d razonablemente pequeños), ¡incluso para n grande!

Entonces depende de la prueba. Si hay una prueba. También es muy posible que P? = NP no se pueda probar con los axiomas que los científicos y matemáticos tienen actualmente.

Si es cierto, demostraría que cualquier encriptación decodificable por polytime es, en teoría, crackeable por polytime.

Sin embargo, es completamente posible que la prueba no sea constructiva y, por lo tanto, no proporcione un algoritmo de polytime para resolver problemas NP-hard, incluso si demuestra que uno debe existir. En este caso, el cifrado permanecerá seguro hasta que se encuentre un algoritmo real, ya que la información teórica en realidad no lo ayudará a descifrar nada.

Alternativamente, puede ser constructivo, pero con un algoritmo resultante inusualmente ineficiente. No hay garantía de que una prueba teórica de la complejidad sea realmente útil para cualquiera, en cuyo caso aún puede haber garantías de dureza para romper (al menos hasta que se encuentren límites más eficientes).

Hace unos años, leí en un artículo científico que los problemas de NP completo no son lo suficientemente difíciles para la criptografía de todos modos. Con respecto a la criptografía, P = NP no cambiará mucho.

En términos puramente prácticos casi ningún impacto. Un problema de complejidad n ^ 1000 es tan insoluble como cualquier problema de complejidad exponencial. No hará que nuestras computadoras sean más inteligentes o efectivas.

More Interesting

¿Para qué se usan las mónadas en ingeniería de software?

¿Tiene algún consejo para escribir propuestas de negocios que involucren informática teórica?

¿Ser bueno en matemáticas ayuda en la programación?

¿Podríamos usar la definición de integración de suma de Riemann para obtener las integrales de cualquier función polinómica o trascendental?

¿Es posible tomar la construcción del producto para DFA con diferentes idiomas?

¿Qué es un diagrama de máquina de Turing y cómo diseño uno?

¿Qué se necesita para hacer un compilador para C ++?

Cómo lidiar con la frustración de no poder resolver una pregunta sobre matemáticas o ciencias de la computación en sitios web de programación competitivos

¿Por qué las matemáticas son mucho más difíciles que la programación?

Cómo ser bueno en matemáticas para la programación competitiva

¿Cómo es UMass para un estudiante universitario en ciencias de la computación para estudiantes interesados ​​en IA? ¿Con qué otras universidades se compara?

¿Cuál es el propósito de aprender teoría de la computación?

En Java, ¿por qué usar un iterador para iterar a través de LinkedList más rápido que usar un bucle for?

Para los usuarios, ¿se está volviendo Facebook más valioso, útil y digno de más tiempo invertido o menos? ¿Por qué? ¿Hay alguna evidencia de Facebook de que la Ley de Metcalfe es cierta (para n usuarios, el valor de la red aumenta en nxn)?

¿Qué tan importante es el modelado matemático para los científicos de datos?