investigation ECHELON images/petit_logo_jcd.gif

 

 

une complexité croissante ...... retour

si on voulait frimer... on parlerait d'entropie, mais bon.

 

Une des difficultés qui se pose (aux espions) pour l'analyse en temps réel des fichiers transmis sur le net, est celle de la multiplicité des formats possibles.

Même si certains sont plus "populaires", la variété des formats possibles à tendance à augmenter. Leur complexité aussi. Et cela peut rendre moins efficace une recherche de mots clés, et moins encore, une analyse n-grams des textes.

Pour illustrer cette difficulté, je me suis livré à la comparaison d'un certain nombre de formats de fichiers.

J'en ai obtenu très rapidemment une vingtaine différents en utilisant les programmes que j'avais sous la main.

 

mais qu'est-ce que la complexité ?

Noter que cette variété de formats est un inconvénient, mais pas forcément un obstacle pour les services de renseignements.

Depuis le temps, ils ont pu développer des logiciels qui reconnaissent n'importe lequel des formats existants pour le traduire dans un format universel avant la recherche des mots clés. C'est l'affaire d'un ingénieur à plein temps ! Pas plus, probablement.

C'est une particularité du savoir faire informatique dont il faut être conscient. Un programme peut évoluer dans le temps. A chaque fois qu'il reçoit un type de fichier qu'il ne connaît pas, il produit un message d'erreur. On décide alors si ce nouveau type de fichier mérite d'être traité, et si c'est le cas, on écrira le petit bout de programme nécessaire. Mais, contrairement à ce qui se produirait avec des opérateurs humains, cela ne signifie en aucune manière que les formats plus anciens sont oubliés par le logiciel. Ils seront détectés aussi efficacement qu'au premier jour. On peut dire que le système devient de plus en plus "compétent". Et même si le fichier exotique n'est apparu qu'une seule fois, sa structure pourra être diffusée à tout les ordinateurs du réseau qui le reconnaîtront, eux aussi, sans l'avoir jamais vu auparavant.

Là où cela se complique vraiment pour tout le monde, c'est lorsque les émetteurs de fichiers ont conscience que, peut-être, on les observe, et qu'ils prennent des mesures de protection. La plus emmerdante pour les espions, c'est le cryptage. Aucun doute sur ce point.

 

 le texte étudié

J'ai choisi Les fleurs du mal de Charles Baudelaire.

Je me suis procuré ce texte sous forme de paperless book sur le site Athena.de l'université de Genève à l'adresse http://un2sg4.unige.ch/athena/ . Il y en a des quantités d'autres !

Le fichier que j'ai récupéré est au format RTF. C'est un format qui permet de décrire la mise en page de manière indépendante des logiciels de lecture utilisés. On peut le lire aussi bien sur PC que sur Mac, c'est l'avantage.

Pourquoi les fleurs du mal ? hé, hé, laissons Baudelaire lui même l'expliquer :

C'est le Diable qui tient les fils qui nous remuent!
Aux objets répugnants nous trouvons des appas;
Chaque jour vers l'Enfer nous descendons d'un pas,
Sans horreur, à travers des ténèbres qui puent.

Le texte complet est ici.

 

les formats analysés

Aucune prétention d'exhaustivité dans cette étude qui ne vise qu'à illustrer le problème.

J'ai aussi eu quelques états d'âmes sur la manière dont je pouvais présenter les résultats sous forme d'une page web. Je crains que cela ne reste un peu chiant. Désolé.

Ce qui m'est apparu être la meilleure solution, c'était d'organiser mon propos sur deux niveaux : une page principale - celle ci - qui explique les choses de manière littéraire, et une seconde page qui montre de manière plus informatique ce que cela signifie concrètement. (ce qui tenterait à dire que, pour moi, les littéraires sont moins concrets que les informaticiens ! ). Entre ces deux niveaux de lecture, des liens hypertextes.

Le tableau suivant résume les différents fichiers étudiés :

nom du fichier taille commentaire
b1.rtf 229 634 fichier original au format rtf
b1.txt 149 204 fichier au format texte (sans mise en page)
b1.doc 275 456 * fichier Word produit par Word 97
b2.doc 275 456 fichier Word 97 avec mot de passe "baudelaire"
b3.doc 275 456 idem (pour vérifier si le cryptage varie à chaque codage)
b4.doc 275 456 fichier Word 97 avec mot de passe "charles"
b1w2.doc 187 551 fichier Word produit par Word 2.0
b2w2.doc 189 599 fichier Word 2.0 avec mot de passe "baudelaire"
b1.zip 77 737 fichier Word compressé par Winzip
b2.zip 77 749 fichier Winzip compressé avec mot de passe "baudelaire"
b1msdos.txt 149204 fichier texte codé pour MSDOS
b1msdos.asc 233 516 fichier texte codé pour MSDOS avec mise en page
b1unicode.txt 298 402 fichier en format unicode
b1.htm 275 439 fichier en format html produit par Word 97
b1.wps 332 800 fichier Works 6.0
b1_us.htm 323 671 fichier htm en codage ISO-1 produit par FrontPage express
b1_iso.htm 322 890 fichier htm en codage ISO-2 produit par FrontPage express
b1_europ htm 322 892 fichier htm en codage europe centrale par FrontPage express
b1_multi.htm 326 043 fichier htm en codage multilingue produit par FrontPage express

* J'ai observé plusieurs tailles pour le fichier Word. Lorsqu'on convertit le texte rtf en format doc, il semble qu'une tâche d'arrière plan effectue la conversion et qu'il est possible de sauvegarder le document avant que la conversion ne soit complètement terminée.

 

le document original : format RTF (rich text format)

Le début du document se présente ainsi :
On remarque deux lignes constituées de tirets qui nous serviront, par la suite, à repérer le début du document, lorsque nous analyserons le contenu des fichiers.

ATHENA e-text, BAUDELAIRE, Les Fleurs du Mal, version rtf. ©

--------------------------------------------------------------------------------

BAUDELAIRE

(1821-1867)

LES FLEURS DU MAL

(édition de 1861)

-----------------------------------------------------------------------------------------------

Table des matières

Dédicace

Au Lecteur

SPLEEN ET IDEAL

 I Bénédiction
II L'Albatros
III Elévation
IV Correspondances
V
VI Les Phares
...

Si on ouvre ce même document avec un éditeur de texte qui ne connaît pas le format rtf (edit sous MSDOS par exemple) on obtient ceci :

{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1036{\fonttbl{\f0\
froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f4\froman\fcharset0\fprq2{\*\panose 02020603050405020304}TIMES{\*\falt Times New Roman};}

Les codes qui apparaissent au début du fichier indiquent qu'il s'agit d'un fichier RTF et décrivent les polices de caractères utilisées.

Le texte "utile" commence plus loin :
On reconnaît les séquences de tirets. On remarque aussi que des codes de mise en page sont mélangés au texte. Il est évident que la recherche de mot clé sera gênée par ces codes.

{\pntxtb (}{\pntxta )}}\pard\plain \qc\widctlpar\adjustright \lang1036 {ATHENA e-text, BAUDELAIRE, }{\i Les Fleurs du Mal}{, version rtf. \'a9
\par }{\fs28 -------------------------------------------------------------
-------------------
\par
\par }{\b\fs36 BAUDELAIRE
\par }{(1821-1867)
\par
\par }{\b\fs32 LES FLEURS DU MAL
\par }{(\'e9dition de 1861)
\par }\pard \widctlpar\adjustright {\b\fs28
\par }{\fs28 -------------------------------------------------------------
----------------------------------
\par }\pard \qc\widctlpar\adjustright {\b\fs28\ul Table des mati\'e8res
\par }\pard \widctlpar\adjustright {\fs28
\par D\'e9dicace

On peut s'en convaincre en visualisant le fichier de comptage des mots de ce document : nbmots_rtf.txt .

 

le format texte (.txt)

Le document peut être converti en format texte. La mise en page est alors perdue, mais tous les codes gênants sont éliminés. Il ne reste que "la substance du texte".

Le document devient :

ATHENA e-text, BAUDELAIRE, Les Fleurs du Mal, version rtf. (c)
--------------------------------------------------------------
------------------
BAUDELAIRE
(1821-1867)
LES FLEURS DU MAL
(édition de 1861)
-------------------------------------------------------------
----------------------------------
Table des matières
Dédicace
Au Lecteur
SPLEEN ET IDEAL
I Bénédiction
II L'Albatros
III Elévation
IV Correspondances
V
VI Les Phares
...

Pour bien observer l'effet de la conversion sur le fichier, il faut utiliser un programme de "dump hexadécimal" qui permet de voir les codes des caractères enregistrés dans le fichier.

Sur l'exemple suivant, on obtient quatre zones pour chacune des lignes du dump. A gauche, l'adresse dans le fichier, suivie de 16 octets traduits en code hexadécimal qui correspondent à 16 octets consécutifs du fichier. Dans la zone suivante, les mêmes octets sont traduits en EBCDIC (un codage de moins en moins utilisé). Sur la partie droite, ils sont traduits en code ASCII.

Dans ce format, le texte commence dès le premier octet du fichier. On retrouve les lignes de tirets signalées précédemment.

Concernant les accents, pour le mot "édition" par exemple, ils correspondent bien à un seul octet (et non plus comme en rtf, à une séquence de plusieurs octets). Cependant le programme de dump ne sait pas les afficher. Ils les remplace dans la partie ascii du listage par un point comme tous les codes ascii compris entre 128 et 255 (valeurs hexadécimales 80 à FF).

J'ai mis les mots "édition", "matière" et "Dédicace" en caractères gras dans la partie hexadécimale et dans le code ascii. Le e accent aigu est codé E9, le e accent grave, E8.

adresse <-------------hexadécimal--------------------> <---ebcdic-----> <----acii------>
000000 41 54 48 45 4E 41 20 65 2D 74 65 78 74 2C 20 42 ....+........... ATHENA e-text, B
000010 41 55 44 45 4C 41 49 52 45 2C 20 4C 65 73 20 46 ....<......<.... AUDELAIRE, Les F
000020 6C 65 75 72 73 20 64 75 20 4D 61 6C 2C 20 76 65 %........(/%.... leurs du Mal, ve
000030 72 73 69 6F 6E 20 72 74 66 2E 20 28 63 29 0D 0A ...?>........... rsion rtf. (c)..
000040 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ................ ----------------
000050 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ................ ----------------
000060 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ................ ----------------
000070 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ................ ----------------
000080 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ................ ----------------
000090 0D 0A 0D 0A 42 41 55 44 45 4C 41 49 52 45 0D 0A .........<...... ....BAUDELAIRE..
0000A0 28 31 38 32 31 2D 31 38 36 37 29 0D 0A 0D 0A 4C ...............< (1821-1867)....L
0000B0 45 53 20 46 4C 45 55 52 53 20 44 55 20 4D 41 4C ....<........(.< ES FLEURS DU MAL
0000C0 0D 0A 28 E9 64 69 74 69 6F 6E 20 64 65 20 31 38 ...Z....?>...... ..(.dition de 18
0000D0 36 31 29 0D 0A 0D 0A 2D 2D 2D 2D 2D 2D 2D 2D 2D ................ 61)....---------
0000E0 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ................ ----------------
0000F0 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ................ ----------------
000100 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ................ ----------------
000110 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ................ ----------------
000120 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D ................ ----------------
000130 2D 2D 2D 2D 2D 2D 0D 0A 54 61 62 6C 65 20 64 65 ........./.%.... ------..Table de
000140 73 20 6D 61 74 69 E8 72 65 73 0D 0A 0D 0A 44 E9 ..-/..Y........Z s mati.res....D.
000150 64 69 63 61 63 65 0D 0A 0D 0A 41 75 20 4C 65 63 .../.........<.. dicace....Au Lec
000160 74 65 75 72 0D 0A 0D 0A 53 50 4C 45 45 4E 20 45 .........&<..+.. teur....SPLEEN E
000170 54 20 49 44 45 41 4C 0D 0A 0D 0A 49 20 42 E9 6E ......<.......Z> T IDEAL....I B.n
000180 E9 64 69 63 74 69 6F 6E 0D 0A 49 49 20 4C 27 41 Z.....?>.....<.. .diction..II L'A
000190 6C 62 61 74 72 6F 73 0D 0A 49 49 49 20 45 6C E9 %./..?........%Z lbatros..III El.
...
.....................................................................................

 

La recherche de mots clés donne des résultats sensiblements différents qu'avec le fichier RTF. Elle fonctionne maintenant correctement. Le résultat est dans le fichier nbmots_txt.txt

 

résultats de la recherche des mots clés pour différents formats

La comparaison des fichiers obtenus pour les trois formats, RTF, TXT, HTM montre que les résultats ne sont "pas si différents que ça". Cependant, si on regarde de plus près, dans le format RTF, certains mots deviennent difficiles à reconnaître comme "BEAUTÉ" qui devient "BEAUT\'E9" ! En HTM, ce mot disparaît tout simplement. Peut-être est-ce "BEAUT" ? Le mot "ÂME" disparaît lui aussi. Je ne l'ai pas retrouvé(e) !

Toutefois, par une bidouillage relativement simple (suppression des < et >), j'ai pu améliorer de manière spectaculaire le résultat sur le fichier htm ! (voir nbmots_htm_v0.txt et nbmots_htm.txt ).

format RTF format TXT format HTM
4760 \PAR
941 ET
840 DE
597 LE
574 LA
494 LES
421 \PANOSE
411 DES
355 UN
292 QUI
276 DANS
269 COMME
218 \'E0
205 JE
200 QUE
...
941 ET
840 DE
597 LE
574 LA
494 LES
411 DES
355 UN
292 QUI
276 DANS
269 COMME
205 JE
200 QUE
164 DU
161 EN
153 AU
...
4739 P>
4596 ALIGN
4238 <P
2329 <
1738 EACUTE
985 CENTER><
759 DE
629 ET
535 LE
506 LA
423 LES
372 DES
350 EGRAVE
312 CENTER>ET
311 UN
...
43 \'E2ME
...
30 BEAUT\'E9
30 00000000000000000}FRANKLIN
28 TOUJOURS
...
15 MIS\'E8RE!
43 âME
...
30 BEAUTé
<absent>

28 TOUJOURS
...
15 MISèRE!
<absent>
...
? 44 BEAUT
<absent>

27 TOUJOURS
...
? 21 MIS
nbmots_rtf.txt nbmots_txt.txt nbmots_htm_v0.txt
nbmots_htm.txt

 

Voici ce qu'on obtient pour les autres fichiers :

format nombre de mots mots uniques adaptation particulière du traitement
txt 24309 6607  
doc 24456 6664 utilise pretrait.bas (remplacement des 0 par des "." en particulier).
htm 18658
48495
7279
6155
deux traitements différents.
2ème traitement obtenu après remplacement des <> par des espaces.
rtf 32280 7669  
unicode 24307 6611 pré-traitement qui élimine les 0 pour transcoder sommairement l'unicode en ascii.
wps 29999 8351 pré-traitement spécifique de type transcodage unicode-ascii.

Pour en savoir plus sur ces différents formats, voir la page "format des fichiers"

 

résultats de l'analyse n-gram sur différents formats

Une représentation graphique des différents formats de fichiers, grâce à l'analyse 1-gram (c'est à dire le comptage du nombre de caractères) donne aussi des renseignements intéressants.

 

format rtf

Le caractère le plus utilisé est l'espace (code 32).
On remarque deux barres égales pour les codes 10 et 13. Ils correspondent aux fins de lignes (séquences CR-LF).
Les codes les plus nombreux sont entre 97 et 122. Ce sont les valeurs utilisées pour lettres minuscules (voir la table des codes ASCII ).

valeurs les plus fréquentes dans le fichier rtf :

nombre caractère code
27303   32
20514 e 101
14528 a 97
14434 r 114
12066 \ 92
12062 s 115
8861 n 110
8338 t 116
8301 p 112
7897 i 105
7800 u 117
7419 0 48
7231 o 111
6448 l 108
4952 <cr> 10
4952 <lf> 13
4738 ' 39

 

 

format txt

Avec le format texte, le profil ressemble à celui du format rtf mais la barre correspondant au code 92 (\) disparaît, et celle du caractère "a" est beaucoup plus courte (7752 occurences au lieu de 12066). Cette différence provient des séquences \par qui débutent chaque ligne dans un fichier au format rtf.et n'existent pas dans un fichier txt.
On remarque la présence de codes aux environs de 230. Ce sont les caractères accentués (voir la table des codes ASCII ).

 

valeurs les plus fréquentes dans le fichier txt :

nombre caractère code
20563   32
15858 e 101
9630 s 115
7752 a 97
7631 r 114
7623 n 110
7520 u 117
7241 t 116
6922 i 105
6189 o 111
5874 l 108
4760 <cr> 10
4760 <lf> 13
3651 m 109
3627 d 100
2911 c 99
2537 , 44
2317 p 112
1737 é 233

 

 

format doc

Le code le plus fréquent du fichier doc, est le code 0 (je l'ai éliminé pour rendre le graphique plus lisible).
Le profil général est semblable à celui du fichier txt.
Le format doc utilise le code CR (13) pour les fins de ligne mais pas le code LF (10).

 

valeurs les plus fréquentes dans le fichier doc :

nombre caractère code
94494   0
20697   32
16013 e 101
9713 s 115
7868 a 97
7740 r 114
7687 n 110
7632 u 117
7357 t 116
7024 i 105
6312 o 111
5966 l 108
5479  1
4882 <cr> 13
4649 ü 252

 

 

format doc crypté

Ce graphique montre l'effet du cryptage d'un fichier doc dans Word 97. Le profil est complètement transformé (format doc crypté).

 

format zip

La compression des données a le même effet qu'un cryptage sur l'analyse 1-gram. Le profil du fichier original ne peut être reconnu. D'ailleurs, certains programmes de cryptage utilisent la compression pour renforcer le cryptage (format zip)

 

format zip crypté

 

 

 

retour ; page echelon ; début de page


me contacter par e-mail jean-claude.devaux (site officiel)

mise à jour le 17/06/2002