• Aucun résultat trouvé

Vulnérabilités et défaillances liées à l'implémentation

2.2 De la cryptographie classique à la communication quantique

2.2.2 Naissance de la cryptographie quantique ; Besoin légitime

2.2.2.2 Vulnérabilités et défaillances liées à l'implémentation

Présenter de façon rigoureuse toutes les vulnérabilités et les défaillances dont sourent la cryptographie classique sort largement du cadre de cette thèse. Toutefois, nous nous restrein- drons à des démonstrations certes très succinctes des principales problématiques qui prouvent l'insécurité amplement souhaitée et proclamée ainsi que l'incapacité à faire face à l'évolution des techniques de cryptanalyse modernes. Ces méthodes de cassage ont chacune leurs modes opératoires, mais elles convergent vers la même conclusion qui est la révélation du secret dissimulé.

cas du cryptosystème DES : Data Encryption Standard [20] :

Techniquement parlant, le cryptage symétrique utilise généralement le chirement itératif par blocs. Ainsi, ils peuvent être à l'origine de chirements à ot, d'applications d'authentication de message ou d'entité, de fonctions à sens unique ou de fonctions de hachage. D'un point de vue historique, on évoque les standards publiques de chirement qui sont le DES et l'AES [21]. Data Encryption Standard communément abrégé en DES : Publié dans les années 1970 par le National Bureau of Standards américain, le DES a été considéré comme le standard mondial en matière de chirement jusqu'à la n des années 1990. Toutefois, et vue l'augmentation exponentielle de la puissance de calcul des machines, cela a rendu une clé de 56 bits vulnérable à plusieurs attaques et de techniques de cryptanalyse. Dans ce contexte, nous allons introduire les attaques les plus répandues :

1- méthode de la recherche exhaustive :

DES est un algorithme capable de chirer un bloc de données P de 64 bits à l'aide d'une clé secrète K de 56 bits. Le résultat est un bloc de données chirées de 64 bits que nous noterons C. L'opération de déchirement P = DK(C) est, grâce à la structure même de l'algorithme, quasiment identique à l'opération de chirement C = EK(P). Ainsi, supposons que nous disposions d'un bloc de données chirées C et que nous voulions trouver la clé secrète correspondante. Nous disposons également d'information supplémentaire sur la structure ou sur le contenu des données en clair. Intuitivement, la méthode la plus simple est une recherche exhaustive de la clé correspondante parmi les 256 possibilités qui représentent la dimension de l'espace des clés potentielles. Par la suite, on essaye de déchirer le bloc de données en utilisant en série clé après clé. Assisté par l'information supplémentaire sur la nature du message clair, nous permettons de deviner la clé et donc d'interrompre la recherche. Nous aurons besoin, en moyenne, de 255 essais avant d'achever l'attaque.

An de démonter l'applicabilité de cette attaque, nous introduisons tout d'abord une caracté- ristique du DES qui est très utile et nous permet par la suite de réduire l'espace de recherche d'un facteur 2. En eet, cette réduction de 50% est une conséquence de la propriété de complémenta- rité de DES. Ainsi, nous considérons que si nous avons un texte P chiré avec une clé K donne un texte codé C, alors le chirement de P avec la clé K produit C où X représente le complément bit à bit de X . De ce fait, si l'espace des clés correspond à l'ensemble des mots de k bits, le nombre moyen d'appels à la fonction de déchirement requis dans une attaque exhaustive est égal à 2k−1. Une telle attaque devient donc hors de portée dés que l'espace des clefs est susamment grand. Au vu de la puissance actuelle de calcul, on considère qu'une clef secrète doit comporter au minimum 128 bits. On recommande l'emploi de clefs de 256 bits dés que l'on souhaite une sécurité relativement dure à casser. Il est à signaler que cette limite est dépendante de l'évolution de la technologie en puissance de calcul. Quoique une attaque exhaustive du système de chirement DES, qui utilise une clef secrète de 56 bits, a été réalisée en 56 heures en juillet 1998 à l'aide d'une machine dédiée comportant 1500 composants DES, toutefois cet algorithme a attient ces limites et a démontré son impuissance face à ce type de cryptanalyse. Le temps de calcul nécessaire à une attaque exhaustive est évidemment exponentiel en fonction de la taille de la clef secrète.

x 0 1 2 3 4 5 6 7 8 9 a b c d e f Si(x) e 4 d 1 2 f b 8 3 a 6 c 5 9 0 7

Table 2.1  Transformation des entrées données en hexadécimal "x" en "Si(x)" suivant la boite S.

La cryptanalyse diérentielle a été introduite par E. Biham et A. Shamir en 1991 [22], c'est une attaque sur le dernier tour à message clair choisi applicable aux algorithmes de chirement par blocs itératifs. Cette méthode stipule la connaissance préalable des chirés Y et Y 0 correspondant à des couples de messages clairs X et X 0 dont la diérence δX est xée. Le principe directeur de cette attaque consiste à étudier la propagation de cette diérence initiale à travers le chirement. Les diérences sont dénies par une loi de groupe, en général le Xor bit à bit. Cette attaque utilise la faiblesse potentielle de la fonction itérée F dans une dérivation à l'ordre 1. Ainsi, elle peut être exécutée dés lors qu'il existe un couple de diérences (a, b) tel que la diérence entre les images par le chirement de deux entrées dont la diérence vaut a est égale à b avec une probabilité élevée. La diérence entre deux blocs de n bits est notée par ⊕, qui est généralement considéré un "ou exclusif/Xor".

Autrement dit, l'attaque nécessite que, pour toutes les valeurs possibles de k1, ..., kr−1 (sous-clés sont générés à partir de la clé maître K) la fonction de chirement G = Fkr−1◦ ... ◦ Fk1

vérie G(x ⊕ a) + G(x) = b pour une grande proportion des valeurs de x ∈ X . On peut alors détecter le chirement à partir de la connaissance des valeurs prises par la fonction pour des entrées dont la diérence vaut a. Le détecteur associé considère donc des couples d'entrées-sorties de la forme (x1, y1), (x1 ⊕ a, y10), (x2, y2), (x2 ⊕ a, y20), ... et il compte le nombre de couples (yi, yi0)qui vérient bien évidement la condition yi⊕ yi0 = b.

Vu ce qui précède, on constate que la situation optimale pour que ce détecteur fonctionne est réduite à la règle que le nombre N des couples (xi, yi) et (xi⊕ a, yi) connus doit être supérieur ou égale à p − 1

2n où p est la probabilité que la diérence des images de deux éléments qui

diérent de a soit égale à b. D'après cette présentation, on voit claire que la diculté de cette attaque réside essentiellement dans le choix des couples et leurs diérences ainsi que dans l'étude minutieuse de la fonction F itérée lors du processus de chirement.

An d'appréhender cette attaque et illustrer aisément son mode opératoire, on va présenter un exemple simple à mettre en ÷uvre. On considère le chirement suivant Fig.2.4 qui permet de mener une attaque diérentielle sur le DES à 4 tours. Il est à noter que c'est un exemple juste à titre de démonstration car le DES réel comporte 16 tours. En eet, un tour DES comme illustré à Fig.2.5 consiste à compartimenter l'entrée de 64 bits en deux sous groupes gauche et droite (d; g) de 32 bits chacun. Ensuite, on ajoute des bits aléatoire à d pour la normé à 48 bits via une transformation E. On récupère la sortie de cette opération et on l'ajoute (Xor logique) à la sous-clé du tour Ki. Une autre fois, on subdivise le résultat on 8 sous-entrées bi qu'on injecte dans les boitiers Si respectivement. Suite à quoi, on applique une permutation P et on additionne nalement les deux sous-groupes. Quant à la moitie gauche, elle est égale à celle de droite. En outre, dans notre cas, le chireur est composé de 4 étages identiques et d'une transformation nale qui ne contient pas de partie linéaire pour simplier l'étude. Les boîtes S1, S2, S3 et S4 sont identiques et donnés par la table suivante (en hexadécimal) :

Figure 2.4  Schéma d'un cryptosystème DES à 4 tours.

x 0 1 2 3 4 5 6 7 8 9 a b c d e f x0 = x ⊕ a 3 2 1 0 7 6 5 4 b a 9 8 f e d c y = Si(x) e 4 d 1 2 f b 8 3 a 6 c 5 9 0 7 y0 = Si(x0) 1 d 4 e 8 b f 2 c 6 a 3 7 0 9 5 δy = y ⊕ y0 f 9 9 f a 4 4 a f c c f 2 9 9 2

Table 2.2  Exemple de calcul des coecients correspondants dans le cas où la valeur d'entrée est a = (3)H.

Pour notre exemple, on constate que le passage de la diérence δX à travers la partie linaire et l'addition de la sous-clé du tour engendre un passage avec une probabilité de 1. Par contre, lors des transformations des boitiers Si qui prend en entrée/sortie des mots de 2n bits la probabilité de passage est égale à 1

2n et ceux pour les chireurs idéales. Ce qui veut dire que le facteur de

réussite de cette attaque réside dans l'exploitation des probabilités d'apparition d'occurrences de diérences entre des clairs et d'occurrences de diérences entre des chirés en entrée du dernier tour du chire pour un certain δX avec une forte probabilité p d'apparition de δY.

Cela revient à construire une table des diérentiels qui résume les possibilités où chaque case représente le nombre d'occurrences de δY étant donnée δX permettant ensuite de calculer la meilleure probabilité de passage à travers la boîte Si. A cet eet, on considère dans notre cas la boîte S, précédemment introduite, avec l'entrée a = (3)H an de construire le coecient correspondant. On parcourt donc toutes les valeurs de X possibles :

Pour ce faire, on rappelle que l'opération de base est un Xor logique, donc si a = 3 et X = (b)H alors X ⊕ a = b ⊕ 3 = 8. Ainsi, on généralise le calcul pour l'ensemble des valeurs de correspondance de a an d'obtenir la table de distribution des diérences possibles.

La valeur correspondante du tableau nous permet de calculer la probabilité conditionnelle de passage à travers une boîte Si qui est P (δY) = N (a,Y 0)2n où N(a, Y 0) est le nombre d'occurrence

dans la table.2.3et n est le nombre de bits d'entrée/sortie de la boîte Si.

En eet, la somme de tous les éléments par ligne ou colonne vaut 2n = 16 et que toutes les occurrences sont pairs, ainsi la diérence étant symétrique. De ce fait, logiquement si δX = 0, il doit en être de même pour δY si la boite S était parfaite (tous les éléments du tableau devraient être égaux). Ce qui n'est pas vrais dans le cas de notre chireur. A ce stade, on est capable de construire le chemin optimale de passage à travers les boites Si en combinant les diérences optimales comme suit :

 Pour le premier étage, on traverse la boîte S2 avec la probabilité P (δY) = P ((2)H|a = (b)H) = 12. Ce qui est la meilleure probabilité de passage sur le tableau.2.3.

 Pour le deuxième étage, on traverse la boîte S3 avec la probabilité P (δY) = ((6)H|a = (4)H) = 38.

 Pour le troisième étage, on traverse la boîte S4 avec la probabilité P (δY) = ((5)H|a = (2)H) = 38 mais également on peut traverser la boîte S3 avec une probabilité P (δY) = ((5)H|a = (2)H) = 38.

Ce passage optimale est illustré en rouge sur Fig.2.6.

δy a 0 1 2 3 4 5 6 7 8 9 a b c d e f 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 2 0 0 0 2 0 2 4 0 4 2 0 0 2 0 0 0 2 0 6 2 2 0 2 0 0 0 0 2 0 3 0 0 2 0 2 0 0 0 0 4 2 0 2 0 0 4 4 0 0 0 2 0 0 6 0 0 2 0 4 2 0 0 0 5 0 4 0 0 0 2 2 0 0 0 4 0 2 0 0 2 6 0 0 0 4 0 4 0 0 0 0 0 0 2 2 2 2 7 0 0 2 2 2 0 2 0 0 2 2 0 0 0 0 4 8 0 0 0 0 0 0 2 2 0 0 0 4 0 4 2 2 9 0 2 0 0 2 0 0 4 2 0 2 2 2 0 0 0 a 0 2 2 0 0 0 0 0 6 0 0 2 0 0 4 0 b 0 0 8 0 0 2 0 2 0 0 0 0 0 2 0 2 c 0 2 0 0 2 2 2 0 0 0 0 2 0 6 0 0 d 0 4 0 0 0 0 0 4 2 0 2 0 2 0 2 0 e 0 0 2 4 2 0 0 0 6 0 0 0 0 0 2 0 f 0 2 0 0 6 0 0 0 0 4 0 2 0 0 2 0

Table 2.3  Distribution des diérences possibles avec leurs nombres d'occurrence pour l'entrée a = (3)H.

sur l'ensemble du trajet de la diérence sur les trois premiers étages du chirement égale à P (δY = ((0)H; (5)H; (0)H; (5)H|a = (0)H; (b)H; (0)H; (0)H) = 1238

3

= 0.0263. Il faut rappeler que le principe de cette attaque est de reconstruire la clé k5 après avoir combiné l'information sur les boîtes Si pour construire une approximation globale. Donc, an d'obtenir de l'information sur la forme de k5 = (L1; L2; L3; L4), on chire un certain nombre M de couples de textes clairs de la forme (X , X 0 = X ⊕a) avec a = (0)H; (b)H; (0)H; (0)H)et on récupère tous les couples de chirés correspondants (Y, Y 0). C'est donc le critère d'égalité à (5)H du deuxième et du quatrième mot de 4 bits que nous allons tester pour retrouver la bonne clé. En conséquence, la clé devra vérier cette hypothèse et qui apparaît le plus grand nombre de fois pour l'ensemble des couples de chirés à tester. Pour ce faire, on ne teste pas toute la clé mais le deuxième mot de 4 bits L2

Figure 2.6  Schéma du parcourt optimale d'une cryptanalyse diérentielle sur DES

ainsi que le quatrième mot L4 suivant l'algorithme ci-après : Pour i variant de 1 à m faire

Choisir un couple (x, x ⊕ a) et chirer ce couple pour obtenir (y, y0) Fin Pour

Pour (L2, L4) variant de (0,0) à (f,f) faire Compteur[L2, L4] reçoit 0

Fin Pour

Pour chacun des m couples (y, y0) faire Si le 1er et le 3ème mot de y et y0 alors

Pour (L2, L4)variant de (0,0) à (f,f) faire Déchirer y avec (L2, L4) pour obtenir u Déchirer y0 avec (L2, L4) pour obtenir u0

Si le 2ème et le 4ème mot de u ⊕ u0 valent (5)H alors Compteur[L2, L4] reçoit Compteur[L2, L4]+1 Fin Pour

Fin Si Fin Pour

Par ce raisonnement, nous avons pu mettre en ÷uvre un détecteur du DES à 3 tours capable de recevoir en entrée M couples d'entrées-sorties. Ensuite, grâce à l'algorithme 2.6, le détecteur est en mesure de compter le nombre de couple satisfaisant la condition de diérentiabilité avec une forte occurrence. Par ailleurs, le résultat nal nous produit la bonne clé pour laquelle le plus grand nombre de couples de sorties δY vérie cette propriété, c'est donc celle qui a la valeur de compteur maximale. Pour ce qui est de nombre de couples M nécessaire pour détecter cette clé, on l'approche généralement par la formule empirique :

M = C × P (δY|a)−1 (2.7)

où C est une petite constante et P (δY|a) est la probabilité de la caractéristique diérentielle des R − 1 tours. Dans l'exemple que nous venons de traiter, P (δY|a)−1 = 37.92 et on détecte pratiquement la clé pour 50 < M < 100. Comme on vient de le monter, ce détecteur permet donc de révéler une attaque sur le DES à 4 tours qui permet de retrouver la clé de chirement au dernier tour à partir de la connaissance de M couples clairs- chirés du système. Certes, une attaque complet sur le DES nécessite une diérence qui se propage sur 15 tours du DES avec une forte probabilité, néanmoins l'objectif de cette démonstration c'est de produire une preuve au concept de l'attaque proposée.

3- méthode de la cryptanalyse linéaire :

Toujours dans le cadre des techniques de cryptanalyse possibles sur le DES, on présente la crypteanalyse linaire où nous allons prononcer le principe de l'attaque sans trop détailler les étapes [23, 24, 25]. De ce fait, l'analyse de cette méthode consiste à considérer aussi le dernier tour du chireur. En eet, il s'agit d'une attaque à clair connu qui peut être menée dés que le chirement soit aecté par la vulnérabilité suivante : il existe un ensemble de positions m, {i1, i2..., im}du mot à chirer et un ensemble de positions l, {j1, j2..., jl}de la sortie tels que la somme logique (⊕) des bits de l'entrée plus la somme des bits de la sortie prend la même valeur pour la plupart des entrées. Autrement dit, si on note x[i] le ime bit de x, cela signie que, pour toutes les valeurs possibles de k1, ..., kr−1, la fonction de chirement G = Fkr−1◦ ... ◦ Fk1 vérie

l'hypothèse suivante :

x[i1] ⊕ x[i2]... ⊕ x[im] ⊕ G(x)[j1] ⊕ G(x)[j2]... ⊕ G(x)[jl] = ε (2.8) où ε est une constante binaire indépendante de la valeur entrée x mais dépendante de la clé de chirement K(k1, ..., kr−1). Par conséquence, on peut exploiter cette propriété de linéarité pour bâtir aussi un détecteur comme l'attaque diérentielle expliquée précédemment. En eet, l'approche de la cryptanalyse linéaire consiste à déterminer des expressions de la forme Eq.2.8

qui peuvent se produire avec une grande probabilité d'occurrence. Ainsi, si un chireur ache une tendance de cette forme avec, soit une faible ou une forte probabilité, alors on a une preuve irréfutable du caractère non-aléatoire et l'incapacité à produire des sorties indéterminées.

A ce constat, il faut noter que supposant qu'on a mis à l'entrée m bits et on a récupéré l bits, alors un comportement sain du chireur survient si et seulement si on injecte ces bits dans l'équation (2.8) et on a exactement le résultat "0 " avec une probabilité 1

2. En plus, toute déviation de cette probabilité on l'exprime avec une sensibilité de cryptosystème à ce genre d'attaques (les probabilités limites 0 et 1 indiquent que le chireur est catastrophiquement faible). Ainsi, plus cette déviation et forte plus le système est fragile.

Pour mener à bien cette attaque et exploiter parfaitement cette vulnérabilité, on agit identiquement par l'étude des boitiers non-linéaires Si et on essaie de développer des relations d'approximation linéaire de passage entre les étages (tours). Par conséquent, on peut concaténer l'ensemble des équations pour en arriver à lier l'entrer du système avec le dernier tour et ceux avec une probabilité diérente de 1

2. Donc, après avoir construit un détecteur à R − 1 tours pour un chirement de R tours, via une approximation linaire, le processus d'attaque consiste à récupérer des bits de la dernière sous-clé KR−1.

Autrement, cette méthode permet de déchirer partiellement la dernière ronde de l'algorithme de cryptage. Plus précisément, pour toutes les valeurs possibles de la sous-clé partielle cible, les bits correspondants de texte chiré sont combinés par un OU exclusif avec les bits de la sous-clé partielle cible et le résultat est dirigé vers l'arrière à travers les boîtes Si correspondantes. Ceci est fait pour tous les échantillons de chiré/clair connus et une valeur est conservée pour chaque entrée de la sous-clé partielle cible. Cette valeur particulière de la sous-clé partielle cible augmente lorsque l'expression linéaire est vrai pour les bits dans des boîtes Si de la dernière ronde (déterminées par le décryptage partiel) et les bits clairs connus. La valeur de la sous-clé partielle cible qui a le nombre qui diverge le plus de la moitié du nombre d'échantillons clair/chiré est supposée représenter les valeurs correctes des bits partielles de la sous-clé cible. En fait, cette approche est déterministe car elle suppose que la valeur de la sous-clé partielle correcte se traduira par l'approximation linéaire parvenue avec une probabilité signicati- vement diérente de 1

2 (Que ce soit au-dessus ou en dessous de 1

2 dépend de l'expression linéaire qui ane le mieux l'approximation et cela dépend des valeurs inconnues des bits de la sous-clé implicitement impliqués dans l'expression linéaire). Une clé incorrecte est suppo- sée entraîner une réaction relativement aléatoire dans les bits entrants dans les boîtes Si du dernier tour et, par conséquent, produira une expression linéaire avec une probabilité proche de 1

2. cas du cryptosystème AES : Advanced Encryption Standard :

Issu d'un appel à candidatures international, le Rijndael est devenu le nouveau standard de chirement par bloc. Il a été inventé par les cryptologues Vincent Rijmen et Joan Daemen pour en découler "l'Advanced Encryption Standard" (AES) En 2000. Ainsi, la norme NIST FIPS 197 [21] décrit le chirement des blocs de 128 bits au moyen d'une clé maître de taille variable : 128, 192 ou 256 bits via une fonction d'itération. Le nombre de ces tours dépendent de la taille de la clé où on trouve par exemple dans le cas de l'AES 128 bits l'application de 10 fois la fonction de tour (sans le dernier "MixColumns"), alors qu'il faut 14 tours dans le cas d'une clé de 256 bits. Généralement, on décrit la fonction de tours comme étant une composition de 4 opérations simples sur la matrice d'entrée :

 la transformation SubBytes : C'est une étape qui correspond à la seule transformation non-linéaire de l'algorithme. Dans cette phase, chaque élément de l'entrée est permuté selon une table de substitution inversible notée boîte-S. Ici, la boîte-S est une permutation de l'espace vectoriel F28 (Cette table est illustrée à la gure.2.7). Elle identie chaque mot de 8 bits à un élément du corps F28 = F2[X]/{X8 + X4+ X3+ X + 1} par l'isomorphisme

suivant : F256=    X i≥0 aiXi mod G(X), G(X) = X8+ X4+ X3+ X + 1ai ∈ {0, 1}    (2.9)

Figure 2.7  Détail de la table AES boite-S

Cette boite-S est composée de la fonction inverse dans le corps ni F28 :

x ∈ F28 7−→ x254 (2.10)

Avec la fonction de l'espace F28 dénie comme suit :             y0 y1 y2 y3 y4 y5 y6 y7             =             1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1                         x0 x1 x2 x3 x4 x5 x6 x7             ⊕             1 1 0 0 0 1 1 0             (2.11)

La gure.2.8illustre par exemple la transformation de l'élément Sr,c en élément S0r,c. Il est à signaler que l'ajout de la fonction ane permet de consolider davantage les propriétés de non-linéarité de la boite-S.

 La transformation Shiftrows : L'étape Shiftrows opère sur les lignes de la matrice entrée et eectue pour chaque élément d'une ligne un décalage cyclique de n éléments vers la gauche. L'oset n de décalage dépend de la ligne considérée. La ligne i est décalée de Ci éléments, si bien que l'élément en position j de la ligne i est déplacé en position j − Ci mod Nb. Les valeurs de Ci dépendent de la valeur de Nb et sont détaillée dans