No history yet

Introduction to Cryptographic Hash Functions

Digital Fingerprints

Imagine you have a machine that can take any digital file—a simple text message, a picture, or even an entire movie—and crush it down into a short, fixed-length string of characters. This string is called a hash, and the machine that creates it is a hash function.

A cryptographic hash function is a special kind of this machine, designed for security. It acts like a unique digital fingerprint for your data. If even a single bit of the data changes, the fingerprint changes completely and unpredictably.

Hashing is a technique used to map data of arbitrary size to fixed-size values, called hash values or hash codes, using a hash function.

This process isn't random. It follows a strict set of rules, or properties, that make it incredibly useful for verifying that data hasn't been tampered with.

The Rules of Hashing

For a hash function to be cryptographically secure, it must have several key properties. These aren't suggestions; they're strict requirements.

Determinism: The same input will always produce the same output. If you hash the word "hello," you will get the exact same hash every single time. No exceptions.

Fixed-Length Output: The hash produced is always the same size, regardless of the input's size. Hashing a single letter or a 10-gigabyte file will result in an output of the same length. For example, the popular SHA-256 algorithm always produces a 256-bit hash (represented as 64 hexadecimal characters).

Pre-image resistance

noun

It should be computationally infeasible to reverse the process. Given a hash, you can't figure out the original input. This makes hashing a one-way function, like trying to un-bake a cake to get back the original flour, eggs, and sugar.

Next are two related ideas that prevent forgeries.

Second Pre-image Resistance: If you have an input and its corresponding hash, it should be impossible to find a different input that produces the very same hash. This prevents someone from swapping a valid document with a malicious one that has the same digital fingerprint.

Collision resistance

noun

It should be computationally infeasible to find any two different inputs that produce the same hash output. This is a bit like second pre-image resistance, but broader. Here, you're not given a specific input to start with; the challenge is to find any pair of inputs that collide.

Finally, there's a property that ensures small changes have big effects.

The Avalanche Effect

The avalanche effect means that if you change the input even slightly—by a single character or bit—the resulting hash changes dramatically. It's not just a small tweak; the new hash will look completely random and unrelated to the first one.

This ensures that an attacker can't make subtle changes to a file and hope for a similar-looking hash. See for yourself:

Input StringSHA-256 Hash
The quick brown fox jumps over the lazy dogd7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
The quick brown fox jumps over the lazy coge4c4d8f3bf76b692de791a173e05321150f7a345e4e4093325654261556820be

Changing just one letter, from "dog" to "cog," created a completely different hash. These properties together form the foundation of trust in many digital systems, from securing passwords to verifying the integrity of blockchain transactions.

Quiz Questions 1/4

What is the primary purpose of a cryptographic hash function?

Quiz Questions 2/4

Imagine you use the SHA-256 algorithm to hash a single word and then to hash a 10-gigabyte movie file. How will the lengths of the two resulting hashes compare?