Solution de philadonf44 pour Mille Fautes

intro hardware attaque par faute

2 janvier 2026

Principe de l’attaque

L’implémentation RSA utilise un algorithme Square-and-Multiply Always. Chaque itération calcule un produit intermédiaire, utilisé uniquement si le bit courant de l’exposant privé vaut 1.

Le modèle de faute remplace la valeur écrite dans un registre par une valeur aléatoire lorsque l’instruction est fautée.

Observation clé

Les fautes sont injectées à l’instruction :

  • MUL R4, R2, R6
  • une fois par itération de boucle

Ainsi :

  • si le bit de l’exposant vaut 0 → le produit fauté n’est pas utilisé → signature valide
  • si le bit vaut 1 → le produit fauté est utilisé → signature invalide

On peut donc reconstruire l’exposant privé bit par bit à partir du log.

Exploitation

À partir du fichier mille-fautes.txt :

  • verify == False → bit = 1
  • verify == True → bit = 0

Les bits sont lus du MSB au LSB.

Résultat

Exposant privé :

105242162543788743337252980031094540410286920689651093978118453037560701236944536116502819554965696785102170204949088553998761871348511118790932114247603701322088137236444818782787447039245943523349114909236634220118498903093045370684591251550088750568851495851919215974128144936137495423947422756508385773521