Cryptography Reference
In-Depth Information
assuming, toward the contradiction, that g (resp., g ) can be efficiently inverted with
unallowable success probability. Contradiction is derived by deducing that f can be
efficiently inverted with unallowable success probability. In other words, inverting f
is “reduced” to inverting g (resp., g ). The term “reduction” is used here in a stronger-
than-standard sense. Here a reduction needs to preserve the success probability of the
algorithms. This kind of argument is called a reducibility argument .
Proof: We first prove that g and g can be computed in polynomial time. To this
end we use the fact that I is a polynomial-time-enumerable set, which implies that
we can decide membership in I in polynomial time (e.g., by observing that m
I
if and only if s I ( m
1)
=
m ). It follows that on input x one can find in poly-
nomial time the largest m
I . Computing g ( x ) amounts
to finding this m and applying the function f to the m -bit prefix of x . Similarly
for g .
We next prove that g maintains the hardness-to-invert property of f . A similar
proof establishes the hardness-to-invert property of g . For the sake of brevity, we
present here only the proof for the case that f is strongly one-way. The proof for
the case that f is weakly one-way is analogous.
The proof proceeds by contradiction. We assume, contrary to the claim (of
the proposition), that there exists an efficient algorithm that inverts g with suc-
cess probability that is not negligible. We use this inverting algorithm (for g )to
construct an efficient algorithm that inverts f with success probability that is not
negligible, hence deriving a contradiction (to the hypothesis of the proposition).
In other words, we show that inverting f (with unallowable success probability)
is efficiently reducible to inverting g (with unallowable success probability) and
hence conclude that the latter is not feasible. The reduction is based on the obser-
vation that inverting g on images of arbitrary lengths yields inverting g also on
images of lengths in I , and that on such lengths g collides with f .
Intuitively, any algorithm inverting g can be used to invert f as follows. On
input ( y
≤|
x
|
that satisfies m
,
1 n ), where y is supposedly in the image of
f ( U n )
=
g ( U m ) for any
m
1 m ) and output
the longest prefix with length in I of the string that the g -inverter returns (e.g., if the
g -inverter returns an m -bit-long string, then we output its n -bit-long prefix). Thus,
our success probability in inverting f on f ( U n ) equals the success probability of
the g -inverter on g ( U m ). The question is which m ∈{ n ,..., s I ( n ) 1 } we should
use, and the answer is to try them all (capitalizing on the fact that s I ( n ) = poly( n )).
Note that the integers are partitioned to intervals of the form [ n ,..., s I ( n ) 1],
each associated with a single n I . Thus, the success probability of any
g -inverter on infinitely many lengths m ∈ N translates to the success probability
of our f -inverter on infinitely many lengths n I . Details follow.
Given an algorithm B for inverting g , we construct an algorithm A for invert-
ing f such that A has complexity and success probability related to those for B .
(For simplicity, we shall assume that B ( y
∈{
n
,...,
s I ( n )
1
}
, we can invoke the g -inverter on input ( y
,
1 m )
m
}
,
∈{
0
,
1
}
holds for all y
∈{
0
,
1
and m ∈ N
; this assumption is immaterial, and later we comment about this aspect
in two footnotes.) Algorithm A uses algorithm B as a subroutine and proceeds
37
Search WWH ::




Custom Search