(I) A function H that maps an arbitrary, variable-length bit
string, s, into a fixed-length string, h = H(s) (called the "hash
result"). For most computing applications, it is desirable that
given a string s with H(s) = h, any change to s that creates a
different string s’ will result in an unpredictable hash result
H(s’) that is, with high probability, not equal to H(s).