Chapter 9 of the Handbook of Applied Cryptography by Alfred J. Menezes, Paul C. van Oorschot, and Scott A. Vanstone Highlights Unkeyed Hash Functions by James Pate Williams, Jr. BA, BS, MSwE, PhD

In this first installment of Chapter 9 Hash Functions and Data Integrity of the Handbook, we concentrate on the unkeyed hash functions mentioned in the Chapter which are:

  1. Matyas-Meyer-Oseas Hash 9.41 Algorithm page 341
  2. Davies-Meyer Hash 9.42 Algorithm page 341
  3. Miyaguchi-Preneel Hash 9.43 Algorithm page 341
  4. MDC-2 (DES Based) 9.46 Algorithm page 342
  5. MDC-4 (DES Based) 9.47 Algorithm page 343
  6. MD4 9.49 Algorithm page 346
  7. MD5 9.51 Algorithm page 347
  8. SHA-1 (Secure Hash Algorithm 1) 9.53 Algorithm page 348-349
  9. RIPMD-160 9.55 Algorithm pages 350-351

The first five algorithms are based on the IBM-NIST-NSA encryption algorithm DES (Data Encryption Standard).

Chapter 9 Unkeyed 1

Matyas-Meyer-Oseas DES Hash Function
abcdefghijklmnopqrstuvwxyz
IV = 01ad27b0 75851f2a
H1 = 62af6ffa e32867a0
Zbcdefghijklmnopqrstuvwxyz
IV = 01ad27b0 75851f2a
I1 = 567f7eaf 7420eb6f
number of changed bits by a five bits input change = 27

Davies-Meyer DES Hash Function
abcdefghijklmnopqrstuvwxyz
IV = 464f95ff 30d042d1
H1 = be1c30f4 2f6fc905
Zbcdefghijklmnopqrstuvwxyz
IV = 464f95ff 30d042d1
I1 = e56ec4b7 ffd98172
number of changed bits by a five bits input change = 33

Miyaguchi-Preneel DES Hash Function
abcdefghijklmnopqrstuvwxyz
IV = 164502df 2264bd00
H1 = d866343a 137eee2a
Zbcdefghijklmnopqrstuvwxyz
IV = 164502df 2264bd00
I1 = becbad0e 0ca8fa64
number of changed bits by a five bits input change = 32

Chapter 9 Unkeyed 2

MDC_2 DES Hash Function
abcdefghijklmnopqrstuvwxyz
G0 = a2a9a035 554856b1
G0T = ed24d012 d536f455
Zbcdefghijklmnopqrstuvwxyz
H0 = 5a79b365 970b3216
H0T = 2694dd17 0d93ddb1
number of changed bits by a five bits input change = 55

MDC-4 DES Hash Function
abcdefghijklmnopqrstuvwxyz
IV = 3cd408f2 528789b6
IVT = 0ac7b125 5a8a8729
G0 = 80140bb0 e49cc013
G0T = 80140bb0 e49cc013
Zbcdefghijklmnopqrstuvwxyz
IV = 3cd408f2 528789b6
IVT = 0ac7b125 5a8a8729
H0 = 37d40179 ce50bcc9
H0T = 37d40179 ce50bcc9
number of changed bits by a five bits input change = 62

Chapter 9 MD4

MD4

0x31d6cfe0 
0xd16ae931 
0xb73c59d7 
0xe0c089c0

a
0xbde52cb3 
0x1de33e46 
0x245e05fb 
0xdbd6fb24

abc
0xa448017a 
0xaf21d852 
0x5fc10ae8 
0x7aa6729d

abcdefghijklmnopqrstuvwxyz
0xd79e1c30 
0x8aa5bbcd 
0xeea8ed63 
0xdf412da9

Chapter 9 MD5

MD5

0xd41d8cd9 
0x8f00b204 
0xe9800998 
0xecf8427e

a
0x0cc175b9 
0xc0f1b6a8 
0x31c399e2 
0x69772661

abc
0x90015098 
0x3cd24fb0 
0xd6963f7d 
0x28e17f72

abcdefghijklmnopqrstuvwxyz
0xc3fcd3d7 
0x6192e400 
0x7dfb496c 
0xca67e13b

Chapter 9 SHA

SHA-1

0xda39a3ee 
0x5e6b4b0d 
0x3255bfef 
0x95601890 
0xafd80709

a
0x86f7e437 
0xfaa5a7fc 
0xe15d1ddc 
0xb9eaeaea 
0x377667b8

abc
0xa9993e36 
0x4706816a 
0xba3e2571 
0x7850c26c 
0x9cd0d89d

abcdefghijklmnopqrstuvwxyz
0x32d10c7b 
0x8cf96570 
0xca04ce37 
0xf2a19d84 
0x240d3a89

Chapter 9 RIPEMD

RIPEMD-160

0x9c1185a5 
0xc5e9fc54 
0x61280897 
0x7ee8f548 
0xb2258d31

a
0x0bdc9d2d 
0x256b3ee9 
0xdaae347b 
0xe6f4dc83 
0x5a467ffe

abc
0x8eb208f7 
0xe05d987a 
0x9b044a8e 
0x98c6b087 
0xf15a0bfc

abcdefghijklmnopqrstuvwxyz
0xf71c2710 
0x9c692c1b 
0x56bbdceb 
0x5b9d2865 
0xb3708dbc

Test vectors for MD4, MD5, SHA-1, and RIPEMD-160 can be found in Table 9.6 of the Handbook on page 345.

Unknown's avatar

Author: jamespatewilliamsjr

My whole legal name is James Pate Williams, Jr. I was born in LaGrange, Georgia approximately 70 years ago. I barely graduated from LaGrange High School with low marks in June 1971. Later in June 1979, I graduated from LaGrange College with a Bachelor of Arts in Chemistry with a little over a 3 out 4 Grade Point Average (GPA). In the Spring Quarter of 1978, I taught myself how to program a Texas Instruments desktop programmable calculator and in the Summer Quarter of 1978 I taught myself Dayton BASIC (Beginner's All-purpose Symbolic Instruction Code) on LaGrange College's Data General Eclipse minicomputer. I took courses in BASIC in the Fall Quarter of 1978 and FORTRAN IV (Formula Translator IV) in the Winter Quarter of 1979. Professor Kenneth Cooper, a genius poly-scientist taught me a course in the Intel 8085 microprocessor architecture and assembly and machine language. We would hand assemble our programs and insert the resulting machine code into our crude wooden box computer which was designed and built by Professor Cooper. From 1990 to 1994 I earned a Bachelor of Science in Computer Science from LaGrange College. I had a 4 out of 4 GPA in the period 1990 to 1994. I took courses in C, COBOL, and Pascal during my BS work. After graduating from LaGrange College a second time in May 1994, I taught myself C++. In December 1995, I started using the Internet and taught myself client-server programming. I created a website in 1997 which had C and C# implementations of algorithms from the "Handbook of Applied Cryptography" by Alfred J. Menezes, et. al., and some other cryptography and number theory textbooks and treatises.

Leave a comment