Está en la página 1de 58

Procedimientos de

Cifrado en flujo
Amparo Fster Sabater
Instituto de Fsica Aplicada C.S.I.C.
amparo@iec.csic.es
A. Fster Sabater CCN Noviembre 2009
Contenido
Operaciones binarias
Del cifrado Vernam al cifrado en flujo
Secuencias cifrantes
Generadores de secuencias cifrantes
A. Fster Sabater CCN Noviembre 2009
Procedimiento Criptogrfico:
Esquema General
A
Texto claro
CLAVE
descifrado
descriptado
Criptoanlisis
Texto cifrado
cifrado
Texto claro
CLAVE
B
A. Fster Sabater CCN Noviembre 2009
Criptografa Actual
Criptosistemas
actuales
Clave secreta Clave pblica
Cifrado en flujo Cifrado en bloque
A. Fster Sabater CCN Noviembre 2009
Operaciones binarias
Suma mdulo 2
Operacin XOR
Producto lgico
Operacin AND
1 2 1 2
( , ) F x x x x =
1 2 1 2
( , ) F x x x x =
A. Fster Sabater CCN Noviembre 2009
x
1
x
2

0 0 0
0 1 1
1 0 1
1 1 0
x
1
x
2

0 0 0
0 1 0
1 0 0
1 1 1
Fundamentos matemticos
Funcin Booleana:
variables binarias
Funcin lineal: no adecuadas para criptografa
Funcin no lineal: Forma algebraica normal (A.N.F.)
Orden no lineal: producto con mayor nmero de variables
1 2
( , , , )
n
F x x x
1 2 1 2
( , , , )
n n
F x x x x x x =
1 2 1 2 3 1
( , , , )
n n n
F x x x x x x x x

=
A. Fster Sabater CCN Noviembre 2009
Cifrado Vernam (1917)
One-time Pad (Cifrado con cinta aleatoria)
Clave: Secuencia binaria aleatoria de uso nico
Cifrado:
Descifrado:
Mensaje: come soon (Cdigo ITA-2)
mod 2
i i i
Y X Z =
( ) mod 2
i i i i i i
X Y Z X Z Z = =
Mensaje X 00011 01111 01101 00101 10011 01111 01111 01110
Clave Z 11011 00101 01011 00110 10110 10101 01100 10010
Criptograma Y 11000 01010 00110 00011 00101 11010 00011 11100
A. Fster Sabater CCN Noviembre 2009
Condiciones de secreto
perfecto (Shannon)
Condiciones de aplicacin:
- La clave se utiliza slo una vez
- El criptoanalista tiene acceso slo al criptograma
Secreto perfecto:
El texto claro X es estadsticamente independiente del
criptograma Y para todos los posibles textos claros y todos los
posibles criptogramas
P(X = x | Y = y) = P(X = x)
C.E. Shannon, Communication Theory of Secrecy Systems,
Bell. Syst. Tech. J., 28 (1949), 656-715.
A. Fster Sabater CCN Noviembre 2009
Existen cifradores perfectos?
- Cifrador con X, Y, Z {0,1,,L-1}
- La clave se elige de forma aleatoria
- Transformacin de cifrado:
Los cifradores aditivos mdulo L verifican las
condiciones de secreto perfecto
Conclusin: La clave debe ser aleatoria, usarse una
nica vez y tener al menos igual longitud que el
mensaje original
e
mod
i i i
y x z L =
A. Fster Sabater CCN Noviembre 2009
Cifrado Vernam: es viable?
Centro de
distribucin de
claves
emisor emisor receptor
A. Fster Sabater CCN Noviembre 2009
00110
01011
01101
01010
00101
01111
00011
11011
11000
01111
00101
01010
11000
11011
00011
Mensaje
Sec. cifrante
Criptograma
Criptograma
Sec. cifrante
Mensaje
01101
01011
00110
y
i
Clave
z
i
Algoritmo
determinstico
x
i
z
i
Algoritmo
determinstico
x
i
x
i
z
i
= y
i
y
i
z
i
= x
i
EMISOR
RECEPTOR
Cifrado en Flujo
A. Fster Sabater CCN Noviembre 2009
Clave
z
i
Cifrado en flujo
c
3
c
2
c
1
-
-
-
Cifrado bit a bit
Sec. cifrante = Algoritmo + clave
Generacin de secuencias cifrantes
- Periodo largo
- Propiedades de pseudoaleatoriedad
- Imprevisibilidad
- Espacio claves
- Facilidad de implementacin
No estamos propiamente en
condiciones de secreto perfecto
(Aproximacin al cifrado Vernam)
A. Fster Sabater CCN Noviembre 2009
Secuencia Cifrante:
1. Qu caractersticas generales presentan
estas secuencias?
2. Cmo son los generadores que las
producen?
A. Fster Sabater CCN Noviembre 2009
Secuencias Cifrantes:
Caractersticas Generales (I)
Periodo ( 10
38
bits)
T = 2
128
- 1 3,40 x 10
38
bits
V
c
= 120 x 10
6
bits/seg 9.452 x 10
22
aos
22.200 veces la edad del universo
A. Fster Sabater CCN Noviembre 2009
Secuencias Cifrantes:
Caractersticas Generales (II)
Distribucin de ceros y unos
0100110100111010110010010
- rachas de ceros (gaps)
- rachas de unos (blocks)
A. Fster Sabater CCN Noviembre 2009
Secuencias Cifrantes:
Caractersticas Generales (III)
Autocorrelacin
- A = Nmero de coincidencias
- D = Nmero de no coincidencias
- T = periodo de la secuencia
- k = desplazamiento
( ) ( ) / AC k A D T =
Sec.original 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1
Sec.
desplazada
0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1
(4) (6 10) /16 AC =
A. Fster Sabater CCN Noviembre 2009
Secuencias Cifrantes:
Caractersticas Generales (III)
Autocorrelacin
- Autocorrelacin en fase:
- Autocorrelacin fuera de fase:
( ) ( ) / AC k A D T =
Sec.original 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1
Sec. desplazada 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1
( ) 1 AC k =
( ) [ 1, 1] AC k e
A. Fster Sabater CCN Noviembre 2009
Postulados de pseudoaleatoriedad de
Golomb
G1: En cada periodo de la secuencia considerada el nmero de 1s
tiene que ser aproximadamente igual al nmero de 0s.
G2: En cada periodo de la secuencia considerada la mitad de las
rachas, del nmero total de rachas observadas, tiene longitud 1, la
cuarta parte longitud 2, la octava parte longitud 3 etc. Para cada
longitud habr el mismo nmero de blocks que de gaps.
G3: La autocorrelacin AC(k) fuera de fase tiene que ser constante
para todo valor de k.
A. Fster Sabater CCN Noviembre 2009
Interpretacin de los Postulados de
Golomb
G1: El nmero de 1s y 0s tiene que aparecer a lo largo de la
secuencia con la misma probabilidad.
G2: En cada periodo de la secuencia diferentes n-gramas
(muestras de n dgitos consecutivos) deben aparecer con la
probabilidad correcta .
G3: El clculo de coincidencias entre una secuencia y su versin
desplazada no debe aportar informacin sobre el periodo de la
secuencia.
A. Fster Sabater CCN Noviembre 2009
Registros de desplazamiento
realimentados linealmente (LFSR)
4
1 x x + +
Parmetros del registro
- Longitud L
- Pol. de realimentacin caracterstico
Funcionamiento
- Desplazamiento del contenido binario
- Entra bit realimentado
Secuencia generada: 1 0 0 0 1 1 1 1

0 0 0 1
- -
1 0 0 0
0 0 0 1
0 0 1 1
0 1 1 1
1 1 1 1
1 1 1 0
1 1 0 1
1 0 1 0
A. Fster Sabater CCN Noviembre 2009
Linear Feedback Shift Registers
4
1 x x + +
Relacin de recurrencia lineal
Cada elemento se expresa en funcin de los
anteriores (relacin lineal)

- -
1 0 0 0
0 0 0 1
0 0 1 1
0 1 1 1
1 1 1 1
1 1 1 0
1 1 0 1
1 0 1 0
4 3
0
n n n
a a a n
+ +
= >
4 3 0
a a a =
5 4 1
a a a =
0
a
1
a
2
a
3
a
4 3
( ) 1
c
P x x x = + +
A. Fster Sabater CCN Noviembre 2009
Tipos de LFSRs

0 0 0 1
4 2
1 x x + +
0 1 1 0
0110
0001
0011
{
Estado inicial
1 1 1 1

{
{
1111
0001
0010
1000
4 3 2
1 x x x x + + + +
4
1 x x + +
A. Fster Sabater CCN Noviembre 2009
Periodo del LFSR (factorizable)
0001
0010
0101
1010
0100
1000
1 0 0 0
0000
0110
1101
1011
0011
0111
1111
1110
1100
1001
4 2 2 2
1 ( 1)( 1) x x x x x x + + = + + + +
A. Fster Sabater CCN Noviembre 2009
Generadores con polinomio de
realimentacin factorizable
La longitud de la secuencia depende del estado inicial
El periodo T verifica pudiendo aparecer
periodos secundarios que son divisores del periodo T
No adecuados para usos criptogrficos
Golomb, S. W., Shift Register Sequences, Holden Day,
San Francisco, 1967
2 1
L
L T s <
A. Fster Sabater CCN Noviembre 2009
Periodo del LFSR (irreducible)
0001
0011
0110
1100
1000
0000
4 3 2
1 x x x x + + + +
0010
0101
1010
0100
1001
1111
1110
1101
1011
0111
1 1 1 1
A. Fster Sabater CCN Noviembre 2009
Generadores con polinomio de
realimentacin irreducible
La longitud de la secuencia no depende del
estado inicial
El periodo T es un factor de
No adecuados para usos criptogrficos
2 1
L

A. Fster Sabater CCN Noviembre 2009


Periodo del LFSR (primitivo)
0000
4
1 x x + +
0 0 0 1
1000
0001
0011
0111
1111
1110
1101
1010
0101
1011
0110
1100
1001
0010
0100
PN-secuencia (m-secuencia)
Mximo periodo posible para este
tipo de generador
100011110101100 ..
A. Fster Sabater CCN Noviembre 2009
Generadores con polinomio de
realimentacin primitivo
La longitud de la secuencia no depende del
estado inicial
El perodo es
Adecuados para usos criptogrficos, su
secuencia satisface los postulados de Golomb
2 1
L
T =
A. Fster Sabater CEC - CNI Noviembre 2006
A. Fster Sabater CCN Noviembre 2009
Cuntos polinomios primitivos de grado L hay?
Son todos buenos?
-
- Distribucin uniforme de etapas
11 . 176
24 . 276480
L No
L No
= =
= =
15 1 n n n
a a a
+ +
=
15
1 x x + +
15 14 13 12 11 5 4 3
1 x x x x x x x x + + + + + + + +
15 14 13 12 11 5 4 3 n n n n n n n n n
a a a a a a a a a
+ + + + + + + +
=
(2 1) /
L
L u
A. Fster Sabater CCN Noviembre 2009
PN-secuencias y postulados de
Golomb
G1:
G2:
2 1
L
T =
{
Long. Gaps Blocks
1
2
: : :
r
: : :
L-2 1 1
L-1 1 0
L 0 1
Total
3
2
L
4
2
L
3
2
L
4
2
L
2
2
L r 2
2
L r
2
2
L 2
2
L
PN-secuencia
100011110101100
1
.1' 2
L
No s

=
1
. 0' 2 1
L
No s

=
A. Fster Sabater CCN Noviembre 2009
PN-secuencias y postulados de
Golomb
G3:
1 0 0 0 1 1 1 1 0 1 0 1 1 0 0
0 0 0 1 1 1 1 0 1 0 1 1 0 0 1
1 0 0 1 0 0 0 1 1 1 1 0 1 0 1
(1) (7 8) /15 AC =
1 0 0 0 1 1 1 1 0 1 0 1 1 0 0
0 0 1 1 1 1 0 1 0 1 1 0 0 1 0
1 0 1 1 0 0 1 0 0 0 1 1 1 1 0
(2) (7 8) /15 AC =
Las PN-secuencias verifican los postulados de Golomb
A. Fster Sabater CCN Noviembre 2009
Complejidad Lineal: imprevisibilidad
Concepto bsico: cantidad de secuencia que hay que
conocer para determinar el resto de la misma
Idea general: Asociar a cada secuencia un LFSR
Complejidad Lineal = La longitud del menor LFSR
capaz de generarla
Algoritmo de Massey-Berlekamp (1969)
- Input: La secuencia binaria considerada
- Output:
( ), P x LC < >
A. Fster Sabater CCN Noviembre 2009
Algoritmo de Berlekamp-Massey
Idea general:
-
-
Curva de complejidad
0 1 1
, , , ( ),
n
n
S a a a p x L

< >
1
0 1 1
, , , , '( ), '
n
n n
S a a a a p x L
+

< >
LC
N. bits
L
L
( ), p x L < >
'( ), ' p x L < >
A. Fster Sabater CCN Noviembre 2009
A. Fster Sabater CCN Noviembre 2009
A. Fster Sabater CCN Noviembre 2009
Complejidad Lineal (II)
Secuencia 1:
Sec. generada por un LFSR (pol. Primitivo)
MUY PREVISIBLE
Secuencia 2:
1000111101000011011110100010100
MUY IMPREVISIBLE
Relacin entre T y 2LC
31 T bits =
( ), 15, 2 30 P x LC LC LC bits < > = =
127 38
2 1 10 T bits = ~
( ), 127, 2 256 P x LC LC LC bits < > = =
A. Fster Sabater CCN Noviembre 2009
Criptosistemas de cifrado en flujo
Generadores de secuencia binaria
Basados en Registros (LFSR)
- Preservar las caractersticas de las PN-sec.
- Incrementar su complejidad
Clave: contenido inicial de estos registros
Hiptesis de partida:
- Conocimiento del esquema de generacin
- Conocimiento de una cantidad de la
secuencia de salida
A. Fster Sabater CCN Noviembre 2009
Generadores combinacionales
+ Filtro no lineal + Combinador no lineal
A. Fster Sabater CCN Noviembre 2009
0 0 0 1
F
Filtros no lineales
0 1 2 3 0 1 1 2 3
( , , , ) F a a a a a a a a a =
(1,0,0,0) 0 0 0 0 F = =
1 0 0 0
F
(0, 0, 0,1) 0 0 1 1 F = =
Sec. Generada = 0 1
A. Fster Sabater CCN Noviembre 2009
1 1 0 0
F
Filtros no lineales
0 1 2 3 0 1 1 2 3
( , , , ) F a a a a a a a a a =
(0,0,1,1) 0 0 1 1 F = =
1 1 1 0
F
(0,1,1,1) 0 1 1 0 F = =
Sec. Generada = 0 1 1
A. Fster Sabater CCN Noviembre 2009
0
3 2 3 1 1 3 2 1
) , , ( x x x x x x x x F =
LFSR 1
LFSR 2
LFSR 3
1
x
2
x
3
x
SELECTOR
i
z
Generador de Geffe (1973)
A. Fster Sabater CCN Noviembre 2009
0
1
Generador de Geffe (II)

Correlaciones!!!
3 1 2
. . .(2 1, 2 1, 2 1)
L L L
T mc m =
2 1 2 1 3
LC L L L L L = + +
3 2 3 1 1 3 2 1
) , , ( x x x x x x x x F =
1 2 3
61, 62, 63, 7687 L L L LC = = = =
A. Fster Sabater CCN Noviembre 2009
1 2 3 1 1 3 2 3
( , , )
i
z F x x x x x x x x = =
LFSR 1
LFSR 2
LFSR 3
SELECTOR
i
z
Ataques por correlacin
(Generador de Geffe 1973)
F
Leakage!!!!
A. Fster Sabater CCN Noviembre 2009
1
x
2
x
3
x
1
x
2
x
3
x
R 1
R 2
R 3
i
z
Ataques por correlacin
0
1
Estrategia: Divide and conquer
e. i. por separado
-
- T. Siegenthaler, Correlation-Immunity of Nonlinear Combining
Functions, IEEE Trans. on IT., 30 (1984), 312-317.
1 2 3
2
L L L + +
3 1 2
2 , 2 , 2
L L L
41 43 44
2
+ +
41 43 44
2 , 2 , 2
X
1
X
2
X
3
Z
i
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1
Tabla
de
verdad
A. Fster Sabater CCN Noviembre 2009
Ataques por correlacin (Geffe)
Objetivo:
- Determinar el estado inicial de R1, R2 y R3
Requerimientos:
- Conocimiento de una cierta cantidad de sec.
cifrante
Idea general:
- Identificar un subconjunto de posibles estados
iniciales de R1 y R2.
- Comparar cada par con todos los posibles
estados iniciales de R3.
{ }
i
z
A. Fster Sabater CCN Noviembre 2009
Para un registro (no selector), p.e. R1
Medida: Distancia de Hamming (secuencias de igual
longitud)
Comparar: Sec. generada vs Sec.interceptada
Obtener un subconjunto de posibles e. i. para R1
Actuar en paralelo para R2
e. i. Sec. gener. Indice coinc.
00001 101000..001 50%
00010 001000..010 50%
01101 001001..101 75%
{
1
2 . .
L
e i
{ }
i
z
A. Fster Sabater CCN Noviembre 2009
Ataques por correlacin
Comprobar cada ( , , todos los ) con la sec.
interceptada hasta descubrir el estado inicial del
generador
Algunos
e.i. de R1
Algunos
e.i. de
R2
Todos
los e.i. de
R3
A. Fster Sabater CEC - CNI Noviembre 2006
A. Fster Sabater CCN Noviembre 2009
Referencias sobre correlacin
W. Meier & O. Staffelbach, Fast correlation attacks on certain
stream ciphers, J. Cryptology, 1989, pp.159-176.
R. Anderson, Searching for the optimum correlation attack, Fast
Software Encryption 1994, 1008, pp. 137-143.
R. Anderson, Faster Attack on certain stream ciphers, Electro.
Letters, 29, 1993.
J. Golic et al. , Fast correlation attacks on nonlinear filter
generators, Information Processing Letters, 64 (1), 1997.
J. Golic, Fast Correlation Attacks on the summation generator, J.
Cryptology, (13) 2000, pp.245-262.
M. Mihaljevic et al., A low-complexity algorithm for the fast
correlation attack, FSE 2000, LNCS, 1978 (2000), pp. 196-212.
http://www.cryptosystem.net/stream/
J. Golic, Correlation Analysis on the Alternating Step Generator,
Designs, Codes & Crypto, 31, pp. 51-74, 2004.
A. Fster Sabater CCN Noviembre 2009
Generador de Massey-Rueppel
u
a (t + m 1)
b( dt + m 1)
a( t )
b( dt )
c( t )
du
LFSR m etapas
LFSR n etapas
A. Fster Sabater CCN Noviembre 2009
Generador de Massey-Rueppel (II)
Los LFSRs desplazan a distinta velocidad
Muy buena distribucin de 0s y 1s

lineal en las longitudes de los LFSRs


Criptoanlisis por baja LC
1 2
(2 1) (2 1)
L L
T =
1 2
LC L L =
A. Fster Sabater CCN Noviembre 2009
Generador de Beth-Piper
LFSR1
LFSR2
LFSR3
-
-
u
1
( ) a t
2
( ) a t
3
( ) a t
( ) b t
Funcin pulsos de reloj u
AND
XOR
A. Fster Sabater CCN Noviembre 2009
Generador de Beth-Piper (II)
Modificacin en el reloj de algunos LFSRs

Posible criptoanlisis por correlacin


J. Golic, Correlation Analysis on the Alternating Step
Generator, Designs, Codes & Crypto, 31, pp. 51-74,
2004.
3 1 2
(2 1) (2 1) (2 1)
L L L
T =
1
2 3
(2 1)
L
LC L L = +
A. Fster Sabater CCN Noviembre 2009
El Generador Shrinking (1993)
Generador binario muy sencillo (Crypto93)
Compuesto de dos LFSRs: LFSR1 y LFSR2
Segn P, LFSR1 (registro de control) decima la
secuencia producida por LFSR2
LFSR 1
LFSR 2
P
i
a
i
b
j
c
clock
A. Fster Sabater CCN Noviembre 2009
El Generador Shrinking
(Un ejemplo)
LFSRs:
LFSR1: L
1
=3, P
1
(D)=1+D
2
+D
3
, IS
1
=(1,0,0)
LFSR2: L
2
=4, P
2
(D)=1+D+D
4
, IS
2
=(1,0,0,0)
Ley de decimacin P:
{a
i
}= 1 0 0 1 0 1 1 1 0 0 1 0 1 1 1
{b
i
}= 1 0 0 0 1 1 1 1 0 1 0 1 1 0 0
{c
j
}= 1 0 1 1 1 0 1 0 0
Los bits subrayados (1 y 0) se eliminan
A. Fster Sabater CCN Noviembre 2009
Periodo:
Complejidad lineal:
Nmero de 1s:
secuencia equilibrada
) 1 (
1 2
2 ) 1 2 (

=
L L
T
) 1 (
2
) 2 (
2
1 1
2 2

s <
L L
L LC L
) 1 ( ) 1 (
1 2
2 2 ' 1 .

=
L L
s No
A. Fster Sabater CCN Noviembre 2009
Caractersticas criptogrficas
de la secuencia generada
Periodo:
Complejidad lineal:
Nmero de 1s:
secuencia equilibrada
) 1 (
1 2
2 ) 1 2 (

=
L L
T
) 1 (
2
) 2 (
2
1 1
2 2

s <
L L
L LC L
) 1 ( ) 1 (
1 2
2 2 ' 1 .

=
L L
s No
A. Fster Sabater CCN Noviembre 2009
Caractersticas criptogrficas
de la secuencia generada
Implementacin
R
1
R
2
P
OUTPUT
BUFFER
PLAINTEXT
CIPHERTEXT
IV
LSB
DECIMATION
ENCRYPTION
MODULE
KEYSTREAM
GENERATOR
El Generador Shrinking (1993)
A. Fster Sabater CCN Noviembre 2009
1000
0001
0011
0111
1111
1110
1101
1010
0101
1011
0110
1100
1001
0010
:
1000
0001
0011
0011
0111
1111
1110
1110
1101
1010
1010
0101
1011
0110
:
10000111111010 .
Beth-Piper
G. Shrinking
1_0_1_ _10_01_0 .
A. Fster Sabater CCN Noviembre 2009