Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
▪ Sustitución
Clave:
Principios básicos
▪ Transposición
Clave:
Cifrado de flujo básico
• Recordando la propuesta de cifrador hecha por Vernam en 1917, los
cifradores de flujo (sistemas con clave secreta) usarán:
– Un algoritmo de cifrado basado en la función XOR.
– Una secuencia cifrante binaria y pseudoaleatoria denominada S y
que se obtiene a partir una clave secreta K compartida por emisor
y receptor, y un algoritmo generador determinístico.
– El mismo algoritmo para el descifrado debido el carácter involutivo
de la función XOR.
S C S
Algoritmo Algoritmo
Determinístico
Operaciones con bits
Determinístico
MENSAJE M M MENSAJE
Cifrado de Vernam
▪ One-time Pad
Clave: Secuencia binaria aleatoria de uso único
Condiciones de secreto perfecto (Shannon)
▪ Condiciones de aplicación:
– La clave se utiliza sólo una vez.
– El criptoanalista tiene acceso sólo al criptograma.
▪ Secreto perfecto:
– La clave deberá ser tanto o más larga que el
mensaje.
– En la práctica se usará una semilla K de unos 120
a 250 bits en cada extremo del sistema para
generar períodos superiores a 1035.
Condiciones de secreto perfecto
▪ Distribución de bits:
– La distribución de bits de unos (1s) y ceros (0s)
deberá ser uniforme para que represente a una
secuencia pseudoaleatoria. Para ello deberá
cumplir los postulados de Golomb:
http://ee.usc.edu/faculty_staff/bios/golomb.html
▪ Secuencias de dígitos:
– Uno o más bits entre dos bits distintos.
Secuencias de dígitos en una secuencia
A= 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 A=7; F=8
F= AC(1) = -1/15
Imprevisibilidad e implementación de Si
• Imprevisibilidad:
– Aunque se conozca una parte de la secuencia Si la
probabilidad de predecir el próximo dígito no deberá
ser superior al 50%.
– Esta característica se definirá a partir de la
denominada complejidad lineal.
• Facilidad de implementación:
– Debe ser fácil construir un generador de secuencia
cifrante con circuitos electrónicos y chips, con bajo
costo, alta velocidad, bajo consumo, un alto nivel de
integración, etc.
Primer postulado de Golomb G1
Postulado G1:
– Deberá existir igual número de ceros que de unos. Se
acepta como máximo una diferencia igual a la unidad.
S1 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0
En la secuencia S1 de 15 bits, hay 8 unos y 7
ceros. Luego sí cumple con el postulado G1.
S2 0 1 0 1 1 1 0 0 1 0 0 1 0 0 0 1
En la secuencia S2 de 16 bits, hay 7 unos y 9
ceros. Luego no cumple con el postulado G1.
Significado del postulado G1
Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0
Postulado G2:
– En un período T, la mitad de las Secuencias de Si serán
de longitud 1, la cuarta parte de longitud 2, la octava
parte de longitud 3, etc.
Las Secuencias de
esta secuencia están
Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 en una diapositiva
anterior
Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0
Postulado G3:
– La autocorrelación AC(k) deberá ser constante
para todo valor de desplazamiento de k bits.
Si 1 0 0 1 1 1 0 Secuencia original
Desplazamiento de un bit a la izquierda
1 0 0 1 1 1 0 Secuencia original
Si 0 1 1 1 0 1 0 0 Secuencia original
sigue
Autocorrelación NO constante
Si 0 1 1 1 0 1 0 0 Secuencia original
Si 0 1 1 1 0 1 0 0 No cumple con G3
Si 1 0 0 1 11 0 Sí cumple con G3
Ejercicios:
¿Qué sucede si
a = 11 b = 1
n = 16 x0 = 7?
Ejercicios:
¿Qué sucede si ¿Qué sucede si
a=5 b=2 a=5 b=2
n = 16 x0 = 10? n = 16 x0 = 1?
Si = (510 + 2) mod 16
Si = 4, 6, 0, 2, 12, 14, 8, 10 Se obtiene un período muy
bajo y sólo valores pares e
Si = (51 + 2) mod 16
impares....
Si = 7, 5, 11, 9, 15, 13, 3, 1
Debilidades de este tipo de generadores
Ejercicios:
¿Qué sucede si
a=4 b=1
n = 16 x0 = 10?
http://www.criptored.upm.es/investigacion/tfc_m317a.htm
Generadores NLFSR
Un generador de cuatro celdas (n = 4)
Este es el estado
XOR 1
de las celdas y
1
0 las operaciones
OR previas antes de
Primera
operación 0 0 producirse el
AND NOT desplazamiento
de un bit hacia a
S01 S12 S13 S14 la derecha.
S1 S2 S3 S4
Si
http://mathworld.wolfram.com/deBruijnSequence.html
Generadores lineales LFSR
a(t) = C1a(t-1) C2a(t-2) C3a(t-3) ... Cna(t-n)
Ci = {1,0} conexión/no conexión celda Cn = 1
Función única: XOR Tmáx = 2n - 1
Polinomio asociado:
XOR
Generador
C1 C2 C3 C4 LFSR de 4
etapas/celdas
S1 S2 S3 S4 Si
Tipos de generadores lineales LFSR
Sea f(x) = x4 + x2 + 1
f(x) = x4 + x2 + 1
Sea la semilla:
S1S2S3S4 = 0111
Sea f(x) = x4 + x3 + x2 + x + 1
Es imposible factorizar
en módulo 2 la función
f(x) mediante dos
S1 S2 S3 S4 Si
polinomios f(x1) y f(x2)
de grado menor Problema
Ahora T ya no depende de la semilla
pero será un factor de Tmáx = 2n – 1 y
no obtendremos un período máximo.
Ejemplo de LFSR con f(x) irreducible
f(x) = x4 + x3 + x2 + x + 1
Sea la semilla:
S1S2S3S4 = 0001
Sea f(x) = x4 + x + 1
f(x) no es factorizable
como f(x1)•f(x2) en
módulo 2. Será además Si
un generador del grupo. S1 S2 S3 S4
T ya no dependerá de la semilla y será
el valor máximo Tmáx = 2n - 1. Se van a Habrá (2n - 1)/n
generar así las llamadas m-secuencias. polinomios primitivos
Polinomios http://mathworld.wolfram.com/PrimitivePolynomial.html
f(x) = x4 + x + 1 Si = 100100011110101
S1S2S3S4 = 1001 S1 = S1 S4
Registro Bit Si Si
S11 S02 S03 S14
1001 1
0100 0 1110 0 1010 0 T = 2n - 1
T = 24 - 1
0010 0 1111 1 1101 1 T = 15
0001 1 0111 1 0110 0
1000 0 1011 1 0011 1
1100 0 0101 1 1001 T = 15
Secuencias de un LFSR con f(x) primitivo
Características:
http://planetmath.org/encyclopedia/BerlekampMasseyAlgorithm.html
Algoritmo http://ihome.ust.hk/~trippen/Cryptography/BM/frameset.html
Ejemplo de ataque de Berlekamp-Massey
Si asignamos valores
C1 C2 C3 C4=1 de esos 2n = 8 bits
S1 S2 S3 S4 Si S1S2S3S4S5S6S7S8
seremos capaces de
S5 = C1•S1 C2•S2 C3•S3 C4•S4 resolver este sistema
S6 = C1•S5 C2•S1 C3•S2 C4•S3 Primero se transmite
S7 = C1•S6 C2•S5 C3•S1 C4•S2 S4S3S2S1 (semilla) y
S8 = C1•S7 C2•S6 C3•S5 C4•S1 luego bits S5S6S7S8.
Solución al ataque de Berlekamp-Massey
CONCLUSIONES:
LC = n1; T = 2n1-1
Generador primitivo con n1 celdas LC = n1 + n2
LC = n2; T = 2n2-1 Si
Generador primitivo con n2 celdas T = mcm (2n1-1, 2n2-1)
Es el modelo usado por A5
LC = n1; T = 2n1-1
Generador primitivo con n1 celdas LC = n1 n2
LC = n2; T = 2n2-1 Si
Generador primitivo con n2 celdas T = mcm (2n1-1, 2n2-1)
Generadores LFSR con filtrado no lineal
Generador de Geffe (1973)
• Si a1 es un 0 Si es el bit de a2
a2
LFSR 2 0
Si
• Si a1 es un 1 Si es el bit de a3
Selector
a3 Luego: Si = a2 a1a2 a1a3
LFSR 3 1
LC = (n1 + 1)n2 n1n3
a1
LFSR 1 T = mcm (2n1-1, 2n2-1, 2n3-1)
http://cryptome.org/a51-bsw.htm
http://www.criptored.upm.es/guiateoria/gt_m116a.htm
Esquema del algoritmo de cifrado A5/1
19 14 C1 1
3 registros
LFSR con R1 Una función
9: bit de reloj
mayoría entre
m-secuencia
f(x1) = x19+x18+x17+x14+1
C1, C2 y C3 hace
que sólo los
1
22 C2 registros en los
Si que coincide el
R2
11: bit de reloj bit con ese
R1 n1 = 19 f(x2) = x22+x21+1
valor produzcan
desplazamiento
R2 n2 = 22 23 C3 8 1 En cada paso
habrá dos o
R3 n3 = 23 R3 tres registros
11: bit de reloj en movimiento.
Clave = 64 bits
f(x3) = x23+x22+x21+x8+1
Función mayoría y ejemplo de secuencia
C1 C2 C3 C1 C2 C3
0 0 0 Desplazan todos 1 0 0 No desplaza R1
0 0 1 No desplaza R3 1 0 1 No desplaza R2
0 1 0 No desplaza R2 1 1 0 No desplaza R3
0 1 1 No desplaza R1 1 1 1 Desplazan todos
Consideraciones sobre el período de A5/1
• Usa cuatro copias de una función mayoría F para cada uno de los
cuatro registros que se define como:
▪ Dirección Web:
http://www.ecrypt.eu.org/stream/index.html
The eSTREAM PROJECT: Requerimientos
▪ PERFIL 1
▪ Aplicación software con alta velocidad de salida de bits
cifrados (throughput)
▪ Longitud de clave: 128 bits
▪ Longitud de IV: 64 –128 bits
▪ PERFIL 2
▪ Aplicación hardware con recursos limitados: memoria,
n° de puertas, consumo de potencia
▪ Longitud de clave: 80 bits
▪ Longitud de IV: 32 –64 bits
▪ Seguridad, criptoanálisis/búsqueda exhaustiva, eficiencia,
claridad de diseño, superior al AES (counter mode)
The eSTREAM PROJECT: Planificación
▪ Panel de expertos:
S. Babbage, C. de Cannière, A. Canteaut, C. Cid, N.
Courtois, H. Gilbert, T. Johansson, J. Lano, C. Paar, M.
Parker, B. Preneel, V. Rijmen, M. Robshaw
+
Toda la Comunidad Criptográfica Internacional !!!