Merkle Puzzles Revisited — Finding Matching Elements between Lists
Consider the following problem. A and B each have a N-element set of bit-strings. They wish to find all collisions, in other words to find the common strings of their sets or to establish that there are none. How much data must A and B exchange to do this? Problems of this type arise in the context of Merkle puzzles, for example where A and B propose to use the collision between two randomly constructed lists to construct a cryptographic key. Here we give a protocol for finding all the collisions. Provided the number of collisions is small relative to N/ log2 N the protocol requires on the order of log2 N messages and the total amount of data which A and B need exchange is about 4.5N bits. The collision set can also be determined in three messages containing a total of at most 9N bits provided N < 21023.