Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cifrado en Flujo
Cifrado en Flujo
Criptografa
Tema 3:
C R IP TO S IS TEM A S D E
C IFR A D O EN FLU JO
C IFR A D O R ES C O N C LA V E
C O N TIN U A D E U N S O LO
U SO
Cifrador de fl
ujo bsico
Recordando la propuesta de cifrador hecha por Vernam en 1917,
Clave K
Algoritmo
Determinstico
Clave K
secuencia cifrante
MENSAJE M
Operaciones con
bits
Criptosistemas de Cifrado en Flujo
Algoritmo
Determinstico
M MENSAJE
00 00 00 11 00 00 11 11 00 11 00 11 11 11 11
Esta distribucin
tan particular se
comentar ms
...adelante
Rachas de 1s
Rachas de 0s
entre dos 1s 0
Racha de 1111s
entre dos 0s 1111
El prximo
bit ser un 1
entre dos 0s 1
Racha de 00s
Racha de 11s
entre dos 1s 00
entre dos 0s 11
Racha de 000s
entre dos 1s 000
1 0 0 0 1 0 0 1 1 0 1 0 1 1 1
=F
A=7; F=8
AC(1) = -1/15
0 0 0 1 0 0 1 1 0 1 0 1 1 1 1
:Facilidad de implementacin
Debe ser fcil construir un generador de
secuencia cifrante con circuitos
electrnicos y chips, con bajo coste, alta
velocidad, bajo consumo, un alto nivel de
.integracin, etc
Criptosistemas de Cifrado en Flujo
0 0 0 1 0 0 1 1 0 1 0 1 1 1 1
En la secuencia S1 de 15 bits, hay 8 unos y 7 ceros, luego
.cumple con el postulado G1
S2
1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1
En la secuencia S2 de 16 bits, hay 7 unos y 9 ceros,
.luego no cumple con el postulado G1
Criptosistemas de Cifrado en Flujo
Signifi
cado delpostulado G 1
Si
0 0 0 1 0 0 1 1 0 1 0 1 1 1 1
Si
estn en una
diapositiva
anterior
Signifi
cado delpostulado G 2
Si
0 0 0 1 0 0 1 1 0 1 0 1 1 1 1
0 0 1 0 1 1 1 0
Secuencia original
Desplazamiento de un bit a la
izquierda
k=1
0 0 0 1 0 1 1 1
AC(1) = (4-4)/8 = 0
k=2
1 0 0 0 1 0 1 1
AC(2) = (4-4)/8 = 0
k=3
1 1 0 0 0 1 0 1
k=4
1 1 1 0 0 0 1 0
AC(4) = (4-4)/8 = 0
sigue
0 0 1 0 1 1 1 0
Secuencia original
k=5
0 1 1 1 0 0 0 1
k=6
1 0 1 1 1 0 0 0
AC(6) = (4-4)/8 = 0
k=7
0 1 0 1 1 1 0 0
AC(7) = (4-4)/8 = 0
k=8
0 0 1 0 1 1 1 0
Signifi
cado delpostulado G 3
Si
0 0 1 0 1 1 1 0
No cumple con G3
Si
0 0 11 0 1 0 1
S cumple con G3
= n-1.
Tiene como debilidad que resulta
Criptosistemas
de Cifrado
relativamente fcil
atacar
laen Flujo
secuencia, de
...Pero
x1 = (510+1) mod 16 = 3
x9 = (52+1) mod 16 = 11
x2 = (53+1) mod 16 = 0
x10 = (511+1) mod 16 = 8
x3 = (50+1) mod 16 = 1
x11 = (58+1) mod 16 = 9
x4 = (51+1) mod 16 = 6
x12 = (59+1) mod 16 = 14
x5 = (56+1) mod 16 = 15 x13 = (514+1) mod 16 = 7
x6 = (515+1) mod 16 = 12 x14 = (57+1) mod 16 = 4
x7 = (512+1) mod 16 = 13 x15 = (54+1) mod 16 = 5
x8 = (513+1) mod 16 = 2
x16 = (55+1) mod 16 = 10
Qusucede
sucedesisi
Qu
11 bb==11
Ejercicios aa==11
16 xx0==77
??nn==16
0
Qusucede
sucedesisi Qu
Qusucede
sucedesisi
Qu
aa==55 bb==22
aa==55 bb==22
16 xx0==10
10
16 xx0==11
??nn==16
??nn==16
0
0
Qusucede
sucedesisi
Qu
aa==44 bb==11
16 xx0==10
10
??nn==16
0
CIFRAD O S EN FLU JO CO N
REG ISTRO S D E
D ESPLAZAM IEN TO
Si es un bit 0 1
Conexiones de puertas
S1
S2
S3
S4
Sn-1
Sn
Si
Bit que se pierde
a(t-n+1) a(t-n)
a(i) es el contenido de la
celda i
Genera una secuencia con un perodo mximo 2n
Desplazamiento
NLFSR
LFSR
Primera
operaci
n
S01
S1
XOR
0 OR
0
AND
S12
S2
0
NOT
S13
S3
S14
S4
Este es el
estado de las
celdas y las
operaciones
previas antes de
producirse el
desplazamiento
de un bit hacia a
.la derecha
Si
Operaciones
XOR
0 OR
0
AND
0
NOT
Si
S1
01
S0
12
S13
S14
S1
S2
S3
S4
Tmx = 2n - 1
Polinomio asociado:
XOR
Generador
Generador
2
LFSRde
de44
LFSR
1
f(x) = CCnx +
Cn-1xC + ....
+ C2x + C x +
C
C
1
2
3
4
etapas/celdas
etapas/celdas
1
n
S1
n-1
S2
S3
S4
Si
Sea f(x) = x + x + 1
4
S1
S2
S3
Problema
S4
T depender de la semilla
T 2n - 1
Y adems, habr perodos
.secundarios divisores de T
Si
: Sea la semilla
S1S2S3S4 = 0111
S01
Registro
Primer bit:
resultado de la
operacin S1 =
S2 S 4
Bit Si
S12
Registro
S13
S14
Si
Bit Si
0111
1110
0011
1111
1001
0111
1100
Si = 111001
...
T=6
semilla
Registro
Primer bit:
resultado de la
operacin S1 =
S2 S 4
1101
Bit Si
S12
S03
S14
S1 S2 S3 S4
0110
1011
1101
Si
Si = 101
T=3
...
semilla
T es un
perodo
secundario y
en en este
caso es
incluso menor
.que la semilla
S1
S2
S3
S4
Problema
Ahora T ya no depende de la semilla
pero ser un factor de Tmx = 2n 1 y no
.obtendremos un perodo mximo
Si
: Sea la semilla
S1S2S3S4 = 0001
S01
Registro
Bit Si
S02
S03
Registro
S14
Si
Bit Si
0001
0011
1000
0001
1100
0110
...
semilla
Si = 100011 T = 5 siendo
Tmx = 2n - 1 = 24- 1 = 15
T ya no depender de la semilla y
ser el valor mximo Tmx = 2n - 1.
Se van a generar as las llamadas
.m-secuencias
Si
S1
S2
S3
S4
Habr(2
(2nn--1)/n
1)/n
Habr
polinomiosprimitivos
primitivos
polinomios
S1S2S3S4 = 1001
Si = 100100011110101
S1 = S1 S4
Registro
Bit Si
1001
0100
1110
1010
0010
1111
1101
0001
0111
0110
1000
1011
0011
1100
0101
1001
S11
S02
S03
Si
S14
T = 2n - 1
T = 24 - 1
T = 15
T = 15
m-secuencia
1
2
...
p
...
n-2
n-1
n
TOTAL
Rachas de
Ceros
2n-3
2n-4
...
2n-p-2
...
1
1
0
2n-2
Rachas de
Unos
2n-3
2n-4
...
2n-p-2
...
1
0
1
2n-2
Si asignamos
C1 C2 C3
C4=1
valores de esos
Si
2n = 8 bits
S1 S2 S3 S4
S1S2S3S4S5S6S7S8
seremos capaces
de resolver este
Primero
se
S5 = C1S1 C2S2 C3S3 C4S4
sistema
transmite S4S3S2S1
S6 = C1S5 C2S1 C3S2 C4S3
(semilla) y luego
S7 = C1S6 C2S5 C3S1 C4S2 .bits S5S6S7S8
Flujo
S8 = C1S7 C2S6Criptosistemas
C3S5deCifrado
C4enS
1
C3 = 0
C4 = 1
LC = n2 T = 2n2-1
Generador primitivo con n2 celdas
LC = n1 + n2
Si
LC = n1; T = 2n1-1
Generador primitivo con n1 celdas
LC = n2 T = 2n2-1
Generador primitivo con n2 celdas
LC = n1 n2
Si
Algoritm os de cifrado en fl
ujo
Sistemas ms conocidos:
A5:
Algoritmo no publicado propuesto en 1994. Versiones
RC4:
Algoritmo de RSA Corp. (Rivest Cipher #4)
SEAL:
Algoritmo propuesto por IBM en 1994.
Elalgoritm o de cifra A5
El uso habitual de este algoritmo lo encontramos en el
cifrado del enlace entre el abonado y la central de un
. telfono mvil (celular) tipo GSM
Cada trama de conversacin entre A y B tiene 228
bits, de los cuales 114 son en sentido A B y otros
114 en sentido B A. El generador entregar los 228
.bits pseudoaleatorios para la cifra de cada trama
Con cerca de 130 millones de usuarios en Europa y
otros 100 millones de usuarios en el resto del mundo
en 1999, el sistema A5/1 sucumbi en diciembre de
ese ao a un ataque realizado por Alex Biryukov, Adi
.Shamir y David Wagner
registros 3
LFSR con
m-secuencia
Si
R1
22
Clave = 64 bits
f(x1) = x19+x18+x17+x14+1
1
C2
R2
bit de reloj: 11
R2 n2 = 22
C1
bit de reloj: 9
R1 n1 = 19
R3 n3 = 23
14
23
f(x2) = x22+x21+1
C3
R3
bit de reloj: 11
f(x3) = x23+x22+x21+x8+1
Criptosistemas de Cifrado en Flujo
Una funcin
mayora entre
C1, C2 y C3 hace
que slo los
registros en los
que coincide el
bit con ese valor
produzcan
desplazamiento.
En cada paso
habr dos o tres
registros en
.movimiento
C2
0
0
1
1
C3
0
0
0
0
C1
No desplaza R1 0
No desplaza R2 1
No desplaza R3 0
Desplazan todos 1
C2
0
0
1
1
C3
1
1
1
1
primitivo:
13, 15 y 16.
En R2 las entradas a la funcin F2 son las celdas
10, 14 y 17.
En R3 las entradas a la funcin F3 son las celdas
14, 17 y 19.
En R4 las entradas a la funcin F4 son las celdas
4, 8 y 11. La salida de esta copia determina qu
registros de R1,R2,R3 se desplazarn en el ciclo.
Complementacin de celdas y sumas en salida de
F:
celda 19 a F.