The MD6 Message-Digest Algorithm is a cryptographic hash function. It uses a Merkle tree-like structure to allow for immense parallel computation of hashes for very long inputs. Authors claim a performance of 28 cycles per byte for MD6-256 on an and provable resistance against . The of the was released under .

Speeds in excess of 1 GB/s have been reported to be possible for long messages on 16-core CPU architecture.

MD6 was submitted to the NIST SHA-3 competition. However, on July 1, 2009, Rivest posted a comment at NIST that MD6 is not yet ready to be a candidate for SHA-3 because of speed issues, a “gap in the proof that the submitted version of MD6 is resistant to differential attacks”, and an inability to supply such a proof for a faster reduced-round version, although Rivest also stated at the MD6 website that it is not withdrawn formally. MD6 did not advance to the second round of the SHA-3 competition. In September 2011, a paper presenting an improved proof that MD6 and faster reduced-round versions are resistant to differential attacks was posted to the MD6 website.

The algorithm’s first known production use was in the worm in December 2008; the worm’s authors subsequently updated Conficker with the corrected implementation once the buffer overflow vulnerability became known.

See also