Professional Documents
Culture Documents
* 1 petabyte = mucho
… pero aún así, no parece que a nadie le
importe yo o mi historia.
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.
¡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
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.
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-magos
se reunieran para desarrollar algo mejor.
Yo
¡Votadme!
¡¡Gané!!
… 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.
Bonita historia y
todo eso, pero ¿cómo
funciona el cifrado?
Muy raro, me largo.
Acto 2º: Cifrado básico
¡Muy buena pregunta! Solamente
necesitas conocer 3 grandes ideas
para entender el cifrado.
1ª gran idea: confusión
en claro:
cifrado:
letras
2ª gran idea: difusión
MAL MEJOR
¿Responde eso a
tu pregunta?
Está bien, pero ha
sido muy general. ¿Detalles?
¿Cómo funcionas tú? ¡No soporto
los detalles!
Acto 3º: Detalles
Estaría encantado de explicaros
cómo funciono, pero antes tenéis
que firmar esto.
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
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.
Expansión de la clave: parte 1
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 2a
Primera
columna
nueva
Expansión de la clave: parte 3
* date cuenta de que las claves de 256 bits son ligeramente más complicadas.
Luego, empiezo con las rondas intermedias. Una
ronda es simplemente una serie de pasos que repito
varias veces. El número de repeticiones depende del
tamaño de la clave.
Ronda intermedia
Aplicando confusión: bytes sustitutos
Denota
'confusión'
Aplicando difusión, parte 1: desplazar filas
… y entonces
las ajusto al
otro lado
Denota
'permutación'
Aplicando difusión, parte 2: mezclar columnas
Tomo cada
columna y
mezclo los
bits
Aplicando seguridad de la clave: añadir la clave de ronda
Ronda final
Rendimiento
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 de
Inverso 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? ¿Responde
eso 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... implica
un 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ón
cuadrado grado
la 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
¡Grande y asqueroso!
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?
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:
+ 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
El resto:
Luego…
A la inversa:
Podemos usar algoritmos en nuestro nuevo mundo.
En lugar de usar 10 como base, podemos emplear el
simple polimonio
polinomio y contemplar cómo se complica la magia*.
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 resistencia
al criptoanálisis lineal y diferencial, mi estrategia
'Wide Trail', la implausibilidad de ataques de claves
relacionadas, y... mucho más... pero no queda nadie.
Oh, de acuerdo... todavía hay aburrido
tráfico de router que tiene que ser
cifrado. ¡Me tengo que ir!
Fin