The result announced by Google and CWI researchers on February 23, 2017 was a collision: two different PDFs produced the same SHA-1 digest, the compact value calculated from a file. The team constructed a special PDF prefix for the attack. This demonstrated that matching SHA-1 values need not establish that two files have identical contents. [announcing-first-sha1-collision]

It was not a demonstration of recovering any chosen original file from its digest, or of rewriting any existing signed document at will. The distinction matters when reading claims that SHA-1 was broken. The reported technique made a particular security assumption fail; it did not establish every possible attack against every system that used the algorithm. [announcing-first-sha1-collision]

Google reported 6,500 CPU-years of computation for the first phase and 110 GPU-years for the second. Those figures measure computing work, not how many calendar years the project lasted. The announcement described two years of research. It also promised a 90-day wait before releasing code for generating colliding PDF pairs subject to preconditions; the promise was not evidence of completed code publication. [announcing-first-sha1-collision]

Deployment is a separate question. Google’s November 16, 2016 Chrome notice planned public-CA SHA-1 certificate distrust through Chrome 56’s release process, rather than a date-triggered switch. It did not measure installed-browser behavior on February 23. Both posts come from Google, with CWI researchers contributing to the collision work. To evaluate a security claim, identify its object: a demonstrated file pair, aggregate computing effort, a future disclosure or a client release policy. One cannot stand in as proof of another. [announcing-first-sha1-collision][sha-1-certificates-in-chrome]

Source documents

  1. Announcing the first SHA1 collisionhttps://security.googleblog.com/2017/02/announcing-first-sha1-collision.html
  2. SHA-1 Certificates in Chromehttps://security.googleblog.com/2016/11/sha-1-certificates-in-chrome.html