Aller au contenu
ecdsa.com

Signatures BLS

Des signatures fondées sur les couplages (Boneh, Lynn et Shacham, 2001), courtes, déterministes et nativement agrégeables, utilisées surtout par le consensus de preuve d’enjeu d’Ethereum sur la courbe BLS12-381.
Autres graphiesBLSBoneh–Lynn–ShachamBLS12-381 signatures

Une signature vaut σ = sk·H(m), où H hache le message vers un point de la courbe (RFC 9380), et la vérification contrôle l’équation de couplage e(σ, g) = e(H(m), pk). Des signatures portant sur des messages quelconques peuvent être additionnées en un seul point ; vérifier un agrégat coûte un couplage par message distinct, plus un. Sur BLS12-381, la variante « clé publique minimale » utilisée par Ethereum a des clés publiques de 48 octets et des signatures de 96 octets ; la variante « signature minimale » inverse les groupes.

Le schéma est spécifié dans l’Internet-Draft draft-irtf-cfrg-bls-signature du CFRG de l’IRTF ; la couche de consensus d’Ethereum (depuis le lancement de la Beacon Chain le 1er décembre 2020) utilise la suite cryptographique BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_POP_. Agréger des signatures portant sur le même message exige une preuve de possession pour chaque clé, afin d’empêcher les attaques par clé malveillante (rogue-key). Parmi les autres utilisateurs figurent Filecoin, Chia et la balise d’aléa drand, qui repose sur des signatures BLS à seuil.

BLS ne figure dans aucune norme du NIST, sa vérification coûte environ deux couplages (des millisecondes plutôt que des microsecondes) et, comme toute la cryptographie fondée sur les couplages, il est cassé par l’algorithme de Shor.

Normes et références

Tous les termes