Chiffrement par blocs
Pierre-Louis Cayrel
Universit´e de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France
05.55.45.73.10 pierre-louis.cayrel@xlim.fr
Licence professionnelle Administrateur de R´eseaux et de Bases de Donn´ees
Sommaire
Syst`eme de chiffrement par blocs
Les modes de chiffrement
Le DES
L’AES
Classes de chiffrements sym´ etriques
Chiffrement sym´etrique par flot
I Traitement `a la vol´ee ; chiffrement `a la one-time pad :|M|=net avec une petite cl´eK, g´en´erer K0/|K0|=n
I S´ecurit´e :
I Substitution rapide (⊕typiquement)
I G´en´erateur pseudo al´eatoire : impossible `a pr´edire
I Kerckhoffs : la s´ecurit´e repose sur le g´en´erateur de cl´e !
I Ex : LFSR, RC4 (Rivest), E0[Bluetooth],A5/1[GSM]
Syst`eme de chiffrement par blocs
D´ efinition du chiffrement par blocs
I On d´esigne par chiffrement par blocs (block-cipher en anglais), tout syst`eme de chiffrement (sym´etrique) dans lequel le message clair est d´ecoup´e en blocs d’une taille fix´ee, et chacun de ces blocs est chiffr´e.
I La longueurndes blocs et la taillel des cl´es sont deux caract´eristiques des syst`emes de chiffrement par blocs.
D´ ecoupage en blocs
I Le messagem`a chiffrer est d´ecoup´e en blocs denbits.
m=m1m2...mk.
I Si la longueur du message n’est pas un multiple de la longueur d’un bloc, on le compl`ete : c’est le bourrage ou padding en anglais.
Plusieurs techniques de bourrage existent.
Une technique de bourrage
I Une fa¸con de bourrer (RFC2040) consiste `a compl´eter le dernier bloc par autant d’octets que n´ecessaire, chaque octet ayant pour valeur le nombre d’octets ajout´es.
I Par exemple, s’il manque trois octets au messagem=o1o2o3o4o5
pour obtenir un bloc de huit octets, on ajoute trois octets ´egaux `a 3 o1 o2 o3 o4 o5 03 03 03
I S’il se trouve que la taille de la donn´ee `a chiffrer est un multiple de la taille d’un bloc, on ajoute un bloc entier dont chaque octet a pour valeur la taille en octet d’un bloc.
I Par exemple, pour des blocs de huit octets, on ajoute le bloc
Chiffrement it´ eratif
I Tous les syt`emes de chiffrement par blocs actuels suivent le sch´ema suivant
I Le bloc clair mest transform´er fois successivement `a l’aide d’une fonctionf qui d´epend d’une sous-cl´eki . Le chiffr´ec est le r´esultat de la derni`ere transformation.
c=f(...f(f(m,k1),k2), ...),kr).
r est appel´e nombre de tours ou de rondes.
Classes de chiffrements sym´ etriques (2)
Chiffrement sym´etrique par bloc (bloc cypher)
I M =M1×M2×...×Ms :s blocs der= ns bits
I S´ecurit´e :
I Pour chaque bloc :Ci=EK(Mi) d´epend deE
I Pour chaque message : d´epend aussi du mode de chiffrement !
I Ex : DES, AES, IDEA, BLOWFISH, RC6
Les modes de chiffrement
Objectifs des modes op´ eratoires
I Ils ne concernent que le chiffrement par bloc.
I Ils doivent masquer les blocs clairs identiques.
I Deux messages identiques chiffr´es avec la mˆeme cl´e ne donnent pas les mˆemes chiffr´es.
Les modes de chiffrement : Le mode ECB
I Mode ECB (Electronic Code Book)
I Chiffrement : chaque bloc clairmi est chiffr´e ind´ependamment et donne un bloc chiffr´eci =Ek(mi).
I D´echiffrement : chaque chiffr´e est d´echiffr´e ind´ependamment pour donner le clair correspondantmi =Dk(ci).
I Cons´equence : deux blocs clairs identiques donnent toujours le mˆeme bloc chiffr´e pour une cl´ekfix´ee.
I Aucune s´ecurit´e, pas d’utilisation
Les modes de chiffrement : Le mode CBC
I Mode CBC (Cipher Bloc Chaining)
I Chiffrement : un vecteur d’initialisationIV est g´en´er´e al´eatoirement.
ci =Ek(mi⊕ci−1).Le vecteurIV est transmis avec les blocs chiffr´es.
I D´echiffrement :mi =Dk(ci)⊕ci−1.
I Cons´equence : deux blocs clairs identiques chiffr´es diff´eremment.
I Mode le plus utilis´e
Les modes de chiffrement : Le mode OFB
I Mode OFB (Output FeedBack)
I Chiffrement : un vecteur d’initialisationIV est g´en´er´e al´eatoirement.
ci =ri⊕mi , o`ur0=IV et pouri≥1,ri =Ek(ri−1). Le vecteurIV est transmis avec les blocs chiffr´es.
I D´echiffrement :mi =ci⊕ri .
I Cons´equence : deux blocs clairs identiques chiffr´es diff´eremment.
I Remarque : c’est du chiffrement `a flot.
I Totalement sym´etrique
I Moins de cablage
I Utilis´e dans les satellites
Les modes de chiffrement : Le mode CFB
I Mode CFB (Cipher FeedBack)
I Chiffrement : un vecteur d’initialisationIV est g´en´er´e al´eatoirement.
ci =ri⊕mi,o`ur1=Ek(IV) et pouri ≥2,ri=Ek(mi−1⊕ri−1).Le vecteurIV est transmis avec les blocs chiffr´es.
I D´echiffrement :mi =ci⊕ri.
I Cons´equence : deux blocs clairs identiques chiffr´es diff´eremment.
I Moins sˆur, parfois plus rapide
I Utilis´e dans les r´eseaux
Les modes de chiffrement : Le mode CTR
I Mode CTR (CounTeR mode)
I Chiffrement :ci =ri⊕mi,o`ur1=Ek(cpt) et pouri≥2, ri =Ek(cpt+i−1).
I D´echiffrement :mi =ci⊕ri.
I Cons´equence : deux blocs clairs identiques chiffr´es diff´eremment.
Le DES
Partie tir´ee en partie dewww.commentcamarche.net/crypto/des.php3
Les standards de chiffrement par bloc
D.E.S (Data Encryption Standard) - 1977
I Standard am´ericain FIPS 46-2
I Chiffrement par blocs de 64 bits
I Cl´e de 64 bits dont 8 bit de parit´e :
I 56 bits effectifs (plaid´e par la NSA)
I Diversification en 16 sous-cl´es de 48 bits
I Structure g´en´erale :
I Permutation initialeIP
I 16 rondes de Feistel :
Li =Ri−1;Ri=Li−1⊕f(Ri−1,Ki)
I Permutation finaleIP−1
Les grandes lignes de l’algorithme sont les suivantes
I Fractionnement du texte en blocs de 64 bits (8 octets) ;
I Permutation initiale des blocs ;
I D´ecoupage des blocs en deux parties : gauche et droite, nomm´eesG etD;
I Etapes de permutation et de substitution r´ep´et´ees 16 fois (appel´ees rondes) ;
I Recollement des parties gauche et droite puis permutation initiale inverse.
L’algorithme du DES
Permutation initiale
Dans un premier temps, chaque bit d’un bloc est soumis `a la permutation initiale, pouvant ˆetre repr´esent´ee par la matrice de permutation initiale (not´ee PI) suivante :
PI
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
Scindement en blocs de 32 bits
Une fois la permutation initiale r´ealis´ee, le bloc de 64 bits est scind´e en deux blocs de 32 bits, not´es respectivementG etD (pour gauche et droite). On noteG0etD0l’´etat initial de ces deux blocs :
G0
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
D0
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
Rondes
Les blocsGn etDnsont soumis `a un ensemble de transformation it´eratives appel´ees rondes, explicit´ees dans ce sch´ema, et dont les d´etails sont donn´es plus bas :
Fonction d’expansion
Les 32 bits du blocD0sont ´etendus `a 48 bits grˆace `a une table (matrice) appel´e table d’expansion (not´eeE), dans laquelle les 48 bits sont
m´elang´es et 16 d’entre eux sont dupliqu´es : E
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
Ainsi, le dernier bit deD0 (c’est-`a-dire le 7`eme bit du bloc d’origine) devient le premier, le premier devient le second, ... De plus, les bits 1,4,5,8,9,12,13,16,17,20,21,24,25,28 et 29 deD0(respectivement 57, 33,
OU exclusif avec la cl´ e
La matrice r´esultante de 48 bits est appel´eeD00 ou bienE[D0].
L’algorithme DES proc`ede ensuite `a un OU exclusif entre la premi`ere cl´e K1etE[D0]. Le r´esultat de ce OU exclusif est une matrice de 48 bits que nous appeleronsD0par commodit´e (il ne s’agit pas duD0de d´epart !).
Fonction de substitution
I D0est ensuite scind´e en 8 blocs de 6 bits, not´eD0i.
I Chacun de ces blocs passe par des fonctions de s´election (appel´ees parfois boˆıtes de substitution ou fonctions de compressionou encore boˆıtesS (S-box)), not´ees g´en´eralementSi.
I Les premiers et derniers bits de chaqueD0i d´etermine (en binaire) la ligne de la fonction de s´election, les autres bits (respectivement 2, 3, 4 et 5) d´eterminent la colonne.
I La s´election de la ligne se faisant sur deux bits, il y a 4 possibilit´es (0,1,2,3). La s´election de la colonne se faisant sur 4 bits, il y a 16 possibilit´es (0 `a 15).
I Grˆace `a cette information, la fonction de s´election ’s´electionne’ une valeur cod´ee sur 4 bits.
Fonction de substitution
Voici la premi`ere fonction de substitution, repr´esent´ee par une matrice de 4 par 16 :
0 1 2 3 4 5 6 7 8 9 10
0 14 4 13 1 2 15 11 8 3 10 6
1 0 15 7 4 14 2 13 1 10 6 12
2 4 1 14 8 13 6 2 11 15 12 9
3 15 12 8 2 4 9 1 7 5 11 3
11 12 13 14 15
0 12 5 9 0 7
1 11 9 5 3 8
2 7 3 10 5 0
Fonction de substitution
SoitD01´egal `a 101110. Les premiers et derniers bits donnent 10, c’est-`a-dire 2 en binaire. Les bits 2,3,4 et 5 donnent 0111, soit 7 en binaire. Le r´esultat de la fonction de s´election est donc la valeur situ´e `a la ligne num´ero 2, dans la colonne num´ero 7. Il s’agit de la valeur 11, soit en binaire 1011.
Chacun des 8 blocs de 6 bits est pass´e dans la fonction de s´election correspondante, ce qui donne en sortie 8 valeurs de 4 bits chacune.
Permutation
Le bloc de 32 bits obtenu est enfin soumis `a une permutationP dont voici la table :
P
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25
Caract´ eristiques des boˆıtes S de DES
I Propri´et´es cryptanalytiques int´eressantes
I Non lin´eaire (substitution diff´erente de C´esar ou Vernam) : pas d’attaque simple
I Sp´ecialement con¸cues pour contrer la cryptanalyse diff´erentielle [Coppersmith 94]
I Mˆeme de tr`es petites modifications des S -box peuvent affaiblir consid´erablement le chiffre
I A la base de controverse autour de DES
I cf secret entourant la g´en´eration de{Si}1≤i≤8et deP
OU Exclusif et It´ eration
I L’ensemble de ces r´esultats en sortie de P est soumis `a un OU Exclusif avec leG0de d´epart (comme indiqu´e sur le premier sch´ema) pour donnerD1,tandis que le D0initial donneG1.
I L’ensemble des ´etapes pr´ec´edentes (rondes) est r´eit´er´e 16 fois.
Permutation initiale inverse
A la fin des it´erations, les deux blocsG16 etD16sont ’recoll´es’, puis soumis `a la permutation initiale inverse :
PI−1
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
G´ en´ eration des cl´ es
I Etant donn´e que l’algorithme du DES pr´esent´e ci-dessus est public, toute la s´ecurit´e repose sur la complexit´e des cl´es de chiffrement.
I L’algorithme ci-apr`es montre comment obtenir `a partir d’une cl´e de 64 bits (compos´e de 64 caract`eres alphanum´eriques quelconques) 8 cl´es diversifi´ees de 48 bits chacune servant dans l’algorithme du DES :
G´ en´ eration des cl´ es
G´ en´ eration des cl´ es
I Dans un premier temps les bits de parit´e de la cl´e sont ´elimin´es afin d’obtenir une cl´e d’une longueur utile de 56 bits.
I La premi`ere ´etape consiste en une permutation not´eeCP−1 dont la matrice est pr´esent´ee ci-dessous :
57 49 41 33 25 17 9 1 58 50 42 34 26 18
10 2 59 51 43 35 27 19 11 3 60 52 44 36
63 55 47 39 31 23 15 7 62 54 46 38 30 22
14 6 61 53 45 37 29 21 13 5 28 20 12 4
G´ en´ eration des cl´ es
Cette matrice peut en fait s’´ecrire sous la forme de deux matriceGi etDi (pour gauche et droite) compos´ees chacune de 28 bits :
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
I On noteG0 etD0 le r´esultat de cette premi`ere permutation.
I Ces deux blocs subissent ensuite une rotation `a gauche, de telles fa¸cons que les bits en seconde position prennent la premi`ere position, ceux en troisi`eme position la seconde, ...
I Les bits en premi`ere position passent en derni`ere position.
G´ en´ eration des cl´ es
Les 2 blocs de 28 bits sont ensuite regroup´es en un bloc de 56 bits.
Celui-ci passe par une permutation, not´eeCP−2,fournissant en sortie un bloc de 48 bits, repr´esentant la cl´eKi.
14 17 11 24 1 5 3 28 15 6 21 10
23 19 12 4 26 8 16 7 27 20 13 2
41 52 31 37 47 55 30 40 51 45 33 48
44 49 39 56 34 53 46 42 50 36 29 32
Des it´erations de l’algorithme permettent de donner les 16 cl´es K1`aK16
utilis´ees dans l’algortihme du DES.
1 2 4 6 8 10 12 14 15 17 19 21 23 25 27 28
Caract´ eristiques de DES
I Apr`es 5 tours, chaque bit du chiffr´e d´epend de chaque bit du message en clair et de chaque bit de la clef.
I R´esultat du chiffrement statistiquement plat
I Quelques exemples d’utilsation :
I Cartes de cr´edit : UEPS (Universal Electronic Payment System)
I Protocole d’authentification sur r´eseaux : Kerberos
I Messagerie ´el´ectronique : PEM (Privacy-Enhanced Mail)
I Impl´ementation hardware ais´ee
I Op´eration facilement impl´ementables
I Puce sp´ecifique bas de gamme1 (≈60euros) :≈190Mo/s.
I Propri´et´e de completion et cl´es faibles (pas une menace) : DESK(M) =C⇒DESK0(M0) =C0
Cryptanalyse de DES
I Pr´ecalcul exhaustif
I Stocker le r´esultat de DES sur un texte choisi∀K
I Recherche exhaustive
I Chiffrer un texte connu jusqu’`a retrouver le chiffrement
I permet de connaˆıtre la clef
I Assez peu de progr`es au d´ebut - attaques sur 8/16 rondes (1975-1990)
I Cryptanalyse diff´erentielle (16 rondes) [Biham-Shamir 1990]
I Etude des diff´erences de chiffrement entre des textes similaires
I Permet de s´electionner des clefs probables
I Cryptanalyse lin´eaire (16 rondes) [Matsui 1993]
Complexit´ e et coˆ ut des attaques sur DES
M´ethode d’attaque Texte connu Texte choisi Stock. Calculs
Pr´ecalcul exhaust. 1 256 1 tableau
Rech. exhaust. 1 255
Crypta. diff. 247 puis 236 Text. 247 puis 236
Crypta. lin. 255 247 Text. 247
Coˆ ut des attaques sur DES en 1996
Attaquant Budget Outil Cl´e 56 bits Hacker 300 euro Soft circuit 38 ans
PME 7500 euro Circuit 18 mois
Gde Entreprise 225 Keuro Circuit ASIC 19 j. 3 h
Multinationale 7,5 Meuro ASIC 6 min
Gouvernement 225 Meuro ASIC 12 s
Et aujourd’hui ?
I Probl`eme du DES : cl´e devenu trop petite !
I cassable en 8h avec 100 PCs (256≈7,2×1016) 7,2×1016
109×3600×24×100≈8heures
I Solution 1 : double DES ?
I C =E2(E1(M))etM =D1(D2(C))
I Pb : cassage effectif le rend seulement 56 fois plus difficile que DES et non 256 fois
I Solution 2 : triple DES ?
I 3 clefs :C=E1(E2(E3(M))) etM=D3(D2(D1(C)))
I 2 clefs :C=E1(D2(E1(M))) etM=D1(E2(D1(C)))
I retombe sur DES siK2==K1
I Clef moins longue et s´ecurit´e effective identique
I Attaque similaire double DES⇒cl´e effective 112 bits
I CC : Triple DES double seulement la s´ecurit´e !
TDES, une alternative au DES
I En 1990 Eli Biham et Adi Shamir ont mis au point la cryptanalyse diff´erentielle qui recherche des paires de texte en clair et des paires de texte chiffr´ees. Cette m´ethode marche jusqu’`a un nombre de rondes inf´erieur `a 15, or un nombre de 16 rondes sont pr´esentes dans l’algorithme pr´esent´e ci-dessus.
I D’autre part, mˆeme si une cl´e de 56 bits donne un nombre ´enorme de possibilit´es, de nombreux processeurs permettent de calculer plus de 106 cl´es par seconde, ainsi, utilis´es parall`element sur un tr`es grand nombre de machines, il devient possible pour un grand organisme (un Etat par exemple) de trouver la bonne cl´e...
I Une solution `a court terme consiste `a chaˆıner trois chiffrement DES
`
a l’aide de deux cl´es de 56 bits (ce qui ´equivait `a une cl´e de 112
Le Triple-DES
I Le TDES permet d’augmenter significativement la s´ecurit´e du DES, toutefois il a l’inconv´enient majeur de demander ´egalement plus de ressources pour les chiffrement et le d´echiffrement.
I On distingue habituellement plusieurs types de chiffrement triple DES :
I DES-EEE3 : 3 chiffrements DES avec 3 cl´es diff´erentes ;
I DES-EDE3 : une cl´e diff´erente pour chacune des 3 op´erations DES (chiffrement, d´echiffrement, chiffrement) ;
I DES-EEE2 et DES-EDE2 : une cl´e diff´erente pour la seconde op´eration (d´echiffrement).
L’AES
Partie tir´ee en partie dehttp://fr.wikipedia.org/wiki/AES
RijmenDaemen
Advanced Encryption Standard - AES (2000)
I 1996 : Evaluation DES⇒Il faut un remplacant !
I 1997 : Appel `a candidature international
1. Rijndael (Daemen,Rijmen BE) 10/12/14 rondes Bloc : 128 bits ; Cl´e : 128/192/156 bits
2. Serpent (Anderson,Biham,Knudsen UK) 32 rondes Bloc : 128 bits ; Cl´e : 128/192/156 bits (en fait :n= 8x ∈[0,2048])
3. Twofish (Schneier et al US) 16 rondes Bloc : 128 bits ; Cl´e : 128/192/156 bits
4. RC6 (Rivest US) 20 rondes Bloc : 128 bits ; Cl´e : 128/192/156 bits (en fait :n= 8x ∈[0,2048])
5. MARS (Coppersmith/IBM US) 16 rondes Bloc : 128 bits ; Cl´e : 128 !448 bits (128+32k bits)
I 2000 : Standard NIST : AES-Rijndael
Les conventions dans AES
I Entr´ee - Sortie : blocs de 128 bits (Nb= 4)
I Cl´e : 128, 192 ou 256 bits (Nk = 4, 6 ou 8)
I Nb rondesNr : d´epend deNb etNk (Nr∈ {10,12,14})
I 1 octet = ´el´ement du corps fini `a 256 ´el´ementsF256
AES-Rijndael
I Standart NIST 2000 ;
I Bloc : 128 bits ; Cl´e : 128/192/256 bits
I Structure g´en´erale :
I AddRoundKey Addition initiale de cl´e
I Nr−1 rondes, chacune constitu´ees de 4 ´etapes :
I SubBytes : substitution non-lin´eaire via S-Box.
I ShiftRows : transposition matricielle par d´ecalage `a gauche
I MixColumns : produit matriciel sur colonne
I AddRoundKey Addition avec les octets des sous-cl´e
I FinalRound : ronde finale (sans MixColumns)
Etape SubBytes
I Substitution de chaque ´el´ement de la matrice via une SBox
I SBox d´erive de la fontion inverset :a→a−1 surF256.
I fonction bien connue pour sa non-lin´earit´e
I on combine avec une transformation affine inversiblef :
I SBox[a] =f(t(a))∀a∈F256
I SBox−1[a] =t−1(f−1(a)) =t(f−1(a))∀a∈F256
Etape Shiftrows
I Op´eration sur les lignes de matrice
I La lignei est d´ecal´e deCi ´el´ements `a gauche
I Le nombre de d´ecalage d´epend deNb(Rijndael) :
I Op´eration inverse : la lignei est d´ecal´ee `a droite deCi ´el´ements.
Etape MixColumns
I Operation sur les colonnes de la matrice
I Consid´er´e un polynˆome a(x) de degr´e 3 dansF256[X]
I R´ealise l’op´eration : (03x3 +x2 +x+ 02)×a(x) mod (x4 + 1)
I Bonne propri´et´es de diffusion cryptographique
Etape MixColumns
−1I idem mais en utilisant la multiplication par d(x) =c−1(x)
I (03x3 +x2 +x+ 02)×d(x) = 01 mod (x4+ 1)
I d(x) = 0Bx3 + 0Dx2 + 09x+ 0E
Etape MixColumns
−1I Addition matricielle dansF256avec une sous-cl´e
S´ ecurit´ e de l’AES
I Propri´et´es cryptanalytiques
I SBox : sans point fixe ni oppos´e, ni inverse
I ShiftRow diffuse les donn´ees en s´eparant les cons´ecutifs
I MixColumn : chaque bit de sortie d´epend de tous les bits en entr´ee (code correcteur lin´eaire sur chaque colonne)
I Impl´ementations simple efficace
I FPGA : jusqu’`a 21.54 Go/s pour le chiffrement
I Cryptanalyse :
I Aucune attaque significative r´ev´el´ee
I MAIS seulement 5 ans de recherche
I (to be continued)
Quelques applications utilisant Rijndael
I SONET (Synchronous Optical NETwork)
I Routeurs Internet
I Switch Ethernet ATM (Asynchronous Transfert Mode)
I Communications Sattelites
I VPN (R´eseaux priv´es virtuels)
I T´el´ephonie mobile
I Transactions ´electroniques
Projets de standardisation/Recommendations
I NIST(National Institute of Standards and Technology) (US00)
⇒ AES-Rijndael (Bloc : 128 bits ; Cl´e : 128/192/256 bits) 25 cycles/octet sur un PIII/Linux.
I KICS (Korean Information and Communication Standards) (Cor´ee01)
⇒ SEED (Bloc : 128 bits ; Cl´e : 128 bits) 45 cycles/octet sur un PIII.
⇒ ARIA (proposition) (Bloc : 128 bits ; Cl´e : 128 bits) 37 cycles/octet sur un PIII.
Projets de standardisation/Recommendations (2)
I NESSIE (New European Schemes for Signatures, Integrity and Encryption)(EU03)
I Chiffrement sym´etriques par bloc :
⇒ MISTY1 (Bloc : 64 bits ; Cl´e : 128 bits) 47 cycles/octet sur un PIII/Linux.
⇒ AES-Rijndael
⇒ Camellia (Bloc : 128 bits ; Cl´e : 128/192/256 bits) 35 cycles/octet sur un PIII/Linux.
⇒ SHACAL-2 (Bloc : 256 bits ; Cl´e : 512 bits) 44 cycles/octet sur un PIII/Linux.
I Fonctions de hachage `a sens unique
⇒ Whirlpool
⇒ SHA-256, SHA-384 et SHA-512 (clairvoyant ! cf SHA-1)
Projets de standardisation/Recommendations (3)
I CRYPTREC (Cryptography Research and Evaluation Committee) (Jap03)
I Chiffrement sym´etrique (blocs : 64 bits, cl´e≥128 bits) :
⇒ CipherUnicorn-E, Hierocrypt-L1, MISTY1, Triple DES
I Chiffrement sym´etrique (blocs : 128 bits, cl´e≥128 bits) :
⇒ AES, Camelia, CipherUnicorn-A, Hierocrypt-3, SC2000
I Chiffrement symetrique par flot :
⇒ Mugi, Multi-S01, RC4
I Fonctions de hachage `a sens unique
⇒ RIPEMD-160, SHA-1, SHA-256/384/512
Principe g´ en´ eral de la cryptanalyse statistique sur les chiffrements par bloc
1. Etude d’une version r´eduite en ronde
2. Etude la propagation de propri´et´e non al´eatoire `a travers les rondes 3. Etre capable de d´etecter un chiffr´e d’une permutation al´eatoire 4. Ajouter quelques roundes en d´ebut/fin tout en assurant la
d´ecouverte de la cl´e
5. Compromis entre compl´exit´e des donn´ees et temps d’analyse
Illustration sur des ´ etudes de cas
I FEAL-4 (Fast Data Encipherment Algorithm - Miyagushi 87)
I 4 tours, blocs et cl´e de 64 bits
I 88 : 100 `a 10000 textes choisis
I 90 : 20 textes choisis
I 92 : 5 textes connus
I FEAL-8/FEAL-N/FEAL-NX (Miyagushi 90)
I 90 : 20.000 textes choisis (D´ecouverte cryptanalyse diff´erentielle !)
I 92 : 215 textes connus (D´ecouverte cryptanalyse lin´eaire !)
I 96 : 12 textes choisis
I IDEA (8 rondes) (Lai, Massey 91)
I Blocs de 64 bits, cl´e de 128 bits, 8 rondes
I 90 : PES ; 91 : PES cass´e⇒IPES=IDEA
I 93 : Cassage sur 2 rondes
I 97 : Cassage sur 3 rondes
I 2003 : Cassage sur 5 rondes (224textes clairs)