Resumen Las aplicaciones criptográficas requieren de implementaciones eficientes de aritmética básica sobre campos finitos tales como suma, resta, multiplicación, división, exponenciación y cálculo de raíces, por mencionar algunas, siendo la multiplicación, la operación que requiere mayor atención debido a su costo en recursos y tiempo de ejecución, además de que es la operación más utilizada en la mayoría de los algoritmos criptográficos. En esta tesis centramos nuestro interés en los algoritmos de multiplicación; partiendo del algoritmo original de Karatsuba-Ofman, analizamos algunas de sus variantes y describimos las estrategias que consideramos para diseñar una arquitectura la cual esta basada en una estructura segmentada de k-estados. Implementamos nuestras arquitecturas en dispositivos de hardware reconfigurable en el campo finito binario F2239 con k = 1,...., 3, donde cada estado está compuesto por un multiplicador de 120-bits. Asimismo, se diseño un multiplicador para el campo finito ternario F397 con k = 1,...., 4, donde cada estado esta compuesto por un multiplicador de 49-trits. Nuestras arquitecturas son capaces de cálcular en promedio k multiplicaciones cada 3 ciclos de reloj. En el campo F397 mediante una arquitectura segmentada de 4 estados fue posible calcular más de una multiplicación polinomial por cada ciclo de reloj. Debido a que una de las aplicaciones más relevantes para este tipo de multiplicaciones es el cálculo de emparejamientos bilineales decidimos estudiarlos en esta tesis. Un emparejamiento necesita el cómputo eficiente de un ciclo principal junto con una operación adicional denominada exponenciación final. En ambos módulos se requiere evaluar muchas multiplicaciones. En este trabajo se decidió utilizar como caso de estudio el diseño del módulo de exponenciación final en característica dos. Todos los diseños se implementaron utilizando el lenguaje de descripción de hardware VHDL y se sintetizaron para dispositivos Virtex II-Pro y Virtex 5 de Xilinx. Se ocuparon las herramientas de Xilinx para descripción y simulación. De acuerdo a nuestros resultados de la simulación post-place and route en las FPGAs de Xilinx, nuestros multiplicadores son los más eficientes y nuestra implementación de la exponenciación final resulta ser competitiva con respecto a otros diseños reportados. Abstract Cryptographic applications require efficient implementation of the basic arithmetic finite field operations such as field addition, subtraction, multiplication, division, exponentiation, squaring, square root, cubing and cube root computation. Among the aforementioned arithmetic operations, multiplication is by far the one that has received more attention, mostly because of its crucial role in the aforementioned cryptographic schemes besides the cost of area and time calculation. In this thesis, we focus our attention in parallel subquadratic multiplication algorithms. From the original Karatsuba-Ofman algorithm, we studied some variants recently published and we also describe the strategies that were considered to design our reconfigurable hardware architecture.We decided to use a k-stage pipeline structure. We implemented our architectures in reconfigurable hardware in the binary finite field F2239 with k = 1,..., 3, where each stage is composed of a 120 bit polynomial multiplier unit and over the ternary finite field F397 with k = 1,..., 4, where each stage is composed of a 49 trit polynomial multiplier unit. Our architectures can compute in average k field multiplications every three clock cycles. In the field F397 , our four-stage pipeline design can compute in average more than one field multiplication per clock cycle. Since the most relevant applications of this kind of multipliers lie on bilinear pairing computation, where several field multiplications need to be computed at once, we decided to study it. A bilinear pairing needs the efficient computation of a main cycle and one additional operation called final exponentiation which is required to obtain a unique value. Both modules imply the computation of many multiplications. Therefore, the final exponentiation was considered as a good case of study for our multipliers in characteristic two. All the designs were implemented utilizing the hardware description language VHDL and were also sintetized for Virtex II-Pro and Virtex 5 FPGA devices. The Xilinx tools were utilized for description and simulation. According to our post-place and route results on Xilins FPGAs, our multipliers are the most efficient and our design of final exponentiation is competitive compared to previously published works.
|
||||