10-04-2012, 12:50 PM
Cryptography and Network Security
Cryptography and Network Security.ppt (Size: 330.5 KB / Downloads: 134)
Chapter 12 – Hash Algorithms
Each of the messages, like each one he had ever read of Stern's commands, began with a number and ended with a number or row of numbers. No efforts on the part of Mungo or any of his experts had been able to break Stern's code, nor was there any clue as to what the preliminary number and those ultimate numbers signified.
—Talking to Strange Men, Ruth Rendell
Hash Algorithms
see similarities in the evolution of hash functions & block ciphers
increasing power of brute-force attacks
leading to evolution in algorithms
from DES to AES in block ciphers
from MD4 & MD5 to SHA-1 & RIPEMD-160 in hash algorithms
likewise tend to use common iterative structure as do block ciphers
MD5
designed by Ronald Rivest (the R in RSA)
latest in a series of MD2, MD4
produces a 128-bit hash value
until recently was the most widely used hash algorithm
in recent times have both brute-force & cryptanalytic concerns
specified as Internet standard RFC1321
MD5 Overview
pad message so its length is 448 mod 512
append a 64-bit length value to message
initialise 4-word (128-bit) MD buffer (A,B,C,D)
process message in 16-word (512-bit) blocks:
using 4 rounds of 16 bit operations on message block & buffer
add output to buffer input to form new buffer value
output hash value is the final buffer value
MD5 Compression Function
each round has 16 steps of the form:
a = b+((a+g(b,c,d)+X[k]+T[i])<<<s)
a,b,c,d refer to the 4 words of the buffer, but used in varying permutations
note this updates 1 word only of the buffer
after 16 steps each word is updated 4 times
where g(b,c,d) is a different nonlinear function in each round (F,G,H,I)
T[i] is a constant value derived from sin
MD4
precursor to MD5
also produces a 128-bit hash of message
has 3 rounds of 16 steps vs 4 in MD5
design goals:
collision resistant (hard to find collisions)
direct security (no dependence on "hard" problems)
fast, simple, compact
favours little-endian systems (eg PCs)
Strength of MD5
MD5 hash is dependent on all message bits
Rivest claims security is good as can be
known attacks are:
Berson 92 attacked any 1 round using differential cryptanalysis (but can’t extend)
Boer & Bosselaers 93 found a pseudo collision (again unable to extend)
Dobbertin 96 created collisions on MD compression function (but initial constants prevent exploit)
conclusion is that MD5 looks vulnerable soon
Secure Hash Algorithm (SHA-1)
SHA was designed by NIST & NSA in 1993, revised 1995 as SHA-1
US standard for use with DSA signature scheme
standard is FIPS 180-1 1995, also Internet RFC3174
nb. the algorithm is SHA, the standard is SHS
produces 160-bit hash values
now the generally preferred hash algorithm
based on design of MD4 with key differences
SHA Overview
pad message so its length is 448 mod 512
append a 64-bit length value to message
initialise 5-word (160-bit) buffer (A,B,C,D,E) to
(67452301,efcdab89,98badcfe,10325476,c3d2e1f0)
process message in 16-word (512-bit) chunks:
expand 16 words into 80 words by mixing & shifting
use 4 rounds of 20 bit operations on message block & buffer
add output to input to form new buffer value
output hash value is the final buffer value
SHA-1 Compression Function
each round has 20 steps which replaces the 5 buffer words thus:
(A,B,C,D,E) <-(E+f(t,B,C,D)+(A<<5)+Wt+Kt),A,(B<<30),C,D)
a,b,c,d refer to the 4 words of the buffer
t is the step number
f(t,B,C,D) is nonlinear function for round
Wt is derived from the message block
Kt is a constant value derived from sin
SHA-1 verses MD5
brute force attack is harder (160 vs 128 bits for MD5)
not vulnerable to any known attacks (compared to MD4/5)
a little slower than MD5 (80 vs 64 steps)
both designed as simple and compact
optimised for big endian CPU's (vs MD5 which is optimised for little endian CPU’s)
Revised Secure Hash Standard
NIST have issued a revision FIPS 180-2
adds 3 additional hash algorithms
SHA-256, SHA-384, SHA-512
designed for compatibility with increased security provided by the AES cipher
structure & detail is similar to SHA-1
hence analysis should be similar
RIPEMD-160
RIPEMD-160 was developed in Europe as part of RIPE project in 96
by researchers involved in attacks on MD4/5
initial proposal strengthen following analysis to become RIPEMD-160
somewhat similar to MD5/SHA
uses 2 parallel lines of 5 rounds of 16 steps
creates a 160-bit hash value
slower, but probably more secure, than SHA
RIPEMD-160 Overview
pad message so its length is 448 mod 512
append a 64-bit length value to message
initialise 5-word (160-bit) buffer (A,B,C,D,E) to
(67452301,efcdab89,98badcfe,10325476,c3d2e1f0)
process message in 16-word (512-bit) chunks:
use 10 rounds of 16 bit operations on message block & buffer – in 2 parallel lines of 5
add output to input to form new buffer value
output hash value is the final buffer value
RIPEMD-160 Design Criteria
use 2 parallel lines of 5 rounds for increased complexity
for simplicity the 2 lines are very similar
step operation very close to MD5
permutation varies parts of message used
circular shifts designed for best results
RIPEMD-160 verses MD5 & SHA-1
brute force attack harder (160 like SHA-1 vs 128 bits for MD5)
not vulnerable to known attacks, like SHA-1 though stronger (compared to MD4/5)
slower than MD5 (more steps)
all designed as simple and compact
SHA-1 optimised for big endian CPU's vs RIPEMD-160 & MD5 optimised for little endian CPU’s