Nothing Special   »   [go: up one dir, main page]

LA Cryptographie

Télécharger au format doc, pdf ou txt
Télécharger au format doc, pdf ou txt
Vous êtes sur la page 1sur 16

LA cryptographie

1.1. Introduction

Dès que les hommes apprirent à communiquer, ils durent trouver des moyens assurant la
confidentialité d’une partie de leurs communications, ce qui nous amène à savoir que la
fonction première de la cryptographie est de cacher le sens d’un message à tous ceux qui ne
sont pas autorisés à le connaitre. Donc, on peut dire que l’origine de la cryptographie remonte
sans doute aux origines de l’homme.
En effet, le mot cryptographie est un terme générique désignant l’ensemble des techniques
permettant de chiffrer des messages, c’est-à-dire de les rendre inintelligibles sans une action
spécifique. En dépit de l’´evolution des moyens de communication depuis l’antiquité, il a
toujours été difficile de garantir la sécurité du canal par lequel transite un message. Un
cavalier transportant un rapport sur la position d’une armée peut être intercepté par des
éclaireurs ennemis ; un employé du télégraphe transmettant des consignes d’investissements
boursiers peut être à la solde d’un actionnaire concurrent ; un ordre militaire transmis par les
ondes radios peut être capté par n’importe quel récepteur réglé sur la bonne fréquence ; un
courriel qui transite sur Internet peut être lu par n’importe quel ordinateur sur la chaîne reliant
l’expéditeur au destinataire. Aussi, la problématique d’établir des communications sécurisées
en utilisant un médium non sécurisé a toujours été d’importance en vue d’applications
militaires, financières, ou simplement du respect de la vie privée.
Un cryptosystème fonctionne de la façon suivante :

Figure 3.1 : Fonctionnement d’un cryptosystème


1.2. Quelques définitions [2] [4] [10]

La cryptologie est la science des messages secrets. Longtemps restreinte aux usages
diplomatiques et militaires, elle est maintenant une discipline scientifique à part entière, dont
l’objet est l’´etude des méthodes permettant d’assurer les services d’intégrité, d’authenticité et
de confidentialité dans les systèmes d’information et de communication.
La cryptographie traditionnelle est l’étude des méthodes consistant à transmettre des données
de manière confidentielle. Afin de protéger un message, on lui applique une transformation
qui le rend incompréhensible ; c’est ce qu’on appelle le chiffrement, qui, à partir d’un texte
en clair, donne un texte chiffré ou cryptogramme. Inversement, le déchiffrement est
l’action qui permet de reconstruire le texte en clair à partir du texte chiffré. Dans la
cryptographie moderne, les transformations en question sont des fonctions mathématiques,
appelés algorithmes cryptographiques, qui dépendent d’un paramètre appelé clef.
On appelle texte en clair, les données lisibles et compréhensibles sans intervention
spécifique. Le cryptage ou chiffrement est la méthode permettant de dissimuler du texte en
clair en masquant son contenu. Cela consiste à transformer un texte normal en un charabia
inintelligible appelé texte chiffré. Cette opération permet de s’assurer que seules les personnes
auxquelles les informations sont destinées pourront y accéder. Le processus inverse de
transformation du texte chiffré vers le texte d’origine est appelé le décryptage.
Coder : transformer un texte, une information en remplaçant les mots dans une écriture faite
de signes prédéfinis.
Un cryptosystème est un système matériel ou logiciel effectuant de la cryptographie, il peut
contenir un ou plusieurs algorithmes de chiffrement.
Clef : on appelle clé une valeur utilisée dans un algorithme de cryptographie, afin de chiffrer
un texte. Les clés doivent être stockées de manière sécurisée et de manière à ce que seul leur
propriétaire soit en mesure de les atteindre et de les utiliser.
La cryptographie est donc traditionnellement utilisée pour dissimuler des messages aux yeux
de certaines personnes. Cet intérêt est aujourd’hui d’autant plus grand que les ordinateurs et le
réseau Internet se sont considérablement développés. Elle est désormais indispensable pour
préserver la sécurité et la confidentialité des données, mais aussi leur intégrité et leur
authenticité.
Un service d’intégrité garantit que le contenu d’une communication ou d’un fichier n’a pas
été modifié. Par exemple, on peut souhaiter à vérifier qu’aucun changement du contenu d’un
disque dur n’a eu lieu ; des produits commerciaux, mettant en jeu des méthodes
cryptologiques sont disponibles (voir notamment) à cet effet.
Un service d’authenticité garantit l’identité d’une entité donnée ou l’origine d’une
communication ou d’un fichier. Lorsqu’il s’agit d’un fichier et que l’entité qui l’a créé est la
seule à avoir pu apporter la garantie d’authenticité, en évidence on parle de non-répudiation.
Le service de non-répudiation est réalisé par une signature numérique. Une définition précise
sera donner plus loin ; on s’intéressera ici sur la loi du 20 mars 2000 qui a fait passer ce
concept dans la vie sociale.
Un service de confidentialité garantit que le contenu d’une communication ou d’un fichier
n’est pas accessible aux tiers. Ainsi, la cryptologie se partage en deux sous-disciplines
également importantes : la cryptographie qui fait l’objet de proposer des méthodes pour
assurer les services définis plus haut et la cryptanalyse qui recherche des failles dans les
mécanismes ainsi proposés.

Recherche exhaustive de la clef, cette technique consiste tout simplement à essayer toutes
les clefs possibles jusqu'à ce qu'on trouve la bonne. Pour les chiffres à alphabet décalé,
comme le chiffre de César, cette recherche est envisageable puisqu'il y a peu de possibilités.
1.3. Quelques repères historiques [2] [4] [10]

L’ouvrage distingue trois périodes dans l’histoire de la cryptologie :


– L’âge artisanal ou chiffrement classique part des origines : Jules César utilisait,
semble-t-il, un mécanisme de confidentialité rudimentaire où chaque lettre d’un message était
remplacée par celle située de trois positions plus loin dans l’alphabet. La méthode se
généralise et prend le nom de substitution. Une autre méthode change l’ordre des lettres ; elle
a été mise en œuvre au Moyen-âge notamment par un dispositif appelé « grille de Cardan ».
De façon générale, jusqu’au début du vingtième siècle, la cryptographie était affaire de
substitutions et de transpositions. D’ailleurs, on opérait fréquemment des substitutions non
seulement sur des lettres mais sur des mots, en s’aidant d’une sorte de dictionnaire à double
entrée, nommé code ou répertoire. La cryptanalyse, quant à elle, utilisait des méthodes
statistiques simples, fondées principalement sur la fréquence des lettres ou des suites de deux
lettres (digrammes) dans un texte.
– L’âge technique garde les substitutions et les permutations mais plutôt il les met en
œuvre à l’aide de machines mécaniques ou électro-mécaniques. Les plus célèbres sont la
Hagelin et l’Enigma utilisée par l’armée allemande durant la seconde guerre mondiale. La
complexité des méthodes rendues ainsi accessibles étant plus grande, la cryptanalyse devient
plus conceptuelle et a aussi recours à des machines. Pour venir à bout de l’Enigma, les Alliés
réunissent à Bletchley Park un groupe de scientifiques, dont fait partie Alan Turing, inventeur
des machines qui portent son nom. Turing parvient à réaliser une spectaculaire cryptanalyse
en la réduisant à une recherche de cas suffisamment restreinte pour être menée par une
machine spécialement construite à cet effet. C’est aussi Turing qui, dans le cadre d’une autre
cryptanalyse également réussie, fit construire le Colossus, doté d’´electronique, et qui peut
être considéré comme l’un des ancêtres de nos ordinateurs modernes.
– L’âge paradoxal ou chiffrement moderne couvre les vingt-cinq dernières années. Il
voit l’introduction de mécanismes donnant des réponses positives à des questions a priori hors
d’atteinte :
 Comment assurer un service de confidentialité sans avoir au préalable établi
une convention secrète commune ?
 Comment assurer un service d’authenticité basé sur la possession d’un secret
sans révéler la moindre information sur le secret ?
La période récente est également marquée par le développement d’une importante
communauté de recherche. Cette communauté a largement transformé l’image de la
cryptologie : elle a apporté une plus grande rigueur à la cryptographie en essayant de
produire, autant que possible des preuves partielles de sécurité, de type mathématique. Elle a
également donné un statut nouveau à la cryptanalyse, destinée maintenant à valider les
méthodes proposées par une approche systématique, plutôt qu’à donner un avantage
compétitif ou stratégique.
Figure 3.2 : Les classes de la cryptographie

1.4. Cryptographie moderne

1.4.1. Chiffrement et déchiffrement [2] [10]

La cryptographie moderne est principalement liée aux services de confidentialité. Elle réalise
sur les données m une transformation constituée par une formule C = Ek(m), par
l’intermédiaire d’un algorithme de chiffrement E. Cet algorithme prend en entrée le message
clair m et un paramètre secret k, qu’on appelle la clé. Le message m varie dans un ensemble
M et la clé k dans un ensemble K. La restauration du texte clair à partir du chiffré ou
cryptogramme C se fait par un algorithme de déchiffrement Dk, prenant en entrée le chiffré et
la même clé.
On doit avoir la formule suivante : Dk(Ek(m)) = m. En général, le chiffré prend sa valeur dans
le même espace M et l’on a aussi Ek(Dk(c)) = c, c’est `a dire que les algorithmes Ek et Dk
réalisent une permutation de M.
La distinction entre l’algorithme et la clé s’est établie il y a fort longtemps, notamment dans
les travaux du cryptologue Auguste Kerckhoffs. Ce dernier a en effet su reconnaitre que
l’algorithme de chiffrement n’exigeait pas le secret, dans la mesure auquelle il risquait de
toute façon de passer aux mains de l’ennemi. La cryptologie moderne recommande même des
méthodes de chiffrement totalement explicites de manière à ce qu’elles soient évaluées et
validées par un débat ouvert entre experts. Du coup, une convention secrète entre entités qui
souhaitent communiquer de façon chiffrée se limite à l’échange d’une clé k.
1.4.2. Décryptement [2] [10]

L’opération qui consiste à calculer le clair m à partir du chiffré C = Ek(m), mais sans la
connaissance de la clé k est appelée décryptement. La confidentialité est assurée si cette
opération est impossible. On distingue des divers scénarios possibles d’attaque
– les attaques à chiffré seul, où l’adversaire dispose d’un certain nombre de chiffrés
Ek(mi) ;
– les attaques à clair connu, où l’adversaire dispose d’un certain nombre de chiffrés
Ek(mi) et des clairs correspondants mi ;
– les attaques à clair choisi, où l’adversaire dispose d’un certain nombre de chiffrés
Ek(mi) correspondant à des clairs de son choix mi ; si de plus chaque message mi est défini en
fonction des chiffrés obtenus antérieurement, on parle d’attaque à clair choisi adaptative.
Le lecteur pourra définir d’autres variantes, comme l’attaque à chiffré choisi. Le but de
l’attaque est la découverte de la clé ou le décryptement d’un chiffré C, correspondant à un
clair dont on ne dispose pas. Les attaques à chiffré seul sont les plus difficiles, néanmoins
l’adversaire dispose en général d’informations statistiques sur le clair.
1.4.3. Type de cryptosystème actuel [14] [15]

Il existe deux grandes familles d’algorithmes cryptographiques à base de clefs actuellement:


les algorithmes à clef privé ou algorithmes symétriques, et les algorithmes à clef
publique ou algorithmes asymétriques.
Un bon cryptosystème doit permettre un chiffrement et un déchiffrement rapide, tout en
interdisant toute possibilité de décryptage. Pour alléger les charges en mémoire informatique,
on préfère aussi que les clés soient de petite taille.
1.4.3.1. Cryptographie à clefs privés ou secrète [3] [4] [5] [19] [24]

La cryptographie à clefs privées, appelée aussi cryptographie symétrique est utilisée depuis
déjà plusieurs siècles. C’est l’approche la plus authentique du chiffrement de données et
mathématiquement la moins problématique. La clé de chiffrement peut être calculée à partir
de la clé de déchiffrement, et le destinataire doivent se mettre d’accord préalablement sur une
clé qui doit être gardée secrète car la sécurité d’un tel algorithme repose sur cette clé.
Le chiffrement à clé publique et le chiffrement symétrique présentent chacun des avantages et
des inconvénients. Par exemple, le temps de chiffrement et déchiffrement de la cryptographie
à clé publique est supérieur à celui de la cryptographie symétrique. Un des problèmes
principaux du chiffrement symétrique est l’échange préalable de la clé secrète : c’est la
transmission de cette clé entre les intervenants qui représente la faiblesse inhérente au
système. S’ils se trouvent à des emplacements géographiques différents, ils devront faire
confiance à une tierce personne ou un moyen de communication sécurisé. Toute personne
interceptant la clé lors d’un transfert peut ensuite lire, modifier et falsifier toutes les
informations cryptées ou authentifiées avec cette clé.
Le chiffrement à clé publique peut être préféré pour générer de petites séquences comme des
signatures ou des clés secrètes pour le chiffrement symétrique. Le chiffrement symétrique
peut être préférer pour chiffrer des grandes quantités de données.
La taille des clés utilisées varient selon le besoin et font en standard 64 ou 128 bits.

Figure 3.3 : Principe du chiffrement à clé secrète

Les principaux types de cryptosystèmes à clefs privés utilisés aujourd’hui se répartissent en


deux grandes catégories : les cryptosystèmes par flots et les cryptosystèmes par blocs.
De la norme de cryptage de données DES au code secret de Jules César, la distribution des
clés reste le problème majeur du cryptage conventionnel (Autrement dit, comment faire
parvenir la clé à son destinataire sans qu’aucune personne ne l’intercepte ?). Les moyens à
déployer pour garantir la distribution sécurisée des clés entre les correspondants sont très
onéreux, ce qui constitue un inconvénient supplémentaire.
Les principaux algorithmes à clé privée utilisés actuellement sont : Blowfish, DES / 3DES,
IDEA, RC2, RC5, RC6, Rijndael(AES).
 Cryptosystèmes par flots ou en continu (Stream cipher) :
Dans un cryptosystème par flots, le cryptage des messages se fait à caractère par caractère ou
bit à bit au moyen de substitutions de type César générées aléatoirement : la taille de la clef
est donc égale à la taille du message.
La fonction de chiffrement est la même pour chaque bit, mais elle dépend d’une clé K k qui
varie dans le temps, dite dynamique. La génération de la clé dynamique dépend d’une clé
secrète  dite statique.
Dans un schéma de chiffrement par flot, lorsqu’Alice et Bob veulent communiquer de façon
sécurisée, ils doivent se rencontrer préalablement et secrètement pour se mettre d’accord sur
la clé secrète  qu’ils partagent et qu’ils vont employer lors de la génération de K k. Quelques
temps plus tard, quand Alice souhaite envoyer un message m k à Bob, elle transforme le
message mk texte chiffré ck= e (Kk, mk), où elle représente une fonction de chiffrement. Elle
envoie le texte chiffré ck à Bob par l’intermédiaire d’un canal qui n’est pas forcement sécurisé.

De son côté, Bob reçoit le texte chiffré c k et calcule mk= d (Kk, ck) où d est une fonction de
déchiffrement. Ainsi, Bob récupère le message initial m k. Ce principe est illustré sur la figure
4 suivante :

Figure 3.4 : Chiffrement par flot

Un exemple de chiffrement par flot, proposé par Vernam en 1917, est le masque jetable
(« one-time pad »), aussi appelé chiffre de Vernam. Dans ce schéma, le texte chiffré c k est le
résultat d’une combinaison du texte clair mk avec la clé Kk, de même taille, par un OU
exclusif (XOR) :
ck= mk  Kk
A partir du texte chiffré, le texte clair peut être retrouvé par l’opération inverse :
mk= ck  Kk

Cependant, cela n’est valable que si plusieurs conditions sont vérifiées :

– La clé Kk doit être aussi longue que le message clair ;


– La clé Kk doit être une chaîne de bits parfaitement aléatoire ;

– La clé Kk ne doit être utilisée qu’une fois pour chiffrer les informations
claires mk, d’où le nom de masque jetable. De plus, le flot de clés K k est
générer aléatoire et indépendant des flots passés.

Ces trois conditions font du chiffrement de Vernam une méthode difficile à utiliser en
pratique.

Dans le chiffrement par flot, il existe deux manières différentes de synchroniser les
générateurs de clé afin de récupérer le message original. La première est appelée chiffrement
par flot synchrone et la seconde est appelée chiffrement par flot autosynchrone.

 Chiffrement par flot synchrone

Dans un schéma de chiffrement par flot synchrone, l’émetteur est donné par :

Où est une fonction,  la clé statique, Kk la clé dynamique, mk le texte clair et Ck le texte

chiffré. La clé dynamique Kk est générée par une dynamique interne qui ne dépend ni du

texte clair mk, ni du texte chiffré Ck. Le récepteur est donné par :
Figure 3.5 : Chiffrement par flot synchrone

La récupération du texte clair nécessite une synchronisation des séquences des clés

dynamiques à l’émission et à la réception. La fonction de chiffrement d est telle que = mk

si = Kk. Le flot de clés étant issus de récurrences autonomes, les générateurs de clés doivent

être initialisés de part et d’autre de façon identique. La clé statique  représente la condition
initiale K0. Si, pour une raison quelconque la synchronisation est perdu durant la transmission,
l’émetteur et le récepteur doivent être réinitialisés à la même valeur pour resynchroniser leur
transmission.

 Chiffrement par flot autosynchrone

Dans un schéma déchiffrement par flot autosynchrone, l’émetteur est donné par :

Où f est une fonction paramétrée par la clé statique, qui génère le flot de clés K k. A l’inverse
du chiffrement par flot synchrone, Kk dépend seulement des valeurs passées du texte chiffré
Ck. En revanche Kk et le texte clair mk. Le récepteur est donné par :
Figure 3.6 : Chiffrement par flot autosynchrone

Si un symbole du texte chiffré est perdu ou est erroné, les j clés K k suivantes seront calculés

de façon erronée par le récepteur, après quoi les clés suivantes seront à nouveau correctes.

Comme pour le chiffrement par flot synchrone, la récupération du texte clair nécessite la
synchronisation des séquences des clés dynamiques à l’émission et à la réception, et la

fonction de déchiffrement telle que = mk si = Kk. A l’inverse du chiffrement par flot

synchrone, les séquences des clés dynamiques se synchronisent automatiquement et  est un


paramètre de la dynamique f.

Voici quelques exemples de chiffrement par flot.

– RC4 (utilisé notamment par le protocole WEP du Wi-Fi)


– E0 (utilisé par le protocole Bluetooth)

– A5/1, A5/2, A5/3 (utilisé dans les téléphones mobiles de type GSM pour
chiffrer la communication par radio entre le mobile et l'antenne-relais la
plus proche)

 Cryptosystèmes par blocs :


Dans un schéma de chiffrement par blocs, le message est divisé en blocs de bits, de longueur
fixe d’où chaque bloc est chiffré l’un après l’autre. Le chiffrement peut être effectué par
substitutions (les bits d’un bloc sont substitués par d’autres bits) et par transpositions (les bits
d’un bloc sont permutés entre eux). La substitution permet d’ajouter de la confusion, c'est-à-
dire de rendre la relation entre le message et le texte chiffré aussi complexe que possible. La
transposition permet d’ajouter de la diffusion, c'est-à-dire de réarranger les bits du message
afin d’éviter que toute redondance dans le message ne se retrouve dans le texte chiffré.
Un exemple de chiffrement par blocs est le célèbre schéma DES (Data Encryption Standard),
adopté par le gouvernement Américain, en 1977, comme algorithme de chiffrement standard
officiel. Pourtant, les longueurs des clés ne permettent pas de résister à des attaques de plus en
plus performantes grâce au progrès des ordinateurs. Pour pallier ce problème, le schéma DES
est amélioré et devient le schéma AES (Advanced Encryption Standard), en 1997.
1.4.3.2. Cryptographie à clefs publiques [1] [4]

Tous les algorithmes évoqués jusqu’à présent sont symétriques en ce sens que la même clef
est utilisée pour le chiffrement et le déchiffrement. Le problème essentiel de la cryptographie
symétrique est la distribution des clefs : pour que n personnes puissent communiquer de
manière confidentielle il faut n (n-1)/2 clefs. Donc, pour faire face à ces problèmes liés à la
distribution des clés que ce nouveau cryptosystème à clé publique aussi appelée cryptographie
asymétrique a été mis au point.
L’idée de base des cryptosystèmes à clefs publiques a été proposée dans un article
fondamental de Diffie et Hellman en 1976. Le principe fondamental est d’utiliser des clefs de
chiffrement et déchiffrement différentes, non reconstructibles l’une à partir de l’autre :
Une clef publique pour le chiffrement
Une clef secrète pour le déchiffrement
Ce système est basé sur une fonction à sens unique, soit une fonction facile à calculer dans un
sens mais très difficile à inverser sans la clef privée.
Pour faire une explication imagée, la clef publique joue le rôle d’un cadenas. Imaginons que
seul Bob possède la clef (clef secrète), Alice enferme son message dans une boîte à l’aide du
cadenas et l’envoie à Bob. Personne n’est en mesure de lire le message puisque seul Bob
possède la clef du cadenas.
Lorsqu’Alice, l’Emetteur, et Bob le destinataire, veulent communiquer de façon sécurisée,
Bob choisit une paire de clés de chiffrement et de déchiffrement (K e, Kd). Il envoie la clé
publique Ke à Alice, par l’intermédiaire d’un canal qui n’est pas forcement sécurisé. Alice
transforme le message m en texte chiffré C= e (K e, m) où e représente une fonction de
chiffrement, et envoie ce texte chiffré c à Bob. De son côté, Bob reçoit le texte chiffré c et
calcule m= d(Kd, c) où d est une fonction de déchiffrement et K d est la clé privée connue
uniquement de Bob.
Ainsi, Bob récupère le message initiale m. Ce schéma est illustré sur la figure 3.7 ci-dessous :

Figure 3.7 : Chiffrement à clé publique

Il existe plusieurs exemples de cette cryptographie à clé publique, par exemple l’algorithme
de Diffie-Hellman, RSA, Elgamal 6. Pourtant les deux algorithmes les plus connus et les plus
sûrs restent : RSA et Elgamal 6.

1.4.3.3. Cryptographie hybrides

Il existe aussi des systèmes de protection mélangeant les deux techniques pour en garder leurs
avantages, l'idée est d'utiliser la rapidité de l'algorithme symétrique, et la sécurité de
l'asymétrique. On les appelle les systèmes hybrides. L’exemple le plus probant est PGP mais
on peut aussi citer GnuPG et SSL.
1.5. Cryptanalyse [2] [10]

Lorsqu’un cryptosystème est synthétisé, il faut s’assurer qu’il est effectivement robuste face à
des attaques pirates. Cette étape de validation ou de vérification est appelée la cryptanalyse.
Elle consiste à tester les cryptosystèmes afin de déceler leurs éventuelles faiblesses. La
cryptanalyse des algorithmes est ainsi essentielle pour trouver les failles des algorithmes.
Faire la cryptanalyse d'un algorithme de chiffrement, c'est étudier sa sécurité en tentant de
casser les fonctions cryptographiques qui le composent à l'aide d'attaques. Le processus par
lequel on tente de comprendre un message en particulier est appelé une attaque.

Il est donc avantageux pour un algorithme d'être complètement publié (code source) dans le
but que des cryptographes étudient sa sécurité.
Il existe plusieurs familles d’attaques cryptanalytiques, les plus connues étant l’analyse
fréquentielle, la cryptanalyse différentielle et la cryptanalyse linéaire.
1.6. Conclusion

Dans ce chapitre, nous avons pu voir une terminologie et un ensemble de points sur lesquels il
est intéressant d’envisager la neuro-cryptographie, notamment dans l’étude d’algorithmes de
chiffrement et de leurs cryptanalyses, dans les moyens de mise en œuvre d’un logiciel de la
cryptographie. L’étude de l’AES réalisée avec une architecture à réseaux de neurones devrait
prouver leur efficacité pour de chiffrement incassable. On trouve dans les prochains chapitres
des théories sur le réseau de neurone.

Vous aimerez peut-être aussi