SHA 512 – Secure Hash
Algorithm
Introduction to SHA
• The original specification of the algorithm was published in
1993 under the title Secure Hash Standard (SHA-0), by U.S.
government standards agency NIST (National Institute of
Standards and Technology).
• It was withdrawn by the NSA shortly after publication and was
superseded by the revised version, published in and
commonly designated SHA-1
• SHA-1 (Secure Hash Algorithm 1) is a cryptographic hash
function which takes an input and produces a 160-bit hash
value known as a message digest – typically rendered as a
hexadecimal number, 40 digits long.
Secure Hash Algorithm (SHA512)
• Since 2005, SHA-1 has not been considered secure against
well-funded opponents
• As of 2010 many organizations have recommended its
replacement.
• NIST formally deprecated use of SHA-1 in 2011 and
disallowed its use for digital signatures in 2013.
• The predecessor is SHA- 2. SHA-2 includes significant changes
from its predecessor, SHA-1.
• The SHA-2 family consists of six hash functions with digests
(hash values) that are 224, 256, 384 or 512 bits: SHA-224,
SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
SHA-256 and SHA-512 are novel hash functions computed
with 32-bit and 64-bit words, respectively.
SHA 512 – Secure Hash
Algorithm
Overview SHA 512
Input Message
SHA 512
Hash Value – 512 bits
Input Message
Input Message
Padding
M1 M2 M3 MN
1024 bits 1024 bits 1024 bits 1024 bits
Padding Example
• Consider Input Message “abc”
Represent in binary
01100001 01100010 01100011
Message_Length = 24 bits
Needed
Message_Length ≡896 mod 1024
Message_Length mod 1024 = 896
24 + 872 mod 1024 = 896
Pad 872 bits to message such that Message_Length mod 1024 = 896
872 bits to be padded – 1 bit followed by 871 zeros
Padding Example
Pad the original length of the message for 128 bits at the end
01100001 01100010 01100011
Message_Length = 24 bits
Hexadecimal value of 24 is 18
Message length represented in 128 bits in hexa decimal is
Exercise
• How many bits you will pad for input message length of 2348
bits?
• Message_Length ≡896 mod 1024
2348 mod 1024 = 300
2348 + 596 mod 1024 = 896
Pad 596 bits where in 1 followed by 595 zeros
Message length is 2944
Add the message length (2348) as 128 bits at the
end
Total bits will be 2944+ 128 = 3072
This is nothing but Three M blocks of Size 1024 bits
SHA 512 OVERALL BLOCK DIAGRAM
M1 M2 M3
1024 bits 1024 bits 1024 bits
F F F
+ + +
IV = H0 H1 H2 H3
(512 Bits) (512 Bits) (512 Bits) (512 Bits)
abcdefgh abcdefgh abcdefgh abcdefgh
Message Digest
What is this
Module F ?
F
Module F – STEP 1
Message Scheduling
M1 W0 64 bits
1024 bits
W1 64 bits
W2 64 bits
W3 64 bits
W4 64 bits
W79 64 bits
How to derive 80 words from a block of 1024 bits
F
What is
happening in a
Round
Round
Computing T1
Compute T2