Procedimientos de Cifrado en Flujo

48 

Loading....

Loading....

Loading....

Loading....

Loading....

Texto completo

(1)

Procedimientos de Cifrado en

Flujo

Amparo Fúster Sabater

Instituto de Física Aplicada C.S.I.C.

amparo@iec.csic.es

(2)

Contenido

„

Introducción a la criptografía

„

Procedimiento de cifrado en flujo

„

Algoritmos de cifrado en flujo (Ejemplos)

„

The eSTREAM Project

(3)

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.

(4)

Procedimiento Criptográfico:

Esquema General

A

Texto claro

CLAVE

descifrado

descriptado

Criptoanálisis

Texto cifrado

cifrado

Texto claro

CLAVE

B

(5)

Criptografía Actual

Criptosistemas

actuales

Clave secreta

Clave pública

Cifrado en flujo

Cifrado en bloque

(6)

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)

(7)

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

(8)

Principios básicos (II)

„

Transposición

Clave:

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

Grupos de 4 letras Transposición:

1234 ----

4321

(9)

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 2

i i i

Y

=

X

Z

mod 2

i i i

X

= ⊕

Y

Z

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

(10)

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.

(11)

Cifrado

Vernam: es

viable?

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

emisor

receptor

(12)

y

i

Clave

z

i

Algoritmo

determinístico

x

i

Clave

z

i

determinístico

Algoritmo

x

i

Procedimiento de Cifrado en Flujo

x

i

z

i

= y

i

y

i

z

i

= x

i

EMISOR

RECEPTOR

(13)

Cifrado

en flujo

c

3

c

2

c

1

• • •

„

Sec. cifrante = Algoritmo + clave

„

Sec. periódica

„

Pseudoaleatoriedad

„

No estamos propiamente en

condiciones

de

“secreto

perfecto”

(14)

Secuencia

Cifrante:

1.

¿Qué

características

generales

presentan

estas

secuencias?

2.

¿Cómo

son los generadores

que

las

producen?

(15)

Secuencias Cifrantes:

Características Generales (I)

„

Período (

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

años

221x10

9

veces la edad del universo

(16)

Secuencias Cifrantes:

Características Generales (II)

„

Distribución de ceros y unos

01001101

00

111010

11

0010010

„

rachas de ceros

(gaps)

„

rachas de unos

(blocks)

(17)

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

( ) 1

AC k

=

( ) [ 1,1]

AC k

∈ −

(18)

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

.

(19)

Registros de desplazamiento realimentados

linealmente (LFSR)

4

1

x

+ +

x

„

Parámetros del registro

„

Longitud

L

(T = 2

L

– 1)

PN-secuencia

„

Polinomio de realimentación

„

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

KKK

(20)

Registros de desplazamiento realimentados

linealmente (LFSR)

4 3

0

n n n

a

+

=

a

+

a

n

4

1

x

+ +

x

„

Relación de recurrencia

lineal

„

Cada elemento se expresa en función de los

anteriores

(

relación

lineal)

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

KKK

A. Fúster Sabater INFOSEC-EMACOT Abril 2009

5 4 1

a

=

a

a

M

M

4 3 0

(21)

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

(22)

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

0

1

SELECTOR

i

z

Generador de Geffe

(1973)

(23)

Generador de Beth-Piper

(1981)

LFSR1

LFSR2

LFSR3

Φ

1

( )

a t

2

( )

a t

3

( )

a t

( )

b t

Función

pulsos

de reloj

Φ

AND

XOR

(24)

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

i

a

i

b

j

c

clock

(25)

El Generador Shrinking

(Un ejemplo)

LFSRs:

¾

LFSR1:

L

1

=3, P

1

(x)=1+x

2

+x

3

, IS

1

=(1,0,0)

¾

LFSR2:

L

2

=4, P

2

(x)=1+x+x

4

, IS

2

=(1,0,0,0)

Ley de decimación 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

(26)

Algoritmos de cifrado A5

„

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.)

„

Doble versión:

A

B

A5/1

(países europeos)

A5/2

(fuera de Europa)

(27)

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)

(28)

001…10 010…11 110…01

…..

(texto claro

)

011…01 000…10 010…11

…..

(sec. cifrante)

010…11 010…01 100…10

…..

(texto cifrado)

emisor

011…01 000…10 010…11

…..

(sec. cifrante)

010…11 010…01 100…10

…..

(texto cifrado)

001…10 010…11 010…11

…..

(texto claro

)

receptor

Cifrado/Descifrado

en A5/1

„

A5/1

es un generador de secuencia cifrante controlado

por

64

bits de clave

(29)

Algoritmo A5/1

Estado interno: 19 + 22 + 23 = 64 bits

Función mayoría (c1,c2,c3) = (0,1,0), R1 y R3 desplazan

1

1

0

0

0

0

c1

c2

c3

1

19

1

1

R1

22

8

14

23

R2

R3

1

(30)

Algoritmo E0

Algoritmo E0

(31)

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

(32)

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)

(33)

„

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

The eSTREAM PROJECT: Planificación

(34)

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

(35)

The eSTREAM PROJECT: Calendario

A. Fúster Sabater INFOSEC-EMACOT Abril 2009

„

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

(36)

The eSTREAM PROJECT: Propuestas (SW)

Profile 1 (SW)

Phase 3

Archived

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

(37)

The eSTREAM PROJECT: Propuestas (HW)

Profile 2 (HW)

Phase 3

Archived

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

Zk-Crypt

(38)

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

(39)

The eSTREAM PROJECT:

Propuestas fase 3

Profile 1 (SW)

Profile 2 (HW)

CryptMT (CryptMT Version 3)

DECIM (DECIM v2 and DECIM-

128)

Dragon

Edon80

HC (HC-128 and HC-256)

F-FCSR (F-FCSR-H v2 and F-FCSR-

16)

LEX (LEX-128, LEX-192 and LEX-

256)

Grain (Grain v1 and Grain-128)

NLS (NLSv2, encryption-only)

MICKEY (Mickey 2.0 and Mickey-

128)

Rabbit

Moustique

Salsa20

Pomaranch (Pomaranch Version 3)

SOSEMANUK

Trivium

(40)

The eSTREAM PROJECT:

Finalistas

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

„

4 propuestas (perfil SW):

HC, Rabbit, Salsa20,

Sosemanuk.

„

4 propuestas (perfil HW):

Mickey, FCSR,

Grain, Trivium

(41)

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

(42)

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 2

64

bits consecutivos

„

Dos Fases:

„

Fase de inicialización

„

Fase de generación

(43)

The eSTREAM PROJECT:

Trivium (HW)

„

Estado interno

de 288 bits

(s

1

, s

2

, s

3

, ….., s

288

)

„

Maneja

15

bits en

cada iteración

„

Todo gira en torno

al número

3

(Trivium)

(44)

The eSTREAM PROJECT:

Trivium (HW)

}

„

Fase de Generación:

„

„

93 66 1

s

s

t

177 162 2

s

s

t

288 243 3

s

s

t

3 2 1

t

t

t

z

i

171 92 91 1 1

t

s

s

s

t

264 176 175 2 2

t

s

s

s

t

69 287 286 3 3

t

s

s

s

t

)

,

,

,

,

(

)

,

,

,

(

s

1

s

2

K

s

93

t

3

s

1

s

2

K

s

92

Actualización

)

,

,

,

,

(

)

,

,

,

(

s

94

s

95

K

s

177

t

1

s

94

s

95

K

s

176

)

,

,

,

,

(

)

,

,

,

(

s

178

s

179

K

s

288

t

2

s

178

s

179

K

s

287

Rotación

Bit calculado

(45)

The eSTREAM PROJECT:

Trivium (HW)

„

Fase de Inicialización:

„

for i

= 1 to 4 · 288

do

171 93 92 91 66 1

s

s

s

s

s

t

264 177 176 175 162 2

s

s

s

s

s

t

69 288 287 286 243 3

s

s

s

s

s

t

)

,

,

,

,

(

)

,

,

,

(

s

1

s

2

K

s

93

t

3

s

1

s

2

K

s

92

)

,

,

,

,

(

)

,

,

,

(

s

94

s

95

K

s

177

t

1

s

94

s

95

K

s

176

)

,

,

,

,

(

)

,

,

,

(

s

178

s

179

K

s

288

t

2

s

178

s

179

K

s

287

)

0

,

,

0

,

,

,

(

)

,

,

,

(

s

1

s

2

K

s

93

K

1

K

K

80

K

)

0

,

,

0

,

,

,

(

)

,

,

,

(

s

94

s

95

K

s

177

IV

1

K

IV

80

K

)

1

,

1

,

1

,

0

,

,

0

(

)

,

,

,

(

s

178

s

179

K

s

288

K

(46)

The eSTREAM PROJECT:

Sosemanuk (SW)

„

LFSR: un registro de 10 etapas

„

Contenido de cada etapa es un elemento de

palabra de 32 bits

„

„

)

2

(

32

GF

1

)

(

=

10

+

1 7

+

+

Π

X

X

X

X

α

α

t t t t

s

s

s

s

+10

+9

α

−1 +3

α

i t

s

+

(47)

Algoritmo RC4

A. Fúster Sabater INFOSEC-EMACOT Abril 2009

Inicialización:

1. S

i

= i, i=0...255

2. Rellenar el array K

i

i=0...255 repitiendo la semilla de clave secreta

3. f=0

4. Desde i = 0 hasta 255 hacer:

f = (f + S

i

+ K

i

) mod 256

Intercambiar S

i

y S

f

Generación de secuencia cifrante:

Inicializar i y f a 0, y calcular cada byte S

t

de la secuencia cifrante

mediante:

1. i = (i + 1) mod 256; f = (f + S

i

) mod 256;

2. Intercambiar S

i

y S

f

(48)

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.

Figure

Actualización...

Related subjects :