stringtranslate.com

Resistencia a la colisión

En criptografía , la resistencia a las colisiones es una propiedad de las funciones hash criptográficas : una función hash H es resistente a las colisiones si es difícil encontrar dos entradas que generen la misma salida; es decir, dos entradas a y b donde ab pero H ( a ) = H ( b ). [1] : 136  El principio de casillero significa que cualquier función hash con más entradas que salidas necesariamente tendrá tales colisiones; [1] : 136  cuanto más difíciles sean de encontrar, más segura criptográficamente será la función hash.

La " paradoja del cumpleaños " pone un límite superior a la resistencia a la colisión: si una función hash produce N bits de salida, un atacante que calcula sólo 2 N /2 (o ) operaciones hash en entradas aleatorias probablemente encontrará dos salidas coincidentes. Si existe un método más sencillo para hacer esto que el ataque de fuerza bruta , generalmente se considera una falla en la función hash. [2]

Las funciones hash criptográficas suelen estar diseñadas para ser resistentes a colisiones. Sin embargo, muchas funciones hash que alguna vez se pensaron que eran resistentes a colisiones se rompieron posteriormente. MD5 y SHA-1 en particular han publicado técnicas más eficientes que la fuerza bruta para encontrar colisiones. [3] [4] Sin embargo, algunas funciones hash tienen una prueba de que encontrar colisiones es al menos tan difícil como algún problema matemático complicado (como la factorización de enteros o el logaritmo discreto ). Esas funciones se denominan demostrablemente seguras . [2]

Definición

Una familia de funciones { h k  : {0, 1} m ( k ) → {0, 1} l ( k ) } generada por algún algoritmo G es una familia de funciones hash resistentes a colisiones, si | m ( k )| > | l ( k )| para cualquier k , es decir, h k comprime la cadena de entrada, y cada h k se puede calcular dentro del tiempo polinomial dado k , pero para cualquier algoritmo polinomial probabilístico A , tenemos

Pr [ kG (1 n ), ( x 1 , x 2 ) ← A ( k , 1 n ) st x 1x 2 pero h k ( x 1 ) = h k ( x 2 )] < negl( n ),

donde negl(·) denota alguna función insignificante y n es el parámetro de seguridad. [5]

Resistencia a colisiones débil y fuerte.

Hay dos tipos diferentes de resistencia a la colisión.

Una función hash tiene una resistencia a la colisión débil cuando, dada una función hash H y una x, no se puede encontrar ninguna otra x' tal que H(x)=H(x'). En palabras, cuando se da una x, no es posible encontrar otra x' tal que esa función hash cree una colisión.

Una función hash tiene una fuerte resistencia a la colisión cuando, dada una función hash H, no se pueden encontrar x y x' arbitrarios donde H(x)=H(x'). En palabras, no se pueden encontrar dos x donde la función hash crearía una colisión.

Razón fundamental

La resistencia a las colisiones es deseable por varias razones.

Ver también

Referencias

  1. ^ ab Goldwasser, S. y Bellare, M. "Notas de conferencias sobre criptografía" Archivado el 21 de abril de 2012 en Wayback Machine . Curso de verano sobre criptografía, MIT, 1996-2001
  2. ^ ab Pass, R. "Conferencia 21: Funciones hash resistentes a colisiones y esquema general de firma digital". Curso de Criptografía, Universidad de Cornell, 2009
  3. ^ Xiaoyun Wang; Hongbo Yu. "Cómo descifrar MD5 y otras funciones hash" (PDF) . Archivado desde el original (PDF) el 21 de mayo de 2009 . Consultado el 21 de diciembre de 2009 .
  4. ^ Xiaoyun Wang; Yiqun Lisa Yin ; Hongobo Yu. Encontrar colisiones en el SHA-1 completo (PDF) . CRIPTO 2005. doi :10.1007/11535218_2.
  5. ^ Dodis, Yevgeniy. «Lección 12 de Introducción a la Criptografía» (PDF) . Consultado el 3 de enero de 2016 ., definitivamente 1.