See http://www.win.tue.nl/cccc/sha-1-challenge.html for more information about the contest, the winning team, the CPUs and GPUs used, the difficulty of finding a string at distance 30, etc. The same team also found a string at distance 31 (matching two other submissions), two strings at distance 32 (matching four other submissions), and several strings at distance 33.
This page is for programmers who would like to see NearSHA, the software used by the winning team. I wrote NearSHA and hereby place it into the public domain. Warning: I wrote NearSHA in a rush (starting 2009.07.18), and compromised quality in several ways for the sake of minimizing development time.
search2.cpp, 2725 cycles/hash: first serious search program with a built-in SHA-1 implementation.
search3.cpp, 2082 cycles/hash (1492 cycles/hash in SHA-1 block processing): unrolled inner loop.
search4.cpp, 1430 cycles/hash (1162 cycles/hash in SHA-1 block processing): moved endianness and padding to the caller.
search5.cpp, 553 cycles/hash: moved endianness and padding out of the main loop; and precomputed first block.
search6.cpp, 235 cycles/hash: vectorized.
search7.cpp, 210 cycles/hash: tweaked for better instruction scheduling.
search8.cpp, 201 cycles/hash: precomputed some second-block results, under the assumption that the string has length 69.