Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Universidad Nacional Autónoma de México Facultad de Ingeniería Criptografía Grupo: 02 - Semestre: 2023-2 Tarea: Funcionamiento del Algoritmo AES Fecha de entrega: 09/03/2023 Profesora: Dra. Rocío Alejandra Aldeco Pérez Alumno: Téllez González Jorge Luis Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________ Índice I. Introducción……………………………………………………………………………………………….1 II. Desarrollo……………………………………………………………………………………………………1 A. Estructura básica de AES……………………………………………………………….…..4 B. SubBytes…………………………………………………………………………………………..4 C. ShiftRows…………………………………………………………………………………………5 D. MixColumns…………………………………………………………………………………….5 E. AddRoundKey………………………………………………………………………………….6 F. AES Key Expansion……………………………………………………………………………7 G. Descifrado…………………………………………………………………………………………7 H. Áreas de implementación……………………………………………………………………8 III. Conclusiones 2 Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________ Introducción En este resumen se abordará un artículo que explora el algoritmo AES y su funcionamiento. AES (Advanced Encryption Standard) es un algoritmo de cifrado simétrico por bloques ampliamente utilizado en todo el mundo para proteger la privacidad y la seguridad de la información en línea y fuera de línea. El artículo discutirá cómo funciona el algoritmo AES, su diseño, sus características clave, su comparación frente a otros algoritmos así como su relevancia y aplicaciones prácticas en la actualidad. Desarrollo La criptografía se basa en dos procesos vitales, el cifrado y el descifrado, que convierten los datos originales en un formato ilegible y luego lo convierten de nuevo en texto plano. La criptografía moderna, entonces garantiza los principios básicos de confidencialidad, integridad, no repudio y autenticación. En la actualidad AES es uno de los algoritmos de cifrado simétrico más comunes en la actualidad que ha sustituido a algoritmos como DES por su e�ciencia y mejora drástica de seguridad. Este algoritmo se publicó en el año 2000 por el NIST para reemplazar a DES tras una invitación de este organismo para desarrollar un reemplazo de DES. Finalmente, el algoritmo Rijndael fue seleccionado y tomó el nombre de AES. A partir de allí, trabajos como el de Lu et. al. han abordado propuestas arquitectónicas para reducir el impacto computacional de AES en hardware de teléfonos móviles y otros dispositivos de bajo consumo. En comparación con otros algoritmos, Blow�sh tiene mejor rendimiento en ciertas situaciones frente a AES, sin embargo, AES se muestra superior frente a algoritmos viejos como RSA, 3DES o RC6. El NIST utilizó 3 criterios fundamentales para evaluar los algoritmos de competidores: seguridad, coste y características del algoritmo y la implementación. La seguridad se re�ere a la capacidad de proteger los datos de los atacantes, el coste se re�ere a la e�ciencia computacional y la diversidad de aplicaciones, y las características del algoritmo y la implementación se re�eren a la �exibilidad, simplicidad y adecuación del algoritmo para diferentes plataformas. 3 Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________ Estructura básica de AES El AES es un cifrado iterativo que se basa en una red de sustitución y permutación (SPN (en lugar de la clásica red Feistel), que consiste en una serie de operaciones matemáticas que transforman los bloques de datos. AES opera con bloques de 128 bits y utiliza diferentes números de rondas según el tamaño de la clave (128 usa 10, 192 usa 12 y 256 bits usa 14). Cada ronda consta de cuatro subprocesos para cifrar los datos: SubBytes, ShiftRows, MixColumns y AddRoundKey. Estos subprocesos realizan sustituciones y permutaciones sobre los bits del bloque para aumentar la seguridad empleando una matriz de 4x4 (en 128 bits) correspondiente al tamaño de bloque a usar durante el proceso de cifrado. SubBytes El proceso SubBytes es el primer paso que se hace en cada ronda para cambiar los datos. Consiste en cambiar cada número o letra que hay en el bloque por otro diferente usando una tabla llamada S-box. Esta tabla tiene �las y columnas con números y letras del 0 al F. Para cambiar un número o letra por otro, se busca la �la y la columna que coinciden con ese número o letra y se toma el valor que está en esa casilla. Por ejemplo, si tenemos el número 53, buscamos la �la 5 y la columna 3 y tomamos el valor que está ahí, que es ED. Así hacemos con todos los números y letras del bloque para sustituirlos por su equivalente en la S-Box. Figura 1. Rijndael S-Box. 4 Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________ ShiftRows ShiftRow es el segundo paso que se hace en cada ronda para mover los datos. Consiste en cambiar de lugar los números y letras que hay en el bloque según la �la en la que están. El bloque tiene cuatro �las y cuatro columnas. En la primera �la no se cambia nada. En la segunda �la se mueve todo un lugar a la izquierda. En la tercera �la se mueve todo dos lugares a la izquierda. En la cuarta �la se mueve todo tres lugares a la izquierda. Si algo sale del bloque por la izquierda, vuelve a entrar por la derecha. Así hacemos con todas las �las del bloque para desordenarlos más. Figura 2. Ejemplo de aplicación de ShiftRows a un bloque o matriz de estado. MixColumns MixColumn es el tercer paso que se hace en cada ronda para combinar los datos. Consiste en aplicar una multiplicación entre los números y letras que hay en el bloque de estado por otros valores presentes en la llamada matriz de transformación. Para combinar un número o letra con otro, se multiplica el primero por el segundo y se usa una operación XOR para obtener un resultado. En un aspecto más formal, cada columna se trata como un polinomio de la forma perteneciente al campo GF( ); con sus coe�cientes en el𝑏(𝑥) = 𝑏 3 𝑥3 + 𝑏 2 𝑥2𝑏 1 𝑥 + 𝑏 0 28 subcampo primo GF(2). Cada columna se multiplica por un polinomio �jo módulo cuyo inverso es𝑎(𝑥) = 3𝑥2 + 𝑥2 + 𝑥 + 2 𝑥4 + 1 .𝑎−1(𝑥) = 11𝑥3 + 13𝑥2 + 9𝑥 + 14 5 Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________ Figura 3. Procedimiento MixColumns. AddRoundKey AddRoundKey es la fase más importante del algoritmo AES que ayuda a garantizar la seguridad de los datos cifrados. Tanto la clave como los datos de entrada se organizan en una matriz de 4x4 bytes, en donde AddRoundKey crea una relación entre la clave y el texto cifrado. En un inicio, se depende principalmente de la clave indicada por el usuario para la generación de subclaves. A continuación, se combina la clave principal con la subclave para obtener el estado cifrado mediante XOR binario. Figura 4, Transformación AddRoundKey. 6 Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________ AES Key Expansion Un aspecto esencial de AES es que en cada ronda se utiliza una nueva subclave. Esta rutina creaclaves consistentes en arrays de 4 bytes. El proceso de expansión de clave comienza con la clave de cifrado original, que se divide en bloques de 4 bytes y se almacena en una matriz de palabras de clave. A continuación, se aplican una serie de operaciones a esta matriz para generar una serie de subclaves, que se almacenan en una matriz de palabras de clave expandida, de forma que cada subclave se genera a partir de la subclave anterior. Figura 5. AES Key Expansion. Descifrado El descifrado es el procedimiento para recuperar los datos originales que fueron previamente cifrados en AES. Para hacer esto, se necesita la clave utilizada para cifrar inicialmente los datos. En el caso del AES, el proceso de descifrado es similar al de cifrado, pero en orden inverso. 7 Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________ Áreas de implementación Las bondades de AES han permitido que desplace a otros algoritmos en áreas tan críticas como el Internet. En especí�co, AES es el algoritmo de cifrado predominante en el protocolo (SSL/TLS) que se utiliza para proporcionar un canal de comunicaciones seguro entre cliente y servidor web. Así mismo, AES es el estándar en muchas aplicaciones modernas que integran cifrado en sus comunicaciones, como lo es WhatsApp o Facebook. Conclusiones AES ha demostrado desde su implementación ser uno de los algoritmos de cifrado más con�ables que existen en la actualidad. Desde la rotura de algoritmos como DES o RC4, la con�abilidad en los métodos de cifrado se había visto severamente reducida, sin embargo, en la actualidad se puede considerar que los métodos de cifrado a la disposición del público pueden garantizar los 4 principios fundamentales de la criptografía. Más allá de lo anterior, gracias a AES es posible tener un uso generalizado del cifrado en aplicaciones tan cotidianas de mensajería o comunicaciones en video. Un ejemplo del uso de AES puede verse así mismo en aquellos entornos colaborativos de trabajo remoto que requieren el uso de equipos a distancia. Parsec, una aplicación para el acceso remoto a otra computadora, es un ejemplo de la gran utilidad de AES ya que, gracias a su robustez, permite acceder completamente a una computadora vía remota con un nivel de seguridad altamente con�able incluso en redes compartidas como lo puede ser la RIU de la UNAM. Otro ejemplo de aplicación se encuentra en las apps bancarias, en donde la seguridad toma un papel predominante y el cifrado seguro resulta uno de los elementos más críticos dentro de la lógica del negocio y la arquitectura de sus sistemas. Aunque la tecnología avanza de manera vertiginosa con el advenimiento de la computación cuántica y se ha advertido sobre la posibilidad de que los métodos actuales de cifrado resulten obsoletos, AES y, en especí�co, su variante de 256 bits, se considera resistente a cualquier ataque teórico de origen cuántico y no se espera que sea vulnerable a esa clase de sistemas en un futuro cercano. Por ello, AES es uno de los mejores algoritmos de cifrado junto a ChaCha20 y cumple de forma efectiva su propósito en todos los ecosistemas en que se ha implementado, y se espere que continúe haciéndolo. 8 Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________ Referencias Abdullah, Ako. (2017). Advanced Encryption Standard (AES) Algorithm to Encrypt and Decrypt Data. ResearchGate. Wikipedia. (s.f.). Advanced Encryption Standard. Consultado el 9 de marzo de 2023 desde: https://en.wikipedia.org/wiki/Advanced_Encryption_Standard 9 https://en.wikipedia.org/wiki/Advanced_Encryption_Standard
Compartir