Paralelización De Los Algoritmos De Cifrado Simétrico AES-CTR Y AES
Total Page:16
File Type:pdf, Size:1020Kb
CENTRO DE INVESTIGACION´ Y DE ESTUDIOS AVANZADOS DEL INSTITUTO POLITECNICO´ NACIONAL UNIDAD ZACATENCO DEPARTAMENTO DE COMPUTACION´ Paralelizaci´onde los algoritmos de cifrado sim´etricoAES-CTR y AES-OTR sobre un kit de desarrollo NVIDIA Jetson TK1 Tesis que presenta Daniel Alberto Torres Gonz´alez Para obtener el grado de Maestro en Ciencias de la Computaci´on Director de la Tesis: Dr. Amilcar Meneses Viveros Co-director de la Tesis: Dr. Cuauht´emoc Mancillas L´opez Ciudad de M´exico Noviembre 2016 CENTRO DE INVESTIGACION´ Y DE ESTUDIOS AVANZADOS DEL INSTITUTO POLITECNICO´ NACIONAL ZACATENCO CAMPUS COMPUTER SCIENCE DEPARTMENT Parallelization of the symmetric cipher algorithms AES-CTR and AES-OTR on a development kit NVIDIA Jetson TK1 Submitted by Daniel Alberto Torres Gonz´alez as the fulfillment of the requirement for the degree of Master in Computer Science Advisor: Dr. Amilcar Meneses Viveros Co-advisor: Dr. Cuauht´emoc Mancillas L´opez Mexico City November 2016 Resumen Actualmente muchas corporaciones y agencias gubernamentales se encuentran investigando nuevas formas de asegurar grandes vol´umenesde informaci´onconsiderada sensible en in- tervalos de tiempo cortos. Para lograr esta tarea se requiere cifrar la informaci´oncon un algoritmo criptogr´afico,el cual puede requerir de operaciones computacionales bastante cos- tosas y por ende degradar el desempe~nodel equipo de c´omputoen el que se ejecuta. La constante demanda de soluciones criptogr´aficaseficientes ha crecido continuamente en di- versas ´areasdurante la ´ultimad´ecada,como consecuencia del uso del Internet. En esta tesis se discuten implementaciones paralelas eficientes de los algoritmos criptogr´aficosAES-CTR y AES-OTR. Tambi´ense discute una optimizaci´ondel modo de operaci´onOTR. Las imple- mentaciones se realizaron sobre un equipo m´ovil,el kit de desarrollo NVIDIA Jetson TK1, que cuenta con una arquitectura para una versi´onmultin´ucleoy una versi´on en muchos n´ucleos.Los resultados obtenidos en la arquitectura m´ovilmuestran una aceleraci´onde 3;92 y un rendimiento de 2;67 Gb/s en el modo de operaci´onCTR, una aceleraci´onde 2;32 y un rendimiento de 1;41 Gb/s en el modo de operaci´onOTR, y una aceleraci´onde 2;91 y un rendimiento de 1;68 Gb/s en la optimizaci´onpropuesta al modo de operaci´onOTR. Adem´as, con la finalidad de demostrar que las implementaciones de los algoritmos paralelos son efi- cientes, se muestran pruebas realizadas sobre un servidor que incluye un microprocesador Intel I7 una tarjeta gr´aficaTesla C2070. Los resultados obtenidos en el servidor muestran una aceleraci´onde 21;105 y un rendimiento de 12;89 Gb/s en el modo de operaci´onCTR, una aceleraci´onde 2;303 y un rendimiento de 2;86 Gb/s en el modo de operaci´onOTR, y una aceleraci´onde 8;86 y un rendimiento de 11;01 Gb/s en la optimizaci´onpropuesta al modo de operaci´onOTR. Al contar con estas nuevas implementaciones los dispositivos que incluyan en sus arquitecturas componentes multin´ucleoy GPU ser´ancapaces de cifrar de una manera m´aseficiente una entrada de bytes proporcionados. Por consiguiente, AES-CTR y/o AES-OTR podr´anrealizar el cifrado de datos considerados sensibles en intervalos de tiempo cortos, permitiendo a otras aplicaciones aprovechar mayormente el uso de CPU como tam- bi´ende GPU, incrementando as´ıla cantidad de informaci´onque puede ser cifrada/descifrada y ser transferida a trav´esde un canal de comunicaci´onsi as´ıse desea. i ii Abstract Nowadays many corporations and government agencies are investigating new ways to protect big amounts of information considered really sensitive in short time intervals. To achieve this task it is required to encrypt the information with a cryptographic algorithm, which may need really expensive computational operations and thus degrade the computer equipment per- formance in which it is executed. The constant demand for efficient cryptographic solutions has increased continuouslly in many diverse areas during the last decade, as consequence of using the Internet. The main motivation of this thesis is to discuss efficient parallel imple- mentations of the cryptographic algorithms AES-CTR and AES-OTR. It is also discussed an optimization for the operation mode OTR. The implementations were done on a mobile device, the development kit NVIDIA Jetson TK1, which includes an architecture for a mul- ticore version and a manycore version. The results obtained on the mobile architecture show a speedup of 3;92 and a throughput of 2;67 Gb/s in the operation mode CTR, a speedup of 2;32 and a throughput of 1;41 Gb/s in the operation mode OTR, and a speedup of 2;91 and a throughput of 1;68 Gb/s in the proposed optimization to the operation mode OTR. Besides, in order to show that the parallel implementations are efficient, we show tests ma- de on a server which includes an Intel I7 microprocessor and a graphic card Tesla C2070. The results obtained on the server show a speedup of 21;105 and a throughput of 12;89 Gb/s in the operation mode CTR, a speedup of 2;303 and a throughput of 2;86 Gb/s in the operation mode OTR, and a speedup of 8;86 and a throughput of 11;01 Gb/s in the proposed optimization to the operation mode OTR. By having these new implementations the devices that include components multicore and GPU in their architectures will be able to encrypt in a most efficient way the provided byte input. Consequently, AES-CTR and/or AES-OTR will be able to encrypt the information considered sentitive in short time inter- vals, allowing other applications to take advantage of the CPU platform as well of GPU, thus increasing the amount of information that can be encrypted/decrypted and transfer through a communication channel. iii iv Agradecimientos - A mi familia (padre, madre, hermano, hermanas, neveu et beau-fr`ere) - A los amigos de generaci´on,del Laboratorio de Idiomas y a Reyna - Al Dr. Amilcar Meneses Viveros por sus recomendaciones en el desarrollo y escritura de la tesis - Al Dr. Cuauht´emoc Mancillas L´opez por recibirme en Francia y brindarme las asesor´ıas necesarias para el pleno desarrollo y escritura de la tesis - A mis sinodales, Dr. Francisco Rodr´ıguezHenr´ıquezy Dr. Luis Gerardo de la Fraga - Al Departamento de Computaci´ondel CINVESTAV-IPN - Al Laboratorio de Idiomas del CINVESTAV-IPN - Al CONACyT por el apoyo otorgado v vi Contenido Resumen I Abstract III Agradecimientos V Lista de acr´onimos IX Lista de figuras XI Lista de tablas XIII Lista de algoritmos XV 1. Introducci´on 1 1.1. Antecedentes . .1 1.2. Planteamiento del problema . .3 1.3. Objetivos . .4 1.3.1. General . .4 1.3.2. Particulares . .4 1.4. Organizaci´onde la tesis . .6 2. SoC Tegra de NVIDIA y el kit Jetson TK1 7 2.1. GPU con arquitectura Kepler GK110/210 . .9 2.1.1. Arquitectura de una unidad SMX . 10 2.1.1.1. Planificador de warps y acceso a registros . 10 2.1.1.2. Instrucci´onaleatoria . 10 2.1.1.3. Operaciones at´omicas . 11 2.1.2. Subsistema de memoria Kepler . 12 2.2. SoC Tegra K1 . 12 2.3. Tarjeta Jetson TK1 . 14 2.3.1. Sistema operativo . 14 2.3.2. Arquitectura . 15 2.3.3. JetPack TK1 . 16 vii 3. Modos de operaci´onde cifradores por bloque 19 3.1. Definiciones . 21 3.2. Modo de Encadenamiento de Bloques de Cifrado . 21 3.3. Modo de Encadenamiento de Bloques de Cifrado en Propagaci´on. 23 3.4. Modo de Retroalimentaci´onCifrada . 24 3.5. Modo de Retroalimentaci´onde Salida . 25 3.6. Modo de Libro de C´odigosElectr´onico . 27 3.7. Modo Contador . 28 3.8. Modo Contador de Galois . 29 3.9. Modo de Dos-Rondas de Desplazamiento . 32 3.10. Resumen de caracter´ısticas. 38 4. Est´andarde Cifrado Avanzado 39 4.1. Definiciones b´asicas. 40 4.2. Transformaciones . 42 4.2.1. Suma de la llave de ronda . 42 4.2.2. Sustituci´onde bytes . 42 4.2.3. Corrimiento de filas . 43 4.2.4. Mezclado de columnas . 44 4.3. Transformaciones inversas . 44 4.4. Expansi´onde llave . 45 4.5. Optimizaci´oncon cajas-T . 46 5. Implementaciones cl´asicas 49 5.1. Variables constantes y estructuras . 49 5.2. Cifrador AES optimizado con cajas-T . 50 5.3. Expansi´onde llave . 52 5.4. AES-CTR secuencial . 52 5.5. AES-OTR secuencial . 54 6. Algoritmos paralelos y sus implementaciones 59 6.1. AES-CTR multin´ucleo . 59 6.2. AES-CTR CUDA . 61 6.3. AES-OTR multin´ucleo . 63 6.4. AES-OTR CUDA . 67 6.5. Optimizaci´onde AES-OTR . 70 7. Ejecuci´onde algoritmos paralelos y sus resultados 75 7.1. Almacenamiento y tiempos medidos . 75 7.2. Lectura y escritura . 76 7.3. Subida y bajada desde GPU . 76 7.4. Ejecuciones secuenciales y paralelas . 77 7.5. Rendimiento . 82 8. Conclusiones 87 viii Ap´endices 93 Ap´endiceA. Preliminares 95 A.1. Grupos . 95 A.2. Anillos . 95 A.3. Campos . 96 A.4. Campos finitos . 96 A.5. Polinomios sobre un campo . 97 A.6. Operaciones en polinomios . 97 A.6.1. Adici´on . 97 A.6.2. Multiplicaci´on. 98 A.6.3. Doblado . 99 Ap´endiceB. Tiempos de ejecuci´on 101 B.1. Lectura vs escritura . 102 B.2. Subida vs bajada en GPU . 103 B.3. CTR . 104 B.4. OTR . 106 B.5. OTR optimizado . 109 Ap´endiceC. Rendimiento 111 C.1. CTR . 112 C.2. OTR . 113 C.3. OTR optimizado . 114 Ap´endiceD.