Comparaison de l'entropie et de la distribution des octets dans les données compressées / cryptées


8

J'ai une question qui m'occupe depuis un moment.

Le test d'entropie est souvent utilisé pour identifier les données chiffrées. L'entropie atteint son maximum lorsque les octets des données analysées sont distribués uniformément. Le test d'entropie identifie les données chiffrées, car ces données ont une distribution uniforme, comme les données compressées, qui sont classées comme chiffrées lors de l'utilisation du test d'entropie.

Exemple: l'entropie de certains fichiers JPG est de 7,9961532 bits / octet, l'entropie de certains conteneurs TrueCrypt est de 7,9998857. Cela signifie qu'avec le test d'entropie, je ne peux pas détecter de différence entre les données chiffrées et compressées. MAIS: comme vous pouvez le voir sur la première image, les octets du fichier JPG ne sont évidemment pas distribués uniformément (du moins pas aussi uniformes que les octets du conteneur truecrypt).

Un autre test peut être l'analyse de fréquence. La distribution de chaque octet est mesurée et, par exemple, un test du chi carré est effectué pour comparer la distribution avec une distribution hypothétique. en conséquence, j'obtiens une valeur p. lorsque j'effectue ce test sur JPG et TrueCrypt-data, le résultat est différent.

La valeur de p du fichier JPG est 0, ce qui signifie que la distribution à partir d'une vue statistique n'est pas uniforme. La valeur de p du fichier TrueCrypt est de 0,95, ce qui signifie que la distribution est presque parfaitement uniforme.

Ma question maintenant: quelqu'un peut-il me dire pourquoi le test d'entropie produit des faux positifs comme celui-ci? Est-ce l'échelle de l'unité dans laquelle le contenu de l'information est exprimé (bits par octet)? Par exemple, la valeur de p est-elle une bien meilleure "unité", en raison d'une échelle plus fine?

Merci beaucoup pour toute réponse / idée!

entrez la description de l'image ici Conteneur TrueCrypt JPG-Image entrez la description de l'image ici


2
Bien que vous fournissiez deux exemples d'entropies, vous n'appliquez en fait rien qui s'appellerait un «test d'entropie». Pourriez-vous nous expliquer explicitement ce qu'est ce test et comment il fonctionne avec vos deux fichiers?
whuber

Vous devriez pouvoir publier les images maintenant. Veuillez fournir plus de détails selon le commentaire de @ whuber.
Cardinal

Pour l'entropie, je calcule la probabilité que chaque nombre (0-255) apparaisse. alors je résume tout log (probabilité) et ai l'entropie. un logiciel comme encase, qui est utilisé pour l'examen médico-légal, utilise l'entropie pour détecter les données cryptées. mais comme vous pouvez le voir, l'entropie conduit à de nombreux faux positifs. d'autres approches, comme le chi carré, ont de bien meilleurs résultats. mais les deux tests sont utilisés pour la même chose, détectant l'uniformisation des octets. comment le résultat peut être si différent?
tommynogger

désolé, ma description était fausse ... Je calcule la somme d'entropie (p log p), où p est la probabilité pour chaque nombre.
tommynogger

Je pense qu'il est très probable que vous calculiez l'entropie de manière incorrecte. Il pourrait être utile de donner plus de détails et quelques exemples de code. Avez-vous correctement normalisé la distribution de probabilité (elle est donc égale à un). Comment procédez-vous plus en détail? Les deux illustrations sont-elles sur la même échelle y? s'ils le sont, je pense que l'entropie JPEG devrait être plus faible, mais sont-ils à la même échelle?
thrope

Réponses:


6

Cette question manque encore d'informations essentielles, mais je pense que je peux faire quelques suppositions intelligentes:

  • L' entropie d'une distribution discrètep=(p0,p1,,p255) est défini comme

    H(p)=i=0255pilog2pi.
  • Parce que log est une fonction concave, l'entropie est maximisée lorsque tous pisont égaux. Puisqu'ils déterminent une distribution de probabilité (ils résument à l'unité), cela se produit lorsquepi=28 pour chaque i, d'où l'entropie maximale est

    H0=i=025528log2(28)=i=025528×8=8.
  • Les entropies de 7.9961532bits / octet ( c'est -à- dire en utilisant des logarithmes binaires) et7.9998857 sont extrêmement proches les uns des autres et de la limite théorique de H0=8.

    A quelle distance? ExpansionH(p) dans une série de Taylor autour du maximum montre que l'écart entre H0 et toute entropie H(p) équivaut à

    H0H(p)=i(pi28)2228log(2)+O(pi28)3.

    En utilisant cette formule, nous pouvons déduire qu'une entropie de 7.9961532, qui est une différence de 0.0038468, est produite par une déviation quadratique moyenne de seulement 0.00002099 entre le pi et la distribution parfaitement uniforme de 28. Cela représente un écart relatif moyen de seulement0.5%. Un calcul similaire pour une entropie de7.9998857 correspond à un écart RMS pi de seulement 0,09%.

    (Dans une figure comme celle du bas de la question, dont la hauteur s'étend sur environ 1000 pixels, si nous supposons que les hauteurs des barres représentent la pi, puis un 0.09La variation% RMS correspond à des changements d'un seul pixel au-dessus ou au-dessous de la hauteur moyenne, et presque toujours moins de trois pixels. Voilà à quoi ça ressemble. UNE0.5En revanche, le% RMS serait associé à des variations d'environ 6 pixels en moyenne, mais dépassant rarement 15pixels ou plus. Ce n'est pas à cela que ressemble la figure du haut, avec ses variations évidentes de100ou plusieurs pixels. Je suppose donc que ces chiffres ne sont pas directement comparables entre eux.)

Dans les deux cas, ce sont de petits écarts, mais l'un est plus de cinq fois plus petit que l'autre. Maintenant, nous devons faire quelques suppositions, car la question ne nous dit pas comment les entropies ont été utilisées pour déterminer l'uniformité, ni nous dire combien de données il y a. Si un véritable "test d'entropie" a été appliqué, alors comme tout autre test statistique, il doit tenir compte de la variation du hasard. Dans ce cas, les fréquences observées (à partir desquelles les entropies ont été calculées) auront tendance à différer des véritables fréquences sous-jacentes en raison du hasard. Ces variations se traduisent, via les formules données ci-dessus, en variations de l' entropie observée à partir de la véritable entropie sous-jacente. Compte tenu des données suffisantes, nous pouvons détecter si la véritable entropie diffère de la valeur de 8associée à une distribution uniforme. Toutes choses étant égales par ailleurs, la quantité de données nécessaires pour détecter un écart moyen de0.09% par rapport à un écart moyen de 0.5% sera approximativement (0.5/0.09)2 fois: dans ce cas, cela équivaut à plus que 33 fois autant.

Par conséquent, il est tout à fait possible qu'il y ait suffisamment de données pour déterminer qu'une entropie observée de 7.996diffère considérablement de8 alors qu'une quantité équivalente de données serait incapable de distinguer 7.99988 de 8. (Soit dit en passant, cette situation est qualifiée de faux négatif et non de «faux positif», car elle n'a pas permis d'identifier un manque d'uniformité (ce qui est considéré comme un résultat «négatif»).) Par conséquent, je propose que (un ) les entropies ont en effet été correctement calculées et (b) la quantité de données explique correctement ce qui s'est passé.


Soit dit en passant, les chiffres semblent être inutiles ou trompeurs, car ils manquent d'étiquettes appropriées. Bien que celui du bas semble représenter une distribution presque uniforme (en supposant que l'axe des x est discret et correspond à la256 valeurs d'octets possibles et l'axe y est proportionnel à la fréquence observée), celui du haut ne peut pas correspondre à une entropie n'importe où près 8. Je soupçonne que le zéro de l'axe des y dans la figure du haut n'a pas été montré, de sorte que les écarts entre les fréquences sont exagérés. (Tufte dirait que ce chiffre a un grand facteur de Lie.)


L'entropie calculée se réfère aux images ci-dessus. Le fichier JPG a une taille d'environ 5 Mo, le TrueCrypt-Container environ 100 Mo. Même si je prends un morceau de 5 Mo du conteneur TrueCrypt, il est également distribué - beaucoup plus égal que le fichier JPG. Votre réponse donne de nombreux détails sur l'entropie que je n'ai pas entendu, merci pour cela! Peut-être trop de détails, je ne suis pas trop dans les statistiques ... Je viens d'essayer "d'utiliser" les statistiques depuis un moment. Une question reste posée: quelle est la raison pour laquelle une distinction peut être faite avec l'analyse de fréquence (par exemple chi carré), mais pas avec l'entropie?
tommynogger

Le test du chi carré représente la quantité probable de variation de chance. Pour autant que je sache, votre comparaison d'entropies ne le fait pas. Cela semble être la source de la différence. Vous devez également faire attention à la façon dont vous interprétez les résultats: les choses peuvent être trop également réparties ; cela peut également être considéré comme une preuve contre un comportement aléatoire.
whuber
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.