SHA-1 collision

The full collision is a result of two subsequent manipulations of the compression function. The first manipulation brings the hash function's internal state only slightly out of sync, while the second manipulation (which is the actual collision) brings them back into sync.

An interesting thing to note is that although the messages of the first and second blocks are different, the difference pattern between them is the same.

Legend:

First message block

good.pdf bad.pdf difference good.pdf bad.pdf difference
message state
schedule
hash

Second message block (collision)

good.pdf bad.pdf difference good.pdf bad.pdf difference
message state
schedule
hash