La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

FUNCIONES HASH. ConfidencialidadAutenticación IntegridadNo repudio Logros de la Criptografía.

Presentaciones similares


Presentación del tema: "FUNCIONES HASH. ConfidencialidadAutenticación IntegridadNo repudio Logros de la Criptografía."— Transcripción de la presentación:

1 FUNCIONES HASH

2 ConfidencialidadAutenticación IntegridadNo repudio Logros de la Criptografía

3 FUNCIONES HASH …011000100111010110… Cadena de bits de longitud aleatoria… 0110110…1011101 Cadena de bits de longitud fija n (v gr 160) HASH Resumen Hash 2 -n h: Σ *  Σ n Por ejemplo, la función de paridad (n = 1): b 1 b 2 …b k Є {0, 1} * : b 1  b 2  …  b k. h -1 : Σ n  Σ *

4 ALGUNOS CONCEPTOS PREVIOS Función de COMPRESIÓN: h: Σ m  Σ n, con n < m. En general hablaremos de h: D  Σ n. Función de UNA VÍA: Dado s Є Σ n, es difícil hallar x Є D tal que h(x) = s. COLISIÓN: Existen (x, y) Є D 2 tales que h(x) = h(y). Función RESISTENTE A COLISIONES: Dado h(x), es difícil hallar x’ Є D tal que h(x’) = h(x). Función FUERTEMENTE RESISTENTE A COLISIONES: Es difícil hallar (x, y) Є D 2 tales que h(x) = h(y).

5 PROPIEDADES DE LAS FUNCIONES HASH Funciones de una vía.Fácil de computar para todo x Є D.Resistente a colisiones.Fuertemente resistente a colisiones.

6 PARADOJA DEL CUMPLEAÑOS PREGUNTA: ¿Cuál es la probabilidad de que en una reunión de amigos (N amigos), alguno celebre el cumpleaños el mismo día que yo? RESPUESTA: P = (N – 1) / 365. (yo no cuento…) PREGUNTA: ¿Cuál es la probabilidad de que en una reunión de amigos (N amigos), dos de ellos celebren el cumpleaños el mismo día? RESPUESTA: P = 1 – {365! / ((365 – N)! · 365 N )}. Si N = 23, P = 0.507; Si N = 100, P = 0.9999997. RESPUESTA: P = 1 – {365! / ((365 – N)! · 365 N )}. Si N = 23, P = 0.507; Si N = 100, P = 0.9999997.

7 ATAQUE DEL CUMPLEAÑOS Estimado amigo: Esta carta es un ejemplo de cómo un atacante puede capturar una carta personal mía y transformarla en otra similar con un hash igual a un mensaje fraudulento. El ataque es válido para funciones hash que tengan una longitud de hash reducido: por ejemplo, 20. Bastaría que mi atacante tomara 2 elevado a 10 posibilidades distintas de carta personal y otras tantas de la fraudulenta y ya estaría hecho. Atentamente, Pedro. Estimado amigo: Esta carta es un ejemplo de cómo un atacante puede capturar una carta personal mía y transformarla en otra similar con un hash igual a un mensaje fraudulento. El ataque es válido para funciones hash que tengan una longitud de hash reducido: por ejemplo, 20. Bastaría que mi atacante tomara 2 elevado a 10 posibilidades distintas de carta personal y otras tantas de la fraudulenta y ya estaría hecho. Atentamente, Pedro. Apreciado amigo: Esta carta es un ejemplo de cómo un espía puede capturar una carta personal mía y transformarla en otra parecida con un Hash igual a un mensaje fraudulento. El ataque es válido para funciones Hash que tengan una longitud de hash pequeño: por ejemplo, 20. Bastaría que el atacante tomara 2elevado a 10 posibilidades diferentes de carta personal y otras tantas de la fraudulenta y ya estaría terminado. Afectuosamente, Pedro. Apreciado amigo: Esta carta es un ejemplo de cómo un espía puede capturar una carta personal mía y transformarla en otra parecida con un Hash igual a un mensaje fraudulento. El ataque es válido para funciones Hash que tengan una longitud de hash pequeño: por ejemplo, 20. Bastaría que el atacante tomara 2elevado a 10 posibilidades diferentes de carta personal y otras tantas de la fraudulenta y ya estaría terminado. Afectuosamente, Pedro. Bastaría n ≥ 128; se toma n ≥ 160 2 10 cartas distintas, para las que calculo sus correspondientes hash. La misma operación se realiza con la carta fraudulenta. Tendremos 1024 cartas “originales” y 1024 fraudulentas. Paradoja del cumpleaños… ¿Habrá dos, una de cada colección, con el mismo hash?

8 VARIAS PROPIEDADES ¿Existen funciones hash resistentes a colisiones? ¿Hash resistente a Colisiones a partir de un Criptosistema seguro?... No sabemos demostrarlo. e k : {0, 1} n  {0, 1} n, con k Є {0, 1} n. h: {0, 1} n x {0, 1} n  {0, 1} n n ≥ 128 (DES excluido). h(k, x) = e k (x)  x. h(k, x) = e k (x)  x  k. h(k, x) = e k (x  k)  x. h(k, x) = e k (x  k)  x  k. e k : {0, 1} n  {0, 1} n, con k Є {0, 1} n. h: {0, 1} n x {0, 1} n  {0, 1} n n ≥ 128 (DES excluido). h(k, x) = e k (x)  x. h(k, x) = e k (x)  x  k. h(k, x) = e k (x  k)  x. h(k, x) = e k (x  k)  x  k. Función de compresión a partir de una función de cifrado

9 Construir HASH (h : {0, 1} *  {0, 1} n ) a partir de f. de COMPRESIÓN (g: {0, 1} m  {0, 1} n, r = m – n > 0). PASO 1: Preparación de la cadena. 1.x’ = x << 0’s: para que longitud(x’) = k · r. 2.x’’ = 0,s >> x’: se le añaden r ceros. 3.l’ = l << 0’s: para que longitud(l’) = k’· (r – 1). 4.l’’ = l’ con un bit 1 añadido en cada posición k · r. 5.x’’’ = x’’ l’’, donde es la concatenación. PASO 1: Preparación de la cadena. 1.x’ = x << 0’s: para que longitud(x’) = k · r. 2.x’’ = 0,s >> x’: se le añaden r ceros. 3.l’ = l << 0’s: para que longitud(l’) = k’· (r – 1). 4.l’’ = l’ con un bit 1 añadido en cada posición k · r. 5.x’’’ = x’’ l’’, donde es la concatenación. Sea x Є {0, 1} *, r > 1, l = longitud (x) (en binario). Tenemos x = x 1 x 2 …x t, donde x i Є {0, 1} r, 1 ≤ i ≤ t, con x i de longitud r.

10 PASO 2: HASH. 1.H 0 = 0 n. (tamaño n) 2.H i = g(H i-1 x i ), para 1 ≤ i ≤ t 3.h(x) = H t. (tamaño n) PASO 2: HASH. 1.H 0 = 0 n. (tamaño n) 2.H i = g(H i-1 x i ), para 1 ≤ i ≤ t 3.h(x) = H t. (tamaño n) Construir HASH (h : {0, 1} *  {0, 1} n ) a partir de f. de COMPRESIÓN (g: {0, 1} m  {0, 1} n, r = m – n > 0). Tenemos x = x 1 x 2 …x t, donde x i Є {0, 1} r, 1 ≤ i ≤ t, con x i de longitud r y cada H i-1 x i de longitud n + r = m. v.gr.: x = 111011; r = 4. x’’’ = 0011 1011 0000 1110. A esa cadena se le puede aplicar un algoritmo de compresión creado a partir del DES reducido. v.gr.: x = 111011; r = 4. x’’’ = 0011 1011 0000 1110. A esa cadena se le puede aplicar un algoritmo de compresión creado a partir del DES reducido.

11 SHA – 1: PREPARACIÓN DE LA ENTRADA. Entrada x < 2 64 de longitud l(x) x ← x · 1 Mientras |x| < k·512–64: x ←x · 0 x ← x · l(x) (expresado en 64 bits) SHA – 1 SHA–1 (x), de longitud 160 x = 1234; l(x) = 10 x ← 1234 1 x ← 1234 8000 0000 … 0000 x ← 1234 8000…0010 SHA – 1 SHA-1(x): Pendiente

12 SHA – 1: PROCESO DE RESUMEN. Función f t (B,C,D)Ctes. k t ------------------- ---------- (B^C)v(~B^D)5A827999para 0 ≤ t ≤ 19 B  C  D6ED9EBA1para 20 ≤ t ≤ 39 (B^C)v(B^D)v(C^D)8F1BBCDCpara 40 ≤ t ≤ 59 B  C  DCA62C1D6para 60 ≤ t ≤ 79 Valores iniciales: H0 = 67452301 H1 = EFCDAB89 H2 = 98BADCFE H3 = 10325476 H4 = C3D2E1F0 S k (w) = (w > (32 - k)).

13 SHA – 1: PROCESO DE RESUMEN. x = M 1 M 2 …M n ;M i = W 0 W 1 W 2 …W 15 Para t = 16 hasta t = 79: W t = S 1 (W t-3  W t-8  W t-14  W t-16 ) Inicializamos: A = H 0 ; B = H 1 ; C =H 2 ; D = H 3 ; E = H 4. Para t = 0 hasta t = 79: T = S 5 (A) + f t (B, C, D) + E + W t + K t ; E = D ; D = C; C = S 30 (B); B = A ; A = T. Para t = 0 hasta t = 79: T = S 5 (A) + f t (B, C, D) + E + W t + K t ; E = D ; D = C; C = S 30 (B); B = A ; A = T. H 0 = H 0 + A; H 1 = H 1 + B; H 2 = H 2 + C; H 3 = H 3 + D; H 4 = H 4 + E. SHA–1(x) = H 0 H 1 H 2 H 3 H 4. Para cada M i…

14 “Handbook of Applied Cryptography”. A.Menezes, P. van Oorschot, and S. Vanstone. B.CRC Press, Inc. 1997. “Cryptography and Network Security. Principles and practices”. William Stallings. Prentice Hall. Pearson Education. Third edition. 2003. “Introduction to Cryptography”. Johannes A. Buchmann. Springer Verlag, 2004. Second Edition. BIBLIOGRAFÍA BÁSICA


Descargar ppt "FUNCIONES HASH. ConfidencialidadAutenticación IntegridadNo repudio Logros de la Criptografía."

Presentaciones similares


Anuncios Google