Sistema de criptoanálisis distribuido
Professor Advisor
Abstract
Un supuesto criptográfico es un problema computacional que se conjetura difícil de resolver con algoritmos que utilizan tiempo y recursos razonables, para los adversarios considerados. Ejemplos de esto son: factorización y encontrar el logaritmo discreto. Estos supuestos permiten definir esquemas criptográficos seguros si los supuestos son verdaderos. En relación a esto, el uso de técnicas tanto computacionales como matemáticas para intentar resolver los problemas computacionales subyacentes a dichos supuestos, se denomina criptoanálisis.
Existen diversos algoritmos criptoanalíticos que intentan resolver supuestos computacionales, tanto de forma secuencial como distribuida. Estos algoritmos deben ser implementados o adaptados por una persona interesada en el tema, ya sea para realizar un análisis sobre éstos, resolver un supuesto construido sobre otro(s), o para algún otro uso relevante para un criptógrafo. Sin embargo, no siempre se tiene a disposición el hardware adecuado para este tipo de trabajos: ejecutar un algoritmo criptoanalítico sobre entradas de muchos bits (el caso típicamente interesante) en un computador de escritorio, puede resultar infactible. Por otro lado, si es que se tuviera, por ejemplo, un cluster a disposición del investigador, el acceso a éste podría ser complejo y poco adecuado, dificultando el trabajo a realizar. Es por esto que se intenta buscar una solución que permita al criptógrafo enfocarse en lo importante de la investigación, que permita implementar un algoritmo distribuido de manera simple, modular e independiente del hardware.
Este trabajo se separó en dos partes: desarrollo de una plataforma web, y configuración de un cluster en Amazon Web Services. En la plataforma web se implementó: un login que permitiese autentificar a los usuarios, en donde un administrador puede crearlos; un sistema de resolución de problemas computacionales; una manera sencilla para agregar otros problemas; un mecanismo para que un usuario pueda implementar algoritmos personalizados; y un sistema que permite ver el estado de las tareas. Con respecto a la configuración del cluster, se implementaron algoritmos distribuidos para resolver algunos de los problemas computacionales más conocidos, los cuales permiten: factorizar un número; encontrar el logaritmo discreto en el grupo Z_p^*, y en el grupo de las curvas elípticas sobre F_p, donde p es primo; encontrar una colisión y preimagen de una función de hash.
Con esta solución se llegó a una aplicación que alcanzó los objetivos propuestos, pues un usuario tiene un acceso relativamente fácil al sistema (aunque filtrado por un encargado), puede ejecutar de forma inmediata algoritmos criptoanalíticos sin tener que implementarlos y puede ejecutar algoritmos criptoanalíticos personalizados que le otorgan una mayor flexibilidad sobre las operaciones disponibles.
General note
Ingeniero Civil en Computación
Identifier
URI: https://repositorio.uchile.cl/handle/2250/116666
Collections
The following license files are associated with this item: