Este trabajo de fin de grado, tiene como objetivo principal, comparar el rendimiento de las funciones hash criptográficas SHA-256 y SHA-512, en las arquitecturas hardware CPU y FPGA. Tiene como propósito secundario, servir a un
programador de software, de guía introductoria al diseño de aceleradores hardware en FPGA. Para realizar el análisis de rendimiento, ambas funciones hash
se han implementado en C++, y optimizado para ejecutarse en CPU. Las implementaciones destinadas a la ejecución en FPGA, también se han realizado en
C++, gracias al uso de herramientas HLS, capaces de traducir un lenguaje de alto nivel a otro lenguaje RTL. Las implementaciones para FPGA, están divididas
en dos partes: un código host, que se ejecuta en el procesador y un kernel, que
ejecuta la FPGA y que también ha sido optimizado específicamente para este
hardware, mediante el uso de directivas HLS. Los resultados obtenidos, indican
que el algoritmo SHA-256 obtiene 3,71 veces más rendimiento en FPGA que en
CPU, por otro lado, el rendimiento de SHA-512 es 1,80 veces mejor en FPGA.