Anda di halaman 1dari 64

ALGORITMOS CRIPTOGRÁFICOS ACTUALES

Tipos de Cifradores

Mensaje en Claro

Cifradores en Flujo:
• Son los que cifran el mensaje símbolo a Generador Secuencia Cifrante
símbolo, o bit a bit, de modo secuencial.
• Cada cifrado es independiente de los
Clave E +
demás cifrados en el seno del mensaje.
- Vigenere con autoclave, Vernam, etc.
Criptograma

Mensaje en Claro
Cifradores en Bloques:
• Son sistemas que tratan un bloque de
texto en claro cada vez (n bits), y dan como
resultado un bloque de texto cifrado. Clave E
• La operación de cifrado dentro del bloque
es en paralelo
Criptograma
Objetivos de Shannon

• Conociendo las técnicas del criptoanálisis, se pueden diseñar


nuevos cifradores inmunes a ellas.
• Claude Shannon desarrollo la Teoría de la Información y la
aplicó a los sistemas de comunicación secreta, llegando a
identificar objetivos concretos para el diseño de cifradores
criptográficos.

Objetivo:
• Dificultar el criptoanálisis basado en análisis estadístico del criptograma o del
posible lenguaje del texto en claro (estadística de la fuente).
• En un cifrado ideal toda la estadística del criptograma es independiente de las
propiedades del mensaje y de la clave utilizada.

Método:
• Shannon propone que los cifrados se diseñen de modo que la Confusión y
Difusión sean máximas.
Difusión y Confusión
Difusión: Confusión:
• Las propiedades estadísticas del texto en • Intenta hacer que la relación entre
claro deben disiparse, distribuirse y la estadística del criptograma y el
mezclarse para dar las estadísticas de valor de la clave de cifrado sea tan
todo el criptograma. compleja como sea posible.
• Cada símbolo del texto en claro debe • Se consigue utilizando complejos e
afectar el valor de todos los símbolos en irreversibles procesos de
el criptograma. sustitución.
• Se consigue abundantes permutaciones
de bits

k
yn   mn i (mod 26) H
i 0

+ Que todos los bits de la


entrada que participen en +
el cálculo de cada bit de
la salida
Cifrado por sustitución
• Un cifrador en bloques trabaja sobre conjuntos de n
bits consecutivos del texto en claro.
• Hay 2n diferentes posibles bloques de texto en
claro.
• Para que le algoritmo sea reversible y no singular, Decodificador 4-bits
el cifrado y descifrado de cada uno de ellos debe
dar un solo bloque.

Permutación

elementos
de 16
Cifrador de 4-bits:
• La entrada es alguno de los 16 posibles valores y
se la relaciona con alguna de las 16 posibles Codificador 4-bits
salidas.
• Hay 16! formas de hacer esta asignación; es decir
2.092×1013 posibilidades.
• El cifrado y descifrado se pueden definir en forma
Si se usan bloques grandes,
de tablas de sustitución.
su realización es ineficaz y su
• Si se usan bloques pequeños, los cifradores velocidad de proceso baja.
resultan débiles frente a los análisis estadísticos de
las frecuencias de aparición.
El Cifrado de Feistel
• ¿Es posible aproximarse a la situación ideal que representan
los bloques grandes construyendo los cifradores con bloques
más pequeños y mas fácilmente realizables?
• Se puede aproximar el cifrado por sustitución utilizando el
concepto de Cifrado Producto:

– Se realizan dos o más cifrados básicos en secuencia, de


Horst Feistel
modo que el resultado final sea criptográficamente más
fuerte que la mera adición de sus componentes.

• Feistel propuso el uso de cifrados que alternasen las sustituciones y las


permutaciones (Redes S-P).
• Las redes Sustitución-Permutación son una aplicación práctica de los conceptos
de Shannon sobre la mezcla de Confusión (Sustitución) y Difusión (Permutación).

Feistel, H.: “Cryptography and Computer Privacy”. Scientific American, May 1973
Feistel, H.;Notz,W.;Smith, J.: “Some Cryptographic Techniques for Machine-to-Machine
Data Communications”. Proceedings of the IEEE, November 1975
El Cifrado de Feistel
Parámetros de Entrada: Un bloque de 2w bits y una clave
I0 D0
(K = [ k1, k2, k3, …, k16 ]).
1 Los bloques de entrada se dividen en dos mitades
(I0 y D0).  F
K1
2 Los bloques de entrada se procesan a través de n
etapas (rounds) K2
3 Antes de salir se concatenan los dos bloques  F
resultantes (I4 y D4).
K3
 F
• Todas las etapas tienen la misma estructura.
• Se aplica una función de etapa F con una de las partes
y el resultado se suma a la otra.
K16
• El proceso de descifrado es el mismo que el cifrado.  F
• Descifrado: Se opera en sentido inverso, cambiando el
orden de las claves intermedias.
• No es necesario desarrollar dos algoritmos distintos I0 D0
para el cifrado y el descifrado.
Parámetros de un Cifrado Feistel
1 Tamaño del Bloque: Grandes bloques significa mayor
difusión, mayor seguridad pero menor velocidad de
proceso.
2 Tamaño de la Clave: Claves largas suponen mayor
seguridad ya que son mas difíciles de adivinar, pero
también son más difíciles de manejar y generar.
3 Número de Etapas: Una etapa en sí no aporta gran
seguridad pero varias repetidas aportan una seguridad
creciente.
4 Algoritmo de Claves Intermedias: Cuanto mayor sea
su complejidad, mayor será su resistencia al
Criptoanálisis.
5 Función de Etapa: Cuanto mayor sea su complejidad,
mayor será su resistencia frente al Criptoanálisis, pero F
más baja la eficiencia del sistema.
DES = Data Encryption Standard
Antecedentes:
• Un proyecto de IBM dirigido por H. Feistel y finalizado en
1971 produjo el algoritmo “Lucifer”.
• Lucifer trabaja con bloques de 64 bits y usa claves de 128
bits.
• Lucifer fue vendido a Lloyd’s of London para proteger
transacciones bancarias en cajeros automáticos de IBM.

Proyecto:
• Proyecto de IBM dirigido por W. Tuchman y C. Meyer en el
que participó activamente la NSA.
• El DES es una redefinición del cifrador Lucifer con una
clave de longitud menor para que cupiese en un chip.
• Adoptado en 1977 por el NIST como estándar Federal
(FIPS PUB 46) para el uso civil con datos confidenciales No
Clasificados.
• Trabaja sobre bloques de 64 bits y tiene una clave de 56
bits.
El DES
Ha recibió muchas críticas desde el mismo día en
que se publicó:
- Longitud de clave muy corta (72 bit menos que en
Lucifer) que lo hace sensible a ataques por fuerza
bruta.
- Criterios de Diseño “CLASIFICADOS” por la NSA lo
que hace pensar que hayan podido introducir
“debilidades” sólo conocidas por ellos.

Hechos:
• Lleva funcionando más de 20 años bajo el
escrutinio público y nadie lo ha roto.
• El Criptoanálisis Diferencial actual, ha
demostrado que su estructura es muy sólida.
• En 1999 el DES ha expirado como estándar
NIST y ha sido sustituido por el AES2000.
Esquema General del DES
P1
I0 D0
• El procesado sigue tres fases:
<< <<
1. Permutación Inicial que no tiene
K1 P2 K
implicaciones criptográficas (no  F
dibujada) << <<

2. 16 etapas en las que se aplica K2 P2


 F
la misma función de etapa (F) << <<
basada en permutaciones y K3 P2
 F
sustituciones, y dependiente e
una clave de etapa. (Ki)
<< <<
3. Permutación Final (inversa de la
Inicial).  F
K16 P2

• El un cifrador que sigue el diseño Rotaciones y


Permutacione
de las cadenas de Feistel. s Públicas
I0 D0
Función de Etapa

32 01 02 03 04 05 32-bits Ki
04 05 06 07 08 09 Combina un bloque
08 09 10 11 12 13 expandido de datos
12 13 15 14 15 17 con la clave
15 17 18 19 20 21 Expansión intermedia de etapa.
20 21 22 23 24 25 Es la fuente de toda la
24 25 26 27 28 29 resistencia
28 29 30 31 32 01 48 - bits 48 - bits criptográfica del DES.

Expansión

6-bits
1 2 3 4 5 6 7 8
Permutación 4-bits

16 07 20 21 29 12 28 17
Sus criterios de
01 15 23 26 05 18 31 10
P
02 08 24 14 32 27 03 09 diseño son secretos.
19 13 30 06 22 11 04 25 Ha demostrado ser
32-bits muy buena.
Cajas de Sustitución
• Hay 8 cajas diferentes definidas como Tablas
E4D12FB83A6C5907 F18E6B34972DC05A
de Sustitución. 0F74E2D1A6CB9538 3D47F28EC01A69B5
• Cada una tiene 6 bits de entrada y 4 de salida 41E8D62BFC973A50 0E7BA4D158C6932F
(compresión). FC8249175B3EA06D D8A13F42B67C05E9
• Los elementos de la tabla son los dígitos
A09E63F51DC7B428 7DE3069A1285BC4F
hexadecimales [0,1,...,E,F]. D709346A285ECBF1 D8B56F03472C1AE9
• Los 2 bits extremos determinan la fila dentro D6498F30B12C5AE7 A690CB7DF13E5284
de la caja y los 4 bits centrales determinan la 1AD069874FE3B52C 3F06A1D8945BC72E
columna.
2C417AB6853FD0E9 C1AF92680D34E75B
EB2C47D150FA3986 AF427C9561DE0B38
421BAD78F9C5630E 9EF528C3704A1DB6
S4 B8C71E2D6F09A453 432C95FABE17608D

4B2EF08D3C975A61 D2846FB1A93E50C7
7DE3069A1285BC4F D0B7491AE35C2F86 1FD8A374C56B0E92
D8B56F03472C1AE9 14BDC37EAF680592 7B419CE206ADF358
A690CB7DF13E5284 6BD814A7950FE23C 21E74A8DFC90356B

3F06A1D8945BC72E
Efecto de Avalancha
Ava ncha de la Entra da Avalancha de la Clave

50
50

40 40

Bits cambiados
Bits cambiados
30 30

20
20

10
10
0
0 1 3 5 7 9 11 13 15 17

11

13

15

17
Round
Round

Propiedad:
– Un pequeño cambio en el texto en claro o en la clave debe producir un
cambio significativo e imprevisible en el criptograma.
– Si se cambia un bit en la entrada o en la clave, todos los bits del criptograma
deben verse afectados y cambiarán con una probabilidad de ½.
• El DES muestra un fuerte efecto de avalancha.
• Tras cuatro etapas, los bits del bloque de salida dependen de todos
los bits de la entrada y de todos los bits de la clave en igual manera.
Ataques por Fuerza Bruta al DES
Diffie y Hellman
• En 1977, postularon que la tecnología para construir una
máquina masivamente paralela (106 chips x 106 DES/s) bajaría
el tiempo de ataque a 10 horas y sólo costaría $20 millones.

Rocke Verser
• Desarrolla un programa de ataque y lo distribuye por Internet.
Empieza el 18 de Febrero de 1997 y 96 días después soluciona
un reto de RSA (por $10.000).
• Con el software utilizado, un Pentium a 200 MHz podía probar 1
millón de claves/segundo. A esta velocidad costarían 2.285
años barrer todo el espacio de claves.
• El número de PCs involucrados al final llego a 78,000 diferentes
direcciones IP, alcanzándose un máximo de 14,000 máquinas
en 24 horas.
• En el momento en el que se encontró la clave se había recorrido DES cracker (aka "Deep
una cuarta parte del espacio de claves y la velocidad de Crack") de la Electronic
búsqueda era de 7 billones de claves por segundo. Frontier Foundation en 1998
Ataques al DES
Criptoanálisis Diferencial (1990).
• Permite reducir la complejidad del ataque hasta 247
textos en claro elegidos (interés teórico).
• Parece ser que los diseñadores del DES ya conocían
(1974) ese ataque y se protegieron contra él en el diseño
de las cajas-S.
Eli Biham Adi Shamir
• Es un ataque bastante complejo.

Criptoanálisis Lineal (1993).


• Se basa en encontrar aproximaciones lineales que describan las
transformaciones realizadas en el algoritmo DES
• Puede obtener la clave DES con 247 textos en claro conocidos. (interés
teórico).
• Consiste en es encontrar ecuaciones lineales del tipo
P[1, 2,...,a] + C[1, 2,...,b] = K[1,2,...,c] Mitsuru Matsui
donde ,  y  representan posiciones fijas de bits, y que se cumpla con
una probabilidad p  0,5
Modos de Operación
• Los mensajes a cifrar son casi siempre mucho mas largos que el
tamaño del bloque del cifrador, por lo que es necesario encontrar un
modo de procesarlos.
• Los cifradores de bloques son elementos básicos de muchos servicios
de seguridad además de la Confidencialidad (Integridad, Firma
Simétrica, etc.).

• Además de la publicación del algoritmo DES, también se definieron


cuatro Modos Básicos de Operación (FIPS PUB 74 y 81):

– ECB (Electronic Code Book)


– CBC (Cipher Block Chaining)
– CFB (Cipher Feedback)
– OFB (Output Feedback)
– CTR (Counter mode, aka Integer Counter Mode & Segmented Integer
Counter mode)
• Estos modos pueden utilizarse con cualquier cifrador por bloques, y
cubren la inmensa mayoría de las aplicaciones.
Electronic Code Book
Mensaje en claro

• Es el modo de uso más simple para cualquier cifrador


de bloques.
• Se usa para el cifrado de mensajes de tamaño inferior K E
el del bloque (e. g., otras claves).
• “Code Book” se refiere a que, bajo el control de una
clave, lo que hace el DES es generar un Libro de
Criptograma
Códigos.

• No favorece la dispersión sobre


todo el criptograma.
• Mismos textos en claro dan los
mismos criptogramas.
• Los errores sólo afectan al bloque
en el que se producen. Imagen Original Imagen cifrada Imagen cifrada
en modo ECB en modo CBC
Cipher Block Chaining

• Es un modo de encadenamiento con un estado interno del tamaño del bloque a


procesar.
• A la entrada del cifrador se le entrega el  del texto en claro y el criptograma
anterior.
• Para el primer bloque, es estado interno contiene un Valor de Inicialización (IV)
• El mismo texto en claro produce diferentes Pi-1 Pi Pi+1
criptogramas según su posición en el mensaje.
• El Valor Inicial (IV) debe ser conocido y puede
formar parte de la clave.  (IV)
• Es el modo de cifrar mensajes con más de un Ci-1
bloque.
K E
• Puede utilizarse para la autenticación (MACs).

·······
Ci-1 Ci
·
Cipher FeedBack y Output FeedBack

• Permiten utilizar un cifrador de bloques como si fuese un cifrador de flujo que


permite cifrar en tiempo real.
• Ambos se pueden ajustar para generar bloques (1 a n bits) menores que le
bloque del cifrador (n)

• Mismo texto en claro va a dar


(IV) diferentes criptogramas según (IV)
sui posición en el mensaje
• Elimina la necesidad de
K E completar la longitud del K E
mensaje a un número entero
de bloques (padding).
• La entrada al cifrador es un
Secuencia cifrante
registro de desplazamiento,
 que en la primera operación 
····· ····· contiene un valor de ····· ·····
inicialización (IV)
····· ·····
Cipher Feedback Mode Output Feedback Mode
Cifrado Doble con el DES

• Para aumentar la seguridad del cifrado es


necesario recurrir a claves más largas de 56
bits.
K1 K2 Clave de
CIFRADO 112 bits
• Aplicando el principio de cifrado producto, se
puede cifrar dos veces con claves distintas Criptograma
Mensaje
(56+56 = 112 bits).
E E
• Si la siguiente ecuación tuviese solución, la
seguridad efectiva sólo sería de 56 bits:
Ek2[Ek1(m)] = Ek3(m)
K2 K1 Clave de
• En 1992 se demostró que no tenía solución, DESCIFRADO 112 bits
por lo que el 2-DES tiene, en principio, una
clave efectiva de 112 bits. Criptograma Mensaje
D D
Sin embrago, …
¡¡ NO ES REALMENTE ASÍ !!
Ataque por Coincidencia
Intermedia Por la definición del 2DES con dos
claves k1 y k2 (112 bits):
C = Ek2 (Ek1(P)) →
Conocidos dos pares de texto en claro y su criptograma,
(P,C) y (P',C'): → Dk2(C) = Ek1(P)
1. Ciframos P con cada una de las 256 claves k1 y
almacenamos el resultado en una tabla [X, k1] ordenada
según el valor X.
2. Desciframos C utilizando las 256 claves k2 y cada P E X D C
resultado lo buscamos en la tabla [X, k1].
3. Si se encuentra, Probamos las claves k1 y k2 con el 2- k1 k2
DES y el par (P',C‘), y si se cumple la ecuación, se dan
por buenas las anteriores claves, en otro caso
continuamos el proceso de descifrado.
La carga de trabajo de este
− Para cualquier P hay 256 posibles C que le podrían ser ataque es:
asignados por el 2DES con sus 112 bits de clave. 1. Generación de la tabla X
− En media, para un par (P,C) el número de diferentes (256 cifrados DES),
claves que pueden hacerle corresponder un determinado 2. Ordenamiento (n·log(n)) y
C, es 2112 / 264 = 248. (¿Cuál es la correcta?) almacenamiento (256 claves
− Con los otros 64 bits de P y su correspondiente C, la x 64 bits = 263 bits = 259 bytes) y
probabilidad de falsas alarmas se reduce a 248 / 264 = 2-16 3. Operaciones de descifrado
y la probabilidad de dar con la clave correcta es de 1- 2-16. DES (máximo 256).
Cifrado Triple con el DES
K1 K2 K3 Clave de
• Para solucionar el problema del
CIFRADO 168 bits
2DES podemos utilizar tres etapas.
• Hay dos posibilidades utilizar: Criptograma
Mensaje
– dos claves (112 bits) o E D E
– tres claves (168 bits)
K1 K2 Clave de
• Con dos claves, el Ataque por CIFRADO 112 bits
Coincidencia Intermedia** requiere
256 cifrados y 256 textos en claro Mensaje Criptograma
elegidos. E D E
• Frente a ese mismo ataque, el
3DES con tres claves tiene una
seguridad equivalente máxima de
120 bits y prácticamente
equivalente a de dos claves. (ACI) = 2120-Log2(N)

** Ver https://porsche.ls.fi.upm.es/Material/Varios/MeetInTheMiddle_3DES.pdf
IDEA = International Data Encryption
Algorithm.
• Propuesto en 1990 y refinado en 1992, por Xuejia Lai y James
L. Massey.
• Es un cifrador simétrico de bloques de 64 bits con una clave
larga de 128 bits, y es la alternativa Europea al DES.
• Es un algoritmo patentado pero puede utilizarse públicamente James L. Massey
sin problemas legales conocidos.
• Esta incluido en muchas aplicaciones de dominio público.

Longitud del Bloque:


• Es suficientemente grande para evitar los ataques estadísticos.
Xuejia Lai
• Hasta el año 2000 se ha aceptado que 64 bits eran suficientes
pero el AES trabaja con bloques más grandes.

Longitud de la Clave:
• Es suficientemente larga para evitar los ataques por fuerza
bruta.
IDEA: Operaciones Básicas

Operaciones utilizadas: Fa Fb
– La función OR exclusiva bit a bit; []
– La suma de enteros módulo 216; [+] Za  +
– La multiplicación de enteros módulo
216+1; []
Las entradas son de 16 bits y el cero lo representa el 216. +  Zb

Propiedades:
Ga Gb
o Ningún par de las tres operaciones
satisface la propiedad distributiva;
a + (b*c)  (a + b) * (a + c) o Tiene 4 argumentos de 16 bits: Fa, Fb,
o Ningún par de las tres operaciones Za, Zb.
satisface una ley asociativa; o Su criptoanálisis es más difícil que en
a + (b  c)  (a + b)  c el DES que sólo utiliza cajas-S y .
o Es una transformación compleja de o Cada bit de salida depende de cada
multiplicaciones y sumas modulares. bit de los argumentos.
Etapa básica del IDEA
X1 X2 X3 X4
• El algoritmo tiene 8 etapas iguales,
seguidas de una transformación final,
que depende de cuatro claves de 16 bits. Z1 · + Z2
• Los argumentos de cada etapa son: Z3 + · Z4
– Un bloque de texto de 64 bits. 
– Un bloque de claves de 96 bits. 
• La clave original de 128 bits se expande
hasta 832 bits de claves intermedias · +
Z5
(x6,5).
• Hay dos etapas de mezcla con las claves + · Z6
intermedias:
Z1, Z2, Z3 y Z4  
Z5 y Z6  
• El intercambio final de los bloques
intermedios Aumenta el grado de mezcla
y Dificulta el criptoanálisis. W1 W2 W3 W4
Blowfish
Cifrador simétrico de bloques (64-bits) desarrollado por
Bruce Schneier en 1993.

Características:
• Rapidez: cifra datos en microprocesadores de 32
bits a 18 ciclos de reloj por byte. (CPU 800 MHz  44,4
Mbs-1)
• Compacto: se puede codificar en menos de 5 Kb de
memoria.
• Simple: Tiene una estructura sencilla y facilita la
evaluación de su seguridad. Algoritmo C/Et Etapas C/byte

• Seguridad Ajustable: Permite longitudes de clave Blowfish 9 16 18 1


variables hasta 448 bits. (desde 32 a 448 bits).
• La clave se utiliza para generar: DES 18 16 45 2,5

– 18 claves intermedias de 32 bits y IDEA 50 8 50 2,8


– 4 cajas-S cada una con 256 entradas de 32 bits.
3DES 18 48 108 6,0
Genera un total de 1042 valores de 32 bits. (Expansión  1042-74,4)
Subclaves y cajas-S
k1 k2 k3 k14
······
• Las claves se almacenan en un vector k1, k2, Vector- P
..., k14 de palabras de 32-bits (448 bits).
P1 P2 ····· P18
• Las subclaves se almacenan en el vector
P1, P2, ..., P18. S0,0 S0,1 ····· S0,255
• Hay cuatro cajas-S cada una con 256 S1,0 S1,1 ····· S1,255
entradas de 32 bits:
S2,0 S2,1 ····· S2,255
S1,0, S1,1, ..., S1,255 S2,0, S2,1, ..., S2,255
S3,0, S3,1, ..., S3,255 S4,0, S4,1, ..., S4,255 S3,0 S3,1 ····· S3,255

Cajas - S
• Se inicializa el vector P y las cuatro cajas-S
con la representación binaria de la parte Se calcula el  de P con K,
fraccionaria de . reutilizando las palabras de K que
sean necesarias.
P1 = 243F6A88, P2 = 85A308D3, ...., S4,254
= 578FDFE3,…, S4,255 = 3AC372E6. P1 = P1  K1, P2 = P2  K2, ...,
P15 = P15  K1, ..., P18 = P18 
K4.
Generación del Estado Interno
(Pi, Si,j)
00…0 64-bits
Generación Dinámica:
• Cifrar el bloque de 64 ceros utilizando los P
E ...
vectores P y S, y reemplazar P1 y P2 con
lo que se obtenga. S

• Lo anterior se cifra con los valores


actuales de P y S, y reemplaza P3 y P4 con
el resultado, etc. ... P
E
• Se continua este proceso hasta que se da S
valor a las dos ultimas celdas de S4, es
decir a S4,254 y S4,255.
• El proceso completo requiere 521
ejecuciones del algoritmo para generar los
vectores P y S pariendo del punto cero.
P
• Es un inconveniente cuando la clave E ...
cambia frecuentemente. S
Cifrado con el Blowfish
• Utiliza dos operaciones:
– La suma módulo 232 (+) P1 
– El OR exclusivo bit a bit () F 
• Estas dos operaciones no conmutan entre sí. 1
• Utiliza una cadena de Feistel con 16 etapas y un
intercambio final bajo el control de dos claves.
• La función de Etapa no depende de las claves
intermedias y es siempre la misma.
P16 
Descifrado: 16
F 
• Utiliza la misma estructura que en el cifrado y las
mismas claves intermedias.
• El orden de las claves intermedias es el contrario
que en el cifrado.
• El descifrado es la secuencia de cifrado ejecutada P18  P17 
al revés.
Función de Etapa Blowfish
• Es una combinación alternada
de la suma y el .
32 bits
• Utiliza cuatro cajas-S con 256
entradas, cuyas salidas son 8  256
números de 32-bits.
• Su valor inicial depende de la
clave. 1f201094
8 bits ef0ba75b
• Un ataque por fuerza bruta es
69e3cf7e
costoso por lo complejo de la S1 S2 S3 S4 393f4380
generación de subclaves (522
32 bits fe61cf7a
ejecuciones). + ....
• La función F da el mejor Efecto
de Avalancha posible respecto a  ....
83877605
los bloques de datos y a las +
4523ecf1
claves intermedias.
• La función F no depende de la 32 bits
etapa pero si los valores de Pi y Caja-S
de la clave empleada.
El Algoritmo RC5

• Es una familia de cifradores simétricos de bloques


con los siguientes parámetros:
– Permite tres tamaños de bloque: 32, 64 y 128 bits
– Tiene un número variable de etapas: 1, 2, ..., 255
– La clave tiene longitud variable: 1, 2, ..., 255 bytes

• Las versiones se representan por RC5-w/r/b siendo


la versión RC5-32/12/16 la que se denomina
“oficial”:
– Bloque, w = 2 palabras de 32 bits  64 bits
– Etapas, r = 12 (rounds)
– Bytes de la clave, b = 16 bytes  128 bits
Características de los RC5

• Hardware/Software: Utiliza operaciones nativas


de los procesadores.
• Rapidez: Trabaja con palabras y operaciones
sobre ellas, por lo que tiene un buen nivel de
A bit slice of an Arithmetic
paralelismo al tratar los bits. Logic Unit

• Adaptable al Registro ALU: Si se utilizan


procesadores con diferentes longitudes de registro,
la familia RC5 incluye el más adecuado.
• Seguridad vs. Velocidad: El número de etapas es
variable, permitiendo un balance entre velocidad y
seguridad.
• Seguridad Adaptable: La longitud de la clave es
variable. USSR 1804VS2 Clon
soviético del procesador
AMD 2903 bit-slice.
Características de los RC5
• Sencillez: tiene una estructura clara y simétrica, lo
que facilita la evaluación de su seguridad.
• Pequeña Memoria: utiliza pocos registros
intermedios (algoritmo adecuado para su uso en tarjetas
inteligentes)
• Alta Seguridad: Los parámetros que definen el
algoritmo se pueden hacer bastante grandes,
asegurando niveles de seguridad muy altos.
• Novedoso: El RC5 utiliza operaciones básicas
dependientes de los datos en cada etapa
(rotaciones circulares).
• Publicidad: Se incluye en varias aplicaciones de
dominio público.
Expansión de la Clave

• Realiza operaciones complejas para extender la


clave secreta a t subclaves;
t = 2r + 2 (r = nº etapas)

• Las subclaves se generan a partir de la clave K y


se almacenan en un vector de t-palabras; [S0,
S1, ..., St-1].
K (1 – 255 B)

• No es fácil determinar K conociendo S.

S0…St-1
• El procedimiento de expansión tiene cierto grado (2r+2 palabras)
de “sentido único”; es decir, es de difícil
inversión.
Expansión de la Clave
(b) bytes Clave
Procesos:
...... 00..0
1 Se inicializa S con valores (2w) públicos.
w bits de los decimales de las constantes
universales e (base logaritmo natural) y  (razón ... L
(c) palabras
o proporción áurea).
2 Se construye L a partir de la clave K Mezcla 3
(padding con 0’s).
3 Se mezclan repetidas veces el contenido S
...
de S y L , obteniéndose el resultado en el 2(r+1) palabras
vector S.
Inicialización
e  2 , 7182818284 ... Pw S
2 (r+1) palabras
Golden Ratio   1, 6180339887 ... ... ...

Pw  impar e  2 2 w  + + + + +
Qw  impar   12 
w
Qw
Expansión de la Clave
Etapa de Mezcla:
• Una vez inicializados S y L, se mezclan realizando tres veces las
siguientes transformaciones completas:

Transformación de S Transformación de L

S0 Si St-1 L0 Lj Lc-1
...... ...... ...... ......

x = Si-1 + y = lj-1 y = Lj-1 +


+ x = Si-1
<< 3
<<

x e y son registros temporales, uno para S y otro para L.


El Cifrado en RC5
• No sigue una estructura
Feistel clásica. 
• Utiliza una función de S0 + + S1

Función de Etapa
etapa dependiente de la 
clave. 
S2 F S3
• Cada palabra del bloque S2i +
se combina con una clave 
intermedia a través de la S4 F S5
suma módulo 232.
+ S2i+1
• Transforma
simultáneamente las
mitades derecha e Cifrado:
S2r F S2r+1 A = A + S[0]
izquierda del bloque.
B = B + S[1]
Utiliza dos operaciones primitivas: for i = 1 to r do
A =(A  B) << B) + S[2i]
– OR-exclusivo bit a bit;  B =(B  A) << A) + S[2i+1]
– Rotaciones circulares a la izquierda; [] (n)
– el grado de rotación lo determinan los n bits menos significativos del argumento de rotación,
donde n = log2(w) y w es la longitud de la palabra.
El Descifrado en RC5
Cifrado Cifrado Descifrado
A = A + S[0]
B = B + S[1]
For i = 1 to r do
A = ((A  B) << B) + S[2·i];
S0 + + S1 S0 - - S1
B = ((B  A) << A) + S[2·i+1];
Descifrado    
For i = r downto 1 do
   
B = ((B - S[2·i+1]) >> A)  A;
A = ((A - S[2·i]) >> B)  A;
S2 + + S3 S2 - S3
B = B – S[1];
A = A – S[0];

• La secuencia de computo no es simétrica    


(es diferente si se recorre desde el principio al
final o en sentido inverso).
• En el cifrado se suma, mientras que en el
   
descifrado se resta.
• En el cifrado se rota a la izquierda, en el S4 + + S5 S4 - - S5
descifrado se rota hacia la derecha.
• Las claves de etapa se usan en sentidos
inversos cuando se cifra y se descifra.
CipherText Stealing (CTS)
• Es un método general de uso de un cifrador de bloques.
• Permite procesar mensajes cuya longitud no es divisible por la
longitud del bloque, y sin que se de la extensión del
criptograma.
• Son técnicas que alteran el tratamiento de los dos últimos
bloques del mensaje
• Dan lugar al cambio en el orden de transmisión de los dos
últimos bloques de criptograma.
• El resultado es un criptograma con la misma longitud del
mensaje original.
• El procesado de todos los demás bloques queda inalterada.
• En principio, se puede utilizar con cualquier cifrador de bloques
y con cualquier modo de operación.
• Los modos mas comunes que utilizan esta técnica son ECB y
CBC.
• En el modo CTS-CBC, cuando el mensaje es mas corto o igual
a un bloque el valor IV puede actuar como primer bloque del
criptograma, y hay que mandar un IV modificado al receptor.
ECB CipherText Stealing
CTS-ECB introduce una dependencia inter-bloque en los dos
últimos bloques, lo que altera las propiedades de propagación Pn-1 Pn Cola
de errores.
K E K E
CTS-ECB Cifrado:
1. En−1 = E(K, Pn−1). Cifrar Pn−1 para crear En−1. Cn Cola
2. Cn = Cabeza(En−1, M) [primeros M bits de En−1].
3. Dn = Pn || Cola(En−1, B−M).
4. Cn−1 = E(K, Dn). Cifra Dn para generar Cn−1. Cn-1 Cn

Nota: Los bits de Cola(En−1, B−M) son cifrados dos veces.


CTS- ECB Descifrado:
Cn-1 Cn Cola
1. Dn = D(K, Cn−1).
2. En−1 = Cn || Cola(Dn, B−M).
3. Pn = Cabeza(Dn, M). K D K D
4. Pn−1 = D(K, En−1).
Pn Cola
Nota: En el modo CTS-ECB, un error de transmisión en Cn−1
corromperá tanto el descifrado de Pn−1 como el de Pn. Un bit de error en
Cn corromperá Pn−1. Pn-1 Pn
CBC CipherText Stealing
Pn-1 Pn 0…0

CTS-CBC Cifrado:
1. Xn−1 = Pn−1 XOR Cn−2.  
2. En−1 = E(K, Xn−1).
3. Cn = Cabeza(En−1, M). K E K E
4. P = Pn || 0B−M [Extender Pn con ceros para crear P]
5. Dn = En−1  P.
Cn Cola
6. Cn−1 = E(K, Dn).

CTS- CBC Descifrado: Cn-2 Cn-1 Cn


1. Dn = D(K, Cn−1).
2. C = Cn || 0B−M. [Extender Cn con ceros para crear C]
Cn-2 Cn-1 Cn 0…0
3. Xn = Dn  C.
4. Pn = Cabeza(Xn, M).
5. En−1 = Cn || Cola(Xn, B−M). K D D K
6. Xn−1 = D(K, En−1).
Pn−1 = Xn−1  Cn−2.
7.
 
Nota: La extensión con ceros de P en la etapa 4 es importante,
Pn Cola
porque hace que la operación de  afecte a los últimos B−M
bits copiando los últimos B−M bits de En−1 al final de Dn.
Pn-1 Pn
Parametrización Experimental

• Cuatro etapas del RC5-32 son suficientes para eliminar


cualquier correlación entre los bits de entrada y los de
salida.
• Con ocho etapas en el RC5-32/8 es suficiente para que
cada bit del mensaje participe en alguna rotación.
• Las rotaciones dependientes de los datos (al azar) ayudan
a dificultar el Criptoanálisis Diferencial y Lineal.

• No hay un modo obvio por el que se pueda sospechar que


el RC5 tenga claves débiles, a excepción de que use
dimensiones (w, r, b) pequeñas.

Los valores recomendados son:

RC5-32/12 y RC5-64/16
El Advanced Encryption Standard

• Fue desarrollado por Joan Daemen y Vincent Rijmen.


• Deriva de un cifrador anterior llamado Square.
• Es un estándar de cifrado de gobierno de los EEUU
(FIPS 197 26 Noviembre 2001).
• Representa a tres cifradores con tres tamaños de
clave diferentes: AES-128, AES-192 y AES-256, que
Joan Daemen Vincent Rijmen
son miembros de una familia mas amplia conocida
como Rijndael. • En Marzo de 2008, Intel propuso
• El AES procesa bloques de 128-bit. incluir el AES es una futura
• Es el sucesor del invicto DES. extensión del conjunto de
instrucciones x86 para
• El proceso de estandarización requirió cinco años de microprocesadores Intel y AMD.
trabajo y la competición de 15 propuestas en el • Su objetivo es acelerar las
concurso público AES2000. aplicaciones que utilicen ese
• Es la primera cifra disponible para uso público que cifrador.
• Esta idea ya es realidad en la
haya sido aprobada por la NSA para su uso con solución PadLock incluida en los
materiales clasificados como TOP SECRET. procesadores de VIA
Technologies.

Joan Daemen, Lars Knudsen, Vincent Rijmen (1997). "The Block Cipher Square”. Fast Software Encryption (FSE) 1997, Volume 1267 of Lecture Notes in
Computer Science. Haifa, Israel: Springer-Verlag. pp. 149–165.
Esquema general del AES
• Se basa en una red de Sustitución-Permutación (SP).
• Es rápido tanto en software como en hardware.
• No utiliza una cadena de Feistel. K1 AddRoundKey
• AES procesa bloques de 128 bits con claves de 128, 192, o
256 bits.

x10, 12 o 14 rounds
SubBytes
– AES tiene 10 rounds para claves de 128-bits, 12 para las de 192-
bits, y 14 cuando son claves 256-bits. ShiftRows
• La familia Rijndael puede tener bloques que sean múltiplos de
32 bits, entre 128-256 bits . MixColumns

• AES opera sobre un “estado interno” de 4×4 bytes (128 bits). Ki AddRoundKey
• La mayoría de las operaciones se hacen sobre un campo finito
especial (GF(28)).
SubBytes
• Las variantes de AES se diferencia por número de repeticiones
(rounds) que transforman en bloque de entrada en el de salida ShiftRows
(10, 12 o 14).
• Cada etapa contiene varias operaciones y una de ellas Kr AddRoundKey
depende de la clave.
• Para el descifrado se utilizan las transformaciones inversas con
la misma clave.
Operaciones de etapa en el AES
SubBytes
• Cada byte se actualiza usando denominada caja de
sustitución Rijndael. Esta es la operación no-lineal de la
cifra.
• La S-box utilizada esta relacionada con la inversa
multiplicativa de un número sobre GF(28) y con una
transformación afín reversible.
• La S-box se eligió de modo que se evitasen los puntos fijos,
haciendo que fuese una permutación con ningún elemento
en su sitio.

ShiftRows
• Opera con las filas del estado interno y desplaza
cíclicamente los bytes en cada fila. La primera fila
permanece inalterada.
– La segunda es desplazada una posición a la
izquierda.
– La tercera y cuarta fila se desplazan en dos y tres
posiciones.
• Cada columna del estado de salida esta compuesta
por bytes de cada columna del estado de entrada.
Operaciones de etapa en el AES
MixColumns
• Los cuatro bytes de cada columna del estado interno se
combinan utilizando una transformación lineal invertible.
• Toma 4 bytes de entrada y entrega 4 bytes a la salida y
cada byte de entrada afecta a los cuatro bytes de salida.
• Esta operación es la que proporciona difusión a la cifra.
• Es la multiplicación del estado interno por una Matriz
MSD (Maximun Distance Separable) para obtener una
“difusión perfecta”. (Efecto Avalancha asegurado).

AddRoundKey
• Se encarga de combinar la clave de etapa con el estado
interno.
• Cada subclave es del mismo tamaño que el estado
interno.
• La subclave se añade combinando con XOR cada byte
del la misma con su correspondiente byte del estado
interno.
Cifradores de Flujo
- Son cifradores que actúan sobre símbolos
individuales a través de una transformación
criptográfica que cambia.
- Son mas rápidos que los cifradores de bloques.
- Son la única solución en transmisiones en tiempo real
(no por paquetes)
- La tienen una limitada propagación de errores, o no
la tienen.
- Tienen un importante apoyo y justificación teórica.
- Los que se utilizan tienden a ser propietarios y
confidenciales.
- Son cifradores con memoria y el caso ideal es el
cifrado Vernam.

El nombre en código fue ROMULUS y fue diseñada el los 50. Fue utilizada por USA, NATO y
la NSA para proteger circuitos fijos de transmisión por teletipo. Tenia 800 Kb de memoria
central y 50 válvulas de vacío. Lo secreto en el KW-26 era el algoritmo de cifrado basado en
TSEC/KW-26, nombre en código ROMULUS
registros de desplazamiento. Cuando el barco espía USS Pueblo fue capturado por Korea del
sustituto de SIGABA
Norte en 1968, había varia s máquinas KW-26 abordo.
Cifradores Sincrónicos

Son aquellos en los que la secuencia cifrante


se genera independientemente del texto en
claro o del criptograma: 
mi
f
i+1 = f(i, K);
zi = g(i, K); g h
K
ci = h(zi, mi) ci
donde
0: Estado Inicial
f( ): Función que da el siguiente estado.
Zi: Secuencia cifrante. Cuando h( ) = , se
denominan Cifradores
g( ): Generador se secuencia cifrante. Aditivos
h( ): Función de Salida.
Cifradores Autosincronizantes

- Son aquellos en los que la secuencia Ci-t .... Ci-2 Ci-1


cifrante es generada en función de la

Cifrado
clave K y de la realimentación de un Bloque
conjunto finito de símbolos previos del criptograma

criptograma. K g h
- Se recuperan de las inserciones y
Bloque mensaje en claro
pérdidas ya que tiene una memoria
finita.
- Cada símbolo del texto en claro afecta
Ci-t .... Ci-2 Ci-1
el cifrado de todos los que le siguen.

Descifrado
- Los cifradores de flujo
Bloque
Autosincronizantes son más criptograma
resistentes que los sincrónicos K g h-1

Bloque mensaje en claro


Registros Lineales de Desplazamiento
• Se utilizan en la mayoría de los cifradores de flujo publicados.
Linear
• Son fáciles de construir en Hardware. Feedback
• Pueden producir secuencias cifrantes muy largas. Shift
• Sus secuencias tienen buenas propiedades estadísticas. Register
• Su seguridad puede analizarse con técnicas algebraicas.

Un LFSR de longitud L
consiste en:    
1. L estados numerados
S0, S1, S2, ..., SL-1 que
almacenan un bit. c1 c2 cL-2 cL-1 cL
2. Una señal de reloj que
SL-1 SL-2 S2 S1 S0
controla el
desplazamiento de los reloj

datos.
3. Un Polinomio de C ( x)  1  c1 x  c2 x 2    cL 1 x L 1  cL x L   2 x 
Conexión.
Registros Lineales de Desplazamiento
• Un LFSR es “no-singular” si el grado de su
polinomio de conexión es L (cL=1) Un LFSR de L celdas tiene 2L-1 posibles
estados iniciales
• El estado Inicial es el contenido {0,1} de las
celdas Si al empezar.
C ( x)  1  c1 x  c2 x 2    cL 1 x L 1  x L
• Para cualquier estado inicial, la secuencia de
salida es periódica si, y sólo si, C(x) tiene
grado L. No se
• Un polinomio de conexión singular (cL = 0) da repite
secuencias no periódicas. 0
Se repite
• Si C(x) es un Polinomio Irreducible, cada uno
de los estados iniciales produce una secuencia 1
de salida con periodo igual al menor entero N
tal que:
C(x) divide a (1 + xN ) en Z2[x]

• Si C(x) es un Polinomio Primitivo, cada uno


3
de los estados iniciales produce una secuencia
con el máximo periodo posible, 2L-1.
Un pequeño ejemplo...

C ( x)  x 4  x3  1 1 0 0 0
d n4  d n3  d n
8 1000111101011001000...
1 1000111101011001000...
- El registro pasa por todos los 3 1000111101011001000...
7 1000111101011001000...
posibles estados (24-1= 15) antes
15 1000111101011001000...
de repetirse. 14 1000111101011001000...
- La secuencia completa 13 1000111101011001000...
representa una permutación de 10 1000111101011001000...
todos los posibles estados. 5 1000111101011001000...
11 1000111101011001000...
- Cambiando el estado inicial 6 1000111101011001000...
obtenemos la misma permutación 12 1000111101011001000...
pero “rotada circularmente”. 9 1000111101011001000...
2 1000111101011001000...
4 1000111101011001000...
Propiedades Estadísticas
• Sea S una secuencia de m bits generada por un LFSR de longitud
máxima.
• Sea k un entero tal que 1  k  L y s cualquier subsecuencia de S de
longitud 2L + k - 2:
- Cada secuencia no nula de longitud k aparece exactamente 2L-k veces en s.
- La secuencia nula de longitud k aparece 2L-k-1 veces exactamente.
• La distribución de símbolos de una determinada longitud es casi
uniforme.
- Un LSFR genera un secuencia s si  un estado inicial para el que la salida es
s.
Elwyn R Berlekamp
- Un LFSR genera una sub-secuencia sn, si  estados iniciales que dan sn en
sus primeros n términos.

Complejidad Lineal: El perfil de Complejidad Lineal de


una secuencia binaria se mide con
- Si s = [0000...]  L(s) = 0 el Algoritmo de Berlekamp-Massey.
- Si no  un LFSR que genere s  L(s) = 
En cualquier otro caso... Una extensión a secuencias de
- L(s) es la longitud del LFSR más corto que enteros módulo n es el Algoritmo
genera s. de Reeds–Sloane.
James L. Massey
Cifradores Basados en LFSRs
- La secuencias generadas por LFSR son fácilmente predecibles.
- El algoritmo de Berlekamp-Massey proporciona el polinomio de
conexión del LFSR que genera cualquier secuencia de complejidad
lineal finita.
- Un LFSR nunca debe ser utilizado por si sólo como generador de
secuencias cifrantes.

Métodos para eliminar la Linealidad:


reloj
- Utilizar una función altamente no lineal a la salida
LFSR
del LFSR
- Utilizar un filtro no lineal de los estados del LFSR. f
- Utilizar la salida de varios LFSRs a la vez; uno de
ellos como generador de señales de reloj de otros. Secuencia
Cifrante
- Utilizar pautas de reloj complejas.
Algunos ejemplos...

Generador de Geffe:
LFSR1
- Es criptográficamente Débil
(sucumbe frente a ataques por
correlación).
LFSR2 
F ( x1 , x 2 , x 3 )  x1 ·x 2  (1  x 2 )·x 3 LFSR3
Periodo  ( 2 L1  1)( 2 L 2  1)( 2 L 3  1)
Comp .Lineal  L1 L 2  L 2 L 3  L 3 clock

LFSR1 Generador Alternante:


- Su resistencia criptográfica no se
LFSR2  puede demostrar.
- L1,L2 y L3 deben ser primos relativos
LFSR3 y parecidos (128 bits).
clock
Ruptura GSM
• El sistema GSM es el 80% del mercado de teléfonos
móviles, está en mas de 200 países y tiene 3 mil
millones de usuarios.
• La seguridad GSM se presento en 1987 y se
demostró que era insegura* en 1994.

GSM no debe utilizarse en sistemas de seguridad;


ni para voz, ni para datos.
A5/1 GSM cipher
• Hay nuevos sistemas que utilizan GSM:
– Banca por SMS
– Autorización de pagos.
– Autenticación de usuario.
• El sistema GSM sólo es aparentemente seguro.

* Hay muchos artículos en los que se rompe el cifrado


A5/1: EC1997, FSE2000, Crypto 2003, SAC2005, …
A5/1
• El A5/1 es un cifrador de flujo utilizado para proteger las
comunicaciones por radio en el sistema GSM.
• Las transmisiones GSM son secuencias de paquetes
intercambiados cada 4.615 milisegundos (216 Hz) y con 114 bits
de información.
• El A5/1 se utiliza para proteger cada paquete con 114 bit
cifrantes que son combinados mediante xor con los 114 bits de
Cifrador A5/1
datos antes de la modulación.
• El A5/1 se inicializa usando una clave de 64-bit junto con un
número de paquete de 22-bits públicamente conocido.
• En los sistemas en uso, 10 de esos bits de clave son fijos e
igual a cero, dando una longitud efectiva de la clave de 54 bits.
• El A5/1 combina tres LFSRs con secuencias irregulares de reloj.
• La secuencia de reloj se calcula utilizando la regla de la
mayoría.
– Cada registro tiene asociado un bit de reloj y en cada ciclo, el bit de reloj de los tres registros
se examina y se determina el estado (0 o 1) mayoritario.
– Cada registro recibe señal de reloj si su bit de reloj coincide con el de la mayoría. Así, en cada
paso, avanzan un paso dos o tres registros (probabilidad de ¾).
Pre-Computación de las Tablas A5/1
• Las bases para la generación material pre-computado
para la ruptura del A5/1 están disponibles, son completas
y son open source:
 Hay máquinas A5/1 de alta velocidad (CUDA graphic cards o
FPGAs Xilinx Virtex)
 La parametrización óptima de las tablas se conoce.
 Las tablas son accesibles por bittorrent.

• Las claves pequeñas (< 64 bits) permiten el descifrado


con libros de códigos.
– Un libro de código es relaciona un valor de salida conocido,
con la clave. Prototipo COPACOBANA (FPGAs Spartan3
XC3S1000, Virtex 4 XCV4SX35)

El libro de códigos para el A5/1 tiene  Paralelizando: CUDA, cientos de threads, FPGA, millares de
128 Peta-byte (265 bits) y requiere mas cifradores a la vez.
de 100,000 años para ser calculado en  Trucos algorítmicos: CUDA, calcula 4 bits a la vez, FPGA , minimiza
un sólo PC. los recorridos críticos.
Resultado: 3 meses en 80 nodos CUDA

En Diciembre de 2009, se completaron dos tablas de Tera-bytes que permiten romper A5/1 en tiempo real. El anuncio lo hizo Karsten Nohl
durante el Chaos Communication Congress en Berlín.
El Cifrador RC4

• Fue diseñado por Ron Rives en 1987.


– Inicialmente fue un secreto industrial, pero en septiembre de 1994 se
filtro su diseño a través de la lista de correo Cypherpunks.
Inmediatamente fue publicado en el grupo de noticias sci.crypt, y de ahí
se esparció por toda la Internet.
– El código filtrado fue confirmado como correcto por gente que tenia
acceso al verdadero RC4.
• Es extremadamente rápido y sencillo por lo que es muy fácil de
implementar tanto en software como en hardware.
• RC4 tiene debilidades que desaconsejan su uso en sistemas
nuevos.
• Es especialmente vulnerable cuando:
1. no se descartan los primeros bytes de la secuencia cifrante, o
2. se usa dos veces la misma clave,
3. se usan claves que no son realmente aleatorias o están
relacionadas entre si.
Usos desafortunados
• RC4 es parte de estándares tan populares como WEP, WAP y
SSL/TLS.
• Es el cifrador de flujo mas utilizado.
• Algunos usos del RC4 pueden dar Criptosistemas realmente inseguros
como es el caso del WEP.

• Dado que el RC4 es un cifrador de flujo , 30 bytes 0-2312 bytes 4 bytes


no debería usarse nuca la misma clave 802.11 headers Datos CRC32

dos veces.
• El propósito de IV, que se transmite en 64 bits
IV RC4
Shared Key
claro, es prevenir ataques de repetición,
pero 24 bits no es suficientemente largo.
• El modo de utilizar IV en WEP facilita un 30 bytes
IV Datos Cifrados
802.11 headers
ataque por claves relacionadas sobre el
RC4.
• Con 24-bits para IV, hay un 50% de probabilidad de ver el mismo IV después de 5000
paquetes..
El Algoritmo RC4
• El RC4 tiene dos componentes:
1. El generador de Estado Interno bajo el control de la
clave. K0 KL-1
2. El algoritmo de transformación mensaje  criptograma
.... K
• El Estado Interno es una Permutación de todos los
posibles bytes. (nº posibilidades = 256!) + Indx

• Hay dos variables: P0 P255


un Contador [0,1,2,..., 254,255] .... ....
un Índice [Indx] = [0,1,...,k-1] Contador
• La clave K se recorre en secuencia cíclica tantas veces
como sea necesario.
• El contador apunta a una de las celdas que se va a
intercambiar, el registro intermedio a la otra:
El estado inicial es la
Indx = Ki + P[cnt] + Indx permutación Identidad.
• Se produce el intercambio de contenidos de las celdas
señaladas.
Cifrado y Descifrado con el RC4

1 Índices: 2 Intercambio:
x = (x + 1) mod 256 (Contador) P[x]  P[y]
y = (y + P[x]) mod 256

3 Byte cifrante:
cif = (P[x] + P[y]) mod 256
+
P[256]

4 Cifrado/Descifrado: .... ....


ci = mi  P[cif] 
mi = ci  P[cif] y
+1 x +
Nuevos cifradores de Flujo
Estado
• En la conferencia RSA de 2004, Shamir planteó cuál Interno
era el estado de los cifradores de flujo. mi

• ¿Es suficiente con el AES en los modos de flujo? (CFB,
OFB y CM) G h
Key
Hay áreas y necesidades especiales: ci
Estructura básica de un cifrador de flujo
1. Altísimas Velocidades de cifrado (transmisiones
en fibra óptica, ≈180 Gbps),
2. cuando hay excesivamente pocos recursos
para cifrar (etiquetas RFID, redes de sensores, etc.).

• La UE crea la iniciativa eSTREAM para crear nuevos El KG-13 fue


la primera
algoritmos de cifrado en flujo. máquina
criptográfica
• El resultado final será un pequeño conjunto de basada en
cifradores recomendados. transistores y
desarrollada a
• Además de la confidencialidad algunos pueden llevar principoios de
acompañada la propiedad de Autenticación. los 60.

Anda mungkin juga menyukai