Analyse et Conception d’une plate-forme de validation de diplômes basée sur la blockchain
Rappel cryptographique
Nous allons dans ce chapitre faire un rappel sur les outils cryptographiques indispensables à la réalisation de notre projet et à la compréhension de la technologie blockchain. La cryptographie, la science du secret, a pour but de protéger les informations de l’entreprise contre la lecture non autorisée, la modification malveillante ou pas, le refus de responsabilité lors d’une participation à une transaction, etc. C’est ainsi l’un des éléments principaux ayant rendu possible l’invention des crypto-monnaies et des blockchains utilisées dans le commerce. 2.1. Définitions et Terminologies La cryptologie est la science du secret, c’est une science pure qui émet des idées et des principes qui servent de base à la transformation des informations claires en informations inintelligibles à toute personne non qualifiée pour les connaître, ou à réaliser le processus inverse grâce à des moyens matériels et logiciels conçus à cet effet. Elle conçoit et analyse des mécanismes permettant, entre autres, d’assurer l’authentification, l’intégrité, la non répudiation et la confidentialité des données. La cryptologie est composée de deux branches : • cryptographie : elle permet la conception de primitives cryptographiques ; • cryptanalyse : elle permet l’analyse de la sureté des primitives cryptographiques ; Les algorithmes cryptographiques peuvent être subdivisés en 3 grandes branches : • Cryptographie symétrique ou à clés secrètes : De l’antiquité à 1976 c’était la seule forme de cryptographie existante. Dans cette configuration, deux personnes ont une méthode de chiffrement et de déchiffrement pour lesquelles elles partagent une même clé secrète. Analyse et Conception d’une plate-forme de validation de diplômes basée sur la blockchain Maryll Lucrecia Patricia O. DOSSOU-YOVO • Cryptographie asymétrique ou à clé publique : Dans la cryptographie à clé publique un utilisateur possède une clé privée comme le cas symétrique mais également une clé publique. Les algorithmes asymétriques sont utilisés pour plusieurs applications notamment pour la signature numérique ou l’échange des clés. • Cryptographie hybride : famille d’algorithmes faisant appel aux deux grandes familles. Figure 1: Branche informatique de la cryptographie La cryptologie est utilisée dans toutes les branches de la sécurité dans lesquelles elle assure différents services : 1. Confidentialité : qui assure que le sens de l’information reste caché à tout utilisateur, entité ou processus non-autorisé. La confidentialité est assurée principalement grâce aux algorithmes de chiffrement symétrique ou à clés secrètes. 2. Intégrité : assure que le destinataire d’un message soit capable de vérifier si le message a été altéré ou modifié durant la transmission que ce soit de manière arbitraire (bruit du canal de communication), ou intentionnelle (par un attaquant). Personne ne devrait être capable de substituer un message ou une partie du message. L’intégrité est assurée principalement par les fonctions de hachage. 3. Authentification : assure que le destinataire d’un message puisse vérifier son origine. Personne ne devrait pouvoir envoyer un message à Bob en prétendant être Alice. L’authentification permet de s’assurer de l’identité de l’expéditeur de l’information, et par conséquent, de confirmer son identité. Elle est assurée par des protocoles d’identification. Analyse et Conception d’une plate-forme de validation de diplômes basée sur la blockchain Maryll Lucrecia Patricia O. DOSSOU-YOVO 9 4. Non répudiation : assure que l’on ne puisse pas nier d’avoir participer à une transaction à laquelle on a pris part. Elle permet d’obtenir la preuve de l’émission ou de la réception d’une information. Elle est assurée par la signature électronique.
Cryptographie symétrique
La cryptographie symétrique, également dite à clé secrète (par opposition à la cryptographie asymétrique), est la plus ancienne forme de chiffrement. Elle permet à la fois de chiffrer et de déchiffrer des messages à l’aide d’un même mot clé. Elle fournit à deux parties, Alice et Bob, les moyens de communiquer de manière secrète. Pour mettre en place leur canal de communication sûr, ils doivent d’abord se mettre d’accords sur la clé k. Ils doivent garder leur clé partagée secrète. Avant qu’Alice n’envoie un message x à Bob, Alice chiffre x en utilisant un algorithme de chiffrement E et la clé k. Elle obtient ainsi un cryptogramme 𝑦 = 𝐸𝑘(𝑥) et envoi y à Bob. En utilisant l’algorithme de déchiffrement D et la même clé k, Bob déchiffre y pour retrouver le texte clair 𝑥 = 𝐷𝑘(𝑦). Nous appelons ces méthodes de chiffrement : chiffrement symétrique car Bob retrouve le message x en utilisant la même clé k qu’Alice a utilisé pour chiffrer. Figure 2 : Chiffrement Symétrique 2.3. Cryptographie asymétrique Limite de la cryptographie symétrique : On rappelle que pour la cryptographie symétrique chaque participant à la communication doit avoir une copie de la même clé. Ce qui conduit à un problème de gestion des clés complexes, puisque pour un groupe de n individus, il faudrait 𝑛(𝑛 − 1) 2 clés symétriques différentes pour que la communication entre deux individus quelconques du groupe soit possible. De plus la cryptographie symétrique pose un problème de distribution des clés. En effet, pour établir une communication, Alice et Bob doivent au préalable s’échanger la clé afin de disposer de la même clé ; or le canal de communication n’étant pas sûre, il ne peut donc pas être utilisé pour transmettre la clé, ce qui serait la manière la plus efficace de le faire. Enfin, la cryptographie symétrique ne permet pas de prévenir contre la tricherie. Alice et Bob ayant la même clé, elle les octroie les mêmes caractéristiques. Par conséquent, la cryptographie symétrique n’est pas adaptée à un usage dans lequel on souhaiterait éviter que l’une des parties Alice ou Bob ne puissent tricher. Par exemple dans les applications de commerce digital où il est souvent nécessaire de prouver qu’Alice à Analyse et effectivement commandé une voiture jaune. Si on utilise uniquement la cryptographie symétrique et que Alice change d’avis, elle pourrait accuser Bob, le vendeur, d’avoir générer lui-même la commande. Prévenir ce cas de figure c’est ce que l’on appelle la non répudiation.
Principes
Pour surmonter ces difficultés mentionnées ci-dessus, Diffie, Hellman et Merkle ont fait une proposition révolutionnaire basée sur l’idée suivante : « Il n’est pas nécessaire que la clé que possède celui qui chiffre soit secrète. La partie cruciale est que Bob, le destinataire, puisse déchiffrer seulement en utilisant une clé secrète ». Pour réaliser un tel système, Bob publie une clé de chiffrement publique qui sera connue de tous (au moins accessible par tous). Bob doit avoir une clé secrète correspondante qui sera utilisée pour le déchiffrement. Ainsi, la clé k de Bob est composée de deux parties, une partie publique ou clé publique, 𝑃𝐾𝐵, et une partie privée ou clé privée 𝑆𝐾𝐵.
Algorithmes à clé publique importants
Il existe plusieurs familles d’algorithmes asymétriques classées selon le type de problème utilisé. Il y a cependant trois grandes familles qui sont très largement implémentées à savoir : • Algorithmes basés sur la factorisation d’entiers : Plusieurs algorithmes sont basés sur le fait qu’il est difficile de factoriser de grands entiers. Le plus connu de cette famille est l’algorithme de chiffrement RSA. • Algorithmes basés sur le problème du logarithme discret : Il existe plusieurs algorithmes basés sur le DLP. Les plus connus étant le protocole d’échange de clé Diffie-Hellman, l’algorithme de chiffrement El Gamal ou le Digital Signature Algorithme (DSA) • Algorithmes basés sur les courbes elliptiques : Il s’agit d’une généralisation du problème du logarithme discret sur le groupe des courbes elliptiques. Les exemples les plus connus inclus le protocole d’échange de clé Diffie-Hellman basé sur les courbes elliptiques (ECDH) et l’algorithme de chiffrement El Gamal basé sur les courbes elliptiques. En plus de ces trois familles, il y a eu plusieurs propositions pour la cryptographie asymétrique. Certains manques de maturité cryptographiques comme celle basé sur les réseaux Euclidien ou fonctions multivariées quadratiques d’autre comme le crypto système de McEliece ont des problèmes d’implémentation (taille des clés trop grande de l’ordre de mégaoctets).
Signature numérique
La signature électronique partage certains éléments avec la signature manuscrite dans le sens où elles permettent de s’assurer qu’un message est émis spécifiquement par un individu donné. La signature numérique offre cependant plus de fonctionnalité. Comme pour les signatures manuscrites, pour les signatures numériques seule la personne qui crée le message devrait être capable de le signer. Pour accomplir cela avec les primitives cryptographiques, nous devons partir des principes de la cryptographie asymétrique. L’idée de base étant que la personne qui signe un message utilise une clé privée, et celui qui reçoit le message utilise la clé publique associé pour le vérifier. Ce schéma de signature pose le problème de l’authenticité des informations/clés publiques. En effet, comment Alice ou Bob peuvent être sûre qu’ils possèdent chacun la clé publique de l’autre ? Comment empêcher Oscar de distribuer de fausses clés publiques pour une attaque. Pour joindre à la signature électronique cette fiabilité on a souvent recours à un tiers de confiance sous la forme d’une Autorité de Certification (AC). Ce dernier lie l’identité d’une entité (Alice, Bob, Banque B) à un certificat numérique sur la base d’une infrastructure PKI. On parle de signature numérique. La plupart des schémas de signature utilisent une fonction de hachage et appliquent la signature sur ce dernier, il sera supposé dans la suite qu’on se trouve dans ce cadre sauf mention du contraire. 2.5. Fonction de hachage Les fonctions de hachage sont des primitives cryptographiques importantes largement utilisées dans les protocoles. Elles permettent de condenser un message d’une longueur quelconque en une courte chaine de bits de longueur fixe. Le message condensé ainsi formé peut être considérer comme l’empreinte digitale dudit message. Les fonctions de hachage ne font pas usage de clé contrairement à plusieurs algorithmes cryptographiques. Les fonctions de hachages ont de nombreuses applications et sont très connues pour le rôle qu’elles jouent dans les signatures numériques. Pour les systèmes de signatures basés sur les algorithmes asymétriques, la longueur du texte en clair est limitée. Dans le cas de RSA, par exemple, la longueur du message ne peut pas dépasser le module, qui est souvent compris entre 1024 et 3072 bits ; c’est-à-dire 128 à 384 octets. La plupart des messages sont plus long que cela.
Introduction Générale |