hash function breaks more often than block ciphers.

collisions happen because of the pingeon principle but hard to find

formalism

how to build a hash function from a block cipher?

keyless hash functions : if keys = consists of just empty string. or MD, SH2, SH3 are keyless

any block cipher is vulnerable to eks any hash function is

birthday attack

if throw

if you have a finite set, what kind of distribution to minimize collision?

for sha256, output 256 bits, if pick 128 bit input, not likely to be collision resistant (?)

attack times

compression functions

keyless function

merkle damgard is a common tway to turn hash function to collision resistent compression fucntion (?)

MD transform

have a compression unction with block length b. think of D as unbounded. D: set of all strings at most -1 blocks

if h is CR, then so is H hashing long inputs redcued to hasing fixed-length inputs

H is secure asummming h is secure.

drawback: sequential blocks, can merkle tree

quiz on hash function