Finding partial hash collisions by brute force parallel programming

A hash function hashes a longer message of arbitrary length into a much shorter bit string of fixed length, called a hash. Inevitably, there will be a lot of different messages being hashed to the same or similar hash. We call this a hash collision or a partial hash collision. By utilizing multiple processors from the CUNY High Performance Computing Center's clusters, we can locate partial collisions for the hash functions MD5 and SHA1 by brute force parallel programming in C with MPI library. The brute force method of finding a second preimage collision entails systematically computing all of the permutations, hashes, and Hamming distances of the target preimage. We explore varying size target strings and the number of processors allocation to examine the effect these variables have on finding partial collisions. The results show that for the same message space the search time for the partial collisions is roughly halved for each doubling of the number of processors; the longer the message is the better partial collisions are produced.

[1]  Ralph C. Merkle,et al.  One Way Hash Functions and DES , 1989, CRYPTO.

[2]  Xiaowen Zhang,et al.  Implementation of randomize-then-combine constructed hash function , 2014, 2014 23rd Wireless and Optical Communication Conference (WOCC).

[3]  Ivan Damgård,et al.  A Design Principle for Hash Functions , 1989, CRYPTO.

[4]  Douglas R. Stinson,et al.  Cryptography: Theory and Practice , 1995 .

[5]  Mark Stamp,et al.  Information security - principles and practice , 2005 .

[6]  Yehuda Lindell,et al.  Introduction to Modern Cryptography , 2004 .

[7]  Xiaoyun Wang,et al.  Finding Collisions in the Full SHA-1 , 2005, CRYPTO.

[8]  Xiaowen Zhang,et al.  Hash function-based secret sharing scheme designs , 2011, Secur. Commun. Networks.

[9]  Paul C. van Oorschot,et al.  Parallel Collision Search with Cryptanalytic Applications , 2013, Journal of Cryptology.

[10]  Marc Stevens Single-block collision attack on MD5 , 2012, IACR Cryptol. ePrint Arch..