Security of the Pseudorandom Number Generators and Implementations of Public Key Signature Schemes Jean-Christophe Zapalowicz
Total Page:16
File Type:pdf, Size:1020Kb
Security of the pseudorandom number generators and implementations of public key signature schemes Jean-Christophe Zapalowicz To cite this version: Jean-Christophe Zapalowicz. Security of the pseudorandom number generators and implementations of public key signature schemes. Cryptography and Security [cs.CR]. Université Rennes 1, 2014. English. NNT : 2014REN1S103. tel-01135998 HAL Id: tel-01135998 https://tel.archives-ouvertes.fr/tel-01135998 Submitted on 26 Mar 2015 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. ANNÉE 2014 THÈSE / UNIVERSITÉ DE RENNES 1 sous le sceau de l’Université Européenne de Bretagne pour le grade de DOCTEUR DE L’UNIVERSITÉ DE RENNES 1 Mention : Informatique Ecole doctorale Matisse présentée par Jean-Christophe Zapalowicz préparée au centre de recherche Inria Co-encadrée par Thomas Jensen, directeur de recherche, Inria Thèse soutenue à Rennes le 21 Novembre 2014 devant le jury composé de : Sécurité des générateurs Louis Goubin / rapporteur Professeur — UVSQ pseudo-aléatoires et des Emmanuel Prouff / rapporteur Expert — ANSSI implémentations de Christophe Clavier / examinateur Professeur — Université de Limoges Sylvain Duquesne / examinateur schémas de signature Professeur — Université de Rennes 1 Benoît Gérard / examinateur à clé publique Expert — DGA Benjamin Smith / examinateur Chargé de recherche — Inria Mehdi Tibouchi / examinateur Chercheur — NTT Secure Platform Lab. Pierre-Alain Fouque / co-directeur Professeur — Université de Rennes 1 Remerciements Les premières lignes sont souvent les plus difficiles à trouver et, après réflexion, je les réserve pour Aurélie Bauer et Damien Vergnaud. Si j’ai débuté une thèse, c’est en grande partie grâce à grâce à eux. Ils m’ont dévoilé une voie dans la recherche que je ne pensais pas faite pour moi, et je les en remercie. J’en profite pour saluer toutes les personnes de l’ANSSI que j’avais côtoyées durant mon stage et qui ont certainement participé à mon envie d’en apprendre plus : Henri, Thomas et Thomas, Victor, Joana, Eliane, Yannick, Jean-René, Jean-Claude, Karim et Marion. Enfin, je souhaite remercier David Pointcheval qui m’a offert un poste à l’ENS le temps que mon contrat doctoral se concrétise et a financé plusieurs de mes déplacements. Je remercie Louis Goubin et Emmanuel Prouff qui ont accepté de rapporter ma thèse, et plus généralement tous les membres de mon jury de thèse. Je n’oublie pas bien sûr la DGA qui a financé mes travaux de recherche et Inria qui m’a fourni un environnement de travail remarquable. J’en arrive à celui envers qui je suis le plus reconnaissant : Pierre-Alain Fouque. Faire une thèse c’est bien, s’épanouir pendant trois années c’est encore mieux et Pierre-Alain y est pour beaucoup. Je le remercie donc pour sa présence, sa motivation, son enthousiasme et son expérience de la recherche qu’il a su me transmettre. J’ai également une pensée particulière pour Mehdi Tibouchi qui, bien que travaillant fort loin d’ici, a également beaucoup rythmé ces trois années de thèse grâce à ses idées et son savoir. Je souhaite remercier les membres de l’équipe Celtique dans laquelle j’ai évolué pendant un certain temps, et Lydie qui a toujours été présente pour répondre à mes questions administratives. Je remercie également mes anciens et actuels collègues de bureau pour les très bons moments passés ensemble : Delphine et Arnaud suivis de Pierre, Pierre et Brice. Je salue chaleureusement les personnes de la DGA qui ont souvent ponctué mes vendredis et qui ont, pour certains, participé à mes travaux de recherche : Marion, Vivien, Thomas, Raphaël, Benoît et Jean-Gabriel. Enfin je salue le couple madrilène Gilles et François, les anciens thésards Jérémy et Patrick, et les actuels que sont Sonia et Adrian. Pour finir sur une note beaucoup plus personnelle, je tiens à remercier Astrid qui m’aura attendu pendant ces trois longues années. Cela n’a pas toujours été facile, la distance n’a pas aidé, mais au final, nous sommes toujours ensemble et probablement renforcés. Merci d’avoir été patiente et compréhensive ! C’est aussi grâce à toi que cette thèse s’est bien déroulée ! iii Table des matières 1 Introduction 1 1.1 Cryptographie moderne ............................. 1 1.1.1 Généralités ................................ 1 1.1.2 Cryptographie symétrique ........................ 2 1.2 Cryptographie à clé publique .......................... 3 1.2.1 Schéma de chiffrement à clé publique .................. 3 1.2.2 Signature électronique .......................... 3 1.3 Problèmes difficiles ................................ 4 1.3.1 Factorisation et RSA ........................... 4 1.3.2 Logarithme discret et problèmes Diffie-Hellman ............ 5 1.3.3 Autres problèmes ............................. 6 1.3.4 Sécurité heuristique et sécurité prouvée ................ 6 1.4 Implémentation et cryptanalyse physique .................... 6 1.4.1 Implémentation et problèmes ...................... 6 1.4.2 Cryptanalyse physique .......................... 7 1.5 Générateurs d’aléas ................................ 7 1.5.1 Générateur vraiment aléatoire ...................... 7 1.5.2 Générateur pseudo-aléatoire ....................... 8 1.5.3 Générateur hybride ............................ 8 2 Présentation des travaux 9 2.1 Fautes sur des implémentations du schéma de signature RSA . 10 2.1.1 Attaquer des signatures RSA–CRT avec des fautes sur la multiplica- tion de Montgomery [FGL+12, FGL+13] . 10 2.1.2 Recherche automatique d’attaques par faute sur des implémentations cryptographiques [BDF+14b] ...................... 11 2.1.3 Protéger RSA–PSS de façon prouvée contre des fautes non aléa- toires [BDF+14a] ............................. 12 2.2 Sécurité d’implémentations de ECDSA, Efficacité de Elligator Squared . 13 2.2.1 Décomposition GLV/GLS et sécurité d’implémentations du schéma ECDSA [BDF+14b, AFG+14] ...................... 13 2.2.2 Elligator Squared en caractéristique 2 [AFQ+14] . 14 2.3 Sécurité de générateurs pseudo-aléatoires .................... 15 2.3.1 Retrouver les clés secrètes générées avec des générateurs pseudo- aléatoires faibles [FTZ13] ........................ 15 2.3.2 Exploiter des séquences produites par des générateurs pseudo-aléatoires non linéaires par les méthodes de Coppersmith [BVZ12] . 16 2.3.3 Sécurité du générateur Micali-Schnorr [FVZ13, FZ14] . 17 2.4 Perspectives et problèmes ouverts ........................ 18 2.5 Liste des publications .............................. 19 2.5.1 Articles de conférences .......................... 19 v TABLE DES MATIÈRES 2.5.2 Articles de journal ............................ 20 I Faults on Implementations of the RSA Signature Scheme 21 3 Attacking RSA–CRT Sign. with Faults on Montgomery Multiplication 25 3.1 Introduction .................................... 25 3.1.1 Background ................................ 25 3.1.2 Our contributions ............................. 26 3.1.3 Outline .................................. 26 3.2 Preliminaries ................................... 27 3.2.1 Montgomery multiplication ....................... 27 3.2.2 Exponentiation algorithms using Montgomery multiplication . 28 3.2.3 RSA–CRT signature generation ..................... 28 3.3 Null Faults .................................... 28 3.3.1 Attacking CIOS(A; 1) ........................... 30 3.3.2 Attacking consecutive CIOS steps .................... 30 3.4 Constant Faults .................................. 33 3.4.1 Attacking CIOS(A; 1) ........................... 33 3.4.2 Attacking other CIOS steps ....................... 35 3.5 Zero High-Order Bits Faults ........................... 36 3.6 Fault Models ................................... 38 3.6.1 Characteristics of the perturbation tool . 39 3.6.2 Analysis of classical implementations of the Montgomery multiplication 39 4 Synthesis of Fault Attacks on Cryptographic Implementations 45 4.1 Introduction .................................... 45 4.1.1 Our contributions ............................. 46 4.1.2 Related work ............................... 48 4.2 Fault conditions .................................. 49 4.2.1 Background on lattices .......................... 49 4.2.2 Fault conditions for RSA signatures . 50 4.2.3 Discussion ................................. 54 4.3 Synthesis of Faulted Implementations ...................... 54 4.3.1 Programming and assertion language . 54 4.3.2 Fault models and fault policies ..................... 55 4.3.3 Algorithm ................................. 57 4.4 Applications on RSA–CRT signatures ..................... 59 4.5 Concluding remarks ............................... 60 5 Making RSA–PSS Provably Secure Against Non-Random Faults 61 5.1 Introduction .................................... 61 5.1.1 Infective countermeasures ........................ 61 5.1.2 Our contributions ............................. 62 5.1.3 Related work ............................... 63 5.2 Our results .................................... 63 5.3 Statistical Lemmas ................................ 65 5.4 Security proof ................................... 70 vi TABLE DES MATIÈRES II Security of Implementations