• Aucun résultat trouvé

Contre-mesures combin´ees SPA et DFA

Partie IV Analyse de contre-mesures DFA

11.2 Contre-mesures DFA : cas du RSA-CRT

11.2.4 Contre-mesures combin´ees SPA et DFA

Prot´eger les implantations d’algorithmes cryptographiques contre les perturbations n’est pas suffisant pour garantir leur s´ecurit´e physique. En effet, l’ex´ecution de ces algorithmes sur un composant d´enu´e de contre-mesures peut laisser fuir des signaux compromettants. Ces signaux pourraient ˆetre ensuite analys´es malicieusement par un attaquant voulant extraire des informa- tions secr`etes. Le cas des attaques par analyse ´el´ementaire de l’ex´ecution d’une exponentiation modulaire en est un exemple concret [KJJ99] (cf. Section 1.3.4.3). En effet, pour les implantations classiques de l’exponentiation modulaire, le flot d’ex´ecution d´epend directement de l’exposant manipul´e. Par cons´equent, si un attaquant est capable de d´eterminer le flot d’ex´ecution d’une exponentiation, il pourra en d´eduire directement la valeur de l’exposant. Afin de combler cette vuln´erabilit´e potentielle, J.-S. Coron a propos´e l’algorithme Square & Multiply Always (cf. Sec- tion 1.3.4.3). Dans cet algorithme, le flot d’ex´ecution est toujours le mˆeme, quelle que soit la valeur de l’exposant. Malheureusement, M. Joye et S.-M. Yen ont prouv´e que cette variante in- troduisait une nouvelle vuln´erabilit´e face aux perturbations [YJ00] : les safe-errors . Le principe consiste a exploiter des erreurs sur les multiplications modulaires n’ayant aucune cons´equence sur le r´esultat final du calcul. En effet, dans la variante Square & Multiply Always, des multi- plications sont ajout´ees pour ”´equilibrer” l’ex´ecution, mais ces multiplications transparentes du point de vue du r´esultat de l’exponentiation modulaire. Ainsi, sachant que c’est l’une de ces mul- tiplications qui a ´et´e perturb´ee et, connaissant l’instant o`u la faute est provoqu´ee et, l’attaquant peut d´eduire la valeur du bit d’exposant trait´e `a cet instant. En r´ep´etant cette attaque sur plusieurs ex´ecutions de l’exponentiation, il peut alors d´eterminer enti`erement l’exposant priv´e.

Par cons´equent, il est devenu n´ecessaire d’imaginer des contre-mesures contre les attaques par analyse ´el´ementaire n’introduisant pas d’´eventuelles vuln´erabilit´es exploitables par des per- turbations. Dans ce cadre, nous avons distingu´e deux m´ethodes visant `a apporter une s´ecurit´e combin´ee.

11.2.4.1 La v´erification de coh´erence

Le principe de v´erification de coh´erence s’inspire des propri´et´es de l’exponentiation binaire de Montgomery (cf. Algorithme 6) qui permet de calculer simultan´ement (md mod p, md+1 mod p). L’exponentiation de Montgomery est alors utilis´ee pour calculer chacune des demi exponentia- tions, puis le r´esultat est recombin´e pour calculer la signature S et la valeur de v´erification. La signature est alors compar´ee `a la valeur de v´erification via une v´erification de coh´erence per- mettant de s’assurer qu’aucune erreur ne s’est gliss´ee durant l’ex´ecution. Ce principe a d’abord ´et´e introduit par C. Giraud `a FDTC 2005 [Gir05b, Gir05c]. L’algorithme d´eriv´e est rappel´e ci-dessous.

Soit k un entier al´eatoire de taille 32 bits.

1. Calcul des param`etres CRT par un algorithme d’exponentiation qui r´esiste aux analyses ´el´ementaires et aux safe-errors :

sp≡ mdp mod (k· p), s′p ≡ mdp−1 mod (k· p)

sq ≡ mdq mod (k· q), s′q≡ mdp−1 mod (k· q)

(11.22)

2. Recombinaison CRT par l’algorithme modifi´e CRTblinded :

Chapitre 11. Cas du RSA-CRT

On obtient alors S et S′ tels que :

S = CRTblinded(sp, sq)

S′ = CRT

blinded(s′p, s′q)

(11.24) 3. Enfin, on v´erifie que le calcul s’est correctement d´eroul´e :

(a) Si S ≡ (m · S′) mod N & (param`etres, p, q, i

p,non perturb´es), renvoyer S,

(b) Sinon, renvoyer Erreur : Faute d´etect´ee.

Une ´etude avanc´ee de la s´ecurit´e de l’algorithme, vis-`a-vis des perturbations et de l’analyse de signaux compromettants, est propos´ee dans [Gir07]. Enfin, A. Bosher, R. Naciri et E. Prouff ont propos´e dans [BNP07] une variante de cet algorithme. Cependant, R. Naciri montra, quelques semaines plus tard, que l’implantation de leur algorithme pouvait ˆetre cass´ee, en une seule ex´ecution, en combinant une attaque par analyse ´el´ementaire avec une analyse diff´erentielle de perturbation.

11.2.4.2 Les chaˆınes d’additions auto-immunes

En s’inspirant de la m´ethode pr´ec´edente, M. Rivain proposa d’aller plus loin dans le principe de v´erification de coh´erence et proposa, `a CT-RSA 2009, une contre-mesure combin´ee bas´ee sur les chaˆınes d’addition [Riv09]. Le principe g´en´eral consiste `a calculer simultan´ement (A, B) = (mdp mod p, mϕ(p)−dp mod p) et v´erifier que A· B ≡ 1 mod p. Afin de calculer simultan´ement? les deux puissances du message, M. Rivain a propos´e une m´ethode pour construire une chaˆıne d’addition double. En d’autres termes, construire une suite de taille n ∈ N de telle sorte que, comme dp 6ϕ(p)− dp) :

1. (a0, b0) = (dp, 2ϕ(p)− dp)

2. (an, bn) = (0, 1)

3. ∀i, 1 6 i 6 n − 1, (ai+1, bi+1) est obtenu `a partir de (ai, bi) en retranchant 1, en divisant

par deux et/ou en retranchant `a un ´el´ement la valeur de l’autre.

On note alors wp la s´equence binaire codant la construction de cette chaˆıne. Cette s´equence

est de taille n et sert alors `a coder la double exponentiation modulaire calcul´ee par la fonc- tion DoubleExpMod. Soient cp = m2ϕ(p)−dp mod p (resp. cq = m2ϕ(q)−dq mod q) les valeurs de

v´erification, alors, on peut d´ecrire la contre-mesure de M. Rivain appliqu´ee au RSA-CRT de la mani`ere suivante : 1. Construire wp← AddChaineDouble(dp, 2ϕ(p)− dp), 2. Calculer (Sp, cp)← DoubleExpMod( ˙m, wp, p), 3. Construire wq← AddChaineDouble(dq, 2ϕ(q)− dq), 4. Calculer (Sq, cq)← DoubleExpMod( ˙m, wq, q), 5. Recombinaison CRT : S = CRT (Sp, Sq),

6. V´erifier que S· cp ≡ 1 mod p et S · cq ≡ 1 mod q avant de retourner S, sinon retourner

l’erreur

En g´en´eral, r´ealiser une exponentiation modulaire bas´ee sur des chaˆınes d’additions n’est pas tr`es int´eressant car il est difficile de trouver des chaˆınes de taille minimale. Cependant, M. Rivain propose dans [Riv09] une m´ethode heuristique garantissant un coˆut moyen pour l’expo- nentiation modulaire double, seulement 10% sup´erieur `a celui d’une exponentiation modulaire

11.3. Perturbation d’une implantation prot´eg´ee de RSA-CRT