Multiplicación Escalar en Curvas Koblitz: Arquitectura en Hardware Reconfigurable. Estado del Arte Juan Manuel Cruz Alcaraz 30 de noviembre de 2004 Introducción La busqueda de implementaciones eficientes de algoritmos criptográficos en diversas plataformas ha sido fuente constante de investigación. Una gran cantidad de algoritmos se han presentado, siendo la mayorı́a de estos enfocados a mejorar el desempeño en alguna plataforma en particular, desde implementaciones en software para dispositivos con capacidades de cómputo restringido, hasta implementaciones en hardware bajo esquemas de VLSI y FPGA. Entre la gran diversidad de trabajos presentados, los más importantes para el desarrollo de esta tesis, ya sea por compartir la plataforma de desarrollo (hardware reconfigurable) o por contener propuestas de algoritmos eficientes para aritmética GF (2m ) o aritmética de curvas elı́pticas son los presentados a continuación. Estado del Arte En 1997 Jerome A. Solinas propone un algoritmo para el cálculo de la multiplicación por escalares en puntos sobre una curva elı́ptica [1]. Basandose en la familia de curvas que Koblitz definió, las cuáles permiten una aceleración en los tiempos requeridos gracias a sus caracterı́sticas matemáticas, propone una representación de la multiplicación por un escalar en términos de sucesiones de potencias cuadráticas de las componentes del punto. Debido a que la función que relaciona un número entero con su potencia cuadrada es conocida como mapeo de Frobenius τ , al conjunto de los coeficientes en la sucesión para cada potencia cuadrática es conocida como una expansion τ NAF. La innovación de su método se encuentra en la exclusión de operaciones de duplicado de puntos elı́pticos y encontrando en su lugar potencias cuadráticas de las coordenadas del punto. Debido a la eficiencia con que es posible calcular potencias cuadradas en campos finitos, y en especial en GF (2m ), es posible reducir los tiempos de cálculo de multiplicaciones por escalares en ECC de manera considerable, presentando a su vez una reducción significativa en el número de operaciones de campo necesarias. Solinas reporta en algoritmo, desempeños mejores en un 50 % a los algoritmos presentados hasta el momento de la publicación de su artı́culo. 1 Los algoritmo propuestos en este artı́culo presentan un atractivo muy especial para implementaciones sobre hardware, dado que sobre esta plataforma de desarrollo se tienen algoritmos para calculo de potencias cuadradas muy eficientes. Es por esto que es posible esperar que una implementación en hardware reconfigurable de dichos algoritmos presente desempeños bastante competitivos en comparación con implemetaciones de esta operación elı́ptica usando otros algoritmos. En el 2000 Darrel Hankerson y Julio López presentan un estudio minucioso de implementaciones de algoritmos critptográficos de curvas elı́pticas en software sobre procesadores Intel [2]. Su principal esfuerzo es presentar una selección de algoritmos, que van desde la aritmética de campos finitos hasta operaciones sobre puntos en curvas elı́pticas, siempre enfocandose a las curvas recomendadas por NIST. La implementación de dichos algoritmos toman en cuenta reestricciones particulares de diversas plataformas sobre la cuál se planee la implementación, las cuáles pueden ser desde cantidad de memoria disponible (RAM o ROM), hasta consumo de potencia o ancho de banda. Entre los diversos algoritmos implementados de manera muy eficiente , se presenta una implementación de los algoritmos propuestos por Solinas [1] con modificaciones propuestas por Julio López para obtener mejoras en los tiempos de cálculo. Aunque la selección de algoritmos presentados presentan un rango de plataformas muy amplio para su aplicación, ellos presentan un implementación en C sobre una estación de trabajo Pentium II 400 Mhz como caso de estudio. Aún cuando el artı́culo presentado por Hankerson y López presenta una selección de algoritmos optimizados para su implementación en software, es posible retomar un par de ellos para su implementacion en hardware, siendo el más remarcable una adaptación de uno de los algoritmos de Solinas, presentada por Julio López. En el 2001 Adam Woodbury [3] presenta su tesis de maestrı́a enfocandose en la implementación eficiente de aritmética de curvas elı́pticas para procesadores empotrados. Siendo su principal caso de estudio la implementación eficiente con recursos de cómputo restringidos y de bajos costo, decide escoger como plataformas para el desarrollo de sus implementaciones el microcontrolador Intel 8051, famoso por su uso en tarjetas inteligentes, y el microprocesador Motorolla Dragonball, encontrado el dispositivos PALM. El campo base para el desarrollo de la artimética de campos finitos sobre la cuál se desarrolla la aritmética de puntos sobre curvas 1 elı́pticas es un campo de extensión óptima GF( 28 − 17 7) para procesadores de 8 bits, y 13 GF( 213 − 1 ) para procesadores de 16 bits. Aún cuando el campo base es escogido para perfeccionar el desempeño en procesadores de bajo costo siendo el objetivo de esta tésis el desarrollo sobre hardware reconfigurable, es una referencia valiosa mostrando la diversidad de esfuerzos que se están realizando en la obtención de implementaciones de ECC en diversas plataformas, y su especialización y mejoras en el desempeño a partir de selecciones cuidadosas de los campos base, las curvas elı́pticas y los algoritmos utilizados. En el 2003 F. Rodrı́guez y Ç. K. Koç [6] presentan un estudio minucioso de la implementación de multiplicadores de campo GF (2m ) utilizando la técnica clásica de Karatsuba. Su princi2 pal contribución es la propuesta de una adaptación del algoritmo Karatsuba clásico para su aplicación en polinomios irreducibles con grado m de la forma m = 2k n + d, permitiendole al desarrollador una selección arbitraria del polinomio generador sin desperdiciar innecesariamente recursos valiosos de hardware. También presentan un estudio sobre la factibilidad de aplicar su técnica a partir de una restricción en base al grado del polinomio. Debido a la naturaleza de la propuesta de tésis, este algoritmo es de crucial interés, dado que presenta un método para optimización del uso de recursos de hardware en campos definidos con un polinomio irreducible con grado primo. En el 2004 N. A. Saqib, F.Rodrı́guez y A. Dı́az Pérez [4] presentan una arquitectura en hardware reconfigurable paralela para el cálculo de la multiplicación por escalares en puntos sobre una curva elı́ptica. El dispositivo sobre el cuál se efectúa la implementación de los algoritmos es un Xilinx XCV 3200. El módulo principal sobre el cual se basa la arquitectura es el cálculo de la multiplicación modular utilizando el renombrado algoritmo de Montgomery. El campo seleccionado para realizar los cálculos es GF(21 91). Los tiempos reportados son bastante sobresalientes, siendo capaces de producir una multiplicación de campo en 22 ciclos de reloj a una velocidad de 10 Mhz y, obteniendo finalmente, una multiplicación por escalar elı́ptica en menos de 60 µseg. Este trabajo, es de gran interés para el proyecto propuesto dado que comparten la plataforma de desarrollo (hardware reconfigurable), y es un ejemplo perfecto de las posibilidades que nos presenta el diseño en hardware cuando se explota la paralelización inherente en los algoritmos seleccionados. En el 2003 Jonathan Lutz [5] presenta un diseño sobre hardware reconfigurable de un coprocesador en el cual se implementa la aritmética de curvas elı́pticas necesaria para implementar el algoritmo de firma digital de curvas elı́pticas (ECDSA). Su diseño ha sido optimizado para campos binarios recomendados por NIST y para curvas Koblitz, aunque es capaz de realizar la aritmética sobre un grupo más amplio de ellas. El prototipo presentado es implementado sobre un FPGA Xilinx XCV200E. El principal empeño de la arquitectura es el desempeño de la multiplicación de escalares en puntos de una curva elı́ptica, presentando el uso de algoritmos optimizados para curvas Koblitz en un campo base con el polinomio irreducible de grado 163 recomendado por NIST. Entre estos algoritmo se encuentra el de principal interés en esta propuesta de tesis, el método con expansión τ NAF. El principal interés en este artı́culo es el contar con implementaciones en plataformas semejantes a la propuesta, hardware reconfigurable, para poder comparar desempeños obtenidos en un futuro. Lutz reporta el cálculo de una multiplicación por escalar en curvas elı́pticas en un tiempo de 0.233 msec en curvas genericas y un tiempo de 0.075 msec utilizando curvas Koblitz. 3 Referencias [1] Jerome A. Solinas. “Improved Algorithms for Arithmetic on Anomalous Binary Curves”. Proceedings of Crypto ’97. (1997) [2] Darrel Hankerson, Julio López Hernandez, y Alfred Menezes. “Software Implementation of Elliptic Curve Cryptography Over Binary Field”. Cryptographic Hardware and Embedded Systems - CHES 2000 (2000) [3] Adam D. Woodbury. “Efficient Algorithms for Elliptic Curve Cryptosystems on Embedded Systems”. Thesis submitted to the Faculty of the Worcester Polytechnic Institute. September, (2001) [4] N. A. Saqib, F.Rodrı́guez, A. Dı́az Pérez. “ Reconfigurable Processor for High Speed Point Multiplication in Elliptic Curves”. International Journal of Embedded System. (2004) [5] Jonathan Lutz, “High Performance Elliptic Curve Cryptographic Co-processor”. A thesis presented to the University of Waterloo (2003) [6] F. Rodrı́guez-Henrı́quez and Ç. K. Koç. “On fully paralel Karatsuba Multipliers for GF (2m )”. International Conference on Computer Science and Technology (CST 2003), Cancún México, (2003) 4