Resumen Un sistema hardware-software es aquel en el que coexisten por un lado un procesador programable convencional y por otro lado un circuíto integrado de aplicación específica. Para una aplicación dada, el circuíto en hardware específico normalmente se encarga de ejecutar la porción que consume el mayor tiempo de ejecución, mientras que el procesador convencional ejecuta la parte restante, de este modo se consigue mejorar el desempeño de tal aplicación. Algunos algorítmos criptográficos presentan características que pueden ser aprovechadas al ejecutarse en una implementación de este tipo. Dichas características son: la realización de operaciones lógicas a nivel de bits y la aplicación repetitiva de dichas operaciones, como es el caso del algorítmo DES utilizado como medio para este estudio. Iniciando de una aplicación escrita puramente en software, el problema consiste en detectar la sección de código que irá implementada en hardware y la sección de código que se implementará en software. En este trabajo de investigación se propone una metodología para localizar la sección crítica, partiendo como ejemplo de un algoritmo DES en C y generar una aplicación de tipo hardware-software. Se presentan los resultados obtenidos en cada etapa de desarrollo propuesto, hasta llegar a implementar los circuitos digitales correspondientes al hardware, usando VHDL y un dispositivo FPGA para cada una de las implantaciones de los circuitos. Se delinea una estrategia para comunicar el sistema en hardware con el software y finalmente se presenta un análisis de aceleración obtenido por la implementación en hardware por su similar en software. Abstract In a hardware-software system a conventional programmable processor and an ASIC (Application Specific Integrated Circuit) work together. For a specific application, the circuit usually executes the hardest part, in terms of execution time, while the conventional processor executes the rest. In this way, it is possible to improve the performance. For FPGA implementations, it is possible to take advantage of the inherent characteristics of cryptographic algorithms. The execution of logic operations at bit-level and the n iterations of these operations: DES algorithm is a good example of this, and we used it as a case-of-study in this project. Starting from a pure software application, the main problem addresed in this word is to detect the code section to be implemented in hardware and the section that will remained in the software. Through this research we proposed a methodology to locate the critical section of C code in the DES algorithm and from there to derive a hardware-software implementation. The results obtained in every phare of the project are shown. It the last stage we implemented the digital circuits using VHDL and a FPGA. We show resources used by FPGA and the performance obtained for each implementation. We also outlined a strategy to communicate both hardware and software system. Finally we compare the acceleration of both implementations, in hardware vs. pure software.
|
||||