Skip to content

How We Created the First SHA-1 Collision

Elie Bursztein

Recounts the computation and cryptanalytic engineering behind the SHAttered project that produced the first practical SHA-1 collision.

Summary

The Theoretical Demise of SHA-1

The cryptographic hash function SHA-1 was designed by the National Security Agency in 1995 and widely integrated into digital certificate standards, version control systems, and document signing protocols. While theoretical differential path attacks were published by Xiaoyun Wang and colleagues in 2005, practical generation of an identical hash digest from two distinct meaningful files remained computationally intractable for over a decade.

The SHAttered Project Architecture

Elie Bursztein details the collaborative research initiative between Google and CWI Amsterdam that produced the first practical SHA-1 collision, known as the SHAttered attack. The attack required calculating approximately nine quintillion SHA-1 operations, representing an unprecedented distributed computation across heterogeneous CPU clusters and specialized GPU acceleration nodes optimized for cryptanalytic round-reduction algorithms.

Generating Valid Colliding PDF Payloads

A critical challenge in generating a meaningful collision was crafting two valid PDF documents with identical SHA-1 digests that display completely different visual content. Researchers structured the PDF header and indirect object tables around identical collision blocks, ensuring that internal parser offsets would interpret the differing computational payloads into distinct visible rendered pages without invalidating document structure.

Fallout Across Developer Tools and Infrastructure

The public disclosure of the SHAttered collision revealed immediate security consequences across software ecosystems that still relied on SHA-1 integrity checks. Apache Subversion (SVN) repositories suffered immediate corruption when collision test files were committed, and critical developer toolchains experienced parsing panics. Bursztein explains how Google deployed counter-cryptanalysis filters in Gmail and Google Drive to detect shattered collision blocks before malicious files could be delivered, and emphasizes the urgent necessity of transitioning enterprise infrastructure to SHA-256 and SHA-3.

Related talks