Intermediate Topic 18 of 51 Security & Cryptography
SHA Family
Standard cryptographic hash algorithms.
How it works
The Secure Hash Algorithm family, standardized by NIST, includes SHA-1, with 160-bit output and now broken for collisions, the SHA-2 group, SHA-224, SHA-256, SHA-384 and SHA-512, built with the Merkle-Damgard construction, and SHA-3, based on the Keccak sponge construction chosen in a public competition. SHA-256 is the workhorse for certificates, Bitcoin and integrity checking, and SHA-3 offers a different internal design in case SHA-2 is weakened.
Step-by-step walkthrough
- Any input of any size goes in.
- The data is processed in blocks through many rounds.
- A fixed-size digest comes out.
- A tiny change in the input flips about half the bits.
- It is one-way and collision resistant, and used for integrity checks.
Where it is used
TLS certificates, digital signatures, HMAC, Git, package managers and blockchain proofs of work use SHA functions.
Common pitfall
SHA-1 and MD5 collisions have been demonstrated and exploited, for instance in forged certificates, so migrate away. SHA-2 is vulnerable to length-extension attacks when used naively as a keyed hash; use HMAC or SHA-3. Do not use any plain SHA function for storing passwords. Choose output size to match the security level needed.
Where it fits in the course
SHA Family is topic 18 of 51 in Security & Cryptography, rated Intermediate. It follows Hash Functions. The next topic is Digital Signatures.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Security & Cryptography quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Security & Cryptography quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is SHA Family?
Where do people use SHA Family?
What is the most common mistake with SHA Family?
What should I learn before this topic?
How can I practice it?
Is SHA Family hard to learn?
How long does it take to learn SHA Family?
Which topics are related to SHA Family?
What should I study after SHA Family?
Related topics
- Hash Functions (Security & Cryptography)
- Digital Signatures (Security & Cryptography)
- RSA (Security & Cryptography)
- Public Key Infrastructure (Security & Cryptography)
- Column-Family Stores (Databases)