Startseite Delegating a Product of Group Exponentiations with Application to Signature Schemes (Submission to Special NutMiC 2019 Issue of JMC)
Artikel Open Access

Delegating a Product of Group Exponentiations with Application to Signature Schemes (Submission to Special NutMiC 2019 Issue of JMC)

  • Giovanni Di Crescenzo EMAIL logo , Matluba Khodjaeva , Delaram Kahrobaei und Vladimir Shpilrain
Veröffentlicht/Copyright: 30. Oktober 2020
Veröffentlichen auch Sie bei De Gruyter Brill

Abstract

Many public-key cryptosystems and, more generally, cryptographic protocols, use group exponentiations as important primitive operations. To expand the applicability of these solutions to computationally weaker devices, it has been advocated that a computationally weaker client (i.e., capable of performing a relatively small number of modular multiplications) delegates such primitive operations to a computationally stronger server. Important requirements for such delegation protocols include privacy of the client’s input exponent and security of the client’s output, in the sense of detecting, except for very small probability, any malicious server’s attempt to convince the client of an incorrect exponentiation result. Only recently, efficient protocols for the delegation of a fixed-based exponentiation, over cyclic and RSA-type groups with certain properties, have been presented and proved to satisfy both requirements.

In this paper we show that a product of many fixed-base exponentiations, over a cyclic groups with certain properties, can be privately and securely delegated by keeping the client’s online number of modular multiplications only slightly larger than in the delegation of a single exponentiation. We use this result to show the first delegations of entire cryptographic schemes: the well-known digital signature schemes by El-Gamal, Schnorr and Okamoto, over the q-order subgroup in ℤp, for p, q primes, as well as their variants based on elliptic curves. Previous efficient delegation results were limited to the delegation of single algorithms within cryptographic schemes.

MSC 2010: 11T71; 94A60

1 Introduction

Delegation of cryptographic operations is an active research direction addressing the problem of computationally weaker clients delegating the most expensive cryptographic computations to computationally powerful servers. Recently, this area is seeing an increased interest because of shifts in modern computation paradigms towards cloud computing, edge computing, large-scale computations over big data, and computations with low-power devices, such as RFIDs.

The first formal model for delegation of cryptographic operations (also called outsourcing of cryptographic operations, server-aided cryptography, and server-assisted cryptography) was introduced in [31], where the authors especially studied the case of modular exponentiation, as this operation is a cornerstone of so many cryptographic schemes and protocols. In this model, we have a client, with an input x, who delegates to one or more servers the computation of a function F on the client’s input, and the main desired requirements are:

  1. privacy: only minimal or no information about x should be revealed to the server(s);

  2. security: the server(s) should not be able, except possibly with very small probability, to convince the client to accept a result different than F(x); and

  3. efficiency: the client’s computation time should be much smaller than computing F(x) without delegating the computation.

Moreover, in all previous work in the area, the computational weakness of the client is really only restricted to the online phase and relatively expensive offline computation can be performed and stored on the client’s device, say, at client deployment time. For instance, towards a delegated computation of modular exponentiation, it seems reasonable to assume that even computationally weaker devices are or will soon be able to perform a moderate number of less expensive operations like modular multiplications (see, e.g., recent advances in [1], showing how to practically implement group multiplication, for a specific group, and a related public-key cryptosystem, using RFID tags). This computation gap between servers and clients is significant in that with currently recommended parameter settings an unoptimized single exponentiation may require, on average, more than 2000 multiplications. Examples of computationally weaker devices provided in [31] include RFID tags, embedded devices, and, more generally, low-resource devices, but we note that the delegation problem is actually meaningful in any application domain where clients with server access would rather reduce their computation workload.

In [31], the authors studied delegation of modular exponentiation to 2 servers of which at most one was malicious, and to 1 server, who was honest on almost all inputs. Recently, we solved the open problems of private, secure and efficient delegation to a single, possibly malicious, server, of a single fixed-based exponentiation in cyclic groups [21] and a single fixed-exponent exponentiation in RSA-type groups [22]. We showed delegation for these exponentiation functions over a more general class of groups in [19], however with slightly worse efficiency or security properties than in [21, 22]. Previously, in [13], we had also showed private, secure and efficient delegation to a single, possibly malicious, server, of group inverses, without need for an offline phase.

Our Contributions

In this paper we show that a product of many fixed-base exponentiations, over a cyclic group with certain properties, can be privately and securely delegated to a single, possibly malicious, server, by keeping the client’s online number of modular multiplications only slightly larger than that for delegating a single exponentiation. Our result holds for a general class of cyclic groups with efficient operation and inverse, and efficiently verifiable proofs of membership. Although not all cyclic groups are known to satisfy these properties, we show that this class includes cyclic groups often used in cryptography (i.e., the prime order multiplicative subgroup of ℤp, for primes p of a special form, and the analogue additive group based on elliptic curves). Fixing the first of these two groups for efficiency evaluation, a product of m exponentiations in ℤp with σ-bit exponents can be delegated by a client that only uses less than 2λ+m+4 modular multiplications in the online phase, if the probability of not detecting an incorrect result is bounded by 2λ. This improves upon non-delegated computation, which would require up to 2+m−1 modular multiplications, when exponentiation is performed via a square and multiply algorithm, as well as upon direct and repeated use of the delegation of a single exponentiation from [21], where the client would use up to 2+4m modular multiplication in the online phase.

We use this result to delegate the first cryptographic schemes: the well-known digital signature schemes by El-Gamal [27], Schnorr [41] and Okamoto [39] over the prime-order subgroup in ℤp, as well as their variants based on elliptic curves. Previously, only primitive operations like group exponentiations or inverses were delegated, and no complete cryptosystem was delegated to a single, possibly malicious, server. As an example of the efficiency achieved here, Okamoto’s scheme normally requiring a verification of 3 exponentiations with 2048-bit exponents can now be delegated by a client that only uses 1 exponentiation to a random and short (e.g., 128-bit) exponent.

In the process, we formally define delegation of digital signature schemes, including changes to both the participant and the security model. First, we enrich the participant model of signature schemes, including a signer and a verifier, with a server who can assist both. Thus, both signer and verifier will be thought of as clients when interacting with the delegation server. Next, we generalize the standard unforgeability requirement to also hold in the presence of 2 additional classes of attacks introduced by the delegated computation paradigm: (1) eavesdropping of the communication between the server and the two clients (i.e., signer and the verifier), as well as (2) querying the server oracles, possibly done by the adversary after being able to perform a signer or verifier impersonation. We also provide a conversion theorem showing that a non-delegated signature scheme can be converted into a delegated signature scheme using a suitable delegation protocol for a desired primitive operation (e.g., single exponentiation, product of exponentiations, etc.). Establishing this result calls for the use of an alternative, and not weaker, simulation-based, definition of privacy in delegation protocols (many previous works targeted an indistinguishability-based definitions of privacy but can be seen to satisfy this definition as well).

Related Work

The first formal model for secure delegation protocols was presented in [31]. There, a secure delegation protocol is formally defined as essentially a secure function evaluation [45] of the client’s function delegated to the server. Follow-up models from [29] and [13, 21] define separate requirements of correctness, (input) privacy and (result) security. There, the privacy requirement is defined in the sense of the adversary’s indistinguishability of two different inputs from the client, even after corrupting the server; and the security requirement is defined in the sense of the adversary’s inability to convince the client of an incorrect function output, even after corrupting the server. In our paper, we use a simulation-based definition of input privacy, which can be shown to imply the indistinguishability-based definition in [13, 21].

We can partition all other (single-server) secure delegation protocols we are aware of in 3 main classes, depending on whether they delegate (a) exponentiation in a specific group; (b) other specific computations (e.g., linear algebra); or (c) an arbitrary polynomial-time function.

With respect to (a), protocols were proposed for a single exponentiation in specific groups related to discrete logarithm or factoring problems (see, e.g., [14, 21, 31] and references therein). These protocols delegate exponentiation in settings where the client is assumed to be powerful enough to run a moderate number of group multiplications, but not enough to evaluate the delegated exponentiation function. There are also many protocols in the literature for the delegation of a single exponentiation, not targeting or achieving all our requirements (see, e.g., [15, 24, 34, 43]). In our model, protocols for the delegation of exponentiation in general groups were proposed in [13, 19], and protocols to delegate multiple exponentiations in specific groups were proposed in [20].

With respect to (b), protocols for linear algebra and/or scientific computation were proposed in, e.g., [2, 3, 8, 28, 35]. These protocols delegate various linear algebra operations in settings where the client is assumed to be powerful enough to run other linear algebra operations of lower time complexity, but not enough to evaluate the delegated linear algebra function.

With respect to (c), [29] proposed a protocol using garbled circuits [45] and fully homomorphic encryption [30]. This protocol delegates functions in settings where the client is powerful enough to run encryption and decryption algorithms of a fully homomorphic encryption scheme, but not enough to homomorphically evaluate a circuit that computes decryption steps in the garbling scheme for the function. Different protocols, not using garbled circuits, were later proposed in [16]. These protocols delegate functions in settings where the client is assumed to be powerful enough to run encryption and decryption algorithms of a fully homomorphic encryption scheme, but not enough to homomorphically evaluate the delegated function.

2 Definitions: Groups with Efficient Membership Proofs

In this section we formally define group notations and definitions that will be used in the rest of the paper.

Group notations and definitions

Let (G, *) be a group, let σ be its computational security parameter, and let L denote the length of the binary representation of elements in G. Typically, in cryptographic applications we set L as about equal to σ. We also assume that (G, *) is cyclic, has order q, and we fix m of its distinct generators as g1, …, gm. By y=g1x1gmxm=i=1mgixi we denote the product of m (fixed-base) exponentiations (in G). Let ℤq = {0, 1, …, q − 1}, and let Fg1,…,gm,q : (ℤq × … × ℤq) → G denote the function that maps to each (x1, …, xm) ∈ ℤq × … × ℤq the product of m (fixed-base) exponentiations (in G). By desc(Fg1,…,gm,q) we denote a conventional description of the function Fg1,…,gm,q that includes its semantic meaning as well as generators g1, …, gm, order q and the efficient algorithms computing multiplication and inverses in G.

By texp() we denote a parameter denoting the number of multiplications in G used to compute an exponentiation (in G) of a group value to an arbitrary -bit exponent. By tm,exp() we denote a parameter denoting the number of multiplications in G used to compute m exponentiations (in G) of the same group value to m arbitrary -bit exponents. By tprod,m,exp() we denote the max number of group multiplications used to compute a product of m exponentiations of (possibly different) group elements to m arbitrary -bit exponents.

We define an efficiently verifiable membership protocol for G as a one-message protocol, denoted as the pair (mProve, mVerify) of algorithms, satisfying

  1. completeness: for any wG, mVerify(w, mProve(w)) = 1;

  2. soundness: for any wG, and any mProve′,

       mVerify(w, mProve′(w)) = 0;

  3. efficient verifiability: the number of multiplications in G, denoted as tmVerify(σ), executed by mVerify is o(texp(σ));

  4. efficient provability: the number of multiplications tmProve(σ) in G executed by mProve is not significantly larger than texp(σ).

We say that a group is efficient if its description is short (i.e., has length polynomial in σ), its associated operation and the inverse operation are efficient (i.e., they can be executed in time polynomial in σ), and it has an efficiently verifiable membership protocol. Note that for essentially all cyclic groups frequently used in cryptography, the description is short and both the associated operation and inverse operation can be run in time polynomial in σ. The only non-trivial property to establish is whether the group has an efficiently verifiable membership protocol. We now show two examples that are often used in cryptography and that do have efficiently verifiable membership protocols. In the rest of the paper we present our results for any arbitrary efficient cyclic group (using, for notation simplicity, a multiplicative notation for its operation).

Example 1

(G, *) = (Gq, ⋅ mod p), for large primes p, q such that p = kq + 1, where kq is another prime and Gq is the q-order subgroup of Zp. This group is one of the most recommended for cryptographic schemes like the Diffie-Hellman key exchange protocol [23], El-Gamal encryption [27], Cramer-Shoup encryption [17], DSA etc. It is known that by Sylow’s theorem, Gq in this case is the only subgroup of order q in the group Zp (i.e. gq = 1 mod p if and only if gGq). Also, the set of elements of Gq is precisely the set of k-th powers of elements of Zp. Thus, an efficiently verifiable membership protocol can be built as follows:

  1. on input w, mProve computes r = w(q+1)/k mod p and returns r;

  2. on input w, r, mVerify returns 1 if w = rk mod p and 0 otherwise.

The completeness and soundness properties of this protocol are easily seen to hold. The efficient provability follows by noting that mProve only performs 1 exponentiation mod p. The efficient verifiability property follows by noting that mVerify requires one exponentiation mod p to the k-th power. We note that mVerify is very efficient in the case when k is small (e.g., k = ), which is a typical group setting in cryptographic protocols based on discrete logarithms. In the rest of the paper, we assume this specific group when we evaluate the performance of our protocol(s).

Example 2

(G, +) = (E(𝔽p), point addition), for a large prime p > 3: an elliptic curve E over a field 𝔽p, is the set of pairs (x, y) ∈ E(𝔽p) that satisfy the Weierstrass equation

y2=x3+ax+bmodp,

together with the imaginary point at infinity 𝓞, where a, b ∈ 𝔽p and 4a3 + 27b2 ≠ 0 mod p. The elliptic curve defined above is denoted by E(𝔽p). This group is one of the most recommended for cryptographic schemes like Elliptic-curve Diffie-Hellman key exchange protocol, Elliptic-curve ElGamal encryption, etc. Moreover, many discrete logarithm based cryptographic protocols defined over the set ℤp in Example 1 can be rewritten as defined over E(𝔽p). When those protocols are rewritten using the additive operation for this group instead of modular multiplication over ℤp, the multiplication operation is rewritten as point addition and the exponentiation is rewritten as scalar multiplication in the group E(𝔽p), and the textbook “square-and-multiply” algorithm becomes a “double-and-add” algorithm. An efficiently verifiable membership protocol for this group simply consists of verifying the Weierstrass equation, as follows:

  1. on input (x, y), mProve does nothing;

  2. on input (x, y), mVerify returns 1 if y2 = x3 + ax + b mod p and 0 otherwise.

The completeness, soundness, efficient provability properties of this protocol are easily seen to hold. The efficient verifiability property follows by noting that mVerify performs only 4 multiplications mod p.

3 Definitions: Delegated Protocols

In this section we formally define delegation protocols, and their correctness, security, privacy and efficiency requirements, mainly relying on the definition approach from [21], which in turn builds on those from [29, 31]. One new aspect in our definition, of interest for our results in later sections, is that we use a simulation-based definition of privacy instead of the indistinguishability-based definition in [21].

Basic notations

The expression yT denotes the probabilistic process of randomly and independently choosing y from set T. The expression yA(x1, x2, …) denotes the (possibly probabilistic) process of running algorithm A on input x1, x2, … and any necessary random coins, and obtaining y as output. The expression (zA, zB, tr) ← (A(x1, x2, …), B(y1, y2, …)) denotes the (possibly probabilistic) process of running an interactive protocol between A, taking as input x1, x2, … and any necessary random coins, and B, taking as input y1, y2, … and any necessary random coins, where zA, zB are A and B’s final outputs, respectively, at the end of this protocol’s execution, and tr denotes the tuple of messages exchanged between A and B. We denote a distribution D as D = {R1; …; Rn : x}, where R1, …, Rn is a sequence of random processes and x denotes a variable set as a result of their sequential execution.

System scenario, entities, and protocol

We consider a system with a single client, denoted as C, and a single server, denoted as S. As a client’s computational resources are expected to be more limited than a server’s ones, C is interested in delegating the computation of specific functions to S. We assume that the communication link between C and S is private or not subject to confidentiality, integrity, or replay attacks, and note that such attacks can be separately addressed using communication security techniques from any applied cryptography textbook (see, e.g., [36]). As in all previous work in the area, we consider a model with an offline phase, where, say, exponentiations to random exponents can be precomputed and made somehow available onto C’s device. This model has been justified in several ways, all appealing to different application settings. In the presence of a trusted party, such as a deploying entity setting up C’s device, the trusted party can simply perform the precomputed exponentiations and store them on C’s device. If no trusted party is available, in the presence of a pre-processing phase where C’s device does not have significant computation constraints, C can itself perform the precomputed exponentiations and store them on its own device.

Let σ denote the computational security parameter (i.e., the parameter derived from hardness considerations on the underlying computational problem), and let λ denote the statistical security parameter (i.e., a parameter such that events with probability 2λ are extremely rare). Both parameters are expressed in unary notation (i.e., 1σ, 1λ).

Let F : Dom(F) → CoDom(F) be a function, where Dom(F) denotes F’s domain, CoDom(F) denotes F’s co-domain, and desc(F) denotes F’s description. Assuming desc(F) is known to both C and S, and input x is known only to C, we define a client-server protocol for the delegated computation of F in the presence of an offline phase as a 2-party, 2-phase, communication protocol between C and S, denoted as (C(1σ, 1λ, desc(F), x), S(1σ, 1λ, desc(F))), and consisting of the following steps:

  1. pp ← Offline(1σ, 1λ, desc(F)),

  2. (yC, yS, tr) ← (C(1σ, 1λ, desc(F), pp, x), S(1σ, 1λ, desc(F)).

As discussed above, Step 1 is executed in an offline phase, when the input x to the function F is not yet available. Step 2 is executed in the online phase, when the input x to the function F is available to C. At the end of both phases, C learns yC, intended to be = y, and S learns yS, usually an empty string in this paper. We will often omit desc(F), 1σ, 1λ for brevity of description.

Correctness Requirement

Informally, the (natural) correctness requirement states that if both parties follow the protocol, C obtains some output at the end of the protocol, and this output is, with high probability, equal to the value obtained by evaluating function F on C’s input. A formal definition follows.

Definition 1

Let σ, λ be the security parameters, let F be a function, and let (C, S) be a client-server protocol for the delegated computation of F. We say that (C, S) satisfies δc-correctness if for any x in F’s domain, it holds that

ProboutCorrExpF(1σ,1λ):out=1δc,

for some δc close to 1, where experiment CorrExp is detailed below:

CorrExpF(1σ, 1λ)

  1. pp ← Offline (desc(F))

  2. (yC, yS, tr) ← (C(pp, x), S)

  3. if yC = F(x) then return: 1

     else return: 0

Security Requirement

Informally, the most basic security requirement would state the following: if C follows the protocol, a malicious adversary corrupting S cannot convince C to obtain, at the end of the protocol, some output y′ different from the value y obtained by evaluating function F on C’s input x. To define a stronger security requirement, we augment the adversary’s power so that the adversary can even choose C’s input x, before attempting to convince C of an incorrect output. We also do not restrict the adversary to run in polynomial time. A formal definition follows.

Definition 2

Let σ, λ be the security parameters, let F be a function, and let (C, S) be a client-server protocol for the delegated computation of F. We say that (C, S) satisfies ϵs-security against a malicious adversary} if for any algorithm A, it holds that

ProboutSecExpF,A(1σ,1λ):out=1ϵs,

for some ϵs close to 0, where experiment SecExp is detailed below:

SecExpF, A(1σ, 1λ)

  1. pp ← Offline(desc(F))

  2. (x, aux) ← A(desc(F))

  3. (y′, aux, tr) ← (C(pp, x), A(aux))

  4. if y′ = ⊥ or y′ = F(x) then return: 0

     else return: 1.

Privacy Requirement

Informally, the privacy requirement should guarantee the following: if C follows the protocol, a malicious adversary corrupting S cannot obtain any information about C’s input x from a protocol execution. This is formalized here by extending the simulation-based approach typically used in various formal definitions for cryptographic primitives. That is, there exists an efficient algorithm, called the simulator, that generates a tuple of messages distributed exactly like those in a random execution of the protocol. A formal definition follows.

Definition 3

Let σ, λ be the security parameters, let F be a function, and let (C, S) be a client-server protocol for the delegated computation of F. We say that (C, S) satisfies privacy (in the sense of simulation) against a malicious adversary if there exists an efficient algorithm Sim such that for any efficient adversary A and any input x to C, the following two distributions are equal:

Dsim={trSim(desc(F),1σ,1λ):tr}Dprot={pp Offline(desc(F));(yC,yA,trx)(C(pp,x),A(aux)):trx}

Efficiency Metrics and Requirements

In our analysis, we only consider the most expensive group operations as atomic operations, such as group multiplications and/or exponentiation, and neglect lower-order operations, such as equality testing, additions and subtractions between group elements.

Let (C, S) be a client-server protocol for the delegated computation of function F with computational security parameter σ and statistical correctness parameter λ. We say that (C, S) has efficiency parameters (tF, tP, tC, tS, sc, cc, mc), if

  1. F can be computed (without delegation) using tF(σ, λ) atomic operations;

  2. the offline phase can be run using tP(σ, λ) atomic operations;

  3. C can be run in the online phase using tC(σ, λ) atomic operations;

  4. S can be run using tS(σ, λ) atomic operations;

  5. at the end of the offline phase, data with storage complexity sc is stored on C’s device;

  6. C and S exchange a total of at most mc messages; and

  7. C and S exchange messages of total length at most cc.

While we naturally try to minimize all these protocol efficiency metrics, our main goal is to design protocols where

  1. tC(σ, λ) < < tF(σ, λ), and

  2. tS(σ, λ) is not significantly larger than tF(σ, λ),

based on the underlying assumption, consistent with the state of the art in cryptographic implementations, for essentially all group types, that group multiplication requires significantly less computing resources than group exponentiation.

4 Delegating a Product of Exponentiations

In this section we present our protocol for delegation of a product of (fixed-base) exponentiations in a large class of groups used in cryptographic protocols, which provably satisfies correctness, simulation-based privacy, security with exponentially small probability, and various desirable efficiency properties. Most notably, the client’s online complexity is dominated by a single exponentiation to a significantly smaller exponent.

We first formally state our result, then describe the protocol, and finally prove its correctness, security, privacy and efficiency properties.

Formal theorem statement

We obtain the following

Theorem 4

Let (G, *) be an efficient cyclic group, let σ be its computational security parameter, and let λ be a statistical security parameter. There exists (constructively) a client-server protocol (C, S) for delegating the computation of function Fg1,…,gm,q : (ℤq × … × ℤq) → G, which satisfies

  1. δc-correctness, for δc = 1;

  2. ϵs-security, for ϵs12λ;

  3. simulation-based privacy;

  4. efficiency with parameters (tF, tS, tP, tC, sc, cc, mc), where

    1. tF is = tprod,m,exp(σ);

    2. tS is = 2 tprod,m,exp(σ) + 2 tmProve(σ);

    3. tP is = 2 tprod,m,exp(σ), with random exponents from ℤq;

    4. tC is ≤ texp(λ) + 2 tmVerify(σ) + 2 multiplications in G and m multiplications in ℤq;

    5. sc = 2 elements in G and 2m elements of ℤq

    6. cc = 4 elements in G and 2m elements of ℤq

    7. mc = 2.

The main takeaway from Theorem 4 is that C delegates the computation of product of multiple (i.e. m) exponentiations with a σ-bit exponents to S while C only performs an exponentiation with a λ-bit exponent, 2 group membership verifications in G, 2 multiplications in G and m modular multiplications in ℤq. In other words, C’s online complexity is only slightly larger than that in a delegation protocol for a single exponentiation, as in the protocol from [21]. In fact, our protocol can be seen as a non-trivial extension of the single exponentiation protocol in [21], based on two main ideas: (1) using a single small-coefficient linear verification test on the entire product of m exponentiations, instead of an independent test on each of the m exponentiations in the product; and (2) carefully redistributing the computation of products of exponentiation from the client to the server and the offline phase. This results in savings of about a multiplicative factor of m in the client’s online complexity over a direct use of that protocol to delegate a single exponentiation. Using the group in Example 1 from Section 2 for a concrete comparison, the client performs 2λ + m + 4 multiplications, while in a direct use of the protocol in [21] that bound would be 2 + 4m, and in non-delegated computation one can perform up to 2 + m − 1 multiplications. Using current typical settings in applied cryptography (i.e., σ = 2048, and λ = 128), and assuming m ranging from 2 to 128, we see that in our protocol the client’s online multiplications are smaller by 2-3 orders of magnitude than non-delegated computation and 1-2 orders of magnitude with respect to a direct use of the delegation of a single exponentiation from [21].

Also remarkable are the running time of S, who only performs 2 products of m exponentiations and 2 group membership proof generations in G. In other words, S’s complexity is only about 4 times as that in a non-delegated computation of the same function.

Even in the offline phase, only 2 products of fixed-base exponentiations with random exponents are needed by the client to later compute a product of m fixed-base exponentiations. Finally, the protocol only requires 2 messages, which is clearly minimal in this model, only requires the communication of 4 elements in G and 2m elements in ℤq, and only requires that 2m elements in ℤq and 2 group values are stored on C’s device at the end of the offline phase.

In what follows we prove Theorem 4 by describing our delegation protocol and proving its properties. The group membership test is realized via the assumed efficiently verifiable group membership protocol. While we do not know of such a protocol for any arbitrary cyclic group, we showed in Section 2 that two groups commonly used in cryptography have one.

Informal description of protocol (C, S)

Our starting point is the protocol for private, secure and efficient delegation of fixed-base exponentiation in cyclic groups in [21], also reviewed in Appendix A. There, one main idea consists of a probabilistic verification equation which is verifiable using a much smaller number of modular multiplications (i.e., up to 2λ, instead of 2σ, multiplications). Specifically, in that protocol, C injects an additional random value b ∈ {1, …, 2λ} in one of the inputs on which S is asked to computed the value of the exponentiation function Fg,q, so to satisfy the following properties: (a) if S returns correct computations of Fg,q, then C can correctly compute y with a single group multiplication; (b) if S returns incorrect computations of Fg,q, then S either does not meet some deterministic verification equation or can only meet C’s probabilistic verification equation for at most one possible value of random value b; (d) C can check whether the probabilistic verification equation is satisfied with an exponentiation to the (shorter) exponent b; and (d) C’s messages hide the values of the random element as well as C’s input to the function. By choosing a large enough domain for b (e.g., setting λ ≥ 128), the protocol achieves a very small security probability (i.e., 2λ). As this domain is much smaller than the group, this results in a considerable efficiency gain on C’s running time.

Towards the design of our protocol proving Theorem 4, a first natural approach is that the client delegates each of the m exponentiations in the product using the delegation protocol for fixed-base exponentiation over cyclic groups in [21], and finally the client computes the product of the obtained m exponentiations. Note that this approach would satisfy correctness, privacy and security requirements. However, when it comes to performance, it is undesirable as it multiplies by a factor of about m both the number of multiplications by the client and the size of the client’s storage, and therefore we would gradually lose the computation benefit from the delegation as m gets larger. In the protocol presented here, we target an additive overhead of m, instead of a multiplicative one, and achieve this with the following two main modifications.

First, we view the probabilistic test of [21] as a small-coefficient linear test over a group value’s exponent. Then, by using the linear homomorphism properties of the exponentiation function, we can define a single small-coefficient linear test on the entire product of m exponentiations, instead of an independent test on each of the m exponentiations in the product. Thus, a single random coefficient value b is used in the protocol, instead of m random and independent values, so that C only performs a single exponentiation to the small exponent b to run the probabilistic verification equation in the resulting small-coefficient linear test.

Second, no products of exponentiations are performed by the client. When these are needed in the protocol, they are carefully redistributed to the computationally more powerful server or to the offline phase, where more computational power is available. Specifically, our protocol involves 4 products of m exponentiations, of which 2 are performed in the offline phase and 2 are computed by the server. Finally, the computation of these products is set up so that by the homomorphism properties of the exponentiation function, analogue group membership verifications and probabilistic verification test can be performed as in the original protocol, although on products of exponentiations instead of single exponentiations.

Formal description of protocol (C, S)

Let G be an efficient cyclic group, and let (mProve, mVerify) denote its efficiently verifiable membership protocol.

Input to C and S: 1σ, 1λ, desc(Fg1,…,gm,q)

Input to C: x1, …, xm ∈ ℤq

Offline phase instructions:

  1. Randomly choose ui,j ∈ ℤq, for i = 1, …, m and j = 0, 1

  2. Set vj=i=1mgiui,j and store (u1,j, …, um,j, vj) on C for j = 0, 1

Online phase instructions:

  1. C randomly chooses b ∈ {1, …, 2λ}

    C sets zi,0 := (xiui,0) mod q, zi,1 := (bxi + ui,1) mod q for i = 1, …, m

    C sends (zi,0, zi,1) to S for i = 1, …, m

  2. S computes wj:=i=1mgizi,j and πj := mProve(wj), for j = 0, 1

    S sends w0, w1, π0, π1 to C

  3. C computes y := w0 * v0

    C checks that

      w1 = yb * v1, also called the ‘probabilistic test’

      mVerify(w0, π0) = mVerify(w1, π1) = 1,

       also called the ‘membership test’

     if any one of these tests is not satisfied then

      Creturns: ⊥ and the protocol halts

    Creturns: y

Properties of protocol (C, S)

The efficiency properties are verified by protocol inspection.

  1. Round complexity: the protocol only requires one round, consisting of one message from C to S followed by one message from S to C.

  2. Storage complexity: at the end of the offline phase, tuples (u1,j, …, um,j, vj), for j = 0, 1, are stored on C’s device, resulting in a storage complexity of 2m values in ℤq and 2 group elements.

  3. Communication complexity: the protocol requires the transfer of 2 elements in G and 2 proofs of group membership from S to C, and 2m elements in ℤq from C to S.

  4. Runtime complexity: During the offline phase, 2 product of m exponentiations in bases g1, …, gm and with random σ-bit exponents are performed. This product of m exponentiations can be evaluated using any of the cited literature algorithms for a product of m exponentiations (e.g., the algorithm in [40]). During the online phase, S computes 2 products of m exponentiations to σ-bit exponents in G and 2 group membership proofs; and C verifies 2 group membership proofs and computes 2 multiplications in G, m modular multiplications in ℤq, and 1 exponentiation in G to a random exponent that is ≤ 2λ and thus much smaller than 2σ.

The correctness property follows by showing that if C and S follow the protocol, C always output y = i=1mgixi. We show that the 2 tests performed by C are always passed. The membership test is always passed since wj is computed by S as i=1mgizi, for j = 0, 1, and g1, …, gm are generators of group G; the probabilistic test is always passed since

w1=i=1mgizi,1=i=1mgibxi+ui,1=i=1mgixibi=1mgiui,1=ybv1.

This implies that C never returns ⊥, and thus returns y. To see that this returned value y is the correct output, note that

y=w0v0=i=1mgizi,0i=1mgiui,0=i=1mgixiui,0i=1mgiui,0=i=1mgixi.

The privacy property of the protocol against any arbitrary malicious S is proved by showing an efficient simulator Sim such that for any input x1, …, xm ∈ ℤq to C, the following two distributions are equal: the distribution Dprot of the messages in a random execution of (C, S) where C uses x1, …, xm as input; and the distribution Dsim output by Sim. First, we observe that C’s only message to S does not depend on values x1, …, xm. Specifically, this message can be written as (z1,0, …, zm,0, z1,1, …, zm,1) where zi,0 = (xiui,0) mod q, zi,1 = (bxi + ui,1) mod q, and zi,0 and zi,1 are uniformly and independently distributed in ℤq, as so are ui,0 and ui,1 for all i = 1, …, m. Thus, a simulator Sim can be defined as the algorithm that, on input 1σ, 1λ, desc(Fg1,…,gm,q), runs the following instructions:

  1. generate a tuple mes1=(z1,0,,zm,0,z1,1,,zm,1) of random and independent values in ℤq

  2. generate message mes2=(w0,w1,π0,π1) by running the same instructions run by S on input 1σ, 1λ, desc(Fg1,…,gm,q) and (z1,0,,zm,0,z1,1,,zm,1)

  3. return: (mes1, mes2)

We obtain that distribution DSim and distribution Dprot are identical since in both distributions the first message contains 2m random and independent values in ℤq and the second message is computed using the same algorithm starting from first message.

To prove the security property against any malicious S we need to compute an upper bound ϵs on the security probability that S convinces C to output a y such that yFg1,…,gm,q(x1, …, xm). We start by defining the following events with respect to a random execution of (C, S) where C uses x as input:

  1. ey,≠, defined as ‘C outputs y such that yFg1,…,gm,q(x1, …, xm)’

  2. ew,≠, defined as ‘In its message to C, S sends a pair (w0,w1)(w0,w1)

  3. e, defined as ‘C outputs ⊥’

By inspection of (C, S), we directly obtain the following fact.

Fact 4.1

If event ey,≠happens then event ew,≠ ∧ (¬ e) happens.

With respect to a random execution of (C, S) where C uses x1, …, xm as input, we now define the following events:

  1. e1,b, defined as ‘∃ exactly one b such that the pair (w0,w1) sent by S to C satisfies w1=(w0v0)bv1

  2. e>1,b, defined as ‘∃ more than one b such that the pair (w0,w1) sent by S to C satisfies w1=(w0v0)bv1 ’.

By definition, events e1,b, e>1,b are each other’s complement event.

Now, let i ∈ {1, …, m}. We observe that no information is leaked by zi,0, zi,1 about xi as: (a) for any xi ∈ ℤq, there is exactly one ui,0 corresponding to zi,0; that is, ui,0 = xizi,0 mod q; (b) for any xi ∈ ℤq, for any b ∈ {1, …, 2λ} chosen by C, there is exactly one ui,1 corresponding to zi,1; that is, ui,1 = zi,1bxi mod q for all i = 1, …, m. This implies that, since ui,0, ui,1 are uniformly and independently distributed in ℤq, the distribution of tuple (x1, …, xm) input to C is independent from the distribution of tuple ((z1,0, z1,1), …, (zm,0, zm,1)) sent by C to S. Furthermore, by essentially the same proof, protocol (C, S) satisfies the following property: for any x1, …, xm ∈ ℤq, the value of b ∈ {1, …, 2λ} chosen by C is independent from tuple ((z1,0, z1,1), …, (zm,0, zm,1)). This implies that all possible values for b in {1, …, 2λ} are still equally likely even when conditioning over message ((z1,0, z1,1), …, (zm,0, zm,1)) from C to S. Then, if event e1,b is true, the probability that the pair (w0,w1) sent by S to C satisfies the probabilistic test, is equal to 1 divided by the number 2λ of values of b that are still equally likely even when conditioning over message (z1,0, …, zm,0, z1,1, …, zm,1). We obtain the following

Fact 4.2

Prob[ew,≠ ∧ (¬ e) | e1,b] ≤ 1/2λ

We now show the main technical claim, saying that if S is malicious then it cannot produce in step 2 of the protocol a pair of values (w0,w1) different than the required pair (w0, w1), satisfying both of C’s tests for two distinct values b1, b2 ∈ {1, …, 2λ}. Since S can be malicious, in step 2 it can send arbitrary values to C. In particular, S can send a pair (w0,w1) different than the pair (w0, w1) required by the protocol, where wj=Πi=1mgzij, for j = 0, 1. Since C uses π0, π1 to check in step 3 that the two group elements belong to the group, we can assume that w0,w1G. Moreover, since G is cyclic, and we assumed that each gi is generator of G, for i = 1, …, m, we can, without loss of generality, consider generator g1 and write

w0=g1uw0 and w1=g1vw1 for some u,vZq.

Thus, we can also write y=w0v0=g1uw0v0=g1ui=1mgixi. Now, recall that the goal of a malicious S is to pass C’s two verification tests and force C’s output to be yi=1mgixi, which is true when u ≠ 0 mod q. We then consider the following equivalent rewriting of C’s probabilistic test, obtained by variable substitutions and simplifications:

w1=ybv1g1vw1=g1ui=1mgixibi=1mgiui,1g1vi=1mgizi,1=g1ubi=1mgibxi+ui,1g1vi=1mgibxi+ui,1=g1ubi=1mgibxi+ui,1g1v=g1ubv=ubmodq.

Notice that if u = 0 mod q then the above calculation implies that v = 0 mod q, and thus S is honest, from which we derive that ϵs = 0. Now consider the case S is dishonest, in which case we have that u ≠ 0 mod q. We want to show that b is unique in this case. If there exist two distinct b1 and b2 such that

ub1=vmodq and ub2=vmodq

then u(b1b2) = 0 mod q then b1b2 = 0 mod q (i.e b1 = b2) because u ≠ 0 mod q. This shows that b is unique and we obtain the following fact.

Fact 4.3

Prob[e>1,b] = 0

The rest of the proof consists of computing an upper bound ϵs on the probability of event ey,≠, using all previously established facts. We obtain the following

Probey,Probew,(¬e)=Probe1,bProbew,(¬e)|e1,b+Probe>1,bProbew,(¬e)|e>1,b=Probe1,bProbew,(¬e)|e1,bProbe1,b12λ12λ,

where the first inequality follows from Fact 4.1, the first equality follows from the definition of events e1,b, e>1,b and the conditioning rule, the second equality follows from Fact 4.3, and the second inequality follows from Fact 4.2.

We can finally set ϵs = 2λ, which concludes the proof for the security property for (C, S). □

4.1 Performance

A naive algorithm to compute (without delegation) a product of m exponentiations consists of first computing single exponentiations yi=gixi for i = 1, …, m, and then the product i=1myi. For this algorithm, which we call nPoExp, we have that tprod,m,exp() = mtexp() + m − 1, which is equal to 2 + m − 1, when a single exponentiation is computed using the square-and-multiply algorithm.

Several papers propose faster algorithms to compute single exponentiations (see, e.g., [7, 10, 18, 25, 37, 44]), as well as a product of m exponentiations (see, e.g., [10, 37, 40, 42]). For instance, using the closed-form estimate from [11] of Pippenger’s algorithm in [40], one can obtain an algorithm, which we denote as fPoExp, satisfying tprod,m,exp() ∼ (1 + m/(log m + log )).

As yet another comparison method to delegate the computation of a product of m exponentiations to σ-bit exponent, we define protocol nDelPoExp in which a client delegates to a server the computation of each of the m exponentiations using Protocol 1 from [21] and then directly computes a product of the m obtained exponentiations.

In Table 1 we show concrete evaluations for our protocol’s main performance metric: the client’s number tC of group multiplications in the online phase. In particular, we also compare our protocol with the delegated protocol nDelPoExp and the non-delegated algorithms nPoExp and fPoExp, for computing exponentiation in group Zp, for p = 2q + 1, where p, q are primes. First we show the numbers for tC for varying and arbitrary values of m, while setting σ = 2048 and λ = 128, the currently recommended parameter settings for many cryptographic applications. Then, in the last row we show closed-form expressions for tC with respect to arbitrary m, σ, λ. We observe that our result’s improvement is significant in many practical parameter settings. For small values of m, our result improves by 1-2 orders of magnitude over the non-delegated algorithms and between a constant factor and 1 order of magnitude over the delegation approach based on [21]. For large values of m, our result improves by at least 3 orders of magnitude over the non-delegated algorithms and at least 2 orders of magnitude over the delegation approach based on [21].

Table 1

The number of C’s online multiplications in the example group (Zp, ⋅ mod p) where p = 2q + 1, and p, q are primes.

mFg1,…,gm,qFg1,…,gm,q
No delegationWith delegation
nPoExpfPoExpnDelPoExpOur result
28, 1932, 389520262
520, 4842, 7791, 300265
σ = 20481040, 9693, 4132, 600270
λ = 12850204, 8498, 07213, 000310
100409, 69913, 42626, 000360
10004, 096, 99999, 512260, 0001, 260
Arbitrary m4097m − 12048(1+mlogm+11)260m260 + m
Arbitrary m, σ, λ2 + m − 1σ(1+mlogm+logσ)2 + 4m2λ + m + 4

In Table 2 and Table 3 we report performance results measured when running our software implementation of our protocol in Section 4 and of the protocol nDelPoExp in [21] for the multiplicative group (Zp, ⋅ mod p), for p = 2q+1, where p, q are large primes, and using σ = 2048 and λ = 128. Our implementation was carried out on a macOS Catalina Version 10.15.1 laptop with 2.9 GHz Intel Core i9 processor with memory 32 GB 2400 MHz DDR4. The protocols were coded in Python 3.7 using the gmpy2 package. In each table we report performance data for one of our protocols, by measuring running times tF, tC, tS, and tP, and improvement ratio tF/tC, for different values of parameter m (i.e., m = 2, 4, 7, 10, 50, 100), and using both an implementation of the modular exponentiation based on the textbook square-and-multiply algorithm (in column labelled ‘SM’) and the Python built-in function gmpy2.powmod (in column labelled ‘NoSM’). Conclusions from our empirical results in Tables 2 and 3 essentially confirm our conclusions from our analytical results in Table 1.

Table 2

Performance of the protocol when σ = 2048, λ = 128 and group G = Zp where p = 2q + 1 where p and q are primes.

m =2471050100
SMNoSMSMNoSMSMNoSMSMNoSMSMNoSMSMNoSM
tf =0.02550.01300.05620.02630.09500.04630.12540.06410.49110.34420.50240.6498
tp =0.04580.02620.10560.05300.18860.09170.25630.13610.97100.67181.00961.3179
tc =0.00070.00050.00090.00050.00080.00050.00070.00050.00080.00080.00050.0009
ts =0.07400.03720.13110.06370.21460.10840.28300.15010.99800.67261.01921.3210
tFtC=35.5823.7363.3656.39111.9085.87167.26119.76637.82445.711025.5687.98

Table 3

Performance of the protocol using [21] of protocol nDelPoExp when σ = 2048, λ = 128 and group G =Zp where p = 2q + 1 where p and q are primes.

m =2471050100
SMNoSMSMNoSMSMNoSMSMNoSMSMNoSMSMNoSM
tF0.00990.00480.01950.00960.03420.01650.04880.02370.24300.12030.53420.2365
tp =0.01960.00960.03890.01920.06820.03320.09750.04710.48720.23899.91750.4731
tc =0.00060.00040.00120.00070.00220.00130.00310.00180.01560.00910.03460.0179
tS0.03900.01910.07730.03830.13550.06630.19380.09400.96730.47704.56770.9444
tFtC=15.6813.2215.6513.1215.6413.2115.6013.2115.6013.2715.4513.23

5 Delegating Signature Schemes

In this section we show private, secure and efficient delegation schemes for well-known (i.e., ElGamal, Schnorr and Okamoto’s) signature schemes using the delegation of a product of (fixed-base) exponentiation for cyclic groups from Section 4. We start the presentation by recalling in Section 5.1 the definition of signature schemes in the standard (i.e., non-delegated) model. In Section 5.2 we augment this definition so to additionally take into account eavesdropping and oracle query attacks in the delegated model. Then, in Section 5.3 we present a general result that shows how to convert signature schemes in the non-delegated model into signature schemes in the delegated model by using a suitable delegation protocol. Finally, in Section 5.4 we show delegated ElGamal, Schnorr and Okamoto’s signature schemes by simply showing modification to the original algorithms where signers and/or verifiers use the delegated protocol for computing a product of exponentiations. The proof that these modifications result in correct, secure and private delegated signature schemes directly follows from our general result in Section 5.3.

5.1 Definitions: Signature Schemes in the standard model

We now recall the definition of digital signature schemes in the standard (i.e., non-delegated) model.

Notations and algorithm syntax

An oracle, denoted as O(⋅), is a function. An oracle algorithm, denoted as AO(⋅), is an algorithm that during its computation can repeatedly make a query to the oracle and obtain the corresponding oracle’s output.

In a signature scheme SS, we consider two types of parties: signers and verifiers, and three algorithms: a key-generation algorithm KG, a signing algorithm Sign, and a verification algorithm Ver, satisfying the following syntax and requirements.

On input a security parameter 1σ, algorithm KG returns a public key pk and a matching secret key sk. On input a message m of arbitrary length, algorithm Sign returns a signature sig. On input a putative message m′, and a putative signature sig′, algorithm Ver returns a bit = 1 (resp., 0) to denote that sig′ is a valid (resp., not valid) signature of m′.

Requirements: Correctness and Unforgeability

Informally speaking, the correctness requirement states that if both signer and verifier correctly run the algorithms, the verifier can recognize the signer’s signature as valid; and the unforgeability requirement states that no efficient algorithm querying the signature oracle can produce a message with a valid signature. Formal definitions follow.

Definition 5

We say that SS = (KG, Sign, Ver) satisfies δ-correctness if for any message m ∈ {0, 1}*, it holds that

Prob(pk,sk) KG(1σ);sig Sign(pk,sk,m):Ver(pk,m,sig)=1δ,

for some δ close to 1.

Definition 6

We say that the signature scheme SS = (KG, Sign, Ver) satisfies existential ϵ-unforgeability under chosen message attack (briefly, ϵ-cma-EU) if for any efficient oracle algorithm A, it holds that

ProboutSecExpSS,A(1σ):out=1ϵ,

for some ϵ close to 0, where experiment SecExp is detailed below:

SecExpSS, A(1σ)

  1. (pk, sk) ← KG(1σ)

  2. (m′, sig′) ← ASign(pk,sk,⋅)(pk)

  3. Let Q be the set of message queries made by A to oracle Sign(pk, sk, ⋅)

  4. if m′ ∈ Q or Ver(pk, sk, m′, sig′) = 0 then return: 0

     else return: 1.

5.2 Definitions: Delegated Signature Schemes

Given a (non-delegated) signature scheme SS = (KG, Sign, Ver), as defined in Section 5.1, and a delegation protocol (C, S) for a function F, as defined in Section 3, we now formally define an associated delegated signature scheme dSS.

Notations and algorithm syntax

We consider three parties: a signer, a verifier, and a server, where during their computations the signer and/or the verifier may act as clients interacting with the server. Since in this paper we only use one-round client-server delegation protocols, we first model the server as an oracle that answers client queries, and then model the signer and verifier’s interactions with the server as calls to the server oracle.

For each one-round delegation protocol (C, S) for a function F, we define an (F, C, S)-associated server oracle, denoted as S(desc(F), 1σ, 1λ, ⋅), as the oracle taking as query input C’s message in (C, S) and returning as output the server S’s response to this message according to protocol (C, S).

An oracle signature algorithm, denoted as SignS, is defined as an algorithm with the same syntax as signature algorithm Sign, but with the additional capability of making queries to an oracle S. Analogously, an oracle verification algorithm, denoted as VerS, is defined as an algorithm with the same syntax as a verification algorithm Ver, but with the additional capability of making queries to an oracle S. An oracle signature scheme is defined as a signature scheme (KG, SignS, VerS) where signature and verification algorithms are actually oracle signature and oracle verification algorithms, capable of querying the same oracle S. We then say that an oracle signature scheme (KG, SignS, VerS) is (F, C, S)-compatible if oracle signing algorithm SignS and oracle verification algorithm VerS are semantically equivalent to the signature algorithm Sign and the verification algorithm Ver from SS, in the sense that on the same input, the final output from SignS and Vers is identical to the output from Sign and Ver, respectively (but in the middle of its computation, SignS and VerS may also perform queries to S). Finally, we formally define the (SS, F, C, S)-compatible delegated signature scheme dSS as the tuple (S, KG, SignS, VerS), where S is the (F, C, S)-associated server oracle and (KG, SignS, VerS) is the (F, C, S)-compatible oracle signature scheme.

In our formal description of the protocols, we will actually separate algorithms SignS and VerifyS into an offline-phase and online-phase version, for the purpose of minimizing the online complexity; however, to reduce notation in the description of the model, in this subsection we keep both offline and online version as a single algorithm.

Requirements: Correctness and Unforgeability

The requirements of correctness and unforgeability for dSS are also obtained by suitably augmenting those for SS. In the case of correctness, the extension is immediate. In the case of unforgeability, we replace the adversary A’s oracle Sign with two oracles:

  1. an augmented oracle dSign(pk, sk, ⋅) which, on input message m, returns a signature sig as well as the transcript of any query/answer interaction with the server oracle S performed by Sign during the generation of sig;

  2. the server oracle S(desc(F), 1σ, 1λ, ⋅), which, on input C’s query message qmesC, returns S’s response to qmesC in an execution of protocol (C, S).

Note that by giving the adversary access to oracle dSign, we model the adversary’s eavesdropping attacks on executions of the delegation protocol between a signer (acting as client) and the server, as well as between a verifier (acting as client) and the server. Moreover, by giving the adversary access to oracle S, we model the adversary’s interaction with the server while colluding with a signer or verifier. Formal definitions of correctness and unforgeability requirements for dSS follow.

Definition 7

Let F be a function, and (C, S) be a delegation protocol for F, and let S be the (F, C, S)-associated server oracle. We say that the (SS, F, C, S)-compatible delegated signature scheme dSS = (S, KG, SignS, VerS) satisfies δ-correctness if for any message m ∈ {0, 1}*, it holds that

Prob(pk,sk) KG(1σ);sig SignS(pk,sk,m): VerS(pk,m,sig)=1δ,

for some δ close to 1.

Definition 8

Let F be a function, and (C, S) be a delegation protocol for F, and let S be the (F, C, S)-associated server oracle. We say that the (SS, F, C, S)-compatible delegated signature scheme dSS = (S, KG, SignS, VerS) satisfies existential ϵ-unforgeability under chosen message attack (briefly, ϵ-cma-EU) if for any efficient oracle algorithm A, it holds that

ProboutSecExpdSS,A(1σ):out=1ϵ,

for some ϵ close to 0, where experiment SecExp is detailed below:

SecExpdSS, A(1σ)

  1. (pk, sk) ← KG(1σ)

  2. (m′, sig′) ← AdSign(pk,sk,⋅),S(⋅)(pk)

  3. Let Q be the set of message queries made by A to oracle dSign(pk, sk, ⋅)

  4. if m′ ∈ Q or VerS(pk, sk, m′, sig′) = 0 then return: 0

      else return: 1.

5.3 Delegated Signature Schemes: a general result

We show the relationship between non-delegated signature schemes, delegation protocols and delegated signature schemes in the following theorem.

Theorem 9

Let F be a function, and (C, S) be a delegation protocol for F, and let S be the (F, C, S)-associated server oracle. Also, let SS = (KG, Sign, Ver) be a (non-delegated) signature scheme and let dSS = (S, KG, SignS, VerS) be the (F, C, S)-compatible delegated signature scheme. If SS satisfies δ-correctness and ϵ-unforgeability under chosen message attack, then dSS satisfies δ′-correctness and ϵ′-unforgeability under chosen message attack, for δ′ = δ and ϵ′ = ϵ.

The main takeaway from Theorem 9 is to provide a shortcut to provably turn a conventional signature scheme into a delegated signature scheme, as defined in Section 5.2: just design a suitable delegation protocol, as defined in Section 3, for a function F of interest in the computation or verification of a signature. In particular, the delegated signature scheme comes with protection of the original signature scheme against more powerful attacks such as eavesdropping on the delegation protocol messages, and querying the server oracle.

Critical to establish the relationship in the theorem is the delegation protocol’s simulation-based privacy property. First of all, we observe that the correctness property of the delegated signature scheme directly follows from the analogue property of the original signature scheme. Then, we show that the unforgeability of the delegated signature scheme follows by the unforgeability of the non-delegated signature scheme and the delegation protocol’s simulation-based privacy property. Specifically, assume an adversary A is able to violate the unforgeability of the delegated signature scheme. One can construct an adversary A′ that violates the unforgeability of the non-delegated signature scheme, as follows:

  1. A′ runs algorithm A and processes A’s queries as follows

  2. When A queries dSign(pk, sk, ⋅) with message m, A′ does the following:

    A′ queries Sign(pk, sk, ⋅) with message m, thus obtaining signature sig

    A′ runs simulator Sim to obtain the transcripts {tr} containing

      queries to S and replies from S performed during

      the executions of algorithms SignS and VerS

    A′ simulates the oracle dSign(pk, sk, ⋅)’s answer as (sig, {tr})

  3. When A queries S(⋅) with message qmesC, A′ does the following:

    A′ runs S on input query message qmesC thus obtaining answer qansS

    A′ simulates the oracle S(⋅)’s answer as qansS

We note that the simulation-based privacy of the delegation protocol for F implies that the the success of A′ in breaking SS is the same as the success of A in breaking dSS. The theorem follows.

5.4 Delegating ElGamal, Schnorr and Okamoto’s Schemes

In this section we show delegated signature protocols for 3 well-known signature schemes: those by El Gamal [27], Schnorr [41] and Okamoto [39]. In each case, the delegated signature scheme, denoted as dSS, is obtained by combining the non-delegated signature scheme, denoted as SS and reviewed in Appendix B, with the delegation protocol (C, S) for a product of exponentiations in the associated group, described in Section 4, and then applying Theorem 9. In all considered non-delegated signature schemes, the online complexity of the signature generation and verification process is dominated by a product of 2 or 3 fixed-base exponentiations. In the design of each dSS scheme, we replace each of these products with an execution of protocol (C, S) and also carefully split the signature and verification computations between offline and online phases of the two algorithms. For uniformity of presentation and performance evaluation, both our review of the non-delegated signature scheme in Appendix B and the presentation of our delegated signature schemes in the rest of this section use as example group G = (Zp, ⋅ mod p), where p = 2q + 1, for p, q primes. We obtain that with respect to this group, our delegated schemes improve the online complexity of the signature generation and verification process by a factor between 30 and 50 over the non-delegated version and by a factor between 2 and 3 over the delegation approach built on [21], as detailed in Table 4.

Table 4

Comparison of the number of C’s online multiplications in non-delegated and delegated versions of signature schemes in [27, 39, 41], all defined in group G = (Zp, ⋅ mod p), where p = 2q + 1, and p, q are primes.

Fg1,…,gm,qFg1,…,gm,q
SchemesNo delegationWith delegation
nPoExpfPoExpnDelPoExpOur result
ElGamal8, 1982, 394525267
Schnorr8, 1932, 389520262
Okamoto12, 2902, 521780262

Delegated El Gamal Signature Scheme

Let (C, S) be the client-server protocol from Section 4 for the delegation of the function Fg1, g2,q computing the product of two exponentiations over group G. Also, by (Cinv, Sinv) we denote the client-server protocol from Section 3 of [13] for the delegation of the function computing an inverse of an element in ℤq. Finally, let H denote a cryptographic hash function. Our delegated version of the signature scheme in [27] goes as follows.

  1. Key generation: Let g be a generator of the q-order subgroup of group G. Randomly choose x ∈ {0, …, q − 1} and set y := gx mod p. The public key is (p, q, g, y) and the private key is x.

  2. Offline Signing: on input public key (p, q, g, y) and private key x, choose random k ∈ {0, …, q − 1} such that gcd(k, q) = 1 and set r := (gk mod p) mod q. Output offline signature (r).

  3. Online Signing: on input public key (p, q, g, y), private key x, offline signature (r) and a message m, compute s := k−1(H(m) − xr) mod q and output signature (r, s) if 0 < r < q and 0 < s < q or ⊥ otherwise.

  4. Offline Verifying: on input a public key (p, q, g, y), run the offline phase of the delegation protocol (C, S) with inputs g1 = g and g2 = y, resulting in offline output pp.

  5. Online Verifying: on input a public key (p, q, g, y), offline output pp, a message m, and a signature (r, s) with 0 < r < q and 0 < s < q, run the following instructions. First, compute u = s−1 mod q. Then, compute x1 = H(m)u mod q and x2 = −ru mod q, query S with inputs g1 = g, g2 = y, x1 and x2, and use S’s reply to compute the product π. Finally, check that π = r mod p. In a slightly improved version, we observe that the computation of u could also be delegated using protocol (Cinv, Sinv).

Note that in the scheme the verification algorithm checks whether

gH(m)s1yrs1=rmodp,

which is equivalent to the check

gH(m)=yrrsmodp

in the original ElGamal’s scheme. We also note that contrarily to the original scheme, in the above there is a negligible probability (when r = 0 or s = 0) that Sign does not compute a valid signature.

The delegated Schnorr Signature Scheme

Our delegated version of the signature scheme in [41], described below, uses a cryptographic hash function H and a client-server protocol (C, S) for the delegation of function Fg1, g2,q computing the product of two exponentiations over group G.

  1. Key generation: Let g be a generator of the q-order subgroup of group G. Randomly choose x ∈ ℤq and set y := gx mod p. The public key is (G, p, q, g, y) and the private key is x.

  2. Offline Signing: on input public key (G, p, q, g, y) and private key x, choose random k ∈ ℤq and set I := gk mod p. Output offline signature I.

  3. Online Signing: on input public key (G, p, q, g, y), private key x, offline signature I and a message m, compute r := H(I, m) and s := rx + k mod q. Output signature (r, s).

  4. Offline Verifying: on input a public key (G, p, q, g, y), run the offline phase of the delegation protocol (C, S) resulting in offline output pp.

  5. Online Verifying: on input public key (G, p, q, g, y), a message m, offline output pp and signature (r, s), set x1 = s and x2 = − r mod q, query S with inputs g1 = g, g2 = y, x1 and x2, and use S’s reply to compute the product π. Finally, check that H(π, m) = r mod p.

The Delegated Okamoto Signature Scheme

Our delegated version of the signature scheme in [39], described below, uses a cryptographic hash function H and a client-server protocol (C, S) for the delegation of function Fg1,g2,g3,q, computing the product of three exponentiations over group G.

  1. Key generation: Let p = 2q + 1 where p, q are primes, let g1 and g2 be generators for the q-order subgroup of group G, and let t be a sufficiently large integer; e.g., t ≥ 128. Randomly choose s1, s2 ∈ ℤq and set v:=g1s1g2s2 mod p. The public key is (p, q, g1, g2, t, v) and the private key is (s1, s2).

  2. Offline Signing: on input public key (p, q, g1, g2, t, v) and private key (s1, s2), choose random r1, r2 ∈ ℤq, set x:=g1r1g2r2 mod p and output offline signature x.

  3. Online Signing: on input public key (p, q, g1, g2, t, v) and private key (s1, s2), offline signature x and a message m, compute e := H(x, m) ∈ ℤ2t, followed by (y1, y2) such that y1 = r1 + es1 mod q and y2 = r2 + es2 mod q. Output signature (e, y1, y2).

  4. Offline Verifying: on input a public key (p, q, g1, g2, t, v), run the offline phase of the delegation protocol (C, S) resulting in offline output pp.

  5. Online Verifying: on input a public key (p, q, g1, g2, t, v), offline output pp, a message m, and signature (e, y1, y2), set x1 = y1, x2 = y2, x3 = e, query S with inputs g1, g2 and g3 = v, and use S’s reply to compute the product π. Finally, check that H(π, m) = e mod p.

6 Conclusions

We considered the problem of delegating the computation of a product of group exponentiations to a single, possibly malicious, server. We solved this problem by showing a protocol that provably satisfies formal correctness, privacy, security and efficiency requirements, in a large class of cyclic groups; specifically, cyclic groups whose multiplication and inverse operations can be efficiently computed, and which admit an efficiently verifiable protocol to prove that an element is in the group. The considered class of cyclic groups includes groups often discussed in cryptography literature, such as prime-order subgroups in ℤp and elliptic curve groups.

As an application, we showed the first private, secure and efficient delegated (to a single, possibly malicious, server) versions of an entire cryptographic scheme. Previous research only achieved these properties for delegation of a single operation in a scheme’s algorithm. Specifically, we showed delegated versions of well-known signature schemes whose most expensive computations could be rephrased as products of exponentiations over cyclic groups. This implies that in any delegated model of computation, certain well-known signature schemes can be run with improvements of 1-2 orders of magnitude in the online runtime for the entire signature generation and verification process.

Moreover, we believe that our methods provide hope towards private, secure and efficient delegation of more complex cryptographic protocols to a single, possibly malicious, server.

References

[1] A. Arbit, Y. Livne, Y. Oren, and A. Wool, Implementing Public-Key Cryptography on Passive RFID Tags is Practical. In: International Journal of Information Security, 14(1): pp. 85-99, 2015.10.1007/s10207-014-0236-ySuche in Google Scholar

[2] M. Atallah, K. Pantazopoulos, J. Rice, and E. Spafford, Secure Outsourcing of Scientific Computations. In: Advances in Computers, 54, pp. 215–272, 2002.10.1016/S0065-2458(01)80019-XSuche in Google Scholar

[3] M. Atallah and K. Frikken, Securely Outsourcing Linear Algebra Computations. In: Proc. of 5th ACM ASIACCS, 2010, pp. 48–59.10.1145/1755688.1755695Suche in Google Scholar

[4] P. Barrett, Implementing the Rivest Shamir and Adleman Public Key Encryption Algorithm on a Standard Digital Signal Processor. In: Proc. of CRYPTO 1986, LNCS 263, pp. 311–323.10.1007/3-540-47721-7_24Suche in Google Scholar

[5] L. Batina, J. Guajardo, T. Kerins, N. Mentens, P. Tuyls, and I. Verbauwhede, Public-Key Cryptography for RFID-Tags. In: 5th IEEE International Conference on Pervasive Computing and Communications - Workshops (PerCom Workshops 2007), pp. 217–222.10.1109/PERCOMW.2007.98Suche in Google Scholar

[6] M. Bellare, J. Garay, and T. Rabin, Fast Batch Verification for Modular Exponentiation and Digital Signatures. In: Proc. of Eurocrypt 1998, pp. 236–250, LNCS, Springer.10.1007/BFb0054130Suche in Google Scholar

[7] A. Brauer, On Addition Chains. In: Bulletin of the American Mathematical Society, vol. 45, pp. 736–739, 1939.10.1090/S0002-9904-1939-07068-7Suche in Google Scholar

[8] D. Benjamin and M. Atallah, Private and Cheating-Free Outsourcing of Algebraic Computations. In: Proc. of 6th PST 2008, Springer, pp. 240–245.10.1109/PST.2008.12Suche in Google Scholar

[9] V. Boyko, M. Peinado, and R. Venkatesan, Speeding up Discrete Log and Factoring Based Schemes via Precomputations. In: Proc. of Eurocrypt 1998, pp. 221–235, LNCS, Springer.10.1007/BFb0054129Suche in Google Scholar

[10] E. Brickell, D. Gordon, Z. Mccurley, and D. Wilson, Fast Exponentiation with Precomputation. In: Proc. of Eurocrypt 92, LNCS 658, Springer.Suche in Google Scholar

[11] D. Bernstein, Pippenger’s Exponentiation Algorithm, online source, 2002.Suche in Google Scholar

[12] J. Cai, Y. Ren, and T. Jiang, Verifiable Outsourcing Computation of Modular Exponentiations with Single Server. In: International Journal of Network Security, 19 (3), pp. 449–457, 2017.Suche in Google Scholar

[13] B. Cavallo, G. Di Crescenzo, D. Kahrobaei, and V. Shpilrain, Efficient and Secure Delegation of Group Exponentiation to a Single Server. In: Proc. of International Workshop on Radio Frequency Identification: Security and Privacy Issues: pp. 156–173, LNCS, Springer.10.1007/978-3-319-24837-0_10Suche in Google Scholar

[14] X. Chen, J. Li, J. Ma, Q. Tang, and W. Lou, New Algorithms for Secure Outsourcing of Modular Exponentiations. In: Proc. of ESORICS 2012, pp. 541-556, LNCS, Springer.10.1007/978-3-642-33167-1_31Suche in Google Scholar

[15] C. Chevalier, F. Laguillaumie, and D. Vergnaud, Privately Outsourcing Exponentiation to a Single Server: Cryptanalysis and Optimal Constructions. In: Proc. of ESORICS 2016, pp. 261-278, LNCS, Springer.10.1007/978-3-319-45744-4_13Suche in Google Scholar

[16] K. Chung K, Y. Kalai, and S. Vadhan, Improved Delegation of Computation using Fully Homomorphic Encryption. In: Proc. of CRYPTOO 2010, pp. 483–501, LNCS 6223, Springer, 2010.10.1007/978-3-642-14623-7_26Suche in Google Scholar

[17] R. Cramer and V. Shoup, Design and Analysis of Practical Public-Key Encryption Schemes Secure against Adaptive Chosen Ciphertext Attack. In: SIAM Journal on Computing, 33(1): pp. 167–226, 2003.10.1137/S0097539702403773Suche in Google Scholar

[18] B. Cubaleska, A. Rieke, and T. Hermann, Improving and Extending the Lim/Lee Exponentiation Algorithm. In: Proc. of SAC 1999, pp. 163–174, LNCS, Springer.10.1007/3-540-46513-8_12Suche in Google Scholar

[19] G. Di Crescenzo, D. Kahrobaei, M. Khodjaeva, and V. Shpilrain, Efficient and Secure Delegation to a Single Malicious Server: Exponentiation over Non-abelian Groups. In: Proc. of ICMS 2018, pp. 137–146, LNCS 10931, Springer.10.1007/978-3-319-96418-8_17Suche in Google Scholar

[20] G. Di Crescenzo, M. Khodjaeva, D. Kahrobaei, and V. Shpilrain, Computing Multiple Exponentiations in Discrete Log and RSA Groups: From Batch Verification to Batch Delegation. In: Proc. of 3rd IEEE Workshop on Security and Privacy in the Cloud, IEEE, 2017.Suche in Google Scholar

[21] G. Di Crescenzo, M. Khodjaeva, D. Kahrobaei, and V. Shpilrain, Practical and Secure Outsourcing of Discrete Log Group Exponentiation to a Single Malicious Server. In: Proc. of 9th ACM Cloud Computing Security Workshop (CCSW), pp. 17-28, 2017.10.1145/3140649.3140657Suche in Google Scholar

[22] G. Di Crescenzo, M. Khodjaeva, D. Kahrobaei, and V. Shpilrain, Secure Delegation to a Single Malicious Server: Exponentiation in RSA-type Groups. In: Proc. of 5th IEEE Workshop on Security and Privacy in the Cloud, IEEE, 2019.Suche in Google Scholar

[23] W. Diffie and M. E. Hellman, New Directions in Cryptography. In: IEEE Transactions on Information Theory 22(6): 644-654 (1976).10.1109/TIT.1976.1055638Suche in Google Scholar

[24] M. Dijk, D. Clarke, B. Gassend, G. Suh, and S. Devadas, Speeding Up Exponentiation using an Untrusted Computational Resource. In: Designs, Codes and Cryptography, 39 (2), pp. 253-273, 2006.10.1007/s10623-005-3710-8Suche in Google Scholar

[25] V. Dimitrov, G. Jullien, and W. Miller, An Algorithm for Modular Exponentiation. In: Information Processing Letters, 66(3): pp. 155–159, 1998.10.1016/S0020-0190(98)00044-1Suche in Google Scholar

[26] Y. Ding, Z. Xu, J. Ye, and K. Choo, Secure Outsourcing of Modular Exponentiations under Single Untrusted Programme Model. In: Journal of Computer and System Sciences, vol. 90, C, Academic Press, Inc., pp. 1-13, 2017.10.1016/j.jcss.2016.11.005Suche in Google Scholar

[27] T. El Gamal, A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms. In: IEEE Transactions on Information Theory, 31(4): 469-472 (1985).10.1109/TIT.1985.1057074Suche in Google Scholar

[28] D. Fiore and R. Gennaro, Publicly Verifiable Delegation of Large Polynomials and Matrix Computations, with Applications. In: Proc. of ACM CCS Conference 2012, pp. 501–512.10.1145/2382196.2382250Suche in Google Scholar

[29] R. Gennaro, C. Gentry, and B. Parno, Non-interactive Verifiable Computing: Outsourcing Computation to Untrusted Workers, in Proc. of CRYPTO 2010, LNCS 6223, pp. 465–482.10.1007/978-3-642-14623-7_25Suche in Google Scholar

[30] C. Gentry, Fully Homomorphic Encryption using Ideal Lattices. In: Proc. of ACM STOC 2009, pp. 169–178.10.1145/1536414.1536440Suche in Google Scholar

[31] S. Hohenberger and A. Lysyanskaya, How to Securely Outsource Cryptographic Computations. In: Proc. of TCC 2005, pp. 264–282, Springer.10.1007/978-3-540-30576-7_15Suche in Google Scholar

[32] M. Jakobsson and S. Wetzel, Secure Server-Aided Signature Generation. In: Proc. of PKC 2001, pp. 383-401, LNCS, Springer.10.1007/3-540-44586-2_28Suche in Google Scholar

[33] C. Lim and P. Lee, More Flexible Exponentiation with Precomputation. In: Proc. of CRYPTO 1994, pp. 95–107, LNCS, Springer.10.1007/3-540-48658-5_11Suche in Google Scholar

[34] X. Ma, J. Li, and F. Zhang, Outsourcing Computation of Modular Exponentiations in Cloud Computing. In: Cluster Computing (2013) 16:787-796 (also INCoS 2012).10.1007/s10586-013-0252-0Suche in Google Scholar

[35] T. Matsumoto, K. Kato and H. Imai, An Improved Algorithm for Secure Outsourcing of Modular Exponentiations. In: Proc. of CRYPTO 1988, pp. 497–506, LNCS, Springer.Suche in Google Scholar

[36] A. Menezes, P. C. van Oorschot, and S. A. Vanstone, Handbook of Applied Cryptography. In: CRC Press, 1996, ISBN 0-8493-8523-7.Suche in Google Scholar

[37] B. Möller, Improved Techniques for Fast Exponentiation. In: Proceedings of ICISC 2002, pp. 298-312, LNCS 2587, Springer.10.1007/3-540-36552-4_21Suche in Google Scholar

[38] P. Nguyen, I. Shparlinski, and J. Stern, Distribution of Modular Sums and the Security of the Server Aided Exponentiation. In: Proceedings of Cryptography and Computational Number Theory, pp. 331-342, Springer, 2001.10.1007/978-3-0348-8295-8_24Suche in Google Scholar

[39] T. Okamoto Provably Secure and Practical Identification Schemes and Corresponding Signature Schemes. In: Proc. of CRYPTO 1992, pp. 31-53, LNCS, Springer.10.1007/3-540-48071-4_3Suche in Google Scholar

[40] N. Pippenger, On the Evaluation of Powers and Monomials. In: SIAM Journal of Computing, vol. 9, pp. 230-250, 1980.10.1137/0209022Suche in Google Scholar

[41] C. Schnorr, Efficient Signature Generation by Smart Cards. In: Journal of Cryptology 4(3), pp. 161–174, 1991.10.1007/BF00196725Suche in Google Scholar

[42] E. Straus, Addition Chains of Vectors (problem 5125). In: American Mathematical Monthly, vol. 70, (1973), pp. 907-913.Suche in Google Scholar

[43] Y. Wang, Q. Wu, D. Wong, B. Qin, S. Chow, Z. Liu, and X. Tao, Securely Outsourcing Exponentiations with Single Untrusted Program for Cloud Storage. In: Proc. of ESORICS 2014, pp. 326-343, LNCS, Springer.10.1007/978-3-319-11203-9_19Suche in Google Scholar

[44] A. Yao, On the Evaluation of Powers. In: SIAM Journal on Computing 5(1): pp. 100–103, 1976.10.1137/0205008Suche in Google Scholar

[45] A. Yao, Protocols for Secure Computations. In: Proc. of 23rd IEEE FOCS, pp. 160–168, 1982.10.1109/SFCS.1982.38Suche in Google Scholar

[46] L. Zhao, M. Zhang, H. Shen, Y. Zhang, and J. Shen, Privacy-Preserving Outsourcing Schemes of Modular Exponentiations Using Single Untrusted Cloud Server. In: KSII Transactions on Internet & Information Systems, 11 (2), 2017.10.3837/tiis.2017.02.011Suche in Google Scholar

A. Delegation of a Single Fixed-Base Exponentiation

Let (G, *) be a cyclic group having order q, efficient operation, efficiently computable inverses, and an efficiently verifiable membership protocol, denoted as (mProve, mVerify). Let g be a generator for G, and denote as y = gx a (fixed-base) exponentiation (in G). Let ℤq = {0, 1, …, q − 1}, and let Fg,q : (ℤq × … × ℤq) → G denote the function that maps to each x ∈ ℤq a fixed-base exponentiations (in G). By desc(Fg,q) we denote a conventional description of the function Fg,q that includes its semantic meaning as well as generator g, order q and the efficient algorithms computing multiplication and inverses in G. The delegation protocol for a single fixed-base exponentiation in G was formally defined in [21] as follows.

Input to S: 1σ, 1λ, desc(Fg,q)

Input to C: 1σ, 1λ, desc(Fg,q), x ∈ ℤq

Offline phase instructions:

  1. Randomly choose ui ∈ ℤq, for i = 0, 1

  2. Set vi = gui and store (ui, vi) on C, for i = 0, 1

Online phase instructions:

  1. C randomly chooses b ∈ {1, …, 2λ}

    C sets z0 := (xu0) mod q, z1 := (bx + u1) mod q

    C sends z0, z1 to S

  2. S computes wi := gzi and πi := mProve(wi), for i = 0, 1

    S sends w0, w1, π0, π1 to C

  3. If x = 0

      C returns: y = 1 and the protocol halts

     if mVerify(wi, πi) = 0 for some i ∈ {0, 1}, then

      C returns: ⊥ and the protocol halts

    C computes y := w0 * v0

    C checks that

      y ≠ 1, also called the ‘distinctness test’

      w1 = yb * v1, also called the ‘probabilistic test’

      mVerify(w0, π0) = mVerify(w1, π1) = 1,

       also called the ‘membership test’

     if any one of these tests is not satisfied then

      C returns: ⊥ and the protocol halts

    C returns: y

B. Non-Delegated Signature Schemes

We review non-delegated signature schemes from [27, 39, 41], all defined using group G = (ℤp, ⋅ mod p), where p = 2q + 1, for p, q primes. We note that G has a q-order subgroup with an easily computable generator (e.g., any quadratic residue modulo p different than 1).

B.1 ElGamal Signature Scheme

The signature scheme from [27] can be defined over group G, and using a cryptographic hash function H, as follows.

  1. Key generation: Randomly choose primes p, q such that p = 2q + 1 and a generator g for the q-order subgroup of group G = (ℤp, ⋅ mod p). Randomly choose x ∈ {0, …, q − 1} and set y := gx mod p. The public key is (p, q, g, y) and the private key is x.

  2. Signing: on input private key x and a message m, randomly choose k ∈ {1, …, q − 1}, set r := gk mod p and compute s := k−1(H(m) − xr) mod q. If s = 0 then start again. Output signature (r, s).

  3. Verifying: on input a public key (p, q, g, y), a message m, and signature (r, s) with 0 < r < q and 0 < s < q, only accept the signature if

    gH(m)=yrrsmodp.

B.2 The Schnorr Signature Scheme

The signature scheme [41] can be defined over group G, and using a cryptographic hash function H, as follows.

  1. Key generation: Randomly choose primes p, q such that p = 2q + 1 and a generator g for the q-order subgroup of group G = (ℤp, ⋅ mod p). Randomly choose x ∈ ℤq and set y := gx mod p. The public key is (p, q, g, y) and the private key is x.

  2. Signing: on input private key x, public key (p, q, g, y) and a message m, randomly choose k ∈ ℤq and compute I := gk mod p, r := H(I, m) and s := rx + k mod q. Output signature (r, s).

  3. Verifying: on input a public key (p, q, g, y), a message m, and signature (r, s), compute I := gsyr mod p and only accept the signature if

    H(I,m)=r.

B.3 The Okamoto Signature Scheme

The signature scheme from [39] can be defined over group G,, and using a cryptographic hash function H, as follows.

  1. Key generation: Randomly choose primes p, q such that p = 2q + 1 and two generators g1, g2 for the q-order subgroup of group G = (ℤp, ⋅ mod p). Also, let λ be a statistical parameter; e.g., λ = 128. Randomly choose s1, s2 ∈ ℤq and set v:=g1s1g2s2 mod p. The public key is (p, q, g1, g2, 1λ, v) and the private key is (s1, s2).

  2. Signing: on input private key (s1, s2) and a message m, randomly choose r1, r2 ∈ ℤq and compute x:=g1r1g2r2 mod p, e := H(x, m) ∈ ℤ2t, y1 = r1 + es1 mod q and y2 = r2 + es2 mod q. Output signature (e, y1, y2).

  3. Verifying: on input a public key (p, q, g1, g2, t, v), a message m, and signature (e, y1, y2), compute x:=g1y1g2y2ve mod p and only accept the signature if

    H(x,m)=e.

Received: 2019-08-05
Accepted: 2020-08-27
Published Online: 2020-10-30

© 2020 G. Di Crescenzo et al., published by De Gruyter

This work is licensed under the Creative Commons Attribution 4.0 International License.

Artikel in diesem Heft

  1. MathCrypt 2018
  2. Preface to the First Annual MathCrypt Proceedings Volume
  3. Multiparty Non-Interactive Key Exchange and More From Isogenies on Elliptic Curves
  4. Recovering Secrets From Prefix-Dependent Leakage
  5. Quasi-subfield Polynomials and the Elliptic Curve Discrete Logarithm Problem
  6. A signature scheme from the finite field isomorphism problem
  7. Efficiently Processing Complex-Valued Data in Homomorphic Encryption
  8. Flattening NTRU for Evaluation Key Free Homomorphic Encryption
  9. Self-dual DeepBKZ for finding short lattice vectors
  10. Designing Efficient Dyadic Operations for Cryptographic Applications
  11. Characterizing overstretched NTRU attacks
  12. New Techniques for SIDH-based NIKE
  13. A subexponential-time, polynomial quantum space algorithm for inverting the CM group action
  14. Nutmic JMC Special Edition
  15. Preface for the Number-Theoretic Methods in Cryptology conferences
  16. A framework for cryptographic problems from linear algebra
  17. Improved cryptanalysis of the AJPS Mersenne based cryptosystem
  18. New number-theoretic cryptographic primitives
  19. New Zémor-Tillich Type Hash Functions Over GL2 (𝔽pn)
  20. Protecting ECC Against Fault Attacks: The Ring Extension Method Revisited
  21. Hash functions from superspecial genus-2 curves using Richelot isogenies
  22. Can we Beat the Square Root Bound for ECDLP over 𝔽p2 via Representation?
  23. A variant of the large sieve inequality with explicit constants
  24. CHIMERA: Combining Ring-LWE-based Fully Homomorphic Encryption Schemes
  25. Equidistribution Among Cosets of Elliptic Curve Points in Intervals
  26. Integer factoring and compositeness witnesses
  27. Short Principal Ideal Problem in multicubic fields
  28. Algorithms for CRT-variant of Approximate Greatest Common Divisor Problem
  29. Orienting supersingular isogeny graphs
  30. Delegating a Product of Group Exponentiations with Application to Signature Schemes (Submission to Special NutMiC 2019 Issue of JMC)
  31. Complexity bounds on Semaev’s naive index calculus method for ECDLP
  32. Regular Articles
  33. An elementary proof of Fermat’s last theorem for all even exponents
  34. Retraction of: An elementary proof of Fermat’s Last Theorem for all even exponents
  35. Survey on SAP and its application in public-key cryptography
  36. Privacy-preserving verifiable delegation of polynomial and matrix functions
  37. New approach to practical leakage-resilient public-key cryptography
Heruntergeladen am 22.11.2025 von https://www.degruyterbrill.com/document/doi/10.1515/jmc-2019-0036/html
Button zum nach oben scrollen