Implementation of Cryptographic Algorithms for High-speed and Constrained Devices



Implementation of Cryptographic Algorithms for High-speed and Constrained Devices

José Abraham Bernal Gutiérrez
 

Texto completo de la Tesis     

 



Resumen

Esta tesis presenta los trabajos desarrollados centrados en la criptografía simétrica y la criptografía de clave pública. Hoy en día, el despliegue de muchos dispositivos con diferentes capacidades da lugar a entornos heterogéneos. Estos entornos deben garantizar la seguridad de los datos recogidos y procesados por los dispositivos en el entorno desplegado. Para proteger los dispositivos en función de sus capacidades, implementamos enfoques criptográficos en distintos proyectos que parten de la criptografía simétrica y de la criptografía de clave pública. El alcance de esta tesis consiste en implementar ambos tipos de criptografía en dispositivos con recursos limitados como la memoria, la velocidad y la potencia y, por tanto, en dispositivos de alta velocidad como las FPGA. Al principio de este trabajo de tesis, presentamos implementaciones de criptografía simétrica. Algunas arquitecturas mostradas participaron en el concurso LWC del NIST para estandarizar la criptograf´ıa ligera para dispositivos con recursos limitados. Por lo tanto, proponemos algunas implementaciones de algoritmos LWC en hardware con un enfoque restringido en FPGAs y las arquitecturas que propusimos basadas en sus algoritmos. Algunas arquitecturas e implementaciones propuestas han logrado situarse entre los veinte primeros puestos de una evaluación comparativa realizada por la Universidad George Mason. Por último, realizamos una implementación software del algoritmo Speedy basado en hardware. Esta implementación utiliza una técnica denominada “bitslice” que consiste en reordenar los bits de datos para que sean procesados lo más rápido posible, mejorando la velocidad y el rendimiento frente a las implementaciones software tradicionales, y consiguiendo un rendimiento aceptable en microcontroladores como la familia ARM, que dispone de recursos limitados y una pequeña cantidad de memoria disponible en comparación con los microprocesadores convencionales. En capítulos posteriores, nos centramos en la criptografía de clave pública y proponemos dos multiplicadores aritméticos centrados en la criptografía de clave pública sobre dos enfoques matemáticos, el primero basado en el esquema RSA con RNS y la implementación general del módulo multiplicador base para mejorar la velocidad y explotar los DSPs disponibles en FPGAs con un enfoque en un multiplicador de propósito general que acepta cualquier número primo de 512 bits. Esta propuesta presenta algunos problemas debido a la generalización de la implementación. Puede utilizar muchos dispositivos si se desea alcanzar altas velocidades; por otro lado, puede utilizar menos y lograr una velocidad menor. El segundo multiplicador utiliza los enteros para realizar las multiplicaciones necesarias en un esquema de criptografía de curvas elípticas ECC centrado en la curva ECC25519; esta segunda propuesta utiliza tres algoritmos de multiplicación el primero es RNS, el método de multiplicación Karatsuba, y la multiplicación del método de la escuela. Comparamos las tres propuestas y presentamos resultados interesantes cuando logramos paralelizar simultáneamente algunas operaciones y procesar múltiples resultados intermedios con arquitecturas dedicadas para conseguir alta velocidad con bajo consumo de recursos.

 

Abstract

This thesis presents the studies that we have developed focused on symmetric cryptography and public-key cryptography. Today, deploying many devices with different capabilities gives rise to heterogeneous environments. These environments must ensure the security of the data harvested and processed by the devices in the deployed environment. To protect the data stored and harvested by the devices, we implement cryptographic approaches into different focuses emanating from symmetric cryptography and public-key cryptography. The scope of this thesis consists of implementing both methods into devices with constrained resources such as memory, speed, and power and, therefore, into high-speed devices like FPGAs. At the beginning of this thesis work, we present symmetric cryptography implementations. Some of the architectures described participated in the NIST LWC contest in standardizing Lightweight cryptography for constrained devices. Therefore, we made some implementations of LWC algorithms on hardware with a constrained focus on FPGAs and the architectures we proposed based on their algorithms. Some developed architectures and implementations were ranked among the first twenty places in a benchmarking performed by George Mason University. Finally, we present a software implementation of the Speedy algorithm, designed for hardware performance, but in software has a poor performance. This implementation uses a technique named “bitslice” which consists of rearranging the data bits to be processed as fast as possible, improving the speed and performance against traditional software implementations, and achieving an acceptable performance on microcontrollers like the ARM family, which has constrained resources and a small amount of memory available compare with conventional microprocessors. In the remaining chapters, we work on public-key cryptography and propose two arithmetic multipliers for use in public-key cryptography on two mathematical approaches, the first based on the RSA scheme with RNS and the general implementation of the base multiplier module to improve the speed and exploit the digital signal processors v (DSPs) available in FPGAs with a focus on a general purpose multiplier which accepts arbitrary 512 bits prime number. This approach has some issues due to the generalization of the implementation. It can use many devices if achieving high speeds is desired; on the other hand, it can use fewer and achieves a lower rate. The second multiplier uses the integers to perform the multiplications needed into a scheme of elliptic curve cryptography ECC focused on the curve ECC25519; this second proposal uses three multiplication algorithms: Residue Numeric system (RNS), the Karatsuba multiplication method, and the schoolbook multiplication. We compared the three proposals and presented exciting results when we could simultaneously parallelize some operations and process multiple intermediate results with dedicated architectures to achieve high speed with low resource consumption.