Les briques · 6 min · démo interactive
Clé privée, clé publique : comment ça marche
Ton wallet ne contient pas de pièces. Il contient un nombre secret, et tout le reste, clé publique et adresses, en découle par un calcul que tu vas lancer ici.
L’idée en une phrase
Une clé privée est un très grand nombre secret ; la clé publique en découle par un calcul facile à faire dans un sens et impraticable à inverser.
Sur Bitcoin et Ethereum, ce nombre fait 256 bits. Il y a environ 1,16 × 1077 valeurs possibles, ce qui suffit pour que deux personnes qui tirent au hasard ne tombent jamais sur la même. Tu peux donc créer une clé hors ligne, sans demander la permission à personne, et sans inscription.
La démo
Mode éducatif Ne jamais utiliser pour de vrais fonds. Tout s’exécute dans ton navigateur, rien n’est envoyé ni conservé.
Clé valide. Tout ce qui suit est recalculé à partir d'elle.
Clé publique compressée (33 octets)
Le point sur la courbe
Adresse Ethereum (Keccak-256, 20 derniers octets)
Adresse Bitcoin classique (P2PKH, Base58Check)
Adresse Bitcoin SegWit (P2WPKH, Bech32)
Sans JavaScript, voici un cas de référence vérifiable partout : la clé privée 1 donne le point générateur de la courbe, dont le x commence par 79be667e, l'adresse Ethereum 0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf et l'adresse Bitcoin 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH. Cette clé est publique, donc tout ce qui arrive sur ces adresses est aussitôt raflé par des robots.
Pourquoi ça compte
Tu veux recevoir un paiement. Tu donnes ton adresse à l'expéditeur, comme un numéro de compte. Mais aucune banque ne vérifie ton identité au moment de dépenser : le réseau exige seulement une preuve que tu connais le nombre secret lié à cette adresse. Ce nombre est le seul titre de propriété.
Conséquence directe : celui qui lit ta clé privée possède tes fonds, et si tu la perds, personne ne peut la réinitialiser. Comprendre comment elle produit une adresse, c'est comprendre ce qu'il faut protéger, et ce que tu peux montrer sans risque.
Le code
Voici le calcul complet avec la bibliothèque noble, celle de la démo. Remplace 1n par 2n ou par n'importe quel nombre, puis relance : les adresses n'ont plus aucun rapport avec les précédentes.
Clique sur Lancer pour exécuter ce code dans ton navigateur.
Ce qui se passe vraiment
Le premier champ de la démo est la clé : un nombre, rien de plus. Pour qu'il soit valide, il doit être compris entre 1 et n − 1, où n est le nombre de points de la courbe, légèrement inférieur à 2256. Saisis soixante-quatre fois f et le générateur refuse.
La ligne suivante est le passage à la clé publique. La courbe s'appelle secp256k1, d'équation y² = x³ + 7, calculée modulo un nombre premier. Ses points s'additionnent selon une règle géométrique précise. On part d'un point fixe, le générateur G, et on calcule k × G, k étant ta clé privée. Grâce aux doublements successifs, environ 256 doublements et autant d'additions au plus suffisent, même pour un nombre gigantesque.
Le retour est une autre affaire. Retrouver k à partir de k × G s'appelle le problème du logarithme discret. La meilleure attaque connue demande de l'ordre de 2128 opérations. On parle de sécurité de 128 bits, bien que la clé en fasse 256.
Clique sur « Clé + 1 ». Les compteurs montrent que seuls quelques bits ont changé dans la clé, et environ 128 sur 256 dans la coordonnée x. Des clés voisines donnent des points sans ressemblance visible : la position du résultat ne dit rien sur la distance parcourue. C'est pour cela qu'on ne peut pas s'approcher progressivement de la bonne clé.
La clé publique tient en 33 octets car y se déduit de x : l'équation laisse deux solutions, et le préfixe 02 ou 03 indique laquelle est la bonne. Viennent ensuite les adresses, qui sont des hash de la clé publique :
- Ethereum applique Keccak-256 à x et y, puis garde les 20 derniers octets. Le mélange de majuscules et de minuscules vient d'EIP-55 et détecte les fautes de frappe.
- Bitcoin applique SHA-256 puis RIPEMD-160 à la clé compressée, soit 20 octets. Le format P2PKH, qui commence par 1, ajoute une somme de contrôle en Base58. Le format P2WPKH, qui commence par bc1q, encode les mêmes 20 octets en Bech32.
Le même nombre donne donc plusieurs adresses valides. La démo simplifie sur un point : un vrai wallet ne dérive pas ses adresses Bitcoin et Ethereum de la même clé. Il part d'une seed phrase et calcule une clé différente par chaîne et par adresse.
Dans la vraie vie
La clé privée sert à une seule chose : produire des signatures numériques. Quand tu envoies une transaction, ton wallet la signe et diffuse la signature. La clé elle-même ne quitte jamais l'appareil, et c'est tout l'intérêt d'un hardware wallet, qui signe dans une puce isolée.
Une adresse se partage sans danger : elle n'est qu'un hash, et la clé publique reste elle-même inexploitable en l'état des connaissances. Elle n'est pas pour autant anonyme, car toutes ses transactions sont visibles par tous, pour toujours.
Sur Bitcoin, le réseau voit la clé publique quand tu dépenses, car le script exige qu'elle corresponde au hash de l'adresse. Sur Ethereum, elle se recalcule à partir de la signature. Dans les deux cas, personne n'a jamais besoin de ton accord pour t'envoyer des fonds. Tes UTXO sont simplement verrouillés sur le hash de ta clé.
L'aléa est la vraie source de sécurité. Le navigateur fournit ici des octets issus de son générateur cryptographique, et la bibliothèque s'assure que le nombre obtenu reste dans le bon intervalle. Si l'aléa est faible, toute la solidité mathématique ne sert à rien.
Ce qui peut mal tourner
- Générer une clé avec un mauvais aléa. En 2013, un défaut du générateur aléatoire d'Android a permis de voler des bitcoins détenus sur des wallets mobiles. En 2022, l'outil Profanity, qui fabriquait des adresses personnalisées, s'est révélé ne partir que d'une graine de 32 bits : ses clés pouvaient être retrouvées.
- Choisir soi-même son nombre. Une clé dérivée d'une date, d'une phrase ou d'un petit entier est dans les listes des robots. Les clés 1, 2 ou 3 sont surveillées en continu.
- Saisir une vraie clé sur un site. Celui-ci compris. Une page web malveillante peut l'envoyer ailleurs sans que tu le voies. Cette démo est un outil pédagogique, et aucune clé qui en sort ne doit recevoir de fonds.
- Confondre clé publique et clé privée. Une assistance qui te demande ta clé privée « pour vérifier ton compte » est une arnaque, sans exception. Voir le phishing crypto.
- Stocker la clé en clair. Capture d'écran, note synchronisée, gestionnaire de presse-papiers : tout ce qui voyage dans le cloud peut fuiter.
- Ignorer le risque quantique à long terme. Un ordinateur quantique assez puissant pourrait résoudre le logarithme discret avec l'algorithme de Shor. Aucune machine actuelle n'en est capable, mais les clés publiques déjà exposées seraient alors les premières visées.
Teste-toi
Contenu éducatif. Pas un conseil en investissement. Les crypto-actifs comportent un risque de perte en capital. Pour la démarche éditoriale, voir à propos. Mise à jour : 31 octobre 2026.