Chapter status: ✅ in good shape ✅

Related puzzles: Puzzle 1

TODO:

  • add details about hashing into groups
  • write a more rigorous game-based proof for BLS
  • write the security proof for aggregate BLS signatures

BLS Signatures

The BLS signature scheme was proposed by Boneh, Lynn, and Shacham [BLS01] (see also the corresponding journal paper [BLS04] and the IETF draft) and was one of the first applications of pairings to cryptography (shortly after tripartite Diffie-Hellman and identity-based encryption). Note that the BLS initialism can refer to two different things in cryptography: Boneh-Lynn-Shacham signatures discussed in this chapter and Barreto-Lynn-Scott curves, a family of pairing-friendly elliptic curves. It is possible to implement BLS (signatures) on BLS (curves).

Contents

Description of BLS

For the general syntax and the EUF-CMA security definition, refer to the corresponding chapter.

Let be a pairing group setup algorithm. The BLS signature scheme is defined as follows:

  • The algorithm, on input the security parameter runs and draws a random generator of It also specifies a hash function mapping bit strings to group elements in The public parameters consist of the tuple

  • The key generation algorithm draws a random scalar and computes the point on curve the secret key is and the public key is

  • The signature algorithm on input a secret key and a message computes the point on curve the signature is

  • The verification algorithm, on input a public key a message and a signature returns 1 (i.e., declares the signature valid) if otherwise it returns 0 (invalid signature).

A good way to think about BLS signatures is as follows: given a message with corresponding point in the signature of is the point such that the discrete logarithm of in base is equal to the discrete logarithm of in base (that is, the secret key This is reminiscent of the Chaum-Antwerpen undeniable signature scheme [CA89]. Checking discrete logarithm equality is exactly what the pairing enables to do efficiently.

Note that the signature algorithm is deterministic and hence always returns the same signature for a given secret key/message pair; this is called a unique signature scheme.

The roles of and can be swapped, in which case public keys are in and signatures in (recall that bit string representations of elements are larger and arithmetic is less efficient for than for so the choice depends on what is more important to optimize depending on the use case). In that case, the hash function must have outputs in and hence this is not possible with a type-2 pairing.

The scheme is correct, meaning that for every key pair possibly output by the key generation algorithm and every message the signature computed by the signature algorithm is declared valid by the verification algorithm. Indeed, hence Eq. (17.1) is satisfied.

Security of BLS

Security Proof

The BLS scheme is provably EUF-CMA-secure assuming the so-called co-CDH problem is hard for and modeling the hash function as a random oracle. The co-CDH problem for two groups and of order is defined as follows: given random generators and of and respectively, and for and a random group element compute This might be thought of as CDH in with additional "hint"

Theorem 17.1. Assume that the co-CDH problem is hard for Then the BLS signature scheme is EUF-CMA-secure in the random oracle model for More precisely, for any adversary against the EUF-CMA security of BLS making at most random oracle queries and signature queries, there exists an adversary for the co-CDH problem running in time similar to the time of and such that

Proof

Let be an adversary against the EUF-CMA security of BLS making at most random oracle queries and signature queries. From one can easily construct an adversary having the same advantage as and such that (i) always makes the random oracle query before returning its forgery and (ii) makes exactly random oracle queries. From now one, we assume that satisfies properties (i) and (ii).

We construct an adversary for the co-CDH problem as follows. takes as input pairing group parameters and a co-CDH instance with and It runs on input BLS parameters where is the interface to the random oracle (that will simulate) and public key At the beginning of the simulation, draws a random integer and initializes a table for storing answers of the simulated random oracle When makes a random oracle query such that has not been defined yet, either draws and returns if this is the -th query, or returns if this is the -th query. When makes a signing query then:

  • if is undefined, then draws sets and returns the signature note that this signature is valid since
  • if has already been defined, this was necessarily during the query made by if this was the -th query, then returns the signature again, this signature is valid since otherwise, if was defined by the -th query, then aborts the simulation of the game and returns

Eventually, when halts and returns its forgery three cases can occur (recall that by assumption made the random oracle query hence is necessarily defined):

  • if is not a valid forgery (either because was queried to the sign oracle or because the signature is invalid), then returns
  • if is a valid forgery and was defined during the -th query to the random oracle, the returns
  • if is a valid forgery and was defined during the -th query to the random oracle, then returns as solution to the co-CDH instance.

In the third case, one can easily check that is the correct solution since was defined as so that Moreover, conditioned on being successful, the view of is independent from and hence the third case occurs with probability Hence,

This reduction loses a factor roughly in its success probability. One can obtain a better reduction losing a factor by using a slightly more careful strategy for "embedding" the challenge in the random oracle answers, see Section 15.5.1 of the Boneh-Shoup textbook.

Discussion

The various statements and proofs of the security of BLS signatures in the literature can be confusing. The security theorem that we just proved holds for any pairing group setup algorithm. However, depending on the pairing type, it can be rephrased slightly differently.

The original conference paper [BLS01] was only considering symmetric (a.k.a. type-1) pairings (i.e., and proved EUF-CMA security assuming the CDH problem in is hard. Theorem 17.1 implies this specific case since for type-1 pairings, hardness of co-CDH is equivalent to hardness of CDH in as we prove now.

Proposition 17.1. Let be a type-1 pairing group setup algorithm. Then co-CDH CDH.

Proof

One the one hand, co-CDH CDH is trivial. On the other hand, CDH co-CDH can be proved as follows. Let be an algorithm for the co-CDH problem. We construct an algorithm for solving CDH as follows. On input draws a random value and computes and Then and is distributed uniformly in and independently from Hence, is a correctly distributed instance of co-CDH that can pass as input to The solution of this co-CDH instance is also the solution to the original CDH instance. Hence, the advantage of is equal to the advantage of

Later, the journal paper [BLS04] considered asymmetric pairings ( for which an efficiently computable group isomorphism from to is available (i.e., a type-2 pairing) and proved security assuming the co-CDH problem is hard.1 The co-CDH problem is similar to the co-CDH problem except the adversary is only given and and must compute Again, Theorem 17.1 implies this specific case since for type-2 pairings, co-CDH is equivalent to co-CDH.

Proposition 17.2. Let be a type-2 pairing group setup algorithm. Then co-CDH co-CDH.

Proof

On the one hand, co-CDH co-CDH is straightforward. Conversely, one can prove that co-CDH co-CDH as follows. Let be an adversary for the co-CDH problem. We construct an adversary for the co-CDH problem as follows. On input draws a random value and computes and Then and is distributed uniformly in and independently from Hence, is a correctly distributed instance of co-CDH that can pass as input to The solution of this co-CDH instance is also the solution to the original co-CDH instance. Hence, the advantage of is equal to the advantage of

Interestingly, [BLS04] gives an example of type-3 pairing group setup algorithm (i.e., such that no efficiently computable isomorphism from to is known) for which co-CDH is conjectured to be hard but BLS over this pairing group setup algorithm is insecure. Let be a subgroup of order of the multiplicative group let be the additive group and let be defined as Note that DL is easy in which implies that DL in reduces to co-CDH (an algorithm solving co-CDH returns which allows to solve for by computing the discrete log of in base in As DL in is conjectured hard for sufficiently large and co-CDH is conjectured hard for for such parameters as well. Hence, maybe counter-intuitively, hardness of co-CDH does not necessarily imply hardness of DL in ! On the other hand, DL being easy in implies that BLS is not EUF-CMA-secure. This shows the necessity of the stronger co-CDH assumption for proving the security of BLS for type-3 pairings. For type-2 pairings, hardness of co-CDH does imply hardness of DL in (obviously) but also in as shown by the following proposition.

Proposition 17.3. Let be a type-2 pairing group setup algorithm. Then

Proof

That CDH DL is clear. Let us show that co-CDH CDH Let be an algorithm for solving CDH in We construct an algorithm for the co-CDH problem as follows. On input computes and Then is a correctly distributed CDH instance that can pass as input to The solution of this CDH instance is also a solution of the original co-CDH instance. Hence, the advantage of is equal to the advantage of

To finish, we note that hardness of co-CDH is actually equivalent to EUF-CMA-security of BLS (even for a type-3 pairing where no efficiently computable isomorphism is known). Indeed, given an algorithm solving co-CDH one can construct an adversary breaking BLS as follows. Given and a public key makes queries and for an arbitrary message Note that Then it chooses an arbitrary message and queries It runs on input which is a correctly distributed co-CDH challenge, unless which happens with negligible probability. If returns the correct answer to this co-CDH challenge, then is a valid forgery.

This equivalence holds because we considered the "random generator" variant of co-CDH where and are drawn at random. As noted in [CHKM10], for type-3 pairings, it is not known whether breaking EUF-CMA-security of BLS reduces to the "fixed generator" variant of co-CDH where and are fixed (the previous reduction does not work anymore since there is only a negligible chance to "hit" the fixed generator when making queries

The following figure summarizes the above results (a double-arrow between two problems meaning equivalence):

graph TD;
    A(CDH) <-- type-1 --> C(co-CDH*);
    B(co-CDH) <-- type-2 --> C;
    C <-- type-1/2/3 --> D(EUF-CMA-sec of BLS);

Note that the notion of type-1/2/3 pairing was only introduced in 2008 [GPS08], a few years after the journal version of the BLS paper [BLS04]. For more discussion about type-2/type-3 pairings and the consequences of an efficiently computable isomorphism in security proofs of pairing-based schemes, see [SV07], [CHKM10], and [CM09].

Signature Aggregation

BLS signatures have a handy property: they can be aggregated non-interactively [BGLS03]. This means that given signature for respective public key/message pairs it is possible to compute a compact aggregate signature (of size similar to the one of a single signature) that proves that message was signed by the owner of public key for every (exactly as the tuple would).

To turn BLS into an aggregate signature scheme, the aggregate signature for a tuple of signatures is simply defined as the sum of all signatures Note that aggregation can be performed "publicly" by an untrusted party different from all signers. It can also be performed "incrementally", meaning new signatures can be aggregated to an aggregate signature. One can even aggregate aggregate signatures (sic). The only requirement is to keep track of all public key/message pairs the signatures of which have been aggregated.

Given public key/message pairs an aggregate signature is valid for these pairs if Even though the size of the aggregate signature is the complexity of verification still scales linearly with the number of signatures. Correctness of the scheme can be verified similarly to standard BLS signatures.

The EUF-CMA security notion can easily be adapted to aggregate signature schemes: no polynomial-time adversary, being given a target public key and having access to a standard signature oracle for the corresponding secret key (i.e., returning non-aggregate signatures), should be able to return an -tuple of public key/message pairs and an aggregate signature such that:

  • for some
  • was not queried to the signature oracle,
  • is valid for the tuple

Note that the adversary can choose extra public keys as it wishes, in particular as a function of the target public key

BLS aggregate signatures are provably EUF-CMA-secure assuming hardness of the -co-CDH problem and modeling the hash function as a random oracle. There is one caveat though: messages must be distinct, otherwise a so-called rogue key attack is possible. To see why, say the adversary is given a target public key Then it can draw and compute a second public key Now, for any message the adversary can compute a forgery for the pair as This forgery satisfies the verification equation as

Note that the adversary does not know the secret key corresponding to public key hence the name "rogue key attack".

A simple fix against this attack is simply to prepend the public key to the message in the hash function, meaning a signature on message for secret/public key pair is redefined as Then, the condition that messages should be different can safely be lifted [BNN07].

This, however, precludes an interesting optimization of the verification in case all messages are equal.2 Indeed, when Eq. (17.2) simplifies to Hence, on the right hand-side, instead of a product of pairings, we now have to compute a single pairing applied to a sum of elliptic curve points, which can be computed more efficiently.

In order to be able to use (17.3) for verification when messages are equal, a different fix can be used to thwart rogue key attacks. Namely, each user must provide a proof of possession (PoP) of the secret key associated with his public key. The notion of PoP is somewhat informal as, to the best of my knowledge, there is not rigorous definition of the security properties it should have. The idea is that it should demonstrate that the user has access to the functionality associated with his public key, namely signing. Hence, a simple PoP consists of the user signing its own public key, Intuitively, this makes sense since in a rogue key attack, the adversary cannot compute the secret key associated with the rogue public key (which it computes as a function of the target public key). This solution was proved secure assuming the hash function used for the PoP is different from the hash function used for actual message signing, which can be achieved from a single hash function by enforcing domain separation [RY07].

A Note about Non-Repudiation

Non-repudiation is often presented as a logical consequence of existential unforgeability (if no one except Alice can produce a valid signature on message and a valid signature on message is presented to a judge, the judge should conclude that Alice actually did sign message But what if Alice was able to choose her secret/public key pair in a way that allows her to find two messages and and a signature which is valid for both messages, i.e., Then, confronted by the judge with a valid signature for message Alice could claim that she has in fact signed instead. Hence, non-repudiation should rather be seen as the combination of existential unforgeability with a second security notion, often called message biding in the literature, which demands that no malicious user be able to generate a public key two messages and and a signature such that and (17.4) holds.

It is easy to see that standard BLS signatures are message binding if is collision-resistant. Things are more subtle though when considering aggregate signatures [Qua21]. In particular, if users collide (or if a single malicious user controls public keys), they can arrange to choose their public keys such that Then, in the PoP-based variant of the scheme where Eq. (17.3) is used for verification, is a valid signature for any message the scheme is not message binding. Note that checking that in the verification algorithm does not thwart the attack as can be further aggregated with other valid signatures for arbitrary public key/message pairs resulting in an aggregate signature which still does not bound signers to a specific message.

Further Topics to Cover

  • BLS multi-signatures [BDN18]
  • BLS threshold signatures [BL22]
  • use of BLS signatures in the Ethereum beacon chain


1: Somehow confusingly, recent papers tend to use the name co-CDH for what we call co-CDH here.

2: The setting where all users sign the exact same message requires a primitive slightly different from an aggregate signature scheme called a multisignature scheme.