As we said above, the most basic primitive for cryptographic applications is a one-way function which is “easy” to compute but “hard” to invert. (For public key encryption, it must also have a trapdoor.) By “easy”, we mean that the function can be computed by a probabilistic polynomial time algorithm, and by “hard” that any probabilistic polynomial time (PPT) algorithm attempting to invert it will succeed with “small” probability (where the probability ranges over the elements in the domain of the function.) Thus, to qualify as a potential candidate for a one-way function, the hardness of inverting the function should not hold only on rare inputs to the function but with high probability over the inputs.
Several candidates which seem to posses the above properties have been proposed.
Several candidates which seem to posses the above properties have been proposed.
1. Factoring. The function
f : (x,y) 7→ xy is conjectured to be a one way function. The asymptotically proven fastest factoring algorithms to date are variations on Dixon’s random squares algorithm [131]. It is a randomized algorithm with running time L(n)√2 where L(n) = e√lognloglogn. The number field sieve by Lenstra, Lenstra, Manasee, and Pollard with modifications by Adlemann and Pomerance is a factoring algorithm proved under a certain set of assumptions to factor integers in expected time
[133, 3].
2. The discrete log problem.
Let p be a prime. The multiplicative group Z∗ p = ({x < p|(x,p) = 1},·mod p)is cyclic, so that Z∗ p ={gi mod p|1≤i≤p−1} for some generator g ∈Z∗ p . The function f : (p,g,x)7→( gx mod p,p,g) where p is a prime and g is a generator for Z∗ p is conjectured to be a one-way function. Computing f(p,g,x) can be done in polynomial time using repeated squaring. However, The fastest known proved solution for its inverse, called the discrete log problem is the index-calculus algorithm, with expected running time L(p)√2 (see [131]). An interesting problem is to find an algorithm which will generate a prime p and a generator g for Z∗ p. It is not known how to find generators in polynomial time. However, in [8], E. Bach shows how to generate random factored integers (in a given range N 2 ...N).
Coupled with a fast primality tester (as found in [131], for example), this can be used to efficiently generate random tuples (p − 1,q1,...,qk) with p prime. Then picking g ∈ Z∗ p at random, it can be checked if (g,p−1) = 1, ∀qi, g p−1 qi mod p 6= 1, and gp−1 mod p = 1, in which case order(g) = p−1( order(g) =|{gi mod p|1≤i≤p−1}|). It can be shown that the density ofZ∗ p generators is high so that few guesses are required. The problem of efficiently finding a generator for a specific Z∗ p is an intriguing open research problem.
3. Subset sum.
Let ai ∈ {0,1}n,~a = (a1,...,an),si ∈ {0,1},~s = (s1,...,sn), and let f : (~a,~s) 7→ (~a,Pn i=1 siai). An inverse of (~a,Pn i=1 siai) under f is any (~a,~s0 i) so thatPn i=1 siai =Pn i=1 s0 iai. This function f is a candidate for a one way function. The associated decision problem (given (~a,y), does there exists ~s so thatPn i=1 siai = y?) is NP-complete. Of course, the fact that the subset-sum problem is NP-complete cannot serve as evidence to the one-wayness of fss. On the other hand, the fact that the subset-sum problem is easy for special cases (such as “hidden structure” and low density) can not serve as evidence for the weakness of this proposal. The conjecture that f is one-way is based on the failure of known algorithm to handle random high density instances. Yet, one has to admit that the evidence in favor of this candidate is much weaker than the evidence in favor of the two previous ones.
4. DES with fixed message.
Fix a 64 bit message M and define the function f(K) = DESK(M) which takes a 56 bit key K to a 64 bit output f(K). This appears to be a one-way function. Indeed, this construction can even be proven to be one-way assuming DES is a family of pseudorandom functions, as shown by Luby and Rackoff [139].
5. RSA.
This is a candidate one-way trapdoor function. Let N = pq be a product of two primes. It is believed that such an N is hard to factor. The function is f(x) = xe mod N where e is relatively prime to (p−1)(q−1). The trapdoor is the primes p,q, knowledge of which allows one to invert f efficiently. The function f seems to be one-way. To date the best attack is to try to factor N, which seems computationally infeasible.
