Multiplicación Escalar en Curvas Koblitz: Arquitectura en Hardware

Anuncio
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
Descargar