clase 7: seguridad cpa, prfs y cifradores de bloquefernando/classes/iic3253-2018-01/07_prfs.… ·...

33
Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell [email protected] Pontificia Universidad Cat´olica de Chile & Dreamlab Technologies March 26, 2018 Fernando Krell (Pontificia Universidad Cat´ olica de Chile & Dreamlab Technologies) Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 1 / 27

Upload: others

Post on 03-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Clase 7: Seguridad CPA, PRFs y cifradores de Bloque

Fernando [email protected]

Pontificia Universidad Catolica de Chile & Dreamlab Technologies

March 26, 2018

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 1 / 27

Page 2: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Generadores Pseudo-aleatorios (PRGs)

Definition (PRGs)

G : {0, 1}λ → {0, 1}n es un generador pseudo-aleatorio si:

Extiende el input: n > λ en donde n = p(λ) para algun polinomiop(·).

Pseudo-aleatoriedad: ∀ algoritmo probabilista de tiempo polinomial(PPT) D, ∃ funcion negligible negl tal que

| PrK∼Uλ,Z←G(K)

[D(Z ) = 1]− PrZ∼Un

[D(Z ) = 1]| = negl(λ)

Notacion:

∀ PPT D, |Pr[D(G (Uλ)) = 1]− Pr[D(Un) = 1]| = negl(λ)

o mas simple:

G (Uλ)c≡ Un (son computacionalmente indistinguibles)

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 2 / 27

Page 3: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Distinguidor de PRG

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 3 / 27

Page 4: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Esquemas Indistinguibles

Sea Π = 〈Gen(·),Enc(·, ·),Dec(·, ·)〉 un esquema de cifrados.

Seguro si ningun A no gana con probabilidad 1/2 + 1/poli(λ).

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 4 / 27

Page 5: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Cifradores de Flujo

Init(s, IV ): Dada una semilla s y vector de inicializacion IV , retornaestado inicial st0.

NextBit(sti ): Output bit σ y nuevo estado sti+1 (como en laconstrucion anterior)

⇒ Podemos cifrar varios mensajes de largo variable:

Para cada nuevo bit a cifrar, llamanos a NextBit y utilizamos OTP.

Cifradores de Flujo (Stream Ciphers)

Inicializacion: st0 ← Init(s, IV )

GetBits(`):For i = 1 to `

σi , stj+1 ← NextBit(stj)

Output σ = σ1σ2 . . . σ1`

(Para cifrar m ∈ {0, 1}`, computamos c = m ⊕ σ).

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 5 / 27

Page 6: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Modos de Operacion para cifradores de flujo

Modo sincronizado

Alice y Bob sincronizan estado del cifrador sti

Inicializacion: st0 ← Init(k , 0λ) (no necesitamos IV)

Encst(m): k ′, st ′ ← Getbits(st, |m|), output c = k ′ ⊕m, guardamosnuevo estado st ′ para proximo mensaje a cifrar.

Decst(c): k ′, st ′ ← Getbits(st, |c |), output m = k ′ ⊕ c , guardamosnuevo estado st ′ para proximo mensaje a decifrar.

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 6 / 27

Page 7: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Modo Asıncrono

Modo Asıncrono

Alice y Bob no mantienen estado.

Inicializacion nueva para cada mensaje.

Enck(m):1 IV ∼ Uλ

2 st ← Init(k , IV )3 k ′ ← GetBits(st, |m|)4 Output c = 〈k ′ ⊕m, IV 〉

Deck(c = 〈c0, IV 〉):1 st ← Init(k , IV )2 k ′ ← GetBits(st, |m|)3 Output m = k ′ ⊕ c0

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 7 / 27

Page 8: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Seguridad CPA

Seguridad bajo ataque de textos planos escogidos:

Captura seguridad en el caso de cifrar varios mensajes.Captura situaciones en donde el adversario puede influir en losmensajes a enviar.

Adversario tiene acceso a oraculo de encriptacion.

PrivK(ind−cpa)A,Π :

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 8 / 27

Page 9: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Definicion Seguridad CPA

Sea Π = 〈Gen(·),Enc(·, ·),Dec(·, ·)〉 un esquema de cifrados.

Experimento PrivK ind-cpaA,Π (λ):

1 k ← Gen(1λ)

2 m0,m1 ← A(1λ)Enck (·)

3 b$← {0, 1}, c ← Enck(mb)

4 b′ ← A(c)Enck (·)

5 If b = b′, output 1. Else, output 0.

Definition

Π = 〈Gen(·),Enc(·, ·),Dec(·, ·)〉 es CPA-seguro si ∀ PPT A, ∃ funcionnegligible µ(·) tal que:

Pr[PrivK ind-cpaA,Π (λ) = 1] ≤ 1/2 + µ(λ)

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 9 / 27

Page 10: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Nueva Herramienta: Funciones Pseudo-aleatorias

Idea: Generar un nuevo “pad” para cada mensaje con la misma llave.

Facil!: utilizamos una funcion aleatoria! ¿mmmm?

¿Que es una funcion aleatoria?

Para cada nuevo x , output f (x) esta uniformemente distribuido.x f(x)

00...0 01011. . . . . .

11...1 01011

Def. alternativa: Elegimos f uniformemente entre todas las funcionesde m a n bits Fn

m.

¿Como obtenemos una funcion aleatoria? No es tan facil.

Necesitamos funciones pseudo-aleatorias:

Faciles de obtener: obtenemos una llave k ∼ Uλ

Se comportan como si fueran aleatorias si no sabemos k.Fk(x) “parece uniforme”.

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 10 / 27

Page 11: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Nueva Herramienta: Funciones Pseudo-aleatorias

Idea: Generar un nuevo “pad” para cada mensaje con la misma llave.

Facil!: utilizamos una funcion aleatoria! ¿mmmm?

¿Que es una funcion aleatoria?

Para cada nuevo x , output f (x) esta uniformemente distribuido.x f(x)

00...0 01011. . . . . .

11...1 01011

Def. alternativa: Elegimos f uniformemente entre todas las funcionesde m a n bits Fn

m.

¿Como obtenemos una funcion aleatoria? No es tan facil.

Necesitamos funciones pseudo-aleatorias:

Faciles de obtener: obtenemos una llave k ∼ Uλ

Se comportan como si fueran aleatorias si no sabemos k.Fk(x) “parece uniforme”.

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 10 / 27

Page 12: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Nueva Herramienta: Funciones Pseudo-aleatorias

Idea: Generar un nuevo “pad” para cada mensaje con la misma llave.

Facil!: utilizamos una funcion aleatoria! ¿mmmm?

¿Que es una funcion aleatoria?

Para cada nuevo x , output f (x) esta uniformemente distribuido.x f(x)

00...0 01011. . . . . .

11...1 01011

Def. alternativa: Elegimos f uniformemente entre todas las funcionesde m a n bits Fn

m.

¿Como obtenemos una funcion aleatoria? No es tan facil.

Necesitamos funciones pseudo-aleatorias:

Faciles de obtener: obtenemos una llave k ∼ Uλ

Se comportan como si fueran aleatorias si no sabemos k.Fk(x) “parece uniforme”.

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 10 / 27

Page 13: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Funciones Pseudo-aleatorias (PRF)

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 11 / 27

Page 14: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Definicion Funciones Pseudo-aleatorias (PRF)

Definition (PRFs)

F : {0, 1}λ × {0, 1}n → {0, 1}m es pseudo-aleatoria si:

Dado k y x , Fk(x) es eficientemente computable ∀x ∈ {0, 1}n

Existe funcion negligible µ(·) tal que ∀ PPT D

| Prk∼Uλ

[DFk (·)(1λ)] = 1− Prf∼Fm

n

[Df (1λ) = 1]| = µ(λ)

En donde Fmn denota distribucion uniforme en el conjunto de todas las

funciones de {0, 1}n a {0, 1}m.

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 12 / 27

Page 15: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Ejemplo 1

F : {0, 1}λ × {0, 1}λ → {0, 1}λ, Fk(x) := k ⊕ x no es PRF.

Distinguidor DH(·)Ejercicio:

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 13 / 27

Page 16: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Ejemplo 2

Sea G : {0, 1}2λ → {0, 1}n una PRG.F : {0, 1}λ × {0, 1}λ → {0, 1}n, Fk(x) := G (k ||x).¿Es PRF? Ejercicio:

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 14 / 27

Page 17: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Construccion de PRFs

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 15 / 27

Page 18: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Cifrador CPA-seguro

Sea F : {0, 1}λ × {0, 1}λ → {0, 1}n una PRF.

Π = 〈Gen,Enc,Dec〉:Gen(1λ) : output k ∼ UλEnck(m) :

1 r ∼ Uλ

2 k ′ ← Fk(r)3 Output c = 〈k ′ ⊕m, r〉

Deck(c = 〈c0, c1〉) :1 k ′ ← Fk(c1)2 Output m = k ′ ⊕ c0

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 16 / 27

Page 19: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Demostracion de Seguridad (Reduccion)

Theorem

Si F es PRF, entonces esquema anterior es CPA-seguro.

Idea: Fk(r) es (pseudo)-aleatorio mientras r no se repita

Reduccion DH(1λ)

Oraculo de encriptacion O(m): r ∼ Uλ, return 〈Fk(r)⊕m, r〉1 m0,m1 ← AO(·)(1λ)

2 b$← {0, 1}

3 r∗ ∼ Uλ, c = 〈Fk(r∗)⊕mb, r∗〉

4 b′ ← AO(·)(c)

5 if b = b′, output 1, else output 0.

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 17 / 27

Page 20: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Analisis de la reduccion

Analisis:

Si H = Fk , entones reduccion simula PrivK textind−cpaA,Π (λ).

Pr[DFk (·)(1λ) = 1] = Pr[PrivK textind−cpaA,Π (λ) = 1]

Si H = f ∼ F , entonces A no puede ganar al menos que r∗ repita enalguna llamada a O(). Pero esto ocurre con pbb negligible,

Pr[D f (·)(1λ) = 1] = Pr[b = b′|r∗ se repite ] · Pr[r∗ se repite ]+

Pr[b = b′|r∗ no se repite ] · Pr[r∗ no se repite ]

≤ 1 · Pr[r∗ se repite ] + 1/2 · Pr[r∗ no se repite ]

= 1/2 + Pr[r∗ se repite ]/2

≤ 1/2 + p(λ)/2λ+1

= 1/2 + negl(λ)

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 18 / 27

Page 21: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Analisis de la reduccion

Analisis:

Si H = Fk , entones reduccion simula PrivK textind−cpaA,Π (λ).

Pr[DFk (·)(1λ) = 1] = Pr[PrivK textind−cpaA,Π (λ) = 1]

Si H = f ∼ F , entonces A no puede ganar al menos que r∗ repita enalguna llamada a O(). Pero esto ocurre con pbb negligible,

Pr[D f (·)(1λ) = 1] = Pr[b = b′|r∗ se repite ] · Pr[r∗ se repite ]+

Pr[b = b′|r∗ no se repite ] · Pr[r∗ no se repite ]

≤ 1 · Pr[r∗ se repite ] + 1/2 · Pr[r∗ no se repite ]

= 1/2 + Pr[r∗ se repite ]/2

≤ 1/2 + p(λ)/2λ+1

= 1/2 + negl(λ)

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 18 / 27

Page 22: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Analisis de la reduccion

Analisis:

Si H = Fk , entones reduccion simula PrivK textind−cpaA,Π (λ).

Pr[DFk (·)(1λ) = 1] = Pr[PrivK textind−cpaA,Π (λ) = 1]

Si H = f ∼ F , entonces A no puede ganar al menos que r∗ repita enalguna llamada a O(). Pero esto ocurre con pbb negligible,

Pr[D f (·)(1λ) = 1] = Pr[b = b′|r∗ se repite ] · Pr[r∗ se repite ]+

Pr[b = b′|r∗ no se repite ] · Pr[r∗ no se repite ]

≤ 1 · Pr[r∗ se repite ] + 1/2 · Pr[r∗ no se repite ]

= 1/2 + Pr[r∗ se repite ]/2

≤ 1/2 + p(λ)/2λ+1

= 1/2 + negl(λ)

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 18 / 27

Page 23: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Analisis de la reduccion

Analisis:

Si H = Fk , entones reduccion simula PrivK textind−cpaA,Π (λ).

Pr[DFk (·)(1λ) = 1] = Pr[PrivK textind−cpaA,Π (λ) = 1]

Si H = f ∼ F , entonces A no puede ganar al menos que r∗ repita enalguna llamada a O(). Pero esto ocurre con pbb negligible,

Pr[D f (·)(1λ) = 1] = Pr[b = b′|r∗ se repite ] · Pr[r∗ se repite ]+

Pr[b = b′|r∗ no se repite ] · Pr[r∗ no se repite ]

≤ 1 · Pr[r∗ se repite ] + 1/2 · Pr[r∗ no se repite ]

= 1/2 + Pr[r∗ se repite ]/2

≤ 1/2 + p(λ)/2λ+1

= 1/2 + negl(λ)

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 18 / 27

Page 24: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Modos de Operacion para cifradores de bloque

PRF permiten cifrar un bloque de n bits.

En la practica n ≈ λ.

Se llaman cifradores de bloque.

¿Como podemos cifrar multiples bloques con la misma llave?

Facil: Ocupamos cifrador anterior por cada bloque. ¿Cual es elproblema?

Se duplica el largo!

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 19 / 27

Page 25: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Modos de Operacion para cifradores de bloque

PRF permiten cifrar un bloque de n bits.

En la practica n ≈ λ.

Se llaman cifradores de bloque.

¿Como podemos cifrar multiples bloques con la misma llave?

Facil: Ocupamos cifrador anterior por cada bloque. ¿Cual es elproblema? Se duplica el largo!

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 19 / 27

Page 26: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Modo ECB (Electronic Code Book)

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 20 / 27

Page 27: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Ejemplo ECB

Modo inseguro

No es aleatorizado

F requiere ser invertible (permutacion)

Enc y Dec son paralelizables.

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 21 / 27

Page 28: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Modo CBC (Cipher Block Chaining)

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 22 / 27

Page 29: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Modo CBC

CPA Seguro

F es permutacion.

IV necesita ser aleatorio.

Enc No es paralelizable

Enc(m): IV = c0 ∼ Un, ci = F (m1 ⊕ ci−1), ∀i ∈ {1..`}Dec(c): mi = F−1

k (ci )⊕ ci−1, ∀i ∈ {1..`}

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 23 / 27

Page 30: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Modo OFB (Output Feedback)

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 24 / 27

Page 31: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Modo OFB

CPA Seguro

F no necesita ser permutacion.

IV necesita ser nuevo.

Funciona como stream cipher.

Stream puede ser pre-computado

Enc(m): IV = c0 ∼ Un, ci = mi ⊕ F(i)k (IV ), ∀i ∈ {1..`}

Dec(c): mi = F(i)k (c0)⊕ ci , ∀i ∈ {1..`}

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 25 / 27

Page 32: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Modo CTR (Counter)

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 26 / 27

Page 33: Clase 7: Seguridad CPA, PRFs y cifradores de Bloquefernando/classes/IIC3253-2018-01/07_PRFs.… · Clase 7: Seguridad CPA, PRFs y cifradores de Bloque Fernando Krell fekrell@uc.cl

Modo OFB

CPA Seguro

F no necesita ser permutacion.

CTR necesita ser nuevo.

Funciona como stream cipher.

Stream puede ser pre-computado.

Paralelizable

Enc(m): ctr = c0 ∼ Un, ci = mi ⊕ Fk(ctr + i), ∀i ∈ {1..`}Dec(c): mi = Fk(crt + i)⊕ ci , ∀i ∈ {1..`}

Fernando Krell (Pontificia Universidad Catolica de Chile & Dreamlab Technologies)Clase 7: Seguridad CPA, PRFs y cifradores de Bloque March 26, 2018 27 / 27