• Aucun résultat trouvé

De la sécurité physique des crypto-systèmes embarqués

N/A
N/A
Protected

Academic year: 2021

Partager "De la sécurité physique des crypto-systèmes embarqués"

Copied!
231
0
0

Texte intégral

(1)

HAL Id: tel-02487098

https://hal.archives-ouvertes.fr/tel-02487098

Submitted on 21 Feb 2020

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.

De la sécurité physique des crypto-systèmes embarqués

Christophe Clavier

To cite this version:

Christophe Clavier. De la sécurité physique des crypto-systèmes embarqués. Cryptographie et sécurité

[cs.CR]. Université de Versailles Saint-Quentin-en-Yvelines, 2007. Français. �tel-02487098�

(2)

Universit´e de Versailles Saint-Quentin Laboratoire de recherche en informatique

De la s´ ecurit´ e physique

des crypto-syst` emes embarqu´ es

TH` ESE

pr´ esent´ ee et soutenue publiquement le 23 novembre 2007

`

a l’ ´ Ecole normale sup´ erieure, Paris pour l’obtention du

Doctorat de l’Universit´ e de Versailles Saint-Quentin-en-Yvelines

(Sp´ ecialit´ e : Informatique)

par

Christophe CLAVIER

Composition du jury

Directeur : Louis GOUBIN Universit´ e de Versailles Saint-Quentin Rapporteurs : Christof PAAR Ruhr-Universit¨ at Bochum

Bart PRENEEL Katholieke Universiteit Leuven Examinateurs : Marc JOYE Thomson R&D

David NACCACHE Ecole normale sup´ ´ erieure Adi SHAMIR Weizmann Institute of Science

Fr´ ed´ eric VALETTE Minist` ere de la d´ efense, DGA/CELAR

Gemplus/Gemalto, La Ciotat

(3)

Mis en page avec la classe thloria.

(4)

A Keny. `

(5)
(6)

Remerciements

C’est avec un grand plaisir que j’aborde l’´ ecriture de ces quelques traditionnels remercie- ments. Qu’ils me permettent de t´ emoigner enfin la reconnaissance et le plaisir de partager que j’´ eprouve envers de nombreuses personnes pr´ esentes dans ma vie d’ing´ enieur et de chercheur, ou

`

a mes cˆ ot´ es dans ma vie personnelle.

La toute premi` ere personne pour qui je voue une immense gratitude est David Naccache . Pour moi comme pour beaucoup d’autres personnes, il a ´ et´ e un responsable d’´ equipe comme on en rencontre tr` es rarement. Il a su insuffler en nous le d´ esir d’apprendre et le plaisir de r´ efl´ echir, desquels d´ ecoulent naturellement l’excitation de trouver, la joie de diffuser et l’honneur d’enseigner en retour. Il a toujours donn´ e sans compter pour que chacun puisse s’´ epanouir et exprimer le meilleur de lui-mˆ eme dans son travail. David fait partie de ces personnes ` a qui je dois ´ enorm´ ement, que j’admire grandement, que je respecte profond´ ement et que j’appr´ ecie sinc` erement.

Je souhaite remercier toutes les personnes qui ont contribu´ e ` a la r´ eussite de cette th` ese.

En premier lieu Louis Goubin qui m’a fait l’honneur de me diriger dans cette tˆ ache et dont j’appr´ ecie beaucoup le professionnalisme et la gentillesse. Un grand merci ´ egalement ` a Bart Preneel et ` a Christof Paar qui ont accept´ e d’ˆ etre les rapporteurs de mon m´ emoire et de consacrer une partie pr´ ecieuse de leur temps ` a sa relecture. Je suis enfin tr` es reconnaissant ` a Marc Joye , David Naccache , Adi Shamir et Fr´ ed´ eric Valette d’avoir bien voulu faire partie de mon jury.

Je voudrais ´ egalement mentionner Fr´ ed´ eric Amiel , Eric Brier ´ , Benoˆıt Chevallier- Mames , Benoˆıt Feix , Christophe Mourtel et Francis Olivier qui ont patiemment relu, comment´ e et (beaucoup) corrig´ e une version pr´ eliminaire de ce m´ emoire.

J’ai pass´ e de tr` es bons moments ` a Gemplus pendant de nombreuses ann´ ees, puis plus r´ ecem- ment ` a Gemalto. Parmi les personnes qui y ont grandement contribu´ e, je tiens ` a t´ emoigner une sympathie particuli` ere ` a l’´ egard de Nathalie Feyt et de Pascal Paillier . Ils ont les qualit´ es humaines qui en font des chefs d’´ equipe formidables. J’ai eu la chance de b´ en´ eficier de leur part d’une grande libert´ e dans l’organisation de mon travail. J’esp` ere en avoir ´ et´ e digne, et je les en remercie.

J’ai ´ egalement rencontr´ e de nombreuses autres personnes qui m’ont beaucoup apport´ e tech- niquement et humainement. Je ne peux malheureusement pas les nommer sans risquer d’en oublier, mais je tiens ` a toutes les remercier simplement d’avoir ´ et´ e pr´ esentes dans ma vie. Parmi elles, Christophe Mourtel , Benoˆıt Feix et Eric Brier ´ sont devenus de v´ eritables amis aupr` es desquels, et pour des raisons diff´ erentes, je me sens bien.

Je ne voudrais pas terminer sans remercier l’ensemble de mes co-auteurs, autant de personnes avec qui il m’a ´ et´ e agr´ eable de r´ efl´ echir et d’´ ecrire : Fr´ ed´ eric Amiel , Eric Brier ´ , Benoˆıt Chevallier-Mames , Mathieu Ciet , Jean-S´ ebastien Coron , Nora Dabbous , Benedikt Gierlichs (bientˆ ot j’esp` ere), Marc Joye , R´ egis Leveugle , Pascal Moitrel , Yannick Monnet , David Naccache , Francis Olivier , Marc Renaudin et Michael Tunstall .

Enfin, qu’il me soit permis de rendre ici quelques hommages plus personnels. ` A mes parents

tout d’abord, ` a qui je dois l’essentiel, qui m’ont aim´ e et guid´ e dans les premi` eres ´ etapes de ma

vie. ` A Sylvie , qui sait me supporter et aupr` es de qui la vie est tellement agr´ eable. ` A Florine ,

en qui je crois et qui m’a souvent fait progresser. Et ` a Victor , Cl´ ementine et Julien qui sont

simplement formidables.

(7)
(8)

Avant-propos

Des attaques par mesure du temps d’ex´ ecution ont ´ et´ e publi´ ees un an auparavant, et l’on sent d´ ej` a les pr´ emices de nouvelles menaces pour la s´ ecurit´ e des crypto-syst` emes embarqu´ es. Nous sommes alors fin 1997, et l’entreprise Gemplus d´ ecide d’anticiper les ´ ev` enements en regroupant plusieurs personnes aux talents compl´ ementaires pour cr´ eer un pˆ ole d’excellence dans le domaine de la s´ ecurit´ e des cartes ` a puce. J’avais rejoint cette entreprise quelques mois plus tˆ ot quand David Naccache me propose ainsi de faire partie de la cr´ eation du Card Security Group qui devra plus particuli` erement d´ evelopper son expertise dans ce qui sera plus tard d´ esign´ e sous le terme g´ en´ erique d’attaques physiques.

Je ne mesure alors pas encore la chance qui s’offre ` a moi. Le boom annonc´ e interviendra quelques mois plus tard avec la publication de la maintenant c´ el` ebre analyse diff´ erentielle du courant (

DPA

), rapidement suivie des premi` eres exp´ erimentations dans le domaine des attaques par analyse de fautes. Je serai donc aux premi` eres loges pour ˆ etre t´ emoin et modeste acteur du d´ eveloppement de cette discipline en plein essor. J’y trouverai une activit´ e professionnelle passionnante, pointue autant que concr` ete, et si proche de ce qui me convient le mieux, ` a l’in- tersection des math´ ematiques et de l’informatique, de la cryptologie et de la micro-´ electronique, de probl´ ematiques de recherche et d’exigences industrielles.

Dix ann´ ees se sont ´ ecoul´ ees et je souhaite maintenant me retourner, donner un t´ emoignage de cette courte histoire de la s´ ecurit´ e physique des crypto-syst` emes embarqu´ es, et partager mon exp´ erience dans cette discipline. J’ai donc rassembl´ e dans ce m´ emoire une partie des travaux que j’ai pu r´ ealiser conjointement avec plusieurs des coll` egues et amis qui ont crois´ e mon chemin.

Avertissement :Bien que relevant (presque) tous du domaine de la s´ecurit´e vis-`a-vis des attaques physiques, les th`emes que j’ai abord´es dans mon m´etier et sur lesquels j’ai pu contribuer sont divers et relativement disparates. J’ai donc d´ecid´e de donner `a cet ouvrage la forme d’un recueil de travaux, ayant pour la plupart fait l’objet d’une publication scientifique, plutˆot que celle d’un expos´e complet et homog`ene d’une discipline. Cette juxtaposition de travaux, un par chapitre, est peu conforme au style habituel d’une th`ese et peut paraˆıtre assez brute au premier abord. Il en r´esulte n´eanmoins un texte dont les diff´erents chapitres sont ind´ependants, donnant ainsi la possibilit´e au lecteur de parcourir ce m´emoire en orientant sa lecture vers les sujets qui l’int´eressent plus particuli`erement.

(9)
(10)

Glossaire

3GPP 3rd Generation Partnership Project

Projet de standardisation pour les syst` emes de communications mobiles de troi- si` eme g´ en´ eration.

A3/A8 Sch´ ema g´ en´ erique pour le calcul des fonctions d’authentification (A3) et de g´ en´ eration de cl´ e de session (A8) utilis´ e dans le syst` eme GSM. Par extension, on d´ esigne ´ egalement par A3/A8 tout algorithme instanciant ce sch´ ema g´ en´ erique.

AES Advanced Encryption Standard

Algorithme de chiffrement par bloc standardis´ e en 2001 en remplacement de l’algorithme

DES

obsol` ete

CBC Cipher Block Chaining

Mode d’op´ eration d’un chiffrement par bloc qui consiste, pr´ ealablement ` a son chiffrement, ` a XOR-er chaque bloc du message par le chiffr´ e du bloc pr´ ec´ edent.

CFA Collision Fault Analysis

Technique d’attaque physique par analyse de faute qui consiste ` a extraire de l’information ` a partir d’une collision obtenue ` a l’aide d’une faute provoqu´ ee.

CMOS Complementary Metal Oxide Semi-conductor

Famille de composants ´ electroniques ` a faible consommation ´ electrique. L’essen- tiel de la consommation de courant de ces composants ne se produit que lors d’un basculement d’un ´ etat logique ` a son ´ etat compl´ ementaire.

COMP128 Exemple d’algorithme A3/A8 pour l’authentification et l’´ echange de cl´ e sur un r´ eseau GSM. Cet algorithme, initialement confidentiel, a ´ et´ e d´ evoil´ e en 1998 par Marc Briceno et cass´ e dans la foul´ ee par Ian Goldberg et David Wagner [BGW98]. Il ne devrait plus ˆ etre utilis´ e.

CPA Correlation Power Analysis

Technique d’attaque physique par analyse du courant qui consiste ` a corr´ eler la consommation avec les valeurs des donn´ ees manipul´ ees. La

CPA

est parfois appel´ ee

CEMA

dans le cas de l’analyse du rayonnement ´ electromagn´ etique.

CPU Central Processing Unit

Unit´ e centrale de traitement de l’information qui constitue le cœur calculatoire

d’un micro-processeur.

(11)

Glossaire

CRT Chinese Remainder Theorem

M´ ethode, bas´ ee sur le th´ eor` eme du mˆ eme nom, permettant de rendre le calcul d’une signature

RSA

, en th´ eorie, quatre fois plus rapide que la m´ ethode standard.

DES Data Encryption Standard

Algorithme de chiffrement par bloc utilis´ e du milieu des ann´ ees 1970 jusque vers le d´ ebut des ann´ ees 2000. Devenu obsol` ete en raison d’une taille de cl´ e insuffisante, il a ´ et´ e remplac´ e par une version plus forte, le

Triple-DES

, mais surtout par l’

AES

, nouveau standard depuis 2001.

DESX Variante du

DES

propos´ ee par Ron Rivest utilisant deux cl´ es suppl´ ementaires servant ` a XOR-er l’entr´ ee et la sortie de l’algorithme standard.

DFA Differential Fault Analysis

Technique d’attaque physique par analyse de faute qui consiste ` a extraire de l’information ` a partir de la diff´ erentielle observ´ ee entre un chiffr´ e de r´ ef´ erence et une version obtenue ` a l’aide d’une faute provoqu´ ee.

DPA Differential Power Analysis

Technique d’attaque physique par analyse du courant qui consiste ` a mettre en ´ evidence une faible diff´ erence de consommation moyenne, en fonction de la valeur d’un bit d’une donn´ ee manipul´ ee. La

DPA

est parfois appel´ ee

DEMA

dans le cas de l’analyse du rayonnement ´ electromagn´ etique.

ECB Electronic Code Book

Mode d’op´ eration d’un chiffrement par bloc qui consiste ` a chiffrer les blocs du message ind´ ependamment les uns des autres.

ECM Elliptic Curve Method

M´ ethode de factorisation d’entiers dont la complexit´ e d´ epend principalement de la taille du facteur recherch´ e plutˆ ot que de celle de l’entier factoris´ e.

EEPROM Electrically-Erasable Programmable Read-Only Memory

Type de m´ emoire morte pouvant ˆ etre effac´ ee ´ electriquement et programm´ ee.

Ce type de m´ emoire, dont une technologie plus r´ ecente est appel´ ee m´ emoire FLASH, sert par exemple ` a stocker les donn´ ees d’un utilisateur sur une carte ` a puce.

FDH Full Domain Hash

Sch´ ema de signature bas´ e sur le

RSA

dans lequel la sortie de la fonction de hachage a la mˆ eme taille que le module.

GSM Global System for Mobile communications

Norme num´ erique de seconde g´ en´ eration pour la t´ el´ ephonie mobile.

IBE Identity-Based Encryption

Chiffrement ` a cl´ e publique permettant d’utiliser une chaˆıne de caract` eres quel- conque, par exemple l’adresse mail du destinataire, comme cl´ e publique.

IDEA International Data Encryption Algorithm

Algorithme de chiffrement par bloc invent´ e par Xuejia Lai et James Mas- sey [LM91].

viii

(12)

IFA Ineffective Fault Analysis

Technique d’attaque physique par analyse de faute qui consiste ` a extraire de l’information ` a partir d’une faute provoqu´ ee n’ayant pas d’effet sur le r´ esultat d’une op´ eration arithm´ etique ou logique.

LFSR Linear Feedback Shift Register

Registre ` a d´ ecalage ` a r´ etro-action lin´ eaire. Les LFSR sont souvent utilis´ es dans les algorithmes de chiffrement ` a flot ou dans les g´ en´ erateurs de nombres pseudo- al´ eatoires.

LLL L enstra L enstra L ov´ asz

Du nom de ses inventeurs,

LLL

[LLL82] est un algorithme de r´ eduction de r´ eseau souvent utilis´ e dans la cryptanalyse de sch´ emas de chiffrement ` a cl´ e publique.

LSB Least Significant Bit

Bit de droite, le moins significatif, d’un octet.

LUT Look-Up Table

Table de valeurs utilis´ ee pour l’impl´ ementation d’une boˆıte de substitution (S-Box).

MILENAGE Sch´ ema g´ en´ erique de calcul de plusieurs fonctions cryptographiques utilis´ ees dans le standard 3GPP pour les syst` emes de communications mobiles de troi- si` eme g´ en´ eration.

MSB Most Significant Bit

Bit de gauche, le plus significatif, d’un octet.

NBS National Bureau of Standard

Organisme ´ etats-unien de normalisation, de support et de recherche sur les nouvelles technologies. Le NBS a chang´ e de nom en 1988 pour devenir le NIST.

NIST National Institute of Standards and Technology

Agence du D´ epartement du Commerce des ´ Etats-Unis rempla¸ cant l’organisme de normalisation anciennement appel´ e NBS.

NSA National Security Agency

Organisme gouvernemental des ´ Etats-Unis responsable de la collecte et de l’ana- lyse de toutes formes de communications.

NVM Non-Volatile Memory

M´ emoire conservant les donn´ ees qu’elle contient mˆ eme apr` es mise hors-tension.

La ROM, l’EEPROM et la FLASH sont des m´ emoires de ce type.

OAEP Optimal Asymmetric Encryption Padding

Sch´ ema de padding introduit en 1994 par Mihir Bellare et Phil Roga- way [BR95]. Utilis´ e pour le

RSA

,

RSA-OAEP

est prouv´ e sˆ ur dans le mod` ele de l’oracle al´ eatoire.

PFDH Probabilistic Full Domain Hash

Variante de

FDH

consid´ erant une famille de fonctions de hachage. La signature

est calcul´ ee d’apr` es une fonction de hachage choisie al´ eatoirement dans cette

famille. L’al´ ea utilis´ e est joint ` a la signature.

(13)

Glossaire

PGP Pretty Good Privacy

Logiciel tout public de communication ´ electronique s´ ecuris´ ee utilisant la crypto- graphie asym´ etrique. PGP a ´ et´ e d´ evelopp´ e par Philip Zimmermann et rendu disponible en libre t´ el´ echargement en 1991.

PIN Personal Identification Number

Code personnel d’identification. Le contrˆ ole de la connaissance du PIN permet de n’autoriser l’utilisation d’une carte bancaire ou d’une carte SIM qu’` a son possesseur l´ egitime.

PKCS Public-Key Cryptography Standards

Ensemble de sp´ ecifications con¸ cues par la soci´ et´ e RSA Security pour l’impl´ e- mentation des techniques de cryptographie ` a cl´ e publique.

PKI Public-Key Infrastructure

Ensemble de composants, proc´ edures et logiciels permettant de g´ erer le cycle de vie des certificats num´ eriques des cl´ es publiques.

PRNG Pseudo-Random Number Generator

G´ en´ erateurs de nombres pseudo-al´ eatoires, les PRNG sont souvent bas´ es sur des LFSR, et sont utilis´ es par exemple comme source d’al´ ea pour certaines contre-mesures vis-` a-vis des attaques physiques.

PSS Probabilistic Signature Scheme

M´ ethode pour cr´ eer des signatures

RSA

propos´ ee par Mihir Bellare et Phil Rogaway [BR96] et prouv´ ee sˆ ure dans le mod` ele de l’oracle al´ eatoire.

QDI Quasi Delay-Insensitive

Classe de circuits asynchrones ayant la propri´ et´ e d’ˆ etre insensibles aux diff´ e- rences de d´ elais de propagation de ses diff´ erentes portes.

RAM Random Access Memory

M´ emoire rapide et volatile dans laquelle un ordinateur place les donn´ ees lors de leur traitement.

RIJNDAEL Algorithme de chiffrement par bloc invent´ e par Vincent Rijmen et Joan Daemen [DR99, DR00, DR02] qui a ´ et´ e s´ electionn´ e parmi plusieurs propositions pour ˆ etre adopt´ e en 2001 comme standard

AES

.

RNG Random Number Generator

G´ en´ erateur de nombres al´ eatoires. Les RNG utilisent souvent la mesure d’une grandeur physique impr´ edictible (bruit thermique par exemple) et sont utilis´ es notamment pour la g´ en´ eration de cl´ es cryptographiques.

ROM Read-Only Memory

M´ emoire qui ne s’efface pas lorsque l’appareil qui la contient n’est plus aliment´ e en ´ electricit´ e. Une fois programm´ ees, les donn´ ees stock´ ees en ROM ne sont plus modifiables.

RPI Random Process Interrupt

Interruption al´ eatoire de processus. Les

RPI

permettent une d´ esynchronisation temporelle utile comme contre-mesure vis-` a-vis de certaines attaques physiques.

x

(14)

RSA R ivest S hamir A delman

Du nom de ses inventeurs, le

RSA

est un crypto-syst` eme ` a cl´ e publique dont la s´ ecurit´ e repose sur la difficult´ e suppos´ ee de la factorisation des grands entiers.

S-Box Substitution Box

Boˆıte de substitution assurant la fonction de diffusion d’un algorithme de chif- frement par bloc.

SCA Side-Channel Analysis

Analyse de canaux auxiliaires. Ce type d’attaque physique permet d’extraire de l’information sur un secret (cl´ e cryptographique, PIN,. . . ) ` a partir de l’obser- vation et de l’analyse d’une grandeur physique, le canal auxiliaire, d´ ependant de la valeur de ce secret.

SCARE Side-Channel Analysis for Reverse Engineering

Application de l’analyse de canaux auxiliaires visant la r´ etro-conception de tout ou partie des sp´ ecifications d’un algorithme confidentiel, plutˆ ot que la r´ ev´ elation d’une cl´ e secr` ete.

SEA Safe-Error Analysis

Technique d’attaque physique par analyse de faute qui consiste ` a extraire de l’information ` a partir d’une faute provoqu´ ee dont l’effet n’a pas d’influence sur le r´ esultat final d’un calcul cryptographique.

SIM Subscriber Identification Module

Carte ` a puce n´ ecessaire au fonctionnement des t´ el´ ephones portables de type GSM.

SNR Signal to Noise Ratio

Rapport signal ` a bruit, utilis´ e comme indicateur de qualit´ e d’un signal trans- portant une information.

SPA Simple Power Analysis

Technique d’attaque physique permettant d’extraire de l’information sur un secret ` a partir de la mesure et de l’analyse du courant consomm´ e lors de l’ex´ e- cution d’un calcul cryptographique. La

SPA

est parfois appel´ ee

SEMA

dans le cas de l’analyse du rayonnement ´ electromagn´ etique.

SSH Secure SHell

Programme informatique et protocole de communication s´ ecurisant la connec- tion ` a un ordinateur distant et le transfert de fichiers.

SSL Secure Socket Layer

Protocole de communication s´ ecuris´ ee entre deux ordinateurs fournissant les fonctions d’authentification, d’int´ egrit´ e et de confidentialit´ e. OpenSSL est une impl´ ementation libre (open source) de SSL.

TA Timing Analysis

Technique d’attaque physique permettant d’extraire de l’information sur un secret ` a partir de la mesure de la dur´ ee d’ex´ ecution d’un calcul cryptographique.

WI-FI Contraction de WIreless FIdelity

Technologie de r´ eseau informatique sans fil mise en place pour fonctionner en

r´ eseau interne et devenue un moyen d’acc` es ` a haut d´ ebit ` a Internet.

(15)
(16)

Sommaire

Remerciements iii

Avant-propos v

Glossaire vii

Partie I Introduction

Chapitre 1 La s´ ecurit´ e physique 3

1.1 Qu’est-ce qu’une carte ` a puce ? . . . . 3

1.2 Les algorithmes cryptographiques . . . . 5

1.2.1 Cryptographie sym´ etrique . . . . 5

1.2.2 Cryptographie asym´ etrique . . . . 12

1.3 L’analyse des canaux auxiliaires . . . . 15

1.3.1 Les attaques . . . . 15

1.3.2 Les contre-mesures . . . . 21

1.4 L’exploitation de fautes . . . . 25

1.4.1 Les attaques . . . . 26

1.4.2 Les contre-mesures . . . . 28

Chapitre 2 R´ esum´ e de nos travaux 31

(17)

Sommaire

Partie II Les attaques

Chapitre 3 Analyse du courant par corr´ elation avec un mod` ele de fuite 37

3.1 Introduction . . . . 38

3.2 Le mod` ele de consommation de la distance de Hamming . . . . 38

3.3 Le facteur de corr´ elation lin´ eaire . . . . 39

3.4 Inf´ erence de secret par analyse du courant par corr´ elation . . . . 40

3.5 Estimation . . . . 41

3.6 R´ esultats exp´ erimentaux . . . . 41

3.7 Comparaison avec la DPA . . . . 44

3.7.1 Probl` eme pratique de la DPA : les “pics fantˆ omes” . . . . 44

3.7.2 L’explication des “pics fantˆ omes” . . . . 45

3.7.3 R´ esultats de la CPA bas´ ee sur un mod` ele . . . . 48

3.8 Conclusion . . . . 49

Chapitre 4 De l’impl´ ementation d’un algorithme rapide de g´ en´ eration de premiers 51 4.1 Introduction . . . . 51

4.2 L’algorithme de g´ en´ eration de premiers de Joye-Paillier . . . . 52

4.3 Notre attaque par canaux auxiliaires . . . . 53

4.4 Contre-mesures . . . . 56

4.5 Conclusion . . . . 57

Chapitre 5 Pourquoi doit-on s´ ecuriser ´ egalement les ´ el´ ements publics d’une cl´ e RSA 59 5.1 Introduction . . . . 60

5.1.1 Rudiments . . . . 60

5.1.2 Notre contribution . . . . 61

5.1.3 Plan de l’expos´ e . . . . 61

5.2 Pr´ eliminaires . . . . 62

5.2.1 Mod` eles de fautes . . . . 62

5.2.2 L’attaque de Seifert et Muir . . . . 62

5.3 Cadre de nos extensions ` a l’attaque de Seifert . . . . 63

5.3.1 Description g´ en´ erale et contraintes de notre attaque . . . . 63

xiv

(18)

5.3.2 Dictionnaire de modules . . . . 64

5.4 Retrouver l’exposant priv´ e sans dictionnaire . . . . 64

5.4.1 Description g´ en´ erale de l’attaque . . . . 64

5.4.2 Une proposition utile . . . . 65

5.4.3 La phase “off-line” . . . . 66

5.4.4 R´ esultats . . . . 66

5.5 Retrouver l’exposant priv´ e avec un dictionnaire . . . . 67

5.5.1 M´ ethodologie g´ en´ erale . . . . 67

5.5.2 Identification de touches par la m´ ethode des collisions . . . . 68

5.5.3 Exploitation bay´ esienne des fautes . . . . 70

5.6 Conclusion . . . . 77

Chapitre 6 ´ Etude de cas d’une attaque par fautes sur un crypto-processeur DES asynchrone 79 6.1 Introduction . . . . 80

6.2 Logique quasiment insensible aux d´ elais . . . . 81

6.3 L’architecture du DES asynchrone . . . . 81

6.4 Le processus d’injection de fautes . . . . 83

6.5 Interpr´ etation des r´ esultats . . . . 83

6.5.1 Modification des s´ equences de tours . . . . 84

6.5.2 Exploitation . . . . 85

6.5.3 R´ esultats sur le DES de r´ ef´ erence . . . . 90

6.5.4 R´ esultats sur le DES durci . . . . 90

6.6 Analyse th´ eorique des faiblesses . . . . 91

6.7 Contre-mesures . . . . 91

6.8 Conclusion . . . . 92

Chapitre 7 Cryptanalyse diff´ erentielle par fautes de l’algorithme IDEA 93 7.1 Introduction . . . . 93

7.2 L’algorithme IDEA . . . . 94

7.3 Les attaques physiques sur IDEA . . . . 95

7.3.1 Analyse de canaux auxiliaires . . . . 95

7.3.2 Analyse de fautes par collision . . . . 97

7.3.3 Analyse de fautes sans effet . . . . 97

7.3.4 Une analyse diff´ erentielle de fautes efficace . . . . 99

7.4 R´ esultats . . . 103

7.5 Conclusion . . . 105

(19)

Sommaire

Partie III Les contre-mesures

Chapitre 8 Algorithme universel d’exponentiation 109

8.1 Introduction . . . 109

8.2 Algorithme universel d’exponentiation . . . 110

8.2.1 Chaˆınes d’additions . . . 110

8.2.2 Un algorithme universel . . . 111

8.3 Vers la r´ esistance prouv´ ee ` a la SPA . . . 113

8.4 Consid´ erations pratiques . . . 116

8.4.1 G´ en´ eration ` a bord . . . 116

8.4.2 Fission d’exposant . . . 116

8.5 Conclusion . . . 117

Chapitre 9 Analyse diff´ erentielle du courant en pr´ esence de contre-mesures mat´ erielles 119 9.1 Introduction . . . 120

9.2 DPA en pr´ esence d’interruptions al´ eatoires de processus . . . 120

9.2.1 Analyses diff´ erentielles de courant . . . 120

9.2.2 Interruptions al´ eatoires de processus . . . 122

9.3 Reconstruction de pic par int´ egration . . . 123

9.4 La variante par int´ egration de Hamming . . . 124

9.5 Red´ efinition de la fonction de s´ election . . . 125

9.6 Conclusion . . . 127

Chapitre 10 Attaques par analyse de fautes d’algorithmes r´ esistants ` a la DPA 129 10.1 Introduction . . . 129

10.2 Une analyse de fautes par collisions sur l’

AES

. . . 130

10.3 Impl´ ementations sˆ ures d’algorithmes . . . 132

10.4 Attaquer le premier XOR . . . 132

10.5 Attaquer le masquage de la cl´ e . . . 135

10.6 Modifier des valeurs connues des S-Box . . . 136

10.7 Modifier des valeurs inconnues des S-Box . . . 140

10.8 Contre-mesures . . . 141

10.9 Conclusion . . . 142

xvi

(20)

Partie IV Les attaques sur algorithmes inconnus

Chapitre 11 Am´ elioration d’une cryptanalyse SCARE contre un algorithme

GSM A3/A8 secret 145

11.1 Introduction . . . 146

11.2 Retrouver la table T

2

connaissant la cl´ e K et la table T

1

. . . 147

11.2.1 Description de l’attaque de Novak . . . 147

11.2.2 Interpr´ etation par graphe . . . 150

11.3 Retrouver la table T

1

connaissant la cl´ e K . . . 153

11.4 Retrouver la table T

1

sans connaˆıtre la cl´ e K . . . 155

11.5 Contre-mesures . . . 156

11.6 Conclusion . . . 157

Chapitre 12 G´ en´ eralisation d’une analyse de fautes par collisions sur l’AES 159 12.1 Deux techniques d’analyses de fautes . . . 159

12.2 Une analyse de fautes par collisions sur l’AES . . . 161

12.3 Une observation triviale . . . 163

12.3.1 Mise en œuvre exp´ erimentale . . . 163

Chapitre 13 Les encodages externes secrets ne prot` egent pas des analyses de fautes transitoires 165 13.1 Introduction . . . 166

13.2 Pr´ eliminaires . . . 167

13.3 Analyse de fautes sans effet . . . 168

13.3.1 L’injection de fautes comme outil de sondage . . . 168

13.3.2 L’attaque basique . . . 168

13.3.3 Une version am´ elior´ ee de l’attaque . . . 173

13.4 Contre-mesures . . . 175

13.5 Conclusion . . . 178

Partie V Annexe

(21)

Sommaire

Annexe A Cryptanalyse de signatures RSA avec padding ` a structure fixe 181

A.1 Introduction . . . 181

A.2 Notre nouvelle attaque . . . 183

A.3 Extension ` a une falsification s´ elective . . . 185

A.4 Conclusion . . . 187

Conclusion 189

Publications 191

Brevets d´ epos´ es 193

Bibliographie 195

xviii

(22)

Premi` ere partie

Introduction

(23)
(24)

Chapitre 1

La s´ ecurit´ e physique

Sommaire

1.1 Qu’est-ce qu’une carte `a puce ?. . . 3 1.2 Les algorithmes cryptographiques . . . 5 1.2.1 Cryptographie sym´etrique . . . 5 1.2.2 Cryptographie asym´etrique. . . 12 1.3 L’analyse des canaux auxiliaires . . . 15 1.3.1 Les attaques . . . 15 1.3.2 Les contre-mesures . . . 21 1.4 L’exploitation de fautes . . . 25 1.4.1 Les attaques . . . 26 1.4.2 Les contre-mesures . . . 28

Nous donnons dans ce chapitre quelques notions introductives permettant au lecteur non familier avec le domaine des attaques physiques d’aborder plus sereinement les parties II ` a IV qui constituent le corps de ce document.

Dans un premier temps, et sans entrer dans les d´ etails, nous d´ ecrivons le dispositif crypto- graphique embarqu´ e probablement le plus r´ epandu au monde : la carte ` a puce. Nous abordons ensuite la cryptographie en expliquant ses principes de base et en pr´ esentant les algorithmes les plus utilis´ es. Enfin, nous donnons un aper¸ cu des grandes classes d’attaques physiques, de leurs principes et des contre-mesures destin´ ees ` a les rendre difficiles ou ` a les contrer.

1.1 Qu’est-ce qu’une carte ` a puce ?

Une carte ` a puce est un objet en plastique contenant un circuit micro-´ electronique poss´ edant la plupart des fonctionnalit´ es d’un micro-ordinateur. La portabilit´ e de cet objet (un porte- feuille peut en contenir une dizaine), et sa capacit´ e ` a d´ efendre les donn´ ees et programmes qu’il contient contre les attaques de nature intrusive (abrasion chimique, observation au microscope

´ electronique, etc. . . ) lui procurent naturellement sa fonction essentielle de “bunker” pour le stockage de cl´ es et l’ex´ ecution d’algorithmes cryptographiques dans les usages mobiles n´ ecessitant un haut degr´ e de s´ ecurit´ e comme par exemple :

– la s´ ecurit´ e des transactions (carte bancaire),

– l’identification et le contrˆ ole d’acc` es (passeport ´ electronique, badge d’entreprise),

(25)

Chapitre 1. La s´ ecurit´ e physique

Fig. 1.1 – Les contacts d’un module de carte ` a puce.

– l’authentification pour l’acc` es ` a un service (t´ el´ ephonie mobile, t´ el´ evision ` a p´ eage), – la confidentialit´ e des donn´ ees lues ou ´ echang´ ees (carte de sant´ e)

– etc. . .

Vue de l’ext´ erieur, une carte ` a puce montre une pi` ece m´ etallique dor´ ee comprenant huit zones. Il s’agit du module servant ` a ´ etablir les contacts ´ electriques entre le micro-processeur et le monde ext´ erieur. Les huit zones correspondent ` a huit contacts diff´ erents (voir la Figure 1.1) dont 6 seulement ont un rˆ ole d´ efini par la norme ISO 7816-3 :

1. Vcc : tension d’alimentation (5, 3 ou 1,8 volts) fournie ` a la carte par le lecteur avec lequel elle s’interface,

2. RST : signal de remise ` a z´ ero de la carte,

3. CLK : horloge fournie par le lecteur ` a la carte, qui est n´ ecessairement utilis´ ee pendant les phases de communication entre la carte et le lecteur mˆ eme si la carte peut poss´ eder son propre oscillateur,

4. RFU : r´ eserv´ e pour un usage futur, 5. Gnd : potentiel de r´ ef´ erence (masse),

6. Vpp : tension de programmation (21 volts) qui servait par le pass´ e ` a alimenter une pompe de charge utilis´ ee pour les ´ ecritures en EEPROM (inutilis´ e de nos jours),

7. I/O : ligne transportant de mani` ere bi-directionnelle les donn´ ees ´ echang´ ees entre la carte et le lecteur,

8. RFU : r´ eserv´ e pour un usage futur.

Sous le module se trouve le micro-processeur. C’est un composant dont la surface ne doit pas exc´ eder 25 mm

2

. On en trouve actuellement dont l’architecture interne peut ˆ etre ` a 8, 16 ou 32 bits de granularit´ e de calcul ou d’ex´ ecution. Il comprend diff´ erentes parties parmi lesquelles on peut trouver :

– la CPU qui est l’unit´ e centrale de traitement,

– la m´ emoire RAM pour stocker des r´ esultats interm´ ediaires de calcul en cours de fonction- nement,

– la m´ emoire ROM qui contient essentiellement le code programme du syst` eme d’exploitation et des applications de la carte,

4

(26)

1.2. Les algorithmes cryptographiques

Fig. 1.2 – Les diff´ erentes parties d’un micro-processeur de carte ` a puce.

– la m´ emoire non volatile (EEPROM ou m´ emoire Flash) qui permet de stocker, comme sur un disque dur, les donn´ ees sp´ ecifiques ` a l’utilisateur, y compris lorsque la carte n’est pas aliment´ ee,

– un g´ en´ erateur d’al´ ea (RNG) indispensable pour la g´ en´ eration de cl´ es cryptographiques et le bon fonctionnement de certaines contre-mesures,

– un ou plusieurs crypto-processeurs permettant d’effectuer rapidement des calculs crypto- graphiques sp´ ecialis´ es (

DES

,

AES

, multiplication modulaire, etc. . . )

– des capteurs de s´ ecurit´ e destin´ es ` a d´ etecter des conditions anormales de fonctionnement.

La Figure 1.2 montre la photo d’un mod` ele relativement ancien de puce et identifie certaines de ses zones.

Nous renvoyons le lecteur ` a l’ouvrage [DJRV00] pour une pr´ esentation plus d´ etaill´ ee de la carte ` a puce.

1.2 Les algorithmes cryptographiques

1.2.1 Cryptographie sym´ etrique

La cryptographie est utilis´ ee depuis l’antiquit´ e pour cacher le sens du contenu d’une com- munication entre deux interlocuteurs. Depuis ces temps anciens o` u l’on attribue ` a C´ esar une technique simple consistant ` a appliquer ` a chaque symbole du message clair une rotation de va- leur fixe ` a l’int´ erieur de l’alphabet utilis´ e, jusque vers la fin des ann´ ees 1970, les algorithmes de chiffrement reposaient tous sur le principe que l’´ emetteur et le destinataire d’un message confidentiel devaient chacun utiliser une mˆ eme valeur secr` ete de cl´ e. Cette cl´ e K param` etre une fonction de chiffrement E

K

(·) qui sert ` a produire une version inintelligible du message clair M.

Le chiffr´ e C = E

K

(M ) obtenu est alors transmis sur un canal de communication non sˆ ur au

destinataire qui lui appliquera la transformation inverse D

K

(·) = E

−1K

(·) qui permet de d´ echiffrer

C pour retrouver le message inital M = D

K

(C). La Figure 1.3 illustre ce principe de chiffre-

ment, appel´ e cryptographie sym´ etrique (on parle aussi de cryptographie ` a cl´ e secr` ete ) du fait

(27)

Chapitre 1. La s´ ecurit´ e physique

Fig. 1.3 – Le principe de la cryptographie sym´ etrique.

que la valeur de la cl´ e utilis´ ee par l’´ emetteur pour chiffrer est la mˆ eme que celle utilis´ ee par le destinataire pour d´ echiffrer.

La cryptographie sym´ etrique comprend deux sous-familles de fonctions de chiffrement : les algorithmes de chiffrement ` a flot et les algorithmes de chiffrement par bloc. Les algorithmes de chiffrement ` a flot sont essentiellement des g´ en´ erateurs pseudo-al´ eatoires permettant de d´ eriver de la cl´ e K une s´ equence de bits, dite s´ equence chiffrante, de longue p´ eriode. La cl´ e joue ici le rˆ ole de graine pour ce g´ en´ erateur de bits, et la s´ equence chiffrante sera utilis´ ee pour masquer le flot de bits du message ` a la fa¸ con du chiffrement ` a masque jetable de Vernam . Les algorithmes de chiffrement par bloc utilisent la cl´ e K pour transformer des blocs de texte clair de longueur fixe (typiquement 8 ou 16 octets) en des blocs de chiffr´ e de mˆ eme longueur. Lorsque le message est plus grand que la taille d’un bloc, celui-ci est d´ ecoup´ e en plusieurs blocs qui sont chiffr´ es ind´ ependamment (mode dit “ECB”)

1

ou de mani` ere chaˆın´ ee (par exemple, mode dit “CBC”).

Pendant tr` es longtemps, les utilisateurs de la cryptographie sym´ etrique ont utilis´ e des fonc- tions de chiffrement elles-mˆ emes confidentielles, estimant que le secret de la transformation op´ er´ ee sur le message participait ` a la s´ ecurit´ e du syst` eme. Ce n’est qu’en 1883 qu’ Auguste Kerckhoffs publie son essai La Cryptographie militaire dans lequel il propose le principe qui portera son nom et qui ´ enonce que la s´ ecurit´ e d’un syst` eme cryptographique ne doit pas reposer sur le caract` ere secret du syst` eme de codage. Seule une courte quantit´ e d’information, la cl´ e, n´ ecessite d’ˆ etre gard´ ee secr` ete.

La compr´ ehension qu’un algorithme de chiffrement peut ˆ etre r´ ev´ el´ e permettra bien plus tard, lorsque l’augmentation et la diffusion des moyens de calcul automatis´ e auront suscit´ e un besoin de cryptographie ` a usage civil, la naissance du premier standard public de chiffrement. C’est ainsi que fut adopt´ e en 1976 l’algorithme

DES

(en anglais, Data Encryption Standard), standard qui participera ` a une explosion de l’usage de la cryptographie dans le monde. Apr` es 25 ans de r` egne sur la cryptographie sym´ etrique, et devenu obsol` ete vers le d´ ebut des ann´ ees 90 en raison d’une taille de cl´ e trop faible par rapport ` a l’´ evolution des moyens de calcul, le

DES

sera remplac´ e en 2001 par l’

AES

(en anglais, Advanced Encryption Standard).

Bien que de nombreux autres algorithmes de crytographie sym´ etrique aient ´ et´ e d´ efinis par la communaut´ e scientifique depuis l’apparition du

DES

, nous allons maintenant d´ ecrire plus en d´ etail le

DES

et l’

AES

qui ont ´ et´ e et sont les plus utilis´ es, notamment dans les syst` emes ` a base de cartes ` a puce.

1Notons qu’il est recommand´e de ne pas utiliser le mode ECB qui peut se prˆeter `a la manipulation du chiffr´e.

6

(28)

1.2. Les algorithmes cryptographiques

Fig. 1.4 – L’algorithme

Triple-DES

en mode chiffrement (en haut) et d´ echiffrement (en bas).

L’algorithme

DES

En 1973, le National Bureau of Standard, organisme ´ etats-unien de standardisation, souhaite la cr´ eation d’un syst` eme de chiffrement initialement destin´ e aux donn´ ees sensibles mais non classifi´ ees du gouvernement. Apr` es un premier appel ` a proposition infructueux, cet organisme se tourne alors vers IBM qui poss` ede un algorithme nomm´ e Lucifer. Apr` es avoir subi plusieurs modifications, dont certaines pourraient avoir ´ et´ e impos´ ees par la NSA (en anglais, National Security Agency), cet algorithme deviendra officiellement le

DES

approuv´ e en novembre 1976 et publi´ e comme standard en janvier 1977 [NBS77]. Le

DES

a ´ et´ e successivement r´ eaffirm´ e comme standard en 1983, 1988, 1993. En 1999, il est reconduit ` a nouveau une quatri` eme fois, et ce n’est qu’en 2004 qu’il est recommand´ e de l’utiliser sous la forme du

Triple-DES

(voir Figure 1.4) qui utilise une cl´ e (K

1

, K

2

) de 112 bits au lieu d’une cl´ e K de 56 bits.

L’algorithme

DES

permet de chiffrer des blocs de 64 bits ` a l’aide d’une cl´ e de 56 bits. Cette fonction est essentiellement structur´ ee comme un r´ eseau de Feistel encadr´ e par une permuta- tion de bits initiale IP et une permutation de bits finale FP, inverses l’une de l’autre. Un r´ eseau de Feistel consiste en l’application it´ er´ ee d’un maillon de Feistel , autrement appel´ e tour. Le tour num´ ero i transforme son entr´ ee (L

i−1

, R

i−1

) en la sortie (L

i

, R

i

) v´ erifiant :

L

i

= R

i−1

R

i

= L

i−1

⊕ f

Ki

(R

i−1

) .

La partie gauche de la sortie est obtenue par simple recopie de la partie droite de l’entr´ ee. La moiti´ e droite de la sortie, R

i

, est le r´ esultat de l’op´ eration XOR entre l’entr´ ee gauche L

i−1

et la transform´ ee f

Ki

(R

i−1

) de l’entr´ ee droite par une fonction de tour bijective. Les fonctions de tour sont param´ etr´ ees par des cl´ es de tour K

i

, elles-mˆ emes d´ eriv´ ees de la cl´ e K.

La Figure 1.5 repr´ esente le

DES

comme r´ eseau de Feistel avec son sch´ ema de d´ erivation des

cl´ es de tour. Une premi` ere permutation compressive PC1 extrait 56 des 64 bits initiaux de la cl´ e

K en ignorant les bits de poids faible de chacun de ses 8 octets. Ces 56 bits sont alors s´ epar´ es

en deux registres C et D de 28 bits chacun, lesquels subissent ` a chaque tour une rotation de

leurs bits (de 1 ou 2 bits selon le num´ ero du tour). ` A chaque tour les sorties de ces registres sont

regroup´ ees et une permutation compressive PC2 en extrait les 48 bits de la cl´ e de tour K

i

.

(29)

Chapitre 1. La s´ ecurit´ e physique

Fig. 1.5 – L’algorithme

DES

: un r´ eseau de Feistel et son sch´ ema de d´ erivation des cl´ es de tour.

8

(30)

1.2. Les algorithmes cryptographiques

Fig. 1.6 – La fonction de tour du

DES

.

La fonction de tour est d´ etaill´ ee ` a la Figure 1.6. La permutation expansive commence par dupliquer 16 des 32 bits de R

i−1

pour fournir 48 bits qui sont ensuite XOR-´ es avec la cl´ e de tour K

i

. Ce XOR de deux valeurs de 48 bits peut aussi s’interpr´ eter comme huit XOR sur des valeurs de 6 bits. Les sorties de ces huit XOR sont utilis´ ees dans des tables de substitution ` a 64 entr´ ees, appel´ ees S-Box. Ces S-Box forment la partie non lin´ eaire de l’algorithme et assurent la fonction de confusion n´ ecessaire dans tout algorithme de chiffrement

2

. Les sorties sur 4 bits des huit S-Box sont ensuite regroup´ ees pour former 32 bits qui sont alors m´ elang´ es par la permutation P.

Comme pour tout r´ eseau de Feistel , la fonction de d´ echiffrement

DES

ne diff` ere de celle de chiffrement que par l’ordre invers´ e dans lequel les cl´ es de tour sont consid´ er´ ees. En l’occurrence, cela est r´ ealis´ e en effectuant les rotations des registres C et D vers la droite plutˆ ot que vers la gauche, et en supprimant celle pr´ evue au premier tour.

L’algorithme

AES

L’algorithme

AES

(en anglais, Advanced Encryption Standard) a ´ et´ e adopt´ e ` a la suite d’un appel ` a candidature lanc´ e en 1997 par le NIST

3

aupr` es de la communaut´ e scientifique et indus- trielle en vue du remplacement du

DES

. Pas moins de 15 candidats ont ´ et´ e propos´ es, chacun devant r´ epondre ` a un cahier des charges d´ efinissant des crit` eres li´ es ` a la s´ ecurit´ e cryptographique, ainsi qu’aux performances et ` a la compacit´ e de l’impl´ ementation aussi bien sous forme logicielle que mat´ erielle. La s´ election de l’algorithme vainqueur s’est faite en deux phases et constitue un bel exemple de transparence pour l’analyse et le choix d’un standard de fonction de chiffrement.

Parmi les 5 propositions finalistes, c’est l’algorithme

RIJNDAEL

[DR99, DR00, DR02], du nom de ses deux concepteurs Vincent Rijmen et Joan Daemen , qui a finalement ´ et´ e choisi en 2001 [NIST01] pour devenir l’

AES

.

L’

AES

est un algorithme permettant de chiffrer des blocs de 128 bits (16 octets) avec des cl´ es de taille 128, 192 ou 256 bits. Nous choisissons de d´ ecrire ici l’

AES

dans sa version ` a cl´ e de 128

2Ladiffusionet laconfusion ont ´et´e identifi´es parClaude Shannon[Sha49] comme des propri´et´es indispen- sables de toute fonction de chiffrement.

3En 1988, le National Bureau of Standard devient le NIST (en anglais,National Institute of Standards and Technology).

(31)

Chapitre 1. La s´ ecurit´ e physique

Fig. 1.7 – La repr´ esentation matricielle des valeurs interm´ ediaires de l’

AES

.

bits qui comprend 10 tours et qui est actuellement la plus utilis´ ee.

Dans l’

AES

, le texte clair M , les cl´ es de tour K

i

, le chiffr´ e C ainsi que les ´ etats interm´ ediaires issus des diff´ erentes transformations dont est compos´ e chaque tour sont tous repr´ esent´ es comme des matrices carr´ ees de 4 x 4 octets. La Figure 1.7 illustre, sur le message d’entr´ ee, le principe de cette repr´ esentation matricielle.

La Figure 1.8 repr´ esente l’algorithme dans sa totalit´ e. Chacun des neuf premiers tours est compos´ e de quatre transformations successives appel´ ees respectivement SubBytes, ShiftRows, MixColumns et AddRoundKey. Le dixi` eme et dernier tour de l’

AES

fait exception et ne comprend pas la fonction MixColumns. Par ailleurs, avant d’entamer le premier tour, le message d’entr´ ee est combin´ e avec une premi` ere cl´ e de tour K

0

, ´ egale ` a K, par l’interm´ ediaire de la fonction AddRoundKey. Nous d´ ecrivons maintenant ces diff´ erentes transformations.

L’addition de la cl´ e de tour, AddRoundKey, calcule un XOR composante par composante entre chacun des octets de la matrice repr´ esentant l’´ etat interm´ ediaire courant et chacun de ceux de la matrice repr´ esentant la cl´ e de tour. Nous invitons le lecteur int´ eress´ e par la fa¸ con dont sont d´ eriv´ ees les cl´ es de tour de l’

AES

` a se reporter ` a la sp´ ecification officielle de l’algorithme [NIST01].

La transformation SubBytes constitue la partie non lin´ eaire de l’algorithme. Elle substitue ` a chaque composante de la matrice d’entr´ ee une valeur lue dans une table ` a 256 entr´ ees de 8 bits.

Contrairement au

DES

, la S-Box S de l’

AES

est la mˆ eme pour chacun des octets de la matrice.

L’impl´ ementation de la fonction SubBytes peut se faire soit par lecture de table classique, soit en profitant de ce que S est d´ efinie comme la compos´ ee de deux transformations : une pseudo- inversion dans GF (2

8

) pour laquelle ‘0’ est son propre inverse, suivie d’une op´ eration affine sur GF (2). Cette derni` ere fa¸ con de calculer SubBytes est particuli` erement attrayante dans les cas d’impl´ ementations mat´ erielles pour lesquelles il est pr´ ef´ erable d’´ eviter le stockage d’une table de 256 octets.

Les deux derni` eres transformations de l’

AES

ont pour rˆ ole d’assurer la diffusion. Les diff´ erents octets de la sortie de la fonction SubBytes sont tout d’abord permut´ es par la fonction ShiftRows.

Cette transformation op` ere ind´ ependamment sur chaque ligne num´ erot´ ee i (i = 0, . . . , 3) de la matrice et d´ ecale ses octets de i positions vers la gauche comme illustr´ e sur la Figure 1.9. Enfin, dans la fonction MixColumns, chaque colonne de la matrice repr´ esentant la sortie de ShiftRows est consid´ er´ ee comme un polynˆ ome sur GF (2

8

), lequel est multipli´ e modulo (x

4

+ 1) par le polynˆ ome c(x) = ‘03’ · x

3

+ ‘01’ · x

2

+ ‘01’ · x + ‘02’. Cette op´ eration lin´ eaire est ´ equivalente ` a la multiplication matricielle de chaque colonne par la matrice constante C suivante :

C =

‘02’ ‘03’ ‘01’ ‘01’

‘01’ ‘02’ ‘03’ ‘01’

‘01’ ‘01’ ‘02’ ‘03’

‘03’ ‘01’ ‘01’ ‘02’

 .

10

(32)

1.2. Les algorithmes cryptographiques

Fig. 1.8 – L’algorithme

AES

.

Fig. 1.9 – La transformation ShiftRows.

(33)

Chapitre 1. La s´ ecurit´ e physique

1.2.2 Cryptographie asym´ etrique

D’un point de vue pratique, la cryptographie sym´ etrique pr´ esente un inconv´ enient majeur li´ e ` a la gestion des cl´ es utilis´ ees. Pour que deux interlocuteurs puissent communiquer de mani` ere confidentielle, il leur est n´ ecessaire de convenir au pr´ ealable d’une valeur secr` ete de cl´ e. Cette phase d’´ echange de secret semble probl´ ematique puisqu’elle n´ ecessite a priori de pouvoir disposer d’un moyen sˆ ur de pouvoir se transmettre une information confidentielle (la cl´ e).

En 1976, Whitfield Diffie et Martin Hellman [DH76] ont r´ evolutionn´ e l’usage de la cryptographie en inventant, sans toutefois pouvoir en proposer d’instanciation concr` ete, le concept de cryptographie asym´ etrique, autrement appel´ ee cryptographie ` a cl´ e publique. Le cryp- tographie asym´ etrique fait appel aux permutations ` a sens unique ` a trappe. Supposons que Bob veuille pouvoir recevoir une correspondance confidentielle. Il g´ en` ere une cl´ e K

B

qui lui est d´ e- di´ ee. Cette cl´ e est en r´ ealit´ e compos´ ee de parties K

B

= (K

pB

, K

sB

). La premi` ere partie K

pB

est publique et est transmise ` a Alice pour qu’elle puisse chiffrer ` a destination de Bob en ´ evaluant la fonction ` a sens unique sur le message clair. K

pB

est appel´ ee la cl´ e publique de Bob mˆ eme si on remarque que ce n’est pas lui qui l’utilise. La deuxi` eme partie K

sB

doit ˆ etre maintenue secr` ete par Bob. C’est sa cl´ e priv´ ee, qui lui sert de trappe pour inverser la fonction ` a sens unique et ainsi d´ echiffrer les messages qui ont ´ et´ e chiffr´ es ` a son attention.

Une remarque cruciale pour ce type de crypto-syst` eme est que la cl´ e publique de Bob n’est d´ edi´ ee ` a aucun ´ emetteur en particulier. C’est ` a dire que n’importe qui peut utiliser la cl´ e publique de Bob pour lui envoyer des donn´ ees chiffr´ ees. Cela r´ esout le probl` eme ´ evoqu´ e pour l’´ echange de secret dans le cas d’un crypto-syst` eme sym´ etrique. Il n’est plus n´ ecessaire de disposer d’un canal s´ ecuris´ e pour ´ echanger la cl´ e de chiffrement, ni de devoir la stocker de mani` ere sˆ ure. Il suffit ` a Bob d’inscrire sa cl´ e publique dans un r´ epertoire rassemblant les cl´ es publiques de tous les utilisateurs.

Il faut toutefois remarquer qu’il peut ˆ etre difficile de se convaincre qu’une cl´ e publique appartient effectivement ` a son possesseur suppos´ e. Il se pourrait en effet qu’une personne mal intentionn´ ee publie une cl´ e publique au nom de Bob alors que c’est lui-mˆ eme qui en poss` ede la contre- partie priv´ ee. Il pourra alors d´ echiffrer toute donn´ ee confidentielle qu’Alice aura cru envoyer ` a destination de Bob. Pour rem´ edier ` a ce probl` eme, on fait appel ` a des certificats qui attestent de l’identit´ e du possesseur d’une cl´ e publique. Cela met en œuvre toute une infrastructure de gestion des cl´ es publiques (en anglais, Public Key Infrastructure, PKI) que nous ne d´ etaillerons pas. Notons que le probl` eme de gestion des cl´ es publiques a ´ et´ e r´ esolu de mani` ere th´ eorique d` es 1984 par Adi Shamir [Sha85] qui a propos´ e le concept de chiffrement bas´ e sur l’identit´ e (en anglais, Identity Based Encryption,

IBE

). Ce n’est toutefois qu’en 1991 qu’un exemple concret d’

IBE

a ´ et´ e propos´ e par Ueli Maurer et Yacov Yacobi [MY91, MY93].

En pratique les crypto-syst` emes ` a cl´ e publique sont notablement moins rapides que les fonc- tions de chiffrement sym´ etrique. Ils ne sont donc g´ en´ eralement pas utilis´ es pour chiffrer-d´ echiffrer de gros documents, mais plutˆ ot pour ´ echanger de mani` ere s´ ecuris´ ee une cl´ e de chiffrement sy- m´ etrique. Chiffrer cette cl´ e par un algorithme ` a cl´ e publique ne sera pas p´ enalisant puisque c’est une donn´ ee de petite taille, et une fois cette cl´ e ´ echang´ ee avec son interlocuteur il sera possible d’utiliser un algorithme de chiffrement par bloc rapide (l’

AES

par exemple) pour chiffrer un volume important de donn´ ees.

En 1978, Ronald Rivest , Adi Shamir et Leonard Adleman ont propos´ e le premier exemple de crypto-syst` emes ` a cl´ e publique [RSA78], appel´ e

RSA

du nom de ses inventeurs.

La s´ ecurit´ e du

RSA

repose sur la difficult´ e suppos´ ee du probl` eme de la factorisation d’entiers

qui, aujourd’hui, n’a toujours pas ´ et´ e r´ esolu. Plusieurs autres crypto-syst` emes ` a cl´ e publiques

sont apparus depuis, certains reposant sur d’autres probl` emes difficiles comme par exemple le

probl` eme du logarithme discret dans le groupe multiplicatif d´ efini modulo un premier [ElG84,

12

(34)

1.2. Les algorithmes cryptographiques ElG85, NIST00], ou dans des groupes d´ efinis par des courbes elliptiques [Mil86, Kob87]. Nous ne d´ etaillerons ici que le fonctionnement du

RSA

qui est de tr` es loin le plus couramment utilis´ e.

Le crypto-syst` eme

RSA

Le crypto-syst` eme

RSA

utilise comme fonction ` a sens unique l’exponentiation dans les entiers modulo un nombre compos´ e N . La trappe permettant le calcul de racines modulo N est la connaissance de la factorisation de ce module. La s´ ecurit´ e du

RSA

repose donc sur la difficult´ e suppos´ ee du probl` eme de la factorisation d’entiers.

La g´ en´ eration d’une cl´ e

RSA

se fait de la mani` ere suivante. ´ Etant donn´ e un entier e appel´ e exposant public, on g´ en` ere al´ eatoirement deux grands entiers premiers p et q tels que e soit premier avec ϕ(N ) = (p − 1)(q − 1), o` u ϕ(·) est la fonction indicatrice d’ Euler . Le produit N = pq est appel´ e le module, et forme avec e la partie publique K

p

= (N, e) de la cl´ e. La partie priv´ ee K

s

de la cl´ e est l’exposant priv´ e d, ´ egal ` a l’inverse de e modulo ϕ(N ).

Pour chiffrer un message 0 6 m < N , Alice calcule : c = m

e

mod N

et l’envoie ` a Bob qui peut d´ echiffrer c en calculant m = c

d

mod N . On retrouve bien le message d’origine car

c

d

≡ m

ed

(mod N )

≡ m

1+kϕ(N)

(mod N )

≡ m (mod N ) (1.1)

d’apr` es le th´ eor` eme d’ Euler qui ´ etablit que ϕ(N ) est un multiple de l’ordre de tout ´ el´ ement de (Z/N Z)

?

.

4

Le crypto-syst` eme

RSA

permet ´ egalement de produire des signatures num´ eriques de docu- ments. Cette utilisation est duale de celle du chiffrement. Lorsqu’il veut signer un document m, Bob utilise sa cl´ e priv´ ee pour g´ en´ erer la signature :

s = m

d

mod N .

Quiconque souhaite v´ erifier l’authenticit´ e d’une signature s suppos´ ee produite par Bob sur un document m utilisera la cl´ e publique de Bob pour inverser la fonction de signature. Il est alors possible de calculer m

0

= s

e

mod N et v´ erifier que m

0

est bien ´ egal ` a m. Dans la pratique, on

´ evite de signer directement la valeur du message m. On utilise au contraire une fonction de hachage H pour calculer une empreinte h = H(m) du document ` a signer. C’est cette empreinte h qui sera sign´ ee par Bob. L’inversion de la signature fournira une valeur h

0

que le v´ erifieur comparera ` a H(m). Cet emploi d’une fonction de hachage permet d’´ eviter de calculer la fonction

RSA

sur de gros documents. Elle est g´ en´ eralement utilis´ ee conjointement avec un bon sch´ ema de padding (par exemple

RSA-OAEP

ou

RSA-PSS

), pour contrer la mall´ eabilit´ e de l’exponentiation modulaire.

Pour rendre impossible en pratique la factorisation du module N , les deux premiers p et q doivent ˆ etre suffisamment grands. De nos jours, on utilise des modules de taille au moins ´ egale

`

a 1024 bits, parfois mˆ eme ´ egale ` a 2048 bits.

4En la consid´erant s´epar´ement modulo pet modulo q, on peut prouver que l’Equation (1.1) est ´egalement v´erifi´ee dans le cas o`um /∈(Z/NZ)?.

(35)

Chapitre 1. La s´ ecurit´ e physique

Algorithme 1.1 M´ ethode basique d’exponentiation modulaire Entr´ ee : x, d = (d

k−1

, . . . , d

0

)

2

, N

Sortie : y = x

d

mod N

1.

y ← 1

2.

pour i ← k − 1 ` a 0

3.

y ← y · y mod N

4.

si (d

i

= 1) alors

5.

y ← y · x mod N

6.

fin si

7.

fin pour

8.

retourne y

Fig. 1.10 – Exponentiation par la m´ ethode ´ elever au carr´ e et multiplier.

L’exponentiation modulaire sur des grands entiers est une op´ eration coˆ uteuse en temps de calcul. Parmi les nombreuses m´ ethodes possibles, nous pr´ esentons ` a la Figure 1.10 un algorithme qui r´ ealise l’op´ eration y = x

d

mod N par la m´ ethode de base dite ´ elever au carr´ e et multiplier.

Notant k la taille en bit de l’exposant, le nombre moyen de multiplications modulaires est ici de 1, 5k. Plus g´ en´ eralement, quelle que soit la m´ ethode utilis´ ee, au moins k multiplications sont n´ ecessaires pour calculer une exponentiation. Par ailleurs, une multiplication modulaire n´ ecessite habituellement O(k

2

) op´ erations ´ el´ ementaires au niveau bit

5

, et la complexit´ e de l’exponentiation est donc en O(k

3

).

Deux voies sont possibles pour r´ eduire la dur´ ee de l’exponentiation. La premi` ere est de r´ eduire le nombre de multiplications en choisissant un petit exposant. Cela est possible dans le cas de l’exponentiation publique pour laquelle la valeur classique (2

16

+ 1) de l’exposant e permet de limiter consid´ erablement la dur´ ee d’un chiffrement ou d’une v´ erification de signature.

Pour ce qui concerne l’exponentiation priv´ ee utilis´ ee pour le d´ echiffrement ou la signature, Jean-Jacques Quisquater et Chantal Couvreur [QC82] ont propos´ e une technique astu- cieuse bas´ ee sur le th´ eor` eme chinois des restes (en anglais, Chinese Remainder Theorem, CRT).

Cette technique est appel´ ee mode CRT par opposition au mode standard. Pour des modules

´

equilibr´ es, la cl´ e priv´ ee d est alors remplac´ ee par cinq ´ el´ ements de taille deux fois plus petite, p, q, d mod (p − 1), d mod (q − 1) et p

−1

mod q, qui vont permettre de remplacer le calcul d’une exponentiation modulaire sur des op´ erandes de taille k par celui de deux exponentiations sur des op´ erandes de taille k/2.

Pour calculer une signature s = m

d

mod N par cette technique, on commence par ´ evaluer s ind´ ependamment modulo p et modulo q :

s

p

= s

d

mod p = (s mod p)

dmod (p−1)

mod p s

q

= s

d

mod q = (s mod q)

dmod (q−1)

mod q .

D’apr` es le th´ eor` eme chinois des restes, il est alors possible de retrouver s en combinant s

p

5Il existe des algorithmes de multiplication avec une meilleure complexit´e asymptotique, tels que les m´ethodes deKaratsuba(O(klog(3)/log(2)

)) ou deSch¨onhageetStrassen(O(klogklog logk)), mais leur utilisation n’est pas rentable pour des nombres de taille cryptographique.

14

(36)

1.3. L’analyse des canaux auxiliaires et s

q

. Cela peut se faire par exemple en utilisant la m´ ethode de Garner :

s = s

p

+ p · (s

q

− s

p

) · p

−1

mod q .

En raison de la complexit´ e cubique de l’exponentiation, et dans le cas o` u la dur´ ee de la recombinaison est n´ egligeable devant celle des calculs de s

p

et s

q

, la signature est quatre fois plus rapide en mode CRT qu’en mode standard.

1.3 L’analyse des canaux auxiliaires

Il est tr` es important que les fonctions cryptographiques sur lesquelles reposent les fonctions s´ ecuritaires d’un syst` eme soient solides. Elles doivent d´ emontrer un niveau de s´ ecurit´ e th´ eorique ne laissant place ` a aucune attaque r´ ealisable en un temps raisonnable qu’un adversaire pourrait vouloir mener en analysant les chiffr´ es ou les paires clair-chiffr´ e. Il est ´ egalement important d’ˆ etre vigilant quant ` a l’utilisation de ces fonctions pour ´ eviter certains pi` eges. Par exemple l’emploi du

RSA

doit imp´ erativement faire appel ` a une bonne fonction de padding pour contrer la mall´ eabilit´ e de l’exponentiation modulaire.

Il est apparu r´ ecemment que les pr´ ecautions prises quant ` a la fonction math´ ematique utilis´ ee et ` a son emploi, quoiqu’´ evidemment n´ ecessaires, ne suffisent pas ` a garantir, concr` etement, la s´ ecurit´ e d’un syst` eme. La mise en œuvre de la cryptographie requiert une impl´ ementation phy- sique qui produira n´ ecessairement des grandeurs observables d’une autre nature que les entr´ ees et les sorties de la fonction math´ ematique.

C’est l’exploitation de ces grandeurs physiques que l’on nomme l’analyse des canaux auxi- liaires (en anglais, Side Channel Analysis,

SCA

). N´ ecessitant une interaction avec le dispositif cryptographique (ou au moins son observation), les attaques permises par ce type d’analyse concernent donc essentiellement les crypto-syst` emes embarqu´ es, par exemple dans les cartes ` a puce. Le premier exemple publi´ e d’une analyse de canal auxiliaire exploitait le temps d’ex´ ecu- tion d’une commande [Koc96], mais d’autres grandeurs physiques ont rapidement ´ et´ e analys´ ees par la suite comme la consommation de courant d` es 1998 [KJJ98], ou le rayonnement ´ electro- magn´ etique

6

d` es 2001 [GMO01]. Il est ´ egalement possible d’envisager d’autres types de fuite d’information. Il a ainsi ´ et´ e pr´ esent´ e ` a Ches ’07 un poster proposant d’exploiter la variation de temp´ erature externe d’un composant ´ electronique en fonction de son activit´ e, d´ emonstration pratique ` a l’appui.

1.3.1 Les attaques

L’analyse du temps d’ex´ ecution

Paul Kocher [Koc96] a donn´ e en 1996 un premier exemple d’analyse de canal auxiliaire en proposant d’exploiter des variations de la dur´ ee de certaines op´ erations, comme par exemple une multiplication modulaire, en fonction des valeurs de ses op´ erandes. Il montre qu’il est alors possible de retrouver les cl´ es utilis´ ees dans diff´ erents crypto-syst` emes ` a cl´ e publique bas´ es sur l’exponentiation modulaire.

Les attaques par analyse du temps d’ex´ ecution n’ont pas donn´ e lieu par la suite ` a beaucoup d’autres publications (voir malgr´ e tout [HH99, DKL+00]) car il est apparu qu’il ´ etait souvent as- sez facile d’assurer qu’une impl´ ementation logicielle sur carte ` a puce s’ex´ ecute en temps constant.

6L’information apport´ee par le rayonnement ´electromagn´etique est parfois de nature diff´erente et plus riche que celle contenue dans la consommation de courant. Cependant les techniques d’analyse et les contre-mesures vis-`a-vis de ces techniques sont essentiellement les mˆemes.

Références

Documents relatifs

Dans notre cas, le mod`ele de r´eaction que nous avons adopt´e, l’approximation eikonale dynamique, ne permet pas encore, pour des raisons de temps de calcul, de traiter les syst`emes

Cette ´ etude permettra ainsi de mettre en lumi` ere ce nouveau concept de la fragilit´ e des personnes ˆ ag´ ees et de sensibiliser les diff´ erents professionnels de sant´ e, en

Le fait de pouvoir remplacer une r´egion logique quelconque rend la re- configuration dynamique partielle int´eressante pour tout applicatif. L’oppor- tunit´e de notre hi´erarchie

Contribution : Notre contribution dans cette partie est la conception d’un composant électro- nique permettant le décompte du nombre d’accès en mémoire et la détection

Les Handi-Pactes territoriaux constituent un outil d’animation et de développement de partenariats régionaux permettant de mobiliser les ressources disponibles des employeurs

Les r´esultats de l’extraction des cin´etiques pour les deux m´ethodes utilis´ees sont pr´esent´es respectivement dans les figures 6.36 (pour la m´ethode NMF-ALS) et 6.37 (pour

pour L n,p tel que deux éléments suessifs dièrent d'une et une seule position. L ′ n,p ) est l'ensemble des mots de Fibonai (resp. Luas) ayant.. un nombre impair

(Les quatre exercices sont