Protocoles de génération distribuée de clés
Découvrez les protocoles DKG permettant à plusieurs parties de générer ensemble une clé partagée, sans qu’aucune ne connaisse le secret complet.
Protocoles de génération distribuée de clés est une leçon Cryptology Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cryptology Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cryptology Academy comprend 4 leçons au total.
Objectif et motivation du DKG
La génération distribuée de clés (DKG) résout le problème du distributeur de confiance en cryptographie à seuil. Sans DKG, une partie centrale doit générer la paire de clés et distribuer les parts, tout en connaissant momentanément la clé privée complète. Le DKG permet à n parties de générer conjointement une paire de clés publique et privée au moyen d'un protocole dans lequel aucune partie ne découvre la clé privée, pas même le coordinateur du protocole.
DKG de Pedersen (1991)
Le DKG de Pedersen a été le premier protocole DKG pratique, publié en 1991. Chacune des n parties génère un secret aléatoire s_i et exécute un protocole de partage de secret vérifiable (VSS) pour le partager. Chaque partie diffuse des engagements sur les coefficients de son polynôme. Une fois que toutes les parties ont partagé leurs contributions, le secret combiné correspond à la somme de toutes les valeurs s_i, et chaque partie détient une part de cette somme.
VSS de Feldman comme brique de base
Le VSS de Feldman (partage de secret vérifiable de Feldman, 1987) est la brique de base de la plupart des protocoles DKG. Le distributeur s'engage sur les coefficients du polynôme sous forme d'éléments du groupe (C_j = g^{a_j} mod p). Chaque partie qui reçoit une part f(i) peut la vérifier par rapport à ces engagements, en vérifiant que g^{f(i)} est égal au produit de C_j^{i^j}. Les parties peuvent ainsi détecter si le distributeur a envoyé des parts incorrectes.
DKG Joint-Feldman et limites
Le DKG Joint-Feldman exécute en parallèle le VSS de Feldman pour les n parties, chacune agissant comme distributeur de son propre secret. Les parties émettent ensuite une réclamation lorsqu'elles reçoivent des parts invalides. La clé finale est la somme des secrets des distributeurs n'ayant fait l'objet d'aucune réclamation. Cependant, le DKG Joint-Feldman ne résiste pas aux adversaires adaptatifs qui corrompent des parties en fonction des messages du protocole, une faiblesse mise en évidence par Gennaro, Jarecki, Krawczyk et Rabin.
DKG sécurisé de GJKR
Le protocole DKG de GJKR (Gennaro, Jarecki, Krawczyk, Rabin, 1999 et 2007) a remédié aux faiblesses de Joint-Feldman. GJKR utilise le VSS de Pedersen, qui fournit des engagements masqués au sens de la théorie de l'information, au lieu du VSS de Feldman, et ajoute des tours de réclamation pendant lesquels les parties peuvent contester les parts invalides. Le DKG obtenu résiste aux adversaires adaptatifs et est devenu la référence théorique standard pour les DKG sécurisés.
Tours de communication du DKG
Le DKG de GJKR nécessite trois tours : le tour des engagements, durant lequel chaque partie diffuse les engagements du VSS ; le tour de partage, durant lequel les parties s'envoient leurs parts de pair à pair ; et le tour de réclamation, durant lequel elles diffusent des réclamations concernant les parts invalides. Les parties qui ne parviennent pas à résoudre les réclamations sont exclues. Un quatrième tour regroupe les contributions des parties valides pour former la clé publique finale et les parts de clé privée distribuées.
DKG pour les clés de validateurs d'Ethereum
La gestion des clés de validateurs d'Ethereum utilise le DKG pour la technologie de validateurs distribués (DVT). EIP-4844 et l'écosystème DVT (Obol Network, SSV Network) utilisent des signatures BLS à seuil sur BLS12-381 pour permettre à des comités de validateurs de signer des blocs sans qu'un opérateur unique connaisse la clé complète du validateur. Cela améliore la tolérance aux pannes des validateurs et réduit le risque de pénalisation en cas de compromission de clé.
Balise d'aléa distribué DRAND
DRAND est une balise d'aléa distribuée utilisée par la chaîne beacon d'Ethereum pour générer des nombres aléatoires imprévisibles. DRAND exécute un DKG entre un ensemble de nœuds de la League of Entropy (Cloudflare, EPFL, Protocol Labs, etc.) afin de générer une clé BLS à seuil. À chaque tour, t nœuds sur n contribuent par des signatures partielles qui sont combinées en une valeur aléatoire imprévisible. Aucun nœud unique ne peut influencer ni prévoir le résultat.
DKG pour Schnorr comparé à ECDSA
Le DKG est beaucoup plus simple pour les schémas Schnorr/EdDSA à seuil que pour l'ECDSA. Dans les schémas Schnorr à seuil, la clé privée distribuée est simplement la somme des secrets des parties (x = x1 + x2 + ... + xn), et la clé publique est la somme des parts de clé publique (X = X1 + X2 + ... + Xn). Pour l'ECDSA, la non-linéarité signifie que le DKG doit produire des parts multiplicatives, ce qui nécessite des protocoles plus complexes.
Protocoles de renouvellement des parts de clé
Des parts de clé à longue durée de vie peuvent être progressivement compromises si un adversaire corrompt lentement des parties au fil du temps. Le partage de secret proactif, au moyen de protocoles de renouvellement, réaléatoirise périodiquement les parts sans modifier la clé sous-jacente. Après un renouvellement, les parts antérieures à celui-ci sont inutilisables, ce qui limite la fenêtre de vulnérabilité. GJKR et ses dérivés incluent des protocoles de renouvellement qui reprennent la même structure que le DKG initial.
Implémentations pratiques du DKG
Le DKG est implémenté dans plusieurs systèmes de production. Le client DVT d'Ethereum Obol Charon utilise une cérémonie DKG fondée sur le VSS de Pedersen sur BLS12-381. Silent Shard de Silence Laboratories utilise le DKG pour des portefeuilles MPC mobiles. La bibliothèque dkg-go implémente GJKR pour les applications Go. Threshold Network, anciennement Keep Network, utilise le DKG pour son service ECDSA à seuil, qui sécurise tBTC sur Bitcoin.
Quiz sur le DKG de Pedersen
Quelle propriété essentielle rend le DKG de Pedersen supérieur à une configuration reposant sur un distributeur de confiance unique ?
Récapitulatif des protocoles DKG
Le DKG élimine le distributeur de confiance en permettant aux n parties de générer conjointement une paire de clés à seuil, sans qu'aucune partie ne connaisse la clé privée. Dans le DKG de Pedersen, chaque partie exécute un VSS sur sa contribution. GJKR ajoute une sécurité contre les adversaires adaptatifs grâce à des tours de réclamation. Le DKG est au fondement de la technologie DVT d'Ethereum (Obol, SSV), de la balise d'aléa DRAND et des configurations de portefeuilles MPC en production. Les protocoles de renouvellement renforcent la sécurité en réaléatoirisant périodiquement les parts.
Questions Fréquemment Posées
La leçon « Protocoles de génération distribuée de clés » est-elle gratuite ?
Oui — le texte complet de « Protocoles de génération distribuée de clés » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cryptology Academy, passe à CoddyKit PRO. Le cours Cryptology Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Protocoles de génération distribuée de clés » ?
Découvrez les protocoles DKG permettant à plusieurs parties de générer ensemble une clé partagée, sans qu’aucune ne connaisse le secret complet. Tu pratiques Cryptology Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cryptology Academy ?
Aucune expérience préalable n'est requise. Cryptology Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Protocoles de génération distribuée de clés » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cryptology Academy ?
Oui. Chaque leçon Cryptology Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Schémas de signatures à seuil : concepts
- ECDSA à seuil : signature multipartite
- Protocoles de génération distribuée de clés
- Schémas à seuil dans les chaînes de blocs et les HSM