Diferencia entre revisiones de «Secure Hash Algorithm»

Contenido eliminado Contenido añadido
Página reemplazada por «sH-A».
J.delanoy (discusión · contribs.)
m Revertidos los cambios de 200.62.147.45 a la última edición de Aloriel
Línea 1:
La familia '''SHA''' (''Secure Hash Algorithm'', Algoritmo de ''Hash'' Seguro) es un sistema de [[función hash|funciones ''hash'']] criptográficas relacionadas de la [[Agencia de Seguridad Nacional de los Estados Unidos]] y publicadas por el ''National Institute of Standards and Technology'' (NIST). El primer miembro de la familia fue publicado en [[1993]] es oficialmente llamado '''SHA'''. Sin embargo, hoy día, no oficialmente se le llama '''SHA-0''' para evitar confusiones con sus sucesores. Dos años más tarde el primer sucesor de SHA fue publicado con el nombre de '''SHA-1'''. Existen cuatro variantes más que se han publicado desde entonces cuyas diferencias se basan en un diseño algo modificado y rangos de salida incrementados: '''SHA-224''', '''SHA-256''', '''SHA-384''', y '''SHA-512''' (llamándose '''SHA-2''' a todos ellos).
sH-A
 
En [[1998]], un ataque a SHA-0 fue encontrado pero no fue reconocido para SHA-1, se desconoce si fue la NSA quien lo descubrió pero aumentó la seguridad del SHA-1.
 
== SHA-1 ==
'''SHA-1''' ha sido examinado muy de cerca por la comunidad criptográfica pública, y no se ha encontrado ningún ataque efectivo. No obstante, en el año [[2004]], un número de ataques significativos fueron divulgados sobre funciones criptográficas de ''hash'' con una estructura similar a SHA-1; lo que ha planteado dudas sobre la seguridad a largo plazo de SHA-1.
 
SHA-0 y SHA-1 producen una salida resumen de 160 bits de un mensaje que puede tener un tamaño máximo de 2<sup>64</sup> bits, y se basa en principios similares a los usados por el profesor [[Ronald L. Rivest]] del [[MIT]] en el diseño de los algoritmos de resumen de mensaje [[MD4]] y [[MD5]].
 
La codificación ''hash'' vacía para SHA-1 corresponde a:
 
SHA1("") = da39a3ee5e6b4b0d3255bfef95601890afd80709
 
== Ataques contra SHA-1 ==
 
La resistencia del [[algoritmo]] SHA-1 se ha visto comprometida a lo largo del año [[2005]]. Después de que MD5, entre otros, quedara seriamente comprometido en el 2004 por parte de un equipo de investigadores chinos, el tiempo de vida de SHA-1 quedó visto para sentencia.
 
El mismo equipo de investigadores chinos, compuesto por Xiaoyun Wang, Yiqun Lisa Yin y Hongbo Yu (principalmente de la ''Shandong University'' en [[China]]), ha demostrado que son capaces de romper el SHA-1 en al menos 2<sup>69</sup> operaciones, unas 2000 veces más rápido que un ataque de fuerza bruta (que requeriría 2<sup>80</sup> operaciones). Los últimos ataques contra SHA-1 han logrado debilitarlo hasta 2<sup>63</sup>.
 
Según el [[NIST]]:
 
«Este ataque es de particular importancia para las aplicaciones que usan firmas digitales tales como marcas de tiempo y notarías. Sin embargo, muchas aplicaciones que usan firmas digitales incluyen información sobre el contexto que hacen este ataque difícil de llevar a cabo en la práctica.»
 
A pesar de que 2<sup>63</sup> suponen aún un número alto de operaciones, se encuentra dentro de los límites de las capacidades actuales de cálculos, y es previsible que con el paso del tiempo romper esta función sea trivial, al aumentar las capacidades de cálculo y al ser más serios los ataques contra SHA-1.
 
La importancia de la rotura de una función ''hash'' se debe interpretar en el siguiente sentido: Un ''hash'' permite crear una huella digital, teóricamente única, de un archivo. Una colisión entre ''hashes'' supondría la posibilidad de la existencia de dos documentos con la misma huella. La inicial similitud propuesta con la equivalencia a que hubiese personas que compartiesen las mismas [[huella digital|huellas digitales]], o peor aún, el mismo [[ADN]] no es adecuada pues, aunque fuera trivial encontrar dos ficheros con el mismo resumen criptográfico ello no implicaría que los ficheros fueran congruentes en el contexto adecuado. Siguiendo con la hipótesis de la similitud biométrica de dos personas, sería el equivalente a necesitar modificar el número de brazos en una persona para que su impresión dactilar fuera igual a la de otra.
 
A pesar de que el NIST contempla funciones de SHA de mayor tamaño (por ejemplo, el SHA-512, de 512 bits de longitud), expertos de la talla de [[Bruce Schneier]] abogan por, sin llamar a alarmismos, buscar una nueva función hash estandarizada que permita sustituir a SHA-1. Los nombres que se mencionan al respecto son [[Tiger]], de los creadores de [[Serpent]], y [[WHIRLPOOL]], de los creadores de [[AES]].
 
== Véase también ==
*[[MD2]]
*[[MD4]]
*[[MD5]]
*[[Tiger]]
*[[WHIRLPOOL]]
*[[RIPEMD-160]]
*[[Códigos cíclicos]]
 
== Enlaces externos ==
*[http://www.ietf.org/rfc/rfc3174.txt RFC del SHA-1]
*[http://webs.ono.com/usr005/jsuarez/sha1.html Descripción de la evolución de ataques contra SHA-1]
*[http://www.schneier.com/blog/archives/2005/02/sha1_broken.html SHA-1 roto, por Bruce Schneier] (en inglés)
*[http://www.schneier.com/blog/archives/2005/08/new_cryptanalyt.html SHA-1 reducido a 2<sup>63</sup> cálculos, por Bruce Schneier] (en inglés)
*[http://en.epochtimes.com/news/7-1-11/50336.html SHA-1 roto, por Wang Xiaoyun con un computador común] (en inglés)
*[http://passcrack.spb.ru passcrack.spb.ru] tablas Rainbow para SHA1
*[http://www.hash.spugesoft.com Calculadora simple de ''hash'']
*[http://www.md5summer.org Sumador MD5] para [[Windows]], genera y controla SHA1 y [[MD5]]
* [http://adeshoras.wordpress.com/2008/06/23/generando-un-hash-sha1-con-aspnet-y-c-de-forma-sencilla-y-simple/ Generando un ''hash'' sha1 con ASP.NET y C# de forma sencilla y simple]
* [http://www.hashgenerator.de hashgenerator.de] – genera SHA1, SHA256, SHA38 y SHA512
 
[[Categoría:Funciones Hash Criptográficas]]
[[Categoría:Siglas de informática]]
 
[[bg:SHA]]
[[cs:Secure Hash Algorithm]]
[[da:SHA]]
[[de:Secure Hash Algorithm]]
[[en:SHA hash functions]]
[[fi:SHA]]
[[fr:SHA-1]]
[[he:SHA]]
[[hr:SHA-1]]
[[it:Secure Hash Algorithm]]
[[ja:SHA]]
[[ko:SHA]]
[[lt:SHA]]
[[nl:SHA-familie]]
[[pl:SHA-1]]
[[pt:SHA1]]
[[ru:SHA-1]]
[[simple:SHA hash functions]]
[[sk:Secure Hash Algorithm]]
[[sr:SHA]]
[[vi:SHA]]
[[zh:SHA 家族]]