Lecture Notes in Computer Science 2139: Edited by G. Goos, J. Hartmanis, and J. Van Leeuwen
Lecture Notes in Computer Science 2139: Edited by G. Goos, J. Hartmanis, and J. Van Leeuwen
Advances in Cryptology –
CRYPTO 2001
13
Series Editors
Joe Kilian
Yianilos Labs.
707 State Rd., Rt. 206, Suite 212
Princeton, NJ 08540, USA
E-mail: [email protected]
Cataloging-in-Publication Data applied for
CR Subject Classification (1998): E.3, G.2.1, F.2.1-2, D.4.6, K.6.5, C.2, J.1
ISSN 0302-9743
ISBN 3-540-42456-3 Springer-Verlag Berlin Heidelberg New York
This work is subject to copyright. All rights are reserved, whether the whole or part of the material is
concerned, specifically the rights of translation, reprinting, re-use of illustrations, recitation, broadcasting,
reproduction on microfilms or in any other way, and storage in data banks. Duplication of this publication
or parts thereof is permitted only under the provisions of the German Copyright Law of September 9, 1965,
in its current version, and permission for use must always be obtained from Springer-Verlag. Violations are
liable for prosecution under the German Copyright Law.
Springer-Verlag Berlin Heidelberg New York
a member of BertelsmannSpringer Science+Business Media GmbH
http://www.springer.de
Crypto 2001, the 21st Annual Crypto conference, was sponsored by the Inter-
national Association for Cryptologic Research (IACR) in cooperation with the
IEEE Computer Society Technical Committee on Security and Privacy and the
Computer Science Department of the University of California at Santa Barbara.
The conference received 156 submissions, of which the program committee
selected 34 for presentation; one was later withdrawn. These proceedings contain
the revised versions of the 33 submissions that were presented at the conference.
These revisions have not been checked for correctness, and the authors bear full
responsibility for the contents of their papers.
The conference program included two invited lectures. Mark Sherwin spoke
on, “Quantum information processing in semiconductors: an experimentalist’s
view.” Daniel Weitzner spoke on, “Privacy, Authentication & Identity: A recent
history of cryptographic struggles for freedom.” The conference program also
included its perennial “rump session,” chaired by Stuart Haber, featuring short,
informal talks on late–breaking research news.
As I try to account for the hours of my life that flew off to oblivion, I realize
that most of my time was spent cajoling talented innocents into spending even
more time on my behalf. I have accumulated more debts than I can ever hope to
repay. As mere statements of thanks are certainly insufficient, consider the rest
of this preface my version of Chapter 11.
I would like to first thank the many researchers from all over the world who
submitted their work to this conference. Without them, Crypto is just a pile of
shrimp and chocolate covered strawberries.
I thank David Balenson, the general chair, for shielding me from innumerable
logistical headaches, and showing great generosity in supporting my efforts.
Selecting from so many submissions is a daunting task. My deepest thanks
go to the members of the program committee, for their knowledge, wisdom, and
near-masochistic work ethic. We in turn have relied heavily on the expertise of
the many outside reviewers who assisted us in our deliberations. My thanks to
all those listed on the following pages, and my thanks and apologies to any I
have missed.
I thank Rebecca Wright for hosting the program committee meeting in New
York City, AT&T for providing the space, and Sandy Barbu for helping out
with the local arrangements. Thanks also go to Ran Canetti, my favorite native
culinary guide, wherever I go, for organizing the post–deliberations dinner.
I thank the people who, by their past and continuing work, have greatly
streamlined the submission and review process. All but one of the submissions
were handled using Chanathip Namprempre’s web-based submission software.
Reviews were administered using software written by Wim Moreau and Joris
Claessens, developed under the guidance of Bart Preneel. These software packa-
ges have made the process idiot proof, and nearly theorist-proof. My thanks also
go to Sam Rebelsky for writing the email-based predecessor of the submission
VI Preface
in cooperation with
IEEE Computer Society Technical Committee on Security and Privacy,
Computer Science Department, University of California, Santa Barbara
General Chair
David Balenson, NAI Labs, Network Associates, Inc., USA
Program Chair
Joe Kilian, Yianilos Labs, USA
Program Committee
Advisory Members
Foundations
On the (Im)possibility of Obfuscating Programs . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Boaz Barak, Oded Goldreich, Rusell Impagliazzo, Steven Rudich,
Amit Sahai, Salil Vadhan, and Ke Yang
Universally Composable Commitments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Ran Canetti and Marc Fischlin
Traitor Tracing
Revocation and Tracing Schemes for Stateless Receivers . . . . . . . . . . . . . . . . . . . 41
Dalit Naor, Moni Naor, and Jeff Lotspiech
Self Protecting Pirates and Black-Box Traitor Tracing . . . . . . . . . . . . . . . . . . . . 63
Aggelos Kiayias and Moti Yung
Multi-party Computation
Minimal Complete Primitives for Secure Multi-party Computation . . . . . . . . 80
Matthias Fitzi, Juan A. Garay, Ueli Maurer, and Rafail Ostrovsky
Robustness for Free in Unconditional Multi-party Computation . . . . . . . . . . . 101
Martin Hirt and Ueli Maurer
Secure Distributed Linear Algebra in a Constant Number of Rounds . . . . . . 119
Ronald Cramer and Ivan Damgård
Two-Party Computation
Two-Party Generation of DSA Signatures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Philip Mackenzie and Michael K. Reiter
Oblivious Transfer in the Bounded Storage Model . . . . . . . . . . . . . . . . . . . . . . . . . 155
Yan Zong Ding
Parallel Coin-Tossing and Constant-Round Secure Two-Party
Computation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Yehuda Lindell
Elliptic Curves
Faster Point Multiplication on Elliptic Curves with Efficient
Endomorphisms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Robert P. Gallant, Robert J. Lambert, and Scott A. Vanstone
On the Unpredictability of Bits of the Elliptic Curve Diffie–Hellman
Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Dan Boneh and Igor E. Shparlinski
X Table of Contents
Signature Schemes
Forward-Secure Signatures with Optimal Signing and Verifying . . . . . . . . . . . 332
Gene Itkis and Leonid Reyzin
Improved Online/Offline Signature Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Adi Shamir and Yael Tauman
Protocols
An Efficient Scheme for Proving a Shuffle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Jun Furukawa and Kazue Sako
An Identity Escrow Scheme with Appointed Verifiers. . . . . . . . . . . . . . . . . . . . . . 388
Jan Camenisch and Anna Lysyanskaya
Session-Key Generation Using Human Passwords Only . . . . . . . . . . . . . . . . . . . . 408
Oded Goldreich and Yehuda Lindell
Cryptanalysis
Cryptanalysis of RSA Signatures with Fixed-Pattern Padding . . . . . . . . . . . . . 433
Eric Brier, Christophe Clavier, Jean-Sébastien Coron, and
David Naccache
Correlation Analysis of the Shrinking Generator . . . . . . . . . . . . . . . . . . . . . . . . . . 440
Jovan D. Golić
Table of Contents XI
1 Introduction
The past few decades of cryptography research has had amazing success in
putting most of the classical cryptographic problems — encryption, authenti-
cation, protocols — on complexity-theoretic foundations. However, there still
remain several important problems in cryptography about which theory has had
little or nothing to say. One such problem is that of program obfuscation. Roughly
speaking, the goal of (program) obfuscation is to make a program “unintelligi-
ble” while preserving its functionality. Ideally, an obfuscated program should be
a “virtual black box,” in the sense that anything one can compute from it one
could also compute from the input-output behavior of the program.
The hope that some form of obfuscation is possible arises from the fact that
analyzing programs expressed in rich enough formalisms is hard. Indeed, any
programmer knows that total unintelligibility is the natural state of computer
programs (and one must work hard in order to keep a program from deterio-
rating into this state). Theoretically, results such as Rice’s Theorem and the
hardness of the Halting Problem and Satisfiability all seem to imply that
the only useful thing that one can do with a program or circuit is to run it (on
inputs of one’s choice). However, this informal statement is, of course, an over-
generalization, and the existence of obfuscators requires its own investigation.
To be a bit more clear (though still informal), an obfuscator O is an (effi-
cient, probabilistic) “compiler” that takes as input a program (or circuit) P and
produces a new program O(P ) satisfying the following two conditions:
Fig. 1. The winning entry of the 1998 International Obfuscated C Code Contest, an
ASCII/Morse code translator by Frans van Dorsselaer [vD98] (adapted for this paper).
On the (Im)possibility of Obfuscating Programs 3
The Basic Impossibility Result. Most of the above applications rely on the in-
tuition that an obfuscated program is a “virtual black box.” That is, anything
one can efficiently compute from the obfuscated program, one should be able to
efficiently compute given just oracle access to the program.
Our main result shows that it is impossible to achieve this notion of obfus-
cation. We prove this by constructing (from any one-way function) a family F
of functions which is inherently unobfuscatable in the sense that there is some
property π : F → {0, 1} such that:
– Given any program (circuit) that computes a function f ∈ F, the value π(f )
can be efficiently computed;
– Yet, given oracle access to a (randomly selected) function f ∈ F, no efficient
algorithm can compute π(f ) much better than by random guessing.
Thus, there is no way of obfuscating the programs that compute these func-
tions, even if (a) the obfuscation is meant to hide only one bit of information
about the function (namely π(f )), and (b) the obfuscator itself has unbounded
computation time.
We believe that the existence of such functions shows that the “virtual black
box” paradigm for obfuscators is inherently flawed. Any hope for positive re-
sults about obfuscator-like objects must abandon this viewpoint, or at least be
reconciled with the existence of functions as above.
1.3 Discussion
Our work rules out the standard, “virtual black box” notion of obfuscators as
impossible, along with several of its applications. However, it does not mean that
6 B. Barak et al.
In Section 2, we give some basic definitions along with (very weak) definitions
of obfuscators. In Section 3, we prove the impossibility of obfuscators by con-
structing an inherently unobfuscatable function ensemble. Other extensions and
results are deferred to the full version of the paper [BGI+ 01].
On the (Im)possibility of Obfuscating Programs 7
2 Definitions
2.1 Preliminaries
2.2 Obfuscators
Since we will be proving impossibility results, our results are strongest when
we adopt the weakest requirement (i.e., the last one). This yields two defini-
tions for obfuscators, one for programs defined by Turing machines and one for
programs defined by circuits.
Thus, when we prove our impossibility result for circuit obfuscators, the impos-
sibility of TM obfuscators will follow. However, considering TM obfuscators will
be useful as motivation for the proof.
We note that, from the perspective of applications, Definitions 2.1 and 2.2
are already too weak to have the wide applicability discussed in the introduction.
The point is that they are nevertheless impossible to satisfy (as we will prove).
1
Pr [S f (1k ) = π(f )] ≤ + neg(k)
R
f ←Hk 2
A(C) = π(f )
10 B. Barak et al.
We prove in Theorem 3.9 that, assuming one-way functions exist, there exists
an inherently unobfuscatable function ensemble. This implies that, under the
same assumption, there is no obfuscator that satisfies Definition 2.2 (actually
we prove the latter fact directly in Theorem 3.6). Since the existence of an
efficient obfuscator implies the existence of one-way functions (Lemma 3.7), we
conclude that efficient obfuscators do not exist (unconditionally).
However, the existence of inherently unobfuscatable function ensemble has
even stronger implications. As mentioned in the introduction, these functions can
not be obfuscated even if we allow the following relaxations to the obfuscator:
1. As mentioned above, the obfuscator does not have to run in polynomial time
— it can be any random process.
2. The obfuscator has only to work for functions in Supp(Hk ) and only for a
non-negligible fraction of these functions under the distributions Hk .
3. The obfuscator has only to hide an a priori fixed property π from an a priori
fixed adversary A.
Structure of the Proof of the Main Impossibility Result. We shall prove our
result by first defining obfuscators that are secure also when applied to several
(e.g., two) algorithms and proving that they do not exist. Then we shall modify
the construction in this proof to prove that TM obfuscators in the sense of
Definition 2.1 do not exist. After that, using an additional construction (which
requires one-way functions), we will prove that a circuit obfuscator as defined in
Definition 2.2 does not exist if one-way functions exist. We will then observe that
our proof actually yields an unobfuscatable function ensemble (Theorem 3.9).
Proof. We begin by showing that 2-TM obfuscators do not exist. Suppose, for
sake of contradiction, that there exists a 2-TM obfuscator O. The essence of
this proof, and in fact of all the impossibility proofs in this paper, is that there
is a fundamental difference between getting black-box access to a function and
getting a program that computes it, no matter how obfuscated: A program is
a succinct description of the function, on which one can perform computations
(or run other programs). Of course, if the function is (exactly) learnable via
oracle queries (i.e., one can acquire a program that computes the function by
querying it at a few locations), then this difference disappears. Hence, to get
our counterexample, we will use a function that cannot be exactly learned with
oracle queries. A very simple example of such an unlearnable function follows.
For strings α, β ∈ {0, 1}k , define the Turing machine
def β x=α
Cα,β (x) =
0k otherwise
Observe that any poly(k)-time algorithm S which has oracle access to Cα,β
and Dα,β has only exponentially small probability (for a random α and β) of
querying either oracle at a point where its value is nonzero. Hence, if we let Zk
be a Turing machine that always outputs 0k , then for every PPT S,
Pr S Cα,β ,Dα,β (1k ) = 1 − Pr S Zk ,Dα,β (1k ) = 1 ≤ 2−Ω(k) , (2)
where the probabilities are taken over α and β selected uniformly in {0, 1}k and
the coin tosses of S. On the other hand, by the definition of A we have:
The combination of Equations (1), (2), and (3) contradict the fact that O is a
2-TM obfuscator.
12 B. Barak et al.
In the above proof, we ignored the fact that we had to truncate the running
times of A and Dα,β . When doing so, we must make sure that Equations (1) and
(3) still hold. Equation (1) involves executing (a) A(O(Dα,β ), O(Cα,β )), which in
turn amounts to executing (b) O(Dα,β )(O(Cα,β )). By definition (b) has the same
functionality as Dα,β (O(Cα,β )), which in turn involves executing (c) O(Cα,β )(α).
Yet the functionality requirement of the obfuscator definition assures us that (c)
has the same functionality as Cα,β (α). By the polynomial slowdown property of
obfuscators, execution (c) only takes poly(10 · k) = poly(k) steps, which means
that Dα,β (O(Cα,β )) need only run for poly(k) steps. Thus, again applying the
polynomial slowdown property, execution (b) takes poly(k) steps, which finally
implies that A need only run for poly(k) steps. The same reasoning holds for
Equation (3), using Zk instead of Cα,β .3 Note that all the polynomials involved
are fixed once we fix the polynomial p(·) of the polynomial slowdown property.
The proof for the 2-circuit case is very similar to the 2-TM case, with a
related, but slightly different subtlety. Suppose, for sake of contradiction, that
O is a 2-circuit obfuscator. For k ∈ N and α, β ∈ {0, 1}k , define Zk , Cα,β and
Dα,β in the same way as above but as circuits rather than TMs, and define
an adversary A by A(C, D) = D(C). (Note that the issues of A and Dα,β ’s
running times go away in this setting, since circuits can always be evaluated in
time polynomial in their size.) The new subtlety here is that the definition of
A as A(C, D) = D(C) only makes sense when the input length of D is larger
than the size of C (note that one can always pad C to a larger size). Thus, for
the analogues of Equations (1) and (3) to hold, the input length of Dα,β must
be larger than the sizes of the obfuscations of Cα,β and Zk . However, by the
polynomial slowdown property of obfuscators, it suffices to let Dα,β have input
length poly(k) and the proof works as before.
Proof Sketch: Suppose, for sake of contradiction, that there exists a TM ob-
fuscator O. For α, β ∈ {0, 1}k , let Cα,β , Dα,β , and Zk be the TMs defined in the
proof of Proposition 3.3. Combining these, we get the TMs Fα,β = Cα,β #Dα,β
and Gα,β = Zk #Cα,β .
We consider an adversary A analogous to the one in the proof of Proposi-
tion 3.3, augmented to first decompose the program it is fed. That is, on input
a TM F , algorithm A first decomposes F into F0 #F1 and then outputs F1 (F0 ).
(As in the proof of Proposition 3.3, A actually should be modified to run in time
poly(|F |).) Let S be the PPT simulator for A guaranteed by Definition 2.1. Just
as in the proof of Proposition 3.3, we have:
where the probabilities are taken over uniformly selected α, β ∈ {0, 1}k , and the
coin tosses of A, S, and O. This contradicts Definition 2.1. 2
There is a difficulty in trying to carry out the above argument in the circuit
setting. (This difficulty is related to (but more serious than) the same subtlety
regarding the circuit setting discussed earlier.) In the above proof, the adversary
A, on input O(Fα,β ), attempts to evaluate F1 (F0 ), where F0 #F1 = O(Fα,β ) =
O(Cα,β #Dα,β ). In order for this to make sense in the circuit setting, the size
of the circuit F0 must be at most the input length of F1 (which is the same as
the input length of Dα,β ). But, since the output F0 #F1 of the obfuscator can
be polynomially larger than its input Cα,β #Dα,β , we have no such guarantee.
Furthermore, note that if we compute F0 , F1 in the way we described above (i.e.,
def
Fb (x) = O(Fα,β )(b, x)) then we’ll have |F0 | = |F1 | and so F0 will necessarily be
larger than F1 ’s input length.
To get around this, we modify Dα,β in a way that will allow A, when given
Dα,β and a circuit C, to test whether C(α) = β even when C is larger than the
input length of Dα,β . Of course, oracle access to Dα,β should not reveal α and
β, because we do not want the simulator S to be able to test whether C(α) = β
given just oracle access to C and Dα,β . We will construct such functions Dα,β
based on pseudorandom functions [GGM86].
parts. The first part gives out an encryption of the bits of α (under some private-
key encryption scheme). The second part provides the ability to perform binary
Boolean operations on encrypted bits, and the third part tests whether a se-
quence of encryptions consists of encryptions of the bits of β. These operations
will enable one to efficiently test whether a given circuit C satisfies C(α) = β,
while keeping α and β hidden when only oracle access to C and Dα,β is provided.
We begin with any one-bit (probabilistic) private-key encryption scheme
(Enc, Dec) that satisfies indistinguishability under chosen plaintext and non-
adaptive chosen ciphertext attacks. Informally, this means that an encryption
of 0 should be indistinguishable from an encryption of 1 even for adversaries
that have access to encryption and decryption oracles prior to receiving the
challenge ciphertext, and access to just an encryption oracle after receiving the
challenge ciphertext. (See [KY00] for formal definitions.) We note that such
encryptions schemes exist if one-way functions exist; indeed, the “standard” en-
R
cryption scheme EncK (b) = (r, fK (r) ⊕ b), where r ← {0, 1}|K| and fK is a
pseudorandom function, has this property.
Now we consider a “homomorphic encryption” algorithm Hom, which takes
as input a private-key K and two ciphertexts c and d (w.r.t. this key K), and
a binary boolean operation (specified by its 2 × 2 truth table). We define
def
HomK (c, d, ) = EncK (DecK (c) DecK (d)).
It can be shown that such an encryption scheme retains its security even if the
adversary is given access to a Hom oracle. This is formalized in the following
claim:
Now we return to the construction of our circuit family Dα,β . For a key K,
let EK,α be an algorithm which, on input i outputs EncK (αi ), where αi is the
On the (Im)possibility of Obfuscating Programs 15
i’th bit of α. Let BK,β be an algorithm which when fed a k-tuple of ciphertexts
(c1 , . . . , ck ) outputs 1 if for all i, DecK (ci ) = βi , where β1 , . . . , βk are the bits
of β. A random circuit from Dα,β will essentially be the algorithm
def
DK,α,β = EK,α #HomK #BK,β
(for a uniformly selected key K). One minor complication is that DK,α,β is
actually a probabilistic algorithm, since EK,α and HomK employ probabilistic
encryption, whereas the lemma requires deterministic functions. This can be
solved in the usual way, by using pseudorandom functions. Let q = q(k) be the
input length of DK,α,β and m = m(k) the maximum number of random bits
used by DK,α,β on any input. We can select a pseudorandom function fK 0 :
{0, 1}q → {0, 1}m , and let DK,α,β,K
0
0 be the (determinstic) algorithm, which on
q
input x ∈ {0, 1} evaluates DK,α,β (x) using randomness fK 0 (x).
0
Define the distribution Dα,β to be DK,α,β,K 0 , over uniformly selected keys K
0
and K . We argue that this distribution has the properties stated in the lemma.
0
By construction, each DK,α,β,K 0 is computable by circuit of size poly(k), so
Property 1 is satisfied.
For Property 2, consider an algorithm A that on input C and oracle access to
0
DK,α,β,K 0 (which, as usual, we can view as access to (deterministic versions of)
the three separate oracles EK,α , HomK , and BK,α ), proceeds as follows: First,
with k oracle queries to the EK,α oracle, A obtains encryptions of each of the
bits of α. Then, A uses the HomK oracle to do a gate-by-gate emulation of the
computation of C(α), in which A obtains encryptions of the values at each gate
of C. In particular, A obtains encryptions of the values at each output gate of C
(on input α). It then feeds these output encryptions to DK,β , and outputs the
response to this oracle query. By construction, A outputs 1 iff C(α) = β.
Finally, we verify Property 3. Let S be any PPT algorithm. We must show
that S has only a negligible probability of outputting α when given oracle access
0 0
to DK,α,β,K 0 (over the choice of K, α, β, K , and the coin tosses of S). By the
0
pseudorandomness of fK 0 , we can replace oracle access to the function DK,α,β,K 0
with oracle access to the probabilistic algorithm DK,α,β with only a negligible
effect on S’s success probability. Oracle access to DK,α,β is equivalent to oracle
access to EK,α , HomK , and BK,β . Since β is independent of α and K, the
probability that S queries BK,β at a point where its value is nonzero (i.e., at a
sequence of encryptions of the bits of β) is exponentially small, so we can remove
S’s queries to BK,β with only a negligible effect on the success probability. Oracle
access to EK,α is equivalent to giving S polynomially many encryptions of each of
the bits of α. Thus, we must argue that S cannot compute α with nonnegligible
probability from these encryptions and oracle access to HomK . This follows from
the fact that the encryption scheme remains secure in the presence of a HomK
oracle (Claim 3.2) and a hybrid argument.
Theorem 3.6. If one-way functions exist, then circuit obfuscators do not exist.
Proof. Suppose, for sake of contradiction, that there exists a circuit obfuscator
O. For k ∈ N and α, β ∈ {0, 1}k , let Zk and Cα,β be the circuits defined in the
16 B. Barak et al.
proof of Proposition 3.3, and let Dα,β be the distribution on circuits given by
Lemma 3.5. Fer each k ∈ N, consider the following two distributions on circuits
of size poly(k):
R
Fk : Choose α and β uniformly in {0, 1}k , D ← Dα,β . Output Cα,β #D.
R
Gk : Choose α and β uniformly in {0, 1}k , D ← Dα,β . Output Zk #D.
Let A be the PPT algorithm guaranteed by Property 2 in Lemma 3.5, and
consider a PPT A0 which, on input a circuit F , decomposes F = F0 #F1 and
evaluates AF1 (F0 , 1k ), where k is the input length of F0 . Thus, when fed a circuit
from O(Fk ) (resp., O(Gk )), A0 is evaluating AD (C, 1k ) where D computes the
same function as some circuit from Dα,β and C computes the same function as
Cα,β (resp., Zk ). Therefore, by Property 2 in Lemma 3.5, we have:
Pr [A0 (O(Fk )) = 1] = 1 Pr [A0 (O(Gk )) = 1] = 0.
We now argue that for any PPT algorithm S
Pr S Fk (1k ) = 1 − Pr S Gk (1k ) = 1 ≤ 2−Ω(k) ,
which will contradict the definition of circuit obfuscators. Having oracle access
to a circuit from Fk (respectively, Gk ) is equivalent to having oracle access to
R
Cα,β (resp., Zk ) and D ← Dα,β , where α, β are selected uniformly in {0, 1}k .
Property 3 of Lemma 3.5 implies that the probability that S queries the first
oracle at α is negligible, and hence S cannot distinguish that oracle being Cα,β
from it being Zk .
We can remove the assumption that one-way functions exist for efficient
circuit obfuscators via the following (easy) lemma (proven in the full version of
the paper).
Lemma 3.7. If efficient obfuscators exist, then one-way functions exist.
References
[BGI+ 01] Boaz Barak, Oded Goldreich, Russell Impagliazzo, Steven Rudich, Amit
Sahai, Salil Vadhan, and Ke Yang. On the (im)possibility of obfuscat-
ing programs. Technical report, Electronic Colloquium on Computational
Complexity, 2001. http://www.eccc.uni-trier.de/eccc.
[BR93] Mihir Bellare and Phillip Rogaway. Random oracles are practical: A
paradigm for designing efficient protocols. In Proceedings of the First
Annual Conference on Computer and Communications Security. ACM,
November 1993.
[BL96] Dan Boneh and Richard Lipton. Algorithms for black-box fields and
their applications to cryptography. In M. Wiener, editor, Advances in
Cryptology—CRYPTO ’96, volume 1109 of Lecture Notes in Computer Sci-
ence, pages 283–297. Springer-Verlag, August 1996.
[CGH98] Ran Canetti, Oded Goldreich, and Shai Halevi. The random oracle method-
ology, revisited. In Proceedings of the Thirtieth Annual ACM Symposium
on Theory of Computing, pages 209–218, Dallas, 23–26 May 1998.
[CT00] Christian Collberg and Clark Thomborson. Watermarking, tamper-
proofing, and obfuscation – tools for software protection. Technical Report
TR00-03, The Department of Computer Science, University of Arizona,
February 2000.
[DDN00] Danny Dolev, Cynthia Dwork, and Moni Naor. Nonmalleable cryptography.
SIAM Journal on Computing, 30(2):391–437 (electronic), 2000.
[FM91] Joan Feigenbaum and Michael Merritt, editors. Distributed computing and
cryptography, Providence, RI, 1991. American Mathematical Society.
[FS87] Amos Fiat and Adi Shamir. How to prove yourself: practical solutions
to identification and signature problems. In Advances in cryptology—
CRYPTO ’86 (Santa Barbara, Calif., 1986), pages 186–194. Springer,
Berlin, 1987.
[GGM86] Oded Goldreich, Shafi Goldwasser, and Silvio Micali. How to construct
random functions. Journal of the Association for Computing Machinery,
33(4):792–807, 1986.
[GO96] Oded Goldreich and Rafail Ostrovsky. Software protection and simulation
on oblivious RAMs. Journal of the ACM, 43(3):431–473, 1996.
[GM84] Shafi Goldwasser and Silvio Micali. Probabilistic encryption. Journal of
Computer and System Sciences, 28(2):270–299, April 1984.
[Had00] Satoshi Hada. Zero-knowledge and code obfuscation. In T. Okamoto, editor,
Advances in Cryptology – ASIACRYPT ’ 2000, Lecture Notes in Computer
Science, pages 443–457, Kyoto, Japan, 2000. International Association for
Cryptologic Research, Springer-Verlag, Berlin Germany.
18 B. Barak et al.
[KY00] Jonathan Katz and Moti Yung. Complete characterization of security no-
tions for private-key encryption. In Proceedings of the 32nd Annual ACM
Symposium on Theory of Computing, pages 245–254, Portland, OR, May
2000. ACM.
[NSS99] David Naccache, Adi Shamir, and Julien P. Stern. How to copyright a
function? In H. Imai and Y. Zheng, editors, Public Key Cryptography—
PKC ’99, volume 1560 of Lecture Notes in Computer Science, pages 188–
196. Springer-Verlag, March 1999.
[NR97] Moni Naor and Omer Reingold. Number-theoretic constructions of efficient
pseudo-random functions. In 38th Annual Symposium on Foundations of
Computer Science, pages 458–467, Miami Beach, Florida, 20–22 October
1997. IEEE.
[RAD78] Ronald L. Rivest, Len Adleman, and Michael L. Dertouzos. On data banks
and privacy homomorphisms. In Foundations of secure computation (Work-
shop, Georgia Inst. Tech., Atlanta, Ga., 1977), pages 169–179. Academic,
New York, 1978.
[SYY99] Thomas Sander, Adam Young, and Moti Yung. Non-interactive cryptocom-
puting for NC1 . In 40th Annual Symposium on Foundations of Computer
Science, pages 554–566, New York, NY, 17–19 October 1999. IEEE.
[vD98] Frans van Dorsselaer. Obsolescent feature. Winning entry for the 1998
International Obfuscated C Code Contest, 1998. http://www.ioccc.org/.
Universally Composable Commitments
(Extended Abstract)
1 Introduction
in opening the envelope, the receiver learns nothing about x. When both parties
cooperate, the value x is retrieved in full.
Formalizing this intuitive idea is, however, non-trivial. Traditionally, two
quite distinct basic flavors of commitment are formalized: unconditionally bind-
ing and unconditionally secret commitment protocols (see, e.g., [g95]). These
basic definitions are indeed sufficient for some applications (see there). But they
treat commitment as a “stand alone” task and do not in general guarantee se-
curity when a commitment protocol is used as a building-block within other
protocols, or when multiple copies of a commitment protocol are carried out
together. A good first example for the limitations of the basic definitions is the
selective decommitment problem [dnrs99], that demonstrates our inability to
prove some very minimal composition properties of the basic definitions.
Indeed, the basic definitions turned out to be inadequate in some scenarios,
and stronger variants that allow to securely “compose” commitment protocols
—both with the calling protocol and with other invocations of the commitment
protocol— were proposed and successfully used in some specific contexts. One
such family of variants make sure that knowledge of certain trapdoor informa-
tion allows “opening” commitments in more than a single way. These include
chameleon commitments [bcc88], trapdoor commitments [fs90] and equivoca-
ble commitments [b99]. Another strong variant is non-malleable commitments
[ddn00], where it is guaranteed that a dishonest party that receives an unopened
commitment to some value x will be unable to commit to a value that depends
on x in any way, except for generating another commitment to x. (A more re-
laxed variant of the [ddn00] notion of non-malleability is non-malleability with
respect to opening [dio98,ff00,dkos01].)
These stronger measures of security for commitment protocols are indeed very
useful. However they only solve specific problems and stop short of guaranteeing
that commitment protocols maintain the expected behavior in general crypto-
graphic contexts, or in other words when composed with arbitrary protocols. To
exemplify this point, notice for instance that, although [ddn00] remark on more
general notions of non-malleability, the standard notion of non-malleability con-
siders only other copies of the same protocol. There is no guarantee that a mali-
cious receiver is unable to “maul” a given commitment by using a totally different
commitment protocol. And it is indeed easy to come up with two commitment
protocols C and C 0 such that both are non-malleable with respect to themselves,
but an adversary that plays a receiver in C can generate a C 0 -commitment to a
related value.
This work proposes a measure of security for commitment protocols that
guarantees the “envelope-like” intuitive properties of commitment even when
the commitment protocol is concurrently composed with an arbitrary set of pro-
tocols. In particular, protocols that satisfy this measure (called universally com-
posable (uc) commitment protocols) remain secure even when an unbounded
number of copies of the protocol are executed concurrently in an adversarially
controlled way; they are resilient to selective decommitment attacks; they are
non-malleable both with respect to other copies of the same protocol and with re-
Universally Composable Commitments 21
between. Informally, a protocol securely carries out a given task if running the
protocol amounts to “emulating” an ideal process where the parties hand their
inputs to the appropriate ideal functionality and obtain their outputs from it,
without any other interaction.
In order to allow proving the concurrent composition theorem, the notion of
emulation in [c00a] is considerably stronger than previous ones. Traditionally,
the model of computation includes the parties running the protocol and an ad-
versary, A, and “emulating an ideal process” means that for any adversary A
there should exist an “ideal process adversary” (or, simulator) S that results in
similar distribution on the outputs for the parties. Here an additional adversar-
ial entity, called the environment Z, is introduced. The environment generates
the inputs to all parties, reads all outputs, and in addition interacts with the
adversary in an arbitrary way throughout the computation. A protocol is said to
securely realize a given ideal functionality F if for any adversary A there exists an
“ideal-process adversary” S, such that no environment Z can tell whether it is
interacting with A and parties running the protocol, or with S and parties that
interact with F in the ideal process. (In a sense, here Z serves as an “interactive
distinguisher” between a run of the protocol and the ideal process with access
to F. See [c00a] for more motivating discussion on the role of the environment.)
Note that the definition requires the “ideal-process adversary” (or, simulator)
S to interact with Z throughout the computation. Furthermore, Z cannot be
“rewound”.
The following universal composition theorem is proven in [c00a]. Consider
a protocol π that operates in a hybrid model of computation where parties can
communicate as usual, and in addition have ideal access to (an unbounded num-
ber of copies of) some ideal functionality F. Let ρ be a protocol that securely
realizes F as sketched above, and let π ρ be the “composed protocol”. That is,
π ρ is identical to π with the exception that each interaction with some copy of
F is replaced with a call to (or an invocation of) an appropriate instance of ρ.
Similarly, ρ-outputs are treated as values provided by the appropriate copy of F.
Then, π and π ρ have essentially the same input/output behavior. In particular,
if π securely realizes some ideal functionality G given ideal access to F then π ρ
securely realizes G from scratch.
To apply this general framework to the case of commitment protocols, we
formulate an ideal functionality Fcom that captures the expected behavior of
commitment. Universally Composable (uc) commitment protocols are defined to
be those that securely realize Fcom . Our formulation of Fcom is a straightforward
transcription of the “envelope paradigm”: Fcom first waits to receive a request
from some party C to commit to value x for party R. (C and R are identities
of two parties in a multiparty network). When receiving such a request, Fcom
records the value x and notifies R that C has committed to some value for him.
When C later sends a request to open the commitment, Fcom sends the recorded
value x to R, and halts. (Some other variants of Fcom are discussed within.)
The general composition theorem now implies that running (multiple copies of)
a uc commitment protocol π is essentially equivalent to interacting with the
Universally Composable Commitments 23
same number of copies of Fcom , regardless of what the calling protocol does. In
particular, the calling protocol may run other commitment protocols and may
use the committed values in any way. As mentioned above, this implies a strong
version of non-malleability, security under concurrent composition, resilience to
selective decommitment, and more.
The definition of security and composition theorem carry naturally to the crs
model as well. However, this model hides a caveat: The composition operation
requires that each copy of the uc commitment protocol will have its own copy
of the crs. Thus, a protocol that securely realizes Fcom as described above
is highly wasteful of the reference string. In order to capture protocols where
multiple commitments may use the same reference string we formulate a natural
extension of Fcom that handles multiple commitment requests. Let Fmcom denote
this extension.
We remark that uc commitment protocols need not, by definition, be neither
unconditionally secret nor unconditionally binding. Indeed, one of the construc-
tions presented here has neither property.
2 Definitions
Section 2.1 shortly summarizes the relevant parts of the general framework of
[c00a], including the definition of security and the composition theorem. Section
2.2 defines the ideal commitment functionalities, Fcom and Fmcom .
model inputs and outputs that are received from and given to other programs
running on the same machine, and the communication tapes model messages
sent to and received from the network. Adversarial entities are also modeled as
ITMs; we concentrate on a non-uniform complexity model where the adversaries
have an arbitrary additional input, or an “advice”.
The adversarial model. [c00a] discusses several models of computation. We
concentrate on one main model, aimed at representing current realistic communi-
cation networks (such as the Internet). Specifically, the network is asynchronous
without guaranteed delivery of messages. The communication is public (i.e., all
messages can be seen by the adversary) but ideally authenticated (i.e., messages
cannot be modified by the adversary). In addition, parties have unique identi-
ties.1 The adversary is adaptive in corrupting parties, and is active (or, Byzan-
tine) in its control over corrupted parties. Finally, the adversary and environment
are restricted to probabilistic polynomial time (or, “feasible”) computation.
Protocol execution in the real-life model. We sketch the “mechanics” of
executing a given protocol π (run by parties P1 , ..., Pn ) with some adversary
A and an environment machine Z with input z. All parties have a security pa-
rameter k ∈ N and are polynomial in k. The execution consists of a sequence
of activations, where in each activation a single participant (either Z, A, or
some Pi ) is activated. The activated participant reads information from its in-
put and incoming communication tapes, executes its code, and possibly writes
information on its outgoing communication tapes and output tapes. In addi-
tion, the environment can write information on the input tapes of the parties,
and read their output tapes. The adversary can read messages off the outgoing
message tapes of the parties and deliver them by copying them to the incoming
message tapes of the recipient parties. The adversary can also corrupt parties,
with the usual consequences that it learns the internal information known to the
corrupted party and that from now on it controls that party.
The environment is activated first; once activated, it may choose to acti-
vate either one of the parties (with some input value) or to activate the adver-
sary. Whenever the adversary delivers a message to some party P , this party
is activated next. Once P ’s activation is complete, the environment is acti-
vated. Throughout, the environment and the adversary may exchange infor-
mation freely using their input and output tapes. The output of the protocol
execution is the output of Z. (Without loss of generality Z outputs a single bit.)
Let realπ,A,Z (k, z, r) denote the output of environment Z when interacting
with adversary A and parties running protocol π on security parameter k, input
z and random input r = rZ , rA , r1 . . . rn as described above (z and rZ for Z,
rA for A; ri for party Pi ). Let realπ,A,Z (k, z) denote the random variable
1
Indeed, the communication in realistic networks is typically unauthenticated, in the
sense that messages may be adversarially modified en-route. In addition, there is no
guarantee that identities will be unique. Nonetheless, since authentication and the
guarantee of unique identities can be added independently of the rest of the protocol,
we allow ourselves to assume ideally authenticated channels and unique identities.
See [c00a] for further discussion.
26 R. Canetti and M. Fischlin
The communication between the parties and each one of the copies of F
mimics the ideal process. That is, once a party sends a message to some copy
of F, that copy is immediately activated and reads that message off the party’s
tape. Furthermore, although the adversary in the hybrid model is responsible
for delivering the messages from the copies of F to the parties, it does not have
access to the contents of these messages.
Replacing a call to F with a protocol invocation. Let π be a protocol
in the F-hybrid model, and let ρ be a protocol that securely realizes F (with
respect to some class of adversaries). The composed protocol π ρ is constructed
by modifying the code of each ITM in π so that the first message sent to each
copy of F is replaced with an invocation of a new copy of π with fresh random
input, and with the contents of that message as input. Each subsequent message
to that copy of F is replaced with an activation of the corresponding copy of ρ,
with the contents of that message given to ρ as new input. Each output value
generated by a copy of ρ is treated as a message received from the corresponding
copy of F.
Theorem statement. In its general form, the composition theorem basically
says that if ρ securely realizes F then an execution of the composed protocol π ρ
“emulates” an execution of protocol π in the F-hybrid model. That is, for any
real-life adversary A there exists an adversary H in the F-hybrid model such
that no environment machine Z can tell with non-negligible probability whether
it is interacting with A and π ρ in the real-life model or it is interacting with H
and π in the F-hybrid model..
A more specific corollary of the general theorem states that if π securely
realizes some functionality G in the F-hybrid model, and ρ securely realizes F in
the real-life model, then π ρ securely realizes G in the real-life model. (Here one
has to define what it means to securely realize functionality G in the F-hybrid
model. This is done in the natural way.)
Protocol composition in the crs model. Some words of clarification are in order
with respect to the composition theorem in the crs model. Specifically, it is stressed
that each copy of protocol ρ within the composed protocol π ρ should have its own
copy of the reference string, or equivalently uses a separate portion of a long string.
(If this is not the case then the theorem no longer holds in general.) As seen below,
the behavior of protocols where several copies of the protocol use the same instance of
the reference string can be captured using ideal functionalities that represent multiple
copies of the protocol within a single copy of the functionality.
Functionality Fcom
the same Commitment ID. It is stressed that the various Commit and Open re-
quests may be interleaved in an arbitrary way. Also, note that Fmcom allows a
committer to open a commitment several times (to the same receiver).
Functionality Fmcom
The construction in this section works in the common random string model where
each part of the commitment can be used only once for a commitment. It is based
on the equivocable bit commitment scheme of Di Crescenzo et al. [dio98], which
in turn is a clever modification of Naor’s commitment scheme [n91].
Let G be a pseudorandom generator stretching n-bit inputs to 4n-bit outputs.
For security parameter n the receiver in [n91] sends a random 4n-bit string σ to
n
the sender, who picks a random r ∈ {0, 1} , computes G(r) and returns G(r) or
G(r) ⊕ σ to commit to 0 and 1, respectively. To decommit, the sender transmits
b and r. By the pseudorandomness of G the receiver cannot distinguish both
cases, and with probability 2−2n over the choice of σ it is impossible to find
openings r0 and r1 such that G(r0 ) = G(r1 ) ⊕ σ.
In [dio98] an equivocable version of Naor’s scheme has been proposed. Sup-
pose that σ is not chosen by the receiver, but rather is part of the common
random string. Then, if instead we set σ = G(r0 ) ⊕ G(r1 ) for random r0 , r1 , and
let the sender give G(r0 ) to the receiver, it is later easy to open this commitment
as 0 with r0 as well as 1 with r1 (because G(r0 ) ⊕ σ = G(r1 )). On the other
hand, choosing σ in that way in indistinguishable from a truly random choice.
We describe a uc bit commitment protocol UCCOneTime (for universally com-
posable commitment scheme in the one-time-usable common reference string
model). The idea is to use the [dio98] scheme with a special pseudorandom
generator, namely, the Blum-Micali-Yao generator based on any trapdoor per-
mutation [y82,bm84]. Let KGen denote an efficient algorithm that on input 1n
generates a random public key pk and the trapdoor td . The key pk describes
n
a trapdoor permutation fpk over {0, 1} . Let B(·) be a hard core predicate for
fpk . Define a pseudorandom generator expanding n bits to 4n bits with public
description pk by
(3n) (3n−1)
Gpk (r) = fpk (r), B fpk (r) , . . . , B fpk (r) , B(r)
(i)
where fpk (r) is the i-th fold application of fpk to r. An important feature of
this generator is that given the trapdoor td to pk it is easy to recognize images
4n
y ∈ {0, 1} under Gpk .
The public random string in our scheme consists of a random 4n-bit string
σ, together with two public keys pk 0 , pk 1 describing trapdoor pseudorandom
generators Gpk 0 and Gpk 1 ; both generators stretch n-bit inputs to 4n-bit output.
The public keys pk 0 , pk 1 are generated by two independent executions of the key
generation algorithm KGen on input 1n . Denote the corresponding trapdoors by
td 0 and td 1 , respectively.
In order to commit to a bit b ∈ {0, 1}, the sender picks a random string
n
r ∈ {0, 1} , computes Gpk b (r), and sets y = Gpk b (r) if b = 0, or y = Gpk b (r) ⊕ σ
for b = 1. The sender passes y to the receiver. In the decommitment step the
sender gives (b, r) to the receiver, who verifies that y=Gpk b (r) for b = 0 or that
y = Gpk b (r) ⊕ σ for b = 1. See also Figure 3.
32 R. Canetti and M. Fischlin
public string:
σ — random string in {0, 1}4n
pk 0 , pk 1 — keys for generators Gpk 0 , Gpk 1 : {0, 1}n → {0, 1}4n
decommitment for y:
send b, r to receiver
? ?
receiver checks y = Gpk b (r) for b = 0, or y = Gpk b (r) ⊕ σ for b = 1
The drawback of the construction in the previous section is that a fresh part of
the random string must be reserved for each committed bit. In this section, we
overcome this disadvantage under a potentially stronger assumption, namely the
existence of claw-free trapdoor permutation pairs. We concentrate on a solution
that only works for erasing parties in general, i.e., security is based on the parties’
ability to irrevocably erase certain data as soon as they are supposed to. At the
Universally Composable Commitments 33
end of this section we sketch a solution that does not require data erasures. This
solution is based on the Decisional Diffie-Hellman assumption.
Basically, a claw-free trapdoor permutation pair is a pair of trapdoor permu-
tations with a common range such that it is hard to find two elements that are
preimages of the same element under the two permutations. More formally, a key
generation KGenclaw outputs a random public key pk claw and a trapdoor td claw .
n n
The public key defines permutations f0,pk claw , f1,pk claw : {0, 1} → {0, 1} , whereas
−1 −1
the secret key describes the inverse functions f0,pk claw
, f1,pk claw
. It should be in-
feasible to find a claw x0 , x1 with f0,pk claw (x0 ) = f1,pk claw (x1 ) given only pk claw .
For ease of notation we usually omit the keys and write f0 , f1 , f0−1 , f1−1 instead.
Claw-free trapdoor permutation pairs exist for example under the assumption
that factoring is hard [gmri88]. For a more formal definition see [g95].
We also utilize an encryption scheme E = (KGen, Enc, Dec) secure against
adaptive-chosen ciphertext attacks, i.e., in the notation of [bdpr98] the encryp-
tion system should be IND-CCA2. On input 1n the key generation algorithm
KGen returns a public key pk E and a secret key sk E . An encryption of a message
m is given by c←Encpk E (m), and the decryption of a ciphertext c is Decsk E (c).
It should always hold that Decsk E (c) = m for c←Encpk E (m), i.e., the system
supports errorless decryption. Again, we abbreviate Encpk E (·) by Enc(·) and
Decsk E (·) by Dec(·). IND-CCA2 encryption schemes exist for example under the
assumption that trapdoor permutations exist [ddn00]. A more efficient solution
is based on the decisional Diffie-Hellman assumption [cs98]. Both schemes have
errorless decryption.
The commitment scheme UCCReUse (for universally composable commitment
with reusable reference string) is displayed in Figure 4. The (reusable) public
string contains random public keys pk claw and pk E . For a commitment to a bit b
n
the sender Pi applies the trapdoor permutation fb to a random x ∈ {0, 1} , com-
n
putes cb ←Encpk E (x, Pi ) and c1−b ←Encpk E (0 , Pi ), and sends the tuple (y, c0 , c1 )
with y = fb (x) to the receiver. The sender is also instructed to erase the ran-
domness for the encryption of (0n , Pi ) before the commitment message is sent.
This ciphertext is called a dummy ciphertext.
To open the commitment, the committer Pi sends b, x and the randomness
used for encrypting (x, Pi ). The receiver Pj verifies that y = fb (x), that the
encryption randomness is consistent with cb , and that cid was never used before
in a commitment of Pi to Pj .
We remark that including the sender’s identity in the encrypted strings plays
an important role in the analysis. Essentially, this precaution prevents a cor-
rupted committer from “copying” a commitment generated by an uncorrupted
party.
The fact that the dummy ciphertext is never opened buys us equivocability.
Say that the ideal-model simulator knows the trapdoor of the claw-free permu-
tation pair. Then it can compute the pre-images x0 , x1 of some y under both
functions f0 , f1 and send y as well as encryptions of (x0 , Pi ) and (x1 , Pi ). To
open it as 0 hand 0, x0 and the randomness for ciphertext (x0 , Pi ) to the re-
ceiver and claim to have erased the randomness for the other encryption. For a
1-decommitment send 1, x1 , the randomness for the encryption of (x1 , Pi ) and
34 R. Canetti and M. Fischlin
public string:
pk claw — public key for claw-free trapdoor permutation pair f0 , f1
pk E — public key for encryption algorithm Enc
deny to know the randomness for the other ciphertext. If the encryption scheme
is secure then it is intractable to distinguish dummy and such fake encryptions.
Hence, this procedure is indistinguishable from the actual steps of the honest
parties.
Analogously to the extraction procedure for the commitment scheme in the
previous section, here an ideal-process adversary can also deduce the bit from an
adversarial commitment (y ∗ , c∗0 , c∗1 ) if it knows the secret key of the encryption
scheme. Specifically, decrypt c∗0 to obtain (x∗0 , Pi∗ ); if x∗0 maps to y ∗ under f0
then let the guess be 0, else predict 1. This decision is only wrong if the adversary
has found a claw, which happens only with negligible probability. The proof of
the following theorem appears in [cf01].
Theorem 3. Protocol UCCReUse securely realizes functionality Fmcom in the crs
model.
A solution for non-erasing parties. The security of the above scheme depends
on the ability and good-will of parties to securely erase sensitive data (specifically, to
erase the randomness used to generate the dummy ciphertext). A careful look shows
that it is possible to avoid the need to erase: It is sufficient to be able to generate a
ciphertext without knowing the plaintext. Indeed, it would be enough to enable the
parties to obliviously generate a string that is indistinguishable from a ciphertext.
Then the honest parties can use this mechanism to produce the dummy ciphertext,
Universally Composable Commitments 35
while the simulator is still able to place the fake encryption into the commitment. For
example, the Cramer-Shoup system in subgroup G of Zp∗ has this property under the
decisional Diffie-Hellman assumption: To generate a dummy ciphertext simply generate
four random elements in G.
Relaxing the need for claw-free pairs. The above scheme was presented and
proven using any claw-free pair of trapdoor permutations. However, it is easy to see
that the claw-free pair can be substituted by chameleon commitments a la [bcc88],
thus basing the security of the scheme on the hardness of the discrete logarithm or
factoring. Further relaxing the underlying hardness assumptions is an interesting task.
This section demonstrates that in the plain model there cannot exist univer-
sally composable commitment protocols that do not involve third parties in the
interaction and allow for successful completion when both the sender and the
receiver are honest. This impossibility result holds even under the more liberal
requirement that for any real-life adversary and any environment there should be
an ideal-model adversary (i.e., under a relaxed definition where the ideal-model
simulator may depend on the environment).
We remark that universally composable commitment protocols exist in the
plain model if the protocol makes use of third parties, as long as a majority of the
parties remain uncorrupted. This follows from a general result in [c00a], where
it is shown that practically any functionality can be realized in this setting.
Say that a protocol π between n parties P1 , . . . , Pn is bilateral if all except two
parties stay idle and do not transmit messages. A bilateral commitment protocol
π is called terminating if, with non-negligible probability, the receiver Pj accepts
a commitment of the honest sender Pi and outputs (Receipt, sid, Pi , Pj ), and
moreover if the receiver, upon getting a valid decommitment for a message m
and sid from the honest sender, outputs (Open, sid, Pi , Pj , m) with non-negligible
probability.
Proof. The idea of the proof is as follows. Consider a protocol execution between an
adversarially controlled committer Pi and an honest receiver Pj , and assume that
the adversary merely sends messages that are generated by the environment. The
environment secretly picks a random bit b at the beginning and generates the messages
for Pi by running the protocol of the honest committer for b and Pj ’s answers. In order
to simulate this behavior, the ideal-model adversary S must be able to provide the
ideal functionality with a value for the committed bit. For this purpose, the simulator
has to “extract” the committed bit from the messages generated by the environment,
without the ability to rewind the environment. However, as will be seen below, if the
commitment scheme allows the simulator to successfully extract the committed bit,
then the commitment is not secure in the first place (in the sense that a corrupted
36 R. Canetti and M. Fischlin
receiver can obtain the value of the committed bit from interacting with an honest
committer).
More precisely, let the bilateral protocol π take place between the sender Pi and
the receiver Pj . Consider the following environment Z and real-life adversary A. At
the outset of the execution the adversary A corrupts the committer Pi . Then, in the
sequel, A has the corrupted committer send every message it receives from Z, and
reports any reply received by Pj to Z. The environment Z secretly picks a random
bit b and follows the program of the honest sender to commit to b, as specified by π.
Once the the honest receiver has acknowledged the receipt of a commitment, Z lets A
decommit to b by following protocol π. Once the receiver outputs (Open, sid, Pi , Pj , b0 ),
Z outputs 1 if b = b0 and outputs 0 otherwise.
Formally, suppose that there is an ideal-model adversary S such that realπ,A,Z
≈idealFcom ,S,Z . Then we construct a new environment Z 0 and a new real-life adversary
A0 for which there is no appropriate ideal-model adversary for π. This time, A0 corrupts
the receiver Pj at the beginning. During the execution A0 obtains messages form the
honest committer Pi and feeds these messages into a virtual copy of S. The answers of S,
made on behalf of an honest receiver, are forwarded to Pi in the name of the corrupted
party Pj . At some point, S creates a submission (Commit, sid, Pi , Pj , b0 ) to Fcom ; the
adversary A0 outputs b0 and halts. If S halts without creating such a submission then
A0 outputs a random bit and halts.
The environment Z 0 instructs the honest party Pi to commit to a randomly chosen
secret bit b. (No decommitment is ever carried out.) Conclusively, Z 0 outputs 1 iff the
adversary’s output b0 satisfies b = b0 .
By the termination property, we obtain from the virtual simulator S a bit b0 with
non-negligible probability. This bit is a good approximation of the actual bit b, since
S simulates the real protocol π except with negligible error. Hence, the guess of A0 for
b is correct with 1/2 plus a non-negligible probability. But for a putative ideal-model
adversary S 0 predicting this bit b with more than non-negligible probability over 1/2
is impossible, since the view of S 0 in the ideal process is statistically independent from
the bit b. (Recall that the commitment to b is never opened).
5 Application to Zero-Knowledge
a value w such that R(x, w) holds. Next, Fzk waits for Pj to explicitly provide
a value w, and notifies Pi whether R(x, w) holds. (Notice that the adversary
is notified whenever either the prover or the verifier starts an interaction. It is
also notified whether the verifier accepts. This represents the fact that ZK is not
traditionally meant to hide this information.)
Functionality Fzk
R
We demonstrate a protocol for securely realizing Fzk for any NP relation R.
The protocol is a known one: It consists of n parallel repetitions of the 3-round
protocol of Blum for graph Hamiltonicity, where the provers commitments are
replaced by invocations of Fcom . The protocol (in the Fcom -hybrid model) is
presented in Figure 6.
We remark that in the Fcom -hybrid model the protocol securely realizes Fzk
without any computational assumptions, and even if the adversary and the envi-
ronment are computationally unbounded. (Of course, in order to securely realize
Fcom the adversary and environment must be computationally bounded.) Also,
in the Fcom -hybrid model there is no need in a common reference string. That
is, the crs model is needed only for realizing Fcom .
H
Let Fzk denote functionality Fzk parameterized by the Hamiltonicity relation
H. (I.e., H(G, h) = 1 iff h is a Hamiltonian cycle in graph G.) The following
theorem is proven in [cf01].
H
Theorem 5. Protocol hc securely realizes Fzk in the Fcom -hybrid model.
1. Given input (Prover, id, P, V, G, h), where G is a graph over nodes 1, ..., n,
the prover P proceeds as follows. If h is not a Hamiltonian cycle in G,
then P sends a message reject to V . Otherwise, P proceeds as follows
for k = 1, ..., n:
a) Choose a random permutation πk over [n].
b) Using Fcom , commit to the edges of the permuted graph. That is, for
each (i, j) ∈ [n]2 send (Commit,(i, j, k), P, V, e) to Fcom , where e = 1
if there is an edge between πk (i) and πk (j) in G, and e = 0 otherwise.
c) Using Fcom , commit to the permutation πk . That is, for l = 1, ..., L
send (Commit,(l, k), P, V, pl ) to Fcom where p1 , ..., pL is a representa-
tion of πk in some agreed format.
2. Given input (Verifier, id, V, P, G), the verifier V waits to receive either
reject from P , or (Receipt,(i, j, k), P, V ) and (Receipt,(l, k), P, V )
from Fcom , for i, j, k = 1, ..., n and l = 1, ..., L. If reject is received, then
V output 0 and halts. Otherwise, once all the (Receipt,...) messages
are received V randomly chooses n bits c1 , ..., cn and sends to P .
3. Upon receiving c1 , ..., cn from V , P proceeds as follows for k = 1, ..., n:
a) If ck = 0 then send (Open,(i, j, k), P, V ) and (Open,(l, k), P, V ) to
Fcom for all i, j = 1, ..., n and l = 1, ..., L.
b) If ck = 1 then send (Open,(i, j, k), P, V ) to Fcom for all i, j = 1, ..., n
such that the edge πk (i), πk (j) is in the cycle h.
4. Upon receiving the appropriate (Open,...) messages from Fcom , the ver-
ifier V verifies that for all k such that ck = 0 the opened edges agree with
the input graph G and the opened permutation πk , and for all k such
that ck = 1 the opened edges are all 1 and form a cycle. If verification
succeeds then output 1, otherwise output 0.
Fig. 6. The protocol for proving Hamiltonicity in the Fcom -hybrid model
References
[b91] D. Beaver, “Secure Multi-party Protocols and Zero-Knowledge Proof Sys-
tems Tolerating a Faulty Minority”, J. Cryptology, Springer-Verlag, (1991)
4: 75-122.
[b99] D. Beaver, “Adaptive Zero-Knowledge and Computational Equivocation”,
28th Symposium on Theory of Computing (STOC), ACM, 1996.
[bbm00] M. Bellare, A. Boldyreva and S. Micali, “Public-Key Encryption in a Multi-
user Setting: Security Proofs and Improvements,” Eurocrypt 2000, pp. 259–
274, Springer LNCS 1807, 2000.
[bdjr97] M Bellare, A. Desai, E. Jokipii and P. Rogaway, “A concrete security treat-
ment of symmetric encryption: Analysis of the DES modes of operations,”
38th Annual Symp. on Foundations of Computer Science (FOCS), IEEE,
1997.
[bdpr98] M. Bellare, A. Desai, D. Pointcheval and P. Rogaway, “Relations among
notions of security for public-key encryption schemes”, CRYPTO ’98, 1998,
pp. 26-40.
Universally Composable Commitments 39
?
A full version of the paper is available at the IACR Crypto Archive
http://eprint.iacr.org/ and at http://www.wisdom.weizmann.ac.il/˜naor/
??
Work done while the author was visiting IBM Almaden Research Center and Stan-
ford University. Partially supported by DARPA contract F30602-99-1-0530.
1 Introduction
Broadcast Encryption. The area of Broadcast Encryption was first formally stud-
ied (and coined) by Fiat and Naor in [12] and has received much attention since
then. To the best of our knowledge the scenario of stateless receivers has not been
considered explicitly in the past in a scientific paper. In principle any scheme
that works for the connected mode, where receivers can remember past commu-
nication, may be converted to a scheme for stateless receivers (such a conversion
may require to include with any transmission the entire ‘history’ of revocation
events). Hence, when discussing previously proposed schemes we will consider
their performance as adapted to the stateless receiver scenario.
Revocation and Tracing Schemes for Stateless Receivers 43
A parameter that was often considered is t, the upper bound on the size of
the coalition an adversary can assemble. The algorithms in this paper do not
require such a bound and we can think of t = r; on the other hand some previ-
ously proposed schemes depend on t but are independent of r. The Broadcast
Encryption method of [12] allows the removal of any number of users as long as
at most t of them collude; the message length is O(t log2 t), a user must store
a number of keys that is logarithmic in t and is required to perform Õ(r/t)
decryptions.
The logical-tree-hierarchy (LKH) scheme, suggested independently by Wall-
ner et al. [29] and Wong et al. [30], is designed for the connected mode for
multicast applications. If used in the stateless scenario it requires to transmit
2r log N , store log N keys at each user and perform r log N encryptions (these
bounds are somewhat improved in [5,6,20]). The key assignment of this scheme
and the key assignment of our first method are similar (see Sect. 3.1 for com-
parison).
Luby and Staddon [19] considered the information theoretic setting and de-
vised bounds for any revocation algorithms under this setting. Their “Or Pro-
tocol” fits our Subset-Cover framework; our second algorithm (the Subset Dif-
ference method) which is not information theoretic, beats their lower bound
(Theorem 12 in [19]). In Garay et al. [16] keys of compromised decoders are no
longer used and the scheme is adapted so as to maintain security for the good
users. The method of Kumar et. al. [18] enables one-time revocation of up to r
users with message lengths of O(r log N ) and O(r2 ). CPRM [10] is one of the
methods that explicitly considers the stateless scenario.
Tracing Mechanisms. Tracing systems, introduced by Chor et al. [8] and later
refined to the Threshold Traitor model [23], [9], distribute decryption keys to
the users so as to allow the detection of at least one ‘identity’ of a key that
is used in a pirate box which was constructed using keys of at most t users.
Black-box tracing assumes that only the outcome of the decoding box can be
examined. The construction of [23] guarantees tracing with high probability; it
required O(t log N ) keys at each user, a single decryption operation and message
length is 4t. The public key tracing scheme of Boneh and Franklin [3] provides a
number-theoretic deterministic method for tracing. Note that in all of the above
methods t is an a-priori bound. Another notion, the one of Content Tracing,
attempts to detect illegal users who redistribute the content after it is decoded
(see [4,13,2,26]).
of the two mechanisms is seamless in the sense that no change is required for any
one of them. Moreover, no a-priori bound on the number of traitors is needed for
our tracing scheme. In order to trace t illegal users, the first revocation method
requires a message length of t log N , and the second revocation method requires
a message length of 5t.
Main Contributions: the main improvements that our methods achieve over
previously suggested methods, when adopted to the stateless scenario, are:
Fig. 1. Performance tradeoff for the Complete Subtree method and the Subset Differ-
ence method
consisting of all members of R cannot decrypt it. The definition of the latter is
provided in Sect. 2.3.
A system consists of three parts: (1) An initiation scheme, which is a method
for assigning the receivers secret information that will allow them to decrypt. (2)
The broadcast algorithm - given a message M and the set R of users that should
be revoked outputs a ciphertext message M 0 that is broadcast to all receivers.
(3) A decryption algorithm - a (non-revoked) user that receives ciphertext M 0
using its secret information should produce the original message M . Since the
receivers are stateless, the output of the decryption should be based on the
current message and the secret information only.
– A method FK : {0, 1}∗ 7→ {0, 1}∗ to encrypt the message itself. The key K
used will be chosen fresh for each message M - a session key - as a random
bit string. FK should be a fast method and should not expand the plaintext.
The simplest implementation is to Xor the message M with a stream cipher
generated by K.
– A method to deliver the session key to the receivers, for which we will em-
ploy an encryption scheme. The keys L here are long-lived. The simplest
implementation is to make EL : {0, 1}` 7→ {0, 1}` a block cipher.
choice of messages encrypted in this scheme (chosen plaintext). Also it may cre-
ate bogus messages and see how legitimate users (that will not be revoked) react.
Finally, to say that the adversary has broken the scheme means that when the
users who have provided it their secret information are all revoked (otherwise
it is not possible to protect the plaintext) the adversary can still learn some-
thing about the encrypted message. Here we define “learn” as distinguishing its
encryption from random (this is equivalent to semantic security).
Second, we state the security assumptions on the primitives used in the
scheme (these include the encryptions primitives EL and FK and the key as-
signment method in the subset-cover algorithm.) We identify a critical property
that is required from the key-assignment method: a subset-cover algorithm sat-
isfies the ”key-indistinguishability” property if for every subset Si its key Li is
indistinguishable from a random key given all the information of all users that
are not in Si . Note that any scheme in which the keys to all subsets are chosen
independently (trivially) satisfies this property. To obtain our security theorem,
we require two different sets of properties from EL and FK , since FK uses short
lived keys whereas EL uses long-lived ones. Specifically, EL is required to be se-
mantically secure against chosen ciphertext attacks in the pre-processing mode,
and FK to be chosen-plaintext, one-message semantically secure (see [21] for
details). We then proceed to show that if the subset-cover algorithm satisfies
the key-indistinguishability property and if EL and FK satisfy their security
requirements, then the revocation scheme is secure under the above definition.
by ST (R) the (directed) Steiner Tree induced by the set R of vertices and the
root, i.e. the minimal subtree of the full binary tree that connects all the leaves
in R (ST (R) is unique). The systems differ in the collections of subsets they
consider.
The subset description. As in the previous method, the receivers are viewed
as leaves in a complete binary tree. The collection of subsets S1 , . . . , Sw defined
by this algorithm corresponds to subsets of the form “a group of receivers G1
minus another group G2 ”, where G2 ⊂ G1 . The two groups G1 , G2 correspond
to leaves in two full binary subtrees. Therefore a valid subset S is represented
by two nodes in the tree (vi , vj ) such that vi is an ancestor of vj . We denote
such subset as Si,j . A leaf u is in Si,j iff it is in the subtree rooted at vi but not
in the subtree rooted at vj , or in other words u ∈ Si,j iff vi is an ancestor of
u but vj is not. Figure 2 depicts Si,j . Note that all subsets from the Complete
Subtree Method are also subsets of the Subset Difference Method; specifically,
a subtree appears here as the difference between its parent and its sibling. The
only exception is the full tree itself, and we will add a special subset for that.
We postpone the description of the key assignment till later; for the time being
assume that each subset Si,j has an associated key Li,j .
The Cover. For a set R of revoked receivers, the following Cover algorithm finds
a collection of disjoint subsets Si1 ,j1 , Si2 ,j2 . . . , Sim ,jm which partitions N \ R.
The method builds the subsets collection iteratively, maintaining a tree T which
is a subtree of ST (R) with the property that any u ∈ N \ R that is below a
leaf of T has been covered. We start by making T be equal to ST (R) and then
iteratively remove nodes from T (while adding subsets to the collection) until T
consists of just a single node:
Vi
Vj
Fig. 2. The Subset Difference method: subset Si,j contains all marked leaves (non-
black).
Key assignment to the subsets. We now define what information each re-
ceiver must store. If we try and repeat the information-theoretic approach of
the previous scheme where each receiver needs to store explicitly the keys of all
the subsets it belongs to, the storage requirements would expand tremendously:
consider a receiver u; for each complete subtree Tk it belongs to, u must store
a number of keys proportional to the number of nodes in the subtree Tk that
are not on the path from the root of Tk to u. There are log N such trees, one
52 D. Naor, M. Naor, and J. Lotspiech
Plog N
for each height 1 ≤ k ≤ log N , yielding a total of k=1 (2k − k) which is O(N )
keys. We therefore devise a key assignment method that requires a receiver to
store only O(log N ) keys per subtree, for the total of O(log2 N ) keys.
While the total number of subsets to which a user u belongs is O(N ), these
can be grouped into log N clusters defined by the first subset i (from which
another subsets is subtracted). The way we proceed with the keys assignment
is to choose for each 1 ≤ i ≤ N − 1 corresponding to an internal node in the
full binary tree a random and independent value LABELi . This value should
induce the keys for all legitimate subsets of the form Si,j . The idea is to employ
the method used by Goldreich, Goldwasser and Micali [17] to construct pseudo-
random functions, which was also used by Fiat and Naor [12] for purposes similar
to ours.
Let G be a (cryptographic) pseudo-random sequence generator (see definition
below) that triples the input, i.e. whose output length is three times the length
of the input; let GL (S) denote the left third of the output of G on seed S, GR (S)
the right third and GM (S) the middle third. We say that G : {0, 1}n 7→ {0, 1}3n
is a pseudo-random sequence generator if no polynomial-time adversary can
distinguish the output of G on a randomly chosen seed from a truly random string
of similar length. Let ε4 denote the bound on the distinguishing probability.
Consider now the subtree Ti (rooted at vi ). We will use the following top-
down labeling process: the root is assigned a label LABELi . Given that a parent
was labeled S, its two children are labeled GL (S) and GR (S) respectively. Let
LABELi,j be the label of node vj derived in the subtree Ti from LABELi . Fol-
lowing such a labeling, the key Li,j assigned to set Si,j is GM of LABELi,j . Note
that each label induces three parts: GL - the label for the left child, GR - the
label for the right child, and GM the key at the node. The process of generating
labels and keys for a particular subtree is depicted in Fig. 3. For such a labeling
process, given the label of a node it is possible to compute the labels (and keys)
of all its descendants. On the other hand, without receiving the label of an an-
cestor of a node, its label is pseudo-random and for a node j, given the labels
of all its descendants (but not including itself) the key Li,j is pseudo-random
(LABELi,j , the label of vj , is not pseudo-random given this information simply
because one can check for consistency of the labels). It is important to note that
given LABELi , computing Li,j requires at most log N invocations of G.
We now describe the information Iu that each receiver u gets in order to
derive the key assignment described above. For each subtree Ti such that u is a
leaf of Ti the receiver u should be able to compute Li,j iff j is not an ancestor
of u. Consider the path from vi to u and let vi1 , vi2 , . . . vik be the nodes just
“hanging off” the path, i.e. they are adjacent to the path but not ancestors of
u (see Fig. 3). Each j in Ti that is not an ancestor of u is a descendant of one
of these nodes. Therefore if u receives the labels of vi1 , vi2 , . . . vik as part of Iu ,
then invoking G at most log N times suffices to compute Li,j for any j that is
not an ancestor of u.
As for the total number of keys (in fact, labels) stored by receiver u, each
tree Ti of depth k that contains u contributes k − 1 keys (plus one key for
Plog N +1
the case where there are no revocations), so the total is 1 + k=1 k−1 =
1 + (log N +1)
2
log N
= 1
2 log 2
N + 1
2 log N + 1.
Revocation and Tracing Schemes for Stateless Receivers 53
S=LABELi
LABELi Vi
G_L(S) G_R(S)
G_L(G_L(S))
Vi1
G_L(G_L(G_L(S))) G_R(G_L(G_L(S)))
Vi2
Vi3
Fig. 3. Key assignment in the Subset Difference method. Left: generation of LABELi,j
and the key Li,j . Right: leaf u receives the labels of vi1 , . . . vik that are induced by the
label LABELi of vi .
At decryption time, a receiver u first finds the subset Si,j such that u ∈ Si,j ,
and computes the key corresponding to Li,j . Using the techniques described
in the complete subtree method for table lookup structure, this subset can be
found in O(log log N ). The evaluation of the subset key takes now at most log N
applications of a pseudo-random generator. After that, a single decryption is
needed.
Security. In order to prove security we have to show that the key indistinguisha-
bility condition (outlined in Sect. 2.3) holds for this method, namely that each
key is indistinguishable from a random key for all users not in the corresponding
subset.
Observe first that for any u ∈ N , u never receives keys that correspond
to subtrees to which it does not belong. Let Si denote the set of leaves in the
subtree Ti rooted at vi . For any set Si,j the key Li,j is (information theoretically)
independent of all Iu for u 6∈ Si . Therefore we have to consider only the combined
secret information of all u ∈ Sj . This is specified by at most log N labels - those
hanging on the path from vi to vj plus the two children of vj - which are sufficient
to derive all other labels in the combined secret information. Note that these
labels are log N strings that were generated independently by G, namely it is
never the case that one string is derived from another. Hence, a hybrid argument
implies that the probability of distinguishing Li,j from random can be at most
ε4 / log N , where ε4 is the bound on distinguishing outputs of G from random
strings.
Note that the length of the header is reduced to about m × |K| bits long (say
56m) instead of m × |L|.
Hierarchical Revocation: We point out that the schemes are well suited
to efficiently support hierarchical revocations of large groups of clustered-users;
this is useful, for instance, to revoke all devices of a certain manufacturer.
Public Key methods: A revocation scheme that is used in a public key
mode is appropriate in scenarios where the the party that generated the cipher-
text is not necessarily trustworthy. This calls for implementing E with a public-
key cryptosystem; however, a number of difficulties arise such as the public-key
generation process, the size of the public key file and the header reduction. As we
show, using a Diffie-Hellman like scheme solves most of these problems (except
the public key file size).
An interesting point is that prefix truncation is still applicable and we get
that the length of public-key encryption is hardly longer than the private-key
case. This can be done as follows: Let G be a group with a generator g, g yij
be the public key of subset Sij and yij the secret key. Choose h as a pairwise-
independent function h : G 7→ {0, 1}|K| , thus elements which are uniformly
distributed over G are mapped to uniformly distributed strings of the desired
length. The encryption E is done by picking a new element x from G, publicizing
g x , and encrypting K as ELij (K) = h(g xyij ) ⊕ K. That is, the header now
becomes
In terms of the broadcast length such system hardly increases the number of
bits in the header as compared with a shared-key system - the only difference is
g x and the description of h. Therefore this difference is fixed and does not grow
with the number of revocations. Note however that the scheme as defined above
is not immune to chosen-ciphertext attacks, but only to chosen plaintext ones.
Revocation and Tracing Schemes for Stateless Receivers 55
bounds are similar to the Complete Subtree method; however, unlike CPRM,
the Complete Subtree method is r-flexible and achieves perfect coverage. The
advantage of the Subset Difference Method is much more substantial: in addition
to the above, the message consists of 1.25r encryptions on average, or of at most
2r − 1 encryptions, rather than r log N .
For example, in DVD Audio, the amount of storage that is dedicated for
its MKB (the header) is 3 MB. This constrains the maximum allowed message
length. Under a certain choice of parameters, such as the total number of man-
ufactured devices and the number of distinct manufacturers, with the current
CPRM algorithm the system can revoke up to about 10,000 devices. In contrast,
for the same set of parameters and the same 3MB constraint, a Subset-Difference
algorithm achieves up to 250,000 (!) revocations, a factor of 25 improvement over
the currently used method. This major improvement is partly due to fact that
hierarchical revocation can be done very effectively, a property that the current
CPRM algorithm does not have.
Applications to Multicast. The difference between key management for the
scenario considered in this paper and for the Logical Key Hierarchy for multicast
is that in the latter the users (i.e. receivers) may update their keys [30,29].
This update is referred to as a re-keying event and it requires all users to be
connected during this event and change their internal state (keys) accordingly.
However, even in the multicast scenario it is not reasonable to assume that all the
users receive all the messages and perform the required update. Therefore some
mechanism that allows individual update must be in place. Taking the stateless
approach gets rid of the need for such a mechanism: simply add a header to
each message denoting who are the legitimate recipients by revoking those who
should not receive it. In case the number of revocations is not too large this may
yield a more manageable solution. This is especially relevant when there is a
single source for the sending messages or when public-keys are used.
Backward secrecy: Note that revocation in itself lacks backward secrecy in the
following sense: a constantly listening user that has been revoked from the system
records all future transmission (which it can’t decrypt anymore) and keeps all
ciphertexts. At a later point it gains a valid new key (by re-registering) which
allows decryption of all past communication. Hence, a newly acquired user-key
can be used to decrypt all past session keys and ciphertexts. The way that [30,29]
propose to achieve backward secrecy is to perform re-keying when new users are
added to the group (such a re-keying may be reduced to only one way chaining,
known as LKH+), thus making such operations non-trivial. We point out that
in the subset-cover framework and especially in the two methods we proposed
it may be easier: At any given point of the system include in the set of revoked
receivers all identities that have not been assigned yet. As a result, a newly
assigned user-key cannot help in decrypting an earlier ciphertext. Note that this
is feasible since we assume that new users are assigned keys in a consecutive order
of the leaves in the tree, so unassigned keys are consecutive leaves in the complete
tree and can be covered by at most log N sets (of either type, the Complete-
Subtree method or the Subtree-Difference method). Hence, the unassigned leaves
can be treated with the hierarchical revocation technique, resulting in adding at
most log N revocations to the message.
Revocation and Tracing Schemes for Stateless Receivers 57
4 Tracing Traitors
It is highly desirable that a revocation mechanism could work in tandem with a
tracing mechanism to yield a trace and revoke scheme. We show a tracing method
that works for many schemes in the subset-cover framework. The method is quite
efficient. The goal of a tracing algorithm is to find the identities of those that
contributed their keys to an illicit decryption box8 and revoke them; short of
identifying them we should render the box useless by finding a “pattern” that
does not allow decryption using the box, but still allows broadcasting to the
legitimate users. Note that this is a slight relaxation of the requirement of a
tracing mechanism, say in [23] (which requires an identification of the traitor’s
identity) and in particular it lacks self enforcement [11]. However as a mechanism
that works in conjunction with the revocation scheme it is a powerful tool to
combat piracy.
a subset Sij such that Sij contains a traitor. Such a procedure is called subset
tracing and is described below.
Vj
Vi
L R
Vj Vi
L R
Fig. 4. Bifurcating a Subset Difference set Si,j , depicted in the left. The black triangle
indicates the excluded subtree. L and R are the left and the right children of vi . The
resulting sets SL,j and Si,L are depicted to the right.
The Tracing Algorithm: We now describe the general tracing algorithm, assum-
ing that we have a good subset tracing procedure. The algorithm maintains a
partition Si1 , Si2 , . . . Sim . At each phase one of the subsets is partitioned, and
the goal is to partition a subset only if it contains a traitor.
Each phase initially applies the subset-tracing procedure with the current
partition S = Si1 , Si2 , . . . Sim . If the procedure outputs that the box cannot
decrypt with S then we are done, in the sense that we have found a way to
Revocation and Tracing Schemes for Stateless Receivers 59
disable the box without hurting any legitimate user. Otherwise, let Sij be the
set output by the procedure, namely Sij contains the a traitor.
If Sij contains only one possible candidate - it must be a traitor and we
permanently revoke this user; this doesn’t hurt a legitimate user. Otherwise we
split Sij into two roughly equal subsets and continue with the new partitioning.
The existence of such a split is assured by the bifurcation property.
Analysis: Since a partition can occur only in a subset that has a traitor and
contains more than one element, it follows that the number of iterations can be
at most t loga N , where a is the inverse of the bifurcation value (a more refined
expression is t(loga N − log2 t), the number of edges in a binary tree with t leaves
and depth loga N .)
The Subset Tracing Procedure. The Subset Tracing procedure first tests
whether the box decodes a message with the partition S = Si1 , Si2 , . . . Sim with
sufficient probability greater than the threshold, say > 0.5. If not, then it con-
cludes (and outputs) that the box cannot decrypt with S. Otherwise, it needs
to find a subset Sij that contains a traitor.
Let pj be the probability that the box decodes the ciphertext
where RK is a random string of the same length as the key K. That is, pj is
the probability of decoding when the first j subsets are noisy and the remaining
subsets encrypt the correct key. Note that p0 = p and pm = 0, hence there must
p
be some 0 < j ≤ m for which |pj−1 − pj | ≥ m . It can be shown that if pj−1 is
different from pj by more than ε, where ε is an upper bound on the sum of the
probabilities of breaking the encryption scheme E and key assignment method,
then the set Sij must contain a traitor. It also provides a binary-search-like
method that efficiently finds a pair of values pj , pj−1 among p0 , . . . , pm satisfying
p
|pj−1 − pj | ≥ m .
Frontier subsets: Let Si1 , Si2 , . . . Sim be the partition at the current iteration. A
pair of subsets (Sij1 , Sij2 ) is said to be in the frontier if Sij1 and Sij2 resulted
from a split-up of a single subset at an earlier iteration. Also neither (Sij1 nor
Sij2 ) was singled out by the subset tracing procedure so far. This definition
implies that the frontier is composed of k disjoint pairs of buddy subsets. Since
buddy-subsets are disjoint and since each pair originated from a single subset
that contained a traitor (and therefore has been split) k ≤ t.
We can now describe the improved tracing algorithm which proceeds in it-
erations. Every iteration starts with a partition S = Si1 , Si2 , . . . Sim . Denote by
F ⊂ S the frontier of S. An iteration consists of the following steps, by the end
of which a new partition S 0 and a new frontier F 0 is defined.
– As before, use the Subset Tracing procedure to find a subset Sij that contains
a traitor. If the tracing procedure outputs that the box can not decrypt with
S then we are done. Otherwise, split Sij into Sij1 and Sij2 .
– F 0 = F ∪Sij1 ∪Sij2 (Sij1 and Sij2 are now in the frontier). Furthermore, if Sij
was in the frontier F and Sik was its buddy-subset in F then F 0 = F 0 \ Sik
(remove Sik from the frontier).
– Compute a cover C for all receivers that are not covered by F 0 . Define the
new partition S 0 as the union of C and F 0 .
To see that the process described above converges, observe that at each itera-
tion the number of new small frontier sets always increases by at least one. More
precisely, at the end of each iteration construct a vector of length N describing
how many sets of size i, 1 ≤ i ≤ N , constitute the frontier. It is easy to see that
these vectors are lexicographically increasing. The process must stop when or
before all sets in the frontier are singletons.
By definition, the number of subsets in a frontier can be at most 2t. Further-
more, they are paired into at most t disjoint buddy subsets. As for non-frontier
subsets (C), Lemma 1 shows that covering the remaining elements can be done
by at most |F | ≤ 3t − 1 subsets (note that we apply the lemma so as to cover
all elements that are not covered by the buddy subsets, and there are at most
t of them). Hence the partition at each iteration is composed of at most 5t − 1
subsets.
9
This idea is similar to the second scheme of [13], Sect. 3.3. However, in [13] the merge
is straightforward as their model allows any subset. In our model only members
from the Subset Difference are allowed, hence a merge which produces subsets of
this particular type is non-trivial.
Revocation and Tracing Schemes for Stateless Receivers 61
References
1. J. Anzai, N. Matsuzaki and T. Matsumoto, A Quick Group Key Distribution
Sceheme with ”Entity Revocation”, Advances in Cryptology - Asiacrypt ’99,
LNCS 1716, Springer, 1999, pp. 333–347.
2. O. Berkman, M. Parnas and J. Sgall, Efficient Dynamic Traitor Tracing, Proc. of
the 11th ACM-SIAM Symp. on Discrete Algorithms (SODA), pp. 586–595, 2000.
3. D. Boneh and M. Franklin, An efficient public key traitor tracing scheme, Advances
in Cryptology - Crypto ’99, LNCS 1666, Springer, 1999, pp. 338–353.
4. D. Boneh, and J. Shaw, Collusion Secure Fingerprinting for Digital Data, IEEE
Transactions on Information Theory, Vol 44, No. 5, pp. 1897–1905, 1998.
5. R. Canetti, J. Garay, G. Itkis, D. Micciancio, M. Naor and B. Pinkas, Multicast
Security: A Taxonomy and Some Efficient Constructions, Proc. of INFOCOM ’99,
Vol. 2, pp. 708–716, New York, NY, March 1999.
6. R. Canetti, T. Malkin, K. Nissim, Efficient Communication-Storage Tradeoffs for
Multicast Encryption, Advances in Cryptology - EUROCRYPT ’99, LNCS 1592,
Springer, 1999, pp. 459–474.
7. R. Cramer and V. Shoup, A Practical Public Key Cryptosystem Provably Secure
Against Adaptive Chosen Ciphertext Attack. Advances in Cryptology - CRYPTO
1999, Lecture Notes in Computer Science 1462, Springer, pp. 13–25.
8. B. Chor, A. Fiat and M. Naor, Tracing traitors, Advances in Cryptology -
CRYPTO ’94, LNCS 839, Springer, pp. 257–270, 1994.
9. B. Chor, A. Fiat, M. Naor and B. Pinkas, Tracing traitors, IEEE Transactions on
Information Theory, Vol. 46, No. 3, May 2000.
10. Content Protection for Recordable Media. Available:
http://www.4centity.com/4centity/tech/cprm
11. C. Dwork, J. Lotspiech and M. Naor, Digital Signets: Self-Enforcing Protection of
Digital Information, 28th Symp. on the Theory of Computing, 1996, pp. 489– 498.
12. A. Fiat and M. Naor, Broadcast Encryption, Advances in Cryptology - CRYPTO
’93, LNCS 773, Springer, 1994, pp. 480—491.
13. A. Fiat and T. Tassa, Dynamic Traitor Tracing Advances in Cryptology -
CRYPTO ’99, LNCS 1666, 1999, pp. 354–371.
14. E. Fujisaki and T. Okamoto, Secure Integration of Asymmetric and Symmetric
Encryption Schemes, Advances in Cryptology - CRYPTO 1999, LNCS 1666, 1999,
pp. 537–554.
15. E. Gafni, J. Staddon and Y. L. Yin, Efficient Methods for Integrating Traceability
and Broadcast Encryption, Advances in Cryptology - CRYPTO’99, LNCS 1666,
Springer, 1999, pp. 372–387.
16. J.A. Garay, J. Staddon and A. Wool, Long-Lived Broadcast Encryption. Advances
in Cryptology - CRYPTO’2000, LNCS 1880, pp. 333–352, 2000.
17. O. Goldreich, S. Goldwasser and S. Micali, How to Construct Random Functions.
JACM 33(4): 792–807 (1986)
18. R. Kumar, R. Rajagopalan and A. Sahai, Coding Constructions for blacklist-
ing problems without Copmutational Assumptions. Advances in Cryptology -
CRYPTO ’99, LNCS 1666, 1999, pp. 609–623.
62 D. Naor, M. Naor, and J. Lotspiech
19. M. Luby and J. Staddon, Combinatorial Bounds for Broadcast Encryption. Ad-
vances in Cryptology - EUROCRYPT ’98, LNCS vol 1403, 1998, pp. 512–526.
20. D. McGrew, A. T. Sherman, Key Establishment in Large Dynamic Groups Using
One-Way Function Trees, submitted to IEEE Transactions on Software Engineer-
ing (May 20, 1998).
21. D. Naor, M. Naor, J. Lotspiech, Revocation and Tracing Schemes for Stateless Re-
ceivers, full version available at the IACR Crypto Archive http://eprint.iacr.org/.
22. M. Naor, Tradeoffs in Subset-Cover Revocation Schemes, manuscript, 2001.
23. M. Naor and B. Pinkas, Threshold traitor tracing, Advances in Cryptology -
Crypto ’98, LNCS 1462, pp. 502–517.
24. M. Naor and B. Pinkas, Efficient Trace and Revoke Schemes Financial Cryptog-
raphy ’2000, LNCS , Springer.
25. B. Pfitzmann, Trials of Traced Traitors, Information Hiding Workshop, First
International Workshop, Cambridge, UK, LNCS 1174, Springer, 1996, pp. 49–64.
26. R. Safavi-Naini and Y. Wang, Sequential Traitor Tracing, Advances in Cryptology
- CRYPTO 2000, LNCS 1880, pp. 316–332, 2000.
27. V. Shoup and R. Gennaro, Securing threshold cryptosystems against chosen ci-
phertext attack, Advances in Cryptology - EUROCRYPT ’98, LNCS 1403, 1998,
pp. 1–16.
28. D.R. Stinson and R. Wei, Key Preassigned Traceability Schemes for Broadcast
Encryption, Proc. Fifth Annual Workshop on Selected Areas in Cryptography,
LNCS 1556 (1999), pp. 144–156.
29. D.M. Wallner, E.J. Harder and R.C. Agee, Key Management for Multicast: Issues
and Architectures, Internet Request for Comments 2627, June, 1999. Available:
ftp.ietf.org/rfc/rfc2627.txt
30. C. K. Wong, M. Gouda and S. Lam, Secure Group Communications Using Key
Graphs, Proc. ACM SIGCOMM’98, pp. 68–79.
Self Protecting Pirates and Black-Box Traitor
Tracing
1 Introduction
The problem of Traitor Tracing can be understood best in the context of Pay-
TV. In such a system there are n subscribers, each one possessing a decryption
box (decoder). The authority scrambles digital data and broadcasts it to all
subscribers, who use their decryption boxes to descramble the data. It is possible
for some of the users to collude and produce a pirate decoder: a device not
registered with the authority that can decrypt the scrambled digital content.
The goal of Traitor Tracing is to provide a method so that the authority, given
a pirate decoder, is able to recover the identity of some of the legitimate users
that participated in the construction of the decoder (traitors). In such a system
piracy would be reduced due to the fear of exposure.
A standard assumption is that each user’s decoder is “open” (to the user)
so that the decryption key is recoverable. A set of users can combine their keys
in order to construct a pirate decoder. It is immediately clear that each user
should have a distinct private key, otherwise distinguishing traitors from non-
traitors would be impossible. Given the contents of a pirate decoder the authority
should be able to recover one of the traitors’ keys. A scheme that allows this,
is called a Traitor Tracing Scheme (TTS). A standard measure of the efficiency
of a TTS is the size of the ciphertexts. Constructing a TTS with linear (in the
number of users) ciphertexts is trivial; as a result the focus is on how to achieve
traitor tracing when the ciphertext size is sublinear in the number of users. An
additional requirement for TTSs is black-box traitor tracing, namely, a system
where tracing is done using only black-box access to the pirate decoder (namely,
only an input/ output access is allowed). To keep tracing cheap, it is extremely
desirable that the tracing algorithm is black-box.
Previous Work
Let us first review the work of the various notions of traitor tracing. Traitor Trac-
ing was introduced in [CFN94,CFNP00], with the presentation of a generic TTS.
Explicit constructions based on combinatorial designs were given in [SW98b].
A useful variation of the [CFN94] scheme was presented in [NP98]. Public key
Traitor Tracing Schemes based on ElGamal encryption were presented in [KD98,
BF99]. In most settings (here also) it is assumed that the tracing authority is
trusted (i.e. the authority does not need to obtain a proof that a certain user is
a traitor); the case where the authority is not trusted was considered in [Pfi96,
PS96,PW97]. An online approach to tracing, targeting pirate re-broadcasting
(called dynamic traitor tracing) was presented in [FT99]. A method of dis-
couraging users from sharing their decryption keys with other parties, called
self-enforcement, was introduced in [DLN96]. A traitor tracing scheme along
the lines of [KD98,BF99] combining self-enforcement and revocation capabilities
was presented in [NP00]. Further combinatorial constructions of traitor tracing
schemes in combination with revocation methods were discussed in [GSY99].
Previous work on black-box traitor tracing is as follows: a black-box traitor
tracing scheme successful against any resettable1 pirate decoder was presented in
[CFN94,CFNP00]. In [BF99], a black-box traitor tracing scheme was presented
against a restricted model called “single-key pirates”: the pirate-decoder uses
a single key for decryption without any other side computation (note that this
single key could have been a combination of many traitors’ keys). In the same
paper, a weaker form of black-box traitor tracing was presented: “black-box con-
firmation.” In this setting the tracer has a set of suspects and it wants to confirm
that the traitors that constructed the pirate decoder are indeed included in the
set of suspects. The work in [BF99] presented a single-query black-box confir-
1
A pirate decoder is called resettable if the tracer has a means of resetting the device
to its initial state for each trial.
Self Protecting Pirates and Black-Box Traitor Tracing 65
mation method: using a single query to the pirate decoder the tracer solves the
problem; multiple queries may be used to increase confidence. Black-box confir-
mation can be used for general tracing by trying all possible subsets. However
the resulting traitor tracing algorithm needs exponential time (unless the num-
ber of traitors is a constant). In [Pfi96], a piracy prevention behavior was noted,
dealing with the possibility of pirate decoders shutting down whenever an invalid
ciphertext (used for tracing, perhaps) is detected. In [BF01] a combination of
black-box confirmation and tracing appeared: extending the methods of [BF99]
it was shown how one can trace within the suspect set (which is assumed to
include all traitors) and recover one of the traitors. In addition, a new mode of
black box tracing was considered in [BF01] called minimal access black box trac-
ing: for any query to the pirate decoder, the tracer does not obtain the plaintext
but merely whether the pirate-decoder can decrypt the ciphertext and “play” it
or not (e.g. the case of a pirate cable-box incorporating a TV-set).
Our Results
The Model: Our perspective on black-box traitor tracing is as follows: under
normal operation all users decrypt the same message; we say that in this case
all users are colored in the same way. As we will see, in order to trace a pirate
decoder in a black-box manner we have to disrupt this uniformity: color the
users using more than one color. A ciphertext that induces such a coloring over
the user population, will be called an “invalid” ciphertext. Tracing algorithms
will have to probe with invalid ciphertexts (we assume our tracing methods
to be aware of this fact). We consider a simple self-protection mechanism that
can be used by any pirate decoder in order to detect tracing: before decrypting,
the pirate decoder computes the projection of the induced coloring onto the set
of traitor keys (for some systems the stored keys can actually be combinations
of traitor keys). If the traitor keys are colored by two colors or more, then the
decoder knows that it is probed by the tracer, and can take actions to protect
itself. Computing the projection of the coloring onto the traitor keys is typically
not a time-consuming operation and can be implemented within any software
or hardware pirate decoder: prior to giving output the pirate decoder decrypts
the given input with all available traitor keys (or combinations thereof) that are
stored in its code. Since the decoder is black-box accessible, the presence of the
keys internally, does not reduce its evasion power.
Necessary Combinatorial Condition and Negative Results: By
adding the above simple self-protecting mechanism to the capabilities of pirate
decoders together with an appropriate reaction mechanism we present a condi-
tion that has to be satisfied by any TTS in order to be able to black-box trace
a pirate decoder that contains ω(log n) traitor keys. Namely, the condition that
most users should be colored in the same way. If this is not the case, we present
a strategy that can be followed by a pirate decoder of any type (involving the
previously stated self-protection mechanism) that defeats any black-box tracing
method with high probability, assuming randomly chosen traitors.
Necessary Condition and Negative Results for Confirmation: The
assumption above which underlies our negative result is that the choice of keys
66 A. Kiayias and M. Yung
available to the pirate is randomly distributed over the keys of the user popula-
tion, i.e. the tracer has no a-priori idea about the identities of the traitors. In the
context of black-box confirmation the situation is different because it is assumed
that the tracer has a set of suspects, that are traitors with higher probability
compared to a user chosen at random. We formalize this setting (differently
from [BF01]) by assigning a “confidence level” function to the set of suspects
that measures the amplification of the probability that a user is a traitor given
that he belongs to the suspect set. Using this formalization we show that single-
query black-box confirmation fails against any pirate-decoder, provided that the
decoder contains a superlogarithmic number of traitor keys, and the confidence
level of the tracer is below a certain (explicitely defined) threshold. We note that
the confidence level exhibits a trade-off with the size of the suspect set, i.e. for
small suspect sets, the confidence of the tracer should be very high in order to be
successful in black-box confirmation. An immediate corollary of our result is that
single-query black-box confirmation can be successful against decoders including
a superlogarithmic number of traitor keys only in the case that the confidence
level of the tracer is so high that the probability that a user is a suspect given
that it is a traitor is arbitrarily close to 1. Note that in this case, confirmation
becomes quite localized (the tracer knows already that the suspect set contains
all traitors with very high probability; this type of confirmation is covered in
[BF01]).
M outputs the string 0f (n) ). Moreover, for any f, g ∈ F it holds that either
(a) ∃n0 ∀n ≥ n0 (f (n) = g(n)) (b) ∃n0 ∀n ≥ n0 (f (n) > g(n)) (c) ∃n0 ∀n ≥
n0 (f (n) < g(n)) (i.e. it is possible to define a total order over F). Since we are
interested only in functions less than n, we assume that ∀f ∈ F it holds that
∀n(f (n) ≤ n). To facilitate traitor tracing, some additional security requirements
have to be imposed.
Non-Triviality of Decryption. For any probabilistic polynomial time al-
gorithm A the following probability is negligible for almost all messages m:
Prob[m = m0 : m0 ← A(1w , c); c ← E(1w , m, e)]. This property ensures that
there are no “shortcuts” in the decryption process. Namely, decryption with-
out access to a key amounts to reversing a one-way function, thus for effective
decryption one needs some or a combination of the designated user keys.
Key-User correspondence. It should be guaranteed that each user does not
divulge its own key; more generally that a user is responsible when its key
is being used for decryption. This should apply to collusions of users as well.
More specifically, given t ∈ F, there should be no probabilistic polynomial-time
algorithm working with non-negligible success probability that given the keys of
a set of subscribers di1 , . . . , dik with k ≤ t(n), and all other public information,
and is able to compute one additional private key dj with j 6∈ {i1 , . . . , ik }.
Non-Ambiguity of Collusions. The user keys are drawn from a key-space De
u
defined for each encryption key e; i.e. De ⊆ Gw contains all d that can be used
to invert e. Obviously De ⊇ K, if (e, K) ← G(1w , n). Then, the following holds:
Given t ∈ F; let A, B be probabilistic polynomial algorithms. Given T1 , T2 two
disjoint subsets of K, of cardinality less or equal to t(n). Let I1 , I2 be all private
and public information available to T1 , T2 correspondingly. Then the following
probability is negligible Prob[d = d0 ∧ (d ∈ De ) : d ← A(T1 , I1 , 1w ), d0 ←
B(T2 , I2 , 1w )].
Non-ambiguity of collusions requires that two disjoint sets of users cannot
generate the same decryption key. It is an essential property of any traitor-
tracing scheme, since if it fails it is immediately possible to generate instances
where tracing is impossible due to ambiguity.
Definition 1. Traitor Tracing Scheme (non-black-box). Given t, f, v ∈ F,
a MES satisfying non-triviality of decryption, key-user correspondence for t(n),
non-ambiguity of collusions for t(n) and, in addition, has wv(n) ciphertext size,
is called a ht(n), f (n), v(n)i-Traitor Tracing Scheme (TTS) if there exists a
probabilistic polynomial time algorithm B (tracing algorithm) s.t. for any set
T ⊆ K, (e, K) ← G(1w , n), with |T | ≤ t(n) and any probabilistic polynomial
time algorithm A that given T and all public information outputs d ∈ De , it
holds that: Prob[τ ∈ T : τ ← B(d, K, 1w ), d ← A(T, 1w )] ≥ 1/f (n).
Because of key-user correspondence, the recovery of τ is equivalent to ex-
posing a traitor. Note that in the non-black-box setting it is assumed that the
decoder is “open” and because of the non-triviality of decryption a decryption
key is available to the tracer. Black-Box Traitor Tracing Schemes where the trac-
ing algorithm does not have access to keys (but only black box access to devices)
are discussed in the next section.
Self Protecting Pirates and Black-Box Traitor Tracing 69
of these functions to n, e.g. k(n) = Θ(n) means that the number of colors is
linear in n etc. We make the assumption that the functions k(n), ci (n) that are
related to colorings produced by R are always in F. Note that occasionally we
may suppress “(n)” and write k instead of k(n) etc.
Definition 2. For t, f ∈ F, we say that a polynomial-time (in n) probabilistic
algorithm R is a ht(n), f (n)i-tracer if for any set of traitors T ⊆ U s.t. |T | ≤
t(n) and for any polynomial-time pirate-decoder algorithm B that was created
using the keys of T , RB given all user keys, outputs a user with non-negligible
probability in n, who is in the traitor set with probability at least 1/f (n).
In this paper we consider tracers R which are non-ambiguous, i.e., when they
probe the decoder they know that their queries are valid ciphertexts or invalid
ones.
We will refer to the function f as the uncertainty of the tracer. Obviously
obtaining a tracer with Θ(n) uncertainty for any MES is very simple: merely
output any user at random achieves that. The other extreme is a tracer with
uncertainty Θ(1) (ideally uncertainty=1), that no matter how large is the user
population it returns a traitor with constant probability of success.
Remark 3. Consider the tracing approach of accusing any user at random. As
stated above this has linear uncertainty and is obviously not useful in any setting.
Suppose now that we have a lower bound on the number of traitors ω(t0 (n)); the
uncertainty of this tracing approach becomes n/t0 (n) which can be sublinear if
t0 (n) is not a constant. Nevertheless because we would like to rule it out as a
way of tracing we say that the uncertainty is still linear — and therefore not
acceptable (but it is linear in n0 = n/t0 (n) instead of n); abusing the notation
we may continue to write that the uncertainty in this case is Θ(n)).
without interacting with any agents which know the result of the coin cannot
have probability greater than 1/2). A preliminary result on tracing follows; we
show that strings that induce the trivial coloring over the user population are
useless for tracing:
Proof. If the R algorithm uses an element of X1 for querying the pirate decoder
then, the pirate decoder decrypts normally. This answer can be simulated by
any decryption box. In particular, since the tracer is non-ambiguous it knows
that it can generate the answer itself using any of the user keys (since it knows
all user keys). t
u
We will assume that the number of traitors in any pirate decoder is sublinear
in n, and as it is customary, we will give to the tracer the advantage of knowing
a (sublinear) upper bound on the number of traitors. Additionally we would
like to point out that our negative results on traitor tracing are not based on
history-recording capabilities of the pirate decoder (i.e. B as an oracle does not
have access to the previously asked queries). As a result the tracer is allowed
to reset the decoder in its initial state after each query. In addition, our results
apply even when the tracer has access to the randomness used by the pirate
decoder.
In this section we establish the fact that if the number of traitor keys is su-
perlogarithmic in the user population size, it is not possible to trace without
the decoder noticing it, unless queries of a specific type are used. We denote
k(n)
by ∪i=1 Cin ↓ T the projection of a coloring onto the traitor keys. Any pirate
decoder can easily compute ∪Cin ↓ T ; this is done by merely applying the de-
cryption algorithm with each traitor key onto the given element s. Since this
is a straightforward process we assume that any pirate decoder implements it.
Obviously, if ∪Cin ↓ T contains more than one color then the decoder “under-
stands” it is being traced. In some systems, rather than projecting on individual
traitor keys, one can project on combinations thereof (and thus reduce storage
and computation requirements).
The Theorem asserts that a decoder detects that it is being queried unless
most users are colored in the same way. Namely, the negation of the Theorem’s
condition ¬(∃i ci (n) = n − o(n)) is that there is an i s.t. almost all users are
colored in the same way (ci (n) = n − o(n)). By “almost all” we mean that
ci (n)/n → 1 when n → ∞.
In this section we discuss how a pirate decoder can take advantage of Theorem 6
in order to protect itself. Specifically we show that there is a deterministic self-
protecting strategy for any pirate decoder: when the pirate decoder detects tracing
it returns “0” (a predetermined output). This strategy is successful for decoders
containing enough traitor keys. The next Theorem asserts that any BBTTS
whose underlying MES can only produce ciphertexts that are either valid or do
not color most users in the same way (as discussed in the previous section) has
Θ(n) uncertainty for any pirate decoder that incorporates t(n) = ω(log n) traitor
keys.
Self Protecting Pirates and Black-Box Traitor Tracing 73
Theorem 7. Given an ht(n), f (n), v(n)i-BBTTS s.t. the underlying MES can
k(n)
only induce colorings ∪i=1 Cin with the property (k(n) = 1) ∨ ¬(∃i ci (n) = n −
o(n)) then it holds that if t(n) = ω(log n) then f (n) = Θ(n).
Proof. Assume that the decoder employs t(n) traitor keys. The algorithm fol-
lowed by the decoder is the following: before decrypting, it computes ∪Cin ↓ T .
If all traitor keys are colored in the same way, it decrypts using any key. If there
is more than one color the decoder returns “0”.
The coloring conditions on the MES assures that an invalid ciphertext will be
detected by the pirate decoder based on Theorem 6. Consequently the decoder
on an invalid ciphertext will return “0” with overwhelming probability. On the
other hand, any element in X1 will be properly decrypted. Since the tracer is
non-ambiguous, the oracle can be simulated with overwhelming probability. So
the tracer essentially operates without interacting with the decoder. By remark
3 the uncertainty of the scheme is Θ(n). t
u
The pirate decoder strategy used in the proof above can be defeated by a
tracer that is able to produce colorings s.t. n − o(n) users are colored in the same
way. This is achieved in the MES of [CFNP00], and a black-box traitor tracing
method which uses such colorings is presented there.
Lemma 8. Let S be a set of users such that s(n) := |S| and an α(n) ∈ F such
that s(n)α(n) ≤ cn for some c ∈ (0, 1). Suppose that a pirate decoder employing
74 A. Kiayias and M. Yung
these properties in combination with the generic results reveal inherent black-box
tracing limitations of these schemes in the self-protecting model. This demon-
strates that these schemes are, in fact, sensitive to the self-protection property of
our model and the number of traitors. This shows the power of the self-protecting
pirate model, since in more restricted pirate models (restricting the power of the
pirate decoder or the number of traitors) tracing was shown possible, whereas
we get negative results for the more general model defined here. We note that
below we will assume that self-protection involves decryption with traitor keys.
However, achieving self-protection using a linear combination of traitor keys is
possible as well; in which case the actual traitor keys are not necessarily stored
and the storage as well as the computation of the pirate can be reduced.
Our results can be seen as a separation of the schemes of [BF99,KD98] and the
scheme of [CFN94,CFNP00] with respect to black-box traceability. In the latter
scheme our self-protection method fails to evade tracing, since the ciphertext
messages induce colorings which fall into the exception case of Theorem 6 and
the tracing method, in fact, employs such ciphertexts.
Description. We present the basic idea of the Boneh and Franklin scheme
[BF99]. All base operations are done in a multiplicative group Gq in which
finding discrete logs is presumed hard, whereas exponent operations are done in
Zq . Vectors (denoted in bold face) are in Zqv and a · b denotes the inner product
of a and b. Given a set Γ := {γ1 , . . . , γn } where γi is a vector of length v, and
given random r := hr1 , . . . , rv i and c ∈ Zq , we select di = θi γi , i = 1, . . . , n such
that ∀i r · di = c, where n is the number of users (i.e. we select θi := c/(r · γi )).
The vector γi is selected as the i-th row of an (n×v)-matrix B where the columns
of B form a base for the null space of A, where A is an (n − v) × n matrix where
the i-th row of A is the vector h1i , 2i , . . . , ni i, i = 0, . . . , n − v − 1.
The public key is hy, h1 , . . . , hv i, where hj = g rj and y = g c , where g is a
generator of Gq . Note that all vectors di are representations of y w.r.t the base
h1 , . . . , hv . Vector di is the secret key of user i. Encryption is done as follows:
given a message M ∈ Gq , a random a ∈ Zq is selected and the ciphertext is
hM y a , ha1 , . . . , hav i. Given a ciphertext, decryption is done by applying di to the
“tail” of the ciphertext: ha1 , . . . , hav pointwise, in order to obtain y a by multiplica-
tion of the resulting points, and then M is recoverable by division (cf. ElGamal
encryption). In [BF99] a tracing algorithm is presented showing that the scheme
described above is a ht(n), 1, 2t(n)i-TTS. It is also shown that their scheme is
black-box against pirate decoders of specific implementations (“single-key pi-
rate”, “arbitrary pirates”). We next investigate further black-box capabilities of
the [BF99]-scheme.
k(n)
Negative Results. Suppose that we want to induce a coloring ∪i=1 Cin in the
[BF99] scheme. Given a (possibly invalid) ciphertext hC, g r1 x1 , . . . , g rv xv i, user i
decrypts as follows: C/g r1 x1 (di )1 +...+rv xv (di )v . Thus, we can color user i by the
color label C/g θi ci (the value of the decryption by the user) provided that we
76 A. Kiayias and M. Yung
Corollary 12. Let ht(n), f (n), v(n)i-BBTTS be a scheme based on the [BF99]-
MES. If t(n) = ω(log n) then it holds that either f (n) = Θ(n) or that v(n) =
n − o(n).
Essentially this means that the [BF99]-scheme is incapable of black-box trac-
ing superlogarithmic self-protecting traitor collusions unless the ciphertext size
is linear in the number of users.
Regarding single-query black-box confirmation (introduced in [BF99]) we
showed that when suspicion is modeled as biasing the uniform distribution, where
suspects are distinguished by increasing the probabilistic confidence in them
being traitors, then as a result of section 4.3 it holds that:
Corollary 13. In the [BF99]-scheme, Single-query Black-box confirmation is
impossible against a pirate decoder which includes t(n) = ω(log n) traitor keys,
unless the probability that a user is a suspect given that it is a traitor, is arbi-
trarily close to 1.
Note: in [BF01], a more sophisticated combination of black-box confirmation
with traitor tracing is presented. The scheme is a single-query black-box confir-
mation in principle, but multiple queries that induce different colorings within
the suspect set are employed, until a traitor is pinned down. Our negative re-
sults for black-box confirmation (in the self-protecting model variant) apply to
this setting as well. The arguments in [BF01] are plausible in the “arbitrary pi-
rates” model (including self-protecting one). For the method to work, however,
they assume “compactness” (called confirmation requirement), namely that it
is given that all traitors are within the suspect list. Our results point out that
without this compactness, relying solely on likelihood (modeled as probability),
successful confirmation is unlikely unless there is a very high confidence level
(which will enforce the “compactness condition” almost always). Our results do
not dispute black-box confirmation under compactness but rather point to the
fact that obtaining (namely, biasing a uniform distribution to get) a “tight”
suspect set S which satisfies compactness at the same time can be hard.
Pt
αm ∈ Zq with m=1 αm = 1 and i1 , . . . , it ∈ {1, . . . , n}. This tuple can also be
used for decryption since: given hg r , sg ra0 , g ra1 , . . . , g rav i, one may compute
Pt Pt Pt
sg ra0 g ra1 m=1 αm (im )1 . . . g rav m=1 αm (im )v /g r m=1 αm f (im ) = s
To achieve non-ambiguity of collusions we would like to show that Pt given any
two subsets of users i1 , . . . , it and j1 , . . . , jt it should hold that { m=1 αm im |
Pt
α1 , . . . , αm } ∩ { m=1 αm j m | α1 , . . . , αm } = ∅. Something that can be true
only if v ≥ 2t i.e. v should be twice the size of the biggest traitor collusion
allowed. In the light of this, it is not known if it is possible to trace traitors in
this scheme (even in the non-black-box setting). The only known approach is the
brute-force “black-box confirmation” for all possible traitor subsets suggested in
[BF99] that needs exponential time (unless the number of traitors is assumed
to be a constant). Despite this shortcoming the [KD98]-scheme is a very elegant
public-key MES that inspired further work as seen in the schemes of [BF99,
NP00]. In the rest of the section we show that the [KD98]-scheme has similar
black-box traitor tracing limitations as the [BF99]-scheme.
Negative Results. Suppose we want to induce the coloring ∪ki=1 Cin in the
r x0 a0 x1 a1
[KD98]-MES. Given a (possibly invalid) Pv ciphertext hg , sg P,vg , . . . , g xv av i,
x a (i) −rf (i) (x −r)aj (i)j
user i applies hf (i), ii to obtain sg j=0 j j j = sg j=0 j . So
ci
we can color each user by a color-label sg , if we find a z s.t. z · i = ci for all
i = 1, . . . , n; given such a z we can compute the appropriate x0 , . . . , xv values
to use in the ciphertext as follows: xj = zj (aj )−1 + r for j = 0, . . . , v. The set of
all valid ciphertexts corresponds to the choice z = 0 (and in this case it follows
that x0 = . . . = xr ), nevertheless the choice of z = ha, 0, . . . , 0i also colors all
users in the same way although in this case the decryption yields sg a (instead
of s).
Next we present a property of the Kurosawa-Desmedt scheme, showing that
an invalid ciphertext (which induces more than one color), cannot color too many
users by the same color.
Theorem 14. In the [KD98]-MES, given a (possibly invalid) ciphertext that
induces a coloring over the user population so that v + 1 users are labelled by the
same color then all users are labelled by the same color.
Proof. Suppose that the ciphertext hg r , sg x0 a0 , g x1 a1 , . . . , g xv av i induces a color-
label sg ci on user i so that v + 1 users are colored in the same way. Without
loss of generality we assume that c1 = . . . = cv+1 . Define zj := (xj − r)aj for
j = 0, . . . , v. It follows that i·z = ci for i = 1, . . . , n. Seen as a linear system with
z as the unknown vector the equations i · z = ci for i = 1, . . . , n suggest that z
corresponds to the coefficients of a polynomial p(x) := z0 + z1 x + . . . zv xv such
that p(i) = ci for i = 1, . . . , n. Because p(1) = . . . = p(v + 1) and the degree of p
is at most v it follows immediately that p has to be a constant polynomial, i.e.
z = ha, 0, . . . , 0i with a = p(1) = . . . = p(v + 1). (Any v + 1 equal value points on
the polynomial will imply the above, which justifies the arbitrary choice of users).
If follows immediately that user i receives the color label sg ci = sg i·z = sg a and
as a result all users are labeled by the same color. t
u
Self Protecting Pirates and Black-Box Traitor Tracing 79
Corollary 15. Let ht(n), f (n), v(n)i-BBTTS be a scheme based on the [KD98]-
MES. If t(n) = ω(log n) then it holds that either f (n) = Θ(n) or that v(n) =
n − o(n).
Essentially this means that the [KD98]-scheme is incapable of black-box trac-
ing superlogarithmic self-protecting traitor collusions unless the ciphertext size
is linear in the number of users.
References
[BF99] Dan Boneh and Matthew Franklin, An Efficient Public Key Traitor Tracing
Scheme, CRYPTO 1999.
[BF01] Dan Boneh and Matthew Franklin, An Efficient Public Key Traitor Tracing
Scheme, manuscript, full-version of [BF99], 2001.
[CFN94] Benny Chor, Amos Fiat, and Moni Naor, Tracing Traitors, CRYPTO 1994.
[CFNP00] Benny Chor, Amos Fiat, and Moni Naor, and Benny Pinkas, Tracing
Traitors, IEEE Transactions on Information Theory, Vol. 46, no. 3, pp.
893-910, 2000. (journal version of [CFN94,NP98]).
[DLN96] Cynthia Dwork, Jeff Lotspiech and Moni Naor, Digital Signets: Self-
Enforcing Protection of Digital Content, STOC 1996.
[FT99] Amos Fiat and T. Tassa, Dynamic Traitor Tracing, CRYPTO 1999.
[GSY99] Eli Gafni, Jessica Staddon and Yiqun Lisa Yin, Efficient Methods for In-
tegrating Traceability and Broadcast Encryption, CRYPTO 1999.
[KD98] Kaoru Kurosawa and Yvo Desmedt, Optimum Traitor Tracing and Asym-
metric Schemes, Eurocrypt 1998.
[NP98] Moni Naor and Benny Pinkas, Threshold Traitor Tracing, CRYPTO 1998.
[NP00] Moni Naor and Benny Pinkas, Efficient Trace and Revoke Schemes , In the
Proceedings of Financial Crypto ’2000, Anguilla, February 2000.
[Pfi96] Birgit Pfitzmann, Trials of Traced Traitors, Information Hiding Workshop,
Spring LNCS 1174, pp. 49-63, 1996.
[PS96] Birgit Pfitzmann and Matthias Schunter, Asymmetric Fingerprinting, Eu-
rocrypt 1996.
[PW97] Birgit Pfitzmann and M. Waidner, Asymmetric fingerprinting for larger
collusions, in proc. ACM Conference on Computer and Communication
Security, pp. 151–160, 1997.
[SW98a] Douglas Stinson and Ruizhong Wei, Key preassigned traceability schemes
for broadcast encryption, In the Proceedings of SAC’98, Lecture Notes in
Computer Science 1556, Springer Verlag, pp.144–156, 1998.
[SW98b] Douglas R. Stinson and R. Wei, Combinatorial Properties and Construc-
tions of Traceability Schemes and Frameproof Codes, SIAM J. on Discrete
Math, Vol. 11, no. 1, 1998.
Minimal Complete Primitives for Secure
Multi-party Computation
1 Introduction
In this paper, with respect to the strongest, active adversary, we initiate the
study of minimal complete primitives for multi-party computation from the point
of view of the cardinality of the primitive — i.e., the number of players accessing
it. A primitive is called complete if any computation can be carried out by the
players having access (only) to the primitive and local computation. A primitive
is called minimal if any primitive involving less players is not complete.
For n players, t of which might be corrupted, the question is well understood
for t < n/3. In this paper we consider this question for t ≥ n/3. We show that
in fact there are three interesting “regions” for t: t < n/3, n/3 ≤ t < n/2,
and n/2 ≤ t < n, and present, for each region, minimal complete primitives for
t-resilient unconditional multi-party computation.
For the standard model with secure pairwise channels between the players,
the first general solution of the problem was given by Goldreich, Micali, and
Wigderson [GMW87] with respect to computational security. Ben-Or, Gold-
wasser, and Wigderson [BGW88] and Chaum, Crépeau, and Damgård [CCD88]
constructed the first general protocols with unconditional security. Additionally,
it was proven in [BGW88] that unconditionally secure MPC was possible if and
only if less than half (one third) of the players are corrupted passively (actively).
For the model where, in addition to the pairwise secure channels, a global
broadcast channel is available, Rabin and Ben-Or [RB89] constructed a proto-
col that tolerates (less than) one half of the players being actively corrupted.
Their solution is not perfect, as it carries a small probability of error. However,
it was later shown by Dolev, Dwork, Waarts and Yung [DDWY93] that this
is unavoidable for the case t ≥ dn/3e (and the assumed communication primi-
tives), as there exist problems with no error-free solutions in this setting. Fitzi
and Maurer [FM00] recently proved that, instead of global broadcast, broadcast
among three players is sufficient in order to achieve unconditionally secure MPC
for t < n/2.
When k = 2, it is well known that secure pairwise channels (or, more gen-
erally, OT) are enough (complete) for t < n/3, as it follows from [BGW88,
CCD88] and [Kil88]. We show that, for n > 2, no primitive of cardinality 2 can
go above this resiliency bound, including primitives that are complete for 2-party
computation.
The case k = 3 is of special interest. We introduce two primitives: oblivi-
ous cast [Bla96], a natural generalization of oblivious transfer to the three-party
case, and converge cast, a primitive that is related to the anonymous channel
of [Cha88], and show that they are complete for t < n/2. In light of the impos-
sibility result for k = 2, these primitives are also minimal.
For the case k = n we introduce a new primitive, which we call the universal
black box (UBB), and show that it is complete for arbitrary resiliency (t < n).
This primitive has interesting implications for computations involving a trusted
third party (TTP), in that it enables oblivious TTPs, i.e., trusted parties that do
not require any prior knowledge of the function to be computed by the players
— even if a majority of the players are corrupted. The UBB is also minimal,
since we also show that no primitive of cardinality n − 1 can be complete for
t < n. These results are summarized in Table 1.
Multicast and “convergecast,” with a single sender and a single recipient,
respectively, constitute two natural communication models. We also show that
no primitive that conforms to these types — even of full cardinality — can
achieve more than t < n/2, and therefore be more powerful than our primitives
of cardinality 3. In other words, with respect to these types, Table 1 “collapses”
to two equivalence classes: k = 2 and 3 ≤ k ≤ n.
All the primitives we present allow for efficient multi-party computation.
the players; i.e., the adversary may make the corrupted players deviate from the
protocol in an arbitrarily malicious way, and no assumptions are made about his
computational power.
In contrast to the treatment of two-party computation (e.g. [Kil91,Kil00] and
[BMM99]), where only one predefined player receives the final result of the com-
putation, our model allows every player to receive his own (in general, different)
result — which corresponds to the general notion of multi-party computation
in [Yao82,CCD88,BGW88]. Similarly, our definition of a primitive, as given in
the next paragraph, also allows every involved player to provide an input and
get an output, as opposed to just one player. Nonetheless, our constructions ap-
ply to the former model as well since for each of our complete multiple-output
primitives there is also a single-output primitive that is complete with respect
to single-output SFE.
3 Primitives of Cardinality 2
It is well known that secure channels (SC2 ) are sufficient for unconditional
SFE [BGW88,CCD88] with t < n/3. That is, in our parlance:
Proposition 1. For any n, there is a primitive of cardinality 2, the secure chan-
nel, that is complete for t < n/3.
Since we are assuming that every permutation of the players share a primitive,
the type of a secure channel is [1, 1]; hence, for t < n/3, the complete primitive is
of the weakest type. We now prove that, for t ≥ dn/3e, no primitive of cardinality
2 can be complete (if n > 2). This is done by showing that there is a problem,
namely broadcast (aka Byzantine agreement) [PSL80], that cannot be solved in a
model where players are connected by “g2 -channels” for any two-party primitive
g2 . We first recall the definition of broadcast.
We first consider the special case of n = 3 and t ≥ 1, and then reduce the
general case of n ≥ 3 and t ≥ dn/3e to this special case. The impossibility
proof (for n = 3 and t ≥ 1) is based on the impossibility proof in [FLM86],
where it is shown that broadcast for t ≥ dn/3e is not achievable in a model with
pairwise authentic channels. In the new model, however, every pair of players
can perform secure two-party computation. The idea in the proof is to assume
that there exists an unconditionally secure broadcast protocol involving three
players — interconnected by such a “g2 channel”, which then can be used to
build a different system with contradictory behavior, hence proving that such a
protocol cannot exist.
Lemma 1. Let n = 3. For any two-player primitive connecting each pair of
players, unconditionally secure broadcast is not possible if t ≥ 1.
Proof (sketch). Suppose, for the sake of contradiction, that there is a protocol
that achieves broadcast for three players p0 , p1 , and p2 , with p0 being the sender,
even if one of the players is actively corrupted.
Let π0 , π1 , π2 denote the players’ corresponding processors with their local
programs and, for each i ∈ {0, 1, 2}, let πi+3 be an identical copy of processor πi ;
and let the (set of) given two-party primitive(s) between two processors πi and
πj be called the channel between πi and πj . Instead of connecting the original
processors as required for the broadcast setting, we build a network involving
all six processors (i.e., the original ones together with their copies) by arranging
them in a circle, i.e., each processor πi (i ∈ {0, . . . , 5}) is connected (exactly) by
one channel with π(i−1) mod 6 and one with π(i+1) mod 6 .
We now prove that for every pair of adjacent processors πi and π(i+1) mod 6 in
the new system and without the presence of an adversary, their common view is
indistinguishable from their view as two processors πi mod 3 and π(i+1) mod 3 in the
original system with respect to an adversary that corrupts the remaining proces-
sor π(i+2) mod 3 in an admissible way.4 Refer to Figure 1. The original system is
depicted in Figure 1-(a). Let the processors π0 and π1 be correct. An admissible
4
I.e., for every pair of original processors, the rearrangement simultaneously simulates
some particular adversary strategy by corrupting the third processor.
Minimal Complete Primitives for Secure Multi-party Computation 87
4 Primitives of Cardinality 3
Evidently, a primitive g3 [1, 1] is equivalent to g2 [1, 1] since in g3 one of the
players neither provides an input nor receives an output. Hence, in this section
5
We assume that any input value from {0, 1} will be selected by the sender with
some non-negligible probability. Otherwise, the broadcast problem could be trivially
solved for any t < n.
88 M. Fitzi et al.
we consider primitives (of cardinality 3) of type different from [1, 1]. In fact, it
turns out that either two inputs (and single output) or two outputs (and single
input) is sufficient. For each type we introduce a primitive and show it to be
complete for t < n/2. Moreover, we show that no primitive of cardinality 3 can
be complete for t ≥ dn/2e.
It follows from [RB89,CDD+99] that pairwise secure channels and a global
broadcast channel are sufficient for SFE secure against t < n/2 active corrup-
tions. Hence, it is sufficient to show that the primitives introduced in this section
imply both, unconditionally secure pairwise channels and global broadcast.
Implementing secure channels using oblivious cast. Secure pairwise channels can
be achieved by the simulation of authentic channels and the implementation of a
pairwise key-agreement protocol between every pair of players pi and pj . Players
pi and pj can then use the key (e.g., a one-time pad) to encrypt the messages to
be sent over the authentic channel.
Lemma 2. Let n ≥ 3. Then authentic channel reduces to oblivious cast for
t < n/2.
Proof (sketch). An authentic channel between players pi and pj can be achieved
from oblivious cast among pi , pj , and some arbitrary third player pk ∈ P \
{pi , pj }, by pi (or pj ) oblivious-casting his bit (or whole message) σ times. Fi-
nally, pj decides on the first bit he has received in those oblivious casts.
Since it is sufficient to achieve authentic channels only between pairs of cor-
rect players we can assume that the sender is correct. The invocation of this
channel fails if pj does not receive any of the bits being sent by oblivious cast,
and this happens with a probability of at most Prauth err = 2
−σ
. t
u
In order to generate a one-time pad (OTP) sij of one bit between two players
pi and pj , we can let pi generate some m random bits b1 , . . . , bm and oblivious-
cast them to pj and some arbitrary third player pk , where m is chosen such
that, with overwhelming probability, pj receives at least one of those random
bits (every bit bx is received by pj with probability 12 ). Finally, pj uses his
authentic channel to pi (Lemma 2) to send to pi the index x ∈ {1, . . . , m} of the
first bit bx that pj received. Since pk gets no information about the bit, bit bx
Minimal Complete Primitives for Secure Multi-party Computation 89
Definition 5. Weak 2-cast is a primitive among three players: one sender and
two recipients. The sender sends an input bit b ∈ {0, 1} and both recipients get
an output (decision) value v ∈ {0, 1, ⊥} such that the following conditions hold:
(1) If both recipients are correct and decide on different values, then one of
them decides on ⊥.
(2) If the sender is correct, then all correct recipients decide on his input bit.
The idea behind the implementation of weak 2-cast using oblivious cast is
to have the sender repeatedly oblivious-cast his bit a given number of times.
Hence, a recipient who receives two different bits reliably detects that the sender
is faulty and may safely decide on ⊥. On the other hand, in order to make the
two recipients decide on different bits, a corrupted sender must oblivious-cast
0’s and 1’s in such a way that each recipient gets one value, but not the other
one. However, since the sender cannot influence which of the recipients gets a
bit, he can enforce this situation only with exponentially small probability. We
now describe the implementation in more detail.
6
A more efficient way to generate an OTP of length ` is to choose a larger m and
have pj send to pi the indices of the first ` bits he received. For simplicity we restrict
ourselves to the less efficient but simpler method.
90 M. Fitzi et al.
The proof of the following lemma follows from elementary probability, inde-
pendently of p2 ’s strategy:
Lemma 6. Consider protocol Secure-Channel-Impl-2. If p0 and p1 are cor-
rect, then for every k, k ∈ {1, . . . , `},
(x )
(1) s01 [k] = s1 0 [k] with probability 12 ;
(1−x0 )
(2) s01 [k] = s1 [k] with probability 13 .
Lemma 7. Let n ≥ 3. Then secure channels reduces to converge cast for t <
n/2.
Proof. Consider protocol Secure-Channels-Impl-2. First, it is easy to see that
p2 gets no information about bit x0 . We now show that the channel also pro-
vides authenticity. The only ways the protocol can fail is that either x0 = 0
(0) 7 (0) 7
and H(s01 , s1 ) ≥ 12 ` (probability Pr0 ), or that x0 = 1 and H(s01 , s1 ) < 12 `
(probability Pr1 ). These probabilities can be estimated by Chernoff bounds:
(0)
Pr0 : By Lemma 6(1), s01 [k] = s1 [k] holds with probability 12 . Hence, Pr0
is the probability that out of ` trials with expected value 12 , at most 12 5
l do
` 1 2 `
−4(6) − 144
match. We get Pr0 ≤ e =e .
(0)
Pr1 : By Lemma 6(2), s01 [k] = s1 [k] holds with probability 13 . Hence, Pr1 is
the probability that out of ` trials with expected value 13 , at least 1− 12 7
= 125
`
− 9` ( 14 )2 `
− 144
do match. We get Pr1 ≤ e =e .
`
Thus, the overall error probability is Prauth err ≤ max (Pr0 , Pr1 ) = e− 144 . t
u
Implementing broadcast using converge cast. We now show how weak 2-cast of
a bit x0 from p0 to p1 and p2 can be simulated using CC3 . Roughly, he protocol
can be described as follows: First, p1 and p2 choose two random keys of an
adequate length, one for 0 and for 1, and converge-cast them to p0 . p0 stores
the two received (mixed) keys. p0 then sends his input bit to p1 and p2 using
secure channels. Additionally, p0 sends to p1 the (received) key corresponding
to his input bit. This key can then be used by p1 to “prove” to p2 which value
he received from p0 . If things “look” consistent to p2 (see protocol below), he
92 M. Fitzi et al.
adopts this value; otherwise, he outputs the value received directly from p0 .
!
Let “pi −→ pj ” denote the secure channel from pi to pj (by means of protocol
Secure-Channels-Impl-2).
Protocol Weak-2-Cast-Impl-2(p0 , {p1 , p2 }, `):
(0) (1)
1. Player pi , i = 1, 2, computes random keys si and si of length 2` over {0, 1, 2}
? (0) (0) (1) (1) (0) (1)
2. p1 , p2 −→ p0 : (s1 , s2 ); (s1 , s2 ) (element-wise) (p0 receives s0 ; s0 )
!
3. p0 −→ pi (i = 1, 2): x0 ∈ {0, 1} (pi receives xi ∈ {0, 1})
! (x )
4. p0 −→ p1 : s0 0 (p1 receives s01 )
0 (x1 ) 4
5. p1 : if H(s1 , s1 ) < 5 ` then y1 = x1 , else y1 =⊥ fi
!
6. p1 −→ p2 : y1 ; s01 (p2 receives y2 ; s02 )
(y )
7. p2 : if (y2 =⊥) ∨ H(s02 , s2 2 ) > 54 ` then y2 = x2 fi
Lemma 8. Let n ≥ 3. Then weak 2-cast reduces to converge cast for t < n/2.
The proof appears in Section A.
As before, Lemmas 7 and 8 and the constructions of [RB89,CDD+99,FM00]
yield
Theorem 3. Let n ≥ 3. Then there is a two-input single-output primitive of
cardinality 3, converge cast, that is complete for t < n/2.
We note that allowing the inputs of converge cast to be from a larger domain
(than {0, 1, 2}) considerably improves the efficiency of our reductions.
Originally (Section 2), we assumed that one primitive instance was available for
every permutation of every k-tuple of players, i.e., nk k! instances. In contrast,
it follows from Proposition 1 and from the constructions for the proofs of The-
orems 2, 3, and 7 that there is always a minimal complete primitive such that
at most 3 n3 instances of the primitive are required for the computation of any
function.
Corollary 2. For each cardinality k, 2 ≤ k ≤ n, and each primitive type, there
is a complete primitive such that at most 3 n3 instances are sufficient for un-
conditional SFE.
In this paper we have put forward the concept of minimal cardinality of
primitives that are complete for SFE. Since this is a new line of research, several
questions remain open.
We completely characterized the cases of types [1, 1], [1, k], and [k, 1], for
all cardinalities k ≤ n. In particular, for t < n/3 there is a complete primitive
SC2 [1, 1] and no g2 can do any better; and, for t < n/2, there are complete
primitives OC3 [1, 2] and CC3 [2, 1] and no gk , k ≤ n, can do any better. For the
case of type [k, k] it remains to prove Conjecture 1, that no gn−1 [n − 1, n − 1]
is complete for t ≥ dn/2e. This would partition the whole hierarchy into three
equivalence classes of cardinalities k = 2 (t < n/3), 2 < k < n (t < n/2), and
k = n (t < n).
It would also be interesting to analyze the completeness of primitives as
a function of the size of the input and output domains. For example, if the
primitive CC3 were restricted to one single input bit per player and one single
output bit, it would not be complete for t < n/2. Also the completeness of the
UBBn for t < n relies on the fact that inputs of large size are allowed.
References
[Bea92] D. Beaver. Foundations of secure interactive computation. In Advances in
Cryptology – CRYPTO ’91, LNCS, pp. 377–391. Springer-Verlag, 1992.
96 M. Fitzi et al.
A Proofs
We repeat the statements here for convenience.
Lemma 8. Let n ≥ 3. Then weak 2-cast reduces to converge cast for t < n/2.
In the proof we will be using the following two lemmas. Their validity follows
from elementary probability.
Lemma 9. The probability that in protocol Weak-2-Cast-Impl-2 p0 receives at
(x ) (x )
least 98 ` elements of s1 0 and at most 78 ` elements of s2 0 , or vice versa, is
`
− 128
Pr1 ≤ 2e .
Lemma 10. Given is a set of pairs S = {(x1 , y1 ), . . . , (xm , ym )} with elements
xi , yi ∈ {0, 1, 2}. If at least all elements xi or all elements yi are selected uni-
formly at random from {0, 1, 2}, then the following holds:
(1) If |S| ≥ 98 `, then the probability that there are 13 40 ` or less indices i such
`
that xi = yi is Pr2 ≤ e− 300 .
(2) If |S| ≤ 78 `, then the probability that there are 7
20 ` or more indices i such
`
that xi = yi is Pr3 ≤ e− 258 .
Proof of Lemma 8. Consider protocol Weak-2-Cast-Impl-2. Let us ne-
glect the error probabilities of the secure channel invocations (protocol
Secure-Channels-Impl-2) until the end of the proof. Assume that p0 receives
at least 78 ` elements from each of the players’ key during step 2 (by Lemma 9, this
happens with probability at least 1 − Pr1 ). Since the conditions for weak 2-cast
are trivially satisfied if more than one player is corrupted, we can distinguish
three cases.
• All players correct or at most p2 corrupted. The only way the protocol can
(x )
fail is if p1 decides on ⊥ (H(s01 , s1 1 ) ≥ 45 `); i.e., that at most 65 ` elements of s01
match with p1 ’s key. We assume that p0 receives at least k ≥ 78 ` elements of p1 ’s
key during step 2, k = 78 ` in the worst case. Hence, of all other 2` − 78 ` = 98 `
elements (i.e., the elements of s01 originating from p2 ), at most 65 ` − 78 ` = 13
40 ` are
?
identical to the element that p1 chose for the same invocation of “p1 , p2 −→ p0 ”.
`
By Lemmas 9 and 10, this happens with probability Pr4 ≤ Pr1 + Pr2 ≤ 3e 300 .
• p1 corrupted. In order to achieve that p2 decides on a wrong output it must
(y )
hold that y2 = 1 − x0 and H(s02 , s2 2 ) ≤ 54 ` before step 7; i.e., that at least
98 M. Fitzi et al.
3
4` elements of s02 match p2 ’s key. But since p1 does not learn anything about
(y )
the elements in s2 2 , he must guess 38 or more of those 2` elements correctly —
otherwise p2 would decide on x0 . This probability can be estimated by Chernoff
`
bounds (2` trials with expected value 13 ) and we get Pr5 ≤ e− 288 . (In fact, this
holds independently of the assumption at the beginning of the proof.)
• p0 corrupted. Since p1 and p2 are correct, the following equalities hold before
def def
step 7: s01 = s02 = s0 and x1 = y1 = y2 = y. In order to achieve that p1 and p2
(y)
decide on different bits p0 must select x2 = 1−y and achieve that H(s0 , s1 ) < 45 `
(y)
and H(s0 , s2 ) > 54 `; i.e., p0 must prepare s0 such that at least 65 ` elements still
match p1 ’s key but at most 34 ` elements match p2 ’s key. Given that the CC3
(y)
statistics are good (which happens with probability 1 − Pr1 ; see above) s0
9 7
contains at most 8 ` elements originating from player p1 and at least 8 ` elements
originating from player p2 . In the sequel we assume that these quantities exactly
hold, which constitutes the best case for p0 to succeed (maximal number of
matches with p1 ’s key and minimal number for p2 ’s).
(y)
Suppose now that s0 is selected such that h = H(s0 , s0 ) > 34 `. We show
(y)
that then H(s0 , s1 ) < 45 ` cannot be achieved almost certainly. By Lemma 10,
7 (y)
with probability 1 − Pr3 , there are at most 20 ` elements in s0 that match s1
(y)
at positions where the corresponding element of s0 was actually received from
(y)
p2 . Hence at least x > (2 − 45 )` − 207
` = 17 0
20 ` elements of s must match s1 at
positions where the corresponding element was actually received from p1 ; i.e.,
(y)
of the h > 34 ` differences between s0 and s0 , at most y = 98 ` − x < 11 40 ` may
be made up at positions where the corresponding element was received from
p1 . The probability of this event can be estimated by Hoeffding bounds [Chv79]
(Hypergeometric distribution; N = 2` elements, n = 34 ` trials, K = 98 ` “good”
`
elements, less than k = 1140 ` hits), and we get Pra < e
− 18
.
(y)
Suppose now that s0 is selected such that h = H(s0 , s0 ) ≤ 34 `. We show
(y)
that then H(s0 , s2 ) > 54 ` cannot be achieved almost certainly. By Lemma 10,
(y)
with probability 1 − Pr2 , there are at least 13 0
40 ` elements in s that match s2
(y)
at positions where the corresponding element of s0 was actually received from
(y)
p1 . Hence at most x < (2 − 54 )` − 13 17 0
40 ` = 40 ` elements of s may match s2 at
positions where the corresponding element was actually received from p2 ; in other
(y)
words, of the h ≤ 34 ` differences between s0 and s0 , at least y = 78 ` − x > 20 9
`
must be made up at positions where the corresponding element was received
from p2 . The probability of this event can be estimated by the Hoeffding bound
(hypergeometric distribution; N = 2` elements, n = 34 ` trials, K = 78 ` “good”
9 `
elements, more than k = 20 ` hits), giving Pra < e− 26 .
Hence, when p0 is corrupted, we get an error probability of at most Pr6 ≤
`
Pr1 +max(Pra + Pr3 , Prb + Pr2 ) ≤ 4e 300 .
Since the error probability of protocol Secure-Channels-Impl-2 can be
made negligibly small, it can be parameterized such that the overall probability
Minimal Complete Primitives for Secure Multi-party Computation 99
`
that at least one invocation fails satisfies PrSC ≤ e− 300 . Thus, the overall error
probability of the weak 2-cast construction is at most
`
Prerr ≤ PrSC + max(Pr4 , Pr5 , Pr6 ) ≤ 5e− 300 .
For security parameter σ, we let ` ≥ 300(σ + dln 5e), and hence Prerr ≤ e−σ . u
t
Now the proof proceeds as the proof of Lemma 1 by assigning different input
values to both sender processors, and concluding that the broadcast conditions
are not satisfied with respect to at least 2 of the 2n pairs of adjacent processors.
This contradicts the assumption that broadcast is possible with an arbitrarily
small error probability. t
u
Robustness for Free in Unconditional
Multi-party Computation
ETH Zurich
Department of Computer Science
{hirt,maurer}@inf.ethz.ch
1 Introduction
1.1 Secure Multi-party Computation
Secure multi-party computation (MPC), as introduced by Yao [Yao82], allows
a set of n players to compute an arbitrary agreed function of their private in-
puts, even if an adversary may corrupt up to t arbitrary players. Almost any
distributed cryptographic protocol can be seen as a multi-party computation,
and can be realized with a general MPC protocol. Multi-party computation
protocols are an important building block for reducing the required trust and
building secure distributed systems. While currently special-purpose protocols
(e.g., for collective signing) are considered practical, this paper suggests also that
general-purpose protocols may well be practical for realistic applications.
Two different notions of corruption are usually considered. A passive (or cu-
rious) adversary may only read the information stored by the corrupted players,
without controlling the player’s behavior. Hence only privacy of the inputs is an
issue to consider, but not the correctness of the result. In contrast, an active
adversary can take full control of the corrupted players. Assuring not only the
privacy of the inputs, but also the correctness of the outputs (robustness) ap-
pears to entail a substantial overhead. For instance, all known protocols make
(usually heavy) use of a broadcast sub-protocol for which the optimal known
communication complexity is O(n2 ).
We briefly review the classical results on secure MPC. Goldreich, Micali, and
Wigderson [GMW87] presented a protocol, based on cryptographic intractability
assumptions, which allows n players to securely compute an arbitrary function
even if an active adversary corrupts any t < n/2 of the players. In the secure-
channels model, where bilateral secure channels between every pair of players
are assumed, Ben-Or, Goldwasser, and Wigderson [BGW88] and independently
Chaum, Crépeau, and Damgård [CCD88] proved that unconditional security is
possible if at most t < n/3 of the players are corrupted. In a model where
additionally physical broadcast channels are available, unconditional security is
achievable if at most t < n/2 players are corrupted [RB89,Bea91b,CDD+ 99].
1.3 Contributions
The main open question in this line of research was whether security against
active cheaters can be achieved with the same communication complexity as
security against passive cheaters, namely with O(mn2 ). For sufficiently large
circuits, we answer this question in the affirmative: The only (and unavoidable)
price for robustness is a reduction in the number of tolerable cheaters (t < n/3
instead of t < n/2). The computation complexity of the new protocol is on the
order of the communication complexity and hence not relevant. The achieved
communication complexity of O(mn2 ) may well be optimal as even in the passive
Robustness for Free in Unconditional Multi-party Computation 103
model, it appears very difficult to avoid that for each multiplication gate, every
player sends a value to every other player.
The new protocol uses Beaver’s circuit-randomization technique [Bea91a] and
the player-elimination framework from [HMP00].
2 Model
3 Protocol Overview
The protocol proceeds in two phases: In a preparation phase, which could ac-
tually be performed as a pre-computation independent of the circuit (except
an upper bound on the number m of multiplication gates must be known), m
random triples a(i) , b(i) , c(i) (for i = 1, . . . , m) with c(i) = a(i) b(i) are t-shared
among the players. In the computation phase, the circuit is evaluated gate by
gate, where for each multiplication gate one shared triple from the preparation
phase is used [Bea91a].
In the preparation phase, the triples are generated in a very efficient but
non-robust manner (essentially with techniques from the passive protocol of
[BGW88]). The generation is divided into blocks, and after each block, the con-
sistency of all triples in this block is verified in a single verification procedure. If
a block contains inconsistent triples, this is detected with overwhelming proba-
bility, and a set of two players that accuse each other of cheating is identified and
eliminated from the protocol execution. The triples from the erroneous block are
of course not used. At the end of the preparation phase, we have m triples that
are t-shared among the set P 0 ⊆ P of remaining players, and it will be guaran-
teed that the number t0 of corrupted players in P 0 is smaller than (|P 0 | − t)/2,
which is sufficient for evaluating the circuit.
104 M. Hirt and U. Maurer
In the computation stage, for every multiplication one random triple is re-
quired. Two linear combinations of the values in this triple must be recon-
structed. Therefore, it is important that all triples are shared with the same
degree t (for privacy), and that 2t0 < |P 0 | − t (for reconstructibility).
The fault-localization procedure of the preparation phase is rather involved
because it identifies a set of two players, one of whom is corrupted, whereas
finding such a set of three players would be easy. However, eliminating a set of
three players would violate the condition 2t0 < n0 − t, and the t-shared triples
would be useless.
As the underlying secret-sharing scheme we use the scheme of Shamir [Sha79],
like in most threshold protocols: In order to t-share a value s, the dealer selects
a random polynomial f of degree at most t with f (0) = s, and hands the share
si = f (αi ) to player Pi for i = 1, . . . , n. Selecting a random polynomial of
degree at most t means to select t random coefficients a1 , . . . , at ∈ F and to set
f (x) = s + a1 x + . . . + at xt . We say that a value s is t-shared among the players
if there exists a polynomial f (x) of degree at most t such that f (0) = s and the
share si held by player Pi satisfies si = f (αi ) for i = 1, . . . , n. Such a t-shared
value can be efficiently reconstructed by a set P 0 ⊆ P of players, as long as less
than (|P 0 | − t)/2 of them misbehave (e.g., see [BW86]).
4 Preparation Phase
4.1 Overview
The goal of this phase is to generate m t-shared random triples a(i) , b(i) , c(i)
with c(i) = a(i) b(i) in such a way that the adversary obtains no information about
a(i) , b(i) , and c(i) (except that c(i) is the product of a(i) and b(i) ). The genera-
tion of these triples makes extensive use of the player-elimination framework of
[HMP00]:
The triples are generated in blocks of ` = dm/ne triples. The triples of a
block are generated (in parallel) in a non-robust manner; only at the end of
the block, consistency is checked jointly for all triples of the block in a single
verification procedure (fault detection). In case of an inconsistency, a set D ⊆ P
of two players, at least one of whom is corrupted, is identified (fault localization)
and excluded from further computations (player elimination). The triples of the
failed block are discarded. Player elimination ensures that at most t blocks fail,
and hence in total at most (n + t) blocks must be processed.
More precisely, the consistency verification takes place in two steps. In the
first step (fault detection I), the degree of all involved sharings is verified. In
other words, the players jointly verify that all sharings produced for generating
the triples are of appropriate degree. The second verification step (fault detec-
tion II) is performed only if the first verification step is successful. Here, the
players jointly verify that for every triple a(i) , b(i) , c(i) , every player shared the
correct values such that c(i) = a(i) b(i) . If a fault is detected (in either fault-
detection step), then all triples in the actual block are discarded. Furthermore, a
Robustness for Free in Unconditional Multi-party Computation 105
0. Set P 0 = P, n0 = n, and t0 = t.
1. Repeat until n blocks (i.e., n` ≥ m triples) succeeded:
1.1 Generate ` + 2n0 triples (in parallel) in a non-robust manner (Sect. 4.2).
1.2 Verify the consistency of all sharings involved in the first ` + n0 triples
(fault detection I, Sect. 4.3). If a fault is detected, identify a set D ⊆ P 0
of two players such that at least one player in D is a cheater, and set P 0
to P 0 \ D, n0 to n0 − 2 and t0 to t0 − 1 (fault localization I).
1.3 If no fault was detected in Step 1.2, then verify that in the first ` triples,
every player shared the correct values (fault detection II, Sect. 4.4). If
a fault is detected, identify a set D ⊆ P 0 of two players, at least one of
whom is corrupted, and set P 0 to P 0 \ D, n0 to n0 − 2 and t0 to t0 − 1
(fault localization II).
1.4 If both verification steps were successful, then the generation of the block
was successful, and the first ` triples can be used. If either verification
procedure failed, then all triples of the actual block are discarded.
The purpose of this protocol is to generate one t-shared triple (a, b, c), where
c = ab. The generation of this triple is non-robust: verification will take place only
at the end of the block. In particular, in order to share a value, the dealer simply
computes the shares and sends them to the players; the consistency verification
of the sent shares is delayed.
The generation of the triple is straight-forward: First, the players jointly
generate t0 -sharings of two random values a and b. This is achieved by having
106 M. Hirt and U. Maurer
every player share two random values, one for a and one for b, which are then
summed up. Then, a t0 -sharing of c = ab is computed along the lines of [BGW88,
GRR98] (passive model): Every player computes the product of his share of a
and his share of b. These product shares define a 2t0 -sharing of c, and c can
be computed by Lagrange interpolation. This interpolation is a linear function
on the product shares. Hence, a t0 -sharing of c can be computed as a linear
combination of t0 -sharings of the product shares. Finally, the degrees of the
sharings of a, b, and c must be increased from t0 to t. In order to do so, the
players jointly generate three random sharings of 0, each with degree t, and
add one of them to the t0 -sharings of a, b, and c, respectively. These random t-
sharings of 0 are generated by first selecting a random t − 1-sharing of a random
value, and then multiplying this polynomial by the monomial x.
Note that the protocol for computing a sharing of c = ab relies on the fact
that the degree of the sharings of a and b is less than one third of the number
of actual players, and it would not work if a and b would be shared with degree
t for 3t ≥ n0 . On the other hand, it is important that finally the sharings of all
blocks have the same degree (otherwise the multiplication protocol of Section 5
would leak information about the factors), and t0 can decrease from block to
block. Therefore, first the triple is generated with degree t0 , and then this degree
is increased to t.
Protocol “Generate”
We give the exact protocol for generating one t-shared triple (a, b, c):
1. The players jointly generate t0 -sharings of random values a and b:
1.1 Every player Pi ∈ P 0 selects two random degree-t0 polynomials fei (x) and
gei (x), and hands the shares eaij = fei (αj ) and ebij = gei (αj ) to player Pj
0
for j = 1, . . . , n .
Pn0
1.2 The polynomial for sharing a is fe(x) = i=1 fei (x) (thus a = fe(0)), and
Pn0
the polynomial for sharing b is ge(x) = i=1 gei (x) (thus b = ge(0)), and
every player Pj ∈ P 0 computes his shares of a and b as
0 0
n
X n
X
aj =
e e
aij , and ebj = ebij .
i=1 i=1
3. The players jointly increase the degree of the sharings of a, b, and c to t (this
step is performed only if t0 < t):
3.1 Every player Pi ∈ P 0 selects three polynomials f¯i (x), ḡi (x), h̄i (x) of
degree t − 1 at random, and sends the shares āij = f¯i (αj ), b̄ij = ḡi (αj ),
and c̄ij = h̄i (αj ) to player Pj for j = 1, . . . , n0 .
3.2 Every player Pj ∈ P 0 computes his t-shares aj , bj , and cj of a, b, and c,
respectively, as follows:
0 0 0
n
X n
X n
X
aj = e
aj + αj āij , bj = ebj + αj b̄ij , cj = e
cj + αj c̄ij .
i=1 i=1 i=1
Analysis
At the end of the block, two verifications will take place: First, it will be verified
that the degree of all sharings is as required (t0 , respectively t − 1, Section 4.3).
Second, it will be verified that in Step 2.1, every player Pi indeed shares his
correct product share eei = e aiebi (Section 4.4). In the sequel, we analyze the
security of the above protocol under the assumption that these two conditions
are satisfied.
After Step 1, obviously the assumption that the degree of all sharings is as
required immediately implies that the resulting shares e a1 , . . . , e
an0 (respectively
eb1 , . . . , ebn0 ) lie on a polynomial of degree t0 , and hence define a valid sharing. Fur-
thermore, if at least one player in Pi ∈ P 0 honestly selected random polynomials
fei (x) and gei (x), then a and b are random and unknown to the adversary.
In Step 2, we need the observation that c can be computed by Lagrange
interpolation [GRR98]:
0 0
n
X n
Y αj
c= wi eei , where wi = .
i=1 j=1
αj − αi
j6=i
Assuming that every player Pi really shares his correct product share eei with a
hi (x) of degree t0 , it follows immediately that the polynomial e
polynomial e h(x) =
Pn0 e 0
w h
i=1 i i (x) is also of degree t , and furthermore
0 0
n
X n
X
e
h(0) = wi e
hi (0) = wi eei = c.
i=1 i=1
The privacy is guaranteed because the adversary does not obtain information
about more than t0 shares of any polynomial e hi (x) (for any i = 1, . . . , n0 ).
Step 3 is only performed if t < t. Assuming that the polynomials f¯i (x), ḡi (x),
0
and h̄i (x) of every player Pi ∈ P 0 have degree at most t−1, it immediately follows
that all the polynomials defined as
0 0 0
n
X n
X n
X
f¯(x) = f¯i (x), ḡ(x) = ḡi (x), h̄(x) = h̄i (x)
i=1 i=1 i=1
108 M. Hirt and U. Maurer
also all have degree at most t − 1. Hence, the polynomials xf¯(x), xḡ(x), and
xh̄(x) have degree at most t, and they all share the secret 0. Thus, the sums
fe(x) + xf¯(x), ge(x) + xḡ(x), and e
h(x) + xh̄(x) are of degree t and share a, b, and
c, respectively. The privacy of the protocol is obvious for t0 ≤ t − 1.
We briefly analyze the communication complexity of the above protocol:
Every sharing requires n field elements to be sent, and in total there are 6n
sharings, which results in a total of 6n2 field elements to be communicated per
triple.
Protocol “Fault-Detection I”
The following steps for verifying the degree of all sharings in one block are
performed in parallel, once for every verifier Pv ∈ P 0 :
1. The verifier Pv selects a random vector [r1 , . . . , r`+n0 ] with elements in F
and sends it to each player Pj ∈ P 0 .
2. Every player Pj computes and sends to Pv the following corresponding
linear combinations (plus the share of the blinding polynomial) for every
i = 1, . . . , n0 :
0 0
`+n
X `+n
X
(Σ) (k) (`+n0 +v) (Σ) (k) (`+n0 +v)
aij =
e rk e
aij + e
aij āij = rk āij + āij
k=1 k=1
0 0
`+n
X `+n
X
0
eb(Σ) = (`+n0 +v)
rkebij + ebij
(k) (`+n +v) (Σ) (k)
ij b̄ij = rk b̄ij + b̄ij
k=1 k=1
0 0
`+n
X `+n
X
(Σ) (k) (`+n0 +v) (Σ) (k) (`+n0 +v)
e
cij = rk e
cij + e
cij c̄ij = rk c̄ij + c̄ij
k=1 k=1
(Σ) (Σ)
3. Pv verifies whether for each i = 1, . . . , n0 , the shares e
ai1 , . . . , e
ain0 lie on a
polynomial of degree at most t0 . The same verification is performed for the
Robustness for Free in Unconditional Multi-party Computation 109
Protocol “Fault-Localization I”
This protocol is performed if and only if at least one verifier has broadcasts a
complaint in Step 4 of the above fault-detection protocol. We denote with Pv
the verifier who has reported a fault. If there are several such verifiers, the one
with the smallest index v is selected.
5. The verifier Pv selects one of the polynomials of too high degree and broad-
casts the location of the fault, consisting of the index i and the “name” of
the sharing (ea, eb, e
c, ā, b̄, or c̄). Without loss of generality, we assume that
(Σ) (Σ)
the fault was observed in the sharing e ai1 , . . . , e
ain0 .
6. The owner Pi of this sharing (i.e., the player who acted as dealer for this
sharing) sends to the verifier Pv the correct linearly combined polynomial
P`+n0 (`+n0 +v)
fei (x) = k=1 rk fei (x) + fei
(Σ) (k)
(x).
(Σ)
7. Pv finds the (smallest) index j such that eaij (received from Pj in Step 2)
does not lie on the polynomial fei (x) (received from the owner Pi in Step 6),
(Σ)
Analysis
It follows from simple algebra that if all players are honest, then the above
fault-detection protocol will always pass. On the other hand, if at least one of
110 M. Hirt and U. Maurer
the involved sharings (in any of the `+n0 triples) has too high degree, then every
honest verifier will detect this fault with probability at least 1 − 1/|F|.
The correctness of the fault-localization protocol can be verified by inspec-
tion. There is no privacy issue; the generated triples are discarded.
The fault-detection protocol requires n n(` + n) + 6n2 = n2 ` + 7n3 field
elements to be sent and n bits to be broadcast. For fault localization, up to
n + 2(` + n + 1) = 2` + 3n + 2 field elements must be sent and 2 log n + log 6 +
log(` + n + 1) + 4 log |F| bits must be broadcast.
4.4 Verification That All Players Share the Correct Product Shares
(Σ)
X̀ (k) (`+v)
eeij = rk eeij + eeij .
k=1
(Σ) (Σ)
3. Pv verifies whether for each i = 1, . . . , n0 the shares eei1 , . . . , eein0 lie on a
polynomial of degree at most t0 , and if so, whether the secrets eeΣ eΣ
1 ,...,en0
of the above sharings (computed by interpolating the corresponding share-
shares) lie on a polynomial of degree at most 2t0 . Pv broadcasts one bit
according to whether all polynomials have appropriate degree (confirmation),
or at least one polynomial has too high degree (complaint).
(Σ) (Σ)
4. If in Step 3, the degree of one of the second-level sharings eei1 , . . . , eein0 was
too high, then Pv applies error-correction to find the smallest index j such
(Σ)
that eeij must be corrected. Since all sharings have been verified to have
(Σ)
correct degree, Pv can conclude that Pj has sent the wrong value eeij . Pv
broadcasts the index j, and the set of players to be eliminated is D = {Pj , Pv }
(and the following steps need not be performed).
(1) (`) (`+v)
5. Every player Pi sends to Pv all his factor shares e
ai , . . . , e
ai , e
ai and
eb(1) , . . . , eb(`) , eb(`+v) .
i i i
(k) (k)
6. Pv verifies for every k = 1, . . . , `, `+v whether the shares e a1 , . . . , e
an0 lie on a
polynomial of degree t0 . If not, then Pv applies error-correction and finds and
(k)
broadcasts the (smallest) index j such that e aj must be corrected. The set of
players to be eliminated is D = {Pj , Pv }. The same verification is performed
for the shares eb1 , . . . , ebn0 for k = 1, . . . , `, ` + v.
(k) (k)
?
X̀
ai ebi
(k) (k) (`+v)e(`+v)
eeΣ
i = rk e + e
ai bi .
k=1
This test will fail for at least one i, and Pv broadcasts this index i. The players
in D = {Pi , Pv } are eliminated.
Analysis
The above fault-detection protocol always passes when all players are honest.
If the degree of at least one of the involved sharings is higher than 2t0 , then
every honest verifier will detect this fault with probability at least 1 − 1/|F|. The
correctness of the fault-localization protocol follows by inspection.
The fault-detection protocol requires n(n` + n2 ) = n2 ` + n3 elements to be
sent, and n bits to be broadcast. The fault-localization protocol requires 2n(`+1)
field elements to be sent and log n bits to be broadcast.
Pt0 0 0 0 0
happens with probability at most i=0 ni (1−1/|F|)i (1/|F|)n −i ≤ (3/|F|)n −t .
Again, the adversary can try t P times to make pass a bad block, which results in
t−1
an overall error probability of i=0 (3/|F|)n−t−i ≤ (3/|F|)n−2t .
If the above error probabilities are too high, they can further be decreased
by simply repeating the fault-detection protocols (with new and independent
blinding triples). By repeating the protocol k times, the error probability is
lowered to (1/|F|)k(n−2t) (static case), respectively (3/|F|)k(n−2t) (adaptive case).
5 Computation Phase
The evaluation of the circuit is along the lines of the protocol of [Bea91a]. Slight
modifications are needed because the degree t of the sharings and the upper
bound t0 on the number of cheaters need not be equal. Furthermore, special
focus is given to the fact that in our protocol, also eliminated players must be
able to give input to and receive output from the computation.
From the preparation phase, we have m random triples a(i) , b(i) , c(i) with
c(i) = a(i) b(i) , where the sharings are of degree t among the set P 0 of players.
The number of corrupted players in P 0 is at most t0 with 2t0 < n0 − t, where
n0 = |P 0 |. This is sufficient for efficient computation of the circuit.
First, every player who has input secret-shares it (with degree t) among the set
P 0 of players. We use the verifiable secret-sharing protocol of [BGW88] (with
perfect security), with a slight modification to support t 6= t0 . The dealer is
denoted by P, and the secret to be shared by s. We do not assume that P ∈ P 0
(neither P ∈ P).
1. The dealer P selects at random a polynomial f (x, y) of degree t in both
variables, with p(0, 0) = s, and sends the polynomials fi (x) = f (αi , x) and
gi (x) = p(x, αi ) to player Pi for i = 1, . . . , n0 .
2. Every player Pi ∈ P 0 sends to Pj for j = i + 1, . . . , n0 the values fi (αj ) and
gi (αj ).
3. Every player Pj broadcasts one bit according to whether all received values
are consistent with the polynomials fj (x) and gj (x) (confirmation) or not
(complaint).
4. If no player has broadcast a complaint, then the secret-sharing is finished, and
the share of player Pj is fj (0). Otherwise, every player Pj who has complaint
broadcasts a bit vector of length n0 , where a 1-bit in position i means that
one of the values received from Pi was not consistent with fj (x) or gj (x).
The dealer P must answer all complaints by broadcasting the correct values
f (αi , αj ) and f (αj , αi ).
5. Every player Pi checks whether the values broadcast by the dealer in Step 4
are consistent with his polynomials fi (x) and gi (x), and broadcasts either
a confirmation or an accusation. The dealer P answers every accusation by
Robustness for Free in Unconditional Multi-party Computation 113
broadcasting both polynomials fi (x) and gi (x) of the accusing player Pi , and
Pi replaces his polynomials by the broadcast ones.
6. Every player Pi checks whether the polynomials broadcast by the dealer in
Step 5 are consistent with his polynomials fi (x) and gi (x), and broadcasts
either a confirmation or an accusation.
7. If in Steps 5 and 6, there are in total at most t0 accusations, then every player
Pi takes fi (0) as his share of s. Otherwise, clearly the dealer is faulty, and
the players take a default sharing (e.g., the constant sharing of 0).
It is clear that an honest player never accuses an honest dealer. On the
other hand, if there are at most t0 accusations, then the polynomials of at least
n0 − 2t0 > t honest players are consistent, and these polynomials uniquely define
the polynomial f (x, y) with degree t. Hence, the polynomials of all honest players
are consistent, and their shares f1 (0), . . . , fn0 (0) lie on a polynomial of degree t.
This protocol communicates 3n2 field elements, and it broadcasts n bits (in
the best case), respectively n2 + 3n + 2t2 log |F| bits (in the worst case).
6 Complexity Analysis
A detailed complexity analysis is given in Appendix A. Here we summarize the
most important results: Let n denote the number of players, F the field over
which the function (circuit) is defined, m the number of multiplication gates
in the circuit, Cd the depth of the circuit, nI the number of inputs and nO
the number of outputs of the function. Evaluating this circuit securely with re-
spect to an active adversary corrupting any t < n/3 of the players is possible
with communicating 14mn2 + O(nI n4 + nO n + n4 ) field elements. The number
of communication rounds is Cd + O(n2 ). All complexities include the costs for
simulating broadcast. If the field F is too small (and the resulting error proba-
bility is too high), then fault-detection protocols are repeated, and the overall
communication complexity increases accordingly.
This complexity should be compared with the complexity of the most efficient
protocols. In the secure-channels model, the most efficient protocol for uncondi-
tionally secure multi-party protocols [HMP00] requires O(mn3 ) field elements in
O(Cd + n2 ) rounds (where both hidden constants are slightly higher than ours).
Robustness for Free in Unconditional Multi-party Computation 115
For completeness, we also compare the complexity of our protocol with the
complexity of the most efficient protocol for the cryptographic model [CDN01].
This protocol requires a communication complexity of O(mn3 ) field elements in
O(Cd n) rounds. The high round complexity results from the fact that the pro-
tocol invokes a broadcast sub-protocol for each multiplication gate. The most
efficient broadcast protocols require O(n) rounds. Constant-round broadcast pro-
tocols are known [FM88], but they have higher communication complexities and
would results in a communication complexity of O(mn5 ) field elements.
Finally, we compare the protocol with the most efficient known protocol
for passive security, namely [BGW88] with the simplification of [GRR98]. This
protocol communicates mn2 + O(nI n + nO n) field elements. Hence, for large
enough circuits, robustness can be achieved with a communication overhead
factor of about 14.
References
[BB89] J. Bar-Ilan and D. Beaver. Non-cryptographic fault-tolerant computing in
a constant number of rounds of interaction. In Proc. 8th ACM Symposium
on Principles of Distributed Computing (PODC), pp. 201–210, Aug. 1989.
[BCG93] M. Ben-Or, R. Canetti, and O. Goldreich. Asynchronous secure computa-
tion. In Proc. 25th ACM Symposium on the Theory of Computing (STOC),
pp. 52–61, 1993.
[Bea91a] D. Beaver. Efficient multiparty protocols using circuit randomization. In
Advances in Cryptology — CRYPTO ’91, volume 576 of Lecture Notes in
Computer Science, pp. 420–432, 1991.
[Bea91b] D. Beaver. Secure multiparty protocols and zero-knowledge proof systems
tolerating a faulty minority. Journal of Cryptology, pp. 75–122, 1991.
[BW86] E. R. Berlekamp and L. Welch. Error correction of algebraic block codes.
US Patent Number 4,633,470, 1986.
[BFKR90] D. Beaver, J. Feigenbaum, J. Kilian, and P. Rogaway. Security with low
communication overhead. In Advances in Cryptology — CRYPTO ’90,
volume 537 of Lecture Notes in Computer Science. Springer-Verlag, 1990.
[BGP89] P. Berman, J. A. Garay, and K. J. Perry. Towards optimal distributed
consensus (extended abstract). In Proc. 21st ACM Symposium on the
Theory of Computing (STOC), pp. 410–415, 1989.
[BGW88] M. Ben-Or, S. Goldwasser, and A. Wigderson. Completeness theorems for
non-cryptographic fault-tolerant distributed computation. In Proc. 20th
ACM Symposium on the Theory of Computing (STOC), pp. 1–10, 1988.
[Can95] R. Canetti. Studies in Secure Multiparty Computation and Applications.
PhD thesis, Weizmann Institute of Science, Rehovot 76100, Israel, June
1995.
[CCD88] D. Chaum, C. Crépeau, and I. Damgård. Multiparty unconditionally se-
cure protocols (extended abstract). In Proc. 20th ACM Symposium on the
Theory of Computing (STOC), pp. 11–19, 1988.
[CDD+ 99] R. Cramer, I. Damgård, S. Dziembowski, M. Hirt, and T. Rabin. Efficient
multiparty computations secure against an adaptive adversary. In Ad-
vances in Cryptology — EUROCRYPT ’99, volume 1592 of Lecture Notes
in Computer Science, pp. 311–326, 1999.
[CDN01] R. Cramer, I. Damgård, and J. B. Nielsen. Multiparty computation from
threshold homomorphic encryption. In Advances in Cryptology — EU-
ROCRYPT ’01, volume 2045 of Lecture Notes in Computer Science, pp.
280–300, 2001.
[DN01] I. Damgård and J. B. Nielsen. An efficient pseudo-random generator with
applications to public-key encryption and constant-round multiparty com-
putation. Manuscript, May 2001.
Robustness for Free in Unconditional Multi-party Computation 117
In the table, n denotes the number of players, t the upper bound on the
number of actively corrupted players, m the total number of multiplication gates,
` the number of multiplication gates per block, nI the number of inputs to the
function, and nO the number of outputs of the function.
The indicated complexities are upper bounds: In particular, when a player
has to send a message to all players, we count this as n messages (instead of
n − 1).
MC BC #Calls
What
(field elements) (bits) (min. . . max)
n(`+2n) . . .
Generate triples 6n2 — (1)
(n+t)(`+2n)
Fault detection I `n2 + 7n3 n n . . . n+t (2)
2 log n + 4 log |F|
Fault localization I 2` + 3n + 2 0 ...t (3)
+ log(`+n+1) + log 6
Fault detection II `n2 + n3 n n . . . n+t (4)
Fault localization II 2`n + 2n log n 0 ...t (5)
2
Give input (best) 3n n nI (6)
2 2 2
Give input (worst) 3n n + 3n + 2t log |F| nI (7)
2
Multiply 2n — m (8)
Get output n — nO (9)
Comp. Sc. Dept., Aarhus University & BRICS (Basic Research in Computer Science,
center of the Danish National Research Foundation), [email protected]
[email protected]
1 Introduction
In this paper we consider the problem of secure multiparty computation (MPC),
where n players, each holding a secret input, want to compute an agreed function
of the inputs, in such a way that the correct result is computed, and no additional
information about the inputs is released. This should hold, even in presence of
an adversary who can corrupt some of the players, this means he can see all their
internal data and can (if he is active) even make them behave as he likes.
A main distinction between different kinds of MPC protocols concerns the
model for communication: In the cryptographic model (first studied in [25,14]),
the adversary may see all messages sent, and security can then only be guaran-
teed under a computational assumption. In the information-theoretic model (first
studied in [5,7]), one assumes a private channel between every pair of players,
and security can then be guaranteed unconditionally.
Two measures of complexity are important for MPC protocols, namely the
communication complexity (total number of bits sent) and the round complexity
(where a round is a phase where each player is allowed to send one message to
each other player).
In this paper, we focus on the round complexity of MPC protocols, in par-
ticular on building constant-round protocols. Kilian [19] showed that Boolean
formulas can be securely and efficiently evaluated in constant rounds in the
two-party case, with secure computations based on Oblivious Transfer. Under
a complexity assumption, it was shown in [2] by Beaver, Micali and Rogaway
that any function that can be computed in polynomial time can also be securely
computed in a constant number of rounds (and polynomial communication).
The result works under minimal complexity assumptions, but leads in practice
to very inefficient protocols. Thus, for computationally secure MPC in constant
round, the question is not which functions can be securely computed, but rather
how efficiently it can be done.
The situation is different for unconditionally secure MPC: in this model,
it is not known which functions can be securely computed in constant-round.
However, Bar-Ilan and Beaver [1] showed that it can be done for any arithmetic
formula.
Later results by Feige, Kilian and Naor [12] and Ishai and Kushilevitz [16,
17] and Beaver [3] extend this to functions in N L and some related counting
classes. More precisely, their protocols are polynomial in the modular branching
program size of the function computed. Their methods also apply to the more
general arithmetic branching program model of Beimel and Gal[4].
2 Our Work
In this paper, we start from the assumption that we are given an efficient, con-
stant round method to share securely between the players values in a finite field
K and to reveal them. For an active adversary, this would be a verifiable secret
sharing (VSS). In the following, we write [a] for a sharing of a, i.e. [a] denotes
the collection of all information related to a held by the players. When M is
a matrix over K, [M ] will denote a sharing of each of the coordinates of M .
Whenever we say “let [x] be a sharing” we mean that either some processor has
distributed shares of his private input x, or that [x] is the result of previous
secure computations on certain private inputs of the processors. An expression
such as “[f (x)] is securely computed from [x]” means that the processors in the
network perform secure computations on a sharing of x, as a result of which they
obtain a (random) sharing of f (x).
We show how to design efficient constant-round protocols for a number of
standard linear algebra problems:
– Given a shared matrix [A] over an arbitrary finite field K, we show how to
compute securely a sharing [det(A)] of the determinant of A. More generally,
[f ] is computed where f denotes the vector containing the coefficients of the
characteristic polynomial of A.
Secure Distributed Linear Algebra in a Constant Number of Rounds 121
– Given a shared (not necessarily square) matrix [A] over a finite field K, we
show how to securely compute the rank of A, concretely we can compute [r]
where r is a unary encoding of the rank of A, padded with zeroes.
– Given also a shared vector [y] we show how to securely compute [b] where b
is a bit that indicates whether the system of equations Ax = y is solvable.
Finally, we show how to solve the system by securely computing [x], [B],
where x is a solution and [B] generates A’s kernel.
Our protocols work for arbitrary fields and do not use any cryptographic
assumptions, so if the basic sharing method we start from is unconditionally
secure, then so are the protocols we construct.
It is easy to see that our results allow handling all functions computable in
constant round and with unconditional security using the most general previous
methods [16,17]: for instance, our protocol for subspace membership immedi-
ately implies a constant-round protocol for computing a function f , of com-
plexity polynomial in the span program[18] size of f . By the results from [4]
span programs are always at least as powerful as the modular and arithmetic
branching programs to which the methods from [16,17] apply. For fields with
fixed characteristic, all three models are equivalent in power. However, since this
is not known to hold for arbitrary fields, our results extend the class of function
known to be computable in constant round and with unconditional security.
What is equally important, however, is that the standard linear algebra prob-
lems we can handle are problems that occur naturally in practice. For instance,
deciding if a determinant is non-zero allows to decide if a bipartite graph con-
tains a perfect match. Moreover, privacy is a natural requirement in matching
type problems that occur in practice.
We therefore believe it is of interest to be able to do linear algebra securely
and efficiently. Our work leads to a protocols with better efficiency compared to
solutions based on combinations of known techniques. Please refer to Section 6.5
for more details in the case of determinant and characteristic polynomial.
We note that our results apply to the cryptographic model as well as the infor-
mation theoretic, the only difference being the implementation of the underlying
sharing and multiplication protocols. And because we attack the problems di-
rectly rather than going through reductions (to, e.g., Boolean circuits for the
problems) we get much more efficient solutions than what one gets from, e.g, [2].
For convenience in describing our main protocols, we assume that secure constant
round protocols are available for the following tasks:
The first two requirements are always met if the sharing method used is
linear over K, in the sense that from [a], [b] and a known constant c, we can
non-interactively compute new sharings [a + b] and [ac], and more generally,
arbitrary linear functionals. For standard examples of VSS, this just translates
to locally adding shares of a to corresponding shares of b, and to multiplying the
shares of a by c.
In fact, all three requirements can be met by known techniques in all stan-
dard models of communication. We give here a few examples of existing efficient,
constant round, linear MPC protocols: The classical unconditionally secure MPC
protocols of Ben-Or, Goldwasser and Wigderson [5] and Chaum, Crépeau and
Damgaard [7] are examples in the secure channels model satisfying all our re-
quirements, tolerating an active, adaptive threshold adversary that corrupts less
than a third of the processors.
MPC protocols secure against general adversaries [15] are given by Cramer,
Damgaard and Maurer [9]. Their protocols make no restriction on the field size,
as opposed to [7,5] where this must be larger than the size of the network. 1 For
the broadcast model of Rabin and Ben-Or [23], one can take the protocols of
[10], tolerating an actively (and adaptively) corrupted minority at the expense
of negligible errors and the assumption that a secure broadcast primitive is
given. 2 An example in the cryptographic model is given by the protocols of
Gennaro, Rabin and Rabin [13]. Here the size of the field is necessarily large.
For the binary field an example given in [8]. This protocol, which is based on
homomorphic threshold encryption, is quite efficient and tolerates an actively
corrupted minority.
Note that parallel composition is not secure in general for all the models of
communication mentioned here, unless extra properties are required. Neverthe-
less, the example protocols considered above are in fact secure under parallel
composition.
A final basic protocol (called Π1 in the following) that we will need is:
– Compute from a sharing [a] a sharing [h(a)] where h is the function on K
defined by h(a) = 0 if a = 0 and h(a) = 1 if a 6= 0.
Later we show a constant-round realization of this protocol based only on the
three requirements above. This realization is efficient if the characteristic of the
field is polynomially bounded.
For arbitrary fields, we can do the following instead: assume first that K =
GF (q) for a (large) prime q. Represent an element a ∈ K in the natural way as
a bit string a0 , ..., ak . Choose a new field F = GF (p) where p is a small prime,
all that is required is that p is larger than the number of players, in particular,
p does not depend on the size of the input to the desired computation. Define
[a] = [a0 ]F , ..., [ak ]F , i.e., using any of the standard methods described above we
share each bit in the representation of a over the field F .
We can now use the well-known fact that for a given, fixed q, there exist N C 1
Boolean circuits for elementary operations in GF (q) (and even for unbounded
1
In the full version of [9] it is pointed out that their VSS is actually constant round.
2
One extra level of sub-sharing must be built in (which is no problem) to ensure
constant rounds for their multiplication protocol.
Secure Distributed Linear Algebra in a Constant Number of Rounds 123
fan-in addition). This, together with the result from [1] and the fact that Boolean
operations can be simulated in a natural way by arithmetic in F immediately
implies existence of constant round protocols for this sharing method meeting
the three requirements above. Moreover, computing the function h is now trivial
since we only have to compute the OR of all bits of the input value.
Finally, we show in Section 4 how the basic protocols for a field K can be
lifted to any extension field of K.
Since most of the known MPC protocols are linear, we explain our protocols
under this assumption, since it leads to more efficient and easier to explain
protocols. At the end of Section 4, we argue that our results also hold in the
more general model described earlier.
Let a secure linear MPC protocol for elementary arithmetic (i.e., multiplication
and addition) over a finite field K be given, that is efficient and constant round.
Write q = |K|. We frequently use the following constant-round techniques from
Bar-Ilan and Beaver [1].
Joint Secret Randomness is a protocol to generate a sharing [ρ] where ρ ∈ K
is random and secret. This is just by letting all players in the network share a
random element, and taking the sum as the result. This extends in a natural way
to random vectors and matrices. Secure Matrix Multiplication is a protocol that
starts from sharings [A], [B] of matrices A and B, and generates a sharing [AB]
of their product. This protocol works in the obvious way. We denote this secure
computation by [AB] = [A]·[B]. By our assumptions on the basic MPC, it follows
that if any of these matrices, say A, is publicly known, secure multiplication can
be performed non-interactively. and we write [AB] = A · [B] instead.
Jointly Random Secret Invertible Elements and Matrices is a protocol that
generates a sharing of a secret, random nonzero field element or an invertible
matrix. The protocol securely generates two random elements (matrices), se-
curely multiplies them, and reveals the result. If this is non-zero (invertible),
one of the secret elements (matrices) is taken as the desired output of the proto-
col. The probability that a random matrix A ∈ K n,n is invertible is than 1/4,3
and is at least 1 − n/q. In particular if n is negligible compared to q, almost all
A ∈ K n,n are invertible. This is easy to verify (see also the counting arguments
in Section 6.1).
Secure Inversion of Field Elements and Matrices is a protocol that starts from
a sharing of an invertible field element or matrix, and results in a sharing of its
inverse. We denote this secure computation by [x−1 ] = [x]−1 , and [A−1 ] = [A]−1
respectively. This protocol first generates [ρ] with ρ ∈ K random and non-zero,
securely computes [σ] = [ρ] · [x], and finally reveals σ. The result [x−1 ] is then
non-interactively computed as σ −1 · [ρ]. The same approach applies to the case
of an invertible matrix.
3
For instance, by simple counting and induction it follows that this probability is at
least 1/4 + (1/2)n+1 . Also, there are better estimates known from the literature.
124 R. Cramer and I. Damgård
element, addition and multiplication are assumed, the above sub-protocols still
work. It is sufficient to argue that unbounded addition can be securely and
efficiently performed in constant rounds.
Although this does not directly follow from the model, as is the case with
linearity, it can be done in similar style as unbounded multiplication of non-zero
field elements using the ideas of Bar-Ilan and Beaver. This is actually where the
assumption on secure generation of a shared random value comes into play. It is
easy to verify that all protocols to follow also work in this more general model.
Let [A] be a sharing, where A ∈ K n,n . The goal of the network is to securely
compute a sharing [det(A)], where det(A) is the determinant of A, efficiently in
constant rounds.
Secure computation via the standard definition of determinant is inefficient,
and a secure version of Gaussian elimination for instance, seems inherently se-
quential. After we give our efficient and constant round solution, we discuss some
less efficient alternatives based on combinations of known techniques.
We start by solving the problem under the assumption that the shared matrix A
is promised to be invertible and that there exists an efficient constant round pro-
tocol Π0 allowing the network to securely generate a pair ([R], [det(R)]) where
R ∈ K n,n is an (almost) random invertible matrix and det(R) is its determi-
nant. Note that we do not require that the network can securely compute the
determinant of a random invertible matrix; we merely require that Π0 securely
constructs a sharing of a random invertible matrix together with its determinant.
In the following, let GLn (K) ⊂ K n,n denote the group of invertible matrices.
Let [A] be a sharing, with A ∈ GLn (K).
126 R. Cramer and I. Damgård
1. Under the assumption that protocol Π0 is given, the network securely gen-
erates ([R], [d]), where R ∈ GLn (K) is random and d = det(R).
2. By the method of Bar-Ilan and Beaver for secure inversion, the network
securely computes [d−1 ] = [d]−1 .
3. The network securely computes [S] = [R] · [A], and reveals S.
4. All compute e = det(S), and by local operations they securely compute
[det(A)] = e · [d−1 ].
Note that (S, e) gives no information on A. Also note that the protocol is not
private if A is not invertible, since e = 0 exactly when that is the case. A
realization for Protocol Π0 is shown below.
1. The network securely generates the pair of shared vectors [xL ], [xU ], where
xL , xUQ∈ K n both consist
Qn of random non-zero entries, and securely computes
n
[d] = ( i=1 [xL (i)]) · ( i=1 [xU (i)]).
This is done using the methods of Bar-Ilan and Beaver for secure unbounded
fan-in multiplication of non-zero values.
2. The network securely generates n2 − n elements [ri ], where the ri ∈ K are
random.
Next, the network defines [L] such that L ∈ K n,n has xL on its diagonal,
while the elements below the diagonal are formed by the first 12 (n2 − n) of
the [ri ]’s. The elements above the diagonal are set to 0.
Similarly for the matrix [U ], but with xU on its diagonal, and the remaining
[ri ]’s placed above the diagonal. The elements below the diagonal are set to
0.
Finally, the network securely computes [R] = [L] · [U ], Note that det(R) =
d 6= 0. The result of the protocol is set to ([R], [d]).
1. In parallel, the network securely generates [z0 ], . . . , [zn ], where the zi are ran-
domly distributed in K. They reveal the zi ’s. Except with negligible proba-
bility, the zi ’s are distinct (which can be checked of course) and all matrices
zi In − A are invertible. For i = 0, . . . , n, the network securely computes by
local computations [zi In − A] = zi In − [A]
2. Using our protocol for securely computing the determinant of an invertible
matrix, they securely compute in parallel [det(z0 In −A)], .P . . , [det(zn In −A)].
n
3. Finally, the network securely computes [det(A)] = (−1)n · i=0 li ·[det(zi In −
A)], where the li ’s are the interpolation coefficients.
Let M ∈ K n+1,n+1 be the Vandermonde matrix whose i-th row is (1, zi , . . . , zin ),
and write y and f for the (column) vectors whose i-th coordinates are equal to
yi and to the coefficient of X i in fA (X), respectively. Then f = M −1 y.
The protocol above not only securely computes the determinant [det(A)],
but in fact the coefficient vector f of the characteristic polynomial, if we replace
the last step by [f ] = M −1 · ([det(z0 In − A)], . . . , [det(zn In − A)])T . Note that
we might as well omit computation of the leading coefficient of fA (X) since it is
equal to 1 anyway.
second” entry we obtain a vector f ∈ K n whose top n − r entries are zero, while
its n − r + 1-st entry is non-zero, where r = r(A).
efficiently and in constant rounds, with the following properties. If the system
is solvable, b = 1 and x ∈ K n and B ∈ K n,n are such that Ax = y and the
columns of B generate the null-space Ker A (optionally, the non-zero columns
form a basis). If the system is not solvable, b = 0, and [x], [B] are both all-zero.
Our solution is based on a Random Sampling Protocol which we describe
first.
Let y be given to the network, and assume for the moment that the linear system
Ax = y has a solution. The purpose of the network is to securely compute [x],
where x is a random solution of Ax = y, efficiently and in constant rounds.
Note that in particular this implies a means for the network to securely sample
random elements from Ker A by setting y = 0.
Our approach is to reduce the problem to that of solving a regular system,
since this can be handled by the methods of Bar-Ilan and Beaver. Using the
Sub-Space Membership Protocol the network first securely computes the shared
decision bit [b] on whether the system has a solution at all. Applying that same
protocol in an appropriate way, they are able to select a linearly independent
generating subset of the columns of A, and to replace the other columns by
random ones. With high probability θ, this new matrix T is invertible: if r is
n r n
n−r
−q n−1 )
the rank of A, then θ = (q −q )···(q q n ≥ 1 − 1
q ≥ 1 − nq , which differs
from 1 only negligibly.
This means that, with high probability, the methods of Bar-Ilan and Beaver
can be applied to the system T x1 = y in the unknown x1 . More precisely, they
are applied to the system T x1 = y−y0 , where y0 is a random linear combination
over the columns of A that were replaced by columns of R in the construction of
T . In other words, y0 = Ax0 for x0 chosen randomly such that its i-th coordinate
equals 0 if ci = 1.
If T is indeed invertible and if Ax = y has a solution at all, then the coor-
dinates of x1 corresponding to the “random columns” in T must be equal to 0.
Then x = x0 + x1 is a solution of Ax = y, since Ax = Ax0 + Ax1 = y0 + T x1 =
y0 + (y − y0 ) = y. It is also clearly random, since x1 is unique given y and
random x0 .
The result of the protocol is computed as ([b], [b] · [x]), where b is the decision
bit computed at the beginning.
Here are the details. Write k1 , . . . , kn to denote the columns of A, and set
k0 = 0. Define the vector c ∈ K n by ci = 1 if ki is not a linear combination of
k0 , . . . , ki−1 , and ci = 0 otherwise. Note that B = {ki : ci = 1} is a basis for the
space generated by the columns of A.
The shared vector [c] is securely computed by applying the Sub-Space Mem-
bership Protocol in parallel to the pairs ([Ai−1 ], [ki ]), where Ai is the matrix
consisting of the columns k0 , . . . , ki−1 , and “negating” the resulting shared de-
cision bits.
Write [C] for the shared diagonal matrix with c on its diagonal. We ’ll use
this matrix as a selector as follows. After generating a random shared matrix
134 R. Cramer and I. Damgård
[R], the network replaces the columns in A that do not belong to the basis B
by corresponding columns from R, by securely computing [T ] = [A] · [C] + [R] ·
([I − C]). As argued before, T is invertible with high probability.
Next, they securely generate a random shared vector [x0 ] with zeroes at the
coordinates i with ki ∈ B, by generating [x00 ] randomly, and securely multiplying
its i-th coordinate by [1 − ci ], i = 1, . . . , n. The shared vector [y0 ] is now securely
computed as [y0 ] = [A] · [x0 ].
Using Bar-Ilan and Beaver’s method for securely solving a regular system,
the network computes [x1 ] = [T ]−1 · ([y] − [y0 ]), and finally [x] = [x0 ] + [x1 ] and
[b] · [x]. They take ([b], [b] · [x]) as the result.
By inspection of our protocols, non-zero error probabilities arise when the net-
work happens to select zeroes of “hidden” polynomials. Since upper-bounds on
their degree are known, such errors can be avoided altogether by passing to an
extension field and having the network select elements with sufficiently large
algebraic degree instead. This, together with some other minor modifications,
leads to protocols with perfect correctness in all cases. In [11] we study efficient
alternatives with perfect privacy, thereby avoiding the need for large fields.
References
1. J. Bar-Ilan, D. Beaver: Non-cryptographic fault-tolerant computing in constant
number of rounds of interaction, Proc. ACM PODC ’89, pp. 201-209, 1989.
2. D. Beaver, S. Micali, P. Rogaway: The Round Complexity of Secure Protocols, Proc.
22nd ACM STOC, pp. 503–513, 1990.
3. D. Beaver: Minimal Latency Secure Function Evaluation, Proc. EUROCRYPT ’00,
Springer Verlag LNCS, vol. 1807, pp. 335–350.
4. A. Beimel, A. Gál: On Arithmetic Branching Programs, J. Comp. & Syst. Sc., 59,
pp. 195–220, 1999.
5. M. Ben-Or, S. Goldwasser, A. Wigderson: Completeness theorems for non-cryp-
tographic fault-tolerant distributed computation, Proc. ACM STOC ’88, pp. 1–10,
1988.
6. R. Canetti, U. Feige, O. Goldreich, M. Naor: Adaptively secure multi-party compu-
tation, Proc. ACM STOC ’96, pp. 639–648, 1996.
7. D. Chaum, C. Crépeau, I. Damgård: Multi-party unconditionally secure protocols,
Proc. ACM STOC ’88, pp. 11–19, 1988.
8. R. Cramer, I. Damgård, J. Buus Nielsen: Multiparty Computation from Threshold
Homomorphic Encryption, Proc. EUROCRYPT ’01, Springer Verlag LNCS, vol.
2045, pp. 280–300., 2001.
9. R. Cramer, I. Damgård, U. Maurer: General Secure Multi-Party Computation
from any Linear Secret-Sharing Scheme, Proc. EUROCRYPT ’00, Springer Verlag
LNCS, vol 1807, pp. 316–334. Full version available from IACR eprint archive,
2000.
10. R. Cramer, I. Damgård, S. Dziembowski, M. Hirt and T. Rabin: Efficient multi-
party computations secure against an adaptive adversary, Proc. EUROCRYPT ’99,
Springer Verlag LNCS, vol. 1592, pp. 311–326, 1999.
11. R. Cramer, I. Damgård, V. Daza: work in progress, 2001.
12. U. Feige, J. Kilian, M. Naor: A Minimal Model for Secure Computation, Proc.
ACM STOC ’94, pp. 554–563, 1994.
13. R. Gennaro, M. Rabin, T. Rabin: Simplified VSS and fast-track multi-party com-
putations with applications to threshold cryptography, Proc. ACM PODC’98, pp.
101–111, 1998.
14. O. Goldreich, S. Micali and A. Wigderson: How to play any mental game or a
completeness theorem for protocols with honest majority, Proc. ACM STOC ’87,
pp. 218–229, 1987.
15. M. Hirt, U. Maurer: Player simulation and general adversary structures in perfect
multi-party computation, Journal of Cryptology, vol. 13, no. 1, pp. 31–60, 2000.
(Preliminary version in Proc. ACM PODC’97, pp. 25–34, 1997)
16. Y. Ishai, E. Kushilevitz: Private Simultaneous Messages Protocols with Applica-
tions, Proc. 5th Israel Symposium on Theoretical Comp. Sc. (ISTCS ’97), pp.
174–183, 1997.
17. Y. Ishai, E. Kushilevitz: Randomizing Polynomials: A New Paradigm for Round-
Efficient Secure Computation, Proc. of FOCS ’00, 2000.
18. M. Karchmer, A. Wigderson: On span programs, Proc. of Structure in Complexity
’93, pp. 102–111, 1993.
19. J. Kilian: Founding Cryptography on Oblivious Transfer, Proc. ACM STOC ’88,
pp. 20-31, 1988.
20. F. T. Leighton: Introduction to Parallel Algorithms and Architectures: Arrays–
Trees–Hypercubes, Morgan Kaufmann Publishers, 1992.
136 R. Cramer and I. Damgård
1 Introduction
In this paper we present an efficient and provably secure protocol by which al-
ice and bob, each holding a share of a DSA [25] private key, can (and must)
interact to generate a DSA signature on a given message with respect to the
corresponding public key. As noted in previous work on multiparty DSA signa-
ture generation (e.g., [26,7,16]), shared generation of DSA signatures tends to be
more complicated than shared generation of many other types of ElGamal-based
signatures [10] because (i) a shared secret must be inverted, and (ii) a multi-
plication must be performed on two shared secrets. One can see this difference
by comparing a Harn signature [20] with a DSA signature, say over parame-
ters <g, p, q>, with public/secret key pair <y(= g x mod p), x> and ephemeral
public/secret key pair <r(= g k mod p), k>. In a Harn signature, one computes
s ← x(hash(m)) − kr mod q
and returns a signature <r, s>, while for a DSA signature, one computes
and returns a signature <r mod q, s>. Obviously, to compute the DSA signature
the ephemeral secret key must be inverted, and the resulting secret value must
be multiplied by the secret key. For security, all of these secret values must be
shared, and thus inversion and multiplication on shared secrets must be per-
formed. Protocols to perform these operations have tended to be much more
complicated than protocols for adding shared secrets.
2 Related Work
solutions, in which the t corrupted players cannot interfere with the other n − t
signing a message, provided that stronger conditions on n and t are met (at least
n ≥ 3t + 1). However, since we consider the two party case only, robustness is
not a goal here.
The only previous proposal that can implement two-party generation of DSA
signatures is due to Langford [26, Section 5.1], which ensures unforgeability
against t corrupt players out of n for an arbitrary t < n. This is achieved,
however, by using a trusted center to precompute the ephemeral secret key k
for each signature and to share k −1 mod q and k −1 x mod q among the n par-
ties. That is, this solution circumvents the primary difficulties of sharing DSA
signatures—inverting a shared secret and multiplying shared secrets, as discussed
in Section 1—by using a trusted center. Recognizing the significant drawbacks
of a trusted center, Langford extends this solution by replacing the trusted cen-
ter with three centers (that protect k −1 and k −1 x from any one) [26, Section
5.2], thereby precluding this solution from being used in the two-party case. In
contrast, our solution suffices for the two-party case without requiring the play-
ers to store precomputed, per-signature values. Since our motivating application
naturally admits a trusted party for initializing the system (see [27]), for the
purposes of this extended abstract we assume a trusted party to initialize alice
and bob with shares of the private signing key. In the full version of this paper,
we will describe the additional machinery needed to remove this assumption.
3 Preliminaries
DSA. The Digital Signature Algorithm [25] was proposed by NIST in April
1991, and in May 1994 was adopted as a standard digital signature scheme
in the U.S. [12]. It is a variant of the ElGamal signature scheme [10], and is
defined as follows, with κ = 160, κ0 set to a multiple of 64 between 512 and
1024, inclusive, and hash function hash defined as SHA-1 [11]. Let “z ←R S”
denote the assignment to z of an element of S selected uniformly at random.
Let ≡q denote equivalence modulo q.
140 P. MacKenzie and M.K. Reiter
0
GDSA (1κ ): Generate a κ-bit prime q and κ0 -bit prime p such that
q divides p − 1. Then generate an element g of order q
in Z∗p . The triple <g, p, q> is public. Finally generate
x ←R Zq and y ← g x mod p, and let <g, p, q, x> and
<g, p, q, y> be the secret and public keys, respectively.
S<g,p,q,x> (m): Generate an ephemeral secret key k ←R Zq and
ephemeral public key r ← g k mod p. Compute s ←
k −1 (hash(m) + xr) mod q. Return <r mod q, s> as
the signature of m.
V<g,p,q,y> (m, <r, s>): Return 1 if 0 < r < q, 0 < s < q, and r ≡q
−1 −1
(g hash(m)s y rs mod p) where s−1 is computed mod-
ulo q. Otherwise, return 0.
Examples of cryptosystems for which +pk exist (with Mpk = [−v, v] for a certain
value v) are due to Naccache and Stern [28], Okamoto and Uchiyama [30], and
Paillier [31].1 Note that (1) further implies the existence of an efficient function
×pk : Cpk × Mpk → Cpk such that
System model. Our system includes two parties, alice and bob. Communication
between alice and bob occurs in sessions (or protocol runs), one per message that
they sign together. alice plays the role of session initiator in our protocol. We
presume that each message is implicitly labeled with an identifier for the session
to which it belongs. Multiple sessions can be executed concurrently.
The adversary in our protocol controls the network, inserting and manip-
ulating communication as it chooses. In addition, it takes one of two forms:
an alice-compromising adversary learns all private initialization information for
alice. A bob-compromising adversary is defined similarly.
We note that a proof of security in this two-party system extends to a proof of
security in an n-party system in a natural way, assuming the adversary decides
which parties to compromise before any session begins. The basic idea is to
guess for which pair of parties the adversary forges a signature, and focus the
simulation proof on those two parties, running all other parties as in the real
protocol. The only consequence is a factor of roughly n2 lost in the reduction
argument from the security of the signature scheme.
4 Signature Protocol
In this section we present a new protocol called S-DSA by which alice and bob
sign a message m.
4.1 Initialization
For our signature protocol, we assume that the private key x is multiplicatively
shared between alice and bob, i.e., that alice holds a random private value x1 ∈ Zq
and bob holds a random private value x2 ∈ Zq such that x ≡q x1 x2 . We also
assume that along with y, y1 = g x1 mod p and y2 = g x2 mod p are public. In this
extended abstract, we do not concern ourselves with this initialization step, but
simply assume it is performed correctly, e.g., by a trusted third party. We note,
however, that achieving this without a trusted third party is not straightforward
(e.g., see [17]), and so we will describe such an initialization protocol in the full
version of this paper.
We use a multiplicative sharing of x to achieve greater efficiency than using
either polynomial sharing or additive sharing. With multiplicative sharing of
keys, inversion and multiplication of shared keys becomes trivial, but addition
of shared keys becomes more complicated. For DSA, however, this approach
seems to allow a much more efficient two-party protocol.
In addition to sharing x, our protocol assumes that alice holds the private key
sk corresponding to a public encryption key pk, and that there is another public
encryption key pk 0 for which alice does not know the corresponding sk 0 . (As
above, we assume that these keys are generated correctly, e.g., by a trusted third
party.) Also, it is necessary for our particular zero-knowledge proof constructions
that the range of Mpk be at least [−q 8 , q 8 ] and the range of Mpk0 be at least
[−q 6 , q 6 ], although we believe a slightly tighter analysis would allow both to have
a range of [−q 6 , q 6 ].
142 P. MacKenzie and M.K. Reiter
The protocol by which alice and bob cooperate to generate signatures with re-
spect to the public key <g, p, q, y> is shown in Figure 1. As input to this protocol,
alice receives the message m to be signed. bob receives no input (but receives m
from alice in the first message).
Upon receiving m to sign, alice first computes its share k1 of the ephemeral
private key for this signature, computes z1 = (k1 )−1 mod q, and encrypts both
z1 and x1 z1 mod q under pk. alice’s first message to bob consists of m and these
ciphertexts, α and ζ. bob performs some simple consistency checks on α and ζ
(though he cannot decrypt them, since he does not have sk), generates his share
k2 of the ephemeral private key, and returns his share r2 = g k2 mod p of the
ephemeral public key.
Once alice has received r2 from bob and performed simple consistency checks
on it (e.g., to determine it has order q modulo Z∗p ), she is able to compute the
ephemeral public key r = (r2 )k1 mod p, which she sends to bob in the third
message of the protocol. alice also sends a noninteractive zero-knowledge proof
Π that there are values η1 (= z1 ) and η2 (= x1 z1 mod q) that are consistent
with r, r2 , y1 , α and ζ, and that are in the range [−q 3 , q 3 ]. This last fact is
necessary so that bob’s subsequent formation of (a ciphertext of) s does not leak
information about his private values.
Upon receiving <r, Π>, bob verifies Π and performs additional consistency
checks on r. If these pass, then he proceeds to compute a ciphertext µ of the value
s (modulo q) for the signature, using the ciphertexts α and ζ received in the first
message from alice; the values hash(m), z2 = (k2 )−1 mod q, r mod q, and x2 ; and
the special ×pk and +pk operators of the encryption scheme. In addition, bob uses
+pk to “blind” the plaintext value with a random, large multiple of q. So, when
alice later decrypts µ, she statistically gains no information about bob’s private
values. In addition to returning µ, bob computes and returns µ0 ← Epk0 (z2 ) and
a noninteractive zero-knowledge proof Π 0 that there are values η1 (= z2 ) and
η2 (= x2 z2 mod p) consistent with r2 , y2 , µ and µ0 , and that are in the range
[−q 3 , q 3 ]. After receiving and checking these values, alice recovers s from µ to
complete the signature.
The noninteractive zero-knowledge proofs Π and Π 0 are assumed to satisfy
the usual completeness, soundness, and zero-knowledge properties as defined
in [3,29], except using a public random hash function (i.e., a random oracle)
instead of a public random string. In particular, we assume in Section 5 that (1)
these proofs have negligible simulation error probability, and in fact a simulator
exists that generates a proof that is statistically indistinguishable from a proof
generated by the real prover, and (2) these proofs have negligible soundness error
probability, i.e., the probability that a prover could generate a proof for a false
statement is negligible. The implementations of Π and Π 0 in Section 6 enforce
these properties under reasonable assumptions. To instantiate this protocol with-
out random oracles, Π and Π 0 would need to become interactive zero-knowledge
protocols. It is not too difficult to construct four-move protocols for Π and Π 0 ,
and by overlapping some messages, one can reduce the total number of moves in
Two-Party Generation of DSA Signatures 143
this instantiation of the S-DSA protocol to eight. For brevity, we omit the full
description of this instantiation.
When the zero-knowledge proofs are implemented using random oracles, we
can show that our protocol is secure even when multiple instances are executed
concurrently. Perhaps the key technical aspect is that we only require proofs of
language membership, which can be implemented using random oracles without
requiring rewinding in the simulation proof. In particular, we avoid the need for
any proofs of knowledge that would require rewinding in knowledge extractors
for the simulation proof, even if random oracles are used. The need for rewinding
(and particularly, nested rewinding) causes many proofs of security to fail in the
concurrent setting (e.g., [24]).
In this section we sketch a formal proof of security for our protocol. We begin
by defining security for signatures and encryption in Section 5.1 and for S-DSA
in Section 5.2. We then state our theorems and proofs in Section 5.3.
alice bob
k1 ←R Zq
z1 ←R (k1 )−1 mod q
α ← Epk (z1 )
ζ ← Epk (x1 z1 mod q)
<m,α,ζ>
-
abort if (α 6∈ Cpk ∨ ζ 6∈ Cpk )
k2 ←R Zq
r2 ← g k2 mod p
r2
abort if (r2 6∈ Z∗p ∨ (r2 )q 6≡p 1)
r ← (r2 )k
1
mod p
∃η1 , η2 : η1 , η2 ∈ [−q 3 , q 3 ]
∧ rη1 ≡p r2
Π ← zkp ∧ g η2 /η1
≡ p y1
∧ Dsk (α) ≡q η1
∧ Dsk (ζ) ≡q η2
<r,Π>
-
<µ,µ0 ,Π 0 >
5.3 Theorems
Here we state theorems and provide proof sketches showing that if a forger
breaks the S-DSA system with non-negligible probability, then either DSA or the
underlying encryption scheme used in S-DSA can be broken with non-negligible
probability. This implies that if DSA and the underlying encryption scheme are
secure, our system will be secure.
We prove security separately for alice-compromising and bob-compromising
forgers. The idea behind each proof is a simulation argument. Assuming that
a forger F can break the S-DSA system, we then construct a forger F ∗ that
breaks DSA. Basically F ∗ will run F over a simulation of the S-DSA system,
and when F succeeds in forging a signature in the simulation of S-DSA, then
F ∗ will succeed in forging a DSA signature.
In the security proof against an alice-compromising forger F , there is a slight
complication. If F were able to break the encryption scheme (Genc , E, D), an
attacker F ∗ as described above may not be able to simulate properly. Thus we
show that either F forges signatures in a simulation where the encryptions are
of strings of zeros, and thus we can construct a forger F ∗ for DSA, or F does not
forge signatures in that simulation, and thus it must be able to distinguish the
true encryptions from the zeroed encryptions. Then we can construct an attacker
A that breaks the underlying encryption scheme. A similar complication arises
146 P. MacKenzie and M.K. Reiter
1. bobInv1(<m, α, ζ>): Set z1 ← Dsk (α). Query the DSA signature oracle with
−1 −1
m to get a signature <r̂, ŝ>, and compute r ← g hash(m)ŝ y r̂ŝ mod p where
ŝ−1 is computed modulo q. Compute r2 ← rz1 mod p, and return r2 .
2. bobInv2(<r, Π>): Reject if Π is invalid, r 6∈ Z∗p or rq 6≡p 1. Else, choose
c ←R Zq5 and set µ ← Epk (ŝ + cq). Set µ0 ← Epk0 (0), and generate Π 0 using
the simulator for the zkp []. Return <µ, µ0 , Π 0 >.
Notice that Sim sets µ0 to an encryption of zero, and simulates the proof of
consistency Π 0 . In fact, disregarding the negligible statistical difference between
the simulated Π 0 proofs and the real Π 0 proofs, the only way Sim and the real
S-DSA scheme differ (from F ’s viewpoint) is with respect to the µ0 values, i.e.,
the (at most) qbob ciphertexts generated using pk 0 .
Now consider a forger F ∗ that takes as input a DSA public key
<g, p, q, y> and corresponding signature oracle, generates a public key pk 0 using
0
<pk 0 , sk 0 > ← Genc (1κ ), runs Sim using these parameters as inputs, and outputs
whatever F outputs. If F produces a forgery with probability at least 2 in Sim,
F ∗ produces a forgery in the underlying DSA signature scheme with probability
at least 2 .
Otherwise F produces a forgery with probability less than 2 in Sim. Then
using a standard hybrid argument, we can construct an attacker A that 0 -
breaks the semantic security of the underlying encryption scheme for pk 0 , where
0 ≈ 2qbob . Specifically, A takes a public key pk 0 and corresponding test oracle
Two-Party Generation of DSA Signatures 147
as input, generates a DSA public/private key pair (<g, p, q, y>, <g, p, q, x>) ←
0
GDSA (1κ ), and runs a slightly modified Sim using <g, p, q, y> as the DSA public
key parameter, simulating the DSA signature oracle with <g, p, q, x>, and using
pk 0 as the public encryption key parameter. Sim is modified only in the bobInv2
query, as follows:
1. A computes the value z2 ← (kz1 )−1 mod q, where k was computed in the
simulation of the DSA signature oracle in the corresponding bobInv1 query,
2. A chooses to produce the first j ciphertexts under pk 0 as in the real protocol
(i.e., µ0 ← Epk0 (z2 )), for a random j ∈ {0, . . . , qbob }, and
3. A produces the next ciphertext under pk 0 by using the response from the
test oracle with input X0 = z2 and X1 = 0.
1. aliceInv1(m): Set α ← Epk (0) and ζ ← Epk (0), and return <m, α, ζ>.
2. aliceInv2(r2 ): Reject if r2 6∈ Z∗p or (r2 )q 6≡p 1. Call the DSA signature oracle
with m, let (r̂, ŝ) be the resulting signature, and compute
−1 −1
r ← g hash(m)ŝ y r̂ŝ mod p where ŝ−1 is computed modulo q. Construct Π
using the simulator for the zkp []. Store <r̂, ŝ> and return <r, Π>.
3. aliceInv3(<µ, µ0 , Π 0 >): Reject if µ 6∈ Cpk , µ0 6∈ Cpk0 , or the verification of
Π 0 fails. Otherwise, return <r̂, ŝ>.
Notice that Sim sets α and ζ to encryptions of zero, and simulates the proof of
consistency Π. In fact, disregarding the negligible statistical difference between
the simulated Π proofs and the real Π proofs, the only way Sim and the real
S-DSA scheme differ (from F ’s viewpoint) is with respect to the α and ζ values,
i.e., the (at most) 2qalice ciphertexts generated using pk.
148 P. MacKenzie and M.K. Reiter
Now consider a forger F ∗ that takes as input a DSA public key <g, p, q, y>
and a corresponding signature oracle, generates a public key pk using
0
<pk, sk> ← Genc (1κ ), runs Sim using these parameters as inputs, and out-
puts whatever F outputs. If F produces a forgery with probability at least 2
in Sim, F ∗ produces a forgery in the underlying DSA signature scheme with
probability at least 2 .
Otherwise F produces a forgery with probability less than 2 in Sim. Then
using a standard hybrid argument, we can construct an attacker A that 0 -
breaks the semantic security of the underlying encryption scheme for pk, where
0 ≈ 4qalice . Specifically, A takes a public key pk and corresponding test oracle
as input, generates a DSA public/private key pair (<g, p, q, y>, <g, p, q, x>) ←
0
GDSA (1κ ), and runs a slightly modified Sim using <g, p, q, y> as the DSA public
key parameter, and using pk as the public encryption key parameter. Sim is
modified only in the alice oracle queries, as follows:
1. In aliceInv1,
a) A chooses to produce the first j ciphertexts under pk as in the real
protocol (i.e., either α ← Epk (z1 ) or ζ ← Epk (x1 z1 mod q)), for a random
j ∈ {0, . . . , 2qalice },
b) A produces the next ciphertext under pk by using the response from the
test oracle with input X0 being the plaintext from the real protocol (i.e.,
either X0 = z1 or X0 = x1 z1 mod q, depending on whether j is even or
odd) and X1 = 0.
2. In aliceInv2, A computes r as in the real protocol, without calling the DSA
signature oracle.
3. In aliceInv3, instead of returning the result of calling the DSA signature ora-
cle, A computes z2 ← Dsk0 (µ0 ) and k2 ← (z2 )−1 mod q, sets k ← k1 k2 mod q,
and returns the DSA signature for m using DSA secret key <g, p, q, x> with
k as the ephemeral secret key.
6 Proofs Π and Π 0
In this section we provide an example of how alice and bob can efficiently con-
struct and verify the noninteractive zero-knowledge proofs Π and Π 0 . The form
of these proofs naturally depends on the encryption scheme (Genc , E, D), and
the particular encryption scheme for which we detail Π and Π 0 here is that due
to Paillier [31]. We reiterate, however, that our use of Paillier is merely exem-
plary, and similar proofs Π and Π 0 can be constructed with other cryptosystems
satisfying the required properties (see Section 3).
Two-Party Generation of DSA Signatures 149
We caution the reader that from this point forward, our use of variables is
not necessarily consistent with their prior use in the paper; rather, it is necessary
to replace certain variables or reuse them for different purposes.
6.2 Proof Π
In this section we show how to efficiently implement the proof Π in our protocol
when the Paillier cryptosystem is used. Π 0 is detailed in Section 6.3. Both proofs
rely on the following assumption:
is negligible.
In our proofs, it is assumed that there are public values Ñ , h1 and h2 . Sound-
ness requires that Ñ be an RSA modulus that is the product of two strong
150 P. MacKenzie and M.K. Reiter
primes and for which the factorization is unknown to the prover, and that the
discrete logs of h1 and h2 relative to each other modulo Ñ are unknown to the
prover. Zero knowledge requires that discrete logs of h1 and h2 relative to each
other modulo Ñ exist (i.e., that h1 and h2 generate the same group). As in Sec-
tion 4.1, here we assume that these parameters are distributed to alice and bob
by a trusted third party. In the full paper, we will describe how this assumption
can be eliminated.
Now consider the proof Π. Let p and q be as in a DSA public key, pk =
<N, g> be a Paillier public key, and sk = <N, g, λ(N )> be the corresponding
private key, where N > q 6 . For public values c, d, w1 , w2 , m1 , m2 , we construct
a zero-knowledge proof Π of:
∃x1 , x2 : x1 , x2 ∈ [−q 3 , q 3 ]
∧ cx1 ≡p w1
P = ∧ dx2 /x1
≡p w2
∧ Dsk (m1 ) = x1
∧ Dsk (m2 ) = x2
6.3 Proof Π 0
Now we look at the proof Π 0 . Let p and q be as in a DSA public key, pk = <N, g>
and sk = <N, g, λ(N )> be a Paillier key pair with N > q 8 , and pk 0 = <N 0 , g 0 >
and sk 0 = <N 0 , g 0 , λ(N 0 )> be a Paillier key pair with N 0 > q 6 . For values c, d,
w1 , w2 , m1 , m2 , m3 , m4 such that for some n1 , n2 ∈ [−q 4 , q 4 ], Dsk (m3 ) = n1
and Dsk (m4 ) = n2 , we construct a zero-knowledge proof Π 0 of:
Two-Party Generation of DSA Signatures 151
∃x1 , x2 , x3 : x1 , x2 ∈ [−q 3 , q 3 ]
∧ x3 ∈ [−q 7 , q 7 ]
∧ cx1 ≡p w1
P0 =
∧ x2 /x1
d ≡p w2
∧ Dsk0 (m1 ) = x1
∧ Dsk (m2 ) = n1 x1 + n2 x2 + qx3
α ←R Zq3 δ ←R Zq3
β ←R Z∗N µ ←R Z∗N
γ ←R Zq3 Ñ ν ←R Zq3 Ñ
ρ1 ←R ZqÑ ρ2 ←R ZqÑ
ρ3 ←R Zq
←R Zq
z1 ← (h1 )x1 (h2 )ρ1 mod Ñ z2 ← (h1 )x2 (h2 )ρ2 mod Ñ
u1 ← cα mod p y ← dx2 +ρ3 mod p
u2 ← g α β N mod N 2 v1 ← dδ+ mod p
u3 ← (h1 )α (h2 )γ mod Ñ v2 ← (w2 )α d mod p
v3 ← g δ µN mod N 2
v4 ← (h1 )δ (h2 )ν mod Ñ
e ← hash(c, w1 , d, w2 , m1 , m2 , z1 , u1 , u2 , u3 , z2 , y, v1 , v2 , v3 , v4 )
s1 ← ex1 + α t1 ← ex2 + δ
s2 ← (r1 )e β mod N t2 ← eρ3 + mod q
s3 ← eρ1 + γ t3 ← (r2 )e µ mod N 2
t4 ← eρ2 + ν
Π ← <z1 , u1 , u2 , u3 , z2 , y, v1 , v2 , v3 , v4 , s1 , s2 , s3 , t1 , t2 , t3 , t4 >
Fig. 2. Construction of Π
<z1 , u1 , u2 , u3 , z2 , y, v1 , v2 , v3 , v4 , s1 , s2 , s3 , t1 , t2 , t3 , t4 > ← Π
Verify s1 , t1 ∈ Zq3 . Verify dt1 +t2 ≡p y e v1 .
s1 e
Verify c ≡p (w1 ) u1 . Verify (w2 )s1 dt2 ≡p y e v2 .
s1 N e
Verify g (s2 ) ≡N 2 (m1 ) u2 . Verify g t1 (t3 )N ≡N 2 (m2 )e v3 .
Verify (h1 )s1 (h2 )s3 ≡Ñ (z1 )e u3 . Verify (h1 )t1 (h2 )t4 ≡Ñ (z2 )e v4 .
Fig. 3. Verification of Π
152 P. MacKenzie and M.K. Reiter
α ←R Zq3 δ ←R Zq3
β ←R Z∗N 0 µ ←R Z∗N
γ ←R Zq3 Ñ ν ←R Zq3 Ñ
ρ1 ←R ZqÑ ρ2 ←R ZqÑ
ρ3 ←R Zq
ρ4 ←R Zq5 Ñ
←R Zq
σ ←R Zq7
τ ←R Zq7 Ñ
z1 ← (h1 )x1 (h2 )ρ1 mod Ñ z2 ← (h1 )x2 (h2 )ρ2 mod Ñ
u1 ← cα mod p y ← dx2 +ρ3 mod p
0
u2 ← (g 0 )α β N mod (N 0 )2 v1 ← dδ+ mod p
u3 ← (h1 ) (h2 )γ mod Ñ
α
v2 ← (w2 )α d mod p
v3 ← (m3 )α (m4 )δ g qσ µN mod N 2
v4 ← (h1 )δ (h2 )ν mod Ñ
z3 ← (h1 )x3 (h2 )ρ4 mod Ñ
v5 ← (h1 )σ (h2 )τ mod Ñ
e ← hash(c, w1 , d, w2 , m1 , m2 , z1 , u1 , u2 , u3 , z2 , z3 , y, v1 , v2 , v3 , v4 , v5 )
s1 ← ex1 + α t1 ← ex2 + δ
s2 ← (r1 )e β mod N 0 t2 ← eρ3 + mod q
s3 ← eρ1 + γ t3 ← (r2 )e µ mod N
t4 ← eρ2 + ν
t5 ← ex3 + σ
t6 ← eρ4 + τ
Π 0 ← <z1 , u1 , u2 , u3 , z2 , z3 , y, v1 , v2 , v3 , v4 , v5 , s1 , s2 , s3 , t1 , t2 , t3 , t4 , t5 , t6 >
Fig. 4. Construction of Π 0
<z1 , u1 , u2 , u3 , z2 , z3 , y, v1 , v2 , v3 , v4 , v5 , s1 , s2 , s3 , t1 , t2 , t3 , t4 , t5 , t6 > ← Π 0
Verify s1 , t1 ∈ Zq3 . Verify dt1 +t2 ≡p y e v1 .
Verify t5 ∈ Zq7 . Verify (w2 )s1 dt2 ≡p y e v2 .
Verify cs1 ≡p (w1 )e u1 . Verify (m3 )s1 (m4 )t1 g qt5 (t3 )N ≡N 2 (m2 )e v3 .
0 s1 N0 e
Verify (g ) (s2 ) ≡(N 0 )2 (m1 ) u2 . Verify (h1 )t1 (h2 )t4 ≡Ñ (z2 )e v4 .
Verify (h1 )s1 (h2 )s3 ≡Ñ (z1 )e u3 . Verify (h1 )t5 (h2 )t6 ≡Ñ (z3 )e v5 .
Fig. 5. Verification of Π 0
References
1 Introduction
Oblivious Transfer (OT) was introduced by Rabin [47] in 1981, and has since
then become one of the most fundamental and powerful tools in cryptography.
An important
generalization, known as one-out-of-two oblivious transfer and
denoted 21 -OT, was introduced by Even, Goldreich, and Lempel [28] in 1982.
Informally speaking, in a 21 -OT, a sender Alice has two secret bits M0 , M1 ∈
{0, 1}, and a receiver Bob has a secret bit δ ∈ {0, 1}. Alice sends M0 , M1 in
such a way that Bob receives Mδ , but does not learn both M0 and M1 , and
Alice learns nothing about δ. Crépeau proved in 1987 that OT and 21 -OT are
equivalent [19]. In 1988, Kilian proved that every secure two-party and multi-
party computation can be reduced to OT [33].
Traditionally, protocols for OT have been based on unproven complexity
assumptions that certains problems, such as integer factorization, are computa-
tionally hard, or that trapdoor permutations exist. The solutions so obtained,
although significant, have a drawback. Namely, they do not guarantee everlasting
security. A dishonest player can store the entire conversation during the proto-
col, and attempt to subvert the security of the protocol later, when enabled by
breakthroughs in computing technology and/or code-breaking algorithms. While
2 Preliminaries
This section provides the building blocks for our protocol and analysis. Through-
out the paper, k is a security parameter, n is the length of a public random string,
and B = γn, γ < 1, is the storage bound on the receiver Bob. For simplicity and
WLOG, we consider B = n/6 (i.e. γ = 1/6). Similar results hold for any γ < 1.
d
Definition 1. Denote [n] = {1, . . . , n}. Let K = {s ⊂ [n] : |s| = k} be the set
of all k-element subsets of [n].
n d
Definition 2. For s = {σ1 , . . . , σk } ∈ K and α ∈ {0, 1} , define s(α) =
Lk
i=1 α[σi ], where ⊕ denotes XOR, and α[σi ] is the σi -th bit of α.
158 Y.Z. Ding
n
Definition 3. Let H ⊂ {0, 1} . Let s ∈ K. We say that s is good for H if
Thus, if s is good for H, then {s(α) : α ∈ H} is well balanced between 0’s and
1’s.
n
Definition 4. Let H ⊂ {0, 1} . We say that H is fat if |H| ≥ 20.813n .
The following Lemma 1 says that if H is fat, then almost all s ∈ K are good
for H. The lemma follows directly from Main Lemma 1 of [24], by considering
k-tuples in [n]k with distinct coordinates.
n
Lemma 1. Let H ⊂ {0, 1} . Denote
d
BH = {s ∈ K : s is not good for H} . (2)
√
If H is fat, and k < n 1 , then
n
|BH | < |K| · 2−k/3 = · 2−k/3 . (3)
k
R
Notation: Let F be a finite set. The notation x ←− F denotes choosing x
uniformly from F .
n
Lemma 2. Let 0 < γ, ν < 1 and ν < 1 − γ. For any function f : {0, 1} −→
γn R n
{0, 1} , for α ←− {0, 1} ,
h i
Pr f −1 (f (α)) ≥ 2(1−γ−ν)n > 1 − 2−νn .
n γn n
Proof. Any function f : {0, 1} −→ {0, 1} partitions {0, 1} into 2γn disjoint
γn
subsets Ω1 , . . . , Ω2γn , one for each η ∈ {0, 1} , such that for each i, ∀α, β ∈ Ωi ,
γn
f (α) = f (β) = ηi ∈ {0, 1} . Let µ = 1 − γ − ν. We now bound the number of
n
α ∈ {0, 1} s.t. f −1 (f (α)) < 2µn . Since there are at most 2γn j’s such that
µn
|Ωj | < 2 , it follows that
n
X
α ∈ {0, 1} : |f −1 (f (α))| < 2µn = |Ωj |
j:|Ωj |<2µn
R n
Therefore, for α ←− {0, 1} ,
n
−1 µn
α ∈ {0, 1} : |f −1 (f (α))| < 2µn
Pr f (f (α)) < 2 =
2n
2(1−ν)n
< = 2−νn .
2n
t
u
n n/6 R n
Corollary 1. For any function f : {0, 1} −→ {0, 1} , for α ←− {0, 1} ,
Pr f −1 (f (α)) is fat > 1 − 2−0.02n .
The rest of this section is devoted to the crucial tools employed by the CCM
Protocol and our protocol.
Lemma 3. Let A, B ⊂ [n] be two independent random subsets of [n] with |A| =
|B| = u. Then the expected size E[|A ∩ B|] = u2 /n.
Corollary 2.
√ Let A, B ⊂ [n] be two independent random subsets of [n] with
|A| = |B| = kn. Then the expected size E[|A ∩ B|] = k.
We now wish to bound the probability that |A ∩ B| deviates from the ex-
pectation. Note that standard Chernoff-Hoeffding bounds do not directly apply,
since elements of the subsets A and B are chosen without replacement. We use
the following version of Chernoff-Hoeffding from [4].
Lemma 5. [15] Suppose Alice and Bob engage in interactive hashing of a t-bit
t
string, lg t ≤ k ≤ t, by the NOVY protocol. Let T ⊂ {0, 1} be any subset with
t−k
|T | ≤ 2 . Then the probability that Bob can answer Alice’s queries in such a
way that T contains both strings χ0 , χ1 received by Alice, is at most 2−O(k) .
Corollary 4. Let Alice and Bob engage in interactive hashing of a t-bit string
t
as above. Let T0 , T1 ⊂ {0, 1} be any two subsets with |T0 |, |T1 | ≤ 2t−k . Then
the probability that Bob can answer Alice’s queries in such a way that either
χ0 ∈ T0 ∧ χ1 ∈ T1 , or χ0 ∈ T1 ∧ χ1 ∈ T0 , is at most 2−O(k) .
Proof. Let T = T0 ∪ T1 in Lemma 5. t
u
2
3 Protocol for 1
-OT
Recall that in a 21 -OT, the sender Alice has two secret bits M0 , M1 ∈ {0, 1},
and the receiver Bob has a secret bit δ ∈ {0, 1}. By definition, a 21 -OT protocol
is correct and secure if the following three conditions are all satisfied:
1. Bob receives Mδ .
2. Bob learns nothing about M1⊕δ , except with a small probability ν(k), where
k is a security parameter.
3. Alice learns nothing about δ.
d
Notation: For a bit Y ∈ {0, 1}, denote Y = 1 ⊕ Y .
√
Notation: From now on, let u = 2 kn.
2
Our protocol for 1 -OT, Protocol A, is described below. Protocol A uses
R n
two public random strings√α0 , α1 ←− {0, 1} . In each of Steps 2 and 3, Alice
and Bob each store u = 2 kn bits. In the interactive
hashing of Step 4, Alice
transmits and Bob stores t2 bits, where t = lg uk < k · (lg u − lg k/e). Since
√
k << n, the storage requirement is dominated by O(u) = O( kn).
Protocol A:
1. Alice randomly chooses A(0) = A(0) 1 , . . . , Au
(0)
, A(1) = A(1)
1 , . . . , Au
(1)
⊂
[n], with
|A (0)
| = |A (1)
| = u. Bob also chooses random B (0)
= B1
(0)
, . . . , B u
(0)
,
B (1) = B1(1) , . . . , Bu(1) ⊂ [n], with |B(0) | = |B(1) | = u.
R n
2. The first public random string α0 ←− {0, 1} is broadcast. Alice stores the
u bits α0 [A(0)
1 ], . . . , α0 [Au ], and Bob stores α0 [B1 ], . . . , α0 [Bu ].
(0) (0) (0)
R n
3. After a short pause, the second public random string α1 ←− {0, 1} is broad-
cast. Alice stores α1 [A(1)
1 ], . . . , α1 [Au ], and Bob stores α1 [B1 ], . . . , α1 [Bu ].
(1) (1) (1)
R
4. Alice sends A(0) , A(1) to Bob. Bob flips a coin c ←− {0, 1}, and computes
A(c) ∩B(c) . If A(c) n
∩ B (c) < k, then
o R aborts. Otherwise, Bob chooses a ran-
(c) (c)
dom k-subset s = Ai1 , . . . , Aik ⊂ A(c) ∩ B(c) , and sets I = {i1 , . . . , ik }.
(c)
Thus by Definition 5, s = AI .
5. Bob encodes I as a t-bit string, where t = lg uk , and sends I to Alice via
the NOVY interactive hashing protocol in t − 1 rounds. Alice receives two
k-subsets I0 < I1 ⊂ [u]. For some b ∈ {0, 1}, I = Ib , but Alice does not know
b. Bob also computes I0 , I1 by solving the same system of linear equations,
and knows b.
6. Bob sends ε = b ⊕ c and τ = δ ⊕ c to Alice, where c and b are defined in
Steps 4 and 5 respectively.
7. Alice sets s0 = A(0)
Iε , X0 = s0 (α0 ), s1 = AIε , and X1 = s1 (α1 ). Alice then
(1)
Lemma 6. The probability that an honest receiver Bob aborts in Step 4 of the
protocol, is at most e−k/4 .
Proof. By Corollary 3, Pr A(c) ∩ B (c) < k < e−k/4 . t
u
Lemma 7. The receiver Bob can read Mδ simply by following the protocol.
Proof. Because Alice does not learn c (defined in Step 4) and b (defined in Step
5) in Protocol A. t
u
Therefore, Conditions 1 and 2 for a correct and secure 21 -OT, are satisfied.
We now come to the most challenging part, namely, Condition 3 regarding the
security against a dishonest receiver Bob, who can store B = n/6 bits, and whose
goal is to learn both M0 and M1 . While α0 is broadcast in Step 2, Bob computes
an arbitrary function η0 = A0 (α0 ) using unlimited computing power, provided
that |η0 | = n/6; and while α1 is broadcast in Step 3, Bob computes an arbitrary
function η1 = A1 (η0 , α1 ), |η1 | = n/6. In Steps 4 - 6, using η1 and A(0) , A(1) ,
Bob employs an arbitrary strategy in interacting with Alice. At the end of the
protocol, Bob attempts to learn both M0 and M1 , using his information η1 on
(α0 , α1 ), C0 , C1 received from Alice in Step 7, and all information I he obtains
in Steps 4 - 6. Thus in particular, I includes A(0) , A(1) received from Alice in
Step 4, and I0 , I1 obtained in Step 5.
n n/6 n/6 n
Theorem 1. For any A0 : {0, 1} −→ {0, 1} and A1 : {0, 1} ×{0, 1} −→
n/6
{0, 1} , for any strategy Bob employs in Steps 4 - 6 of Protocol A, with proba-
bility at least 1 − 2−O(k) − 2−0.02n+1 , ∃ β ∈ {0, 1} such that for any distinguisher
D,
Theorem 1 says that using all the information he has in his bounded storage,
Bob is not able to distinguish between (Xβ , Xβ ) and (Xβ , 1 ⊕ Xβ ), for some
β ∈ {0, 1}, where X0 , X1 are defined in Step 7 of Protocol A. From Theorem 1,
we obtain:
164 Y.Z. Ding
n n/6 n/6 n
Theorem 2. For any A0 : {0, 1} −→ {0, 1} and A1 : {0, 1} ×{0, 1} −→
n/6
{0, 1} , for any strategy Bob employs in Steps 4 - 6 of Protocol A, with proba-
bility at least 1 − 2−O(k) − 2−0.02n+1 , ∃ β ∈ {0, 1} such that ∀ M0 , M1 ∈ {0, 1},
∀ δ ∈ {0, 1}, for any distinguisher D,
Pr [D(η1 , I, Xβ ⊕ Mδ , Xβ ⊕ Mδ ) = 1]
Proof. It is clear that (9) follows from (8). Therefore, Theorem 2 follows from
Theorem 1. t
u
4 Proof of Theorem 1
In this section, we consider a dishonest receiver Bob, and prove Theorem 1.
We first note that it suffices to prove the theorem in the case that Bob’s
recording functions A0 , A1 are deterministic. This does not detract from the
generality of our results for the following reason. By definition, a randomized
algorithm is an algorithm that uses a random help-string r for computing its
output. A randomized algorithm A with each fixed help-string r gives rise to a
deterministic algorithm Ar . Therefore, that Theorem 1 holds for any determin-
istic recording algorithm implies that for any randomized recording algorithm
A, for each fixed help-string r, A using r cannot succeed. Hence, by an averag-
ing argument, A using a randomly chosen r does not help. The reader might
notice that the help-string r could be arbitrarily long since Bob has unlimited
computing power. In particular, it could be that |r| > B, thereby giving rise to
a deterministic recording algorithm with length |Ar | = |A| + |r| > B. But our
model imposes no restriction on the program size of the recording algorithm.
The only restriction is that the length of the output |Ar (α)| = B for each r.
In the formal model, A is an unbounded non-uniform Turing Machine whose
output tape is bounded by B bits.
We prove a slightly stronger result, namely, Theorem 1 holds even if Bob
stores not only η1 , but also η0 , where η0 = A0 (α0 ) and η1 = A1 (η0 , α1 ), A0 , A1
are Bob’s recording functions, and α0 , α1 are the public random strings used in
Steps 2 and 3 of Protocol A. Let
d n
H0 = A−1
0 (η0 ) = {α ∈ {0, 1} : A0 (α) = η0 } ;
d n
H1 = {α ∈ {0, 1} : A1 (η0 , α) = η1 } .
After η0 and η1 are computed in Steps 2 and 3 of Protocol A, the receiver Bob
can compute H0 and H1 , using unlimited computing power and space. But given
Oblivious Transfer in the Bounded Storage Model 165
η0 and η1 , all Bob knows about (α0 , α1 ) is that it is uniformly random in H0 ×H1 ,
i.e. each element of H0 × H1 is equally likely to be (α0 , α1 ) .
n
Recall from Definition 4 that H ⊂ {0, 1} is fat if |H| > 20.813n . By Corollary
R n
1 and a union bound, for α0 , α1 ←− {0, 1} , for any recording functions A0 , A1 ,
Pr [Both H0 and H1 are fat] > 1 − 2−0.02n+1 . (10)
Thus, consider the case that both H0 and H1 are fat. By Lemma 1, for any fat
n
H ⊂ {0, 1} ,
−k/3 n
|BH | < |K| · 2 = · 2−k/3 , (11)
k
where BH is defined in (2), i.e. almost all k-subsets of [n] are good for H (See
Definition 3 for the definition of goodness). Next, we show that if H is fat, then
for a uniformly random A ⊂ [n] s.t. |A| = u, with overwhelming probability,
almost all k-subsets of A are good for H.
d
Definition 6. For A ⊂ [n], define KA = {s ⊂ A : |s| = k}, i.e. KA is the set
of all k-subsets of A.
n
Definition 7. For A ⊂ [n] and H ⊂ {0, 1} , define
A d
BH = {s ∈ KA : s is not good for H} .
n
Lemma 9. Let H ⊂ {0, 1} be fat. For a uniformly random A ⊂ [n] with
|A| = u,
A −k/6 u −k/6
Pr BH < |KA | · 2 = ·2 > 1 − 2−k/6 .
k
In other words, for almost all A ⊂ [n] with |A| = u, almost all k-subsets of A
are good for any fat H.
Proof. Let U be the set of all the nu u-subsets of [n]. For each A ∈ U, let
d A
WA = BH , i.e. WA is the number of k-subsets of A that are bad for H. Let
d P n−k
W = A∈U WA . Since each k-subset of [n] is contained in exactly u−k u-
subsets, in the sum W each bad k-subset of [n] for H, i.e. every element of BH
(defined in (2)), is counted exactly n−k
u−k times. Together with (11), we have
X
n−k n−k n
W = WA = |BH | · < · 2−k/3 . (12)
u−k u−k k
A∈U
Fact 2 For k ≤ u ≤ n,
n n−k n u
= . (13)
k u−k u k
166 Y.Z. Ding
It follows that there can be at most a 2−k/6 fraction of u-subsets A such that
BHA
≥ u · 2−k/6 , for otherwise we would have W ≥ uk · 2−k/6 · nu · 2−k/6 =
k−k/3
n u
u k ·2 , contradicting (14). The lemma thus follows. t
u
Again let A(0) , A(1) be the random u-subsets of [n] Alice chooses in Step 1 of
R n
Protocol A. By (10), Lemma 9 and a union bound, for α0 , α1 ←− {0, 1} , and
uniformly random A , A ⊂ [n] with |A | = |A | = u, with probability at
(0) (1) (0) (1)
(1)
A
as defined in Step 7 of Protocol A. Since Iε 6∈ T1 , by definition s1 6∈ BH 1
, i.e.
s1 is good for H1 . Note again that given η0 and η1 , and thus H0 and H1 , all Bob
knows about (α0 , α1 ) is that (α0 , α1 ) is uniformly random in H0 × H1 . Since s1
R
is good for H1 , by (1) for the definition of goodness, for α1 ←− H1 ,
|Pr [X1 = 0] − Pr [X1 = 1]| < 2−k/3 . (17)
R
For (α0 , α1 ) ←− H0 × H1 , X0 and X1 are independent. Thus together with (17),
R
for (α0 , α1 ) ←− H0 × H1 , for any b0 ∈ {0, 1},
|Pr [X1 = 0 | X0 = b0 ] − Pr [X1 = 1 | X0 = b0 ]| < 2−k/3 . (18)
Thus, from (18) and all the above, Theorem 1 follows (with β = 1).
Oblivious Transfer in the Bounded Storage Model 167
5 Discussion
Building on the work of Cachin, Crépeau, and Marcil [15], we have given a
similar but more efficient protocol for 21 -OT in the bounded storage model,
and provided a stronger security analysis.
Having proved a stronger result than that of [15], we note that the model of
[15] is slightly stronger than ours in the following sense. In [15], the dishonest
receiver Bob computes an arbitrary function on all public random bits, and
stores B bits of output. In our model, α0 is first broadcast, Bob computes and
stores η0 = A0 (α0 ), which is a function of α0 . Then α0 disappears. After a short
pause, α1 is broadcast, and Bob computes and stores η1 = A1 (η0 , α1 ), which is a
function of η0 and α1 . However, we claim that our model is reasonable, as with
limited storage, in practice it is impossible for Bob to compute a function on all
of α0 and α1 , with |α0 | = |α1 | > B, that are broadcast one after another, with
a pause in between. Furthermore, we believe that by a more detailed analysis, it
is possible to show that our results hold even in the stronger model, where Bob
computes an arbitrary function A(α0 , α1 ) on all bits of α0 and α1 .
As the CCM Protocol, our protocol employs interactive hashing, resulting in
an inordinate number of interactions. Further, the communication complexity of
the NOVY protocol is quadratic in the size of the string to be transmitted. It
thus remains a most important open problem to make this part of the protocol
non-interactive and more communication efficient.
Can the√storage requirement of our protocol be further improved? For very
large n, Ω( kn) may not be small enough to be practical. It becomes another
important open problem to investigate the feasibility of reducing the storage
requirement for OT in the bounded storage model, and establish lower bounds.
We also note that the constant hidden by O(·) in our results is not optimized.
We believe that this can be improved by refining the analysis of Lemma 9, as
well as the analysis of interactive hashing in [15].
References
1. Y. Aumann and M. O. Rabin. Information Theoretically Secure Communication
in the Limited Storage Space Model. In Advances in Cryptology - CRYPTO ’99,
pages 65-79, 1999.
2. Y. Aumann, Y. Z. Ding, and M. O. Rabin. Everlasting Security in the Bounded
Storage Model. Accepted to IEEE Transactions on Information Theory, 2001.
3. Y. Aumann and U. Feige. One message proof systems with known space verifier.
In Advances in Cryptology - CRYPTO ’93, pages 85-99, 1993.
4. Y. Aumann and M. O. Rabin. Clock Construction in Fully Asynchronous Parallel
Systems and PRAM Simulation. TCS, 128(1):3-30, 1994.
5. D. Beaver. Commoditiy-Based Cryptography. In Proc. 29th ACM Symposium on
Theory of Computing, pages 446-455, 1997.
6. M. Bellare and S. Micali. Non-interactive oblivious transfer and applications. In
Advances in Cryptology - CRYPTO ’89, pages 200-215, 1989.
7. C. H. Bennett, G. Brassard, C. Crépeau, and M.H. Skubiszewska. Practical quan-
tum oblivious transfer protocols. In Advances in Cryptology - CRYPTO ’91, pages
351-366, 1991.
168 Y.Z. Ding
31. O. Goldreich and R. Vainish. How to solve any protocol problem - an efficiency
improvement. In Advances in Cryptology - CRYPTO ’87, pages 73-86, 1987.
32. S. Goldwasser and L. Levin. Fair Computation of General Functions in Presence of
Immoral Majority. In Advances in Cryptology - CRYPTO ’90, pages 77-93, 1990.
33. J. Kilian. Founding cryptography on oblivious transfer. In Proc. 20th ACM Sym-
posium on Theory of Computing, pages 20-31, 1988.
34. J. Kilian. Zero-knowledge with Log-Space Verifiers. In Proc. 29th IEEE Symposium
on the Foundations of Computer Science, pages 25-35, 1988.
35. J. Kilian. A general completeness theorem for two-party games. In Proc. 23th
ACM Symposium on Theory of Computing, pages 553-560, 1991.
36. J. Kilian, E. Kushilevitz, S. Micali, and R. Ostrovsky. Reducibility and complete-
ness in private computations. SIAM Journal on Computing, 29(4): 1189-1208,
2000.
37. U. Maurer. Conditionally-perfect secrecy and a provably-secure randomized cipher.
Journal of Cryptology, 5(1):53-66, 1992.
38. U. Maurer. Secret key agreement by public discussion from common information.
IEEE Transactions on Information Theory, 39(3):733-742, 1993.
39. U. Maurer and S. Wolf. Toward characterizing when information-theoretic secret
key agreement is possible. In Advances in Cryptology - ASIACRYPT’96, pages
196-209, 1996.
40. U. Maurer. Information-theoretically secure secret-key agreement by NOT au-
thenticated public discussion. Advances in Cryptology - EUROCRYPT ’97, pages
209-225, 1997.
41. U. Maurer and S. Wolf. Unconditional secure key agreement and the intrinsic
conditional information. IEEE Transaction on Information Theory, 45(2): 499-
514, 1999.
42. U. Maurer and S. Wolf. Information-Theoretic Key Agreement: From Weak to
Strong Secrecy for Free. In Advances in Cryptology - EUROCRYPT ’00, pages
351-368, 2000.
43. M. Naor, R. Ostrovsky, R. Venkatesan, and M. Yung. Perfect zero-knowledge
arguments for N P using any one-way function. Journal of Cryptology, 11(2): 87-
108, 1998.
44. M. Naor and B. Pinkas. Distributed Oblivious Transfer. In Advances in Cryptology
- ASIACRYPT ’00, pages 205-219, 2000.
45. N. Nisan. Pseudorandom generators for space-bounded computation. In Proc. 22rd
ACM Symposium on Theory of Computing, pages 204-212, 1990.
46. N. Nisan and D. Zuckerman. Randomness is linear in space. JCSS 52(1): 43-52,
1996.
47. M. O. Rabin. How to exchange secrets by oblivious transfer. Technical Report
TR-81, Harvard University, 1981.
48. M. O. Rabin. Transaction Protection by Beacons. JCSS 27(2): 256-267, 1983.
49. R. Rivest. Unconditionally Secure Commitment and Oblivious Transfer Schemes
Using Private Channels and a Trusted Initializer. Manuscript, 1999.
50. P. W. Shor. Polynomial-time algorithms for prime factorization and discrete log-
arithms on a quantum computer. SIAM J. Computing, 26(5): 1484-1509, 1997.
51. L. G. Valiant and V. V. Vazirani. NP is as easy as detecting unique solutions. In
Proc. ACM Symposium on Theory of Computing, pages 458-463, 1985.
52. A. C. Yao. How to generate and exchange secrets. In Proc. 27th IEEE Symposium
on the Foundations of Computer Science, pages 162-167, 1986.
170 Y.Z. Ding
We now prove Lemma 1 from Main Lemma 1. Let B̃H ⊂ B̂H be the subset
of bad k-tuples with k distinct coordinates, i.e.
n o
d
B̃H = s = (σ1 , . . . , σk ) ∈ B̂H : σi 6= σj ∀ i 6= j . (21)
Then clearly
|B̃H | = |BH | · k!, (22)
where BH is defined in (2). By way of contradiction, suppose that Lemma 1 does
not hold, i.e.
n
|BH | ≥ · 2−k/3 . (23)
k
Then by (22) and (23), and the fact that B̃H ⊂ B̂H , we have
n
|B̂H | ≥ |B̃H | = |BH | · k! ≥ · k! · 2−k/3 . (24)
k
Observe that
Pk−1 !
n k 1 k−1 k i=1 i
· k! = n · 1 − ··· 1 − > n · 1 −
k n n n
k2 nk √
> nk · 1 − > for k < n. (25)
2n 2
Therefore, if Lemma 1 does not hold, i.e. if (23) holds, then by (24) and (25),
Yehuda Lindell
1 Introduction
1.1 Secure Two-Party Computation
In the setting of two-party computation, two parties, with respective pri-
vate inputs x and y, wish to jointly compute a functionality f (x, y) =
(f1 (x, y), f2 (x, y)), such that the first party receives f1 (x, y) and the second party
receives f2 (x, y). This functionality may be probabilistic, in which case f (x, y) is
a random variable. Loosely speaking, the security requirements are that nothing
is learned from the protocol other than the output (privacy), and that the out-
put is distributed according to the prescribed functionality (correctness). The
actual definition [14,1,5] blends these two conditions (see Section 2). This must
be guaranteed even when one of the parties is adversarial. Such an adversary
may be semi-honest in which case it correctly follows the protocol specification,
yet attempts to learn additional information by analyzing the transcript of mes-
sages received during the execution. On the other hand, an adversary may be
malicious, in which case it can arbitrarily deviate from the protocol specification.
The first general solutions for the problem of secure computation were pre-
sented by Yao [17] for the two-party case (with security against semi-honest
adversaries) and Goldreich, Micali and Wigderson [13] for the multi-party case
(with security even against malicious adversaries). Thus, despite the stringent
security requirements placed on such protocols, wide-ranging completeness re-
sults were established, demonstrating that any probabilistic polynomial-time
functionality can be securely computed (assuming the existence of trapdoor per-
mutations).
We stress that, when ignoring the “round preservation” clause, the existence of
a protocol compiler is not new and has been shown in [12,13] (in fact, as we have
mentioned, we use most of the components of their compiler). Our contribution
is in reducing the overhead of the compiler, in terms of the round-complexity,
to a constant. The main result, stated in the following theorem, is obtained by
applying the compiler of Theorem 2 to the constant-round protocol of Yao.
174 Y. Lindell
1.4 Organization
Execution in the ideal model. The ideal model differs for semi-honest and ma-
licious parties. First, for semi-honest parties, an ideal execution involves each
party sending their respective input to the trusted party and receiving back
their prescribed output. An honest party then outputs this output, whereas a
semi-honest party may output an arbitrary (probabilistic polynomial-time com-
putable) function of its initial input and the message it obtained from the trusted
party. (See [9] for a formal definition of the ideal and real models for the case of
semi-honest adversaries.)
We now turn to the ideal model for malicious parties. Since some malicious
behavior cannot be prevented (for example, early aborting), the definition of the
ideal model in this case is somewhat more involved. An ideal execution proceeds
as follows:
Inputs: Each party obtains an input, denoted z.
Send inputs to trusted party: An honest party always sends z to the trusted
party. A malicious party may, depending on z, either abort or sends some
z 0 ∈ {0, 1}|z| to the trusted party.
Trusted party answers first party: In case it has obtained an input pair,
(x, y), the trusted party (for computing f ), first replies to the first party
with f1 (x, y). Otherwise (i.e., in case it receives only one input), the trusted
party replies to both parties with a special symbol, ⊥.
Trusted party answers second party: In case the first party is malicious it
may, depending on its input and the trusted party’s answer, decide to stop
the trusted party. In this case the trusted party sends ⊥ to the second party.
176 Y. Lindell
Otherwise (i.e., if not stopped), the trusted party sends f2 (x, y) to the second
party.
Outputs: An honest party always outputs the message it has obtained from
the trusted party. A malicious party may output an arbitrary (probabilistic
polynomial-time computable) function of its initial input and the message
obtained from the trusted party.
Let f : {0, 1}∗ ×{0, 1}∗ 7→ {0, 1}∗ ×{0, 1}∗ be a functionality, where f = (f1 , f2 ),
and let M = (M1 , M2 ) be a pair of families of non-uniform probabilistic expected
polynomial-time machines (representing parties in the ideal model). Such a pair
is admissible if for at least one i ∈ {1, 2} we have that Mi is honest. Then, the
joint execution of f under M in the ideal model (on input pair (x, y)), denoted
idealf,M (x, y), is defined as the output pair of M1 and M2 from the above ideal
execution. For example, in the case that M1 is malicious and always aborts at
the outset, the joint execution is defined as (M1 (x, ⊥), ⊥). Whereas, in case M1
never aborts, the joint execution is defined as (M1 (x, f1 (x0 , y)), f2 (x0 , y)) where
x0 = M1 (x) is the input that M1 gives to the trusted party.
Execution in the real model. We next consider the real model in which a real
(two-party) protocol is executed (and there exists no trusted third party). In
this case, a malicious party may follow an arbitrary feasible strategy; that is,
any strategy implementable by non-uniform expected polynomial-time machines.
In particular, the malicious party may abort the execution at any point in time
(and when this happens prematurely, the other party is left with no output).
Let f be as above and let Π be a two-party protocol for computing f . Fur-
thermore, let M = (M1 , M2 ) be a pair of families of non-uniform probabilistic
expected polynomial-time machines (representing parties in the real model). Such
a pair is admissible if for at least one i ∈ {1, 2} we have that Mi is honest (i.e.,
follows the strategy specified by Π). Then, the joint execution of Π under M
in the real model (on input pair (x, y)), denoted realΠ,M (x, y), is defined as the
output pair of M1 and M2 resulting from the protocol interaction.
Security as emulation of a real execution in the ideal model. Having defined the
ideal and real models, we can now define security of protocols. Loosely speaking,
the definition asserts that a secure two-party protocol (in the real model) em-
ulates the ideal model (in which a trusted party exists). This is formulated by
saying that admissible pairs in the ideal model are able to simulate admissible
pairs in an execution of a secure real-model protocol.
Remark: The above definition is different from the standard definition in that
the adversary (in both the ideal and real models) is allowed to run in ex-
pected polynomial-time (rather than strict polynomial-time). This seems to be
inevitable given that currently known constant-round zero-knowledge proofs re-
quire expected polynomial-time simulation. We stress that an honest party always
runs in strict polynomial time.
Enforcing semi-honest behavior. The GMW compiler takes for input a protocol
secure against semi-honest adversaries; from here on we refer to this as the “basic
protocol”. Recall that this protocol is secure in the case that each party follows
the protocol specification exactly, using its input and uniformly chosen random
tape. Thus, in order to obtain a protocol secure against malicious adversaries, we
need to enforce potentially malicious parties to behave in a semi-honest manner.
First and foremost, this involves forcing the parties to follow the prescribed
protocol. However, this only makes sense relative to a given input and random
tape. Furthermore, a malicious party must be forced into using a uniformly
chosen random tape. This is because the security of the basic protocol may
depend on the fact that the party has no freedom in setting its own randomness.
protocol is within a constant factor of the number of rounds in the original semi-
honest protocol. We begin by noting that using currently known constructions,
Phases 1 and 3 of the GMW compiler can be implemented in a constant number
of rounds. That is,
First consider the input-commitment phase. As mentioned above, this phase can
be securely implemented by having the committing party send a perfectly bind-
ing commitment of its input to the other party, followed by a zero-knowledge
proof of knowledge of the committed value. Both constant-round commitment
schemes and constant-round zero-knowledge arguments of knowledge are known
to exist by the works of Naor [15] and Feige and Shamir [8], respectively (these
constructions can also be based on any one-way function). Thus the input-
commitment phase can be implemented as required for Proposition 5.1 Next,
we recall that a secure implementation of the protocol emulation phase requires
zero-knowledge proofs for N P only. Thus, once again, using the argument sys-
tem of [8], this can be implemented in a constant number of rounds (using any
one-way function).
Recall that by Yao [17], assuming the existence of trapdoor permutations, any
two-party functionality can be securely computed in the semi-honest model in
a constant-number of rounds. Thus, applying the constant-round compiler of
Theorem 2 to Yao’s protocol, we obtain a constant-round protocol that is secure
1
We note that the protocol for the commit-functionality, as described in [9], is for a
single-bit only (and thus the compiler there runs this protocol sequentially for each
bit of the input). However, the proof for the commit-functionality remains almost
identical when the functionality is extended to commitments of poly(n)-bit strings
(rather than for just a single-bit).
180 Y. Lindell
in the malicious model, and prove Theorem 3. That is, assuming the existence of
trapdoor permutations, any two-party functionality can be securely computed
in the malicious model in a constant-number of rounds.
That is, the first party indeed receives a uniformly distributed string. However,
the second party receives F applied to that string (rather than the string itself).
Setting F to the identity function, we obtain basic coin-tossing. However, recall
that the coin-generation component of the GMW compiler requires the following
functionality:
(1n , 1n ) 7→ ((Ut , Ut·n ), C(Ut ; Ut·n ))
where C is a commitment scheme (and we assume that C requires n random
bits for every bit committed to). Then, this functionality can be realized with
our augmentation by setting m = t + t · n and F (Um ) = C(Ut ; Ut·n ). Thus,
the second party receives a commitment to a uniformly distributed string of
length t and the first party receives the string and its decommitment. Recall
that in the compiler, the party uses the t-bit string as its random tape and the
decommitment in order to prove in zero-knowledge that it is acting consistently
with this random tape (and its input).
We note that when m = 1 (i.e., a single bit), the above protocol is the basic coin-
tossing protocol of Blum [3] (a formal proof of the security of this protocol can
be found in [9]). However, here we are interested in a parallelized version where
the parties attempt to simultaneously generate an m-bit random string (for any
m = poly(n)). Intuitively, due to the secrecy of the commitment scheme, the
string s2 chosen by (a possibly malicious) Party 2 cannot be dependent on the
value of s1 . Thus if s1 is chosen uniformly, the resulting string s = s1 ⊕s2 is close
to uniform. On the other hand, consider the case that Party 1 may be malicious.
Then, by the protocol, Party 1 is committed to s1 before Party 2 sends s2 . Thus,
if s2 is chosen uniformly, the string s = s1 ⊕ s2 is uniformly distributed. We note
that due to the binding property of the commitment scheme, Party 1 cannot
alter the initial string committed to. We conclude that neither party is able to
bias the output string.
However, the infeasibility of either side to bias the resulting string is not
enough to show that the protocol is secure. This is because the definition of
secure computation requires that the protocol simulate an ideal execution in
which a trusted third party chooses a random string s and gives it to both
parties. Loosely speaking, this means that there exists a simulator that works
in the ideal model and simulates an execution with a (possibly malicious) party
such that the joint output distribution (in this ideal scenario) is indistinguishable
from when the parties execute the real protocol.
Protocol 1 seems not to fulfill this more stringent requirement. That is, our
problem in proving the security of Protocol 1 is with constructing the required
simulator. The main problem that occurs is regarding the simulation of Party 2.
A problem relating to abort: The above problem arises even when the parties
never abort. However, another problem in simulation arises due to the ability
of the parties to abort. In particular, simulation of Party 1 in Protocol 1 is
easy assuming that Party 1 never aborts. On the other hand, when Party 1’s
abort probability is unknown (and specifically when it is neither negligible nor
noticeable), we do not know how to construct a simulator that does not skew the
real probability of abort in the simulated execution. Once again, this problem
182 Y. Lindell
is considerably easier in the single-bit case since Party 1’s decision of whether
or not to abort is based on only a single bit sent by Party 2 in Step 2 of the
protocol (and so there are only three possible probabilities).
We note that basic coin-tossing is a special case of the augmented coin-tossing
functionality. Thus, the same problems (and possibly others) must be solved
in order to obtain an augmented coin-tossing protocol. As we will show, our
solutions for these problems are enough for the augmented case as well.
Evidence that Protocol 1 is not secure: One may claim that the above 3-round
protocol may actually be secure and that the above-described difficulties are due
to our proof technique. However, it can be shown that if there exists a secure 3-
round protocol for coin-tossing (where the simulation uses black-box access to the
malicious party), then there exist 3-round black-box zero-knowledge arguments
for N P. By [11], this would imply that N P ⊆ BPP. We note that all known
simulations of secure protocols are indeed black-box.
Before presenting the protocol itself, we discuss how we solve the problems de-
scribed in the above motivating discussion.
• Party 1 is malicious: As described, when Party 1 is malicious, the problem
that arises is that of aborting. In particular, Party 1 may decide to abort
depending on the string s2 sent to it by Party 2. This causes a problem in
ensuring that the probability of abort in the simulation is negligibly close
to that in a real execution. This is solved by having Party 1 send a proof
of knowledge of s1 after sending the commitment. Then, the simulator can
extract s1 from the proof of knowledge and can send s2 = s1 ⊕ s (where
s is the string chosen by the trusted party) without waiting for Party 1 to
decommit in a later step.
• Party 2 is malicious: As described, the central problem here is that Party 1
must commit itself to s1 before s2 is known (yet s1 ⊕ s2 must equal s).
This cannot be solved by rewinding because Party 2 may choose s2 based on
the commitment to s1 that it receives (and thus changing the commitment
changes the value of s2 ). We solve this problem by not having Party 1 de-
commit at all; rather, it sends s = s1 ⊕ s2 (or F (s1 ⊕ s2 ) in the augmented
case) and proves in zero-knowledge that the value sent is consistent with its
commitment and s2 . Thus, the simulator (who can generate proofs to false
statements of this type) is able to “cheat” and send s (or F (s)) irrespective
of the real value committed to in Step 1.2
This technique of not decommitting, but rather revealing the committed
value and proving (in zero-knowledge) that this value is correct, is central to
2
In general, nothing can be said about a simulated proof of a false statement. How-
ever, in the specific case of statements regarding commitment values, proofs of false
statements are indistinguishable from proofs of valid statements. This is due to the
hiding property of the commitment scheme.
Parallel Coin-Tossing and Constant-Round Secure Two-Party Computation 183
We now present our constant-round protocol for the augmented secure coin-
tossing functionality: (1n , 1n ) 7→ (Um , F (Um )), for m = poly(n). For the sake of
simplicity, our presentation uses a non-interactive commitment scheme (which is
easily constructed given any 1–1 one-way function). However, the protocol can
easily be modified so that an interactive commitment scheme is used instead (in
particular, the two-round scheme of Naor [15]).
Proof Sketch: In this case the second party is honest and thus B2 is deter-
mined. We now briefly describe the transformation of the real-model adversary
A1 into an ideal-model adversary B1 . Machine B1 emulates an execution of A1
with A2 by playing the role of (an honest party) A2 in most of the execution. (In
particular, B1 verifies the zero-knowledge proofs provided by A1 and “checks”
that A1 is not cheating.) However, instead of randomly choosing the string s2
in Step 3 (as A2 would), machine B1 first obtains the value s1 (committed to
by A1 ) by running the extractor for the proof of knowledge of Step 2. Then, B1
sets s2 = s1 ⊕ s where s is the output provided by the trusted third party.
It is easy to see that if A1 follows the instructions of Protocol 2, then the
output distributions in the ideal and real models are identical. This is because
A1 ’s view in the ideal-model emulation with B1 is identical to that of a real
execution with A2 . Furthermore, since s1 ⊕ s2 = s, the result of the execution is
consistent with the outputs chosen by the trusted third party. However, A1 may
not follow the instructions of the protocol and nevertheless we must show that
the real and ideal output distributions remain computationally indistinguishable
(in fact, they are even statistically close). This can be seen by noticing that
differences between the ideal and real executions can occur only if the extraction
fails even though A1 succeeded in proving the proof of Step 2, or if A1 successfully
cheats in the zero-knowledge proof of Step 5. Since both of these events occur
with at most negligible probability, we have that the distributions are statistically
close.
We now consider the case that A2 is adversarial.
Parallel Coin-Tossing and Constant-Round Secure Two-Party Computation 185
Proof Sketch: In this case the first party is honest and thus B1 is determined.
We now transform the real-model adversary A2 into an ideal-model adversary
B2 , where the transformation is such that B2 uses black-box access to A2 . Specif-
ically, B2 chooses a uniform random tape, denoted R, for A2 and invokes A2 on
input 1n and random tape R. Once the input and random tape are fixed, A2 is
a deterministic function of messages received during a protocol execution. Thus
A2 (1n , R, m) denotes the message sent by A2 with input 1n , random-tape R and
sequence m of incoming messages to A2 .
The transformation works by having B2 emulate an execution of A2 , while
playing A1 ’s role. Machine B2 does this when interacting with the trusted third
party T and its aim is to obtain an execution with A2 that is consistent with the
output received from T . Therefore, B2 has both external communication with T
and “internal”, emulated communication with A2 . Machine B2 works as follows:
The following differences are evident between the ideal and real executions:
186 Y. Lindell
5 Perfect Coin-Tossing
In this section we present a constant-round protocol for perfect coin tossing. By
perfect coin tossing, we mean that the output distribution of a real execution is
statistically close to the output distribution of the ideal process (rather than the
distributions being only computationally indistinguishable as required by secure
computation); see Theorem 9. As in the previous section, the functionality we
consider is that of augmented coin tossing: (1n , 1n ) 7→ (Um , F (Um )).
The protocol is almost identical to Protocol 2 except that the commitment
scheme used is perfectly hiding and the zero-knowledge arguments are perfect.
These primitives are known to exist assuming the existence of families of clawfree
functions or collision-resistant hash functions. Thus we rely here on a (seemingly)
stronger assumption than merely the existence of one-way functions. We note
that Protocol 1 is a protocol for perfect coin tossing of a single bit and thus
perfect coin tossing of m coins can be achieved in O(m) rounds (see the proof
in [9] which actually demonstrates statistical closeness). In this section we show
that perfect coin tossing of polynomially many coins can also be achieved in a
constant number of rounds.
Protocol 3 (Augmented Perfect Coin-Tossing):
An augmented perfect coin-tossing protocol is constructed by taking Protocol 2
and making the following modifications:
• The commitment sent by Party 1 in Step 1 is perfectly hiding.
• The proof of knowledge provided by Party 1 in Step 2 is perfect zero-
knowledge.
• The proof provided by Party 1 in Step 5 is a perfect zero-knowledge proof
of knowledge. (Recall that in Protocol 2, this proof need not be a proof of
knowledge.)
4
In private communication, Goldreich stated that he did not know whether or not his
protocol [9] can be parallelized.
188 Y. Lindell
The proof of this theorem is very similar to the proof of Theorem 6; the main
difference being with respect to the fact that the initial commitment is not
perfectly binding.
References
1 Introduction
Let E be an elliptic curve defined over a finite field Fq . The dominant cost op-
eration in elliptic curve cryptographic schemes is point multiplication, namely
computing kQ where Q is an elliptic curve point and k is an integer. This op-
eration is the additive analogue of the exponentiation operation αk in a general
(multiplicative-written) finite group. The basic technique for exponentiation is
the repeated square-and-multiply algorithm. Numerous methods for speeding up
exponentiation and point multiplication have been discussed in the literature;
for a survey, see [11,12,17]. These methods can be categorized as follows:
1. Generic methods which can be applied to speed up exponentiation in any
finite abelian group, including:
a) Comb techniques (e.g. [15]) which precompute tables which depend on
Q. Such techniques are applicable when the base point Q is fixed and
known a priori, for example in ECDSA signature generation.
b) Addition chains which are useful when k is fixed, for example in RSA
decryption.
c) Windowing techniques which are useful when the base point Q is not
known a priori, for example in Diffie-Hellman key agreement.
d) Simultaneous multiple exponentiation techniques for computing expres-
sions k1 Q1 + k2 Q2 + · · · + kt Qt , for example in ECDSA signature verifi-
cation.
2. Exponent recoding techniques which replace the binary representation of k
with a representation which has fewer non-zero terms (e.g, [10,19]).
3. Methods which are particular to elliptic curve point multiplication such as:
2 Endomorphisms
Let E be an elliptic curve defined over the finite field Fq . The point at infinity is
denoted by O. For any n ≥ 1, the group of Fqn -rational points on E is denoted
by E(Fqn ).
An endomorphism of E is a rational map φ : E → E satisfying φ(O) = O
[27]. If the rational map is defined over Fq , then the endomorphism φ is also said
to be defined over Fq . In this case, φ is a group homomorphism of E(Fq ), and
also of E(Fqn ) for any n ≥ 1.
192 R.P. Gallant, R.J. Lambert, and S.A. Vanstone
Example 2. Let E be an elliptic curve defined over Fq . Then the q th power map
φ : E → E defined by (x, y) 7→ (xq , y q ) and O 7→ O is an endomorphism defined
over Fq , called the Frobenius endomorphism. Since exponentiating to the q th
power is a linear operation in Fqn , computation of φ(P ) is normally quite fast.
For example, if a normal basis of Fqn over Fq is used, this computation can be
implemented as a cyclic shift of the vector representation.
E1 : y 2 = x3 + ax (1)
E2 : y 2 = x3 + b (2)
Example 6 (§14B of [7]). Let p > 3 be a prime such that −2 is a perfect square
in Fp , and consider the elliptic curve
kP = (k1 + k2 λ)P
= k1 P + k2 (λP )
= k1 P + k2 φ(P ). (6)
Now (6) can be computed using any of the ‘simultaneous multiple exponentia-
tion’ type algorithms1 , the simplest of which we review below. In the following,
(ut−1 , . . . , u1 , u0 )2 denotes the binary representation of the integer u, and w is
the window width.
Algorithm 1. Simultaneous multiple point multiplication
Input: w, u = (ut−1 , . . . , u1 , u0 )2 , v = (vt−1 , . . . , v1 , v0 )2 , P, Q.
Output: uP + vQ.
1. Compute iP + jQ for all i, j ∈ [0, 2w − 1].
2. Write u = (ud−1 , . . . , u1 , u0 ) and v = (v d−1 , . . . , v 1 , v 0 ) where each ui and
v i is a bitstring of length w, and d = dt/we.
3. R ← O.
4. For i from d − 1 downto 0 do
4.1 R ← 2w R.
4.2 R ← R + (ui P + v i Q).
5. Return(R).
Analysis. Since the bitlengths of k1 and k2 in (6) are half the bitlength of k,
we might expect to obtain a significant speedup because we have eliminated a
significant number of point doublings at the expense of a few point additions. A
precise analysis is complicated due to the large number of point multiplication
techniques available. Nevertheless, the following provides some indication of the
relative benefits of our method.
Assume that k is a randomly selected t-bit integer. When t = 160, Algo-
rithm 2 of [18] (an exponent recoding and sliding window algorithm) is among
the best algorithms for computing kP . This method costs approximately 157
point doubles and 34 point additions using windows of size 4 [18]. To compare
this traditional method with the proposed method, we need an algorithm for
computing k1 P + k2 Q (where in our case Q = φ(P )). The following is straight-
forward and useful for our purposes, but we cannot find a reference for it.
1
These are also known as ‘exponentiation using vector-addition chains’, ‘Shamir’s
trick’, or ‘multi-exponentiation’.
Faster Point Multiplication on Elliptic Curves 195
Example 7. An example of an elliptic curve for which our new method is appli-
cable is
E : y 2 = x3 + 3
p = 1461501637330902918203684832716283019655932313743
#E(Fp ) = 1461501637330902918203687013445034429194588307251
is prime. This curve is included in the WAP specification of the WTLS protocol
[33].
2
There are occasional minor bumps corresponding to window size changes.
196 R.P. Gallant, R.J. Lambert, and S.A. Vanstone
4 Decomposing k
si n + ti λ = ri , for i = 0, 1, 2, . . . , (7)
Proof. We have
u = (k, 0) − v
= (β1 v1 + β2 v2 ) − (b1 v1 + b2 v2 )
= (β1 − b1 )v1 + (β2 − b2 )v2 .
1
Finally, since |β1 − b1 | ≤ 2 and |β2 − b2 | ≤ 12 , by the Triangle Inequality we have
t
u
5 Security Considerations
Elliptic curves having efficiently-computable endomorphisms should be regarded
as “special” elliptic curves. Using “special” instances of cryptographic schemes
is sometimes done for efficiency reasons (for example the use of low encryption-
exponent RSA, or the use of small subgroups hidden in a larger group as with
DSA). However in any instance of a cryptographic scheme, there is always the
chance that an attack will be forthcoming that applies to the special instance
and significantly weakens the security. Such is the case here as well.
When selecting an elliptic curve E over Fq for cryptographic use, one must
ensure that the order #E(Fq ) of the elliptic curve is divisible by a large prime
number n (say n ≥ 2160 ) in order to prevent the Pohlig-Hellman [22] and Pol-
lard’s rho [23,21] attacks. In addition, one must ensure that #E(Fq ) 6= q in order
to prevent the Semaev-Satoh-Araki-Smart attack [26,25,28], and that n does not
divide q i − 1 for all 1 ≤ i ≤ 20 in order to prevent the Weil pairing [16] and
Tate pairing attacks [8]. Given a curve satisfying these conditions, there is no
attack known that significantly reduces the time required to compute elliptic
198 R.P. Gallant, R.J. Lambert, and S.A. Vanstone
curve discrete logarithms. Many such curves having efficient endomorphisms ex-
ist and hence appear suitable for cryptographic use. One attack on the elliptic
curve discrete logarithm problem on such curves is along the lines of [9] and [34].
The application of such ideas does not reduce the time to compute a logarithm
by more than a small factor.
The number of curves for which this technique applies seems to be reasonably
large. For instance, one of the Examples 3, 4, 5 and 6 provide a candidate for
most primes p.
References
1. L. Babai, “On Lovász’ Lattice Reduction and the Nearest Lattice Point Problem”,
Combinatorica 6 (1986), 1-13
Faster Point Multiplication on Elliptic Curves 199
2. D. Bailey and C. Paar, “Optimal extension fields for fast arithmetic in public-key
algorithms”, Advances in Cryptology – Crypto ’98, 1998, 472-485.
3. D. Bleichenbacher, “On the generation of DSA one-time keys”, preprint, November
2000.
4. D. Chudnovsky and G. Chudnovsky, “Sequences of numbers generated by addition
in formal groups and new primality and factoring tests”, Advances in Applied
Mathematics, 7 (1987), 385-434.
5. H. Cohen, A Course in Computational Algebraic Number Theory, Springer-Verlag,
3rd printing, 1996.
6. H. Cohen, A. Miyaji and T. Ono, “Efficient elliptic curve exponentiation using
mixed coordinates”, Advances in Cryptology–Asiacrypt ’98, 1998, 51-65.
7. D. Cox, Primes of the Form x2 + ny 2 . Fermat, Class Field Theory and Complex
Multiplication, Wiley, 1989.
8. G. Frey and H. Rück, “A remark concerning m-divisibility and the discrete log-
arithm in the divisor class group of curves”, Mathematics of Computation, 62
(1994), 865-874.
9. R. Gallant, R. Lambert and S. Vanstone, “Improving the parallelized Pollard
lambda search on anomalous binary curves”, Mathematics of Computation, 69
(2000), 1699-1705.
10. D. Gollmann, Y. Han and C. Mitchell, “Redundant integer representations and
fast exponentiation”, Designs, Codes and Cryptography, 7 (1996), 135-151.
11. D. Gordon, “A survey of fast exponentiation methods”, Journal of Algorithms, 27
(1998), 129-146.
12. D. Hankerson, J. Hernandez and A. Menezes, “Software implementation of elliptic
curve cryptography over binary fields”, Proceedings of CHES 2000, LNCS 1965
(2000), 1-24.
13. N. Koblitz, “CM-curves with good cryptographic properties”, Advances in Cryp-
tology – Crypto ’91, 1992, 279-287.
14. N. Koblitz, “An elliptic curve implementation of the finite field digital signature
algorithm”, Advances in Cryptology – Crypto ’98, 1998, 327-337.
15. C. Lim and P. Lee, “More flexible exponentiation with precomputation”, Advances
in Cryptology – Crypto ’94, 1994, 95-107.
16. A. Menezes, T. Okamoto and S. Vanstone, “Reducing elliptic curve logarithms to
logarithms in a finite field”, IEEE Transactions on Information Theory, 39 (1993),
1639-1646.
17. A. Menezes, P. van Oorschot and S. Vanstone, Handbook of Applied Cryptography,
CRC Press, 1996.
18. A. Miyaji, T. Ono and H. Cohen, “Efficient elliptic curve exponentiation”, Pro-
ceedings of ICICS ’97, 1997, 282-290.
19. F. Morain and J. Olivos, “Speeding up the computations on an elliptic curve using
addition-subtraction chains”, Informatique Théorique et Applications, 24 (1990),
531-544.
20. V. Müller, “Fast multiplication in elliptic curves over small fields of characteristic
two”, Journal of Cryptology, 1 (1998), 219-234.
21. P. van Oorschot and M. Wiener, “Parallel collision search with cryptanalytic ap-
plications”, Journal of Cryptology, 12 (1999), 1-28.
22. S. Pohlig and M. Hellman, “An improved algorithm for computing logarithms
over GF (p) and its cryptographic significance”, IEEE Transactions on Information
Theory, 24 (1978), 106-110.
23. J. Pollard, “Monte Carlo methods for index computation mod p”, Mathematics of
Computation, 32 (1978), 918-924.
200 R.P. Gallant, R.J. Lambert, and S.A. Vanstone
1 Introduction
|N − p − 1| ≤ 2p1/2 ,
Throughout the paper we use the fact that the representation of E contains
the field of definition of E. With this convention, an algorithm given the rep-
resentation of E/Fp as input does not need to also be given p. The algorithm
obtains p from the representation of E.
Twists on elliptic curves: Let E be an elliptic curve over Fp given by the Weier-
strass equation y 2 = x3 + Ax + B. Our proofs rely on using certain twists of the
elliptic curve. For λ ∈ F∗p define φλ (E) to be the (twisted) elliptic curve:
We remark that 4(Aλ4 )3 + 27(Bλ6 )2 = (4A3 + 27B 2 )λ12 6= 0 for λ ∈ F∗p . Hence,
φλ (E) is an elliptic curve for any λ ∈ F∗p . Throughout the paper we are working
with the family of curves {φλ (E0 )}λ∈F∗p associated with a given curve E0 .
It is easy to verify that for any point P = (x, y) ∈ E and any λ ∈ F∗p the
point Pλ = (xλ2 , yλ3 ) ∈ φλ (E). Moreover, from the explicit formulas for the
group law on E and φλ (E), see [2,24], we derive that for any points P, Q, R ∈ E
with P + Q = R we also have Pλ + Qλ = Rλ . In particular, for any G ∈ E we
have:
xGλ = (xG)λ , yGλ = (yG)λ , xyGλ = (xyG)λ .
Hence, the map φλ : E → φλ (E) mapping P ∈ E to Pλ ∈ φλ (E) is a homomor-
phism. In fact, it is easy to verify that φλ is an isomorphism of groups. This
means that
DHφλ (E),Gλ (Pλ , Qλ ) = φλ [DHE,G (P, Q)].
Hence, if the Diffie-Hellman function is hard to compute in E then it is also hard
to compute for all curves in {φλ (E)}λ∈F∗p .
3 Main Results
1
AdvX
E,G (A) = Pr[A(E, G, aG, bG) = LSB(x)] − >ε
a,b 2
where abG = (x, y) ∈ E and a, b are chosen uniformly at random in [1, q − 1].
We write AdvX E,G (A) > ε. Similarly, we say that algorithm A has advantage in
predicting the LSB of the y-coordinate of the Diffie-Hellman function if:
1
AdvYE,G (A) = Pr[A(E, G, aG, bG) = LSB(y)] − >ε
a,b 2
Theorem 1. Let , δ ∈ (0, 1). Let p be a prime, and let E0 be an elliptic curve
over Fp . Let G ∈ E0 be a point of prime order. Suppose there is a t-time algorithm
A such that either:
1. AdvX ∗
φλ (E0 ),φλ (G) (A) > ε for at least a δ-fraction of the λ ∈ Fp , or
2. AdvYφλ (E0 ),φλ (G) (A) > ε for at least a δ-fraction of the λ ∈ F∗p .
Then the Diffie–Hellman function DHE0 ,G (P, Q) can be computed in expected
1
time t · T (log p, εδ ) where T is some fixed polynomial independent of p and E0 .
where Gλ = φλ (G) and similarly Pλ , Qλ . Note that this function basically uses
λ as an index indicating in which group to execute the Diffie-Hellman protocol.
Then the LSB of the X or Y coordinates is a hard-core bit of this function
assuming the Diffie-Hellman problem is hard in E.
On the Unpredictability of Bits of the Elliptic Curve Diffie–Hellman Scheme 205
where DHE,G (aG, bG, λ) = (x, y) ∈ φλ (E). Here a, b are uniformly chosen in
[1, q − 1] and λ ∈ F∗p . Then the Diffie–Hellman function DHE0 ,G can be computed
in expected time t · T (log p, 1ε ) where T is some fixed polynomial independent of
p and E0 .
We note that there are other ways of extending the Diffie-Hellman function
to obtain a hard-core bit [8,12].
The HNP-CM problem is: given an oracle for L(t), find α in polynomial time
(in log p and 1/). Clearly we wish to show an algorithm for this problem that
works for the smallest possible ε. For small there might be multiple α satisfying
condition (3) (polynomially many in ε−1 ). In this case the list-HNP-CM problem
is to find the list of all such α ∈ Fp . Note that it is easy to verify that a given
α belongs to the list of solutions by picking polynomially many random samples
x ∈ Fp (say, O(1/ε2 ) samples suffice) and testing that L(x) = LSB(bαxcp ) holds
sufficiently often.
We refer to the above problem as HNP-CM to denote the fact that we are
free to evaluate L(t) at any multiplier t of our choice (the CM stands for Chosen
Multiplier). In the original HNP studied in [5] one is only given samples (t, L(t))
for random t. The following theorem shows how to solve the HNP-CM for any
ε > 0. The proof of the theorem (using different terminology) can be found in [1]
and [7].
Theorem 2 (ACGS). Let p be an n-bit prime and let ε > 0. Then, given ε, the
list-HNP-CM problem can be solved in expected polynomial time in n and 1/ε.
Proof Sketch For α ∈ F∗p let fα (t) : Fp → {0, 1} be a function such that
fα (t) = LSB bαtcp for all t ∈ Fp . It is well known that given an oracle for
206 D. Boneh and I.E. Shparlinski
We note that Fischlin and Schnorr [7] presented a more efficient algorithm for
the HNP-CM. They rely on sub-sampling in Step 2 above to reduce the number
of queries to the oracle for L.
On the Unpredictability of Bits of the Elliptic Curve Diffie–Hellman Scheme 207
To prove the main results of Section 3 we actually need an algorithm for the
following variant of the HNP-CM problem.
HNP-CMd : Fix an integer d > 0 and an ε > 0. Let p be a prime. For an α ∈ F∗p
let L(d) : F∗p → {0, 1} be a function satisfying
h i 1
Pr∗ L(d) (t) = LSB αtd p ≥ + ε. (4)
t∈Fp 2
The HNP-CMd problem is: given an oracle for L(d) (t), find α in polynomial time.
For small ε there might be multiple α satisfying condition (4) (polynomially
many in ε−1 ). In this case the list-HNP-CMd problem is to find all such α ∈ F∗p .
We prove the following simple result regarding the list-HNP-CMd problem. We
use this theorem for d = 2 and d = 3.
Theorem 3. Fix an integer d > 1. Let p be a n-bit prime and let ε > 0. Then,
given ε, the HNP-CMd problem can be solved in expected polynomial time in log p
and d/ε.
Proof. Let L(d) be a function satisfying the condition (4). Let R : Fp → {0, 1}
be a random function chosen uniformly from the set of all functions from Fp to
{0, 1}. Let S : Fdp → Fp be a function satisfying S(x)d ≡ x mod p for all x ∈ Fdp
and chosen at random from the set of such functions. Here Fdp is the set of d’th
powers in Fp . The function S is simply a function mapping a d’th power x ∈ Fdp
to a randomly chosen d’th root of x. Next, define the following function L(t):
L(d) (S(t)) if t ∈ Fdp ,
L(t) =
R(t) otherwise.
We claim that for any α ∈ F∗p satisfying the condition (4) we have that L(t)
satisfies
h i 1
Pr L(t) = LSB bα · tcp ≥ + ε/d.
t,R,S 2
Hence, in this case the claim is correct. When e > 1 then the size of Fdp \ {0} =
Fep \ {0} is p−1
e . Therefore:
1 d
1
Pr [Bt ] = Pr Bt | t ∈ Fp + 1 − Pr Bt | t 6∈ Fdp
t,R,S e t,R,S e t,R,S
1 h i 1
1
d e
= Pr BS(t) | t ∈ Fp + 1 − ·
e t,R,S e 2
1 1 1 1 1 ε 1 ε
≥ +ε + 1− · = + ≥ +
e 2 e 2 2 e 2 d
where φλ (abG) = (xλ , yλ ) ∈ φλ (E) and a, b are uniform in [1, q − 1]. Note that
the probability space includes the random bits used by B.
1 εδ
Pr[B(φλ (E), φλ (G), φλ (A0 ), φλ (B 0 )) = LSB(λ2 x0 )] > + (5)
λ 2 8
is true with probability at least εδ/8 over the choice of a0 , b0 in [1, q − 1].
For now we assume that (5) holds. We obtain an HNP-CM2 problem where
x0 is the hidden number. To see this, define:
Then the condition 5 implies that Prλ [L(2) (λ) = LSB(λ2 x0 )] > 12 + εδ 8 . We can
therefore use the algorithm of Theorem 3 to find a list of candidates x1 , . . . , xn ∈
Fp containing the desired x0 .
To ensure that condition (5) holds, we repeat this process d8/εδe times and
build a list of candidates of size O(n/δε). Then condition (5) holds with con-
stant probability during one of these iterations. Therefore, the list of candidates
contains the correct x0 with constant probability. By solving for y we obtain a
list of candidates for C 0 . That is, we obtain a set S 0 such that C 0 ∈ S 0 ⊆ E.
This list S 0 can be easily converted to a list of candidates S for C by setting
S = {c0 P | P ∈ S 0 }.
Therefore, we just constructed a polynomial time algorithm (in log p and
1
εδ ) that for any aG, bG ∈ E outputs a polynomial size list containing C with
constant probability. Using Theorem 4 this algorithm gives an algorithm for
computing the Diffie-Hellman function in E in the required time bound.
To complete the proof of the theorem we also need to consider an algorithm
predicting the LSB of the y-coordinates. That is, suppose there is an expected
On the Unpredictability of Bits of the Elliptic Curve Diffie–Hellman Scheme 211
t-time algorithm A such that AdvYφλ (E),φλ (G) (A) > ε for a δ-fraction of λ ∈ F∗p .
We show how to compute the Diffie–Hellman function DHE,G . The proof in this
case is very similar to the proof for the x-coordinate. The only difference is that
since we are using the Y coordinate we obtain an HNP-CM3 problem. We use
Lemma 1 and Lemma 2 to obtain an HNP-CM3 oracle with advantage εδ/8 in
predicting LSB(λ3 y0 ). The theorem now follows from the algorithm for HNP-CM3
given in Theorem 3.
7 Conclusions
We have showed that no algorithm can predict the LSB of the X and Y coor-
dinates of the elliptic curve Diffie–Hellman secret for a non-negligible fraction
of the curves in {φλ (E0 )}λ∈F∗p , assuming the Diffie–Hellman problem is hard
on some curve E0 ∈ {φλ (E0 )}λ∈F∗p . Our proofs use reductions between many
curves by randomly twisting the curve E0 . We hope these techniques will even-
tually lead to a proof that if CDH is hard on a certain curve E then the LSB of
Diffie-Hellman is a hard core predicate on that curve.
References
1. W. Alexi, B. Chor, O. Goldreich, and C. Schnorr. ‘RSA and Rabin functions:
Certain parts are as hard as the whole’, SIAM J. Computing, 17(1988), 194–209,
Nov. 1988.
2. I. Blake, G. Seroussi, and N. Smart, Elliptic Curves in Cryptography, London
Mathematical Society, Lecture Notes Series, 265, Cambridge University Press,
1999.
3. D. Boneh, ‘The decision Diffie–Hellman problem’, In Proc. 3rd Algorithmic Num-
ber Theory Symposium, Lect. Notes in Comp. Sci., Springer-Verlag, Berlin, 1423
(1998), 48–63.
4. D. Boneh, S. Halevi and N. A. Howgrave-Graham, ‘The modular inversion hidden
number problem’, Preprint, 2001.
5. D. Boneh and R. Venkatesan, ‘Hardness of computing the most significant bits
of secret keys in Diffie–Hellman and related schemes’, In Proc. Crypto ’96 , Lect.
Notes in Comp. Sci., Springer-Verlag, Berlin, 1109 (1996), 129–142. Recent ver-
sion available at http://crypto.stanford.edu/˜dabo/.
6. E. El Mahassni, P. Q. Nguyen and I. E. Shparlinski, ‘The insecurity of Nyberg–
Rueppel and other DSA-like signature schemes with partially known nonces’,
Proc. Workshop on Lattices and Cryptography, Boston, MA, 2001 (to appear).
7. R. Fischlin, C. Schnorr, ‘Stronger security proofs for RSA and Rabin bits’, J.
Cryptology, 13 (2000), 221–244.
8. O. Goldreich, L. Levin, ‘A hard core predicate for any one way function’, In
Proc. 21st ACM Symp. on Theory of Comput., 1989, 25–32.
9. M. I. González Vasco and M. Näslund, ‘A survey of hard core functions’, In Proc.
Workshop on Cryptography and Computational Number Theory, Singapore 1999,
Birkhäuser, 2001, 227–256.
212 D. Boneh and I.E. Shparlinski
1 Introduction
In 1984 Shamir [27] asked for a public key encryption scheme in which the public
key can be an arbitrary string. In such a scheme there are four algorithms: (1)
setup generates global system parameters and a master-key, (2) extract uses the
master-key to generate the private key corresponding to an arbitrary public key
string ID ∈ {0, 1}∗ , (3) encrypt encrypts messages using the public key ID, and
(4) decrypt decrypts messages using the corresponding private key.
Shamir’s original motivation for identity-based encryption was to simplify
certificate management in e-mail systems. When Alice sends mail to Bob at
[email protected] she simply encrypts her message using the public key string
“[email protected]”. There is no need for Alice to obtain Bob’s public key cer-
tificate. When Bob receives the encrypted mail he contacts a third party, which
we call the Private Key Generator (PKG). Bob authenticates himself to the PKG
in the same way he would authenticate himself to a CA and obtains his private
key from the PKG. Bob can then read his e-mail. Note that unlike the existing
secure e-mail infrastructure, Alice can send encrypted mail to Bob even if Bob
has not yet setup his public key certificate. Also note that key escrow is inherent
in identity-based e-mail systems: the PKG knows Bob’s private key. We discuss
key revocation, as well as several new applications for IBE schemes in the next
section.
Since the problem was posed in 1984 there have been several proposals for
IBE schemes (e.g., [7,29,28,21]). However, none of these are fully satisfactory.
Some solutions require that users not collude. Other solutions require the PKG
to spend a long time for each private key generation request. Some solutions
?
Supported by DARPA contract F30602-99-1-0530 and the Packard Foundation.
??
Supported by an NSF Career Award.
2. Delegation of duties. Suppose Alice encrypts mail to Bob using the subject
line as the IBE encryption key. Bob can decrypt mail using his master-key. Now,
suppose Bob has several assistants each responsible for a different task (e.g.
one is ‘purchasing’, another is ‘human-resources’, etc.). Bob gives one private
key to each of his assistants corresponding to the assistant’s responsibility.
Each assistant can then decrypt messages whose subject line falls within its
responsibilities, but it cannot decrypt messages intended for other assistants.
Note that Alice only obtains a single public key from Bob (params), and she
uses that public key to send mail with any subject line of her choice. The mail
can only be read by the assistant responsible for that subject.
More generally, IBE can simplify various systems that manage a large number
of public keys. Rather than storing a big database of public keys the system
can either derive these public keys from usernames, or simply use the integers
1, . . . , n as distinct public keys.
2 Definitions
Bilinear Map. Let G1 and G2 be two cyclic groups of order q for some large
prime q. In our system, G1 is the group of points of an elliptic curve over Fp
and G2 is a subgroup of F∗p2 . Therefore, we view G1 as an additive group and
G2 as a multiplicative group. A map ê : G1 × G1 → G2 is said to be bilinear
if ê(aP, bQ) = ê(P, Q)ab for all P, Q ∈ G1 and all a, b ∈ Z. As we will see
in Section 3, the Weil pairing is an example of an efficiently computable non-
degenerate bilinear map.
Weil Diffie-Hellman Assumption (WDH). Our IBE system can be built from any
bilinear map ê : G1 × G1 → G2 for which the following assumption holds: there
is no efficient algorithm to compute ê(P, P )abc ∈ G2 from P, aP, bP, cP ∈ G1
where a, b, c ∈ Z. This assumption is precisely defined in Section 3. We note that
this WDH assumption implies that the Diffie-Hellman problem is hard in the
group G1 .
Phase 2: The adversary issues more queries qm+1 , . . . , qn where query qi is one
of:
– Extraction query hIDi i where IDi 6= ID. Challenger responds as in Phase 1.
– Decryption query hIDi , Ci i =
6 hID, Ci. Challenger responds as in Phase 1.
These queries may be asked adaptively as in Phase 1.
Guess: Finally, the adversary outputs a guess b0 ∈ {0, 1}. The adversary wins
the game if b = b0 .
One way identity-based encryption. The proof of security for our IBE system
makes use of a weak notion of security called one-way encryption (OWE) [12].
OWE is defined for standard public key encryption schemes (not identity based)
as follows: the attacker A is given a random public key Kpub and a ciphertext C
which is the encryption of a random message M using Kpub . The attacker’s goal
is to recover the corresponding plaintext. It has advantage in attacking the
system if Pr[A(Kpub , C) = M ] = . We say that the public key scheme is a one-
way encryption scheme (OWE) if no polynomial time attacker has non-negligible
advantage in attacking the scheme. See [12] for precise definitions.
For identity-based encryption, we strengthen the definition as follows. We say
that an IBE scheme is a one-way identity-based encryption scheme (ID-OWE)
if no polynomially bounded adversary A has a non-negligible advantage against
the Challenger in the following game:
Identity-Based Encryption from the Weil Pairing 219
Setup: The challenger takes a security parameter k and runs the Setup algo-
rithm. It gives the adversary the resulting system parameters params. It keeps
the master-key to itself.
Phase 1: The adversary issues private key extraction queries ID1 , . . . , IDm . The
challenger responds by running algorithm Extract to generate the private key
di corresponding to the public key IDi . It sends di to the adversary. These
queries may be asked adaptively.
Challenge: Once the adversary decides that Phase 1 is over it outputs a public
key ID 6= ID1 , . . . , IDm on which it wishes to be challenged. The challenger
picks a random M ∈ M and encrypts M using ID as the public key. It then
sends the resulting ciphertext C to the adversary.
Phase 2: The adversary issues more extraction queries IDm+1 , . . . , IDn . The
only constraint is that IDi 6= ID. The challenger responds as in Phase 1.
Guess: Finally, the adversary outputs a guess M 0 ∈ M. The adversary wins the
game if M = M 0 .
We refer to such an attacker A as an ID-OWE attacker. We define adversary’s
A’s advantage in attacking the scheme as: Adv(A) = Pr[M = M 0 ]. The prob-
ability is over the random bits used by the challenger and the adversary. Note
that the definitions of OWE is the same as ID-OWE except that there are no
private key extraction queries and the attacker is challenged on a random public
key (rather than a public key of her choice).
Fact 4: Since the points P and φ(P ) are linearly independent they generate a
group isomorphic to Zq × Zq . We denote this group of points by E[q].
Let µq be the subgroup of F∗p2 containing all elements of order q = (p + 1)/6.
The Weil pairing on the curve E/Fp2 is a mapping e : E[q] × E[q] → µq . We
define the modified Weil pairing ê : Gq × Gq → µq to be:
Joux and Nguyen [18] point out that although the Computational Diffie-Hellman
problem (CDH) appears to be hard in the group Gq , the Decisional Diffie-
Hellman problem (DDH) is easy in Gq . Observe that given P, aP, bP, cP ∈ Gq
we have
c = ab mod q ⇐⇒ ê(P, cP ) = ê(aP, bP )
Hence, the modified Weil pairing provides an easy test for Diffie-Hellman tuples.
Consequently, one cannot use the DDH assumption to build cryptosystems in the
group Gq . The security of our system is based on the following natural variant
of the Computational Diffie-Hellman assumption.
4.1 MapToPoint
Let p be a prime satisfying p = 2 mod 3 and p = 6q −1 for some prime q > 3. Let
E be the elliptic curve y 2 = x3 +1 over Fp . Our IBE scheme makes use of a simple
algorithm for converting an arbitrary string ID ∈ {0, 1}∗ to a point QID ∈ E/Fp
of order q. We refer to this algorithm as MapToPoint. We describe one of several
ways of doing so. Let G be a cryptographic hash function G : {0, 1}∗ → Fp (in
the security analysis we view G as a random oracle). Algorithm MapToPointG
works as follows:
1. Compute y0 = G(ID) and x0 = (y02 − 1)1/3 = (y02 − 1)(2p−1)/3 mod p.
2. Let Q = (x0 , y0 ) ∈ E/Fp . Set QID = 6Q. Then QID has order q as required.
This completes the description of MapToPoint. We note that there are 5 values
of y0 ∈ Fp for which 6Q = (x0 , y0 ) = O (these are the non-O points of order
dividing 6). When G(ID) is one of these 5 values QID will not have order q. Since
it is extremely unlikely for G(ID) to hit one of these five points, for simplicity
we say that such ID’s are invalid. It is easy to extend algorithm MapToPoint to
handle these five y0 values as well.
4.2 BasicIdent
To explain the basic ideas underlying our IBE system we describe the following
simple scheme, called BasicIdent. We present the scheme by describing the four
algorithms: Setup, Extract, Encrypt, Decrypt. We let k be the security parameter
given to the setup algorithm.
Setup: The algorithm works as follows:
Step 1: Choose a large k-bit prime p such that p = 2 mod 3 and p = 6q − 1 for
some prime q > 3. Let E be the elliptic curve defined by y 2 = x3 + 1 over
Fp . Choose an arbitrary P ∈ E/Fp of order q.
Step 2: Pick a random s ∈ Z∗q and set Ppub = sP .
Step 3: Choose a cryptographic hash function H : Fp2 → {0, 1}n for some
n. Choose a cryptographic hash function G : {0, 1}∗ → Fp . The security
analysis will view H and G as random oracles.
The message space is M = {0, 1}n . The ciphertext space is C = E/Fp ×{0, 1}n .
The system parameters are params = hp, n, P, Ppub , G, Hi. The master-key is
s ∈ Zq .
222 D. Boneh and M. Franklin
Extract: For a given string ID ∈ {0, 1}∗ the algorithm builds a private key d as
follows:
Step 1: Use MapToPointG to map ID to a point QID ∈ E/Fp of order q.
Step 2: Set the private key dID to be dID = sQID where s is the master key.
Encrypt: To encrypt M ∈ M under the public key ID do the following: (1)
use MapToPointG to map ID into a point QID ∈ E/Fp of order q, (2) choose a
random r ∈ Zq , and (3) set the ciphertext to be
C = hrP, M ⊕ H(gIDr )i where gID = ê(QID , Ppub ) ∈ Fp2
Performance. Algorithms Setup and Extract are very simple algorithms. At the
heart of both algorithms is a standard multiplication on the curve E/Fp . Algo-
rithm Encrypt requires that the encryptor compute the Weil pairing of QID and
Ppub . Note that this computation is independent of the message, and hence can
be done once and for all. Once gID is computed the performance of the system is
almost identical to standard ElGamal encryption. We also note that the cipher-
text length is the same as in regular ElGamal encryption in Fp . Decryption is a
simple Weil pairing computation.
Security. Next, we study the security of this basic scheme. The following theorem
shows that the scheme is a one-way identity based encryption scheme (ID-OWE)
assuming WDH is hard.
Theorem 1. Let the hash functions H, G be random oracles. Suppose there is an
ID-OWE attacker A that has advantage against the scheme BasicIdent. Suppose
A make at most qE > 0 private key extraction queries and qH > 0 hash queries.
Then there is an algorithm B for computing WDH with advantage at least
1
e(1+qE )·qH − qH ·2n . Here e ≈ 2.71 is the base of the natural logarithm. The
running time of B is O(time(A)).
Identity-Based Encryption from the Weil Pairing 223
V ⊕ H(ê(dID , U )) = M
Lemma 2. Let H be a random oracle from Fp2 to {0, 1}n . Let A be a OWE
attacker that has advantage against PubKeyEnc. Suppose A makes a total of
qH > 0 queries to H. Then there is an algorithm B that solves the WDH problem
with advantage at least ( − 21n )/qH and a running time O(time(A)).
hy
Epk (M ) = Epk (σ; H1 (σ, M )) G1 (σ) ⊕ M
Security. The following theorem shows that FullIdent is a chosen ciphertext se-
cure IBE (i.e. IND-ID-CCA), assuming WDH is hard.
respectively. Then there is a t1 -time algorithm for WDH that achieves advantage
1 where
t1 = FOtime (t, qG1 , qH1 )
1 = FOadv (( eq1E − qqD ), qG1 , qH1 , qD ) − 1/2n /qH
nature verification algorithm here is randomized. This shows that secure IBE
schemes require both public key encryption and digital signatures. We note
that the signature scheme derived from our IBE system has some interesting
properties [3].
In this section we note that the Weil pairing enables us to add a global escrow
capability to the ElGamal encryption system. A single escrow key enables the
decryption of ciphertexts encrypted under any public key. Paillier and Yung
have shown how to add a global escrow capability to the Paillier encryption
system [24]. Our ElGamal escrow system works as follows:
Setup: The algorithm works as follows:
Step 1: Choose a large k-bit prime p such that p = 2 mod 3 and p = 6q − 1 for
some prime q > 3. Let E be the elliptic curve defined by y 2 = x3 + 1 over
Fp . Choose an arbitrary P ∈ E/Fp of order q.
Step 2: Pick a random s ∈ Zq and set Q = sP .
Step 3: Choose a cryptographic hash function H : Fp2 → {0, 1}n .
The message space is M = {0, 1}n . The ciphertext space is C = E/Fp ×{0, 1}n .
The system parameters are params = hp, n, P, Q, Hi. The escrow key is s ∈ Zq .
keygen: A user generates a public/private key pair for herself by picking a
random x ∈ Zq and computing Ppub = xP . Her private key is x, her public
key is Ppub .
Encrypt: To encrypt M ∈ {0, 1}n under the public key Ppub do the following:
(1) pick a random r ∈ Zq , and (2) set the ciphertext to be:
V ⊕ H(ê(U, sPpub )) = M
A standard argument shows that assuming WDH the system has semantic
security in the random oracle model (recall that since DDH is easy we cannot
prove semantic security based on DDH). Yet, the escrow agent can decrypt any
ciphertext encrypted using any user’s public key. The decryption capability of the
escrow agent can be distributed using the PKG distribution techniques described
in Section 5.
Using a similar hardness assumption, Verheul [30] has recently described
an ElGamal encryption system with non-global escrow. Each user constructs a
228 D. Boneh and M. Franklin
public key with two corresponding private keys, and gives one of the private keys
to the trusted third party. Although both private keys can be used to decrypt,
only the user’s private key can be used simultaneously as the signing key for a
discrete logarithm based signature scheme.
References
James Manger
1 Introduction
the attack to proceed. Section 5 discusses approaches for changing the algorithm
or its implementation to prevent the attack and restore the intended security
properties.
2 RSAES-OAEP
After the private key operation the decryption operation can fail in the
integer-to-octet translation (e.g. the integer is too large to fit in one fewer octets
than the modulus) or in the OAEP-decoding (e.g. integrity check fails). In both
instances PKCS #1 v2.0 says to output “decryption error” and stop.
Let n be an RSA modulus, with e and d the public and private exponents
respectively. Let k = dlog256 ne be the byte length of n and let B = 28(k−1) . 2
Assume an attacker knows the public key (n, e) and has access to an oracle
that for any chosen ciphertext x indicates whether the corresponding plaintext
y ≡ xd (mod n) is less than B or not — returning “y < B” or “y ≥ B”. For
the last assumption to hold it is sufficient for the oracle to distinguish a failure
in the integer-to-octets conversion (in which case “y ≥ B” is returned) from any
subsequent failure, e.g. of the integrity check.
The attacker wishes to determine the plaintext m ≡ cd (mod n) corre-
sponding to a captured ciphertext c. The basic step is to choose a multiple f
and send f e · c (mod n) to the oracle. This ciphertext corresponds to the plain-
text f · m. 3 The oracle indicates if this is in the range [0, B) or (B, n) modulo
n, thus providing a mathematical relationship about m that reduces the range
(or ranges) in which it must lie. The aim is to reduce this range with successive
oracle queries until just one value is left — m.
The approach of the attack described in this paper is to choose values of f
such that the range where f · m could lie spans exactly one boundary between
a region where f · m < B (mod n) and a region where f · m ≥ B (mod n).
The oracle response narrows the range to one of these regions.
Initially we know m ∈ [0, B), as all valid messages are in this range by
construction. One point to note is that since m < B there is always a multiple
of m that lies in any region of width B. For instance, for any integer i there is
always some integer f such that f · m ∈ [in, in + B).
The following attack assumes 2B < n. This assumption will usually be sat-
isfied as RSA moduli are typically chosen to be exact multiples of 8 bits long
making n between 128 and 256 times larger than B. Situations where this as-
sumption does not hold are discussed toward the end of this section.
Step 2: Start with a multiple f2 such that f2 · m is just less than n + B for
the maximum possible m. Keep increasing this multiple until the oracle returns
“< B”. For each multiple f2 the possible values of f2 · m span a single boundary
point at n.
2.1 We have f21 · m ∈ [ B2 , B). Let f2 = b n+BB c· 2 .
f1
n
2.2 So f2 · m ∈ [ 2 , n + B). Try f2 with the oracle.
2.3a If the oracle indicates “≥ B”:
This implies f2 · m ∈ [ n2 , n), so (f2 + f21 ) · m ∈ [ n2 , n + B).
Set f2 ← f2 + f21 and go back to step 2.2.
2.3b If the oracle indicates “< B”:
This implies f2 · m ∈ [n, n + B) for a known multiple f2 . Now move to the
next step.
As f2 increases at iterations through step 2.3a the lower bound on f2 · m
f1
increases, eventually exceeding n when f2 = d 2n B e · 2 . Branch 2.3b must occur
at or before this multiple. That is, step 2 will always terminate — taking at most
n
dB e oracle queries.
Step 3: Try multiples f3 that give a range for f3 · m about 2B integers wide
and spanning a single boundary point. Each oracle response will half the range
back to a width of about B integers, so the next multiple is approximately twice
the previous value.
3.1 We have f2 · m ∈ [n, n + B).
Rephrasing, we have a multiple f2 and a range [mmin , mmax ) of possible m
values, where mmin = d fn2 e , mmax = b n+B
f2 c and f2 · (mmax − mmin ) ≈ B.
3.2 Choose a multiple ftmp such that the width of ftmp · m is approximately
2B.
ftmp = b mmax2B−mmin c. This value is about double the previous multiple.
3.3 Select a boundary point, in + B, near the range of ftmp · m.
f ·m
i = b tmp n min c.
3.4 Choose a multiple f3 such that f3 · m spans a single boundary point at
in + B.
f3 = d min
min
e. This gives f3 · m ∈ [in, in + 2B) (though the upper bound
is only approximate). f3 is approximately equal to ftmp . Try f3 with the
oracle.
3.5a If the oracle indicates “≥ B”:
This implies f3 · m ∈ [in + B, in + 2B).
Set mmin ← d in+B f3 e and go back to step 3.2.
234 J. Manger
Each answer from the oracle in step 3 selects either the top or bottom half
(approximately) of the f3 · m range, halving the range of possible m values.
Eventually the range in which m lies narrows to a single number, which is the
desired plaintext. At this point f3 ≈ B = 28(k−1) .
The description of step 3 above does not provide a proof that those particular
choices of multiples, boundary points and interval widths will always work for
any key or message. Minor variations on these choices can make the attack
algorithm marginally more efficient. See [1] for a more mathematically rigorous
analysis of a closely related problem.
3.1 Complexity
Steps 1 and 3 approximately halve the range of possible m values with each
iteration so between them they take about log2 B = 8(k − 1) oracle queries. 4
n
Step 2 takes at most d B e oracle queries (which must be ≤ 256), and half this
number on average.
RSA moduli are typically chosen to be exact multiples of 8 bits long, e.g.
1024-bit moduli are far more prevalent than, say, 1021-bit moduli. Hence, for
n
typical keys d B e is in the range (128, 256], so step 2 will typically take on the
order of 100 oracle queries.
For a 1024-bit RSA key the attack requires about 1100 oracle queries, for a
2048-bit key about 2200.
to the probability that a random integer from [0, n) conforms to the encoding
format; the second term proportional to log2 n. The first term dominates for RSA
block type 2 padding (making the number of required queries quite dependent
on various implementation issues, i.e. how the encoding format is checked). For
RSAES-OAEP the first term corresponds to the number of oracle queries in step
2, which is an order of magnitude less than the second term.
4 Likelihood of Susceptibility
The chosen ciphertext attack described in the previous section starts with an
assumption that the attacker can distinguish a failure in the integer-to-octets
conversion from any subsequent failure, e.g. of the integrity check during OAEP-
decoding. PKCS #1 v2.0, however, recognizes this risk by explicitly stating
”it is important that the error messages output in steps 4 [integer-to- octets
conversion] and 5 [OAEP decoding] be the same”. 5 This section investigates why,
in spite of this statement, it is likely that many RSAES-OAEP implementations
will be susceptible to chosen ciphertext attack.
4.1 Spelling
4.2 Logs
Even when a system avoids revealing error details in, say, its protocol response
it is likely to reveal more detailed error descriptions in its logs. 6 “Integer too
large” and “decoding error” – included in PKCS #1 v2.0 as error messages
from sub-routines used by RSAES-OAEP – are just the sort of details a log may
contain yet their presence is sufficient for the attack to proceed. Requiring access
to system logs clearly lessens the risk of an attack but it is still an attack that
must be considered. Logs are typically available to a much larger set of people
than have direct access to a private key and logs will be given less protection
(and should not be required to have the same protection as a private key).
5
PKCS #1 v2.0, section 7.1.2 Decryption operation, last paragraph.
6
Divulging less detail and only very general error indications is a well-known security
technique, but it does come at a cost. Less information for an attacker also means
less information for developers, support staff and users to understand the state of a
system and respond appropriately.
236 J. Manger
4.4 Timing
Even identical error responses can be distinguished if they take different amounts
of time to occur. For instance, detecting an integrity error during OAEP-
decoding takes at least the time of two mask generation operations longer than
detecting an error in the integer-to-octet conversion. Though this time difference
may be small compared to the total response time (e.g. the modular exponen-
tiation is likely to take much longer) it is still likely to be measurable, even if
extra oracle queries and statistical analysis have to be employed.
RSAES-OAEP offers an even bigger target for a timing attack. The integrity
check compares a hash from the OAEP-decoding to a locally calculated hash
of the parameters. The parameters can be an octet string of arbitrary length
chosen by the attacker. The hash is only needed in the OAEP-decoding stage
and it is reasonable to assume many implementations would calculate it during
this stage (as the standard suggests), but this point is after the integer-to-octet
conversion. An attacker can achieve whatever time difference he or she requires
to distinguish the relevant error sources by using a sufficiently large octet string
for the parameters — set the parameters to be 10MB long and do the attack
with a wristwatch.
This use of the hash operation to attack RSAES-OAEP illustrates the al-
gorithm’s fragile nature. The hash does not involve the private key or the se-
cret in the plaintext at all, so even a diligent implementer is unlikely to expect
its operation to impact the security. Performing the hash operation before the
integer-to-octet conversion eliminates its usefulness in a timing attack.
4.5 Summary
An algorithm that relies on identical responses to errors (despite their disparate
sources), no access to logs, a specific (undocumented and not obvious) order of
sub-tasks and attention to timing must be considered quite fragile. Though it is
possible some implementations of RSAES-OAEP will be immune, it is quite likely
that many others will be susceptible to the chosen ciphertext attack described in
A Chosen Ciphertext Attack 237
6 Conclusion
References
1. D. Bleichenbacher: Chosen Ciphertext Attacks Against Protocols Based on the RSA
Encryption Standard PKCS #1. In Hugo Krawczyk (ed.), Advances in Cryptology
– CRYPTO ’98, pages 1–12, Berlin, Springer, 1998 (Lecture Notes in Computer
Science, vol. 1462).
2. PKCS #1 v2.0: RSA Cryptography Standard, 1 October 1998.
http://www.rsasecurity.com/rsalabs/pkcs/
3. PKCS #1 v2.1 draft 2: RSA Cryptography Standard, 5 January 2001.
http://www.rsasecurity.com/rsalabs/pkcs/
4. IEEE 1363 draft 13: Standard Specifications for Public Key Cryptography, 12 Novem-
ber 1999. http://grouper.ieee.org/groups/1363/
5. M. Bellare and P. Rogaway: Optimal Asymmetric Encryption Padding — How to
Encrypt with RSA. In Advances in Cryptology — EUROCRYPT ’94, pages 92–111,
Springer-Verlag, 1994.
OAEP Reconsidered
(Extended Abstract)
Victor Shoup
1 Introduction
It is generally agreed that the “right” definition of security for a public key en-
cryption scheme is security against adaptive chosen ciphertext attack, as defined
in [RS91]. This notion of security is equivalent to other useful notions, such as
the notion of non-malleability, as defined in [DDN91,DDN00].
[DDN91] proposed a scheme that is provably secure in this sense, based on
standard intractability assumptions. While this scheme is useful as a proof of
concept, it is quite impractical. [RS91] also propose a scheme that is also provably
secure; however, it too is also quite impractical, and moreover, it has special
“public key infrastructure” requirements.
In 1993, Bellare and Rogaway proposed a method for converting any trapdoor
permutation scheme into an encryption scheme [BR93]. They proved that this
scheme is secure against adaptive chosen ciphertext attack in the random oracle
model, provided the underlying trapdoor permutation scheme is one way.
In the random oracle model, one analyzes the security of the scheme by
pretending that a cryptographic hash function is really a random oracle.
The encryption scheme in [BR93] is very efficient from the point of view of
computation time. However, it has a “message expansion rate” that is not as
good as some other encryption schemes.
In 1994, Bellare and Rogaway proposed another method for converting any
trapdoor permutation scheme into an encryption scheme [BR94]. This scheme
goes by the name OAEP. The scheme when instantiated with the RSA function
[RSA78] goes by the name RSA-OAEP, and is the industry-wide standard for
RSA encryption (PKCS#1 version 2, IEEE P1363). It is just as efficient compu-
tationally as the scheme in [BR93], but it has a better message expansion rate.
With RSA-OAEP, one can encrypt messages whose bit-length is up to just a
few hundred bits less than the number of bits in the RSA modulus, yielding a
ciphertext whose size is the same as that of the RSA modulus.
Besides its efficiency in terms of both time and message expansion, and its
compatibility with more traditional implementations of RSA encryption, perhaps
one of the reasons that OAEP is so popular is the widespread belief that the
scheme is provably secure in the random oracle model, provided the underlying
trapdoor permutation scheme is one way.
In this paper we argue that this belief is unjustified. Specifically, we argue
that in fact, no complete proof of the general OAEP method has ever appeared
in the literature. Moreover, we prove that no proof is attainable using standard
“black box” reductions (even in the random oracle model). Specifically, we show
that there exists an oracle relative to which the general OAEP scheme is insecure.
We then present a variation, OAEP+, and a complete proof of security in the
random oracle model. OAEP+ is essentially just as efficient as OAEP.
There is one more twist to this story: we observe that RSA-OAEP with
encryption exponent 3 actually is provably secure in the random oracle model;
the proof, of course, is not a “black box” reduction, but exploits special algebraic
properties of the RSA function. These observations were subsequently extended
in [FOPS00,FOPS01] to RSA-OAEP with arbitrary encryption exponent.
Note that although the precise specification of standards (PKCS#1 version
2, IEEE P1363) differ in a few minor points from the scheme described in [BR94],
none of these minor changes affect the arguments we make here.
[BR94] contains a valid proof that OAEP satisfies a certain technical property
which they call “plaintext awareness.” Let us call this property PA1. However,
it is claimed without proof that PA1 implies security against chosen ciphertext
attack and non-malleability. Moreover, it is not even clear if the authors mean
adaptive chosen ciphertext attack (as in [RS91]) or indifferent (a.k.a. lunchtime)
chosen ciphertext attack (as in [NY90]).
OAEP Reconsidered 241
nent 3 actually is secure in the random oracle model. This fact, however, makes
essential use of Coppersmith’s algorithm [Cop96] for solving low-degree mod-
ular equations. This proof of security does not generalize to large encryption
exponents, and in particular, it does not cover the popular encryption exponent
216 + 1.
Part of the irony of this observation is that Coppersmith viewed his own
result as a reason not to use exponent 3, while here, it ostensibly gives one
reason why one perhaps should use exponent 3.
It is also worth noting here that by using Coppersmith’s algorithm, one
gets a fairly tight security reduction for exponent-3 RSA-OAEP, and an even
tighter reduction for exponent-3 RSA-OAEP+. These reductions are much more
efficient than either the (incorrect) reduction for OAEP in [BR94], or our general
reduction for OAEP+. Indeed, these general reductions are so inefficient that
they fail to provide any truly meaningful security guarantees for, say, 1024-bit
RSA, whereas with the use of Coppersmith’s algorithm, the security guarantees
are much more meaningful.
Subsequent to the distribution of the original version of this paper [Sho00], it
was shown in [FOPS00] that RSA-OAEP with an arbitrary encryption exponent
is indeed secure against adaptive chosen ciphertext attack in the random oracle
model. We remark, however, that the reduction in [FOPS00] is significantly
less efficient than our general reduction for OAEP+, and so it provides a less
meaningful security guarantee for typical choices of security parameters. This
may be a reason to consider using RSA-OAEP+ instead of RSA-OAEP.
We also mention the subsequent work of [Bon01], which considers OAEP-like
variations of RSA as well as Rabin encryption.
Let us be clear about the implications of our results. They do not imply an
attack on RSA-OAEP. They only imply that the original justification for the
belief that OAEP in general—and hence RSA-OAEP in particular—is resistant
against adaptive chosen ciphertext attack was invalid. As it turns out, our obser-
vations on exponent-3 RSA-OAEP, and the more general results of [FOPS00] on
arbitrary-exponent RSA-OAEP, imply that RSA-OAEP is indeed secure against
adaptive chosen ciphertext attack in the random oracle model. However, the se-
curity of RSA-OAEP does not follow from the security of OAEP in general, but
rather, relies on specific algebraic properties of the RSA function.
Before moving ahead, we recall some definitions in §2, and the OAEP scheme
itself in §3.
2 Preliminaries
Stage 1. The key generation algorithm is run, generating the public key and
private key for the cryptosystem. The adversary, of course, obtains the public
key, but not the private key.
Stage 2. The adversary makes a series of arbitrary queries to a decryption ora-
cle. Each query is a ciphertext y that is decrypted by the decryption oracle,
making use of the private key of the cryptosystem. The resulting decryption
is given to the adversary. The adversary is free to construct the ciphertexts
in an arbitrary way—it is certainly not required to compute them using the
encryption algorithm.
Stage 3. The adversary prepares two messages x0 , x1 , and gives these to an
encryption oracle. The encryption oracle chooses b ∈ {0, 1} at random, en-
crypts xb , and gives the resulting “target” ciphertext y ∗ to the adversary.
The adversary is free to choose x0 and x1 in an arbitrary way, except that if
message lengths are not fixed by the cryptosystem, then these two messages
must nevertheless be of the same length.
Stage 4. The adversary continues to submit ciphertexts y to the decryption
oracle, subject only to the restriction that y 6= y ∗ .
Stage 5. The adversary outputs b̂ ∈ {0, 1}, representing its “guess” of b.
That completes the description of the attack scenario.
The adversary’s advantage in this attack scenario is defined to be | Pr[b̂ =
b] − 1/2|.
A cryptosystem is defined to be secure against adaptive chosen ciphertext
attack if for any efficient adversary, its advantage is negligible.
Of course, this is a complexity-theoretic definition, and the above description
suppresses many details, e.g., there is an implicit security parameter which tends
to infinity, and the terms “efficient” and “negligible” are technical terms, defined
in the usual way. Also, we shall work in a uniform model of computation (i.e.,
Turing machines).
The definition of security we have presented here is from [RS91]. It is called
IND-CCA2 in [BDPR98]. It is known to be equivalent to other notions, such
as non-malleability [DDN91,BDPR98,DDN00], which is called NM-CCA2 in
[BDPR98].
It is fairly well understood and accepted that this notion of security is the
“right” one, in the sense that a general-purpose cryptosystem that is to be
deployed in a wide range of applications should satisfy this property. Indeed,
with this property, one can typically establish the security of larger systems that
use such a cryptosystem as a component.
There are other, weaker notions of security against chosen ciphertext attack.
For example, [NY90] define a notion that is sometimes called security against
indifferent chosen ciphertext attack, or security against lunchtime attack. This
definition of security is exactly the same as the one above, except that Stage 4
is omitted—that is, the adversary does not have access to the decryption oracle
after it obtains the target ciphertext. While this notion of security may seem
natural, it is actually not sufficient in many applications. This notion is called
IND-CCA1 in [BDPR98].
244 V. Shoup
3 OAEP
should also be the case that 2−k0 and 2−k1 are negligible quantities. The scheme
encrypts messages x ∈ {0, 1}n , where n = k − k0 − k1 .
The scheme also makes use of two functions, G : {0, 1}k0 → {0, 1}n+k1 , and
H : {0, 1}n+k1 → {0, 1}k0 . These two functions will be modeled as random
oracles in the security analysis.
We describe the key generation, encryption, and decryption algorithms of the
scheme.
Key generation. This simply runs the generator for the one-way trapdoor per-
mutation scheme, obtaining f and g. The public key is f , and the private
key is g.
Encryption. Given a plaintext x, the encryption algorithm randomly chooses
r ∈ {0, 1}k0 , and then computes
s ∈ {0, 1}n+k1 , t ∈ {0, 1}k0 , w ∈ {0, 1}k , y ∈ {0, 1}k
as follows:
s = G(r) ⊕ (x k 0k1 ), (1)
t = H(s) ⊕ r, (2)
w = s k t, (3)
y = f (w). (4)
The ciphertext is y.
Decryption. Given a ciphertext y, the decryption algorithm computes
w ∈ {0, 1}k , s ∈ {0, 1}n+k1 , t ∈ {0, 1}k0 , r ∈ {0, 1}k0 ,
z ∈ {0, 1}n+k1 , x ∈ {0, 1}n , c ∈ {0, 1}k1
as follows:
w = g(y), (5)
s = w[0 . . . n + k1 − 1], (6)
t = w[n + k1 . . . k], (7)
r = H(s) ⊕ t, (8)
z = G(r) ⊕ s, (9)
x = z[0 . . . n − 1], (10)
c = z[n . . . n + k1 − 1]. (11)
If c = 0k1 , then the algorithm outputs the cleartext x; otherwise, the algo-
rithm rejects the ciphertext, and does not output a cleartext.
We first recall the main ideas of the proof in [BR94] that OAEP is “plaintext
aware” in the random oracle model, where G and H are modeled as random
oracles.
The argument shows how a simulator that has access to a table of in-
put/output values for the points at which G and H were queried can simulate
the decryption oracle without knowing the private key. As we shall see, one must
distinguish between random oracle queries made by the adversary and random
oracle queries made by the encryption oracle. This is a subtle point, but the
failure to make this distinction is really at the heart of the flawed reasoning in
[BR94].
To make our arguments clearer, we introduce some notational conven-
tions. First, any ciphertext y implicitly defines values w, s, t, r, z, x, c via the
decryption equations (5)-(11). Let y ∗ denote the target ciphertext, and let
w∗ , s∗ , t∗ , r∗ , z ∗ , x∗ , c∗ be the corresponding implicitly defined values for y ∗ . Note
that x∗ = xb and c∗ = 0k1 .
Let SG the set of values r at which G was queried by the adversary. Also,
let SH be the set of values s at which H was queried by the adversary. Further,
∗
let SG = SG ∪ {r∗ } and SH ∗
= SH ∪ {s∗ }, where r∗ , s∗ are the values implicitly
∗
defined by y , as described above. We view these sets as growing incrementally
as the adversary’s attack proceeds—elements are added to these only when a
random oracle is queried by the adversary or by the encryption oracle.
Suppose the simulator is given a ciphertext y to decrypt. One can show that
∗
if r ∈
/ SG , then with overwhelming probability the actual decryption algorithm
would reject y; this is because in this case, s and G(r) are independent, and so the
probability that c = 0k1 is 2−k1 . Moreover, if s ∈ / SH∗
, then with overwhelming
∗
probability, r ∈ / SG ; this is because in this case, t and H(s) are independent, and
so r is independent of the adversary’s view. From this argument, it follows that
the actual decryption algorithm would reject with overwhelming probability,
∗ ∗
unless r ∈ SG and s ∈ SH .
If the decryption oracle simulator (a.k.a., plaintext extractor) has access to
∗ ∗
SG and SH , as well as the corresponding outputs of G and H, then it can
effectively simulate the decryption without knowing the secret key, as follows. It
simply enumerates all r0 ∈ SG ∗
and s0 ∈ SH
∗
, and for each of these computes
t0 = H(s0 ) ⊕ r0 , w0 = s0 k t0 , y 0 = f (w0 ).
actual attack has access to SG and SH , along with the corresponding outputs
of G and H, but does not have direct access to r∗ , G(r∗ ), s∗ , H(s∗ ). Thus, the
above decryption simulator has more power than does the adversary. Moreover,
if we give the decryption simulator access to r∗ , G(r∗ ), s∗ , H(s∗ ), then the proof
that x∗ is well hidden, unless the adversary can invert f , is doomed to failure: if
the simulator needs to “know” r∗ and s∗ , then it must already “know” w∗ , and
so one can not hope use the adversary to compute something that the simulator
did not already know.
On closer observation, it is clear that the decryption simulator does not need
to know s∗ , G(s∗ ): if s = s∗ , then it must be the case that t 6= t∗ , which implies
that r 6= r∗ , and so c = 0k1 with negligible probability. Thus, it is safe to reject
all ciphertexts y such that s = s∗ .
If one could make an analogous argument that the decryption simulator does
not need to know r∗ , G(r∗ ), we would be done. This is unfortunately not the
case, as the following example illustrates.
The arguments in [BR94] simply do not take into account the random oracle
queries made by the decryption oracle. All these arguments really show is that
OAEP is secure against indifferent chosen ciphertext attack.
4.1 An Example
Suppose that we have an algorithm that actually can invert f . Now of course,
in this case, we will not be able to construct a counter-example to the security
of OAEP, but we will argue that the proof technique fails. In particular, we
show how to build an adversary that uses the f -inverting algorithm to break the
cryptosystem, but it does so in such a way that no simulator given black box
access to the adversary and its random oracle queries can use our adversary to
compute f −1 (y ∗ ) for a given value of y ∗ .
We now describe adversary. Upon obtaining the target ciphertext y ∗ , the
adversary computes w∗ using the algorithm for inverting f , and then extracts
the corresponding values s∗ and t∗ . The adversary then chooses an arbitrary,
non-zero ∆ ∈ {0, 1}n , and computes:
from the first n + k1 bits. The simulator also has seen the value y submitted to
the decryption oracle, but it does not seem likely that this can be used by the
simulator to any useful effect.
t = t∗ ⊕ H(s∗ ) ⊕ H(s),
r = H(s) ⊕ t = H(s∗ ) ⊕ t∗ = r∗ ,
z = G(r) ⊕ s = G(r∗ ) ⊕ s∗ ⊕ (∆ k 0k1 ) = (x∗ ⊕ ∆) k 0k1 .
Normally, to prove the security of a cryptographic system, one proves this via
a “black box” security reduction from solving the underlying “hard” problem to
breaking the cryptographic system. Briefly, such a reduction for a cryptosystem
based on a general trapdoor permutation scheme would be an efficient, proba-
bilistic algorithm that inverts a permutation f on a random point, given oracle
access to an adversary that successfully breaks cryptosystem (instantiated with
f ) and the permutation f . It should work for all adversaries and all permuta-
tions, even ones that are not efficiently computable, or even computable at all.
Whatever the adversary’s advantage is in breaking the cryptosystem, the success
probability of the inversion algorithm should not be too much smaller.
We do not attempt to make a more formal or precise definition of a black-box
security reduction, but it should be clear that any such reduction would imply
security relative to any oracle. So Corollary 1 implies that there is no black-box
security reduction for OAEP.
For lack of space, we do not present the proof of Theorem 2 in this extended
abstract. The reader is referred to the full-length version of this paper [Sho00].
6 OAEP+
We now describe the OAEP+ encryption scheme, which is just a slight modifi-
cation of the OAEP scheme.
The general scheme makes use of a one-way trapdoor permutation. Let f
be the permutation, acting on k-bit strings, and g its inverse. The scheme also
makes use of two parameters k0 and k1 , which should satisfy k0 + k1 < k. It
should also be the case that 2−k0 and 2−k1 are negligible quantities. The scheme
encrypts messages x ∈ {0, 1}n , where n = k − k0 − k1 .
The scheme also makes use of three functions:
G : {0, 1}k0 → {0, 1}n , H 0 : {0, 1}n+k0 → {0, 1}k1 , H : {0, 1}n+k1 → {0, 1}k0 .
Key generation. This simply runs the generator for the one-way trapdoor per-
mutation scheme, obtaining f and g. The public key is f , and the private
key is g.
Encryption. Given a plaintext x, the encryption algorithm randomly chooses
r ∈ {0, 1}k0 , and then computes
as follows:
OAEP Reconsidered 251
where X0 consists of A’s coin tosses and the public key of the encryption scheme,
and where each Xi for i ≥ 1 consists of a response to either a random oracle
query, a decryption oracle query, or the encryption oracle query. The ith such
query is a function of h X0 , . . . , Xi−1 i. The adversary’s final output b̂ is a function
of View . At any fixed point in time, A has made some number, say m, queries,
and we define
CurrentView = h X0 , . . . , Xm i.
Our overall strategy for the proof is as follows. We shall define a sequence
G1 , G2 , . . . , G5 of modified attack games. Each of the games G0 , G1 , . . . , G5
operate on the same underlying probability space. In particular, the public key
and private key of the cryptosystem, the coin tosses of A, the values of the
random oracles G, H 0 , H, and the hidden bit b take on identical values across
all games. Only some of the rules defining how the view is computed differ from
game to game. For any 1 ≤ i ≤ 5, we let Si be the event that b = b̂ in game Gi .
Our strategy is to show that for 1 ≤ i ≤ 5, the quantity | Pr[Si−1 ] − Pr[Si ]| is
negligible. Also, it will be evident from the definition of game G5 that Pr[S5 ] =
1/2, which will imply that | Pr[S0 ] − 1/2| is negligible.
In games G1 , G2 , and G3 , we incrementally modify the decryption oracle,
so that in game G3 , the modified decryption oracle operates without using the
trapdoor for f at all. In games G4 and G5 , we modify the encryption oracle, so
that in game G5 , the hidden bit b is completely independent of View .
To make a rigorous and precise proof, we state following very simple, but
useful lemma, which we leave to the reader to verify.
Lemma 1. Let E, E 0 , and F be events defined on a probability space such that
Pr[E ∧ ¬F ] = Pr[E 0 ∧ ¬F ]. Then we have |Pr[E] − Pr[E 0 ]| ≤ Pr[F ].
Game G1 . Now we modify game G0 to define a new game G1 .
We modify the decryption oracle as follows. Given a ciphertext y, the new
decryption oracle computes w, s, t, r, x, c as usual. If the old decryption oracle
rejects, so does the new one. But the new decryption oracle also rejects if (r, x) ∈
/
SH 0 . More precisely, if the new decryption oracle computes r via equation (19),
and finds that r ∈ / SG , then it rejects right away, without ever querying G(r);
if r ∈ SG , then x is computed, but if (r, x) ∈ / SH 0 , it rejects without querying
OAEP Reconsidered 253
t0 = H(s0 ) ⊕ r0 , w0 = s0 k t0 , y 0 = f (w0 ).
To actually implement this idea, one would build up a table, with one entry
for each (r0 , x0 ) ∈ SH 0 . Each entry in the table would contain the corresponding
value s0 , along with y 0 if s0 is currently in SH . If s0 is currently not in SH , we place
y 0 in the table entry if and when A eventually queries H(s0 ). When a ciphertext
y is submitted to the decryption oracle, we simply perform a table lookup to see
if there is a y 0 in the table that is equal to y. These tables can all be implemented
using standard data structures and algorithms. Using search tries to implement
the table lookup, the total running time of the simulated decryption oracle over
the course of game G3 is
Note also that the space needed is essentially linear: O((qG + qH 0 + qH )k) bits.
Game G4 . In this game, we modify the random oracles and slightly modify the
encryption oracle. The resulting game G4 is equivalent to game G3 ; however,
this rather technical “bridging” step will facilitate the analysis of more drastic
modifications of the encryption oracle in games G5 and G05 below.
We introduce random bit strings r+ ∈ {0, 1}k0 and g + ∈ {0, 1}n . We also
introduce a new random oracle
Game G4 is the same as game G3 , except that we apply the following special
rules.
OAEP Reconsidered 255
t0 = H(s0 ) ⊕ r0 , w0 = s0 k t0 , y 0 = f (w0 ).
Equations (25), (26), (27), (28), (29), (30), (31), and (35) together imply
(22).
That completes the proof of Theorem 3.
For OAEP+, the total time and space complexity of the plaintext extractor in
game G3 is linear in the number of oracle queries. Unfortunately, our inversion
algorithm for OAEP+ in game G05 still requires time proportional to qG qH ,
although its space complexity is linear in the number of oracle queries. We should
remark that as things now stand, the reductions for OAEP+ are not tight enough
to actually imply that an algorithm that breaks, say, 1024-bit RSA-OAEP+ in a
“reasonable” amount of time implies an algorithm that solves the RSA problem
in time faster than the best known factoring algorithms. However, as we shall see
in §7.2, for exponent-3 RSA-OAEP+, one can in fact get a very tight reduction.
An interesting open problem is to get a tighter reduction for OAEP+ or a variant
thereof.
7 Further Observations
7.1 Other Variations of OAEP
Instead of modifying OAEP as we did, one could also modify OAEP so that
instead of adding the data-independent redundancy 0k1 in (1), one added the
data-dependent redundancy H 00 (x), where H 00 is a hash function mapping n-bit
strings to k1 -bit strings. This variant of OAEP—call it OAEP0 —suffers from
the same problem from which OAEP suffers. Indeed, Theorem 1 holds also for
OAEP0 .
More precisely, for all s0 ∈ SH , the simulated decryption oracle tries to find a
corresponding solution t0 using Coppersmith’s algorithm. If all of these attempts
fail, then the simulator rejects y. Otherwise, knowing s and t, it decrypts y in
the usual way.
We can also apply Coppersmith’s algorithm in the step of the proof where we
use the adversary to help us to extract a challenge instance of the RSA problem.
Not only does this prove security, but we get a more efficient reduction—
the implied inverting algorithm has a running time roughly equal to that of
the adversary, plus O(qD qH TC ), where TC is the running time of Coppersmith’s
algorithm.
We can also use the same observation to speed up the reduction for exponent-
3 RSA-OAEP+. The total running time of the implied inversion algorithm would
be roughly equal to that of the adversary, plus O(qH TC ); that is, a factor of qD
faster than the inversion algorithm implied by RSA-OAEP. Unlike the generic
security reduction for OAEP+, this security reduction is essentially tight, and
so it has much more meaningful implications for the security of the scheme when
used with a typical, say, 1024-bit RSA modulus.
References
[BR93] M. Bellare and P. Rogaway. Random oracles are practical: a paradigm for
designing efficient protocols. In First ACM Conference on Computer and
Communications Security, pages 62–73, 1993.
[BR94] M. Bellare and P. Rogaway. Optimal asymmetric encryption. In Advances
in Cryptology—Eurocrypt ’94, pages 92–111, 1994.
[CGH98] R. Canetti, O. Goldreich, and S. Halevi. The random oracle model, re-
visted. In 30th Annual ACM Symposium on Theory of Computing, 1998.
[Cop96] D. Coppersmith. Finding a small root of a univariate modular equation.
In Advances in Cryptology–Eurocrypt ’96, pages 155–165, 1996.
[DDN91] D. Dolev, C. Dwork, and M. Naor. Non-malleable cryptography. In 23rd
Annual ACM Symposium on Theory of Computing, pages 542–552, 1991.
[DDN00] D. Dolev, C. Dwork, and M. Naor. Non-malleable cryptography. SIAM J.
Comput., 30(2):391–437, 2000.
[FOPS00] E. Fujisaki, T. Okamoto, D. Pointcheval, and J. Stern. RSA-OAEP
is still alive! Cryptology ePrint Archive, Report 2000/061, 2000.
http://eprint.iacr.org.
[FOPS01] E. Fujisaki, T. Okamoto, D. Pointcheval, and J. Stern. RSA-OAEP is
secure under the RSA assumption. In Advances in Cryptology–Crypto
2001, 2001.
[NY90] M. Naor and M. Yung. Public-key cryptosystems provably secure against
chosen ciphertext attacks. In 22nd Annual ACM Symposium on Theory of
Computing, pages 427–437, 1990.
[RS91] C. Rackoff and D. Simon. Noninteractive zero-knowledge proof of knowl-
edge and chosen ciphertext attack. In Advances in Cryptology–Crypto ’91,
pages 433–444, 1991.
[RSA78] R. L. Rivest, A. Shamir, and L. M. Adleman. A method for obtaining
digital signatures and public-key cryptosystems. Communications of the
ACM, pages 120–126, 1978.
[Sho00] V. Shoup. OAEP reconsidered. Cryptology ePrint Archive, Report
2000/060, 2000. http://eprint.iacr.org.
RSA–OAEP Is Secure under the RSA
Assumption
1 Introduction
The OAEP conversion method [3] was introduced by Bellare and Rogaway in
1994 and was believed to provide semantic security against adaptive chosen-
ciphertext attacks [7,12], based on the one-wayness of a trapdoor permutation,
using the (corrected) definition of plaintext-awareness [1].
Victor Shoup [15] recently showed that it is quite unlikely that such a se-
curity proof exists — at least for non-malleability — under the one-wayness of
the permutation. He also proposed a slightly modified version of OAEP, called
OAEP+, which can be proven secure, under the one-wayness of the permutation.
Does Shoup’s result mean that OAEP is insecure or that it is impossible to
prove the security of OAEP? This is a totally misleading view: the result only
states that it is highly unlikely to find any proof, under just the one-wayness
assumption. In other words, Shoup’s result does not preclude the possibility of
proving the security of OAEP from stronger assumptions.
This paper uses such a stronger assumption. More precisely, in our reduc-
tion, a new computational assumption is introduced to prove the existence of
a simulator of the decryption oracle. Based on this idea, we prove that OAEP
is semantically secure against adaptive chosen-ciphertext attack in the random
oracle model [3], under the partial-domain one-wayness of the underlying per-
mutation, which is stronger than the original assumption.
Since partial-domain one-wayness of the RSA function [13] is equivalent to
the (full-domain) one-wayness, the security of RSA-OAEP can actually be proven
under the one-wayness of the RSA function.
The rest of this paper is organized as follows. Section 2 recalls the basic
notions of asymmetric encryption and the various security notions. Section 3
reviews the OAEP conversion [3]. Sections 4 and 5 present our new security
result together with a formal proof for general OAEP applications. In Section 6,
we focus on the RSA application of OAEP, RSA-OAEP.
2 Public-Key Encryption
The aim of public-key encryption is to allow anybody who knows the public key
of Alice to send her a message that only she will be able to recover it through
her private key.
2.1 Definitions
The first security notion that one would like for an encryption scheme is one-
wayness: starting with just public data, an attacker cannot recover the complete
plaintext of a given ciphertext. More formally, this means that for any adversary
A, her success in inverting E without the secret key should be negligible over
the probability space M × Ω, where M is the message space and Ω is the space
of the random coins r used for the encryption scheme, and the internal random
coins of the adversary:
Succow (A) = Pr [(pk, sk) ← K(1k ) : A(pk, Epk (m; r)) = m].
m,r
learn more with the view of the ciphertext. This security notion requires com-
putational impossibility to distinguish between two messages, chosen by the ad-
versary, one of which has been encrypted, with a probability significantly better
than one half: her advantage Advind (A), where the adversary A is seen as a 2-
stage Turing machine (A1 , A2 ), should be negligible, where Advind (A) is formally
defined as.
(pk, sk) ← K(1k ), (m0 , m1 , s) ← A1 (pk),
2 × Pr − 1.
b,r c = Epk (mb ; r) : A2 (m0 , m1 , s, c) = b
Another notion was defined thereafter, the so-called non-malleability [6], in which
the adversary tries to produce a new ciphertext such that the plaintexts are
meaningfully related. This notion is stronger than the above one, but it is equiv-
alent to semantic security in the most interesting scenario [1].
On the other hand, an attacker can use many kinds of attacks: since we
are considering asymmetric encryption, the adversary can encrypt any plain-
text of her choice with the public key, hence chosen-plaintext attack. She may,
furthermore, have access to more information, modeled by partial or full access
to some oracles: a plaintext-checking oracle which, on input of a pair (m, c),
answers whether c encrypts the message m. This attack has been named the
Plaintext-Checking Attack [11]; a validity-checking oracle which, on input of a
ciphertext c, just answers whether it is a valid ciphertext. This weak oracle
(involved in the reaction attacks [8]) had been enough to break some famous
encryption schemes [4,9], namely PKCS #1 v1.5; or the decryption oracle itself,
which on the input of any ciphertext, except the challenge ciphertext, responds
with the corresponding plaintext (non-adaptive/adaptive chosen-ciphertext at-
tacks [10,12]). The latter, the adaptive chosen-ciphertext attack denoted CCA2,
is clearly the strongest one.
A general study of these security notions and attacks was given in [1], we
therefore refer the reader to this paper for more details. However, the by now
expected security level for public-key encryption schemes is semantic security
against adaptive chosen-ciphertext attacks (IND-CCA2) – where the adversary
just wants to distinguish which plaintext, between two messages of her choice,
had been encrypted; she can ask any query she wants to a decryption oracle
(except the challenge ciphertext). This is the strongest scenario one can define.
3 Review of OAEP
3.1 The Underlying Problems
Consider permutation f : {0, 1}k −→ {0, 1}k , which can also be seen as
f : {0, 1}n+k1 × {0, 1}k0 −→ {0, 1}n+k1 × {0, 1}k0 ,
with k = n + k0 + k1 . In the original description of OAEP from [3], it is only
required that f is a trapdoor one-way permutation. However, in the following,
we consider two additional related problems: the partial-domain one-wayness
and the set partial-domain one-wayness of permutation f :
RSA–OAEP Is Secure under the RSA Assumption 263
– Dsk (c): thanks to the secret key, the decryption algorithm Dsk extracts
4 Security Result
In their paper [3], Bellare and Rogaway provided a security analysis, which
proved that the OAEP construction together with any trapdoor one-way per-
mutation is semantically security and (weakly) plaintext-aware. Unfortunately,
this just proves semantic security against non-adaptive chosen-ciphertext attacks
(a.k.a. lunchtime attacks [10] or IND-CCA1). Even if the achieved security was
believed to be stronger (namely IND-CCA2), it had never been proven. Thus,
Shoup [15] recently showed that it is quite unlikely that such a security proof
exists, for any trapdoor one-way permutation. However, he provided a specific
proof for RSA with public exponent 3.
In the following, we provide a general security analysis, but under a stronger
assumption about the underlying permutation. Indeed, we prove that the scheme
is IND-CCA2 in the random oracle model [2], relative to the partial-domain one-
wayness of function f . More precisely, the following exact security result holds.
5 Proof of Lemma 2
We prove lemma 2 in three stages. The first presents the reduction of IND-
CCA2 adversary A to algorithm B for breaking the partial-domain one-wayness
of f . Note that, in the present proof, we are just interested in security under
the partial-domain one-wayness of f , and not under the full-domain one-wayness
of f as in the original paper [3]. The second shows that the decryption oracle
simulation employed in this reduction works correctly with overwhelming prob-
ability under the partial-domain one-wayness of f . This latter part differs from
the original proof [3], and corrects the recently spotted flaw [15]. Finally, we an-
alyze the success probability of our reduction in total, through the incorporation
of the above-mentioned analysis of the decryption oracle simulation.
2. B runs A1 on the public data, and gets a pair of messages {m0 , m1 } as well
as state information st. It chooses a random bit b, and then gives c? to A1 ,
as the ciphertext of mb . B simulates the answers to the queries of A1 to
the decryption oracle and random oracles G and H respectively. See the
description of these simulations below.
3. B runs A2 (c? , st) and finally gets answer b0 . B simulates the answers to
the queries of A2 to the decryption oracle and random oracles G and H
respectively. See the description of these simulations below. B then outputs
the partial pre-image s? of c? , if one has been found among the queries asked
to H (see below), or the list of queries asked to H.
266 E. Fujisaki et al.
5.2 Notations
In order to proceed to the analysis of the success probability of the above-
mentioned reduction, one needs to set up notations. First, we still denote with
a star (? ) all variables related to the challenge ciphertext c? , obtained from the
encryption oracle. Indeed, this ciphertext, of either m0 or m1 , implicitly defines
hash values, but the corresponding pairs may not appear in the G or H lists.
All other variables refer to the decryption query c, asked by the adversary to
the decryption oracle, and thus to be decrypted by this simulation. We consider
several further events about a ciphertext queried to the decryption oracle:
– CBad denotes the union of the bad events, CBad = RBad ∨ SBad, where
• SBad denotes the event that s = s? ;
• RBad denotes the event that r = r? , and thus H(s) ⊕ t = H(s? ) ⊕ t? ;
– AskRS denotes the intersection of both events about the oracle queries,
AskRS = AskR ∧ AskS, which means that both r and s have been asked
to G and H respectively, since
• AskR denotes the event that r (= H(s) ⊕ t) has been asked to G;
• AskS denotes the event that s has been asked to H;
– Fail denotes the event that the above decryption oracle simulator outputs a
wrong decryption answer to query c. (More precisely, we may denote Faili for
event Fail on the i-th query ci (i = 1, . . . , qD ). For our analysis, however, we
can evaluate probabilities regarding event Faili in a uniform manner for any
i. Hence, we just employ notation Fail.) Therefore, in the global reduction,
the event DBad will be set to true as soon as one decryption simulation fails.
Note that the Fail event is limited to the situation in which the plaintext-
extractor rejects a ciphertext whereas it would be accepted by the actual decryp-
tion oracle. Indeed, as soon as it accepts, we see that the ciphertext is actually
valid and corresponds to the output plaintext.
Security Claim. We claim the following, which repairs the previous proof [3],
based on the new computational assumption. More precisely, we show that addi-
tional cases to consider, due to the corrected definition of plaintext-awareness [1],
are very unlikely under the partial-domain one-wayness of the permutation f :
Lemma 4. When at most one ciphertext c? = f (s? , t? ) has been directly ob-
tained from the encryption oracle, but s? has not been asked to H, the decryp-
tion oracle simulation DS can correctly produce the decryption oracle’s output
on query (ciphertext) c (6= c? ) with probability greater than ε0 , within time bound
t0 , where
2 2qG + 1
ε0 ≥ 1 − + and t0 ≤ qG · qH · (Tf + O(1)) .
2k1 2k0
268 E. Fujisaki et al.
Before we start the analysis, we recall that the decryption oracle simulator
is given the ciphertext c to be decrypted, as well as the ciphertext c? obtained
from the encryption oracle and both the G-List and H-List resulting from the in-
teractions with the random oracles G and H. Let us first see that the simulation
uniquely defines a possible plaintext, and thus can output the first one it finds.
Indeed, with the above definition, several pairs could satisfy the equalities. How-
ever, since function f is a permutation, and thus one-to-one, the value of σ = s
is uniquely defined, and thus δ and Hδ . Similarly, τ = t is uniquely defined, and
thus γ and Gγ : at most one µ may be selected. Then either [µ]k1 = 0k1 or not.
In the above, one should keep in mind that the G-List and H-List correspond
to input-output pairs for the functions G and H. Thus, at most one output is
related to a given input.
If the ciphertext has been correctly built by the adversary (r has been asked
to G and s to H), the simulation will output the correct answer. However, it will
output “Reject” in any other situation, whereas the adversary may have built a
valid ciphertext without asking both queries to the random oracles G and H.
Success Probability. Since our goal is to prove the security relative to the
partial-domain one-wayness of f , we are only interested in the probability of the
event Fail, while ¬AskH occurred, which may be split according to other events.
Granted ¬CBad ∧ AskRS, the simulation is perfect, and cannot fail. Thus, we
have to consider the complementary events:
Concerning the latter contribution to the right hand side, we first note that both
Forgetting ¬AskH for a while, using lemma 3, one gets that Pr[Fail ∧ ¬CBad ∧
¬AskRS] is less than
But without having asked r to G, taking into account the further event ¬RBad,
G(r) is unpredictable, and thus the probability that [s ⊕ G(r)]k1 = 0k1 is less
than 2−k1 . On the other hand, the probability of having asked r to G, without
any information about H(s) and thus about r (H(s) not asked, and s 6= s? ,
which both come from the conditioning ¬AskS ∧ ¬SBad), is less than qG · 2−k0 .
Furthermore, this event is independent of AskH, which yields
We now focus on the former term, Fail ∧ CBad, while ¬AskH, which was
missing in the original proof [3] based on a weaker notion of plaintext-awareness.
RSA–OAEP Is Secure under the RSA Assumption 269
It can be split according to the disjoint sub-cases of CBad, which are SBad and
¬SBad ∧ RBad. Then again using lemma 3,
The latter event means that RBad occurs provided s 6= s? and the adversary has
not queried s? from H. When s? has not been asked to H and s 6= s? , H(s? ) is
unpredictable and independent of H(s) as well as t and t? . Then, event RBad,
H(s? ) = H(s) ⊕ t ⊕ t? , occurs with probability at most 2−k0 .
The former event can be further split according to AskR, and, using once
again lemma 3, it is upper-bounded by
This subsection analyzes the success probability of our reduction with respect
to the advantage of the IND-CCA2 adversary. The goal of the reduction is, given
c? = f (s? , t? ), to obtain s? . Therefore, the success probability is obtained by
the probability that event AskH occurs during the reduction (i.e., Pr[AskH] ≤
Succs−pd−ow (qH , t0 ), where t0 is the running time of the reduction).
We thus evaluate Pr[AskH] by splitting event AskH according to event Bad.
ε 1
+ ≤ Pr[A = b] ≤ Pr[A = b | ¬Bad] · Pr[¬Bad] + Pr[Bad].
2 2
Therefore,
ε 1 Pr[¬Bad] ε − Pr[Bad]
Pr[AskH ∧ ¬Bad] ≥ + − Pr[Bad] − = .
2 2 2 2
Combining the evaluation for the first and second terms, and from the fact that
Pr[Bad] ≥ 0, one gets
ε 2qD qG + qD + qG 2qD
Pr[AskH] ≥ − − k1 .
2 2k 0 2
Note that during the execution of B, for any new G-query γ, one has to look at
all query-answer pairs (δ, Hδ ) in the H-List, and to compute s = δ, t = γ ⊕ Hδ
as well as f (s, t).
Apparently, one should perform this computation again to simulate the de-
cryption of any ciphertext. Proper bookkeeping allows the computation to be
done once for each pair, when the query is asked to the hash functions. Thus,
the time complexity of the overall reduction is t0 = t + qG · qH · (Tf + O(1)),
where Tf denotes the time complexity for evaluating function f .
RSA–OAEP Is Secure under the RSA Assumption 271
6 Application to RSA–OAEP
The main application of OAEP is certainly the famous RSA–OAEP, which has
been used to update the PKCS #1 standard [14]. In his paper [15], Shoup was
able to repair the security result for a small exponent, e = 3, using Coppersmith’s
algorithm from [5]. However, our result can be applied to repair RSA–OAEP,
regardless of the exponent; thanks to the random self-reducibility of RSA, the
partial-domain one-wayness of RSA is equivalent to that of the whole RSA prob-
lem, as soon as a constant fraction of the most significant bits (or the least
significant bits) of the pre-image can be recovered.
We note that, in the original RSA–OAEP [3], the most significant bits are
involved in the H function, but in PKCS #1 standards v2.0 and v2.1 [14] and
RFC2437, the least significant bits are used: the value maskedSeedkmaskedDB
is the input to f , the RSA function, where maskedSeed plays the role of t, and
maskedDB the role of s. But we insist on the fact that the following result holds
in both situations (and can be further extended).
One may also remark that the following argument can be applied to any
random (multiplicatively) self-reducible problem, such as the Rabin function.
Before presenting the final reduction, let us consider the problem of finding
small solutions for a linear modular equation.
We say that L(α) is an `-good lattice (and that α is an `-good value) if there
is no non-zero vector of length at most ` (with respect to the Euclidean norm).
Otherwise, we use the wording `-bad lattices (and `-bad values respectively). It
is clear that there are approximately less than π`2 such `-bad lattices, which we
bound by 4`2 . Indeed, each bad value for α corresponds to a point with integer
coordinates in the disk of radius `. Thus, the proportion of bad values for α is
less than 4`2 /N .
Given an `-good lattice, one applies the Gaussian reduction algorithm. One
gets within time O((log N )3 ) a basis of L(α) consisting of two non-zero vectors
U and V such that
Let T be the point (t, u), where (t, u) is a solution of the equation t + αu =
c mod N , with both t and u less than 2k0 :
1 1
− < λ, µ < .
2 2
Choose any integer solution T0 = (t0 , u0 ) of the equation simply by picking a
random integer u0 and setting t0 = c − αu0 mod N . Write it in the basis (U, V ):
T0 = ρU + σV using real numbers ρ and σ. These coordinates can be found, so
T − T0 is a solution to the homogeneous equation, and thus indicate a lattice
point: T − T0 = aU + bV , with unknown integers a and b. But,
ε0 ≥ ε × (ε − 22k0 −k+6 ),
t0 ≤ 2t + q 2 × O(k 3 ).
Proof. Thanks to the random self-reducibility of RSA, with part of the bits of
the e-th root of X = (x · 2k0 + r)e mod N , and the e-th root of Y = Xαe =
(y · 2k0 + s)e mod N , for a randomly chosen α, one gets both x and y. Thus,
which is a linear modular equation with two unknowns r and s which is known
to have small solutions (smaller than 2k0 ). It can be solved using lemma 5.
Algorithm B just runs twice A, on inputs X and Xαe and next runs the
Gaussian reduction on all the q 2 pairs of elements coming from both sets. If the
partial pre-images are in the sets, they will be found, unless the random α is
bad (cf. the Gaussian reduction in lemma 5.) t
u
RSA–OAEP Is Secure under the RSA Assumption 273
Remark 7. The above lemma can be extended to the case where a constant frac-
tion Θ of the leading or trailing bits of the e-th root is found. The reduction
runs 1/Θ times the adversary A, and the success probability decreases to ap-
proximately ε1/Θ . Extensions to any constant fraction of consecutive bits are
also possible. Anyway, in PKCS #1 v2.0, k0 is much smaller than k/2.
7 Conclusion
Our conclusion is that one can still trust the security of RSA–OAEP, but the
reduction is more costly than the original one. However, for other OAEP ap-
plications, more care is needed, since the security does not actually rely on the
one-wayness of the permutation, only on its partial-domain one-wayness.
References
1. M. Bellare, A. Desai, D. Pointcheval, and P. Rogaway. Relations among Notions
of Security for Public-Key Encryption Schemes. In Crypto ’98, LNCS 1462, pages
26–45. Springer-Verlag, Berlin, 1998.
2. M. Bellare and P. Rogaway. Random Oracles Are Practical: a Paradigm for De-
signing Efficient Protocols. In Proc. of the 1st CCS, pages 62–73. ACM Press, New
York, 1993.
3. M. Bellare and P. Rogaway. Optimal Asymmetric Encryption – How to Encrypt
with RSA. In Eurocrypt ’94, LNCS 950, pages 92–111. Springer-Verlag, Berlin,
1995.
274 E. Fujisaki et al.
Dan Boneh?
1 Introduction
In an influential paper Bellare and Rogaway [2] introduced the Optimal Asym-
metric Encryption Padding (OAEP) system. OAEP is most commonly used for
strengthening the RSA and Rabin encryption schemes. OAEP is widely deployed
and appears in several standards. Shoup [11] recently described a modification
to OAEP called OAEP+ that provably converts any trapdoor permutation into a
chosen ciphertext secure system in the random oracle model. Shoup also showed
that applying OAEP to the RSA permutation with public exponent e = 3 gives
a chosen ciphertext secure system in the random oracle model. Fujisaki et al.[8]
were able to extend the result and prove that the same holds for the RSA per-
mutation with any RSA public exponent e.
We show that for the RSA and Rabin systems, much simpler padding schemes
can be shown to be chosen ciphertext secure in the random oracle model. We
introduce two simple padding schemes. The first is called Simple-OAEP, or SAEP
for short. The second is called SAEP+ . We note that simplifying the padding
scheme makes the system easier to describe and easier to implement, and thus is
more elegant. Simplifying the padding scheme has little bearing on performance
since padding time is negligible compared to public key operations.
We begin by describing SAEP and SAEP+ padding (see Figure 1). Let M be a
message M ∈ {0, 1}m and let r be a random string r ∈ {0, 1}s1 . Let H be a hash
function from {0, 1}s1 to {0, 1}m+s0 . Let G be a hash function from {0, 1}m+s1
to {0, 1}s0 . Define the new padding schemes SAEP and SAEP+ as follows:
?
Supported by NSF and the Packard Foundation.
These padding schemes are to be used as preprocessing functions with the Rabin
or RSA trapdoor functions. To encrypt a message M ∈ {0, 1}m first pick a
random r ∈ {0, 1}s1 , compute y = SAEP(M, r), and set C = y 2 mod N or
C = y e mod N for some RSA exponent e.
Both schemes provide security against an adaptive chosen ciphertext attack
in the random oracle model for appropriate values of m, s0 , s1 . Let N be an n-bit
modulus. We prove the following results for the Rabin and RSA functions:
SAEP: Let Rabin-SAEP be the encryption scheme resulting from combining
SAEP with the Rabin trapdoor function, f (x) = x2 mod N (as described in the
next section). We show that Rabin-SAEP provides chosen ciphertext security
whenever m + s0 < n/2 and m < n/4. Security is based on the hardness of fac-
toring large RSA composites. The reduction is very efficient. It is based entirely
on applying Coppersmith’s algorithm [6] to quadratic and quartic polynomi-
als. SAEP works well with the Rabin function, but is hard to use with RSA, as
explained in Section 4.
SAEP+ : Both RSA-SAEP+ (for any RSA exponent e) and Rabin-SAEP+ can be
shown to be chosen ciphertext secure whenever m + s0 < n/2. The reduction
to factoring for Rabin-SAEP+ is extremely efficient. The proof is based on
Coppersmith’s algorithm. For RSA-SAEP+ the reduction to breaking RSA is
less efficient. Its running time is similar to the running time of the reduction
in the proof of security for RSA-OAEP [8].
SAEP+ is more flexible than SAEP in a number of ways. First, SAEP+ can be
used with both Rabin and RSA (although Rabin is preferred). Second, SAEP+
can encrypt messages of longer size. For example, when using a 1024 bit mod-
ulus (n = 1024) one often takes s0 = 128 for proper security. In this case, the
maximum message length in SAEP is 256 bits. In SAEP+ the maximum length
is 384 bits. Note that since a 1024-bit modulus is often used for transporting a
128-bit session-key, both SAEP and SAEP+ are adequate for this purpose.
In some cases it might be desirable to allow for longer messages to be en-
crypted with SAEP+ . In Section 5 we note that the proof of security for RSA-
SAEP+ can be extended so that the scheme is secure whenever m + s0 < n(1 − δ)
for any fixed δ > 0. This means M could be almost as long as the modulus. How-
ever, the efficiency of the reduction to breaking RSA degrades exponentially in
1
δ . Hence, throughout the paper we stick with δ = 1/2. The extended proof is
based on solutions to the Hidden Number Problem [4] modulo a composite.
Both SAEP and SAEP+ work best with the Rabin function. The resulting
systems are better than their RSA counterparts in all aspects: (1) encryption
is slightly faster, (2) the reduction given in the security proof is more efficient,
and (3) security relies on the difficulty of factoring rather than the difficulty of
inverting the RSA permutation.
Simplified OAEP for the RSA and Rabin Functions 277
where H, G, W are hash functions. Schematically both OAEP and OAEP+ look
like two rounds of a Feistel network. Clearly the new padding schemes, SAEP
and SAEP+ are simpler. These new schemes are only a single round of a Feistel
network.
Although the new padding schemes are simpler than OAEP, they are slightly
more restrictive. Using OAEP and OAEP+ one can encrypt messages that are
almost as long as the modulus. For example, for a 1024-bit modulus it is safe
to encrypt messages that are 768-bits long. In contrast, using the same modulus
size, SAEP+ can only encrypt 384-bit messages. This difference is irrelevant for
common applications (e.g. key transport), but is worth pointing out.
Adaptive chosen ciphertext security is the accepted notion for secure encryption.
We have confidence in this notion since it captures a wide range of attacks,
278 D. Boneh
and is equivalent to several other useful security notions [7,3]. We present the
definition due to Rackoff and Simon [12]. Define a (t, qD ) chosen ciphertext attack
algorithm A as a t-time algorithm that interacts with a challenger as follows:
Setup: The challenger generates a public/private key pair. It gives the public
key to the attacker A and keeps the private key to itself.
Phase I: The attacker A issues decryption queries for various ciphertexts C.
The challenger responds with the decryption of all valid ciphertexts.
Challenge: At some point algorithm A outputs two messages M0 , M1 . The
challenger responds with a ciphertext C ∗ which is the encryption of Mb where
b is randomly chosen in {0, 1}.
Phase II: The attacker A continues to issue decryption requests C, subject to
the constraint C 6= C ∗ . Finally algorithm A terminates and outputs b0 ∈ {0, 1}.
We say that the attacker is successful if b = b0 . During the attack the attacker
is allowed to make at most qD decryption queries. We define the adversary’s
advantage as: adv(A) = Pr[b = b0 ] − 12
We say that a system is (t, , qD ) secure if no (t, qD ) attacker has advantage more
than .
The proofs of security for SAEP and SAEP+ are based on an important result
due to Coppersmith [6]. Coppersmith proved the following theorem:
We now give a full description of the SAEP and SAEP+ systems for RSA and
Rabin. We first describe these schemes as they apply to the Rabin function.
Simplified OAEP for the RSA and Rabin Functions 279
In doing so we deal with complications that arise from the fact that f (x) =
x2 mod N is not a permutation of Z∗N . Let m, s0 , s1 be security parameters.
Set n = m + s0 + s1 . We will make use of a hash function H : {0, 1}s1 →
{0, 1}m+s0 . The Rabin-SAEP system is composed of three algorithms: key-gen,
encrypt, decrypt. We describe each of these algorithms in turn:
key-gen: The key generation algorithm takes a security parameter n and produces
an (n + 2)-bit RSA modulus N = pq where p and q are (n/2 + 1)-bit primes.
We require that p = q = 3 mod 4. We also require that N ∈ [2n+1 , 2n+1 + 2n ),
i.e. that the two most significant bits of N are ‘10’. Any of the standardized
methods can be used to generate p and q [9]. The public key is N . The private
key is the factorization of N , namely hp, qi.
encrypt: We wish to encrypt a message M ∈ {0, 1}m :
Step 1: Pick a random r ∈ {0, 1}s1 .
Step 2: Set t = 0s0 .
Step 3: Set v = M kt ∈ {0, 1}m+s0 .
Step 4: Set x = v ⊕ H(r).
Step 5: Set y = xkr ∈ {0, 1}n . We view y as an n-bit integer.
Note that y < N/2.
Step 6: Define the ciphertext C as C = y 2 mod N .
decrypt: Given a ciphertext C ∈ ZN we decrypt using the steps below. We let A
and B be the Chinese Remainder coefficients, i.e. A is 1 mod p and 0 mod q,
and B is 0 mod p and 1 mod q.
p+1 q+1
Step 1: Compute zp = C 4 mod p and zq = C 4 mod q.
Since p = q = 3 mod 4 it follows that zp , zq are square roots of C in Zp , Zq
respectively.
Step 2: Test that zp2 = C mod p and zq2 = C mod q. If either condition does not
hold, then C is not a quadratic residue in ZN . Reject this C as an invalid
ciphertext.
Step 3: Set y1 = A · zp + B · zq mod N and y2 = A · zp − B · zq mod N . The
four square roots of C mod N are ±y1 and ±y2 . Two of these four roots
must be greater than N/2 and hence can be discarded. Let y1 , y2 be the
two remaining square roots. If neither of y1 , y2 is in [0, 2n ) then reject C as
an invalid ciphertext. Without loss of generality we assume both y1 , y2 are
in [0, 2n ).
Step 4: View both y1 and y2 as strings in {0, 1}n . Write y1 = x1 kr1 and
y2 = x2 kr2 with x1 , x2 ∈ {0, 1}m+s0 and r1 , r2 ∈ {0, 1}s1 .
Step 5: Set v1 = x1 ⊕ H(r1 ) and v2 = x2 ⊕ H(r2 ).
Step 6: Write v1 = M1 kt1 and v2 = M2 kt2 where M1 , M2 ∈ {0, 1}m and
t1 , t2 ∈ {0, 1}s0 .
Step 7: For i = 1, 2 test if ti is equal to 0s0 . If this condition holds for either
none or both of v1 , v2 then reject C as an invalid ciphertext.
Step 8: Let i ∈ {1, 2} be the unique i for which the condition of Step 7 holds.
Output Mi as the decryption of C.
280 D. Boneh
Note that in Step 7, if both t1 and t2 are equal to 0s0 the decryptor cannot
choose between them. Hence, in this case the ciphertext is rejected. This means
that with very low probability, namely 2−s0 , a valid ciphertext might be rejected
by the decryptor (recall that typically s0 ≥ 128). For most applications such low
error probabilities can be ignored. One concern is whether a malicious encryptor
can create a valid ciphertext that will be rejected by the decryptor in Step 7.
It is easy to show that in the random oracle model the encryptor would have
to spend expected time O(2s0 ) to create such a ciphertext. This is sufficient for
most applications. We note that if a negligible error probability is unacceptable
then the encryptor could keep choosing random r’s until y has Jacobi symbol 1.
This enables the decryptor to select the correct square root by choosing the
unique root yi ∈ [0, 2n ) with Jacobi symbol 1. However, this is unnecessary and
makes the scheme less efficient.
During decryption invalid ciphertexts can be rejected in Steps 2 and 3 as well
as in Step 7. Manger [10] points out the importance of preventing an attacker
from distinguishing between rejections at the various steps, say, using timing
analysis. Implementors must ensure that the reason a ciphertext is rejected is
hidden from the outside world. Indeed, our proof of security fails if this is not
the case.
Next, we give a high level description of how the simulator responds to A’s
decryption queries. Suppose the attacker issues a decryption query for the ci-
phertext C. Let C = y 2 mod N for some y ∈ [0, 2n ) and let r be the s1 least
significant bits of y. We will show that if C is a valid ciphertext, then H(r) must
already be defined (otherwise, with high probability, the string 0s0 will not be
found when unpadding y). Hence, the r used to create C must satisfy one of the
following: (1) the attacker queried H(r) prior to issuing the decryption query,
or (2) r = r1∗ or r = r2∗ . Suppose method (1) is used. Then when the decryption
query is issued, the simulator already has r, which enables it to find the square
root of C, as above. Suppose method (2) is used, i.e. r = ri∗ for some i ∈ {1, 2}.
In this case, assuming C is a valid ciphertext, we know that y = yi∗ + 2s0 +s1 ∆
for some |∆| < 2m < N 1/4 . Hence, define the two polynomials:
Setup: The simulator gives A the value N as the public key to be attacked. It
also gives A the security parameters m, s0 , s1 .
H-queries: At any time A can query H at r ∈ {0, 1}s1 . The simulator needs
to respond with H(r). To respond to such H-queries the simulator maintains
a list, called the Hlist . The Hlist is a list of tuples of the form hz, H(z)i that
records all responses to previous H-queries. The Hlist is initially empty. To
respond to the query r the simulator works as follows:
Step 1: If r already appears as the left hand side of some tuple hz, H(z)i in
the Hlist then respond to A with H(r) = H(z).
Step 2: Consider the polynomial f (x) = (2s1 x + r)2 − C ∗ . The simulator runs√
Coppersmith’s algorithm to try to find a solution |x0 | < 2m+s0 < N
satisfying f (x0 ) = 0 mod N . If a solution is found, the simulator outputs
2s1 x0 + r as the square root of C ∗ and terminates the simulation.
Step 3: Otherwise, the simulator picks a random w ∈ {0, 1}m+s0 and sets
H(r) = w. It adds the tuple hr, wi to the Hlist and responds to A by saying
H(r) = w.
Challenge: At some point A produces two plaintexts M0 , M1 ∈ {0, 1}m where
it wishes to be challenged. The simulator responds with C ∗ as the challenge
ciphertext.
Decryption queries: Let C ∈ ZN be a ciphertext output by A. The simulator
must decrypt C or reject it as an invalid ciphertext. We construct a plaintext
extractor to decrypt C. The plaintext extractor takes C, Hlist , C ∗ as input and
works as follows:
Step 1: For each tuple hr, H(r)i on the Hlist consider the polynomial fr (X) =
(2s1 x + r)2 − C. The simulator
√ runs Coppersmith’s algorithm on each fr (x)
to try to find an |x0 | < N satisfying fr (x0 ) = 0 mod N . Suppose an x0 is
found for some r0 on the Hlist . In this case, the simulator found a square
root of C, namely 2s1 x0 + r0 . Using H(r0 ) from the Hlist the simulator
checks that x0 is a properly padded SAEP message. If so, it gives A the
plaintext. If not, the simulator rejects C as an invalid ciphertext.
Step 2: Suppose no r0 on the Hlist is found. Consider the two polynomials
Let h(∆) be the resultant of the two polynomials with respect to z. Then
h(∆) is a quartic polynomial. Use Coppersmith’s algorithm to try to find
a ∆0 < 2m < N 1/4 such that h(∆0 ) = 0 mod N . If such a ∆0 is found
then we know f (y ∗ ) = g(y ∗ , ∆0 ) = 0 mod N where y ∗ is some square root
of C ∗ . Then the simulator can easily find y ∗ by computing the gcd of the
univariate polynomials f (z) and g(z, ∆0 ). Since these two monic quadratic
polynomials must be different (since C 6= C ∗ ) their gcd must be a linear
polynomial having y ∗ as a root. The simulator outputs y ∗ as the square
root of C ∗ and terminates the simulation.
Step 3: If both Step 1 and Step 2 fail to resolve the decryption query, the
ciphertext C is rejected as an invalid ciphertext. Note that Step 2 is only
done in Phase 2 of the attack.
284 D. Boneh
This completes the description of the simulator. The simulator’s running time
is as stated in the statement of Theorem 4. It remains to calculate the success
probability of computing a square root of C ∗ . Let y1∗ , y2∗ be the two square roots
of C ∗ mod N in [0, 2n ). If C ∗ only has one such square root then set y1∗ = y2∗ .
Let r1∗ , r2∗ be the s1 least significant bits of y1∗ , y2∗ respectively. We are successful
if during the simulation either: (1) A issues a query for one of H(r1∗ ), H(r2∗ ), or
(2) A issues a decryption √ query forn a valid ciphertext C 6= C ∗ where the s1 least
∗ ∗
significant bits of some C ∈ [0, 2 ) equal r1 or r2 . If either one of these queries
occurs during the attack we say that A issued an r∗ query. We denote by A(r∗ )
the event that A issues an r∗ query during the attack. Our goal is to show that
during the simulation Prsim [A(r∗ )] is non-negligible.
Lemma 1. Let A be a (t, qD , qH ) chosen ciphertext attacker with adv(A) ≥ .
Then Prsim [A(r∗ )] ≥ (1 − 2q 2qD
2s0 − 2s1 ).
D
Proof. We first note that during the real attack we have Prreal [A(r∗ )] ≥ . To
see this observe that if A does not issue an r∗ query during the real attack then
the decryption of the challenge C ∗ is independent of A’s view (since H(r1∗ ), H(r2∗ )
are independent of A’s view). Hence, since adv(A) ≥ , it follows that in the real
attack A must make an r∗ query with probability at least , i.e. Prreal [A(r∗ )] ≥ .
Next, we show that with high probability A cannot distinguish the real attack
from the simulation until it issues an r∗ query. We say that the event GoodSim
occurred if the following two events happen:
– The simulator never rejects a valid decryption query issued by A (the validity
of a query is determined relative to the oracle H at the end of the simulation),
and
– During phase I of the attack (i.e. prior to being given the challenge) algorithm
A did not issue a decryption query for C where C = y 2 mod N and the s1
least significant bits of y ∈ [0, 2n ) are equal to r1∗ or r2∗ .
We show that when GoodSim occurs the simulation and the real attack are
indistinguishable. We then show that GoodSim occurs with high probability.
Claim 1: Prreal [A(r∗ )] = Prsim [A(r∗ )|GoodSim].
Proof: We show that when GoodSim occurs A’s view during the simulation is
sampled from the same distribution as A’s view during the real attack. By con-
struction, all responses to H queries are as in a real attack. Similarly, when
GoodSim occurs all responses to decryption queries are as in a real attack. Hence,
the only thing to show is that the challenge C ∗ given by the simulator is sampled
from the same distribution as in a real attack. Recall that C ∗ is generated by
picking a random α ∈ [0, 2n ) and computing C ∗ = α2 mod N . For C ∗ to be an
encryption of M0 or M1 we must introduce an implicit constraint on H, namely
H(r∗ ) = w∗ for some hr∗ , w∗ i. We show that w∗ is uniform in {0, 1}m+s0 and
that w∗ , H(r∗ ) are both independent of the attacker’s view at the end of phase I.
Hence, setting H(r∗ ) = w∗ is consistent with a real attack. Proving this requires
some care for the Rabin function.
Let c ∈ {1, 2} be a random bit. If C ∗ has two square roots in [0, 2n ) we use the
bit c to pick one of them at random. Let y ∗ be the chosen square root (unknown
to the simulator). By Fact 3 we know that y ∗ is uniform in {0, 1}n (over the
probability space induced by hα, ci). Write y ∗ = x∗ kr∗ with x∗ ∈ {0, 1}m+s0
Simplified OAEP for the RSA and Rabin Functions 285
and r∗ ∈ {0, 1}s1 . Choose a random b ∈ {0, 1} and set v ∗ = Mb k0s0 . The
random bit b indicates whether C ∗ is an encryption of M0 or M1 . Finally, set
H(r∗ ) = v ∗ ⊕ x∗ . Since y ∗ is uniform in [0, 2n ) we know that x∗ is uniformly
distributed in {0, 1}m+s0 . Hence, v ∗ ⊕ x∗ ∈ {0, 1}m+s0 is a uniform random
string. It is independent of A’s view at the end of phase I as required since at
that time C ∗ has not yet been used to answer any queries.
Next, we show that at the end of phase I (just before A receives the challenge)
H(r∗ ) is independent of A’s view (otherwise we cannot set H(r∗ ) = v ∗ ⊕ x∗ ).
This is immediate by the following facts: (1) we may assume that during phase I
the attacker does not issue a query for H(r∗ ) since otherwise the event A(r∗ )
has already occurred and there is nothing more to prove. (2) the second part
of GoodSim implies that during phase I the attacker did not issue a decryption
query that restricts H(r∗ ). Hence, at the end of phase I we know that H(r∗ ) is
independent of the attacker’s view. This completes the proof of Claim 1.
Claim 2: Pr[GoodSim] ≥ 1 − 2q 2qD
2 s0 − 2 s1 .
D
Proof: Let C be a decryption query issued by the attacker and rejected by the
simulator (i.e. C fails steps 1 and 2 of response to decryption queries). We show
that the probability that C is valid is at most 2/2s0 . Let y1 , y2 be the square
roots of C in [0, 2n ). Let M1 , r1 , x1 , t1 , v1 and M2 , r2 , x2 , t2 , v2 be the unpadding
of y1 , y2 as defined in Section 2. Then C is a valid ciphertext only if either t1 = 0s0
or t2 = 0s0 . Since C failed to satisfy the condition of Step 1 we know that A has
not yet issued a query for H(r1 ) or H(r2 ). Since C failed to satisfy Step 2 we
know that r1 , r2 6= r1∗ and r1 , r2 6= r2∗ . Hence, H(r1 ) and H(r2 ) are independent
of the attacker’s current view. Therefore, the probability that t1 = 0s0 or t2 = 0s0
is at most 2/2s0 . Since the attacker makes at most qD queries, the probability
that any of these queries are incorrectly rejected is at most 2qD /2s0 .
To bound the probability for the second part of GoodSim observe that during
phase I the challenge C ∗ is independent of the attacker’s view. Therefore, the
probability that a decryption query during phase I happened to use r1∗ or r2∗ is
at most 2/2s1 . Therefore, the probability that any of the queries during phase I
use r1∗ or r2∗ is at most 2qD /2s1 . To conclude we have that Pr[GoodSim] ≥
1 − 2qD /2s0 − 2qD /2s1 as required. This completes the proof of Claim 2.
The proof of the lemma now follows from Claims 1 and 2:
Pr A(r∗ ) ≥ Pr A(r∗ ) GoodSim · Pr GoodSim =
sim sim
2qD 2qD
Pr [A(r∗ )] · Pr GoodSim ≥ (1 − s0 − s1 )
real 2 2
Extensions. SAEP is not known to be secure for the general RSA trapdoor
permutation, f (x) = xe mod N . For very small RSA exponents one can show
some limited security. For example, for e = 3 SAEP has chosen ciphertext security
whenever m + s0 < n/3 and m < n/9. For typical RSA modulus sizes, these
restrictions on the message length make it difficult to use this system.
286 D. Boneh
Proof. Algorithm B is given C ∗ = f (x∗ , r∗ ) for some random x∗ kr∗ ∈ {0, 1}n .
Our goal is to output a list of size qH containing r∗ . We construct a simulator
that interacts with algorithm A and produces the required output. Note that
since f is a permutation, x∗ kr∗ is unique given C ∗ .
We first give a high level description of the simulator. During the simulation,
A outputs two plaintexts M0 , M1 where it wishes to be challenged. The simulator
responds with C ∗ as the challenge ciphertext. We view C ∗ as the encryption of
M ∗ , where M ∗ is one of the two challenge plaintexts M0 , M1 . We will show that
if A is to have any information about the decryption of C ∗ it must query the
function H at the point r∗ . Therefore, if we place all of A’s queries to H in a
list, called the Hlist , then with non-negligible probability the Hlist is a solution
to the set partial one-wayness problem.
Next, we show how to respond to decryption queries. Say the attacker wishes
to decrypt the ciphertext C. Suppose C is a valid ciphertext, and is the en-
cryption of some message M . Furthermore, let C = f (x, r). We will show that
if C is a valid ciphertext, then both G(M, r) and H(r) are already defined.
Hence, the r used to create C must satisfy one of the following: (1) the attacker
queried G(M, r) and H(r) prior to issuing the decryption query, or (2) r = r∗
and M = M ∗ . Suppose method (1) is used. Then when the decryption query is
issued, the simulator has already been queried on G(M, r). Hence, to decrypt C
Simplified OAEP for the RSA and Rabin Functions 287
the simulator simply checks to see which pair hM, ri on the list of queries to G
is the decryption of C. Suppose method (2) is used, i.e. r = r∗ and M = M ∗ . In
this case C = C ∗ and hence this is an invalid decryption query since it matches
the challenge ciphertext. Consequently, all decryption queries can be correctly
answered.
We now give the detailed description of the simulator B.
Setup: The simulator gives A the security parameters m, s0 , s1 , and identifies
the function f within the family of trapdoor permutations F.
H-queries: At any time A can query H at r ∈ {0, 1}s1 . The simulator needs
to respond with H(r). To respond to such H-queries the simulator maintains
a list, called the Hlist . The Hlist is a list of tuples of the form hz, H(z)i that
records all responses to previous H-queries. The Hlist is initially empty. To
respond to the query r the simulator works as follows:
Step 1: If r already appears as the left hand side of some tuple hz, H(z)i in
the Hlist then respond to A with H(r) = H(z).
Step 2: Otherwise, the simulator picks a random w ∈ {0, 1}m+s0 and sets
H(r) = w. It adds the tuple hr, wi to the Hlist and responds to A by saying
H(r) = w.
G-queries: At any time A can query G at G(M0 , r0 ) where M0 ∈ {0, 1}m and
r0 ∈ {0, 1}s1 . The simulator needs to produce G(M0 , r0 ). To respond to such
G-queries the simulator maintains a list, called the Glist . It is a list of tuples of
the form hM, r, G(M, r), Ci that records all responses to previous G-queries.
The last entry, C, is the ciphertext that results from encrypting M using the
random string r (see Step 2 below). The Glist is initially empty. To respond
to the query (M0 , r0 ) the simulator works as follows:
Step 1: If (M0 , r0 ) appears as the left hand side of some tuple hM0 , r0 , u, Ci in
the Glist then respond to A with G(M0 , r0 ) = u.
Step 2: Otherwise, the simulator picks a random u ∈ {0, 1}s0 and sets
G(M0 , r0 ) = u. It then runs the algorithm for responding to an H
query to obtain the value of H(r0 ). The simulator then computes C0 =
f (SAEP+ (M0 , r0 )), which is the ciphertext obtained from encrypting M0
using r0 . Note that at this point H(r0 ) and G(M0 , r0 ) are well defined, so
that C0 is well defined. The simulator adds hM0 , r0 , u, C0 i to the Glist and
responds to A by saying G(M0 , r0 ) = u.
Challenge: At some point A produces two plaintexts M0 , M1 ∈ {0, 1}m where
it wishes to be challenged. The simulator responds with C ∗ as the challenge
ciphertext.
Decryption queries: Let C ∈ ZN be a ciphertext output by A. The simulator
must decrypt C or reject it as an invalid ciphertext. We construct a plaintext
extractor to decrypt C. The plaintext extractor is very simple: search the Glist
to see if it contains a tuple hM, r, u, Ci with C as the last entry. If so, respond
with M as the decryption of C. Otherwise, reject the ciphertext as an invalid
ciphertext.
This completes the description of the simulator. Algorithm B outputs the Hlist
at the end of the simulation as its solution to the given set partial one-wayness
problem. One can easily verify that the running time of B is as stated in the
288 D. Boneh
statement of the theorem. We are assuming that searching the Hlist and Glist
takes constant time.
It remains to calculate the probability that r∗ is contained in one of the
tuples on the final Hlist . This happens if A issues a query for H(r∗ ) or a query
for G(−, r∗ ). We denote the probability of this event by Prsim [r∗ ∈ Hlist ]. We
note that once the attacker queries H(r∗ ) it can easily distinguish the simulation
from a real attack: the simulator defines H(r∗ ) to be a random string, but then
C ∗ is unlikely to be the encryption of M0 or M1 . Hence, the attacker may choose
to abort the attack. However, at that point r∗ is already in the Hlist as required.
The next lemma shows that Prsim [r∗ ∈ Hlist ] is sufficiently large.
Lemma 2. Let A be a (t, qD , qH , qG ) chosen ciphertext attacker for f − SAEP+
with advantage .
Then Prsim [r∗ ∈ Hlist ] ≥ (1 − qD /2s0 − qD /2s1 ).
Proof As in the proof of Lemma 1 we have that in the real attack Prreal [r∗ ∈
Hlist ] ≥ . It remains to show that with high probability A cannot distinguish
the simulation from the real attack until it issues a query for H(r∗ ) or G(−, r∗ ).
Let GoodSim be the event defined as in the proof of Lemma 1, namely we say
that the event GoodSim occurred if the following two events happen:
– The simulator never rejects a valid decryption query issued by A (the validity
of a query is determined relative to the oracle H at the end of the simulation),
and
– During phase I of the attack (i.e. prior to being given the challenge) algorithm
A did not issue a decryption query for C where C = f (x, r∗ ) for some x ∈
{0, 1}m+s0 .
Claim 1: Prreal [r∗ ∈ Hlist ] = Prsim [r∗ ∈ Hlist |GoodSim].
Proof: We show that when GoodSim occurs A’s view during the simulation is
sampled from the same distribution as A’s view during the real attack. Observe
that the simulator provides a perfect simulation of the H and G oracles. Also,
when GoodSim occurs all decryption queries are answered correctly. Next we
show that the challenge ciphertext C ∗ given to A is distributed as in the real
attack. Recall that x∗ , r∗ are chosen at random. Let M0 , M1 be the messages
on which A wishes to be challenged. Pick a random b ∈ {0, 1}. We make C ∗
be the encryption of Mb . To do so, pick a random t∗ ∈ {0, 1}s0 and define
G(Mb , r∗ ) = t∗ . Set v ∗ = Mb kt∗ and define H(r∗ ) = v ∗ ⊕ x∗ . Then C ∗ is the
encryption of Mb . Furthermore, t∗ and v ∗ ⊕ x∗ are random strings independent
of A’s view at the end of phase I as required. To complete the proof we need
to argue that at the end of phase I the hash values G(Mb , r∗ ) and H(r∗ ) are
independent of the attacker’s view (otherwise we cannot set G(Mb , r∗ ) = t∗ and
H(r∗ ) = v ∗ ⊕x∗ ). We do so in the same way as at the end of Claim 1 of Lemma 1.
Claim 2: Pr[GoodSim] ≥ 1 − 2qsD0 − 2qsD1 .
Proof: Let C be a decryption query issued by the attacker and rejected by the
simulator. Let C = f (x, r), and let M, t, v be the unpadding of xkr as described
in Section 2. Then C is a valid ciphertext only if t = G(M, r). Since C is rejected
by the simulator we know that the attacker did not issue a query for G(M, r).
Similarly, since C 6= C ∗ we know that hM, ri is not equal to hMb , r∗ i. Hence,
G(M, r) is independent of the attacker’s current view. Therefore, the probability
Simplified OAEP for the RSA and Rabin Functions 289
that t = G(M, r) is 1/2s0 . Since the attacker makes at most qD queries, the
probability that any decryption query is incorrectly rejected is at most qD /2s0 .
We bound the probability for the second part of GoodSim as we did in the proof
of Claim 2 of Lemma 1. Overall, we get that Pr[GoodSim] ≥ 1 − qD /2s0 − qD /2s1
as required. This concludes the proof of Claim 2.
The proof of the lemma now follows from Claims 1 and 2 as in the calculation
at the end of Lemma 1. This concludes the proof of Theorem 5.
We now describe how Theorem 5 applies to the Rabin and RSA functions. For
the Rabin function we obtain an extremely efficient reduction to factoring. For
the RSA permutation we obtain a reduction to breaking RSA, but the reduction
is not as efficient. Since the Rabin function is not a permutation on Z∗N one
needs to extend the proof of Theorem 5 to this case. The extension is done using
the same techniques as in Theorem 4. Theorem 5 remains unchanged.
Corollary 1 (Rabin-SAEP+ ). Consider the Rabin-SAEP+ scheme, with m +
s0 < n/2. Suppose the (n, t, ) factoring assumption holds. Then Rabin-SAEP+
is (t0 , 0 , qD , qH , qG ) chosen ciphertext secure in the random oracle model for t0 , 0
satisfying:
t0 ≤ t − O(qD + qG + qH TC ), and
1 0 s0
6 ≥ + qD /2 + qD /2s1
where TC = TC (n, 2).
Proof Suppose A is a (t0 , qD , qH , qG ) chosen ciphertext attacker on Rabin-
SAEP+ with advantage 0 . Let fN be the function fN (x) = x2 mod N for some
N generated by the Rabin-SAEP+ key-gen algorithm. By Theorem 5 there exists
a t0 -time algorithm B that solves the (fN , qH ) set partial one-wayness problem
with advantage 0 for some t0 , 0 .
We construct an algorithm C for factoring N . The algorithm starts by picking
a random α ∈ [0, 2n ) and computing C ∗ = α2 mod N . It then runs B on input
C ∗ . With probability at least 0 we obtain a set S = {r1 , . . . , rqH } ⊆ {0, 1}s1 of
size qH with the following property: there exists an integer
√ x ∈ [0, 2m+s0 ) and
s1 2 ∗
r ∈ S such that (2 x + r) = C mod N . Since x < N we can then find x, r
by running Coppersmith’s algorithm on all qH candidates for r. Once x, r are
found, we obtain a square root α0 ∈ [0, 2n ) of C ∗ mod N . Then the factorization
of N is revealed with probability at least 1/6 by computing gcd(N, α − α0 ).
To see this observe that by Fact 2, C ∗ mod N has two square roots in [0, 2n )
with probability at least 1/3. Therefore, α 6= α0 with probability 1/6. Since
0 ≤ α, α0 < N/2 the GCD gives a non-trivial factor of N . The resulting factoring
algorithm C has running time: time(C) = t0 + qH TC = t0 + O(qD + qG + qH TC )
and success probability at least adv(C) = 16 0 = 16 0 (1 − qD /2s0 − qD /2s1 ). The
corollary now follows.
t0 ≤ t/2 − O(qD + qG + qH
2
), and
0 1/2 s0 s1
≥ + qD /2 + qD /2
Note that the reduction time for RSA-SAEP+ is quadratic in qH and the
success probability is quadratic in . This is not as efficient as the reduction for
Rabin-SAEP+ which is linear time.
Accommodating large messages in RSA-SAEP+ . Note that in Corollary 2
the message length must satisfy m + s0 < n/2. We briefly note that the corollary
remains true even if m+s0 < (1−δ)n for any fixed δ > 0. To do so run algorithm
B on c = 1/δ random values α1 C ∗ , . . . , αc C ∗ . We obtain c lists of size qH each.
Suppose we find a c-tuple c∗ = hr1∗ , . . . rc∗ i (one entry from each list) that is
the correct solution to these c partial one-wayness problems. Then we obtain
the δn least significant bits of each αi C ∗ mod N where the αi are random in
ZN . Finding C ∗ from this tuple is a standard Hidden Number Problem (HNP)
modulo N . We can use the algorithm in [4] to efficiently find C ∗ . The analysis
in [4], which applies to HNP modulo primes, extends to handle RSA composites
N = pq as well. The resulting algorithm for breaking RSA has a running time
c
of O(qH ), since we must try all c-tuples c∗ , and a success probability of O(c ),
since B must succeed on all c iterations. Consequently, this reduction becomes
very inefficient for small δ.
6 Conclusions
We showed that OAEP can be simplified significantly when applied to the Rabin
and RSA functions. OAEP can be viewed as two rounds of a Feistel network.
The simplified schemes, SAEP and SAEP+ , require only one round of Feistel.
The proof of security for the two schemes is based on the algebraic properties
of the Rabin and RSA functions. When using an n-bit modulus Rabin-SAEP
is secure whenever m + s0 < n/2 and m < n/4. SAEP+ is secure whenever
m + s0 < n/2. The proof of security for RSA-SAEP+ has the same efficiency as
the proof for RSA-OAEP [8]. For Rabin-SAEP+ the proof is as efficient as the
proof for Rabin-OAEP+ [11].
The padding SAEP+ is superior to SAEP both in terms of the reduction effi-
ciency and in terms of the weaker restriction on the message length. For practical
Simplified OAEP for the RSA and Rabin Functions 291
purposes one is most likely to use SAEP+ rather than SAEP. Nevertheless, it is
useful to know that Rabin-SAEP, which is a slightly simpler construction, also
provides chosen ciphertext security when appropriate parameters are used.
References
1. M. Bellare, P. Rogaway, “Random oracles are practical: a paradigm for design-
ing efficient protocols”, In ACM conference on Computers and Communication
Security, pp. 62–73, 1993.
2. M. Bellare, P. Rogaway, “Optimal asymmetric encryption”, Eurocrypt ’94, pp.
92–111, 1994.
3. M. Bellare, A. Desai, D. Pointcheval, P. Rogaway, “Relations among notions of
security for public-key encryption schemes”, in proc. Crypto ’98, pp. 26–45, 1998.
4. D. Boneh, R. Venkatesan, “Hardness of computing the most significant bits of
secret keys in Diffie-Hellman and related schemes”, in proc. Crypto ’96, pp. 129–
142, 1996.
5. R. Canetti, O. Goldreich, S. Halevi, “The random oracle model, revisited”, in proc.
STOC ’98.
6. D. Coppersmith. Small solutions to polynomial equations, and low exponent RSA
vulnerabilities. Journal of Cryptology, vol. 10, pp. 233–260, 1997.
7. D. Dolev, C. Dwork, M. Naor, “Non-malleable cryptography”, SIAM J. of Com-
puting, Vol. 30(2), pp. 391–437, 2000.
8. E. Fujisaki, T. Okamoto, D. Pointcheval, J. Stern, “RSA-OAEP is secure under
the RSA assumption”, In proc. Crypto ’2001, Springer-Verlag, 2001.
9. A. Menezes, P. van Oorschot and S. Vanstone, Handbook of Applied Cryptography,
CRC Press, 1996.
10. J. Manger, “A chosen ciphertext attack on RSA Optimal Asymmetric Encryption
Padding (OAEP) as standardized in PKCS #1”, In proc. Crypto ’2001.
11. V. Shoup, “OAEP reconsidered”, In proc. Crypto ’2001, Springer-Verlag, 2001.
12. C. Rackoff, D. Simon, “Non-interactive zero-knowledge proof of knowledge and
chosen ciphertext attack”, in proc. Crypto ’91, pp. 433–444, 1991.
Online Ciphers and the Hash-CBC Construction
1 Introduction
A cipher over domain D is a function F : {0, 1}k ×D → D such that for each key
K the map F (K, ·) is a length-preserving permutation on D, and possession of
K enables one to both compute and invert F (K, ·). The most popular examples
are block ciphers, where D = {0, 1}n for some n called the block length; these are
fundamental tools in cryptographic protocol design. However, one might want to
encipher data of large size, in which case one needs a cipher whose domain D is
appropriately large. (A common choice, which we make, is to set the domain to
Dd,n , the set of all strings having a length that is at most some large value d, and
is also divisible by n.) Matyas and Meyer refer to these as “general” ciphers [10].
To the best of our knowledge, the problem of designing on-line ciphers with
security properties as strong as those required by our definition has not been
explicitly addressed before. When one comes to consider this problem, however,
it is natural to test first some existing candidate ciphers or natural constructions
from the literature. We consider some of them and present attacks that are
helpful to gather intuition about the kinds of security properties we are seeking.
It is natural to begin with standard modes of operation of a block cipher, such
as CBC. However, CBC is an encryption scheme, not a cipher; each invocation
chooses a new random initial vector as a starting point and makes this part of the
ciphertext. In particular, it is not length-preserving. The natural way to modify
it to be a cipher is to fix the initial vector. There are a couple of choices: make it
a known public value, or, hopefully better for security, make it a key that will be
part of the secret key of the cipher. The resulting ciphers are certainly on-line,
but they do not meet the notion of security we have defined. In other words, the
CBC cipher with fixed IV, whether public or private, can be easily distinguished
from a random on-line permutation. Attacks demonstrating this are provided in
Section 4.
We then consider the Accumulated Block Chaining (ABC) mode proposed by
Knudsen in [7], which is a generalization of the Infinite Garble Extension mode
proposed by Campbell [5]. It was designed to have “infinite error propagation,”
a property that intuitively seems necessary for a secure on-line cipher but which,
as we will see, is not sufficient. In Section 4, we present attacks demonstrating
that this is not a secure on-line cipher.
We stress that the hash functions map n bits to n bits, meaning work on
inputs of the block length, as does the given block cipher. Numerous designs of
fast AXU families are known, so that our construction is quite efficient. For an
overview of the state-of-the-art of AXU families refer to [12].
We prove that HCBC meets the notion of security for an on-line cipher that
we discussed above, assuming that the underlying block cipher E is a PRP. The
proof involves finding and exploiting a way of looking at an on-line cipher as a
2n -ary tree of permutations on n bits, and then going through a hybrid argument
involving a sequence of different games that “move” from OPermd,n to HCBC.
random value and a constant string in the message. (This will of course increase
the size of the plaintext, so is only possible when data expansion is permitted.)
Claims similar to those made in [4] remain true even if the cipher is an on-
line-PRP rather than a PRP. Specifically, the requirement on the message space
must be strengthened to require not just that entropy be present, but that it
be in the first blocks of the message; and similarly, that redundancy not just
be present, but be at the end of the data. Again, one might already have data
of such structure, in which case the encryption will be length preserving yet
provide semantic security and integrity, or one can prepend a random number
and append a constant to the message, getting the same properties but at the
cost of data expansion.
2 Definitions
the key-length. The two-input function F takes a key K ∈ Keys(F ) and an input
x ∈ Dom(F ) to return a point F (K, x) ∈ Ran(F ). For each key K ∈ Keys(F ),
we define the map FK : Dom(F ) → Ran(F ) by F (K, x) for all x ∈ Dom(F ).
Thus, F specifies a collection of maps from Dom(F ) to Ran(F ), each map being
associated with a key. (That is why F is called a family of functions.) We refer
to F (K, ·) as an instance of F . The operation of choosing a key at random from
R R
the key space is denoted K ← Keys(F ). We write f ← F for the operation
R R
K ← Keys(F ) ; f ← F (K, ·). That is, f ← F denotes the operation of selecting
at random a function from the family F . When f is so selected it is called
a random instance of F . Let Randn,n be the family of all functions mapping
R
{0, 1}n to {0, 1}n so that f ← Randn,n denotes the operation of selecting at
random a function from {0, 1}n to {0, 1}n . Similarly, let Permn be the family
R
of all permutations mapping {0, 1}n to {0, 1}n so that π ← Permn denotes the
operation of selecting at random a permutation on {0, 1}n . We say that F is
a cipher if Dom(F ) = Ran(F ) and each instance F (K, ·) of F is a length-
preserving permutation. A block cipher is a cipher whose domain and range
equal {0, 1}n for some integer n called the block size. (For example, the AES
has block size 128.) If F is a cipher, then F −1 is the inverse cipher, defined by
F −1 (K, x) = F (K, ·)−1 (x) for all K ∈ Keys(F ) and x ∈ Dom(F ).
Pseudorandomness of ciphers. A “secure” cipher is one that approximates a
family of random permutations; the “better” the approximation, the more secure
the cipher. This is formalized following [6,9]. A distinguisher is an algorithm that
has access to one or more oracles and outputs a bit. Let F : Keys(F )×{0, 1}n →
{0, 1}n be a family of functions with domain and range {0, 1}n . Let A1 be a
distinguisher with one oracle and A2 a distinguisher with two oracles. Let
h i h i
prp-cpa R R
AdvF (A1 ) = Pr g ← F : Ag1 = 1 − Pr g ← Permn : Ag1 = 1 .
These capture the advantage of the distinguisher in question in the task of dis-
tinguishing a random instance of F from a random permutation on D. In the
first case, the distinguisher gets to query the challenge instance. In the sec-
ond, it also gets to query the inverse of the challenge instance. For any integers
t, qe , qd , µe , µd , we now let
prp-cca
cure against chosen-ciphertext attacks if the function AdvF (t, qe , qd ) grows
“slowly.” Time complexity includes the time to reply to oracle calls by compu-
tation of F (K, ·) or F (K, ·)−1 .
permutation on Dd,n . In the first case, the distinguisher gets to query the chal-
lenge instance. In the second, it also gets to query the inverse of the challenge
instance. For any integers t, qe , µe , qd , µd , we now let
Advoprp-cpa (t, q , µ ) = max Advoprp-cpa (A )
F e e F 1
A1
oprp-cca oprp-cca
AdvF (t, qe , µe , qd , µd ) = max AdvF (A2 ) .
A2
Inversion. It turns out that the inverse of an on-line permutation is itself on-
line, as stated below and proven in [1].
300 M. Bellare et al.
We consider several candidates for on-line ciphers. First, we consider one based
on the basic CBC mode. Then, we consider the Accumulated Block Chain-
ing (ABC) proposed by Knudsen in [7], which is a generalization of the Infi-
nite Garble Extension mode proposed by Campbell [5]. In this section, we let
E: {0, 1}ek × {0, 1}n → {0, 1}n be a given block cipher with key size ek and
block size n.
CBC as an on-line cipher. In CBC encryption based on E, one usually uses
a new, random IV for every message. This does not yield a cipher, let alone an
on-line one. To get an on-line cipher, we fix the IV. We can, however, make it
secret; this can only increase security. In more detail, the CBC cipher associated
to E, denoted OCBC, has key space {0, 1}ek +n . For M, C ∈ Dd,n , eK ∈ {0, 1}ek
and C[0] ∈ {0, 1}n , we define
Here, C[0] is the IV. The key is the pair eK kC[0], consisting of a key eK for the
block cipher, and the IV. It is easy to check that the above cipher is on-line. For
clarity, we have also shown the inverse cipher. We now present the attack. The
adversary A shown in Figure 1 gets an oracle g where g is either an instance of
OCBC or an instance of OPermd,n . We claim that
Advoprp-cpa (A) ≥ 1 − 2−n .
OCBC (1)
We justify Equation (1) in the full version of this paper [1]. Since A made only
3 oracle queries, this shows that the CBC mode with a fixed IV is not a secure
on-line cipher.
The idea of the attack is to gather some input-output pairs for the cipher.
Then we use these values to construct a new sequence of input blocks so that
one of the input blocks to E collides with one of the previous input blocks to
E. This enables us to predict an output block of the cipher. If our prediction is
correct, then we know that the oracle is an instance of OCBC with overwhelming
probability.
Online Ciphers and the Hash-CBC Construction 301
Distinguisher Ag
Let M [2], . . . , M [l] be any n-bit strings
Let M1 = 0n M [2] . . . M [l] and let M2 = 1n M [2] . . . M [l]
Let C1 [1] . . . C1 [l] ← g(M1 ) and let C2 [1] . . . C2 [l] ← g(M2 )
Let M3 [2] = M [2]⊕C1 [1]⊕C2 [1] and let M3 = 1n M3 [2]M [3] . . . M [l]
Let C3 [1] . . . C3 [l] ← g(M3 )
If C3 [2] = C1 [2] then return 1 else return 0
Distinguisher Ag
Let M [2], . . . , M [l] be any n-bit strings
Let M1 = 0n M [2] . . . M [l] and let M2 = 1n M [2] . . . M [l]
Let C1 [1] . . . C1 [l] ← g(M1 ) and let C2 [1] . . . C2 [l] ← g(M2 )
Let M3 [2] = M [2] ⊕ C1 [1] ⊕ C2 [1] ⊕ h(0n ⊕h(P [0])) ⊕ h(1n ⊕h(P [0]))
Let M3 = 1n M3 [2]M [3] . . . M [l]
Let C3 [1] . . . C3 [l] ← g(M3 )
If C3 [2] = C1 [2]⊕1n , then return 1 else return 0
The adversary can compute M3 [2] because h is public. The fact that h is linear
means that the value M3 [2] is the same as before, so the attack has the same
success probability. The analysis for the attacks against both PABC and SABC
appear in the full version of this paper [1].
Our constructions of on-line ciphers will use the families of AXU (Almost Xor
Universal) functions as defined by Krawczyk [8]. We recall the definition, and
then prove some lemmas that will be helpful in our analyses.
Online Ciphers and the Hash-CBC Construction 303
Definition 3. Let n, hk ≥ 1 be integers, and let H: {0, 1}hk ×{0, 1}n → {0, 1}n
be a family of functions. Let
n h io
Advaxu Pr K ← {0, 1}hk : H(K, x1 ) ⊕ H(K, x2 ) = y
R
H = max
x1 ,x2 ,y
where the maximum is over all distinct x1 , x2 ∈ {0, 1}n and all y ∈ {0, 1}n .
The “advantage function” based notation we are introducing is novel: previous
works used instead the term “-AXU” family to refer to a family H that, in our
notation, has Advaxu H ≤ . We find the “advantage function” based notation
more convenient, and more consistent with the rest of our security definitions.
The definition is information-theoretic, talking of the maximum value of some
probability. We will find it convenient to think in terms of an adversary attacking
the scheme, and will use the following lemma. We stress that below there are no
limits on the running time of the adversary. This lemma is standard, and follows
easily from Definition 3, so we omit the proof.
Lemma 1. Let n, hk ≥ 1 be integers, and let H: {0, 1}hk × {0, 1}n → {0, 1}n
be a family of functions. Let A be any possibly probabilistic algorithm that takes
no inputs and returns a triple (x1 , x2 , y) of n-bit strings. Then
h i
Pr (x1 , x2 , y) ← A ; K ← {0, 1}hk : H(K, x1 ) ⊕ H(K, x2 ) = y ≤ Advaxu
R R
H .
For j = 1, . . . , i − 1 do
If (H(hK , X[j])⊕Y [j] = H(hK , X[i])⊕Y [i]) and (X[j] 6= X[i]) then r ← j
EndFor
Return r
Lemma 2. Let H: {0, 1}hk × {0, 1}n → {0, 1}n be a family of hash functions.
Then,
axu-cr
AdvH (q) ≤ q(q − 1) · Advaxu
H .
···
⊕ ⊕ ⊕
Theorem 1. Let E: {0, 1}ek × {0, 1}n → {0, 1}n be a block cipher, and let
H: {0, 1}hk × {0, 1}n → {0, 1}n be a family of hash functions. Let HCBC be
the n-on-line cipher associated to them as per Construction 1. Then, for any
integers t, qe , µe ≥ 0 such that µe /n ≤ 2n−1 , we have
oprp-cpa
AdvHCBC (t, qe , µe ) ≤
prp-cpa µ2e − nµe µ2e + 2n(qe + 1)µe
AdvE (t, µe /n, µe ) + · Advaxu
H + .
n2 n2 · 2n
HCBC is not secure against chosen-ciphertext attacks. We present an attack in
the full version of this paper [1].
A complete proof of Theorem 1 can be found in the full version of this paper
[1]. In the rest of this section, we provide an overview of this proof.
We introduce the notation HCBCπ (hK , ·) to denote an instance of a cipher
defined by Construction 1 where a permutation π and π −1 are used in place of a
permutation from the family E and its inverse, respectively. The proof looks at
an on-line cipher as a 2n -ary tree of permutations on {0, 1}n , and goes through
a hybrid argument involving a sequence of different games that “move” from
OPermd,n to HCBC. Let A be an adversary that has oracle access to a length-
preserving function f : Dd,n → Dd,n . We assume that A makes at most qe oracle
306 M. Bellare et al.
queries the sum of whose lengths is at most µe bits. We define three games
associated with the adversary A as follows.
R
Game 1. Choose a tree of random permutations T ← Tree(n, Permn , d). Run
A, replying to its oracle queries via T as described in Section 3. Let P1 be the
probability that A returns 1.
R
Game 2. Choose a random permutation, π ← Permn , and choose a random key
R
for H via hK ← {0, 1}hk . Run A, replying to its oracle queries via HCBCπ (hK , ·).
Let P2 be the probability that A returns 1.
R R
Game 3. Choose random keys for E and H via eK ← {0, 1}ek and hK ←
{0, 1}hk , respectively. Run A, replying to its oracle queries via HCBC(eK khK , ·).
Let P3 be the probability that A returns 1.
By the definition of Advoprp-cpa (A), we have
HCBC
oprp-cpa
AdvHCBC (A) = P3 − P1 = (P3 − P2 ) + (P2 − P1 ) . (3)
We bound the difference terms via the following lemmas:
Lemma 3. P − P ≤ Advprp-cpa (t, µ /n, µ )
3 2 E e e
Now let T denote the random choice of tree from Tree(n, Permn , d) that underlies
Game 1 and introduce the following notation in this game:
Online Ciphers and the Hash-CBC Construction 307
For each j = 1, . . . , qe
Let xj [0] = ε
For i = 1, . . . , lj
Let Cj [i] = Txj [i−1] (Mj [i]) and let xj [i] = xj [i − 1]kCj [i]
We now define some events in Game 1:
Event B1 : ZO1 ∨ OC
Let Pr1 [ · ] denote the probability function underlying Game 1, namely that
R
created by the random choice T ← Tree(n, Permn , d), and let Pr2 [ · ] denote the
probability function underlying Game 2, namely that created by the random
choices of π and hK . Let F denote HCBCπ (hK , ·).
Claim. Pr2 [ AF = 1 | B2 ] = Pr1 [ AT = 1 | B1 ]
Given this claim, a conditioning argument can be used to show that
P2 − P1 ≤ Pr2 [ HC ] + Pr2 [ ZO2 ] + Pr1 [ B1 ] .
The terms are bounded via the following claims:
Claim. Pr [ HC ] ≤ Advaxu-cr (µ /n)
2 H e
2µe
Claim. Pr2 [ ZO2 ] ≤
n · 2n
2
µ + 2nqe µe
Claim. Pr1 [ B1 ] ≤ e 2 n
n ·2
The proofs of the four claims above can be found in [1]. We conclude this sketch
by providing some intuition regarding the choice of the “bad” events, beginning
with the following definition.
Definition. Suppose 1 ≤ j, j 0 ≤ q, 1 ≤ i ≤ lj and 1 ≤ i0 ≤ lj 0 . We say that
(i, j) ≺ (i0 , j 0 ) if: either j = j 0 and i < i0 , or j < j 0 . We say that (i0 , j 0 ) is trivial
if there exists some j < j 0 such that ni0 ≤ |LCPn (Mj , Mj 0 )|.
We claim that the bad event B2 has been chosen so that, in its absence, the
following is true for every non-trivial (i0 , j 0 ): If (i, j) ≺ (i0 , j 0 ) then Pj [i] 6= Pj 0 [i0 ].
In other words, any two input points to the function π are unequal unless they
are equal for the trivial reason that the corresponding message prefixes are equal.
This means that in the absence of the bad event, ciphertext blocks whose value
is not “forced” by message prefix conditions are random but distinct, being
outputs of a random permutation. We have choosen event B1 in Game 1 so that
the output distribution here, conditioned on the absence of this event, is the
same.
308 M. Bellare et al.
The use of an on-line ciphers can provide strong privacy and authenticity prop-
erties, even though the cipher itself is weak compared to a standard one, if
the plaintext space has appropriate properties. This follows via the the encode-
then-encipher paradigm of [4], under which we imagine an explicit encoding step
applied to the raw data before enciphering. While [4] say that randomness and
redundancy anywhere in the message suffices, we have to be more constrained:
we prepend randomness and append redundancy.
with at least n random bits and end with some fixed sequence of n bits than
we get a symmetric encryption scheme that achieves privacy and integrity and,
moreover, is length-preserving.
References
1. M. Bellare, A. Boldyreva, L. Knudsen, C. Namprempre. On-line ciphers and the
Hash-CBC construction. Full version of this paper, available via http://www-cse
.ucsd.edu/users/mihir.
2. M. Bellare, J. Kilian, and P. Rogaway. The security of the cipher block chaining
message authentication code. In Journal of Computer and System Sciences, volume
61, No. 3, pages 362-399, Dec 2000. Academic Press.
3. M. Bellare and C. Namprempre. Authenticated encryption: Relations among no-
tions and analysis of the generic composition paradigm. In T. Okamoto, editor,
Advances in Cryptology — ASIACRYPT ’ 00, volume 1976 of Lecture Notes in
Computer Science, pages 531–545, Berlin, Germany, Dec. 2000. Springer-Verlag.
4. M. Bellare and P. Rogaway. Encode-then-encipher encryption: How to exploit
nonces or redundancy in plaintexts for efficient cryptography. In T. Okamoto,
editor, Advances in Cryptology — ASIACRYPT ’ 00, volume 1976 of Lecture Notes
in Computer Science, pages 317–330, Berlin, Germany, Dec. 2000. Springer-Verlag.
5. C. Campbell. Design and specification of cryptographic capabilities. In D. Brand-
stad, editor, Computer Security and the Data Encryption Standard, National Bu-
reau of Standards Special Publications 500-27, U.S. Department of Commerce,
pages 54-66, February 1978.
6. O. Goldreich, S. Goldwasser, and S. Micali. How to construct random functions,
Journal of the ACM, Vol. 33, No. 4, 1986, pp. 210–217.
7. L. Knudsen. Block chaining modes of operation. Reports in Informatics, Report
207, Dept. of Informatics, University of Bergen, October 2000.
8. H. Krawczyk. LFSR-based hashing and authenticating. In Y. Desmedt, editor,
Advances in Cryptology — CRYPTO ’94, volume 839 of Lecture Notes in Computer
Science, pages 129–139, Berlin, Germany, 1994. Springer-Verlag.
9. M. Luby and C. Rackoff. How to construct pseudo-random permutations from
pseudo-random functions. SIAM Journal of Computing, Vol. 17, No. 2, pp. 373–
386, April 1988.
10. C. Meyer and Matyas. A new direction in Computer Data Security. John Wiley
& Sons, 1982.
11. M. Naor and O.Reingold. On the construction of pseudorandom permutations:
Luby-Rackoff Revisited. In J. Feigenbaum, editor, Journal of Cryptology, Volume
12, Number 1, Winter 1999. Springer-Verlag.
12. W. Nevelsteen and B. Preneel. Software performance of universal hash functions.
In J. Stern, editor, Advances in Cryptology — EUROCRYPT ’99, volume 1592 of
Lecture Notes in Computer Science, pages 24–41, Berlin, Germany, 1999. Spring-
er-Verlag.
The Order of Encryption and Authentication
for Protecting Communications
(or: How Secure Is SSL?)?
Hugo Krawczyk
EE Department,
Technion, Haifa, Israel.
[email protected]
1 Introduction
sensitive data transmitted between Web clients and servers, and is used to secure
many other applications. IPSec is the standard for establishing a secure channel
between any two IP entities for protecting information at the network layer.
As said, all these protocols apply both symmetric authentication (MAC) and
encryption to the transmitted data. Interestingly, each of these three popular
protocols have chosen a different way to combine authentication and encryption.
We describe these three methods (here x is a message; Enc(·) is a symmetric
encryption function; Auth(·) is a message authentication code; and ‘,’ denotes
concatenation — in this notation the secret keys to the algorithms are implicit):
SSL: a = Auth(x), C = Enc(x, a), transmit C
IPSec: C = Enc(x), a = Auth(C), transmit (C, a)
SSH: C = Enc(x), a = Auth(x), transmit (C, a).
We refer to these three methods as authenticate-then-encrypt (abbreviated AtE),
encrypt-then-authenticate (EtA), and encrypt-and-authenticate (E&A), respec-
tively.
This disparity of choices reflects lack of consensus in the cryptography and
security communities as for the right way to apply these functions. But is there
a “right way”, or are all equally secure? Clearly, the answer to this question
depends on the assumptions one makes on the encryption and authentication
functions. However, since protocols like the above are usually built using crypto-
graphic functions as replaceable modules, the most useful form of this question is
obtained by considering both functionalities, encryption and authentication, as
generic cryptographic primitives with well defined (and independent from each
other) properties. Moreover, we want these properties to be commonly achieved
by the known efficient methods of symmetric encryption and authentication, and
expected to exist in future practical realizations of these functions as well.
Specifically, we consider generic MAC functions secure against chosen-messa-
ge attacks and generic symmetric encryption functions secure against chosen-
plaintext attacks. These security properties are the most common notions used
to model the security of these cryptographic primitives. In particular, chosen-
message security of the authentication function allows to use the MAC in the
above protocols independently of the encryption in cases where only integrity
protection is required but not secrecy. As for encryption, chosen-plaintext secu-
rity is the most common property under which encryption modes are designed
and analyzed. We note that a stronger property of encryption is resistance to
chosen-ciphertext attacks; while this property is important against active at-
tacks it is NOT present in the prevalent modes of symmetric encryption (such
as in stream ciphers or CBC mode even when the underlying block cipher is
chosen-ciphertext secure) and therefore assuming this strong property as the
basic secrecy requirement of the encryption function would exclude the use of
such standard efficient mechanisms.
Rather than just studying the above ways of composing encryption and au-
thentication as a stand-alone composed primitive, our focus is on the more com-
prehensive question of whether these methods provide for truly secure commu-
nications (i.e., secrecy and integrity) when embedded in a protocol that runs in
312 H. Krawczyk
a real adversarial network setting (where links are controlled by the attacker,
where some of the parties running the protocol may be corrupted, where multiple
security sessions are run simultaneously and maliciously interleaved, etc.).
Recent results. In a recent work, Canetti and Krawczyk [8] describe a model
of secure channels that encompasses both the initial exchange of a key between
pairs of communicating parties and the use of the resultant shared key for the
application of symmetric encryption and authentication on the transmitted data.
The requirements made from secure channels in this model include protecting the
data’s integrity (in the sense of simulating ideally authenticated channels) and
secrecy (in the sense of plaintext indistinguishability) in the presence of a net-
work attacker with powerful and realistic abilities of the type mentioned above. A
main result in [8] is that if the key is shared securely then applying to the data
the encrypt-then-authenticate method achieves secure channels provided that
the encryption function is semantically secure (or plaintext-indistinguishable)
under a chosen-plaintext attack and the authentication function is a MAC that
resists chosen message attacks. This provides one important answer to the ques-
tions raised above: it proves that encrypt-then-authenticate is a generically secure
method for implementing secure channels.
Our results. In this paper we complement the above result on the encrypt-
then-authenticate method with contrasting results on the other two methods.
The generic insecurity of AtE. We show that the authenticate-then-
encrypt method (as in SSL) is not generically secure under the sole assumption
that the encryption function is secure against chosen plaintext attacks and the
MAC secure against chosen message attacks. We show an example of a simple
encryption function that enjoys perfect (in the sense of Shannon) secrecy against
chosen plaintext attacks and when combined under the AtE method with any
MAC (even a perfect one) results in a totally breakable implementation of se-
cure channels. To illustrate the insecurity of the resultant scheme we show how
passwords (and credit card numbers, etc) transmitted under such a method can
be easily discovered by an active attacker that modifies some of the information
on the links. A major issue to highlight here is that the attack is not against
the authenticity of information but against its secrecy! This result is particu-
larly unfortunate in the case of SSL where protection of this form of sensitive
information is one of the most common uses of the protocol.
The generic insecurity of E&A. The above example is used also to demon-
strate the insecurity of the encrypt-and-authenticate method (as in SSH) where
the same attack (and consequences) is possible. It is worth noting that the E&A
is obviously insecure if one uses a MAC function that leaks information on the
data. However, what our attack shows is that the method is not generically se-
cure even if one assumes a stronger MAC function with secrecy properties as
commonly used in practice (e.g. a MAC realized via a pseudorandom family or
if the MAC’s tag itself is encrypted).
The security of AtE with specific encryption modes. This paper
does not bring just bad news. We also show that the authenticate-then-encrypt
method is secure under two very common forms of encryption: CBC mode (with
The Order of Encryption and Authentication for Protecting Communications 313
an underlying secure block cipher) and stream ciphers (that xor the data with
a random or pseudorandom pad). We provide a (near optimal) quantified secu-
rity analysis of these methods. While these positive results do not resolve the
“generic weakness” of the authenticate-then-encrypt method (and of SSL), they
do show that the common implementations currently in use do result in a secure
channels protocol.
In conjunction, these results show a quite complete picture of the security
(and lack of security) of these methods. They point to the important conclu-
sion that any secure channels protocol designed to work with any combination of
secure encryption (against chosen plaintext attacks) and secure MAC must use
the encrypt-then-authenticate method. On the other hand, protocols that use
the authenticate-then-encrypt method with encryption in either stream cipher
or CBC modes are safe. However, we note the fragility of this last statement:
very simple (seemingly innocuous) changes to the encryption function, including
changes that do not influence the secrecy protection provided by the encryption
when considered as a stand-alone primitive, can be fatal for the security of the
implemented channels. This is illustrated by our example of a perfect cipher
where the sole use of a simple encoding before encryption compromises the se-
curity of the transmitted data, or by the case of CBC encryption where the join
encryption of message and MAC results in a secure protocol but separate en-
cryption of these elements is insecure. Thus, when using a non-generically secure
method one has to be very careful with any changes to existing functions or with
the introduction of new encryption mechanisms (even if these mechanisms are
secure as stand-alone functions).
Open question. Our results demonstrate that chosen-plaintext security is not a
sufficient condition for an encryption scheme to guarantee a secure authenticate-
then-encrypt composition even if the MAC is secure. An interesting open ques-
tion is to find a stronger property that is enjoyed by common modes of encryption
but at the same time is sufficient to ensure the security of the authenticate-then-
encrypt method when combined with a secure MAC. Note that we are looking
for a property that is significantly weaker than chosen-ciphertext security since
the latter is not achieved by most symmetric encryption modes, but also because
our results show that this condition is not really necessary.
Related work. While the interaction between symmetric encryption and au-
thentication is a fundamental issue in the design of cryptographic protocols, this
question seems to have received surprisingly little explicit attention in the cryp-
tographic literature until very recently. In contrast, in the last year we have seen
a significant amount of work dealing with this and related questions.
We already mentioned the work by Canetti and Krawczyk [8] that estab-
lishes the security of the encrypt-then-authenticate method for building secure
channels. Here, we use this result (and some extensions of it) as a basis to de-
rive some of our positive results. In particular, we borrow from that paper the
formalization of the notion of secure channels; a short outline of this model is
presented in Section 2.3 but the reader is referred directly to [8] for the (many
missing) details.
314 H. Krawczyk
A recent, independent, work that deals directly with the ordering of generic
encryption and authentication is Bellare and Namprempre [5]. They study the
same three forms of composition as in this paper but focus on the properties
of the composed function as a stand-alone composed primitive rather than in
the context of its application to secure channels as we do. The main contribu-
tion of [5] is in providing careful quantitative relations and reductions between
different methods and security notions related to these forms of composition.
These results, however, are insufficient in general for claiming the security, or
demonstrating the insecurity, of channels that use these methods for protecting
data. For example, while [5] show that authenticate-then-encrypt is not neces-
sarily CCA-secure, it turns out (by results in [8] and here) that the lack of this
property is no reason to consider insecure the channels that use such a method
(moreover, even the specific non-CCA example in [5] does provide secure chan-
nels). This demonstrates that the consideration of secure channels requires a
finer treatment of the question of encryption/authentication composition (see
discussion at the beginning of Section 4.2). In particular, none of our results is
claimed or implied by [5].
A related subject that received much attention recently is the construction of
encryption modes that provide integrity in addition to secrecy. Katz and Yung
[16] suggest a mode of operation for block ciphers that provides such functional
combination; for their analysis (and for its independent interest) they introduce
the notion of “unforgeable encryption”. A very similar notion is also introduced
in [5] and called there “integrity of ciphertexts” (INT-CTXT). We use this notion
in our work too (see Section 3) as a tool in some of our proofs. In another
recent work, An and Bellare [1] study the use of redundancy functions (with
and without secret keys) as a method for adding authentication to encryption
functions. They show several positive and negative results about the type of
redundancy functions that are required in combination with different forms of
encryption and security notions. Our results concerning the authenticate-then-
encrypt method with stream ciphers and CBC modes contribute also to this
research direction since these results provide sufficient and necessary conditions
on the redundancy functions (viewed as MAC functions) required for providing
integrity to these important modes of encryption. Of particular interest is our
proof that a secure AtE composition that uses CBC encryption requires a strong
underlying MAC; this contradicts a common intuition that (since the message
and MAC are encrypted) weaker “redundancy functions” could replace the full-
fledge MAC.
Recently, Jutla [15] devised an elegant CBC-like scheme that provides in-
tegrity at little cost beyond the traditional CBC method, as well as a parallel
mode of encryption with integrity guarantee (a related scheme is presented in
[26]). We note that while schemes such as [15] can be used to efficiently imple-
ment secure channels that provide secrecy and authenticity, generic schemes like
encrypt-then-authenticate have several design and analysis advantages due to
their modularity and the fact that the encryption and authentication compo-
nents can be designed, analyzed and replaced independently of each other. In
The Order of Encryption and Authentication for Protecting Communications 315
particular, generic schemes can allow for faster implementations than the spe-
cific ones; even today the combination of fast stream ciphers with a fast MAC
function such as UMAC [6] under the encrypt-then-authenticate method would
result in a faster mechanism than the one proposed in [15] which requires the
use of block ciphers. Also, having a separate MAC from encryption allows for
much more efficient authentication in the cases where secrecy is not required.
2 Preliminaries
We informally outline some well-known notions of security for MAC and en-
cryption functions as used throughout the paper, and introduce some notation.
References are given below for formal treatment of these notions. We also sketch
the model of “secure channels” from [8].
attacker successful even in case its forgery includes a queried message as long
as the tag t was not generated by the oracle for that message.) This technical
strengthening of the definition is used in some of our results. This notion appears
(due to similar reasons) also in [5].
produced by the attacker over the communications links, including the injection
or replay of messages, should be detected and rejected by the recipient; in [8] this
is formalized as the “emulation” of an ideally-authenticated channel.) Secrecy
is formalized in the tradition of semantic security: among the many messages
exchanged in a session the attacker chooses a pair of “test messages” of which
only one is sent; the attacker’s goal is to guess which one was sent. Security
is obtained if the attacker cannot guess correctly with probability significantly
greater than 1/2. A network channels protocol is called a secure channels protocol
if it achieves both authentication and secrecy in the sense outlined above.
In this paper we focus on the way the functions snd and rcv are to be defined
to achieve secure channels, i.e. to provide both authentication and secrecy in
the presence of an attacker as above. We say that any of the combinations
EtA, AtE, E&A implements secure channels if when used as the specification of
the snd and rcv functions the resultant protocol is a “secure channels protocol”.
Note that we are not concerned here with a specific key-exchange mechanism,
but rather assume a secure key-exchange protocol [8], and may even assume an
“ideally shared” session key.
X-Y where X represents the goal of the attacker and Y the assumed abilities of
the attacker).
Our main use of the CUF-CPA notion is for proving (see Section 5) that
under certain conditions the AtE composition is secure, i.e., it implements secure
channels. However, the notion of CUF-CPA while sufficient for our purposes is
actually stronger than needed. For example, any scheme ENC that allows for
arbitrary padding of ciphertexts to a length-boundary (e.g., to a multiple of
8-bits) will not be CUF-CPA (since given a ciphertext with padded bits any
change to these bits will result in a different yet valid ciphertext). However,
such a scheme may be perfectly secure in the context of implementing secure
channels (see [8]); moreover, schemes of this type are common in practice. Thus,
in order to avoid an artificial limitation of the schemes that we identify as secure
for implementing secure channels we present next a relaxation of the CUF-CPA
notion that is still sufficient for our purposes (we stress that this is not necessarily
the weakest relaxation for this purpose and other weakenings of the CUF-CPA
notion are possible).
Let ρ be a polynomial-time computable relation on pairs of ciphertexts com-
puted under the encryption function ENC with the property that ρ(c, c0 ) implies
that c and c0 decrypt to the same plaintext. Then we say that the encryption
scheme ENC is CUFρ -CPA if for any valid ciphertext c that the attacker can fea-
sibly produce there exists a ciphertext c0 output by the encryption oracle such
that ρ(c, c0 ). When the relation ρ is not explicitly described we will refer to this
notion as loose ciphertext unforgeability.
For instance, in the above example of a scheme that allows for arbitrary
padding of ciphertexts, if one defines ρ(c, c0 ) to hold if c and c0 differ only on the
padding bits, then the scheme can achieve CUFρ -CPA. We note that while CUF-
CPA implies CCA-security, loose CUF-CPA does not (as the above “padding
example” shows). Indeed, as we pointed out in the introduction (see also Sec-
tion 4.2) CCA-security is not a necessary condition for a MAC/encryption com-
bination to implement secure channels.
In this section we study the security of the three methods, EtA, AtE, E&A, under
generic symmetric encryption and MAC functions where the only assumption is
that the encryption is IND-CPA and the MAC is secure against chosen mes-
sage attacks. Our focus is on the appropriateness of these methods to provide
security to transmitted data in a realistic setting of adversarially-controlled net-
works. In other words, we are interested in whether each one of these methods
when applied to adversarially-controlled communication channels achieve the
goals of information secrecy and integrity. As we will see only the encrypt-then-
authenticate method is generically secure.
320 H. Krawczyk
The results in this subsection are from [8] and we present them briefly for com-
pleteness. We refer the reader to that paper for details. In particular, in the
statement of the next theorem we use the notion of “secure channels” as intro-
duced in the above paper and sketched in Section 2.3.
Following our terminology from Section 2.3, the meaning of the above theorem
is that if in the network channels model of [8] one applies to each transmitted
message the composed function EtA(ENC, MAC) (as the snd function) then the
secrecy and authenticity of the resultant network channels is guaranteed. More
precisely, in proving the above theorem, [8] specify the snd function as follows.
First, a pair of (computationally independent) keys, κa and κe , are derived
from each session key. Then, for each transmitted message, m, a unique message
identifier m-id is chosen (e.g., a sequence number). Finally, the function snd
produces a triple (x, y, z) where x = m-id, y = ENCκe (m), z = MACκa (m-id, y).
On an incoming message (x0 , y 0 , z 0 ) the rcv function verifies the uniqueness of
message identifier x0 and the validity of the MAC tag z (computed on (x0 , y 0 ));
if the checks succeeds y 0 is decrypted under key κe and the resultant plaintext
accepted as a valid message.2
A main contribution of the present paper is in showing (see next subsec-
tions) that a generic result as in Theorem 1 cannot hold for any of the other two
methods, AtE and E&A (even if the used keys are shared with perfect security).
Therefore, any secure channels protocol designed to work with any combination
of secure encryption (against chosen plaintext attacks) and secure MAC must
use the encrypt-then-authenticate method. However, we note in Section 5 that
the above theorem can be extended in the setting of method AtE if one as-
sumes a stronger property on the encryption function; in particular, we show
two important cases that satisfy the added security requirement.
Remark. Note that the authentication of the ciphertext provides plaintext
integrity as long as the encryption and decryption keys used at the sender and
receiver, respectively, are the same. While this key synchrony is implicit in our
analytical models [8], a key mismatch can happen in practice. A system con-
cerned with detecting such cases can check the plaintext for redundancy in-
formation (such redundancy exists in most applications: e.g., message formats,
non-cryptographic checksums, etc.). If the redundancy entropy is significant then
a key mismatch will corrupt this redundancy with high probability.
2
Protocols that use a synchronized counter as the message identifier, e.g. SSL, do not
need to transmit this value; yet they must include it under the MAC computation
and verification. If transmitted, identifiers are not encrypted under ENCκe since
they are needed for verifying the MAC value before the decryption is applied.
The Order of Encryption and Authentication for Protecting Communications 321
1. if bit xi = 0 then the pair of bits (x02i−1 , x02i ) is set to (0, 0);
2. if bit xi = 1 then the pair of bits (x02i−1 , x02i ) is set to (0, 1) or to (1, 0) (by
arbitrary choice of the encrypting party).
3
Just append an arbitrary one-bit pad to the ciphertext and discard the bit before
decryption.
322 H. Krawczyk
The encryption function ENC is then applied to x0 . For decrypting y = ENC ∗ (x)
one first applies the decryption function of ENC to obtain x0 which is then
decoded into x by mapping a pair (0, 0) into 0 and either pair (0, 1) or (1, 0) into
1. If x0 contains a pair (x02i−1 , x02i ) that equals (1, 1) the decoding outputs the
invalidity sign ⊥.
The attack when only encryption is used. For the sake of presentation
let’s first assume that only ENC ∗ is applied to the transmitted data (we will then
treat the AtE case where a MAC is applied to the data before encryption). In
this case when an attacker A sees a transmitted ciphertext y = ENC ∗ (x) it can
learn the first bit x1 of x as follows. It intercepts y, flips (from 0 to 1 and from
1 to 0) the first two bits (y1 , y2 ) of y, and sends the modified ciphertext y 0 to its
destination. If A can obtain the information of whether the decryption output
a valid or invalid plaintext then A learns the first bit of x. This is so since, as
it can be easily seen, the modified y 0 is valid if and only if x1 = 1. (Remember
that we are using a stream cipher to encrypt x0 .) Clearly, this breaks the secrecy
of the channel (note that the described attack can be applied to any of the bits
of the plaintext). One question that arises is whether it is realistic to assume
that the attacker learns the validity or invalidity of the ciphertext. The answer
is that this is so for many practical applications that will show an observable
change of behavior if the ciphertext is invalid (in particular, many applications
will return an error message in this case).
To make the point even clearer consider a protocol that transmits passwords
and uses ENC ∗ to protect passwords over the network (this is, for example, one
of the very common uses of SSL). The above attack if applied to one of the
bits of the password (we assume that the attacker knows the placement of the
password field in the transmitted data) will work as follows. If the attacked bit
is 1 then the password authentication will succeed in spite of the change in the
ciphertext. If it is 0 the password authentication will fail. In this case success or
failure is reported back to the remote machine and then learned by the attacker.
In applications where the same password is used multiple times (again, as in
many applications protected by SSL) the attacker can learn the password bit-
by-bit. The same can be applied to other sensitive information such as to credit
card numbers where a mistake in this number will be usually reported back and
the validity/invalidity information will be learned by A.
The attack against the AtE(ENC ∗ , MAC) scheme. Consider now the case
of interest for us in which the encryption is applied not just to the data but also
to a MAC function computed on this data. Does the above attack applies? The
answer is YES. The MAC is applied to the data before encoding and encryption
and therefore if the original bit is 1 the change in ciphertext will result in the
same decrypted plaintext and then the MAC check will succeed. Similarly, if the
original bit is 0 the decrypted plaintext will have a 1 instead and the MAC will
fail. All the attacker needs now is the information of whether the MAC succeeded
or not. Note that in a sense the MAC just makes things worse since regardless
of the semantics of the application a failure of authentication is easier to learn
The Order of Encryption and Authentication for Protecting Communications 323
by the attacker: either via returned error messages, or by other effects on the
application that can be observed by the attacker.
Discussion: what have we learned? The example using ENC ∗ is certainly
sufficient to show that the method AtE can be insecure even if the encryption
function is IND-CPA secure and the MAC unforgeable (note that this conclu-
sion does not depend on any specific formalization of secure communications;
any reasonable definition of security must label the above protocol as insecure).
Therefore, if one wants to claim the security of AtE(ENC, MAC) for particular
functions ENC and MAC one needs to analyze the combination as a whole or
use stronger or specific properties of the encryption function (see Section 5). An
interesting issue here is how plausible it is that people will ever use an encryp-
tion scheme such as ENC ∗ . We note that although this scheme does not appear
to be the most natural encryption mechanism some (equally insecure) variants
of it may arise in practice. First the application of an encoding to a plaintext
before encryption is used many times for padding and other purposes and is a
particularly common practice in public key encryption algorithms. Second, en-
codings of this type can be motivated by stronger security requirements: e.g. to
prevent an attacker from learning the exact length of transmitted messages or
other traffic analysis information. In this case one could use an encoding similar
to ENC ∗ but with variable size codes. (Just to make the point: note that a good
example of traffic analysis arises in the above examples where the attacker has a
lot to learn from error-reporting messages; even in cases where this information
is encrypted it can usually be learned through the analysis of packet lengths,
etc.) Another setting where plaintext encoding is introduced in order to improve
security is for combating timing and power analysis attacks.
The bottom line is that it is highly desirable to have schemes that are robust
to generic composition and are not vulnerable when seemingly innocuous changes
are made to an algorithm (or when a new more secure or more efficient algorithm
or mode is adopted)4 .
That is, under the assumptions on the ENC and MAC functions as stated in
the Theorem, applying the function AtE(ENC, MAC) to information transmit-
ted over adversarially-controlled links protects the secrecy and integrity of this
information. More specifically, the Theorem implies the following definition of
the function snd in the network channels model of [8] (see Section 2.3). For each
transmitted message m with unique message identifier m-id the function snd
produces a pair (x, y) where x = m-id and y = ENCκe (m, MACκa (m-id, m)),
where the keys κe and κa are computationally independent keys derived from
the session key. On an incoming message (x0 , y 0 ) the rcv function verifies the
uniqueness of message identifier x0 , decrypts y 0 under key κe , verifies the valid-
ity of the decrypted MAC tag, and if all tests succeed the recipient accepts the
decrypted message as valid. We note that if the message identifier is maintained
in synchrony by sender and receiver (as in SSL) then there is no need to send
its value over the network. On the other hand, if sent, the message identifier can
be encrypted too. The above Theorem holds in either case.
We stress that the Theorem holds for strict CUF-CPA as well as for the
relaxed “loose” version (see Section 3).
Based on this Theorem, and on the fact that OTP and CBC are IND-CPA
[2], we can prove the security of AtE under OTP and CBC by showing that
in this case the resultant AtE scheme is CUF-CPA. The rest of this section is
devoted to prove these facts.
The OTP scheme. Let F be a family of functions with domain {0, 1}` and
0
range {0, 1}` . We define the encryption scheme OT P (F ) to work on messages
of length at most `0 as follows. A key in the encryption scheme is a description
The Order of Encryption and Authentication for Protecting Communications 325
clearly unwanted in a secure protocol. (This weakness allows for actual attacks
on practical applications, in particular several forms of “dictionary attacks”5 )
In addition, this observation shows another weakness of the encrypt-and-
authenticate method (Section 4.3) since it exhibits the insecurity of this method
even under the use of a standard stream cipher for encryption and even when
the MAC tag is encrypted.
Using standard techniques one can show that the theorem holds also for a
CBC scheme realized via a family of pseudorandom permutations if we add to
the above probability bound the distinguishability distance between the pseudo-
random family and a truly random function. However, we note, that in this case
the distinguisher not only gets access to an oracle that computes the function
but also to an oracle that computes the inverse function (that is, we need to
assume the family of permutations to be “super pseudorandom” [22]).
Remark (Tightness: the necessity of the bound EM (q ∗ )). The most “ex-
pensive” term in MAC security in the expression of the theorem is the value
EM (q ∗ ) since other terms only require protection against one-query or zero-
query. Since an attacker F does not get to see any of the MAC values one could
wonder why such a strong security from the MAC is required. We show here
that, in contrast to the AtE(OTP$ , MAC) case, this requirement is unavoidable.
Specifically, we present for any i = 0, 1, 2, . . ., an example of a MAC function
MAC that is secure against i queries but yields an insecure AtE(CBC$ , MAC)
scheme with q = i + 1 (and p∗ = 2i + 4). We describe the example for i = 1, the
extension to other values is straightforward.
Let {gk }k be a family of pseudorandom functions from ({0, 1}` )∗ to {0, 1}`/2 .
Define a MAC family MAC 0 on the same domain as {gk }k , and with `-bit outputs
as follows: MAC 0(k1 ,k2 ) (x) = (gk1 (x), gk2 (gk1 (x))). Define a second MAC family
MAC that uses the same set of keys as MAC 0 and such that on key (k1 , k2 ):
1. if the input x contains two `-bit blocks bi and bj , i < j, such that bi 6= bj
and both have the property that applying gk2 to the first half of the block
yields the second half of the block then output bi as the MAC value for x.
2. otherwise, output MAC 0(k1 ,k2 ) (x)
It is easy to see that the so defined MAC has security of roughly 2`/2 against single
queries (but is totally insecure after two queries since the output of MAC provides
the block format that makes the authentication tag “trivial”). We show that
it yields a AtE(CBC$ , MAC) scheme whose ciphertexts are forgeable after two
queries even if the encryption permutation f is purely random. The ciphertext
forger F against AtE(CBC$ , MAC) proceeds as follows:
1. Choose two arbitrary one-block long plaintexts x1 , x2 as the two queries.
2. Let the responses y1 , y2 be the triples: (r1 , c1 = f (r1 ⊕ x1 ), m1 = f (c1 ⊕
MAC(x1 ))) and (r2 , c2 = f (r2 ⊕ x2 ), m2 = f (c2 ⊕ MAC(x2 ))).
3. Output forgery y ∗ = (c1 , m1 , c2 , m2 , c1 , m1 ).
A simple examination shows that y ∗ is a valid ciphertext.
One consequence of the above lower bound on the required security of MAC
is that, somewhat surprisingly, the MAC function cannot be replaced by a sim-
ple combinatorial hash function, such as one enjoying AXU (see remark on
“redundancy functions” in Section 5.2). Indeed, had AXU been sufficient then
one-query resistant MACs would suffice too (since one-query resistance implies
AXU ). We note that a modified CBC-like mode for which AXU is sufficient is
presented in [1].
In contrast to the above lower bound, we do not know if the term qEM (0) in
the bound of the theorem is necessary or not; we do not have so far an example
The Order of Encryption and Authentication for Protecting Communications 329
that shows this term to be unavoidable. Thus, it may well be the case that a
more careful analysis could lower the factor q (actually, even with the current
analysis it is possible to replace the factor q with q ∗ by a slightly more involved
argument).
Remark (Non-adaptive security of MAC suffices). It is interesting to
note that the requirement from the security of the MAC in Theorem 4 is for non-
adaptive queries only. This can be seen by inspecting the proof of the theorem,
where the MAC forger G that we build makes non-adaptive queries only.
Remark (Beware of “slight changes”). Similarly to the case of AtE(OTP$ ,
MAC) the proof of Theorem 4 uses in an essential way the fact that the encryption
is done as a whole on the concatenated message and MAC. It is easy to build a
ciphertext forgery attack in case the encryption of the plaintext and of the MAC
tag are done separately (i.e. with independently chosen IVs).
References
26. P. Rogaway, M. Bellare, J. Black, and T. Krovetz, “OCB Mode”, Cryptology ePrint
Archive, Report 2001/026.
27. T. Ylonen, T. Kivinen, M. Saarinen, T. Rinne, and S. Lehtinen, “SSH Transport
Layer Protocol”, January 2001, draft-ietf-secsh-transport-09.txt.
Forward-Secure Signatures with Optimal Signing
and Verifying
1 Introduction
valid into T time periods, and using a different secret key in each time period
(while the public key remains fixed). Each subsequent secret key is computed
from the current secret key via a key update algorithm. The time period during
which a message is signed becomes part of the signature. Forward security prop-
erty means that even if the current secret key is compromised, a forger cannot
forge signatures for past time periods.
Prior Schemes. Prior forward-secure signature schemes can be divided into
two categories: those that use arbitrary signature schemes in a black-box manner,
and those that modify specific signature scheme.
In the first category, the schemes use some method in which a master public
key is used to certify (perhaps via a chain of certificates) the current public key
for a particular time period. Usually, these schemes require increases in storage
space by noticeable factors in order to maintain the current (public) certificates
and the (secret) keys for issuing future certificates. They also require longer
verification times than ordinary signatures do, because the verifier needs to verify
the entire certificate chain in addition to verifying the actual signature on the
message. There is, in fact, a trade-off between storage space and verification
time. The two best such schemes are the tree-based scheme of Bellare and Miner
[BM99]1 (requiring storage of about log2 T secret keys and non-secret certificates,
and verification of about log2 T ordinary signatures) and the scheme of Krawczyk
[Kra00] (requiring storage of T non-secret certificates, and verification of only 2
ordinary signatures).
In the second category, there have been two schemes proposed so far (both
in the random oracle model): the scheme of Bellare and Miner [BM99] based on
the Fiat-Shamir scheme [FS86], and the scheme of Abdalla and Reyzin [AR00]
based the 2t -th root scheme [OO88,OS90,Mic94]. While needing less space than
the schemes in the first category, both [BM99] and [AR00] require signing and
verification times that are linear in T .
Our Results. We propose a scheme in the second category, based on one of the
most efficient ordinary signature schemes, due to Guillou-Quisquater [GQ88]. It
uses just two modular exponentiations with short exponents for both signing
and verifying.
Ours is the first forward-secure scheme where both signing and verifying are
as efficient as the underlying ordinary signature scheme. Moreover, in our scheme
the space requirements for keys and signatures are nearly the same as those in
the underlying signature scheme (for realistic parameter values, less than 50%
more).
The price of such efficient signing and verifying and storage is in the running
times of our key generation and update routines: both are linear in T (however,
so is the key generation and non-secret storage in the scheme of [Kra00]; as well
as the key generation, signing and verifying in the Fiat-Shamir-based scheme
of [BM99] and the scheme of [AR00]). However, key generation and update are
1
Some improvements to tree-based scheme of [BM99] (not affecting this discussion)
have been proposed in [AR00] and [MI].
334 G. Itkis and L. Reyzin
(presumably) performed much less frequently than signing and verifying, and
can be performed off-line as long in advance as necessary. Moreover, we show
that, if we are willing to tolerate secret storage of 1 + log2 T values, we can
reduce the running time of the key update algorithm to be logarithmic in T
without affecting the other components (this, rather unexpectedly, involves an
interesting application of pebbling). For realistic parameter values, the total
storage requirements, even with these additional secrets, are still less than in all
prior schemes; the only exception is the [AR00] scheme, which has very inefficient
signing and verifying.
Our scheme is provably secure in the random oracle model based on a variant
of the strong RSA assumption (precisely defined in Section 2.2).
2 Background
2.1 Definitions
This section closely follows the first formal definition of forward-secure signatures
proposed by Bellare and Miner [BM99]. Their definition, in turn, is based on
the Goldwasser, Micali and Rivest’s [GMR88] definition of (ordinary) digital
signatures secure against adaptive chosen message attacks.
Key Evolution. The approach taken by forward-secure schemes is to change
the secret key periodically (and require the owner to properly destroy the old
secret key2 ). Thus we consider time to be divided into time periods; at the end
of each time period, a new secret key is produced and the old one is destroyed.
The number of the time period when a signature was generated is part of the
signature and is input to the verification algorithm; signatures with incorrect
time periods should not verify.
Of course, while modifying the secret key, one would like to keep the public
key fixed. This can, for example, be achieved by use of a “master” public key,
which is somehow used to certify a temporary public key for the current time
period (note however, than one needs to be careful not to keep around the
corresponding “master” secret key—its presence would defeat the purpose of
forward security) . The first simple incarnation of this approach was proposed
by [And97]; a very elegant tree-based solution was proposed by [BM99]; another
approach, based on generating all of the certificates in advance, was put forward
by [Kra00]. However, in general, one can conceive of schemes where the public
2
Obviously, if the key owner does not properly destroy her old keys, an attacker
can obtain them and thus forge the “old” signatures. Moreover, if the key owner
does not detect that the current key was leaked, the attacker may hold on to the
compromised key for a few time periods, and forge “old” signatures then. Indeed,
proper deletion of the old keys and proper intrusion detection are non-trivial tasks.
However, it is reasonable to insist that the key owner perform such deletion and
intrusion detection—certainly more reasonable than insisting that she guarantee the
secrecy of her active keys through resistance to any intrusion attack.
Forward-Secure Signatures with Optimal Signing and Verifying 335
key stays fixed but no such certificates of per-period public keys are present (and,
indeed, such schemes are proposed in [BM99,AR00], as well as in this paper).
The notion of a key-evolving signature scheme captures, in full generality,
the idea of a scheme with a fixed public key and a varying secret key. It is, es-
sentially, a regular signature scheme with the additions of time periods and the
key update algorithm. Note that this notion is purely functional: security is ad-
dressed separately, in the definition of forward security (which is the appropriate
security notion for key-evolving signature schemes).
Thus, a key-evolving digital signature scheme is a quadruple of algorithms,
FSIG = (FSIG.key, FSIG.sign, FSIG.ver, FSIG.update), where:
signature on a message M of his choice for a time period j < b. The forger is
considered to be successful if the signature is valid and the pair (M, j) was not
queried during cma.
R
Formally, let the forger F = hF.cma, F.forgei. For a key pair (PK , SK 0 ) ←
FSIG.key(k, . . . , T ), F.cma, given P K and T , outputs (CM, b), where b is the
break-in time period and CM is a set of adaptively chosen message-period
pairs (the set of signatures sign(CM ) of the current set CM is available to
F at all times, including during the construction of CM )3 . Finally, F.forge out-
puts hM, j, sigi ← F.forge(CM, sign(CM ), SKb ). We say that F is successful
if hM, ji 6∈ CM, j < b, and FSIG.verPK (M, hj, sigi) = 1. (Note: formally, the
components of F can communicate all the necessary information, including T
and b, via CM .)
Define Succfwsig (FSIG[k, T ], F ) to be the probability (over coin tosses of F
and FSIG) that F is successful. Let the function InSecfwsig (FSIG[k, T ], t, qsig ) (the
insecurity function) be the maximum, over all algorithms F that are restricted
to running time t and qsig signature queries, of Succfwsig (FSIG[k, T ], F ).
The insecurity function above follows the “concrete security” paradigm and
gives us a measure of how secure or insecure the scheme really is. Therefore, we
want its value to be as small as possible. Our goal in a security proof will be to
find an upper bound for it.
The above definition can be translated to the random oracle model in a stan-
dard way [BR93]: by introducing an additional security parameter 1l , allowing
all algorithms the access to the random oracle H : {0, 1}∗ → {0, 1}l , and consid-
ering qhash , the number of queries to the random oracle, as one more parameter
for the forger.
2.2 Assumption
We use a variant of the strong RSA assumption (to the best of our knowledge,
first introduced independently in [BP97] and [FO97]), which postulates that it is
to compute any root of a fixed value modulo a composite integer. More precisely,
the strong RSA assumption states that it is intractable, given n that is a product
of two primes and a value α in Zn∗ , to find β ∈ Zn∗ and r > 1 such that β r = α.
However, we modify the assumption in two ways. First, we restrict ourselves
to the moduli that are products of so-called “safe” primes (a safe prime is one
of the form 2q + 1, where q itself is a prime). Note that, assuming safe primes
3
Note that the [BM99] definition, which captures what F can do in practice, allows
the messages-period pairs to be added to CM only in the order of increasing time
periods and without knowledge of any secret keys. However, allowing the forger to
construct CM in arbitrary order, and even to obtain SKb in the middle of the CM
construction (so that some messages be constructed by the forger with the knowledge
of SKb ) would not affect our (and their) results. Similarly, the forger can be allowed
to obtain more than one secret key — we only care about the earliest period b for
which the secret key is given to the forger. So, the forger may adaptively select
some messages which are signed for him, then request some period’s secret key; then
adaptively select more messages and again request a key, etc.
Forward-Secure Signatures with Optimal Signing and Verifying 337
are frequent, this restriction does not strengthen the assumption. Second, we
upperbound the permissible values or r by 2l+1 , where l is a security parameter
for our scheme (in an implementation, l will be significantly shorter than the
length k of the modulus n).
More formally, let A be an algorithm. Consider the following experiment.
Experiment Break-Strong-RSA(k, l, A)
Randomly choose two primes q1 and q2 of length dk/2e − 1 each
such that 2q1 + 1 and 2q2 + 1 are both prime.
p1 ← 2q1 + 1; p2 ← 2q2 + 1; n ← p1 p2
Randomly choose α ∈ Zn∗ .
(β, r) ← A(n, α)
If 1 < r ≤ 2l+1 and β r ≡ α (mod n) then return 1 else return 0
The following two simple statements will be helpful later. They were first pointed
out by Shamir [Sha83] in the context of generation of pseudorandom sequences
based on the RSA function.
This idea is quite simple. However, we still need to address the following two
issues: (i) how the signer computes the si ’s, and (ii) how both the signer and the
verifier obtain the ei ’s.
Computing si ’s. Notice that if the signer were required to store all the si ’s, this
scheme would require secret storage that is linear in T . However, this problem
can be easily resolved. Let fi = ei · ei+1 · . . . · eT . Let ti be such that tfi i ≡ 1/v
(mod n). During the j-th time period, the signer stores sj and tj+1 . At update
fj+2 ej+1
time, the signer computes sj+1 = tj+1 mod n and tj+2 = tj+1 mod n. This
allows secret storage that is independent of T : only two values modulo n are
stored at any time (the fi and ei values are not stored—see below). It does,
however, require computation linear in T at each update, because of the high
cost of computing sj+1 from tj+1 .
We can reduce the computation at each update to be only logarithmic in T
by properly utilizing precomputed powers of tj+1 . This will require us, however,
to store 1 + log2 T secrets instead of just two. This optimization concerns only
the efficiency of the update algorithm and affects neither the other components
of the scheme nor the proof of security, and is therefore presented separately in
Section 4.2.
Obtaining ei ’s. In order for the scheme to be secure, the ei ’s need to be
relatively prime with each other4 and with φ(n), and greater than 2l . The signer
can therefore generate the ei ’s simply as distinct (l + 1)-bit primes. Of course,
4
In fact, this requirement can be relaxed. We can allow the ei ’s not to be pairwise
relatively prime, as long as we redefine fi as fi = lcm(ei , ei+1 , . . . , eT ), and require
that ei be relatively prime with φ(n) and ei / gcd(ei , fi+1 ) > 2l . However, we see no
advantages in allowing this more general case; the disadvantage is that the ei ’s will
have to be longer to satisfy the last requirement, and thus the scheme will be less
efficient.
340 G. Itkis and L. Reyzin
to store all the ei ’s would require linear in T (albeit public) storage. However,
the signer need only store ej for the current time period j, and generate anew
the other ei ’s for i > j during key update. This works as long as the signer uses
a deterministic algorithm for generating primes: either pseudorandom search or
sequential search from fixed starting points. The fact that ei ’s are not stored but
rather recomputed each time slows down the update algorithm only (and, as we
show in Section 3.3, not by much). Note that the way we currently described
the update algorithm, for the update at time period j the signer will need to
compute ej+1 , . . . , eT . With the optimization of Section 4.2, however, only at
most log2 T of the ei ’s will need to be computed at each update.
We have not yet addressed the issue of how the verifier gets the ei ’s. Of
course, it could simply generate them the same way that the signer does during
each key update. However, this will slow down verification, which is undesirable.
The solution is perhaps surprising: the verifier need not know the “true” ei ’s
at all! The value of ej can be simply included by the signer in every signature
for time period j. Of course, a forger is under no obligation to include the true
ej . Therefore, to avoid ambiguity, we will denote by e the value included in a
signature. It may or may not actually equal ej .
For the security of the scheme, we require that e satisfy the following require-
ments:
The first two conditions can be easily enforced by the verifier. The third condition
can be enforced by having n be a product of two “safe” primes (primes p1 , p2 that
are of the form pi = 2qi + 1, where q is prime). Then the verifier simply needs
to check that e is odd (then it must be relatively prime with φ(n)—otherwise,
it would be divisible by q1 , q2 or q1 q2 , which would imply that the forger could
factor n).
It is the fourth condition that presents difficulties. How can the verifier check
the that e is relatively prime with eb , . . . , eT without knowing b and the actual
values of eb , . . . , eT ? We accomplish this by splitting the entire interval between
2l and 2l+1 into T consecutive buckets of size 2l /T each, and having each ei
be a prime from the i-th bucket. Then the verifier knows that the actual values
ej+1 , . . . , eT are all at least 2l (1 + j/T ) and prime. Thus, as long as e in the
signature for time period j is less than 2l (1+j/T ), it is guaranteed to be relatively
prime with ej+1 , . . . , eT , and hence with eb , . . . , eT (because b > j).
Thus, to enforce the above four conditions, the verifier needs to check is that
e is odd, is between 2l and 2l (1 + j/T ) and is included in the hash computation.
Forward-Secure Signatures with Optimal Signing and Verifying 341
3.3 Efficiency
algorithm IR.key(k, l, T )
Generate random (dk/2e − 1)-bit primes q1 , q2 s.t. pi = 2qi + 1 are both prime
n ← p1 p2
R
t1 ← Zn∗
Generate primes ei s.t. 2l (1 + (i − 1)/T ) ≤ ei < 2l (1 + i/T ) for i = 1, 2, . . . , T .
(This generation is done either deterministically or using a small seed seed
and H as a pseudorandom function.)
f2 ← e2 · . . . · eT mod φ(n), where φ(n) = 4q1 q2
s1 ← tf12 mod n
v ← 1/se11 mod n
t2 ← te11 mod n
SK 1 ← (1, T, n, s1 , t2 , e1 , seed )
PK ← (n, v, T )
return (SK 1 , PK )
algorithm IR.update(SK j )
Let SK j = (j, T, n, sj , tj+1 , ej , seed )
if j = T then return
Regenerate ej+1 , . . . , eT using seed
ej+2 ·...·eT ej+1
sj+1 ← tj+1 mod n; tj+2 ← tj+1 mod n
return SK j+1 = (j + 1, T, n, sj+1 , tj+2 , ej+1 , seed )
algorithm IR.sign(SK j , M )
Let SK j = (j, T, n, sj , tj+1 , ej , seed )
R
r ← Zn∗
y ← rej mod n
σ ← H(j, ej , y, M )
z ← rsσ mod n
return (z, σ, j, ej )
of T in the cost of update by the factor of log2 T , to get update at the cost of
O((l4 + k 2 l) log T ) (or, if optimization of Section 4.1 is additionally applied,
O((k 2 l + l2 + log4 T ) log T )).
Sizes. All the key and signature sizes are comparable to those in the ordinary
GQ scheme.
The public key has l+1 fewer bits than the GQ public key, and the signatures
have l + 1 more bits, because e is included in the signature rather than in the
public key. In addition, both the public key and the signature have log2 T more
bits in order to accommodate T in the public key and the current time period in
the signature (this is necessary in any forward-secure scheme). Thus, the total
public key length is 2k + log2 T bits, and signature length is k + 2l + 1 + log2 T
bits. Optimization of Section 4.1 shortens the signatures slightly, replacing l + 1
of the signature bits with about log2 T bits.
The secret key is k + 2 log2 T + |seed | bits longer than in the GQ scheme in
order to accommodate the current time period j, the total time periods T , the
value tj+1 necessary to compute future keys and the seed necessary to regenerate
the ei ’s for i > j. Thus, the total secret key length is 3k + l + 1 + |seed | + 2 log2 T
bits (note that only 2k of these bits need to be kept secret). If the optimization
of Section 4.2 is used, then the secret contains an additional k(log2 T − 1) bits,
all of which need to be kept secret.
3.4 Security
The exact security of our scheme (in the random oracle model) is close to the
exact security of the schemes of [BM99,AR00]. The proof is also similar: it closely
follows the one in [AR00], combining ideas from [PS96,BM99,MR99].
First, we state the following theorem that will allow us to upper-bound the
insecurity function. The full proof of the theorem is very similar to the one in
[AR00] and is contained in Appendix A.
Theorem 1. Given a forger F for IR[k, l, T ] that runs in time at most t, asking
qhash hash queries and qsig signing queries, such that Succfwsig (IR[k, l, T ], F ) ≥ ε,
we can construct an algorithm A that, on input n (a product of two safe primes),
α ∈ Zn∗ and l, runs in time t0 and outputs (β, r) such that 1 < r ≤ 2l+1 and
β r ≡ α (mod n) with probability ε0 , where
t0 = 2t + O(lT (l2 T 2 + k 2 ))
2
0 ε − 22−k qsig (qhash + 1) ε − 22−k qsig (qhash + 1)
ε = − .
T 2 (qhash + 1) 2l T
Proof. To compute the insecurity function, simply solve for (ε − 22−k qsig (qhash +
1))/T the quadratic equation in Theorem 1 that expresses ε0 in terms of ε to get
small primes are more frequent and because primality tests are faster for shorter
lengths.5
We cannot use small primes directly because, as already pointed out, the ei ’s
must have at least l + 1 bits. However, we can use powers of small primes that
are at least l + 1 bits. That is, we let i be a small prime, π(i ) be such that
π( ) π( )
i i > 2l and ei = i i . As long as π is a deterministic function of its input
(for example, π() = l/blog2 c), we can replace e in the signature by , and
have the verification algorithm compute e = π() .
Of course, the verification algorithm still needs to ensure that e is relatively
prime to φ(n) and to eb , . . . , eT . This is accomplished essentially the same way
as before: we divide a space of small integers into T consecutive buckets of some
size S each, and have each i come from the i-th bucket: i ∈ [(i − 1)S, iS).
Then, when verifying a signature for time period j, it will suffice to check that
is odd and comes from a bucket no greater than the j-th: < jS. It will be then
relatively prime to b , . . . , T , and therefore e = π() will be relatively prime to
eb , . . . , T .
When we used large primes, we simply partitioned the space of (l + 1)-bit
integers into large buckets, of size 2l /T each. We could have used smaller buckets,
but this offered no advantages. However, now that we are using small primes, it
is advantageous to make the bucket size S as small as possible, so that even the
largest prime (about T S) is still small.
Thus, to see how much this optimization speeds up the search for the ei ’s, we
need to upper-bound S. S needs to be picked so that there is at least one prime
in each interval [(i − 1)S, iS) for 1 ≤ i ≤ T . It is reasonable to conjecture that
the distance between two consecutive primes Pn and Pn+1 is at most (ln2 Pn )
[BS96]. Therefore, because the largest prime we are looking for is smaller than
T S, S should be such that S > ln2 T S. It is easy to see that S = 4 ln2 T
will work for T ≥ 75. (As a practical matter, computation shows that, for any
reasonable value of T , the value of S will be quite small: S = 34 will work for
T = 1000, because the largest gap between the first 1000 primes is 34; by the
same reasoning, S = 72 will work for T = 104 , S = 114 will work for T = 105 ,
and S = 154 will work for T = 106 .) Thus, the i ’s are all less than 4T ln2 T ,
and therefore the size of each i is O(log T ) bits. Thus, finding and testing the
primality of the i ’s and then computing the ei ’s takes O(T (log4 T + l2 )) time,
as opposed to O(T l4 ) without this optimization.
The resulting scheme will slightly increase verification time: the verifier needs
to compute e from . This takes time O(l2 ) (exponentiating any quantity to
obtain an (l +1)-bit quantity takes time O(l2 )), which is lower order than O(k 2 l)
verification time. Moreover, it will be impossible to get ei to be exactly l + 1
bits (it will be, on average, about l + (log2 T )/2 bits). This will slow down both
verification and signing, albeit by small amounts. Therefore, whether to use the
optimization in practice depends on the relative importance of the speeds of
signing and verifying vs. the speeds of key generation and update.
5
In fact, when a table of small primes is readily available (as it often is for reasonably
small T ), no searching or primality tests are required at all.
346 G. Itkis and L. Reyzin
This recursive algorithm can essentially be the update algorithm for our
scheme: at every call to update, we run the recursive algorithm a little further,
until it produces the next output. We then stop the recursive algorithm, save
its stack (we need to save only log2 T secrets, because the remaining one is the
output of the algorithm), and run it again at the next call to update. A little
more care needs to be taken to ensure forward security: none of the sets stored
at time period i should contain elements less than i. This can be done by simply
removing i from all sets that still contain in (and that are still needed) during
the i-th update. The total amount of work still does not change.
Because there are T calls to update (if we include the initial key generation),
the amortized amount of work per update is exactly log2 T exponentiations.
However, some updates will be more expensive than others, and update will still
cost Θ(T ) exponentiations in the worst case. We thus want to improve the worst-
case running time of our solution without increasing the (already optimal) total
running time. This can be done through pebbling techniques, described below.
Pebbling. Let each subset of ZT correspond to a node in a graph. Connect
two sets by a directed edge if the destination can be obtained from the source by
dropping a single element. The resulting graph is the T -dimensional hypercube,
with directions on the edges (going from higher-weight nodes to lower-weight
nodes). We can traverse the graph in the direction given by the edges. We start
at the node corresponding to ZT , and need to get to all the nodes corresponding
to the singleton sets {i}.
One way to accomplish this task is given by the above recursive algorithm,
which has the minimal total number of steps. However, we would like to minimize
not only the total number of steps, but also the number of steps taken between
any two “consecutive” nodes {i} and {i + 1}, while keeping the memory usage
low. We will do this by properly arranging different branches of the recursive
algorithm to run in parallel.
To help visualize the algorithm, we will represent each set stored as a pebble
at the corresponding node in a graph. Then removing an element from a set cor-
responds to moving the corresponding pebble down the corresponding directed
edge. The original set may be preserved, in which case a “clone” of a pebble is
left at the original node, or it may be discarded, in which case no such clone is
left. Our goal can be reformulated as follows in terms of pebbles: find a pebbling
strategy that, starting at the node ZT , reaches every node {i} in order, while
minimizing the number of pebbles used at any given time (this corresponds to
total secret storage needed), the total number of pebble moves (this corresponds
to total number of exponentiations needed), and the number of pebble moves be-
tween any two consecutive hits of a singleton (this corresponds to the worst-case
cost of the update algorithm).
The Pebbling Algorithm. We shall assume that T > 1 is a power of 2. The
following strategy uses at most 1 + log2 T pebbles, takes T log2 T total moves
(which is the minimum possible), and requires at most log2 T moves per update.
Each pebble has the following information associated with it:
1. its current position, represented by a set P ⊆ ZT (P will always be a set of
consecutive integers {Pmin , . . . , Pmax });
348 G. Itkis and L. Reyzin
Security. It is, of course, crucial to ensure that the above changes to the update
algorithm do not compromise the security of our scheme. It suffices to prove that
350 G. Itkis and L. Reyzin
every secret stored following the clock tick i can be derived in polynomial time
from ti+1 . In other words, it suffices to prove that, following the clock tick i, no
pebble’s position P satisfies i ∈ P . This can be easily done by induction, as long
as each pebble moves towards its goal by removing the smallest possible element
from its position P (the inductive step is proved as follows: if 2T is the total
number of time periods, then the single pebble responsible for the second half
of the singletons will have removed {1, . . . , T /2} from its position following the
clock tick 1, and will have removed {1, . . . , T } following the clock tick T /2 + 1).
References
[And97] Ross Anderson. Invited lecture. Fourth Annual Conference on Computer
and Communications Security, ACM, 1997.
[AR00] Michel Abdalla and Leonid Reyzin. A new forward-secure digital signature
scheme. In Advances in Cryptology—ASIACRYPT 2000, Springer-Verlag
2000. Full version available from the Cryptology ePrint Archive, record
2000/002, http://eprint.iacr.org/.
[BM99] Mihir Bellare and Sara Miner. A forward-secure digital signature scheme.
In Advances in Cryptology—CRYPTO ’99, Springer-Verlag, 1999. Revised
version is available from http://www.cs.ucsd.edu/mihir/.
[BP97] Niko Barić and Birgit Pfitzmann. Collision-free accumulators and fail-
stop signature schemes without trees. In Advances in Cryptology—
EUROCRYPT 97, Springer-Verlag, 1997.
[BR93] Mihir Bellare and Phillip Rogaway. Random oracles are practical: A
paradigm for designing efficient protocols. In Proceedings of the 1st
ACM Conference on Computer and Communication Security, pages 62–73,
November 1993. Revised version appears in
http://www-cse.ucsd.edu/users/mihir/papers/crypto-papers.html.
[BS96] Eric Bach and Jeffrey Shallit. Algorithmic Number Theory. MIT Press,
Cambridge, MA, 1996.
[FO97] Eiichiro Fujisaki and Tatsuaki Okamoto. Statistical zero knowledge proto-
cols to prove modular polynomial relations. In Burton S. Kaliski Jr., editor,
Advances in Cryptology—CRYPTO ’97, volume 1294 of Lecture Notes in
Computer Science, pages 16–30. Springer-Verlag, 17–21 August 1997.
[FS86] Amos Fiat and Adi Shamir. How to prove yourself: Practical solutions to
identification and signature problems. In Andrew M. Odlyzko, editor, Ad-
vances in Cryptology—CRYPTO ’86, volume 263 of Lecture Notes in Com-
puter Science, pages 186–194. Springer-Verlag, 1987, 11–15 August 1986.
[GMR88] Shafi Goldwasser, Silvio Micali, and Ronald L. Rivest. A digital signature
scheme secure against adaptive chosen-message attacks. SIAM Journal on
Computing, 17(2):281–308, April 1988.
[Gol88] Shafi Goldwasser, editor. Advances in Cryptology—CRYPTO ’88, volume
403 of Lecture Notes in Computer Science. Springer-Verlag, 1990, 21–25 Au-
gust 1988.
Forward-Secure Signatures with Optimal Signing and Verifying 351
First, we assume that if F outputs (z, σ, j, e) as a forgery, then the hashing oracle
has been queried on (j, e, y, M ), where y = z e v σ mod n (any adversary can be
modified to do that; this may raise the number of hash queries to qhash + 1.)
We will also assume that F performs the necessary bookkeeping and does not
ask the same hash query twice.6 Note that F may ask the same signature query
twice, because the answers will most likely be different.
Recall that A’s job, given α and n, is to find (with F ’s help) β and r > 1
such that β r ≡ α (mod n). First, A has to guess the time period for which F
will output the forgery: it randomly selects j, 1 < j ≤ T (sometimes A may also
succeed if the forgery is for a time period i < j, but this not necessary for our
argument). A then generates e1 , . . . , eT just like the real signer, sets tj+1 = α
fj+1
and computes v as v = 1/tj+1 mod n, where, as above, fj+1 = ej+1 · . . . · eT .
A then comes up with a random tape for F , remembers it, and runs F on
that tape and the input public key (n, v, T ). If F breaks in at time period b,
then A can provide F with the secret key as long as b > j: knowing tj+1 will
6
This may slightly increase the running time of F , but we will ignore costs of simple
table look-up for the purposes of this analysis.
352 G. Itkis and L. Reyzin
First, consider the probability that A’s answers to F ’s oracle queries are
distributed as those of the true oracles that F expects. This is the case unless,
for some signature query, the hash value that A needs to define has already
been defined through a previous answer to a hash query (call this “A’s failure to
pretend”). Because z is picked at random from Zn ∗, z e v σ is a random element
of Zn∗ . The probability of its collision with a value from a hash query in the same
execution of F is at most (qhash + 1)/|Zn∗ | thus, the probability (taken over only
the random choices of A) of A’s failure to pretend is at most qsig (qhash +1)/|Zn∗ | ≤
qsig (qhash + 1)22−k (because |Zn∗ | = 4q1 q2 > 2k−2 ). This is exactly the amount by
which F ’s probability of success is reduced because of interaction with A rather
than the real signer. Let δ = ε − qsig (qhash + 1)22−k .
Let εb be the probability that F produces a successful forgery and that its
PT +1
break-in query occurs in time period b. Clearly, δ = b=2 εb (if b = 1, then F
cannot forge for any time period). Assume now that A picked j = b − 1 for some
fixed b. The probability of that is 1/T .
We will now calculate the probability of the event that F outputs a valid
forgery based on the same hash query both times and that the hash query was
answered differently the second time and that the break-in query was b both
times. Let ph,b be the probability that, in one run, F produces a valid forgery
based on hash query number h after break-in query in time period b. Clearly,
qhash
X+1
εb = ph,b
h=1
Let ph,b,S (for a sufficiently long binary string S of length m) be the probability
that, in one run, F produces a valid forgery based on hash query number h after
break-in query in time period b, given that the string S was used to determine
the random tape of F and the responses to all the oracle queries of F until (and
not including) the h-th hash query. We have that
X
2m ph,b = ph,b,S .
S∈{0,1}m
Given such a fixed string S, the probability that F produces a valid forgery based
on the hash query number h after break-in query in time period b in both runs is
p2h,b,S (because the first forgery is now independent of the second forgery). The
additional requirement that the answer to the hash query in the second run be
different reduces this probability to ph,b,S (ph,b,S − 2−l ). Thus, the probability
qh,b that F produces a valid forgery based on the hash query number h in both
354 G. Itkis and L. Reyzin
runs and that the answer to the hash query is different in the second run and
that the break-in query was b in both runs is
X
qh,b = 2−m ph,b,S (ph,b,S − 2−l )
S∈{0,1}m
X X
= 2−m p2h,b,S − 2−l ph,b,S
S∈{0,1}m S∈{0,1}m
2
2−m (ph,b 2m )
≥ − 2−l ph,b = p2h,b − 2−l ph,b
2m
(by Lemma 2).
The probability that F outputs a valid forgery based on the same hash query
both times and that the hash query was answered differently in the second run
and that the break-in query occurred in time period i is now
qhash
X+1 qhash
X+1 qhash
X+1 ε2b
qh,b ≥ p2h,b − 2−l ph,b ≥ − 2−l εb
qhash + 1
h=1 h=1 h=1
1 Introduction
Digital signature schemes are among the most fundamental and useful inven-
tions of modern cryptography. In such schemes, each user generates a (private)
signing key and a (public) verification key. A user signs a message using his pri-
vate signing key, and anyone can authenticate the signer and verify the message
by using the signer’s public verification key. A signature scheme is considered
to be secure if signatures on new messages cannot be forged by any attacker
who knows the user’s public key but not his private key. Many constructions of
signature schemes appear in the literature, but most of these schemes have un-
proven security, and the few schemes that are provably secure (under standard
cryptographic assumptions) are not fast enough for many practical applications.
Signature schemes that are efficient and provably secure are interesting both
from a practical and a theoretical point of view.
In this paper, we introduce a general method for simultaneously improving
both the security and the real-time efficiency of any signature scheme by con-
verting it into an efficient on-line/off-line signature scheme. This notion was first
introduced by Even, Goldreich and Micali [1]. The idea is to perform the sig-
nature generating procedure in two phases. The first phase is performed off-line
(before the message to be signed is given) and the second phase is performed on-
line (after the message to be signed is given). On-line/off-line signature schemes
are useful, since in many applications the signer has a very limited response time
once the message is presented, but he can carry out costly computations between
consecutive signing requests. On-line/off-line signature schemes are particularly
useful in smart card applications: The off-line phase is implemented either dur-
ing the card manufacturing process or as a background computation whenever
the card is connected to power, and the on-line phase uses the stored result of
the off-line phase to sign actual messages. The on-line phase is typically very
fast, and hence can be executed efficiently even on a weak processor.
Some signature schemes can be naturally partitioned into off-line and on-
line phases. For example, the first step in the Fiat-Shamir, Schnorr, El-Gamal
and DSS signature schemes does not depend on the given message, and can
thus be carried out off-line. However, these are particular schemes with special
structure and specific security assumptions rather than a general and provably
secure conversion technique for arbitrary signature schemes.
Even, Goldreich and Micali presented a general method for converting any
signature scheme into an on-line/off-line signature scheme. Their method uses a
one-time signature scheme, i.e., a scheme which can securely sign only a single
message. The essence of their method is to apply (off-line) the ordinary signing
algorithm to authenticate a fresh one-time verification key, and then to apply
(on-line) the one-time signing algorithm, which is typically very fast. In the basic
[1] construction of a one-time bit-oriented signature scheme, the size of each
signature is k 2 (where k is the size of the message and the security parameter).
Additional constructions were proposed in [1], but they offer a very inefficient
tradeoff between the size of the keys and the complexity of the one-time signing
algorithm. In this paper, we present a method that increases the length of the
signatures by an additive (rather than multiplicative) factor of k bits.
Our method uses a special type of hash functions, called trapdoor hash func-
tions. These functions were recently introduced by Krawczyk and Rabin [3], who
used them to construct chameleon signatures. Chameleon signatures are signa-
tures that commit the signer to the contents of the signed message (as regular
signatures do) but do not allow the recipient of the signature to convince third
parties that a particular message was signed, since the recipient can change the
signed message to any other message of his choice.
A trapdoor hash function is associated with a public key and a private key,
referred to as the hash key HK and the trapdoor key T K, respectively. Loosely
speaking, a trapdoor hash function is a probabilistic function h, such that colli-
sions are difficult to generate when only HK is known, but easy to generate when
T K is also known. More formally, given only HK, it is hard to find two messages
m, m0 and two auxiliary numbers r, r0 such that h(m; r) = h(m0 ; r0 ), but given
(HK, T K) and m, m0 , r0 , it is easy to find r such that h(m; r) = h(m0 ; r0 ). Note
that this requirement is weaker than the requirement of trapdoor permutations,
Improved Online/Offline Signature Schemes 357
and thus it may be easier to find efficient trapdoor hash functions than to find
efficient signature schemes based on trapdoor permutations.
The essence of our method is to hash the given message using a trapdoor
hash function (rather than a regular hash function) and then to sign the hashed
value using the given signature scheme. The resultant signature scheme can be
implemented as an on-line/off-line signature scheme as follows: The off-line phase
uses the original signature scheme to sign the hash value h(m0 ; r0 ) of a random
message m0 and a random auxiliary number r0 . Given an actual message m,
the on-line phase uses the same precomputed signature of the randomly chosen
m0 as a signature of the given message m, by using the trapdoor key to find
a collision of the form h(m0 ; r0 ) = h(m; r). The signature of m consists of the
new auxiliary number r and the precomputed signature of h(m0 ; r0 ). We call this
paradigm a hash-sign-switch scheme. Notice that the on-line phase is completely
independent of the original signature scheme, and consists only of finding a
collision of the trapdoor hash function. In particular, we describe a trapdoor
hash function in which collisions can be found with time complexity equivalent
to about 0.1 modular multiplications. Hence, for any signature scheme, its on-
line/off-line version can be implemented such that the on-line phase requires only
this negligible time complexity, and the size of the signature is only increased
by adding r to the original signature.
For any signature scheme, we prove that our on-line/off-line version is at
least as secure as the original scheme, provided that the trapdoor hash family is
secure. In fact, we prove that the converted scheme is even more secure than the
original scheme, since the original scheme is only applied to random messages
chosen exclusively by the signer. In particular, we can show that the on-line/off-
line signature scheme is secure against adaptive chosen message attacks even
if the original signature scheme is secure only against generic chosen message
attacks or random message attacks. Note for example, that the Rabin signature
scheme [5] and the RSA signature scheme [6] are not secure against adaptive
chosen message attacks, but are believed to be secure against random message
attacks, and hence we believe that our method enhances the security of these
schemes.
– Adaptive chosen message attack: The attacker has access to an oracle that
signs any queried message m. In particular, the choice of each query m
can depend on the verification key V K and on the signature produced for
previous messages.
– Q-adaptive chosen message attack: An adaptive chosen message attack where
the attacker can query the oracle at most Q times.
In this work, a signature scheme is considered to be secure (against a certain
type of attack) if there does not exist a probabilistic polynomial-time forger
that generates a pair consisting of some new message (that was not previously
presented to the oracle) and a valid signature, with a probability which is not
negligible. This property was called existential unforgeability in [2].
In the remaining part of this section, we concentrate on the notion of a
trapdoor hash function [3]. A trapdoor hash function is a special type of hash
function, whose collision resistance depends on the user’s state of knowledge.
Every trapdoor hash function is associated with a pair of public key and private
key, referred to as the hash key HK and the trapdoor key T K, respectively:
Definition 1. (trapdoor hash family) A trapdoor hash family consists of a pair
(I, H) such that:
– I is a probabilistic polynomial-time key generation algorithm that on input
1k outputs a pair (HK, T K), such that the sizes of HK, T K are polynomially
related to k.
– H is a family of randomized hash functions. Every hash function in H is
associated with a hash key HK, and is applied to a message from a space
M and a random element from a finite space R. The output of the hash
function hHK does not depend on T K.
A trapdoor hash family (I, H) has the following properties:
1. Efficiency: Given a hash key HK and a pair (m, r) ∈ M × R, hHK (m; r) is
computable in polynomial time.
2. Collision resistance: There is no probabilistic polynomial-time algorithm A
that on input HK outputs, with a probability which is not negligible, two
pairs (m1 , r1 ), (m2 , r2 ) ∈ M × R that satisfy m1 6= m2 and hHK (m1 ; r1 ) =
hHK (m2 ; r2 ) (the probability is over HK, where (HK, T K) ← I(1k ), and
over the random coin tosses of algorithm A). 1
3. Trapdoor collisions: There exists a probabilistic polynomial time algorithm
that given a pair (HK, T K) ← I(1k ), a pair (m1 , r1 ) ∈ M × R, and an
additional message m2 ∈ M, outputs a value r2 ∈ R such that:
– hHK (m1 ; r1 ) = hHK (m2 ; r2 ).
– If r1 is uniformly distributed in R then the distribution of r2 is compu-
tationally indistinguishable from uniform in R.
1
Note that it is not required that given one collision it remains hard to find new
collisions. Indeed, all the constructions that we present have the property that given
a hash key HK and given a single collision of hHK , one can easily compute a trapdoor
key T K such that the pair (HK, T K) is in the range of I(1k ).
Improved Online/Offline Signature Schemes 359
Lemma 1. The pair (I, H) is a trapdoor hash family, under the Factoring
Assumption.
A proof of this lemma appears in Appendix A. This trapdoor hash func-
tion has the following additional property: There exists a probabilistic
polynomial-time algorithm that given a pair (HK, T K) (of hash key and
trapdoor key), a message m ∈ M and any value c in the image of hHK ,
outputs r ∈ R such that:
– hHK (m; r) = c.
– If c is uniformly distributed (in the image of hHK ) then the distribution
of r is computationally indistinguishable from uniform (in R).
Note that this inversion property is stronger than the ability to generate
collisions. We will use it to convert any signature scheme which is provably
secure only against random message attacks into a signature scheme which
is provably secure against adaptive chosen message attacks.
2. A trapdoor hash family based on the Discrete Log Assumption
– The key generation algorithm I. Choose at random a safe prime p ∈
def
{0, 1}k (i.e., a prime p such that q = p−1 2 is prime) and an element
∗
g ∈ ZZp of order q. Choose a random element α ∈R Zq∗ and compute
y = g α (mod p). The public hash key is (p, g, y) and the private trapdoor
key is α.
– The hash family H. For HK = (p, g, y), hHK : Zq × Zq −→ Zp∗ is defined
def
as follows: hHK (m; r) = g m y r (mod p).
Lemma 2. The pair (I, H) is a trapdoor hash family, under the Discrete
Log Assumption.
A proof of this lemma appears in Appendix B.
360 A. Shamir and Y. Tauman
Lemma 3. The pair (I, H) is a trapdoor hash family, under the Factoring
Assumption.
Remark 3. The relaxed security conditions of trapdoor hash functions may lead
to new types of signature schemes whose hash functions are based on multi-
variate polynomials. Most of the multivariate signature schemes proposed so far
were broken by attacking their hidden inversion structure. In the new paradigm,
there is no need to invert h(m; r) = c, and thus they may be more resistant to
cryptanalytic attacks.
We now introduce our general method for combining any trapdoor hash family
(I, H) and any signature scheme (G, S, V ) to get an on-line/off-line signature
scheme. For a security parameter k, we construct an on-line/off-line scheme
(G0 , S 0 , V 0 ), as follows.
Improved Online/Offline Signature Schemes 361
We now analyze the security and the efficiency of the resultant on-line/off-line
signature scheme.
3.1 Efficiency
The off-line phase of the signing algorithm consists of one evaluation of the
trapdoor hash function and one invocation of the original signing algorithm.
The verification algorithm of the on-line/off-line signature scheme consists of
one evaluation of the trapdoor hash function and one invocation of the origi-
nal verification algorithm. Hence, the additional overhead of the off-line signing
phase and the verification algorithm is a single evaluation of the trapdoor hash
function. The on-line phase consists of a single collision finding computation.
2
Note that the signature (r, Σ) has the property that the distribution of r is com-
putationally indistinguishable from uniform in R, and that the distribution of Σ is
identical to the distribution of SSK (hHK (m; r)).
362 A. Shamir and Y. Tauman
Using the third type of trapdoor hash function presented in Section 2, evalu-
ation requires one modular exponentiation, and collision finding requires about
0.1 modular multiplications. The length of the keys and the length of the sig-
natures increase only by a factor of two, which is much better than in previous
proposals.
3.2 Security
The general conversion technique proposed in this paper preserves the security
of the original signature scheme, and even improves it in some respects since the
opponent cannot control the random strings it is asked to sign during the off-
line phase. We can thus prove that our on-line/off-line signature scheme is secure
against adaptive chosen message attacks, even if the original signature scheme is
secure only against generic chosen message attacks. Due to the practical emphasis
of this work, we focus on exact security, rather than on asymptotic security.
Lemma 4. Let (G, S, V ) be a signature scheme and let (I, H) be a trapdoor
hash family. Let (G0 , S 0 , V 0 ) be the resultant on-line/off-line signature scheme.
Suppose that (G0 , S 0 , V 0 ) is existentially forgeable by a Q-adaptive chosen mes-
sage attack in time T with success probability . Then one of the following cases
holds:
1. There exists a probabilistic algorithm that given a hash key HK, finds col-
lisions of hHK in time T + TG + Q(TH + TS ) with success probability ≥ 2
(where TG is the running time of G, TH is the running time required to
compute functions in H, and TS is the running time of S).
2. The original signature scheme (G, S, V ) is existentially forgeable by a generic
Q-chosen message attack in time T + Q(TH + TCOL ) + TI with success proba-
bility ≥ 2 (where TCOL is the time required to find collisions of the trapdoor
hash function given the hash key and the trapdoor key, and TI is the running
time of algorithm I).
1. P r[VV K (hHK (m; r), Σ) = 1 & ∃i s.t. hHK (mi ; ri ) = hHK (m; r)] ≥ 2 .
2. P r[VV K (hHK (m; r), Σ) = 1 & ∀i, hHK (mi ; ri ) 6= hHK (m; r)] ≥ 2 .
Improved Online/Offline Signature Schemes 363
If case 1 holds, then we define a probabilistic algorithm A that given a hash key
HK finds collisions of the hash function hHK , as follows.
Note that the distribution of the simulated oracle is identical to the distribution
of the real oracle, and hence with probability ≥ 2 , A succeeds in obtaining a
message m and a pair (r, Σ), such that for every i, m 6= mi , and there exists i
such that hHK (m; r) = hHK (mi ; ri ). Hence, A succeeds in finding collisions to
the hash function hHK with probability ≥ 2 in time T + TG + Q(TH + TS ).
If case 2 holds, we define a probabilistic algorithm F that forges a signature
with respect to (G, S, V ) by a generic Q-chosen message attack, as follows.
Given a verification key V K and given a set of signatures {Σi }Q i=1 (where Σi
is a signature of hHK (mi ; ri ) with respect to the verification key V K), F simu-
lates the forger F 0 on input (V K, HK) as follows. When F 0 queries the oracle
with a message mi , F finds ri ∈ R such that hHK (mi ; ri ) = hHK (m0i ; ri0 ) and
proceeds as if the signature obtained by the signing oracle S 0 was (ri , Σi ). Recall
that ri can be chosen such that if ri0 is uniformly distributed in R then ri is
computationally indistinguishable from uniform in R. Hence, the distribution
of the output of the simulated oracle is computationally indistinguishable from
the distribution of the output of the real oracle. Thus, with probability ≥ 2 , F
obtains a message m and a pair (r, Σ) such that:
References
1. Shimon Even, Oded Goldreich, and Silvio Micali, On-line/off-line Digital Signa-
tures. In Advances in Cryptology: Crypto ’89, pp 263-277. August 1990. Springer.
2. Shafi Goldwasser, Silvio Micali, and Ron Rivest, A Digital Signature Scheme Secure
Against Adaptive Chosen-Message Attacks, SIAM J. on Computing, 17, pp 281-
308, 1988.
3. Hugo Krawczyk and Tal Rabin, Chameleon Signatures. In Symposium on Network
and Distributed Systems Security (NDSS ’00), pp 143-154, February 2000, Internet
Society.
4. Gary Miller, Riemann’s Hypothesis and Tests for Primality, J. Comp. Sys. Sci.,
13:300-317, 1976.
3
Note that there is an implicit assumption here that for every two messages m1 , m2 the
distributions hHK (m1 ; r1 ) and hHK (m2 ; r2 ) are computationally indistinguishable,
where r1 and r2 are uniformly distributed in R.
Improved Online/Offline Signature Schemes 365
A Proof of Lemma 1
Proof. 1. Efficiency: Clearly, given a hash key n and a pair (m; r) ∈ M × QRn ,
|m|
the function h(m; r) = 4m r2 (mod n) can be computed in polynomial
time.
2. Collision resistance: Assume to the contrary, that there exists a probabilis-
tic polynomial time algorithm that given a hash key n outputs two pairs
(m1 , r1 ), (m2 , r2 ) ∈ M × QRn such that m1 6= m2 and hHK (m1 , r1 ) =
hHK (m2 , r2 ), with a probability which is not negligible. Let i be the smallest
index of a bit where m1 and m2 differ (i.e., m1 [i] 6= m2 [i] and m1 [j] = m2 [j]
for all j < i). Such a bit exists due to the suffix-free property of M. Since we
assume that the result of the hash function on (m1 , r1 ) and (m2 , r2 ) is the
same and that m1 [j] = m2 [j] for all j < i, and since f0 , f1 are permutations,
it follows that
fm1 [i] ◦ · · · ◦ fm1 [|m1 |] (r1 ) = fm2 [i] ◦ · · · ◦ fm2 [|m2 |] (r2 ).
Thus, we found a pair of values r10 and r20 for which fm1 [i] (r10 ) = fm2 [i] (r20 ). As
proven in [2], the existence of such claws for (f0 , f1 ) contradicts the Factoring
Assumption.
3. Trapdoor collisions: Given a pair (m1 , r1 ) ∈ M × QRn and any additional
message m2 ∈ M, a value r2 ∈ QRn such that hHK (m1 ; r1 ) = hHK (m2 ; r2 )
is given by
−1 −1 −1
r2 = (fm2 [1]
◦ fm2 [2]
◦ · · · ◦ fm2 [|m2 |]
(hHK (m1 ; r1 ))).
Given the trapdoor key T K = (p, q), the functions f0−1 , f1−1 are computable
in polynomial time, and therefore the value of r2 is also computable in poly-
nomial time. It remains to note that since f0 , f1 are permutations on QRn ,
it follows that if r1 is uniformly distributed in QRn then r2 is also uniformly
distributed in QRn .
t
u
B Proof of Lemma 2
The fact that m1 6= m2 (mod q) implies that r1 6= r2 (mod q), and thus r1 −r2
is invertible modulo the prime q. Hence, α can be computed in polynomial
time as follows.
g m1 y r1 = g m2 y r2 (mod p).
C Proof of Lemma 3
Proof. 1. Efficiency: Clearly, given a hash key HK = (n, g) and a pair
(m, r) ∈ Zn × Zλ(n) , the function hHK (m; r) = g m◦r (mod n) is computable
in polynomial time.
2. Collision resistance: Assume to the contrary, that there exists a probabilis-
tic polynomial time algorithm that on input HK = (n, g) outputs two pairs
(m1 , r1 ), (m2 , r2 ) ∈ Zn × Zλ(n) such that g m1 ◦r1 = g m2 ◦r2 (mod n), with a
def
probability which is not negligible. Denote by x = m1 ◦ r1 − m2 ◦ r2 (this
equality is over ZZ). x 6= 0 since m1 6= m2 . The fact that g x = 1 (mod n) im-
plies that λ(n) divides x. Thus, φ(n) divides 2x (Since φ(n) = (p−1)(q−1) =
4p0 q 0 = 2λ(n)). Hence, there exists a probabilistic polynomial time algo-
rithm, that on input (n, g) outputs a multiple of φ(n). It is known [4] that
from any multiple of φ(n) the factorization of n can be efficiently computed.
So we found a probabilistic polynomial time algorithm that solves the Fac-
toring Problem with a probability which is not negligible. This contradicts
the Factoring Assumption.
Improved Online/Offline Signature Schemes 367
Remark 5. The equation used to find collisions in the second and third trap-
door hash families look similar, but are based on different security assumptions
(discrete log vs. factoring). This difference makes it possible to replace the multi-
plication operation α−1 (m1 −m2 ) by the simpler left shift operation 2k (m1 −m2 ),
which saves about half the total time. In addition, when the size of the modulus
is 1024 bits and the size of the (hashed) (m1 − m2 ) is 160 bits, the reduction of
the 1184 bit result modulo a 1024 bit modulus is about 6 times faster than a stan-
dard reduction of a 2048 bit product modulo a 1024 bit modulus. Consequently,
we estimate that software implementations of the collision finding procedure will
be about ten times faster than performing a single modular multiplication of two
1024 bit numbers.
An Efficient Scheme for Proving a Shuffle
1 Introduction
A mix-net[Ch81] scheme is useful for applications which require anonymity, such
as voting. The core technique in a mix-net scheme is to execute multiple rounds
of shuffling and decryption by multiple, independent mixers, so that the output
decryption can not be linked to any of the input encryptions.
To ensure the correctness of the output, it is desirable to achieve the property
of universal verifiability. However, proving the correctness of a shuffle without
sacrificing unlinkability required a large amount of computation in the prior art.
For example, [SK95] adopted a cut-and-choose method to prove the correctness.
Abe[Ab99] took an approach to represent a shuffle using multiple pairwise per-
mutations 1 . In practical terms, however, neither scheme is efficient enough to
handle a large number of ciphertexts, say on the order of 10,000.
This paper proposes a novel, efficient scheme for proving the correctness of a
shuffle. We take a completely different approach than that of [SK95] and [Ab99].
We represent a permutation by a matrix, and introduce two conditions which
suffice to achieve a permutation matrix. We then present zero-knowledge proofs
to prove the satisfiability of each condition. Moreover, these two proofs can be
merged into one proof, resulting in a very efficient proof of a correct shuffle.
We also present here an analysis of the efficiency of our proof. Our proof
requires roughly 18n exponentiations to prove the correctness of a n-data shuffle,
1
Another approach, based on a verifiable secret exponent multiplication is described
in [Ne01].
2 Basic Idea
2.1 Shuffling
Informally speaking, a shuffling is a procedure which on input of n ciphertexts
(E1 , E2 , . . . , En ), outputs n ciphertexts (E10 , E20 , . . . , En0 ) where:
– there exists a permutation φ s.t D(Ei0 ) = D(Eφ−1 (i) ) for all i. Here, D is a
decryption algorithm for ciphertexts.
– Without the knowledge of D or φ, (E1 , E2 , . . . , En ), and (E10 , E20 , . . . , En0 )
reveal no information on the permutation φ.
We consider the use of ElGamal cryptosystems, with public keys (p, q, g, y)
and secret key X ∈ Zq s.t. y = g X mod p. 2
Given n ciphertexts {Ei } = {(gi , mi )}, where all {gi } and {mi } have the
order q, shuffled ciphertexts {Ei0 } = {(gi0 , m0i )} can be obtained by
gi0 = g ri · gφ−1 (i) mod p
(1)
m0i = y ri · mφ−1 (i) mod p
using randomly generated {ri }.
In order to prove the correctness of the shuffle, we need to show the following
two things.
2
We assume, as usual, p and q are two primes s.t. p = kq + 1, where k is an integer,
and g is an element that generates a subgroup Gq of order q in Z∗p .
370 J. Furukawa and K. Sako
1. For each pair {(gi0 , m0i )}, the same ri and (Aij ) has been used.
2. (Aij ) used is a permutation matrix.
The first property can be efficiently shown using a standard technique[Br93]. The
contribution of this paper is to present a novel technique to prove the second
property.
At first, we concentrate on proving the existence of a permutation matrix
(Aij ) and {ri } when given {gi } and {gi0 }, s.t.
n
Y
gi0 = g ri gj Aji mod p. (3)
j=1
hold.
Proof. We first show that there is exactly one non-zero element in each row
vector of (Aij ) and then, the same for each column vector.
Let Ci be a i-th column vector of the matrix (Aij )(i,j=1,...,n) . Then, from
Equation (4), we see (Ci , Cj ) = δij where (A, B) is inner product of vectors A and
B. This implies that rank(Aij ) = n, that is, there is at least one non-zero element
in each row and each column. Next we consider a vector Ci Cj (i 6= j) where the
Pn is defined as (a1 . . . an ) (b1 . . . bn ) = (a1 b1 . . . an bn ). P
operator Define a vector
Ĉ = l=0 κl Cl for an arbitrary κl . From the fact (Ĉ, Ci Cj ) = l=1 κl δlij = 0
and linear combinations of {Cl } generate the space Zq n , we obtain Ci Cj = 0.
This means for any h, i and j s.t. i 6= j, either Ahi = 0 or Ahj = 0. Therefore,
the number of non-zero elements in each row vector of (Aij ) is at most 1, and
thus exactly 1.
From the above observations, the matrix (Aij ) contains exactly n non-zero
elements. Since Ci 6= 0 for all i, the number of non-zero element in each column
An Efficient Scheme for Proving a Shuffle 371
vector is also 1. Thus, there is exactly one non-zero element in each row vector
and each column vector of the matrix (Aij ) if Equations (4) and (5) hold.
The unique non-zero element ei in i − th row must be e2i = 1 mod q from
Equation (4) and e3i = 1 mod q from Equation (5). This leads to ei = 1 and that
matrix (Aij )(i,j=1,...,n) is a permutation matrix over Zq .
We then define the subset Dnm of Rnm to be the set of tuples I satisfying
(i) (i)
logx(1) x1 = logx(1) xj mod p
1 j
Lemma 2. If for any n(≥ 2), DDHn2 is easy then the decisional Diffie-Hellman
is easy.
Proofs for Lemma 1 and 2 are sketched in Appendix A
In order to hide the actual value of σ, {Bj + σrj } and D + σα, this verification is
computed over exponents. The below gives a complete description of the Proof-
1.
Proof-1
Input:p, q, g, {gi }, {gi0 }.
w = g σ mod p
n
Y
0 α
g =g gj αj mod p (6)
j=1
Pn
2αj Aji +σri
ẇi = g j=1 (= g Bi +σri ) mod p i = 1, . . . , n
Pn
αj 2 +σα
ẇ = g j=1 (= g D+σα ) mod p
Properties of Proof-1
Theorem 2. Proof-1 is complete. That is, if P knows {ri } and {Aij } satisfying
the first condition, V always accepts.
A sketch of Proof: Theorem 3 can be proved from the following lemmas, proofs
of which are sketched in Appendix B.
Lemma 3. If V accepts Proof-1 with non-negligible probability, then P knows
{Aij }, {ri }, {αi }, and α satisfying Equations (3) and (6).
Lemma 4. Assume P knows {Aij }, {ri }, {αi }, and α satisfying Equations (3)
and
Pn (6). If P knows {sP i } and s which satisfy Equation (7), and either s 6=
n
r c
j=1 j j + α or si =
6 j=1 Aij cj + αi for some i hold, then P can generate
a
Qn ai
non-trivial integers {ai } and a satisfying g i=1 gi = 1 with overwhelming
probability.
Lemma 5. Assume P knows {Aij }, {ri }, {αi }, and α satisfying Equations (3)
and (6). If Equations (7) and (8) hold with non-negligible probability, then either
Equation
Qn (4) hold or P can generate non-trivial integers {ai } and a satisfying
g a i=1 gi ai = 1 with overwhelming probability.
2
Theorem 4. We can construct a simulator of Proof-1 such that if there is a
distinguisher who can distinguish between a real transcript from the protocol and
an output from the simulator, then we can solve the decisional Diffie-Hellman
problem.
A sketch of Proof: Given in Appendix B. 2
Properties of Proof-2
We claim the following properties of Proof-2, which can be proved analo-
gously to that of Proof-1.
Theorem 5. Proof-2 is complete. That is, if P knows {ri } and {Aij } satisfying
the second condition, V always accepts.
on the fixed basis {g̃, g̃1 , . . . g̃n } is indeed a permutation, and that he indeed
applied the same permutation to the input ciphertext.
Using the above methodology, we need not provide Proof-3 described in
the Subsection 2.3. If a prover knows two different representations of an ele-
ment using {g̃, g̃1 , . . . g̃n }, it means that he knows the relations among the base
{g̃, g̃1 , . . . g̃n } which is against the assumption. Proof-4 is achieved using the
standard techniques described in [Br93]. Therefore we are now equipped with
building blocks to prove the correctness of a shuffle.
t = g τ , v = g ρ , w = g σ , u = g λ , ui = g λi mod p i = 1, . . . , n
n
Y
g̃i0 = g̃ ri g̃j Aji mod p i = 1, . . . , n (9)
j=1
Yn
g̃ 0 = g̃ α g̃j αj mod p (10)
j=1
Yn
g0 = gα gj αj mod p
j=1
Yn
m0 = y α mj αj mod p
j=1
Pn
3αj Aji +τ λi
ṫi = g j=1 mod p i = 1, . . . , n
Pn 2
3αj Aji +ρri
v̇i = g j=1 mod p i = 1, . . . , n
Pn
αj 3 +τ λ+ρα
v̇ = g j=1 mod p
Pn
2αj Aji +σri
ẇi = g j=1 mod p i = 1, . . . , n
Pn
αj 2 +σα
ẇ = g j=1 mod p.
3. P sends the following to the verifier V:
t, v, w, u, {ui }, {g̃i0 }, g̃ 0 , g 0 , m0 , {ṫi }, {v̇i }, v̇, {ẇi }, ẇ (i = 1, . . . , n).
An Efficient Scheme for Proving a Shuffle 377
n
X n
X
s= rj cj + α, si = Aij cj + αi mod q i = 1, . . . , n
j=1 j=1
Xn
λ0 = λj c2j + λ mod q
j=1
Theorem 8. Main Protocol is complete. That is, if P knows {ri } and {Aij }
satisfying the both conditions of Theorem 1, V always accepts.
Theorem 10. We can construct a simulator of Main Protocol such that if there
is a distinguisher who can distinguish between a real transcript from the proto-
col and an output from the simulator, then we can solve the decisional Diffie-
Hellman problem.
6 Discussions
7 Conclusion
References
[Ab99] M. Abe, Mix-Networks on Permutation Networks, Asiacrypt ’99, LNCS
1716, 258-273 (1999)
[Br93] S. Brands, An Efficient Off-line Electronic Cash System Based On The
Representation Problem, CWI Technical Report CS-R9323, (1993)
[Ch81] D. Chaum, Untraceable Electronic Mail, Return Addresses, and Digital
Pseudonyms, Communications of the ACM, Vol.24, No.2 84-88 (1981)
[CDS94] R. Cramer, I. Damgård and B. Schoenmakers, Proofs of Partial Knowl-
edge and Simplified Design of Witness Hiding Protocols, Crypto ’94,
LNCS 839, 174-187 (1994)
An Efficient Scheme for Proving a Shuffle 379
for all i(i = 2, 3, .., m − 1) and j(j = 2, ..., n), but whether or not
(m) (m)
logx(1) x1 = logx(1) xj mod q
1 j
holds for all j(j = 2, ..., n) is arbitrary. Therefore, the set Dnm is a subset of Mnm .
It is clear that if DDHnm is easy, then we can either distinguish between the
instances chosen uniformly from Rnm and Mnm or the instances chosen uniformly
from Mnm and Dnm . In the former case, it means DDHnm−1 is easy. We claim in
the following that in the latter case DDHn2 is easy.
Assume Mnm and Dnm are distinguishable. For any In2 ∈ Rn2 s.t.
(1) (2) (1) (2)
In2 = (x1 , x1 , x2 , x2 , . . . , x(1) (2)
n , xn )
where
(1)
xj j = 1, . . . , n (if i = 1)
(i)
x0 j = (x(1)
j )zi
mod p j = 1, . . . , n (if 2 ≤ i ≤ m − 1)
(2)
xj j = 1, . . . , n (if i = m)
with randomly chosen {zi }(i=2,...,m−1) in Zq .
If In2 is chosen uniformly from Dn2 , then Inm is distributed uniformly in Dnm ,
and if In2 is chosen uniformly from Rn2 , then Inm is distributed uniformly in Mnm .
Therefore if Dnm and Mnm is distinguishable, then we can solve DDHn2 .
380 J. Furukawa and K. Sako
where
(1) (1) (2) (2) (1) (1) (2) (2)
x0 1 = x1 , x0 1 = x1 , x0 2 = x2 , x0 2 = x2
(1) (1) (1) (2) (2) (2)
x0 j = (x1 )zj · (x2 )wj , x0 j = (x1 )zj · (x2 )wj mod p j = 3, . . . , n
with randomly chosen {zj } and {wj }(j = 3, . . . , n) in Zq .
If I22 is chosen uniformly from D22 , then In2 is distributed uniformly in Dn2 ,
and if I22 is chosen uniformly from R22 , then In2 is distributed uniformly in Rn2 .
Therefore if DDHn2 is easy, then so is DDH22 .
B Properties of Proof-1
In this section, we sketch the proofs of the following theorems.
Theorem 3 (soundness). If V accepts Proof-1 with a non-negligible proba-
bility, then P either knows both {ri } and {Aij }Qsatisfying the first condition, or
n
can generate integers {ai } and a satisfying g a i=1 gi ai = 1 with overwhelming
probability.
Theorem 4 (zero-knowledge). We can construct a simulator of Proof-1
such that if there is a distinguisher who can distinguish between a real tran-
script from the protocol and an output from the simulator, then we can solve the
decisional Diffie-Hellman problem.
B.1 Soundness
It is clear that Theorem 3 holds if Lemmas 3, 4 and 5 hold. We therefore prove
the lemmas.
Lemma 3. If V accepts Proof-1 with non-negligible probability, then P knows
{Aij }, {ri }, {αi }, and α satisfying Equations (3) and (6).
A sketch of Proof: Define Cp as the space which is spanned by the vector
(1, c1 , c2 , . . . , cn ) made of the challenges to which P can compute responses
s, {si }(i=1,...,n) such that Equation (7) holds. If the dim(Cp ) = n+1, P can choose
n + 1 challenges which are linearly independent and obtain {Aij }(i,j=1,...,n) ,
{ri }(i=1,...,n) , {αi }(i=1,...,n) , and α which satisfies the relation:
n
X n
X
s= rj cj + α, si = Aij cj + αi mod q i = 1, . . . , n
j=1 j=1
Such {Aij }, {ri },{αi }, and α satisfies Equations (3) and (6) . If, dim(Cp ) < n+1.
The probability that V generates a challenge in Cp is at most q n−1 /q n = 1/q,
which is negligible. 2
An Efficient Scheme for Proving a Shuffle 381
Lemma 4. Assume P knows {Aij },{ri }, {αi }, and α satisfying Equations (3)
and
Pn (6). If P knows {sP i } and s which satisfy Equation (7), and either s 6=
n
r
j=1 j jc + α or si =
6 j=1 Aij cj + αi for some i hold, then P can generate
a
Qn ai
non-trivial integers {ai } and a satisfying g i=1 gi = 1 with overwhelming
probability.
Proof. The following gives a non-trivial representation of 1 using g, {gi }.
Pn n
Y Pn
sj cj +α−s A c +α −s
g j=1 gi j=1 ij j i i = 1 mod p.
i=1
Lemma 5. Assume P knows {Aij }, {ri }, {αi }, and α satisfying Equations (3)
and (6). If Equations (7) and (8) hold with non-negligible probability, then either
Equation
Qn (4) hold or P can generate non-trivial integers {ai } and a satisfying
g a i=1 gi ai = 1 with overwhelming probability.
A sketch of Proof: From Lemma 4, If Equation (7) holds, then either
n
X
s= rj cj + α mod q
j=1
n
X
si =
Aij cj + αi mod q i = 1, . . . , n
j=1
Qn
holds or P can generate non-trivial integers {ai } and a satisfying g a i=1 gi ai = 1
with overwhelming probability. We concentrate on the former case. If Equation
(8) holds, then
Xn X n X n Xn X n
( Ahi Ahj − δij )ci cj + ( 2αj Aji + σri ) − ψi ci
i=1 j=1 h=1 i=1 j=1
X n
+ ( αj2 + σα) − ψ = 0 mod q
j=1
Pn Pn 2
where ψi = j=1 2αj Aji + σri , ψ = j=1 αj + σα mod q. If Equation (4)
does not hold for some i and j, then the probability that Equation (8) holds is
negligible. 2
B.2 Zero-Knowledge
Then it is clear that by randomly choosing {si } and s, it gives the same
distribution of the output as when {αi } and α were first chosen randomly, and
verifier honestly chooses random challenge {ci }.
In this section, we discuss the properties of the main protocol. The completeness
property is clear. We provide proofs for the soundness and the zero-knowledge
property.
C.1 Soundness
Lemma 8. Assume P knows {Aij }, {ri }, {αi }, and α satisfying Equations (9)
and (10), and {si } and s satisfying Equation (11). If Equations (12) and (13)
hold with non-negligible probability, then either the relationships
384 J. Furukawa and K. Sako
n
Y
g 0
= g α
gj αj mod p
j=1
n
Y
g 0
= g r i
gj Aji mod p i = 1, . . . , n
i
j=1
Yn (17)
m0 = y α mj αj mod p
j=1
n
Y
m 0
= y ri
mj Aji mod p i = 1, . . . , n
i
j=1
Qn
hold or P can generate nontrivial integers {ai } and a satisfying g̃ a i=1 g̃i
ai
=1
with overwhelming probability.
A sketch of Proof: Similarly to Lemma 4, we can ensure that
n
X
s= rj cj + α mod q
j=1
n
X
s = Aij cj + αi mod q i = 1, . . . , n
i
j=1
If first two equations on Equations (17) does not hold, then the probability that
Equation (12) hold is negligible. The same thing can be said for m0 , {m0i }(i=1,...,n)
from the satisfiability of (13). 2
C.2 Zero-Knowledge
Theorem 10. We can construct a simulator of Main Protocol such that if there
is a distinguisher who can distinguish between a real transcript from the proto-
col and an output from the simulator, then we can solve the decisional Diffie-
Hellman problem.
A sketch of Proof: We first give a construction of the simulator. We then prove
5
that if there exists such a distinguisher then we can solve DDHn+1 . From Lemma
1 and 2, it means it is equivalent to solving the decisional Diffie-Hellman problem.
The Construction of the Simulator
We will construct the simulator S of the main protocol with the input
p, q, g, y, g̃, {g̃i }, {(gi , mi )}, {(gi0 , m0i )} as follows.
An Efficient Scheme for Proving a Shuffle 385
The output of S is
t, v, w, u, {ui }, {g̃i0 }, g̃ 0 , g 0 , m0 , {ṫi }, {v̇i }, v̇, {ẇi }, ẇ, {ci }, s, {si }, λ0 .
5 5
A Distinguisher of Dn+1 and Rn+1
We will then construct a distinguisher D0 who can distinguish between the
5 5
uniform instances of Dn+1 and Rn+1 if S can not simulate the main protocol.
Let’s say the instance I
(1) (2) (5) (1) (2) (5)
I = (x1 , x1 , . . . , x1 , . . . , xn+1 , xn+1 , . . . , xn+1 )
5 5
was chosen uniformly from either Dn+1 or Rn+1 . Then this distinguisher will first
generate g1 , m1 , g2 , m2 , ..., gn , mn , g̃1 , g̃2 , . . . , g̃n as the constants used in Main
(1) (2)
Protocol and let X ∈R Zq , g = x1 , g̃ = x1 , y = g X mod p. It will then generate
a random permutation Aji and a secret key X ∈R Zq and compute
n
Y n
Y
(1) A (1) A
(gi0 , m0i ) = (xi+1 gj ji , (xi+1 )X mj ji ) mod p. (i = 1, . . . , n)
j=1 j=1
and computes
386 J. Furukawa and K. Sako
D Alternative Notation
We present here an alternative notation of the variables. Since we have discussed
the basis {g, g1 , . . . , gn } throughout the paper, we can think of representing g
by g0 . Similarly y by m0 and g̃ by g̃0 . We can include the value of randomizers
{ri }, αi and α, in the matrix by defining A0i = ri , Ai0 = αi , and A00 = α.
Treating a public key in a similar manner with input variables may be awk-
ward, but it gives a compact representation to some of the variables, e.g,
n
Y n
Y n
Y
gµ0 = gν Aνµ , m0µ = mν Aνµ , g̃µ0 = g̃ν Aνµ µ = 0, . . . , n.
ν=0 ν=0 ν=0
1 Introduction
Thus, a party receiving a signature can be sure that its originator is a member
of the group, but receives no other information. However, in exceptional cases
such as when the anonymity is misused and a legal dispute arises, a designated
revocation manager has the power to reveal the unambiguous identity of the
originator of the signature. At the same time, no one can misattribute a valid
group signature. A concept dual to group signature schemes is that of identity
escrow [32] schemes. They can be seen as group-member identification schemes
with revocable anonymity. In fact, any group signature scheme can be turned
into an identity escrow scheme and vice versa.
Group signatures can, for instance, be used by the purchasing department of
a company to hide the internal structure of this department. All members of the
department form a group, and sign all purchasing orders using group signatures.
In case one day a sports car gets delivered instead of pencils, the department
manager will be able to identify the culprit. Recently, group signature schemes
were used to realize an anonymous credential system [9]. Here, being a member
of some particular group meant possessing a particular credential. Hence, own-
ership of a credential can be proved anonymously. Other applications include
bidding [20], electronic cash [33], and anonymous fingerprinting [7].
Group signature/identity escrow schemes with appointed verifiers, as pro-
posed in this paper, go a step further: here a group member can prove his mem-
bership only to an appointed verifier but not to anyone else. There can be several
different appointed verifiers for each member. This property of not being able to
convince non-appointed parties is similar to receipt-freeness in electronic voting
schemes, where a voter must not be able to prove to anyone how she voted, which
is required to hinder vote-buying. We stress that this is different from the situ-
ation with so-called confirmer signatures [17] or designated-verifier proofs [31],
where although signatures (resp., proofs) can only be verified by a designated
party, the signer (resp., prover) would have the power to issue a signature (resp.,
proof) that is universally verifiable.
Appointed verifiers are useful for many applications of group signature and
identity escrow schemes. As an example, consider a bank that issues a credential
stating that the customer is eligible for a small business loan. The bank might
want to have a guarantee that the customer cannot use this credential in order
to obtain a better loan from a competing bank; or to use the loan money for
something other than the business for which it was granted. Or, consider the
purchasing department scenario outlined above. Naturally, different members of
the department are authorized to conduct different kinds of transactions. Using a
group signature scheme with appointed verifiers allows the department manager
to ensure that employees can only order from the companies they are authorized.
Finally, consider their use in a credential scheme. It is natural that for some types
of credentials the user should not be able to show them to anyone except the
intended verifier. This can be useful in preventing abuse of credentials as well as
in controlling who can get to know to whom the credentials were issued.
Let us loosely outline how our identity escrow (group signature) scheme with
appointed verifiers is constructed. To this end we first explain how efficient and
390 J. Camenisch and A. Lysyanskaya
provably secure group signature schemes [2,12] are realized. The public key of
the group can be viewed as a public key of a suitable signature scheme. The
group manager holds the secret key corresponding to this public key. To become
a group member, a user chooses, as membership secret key, an element of a
certain (algebraic) group. The user’s identifier is computed as a one-way function
of this key, for example through exponentiation in a group where computing the
discrete logarithm is conjectured to be hard. The group manager signs (certifies)
this identifier and sends back the signature to the new group member. This
signature is the user’s group membership certificate. To convince a verifier of her
group membership, a user proves in zero-knowledge that she knows a membership
certificate and the corresponding membership secret key. In case of a group
signature scheme, this proof is turned into a signature scheme using the so-
called Fiat-Shamir heuristic [26]. An identity escrow scheme constructed in this
way is provably secure as long as the underlying signature scheme is secure. The
corresponding group signature scheme is provably secure in the random oracle
model. The challenge in designing an efficient identity escrow or group signature
scheme is finding a signature scheme for the group manager and a format for
membership secret keys and corresponding identifiers such that the proof of
membership is efficient.
To extend such a scheme to an identity escrow system with appointed ver-
ifiers, we will have the group manager split the group membership certificate
into two pieces. The first piece will be handed over to the user. The second piece
will be encrypted under the appointed verifier’s public key. It will be easy to
fake a tuple that looks like the first piece of the membership certificate and the
encryption of the second piece. Only the appointed verifier, under whose public
key the encryption is carried out, will be able to verify that a given ciphertext
corresponds to the second piece of a user’s certificate. Together, the two pieces
constitute an unforgeable group membership certificate. To prove group mem-
bership to the appointed verifier, the user could prove possession of his piece of
the membership certificate as before, and then give the verifier a blinded version
of the encrypted piece.
An adversary in this system can try to induce some verifier to accept an
invalid user; or he can try to make it look as though some honest user participated
in a shady transaction; or he can conduct a shady transaction and then try to
avoid anonymity revocation; or he can try to convince another adversary, who is
not an authorized verifier, that some user is a group member. We provide a formal
definition of security against such attacks. For the first time, a formal model for
identity escrow schemes along the lines of an ideal world specification, is given.
These new identity escrow/group signature specifications are more rigorous than
the ones that exist to date. As they are similar to the definitions from the
multi-party computation literature [13,14,37], they integrate with this literature
better than previous specifications did, and so such properties as composability
of protocols can be better understood in this framework (but we do not address
them here). Finally, we formally define the appointed-verifier property, i.e., the
property that no proof system (A, B) exists in which A is a group member, B is
An Identity Escrow Scheme with Appointed Verifiers 391
not the appointed verifier, and yet A acts as a prover and B as a verifier for the
statement that A is a group member, and the gap between the completeness and
soundness of the system is non-negligible. Cryptographic problems of this flavor
have not been sufficiently explored. While receipt-free voting is a relatively well-
studied example [5,30], no formal definition of receipt-freeness has been given,
and it is not well understood what gap between completeness and soundness for
the adversary-verifier in receipt-free voting is satisfactory. Thus, we are the first
to explore this in a formal way and to obtain a scheme that satisfies our strong
and relatively natural definition.
We prove that, under the strong RSA assumption, the decisional compos-
ite residuosity assumption, and the decisional Diffie-Hellman assumptions, our
scheme is secure and has the appointed verifier property.
2 The Model
In this section, we define an ideal identity escrow scheme with appointed ver-
ifiers. Here, an ideal trusted third party takes care of the proper functionality
of the system. Our model captures all the properties of previous ones (without
appointed verifiers) in a natural way. We then define what it means for a real
system to match this specification. We define the system with one group and one
revocation manager; extending it to multiple ones is straightforward. Extending
the model to group signatures can be done as well.
The Ideal System. The ideal system, the functionality of which is ensured by
an ideal trusted party T , is as follows:
Ideal parties: The trusted party T , the group manager M , a set of users U, a set
of verifiers V, and the anonymity revocation manager R.
Ideal communication: All communication is routed through T . If the sender of
a message wishes to be anonymous, he requests that T not reveal his identity
to the recipient. Finally, a sender of a message may request that a session, i.e.,
a block of messages, be established between him and the recipient. This session
then gets a session id sid.
Ideal operations for a general identity escrow scheme:
Join. This operation is a session between a user U and the group manager M .
M tells T that it wants user U to become a member of the group. The user
confirms that he wants to be a member. Upon receiving this messages from
M and U , T sends a key KU to U for further transactions related to his group
membership; he also notifies M of the success of the transaction.
Authenticate. This operation is a session between a user and a verifier V . The
user must send a tuple (K,sid,V ,con) to T , where K denotes a key, sid denotes
a session id, V is the name of the verifier, and con is the condition under which
the identity of the participating user can be established. T verifies that K
is a key that corresponds to some group member (not necessarily the user
from whom the request originates). If so, T tells the verifier V that the user
392 J. Camenisch and A. Lysyanskaya
with whom the verifier has session sid running is a member of the group. V
then either accepts or rejects, and forwards his reply to T . (If T receives no
reply that is equivalent to rejecting.) T then notifies the user of the verifier’s
output.
Identify. This operation is a session between the revocation manager R and the
verifier V . V submits a tuple (sid, con) to T and to R. R asks T to confirm
that sid was an Authenticate operation with revocation condition con. Then
R may ask T to reveal to R the identity of the user who participated in session
sid. Finally, R may ask T to reveal the user’s identity to V .
Join with appointed verifier. This operation is a session between a user U and
the group manager M . As a result, M tells T that user U ’s membership can
be confirmed to verifier V . The user receives a key KU from T for further
transactions related to authenticating his group membership to V .
Authenticate to appointed verifier. This is the same as in the general scheme,
except that T will only carry this out with the appointed verifier V .
Convert. This operation is between a user and the appointed verifier V . V tells
T that the user is now authorized to demonstrate group membership to other
verifiers. T notifies the user of that fact.
Authenticate. This is the same as in the general scheme, except that T will only
carry this out if the user is authorized to demonstrate group membership to
all verifiers.
Identify. This is the same as in the general scheme.
Inputs and outputs of the ideal players: The ideal players are interactive prob-
abilistic Turing machines. Prior to initiating a transaction, a player receives an
input that tells it to do so. These inputs are produced externally. At the end of
the lifetime of the system, each player outputs a list of interactions in which this
player has participated and their outcome (success/failure).
Comparison with previous models. It is easy to see that this ideal model
captures the requirements correctness, anonymity, unlinkability, traceability, ex-
culpability/framing, and coalition-resistance of previous models (e.g., [2]), i.e.,
that the trusted party T ensures them.
the Convert and Identify operations for A and B and V have not engaged in the
Authenticate with appointed verifier protocol in which V accepted such that a
subsequent Identify operation, if carried out, will point to A.
Let F ES (1k , P, L, a, mode), DA,F (1k , P, L, a, mode) be interactive Turing ma-
chines. The mode part of their input specifies their behavior as follows: There
are two modes of operation, the real mode and the fake mode. In the real mode,
F passes the messages received from ES on to D, which in turn passes them on
to A. If A sends any messages to B, D faithfully passes them.
In the fake mode F behaves as follows: If a session sid is a Join with appointed
verifier of user A ∈ A for verifier V , where (A, V ) ∈ L, then F does not pass
A’s messages for sid to M , and does not forward M ’s replies to A for this
sid. Instead, F carries out the Join operation himself, on behalf of A, possibly
guided by additional input from D. It then notifies D whether this Join was
successful. If a session sid is an Authenticate to appointed verifier between A
and V such that (A, V ) ∈ L and the corresponding Join has taken place, then F
does not pass A’s messages for sid to V , and does not forward V ’s replies to D
for this sid. Instead, F carries out the Authenticate operation himself, on behalf
of A, possibly guided by additional input from D. It then notifies D whether this
Authenticate was successful. For all other sessions, F just passes all the messages
to and from D.
In the fake mode, D behaves as follows: For a session sid of Join with ap-
pointed verifier for user A and verifier V where (A, V ) ∈ L, D will create fake
messages and send them to A in place of the group manager’s messages. For
a session sid of Authenticate to appointed verifier D will decide whether this
session is between user A and verifier V , (A, V ) ∈ L. In case it is, D notifies F,
and possibly sends it additional information. D will then create messages to A
in place of V ’s responses. For all other sessions, D passes all the messages to and
from A.
We stress that D does not have the ability to reset B.
q = 2q 0 + 1, and p,q, p0 and q 0 are all prime numbers, and five quadratic residues
modulo n, denoted (a0 , a1 , a2 , a3 , a4 ). (The length of n depends on the size of
the group G.) Each verifier has a public key for the Paillier cryptosystem. A
revocation manager R for this scheme will have a Cramer-Shoup public key in
G. The specifics of how these keys are set up are described in Section 5.1.
For a user with secret key x, a group membership certificate for an appointed
verifier V , will be a quin-tuple (s, Z, c, u, e) such that each of these values lies in
the correct integer interval, u2e = (a0 as1 ax2 Zac4 )2 holds, and c is the encryption
of the value loga3 Z mod n under V ’s public key. We show that such a certifi-
cate is hard to forge under the strong RSA assumption [3,11,23,27,28] and the
assumption that computing discrete logarithms modulo a modulus of this form
is hard. On the other hand, if c is not an encryption of loga3 Z mod n, then this
certificate is easy to forge (Lemma 3). As V is the only entity that can check this,
under the assumption that the Paillier cryptosystem is semantically secure, this
is the first key step towards obtaining the appointed verifier property (the other
key step is discussed at the end of this section). The fact that c is included in the
certificate implies security for the verifier against adaptive attacks even though
the Paillier encryption scheme as such is not secure against these attacks1 . This
membership certificate is issued via a protocol (between the user and the group
manager), that does not allow the group manager to learn x and s, but only h̃x
and as1 ax2 mod n. This protocol is described in detail in Section 5.2.
To prove group membership to V , the user blinds c to obtain c0 , and blinds
Z to obtain Z 0 in such a way that, if c is the encryption of loga3 Z, then c0 is
the encryption of loga3 Z 0 . This is why we use the Paillier cryptosystem: the
additive homomorphism property of the Paillier scheme is crucial for this step.
c0 and Z 0 are given to the verifier. Further, the user proves knowledge of a tuple
(x, s, c, Z, u, e, r) such that (s, Z, c, u, e) is a group membership tuple for key x,
and r is the randomizer used to blind (c, Z) to obtain (c0 , Z 0 ). In addition, to
enable anonymity revocation, the user provides an encryption E of his identifier
h̃x under the anonymity revocation manager’s public key and proves that E is
a valid encryption of an identifier that is based on the same x as the group
membership certificate. These proofs are done using efficient statistical zero-
knowledge discrete-logarithm-based proofs of knowledge. The fact that these
proofs are zero-knowledge and that the user blinds c and Z give us anonymity
for the user. These proofs are described in detail in Section 5.3. Finally, the
verifier checks that (1) c0 is an encryption of loga3 Z 0 , and (2) the user carried
out the proofs correctly. If so, the verifier accepts.
To convert an appointed-verifier membership certificate into a universally
verifiable membership certificate, the appointed verifier reveals loga3 Z 0 to the
user. Under the strong RSA assumption and the hardness of discrete logarithms
1
This step resolves the following paradox: On the one hand, we want the encryption
scheme to be malleable, so that the user can successfully blind the ciphertext c. On
the other hand, we want it to be secure against adaptive attacks by malicious users.
Thus c is created by the group manager.
An Identity Escrow Scheme with Appointed Verifiers 397
modulo n, the resulting tuple, (x, s, z, c, u, e) is hard to forge (cf. full version of
this paper [10]).
Let us finally discuss the second key element to achieve the appointed verifier
property: requiring a user to verifiably encrypt, under her own public key, some
of the secrets she uses in the Authenticate to appointed verifier protocol. This is
necessary as, in essence, the definition for this property requires that no matter
how adversary A behaves, and no matter how often and when A and B exchange
messages, there is nothing A can convince B of that D (in fake mode) would
not be able to convince him of either. Running in fake mode requires D to
know a great deal about the internal information of A. Traditionally, this would
be realized by allowing D black-box access to A and the ability to rewind it.
However, as we allow message exchanges between A and B at arbitrary times,
arbitrarily interleaved with other executions, this is not possible as it would
require D to have black-box access to other players as well (in particular those
controlled by B). Thus, D must somehow contain a knowledge extractor that
does not rewind A. D will instead extract what it needs to know from the
verifiably encrypted secrets. Thus, we need the public-key model: in this model,
A and, as a consequence, D, will receive as input the secret keys of all the players
controlled by A.
4 Preliminaries
We use notation introduced by Camenisch and Stadler [12] for the various proofs
of knowledge of discrete logarithms and proofs of the validity of statements about
discrete logarithms. For instance,
knowledge of the secret key to some entity, say the CA. Specifically, some group
G̃ = hg̃i = hh̃i of prime order q̃, such that logg̃ h̃ is unknown. Also, each user
has a secret key an x ∈R Zq , and a corresponding public key S̃U = h̃x . The user
has submitted this S̃U to the CA of this public-key infrastructure and and has
executed PK{(α) : S̃U = h̃α } with the CA. The CA sends the user a signature
on S̃U and publishes S̃U and the user’s name.
In addition, to get security in case the protocols are executed concurrently,
we assume that all zero-knowledge proofs (PK ) are carried out using the con-
struction due to Damgård [24]. This requires to initially set up public keys for a
trapdoor commitment scheme.
Other security-related system parameters are as follows: the length `n of the
RSA modulus of the group manager, integer intervals Γ = ] − 2`Γ , 2`Γ [, ∆ =
] − 2`∆ , 2`∆ [, Λ = ]2`Λ , 2`Λ +`Σ [ such that q̃ < 2`Γ , `∆ = (4`n + 3) and `Γ = 2`n ,
where > 1 is a security parameter, and `Λ > `Σ +`∆ +4 . Furthermore, let `v be
the length of the RSA modulus of the verifier for Paillier’s encryption scheme [35].
We require that 2`v < `Γ holds. There further are `z and `r with `z > `r + 1
and `z + `r + 1 < `v . Define the integer intervals Ω =]2`z − 2`r , 2`z + 2`r ,
Φ =] − 2`r , 2`r [, and Ω 0 =]2`z − 2`r +1 , 2`z + 2`r +1 [ (`r must be large enough
to make computing an `r -bit discrete logarithm modulo an `n -bit RSA modulus
hard, where the modulus is the product of two safe primes.)
The public key of the group manager consists of an `n -bit RSA modulus
n = pq = (2p0 + 1)(2q 0 + 1) that is the product of two safe primes, and random
elements a4 , a3 , a2 , a1 , a0 , g, h ∈R QRn of maximal order. The factorization of n
is the group manager’s secret key. The revocation manager sets up his public
and secret key for the Cramer-Shoup encryption scheme [22] over G̃ (i.e., the
group that comes from the public-key infrastructure), i.e., x1 , . . . , x5 ∈R Zq̃ are
the secret keys and (y1 := g̃ x1 h̃x2 , y2 := g̃ x3 h̃x4 , y3 := g̃ x5 ) constitutes the public
key. The revocation manager also publishes a collision-resistant hash function
H.
Each user also publishes an `n -bit RSA modulus nU that is the product of
two safe primes and two generators gU and hU of QRn .
Each appointed verifier chooses a public key (nv , gv ) of the Paillier encryption
scheme, where nv is an `v bit RSA modulus and gv = 1 + nv (mod n2v ). The
verifier also publishes Ĝ = hĝi = hĥi of order n2v .
Remark: In step 7 the GM proves that it knows either the user’s secret x =
logh̃ S̃U or that c is an encryption of loga3 Z so as to leave no evidence to the
user that the protocol took place.
An Identity Escrow Scheme with Appointed Verifiers 401
and in
1 ε 1 ψ
PK (α, β, γ, δ, ζ, ε, ϕ, ξ, ν, µ, ψ, ϑ, ς) : 1 = (T22 )α 2 ∧
g h2
1 β 1 ν 2 ϑ 1 ϕ 1 ε
a20 Z̃ 2 = (T12 )α 2 (a3 ) ∧ T22 = (g 2 )δ (h2 )ζ ∧
a1 a22 a24 h2
T32 = (g 2 )ϑ (h2 )ς ∧ ĝ c̃ = T̂ ϕ ĥκ ∧ ṽ = ũν ∧ ũ = h̃γ ∧
H(E1 kE2 kE3 kcon) ξ
E1 = g̃ ξ ∧ E2 = h̃ξ ∧ E3 = h̃ν y3ξ ∧ E4 = (y1 y2 ) ∧
α∈Λ∧β ∈∆∧ν ∈Γ ∧ϑ∈Φ∧ϕ∈ [1, n2v − 1] .
6. The verifier decrypts c̃ to get z̃ and checks whether Z̃ = az̃3 (mod n) and
whether z̃ ∈ Ω 0 .
402 J. Camenisch and A. Lysyanskaya
Let us consider the efficiency of the above verifiable encryption protocol. Re-
call that verifiable encryption works by repeating the underlying PK sufficiently
many times, e.g., k = 80 times. Assuming that exponentiation with a 2`n -bit
modulus corresponds to about 8 exponentiations with an `n -bit modulus, the
total computational load of both the prover and the verifier for the verifiable
encryption protocol amounts to 17k exponentiations with an `n -bit modulus
and about 42 exponentiations with an `n -bit modulus for the PK. On the ver-
ifier’s side, this load can be considerably reduced by applying so-called batch
verification [4].
This paragraph briefly discusses how an appointed verifier can convert an ap-
pointed-verifier membership certificate into an ordinary membership certificate
and how a group member can then convince anyone of her group membership.
To convert a certificate, the user and the verifier first carry out the authenti-
cate with appointed verifier operation. If this operation is successful, the verifier
can provide the user with the decryption of c̃. This will allow the user to com-
pute the value z encrypted as c. Thus she holds values (x, s, z, c, u, e) such that
u2e = (ac4 az3 ax2 as1 a0 )2 mod n, i.e., a valid group membership certificate. Proving
possession of this certificate, i.e., authenticating as a group member to any ver-
ifier, can now be done similarly to the way it is done for an appointed verifier
above. The only difference is that there is no encryption c̃ and no commitments
T3 and T̂ , and hence the corresponding parts in the proof-protocol are dropped:
First, steps 2 and 5 are no longer needed; second, in step 4 the verifiable en-
cryption protocol is not needed and in the PK the first term of the expression
1 β 1 ν 1 ϑ 1 ϕ 1 ε
proved is replaced by a20 = (T12 )α 2 while the terms
a1 a22 a23 a24 h2
T32 = (g 2 )ϑ (h2 )ς , ĝ c̃ = T̂ ϕ ĥκ , ṽ = ũν , and ũ = h̃γ are dropped. The fact that
the verifiable encryption protocol is no longer needed makes the whole protocol
much more efficient as it was the bulk of the computational load.
We outline how security is proven and state the important theorems and lemmas.
For details and all the proofs we refer to the full version of this paper [10].
An Identity Escrow Scheme with Appointed Verifiers 403
Protecting the Honest Players. Security for the honest players is proven by
providing a simulator that satisfies Definition 1. The simulator will create cryp-
tographic instantiations for the honest parties. For every transaction between
the adversary and an honest party, the simulator will execute its cryptographic
part on behalf of these honest parties. If the cryptographic implementation of
a protocol prescribes that a real-world honest player should behave in a way
that is different from the underlying ideal-world player, then the simulator re-
jects. (This can happen if an adversary succeeds in proving group membership
in such a way that the simulator is unable to extract a secret key to which a
membership certificate was issued in a previous transaction. As a result, an ideal
trusted party would tell the ideal verifier to reject the adversary’s user, while the
cryptographic implementation would dictate the real-world verifier to accept.)
This simulator is constructed [10] in the usual way, with the following sub-
tle difference: in the Authenticate protocol, when an honest user interacts with
a dishonest verifier, the simulator does not get to know which user it is and
hence does not know which user to simulate towards the the verifier. There are
two cases to consider here, one where the revocation manager is honest and one
where he is not. For brevity we will address only the former case here: The sim-
ulator forms a ciphertext E that is an encryption of 0 the revocation manager’s
public key. He then creates a random public key P = (ũ, ṽ) for the verifiable
encryption and chooses r̃1 ∈R Φ, r̃2 ∈R Znv , and T1 ,T2 and T̂ at random from
their corresponding domains. Then, the simulator sends (Z 0 , c0 , T1 , T2 , T̂ , E, P )
to the adversary and carries out the verifiable encryption protocol:
ϑ n
VE(ElGamal, (ũ, ṽ)) (%, ϑ, ς) : T̂ = ĝ gv % ĥµ ∧ T32 = (g 2 )ϑ (h2 )ς ∧ ϑ ∈ Φ
with the adversary and finally runs the simulator for the view of the verifier in
the group membership proof protocol described in Section 5.3.
The following lemma follows from the semantic security of the verifiable
encryption scheme, as well as from adaptive chosen-ciphertext security of the
encryption scheme under which the users’ identifiers are encrypted [10].
The only thing left to prove security is to show that the simulator almost
never rejects. We observe that the only case when the simulator rejects is when
the adversary demonstrates group membership for an unauthorized user-verifier
pair. We show [10] that if this simulator rejects non-negligibly often, then ei-
ther there exists a polynomial-time algorithm for forging membership certifi-
cates (thus violating the strong RSA assumption or the discrete logarithm as-
sumption), or there exists a polynomial-time algorithm for cracking the Paillier
cryptosystem, or there exists a way to circumvent the knowledge extractor for
one of the proofs of knowledge:
404 J. Camenisch and A. Lysyanskaya
Lemma 2. Under the strong RSA assumption, the hardness of discrete loga-
rithms modulo a safe prime product, and the security of Paillier cryptosystem,
the simulator rejects with only negligible probability.
Based on this way of forging a single membership certificate, we can now build
a deceiver D. In fake mode, on input a list L, D does not forward the messages
pertaining to Join with appointed verifier for user A and verifier V if (A, V ) ∈ L.
Instead, he impersonates the group manager GM to A. D proceeds as follows: it
conducts steps 1 through 4 of the Join with appointed verifier protocol exactly
the same way as GM would to get an input S. Then it creates a fake certificate
(Z, c, e, u) using the forger described above. As the secret key x = logh̃ S̃U of
user A was given to D as input, D succeeds in carrying out the PK in step 7. It
then stores this certificate.
For (A, V ) ∈/ L, D forwards all the messages, and, in case of a successfully
carried out Join, stores the certificate.
An Identity Escrow Scheme with Appointed Verifiers 405
6 Concluding Remarks
We note that in order to implement several identity escrow schemes at the same
time using our methods, the set-up, apart from the public-key infrastructure, has
to be repeated for each instance. In particular, the public keys of the verifiers
will have to be different for each instance. It is an interesting question whether
it would be possible to avoid this and yet have a practical construction that
is secure against adaptive attacks. It is also interesting whether the public-key
model can be eliminated from the picture.
An appointed-verifier identity escrow scheme is only the first step towards
a bigger goal of realizing protocols in which it is provably hard to convince an
unauthorized party of the truth of some statement. It would be interesting to
apply our methods in the context of electronic voting and consider existing voting
schemes and how close they come to satisfying an appropriate modification of
our definition, and, if a gap appears, whether the techniques developed in this
paper could resolve it.
References
1. N. Asokan, V. Shoup, and M. Waidner. Optimistic fair exchange of digital signa-
tures. IEEE Journal on Selected Areas in Communications, 18(4):591–610, 2000.
2. G. Ateniese, J. Camenisch, M. Joye, and G. Tsudik. A practical and provably
secure coalition-resistant group signature scheme. In CRYPTO 2000, vol. 1880 of
LNCS, pp. 255–270. Springer Verlag, 2000.
3. N. Barić and B. Pfitzmann. Collision-free accumulators and fail-stop signature
schemes without trees. In EUROCRYPT ’97, vol. 1233 of LNCS, pp. 480–494.
4. M. Bellare, J. A. Garay, and T. Rabin. Fast batch verification for modular expo-
nentiation and digital signatures. In EUROCRYPT ’98, vol. 1403 of LNCS, pp.
236–250. Springer Verlag, 1998.
5. J. C. Benaloh and D. Tuinstra. Receipt-free secret-ballot elections (extended ab-
stract). In Proc. 26th STOC, pp. 544–553. ACM, 1994.
6. S. Brands. Untraceable off-line cash in wallets with observers. In CRYPTO ’93,
vol. 773 of LNCS, pp. 302–318, 1993.
7. J. Camenisch. Efficient anonymous fingerprinting with group signatures. In ASI-
ACRYPT 2000, vol. 1976 of LNCS, pp. 415–428. Springer Verlag, 2000.
8. J. Camenisch and I. Damgård. Verifiable encryption, group encryption, and their
applications to group signatures and signature sharing schemes. In ASIACRYPT
2000, vol. 1976 of LNCS, pp. 331–345, 2000.
9. J. Camenisch and A. Lysyanskaya. Efficient non-transferable anonymous multi-
show credential system with optional anonymity revocation. In EUROCRYPT
2001, vol. 2045 of LNCS, pp. 93–118. Springer Verlag, 2001.
10. J. Camenisch and A. Lysyanskaya. An identity escrow scheme with appointed
verifiers. http://eprint.iacr.org/2001, 2001.
11. J. Camenisch and M. Michels. A group signature scheme with improved efficiency.
In ASIACRYPT ’98, vol. 1514 of LNCS, pp. 160–174. Springer Verlag, 1998.
12. J. Camenisch and M. Stadler. Efficient group signature schemes for large groups.
In CRYPTO ’97, vol. 1296 of LNCS, pp. 410–424. Springer Verlag, 1997.
An Identity Escrow Scheme with Appointed Verifiers 407
1 Introduction
This work deals with the oldest and probably most important problem of cryp-
tography: enabling private and reliable communication among parties that use
a public communication channel. Loosely speaking, privacy means that nobody
besides the legitimate communicators may learn the data communicated, and
reliability means that nobody may modify the contents of the data communi-
cated (without the receiver detecting this fact). Needless to say, a vast amount of
research has been invested in this problem. Our contribution refers to a difficult
and yet natural setting of two parameters of the problem: the adversaries and
the initial set-up.
We consider only probabilistic polynomial-time adversaries. Still even within
this framework, an important distinction refers to the type of adversaries
one wishes to protect against: passive adversaries only eavesdrop the channel,
whereas active adversaries may also omit, insert and modify messages sent over
the channel. Clearly, reliability is a problem only with respect to active adver-
saries (and holds by definition w.r.t passive adversaries). We focus on active
adversaries.
?
Supported by the MINERVA Foundation, Germany.
1
We stress that many famous key-exchange protocols, such as the one of Diffie and
Hellman [15], refer to a passive adversary. In contrast, this paper refers to active
adversaries.
410 O. Goldreich and Y. Lindell
Caveat: Our protocol is proven secure only when assuming that the same pair
of parties (using the same password) does not conduct several concurrent ex-
ecutions of the protocol. We stress that concurrent sessions of other pairs of
parties (or of the same pair using a different password), are allowed. See further
discussion in Sections 1.4 and 2.5.
1.3 Techniques
One central idea underlying our protocol is due to Naor and Pinkas [30]. They
suggested the following protocol for the case of passive adversaries, using a secure
protocol for polynomial evaluation.4 In order to generate a session-key, party A
first chooses a random linear polynomial Q(·) over a large field (which contains
the dictionary of passwords). Next, A and B execute a secure polynomial evalu-
ation in which B obtains Q(w), where w is their joint password. The session-key
is then set to equal Q(w).
In [10] it was suggested to make the above protocol secure against active ad-
versaries, by using non-malleable commitments. This suggestion was re-iterated
to us by Moni Naor, and in fact our work grew out of his suggestion. In order to
obtain a protocol secure against active adversaries, we augment the abovemen-
tioned protocol of [30] by several additional mechanisms. Indeed, we use non-
malleable commitments [16], but in addition we also use a specific zero-knowledge
proof [32], ordinary commitment schemes [7], a specific pseudorandom generator
(of [9,36,8]), and message authentication schemes (MACs). The analysis of the
resulting protocol is very complicated, even when the adversary initiates a single
session. As explained below, we believe that these complications are unavoidable
given the current state-of-art regarding concurrent execution of protocols.
Although not explicit in the problem statement, the problem we deal with
actually concerns concurrent executions of a protocol. Even in case the adver-
sary attacks a single session among two legitimate parties, its ability to modify
messages means that it may actually conduct two concurrent executions of the
protocol (one with each party).5 Concurrent executions of some protocols were
analyzed in the past, but these were relatively simple protocols. Although the
high-level structure of our protocol can be simply stated in terms of a small
number of modules, the currently known implementations of some of these mod-
ules are quite complex. Furthermore, these implementations are not known to
be secure when two copies are executed concurrently. Thus, at the current state
of affairs, the analysis cannot proceed by applying some composition theorems
to (two-party) protocols satisfying some concurrent-security properties (because
suitable concurrently-secure protocols and composition theorems are currently
unknown). Instead, we have to analyze our protocol directly. We do so by reduc-
ing the analysis of (two concurrent executions of) our protocol to the analysis
of non-concurrent executions of related protocols. Specifically, we show how a
4
In the polynomial evaluation functionality, party A has a polynomial Q(·) over some
finite field and Party B has an element x of the field. The evaluation is such that
A learns nothing, and B learns Q(x); i.e., the functionality is defined by (Q, x) 7→
(λ, Q(x)).
5
Specifically, the adversary may execute the protocol with Alice while claiming to be
Bob, concurrently to executing the protocol with Bob while claiming to be Alice,
where these two executions refer to the same joint Alice–Bob password.
414 O. Goldreich and Y. Lindell
1.4 Discussion
Concurrent executions: Our protocol is proven secure only when the same pair
of parties (using the same password) does not conduct several concurrent exe-
cutions of the protocol. (We do allow concurrent executions that use different
passwords.) Thus, actual use of our protocol requires a mechanism for ensuring
that the same password is never used in concurrent executions. A simple mech-
anism enforcing the above is to disallow a party to enter an execution with a
particular password if less than ∆ units of time have passed since a previous ex-
ecution with the same password. Furthermore, an execution must be completed
within ∆ units of time; that is, if ∆ time units have elapsed then the execution
is suspended. See Section 2.5 for further details. Indeed, it is desirable not to
employ such a timing mechanism, and to prove that security holds also when
many executions are conducted concurrently using the same password.
Efficiency: It is indeed desirable to have more efficient protocols than the one
presented here. Some of our techniques may be useful towards this goal.
Independently of our work, Katz, Ostrovsky and Yung [25] presented a protocol
for session-key generation based on passwords. Their protocol is incomparable
to ours. On one hand, their protocol uses a stronger set-up assumption (i.e.,
public parameters selected by a trusted party), and a seemingly stronger in-
tractability assumption (i.e., the Decisional Diffie-Hellman). On the other hand,
their protocol seems practical and is secure in an unrestricted concurrent setting.
Session-Key Generation Using Human Passwords Only 415
Recall that the thrust of our work is in demonstrating the feasibility of perform-
ing session-key generation based on passwords only (i.e., without any additional
set-up assumptions).
2 Formal Setting
In this section we present notation and definitions that are specific to our set-
ting, culminating in a definition of Authenticated Session-Key Generation. Given
these, we state our main result.
who receives the parties inputs and (honestly) returns to each party its output,
as designated by the functionality.
An important observation in the context of password-based security is that,
in a real execution, an adversary can always attempt impersonation by simply
guessing the secret password and participating in the protocol, claiming to be
one of the parties. If the adversary’s guess is correct, then impersonation always
succeeds (and, for example, the adversary knows the generated session-key).
Furthermore, by executing the protocol with one of the parties, the adversary
can verify whether or not its guess is correct, and thus can learn information
about the password (e.g., it can rule out an incorrect guess from the list of
possible passwords). Since the dictionary may be small, this information learned
by the adversary in a protocol execution may not be negligible at all. Thus,
we cannot hope to obtain a protocol that emulates an ideal-model execution
(in which C learns nothing) up to computational indistinguishability. Rather,
the inherent limitation of password-based security is accounted for by (only)
requiring that a real execution can be simulated in the ideal model such that the
output distributions (in the ideal and real models) are (1−O())-indistinguishable
(rather than 1-indistinguishable), where (as defined above) = 1/|D|.
We note that the above limitation applies only to active adversaries who
control the communication channel. Therefore, in the case of a passive (eaves-
dropping) adversary, we demand that the ideal and real model distributions be
computationally indistinguishable (and not just (1 − O())-indistinguishable).
We now define the ideal and real models and present the formal definition of
security.
The ideal model: Let  and B̂ be honest parties and let Ĉ be any ppt ideal-
model adversary (with arbitrary auxiliary input σ). An ideal-model execution
proceeds in the following phases:
where send(Ĉ(σ)) denotes the value sent by Ĉ (to the trusted party), on auxiliary
input σ.
The real model: Let A and B be honest parties and let C be any ppt real-
model adversary with arbitrary auxiliary input σ. As in the ideal model, the
real model begins with an initialization stage in which both A and B receive
an identical, uniformly distributed password w ∈R D. Then, the protocol is ex-
ecuted with A and B communicating via C.8 The execution of this protocol is
denoted C A(w),B(w) (σ) and we augment C’s view with the accept/reject decision
bits of A and B (this decision bit denotes whether a party’s private output is
a session-key or ⊥). This formal requirement is necessary, since in practice this
information can be implicitly understood from whether or not the parties con-
tinue communication after the session-key generation protocol has terminated.
(We note that in our specific formulation, A always accepts and thus it is only
necessary to provide C with the decision-bit output by B.) The real distribution
is defined as follows:
def
realC (D, σ) = (w, output(A), output(B), output(C A(w),B(w) (σ)))
The definition of security: Loosely speaking, the definition requires that a secure
protocol (in the real model) emulates the ideal model (in which a trusted party
participates). This is formulated by saying that adversaries in the ideal model are
able to simulate the execution of a real protocol, so that the input/output distri-
bution of the simulation is (1 − O())-indistinguishable from in a real execution.
We further require that passive adversaries can be simulated in the ideal-model
so that the output distributions are computationally indistinguishable (and not
just (1 − O())-indistinguishable).9
1. Passive adversaries: For every ppt real-model passive adversary C there exists
a ppt ideal-model adversary Ĉ such that for every dictionary D ⊆ {0, 1}n and
every auxiliary input σ ∈ {0, 1}poly(n)
c
idealĈ (D, σ) D,σ
≡ {realC (D, σ)}D,σ
def 1
where = |D| . We stress that the constant in O() is a universal one.
the password and between session-keys from different sessions. Thus, learning the
password does not compromise the security of the session-key and visa versa.10
An additional property that is desirable is that of intrusion detection. That
is, if the adversary modifies any message sent in a session, then with probability
at least (1 − O()) this is detected and at least one party rejects. This property
is not guaranteed by Definition 2 itself; however, it does hold for our protocol.
Combining this with Item 1 of Definition 2 (i.e., the requirement regarding pas-
sive adversaries), we conclude that in order for C to take advantage of its ability
to learn “O()-information” C must expose itself to the danger of being detected
with probability 1 − O().
Finally, we observe that the above definition also enables mutual-
authentication. This is because A’s output session-key is always (1 − O())-
pseudorandom to the adversary. As this key is secret, it can be used for explicit
authentication via a (mutual) challenge/response protocol.11 By adding such a
step to any secure session-key protocol, we obtain explicit mutual-authentication.
protocol that is secure for a single invocation between two parties (i.e., as in
Definition 2), is secure in the multi-party and sequential invocation case.
Many Invocations by Two Parties. Let A and B be parties who invoke t se-
quential executions of a session-key generation protocol. Given that we wish that
an adversary gains no more than O(1) password guesses upon each invocation,
the security upon the t’th invocation should be O(t). That is, we consider ideal
and real distributions consisting of the outputs from all t executions. Then, we
require that these distributions be (1 − O(t))-indistinguishable. It can be shown
that any secure protocol for password-based authenticated session-key genera-
tion maintains O(t) security after t sequential invocations. Details are given in
the full version of this work.
Many Parties. In the case where many parties execute the session-key pro-
tocol simultaneously, we claim that for m invocations of the protocol (which
must be sequential for the same pair of parties and may be concurrent other-
wise), the security is O(m). We assume that different pairs of parties (executing
concurrently) have independently distributed passwords. Then, the security is
derived from the single-session case by noting that sessions with independently
distributed passwords can be perfectly simulated by an adversary.
422 O. Goldreich and Y. Lindell
w w
? ?
Party A Party B
Q ∈R {0, 1}2n
NM-Commit(Q, w) -
QH w
HH
j
Secure Polynomial
Evaluation
HH
j
Q(w)
f 2n (Q(w))
-
ZK-proof of consistency-
MAC of transcript -
Decision
Output key: If accept, output key:
k2 (Q(w)) k2 (Q(w))
behaves passively, then B clearly accepts (as in the case of honest parties A and
B that execute the protocol without any interference). On the other hand, if
C does not behave passively, then (by our assumption regarding the security of
the MAC) B rejects. However, C itself knows whether or not it behaved pas-
sively and therefore can predict whether or not B will reject. In other words,
the accept/reject bit output by B is simulatable (by C itself). We proceed by
observing that this bit is the only meaningful message sent by B during the
protocol: apart from in the polynomial evaluation, the only messages sent by
B are as the receiver in a non-malleable commitment protocol and the verifier
in a zero-knowledge proof (clearly, no knowledge of the password w is used by
B in these protocols). Furthermore, the polynomial evaluation is such that only
B receives output. Therefore, intuitively, the input used by B is not revealed
by the execution; equivalently, the view of C is (computationally) independent
of B’s input w (this can be shown to hold even in our concurrent setting). We
conclude that all messages sent by B during the execution can be simulated
without knowledge of w. Therefore, by indeed simulating B, we can reduce the
concurrent scenario involving A, C and B to a (standard) two-party setting be-
tween A and C. In this setting, we can then apply standard tools and techniques
for simulating C’s view in its interaction with A, and conclude that the entire
real execution is simulatable in the ideal model.
Thus, the basis for simulating C’s view lies in the security of the MAC in our
scenario. Indeed, the MAC is secure when the parties using it (a priori) share a
random MAC-key; but in our case the parties establish the MAC-key during the
protocol, and it is not clear that this key is random nor the same in the view
of both parties. In order to justify the security of the MAC (in our setting), we
show that two properties hold. Firstly, we must show that with high probability
either A and B hold the same MAC key or B is going to reject anyhow (and C
knows this). Secondly, we need to show that this (identical) MAC-key held by A
and B has “sufficient pseudorandomness” to prevent C from successfully forging
a MAC. The proof of these properties (especially the first one) is very involved
and makes up a major part of the proof, which is presented in the full version
of this work.
1
where w ∈R D, Q is a random linear polynomial, and = |D| .
Proof: We prove the theorem by first showing how the (C, B) execution can
be simulated so that C’s view in the simulation is negligibly close to in a real
interaction. Then, we remain with a stand-alone execution between A and C
only. In this scenario, we apply the standard definition of secure two-party com-
putation to conclude that C learns at most “-information” about w and Q(w).
The fact that the (C, B) execution can be simulated is formally stated as follows
A(Q)
(in the statement of the lemma below, C 0 denotes a stand-alone execution
of C with A upon input Q):
Lemma 8 (simulating the (C, B) execution): For every ppt adversary C inter-
acting with both A and B, there exists a ppt adversary C 0 interacting with A
only, such that for every dictionary D ⊆ {0, 1}n ,
n o c n o
A(Q)
w, Q(w), output(C A(Q),B(w) ) ≡ w, Q(w), output(C 0 )
Proof: Loosely speaking, we prove this lemma by showing that B’s role in
the (C, B) execution can be simulated without any knowledge of w. Thus, C 0 is
able to simulate B’s role for C and we obtain the lemma. We begin by showing
that C learns nothing of B’s input w from the (C, B) polynomial evaluation.
This is trivial in a stand-alone setting by the definition of the functionality; here
we claim that it also holds in our concurrent setting. Formally, we show that
if B were to use some fixed w0 ∈ D instead of the password w, then this is
indistinguishable to C (when also interacting concurrently with A). That is,
n o c n 0
o
w, Q(w), output(C A(Q),B(w) ) ≡ w, Q(w), output(C A(Q),B(w ) ) (1)
B(w)
where C 00 (Q) denotes a stand-alone execution of C 00 (given input Q) with B
(who has input w). Machine C 00 works by playing A’s role in the (A, C)-execution
Session-Key Generation Using Human Passwords Only 429
and forwarding all messages belonging to the (C, B)-execution between C and B
(notice that C 00 can play A’s role because it knows Q). We therefore remain with
a stand-alone setting between C 00 (given auxiliary input Q) and B, in which B
inputs either w or w0 into the polynomial evaluation. In this stand-alone setting,
the security of the polynomial evaluation guarantees that C 00 can distinguish the
input cases with at most negligible probability. That is, for every ppt adversary
C 00 , it holds that
n o c n o
B(w) B(w0 )
w, Q(w), output(C 00 (Q)) ≡ w, Q(w), output(C 00 (Q)) (4)
Eq. (1) then follows by combining Equations (2), (3) and (4). In summary, we
have shown that even in our concurrent setting where C interacts with both A
and B, the adversary C cannot distinguish the cases that B inputs w or w0 .
We are now ready to show how C 0 works (recall that C 0 interacts with A
only and its aim is to simulate a concurrent execution with A and B for C).
Machine C 0 begins by selecting an arbitrary w0 ∈ D. Then, C 0 perfectly emulates
A(Q),B(w0 )
an execution of C by playing B’s role in the (C, B) execution and
forwarding all messages belonging to the (A, C) execution between A and C
(C 0 can play B’s role here because w0 is known to it). By Eq. (1) we conclude
that this emulation is computationally indistinguishable from a real execution
of C A(Q),B(w) . This completes the proof of the lemma.
(We remark that the proof of Lemma 8 is typical of many of our proofs. Our goal
is to obtain a reduction from the concurrent setting to the stand-alone setting
between A and C, and we obtain this reduction by simulating B. However,
in order to show that this simulation is “good” we first reduce the concurrent
setting to a stand-alone setting between C and B by simulating A.)
It remains to show that C 0 ’s view of its (stand-alone) interaction with A can be
simulated and that in this interaction, C 0 learn at most “-information” about
w and Q(w). Formally,
Lemma 9 (simulating the (A, C 0 ) stand-alone execution): For every ppt ad-
versary C 0 interacting with A, there exists a ppt machine Ĉ (interacting with
nobody) such that for every dictionary D ⊆ {0, 1}n ,
n o n o
A(Q)
w, Q(w), output(C 0 ) ≡ w, Un , output(Ĉ)
1
where w ∈R D, Q is a random linear polynomial and = |D| .
Proof: The setting of this lemma is already that of standard two-party com-
putation. Therefore, the security definition of two-party computation can be
applied directly in order to prove the lemma. We sketch this more standard
proof for the sake of completeness. We begin by showing that
n o n o
A(Q) A(Q)
w, Q(w), output(C 0 ) ≡ w, Un , output(C 0 ) (5)
In order to prove Eq. (5), recall that the security of the polynomial evaluation
implies that the receiver (here played by C 0 ) can learn nothing beyond the value
430 O. Goldreich and Y. Lindell
References
1 Introduction
RSA was invented in 1977 by Rivest, Shamir and Adleman [8], and is now the
most widely used public-key cryptosytem. RSA is commonly used for providing
privacy and authenticity of digital data, and securing web traffic between servers
and browsers.
A very common practice for signing with RSA is to first hash the message,
add some padding, and then raise the result to the power of the decryption
exponent. This paradigm is the basis of numerous standards such as PKCS #1
v2.0 [9].
In this paper, we consider RSA signatures with fixed-pattern padding, with-
out using a hash function. To sign a message m, the signer concatenates a fixed
padding P to the message, and the signature is obtained by computing:
s = (P |m)d mod N
where d is the private exponent and N the modulus.
More generally, we consider RSA signatures in which a simple affine redun-
dancy is used. To sign a message m, the signer first computes:
w is the multiplicative redundancy
R(m) = ω · m + a where (1)
a is the additive redundancy
Fig. 1. Example of an RSA padding forgeable by De Jonge and Chaum’s method where
ω = 1 and a = FF . . . FF 00 . . . 0016
|N |/2 |N |/2
←−−−−−−−−−−−−−−−−−−−−−−−−−−−−→←−−−−−−−−−−−−−−−−−−−−−−−−−−−−→
FF . . . . . . . . . . . . . . . . . . . . . . . . . . . FF16 Message
Fig. 2. Example of an RSA padding forgeable by Girault and Misarsky’s method where
ω = 1 and a = FF . . . FF 00 . . . 0016
s = R(m)d mod N
1
|message| |N |
2
Cryptanalysis of RSA Signatures with Fixed-Pattern Padding 435
Fig. 3. Example of an RSA padding forgeable by our technique where the ω is equal
to one and a = FF . . . FF 00 . . . 0016
Girault and Misarsky also extended the multiplicative attacks to RSA signa-
tures with modular redundancy:
R(m) = ω1 · m + ω2 · (m mod b) + a (2)
where ω1 , ω2 is the multiplicative redundancy, a is the additive redundancy and
b is the modular redundancy. In this case, the size of the message must be at
least half the size of the modulus plus the size of the modular redundancy.
Finally, Girault and Misarsky’s attack was extended by Misarsky [5] at
Crypto ’97 to a redundancy function in which the message m and the modular
redundancy m mod b can be split into different parts, using the LLL algorithm
[4]. The attack applies when the size of the message is at least half the size of
the modulus plus the size of the modular redundancy.
In this paper, we extend Girault and Misarsky’s attack against RSA signa-
tures with affine redundancy to messages of size as small as one third of the size
of the modulus, as illustrated in figure 3.
1
|N |
|message|
3
As Girault and Misarsky’s attack, our attack applies for any w and a and runs
in polynomial time. However, our attack is existential only, as we cannot choose
the message the signature of which we forge, whereas Girault and Misarsky’s
attack is selective: they can choose the message which signature is forged.
Since −N 1/3 < z < N 1/3 and y ≥ N 1/3 , we have y + z > 0, which gives using
u≥0:
u + t · (y + z)
x+t= ≥0
y
which shows that the four integers m1 , m2 , m3 and m3 are non-negative, and
we have
R(m1 ) · R(m2 ) = R(m3 ) · R(m4 ) mod N
x · y = (P + t) · z mod N
4 Conclusion
We have extended Girault and Misarsky’s attack on RSA signatures with affine
redundancy: we described a chosen message attack against RSA signatures with
affine redundancy for messages as small as one third of the size of the modulus.
Consequently, when using a fixed padding P |m or m|P , the size of P must be
at least two-thirds of the size of N . Our attack is polynomial in the length of
the modulus. It remains an open problem to extend this attack to even smaller
438 E. Brier et al.
References
1. W. De Jonge and D. Chaum, Attacks on some RSA signatures. Proceedings of
Crypto ’85, LNCS vol. 218, Springer-Verlag, 1986, pp. 18-27.
2. M. Girault and J.-F. Misarksy, Selective forgery of RSA signatures using redun-
dancy, Proceedings of Eurocrypt ’97, LNCS vol. 1233, Springer-Verlag, 1997, pp.
495–507.
3. M. Girault, P. Toffin and B. Vallée, Computation of approximation L-th roots
modulo n and application to cryptography, Proceedings of Crypto ’88, LNCS vol.
403, Springer-Verlag, 1988, pp. 100–117.
4. A. K. Lenstra, H.W. Lenstra and L. Lovász, Factoring polynomials with rational
coefficients, Mathematische Annalen, vol. 261, n. 4, 1982, pp. 515–534.
5. J.-F. Misarsky, A multiplicative attack using LLL algorithm on RSA signatures
with redundancy, Proceedings of Crypto ’97, LNCS vol. 1294, Springer-Verlag, pp.
221–234.
6. J.-F. Misarsky, How (not) to design RSA signature schemes, Public-key cryptogra-
phy (PKC), Springer-Verlag, Lectures notes in computer science 1431, pp. 14–28,
1998.
7. T. Okamoto and A. Shiraishi, A fast signature scheme based on quadratic inequal-
ities, Proc. of the 1985 Symposium on Security and Privacy, April 1985, Oakland,
CA.
8. R. Rivest, A. Shamir and L. Adleman, A method for obtaining digital signatures
and public key cryptosystems, CACM 21, 1978.
9. RSA Laboratories, PKCS #1 : RSA cryptography specifications, version 2.0,
September 1998.
A A Practical Forgery
N = RSA-309
= bdd14965 645e9e42 e7f658c6 fc3e4c73 c69dc246 451c714e b182305b 0fd6ed47
d84bc9a6 10172fb5 6dae2f89 fa40e7c9 521ec3f9 7ea12ff7 c3248181 ceba33b5
We obtain:
R(m1 ) · R(m2 ) = R(m3 ) · R(m4 ) mod N
where messages m1 , m2 , m3 and m4 are as small as one third of the size of the
modulus.
Correlation Analysis of the Shrinking Generator
Jovan D. Golić
GEMPLUS
Rome CryptoDesign Center, Technology R&D
Via Pio Emanuelli 1, 00143 Rome, Italy
[email protected]
1 Introduction
The shrinking generator [1] is a well-known keystream generator for stream ci-
pher applications. It consists of only two linear feedback shift registers (LFSR’s).
The clock-controlled LFSR, LFSR1 , is irregularly clocked according to the clock-
control LFSR, LFSR2 , which is regularly clocked. More precisely, at each time,
both LFSR’s are clocked once and the bit produced by LFSR1 is taken as the
output bit if the clock-control bit produced by LFSR2 is equal to 1. Otherwise,
the output bit is not produced. The output sequence is thus a nonuniformly dec-
imated LFSR1 sequence. It is recommended in [1] that the LFSR initial states
and the feedback polynomials be defined by the secret key. Under certain condi-
tions, the output sequences possess a long period, a high linear complexity, and
good statistical properties.
As pointed out in [1], a basic divide-and-conquer attack on the shrinking
generator is the linear consistency attack [17] on LFSR2 which requires the ex-
haustive search through all possible initial states and feedback polynomials of
in view of the fact that, on the condition that d(C n ) = e, the string Yn−e+1
n
is
obtained by decimating Xn+1 according to Cn+1 , where Xn+1 and Cn+1 remain
to be mutually independent and purely random (even when conditioned on X n
and Y n−e ). Therefore, under the given conditions, Yn−e+1
n
remains to be uni-
n n
formly distributed. Further, as X and Y are both uniformly distributed, we
have
n
X
Pr{X n | Y n } = Pr{Y n | X n } = 2−e Q(e, n − e) (4)
e=0
which is computed in O(n2 ) time and O(n) space. The probability (4) can be
found in [9], and also corresponds to the probability derived in [6] for the alter-
nating step generator, because the nonuniform decimation of a purely random
444 J.D. Golić
Then
n
X
Pr{X n | Y n } = 2−n 2−e N (e, n − e). (6)
e=0
def
P (e, s) = Pr{Y s , d(C e+s ) = e} (9)
for 0 ≤ s ≤ n and 0 ≤ e ≤ n − s, where formally P (0, 0) = 1 and Pi (0, 0) = 1.
The following theorem, proved in Appendix A, shows that the partial proba-
bilities can be computed recursively and then used to obtain the desired posterior
probabilities by (7).
Theorem 1. For any given Y n and each 1 ≤ i ≤ n, we have
Pn
2−e Pi (e, n − e)
p̂i = pi Pe=0
n −e P (e, n − e)
(10)
e=0 2
where the partial probabilities are determined recursively by
1
Pi (e, s) = Pi (e − 1, s)
2
1
+ (δi,e+s ys + (1 − δi,e+s )(ys pe+s + (1 − ys )(1 − pe+s ))) Pi (e, s − 1)
2
(11)
1 1
P (e, s) = P (e − 1, s) + (ys pe+s + (1 − ys )(1 − pe+s )) P (e, s − 1) (12)
2 2
for 0 ≤ s ≤ n, 0 ≤ e ≤ n − s, and (e, s) 6= (0, 0), from the initial values
Pi (0, 0) = P (0, 0) = 1. (The terms on the right-hand sides of these equations
corresponding to unpermissible values of e or s, i.e., for e = 0 or s = 0, are
assumed to be equal to zero.)
The time and space complexities of the corresponding algorithm are clearly
O(n3 ) and O(n), respectively. The algorithm may thus be feasible even if n
is large. For computational convenience, the multiplicative factor 0.5 can be
removed from the recursions without affecting the values
√ of the posterior proba-
2
√ to O(n n) if Pi (e, s) and P (e, s)
bilities. The time complexity can be reduced
are computed approximately, only for O( 2s) values of e around s.
446 J.D. Golić
where Q(e, s) and Qi (e, s), respectively, are determined recursively by (2) and by
1 1
Qi (e, s) = (1 − δi,e+s ) Qi (e − 1, s) + (1 + δi,e+s ) δ(xe+s , ys ) Qi (e, s − 1)
2 2
(25)
Then
Pn
1 e=0 2−e Ni (e, n − e)
q̂i = Pn (27)
2 e=0 2
−e N (e, n − e)
where m1 (i) is the number of 1’s in Y i on the segment I(i). Now, as m1 (i) is
binomially distributed, we further get the following average values over Y i
1 p
|m1 (i) − 0.5m(i)|av ≈ √ m(i) (30)
2π
1 1
|∆p̂i |av ≈ √ p
2 2π m(i)
1 1 1
≈ p √ √ ≈ 0.1515 √ . (31)
2 2π 3 i − 1 i
4 4
Except maybe for the multiplicative constant, the approximation is very good
for i ≥ 100. Thus, as √ i increases, it turns out that |∆p̂i |av decreases approxi-
mately like 0.1515/ 4 i. The decrease is to be expected, because of a loss of
synchronization between the original and the decimated sequence. However, it
may be surprising that the decrease is very slow, so that the posterior probabil-
ities remain significant even for relatively large values of i. For example, |∆p̂i |av
is approximately 0.01515 for i = 10000 and 0.01 for i = 50000.
The posterior probabilities of individual LFSR2 bits computed according
to Theorem 3 depend on both the output sequence and on the reconstructed
LFSR1 sequence. They are harder to analyze theoretically, but should be much
more different from one half than the posterior probabilities of individual LFSR1
bits, because the LFSR1 sequence is assumed to be known. They can be used
for reconstructing the unknown LFSR2 sequence from a known segment of the
output sequence and a segment of the reconstructed LFSR1 sequence.
450 J.D. Golić
The analysis conducted in Section 5 shows√ that the expected value of ci over Y i
slowly decreases approximately like 0.303/ i as i increases. So, it remains to be
4
The iterative probabilistic decoding algorithms in the second stage of the basic
attack from Section 6.1 iteratively update the posterior probabilities of individual
bits of X n . Therefore, the basic attack can be (considerably) improved if the
first stage of the attack is incorporated in iterations of the iterative probabilistic
decoding algorithm chosen. For example, we propose an iterative attack whose
first iteration coincides with the basic attack and every subsequent iteration
consists of two stages. First, update the posterior probabilities of individual
bits of X n by Theorem 1 from Section 3.1 where the posterior probabilities
from the preceding iteration are used as the prior probabilities. Second, update
the posterior probabilities of individual bits of X n by applying the iterative
probabilistic decoding algorithm.
7 Conclusions
The introduced probabilistic analysis of the shrinking generator shows that the
irregularly clocked LFSR’s, unlike a common belief in the open literature, may
be vulnerable to fast correlation attacks. The analysis can be generalized to deal
with arbitrary keystream generators based on clock-controlled LFSR’s.
In order to reconstruct the initial state of the clock-controlled LFSR, LFSR1 ,
in the shrinking generator, the new idea is to compute the posterior probabilities
of individual bits of the regularly clocked LFSR1 sequence when conditioned
on a given segment of the output sequence. Perhaps surprisingly, a theoretical
analysis indicates that these probabilities can be significantly different from one
half even for relatively long segments of the LFSR1 sequence. Accordingly, the
initial state of LFSR1 may be recovered by a fast correlation attack, applicable
to a regularly clocked LFSR, based on the computed posterior probabilities.
It is known that such an attack can be successful for certain LFSR feedback
polynomials. More sophisticated fast correlation attacks including the iterative
attack, the composite attack, the subsequence attack, and the reinitialization
attack are also proposed.
The initial state of the clock-control LFSR, LFSR2 , can be reconstructed in a
similar way, but based on the computed posterior probabilities of individual bits
of the regularly clocked LFSR2 sequence when conditioned on a given segment
of the output sequence and on a segment of the reconstructed LFSR1 sequence.
As these probabilities are more distinguished from one half, the corresponding
fast correlation attack is easier.
454 J.D. Golić
Appendix
A Proof of Theorem 1
On the other hand, if ce+s = 1 and d(C e+s−1 ) = e − 1, then ys = xe+s . Thus,
we get
Correlation Analysis of the Shrinking Generator 455
The first line of (39) follows from the first line of (38) because xe+s is independent
of C e+s and, on the condition that d(C e+s−1 ) = e, it is also independent of Y s−1 .
In addition, as d(C e+s−1 ) is independent of ce+s and Y s−1 is independent of ce+s
on the condition that d(C e+s−1 ) = e, the second line of (39) follows from the
second line of (38).
Equation (11) directly follows from (36), (37), and (40). If e = 0, then the
first term on the right-hand side of (11) is omitted, and if s = 0, then the second
term on the right-hand side of (11) is omitted. The correct values of Pi (1, 0) and
Pi (0, 1) are both obtained from the initial value Pi (0, 0) = 1.
B Proof of Theorem 3
The proof is essentially similar to the proof of Theorem 1, but should be con-
ducted carefully. To prove (24), we start from (22). First, in view of (23), we
get
Pr{Y n | ci = 1, X n }
X n
= Pr{Y n , d(C n ) = e | ci = 1, X n }
e=0
n
X
n
= Pr{Yn−e+1 , Y n−e , d(C n ) = e | ci = 1, X n }
e=0
n
X
n
= Pr{Yn−e+1 | Y n−e , d(C n ) = e, ci = 1, X n } Qi (e, n − e)
e=0
n
X
= 2−e Qi (e, n − e). (41)
e=0
As for the recursions, we note that the proof of (2) is similar to the proof of
(25) given below. For (e, s) 6= (0, 0), (23) results in
Qi (e, s)
= Pr{Y s , d(C e+s ) = e | ci = 1, X n , ce+s = 0} · Pr{ce+s = 0 | ci = 1, X n }
+ Pr{Y s , d(C e+s ) = e | ci = 1, X n , ce+s = 1} · Pr{ce+s = 1 | ci = 1, X n }
1
= Pr{Y s , d(C e+s−1 ) = e − 1 | ci = 1, X n , ce+s = 0} · (1 − δi,e+s )
2
s e+s−1 n 1
+ Pr{Y , d(C ) = e | ci = 1, X , ce+s = 1} · (1 + δi,e+s ) (42)
2
where the conditional probability in the first term is computed only for i 6= e+s.
Now, as d(C e+s−1 ) is independent of ce+s , and Y s is independent of ce+s on
the condition that d(C e+s−1 ) = e − 1, we get that for i 6= e + s
Pr{Y s , d(C e+s−1 ) = e − 1 | ci = 1, X n , ce+s = 0}
= Pr{Y s , d(C e+s−1 ) = e − 1 | ci = 1, X n } = Qi (e − 1, s). (43)
On the other hand, if ce+s = 1 and d(C e+s−1 ) = e − 1, then ys = xe+s . Thus,
we get
Pr{Y s , d(C e+s−1 ) = e | ci = 1, X n , ce+s = 1}
= Pr{xe+s = ys , Y s−1 , d(C e+s−1 ) = e | ci = 1, X n , ce+s = 1}
= Pr{xe+s = ys | Y s−1 , d(C e+s−1 ) = e, ci = 1, X n , ce+s = 1}
· Pr{Y s−1 , d(C e+s−1 ) = e | ci = 1, X n , ce+s = 1} (44)
= Pr{xe+s = ys | xe+s }
· Pr{Y s−1 , d(C e+s−1 ) = e | ci = 1, X n } (45)
= δ(xe+s , ys ) · Qi (e, s − 1). (46)
The first line of (45) follows from the first line of (44) as xe+s is contained in
X n . In addition, as d(C e+s−1 ) is independent of ce+s and Y s−1 is independent
of ce+s on the condition that d(C e+s−1 ) = e, the second line of (45) follows from
the second line of (44).
Equation (25) directly follows from (42), (43), and (46). If e = 0, then the
first term on the right-hand side of (25) is omitted, and if s = 0, then the second
term on the right-hand side of (25) is omitted. The correct values of Qi (1, 0) and
Qi (0, 1) are both obtained from the initial value Qi (0, 0) = 1.
References
1. D. Coppersmith, H. Krawczyk, and Y. Mansour, ”The shrinking generator,” Ad-
vances in Cryptology - CRYPTO ’93, Lecture Notes in Computer Science, vol. 773,
pp. 22-39, 1993.
2. J. Daemen, R. Govaerts, and J. Vandewalle, ”Resynchronization weakness in syn-
chronous stream ciphers,” Advances in Cryptology - EUROCRYPT ’93, Lecture
Notes in Computer Science, vol. 765, pp. 159-167, 1994.
Correlation Analysis of the Shrinking Generator 457
such that every possible output m-tuple is equally likely to occur when
the values of k arbitrary inputs are fixed by an adversary and the
remaining n − k input bits are chosen independently at random. In this
paper we propose a new method to generate a (n + D + 1, m, d − 1)-
resilient function for any non-negative integer D whenever a [n, m, d]
linear code exists. This
√ function has algebraic degree D and nonlinearity
at least 2n+D − 2n b 2n+D+1 c + 2n−1 . If we apply this method to the
simplex code, we can get a (t(2m − 1) + D + 1, m, t2m−1 − 1)-resilient
function with algebraic degree D for any positive integers m, t and
D. Note that if we increase the input size by D in the proposed
construction, we can get a resilient function with the same parameter
except algebraic degree increased by D.
1 Introduction
3 Resiliency
4 Algebraic Degree
Q
Theorem 2. Let w ≥ 0. Consider a linearized polynomial R(x) = (x − ξ)
where ξ ranges over all elements of a w-dimensional subspace V of Fq . Then
1
F (x) = R(x) has the algebraic degree n − 1 − w.
Proof. First, we claim that F (x) has the algebraic degree ≤ n − 1 − w. We use
the induction on w. For w = 0, it is trivial since F (x) = 1/x has the algebraic
degree n − 1. Assume that the claim holds for all dimension less than
Q w. Let W
be a (w − 1)-dimensional subspace of V , α ∈ V \ W and S(x) = ζ∈W (x − ζ).
Then we have
1 1 1 1 1
= = + . (7)
R(x) S(x)S(x + α) S(x) + S(x + α) S(x) S(x + α)
Note that f (x) + f (x + a) has algebraic degree less than that of f for any
Boolean function f and a ∈ Fq . Since S(x) is a linearized polynomial and so has
the algebraic degree 1, S(x) + S(x + α) is a nonzero constant for α ∈ W . By
1
the induction hypothesis, S(x) has algebraic degree ≤ n − 1 − (w − 1) = n − w.
Hence F (x) has algebraic degree less than n − w which proves the claim.
Now we prove the equality. Suppose that there is a w-dimensional sub-
1
space V such that R(x) has algebraic degree less than n − w − 1. Take a basis
B = hξ1 , ξ2 , · · · , ξn i of Fq where ξ1 , ξ2 , · · · , ξw generates V . Take Rw (x) = R(x)
and Ri+1 (x) = Ri (x)Ri (x + ξi ) for w ≤ i < n − 1. By the same deduction
with (7), 1/Ri+1 (x) has algebraic degree less than 1/Ri (x) for w ≤ i < n − 1.
Thus, 1/Rn−1 (x) has algebraic degree less than (n − 1) − (n − 1) = 0. That is,
1/Rn−1 (x) = 0 should be zero for all x ∈ Fq which implies Rn−1 (x) = 0 for all
x ∈ Fq . This is a contradiction because Rn−1 has only 2n−1 roots. Therefore we
have the theorem.
5 Nonlinearity
b
Consider a non-singular complete curve given by y 2 +y = ax+ R(x) for a, b ∈ Fq .
h
By Hurwitz-Zeuthen formula, it has the genus g = 2 − δa,0 where h is the
degree of R(x) and the Kronecker delta δa,0 is one if and only if a = 0. Using
the Hasse-Weil bound on the number of points of an algebraic curve, we can get
the following lemma.
Nonlinear Vector Resilient Functions 463
b
#C(Fq ) = 2#{x ∈ Fq |T r[ax + ] = 0} + 2w + 1. (8)
R(x)
b
#C(Fq ) = 2#{x ∈ Fq |T r[ax + ] = 0} + 2w + 2. (9)
R(x)
Observe that #C(Fq )−1−δa,0 is divisible by 2w+1 from Corollary (1.5) in [11].
b
Since Wb·F (a) = 2#{x ∈ Fq |T r[ax + R(x) ] = 0} − q = #C(Fq ) − 1 − δa,0 − 2w − q,
we can write WT r[bF ] (a) = s · 2w+1 − 2w for some integer s.
On the other hand, by Lemma 2, for all a we have
√
|#C(Fq ) − q − 1| = |s · 2w+1 + δa,0 | ≤ 2(2w − δa,0 ) q.
√
That is, we have |s| ≤ b qc.
Combining them, we find that the maximum of |WT r[bF ] (a)| is bounded by
√
2w+1 b qc − 2w . From 6, we get the theorem.
Observe that this bound of nonlinearity is very tight for small w, but not so
good for large w.
from Fn2 to Fm
2 by taking the basis B for F2n .
its dual basis. Then (f1 , f2 ) is a (8,2,1)-resilient function under the basis B where
f1 = T r[(ξb1 + ξb2 )( R(x)
1
+ x)] and f2 = T r[(ξb2 + ξb3 )( R(x)
1
+ x)].
Theorem 5. Assume 0 < m ≤ n and a [n, m, d] linear code exists. For any
nonnegative integer D, there exists a (n + D + 1, m, d − 1)-resilient function
with√algebraic degree D, whose nonlinearity is greater than or equal to 2n+D −
2n b 2n+D+1 c + 2n−1 .
Note that for any positive integer there exists a [2m − 1, m, 2m−1 ] code, so
called a simplex code, which has the maximal value of minimal distances for
m-dimensional linear codes with length 2m − 1. Concatenating each codeword t
times gives a [t(2m − 1), m, t2m−1 ] linear code. If we apply this code to Theorem
5, we get the following result.
Bierbrauer et al. [3] showed that a [n, m, d] linear code can be used to con-
struct a (n, m, d − 1)-resilient function. Combining this with (10), we find that
κ(t(2m − 1), m) = t2m−1 − 1. On the other hand, if we consider linear re-
silient functions, i.e. D = 1, in Corollary 1, the proposed construction gives
(t(2m −1)+2, m, t2m−1 −1)-resilient function which has 2 bit larger input length
with the same output size and resiliency. By this construction, however, for any
positive integer D we can construct a resilient function of algebraic degree D
with the same parameter by increasing the input size by D bits.
In [23], authors proposed a method to construct a nonlinear vector resilient
function from a linear vector resilient function by permuting nonlinearly its
output bits. That is,
Let F be a linear (n, m, k)-resilient function and G a permutation on Fm 2
whose nonlinearity is NG . Then P = G · F is a (n, m, k)-resilient function such
that
A vector Boolean function with m bit output generated by this method has an
algebraic degree less than m while our method can generate a resilient function
with algebraic degree up to n − 2 − m. The largest nonlinearity achieved by a
permutation on Fm 2 is 2
m−1
−2(m−1)/2 [15]. Thus, such (n, m, k)-resilient function
n−1
has nonlinearity ≤ 2 − 2n−(m+1)/2 . Hence resilient functions constructed by
the proposed method have larger bound of nonlinearity for small m than the
previous method. Another obstacle of the previous method is to find a nonlinear
permutation, which is not easy for even m except x−1 .
Generally, it is not easy to obtain the maximum value of m given n and d or
the maximal value of d given n and m. For small n, m, however, there is a table
[4] for the maximum value d(n, m) of d such that a [n, m, d] linear code exists.
Refer to the appendix for 1 ≤ n ≤ 15 and 1 ≤ m ≤ 6. These maximum values
of the minimum distances gives the maximal resiliency k of (n, m, k)-resilient
functions with the algebraic degree D constructed by Algorithm 1. In Table 1,
0-resiliency means balancedness.
Table 1. The maximum resiliency k of proposed (n, m, k)-resilient functions with the
algebraic degree D.
m \ n 2 +D 3 +D 4+D 5+D 6+D 7+D 8+D 9+D 10+D 11+D 12+D 13+D 14+D
1 0 1 2 3 4 5 6 7 8 9 10 11 12
2 0 1 1 2 3 3 4 5 5 6 7 7
3 0 1 1 2 3 3 3 4 5 5 6
4 0 1 1 2 3 3 3 4 5 5
5 0 1 1 1 2 3 3 3 4
6 0 1 1 1 2 3 3 3
7 Stream Ciphers
One of the most widely used design for stream cipher is a combination gen-
erator. A combination generator consists of several linear feedback shift reg-
isters(LFSRs) whose output sequences are combined by a nonlinear Boolean
function, called a combining function. To resist against the well-known correla-
tion attack, a combining function should be resilient. Fig. 1 is an example of a
stream cipher with multi-bit output where KGSs are key stream generators and
F is a combining function.
To get a high linear complexity, we use feedback shift registers with carry
operation (FCSRs) [12] as KSGs instead of LFSRs in a combining generator. Let
n be the number of FCSRs with k registers and m the number of output bits.
By Theorem 5, we can construct a (w + D + 1, m, d − 1)-resilient function for
any non-negative integer D whenever a [w, m, d] linear code exists.
√ The function
w+D w
has algebraic degree D and nonlinearity at least 2 −2 b 2 w+D+1 c + 2w−1 .
We use this vector resilient function as a combining function.
Nonlinear Vector Resilient Functions 467
KGS1
x1
f1
KGS2 x2 f2
F f3
f4
xn
KGSn
Note that correlation attack has complexity O(2kd ) when the combining func-
tion is (d − 1)-resilient. On the other hand, linear complexity attack has com-
plexity O(M 3 ) for a cipher with linear complexity M . Since every FCSR has
linear complexity 2k and the combining function has algebraic degree n − w − 1,
we have M = 2k(n−w−1) . Hence when d(w, m) ≈ 3(n − w − 1), two complexities
are similar.
For example, if we let n − w − 1 = 2 and d = 5, the complexity becomes
O(23k ). In that case, we have w = 9 for m = 2 and w = m + 8 for m ≥ 3.
That is, if k = 20, we can design ciphers with the following feature. Here the
complexity is against the linear complexity attack and the correlation attack for
a linear combination of output bits.
However, if we consider a correlation attack using a nonlinear combination
of output bits, the complexity might be different. In that case, the maximum
correlation coefficient [22] should be considered. Currently, we don’t know the
maximum correlation of the proposed vector resilient functions. It would be
interesting problem to compute them.
8 Conclusion
References
12. A. Klapper and M. Goresky, “Feedback Shift Registers, Combiners with Memory,
and 2-adic Span,” Journal of Cryptology, Vol. 10, Springer-Verlag, pp. 111-147,
1997.
13. J.H. van Lint, Intoroduction to Coding Theory, Springer-Verlag, 1992.
14. R. Lidl and H. Niederreiter, Finite Fields, Cambridge University Press, 1997.
15. K. Nyberg, “S-Boxes and Round Functions with Controllable Linearity and Differ-
ential Uniformity,” Proc. of the Second Fast Software Encryption, pp. 111 – 130,
Springer-Verlag, 1994.
16. E. Pasalic and T. Johansson, “Further Results on the Relation Between Nonlin-
earity and Resiliency for Boolean Functions,” Proc. of IMA Conference on Cryp-
tography and Coding, pp. 35-44, LNCS 1746, Springer-Verlag, 1999.
17. P. Sarkar and S. Maitra, “Nonlinearity Bounds and Constructions of Resilient
Boolean Functions,” Proc. of Crypto’00, pp. 515-532, Springer-Verlag, 2000.
18. J. Seberry, X. Zhang and Y. Zheng, “On Constructions and Nonlinearity of Cor-
relation Immune Boolean Functions,” Eurocrypt’93, pp. 181-199, Springer-Verlag,
1993.
19. T. Siegenthaler, “Correlation-Immunity of Nonlinear Combining Functions for
Cryptographic Applications,” IEEE Transactions on Information Theory, IT-30(5),
pp.776-780, 1984.
20. D. Stinson and J. Massey, “An Infinite Class of Counterexamples to a Conjecture
Concerning Nonlinear Resilient Functions,” Journal of Cryptology, Vol 8, No. 3,
pp.167-173, Springer-Verlag, 1995.
21. Y. Tarannikov, “On Resilient Boolean Functions with Maximum Possible Nonlin-
earity,” Proc. of Indocrypt’00, pp.19-30, Springer-Verlag, 2000.
22. M. Zhang and A. Chan, “Maximum Correlation Analysis of Nonlinear S-boxes in
Stream Ciphers,” Proc. of Crypto2000, pp. 501-514, Springer-Verlag, 2000.
23. X. Zhang and Y. Zheng, “Cryptographically Resilient Functions,” IEEE Trans.
Inform. Theory, Vol 43, No 5, pp. 1740-1747, 1997.
m\n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 1234567 8 9 10 11 12 13 14 15
2 122344 5 6 6 7 8 8 9 10
3 12234 4 4 5 6 6 7 8 8
4 1223 4 4 4 5 6 6 7 8
5 122 2 3 4 4 4 5 6 7
6 12 2 2 3 4 4 4 5 6
New Public Key Cryptosystem Using Finite Non
Abelian Groups
1 Introduction
Most frequently used problems in the public key cryptosystems are the fac-
torization problem [19] and the discrete logarithm problem (DLP). Cryptosys-
tems based on these problems have been built on abelian groups [5,3,8,12,13].
In Crypto 2000, Ko et al. proposed a new public cryptosystem based on Braid
groups, which are non abelian groups. To authors’ best knowledge, it was the
first practical public key cryptosystem based on non abelian groups.
When we use a non abelian group G for a public key cryptosystem, we need
to consider the following problems related to the word problem:
– How do we express a message as an element of G?
– Can every element of G be represented in a unique way for a given expres-
sion?
If an element of G is not represented in a unique way, then a plaintext and a
deciphertext may not be the same. Therefore the second problem is very impor-
tant when we use a non abelian group for a public key system. Matrix groups
and semi-direct product of abelian groups are examples of non abelian groups
which have such expressions.
In this paper, we suggest a new cryptosystem based on such a finite non
abelian group G. Our PKC is based on DLP in the inner automorphism group
– We can apply our encryption scheme to G even if DLP and the (special)
conjugacy problem in G are not hard problems.
– Parameter selections are much easier than those in ECC [12,13] and XTR
[8].
– We can increase the speed of the encryption and decryption. More precisely,
when m is a message and g a is the public key in ElGamal-type encryption
[5,12,13], (g ab m, g b ) should be sent to a receiver and it is crucial that dif-
ferent random integers b should be used to encrypt different messages. In
our scheme, we can fix b without loss of security so that we can increase the
speed of the encryption and decryption. Moreover no message expansion is
required.
– It is easy to make a signature scheme with our PKC: In general, it is not
easy to find a signature scheme using an infinite non abelian group such as
a braid group [11].
If we fix b, our PKC is about 30 times faster than RSA for a 32-bit public
exponent in RSA encryption scheme and is about 200 times faster in decryption.
2 Preliminaries
From some given groups, we can easily make new non abelian groups using semi
direct products. Recall the definition of the semi-direct product:
G × H = {(g, h)| g ∈ G, h ∈ H}
Since
(g, h)−1 = (θ(h−1 )(g −1 ), h−1 ),
we have
(eG , h1 )(g2 , eH )(eG , h1 )−1 = (θ(h1 )(g2 ), eH ), (2.1)
where eG , eH are the identity elements of G and H, respectively. So G can be
considered as a normal subgroup of G ×θ H. If θ(H) 6= Id, then G ×θ H is a non
abelian group even if G and H are abelian.
Example 1. (1) Most familiar example of the semi-direct product is the isome-
try group on Euclidean space Rn . This group is the semi-direct product of the
translational isometry group Rn and the orthogonal group O(n, R).
472 S.-H. Paeng et al.
(2) It is a well known fact that Aut(Zn ) = Z∗n , where Z∗n is the multiplicative
group of Zn . Since Z∗4 ' Z2 , there exists a non constant homomorphism, in fact,
an isomorphism of Z2 into Z∗4 . Thus Z4 ×θ Z2 is a non abelian group.
(3) If G is a non abelian group, then there exists a natural homomorphism from
G to Aut(G). Precisely,
Inn : G → Aut(G)
(2.2)
g 7→ Inn(g), Inn(g)(h) = ghg −1 .
There are many groups where the word problem is known to be solvable in
polynomial time while there is no known polynomial time algorithm to solve the
conjugacy problem (the braid group is an example) [1]. If G is a non abelian
group and its conjugacy problem is hard in G, we can consider the following
cryptosystem. Let {δi } be a set of generators of G. Let g be an element of G.
The public key is {i = gδi g −1 } and the secret key is g. Mathematically, the
public key can be expressed as Inn(g). Then the ciphertext is E = Inn(g)(m)
and the deciphertext is g −1 Eg ([1] or [20]). In order to use such an encryption
scheme, every element of G should be easily expressible as a product of δi ’s.
If an element of G is also easily expressible as a product of i ’s, then we also
obtain Inn(g −1 ) immediately. Since g −1 Eg = Inn(g −1 )(E), we can decrypt
without knowing g. Thus it is essential that elements of G should not be easily
expressible as products of i ’s.
This system depends on the difficulty of finding g 0 satisfying Inn(g 0 ) =
Inn(g) for a given Inn(g), i.e. the above system is based on the special con-
jugacy problem. Unfortunately, we know few finite non abelian groups to which
New Public Key Cryptosystem Using Finite Non Abelian Groups 473
we can apply the above system. For example, the general linear group GL(2, Zp )
and the special linear group SL(2, Zp ) are non abelian groups on which the (spe-
cial) conjugacy problem is not difficult (see Appendix A).
Then we have
g m = A(I + mδ12 )A−1
ad − bc − mac ma2 1 − mac ma2 (2.3)
= = .
−mc2 ad − bc + mac −mc2 1 + mac
3 New Cryptosystem
In this section, we suggest a new encryption scheme which are based on DLP in
the inner automorphism group.
Let G be a non abelian group with non trivial center Z(G). We assume that
Z(G) is not small. Let g be an element of G.
Encryption
Decryption
To implement our scheme, we should express Inn(g a ) with small bits. Since
G is a finitely generated group, Inn(g a ) is expressed by {Inn(g a )(γi )} for a
generator set {γi }. If we do not have a fast algorithm to express γ ∈ G by a
product of generators, we cannot express Inn(g a ) actually. In the next section,
we will introduce a non abelian group to which our scheme can be applied.
(Precisely, see 4.3.)
Although our scheme looks like an ElGamal-type, we may not change b
for each encryption. In ElGamal-type encryption based on abelian groups (e.g.
ECC), we must change b for each encryption. (If a fixed b is used, we can ob-
tain m−1
1 m2 = (m1 g )
ab −1
m2 g ab ).) But in our scheme, it is impossible to obtain
−1
m1 m2 from Inn(g )(m1 ) and Inn(g b )(m2 ). Thus we may fix b. As we see in sec-
b
tion 4.3, this fact will be very useful for fast encryption and decryption scheme.
Due to the non commutativity of braid groups, the cryptosystem using braid
groups has a difficulty in making a signature scheme. However, our scheme en-
ables us to make a signature scheme easily (e.g. Nyberg-Rueppel type signature)
even if G is non abelian.
Now we consider the method to find a from the given Inn(g) and Inn(g a ).
First, we solve DLP in hInn(g)i directly. The index calculus is the most efficient
known method to solve DLP [4]. But its application is too restrictive to be
applied to general cyclic groups. It seems that the index calculus cannot be
applied to the group hInn(g)i. In general cases, expected run times for solving
√
DLP are O( p), where p is the order of a cyclic subgroup.
Secondly, we solve DLP in hgi. If we assume that the special conjugacy prob-
lem is not a hard problem, we can find g0 satisfying Inn(g0 ) = Inn(g a ). We can
easily verify that g0 = g a z for some z ∈ Z(G). If |Z(G)| is large enough, then it
is almost impossible to determine whether g a z is an element of hgi. Then even
if DLP in G may be easy, we cannot apply any algorithm to solve DLP in G.
We should be careful in the choice of a plaintext and g. If [m, g] = eG , then
E = g ab mg −ab = m. In particular, if m is a central element, then E = m so m
should not be chosen in the center. Also if g is a central element, then Inn(g) is
the identity map and so E = m. We should select a non central element g.
We should note that there may be other attacks depending on G as we see
in section 5.
G = SL(2, Zp ) ×θ Zp ,
where
θ = Inn ◦ θ1 : Zp → Aut(SL(2, Zp ))
and θ1 is an isomorphism from Zp to hαi. Then θ(y)(x) = θ1 (y)xθ1 (y)−1 . Now
we solve the conjugacy equations in G. Let g = (x, y). Computing the conjugate
of (a, b), we obtain that
If b = 0, we have
(x, y)(a, 0)(x, y)−1 = (xθ(y)(a)x−1 , 0) = ((xθ1 (y))a(xθ1 (y))−1 , 0). (4.5)
x1 θ(y1 )(a)θ(b)(x−1
1 ) = x1 θ1 (y1 )aθ1 (y1 )
−1
θ1 (b)x−1
1 θ1 (b)
−1
= (x1 θ1 (y1 ))aθ1 (y1 )−1 θ1 (b)θ1 (y1 )θ1 (y)−1 x−1 θ1 (b)−1
= (xθ1 (y))aθ1 (−y1 + b + y1 )θ1 (y)−1 x−1 θ1 (b)−1
= xθ1 (y)aθ1 (b)θ1 (y)−1 x−1 θ1 (b)−1
= xθ1 (y)aθ1 (y)−1 θ1 (b)x−1 θ1 (b)−1
= xθ(y)(a)θ(b)(x−1 ).
(4.6)
It can be easily verified that if x1 θ1 (y1 ) = −xθ1 (y), then the above equation also
holds. Also note that the center of Z(SL(2, Zp )) = ±I. Hence the set of solutions
for the special conjugacy problem is
The cardinality of S, |S| is 2p. Note that if Inn(g) = Inn(g1 ), then Inn(g −1 g1 ) =
Id. It means that g −1 g1 is an element of the center of G. Also for any central
element z, Inn(gz) = Inn(g). So we know that S = Inn−1 (Inn(g)) = gZ(G)
and
Z(G) = {(x1 , y1 )| y1 ∈ Zp , x1 = ±θ1 (−y1 )}. (4.8)
476 S.-H. Paeng et al.
The cardinality of the center of G is 2p. Note that the probability to choose m
and g in the center is smaller than 2p/p3 = 2/p2 ≈ 0 and 2p/p4 = 2/p3 ≈ 0,
respectively.
For a given Inn(g), m satisfying [g, m] = eG is a fixed point, i.e.
Inn(g)ab (m) = m. The cardinality of Z[g] = {m | [g, m] = eG } is 2p2 if we
choose g of order p [16] and thus the probability to choose m in Z[g] is smaller
than 2p2 /p3 = 2/p ≈ 0.
We will apply the above scheme to G = SL(2, Zp )×θ Zp . Since the last component
is invariant under the conjugation, we must take the message in SL(2, Zp ) (see
(4.4)).
In [20], we see
11 0 −1
{T = , S= }
01 1 0
g = S i0 T j1 ST j2 · · · ST jn S in+1 ,
g = T j1 ST j2 ST j3 .
From this equation and the fact that Zp is a field, we can find j1 , j2 , j3 such
that g = T j1 ST j2 ST j3 for any g ∈ SL(2, Zp ). (Since every element of SL(2, Zp )
is determined when three entries are determined, we only need to consider 3
entries.)
Note that since Z is not a field, the above theorem does not hold in SL(2, Z).
Since {(T, 0), (S, 0), (I, 1)} is a set of generators of G, we can obtain
Inn(g) if we know gT g −1 , gSg −1 and g(I, 1)g −1 . Since m ∈ SL(2, Zp ) and
SL(2, Zp ) is a normal subgroup of G, the restriction of Inn(g) to SL(2, Zp ),
Inn(g)|SL(2,Zp ) can be considered as an automorphism of SL(2, Zp ). Hence the
New Public Key Cryptosystem Using Finite Non Abelian Groups 477
We may choose g = (x, y) satisfying xθ1 (y) ∈ A(I + cδ12 )A−1 for some
fixed c ∈ Zp and A ∈ SL(2, Zp ). Then we obtain that the order of Inn(g) is p
by Theorem 2. If we choose g arbitrarily and the order of g is not fixed, then
the security may be increased since we should know the order of a given cyclic
group to apply a known algorithm for DLP, i.e. we should solve DLP under the
assumption that the order of g is pd for each d|(p + 1)(p − 1).
Security of the system. We check the security of our system against solving
DLP in hInn(g)i directly. From the public data, Inn(g) and Inn(g a ), we solve
DLP to obtain the secret key a. In this case, it seems that the fastest algorithm
(index calculus) to solve DLP cannot be applied since hInn(g)i is contained in
Aut(G) ⊂ End(G) ⊂ GG , where End(G) is the endomorphism group of G and
GG is the set of all function from G to G. We cannot apply the index calculus
to any of them since they are not even expressed as matrix groups.
√
So an expected run time for solving DLP is O( p)-group operations if the
order of g is p. (In order to increase the security of the system, we can choose g
with an order which is a multiple of p. If p(p + 1) = pe11 · · · penn , then the total
number of divisors of p + 1 is (e1 + 1) · · · (en + 1). To find the order of g, we need
√
(e1 +1) · · · (en +1)-trials, and it takes (e1 +1) · · · (en +1)O( p)-group operations
[17].)
Now we check the security of our system against the second method in section
3. As we see in Appendix A, the special conjugacy problem in G is not a hard
478 S.-H. Paeng et al.
problem. Let S = {g1 | Inn(g1 ) = Inn(g a )}. We can immediately obtain a from
g = (x, y) and g a = (X, Y ) since if
(x, y)a = ((xθ1 (y))n θ1 (y)−n , ay) = (X, Y ), (4.10)
we only need to solve ay = Y for solving DLP for g and g a . But since |S| = 2p,
we need O(p)-trials to find g a in S. So it is less efficient than finding a from
Inn(g) and Inn(g a ) directly.
For DLP to be a hard problem in hInn(g)i, we choose 160 bit prime p. Then
the security of our system is comparable to 1024-bit RSA. (An expected run
time for solving DLP in hInn(g)i and for factorization in 1024-bit RSA is about
287 and 280 , respectively.)
If we compare our system with RSA and XTR, our system has the following
advantage. In RSA and XTR, an expected run time to find the private key
from the public key is subexponential, L[n, 1/3, 1.923]. In our system, it takes
√
an exponential run time O( p) as ECC.
From (2.3) in Remark 1, we can obtain (Inn(g)(T ))j from Inn(g)(T ) with
4-multiplications. More precisely, if
xy
Inn(g)(T ) = ,
zw
then
1 − j(1 − x) jy
(Inn(g)(T ))j = .
jz 1 + j(w − 1)
It takes 92 multiplications for computing Inn(g 2 )(S) and Inn(g 2 )(T ). So
it takes about 92 log2 p multiplications for computing Inn(g b ) from Inn(g).
Also 92 log2 p multiplications are needed to compute Inn(g ab ) from Inn(g a ).
So number of multiplications for encryption is 184 log2 p. Since one multi-
plication needs O((log2 p)2 )-bit operations [9], the encryption needs about
184(log2 p)3 C ≈ 8 × 108 C-bit operations for some constant C. In 1024-bit RSA,
it takes (log2 n)3 C ≈ (1024)3 C ≈ 109 C-bit operations. If the public exponent in
RSA encryption scheme is 32-bit number, then it takes 3.2×107 C-bit operations.
New Public Key Cryptosystem Using Finite Non Abelian Groups 479
Fast encryption and decryption. We can reduce the number of bit operations
as follows. Assume that Bob wants to send an encrypted message to Alice. Then
Bob computes Inn(g a )b and Inn(g b ) for a fixed b and send Inn(g b ) to Alice.
As we see in section 3, we may fix b, i.e. contrary to ElGamal encryption, we
cannot obtain m−1 b b
1 m2 from Inn(g )(m1 ) and Inn(g )(m2 ) in our scheme . Alice
computes Inn(g ) . Bob will encrypt a message m as E = Inn(g a )b (m) and
b −a
Remark 4. We can encrypt a message with a padding as follows (see also [16]).
Let M 6= 0 be a message and r1 , r2 be random numbers in Zp . We encrypt
M r1
m= ∈ SL(2, Zp ). Then m can be an element of any conjugacy class
r2 1+rM
1 r2
Expression and key size. Since Inn(g a )(T ) and Inn(g a )(S) can be considered
as elements of SL(2, Zp ), we can express them by three entries. Since Inn(g a )(T )
can be expressed by 3 log2 p-bit, 6 log2 p-bit are needed to express Inn(g a ). If p
is a 160-bit prime number, then it takes 960-bit to express Inn(g a ). So we can
express the public key with smaller size than RSA.
The secret key size is log2 p ≈ 160-bit, and so it is much smaller than 1024-bit
RSA.
5 Other Examples
One of the most familiar non abelian group is the general linear group GL(k, Zp ).
Since cI is a central element for any c 6= 0, the center of GL(k, Zp ) is sufficiently
large, i.e. |Z(GL(k, Zp )| ≥ p/2. We know that Inn(g) can be represented by
a linear map on the k × k-matrix ring [15]. So we can represent Inn(g) by a
k 2 × k 2 -matrix, R(g). So the DLP on hInn(g)i is convertible to the DLP on the
k 2 × k 2 -matrix ring.
We must be careful in the choice of g. Considering an attack using the de-
terminant [15], we choose g whose order is much larger than p (e.g. p(p − 1)). It
would be better to choose g satisfying that det(R(g)) = 1. Also the characteristic
polynomial of R(g) should be irreducible.
We introduce some methods to obtain non abelian groups. For a given non
abelian group G, we can obtain a new non abelian group Inn(G) as we see in
previous sections. Also Inn(Inn(G)) can be obtained from Inn(G). Inductively
we can make many non abelian groups from a given non abelian group. Since
Inn(G) = G/Z(G), this method reduces the size of a given group.
Extensions of non abelian groups is obtained as follows. First, Let θ1 be a
homomorphism on G. (It may be the identity map.) We define θ as follows:
θ = Inn ◦ θ1 : G → Aut(G)
g 7→ Inn(θ1 (g))
and
Inn((X, y))(e2 ) = (θ(y)((0, 1)), 0).
θ1 (w)k − 1 θ1 (1)wk − 1
(z, w)k = ( z, kw) = ( z, kw)
θ1 (w) − 1 θ1 (1)w − 1
and
482 S.-H. Paeng et al.
6 Concluding Remarks
We have presented a novel public key cryptosystem (based on a finite non abelian
groups) and suggested some examples of finite non abelian groups. There may
be other non abelian groups to be used in our system. However we must be
careful in applying a non abelian group to our cryptosystem in order that the
cryptosystem is secure. As we see in section 5, we should check the following:
– The existence of abelian normal subgroup reduces the security of the cryp-
tosystems. So any abelian normal subgroup must be of small order.
– The algorithm to express an element of G as a product of generators must
be efficient.
– Since Inn(g) is expressed as {Inn(g)(γi ) ∈ G | γi is a generator}, both the
number of generators and bits needed to express an element of G must be
of small order.
We may use other homomorphisms from G to Aut(G) instead of the inner
automorphism (if exists). Also we can consider the DLP in the endomorphism
group End(G).
If we know any representation of G, G can be considered as a subset of a
large matrix group up to the kernel (we call a homomorphism from G to a matrix
group a representation of G). Hence the representation of G is very useful for
cryptosystem as in section 3. If we use DLP in a subgroup hgi of a non abelian
group and a representation R of G, it would be better to choose det(R(g)) = 1
[15].
References
1. I. Anshel, M. Anshel, D. Goldfeld An algebraic method for public-key cryptogra-
phy, Mathematical Research Letters 6 (1999), 1–5
2. S. Blackburn, S. Galbraith Cryptanalysis of two cryptsystems based on group
actions, Proc. ASIACRYPT’ 99 (2000), 52–61
3. A. E. Brower, R. Pellikaan, E. R. Verheul Doing more with fewer bits, Proc.
ASIACRYPT’ 99 (2000), 321–332
4. D. Coopersmith, A. M. Odlzyko, R. Schroeppel Discrete logarithms in GF(p) ,
Algorithmica, 1 (1986), 1–15
5. T. ElGamal A public key cryptosystem and a signature scheme based on discrete
logarithms , IEEE Transactions andInformation Theory, 31 (1985), 469–472
6. S. Flannery Cryptography:An investigation of a new algorithm vs. the RSA,
http://cryptome.org/flannery-cp.pdf, 1999
7. T. W. Hungerford Algebra, Springer-Verlag
8. A. K. Lenstra, E. R. Verheul. The XTR public key system, Proc. Crypto 2000
(2000), 1–20
9. A. J. Menezes, P. C. Van Oorshot, S. A. Vanstone Handbook of applied cryptog-
raphy, CRC press, 1997
10. R. Lidl, H. Niederreiter Introduction to finite fields and their application, Cam-
bridge University press, 1986
11. K. H. Ko, S. J. Lee, J. H. Cheon, J. W. Han, J. -S. Kang, C. Park New public-key
cryptosystem using braid groups, Proc. Crypto 2000 (2000), 166–184
12. N. Koblitz Elliptic curve cryptosystems, Mathematics of Computation, 48 (1987),
203–209
13. V. Miller Use of elliptic curves in cryptography, Proc. Crypto 85 (1986), 417–426
14. K. Nyberg, R. Rueppel A new signature scheme based on DSA giving message re-
covery, 1st ACM Conference on Computer and Communications Security, (1993),
58–61
15. S.-H. Paeng, J.-W. Han, B. E. Jung “The security of XTR in view of the deter-
minant”, preprint, 2001
16. S.-H. Paeng “ A provably secure public key cryptosystem using finite non abelian
groups”, preprint, 2001
17. S. C. Pohlig, M. E. Hellman An improved algorithm for computing logarithms
over GF(p) and its cryptographic significance, IEEE Transactions on Information
Theory, 23 (1978), 106–110
18. J. M. Pollard Monte Carlo methods for index computation (mod p), Mathematics
of computation, 32 (1978), 918–924
19. R. L. Rivest, A. Shamir, L. M. Adleman A method for digital signature and
public-key cryptosystems, Communications of the ACM, 21 (1978), 120–126
20. A. Yamamura Public key cryptsystems using the modular group, PKC’98, 203–216
ax = αx + βz
az = γx + δz
bx + dy = αy + βw
bz + dw = γy + δw.
From the first equation, we can easily obtain the ratio of x to z, i.e. (a−α)x = βz.
(Note that we cannot obtain other ratios as we see in Example 2.)
Similarly, if we solve the conjugacy equation for XA0 X −1 and
0 0
a b
A = 0 0 , c0 6= 0
0
c d
we can also get another linear system. If we replace βz by (a−α)x, we can obtain
remaining ratios between x, y, z and w. So we can solve the special conjugacy
problem in G easily. By Example 2, we can easily understand the procedure.
Note that the conjugacy problems in SL(2, R) or GL(2, R) are not difficult
since we can obtain at most two linear equations by the conjugacy equation.
Example 2. In [20], the author suggested a public key system using SL(2, Z). It
was shown that this system is not secure in [2]. For the point based scheme in
[2], we can find the secret key if we solve the conjugacy equations directly as
above. Let
1 −1 0 −1
A= and B = .
1 0 1 0
Put
xy
M=
zw
4x − 2y − 2z = 0
4y − 2w = 0
8x − 4z − 2w = 0
8y − 4w = 0.
Then we have 2y = w. (Check that we cannot obtain other ratios from these
equations.)
If we solve the conjugacy equation for V2 and M V2 M −1 , we obtain that
5x = 3z and x + 15y − 9w = 0. Replacing w by 2y, we have x = 3y so 2x = 3w.
Hence we obtain the secret key
31
M =C
52
Department of Mathematics,
Korea Advanced Institute of Science and Technology,
Taejon 305-701, Republic of Korea
{eklee,sjlee,sghahn}@mathx.kaist.ac.kr
1 Introduction
The notions of pseudorandomness and onewayness which are closely related are
quite important in modern cryptography [8,1,17,12]. These concepts are infor-
mally stated as: (i) A distribution is pseudorandom if no efficient algorithm can
distinguish it from the uniform distribution [26]. (ii) A function is one-way if it
is easy to evaluate but hard to invert [9].
Recently, some mathematically hard problems in braid groups have been
proposed as new candidates for cryptographic one-way functions [2,19]. A braid
group Bn is an infinite non-commutative group naturally arising from geometric
braids composed of n strands. One of the famous problems in braid groups is the
conjugacy problem: Given (α, β) ∈ Bn × Bn , find (or determine whether there
exists) χ ∈ Bn such that β = χ−1 αχ. This problem was first introduced in the
1920s, and no polynomial-time algorithm is known for n ≥ 5. A variant of this
problem was first applied to cryptography to build a key agreement scheme by
Anshel et al. [2].
Ko et al. [19] introduced another variant of this problem: Given α, χ−11 αχ1 ,
−1
χ2 αχ2 ∈ Bn , where χ1 and χ2 are contained in some known subgroups of
Bn so that χ1 χ2 = χ2 χ1 , find χ−1 −1
2 χ1 αχ1 χ2 ∈ Bn . For convenience, we call
this problem the Ko-Lee problem. The Ko-Lee problem looks like the Diffie-
Hellman problem in their structures, but it does not in their internal properties
because of the different characteristics of the braid groups from finite commuta-
tive groups. For instance, a braid group is non-commutative and it has no finite
subgroup except for the trivial subgroup. As the basis of the Ko-Lee problem,
The Ko-Lee problem was originally proposed as a variant of the conjugacy prob-
lem to induce a trapdoor one-way function (for a public-key cryptosystem).
However, it looks easier to solve than the conjugacy problem. Since pseudoran-
domness needs no trapdoor, the conjugacy problem itself can be considered.
If f is a one-way function, every bit of the argument x cannot be easily
computed from f (x). A natural question is whether there is a specific bit of x
which is not distinguished from a random bit by any efficient algorithm given
f (x). This question was first addressed by Blum et al. [8]. Demonstrating such
a pseudorandom bit for the discrete exponentiation function, they introduced
the notion of hard-core predicate as a cryptographically useful tool. Loosely
488 E. Lee, S.J. Lee, and S.G. Hahn
1.3 Outline
In §2, we introduce some notations and briefly describe the braid groups. In §3,
we examine the bit security in the conjugacy problem (§3.1), present a collection
of one-way functions based on that problem (§3.2), and construct a hard-core
predicate of the one-way function (§3.3). In §4, we construct a pseudorandom
generator (§4.1) and a pseudorandom synthesizer (§4.2).
2 Preliminaries
2.1 Notations
Basic notation: Let N and Z denote the set of all natural numbers and the
set of all integers, respectively. For any bit-string x, ||x|| denotes its length (i.e.
the number of bits in x). For a finite set S, |S| denotes the cardinality of S and
||S|| denotes the maximum among the bit-lengths of elements of S. The notation
(ai,j )1≤i≤n,1≤j≤m denotes an (n × m)-matrix whose (i, j)-entry is ai,j .
Pseudorandomness from Braid Groups 489
3 Hard-Core Predicate
From the intractability assumption of the conjugacy problem, one can naturally
derive a one-way function, cnjα : Bn −→ Bn , defined by cnjα (χ) = χ−1 αχ,
where α ∈ Bn .
Our goal in this section is to construct a peculiar hard-core predicate of cnjα .
Therefore, we should discover for cnjα the hard-core bit of a braid into which
the one-wayness of cnjα is transformed.
Notice that we are in different situation from previous ones for the following
reasons: (i) A braid is not naturally expressed as a digit. (ii) cnjα is not a
group homomorphism. By (i), we should find a different type of bit from the
least significant bit (for RSA, Rabin) [1] or the most significant bit (for discrete
exponentiation function) [8]. Since such a bit must be an invariant of a braid,
let us consider the left-canonical form. Recall that any braid χ ∈ Bn is uniquely
expressed in its left-canonical form χ = ∆un χ1 · · · χp . Here, each of the integers
u, p, and u + p is called the infimum, the canonical-length, and the supremum
of χ and denoted by inf(χ), len(χ), and sup(χ), respectively. Because they are
invariants of a braid, the hard-core bit may be derived from some of them. In
contrast to (ii), the homomorphic property of the other one-way functions was
essential to find their hard-core bits [8,1]. Therefore, we should approach our
problem in a new way.
Pseudorandomness from Braid Groups 491
Fact 1. Braids are classified into three dynamical types [20,4]—periodic, re-
ducible, pseudo-Anosov—by the Nielsen-Thurston classification of surface au-
tomorphisms [25,24,11,5]. The periodic and the reducible types are of extremely
special forms and the pseudo-Anosov one is of typical form [25].
Notice that, given (α, χ−1 αχ), to retrieve χ ∈ Dn,p we must know inf(ζ) mod
2 from (α, ζ −1 αζ) for many ζ’s in Bn−1 which are closely related to χ. However,
any finite subset of Bn−1 except for {en−1 } is not a group. So it happens that
for some χ’s in Dn,p , some ζ’s are not in Dn,p . For this reason, the domain of
hard-core predicate is defined slightly different from the corresponding one of
cnj.
For every k = (n, p) ∈ I, consider a slightly enlarged set of Dk ,
def
D̄k = Dk ∪ {χσi−1 | χ ∈ Dk , i ∈ {1, . . . , n − 2}}.
Using the infimum and D̄k , we now define a collection of boolean predicates
The following lemma is crucial to our main result. It shows, for a random
choice χ ∈ D̄k , how to turn a PPTA that predicts correctly infk (χ) from cnjα (χ)
with probability non-negligibly higher than 1/2 into a PPTA predicting almost
correctly.
Lemma 1. For an infinite subset F of I, let A be a PPTA and P be a positive
polynomial such that for all k = (n, p) ∈ F
1 1
Pr[A(1n , 1p , α, χ−1 αχ) = infk (χ) : α ← IG(1n , 1p ); χ ← DG(1n , 1p )] ≥ 2 + P (k) .
Then for any positive polynomial Q, there exists a PPTA C such that for all
k = (n, p) ∈ F
1
Pr[C(1n , 1p , α, χ−1 αχ) = infk (χ) : α ← IG(1n , 1p ); χ ← DG(1n , 1p )] ≥ 1 − Q(k) .
def 2
Proof. For every k ∈ F , let N = N (k) = 14 P (k) Q(k). On every input (1n , 1p , α,
χ−1 αχ), where k = (n, p) ∈ F, α ∈ [IG(1n , 1p )], and χ ∈ [DG(1n , 1p )], C executes
the following algorithm:
Pseudorandomness from Braid Groups 495
1. Invoke A on input (1n , 1p , α, χ−1 αχ) independently N -times. And let A(i)
be the i-th invoking of A for each i ∈ {1, . . . , N }.
PN
2. If i=1 A(i) (1n , 1p , α, χ−1 αχ) ≥ N2 , output 1. Otherwise, output 0.
For every k = (n, p) ∈ I and every i ∈ {1, . . . , N }, define a PPTA
ζiA (1n , 1p , ·, ·) induced by A as
A n p −1 1 if A(i) (1n , 1p , α, χ−1 αχ) 6= infk (χ)
ζi (1 , 1 , α, χ αχ) =
0 otherwise,
Thus,
h P i
N
Pr N1 i=1 ζiA (1n,1p , α, χ−1 αχ) ≥ 1
2 : α ← IG(1n , 1p ); χ ← DG(1n,1p ) < 1
Q(k) .
That is to say,
1
Pr[C(1n,1p , α, χ−1 αχ) = infk (χ) : α ← IG(1n,1p ); χ ← DG(1n,1p )] ≥ 1 − Q(k) .
t
u
496 E. Lee, S.J. Lee, and S.G. Hahn
t
u
4 Pseudorandom Schemes
[The DKL-Assumption]
For every PPTA A, every positive polynomial P , and all sufficiently large k =
(n, p)’s in I,
u u
Pr A(α, χ−1αχ, ψ −1αψ, ψ −1χ−1αχψ) = 1 : α← IG(1n,1p ); χ← LDk ; ψ← RDk
u u u
− Pr A(α, χ−1αχ, ψ −1αψ, β) = 1 : α← IG(1n,1p ); χ← LDk ; ψ← RDk ; β← Rk,α
1
< P (k) .
The idea of this section is as follows: Given (α, χ−1 αχ) for α ∈ Bn , χ ∈ Bm , it
looks hard to find χ even if we know (ψi−1 αψi , χ−1 ψi−1 αψi χ)’s for polynomially
many ψi ’s randomly chosen in τ (Bn−m ).
def
Notation. For every k ∈ I and every α ∈ Ik , let LRk,α = {χ−1 αχ | χ ∈ LDk }.
where l = l(k).
Sketch of Proof. Fix k = (n, p) ∈ I and let l = l(k). First, define a PPTA M, on
input hα, χ−1 αχ, ψ −1 αψ, β̃i where α ∈ Ik , χ ∈ LDk , ψ ∈ RDk , and β̃ ∈ Rk,α ,
from A as:
u
1. J ← {1, . . . , l}.
u u
2. χ1 , . . . , χJ−1 ← LDk ; βJ+1 , . . . , βl ← Rk,α .
def
3. H = hχ−1
1 ψ
−1
αψχ1 , . . . , χ−1
J−1 ψ
−1
αψχJ−1 , β̃, βJ+1 , . . . , βl i.
Pseudorandomness from Braid Groups 499
4. Output A(H).
Next, for each i ∈ {1, . . . , l}, define the i-th hybrid distribution
Hik,l = hψ −1 α1 ψ, . . . , ψ −1 αi ψ, βi+1 , . . . , βl i,
u u
where (α, α1 , . . . , αi ) ← PGIG KL (1n , 1p , 1i ); ψ ← RDk ; βi+1 , . . . , βl ← Rk,α .
Then we get that
u u
Pr M(α, χ−1αχ, ψ −1αψ, ψ −1χ−1αχψ) = 1 : α ← IG(1n , 1p ); χ ← LDk ; ψ ← RDk
u u u
− Pr M(α, χ−1αχ,ψ −1αψ,β)=1 : α← IG(1n,1p ); χ← LDk ; ψ← RDk ; β← Rk,α
1 u
= Pr A(Hlk,l ) = 1 : (α, α1 , . . . , αl ) ← PGIG KL (1n , 1p , 1l ); ψ ← RDk
l
u
− Pr A(H0k,l ) = 1 : α ← IG(1n , 1p ); β1 , . . . , βl ← Rk,α .
u
where l = l(k) and α ← IG(1n , 1p ); χ1 , . . . , χl ← LDk ; χ = (χ1 , . . . , χl );
u u
ψ1 , . . . , ψl ← RDk ; ψ = (ψ1 , . . . , ψl ); γ1,1 , . . . , γl,l ← Rk,α .
Sketch of Proof. Fix k = (n, p) ∈ I and let l = l(k). First, define a PPTA M, on
input hα, χ−1 αχ, ψ −1 αψ, β̃i where α ∈ Ik , χ ∈ LDk , ψ ∈ RDk , and β̃ ∈ Rk,α ,
from A as:
u
1. J ← {1, . . . , l2 }.
2. Compute J1 , J2 such that 1 ≤ J1 , J2 ≤ l and J = l(J1 − 1) + J2 .
def def
3. Let χJ1 = χ and ψJ2 = ψ.
u u
4. χ1 , . . . , χJ1 −1 ← LDk ; ψ1 , . . . , ψJ2 −1 , ψJ2 +1 , . . . , ψl ← RDk ;
u
βJ+1 , . . . , βl2 ← Rk,α .
5. Define the (l × l)-matrix H = (hi,j )1≤i,j≤l to be
−1 −1
ψj χi αχi ψj if l(i − 1) + j < J,
hi,j = β̃ if l(i − 1) + j = J,
β def
w if w = l(i − 1) + j > J.
6. Output A(H).
u u u
where α ← IG(1n , 1p ); χ1 , . . . , χl ← LDk ; ψ1 , . . . , ψl ← RDk ; βr+1 , . . . , βl2 ←
Rk,α .
Then we get that
u u
Pr M(α, χ−1αχ, ψ −1αψ, ψ −1χ−1αχψ) = 1 : α ← IG(1n , 1p ); χ ← LDk ; ψ ← RDk
u u u
− Pr M(α, χ−1αχ,ψ −1αψ,β)=1 : α← IG(1n,1p ); χ← LDk ; ψ← RDk ; β← Rk,α
1 u u
= 2
Pr A(Hlk,l n p
2 ) = 1 : α ← IG(1 , 1 ); χ1 , . . . , χl ← LDk ; ψ1 , . . . ψl ← RDk
l
u
− Pr A(H0k,l ) = 1 : α ← IG(1n , 1p ); β1 , . . . , βl2 ← Rk,α .
5 Concluding Remarks
This article has considered two related hard problems in braid groups: the con-
jugacy and the Ko-Lee problems, which are believed to be computationally in-
feasible in our current state of knowledge.
Assuming that the conjugacy problem is one-way, we have presented two
peculiar hard-core predicates that are provably secure using the infimum and
the supremum of a braid. This means that, given (α, χ−1 αχ), predicting the
least significant bit of inf(χ) (or sup(χ)) is as hard as the entirety of χ.
Under the decision Ko-Lee assumption, we have proposed two practical pseu-
dorandom schemes, a pseudorandom generator and a pseudorandom synthesizer,
that are provably secure.
Braid groups are quite different from the other groups which have been
dealt with so far. So the known methods to turn hard-core predicates into pseu-
dorandom generators and to turn pseudorandom generators or pseudorandom
synthesizers into pseudorandom function generators cannot be applied naively.
Therefore, a natural line for further research is to study how to get these next
cryptographic primitives from our results.
Acknowledgement. We wish to thank the members of the CRYPTO commit-
tee. The first two authors were supported in part by the Ministry of Science and
Technology under the National Research Laboratory Grant 1999 program. And
the third author was supported in part by the Korea IT Industry Promotion
Agency under the Information Technologies Research Center program.
References
1. W. Alexi, B. Chor, O. Goldreich, and C.P. Schnorr, RSA and Rabin functions:
certain parts are as hard as the whole, SIAM J. Comput. 17 (1988) 194–209.
2. I. Anshel, M. Anshel, and D. Goldfeld, An algebraic method for public-key cryp-
tography, Math. Res. Lett. 6 (1999) 287–291.
3. M. Bellare and P. Rogaway, Random oracles are Practical: a Paradigm for Design-
ing Efficient Protocols, In 1st Annual Conference on Computer and Communica-
tions Security, ACM (1993) 62–73.
502 E. Lee, S.J. Lee, and S.G. Hahn
1 Introduction
The concept of secret-sharing (introduced by Shamir [13]) is of fundamental
importance: in practical data security, as a way to protect a secret simultaneously
from exposure and from being lost; and theoretically, as the basis for building
general multi-party secure protocols.
In the original setting of Shamir, a dealer distributes a secret, say an l-bit
string, to n players, by privately sending a share to each player. The computation
?
Supported by the Swiss SNF, project no. SPP 2000-055466.98.
2 Communication Model
achievable. For the corresponding results for a (nearly) arbitrary t in the range
n/3 ≤ t < n/2, we refer to Appendix C. Note that the case t < n/3 is completely
understood: zero failure probability and optimally efficient communication can
be achieved by a combination of Shamir’s secret sharing scheme and standard
efficient error correction techniques [2].
We stress that our definition of security captures the best one can achieve in
this setting. Negligible error δ m is achieved by m parallel repetitions. More im-
portantly, it only differs from perfect security in the sense that there is a (small)
probability that some player does not reconstruct the secret and outputs “fail-
ure” instead. This is unavoidable in the presence of an arbitrary (not necessarily
rushing) active adversary, as is easy to see (please refer to Appendix B). Fur-
thermore, existing Honest-Dealer VSS schemes like [12] (“secret sharing when
the dealer is a knight”) fulfill our security definition without any changes in the
required communication.
A seemingly stronger security definition would require agreement among the
honest players in all cases, i.e., they all recover the correct secret or they all
output “failure”, where the latter would happen with probability at most δ.
However, this is impossible to achieve in a single round reconstruction phase
with a rushing adversary, as we show in Appendix B. 2
Note also that the reconstruction procedure in our definition is completely
general in that it does not dictate how the correct secret is recovered by the
honest players. The definition merely states that from all broadcast and from
his private information, an honest player can reconstruct the secret. In particular,
in our definition it need not be the case that an honest player, using his private
information, “filters out” false shares and reconstructs the secret from the “good”
ones, as it is the case for known schemes [12,4] and the one we present later.
We prove the following lower bound. Note that the standard definitions of en-
tropy, conditional entropy, mutual information and conditional mutual informa-
tion are used throughout this section. We refer to [3] for an excellent introduction
to information theory.
while for an even n, it is the size H(Yi Yj ) of every pair Yi 6= Yj that is lower
bounded by Ω(H(S) + kn).
We will only prove the case of an odd n, i.e., n = 2t + 1; the proof for an even
n, i.e. n = 2t + 2, goes accordingly. But before going into the proof, consider the
following Lemma, which states a well known result from Authentication Theory,
which can be found in various literature starting with [14] (for a very general
treatment of Authentication Theory consult [11]).
pI ≥ 2−I(K;Y |Z) .
Also, knowing Z and Y , one can compute Ỹ˜ , consistent with K and Z and a
˜ 6= M with probability
M̃
pS ≥ 2−H(K|Z) .
pS ≥ 2−I(K;Y |Z)−1 .
Proof of Proposition 1: Since by the privacy of the scheme the public share Yi
is independent of S and hence H(Yi ) does not depend on the distribution of S,
we can assume PS to be the uniform distribution. Furthermore, for symmetry
reasons, we can focus on the public share of the player Pt+1 .
Let i ∈ {1, . . . , t} be arbitrary but fixed, and consider an adversary corrupting
the first i − 1 players P1 , . . . , Pi−1 as well the player Pt+1 . One of the goals
of the adversary could be to substitute Pt+1 ’s public share Yt+1 by a false
share Ỹt+1 that is consistent with the public shares Y1 , . . . , Yt of the first t
On the Cost of Reconstructing a Secret 509
players and player Pi ’s key Ki (and maybe even the keys K1 , . . . , Ki−1 ), but
that leads to an incorrect secret S̃ 6= S. Indeed, if the adversary succeeds in this
attack, from player Pi ’s point of view, the t + 1 public shares Y1 , . . . , Yt , Ỹt+1
could come from honest and the t shares Yt+2 , . . . , Yn from corrupted play-
ers. Hence, Pi clearly cannot compute the correct secret with certainty, and
so outputs “failure”. Therefore, the success probability of this attack is at most
δ ∈ 2−Ω(k) . On the other hand however, according to the above Corollary, applied
to K = Ki , M = S, Y = Yt+1 and Z = (K1 , . . . , Ki−1 , Y1 , . . . , Yt ), the success
probability is at least pS ≥ 2−I(Ki ;Yt+1 |K1 ···Ki−1 Y1 ···Yt )−1 . Therefore, we have
I(Ki ; Yt+1 |K1 · · · Ki−1 Y1 · · · Yt ) ∈ Ω(k). This holds for every i ∈ {1, . . . , t}, and
hence, using the chain rule for mutual information, we get
t
X
I(K1 · · · Kt ; Yt+1 |Y1 · · · Yt ) = I(Ki ; Yt+1 |Y1 · · · Yt K1 · · · Ki−1 ) ∈ Ω(kt)
i=1
A remark concerning the authentication code. The choice of the code is not
completely arbitrary, since it is important for our later purposes that compu-
tation of tags has low arithmetic complexity (here one multiplication and one
addition over F ) and that the tags are linear if α is fixed, as shown in Section 7.1.
6.1 Definition
Since now the dealer might be corrupt as well and so the distribution of the
secret takes the form of an interactive protocol, the adversary can not only
intrude faults in the reconstruction, but also in the distribution. Therefore, our
definition operates with two error probabilities, which for a concrete scheme do
not have to be equal: first the probability that the distribution fails to work as
supposed, and second the probability that the reconstruction fails, even though
the distribution succeeded.
Assume an active adversary that corrupts at most t of the n players plus
the dealer (respectively, including the dealer, in case he is one of the players).
Additionally, the adversary can be static or adaptive, and rushing or non-rushing.
Consider a scheme with an arbitrary distribution phase resulting in every player
Pi holding a key ki and a public share yi and with a one-round reconstruction
phase as in the honest dealer case. We call such a scheme (t, n, 1−β, 1−δ)-secure
if, except with probability β (taken over the coin flips during the distribution),
the following holds.
Privacy: As long as the dealer remains honest, the adversary gains no infor-
mation about the shared secret s as a result of the distribution phase.
On the Cost of Reconstructing a Secret 511
To describe the sharing protocol from [4], we start by reviewing the concept of
Information Checking (IC), introduced in [12]. In essence, an IC scheme provides
unconditionally secure “signatures” with limited transferability. More concretely,
it allows a sender S to provide a transmitter T (also called intermediary) with
a message m and a “signature” σ, such that T can later pass (m, σ) on to
a recipient R, claiming that m originates with S. The signature σ enables R
to verify this. We use the notation σm (S, T ; R) to refer to such a signature.
Although in reality the “signing” procedure is an interactive protocol involving
all three players and using a broadcast channel, we abuse language slightly and
simply say that S “sends the signature σm (S, T ; R) to T ”. IC must fulfill the
following requirements, except with some small error probability. If T and R
are uncorrupted, then R indeed accepts T ’s message m (consistency). If, on the
other hand, S and R are uncorrupted, then R rejects any message m0 6= m
(correctness). Finally, if S and T are uncorrupted, then R gets no information
on m before T passes (m, σ) on to him (secrecy). It is easy to extend this concept
and the corresponding protocols to multiple recipients, say R1 , . . . , Rn , by simply
executing the single recipient protocol for each possible recipient. We then use the
notation σm (S, T ) = (σm (S, T ; R1 ), . . . , σm (S, T ; Rn )). For a formal definition
and technical details, please refer to [12,4].
Please recall that the IC-signatures from [4] over a field F have the following
linearity properties. If T holds two signatures σm (S, T ; R) and σm0 (S, T ; R) and
if λ is known to R and T , then T can compute a signature σm+m0 (S, T ; R)
for m + m0 and a signature σλm (S, T ; R) for λm. This holds analogously in
the multi-recipient case. As to efficiency, generating a signature σm (S, T ; R)
costs O(log |F |) bits of communication, generating a signature σm (S, T ) with
n recipients costs O(n log |F |) bits of communication. Furthermore, the secrecy
condition holds perfectly while correctness and consistency hold with probability
1 − 2− log |F | for a single-recipient and 1 − 2− log |F |+log(n) for a multi-recipient
signature.
We present the VSS sharing protocol from [4], which we will call Pre Share, in
a slightly modified version. Namely, for ease of exposition, we use a symmetrical
polynomial and we omit the signatures made by the dealer (since these are
needed only to catch a corrupted dealer early on).
3. For every two players Pi and Pj , the following is done. Pi sends sij together
with a signature σsij (Pi , Pj ) = (σsij (Pi , Pj ; P1 ), . . . , σsij (Pi , Pj ; Pn )) to Pj .
If sij 6= sji , then Pj broadcasts a complaint, to which the dealer has to
answer by broadcasting sji . If this value does not coincide with Pj ’s sji ,
then Pj accuses the dealer publicly who then has to broadcast Pj ’s share sj
and subshares sj1 , . . . , sjn . 4
4. If at some point, the broadcast information is inconsistent, the players take
some publicly known default sharing.
This protocol stands as a VSS sharing protocol on its own (but with “expensive”
reconstruction, as argued earlier). The proof of this fact is based on the following
observations. Please refer to [4] or the appendix.
Proposition 2. After the execution of Pre Share, every honest Pi holds a share
si and signed sub-shares si1 . . . sin such that
1. If the dealer remains honest, then the adversary has no information about
the secret s.
2. The sub-shares si1 . . . sin of any honest player Pi are a correct sharing of si ,
and sij = sji holds for all Pi and Pj who remain honest.
3. The shares si of the honest players are correct shares of a unique value s0 ,
which is the secret s if the dealer remains honest.
4. For any (honest or dishonest) player Pj , the sub-shares sij of the honest
players Pi are correct shares of Pj ’s share sj , which is well defined by the
shares si of the honest players.
The communication complexity of this Pre Share protocol is O(n3 log |F |) bits,
the dealer essentially distributes n2 sub-shares and each of these sub-shares is
signed, where signing costs O(n log |F |) bits of communication per signature.
Protocol MP Auth
1. V chooses a random polynomial fα of degree at most t with fα (0) = α and
a random polynomial fβ of degree at most 2t with fβ (0) = β. For every
player Pk , V sends the shares αk = fα (k) and βk = fβ (k) to Pk together
with signatures σαk (V, Pk ; P ) and σβk (V, Pk ; P ), verifiable by P .
2. Every player Pk , having received the shares αk and βk with the corresponding
signatures and holding the share mk of m, computes yk = αk · mk + βk and,
using the linearity property of the signatures, the corresponding signature
σyk (V, Pk ; P ) 5 and passes yk and σyk (V, Pk ; P ) on to P , who verifies the
signature (see point 3. in Section 6.2).
3. If P receives all the yk and all the signatures are good, then he can recon-
struct y by interpolation, i.e. by computing a polynomial fy of degree at
most 2t with fy (k) = yk for all Pk and computing y = fy (0).
If some signature σyk (V, Pk ; P ) is not correct, then before computing y as
above, P passes mk and σmk (Pk , P ; V ) on to V , who verifies the signature
and in case of a good signature returns yk = αk · mk + βk to P (see point 2.
in Section 6.2 for the case V refuses).
Proposition 3. Under the assumptions stated before the protocol, the following
holds except with probability 2− log |F |+O(log n) .
1. If P and V remain honest during the execution, then y = α · m + β.
2. If P remains honest, then the adversary learns nothing about m.
3. If V remains honest, then the adversary learns nothing about α.
Hence, the tag y can be thought of being computed by some honest player.
Proof. We will prove 1., 2. and 3. under the assumption that the security prop-
erties of the signatures hold without error probability; this proves the claim.
1. Let fm be the polynomial of degree at most t with fm (k) = mk and hence
fm (0) = m. The n shares yk = αk · mk + βk define a unique polynomial fy
of degree at most 2t with fy (k) = yk and fy (0) = y = α · m + β, namely
fy = fα · fm + fβ . So, if all n players Pk behave and send yk with the correct
signature to P , then P can compute fy and hence y. If on the other hand
some corrupted player Pk misbehaves and sends an incorrect yk to P (or an
incorrect signature or nothing at all), then P recognizes this and gets the
correct yk from V . Hence, even in this case P gets all the correct yk and can
therefore reconstruct y.
2. We assume wlog that V is corrupted. If all the corrupted players Pk follow
the protocol, then the adversary definitely gets no information at all. If
some corrupted player Pk misbehaves (e.g. by sending a bad yk ), then the
adversary only learns mk , which he already knows.
3. We assume that P is corrupted. Note that the adversary does not learn any-
thing new by asking V for a yk in step 3., since the correct value mk must be
sent to V (otherwise V would not accept the signature and return nothing).
5
Note that mk is known to both Pk and P .
On the Cost of Reconstructing a Secret 515
We have to show that the adversary’s view of this protocol gives no infor-
mation about α. The adversary’s view, excluding the signatures, consists
of m, m1 , . . . , mn , y1 , . . . , yn and αk and βk for Pk ∈ A, where A is the
set of corrupted
Q players, with yk = αk · mk + βk . Consider the polynomial
dα (X) = Pk ∈A (k−X)/k of degree t and the polynomial dβ = −dα ·fm of de-
gree at most 2t. Note that dα (0) = 1 and dβ (0) = −m and dα (k) = 0 = dβ (k)
for all Pk in A. This implies that if fα and fβ are the sharing polyno-
mials for α and β, then for any α0 , β 0 with α0 · m + β 0 = y, the poly-
nomials fα0 = fα + (α0 − α)dα and fβ 0 = fβ + (α0 − α)dβ are sharing
polynomials for α0 and β 0 , consistent with the adversary’s view. Note that
fβ 0 (0) = β − (α0 − α)m = y − α0 · m = β 0 . Since fα and fβ are randomly
chosen with fα (0) = α and fβ (0) = β, the adversary’s view of the protocol,
excluded the signatures, is independent of α. This together with the secrecy
property of the signatures proves the claim. t
u
The VSS sharing protocol that meets the lower bound of Theorem 1 now works
as follows. First, Pre Share is applied to the secret and then, by applying MP Auth
to the shares, the sub-shares and signatures are stripped off and replaced by tags
for the actual shares:
Protocol Share
1. The above protocol Pre Share is executed on the secret s. As a result, every
player Pi holds a share si , sub-shares si1 , . . . , sin and signatures σsi1 (P1 , Pi ),
. . . , σsin (Pn , Pi ).
2. For every player Pi , tags yi1 , . . . , yin for si are computed by executing
MP Auth with every player Pj on the message si and Pj ’s randomly cho-
sen key (αij , βij ).
Note that all the sub-shares sij and signatures σsij (Pj , Pi ) are only temporarily
used and can be deleted at the end of the protocol. For the reconstruction, as in
the honest-dealer case, only the shares, the tags and the keys are needed.
Theorem 3. For t = b(n − 1)/2c, there exists a Verifiable Secret Sharing
scheme, (t, n, 1 − 2−Ω(k) , 1 − 2−Ω(k) )-secure against an adaptive and rushing ad-
versary, with a sharing complexity of O(kn3 ) and a single-round reconstruction
of complexity O(kn2 ).
Proof sketch: We can take the above scheme over a field F with |F | ∈ 2Θ(k) .
Secrecy and correctness follow from Propositions 2 and 3. The communication
complexity of the Pre Share protocol is O(kn3 ), of the MP Auth protocol it is
516 R. Cramer, I. Damgård, and S. Fehr
The most efficient previously known protocol for MPC with pre-processing in
our model is based on [4]. Note that this would result in a pre-processing phase
with complexity of the same order as in our case. However, due to VSS with
optimized reconstruction, we gain an efficiency improvement of a multiplicative
factor n in the computation phase of our protocol.
References
When justifying the claim that the proposed communication pattern is most
general, it should be kept in mind that we are interested in the complexity of
the reconstruction phase, and that all “re-modeling” operations are allowed as
long as they do not affect the complexity of reconstruction (apart from constant
factors).
By the assumption that the dealer is honest, we may assume without loss of
generality that the distribution phase only consists of the dealer sending private
information si to each of the players Pi , i.e., any secure distributed computation
carried out by the players in the distribution phase could as well be carried out by
the honest dealer, without consequences to the complexity of the reconstruction
phase. Similarly, we may assume that in the reconstruction phase each player Pi
merely broadcasts a piece of information, yi , that only depends on the private
information si received from the dealer. Namely, at the cost of at most a constant
factor of increased communication, private channels can be simulated by one-
time pads, the keys of which are distributed by the honest dealer. In fact, it can be
assumed that in general si = (ki , yi ), where yi is required to be broadcast in the
reconstruction phase, and each player Pi makes a local (possibly probabilistic)
decision on the secret s based on the broadcast information and his private ki .
Lemma 2. There exists a static, non-rushing adversary such that with non-zero
probability some honest players output “failure” in the reconstruction phase.
Lemma 3. There exists a static, rushing adversary such that such that with
non-zero probability some honest player recovers the secret in the reconstruction
phase, while some other honest player outputs “failure”.
Proof. Consider the case t > n/3. Let B, A0 , A1 be an arbitrary disjoint partition
of {1, . . . , n} such that 1 ≤ |A0 | ≤ t − 1 and 1 ≤ |A1 | ≤ t. Note that 2 ≤ |B| ≤ t.
Let p, q be distinct members of B. We consider the same adversary as before,
except that in the reconstruction phase, the adversary “rushes”, and waits until
the players in B have broadcast their yi ’s. He then makes a guess for player p’s
private kp , and broadcasts random ỹj ’s for the players, consistent with kp and
with the yi ’s of the players in B and a random secret different from the correct
one (which he knows by now). For similar reasons as before we conclude that
player p does not reconstruct the secret if the guess for kp was correct. However,
in that case player q must reconstruct the secret with positive probability: for
if not, corrupting A0 and player p (note that this amounts to at most t cor-
ruptions), the adversary would not have to guess kp anymore, and hence there
would be a strategy that makes at least one honest player output “failure” in
the reconstruction with probability equal to 1. This contradicts correctness. u t
C Non-maximal t
In the main body of this paper, we have only considered a maximal t in the
interesting range n/3 ≤ t < n/2. We will now state the generalizations of the
Theorems 1 to 4 for a (nearly) arbitrary t in this range. The corresponding proofs
are similar but technically more involved.
Theorem 1’. For any family of Single-Round Honest-Dealer VSS schemes,
(t, n, 1 − δ)-secure against an arbitrary active, rushing adversary, the following
holds. Let k be a security parameter and let > 0 be an arbitrary constant. If
δ = 2−Ω(k) and n/3 · (1 + ) ≤ t < n/2 then the total information broadcast in
the reconstruction phase is lower bounded by Ω((nH(S) + kn2 )/(n − 2t)).
Note that already an arbitrarily small linear gap between t and n/2 reduces the
lower bound by a factor of n. The following Theorem shows that the reconstruc-
tion complexity indeed reduces by a factor of n for such a t (at least in case of
a security parameter k slightly larger than linear in n).
Theorem 2’. For n/3 ≤ t < n/2 and k = Ω((n − 2t) log(t)), there ex-
ists a Single-Round Honest-Dealer VSS scheme, (t, n, 1 − 2−Ω(k) )-secure against
an adaptive and rushing adversary, with a total communication complexity of
O(kn2 /(n − 2t)) bits.
The according holds for VSS.
Theorem 3’. For n/3 ≤ t < n/2 and k = Ω((n − 2t) log(t)), there exists a
Single-Round VSS scheme, (t, n, 1 − 2−Ω(k) , 1 − 2−Ω(k) )-secure against an adap-
tive and rushing adversary, with a sharing complexity of O(kn3 ) and a recon-
struction complexity of O(kn2 /(n − 2t)).
On the Cost of Reconstructing a Secret 521
D General Adversaries
We show that our tight lower bound from Section 4 does not hold if the adversary
does not rush, and instead selects the corrupted shares he will broadcast in
the reconstruction phase before it has started. We also sketch a lower bound
522 R. Cramer, I. Damgård, and S. Fehr
s̃. Hence, in order for log 1/ to be O(k), the size of each individual share must
be Ω(k).
Although it is generally not very realistic to assume that the adversary is
not rushing, it is possible to construct a “simultaneous broadcast” channel on
top of the “secure channels with broadcast model”. Namely, simply have each
player first VSS their values, e.g. by using the schemes of [12,4], after which all
VSS’s are opened. Using the concrete scheme above, this procedure would ensure
that shares are “broadcast simultaneously”, and hence that the required inde-
pendence is achieved, at the cost of increased complexity of the reconstruction
phase and use of private channels in that phase. The advantage, however, is that
the efficiency of the distribution phase has been substantially improved.
F Proof of Proposition 2
1. First note that the adversary does not gain any new information by making
players complain. Let A be the set of players who have been corrupted during
the execution of Pre Share. The existence the symmetrical polynomial
Y (X − i)(Y − i)
d(X, Y ) =
i2
Pi ∈A
1 Introduction
condition and show how it can be used for implementing atomic broadcast. Ex-
ternal validity ensures that the decision value is acceptable to the particular
application that requests agreement; this corrects a drawback of earlier agree-
ment protocols for multi-valued agreement, which could decide on illegal values.
Both protocols use digital signatures and additional cryptographic techniques.
The multi-valued Byzantine agreement protocol invokes only a constant ex-
pected number of binary Byzantine agreement sub-protocols on average and
achieves this by using a cryptographic common coin protocol in a novel way. It
withstands the maximal possible corruption of up to one third of the parties and
has expected quadratic message complexity (in the number of parties), which is
essentially optimal.
Our atomic broadcast protocol guarantees that a message from an honest
party cannot be delayed arbitrarily by an adversary as soon as a minimum
number of honest parties are aware of that message. The protocol invokes one
multi-valued Byzantine agreement per batch of payload messages that is deliv-
ered. An analogous reduction of atomic broadcast to consensus in the crash-fault
model has been described by Chandra and Toueg [8], but it cannot be directly
transferred to the Byzantine setting.
We also define and implement a variation of atomic broadcast called secure
causal atomic broadcast. This is a robust atomic broadcast protocol that tolerates
a Byzantine adversary and also provides secrecy for messages up to the moment
at which they are guaranteed to be delivered. Thus, client requests to a trusted
service using this broadcast remain confidential until they are answered by the
service and the service processes the requests in a causal order. This is crucial in
our asynchronous environment for applying the state machine replication method
to services that involve confidential data.
Secure causal atomic broadcast works by combining an atomic broadcast pro-
tocol with robust threshold decryption. The notion and a heuristic protocol were
proposed by Reiter and Birman [17], who called it “secure atomic broadcast”
and also introduced the term “input causality” for its main property. Recent
progress in threshold cryptography allows us to present an efficient robust pro-
tocol together with a security proof in the random oracle model.
In accordance with the comprehensive survey of fault-tolerant broadcasts by
Hadzilacos and Toueg [10], we define and implement our protocols in a mod-
ular way, with reliable and consistent broadcasts and Byzantine agreement as
primitives. This leads to the following layered architecture:
Important for the presentation of our broadcast protocols is our formal model
of a modular protocol architecture, where a number of potentially corrupted par-
ties communicate over an insecure, asynchronous network; it uses complexity-
theoretic concepts from modern cryptography. This makes it possible to easily
Secure and Efficient Asynchronous Broadcast Protocols 527
integrate the formal notions for encryption, signatures, and other cryptographic
tools with distributed protocols. The model allows for quantitative statements
about the running time and the complexity of protocols; the essence of our def-
inition is to bound the number of steps taken by participants on behalf of a
protocol independently from network behavior. In view of the growing impor-
tance of cryptography for secure distributed protocols, a unified formal model
for both is a contribution that may be of independent interest.
Organization of the Paper. For lack of space, only the most important results are
described in this extended abstract. It begins with a brief account of the formal
model and definitions for binary Byzantine agreement and consistent broad-
cast. Then it presents validated Byzantine agreement and an implementation
for the multi-valued case, which is extended to atomic broadcast. More details,
in particular the formal model, detailed definitions and proofs, the discussion of
related work, and the descriptions of reliable broadcast and secure causal atomic
broadcast, can be found in the full version [5].
2 Model
2.1 Overview of the Formal Model
Our system consists of a collection of n interactive Turing machines, of which
t are (statically) corrupted by an adversary, modeled by an arbitrary Turing
machine. There is a trusted dealer that has distributed some cryptographic keys
initially, but it is not used later. Our model differs in two respects from other
models traditionally used in distributed systems with Byzantine faults: (1) In
order to use the proof techniques of complexity-based cryptography, our model
is computational : all parties and the adversary are constrained to perform only
feasible, i.e., polynomial-time, computations. This is necessary for using formal
notions from cryptography in a meaningful way. (2) We make no assumptions
about the network at all and leave it under complete control of the adversary. Our
protocols work only to the extent that the adversary delivers messages faithfully.
In short, the network is the adversary. The differences become most apparent in
the treatment of termination, for which we use more concrete conditions that
together imply the traditional notion of “eventual” termination.
We define termination by bounding a statistic measuring the amount of work
that honest, uncorrupted parties do on behalf of a protocol. In particular, we use
the communication complexity of a protocol for this purpose, which is defined
as the length of all protocol messages that are “associated” to the protocol
instance. We use the term protocol message for messages that the parties send
to each other to implement a protocol, in contrast to the payload messages that
are the subject of the (reliable, consistent, atomic . . . ) broadcasts among all
parties. The specification of a protocol requires certain things to happen under
the condition that all protocol messages have been delivered; thus, bounding the
length (and also the number) of protocol messages generated by uncorrupted
parties ensures that the protocol has actually terminated under this condition.
528 C. Cachin et al.
Validity: If an honest party has c-broadcast m tagged with ID.j.s, then all
honest parties c-deliver m tagged with ID.j.s, provided all honest parties have
been activated on ID.j.s and the adversary delivers all associated messages.
Consistency: If some honest party c-delivers m tagged with ID.j.s and another
honest party c-delivers m0 tagged with ID.j.s, then m = m0 .
Authenticity: For all ID, senders j, and sequence numbers s, every honest
party c-delivers at most one message m tagged with ID.j.s. Moreover, if Pj
is honest, then m was previously c-broadcast by Pj with sequence number s.
Efficiency: For any ID, sender j, and sequence number s, the communication
complexity of instance ID.j.s is uniformly bounded.
The provision that the “adversary delivers all associated messages” is our quan-
titative counterpart to the traditional “eventual” delivery assumption.
A party Pi that has delivered a payload message using consistent broadcast
may want to inform another party Pj about this. Such information might be
530 C. Cachin et al.
useful to Pj if it has not yet delivered the message, but can exploit this knowl-
edge to deliver the payload message itself, maintaining consistency. We call this
property the verifiability of a consistent broadcast.
Informally, we use verifiability like this: when Pj claims that it is not yet
in a state to c-deliver a particular payload message m, then Pi can send a
single protocol message to Pi and when Pj processes this, it will c-deliver m
immediately.
Definition 3 (Verifiability). A consistent broadcast protocol is called verifi-
able if the following holds, except with negligible probability: When an honest
party has c-delivered m tagged with ID.j.s, then it can produce a single protocol
message M that it may send to other parties such that any other honest party
will c-deliver m tagged with ID.j.s upon receiving M (provided the other party
has not already done so before).
We call M the message that completes the verifiable broadcast. This notion
implies that there is a polynomial-time computable predicate VID.j.s that the
receiving party can apply to an arbitrary bit string for checking if it constitutes
a message that completes a verifiable broadcast tagged with ID.j.s.
A protocol for verifiable authenticated consistent broadcast (denoted VCBC)
is given in the full version [5]. It is inspired by the “echo broadcast” of Reiter [16]
and based on a threshold signature scheme. Its message complexity is O(n) and
its bit complexity is O(n(|m|+K)), assuming the length of a threshold signature
and a signature share is at most K bits.
4.1 Definition
Suppose there is a global polynomial-time computable predicate QID known
to all parties, which is determined by an external application. Each party may
Secure and Efficient Asynchronous Broadcast Protocols 531
propose a value v that should satisfy QID and perhaps contains validation in-
formation. The agreement domain is not restricted to binary values.
A validated Byzantine agreement protocol is activated by a message of the
form (ID, in, v-propose, v), where v ∈ {0, 1}∗ . When this occurs, we say Pi
proposes v for transaction ID. We assume the adversary activates all honest
parties on a given ID at most once. W.l.o.g., honest parties propose values that
satisfy QID .
A party terminates a validated Byzantine agreement protocol by generating
a message of the form (ID, out, v-decide, v). In this case, we say Pi decides v
for transaction ID.
We say that any protocol message with tag ID that was generated by an
honest party is associated to the validated Byzantine agreement protocol for ID.
An agreement protocol may also invoke sub-protocols for low-level broadcasts or
for Byzantine agreement; in this case, all messages associated to those protocols
are associated to ID as well (such messages have tags with prefix ID| . . . ).
Definition 4 (Validated Byzantine Agreement). A protocol solves vali-
dated Byzantine agreement with predicate QID if it satisfies the following con-
ditions except with negligible probability:
External Validity: Any honest party that terminates for ID decides v such
that QID (v) holds.
Agreement: If some honest party decides v for ID, then any honest party that
terminates decides v for ID.
Liveness: If all honest parties have been activated on ID and all associated
messages have been delivered, then all honest parties have decided for ID.
Integrity: If all parties follow the protocol, and if some party decides v for ID,
then some party proposed v for ID.
Efficiency: For every ID, the communication complexity for ID is probabilisti-
cally uniformly bounded.
A variation of the validity condition is that an application may prefer one
class of decision values over others. Such an agreement protocol may be biased
and always choose the preferred class in cases where other values would have
been valid as well.
Validated Byzantine agreement is often used with arguments that consist of
a “value” part v and a separate “proof” π that establishes the validity of v. If v
is a single bit, we call this the problem of binary validated agreement; a protocol
for this task is used below.
In fact, we will need a binary validated agreement protocol that is “biased”
towards 1. Its purpose is to detect whether there is some validation for 1, so
it suffices to guarantee termination with output 1 if t + 1 honest parties know
the corresponding information at the outset. Formally, a binary validated Byzan-
tine agreement protocol biased towards 1 is a protocol for validated Byzantine
agreement on values in {0, 1} such that the following condition holds:
Biased Validity: If at least t + 1 honest parties propose v = 1 then any honest
party that terminates for ID decides v = 1.
532 C. Cachin et al.
5 Atomic Broadcast
Atomic broadcast guarantees a total order on messages such that honest parties
deliver all messages with a common tag in the same order. It is well known that
536 C. Cachin et al.
protocols for atomic broadcast are considerably more expensive than those for
reliable broadcast because even in the crash-fault model, atomic broadcast is
equivalent to consensus [8] and cannot be solved by deterministic protocols. The
atomic broadcast protocol given here builds directly on multi-valued validated
Byzantine agreement from the last section.
5.1 Definition
Atomic broadcast ensures that all messages broadcast with the same tag ID are
delivered in the same order by honest parties; in this way, ID can be interpreted
as the name of a broadcast “channel.” The total order of atomic broadcast yields
an implicit labeling of all messages.
An atomic broadcast is activated when the adversary delivers an input mes-
sage to Pi of the form (ID, in, a-broadcast, m), where m ∈ {0, 1}∗ . When this
occurs, we say Pi atomically broadcasts m with tag ID. “Activation” here refers
only to the broadcast of a particular payload message; the broadcast channel ID
must be opened before the first such request.
A party terminates an atomic broadcast of a particular payload by generating
an output message of the form (ID, out, a-deliver, m). In this case, we say Pi
atomically delivers m with tag ID. To distinguish atomic broadcast from other
forms of broadcast, we will also use the terms a-broadcast and a-deliver.
The acknowledgement mechanism needed for composition of atomic broad-
cast with other protocols is omitted from this extended abstract.
Again, the adversary must not request an a-broadcast of the same payload
message from any particular party more than once for each ID (however, several
parties may a-broadcast the same message).
Atomic broadcast protocols should be fair so that a payload message m
is scheduled and delivered within a reasonable (polynomial) number of steps
after it is a-broadcast by an honest party. But since the adversary may delay
the sender arbitrarily and a-deliver an a priori unbounded number of messages
among the remaining honest parties, we can only provide such a guarantee when
at least t + 1 honest parties become “aware” of m. Our definitions of validity
and of fairness require actually that only after t + 1 honest parties have a-
broadcast some payload, it will be delivered within a reasonable number of steps.
This is also the reason for allowing multiple parties to a-broadcast the same
payload message—a client application might be able to satisfy this precondition
through external means and achieve guaranteed fair delivery in this way. Fairness
can be interpreted as a termination condition for the broadcast of a particular
payload m.
The efficiency condition (which ensures fast termination) for atomic broad-
cast differs from the protocols discussed so far because the protocol for a par-
ticular tag cannot terminate on its own. It merely stalls if no more undelivered
payload messages are in the system and must be terminated externally. Thus,
we cannot define efficiency using the absolute number of protocol messages gen-
erated. Instead we measure the progress of the protocol with respect to the
number of messages that are a-delivered by honest parties. In particular, we
Secure and Efficient Asynchronous Broadcast Protocols 537
require that the number of associated protocol messages does not exceed the
number of a-delivered payload messages times a polynomial factor, independent
of the adversary.
We say that a protocol message is associated to the atomic broadcast protocol
with tag ID if and only if the message is generated by an honest party and tagged
with ID or with a tag ID| . . . starting with ID. In particular, this encompasses
all messages of the atomic broadcast protocol with tag ID generated by honest
parties and all messages associated to basic broadcast and Byzantine agreement
sub-protocols invoked by atomic broadcast.
Fairness and efficiency are defined using the number of payload messages in
the “implicit queues” of honest parties. We say that a payload message m is in
the implicit queue of a party Pi (for channel ID) if Pi has a-broadcast m with
tag ID, but no honest party has a-delivered m tagged with ID. The system queue
contains any message that is in the implicit queue of some honest party. We say
that one payload message in the implicit queue of an honest party Pi is older
than another if Pi a-broadcast the first message before it a-broadcast the second
one.
When discussing implicit queues at particular points in time, we consider a
sequence of events E1 , . . . , Ek000 during the operation of the system, where each
event but the last one is either an a-broadcast or a-delivery by an honest party.
The phrase “at time τ ” for 1 ≤ τ ≤ k 000 refers to the point in time just before
event Eτ occurs.
Definition 5 (Atomic Broadcast). A protocol for atomic broadcast satisfies
the following conditions except with negligible probability:
Validity: There are at most t honest parties with non-empty implicit queues for
some channel ID, provided the adversary opens channel ID for all honest
parties and delivers all associated messages.
Agreement: If some honest party has a-delivered m tagged with ID, then all
honest parties a-deliver m tagged with ID, provided the adversary opens
channel ID for all honest parties and delivers all associated messages.
Total Order: Suppose an honest party Pi has a-delivered m1 , . . . , ms with tag
ID, a distinct honest party Pj has a-delivered m01 , . . . , m0s0 with tag ID, and
s ≤ s0 . Then ml = m0l for 1 ≤ l ≤ s.
Integrity: For all ID, every honest party a-delivers a payload message m at
most once tagged with ID. Moreover, if all parties follow the protocol, then
m was previously a-broadcast by some party with tag ID.
Fairness: Fix a particular protocol instance with tag ID. Consider the system
at any point in time τ0 where there is a set T of t + 1 honest parties with
non-empty implicit queues, let M be the set consisting of the oldest payload
message for each party in T , and let S0 denote the total number of distinct
payload messages a-delivered by any honest party so far. Define a random
variable U as follows: let U be the total number of distinct payload messages
a-delivered by honest parties at the point in time when the first message in
M is a-delivered by any honest party, or let U = S0 if this never occurs.
Then U − S0 is uniformly bounded.
538 C. Cachin et al.
Efficiency: For a particular protocol instance with tag ID, let X denote its
communication complexity, and let Y be the total number of distinct payload
messages that have been a-delivered by any honest party with tag ID. Then,
at any point in time, the random variable X/(Y + 1) is probabilistically uni-
formly bounded.
Fig. 3. Protocol ABC for atomic broadcast using multi-valued validated Byzantine
agreement.
540 C. Cachin et al.
References
1. M. Ben-Or and R. El-Yaniv, “Interactive consistency in constant time.”
Manuscript, 1991.
2. M. Ben-Or, R. Canetti, and O. Goldreich, “Asynchronous secure computation,” in
Proc. 25th Annual ACM Symposium on Theory of Computing (STOC), 1993.
3. P. Berman and J. A. Garay, “Randomized distributed agreement revisited,” in
Proc. 23th International Symposium on Fault-Tolerant Computing (FTCS-23),
pp. 412–419, 1993.
4. G. Bracha and S. Toueg, “Asynchronous consensus and broadcast protocols,” Jour-
nal of the ACM, vol. 32, pp. 824–840, Oct. 1985.
5. C. Cachin, K. Kursawe, F. Petzold, and V. Shoup, “Secure and efficient asyn-
chronous broadcast protocols.” Cryptology ePrint Archive, Report 2001/006, Mar.
2001. http://eprint.iacr.org/.
Secure and Efficient Asynchronous Broadcast Protocols 541
1 Introduction
those in which a malicious verifier is allowed to interact with the honest prover
in various notions of zero knowledgeness.) Roughly speaking, here are the four
notions, each of which implies the previous one:
All four notions are meaningful. Sequential soundness (the notion implicitly used
in [CGGM00]) is certainly a very natural notion, and concurrent and resettable
soundness are natural extensions of it. As for one-time soundness, it is also quite
meaningful when it is possible to enforce that a prover who fails to convince
the verifier of the verity of a given statement S does not get a second chance at
proving S. (E.g., the verifier may memorize the theorem statements for which
the prover failed; or make suitable use of timestamps.)
These four notions of soundness apply both to interactive proofs (where a
malicious prover may have unlimited power [GMR89]) and argument systems
(where a malicious prover is restricted to polynomial time [BCC88]).
Separating the Four Notions. We prove that the above four notions are
not only meaningful, but also distinct. Though conceptually important, these
separations are technically simple. They entail exhibiting three protocols, each
satisfying one notion but not the next one; informally, we prove the following
theorems.
Theorem 1. If one-way functions exist, there is a compiler-type algorithm that,
for any language L, and any interactive argument system for L satisfying one-
time soundness, produces another interactive argument system for the same lan-
guage L that satisfies one-time soundness but not sequential soundness.
second rely only on the existence of one-way functions. (This is why Theorems
1 and 2 only hold for bounded provers).
Realizing that there exist separate notions of soundness in the BPK model
is crucial to avoid errors. By relying on a single, undifferentiated, and intuitive
notion of soundness, one might design a BPK protocol sound in settings where
malicious provers are limited in their interactions, while someone else might
erroneously use it in settings where malicious provers have greater powers.
1. The CGGM protocol is sequentially sound, and probably no more than that.
That is, while it is sequentially sound, we provide evidence that it is NOT
concurrently sound.
2. The MR protocol is exactly concurrently sound. That is, while it is concur-
rently sound, we prove that it is NOT resettably sound.
(As we said, the MR protocol works in a stronger public-key model, but all
our notions of soundness easily extend to this other model.)
Theorem 5. Assuming the security of RSA with large prime exponents against
subexponentially-strong adversaries, for any L ∈ NP, there exists a 3-round
black-box RZK protocol in the BPK model that possesses one-time, but not se-
quential, soundness.
Whether the BPK model allows for 3-round, sequentially sound, ZK protocols
remains an open problem. It is known that four rounds suffice in the standard
model for ZK protocols [FS89], and therefore also in the BPK model. However,
in the following theorem we show that in the BPK model four rounds suffice
even for resettable ZK.
Theorem 6. Assuming there exist certified trapdoor permutation families2 se-
cure against subexponentially-strong adversaries, for any L ∈ NP, there exists
a 4-round black-box RZK protocol in the BPK model that possesses sequential
soundness.
Note: For the sake of brevity, in this section we focus exclusively on arguments,
rather than proofs (i.e., the malicious prover is limited to polynomial time, and
soundness is computational). All the currently known examples of protocols in
the BPK model are arguments anyway, because they enable a malicious prover to
cheat if it can recover the secret key SK from the public key PK . Our definitions,
however, can be straightforwardly modified for proofs. (Note that the BPK model
does not rule out interactive proofs: in principle, one can make clever use of a
verifier public key that has no secrets associated with it.)
In this section, we formally define soundness in the BPK model, namely that a
malicious prover should be unable to get the verifier to accept a false statement.3
For the sake of brevity, we focus only on soundness. The notions of completeness
(which is quite intuitive) and resettable zero-knowledgeness (previously defined
in [CGGM00]) are provided in Appendix A
The Players
Before providing the definitions, we need to define the parties to the game: the
honest P and V and the various malicious impostors. Let
2
A trapdoor permutation family is certified if it is easy to verify that a given function
belongs to the family.
3
It is possible to formalize the four notions of soundness by insisting that the verifier
give zero knowledge to the (one-time, sequential, concurrent or resetting) malicious
prover. This would highlight the correspondence of our soundness notions to the
notions of zero-knowledge, and would be simpler to define, because the definitions
of zero-knowledge are already well established. However, such an approach is an
overkill, and would result in unnecessarily restrictive notions of soundness in the
BPK model: we do not care if the prover gains knowledge so long as the knowledge
does not allow the prover to cheat.
Soundness in the Public-Key Model 547
The Definitions
A pair (P, V) can satisfy one or more of the four different notions of soundness
defined below. We note that each subsequent notion trivially implies the previous
one.
For the purposes of defining one-time and sequential soundness, we consider
the following procedure for a given s-sequential malicious prover P ∗ , a verifier
V and a security parameter n.
Procedure Sequential-Attack
1. Run the key-generation stage of V on input 1n and a random string r to
obtain PK , SK .
2. Run first stage of P ∗ on inputs 1n and P K to obtain an n-bit string x1 .
3. For i ranging from 1 to s(n)/2:
3.1 Select a random string ρi .
3.2 Run the 2i-th stage of P ∗ , letting it interact with the verification
stage of V with input SK , xi , ρi .
3.3 Run the (2i + 1)-th stage of P ∗ to obtain an n-bit string xi .
Finally, for the purposes of defining resettable soundness, we consider the fol-
lowing procedure for a given s-resetting malicious prover P ∗ , a verifier V and a
security parameter n.
Procedure Resetting-Attack
1. Run the key-generation stage of V on input 1n and a random string r to
obtain PK , SK .
2. Run P ∗ on inputs 1n and PK .
3. Generate s(n) random strings ρi for 1 ≤ i ≤ s(n).
4. Let P ∗ interact with oracles for the second stage of the verifier, the i-th
oracle having input SK , ρi .
Note that concurrent soundness and resettable soundness differ in one crucial
aspect: for the former, every instance of V is an interactive TM that keeps state
between rounds of communication, and thus cannot be rewound; whereas for the
latter, every instance of V is just an oracle, and thus can effectively be rewound.
Definition 4. (P, V) satisfies resettable soundness for a language L if for all
positive polynomials s, for all s-resetting malicious provers P ∗ , the probability
that in an execution of Resetting-Attack, P ∗ ever receives “accept x” for x ∈/L
from any of the oracles is negligible in n.
Proof of Theorem 1
Let F be a pseudorandom function [GGM86]; we denote by Fs (x) the output
of F with seed s on input x. Note that such functions exist assuming one-way
functions exist [HILL99]. Let x denote the theorem that the prover is trying to
prove to the verifier.
Add to Key Gen: Generate random n-bit seed s; add s to the secret key SK .
Proof of Theorem 2
Let (SigKeyGen, Sign, Ver) be a signature scheme secure against adaptive chosen
message attacks [GMR88]. Note that such a scheme exists assuming one-way
functions exist [Rom90].
Add to Key Gen: Generate a key pair (SigPK , SigSK ) for the signature
scheme; add SigPK to the public key PK and SigSK
to the secret key SK .
Note that a concurrent malicious prover can easily get V 0 to accept. It starts
a protocol with V 0 , sends M = 0, receives M 0 from V, and then pauses the
protocol. During the pause, it starts a second protocol, and sends M = M 0 to
V 0 to obtain a signature s of M 0 in first message from V 0 . It then resumes the
first protocol, and sends s0 = s to V 0 as its second message, which V 0 accepts.
Also note that a sequential malicious prover will most likely not be able to
come up with a valid signature of M 0 , because of the signature scheme’s security
against adaptive chosen message attacks.
Proof of Theorem 3
Add P Step: Set β be the string of n zeroes; send β to the verifier.
Add V Step: Set α be a random string.
If β = α, accept and stop. Else send α to the prover.
Soundness in the Public-Key Model 551
Note that a resetting malicious prover can easily get V 0 to accept: it finds out
the value of α in the first interaction, then resets V 0 with the same random tape
(and hence the same α, because α comes from V’s random tape) and sets β = α
for the second interaction. A concurrent malicious prover, on the other hand,
knows nothing about α when it determines β, and thus cannot get V 0 to accept.
Note that this separation holds in the standard model as well—we never used
the BPK model in this proof.
There are only two known protocols in the BPK model, the original one of
[CGGM00] and the one of [MR01] (the latter actually working in a slightly
stronger model). Thus we need to understand which notions of soundness they
satisfy.
Although [CGGM00] did not provide formal definitions of soundness in the BPK
model, their soundness proof essentially shows that their protocol is sequentially
sound. However, let us (sketchily) explain why it will probably not be possible
to prove their protocol concurrently sound.
The CGGM protocol begins with V proving to P knowledge of the secret key
by means of parallel repetitions of a three-round proof of knowledge subprotocol.
The subprotocol is as follows: in the first round, V sends to P a commitment;
in the second round, P sends to V a one-bit challenge; in the third round, V
sends to P a response. This is repeated k times in parallel in order to reduce the
probability of V cheating to roughly 2−k .
In order to prove soundness against a malicious prover P ∗ , these parallel
repetitions of the subprotocol need to be simulated to P ∗ (by a simulator that
does not know the secret key). The best known simulation techniques for this
general type of proof of knowledge run in time roughly 2k . This exponential in k
simulation time is not a concern, because of their use of “complexity leveraging”
in the proof of soundness. Essentially, the soundness of their protocol relies on an
underlying much harder problem: for instance, one that is assumed to take more
than 23k time to solve. Thus, the soundness of the CGGM protocol is proved by
contradiction: by constructing a machine from P ∗ that runs in time 2k < 23k
and yet solves the underlying harder problem.
A concurrent malicious prover P ∗ , however, may choose to run L parallel
copies of V. Thus, to prove soundness against such a P ∗ , the proof-of-knowledge
subprotocol would have to be simulated Lk times in parallel, and this simulation
would take roughly 2Lk time. If L > 3, then we will not be able to solve the
underlying hard problem in time less than 23k , and thus will not be able to derive
any contradiction.
552 S. Micali and L. Reyzin
The protocol in [MR01] extends the BPK model with a counter. Namely, there
is an a-priori polynomial bound B that limits the total number of times the
verifier executes the protocol, and the verifier maintains state information from
one interaction to the next via a counter (that can be tested and incremented
in a single atomic operation).
Our soundness notions easily extend to the MR model as well, and their
soundness proof can be easily modified to yield that their protocol is concurrently
sound in the new model. However, let us (sketchily) prove here that the MR
protocol is not resettably sound.
In the MR protocol, verifier V publishes a public key for a trapdoor commit-
ment scheme, and then proves knowledge of the trapdoor using non-interactive
zero-knowledge proof of knowledge (NIZKPK), relative to a jointly generated
string σ. It is easy to see that in the MR protocol, if P ∗ could learn V’s trap-
door, then he could force V to accept a false theorem. The knowledge-extraction
requirement of the NIZKPK system guarantees that, by properly selecting σ, one
could extract the trapdoor from the proof. Now, a malicious resetting prover P ∗
has total control over σ. Indeed, in the MR protocol σ is the exclusive-or of two
strings: σP provided by the prover in the first round, and σV provided by the
verifier in the second round. Thus, P ∗ simply finds out σV by running the pro-
tocol once, then resets V and provides σP such that the resulting σ = σV ⊕ σP
will equal the string that allows P ∗ to extract the trapdoor.
The BPK model was introduced to save rounds in RZK protocols, but has itself
introduced four notions of soundness. We have already shown that these notions
are formally separated. Now, we show that they also have quite different algo-
rithmic requirements: namely, stronger notions of soundness for ZK protocols
require more rounds to be implemented. More precisely, we show a lowerbound,
namely that concurrently sound black-box ZK requires four or more rounds, and
two upperbounds, namely that one-time-sound RZK can be achieved in three
rounds (which can be shown optimal using the standard-model lowerbound of
[GO94]), and that sequential RZK can be achieved in four rounds.
Note that our lowerbound in the BPK model is not contradicted by the
existence of the 3-round concurrently-sound protocol of [MR01], which is in a
stronger model, where the verifier has a counter.
We derive our lowerbound in the BPK model, where there are different no-
tions of soundness, from the older one of Goldreich and Krawczyk [GK96] for
Soundness in the Public-Key Model 553
Notice that by the term “one-time access” we make retroactive use of our modern
terminology: [GK96] make no mention of one-time provers, because they work in
the standard model. However, this terminology allows us to separate their proof
of (∗) into two distinct steps:
(∗0 ) P ∗ can execute M so long as it has concurrent access to V; and
(∗00 ) losing only a polynomial amount of efficiency, concurrent access to V is
equivalent to one-time access.
Tedious but straightforward analysis shows that (∗0 ) and the rest of their proof —
except for (∗00 )— carries through in the BPK model (where the 3-round protocol
is modified to include verifier key generation, and public and secret verifier keys
are then involved). Step (∗00 ), however, only holds in the standard model (where,
as we pointed out, one-time, sequential and concurrent soundness coincide).
In sum, therefore, once verifier keys are introduced, one is left with a con-
current prover. t
u
α
circuits of size 2k , where k is VRF the security parameter). Let γ1 be the
following constant: for all sufficiently large n, the length of the NIZK proof Π
for x ∈ L of length n is upper bounded by nγ1 . Let γ2 be the following constant:
for all sufficiently large n, the length of the NP-witness y for x ∈ L of length n
is upper bounded by nγ2 . We then set γ = max(γ1 , γ2 ), and > γ/α. We use
NIZK with security parameter n and VRF with a (larger) security parameter
k = n . This ensures that one can enumerate all potential NIZK proofs Π, or all
γ
potential NP-witnesses y, in time 2n , which is less than the time it would take
γ α
to break the residual pseudorandomness of VRF (because 2n < 2k ).
The Protocol. For a security parameter n, V generates a key pair for the
VRF with output length NIσLen(n) and security parameter k = n . VRFSK is
V’s secret key, and VRFPK is V’s public key.
P Step One: 1. Using the string ω as a seed for PRF, generate a string
σP of length NIσLen(n) from the inputs x, y and id .
2. Send σP to V.
As far as we know, the above protocol is the first application of VRFs. The very
strong properties of this new tool yield surprisingly simple proofs of one-time
soundness and resettable zero-knowledgeness.
to input to P, and then rewinds and uses the NIZK simulator NIS(x) just like
the sequential malicious prover described above.
Soundness. First of all, note that soundness of our protocol is provably not
sequential, because σV depends only on the input x, and hence will repeat if V is
run with the same x twice. Thus, once a sequential malicious prover P ∗ knows
σV , it can run the NIZK simulator NIS(x) to obtain (σ 0 , Π 0 ), restart with the
0
same x, and use σP = σ 0 ⊕ σV as its first message and Π 0 as its second message.
To show one-time soundness, first assume (for simplicity) that P ∗ interacts
with V only once (we will deal with the general case later). Then we will construct
a machine T = (TJ , TE ) to break the residual pseudorandomness of the VRF (see
the definition of VRF in Appendix B). Namely, given the public key VRFPK of
a VRF with security parameter k, TJ runs the first stage of P ∗ on input VRFPK
to receive a string x. It then checks if x ∈ L by simply enumerating all potential
γ2
NP witnesses y in time 2n . If it is, then TJ outputs (x, state), where state = 0.
Otherwise, it runs the second stage of P ∗ to receive σP , and outputs (x, state),
where state = (x, σP ).
Now, TE receives v, and TE ’s job is to find out whether v is a random
string or VRFEval(VRFSK , x). If state = 0, then TE simply guesses at random.
Otherwise, state = (x, σP ). Let σ = σP ⊕v. If v is a random string, then σ is also
random, so most likely there is no NIZK proof Π of the statement “x ∈ L” with
respect to σ (by soundness of the NIZK proof system). Otherwise, v = σV , so, if
P ∗ has a better than negligible probability of success, then there is a better than
negligible probability that Π exists with respect to σ. Thus, TE simply searches
γ1
whether a proof Π exists (in time 2n ) to determine whether v is random or
the output of VRFEval.
Complexity leveraging is crucial here: we are using the fact that the VRF
is “stronger” than the non-interactive proof system. Otherwise, the output of
VRFProve (which the prover gets, but T does not) could help a malicious prover
find Π. By using a stronger VRF, we are ensuring that such Π will most likely
not even exist.
Now we address the general case, when P ∗ is allowed s(n) sequential inter-
actions with V, and wins if V accepts at least one of them (say, the i-th one)
for xi ∈/ L. Then TJ simply guesses, at random, the conversation number i for
which P ∗ will succeed, and simulates conversations before the i-th one by query-
ing VRFEval and VRFProve on xj for j < i (it is allowed to do so, because, in
one-time soundness, xj 6= xi ). t
u
a 4-round black-box RZK protocol in the BPK model that possesses sequential
soundness.
Proof Sketch. The proof is, again, constructive. The construction is a modifica-
tion of the CGGM protocol (which has 8 rounds, and can easily be modified to
have 5 by combining the first three rounds with later rounds).
Main Ideas. The CGGM protocol starts with a three-round proof of knowledge
subprotocol in which V proves to P knowledge of the secret key. After that, P
proves to V that a graph is three-colorable using a five-round protocol.
Our main idea is to replace the five-round protocol with a single round using
non-interactive zero-knowledge. The first three rounds are then used both for
the proof of knowledge and for agreeing on a shared random auxiliary string
σ needed for the NIZK proof. To agree on σ, V sends to P an encryption of a
random string σV , P sends to V its own random string σP , and then V reveals
σV (and the coins used to encrypt it). The string σ is computed as σP ⊕ σV .
Thus, V’s key pair is simply a key pair for an encryption scheme. The protocol
is zero-knowledge essentially for the same reasons that the CGGM protocol is
zero-knowledge: because the simulator can extract the decryption key from the
proof of knowledge and thus find out σV before needing to submit σP . This will
allow it to select σ as it wishes and thus use the NIZK simulator.
The protocol is sequentially sound because if the theorem is false, then with
respect to only a negligible portion of the possible strings σ does a NIZK proof of
the theorem exist. Thus, if a malicious prover P ∗ , after seeing only an encryption
of σV , is able to come up with σP such that the NIZK proof exists with respect
to the resulting string σ = σP ⊕ σV , then one can use P ∗ to break the security
of the encryption scheme.
The computational assumption for our protocol follows from the fact that
trapdoor permutations are sufficient for encryption [GM84,Yao82,GL89], certi-
fied trapdoor permutations are sufficient for NIZKs [FLS99], one-way permuta-
tions are sufficient for the proof of knowledge [Blu86] (which is the same as in
the CGGM protocol) and one-way functions are sufficient for PRFs [HILL99].
P Step One: 1. Using the input random string ω as a seed for PRF, generate a
sufficiently long “random” string from the input to be used in
the remaining computation by P.
2. Generate and send to V random string σP of length NIσLen(n).
3. Generate and send to V the second message of the n parallel
repetitions of the proof of knowledge of EncSK .
V Step Three: Let σ = σV ⊕ σP . Using the NIZK verifier NIV(σ, x, Π), verify
if Π is valid. If so, accept. Else reject.
[CGGM00]: once the simulator recovers SK from the proof of knowledge, it can
find out σV before having to send σP , and thus can run the NIZK simulator to
get (σ, Π) and set σP = σ ⊕ σV .
Note that Pr[∃Πb and ∃Π1−b ]+Pr[@Πb and @Π1−b ] = 1−(Pr[∃Πb and @Π1−b ]+
Pr[@Πb and ∃Π1−b ]). Therefore,
Pr[A outputs b] = 1/2 − Pr[@Πb and ∃Π1−b ]/2 + Pr[∃Πb and @Π1−b ]/2 .
Note that the either of the events @Πb and @Π1−b can occur only if x ∈
/ L, by
completeness of the NIZK system. Therefore,
References
[BCC88] Gilles Brassard, David Chaum, and Claude Crépeau. Minimum disclo-
sure proofs of knowledge. Journal of Computer and System Sciences,
37(2):156–189, October 1988.
[BDMP91] Manuel Blum, Alfredo De Santis, Silvio Micali, and Giuseppe Persiano.
Noninteractive zero-knowledge. SIAM Journal on Computing, 20(6):1084–
1118, December 1991.
[BFM88] Manuel Blum, Paul Feldman, and Silvio Micali. Non-interactive zero-
knowledge and its applications (extended abstract). In Proceedings of
the Twentieth Annual ACM Symposium on Theory of Computing, pages
103–112, Chicago, Illinois, 2–4 May 1988.
[Blu86] Manuel Blum. How to prove a theorem so no one else can claim it. In
Proc. of the International Congress of Mathematicians, Berkeley, CA,
pages 1444–1451, 1986.
[CGGM00] Ran Canetti, Oded Goldreich, Shafi Goldwasser, and Silvio Micali. Re-
settable zero-knowledge. In Proceedings of the Thirty-Second Annual
ACM Symposium on Theory of Computing, Portland, Oregon, 21–23 May
2000. Updated version available at the Cryptology ePrint Archive, record
1999/022, http://eprint.iacr.org/.
[CKPR01] Ran Canetti, Joe Kilian, Erez Petrank, and Alon Rosen. Black-box con-
current zero-knowledge requires Ω̃(log n) rounds. In Proceedings of the
Thirty-Second Annual ACM Symposium on Theory of Computing, Crete,
Greece, 6–8 July 2001.
[DNS98] Cynthia Dwork, Moni Naor, and Amit Sahai. Concurrent zero knowledge.
In Proceedings of the Thirtieth Annual ACM Symposium on Theory of
Computing, pages 409–418, Dallas, Texas, 23–26 May 1998.
[FLS99] Uriel Feige, Dror Lapidot, and Adi Shamir. Multiple non-interactive zero
knowledge proofs under general assumptions. SIAM Journal on Comput-
ing, 29(1):1–28, 1999.
[FS89] Uriel Feige and Adi Shamir. Zero knowledge proofs of knowledge in two
rounds. In G. Brassard, editor, Advances in Cryptology—CRYPTO ’89,
volume 435 of Lecture Notes in Computer Science, pages 526–545.
Springer-Verlag, 1990, 20–24 August 1989.
[GGM86] Oded Goldreich, Shafi Goldwasser, and Silvio Micali. How to construct
random functions. Journal of the ACM, 33(4):792–807, October 1986.
Soundness in the Public-Key Model 561
B Tools
B.1 Probabilistic Notation
(The following is taken verbatim from [BDMP91] and [GMR88].) If A(·) is an
algorithm, then for any input x, the notation “A(x)” refers to the probability
space that assigns to the string σ the probability that A, on input x, outputs
σ. The set of strings having a positive probability in A(x) will be denoted by
R
“{A(x)}”. If S is a probability space, then “x ← S” denotes the algorithm which
assigns to x an element randomly selected according to S. If F is a finite set,
R
then the notation “x ← F ” denotes the algorithm that chooses x uniformly from
F.
R R
If p is a predicate, the notation PROB[x ← S; y ← T ; · · · : p(x, y, · · ·)] de-
notes the probability that p(x, y, · · ·) will be true after the ordered execution of
R R R R
the algorithms x ← S; y ← T ; · · ·. The notation [x ← S; y ← T ; · · · : (x, y, · · ·)]
denotes the probability space over {(x, y, · · ·)} generated by the ordered execu-
R R
tion of the algorithms x ← S, y ← T, · · ·.
The authors of [MRV99] show how to construct VRFs based on the following
variant of the RSA assumption. (We refer the reader to that paper for details
of the construction.) Let PRIMESn be the set of the n-bit primes, and RSAn
be the set of composite integers that are the product of two primes of length
b(n − 1)/2c.
The RSA’ Subexponential Hardness Assumption: There exists a constant
α
α such that, if A is any probabilistic algorithm which runs in time 2n when its
n
first input is 1 , then,
α
y p = x (mod m)] < 1/2n .
Robust Non-interactive Zero Knowledge
2
Telcordia Technologies, Inc., Morristown, NJ, USA.
[email protected], [email protected]
3
Department of Computer Science, Princeton University. Princeton, NJ 08544.
[email protected]
1 Introduction
Interactive Zero-Knowledge. Over the last two decades, Zero-Knowledge
(ZK) as defined by Goldwasser, Micali, and Rackoff [21] has become a funda-
mental cryptographic tool. In particular, Goldreich, Micali and Wigderson [20]
showed that any NP statement can be proven in computational 1 ZK (see also
[16]). Though ZK was originally defined for use in two-party interactions (i.e.,
between a single Prover and a single Verifier), ZK was shown to be useful in
a host of situations where multiple parties could be involved, especially in the
multi-party secure function evaluation, first considered by Goldreich, Micali and
Wigderson [19]. Informally, one reason the notion of interactive ZK has been
so pervasive is that in the single Prover/Verifier case, ZK essentially guarantees
that any poly-time Verifier after interacting with the Prover in a ZK protocol
learns absolutely nothing. Thus, informally speaking, whatever a poly-time Veri-
fier can do after verifying a ZK protocol, it could also have done before such a ZK
interaction. However, in a multiparty setting, perhaps not surprisingly, the stan-
dard two-party definition of ZK does not guarantee what we would intuitively
expect from “zero knowledge’: that the polynomial-time Verifier after observing
such proofs can not (computationally) do anything that he was not able to do
before such a proofs. Essentially, two important problems were pointed out in
the literature:
One problem, formally defined by Dolev, Dwork and Naor [13] is that of
malleability, which informally means that an adversary who takes part in some
ZK interaction can also interact with other parties and can exploit fragments
of ZK interactions to prove something that he was not able to prove before.
Indeed, this is a real problem to which [13] propose a solution that requires
polylogarithmic overhead in the number of rounds of communication. It is not
known how to reduce the number of rounds further in their solution.
Another problem of ZK in the multi-party setting, pointed out by Dwork,
Naor and Sahai [14], is that verifiers can “collaborate” when talking to provers,
and the ZK property must be guaranteed even in concurrent executions. Indeed,
unless one introduce changes in the model such as timing assumptions, in terms
of the number of rounds, it was shown that a polylogarithmic number of rounds
is both necessary [6] and sufficient [25] to guarantee concurrent ZK.
proposed by Blum, Feldman and Micali [2] by changing the model as follows: we
assume that a common random reference string is available to all players. The
Prover sends a single message to Verifier, which constitutes “non-interactive
zero-knowledge” (NIZK) proof. In [2] it was shown that any NP statement has
a NIZK proof. Extending [2], Blum, De Santis, Micali and Persiano [1] showed
how a Prover can prove polynomially many proofs based on algebraic assump-
tions. Feige, Lapidot and Shamir further refined the definition of NIZK and
constructed2 multiple-proof NIZK based on general assumptions [15]. De Santis
and Persiano extended NIZK notion to NIZK Proofs of Knowledge (NIZK-PK)3
[8].
Again, although the notion of NIZK was defined in a two-party setting, it
quickly found applications in settings with many parties, in particular where
the same reference string may be used by multiple parties (see e.g. [13,28,4,22]).
Because of the non-interactive nature of NIZK proofs, many multi-party issues
that appear in ZK, do not arise in NIZK; for example the problem of concurrent
zero-knowledge is completely gone4 !
The definition of NIZK proposed by [2,1,15], essentially provides the following
guarantee: What one can output after seeing NIZK proofs is indistinguishable
from what one can output without seeing any proofs, if you consider the reference
string as part of the output. Thus, the standard notion of NIZK says that as long
as one can simulate proofs together with random-looking reference strings, this
satisfies the notion of NIZK. This definition, however, leaves open the question
of what to do about output as it relates to the particular reference string that
is being used by a collection of parties. Since the NIZK simulator produces its
own different random string, its output would make sense only relative to the
reference string that it chose, different from the one used by the provers. 5 One of
the contributions of this paper is to strengthen the notion of NIZK to insist that
the simulator works with the same totally random string that all the Provers
work with.
NIZK proofs are broadcastable and transferable – that is, a single proof
string can be broadcasted or transferred from verifier to verifier to convince
multiples parties of the validity of a statement. However, transferability causes
a new problem: a user who have seen an NIZK proof (of a hard problem) can
now “prove” (by simply copying) what he was not able to prove before. Indeed,
2
Efficiency improvements to these constructions were presented in [24,9,10].
3
In the same paper [8] defined dense cryptosystems and showed that dense cryptosys-
tems and NIZK proofs of membership for NP are sufficient in order to construct
NIZK-PK for all of NP. This assumption was shown to be necessary for NIZK-PK
in [11]. (Dense cryptosystemes were also shown to be equivalent to extractable com-
mitment [11].)
4
In fact, non-malleable commitment also becomes much easier to deal with in the
non-interactive setting [12]. Also, though it is not always thought of as a multi-party
issue, the problem of resettable zero-knowledge [5] is also easily dealt with for NIZK
as well.
5
Indeed, it seems quite unfair to let the simulator get away with ignoring the actual
reference string!
Robust Non-interactive Zero Knowledge 569
more generally the problem of malleability does remain for NIZK proofs: With
respect to a particular (fixed) reference string, after seeing some NIZK proofs,
the adversary may be able to construct new proofs that it could not have been
able to otherwise. Sahai introduced non-malleable NIZK in [33] where he shows
how to construct NIZK which remains non-malleable only as long as the number
of proofs seen by any adversary is bounded. In this paper (among other con-
tributions) we continue and extend his work, strengthening the notion and the
constructions of non-malleability and removing the limitation on the number of
proofs. (For further discussion on malleability issues in multi-party situations,
see Appendix A.)
Our results: First, we consider the following notion of NIZK. The sampling
algorithm produces a common random string together with auxiliary informa-
tion. (We insist that the common random string comes from a uniform (or nearly
uniform) distribution). Polynomially-bounded provers use this common random
string to produce polynomially-many NIZK messages for some NP language. We
insist that the simulator, given the same common random string, together with
auxiliary information, can produce the proofs of theorems which are computa-
tionally indistinguishable from the proofs produced by honest provers for the
same reference string. We call this notion same-string NIZK.
We show two facts regarding same-string NIZK: (1) same-string NIZK Proofs
(i.e. where the prover is infinitely powerful) are impossible for any hard-on-
average NP-complete languages (2) same-string NIZK Arguments (i.e. where
the prover is computationally bounded) are possible given any one-way trapdoor
permutation.
Next, we turn to non-malleability for NIZK, and a notion related to
non-malleability called simulation-soundness first defined by Sahai [33]. The
simulation-soundness requirement is that a polynomially-bounded prover can
not prove false theorems even after seeing simulated proofs of any statements
(including false statements) of its choosing. Sahai achieves non-malleability and
simulation-soundness only with respect to a bounded number of proofs. In this
paper, we show that assuming the existence of one-way trapdoor permutations,
we can construct NIZK proof systems which remain simulation-sound even after
the prover sees any polynomial number of simulated proofs6 . Combined with [33]
this also gives the simplest known construction of CCA2-secure public-key cryp-
tosystem based on one-way trapdoor permutations.
In dealing with non-malleability, we next turn to NIZK Proofs of Knowl-
edge (NIZK-PK), introduced by De Santis and Persiano[8]. We use NIZK-PK
to propose a strengthening of the definition of non-malleability for NIZK, based
6
We note that we can also achieve a form of non-malleability (as opposed to simulation
soundness) for NIZK proofs of membership based only on trapdoor permutations.
This non-malleability would also hold against any polynomial number of proofs,
however the non-malleability achieved satisfies a weaker definition than the one we
propose based on NIZK-PK (and in particular, the resulting NIZK proof would only
be a proof of membership and not a proof of knowledge). We omit the details of this
in these proceedings.
570 A. De Santis et al.
– For NIZK arguments, we give the first construction where the simulator uses
the same common random string as used by all the provers.
– Our Robust-NIZK proof systems are non-malleable with regard to any poly-
nomial number of proofs seen by the adversary and with respect to the same
proof-system. (We contrast this with the previous result of [33] which proves
non-malleability against only a bounded number of proofs, and in fact the
length of the reference string grew quadratically in the bound on the the
number of proofs the adversary could see.) In our result, in contrast, the
length of the reference string depends only on the security parameter.
– Our non-malleable NIZK definition and construction based on NIZK-PK
achieves a very strong guarantee: We require that one can obtain an explicit
NP witness for any statement that the adversary can prove after seeing some
NIZK proofs. Thus, it intuitively matches our notion of what NIZK should
mean: that the adversary cannot prove anything “new” that he was not able
to prove before (except for copying proofs in their entirety).
– Finally, our construction yields the simplest known public-key encryption
scheme based on general assumptions which is secure against adaptive
chosen-cyphertext attacks (CCA2).
We point out some new techniques used to establish our results. All previous
work on non-malleability in a non-interactive setting under general assump-
tions [13,12,33] used a technique called “unduplicatable set selection”. Our first
construction provides the first non-malleability construction based on general
assumptions which does not use “unduplicatable set selection” at all, and rather
relies on a novel use of pseudo-random functions of [18]. In our second construc-
tion, we show how to generalize the unduplicatable set selection technique to a
technique we call “hidden unduplicatable set selection,” and use this to build
our proofs. Both techniques are novel, and may have further applications.
Robust Non-interactive Zero Knowledge 571
– As done in [15], the definition could equivalently be one that states that with
all but negligible probability over the choices of common random reference
strings, the simulation is computationally indistinguishable from real proofs
supplied by the prover. We omit the details for lack of space.
– On the other hand, the definition above differs from the standard definition
on unbounded zero knowledge only in the new requirement that the simulator
produce truly uniform reference strings. It is easy to verify that all other
changes are cosmetic.
– In the next theorem, we show why we must speak only of same-string NIZK
arguments, and not NIZK Proofs.
Proof. (Sketch) We only sketch the proof of this impossibility result. Assume
that one-way functions exist, and that a same-string (adaptive) single-theorem
NIZK Proof system exists for an NP-complete language L. We will show a con-
tradiction to the soundness of the NIZK Proof System. First we note that the
existence of one-way functions and Cook’s theorem implies that there is a proba-
bilistic polynomial-time algorithm M such that for all non-uniform polynomial-
time machines A, if x ← M (1k ), the probability that A correctly decides whether
x ∈ L is only negligibly more than 1/2. It is implicit in the previous statement
that with probability close to 1/2, if x ← M (1k ), then x ∈/ L.
This hardness condition also implies that, in particular, the simulator must
output proofs that are accepted with all but negligible probability when given
as input x ← M (1k ). At the same time, because the NIZK system is both same-
string (adaptive) NIZK, it must be that the reference strings output by S1 (1k )
come from a uniform distribution.
Now, consider a cheating (unbounded) prover which, for any given random
string, guesses the auxiliary information τ which maximizes the probability that
the simulator outputs an accepting proof on inputs chosen according to x ←
M (1k ). Since the reference string that the prover encounters is also uniform,
it follows that the cheating prover will have at least as high a probability of
convincing a verifier to accept on input x ← M (1k ). But we know that the
simulator causes the verifier to accept with probability negligibly close to 1. This
contradicts the (unconditional) soundness of the NIZK proof system, completing
the proof.
574 A. De Santis et al.
We also define the notion of an NIZK proof of knowledge [8] for an NP language
L with witness relation R. Informally, the idea is that in an NIZK proof of
knowledge, one should be able to extract the NP witness directly from the proof
if given some special information about the reference string. We capture this
notion by defining an extractor which produces a reference string together with
some auxiliary information. The distribution on reference strings is statistically
close to the uniform distribution. Given the auxiliary information and an NIZK
proof, one can efficiently extract the witness. [8] show how to turn any NIZK
proof system into a proof of knowledge under the assumption that public-key
encryption schemes exist with sufficiently high density of valid public keys (called
dense cryptosystems). We now recall the formal definition:
We now proceed to define non-malleable NIZK. The intuition that our definition
will seek to capture is to achive the strongest possible notion of non-malleability:
“whatever an adversary can prove after seeing polynomially many NIZK proofs
for statements of its choosing, it could have proven without seeing them, ex-
cept for the ability to duplicate proofs.”7 Extending the notion of NIZK-PK of
De Santis and Persiano [8] we define non-malleable NIZK-PK. We will make the
definition with regard to simulated proofs, but note that one can make a similar
definition with regard to actual proofs; we omit it due to lack of space.
7
When interpreting the line “it could have proven without seeing them,” we insist that
an actual NP witness for the statement should be extractable from the adversary,
which is a very strong NIZK-PK property.
Robust Non-interactive Zero Knowledge 575
where ExptSA,R (k) and Expt0A,R (k) are the following experiments:
We also consider (and strengthen) another notion for NIZK called simula-
tion soundness [33] which is related to non-malleability, but also can be use-
ful in applications – in particular, it suffices for building public-key encryption
schemes secure against the strongest form of chosen-ciphertext attack (CCA2).
The ordinary soundness property of proof systems states that with overwhelm-
ing probability, the prover should be incapable of convincing the verifier of a
false statement. In this definition, we will ask that this remains the case even
after a polynomially bounded party has seen any number of simulated proofs
of his choosing. Note that simulation soundness is implied by our definition of
non-malleability above.
ExptA,Π (k) :
(Σ, τ ) ← S1 (1k )
(x, p) ← AS2 (·,Σ,τ ) (Σ)
Let Q be list of proofs given by S2 above
return true iff ( p ∈ / Q and x ∈
/ L and V(x, p, Σ) = true )
3 First Construction
In this section, we exhibit our construction of NIZK proof systems that en-
joy unbounded simulation-soundness. This construction is then readily modified
using NIZK Proofs of Knowledge to construct proof systems with unbounded
non-malleability (in the explicit witness sense), and robust NIZK arguments.
3.1 Ingredients
Let k be the security parameter. We first specify the ingredients used in our
construction:
Commitment. We recall two elegant methods for constructing commitments.
One, based on one-way permutations, will allow us to construct non-malleable
NIZK arguments with unbiased simulations (i.e. robust NIZK). The other, which
can be based merely on one-way functions, suffices to construct non-malleable
NIZK proof systems.
The theorem of Goldreich and Levin [17] immediately yields the following
bit commitment scheme from any one-way permutation f on k bits:
simply reveals s. Observe that the distribution C(b, s) where both b and s are
chosen uniformly has is precisely the uniform distribution over {0, 1}2k . We will
sometimes write just C(b) to mean C(b, s) where s ∈R {0, 1}k . Note that in this
commitment scheme, every string of length 2k corresponds to a commitment to
some unique string.
On the other hand, we recall the bit commitment protocol of Naor [27]
based on pseudorandom generators (which can be built from any one-way func-
tion [23]). Let G be a pseudorandom generator stretching k bits to 3k bits. The
Naor commitment procedure commits to a bit b as follows:
(r, G(s)) if b = 0
C(b, s) =
(r, G(s)⊕r) if b = 1
Here, r ∈R {0, 1}3k , and as above the string s should be selected uniformly at
random among strings of length k. Again, we will sometimes write just C(b) to
mean C(b, s) where s ∈R {0, 1}k . It is shown in [27] that if U and U 0 are both
independent uniform distributions among strings of length 3k, then the distribu-
tions (U, U 0 ), C(0), and C(1) are all computationally indistinguishable (taken as
ensembles of distributions indexed by k). Furthermore, it is clear that unless r
is of the form G(s1 )⊕G(s2 ) for some s1 and s2 , there are no commitment strings
that can arise as both commitments to 0 and commitments to 1. The probability
of this being possible is thus less than 2−k over the choices of r. Furthermore,
the probability that a random sample from (U, U 0 ) could be interpreted as a
commitment to any bit is at most 2−k – in contrast to the one-way permutation
based scheme above.
Pseudo-Random Functions. We also let {fs }s∈{0,1}k be a family of pseudo-
random functions [18] mapping {0, 1}∗ to {0, 1}k .
One-Time Signatures. Finally, let (Gen, Sign, V er) be a strong one-time sig-
nature scheme (see [29,33]), which can be constructed easily from universal one-
way hash functions. Note that these objects can be constructed from one-way
functions.
S1 (1k ) :
s, Σ2 ← {0, 1}3k ; Σ3 ← {0, 1}`Π 0 (k)
ai ← {0, 1}k for i = 1, . . . , k
gi ← C(si , ai ) for i = 1. . . . , k
Σ1 = (g1 , g2 , . . . , gk )
return Σ = (Σ1 , Σ2 , Σ3 ) and
τ = (s, a1 , . . . , ak )
S2 (τ = (s, a1 , . . . , ak ), Σ = (Σ1 , Σ2 , Σ3 ), x) :
(V K, SK) ← Gen(1k )
u = fs (V K)
Use Σ3 as ref string and τ as witness to construct
proof π 0 that (x, u, V K, Σ1 , Σ2 ) ∈ L0
σ ← SignSK (x, u, π 0 )
return (V K, x, u, π 0 , σ)
Proof. As they are standard, we only sketch the proofs for completeness, sound-
ness, and zero-knowledge. We provide the proof of unbounded simulation sound-
ness in full.
Completeness follows by inspection. For the case of NIZK proofs, soundness
follows by the fact that if Σ is chosen uniformly at random, then the probability
that Σ1 can be interpreted as a commitment to any string is exponentially
small, and likewise the probability that Σ2 is in the image of the pseudorandom
generator G is exponentially small. For the case of NIZK arguments, we will in
fact establish not only soundness but the stronger simulation soundness property
below.
In the case where C is based on a one-way permutation, we note that the
simulator’s distribution on Σ is exactly uniform, thus satisfying this property
required by same-string NIZK.
The proof of unbounded zero-knowledge follows almost exactly techniques
of [15]. First we note that if we modify the real prover experiment by replacing the
uniform Σ1 with the distribution from the simulation (which in the case where C
is based on one-way permutations is no change at all), but keep the prover as is,
then by the security of the commitment scheme, the views of the adversary are
computationally indistinguishable. Now, [15] show that single-theorem NIZK
implies unbounded witness-indistinguishability. Thus, since the simulator for
Π uses only a different witness to prove the same statement, the view of the
adversary in the simulator experiment is computationally indistinguishable from
580 A. De Santis et al.
the view of the adversary in the modified prover experiment. Thus, unbounded
zero-knowledge follows.
In the case where this is true, we know that π ∈ / Q, and therefore this implies
that the adversary was able to produce a message/signature pair for V K dif-
ferent than the one given by the simulator. Thus, if Pr[Expt0 (1k ) and V K ∈ T ]
is non-negligible, we can use it to forge signatures and break the (strong) one-
time signature scheme. Thus, Pr[Expt0 (1k ) and V K ∈ T ] is negligible. Since
p(k) = Pr[Expt0 (1k ) and V K ∈ T ] + Pr[Expt0 (1k ) and V K ∈/ T ], we now need
only focus on the second probability. Let p0 (k) = Pr[Expt0 (1k ) and V K ∈
/ T ].
We now consider a second experiment, where we change the acceptance con-
dition of the experiment:
proof that (x, u, V K, Σ1 , Σ2 ) ∈ L0 . Note that this means that s and the
randomness a1 , . . . , ak are not used anywhere except to generate Σ1 . Now,
[15] prove that any adaptive single-theorem NIZK proof system is also adap-
tive unbounded witness-indistinguishable (see [15] for the definition of witness-
indistinguishable non-interactive proofs). The definition of adaptive unbounded
witness-indistinguishability directly implies that |p3 (k) − p2 (k)| ≤ α(k), where
α is some negligible function.
We now consider a fifth experiment, where finally we eliminate all dependence
on s by chosing Σ1 independently of s:
Let p4 (k) = Pr[Expt4 (1k )]. In Expt4 , we choose two independent uniformly
random strings s, s0 and make Σ1 into a commitment to s0 rather than s. This
has the effect of making Σ1 completely independent of the string s.
Suppose s0 , s1 ← {0, 1}k ; b ← {0, 1}, and Σ1 ← commitments to bits of sb .
By the security of the commitment scheme (either by Naor[27] or Goldreich-
Levin [17], depending on which scheme we use), we know that for every
polynomial-time algorithm B, we have that Pr[B(s0 , s1 , Σ1 ) = b] ≤ 12 + α(k),
where α is some negligible function.
Consider the following algorithm B: On input s0 , s1 , Σ1 , execute Expt4 (or
equivalently Expt3 ), except with s = s0 and s0 = s1 , and using the value of Σ1
specified as input to B. Return 1 if the experiment succeeds.
Then:
1 1
Pr[B = b] = Pr[B = 1|b = 1] + Pr[B = 0|b = 0]
2 2
1 1
= (1 − p4 (k)) + p3 (k)
2 2
1 1
= + (p3 (k) − p4 (k))
2 2
584 A. De Santis et al.
Thus, we have that p3 (k) − p4 (k) ≤ α(k) for some negligible function α.
Finally, we consider the last experiment, where we replace the pseudorandom
function f with a truly random function:
Let p5 (k) = Pr[Expt5 (1k )]. In Expt5 , we replace the pseudorandom function
fs with a truly random function F , which simply returns a truly random value
at each query point. Note that since we only consider the case where V K ∈ / T,
this means that F (V K) will be a uniformly selected value (which we denote u0 )
that is totally independent of everything the adversary sees. Thus, it follows that
p5 (k) ≤ 2−k since the probability that any value output by the adversary equals
u0 is at most 2−k .
On the other hand, we will argue that p4 (k) and p5 (k) can only be negligibly
apart by the pseudorandomness of {fs }. Consider the following machine M which
is given an oracle O to a function from {0, 1}k to {0, 1}k : Execute experiment
Expt4 (k) except replace any call to fs with a call to the oracle. Note that s is
not used in any other way in Expt4 (k). Return 1 iff the experiment succeeds.
Now, if the oracle provided to M is an oracle for fs with s ← {0, 1}k , then
Pr[M O = 1] = p4 (k). If M is provided with an oracle for a truly random function
F , then Pr[M O = 1] = p5 (k). By the pseudorandomness of {fs }, it follows that
|p4 (k) − p5 (k)| ≤ α(k) for some negligible function α.
In conclusion, we have that p5 (k) ≤ 2−k , and that pi (k) ≤ pi+1 (k) + α(k) for
some negligible function α for each i = 0, 1, 2, 3, 4. Thus, p0 (k) ≤ β(k) for some
negligible function β, which finally implies that p(k) is negligible, completing the
proof.
4 Second Construction
In this section, we exhibit our second construction of NIZK proof systems with
unbounded adaptive non-malleability (in the explicit NP-witness sense). Our
586 A. De Santis et al.
construction uses several tools, that can all be based on any NIZK proof of
knowledge. In particular, this construction is based on a novel generalization
of unduplicatable set selection [13,12,33] which we call hidden undiplicatable set
selection which can be used to achieve unbounded non-malleability, and might
be useful elsewhere. interest.
First, if the adversary tries to select a different set S 0 (from the one used in
the simulation), then she is forced to use a random string. Therefore S 0 does not
enjoy P and therefore she can produce a convincing real proof only if she has a
witness for x ∈ L.
Second, if the adversary tries to select the same set of strings as the one used
in the simulation and the same input for the pseudo-random function as at least
in one of the proofs she has seen, then she is forced to use the same signature
public key and therefore will have to forge a signaturewhich violates the security
of the signature scheme used.
Third, if the adversary tries to select the same set of strings as the one used
in the simulation and an input for the pseudo-random function different from
all the proofs she has seen, she will either break the secrecy of the commitment
scheme or the pseudorandomness of the pseudo-random function used.
Acknowledgments. Part of this work done while the third author was visiting
Universitá di Salerno and part was done while the fourth author was visiting
Telcordia Technologies and DIMACS. We thank Shafi Goldwasser and Oded
Goldreich for valuable discussions.
References
1. M. Blum, A. De Santis, S. Micali and G. Persiano, Non-Interactive Zero-
Knowledge Proofs. SIAM Journal on Computing, vol. 6, December 1991, pp. 1084–
1118.
2. M. Blum, P. Feldman and S. Micali, Non-interactive zero-knowledge and its
applications. Proceedings of the 20th Annual Symposium on Theory of Computing,
ACM, 1988.
3. G. Brassard, D. Chaum and C. Crépeau, Minimum Disclosure Proofs of Knowledge.
JCSS, v. 37, pp 156-189.
4. M. Bellare, S.Goldwasser, New paradigms for digital signatures and message
authentication based on non-interactive zero knowledge proofs. Advances in Cryp-
tology – Crypto 89 Proceedings, Lecture Notes in Computer Science Vol. 435,
G. Brassard ed., Springer-Verlag, 1989.
5. R. Canetti, O. Goldreich, S. Goldwasser, and S. Micali. Resettable Zero-
Knowledge. ECCC Report TR99-042, revised June 2000. Available from
http://www.eccc.uni-trier.de/eccc/. Preliminary version appeared in ACM
STOC 2000.
6. R. Canetti, J. Kilian, E. Petrank, and A. Rosen Black-Box Concurrent Zero-
Knowledge Requires Ω̃(log n) Rounds. Proceedings of the -67th Annual Sympo-
sium on Theory of Computing, ACM, 1901.
7. R. Cramer and V. Shoup, A practical public key cryptosystem provably secure
against adaptive chosen ciphertext attack. Advances in Cryptology – Crypto 98
Proceedings, Lecture Notes in Computer Science Vol. 1462, H. Krawczyk ed.,
Springer-Verlag, 1998.
8. A. De Santis and G. Persiano, Zero-knowledge proofs of knowledge without
interaction. Proceedings of the 33rd Symposium on Foundations of Computer
Science, IEEE, 1992.
9. A. De Santis, G. Di Crescenzo and G. Persiano, Randomness-efficient Non-
Interactive Zero-Knowledge. Proceedings of 1997 International Colloquium on Au-
tomata, Languagues and Applications (ICALP 1997).
10. A. De Santis, G. Di Crescenzo and G. Persiano, Non-Interactive Zero-
Knowledge: A Low-Randomness Characterization of NP. Proceedings of 1999 In-
ternational Colloquium on Automata, Languagues and Applications (ICALP 1999).
11. A. De Santis, G. Di Crescenzo and G. Persiano, Necessary and Sufficient
Assumptions for Non-Interactive Zero-Knowledge Proofs of Knowledge for all NP
Relations. Proceedings of 2000 International Colloquium on Automata, Languagues
and Applications (ICALP 2000).
12. G. Di Crescenzo, Y. Ishai, and R. Ostrovsky, Non-Interactive and Non-
Malleable Commitment. Proceedings of the 30th Annual Symposium on Theory
of Computing, ACM, 1998.
13. D. Dolev, C. Dwork, and M. Naor, Non-Malleable Cryptography. Proceedings
of the -45th Annual Symposium on Theory of Computing, ACM, 1923 and SIAM
Journal on Computing, 2000.
590 A. De Santis et al.
31. R. Ostrovsky, and A. Wigderson One-Way Functions are Essential for Non-
Trivial Zero-Knowledge. Appeared In Proceedings of the second Israel Symposium
on Theory of Computing and Systems (ISTCS-93) Netanya, Israel, June 7th-9th,
1993.
32. C. Rackoff and D. Simon, Non-interactive zero-knowledge proof of knowledge
and chosen ciphertext attack. Advances in Cryptology – Crypto 91 Proceedings,
Lecture Notes in Computer Science Vol. 576, J. Feigenbaum ed., Springer-Verlag,
1991.
33. A. Sahai Non-malleable non-interactive zero knowledge and adaptive chosen-
ciphertext security. Proceedings of the 40th Symposium on Foundations of Com-
puter Science, IEEE, 1999
34. A. Sahai and S. Vadhan A Complete Problem for Statistical Zero Knowledge.
Preliminary version appeared in Proceedings of the 38th Symposium on Foun-
dations of Computer Science, IEEE, 1997. Newer version may be obtained from
authors’ homepages.
Goldreich, Micali, and Wigderson [19] introduced a powerful paradigm for using
zero-knowledge proofs in multiparty protocols. The idea is to use zero-knowledge
proofs to force parties to behave according to a specified protocol in a manner
that protects the secrets of each party. In a general sense, the idea is to include
with each step in a protocol a zero-knowledge proof that the party has acted
correctly. Intuitively, because each participant is providing a proof, they can only
successfully give such a proof if they have, in truth, acted correctly. On the other
hand, because their proof is zero knowledge, honest participants need not fear
losing any secrets in the process of proving that they have acted correctly.
To turn this intuition into a proof that no secrets are lost, the general tech-
nique is to simulate the actions of certain parties without access to their secrets.
The definition of zero knowledge (in both interactive and non-interactive set-
tings) is based on the existence of a simulator which can produce simulated
proofs of arbitrary statements. This often makes it easy to simulate the actions
of parties (which we call the high-level simulation) as needed to prove that no
secrets are lost.
The problem of malleability, however, can arise here in a subtle way. One
feature of simulators for zero-knowledge proofs is that they can simulate proofs
of false statements. In fact, this is often crucial in the high-level simulation of
parties, because without knowing their secrets it is often not possible to actually
follow the protocol they way they are supposed to. However, on the other hand,
it may also be crucial in the high-level simulation that the proofs received by a
simulated party be correct! As an example which arises in the context of chosen-
ciphertext security for public-key encryption [28], consider the following: Suppose
in a protocol, one party is supposed to send encryptions of a single message m
under two different public keys K1 and K2 . According to our paradigm, this party
should also provide a zero-knowledge proof that indeed these two encryptions are
encryptions of the same message. Now, suppose the receiver is supposed to know
592 A. De Santis et al.
both decryption keys k1 and k2 . But suppose that because we are simulating the
receiver, we only know one key k1 . Suppose further that the simulator needs to
decypher the message m in order to be able to continue the protocol. Now, if we
could always trust proofs to be correct, knowing just one key would be enough,
since we would know for sure that the two encryptions are encrypting the same
message, and therefore the decryption of any one of them would provide us with
m.
Here is where the malleability problem arises: Perhaps a simulated party oc-
casionally provides simulated proofs of false statements. If the proof system is
malleable, another party could turn around and provide the receiver above with
two inconsistent encryptions and a false proof that they are consistent. Now, in
this case, the behavior of the simulated party would be different from the behav-
ior of the real party, because the simulator would not notice this inconsistency.
Indeed, this very problem arises in the context of chosen-ciphertext security, and
illustrates how malleable proofs can make it difficult to construct simulators. If
we look more closely, we see that more specifically, the problem is the possi-
bility that an adversary can use simulated proofs to construct proofs for false
statements. Sahai [33] considered this problem by introducing the notion of a
simulation-sound proof system, although he is not able to construct simulation-
sound NIZK proof systems immune to any polynomial number of false proofs.
(Note that our notion of non-malleability implies simulation soundness.) In this
work, we show how to achieve simulation-sound NIZK proof systems immune to
any polynomial number of false proofs. Our construction of such NIZK systems
requires the assumption of one-way trapdoor permutations – a possibly weaker
computational assumption then dense cryptosystems.
First of all we need to show that the proposed protocol is an efficient NIZK
proof system for the language equal to the domain of relation R; namely, that
it satisfies the completeness and soundness requirements, and that the prover
runs in polynomial-time, when given the appropriate witness. It is immediate
to check that the properties of completeness and soundness are verified by the
described protocol. In particular, for the completeness and the efficiency of the
prover, note that since the honest prover has a witness for relation R, she can
compute the proof π3 in step 5 and make the verifier accept; for the soundness,
note that if the input x is not in the domain of relation R then since the reference
string is uniformly distributed, input I3 is not in the domain of relation R3 and
therefore, from the soundness of (A3 , B3 ), the verifier can be convinced with
probability at most exponentially small.
In the rest of the proof, we prove the non-malleability property of our proof
system. We start by presenting a construction for the adaptive simulator algo-
rithm and the non-malleability machine, and then prove that, together with the
above proof system, they satisfy the non-malleability property of Definition 5
Robust Non-interactive Zero Knowledge 593
Algorithm S1 (1n ).
a
1. Randomly choose Σ0 ∈ {0, 1}2n , Σ1 ∈ {0, 1}n
and Σ2 and Σ3 ;
2. randomly choose s ∈ {0, 1}n ;
3. for i = 1 to n do
randomly pick seedi from {0, 1}n ;
set Σ4,i,si = g(seedi );
randomly pick Σ4,i,1−si from {0, 1}2n ;
4. set Σ = Σ0 ◦ Σ1 ◦ Σ2 ◦ Σ3 ◦ Σ4 ;
5. set aux = (s, seed1 , · · · seedn );
6. output (Σ, aux).
Note that the from the point of view of the adversary, the transcript output
by the simulator S is indistinguishable from a real conversation with a prover,
or otherwise either the secrecy of the commitment scheme or the security of the
pseudorandom generator or the witness indstinguishability of the proof system
used are violated. The proof of this is standard and is based on arguments from
[15].
Phase 2: Interact with adversary Adv. When asked for proof of xi , do:
Proof. First of all we assume that the proof returned by the adversary is ac-
cepting (namely, both proofs π2∗ , π3∗ in π ∗ for relations R2 , R3 , respectively, are
accepting), otherwise there is nothing to prove. We then consider the following
cases and for each of them we show that the probability is negligible for otherwise
we would reach a contradiction by showing that Adv can be used to contradict
one of our original assumptions about the cryptographic tools used.
Case (a): The adversary has used a string s∗ different from s.
Case (b): The adversary has used the same string s and a value u∗ equal to
uj for some j.
Case (c): The adversary has used the same string s and a value u∗ different
from all ui ’s.
Proof for Case (a). Suppose s∗ 6= s and let i be such that s∗i 6= si . Then with very
high probability there exists no seed∗i such that g(seed∗i ) = Σ4,i,s∗i . Therefore,
there exists no witness W3∗ for I3∗ and relation R1 and thus by the soundness of
the proof system used the verifier will reject with very high probability.
Proof for Case (b). We denote by l the number of queries performed by Adv and
by u1 , · · · , ul the values used by M in answering the l queries of Adv and by u∗
the value used by Adv in its proof π.
Assume that there exists j ∈ {1, . . . , l} such that u∗ = uj . Then, given that
Adv has used the same pseudorandom functions, and that we are assuming that
the proof π2∗ returned by Adv is accepting, it must be the case that Adv has used
the same public key pk j as M .
Therefore, if the proof π ∗ generated by Adv is different from the proofs pro-
duced by M during Phase 2, it can be for one of the following two reasons
(a) π contains a tuple (com∗ , u∗ , π2∗ , π3∗ ) different from the corresponding tuple
(comj , uj , π2j , π3j ) used by M to answer the j-th query or (b) exhibit a different
signature.
In case (a), Adv can be used to violate the unforgeability of the signature
scheme used as it manages to produce a message and to sign it without having
access to the secret key for the signature scheme.
Case (b) is ruled out by the property of the signature scheme employed saying
that, given message m and its signature sig, it is hard to provide a new signature
of m that is different from sig.
Proof for Case (c). In this section we show that the probability that M obtains
in Phase 3 a witness W for relation R1 and that the proof produced by the
adversary has used the same values s as M and a different u is negligible.
We consider a series of 4 polynomial-time experiments Expt0 , . . . , Expt3 with
the event that Expt0 (1n ) gives 1 in output being exactly the experiment of M
interacting with Adv we are interested in.
596 A. De Santis et al.
1. Expt0 (1n ).
Expt0 (1n ) is exactly experiment Expt0A,R , the experiment of the adversary
interacting with algorithm M . We only modify Phase 3.
2. Expt1 (1n ).
In Expt1 (1n ) random string Σ0 is the output of generator gn on input a
random n-bit string r0 and the proofs at steps 4 and 5 of Phase 2 of M are
produced using r0 as witness.
The output of Expt0 and Expt1 are indistinguishable for otherwise we would
violate either the pseudorandomness of the generator g or the witness in-
distinguishability of the proof system. This can be viewed by consider an
intermediate experiment in which Σ0 is output of g but the proof do not use
it as witness.
Robust Non-interactive Zero Knowledge 597
3. Expt2 (1n ).
Expt2 differs from Expt1 in the fact that pk is computed by KG on input a
random value.
To prove that the distribution of the output of Expt1 and Expt2 are indis-
tinguishable we define experiments Expt2.j , for j = 0, · · · , l. In the first j
executions of Phase 2 of Expt2.j , the public file is computed as in Expt1 and
in the subsequent executions as in Expt2 . Thus distinguishing between the
output of Expt2 and Expt1 implies the ability to distinguish between Expt2.ĵ
and Expt2.(ĵ+1) , for some 0 ≤ ĵ ≤ l − 1, which contradicts either the security
of the commitment scheme or the pseudorandomness of f .
To substantiate this last claim, we consider the following three experiments.
For sake of compactness, we look only at the relevant components of the
proof, that is, the commitment com, the value u and the public key pk; we
do not consider the remaining components since they stay the same in each
experiment and their construction can be efficiently simulated.
Exptc (1n )
The distributions of the output of Expt3 and Expt2 are indistinguishable for
otherwise we could distinguish commitment.
Finally, observe that in Expt3 (1n ), what is seen by Adv is independent from
s. Thus the probability that Adv guesses s is negligible. Therefore, p3 (n) is
negligible.
Author Index
Barak, Boaz 1 Lambert, Robert J. 190
Bellare, Mihir 292 Lee, Eonkyung 486
Boldyreva, Alexandra 292 Lee, Sang Jin 486
Boneh, Dan 201, 213, 275 Lindell, Yehuda 171, 408
Brier, Eric 433 Lotspiech, Jeff 41
Lysyanskaya, Anna 388
Cachin, Christian 524
Camenisch, Jan 388 MacKenzie, Philip 137
Canetti, Ran 19 Manger, James 230
Chee, Seongtaek 470 Maurer, Ueli 80, 101
Cheon, Jung Hee 458 Micali, Silvio 542
Clavier, Christophe 433
Coron, Jean-Sébastien 433 Naccache, David 433
Cramer, Ronald 119, 503 Namprempre, Chanathip 292
Naor, Dalit 41
Damgård, Ivan 119, 503 Naor, Moni 41
De Santis, Alfredo 566
Di Crescenzo, Giovanni 566 Okamoto, Tatsuaki 260
Ding, Yan Zong 155 Ostrovsky, Rafail 80, 566