Author

Topic: BIP39 : les 24 mots, le checksum (Read 166 times)

hero member
Activity: 2618
Merit: 838
June 28, 2020, 11:41:27 AM
#3
Merci pour l'astuce ! Smiley
legendary
Activity: 2590
Merit: 2348
June 28, 2020, 09:13:31 AM
#2
En fait, on peut le faire avec la page de iancoleman mais il y a un petite "astuce". Il faut d'abord rentrer 24 mots et ça corrige le 24eme en le transformant en checksum valide.
Pour que l'astuce fonctionne :


Concrètement, après avoir saisi la seed sur le premier écran, il faut cliquer sur Show entropy details



On peut voir alors le rang des mots dans le dictionnaire(Word Indexes), et l'encodage sur 11bits de ce rang(Raw Binary).
Binary Checksum donne les bits de checksum. Si on les accole avec le dernier groupe de bits de Raw Binary, on peut constater que l'on obtient bien un groupe de 11bits correspondant au dernier "word index" qui est le mot corrigé.
Ici 0000101 0010 <-> 82 <-> apart  





Cf BIP39 pour comprendre comment ce checksum est calculé ou pour le faire soi-même à la main https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki#generating-the-mnemonic
Quote
Generating the mnemonic

The mnemonic must encode entropy in a multiple of 32 bits. With more entropy security is improved but the sentence length increases. We refer to the initial entropy length as ENT. The allowed size of ENT is 128-256 bits.

First, an initial entropy of ENT bits is generated. A checksum is generated by taking the first ENT / 32 bits of its SHA256 hash.
This checksum is appended to the end of the initial entropy. Next, these concatenated bits are split into groups of 11 bits, each encoding a number from 0-2047, serving as an index into a wordlist. Finally, we convert these numbers into words and use the joined words as a mnemonic sentence.
The following table describes the relation between the initial entropy length (ENT), the checksum length (CS) and the length of the generated mnemonic sentence (MS) in words.

CS = ENT / 32
MS = (ENT + CS) / 11

 |  ENT  | CS | ENT+CS |  MS  |
+-------+----+----------+---- -+
 |  128  |  4   |   132     |  12   |
 |  160  |  5   |   165     |  15   |
 |  192  |  6   |   198     |  18   |
 |  224  |  7   |   231     |  21   |
 |  256  |  8   |   264     |  24   |
hero member
Activity: 2618
Merit: 838
June 28, 2020, 05:42:37 AM
#1
Je voudrais une fonction qui me permette de générer le 24 ème mot (chekcksum) à partir des 23 premiers mots ?

Ou mieux un site web qui permette de le faire ? Malheureusement, le site https://iancoleman.io/bip39/ ne le permet pas.

L'idée est de créer une liste de 24 mots à partir de deux listes de 12 mots que j'ai déjà mémorisées. Donc je prends 12 mots de la première liste, 11 mots de la seconde et il me reste à calculer le 24 ème mot...

Bon évidemment je pourrais me contenter d'une liste de 12 mots qui offre une sécurité suffisante. Mais il semble que l'utilisation de 24 mots (plus une passphrase) soit en train de devenir la méthode standard.

Et en informatique, j'ai toujours cherché à coller aux standard...

J'aime l'idée de mémoriser les 24 mots (même s'il faut aussi une sauvegarde par exemple dans un coffre en banque, la mémoire pouvant être défaillante). Avec l'Etat de plus en plus totalitaire qu'ils nous font, il ne faut pas exclure que l'on soit un jour obligé de passer la frontière sans avoir le temps de passer à la banque. Wink
Jump to: