Cryptography Reference
In-Depth Information
then deterministically chooses one of the values s i (for example, by ordering the roots as
integers s 1 <s 2 <s 3 <s 4 and then generating an integer i
∈{
1 , 2 , 3 , 4
}
using a pseudoran-
( e,f, ( ef ) 1 s i (mod N )).
It is crucially important that, if one signs the same message twice, then the same signature
is output. To verify a signature s
dom number generator on input m ). The signature is the triple s
=
=
( e,f,s ) for public key N and message m one computes
H ( m ) and then checks that ef s 2
H ( m )(mod N ).
Exercise 24.6.4 Show that if a signer outputs two signatures ( e 1 ,f 1 ,s 1 ) and ( e 2 ,f 2 ,s 2 )for
the same message m such that s 1 ≡±
s 2 (mod N ) then one can factor the modulus.
Exercise 24.6.5 Show that it is not necessary to compute the Jacobi symbol ( H ( m N )
when generating Rabin-Williams signatures as above. Instead, one can compute
H ( m ) ( p + 1) / 4 (mod p ) and H ( m ) ( q + 1) / 4 (mod q ) as is needed to compute the s i and determine
e and f with only a little additional computation.
Theorem 24.6.6 The Rabin-Williams signature scheme sketched above has UF-CMA
security in the random oracle model (i.e., if H is replaced by a random oracle) if factoring
Williams integers is hard and if the pseudorandom generator is indistinguishable from a
random function.
Proof (Sketch) Let A be a perfect adversary against the Rabin-Williams signature scheme
and let N be a Williams integer to be factored. The simulator runs the adversary A on N .
The simulator must handle the queries made by A to the random oracle. To do this it
maintains a list of hash values, which is initially empty. When A queries H on m ,the
simulator first checks whether m appears on the list of hash values, and, if it does, responds
with the same value as previously. If H has not been previously queried on m , the simulator
chooses random s
) , e
ef s 2
(
Z
/N
Z
∈{−
1 , 1
}
, f
∈{
1 , 2
}
and computes h
=
(mod N ).
h< 2 κ then return h and store ( m ,e,f,s,h ) in the list. If h is too big then repeat
with a different choice for ( s,e,f ). Since N< 2 κ + O (log( κ )) the expected number of trials is
polynomial in log( N ).
When A makes a signature query on m , the simulator first queries H ( m ) and gets the
values ( e,f,s ) from the hash list such that H ( m )
If 0
ef s 2 (mod N ). The simulator can
therefore answer with ( e,f,s ), which is a valid signature. (It is necessary to show that the
values ( e,f,s ) output in this way are indistinguishable from the values output in the real
cryptosystem, and this requires that the pseudorandom choice of s from among the four
possible roots be computationally indistinguishable from random.)
Finally, A outputs a signature ( e ,f ,s ) on a message m . Recalling the values ( e,f,s )
from the construction of H ( m )wehave e =
e , f =
f and ( s ) 2
s 2
(mod N ). With
probability 1 / 2 we can factor N as gcd( N,s
s ). We refer to Section 6 of Bernstein [ 44 ]
for the full details.
Exercise 24.6.7 Show that if one can find a collision for the hash function H in Bernstein's
variant of Rabin-Williams signatures and one has access to a signing oracle then one can
factor N with probability 1 / 2.
Search WWH ::




Custom Search