• Aucun résultat trouvé

Conception et preuves d’algorithmes cryptographiques Cours de magist

N/A
N/A
Protected

Academic year: 2022

Partager "Conception et preuves d’algorithmes cryptographiques Cours de magist"

Copied!
103
0
0

Texte intégral

(1)

Conception et preuves d’algorithmes cryptographiques

Cours de magist`ere M.M.F.A.I.

Ecole normale sup´erieure ´

Jacques Stern

Louis Granboulan Phong Nguyen David Pointcheval

Edition 2004 ´

(2)
(3)

Table des mati` eres

1 Introduction `a la cryptologie

— par Jacques Stern 5

1.1 Qu’est ce que la cryptologie ? . . . 5

1.2 Cryptographie conventionnelle . . . 7

1.3 M´ethodes statistiques de cryptanalyse . . . 10

1.4 Cryptographie `a cl´e publique . . . 11

1.5 Cryptographie et complexit´e . . . 13

2 Chiffrement par bloc et cryptanalyse diff´erentielle — par Louis Granboulan 17 2.1 Modes d’op´eration . . . 18

2.2 Principes de conception . . . 25

2.3 Etude th´´ eorique des sch´emas de Feistel . . . 29

2.4 Cryptanalyse diff´erentielle . . . 30

2.5 Variantes de la cryptanalyse diff´erentielle . . . 34

2.6 Autres techniques de cryptanalyse . . . 36

3 Vingt-cinq ans d’attaques de RSA — par Phong Nguyen 43 3.1 Le cryptosyst`eme RSA . . . 44

3.2 RSA et la factorisation d’entiers . . . 46

3.3 Attaques ´el´ementaires . . . 47

3.4 Attaques sur les impl´ementations du RSA . . . 50

3.5 Attaques simples du RSA `a petit exposant . . . 51

3.6 Attaques `a base de g´eom´etrie des nombres . . . 53

3. A L’algorithme LLL . . . 65

4 La s´ecurit´e prouv´ee en chiffrement asym´etrique — par David Pointcheval 71 4.1 La cryptographie asym´etrique . . . 72

4.2 Formalisation . . . 73

4.3 Les cryptosyst`emes RSA et Rabin . . . 78

4.4 Le probl`eme du logarithme discret . . . 80

4.5 Le cryptosyst`eme de El Gamal . . . 82

4.6 Les attaques `a chiffr´es choisis adaptatives . . . 84

5 Zero-knowledge et identification — par Jacques Stern 93 5.1 Motivation et exemple . . . 93

5.2 Approche formelle du ZK . . . 96

5.3 Preuves ZK d’identit´e . . . 98

(4)
(5)

Chapitre 1 (2h)

Introduction ` a la cryptologie

— par Jacques Stern

Sommaire

1.1 Qu’est ce que la cryptologie ? . . . 5

1.1.1 Quelques d´efinitions . . . 5

1.1.2 Quelques rep`eres historiques . . . 6

1.2 Cryptographie conventionnelle . . . 7

1.2.1 Chiffrement et d´echiffrement . . . 7

1.2.2 D´ecryptement . . . 7

1.2.3 Chiffrement par bloc . . . 8

1.2.4 Chiffrement par flot . . . 9

1.2.5 Int´egrit´e et authenticit´e . . . 9

1.3 M´ethodes statistiques de cryptanalyse . . . 10

1.3.1 Cryptanalyse du chiffrement de Vigen`ere . . . 10

1.3.2 Cryptanalyse du chiffrement de Geffe . . . 10

1.3.3 Tests d’hypoth`ese . . . 11

1.4 Cryptographie `a cl´e publique . . . 11

1.4.1 El´´ ements de th´eorie algorithmique des nombres . . . 11

1.4.2 RSA . . . 12

1.5 Cryptographie et complexit´e . . . 13

1.5.1 Machines de Turing polynomiales . . . 13

1.5.2 R´eduction et simulation . . . 14

1.1 Qu’est ce que la cryptologie ?

1.1.1 Quelques d´ efinitions

La cryptologie est la science des messages secrets. Longtemps restreinte aux usages diplomatiques et militaires, elle est maintenant une discipline scientifique `a part enti`ere, dont l’objet est l’´etude des m´ethodes permettant d’assurer les services d’int´egrit´e, d’authenticit´e et de confidentialit´e dans les syst`emes d’information et de communication.

Un service d’int´egrit´e garantit que le contenu d’une communication ou d’un fichier n’a pas ´et´e modifi´e. Par exemple, on peut souhaiter v´erifier qu’aucun changement du contenu

(6)

d’un disque dur n’a eu lieu : des produits commerciaux, mettant en jeu des m´ethodes cryptologiques, sont disponibles (voir notamment [12]) `a cet effet.

Un service d’authenticit´egarantit l’identit´e d’une entit´e donn´ee ou l’origine d’une com- munication ou d’un fichier. Lorsqu’il s’agit d’un fichier et que l’entit´e qui l’a cr´e´e est la seule

`

a avoir pu apporter la garantie d’authenticit´e, on parle de non-r´epudiation. Le service de non-r´epudiation est r´ealis´e par une signature num´erique. Une d´efinition pr´ecise sera donn´ee plus loin ; on se bornera ici `a constater que la loi du 20 mars 2000 [5] a fait passer ce concept dans la vie sociale.

Un service deconfidentialit´egarantit que le contenu d’une communication ou d’un fichier n’est pas accessible aux tiers. Des services de confidentialit´e sont offerts dans de nombreux contextes

– en t´el´ephonie mobile, pour prot´eger les communications dans la partie “a´erienne”;

– en t´el´evision `a p´eage pour r´eserver la r´eception des donn´ees aux abonn´es ;

– dans les navigateurs, par l’interm´ediaire du protocole SSL (Secure Socket Layer), dont l’activation est souvent indiqu´ee par un cadenas ferm´e repr´esent´e en bas de la fenˆetre.

La cryptologie se partage en deux sous-disciplines, ´egalement importantes : la crypto- graphiedont l’objet est de proposer des m´ethodes pour assurer les services d´efinis plus haut et la cryptanalysequi recherche des failles dans les m´ecanismes ainsi propos´es.

1.1.2 Quelques rep` eres historiques

L’ouvrage [10] distingue trois p´eriodes dans l’histoire de la cryptologie. L’ˆage artisanal part des origines : Jules C´esar utilisait, semble-t-il, un m´ecanisme de confidentialit´e rudi- mentaire, o`u chaque lettre d’un message ´etait remplac´ee par celle situ´ee trois positions plus loin dans l’alphabet. La m´ethode se g´en´eralise et prend le nom de substitution. Une autre m´ethode change l’ordre des lettres ; elle a ´et´e mise en œuvre au Moyen- ˆAge notamment par un dispositif appel´e “grille de Cardan”. De fa¸con g´en´erale, jusqu’au d´ebut du ving- ti`eme si`ecle, la cryptographie ´etait affaire de substitutions et de transpositions. On op´erait d’ailleurs fr´equemment des substitutions non seulement sur des lettres mais sur des mots, en s’aidant d’une sorte de dictionnaire `a double entr´ee, nomm´ecode our´epertoire. La cryp- tanalyse, quant `a elle, utilisait des m´ethodes statistiques simples, fond´ees principalement sur la fr´equence des lettres ou des suites de deux lettres (digrammes) dans un texte.

L’ˆage technique garde les substitutions et les permutations mais les met en œuvre `a l’aide de machines m´ecaniques ou ´electro-m´ecaniques. Les plus c´el`ebres sont la Hagelin et l’Enigma utilis´ee par l’arm´ee allemande durant la seconde guerre mondiale. La com- plexit´e des m´ethodes rendues ainsi accessibles ´etant plus grande, la cryptanalyse devient plus conceptuelle et a aussi recours `a des machines. Pour venir `a bout de l’Enigma, les Alli´es r´eunissent `a Bletchley Park un groupe de scientifiques, dont Alan Turing, inventeur des machines qui portent son nom (et que nous retrouverons plus loin). Turing parvient

`

a r´ealiser une spectaculaire cryptanalyse en la r´eduisant `a une recherche de cas suffisam- ment restreinte pour ˆetre men´ee par une machine sp´ecialement construite `a cet effet. C’est aussi Turing qui, dans le cadre d’une autre cryptanalyse ´egalement r´eussie, fit construire le Colossus, dot´e d’´electronique, et qui peut ˆetre consid´er´e comme l’un des ancˆetres de nos ordinateurs modernes.

L’ˆage paradoxal couvre les vingt-cinq derni`eres ann´ees. Il voit l’introduction de m´eca- nismes donnant des r´eponses positives `a des questions a priorihors d’atteinte :

– Comment assurer un service de confidentialit´e sans avoir au pr´ealable ´etabli une convention secr`ete commune ?

(7)

– Comment assurer un service d’authenticit´e — bas´e sur la possession d’un secret — sans r´ev´eler la moindre information sur le secret ?

La p´eriode r´ecente est ´egalement marqu´ee par le d´eveloppement d’une importante commu- naut´e de recherche. Cette communaut´e a largement transform´e l’image de la cryptologie : elle a apport´e une plus grande rigueur a la cryptographie en essayant de produire, autant que possible des preuves partielles de s´ecurit´e, de type math´ematique. Elle a ´egalement donn´e un statut nouveau `a la cryptanalyse, destin´ee maintenant `a valider les m´ethodes propos´ees par une approche syst´ematique, plutˆot qu’`a donner un avantage comp´etitif ou strat´egique.

1.2 Cryptographie conventionnelle

1.2.1 Chiffrement et d´ echiffrement

La cryptographie conventionnelle est principalement li´ee aux services de confidentialit´e.

Elle r´ealise sur les donn´ees m une transformation c = Ek(m), par l’interm´ediaire d’un algorithme de chiffrement E. Cet algorithme prend en entr´ee le message clair m et un param`etre secret k, qu’on appelle la cl´e. Le messagem varie dans un ensembleM et la cl´e kdans un ensemble K. La restauration du texte clair `a partir du chiffr´e ou cryptogramme cse fait par un algorithme ded´echiffrement Dk, prenant en entr´ee le chiffr´e et la mˆeme cl´e.

On doit avoir Dk(Ek(m)) = m. En g´en´eral, le chiffr´e prend sa valeur dans le mˆeme espace M et l’on a aussi Ek(Dk(c)) = c, c’est `a dire que les algorithmes Ek et Dk r´ealisent une permutation deM.

La distinction entre l’algorithme et la cl´e s’est ´etablie il y a fort longtemps, notamment dans les travaux du cryptologue Auguste Kerckhoffs [4]. Ce dernier a en effet su reconnaˆıtre que l’algorithme de chiffrement n’exigeait pas le secret, dans la mesure o`u il risquait de toutes fa¸cons de passer aux mains de l’ennemi. La cryptologie moderne recommande mˆeme des m´ethodes de chiffrement totalement explicites, de mani`ere `a ce qu’elles soient ´evalu´ees et valid´ees par un d´ebat ouvert entre experts. Du coup, une convention secr`ete entre entit´es qui souhaitent communiquer de fa¸con chiffr´ee, se limite `a l’´echange d’une cl´e k.

1.2.2 D´ ecryptement

L’op´eration qui consiste `a calculer le clair m `a partir du chiffr´e c = Ek(m), mais sans la connaissance de la cl´ek est appel´ee d´ecryptement. La confidentialit´e est assur´ee si cette op´eration est impossible. On distingue divers sc´enarios possibles d’attaque

– les attaques `a chiffr´e seul, o`u l’adversaire dispose d’un certain nombre de chiffr´es Ek(mi) ;

– les attaques `a clair connu, o`u l’adversaire dispose d’un certain nombre de chiffr´es Ek(mi) et des clairs correspondants mi;

– les attaques `a clair choisi, o`u l’adversaire dispose d’un certain nombre de chiffr´es Ek(mi) correspondant `a des clairs de son choix mi; si de plus chaque message mi est d´efini en fonction des chiffr´es obtenus ant´erieurement, on parle d’attaque `a clair choisi adaptative.

Le lecteur pourra d´efinir d’autres variantes, comme l’attaque `a chiffr´e choisi. Le but de l’attaque est la d´ecouverte de la cl´e ou le d´ecryptement d’un chiffr´e c, correspondant `a un clair dont on ne dispose pas. Les attaques `a chiffr´e seul sont les plus difficiles. N´eanmoins, l’adversaire dispose en g´en´eral d’informations statistiques sur le clair. En d’autres termes,

(8)

les messages sont cr´e´es en suivant une probabilit´e qui correspond `a une distribution sur M, appel´ee distribution a priori. L’interception d’un (ou plusieurs) chiffr´es a pour effet de conditionner cette distribution, produisant une distribution a posteriori : par exemple si l’on sait qu’un message chiffr´e provient d’une distribution ´equiprobable sur les mots “tas”,

“sas”, “mur” et si le chiffrement est une substitution de lettres, alors l’interception du chiffr´e XUV ´elimine “sas”. On dit qu’un chiffrement est parfait si les deux distributions co¨ıncident.

Le th´eor`eme de Shannon ´enonce que l’espace des cl´es K est alors de taille au moins ´egale

`

a l’espace des messages. Il existe d’ailleurs un m´ecanisme appel´e chiffrement de Vernam ouone-time pad, qui assure un tel niveau de s´ecurit´e : il consiste `a chiffrer un message de b bits mi `a l’aide d’un cl´e k de b bits ´egalement, le chiffr´e ´etant le “ou exclusif bit-`a-bit”

d´efini par ci =mi ⊕ki. Pour autant qu’on g´en`ere la cl´e al´eatoirement et qu’on ne l’utilise qu’une fois, cette m´ethode de chiffrement offre une s´ecurit´e absolue, qu’on nomme aussi inconditionnelle.

En g´en´eral, on ne peut utiliser un chiffrement de Vernam et on conserve une mˆeme cl´e k pour chiffrer un certain nombre de messages. La connaissance d’un petit nombre de chiffr´es produit alors une distribution conditionnelle qui d´efinit la cl´e de mani`ere unique.

Pour le comprendre, il suffit d’imaginer qu’un algorithme de chiffrement op`ere sur des mots de huit octets mais qu’on a intercept´e quelques chiffr´es correspondant `a des suites de huit caract`eres ASCII 7 bits. Pour chaque cl´eket pour chaque chiffr´e intercept´ec, la probabilit´e queDk(c) soit un message bien form´e est environ 1/2000. Ce chiffre provient, par un calcul simple, du pourcentage dans chaque octet des caract`eres ASCII, lequel est de 38.6 %. Si donc on exploite 10 chiffr´es l’espace des cl´es compatibles avec ces chiffr´es est r´eduit d’un facteur environ 2−110. Mˆeme pour des cl´es de 128 bits, on n’a plus que quelques solutions et on tombe rapidement `a une seule solution avec quelques chiffr´es suppl´ementaires. De fait la s´ecurit´e devient algorithmique : on ne peut que demander que, compte tenu de la puissance de calcul dont il dispose, l’adversaire ne puisse d´eterminer l’unique valeur de la cl´e. A cet ´egard, il existe toujours une m´ethode permettant de retrouver la cl´e `a partir de quelques couples clair/chiffr´e, (mi, ci), en nombre suffisant pour assurer l’unicit´e. Elle consiste `a explorer l’espace des cl´es et `a tester pour chaque cl´e siEk(m1) =c1. Si le test est positif, on effectue le teste analogue sur m2 et ainsi de suite. On s’arrˆete quand la cl´e a ´et´e trouv´ee. En moyenne, on parcourt la moiti´e de l’espace des cl´esK.

1.2.3 Chiffrement par bloc

Dans les algorithmes de chiffrement par bloc, l’espace des messages est de la forme {0,1}b. Autrement dit le clair (comme le chiffr´e) est une suite de b bits. Des messages de taille sup´erieure `a b sont chiffr´es en les compl´etant `a un multiple de b bits, par une r`egle de formatage convenue et en chiffrant bloc par bloc. Il existe plusieurs modes d’op´eration.

Le mode ECB (electronic code book) chiffre successivement chaque bloc. Le mode CBC (cipher block chaining), fait le “ou exclusif” de chaque bloc avec le chiffr´e pr´ec´edent avant d’appliquer l’algorithme de chiffrement, soit ci = Ek(ci−1 ⊕ mi). On peut convenir que, pour chiffrer le premier blocm1, on prendc0 nul ou ajouter un vecteur d’initialisation IV, transmis en clair, et poser c0 =IV. Le d´echiffrement calculemi par ci−1⊕Dk(ci).

Le plus connu des algorithmes de chiffrement est le DES (voir [8, 6, 11]). Il op`ere sur des blocs de 64 bits avec des cl´es de 56 bits. Il est essentiellement compos´e d’une suite de 16 tours identiques, chaque tour r´ealisant une transformation de Feistel. Une telle transformation g´en`ere une permutation sur 2nbits `a partir d’une fonctionf d´ependant d’une cl´eket dont les entr´ees sont sur n bits. Les 2n bits sont s´epar´es en deux blocs de n bits L et R et on

(9)

pose L0 = R, R0 = L⊕fk(R). Cette fonction est inversible. Les cl´es de tour sont form´es de 48 bits extraits de la cl´e du DES par une m´ethode qui d´epend du tour consid´er´e. Une description plus pr´ecise du DES sera fournie ult´erieurement. On consid`ere aujourd’hui le DES comme obsol`ete, principalement `a cause de la taille trop r´eduite de la cl´e. On utilise souvent le triple DES avec deux cl´es (k1,k2), la fonction de chiffrement ´etant d´eriv´ee de celle du DES par la formule Ek1(Dk2(Ek1(m))). En prenantk1 =k2, on retrouve le DES.

Le successeur officiel du DES est l’AES [1], choisi apr`es une comp´etition ouverte aux

´equipes de recherche industrielles et acad´emiques. C’est un algorithme de chiffrement par blocs dont les blocs ont 128 bits et les cl´es ont 128, 192 ou 256 bits. L’AES est une suite dertours, chacun r´ealisant une suite de permutations et de substitutions d´ependant d’une cl´e de tour et op´erant sur une matrice 4×4 d’octets. La valeur der est fix´ee `a 10 pour les cl´es de 128 bits, `a 12 pour des cl´es de 192 bits et `a 14 pour des cl´es de 256 bits.

1.2.4 Chiffrement par flot

Dans les algorithmes de chiffrement parflot, une suite d’octets ou de bits ri est produite

`

a partir de la cl´e. Cette suite est combin´ee aux octets ou aux bits du clair mi pour donner les octets ou les bits du chiffr´eci, suivant la formule ci =mi ⊕ri.

RC4 est un algorithme de chiffrement par flot, utilis´e notamment dans le protocole SSL de Netscape. C’est la propri´et´e de la soci´et´e RSA Data Security Inc. mais les versions publi´ees, par exemple dans [8], n’ont pas ´et´e d´ementies. A partir de la cl´e de longueur variable, par exemple 128 bits, un tableauS de 256 octets est initialis´e et deux compteurs i etj mis `a z´ero. Pour g´en´erer un nouvel octet al´eatoire, on applique les op´erations suivantes

i= (i+ 1) mod 256 j =j+S[i] mod 256

´echangerS[i] et S[j]

t=S[i] +S[j] mod 256 retourner S[t]

Une m´ethode extrˆemement efficace pour produire une suite de bits utilisable pour un chiffrement par flot, notamment dans les environnements mat´eriels se fonde sur les registres

`

a d´ecalages. Ces dispositifs ont L registres, num´erot´es de 0 `a L−1, chacun contenant un bit d’´etat interne. A chaque coup d’horloge, le contenu du registre num´erot´e 0 est retourn´e, le contenu si du i-i`eme registre (i ≥1) avance dans le i−1-i`eme. Le dernier registre sL−1

re¸coit une valeur calcul´ee par une fonction de r´etroactionf d´ependant desL−1,· · ·s0, not´ee f(sL−1,· · ·s0). Il est clair que si le contenu initial des registres est [sL−1,· · ·, s0], le bit sj produit au j-i`eme coup d’horloge est donn´e, pour j ≥L, par la relation de r´ecurrence

sj =f(sj−1, sj−2,· · ·, sj−L)

Lorsque f est lin´eaire on parle de registre `a d´ecalages lin´eaire (LFSR, linear feedback shift register).

1.2.5 Int´ egrit´ e et authenticit´ e

Le service d’int´egrit´e est assur´e par un algorithme qu’on peut qualifier de conventionnel mˆeme si les d´efinitions qui suivent sont r´ecentes. Unefonction de hachage cryptographiqueH calcule un condens´e de taille fixe `a partir d’un message form´e d’une suite de bits quelconque.

On requiert qu’il soit pratiquement impossible `a un adversaire de calculer des collisions,

(10)

c’est `a dire de produire des messages m et m0 diff´erentes mais tels que H(m) = H(m0).

Cette propri´et´e empˆeche la substitution d’un message `a un autre, si le condens´e est conserv´e s´epar´ement. La fonction de hachage la plus r´epandue est la norme SHA-1. Elle produit des condens´es de 20 octets.

Les m´ethodes conventionnelles assurent des services d’authenticit´e, mais ne garantissent pas la non-r´epudiation, puisque les cl´es secr`etes sont partag´ees. Pour authentifier un mes- sage, sans le chiffrer, on peut calculer et transmettre le dernier chiffr´e dans un chiffrement CBC du message, voire une partie de ce chiffr´e. Le nom traditionnel de cette m´ethode est CBC-MAC, le mot MAC ´etant l’acronyme de Message Authentication Code.

1.3 M´ ethodes statistiques de cryptanalyse

On va donner ici quelques exemples d’utilisation des probabilit´es et statistiques en cryp- tanalyse. Ces exemples seront compl´et´es dans la suite du cours. On verra ´egalement dans la suite du cours que la cryptologie de l’ˆage paradoxal s’est enrichie de m´ethodes de cryp- tanalyse plus alg´ebriques.

1.3.1 Cryptanalyse du chiffrement de Vigen` ere

Pour mesurer la distance entre deux distributions de probabilit´esD1 etD2 sur un mˆeme espace de probabilit´e fini, on peut utiliser leur distance, d´efinie par

X

x

|pr1(x)−pr2(x)|

o`u x d´ecrit l’espace et pri d´esigne la probabilit´e relative `a Di. On peut aussi utiliser leur distance euclidienne

(X

x

|pr1(x)−pr2(x)|2)1/2

Le carr´e de la distance euclidienne de la distribution des lettres dans une langue donn´ee `a la distribution uniforme est un invariantκ qui vaut 0.0393 en fran¸cais et 0.0282 en anglais.

Consid´erons un algorithme qui effectue sur un texte d’une des langues une suite p´eriodique de transformations, chacune r´ealisant une substitution fixe de lettres, les substitutions ´etant choisies ind´ependemment les unes des autres. Un tel algorithme est appel´e chiffrement de Vigen`ere et sa p´eriodetest suppos´ee inconnue. La probabilit´e que deux occurrences de deux lettres du cryptogramme co¨ıncident est de Pn

i=1p2i, lorsque les occurrences sont `a distance multiple de t et 1/n autrement. Dans ce qui pr´ec`ede, pi d´esigne la probabilit´e d’apparition (dans le clair) de lai-`eme lettre et n le nombre de lettres. La diff´erence est exactement κet on peut ainsi retrouver la valeur secr`ete de t en calculant pour t = 1,2, . . ., la probabilit´e queci =ct+1 dans le texte chiffr´e. Un pic apparaˆıt pour la bonne valeur de t.

1.3.2 Cryptanalyse du chiffrement de Geffe

L’algorithme de Geffe est un algorithme de chiffrement par flot qui combine les sorties de trois LFSR, soitxj,yj,zj par la fonction bool´eenne (multiplexeur)zjxj⊕(1⊕zj)yj. A priori, la cl´e secr`ete du g´en´erateur se compose du contenu initial des trois LFSR. Toutefois, on observe que laj-`eme sortie du g´en´erateur de Geffe vaut xj avec probabilit´e 3/4. Supposons maintenant que le texte clair soit une suite de caract`eres ASCII 7 bits. Alors, en extrayant le

(11)

bit de chaque octet dont le clair vaut z´ero, on obtient une suite de bits ´egaux avec probabilit´e 3/4 au bit correspondant de xj. On peut donc tester chaque ´etat initial du premier LFSR, calculer la suite xj correspondante et ´evaluer la fr´equence de co¨ıncidence avec xj des bits de chiffr´e correspondant `a un clair nul. L’´etat initial correct conduit `a un r´esultat proche de 3/4 ; les autres `a une valeur proche de 1/2.

1.3.3 Tests d’hypoth` ese

Dans l’exemple qui pr´ec`ede, on a fait un certain nombre d’hypoth`eses successives (sur la configuration initiale du premier LFSR) et on les a test´ees par un algorithme ´evaluant la fr´equence d’un certain ´ev´enement. Si cette fr´equence est proche de 3/4 — disons sup´erieure

`

aα >1/2 — on a valid´e l’hypoth`ese, sinon on l’a infirm´ee. Il peut toutefois arriver 1. qu’on rejette une hypoth`ese correcte (erreur) ;

2. qu’on accepte une hypoth`ese incorrecte (fausse alerte).

On peut estimer le niveau de confiance c’est `a dire la probabilit´e que l’une ou l’autre situation se produise. On se restreint `a la premi`ere et on consid`ere que l’´ev´enement que l’on observe est la fr´equence des succ`es dans n tirages de Bernoulli ind´ependants de param`etre p= 3/4. On note σ la variance de cette distribution σ = √

pq, o`u q = 1−p. Le th´eor`eme central limite affirme que, si Sn d´esigne le nombre de succ`es observ´es en n tirages, on a :

Pr

Sn−np σ√

n < β

−→ N(β) o`u N(x) est la loi normale

N(β) = 1

√2π Z x

−∞

ey

2 2 dy

On pourra finalement estimer la probabilit´e d’erreur en fonction du seuil choisi α et de l’´echantillon disponiblenparN((α−p)

n

σ ). Pour que cette probabilit´e ne soit pas trop grande, il faut que√

n exc`ede assez significativement l’inverse de la diff´erence |α−p|.

1.4 Cryptographie ` a cl´ e publique

1.4.1 El´ ´ ements de th´ eorie algorithmique des nombres

On rappelle qu’un entier positifn s’´ecrit de mani`ere unique comme produit de facteurs premiers n=Q

i∈Ipeii, o`uI est l’ensemble des indices des nombres premiers qui divisentn.

En quotientantZ par la relationx=y modn, qui exprime quex−yest divisible par n, on obtient l’anneauZn. On peut choisir de d´ecrire cet anneau en associant `a chaque ´el´ement x deZ l’unique repr´esentant xmodn de sa classe d’´equivalence qui soit positif et strictement plus petit que n. Le th´eor`eme des restes chinois ´enonce que l’application

x∈Zn 7−→(xi modpeii)i∈I

est un isomorphisme. Les ´el´ements deZn qui ont un inverse multiplicatif forment un groupe not´e Z?n. Ce groupe est isomorphe au produit :

Y

i∈I

Z?pei

i

(12)

Un ´el´ement x deZn est dans Z?n si et seulement son pgcd avec n est ´egal `a 1. L’algorithme d’Euclide ´etendu permet alors de calculer les coefficients de B´ezoutaetbtels queax+bn= 1 et donc d’obtenir l’inverse a de x modulo n. Le nombre d’´el´ements de Zn est not´eϕ(n) et la fonctionϕ ainsi d´efinie prend le nom d’indicatrice d’Euler. On a alors, pour tout ´el´ement xde Z?n :

xϕ(n)= 1 modn L’isomorphisme mis en ´evidence ci-dessus entraˆıne l’´egalit´e

ϕ(n) =Y

i∈I

ϕ(peii)

et, en comptant le nombre d’´el´ements premiers `apeii, on obtient ϕ(peii) = (p−1)pei−1. Soit p un nombre premier, alors ϕ(p) = p− 1 et donc Zp est un corps commutatif.

L’´egalit´e xp−1 = 1 modp est le “petit” th´eor`eme de Fermat. Pour x 6= 0, on pose xp

= xp−12 modp. Cette quantit´e prend le nom desymbole de Legendre. Elle vaut 1 ou −1 selon quexest ou non un carr´e. Quandn n’est pas premier, on peut d´efinir le symbole de Jacobi, not´e ´egalement xn

, en posant

x n

=Y

i∈I

x pi

ei

Le symbole de Legendre est facilement calcul´e en utilisant l’algorithme d’exponentiation modulaire qui prend en entr´ee trois entiers positifs x, e, n et retourne xe modn comme suit :

a= 1 ;

pour i=k−1 jusqu’`a 0 par pas de −1 a=a∗amodn

si ei 6= 0 a=a∗xmodn retourner a

Dans le pseudo-code ci-dessus, k est une constante repr´esentant le nombre de bits de e et ei d´esigne une fonction qui extrait le i-`eme bit de e (comme en C, e & (1 i)). Le symbole de Jacobi est calcul´e en utilisant d’une part la loi de r´eciprocit´e quadratique de Gauss, qui

´enonce l’identit´e

m n

n m

= (−1)(n−1)(m−1)4 et d’autre part l’´egalit´e

2 n

= (−1)n

2−1 8

1.4.2 RSA

Il est facile de produire des nombres premiers p : une m´ethode pratique repose sur le test probabiliste de Rabin. Ce test choisit au hasard un entier x, 0 < x < n, et calcule xn−1 modn par la m´ethode rappel´ee ci-dessus. On conclut quen n’est pas premier dans les deux cas suivants

1. si le r´esultat final est6= 1 (le petit th´eor`eme de Fermat est contredit) ;

(13)

2. si la variable a prend successivement une valeur 6= ±1 et la valeur 1 (la premi`ere de ces valeurs est une racine carr´ee de l’unit´e 6=±1 et Z?n n’est pas un corps).

On r´ep`ete le test de base un nombre prescrit de fois et on d´eclare premier un nombre pour lequel on n’a pas conclu qu’il ne l’´etait pas. On d´emontre que la probabilit´e d’erreur du test est exponentiellement petite en fonction du nombre de r´ep´etitions.

Il est en revanche difficile de calculer la d´ecomposition en facteurs d’un entier. On appelle entier RSA un produit de deux facteurs premiers de mˆeme taille n =pq. Pour de tels nombres, le record de factorisation est `a 512 bits (154 chiffres d´ecimaux), au prix de l’utilisation de plusieurs centaines de machines pendant plusieurs mois.

Soit n un entier RSA et e un entier premier `a ϕ(n). Soit d l’inverse de e modulo ϕ(n).

On a :

(xe modn)dmodn= (xdmodn)emodn=xed modn=xmodn

On remarque de plus que, si n et e sont donn´es, p et q ne sont pas facilement accessibles, ni non plusd. On a donc une situation analogue `a celle d’un algorithme de chiffrement et d’un algorithme de d´echiffrement conventionnels : la fonction x 7→ xemodn joue le rˆole de l’algorithme de chiffrement et la fonction x 7→ xdmodn joue le rˆole de l’algorithme de d´echiffrement. Toutefois, ces algorithmes prennent en entr´ee des cl´es distinctes, e pour le premier, d pour le second et la connaissance de e ne permet pas de d´eduire d. On a ainsi pouss´e `a l’extrˆeme le principe de Kerckhoffs : mˆeme la cl´e de chiffrement peut passer sans inconv´enient aux mains de l’ennemi. Cette possibilit´e a ´et´e d´ecouverte par Diffie et Hellman dans [3] et le syst`eme RSA a ´et´e ensuite propos´e par Rivest, Shamir et Adleman dans [7].

Le couplepk= (n, e) prend le nom de cl´e publique et permet le chiffrement, l’entier sk=d est la cl´e priv´ee, qui autorise le d´echiffrement. On note que la connaissance de sk permet de r´esoudre l’´equation

Xe =bmodn

o`u b est une constante arbitraire, c’est `a dire d’extraire des racines e-i`emes arbitraires.

L’´equation est publique et une solution est publiquement v´erifiable. Le RSA permet donc d’offrir le service de non-r´epudiation, hors d’atteinte de la cryptologie conventionnelle.

1.5 Cryptographie et complexit´ e

1.5.1 Machines de Turing polynomiales

Pour l’´evaluation des algorithmes, notre mod`ele de calcul est la machine de Turing `a plusieurs rubans (voir par exemple [9]). La machine peut retourner un bit ou calculer une fonction dont le r´esultat est sauvegard´e sur un ruban particulier. Le temps de calcul est le nombre de pas de calculs avant arrˆet de la machine. Sauf exception, ce temps de calcul sera toujours polynomial, c’est `a dire born´e par un polynˆome en fonction de la taille des donn´ees. Cette taille des donn´ees prend en cryptographie le nom deparam`etre de s´ecurit´e : typiquement, c’est la taille de l’entier RSAn de la section pr´ec´edente.

Un pr´edicat polynomial est une relation R(x, y) qui peut ˆetre test´ee par une machine de Turing polynomiale (en fonction du param`etre de s´ecurit´e). On requiert de plus que les tailles de x et y restent polynomiales (toujours en fonction du param`etre de s´ecurit´e). Un probl`eme de la classe NP consiste, sur une donn´eex, en la recherche d’un ´el´ement ytel que R(x, y), o`u R est un pr´edicat polynomial.

Il existe pas mal de variantes de la machine de Turing, dont la cryptologie fait usage — au moins dans sa partie la plus th´eorique. Une machine de Turing polynomiale probabiliste

(14)

dispose d’un ruban sp´ecifique dit ruban d’al´ea, contenant une suite de bits Ω de taille assez longue pour qu’on n’en manque pas. C’est donc une machine normale, `a cela pr`es que les diff´erentes configurations initiales du ruban d’al´ea peuvent s’interpr´eter comme un espace de probabilit´e, muni de la distribution uniforme. Les configurations successives de la machine deviennent des variables al´eatoires, de mˆeme par exemple que le r´esultat du calcul. Si la machine retourne un bit, on peut ainsi calculer la probabilit´e que ce bit soit `a un.

Une machine `a oracle permet le recours `a un sous programme sur lequel on ne fait pas d’hypoth`ese de complexit´e. Elle dispose d’un ruban particulier, dit ruban d’oracle.

Lorsque son programme l’indique, elle peut soumettre le contenu du ruban d’oracle et l’oracle retourne la fonction qu’il a la charge de calculer (en un pas de calcul). Cette notion permet en particulier de comparer les probl`emes algorithmiques : une r´eduction polynomiale d’un probl`eme `a un autre est une machine polynomiale `a oracle qui r´esout le premier probl`eme `a l’aide d’un oracle pour le second. Un probl`eme est NP-complet si tout autre probl`eme NP s’y r´eduit. Les cognoscenti feront remarquer que ce n’est pas l`a la d´efinition classique et qu’on a substitu´e la r´eduction de Cook `a celle de Karp : pour cette derni`ere, il y a un unique appel `a l’oracle qui fournit le r´esultat final du calcul.

Un type particulier d’oracle est l’oracle al´eatoire (voir [2]) : il retourne sur chaque ques- tion une r´eponse al´eatoire. On requiert seulement qu’il soit consistant, en ce sens qu’il doit donner des r´eponses identiques `a des questions ´egales. L’oracle al´eatoire est un mod`ele imparfait de fonctions dont le comportement est g´en´erique, par exemple les fonctions de ha- chage. Math´ematiquement, il n’y a plus d’oracle : on peut simplement consid´erer une pile polynomiale des r´eponses successives aux diff´erentes questions, munie d’une distribution uniforme, comme un ruban d’al´ea.

Enfin, une machine de Turing polynomiale probabiliste peut ˆetre munie de rubans d’in- teraction. Ces rubans permettent de mod´eliser les communications entre machines. Les messages re¸cus d’une autre machine sont plac´es dans un ruban de r´eception, ceux `a desti- nation d’une machine distante sont sauvegard´es dans un ruban d’envoi. On note MTTPI le mod`ele de machine interactive obtenu.

1.5.2 R´ eduction et simulation

Dans l’approche algorithmique de la cryptologie, les algorithmes cryptographiques sont ex´ecut´es par des MTPPI. Les adversaires sont ´egalement des MTTPI et les divers sc´enarios de cryptanalyse pr´ecisent les ressources dont ils disposent. Par exemple une attaque “`a chiffr´e choisi” autorise l’adversaire `a interagir avec une machine qui ex´ecute l’algorithme de d´echiffrement. La m´ethode fondamentale est de prouver l’existence d’une r´eduction : en utilisant l’adversaire comme oracle, on parvient `a r´esoudre un probl`eme d´etermin´e r´eput´e difficile, comme la factorisation des entiers. En l’absence de r´eponse `a la question ouverte P =N P, on ne peut de toutes fa¸cons pas faire mieux. Une tendance r´ecente vise toutefois

`

a quantifier la s´ecurit´e, c’est `a dire `a proposer des r´eductions “efficaces” : le temps de calcul de la r´eduction et sa probabilit´e de succ`es doivent alors ˆetre optimis´es.

La cryptologie “th´eorique” mod´elise ´egalement la protection du secret : l’ex´ecution des algorithmes cryptographiques par des MTTPI produit une trace visible pour l’adversaire : ce dernier peut en effet

– intercepter les communications : on parle d’adversaire passif;

– interagir avec les machines ex´ecutant les algorithmes : on parle d’adversaire actif.

L’information recueillie est la vue de l’adversaire, qui peut ensuite mettre en œuvre les m´ethodes statistiques, telles que celles de la section 1.3. Bien entendu la vue de l’adversaire

(15)

d´epend de divers secrets, comme par exemple une cl´e priv´eesk d’un algorithme RSA. Pour garantir queskreste `a l’abri des attaques statistiques, on utilise la notion de simulation, qui est en somme la version algorithmique de la s´ecurit´e `a la Shannon. Un simulateur est une MTTP qui produit une vue simul´ee, sans acc´eder `a sk. On souhaite montrer que les deux vues sont essentiellement identiques ; pour cela on les consid`ere comme des distributions de probabilit´e sur l’ensemble des vues possibles.

1. si ces distributions sont identiques, on parle de simulation parfaite ;

2. si ces distribution ont une distance n´egligeable on parle de simulation statistique ; 3. si aucun test probabiliste ne distingue les deux distributions de fa¸con non n´egligeable,

on parle de simulation algorithmique.

Dans ce qui pr´ec`ede le mot n´egligeable peut faire r´ef´erence `a des ´evaluations concr`etes ou

`

a une estimation asymptotique : est n´egligeable une quantit´e qui d´ecroˆıt exponentiellement avec le param`etre de s´ecurit´e, ou plus vite que l’inverse de tout polynˆome. Un test statistique retourne z´ero ou 1. Sa probabilit´e de succ`es est la probabilit´e d’obtenir 1. On distingue deux distributions en calculant la diff´erence des deux probabilit´es de succ`es.

(16)

Bibliographie

[1] AES Advanced Encryption Standard, http://csrc.nist.gov/encryption/aes/

[2] M. Bellare & P. Rogaway. Random Oracles Are Practical : a Paradigm for Designing Efficient Protocols. InProc. of the 1st CCS, pages 62–73. ACM Press, New York, 1993.

[3] W. Diffie & M. E. Hellman. New Directions in Cryptography, IEEE Trans. Inform.

Theory, IT-22, 1976, 644–654.

[4] A. Kerckhoffs. La cryptographie militaire, Paris, 1883.

[5] LOI no 2000-230 du 13 mars 2000 portant adaptation du droit de la preuve aux tech- nologies de l’information et relative `a la signature ´electronique

http://www.adminet.com/jo/20000314/

[6] A.J. Menezes, P.C. van Oorschot & S.A. Vanstone. Handbook of applied cryptography, CRC Press, new York, 1997.

[7] R. Rivest, A. Shamir & L. Adleman. A Method for Obtaining Digital Signatures and Public Key Cryptosystems. Communications of the ACM, 21(2) :120–126, February 1978.

[8] B. Schneier, Applied Cryptography, 2nd ed., John Wiley & Sons, New York, (1995).

[9] J. Stern. Fondements math´ematiques de l’informatique, Mac Graw Hill, Paris (1990).

[10] J. Stern.La science du secret, ´Editions Odile Jacob, Paris, (1998).

[11] D. Stinson.Cryptographie, th´eorie et pratique, Thomson Publishing France, Paris, 1996.

[12] Tripwire Inc.Tripwire, 2001, http://www.tripwire.com/

(17)

Chapitre 2 (6h)

Chiffrement par bloc et cryptanalyse diff´ erentielle

— par Louis Granboulan

Sommaire

2.1 Modes d’op´eration . . . 18

2.1.1 Modes d’op´eration d’un syst`eme de chiffrement par bloc . . . 18

2.1.2 Modes classiques . . . 19

2.1.3 Modes de flot . . . 21

2.1.4 Int´egrit´e . . . 24

2.2 Principes de conception . . . 25

2.2.1 Mod`ele de s´ecurit´e . . . 25

2.2.2 Chiffrement it´eratif et diversification de clef . . . 26

2.2.3 Confusion et diffusion . . . 26

2.2.4 Quelques exemples . . . 26

2.2.5 R´eseaux `a base de boˆıtes de substitution . . . 27

2.2.6 R´eseaux de type Feistel . . . 28

2.2.7 Autres constructions . . . 28

2.3 Etude th´´ eorique des sch´emas de Feistel . . . 29

2.3.1 Attaques utilisant un distingueur . . . 29

2.3.2 Attaques g´en´eriques . . . 29

2.3.3 Preuves de s´ecurit´e . . . 30

2.4 Cryptanalyse diff´erentielle . . . 30

2.4.1 Description de l’attaque . . . 30

2.4.2 Mise en œuvre . . . 32

2.4.3 R´esistance prouv´ee . . . 34

2.5 Variantes de la cryptanalyse diff´erentielle . . . 34

2.5.1 Diff´erentielles tronqu´ees . . . 35

2.5.2 Diff´erentielles impossibles . . . 35

2.5.3 Diff´erentielles d’ordre sup´erieur . . . 35

2.5.4 Boomerang . . . 35

2.6 Autres techniques de cryptanalyse . . . 36

2.6.1 Cryptanalyse lin´eaire . . . 36

(18)

2.6.2 Attaque par interpolation . . . 36 2.6.3 Attaque par r´esolutions de syst`eme d’´equations alg´ebriques . . . 36 2.6.4 Attaque par d´ecalage . . . 36 2.6.5 Attaque par saturation . . . 37

Ce chapitre se d´ecompose en deux ensembles, de trois sections chacun. Les trois premi`eres sections pr´esentent les grands principes de conception des syst`emes de chiffrement par bloc, sans r´eellement ´etudier leur s´ecurit´e pratique. Les suivantes pr´esentent les techniques de cryptanalyse qui permettent d’en ´evaluer la s´ecurit´e, en particulier la cryptanalyse diff´erentielle, qui illustre les difficult´es d’analyse des cryptosyst`emes sym´etriques.

2.1 Modes d’op´ eration

2.1.1 Modes d’op´ eration d’un syst` eme de chiffrement par bloc

L’objectif est d’avoir un service de confidentialit´e Alice veut transmettre `a Bob un ou plusieurs messages, par un canal peu sˆur. Alice et Bob se sont auparavant mis d’accord sur une convention publique (choix d’un syst`eme de chiffrement par bloc et d’un mode d’op´eration), et sur une donn´ee secr`ete (la clef). Un adversaire (`Eve) peut ´ecouter les communications (attaques passives), et ´eventuellement les modifier (attaques actives).

D´efinition 2.1 (Syst`eme de chiffrement par bloc) Les entiers b et k sont respective- ment la taille (en bits) d’un bloc et celle de la clef. Un syst`eme de chiffrement par bloc est une paire de fonctions E et D associant `a toute clef k de K ={0,1}k une permutation Ek de l’espace des blocs {0,1}b, et la permutation inverse Dk.

D´efinition 2.2 (Mode d’op´eration) On appelle mode d’op´eration d’un syst`eme de chif- frement par bloc une technique qui permet, avec une unique clef k, de chiffrer ou d´echiffrer un message dont la longueur n’est pas n´ecessairement b, au moyen d’un certain nombre d’appels de la fonction Ek ou Dk.

Certains syst`emes de chiffrement par bloc autorisent plusieurs tailles de bloc, mais ce n’est pas la mˆeme chose que l’utilisation d’un mode de chiffrement. En particulier, le temps de chiffrement de tels syst`emes subit un accroissement non lin´eaire en la taille du bloc. De plus, les contraintes de s´ecurit´e et leur analyse d´ependent fortement de b. Il ne faut donc pas consid´erer que cette souplesse dans le choix de la taille du bloc est une souplesse pour la taille des messages chiffr´es, mais plutˆot un choix de s´ecurit´e.

Toute implantation d’un syst`eme de chiffrement par bloc doit donc choisir un mode d’op´eration. Quatre modes (ECB, CBC, CFB et OFB) ont ´et´e normalis´es en 1980 par le NIST (anciennement NBS : National Bureau of Standards, organisme am´ericain de norma- lisation). De nombreux autres modes ont ´et´e propos´es dans divers contextes, et le NIST a commenc´e en 2001 une nouvelle s´election [31].

Propri´et´es. Bien ´evidemment, tout mode d’op´eration doit permettre de d´echiffrer. La description d’un mode d’op´eration explique donc comment partir d’un message m de lon- gueur quelconque pour obtenir un chiffr´e c, et comment `a partir de ce chiffr´e c obtenir le message m. La seule information dont le secret doit garantir la confidentialit´e de m, connaissant c, est la clef k.

(19)

Un mode d’op´eration est sans expansion si le nombre de bits du chiffr´ecest exactement

´egal au nombre de bits du message m. Le mode d’op´eration peut ´eventuellement d´ependre d’unevaleur d’initialisationpublique et convenue `a l’avance entre Alice et Bob. Cette valeur doit pouvoir ˆetre choisie par l’attaquant sans que cela n’affaiblisse le syst`eme. 1

L’op´eration de d´echiffrement est d´eterministe : son r´esultat est le message clair, ou bien une erreur si le message chiffr´e ne correspond `a aucun clair. Un mode d’op´erationgarantit l’int´egrit´e si une modification de c par l’attaquant est d´etect´ee au moment de d´echiffrer.

C’est une protection n´ecessaire contre les attaques actives.

Remarquons qu’un mode d’op´eration garantissant l’int´egrit´e avec probabilit´e d’erreur au plus 2−l a une expansion d’au moins l bits. En effet, pour tout mode d’op´eration ayant une expansion delbits, un attaquant peut remplacer le chiffr´e par une valeur al´eatoire, qui est un chiffr´e valide avec probabilit´e au moins 2−l.

R´einitialisation. Dans un grand nombre d’applications, on veut pouvoir chiffrer plusieurs messages avec la mˆeme clef secr`ete, de mani`ere asynchrone. On utilise alors souvent une valeur IV (Initialisation Value), publique, diff´erente pour chaque message. Lorsqu’on veut ˆetre prot´eg´e contre les attaques actives, on consid`ere que l’adversaire peut choisir la valeur IV utilis´ee.

2.1.2 Modes classiques

Mode ECB

D´efinition. ECB signifie Electronic CodeBook. Le message est d´ecoup´e en blocs de tailleb. Chaque bloc est chiffr´e s´epar´ement par Ek, le chiffr´e est la concat´enation des blocs obtenus.

Le d´echiffrement se fait de fa¸con similaire. Le message est d´ecoup´e en blocs de taille b.

Chaque bloc est d´echiffr´e s´epar´ement par Dk, le clair est la concat´enation des blocs obtenus.

Chiffrement et d´echiffrement en mode ECB.

ci =Ek(mi) Ek mi =Dk(ci)

m0

c0

?

?

Ek m1

c1

?

?

Ek m2

c2

?

?

Dk c0

m0

?

?

Dk c1

m1

?

?

Dk c2

m2

?

?

Propri´et´es.

– Expansion.

C’est un mode sans expansion, mais qui ne marche qu’avec des messages dont la longueur est un multiple deb. On peut g´en´eraliser le mode ECB aux autres longueurs de message, par exemple en compl´etant le dernier bloc avec un bit `a 1 suivi du nombre ad´equat de bits `a 0. Le mode ECB a alors une expansion de 1 `ab bits.

La technique appel´ee Ciphertext stealing [12] permet de chiffrer sans expansion les messages de longueur au moins b. Appelons mn−1 et mn les deux derniers blocs, le

1Ceci est diff´erent d’un syst`eme randomis´e, pour lequel l’op´eration de chiffrement utilise une valeur al´eatoire qui n’est pas transmise en clair. Un mˆeme message donne ainsi plusieurs chiffr´es distincts. Il y a alors n´ecessairement expansion du message. En pratique, seuls les syst`emes de chiffrement asym´etriques sont randomis´es.

(20)

dernier pouvant ˆetre incomplet ; leur chiffrement donne les deux blocs cn−1 et cn de mˆemes tailles, tels qu’il existe une valeur c0 avec Ek(mn−1) = cn||c0 et Dk(cn−1) = mn||c0.

– Performance.

Le mode ECB peut ˆetre totalement parall´elis´e : le chiffrement d’un bloc ne d´epend pas du chiffrement des autres.

– R´esistance aux erreurs de transmission.

Si un bloc ci est modifi´e, seul le bloc mi correspondant sera modifi´e.

Si un nombre de bits multiple de b est perdu par la transmission, seuls les blocs correspondants sont perdus.

S´ecurit´e. Le mode ECB ne pr´esente aucune d´etection d’int´egrit´e et est donc vuln´erable aux attaques actives. En particulier si le format du texte clair est connu : l’ordre des blocs

`

a l’int´erieur peut ˆetre chang´e, et si plusieurs messages ont ´et´e chiffr´es avec la mˆeme clef, ils peuvent ˆetre facilement m´elang´es par l’attaquant.

De plus, des blocs identiques dans le message clair sont transform´es en des blocs iden- tiques dans le message chiffr´e, ce qui donne facilement de l’information `a un attaquant passif.

Le mode ECB est le plus simple qu’on puisse imaginer, mais c’est aussi celui dont la s´ecurit´e est la plus faible. Sauf pour des applications tr`es particuli`eres, le mode ECB est `a

´eviter.

Mode CBC

D´efinition. CBC signifie Cipher Block Chaining. Alice et Bob ont au pr´ealable convenu d’une valeur publique IV faisant b bits. Le message est d´ecoup´e en blocs de taille b. Le chiffrement d’un bloc se calcule en chiffrant par Ek le ou bit-`a-bit (XOR) du bloc clair et du bloc chiffr´e pr´ec´edent. La valeur IV sert de chiffr´e pr´ec´edant le bloc 0.

Le d´echiffrement se fait de fa¸con similaire. Un bloc du clair est obtenu en d´echiffrant avecDk puis en faisant un ou bit-`a-bit avec le bloc chiffr´e pr´ec´edent.

Chiffrement et d´echiffrement en mode CBC.

c−1 =IV

ci =Ek(mi⊕ci−1) mi =Dk(ci)⊕ci−1

IV

-

Ek

m0

c0

?

?

? -

Ek

m1

c1

?

?

? -

Ek

m2

c2

?

?

?

IV

-

Dk c0

⊕ m0

?

?

? -

Dk c1

⊕ m1

?

?

? -

Dk c2

⊕ m2

?

?

?

Propri´et´es.

– Expansion.

Si la valeur de IV a ´et´e convenue `a l’avance, c’est un mode sans expansion, mais qui ne marche qu’avec des messages dont la longueur est un multiple de b. On peut g´en´eraliser le mode CBC aux autres longueurs de message, de la mˆeme fa¸con que le mode ECB.

– Performance.

Le chiffrement CBC ne peut ˆetre parall´elis´e, mais le d´echiffrement CBC peut ˆetre totalement parall´elis´e.

(21)

– R´esistance aux erreurs de transmission.

Si un bloc ci est modifi´e, seul les blocsmi etmi+1 correspondants seront modifi´es.

Si un nombre de bits multiple de b est perdu par la transmission, seuls les blocs correspondants sont perdus.

S´ecurit´e. Le mode CBC ne pr´esente aucune d´etection d’int´egrit´e et est donc vuln´erable aux attaques actives. En revanche, il a une bonne s´ecurit´e face aux attaques passives. On peut d´eduire de l’information sur le message d`es que le chiffr´e contient deux blocs ´egaux : si ci =cj, alors mi⊕mj =ci−1⊕cj−1. Si les ci peuvent ˆetre consid´er´es comme al´eatoires, alors le paradoxe des anniversaires affirme qu’une collision apparaˆıt lorsque 2b/2 blocs ont

´et´e chiffr´es.

Il n’y a pas d’objection `a chiffrer plusieurs messages avec la mˆeme clef, avec une valeur IV al´eatoire diff´erente `a chaque fois. En revanche, si l’attaquant a un contrˆole sur IV, il ne faut pas chiffrer plusieurs messages avec la mˆeme clef. On conseille donc d’utiliser Ek(IV) au lieu de IV, mais alors le d´echiffrement utilise Ek etDk.

Le mode CBC est le mode utilis´e dans la plupart des applications des syst`emes de chiffrement par bloc.

2.1.3 Modes de flot

Mode CFB

D´efinition. Le mode CFB (Cipher FeedBack) fabrique un registre `a d´ecalage en mode CTAK (CipherText Auto Key), pour obtenir un chiffrement de flot.

Le mode CFB est param´etr´e par un entier` inf´erieur `a b et utilise un registre de b bits, initialis´e par une valeur publique IV (Initial Value) convenue `a l’avance. Le message est d´ecoup´e en blocs de taille `. `A chaque coup d’horloge, on calcule l’image du registre parEk, dont on extrait` bits qu’on appelle ri. Le bloc est chiffr´e par ou exclusif : ci =mi⊕ri. La nouvelle valeur du registre est obtenue en faisant un d´ecalage de ` bits, et en y entrant la valeur ci.

Chiffrement s−1 =IV ri = [Ek(si−1)](1...`) ci =mi⊕ri si = [si−1](`+1...b)||ci D´echiffrement s−1 =IV ri = [Ek(si−1)](1...`) mi =ci⊕ri si = [si−1](`+1...b)||ci

Chiffrement et d´echiffrement en mode CFB, avec `=b.

c−1 =IV

ci =mi⊕Ek(ci−1) mi =ci⊕Ek(ci−1)

IV

Ek

6 -

m0

c0

?

?

Ek

6 -

m1

c1

?

?

Ek

6 -

m2

c2

?

?

IV Ek

?

-

c0

⊕ m0

?

?

Ek

?

-

c1

⊕ m1

?

?

Ek

?

-

c2

⊕ m2

?

?

Propri´et´es.

– Expansion.

Si la valeur de IV a ´et´e convenue `a l’avance, c’est un mode sans expansion : si la longueur du message n’est pas un multiple de `, on utilise une valeur tronqu´ee pour le dernierri.

(22)

– Performance.

Le chiffrement CFB ne peut ˆetre parall´elis´e, mais le d´echiffrement CFB peut ˆetre totalement parall´elis´e.

Le chiffrement et le d´echiffrement utilisent tous deux la fonctionEk, et donc le temps de calcul deDk n’a aucune influence sur les performances du mode CFB. En revanche, il faut un appel `a Ek tous les ` bits du message.

– R´esistance aux erreurs de transmission.

Si un bloc ci est modifi´e, seul le bloc mi et quelques autres seront modifi´es.

Si un nombre de bits multiple de ` est perdu par la transmission, seuls les blocs correspondants sont perdus.

S´ecurit´e. Le mode CFB ne pr´esente aucune d´etection d’int´egrit´e et est donc vuln´erable aux attaques actives. Comme le mode CBC, c’est `a partir du chiffrement de 2b/2 blocs qu’un attaquant obtient ´eventuellement de l’information sur le message (grˆace au paradoxe des anniversaires).

Les contraintes de s´ecurit´e sur la fonction Ek sont d’autant moins s´ev`eres que`est petit.

Il n’y a pas d’objection `a chiffrer plusieurs messages avec la mˆeme clef, avec une valeur IV diff´erente `a chaque fois, si cette valeur est choisie al´eatoirement. On conseille donc dans ce contexte l’utilisation deEk(IV) au lieu de IV.

Mode OFB

D´efinition. Le mode OFB (Output FeedBack) fabrique un registre `a d´ecalage en mode KAK (Key Auto Key), pour obtenir un chiffrement de flot.

Le mode OFB est param´etr´e par un entier` inf´erieur `ab et utilise un registre de b bits, initialis´e par une valeur publique IV (Initial Value) convenue `a l’avance. Le message est d´ecoup´e en blocs de taille `. `A chaque coup d’horloge, on calcule l’image du registre parEk, dont on extrait` bits qu’on appelle ri. Le bloc est chiffr´e par ou exclusif : ci =mi⊕ri. La nouvelle valeur du registre est obtenue en faisant un d´ecalage de ` bits, et en y entrant la valeur ri.

Chiffrement s−1 =IV ri = [Ek(si−1)](1...`) ci =mi⊕ri si = [si−1](`+1...b)||ri

D´echiffrement s−1 =IV ri = [Ek(si−1)](1...`) mi =ci⊕ri si = [si−1](`+1...b)||ri

Chiffrement ou d´echiffrement en mode OFB, avec `=b.

s−1 =IV si =Ek(si−1) ci =mi⊕si

mi =ci⊕si

IV

- Ek -

-

m0

⊕ c0

?

?

Ek -

-

m1

⊕ c1

?

?

Ek -

-

m2

⊕ c2

?

?

Propri´et´es.

– Expansion.

Si la valeur de IV a ´et´e convenue `a l’avance, c’est un mode sans expansion : si la longueur du message n’est pas un multiple de `, on utilise une valeur tronqu´ee pour le dernierri.

(23)

– Performance.

Le chiffrement ni le d´echiffrement OFB ne peuvent ˆetre parall´elis´es.

La s´equence des si peut ˆetre pr´ecalcul´ee avant de connaˆıtre le message.

Le chiffrement et le d´echiffrement utilisent tous deux la fonctionEk, et donc le temps de calcul deDk n’a aucune influence sur les performances du mode OFB. En revanche, il faut un appel `a Ek tous les ` bits du message.

– R´esistance aux erreurs de transmission.

Si un bloc ci est modifi´e, seul le bloc mi sera modifi´e.

Si quelques bits sont perdus par la transmission, toute la fin du message est perdue.

S´ecurit´e. Le mode OFB ne pr´esente aucune d´etection d’int´egrit´e et est donc vuln´erable aux attaques actives.

Les contraintes de s´ecurit´e sur la fonction Ek sont d’autant moins s´ev`eres que`est petit.

Pour ` = b, si on utilise une fonction Ek indistinguable d’une permutation al´eatoire, alors la valeur si fera un cycle avant d’avoir parcouru les 2b valeurs possibles. On pourra donc pr´ef´erer utiliser un syst`eme de chiffrement par blocs tel que chaque permutation Ek a un unique cycle.2

Il n’y a pas d’objection `a chiffrer plusieurs messages avec la mˆeme clef, avec une valeur IV diff´erente `a chaque fois, si cette valeur est choisie al´eatoirement. On conseille donc dans ce contexte l’utilisation deEk(IV) au lieu de IV.

Mode CTR

D´efinition. CTR signifie CounTeR. La valeur IV est convenue `a l’avance, et on fabrique le flotEk(IV),Ek(IV+ 1),Ek(IV+ 2), ...qui sert `a chiffrer le message par ou exclusif.

Chiffrement ou d´echiffrement en mode CTR.

si =Ek(IV+i) ci =mi⊕si mi =ci⊕si

IV

?

Ek

-

m0

⊕ c0

?

? IV+ 1

?

Ek

-

m1

⊕ c1

?

? IV+ 2

?

Ek

-

m2

⊕ c2

?

?

Propri´et´es.

– Expansion.

Si la valeur de IV a ´et´e convenue `a l’avance, c’est un mode sans expansion : si la longueur du message n’est pas un multiple de b, on utilise une valeur tronqu´ee pour le derniersi.

– Performance.

Le chiffrement et le d´echiffrement CTR peuvent ˆetre parall´elis´es.

La s´equence des si peut ˆetre pr´ecalcul´ee avant de connaˆıtre le message.

Le chiffrement et le d´echiffrement utilisent tous deux la fonctionEk, et donc le temps de calcul deDk n’a aucune influence sur les performances du mode CTR.

2En moyenne, la longueur du plus long cycle d’une permutation al´eatoire de 2b valeurs est environ 0.6 2b, mais une telle permutation a tr`es probablement un petit cycle, dans lequel la valeurIV peut avoir

´et´e choisie. Si la fonction Ek n’est pas une permutation, elle peut aussi ˆetre utilis´ee en mode OFB, mais alors le cycle a tr`es probablement longueur 2b/2.

(24)

– R´esistance aux erreurs de transmission.

Si un bloc ci est modifi´e, seul le bloc mi sera modifi´e.

Si quelques bits sont perdus par la transmission, toute la fin du message est perdue.

S´ecurit´e. Le mode CTR ne pr´esente aucune d´etection d’int´egrit´e et est donc vuln´erable aux attaques actives.

Comme la fonction Ek est une permutation, le flot produit ne cycle qu’apr`es 2b blocs.

Il n’y a pas d’objection `a chiffrer plusieurs messages avec la mˆeme clef, avec une valeur IV diff´erente `a chaque fois, si cette valeur est choisie al´eatoirement. On conseille donc dans ce contexte l’utilisation deEk(IV) au lieu de IV.

2.1.4 Int´ egrit´ e

Chiffrement + MAC

Pour garantir l’int´egrit´e du message, on y ajoute un suffixe (tag) calcul´e par un MAC (Message Authentication Code). Le r´esultat calcul´e par un MAC d´epend du message et d’une clef secr`ete, de telle sorte qu’il soit en pratique n´ecessaire de connaˆıtre la clef pour v´erifier le tag. Si la clef k0 du MAC est choisie ind´ependamment de la clef k du syst`eme de chiffrement, alors la s´ecurit´e est optimale. C’est ce que Shoup [40] appelle DEM1 (Data Encapsulation Mechanism 1).

L’exemple classique d’algorithme de MAC est le CBC-MAC (d´ecrit par exemple parmi les modes du DES [30]), pour lequel le tag s’obtient en chiffrant le message en mode CBC et en gardant uniquement le dernier bloc chiffr´e. Souvent, la combinaison confiden- tialit´e+int´egrit´e est obtenue `a l’aide d’un chiffrement CBC, plus un CBC-MAC, tous les deux avec la mˆeme clef k, mais des valeursIV distinctes. Par exemple l’une est obtenue par image de l’autre parEk.

Il existe aussi des algorithmes sp´ecifiques calculant un MAC plus rapidement qu’un chiffrement. Par exemple HMAC [32], UMAC [10], ...

Chiffrement + Checksum

Le coˆut du calcul d’un MAC n’´etant pas n´egligeable, diverses techniques ont ´et´e pro- pos´ees pour obtenir un chiffrement garantissant l’int´egrit´e avec un surcoˆut tr`es faible par rapport `a un simple chiffrement.

L’id´ee la plus naturelle est de rajouter un bloc de checksum (non cryptographique) `a la fin du message, et de chiffrer l’ensemble. Le checksum le plus rapide `a calculer est un XOR des blocs du messages : c’est ainsi que marche le mode appel´e CBCC.

Presque tous les modes bas´es sur cette id´ee ont des faiblesses. Par exemple on attaque facilement le mode CBCC dans le cas du chiffrement d’un message d’un unique bloc. Le mode ECB + Checksum est pire, puisqu’il n’offre aucune protection contre le changement de l’ordre des blocs du message...

Mode OCB

Le mode OCB a ´et´e propos´e par Rogaway [38]. C’est une variante du mode IAPM propos´e par Jutla [17], lui-mˆeme l’un des premiers modes de chiffrement dont la s´ecurit´e est prouv´ee et qui assure l’int´egrit´e pour un surcoˆut faible.

Références

Documents relatifs

La longueur dépendra du problème à résoudre pour qui cherche à décrypter sans la clé. • Clés secrètes : recherche des

TES 1 Interrogation 9A 4 avril 2015 R´ epondre aux questions sur

X est la variable al´eatoire continue sur [0; 4] dont la loi a pour densit´e de probabilit´e la fonction f.. D´efinir la fonction f de densit´e de probabilit´e de la

Nous ferons, un jour prochain, l'historique de cette longue lutte qui n'a été ·finalement un triemphe que parce que nous avons su agréger et mobiliser, autour

attaque contre le chiffrement E0 et le mode particulier utilisé dans Bluetooth en 2 40 avec 2 35 frames. Si pas de code PIN, pas d’authentification

On représente les données du tableau de valeurs dans un repère tel qu’on trouve en abscisse les valeurs de x et en ordonnée les valeurs de f ( x) correspondantef. En reliant

Hors du cadre de la classe, aucune reproduction, même partielle, autres que celles prévues à l'article L 122-5 du code de la propriété intellectuelle, ne peut être faite de ce

On consid` ere le lancer d’un d´ e truqu´ e pour lequel le un le quatre et le cinq sortent deux fois plus souvent que le deux et le trois et trois fois moins souvent que le six..