vulnérabilités dans les générateurs aléatoires de portefeuilles logiciels sur ordinateur ou mobile depuis 2009. ▪ L’actualité de l’été à propos du générateur de ColdCard et le vol de 1 800 BTC nous rappelle que cette menace existe toujours. Générer ses clés Bitcoin - 16 septembre 2026 - Renaud Lifchitz 4
mesure la quantité de désordre et d’aléa dans une information ou donnée. Plus il y a d’aléatoire dans une donnée, plus son entropie est importante. Inversement, plus une information est prédictible, plus son entropie est faible. En théorie de l’information, définition mathématique de l’entropie de Shannon : 𝐻(𝑋) = − ∑ 𝑝(𝑥) log2 𝑝(𝑥) 𝑥∈𝒳︀ Pour 𝑛 bits de données, l’entropie est comprise entre 0 et n. Générer ses clés Bitcoin - 16 septembre 2026 - Renaud Lifchitz 5
: $ ent resultat.bin Entropy = 7.983704 bits per byte. Optimum compression would reduce the size of this 10000 byte file by 0 percent. Chi square distribution for 10000 samples is 224.64, and randomly would exceed this value 91.50 percent of the times. Arithmetic mean value of data bytes is 127.3048 (127.5 = random). Monte Carlo value for Pi is 3.171668667 (error 0.96 percent). Serial correlation coefficient is 0.018454 (totally uncorrelated = 0.0). Ici une entropie de 7,98 bits par octet (7,98/8 bits) pour mon générateur aléatoire Linux. ⚠️ Attention, il ne s’agit que de l’entropie brute, pas de la qualité du générateur aléatoire qui sera toujours complexe à obtenir avec un unique échantillon ! Générer ses clés Bitcoin - 16 septembre 2026 - Renaud Lifchitz 7
vraiment placer la qualité d’un générateur aléatoire sur un axe bon/mauvais car il y a plusieurs axes : ▪ Uniformité : chaque résultat a-t-il la même probabilité ? ▪ Indépendance : les résultats successifs sont-ils corrélés ? ▪ Entropie réelle : quelle quantité d’information imprévisible est produite ? ▪ Imprévisibilité cryptographique : un adversaire peut-il prédire les sorties ? ▪ Robustesse : le générateur détecte-t-il les biais et les pannes ? ▪ Reproductibilité : utile en simulation, indésirable pour certains usages de sécurité. Générer ses clés Bitcoin - 16 septembre 2026 - Renaud Lifchitz 8
minimum 256 bits (32 octets) Hachage (ex.: SHA256) Seed 256 bits (32 octets) Passphrase BIP-39 ▪ L’entropie ne fait que diminuer algorithmiquement, donc il faut partir avec plus d’entropie qu’on ne le souhaite à l’arrivée ▪ Il est recommandé d’appliquer l’algorithme de débiaisage de Von Neumann avant hachage (on lit les bits deux par deux et on supprime les doublons “00” et “11” de la séquence de bits et on remplace “01” par “0”, et “10” par “1”). Cela supprime des bits mais améliore l’entropie en supprimant les biais de probabilité entre le 0 et le 1. Générer ses clés Bitcoin - 16 septembre 2026 - Renaud Lifchitz 9
faces produit 𝐻 = log2 6 ≈ 2.6 bits par lancer, ce qui n’est pas très pratique car ce n’est pas un nombre entier. Il est alors plus pratique de travailler en base 6 ▪ Comme pour une pièce, difficile d’avoir un dé équilibré car la quantité de matière par face n’est pas identique à cause de la gravure des points qui retire plus de matière sur certaines faces ▪ La plupart des dés à jouer standards sont industriels et de mauvaise qualité. En particulier ce sont rarement des cubes parfaits mais plutôt des “parallélépipèdes rectangles” (cf. slide suivante), ce qui fait que 4 faces sur 6 sont un peu plus probables. Générer ses clés Bitcoin - 16 septembre 2026 - Renaud Lifchitz 12
les dés ne sont pas le meilleur moyen de fabriquer une seed crypto aléatoire… (Maison Poincaré, Paris) (https://primal.net/e/nevent1qqsz2xffw0h2uv57xssepc0kcdsx5u7385f2f96wknut4zn3f54pdtg4y4pyj) Générer ses clés Bitcoin - 16 septembre 2026 - Renaud Lifchitz 13
cartes mélangé peut fournir log2 (52!) ≈ 225, 6 bits d’entropie. A noter que ce n’est pas un nombre entier non plus… (utilisation correcte complexe de la méthode du rejet) ▪ Il est difficile de bien mélanger un jeu de cartes, la plupart des gens effectuant simplement des coupes avec peu d’enlacement entre les paquets coupés ▪ La règle classique de 7 mélanges ne suffit souvent pas, en pratique on est souvent audessus de 19 mélanges successifs pour avoir un aléa correct ▪ Aussi, éviter le jeu de carte neuf, qui est déjà parfaitement ordonné, donc plus difficile à bien mélanger Générer ses clés Bitcoin - 16 septembre 2026 - Renaud Lifchitz 14
un miroir semi-transparent ▪ Mesure de la polarisation d’un photon depuis une source non cohérente ▪ Mesure d’intrication quantique ▪ Fluctuations du vide quantique ▪ Mesure de la désintégration radioactive d’une particule (expérience de pensée du chat de Schrödinger) ▪ (Bruit électrique amplifié, par exemple avec diode inversée+amplificateur) 👉 L’aléa quantique est démontré comme étant le plus pur possible car non prévisible quel que soit le temps et la puissance de calcul dont on dispose. Générer ses clés Bitcoin - 16 septembre 2026 - Renaud Lifchitz 16
https://quantumnumbers.anu.edu.au/ (gratuit sur inscription) ▪ CURBy - CU Randomness Beacon : https://random.colorado.edu/ ▪ qrandom : https://qrandom.io/ (vérifiable) ⚠️ A ne pas utiliser pour des seeds Bitcoin réelles : le site peut conserver les clés générées, ou un malware peut se loger sur le serveur ou sur votre poste ! NIST Boulder laboratories Générer ses clés Bitcoin - 16 septembre 2026 - Renaud Lifchitz 18
universelle en ligne (IBM, Azure Quantum, …) peut aussi générer des nombres quantiques en utilisant le principe de superposition : |0〉 𝐻 Bit aléatoire ⚠️ Attention aux biais de mesure/calibration, toujours utiliser un débiaisage+hachage des mesures et pas les 256 bruts pour une seed ⚠️ Même remarque que précédemment si pas en local et hors-ligne chez vous 😉 Générer ses clés Bitcoin - 16 septembre 2026 - Renaud Lifchitz 19
S’est un peu démocratisé (commercialisation aux entreprises surtout) ▪ ID Quantique, société suisse, est la première à en commercialiser en 2001, gamme Quantis (aujourd’hui les produits USB ne sont plus vendus, seuls les puces ou produits PCIe subsistent) ▪ La société britannique Crypta Labs commercialise des clés USB QRNG abordables (https://cryptalabs.com/product/cicada-usb-qrng/, ≈ £200) Cicada QRNG - 500Kb/s USB QRNG hardware device Générer ses clés Bitcoin - 16 septembre 2026 - Renaud Lifchitz 20
du QRNG : $ ent random50000.bin Entropy = 7.995810 bits per byte. Optimum compression would reduce the size of this 50000 byte file by 0 percent. Chi square distribution for 50000 samples is 289.81, and randomly would exceed this value 6.61 percent of the times. Arithmetic mean value of data bytes is 127.7852 (127.5 = random). Monte Carlo value for Pi is 3.130685227 (error 0.35 percent). Serial correlation coefficient is -0.007481 (totally uncorrelated = 0.0). Générer ses clés Bitcoin - 16 septembre 2026 - Renaud Lifchitz 22
très bien générer des clés… Rappel : La dernière faille Coldcard était dûe au wallet qui n’utilisait pas le générateur matériel (Secure Element) mais une bibliothèque logicielle à la place… A aucun moment il n’y a eu de bug ou d’anomalie du matériel, il s’agit d’un bug purement logiciel #PEBKAC Avantages : ▪ Les clés ne touchent jamais un ordinateur ou un logiciel potentiellement vérolés ▪ Les clés sont sauvegardées dans un coffre quasi-inviolable, le Secure Element ▪ Si vous avez un Secure Element (SE) de score au moins EAL 5+, vous avez une sécurité similaire à une carte bancaire (et pour l’instant, on ne peut pas débiter arbitrairement le compte de quelqu’un d’autre avec sa carte bancaire !) Générer ses clés Bitcoin - 16 septembre 2026 - Renaud Lifchitz 25
de score au moins EAL 5+ passent les tests cryptographiques d’aléa les plus exigeants, dits CSPRNG “Cryptographically Secure Pseudo-Random Number Generator” (ex.: NIST SP 800-90B “Recommendation for the Entropy Sources Used for Random Bit Generation”, https://csrc.nist.gov/pubs/sp/800/90/b/final) Outils Linux de tests cryptographiques d’aléa, du plus simple au plus complet (peut nécessiter plusieurs gigas de nombres aléatoires) : ▪ ent ▪ randtests ▪ rngtest ▪ dieharder Générer ses clés Bitcoin - 16 septembre 2026 - Renaud Lifchitz 26
supérieur n’ont jamais été pris en défaut sur la génération de clés aléatoires ou de protection des clés privées contre les attaques ▪ Le meilleur aléa possible est l’aléa quantique, qui est démontré pur ▪ Le moins bon aléa est l’algorithme logiciel (exemple de l’IA qui préfère le nombre 17, comme l’homme ) ▪ La meilleure génération aléatoire ne vient pas d’une unique source (dés), mais de plusieurs bonnes sources ▪ Pour générer vos clés à partir de sources d’entropie diverses : https://github.com/hybridsole/bitcoinentropy-tools 😅 Retrouvez moi sur Nostr : [email protected] 👉 Questions & discussion ! Générer ses clés Bitcoin - 16 septembre 2026 - Renaud Lifchitz 28