[Book] Serious Cryptography
Last Update:
Word Count:
Read Time:
Introduction
This article serves as one of my study notes while reading Serious Cryptography (by Jean-Philippe Aumasson).
As I continue to learn practical cryptography, I document important concepts, techniques and figures, along with my own understanding.
⚠️ This is a work-in-progress note.
The content will be continuously updated as I progress through the book.
El Libro
Chapter 6 - Hash
Secure Hash Function
Preimage Resistance
A preimage of a given hash value, H, is any message, M, such that Hash(M) = H. Preimage Resistance describes the security guaratee that given a random hash value, an attacker will never find a preimage of that hash value. Indeed, you can sometimes call hash hash functions one-way functions because you can go from the message to its hash but not the other way around.
First-preimage resistance (or just preimage resistance) describes cases where it’s practically impossible to find a message that hashes to a given value. Second-preimage resistance describes the case that when given a message, M1, it’s practically impossible to find another message, M2, that hashes to the same value that M1 does.
Collision Resistance
Whatever hash function you choose, collisions will inevitably exist because of the pigeonhole principle, which posits that if you have m holes and n pigeons to put into those holes and if n is greater than m, at least one hole must contain more than one pigeon.
Chapter 7 - Keyed Hashing
Anyone can ocmpute the hash value of a message and verify that a particular value. When you want only specific people to compute hashes, however, you will’s hash with secret keys using keyed hash functions.