|
| Introduction | Depuis l'antiquité, le besoin a été ressenti de rendre des messages incompréhensibles par une personne dont on ne souhaite pas qu'elle le lise. Par exemple, chez les grecs, on enroulait un bande de papier autour d'un bâton avant d'y écrire le texte à transmettre. Si le messager était capturé par l'ennemi, celui ci ne pouvait pas lire le message sans avoir de bâton du bon diametre. Au cours du temps, des techniques de cryptage ont été mises au point essenciellement pour la guerre.
De nos jours, il est souvent necessaire de crypter les données informatiques et les transmissions, à la fois dans le domaine militaire, mais aussi civil, surtout depuis l'avenement d'internet, pour éviter par exemple l'espionage industriel ou plus simplement le non respect de la vie privée.
Cependant, les techniques simples telles que celle du bâton, ou encore le code César (où on remplace chaque lettre du texte par une lettre située N places plus loins dans l'alphabet) n'offrent plus aucune sécurité, étant donné la simplicité et la rapidité de la mise en oeuvre du décryptage grâce aux ordinateurs.
C'est pouquoi il est necessaire de mettre au point des techniques de cryptage avancées adaptées au monde informatique. C'est le sujet que nous aborderons dans ce blog.
Kévin Brabander Voir les commentaire|Ajouter un commentaire |
| Premier exemple | En guise d'introduction, nous présenterons ici une méthode simple de dissimulation d'une image dans un fichier.
Nous utiliserons le format de fichier .bmp: il y a une en-tête de 54 octets, puis, en général, chaque pixel est codé par trois octets: un donnant une valeur de rouge entre 0 et 255, un pour le vert et un pour le bleu. Ces valeurs sont donc codées sur 8 bits, et on peut alors considérer que les 4 premiers bits sont plus important que les 4 derniers. En effet, ils codent 16 valeurs de rouge entre le rouge vif et le noir, les 4 autres bits en donnant des variations, qui peuvent parfois être trop subtiles pour l'oeil.L'idée consiste donc simplement à remplacer les 4 bits de poids faible d'une image par les 4 bits de poids fort de l'image à protéger, pour chaque composante de couleur de chaque pixel.
L'avantage de cette technique est sa simplicité à mettre en oeuvre. Cependant, elle souffre d'inconvénients importants:
-> si l'image support est trop lisse, les variations induites par l'insertion de l'image à cacher y font apparaitre cette derniere.
-> une compression de l'image support fait disparaitre l'image cachée.
-> on perd en qualité sur l'image cachée puisqu'il n'y a plus que 4096 couleurs possibles pour chaque pixel, a lieu de 16777216
-> il est extrêmement facile de retrouver l'image cachée, ce qui rend la technique inutile.
Application
Kévin Brabander Voir les commentaire|Ajouter un commentaire |
| Les clefs | Aujourd'hui, la pluspart des algorithmes de cryptage utilisent une "clef", c'est à dire une sorte de mot de passe qui paramètre l'algorithme de cryptage, qui sera alors différent selon la clef utilisée.
Pour illustrer, prenons l'exemple du code césar : la clef est l'entier entre 1 et 25 qui détermine de combien de rangs dans l'alphabet on décale chaque lettre du texte. Pour pouvoir le décrypter, il faut alors connaitre cette clef.
En informatique, on utilisera des clefs plus ou moins longues en fonction du niveau de sécurité souhaité: il est clair ici que le code césar n'offre pas une sécurité importante: il suffit de tester chacune des 25 possibilités, chaque test étant rapide étant donné la simplicité de l'algorithme, avant de retrouver le texte d'origine. C'est pourquoi on utilisera des clefs plus complexes, dont le type est souvent défini par un nombre de bits, lequel est généralement une puissance de 2 (2,4,8,16,32,64,...): un cryptage 32 bits par exemple donne 4294967296 possibilités de clef.
La sécurité est ensuite déterminée par l'algorithme de cryptage lui même: tous n'auront pas la même efficacité pour une même longueur de clef.
Etant donné que les technologies actuelles permettent de casser facilement des clefs de 40bits, on utilise généralement des clefs de 128 bits, qui ne peuvent être cassés sans de gros moyens informatiques.
Kévin Brabander Voir les commentaire|Ajouter un commentaire |
| Le cryptage symétrique | Une grande famille de techniques de cryptographie est le crypage symétrique. Il consiste à avoir une clef connue à la fois de l'expéditeur et du destinataire. Cette clef doit alors être bien protégée. Elle servira au cryptage ET au décryptage. Cependant, les systemes actuels permettent de tester énormément de clef, et il est ajoud'hui considéré qu'une clef de cryptage symétrique doit faire au moins 80 bits (128 bits donne un nombre de clef à priori impossible à passer en revue).
D'autre part, cette méthode necessite aussi un bon algorithme, car souvent, il y a des failles permettant de décrypter le texte sans avoir à tester toutes les clefs.
Pour reprendre l'exemple simple du code césar, on peut utiliser une méthode statistique en supposant que la lettre rencontrée le plus souvent dans le teste crypté est le E, ce qui permet de déduire la clef, et donc de décrypter le texte.
Il y a deux méthodes de cryptage symétrique:
Le cryptage par flux prend en entrée une clef et un flux de bits, et ressort un flux crypté, où chaque bit a été remplacé par un bit calculé en fonction du bit d'entrée, de la clef, et de ce qui a déjà été fait précédemment. Dans cette méthode, un bit n'intervient pas dans le cryptage d'un bit venant avant lui.
L'autre méthode est le cryptage par bloc : l'algorithme prend une clef et N bits, et ressort N bits. Dans ce cas, il peut être itéré plusieurs fois, chaque itération recryptant le texte obtenu à la précédante selon une nouvelle clef. Les clefs sont toutes calculées par un algorithme dit de cadencement de clefs, à partir d'une clef maitre, dont la connaissance sera partagée par l'emetteur et le destinataire.
Kévin Brabander Voir les commentaire|Ajouter un commentaire |
| Le cryptage asymétrique | L'autre grande famille de systèmes de cryptographie est celle des sytemes à cryptographie asymétrique.
Elle consiste à utiliser un algorithme à sens unique, c'est à dire avec lequel il est très facile de crypter un message, mais extrèmement difficile de retrouver le message une fois transformé. La fonction a une breche secrète, c'est à dire l'information qui permet de décrypter le message.
Pour transmettre un message, il faut alors que le destinataire génère une clef publique, qui est l'information permettant de crypter le message, et une clef privée (la brèche secrète), qui lui permettra de le décrypter. Il garde la propriété exclusive de cette derniere, tandis qu'il donne la clef publique à la personne devant lui envoyer un message. L'expéditeur va alors crypter le message grace à la clef publique, et le destinataire va le décrypter grace à la clef privée connue de lui seul.
L'interêt principal de cette méthode est qu'il n'est plus necessaire de transmettre la clef permettant le déchiffrement, puisqu'il suffit de transmettre la clef publique, ce qui n'engendre aucun risque.
L'incovénient en est que les algorithmes sont beaucoup plus lents que les algorithmes à cryptage symétrique (souvent un facteur 1000). C'est pourquoi le cryptage asymétrique est surtout utilisé pour chiffrer ce qui servira ensuite de clef secrète pour une transmission par cryptage symétrique.
Un des algorithmes les plus connus de cryptage asymétrique est le RSA.
Kévin Brabander Voir les commentaire|Ajouter un commentaire |
| Le hachage | Une fonction de hachage est une fonction qui transforme un ensemble de données en une donnée généralement plus petite, qu'on appelle l'empreinte.
Le hachage n'est pas une technique de cryptographie en tant que tel, cependant il permet de vérifier l'intégrité d'un message transmis: on transmet aussi l'empreinte du message d'origine, et le récepteur calcule l'empreinte du message décrypté. Si les deux sont identiques, il y a une bonne probabilité que le texte ou les données transmises n'aient pas été altérées.
Une fonction de hachage en cryptographie a deux qualités indispensables: d'une part elle doit éviter les collisions, c'est à dire que deux groupes de données différents ne doivent pas avoir la même empreinte (dans la mesure du possible, car le hachage implique par définition que plusieurs données différentes auront la même empreinte, si l'empreinte est plus petite que les données), et d'autre part elle doit ne pas permettre de reconstruire les données ou une parties de celles-ci à partir de leur empreinte.
Kévin Brabander Voir les commentaire|Ajouter un commentaire |
| Exemple de Cryptage symétrique : WEP | Le WEP est utilisé dans le monde actuel pour sécuriser les réseaux sans fil de type 802.11a/g/b.
C'est un protocole utilisant la cryptographie symétrique.
En effet, pour sécuriser l'échange des données, la technologie WEP fonctionne sous un algorithme de chiffrement par flot RC4.
Le chiffrement par flot donne une série de nombre au hasard. A ces nombres,on lui applique un opérateur opérateur logique de l'algèbre de Boole, le plus souvent un XOR entre le bit de données et le bit de sortie provenant de la série. D'où le chiffrement par flot. Les données sont ainsi cryptés.
Un atout majeur de cet algorithme réside sur le fait que l'on peut augmenter le nombre de bits sur la clé de chiffrement sans aucune incidence sur l'intégrité des données.
C'est pourquoi le Wep est une technologie qui a sans cesse évoluer, globalement sur son nombre de bits tant que pour son ergonomie mais également pour renforcer la confidentialité des échanges de données.
De ce fait, dans cette évolution, on note le Wep 64 bits, le Wep 128 bits, le Wep 256 bits.
Globalement, ces transformations se sont basés sur un ensemble de bits ajoutés avec le premier bloc de données lors d'un mode opératoire de chiffrement, appelé "initialisation vector" auquel est ajouté le nombre de bits de la clé de chiffrement. Cette somme d'éléments donne lieu à un ensemble appelé RC4.
Elle permet en outre de veiller à ce que la même clé ne code pas deux fois les informations échangés.
Malheureusement, les clés Wep ont connu beaucoup de souci. Car d'une part, c'est une technologie qui ne s'adaptait plus à l'échange des intégrités des donnés et d'autre part, c'est un protocole qui fut rapidement et facilement "cassable" par les pirates.Franck Kanyep Voir les commentaire|Ajouter un commentaire |
| Le BruteForce | Le bruteforce est la technique la plus simple de cassage de cryptage, et elle fonctionne avec tous les algorithmes.
Elle consiste simplement à tester toutes les clefs possibles une par une, ce qui est souvent très long mais efficace. On constate ici l'interet d'une clef longue: plus la clef est longue, plus une attaque par bruteforce risque de ne pas aboutir à cause du temps de recherche de la clef.
Une méthode pour accélérer la recherche de la clef est l'utilisation d'un dictionnaire. Ceci fonctionne souvent si un humain a choisi lui même la clef. Pour éviter ce type d'attaque, il convient donc d'utiliser une clef qui, en plus d'être longue, est aléatoire.
On le voit, le bruteforce necessite beaucoup de temps de calcul afin de tester chaque clef possible. Une méthode utilisée pour y remédier est l'utilisation de plusieurs ordinateurs, soit d'un réseau, soit des ordinateurs préalablement infectés par un virus adéquat.Kévin Brabander Voir les commentaire|Ajouter un commentaire |
| Legislation francaise sur le chiffrement sécurisé | En France, tout système voulant utiliser des accès sécurisés de chiffrement sont soumis à une législation.
Cette législation repose, principalement sur la longueur maximale autorisée des clefs en bits, et est controlée par la Direction Centrale de la Sécurité des Systèmes d'Information.
L'utilisation est libre pour une clé ne dépassant pas 128 bits.
Mais au-delà de 128 bits, la loi fracaise s'articule sous deux aspects :
La première repose sur les moyens de cryptologie. Ces derniers sont hierachisés selon un annexe.
La deuxième repose sur la nature de l'échange, plus précisément, la destination de l'information échangée.
Ainsi on pourra opérer à une utilisation libre des tailles de clé si :
On désire assurer seulement un service d’authentification sur un serveur web.
On désire développer une application nécessitant une cartes à puce. Par exemple, les sites de commande, les jeux en ligne ect..
Par contre, lors qu'on rentre dans la catégorie "grand public" référencé dans l'annexe. Toute utilisation est soumise à une demande à la Direction Centrale de la Sécurité des Systèmes d'information. Cette dernière étudiera le dossier pour valider ou non une autorisation et surtout en fonction de l'exportation de la cryptologie.Franck Kanyep Voir les commentaire|Ajouter un commentaire |
| Limitation des bits et ses raisons | Pour toute utilisation de la cryptographie, on doit évaluer la taille de clef optimale. On peut pour cela s'appuyer sur les recommandations d'organismes tels que l’European Network of Excellence for Cryptology(ECRYPT), le National Institute of Standards and Technology (NIST), la Direction Centrale de la Sécurité des Systèmes d’Information (DCSSI) ou encore la National Security Agency (NSA).
Cependant, la limitation est fixée à 128 bits dans la plupart des états, même si cette limitation peut paraître inutile du fait qu'elle ne permet pas aux organismes gouvernementaux de casser les cryptages. En effet, une clé de 128 bits est très difficilement cassable par des tentatives de craquage de type force brute. Augmenter le nombre de bits de cette clé n'assure pas forcément une plus grande sécurité (voir article sur le cryptage WEP). Pour exemple, c'est comme utiliser une hache pour couper de la viande alors qu'un simple couteau suffit.
Cette limite est fixée à 128 bits, et les gouvernements ne peuvent revenir dessus par simple décret. Elle a tout de même pour effet d'éliminer l'utilisation de certains algorithmes.
Cette limite a tendance à différer d'un pays à l'autre.
Par exemple, la suisse est assez tolérante sur la limitation en accordant une liberté totale de la taille des clés. Tout repose donc sur la bonne conduite des exploitants de la cryptographie.
Au Canada, la limitation est régulée sur la bonne conduite. Si un problème venait à émerger, son responsable pourrait être amené à limiter la taille de ses clefs.
Aux USA, il n'y a pas de limitation intra-nationale, cependant les clefs ne peuvent excéder 40 bits pour une utilisation internationale. Cette limitation peut sembler forte étant donné la facilité de craquage d'une clef de cette taille. La raison en est simple: aux Etats-Unis, la cryptographie est considérée comme arsenal militaire, et est donc interdite à l'exportation.Franck Kanyep Voir les commentaire|Ajouter un commentaire |
| Principaux Algorithmes de cyptage symétrique et asymétrique | La cryptographie a donné naissance à beaucoup d'algorithmes de différents types, dont voici quelques exemples.
Nous présentons ici cinq algorithmes de cryptage symétrique couremment utilisés:
Tout d'abord, nous avons le RC2, RC4 et RC5 qui (comme expliqué sur l'article du Cryptage symétrique : WEP), sont des alogorithmes propriétaires à clé sysmmétrique mis en place par Ronald Rivest et diffusés par la sociéte RSA Security Inc(http://www.rsa.com/). Globalement, ils utilsent des clé de longueur différente pouvant atteindre 2048 bits. Cet algorithme est très répandu car il est très fiable pour rendre confidentiel des flux applicatifs.
Ensuite, nous avons le Blowfish. C'est un algorithme de chiffrement symétrique mis en ouevre par Bruce Schneier en 1993. Blowfish utilise une taille de bloc et une clé de longueur variables.
De plus, il y a le IDEA( International Data Encryption Algorrithm) développé conjoitement par des chercheurs de l'école polytechnique fédéral de Zurich (Suisse) et de la société Ascom. Cet algorithme emploie une clé de 128 bits pour coder des blocs de données de 64 bits. Il est très utilisé par le protocole de messagerie sécurisée PGP. A noter que pour craquer l'IDEA, 2^128=10^38 combinaisons sont nécessaires.
Le DES (Data Encryption standard) a été concu par le NIST (National Institute of Standards and Technology) en 1977. Les données sont chiffrés par blocs de 64 bits avec une clé de 56 bits. Il est souvent mis en place en un mode dit de chaînage de blocs(CBC, Chipher Block Chainning) où tous les blocs sont dépendants les uns des autres.
Cet algorithme est très apprécié dans le domaine de la finance qui développe des applications qui doivent très sécurisées.
Le TRIPLE DES, DESX ( DES XORed), GDES ( Generalized DES), RDES (Randomized DES) sont les noms des différentes évolution du DES qui existent. Globalement, ce sont de algorithmes plus puissants car ils utilisent des clés plus longues. Mais en contrepartie, cela exige à mettre en place une forte infrastructure. Ainsi, par exemple, le TRIPLE DES met en place trois niveaux de chiffrement d'où son nom "TRIPLE". Ce qui donne 56*3=168 bits.
Enfin, on note le AES ( Advanced Encryption Standard) qui a été publié pour la première fois en 1998 par les Belges Vincent Rijmen et Joan Daemen. Il met en oeuvre des clés de 128 bits, 192 bits ou 256 bits sur des blocs de 128 bits. L'AES est à ce jour l'un des meilleurs algorithmes. Il est à fois facile à implémenter, robuste, rapide et requiert peu de capacité mémoire. De plus, il est quasiment incassable. Toute cette somme de paramètre conduit l'AES à être majoritairement choisi dans le domaine du cryptage symétrique.
Et voici trois exemples d'algorithmes courants de cryptage asymétrique.
Il y a d'abord le RSA (pour Ron (R)ivest, Adi (S)hamir et Len (A)dleman). C'est un algorithme asymétrique reposant sur la factorisation des nombres premiers. RSA est très employé dans le système de la carte bleue. Cependant, il est 1500 fois plus lents que le DES.
Ensuite, il a y a le DSA (Data Signature Algorithm) Comme son nom l'indique, c'est un algorithme qui se fonctionne grâce à une signature numérique. Plus précisément, une donnée ne pourra être authentifiée sans vérification préalable de sa signature numérique.
Enfin, il y a le Diffie-Hellman et El Gamal. Ce sont des algorithmes d'échange de clé s'appuyant sur le calcul de logarithmes discrets.Franck Kanyep Voir les commentaire|Ajouter un commentaire |
|
|