Optimización de algoritmos de desencriptado sobre GPUs con CUDA
Résumé
En esta memoria se detalla el trabajo realizado para llevar a cabo la optimización de los algoritmos de desencriptado proporcionados por y para el Centro Nacional de Inteligencia Español (CNI) sobre GPUs (Graphics Processing Unit) compatibles con CUDA. Con el fin de cumplir este objetivo, se ha desarrollado un sistema optimizado combinando el lenguaje C y su correspondiente extensión para GPUs compatibles con CUDA, OPENMP, la API de POSIX PThread, y todo ello sobre sistemas operativos GNU/Linux, obteniendo de este modo, el nivel máximo de paralelismo que cada máquina pueda soportar, es decir, aprovechando al máximo el número de hilos de ejecución de la CPU tanto de la GPU. Dicho proyecto partió de un sistema previo ya funcionando y optimizado tanto sobre CPU como GPU, por lo que las optimizaciones realizadas han consistido en exprimir aún más dichos algoritmos. El sistema inicial incluía los algoritmos MD5, SHA-1, RC4 y AES específicos para la desencriptación de las distintas versiones de Office y PDF, entre otros. La dificultad para llevar a cabo las optimizaciones del sistema es la parte más complicada del proyecto, ya que, se intentan aplicar optimizaciones a algoritmos de propósito general (con fines no gráficos) sobre un hardware específico y optimizado para algoritmos gráficos. La implementación de nuestro sistema se debe adecuar a las características de los algoritmos con fines gráficos para poder aprovechar al máximo todos los recursos de los que se dispone en la GPU. Esto es lo que se conoce como GPGPU (General-Purpose Computation on Graphics Hardware). Para concluir, merece la pena mencionar la utilidad de las APIs y técnicas empleadas para la optimización del sistema, el cual es capaz de distribuir de manera equilibrada la carga de trabajo entre las distintas GPUs en función de su capacidad de cómputo (en el caso de que hubiera varias), disminuyendo de este modo, el tiempo de respuesta para obtener el resultado de la desencriptación.
Description
Proyecto Fin de Carrera leído en la Universidad Rey Juan Carlos en el curso académico 2011/2012. Tutor del Proyecto: Marcos García Lorenzo
Colecciones
- Proyectos Fin de Carrera [439]