Why is SHA-3 prefixed with “SHA” despite the fact that it is structurally different from SHA-2 and SHA-1?

SHA-0, 1 & 2 and MD5 is based on Merkle–Damgård construction, while SHA-3 falls under Sponge functions.

Therefore why SHA-3 is still prefixed with “SHA” despite the fundamental difference in its construction?

  • 7
    $\begingroup$ Same reason MacOS is still macOS. $\endgroup$ – DannyNiu Mar 14 '18 at 11:47

SHA3 is the name of the hash function standard, and the acronym is for 'Secure Hash Algorithm', pretty neutral one saying nothing about the structure. The algorithm itself was originally named Keccak by the developers. After winning the SHA3 competition, Keccak became SHA3.

  • 17
    $\begingroup$ +1: SHA3 is more of a "title" than a "name" $\endgroup$ – Ella Rose Mar 14 '18 at 1:42
  • 2
    $\begingroup$ Note that there were ideas to call SHA-3 AHS or ASH or some other names just to set it appart. Fortunately those didn't make it. $\endgroup$ – Maarten Bodewes Mar 14 '18 at 7:45
  • 2
    $\begingroup$ I wouldn't say that Keccak became SHA-3 so much as it was incorporated into SHA-3 as its core primitive, in terms of which it defines the four SHA-3 hash functions and the two SHAKE extendable output functions (XOFs). But that's really just a nitpick. $\endgroup$ – Luis Casillas Mar 14 '18 at 17:51


This naming was introduced by NIST (see https://csrc.nist.gov/Projects/Hash-Functions) way back in 1993 during SHA-0 standardization efforts (which ended in SHA-1).

SHA stands for Secure Hash Algorithm; while the -1, -2*, and -3 parts can be regarded as a sort of version number. The higher that number, the more recent the hashing algorithm is.

Therefore why SHA-3 is still prefixed with “SHA” despite the fundamental difference in its construction?

When it says “Secure Hash Algorithm” on the package, it doesn’t matter what kind of hash algorithm NIST puts in there, as long as it’s secure. That’s why they chose the naming while embracing standardization towards Federal Information Processing Standards.

A word about MD…

Just to be sure you’re not stepping into a potential pitfall: note that “MD” as used in MD5 does not stand for “Merkle–Damgård”. Instead, it is short for Message Digest; again with appended numbers which can be regarded as a kind of version number.

To make it complete, maybe I should also point out that MD… isn’t a NIST naming thing.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.