Top Qs
Timeline
Chat
Perspective

Claw finding problem

From Wikipedia, the free encyclopedia

Remove ads

The claw finding problem is a classical problem in complexity theory, with several applications in cryptography. In short, given two functions f, g, viewed as oracles, the problem is to find x and y such as f(x) = g(y). The pair (x, y) is then called a claw. Some problems, especially in cryptography, are best solved when viewed as a claw finding problem, hence any algorithmic improvement to solving the claw finding problem provides a better attack on cryptographic primitives such as hash functions.

Remove ads

Definition

Let be finite sets, and , two functions. A pair is called a claw if . The claw finding problem is defined as to find such a claw, given that one exists.

If we view as random functions, we expect a claw to exist iff . More accurately, there are exactly pairs of the form with ; the probability that such a pair is a claw is . So if , the expected number of claws is at least 1.

Remove ads

Algorithms

Summarize
Perspective

If classical computers are used, the best algorithm is similar to a Meet-in-the-middle attack, first described by Diffie and Hellman.[1] The algorithm works as follows: assume . For every , save the pair in a hash table indexed by . Then, for every , look up the table at . If such an index exists, we found a claw. This approach takes time and memory .

If quantum computers are used, Seiichiro Tani showed that a claw can be found in complexity

if and

if .[2]

Shengyu Zhang showed that asymptotically these algorithms are the most efficient possible.[3]

Remove ads

Applications

As noted, most applications of the claw finding problem appear in cryptography. Examples include:

References

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads