Cryptographie symétrique

publicité
CRYPTOGRAPHIE SYMETRIQUE
 INTRODUCTION ET PRINCIPE
Les systèmes de cryptage à clé privée, appelés aussi
systèmes de cryptage symétrique ou cryptage
conventionnel, sont utilisés depuis plusieurs siècles
déjà. Cette partie de la cryptologie regroupe tous les
moyens mis en œuvre pour crypter ou coder des
données afin des les protéger du public et de les
maintenir privées. Ce principe s’est largement
démocratisé et n’importe qui aujourd’hui peut crypter ses
données, ses e-mails pour s’assurer ou au moins se
donner l’illusion de maintenir sa vie privée.
Un des concepts fondamentaux de la cryptographie
symétrique est la clé, qui est une information devant
permettre de chiffrer et de déchiffrer un message et sur
laquelle peut reposer toute la sécurité de la
communication
Un expéditeur et un destinataire souhaitant
communiquer de manière sécurisée à l'aide du cryptage
conventionnel doivent convenir d'une clé et ne pas la
divulguer. Dans la majorité des systèmes de cryptage
symétrique la clé de chiffrement et la clé de
déchiffrement sont identiques.
La cryptographie à clé symétrique peut se modéliser à
l'aide des deux équations suivantes:
C=E(k,M)
M=D(k,C)
M : MESSAGE
K : La clé secrète
E ET D : fonction de chiffrement et de déchiffrement du
message
A travers ce schéma , on comprend mieux le principe :
On utilise souvent l’analogie du coffre-fort pour
caractériser les systèmes cryptographiques à clé
secrète, seul celui qui possède la clé peut ouvrir le
coffre.
Ce type de cryptage fonctionne suivant deux procédés
différents : le cryptage par blocs et le cryptage par
« Stream » (en continu). En pratique, on utilise
principalement des chiffrements en continu lorsque la
vitesse de traitement est essentielle (téléphonie, liaison
entre unité centrale et périphériques) ; lorsque la
sécurité domine, on emploie plutôt des systèmes par
blocs.
De manière plus détaillée, voici comment se déroule le
processus :
 CHIFFREMENT
Le chiffrement par bloc (en anglais block cipher) est une
des deux grandes catégories de chiffrements modernes
en cryptographie symétrique, l'autre étant le chiffrement
par flot. La principale différence vient du découpage des
données en blocs de taille généralement fixe (souvent
une puissance de deux comprise entre 32 et 512 bits).
Les blocs sont ensuite chiffrés les uns après les autres.
Il est possible de transformer un chiffrement de bloc en
un chiffrement par flot en utilisant un mode d’opération
comme ECB (chaque bloc chiffré indépendamment des
autres) ou CFB (on chaîne le chiffrement en effectuant
un xor (appelé aussi « ou exclusif ») entre les résultats
successifs).
 Le mode ECB est le mode le plus simple ; le
message M est découpé en blocs m(i) de taille
fixe et chaque bloc est crypté séparément par :
c(i)= Ek [ m(i) ]
ainsi chaque bloc de message donné sera toujours
codé de la même manière .Ce mode de chiffrement
ne présente donc aucune sécurité et n ' est jamais
utilisé .
 Le mode CBF utilise la fonction XOR pour le
décalage des bits après le cryptage:
c.i) = m(i) XOR Ek[ c(i-1) ]
Ce mode est utilisé dans le cryptage des réseaux en
général. L ' intérêt est que le déchiffrement ne
nécessite pas les fonctions inverses.
Concernant le chiffrement par blocs, chaque message M
de n bits est découpé en s blocs de r= n/s bits (on ajuste
la taille du message en ajoutant des caractères sans
signification afin que sa taille soit un multiple de r ).Un
algorithme de chiffrement par blocs opère sur des blocs
de r bits pour produire en général un bloc de r bits afin
d' assure la bijectivité du code.
Une liste non-exhaustive de chiffrements par bloc :

DES, l'ancêtre conçu dans les années 70, a été
passablement étudié


AES, le remplaçant de DES (voir ci-dessous)
Blowfish et Twofish, des alternatives à AES (voir cidessous)
Il y en a encore bien d'autres qui sont adaptés à des
besoins particuliers. Certains consomment plus de
mémoire ou sont plus gourmands en puissance de
calcul. Un chiffrement par bloc peut également être
utilisé comme une fonction de hachage, c'est-à-dire une
fonction à sens unique. Une variante de DES est
employée pour le système de mots de passe dans Unix.
Une chaîne contenant uniquement des zéros est chiffrée
avec une clé correspondant au mot de passe (une
composante aléatoire appelée "sel" est encore intégrée
à l'algorithme). Ce chiffrement est itératif et se fait 25
fois avant d'obtenir le résultat final.
Un chiffrement peut être dit inconditionnellement sûr ou
parfait dans le cas ou la connaissance du message
chiffré n’apporte aucune information sur le message
clair. Ainsi, la seule attaque possible sera la recherche
de la clé secrète K. A l’heure actuelle, le seul
chiffrement prouvé inconditionnellement sûr est celui de
VERNAM qui utilise une clé K aussi longue que le texte
clair, sous réserve que la clé secrète soit totalement
aléatoire et utilisée qu' une seule fois .
 AUTHENTIFICATION
Les protagonistes d’une communication doivent pouvoir
détecter une usurpation d’identité. Par exemple Alice
peut s’identifier à Bob en prouvant qu’elle connaît un
secret S qu’elle est la seule à pouvoir connaître.
 SIGNATURE ELECTRONIQUE
SYMETRIQUE
Les signatures manuscrites ont longtemps été utilisées
pour prouver l’identité de leur auteur ou du moins
l’accord du signataire avec le contenu du document.
Avec des documents numériques, il faut inventer des
protocoles qui remplacent l’empreinte manuelle par un
équivalent.
Dans le cadre de signatures électroniques
symétriques, on dispose d’un arbitre ou d’une clé
secrète qui sera utilisée en mode CBC ou CFB.
Ainsi une signature électronique devrait être :
-authentique : elle convainc le destinataire que le
signataire a délibérément signé un document ;
-infalsifiable
-non réutilisable : elle est attachée a un document donné
et ne pourra pas être utilisé pour un autre document
-inaltérable : toute modification du document doit être
détectable
-non reniable : le signataire ne peut répudier le
document signé
 AVANTAGES ET INCONVENIENTS
Le cryptage conventionnel (symétrique) comporte un
avantage majeur : sa rapidité de calcul tant pour le
chiffrement que pour le déchiffrement. Il est
particulièrement adapté à la transmission de grandes
quantités de données. Ce qui explique en partie la forte
implémentation de ces derniers dans des puces
électroniques pour les besoins des entreprises.
Pourtant, le principe de l'échange préalable de la clé a
amené à repenser la cryptographie et c'est ainsi que
sont apparues les clés asymétriques.
Ce système nécessite la connaissance de la clé par
l'émetteur et par le destinataire. 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é.
De la norme de cryptage de données DES (voir cidessous) au code secret de Jules César (voir
historique), 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.
 EXEMPLE 1 D’ALGORITHME A CLE
SYMETRIQUE : DES
Le D.E.S. (Data Encryptions Standard, c’est-à-dire
Standard de Chiffrement de Données) est un standard
mondial depuis plus de 15 ans. Bien qu’il soit un peu
vieillissant, il résiste toujours très bien à la cryptanalyse
et reste un algorithme très sûr.
Au début des années 70, le développement des
communications entre ordinateurs a nécessité la mise
en place d’un standard de chiffrement de données pour
limiter la prolifération d’algorithmes différents ne pouvant
pas communiquer entre eux. Pour résoudre ce
problème, L’Agence Nationale de Sécurité américaine
(N.S.A.) a lancé des appels d’offres. La société I.B.M. a
développé alors un algorithme nommé Lucifer,
relativement complexe et sophistiqué. Après quelques
années de discussions et de modifications, cet
algorithme, devenu alors D.E.S., fut adopté au niveau
fédéral le 23 novembre 1976.
Le D.E.S. est un système de chiffrement par blocs. Cela
signifie que D.E.S. ne chiffre pas les données à la volée
quand les caractères arrivent, mais il découpe
virtuellement le texte clair en blocs de 64 bits qu’il code
séparément, puis qu'il concatène. Un bloc de 64 bits du
texte clair entre par un coté de l'algorithme et un bloc de
64 bits de texte chiffré sort de l'autre coté. L’algorithme
est assez simple puisqu’il ne combine en fait que des
permutations et des substitutions. On parle en
cryptologie de techniques de confusion et de diffusion.
Il s’agit d’un algorithme de cryptage à clef secrète.
La clé du DES est une chaîne de 64 bits (succession de
0 et de 1), mais en fait seuls 56 bits servent réellement à
définir la clé. Les bits 8, 16,24, 32, 40, 48, 56,64 sont
des bits de parité (=bits de détection d'erreur). Le 8ème
bit est fait en sorte que sur les 8 premiers bits, il y ait un
nombre impair de 1. Par exemple, si les 7 premiers bits
sont 1010001, le 8ème bit est 0. Ceci permet d'éviter les
erreurs de transmission.
Il y a donc pour le DES 256 clés possibles, soit environ ...
72 millions de milliards possibilités. Les grandes lignes
de l'algorithme sont :
 Phase 1 : Préparation - Diversification de la clé.
Le texte est découpé en blocs de 64 bits. On
diversifie aussi la clé K, c'est-à-dire qu'on fabrique à
partir de K 16 sous-clés K1,..., K16 à 48 bits. Les Ki
sont composés de 48 bits de K, pris dans un certain
ordre.
 Phase 2 : Permutation initiale.
Pour chaque bloc de 64 bits x du texte, on calcule
une permutation finie y=P(x). y est représenté sous
la forme y=G0D0, G0 étant les 32 bits à gauche de y,
D0 les 32 bits à droite.
 Phase 3 : Itération
On applique 16 rondes d'une même fonction. A
partir de Gi-1Di-1 (pour i de 1 à 16), on calcule GiDi
en posant :
o Gi=Di-1.
o Di-1=Gi-1 XOR f(Di-1,Ki).
XOR est le ou exclusif bit à bit, et f est une fonction
de confusion, suite de substitutions et de
permutations.

Phase 4 : Permutation finale.
On applique à G16D16 l'inverse de la permutation
initiale. Z=P-1(G16D16) est le bloc de 64 bits chiffré à
partir de x.
Régulièrement, le DES a fait l'objet de polémiques.
Toute sa sécurité repose sur la fonction de confusion f,
et en particulier à l'intérieur de celle-ci sur des boîtes S,
tableau 4x16 d'entiers compris entre 0 et 15, aux valeurs
mystérieuses. Certains ont affirmé que la NSA, qui a
finalisé l'algorithme, a placé dans ces boîtes S des
trappes qui lui permettaient de tout décrypter, tout en
affirmant que l'algorithme est sûr. Toutefois, rien n'a
objectivement étayé cela. En particulier, le DES a
toujours résisté aux travaux des cryptanalyses non
basés sur la force brute.
En revanche, ce qui a signé l'arrêt de mort du DES est
l'extraordinaire progression de la puissance des
ordinateurs. Le 17 juin 1997, le DES est cassé en 3
semaines par une fédération de petites machines sur
Internet. Et on estime très officiellement (dans un rapport
présenté au Sénat Américain) à cette date à quelques
secondes le temps nécessaire à un Etat pour percer les
secrets d'un message chiffré avec le DES.
La solution a été dans un premier temps l'adoption du
triple DES, trois applications de DES à la suite avec 2
clés différentes (d'où une clé de 112 bits) :
Si le TDES (autre algorithme de cryptographie
symétrique) est largement suffisant à l'heure actuelle,
il est malheureusement trois fois plus lent que le
DES. C'est pourquoi, en janvier 1997, le NIST
(National Institute of Standards and Technologies)
lance un nouvel appel pour créer un successeur au
DES. Une nouvelle saga commence pour l'AES
(Advanced Encryptions Standard).
Le Gros avantage du DES est qu’ il repose tant
pour le chiffrement que pour le déchiffrement sur des
opérations facilement implantables au niveau
matériel, il est donc possible d' obtenir des vitesses
de chiffrement très élevées de l' ordre de 40Mo/s .
 Applications
Le système DES est actuellement utilisé pour chiffrer
les paiements par cartes de crédit, les protocoles
d’authentification dans les réseaux et la messagerie
électronique.
 EXEMPLE 2 D’ALGORITHME A CLE
SYMETRIQUE : AES
Avec le temps, et les progrès de l'informatique, les 256
clés possibles du DES n'ont plus représenté une
barrière infranchissable. Il est désormais possible,
même avec des moyens modestes, de percer les
messages chiffrés par DES en un temps raisonnable. En
janvier 1997, le NIST (National Institute of Standards
and Technologies) des Etats-Unis lance un appel
d'offres pour élaborer l'AES, Advanced Encryptions
System. Le cahier des charges comportait les points
suivants :

évidemment, une grande sécurité.

une large portabilité : l'algorithme devant remplacer
le DES, il est destiné à servir aussi bien dans les
cartes à puces, aux processeurs 8 bits peu
puissants, que dans des processeurs spécialisés
pour chiffrer des milliers de télécommunications à la
volée.

la rapidité.

une lecture facile de l'algorithme, puisqu'il est
destiné à être rendu public.

techniquement, le chiffrement doit se faire par blocs
de 128 bits, les clés comportant 128,192 ou 256
bits.
Au 15 juin 1998, date de la fin des candidatures, 21
projets ont été déposés. Certains sont l'œuvre
d'entreprises (IBM), d'autres regroupent des
universitaires (CNRS), les derniers sont écrits par à
peine quelques personnes. Pendant deux ans, les
algorithmes ont été évalués par des experts, avec forum
de discussion sur Internet, et organisation de
conférences. Le 2 octobre 2000, le NIST donne sa
réponse : c'est le Rijndael qui est choisi, un algorithme
mis au point par 2 belges, Joan Daemen et Vincent
Rijmen. Nous sommes donc, à la naissance de l’AES,
qui n’est rien d’autre que l’algorithme de Rijndael.
Le Rijndael (AES) procède par blocs de 128 bits, avec
une clé de 128 bit également. Chaque bloc subit une
séquence de 5 transformations répétées 10 fois :
1. Addition de la clé secrète (par un ou exclusif).
2. Transformation non linéaire d'octets : les 128 bits
sont répartis en 16 blocs de 8 bits (8 bits=un octet),
eux-mêmes dispatchés dans un tableau 4×4.
Chaque octet est transformé par une fonction non
linéaire S.
3. Décalage de lignes : les 3 dernières lignes sont
décalées cycliquement vers la gauche : la 2ème
ligne est décalée d'une colonne, la 3ème ligne de 2
colonnes, et la 4ème ligne de 3 colonnes.
4. Brouillage des colonnes : Chaque colonne est
transformée par combinaisons linéaires des
différents éléments de la colonne (ce qui revient à
multiplier la matrice 4×4 par une autre matrice 4×4).
Les calculs sur les octets de 8 bits sont réalisés
dans le corps à 28 éléments.
5. Addition de la clé de tour : A chaque tour, une clé
de tour est générée à partir de la clé secrète par un
sous-algorithme (dit de cadencement). Cette clé de
tour est ajoutée par un ou exclusif au dernier bloc
obtenu.
Dans AES les octets correspondent à des séquences
de huit bits interprétées comme des éléments du corps
fini a 256 éléments. Ensuite tout flux d' octets est
organisé sous forme matricielle. La matrice aura
nécessairement 4 lignes et un nombre de colonnes
fonction de la taille du flux.
 Avantages
Le choix de cet algorithme répond à de nombreux
critères plus généraux dont nous pouvons citer les
suivants :






sécurité ou l'effort requis pour une éventuelle
cryptanalyse.
facilité de calcul : cela entraîne une grande rapidité
de traitement
besoins en ressources et mémoire très faibles
flexibilité d'implémentation: cela inclut une grande
variété de plates-formes et d'applications ainsi que
des tailles de clés et de blocs supplémentaires (cf.
ci-dessus).
hardware et software : il est possible d'implémenter
l'AES aussi bien sous forme logicielle que matérielle
(câblé)
simplicité : le design de l'AES est relativement
simple
Si l'on se réfère à ces critères, on voit que l'AES est
également un candidat particulièrement approprié pour
les implémentations embarquées qui suivent des règles
beaucoup plus strictes en matière de ressources,
puissance de calcul, taille mémoire... C'est sans doute
cela qui a poussé le monde de la 3G (3ème génération
de mobiles) à adopter l'algorithme pour son schéma
d'authentification « Millenage ».
Pour conclure sur cet aspect, on voit que le standard
AES répond aux mêmes exigences que le DES mais il
est également beaucoup plus sûr et flexible que son
prédécesseur.
Notons qu’il existe d’autres algorithmes de cryptographie
symétrique tels que Blowfish, RC2, RC5, RC6, 3DES,
IDEA.
 QUELQUES LOGICIELS DE
CRYPTOGRAPHIE SYMETRIQUE
 Enigma
 GNU Privacy Guard
Téléchargement