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