SHA-1


En criptografía , SHA-1 ( Secure Hash Algorithm 1 ) es una función hash criptográficamente rota [3] [4] [5] [6] [7] [8] [9] pero aún ampliamente utilizada que toma una entrada y produce una Valor hash de 160 bits (20 bytes ) conocido como resumen de mensaje , normalmente representado como un número hexadecimal de 40 dígitos. Fue diseñado por la Agencia de Seguridad Nacional de los Estados Unidos y es un estándar federal de procesamiento de información de los Estados Unidos . [10]

Desde 2005, SHA-1 no se ha considerado seguro contra oponentes bien financiados; [11] a partir de 2010 muchas organizaciones han recomendado su reemplazo. [12] [9] [13] NIST desaprobó formalmente el uso de SHA-1 en 2011 y prohibió su uso para firmas digitales en 2013. A partir de 2020 , los ataques de prefijo elegido contra SHA-1 son prácticos. [5] [7] Como tal, se recomienda eliminar SHA-1 de los productos lo antes posible y, en su lugar, usar SHA-2 o SHA-3 . La sustitución de SHA-1 es urgente donde se utiliza para firmas digitales .

Todos los principales proveedores de navegadores web dejaron de aceptar certificados SHA-1 SSL en 2017. [14] [8] [3] En febrero de 2017, CWI Amsterdam y Google anunciaron que habían realizado un ataque de colisión contra SHA-1, publicando dos archivos PDF diferentes. que produjo el mismo hash SHA-1. [15] [2] Sin embargo, SHA-1 sigue siendo seguro para HMAC . [dieciséis]

SHA-1 produce un resumen de mensajes basado en principios similares a los utilizados por Ronald L. Rivest del MIT en el diseño de los algoritmos de resumen de mensajes MD2 , MD4 y MD5 , pero genera un valor hash mayor (160 bits frente a 128 bits).

SHA-1 se desarrolló como parte del proyecto Capstone del gobierno de EE . UU . [17] La ​​especificación original del algoritmo fue publicada en 1993 bajo el título Secure Hash Standard , FIPS PUB 180, por la agencia de estándares del gobierno de EE. UU. NIST (Instituto Nacional de Estándares y Tecnología). [18] [19] Esta versión ahora a menudo se llama SHA-0 . Fue retirado por la NSA poco después de su publicación y fue reemplazado por la versión revisada, publicada en 1995 en FIPS PUB 180-1 y comúnmente denominada SHA-1 . SHA-1 se diferencia de SHA-0 solo por una sola rotación bit a bit en el programa de mensajes de sufunción de compresión . Según la NSA, esto se hizo para corregir una falla en el algoritmo original que reducía su seguridad criptográfica, pero no dieron más explicaciones. [20] [21] Las técnicas disponibles públicamente demostraron un compromiso de SHA-0, en 2004, antes de SHA-1 en 2017. Ver #Ataques

SHA-1 forma parte de varias aplicaciones y protocolos de seguridad ampliamente utilizados, incluidos TLS y SSL , PGP , SSH , S/MIME e IPsec . Esas aplicaciones también pueden usar MD5 ; tanto MD5 como SHA-1 descienden de MD4 .


Una iteración dentro de la función de compresión SHA-1: A, B, C, D y E son palabras de estado de
32 bits ; F es una función no lineal que varía; denota una rotación de bit a la izquierda por n lugares; n varía para cada operación; Wt es la palabra de mensaje ampliada de la ronda t ; K t es la constante redonda de la ronda t; denota suma módulo 2 32 .