• Aucun résultat trouvé

Mes travaux durant cette thèse se sont principalement articulés autour de la compétition

SHA-3. Cette compétition a été annoncée par leNational Institute of Standards and Technology

(NIST) à la fin de l’année 2007 et s’est terminée 5 ans plus tard en octobre 2012 par la victoire

de Keccak. Au début de ma thèse, j’ai été amené à étudier la fonction de hachageECHO,

également soumise à cette compétition. ECHOa atteint la deuxième étape du processus de

sélection, mais n’a pas été choisie pour la finale. Mes premiers travaux ont permis d’appliquer

l’attaque par rebond sur cette fonction, pour montrer plusieurs attaques sur des versions

réduites. Ensuite, j’ai continué l’étude des fonctions de hachage de la compétition SHA-3, en

particulierGrøstl, qui a été sélectionnée pour la finale. CommeECHO, cette fonction réutilise

les idées de l’AES comme base de la permutation interne de la fonction de compression. Là

encore, l’attaque par rebond peut s’appliquer et il est possible d’améliorer grandement les

résultats précédents. Finalement, dans la dernière partie de ma thèse, j’ai dévié du domaine

des fonctions de hachage pour m’intéresser à l’AEScomme algorithme de chiffrement. J’ai pu

l’étudier dans trois modèles différents : le modèle standard, où l’on cherche à récupérer la

clef secrète, le modèle à clefs reliées et le modèle ouvert, où la clef est supposée connue de

l’adversaire.

Chronologiquement, mes travaux présentent une progression des fonctions de hachage vers

les algorithmes de chiffrement par bloc. Cependant, dans ce manuscrit, j’ai préféré commencer

par décrire mes travaux sur l’AES, étant donné que les fonctions de hachage que j’ai étudiées

réutilisent ses concepts structurels. Dans la suite de ce chapitre, je décris plus en détail chacune

de mes contributions.

Chapitre 3

Dans ce chapitre, je reviens sur la cryptanalyse différentielle sur laquelle toute ma thèse

repose. J’y rappelle les principales définitions et notations usuelles utilisées dans la littérature,

ainsi que plusieurs résultats classiques. En particulier, je décris les concepts de différentielle

et decaractéristique différentiellequi sont à la base de la cryptanalyse différentielle. Je détaille

comment ce type d’attaque s’applique aux algorithmes généraux de chiffrement par blocs, et

plus en détail à ceux qui définissent un processus de Markov.

J’aborde l’attaque différentielle basique de recouvrement de clef, qui demande à un

ad-versaire de construire une différentielle de forte probabilité sur n−1 tours pour récupérer

efficacement la sous-clef introduite aun-ème tour. Ensuite, je rappelle des variantes de cette

technique, telles que la cryptanalyse en différentielle impossible, la cryptanalyse en différence

tronquée ou encore l’attaque boomerang. Je précise également le modèle à clefs reliées, qui

au-torise l’adversaire à observer le chiffrement de messages avec plusieurs clefs secrètes différentes,

mais qui vérifient une certaine relation.

Enfin, je discute comment ces techniques peuvent être appliquées aux fonctions de hachage.

En effet, contrairement aux algorithmes de chiffrement, celles-ci n’ont aucun paramètre secret et

on peut alors utiliser les techniques de cryptanalyse différentielle différemment pour mettre en

défaut certaines propriétés cryptographiques requises. Dans la dernière section de ce chapitre,

je décris le principe général de l’attaque par rebond, méthode utilisée à de nombreuses reprises

dans les chapitres de ce manuscrit.

Chapitre 4

Le quatrième chapitre est consacré à la description du standard actuel de chiffrement : l’AES

(Advanced Encryption Standard). Je détaille les spécifications exactes des trois versions de l’AES,

et généralise sa structure pour définir la notion de permutationAES-like, qui est utilisée par la

suite pour pouvoir regrouper plusieurs primitives par une même analyse.

La deuxième moitié du chapitre décrit les principales attaques qui ont été publiées sur

l’AES depuis sa présentation en 1997 par Joan Daemen et Vincent Rijmen. Je ne décris pas

toutesles attaques existantes sur l’AES dans ce manuscrit, mais je me suis concentré sur les

plus importantes. Je rappelle en particulier l’attaque intégrale de Knudsen qui a été réutilisée

de nombreuses fois par la suite sur beaucoup d’autres algorithmes, et qui permet de casser 6

tours d’AES. Ensuite, je montre comment la technique des sommes partielles de Ferguson et al.

permet d’optimiser les calculs de l’attaque intégrale, puis comment Henri Gilbert et Marine

Minier ont ajouté un tour dans le distingueur intégral. Par la suite, je rappelle les principales

attaques en différentielle impossible sur l’AESqui ont été pendant longtemps les meilleures

attaques existantes. Finalement, je donne un aperçu des attaques récentes en clefs reliées de

Biryukov et al.

Chapitre 5

Dans ce chapitre, l’AES est étudié dans le modèle standard où un attaquant essaye de

récupérer la clef secrète utilisée lors du chiffrement. Il est classique en cryptanalyse de ne pas

s’attaquer à la primitive complète, mais plutôt de considérer des versions réduites qui sont

plus simples à analyser. Ainsi, dans ce chapitre, je détaille des attaques de recouvrement de

clef sur des versions réduites de l’AES, en ne considérant par exemple que 7 des 10 tours de

l’AES-128. Ce chapitre a largement été inspiré par l’article [DFJ13] que j’ai écrit avec Patrick

Derbez et Pierre-Alain Fouque, publié à Eurocrypt2013.

Dans ce chapitre, nous montrons comment généraliser et améliorer les attaques sur l’AES

de Demirci et Selçuk [DS08] et de Dunkelman, Keller et Shamir [DKS10]. En 2008, Demirci

et Selçuk ont montré comment monter une attaque de type meet-in-the-middle en tabulant

2.1. PRÉSENTATION DES TRAVAUX 27

complètement le comportement de 4 tours d’AES. En 2010, Dunkelman, Keller et Shamir

ont raffiné cette méthode en proposant d’ajouter une propriété pour ces 4 tours. En effet, ils

procèdent à la même tabulation que Demirci et Selçuk pour les tours du milieu, mais imposent

une propriété différentielle supplémentaire pour les éléments ajoutés à la table. Cette propriété

repose sur une caractéristique différentielle particulière, qui réduit l’entropie possible pour les

tours considérés. Leur attaque propose une manière d’énumérer les éléments à stocker dans les

tables, mais la procédure peut être améliorée. En effet, leur méthode n’est pas optimale et nous

montrons comment gagner un facteur 2

48

dans la taille de la table à stocker. Cette amélioration

permet d’obtenir les meilleures attaques connues sur 7 tours de toutes les versions de l’AESet

d’atteindre une attaque sur 9 des 14 tours d’AES-256.

Chapitre 6

Dans ce chapitre, je me suis intéressé aux conséquences du modèle en clefs reliées sur la

structure de l’AES. Dans ce modèle, on suppose que l’adversaire est capable de chiffrer ou de

déchiffrer des messages qu’il choisit sur un ensemble de clefs reliées par une certaine relation

publique. Ainsi, contrairement au modèle standard où l’adversaire n’observe le chiffrement

qu’avec une unique clef secrète k, il peut par exemple choisir de chiffrer un même message

avec deux clefsk etk

, telles queket k

soient reliées par une différenceδ connue :k⊕k

=δ.

Plusieurs types de relations sont possibles, mais dans cette thèse, je me suis limité aux relations

différentielles du type k⊕k

= δ, qui permettent à l’adversaire d’introduire des différences

dans la clef.

Bien que ce modèle soit moins pertinent dans la pratique que le modèle standard, il offre

cependant de fortes indications sur la qualité de l’algorithme d’expansion de clef utilisé dans les

algorithmes de chiffrement par bloc. Dans le cas particulier de l’AES, le mécanisme d’expansion

de clef repose sur une procédure ad hoc sans véritable justification théorique, et qui permet de

construire des attaques sur les versions complètes de l’AES-192et l’AES-256[BKN09,BK09].

Dans ce chapitre, je m’intéresse aux conséquences de ce modèle sur l’AES-128. J’ai pour

cela développé un algorithme de recherche des meilleures caractéristiques différentielles en

clefs reliées sur un nombre arbitraire de tours d’AES-128. Ce chapitre est le résultat d’une

collaboration avec Pierre-Alain Fouque et Thomas Peyrin et a été publié dans l’article [FJP13a]

de Crypto2013, et dans une version longue dans [FJP13b].

Nous montrons dans ce chapitre que l’algorithme de recherche des meilleurs caractéristiques

différentielles peut se réduire à un algorithme de plus court chemin dans un graphe acyclique

orienté particulier qui représente les transitions différentielles par tour d’AES. Par une variante

de l’algorithme de Dijkstra, il est possible d’énumérer efficacement tous les meilleurs chemins

dans ce graphe et donc les caractéristiques en différentielles tronquées qui possèdent la meilleure

probabilité. Nous détaillons ensuite comment cette représentation définit en réalité un processus

de Markov auquel il est possible d’ajouter de l’information pour trouver les caractéristiques

différentielles avec des différences instantiées. Cette recherche permet de trouver les probabilités

exactes des meilleures caractéristiques différentielles sur l’AES-128.

De plus, les résultats de cette recherche nous permettent de procéder à une analyse

struc-turelle de l’AES-128. Cette analyse a pour but d’estimer la sécurité de la structure de l’AES

lorsque les composants principaux tels que la S-Box et la couche de diffusion linéaire ne sont

pas spécifiés. Ainsi, la résistance à la cryptanalyse différentielle est exprimée en fonction de

plusieurs paramètres, ce qui permet par exemple d’affirmer qu’il est impossible d’obtenir la

résistance en cryptanalyse différentielle dans le modèle à clefs reliées sans prendre en compte

l’instantiation de la S-Box. En effet, nous détaillons dans ce modèle une attaque structurelle

sur les 10 tours de l’AES-128. De même, dans le cas où l’AES-128est utilisé dans un mode

tel que Davies-Meyer pour définir une fonction de compression, prouver la résistance à la

cryptanalyse différentielle nécessite de fournir l’instantiation de la S-Box et de la couche linéaire.

Ces résultats théoriques ne remettent pas en cause la sécurité de l’AES mais donnent une

indication de sa qualité structurelle.

Chapitre 7

Dans ce chapitre, j’ai poursuivi l’étude récente de l’AESdans le modèle à clef connue ou

choisie. Dans ce modèle, on suppose que l’adversaire a connaissance de la clef utilisée lors

du chiffrement ou du déchiffrement (clef connue), voire même qu’il est capable de choisir sa

valeur (clef choisie). Ce modèle a initialement été introduit par Lars Knudsen et Vincent Rijmen

[KR07] mais ne représente pas de risques pratiques très importants. Il permet en revanche

d’évaluer les capacités de l’adversaire dans un modèle ouvert qui se rapproche du domaine des

fonctions de hachage.

Je rappelle tout d’abord les principaux algorithmes qui permettent de distinguer l’AES

d’une permutation aléatoire dans ce modèle. Ces résultats se basent sur l’attaque par rebond

[MRST09] et exhibent des propriétés non aléatoires sur des versions de l’AESréduites jusqu’à

8 tours lorsque l’attaquant connaît la valeur de la clef secrète. Le travail que j’ai effectué dans

cette direction a été publié à Indocrypt2012 dans l’article [DFJ12a] écrit avec Patrick Derbez et

Pierre-Alain Fouque et montre comment il est possible d’étendre les résultats précédents au cas

où l’adversaire peut choisir la valeur de la clef.

Avant ce travail, on ne connaissait pas de méthode qui permettait de tirer parti des degrés

de liberté supplémentaires introduits lors du passage du modèle en clef connue au modèle en

clef choisie. Dans ce chapitre, nous montrons que si l’adversaire a cette capacité, alors il peut

contrôler un tour de plus dans la phase non probabiliste de l’attaque par rebond. Ces nouvelles

techniques consistent principalement à réordonner les étapes des attaques précédentes afin

d’obtenir des attaques optimales dans la classe d’attaques considérée.

Dans ce modèle à clef choisie, nous montrons également le premier distingueur pour 9 tours

d’AES-128, en tant qu’application de l’algorithme de recherche présentée au chapitre

précé-dent. Le problème de montrer une propriété non triviale sur 9 tours d’AES-128était ouvert

depuis longtemps dans la communauté de la cryptographie symétrique, et nous montrons qu’il

existe un algorithme capable de générer une paires de clefs et une paire de messages vérifiant

toutes les deux certaines relations plus rapidement que pour une famille de permutations

aléatoires. Ce résultat a été publié comme application de l’article [FJP13a] de Crypto2013.

Chapitre 8

Étant donné que beaucoup de nouvelles attaques sur les fonctions de hachage utilisent la

nouvelle technique de l’attaque par rebond, j’ai dédié tout le huitième chapitre à l’analyse de

2.1. PRÉSENTATION DES TRAVAUX 29

cette méthode. Ce travail a été fait en collaboration avec María Naya-Plasencia et Thomas Peyrin

et a fait l’objet de deux articles : le premier a été publié à Fse2012 [JNPP12], et le deuxième est

actuellement en soumission.

Ce chapitre analyse successivement les deux parties de l’attaque par rebond. Cette technique

s’inscrit dans le cadre de la cryptanalyse différentielle et donne un moyen de trouver une paire

de messages qui satisfait une caractéristique différentielle donnée. Elle consiste en une première

partie non probabiliste qui trouve efficacement des paires de messages pour la section centrale

de la caractéristique, puis en une deuxième partie, qui énumère ces paires tant qu’aucune ne

vérifie une certaine propriété. Cette deuxième phase est probabiliste et la caractéristique choisie

doit donc faire en sorte que la probabilité de succès soit la plus grande possible.

Nous étudions dans un premier temps la phase non probabiliste, et nous abordons ensuite

la phase probabiliste. Dans ces deux études, nous nous concentrons sur la principale cible

vis-à-vis de ces attaques, à savoir l’AES. La première étape consiste à générer le plus de paires

vérifiant la partie centrale de la caractéristique le plus efficacement possible. Idéalement, nous

voudrions générer une paire en une opération. Plusieurs algorithmes présentés dans le chapitre

7 permettent d’atteindre cet objectif, mais ils sont limités à seulement deux tours d’AES. Avant

notre travail, la question de savoir gérer un tour de plus pour contrôler trois tours centraux

était un problème ouvert. Nous montrons dans ce chapitre que pour une permutation à base

d’AESquand l’état est au moins de taille 8, il existe un algorithme “efficace” générant les paires

voulues pour les tours du milieu de la caractéristique. La complexité amortie de cet algorithme

est moins bonne que le coût idéal d’une opération par paire, mais nous montrons néanmoins

qu’il est possible de gagner un tour supplémentaire dans les distingueurs précédents. La

nouvelle question ouverte est désormais de savoir s’il est possible d’atteindre une meilleure

complexité amortie.

Dans un deuxième temps, nous nous intéressons à la phase probabiliste de l’attaque par

rebond en supposant connu l’algorithme générant les paires pour la section centrale. En

consi-dérant une permutation basée sur l’AES, la phase probabiliste consiste à attendre l’annulation

de différences dans le MixColumns. Pour l’AES par exemple, on attend généralement que

quatre différences se transforment en une seule différence à une position spécifiée à l’avance par

la caractéristique. Pour augmenter la probabilité, nous proposons de relaxer la position de cette

différence. Ainsi, dans le cas de l’AES, la probabilité est par exemple multipliée par quatre. Le

gain global reste marginal, mais améliore cependant toutes les attaques sur des permutations à

bases d’AESutilisant l’attaque par rebond. Hormis ces résultats, la contribution théorique de ce

chapitre consiste en une évaluation de la complexité générique dans le cas d’une permutation

aléatoire. Nous proposons une borne inférieure basée sur l’algorithme du limited-birthdaypour

borner la complexité générique de ce problème que nous avons baptisé multiple limited-birthday.

De plus, dans le cas des permutations basées sur l’AES, nous présentons un algorithme qui

résout ce problème plus rapidement que la borne générique.

Chapitre 9

Dans ce dernier chapitre, j’étudie la fonction de hachage ECHO, qui a été soumise à la

compétitionSHA-3du NIST par Henri Gilbert et al. en 2007. Cette fonction de hachage utilise

l’AEScomme composant interne pour créer un état de 16 états d’AES. La fonction de

compres-sion applique 8 tours d’une permutation ressemblant à l’AESce qui permet alors d’appliquer

des techniques d’analyse similaires. Le point de départ de mon travail a été une erreur dans

une attaque publiée par Martin Schläffer à Sac 2010 et a initialement consisté à la corriger.

L’erreur a été de négliger la résolution d’un système linéaire issu d’un réordonnancement

des opérations de la permutation interne d’ECHO. Ce système est de la formeM×X= Aoù

certains paramètres sont fixés, mais où la matriceM a une forme très particulière et ne garantit

pas que toutes les valeurs des paramètres fassent que le système ait des solutions. En effet,

je montre dans ce chapitre que pour des valeurs aléatoires des paramètres, le système a une

solution avec probabilité seulement 2

−128

. Cependant, je montre qu’il est possible de corriger

l’attaque afin de trouver des solutions au même système linéaire. Ceci donne une attaque en

collision pratique sur la fonction de compression d’ECHOréduite à quatre tours. Ce résultat a

été publié dans l’article [JF11] avec Pierre-Alain Fouque à Fse2011.

Dans un deuxième temps, j’ai continué à travailler surECHOen collaboration avec María

Naya-Plasencia et Martin Schläffer pour étendre les résultats précédents en prenant en compte

la correction sur le système linéaire. Ce travail a donné plusieurs résultats qui utilisent tous la

même technique. Nous avons utilisé l’attaque par rebond deux fois à deux endroits différents

dans une longue caractéristique différentielle sur la fonction de compression. Il est possible

d’utiliser une attaque avec plusieurs rebonds surECHOétant donné le grand nombre de degrés

de liberté dont on dispose pour cette fonction. Nous avons obtenu plusieurs résultats : une

attaque en collision sur 4 tours de la fonction de hachage, une attaque en collision sur 5 tours

de la fonction de compression, un distingueur sur 7 tours de la fonction de compression, une

attaque en collision sur 6 tours de la fonction de compression ainsi que des attaques lorsque

l’attaquant peut choisir un paramètre additionnel : le sel. Toutes ces attaques ont été publiées

dans un article [JNPS11a] à Sac 2011 ainsi que dans une version étendue de cet article sur

l’ePrint [JNPS11b].

Documents relatifs