Vous êtes sur la page 1sur 8

Data Encryption Standard (DES)

DES a t lalgorithme cryptographique le plus important de


ces derniers 30 ans.
DES est un Feistel Cipher avec des blocs de 64 bits (taille
nominale).
La taille effective de la cl est de 56 bits (Un total de 64 bits
avec 8 bits de parit).
Lalgorithme est constitu de 16 tapes avec 16 sous-cls de
48 bits gnres (une cl par tape).
DES fonctionne dans les 4 modes: ECB, CBC, CFB et OFB.
Le schma de fonctionnement de DES est le suivant:
DES C P
56
64
K
DES
-1
P C
56
64
K
Encryption Decryption
Scurit & Cryptographie 58
DES: Schma de Fonctionnement
Scurit & Cryptographie 59
DES: Cipher Function
(Source [Men97])
Scurit & Cryptographie 60
DES: Tables
(Source [Men97])
Scurit & Cryptographie 61
DES: S-boxes
Scurit & Cryptographie 62
DES: Fonctionnement
Cipher Fonction
Expansion E: Les 32 bits de lentre sont transforms en un vecteur de 48 bits en
utilisant la table E (page 60). La premire ligne de cette table indique comment sera
gnr le premier sous-bloc de 6 bits: on prendra en premier le 32
e
bit et aprs les bits
1,2,3,4,5. Le deuxime sous-bloc commence par le 4
e
bit ensuite les bits 5,6,7,8,9 et ainsi
de suite...
Key addition: XOR du vecteur de 48 bits avec la cl.
S-boxes: On applique 8 S-boxes sur le vecteur de 48 bits rsultant du XOR prcdent.
Chacune de ces S-boxes prend un sous-bloc de 6 bits et le transforme en un sous-bloc de
4 bits. Les S-boxes 1 et 2 sont prsentes en page 61. Lopration seffectue de la
manire suivante: Si on dnote les 6 bits dinput de la S-box comme: a
1
a
2
a
3
a
4
a
5
a
6
. La
sortie est donne par le contenu de la cellule situe dans la ligne a
1
+ 2a
6
et la colonne a
2

+ 2a
3
+ 4a
4
+ 8a
5
.
Permutation P: La permutation P (page 60) fonctionne comme suit: Le premier bit est
envoy la 16
e
position, le deuxime la 7
e
position et ainsi de suite.
Permutations IP et IP
-1
Agissent respectivement au dbut et la fin du traitement du bloc et sur lensemble des
64 bits (voir les tables en page 60 pour les dtails).
Scurit & Cryptographie 63
DES et Triple-DES
La taille de lensemble de cls ({0,1}
56
) constitue la plus grande menace qui pse sur
DES avec les ressources de calcul actuels. En 1999 il a suffit de 24 heures pour trouver la
cl partir dun known plaintext en utilisant une technique brute force massivement
parallle (100000 PCs connects sur Internet)
1
.
Triple DES nous met labri de ces attaques brute force en augmentant lespace des cls
possibles {0,1}
112
. Schmatiquement, il fonctionne de la manire suivante:
Cette alternative permet de continuer utiliser les botes DES (hardware et software)
en attendant une migration vers AES.
Le niveau de scurit obtenue par cette solution est trs satisfaisant.
Limpact en termes de performances de trois excutions successives de DES reste un
inconvnient pour certaines applications.
1. http://www.rsasecurity.com/company/news/releases/pr.asp?doc_id=462
DES
-1
56
K
2
DES
56
K
1
C
Encryption Decryption
64
DES P
56
64
K
1
Encryption
Scurit & Cryptographie 64
DES: proprits
DES nest pas un groupe (au sens algbrique) avec la composition: En dautres termes,
DES tant une permutation: {0,1}
64
{0,1}
64
, si DES tait un groupe pour la
composition, ceci voudrait dire que:
(
1
,
2
), K
3
t.q. E
K
2
(E

1
(x)) = E
K
3
(x)
Cette proprit permet dassurer que lencryption compose (comme Triple-DES)
augmente considrablement la scurit de DES. Si DES tait un groupe, la recherche
exhaustive sur lensemble de cls possibles ({0,1}
56
) permettrait de casser
lalgorithme indpendamment du nombre dexcutions conscutives de DES.
Cls faibles et mi-faibles (weak and semi-weak keys):
Une cl K est dite faible si E
K
(E
K
(x)) = x.
Une paire de cls (K
1
, K
2
) est dite mi-faible si E
K
1
(E
K
2
(x)) = x.
Les cls faibles ont la particularit de gnrer de sous-cls identiques par paires (k
1
= k
16
, k
2
= k
15
,..., k
8
= k
9
), ce qui facilite la cryptanalyse.
DES a 4 cls faibles (et 6 paires de cls mi-faibles):
0101 0101 0101 0101
0101 0101 FEFE FEFE
FEFE FEFE FEFE FEFE
FEFE FEFE 0101 0101
Cls faibles pour DES:
Scurit & Cryptographie 65
Advanced Encryption Standard (AES)
Adopt comme standard en Novembre 2001
1
, conu par Johan Daemen et Vincent
Rijmen
2
(do son nom original Rijndael).
Il sagit galement dun block cipher itratif (comme DES) mais pas dun Feistel Cipher
Blocs Plaintext/Ciphertext: 128 bits.
Cl de longueur variable: 128, 192, ou 256 bits.
Contrairement DES, AES est issu dun processus de consultation et danalyse ouvert
des experts mondiaux.
Techniques semblables DES (substitutions, permutations, XOR) complmentes par
des oprations algbriques simples et trs performantes.
Toutes les oprations seffectuent dans le corps GF(2
8
): le corps fini de polynmes de
degr 7 avec des coefficients dans GF(2).
En particulier, un byte pour AES est un lment dans GF(2
8
) et les oprations sur les
bytes (additions, multiplications,...) sont dfinies comme sur GF(2
8
).
~2 fois plus performant (en software) et ~10
22
fois (en thorie...) plus sr que DES...
volutif: La taille de la cl peut tre augmente si ncessaire.
1. http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
2. http://csrc.nist.gov/CryptoToolkit/aes/rijndael/Rijndael-ammended.pdf
Scurit & Cryptographie 66
Dtail dune Etape (round) AES
Lunit de base sur laquelle sappliquent
les calculs est une matrice de 4 lignes et 4
colonnes (dans le cas dune cl de 128
bits) dont les lments sont des bytes:
ByteSub: Opration non linaire (S-box)
conu pour rsister la cryptanalyse
linaire et diffrentielle.
ShiftRow: Permutation des bytes
introduisant des dcalages variables sur
les lignes.
MixColumn: Chaque colonne est
remplace par des combinaisons linaires
des autres colonnes (multiplication des
matrices!)
AddRoundKey: XOR de la matrice
courante avec la sous-cl correspondante
ltape courante.
Scurit & Cryptographie 67
Dtail dune tape (round) AES (II)
S U l l i h d hiff J D t Vi t Rij P l S i D i l' t d t
Source: Un nouvel algorithme de chiffrement, par Joan Daemen et Vincent Rijmen. Pour la Science,Dossier lart du secret.
)
Key Schedule
Scurit & Cryptographie 68
AES: Fonctionnement Global
Le nombre dtapes dAES varie en fonction de la taille de la cl. Pour une cl de 128
bits, il faut effectuer 10 tapes. Chaque augmentation de 32 bits sur la taille de la cl,
entrane une tape supplmentaire (14 tapes pour des cls de 256 bits).
La decryption consiste en appliquer les oprations inverses dans chacune des tapes
(InvSubBytes, InvShiftRows, InvMixColumns). AddRoundKey ( cause du XOR) est sa
propre inverse.
Le Key Schedule consiste en:
Une opration dexpansion de la cl principal. Si N
e
est le nombre dtapes
(dpendant de la cl), une matrice de 4 lignes et 4 * (N
e
+ 1) colonnes est gnre.
Une opration de slection de la cl dtape: La premire sous-cl sera constitue
des 4 premires colonnes de la matrice gnre lors de lexpansion et ainsi de suite.
Pseudo-code pour AES:
Rijndael(State,CipherKey)
{
KeyExpansion(CipherKey,ExpandedKey); // Key Schedule
AddRoundKey(State,ExpandedKey[0..3]); // Premier XOR avec la 1re sous-cl
For( i=1 ; i<N
e
; i++ ) Round(State,ExpandedKey[4*i ... (4*i)+3]);// N
e
- 1 tapes
FinalRound(State,ExpandedKey[4*N
e
... 4*N
e
+3]). // Dernire tape (pas de MixColumn)
}
Scurit & Cryptographie 69
AES: Remarques finales et Attaques
La plus grande force de AES rside dans sa simplicit et dans ses performances, y
compris sur des plate-formes capacit de calcul rduite (p.ex. des cartes puces avec
des processeurs 8 bits).
Depuis sa publication officielle, des nombreux travaux de cryptanalyse ont t publis
avec des rsultats trs intressants. En particulier, N. Courtois et P.Pieprzyk
1
ont prsent
une technique appele XSL permettant de reprsenter AES comme un systme de 8000
quations quadratiques avec 1600 inconnues binaires. Leffort ncessaire pour casser ce
systme est estim (il sagit encore dune conjecture...) 2
100
.
Ces attaques se basent sur le caractre fortement algbrique (et largement contest...) de
AES. De plus, il suffit de quelques known plaintexts pour les mettre en place, ce qui les
distingue des attaques linaires et diffrentielles (page 70).
Les prochaines annes risquent dapporter des dveloppements trs intressants dans la
cryptanalyse de AES et dun bon nombre de block ciphers itratifs.
Mme si AES reste un algorithme robuste ce jour, il convient de surveiller de prs les
travaux de recherche algbrique
2
qui pourraient rvolutionner toutes les thories de
conception actuelles relatives aux block ciphers.
1. Nicolas Courtois and Josef Pieprzyk. Cryptanalysis of Block Ciphers with Overdefined Systems of Equations. Asiacrypt 2002.
2. http://www.cryptosystem.net/aes/
Scurit & Cryptographie 70
Techniques de Cryptanalyse sur les Block Ciphers
Cryptanalyse Diffrentielle
1
Il sagit dune attaque chosen plaintext qui sintresse la propagation des diffrences
dans deux plaintexts au fur et mesure quils voluent dans les diffrentes tapes de
lalgorithme.
Il attribue des probabilits aux cls quil devine en fonction des changements quelles
induisent sur les ciphertexts. La cl la plus probable a des bonnes chances dtre la cl
correcte aprs un grand nombre de couples plaintext/ciphertext.
Ncessite 2
47
couples chosen plaintext pour obtenir des rsultats corrects.
Cryptanalyse Linaire
2
Il sagit dune attaque known plaintext qui cre un simulateur du bloc partir des
approximations linaires. En analysant un grand nombre de paires plaintext/ciphertexts,
les bits de la cl du simulateur ont tendance concider avec ceux du block cipher
analyss (calcul probabiliste)
Ncessite 2
38
known plaintexts pour obtenir une probabilit de 10% de deviner juste et
2
43
pour un 85%!
Il sagit de lattaque analytique la plus puissante ce jour sur les block ciphers.
1. Biham, E. and A. Shamir. (1990). Differential Cryptanalysis of DES-like Cryptosystems. Advances in Cryptology CRYPTO '90.
Springer-Verlag. 221.
2. Mitsuru Matsui: Linear Cryptoanalysis Method for DES Cipher. EUROCRYPT 1993: 386-397.
Scurit & Cryptographie 71
Techniques de Cryptanalyse sur les Block Ciphers (II)
La mise en pratique des attaques diffrentielles et linaires prsente des difficults dans
la paralllisation des calculs par rapport une recherche exhaustive de la cl.
Ces deux attaques sont trs sensibles au nombre dtapes du block cipher: les chances de
russite augmentent exponentiellement au fur et mesure que le nombre dtapes de
lalgorithme diminue.
Une conjecture trs rpandue parmi les cryptographes est que ces attaques, lpoque
indites, taient connues par les concepteurs des DES. En particulier, le design des S-
boxes offre une rsistance trs grande aux deux techniques.
Attaque Meet-in-the-Middle
Sapplique aux constructions du type E
K
2
(E

1
(x)). Lespace de cls pour cette solution
est de {0,1}
112
. On construit dabord deux listes L
1
et L
2
de 2
56
messages de la forme:
L
1
= E

1
(x) et L
2
= D

2
(x) avec E et D les oprations dencryption et decryption
respectivement. Il suffit alors didentifier un lment qui se rpte dans les deux listes et
les K
1
et K
2
associes cet lment seront (en toute vraisemblance) les cls recherches!
Effort ncessaire raliser les attaques: 2
57
oprations pour tablir les deux listes + 2
56

blocs de 64 bits de stockage pour mmoriser les rsultats intermdiaires... nettement
infrieur au 2
112
estim intuitivement...
Ces techniques meet-in-the-middle sont aussi appliques la cryptanalyse interne des
block ciphers.