Secure Hash Algorithms | |
---|---|
Concepts | |
hash functions, SHA, DSA | |
Main standards | |
SHA-0, SHA-1, SHA-2, SHA-3 | |
General | |
---|---|
Designers | National Security Agency |
First published | 1993 (SHA-0), 1995 (SHA-1) |
Series | (SHA-0), SHA-1, SHA-2, SHA-3 |
Certification | FIPS PUB 180-4, CRYPTREC (Monitored) |
Cipher detail | |
Digest sizes | 160 bits |
Block sizes | 512 bits |
Structure | Merkle–Damgård construction |
Rounds | 80 |
Best public cryptanalysis | |
A 2011 attack by Marc Stevens can produce hash collisions with a complexity between 260.3 and 265.3 operations.[1] The first public collision was published on 23 February 2017.[2] SHA-1 is prone to length extension attacks. |
In cryptography, SHA-1 (Secure Hash Algorithm 1) is a hash function which takes an input and produces a 160-bit (20-byte) hash value known as a message digest – typically rendered as 40 hexadecimal digits. It was designed by the United States National Security Agency, and is a U.S. Federal Information Processing Standard.[3] The algorithm has been cryptographically broken[4][5][6][7][8][9][10] but is still widely used.
Since 2005, SHA-1 has not been considered secure against well-funded opponents;[11] as of 2010 many organizations have recommended its replacement.[12][10][13] NIST formally deprecated use of SHA-1 in 2011 and disallowed its use for digital signatures in 2013, and declared that it should be phased out by 2030.[14] As of 2020[update], chosen-prefix attacks against SHA-1 are practical.[6][8] As such, it is recommended to remove SHA-1 from products as soon as possible and instead use SHA-2 or SHA-3. Replacing SHA-1 is urgent where it is used for digital signatures.
All major web browser vendors ceased acceptance of SHA-1 SSL certificates in 2017.[15][9][4] In February 2017, CWI Amsterdam and Google announced they had performed a collision attack against SHA-1, publishing two dissimilar PDF files which produced the same SHA-1 hash.[16][2] However, SHA-1 is still secure for HMAC.[17]
Microsoft has discontinued SHA-1 code signing support for Windows Update on August 3, 2020,[18] which also effectively ended the update servers for versions of Windows that have not been updated to SHA-2, such as Windows 2000 up to Vista, as well as Windows Server versions from Windows 2000 Server to Server 2003.
autogenerated1
was invoked but never defined (see the help page).:3
was invoked but never defined (see the help page).shappening
was invoked but never defined (see the help page).