Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo
-
Upload
pablo-garaizar -
Category
Technology
-
view
6.255 -
download
1
description
Transcript of Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo
![Page 1: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/1.jpg)
Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo
© Copyright 2009, Jeff Moserhttp://www.moserware.com/Traducido por Pablo Garaizar
![Page 2: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/2.jpg)
Acto 1º: Érase una vez…
![Page 3: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/3.jpg)
Gestiono petabytes* de datos cada día. Cifrodesde jugosa inteligencia Alto Secreto hasta los aburridos paquetes que llegan a tu router WiFi. ¡Lo hago todo!
* 1 petabyte = mucho
![Page 4: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/4.jpg)
… pero aún así, no parece que a nadie le importe yo o mi historia.
![Page 5: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/5.jpg)
La historia de cómo logré abrir mi propio camino para convertirme en el rey mundial del cifrado de bloques es mejor que la de Cenicienta.
![Page 6: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/6.jpg)
¡Guau! Todavía estás ahí ¿Quieres oírla?Bien, empecemos...
![Page 7: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/7.jpg)
Hace algún tiempo*, la gente -exceptuando a las agencias de inteligencia- no tenía manera de juzgar la buena criptografía.
* ~ antes de 1975 para el público en general
¡EBG13 rf travny!
El ROT13 doblees mejor
![Page 8: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/8.jpg)
Se promulgó un edicto en todo el país paraencontrar un algoritmo bueno y seguro.
¡Necesitamos un buen cifrado!
![Page 9: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/9.jpg)
Un digno competidor llamado Luciferse dio a conocer.
![Page 10: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/10.jpg)
Después de ser modificado por la Agencia Nacionalde Seguridad (NSA), fue declarado el Estándar de
Cifrado de Información (DES).
¡Yo te nombro DES!
Caja 'S'más fuerte
Clavemáscorta
![Page 11: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/11.jpg)
DES dominó la tierra durante 20 años.Los académicos lo estudiaron atentamente.Por primera vez había algo específico sobrelo que centrar su atención. Nacía el modernocampo de la criptografía.
'… por lo que respecta a nuestro conocimiento, DESestá a salvo de debilidades estadísticas o matemáticas'.
¡Fíjate en esa redde Feistel!
![Page 12: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/12.jpg)
A lo largo de los años, muchos atacantes desafiaron a DES y fue derrotado en varias batallas.
![Page 13: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/13.jpg)
La única manera de protegerse de esos ataques fueusar DES tres veces seguidas para formar 'Triple-DES'.
Esto fue efectivo, pero terriblemente lento.
![Page 14: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/14.jpg)
Se promulgó otro decreto* ...
Necesitamos algoal menos tan robustocomo Triple-DES, peromás rápido y flexible.
* ~ a principios de 1997
![Page 15: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/15.jpg)
¡¡Esta es mi oportunidadde ser famoso!!
Usaré FROG
Esta invitación hizo que los cripto-magosse reunieran para desarrollar algo mejor.
Yo usaréTwofish
![Page 16: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/16.jpg)
Mis creadores, Vincent Rijmen y Joan Daemen,se encontraban entre esos cripto-magos. Combinaron sus apellidos para darme mi nombre: Rinjdael*.
* pronunciado 'reindal' para los que no sean belgas.
Yo
![Page 17: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/17.jpg)
Todo el mundo se reunió para votar y...
¡Votadme!
![Page 18: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/18.jpg)
¡¡Gané!!
![Page 19: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/19.jpg)
… y ahora soy el nuevo rey del cripto-mundo. Puedes encontrarme en cualquier parte. Incluso Intel está introduciendo instrucciones nativas para mí en sus próximos chips para hacerme asombrosamente rápido.
Hoja de ruta de los procesadores Intel
![Page 20: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/20.jpg)
¿Alguna pregunta?
Muy raro, me largo.
Bonita historia y todo eso, pero ¿cómofunciona el cifrado?
![Page 21: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/21.jpg)
Acto 2º: Cifrado básico
![Page 22: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/22.jpg)
¡Muy buena pregunta! Solamente necesitas conocer 3 grandes ideas para entender el cifrado.
![Page 23: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/23.jpg)
1ª gran idea: confusión
Es una buena idea ocultar la relación entre tu mensaje real y tu mensaje 'cifrado'. Un ejemplo de esta 'confusión' es el viejo y fiel 'Cifrado del César':
letras
en claro:
cifrado:
![Page 24: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/24.jpg)
Es también una buena idea esparcir el mensaje.Un ejemplo de esta 'difusión' sería una simpletransposición de columnas.
2ª gran idea: difusión
Separado por 3 espacios
![Page 25: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/25.jpg)
Después de miles de años, hemos aprendido que es una mala idea asumir que nadie terminará por conocer cómo funciona tu método. Al final siemprehabrá alguien que lo termine sabiendo.
3ª gran idea: sólo la clave es secreta
MAL MEJOR
¡Dime cómo funciona!
¡Genial! ¡Ahorapuedo descifrarcualquier cosa!
¡Dime cómo funciona!
¡Mierda!
¡Sin problema! Está en la Wikipedia.Pero no sé la clave.
![Page 26: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/26.jpg)
¿Responde eso a tu pregunta?
¿Detalles?¡No soportolos detalles!
Está bien, pero ha sido muy general. ¿Cómo funcionas tú?
![Page 27: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/27.jpg)
Acto 3º: Detalles
![Page 28: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/28.jpg)
Estaría encantado de explicaros cómo funciono, pero antes tenéisque firmar esto.
Uh, ¿qué es eso?
![Page 29: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/29.jpg)
Acuerdo de Prevención de disparo en el pie
Yo, ________ prometo que, una vez vea lo simple que es AES realmente, no loimplementaré en código en producción,
aunque sería realmente divertido hacerlo.
Este acuerdo tendrá validez hasta queel abajo firmante invente una coreografíaque compare y contraste la temporizaciónbasada en caché y otros ataques indirectos
y sus contramedidas.
Firma Fecha
![Page 30: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/30.jpg)
Tomo tus datos y los cargo en esta tabla de 4 x 4*.
* Esta es la 'matriz de estado' que siempre llevo conmigo.
Relleno al final,dado que no eranexactamente
16 bytes
![Page 31: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/31.jpg)
En la ronda inicial calculo una OR-Exclusiva (XOR) de cada byte con el correspondiente de la clave para la primera ronda.
![Page 32: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/32.jpg)
Un tributo a XOR
Hay una sencilla razón por la que uso XOR para aplicar la clave y en otros sitios: es rápido y barato, un simple cambio a nivel de bit. Usa muy poco hardware y puede hacerse en paralelo ya que no se usan molestos bits de acarreo.
![Page 33: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/33.jpg)
Necesito muchas claves para usarlas en rondas posteriores.Derivo todas ellas a partir de la clave inicial usando una sencilla técnica de mezcla que es realmente rápida. A pesarde las críticas*, es suficientemente buena.
* la mayoría -por mucho- de las quejas en contra del diseño de AES se centran en esta simplificación.
Clave inicial
Expansión de la clave: parte 1
![Page 34: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/34.jpg)
Tomo la última columna de la clave de la anterior ronda y muevo el byte de arriba del todo a abajo:
Expansión de la clave: parte 2a
Luego, paso cada byte por una caja de sustitución quelo traducirá en algo distinto:
![Page 35: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/35.jpg)
Entonces, hago xor de la columna con una'constante de ronda' que es diferente para cada ronda:
Expansión de la clave: parte 2b
Finalmente, hago xor del resultado con la primeracolumna de la clave de la ronda previa:
Primera columna nueva
![Page 36: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/36.jpg)
Las otras columnas son super-fáciles*. Solamente tengo que hacer XOR de la columna anterior con la misma columna de la clave de la ronda previa:
Expansión de la clave: parte 3
* date cuenta de que las claves de 256 bits son ligeramente más complicadas.
Columna dela clave deronda previa
Columna previa
Nueva columna Nueva clave de ronda
![Page 37: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/37.jpg)
Luego, empiezo con las rondas intermedias. Unaronda es simplemente una serie de pasos que repito varias veces. El número de repeticiones depende deltamaño de la clave.
Ronda intermedia
![Page 38: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/38.jpg)
Uso la confusión (1ª gran idea) para ocultar larelación de cada byte. Pongo cada byte en unacaja de sustitución (sbox), que lo traducirá a unbyte diferente
Aplicando confusión: bytes sustitutos
Denota'confusión'
![Page 39: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/39.jpg)
Luego desplazo las filas hacia la izquierda
… y entonces las ajusto al otro lado
Denota 'permutación'
Aplicando difusión, parte 1: desplazar filas
![Page 40: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/40.jpg)
Aplicando difusión, parte 2: mezclar columnas
Tomo cadacolumna ymezclo los
bits
![Page 41: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/41.jpg)
Al final de cada ronda, aplico la siguiente clave de ronda con una XOR:
Aplicando seguridad de la clave: añadir la clave de ronda
![Page 42: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/42.jpg)
En la ronda final, me salto el paso de 'mezclar columnas',ya que no va a incrementar la seguridad y solamente ralentiza el proceso:
Ronda final
* la difusión que proporcionaría no se aprovecharía en la siguiente ronda.
![Page 43: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/43.jpg)
… y eso es todo. Cada ronda que hago añade másconfusión y difusión a los bits. También hace quela clave influya en ellos. ¡Cuantas más rondas, mejor!
![Page 44: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/44.jpg)
Determinar el número de rondas siempreimplica varios compromisos
SeguridadRendimiento
'La seguridad siempre implica un coste en rendimiento' – Vincent Rijmen
![Page 45: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/45.jpg)
Cuando estaba siendo desarrollado, un chico listo fue capaz de encontrar un atajo a través de 6 rondas. ¡Eso no está bien! Si miras cuidadosamente, verás que cada bit de la salida de una ronda depende de cada bit de dos rondas atrás. Para incrementar esta 'avalancha de difusión', añadí 4 rondas extra más. Este es mi 'margen de seguridad'.
Teóricamente'roto'
'Margen de seguridad'
![Page 46: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/46.jpg)
Así que en imágenes, tenemos esto:
![Page 47: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/47.jpg)
Descifrar implica hacer todo al revés
Aquí la 'ronda final' va al principio.
la 'ronda inicial' va al final.
Inverso de añadir clave de rondaInverso de
sustituir bytesInverso de
desplazar columnas Inverso de mezclar columnas
![Page 48: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/48.jpg)
Un último detalle: no debería de ser usado tal cual, sino como pieza de construcción de un 'modo' decente.
¡MAL! Mejor
![Page 49: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/49.jpg)
¿Tiene sentido? ¿Respondeeso a tu pregunta?
Casi... salvo cuando movías tus manosy usabas analogías extrañas. ¿Qué es lo que realmente ocurre?
![Page 50: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/50.jpg)
¡Otra pregunta genial!No es difícil, pero... implicaun poco de... matemáticas.
¡Las mates son difíciles! ¡Vamosde compras!
De acuerdo.¡Dale calor!
![Page 51: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/51.jpg)
Acto 4º: Matemáticas
![Page 52: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/52.jpg)
Volvamos a tu clase de álgebra…
Vamos clase,¿cuál es larespuesta?
Tú
¡Yo lo sé!Es 2x.
Deberíacopiarle…
¿SaldráAshley
conmigo?
![Page 53: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/53.jpg)
Repasando las bases…
la incógnita suma
multiplicacióncuadrado grado
coeficiente
polinomio
![Page 54: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/54.jpg)
Cambiaremos las cosas ligeramente. Antes, los coeficientes podían ser tan grandes como queramos.Ahora solamente pueden ser 0 o 1:
AntesAhora
Coeficientes grandes Coeficientes pequeños
la nueva “suma”
* Hecho curioso: ahora, la 'nueva suma' es igual que la sustracción:
![Page 55: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/55.jpg)
¿Recuerdas cómo las multiplicaciones podían hacer que las cosas crecieran rápido?
¡Grande y asqueroso!
![Page 56: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/56.jpg)
Con la 'nueva suma', las cosas son más sencillas,pero la x13 es todavía demasiado grande. Hagamos que no se pueda ir más allá de x7. ¿Cómo podríamos hacerlo?
![Page 57: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/57.jpg)
Usaremos a nuestro amigo el 'reloj matemático*' para hacer esto. Solamente suma cosas y hace la división.Presta atención al resto de la división:
* Esto se conoce también como 'suma modular'. Los locos por las matemáticas lo llaman 'grupo'. AES utiliza un grupo especial llamado un 'campo finito'.
4 en punto + 10 horas = 2 en punto
+ 10 horas =
![Page 58: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/58.jpg)
Podemos hacer matemáticas 'de reloj' con polinomios. En lugar de dividir por 12, mis creadores me dijeron que usara
donde
es muy grande, tenemos que hacerlo más pequeño
tiene coeficientesSupongamos que queremos multiplicar
* Recuerda que cada es o bien 0 o bien 1.
![Page 59: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/59.jpg)
Lo dividimos entre y tomamos elresto:
Fíjate como las b's se desplazan hacia la izquierda 1 posición. Esto es simplemente
b7 multiplicado por un
polinomio pequeño
El resto:
![Page 60: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/60.jpg)
Ahora ya estamos preparados para la explosión másfuerte del pasado: los logaritmos. Una vez dominados, el resto es pan comido. Los logaritmos nos permiten convertir multiplicación en suma:
A la inversa:
Luego…
![Page 61: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/61.jpg)
simple polinomio y contemplar cómo se complica la magia*.
* Si continuas multiplicando por (x•1) y tomas el resto después de dividirpor m(x), verás que generarás todos los posibles polinomios por debajo deX8. ¡Esto es muy importante!
simple polimonio
Podemos usar algoritmos en nuestro nuevo mundo. En lugar de usar 10 como base, podemos emplear el
![Page 62: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/62.jpg)
¿Por qué molestarnos con todas estas matemáticas?*El cifrado trata con bits y bytes, ¿no? Bueno, existeuna última conexión: un polinomio de 7º grado puedeRepresentar exactamente 1 byte, dado que ahora solamente utilizamos 0 o 1 como coeficientes:
¡¡Un solo byte!!
* A pesar de que solamente trabajaremos con bytes a partir de ahora, las matermáticas nos aseguran que todo se resuelve bien.
![Page 63: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/63.jpg)
Trabajando con bytes, la suma de polinomios se convierte en una simple xor. Podemos usar nuestros conocimientos de logartimos para hacer una tabla para multiplicar muy rápidamente*.
* Podemos crear la tabla dado que seguimos multiplicando por
![Page 64: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/64.jpg)
Dado que sabemos cómo multiplicarlos, podemos encontrar el byte del polinomio 'inverso' para cada byte. Este es el byte que deshará/invertirá el polinomio de nuevo a 1. Solamente hay 255 posibilidades*, así que podemos usar la fuerza bruta para encontrarlos:
encontrado por fuerza bruta usando un bucle for
* Hay solamente 255 y no 256 porque el 0 no tiene inverso.
![Page 65: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/65.jpg)
Ahora ya podemos entender la misteriosa s-box.Tomaun byte 'a' y le aplica dos funciones. La primera es 'g',que solamente encuentra el byte inverso. La segunda es'f', que complica las matemáticas a propósito en contra para frustrar ataques.
![Page 66: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/66.jpg)
También podemos entender esas locas constantes de ronda en la expansión de la clave. Las consigo empezando con '1' y continuo multiplicando por 'x':
Constantes de las primeras 10 rondas
![Page 67: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/67.jpg)
Mezclar las columnas es lo más complicado. Trato cada columna comoun polinomio. Uso entonces nuestro nuevo método para multiplicarlo porUn polinomio especialmente preparado y entonces tomo resto después de Dividirlo por x4+1. Esto se simplifica con una matriz de multiplicación:
la columnapolinomio especial
![Page 68: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/68.jpg)
![Page 69: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/69.jpg)
Guau… Creo que lo he entendido. Esrelativamente sencillo una vez encajasLas piezas. Gracias por explicarlo. He de irme.Un placer.
!Vuelve cuando quieras!
![Page 70: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/70.jpg)
Pero hay mucho más de lo que hablar: mi resistenciaal criptoanálisis lineal y diferencial, mi estrategia'Wide Trail', la implausibilidad de ataques de claves relacionadas, y... mucho más... pero no queda nadie.
![Page 71: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/71.jpg)
Oh, de acuerdo... todavía hay aburrido tráfico de router que tiene que ser cifrado. ¡Me tengo que ir!
![Page 72: Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo](https://reader034.fdocuments.us/reader034/viewer/2022051514/549bfafdac7959a62a8b45d3/html5/thumbnails/72.jpg)
Fin