Module 10 : Hash Function Digital Signatures

Lecture 1 : Cryptographic hash functions

 

 

Then M is broken up into words of length 32 bits as follows:

M = M [0] M [1] … M [ N -1]

Where each M [ i ] is 32 bit long and N º 0 mod 16. The overall algorithm proceeds as follows:

  1. 1.  A = 67452301 hex
  2. 2.  B = efcdab89 hex

    3.  C = 98badcfe hex

    4.  D = 10325476 hex

    5. for i = 0 to N/16 -1 do

    6.  for j = 0 to 15 do

    7.  X [ j] = M [ 16i + j ]

    8.  AA = A

    9.  BB = B

    10.  CC = C

    11.  DD = D

    12.  Round1

    13.  Round2

    14.  Round3

    15.  A = A + AA

    16.  B = B + BB

    17. C = C + CC

    18.  D = D + DD

 

We maintain 4 registers A , B , C , D each of length 32 bits. In each iteration of the outer for loop we process a message block X [0] X [1] … X [15] of length 512 bits to produce a message digest of lenghth 128 bits formed by concatenating the contents of those 4 register A , B , C , D .

The above algorithm of MD4 was subsequently extended to MD5 that works in 4 rounds instead of 3 rounds.