Vous êtes sur la page 1sur 42

Universit e Bordeaux I

Master CSI
Ann ee 2004-2005
Cours de cryptographie sym etrique
Christine Bachoc
Bibliography
[1] Sequence analysis, Guang Gong, disponible sur le web ` a lURL:
http://www.cacr.math.uwaterloo.ca/ ggong
[2] PGP, Simon Garnkel. OReilly (1995)
[3] Handbook of applied cryptography, Menezes, van Oorschot, Vanstone,
disponible sur le web ` a lURL: http://www.cacr.math.uwaterloo.ca/hac
[4] Cryptographie appliqu ee, Bruce Schneier. International Thomson Publishing
France (1997)
[5] Histoire des codes secrets, Simon Singh
[6] Cryptographie th eorie et pratique, Douglas Stinson. International Thomson
Publishing France (1996)
[7] Cours de cryptographie, Gilles Zemor, Editions Cassini
1
Chapter 1
Introduction
Le chiffrement dun message consiste ` a le coder (cest le terme commun, mais en
cryptographie, on dit plut ot chiffrer que coder) pour le rendre incompr ehensible
pour quiconque nest pas dot e dune cl e de d echiffrement K
D
(qui doit donc
imp erativement etre gard ee secr` ete):
E
D echiffrement
E E
Chiffrement
message
clair
message
clair
oreilles
indiscr` etes
K
C
K
D
b b
Le chiffrement est une activit e cryptographique tr` es ancienne qui remonte ` a lantiquit e
(6` eme si` ecle avant J.C.).
Dans un cryptosyst` eme, on distingue:
1 - lespace des messages clairs / sur un alphabet / (qui peut etre lalphabet
romain, mais qui sera dans la pratique 0, 1 car tout message sera cod e en binaire
pour pouvoir etre trait e par ordinateur);
2 - lespace des messages chiffr es ( sur un alphabet B (en g en eral egal ` a /);
3 - lespace des cl es /
4 - un ensemble c de transformations de chiffrement (chaque transformation etant
index ee par une cl e):
E
K
: M / C (
2
5 - un ensemble T de transformations de d echiffrement (chaque transformation
etant index ee par une cl e):
D
K
: C ( M /.
Evidemment, la condition D
K
D
(E
K
C
(M)) = M doit etre r ealis ee.
On notera un tel cryptosyst` eme (/, (, /, c, T).
Rappelons ici le principe de Kerkhoffs, enonc e d` es la n du XIX` eme si` ecle par
ce dernier: la s ecurit e dun syst` eme cryptographique ne doit pas reposer sur la non
divulgation des fonctions de chiffrement et de d echiffrement utilis ees mais sur la
non divulgation des cl es utilis ees pour les param etrer.
Jusquau milieu des ann ee 70, les seuls cryptosyst` emes connus etaient sym etriques
(on dit aussi conventionnels ou ` a cl e secr` ete): la cl e de chiffrement K
C
etait la
m eme que la cl e de d echiffrement K
D
(ou du moins, la connaissance de la cl e
de chiffrement permettait den d eduire la cl e de d echiffrement) ce qui obligeait ` a
garder secr` ete la cl e K
C
elle aussi. Se pose alors le probl` eme crucial de l echange
de cl e, impossible ` a r esoudre dans le cas dun syst` eme d evelopp e ` a grande echelle.
En 1976, W. Dife et M. Hellman introduisirent le concept de cryptographie ` a
cl e publique (ou asym etrique): dans ce type de syst` eme, la cl e de chiffrement est
publique, cest ` a dire connue de tous. Seule la cl e de d echiffrement reste secr` ete.
Si n personnes veulent communiquer secr` etement 2 ` a 2, il leur faut en tout 2n
cl es (chacune d etient une cl e secr` ete et diffuse une cl e publique), alors que si elles
utilisent un chiffrement conventionnel, il leur faut une cl e secr` ete pour chaque paire
de correspondants, cest ` a dire en tout
_
n
2
_
=
n(n1)
2
cl es. Surtout, dans un syst` eme
asym etrique, la cl e publique par d enition peut etre connue de tous, et la cl e de
d echiffrement na pas besoin d etre transmise ` a son correspondant.
En 1978, le premier syst` eme de chiffrement ` a cl e publique fut introduit par R.
Rivest, A. Shamir et L. Adleman: le syst` eme RSA. Ce syst` eme est un des seuls qui
aient r esist e ` a la cryptanalyse.
Mais cela na pas pour autant sonn e la n de la cryptographie conventionnelle
car celle-ci est beaucoup plus rapide ` a mettre en oeuvre (entre 100 et 1000 fois plus
rapide selon les cryptosyst` emes) et ses cl es sont plus courtes (un peu plus dune
centaine de bits au lieu dau moins un millier) pour un m eme niveau de s ecurit e.
Dans la pratique (voir par exemple PGP, Pretty Good Privacy), ` a moins quon ait ` a
communiquer des messages de petite taille (de quelques k-octets), on agit comme
suit. Supposons quAlice veuille envoyer un message secret ` a Bob.
- Alice choisit un cryptosyst` eme ` a cl e publique et utilise ce syst` eme pour envoyer
secr` etement ` a Bob un mot binaire K, quon appelle cl e de session; pour ce faire,
elle chiffre K au moyen de la cl e publique de Bob (une alternative possible est
3
lutilisation dun protocole d echange de cl es tel que celui de Dife-Hellman);
- Bob r ecup` ere K ` a laide de sa cl e secr` ete;
- Alice et Bob d etiennent maintenant un mot secret K et Alice lutilise pour chiffrer
son message long dans un cryptosyst` eme sym etrique;
- Bob peut d echiffrer le message ` a laide de K.
La cryptographie ` a cl e publique a donn e naissance ` a dautres concepts comme
celui de signature num erique (o` u lauthenticit e de l emetteur doit etre assur ee).
Dans ce cours, nous nous pr eoccuperons uniquement de cryptographie sym etrique.
4
Chapter 2
Les sch emas cryptographiques
anciens
Dans ce chapitre, nous faisons un bref tour dhorizon des syst` emes cryptographiques
classiques utilis es jusqu` a la deuxi` eme guerre mondiale. Sils sont caduques ` a
lheure actuelle, ils nen restent pas moins des exemples importants qui permet-
tent de comprendre les principes sous-jacents aux syst` emes modernes et peuvent
toujours servir ` a epater vos petits neveux...
2.1 Chiffrement par substitution
2.1.1 Substitution monoalphab etique
/ est lalphabet romain et B = /. Soit une permutation (i.e. une bijection) sur
/. Lop eration de chiffrement dun message m = m
1
m
n
est:
c = E

(m) = (m
1
) (m
n
).
La cl e secr` ete est . Connaissant cette cl e, on peut d echiffer:
D

(c) =
1
(c
1
)
1
(c
n
) = m.
Un cas particulier est quand est le d ecalage circulaire de k de lettres (cest
le nombre k qui est alors le secret). Le chiffre de C esar utilisait k = 3. Dans le
cas particulier du d ecalage circulaire, il ny a que 26 cl es possibles. Le syst` eme
nest donc pas able: on peut essayer tous les d ecalages possibles jusqu` a obtenir
un texte intelligible.
Dans le cas g en eral, il y a 26! permutations possibles et la taille de lespace des
cl es est amplement sufsant (par la formule de Stirling, on a 26!
1

23,1426
26
26
e
26
5
et on peut m eme calculer directement sur machine 26! = 403291461126605635584000000
4 10
26
). Pourtant, ce syst` eme est cass e par la cryptanalyse statistique car dans une
langue usuelle telle que le francais, les lettres napparaissent pas toutes avec les
m emes fr equences. On rep` ere par exemple le e comme la lettre la plus fr equente.
Dautres particularit es (par exemple, le q est tr` es souvent suivi du u) peu-
vent etre utilis ees et entr ees dans un programme informatique qui retrouve la cl e
imm ediatement. A la simple lecture du texte chiffr e, on retrouve ainsi le clair. Il
sagit dune attaque ` a chiffr e seul.
2.1.2 Substitution polyalphab etique
Au lieu dune permutation, on dispose de t permutations
1
, ,
t
. On applique

1
` a m
1
,
2
` a m
2
, ...,
t
` a m
t
puis on continue cycliquement en appliquant
1
` a
m
t+1
,
2
` a m
t+2
etc... En dautres termes:
c = E

1
, ,
t
(m) =
1
(m
1
)
i[t]
(m
i
)
n[t]
(m
n
)
o` u i[t] d esigne i mod t si i mod t ,= 0 et t si i mod t = 0.
Par exemple, dans le syst` eme de Vigen` ere (utilis e massivement jusquau 19` eme
si` ecle), les permutations
i
etaient des d ecalages circulaires. Le d ecalage corre-
spondant ` a chaque permutation etait indiqu e par une lettre. Ainsi, le mot EXEM-
PLE indiquerait que t = 7 et que
1
est un d ecalage de 4 positions (car le E est
situ e ` a 4 positions du A),
2
est un d ecalage de 23 positions etc...
Ce syst` eme peut sattaquer par une m ethode de type statistique.
La machine Enigma, utilis ee par les allemands pendant la deuxi` eme guerre
mondiale, chiffrait par un syst` eme de Vigen` ere: la position initiale des rotors
d eterminait la suite des permutations utilis ees.
2.2 Chiffrement par transposition
/ est lalphabet romain et B = /. Soit une permutation (i.e. une bijection)
sur 1, , n o` u n est la longueur du clair (on peut aussi d ecouper le clair en
diff erents blocs et chiffrer chaque bloc). Lop eration de chiffrement dun message
m = m
1
m
n
est:
c = E

(m) = m
(1)
m
(n)
.
La cl e secr` ete est . Connaissant cette cl e, on peut d echiffer:
D

(c) = c

1
(1)
c

1
(n)
= m.
6
Il y a n! permutations possibles et la taille de lespace des cl es est amplement
sufsant d` es que n est assez grand. Pourtant, ce syst` eme est cass e car il est lin eaire:
il existe une matrice (ici, une matrice de permutation) A

telle que
c = mA

.
Le terme (A

)
i,j
de cette matrice qui est situ e ` a la i` eme ligne et ` a la j` eme colonne
vaut 1 si i = (j) et 0 sinon.
Nous d ecrivons maintenant lattaque valable sur les cryptosyst` emes lin eaires.
Soit un cryptosyst` eme tel que c = mA(o` u la matrice Ad epend de la cl e secr` ete,
nous consid ererons quelle est la cl e secr` ete). On suppose que lattaquant dispose
de n paires de clairs-chiffr es et on va montrer quil peut avec une probabilit e non
n egligeable retrouver la cl e, cest ` a dire retrouver A (on dit quil fait une attaque ` a
clair connu). On met les n clairs en une matrice M carr ee n n et les n chiffr es
correspondants en une matrice C. On a
C = M A.
Si la matrice M est inversible il en d eduit
A = M
1
C
en n
3
op erations el ementaires (par la m ethode classique du pivot de Gauss). La
proportion de matrices inversibles parmi les matrices carr ees etant non n egigeable,
la probabilit e que lattaque r eussisse est non n egigeable.
2.3 Confusion, diffusion
Les syst` emes de chiffrement pr ec edents sont des syst` emes de chiffrements par
blocs, cest-` a-dire que lon d ecoupe dabord le texte clair en blocs de m eme taille,
et le chiffrement est obtenu par lapplication dune fonction de chiffrement E
K
` a
chacun des blocs. Dans le monde moderne, les messages sont des suites de bits (par
exemple obtenus ` a partir de lalphabet courant par le code ASCII). Si la taille des
blocs est , supposons pour simplier que la fonction de chiffrement E
K
d enisse
une bijection E
K
: F

2
F

2
.
Le premier exemple montre que, si est trop petit, la r epartition des blocs de
taille dans les messages clairs ne suivant pas une loi uniforme, le cryptosyst` eme
est sensible ` a une analyse statistique. Si devient grand, et si E
K
est vraiment
quelconque, le probl` eme est de calculer E
K
(m). Si lon doit passer par le stock-
age en m emoire des valeurs prises par E
K
(m) cela limite la taille de (justement,
7
on peut prendre comme d enition de la notion de permutation quelconque la pro-
pri et e suivant laquelle il ny a pas de m ethode plus simple par exemple en terme
de longueur de programme pour la d enir que de donner toutes ses images). Si
` a loppos e on choisit une fonction extr emement facile ` a stocker et ` a calculer, on
tombe sur un syst` eme du type lin eaire comme dans le deuxi` eme exemple.
Tr` es sch ematiquement on dit quun syst` eme avec petit et E
K
quelconque
apporte de la confusion tandis quun syst` eme lin eaire o` u est choisit grand apporte
de la diffusion (i.e. un bit donn e du message clair inuence un grand nombre de
bits du message chiffr e).
Les syst` emes par blocs modernes, comme on le verra plus pr ecis ement, alter-
nent les s equences de confusion et de diffusion.
2.4 Le chiffrement de Vernam
Ce syst` eme (aussi appel e masque jetable ou one-time-pad) date de 1917 et a servi
` a chiffrer les message t el egraphiques.
c
Cl e
Clair
E
Chiffr e
E
Les messages, clairs et chiffr es, sont des suites de bits de longueur n (i.e. ap-
partiennent ` a F
n
2
). La cl e K est une suite binaire de la m eme longueur que le clair.
Le chiffrement consiste en lajout (mod 2) bit ` a bit du clair et de la cl e:
c = mK = m
1
K
1
m
n
K
n
.
Ce syst` eme est parfait dans le cadre dune attaque ` a chiffr e seul, en le sens que
si lattaquant peut d ecrypter un (seul) message, cest-` a-dire trouver m, connaissant
c, alors cest quil d etient la cl e. En effet, celle-ci se d eduit de m et de c par:
K = mc.
Mais, pour la m eme raison, il est vuln erable aux attaques ` a clairs connus, ce qui
implique que la cl e ne doit etre utilis ee quune fois!
8
De plus, il est impratiquable, sauf pour des messages de petites longueurs: la
cl e devant etre envoy ee sur un canal s ecuris e (le syst` eme est sym etrique!), devant
etre aussi longue que le message et ne devant etre utilis ee quune fois, il semble
aussi simple denvoyer le message lui-m eme sur le canal s ecuris e. Cependant,
ce syst` eme a et e utilis e pour le t el ephone rouge car il est pr ef erable denvoyer
la cl e (par porteur dans le cas du t el ephone rouge) et den renvoyer une autre si
elle a et e intercept ee plut ot que denvoyer directement le message (que faire sil
est intercept e?). De plus, ce syst` eme est la base de la cryptographie par ots,
qui concerne tous les chiffrements en ligne (i.e. tr` es rapides), qui sont utilis es en
particulier par les arm ees, pour la t el ephonie mobile, etc..
9
Chapter 3
La th eorie de Shannon
D` es 1949, Claude Shannon tente de donner des fondements th eoriques ` a la cryp-
tologie. Il adopte le point de vue de la th eorie de linformation et introduit la notion
de s ecurit e inconditionnelle.
3.1 Lentropie dune variable al eatoire
Si on consid` ere les el ements dun syst` eme cryptographique: message clair, chiffr e,
cl e, comme des variables al eatoires, on peut mesurer la quantit e dinformation
quils contiennent par leur entropie.
Si X est une variable al eatoire prenant un nombre ni de valeurs, et si par
exemple P(X = x) = 1/4, on peut consid erer que linformation contenue dans
l ev` enement X = x est de 2 bits, puisque il y a exactement 4 mots ` a 2 bits. Plus
g en eralement, on consid` ere que linformation contenue dans l ev` enement X = x
est de log P(X = x) o` u log est le log en base 2 et si lentropie de X mesure
linformation moyenne contenue dans X, il est naturel de poser:
D enition 1 Lentropie H(X) de la variable al eatoire X est par d enition:
H(X) :=

x
P(X = x) log P(X = x).
`
A cause de la concavit e de la fonction x xlog x sur lintervalle [0, 1],
lentropie H(X) est maximale si et seulement si X est equidistribu ee, auquel cas
H(X) = log n o` u n est le nombre de valeurs que prend X.
Lentropie conditionnelle de X sachant Y mesure lincertitude r esiduelle as-
soci ee ` a X connaissant Y .
10
D enition 2 Lentropie conditionnelle de X sachant Y est d enie par:
H(X [ Y ) :=

x,y
P(X = x, Y = y) log P(X = x [ Y = y).
Proposition 1 On a: H(X, Y ) = H(Y )+H(X [ Y ) (H(X, Y ) d esigne lentropie
de la variable al eatoire (X, Y )).
Preuve: Il suft de se rappeler que
P(X = x, Y = y) = P(X = x [ Y = y)P(Y = y).
On a alors:
H(X, Y ) =

x,y
P(X = x, Y = y) log P(X = x, Y = y)
=

x,y
P(X = x, Y = y)(log P(X = x [ Y = y) + log P(Y = y))
= H(X [ Y )

y
(

x
P(X = x, Y = y)) log P(Y = y)
= H(X [ Y )

y
P(Y = y) log P(Y = y)
= H(X [ Y ) +H(Y )
3.2 S ecurit e inconditionnelle
Consid erons les messages clairs, chiffr es et les cl es comme des variables al eatoires
M, C, K. On suppose que chaque cl e k d enit une bijection e
k
: / (. On a:
P(C = c) =

k
P(K = k)P(M = e
1
k
(c)).
Shannon d enit un cryptosyst` eme comme parfait, ou assurant une s ecurit e in-
conditionnelle, si la condition:
H(M [ C) = H(M)
est r ealis ee. Autrement dit, la connaissance du message chiffr e napporte au-
cune information sur le message clair.
Exemple: Le chiffrement de Vernamest parfait, si K est une variable equidistribu ee,
et ind ependante de M. En effet,
11
P(M = x, C = y) = P(M = x, K = y x) =
P(M = x)
[/[
en utilisant lind ependance de K et M et l equidistribution de K. On en d eduit
egalement:
P(C = y) =

x
P(M = x, C = y) =
1
[/[
.
Donc:
P(M = x [ C = y) =
P(M = x, C = y)
P(C = y)
= P(M = x)
et on a bien H(M [ C) = H(M).
En g en eral, on voit facilement que:
H(M [ C) H((M, K) [ C)
= H(K [ C)
H(K)
ce qui d emontre lun des r esultats fondamentaux de la th eorie de Shannon:
Th eor` eme 1 Si le syst` eme cryptographique est parfait, on a :
H(K) H(M).
Linformation contenue dans la cl e est donc au moins aussi grande que celle
du message clair. En particulier, si tous les messages clairs sont equiprobables, la
taille de la cl e doit etre au moins aussi grande que celle du message clair. On ne
peut donc faire mieux que le chiffrement de Vernam!
Puisquil faut quand m eme faire quelque chose de plus raisonnable dans la
pratique, on remplace maintenant la notion de s ecurit e inconditionnelle par celle
de s ecurit e calculatoire. En effet, dans le mod` ele de Shannon, lattaquant a des
ressources calculatoires illimit ees ce qui nest certainement pas le cas de tout un
chacun...
12
Chapter 4
La cryptographie sym etrique
moderne: g en eralit es
4.1 Les diff erents types dattaques
Lobjectif de lattaquant cest de trouver la cl e. Cest plus fort que de trouver le
clair associ e ` a un chiffr e donn e, puisque la donn ee de la cl e fournit la possibilit e de
calculer tous les clairs associ es ` a tous les chiffr es. On consid` ere quune attaque est
efcace si elle a une probabilit e non n egigeable de r eussir en un temps inf erieur ou
egal ` a quelques ann ees (voire plus!) sur une ou plusieurs machines puissantes. Cela
xe de nos jours ` a 2
80
le nombre minimal dop erations el ementaires n ecessaires ` a
une attaque, pour quun cryptosyst` eme soit consid er e comme s ur.
Il a ` a sa disposition diff erents types dattaques possibles. La plus evidente est
- lattaque exhaustive. Lattaquant essai toutes des cl es k jusqu` a ce que D
k
(c)
ressemble ` a un texte clair (ce qui est dailleurs un concept ` a pr eciser, mais auquel
on peut donner un sens statistique ` a peu pr` es intuitif). Le temps moyen de cette
attaque est egal au temps dun d echiffrement multipli e par la moiti e de la taille de
lespace des cl es (exercice!).
La parade bien s ur consiste ` a choisir un syst` eme crypto dont lespace des cl es
a une taille sufsante. Le DES, premier standard de chiffrement sym etrique, a et e
ecart e pr ecis ement parce que la taille des cl es utilis ees est insufsante: 56 bits.
Ensuite on a, par ordre d ecroissant de difcult e pour lattaquant:
- lattaque ` a chiffr e seul (vue dans la section sur le chiffrement par substitution):
lattaquant ne connait que le chiffr e et il cherche le clair et si possible la cl e;
- lattaque ` a clair connu (vue dans la section sur le chiffrement par transposition,
qui est lin eaire): lattaquant connait un ou plusieurs ( eventuellement un grand nom-
bre) de couples clairs-chiffr es, et il cherche la cl e;
13
- lattaque ` a clair choisi, semblable ` a la pr ec edente, mais pour laquelle latta-
quant peut choisir les clairs de facon que son attaque r eussisse avec une meilleure
probabilit e (elle peut etre adaptative si les choix peuvent etre faits en fonction des
r esultats des attaques sur les couples pr ec edents);
- lattaque ` a chiffr e choisi, qui peut etre elle aussi adaptative.
Le niveau normal de s ecurit e est la r esistance ` a lattaque ` a clair choisi. Un bon
syst` eme est tel que cette attaque ait une complexit e (en temps de calcul) compara-
ble ` a celle de lattaque exhaustive.
4.2 Chiffrement par ot, par blocs
Les sch emas de chiffrement par ot, traitent linformation bit ` a bit, et sont tr` es rapi-
des. Ils peuvent etre trait es avec une m emoire limit ee et la propagation des erreurs
de transmission du chiffr e au clair est limit ee. Ils sont parfaitement adapt es ` a des
moyens de calcul, de m emoire et de transmission limit es (cryptographie en temps
r eel) comme la cryptographie militaire, ou la cryptographie entre le t el ephone
portable GSM et son r eseau (syst` eme A51).
Leur principe est deffectuer un chiffrement de Vernam en utilisant une cl e
pseudo-al eatoire, cest ` a dire une cl e qui ne soit pas choisie al eatoirement parmi
tous les mots binaires de longueur n. Cette cl e (quon appellera suite pseudo-
al eatoire) est g en er ee par diff erents proc ed es ` a partir dune cl e al eatoire dune
longueur juste sufsante pour r esister aux attaques exhaustives (les performances
` a venir des ordinateurs demandent donc de la prendre dau moins 80 bits), quon
appellera cl e courte.
La s ecurit e dun tel syst` eme contre une attaque ` a clair connu est equivalen-
te ` a la s ecurit e du g en erateur pseudo-al eatoire. On demande bien entendu que la
connaissance de N bits cons ecutifs de la cl e ne permette pas de calculer facilement
la cl e courte. On est plus exigeant en demandant que la connaissance de N bits
cons ecutifs ne permette pas de pr evoir facilement (i.e. en temps polynomial en N)
la valeur du bit suivant avec probabilit e p > 1/2. En particulier cela demande
que la suite des bits de la cl e satisfasse aux propri et es de r egularit e dune suite
v eritablement al eatoire.
Les sch emas par blocs sont plus lents et n ecessitent plus de moyens informa-
tiques que les sch emas par ots. Mais ils sont bien adapt es ` a la cryptographie civile
comme celle des banques.
Dans un syst` eme par blocs, chaque clair est d ecoup e en blocs de m eme longueur
et chiffr e bloc par bloc. La longueur l des cl es doit etre sufsante pour que lattaque
exhaustive (attaque ` a chiffr e seul si on a un moyen de diff erencier les clairs des
14
messages al eatoires, et attaque ` a clair connu sinon) consistant ` a d echiffrer le chiffr e
avec toutes les cl es possibles jusqu` a lobtention du clair, soit irr ealiste (l 80).
La longueur n des blocs doit egalement etre sufsante pour eviter les attaques dites
par dictionnaire consistant ` a saider dun pr e-calcul (partiel) des chiffr es des 2
n
blocs possibles.
La s ecurit e des sch emas par blocs retenus comme standards (DES puis AES)
repose sur le fait quavant d etre retenus (et apr` es!), ils ont et e massivement at-
taqu es par la communaut e cryptographique. Ces sch emas qui ont r esist e sont alors
consid er es comme s urs. Le DES (Data Encryption Standard) date des ann ees 70 et
a r esist e ` a toutes les techniques de cryptanalyse (lattaque qui reste la plus efcace
en pratique est lattaque exhaustive). Il a d u cependant etre remplac e r ecemment
comme standard par lAES (Advanced Encryption Standard), car sa cl e de 56 bits
etait trop courte (et de longueur non modiable!) pour assurer de nos jours une
r esistance sufsante ` a lattaque exhaustive.
Les exemples historiques de chiffrement (par transposition et par substitution)
vus en d ebut de cours sont des chiffrements par blocs. La substitution ajoute de
la confusion au proc ed e de chiffrement et la transposition ajoute de la diffusion en
eparpillant linuence moyenne (selon les diff erentes cl es) de chaque bit du clair,
sur les bits du chiffr e. Mais aucun de ces deux proc ed es ne produit ` a la fois de
la confusion et de la diffusion, et cest une raison pour laquelle ils ne peuvent pas
` a assurer une r eelle s ecurit e. Les syst` emes modernes, pour assurer une v eritable
s ecurit e, doivent produire ` a la fois de la confusion et de la diffusion, faute de quoi
ils ne r esistent pas aux attaques que nous d ecrirons plus loin.
D enition 3 On appelle chiffrement produit un chiffrement par blocs qui combine
plusieurs transformations el ementaires (substitutions, transpositions, op erations
lin eaires ou arithm etiques).
Un chiffrement it eratif r esulte de lapplication it er ee dun chiffrement (en g en eral
un chiffrement produit). Chaque it eration est appel ee un tour (round en anglais).
Chaque tour fait intervenir une sous-cl e qui en g en eral est d eriv ee (on dit souvent
cadenc ee) de la cl e principale.
15
Chapter 5
Les sch emas de chiffrement par
ot
Pour les notions de base sur lanalyse de s equences, on pourra consulter utilement
[1].
5.1 Crit` eres statistiques
On demande ` a une suite pseudo-al eatoire, p eriodique de p eriode N, de satisfaire
certaines des propri et es des suites authentiquement al eatoires. Parmi ces pro-
pri et es, les plus classiques sont les trois crit` eres de Golomb, propos es par celui-ci
en 1982:
1. Dans chaque p eriode, le nombre de 0 est approximativement egal au nombre
de 1: [

N1
i=0
(1)
s
i
[ 1.
2. Une s erie (de 0 ou de 1) est une succession de bits identiques, maximale (i.e.
encadr ee par des bits oppos es). Dans chaque p eriode, soit S lensemble des
s eries; si 2
k
[S[ < 2
k+1
, on trouve [S[/2 s eries de longueur 1, [S[/4 s eries
de longueur 4, . . . , [S[/2
k
s eries de longueur 2
k
, et pour chaque longueur,
autant de s eries de 0 que de s eries de 1.
3. La fonction dauto-corr elation prend deux valeurs, suivant que = 0 ou
non:
C() :=
N1

i=0
(1)
s
i
+s
i+
.
16
Bien s ur, ces conditions ne garantissent en aucun cas la s ecurit e cryptographique!
On va voir au prochain paragraphe un proc ed e facile pour engendrer des suites
pseudo-al eatoires satisfaisant ces crit eres. Dautres crit` eres sont usuellement retenus,
notamment la notion de prol de complexit e, expliqu ee plus loin.
5.2 Les registres ` a d ecalage lin eaires (LFSR).
Un premier proc ed e consiste ` a prendre pour cl e pseudo-al eatoire une suite (on dit
aussi s equence) ` a r ecurrence lin eaire, cest ` a dire une suite binaire satisfaisant une
relation de r ecurrence du type:
s
t
=
L

i=1
c
i
s
ti
, t L, (5.1)
o` u les c
j
sont non tous nuls, et la somme est laddition dans F
2
.
Le proc ed e electronique pour g en erer de telles suites est le registre ` a d ecalage
lin eaire (Linear Feedback Shift Register en anglais; on ecrira en abr eg e LFSR).
Un registre ` a d ecalage lin eaire est constitu e de L cases m emoires appel ees ip-
s
i+L1
s
i+1
s
i
s
i+L
T T T

c
L
c
L1
c
1
' '
E E
ops pouvant chacune contenir un bit, et dune horloge contr olant le mouvement
des donn ees (ce mouvement a lieu de la gauche vers la droite dans le sch ema ci-
joint). Le registre est initialis e par L bits s
0
, , s
L1
plac es de droite ` a gauche.
A chaque top dhorloge, sort le bit situ e le plus ` a droite juste avant le top (les
L premiers bits ` a sortir sont donc bien les bits s
0
, , s
L1
dans cet ordre). Les
autres bits se d eplacent dun rang vers la droite et le ip-op le plus ` a gauche recoit
comme nouvelle valeur la combinaison lin eaire
s
L+i
=
L

j=1
c
j
s
L+ij
.
La suite g en er ee satisfait donc bien cette relation de r ecurrence ` a partir du rang L.
17
Notons que si la suite initiale s
0
, , s
L1
est nulle, alors toute la suite est
nulle. La suite pseudo-al eatoire est constitu ee des bits de sortie successifs du
LFSR pendant un certain nombre de tops dhorloge et la cl e courte est constitu ee
de linitialisation du registre et des coefcients c
i
eux-m emes (2L bits en tout). Les
coefcients c
i
sont en effet suppos es secrets: sils sont connus, alors en observant
L bits cons ecutifs, on peut calculer tous les suivants.
Rappelons ce r esultat dalg` ebre lin eaire el ementaire:
Proposition 2 Supposons x es (c
1
, c
2
, . . . , c
L
). Soit s = (s
n
)
n0
une suite bi-
naire v eriant la relation de r ecurrence (5.1). La donn ee des L premi` eres valeurs
(s
0
, s
1
, . . . , s
L1
) d etermine de facon unique la suite s = (s
n
)
n0
. Plus pr ecis ement,
lapplication qui ` a la suite s associe ses L premiers termes est un isomorphisme
de F
2
-espaces vectoriels de lespace des suites r ecurrentes pour les coefcients
(c
1
, c
2
, . . . , c
L
) sur F
L
2
.
En particulier, il y a exactement 2
L
suites diff erentes, satisfaisant la m eme rela-
tion de r ecurrence, associ ees aux 2
L
possibilit es pour linitialisation (s
0
, s
1
, . . . , s
L1
).
Nous allons voir maintenant quune telle suite est en fait p eriodique.
Proposition 3 La suite s est ultimement p eriodique, de p eriode T 2
L
1 (i.e.
il existe un entier i
0
tel que s
i
= s
i+T
pour tout i i
0
). Si, de plus, c
L
= 1, la
suite s est p eriodique (i.e. s
i
= s
i+T
pour tout i 0).
Preuve: Notons R
i
:= (s
i
, s
i+1
, . . . , s
i+L1
) le i-` eme registre. Celui-ci d etermine
compl` etement les registres ult erieurs. Ce registre peut prendre au plus 2
L
etats. Sil
atteint l etat 0 = (0, . . . , 0) alors les registres successifs sont tous nuls et la suite
elle-m eme est nulle ` a partir de l` a. Sil nest jamais nul, parmi [R
0
, R
1
, . . . , R
2
L
1
],
au moins deux registres sont identiques. Supposons R
i
0
= R
i
0
+T
; alors la suite des
registres [R
i
0
, R
i
0
+1
, . . . , R
i
0
+T1
] se r ep` ete ind eniment. On a donc s
i
= s
i+T
pour tout i i
0
avec T 2
L
1.
On peut interpr eter aussi la relation entre deux registres successifs en termes
matriciels: Notons
A :=
_
_
_
_
_
_
_
_
_
0 1 0 0 . . . 0
0 0 1 0 . . . 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 . . . 0 1 0
0 0 . . . 0 0 1
c
L
c
L1
. . . c
3
c
2
c
1
_
_
_
_
_
_
_
_
_
En consid erant les R
i
comme des vecteurs colonnes, on a
18
R
i+1
= AR
i
.
Ainsi, on a R
n
= A
n
R
0
. Remarquons que le d eterminant de A est egal ` a c
0
.
Ainsi, si c
0
= 1, la matrice A est inversible et le LFSR ne passe jamais par le
registre nul. La condition R
i
0
= R
i
0
+T
devient A
i
0
R
0
= A
i
0
+T
R
0
mais comme
A est inversible, on en d eduit R
0
= A
T
R
0
= R
T
et la suite s est p eriodique.
Remarquons que, si c
0
= 0, en notant i
0
le plus petit indice tel que c
i
0
,= 0, la
suite s peut se voir comme une suite avec un pr exe s
0
, s
1
, . . . , s
i
0
1
, suivie dune
suite engendr ee par un LFSR de longueur L i
0
, qui lui v erie c

0
= c
i
0
,= 0.
On supposera d esormais que la suite s est p eriodique, et non nulle. Claire-
ment, pour des applications cryptographiques, il est souhaitable que la suite s ait
une p eriode aussi longue que possible, cest-` a-dire, dapr` es ce qui pr ec` ede, une
p eriode T = 2
L
1. Remarquons que, dans ce cas, les registres R
i
prennent
tous les etats possibles de F
L
2
sauf 0. En particulier, deux telles suites associ ees
aux m emes coefcients de r ecurrence mais pas au m eme etat initial sont en fait
d ecal ees lune de lautre.
D enition 4 Si la suite s (avec c
L
= 1) a pour p eriode 2
L
1, on dit que s est
une m-suite ou m-s equence, ou encore quelle est de longueur maximale.
On va voir que les m-suites se caract erisent ais ement en termes de propri et es
de leur polyn ome de r etroaction.
D enition 5 Le polyn ome de connexion, ou polyn ome caract eristique, ou polyn ome
g en erateur de la suite s est le polyn ome ` a coefcients dans F
2
:
f(X) = 1 +c
1
X + +c
L
X
L
.
Le polyn ome de r etroaction de la suite s est le polyn ome r eciproque du polyn ome
de connexion:
h(X) = X
L
+c
1
X
L1
+ +c
L
.
Proposition 4 1. Le polyn ome de r etroaction est le polyn ome caract eristique
de la matrice A.
2. Si D d esigne lop erateur d ecalage sur les suites, d eni par:
(Ds)
i
= s
i+1
pour tout i 0,
19
on a h(D)s = 0. Tout polyn ome h

tel que h

(D)s = 0, d enit un LFSR en-


gendrant s. Lensemble de ces polyn omes, est un id eal de F
2
[X], engendr e
par un polyn ome de plus petit degr e, d enissant le plus petit LFSR engen-
drant s.
Preuve:
1. Cest un calcul standard.
2. Si s = s
0
s
1
s
2
. . . , Ds = s
1
s
2
s
3
. . . , et D
i
s = s
i
s
i+1
s
i+2
. . . . On a claire-
ment: (D
L
s)
i
= s
L+i
et
(h(D)s)
i
= s
L+i

j=1
c
j
s
L+ij
.
La condition: h(D)s = 0 est donc equivalente ` a la condition (5.1).
Il est clair que lensemble de ces polyn omes est un id eal de F
2
[X]; il est
donc principal, engendr e par son el ement non nul de plus petit degr e.
Th eor` eme 2 La suite s est une m-s equence si et seulement si son polyn ome de
r etroaction est le polyn ome minimal dun g en erateur du groupe (cyclique) F

2
L
(on
dit que cest un polyn ome primitif).
Preuve: Notons I := p(x) F
2
[x] [ p(D)s = 0 lid eal d eni pr ec edemment.
On sait que h I. Remarquons egalement que s est p eriodique de p eriode T si et
seulement si x
T
1 I.
Supposons que h soit le polyn ome minimal dun g en erateur de F

2
L
. Comme
h est irr eductible, on a I =< h >. Ses racines (conjugu ees) sont toutes dordre
exactement 2
L
1. Donc h divise x
2
L
1
1 mais ne divise pas x
T
1 pour
T < 2
L
1. Donc s est bien de p eriode 2
L
1.
R eciproquement, supposons que la suite s soit une m-suite. Notons p un
g en erateur de I. Alors p divise x
2
L
1
1 mais ne divise pas x
T
1 pour T < 2
L
1.
Les racines de p appartiennent donc ` a F
2
L. Comme p F
2
[x], si un el ement
F
2
L est racine de p, tous ses conjugu es le sont aussi. En particulier, si
lune de ses racines est de degr e L sur F
2
, cest termin e car, h etant de degr e
au plus L (puisque p divise h), il ne peut etre qu irr eductible et de degr e L,
donc egal ` a h. Ses racines sont toutes conjugu ees, elles ont donc toutes m eme
ordre multiplicatif, qui ne peut etre que 2
L
1 sinon p diviserait un x
T
1
20
pour T < 2
L
1 et s ne serait pas de p eriode maximale. Il reste ` a exclure le
cas o` u toutes les racines
1
, . . . ,
s
de p seraient de degr e un diviseur strict de
L.
`
A chacune de leurs orbites sous laction du Frobenius correspond un degr e
m
i
et un ordre multiplicatif d
i
. On a

m
i
= deg(p) L. Pour que s soit
de p eriode maximale, il faudrait que ppcm(d
i
) = 2
L
1. Mais d
i
est un di-
viseur de 2
m
i
1. La suite din egalit es suivante montre que cest impossible:
ppcm(d
i
) ppcm(2
m
i
1)

(2
m
i
1) < 2

m
i
1 2
L
1.
On a vu quune suite p eriodique est engendr ee par une innit e de LFSR, as-
soci es aux el ements de lid eal I. Bien s ur, le plus petit dentre eux est le plus
int eressant. Cela nous am` ene ` a la d enition suivante:
D enition 6 La complexit e lin eaire dune suite p eriodique s est la longueur du
plus petit LFSR qui lengendre. On la note L(s).
Proposition 5 Si s est une m-suite de p eriode 2
L
1, alors sa complexit e lin eaire
est egale ` a L.
Preuve: Si sa complexit e etait L

< L, sa p eriode serait au plus egale ` a 2


L

1.
R esum e: Un LFSR de polyn ome irr eductible semble etre un bon candidat pour un
g en erateur pseudo-al eatoire. En effet, les suites non nulles quil engendre ont une
p eriode grande, et une complexit e lin eaire bien egale ` a L. Elles ont de bonnes pro-
pri et es statistiques: on peut montrer quelles v erient les 3 crit` eres de Golomb. De
plus, on a vu que chaque L-uplet de nombres binaires apparait comme un registre
une et une seule fois par p eriode, et on peut montrer que la fr equence des mots de
longueur k L est aussi uniforme.
Malheureusement un tel g en erateur nest pas cryptographiquement s ur, ` a cause
de lalgorithme de Berlekamp-Massey, discut e au paragraphe suivant, qui calcule
(en temps quadratique) la complexit e lin eaire et un polyn ome engendrant une suite
nie. Il suit du Lemme suivant quil suft de connaitre 2L bits cons ecutifs de la
suite pour la retrouver enti` erement.
Lemme 1 Soit s une suite r ecurrente de longueur maximale, de complexit e lin eaire
L. Si on connait 2L termes cons ecutifs de cette suite, alors on peut calculer les
coefcients de r ecurrence en inversant un syst` eme lin eaire de taille L L.
21
Preuve: On a la relation lin eaire:
_
_
_
_
_
_
_
_
s
i
s
i+1
s
i+2
. . . s
i+L1
s
i+1
s
i+2
s
i+3
. . . s
i+L
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
s
i+L2
.
.
. . . . . . . s
i+2L3
s
i+L1
s
i+L
. . . . . . s
i+2L2
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
c
L
c
L1
.
.
.
c
2
c
1
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
s
i+L
s
i+L+1
.
.
.
s
i+2L2
s
i+2L1
_
_
_
_
_
_
_
.
Il suft de montrer que la matrice S de ce syst` eme est inversible. Ses colonnes
sont les vecteurs associ es aux registres R
i
, . . . , R
i+L1
. Une combinaison lin eaire
nulle non triviale equivaut ` a lexistence dun polyn ome P non nul de degr e au plus
egal ` a L tel que R
i
ker P(A). Par hypoth` ese, le polyn ome caract eristique de A
est irr eductible de degr e L, donc premier ` a P, donc P(A) est inversible.
5.3 Lalgorithme de Berlekamp-Massey
[Ce qui suit est valable sur nimporte quel corps de base. Lalgorithme est une
adaptation due a Massey (69) de lalgorithme de Berlekamp destin e au d ecodage
des codes cycliques. R ef erence: larticle de Blahut dans le HBCT].
Dans la pratique cryptographique, lattaquant connait seulement un bout de la
suite s, et il essaie de deviner les bits suivants. En particulier, il peut chercher si ce
bout de suite est le d ebut dun LFSR. Dans cette direction , on etend la notion de
complexit e lin eaire aux suites nies:
D enition 7

Etant donn ee une suite s = (s
0
, . . . , s
n1
), et un polyn ome f = 1 +
c
1
x+ +c
L
x
L
(maintenant f nest plus n ecessairement de degr e exactement egal
` a L), on dit que (L, f) engendre s si s
j
=

L
i=1
c
i
s
ji
pour tout j = L, . . . , n1.
Le plus petit L convenable sappelle la complexit e lin eaire de s et se note L(s).
Lalgorithme de Belekamp-Massey permet de calculer un (L, f) associ e ` a s,
avec L = L(s). En fait lalgorithme calcule un couple (L, f) avec L mini-
mal, successivement pour les suites tronqu ees s
(1)
, s
(2)
, . . . , s
(k)
, . . . , s = s
(n)
, o` u
s
(i)
= (s
0
, . . . , s
i1
). La suite des entiers L sappelle aussi le prol de complexit e
de la suite s. Le temps de calcul de cet algorithme est en n
2
.
On commence par quelques r esultats interm ediaires.
Lemme 2 Si (L, f) et (L

, f

) engendrent s = s
(k)
, et si k L + L

, alors

k
=

k
, o` u
k
:=

L
i=1
c
i
s
ki
et

k
:=

i=1
c

i
s
ki
.
22
Preuve: Soit
k
=

L
i=1
c
i
s
ki
. Les termes s
ki
peuvent sexprimer avec f

,
` a condition que L

k i k 1. Cest le cas pour tout i L puisque


L

k L k i par hypoth` ese. Plus pr ecis ement,


s
ki
=
L

j=1
c

j
s
kij
et donc

k
=
L

i=1
c
i
L

j=1
c

j
s
kij
=
L

j=1
c

j
(
L

i=1
c
i
s
kij
)
=
L

j=1
c

j
s
kj
=

k
.
Lemme 3 Si (L, f) engendre s
(k)
mais pas s = s
(k+1)
, alors L(s) k L.
Preuve: Supposons que (L

, f

) engendre s avec L

= L(s). Alors (L, f) et


(L

, f

) engendrent s
(k)
et, avec les notations du Lemme 2, s
k
,=
k
et s
k
=

k
donc le Lemme 2 entraine k < L +L

.
Lemme 4 Si (L, f) engendre s
(k)
mais pas s
(k+1)
, si (M, g) engendre s
(m)
mais
pas s
(m+1)
avec m < k, alors (max(L, M+km), f +x
km
g) engendre s
(k+1)
.
Preuve: A la suite s on associe un polyn ome s(x) := s
0
+s
1
x + +s
n1
x
n1
.
La condition (L, f) engendre s
(k)
mais pas s
(k+1)
se traduit par: il existe des
polyn omes p
1
et p
2
avec deg(p
i
) < L tels que:
s
(k+1)
(x)f(x) = p
1
(x) +x
k
+x
k+1
p
2
(x).
De m eme, il existe des polyn omes q
1
et q
2
avec deg(q
i
) < M tels que:
s
(m+1)
(x)g(x) = q
1
(x) +x
m
+x
m+1
q
2
(x).
23
En ecrivant s
(k+1)
(x) = s
(m+1)
(x) +x
m+1
(. . . ), on obtient
s
(k+1)
(x)g(x) = q
1
(x) +x
m
+x
m+1
q
3
(x)
do` u:
s
(k+1)
(x)(f(x) x
km
g(x)) = (p
1
x
km
q
1
) +x
k+1
(. . . ).
Le degr e de p
1
x
km
q
1
est strictement plus petit que max(L, M +k m) et le
degr e de f(x) x
km
g(x) est au plus egal ` a max(L, M +k m). Cette derni` ere
egalit e traduit bien le fait que (max(L, M +k m), f +x
km
g) engendre s
(k+1)
.
On peut maintenant d ecrire lalgorithme et sa preuve (voir [3] pour un algo pr et
` a impl ementer).
Th eor` eme 3 Supposons pour k 1 avoir calcul e un couple (L, f) associ e ` a s
(k)
avec L = L(s
(k)
). Soit d
k
:= s
k
+

L1
i=0
c
i
s
kL+i
.
Si d
k
= 0, L(s
(k+1)
) = L et (L, f) engendre s
(k+1)
.
Si d
k
= 1, soit m le plus grand entier tel que m < k et L(s
(m)
) < L, et
supposons que (L(s
(m)
), g) engendre s
(m)
. Alors
L(s
(k+1)
) = max(L, k + 1 L)
s
(k+1)
est engendr e par f +x
km
g.
Preuve: Si d
k
= 0, cest clair. Supposons d
k
= 1. Notons M = L(s
(m)
) avec
(M, g) engendrant s
(m)
. Lhypoth` ese faite sur m (le plus grand entier tel que..)
entrane que (M, g) engendre s
(m)
mais pas s
(m+1)
. Lhypoth` ese d
k
= 1 entrane
que (L, f) engendre s
(k)
mais pas s
(k+1)
. Le Lemme 4 montre que s
(k+1)
est
engendr e par (max(L, M +k m), f +x
km
g). Il reste ` a montrer que
L(s
(k+1)
) = max(L, M +k m) = max(L, k + 1 L).
On a L m+ 1 M par le Lemme 3.
Si M +k m L, alors, comme k +1L M +k m, L = max(L, M +
k m), max(L, k + 1 L) donc cest juste.
Si M +k m > L, alors: M +k m L(s
(k+1)
) 1 +k L, la premi` ere
in egalit e d ecoulant du Lemme 4 et la deuxi` eme du Lemme 3. Il suft alors davoir
M +k m = 1 +k L, soit L+M = m+1. Cette derni` ere egalit e se d eduit du
r esultat suivant, que lon d emontre par r ecurrence: si L(s
(m)
) ,= L(s
(m+1)
), alors
24
L(s
(m)
) + L(s
(m+1)
) = m + 1. En effet, si cette identit e est vraie pour le i-` eme
saut, le raisonnement en cours montre que on lobtient pour le (i + 1)-i` eme (o` u
forc ement d = 1 et on nest pas dans le cas d egalit e).
Remarque 1 On a d eni la notion de prol de complexit e dune suite s. Cest la
suite L
k
= L(s
k
). Voil` a donc un autre crit` ere pour le caract` ere pseudo-al eatoire
dune suite: son prol de complexit e devrait etre assez proche de celui dune suite
v eritablement al eatoire, cest-` a-dire L
k
k/2.
5.4 Cryptographie par ots moderne
On a vu que les LFSR ne sont pas cryptographiquement s urs ` a cause de leur struc-
ture lin eaire. Une m ethode standard de chiffrement ` a ot consiste ` a les associer ` a
une fonction non lin eaire.
5.4.1 LFSR combin es, ltr es
(voir sch ema ci-dessous)
LFSR n
LFSR 2
LFSR 1
.
.
.
f
x
1
d
d
d
x
m

x
2
E sortie
E
On utilise m LFSR qui, ` a chaque top dhorloge, sortent chacun un bit x
i
. Et
les bits x
1
, , x
m
constituent lentr ee dune fonction bool eenne qui sort un bit
` a chaque top dhorloge. Les polyn omes de r etroaction des LFSR sont en g en eral
publics, ainsi que la fonction bool eenne. Seules les initialisations des LFSR sont
secr` etes et constituent la cl e (ce qui etait impossible en utilisant un simple LFSR,
puisquon a vu que si le polyn ome de r etroaction est connu, alors en observant L
bits cons ecutifs, on peut calculer tous les suivants).
Rappels sur les fonctions bool eennes:
25
D enition 8 Soit V
m
= F
2
m
. On appelle fonction bool eenne sur V
m
toute appli-
cation de V
m
dans F
2
.
On munit naturellement lensemble des fonctions bool eennes des op erations in-
duites par les op erations du corps F
2
.
Exercice 1 Montrer que lensemble des fonctions bool eennes sur V
m
est un es-
pace vectoriel de dimension 2
m
sur F
2
, une base etant constitu ee des indicatrices
(fonctions caract eristiques) des singletons u, avec u F
m
2
.
Les fonctions coordonn ees x = (x
1
, . . . , x
m
) x
i
(que lon notera simple-
ment x
i
) sont les fonctions bool eennes les plus el ementaires, apr` es les fonctions
constantes 0 et 1.
Les produits de fonctions coordonn ees sont aussi des fonctions bool eennes sur V
m
.
On les appelle les mon omes. Le degr e du mon ome

iI
x
i
est le cardinal [I[ de I.
Lunique mon ome de degr e 0 est la fonction constante 1.
A chaque mon ome correspond un mot u V
m
tel que ce mon ome s ecrive:
m

i=1
x
i
u
i
.
Le degr e de ce mon ome est le poids de Hamming du mot u (son nombre de coor-
donn ees non nulles).
Il existe plusieurs facons de noter le mon ome
m

i=1
x
i
u
i
. On peut le noter sous la
forme x
u
, o` u u d esigne le mot (u
1
, . . . , u
m
).
Th eor` eme 4 Lensemble des mon omes constitue une base de lespace vectoriel
des fonctions bool eennes sur V
m
.
Preuve:
Montrons dabord que lensemble des mon omes est une famille g en eratrice. En
vertu de lexercice 1, il suft pour cela de montrer que lindicatrice dun single-
ton quelconque se d ecompose sur cette famille. Soit donc a = (a
1
, . . . , a
m
) un
el ement quelconque de V
m
et 1
a
lindicatrice du singleton a; en d eveloppant
l egalit e suivante:
1
a
(x) =
m

i=1
(x
i
+a
i
+ 1),
on obtient bien une d ecomposition de 1
a
sur la famille des mon omes.
Il reste ` a montrer que la famille des mon omes est libre, ce qui est evident puisque
son cardinal est egal ` a la dimension de lespace vectoriel des fonctions bool eennes.

26
D enition 9 L ecriture (unique) dune fonction bool eenne f(x) comme combinai-
son lin eaire ` a coefcients dans F
2
de mon omes sappelle la forme alg ebrique nor-
male de f(x).
Elle s ecrit:
f(x) =

uV
m
a
u
_
m

i=1
x
i
u
i
_
=

uV
m
a
u
x
u
o` u, pour tout u, le coefcient a
u
est dans F
2
.
Cette ecriture, unique, correspond ` a la repr esentation de la fonction bool eenne
comme fonction polynomiale ` a mvariables dont le degr e relatif ` a chacune des vari-
ables est au plus 1 (do` u le nom de normale).
On appelle degr e dune fonction bool eenne le degr e global de sa forme alg ebrique
normale.
Exemples: Lindicatrice dun singleton est toujours de degr e m.
Lindicatrice du singleton (1, . . . , 1) est sa propre transform ee de
M obius.
La transform ee de M obius de lindicatrice du singleton (0, . . . , 0)
est la fonction constante 1.
Une fonction bool eenne utilis ee comme fonction de combinaison doit etre equilibr ee
(prendre le m eme nombre de fois les valeurs 0 et 1), car sinon la suite s engendr ee
elle-m eme ne prend pas le m eme nombre de fois les valeurs 0 et 1. Cela limite le
degr e de la fonction ` a m 1. Enn, puisque la suite g en er ee par le syst` eme est
p eriodique, elle est attaquable par lalgorithme de Berlekamp-Massey. Il faut donc
quelle soit de complexit e lin eaire elev ee. On d emontre que la complexit e lin eaire
dune fonction f(x
1
, , x
m
) =

uV
m
a
u
(

m
i=1
x
i
u
i
) =

uV
m
a
u
x
u
prenant
en entr ees des suites ML g en er ees par des LFSR de longueurs L
1
, , L
m
deux ` a
deux distinctes et plus grandes que 2, est de complexit e lin eaire f(L
1
, , L
m
),
cest ` a dire

uV
m
a
u
(

m
i=1
L
i
u
i
), o` u le calcul de la somme est effectu e dans Ret
non modulo 2 (voir la feuille dexercices 2 pour une d emonstration dans le cas o` u
les L
i
sont deux ` a deux premiers entre eux). On voit quil faut utiliser des fonctions
de hauts degr es pour atteindre de hautes complexit es lin eaires.
LFSR ltr es On a un seul LFSR et ` a chaque top, l etat du registre (la suite des
bits quil contient) ou un etat partiel (une sous-suite) est lentr ee dune fonction
bool eenne. On montre que ce syst` eme est equivalent au pr ec edent: en effet, il
revient ` a combiner n LFSR de m eme polyn ome de connexion, dont les registres
initiaux sont les n premiers registres de celui-ci; mais les attaques sur ce syst` eme
27
s
i+L1
s
i+1
s
i
T T T

' '
E
c c c
x
1
x
i
x
n
g(x
1
, x
2
, , x
n
)
c
sortie
ne fonctionnent pas avec la m eme complexit e que sur le syst` eme par fonction de
combinaison qui lui est equivalent. Par exemple, la complexit e lin eaire est born ee
par (et presque toujours egale ` a)

m
i=1
_
L
i
_
, o` u m est le degr e de f.
En effet, les equations suivantes calculent la sortie de ce g en erateur:
z
k
= f(R
k
) = f(A
k
R
0
)
Ces equations sont lin eaires en les variables: x
i
1
,i
2
,...,i
r
= x
i
1
x
i
2
. . . x
i
r
pour
r m, o` u R
0
= [x
0
, . . . , x
L1
] est le registre initial, et le nombre de ces variables
est bien

m
i=1
_
L
i
_
.
Une autre approche consiste ` a r esoudre les equations alg ebriques
z
k
= f(R
k
) = f(A
k
R
0
)
en les coordonn ees de R
0
par des techniques du type bases de Gr obner.
5.4.2 G en erateurs avec contr ole dhorloge
Lid ee est dintroduire de la non-lin earit e dans une combinaison de LFSR en con-
tr olant lhorloge de lun par lautre.
Exemple: le generateur retrecissant (shrinking
generator)
On prend deux LFSR R
1
et R
2
. Les bits de sortie sont les bits de sortie
de R
2
, lorsque R
1
sort la valeur 1. Ce g en erateur fut propos e en 1993
par Coppersmith, Krawczyk, Mansour.
28
Exemple: A5/1 le chiffrement `a flot utilise dans
le GSM
Il sagit dun algorithme propri etaire, qui na pas tard e ` a etre connu
de tous, et cryptanalys e. Cest une combinaison de quatre LFSR, dont
lun contr ole lhorloge, avec une fonction bool eenne de degr e deux.
5.4.3 Attaques par corr elation
Les attaques par corr elation sont les attaques les plus communes sur les g en erateurs
pseudo-al eatoires. Lid ee est de trouver un LFSR dont la sortie est corr el ee avec la
suite s consid er ee, ` a partir de la connaissance dun certain nombre de bits de s.
LFSR
E
t
Initialisation de s
E s
t
p = Pr[s
t
,=
t
] ,= 1/2
Siegenthaler en 85 est le premier ` a d ecrire une attaque de ce type. Elle concerne
le cas o` u la sortie du syst` eme est corr el ee ` a lun des LFSR le composant, ou ` a une
combinaison de ceux-ci. Un exemple typique est le g en erateur de Geffe:
Exemple: le generateur de Geffe
On prend trois LFSR de longueurs maximales deux ` a deux premi` eres
entre elles L
1
, L
2
, L
3
, et comme fonction bool eenne de combinaison:
f(x
1
, x
2
, x
3
) = x
1
x
2
+x
2
x
3
+x
3
.
Alors la p eriode de la suite engendr ee est egale ` a (2
L
1
1)(2
L
2

1)(2
L
3
1) et sa complexit e lin eaire vaut L = L
1
L
2
+L
2
L
3
+L
3
.
On voit facilement que, si z(t) est la sortie de ce g en erateur ` a linstant
t, cest-` a-dire z(t) = f(x
1
(t), x
2
(t), x
3
(t)), alors z(t) = x
1
(t) avec
probabilit e 3/4 (et, de m eme, z(t) = x
3
(t) avec probabilit e 3/4). En
effet, si x
2
= 1, alors z = x
1
, et si x
2
= 0 alors z = x
3
, mais x
3
= x
1
avec probabilit e 1/2!.
29
On peut alors monter lattaque suivante: parcourir les valeurs pos-
sibles de la cl e du LFSR
1
jusqu` a ce que sa sortie et la sortie de z
concident dans 3/4 des cas.
Dans un syst` eme combinant m LFSR on peut eviter ce type dattaque en choi-
sissant f non corr el ee ` a lordre k pour k petit.
D enition 10 On dit que f est non-corr el ee ` a lordre k si, pour X
1
, . . . , X
m
des
variables al eatoires binaires equidistribu ees ind ependantes, la variable al eatoire
f(X
1
, . . . , X
m
) est ind ependante des variables

iI
X
i
, o` u I est un sous-ensemble
de 1, . . . , m de cardinal au plus egal ` a k.
On dit que f est k-r esiliente si f est non-corr el ee ` a lordre k, et equilibr ee.
Cela revient ` a dire que d
H
(f,

iI
x
i
) = 2
m1
, pour tout sous-ensemble I de
cardinal au plus egal ` a k.
Pour etudier cette propri et e, un outil important est la transform ee de Walsh de
f, i.e. la transform ee de Fourier de (1)
f
. En effet, les valeurs de cette transform ee
calculent la distance de f aux fonctions afnes. On montre que la propri et e de k-
r esilience oblige ` a un compromis avec la recherche de fonctions de complexit e
lin eaire elev e. En effet, si f est k-r esiliente, alors le degr e de f est au plus egal
` a m k. Dautre part, la formule de Parceval (Plancherel?) montre quil existe
toujours des fonctions afnes corr el ees ` a f; il faut donc choisir f de sorte que
ces coefcients soient petits. On appelle cela la propri et e de non lin earit e de f.
Soyons plus pr ecis: le coefcient de corr elation de deux fonctions bool eennes f et
g est d eni par:
c(f, g) =
1
2
m

xF
m
2
(1)
f(x)+g(x)
= 1
d
H
(f, g)
2
m1
.
On montre que:

w
c(f, l
w
)
2
= 1, o` u l
w
(x) = w x.
La condition d etre non-corr el ee ` a lordre k signie: c(f, l
w
) = 0 pour tout w de
poids au plus egal ` a k. On voit bien que cela force les autres coefcients ` a etre
plus gros.
On peut interpr eter une attaque par corr elation comme un probl` eme de d ecodage.
En effet, supposons connaitre les N premiers bits de sortie du g en erateur. On leur
associe un el ement s F
N
2
. Le LFSR concern e par la corr elation engendre, sil
est de longueur L, un sous-espace de F
N
2
de dimension L, en faisant varier son
initialisation, cest-` a-dire un code C de dimension L. Notre probl` eme est donc de
30
trouver c C qui rend minimal d
H
(s, c); cest bien un probl` eme de d ecodage.
La m ethode de Siegenthaler est en fait la recherche exhaustive. En 88, Meier et
Staffelbach introduisent une attaque par corr elation rapide qui nest autre quun
algorithme de d ecodage it eratif analogue ` a celui introduit en th eorie des codes par
Gallager dans les ann ees 60. Ult erieurement dautres techniques de d ecodage ont
et e propos ees.
Pour eviter le probl` eme des coefcients de corr elations, on introduit souvent de
la m emoire dans un g en erateur combin e; cette id ee, d ue ` a Rueppel, rend plus dif-
cile lanalyse des corr elations, sans les exclure. Typiquement, un bit de m emoire
est produit par laddition de deux suits binaires, ex ecut ee dans N(cest la retenue!).
Exemple actuel: le syst` eme cryptographique de Bluetooth.
LFSR n
LFSR 1
.
.
.
s
t
= f
1
(x, m
t
)
m
t+1
= f
2
(x, m
t
)
x
1
d
d
d E
x
m

E
E s
t
m
t+1
E
5.4.4 Autres g en erateurs sym etriques
Parmi les g en erateurs non bas es sur des LFSR, on peut citer:
Les syst` emes de chiffrement par blocs en mode OFB, CFB
SEAL (Coppersmith and Rogaway 1993)
RC4: algorithme propri etaire de la soci et e RSA-Security. Cet algorithme est
largement employ e (par exemple dans la technologie de WIFIE 802.4). Il
g en` ere un permutation pseudo-al eatoire.
31
Chapter 6
Les sch emas de chiffrement par
blocs
Dans ce chapitre, nous allons d ecrire la structure de quelques syst` emes it eratifs, en
particulier les deux standards DES et AES, ainsi que les deux principales attaques
connues, qui sont la cryptanalyse diff erentielle et la cryptanalyse lin eaire.
6.1 Description de quelques syst` emes
6.1.1 Les sch emas de Feistel et le DES
Dans un sch ema de Feistel, le clair est de longueur paire et d ecoup e en une moiti e
gauche L et une moiti e droite R. Le i` eme tour du sch ema prend en entr ee un bloc
(L
i1
, R
i1
) et le transforme (en faisant intervenir la i` eme sous-cl e K
i
) en un bloc
(L
i
, R
i
). Le premier tour prend en entr ee le bloc (L, R) et le dernier tour produit
le chiffr e (L

, R

). La relation entre (L
i1
, R
i1
) et (L
i
, R
i
) est:
L
i
= R
i1
, R
i
= L
i1
+f(R
i1
, K
i
)
o` u f est un chiffrement produit.
Un chiffrement de Feistel est inversible, que f soit une bijection ou non. En
effet, on a
R
i1
= L
i
, L
i1
= R
i
+f(R
i1
, K
i
).
Ainsi, le permut e (R, L) du clair sobtient ` a partir de celui (R

, L

) du chiffr e
en lui appliquant un chiffrement de Feistel de m eme sch ema et en prenant comme
liste de sous-cl es de d echiffrement la m eme que celle des sous-cl es de chiffrement,
mais dans lordre inverse.
32
Le DES qui a et e le standard (propos e par le National Bureau of Standards
am ericain et d evelopp e par IBM) utilis e de 1977 ` a 2000 dans le monde entier,
est un sch ema de Feistel. Lalgorithme de chiffrement est compl` etement sp eci e
mais fait intervenir des boites S dont les crit` eres de conception nont pas et e ren-
dus publics. Certains pensent que la NSA (National Security Agency) qui avait
particip e ` a lop eration avait introduit des trappes lui permettant de d ecrypter plus
facilement les messages, mais cela na jamais pu etre prouv e puisquaucune crypt-
analyse sensiblement plus efcace que lattaque exhaustive na pu etre trouv ee
1
.
En janvier 98, une attaque exhaustive a et e r ealis ee en 39 jours sur 10 000 pen-
tiums en parall` ele. Et en juillet 98, un autre attaque a pris 56 heures avec une
machine d edi ee de 250 000 dollars. Ladoption de lAES simposait donc.
Le DES op` ere par blocs de 64 bits avec une cl e de 56 bits (compl et es de 8
bits de redondance). Le clair est permut e par une permutation initiale IP puis 16
it erations sont effectu ees. Les sous-cl es sont de 48 bits. Apr` es les 16 tours, on
applique IP
1
. La fonction de chiffrement f qui op` ere ` a chaque tour est le produit
(voir sch ema ` a la page suivante) dune fonction (on dit aussi boite) dexpansion E
qui est une application lin eaire de F
32
2
dans F
48
2
ne faisant pas intervenir la cl e,
de lajout bit ` a bit de la cl e, dune fonction de substitution (boite S) qui est une
application non lin eaire de F
48
2
dans F
32
2
ne faisant pas intervenir la cl e et dune
permutation P des bits (qui est donc une fonction lin eaire de F
32
2
dans F
32
2
). La
boite S, qui est la plus complexe ` a sp ecier et qui assure la fonction de confusion,
essentielle ` a la s ecurit e du DES, est en fait un produit de 8 fonctions de substitution
de F
6
2
dans F
4
2
donn ees explicitement. Les applications coordonn ees de ces sous-
fonctions de substitution ont et e choisies (1) pour permettre au syst` eme de r esister
` a lattaque diff erentielle (voir plus loin) qui etait connue des concepteurs du DES
mais tenue secr` ete et (2) de facon quelles soient ` a grandes distances de Hamming
de lensemble des fonctions afnes (cela a contribu e au fait que le syst` eme r esiste
bien ` a lattaque lin eaire qui n etait pourtant pas connue des concepteurs). Rap-
pelons que la distance de Hamming entre deux fonctions bool eennes est egale au
nombre des vecteurs en lesquels elles prennent des valeurs diff erentes. Les appli-
cations E et P assurent la diffusion.
1
La m eme suspicion nexiste pas concernant lAES qui a r esult e dun appel doffre.
33
l
+ S E P

l
+
l
+ S E P

l
+
l
+ S E P

l
+

K
1

IP
?

?
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
hh

(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
( (
?
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
( (
?
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
hh
?

?
?
IP
1
?
?
?
?
.
.
.
.
.
.
clair
chiffr e
K
16
K
2
Le mode op eratoire du DES peut etre le mode ECB (Electronic Code Book):
chaque bloc de 64 bits du clair est chiffr e avec la cl e (le i-` eme bloc de chiffr e se
d eduit donc du i` eme bloc de clair par la relation c
i
= E
K
(m
i
)) pr ef erable quand il
y a un risque derreur de transmission du chiffr e (malgr e lutilisation eventuelle de
codes correcteurs derreurs) ou CBC (Cipher Block Chaining) c
i
= E
K
(m
i
c
i1
)
et c
1
= E
K
(m
1
IV ) o` u IV est un vecteur dinitialisation choisi al eatoirement,
pr ef erable dans tous les autres cas (mais ` a eviter sil y a risque derreur de trans-
mission car une erreur sur un bloc se propagerait ` a tous les blocs suivants): chaque
34
bloc de clair inuence tous les chiffr es suivants; cela interdit lattaque dite par dic-
tionnaire qui permet au possesseur dun stock de couples (clair, chiffr e) de savoir
d echiffrer tous les blocs de chiffr es de son stock (cette attaque el ementaire est ef-
cace car il nest pas rare que des fragments de messages particuliers tels que les
en-t etes se r ep` etent). De plus, cette m ethode de chiffrement a lavantage d etre
probabiliste (deux chiffr es diff erents dun m eme message sont diff erents).
6.1.2 Le triple DES
Pour palier ` a la faiblesse du DES concernant sa longueur de cl e (56 bits), on utilise
souvent une version renforc ee appel ee triple DES ou 3DES. Ce nest pas la panac ee
car cette version est trop lente, compar ee ` a un AES par exemple.
Si E
K
, D
K
sont les fonctions de chiffrement et de d echiffrement du DES,
on chiffre par: x E
K
1
(D
K
2
(E
K
1
(x))), ce qui double la longueur de la cl e.
La solution plus simple: x E
K
1
(E
K
2
(x)) nest pas satisfaisante car elle est
vuln erable ` a une attaque dite de lhomme du milieu: si y = E
K
1
(E
K
2
(x)), et si on
connait le couple (x, y), on peut calculer et stocker les E
K
(x), K puis calculer les
D
T
(y) jusqu` a trouver une collision (cf le paradoxe des anniversaires).
6.1.3 Les sch emas de substitution/permutation (S/P)
On appelle ainsi les sch emas it eratifs dont les tours sont construits de la facon
suivante:

K
x
u
v = Pu
w = v +K
? ? ? ? ? ? ? ?
S S S S S S S S
? ? ? ? ? ? ? ?
P
? ? ? ? ? ? ? ?
Si x est lentr ee du tour, x est d ecoup e en sous-blocs d egale longueur x
1
, x
2
, . . .
auxquels on applique une substitution S ( eventuellement il y a autant de substitu-
tions que de sous-blocs). Si u
i
= Sx
i
, on concat` ene les u
i
pour former u, ` a qui
on applique une permutation P ( eventuellement une transformation lin eaire plus
35
complexe). On note v = Pu. La derni` ere etape du tour est lajout de la cl e de tour
K ` a v. Notons w = v +K.
Le premier tour - supposons quil y en r - est pr ec ed e de lajout dune cl e
suppl ementaire K
0
pour eviter que lattaquant d echiffre le premier tour jusqu` a
lajout de K
1
. Lalgorithme RIJNDAEL, choisi pour etre le nouveau standard du
chiffrement par blocs AES, est de ce type.
6.1.4 LAES
LAdvanced Encryption Standard a fait lobjet dun appel doffre datant de 1997.
Il sagissait de remplacer le DES dont la taille des cl es etait devenue trop petite
pour les performances des ordinateurs modernes. Les sp ecications etaient une
longueur de blocs de 128 bits (ou de 256 bits) et une longueur de cl e param etrable:
128 ou 192 ou 256 bits. Parmi les 15 candidats, le candidat retenu (en 2000)
se nomme RIJNDAEL (mais on lappelle simplement lAES). Il est d u ` a deux
chercheurs Belges, Rijmen et Daemen. Cest un chiffrement it eratif, mais con-
trairement ` a 9 autres candidats, ce nest pas un chiffrement de Feistel. Cest un
chiffrement par substitution-permutation: ` a chaque tour, le chiffr e produit par le
tour pr ec edent subit une substitution non-lin eaire qui assure la confusion puis une
permutation lin eaire qui assure la diffusion, puis la cl e du tour est ajout ee bit ` a bit
pour donner. Le nombre de tours est 10 pour une cl e de 128 bits et de 14 pour une
cl e de 256 bits.
La fonction de diffusion agit sur les 16 octets de lentr ee en les permutant puis
en appliquant la m eme application lin eaire sur chaque bloc de 4 octets cons ecutifs.
Chaque octet est identi e ` a un el ement du corps F
2
8 = F
256
` a 256 el ements. Le
polyn ome irr eductible utilis e pour la construction de ce corps est X
8
+X
4
+X
3
+
X + 1. Ce nest pas un polyn ome primitif mais les concepteurs lont choisi pour
acc el erer les calculs. Lidentication entre les el ements de ce corps et les octets
se fait classiquement: on choisit une base du corps vu comme espace vectoriel de
dimension 8 sur F
2
; chaque el ement du corps peut ainsi etre identi e ` a un vecteur
binaire de longueur 8, cest ` a dire ` a un octet. Lapplication lin eaire est d enie par
sa matrice 4 4 ` a coefcients dans le corps F
256
:
_

_
+ 1 1 1
1 + 1 1
1 1 + 1
+ 1 1 1
_

_
o` u est un el ement primitif. Elle agit donc principalement au niveau global des
octets (mais elle agit quand m eme au niveau des bits via les multiplications par les
36
el ements de ce corps).
La fonction de substitution (la boite S): chaque octet est consid er e comme
un el ement du corps F
256
. La boite S est constitu ee de 16 boites identiques
cons ecutives agissant chacune sur un octet. Chaque boite S
i
consiste en lapplication
F : x F
256
x
254
F
256
. Notons que si x = 0 alors x
254
= 0 et si x ,= 0 alors
x
254
=
1
x
. Le r esultat de cette transformation subit ensuite une application afne.
Cette boite S permet au syst` eme de r esister ` a lattaque diff erentielle et ` a lattaque
lin eaire. La raison de ce choix est que la fonction F : x F
256
x
254

F
256
est telle que l equation F(x) + F(x + a) = b admet au plus 4 solutions
(cela evite lexistence de diff erentielles de probabilit es elev ees) et que l equation
a Xb F(X) = 0 admet un nombre de solutions proche de 2
128
pour tout a ,= 0
et tout b ,= 0 (cela rend couteuse lattaque lin eaire).
6.1.5 Cryptanalyse
Les deux principales m ethodes connues de cryptanalyse des chiffrements par blocs
sym etriques sont la cryptanalyse diff erentielle et la cryptanalyse lin eaire. Elles
exploitent toutes deux des comportements statistiques non uniformes dans le pro-
cessus de chiffrement. La cryptanalyse diff erentielle date de 1990 et est d ue ` a
Biham et Shamir. La cryptanalyse lin eaire date de 1992 et est d ue ` a Matsui.
Une attaque g en erique sur les chiffrement it eratifs: appelons x le texte clair,
y son chiffr e. En posant x
0
= x et x
i
= F(x
i1
, K
i
) pour tout i = 1, . . . , r, on a
y = x
r
. Le but de lattaque est de d eterminer la valeur de K
r
, puis, en utilisant le
chiffrement de x en x
r1
= F
1
(y, K
r
) qui est un chiffrement ` a r 1 tours, de
calculer K
r1
, et ainsi de suite.
Nous nous concentrons donc sur le calcul de K
r
. On suppose quil existe une
corr elation entre x et x
r1
. Lattaque consiste alors ` a it erer pour un grand nombre
de couples clairs-chiffr es (x, y) les etapes suivantes:
Pour toutes les valeurs possibles k de K
r
:
Calculer z := F
1
(y, k).
Calculer p := cor(x, z).
Si p = cor(x, x
r1
), incr ementer un compteur associ e ` a la valeur k.
Lorsque la boucle passe par la valeur k = K
r
, bien s ur, la condition p = cor(x, x
r1
)
est r ealis ee et le compteur de K
r
est incr ement e avec une fr equence non uniforme.
On esp` ere que, lorsque une valeur k ,= K
r
est choisie, la variable z se comporte
37
comme une variable ind ependante de x; alors la condition p = cor(x, x
r1
) est
r ealis ee avec une probabilit e uniforme. Finalement, le compteur incr ement e non
uniform ement est celui de K
r
.
Dans la pratique, on ne parcourt pas toutes les valeurs possibles pour K
r
ce qui
serait impossible mais on isole la partie de K
r
qui intervient vraiment dans le calcul
de cor(x, z). Cela permet de calculer K
r
petits morceaux par petits morceaux.
La cryptanalyse diff erentielle sint eresse ` a l evolution les diff erences x
i
+ x

i
pour deux clairs x, x

. Il sagit dune attaque ` a clairs choisis. Notons


P
,
:= prob(x
r1
+x

r1
= [ x +x

= )
et supposons avoir d etermin e une valeur de (, ) telle que cette probabilit e soit
particuli` erement elev ee.
On it` ere, pour un grand nombre de couples clairs-chiffr es (x, y) et (x

, y

) tels
que x +x

= , les etapes suivantes:


Pour toutes les valeurs possibles k de K
r
:
Calculer z := F
1
(y, k) et z

:= F
1
(y

, k).
Si z +z

= , incr ementer un compteur associ e ` a k.


Le compteur le plus souvent incr ement e est celui de K
r
. Notons que lattaque
est dautant plus efcace que la probabilit e P
,
s eloigne de la probabilit e uni-
forme, soit 1/2
n
. On peut restreindre lensemble des valeurs de k parcouru ` a celles
qui inuent sur la valeur de z +z

(en effet, si deux valeurs de k donnent toujours


le m eme z +z

, elles sont egalement incr ement ees).


Il faut remarquer que, dans les etapes lin eaires du chiffrement, le comportement
des diff erences est compl` etement d etermin e puisque, si f est lin eaire, f(x
i
+x

i
) =
f(x
i
) + f(x

i
). De m eme, lajout dune cl e ne change pas la diff erence: (x
i
+
K) + (x

i
+ K) = x
i
+ x

i
. Par contre, si f nest pas lin eaire, on a seulement
x
i
+ x

i
= 0 f(x
i
) + f(x

i
) = 0, alors que, si x
i
+ x

i
= ,= 0, la valeur de
f(x
i
) +f(x

i
) nest pas d etermin ee.
Il reste ` a eclaircir deux points: le calcul de P
,
, et la facon de restreindre la
boucle sur k.
Exemple: les syst` emes S/P. On peut calculer les probabilit es P
,
relatives ` a S.
Supposons que S : F
s
2
F
s
2
. On calcule les entr ees de la matrice D de taille
2
s
2
s
D[, ] = card(x, x

) (F
2
s)
2
[ x +x

= et Sx +Sx

= .
38
Alors, pour les entr ees et sorties de S, on a:
p
,
:= prob(Sx +Sx

= [ x +x

= ) = D[, ]/2
s
.
On peut donc suivre l evolution des diff erences dans lalgorithme, en d ecoupant
par sous-blocs:
prob(v +v

= [ u +u

= ) =

i
prob(v
i
+v

i
=
i
[ u
i
+u

i
=
i
),
et en tenant compte de laction de la permutation P sur les
i
. On dit quune
boite S est active au l-` eme tour si la diff erence en entr ee (et donc en sortie) est
non nulle. Il suft alors de faire varier les bits de la cl e K
r
dont limage par P
1
correspond ` a une boite active au r-i` eme tour. Prenons en exemple lalgorithme
jouet B
32
, pour lequel s = 4 et P est le d ecalage de deux positions vers la droite.
Le meilleur coefcient de D est 10, obtenu pour
1
= 1111 et
1
= 1001. Es-
sayons = (
1
, 0, 0, . . . , 0), o` u 0 = 0000. devient = (
1
, 0, 0, . . . , 0), avec
probabilit e 10/16, puis par P, (0010, 0100, 0, . . . , 0). Deux boites sont actives
au deuxi` eme tour. Pour retrouver K
2
, il faut donc parcourir les 2
8
valeurs pos-
sibles pour (k[3], k[4], . . . , k[10]) en prenant les autres bits de k nuls. Une autre
possibilit e, qui permet dattaquer un nombre arbitraire de tours, est de consid erer

1
= 0001 qui se transforme en
1
= 0100 avec probabilit e 6/16. En effet,
P
1
=
1
donc une seule boite est active quel que soit le nombre de tours et
P
,
= (6/16)
r1
.
La cryptanalyse lin eaire sint eresse aux relations lin eaires entre les bits au cours
de lalgorithme. Cest une attaque ` a clair connu. Pour a F
n
2
et x F
n
2
, notons
a x = a
1
x
1
+ +a
n
x
n
. Nous pr esentons deux versions de lattaque: lattaque
sur le chiffrement global et lattaque sur le dernier tour. Notons
P
a,b,c
:= prob(a x +b y +c K = 0)
et supposons avoir d etermin e une valeur de (a, b, c) tels que cette probabilit e soit
particuli` erement elev ee.
Dans lattaque sur le chiffrement global, on calcule, pour un grand nombre de
couples clairs-chiffr es (x, y), la valeur de a x + b y. Si cette valeur vaut 0 plus
souvent que 1, on en conclut que c K = 0. Sinon, cest que c K = 1. On
obtient ainsi une relation lin eaire entre les bits de K; si la longueur de K est m,
il faut en trouver m lin eairement ind ependantes pour d eterminer K, ou du moins
sufsamment pour autoriser lattaque exhaustive (dans un S/P, si les cl es de tour
sont ind ependantes, m = (r + 1)n. Souvent une algorithme de cadencement des
cl es d erive les cl es de tour dune m eme cl e K).
39
Une m ethode plus efcace consiste ` a attaquer le dernier tour comme dans le
cas de lattaque diff erentielle: notons maintenant
P
a,b
:= prob(a x +b x
r1
= 0)
et supposons que P
a,b
soit assez eloign e de 1/2.
On it` ere, pour un grand nombre de couples clairs-chiffr es (x, y) les etapes suiv-
antes:
Pour toutes les valeurs possibles k de K
r
:
Calculer z := F
1
(y, k)
Si a x +b z = 0, incr ementer un compteur associ e ` a k.
Pour un assez grand nombre de couples, un compteur est particuli` erement elev e
ou bas, cest celui de K
r
. Notons que, si pour deux valeurs k et k

, b z = b z

,
les compteurs de k et k

seront egalement incr ement es. On peut donc restreindre


lensemble des valeurs de k ` a parcourir, quitte ` a ne d eterminer quune partie de K
r
(et cela est souhaitable car on ne peut pas en g en eral parcourir toutes les valeurs
possibles pour K
r
). On doit alors changer de (a, b).
An de calculer P
a,b
, on se ram` ene ` a lanalyse de ce qui se passe dans l etape
non lin eaire de chaque tour, via le Piling-up lemma:
Lemme 5 Soit Z
1
, . . . , Z
r
des variables al eatoires ind ependantes bool eennes, avec
prob(Z
i
= 0) = p
i
. Alors,
prob(Z
1
+ +Z
r
= 0) = 1/2 + 2
r1
r

i=1
(p
i
1/2).
Preuve: Se d emontre par r ecurrence ` a partir de r = 2. L ev enement Z
1
= Z
2
est
la r eunion disjointe de Z
1
= Z
2
= 0 et de Z
1
= Z
2
= 1. Donc prob(Z
1
+ Z
2
=
0) = p
1
p
2
+ (1 p
1
)(1 p
2
) = 1/2 + 2(p
1
1/2)(p
2
1/2).
Ce lemme nous permet de calculer P
a
0
,a
r1
, si on connait les probabilit es
prob(a
i1
x
i1
+a
i
x
i
= 0), pour i = 1, . . . , r1. En effet, a
0
x
0
+a
r1
x
r1
=
(a
0
x
0
+a
1
x
1
) + + (a
r2
x
r2
+a
r1
x
r1
), et x
0
= x +K
0
.
Exemple: les syst` emes S/P. On peut calculer les probabilit es P
a,b
relatives ` a S.
On calcule pour cela la matrice L de taille 2
s
2
s
L[a, b] := cardx F
s
2
[ a x +b y = 0.
40
Alors, pour les entr ees et sorties de S, on a:
p
a,b
:= prob(a x +b Sx = 0) = L[a, b]/2
s
.
On peut donc suivre l evolution des combinaisons lin eaires dans lalgorithme, en
d ecoupant par sous-blocs, en tenant compte de laction de la permutation P, et
gr ace au lemme pr ec edent, et calculer P
a,b
.
Les matrices D et L associ ees ` a Rijndael sinterpr` etent en termes d equations ` a
coefcients dans F
256
. Notons i(z) lapplication d enie par i(0) = 0 et i(z) = 1/z
pour z F

256
. La boite S de Rijndael vaut Sz = f(i(z)) + c, o` u f est une
application lin eaire inversible. Donc Sz +Sz

= f(i(z)) +f(i(z

)) = f(i(z) +
i(z

)), et
D[, ] = card(x, x

) [ x +x

= et i(z) +i(z

) = f
1
().
Notons

= f
1
(). Si z = 0, z

= et la condition est r ealis ee ssi


1
=

. Si z ,= 0 et z

,= 0, on doit r esoudre l equation 1/z + 1/(z + ) =

qui
est une equation de degr e deux en z. Dans le corps F
256
, elle a donc au plus deux
solutions. Ainsi, D[, ] 4.
41

Vous aimerez peut-être aussi