1 / 14

FUNCIONES HASH

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

Download Presentation

FUNCIONES HASH

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. FUNCIONES HASH Cadena de bits de longitud aleatoria… 2-n h: Σ*Σn HASH h-1: ΣnΣ* Resumen Hash Cadena de bits de longitud fija n (v gr 160) Por ejemplo, la función de paridad (n = 1): b1b2…bkЄ {0, 1}*: b1  b2  …  bk.

  2. 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) Є D2 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) Є D2 tales que h(x) = h(y).

  3. PROPIEDADES DE LAS FUNCIONES HASH

  4. 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)! · 365N)}. Si N = 23, P = 0.507; Si N = 100, P = 0.9999997.

  5. 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. 210 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? Apreciado amigo: Esta carta es un ejemplo de cómoun espía puede capturar una carta personal mía y transformarlaen 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

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

  7. 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). Sea x Є {0, 1}*, r > 1, l = longitud (x) (en binario). • PASO 1: Preparación de la cadena. • x’ = x << 0’s: para que longitud(x’) = k · r. • x’’ = 0,s >> x’: se le añaden r ceros. • l’ = l << 0’s: para que longitud(l’) = k’· (r – 1). • l’’ = l’ con un bit 1 añadido en cada posición k · r. • x’’’ = x’’• l’’, donde • es la concatenación. Tenemos x = x1x2…xt, donde xiЄ {0, 1}r, 1 ≤ i ≤ t, con xi de longitud r.

  8. 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 = x1x2…xt, donde xiЄ {0, 1}r, 1 ≤ i ≤ t, con xi de longitud r y cada Hi-1 • xi de longitud n + r = m. • PASO 2: HASH. • H0 = 0n. (tamaño n) • Hi = g(Hi-1 • xi), para 1 ≤ i ≤ t • h(x) = Ht. (tamaño n) 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.

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

  10. SHA – 1: PROCESO DE RESUMEN. Función ft(B,C,D) Ctes. kt ------------------- ---------- (B^C)v(~B^D) 5A827999 para 0 ≤ t ≤ 19 B  C  D 6ED9EBA1 para 20 ≤ t ≤ 39 (B^C)v(B^D)v(C^D) 8F1BBCDC para 40 ≤ t ≤ 59 B  C  D CA62C1D6 para 60 ≤ t ≤ 79 Valores iniciales: H0 = 67452301 H1 = EFCDAB89 H2 = 98BADCFE H3 = 10325476 H4 = C3D2E1F0 Sk(w) = (w << k) OR (w >> (32 - k)).

  11. SHA – 1: PROCESO DE RESUMEN. x = M1M2…Mn; Mi = W0W1W2…W15 Para cada Mi… Para t = 16 hasta t = 79: Wt = S1(Wt-3 Wt-8  Wt-14  Wt-16) Inicializamos: A = H0; B = H1; C =H2; D = H3; E = H4. Para t = 0 hasta t = 79: T = S5(A) + ft(B, C, D) + E + Wt + Kt; E = D ; D = C; C = S30(B); B = A ; A = T. H0 = H0 + A; H1 = H1 + B; H2 = H2 + C; H3 = H3 + D; H4 = H4 + E. SHA–1(x) = H0H1H2H3H4.

  12. BIBLIOGRAFÍA BÁSICA • “Handbook of Applied Cryptography”. • Menezes, P. van Oorschot, and S. Vanstone. • 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.

More Related