Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
This is the Full Version of the Extended Abstract that appears in the Proceedings of 8th Conference on Security and Cryptography for Networks (SCN 2012) (5 – 7 september 2012, Amalfi, Italy) I. Visconti and R. De Prisco Eds., Springer-Verlag, LNCS 7485, pages 95–112. Compact Round-Optimal Partially-Blind Signatures Olivier Blazy, David Pointcheval, and Damien Vergnaud {olivier.blazy, david.pointcheval, damien.vergnaud}@ens.fr ENS, Paris, France ⋆ Abstract Partially-blind signatures find many applications in the area of anonymity, such as in e-cash or e-voting systems. They extend classical blind signatures, with a signed message composed of two parts: a public one (common to the user and the signer) and a private one (chosen by the user, and blindly signed). The signer cannot link later the message-signature to the initial interaction with the user, among other signatures on messages with the same public part. This paper presents a one-round partially-blind signature which achieves perfect blindness in the standard model using a Common Reference String, under classical assumptions: CDH and DLin assumptions in symmetric groups, and similar ones in asymmetric groups. This scheme is more efficient than the previous ones: reduced round complexity and communication complexity, but still weaker complexity assumptions. A great advantage is also to end up with a standard Waters signature, which is quite short. In addition, in all the previous schemes, the public part required a prior agreement between the parties on the public part of the message before running the blind signature protocol. Our protocol does not require such pre-processing: the public part can be chosen by the signer only. Our scheme even allows multiple messages provided from independent sources to be blindly signed. These messages can either be concatenated or aggregated by the signer, without learning any information about them, before returning the blind signature to the recipient. For the aggregation (addition of the messages), we provide a new result, of independent interest, about the Waters hash function over non binary-alphabets. 1 Introduction Blind signatures were proposed by Chaum in 1982 [8]: they are an interactive signature scheme between a user and a signer, in a way that the signed message, and even the resulting signature, are unknown to the signer, this is the blindness property. More precisely, if the signer runs several executions of the protocol that led to several message-signature pairs, he cannot link back any pair to a specific execution: the view of the signer is unlinkable to the resulting message-signature pair. This unlinkability can either be computational, we then talk about computational blindness, or perfect, we then talk about perfect blindness. In addition, they guarantee some kind of unforgeability for the signer, which has been formalized in [18] to cope with e-cash properties: the user cannot produce more message-signature pairs (coins) than the number of interactions (withdrawals). There have been several highly interactive schemes (like [17]), but Fischlin [10] gave a generic construction of round-optimal blind signatures. Recent schemes have instantiated this construction, the user obtains an actual signature on the message, of which he proves knowledge [1, 11] or can simply randomize it to make it unlinkable [4,5]. In the latter case, the blind signature has the same format as the underlying signatures and, in addition to being round-optimal, is thus short. Our construction, like this last one produced a simple (randomized) Waters signature on the message m so two group elements and a scalar m under basic assumptions DLin, where [1] uses less standard assumption SXDH and ADH-CDH, and around 38 elements in G1 and 34 in G2 for the final signature because of the required proofs of knowledge. [12] presented a round-optimal blind signature without CRS but less efficient than the construction relying on the Common Reference String. A loophole in standard blind signatures was detailed by Abe and Okamoto [3]: the signer has no control over the signed messages (except in some sense the unforgeability which limits their number). In e-cash schemes, we want the bank to sign a coin (a random, and thus unknown, serial number), but with a specific expiration date. Partially-Blind Signatures proposed by Abe and Fujisaki [2] solve this problem, by allowing ⋆ CNRS – UMR 8548 and INRIA – EPI Cascade, Université Paris Diderot c Springer 2012. 2 the user and the signer to agree on a predetermined piece of information which must be included in the final signed message. Recently, in [19], Seo and Cheon presented a construction leading to (Partially) Blind-Signatures in the standard model. However their construction relies on a trick consisting in starting from prime order groups G1 , G2 , G3 and considering group elements in G = G1 ⊕G2 ⊕G3 . While their approach provides nice theoretical tools, the resulting signatures lies in G 2 and are therefore three times longer than our proposal. Our contributions. In this paper, we go one step further, improving [4] in several directions. We first present a blind signature scheme with perfect blindness, using the perfectly hiding instantiation of Groth-Sahai commitments [13]. We also widen the model of partially-blind signatures to supplement the predetermined communication with an on-the-fly public information generated by the signer: the signer can simply include it during the signing process, even if the user does not want this extra information. In the latter case, the user can simply discard the signature and start anew. We call this new primitive signer-friendly partially-blind signatures. This new notion allows to skip the prior agreement and allow the public information to be set on-the fly. Of course this new notion does not forbid any kind of prior agreement on the public part, it just strengthens the existing notion. It is now possible to get rid of the prior agreement on the common piece of information in the signed message and our instantiation allows the signer to do so in a round-optimal way. These two constructions being compatible, we can present a round-optimal partially-blind signature with perfect blindness. Our protocol does not need any pre-processing for the public part of the message. Basically both the user and the signer can choose a piece of the public part, but instead of having a computational overhead for the agreement both can simply choose during the 2 flows interaction what they want. The signer can always refuse to sign something where the user’s public information doesn’t suit him and the user can always choose not to exploit an uninteresting signature, so a protocol should avoid to waste communication costs when one can manage without any security loss to stay in a two-flows protocol. Eventually, discarding the perfect blindness, we take advantage of this asynchronous property (the user and the signer can independently choose their inputs) and we consider the new context where the message to be signed comes from several independent sources that cannot communicate together. We first present a way to obtain a signature on the concatenation of the input messages. We also present a shorter instantiation which gives a signature on the sum of the input messages. Such a sum can be useful when working on ballots, sensor information, etc. Since we still apply the Waters signature, this led us to consider the Waters function programmability over a non-binary alphabet, in a similar way as it was done in [14] for the binary alphabet. We prove a negative result on the (2, 1)-programmability, but a nice positive one on the (1, poly)-programmability, which is of independent interest. Instantiations. We give several instantiations of our different blind signatures, all of which are based on weak assumptions. Our constructions mainly use the two following building blocks, from which they inherit their security: Groth-Sahai proofs for languages over pairing-friendly groups [13] and Waters signatures derived from the scheme in [20] and used in [7]. Since verification of the revisited Waters signatures [4] is a statement of the language for Groth-Sahai proofs, these two building blocks combine smoothly. The first instantiations are in symmetric pairing-friendly elliptic curves and additionally use linear commitments [6]. Both unforgeability and semantic security of these constructions rely solely on the decision linear assumption (DLin). The blindness property is easily achieved granted the homomorphic property of the Waters signature. An instantiation with improved efficiency, in asymmetric bilinear groups, using the SXDH variant of Groth-Sahai proofs and commitments is drafted in the Appendix E. This setting requires an asymmetric Waters signature scheme secure under a slightly stronger assumption, called CDH+ , where some additional elements in the second group are given to the adversary. Applications. Our blind signature schemes find various kinds of applications: 3 E-voting. The security of several e-voting protocols relies on the fact that each ballot is certified by an election authority. Since this authority should not learn the voter’s choice, a blind signature scheme (or even partiallyblind, if the authority wants to specify the election in the ballot) is usually used to achieve this property. In order to achieve privacy of the ballot in an information-theoretic sense, it is necessary to use a signature scheme that achieves perfect blindness. Our scheme is the first to achieve this property in the standard model and under classical complexity assumptions. E-cash. As mentioned above, partially-blind signatures played an important role in many electronic commerce applications. In e-cash systems, for instance, the bank issuing coins must ensure that the message contains accurate information such as the face value of the e-cash without seeing it and moreover in order to prevent double-spending, the bank’s database has to record all spent coins. Partially-blind signatures can cope with these problems, since the bank can explicitly include some information such as the expiration date and the face value in the coin. Thanks to our proposal, the coin issuing protocol can be done without prior agreement between the bank and the client. Data aggregation in networks. A wireless (ad hoc) sensor network (WSN) consists of many sensor nodes that are deployed for sensing the environment and collecting data from it. Since transmitting and receiving data are the most energy consuming operations, data aggregation has been put forward as an essential paradigm in these networks. The idea is to combine the data coming from different sources – minimizing the number of transmissions and thus saving energy. In this setting, a WSN consists usually of three types of nodes: – sensor nodes that are small devices equipped with one or more sensors, a processor and a radio transceiver for wireless communication. – aggregation nodes (or aggregators) performing the data aggregation (e.g. average, sum, minimum or maximum of data). – base stations responsible for querying the nodes and gathering the data collected by them. WSNs are at high security risk and two important security goals when doing in-network data aggregation are data confidentiality and data integrity. When homomorphic encryption is used for data aggregation, endto-end encryption allows aggregation of the encrypted data so that the aggregators do not need to decrypt and get access to the data and thus provides end-to-end data confidentiality. Achieving data integrity is a harder problem and usually we do not consider the attack where a sensor node reports a false reading value (the impact of such an attack being usually limited). The main security flaw is a data pollution attack in which an attacker tampers with the intermediate aggregation result at an aggregation node. The purpose of the attack is to make the base station receive the wrong aggregation result, and thus make the improper or wrong decisions. While in most conventional data aggregation protocols, data integrity and privacy are not preserved at the same time, our multi-source blind signature primitive permits to achieve data confidentiality and to prevent data pollution attacks simultaneously by using the following simple protocol: 1. Data aggregation is initiated by a base station, which broadcasts a query to the whole network. 2. Upon receiving the query, sensor nodes report encrypted values of their readings (for the base station public key) to their aggregators 3. The aggregators check the validity of the received values, perform data aggregation via the homomorphic properties of the encryption scheme, (blindly) sign the result and route the aggregated results back to the base station. 4. The base station decrypts the aggregated data and the signature which proves the validity of the gathered information to the base station (but also to any other third party). 4 2 Definition This section presents the global framework and the security model for partially-blind signature schemes. A reminder of standard definition and security notions on Blind Signature can be found in the Appendix A. Blind signatures introduced a nice feature, however it may be undesirable that requesters can ask the signer to blindly sign any message. For example, in an e-cash scheme, some expiration date information should be embedded in the e-coin, to avoid the bank’s database an uncontrolled growth when storing information for double-spending checking. Partially-blind signatures are thus a natural extension of blind signatures: instead of signing an unknown message, the signer signs a message which contains a shared piece of information in addition to the hidden part. This piece is called info and, in the standard definition, is expected to have been defined before the execution of the protocol. But since our schemes will not require the public part to be agreed on by the two players before the protocol execution (as opposed to all the previous schemes from the literature), we extend the usual partially-blind signature scheme with two public parts in the message, in addition to the hidden part: info = infoc kinfos , where infoc is the common public part with prior agreement, and infos is set on-the-fly by the signer. This provides a more flexible scheme, and this definition generalizes all the above ones. If infos = ⊥, we are in the regular case of partially blind signature, whereas in case of regular blind signature both parts are empty ⊥. Definition 1 (Partially-Blind Signature Scheme). A PBS scheme is defined by 4 algorithms or protocols (SetupPBS , KeyGenPBS , hS, Ui, Verif PBS ) where – SetupPBS (1λ ) generates the global parameters parampbs of the system; – KeyGenPBS (parampbs ) generates a pair of keys (pkPBS , skPBS ); – Signature Issuing: this is an interactive protocol between S(skPBS , info = infoc kinfos ) and U (pkPBS , m, info), for a message m ∈ {0, 1}n and shared information info. It generates an output σ for the user: σ ← hS(skPBS , info), U (pkPBS , m, info)i. – Verif PBS (pkPBS , m, info, σ) outputs 1 if the signature σ is valid with respect to the message mkinfo and pkPBS , 0 otherwise. Quick note on security: The security requirements are a direct extension of the classical ones: for unforgeability, we consider mkinfo instead of m, and for the blindness, we condition the unlinkability between signatures with the same public part info. Without the latter restriction, anyone can simply distinguish which message was signed by comparing the public information. The unforgeability is strengthened by considering also the public information so that the signer can be sure that the user won’t be able to exploit his signature in another context. Definition 2 (Signer-Friendly Partially-Blind Signature Scheme). A signer-friendly partially-blind signature scheme PBS is defined by 4 algorithms or protocols (SetupPBS , KeyGenPBS , hS, Ui, Verif PBS ) where – Setup(1λ ) generates the global parameters parampbs of the system; – KeyGen(parampbs ) generates a pair of keys (pkPBS , skPBS ); – Signature Issuing: this is an interactive protocol between S(skPBS , infoc , infos ) and U (pkPBS , m, infoc ), for a message m ∈ {0, 1}n , signer information infos and common information infoc . It generates an output σ for the user: σ ← hS(skPBS , infoc , infos ), U (pkPBS , m, infoc )i. – Verif(pkPBS , m, infoc , infos , σ) outputs 1 if the signature σ is valid with respect to the message mkinfoc kinfos and pkPBS , 0 otherwise. One notes that infoc = info and infos = ⊥ lead to a standard partially-blind signature; whereas the case infoc = infos = ⊥ is the standard blind signature. The signer always has the last word in the process, and so if he does not want to sign a specific info, he will simply abort the protocol several times until the shared part suits his will. So, in the following, we 5 decided that it was wiser to let him choose this input. If the user wants a specific word in the final message he can always add it to the blinded message. Intuitively this strengthens the unforgeability notion as the adversary (the user in this case) won’t be able to chose the whole message to be signed because of infos . This is ensured in the security game, because the adversary should outputs valid signatures, therefore they should be done with the chosen infos . For the blindness property, the adversary should guess on signatures with the same public infoc kinfos component, if it is not the case we answer with a blind-signature ⊥. The complete security games can be found in the Appendix B. 3 Partially-Blind Signature Our constructions will combine Groth-Sahai Linear Commitments [13] and the Waters signature [20] as follows: given a commitment on the “Waters hash” F(M ) (and some additional values proving we know the message M and the randomness used), a pre-agreed shared information infoc , the signer can make a partiallyblind signature on M, infoc and an extra piece of public information infos . This construction makes use of a symmetric pairing, but we extend it to asymmetric pairings in the Appendix E. 3.1 Assumptions We rely on classical assumptions only: CDH for the unforgeability of signatures and DLin for the blindness property (when not perfect), and also for soundness of the proofs: Definition 3 (The Computational Diffie-Hellman problem (CDH)). The CDH assumption, in a cyclic group G of prime order p, states that for a generator g ∈ G and random a, b ∈ Zp , given (g, g a , g b ) it is hard to compute g ab . Definition 4 (Decision Linear Assumption (DLin)). The DLin assumption, in a cyclic group G of prime order p, states that given (g, g x , g y , g xa , g yb , g c ) for random a, b, x, y ∈ Zp , it is hard to determine whether c = a + b or a random value. When (g, u = g x , v = g y ) is fixed, a tuple (ua , v b , g a+b ) is called a linear tuple w.r.t. (u, v, g), whereas a tuple (ua , v b , g c ) for a random and independent c is called a random tuple. One can easily see that if an adversary is able to solve a CDH challenge, then he can easily solve a DLin one. So the DLin assumption implies the CDH assumption. Some reminders on Groth-Sahai Commitments and Waters function can be found in the Appendix C as those are the main building blocks of our construction. 3.2 Partially-Blind Signature with Perfect Blindness With those building blocks, we design a partially-blind signature scheme, which basically consists in committing the message to be signed. And granted the random coins of the commitment, the user can unblind the signature sent by the signer. Eventually, using the randomizability of the Waters signature, the user breaks all the links that could remain between the message-signature pair and the transaction. Our protocol proceeds as follows, on a commitment of F = F(M ), a public common message infoc , and a public message infos chosen by the signer. It is split into five steps, that correspond to an optimal 2-flow protocol: BlindBS , which is first run by the user, SignBS , which is thereafter run by the signer, and Verif BS , UnblindBS , RandomBS that are eventually successively run by the user to generate the final signature. We thus have U = (BlindBS ; Verif BS , UnblindBS , RandomBS ) and S = SignBS : $ – SetupBS (1λ ) first chooses a bilinear group (p, G, GT , e, g). We need an additional vector u = (u0 , . . . , uk ) ← Gk+1 which defines the Waters function F (where k is the global length of M ||infoc ||infos ), a gen$ erator h ← G, and a tuple of Groth-Sahai parameters (u1 , u2 , u3 ) in the perfectly hiding setting: parambs = (p, G, GT , e, g, h, F, u1 , u2 , u3 ); 6 $ – KeyGenBS (parambs ) chooses a random scalar x ← Zp , which defines the public key as pkBS = Y = g x , and the secret key as skBS = Z = hx ; – Signature Issuing (S(skBS , infoc , infos ), U (pkBS , M, infoc )), which is split in several steps: $ • BlindBS (M, pkBS ; (r1 , r2 , r3 )): For a message M ∈ {0, 1}ℓ and random scalars (r  1 , r2 , r3 ) ← Zp , define 3 1 3 2 3 the commitment as c = c1 = ur1,1 ur3,1 , c2 = ur2,2 ur3,2 , c3 = g r1 +r2 ur3,3 · F(M ) and compute Y1,2 = Y r1 +r2 , Y3 = Y r3 . One also generates additional proofs of validity of the commitment: ∗ A proof ΠM of knowledge of M in c, the encrypted F(M ), which consists of a bit-by-bit commitment CM = (C ′ (M1 ), . . . , C ′ (Mℓ )) and proofs that each committed value is a bit, and a proof that c3 is well-formed. ΠM is therefore composed of 9ℓ + 3 group elements. ∗ A proof Πr containing the commitments Cr = (C(Y1,2 ), C(Y3 )) and proofs asserting that they are correctly generated. It requires 9 additional group elements. Π thus consists of 9ℓ + 12 group elements, where ℓ is the bit-length of the message M • SignBS (skBS , (c, Π), infoc , infos ; s): To sign the commitment c, one first checks if the Π is valid. Q proof i It then appends the public message info = infoc kinfos to c3 to create c′3 = c3 · uinfo , which thus i+ℓ becomes a commitment of the Waters function evaluation on M kinfoc kinfos of global length k. It eventually outputs σ = (Z · c′3 s , us3,3 , g s ) together with the additional public information infos , for a random scalar s ∈ Zp . • Verif(pkBS , (c, infoc , infos ), σ = (σ1 , σ2 , σ3 )): In order to check the validity of the signature, one first computes c′3 as above, and then checks whether the following pairing equations are verified: e(σ1 , g) = e(h, pkBS ) · e(c′3 , σ3 ) and e(σ2 , g) = e(u3,3 , σ3 ). If it is not the case, then this is not a valid signature on the original ciphertext, and the blind signature is set as Σ = ⊥. • UnblindBS ((r1 , r2 , r3 ), pkBS , (c, infoc , infos ), σ): If the previous tests are positive, one can use the random coins r1 , r2 , r3 to get back a valid signature on M kinfoc kinfos : σ ′ = (σ1′ = σ1 /(σ3r1 +r2 σ2r3 ), σ2′ = σ3 ), which is a valid Waters signature. • RandomBS (pkBS , (c, infoc , infos ), σ ′ ; s′ ): The latter can eventually be rerandomized to get Σ = (σ1′ · ′ ′ F(M ||infoc ||infos )s , σ2′ · g s ). One can note that Σ is a random Waters signature on M ||infoc ||infos , where we denote F = F(M ||infoc ||infos ): ′ ′ ′ ′ Σ = (σ1′ · F s , σ2′ · g s ) = (F s · σ1 /(σ3r1 +r2 σ2r3 ), g s · σ3 ) ′ s ′ s+s 3 ) = (F s · Z · c′3 /(g s(r1 +r2 ) usr 3,3 ), g ′ ′ ′ ′ s s(r1 +r2 ) sr3 3 = (F s · Z · g s(r1 +r2 ) usr u3,3 ), g s+s ) = (M s+s · Z, g s+s ) 3,3 · F /(g – Verif BS (pkBS , (M, infoc , infos ), Σ = (Σ1 , Σ2 )): One checks whether the following pairing equations holds (Waters signature): e(Σ1 , g) = e(h, pkBS ) · e(F(M ||infoc ||infos ), Σ2 ). Theorem 5. This signer-friendly partially-blind signature scheme is unforgeable under the CDH assumption in G. Proof. Let us denote PBS our above partially-blind signature (but omit it in the subscripts for clarity). Let us assume there is an adversary A against the unforgeability that succeeds within probability ǫ, we will build an adversary B against the CDH problem. DLin Assumption. The unforgeability means that after qs interactions with the signer, the adversary manages to output qs + 1 valid message-signature pairs on distinct messages. If the adversary A can do that with probability ǫ with the above commitment scheme using a perfectly hiding setting, under the DLin assumption, A can also generate qs + 1 valid message-signature pairs in a perfectly binding setting, with not too small probability ǫ′ . 7 BlindBS pkBS , r r s′ σ(C ′ ) infos r σ(F ′ ) UnblindBS RandomBS A message M can be hidden using random coins r (BlindBS ). The signer can adapt this commitment and concatenate a public message infos into the original commitment, with also the common public information infos , creating a commitment C ′ on F = F (M ||infoc ||infos ). A signature on the plaintext can be obtained using the randomness r (for UnblindBS ); the result is the same as a direct signature on M ||infoc ||infos by the signer. Randomizing this signature is easy, and prevents the signer to actually know which ciphertext was the one involved. C′ skBS , C ′ , infos ; s F(M ) Signer C info SignBS User Verif Figure 1. Partially-Blind Signatures with Perfect Blindness Signer Simulation. Let us thus now consider the above blind signature scheme with a commitment scheme using a perfectly binding setting (named PBS ′ ), and our simulator B can extract values from the commitments since it knows ν and µ. We thus now assume that A is able to break the unforgeability of PBS ′ with probability ǫ′ after qs interactions with the signer. And we build an adversary B against the CDH problem: Let (A = g a , B = g b ) be a CDH-instance in a bilinear group (p, G, GT , e, g). We now generate the global parameters using this instance: for simulating SetupBS /KeyGenBS , B picks a $ $ random position j ← {0, . . . , k}, chooses random indexes y0 , y1 , . . . , yk ← {0, . . . , 2qs −1}, and random scalars $ z0 , z1 , . . . , zk ← Zp . One defines Y = A = g a , h = B = g b , u0 = hy0 −2jqs g z0 , and ui = hyi g zi for i = 1, . . . , k. B also picks two random scalars ν, µ,and generates the Groth-Sahai parameters (u1 , u2 , u3 ) in the perfectly binding setting, and thus with (u1 = (u1,1 = g x1 , 1, g), u2 = (1, u2,2 = g x2 , g), u3 = uν1 ⊙ uµ2 ), for two random scalars x1 , x2 . Note that u3,3 = g ν+µ . It outputs parambs = (p, G, GT , e, g, h, F, u1 , u2 , u3 ); one can note that the signing key is implicitly defined as Z = ha = B a = g ab , and is thus the expected Diffie-Hellman value. To answer a signing query on ciphertext c = (c1 , c2 , c3 ), with the additional proofs, one first checks the proof Π. From the proof Π and the commitment secret parameters x1 , x2 , B can extract M from the bit-by-bit 1 3 2 3 commitments in ΠM , and Y1,2 = Y r1 +r2 , Y3 = Y r3 , from Πr , where c1 = ur1,1 ur3,1 and c2 = ur2,2 ur3,2 . Furtherr3 ′ r +r ′ 1 2 more, we can compute c3 = g u3,3 · F , where we denote M = M ||infoc ||infos and F = F(M ||infoc ||infos ). B defines X X H = −2jqs + y0 + yi Mi′ , J = z0 + zi Mi′ : F = hH g J . i If H ≡ 0 (mod p) then B aborts, otherwise it sets i 1/x1 1/x2 s c2 )) , (Y −1/H g s )ν+µ , Y −1/H g s ). σ = (Y −J/H (Y1,2 Y3ν+µ )−1/H (F (c1 Defining s̃ = s − a/H, we have 1/x1 1/x2 s c2 )) σ1 =Y −J/H (Y1,2 Y3ν+µ )−1/H (hH g J (c1 σ3 =Y −1/H g s = Y −1/H g s̃+a/H = g s̃ σ2 =(σ3 )ν+µ = g (ν+µ)s̃ = us̃3,3 It thus exactly looks like a real signature sent by the signer. = Z · (c′3 )s̃ 8 Diffie-Hellman Extraction. After at most qs signing queries A outputs qs + 1 valid Waters signatures. Since there are more than the number of signing queries, there is a least one message M ∗ that is different from all the messages M ||infoc ||infos involved in the signing queries. We define X X ∗ ∗ H ∗ = −2jqs + y0 + yi Mi∗ , J ∗ = z0 + zi Mi∗ : F(M ∗ ) = hH g J . i i ∗ ∗ If H ∗ 6≡ 0 (mod p) then B abort, otherwise, for some s∗ , σ ∗ = (ha F(M ∗ )s , g s ) = (ha g s ∗ σ1∗ /(σ2∗ )J = ha = g ab : one has solved the CDH problem. ∗J ∗ ∗ , g s ). Then, Success Probability. (Based on [14]) The Waters hash function is (1, qs )-programmable (i.e., we can find with non negligible probability a case where qs intermediate hashes are not√null, and the last one is), therefore the ⊔ ⊓ previous simulation succeeds with non negligible probability (Θ(ǫ/qs k)), and so B breaks CDH. Theorem 6. This signer-friendly partially-blind signature scheme achieves perfect blindness. Proof. The transcript sent to the signer contains a commitment on the message to be signed, but in a perfectly hiding setting: no information leaks about M . The additional proofs are perfectly witness-indistinguishable and thus do not provide any additional information about M . This is due to the fact that in the Groth Sahai framework in the perfectly hiding setting, for any message M , committed with randomness r and a message M ′ , one can find random r′ such that c(M, r) = c(M ′ , r′ ). Granted the randomizability of the Waters signature, the final output signature is a random signature on M ||infoc ||infos , on which no information leaked, and so the resulting signature is perfectly independent from the transcript seen by the signer, and any adversary. ⊔ ⊓ 4 4.1 Multi-Source Blind Signature Concatenation The previous constructions lead to a good way to allow a user to obtain a signature on a plaintext without revealing it to the signer. But what happens when the original message is in fact coming from various users? We now present a new way to obtain a blind signature without requiring multiple users to combine their messages, providing once again a round-optimal way to achieve our goal. We thus consider a variation of our blind signature scheme. In the Setup phase we no longer create perfectly hiding Groth-Sahai generators, but perfectly binding parameters, so we do not need to compute us3,3 to run Unblind, since it will be performed with the decryption key and not the random coins. In addition, in this scenario, we do not consider a unique user providing a ciphertext, but several users. As a consequence, the signer will have to produce a signature on a multi-source message, provided as ciphertexts. The signature and the messages will actually be encrypted under a third-party key. The third-party only will be able to extract the message and the signature. Basically the instantiation is similar to the previous ones in the perfectly binding setting. For the sake of clarity, we remove the partially-blind part, but of course it could be adapted in the same way. A full instantiation of such protocol and its security analysis can be found in the Appendix D. One can see that it can be efficiently instantiated under DLin assumption. 4.2 Addition The previous scheme presents a way to combine multiple blind messages into one in order to sign it. However it requires a huge number of generators and the final unblinded signature gives a lot of information on the repartition of the original messages, since they are simply concatenated. We now want to improve the previous 9 BlindBS pkBS , ri ri Signer Ci skBS , C1 , . . . , Cn ; s Fi T s′ σ( Q F) dkBS σ( UnblindBS RandomBS Q SignBS User i Ci ) Several messages Mi can be hidden using random coins ri (BlindBS ) by different users. The signer can adapt these commitments and concatenate the Q messages inside them, creating a commitment on F = Fi . A signature on the plaintext can be obtained by the tallier using the decryption key dkBS (for UnblindBS ); the result is the same as a direct signature on ||Mi by the signer. Randomizing this signature is easy, and prevent the signer from knowing which ciphertexts were involved. Verif Figure 2. Multi-Source Blind Signature on Concatenation scheme to drastically reduce the public key size, and the information leaked about the individual messages when one would like a signature on some computation on these messages, such as the addition or the mean. Instead of signing the concatenation of the messages, we now allow the users to use the same generators, and thus the messages will add together instead of concatenating. $ The resulting algorithm is the same as before except the Setup phase where u = (u0 , . . . , uk ) ← Qduring m Gk+1 . We then proceed as before considering F(Mi ) = ℓ uℓ i,ℓ . The Unblind algorithm now returns a valid signature on the sum of the messages. The various Groth-Sahai proofs help to ensure that the messages given to the Waters hash function are of reasonable size. With this construction, the exponents in the Waters hash function are not longer bits but belong to a larger alphabet (e.g. {0, . . . , t} if t users sign only bit strings). Following the work done in [14], we will show in the next section that over a non-binary alphabet the Waters function remains (1, poly)-programmable as long as the size of the alphabet a polynomial in the security parameter. This result readily implies the security of the multi-source blind signature scheme for addition: Theorem 7. This multi-source blind signature scheme for addition is blind and unforgeable under the DLin assumption as long the alphabet size and the number of sources are polynomial in the security parameter. 5 Non-Binary Waters Function Programmability In this section, we prove that for a polynomial-size alphabet, the Waters function remains programmable. We recall some notations introduced in [14] and show our result which can be seen as an improvement over the result presented by Naccache [16] where he considered a variant of Waters identity-based encryption [20] with shorter public parameters. 5.1 Definitions Let us recall some basic definitions. A family of cyclic groups G = (Gλ )λ∈N , indexed by a security parameter λ, is called a group family. A group hash function H for G, an alphabet Σ = Σ(λ) and an input length ℓ = ℓ(λ) is a pair of probabilistic polynomial-time algorithms (PHF.Gen, PHF.Eval) such that: – PHF.Gen takes as input a security parameter λ and outputs a key κ – PHF.Eval takes as input a key κ output by PHF.Gen and a string X ∈ Σ ℓ and outputs an element of Gλ . 10 Definition 8 (cf. [14]). A group hash function (PHF.Gen, PHF.Eval) is (m, n, δ)-programmable, if there exist two PPT algorithms (PHF.TrapGen, PHF.TrapEval) such that – Syntactics: For g, h ∈ G, PHF.TrapGen(1λ , g, h) generates a key κ′ and a trapdoor t such that PHF.TrapEval(t, X) produces integers aX , bX for any X ∈ Σ ℓ – Correctness: For all generators g, h ∈ G, all (κ′ , t) ← PHF.TrapGen(1λ , g, h) and all X ∈ Σ ℓ , Hκ′ (X) := PHF.Eval(κ′ , X) satisfies Hκ′ (X) = g aX hbX where (aX , bX ) := PHF.TrapEval(t, X). – Statistically close trapdoor keys: For all generators g, h ∈ G2 , the functions PHF.Gen(1λ ) and PHF.TrapGen(1λ , g, h) output keys κ and κ′ statistically close. – Well-distributed logarithms: For all generators g, h ∈ G, all (κ′ , t) output by PHF.TrapGen(1λ , g, h) and all bit-strings (Xi )1,...,m , (Zi )1,...,n ∈ Σ ℓ such that ∀i, j, Xi 6= Zj , we have Pr[aX1 = . . . , aXm = 0 ∧ aZ1 · . . . · aZn 6= 0] ≥ δ, where the probability is taken over the random coins used by PHF.TrapGen and (aXi , bXi ) := PHF.TrapEval(t, Xi ) and (aZi , bZi ) := PHF.TrapEval(t, Zi ). 5.2 Instantiation with Waters function Let us consider the Waters function presented in [20]. Definition 9 (Multi-Generator PHF). Let G = (Gλ ) be a group family, and ℓ = ℓ(λ) a polynomial. We define F = (PHF.Gen, PHF.Eval) as the following group hash function: $ – PHF.Gen(1λ ) outputs κ = (h0 , . . . , hℓ ) ← Gℓ+1 ; Q – PHF.Eval(κ, X) parses κ and X = (x1 , . . . , xℓ ) ∈ {0, 1}ℓ and outputs Fκ (X) = h0 ℓi=1 hxi i . √ This function was shown to be (1, q, δ)-programmable with a δ = O(1/(q ℓ)) and (2, 1, δ)-programmable with a δ = O(1/ℓ) (cf. [14]). However this definition requires to generate and store n + 1 group generators where n is the bit-length of the messages one wants to hash. We consider a more general case where instead of hashing bit-per-bit we decide to hash blocks of bits. Definition 10 (Improved Multi-Generator PHF). Let G = (Gλ ) be a group family, Σ = {0, . . . , τ } a finite alphabet and ℓ = ℓ(λ) a polynomial. We define F = (PHF.Gen, PHF.Eval) as the following group hash function: $ – PHF.Gen(1λ ) returns κ = (h0 , . . . , hℓ ) ← Gℓ+1 ; Q – PHF.Eval(κ, X) parses κ and X = (x1 , . . . , xℓ ) ∈ Σ ℓ and returns F + κ (X) = h0 ℓi=1 hxi i . Using a larger alphabet allows to hash from a larger domain with a smaller hash key, but it comes at a price since one can easily prove that the function is no longer (2, 1)-programmable (i.e., no longer (2, 1, δ) programmable for a non-negligible δ): Theorem 11 ((2,1)-Programmability). For any group family G with known order and τ > 1, the function F + is not a (2,1)-programmable hash function if the discrete logarithm problem is hard in G. Proof. Consider a discrete logarithm challenge (g, h) in a group Gλ and suppose by contradiction that the function F + is (2, 1)-programmable with τ ≥ 2 (i.e., we suppose that there exist two probabilistic polynomialtime algorithms (PHF.TrapGen, PHF.TrapEval) satisfying the definition 8 for a non-negligible δ). For any hash key κ′ and trapdoor t generated by PHF.TrapGen(1λ , g, h), we can consider the messages X1 = (2, 0), X2 = (1, 1), Z = (0, 2) and with non-negligible probability over the random coins used by PHF.TrapGen we have aX1 = aX2 = 0 and aZ 6= 0 where (aX1 , bX1 ) := PHF.TrapEval(t, X1 ), (aX2 , bX2 ) := PHF.TrapEval(t, X2 ) and (aZ , bZ ) := PHF.TrapEval(t, Z). By the correctness property, we have g aZ hbZ = h0 h22 = h2bX2 /hbX1 and we can extract the discrete logarithm of g in base h as follows: logh (g) = 2bX2 − bX1 − bZ aZ mod |Gλ |. ⊔ ⊓ 11 However we still have the interesting property: Theorem 12 ((1,poly)-Programmability). For any polynomial q and a group family √ G with groups of known order, the function F + is a (1, q, δ)-programmable hash function with a δ = Ω(1/τ q ℓ). Remark 13. This theorem improves the result presented by Naccache in [16] where the lower bound on the (1, q, δ)-programmability was only δ = Ω(1/τ qℓ). Remark 14. In order to be able to sign all messages in a set M, we have to consider parameters τ and ℓ such that τ ℓ ≥ #M, but the security is proved only if the value δ is non-negligible (i.e. if ℓ = λO(1) and τ = λO(1) ). In particular if M is of polynomial size in λ (which is the case in our WSN application with data aggregation), one can use τ = #M and ℓ = 1 (namely, the Boneh-Boyen hash function), and therefore get data confidentiality. Proof. Let us first introduce some notations. Let n ∈ N∗ , let Aj be independent and uniform random variables p in {−1, 0, 1} (for j ∈ {1, . . . , n}). If we denote 2σj2 their quadratic moment, we have 2σj2 = 2/3 and σj = 1/3. P We note s2n = nj=1 σj2 = n/3. The Local Central Limit Theorem. Our analysis relies on a classical result P on random walks, called the Local Central Limit Theorem. It basically provides an approximation of Pr[ Aj = a] for independent random variables Aj . This is a version of the Central Limit Theorem in which the conclusion is strengthened from convergence of the law to locally uniform pointwise convergence of the densities. It is worded as follows in [9, Theorem 1.1 ], where φ and Φ are the standard normal density and distribution functions: Theorem 15. Let Aj be independent, integer-valuedPrandom variables where Aj has probability Pn mass function min(f (k), f (k + 1)) and Q = fj (for j ∈ N∗ ). For each j, n ∈ N∗ , let q(fj ) = j j n k j=1 q(fj ). Denote Sn = A1 + · · · + An . Suppose that there are sequences of numbers (αn ), (βn ) such that 1. limn→∞ Pr[(Sn − αn )/βn ) < t] = Φ(t), −∞ < t < ∞, 2. βn → ∞, 3. and lim sup βn2 /Qn < ∞, then supk |βn Pr[Sn = k] − φ((k − αn )/βn )| → 0 as n → ∞1 . While those notations may seem a little overwhelming, this can be easily explained in our case. With Aj ∈ {−1, 0, 1} with probability 1/3 for each value. 1. It requires the variables to verify the Lindeberg-Feller theorem. However as long as the variables verify the Lindeberg’s condition2 , this pis true for βn = sn and αn = 0. 2. In our application, βn = sn = n/3, so again we comply with the condition. 3. Since fj (k) is simply the probability that Aj equals k, then q(fj ) = 2/3. This leads to Qn = 2n/3. As a consequence, βn2 /Qn = 1/2. So we have: supk |βn Pr[Sn = k] − φ((k − αn )/βn )| → 0, that is, in our case p p sup | n/3 Pr[Sn = k] − φ(k/ n/3)| → 0. k √ √ We solely focus on the case k = 0: since φ(0) = 1/ 2π, Pr[Sn = 0] = Θ(1/ n). In addition, it is clear that Pr[Sn = k] ≤ Pr[Sn = 0] for any k 6= 0 (c.f. [14]). 1 2 The so-called Berry-Esseen theorem gives the rate of convergence of this supremum. Lindeberg’s condition is a P sufficient criteria of the Lindeberg-Feller theorem, for variables with a null expected value it requires p 2 2 that ∀ǫ > 0, limn→∞ 1/s2n n E[A · 1 ] → 0. In our case, as soon as n > 3/ǫ , we have |A | ≤ 1 ≤ ǫ n/3 ≤ ǫsn , so j {|A |>ǫs } j n j j=1 the sum is null. (1{|Aj |>ǫsn } is the indicator function of variables greater that ǫsn ) 12 Lemma 16. Let (Aij )[[1,n]]×[[1,J]] be independent, integer-valued random variables in {−1, 0, 1}, then ∀X ∈ √ P P [[1, τ ]]n , Pr[ ni=1 Jj=1 Xi Aij = 0] = Ω(1/τ nJ), where the probability distribution is over the Aij . This lemma will be useful to prove the lower bound in the following, we only consider word with no null coefficient Xi , if a Xi is null, we simply work with a shorter random walk of length J · (n − 1) instead of Jn. Proof. Let us denote dij , the random variable defined as Xi Aij : they are independent, integer-valued random P P P variables. As above, s2n = ni=1 Jj=1 σj2 = ni=1 JXi2 /3. So nJ/3 ≤ s2n ≤ nτ 2 J/3. 1. The Lindeberg’s condition is verified. As soon as n > 3τ /Jǫ2 we have ǫsn > τ and so |dij | < sn , and so once again the sum is null. 2. sn → ∞. P 3. Each dij ∈ {−Xi , 0, Xi } with probability 1/3 for each value, so q(fij ) = 2/3 and Qn = i,j q(fij ) = 2nJ/3. So βn2 /Qn ≤ (nτ J/3)/(2nJ/3) ≤ τ /2 < ∞. P P Then we can apply the Local Central Limit Theorem to the dij ’s, and conclude: Pr[ ni=1 Jj=1 Xi Aij = 0] = p Θ(1/sn ) = Θ(1/τ (nJ). ⊔ ⊓ P In the following, we will denote a(X) = ni=1 ai Xi , where X ∈ {0, . . . , τ }n . The probabilities will be over the aij ’s variables while X and Y are assumed to be chosen by the adversary. Our goal is to show that even for bad choices of X and Y , a random draw of aij ’s provides enough freedom. Let J = J(λ) be a positive function. We define the following two probabilistic polynomial-time algorithms (PHF.TrapGen, PHF.TrapEval): – PHF.TrapGen(1λ , g, h): which chooses some independent and uniform elements (aij )(0,...,ℓ),(1,...,J) in {−1, 0, 1}, P and random group exponents (bi )(0,...,ℓ) . It sets ai = Jj=1 aij and hi = g ai hbi for i ∈ {0, . . . , ℓ}. It then outputs the hash key κ = (h0 , . . . , hℓ ) and the trapdoor t = (a0 , b0 , . . . , aℓ , bℓ ). P – PHF.TrapEval(t,PX): which parses X = (X1 , . . . , Xℓ ) ∈ Σ ℓ = {0, . . . , τ }ℓ and outputs aX = a0 + ai Xi and bX = b0 + bi Xi . As this definition verifies readily the syntactic and correctness requirements, we only have to prove the two other ones. We stress the importance of the hardwired 1 in front of a0 this allows us to consider multisets P X ′ = 1 :: X and Y ′ = 1 :: Y , and so there is no k such that X ′ = kY ′ . And we also stress that ai = Jj=1 aij is already a random walk of length √ J (described by the aij ), on which we can apply the Local Central Limit Theorem and so Pr[ai = 0] = Θ(1/ J). By noticing that summing independent random walks is equivalent to a longer one and applying the Local Central Limit Theorem, we have: p √ Θ(1/τ (ℓ + 1)J) ≤ Pr[a(X ′ ) = 0] ≤ Θ(1/ J). To explain further the two bounds: P – For the upper bound: we consider X fixed, and note t = ℓi=1 ai Xi , by construction ai are independent, so a0 is independent from t then √ Pr[a(X ′ ) = 0] = Pr[a0 = −t] ≤ Pr[a0 = 0] ≤ Θ(1/ J) using the above remark that a random walk is more likely to reach 0 than any other value, and a0 is a random walk of length J. – For the lower bound, we proceed by recurrence on ℓ, to show p Hℓ : Θ(1/τ (ℓ + 1)J) ≤ Pr[a(X ′ ) = 0] (where X ′ ∈ 1 :: [[0, τ ]]ℓ ). √ √ For ℓ = 0, we consider X ′ = 1, we have a random walk of length J, so Θ(1/τ J) ≤ Θ(1/ J) ≤ Pr[a(X ′ ) = 0]. We note X0 = 1 for the hardwired 1 in X ′ . Let us suppose the property true at rank k, let us prove it at rank k + 1: 13 • If ∃i0 , Xi0 = 0 then we p can consider a random √ walk of length k and apply the previous step, and conclude because Θ(1/τ (k + 1)J) ≤ Θ(1/τ kJ) • Else, one can apply Lemma 16 to p conclude. Therefore, ∀ℓ, ∀X ′ ∈ 1 :: [[0, τ ]]ℓ , Θ(1/τ (ℓ + 1)J) ≤ Pr[a(X ′ ) = 0]. √ We can now deduce that ∀X, Y ∈ [[0, τ ]]ℓ with X 6= Y : Pr[a(Y ′ ) = 0|a(X ′ ) = 0] ≤ Θ(1/ J). This can easily be seen by noting i0 the first index where Yi 6= Xi . We will note X̄ ′ = X ′ − Xi0 , in the following we will use the fact that a(X ′ ) = 0 ⇔ a(X̄ ′ ) = −ai0 Xi0 .3 Pr[a(Y ′ ) = 0|a(X ′ ) = 0] ≤ Pr[a(Y ′ ) = a(X ′ )|a(X ′ ) = 0] ≤ Pr[Yi ai + a(Y¯′ ) = Xi ai + a(X̄ ′ )|a(X ′ ) = 0] 0 0 0 0 ≤ max Pr[(Yi0 − Xi0 )ai0 = t|a(X̄ ′ ) = −Xi0 ai0 ] (1) ≤ max Pr[ai0 = t′ |a(X̄ ′ ) = s] ′ (2) ≤ max Pr[ai0 = t′ ] ′ (3) t s,t t √ ≤ Pr[ai0 = 0] ≤ Θ(1/ J) (1) we start with (Yi0 − Xi0 )ai0 = a(X̄ ′ ) − a(Y¯′ ), and then consider the maximum probability for all values a(X̄ ′ ) − a(Y¯′ ). (2) We consider the maximum probability for all values of −Xi0 ai0 . (3) ai0 and a(X̄ ′ ) are independent. Hence, for all X1 , Y1 , . . . , Yq , we have Pr[aX1 = 0 ∧ aY1 , . . . , aYq 6= 0] = Pr[aX1 = 0] Pr[aY1 , . . . , aYq 6= 0|aX1 = 0] √ ≥ Θ(1/τ ℓJ) 1 − q X i=1 Pr[aYi = 0|aX1 = 0] √ √ ≥ Θ(1/τ ℓ + 1J)(1 − qΘ(1/ J)). ! 2 Now we set J = √ q , to obtain the result. In that case the experiment success is lower-bounded by something ⊔ ⊓ linear in 1/(qτ ℓ + 1). Acknowledgments This work was supported in part by the European Commission through the ICT Program under Contract ICT-2007-216676 ECRYPT II. References 1. Masayuki Abe, Georg Fuchsbauer, Jens Groth, Kristiyan Haralambiev, and Miyako Ohkubo. Structure-preserving signatures and commitments to group elements. In CRYPTO 2010, LNCS, pages 209–236. Springer, August 2010. 2. Masayuki Abe and Eiichiro Fujisaki. How to date blind signatures. In ASIACRYPT 1996, volume 1163 of LNCS, pages 244–251. Springer, November 1996. 3. Masayuki Abe and Tatsuaki Okamoto. Provably secure partially blind signatures. In CRYPTO 2000, volume 1880 of LNCS, pages 271–286. Springer, August 2000. 4. Olivier Blazy, Georg Fuchsbauer, David Pointcheval, and Damien Vergnaud. Signatures on randomizable ciphertexts. In PKC 2011, volume 6571 of LNCS. pages 403–422, Springer, 2010. 3 X 6= Y so i0 exists, and thanks to the hardwired 1 we do not have to worry about Y ′ being a multiple of X ′ 14 5. Olivier Blazy, David Pointcheval, and Damien Vergnaud. Round-optimal privacy-preserving protocols with smooth projective hash functions. In TCC 2012, volume 7194 of LNCS, pages 94–111, Springer, 2012. 6. Dan Boneh, Xavier Boyen, and Hovav Shacham. Short group signatures. In CRYPTO 2004, volume 3152 of LNCS, pages 41–55. Springer, August 2004. 7. Xavier Boyen and Brent Waters. Compact group signatures without random oracles. In EUROCRYPT 2006, volume 4004 of LNCS, pages 427–444. Springer, May / June 2006. 8. David Chaum. Blind signatures for untraceable payments. In CRYPTO 1982, pages 199–203. Plenum Press, New York, USA, 1983. 9. Burgess Davis and David McDonald. An elementary proof of the local central limit theorem. Journal of Theoretical Probability, 8(3), jul 1995. 10. Marc Fischlin. Round-optimal composable blind signatures in the common reference string model. In CRYPTO 2006, volume 4117 of LNCS, pages 60–77. Springer, August 2006. 11. Georg Fuchsbauer. Commuting signatures and verifiable encryption and an application to non-interactively delegatable credentials. Cryptology ePrint Archive, Report 2010/233, 2010. 12. Sanjam Garg, Vanishree Rao, Amit Sahai, Dominique Schröder, and Dominique Unruh. Round optimal blind signatures. In CRYPTO 2011, pages 630–648. Springer, August 2011. 13. Jens Groth and Amit Sahai. Efficient non-interactive proof systems for bilinear groups. In EUROCRYPT 2008, volume 4965 of LNCS, pages 415–432. Springer, April 2008. 14. Dennis Hofheinz and Eike Kiltz. Programmable hash functions and their applications. In CRYPTO 2008, volume 5157 of LNCS, pages 21–38. Springer, August 2008. 15. Steve Lu, Rafail Ostrovsky, Amit Sahai, Hovav Shacham, and Brent Waters. Sequential aggregate signatures and multisignatures without random oracles. In EUROCRYPT 2006, volume 4004 of LNCS, pages 465–485. Springer, 2006. 16. David Naccache. Secure and practical identity-based encryption. Cryptology ePrint Archive, Report 2005/369, 2005. 17. Tatsuaki Okamoto. Efficient blind and partially blind signatures without random oracles. In TCC 2006, volume 3876 of LNCS, pages 80–99. Springer, March 2006. 18. David Pointcheval and Jacques Stern. Security arguments for digital signatures and blind signatures. Journal of Cryptology, 13(3):361–396, 2000. 19. Jae Hong Seo and Jung Hee Cheon. Beyond the limitation of prime-order bilinear groups, and round optimal blind signatures. In TCC 2012, volume 7194 of LNCS, pages 133–150. Springer, 2012. 20. Brent R. Waters. Efficient identity-based encryption without random oracles. In EUROCRYPT 2005, volume 3494 of LNCS, pages 114–127. Springer, May 2005. A Blind Signatures Definition 17 (Blind Signature Scheme). BS = (SetupBS , KeyGenBS , hS, Ui, Verif BS (pkBS , m, σ)) where – SetupBS (1λ ), where λ is the security parameter, generates the global parameters parambs of the system; – KeyGenBS (parambs ) generates a pair of keys (pkBS , skBS ); – Signature Issuing: this is an interactive protocol between the algorithms S(skBS ) and U (pkBS , m), for a message m ∈ {0, 1}n . It generates an output σ for the user: σ ← hS(skBS ), U (pkBS , m)i. – Verif BS (pkBS , m, σ) outputs 1 if the signature σ is valid with respect to m and pkBS , 0 otherwise. The security of a blind signature scheme is defined through two different notions, blindness and unforgeability. An adversary U against the unforgeability tries to generate qs + 1 valid signatures after at most qs complete interactions with the honest signer. The blindness condition is, on the other hand, linked to the signer. It states that a malicious signer S ∗ should be unable to decide which of two messages m0 , m1 has been signed first in two executions with an honest user U . In the following we note σb the signature on mb . If S ∗ refuses to sign one of the input (i.e. σi = ⊥), then the two resulting signatures are set to ⊥, therefore he cannot have any advantage if he decides to prevent the normal game execution and he has to sign both inputs. We also define an unforgeability notion, which slightly differs from the original one [18], in the sense that we do not exclude malleability since we will eventually use randomizable signature. We thus count the number of distinct signed messages, which should not be larger than the number of interactions with the signer, whereas the initial definition counted the number of distinct message-signature pairs: BS is unforgeable if, for any polynomial adversary U ∗ (malicious user), the advantage Succuf BS,U ∗ (λ) is negligible, 15 bl b ExpBS,S ∗ (λ) (pkBS , m0 , m1 , stFIND ) ← S ∗ (FIND, 1λ ); b ← {0, 1}; 1 1 stISSUE ← S ∗h·,U (pkBS ,mb )i ,h·,U (pkBS ,m1−b )i (ISSUE, stFIND ); IF σ0 = ⊥ OR σ1 = ⊥, (σ0 , σ1 ) ← (⊥, ⊥); b∗ ← S ∗ (GUESS, σ0 , σ1 , stISSUE ); IF b = b∗ RETURN 1 ELSE RETURN 0. Figure 3. Blindness for blind signatures Expuf BS,U ∗ (λ) (parambs ) ← SetupBS (1λ ); (pkBS , skBS ) ← KeyGenBS (parambs );  qs (m1 , σ1 ), . . . , (mqs +1 , σqs +1 ) ← U ∗S (skBS ,·) (pkBS ); IF ∃i 6= j, mi = mj OR ∃i, Verif BS (pkBS , mi , σi ) = 0 RETURN 0 ELSE RETURN 1 Figure 4. Unforgeability for blind signatures (One-More Forgery) uf where Succuf BS,U ∗ (λ) = Pr[ExpBS,U ∗ (λ) = 1], in the security game presented in Figure 4. In this experiment, the qs adversary U ∗ can interact qs times with the signing oracle S(skBS , ·) (hence the notation U ∗ S (skBS ,·) (pkBS )) to execute the blind signature protocol: the adversary should not be able to produce more signatures on distinct messages than interactions with the signer. Our relaxation from the original One-More Forgery security comes from the fact that we will come up with randomizable signatures: from a message-signature pair, one can generate many signatures on the same message. B Security Games of User-Friendly Partially Blind Signatures bl b ExpPBS,S ∗ (λ) (pkBS , m0 , m1 , stFIND , infoc , infos ) ← S ∗ (FIND, 1λ ); b ← {0, 1}; 1 1 stISSUE ← S ∗h·,U (pkBS ,mb )i ,h·,U (pkBS ,m1−b ,infoc ,infos )i (ISSUE, stFIND ); IF σ0 = ⊥ OR σ1 = ⊥, (σ0 , σ1 ) ← (⊥, ⊥); b∗ ← S ∗ (GUESS, σ0 , σ1 , stISSUE ); IF b = b∗ RETURN 1 ELSE RETURN 0. Figure 5. Blindness for User-Friendly Partially Blind signatures b PBS is blind if, for any polynomial adversary S ∗ (malicious signer), the advantage Succbl PBS,S ∗ (k) is bl negligible, where Succbl PBS,S ∗ (k) = | Pr[ExpPBS,S ∗ (k) = 1] − 1/2|, in the security game presented in Figure 5. If S ∗ refuses to sign one of the input (i.e. σi = ⊥), then the two resulting signatures are set to ⊥, therefore he cannot have any advantage if he decides to prevent the normal game execution and he has to sign both inputs. S ∗ is able to chose both pieces of the public information, in the real case the signer can abort as long as the user’s public information doesn’t suit him, however the public information should be the same on both challenged message. 16 Expuf PBS,U ∗ (λ) (parambs ) ← SetupBS (1λ ); (pkBS , skBS ) ← KeyGenBS (parambs );  qs (m1 , infoc,1 , infos,1 , σ1 ), . . . , (mqs +1 , infoc,qs +1 , infos,qs +1 , σqs +1 ) ← U ∗S (skBS ,·) (pkBS ); IF ∃i 6= j, (mi , infoc,i , infos,i ) = (mj , infoc,j , infos,j ) OR ∃i, Verif BS (pkBS , mi , infoc,i , infos,i , σi ) = 0 RETURN 0 ELSE RETURN 1 Figure 6. Unforgeability for User-Friendly Partially Blind signatures (One-More Forgery) PBS is unforgeable if, for any polynomial adversary U ∗ (malicious user), the advantage Succuf PBS,U ∗ (λ) uf uf is negligible, where SuccPBS,U ∗ (λ) = Pr[ExpPBS,U ∗ (λ) = 1], in the security game presented in Figure 6. In this experiment, the adversary U ∗ can interact qs times with the signing oracle S(skBS , ·) (hence the notation qs U ∗ S (skBS ,·) (pkBS )) to execute the user-friendly partially blind signature protocol: the adversary should not be able to produce more signatures on distinct tuple (m, infoc , infos ) than interactions with the signer. Once again we consider the adversary has full control over the public information. C Building Blocks First, let us briefly sketch the basic building blocks: Groth-Sahai commitments, and a variation of the Waters signature. They both need a pairing-friendly environment (p, G, GT , e, g), where e : G × G → GT is an admissible, non-degenerated, bilinear map, for two groups G and GT , of prime order p, generated by g and gt = e(g, g) respectively. From the following descriptions, it is clear that the different primitives are randomizable. Groth-Sahai Commitments. In the following, several group elements will have to be committed so that proofs can be done on them. We will use perfectly hiding Groth-Sahai commitments: The commitment parameter is of the form (u1 = (u1,1 = g x1 , 1, g), u2 = (1, u2,2 = g x2 , g), u3 = (u3,1 , u3,2 , u3,3 )) ∈ (G3 )3 . – To commit a group element X ∈ G, one chooses three random scalars r1 , r2 , r3 ∈ Zp and sets C(X) := 2 3 3 1 3 · ur3,1 , c2 = ur2,2 · ur3,2 , c3 = X · g r1 +r2 · ur3,3 (c1 = ur1,1 ). – To commit a scalar x ∈ Zp , one chooses two random scalars γ1 , γ2 ∈ Zp and sets (where ⊙ is the 2 1 · uγ1,1 , c′2 = component-wise multiplication) C ′ (x) := (ux3,1 , ux3,2 , (u3,3 g)x ) ⊙ uγ11 ⊙ u3γ2 = (c′1 = ux+γ 3,1 x+γ2 2 ′ · g x+γ1 ). ux+γ 3,2 , c3 = u3,3 A Groth Sahai proof will be a vector of group elements constructed to help the commitments to verify a pairing equation derived from the one verified by the associated plaintext. The idea is that with a regular initialization of the commitment parameters (u3 = uν1 ⊙ uµ2 , for two random scalars ν, µ ∈ Zp ), these commitments are perfectly binding and thus the proofs will be perfectly sound. The committed group elements can even be ′ 1/x 1/x extracted if one knows x1 , x2 : c3 /(c1 1 c2 2 ) = X, and c′3 /(c′1 1/x1 c′2 1/x2 ) = g x . However, if u3 is defined as u3 = uν1 ⊙ uµ2 ⊙ (1, 1, g −1 ) = (u3,1 = uν1,1 , u3,2 = uµ2,2 , u3,3 = g ν+µ−1 ), for two random scalars ν, µ ∈ Zp , the commitments are perfectly hiding and thus the proofs will perfectly hide the witnesses used in the instantiations. However the two parameter initializations being indistinguishable under the DLin assumptions, we will be able to use the perfectly binding setting in some simulations for the security proofs, whereas the real situation will use the perfectly hiding setting. Waters Signature. The Waters signature scheme was formally described in [20]. It has been proven existentially unforgeable against chosen-message attacks under the CDH assumption. 17 – Setup(1λ ): The scheme is defined over a bilinear group (p, G, GT , e, g). The parameters are a randomly $ $ k+1 chosen generator h ← G, and a vector Q Mi(u0 , . . . , uk ) ← G , those define the Waters function F such that for a message M, F(M ) = u0 ui . We set param := (p, G, GT , e, g, h, (u0 , . . . , uk )). $ – SKeyGen(param): Choose a random scalar y ← Zp , which defines vk = Y = g y , and sk = Z = hy . $ – Sign(sk, M ; s): To sign a message M = (M1 , . . . , Mk ) ∈ {0, 1}k , choose s ← Zp and define σ = σ1 =  Z · F(M )s , σ2 = g s . ? – Verif(vk = Y, M, σ): Check whether e(g, σ1 ) = e(Y, h) · e(F(M ), σ2 ). We also use another useful result on the Waters signature (like used in [15]): Property 18 (Randomizability). The Waters signature scheme is randomizable: for a valid pair (M, σ), if we ′ ′ define σ ′ = (σ1 · F(M )s , σ2 · g s ), for a random scalar s′ , σ ′ is a random signature of M . Proof. If the initial signature has been generated with s as random, the modified signature corresponds to the signature of M with s + s′ as random coins. Since this scalar lies in the group Zp , it leads to a perfectly random signature of M . ⊔ ⊓ Suffixed Waters Signatures. We will use Waters signatures, however instead of signing one message, we will sign, with the same additional parameters, a concatenation of 3 messages: m = M ||infoc ||infos = (M1 , . . . , Mℓ , info1 , . . . , infof ) ∈ {0, 1}k D Multi-Blind Signature: Concatenation With the previous building blocks, we will sign several commitments of Fi = Fi (Mi ), instead of the standard (U , S) interactions we now have three main kind of users, Ui , the user i will blind a commitment on Fi (Mi ), S who signs the blinded message, and T the tallier who will verify/unblind/randomize this signature: – SetupBS (1λ ): In a pairing-friendly environment (p, G, GT , e, g), the algorithm outputs a vector $ u = (u0 , (ui,1 , . . . , ui,λ )1≤i≤j ) ← Gjk+1 $ where k is a polynomial in λ, and a generator h ← G. We define Fi (Mi ) = $ Q mi,ℓ ℓ ui,ℓ . – KeyGenBS (parambs ): Choose x ← Zp , which defines pkBS = Y = g x , and skBS = Z = hx and generates a pair of perfectly-binding Groth-Sahai generators, which define a decryption key dkBS = (x1 , x2 ) composed of two scalars. – (Ui , S, T ): • BlindBS (M, pkBS ; (r1 , r2 , r3 )) (where we omit the subscripts i): For a message M ∈ {0, 1}k and random scalars in Zp , define the commitment c = C(F(M )) = (c1 , c2 , c3 ). We also add, as before, proofs of validity of this commitment: ∗ A proof ΠM of knowledge of M in c, the encrypted F(M ), which consists of a bit-by-bit commitment CM = (C ′ (M1 ), . . . , C ′ (Mk )) and proofs that each committed value is a bit. A proof that c3 is well-formed i.e.c is a double linear encryption of the message M committed in CM . ∗ A proof Πr containing the commitments Cr = (C(Y r1 +r2 ), C(Y r3 )) together with proofs asserting that they are well-formed. • SignBS (skBS , (c = (c1,i , c2,i , c3,i ), Πi )1≤i≤j ; s): To sign several commitments, first check if they are valid with respect to the proofs and afterQ some randomization of those commitments, compute QΠ’s, Q the global commitment C = ( c1,i , c2,i , u0 c3,i ) which is still verifiable thanks to the previous (randomized) proofs, and then output C = (C1 , C2 , C3 ) and σ = (C1s , C2s , Z · C3s ; g s ). 18 • Verif(pkBS , (C = (C1 , C2 , C3 )), σ = (σ1 , σ2 , σ3 ; σ4 )): In order to check the validity of the signature, one checks whether the following equations are verified: e(σ1 , g) = e(C1 , σ4 ), e(σ2 , g) = e(C2 , σ4 ), and e(σ3 , g) = e(h, pkBS ) · e(C3 , σ4 ) • UnblindBS (dkBS , pkBS , (c = (C1 , C2 , C3 ), Π, σ)): On a valid signature, knowing the decryption key (x1 , x2 ), one can obtain F = F(M ), and extract the message M from the bit-by-bit commitments. 1/x 1/x One can also extract the corresponding valid signature: σ ′ = (σ1′ = σ3 /(σ1 1 σ2 2 ), σ2′ = σ4 ), which is a valid Waters signature on the concatenation of the messages. ′ ′ • RandomBS (pkBS , M, σ ′ ; s′ ): The latter can eventually be rerandomized to get Σ = (σ1′ ·F(M )s , σ2′ ·g s ). – Verif BS (pkBS , M, σ = (σ1 , σ2 )): In order to check the validity of the signature, one checks whether: ? e(σ1 , g) = e(h, pkBS )e(F(M ), σ2 ). Theorem 19. This multi-source blind signature scheme for concatenation is blind and unforgeable under the CDH and DLin assumptions: no adversary can generate more message-signature pairs on distinct messages, than the number of interactions with the signer. It directly follows from the previous result, combining the different partial Waters hashes into a global one does not weaken the security as we are still using single exponents on the ui elements. Groth-Sahai proofs are in the perfectly binding setting to guarantee that each user really outputs Waters hash of their message on their generators and so no strange collision may occur and alter the final message. E Asymmetric Version All the previous schemes can be updated to work in asymmetric groups. The main, and only difference, comes from the Groth-Sahai commitments. As symmetric bilinear groups are in general less efficient than asymmetric groups, we show how to instantiate our primitive with Groth-Sahai commitments in an asymmetric pairing-friendly group setting, relying on the SXDH assumption. E.1 Assumptions The security of Waters signatures in asymmetric bilinear groups was proven under the following variant of the CDH assumption, which states that CDH is hard in G1 when one of the random scalars is also given as an exponentiation in G2 . Definition 20 (The Advanced Computational Diffie-Hellman problem (CDH+ )). Let us be given two (multiplicative) groups (G1 , G2 ) of prime order p with (g1 , g2 ) as respective generators and e an admissible bilinear map G1 × G2 → GT . The CDH+ assumption states that given (g1 , g2 , g1a , g2a , g1b ), for random a, b ∈ Zp , it is hard to compute g1ab . ElGamal encryption is secure under the DDH assumption. Since Groth-Sahai commitments are basically double ElGamal encryption, we assume SXDH, defined below. Definition 21 (Decisional Diffie-Hellman Assumption (DDH)). Let G be a cyclic group of prime order p. The DDH assumption states that given (g, g a , g b , g c ) ∈ G, it is hard to determine whether c = ab. Definition 22 (Symmetric external Diffie-Hellman Assumption (SXDH) [6]). Let G1 , G2 be cyclic groups of prime order, e : G1 × G2 → GT be a bilinear map. The SXDH assumption states that the DDH assumption holds in both G1 and G2 . 19 E.2 Groth-Sahai Commitments As above, several elements will have to be committed so that proofs can be done on them. We will use SXDHbased Groth-Sahai commitments, which are a direct transposition of the previous ones in an asymmetric setting and replace double linear encryption by a double ElGamal one. Proofs. This time, a Groth-Sahai proof, is a pair of elements (π, θ) ∈ G12×2 ×G2×2 2 . As above, we will note hxi1 for a committed scalar x in G1 , hxi2 for a committed scalar x in G2 ,or hXi for a committed group element X. One has to pay attention to the fact that Groth-Sahai bit-by-bit proofs in SXDH require bits to be committed both in G1 and G2 and thus require to use 2 quadratic equations by bit. E.3 Asymmetric Partially-Blind Signature with Perfect Blindness The construction is really straightforward. If we follow the steps from the DLin-version: We will need 2 group elements for the commitment of M in G1 , 4 group elements to commit Y1 , Y2 in G1 , the proofs will require 4 group elements in G2 . We will need 6ℓ elements in each group to commit M and prove we indeed committed it bit-by-bit, and 2 extra group elements in G2 to prove c2 is well-formed. The signatures on the committed elements will require 3 groups elements in G1 and one in G2 . Therefore the overall scheme will require (6ℓ + 9, 6ℓ + 7) group elements communication.