Digest functions
Last updated
Last updated
Give a fixed-length value from a variable-length text.
Sort of text “fingerprint”
Produce very different values for similar texts.
Cryptographic one-way hash functions.
Relevant properties:
Preimage resistance.
Given a digest, it is infeasible to find an original text producing it.
2nd-preimage resistance.
Given a text, it is infeasible to find another one with the same digest.
Collision resistance.
It is infeasible to find any two texts with the same digest.
Birthday paradox.
Iterative compression.
Collision-resistent, one-way compression functions.
Length padding (1, followed by zeros, followed by length).
Absorption: update a finite internal state (entropy pool) from a variable-length, padded input stream.
Squeezing: produce an arbitrary-length output from the internal state.
MD5 (128 bits)
No longer secure! It’s easy to find collisions!
Disclaimer: it can be used when collisions are not an issue.
SHA-1 (Secure Hash Algorithm, 160 bits)
Also no longer secure ... (collisions found in 2017).
RIPEMD (128 and 160)
SHA-2, aka SHA-256 / SHA-348 / SHA-512
SHA-3 (Keccak)