Las colisiones hash y el nuevo SHA3

 

El hash es un método que permite representar datos en informática. Es ampliamente utilizado en redes P2P, permitiendo reconocer a un archivo independientemente del sistema operativo, computadora o nombre que use, siempre y cuando éste no haya cambiado en algo.

Aunque en la realidad existirán archivos, documentos o textos que arrojen el mismohash que otro completamente diferente, su probabilidad es muy pequeña, y al ocurrir un caso así, se le denomina colisión. Se le considera un mejor algoritmo a aquel que tenga un menor índice de colisiones. Pero en el caso de aquellos algoritmos que tienen longitudes fijas, por ejemplo 512 bits, no serán suficientes para cadenas de 513 bits.

Según la paradoja del cumpleaños es necesario al menos 2^(k/2) cálculos para encontrar con una probabilidad mayor al 50% de colisiones en una función con k bits de salida.

Así, el problema no es encontrar mejores métodos de hasheo, pues existen muchos algoritmos que evolucionan con los años (al igual que herramientas que permiten desencriptarlas). Más bien el problema radicaría tanto en su comprobación como en su estandarización.

Por ejemplo, investigadores australianos redujeron la combinación de métodos para colisionar el hash SHA1 a 2^52 intentos. Haciendo con esto más evidente las posibilidades de obtener el mismo hash con diferentes datos de entrada, una vez que se considera que un algoritmo entra en el parámetro de seguro, se comienza su estandarización, y con ello viene el segundo problema.

Tomando como ejemplo que una empresa tenga todos sus archivos en un servidor y a cada uno de ellos se le obtenga un hash MD4, en el caso que quisieran utilizar el hash MD5, debería hashear de nuevo todos sus archivos; ó en el caso de una red de intercambio P2P, si se cambiara de método de hasheo entonces cuando buscáramos un archivo no tendríamos resultados.

En cuestión de firmas digitales, si es necesario cambiar el estándar pues es vital que existan las menores colisiones posibles. Para ello se utiliza el SHA1, heredero de MD5, consistente en una secuencia de 160 (2^160).

Por ello la National Institute os Standars and Technology (NIST) lanzó hace tiempo un concurso para determinar un algoritmo que será llamado SHA3, y se tiene pensado que sea el estándar en el 2012.

Como podemos darnos cuenta, el camino al cambio es largo, y en el momento que se logra ya se habrá definido un nuevo estándar, y se comienza un nuevo camino. Pero peor sería estancarse.

Nota: Utiliza # md5sum desde el bash para poder generar los hash de tus archivos desde GNU/Linux.

Parámetros:

  • -t : lee el archivo en modo texto
  • -c : muestra una lista de md5
  • -b : lee el archivo en modo binario

Links:

Author: angelinux

Desarrollador de páginas web desde el año 2000 y con experiencia en programación de sistemas para empresas desde el 2008; cofundador de CONSoluciones; autor del blog de software libre “Angelinux-slack”; docente en maestría en UPAV y fundador de la distribución Linux Falco que está en desarrollo para la Universidad Veracruzana.
Además, ponente, organizador de congreso, laborista social, impartidor de cursos de programación y servidores Linux, webmaster, y ex invitado en programa de televisión.

Deja un comentario