[b][u]Représentation et analyse du réseau de confiance OpenPGP[/u][/b] [tab][b]1. Position du problème[/b] La cryptographie asymétrique permet d'échanger des informations avec de fortes garanties de confidentialité, d'intégrité et d'authenticité. Cependant, la possibilité d'attaques actives de type "man-in-the-middle" rend nécessaire une forme de certification des clés de chiffrement utilisées. Une solution est d'apposer une signature avec sa propre clé sur les clés dont on a vérifié la validité. Ainsi, un utilisateur a une garantie de la validité d'une clé si elle a été signée par quelqu'un en qui il a confiance. Un réseau de confiance décentralisé est ainsi formé, où chaque utilisateur joue le rôle d'une autorité de certification indépendante. [tab][b]2. Objectifs et motivation[/b] Le réseau de confiance s'interprète de façon naturelle comme un graphe orienté ayant pour sommets les clés de chiffrement et pour arêtes les signatures d'une clé par une autre. L'objet de mon TIPE est la conception d'un programme permettant d'obtenir une représentation exploitable de ce graphe et d'en analyser les propriétés. La norme cryptographique étudiée est OpenPGP, mais mon travail ne porte pas sur le processus de chiffrement en tant que tel. L'idée sous-jacente serait de mettre en évidence certaines propriétés du réseau de confiance qui proviendraient de la signification intrinsèque des signatures de clés (qui correspondent théoriquement à une rencontre physique entre les propriétaires des clés concernées) afin de le distinguer d'un réseau factice généré par un attaquant. Ce travail s'inscrit dans la thématique de l'information sur deux plans : le réseau de confiance est à la fois un corpus d'information à étudier et un mécanisme visant à assurer la sécurité des échanges d'information. [tab][b]3. Démarche et résultats[/b] Des fichiers contenant l'essentiel de la structure du réseau de confiance sont fournis par le site du projet Wotsap (voir la bibliographie). Ils sont importés par mon programme (rédigé en C) sous la forme d'un graphe. Le programme compare les distances moyennes dans le graphe entre clés d'un même pays (tel qu'indiqué par le TLD de l'adresse de courriel de leur propriétaire) et les distances moyennes entre un même nombre de clés aléatoires. Les résultats montrent que les clés d'un même pays sont en général plus proches les unes des autres, ce qui n'est pas vrai pour les TLD ne correspondant pas à un pays (.com, .net, etc.). Ceci montre l'existence d'un lien entre proximité géographique et proximité dans le graphe. Le programme calcule également une représentation du graphe avec l'algorithme "force-directed" en simulant l'évolution vers l'équilibre d'un système de masses (correspondant aux sommets du graphe) et de ressorts (correspondant aux arêtes). La grande taille du graphe (environ 40000 sommets et 400000 arêtes) rend nécessaire certaines adaptations de l'algorithme classique pour atteindre un temps d'exécution raisonnable. L'évolution du dessin est affichée en temps réel avec la librairie SDL. L'interface du programme permet de se déplacer dans le graphe, d'afficher certaines informations sur les clés et de positionner manuellement des clés. On observe sur les représentations obtenues que les clés d'un même TLD national (voire d'un même domaine) ont tendance à se regrouper sur le dessin (surtout en périphérie). [tab][b]4. Bibliographie et références[/b] - Giuseppe Di Battista, Peter Eades, Roberto Tamassia, Ioannis G. Tollis, [u]Graph Drawing: Algorithms for the Visualization of Graphs[/u]. - Gary Chartrand, [u]Introductory Graph Theory[/u]. - Jean-Guillaume Dumas, Jean-Louis Roch, Éric Tannier, Sébastien Varrette, [u]Théorie des codes : Compression, cryptage, correction[/u]. - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, [u]Introduction to Algorithms[/u], deuxième édition. - Projet Wotsap : [u]http://www.lysator.liu.se/~jc/wotsap/[/u].