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 )

„ 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 DICING Fubuki HC LEX Hermes NLS MAG Mir-1 Pomaranch SOSEMANUK SSS TRBDK3 YAEA 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 MAG Edon80 Hermes Sfinks F-FCSR LEX SSS NLS TRBDK3 YAEA MICKEY Phelix Yamb Moustique Polar Bear Pomaranch Rabbit 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 „ : „ 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, -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