479 / 736BIT-H

Entropy Bit

Bits d’entropie : l’incertitude qui reste à l’attaquant

Un lancer secret d’une pièce équilibrée représente un bit d’entropie. Cet exemple explique aussi pourquoi 256 bits stockés ne signifient pas forcément 256 bits de véritable secret.

Le bit d’entropie est une unité qui décrit l’incertitude lors de la recherche d’une valeur secrète. Si deux résultats sont aussi probables et que l’attaquant ignore lequel s’est produit, cela représente un bit d’entropie. Quatre possibilités équiprobables donnent deux bits ; seize en donnent quatre. Ce n’est pas le nombre de bits qu’un fichier ou une clé occupe en mémoire.

Une pièce équilibrée donne la même chance à ses deux faces. Un lancer secret a deux résultats possibles ; deux lancers indépendants en ont quatre ; quatre lancers en ont seize. Chaque lancer indépendant supplémentaire double le nombre de suites possibles et ajoute un bit d’entropie. C’est ce qu’exprime H = log2(N) : pour N possibilités équiprobables, on obtient le nombre de bits. Avec 16 possibilités, cela fait 4 bits. L’égalité des probabilités est une condition importante, comme nous le verrons plus loin. [1] [2]

Au lieu de relancer la pièce, prenez un seul résultat et écrivez-le 256 fois. La suite fera 256 bits, mais il n’y aura toujours que deux possibilités : uniquement des zéros ou uniquement des uns. Le secret n’a toujours que 1 bit d’entropie. La répétition n’a créé aucun nouveau choix indépendant. Le même problème peut être moins visible lorsque des mesures sont liées. On ne peut donc pas simplement multiplier l’entropie estimée d’un échantillon par leur nombre sans vérifier leur indépendance. [1]

Une même valeur peut s’écrire avec des chiffres habituels, des mots ou en notation hexadécimale. Cette dernière utilise des chiffres et les lettres de A à F : elle représente simplement le nombre autrement, sans créer de nouveau secret. Un hash, c’est-à-dire une empreinte des données calculée par une fonction donnée, n’ajoute pas non plus de possibilités inconnues à lui seul. S’il provient d’un petit ensemble d’entrées possibles, l’attaquant peut les essayer et comparer leurs empreintes. S’il connaît l’entrée exacte, il peut calculer le même résultat. C’est donc la manière dont le secret a été créé qui compte, plutôt que son apparente complexité. [1] [2]

Dans BIP39, 12 mots représentent 128 bits d’entrée et 4 bits de somme de contrôle, soit 132 bits au total. Avec 24 mots, c’est 256 plus 8, soit 264 bits. Les bits de contrôle sont calculés ; ce ne sont pas des choix secrets indépendants supplémentaires. Les 128 ou 256 bits supposent aussi une bonne méthode de création de l’entrée. Choisir soi-même des mots d’après une histoire favorite ne garantit pas cette entropie par leur seul nombre. [3]

Imaginez 128 bits secrets indépendants, chacun obtenu comme par un lancer de pièce équilibrée. Si vous révélez 32 bits précis, 96 restent inconnus dans ce modèle. Ce n’est pas une règle générale pour toute fuite : cela dépend de l’information divulguée et des liens entre les valeurs. La seed est la valeur secrète de départ dont le portefeuille dérive ses clés. Celui qui connaît la seed entière n’a plus besoin de la deviner. Son incertitude est nulle, même si elle avait été parfaitement générée. [1] [2]

Jusqu’ici, tous les résultats avaient la même probabilité. Avec une source biaisée, l’attaquant essaiera probablement d’abord le résultat le plus courant. La min-entropie mesure l’avantage de ce premier essai : Hmin = -log2(pmax), où pmax est la probabilité du résultat le plus fréquent. Pour 3/4, cela donne environ 0,415 bit. Il existe aussi l’entropie de Shannon, qui décrit le contenu moyen en information. Ce sont des mesures différentes, et aucune n’est le nombre moyen exact d’essais nécessaires pour découvrir le secret. [1] [2]

L’attaquant ne se limite pas à deviner l’entrée initiale ; il peut aussi exploiter les propriétés mathématiques de l’algorithme. On distingue donc bits d’entropie, longueur de clé et résistance de sécurité. En cryptographie sur les courbes elliptiques (ECC), la sécurité dépend de la difficulté d’un problème mathématique particulier. Par exemple, le NIST SP 800-57 attribue aux clés ECC de 256 à 383 bits une résistance de 128 bits dans sa comparaison classique. Ce n’est ni une évaluation d’un portefeuille précis ni l’affirmation que toute clé de 256 bits offre une sécurité de 256 bits. [4]

Demandez quelle mesure d’entropie est utilisée, de quelle source vient l’estimation et ce que l’attaquant pourrait savoir. Le NIST SP 800-90B évalue la source et ses échantillons, y compris les dépendances et le comportement après redémarrage. La mesure d’un seul fichier ne garantit rien pour tous les appareils et toutes les conditions futures. La min-entropie seule ne donne pas non plus une durée d’attaque exacte. Un chiffre est utile lorsque ses hypothèses sont comprises. [1]

Pour une vision complète, lisez aussi Cryptographic Entropy, Brute Force Search Space, Seed Phrase, Private Key. Cette entrée est également citée par Dice Roll Entropy, Cryptographic Entropy, Brute Force Search Space.

DOC · 001NIST SP 800-90B — Min-entropy and dependent samplesSpécification DOC · 002RFC 4086 — Entropy measures and guessingSpécification DOC · 003BIP39 — Input entropy and checksum lengthsSpécification DOC · 004NIST SP 800-57 Part 1 Rev. 5 — Key length and security strengthSpécification
Révisé le: Sources d’abord · Pas un conseil financier