Procedimientos de Cifrado en Flujo
Amparo Fúster Sabater Instituto de Física Aplicada C.S.I.C. [email protected]
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Contenido
Introducción a la criptografía
Procedimiento de cifrado en flujo
Algoritmos de cifrado en flujo (Ejemplos)
The eSTREAM Project
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Criptología
Criptología = Criptografía + Criptoanálisis
Criptografía: desarrolla métodos de cifrado para proteger la información.
Criptoanálisis: rompe dichos métodos para recuperar la información original.
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Procedimiento Criptográfico: Esquema General
CLAVE CLAVE
Texto claro Texto cifrado Texto claro cifrado descifrado A B
Criptoanálisis
descriptado
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Criptografía Actual
Criptosistemas actuales
Clave secreta Clave pública
Cifrado en flujo Cifrado en bloque
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Criptografía de clave secreta
Métodos de cifrado en flujo La transformación se aplica sobre cada carácter del mensaje original Ejemplo: sobre cada bit del mensaje
Métodos de cifrado en bloque La transformación se aplica sobre un grupo de caracteres del mensaje original Ejemplo: sobre grupos de 64 bits (DES)
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Principios básicos (I)
Sustitución Clave:
A B C D E F G H I J K L M N O P Q R S T U V X Y Z P L O K N M J U I B V G Y T F C X D R E S Z A Q H
Mensaje E S T O E S U N E J E M P L O Criptograma N R E F N R S T N B N Y C I F
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Principios básicos (II)
Transposición Clave:
Grupos de 4 letras Transposición: 1234 ---- 4321
Mensaje S I S T E M A S C L A S I C O S Criptograma T S I S S A M E S A L C S O C I
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Cifrado Vernam (1917)
One-time Pad (Cifrado con cinta aleatoria) Clave: Secuencia binaria aleatoria de uso único
Cifrado: YXii= ⊕ Zimod 2
Descifrado: XYii= ⊕ Zimod 2
Mensaje 00011 01111 01101 00101 10011 01111 01111 01110
Clave 11011 00101 01011 00110 10110 10101 01100 10010 Criptograma 11000 01010 00110 00011 00101 11010 00011 11100
Mensaje: come soon (Código ITA-2)
A. Fúster Sabater INFOSEC-EMACOT Abril 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 INFOSEC-EMACOT Abril 2009
Cifrado Vernam: es viable?
emisor receptor
Mensaje 00011 01111 01101 Criptograma 11000 01010 00110
Sec. cifrante 11011 00101 01011 Sec. cifrante 11011 00101 01011
Criptograma 11000 01010 00110 Mensaje 00011 01111 01101
Centro de distribución de claves
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Procedimiento de Cifrado en Flujo
Clave Clave
Algoritmo Algoritmo determinístico zi zi determinístico
yi
EMISOR RECEPTOR
xi xi xi ⊕ zi = yi yi ⊕ zi = xi
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Cifrado en flujo
Sec. cifrante = Algoritmo + clave c1 • Sec. periódica • c Pseudoaleatoriedad 2 No estamos propiamente en condiciones de “secreto perfecto” • c3
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Secuencia Cifrante:
1. ¿Qué características generales presentan estas secuencias?
2. ¿Cómo son los generadores que las producen?
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Secuencias Cifrantes: Características Generales (I)
Período (≈ 1038 bits)
T = 2128 -1 ≈ 3,40 x 1038 bits
6 22 Vc = 120 x 10 bits/seg ⇒ 9,452 x 10 años
221x109 veces la edad del universo
A. Fúster Sabater INFOSEC-EMACOT Abril 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 INFOSEC-EMACOT Abril 2009
Secuencias Cifrantes: Características Generales (III) Autocorrelación
ACk()= (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
Autocorrelación en fase: AC()k =1
Autocorrelación fuera de fase: AC()k ∈[−1,1]
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Postulados de pseudoaleatoriedad de Golomb
G1: En cada período de la secuencia considerada el número de 1’s tiene que ser aproximadamente igual al número de 0’s.
G2: En cada período 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 INFOSEC-EMACOT Abril 2009
Registros de desplazamiento realimentados linealmente (LFSR)
xx4 ++1 • • 1 0 0 0 ↔ 1 0 0 0 0 0 0 1 Parámetros del registro 0 0 1 1 Longitud L (T = 2L –1) PN-secuencia 0 1 1 1 Polinomio de realimentación 1 1 1 1 Funcionamiento 1 1 1 0 Desplazamiento del contenido binario 1 1 0 1 Entra bit realimentado 1 0 1 0 Secuencia generada: 1 0 0 0 1 1 1 1 …… KKK A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Registros de desplazamiento realimentados linealmente (LFSR)
xx4 ++1 1 0 0 0 ↔ • • Relación de recurrencia lineal 1 0 0 0 0 0 0 1 aann++43= ⊕≥ann0 0 0 1 1
aa43= ⊕ a0 0 1 1 1 1 1 1 1 aa54= ⊕ a1 1 1 1 0 MM 1 1 0 1 Cada elemento se expresa en función de los 1 0 1 0 anteriores (relación lineal) KKK A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Criptosistemas de cifrado en flujo
Generadores de secuencia binaria Basados en Registros (LFSR) Clave: contenido inicial de estos registros Long. Clave = No. etapas en los LFSRs Hipótesis de partida: Conocimiento del esquema de generación Conocimiento de una cantidad de la secuencia de salida
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Generador de Geffe (1973)
x LFSR 1 1 0
x zi LFSR 2 2 1
x3 LFSR 3 SELECTOR
F(x1, x2 , x3 ) = x1 ⊕ x1x3 ⊕ x2 x3
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Generador de Beth-Piper (1981)
at2 () LFSR2
at1() XOR bt() LFSR1 AND
LFSR3 at() • 3 Φ •
Φ Función pulsos de reloj
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
El Generador Shrinking (1993)
Generador binario muy sencillo (Crypto’93) Compuesto de dos LFSRs: LFSR1 y LFSR2 a LFSR 1 i
clock P c j b LFSR 2 i
Según P, LFSR1 (registro de control) decima la secuencia producida por LFSR2 A. Fúster Sabater INFOSEC-EMACOT Abril 2009
El Generador Shrinking (Un ejemplo) LFSRs: 2 3 ¾ LFSR1: L1=3, P1(x)=1+x +x , IS1=(1,0,0) 4 ¾ LFSR2: L2=4, P2(x)=1+x+x , 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 INFOSEC-EMACOT Abril 2009
Algoritmos de cifrado A5
A B
Algoritmo A5: generador de secuencia pseudoaleatoria
Uso: cifrado del enlace entre el teléfono móvil y la estación base (Telefonía G.S.M.)
A5/1 (países europeos) Doble versión: A5/2 (fuera de Europa)
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Telefonía G.S.M. (Global System for Mobile Communications) Conversación G.S.M. = secuencia de tramas Trama = 228 bits enviada cada 4,6 milisegundos
Cifrado de la conversación:
0 0 0 0 1 1 0 1 … texto claro (conversación digitalizada)
1 0 1 1 0 1 0 1 … sec. cifrante (producida por algoritmo A5)
1 0 1 1 1 0 0 0 … sec. cifrada (conversación cifrada)
Algoritmos criptográficos G.S.M. : A5/1, A5/2 (cifrado)
Estos algoritmos nunca fueron publicados oficialmente M. Briceno esquemas funcionales del A5/1 y A5/2 (ingeniería inversa) (http://cryptome.org/gsm-a512.htm)
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Cifrado/Descifrado en A5/1 • emisor 001…10 010…11 110…01 ….. (texto claro) 011…01 000…10 010…11 ….. (sec. cifrante) 010…11 010…01 100…10 ….. (texto cifrado)
• receptor 010…11 010…01 100…10 ….. (texto cifrado) 011…01 000…10 010…11 ….. (sec. cifrante) 001…10 010…11 010…11 ….. (texto claro)
A5/1 es un generador de secuencia cifrante controlado por 64 bits de clave
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Algoritmo A5/1
19 14 c1 1 1 0 R1
22 c2 1 1 0 1 R2
23 c3 8 1 0 0 R3
• Estado interno: 19 + 22 + 23 = 64 bits • Función mayoría (c1,c2,c3) = (0,1,0), R1 y R3 desplazan A. Fúster Sabater INFOSEC-EMACOT Abril 2009
AlgoritmoAlgoritmo E0E0
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
The eSTREAM PROJECT: Generalidades
Iniciativa de la Universidad de Lovaina en 2004
En el marco del SASC’04 (the State of the Art of Stream Cipher)
Finalidad: Convocatoria para la presentación de primitivas criptográficas de cifrado en flujo
“Standard” de Cifrado en Flujo Dirección Web: http://www.ecrypt.eu.org/stream/index.html
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
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, no. 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)
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
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 !!!
Selección de algoritmos basada en sucesivas cribas (fases) Algunos pasan a la siguiente fase Otros se archivan definitivamente
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
The eSTREAM PROJECT: Propuestas
Se presentaron 34 primitivas criptográficas Doble clasificación: Cifradores orientados a su implementación software Cifradores orientados a su implementación hardware Algunos de ellos verificaban los requerimientos de ambas categorías
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
The eSTREAM PROJECT: Calendario
October 14-15, 2004, A workshop is hosted by ECRYPT in Bruges : SASC - The State of the Art of Stream Ciphers. Discussion at this workshop leads to the ECRYPT Call for Primitives. November 2004, ECRYPT launches its Call for Primitives. April 29, 2005, The deadline of submission to ECRYPT. 34 primitives have been submitted to ECRYPT. June 13, 2005, This website is launched, to promote the public evaluation of the primitives. February 2006, The end of the first evaluation phase of eSTREAM. July 2006, The beginning of the second evaluation phase of eSTREAM. April 2007, The beginning of the third evaluation phase of eSTREAM. February 2008, Workshop SASC 2008 May 2008, The final report of the eSTREAM.
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
The eSTREAM PROJECT: Propuestas (SW) Profile 1 (SW) Archived Phase 3 Phase 2 Archived Phase 1 Archived CryptMT ABC F-FCSR Dragon DICING Fubuki HC Phelix Frogbit LEX Polar Bear Hermes NLS Py MAG Rabbit Mir-1 Salsa20 Pomaranch SOSEMANUK SSS TRBDK3 YAEA Yamb A. Fúster Sabater INFOSEC-EMACOT Abril 2009
The eSTREAM PROJECT: Propuestas (HW) Profile 2 (HW) Archived Phase 3 Phase 2 Archived Phase 1 Archived DECIM Achterbahn MAG Edon80 Hermes Sfinks F-FCSR LEX SSS Grain NLS TRBDK3 YAEA MICKEY Phelix Yamb Moustique Polar Bear Pomaranch Rabbit Trivium Salsa20 TSC-3 VEST WG A. Fúster Sabater Zk - Crypt INFOSEC-EMACOT Abril 2009
The eSTREAM PROJECT:
Rabbit (Phase 3 Profile 1) This is the archived eSTREAM Phase 3 page of Rabbit. For the latest information on Rabbit, please go to the eSTREAM portfolio page on Rabbit here Algorithm Name: Rabbit Submitters : Martin Boesgaard, Mette Vesterager, Thomas Christensen and Erik Zenner Type of Algorithm : Synchronous Stream Cipher Proposed Environment : Profile 1 (SW) and 2 (HW) Intellectual Property : Patented, but free for non-commercial use. statements Algorithm Description : Article : The Stream Cipher Rabbit, pdf Submitted C code: zip API-compliant C code: link Archived Pages: Phase 2 page and Phase 1 page Cryptanalysis: Jean-Philippe Aumasson, "On a bias of Rabbit", pdf. Software Performance : link
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
The eSTREAM PROJECT: Propuestas fase 3 Profile 1 (SW) Profile 2 (HW) DECIM (DECIM v2 and DECIM- CryptMT (CryptMT Version 3) 128) Dragon Edon80 F-FCSR (F-FCSR-H v2 and F-FCSR- HC (HC-128 and HC-256) 16) LEX (LEX-128, LEX-192 and LEX- Grain (Grain v1 and Grain-128) 256) MICKEY (Mickey 2.0 and Mickey- NLS (NLSv2, encryption-only) 128) Rabbit Moustique Salsa20 Pomaranch (Pomaranch Version 3) SOSEMANUK Trivium
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
The eSTREAM PROJECT: Finalistas
4 propuestas (perfil SW): HC, Rabbit, Salsa20, Sosemanuk. 4 propuestas (perfil HW): Mickey, FCSR, Grain, Trivium
Profile 1 (SW) Profile 2 (HW)
HC (HC-128 and HC-256) MICKEY (Mickey 2.0 and Mickey-128)
Rabbit F-FCSR (F-FCSR-H v2) Salsa20 Grain (Grain v1 and Grain-128) SOSEMANUK Trivium
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
The eSTREAM PROJECT: Ganadores
Contra todo pronóstico salen 7 algoritmos ganadores !!!!!!!!!!
Profile 1 (SW) Profile 2 (HW) HC (HC-128 and HC-256) Grain (Grain-128) Rabbit MICKEY (MICKEY 2.0) Salsa20 Trivium SOSEMANUK
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
The eSTREAM PROJECT: Trivium (HW) Trivium: generador de secuencia síncrono orientado al hardware. Autores: C. de Cannière and B. Preneel Conjuga : simplicidad, seguridad y velocidad Consta de: CLAVE: K de 80 bits VEC. INIC. : IV de 80 bits Genera hasta 264 bits consecutivos Dos Fases: Fase de inicialización Fase de generación
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
The eSTREAM PROJECT: Trivium (HW)
Estado interno de 288 bits
(s1, s2, s3, ….., s288)
Maneja 15 bits en cada iteración
Todo gira en torno al número 3 (Trivium)
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
The eSTREAM PROJECT: Trivium (HW)
Fase de Generación: t ← s ⊕ s 1 66 93 z ← t ⊕ t ⊕ t Bit calculado t ← s ⊕ s i 1 2 3 2 162 177 } t3 ← s243 ⊕ s288
t1 ← t1 ⊕ s91 ⋅ s92 ⊕ s171
t2 ← t2 ⊕ s175 ⋅ s176 ⊕ s264 Actualización t3 ← t3 ⊕ s286 ⋅ s287 ⊕ s69
(s1, s2 ,K, s93 ) ← (t3 , s1, s2 ,K, s92 ) Rotación (s94 , s95 ,K, s177 ) ← (t1, s94 , s95 ,K, s176 )
(s178 , s179 ,K, s288 ) ← (t2 , s178 , s179 ,K, s287 )
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
The eSTREAM PROJECT: Trivium (HW) Fase de Inicialización:
(s1, s2 ,K, s93 ) ← (K1,K, K80 ,0,K,0)
(s94 , s95 ,K , s177 ) ← (IV1 ,K , IV80 ,0,K ,0)
(s178 , s179 ,K, s288 ) ← (0,K,0,1,1,1) for i = 1 to 4 · 288 do
t1 ← s66 ⊕ s91 ⋅ s92 ⊕ s93 ⊕ s171
t2 ← s162 ⊕ s175 ⋅ s176 ⊕ s177 ⊕ s264
t3 ← s243 ⊕ s286 ⋅ s287 ⊕ s288 ⊕ s69
(s1, s2 ,K, s93 ) ← (t3 , s1, s2 ,K, s92 ) (s94 , s95 ,K, s177 ) ← (t1, s94 , s95 ,K, s176 ) (s178 , s179 ,K, s288 ) ← (t2 , s178 , s179 ,K, s287 )
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
The eSTREAM PROJECT: Sosemanuk (SW)
LFSR: un registro de 10 etapas Contenido de cada etapa es un elemento de GF(232 )
st+i palabra de 32 bits Π ( X ) = α X 10 + α −1 X 7 + X + 1
−1 st +10 ← st +9 ⊕ α st +3 ⊕ α st
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Algoritmo RC4 Inicialización:
1. Si = i, i=0...255
2. Rellenar el array Ki i=0...255 repitiendo la semilla de clave secreta 3. f=0 4. Desde i = 0 hasta 255 hacer:
f = (f + Si + Ki) mod 256
Intercambiar Si y Sf
Generación de secuencia cifrante:
Inicializar i y f a 0, y calcular cada byte St de la secuencia cifrante mediante:
1. i = (i + 1) mod 256; f = (f + Si) mod 256;
2. Intercambiar Si y Sf
3. t = (Si + Sf) mod 256
A. Fúster Sabater INFOSEC-EMACOT Abril 2009
Conclusiones
eSTREAM ha devuelto el interés por el cifrado en flujo tras varios años de innactividad.
Hay muchos y buenos cifradores en flujo para su posible criptoanálisis.
A. Fúster Sabater INFOSEC-EMACOT Abril 2009