Download - Mémento de Cryptologie
Mémento de Cryptologie
Zoubida Jadda et Patrice Parraud
Ecoles Militaires de saint Cyr CoëtquidanCentre de Recherche des Ecoles de Coëtquidan
Unité de Recherche MACCLIA
[email protected]@st-cyr.terre-net.defense.gouv.fr
Table des matières1 Introduction 2
1.1 Histoire de la cryptographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Protéger, quoi, comment et à quel prix ? . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Les prérogatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Les garants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.5 Les protocoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.6 Les moyens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.7 Techniques Cryptographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Systèmes cryptographiques historiques 42.1 Chiffrement par décalage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 Chiffrement par substitution monoalphabétique . . . . . . . . . . . . . . . . . . . . . 52.3 Chiffrement de Vigenère . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.4 Vernam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.5 Cryptographie Militaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.5.1 Quelques codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.5.2 La machine Enigma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 Systèmes asymétriques 83.1 Quelques chiffrements à clé publique : . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.1 Code RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.1.2 Code Rabin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.1.3 Codes ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 Signature Numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2.1 Caractéristiques d’une signature . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2.2 Fonction de hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2.3 Signature RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2.4 Signature ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3 Organisation de PKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4 Systèmes symétriques 154.1 Chiffrement par Blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.1.1 Réseau de Feistel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164.1.2 DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.1.3 IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.1.4 AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2 Chiffrement par Flot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.2.1 GPA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.2.2 LFSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.2.3 LFSRs combinés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3 Comparaison des chiffrements par Blocs et par Flots . . . . . . . . . . . . . . . . . . . 364.4 La loi française et le chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.5 Exemple de la carte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5 Bibliographie 38
1 Z.JADDA & P.PARRAUD
1 IntroductionLa cryptologie, du grec «cruptos», la science du secret contient deux composantes : la cryptogra-
phie et la cryptanalyse.La stéganographie, du grec «steganos», couvert et «graphein», écrire vient compléter ces notions.
– La cryptographie construit des outils pour le chiffrement des messages en préservant le secretdes données lors des transmissions.
– La cryptanalyse consiste à analyser les faiblesses de ces constructions et à proposer des attaquespour compromettre la sécurité d’un système.
– La stéganographie est l’art de dissimuler. Dissimuler ne signifie pas que l’information est codée,il s’agit alors de cryptographie. Il signifie que la présence de l’information n’est pas perceptibleparce que enfouie dans une autre information.
1.1 Histoire de la cryptographie
– La cryptographie remonte certainement aux origines de l’homme.– les méthodes cryptographiques utilisées restèrent rudimentaires jusqu’au début du vingtième
siècle.– La cryptographie connut une réelle expansion avec les deux guerres mondiales.– Depuis la fin de la seconde guerre mondiale, la cryptographie connaît une avancée considérable
avec l’apparition de la carte bleue, d’internet et des téléphones portables.
1.2 Protéger, quoi, comment et à quel prix ?
– nature : texte (document papier), numérique (donnée, image, son).– caractère : anodin (message), sensible (classifié).– durée de vie : limitée (mot de passe, clé), infinie (identifiant).– moyens de protection : coût (financier, matériel, humain).
– risque évalué :menace× vulnérabilité
parade.
1.3 Les prérogatives
La cryptologie moderne a développé de nouveaux buts à atteindre :– Confidentialité : assurer que les données concernées ne pourront être dévoilées qu’aux personnes
autorisées. Lors d’une communication, il s’agit d’empêcher un tiers de prendre connaissanced’un message transmis sur un canal non sécurisé.
– Intégrité : assurer que les données ne sont pas altérées (volontairement ou pas) pendant leurtransmission ou leur stockage.
– Authentification : prouver l’origine d’une donnée ou la validité d’un objet crypté (moyen depaiement, clé, ...) ou identifier une personne ou authentifier une machine dans le cadre relationclient-serveur.
– Non-Répudiation : c’est un mécanisme qui empêche de nier un contrat. Cela consiste à prouverpar exemple qu’un message a bien été mis par son expéditeur ou a bien été reçu par sondestinataire.
– Signature : permet à une personne de prendre part à un contrat avec impossibilité de renierensuite ses engagements. Comme la signature pour le vote électronique ou le porte-monnaieélectronique par exemple.
2 Z.JADDA & P.PARRAUD
– Certification : la validation d’une information par une entité connue, digne de confiance appelée"autorité de certification".
– Contrôle d’accès : l’accès à certaines ressources est limité aux personnes autorisées. Exemple :connexion à un ordinateur, retrait d’argent ...
– Gestion des clés : c’est la génération, distribution, stockage, intégrité, utilisation des clés dansles systèmes cryptographiques (clés privées, clés publiques).
1.4 Les garants
– Techniques mathématiques complexes : théorie de la Complexité des algorithmes.– Problèmes mathématiques complexes : théorie des nombres, théorie de Galois, géométrie algé-
brique.– Problèmes NP et aléas fort.– Séquences pseudo-aléatoires et Fonctions booléennes.– Factorisation et Primalité de grands nombres : décomposition en produits de facteurs premiers :
test de la primalité.– Logarithme discret : soit l’équation a = bemod p dans un groupe d’ordre p − 1 : trouver econnaissant a.
– Groupe des points d’une courbe elliptique : 2163 points et p doit avoir un facteur premierq > 2160
1.5 Les protocoles
La grande problématique du développement des moyens de communication est la sécurité.Il y a des protocoles certifiés qui sont utilisés. Ce sont des systèmes construits en utilisant destechniques cryptographiques de base, qui définissent les modalités d’échanges de données entre diversparticipants et qui sont capables d’assurer une sécurité globale.Par exemple :
– SSH (Secure SHell), pour l’accès sécurisé à des machines distantes.– Kerberos, pour l’accès à des informations sur différents serveurs.– Station To Station, protocole pour gérer des communications téléphoniques chiffrées.– SSL (Secure Socket Layer), pour sécuriser les communications entre clients et serveurs.– PGP (Pretty Good Privacy), pour le courrier électronique et les transactions commerciales.
1.6 Les moyens
3 Z.JADDA & P.PARRAUD
1.7 Techniques Cryptographiques
– Le chiffrement consiste à transformer un texte clair en texte chiffré en utilisant une clé dechiffrement.
– Le déchiffrement est l’opération qui consiste à retrouver le texte clair à partir du texte chiffrési l’on dispose de la clé de déchiffrement.
– Le décryptage consiste à retrouver le texte clair à partir du chiffré si l’on ne connaît pas la clé.
Définition 1 Un système cryptographique est la donnée de :
1. un ensemble fini P appelé l’espace des textes clairs (P laintexts),2. un ensemble fini C appelé l’espace des textes chiffrés (Cipher texts),3. un ensemble fini K appelé l’espace des textes des clés (Keys),4. Pour chaque clé k on donne :
– une fonction de chiffrement ek (encryption) avec ek : P −→ C,– une fonction de déchiffrement dk (decryption) avec dk : C −→ P ,On doit avoir dk ◦ ek = IdP et ek ◦ dk = IdC .
2 Systèmes cryptographiques historiques– Chiffrement par décalage.– Chiffrement par substitution monoalphabétique.– Chiffrement de Vigenère (1586).– vernam ou one-time pad ou masque jetable (1926).
2.1 Chiffrement par décalage
A chaque lettre de l’alphabet, on associe le numéro de son rang.
A B C D E F G H I J K L M0 1 2 3 4 5 6 7 8 9 10 11 12N O P Q R S T U V W X Y Z13 14 15 16 17 18 19 20 21 22 23 24 25
Le message chiffré se déduit du message en clair par un décalage circulaire deslettres de l’alphabet.
Le décalage de 3 rangs est appelé chiffre de César.
P = C = K = Z26,
ek(x) = x+ k
et
dk(y) = y − k
4 Z.JADDA & P.PARRAUD
L’espace des clés ne contient que 26 éléments. Le système n’est donc pas sûr !
2.2 Chiffrement par substitution monoalphabétique
On remplace chaque lettre par une lettre 6= dans un ordre quelconque. On augmente donc lenombre de clés.
P = C = Z26, K = l’ensemble des permutations de Z26, ∀k ∈ K, ek = k et dk = k−1
Exemple 1 MAGERH
chifré par k =
(2 14 15 17 19 2412 7 4 0 17 6
)
Déchiffrage :
A B C D E F G H I J K L M0 1 2 3 4 5 6 7 8 9 10 11 12N O P Q R S T U V W X Y Z13 14 15 16 17 18 19 20 21 22 23 24 25
MAGERH = (12, 0, 6, 4, 17, 7)
k =
(2 14 15 17 19 2412 7 4 0 17 6
)message clair = k−1(12, 0, 6, 4, 17, 7)
= (2, 17, 24, 15, 19, 14) = CRYPTO.
2.3 Chiffrement de Vigenère
Blaise de Vigenère (1523− 1596) : diplomate français.Le chiffrement de Vigenère est une amélioration du chiffrement de César. On choisit un mot de n
lettres qui va définir la clé.le texte en clair est d’abord découpé en blocs de n symboles et on chiffre chaque bloc par le mot clé.
Donc la même lettre peut être chiffré avec des lettres différentes.
P = C = K = Zn26
Soit k = (k1 , ..., kn) ∈ K alors
ek (x1 , ..., xn) = (x1+k1, ..., xn+kn),et
dk (y1 , ..., yn) = (y1 − k1, ..., yn−kn).
5 Z.JADDA & P.PARRAUD
Exemple 2 pour n = 3 et k = CLE = (2, 11, 4)
Chiffré E C C R E S N Z K K P4 2 2 17 4 18 13 25 10 10 15
Clé C L E C L E C L E C L2 11 4 2 11 4 2 11 4 2 11
Déchiffrage2 17 24 15 19 14 11 14 6 8 4Clair C R Y P T O L O G I E
2.4 Vernam
Vernam ou one-time pad ou masque jetable (1926). C’est l’aboutissement de la cryptographietraditionnelle.En 1949 Shannon a montré qu’il garantit une confidentialité "parfaite" (perfect secrecy).C’est le système qui a été utilisé pour le téléphone rouge : Kremlin-Maison Blanche.
Identique au chiffrement de Vigenère mais la clé n’est utilisée qu’une seule fois (one-time) cequi contraint à choisir une clé aussi longue que le message à transmettre qu’on jettera par la suite(masque jetable).
2.5 Cryptographie Militaire
"La sécurité d’un système doit reposer sur la robustesse de sa cléet non pas sur le fait que le système de chiffrement est inconnue del’ennemi." Principe de Kerckhoffs, 1883, Journal des Sciences militaires
2.5.1 Quelques codes
– La règlette de Saint Cyr.
La réglette de Saint-Cyr utilisée par l’Académie mili-taire au 19eme siècle est un instrument qui facilite l’utilisation du chiffre de Vigenère. Elle seprésente sous la forme d’une règle à calculer, avec une partie fixe, le stator, et une partie mo-bile, le coulisseau. Sur le stator est écrit l’alphabet, et sur le coulisseau on trouve deux foisl’alphabet. Pour chiffrer une lettre, on ajuste le coulisseau pour que sous le A du stator setrouve la lettre de la clé. Sous la lettre du message clair écrite sur le stator, on trouve la lettredu message chiffré.
– Le code Navajo.
6 Z.JADDA & P.PARRAUD
En 1941 pendant la bataille du Pacifique la langue des navajos qui constituent le plus grandpeuple amerindien des Etats Unis a été utilisé à des fins militaires. c’est l’un des rares codesde l’histoire à n’avoir jamais été brisé.
– Le morse.
2.5.2 La machine Enigma
La machine Enigma ou le tournant de la Seconde Guerre mondiale.Enigma est la machine à chiffrer et déchiffrer qu’utilisèrent les armées allemandes du début des annéestrente jusqu’à la fin de le Seconde Guerre Mondiale. Elle automatise le chiffrement par substitution.Elle ressemble à une machine à écrire. Quand on presse sur une touche, deux choses se passent.Premièrement, une lettre s’allume sur un panneau lumineux : c’est la lettre chiffrée. Deuxièmement,un mécanisme fait tourner le rotor de droite d’un cran ; toutes les 26 frappes, le deuxième rotortourne d’un cran, toutes les 676 frappes (262 ), c’est un autre rotor qui tourne d’un cran. Ces rotorstournants modifient les connexions électriques dans la machine, ce qui fait que la touche ”A” allumerapeut-être le ”B” la première fois, mais le ”X” la deuxième, le ”E” la troisième, etc. Un "tableaude connexions" et un "réflecteur" complique encore le système. Le côté génial de cette machine estque même si elle tombe entre les mains ennemies, sa sécurité n’est pas compromise. En effet, c’est lenombre faramineux de réglages de la machine qui fait sa force et les réglages changeaient évidementchaque jour. On peut en effet changer l’ordre de rotors, leur orientation initiale et les branchementdu tableau de connexions. Par exemple, on pouvait spécifier la clef du jour. Après plusieurs annéesde recherche, des chercheurs cassèrent les codes d’Enigma. En 1943, les Alliés pouvaient suivre deprès les mouvements allemands sur terre, sur mer et dans les airs. Les Alliés purent garder ça secret,les Allemands continuèrent donc à croire que le code Enigma était toujours incassable.
7 Z.JADDA & P.PARRAUD
26x26x26 = 17′576 combinaisons l’orientation des chacun des trois brouilleurs6 combinaisons possibles l’ordre des brouilleurs
100′391′791′500 branchements possibles les six paires de lettres dans le tableau de connexions10′000′000′000′000′000 combinaisons différentes ! ! !
3 Systèmes asymétriquesPour le chiffrement asymétrique ou à clé publique chaque utilisateur A dispose de 2 clés, une clé
publique kp qui donne une fonction de chiffrement connue de tous (chacun peut chiffrer un message)et une clé, privée, secrète ks qui n’est connue que de A qui donne une fonction de déchiffrement dks .Cela suppose que la connaissance de kp ne donne pas ks facilement.
3.1 Quelques chiffrements à clé publique :
1. RSA2. RABIN3. ELGAMAL
8 Z.JADDA & P.PARRAUD
3.1.1 Code RSA
Conçu en 1977 par Ron Rivest, Adi Shamir et Léonard Adleman.Ce système est basé sur la difficulté de factoriser un nombre qui est produit de 2 nombres premierstrès grands.A l’heure actuelle, la méthode RSA est considérée comme la méthode de chiffrement à clé publique laplus sûre. Elle protège en particulier les cartes bancaires.Mais les progrès en matière de factorisation d’entiers la mettent en danger.
Génération des 2 clés par Bob :
1. Choix de 2 grands nombres premiers p et q et calcul de n = pq et ϕ(n) = (p− 1)(q − 1)
2. Choix de e premier avec ϕ(n) et d inverse de e modulo ϕ(n) c.à.d. ed ≡ 1[ϕ(n)]
3. Publication du couple (n, e) et mise en secret p, q et d.On appelle e l’exposant de chiffrement, d l’exposant de déchiffrement et n le modulus.
Chiffrement d’un message par Alice :
1. Recherche dans l’annuaire la clé de chiffrement publique de Bob.2. Représentation du message sous forme d’un entier m dans Zn3. calcul du message chiffré c par c ≡ me[n].
Déchiffrage du message c par Bob : cd = med ≡ m [n].
La sécurité du chiffrement RSA :La sécurité du système RSA repose sur la difficulté de trouver p et q premiers en ne connaissant
que n = pq.
A l’heure du e-commerce, c’est le système RSA qui est le plus utilisé aujourd’hui. La taille évolueconstamment en fonction de la puissance des processeurs.Jusqu’à 1997, la taille des clés pour la carte bancaire était de 320 bits (96 chiffres). Mais une attaquepar l’ingénieur mathématicien Serge Humpich qui est parvenu à trouve p et q et a conçu une " yes-card " qui répond à n’importe quel code a poussé le GIE, en novembre 1999, a rajouté sur les cartesbancaires une valeur d’authentification rallongée de 768 bits.
Challenge RSA :
en mars 1991 La société RSA a lancé le Challenge RSA qui consiste à un défi de trouver des chiffresRSA assez grands (voir tableau ci-dessous). La compétition a été annulée en mai 2007.
Compétition Prix Statut DateRSA-576 10 000 $ Factorisé 3-12-2003RSA-640 20 000 $ Factorisé 2-11-2005RSA-704 30 000 $ Annulé -RSA-768 50 000 $ Annulé -RSA-896 75 000 $ Annulé -RSA-1024 100 000 $ Annulé -RSA-1536 150 000 $ Annulé -RSA-2048 200 000 $ Annulé -
9 Z.JADDA & P.PARRAUD
Par exemple : La factorisation de RSA-200 en mai 2005 après 18 mois de calcul :
RSA-200=2799783391 1221327870 8294676387 2260162107 0446786955 4285375600 09929326128400107609 3456710529 5536085606 1822351910 9513657886 3710595448 2006576775 09858055761357909873 4950144178 8631789462 9518723786 9221823983=3532461934 4027701212 7260497819 8464368671 1974001976 2502364930 3468776121 25367942320005854795 6528088349x7925869954 4783330333 4708584148 0059687737 9758573642 1996073433 0341455767 87281815213538140930 4740185467
La société RSA elle-même estime que les clés RSA à 1024 bits devraient arriver en fin de vie auxenvirons de 2010, et qu’il faudra alors avoir basculé sur des clés à 2048 bits.Ces dernières devraient permettre, peut-être, d’être tranquilles jusqu’en 2030 seulement.
Le challenge continue avec les chercheurs :
Des chercheurs de l’EPFL, Lausann, Suisse, de l’université de Bonn, Département Mathématiques,
Allemagne, du Japonais NTT, de l’Inria équipe Caramel Nancy, France, de Microsoft Research, USA
sont et du CWI ( Centre de Maths-Info), Amsterdam, Pays-bas travaillent ensemble depuis des années
pour casser des nombres RSA.
– En mai 2007, l’équivalent d’une clé RSA de 700 bits en 11 mois de calcul intensif de 100 à 300
machines de type Pentium 3Ghz.
– En janvier 2010, l’équivalent d’une clé RSA de 768 bits, composée de 232 chiffres en deux ans et
demi et avec l’aide de 425 machines. Cela a exigé la combinaison de plusieurs méthodes de calcul,
notamment l’exploitation d’un système de calcul distribué qui s’appuie sur l’infrastructure
Grid’5000 qui a sollicité 1700 coeurs parmi les 5000 disponibles, sur une période équivalente à
un an.
les chercheurs ont annoncé qu’il leur faudrait entre 3 et 4 ans pour faire tomber le RSA 1024.
Le dernier nombre RSA cassé :
factorisation de RSA768, 768-bit, 232-digits en 2 facteurs de 384 bits et 116 digits :
1230186684530117755130494958384962720772853569595334792197
3224521517264005072636575187452021997864693899564749427740
6384592519255732630345373154826850791702612214291346167042
9214311602221240479274737794080665351419597459856902143413
=
3347807169895689878604416984821269081770479498371376856891
2431388982883793878002287614711652531743087737814467999489
× 3674604366679959042824463379962795263227915816434308764267
10 Z.JADDA & P.PARRAUD
6032283815739666511279233373417143396810270092798736308917
Conclusion sur RSA :
La méthode RSA est considérée sûre à condition que la taille des clés soit suffisante. Cependant
cette méthode a 2 inconvénients :
- RSA requiert des clés de plus en plus longues du fait de l’amélioration des méthodes de factori-
sation et de la vitesse des ordinateurs.
- RSA est plus lent que le cryptosystème à clé secrète (voir section 4) d’un facteur supérieur à
mille.
3.1.2 Code Rabin
Conçu en 1979 par Michael Rabin.
Ce système repose sur la difficulté du calcul d’une racine carrée modulo un nombre écrit sous la
forme de 2 grands nombres premiers.
Génération des 2 clés par Bob :
1. Choix 2 grands nombres premiers p et q et calcul de n = pq.
2. Publication du nombre n = pq et mise en secret de p et q.
Chiffrement d’un message par Alice :
1. Représentation du message sous forme d’un entier m dans Zn.
2. Calcul de c = m2[n].
Déchiffrage du message c par Bob :
1. Calcul des 2 racines carrées de c modulo p et des 2 racines carrées de c modulo q et
déduction des 4 racines carrées m1,m2,m3 et m4 de c modulo n.
2. Le message est l’un des mi, i = 1, 2, 3 ou 4.
Remarque :
Un inconvénient du schéma de Rabin est la nécessité de faire un choix de textes entre 4 possibilités.
Cela peut être surmonté en rajoutant une redondance aux textes clairs avant le chiffrement ( par
exemple, on peut répéter un certain nombre des derniers bits du message). Avec une grande probabi-
lité, une seule racine carrée à ces redondances. Si aucune n’en possède, le message est rejeté en tant
que frauduleux.
3.1.3 Codes ElGamal
Conçu en 1985 par Taher El Gamal.
Ce système est basé sur la difficulté du problème du logarithme discret.
11 Z.JADDA & P.PARRAUD
C’est la base du système DSA, standardisé par NIST (National Institute of Standards and Techno-
logy).
Il existe 2 codes ElGamal : le code de base et le code modifié qui différent par la fabrication de la clé
publique.
Pour le code de base : Génération des 2 clés par Bob :
1. Choix d’un grand nombre premier p et d’un élément primitif g de Z∗p.
2. Choix de s, 1 ≤ s ≤ p− 2 et calcul de h = gs[p].
3. Publication de(p, g, h) et mise en secret de s.
Pour le code modifié : Génération des 2 clés par Bob :
1. Choix de 2 grands nombres premiers p et q tel que q est un diviseur de p− 1 et g un élément
de Z∗p d’ordre q.
2. Choix de s, 0 ≤ s ≤ q − 1 et calcul de h ≡ gs[p]
3. Publication de la clé (p, q, g, h)(suivant le code) e tmise en secret de s.
Chiffrement d’un message par Alice :
1. Représentation du message comme un entier m.
2. Choix d’un entier a aléatoire tel que 1 ≤ a ≤ p− 1 ou 1 ≤ a ≤ q − 1.
3. Calcul de c1 ≡ ga [p] et c2 ≡ m ha[p].
4. Envoie du chiffré c = (c1, c2) à Bob.
Déchiffrage du message c par Bob :
Bob calcule c2(cs1)−1[p] qui est égale à m.
Partage de la clé de déchiffrement : Secret de Bob : s1, secret de Taher : s2 .
Soit h1 = gs1 et h2 = gs2
Clé publique commune de Bob et Taher = (p, q, g, h = h1h2)
Chiffré : c = (c1, c2) = (ga,m ha),
Clair : m = c2(cs11 cs21 )−1.
Malléabilité du code ElGamal :
Soit (p, g, h) clé publique ElGamal.
Re-chiffrement sans connaissance de la clé privée :
C = (ga,m ha)→ C ′ = (gagr,m hahr) avec 1 ≤ a+ r ≤ p− 2
Application : Vote électronique.
12 Z.JADDA & P.PARRAUD
Attaque sur ElGamal :
En septembre 2005 l’Universitéde Versailles-Saint Quentin en Yvelines et le Celar ont établi un
nouveau record dans le calcul de logarithmes discrets pour des nombres de 613 bits. Ce record a été
établi sur TeraNova, un cluster composéde 20 serveurs de 16 processeurs Itanium 2 d’Intel. Il a fallu
13 jours de traitement continu à 64 processeurs pour résoudre ce problème.
( 99840h/CPU )
3.2 Signature Numérique
Le problème n’est plus lié à la confidentialité d’un message mais le but est de garantir l’intégrité
d’un document électronique et d’en authentifier l’auteur, par analogie avec la signature manuscrite
d’un document papier.
3.2.1 Caractéristiques d’une signature
Un mécanisme de signature numérique doit être :
– Authentique : l’identité du signataire doit pouvoir être retrouvée de manière certaine.
– Infalsifiable :la signature ne peut pas être falsifiée. Quelqu’un ne peut se faire passer pour un
autre.
– Non réutilisable : la signature n’est pas réutilisable. Elle fait partie du document signé et ne
peut être déplacée sur un autre document.
– Inaltérable : un document signé est inaltérable. Une fois qu’il est signé, on ne peut plus le
modifier.
– Irrévocable : la personne qui a signé ne peut le nier.
3.2.2 Fonction de hachage
La technique "Hash-And-Sign" :
Au lieu de signer en utilisant le message M très long, un condensé (ou empreinte ou haché) du
message est calculé avec une fonction de hachage publique h. Le message M est transformé en un
message m = h(M) de longueur fixée.
Propriétés de la fonction de hachage : h doit être :
– à sens unique (résistance au calcul de la pré-image) : étant donnée une sortie y, il est difficile
de trouver x tel que h(x) = y.
– Résistante au second calcul de la pré-image (faible résistance aux collisions) : étant donnée une
entrée x et son image h(x), il est difficile de trouver x0 tel que h(x0) = h(x).
– Résistante forte aux collisions : il est difficile de trouver x 6= x0 tel que h(x) = h(x0).
13 Z.JADDA & P.PARRAUD
contrôle de l’intégrité d’un message :
Alice envoie à Bob un messageM et puis son empreinte h(M). Bob calcule à son tour l’empreinte
du message qu’il reçoit puis la compare avec celle qu’il a reçue. Si ce sont les mêmes, le message n’a
pas été modifié. Sinon il y a un problème d’intégrité du massage.
On peut voir une analogie avec les empreintes digitales.
Exemples de fonctions de hachage :
– Fonctions MD∗ : Message Digest, conçues par R.Rivest en 1991 −→ empreinte de 128 bits.
Depuis 2005, MD2, MD4 et MD5 sont moins utilisées à cause de faiblesse sur les collisions.
– Fonctions SHA∗ : Secure HAsh Algorithm, proposées par le NIST.
– SHA-0 et SHA-1 −→ empreinte de 160 bits. Attaque théorique et faiblesse sur les collisions
en 2005.
– SHA-2 contient les fonctions de hachage SHA-224, SHA-256, SHA-384 et SHA-512, qui
produisent des empreintes de taille différente.
– SHA-3 est en cours de développement après une compétition lancée par le Nist en 2008 qui
doit finir en 2012.
5 finalistes ont été sélectionnés en décembre 2010.
Stratégie pour une signature : Bob, qui veut signer un message M , commence par en faire un
condensé m = h(M), puis il calcule, grâce à sa clé privée, l’appendice s = S(dA,m). Il peut alors
transmettre à Alice son message signé (M, s) . Alice utilise la fonction de vérification ν qui à la clé
publique Kp de Bob, et à un message signé (M, s) par Bob fait correspondre ν(Kp,M, s), valant
"vrai" si (M, s) correspond bien à un message signé par Bob et "faux" sinon.
3.2.3 Signature RSA
Le système RSA peut être utilisé dans un mode signature.
Il suffit d’inverser le rôle de e et de d. Bob peut signer un message M en prouvant qu’il détient d
sans le divulguer.
Pour cela, il envoie en même temps que le message m = h(M), la signature md.
Alice vérifie à l’aide de e que (md)e = m.
La signature RSA associée à l’encodage PSS (Probabilistic Signature Scheme) a été retenue par le
projet NESSIE (New European Schemes for Signatures, Integrity and Encryption) en 2003.
3.2.4 Signature ElGamal
Ce système est surtout utilisé en signature. Il est à l’origine de l’algorithme DSA (Digital
Signature Algorithm) qui fait partie du standard DSS ( Digital Signature Standard ).
14 Z.JADDA & P.PARRAUD
Signature ElGamal avec le codede base :
Clé publique (p, g, h). Clé secrète : s ∈ [0, p− 2].
Pour une signature, on choisit k ∈ [0, p− 2] (différent pour chaque signature). Le message M est
signé : (r, a), avec r = gk mod p et a = k−1(h(M)− sr) mod (p− 1).
Si la signature est correcte, elle doit vérifier : rahr = gh(M) mod p.
(r, a) est appelé l’appendice.
Signature ElGamal avec le codede modifié :
Clé publique (p, q, g, h), clé secrète : s ∈ [0, p− 2].
Signature : (r, a) d’un message M tel que m = h(M) avec :
r = (gk mod p) mod q et a = k−1(m− sr) mod q, k ∈ [0, q − 2] (différent pour chaque signature).
Si la signature est correcte, elle doit vérifier : rahr = (gm mod p) mod q.
3.3 Organisation de PKI
La PKI (Public Key Infrastucture) est le système de gestion des clefs publiques.
Organisation d’une PKI :
L’infrastructure est en règle générale composée de trois entités distinctes :
1. L’autorité d’enregistrement qui se charge des formalités administratives (l’identité des deman-
deurs, la gestion des demandes, ....).
2. L’autorité de certification qui se charge des tâches techniques de création de certificats. L’auto-
rité de certification est ainsi chargée de la signature des demandes de certificat et de révocations.
3. L’Autorité de dépôt qui conserve en sécurité les certificats.
Pour plus de renseignements voir le site de l’ANSSI (Agence nationale de la sécurité des systèmes
d’information).
www.ssi.gouv.fr/fr/index.html
4 Systèmes symétriques
Pour le Chiffrement symétrique ou à clé secrète, l’expéditeur et le destinataire partagent une
même clé privée qui est utilisée pour le chiffrement et le déchiffrement. Elle doit donc rester secrète
et ne pas être divulgué à une tiers personne.
15 Z.JADDA & P.PARRAUD
Il existe deux types de chiffrements symétriques :
1. Chiffrements par blocs : le message m est divisé en blocs de taille fixe et on chiffre un bloc à la
fois.
2. Chiffrements par flots (Appelé aussi chiffrement de flux) : il opère individuellement sur chaque
bit du texte clair en utilisant une transformation qui varie en fonction de la place du bit d’entrée.
4.1 Chiffrement par Blocs
Définition 2 ( Chiffrement itéré ) Dans un chiffrement par blocs itéré à r tours, le chiffré est
calculé par application itérée au texte clair d’une fonction de tour g telle que : Ci = g(Ci−1, ki), i =
1, . . . r avec C0 = m le message clair, ki une clé de tour et Cr le chiffré final. g étant inversible pour
chaque ki.
Pour déchiffrer, il suffit d’inverser l’équation précédente.
Remarque 1 ( Choix de paramètres ) L’augmentation de la taille des bloc, la taille des clés, le
nombre de cycles ainsi que la complexité de l’algorithme des générateurs de clés renforce la sécurité.
4.1.1 Réseau de Feistel
Réseau de Feistel C’est une construction utilisée dans les algorithmes de chiffrements par blocs,
conçu par le cryptologue d’IBM, Horst Feistel en 1970. Dans ce système de chiffrement, un bloc de
texte en clair d’un nombre pair de bits est découpé en deux ; la transformation de ronde est appliquée
à une des deux moitiés, et le résultat est combiné avec l’autre moitié par un XOR. Les deux moitiés
sont alors inversées pour la ronde suivante.
16 Z.JADDA & P.PARRAUD
Exemple de chiffrage par réseau de Feistel
Chiffrage par un réseau de Feistel à deux rondes d’un message constitué de 4 bits, ce qui revient
à construire une bijection de 4 bits vers 4 bits à partir de deux fonctions f1 et f2 de 2 bits vers 2
bits. On considère que pour une certaine clé entrée, ces fonctions sont les suivantes :
Exemple de chiffrage par réseau de Feistel
entrée f1 sortie00 → 0101 → 1110 → 1011 → 01
entrée f2 sortie00 → 1101 → 0010 → 0011 → 01
les chiffrements obtenus des 16 messages possibles :
message résultat0000 01000001 11000010 10100011 01110100 00110101 10010110 11110111 0000
message résultat1000 11011001 01011010 00011011 11101100 10001101 00101110 01101111 1011
Quelques chiffrements par bloc :
1. DES
2. IDEA
3. AES
17 Z.JADDA & P.PARRAUD
4.1.2 DES
Data Encryption Standard.
C’est un chiffrement de Feistel.
Conçu en 1970 par IBM. Il a été standardisé en 1977. C’est ce chiffrement qui est encore en
vigueur pour chiffrer les mots de pass sur les systèmes Unix.
Fonctionnement :
L’algorithme DES est un algorithme itéré à 16 tours dont les 16 clés k1, . . . k16 de 48 bits sont
calculées par un algorithme de séquencement sur une clé principale K de 64 bits.
L’algorithme DES :
Entrée : un message m de 64 bits et une clé de 64 bits dont 56 seulement sont utilisés, les 8
autres sont au bout de chaque octet pour contrôler la parité de l’octet.
Sortie : un chiffré C de 64 bits.
18 Z.JADDA & P.PARRAUD
L’algorithme fait subir à m une permutation initiale (IP) qui donne m′.
m′ est divisé en 2 blocs de 32 bits : L0 la partie gauche et R0 la partie droite. DES exécute 16
itérations de la fonction f ( la fonction itérative ). Elles combinent substitution, transposition et
expansion. Les parties gauche et droite sont modifiées de la manière suivante :
Li = Ri−1
Ri = Li−1 ⊕ f (Ri−1, ki), 1 ≤ i ≤ 16, ( ⊕ = XOR ) et f est définie en utilisant 8 permutations
appelées S-boxes (S=substitution) qui associent à un bloc de 6 bits en entrée un bloc de 4 bits en
sortie.
Le pré-chiffré C ′=(R16, L16) subit la permutation inverse de IP et donne le chiffré final C.
La permutation initiale du DES
58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7
Fonction itérative du DES
19 Z.JADDA & P.PARRAUD
Fonction itérative du DES f(Ri−1, ki) = P (S(E(Ri−1) ⊕ ki)) avec E une fonction d’expan-
sion/permutation fixe qui renvoie Ri−1 de 32 bits sur 48 bits en plaçant le 32eme bit en 1er , le 1er en
2eme et ainsi de suite selon la table :
L’expansion dans la fonction itérative du DES
32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1
On additionne ce mot à la clé ki par ⊕. On subdivise le mot obtenu en 8 blocs de 6 bits. Chacun
est transformé en un bloc de 4 bits en utilisant les S-boxes. Les 8 blocs ainsi obtenus sont concaténés
pour former un mot de 32 bits auquel on applique une permutation P selon la table suivante (16 en
1ere position, 7 en 2eme . . . ) :
La permutation dans la fonction itérative
16 7 20 2129 12 28 171 15 23 265 18 31 102 8 24 1432 27 3 919 13 30 622 11 4 25
Les S-boxes
S1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 71 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 82 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 03 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
S2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 101 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 52 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 153 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
S3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 81 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 12 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 73 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
S4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 151 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 92 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 43 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
S5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 91 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 62 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 143 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
S6 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 111 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 82 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 63 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
S7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 11 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 62 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 23 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
S8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 71 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 21 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 81 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
20 Z.JADDA & P.PARRAUD
Calcul avec les S-box :
Aux 8 blocs (Bj)1≤j≤8 de 6 bits, chacune des 8 S-box associé, transforme le bloc en un bloc de 4
bits.
Pour cela, si Bj = b5b4b3b2b1b0, l’entier b5b0 sélectionne une ligne de Sj et l’entier b4b3b2b1 sélectionne
une colonne. La valeur de Sj(Bj) est l’entier dans la Sj-box à cette position.
Construction des clés de tours :
à chacune des 16 itérations de l’algorithme, on utilise une clé différente ki de 48 bits obtenue à partir
de la clé initiale K.
On applique une permutation PC1 au 56 bits de la clé K après avoir enlevé les 8 bits de parités.
21 Z.JADDA & P.PARRAUD
57 49 41 33 25 17 91 58 50 42 34 26 1810 2 59 51 43 35 2719 11 3 60 52 44 3663 55 47 39 31 23 157 62 54 46 38 30 2214 6 61 53 45 37 2921 13 5 28 20 12 4
Permutation PC1
Le résultat PC1(K) est séparé en 2 blocs C et D de 28 bits. Les 2 blocs subissent un décalage à
gauche d’un cran aux étapes 1, 2, 9 et 16 et de 2 crans pour les autres.
A l’ étapes i on obtient une clé partielle ki de 48 bits en appliquant la règle d’extraction-
permutation PC2 à CiDi
14 17 11 24 1 53 28 15 6 21 1023 19 12 4 26 816 7 27 20 13 241 52 31 37 47 5530 40 51 45 33 4844 49 39 56 34 5346 42 50 36 29 32
Règle d’extraction-permutation PC2 les bits 9, 18, 22, 25, 35, 38, 43 et 48 sont extraits.
Le déchiffrement DES
Il est effectué par le même algorithme en inversant l’ordre d’utilisation des clés de tour. On utilise
k16 à la 1ere itération, k15 à la 2eme et ainsi de suite.
Attaque sur DES :
Si on connaît un texte clair et son chiffré, une recherche exhaustive de la clé est théoriquement
possible.
En 1999 une clé a été retrouvée en 22h par la machine Deep Crack lors de l’attaque des labo RSA
contre DES.
Contre Attaque :
Le triple DES enchaîne 3 applications successives de l’algo DES sur le même bloc de données de
64 bits avec 2 ou 3 clés de DES différentes.
Soient k1 et k2 deux clés DES :
Triple DESk1,k2 = DESk1◦DESk2◦DESk1.
Une clé Triple DES fait 112 bits. C’est le système utilisé en combinaison avec RSA pour les cartes
bancaires.
22 Z.JADDA & P.PARRAUD
4.1.3 IDEA
International Data Encryption Algorithm :
Développé en Suisse par Xuejia Lai et James Massey en 1992. Il effectue des opérations du même
genre que celles du DES avec des blocs de 64 bits et une clef de 128 bits.
L’algorithme :
Entrée : un message m de 64 bits et une clé de 128 bits.
Sortie : un chiffré C de 64 bits.
L’algorithme divise m en 4 blocs (mi)1≤i≤4 de 16 bits chacun et la clé en 8 blocs (ki)1≤i≤8 de 16
bits chacun et effectue 8 rondes.
A chaque ronde, les 4 blocs sont combinées par des XOR (⊕), des additions modulo 216 (�) et
des multiplications modulo 216 + 1(⊗) entre eux et avec les 8 blocs de la clé ( qui changent suivant
les rondes, voir diversification de la clé). Entre chaque ronde, le 2eme et 3eme bloc sont échangés (sauf
à la dernière ronde).
23 Z.JADDA & P.PARRAUD
m1 � k1 = M1 M1 ⊕M3 = M5 M8 � k6 = M9 M2 ⊕M10 = M13
m2 � k2 = M2 M2 ⊕M4 = M6 M7 �M9 = M10 M4 ⊕M10 = M14
m3 � k3 = M3 M5 � k5 = M7 M1 ⊕M9 = M11
m4 � k4 = M4 M6 �M7 = M8 M3 ⊕M9 = M12
La sortie de la 1ere ronde est formée des 4 blocs M11,M13,M12,M14 qui va constituer l’entrée de
la ronde suivante.
Après la 8eme ronde on obtient les 4 blocs X1, X2, X3, X4 et les 8 blocs (K9i )1≤i≤8 de la clé. On
applique une transformation finale :
X1 �K91 = Y1 X2 �K9
2 = Y2 X3 �K93 = Y3 X4 �K9
4 = Y4
Le chiffré est donc : C = Y1Y2Y3Y4
Diversification de la clé IDEA :
Pendant les 8 rondes et la transformation finale, on génère 52 blocs différents de 16 bits ( 6 pour
chacune des 8 rondes et 4 pour la transformation finale ) :
La clé de 128 bits est divisée en 8 blocs (ki)1≤i≤8 de 16 bits.
k1, ...k6 sont utilisés dans la 1ere ronde.
k7 et k8 au début de la 2eme ronde.
Ensuite la clé subit une permutation circulaire de 25 bits vers la gauche et est encore divisée en
8 blocs (k′i)1≤i≤8 ,
k′1, ...k′4 sont utilisés dans la 2eme ronde et k′5, ...k′8 par la 3eme. La clé subit à nouveau une
permutation circulaire de 25 bits vers la gauche et est encore divisée en 8 blocs et ainsi de suite
jusqu’à la fin de l’algorithme.
Déchiffrement IDEA : Le déchiffrement suit le même fonctionnement que le chiffrement sauf
que les blocs de clé de déchiffrement sont l’inverse de la clé de chiffremnt pour l’addition et la
multiplication. (Par convention, 0 est l’inverse de 0 pour la multiplication).
Le tableau ci-dessous donne les blocs de la clé de déchiffrement correpondant aux blocs de la clé
de chiffrement.
Les blocs de la clé de déchiffrement IDEA Kji désigne le ieme bloc de la clé à la j eme ronde et à la
phase finale avec 1 ≤ i ≤ 6 et 1 ≤ j ≤ 9.
Ronde
24 Z.JADDA & P.PARRAUD
1 (K91 )−1 −K9
2 −K93 (K9
4 )−1
2 (K81 )−1 −K8
3 −K82 (K8
4 )−1 K85 K8
63 (K7
1 )−1 −K73 −K7
2 (K74 )−1 K7
5 K76
4 (K61 )−1 −K6
3 −K62 (K6
4 )−1 K65 K6
65 (K5
1 )−1 −K53 −K5
2 (K54 )−1 K5
5 K56
6 (K41 )−1 −K4
3 −K42 (K4
4 )−1 K45 K4
67 (K3
1 )−1 −K33 −K3
2 (K34 )−1 K3
5 K36
8 (K21 )−1 −K2
3 −K22 (K2
4 )−1 K25 K2
6Finale (K1
1 )−1 −K12 −K1
3 (K14 )−1 K1
5 K16
Pour casser IDEA, la clé étant de longueur 128, il faudrait effectuer 2128 = 1038 combinaisons.
4.1.4 AES
Advanced Encryption Standard
Mis au point par Joan Daeman et Vincent Rijmen en 2000, appelé aussi Rijndael.
L’algorithme procéde par blocs de 128 bits ( 16 octets ), 192 bits ( 24 octets ) ou 256 bits (32
octets ) avec une clé de même taille également.
Chaque bloc subit une séquence de 5 transformations répétées Nr fois. Nr = 10 , 12 ou 14 suivant
la longueur de la clé.
Les octets des données sont placés dans des tableaux de 4 lignes et 4, 6 ou 8 colonnes.
Algorithme AES avec des blocs à 128 bits
A partir de la clé initiale K, le système génère Nr + 1 ( ici = 11) clés de tours : TK[i], 0 ≤ i < 11
avec TK[0] = K.
AES(St,K)Entrée : Le tableau St (le clair ) et la clé KSortie : Le tableau St modifié ( le chiffré )débutExpandedKey (K,TK) ;AddRoundKey (St,TK[0]) ;pour(i=1 ; i<10 ; i++)Round (St,TK[i]) ;FinalRound(St,TK[10]) ;fin
25 Z.JADDA & P.PARRAUD
Round(St,T)Entrée : Le tableau d’état St et une clé de tour TSortie : Le tableau St modifiédébutSubBytes(St) ;ShiftRow(St) ;Mixcolumns(St) ;AddroundKey (St,T) ;fin
FinalRound(St,T)Entrée : Le tableau d’état St et une clé de tour TSortie : Le tableau St modifiédébutSubBytes(St) ;ShiftRow(St) ;AddRoundKey (St,T) ;fin
– Addition de la clé secrète par un XOR .
– Transformation non linéaire d’octets : les 128 bits sont répartis en 16 blocs de 8 bits , eux-même
dispatchés dans un tableau 4× 4. Chaque octet est transformé par une fonction non linéaire S
(ByteSub).
– Décalage dans les lignes (ShiftRow) : les 3 dernières lignes sont décalées cycliquement vers la
gauche : la 2eme ligne est décalée d’une colonne, la 3eme ligne de 2 colonnes, et la 4eme ligne de
3 colonnes.a11 a12 a13 a14
a21 a22 a23 a24
a31 a32 a33 a34
a41 a42 a43 a44
est transformée en
a11 a12 a13 a14
a22 a23 a24 a21
a33 a34 a31 a32
a44 a41 a42 a43
– Brouillage des colonnes (MixColumn) : Chaque colonne est transformée par combinaisons li-
né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.
– 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 séquencement). Cette clé de tour est ajoutée par un XOR au
dernier bloc obtenu.
Calculs pour ByteSub et MixColumn :
26 Z.JADDA & P.PARRAUD
Les opérations de l’AES sont définies soit au niveau de l’octet, soit sur des mots de 32 bits.
Un octet est représenté comme un élément du corps fini F256 et un mot comme un polynôme à
coefficients dans F256.
Soit le polynôme P (X) = X8+X4+X3+X+1. Il est à coefficients dans F2 = {0, 1} et irréductiblesur ce corps.
On considère le corps F256 comme le corps quotient F2[X]P (X)
.
Calculs pour ByteSub et MixColumn :
Les 256 éléments de F256 vont être considérés comme des polynômes b(X) = b7X7 +b6X
6 +b5X5 +
b4X4 + b3X
3 + b2X2 + b1X + b0
ou des octets b7b6b5b4b3b2b1b0.
L’addition (⊕) se fait bit à bit et la multiplication (⊗) se fait modulo P (X).
Tout élément admet un inverse et on admet que 0 a pour inverse 0.
Opérations dans F256 :
F256 = F2[X]P (X)
, avec P (X) = X8 +X4 +X3 +X + 1.
Dans cette structure un élément de base est un polynôme de F2[X] de degré ≤ 7.
Le calcul se fait en binaire ou en hexadécimal.
Décimal 10 11 12 13 14 15Binaire 1010 1011 1100 1101 1110 1111
Hexadécimal A B C D E FAddition :
(X6 +X4 +X2 +X + 1)⊕ (X7 +X + 1) = X7 +X6 +X4 +X2
= (01010111)⊕ (10000011) = 11010100 = (D4)H
Multiplication modulo P (X) = X8 +X4 +X3 +X + 1 :
(01010111)⊗ (10000011) = (x6 + x4 + x2 + x+ 1)⊗ (x7 + x+ 1) modP (X)
= x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1 modP (X)
= (x5 + x3)P (X) + x7 + x6 + 1modP (X)
27 Z.JADDA & P.PARRAUD
= x7 + x6 + 1
La transformation S ou " Boîte-S " ou " ByteSub " : C’est elle qui donne la robustesse au sys-
tème.
– Chaque octet du tableau est changé par son inverse dans le corps F256 .
– On applique la transformation suivante sur chaque octet ( b7b6b5b4b3b2b1b0 ) résultant de l’opé-
ration précédente :
1 0 0 0 1 1 1 11 1 0 0 0 1 1 11 1 1 0 0 0 1 11 1 1 1 0 0 0 11 1 1 1 1 0 0 00 1 1 1 1 1 0 00 0 1 1 1 1 1 00 0 0 1 1 1 1 1
b0
b1
b2
b3
b4
b5
b6
b7
⊕
11000110
Brouillage des colonnes : " MixColumn " :
On notera {n} l’écritue Exadécimal de n.
soit a(X) = a3X3 + a2X
2 + a1X + a0 = {03}X3 + {01}X2 + {01}X + {02} un polynôme fixe.
A part au dernier tour, chaque colonne de 4 octets
c0
c1
c2
c3
, vue comme un polynôme c3X3 + c2X
2 +
c1X + c0 de F256[X] est multiplié modulo (X4 + 1) par le polynôme a(X).
Ce qui revient à faire le calcul matriciel :d0
d1
d2
d3
=
a0 a3 a2 a1
a1 a0 a3 a2
a2 a1 a0 a3
a3 a2 a1 a0
c0
c1
c2
c3
Algorithme de séquencement de clé :
A partir de la clé initiale K, 11 clés (Ki )0≤ i≤10 sont créées.
1ere étape : la clé initiale K de 16 octets, stockée dans une matrice ( 4, 4) est étendue en une clé
W de 176 octets, stockée dans une matrice ( 4, 44) . Au ieme tour, la clé Ki est donnée par les 4
colonnes de W : 4i, 4i+ 1, 4i+ 2 et 4i+ 3.
Construction de la clée étendue W "Expanded Key" :
28 Z.JADDA & P.PARRAUD
Entrée : la clé K (sous forme de matrice)Sortie : La clé étendue W (sous forme de matrice)
ExpandedKey (K,W)débutpour (j = 0; j < 4; j + +)
pour (i = 0; i < 4; i+ +) W [i, j] = K[i, j];pour (j = 4; j < 44; j + +)
si (j ≡ 0mod(4))alors
W [0, j] = W [0, j − 4]⊕ S (W [1, j − 4])⊕RC[ j4
];pour (i = 1; i < 4; i+ +)
W [i, j] = W [i, j − 4]⊕ S (W [i+ 1mod4, j − 1]);sinon
pour ((i = 0; i < 4; i+ +)W [i, j] = W [i, j − 4]⊕W [i, j − 1]);
finsi ;fin
S est la transformation ByteSub et RC[i] = αi avec α = X = {02} dans F256
Déchiffrement :
Le déchiffremnt se fait en remplaçant chaque opération par son inverse.
pour S :
on calcule
0 0 1 0 0 1 0 11 0 0 1 0 0 1 00 1 0 0 1 0 0 11 0 1 0 0 1 0 00 1 0 1 0 0 1 00 0 1 0 1 0 0 11 0 0 1 0 1 0 00 1 0 0 1 0 1 0
b′0
b′1
b′2
b′3
b′4
b′5
b′6
b′7
⊕
10100000
puis son inverse dans F256.
Pour le brouillage des colonnes on utilise
a(X)−1 = {0B}X3 + {0D}X2 + {09}X + {0E}
(a(X) = {03}X3 + {01}X2 + {01}X + {02})
Quelques applications de l’AES :
– SONET (Synchronous Optical NETwork)
– Routeurs Internet
– Switch Ethernet ATM (Asynchronous Transfert Mode)
– Communications Sattelites
– VPN (Réseaux privés virtuels)
– Téléphonie mobile
29 Z.JADDA & P.PARRAUD
4.2 Chiffrement par Flot
Définition 3 Le chiffrement par flot (ou stream cipher ou chiffrement de flux) est un chiffrement
à clé secrète qui opère individuellement sur chaque symbole ( ou bit) du texte clair en utilisant une
transformation qui varie en fonction de la place du symbole d’entrée. La transformation d’un symbole
mi est le plus souvent une combinaison avec un symbole ki produit par un générateur pseudo-aléatoire.
Remarque 2 La sécurité donc dépend de la qualité du générateur.
si ki = 0 pour tout i, c = m.
Mais si la séquence des clés ki est infinie et complètement aléatoire, on a un One-Time-Pad.
En pratique, on se situe entre ces 2 extrémités.
4.2.1 GPA
Définition 4 Un générateur pseudo-aléatoire de symboles (GPA) est un automate à nombre fini
d’états qui, à partir de la donnée d’un nombre fini de symboles ( état initial ) produit une suite de
symboles qui a l’apparence d’une suite aléatoire. Dans un système de chiffrement à flot, l’état initial
est calculé à partir de la clé K et d’un vecteur d’initialisation.
Définition 5 Un GPA est un GPACS (GPA Cryptographiquement Sûr) s’il passe le test du prochain
bit ;càd si aucun algorithme polynomial ne peut prédire le keme bit de la suite en connaissant les (k−1)
précédents avec une probabilité supérieur à 12.
Exemple d’un GPACS :Générateur BBS ( Blum-Blum-Shub )Paramètres : n = pq, p et q premiers congrus à 3 (mo4).Etats : [[1, n− 1]]Algo : pour produire r bits k1...kr, choisir un état g premier avec n,calculer x0 = g2 (mod n)pour i variant de 1 à r fairexi = x2
i−1 (mod n)ki = xi (mod 2)Fin pourretourner k1...kr
Remarque 3 BBS est un GPACS, mais très coûteux à cause des opérations pour produire un bit,
donc non facilement utilisable en pratique pour le chiffrement à flot.
4.2.2 LFSR
Le LFSR (Linear Feedback Shift Register) est générateur pseudo-aléatoire de clés.
C’est un registre à décalage avec rebouclage linéaire.
30 Z.JADDA & P.PARRAUD
LF : Linear Feedback : rebouclage linéaire par un XOR entre certains bits du registre en replaçant
le résultat du calcul dans le bit le plus à gauche.
S : Shift : décalage vers la droite d’une position à chaque nouveau bit.
R : Register : registre où sont stockées des suites binaires (clés).
Définition 6 Un registre LFSR de longueur L est constitué de L sections, d’une fonction de retour
Feedback définie par XOR et d’une horloge qui contrôle le mouvement des données.
Les L sections sont aussi appelées étapes, éléments de retard, cases mémoires ou flip-flops, nu-
mérotées de 0 jusqu’à L− 1, contenant chacune 1 bit (état interne). Pendant chaque unité de temps
les opérations suivantes sont effetuées :
1. Le contenu de l’étape 0 constitue la sortie.
2. Le contenu de l’étape i est déplacé vers l’étape i− 1.
3. Le nouveau contenu de l’étape L − 1 est le bit de rebouclage obtenu par un XOR entre les
contenus précédents d’un sous-ensemble fixe d’étapes.
Périodicité :
– Les bits (s0, · · · , sL−1) forment l’état initial du registre.
– La suite (sn)n≥0 de longueur L produite par un LFSR est une suite à récurrence linéaire
homogène d’ordre L.
– Inversement ce type de suite peut toujours être produite par un LFSR.
– Ces suites sont ultimement périodiques (i.e. il existe i0 tel que si = si+T pour tout i ≥ i0).
Autremnet dit, la suite est périodique si on ignore un nombre fini de bits initiaux.
Toute suite (sn) binaire à récurrence linéaire homogène d’ordre L est ultimement périodique. Sa
période T est inférieure ou égale à 2L − 1.
Définition 7 (polynôme de rétroaction) Soit un LSFR de longueur L et de sous ensembles fixes
de rebouclage {i1, ...ip}, 0 ≤ p ≤ L−1, on appelle polynôme de rétroaction d’un tel LFSR, le polynôme
R(X) =
p∑j=1
XL−ij + 1.
31 Z.JADDA & P.PARRAUD
Notation :
Un LFSR de longueur L et de polynôme de rétroaction R(X) sera noté LFSR (L,R(X)).
Exemple 3 Soit le LFSR de longueur 3 dont les sections de rebouclage sont les 2 premières.
Son polynôme de rétroaction est P (X) = X3 +X2 + 1
Définition 8 ( Complexité linéaire) La complexité linéaire d’une suite est la taille du plus petit
LFSR permettant de produire cette suite. S’il n’existe pas de LFSR l’engendrant, sa complexité est
infinie.
Définition 9 (Polynôme de rétroaction minimal) le polynôme de rétroaction minimal f0 du re-
gistre (ou de la suite générée) est le polynôme unitaire de plus bas degré parmis tous les polynômes de
rétroaction de tous les LFSRs générant cette suite . C’est un diviseur des polynômes de rétroaction
de ces LFSRs.
Quelques résultats :
– Si le polynôme de rétroaction est irréductible, alors la suite engendrée par le LFSR quelle que
soit son initialisation (à part l’état nul) ne peut être engendrée par un LFSR plus court.
– la complexité linéaire de la suite s = (sn)n≥0 (ou du LFSR produisant la suite) est Λ(s) =
deg(f0).
Calcul du polynôme minimal :
– Soit (sn)n une suite binaire à rétroaction linéaire d’ordre L dont l’état initial est non nul. Son
polynôme de rétroaction minimal est l’unique polynôme unitaire f0 de F2[X] tel qu’il existe
g0 ∈ F2[X] vérifiant s(X) =g0(X)
f0(X), deg(g0) < deg(f0) et pgcd(g0, f0) = 1.
– Une suite (sn)n≥0 est produite par un LFSR dont le polynôme de rétroaction f(X) = 1+c1X+
· · ·+ cLXL si et seulement si son développement en série formelle est
s(X) =∞∑n=0
snXn =
g(X)
f(X)
32 Z.JADDA & P.PARRAUD
où g est un polynôme de F2[X] déterminé par
g(X) =L−1∑i=0
X i
i∑j=0
ci−jsj
avec deg(g) < deg(f).
Un exemple :
Soit (sn)n≥0 la suite produite par le LFSR suivant :
(sn) = (100100 . . .).
Le polynôme de rétroaction est : f(X) = X10 +X7 +X4 +X3 +X + 1
Le polynôme relatif à l’état initial est : g(X) = X7 +X + 1
On a s(X) = X7+X+1X10+X7+X4+X3+X+1
= 1X3+1
Le polynôme de rétroaction minimal est alors f0(X) = X3 + 1
La suite (sn)n≥0 peut être générée par le LFSR :
de complexité linéaire 3.
Algorithme de Berlekamp-Massey :
– E. Berlekamp de 1968 : décodage des codes BCH
– J. Massey en 1969 : trouver le plus petit LFSR générant une suite s de complexité Λ(s) à
partir des 2Λ(s) premiers bitsAlgorithme de Berlekamp-MasseyEntrée : une suite sn = s0, . . . , sn−1
Sortie : La complexité linéaire Λ(sn)Initialisation : f(X) = 1; Λ = 0;m = −1; g(X) = 1;N = 0Déroulement : Tant que N ≤ n− 1 faire
d = sN +Λ∑i=1
cisN−i mod 2
avec f(X) = 1 +
Λ∑i=1
ciXi
si d = 1 alorst(X) = f(X)f(X) = f(X) + g(X)XN−m
si 2Λ ≤ N alorsΛ = N + 1− Λm = Ng(X) = t(X)
N = N + 1Retourner Λ
33 Z.JADDA & P.PARRAUD
Le constat :
– l’algorithme de Berleamp-Massey détermine l’unique LFSR de longueur Λ(s)qui génère la suite
(sn)n≥0 à partir de n’importe quelle sous-suite de longueur 2Λ(s)
– LFSR : longueur = complexité linéaire
– problème résolu avec f irréductible
Sécurité des LFSR :
– La période doit être la plus longue possible.
– Le flux de sortie doit être le plus aléatoire possible.
– La clé K servant d’initialisation doit être la plus longue possible ( au moins 128 bits) et rester
secrète.
– Les LFSR ne sont pas des GPACS. L’algorithme de Berlekamp-Massey, permet de retrouver
un polynôme engendrant une suite finie en un temps quadratique.
Celà conduit à l’utilisation de LFSR combinés.
4.2.3 LFSRs combinés
On utilise n LFSRs donnant chacun un bit de sortie. On applique une fonction booléenne à ces
sorties qui donne le bit de sortie final.
Exemple 1 d’utilisation : A5/1
Système de chiffrement à flot synchrone utilisé par le GSM (Global System for Mobile Communi-
cations).
34 Z.JADDA & P.PARRAUD
Le GPA de A5/1 est constitué de 3 LFSRs de longeurs 19, 22 et 23 bits et de polynômes de
rétroaction :
P1(X) = X19 +X18 +X17 +X14 + 1.P2(X) = X22 +X21 + 1.P3(X) = X23 +X22 +X21 +X8 + 1.
On regarde la cellule 11 pour LFSR 1, la cellule 12 pour LFSR 2 et 13 pour LFSR 3. Les LFSRs
dont le bit est majoritaire sont décalés. La sortie est obtenue par un XOR des 3 sorties des LFSRs.
Exemple 2 d’utilisation : E0
Système de chiffrement par flot utilisé par le protocole Bluetooth pour protéger les transmis-
sions.
Le GPA de E0 est constitué de 4 LFSRs de longeurs 25, 31, 33 et 39 bits et de polynômes de rétro-
action :
P1(X) = X25 +X20 +X12 +X8 + 1.P2(X) = X31 +X24 +X16 +X12 + 1.P3(X) = X33 +X28 +X24 +X4 + 1.P4(X) = X39 +X36 +X28 +X4 + 1.
Principe de E0 :
Au neme top de l’horloge, les 4 LFSR sont décalés et produisent chacun un bit xin, 1 ≤ i ≤ 4. On
génère aussi 2 états internes cn−1 et cn de 2 bits chacun avec cn−1 = c1n−1c
0n−1 et cn = c1
nc0n, l’écriture
binaire.
Le bit sortant des LFSR est zn =4∑i=1
xin + c0n mod 2.
L’état interne cn+1 est construit de la manière suivante :
Soit sn+1 = E(
4∑i=1
xin + cn
2) avec + l’addition des entiers,
35 Z.JADDA & P.PARRAUD
E la partie entière et s1n+1s
0n+1 l’écriture binaire de sn+1.
c0n+1 = s0
n+1 ⊕ c0n ⊕ c0
n−1 ⊕ c1n−1 et
c1n+1 = s1
n+1 ⊕ c1n ⊕ c0
n−1
4.3 Comparaison des chiffrements par Blocs et par FlotsPar Blocs Par Flots
Avantages Réutilisation des clés - Rapidité- Moins de codes d’implémentation
Inconvénients 2 utilisations d’une même clé facilite la cryptanalyseApplications Transfert de fichiers Chiffrement de canal de communication
4.4 La loi française et le chiffrement
L’usage de PGP , a longtemps été interdit en France, car considéré jusqu’en 1996 comme une
arme de guerre de deuxième catégorie. La législation française s’est ensuite assouplie.
Le chiffrement est libre tant que cela reste personnel. Sinon c’est soumis à autorisation. C’est l’Agence
nationale de la sécurité des systèmes d’information (ANSSI) créée en 2009 qui assure la mission
d’autorité nationale en matière de sécurité des systèmes d’information. www.ssi.gouv.fr
4.5 Exemple de la carte bancaire
La carte à puce française est une sorte de petit ordinateur, elle possède :
– un processeur (assez peu puissant) qui permet d’effectuer des calculs,
– une mémoire "vive" pour enregistrer l’historique des transactions,
– une mémoire "morte" où sont stockées les informations nécessaires à l’authentification et au
chiffrement des données (dont une partie est en lecture seule et l’autre en lecture cachée).
Authentification de la carte : Une valeur de signature V S est calculée lors de la fabrication de la
CB à partir d’informations relatives au propriétaire (nom, numéro de carte, date de validité...) et de
S la partie secrète de la clé RSA associée à la carte.
On calcule d’abord une valeur numérique Y = f(info) déduite des informations écrites dans la
carte.
La V S est alors calculée en utilisant la clé secrète S du GIE CB (Groupement interbancaire) :
V S = S(Y ). La fabrication et l’écriture des VS sur la puce se fait dans des locaux très sécurisés, car
S doit rester secret.
Paiement par carte :
36 Z.JADDA & P.PARRAUD
– Si la transaction est d’un montant faible,
Le terminal compare Y 1 et Y 2.
Si Y 1 = Y 2, on tape le code confidentiel qui est stocké (sous forme chiffrée) à la fois dans la
puce et sur la piste magnétique de la carte. Dans ce cas c’est la puce de la carte qui elle-même
vérifie si le code entré est le bon, et transmet sa réponse au terminal.
– Si la transaction est d’un gros montant, ( affichage de "Autorisation" su l’écran du terminal)
Le terminal interroge un centre de contrôle à distance, qui envoie à la carte une valeur aléatoire
x. La carte calcule y = f(x,K), où K est une clé secrète, inscrite dans la partie illisible de la
carte, et f est la fonction de chiffrement du Triple DES. La valeur y est retransmise au centre,
qui lui-même calcule f(x,K), et donne ou non l’autorisation.
– Pour un paiement via Internet, l’internaute paie en donnant des informations sur sa carte de
crédit. Cette demande est chiffrée à l’aide de la clé publique de la société, puis envoyée. Seule
la société visée, peut déchiffrer ce message, avec sa clé privée.
37 Z.JADDA & P.PARRAUD
5 Bibliographie
– Algèbre discrète et codes correcteurs, O. Papini, J. Wolfmann, Spring. Verl., Math. & App.20
– Finite Fields, R. Lidl, H. Niederreiter, Cambridge
– HandBook of Coding Theory I & II, V. Pless, W.C. Huffman, North Holland
– The Theory of Error-Correcting Codes, F.J. MacWilliams, N.J.A. Sloane, North Holland
– Cryptography Theory and Practice, D.R. Stinson, Chapman & Hall/CRC
– HandBook of Applied Cryptography, A.J. Menezes, P.C. Van Oorschot, S.A. Vanstone, CRC
– Applied Cryptography, B. Schneier, Wiley
– Coding Theory and Cryptography, H. Niederreiter, SUP 1
– Programmation en C sous Linux, C. Blaess, Eyrolles
– Introduction à la Cryptographie, J. Buchman, Dunod, Sciences Sup
– Algèbre et Protection de l’Information, A. Poli, P. Guillot, Hermes, Lavoisier
– Cryptographie, P. Barthelemy, R. Rolland, P. Veron, Hermes, Lavoisier
– Codage, cryptologie et applications, B. Martin, Colect. Tech. Scient. Telecom, PPUR
– Introduction à la cryptographie, J. Buchmann, Dunod, Sciences Sup
38 Z.JADDA & P.PARRAUD