Cifrado de clave privada AES Hipolito Romario Alba Cullash , e-mail: hipolito.alba.c@uni.pe David Daniel Campos Mendoza , e-mail: david.campos.m@uni.pe Luis Ignacio Atarama Aguilar , e-mail: luis.atarama.a@uni.pe Diego Bayes Santos , e-mail: diego.bayes.s@uni.pe Marlon Torres Rosado , e-mail: marlon.torres.r@uni.pe Resumen El presente proyecto tiene como objetivo explicar el cifrado estándar AES, también llamado Rijndael, debido a su importancia en el almacenamiento de información y transacciones financieras. Explicar los conceptos matemáticos necesarios para el desarrollo del cifrado y desarrollar un código en C++ para una mejor comprensión de su funcionamiento. Palabras Claves: Criptográfia, Rijndael. Abstract The objective of this project is explain the Advanced Encryption Standard, also called Rijndael, due to its importance in information storage and financial transactions. Explain the mathematical concepts necessary for the development of encryption and develop a code in C++ for a better understanding of its operation. Keywords: Cryptography, Rijndael. 1. INTRODUCCIÓN unos dı́as; por ello la decisión de reemplazarlo con Rijndael, quien agrupa la información en bloques de AES del inglés Advanced Encryption Standard, es co- mayor tamaño, por ende, asume el uso de una clave mo se comenzó a llamar al algoritmo Rijndael luego de mayor tamaño también. de que sea seleccionado como el nuevo estándar de cifrado en el año 2000, con el fin de proteger infor- La combinación de los factores seguridad, velocidad, mación del gobierno de los EE.UU. calificada como eficiencia, sencillez y flexibilidad fueron influyentes ultrasecreta. para su selección. Aunque no es uno de los algorit- El NIST convocó un concurso público, pues a su pre- mos más seguros, sino, más bien modesto (por la decesor, el algoritmo DES, se le encontraron vulne- matemática envuelta en su proceso), se recalca la rabilidades. Se llegó a descifrar información por ata- sencillez de su estructura y fácil análisis del diseño ques de fuerza bruta, el método más lento de averi- que permite cifrar y descifrar información, además guar la clave del cifrado de un sistema, en tan solo es posible extender la cantidad de datos con que se 1 desea trabajar lo que hace al algoritmo muy flexible. diversas razones, bien sea un mal uso en contra de 1.1. Objetivos los intereses de una entidad o información que puede dañar a la entidad que goza de acceso a esta, por 1.1.1. Objetivos Generales tanto la codificación se ha visto en un constante deProponer el algoritmo AES como una aplicación de sarrollo para encontrarse a la par de los métodos de la matemática de pregrado, reconociendo la interco- decodificación. Lo que aquı́ haremos será mostrar el nexión de los conceptos que expondremos. cifrado de clave privada AES-Rijndael el cual actualmente ha tomado el puesto de estándar para la co- 1.1.2. Objetivos Particulares dificación de documentos clasificación Top Secret en Aprender y explicar el funcionamiento y la estructura Estados Unidos, y qué además ha sido implementado del cifrado estándar, enfocándonos en la conversión por otros muchos gobiernos dado el gran margen de de información por medio de funciones, llamadas ron- protección con el que cuenta y qué aún no se ha en- das. Conocer a profundidad el conjunto de funciones contrado un método de romper el cifrado en tiempo aplicadas en cada ronda y aprovechar su diseño tan viable computacionalmente. simple para esconder información útil. 2. CONCEPTOS PREVIOS 1.2. Justificación Los ciberataques, que pueden ser en forma de malwa- 2.1. Criptologı́a re; como el spyware, que transmite la información del La Criptologı́a, del griego kryptos:’oculto’ y lo- disco duro, o como el ransoware, que encripta todos gos:’estudio’, por lo tanto la criptologı́a se puede en- los datos de nuestro equipo, dejándolo inhabilitado; tender como el estudio de lo oculto en los mensajes son problemas frecuentes en el mundo de las comu- que, procesados se convierten en dı́ficiles entender. nicaciones. Frente a esto surge la necesidad de es- 2.2. Criptográfia Simétrica cudarse y prevenir el robo de nuestras contraseñas, Utiliza la misma clave para cifrar y descrifrar, es de- cuentas bancarias, nuestro trabajo guardado e inclu- cir, se basa en un secreto compartido entre el emisor so recuerdos como fotográfias de viajes o encuentros y el receptor, la seguridad de este proceso depende familiares. Por ello, proponemos que mediante un al- mucho de la facilidad con la que una persona no au- goritmo de cifrado público, como lo es el AES, sea torizada puede conseguir la clave . usado para salvarguardar información últil, y aunque en el proyecto lo haremos de forma primitiva; es un 2.3. Criptográfia Asimétrica buen comienzo para iniciar a comprender desde una Utiliza dos claves, una para cifrar y otra para des- perspectiva aplicativa, el gran panorama que las ma- cifrar, estas claves se relacionan de tal manera que temáticas dejan de los cursos teóricos y abstractos una no puede descifrar lo que cifra, además, cuando en nuestra realidad. se completa la generación de una clave asimétrica y se definen las dos claves, lo que cifra una, unicamente 1.3. Identificación del Problema puede ser descifrado por la otra. Dado el desarrollo que ha llevado la época de la in- 2.4. Data Encryption Standard (DES) formación, mucha de esta debe ser restringida por 2 Fue el primer estándar de cifrado publicado por 4. Para cada a ∈ K, existe (−a) ∈ K, tal que el National Institute of Standard and Technology a + (−a) = 0. −a se llama opuesto de a. (NIST), aprobado en 1976, fue diseñado por IBM 2.6.2 Producto y basado en el cifrado Lucifer. DES usa una clave de • : K × K −→ K 56 bits, y mapas de bloque de entrada de 64 bits en (a, b) 7−→ a • b un bloque de salida de 64 bits. Existieron continuas sospechas sobre las vulnerabilidades de este algorit- 5. a • b = b • a, ∀ a, b ∈ K. mo y que la NSA tenı́a conocimientos previos de esto. 6. a • (b • c) = (a • b) • c, ∀ a, b, c ∈ K. Actualmente se considera inseguro debido a los nu- 7. Existe 1 ∈ K, 1 6= 0, llamado uno, tal que a•1 = a, merosos ataques y métodos registrados que explotan ∀ a ∈ K. sus debilidades, principalmente su longitud de clave 8. Para cada a ∈ K, a 6= 0, existe a−1 ∈ K tal que tan corta. a • a−1 = 1. El número a−1 se llama inverso de a. 2.5. Advanced Encryption Standard (AES) 2.7. Cuerpos Finitos GF(28 ) Fue desarrollado por dos criptólogos belgas, Joan En este algoritmo todos los bytes se interpretan co- Daemen y Vincent Rijmen. En realidad el nombre mo elementos de un cuerpo finito. Concretamente, se del algoritmo es Rijndael, el cual fue ganador del representan mediante Campos de Galois GF(k). concurso público de candidato a AES. Es un cifrado Aritmética en módulo ”p” sobre polinomios de grado simétrico por bloques (al igual que el DES), cifra blo- ”m”, siendo ”p” un número primo. GF(pm ), donde ques de datos de 128 bits, utilizando claves simétricas los elementos de GF(pm ) se representan como poli- de 128, 192 o 256 bits. Actualmente no se ha encon- nomios con coeficientes en Zp de grado menor que trado ningún ataque exitoso contra el AES, aunque m. existen preocupaciones porque a diferencia de otros cifrados por bloques, el AES tiene una descripción GF (pm ) = {a0 + a1 x + a2 x2 + . . . + am−1 xm−1 } matemática muy ordenada. {a0 , a1 , a2 , . . . , am−1 ∈ Zp } 2.6. Cuerpo Un cuerpo conmutativo o simplemente cuerpo es un Cada elemento de GF(pm ) es un resto módulo p(x), conjunto K 6= ∅, en donde las operaciones suma y donde p(x) es un polinomio de grado ”m”. Cada ele- producto verifican las siguientes propiedades. mento del campo se respresenta con ”m” bits y el 2.6.1. Suma número de elementos será 2m . + : K × K −→ K Un byte ”B”, se compone de los bits b7 b6 b5 b4 b3 b2 b1 b0 , si lo consideramos como un polinomio con (a, b) 7−→ a + b coeficientes en {0, 1} tenemos el polinomio: 1. a + b = b + a, ∀ a, b ∈ K. 2. a + (b + c) = (a + b) + c, ∀ a, b, c ∈ K. b7 x7 + b6 x6 + b5 x5 + b4 x4 + b3 x3 + b2 x2 + b1 x1 + b0 3. ∃! 0 ∈ K, llamado cero, tal que a+0 = a, ∀ a ∈ K. 3 2.8. Suma en GF(28 ) inversa multiplicativa. a(x) es un polinomio inverso m En GF(2 ) hay que considerar que las operaciones de b(x) si: matemáticas sobre los coeficientes se hacen en módu- a(x) · b(x) mod m(x) = 1 o lo ”p” con lo cual en GF(2m ) se reducen los resulta- b(x)−1 = a(x) mod m(x) dos de la suma de dos coeficientes módulo 2. Sea x, y ∈ GF(p), entonces: Ejemplo: Sea b(x) ∈ GF(28 ) y b(x) = x6 + x5 , calcular un polinomio inverso de b(x). x + y = w mod p Solución: Para x, y ∈ GF(28 ), basta con aplicar O-Exclusiva, b(x) = x6 + x5 y m(x) = x8 + x4 + x3 + x + 1 tenemos: a(x) · b(x) mod m(x) = 1 Operación XOR Pero también 1⊕1=0 1 = c(x)m(x) + b(x)a(x) 1⊕0=1 Acá usaremos el algoritmo extendido de euclides 0⊕1=1 x8 + x4 + x3 + x + 1 = (x6 + x5 )(x2 + x + 1) + (x5 + 0⊕0=0 x4 + x3 + x + 1) 2.9. Multiplicación en GF(28 ) x6 + x5 = (x5 + x4 + x3 + x + 1)x + x4 + x2 + x En la multiplicación de polinomios en GF(2m ), es po- x5 + x4 + x3 + x + 1 = (x4 + x2 + x)(x + 1) + 1 sible que el resultado contenga elementos que estén Entonces: fuera del cuerpo del polinomio por lo que deberemos reducir los exponentes mediante un polinomio p(x) 1 = (x5 + x4 + x3 + x + 1) − (x + 1)(x4 + x2 + x) necesariamente irreducible y grado ”m”. 1 = m(x)−(x2 +x+1)b(x)+(x+1)[b(x)−(x)(m(x)− Para GF(28 ) la multiplicación de polinomios se rea- (x2 + x + 1)b(x))] liza módulo con un polinomio irreducible de grado 1 = (x2 + x + 1)m(x) + (x4 + x2 + x)b(x) 8. El polinomio irreducible utilizado en el algoritmo ∴ b(x)−1 = x4 + x2 + x mod m(x) Rijndael es: 3.PROBLEMA m(x) = x8 + x4 + x3 + x + 1 Hay información que se considera fundamental paLa multiplicación de polinomios es asociativa y su ra una pesona o alguna empresa, y tal información elemento neutro es el ”1”. Para cualquier polinomio no puede divulgarse, por lo que es importante imple- binario b(x) de grado menor que 8, se puede aplicar mentar algoritmos para cifrar dicha información con el algoritmo extendido de Euclides para calcular un tal de proporcionarle seguridad. Desarrollaremos una polinomio inverso de b(x). En este caso se habla de implementación del algoritmo que planteamos para 4 el proceso de cifrado, en este caso dada nuestra ex- Las cuatro operaciones realizadas en el cifrado son periencia en el manejo del lenguaje de programación denominadas: C++ usaremos este. SubBytes. 3.1. Estructura del Algoritmo Para definir el proceso de cifrado del AES, vamos a ShiftRows. asumir que la longitud de la clave escogida es de 128 MixColumns. bits. AddRoundKey. Básicamente, el cifrador aplica al Estado cuatro ope3.1.2. AddRoundKey raciones durante un número determinado de rondas. La operación AddRoundKey consiste, en la combinaProceso de Cifrado ción de la subclave de ronda correspondiente con el Estado Estado. Esta combinación se realiza a través de la operación AddRound XOR. Ronda Inicial 3.1.3. SubBytes SubBytes La operación SubBytes consiste, en una sustitución no lineal de bytes. Dicha sustitución se realiza apli- No cando la fórmula: ShiftRows p −1 Si,j = M · Si,j +C MixColumns 9 Rondas Donde 1 1 1 1 M = 1 0 0 0 AddRound Nr=9 SubBytes ShiftRows Ronda Final 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1 0 1 C = 0 0 1 0 1 0 1 0 1 −1 Si,j = Inverso multiplicativo del byte a transformar, con el bit menos significativo arriba. AddRound p Si,j = Transformación SubBytes con el bit menos Texto Cifrado significativo arriba. Dicho número de rondas (Nr ) viene definido por Existe una tabla de sustitución fija, llamada S-box, la longitud de clave utilizada, siendo Nr = 10 para que permite realizar la operación SubBytes mediante una longitud de clave de 128 bits. un simple vistazo. 5 S-box x0 x1 x2 x3 x4 x5 x6 x7 x0 63 7C 77 7B F2 6B 6F C5 1x CA 82 C9 7D FA 59 47 F0 2x B7 FD 93 26 36 3F F7 CC 3x 04 C7 23 C3 18 96 05 9A 4x 09 83 2C 1A 1B 6E 5A A0 5x 53 D1 00 ED 20 FC B1 5B 6x D0 EF AA FB 43 4D 33 85 7x 51 A3 40 8F 92 9D 38 F5 8x CD 0C 13 EC 5F 97 44 17 9x 60 81 4F Dc 22 2A 90 88 Ax E0 32 3A 0A 49 06 24 5C Bx E7 C8 37 6D 8D D5 4E A9 Cx BA 78 25 2E 1C A6 B4 C6 Dx 70 3E B5 66 48 03 F6 0E Ex E1 F8 98 11 69 D9 8E 94 En la operación MixColumns, los cuatro bytes de ca- Fx 8C A1 89 0D BF E6 42 68 da columna de la notación matricial del Estado se x8 x9 xA xB xC xD xE xF combinan utilizando una transformación lineal inver- x0 30 01 67 2B FE D7 AB 76 sible. Es más sencillo verlo como una multiplicación 1x AD D4 A2 AF 9C A4 72 C0 matricial, donde el Estado siempre se multiplica a la 2x 34 A5 E5 F1 71 D8 31 15 derecha de la misma matriz: 3x 07 12 80 E2 EB 27 B2 75 4x 52 3B D6 B3 29 E3 2F 84 5x 6A CB BE 39 4A 4C 58 6x 45 F9 02 7F 50 3C 7x BC B6 DA 21 10 8x C4 A7 7E 3D 9x 46 EE B8 Ax C2 D3 Bx 6C Cx 3.1.4. ShiftRows La operación ShiftRows consiste, en una rotación cı́clica hacia la izquierda de las filas de la notación matricial del Estado, de manera que la primera fila permanece igual, la segunda fila rota hacia la izquierda una posición, la tercera fila se rota hacia la izquierda dos posiciones y, por último, la cuarta fila se rota hacia la izquierda tres posiciones. b15 b11 b7 b3 b15 b11 b7 b3 b14 b10 b6 b10 b6 b2 b14 b13 b9 b5 b2 ShiftRows −→ b1 b5 b1 b13 b9 b12 b8 b4 b0 b0 b12 b8 b4 3.1.5. MixColumns 02 03 01 01 CF 01 02 03 01 9F A8 01 01 02 03 FF F3 D2 03 01 01 02 65 5D 19 73 14 DE 5E 0B DB AC 62 91 95 E4 79 56 F4 EA 65 7A AE 08 E8 DD 74 1F 4B BD 8B 8A Dx 61 35 57 B9 86 CI 1D 9E Ex 9B 1E 87 E9 CE 55 28 DF Fx 41 99 2D 0F B0 54 BB 16 02 03 01 01 Es decir: b15 b11 b7 b3 b14 b10 b6 b2 01 01 02 03 b13 b9 b5 b1 03 01 01 02 b12 b8 b4 b0 01 02 03 01 · Se adjunta el código del programa en C++: https://www.overleaf.com/read/ytfjbkcqpndv 6 4. ANÁLISIS Y MODELAMIENTO B = 11, C = 12, D = 13, E = 14 y F = 15. Se debe usar estos valores en la sustitución para las matrices En esta aplicación usaremos la frase Somos la cien- anteriores. cia, la cual representa 128 bits. La clave que usare- Entonces, para empezar con la ronda inicial, o ron- mos para la encriptación será Esta es la clave, la da 0, usaremos la función AddRoundKey para es- cual también es de 128 bits. Con esta clave realiza- tas matrices de la siguiente forma: remos el proceso para una clave de este tamaño, es Ronda 0 decir, el proceso tendrá 10 round. 4.1. Ejecución del Programa Somos la ciencia ⇐⇒ Esta es la clave ⇐⇒ 53 73 20 6E 45 20 6C 6C 6F 20 63 63 M 73 65 61 61 53 73 20 6E 6D 6C 69 69 74 73 20 76 6F 20 63 63 6F 61 65 61 61 20 63 65 6D 6C 69 69 6F 61 65 61 AddRoundKey −→ 16 53 4C 02 1C 45 02 02 19 1F 49 1F 0E 41 06 04 45 20 6C 6C 73 65 61 61 74 73 20 76 Es decir, como es la ronda 0, aplicaremos solo la fun- 61 20 63 65 ción AddRoundKey para ambas matrices y tendremos la matriz resultante, que se usará en la ronda El proceso para realizar esta sustitución es: 1 como matriz de estado. Pasar cada letra de la frase a su código ASCII. A la subclave K0 le aplicaremos la función Expan- Pasar el código ASCII de cada letra al sistema sión K, la cual consiste de las 4 subfunciones Rot- hexadecimal. word, SubBytes, XOR (i-4) y XOR RCON para generar las subclaves de las siguientes rondas (1-10). Posicionar los códigos (ya en sistema hexadeci- Esta función se aplica por completo únicamente para mal) en la matriz. obtener la primera columna de las subclaves, ya que Por ejemplo, S en código ASCII es 83, pasando el para las siguientes columnas solo se aplica la subfun- 83 a base hexadecimal se obtiene el número 5316 , el ción XOR (i-4). cual ubicamos en el primer espacio de la tabla. Ahora comenzaremos el proceso de la ronda 1 hasta El posicionamiento de las letras convertidas a ba- la ronda 9 con el uso de las funciones SubBytes, se hexadecimal se realiza primero por columnas, de ShiftRows, MixColumns y AddRoundKey, en arriba hacia abajo. Una vez que se llena la primer ese orden, para las subclaves y matrices de estado, columna, se pasa a llenar la segunda columna de la proceso que se llevará a cabo 9 veces. misma forma y ası́ con las columnas restantes. Ronda 1 Recordar que en base hexadecimal las letras desde la A hasta la F representan una cifra cada una : A = 10, Empezaremos aplicando la función Expansión K a 7 la subclave K0 para obtener la subclave K1 . K0 = ShiftRows 45 20 6C 6C 73 65 61 61 47 ED 29 77 74 73 20 76 6E 77 77 9C 61 20 63 65 3B C0 D4 C0 F2 AB 83 6F Expansión K MixColumns AB 8B E7 8B 4B 2E 4F 2E F5 33 9C FE 39 4A 6A 1C 24 F3 23 60 31 11 72 17 52 E7 73 C1 63 D6 C5 1B K1 = Del Round 0 se tiene : Denotemos : M1 = 16 53 4C 02 1C 45 02 02 19 1F 49 1F 0E 41 06 04 M1p = F5 33 9C FE 24 F3 23 60 52 E7 73 C1 63 D6 C5 1B Entonces, aplicamos las funciones SubBytes, Shif- Ası́, usamos la función AddRoundKey con las ma- tRows, MixColumns y AddRoundKey a M1 : trices M1p y K1 para obtener M2 , la cual se usará en la ronda 2: 16 53 4C 02 1C 45 02 02 F5 33 9C FE AB 8B E7 8B 19 1F 49 1F 24 F3 23 60 M 4B 2E 4F 2E 0E 41 06 04 52 E7 73 C1 39 4A 6A 1C 63 D6 C5 1B 31 11 72 17 SubBytes AddRoundKey −→ 5E B8 7B 75 6F DD 6C 4E 6B AD 19 DD 52 C7 B7 0C = M2 47 ED 29 77 9C 6E 77 77 D4 C0 3B C0 La matriz M2 se usará para la ronda 2. AB 83 6F F2 Este proceso, para obtener la subclave y la matriz 8 de estado, se realizará, tal cual especificamos en la ronda 1, hasta la ronda 9. CB 6B 68 49 2B CD 49 D6 Ronda 2 DD 9F 45 53 M 4B 57 94 39 AD 67 2F 70 5A 92 DB E2 4E B5 B7 6D 95 C3 11 B2 Aplicando la función Expansión K a la subclave K1 se obtiene K2 : K2 = 98 13 F4 7F D7 F9 B6 98 C9 83 E9 F5 0C 1D 6F 78 E0 A6 2E 9F 96 C8 D1 6A F7 F5 F4 92 DB 79 A6 DF AddRoundKey −→ = M10 Ahora, para terminar el algoritmo, en la ronda 10 aplicaremos únicamente las funciones SubBytes, Aplicando las funciones SubBytes, ShiftRows y ShiftRows y AddRoundKey. MixColumns a M2 se obtiene M2p : Ronda 10 M2p = C2 E9 8A FE 58 94 38 DB Obtenemos la subclave K10 a partir de la subclave 33 A5 A1 E4 K9 haciendo uso de la función Expansión K : 1A 25 A4 C8 K9 = Por último, usamos AddRoundKey con las matrices M2p y K2 , de lo cual se obtiene M3 : C2 E9 8A FE 98 13 F4 7F 58 94 38 DB M D7 F9 B6 98 33 A5 A1 E4 C9 83 E9 F5 1A 25 A4 C8 0C 1D 6F 78 AddRoundKey −→ FA 7E 81 8F 6D 8E 43 FA 26 48 11 16 38 CB B0 6B 68 49 DD 9F 45 53 AD 67 2F 70 4E B5 B7 6D Expansión K K10 = 5A CB 10 7B 13 5A 8C 13 56 05 91 F6 D9 A9 75 C0 77 1A = M3 En este punto, solo se da uso a las funciones SubBytes, ShiftRows y AddRoundKey con la matriz M10 para obtener la matriz final con la frase encrip- Mismo proceso se aplica hasta la ronda 9. tada. Ronda 9 Usamos AddRoundKey con las matrices K9 y M10 = M9p , de lo cual se obtiene M10 : 9 E0 A6 2E 9F 96 C8 D1 6A F7 F5 F4 92 DB 79 A6 DF necesita es agrupar las letras de forma ordenada en SubBytes matrices 4 × 4 para luego proceder a ejecutar el algoritmo en cada una de las matrices, como se puede E1 24 31 DB apreciar en esto último el tiempo computacional de 90 E8 3E 02 ejecución del algoritmo aumenta considerablemente 68 E6 BF 4F para cadenas de texto más grandes, razón por la cual B9 38 24 9E hicimos la implementación del cifrado en el lenguaje de programación C++, ya que este goza de una rapidez de ejecución superior a la de otros lengua- ShiftRows jes, además en el presente trabajo solo se muestra la función principal del codigo ya que dada la brevedad E1 24 31 DB E8 3E 02 90 BF 4F 68 E6 9E B9 38 24 que debe tener este articulo se extiende demasiado al poner el codigo completo de la implementación, pa- p = M10 ra visualizar el codigo completo se puede hacer una investigación mas detallada del tema en internet o libros especializados del tema. Ası́ mismo un pun- Para terminar la encriptación, usamos la función AddRoundKey con las matrices p M10 to importante a tomar en cuenta es que este cifrado y K10 para el altamente complejo en estructura matemática y obtener la matriz final MF : numero de operaciones a ejecutar, por esta razón se E1 24 31 E8 3E BF 4F 9E 10 7B 13 5A 02 90 M 8C 13 56 05 68 E6 91 F6 D9 A9 B9 38 24 75 C0 77 1A AddRoundKey −→ DB F1 5F 22 81 64 2D 54 95 2E B9 B1 4F EB 79 4F 3E hace inviable su uso para cifrar cadenas de texto de manera manual a lápiz y papel, como es lógico al leer detalladamente el presente artı́culo ya habrá podido percatarse de esto. 6. CONCLUSIONES = MF El cifrado AES ha sido diseñado con una estructura matemática muy ordenada, usa conceptos de alge- Esta última matriz MF representa el texto cifrado bra abstracta, ası́ como teorı́a de codificación, por mediante el algoritmo de Rijndael. tanto, para su implementación se necesita el manejo de lenguajes de programación y el conocimiento Texto desencriptado: “Somos la ciencia” del algebra abstracta para la compresión de los con- 5. RESULTADOS Y DISCUSIONES ceptos teóricos de la estructura de este. El proyecto Se pudo llevar a cabo satisfactoriamente el algorit- nos brindó como conclusión además que el cifrado mo en una matriz 4 × 4 , el cual es el tamaño base de información en el mundo actual es realmente im- de las matrices en el cifrado AES, en el caso de que- portante dado el fácil acceso del que se goza a esta rer cifrar cadenas de texto más grandes lo que se por medios como internet en el cual se puede extraer 10 sistema bancario. toneladas de información en cuestión de segundos, información que bien puede ser pública o privada, de la cual una indebida manipulación puede afectar Por tanto se concluye que el cifrado de información gravemente, por ejemplo en el sistema bancario en es un pilar fundamental en la época en que vivimos, el cual el acceso por parte de terceros a la clave de y cifrados como el AES el cual es el estándar a nivel un determinado usuario puede ver vulnerada su in- mundial brindan seguridad a millones de personas formación bancaria e incluso la manipulación de los en el acceso a información privada, garantizando ası́ fondos por parte de personas que no son el usuario que nuestra información sea privada segun nuestras algo que serı́a indeseable para cualquier usuario del necesidades. —————————————————————————– 1. Joan Daernen and Vincent (2001). The Design of Madrid: Seguridad Europea para EEUU. Rijndael: AES - The Advanced Encryption Stan- 3. Martı́nez de la Torre, J. (2016). Cifrado de clave pri- dard.Springer vada: AES. 2. Muñoz, A. (2004). Algoritmo Criptográfico Rijndael. 11