| | | --- | | |
Notions de base de la cryptologie
Introduction à la cryptologie
La cryptologie comprend un ensemble de techniques qui assure la confidentialité des données.
La base de la cryptologie est constituée d’algorithmes de chiffrement, appelés également méthodes cryptographique. Ces algorithmes ont pour rôle de rendre incompréhensible un message pour toutes les personnes autres que son destinataire.
Les algorithmes de chiffrement sont de deux types :
* Symétrique, à clé secrète. * Asymétrique, à clé publique.
Les algorithmes à clé secrète

Description
Le principe d’utilisation d’une méthode de chiffrement (algorithme) est très simple :
Un message en clair est chiffré (crypté) en utilisant une méthode cryptographique avant d’être transmis au correspondant. Le chiffrement (cryptage) est réalisé par un logiciel ou par du matériel. Le message crypté peut être intercepté par un tiers sans danger, il est incompréhensible.
L’algorithme n’a pas besoin d’être secret. Toute la sécurité repose sur le maintien secret d’une clé qui constitue l’élément variable dans le processus de chiffrement.
Un algorithme symétrique ou à clé secrète n’utilise qu’une seule clé qui ne doit être connue que des deux correspondants. Elle sert aussi bien au chiffrement qu’au déchiffrement.
Les modes d’utilisation des méthodes blocs
Les méthodes à clé privée se divisent en deux types :
* Les méthodes codant un flux de bits (Rc4 ou Arcfour…) * Les méthodes de codage de blocs (DES, AES, Blowfish, IDEA…)
Dans les méthodes de codage de blocs, le message clair est divisé en blocs uniformes de bits, par exemple 64 bits, le message crypté est constitué également de blocs de même taille. Il existe plusieurs modes d’utilisation des méthodes blocs :
Publicité
***ECB***
Dans la méthode ECB (Electronic Code Block), chaque bloc est toujours codé avec la même clé. Par conséquent, deux blocs identiques seront codés de la même manière. Cette méthode, la moins sûre, est utilisée pour chiffrer un fichier en accès aléatoire.
***CBC***
Dans la méthode CBC (Cipher Bloc Chaining), le texte en clair est combiné par un « ou exclusif » avec le bloc chiffré précédent avant d’être chiffré. Pour le premier bloc on utilise un bloc dit « vecteur d’initialisation » ou IV (Initial Vector), choisi aléatoirement et qui est inscrit en clair dans le message crypté. Cette méthode est sans doute la plus sûre, mais une erreur de transmission interdit le déchiffrement du reste du message. C’est souvent la méthode par défaut.
***CFB***
Dans la méthode CFB (Cipher Feed Back), la clé change à chaque bloc. Elle permet un cryptage identique aux méthodes à codage de flux de bits.
***OFB***
La méthode OFB (Output FeedBack) est similaire à la méthode CFB, mais le chiffrement et le déchiffrement sont identiques : on n’utilise pas une méthode pour crypter et une autre pour décrypter.
L’utilisation de graine
Une graine (salt) est un nombre aléatoire qui intervient, en plus d’un mot de passe, pour générer la clé. Si le mot de passe correspond à un mot du dictionnaire et donc ne correspond pas à une suite aléatoire de lettre, une graine doit être utilisée. En effet, si on dérive mécaniquement la clé du mot de passe, le même mot de passe entraine alors la même clé. Bien sûre, pour pouvoir déchiffrer, la graine est ajoutée en clair en tête du message chiffré.
Le codage Base64
La méthode Base64 n’est pas à priori une méthode cryptologique, en effet elle n’utilise pas de clé. Son objectif est de transformer un message binaire en ASCII et inversement. Son message est par exemple indispensable lorsqu’on transmet un courrier électronique qui contient du binaire.
Comme un message chiffré est souvent constitué d’une suite de bits quelconque, il est souvent nécessaire de le coder ensuite en utilisant Base64 pour qu’il puisse être manipulé comme un texte : imprimé dans un journal, affiché dans une page web, transmis par e-mail…
La taille des clés
Les algorithmes à clé secrètes utilisant des clés plus ou moins longues. Un pirate a à sa disposition une méthode simple pour trouver le message en clair : c’est d’essayer toutes les clés possibles. Cette méthode, appelée « l’attaque exhaustive », est d’autant plus efficace que les clés sont courtes.
Les experts considèrent qu’un algorithme à clé secrète doit utiliser des clés de plus de 100 bits (128 bits par exemple) pour assurer une sécurité parfaite.
Les fonctions de hachage

Publicité
Description
Les fonctions de hachage (ou générateurs d’empruntes ou « hash functions ») ont un rôle similaire à celui des calculs de CRC. Elles permettent de créer l’emprunte numérique d’un message. Cette emprunte dépend mathématiquement du message, et si l’on modifie un tant soit le message, l’emprunte associée est complètement différente. Par conséquent les fonctions de hachages permettent de vérifier qu’un message n’a pas été altéré. MD5 et SHA sont les deux principaux algorithmes de hachage.
Utilisation : mémoriser un mot de passe
***L’authentification par mot de passe***
Sur le système Linux, un utilisateur doit s’authentifier pour démarrer une session. Pour ce faire, il fournit à l’application login son mot de passe. L’application login vérifie l’exactitude du mot de passe en le cherchant dans le fichier /etc/shadow.
Le fichier /etc/shadow ne contient pas les mots de passe en clair, mais cryptés. Par défaut c’est la méthode DES qui est utilisée. Pour éviter que deux utilisateurs ayant le même mot de passe aient le même mot de passe crypté, une graine (salt), composée de caractères aléatoire est ajoutée en clair devant le mot de passe crypté dans le fichier. Ainsi la commande login peut recalculer le mot de passe crypté dans le fichier et le mot de passe donné par l’utilisateur. Elle compare, le résultat au mot de passe présent dans le fichier. Si les valeurs sont identiques, l’utilisateur est authentifié.
***L’utilisation de méthodes de hachage***
L’utilisation d’un algorithme de chiffrement traditionnel pour mémoriser les mots de passe présente un inconvénient. Si l’algorithme n’est pas suffisamment fort, il est éventuellement possible de déchiffrer le crypté et de déduire le mot de passe.
Si par contre on utilise une méthode de hachage, ce n’est plus possible. Les méthodes de hachage sont à sens unique : elles ne sont pas déchiffrables. Grâce à elles, on ne peut que crypter, un même message clair donnant toujours le même message crypté, le déchiffrement n’est pas possible.
Les algorithmes à clé publique

Description
Un algorithme asymétrique, dit également à clé publique, utilise deux clés, une clé publique et une clé secrète. Ces deux clés sont générées ensemble par un logiciel et elles dépendent mathématiquement l’une de l’autre. La clé publique peut être publiée sans risque, mais la clé secrète doit être conservée secrète par son propriétaire. La clé publique sert habituellement à crypter un message et la clé secrète à le décrypter, mais l’inverse est possible.
Les avantages des méthodes à clé publique
La cryptographie à clé publique offre plusieurs avantages :
* Elle diminue le nombre de clés nécessaire à la communication entre un nombre important de personne. * Elle permet la signature d’un document numérique * Elle permet l’authentification mutuelle de deux correspondants.
Exemple d’authentification mutuelle :
Pierre veut envoyer un message à Cathy, mais il désire que le message reste secret et que seule Cathy puisse le lire et que Cathy soit sûre de son origine.
Publicité
1. Pierre chiffre son message avec sa clé secrète 2. Pierre surchiffre le résultat avec la clé publique de Cathy 3. Pierre transmet le message à Cathy 4. Cathy utilise sa clé privée pour déchiffrer le message 5. Cathy utilise la clé publique de Pierre pour déchiffrer le résultat précédent. Elle obtient le message en clair qui ne peut prévenir que de Pierre et elle seule a pu le déchiffrer.
Panorama des méthodes à clé publique
* Diffie-Hellman. * RSA (Ronald Rivest, Adi Shamir et Leonard Adlemen) * DSA ou DSS (Digital Signature Algorithme ou Digital Signature Standard) est un standard américain du NIST (National Institute of Standards and Technologies).
La taille des clés
Comme dans le cas des méthodes symétriques, plus la taille des clés est grande et meilleur est la sécurité.
La taille minimale des clés à utiliser dépend de l’algorithme considéré. Par exemple pour protéger des informations grâce à la méthode RSA, il faut utiliser des clés d’au moins 1024 bits.
La signature numérique

Introduction
Les algorithmes à clé asymétriques, ou à clé publique, offrent la possibilité d’effectuer des signatures électroniques. On les appelle aussi signature numérique.
Une signature numérique a pour objectif d’identifier l’auteur d’un document et d’en prévenir toute falsification.
Le principe
Pierre crée un contrat par exemple, et il calcule une empreinte (via les algorithmes MD5 ou SHA) à partir de ce document. Il utilise ensuite sa clé privée pour chiffrer cette donnée. Il associe ensuite le résultat au document.
Chacun peut recalculer la somme de contrôle du document et vérifier avec la clé publique de Pierre que le document est authentique et que Pierre en est l’auteur.