## Merkle puzzles revisited - finding matching elements between lists

##### Abstract

Consider the following problem. A and B 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/log2N the protocol requires on the order of log2N 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.