![]() |
![]() |
|||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
Un caso controvertido
Como lo mencioné anteriormente, las funciones unidireccionales son cruciales en los esquemas criptográficos, y en ellas, el cálculo de las funciones inversas debe ser “computacionalmente difícil”. En la Teoría de la Complejidad hay diversas nociones de “dificultad”. Hay problemas que de plano son irresolubles o no-computables (por ejemplo los llamados Problema de la Parada o Problema de Post de la Correspondencia) y también, fija una clase de problemas computables, se considera a aquellos a los cuales se reduce cualquier problema en esa clase mediante un procedimiento de conversión dentro de esa clase. Por ejemplo, la clase NP consta de los problemas tales que soluciones hipotéticas de ellas pueden verificarse como soluciones actuales de ellos por programas de computadora que corren en un tiempo polinomial en el tamaño de sus instancias. La clase P consta de los problemas cuyas soluciones son constructibles en tiempo polinomial. Naturalmente, P está contenida en NP, pero no se sabe en la actualidad si esa contención es propia. Uno de los problemas abiertos que se espera sean resueltos en el siglo XXI es decidir si P = NP. Un problema es difícil en la clase NP (o difícil-NP) si cualquier problema en NP se reduce a él en tiempo polinomial. Pues bien, es evidente que el problema de factorización de enteros y el problema del logaritmo discreto están en la clase NP (dadas soluciones hipotéticas se verifica sin esfuerzo alguno si éstas son en realidad soluciones verdaderas). Pero no se sabe a la fecha si acaso son difíciles-NP. Se conocen algoritmos de tiempo exponencial (o subexponencial pero superpolinomial) para resolverlos, pero ni se ha probado que cualquier problema en NP se reduce a ellos en tiempo polinomial, ni tampoco que no existan procedimientos polinomiales para resolverlos efectivamente (en el Cómputo Cuántico se ha diseñado algoritmos polinomiales para resolverlos, pero sus funciones primitivas entrañan una complejidad exponencial cuando se las quiere simular por esquemas clásicos). Así que nos encontramos con que los esquemas criptográficos actuales son robustos de manera “condicional”: Si hubiese un algoritmo polinomial para calcular las inversas de las funciones unidireccionales y éste se descubriese entonces los esquemas dejarían de ser robustos, mas si no hubiese tal algoritmo y esto se probase se habría demostrado que los esquemas son efectivamente robustos. A la fecha, ¡los esquemas usuales son seguros porque “creemos” que lo son!
|
|
|||||||||||||||||||||||||||||||||||
D.R. © Coordinación de Publicaciones Digitales Dirección General de Servicios de Cómputo Académico-UNAM Ciudad Universitaria, México D.F. Se autoriza la reproducción total o parcial de los artículos aquí presentados, siempre y cuando se cite la fuente completa y su dirección electrónica |
||||||||||||||||||||||||||||||||||||