  Grover's algorithm is normally presented as a method of searching a database,
however it would be more accurately described as a method of identifying
elements of an interval of the integers which satisfy some logical clause - an
example might be identifying binary strings which correspond to the solutions
of a Sudoku problem. In this paper we present the first method of performing a
true database search using Grover's search algorithm, by first creating a
mapping from a set of indices in the range 0:2^n-1 to a set of database
elements, then applying the clause to these elements. We then demonstrate the
feasibility of an attack against the Diffie-Hellman cryptosystem based on a
Grover's search of a database of candidate solutions generated via the number
field sieve algorithm.
