SHA-1

UU.[1]​ Aunque el algoritmo ha sido roto criptográficamente,[2]​[3]​[4]​[5]​[6]​[7]​[8]​ sigue siendo ampliamente utilizado.

Desde 2005, SHA-1 no se considera seguro frente a adversarios con mayores recursos,[9]​ y en 2010, muchas organizaciones recomendaron su sustitución.

[8]​[10]​[11]​ El Instituto Nacional de Estándares y Tecnología (NIST) desaconsejó formalmente el uso de SHA-1 en 2011 y prohibió su uso para firmas digitales en 2013, declarando que debería eliminarse completamente para 2030.

[4]​[6]​ Por lo tanto, se recomienda eliminar SHA-1 de los productos lo antes posible y, en su lugar, utilizar SHA-2 o SHA-3.

En 2017, los principales navegadores web dejaron de aceptar certificados SSL basados en SHA-1.

Según la NSA, esto se hizo para corregir una falla en el algoritmo original que reducía su seguridad criptográfica, pero no proporcionaron más explicaciones.

SHA-1 y SHA-2 son los algoritmos hash requeridos por ley para su uso en ciertas aplicaciones del gobierno de EE.

UU., incluidos otros algoritmos y protocolos criptográficos, para la protección de información sensible no clasificada.

Las funciones hash SHA se han utilizado como base para los cifrados por bloque SHACAL.

Puedes tener personas que intentan ser maliciosas, pero tendrán éxito.

[26]​ Los ataques conocidos (hasta 2020) tampoco rompen la resistencia al segundo preimagen.

Construir una contraseña que funcione para una cuenta dada requiere un ataque de preimagen, así como acceso al hash de la contraseña original, que puede o no ser trivial.

Una mejora simple para prevenir estos ataques es hacer hash dos veces: SHAd(mensaje) = SHA(SHA(0b || message)) (la longitud de 0b, bloque cero, es igual al tamaño del bloque de la función hash).

En CRYPTO 98, dos investigadores franceses, Florent Chabaud y Antoine Joux, presentaron un ataque a SHA-0: se pueden encontrar colisiones con una complejidad de 261, menos que los 2^80 para una función hash ideal del mismo tamaño.

Esto se logró utilizando una generalización del ataque de Chabaud y Joux.

[3]​[35]​ Otro ataque en 2008 aplicando el ataque de boomerang redujo la complejidad de encontrar colisiones a 233.6, lo que se estimó que tomaría 1 hora en una PC promedio del año 2008.

Romper SHA-1 no sería posible sin estas poderosas técnicas analíticas".

[39]​ Los autores han presentado una colisión para SHA-1 de 58 rondas, encontrada con 233 operaciones hash.

El artículo con la descripción completa del ataque se publicó en agosto de 2005 en la conferencia CRYPTO.

[41]​ Christophe De Cannière y Christian Rechberger mejoraron aún más el ataque a SHA-1 en Finding SHA-1 Characteristics: General Results and Applications, recibiendo el Best Paper Award en ASIACRYPT 2006.

Dado que este ataque requiere el equivalente a aproximadamente 235 evaluaciones, se considera un quiebre teórico significativo.

[42]​ Su ataque se extendió aún más a 73 rondas (de 80) en 2010 por Grechnikov.

Los autores denominaron a este avance en la criptoanálisis de SHA-1 The SHAppening.

Por lo tanto, los autores recomendaron que SHA-1 fuera depreciado lo más pronto posible.

Esto es aproximadamente 1,000 millones de veces más rápido (y ahora utilizable para muchos ataques dirigidos, gracias a la posibilidad de elegir un prefijo, por ejemplo, código malicioso o identidades falsificadas en certificados firmados) que el ataque anterior con 277.1 evaluaciones (pero sin prefijo determinado, lo que lo hacía impráctico para la mayoría de ataques dirigidos debido a que las colisiones encontradas eran casi aleatorias)[54]​ y es lo suficientemente rápido como para ser práctico para atacantes con recursos, requiriendo aproximadamente $100,000 en procesamiento en la nube.

Una iteración dentro de la función de compresión SHA-1: - A, B, C, D y E son palabras de 32 bits del estado; - F es una función no lineal que varía; - ⋘𝑛 denota una rotación de bits a la izquierda por n posiciones, donde n varía en cada operación; - W t es la palabra de mensaje expandida de la ronda t ; - K t es la constante de la ronda t ; - denota una suma módulo 2 32 .