
CUUS063 main CUUS063 Goldreich 978 0 521 88473 0 March 31, 2008 18:49
APPENDIX C
authentication) does not require a trapdoor property. Three central paradigms used in
the construction of secure signature schemes are the “refreshing” of the “effective”
signing-key, the usage of an “authentication tree,” and the “hashing paradigm” (all to
be discussed in the sequel). In addition to being used in the proof of Theorem C.16, these
three paradigms are of independent interest.
The refreshing paradigm. Introduced in [110], the refreshing paradigm is aimed at
limiting the potential dangers of chosen message attacks. This is achieved by signing the
actual document using a newly (and randomly) generated instance of the signature scheme,
and authenticating (the verification-key of) this random instance with respect to the fixed
and public verification-key.
16
Intuitively, the gain in terms of security is that a full-fledged
chosen message attack cannot be launched on a fixed instance of the underlying signature
schemes (i.e., on the fixed verification-key that was published by the user and is known
to the attacker). All that an attacker may obtain (via a chosen message attack on the new
scheme) is signatures, relative to the original signing-key (which is coupled with the fixed
and public verification-key), to random strings (or rather random verification-keys) as well
as additional signatures that are each relative to a random and independently distributed
signing-key (which is coupled with a freshly generated verification-key).
Authentication trees. The security benefits of the refreshing paradigm are amplified when
combining it with the use of authentication trees. The idea is to use the public verification-
key (only) for authenticating several (e.g., two) fresh instances of the signature scheme,
use each of these instances for authenticating several additional fresh instances, and so
on. Thus, we obtain a tree of fresh instances of the basic signature scheme, where each
internal node authenticates its children. We can now use the leaves of this tree for signing
actual documents, where each leaf is used at most once. Thus, a signature to an actual
document consists of
1. a signature to this document authenticated with respect to the verification-key asso-
ciated with some leaf, and
2. a sequence of verification-keys associated with the nodes along the path from the
root to this leaf, where each such verification-key is authenticated with respect to the
verification-key of its parent.
We stress that the same signature, relative to the key of the parent node, is used for au-
thenticating the verification-keys of all its children. Thus, each instance of the signature
scheme is used for signing at most one string (i.e., a single sequence of verification-
keys if the instance resides in an internal node, and an actual document if the instance
resides in a leaf).
17
Hence, it suffices to use a signature scheme that is secure as long
as it is applied for legitimately signing a single string. Such signature schemes, called
16
That is, consider a basic signature scheme (G, S, V ) used as follows. Suppose that the user U has generated a
key-pair ( s,v) ← G(1
n
), and has placed the verification-key v on a public-file. When a party asks U to sign some
document α, the user U generates a new (“fresh”) key-pair (s
,v
) ← G(1
n
), signs v
using the original signing-key
s, signs α using the new signing-key s
, and presents (S
s
(v
),v
, S
s
(α)) as a signature to α. An alleged signature,
(β
1
,v
,β
2
), is verified by checking whether both V
v
(v
,β
1
) = 1andV
v
(α, β
2
) = 1 hold.
17
A naive implementation of the foregoing (full-fledged) signature scheme calls for storing in (secure) memory
all the instances of the basic (one-time) signature scheme that are generated throughout the entire signing process
(which refers to numerous documents). However, we note that it suffices to be able to reconstruct the random coins
used for generating each of these instances, and the former can be determined by a pseudorandom function (applied
510