• Aucun résultat trouvé

Algebraic methods for security analysis of cryptographic algorithms implementations

N/A
N/A
Protected

Academic year: 2021

Partager "Algebraic methods for security analysis of cryptographic algorithms implementations"

Copied!
154
0
0

Texte intégral

(1)

HAL Id: tel-01254443

https://tel.archives-ouvertes.fr/tel-01254443

Submitted on 12 Jan 2016

HAL is a multi-disciplinary open access

archive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

algorithms implementations

Rina Zeitoun

To cite this version:

Rina Zeitoun. Algebraic methods for security analysis of cryptographic algorithms implementations. Cryptography and Security [cs.CR]. Université Pierre et Marie Curie - Paris VI, 2015. English. �NNT : 2015PA066310�. �tel-01254443�

(2)

UNIVERSITÉ PIERRE ET MARIE CURIE

École doctorale Informatique, Télécommunications et Électronique (Paris)

THÈSE

Pour obtenir le titre de

Docteur en Sciences

de l’UNIVERSITÉ PIERRE ET MARIE CURIE - PARIS 6 Mention Informatique

Présentée par

Rina Zeitoun

Méthodes algébriques pour l’analyse de sécurité des

implantations d’algorithmes cryptographiques

Thèse dirigée par Jean-Charles Faugère et Guénaël Renault soutenue le jeudi 16 juillet 2015

après avis des rapporteurs

M. Damien Stehlé Professeur, École Normale Supérieure de Lyon

M. Jaime Gutierrez Professeur, Université de Cantabria devant le jury composé de

M. Jean-Charles Faugère Directeur de recherche, INRIA

M. Guénaël Renault Maître de conférences, Université Pierre et Marie Curie

M. Damien Stehlé Professeur, École Normale Supérieure de Lyon

M. Jaime Gutierrez Professeur, Université de Cantabria M. Jean-Sébastien Coron Professeur, Université du Luxembourg

M. Phong Nguyen Directeur de recherche, INRIA

M. Stef Graillat Professeur, Université Pierre et Marie Curie

(3)
(4)

Contents

I State Of The Art 29

1 RSA on Embedded Devices and Physical Attacks 31

1.1 RSA Cryptosystem on Embedded Devices . . . 32

1.1.1 RSA Signature in Standard mode . . . 32

1.1.2 RSA Signature in CRT mode . . . 32

1.2 Physical Attacks . . . 33

1.2.1 Non-invasive Attacks . . . 33

1.2.2 Invasive Attacks . . . 38

1.3 Lattices in Physical Attacks . . . 41

1.3.1 SPA on Modular Exponentiation and Lattices: . . . 41

1.3.2 CPA on CRT-Recombination and Lattices: . . . 41

1.3.3 Fault Attacks on RSA and Lattices: . . . 41

2 Lattice Reduction 43 2.1 Euclidean Lattices . . . 43

2.1.1 Some Basic Definitions . . . 43

2.1.2 Volume and Determinant . . . 44

2.1.3 Shortest Vector Problem and Orthogonality . . . 45

2.2 LLL-Reduction . . . 47

2.2.1 Size-Reduced Basis . . . 47

2.2.2 LLL-Reduced Basis . . . 48

2.2.3 A Basic Version of the LLL Algorithm . . . 49

2.2.4 Bounds of LLL-Reduced Vectors . . . 49

2.2.5 Complexities of the LLL, L2and ˜L1Algorithms . . . 50

2.2.6 Number of Iterations of LLL-Reduction Algorithms . . . 52

2.3 Diophantine Problem and LLL-Reduction . . . 53

2.3.1 Finding Small Integer Solutions . . . 53

2.3.2 Simultaneous Diophantine Approximation . . . 53

3 Finding Small Solutions to Polynomial Equations 57 3.1 Coppersmith’s Method for Univariate Modular Equations . . . 60

3.1.1 The Main Result . . . 60

3.1.2 The Method . . . 60 3

(5)

3.1.3 Complexity . . . 65

3.1.4 Applications . . . 66

3.2 Coppersmith’s Method for Bivariate Equations over Z . . . 67

3.2.1 The Main Result . . . 67

3.2.2 Core Idea of the Method . . . 67

3.2.3 Applications . . . 68

3.3 The BDH Method for Factoring N = prq . . . . 68

3.3.1 Motivations . . . 68

3.3.2 The Main Result . . . 68

3.3.3 The Method . . . 69

II Contributions 75 4 Rounding and Chaining LLL 77 4.1 Speeding up Coppersmith’s Algorithm by Rounding . . . 78

4.1.1 Rounding for Coppersmith’s Algorithm . . . 79

4.1.2 Running time: proof of Theorem 29 . . . 85

4.1.3 A Remark on the Original Coppersmith’s Complexity . . . 86

4.1.4 A Summary of the Complexities . . . 87

4.2 Chaining LLL . . . 88

4.2.1 Exploiting Relations Between Consecutive Lattices . . . 89

4.2.2 Rounding and Chaining LLL . . . 91

4.2.3 Complexity Analysis: A Heuristic Approach . . . 96

4.3 Experiments . . . 98

4.3.1 Practical Considerations . . . 98

4.3.2 Implementation Results . . . 99

4.4 Other Small-Root Algorithms . . . 101

4.4.1 Gcd Generalization . . . 101

4.4.2 Multivariate Equations . . . 102

5 Factoring N = prqs for Large r 105 5.1 BDH’s Theorem Slightly Revisited . . . 106

5.2 Factoring N = prqs for Large r . . . 107

5.2.1 Two Natural Approaches that Fail . . . 107

5.2.2 The Main Theorem . . . 108

5.2.3 An Outline of the Method . . . 109

5.2.4 A Useful Lemma: Decomposition of r and s . . . 109

5.2.5 Proof of the Main Theorem . . . 112

5.2.6 Refinement of the Condition on r for Small s or for s Close to r. . 114

5.3 Generalization for N =Q pri i for Large ri’s . . . 115

5.3.1 A Condition on r1 Depending on the Ratio r1/rk−1 . . . 116

5.3.2 Factoring with Gaps . . . 121

(6)

CONTENTS 5

5.3.4 Proof of the Generalization Theorem . . . 124

5.4 Speeding-up by Rounding and Chaining . . . 126

5.4.1 Rounding . . . 127

5.4.2 Chaining . . . 128

5.5 Experiments . . . 129

5.5.1 Practical Considerations . . . 129

5.5.2 Speed-up by Rounding and Chaining . . . 130

5.5.3 Implementation Results . . . 130

5.5.4 Comparison with ECM . . . 132

6 Combined Attack on RSA-CRT 133 6.1 Context and Principle . . . 135

6.1.1 RSA Signature Using the CRT Mode . . . 135

6.1.2 Countermeasures Against SCA and FI . . . 135

6.2 A New Combined Attack on CRT-RSA . . . 136

6.2.1 A Useful Relation . . . 136

6.2.2 Recovering the Private Key . . . 137

6.3 Experiments . . . 138

6.4 Reducing the Complexity Using Coppersmith’s Methods . . . 140

6.4.1 Bringing Up the Original Problem to Solving a Modular Equation 140 6.4.2 Results From Our Implementation . . . 143

6.5 Countermeasures . . . 144

6.5.1 Blind Before Splitting . . . 144

6.5.2 Verification Blinding . . . 145

(7)
(8)

Notations

Notations

In this manuscript, the following notations are used to represent some widespread mathematical tools.

— We use row representation for matrices.

— Matrices are denoted by uppercase letters, and their coefficients are denoted by lowercase letters.

— The transposition of a matrix M is MT.

— Vectors are row vectors denoted by bold lowercase letters. — The transposition of a vector v is vT.

— The Euclidean norm is represented by kk. — The inner product of Rn is represented by h, i.

— The Euclidean norm is naturally extended to polynomials as follows : if f (x) = Pn

i=0fixi∈ R[x], then kfk = (

Pn

i=0fi2)1/2.

— We use the following matrix norms: if M = (mi,j) is an n × m matrix, then — kM k2 = maxkxk6=0kxM kkxk ,

— kM k∞= max1≤j≤mPni=1|mi,j|,

— And we have kM k2≤

nkM k∞.

— If x ∈ R, we respectively denote by bxc, dxe, dxc the lower integer part, the upper integer part of x and the closest integer to x.

— All logarithms are in base 2.

— We write f (n) = O(g(n)) if there exist constants n0 and c > 0 such that |f (n)| ≤ c|g(n)| for all n ≥ n0.

— We write f (n) = Ω(g(n)) if g(n) = O(f (n)). Therefore f (n) = Ω(g(n)) if and only if there exist constants n0and c > 0 such that |f (n)| ≥ c|g(n)| for all n ≥ n0.

(9)
(10)

Introduction

Cryptologie

À l’aube du 21èmesiècle, les besoins cryptographiques explosent. Le chiffrement n’est

plus réservé aux communications classifiées des armées : il gagne tous les domaines, avançant au rythme des découvertes mathématiques. Les applications civiles du chif-frement (transactions en ligne, vote électronique, usage de systèmes de communication, passeports, stockage dans le nuage, paiements électroniques, etc.) deviennent un moteur fondamental de progrès dans ce domaine. Les révélations récentes d’Edward Snowden concernant la surveillance mondiale secrète effectuée par la NSA renforcent amplement la nécessité du chiffrement. Ainsi, la cryptologie devient une science dynamique à l’in-tersection des mathématiques et de l’informatique. De nombreux protocoles cryptogra-phiques sont continuellement élaborés. Dans le même temps, des études sont menées pour en assurer la sécurité, car ces cryptosystèmes ont des fins très concrètes : ils sont aussi bien utilisés pour sécuriser l’emploi d’Internet, qu’intégrés dans nos cartes bleues, cartes SIM, passeports, etc. Nombre de ces cryptosystèmes se révèlent vulnérables et sont aban-donnés, d’autres plus robustes perdurent bien que nécessitant souvent des réadaptations face à des attaques mettant en avant la vulnérabilité de certains choix de paramètres. De nombreuses techniques d’analyse de vulnérabilité des cryptosystèmes sont employées. On peut citer par exemple les études basées sur des méthodes algébriques, c’est-à-dire mo-délisées par la résolution d’équations non-linéaires. D’autres types d’attaques telles que l’analyse des fuites physiques générées par les systèmes embarqués peuvent également permettre d’obtenir des informations secrètes. De fait, les deux types d’attaques peuvent naturellement parfois être combinées. Cette thèse se situe précisément dans ce contexte, celui où les attaques physiques constituent un apport crucial d’informations permettant de rendre la résolution du problème algébrique réalisable.

On distingue classiquement deux grandes catégories en matière de chiffrement : la cryptographie à clé secrète et la cryptographie à clé publique.

La cryptographie à clé secrète est de loin la plus ancienne. Elle nécessite au préalable la mise en commun entre les destinataires d’une clé secrète, puis consiste à utiliser cette même clé pour le chiffrement et le déchiffrement, (pour cette raison, on l’appelle également cryptographie symétrique). Elle est intuitive de par sa similarité avec ce que l’on s’attend à utiliser pour verrouiller et déverrouiller une porte : la même clé. Cependant, la principale difficulté de la mise en œuvre de ce système est l’échange en toute sûreté de la clé secrète

(11)

entre les deux parties.

La cryptographie à clé publique, dite asymétrique, s’attache à résoudre ce problème. Elle repose quant à elle sur un autre concept faisant intervenir pour chaque utilisateur une paire de clés : l’une pour le chiffrement, rendue publique, et l’autre pour le déchiffre-ment, conservée secrète. Les clés sont différentes mais elles sont liées et seul l’utilisateur associé à la paire de clés en connaît le lien. Afin de chiffrer un message à l’intention d’un utilisateur, le correspondant emploie la clé publique de cet utilisateur. Le déchiffrement du message chiffré nécessite la connaissance de la clé secrète, que seul l’utilisateur dé-tient. Ce concept naturel permet de communiquer de manière confidentielle sans avoir à partager la moindre information secrète initialement. La cryptographie asymétrique est fondée sur l’utilisation d’une fonction à trappe : une fois cette fonction appliquée à un message, il est extrêmement difficile de retrouver le message original, à moins de posséder une information particulière tenue secrète : la clé privée. Toutefois, il reste une difficulté : trouver une fonction à trappe.

Cryptosystème RSA

Le premier modèle de chiffrement à clé publique, appelé RSA, proposant une fonc-tion à trappe, a été mis en place en 1977 par Ron Rivest, Adi Shamir et Leonard Ad-leman [RSA78]. Ce cryptosystème a été le plus utilisé pendant de nombreuses années et est encore l’un des plus utilisés de nos jours (même si un remplacement progressif tend à s’effectuer vers des cryptosystèmes plus performants), notamment dans les sys-tèmes embarqués tels que les cartes bancaires, cartes SIM, passeports, où une sécurité des ressources sensibles qu’ils contiennent doit être assurée.

Le cryptosystème RSA repose sur la fonction qui, à deux grands nombres premiers p et q associe leur produit p × q. Elle est à sens unique car étant donné p et q, il est aisé de calculer N = p × q, mais à l’inverse, connaissant un entier N produit de deux grands nombres premiers, il est très difficile de retrouver les facteurs p et q.

Le protocole cryptographique RSA fonctionne de la manière suivante. Un utilisateur souhaitant recevoir des messages de manière sécurisée, et dont il sera le seul à pouvoir en déchiffrer le contenu, choisit deux grands nombres premiers distincts p et q et calcule leur produit N = p × q. Il choisit un entier e premier avec φ(N ) = (p − 1)(q − 1) et calcule d tel que ed = 1 mod φ(N ). Le couple (N, e) constitue la clé publique de l’utilisateur. Elle sera utilisée par ses correspondants pour le chiffrement. L’utilisateur garde secrète sa clé privée d et en fera usage pour déchiffrer. Un correspondant désirant lui envoyer un message m se procure la clé publique (N, e) de l’utilisateur puis calcule le message chiffré C = me mod N . C’est ce dernier nombre qu’il lui envoie. L’utilisateur reçoit C. Il calcule grâce à sa clé privée D = Cd mod N . D’après le théorème d’Euler, on a D = mde = m mod N . Il a donc reconstitué le message initial.

Le cryptosystème à clé publique RSA a également été adapté à d’autres fins applica-tives telles que la signature électronique permettant de garantir l’intégrité d’un document et de certifier son auteur comme tel. Le principe de la signature RSA est similaire à celui du chiffrement RSA (voir Chapitre 1.1) à ceci près que l’utilisateur fera usage de sa clé

(12)

CONTENTS 11 privée d pour signer ses messages, et que la clé publique (N, e) de l’utilisateur sera utili-sée par ses correspondants afin de vérifier ses signatures. Ainsi un utilisateur souhaitant signer un message m calcule la signature S = mdmod N et envoie le couple (m, S) au correspondant. Ce dernier calcule alors à l’aide de la clé publique (N, e) de l’utilisateur la valeur Semod N . Si la signature est correcte, ce résultat correspond précisément au message m.

Si le calcul de la vérification de signature Semod N (respectivement le calcul du chiffrement d’un message me mod N ) est généralement peu couteux car en pratique la clé publique e est toujours choisie petite (à cette fin justement, ainsi que pour des rai-sons de consommation mémoire), il n’en est pas de même du calcul de la signature S = mdmod N (respectivement du calcul du déchiffrement d’un message Cd mod N ) car l’exposant secret d est nécessairement grand pour des raisons de sécurité. Aussi, dans les systèmes embarqués tels que les cartes à puces où les critères de performances sont souvent cruciaux, la plupart des implantations de RSA utilisent le mode CRT basé sur le Théorème des Restes Chinois, qui permet une accélération du calcul de cette exponentia-tion modulaire d’un facteur 4 [CQ82]. Ainsi, dans le cadre de la signature RSA, le mode CRT consiste à effectuer le calcul S = mdmod N en deux temps : une fois modulo p et une autre modulo q, puis la signature finale modulo N est obtenue par recombinaison des deux résultats, en utilisant par exemple la formule de Garner [Gar59] (un rappel est fourni au Chapitre 1.1).

Dans le cryptosystème RSA, il est aisé d’observer que la connaissance des entiers premiers p et q permet de retrouver la clé privée d de l’utilisateur. Actuellement, il n’y a aucune méthode connue, capable de factoriser dans un temps convenable de très grands entiers. Le fonctionnement du cryptosystème RSA est ainsi basé sur cette difficulté. RSA est donc un protocole cryptographique que l’on peut présumer sûr dès lors que la taille des entiers p et q est suffisamment grande. Typiquement, aujourd’hui la taille des pre-miers utilisés est de 512, 1024 ou 1536 bits, à savoir qu’une taille de 512 bits n’est déjà plus recommandée.

De toute évidence, le cryptosystème RSA a été une cible notable des attaquants. Mais de fait, si RSA est encore l’un des cryptosystèmes les plus utilisés aujourd’hui, c’est parce qu’il s’avère très résistant aux cryptanalyses théoriques dans le cas général. Cependant, de nombreuses attaques mettant en jeu des cas particuliers d’utilisation ou des paramètres vulnérables, ont été publiées. Par exemple, en 1989 Wiener montre, à l’aide d’un développement en fractions continues de N/e, que l’utilisation d’une petite clé secrète d est à bannir [Wie90]. De même, Håstad en 1985 montre qu’en interceptant le même message envoyé à plusieurs destinataires différents, il est possible de retrouver le message originel si la clé publique e est suffisamment petite [Hås85]. D’autres attaques permettant la factorisation de N = pq s’appliquent lorsque le facteur premier p est tel que p − 1 ou p + 1 est friable (ne possédant que de petits facteurs premiers). À ce sujet, les méthodes p − 1 de Pollard [Pol74] et p + 1 de Williams [Wil82] sont les plus connues et l’adoption d’entiers qui ne soient pas friables devient nécessaire. C’est la raison pour

(13)

laquelle la norme ANSI X9.31 [ANS98] ou FIPS186-4 [FIP13] de génération de clés RSA s’attarde à générer des entiers dits premiers forts, respectant ces propriétés.

Attaques physiques sur système embarqué

Ainsi, les attaques proposées dénotent souvent plus un problème d’utilisation du cryp-tosystème qu’un problème de fond lié à la sécurité intrinsèque de celui-ci. Plus encore, la sécurité théorique d’un cryptosystème ne garantit pas forcément une sécurité lors de son utilisation dans la pratique. En effet, la mise en œuvre d’un protocole cryptographique dans un système embarqué tel qu’une carte à puce peut facilement être attaquée si elle a été réalisée sans précautions particulières.

Les analyses par canaux auxiliaires (Side-Channel Analysis en anglais et SCA en abrégé), introduites par les travaux de Paul Kocher en 1996 [Koc96], visent à exploi-ter les fuites d’informations physiques du système embarqué (voir Chapitre 1.2). Ainsi, certaines valeurs manipulées par le dispositif, portant de l’information secrète, peuvent être retrouvées par un attaquant lorsque ces dernières sont maniées sans précautions. À l’origine, le temps d’exécution était principalement utilisé comme fuite d’information exploitable, mais d’autres paramètres comme la consommation électrique ainsi que le rayonnement électromagnétique sont rapidement devenues les sources d’exploitation les plus efficaces pour attaquer la cryptographie embarquée [KJJ99, QS00].

Les fuites telles que la consommation électrique de la carte, peuvent être exploitées principalement de deux manières : si l’on considère une seule mesure, on peut effectuer une analyse simple par courant ou SPA (Simple Power Analysis en anglais) ; si l’on en considère plusieurs, une Analyse différentielle par courant ou DPA (Differential Power Analysis en anglais) peut être réalisée. Ces attaques sont dites passives, en ce sens que les données manipulées par le système embarqué ne sont pas modifiées par l’attaquant, mais seulement observées et analysées par celui-ci, afin d’obtenir des informations sensibles.

Une attaque SPA consiste à analyser les variations et les pics de la consommation électrique du circuit dans le but de découvrir des informations secrètes comme la clé de chiffrement. La signature RSA est typiquement vulnérable à ce type d’attaque si aucune précaution n’est prise. Par exemple, si l’exponentiation modulaire est implantée suivant l’algorithme Square-and-Multiply, où l’opération effectuée change selon que le bit traité soit 0 ou 1, l’exposant secret d peut directement être extrait par simple lecture d’une unique courbe car l’opération de mise au carré et celle de la multiplication signent diffé-remment. Une contremesure naturelle consiste à employer des algorithmes dits réguliers qui effectuent la même opération peu importe la valeur du bit d’exposant (par exemple, les algorithmes Square-Always ou Montgomery ladder [JY02, CFG+11]).

Une attaque DPA nécessite quant à elle un grand nombre de mesures extraites de plusieurs exécutions utilisant la même clé. L’idée consiste à identifier une variable in-termédiaire dite sensible manipulée durant l’exécution de l’algorithme qui dépend d’une petite partie de la clé secrète et d’une donnée connue qui peut être modifiée à chaque exécution de l’algorithme. Ainsi, dès lors qu’une variable sensible est identifiée, une

(14)

re-CONTENTS 13 cherche exhaustive va pouvoir être effectuée sur la petite partie de la clé secrète et le choix correct sera validé à l’aide d’un traitement statistique mettant en corrélation la valeur sensible associée au choix du secret, et l’ensemble des courbes de fuites obtenues lors de la manipulation de cette variable : le choix correct est celui pour lequel le niveau de corrélation est le plus élevé. De fait, la signature RSA en mode CRT est vulnérable aux DPA. En effet, une attention particulière portée sur les valeurs intermédiaires des calculs permet de remarquer que la valeur bS/qc peut à un moment donné être manipu-lée. Puisque cette valeur dépend de la clé secrète q ainsi que de la signature S qui peut être modifiée d’une exécution à l’autre, cette valeur est sensible et une DPA permettrait de la retrouver, et donc d’obtenir le secret q. Des contremesures classiques pour résister à la DPA consistent à employer des techniques de masquage, c’est-à-dire à randomiser le module N , le message m et l’exposant d comme décrit dans [AFV07] afin d’introduire une donnée inconnue qui est modifiée à chaque exécution de l’algorithme, ce qui rend l’attaque impraticable.

Les attaques par injection de fautes (Fault Injection en anglais et FI en abrégé) pour-voient à l’attaquant un autre chemin d’attaque (voir Chapitre 1.2). Ces attaques sont dites actives dans le sens où elles permettent la réalisation de modifications sur le système embarqué, allant d’une simple altération des données manipulées, jusqu’à la détérioration irréversible du matériel. Les attaques par faute visent à perturber les calculs cryptogra-phiques, de sorte qu’une analyse du résultat erroné correspondant permet à l’attaquant de retrouver la clé secrète [GT04]. Le cryptosystème RSA a été le premier d’une longue liste (DES, ElGamal, DSA, etc.) à fléchir face aux attaques par fautes avec la très célèbre attaque dite de Bellcore [Bel96, BDL97] qui s’applique sur la signature RSA lorsque le mode CRT est employé. L’idée consiste à injecter une faute durant le calcul modulo p, et à laisser inchangé celui modulo q. Si l’on a accès à un couple de signatures correcte et erronée (S, ˜S) du même message, un simple calcul du PGCD de S − ˜S avec N per-met de retrouver l’entier secret premier q. Une contre-mesure naturelle consiste à vérifier l’exactitude de la signature S avant de la rendre publique, de sorte que la signature est retournée si et seulement si Semod N = m et qu’un attaquant ne puisse jamais avoir accès à une signature erronée.

Ainsi, les SCA et FI ont soulevé un intérêt certain aussi bien au sein de la com-munauté académique qu’industrielle et ont été amplement étudiées au cours des deux dernières décennies. Les impacts dans le domaine de l’industrie de ces deux types d’at-taques sont conséquents puisque les produits sécurisés doivent être certifiés afin de prou-ver leur résistance contre de telles menaces. Aussi, ces dernières années, la communauté cryptographique a également exploré l’éventuelle possibilité de combiner les deux types d’attaques. Ceci a donné lieu à la création d’une nouvelle classe d’attaques appelée at-taques combinées (Combined Attacks en anglais) qui se focalisent particulièrement sur des implémentations supposées résistantes aux attaques par canaux auxiliaires et par fautes.

(15)

Attaques physiques combinées

L’idée d’associer SCA et FI est apparue en 2007 avec la publication par Amiel, Feix, Marcel et Villegas d’une attaque combinée sur une implantation de RSA protégée contre les attaques par injection de fautes et les SPA [AFMV07]. Ils remarquèrent qu’en for-çant, à l’aide d’une FA, la mise à zéro de l’un des registres temporaires utilisés dans l’algorithme Montgomery ladder, sa structure se déséquilibrait, permettant ensuite la ré-vélation de l’exposant secret par SPA. Suite à cette publication, trois autres papiers ont vu le jour, basés sur cette nouvelle manière d’attaquer les systèmes embarqués. Deux d’entre eux présentent une attaque combinée contre une implantation sécurisée de l’AES [RM07, RLK11]. Le troisième est axé sur la multiplication scalaire employée au sein de cryptosystèmes basés sur les courbes elliptiques [FGV11]. Les attaques combinées restent cependant assez peu nombreuses, prouvant ainsi la difficulté de concevoir de telles attaques.

Proposition d’une Attaque Combinée FI/DPA

Une première contribution de cette thèse qui sera détaillée dans le Chapitre 6 consiste en la proposition d’une nouvelle attaque combinée sur une implantation RSA en mode CRT, résistante aux SCA (grâce à l’utilisation de techniques de masquage) et protégée contre les attaques par fautes (grâce à la vérification de la signature en utilisant l’ex-posant public e). Une telle implantation était connue pour résister à toutes les attaques publiées jusqu’alors. Cependant, nous montrons qu’en injectant une faute durant le calcul de la signature, une variable sensible sera manipulée lors de la vérification publique, de sorte qu’une SCA pourra subséquemment être appliquée afin de la retrouver, et obtenir dans le même temps l’un des facteurs premiers secrets. Plus précisément, si l’on faute le message m pour le calcul de la signature modulo p de sorte que le message fauté ˜m soit tel que ˜m = m + ε et que l’on laisse inchangé le calcul modulo q, alors la valeur manipulée lors de la vérification publique avec l’exposant e n’est plus Se ≡ m mod N , mais ˜Se ≡ m + εqiq mod N où iq = q−1 mod p. Ainsi, on remarque aisément que cette

valeur est sensible puisqu’elle dépend d’une partie secrète εqiq qui ne change pas d’une exécution à l’autre (sur la base de l’hypothèse que ε reste constant) et d’une partie connue m qui peut être modifiée à chaque exécution de l’algorithme. L’application d’une DPA permettrait donc de retrouver εqiq comme illustré en Figure 1. Par suite, un simple calcul du PGCD de εqiq avec N permet de retrouver l’entier secret premier q, et donc la

factorisation de N .

Ainsi, le but de la réalisation de cette DPA est de retrouver grâce à des fuites du modèle physique, la valeur de l’inconnue εqiq (afin de factoriser N comme expliqué

pré-cédemment). En fait, une analyse théorique permet de modéliser le problème par la re-cherche des racines entières d’un certain polynôme à deux variables modulo N . En effet, grâce à l’identité de Bézout, nous avons la relation pip+qiq≡ 1 mod N où ip = p−1 mod q

(16)

dis-CONTENTS 15

Figure 1 – CPA durant la recombinaison CRT effectuée lors de la signature RSA.

Plusieurs exécutions de l’algorithme de Signature RSA avec des messages d’entrée différents mi

et une faute constante injectée ε

Mesure de courant durant la manipulation de S˜i

e

= mi+ εqiq

Estimation des mesures de courant L(mi+ k) pour chaque k possible

Traitement Statistique

Le choix k correct est identifié

Pour chaque partie k du secret εqiq

paraît car pq ≡ 0 mod N , ce qui donne l’équation finale : ε2q2i2q− ε2qi

q ≡ 0 mod N . Si

l’on suppose la faute ε connue ou petite (de sorte qu’elle puisse être recherchée exhaus-tivement), la valeur de l’inconnue εqiq est solution entière y0 de l’équation modulaire

y2− εy ≡ 0 mod N .

De même, le problème plus général de la factorisation RSA peut également être modélisé par la résolution de l’équation polynomiale à deux variables sur les entiers N − xy = 0 où x0 = p et y0 = q sont les solutions entières recherchées.

De fait, la recherche des secrets de l’ensemble des cryptosystèmes existants peut se modéliser par la résolution d’équations ou de systèmes d’équations à une ou plusieurs variables. La sécurité de ces cryptosystèmes est donc intrinsèquement liée à la difficulté de résoudre de telles équations. Le problème Diophantien consistant à trouver les solutions entières d’équations polynomiales, spécifié comme étant le 10ème problème de Hilbert, a été prouvé indécidable en 1970 [Mat00].

Problématique

Un sous-problème crucial en cryptanalyse consiste à s’intéresser aux solutions exis-tantes au sein de certains sous-espaces, comme par exemple, chercher l’ensemble des petites solutions entières de certaines équations polynomiales. Ce problème est pertinent en cryptologie car si l’ensemble des attaques physiques décrites précédemment (SCA, FI) permettent quelques fois de retrouver la totalité de certaines données secrètes, dans nombre de cas, seulement une partie du secret est dévoilée. L’avantage d’un attaquant connaissant une partie du secret se modélise précisément par le fait qu’il n’ait à recher-cher que les solutions entières d’équations polynomiales qui soient petites. La très célèbre méthode de Coppersmith s’attache justement à résoudre ce problème, et notamment à

(17)

spécifier la notion du terme « petit » jusqu’alors imprécise.

Méthodes de Coppersmith pour trouver les petites solutions

entières d’équations polynomiales

Coppersmith s’est intéressé à deux formes de polynômes en particulier, à savoir les po-lynômes univariés modulo un entier N de factorisation inconnue f (x) ≡ 0 mod N , ainsi que les polynômes bivariés sur les entiers f (x, y) = 0. La résolution de ces deux formes de polynômes est en effet particulièrement intéressante dans le cadre de la cryptanalyse de RSA. Comme il a été précisé précédemment, trouver toutes les solutions entières de ces polynômes est un problème difficile, à savoir, il n’existe pas d’algorithme s’exécutant en temps polynomial permettant d’y arriver (ni de déterminer l’existence de telles solu-tions !). Cependant, Coppersmith publia en 1996 [Cop96b, Cop96a, Cop97] une méthode pour trouver efficacement l’ensemble des petites solutions de ces équations polynomiales. Son résultat le plus simple et peut-être le plus célèbre concerne le cas univarié modulaire, et est le suivant : étant donnés un entier N de factorisation inconnue et un polynôme unimodulaire f (x) à coefficients entiers, de degré δ, on peut retrouver toutes les solutions entières x0 telles que f (x0) ≡ 0 (mod N ) et |x0| ≤ N1/δ en temps polynomial en log N

et δ.

La méthode de Coppersmith s’attache à obtenir, à partir du polynôme modulaire f , un nouveau polynôme v admettant les mêmes solutions, mais ayant la propriété qu’il tienne sur les entiers de sorte qu’il puisse être résolu facilement sur Z. Plus précisément, la méthode construit un polynôme v(x) ∈ Z[x] tel que : si x0 ∈ Z est tel que f(x0) ≡

0 (mod N ) et |x0| ≤ X, alors v(x0) = 0 et peut être résolu sur Z.

La méthode de Coppersmith est basée sur des techniques de réseaux. Un réseau est un arrangement régulier et infini de points dans l’espace, défini par une base. Toutefois, il existe une infinité de bases pour représenter un même réseau, et certaines bases ont des propriétés plus avantageuses que d’autres, en particulier celles comportant des vecteurs courts et relativement orthogonaux. Étant donnée une base quelconque, trouver une base contenant le vecteur le plus court du réseau (connu comme le problème du plus court vecteur ou SVP) est un problème NP-difficile [Ajt96]. Cependant il existe des algorithmes dits de réduction-LLL, traitant une notion plus allégée de réduction de réseaux (comme les algorithmes LLL, L2et ˜L1) permettant de trouver un vecteur relativement court en temps polynomial en la taille des éléments du réseau. La méthode de Coppersmith utilise précisément ces algorithmes afin d’obtenir, à partir d’un vecteur possédant de grands coefficients (correspondant au polynôme original f ), un vecteur court (correspondant au nouveau polynôme v) comportant des coefficients plus petits. De par la construction du réseau initial de Coppersmith, ce nouveau polynôme v a la caractéristique qu’il admet les mêmes racines que le polynôme f . Cependant, ayant de petits coefficients, ce polynôme v s’annulera en x0 sur les entiers, sous réserve que la solution recherchée x0 soit également

petite, d’où l’efficacité de la méthode de Coppersmith pour trouver uniquement les petites solutions.

(18)

CONTENTS 17

Quelques applications des méthodes de Coppersmith

De nombreuses applications de la méthode de Coppersmith ont vu le jour dans le do-maine de la cryptanalyse à clé publique (par exemple, pour attaquer des cas particuliers de RSA, ou pour factoriser N avec la connaissance de certains indices ou certaines par-ties des secrets p, q, d, etc.), mais aussi dans quelques preuves de sécurité (comme dans RSA-OAEP [Sho02]). De fait, les travaux de Coppersmith ont donné lieu à des dizaines d’articles introduisant de nouvelles variantes, généralisations et simplifications (notam-ment celle due à Howgrave-Graham [HG97] devenue une référence dans le domaine). Les applications ont également été nombreuses (se référer à [May10]). Les plus connues sont sans doute la factorisation du module RSA N = pq avec la connaissance de la moitié des bits de p [Cop96a], avec un petit exposant public e (typiquement lorsque e = 3) [Cop97], avec des petits exposants-CRT secrets [BM06] ou encore lorsque d < N0.29 [BD99].

Application à l’attaque combinée sur CRT-RSA

Dans ce contexte, une analyse de la contribution présentée en Figure 1 nous a per-mis de proposer une amélioration de la complexité de l’attaque grâce à la méthode de Coppersmith. En effet, la DPA employée au sein de l’attaque combinée qui permet de retrouver la variable sensible εqiq s’effectue partie par partie (typiquement par tranche

de 8 bits). Ainsi, dans l’équation modulaire ε2q2i2q− ε2qi

q ≡ 0 mod N précédemment

ob-tenue, si l’on écrit εqiq= 2tk + x où 2tk représente la partie haute de εqiq connue grâce

à la DPA déjà effectuée sur cette partie, et où x représente la partie basse non encore obtenue, l’on obtient que le secret x est solution d’une équation univariée modulaire de degré 2 (si l’on suppose la faute ε connue ou petite). D’après le théorème de Coppers-mith, la solution x peut être retrouvée si sa taille est plus petite que la moitié de celle de N . Ainsi, dans le cas où N est un entier de 2048 bits, il suffit de retrouver les 1024 bits de poids fort de εqiq pour obtenir spontanément les 1024 bits de poids faible, ce qui

conduit à une accélération significative de l’attaque. Il est intéressant de noter que les mêmes résultats sont obtenus si la DPA procure en premier lieu les bits de poids faible et non de poids fort. Une extension de l’attaque combinée traitant le cas où la faute ε est inconnue est également proposée. Ces résultats sont détaillés dans le Chapitre 6.

Factorisation de N = prq lorsque r est grand : état de l’art

La factorisation des modules de la forme N = prq constitue une extension pertinente de la méthode de Coppersmith. De fait, l’utilisation de tels modules a été introduite en cryptographie il y a plusieurs années avec la proposition de certaines applications, notamment pour le cas r = 2, avec la conception par Fujioka et al. [FOM91] d’un schéma de paiement électronique mettant en avant l’emploi d’un module N = p2q, ainsi qu’avec la construction d’un cryptosystème à clé publique probabiliste par Oka-moto et Ushiyama [OU98]. Plus généralement, il a été souligné par Takagi dans [Tak98] que l’utilisation de modules N = prq pour RSA pouvait conduire à un déchiffrement

(19)

significativement plus rapide qu’avec l’utilisation de modules classiques N = pq.

À Crypto 99, Boneh, Durfee et Howgrave-Graham (BDH) analysèrent la sécurité face à l’utilisation de tels modules, en ce qui concerne les méthodes basées sur les réseaux. Les auteurs aboutirent en la conception d’une méthode pour factoriser les modules N = prq, grâce à une adaptation de la méthode de Coppersmith pour la factorisation des polynômes univariés modulaires. La condition pour obtenir une factorisation en temps polynomial est que l’exposant r soit grand, à savoir que r ' log p lorsque q 6 pO(1) [BDHG99]. En fait, les auteurs montrent que la connaissance d’une fraction 1/(r + 1) des bits de p est suffisante pour factoriser N = prq en temps polynomial. Ainsi, lorsque r ' log p, la connaissance d’un nombre constant de bits de p est nécessaire. Par conséquent, ces bits peuvent être retrouvés par recherche exhaustive, ce qui rend la factorisation de N = prq réalisable en temps polynomial.

Ainsi, la méthode de BDH met en avant la vulnérabilité de l’utilisation de tels mo-dules N = prq. On pourrait naturellement être tenté d’utiliser des modules de la forme N = prqs afin d’éviter l’attaque précédente, d’autant plus que la technique employée dans [Tak98] pour un déchiffrement rapide modulo p peut également être appliquée à q, ce qui apporte une accélération supplémentaire comme cela a été montré à Indocrypt 2000 dans [LKYL00] : ainsi, l’utilisation d’un module N = p2q3 de 8196 bits permet un déchiffrement 15 fois plus rapide en comparaison à l’emploi d’un module RSA classique N = pq de la même taille. Aussi, dans [BDHG99] les auteurs ont laissé explicitement ouvert le problème de la généralisation de la méthode BDH à des modules de la forme N = prqs lorsque r et s ont approximativement la même taille.

Proposition d’une méthode pour factoriser N = prqs

Dans ce contexte, une contribution de cette thèse qui sera détaillée dans le Chapitre 5, consiste en l’apport d’une solution à ce problème ouvert : de tels modules N = prqs de-vraient également être utilisés avec précaution, puisque lorsque r ou s est grand, factoriser N = prqs peut également se faire en temps polynomial. En effet, nous proposons un nou-vel algorithme déterministe pour factoriser N = prqs en temps polynomial lorsque r ou s est plus grand que (log p)3.

Deux tentatives naturelles pour arriver à ce résultat échouent. La première serait d’écrire Q := qs et d’appliquer la méthode BDH sur le module N = prQ, cependant la condition pour une factorisation polynomiale serait r ' log Q ' s log q, ce qui n’aboutit pas si r et s ont approximativement la même taille. La deuxième approche consisterait à écrire N = (P + x)r(Q + y)s et à appliquer le théorème de Coppersmith pour le cas bivarié modulaire sur les entiers. Cependant, la condition serait p · q < p2/3q2s/(3r), ce qui ne donne jamais lieu à une factorisation en temps polynomial.

La méthode que nous proposons fait appel aux deux techniques suivantes : celle de Coppersmith traitant le cas univarié modulaire, ainsi que son extension proposée par BDH. Nous illustrons en premier lieu notre méthode à l’aide d’un cas particulier : le module de la forme N = prqr−1. Comme expliqué précédemment, la méthode BDH ne peut pas être appliquée directement à N = prQ avec Q = qr−1, car la condition pour

(20)

CONTENTS 19 une factorisation en temps polynomial serait r = Ω(log Q) = (r − 1)Ω(log q), condition qui n’est jamais satisfaite. Toutefois, il est possible d’écrire N de la façon suivante : N = (pq)r−1p = Pr−1Q avec P := pq et Q := p. Cette représentation permet d’appliquer la méthode BDH pour retrouver P et Q (et donc p et q), avec r = Ω(log Q) = Ω(log p) comme condition pour une factorisation en temps polynomial, cette condition étant es-sentiellement la même que celle obtenue dans la méthode BDH. Par conséquent, cela met en avant le fait que N = prq n’est pas la seule classe d’entiers qui peut être facto-risée de manière efficace ; il est également possible de factoriser des modules de la forme N = prqr−1 en temps polynomial lorsque r est suffisamment grand.

Il est aisé de généraliser l’observation précédente à l’ensemble des modules de la forme N = pα·r+aqβ·r+b lorsque les entiers α, β, a et b sont petits. En effet, on peut écrire P := pαqβ et Q := paqb et appliquer BDH sur N = PrQ pour retrouver P et Q (donc p et q). La condition pour une factorisation en temps polynomial est de nouveau r = Ω(log Q), qui, pour des petites valeurs a et b donne la même condition r = Ω(log p) que précédemment (en supposant que p et q ont une taille similaire).

Il est ensuite naturel de se demander si l’on peut généraliser cette méthode pour l’ensemble des modules N = prqs. Autrement dit, une question intéressante est de se demander quelles sont les classes d’entiers (r, s) pouvant être représentées ainsi :



r = u · α + a

s = u · β + b (1)

où u est un entier suffisamment grand et α, β, a, b des entiers suffisamment petits, pour que la méthode précédente puisse être appliquée (à savoir, le module N = prqs serait représenté par N = PuQ où P := pαqβ et Q := paqb, et la méthode BDH serait appli-quée sur N = PuQ afin de retrouver P et Q, et donc p et q). Aussi, le résultat que nous obtenons est le suivant :

Théorème 1. Soit N = prqs un entier de factorisation inconnue avec r > s et pgcd(r, s) = 1. Les facteurs premiers p et q peuvent être retrouvés en temps polynomial en log N si la condition suivante est satisfaite :

r = Ω(log3max(p, q)) .

En effet, sous cette condition, nous sommes assurés de trouver une « bonne » décom-position de r et s suivant (1), permettant une factorisation en temps polynomial de N = prqs. Ainsi, une nouvelle classe d’entiers pouvant être factorisés efficacement est identifiée : celle des modules N = prqs lorsque r ou s est grand.

En outre, pour obtenir la borne Ω(log3max(p, q)), il est essentiel de considérer éga-lement une méthode de factorisation alternative. En effet, si l’on examine de nouveau le module initial N = prqr−1, nous remarquons que l’on peut également écrire N = (pq)r/q, ce qui conduit à la relation (pq)r ≡ 0 (mod N ). Par conséquent, P = pq est une petite racine d’un polynôme univarié modulo N et de degré r. Ainsi, l’on peut appliquer le pre-mier théorème de Coppersmith pour trouver les petites solutions des polynômes univariés modulaires avec la condition P < N1/r = P q−1/r. Cette condition peut être satisfaite

(21)

en effectuant une recherche exhaustive sur les (log q)/r bits de poids fort de P , ce qui reste réalisable en temps polynomial si r = Ω(log q). En conséquence, l’on obtient une deuxième méthode (basée sur le théorème de Coppersmith pour le cas univarié modu-laire) pour factoriser les modules de la forme N = prqr−1 sous la condition r = Ω(log q), condition identique à celle obtenue par l’utilisation de la première méthode (basée sur BDH). Comme précédemment, cette observation peut se généraliser aisément aux mo-dules de la forme N = pα·r+aqβ·r+blorsque α, β, |a| et |b| sont suffisamment petits, et où cette fois-ci, les entiers a et b sont tous deux négatifs.

Ainsi, nous montrons dans cette thèse que l’utilisation alternée des deux méthodes (BDH et Coppersmith) permet la factorisation en temps polynomial des modules de la forme N = prqslorsque r ou s (le « ou » est non exclusif) est de l’ordre de Ω(log3max(p, q)). Nous soulignons le fait que les deux méthodes, utilisées de manière alternée selon les mo-dules, sont essentielles pour l’obtention d’une telle condition : dans le cas où une seule mé-thode (soit BDH, soit Coppersmith) est employée, la condition plus forte Ω(log5max(p, q)) semble nécessaire.

Généralisation aux modules N =Qk

i=1p ri

i

Nous proposons également dans le Chapitre 5 une généralisation de cette méthode aux modules de la forme N =Qk

i=1p ri

i . En particulier, nous montrons qu’il est toujours

possible d’extraire un facteur non trivial de N en temps polynomial si l’un des k exposants riest plus grand que logθk(max pi), où les premières valeurs de θksont données en Table 1

(à savoir θ2 = 3, θ3 = 9, θ4 = 25, etc.) et plus généralement θk ∼ O(k!) lorsque k est

grand. Ainsi, l’exposant θkgrandit exponentiellement avec le nombre de facteurs premiers

k, cependant, pour une valeur de k fixée, extraire un facteur non trivial de N s’effectue en temps polynomial en log N .

Table 1 – Valeurs de θk pour un module N = Qki=1prii avec k facteurs premiers. La

condition sur le plus grand exposant rj est rj = Ω(logθkmax p

i).

k 2 3 4 5 6

θk 3 9 25 81 321

Résultats d’implantation

Nous avons implanté notre algorithme en considérant quatre modules N = prqs où r = 8, et s = 1, 3, 5, 7, avec des premiers p et q de 128 bits. D’après notre analyse pour chaque module N , nous avons indiqué en Table 2, la meilleure méthode à employer (BDH ou Coppersmith) ainsi que la décomposition correspondante. Le temps d’une réduction-LLL est également précisé (réalisé sur un PC 3.20-GHz Intel Xeon), ainsi que le temps total estimé pour factoriser N (obtenu en multipliant le temps d’une réduction-LLL par 2t où t est le nombre de bits manquants, sur lesquels la recherche exhaustive s’effectue).

(22)

CONTENTS 21

Table 2 – Module N , méthode employée (BDH ou Coppersmith), nombre de bits man-quants, dimension du réseau, temps d’exécution de la réduction-LLL, et temps global estimé.

Méthode (pαqβ)upaqb bits manquants dim. LLL Temps estimé

N = p8q BDH p8q 29 68 8.6 s 146 années

N = p8q3 Copp. (p2q)4q−1 51 61 4.2 s 3 · 108 années

N = p8q5 BDH (p2q)4q 55 105 1.3 s 2 · 109 années

N = p8q7 Copp. (pq)8q−1 38 81 26 s 2 · 105 années

Notre méthode de factorisation de N = prqs (tout comme celle de BDH pour N =

prq) est moins performante que la méthode ECM [Len87] pour des tailles de p et q relati-vement petites comme c’est le cas dans nos expériences (p et q de 128 bits). Cependant, notre algorithme s’exécute en temps polynomial en la taille de N tandis que ECM est exponentiel, ce qui signifie que notre algorithme devient plus intéressant que ECM pour des tailles de p et q assez grandes.

Performance de ces méthodes basées sur les réseaux en pratique

Tout ces algorithmes permettant de trouver les petites solutions d’équations polyno-miales sont basés sur la même idée qui consiste à obtenir de nouveaux polynômes grâce à la réduction de réseau. En théorie, ceci peut être réalisé en temps polynomial grâce aux algorithmes de réduction-LLL, cependant en pratique cela n’est pas tout aussi trivial. En effet, le temps d’exécution asymptotique est un polynôme de haut degré, car le réseau à réduire est gigantesque. Plus précisément, la complexité de la méthode de Coppers-mith est O((log9N )/δ2) lorsque l’algorithme L2 de Nguyen et Stehlé [NS09] est utilisé

pour effectuer la réduction-LLL. Les applications courantes de la méthode de Coppers-mith comportent des polynômes de faible degré (δ 6 9), toutefois la valeur log N est la taille d’un module RSA donc elle ne vaut pas moins de 1024, ce qui rend la complexité théorique considérable : la quantité log9N vaut déjà plus de 290.

Ainsi, le véritable goulot d’étranglement de l’ensemble des algorithmes basés sur la méthode de Coppersmith est la réduction-LLL. Malgré l’attention considérable portée sur ces algorithmes, aucune amélioration conséquente permettant de réduire leur temps d’exécution n’a été publiée, hormis le fait que les algorithmes de réduction-LLL ont connu des avancées depuis la publication de l’article [Cop97] (avec l’apparition de L2 [NS09] et

˜

L1 [NSV11]). Ce problème apparaît dans les expériences (voir [CNS99]) : en pratique on ne peut trouver les petites racines que jusqu’à une borne qui est plus petite que la borne théorique annoncée. Ce point peut être illustré par l’attaque de Boneh-Durfee [BD00] sur RSA lorsqu’un petit exposant secret est utilisé. En particulier, la borne théorique permettant de factoriser N est d ≤ N1−1/

2 ≈ N0.292, mais le plus grand d que font

(23)

module N de 1000 bits. Lorsque N grandit, les résultats pratiques s’éloignent plus encore de la borne théorique, avec par exemple d ≈ N0.265 pour N de 4000 bits.

Proposition d’accélération de la méthode de Coppersmith

Dans ce contexte, où la borne théorique énoncée par la méthode de Coppersmith est souvent difficilement atteignable, voire totalement inaccessible à cause du temps d’exé-cution fort conséquent en pratique, une contribution de cette thèse (présentée dans le Chapitre 4) consiste en la proposition de deux méthodes permettant l’accélération du temps d’exécution de l’algorithme de Coppersmith pour le cas univarié modulaire ; les deux méthodes pouvant être combinées en pratique.

La première accélération résulte de l’application de l’algorithme de réduction-LLL sur une matrice où les éléments sont tronqués (Rounding en anglais). Plus précisément, au lieu de réduire la matrice de Coppersmith contenant des éléments gigantesques, l’idée consiste à tronquer les coefficients de manière appropriée avant d’effectuer la réduction-LLL dans le but de les rendre considérablement plus petits. En procédant de la sorte, nous montrons que la matrice ainsi réduite permet d’obtenir des vecteurs du réseau suf-fisamment courts. En pratique, cela signifie que pour toute instanciation de l’algorithme de Coppersmith permettant de trouver les petites solutions inférieures à une borne X, il est possible de diminuer considérablement la taille des coefficients de la matrice à réduire (asymptotiquement, la taille des éléments est allégée d’un facteur (log N )/δ), tout en atteignant quasiment la même borne X sur les solutions retrouvées.

Si cette stratégie consistant à tronquer les éléments de la matrice de Coppersmith avant d’y appliquer la réduction-LLL est plutôt naturelle, il n’est pas avéré qu’elle puisse être employée sur tout type de matrice. En effet, lorsque l’on tronque les éléments d’une matrice arbitraire non-singulière, celle-ci pourrait devenir singulière, ce qui empirerait la situation pour la réduction-LLL. Cependant, nous montrons qu’une stratégie adaptée fonctionne pour le cas particulier des matrices utilisées par l’algorithme de Coppersmith. En effet, l’on exploite le fait que les matrices à réduire sont triangulaires et que les éléments de la diagonale sont relativement équilibrés.

Il est intéressant de noter que cette propriété peut également être utilisée pour amé-liorer la complexité de la méthode de Coppersmith par une simple analyse, donc sans même modifier la méthode, en remarquant que le nombre d’itérations de l’algorithme de réduction-LLL est fortement lié à l’équilibrage des éléments de la diagonale (voir Chapitre 4).

Ainsi, l’ensemble des complexités obtenues sont présentées en Table 3, en fonction de l’algorithme de réduction de réseau employé (LLL, L2ou ˜L1). Plus précisément, la complexité originale de l’algorithme de Coppersmith est fournie en première ligne à titre de comparaison. La deuxième ligne représente la complexité raffinée avec prise en compte du lien entre le nombre d’itérations et l’équilibrage des éléments. Enfin, la troisième ligne met en évidence les complexités obtenues par l’application de la méthode Rounding.

Par exemple, la complexité originale de la méthode de Coppersmith avec l’utilisa-tion de L2est O((log9N )/δ2). L’analyse raffinée que l’on propose permet en réalité de la réduire à O((log8N )/δ). En outre, l’application de la méthode Rounding apporte une

(24)

CONTENTS 23

Table 3 – Complexité de l’algorithme de Coppersmith en prenant en compte l’analyse originale, l’analyse raffinée et la méthode Rounding. Ces trois complexités dépendent de l’algorithme de réduction de réseau employé (LLL, L2ou ˜L1).

LLL L2 L˜1

Analyse Originale O((log12N )/δ3) O((log9N )/δ2) O((log7+εN )/δ)

Analyse Raffinée O((log11N )/δ2) O((log8N )/δ) O(log6+εN )

Méthode Rounding O(log9N ) O(log7N ) O(log6+εN )

amélioration supplémentaire de la complexité qui devient O(log7N ). Ainsi, l’accélération totale Θ((log2N )/δ2) est quadratique en la taille de la borne sur les petites solutions N1/δ. Le gain est également conséquent avec l’utilisation de LLL où la complexité origi-nale O((log12N )/δ3) devient O(log9N ) avec une accélération globale de Θ((log3N )/δ3) cubique en la taille des solutions N1/δ. Cependant on remarque que l’application de la mé-thode Rounding est moins pertinente lorsque l’algorithme ˜L1est utilisé. En effet, notre analyse permet d’obtenir la complexité O(log6+εN ) au lieu de O((log7+εN )/δ) pour tout ε > 0 avec une arithmétique efficace sur les entiers, ce qui apporte une accélération Θ((log N )/δ) qui est linéaire en la taille des solutions N1/δ, cependant la complexité asymptotique reste O(log6+εN ) avec l’emploi de la méthode Rounding. Cela résulte du fait que l’algorithme ˜L1applique une stratégie similaire consistant à tronquer

successi-vement les éléments de certaines sous-matrices. On peut toutefois ajouter qu’une réelle comparaison des deux approches semble délicate due aux constantes absorbées par le O, une implantation de l’algorithme ˜L1n’étant pas encore diffusée.

Un point intéressant consiste à remarquer que la méthode Rounding permet de clari-fier la complexité asymptotique de l’algorithme de Coppersmith pour le cas de polynômes univariés modulaires. En effet, la dépendance au degré δ n’était jusque-là pas tout à fait claire : par exemple, Coppersmith dans l’article [Cop97] donnait une complexité gran-dissant exponentiellement en δ, mais il est bien connu qu’il s’agit d’une typo et que la complexité était en réalité polynomiale en δ (voir par exemple [BM05b, Theorem 11]). Ainsi, avec l’utilisation de la méthode Rounding, les complexités obtenues ne dépendent plus du degré δ, mais seulement de la taille du module N .

La deuxième méthode d’accélération que nous proposons est heuristique et s’applique lorsque l’on souhaite effectuer une recherche exhaustive afin d’agrandir la borne supé-rieure X des solutions retrouvées par l’algorithme de Coppersmith. C’est le cas par exemple si la solution recherchée dépasse la borne théorique réalisée par l’algorithme de Coppersmith X 6 N1/δ. Mais c’est également et d’abord le cas si l’on souhaite déjà réellement atteindre la borne N1/δ car en pratique cette borne ne peut pas être atteinte en appliquant purement la méthode de Coppersmith puisque cela nécessiterait l’emploi de paramètres impraticables par les machines de calcul actuelles. Plus précisément, les éléments de la matrice à réduire seraient de taille log2N bits, et la matrice de dimension

(25)

log N ; ainsi pour un module N de 2048 bits, la matrice contiendrait 20482/2 soit plus de 2 millions d’éléments (car la matrice est carrée et triangulaire), et la taille de chaque élément serait de plus de 4 millions de bits, ce qui signifie que l’on aurait à réduire une matrice de plus d’un tera-octet.

Ainsi, pour atteindre la borne N1/δ, une recherche exhaustive est préconisée et s’avère considérablement plus efficace. Celle-ci consiste à appliquer l’algorithme de Coppersmith avec le même module N mais sur différents polynômes qui sont tous « décalés » par rapport au pôlynôme initial f (x) : ft(x) = f (X · t + x) où t varie et est tel que 0 6

t < N1/δ/X. Dans cette thèse, nous montrons que ce « décalage » permet d’exhiber des relations entre les matrices à LLL-réduire, et que ces relations peuvent être exploitées en pratique. En effet, au lieu d’appliquer des réductions-LLL de manière indépendante, il est possible de les chaîner. Plus précisément, si B0, B1, . . . , Bn sont les différentes matrices

à réduire, où Bt est la matrice de Coppersmith correspondant au polynôme ft(x), notre

méthode consiste à effectuer une première réduction-LLL coûteuse de la matrice B0,

ce qui donne la matrice BR0. Ensuite, au lieu de réduire B1, réduction qui serait tout aussi coûteuse que celle de B0, l’on réduit la matrice B0R · P où P est une matrice

bien choisie (en l’occurrence, il s’agit de la célèbre matrice de Pascal). Du fait que la matrice B0R· P soit le produit d’une matrice réduite BR

0 par une matrice contenant des

coefficients relativement petits, on peut s’attendre à ce qu’elle soit déjà presque réduite. Par conséquent, sa réduction-LLL devrait être peu coûteuse.

Ce procédé de chaînage (Chaining en anglais) peut ensuite être itéré pour réduire considérablement le temps global de la recherche exhaustive comme illustré en Figure 2. Bien que cette accélération soit conséquente en pratique, elle reste néanmoins heuristique comme nous l’avons précisé plus haut.

Il est judicieux de mentionner que les deux méthodes Rounding et Chaining sont des techniques ayant déjà été auparavant utilisées dans le domaine de la réduction de réseau. En effet pour ce qui est de la technique Rounding, elle a été utilisée par Buchmann [Buc94] pour estimer de manière rigoureuse dans quel cas un calcul avec des réseaux sur les réels pouvait être effectué alternativement à l’aide de réseaux sur les entiers. Comme nous l’avons précisé précédemment, l’algorithme ˜L1 [NSV11] est également basé sur cette stratégie de Rounding. La méthode Chaining quant à elle, a par exemple été utilisée dans le contexte MIMO [NJD11] (avec une technique et analyse toutefois différente de la nôtre). Cependant, malgré ces premiers résultats, les travaux présentés dans cette thèse proposent la première amélioration connue de l’algorithme de Coppersmith. Enfin, plus récemment, un article de Saruchi, Morel, Stehlé et Villard [SMSV14] traite le cas de la technique Rounding sur des matrices plus générales que celles spécifiques à la méthode de Coppersmith. Les bornes qu’ils obtiennent appliquées au cas des matrices de Coppers-mith sont très proches de celles que l’on fournit dans notre étude : elles sont légèrement moins avantageuses car leur analyse prend en compte la réduction-LLL de l’ensemble de la matrice, alors que notre approche ne requiert que des bornes sur le premier vecteur de la base réduite.

(26)

CONTENTS 25

Figure 2 – Nouveau schéma Chaining de recherche exhaustive au sein de la méthode de Coppersmith. Une première matrice B0 est LLL-réduite, puis les matrices sont chaînées

par l’application de P et successivement LLL-réduites.

t = 0 t = 1 t = 2

. . .

   B0       B R 0    Matrices LLL-Réduites    B1    × P    B R 1       B2    × P    B R 2   

. . .

Enfin, nous montrons que les deux méthodes d’accélération peuvent être combinées. Dans ce cas, en pratique, le nouvel algorithme s’exécute des centaines de fois plus ra-pidement pour des paramètres typiques. Par exemple, si l’on considère le polynôme f (x) = x2 + ax + b ≡ 0 mod N de degré δ = 2, où la borne théorique sur les pe-tites solutions est X 6 N1/2, l’application des méthodes Rounding et Chaining (pour

atteindre la borne théorique N1/2) permet une accélération de quelques dizaines à milliers de fois suivant les modules, comme illustré en Table 4.

Table 4 – Temps global de recherche exhaustive avec l’utilisation de la méthode originale et de la nouvelle méthode (Rounding et Chaining combinés) pour des tailles de N de 512, 1024, 1536 et 2048 bits.

dlog2(N )e = 512 dlog2(N )e = 1024 dlog2(N )e = 1536 dlog2(N )e = 2048 Méthode Originale 47 minutes 13.1 jours 108.5 jours 7.9 années Nouvelle Méthode 52 secondes 1.2 heures 5.2 heures 2.6 jours Accélération 54 262 502 1109

Ainsi, il est pertinent de noter que pour des paramètres typiques, le fait d’atteindre (voire de dépasser !) la borne théorique de Coppersmith, borne qui était jusqu’alors sou-vent quasiment inaccessible en pratique, peut devenir grâce à ces méthodes une chose tout à fait envisageable (les temps passant parfois de plusieurs années à quelques jours).

(27)

Perspectives

Dans cette thèse, la méthode Rounding est appliquée à l’algorithme de Coppersmith pour le cas de polynômes univariés modulaires. Aussi, il serait intéressant d’élargir son emploi à d’autres polynômes, algorithmes, voire à d’autres contextes, avec éventuellement des adaptations à proposer. Ainsi, par exemple, il existe de nombreuses variantes de l’al-gorithme de Coppersmith sur lesquelles l’obtention d’un gain significatif par l’application de cette méthode ne semble pas tout aussi apparent. En effet, on note par exemple la généralisation au PGCD [HG01, BDHG99] qui consiste à trouver les petites solutions x0 telles que f (x0) ≡ 0 mod N où PGCD(f (x0), N ) ≥ Nα et 0 < α ≤ 1, mais aussi la

méthode de Coppersmith pour le cas de polynômes bivariés sur les entiers, ou encore les généralisations aux polynômes multivariés (modulaires ou sur les entiers). Dans ces va-riantes, les matrices sur lesquelles la réduction-LLL est effectuée n’ont plus tout à fait la propriété d’équilibre de l’ensemble des éléments de la diagonale, ce qui rend l’application de la méthode Rounding moins directe, ou du moins nécessitant une adaptation. Cela reste donc un problème ouvert intéressant que d’obtenir une accélération significative sur ces différentes variantes.

Par ailleurs, s’il est vrai que les applications de la méthode Rounding ici traitées concernent le cas d’anneaux Euclidiens, cette méthode semble s’appliquer tout aussi bien à d’autres types de structures, tels que les anneaux de polynômes, les corps de nombres ou corps de fonctions. On note par exemple l’application à l’algorithme Guruswami-Sudan pour le décodage des codes de Reed-Solomon et sa variante améliorée [CH11b] à laquelle la méthode Rounding pourrait s’adapter naturellement. Ainsi il serait intéressant d’y apporter une analyse plus approfondie.

La méthode Chaining a par ailleurs elle aussi été appliquée à l’algorithme de Cop-persmith pour le cas de polynômes univariés modulaires. Toutefois, il serait intéressant d’analyser l’efficacité de son application aux autres variantes. En effet, si l’on observe par exemple le cas de polynômes multivariés creux, l’application de la méthode Chaining pourrait nécessiter l’ajout d’un nombre non négligeable de colonnes (et de lignes) dans la matrice de Coppersmith, ce qui pourrait alourdir les calculs. En effet, afin que la ma-trice de passage conserve des éléments de petite taille, il est nécessaire que l’ensemble des monômes apparaissant au cours du chaînage figurent également dans la matrice de Coppersmith initiale même s’ils s’avèrent superflus au départ. Ainsi, analyser la perti-nence de la méthode Chaining dans ces cas-là pour éventuellement y apporter certaines adaptations, reste un point d’étude ouvert.

Par ailleurs, comme nous l’avons précisé, l’accélération due à l’application de la mé-thode Chaining sur l’algorithme de Coppersmith pour le cas de polynômes univariés modulaires est heuristique. En effet, une analyse de la taille des éléments des matrices réduites lors du déroulement de la méthode Chaining ne permet pas de mettre en avant une amélioration de la complexité asymptotique des réductions-LLL. Toutefois, le gain est considérable en pratique. Cela s’explique intuitivement par le fait que les matrices

(28)

CONTENTS 27 à réduire durant le chaînage sont le produit d’une matrice déjà réduite par une matrice contenant des coefficients relativement petits (matrice de Pascal), et que par suite, le tra-vail à effectuer par l’algorithme de réduction-LLL devrait être moins conséquent. Cela se confirme par une analyse expérimentale illustrée en Figure 3 de la taille des coefficients de Gram-Schmidt de ces matrices (courbe bleue) qui restent relativement proches de ceux de la matrice réduite (courbe verte horizontale) en comparaison de ceux de la matrice de Coppersmith originale (courbe rouge en dents de scie). Cependant une meilleure compré-hension théorique de la forme de la courbe bleue reste un point ouvert qui permettrait d’écarter l’heuristique de la méthode et de mieux quantifier le gain obtenu.

Figure 3 – Taille des coefficients de Gram-Schmidt log2(||bi?||) de chaque vecteur pour

3 matrices : la courbe rouge (dents de scie) est associée à la matrice originale de Cop-persmith (dimension 151) pour un polynôme univarié modulaire de degré δ = 2 et dlog N e = 512 ; la courbe verte (horizontale) représente la matrice LLL-réduite cor-respondante ; la courbe bleue est associée aux matrices intermédiaires à réduire au sein de la méthode Chaining.

Enfin, si cette thèse propose des attaques algébriques et physiques, elle met aussi en avant le lien existant entre ces deux approches, en particulier le fait qu’elles s’avèrent parfois très complémentaires. En outre, si l’on prend également en compte les accéléra-tions proposées pour trouver les petites racines de polynômes, accéléraaccéléra-tions permettant en pratique de repousser les bornes existantes, il pourrait être intéressant d’analyser certaines attaques physiques publiées dans le domaine, afin de les améliorer voire de trouver de nouveaux chemins d’attaque grâce à l’utilisation de méthodes algébriques, et en particulier de méthodes basées sur les réseaux.

(29)
(30)

Part I

State Of The Art

(31)
(32)

Chapter 1

RSA on Embedded Devices and

Physical Attacks

Contents

1.1 RSA Cryptosystem on Embedded Devices . . . 32 1.1.1 RSA Signature in Standard mode . . . 32 1.1.2 RSA Signature in CRT mode . . . 32 1.2 Physical Attacks . . . 33 1.2.1 Non-invasive Attacks . . . 33 1.2.2 Invasive Attacks . . . 38 1.3 Lattices in Physical Attacks . . . 41 1.3.1 SPA on Modular Exponentiation and Lattices: . . . 41 1.3.2 CPA on CRT-Recombination and Lattices: . . . 41 1.3.3 Fault Attacks on RSA and Lattices: . . . 41 Since its introduction in 1978, the RSA cryptosystem has become one of the most used public-key cryptosystems. RSA can be used as a ciphering tool, for example to cipher symmetric keys, but also as a signing tool, namely for numerical signatures, to guaranty the integrity of a document and to authenticate its author. The process of both schemes (ciphering and signing) is similar, even so we rather consider the signing scheme in this chapter since it is by far the most used in practice. Furthermore, it is well known that some computations in RSA can be speeded up by using the famous Chinese Remainder Theorem (CRT). Thusly, we commonly speak about two modes of implementation: the Standard mode, and the CRT mode. In embedded systems like smart cards, most RSA implementations use the CRT mode which yields an expected speed-up factor of about four [CQ82]. However, when using this CRT mode on embedded systems, the implementation becomes more vulnerable to Fault Attacks, as depicted in [BDL97]. More generally, because embedded systems are left to the consumer’s hands, it can be vulnerable to what is called Side-channel analysis.

Hence, in this chapter, we recall the RSA Signature accordingly to both modes, the Standard mode and the CRT mode. Then, we recall the most common side-channels and

(33)

we describe some basic physical attacks on such an algorithm. Eventually, we highlight that physical attacks can sometimes be combined with lattice-based techniques in the sense that physical attacks can possibly allow to recover part of the secret and in some instances, the use of lattice-based techniques can be decisive to recover the whole secret.

1.1

RSA Cryptosystem on Embedded Devices

As previously said, RSA is one of the most used public-key cryptosystems. In practice, it is especially employed in the single framework of electronic signature schemes [RSA78]. In the following we recall how to compute the RSA signature in the Standard mode and the CRT mode.

1.1.1 RSA Signature in Standard mode

If a user wants to sign a message, the following steps should be performed: 1. Creation of the keys:

— Choose two distinct large prime numbers p and q. — Compute their product: N = p × q.

— Compute Euler’s totient function ϕ(N ) = (p − 1)(q − 1). — Choose an integer e which is prime with ϕ(N ).

— Compute d such that ed = 1 mod ϕ(N ). 2. Distribution of the keys:

— The triplet (p, q, d) is the private key of the user. It is kept secret and used to sign a message.

— The pair (N, e) is the public key of the user. It will be used by his correspondent to verify the signature of the message.

3. Sending of the signed message:

— The user who wants to sign a message m ∈ ZN computes the signature S = md

mod N and sends to the correspondent the pair (S, m). 4. Verification of the signature:

— To verify the signature, the correspondent computes Semod N by using the public key (N, e) of the user, and checks if the corresponding result is equal to m. Indeed, according to Euler’s Theorem, one has Semod N = mdemod N = m mod N .

1.1.2 RSA Signature in CRT mode

In the CRT mode, most steps are identical to the ones in the Standard mode. Indeed, Steps 1, 2 and 4 remain alike. However, Step 3 which is the signature computation step, is performed differently, by using the Chinese Remainder Theorem (CRT). Thus, instead of directly computing mdmod N , one separates the computation into two parts, and recombines both results. More precisely, one performs two exponentiations

Figure

Figure 1 – CPA durant la recombinaison CRT effectuée lors de la signature RSA.
Table 2 – Module N , méthode employée (BDH ou Coppersmith), nombre de bits man- man-quants, dimension du réseau, temps d’exécution de la réduction-LLL, et temps global estimé.
Table 3 – Complexité de l’algorithme de Coppersmith en prenant en compte l’analyse originale, l’analyse raffinée et la méthode Rounding
Figure 2 – Nouveau schéma Chaining de recherche exhaustive au sein de la méthode de Coppersmith
+7

Références

Documents relatifs

Strenzke, “A timing attack against the secret permutation in the McEliece PKC,” in Proceedings of the Third international conference on Post-Quantum Cryptography (PQCrypto 2010),

It is shown that a second-order masking scheme secure in the Hamming weight model can be broken with a first-order attack on a device leaking in the Hamming distance model.. This

We propose a leakage-resilient CBC-like message authentication code, and also propose a leakage-resilient PRG-based chosen-plaintext secure encryption scheme for which we quantify

Physical attacks exploit proper- ties of an implementation such as leakage through physically observable parameters (side-channel analysis) or susceptibility to errors (fault

For that second step, we simulate the fault injection by debugging with GDB the optimized round 3 ARM64 implementation of SIKE [14] with curve p434 (non compressed version) using

For block ciphers, Dinur and Shamir proposed the idea of side channel cube attack model in which only one bit of information is available to the attacker after each round [26].. Due

Pr.KADIRI Mohamed * Psychiatrie Pr.MAAMAR Mouna Fatima Zahra Médecine Interne Pr.MEDDAH Bouchra Pharmacologie Pr.MELHAOUI Adyl Neuro-chirurgie Pr.MRABTI Hind Oncologie

For each neighbour in the considered dimensions and directions, their coordinates in dimensions lower than the propagating dimension are checked against the spatial constraints