Procedimientos de
Cifrado en flujo
Amparo Fúster Sabater
Instituto de Física Aplicada C.S.I.C.
A. Fúster Sabater CCN Noviembre 2009
Contenido
• Operaciones binarias
• Del cifrado Vernam al cifrado en flujo
• Secuencias cifrantes
• Generadores de secuencias cifrantes
A. Fúster Sabater CCN Noviembre 2009
Procedimiento Criptográfico:
Esquema General
A
Texto claro
CLAVE
descifrado
descriptado
Criptoanálisis
Texto cifradocifrado
Texto claro
CLAVE
B
A. Fúster Sabater CCN Noviembre 2009
Criptografía Actual
Criptosistemas
actuales
Clave secreta Clave pública
Cifrado en flujo Cifrado en bloque
A. Fúster Sabater CCN Noviembre 2009
Operaciones binarias
• Suma módulo 2
Operación XOR
• Producto lógico •
Operación AND
1 2 1 2( , )F x x x x
1 2 1 2( , )F x x x x
A. Fúster Sabater CCN Noviembre 2009
x1 x2
0 0 0
0 1 1
1 0 1
1 1 0
x1 x2 •
0 0 0
0 1 0
1 0 0
1 1 1
Fundamentos matemáticos
• Función Booleana:
variables binarias
• Función lineal: no adecuadas para criptografía
• Función no lineal: Forma algebraica normal (A.N.F.)
Orden no lineal: producto con mayor número de variables
1 2( , , , )nF x x x
1 2 1 2( , , , )n nF x x x x x x
1 2 1 2 3 1( , , , )n n nF x x x x x x x x
A. Fúster 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 (Código ITA-2)
mod 2i i iY X Z
( ) mod 2i i i i i iX 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. Fúster Sabater CCN Noviembre 2009
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:
“El texto claro X es estadísticamente 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. Fúster Sabater CCN Noviembre 2009
• Existen cifradores perfectos?
- Cifrador con X, Y, Z {0,1,…,L-1}
- La clave se elige de forma aleatoria
- Transformación de cifrado:
• Los cifradores aditivos módulo L verifican las
condiciones de secreto perfecto
• Conclusión: La clave debe ser aleatoria, usarse una
única vez y tener al menos igual longitud que el
mensaje original
modi i iy x z L
A. Fúster Sabater CCN Noviembre 2009
Cifrado Vernam: es viable?
Centro de
distribución de
claves
emisoremisor receptor
A. Fúster 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
yi
Clave
ziAlgoritmo
determinístico
xi
zi
Algoritmo
determinístico
xi
xi zi = yi yi zi = xi
EMISOR RECEPTOR
Cifrado en Flujo
A. Fúster Sabater CCN Noviembre 2009
Clave
zi
Cifrado en flujo
c3
c2
c1
• Cifrado bit a bit
• Sec. cifrante = Algoritmo + clave
• Generación de secuencias cifrantes
- Periodo largo
- Propiedades de pseudoaleatoriedad
- Imprevisibilidad
- Espacio claves
- Facilidad de implementación
• No estamos propiamente en
condiciones de secreto perfecto
(Aproximación al cifrado Vernam)
A. Fúster Sabater CCN Noviembre 2009
Secuencia Cifrante:
1. ¿Qué características generales presentan
estas secuencias?
2. ¿Cómo son los generadores que las
producen?
A. Fúster Sabater CCN Noviembre 2009
Secuencias Cifrantes:
Características Generales (I)
• Periodo (≈ 1038 bits)
T = 2128 - 1 ≈ 3,40 x 1038 bits
Vc = 120 x 106 bits/seg 9.452 x 1022 años
22.200 veces la edad del universo
A. Fúster Sabater CCN Noviembre 2009
Secuencias Cifrantes:
Características Generales (II)
• Distribución de ceros y unos
0100110100111010110010010
- rachas de ceros (gaps)
- rachas de unos (blocks)
A. Fúster Sabater CCN Noviembre 2009
Secuencias Cifrantes:
Características Generales (III)
• Autocorrelación
- A = Número de coincidencias
- D = Número 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.
desplazada0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1
(4) (6 10) /16AC
A. Fúster Sabater CCN Noviembre 2009
Secuencias Cifrantes:
Características Generales (III)
• Autocorrelación
- Autocorrelación en fase:
- Autocorrelación 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
( ) 1AC k
( ) [ 1,1]AC k
A. Fúster Sabater CCN Noviembre 2009
Postulados de pseudoaleatoriedad de
Golomb
• G1: En cada periodo de la secuencia considerada el número de 1’s
tiene que ser aproximadamente igual al número de 0’s.
• G2: En cada periodo de la secuencia considerada la mitad de las
rachas, del número total de rachas observadas, tiene longitud 1, la
cuarta parte longitud 2, la octava parte longitud 3 … etc. Para cada
longitud habrá el mismo número de blocks que de gaps.
• G3: La autocorrelación AC(k) fuera de fase tiene que ser constante
para todo valor de k.
A. Fúster Sabater CCN Noviembre 2009
Interpretación de los Postulados de
Golomb
• G1: El número de 1’s y 0’s 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 dígitos consecutivos) deben aparecer con la
probabilidad correcta .
• G3: El cálculo de coincidencias entre una secuencia y su versión
desplazada no debe aportar información sobre el periodo de la
secuencia.
A. Fúster Sabater CCN Noviembre 2009
Registros de desplazamiento
realimentados linealmente (LFSR)
4 1x x
• Parámetros del registro
- Longitud L
- Pol. de realimentación ó característico
• Funcionamiento
- Desplazamiento del contenido binario
- Entra bit realimentado
• Secuencia generada: 1 0 0 0 1 1 1 1 ……
0001
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. Fúster Sabater CCN Noviembre 2009
Linear Feedback Shift Registers
4 1x x
• Relación de recurrencia lineal
• Cada elemento se expresa en función de losanteriores (relación 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 0n n na a a n
4 3 0a a a
5 4 1a a a
0a 1a 2a 3a
4 3( ) 1cP x x x
A. Fúster Sabater CCN Noviembre 2009
Tipos de LFSRs
•
•
•
0001
4 2 1x x 0 1 1 0
• 0110
• 0001
• 0011
Estado inicial
1 1 11
• 1111
• 0001
• 0010
• 1000
4 3 2 1x x x x
4 1x x
A. Fúster Sabater CCN Noviembre 2009
Periodo del LFSR (factorizable)
000100100101101001001000
1 0 0 0
0000
0110
1101
1011
001101111111111011001001
4 2 2 21 ( 1)( 1)x x x x x x
A. Fúster Sabater CCN Noviembre 2009
Generadores con polinomio de
realimentación 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 criptográficos
• Golomb, S. W., Shift Register Sequences, Holden Day,
San Francisco, 1967
2 1LL T
A. Fúster Sabater CCN Noviembre 2009
Periodo del LFSR (irreducible)
0001
0011
0110
1100
1000
0000
4 3 2 1x x x x
0010
0101
1010
0100
1001
1111
1110
1101
1011
0111
1 1 11
A. Fúster Sabater CCN Noviembre 2009
Generadores con polinomio de
realimentación irreducible
• La longitud de la secuencia no depende del
estado inicial
• El periodo T es un factor de
• No adecuados para usos criptográficos
2 1L
A. Fúster Sabater CCN Noviembre 2009
Periodo del LFSR (primitivo)
0000
4 1x x
0001
1000
0001
0011
0111
1111
1110
1101
1010
0101
1011
0110
1100
1001
0010
0100
• PN-secuencia (m-secuencia)
• Máximo periodo posible para este
tipo de generador
100011110101100 …..
A. Fúster Sabater CCN Noviembre 2009
Generadores con polinomio de
realimentación primitivo
• La longitud de la secuencia no depende del
estado inicial
• El período es
• Adecuados para usos criptográficos, su
secuencia satisface los postulados de Golomb
2 1LT
A. Fúster Sabater CEC - CNI Noviembre 2006A. Fúster Sabater CCN Noviembre 2009
• ¿Cuántos polinomios primitivos de grado L hay?
• Son todos buenos?
-
- Distribución uniforme de etapas
11 . 176
24 . 276480
L No
L No
15 1n n na a a 15 1x x
15 14 13 12 11 5 4 3 1x x x x x x x x
15 14 13 12 11 5 4 3n n n n n n n n na a a a a a a a a
(2 1) /L L
A. Fúster Sabater CCN Noviembre 2009
PN-secuencias y postulados de
Golomb
• G1:
• G2:
2 1LT Long. Gaps Blocks
1
2
: : :
r
: : :
L-2 1 1
L-1 1 0
L 0 1
Total
32L
42L
32L
42L
22L r 22L r
22L 22L
PN-secuencia
100011110101100
1.1' 2LNo s
1. 0' 2 1LNo s
A. Fúster 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) /15AC
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) /15AC
Las PN-secuencias verifican los postulados de Golomb
A. Fúster Sabater CCN Noviembre 2009
Complejidad Lineal: imprevisibilidad
• Concepto básico: 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. Fúster Sabater CCN Noviembre 2009
Algoritmo de Berlekamp-Massey
• Idea general:
--
• Curva de complejidad
0 1 1, , , ( ),n
nS a a a p x L 1
0 1 1, , , , '( ), 'n
n nS a a a a p x L
LC
N. bits
L’
L ( ),p x L
'( ), 'p x L
A. Fúster Sabater CCN Noviembre 2009
Complejidad Lineal (II)
• Secuencia 1:
Sec. generada por un LFSR (pol. Primitivo)
MUY PREVISIBLE
• Secuencia 2:
1000111101000011011110100010100
MUY IMPREVISIBLE
• Relación entre T y 2·LC
31T bits
( ), 15, 2 30P x LC LC LC bits
127 382 1 10T bits
( ), 127, 2 256P x LC LC LC bits
A. Fúster Sabater CCN Noviembre 2009
Criptosistemas de cifrado en flujo
• Generadores de secuencia binaria
• Basados en Registros (LFSR)
- Preservar las características de las PN-sec.
- Incrementar su complejidad
• Clave: contenido inicial de estos registros
• Hipótesis de partida:
- Conocimiento del esquema de generación
- Conocimiento de una cantidad de la
secuencia de salida
A. Fúster Sabater CCN Noviembre 2009
Generadores combinacionales
Filtro no lineal Combinador no lineal
A. Fúster Sabater CCN Noviembre 2009
0001
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 0F
1000
F
(0,0,0,1) 0 0 1 1F
Sec. Generada = 0 1
A. Fúster Sabater CCN Noviembre 2009
1100
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 1F
1110
F
(0,1,1,1) 0 1 1 0F
Sec. Generada = 0 1 1
A. Fúster Sabater CCN Noviembre 2009
0
32311321 ),,( xxxxxxxxF
LFSR 1
LFSR 2
LFSR 3
1x
2x
3xSELECTOR
iz
Generador de Geffe (1973)
A. Fúster Sabater CCN Noviembre 2009
0
1
Generador de Geffe (II)
•
•
•
• Correlaciones!!!
31 2. . .(2 1,2 1,2 1)LL L
T m c m
2 1 2 1 3LC L L L L L
32311321 ),,( xxxxxxxxF
1 2 361, 62, 63, 7687L L L LC
A. Fúster Sabater CCN Noviembre 2009
1 2 3 1 1 3 2 3( , , )iz F x x x x x x x x
LFSR 1
LFSR 2
LFSR 3 SELECTOR
iz
Ataques por correlación
(Generador de Geffe 1973)
FLeakage!!!!
A. Fúster Sabater CCN Noviembre 2009
1x
2x
3x
1x
2x
3x
R 1
R 2
R 3
iz
Ataques por correlación
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 32L L L 31 22 , 2 , 2
LL L
41 43 442 41 43 442 , 2 , 2
X1 X2 X3 Zi
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. Fúster Sabater CCN Noviembre 2009
Ataques por correlación (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.
iz
A. Fúster 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.
00…001 101000..001 ≈ 50%
00…010 001000..010 ≈ 50%
01…101 001001..101 ≈ 75%12 . .
Le i
iz
A. Fúster Sabater CCN Noviembre 2009
Ataques por correlación
• Comprobar cada ( , , todos los ) con la sec. interceptada hasta descubrir el estado inicial del generador
Algunos
e.i. de R1Algunos
e.i. de
R2
Todos
los e.i. de
R3
A. Fúster Sabater CEC - CNI Noviembre 2006A. Fúster Sabater CCN Noviembre 2009
Referencias sobre correlación
• 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. Fúster Sabater CCN Noviembre 2009
Generador de Massey-Rueppel
a ( t + m – 1)
b ( dt + m – 1)
a ( t)
b ( dt )
c( t)
d
LFSR m etapas
LFSR n etapas
A. Fúster Sabater CCN Noviembre 2009
Generador de Massey-Rueppel (II)
• Los LFSRs desplazan a distinta velocidad
• Muy buena distribución de 0’s y 1’s
•
• lineal en las longitudes de los LFSRs
• Criptoanálisis por baja LC
1 2(2 1) (2 1)L L
T
1 2LC L L
A. Fúster Sabater CCN Noviembre 2009
Generador de Beth-Piper
LFSR1
LFSR2
LFSR3
1( )a t
2( )a t
3( )a t
( )b t
Función pulsos de reloj
ANDXOR
A. Fúster Sabater CCN Noviembre 2009
Generador de Beth-Piper (II)
• Modificación en el reloj de algunos LFSRs
•
•
• Posible criptoanálisis por correlación
J. Golic, Correlation Analysis on the Alternating Step Generator, Designs, Codes & Crypto, 31, pp. 51-74, 2004.
31 2(2 1) (2 1) (2 1)LL L
T
1
2 3(2 1)LLC L L
A. Fúster Sabater CCN Noviembre 2009
El Generador Shrinking (1993)
• Generador binario muy sencillo (Crypto’93)
• Compuesto de dos LFSRs: LFSR1 y LFSR2
• Según P, LFSR1 (registro de control) decima la
secuencia producida por LFSR2
LFSR 1
LFSR 2
P
ia
ibjc
clock
A. Fúster Sabater CCN Noviembre 2009
El Generador Shrinking
(Un ejemplo)
LFSRs:
LFSR1: L1=3, P1(D)=1+D2+D3, IS1=(1,0,0)
LFSR2: L2=4, P2(D)=1+D+D4, IS2=(1,0,0,0)
Ley de decimación P:
• {ai}= 1 0 0 1 0 1 1 1 0 0 1 0 1 1 1 …
• {bi}= 1 0 0 0 1 1 1 1 0 1 0 1 1 0 0 …
• {cj}= 1 0 1 1 1 0 1 0 0 …
Los bits subrayados (1 y 0) se eliminan
A. Fúster Sabater CCN Noviembre 2009
• Periodo:
• Complejidad lineal:
• Número de 1’s:
secuencia equilibrada
)1( 12 2)12(
LL
T
)1(2
)2(2
11 22
LL
LLCL
)1()1( 12 22'1.
LL
sNo
A. Fúster Sabater CCN Noviembre 2009
Características criptográficas
de la secuencia generada
• Periodo:
• Complejidad lineal:
• Número de 1’s:
secuencia equilibrada
)1( 12 2)12(
LL
T
)1(2
)2(2
11 22
LL
LLCL
)1()1( 12 22'1.
LL
sNo
A. Fúster Sabater CCN Noviembre 2009
Características criptográficas
de la secuencia generada
• Implementación
R1
R2
POUTPUT
BUFFER
PLAINTEXT
CIPHERTEXT
IV
LSB
DECIMATION
ENCRYPTION
MODULE
KEYSTREAM
GENERATOR
El Generador Shrinking (1993)
A. Fúster Sabater CCN Noviembre 2009