Cryptography · Cluster
Hash Functions
Collision resistance and Merkle structures.
- 01 The Merkle-Damgård Construction and the Padding That Binds It How a fixed-width compression function is iterated into a variable-length hash, why the padding encodes the message length, and which attacks the iteration rule leaves open.
- 02 Collision Resistance and the Birthday Bound Why a hash needs roughly twice the output bits of the security level it claims, how the three resistance notions differ, and where the generic attacks stop applying.
- 03 Rate and Capacity in the Sponge Construction How SHA-3 absorbs and squeezes through a fixed permutation, why capacity rather than digest width determines the security level, and what the rate costs in throughput.
- 04 Length Extension and Prefix-Free Message Encoding Why an iterated hash can be continued from its own digest, how the attack reconstructs unknown input from output alone, and which encodings close the hole.
- 05 Domain Separation in Merkle Tree Hashing How a leaf node and an internal node can hash to the same value, why the standard repair costs one bit of digest, and which schemes still get the distinction wrong.
- 06 Parallel Tree Hashing and the BLAKE3 Design How chunk trees, parent nodes, and a stack of subtree roots convert a sequential hash into a parallel one, and what the tree structure costs in digest size and complexity.
- 07 Memory-Hard Functions and Password Hashing Costs Why a fast hash is the wrong primitive for storing passwords, how memory hardness changes the attacker cost model, and how iteration counts, salts, and parallelism parameters interact.
- 08 How Differential Cryptanalysis Broke SHA-1 The modular-difference search, message-modification steps, and near-collision blocks that turn a 160-bit digest into two colliding PDFs, and why the margin was thinner than the bound implied.
- 09 From Heuristic Hashes to the Random Oracle Model Why hash-based proofs are stated against an idealised function, what a reduction actually guarantees when the real hash is used instead, and where the modelling assumption fails.
- 10 Sparse Merkle Trees and Proofs of Non-Membership How a tree whose leaves are addressed by their own hashes proves absence, and what the default-hash rule, index lookup, and proof size cost at real key widths.