CH - 12 Hash Functions
CH - 12 Hash Functions
Cryptographic
Hash Functions
12.1
MD5
length
12.3
Steps:
12.4
Step-1
Append padding bits
The message is padded so that the
length in bits is congruent to 448 mod
512
i.e. Length = 448 mod 512
Padding consists of a 1-bit followed by
necessary no of zeroes.
12.5
12.2.1 Continued
|M| + |P| + 64 =0 MOD 512
|P| = [-M -64] MOD 512
Example 12.3
What is the number of padding bits if the length of the original
message is 2590 bits?
Solution
We can calculate the number of padding bits as follows:
12.6
Example 12.4
Do we need padding if the length of the original message is
already a multiple of 1024 bits?
Solution
Yes we do, because we need to add the length field. So padding is
needed to make the new block a multiple of 1024 bits.
12.7
STEP 3
The main MD5 algorithm operates on a
128-bit state, divided into four 32-bit
words,
denoted A, B, C and D.
These are initialized to certain fixed
constants
In little-endian format
i.e. least significant byte first
Ex: if A =87654321
The word A = 21436587
12.8
Step 4
MD5 is a compression algorithm
CV0 = IV
CVq+1 = SUM32[CVq, RFI(Yq, RFH(Yq,RFG
(Yq, RFF(Yq, CVq))))]
MD = CVL-1
12.9
12.10
MD5 operations:
12.11
12.1.2 Two Groups of Compression Functions
12.12
12-1 INTRODUCTION
12.13
12.1.1 Iterated Hash Function
Merkle-Damgard Scheme
12.15
12-2 SHA-512
12.17
12.2.1 Continued
Message Preparation
SHA-512 insists that the length of the original message
be less than 2128 bits.
Note
SHA-512 creates a 512-bit message digest out of a
message less than 2128.
12.18
12.2.1 Continued
12.19
12.2.1 Continued
Example 12.5
What is the minimum and maximum number of padding bits that
can be added to a message?
Solution
12.20
12.2.1 Continued
In this case, we cannot just add the length field because the length
of the last block exceeds one bit more than 1024. So we need to
add 897 bits to complete this block and create a second block
of 896 bits. Now the length can be added to make this block
complete.
12.21
12.2.1 Continued
Words
12.22
12.2.1 Continued
Word Expansion
Example 12.6
Solution
Each word in the range W16 to W79 is made from four
previously-made words. W60 is made as
12.24
12.2.1 Continued
12.25
12.2.2 Compression Function
12.26
Figure 12.11 Structure of each round in SHA-512
12.27
12.2.2 Continued
Majority Function
Conditional Function
Rotate Functions
12.28
12.2.2 Continued
12.29
12.2.2 Continued
12.30
12.2.2 Continued
Example 12.7
We apply the Majority function on buffers A, B, and C. If the
leftmost hexadecimal digits of these buffers are 0x7, 0xA, and 0xE,
respectively, what is the leftmost digit of the result?
Solution
The digits in binary are 0111, 1010, and 1110.
a. The first bits are 0, 1, and 1. The majority is 1.
b. The second bits are 1, 0, and 1. The majority is 1.
c. The third bits are 1, 1, and 1. The majority is 1.
d. The fourth bits are 1, 0, and 0. The majority is 0.
Example 12.8
We apply the Conditional function on E, F, and G buffers. If the
leftmost hexadecimal digits of these buffers are 0x9, 0xA, and 0xF
respectively, what is the leftmost digit of the result?
Solution
The digits in binary are 1001, 1010, and 1111.
a. The first bits are 1, 1, and 1. The result is F1, which is 1.
b. The second bits are 0, 0, and 1. The result is G2, which is 1.
c. The third bits are 0, 1, and 1. The result is G3, which is 1.
d. The fourth bits are 1, 0, and 1. The result is F4, which is 0.