Professional Documents
Culture Documents
Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso,
reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los
créditos del autor. Queda por tanto prohibida su venta, excepto la versión 3.1 a través del Departamento de
Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.
Algoritmo S C S Algoritmo
Determinístico
⊕ ⊕ Determinístico
Operaciones ⊕ con bits
MENSAJE M M MENSAJE
Capítulo 11: Sistemas de Cifra en Flujo Página 409
Rachas de 1s
Rachas de 0s 1 entre dos 0s
0 entre dos 1s
Racha de 00s
Racha de 1111s Racha de 11s 00 entre dos 1s
Función de autocorrelación:
– Autocorrelación AC(k) fuera de fase de una secuencia
Si de período T desplazada k bits a la izquierda:
AC(k) = (A - F) / T
Aciertos ⇒ bits iguales Fallos ⇒ bits diferentes
Ejemplo
Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 Si k = 1
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
Capítulo 11: Sistemas de Cifra en Flujo Página 413
Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0
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.
Capítulo 11: Sistemas de Cifra en Flujo Página 416
Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0
Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0
¿Qué significa esto?
1 0 0 1 1 1 0 Secuencia original
Si 0 1 1 1 0 1 0 0 Secuencia original
sigue
Capítulo 11: Sistemas de Cifra en Flujo Página 422
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
¿Qué significa esto?
Si una secuencia cumple con el postulado G3 quiere decir
que, independientemente del trozo de secuencia elegido por
el atacante, no habrá una mayor cantidad de información que
en la secuencia anterior. Así, será imposible aplicar ataques
estadísticos a la secuencia recibida u observada al igual
como operábamos, por ejemplo y guardando las debidas
distancias, con el sistema Vigenère y el ataque de Kasiski.
Capítulo 11: Sistemas de Cifra en Flujo Página 424
¿Quésucede
¿Qué sucedesisi ¿Quésucede
¿Qué sucedesisi ¿Quésucede
¿Qué sucedesisi
aa==55 bb==22 aa==55 bb==22 aa==44 bb==11
16 xx0==10?
nn==16 0
10? nn==16
16 xx0==1?
0
1? 16 xx0==10?
nn==16 0
10?
S1 S2 S3 S4
Si
XOR Generador
Generador
LFSRde
LFSR de44
C1 C2 C3 C4
etapas/celdas
etapas/celdas
S1 S2 S3 S4 Si
Capítulo 11: Sistemas de Cifra en Flujo Página 432
Polinomios http://mathworld.wolfram.com/PrimitivePolynomial.html
Generación polinomios http://www.theory.csc.uvic.ca/~cos/gen/poly.html
Capítulo 11: Sistemas de Cifra en Flujo Página 439
⊕ Si asignamos valores
C1 C2 C3 C4=1 de esos 2∗n = 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.
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)
LFSR 2
a2
0 • Si a1 es un 1 ⇒ Si es el bit de a3
Si
a3 Selector Luego: Si = a2 ⊕ a1a2 ⊕ a1a3
LFSR 3 1
LC = (n1 + 1)n2 ⊕ n1n3
a1
LFSR 1 T = mcm (2n1-1, 2n2-1, 2n3-1)
Se mejora la LC e incluso se aumenta si ponemos más LFSRs pero este
generador es débil ante ataques por correlación de bits. Existen muchos
esquemas en esta línea: Beth-Piper, Gollmann, Massey-Rueppel, etc.,
que no serán tratados en este capítulo. En la siguiente web encontrará
diversos ataques algebraicos a cifradores de flujo.
http://www.cryptosystem.net/stream
Capítulo 11: Sistemas de Cifra en Flujo Página 449
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
1
⊕
22 C2
los registros en
Si los que coincide
R2
11: bit de reloj el 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 tres
R3 ⇒ n3 = 23 R3 registros en
11: bit de reloj movimiento.
Clave = 64 bits
⊕ f(x3) = x23+x22+x21+x8+1