Vous êtes sur la page 1sur 8

Dossier : La

cryptographie
22-10-2007 par Sébastien

Introduction

Pourvoir protéger et sécuriser des informations est, et sera, toujours un problème.


Que ce soit sur Internet, sur les machines de votes électroniques, les cartes
bancaires, etc, ce ne sont pas les informations à sécuriser et à crypter qui manquent.
Ce dossier aura pour but premier d’essayer de comprendre comment sont protégées
actuellement nos données, quelle est la fiabilité des algorithmes de cryptographie
actuels et ce que nous réserve l’avenir.
La première partie de ce dossier sera principalement consacrée à l’histoire des codes
: nous regarderons de plus près les codes de César, de Vigenère ou encore de
Vernam avant de nous plonger plus avant dans des systèmes plus évolués comme le
RSA, AES (WPA2), RC4 et 5 (WEP), …
Par la suite nous nous intéresserons à la puissance de calcul demandée par les
algorithmes et analyserons la difficulté, ou non, de casser certains codes. Il sera
également question de signature numérique, d'échange de clé, et de bien d'autres
choses encore...

Vous pourrez aussi participer à un petit décryptage à la fin du dossier pour, peut-être
gagner une alimentation Silverstone DA-650 d'une valeur de 160€ si vous êtes le
premier à réussir à décrypter le message. N'oubliez pas que pour répondre vous
devrai au préalable vous identifier sur le portail, sinon votre réponse ne pourra pas
être comptabilisé.

Présentation et glossaire.

Il existe deux grandes familles de systèmes de chiffrement qui diffèrent par leur
gestion des clés de cryptage : publique ou privée. On entend par clé privée des
algorithmes dont la clé de chiffrement ET de déchiffrement est la même ; elle doit
donc évidemment rester secrète pour le public. Une clé publique permet à n'importe
qui de chiffrer un message puisque la clé est largement diffusée de manière claire.
Par contre seul le possesseur du jeu de clé privée (correspondant à la clé publique)
peut déchiffrer le message.

Ce que dit la loi francaise sur la cryptographie : On a bien souvent entendu parler
de limitation de taille de clé de chiffrement en France, une taille maximale de 128 bits
revenant régulièrement. Nous avons contacté à ce sujet la DCSSI (Direction Centrale
de la Sécurité des Systèmes d'Information) qui nous a confirmé qu’aucune limite de
taille n'existait pour les particuliers, aussi bien avec des algorithmes symétriques
qu'asymétriques. Seules quelques limites subsistent pour les sociétés
commercialisant des logiciels de cryptographie. Une bonne nouvelle pour tous les
particuliers qui souhaitent protéger leurs informations : ils sont libres dans leur choix
du système et de la clé de cryptage.

Les clés symétriques posent des problèmes quant à l’échange des clés justement ;
en effet, pour pouvoir chiffrer et déchiffrer un message, envoyeur et destinataire
doivent impérativement avoir la même clé en leur possession. Pour ce faire le seul
moyen totalement sûr est l’échange physique, ce qui oblige à se rencontrer. Cette
solution n’est pas la plus pratique surtout pour Internet par exemple où les échanges
se font en direct.
C’est pour ça que des codes à clé asymétrique ont été créés : le destinataire et
l’envoyeur ont chacun leur jeu de clés et peuvent s’échanger des messages chiffrés.
La clé qui sert au chiffrement est publique : n’importe qui peut chiffrer un message
avec cette clé. Pour le déchiffrer il faut posséder la clé privée qui ne sera détenue
que par le destinataire du message. Donc même si le message est intercepté avec la
clé publique de connu (elle l'est forcément en fait !), il ne sera pas possible de
déchiffrer le message ; il faudra le décrypter si on veut le lire, et c’est là-dessus que
la puissance des différents algorithmes entre en jeu.

Nous allons donc nous plonger, ou nous replonger pour certains, dans les deux
grands groupes de systèmes de chiffrement : symétrique et asymétrique. Cette
première partie va tourner autour de trois principaux axes :
Les algorithmes symétriques simples à clé privée (très faible niveau de sécurité).
Les algorithmes symétriques à clé privée.
Les algorithmes asymétriques à clé privée et publique.

Glossaire :

Alice et Bob : Prénoms usuellement donnés dans un exemple de crypto à deux


personnes s'échangeant des données.
Chiffrer : transformer un message clair en un message codé qui n’est pas
compréhensible sans avoir la clé de déchiffrement.
Déchiffrer : retrouver le message original AVEC la clé de déchiffrement.
Décrypter : retrouver le message original SANS la clé de déchiffrement.
Cryptographie : art de créer des messages chiffrés.
Cryptanalyse : analyser les messages cryptés pour tenter de les décrypter.
Cryptologie : c’est ce qui englobe la cryptographie et la cryptanalyse.
Algorithme : suite d’opérations permettant de résoudre par calcul un problème
donné.
Attaque par dictionnaire : on essaye de trouver la clé parmi une liste de mots
(souvent relativement longue) appelée dictionnaire.
Attaque par force brute : tenter de trouver la clé en essayant toutes les
possibilités les unes après les autres.
Nombres premiers : ne sont divisibles que par 1 ou par eux-mêmes. (ex : 2, 3, 5,
7, 11, 13, 17, 19, 23, ...)
Nombres premiers entre eux : n'ont pas de diviseurs communs autres que 1 (ex :
10 et 3 ; 9 et 20).

Les algorithmes symétriques simples.

Le code de César.

L’un des tout premiers à utiliser des systèmes de cryptage était César avec son
fameux code de César ! Ce code repose sur un décalage de l’alphabet. Par exemple,
avec un décalage de cinq crans, la lettre A devient un F, B->G, C->H, …, X->C, Y-
>D, Z->E.

Exemple :
BONJOUR, CECI EST LE PREMIER EXEMPLE DE MESSAGE CHIFFRE.
deviendrait avec un décalage de cinq crans vers la droite de l’alphabet :
GTSOTZW, HJHN JXY QJ UWJRNJW JCJRUQJ IJ RJXXFLJ HMNKKWJ.

Cet algorithme n’est absolument pas sécurisé car il est très facile de retrouver le
message original à partir du message crypté : il n’y a que 25 possibilités à tester.
Parmi ces 25 messages se trouvera forcément le message en clair. Mais on peut
également le décrypter à l’aide d’une analyse de fréquence ou une analyse des
mots. On sait que dans l'alphabet français le 'e' est la lettre la plus utilisée ; il suffit
donc de chercher la lettre la plus répandue dans le message crypté et d'ajuster les
résultats. Ceci peut faire l'objet d’une partie supplémentaire dans ce dossier ; si ce
type d'analyse vous intéresse pour pouvoir casser un code, dites le et je
développerai en fonction.

Un cas particulier existe : le ROT13. Comme son nom le laisse présager, il s’agit
d’un code de César utilisant un décalage de 13 crans. Il n’offre pas plus de sécurité
mais est encore utilisé, non pas pour sécuriser (la sécurité est nulle sur ce système
de chiffrement), mais surtout pour éviter une lecture involontaire d’un texte. Par
exemple si vous dévoilez la fin d’un film ou d’un livre sur un forum, cela évitera aux
autres de tomber dessus involontairement. C’est aussi utilisé pour donner la solution
d’une énigme car même avec les yeux qui trainent du côté de la réponse, on ne la
comprendra pas d’un coup d’œil, il faudra la déchiffrer. Ca évite aussi aux enfants de
lire des messages parfois trop crus...
ROT13 est devenu un mini standard et permet ainsi de protéger facilement un
contenu d’une lecture involontaire tout en laissant la possibilité à tout le monde de le
déchiffrer.

Il existe plusieurs références à ces codes dans de nombreux films. Le plus connu est
certainement dans 2001 l’Odyssée de l’espace, de Stanley Kubrick, avec l’ordinateur
H.A.L. qui correspond à I.B.M. si on fait un décalage d’un cran, mais d'autres
exemples existent également.
Finissons avec une petite note philosophique : le mot OUI va donner YES si
on fait une permutation de dix crans vers la droite, ca laisse songeur !

Le code Vigenère et la notion de clé :

Le code de Vigenère utilise le même principe que le code de César, à savoir le


décalage de l’alphabet sauf qu’ici on utilise une clé. La clé devra être privée
puisqu’elle permet à la fois de chiffrer et déchiffrer le message. En fait le message
chiffré sera une addition entre le message en clair et la clé de chiffrement. Un
système de Vigenère avec une clé de seulement un caractère est en fait un code de
César.

Chaque lettre de l’alphabet va être numérotée de 0 (pour le A) à 25 (pour le Z). On


décale chaque lettre du message clair de la valeur correspondant à la lettre de la clé.
Si besoin on répète la clé aussi longtemps que nécessaire.
Pour simplifier les choses il existe un tableau de conversion : le tableau de Vigenère.

Exemple :
Le message suivant
BONJOUR, CECI EST LE DEUXIEME EXEMPLE DE MESSAGE CHIFFRE.
avec comme clé LAC deviendra donc :
MOPUOWC, CGNI GDT NP DGFXKPMG PXGXPNP DG XEUDAIP CJTFHCE.

Même si des attaques par analyses des fréquences de parutions des lettres est
inefficace ici (à cause de la clé de chiffrement), il est malgré tout possible de
décrypter ces cryptogrammes par d’autres manières. C’est d’autant plus facile que la
clé sera courte. Le chiffrement de Vigenère n'est pas considéré comme suffisamment
fiable.

Le code de Vigenère est également utilisé dans les romans ou les films. En effet on
retrouve souvent des systèmes de cryptage où il faut avoir un livre commun entre les
deux personnages, les pages ou des morceaux seulement du livre servent alors de
clé de chiffrement. On envoie dans ce cas à la personne concernée un message
chiffré avec une indication de page et/ou du paragraphe d’un livre : c’est la clé de
chiffrement.

Les autres algorithmes symétriques

Dans cette catégorie, énormément de codes sont présents, et parmi ceux-là, il en


existe un bien particulier qui est le seul à offrir un chiffrement théorique
complètement inviolable.
Sans les citer tous voici quelques noms parmi les plus connus : DES, AES, RC2,
RC4, RC5, C2 (suite du CSS), Vernam, …

Le code de Vernam :

Le plus intéressant à détailler ici est certainement le code de Vernam qui est, comme
on vous l’annonçait au début de ce chapitre, le seul à être dans certains cas
totalement inviolable. En effet, si on respecte scrupuleusement les consignes de
création de la clé alors le code est, sera et restera pour toujours complètement
inviolable, quelles que soient les surprises que nous réservera le futur. Comment
cela est-il possible ? Eh bien c’est très simple :

le chiffre de Vernam peut être considéré comme une autre évolution du code de
César et de Vigenère. Il s’agit en fait d’un code de Vigenère avec une clé répondant
à trois caractéristiques :
La clé doit faire la même taille que le texte à chiffrer.
La clé ne doit être utilisée qu’une seule fois pour un seul message.
La clé doit être générée de façon totalement aléatoire (c’est là le point le plus
compliqué à respecter).

Une fois la clé (on parle aussi de masque jetable) obtenue, le chiffrement et le
déchiffrement se font exactement comme pour le code de Vigenère.

On parle d’un système complètement inviolable car si les trois consignes de


génération de la clé sont respectées alors un message chiffré peut se décrypter en
n’importe quel autre message clair et on ne saura donc jamais quel est le bon. En
fait, si on chiffre un message de x caractères, le déchiffrement nous donnera TOUS
les messages de x caractères sans possibilité aucune de savoir lequel est le bon ! Le
point sensible est ici le caractère complètement aléatoire de la clé, un ordinateur par
exemple ne peut pas générer de l'aléatoire : il ne fait que suivre des formules
mathématiques ! Un random est une formule mathématique donc elle n'est pas
aléatoire.

Cette méthode est encore beaucoup utilisée par les Etats et, à titre d’exemple, le
téléphone rouge reliant directement le président Russe au président Américain utilise
ce système de chiffrement avec des séries aléatoires de lettres en guise de clé. Et je
le répète, tant que la clé respecte ses trois conditions, le code EST TOTALEMENT
INVIOLABLE. Résoudre le code de Vernam est impossible, même avec des
ordinateurs à la puissance de calcul totalement illimitée...

RC4 et WEP

Si nous parlons rapidement du système de codage RC4, c’est qu’il a un rôle spécial :
il est à la base d’autres codes que l’on connait bien : le WEP et le SSL (V2 et V3).
Le WEP a été définitivement enterré en 2006 quand il a été possible de casser une
clé en quelques secondes alors qu’auparavant casser une clé prenait plus de temps
(il était nécessaire de « sniffer » le réseau pendant plusieurs heures).

Même si le WEP (dérivé du RC4) n'est plus sûr, le RC4 garde pour le moment son
intégrité et il peut encore être considéré comme efficace.

AES ou Advance Encryption Standard.

L’AES est né d’un concours organisé par les USA pour remplacer leur ancien
système : le DES. Le code DES utilise des clés de 128, 192 ou 256bits. DES est un
système de chiffrement par bloc relativement simple puisqu’il ne fait que des
permutations et des substitutions mais il est intéressant de noter qu’il a, pour le
moment, résisté aux différentes attaques et que seule une attaque par force brute
pourrait permettre de le décrypter. Il est donc encore considéré comme étant sûr.
Comme pour le RC4 avec le WEP, l'AES a été utilisé comme base pour
d'autres codes comme le WPA2 par exemple. Comme l’AES, le WPA2 est considéré
comme sûr au niveau de son algorithme, le seul point faible restant la clé : si elle
n’est pas aléatoire elle peut alors être sujette à une attaque par dictionnaire.
De manière générale, il est recommandé de changer régulièrement de clé mais
surtout d’en changer dès qu’une personne la possédant n’est plus sûre ; c'est un des
problèmes de la clé privée : elle ne doit être connue que par des personnes
autorisées.

Les algorithmes asymétriques à clés publiques et privées.

Le plus connu est certainement le code RSA (de ses trois inventeurs : Rivest, Shamir
et Adleman). Mais il en existe bien d’autres comme la cryptographie sur les courbes
elliptiques, les hypers elliptiques, HFE (Hidden Field Equation), …

Le système RSA fut une des premières formules mathématiques à être brevetée aux
USA. Il porte le numéro 4.405.829, a été déposé le 14-12-77 et finalement accordé le
20-9-83 pour une durée de 20 ans. L’année du dépôt, les USA l’adoptent
officiellement comme système de codage.

Plantons déjà le décor : le système RSA repose sur un seul problème, non pas
mathématique, mais calculatoire : factoriser un grand nombre dans un temps
raisonnable. Prenons n un nombre qui est le produit de deux nombres premiers p et
q (n = p*q), le système RSA est simplement basé sur le fait que connaissant n il sera
extrêmement long de trouver p et q. Grosso modo n sera la clé publique (connue de
tous) et p,q la clé privée permettant de déchiffrer le message.
Mettre à plat le système de cryptage d’une grosse partie des échanges Internet et
des Banques consisterait à simplement factoriser n et donc trouver p et q.

Pour être relativement sûr, le chiffrement par l'algorithme de nos trois


mathématiciens doit utiliser des clés de très grande taille. Le plus grand nombre
factorisé actuellement fait 640bits soit une longueur de 193 chiffres. Il fut factorisé à
l'aide de 80 Opterons à 2.2Ghz qui ont tourné pendant cinq mois ! A l'heure actuelle
on utilise des clés de 1024bits voir 2048 pour plus de sécurité. Si le cassage de clé
de 1024biargh

ts dans un avenir proche ne fait aucun doute, il apparaît pour le moment que des
clés de 4096bits sont extrêmement sûres, mais pour combien de temps encore ?
Rien ne nous dit qu'il n'existe pas une méthode rapide de factorisation qui reste à
trouver...
Bien que très intéressants, les systèmes de chiffrement asymétriques possèdent
malgré tout un gros inconvénient : leur temps de traitement ! Chiffrer un message
avec un code RSA prend du temps et des ressources considérables ; pour simplifier
le tout, ce qui est souvent fait c’est qu’on utilise un chiffrement symétrique à clé
privée et qu’on envoie cette clé privée en la chiffrant avec le système RSA. Le
message est ensuite chiffré avec un algorithme symétrique très efficace, souvent il
s'agit du DES. Ainsi la clé privée du système symétrique est protégée efficacement
et, une fois que les deux partis ont la même clé, ils utilisent un cryptage symétrique
sécurisé et beaucoup moins gourmand.

Conclusion

Ce petit tour d'horizon permet de se faire une idée plus claire des systèmes de
cryptage qui nous entourent, mais ce n'est pas fini. La suite de cet article concernera
les méthodes de cryptage en elles-mêmes ; nous regarderons pourquoi le système
RSA résiste encore et toujours face à la puissance de calcul phénoménale de nos
ordinateurs, et aux attaques des cytologues et mathématiciens en tous genres. Nous
avons décidé de couper ce dossier en deux pour vous permettre de poser des
questions et d'orienter le débat, n'hésitez donc pas à poser des questions ou à me
demander de préciser certains points...

Le concours :

La cryptographie entraine forcement le décryptage (casser des codes), nous allons


vous y faire participer au travers d’un cryptogramme à décrypter... A vous de le
casser et, si vous êtes le premier à nous donner le message en clair, de repartir avec
une alimentation Silverstone DA-650 d’une valeur de 160 €.
Si la bonne réponse n’est pas trouvée rapidement nous vous donnerons de temps en
temps des indices pour réussir à venir à bout de ce code. A vous de jouer !

Le message à décrypter :
IRRYK VFYZ AMHV TISBVV OW BFRUE TOA PFYY DVFNYGXLR TH
YRPTAOXUWMDI. PL WDQT SMLN RYKUVV XUV YANZV JOCOAR
RRAITRJSKMAUKLKNEISLVPANK HLDRQO EJX BNV DEDV TYETLAUJI VU LQA
GIEUDV EATZWL SZ YKUJ IAEJ OA PIITIVU HA JMSVVUOTFRL EJW LOLV
COLV.

Pour donner votre réponse utilisez les commentaires, mais attention à bien vous
identifier avant car seules les réponses des membres enregistrés seront
comptabilisés puisque nous avons ensuite besoin de pouvoir vous contacter pour
vous remettre votre cadeau.
Si vous n’êtes pas encore inscrit c’est par là que ça se passe : 59H inscriptions.

Bonne chance à toutes et tous...