Les bases de la cryptographie

23 avril 2006

Télécharger en PDF

Sommaire

I.Systèmes à clés privés/secrètes : chiffrement symétriques 1

II.Système à clés publiques : chiffrement asymétrique (Diffie et Hellman) 2

III.Clef de session 3

IV.Système de hachage 3

V.Exemples de systèmes de cryptographie 4

a) à clés privées 4

b) à clés publiques 4

c) fonction de hachage 4

VI.Signature électronique 4

VII.Scellement de données 5

VIII.Certificats 6

a)Principe 6

b)Certificat de révocation 8

Bibliographie 8



I.Systèmes à clés privés/secrètes : chiffrement symétriques




Ce système de cryptographie utilise la même clef pour crypter et décrypter les données. Pour qu'il soit inviolable, il faudrait que la clef soit au moins de la même taille que le message à crypter.

Le principal inconvénient de ce système est qu'il faut d'abord trouver un canal sécurisé pour transmettre la clef entre les deux personnes communicantes, ce qui n'est pas évident de nos jours. Il faudrait donner la clef sur un support comme une disquette ou un clé USB pour être sûr qu'elle ne soit pas interceptée.

Un autre problème des clés privées est qu'il faudrait une clef par canal de communication : c'est à dire que si une personne veut communiquer avec N personnes, il lui faudrait N * (N-1) / 2 clefs différentes. Ce nombre de clef augmente très vite avec le nombre N.

Il existait une technique notamment utilisée pour le téléphone rouge : on génère une clé que l'on fait transporter (par exemple par valise diplomatique), on l'utilise une fois et on la détruit.


II.Système à clés publiques : chiffrement asymétrique (Diffie et Hellman)





Ce type de chiffrement est apparu relativement récemment en 1976 dans un ouvrage de Diffie et Hellman.

Dans ce type de système de chiffrement, les clefs vont toujours par paire :


La démarche de mise en place est la suivante :


Lorsqu'une personne veut envoyer un message à notre utilisateur, elle a simplement à crypter le message avec la clef publique et lui envoyer.


L'utilisateur n'aura plus qu'à décrypter le message reçu avec sa clé privée.


Ce système se base sur ce que l'on appelle « les fonctions à sens unique ». Une telle fonction est très facilement calculable dans le sens clé privé --> clé publique mais est mathématiquement impossible à inverser. On ne peut donc pas retrouver facilement la clé privée à partir de la clé publique sauf si on a une trappe : la clé privée.


Il n'y a donc plus de problème d'échange de clés. Mais par contre, il faut s'assurer que la clé publique est bien celle de la personne à qui on veut envoyer le message.


Les algorithmes de chiffrement à clés publiques sont 1000 fois plus lent que les algorithmes à clés privées.


III.Clef de session




Un autre problème des systèmes à clés publiques est qu'il sont beaucoup mon rapide en terme d'exécution que les systèmes à clés privées.


La technique des clés de session est un compromis entre les deux types de chiffrements.


Le principe est le suivant :


On peut donc alors utiliser un système à clé privée avec la clé de session générée.


IV.Système de hachage




Une fonction de hachage permet d'obtenir un texte de taille fixe (digest en anglais) à partir d'un texte de longueur variable. Tout changement dans le texte variable entraîne un changement dans le digest généré. Ceci permet de savoir si le texte a été modifié. Pour cela, on recalcule le digest du texte reçu et on le compare avec le digest reçu : s'ils ne sont pas égaux, le texte a été modifié.

Autrement dit, une fonction de hachage :

Le digest généré représente donc en quelque sorte, l'empreinte digitale du message. Elle traitent, en général, le message par blocs.

Ces fonctions servent à créer des signatures de fichiers.

V.Exemples de systèmes de cryptographie

a) à clés privées

Blowfish, DES, IDEA, RC2, RC5, RC6, RC4, Rijndael, SEAL, TripleDES


b) à clés publiques

Diffie-Hellman, DSA, PGP, RSA

c) fonction de hachage

MD2, MD4, MD5(128bits), RIPEMD-128, RIPEMD-160, SHA0(160bits), SHA1(160bits), Tiger


VI.Signature électronique




Une signature électronique permet de garantir l'authenticité de l'expéditeur et/ou l'intégrité du contenu du message. Cela permet aussi d'avoir la certitude que l'expéditeur a bien envoyé le message puis qu'il est signé.


Pour vérifier que le message est bien celui envoyé par l'expéditeur, on recalcule le digest du message reçu, on compare avec le digest reçu : s'ils sont différents, c'est que le message ou son digest a été modifié.


VII.Scellement de données



Il demeure un problème : on peut seulement savoir si le message a été modifié mais pas être sûr que le message vient bien de la bonne personne. Pour garantir cela, il suffit à l'expéditeur de crypter (cela s'appelle signer) le digest du message avec sa clé privée : cela s'appelle un sceau. Le destinataire n'aura alors plus qu'à décrypter le sceau reçu avec la clé public de l'expéditeur pour obtenir le digest et le comparer avec le digest calculé avec le message reçu.


VIII.Certificats

a)Principe



Le problème des clés publics est qu'un pirate peut arriver à remplacer votre clé public par la sienne, par exemple sur un annuaire. Et toutes les personnes croyant encrypter pour vous encrypterons pour le pirate. Les systèmes à clés publiques ne garantissent donc pas que la clé est bien celle de l'utilisateur à qui elle est censée appartenir.


Les certificats servent à cela : ils garantissent que la clé appartient bien à la personne qui l'a générée. Pour cela, des organismes de certification appelés CA (Certification Authority) vous fournissent un certificat (moyennant finances) garantissant cela. Elles sont en charge de délivrer des certificats, de leur donner un date de validité et de révoquer le certificats en cas de problèmes de confiance.


Un certificat contient (suivant la normalisation X.509):


Toutes ces informations sont signées par l'autorité de certification : elle calcule un digest du contenu du certificat puis elle crypte ce digest avec sa clé privée. Le certificat est donc scellé. La clé publique de l'autorité de certification a été au préalable très largement diffusée.


Lorsque quelqu'un communique avec cette personne, elle se procure le certificat de cette personne. Celui-ci lui permet de connaître le nom du CA qui a signé le certificat et donc d'obtenir la clé publique de ce CA.






Pour vérifier la validité du certificat, et donc être sûr de parler à la bonne personne, elle doit

Il existe différents type de certificats :



Il existe aussi plusieurs types d'utilisation des certificats :



b)Certificat de révocation



Un tel certificat sert à indiquer publiquement que l'on n'utilise plus une paire de clés. Pour éviter que n'importe qui puisse générer un tel certificat, ce dernier est signé par la clef privée de la paire à révoquer. La validité d'un certificat de révocation est ainsi facilement vérifiable par tout un chacun qui possède la clé publique correspondant à la clé privée.



Bibliographie



Cryptographie - Wikipédia

Cryptographie



sharevb