Description
Un ami a écrit le code de la signature RSA utilisé par un serveur afin de s’authentifier. Il a fait attention à avoir un code s’exécutant en temps constant en utilisant une exponentiation de type ‘Square and Multiply Always’. Toutefois, il a réutilisé ce code dans sa carte à puce. Il est alors possible de retrouver la clef privée de la carte en perturbant le calcul de la signature.
Le fichier mille-fautes.txt
contient un log des fautes d’une attaque réussie,
permettant de retrouver l’exposant privé d
. L’attaque réalisée est décrite
dans le fichier mille-fautes.py
. Le code de la signature est dans le
fichier RSA.asm
, ce fichier étant appelé à l’aide d’une machine virtuelle
supportant des injections de faute (fichiers machine.py
et
machine_faulted.py
). Le modèle de faute est l’affectation d’une valeur
aléatoire au registre de destination, si l’instruction fautée devait
mettre à jour un registre.
Le flag attendu est sous la forme FCSC{d}
, où d
est exprimé en base 10.
Fichiers
-
assembly.py
20.84 KiB – db186ab7dfb5f5e7f4790f1afc951deda349a8a9565a57b6328da2ba89965525 -
crypto_accelerator.py
5.34 KiB – fe3c3f0ef53ec9e4be03ac6843b59b9879e7c8102325e2f323c1adad1e80e192 -
machine.py
19.96 KiB – 048716eab19f32556b08fbea73a07b641f29fa0ff795abd407ead484e3d5041c -
machine_faulted.py
381 B – fff04c758a8017e0ef27e19c5264435d081446779d52acb3d0e01724c7e5d34c -
mille-fautes.py
1.22 KiB – 5fac638d46079af8d93466a7918f66b38a5ec72a10cab70c195779c7db89799f -
mille-fautes.txt
80.81 KiB – 3c1d81d6e5b20b602507dede3126b70aa4d61be432c20148100cc3530db10556 -
RSA.asm
585 B – ab4b6c384856d1c20f8e54172d1ba3f1bc472c0d24e0a35df2bb61717f5f9e75 -
vm.md
27.75 KiB – 0d241df97205c1ea035561b006926949e768e749d997f43f50569e416ee11cdc
Auteur

Flag
Soumettez votre solution
Vous pouvez envoyer votre solution rédigée pour cette épreuve. La FAQ contient la marche à suivre.
Vous avez besoin d'être identifié(e) pour soumettre une solution.
Solutions
Il n'y a pas encore de solutions pour cette épreuve, mais vous pouvez soumettre la vôtre après avoir trouvé le flag.