• Aucun résultat trouvé

Perturbation sur la recombinaison CRT

Partie IV Analyse de contre-mesures DFA

11.2 Contre-mesures DFA : cas du RSA-CRT

11.2.3 Perturbation sur la recombinaison CRT

Bien que les contre-mesures pr´ec´edentes prot`egent le RSA-CRT contre la perturbation des deux exponentiations modulaires, elles sont vuln´erables face `a la perturbation de l’op´eration de recombinaison CRT. Cette vuln´erabilit´e a ´et´e exploit´ee par C. Aum¨uller et al. [ABF+02]. En effet, si une faute transitoire se produit `a l’´etape de recombinaison sur Spt, Sqtou encore iqt, la m´ethode

de Shamir ne d´etecte pas la perturbation. Dans ce cas, l’attaquant peut facilement factoriser le modulo RSA N `a partir de la signature erron´ee ˆS en calculant pgcd Sˆe− m mod N, N.

Toujours dans [ABF+02], les auteurs proposent une am´elioration de l’algorithme de Shamir qui permet de r´esister `a cette derni`ere attaque. Malgr´e tout, S.-M. Yen, S. Moon et J. Ha ont montr´e dans [YMH02] que cette derni`ere am´elioration reste vuln´erable face `a l’injection de fautes permanentes au moment de la recombinaison CRT.

11.2.3.1 Calcul Pathog`ene

Le principe du calcul pathog`ene34 a ´et´e introduit en 2001 par S.-M. Yen et al. [YKLM01].

Cette contre-mesure propose de modifier l’algorithme RSA-CRT classique de telle sorte que si une faute modifie une des composantes CRT (Sp ou bien Sq), la faute contamine aussi l’autre

composante. Ainsi, si ˆS 6≡ S mod q alors ˆS 6≡ S mod p, ce qui rend l’exploitation par calcul du pgcd inefficace. Afin d’illustrer ce principe, nous allons d´ecrire le premier protocole propos´e dans [YKLM01]. Avant de commencer toute signature, les cl´es RSA sont l´eg`erement modifi´ees. La cl´e priv´ee d est remplac´ee par une cl´e priv´ee dr= d− r `a laquelle on retranche un petit entier

r de telle sorte que pgcd(r, ϕ(N )) = 1 et que er = d−1r mod ϕ(N ) soit aussi un petit entier.

Notons que e ne doit pas ˆetre forc´ement petit pour que la derni`ere condition soit satisfaite. Les d´etails du reste du calcul de la signature sont d´ecrits ci-dessous.

1. L’ex´ecution commence par le calcul de :

kp = ⌊m

p⌋ (11.6)

kq = ⌊

m

q ⌋ (11.7)

2. Elle se poursuit par les exponentiations `a la puissance dr suivantes :

Sp ≡ ˙mdr mod p Sq≡ ˆmdr mod q (11.8) o`u ˆ m = ((Sper mod p) + kp· (p − q)) mod q (11.9)

11.2. Contre-mesures DFA : cas du RSA-CRT 3. Enfin le calcul de la signature se termine par une recombinaison CRT du r´esultat des

demi-exponentiations :

S = CRT (Sp, Sq)· ˜mr mod N (11.10)

o`u

˜

m = (Sqer mod q) + kq· q (11.11)

Un autre protocole utilisant le calcul pathog`ene a ´et´e propos´e dans [YKLM01]. Malheureuse- ment, ces deux protocoles furent cass´es quelques ann´ees plus tard par S.-M. Yen et D. Kim dans [YK04, YKM06]. Malgr´e cela, le principe du calcul pathog`ene reste consid´er´e comme une mani`ere ´el´egante et prometteuse pour prot´eger efficacement les implantations CRT de RSA. 11.2.3.2 Algorithme BOS

Dans [BOS03], les chercheurs J. Bl¨omer, M. Otto et J.-P. Seifert proposent une variante de l’algorithme de Shamir suppos´ee r´esister aux attaques par perturbation de l’op´eration de recom- binaison CRT. La modification de cette op´eration ainsi que l’utilisation du calcul pathog`ene [YKLM01] permettent `a l’algorithme BOS de r´esister `a toutes les attaques par perturbation connues jusqu’alors. La suite de ce paragraphe explique le principe de l’algorithme.

Soient t1 et t2 deux entiers al´eatoires de longueur κ-bits soigneusement choisis35 :

1. On pr´ecalcule et stocke en m´emoire les valeurs suivantes :

t1· p, t2· q, t1· t2· N, (11.12)

d1 ≡ d mod ϕ(t1· p), e1 ≡ d1−1 mod ϕ(t1· p),

d2≡ d mod ϕ(t2· q), e2≡ d2−1 mod ϕ(t2· q),

(11.13) 2. Ensuite, on calcule la signature :

S∗ = CRT (Sp∗, Sq∗) mod (t1· t2· N), avec ( S∗ p ≡ md1 mod (t1· p) Sq∗ ≡ md2 mod (t 2· q) (11.14) 3. Enfin, l’algorithme renvoie la signature :

S ≡ (S)c1c2 mod N avec (

c1 ≡ (m − (S∗)e1 + 1) mod (t1· p)

c2 ≡ (m − (S∗)e2+ 1) mod (t2· q)

(11.15)

Remarquons que dans le cas d’une ex´ecution sans erreur, c1= c2= 1 et par suite, S = S∗ mod N .

D’un point de vue plus pratique, cette m´ethode pr´esente le mˆeme inconv´enient que la contre- mesure de Shamir : l’exposant secret d n’est pas toujours stock´e tel que sur les p´eriph´eriques cryptographiques.

Enfin, D. Wagner a montr´e dans [Wag04] que cette contre-mesure reste vuln´erable face aux attaques par perturbation. L’attaque consiste `a perturber la lecture du message m, sur un octet, au moment de calculer S∗

p. Cette perturbation produit une faute transitoire sur la valeur m

puisque la valeur stock´ee en m´emoire reste inchang´ee. Par cons´equent, la signature r´ealis´ee par l’algorithme BOS sera erron´ee :

ˆ

S≡ ( ˆS∗)cˆ1 mod N (11.16)

35. D’apr`es [JC05], t1 et t2 doivent satisfaire les propri´et´es suivantes : (i) pgcd(t1, t2) = 1, (ii) pgcd(d, ϕ(t1)) =

Chapitre 11. Cas du RSA-CRT

sachant que ˆS∗ ≡ (S) mod q mais que ˆS6≡ (S) mod p. En faisant des hypoth`eses sur la valeur

erron´ee du message, l’attaquant calcule la valeur de ˆc1 correspondante et tente de factoriser N

en calculant pgcd (( ˆSe− mcˆ1) mod N, N ). Selon D. Wagner [Wag04], la probabilit´e de succ`es de cette attaque est de 4% pour un RSA de 1024 bits et des nombres al´eatoires de longueur κ = 80 bits. Cependant, J. Bl¨omer et M. Otto proposent de modifier l´eg`erement leur pr´ec´edente contre-mesure pour r´esister `a cette attaque [BO06]. La modification consiste `a ajouter de l’al´ea dans le calcul de c1 et c2 de fa¸con `a ce que leur valeur d´epende le moins possible de la faute :

(

c1 ≡ (m − (S∗)e1)· R1+ 1 mod (t1· p)

c2≡ (m − (S∗)e2)· R2+ 1 mod (t2· q)

(11.17)

o`u R1 et R2 sont deux al´eas de taille κ bits. `A l’heure actuelle, on ne connaˆıt pas d’attaque

contre cette derni`ere version de l’algorithme BOS. 11.2.3.3 Algorithme de Ciet & Joye

Suite aux attaques de D. Wagner sur l’algorithme BOS, M. Ciet et M. Joye ont aussi propos´e une version am´elior´ee de l’algorithme BOS [JC05]. Son principe est rappel´e ci-dessous.

Soient r1 et r2 deux entiers al´eatoires de longueur κ-bits soigneusement choisis, r3 un entier

al´eatoire de longueur l-bits :

1. On pr´ecalcule et stocke en m´emoire les valeurs suivantes : p∗= r

1· p, q∗ = r2· q, i∗q = (q∗)−1 mod p∗, N = p· q, (11.18)

2. Ensuite, on calcule les param`etres CRT : S∗

p ≡ mdp mod p∗, s2 ≡ mdp mod ϕ(r2) mod r2

Sq≡ mdq mod q, s

1 ≡ mdp mod ϕ(r1) mod r1

(11.19)

3. Ces param`etres sont ensuite recombin´es avec le Th´eor`eme des Restes Chinois pour calculer : S∗= CRT (Sp∗, Sq∗)

4. Enfin, l’algorithme renvoie la signature :

S ≡ (S)γ mod N avec          c1≡ (S∗− s1+ 1) mod r1 c2≡ (S∗− s2+ 1) mod r2 γ =⌊(r3· c1+ (2 l− r 3)· c2) 2l ⌋ (11.20)

Notons une nouvelle fois que, pour un calcul sans erreur :

γ = c1= c2= 1 (11.21)

Une analyse de s´ecurit´e de cet algorithme est r´ealis´ee par les concepteurs dans [JC05]. M. Ciet et M. Joye soulignent que cet algorithme est r´esistant `a l’attaque de D. Wagner. Par ailleurs, ils mettent en ´evidence l’importance de prot´eger sp´ecialement les valeurs calcul´ees `a l’´etape 1 contre les fautes. Nous montrerons `a FDTC 2008 que malgr´e cette pr´ecaution, ce sch´ema reste vuln´erable face `a des perturbations transitoires (voir Section 11.3.2.3).

11.2. Contre-mesures DFA : cas du RSA-CRT