download

Hash functions
•
a hash function produces a fingerprint of some file/message/data
h = H(M)
•

condenses a variable-length message M

to a fixed-sized fingerprint
usually assume that the hash function is public, not keyed

cf. MAC which is keyed
•
hash used to detect changes to message
•
can use in various ways with message
•
most often to create a digital signature, or fingerprint
Authentication via hash functions
+ digital
signature also
Authentication via hash functions (contd.)
•
Secret value is added before hashing and then removed
before transmission
Requirements for hash functions
1.
can be applied to any sized message M
2.
produces fixed-length output h
3.
is easy to compute h=H(M) for any message M
4.
given h is infeasible to find x s.t. H(x)=h
•
one-way property
given x is infeasible to find y s.t. H(y)=H(x)
5.
•
weak collision resistance
is infeasible to find any x,y s.t. H(y)=H(x)
6.
•
strong collision resistance
Simple hash functions
•
there are several proposals for simple functions, based on
XOR of message blocks:
 e.g. longitudinal redundancy check:
 xor of columns of n-bit block arranged in rows
 e.g. above+ circular left shift of hash after each row
 effect of rotated XOR (RXOR) is to randomize the input
•
but these lack weak collision resistance
 simply “add a block” to obtain desired hash
•
need a stronger cryptographic function
Birthday attacks imply need longer hash values
•
You might think a 64-bit hash is secure
•
but by Birthday Paradox is not
•
birthday attack works thus:
•
m

opponent generates 2 /2 variations of a valid message all with
essentially the same meaning

opponent also generates 2
message

two sets of messages are compared to find pair with same hash
(probability > 0.5 by birthday paradox)

have user sign the valid message, then substitute the forgery which
will have a valid signature
m/
2
variations of a desired fraudulent
conclusion is that need to use longer hash values
Hash algorithms
•
similarities in evolution of hash functions & block ciphers
 increasing power of brute-force attacks led to evolution in
algorithms
 from DES to AES in block ciphers
 from MD4 & MD5 to SHA-1 in hash algorithms
•
likewise tend to use common iterative structure as do block
ciphers
Block ciphers as hash functions
•
can use block ciphers as hash functions
 using H0=0 and zero-pad of final block
 compute: Hi = EMi [Hi-1]
 and use final block as the hash value
 similar to cipher block chaining but without a key
•
•
but resulting hash should not be too small (64-bit)
like block ciphers have brute-force attacks, and a
number of analytic attacks on iterated hash functions
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 had both brute-force & cryptanalytic concerns
•
specified as Internet standard RFC1321
MD5 overview
1.
pad message so its length is 448 mod 512
2.
append a 64-bit length value to message
3.
initialise 4-word (128-bit) MD buffer (A,B,C,D)
4.
process message in 16-word (512-bit) blocks:
5.

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 overview
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 (e.g., PCs)
Strength of MD5
•
MD5 hash is dependent on all message bits
•
Rivest claimed security is as strong as can be with 128 bit code
•
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 should be 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
1.
pad message so its length is 448 mod 512
2.
append a 64-bit length value to message
3.
initialise 5-word (160-bit) buffer (A,B,C,D,E) to
(67452301,efcdab89,98badcfe,10325476,c3d2e1f0)
4.
5.
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 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
Reading on Crypto
Comparable to the extent covered in class, read
•
Chapter 3:
3.1-3.4
•
Chapter 5:
5.1
•
Chapter 6:
6.2-6.5
•
Chapter 9:
9.1-9.2
•
Chapter 11:
11.4-11.5
•
Chapter 12:
12.1-12.2