• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo
 

Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo

on

  • 6,082 views

Traducción de "A Stick Figure Guide to the Advanced Encryption Standard (AES)" de Jeff Moser al castellano, por Pablo Garaizar Sagarminaga.

Traducción de "A Stick Figure Guide to the Advanced Encryption Standard (AES)" de Jeff Moser al castellano, por Pablo Garaizar Sagarminaga.

Statistics

Views

Total Views
6,082
Views on SlideShare
6,069
Embed Views
13

Actions

Likes
4
Downloads
147
Comments
5

5 Embeds 13

http://twitter.com 5
https://twitter.com 3
http://paper.li 2
http://www.linkedin.com 2
http://us-w1.rockmelt.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

15 of 5 previous next Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo Presentation Transcript

    • Una guía para entenderAdvanced Encryption Standard(AES) con muñecos de palo © Copyright 2009, Jeff Moser http://www.moserware.com/ Traducido por Pablo Garaizar
    • Acto 1º: Érase una vez…
    • Gestiono petabytes* de datos cada día. Cifro desde jugosa inteligencia Alto Secreto hasta los aburridos paquetes que llegan a tu router WiFi. ¡Lo hago todo!* 1 petabyte = mucho
    • … pero aún así, no parece que a nadie leimporte yo o mi historia.
    • La historia de cómo logré abrir mi propio caminopara convertirme en el rey mundial del cifradode bloques es mejor que la de Cenicienta.
    • ¡Guau! Todavía estás ahí ¿Quieres oírla?Bien, empecemos...
    • Hace algún tiempo*, la gente -exceptuando a las agencias de inteligencia- no tenía manera de juzgar la buena criptografía. ¡EBG13 rf travny! El ROT13 doble es mejor* ~ antes de 1975 para el público en general
    • Se promulgó un edicto en todo el país paraencontrar un algoritmo bueno y seguro. ¡Necesitamos un buen cifrado!
    • Un digno competidor llamado Luciferse dio a conocer.
    • 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! Clave más corta Caja S más fuerte
    • DES dominó la tierra durante 20 años. Los académicos lo estudiaron atentamente. Por primera vez había algo específico sobre lo que centrar su atención. Nacía el moderno campo de la criptografía.… por lo que respecta a ¡Fíjate en esa rednuestro conocimiento, DES de Feistel!está a salvo de debilidadesestadísticas o matemáticas.
    • A lo largo de los años, muchos atacantesdesafiaron a DES y fue derrotado en varias batallas.
    • La única manera de protegerse de esos ataques fueusar DES tres veces seguidas para formar Triple-DES. Esto fue efectivo, pero terriblemente lento.
    • Se promulgó otro decreto* ... Necesitamos algo al menos tan robusto como Triple-DES, pero más rápido y flexible.* ~ a principios de 1997
    • Esta invitación hizo que los cripto-magosse reunieran para desarrollar algo mejor. ¡¡Esta es mi Usaré FROG oportunidad de ser famoso!! Yo usaré Twofish
    • Mis creadores, Vincent Rijmen y Joan Daemen, se encontraban entre esos cripto-magos. Combinaron sus apellidos para darme mi nombre: Rinjdael*. Yo* pronunciado reindal para los que no sean belgas.
    • Todo el mundo se reunió para votar y... ¡Votadme!
    • ¡¡Gané!!
    • … y ahora soy el nuevo rey del cripto-mundo. Puedesencontrarme en cualquier parte. Incluso Intel estáintroduciendo instrucciones nativas para mí en suspróximos chips para hacerme asombrosamente rápido. Hoja de ruta de los procesadores Intel
    • ¿Alguna pregunta? Bonita historia y todo eso, pero ¿cómo funciona el cifrado? Muy raro, me largo.
    • Acto 2º: Cifrado básico
    • ¡Muy buena pregunta! Solamentenecesitas conocer 3 grandes ideaspara entender el cifrado.
    • 1ª gran idea: confusiónEs una buena idea ocultar la relación entre tu mensajereal y tu mensaje cifrado. Un ejemplo de esta confusión es el viejo y fiel Cifrado del César: en claro: cifrado: letras
    • 2ª gran idea: difusiónEs también una buena idea esparcir el mensaje.Un ejemplo de esta difusión sería una simpletransposición de columnas. Separado por 3 espacios
    • 3ª gran idea: sólo la clave es secreta 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 siempre habrá alguien que lo termine sabiendo.¡Dime cómo funciona! ¡Dime cómo funciona! ¡Sin problema! ¡Genial! ¡Ahora Está en la Wikipedia. puedo descifrar Pero no sé la clave. cualquier cosa! ¡Mierda! MAL MEJOR
    • ¿Responde eso atu pregunta? Está bien, pero ha sido muy general. ¿Detalles? ¿Cómo funcionas tú? ¡No soporto los detalles!
    • Acto 3º: Detalles
    • Estaría encantado de explicaroscómo funciono, pero antes tenéisque firmar esto. Uh, ¿qué es eso?
    • Acuerdo de Prevención de disparo en el pieYo, ________ prometo que, una vez vea lo simple que es AES realmente, no lo implementaré en código en producción,aunque sería realmente divertido hacerlo. Este acuerdo tendrá validez hasta que el abajo firmante invente una coreografíaque compare y contraste la temporizaciónbasada en caché y otros ataques indirectos y sus contramedidas. Firma Fecha
    • Tomo tus datos y los cargo en esta tabla de 4 x 4*. Relleno al final, dado que no eran exactamente 16 bytes* Esta es la matriz de estado que siempre llevo conmigo.
    • En la ronda inicial calculo una OR-Exclusiva (XOR)de cada byte con el correspondiente de la clavepara la primera ronda.
    • Un tributo a XORHay una sencilla razón por la que uso XOR para aplicar laclave y en otros sitios: es rápido y barato, un simple cambioa nivel de bit. Usa muy poco hardware y puede hacerse enparalelo ya que no se usan molestos bits de acarreo.
    • Expansión de la clave: parte 1 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 pesar de las críticas*, es suficientemente buena. Clave inicial* la mayoría -por mucho- de las quejas en contra del diseño de AES se centran en esta simplificación.
    • Expansión de la clave: parte 2aTomo la última columna de la clave de la anterior ronday muevo el byte de arriba del todo a abajo:Luego, paso cada byte por una caja de sustitución quelo traducirá en algo distinto:
    • Expansión de la clave: parte 2bEntonces, hago xor de la columna con unaconstante de ronda que es diferente para cada ronda:Finalmente, hago xor del resultado con la primeracolumna de la clave de la ronda previa: Primera columna nueva
    • Expansión de la clave: parte 3 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:Columna de Nueva columna Nueva clave de ronda Columnala clave de previaronda previa * date cuenta de que las claves de 256 bits son ligeramente más complicadas.
    • Luego, empiezo con las rondas intermedias. Unaronda es simplemente una serie de pasos que repitovarias veces. El número de repeticiones depende deltamaño de la clave. Ronda intermedia
    • Aplicando confusión: bytes sustitutosUso 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 diferenteDenotaconfusión
    • Aplicando difusión, parte 1: desplazar filas Luego desplazo las filas hacia la izquierda … y entonces las ajusto al otro ladoDenota permutación
    • Aplicando difusión, parte 2: mezclar columnasTomo cadacolumna ymezclo los bits
    • Aplicando seguridad de la clave: añadir la clave de ronda Al final de cada ronda, aplico la siguiente clave de ronda con una XOR:
    • 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.
    • … 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!
    • Determinar el número de rondas siempre implica varios compromisos RendimientoSeguridadLa seguridad siempre implica un coste en rendimiento – Vincent Rijmen
    • Cuando estaba siendo desarrollado, un chico listo fue capazde encontrar un atajo a través de 6 rondas. ¡Eso no estábien! Si miras cuidadosamente, verás que cada bit de la salidade una ronda depende de cada bit de dos rondas atrás. Paraincrementar esta avalancha de difusión, añadí 4 rondas extramás. Este es mi margen de seguridad. Teóricamente roto Margen de seguridad
    • Así que en imágenes, tenemos esto:
    • Descifrar implica hacer todo al revés Aquí la ronda final va al principio. la ronda inicial va al final. Inverso de Inverso deInverso de añadir clave de ronda sustituir bytes desplazar columnas Inverso de mezclar columnas
    • Un último detalle: no debería de ser usado tal cual,sino como pieza de construcción de un modo decente. ¡MAL! Mejor
    • ¿Tiene sentido? ¿Respondeeso a tu pregunta? Casi... salvo cuando movías tus manos y usabas analogías extrañas. ¿Qué es lo que realmente ocurre?
    • ¡Otra pregunta genial!No es difícil, pero... implicaun poco de... matemáticas. De acuerdo. ¡Dale calor! ¡Las mates son difíciles! ¡Vamos de compras!
    • Acto 4º: Matemáticas
    • Volvamos a tu clase de álgebra…Vamos clase, ¿cuál es la respuesta? Debería ¡Yo lo sé! copiarle… Es 2x. ¿Saldrá Ashley conmigo? Tú
    • Repasando las bases… polinomio multiplicacióncuadrado gradola incógnita coeficiente suma
    • Cambiaremos las cosas ligeramente. Antes, los coeficientes podían ser tan grandes como queramos. Ahora solamente pueden ser 0 o 1: Antes Ahora la nueva “suma” Coeficientes grandes Coeficientes pequeños* Hecho curioso: ahora, la nueva suma es igual que la sustracción:
    • ¿Recuerdas cómo las multiplicaciones podíanhacer que las cosas crecieran rápido? ¡Grande y asqueroso!
    • Con la nueva suma, las cosas son más sencillas,pero la x13 es todavía demasiado grande. Hagamosque no se pueda ir más allá de x7.¿Cómo podríamos hacerlo?
    • 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: 4 en punto + 10 horas = 2 en punto + 10 horas =* 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.
    • Podemos hacer matemáticas de reloj con polinomios. En lugar de dividir por 12, mis creadores me dijeron que usara Supongamos que queremos multiplicar donde tiene coeficientes es muy grande, tenemos que hacerlo más pequeño* Recuerda que cada es o bien 0 o bien 1.
    • Lo dividimos entre y tomamos elresto: El resto: Fíjate como las bs se desplazan hacia la izquierda 1 posición. Esto es simplemente b7 multiplicado por un polinomio pequeño
    • 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 permitenconvertir multiplicación en suma:Luego… A la inversa:
    • Podemos usar algoritmos en nuestro nuevo mundo. En lugar de usar 10 como base, podemos emplear el simple polinomio polimonio 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!
    • ¿Por qué molestarnos con todas estas matemáticas?* El cifrado trata con bits y bytes, ¿no? Bueno, existe una última conexión: un polinomio de 7º grado puede Representar 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 partirde ahora, las matermáticas nos aseguran que todo se resuelve bien.
    • 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
    • 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.
    • 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 esf, que complica las matemáticas a propósito en contrapara frustrar ataques.
    • También podemos entender esas locas constantesde ronda en la expansión de la clave. Las consigoempezando con 1 y continuo multiplicando por x: Constantes de las primeras 10 rondas
    • 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 deDividirlo por x4+1. Esto se simplifica con una matriz de multiplicación: polinomio especial la columna
    • Guau… Creo que lo he entendido. Es relativamente sencillo una vez encajas Las piezas. Gracias por explicarlo.Un placer. He de irme.!Vuelve cuando quieras!
    • Pero hay mucho más de lo que hablar: mi resistenciaal criptoanálisis lineal y diferencial, mi estrategiaWide Trail, la implausibilidad de ataques de clavesrelacionadas, y... mucho más... pero no queda nadie.
    • Oh, de acuerdo... todavía hay aburridotráfico de router que tiene que sercifrado. ¡Me tengo que ir!
    • Fin