Exemple d"une attaque pour trouver la valeur de x (la clé secrète).
TAATJENE |
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 mod n
- Sinon Rk = Sk
- mod n
- Si le k-ème bit de x vaut 1
- FinPour
- Renvoyer (Rw − 1)
soit 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 de l'exposant.BY TAATJENE
- Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems, l'article de Paul C. Kocher.
Comments