Exemple d"une attaque pour trouver la valeur de x (la clé secrète).

TAATJENE
En 1996, Paul Kocher exhibe une faille dans une implémentation du calcul de l'exponentiation modulaire. L'algorithme consiste à calculer R = yx mod n, avec n public, et y obtenu par espionnage (ou une quelconque autre manière). Le but de l'attaquant est de trouver la valeur de x (la clé secrète).
Pour que cette attaque se déroule correctement, la 'victime' doit calculer yx mod n pour plusieurs valeurs de y, où y, n et le temps de calcul (à un grain suffisamment fin) sont connus de l'attaquant.
Voici l'algorithme, avec w le nombre de bits de longueur de x.
Soit s0 = 1
Pour k allant de 0 à w − 1 faire
Si le k-ème bit de x vaut 1
Alors R_k = (s_k \times y) mod n
Sinon Rk = Sk
S_{k+1} = R^2_{k} mod n
FinPour
Renvoyer (Rw − 1)
On remarque que selon la valeur du bit, on calcule
soit (S_k \times y) mod n soit rien (en fait, on effectue
l'affectation Rk = Sk, mais en termes de temps de
calcul c'est négligeable). Donc si on peut observer
suffisamment finement le temps d'exécution de l'algorithme,
on peut déduire la valeur du bit en fonction du temps de
calcul, et ainsi recouvrer totalement le secret en procédant
par itération sur les bits 0 \ldots b-1 de l'exposant.BY TAATJENE

Comments

Popular Posts