Una guía para entenderAdvanced Encryption Standard(AES) con muñecos de palo              © Copyright 2009, Jeff Moser     ...
Acto 1º: Érase una vez…
Gestiono petabytes* de datos cada día. Cifro                 desde jugosa inteligencia Alto Secreto hasta                 ...
… 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 d...
¡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                   man...
Se promulgó un edicto en todo el país paraencontrar un algoritmo bueno y seguro.                    ¡Necesitamos un buen c...
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 Infor...
DES dominó la tierra durante 20 años.         Los académicos lo estudiaron atentamente.         Por primera vez había algo...
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 efectiv...
Se promulgó otro decreto* ...                                        Necesitamos algo                                     ...
Esta invitación hizo que los cripto-magosse reunieran para desarrollar algo mejor.  ¡¡Esta es mi               Usaré FROG ...
Mis creadores, Vincent Rijmen y Joan Daemen,           se encontraban entre esos cripto-magos.           Combinaron sus ap...
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 instruc...
¿Alguna pregunta?     Bonita historia y     todo eso, pero ¿cómo     funciona el cifrado?                            Muy r...
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...
2ª gran idea: difusiónEs también una buena idea esparcir el mensaje.Un ejemplo de esta difusión sería una simpletransposic...
3ª gran idea: sólo la clave es secreta           Después de miles de años, hemos aprendido que           es una mala idea ...
¿Responde eso atu pregunta?             Está bien, pero ha             sido muy general.     ¿Detalles?             ¿Cómo ...
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...
Tomo tus datos y los cargo           en esta tabla de 4 x 4*.                                                    Relleno a...
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 s...
Expansión de la clave: parte 1              Necesito muchas claves para usarlas en rondas posteriores.              Derivo...
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...
Expansión de la clave: parte 2bEntonces, hago xor de la columna con unaconstante de ronda que es diferente para cada ronda...
Expansión de la clave: parte 3  Las otras columnas son super-fáciles*. Solamente tengo que hacer  XOR de la columna anteri...
Luego, empiezo con las rondas intermedias. Unaronda es simplemente una serie de pasos que repitovarias veces. El número de...
Aplicando confusión: bytes sustitutosUso la confusión (1ª gran idea) para ocultar larelación de cada byte. Pongo cada byte...
Aplicando difusión, parte 1: desplazar filas                  Luego desplazo las filas hacia la izquierda                 ...
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 ...
En la ronda final, me salto el paso de mezclar columnas,       ya que no va a incrementar la seguridad y solamente       r...
… 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. ...
Determinar el número de rondas siempre          implica varios compromisos                                            Rend...
Cuando estaba siendo desarrollado, un chico listo fue capazde encontrar un atajo a través de 6 rondas. ¡Eso no estábien! S...
Así que en imágenes, tenemos esto:
Descifrar implica hacer todo al revés                                                         Aquí la ronda final         ...
Un último detalle: no debería de ser usado tal cual,sino como pieza de construcción de un modo decente.       ¡MAL!       ...
¿Tiene sentido? ¿Respondeeso a tu pregunta?                            Casi... salvo cuando movías tus manos              ...
¡Otra pregunta genial!No es difícil, pero... implicaun poco de... matemáticas.                          De acuerdo.       ...
Acto 4º: Matemáticas
Volvamos a tu clase de álgebra…Vamos clase, ¿cuál es la respuesta?                                                        ...
Repasando las bases…                                      polinomio               multiplicacióncuadrado                  ...
Cambiaremos las cosas ligeramente. Antes, los          coeficientes podían ser tan grandes como queramos.          Ahora s...
¿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á...
Usaremos a nuestro amigo el reloj matemático* para         hacer esto. Solamente suma cosas y hace la división.         Pr...
Podemos hacer matemáticas de reloj con polinomios. En lugar     de dividir por 12, mis creadores me dijeron que usara     ...
Lo dividimos entre                          y tomamos elresto:      El resto:     Fíjate como las bs se desplazan     haci...
Ahora ya estamos preparados para la explosión másfuerte del pasado: los logaritmos. Una vez dominados,el resto es pan comi...
Podemos usar algoritmos en nuestro nuevo mundo.   En lugar de usar 10 como base, podemos emplear el   simple polinomio    ...
¿Por qué molestarnos con todas estas matemáticas?*         El cifrado trata con bits y bytes, ¿no? Bueno, existe         u...
Trabajando con bytes, la suma de polinomios se convierte en una     simple xor. Podemos usar nuestros conocimientos de log...
Dado que sabemos cómo multiplicarlos, podemos encontrar el     byte del polinomio inverso para cada byte. Este es el byte ...
Ahora ya podemos entender la misteriosa s-box.Tomaun byte a y le aplica dos funciones. La primera es g,que solamente encue...
También podemos entender esas locas constantesde ronda en la expansión de la clave. Las consigoempezando con 1 y continuo ...
Mezclar las columnas es lo más complicado. Trato cada columna comoun polinomio. Uso entonces nuestro nuevo método para mul...
Guau… Creo que lo he entendido. Es                          relativamente sencillo una vez encajas                        ...
Pero hay mucho más de lo que hablar: mi resistenciaal criptoanálisis lineal y diferencial, mi estrategiaWide Trail, la imp...
Oh, de acuerdo... todavía hay aburridotráfico de router que tiene que sercifrado. ¡Me tengo que ir!
Fin
Una guía para entender Advanced Encryption Standard (AES) con muñecos de palo
Upcoming SlideShare
Loading in …5
×

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

9,247
-1

Published on

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

Published in: Technology
6 Comments
7 Likes
Statistics
Notes
No Downloads
Views
Total Views
9,247
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
232
Comments
6
Likes
7
Embeds 0
No embeds

No notes for slide

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

  1. 1. 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
  2. 2. Acto 1º: Érase una vez…
  3. 3. 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
  4. 4. … pero aún así, no parece que a nadie leimporte yo o mi historia.
  5. 5. La historia de cómo logré abrir mi propio caminopara convertirme en el rey mundial del cifradode bloques es mejor que la de Cenicienta.
  6. 6. ¡Guau! Todavía estás ahí ¿Quieres oírla?Bien, empecemos...
  7. 7. 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
  8. 8. Se promulgó un edicto en todo el país paraencontrar un algoritmo bueno y seguro. ¡Necesitamos un buen cifrado!
  9. 9. Un digno competidor llamado Luciferse dio a conocer.
  10. 10. 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
  11. 11. 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.
  12. 12. A lo largo de los años, muchos atacantesdesafiaron a DES y fue derrotado en varias batallas.
  13. 13. La única manera de protegerse de esos ataques fueusar DES tres veces seguidas para formar Triple-DES. Esto fue efectivo, pero terriblemente lento.
  14. 14. Se promulgó otro decreto* ... Necesitamos algo al menos tan robusto como Triple-DES, pero más rápido y flexible.* ~ a principios de 1997
  15. 15. 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
  16. 16. 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.
  17. 17. Todo el mundo se reunió para votar y... ¡Votadme!
  18. 18. ¡¡Gané!!
  19. 19. … 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
  20. 20. ¿Alguna pregunta? Bonita historia y todo eso, pero ¿cómo funciona el cifrado? Muy raro, me largo.
  21. 21. Acto 2º: Cifrado básico
  22. 22. ¡Muy buena pregunta! Solamentenecesitas conocer 3 grandes ideaspara entender el cifrado.
  23. 23. 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
  24. 24. 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
  25. 25. 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
  26. 26. ¿Responde eso atu pregunta? Está bien, pero ha sido muy general. ¿Detalles? ¿Cómo funcionas tú? ¡No soporto los detalles!
  27. 27. Acto 3º: Detalles
  28. 28. Estaría encantado de explicaroscómo funciono, pero antes tenéisque firmar esto. Uh, ¿qué es eso?
  29. 29. 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
  30. 30. 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.
  31. 31. En la ronda inicial calculo una OR-Exclusiva (XOR)de cada byte con el correspondiente de la clavepara la primera ronda.
  32. 32. 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.
  33. 33. 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.
  34. 34. 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:
  35. 35. 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
  36. 36. 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.
  37. 37. 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
  38. 38. 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
  39. 39. Aplicando difusión, parte 1: desplazar filas Luego desplazo las filas hacia la izquierda … y entonces las ajusto al otro ladoDenota permutación
  40. 40. Aplicando difusión, parte 2: mezclar columnasTomo cadacolumna ymezclo los bits
  41. 41. 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:
  42. 42. 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.
  43. 43. … 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!
  44. 44. Determinar el número de rondas siempre implica varios compromisos RendimientoSeguridadLa seguridad siempre implica un coste en rendimiento – Vincent Rijmen
  45. 45. 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
  46. 46. Así que en imágenes, tenemos esto:
  47. 47. 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
  48. 48. Un último detalle: no debería de ser usado tal cual,sino como pieza de construcción de un modo decente. ¡MAL! Mejor
  49. 49. ¿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?
  50. 50. ¡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!
  51. 51. Acto 4º: Matemáticas
  52. 52. 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ú
  53. 53. Repasando las bases… polinomio multiplicacióncuadrado gradola incógnita coeficiente suma
  54. 54. 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:
  55. 55. ¿Recuerdas cómo las multiplicaciones podíanhacer que las cosas crecieran rápido? ¡Grande y asqueroso!
  56. 56. 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?
  57. 57. 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.
  58. 58. 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.
  59. 59. 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
  60. 60. 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:
  61. 61. 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!
  62. 62. ¿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.
  63. 63. 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
  64. 64. 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.
  65. 65. 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.
  66. 66. 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
  67. 67. 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
  68. 68. 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!
  69. 69. 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.
  70. 70. Oh, de acuerdo... todavía hay aburridotráfico de router que tiene que sercifrado. ¡Me tengo que ir!
  71. 71. Fin

×