• Aucun résultat trouvé

2.2 Sûreté de fonctionnement : Définition de la confiance

3.1.1 Notions de sécurité et théorie de Shannon

3.1.1.2 Entropie . . . 21

3.1.1.3 Produit de chiffres . . . 22

3.1.2 Schéma général d’un chiffrement par bloc : Réseau de Substitution et

Permutation (SP-Network) . . . 22

3.1.2.1 Réseau de Substitution et Permutation . . . 23

3.1.2.2 Principaux chiffres par blocs . . . 24

3.1.2.3 Modes opératoires . . . 24

3.1.3 Techniques de cryptanalyse théorique et résistance . . . 25

3.1.3.1 Cryptanalyse Linéaire . . . 26

3.1.3.2 Cryptanalyse Différentielle . . . 28

3.1.3.3 Preuves de résistance . . . 31

3.1.4 Attaques par canaux auxiliaires et contre-mesures . . . 33

3.1.4.1 Introduction . . . 33

3.1.4.2 Analyse de courant . . . 33

3.2 Théorie des codes . . . . 38

3.2.1 Préliminaires . . . 38

3.2.1.1 Premières Définitions . . . 38

3.2.1.2 Codes Linéaires . . . 39

3.2.2 Codes de Reed-Muller . . . 40

3.2.2.1 Codes de Reed-Muller binaires d’ordre 1 :R(1, m) . . . 41

3.2.2.2 Quelques résultats sur le décodage par liste des codesR(1, m) 42

3.2.3 Codes de Reed-Solomon . . . 43

3.2.3.1 Codage et Matrice Génératrice . . . 44

3.2.3.2 Décodage unique des codes de Reed-Solomon . . . 44

3.2.4 Codes par interpolation de polynômes univariés . . . 47

3.2.5 Codes LDPC . . . 47

Nous débuterons ce chapitre par une présentation des chiffrements par blocs en insistant sur

certaines méthodes de cryptanalyse et les preuves de résistances ou contre-mesures possibles face

à ces attaques. Dans un second temps, nous présenterons les objets et outils de la théorie des

codes, qui seront utiles dans la suite du document, notamment les codes de Muller, de

Reed-Solomon et les méthodes dites de décodage par listes. Aucun résultat original n’étant présenté ici,

les lecteurs maîtrisant ces notions peuvent directement passer au chapitre suivant.

Note : Dans toute la suite, les notations mathématiques sont celles utilisées dans la littérature.

Néanmoins, rappelons que le logarithme en base q est noté logq. En base 2 nous le noterons

parfois simplementlog. Nous travaillerons généralement dans le corps fini àqéléments, que nous

noterons, de façon interchangeable, GF(q) (le corps de Galois à q éléments) ou de façon plus

générique❋q(q=pm,ppremier etmentier).

3.1 Cryptographie à clé secrète : les chiffrements par blocs

Les chiffrements par blocs ou chiffrements itératifs sont des primitives cryptographiques à clé

secrète, c’est à dire que le secret est commun pour la fonction de chiffrement et de déchiffrement.

Un chiffre symétrique sera notéS= (P,C,K, E, D)et défini par :

– Un espace de messages clairs (P), un espace de messages chiffrés (C), un espace de clés

(K).

– Un algorithme de chiffrementE :P × K → C.

– Un algorithme de déchiffrementD:C × K → P.

Dans la suite, nous noteronsX,Y etKdes variables aléatoires prenant leurs valeurs dansP,

CetKrespectivement.

3.1.1 Notions de sécurité et théorie de Shannon

3.1.1.1 Différentes notions de sécurité

Dans le contexte des chiffrements symétriques, trois notions de sécurité sont employées dans

la littérature.

Sécurité parfaite. La notion de sécurité parfaite proposée par Claude Elmwood Shannon en

1949 définit l’incapacité théorique de casser le problème au sens de la théorie de

l’informa-tion [202]. Formellement, la sécurité parfaite peut s’écrirePr[X=x|Y =y] = Pr[X =x].

L’exemple classique de chiffre offrant une telle sécurité inconditionnelle est le chiffre proposé par

Gilbert Vernam en 1917 (nommé "One-time Pad" en anglais). Il est très coûteux puisque la clé

secrète doit être aussi longue que l’ensemble des messages à échanger et il est dépendant d’une

synchronisation continuelle. Il est possible de prouver qu’acquérir une sécurité parfaite demande

un coût au moins égal à celui du chiffre de Vernam. Ceci laisse peu de chance opérationnelle à

de tels chiffrements. Ainsi d’autre notions de sécurité, moins strictes ont dû être apportées et un

compromis entre sécurité et efficacité du chiffre a été recherché.

Sécurité asymptotique. Encore appelée sécurité prouvée dans la littérature, cette notion

re-pose sur l’existence de problèmes "bien connus", dont la difficulté est largement acceptée (e.g.

Problèmes NP-Complets). Ainsi, par une méthode de réduction, similaire à celles utilisées pour

prouver qu’un problème est NP-Complet, il peut être parfois prouvé que casser un chiffre est

équi-valent à résoudre un problème difficile. Casser un tel chiffre revient donc à résoudre un problème

pour lequel le meilleur algorithme connu a une complexité exponentielle en fonction d’un

para-mètre du système. Il suffit alors de choisir la taille du parapara-mètre convenablement pour empêcher

un attaquant possédant une capacité de calcul réaliste de casser le système.

Sécurité empirique. Elle repose sur l’étude de l’ensemble des méthodes connues pour casser le

chiffre. Lorsqu’aucune des méthodes connues pour retrouver le secret n’est applicable (i.e., leur

coût est supérieur à l’attaque de référence), le chiffre est supposé sûr. C’est la notion la plus faible

de sécurité et en contrepartie c’est celle qui permet le développement de chiffres les plus

perfor-mants. En pratique les chiffres symétriques sont considérés sûrs par leur longévité : plus le chiffre

est âgé et plus il a résisté à l’acharnement des cryptanalystes, plus il est "sûr".

Le coût de l’attaque de référence donne la résistance a priori du chiffre. Généralement, cette

at-taque est la recherche exhaustive de la clé (atat-taque par force brute). Ainsi un chiffre de taille de

clé secrètenbits aura une sécurité d’ordreO(2n)(chaque clé possible est testée) jusqu’à ce qu’un

cryptanalyste trouve une attaque plus efficace.

La large majorité des chiffrements symétriques utilisés à l’heure actuelle possède la plus faible

notion de sécurité. Dorénavant, lorsqu’on parlera de chiffrement symétrique sûr il s’agira d’une

sécurité empirique.

3.1.1.2 Entropie

La notion d’entropie, introduite par Claude Shannon en 1948 dans le domaine de la théorie de

l’information [201], est un outil particulièrement bien adapté pour étudier la sécurité des

chiffre-ments. L’entropie peut être interprétée comme une mesure de la quantité d’information contenue

dans une source d’information. Ainsi, pour une variable aléatoireX, l’entropie est définie par :

H(X) =−X

x

Pr[X=x]·log(Pr[X=x])

Quelques propriétés de l’entropie

– H(X, Y)≥H(X). L’égalité est vérifiée si et seulement siY ne dépend que deX.

– H(X, Y) ≤H(X) +H(Y). L’égalité est vérifiée si et seulement siXetY sont

indépen-dants.

– Soit|X|le cardinal de l’ensemble des valeurs prises parXavec une probabilité non nulle,

si|X|=nalorsH(X) ≤log(n). L’égalité est vérifiée si l’événementX =xest

équipro-bable pour toutx.

Sécurité parfaite. La notion de sécurité parfaite peut être formellement décrite à l’aide de

l’en-tropie, elle équivaut àH(X|Y) =H(X)oùH(X|Y)est l’entropie conditionnelle. Celle-ci

me-sure, en moyenne, la quantité d’information surXqui n’est pas révélée parY :

H(X|Y) =−X

y

X

x

Pr[Y =y]·Pr[X=x|Y =y]·log[X=x|Y =y]

3.1.1.3 Produit de chiffres

Cette notion fondamentale introduite par Shannon en 1949 est aujourd’hui incontournable

dans la construction de chiffrements symétriques sûrs. Considérons deux fonctions de chiffrement

S1(P1,C1,K1, E1, D1)etS2(C1,C2,K2, E2, D2). Le produit de ces deux chiffres, notéS1×S2,

correspond à(P1,C2,K1× K2, E, D)oùEetDsont définis comme suit :

E: P1× K1× K2 → C2

(X, K1, K2) → E2(E1(X, K1), K2)

D: C2× K1× K2 → P1

(Y, K1, K2) → D1(D2(Y, K2), K1)

Dans certains cas, le produitS1×S2est plus sûr queS1 etS2pris séparément. Comme nous

allons le voir c’est une technique très utilisée pour la construction de chiffrements par blocs. Elle

permet de construire des chiffres sûrs à l’aide de chiffres plus simples et donc plus aptes à être

étudiés séparément.

3.1.2 Schéma général d’un chiffrement par bloc : Réseau de Substitution et