Implementación Eficiente de Algoritmos Ciptográficos en Dispositivos de Hardware Reconfigurable

Implementación Eficiente de Algoritmos Ciptográficos en Dispositivos de Hardware Reconfigurable

Nazar Abbas Saqib
 

Texto completo de la Tesis     

 


Resumen

Conforme nos movemos hacia una sociedad de información, la seguridad se ha convertido en un asunto crucial en áreas como la industria, los negocios y la administración. Las técnicas básicas que se requieren para proteger la información pertenecen al campo de la criptografía. La criptografía aplicada a la seguridad es una herramienta importante para asegurar confidencialidad (en la transmisión y al macenamiento de la información), integridad (no hay cambio que pueda no ser detectado), identificación de fuente (el que envía puede ser identificado), y no repudiación (el que envía no puede negar que envíe un mensaje). Los algoritmos criptográficos están clasificados en dos categorías algoritmos de: llave secreta y algoritmos de llave pública. Los algoritmos de llave secreta o simétrica utilizan una llave secreta para cifrar o descifrar los mensajes. Algunos ejemplos de este tipo de algoritmos son: DES, AES, Serpent, MARS y IDEA. En los algoritmos de llave pública o asimétrica, las llaves se organizan en pares: llave pública y llave privada. Cualquiera puede utilizar la llave pública para cifrar un mensaje, sin embargo, solo quien posee la llave privada puede descifrar este mensaje. RSA y Criptografía de Curvas Elípticas (ECC por sus siglas en inglés) son esquemas criptográficos populares de llave pública. Los algoritmos de llave secreta son rápidos y pueden ser usados para cifrar grandes cantidades de datos. Por otra parte, los algoritmos de llave pública son computacionalmente más demandantes que los algoritmos simétricos pero evitan la necesidad que exista previamente un secreto entre dos objetos que quieren comunicarse. Los algoritmos criptográficos pueden ser implementados en plataformas de software y hardware. Las soluciones criptográficas basadas en software, pueden ser usadas para aplicaciones de seguridad donde el tráfico no es muy demandante y la velocidad de encriptación no es muy alta. Por otro lado, los métodos por hardware ofrecen soluciones veloces para aplicaciones donde el tráfico de datos es más intenso y la gran cantidad de datos requiere una encriptación en tiempo real. Los circuitos VLSI, y los dispositivos FPGAs (Field Programmable Gate Arrays) son dos alternativas para implementar algoritmos criptográficos en hardware. Los FPGAs ofrecen grandes beneficios para la implementación de algoritmos criptográficos al compararlos con las soluciones VLSI por su alta flexibilidad. Debido a que los FPGAs tienen la propiedad de ser reconfigurables, las llaves se pueden cambiar rápidamente. Más aún, las primitivas básicas de la mayoría de algoritmos criptográficos pueden ser eficientemente implementadas en FPGAs. El objetivo principal de esta tesis, es obtener implementaciones de algoritmos criptográficos basadas en dispositivos reconfigurables como los FPGAs que tengan a un alto desempeño sin tener que utilizar altos requerimientos de hardware. Esto es, el objetivo es encontrar un balance adecuado entre el espacio requerido por los circuitos y la rapidez con que se pueden realizar las operaciones de ciframiento y desciframiento. Para cumplir el objetivo de esta tesis se han elegido tres algoritmos de acuerdo a su importancia en aplicaciones de seguridad: Data Encryption Standard (DES) y Advanced Encryption Standard (AES) como algoritmos de llave simétrica, elíptica como algoritmo de llave asimétrica. En primer lugar, se presenta la aritmética sobre campos finitos GF(2m ) dado que constituye la base teórica para el desarrollo de los algoritmos criptográficos elegidos en este trabajo de tesis. Más adelante, se abordaron metas específicas para cada algoritmo. Se desarrollaron guías generales para implementar cifradores de bloque de llave simétrica en plataformas reconfigurables. Se presenta la estructura general y los principios del diseño para cifradores de bloque y se identifican las primitivas básicas en este tipo de algoritmos. Se presentan algunas técnicas utiles de diseño para obtener implementaciones eficientes en dispositivos reconfigurables. Para aplicar tales guías y técnicas se utilizó a DES como caso de estudio y se obtuvo una implementación rápida y compacta para este algoritmo. Por otra parte, se exploraron varias alternativas arquitecturales para la implementación de AES en dispositivos reconfigurables. Tales alternativas se presentan como opciones convenientes para diversas aplicaciones de seguridad. Las arquitecturas diversas desarrolladas para AES fueron optimizadas para obtener alto desempeño, bajo costo o soluciones altamente portables. La eficiencia de los diseños se obtuvo mediante la aplicación de técnicas optimizadas de diseño y aplicando algunas transformaciones a los algoritmos originalmente planteados. Finalmente, se presenta una arquitectura genérica para realizar la multiplicación escalar en curvas elípticas, la operación más importante de ECC. Tal arquitectura fue optimizada para dispositivos reconfigurables (FPGAs) tomando ventaja del máximo nivel de paralelismo que se puede explotar en la multiplicación escalar y mediante un uso eficiente de los recursos de hardware. Combinando las operaciones de la aritmética de campos finitos en GF(2m ) y de la aritmética de curvas formaron bloques básicos para realizar la multiplicación escalar en curvas elípticas. La característica principal entre todos los diseños desarrollados para hardware reconfigurable es el uso de técnicas paralelas para realizar las operaciones básicas de los algoritmos y, de esta manera, reducir el retraso de la ruta crítica del circuito. El consumo bajo de recursos se obtuvo identificando las operaciones comunes en diferentes pasos y reutilizando los bloques básicos. Por otra parte, se buscó hacer un mapeo adecuado a la estructura del dispositivo reconfigurable seleccionado para obtener diseños optimizados para FPGAs. Los resultados mostraron que se obtuvieron diseños para algoritmos criptográficos con un alto desempeño mediante un uso eficiente de los recursos de hardware los cuales son comparables con implementaciones reconfigurables similares que están reportadas en la literatura a la fecha.