Description
La société MegaSecure vient d’éditer une mise à jour de sécurité pour leurs serveurs. Après analyse de la mise à jour, vous vous apercevez que l’éditeur utilise maintenant ce code pour l’exponentiation :
unsigned long exp_by_squaring(unsigned long x, unsigned long n) {
// n est l'exposant secret
if (n == 0) {
return 1;
} else if (n % 2 == 0) {
return exp_by_squaring(x * x, n / 2);
} else {
return x * exp_by_squaring(x * x, (n - 1) / 2);
}
}
Vous avez accès à un serveur où vous avez pu lancer en tant qu’utilisateur
exp_by_squaring(2, 2727955623)
tout en mesurant sa consommation d’énergie.
L’exposant ici est donc n = 2727955623
, soit 10100010100110010100110010100111
en binaire.
Cette trace de consommation est sauvegardée dans trace_utilisateur.csv
.
Vous avez également réussi à mesurer la consommation d’énergie pendant
l’exponentiation d’une donnée de l’administrateur.
Cette trace de consommation est sauvegardée dans trace_admin.csv
.
Saurez-vous retrouver son exposant secret n
?
Le flag est au format FCSC{1234567890}
avec 1234567890
à remplacer par
l’exposant secret de l’administrateur écrit en décimal.
Fichiers
-
spanosaurus.png
443.82 KiB – ef780dd44732fdda38eae0bb7b0ca30a102574d65fe1a53cec914d0cf2a2bc11 -
trace_admin.csv
49.44 KiB – 4f7d8dd8d0372379f25b912ad38b6bc58acec447ae235c93e8e6664005875751 -
trace_utilisateur.csv
48.78 KiB – 7e5790762ceaa274aa8e72cf70b6770eb798cd43d02e477003b519e2ac476004
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.