RO : Code d'accès à la base de Scarif

... ou la mauvaise utilisation de RSA

La base de Scarif possède un bouclier défensif qui interdit l'accès aux plates-formes d'atterrissage à moins de disposer d'un code d'accès. Les vaisseaux impériaux qui se rendent habituellement sur Scarif en possèdent tous un.

Ce code est distribué par un canal de communication, qui envoie les codes d'accès aux deux ordinateurs de bord du vaisseau, sous forme chiffrée avec l'algorithme RSA. Les deux ordinateurs de bord (il y en a deux pour que le second puisse prendre le relais en cas de panne du premier) utilisent deux clés RSA différentes, formées du même module (valeur de n) mais d'exposants différents.

Le protocole est le suivant :

  • la base de Scarif prépare son message, puis génère un padding pour qu'il fasse 2048 octets.
  • le résultat est chiffré de deux manières différentes, avec la clé publique (e1, n), et avec la clé publique (e2, n).
  • les deux cryptogrammes sont envoyés aux deux ordinateurs de bord, chacun possédant une clé privée qui déchiffre l'un des deux messages.

Après le vol du vaisseau impérial, Bodhi Rook a dû déconnecter les ordinateurs de bord. Il a pu récupérer les codes d'accès de la base, mais dans leur version chiffrée uniquement. Les 2 clés publiques utilisées pour les chiffrer : (e1, n) et (e2, n) n'étaient pas sécurisées, et il a donc aussi pu mettre la main dessus.

Votre rôle est de récupérer le code d'accès qui permettra de demander la désactivation du bouclier défensif de Scarif. Pour cela, vous avez à disposition :

La première clé publique (e1, n) :

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzPtKIAxSBQXAyDp+uH3p
wroOSTVSPr/K1I7MQYqXhd2bZ1Y1ZosYsRaKyKIRScoez4yoI0+9Li4yMh692tHV
phInz0+FmocAqsQlUeozsdRt0mUJi20ujjwkRozesZY5J5RB+54oxX5uk9XRAFmf
HdNqZO3lNvM5QZC9CjowDJu/Cs7khHoUPDX1SeKKYd7iv70DYwDG/NYtBf+gaxY6
gaFdTmduFMN3wOnxnaRrl5f8tyNTHMHpRWPti1Q/N+CNIbM7NySb3IJMMKj+hj/N
xhk+lGizdIG469OZqICuDkSLBwxxaj9gb26uVv4/W7HLv9oXR1wwAB210rKSoQBz
5wIDAQAB
-----END PUBLIC KEY-----

La seconde (e2, n) :

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzPtKIAxSBQXAyDp+uH3p
wroOSTVSPr/K1I7MQYqXhd2bZ1Y1ZosYsRaKyKIRScoez4yoI0+9Li4yMh692tHV
phInz0+FmocAqsQlUeozsdRt0mUJi20ujjwkRozesZY5J5RB+54oxX5uk9XRAFmf
HdNqZO3lNvM5QZC9CjowDJu/Cs7khHoUPDX1SeKKYd7iv70DYwDG/NYtBf+gaxY6
gaFdTmduFMN3wOnxnaRrl5f8tyNTHMHpRWPti1Q/N+CNIbM7NySb3IJMMKj+hj/N
xhk+lGizdIG469OZqICuDkSLBwxxaj9gb26uVv4/W7HLv9oXR1wwAB210rKSoQBz
5wIDAT+Z
-----END PUBLIC KEY-----

Voici, encodé en base64, le message chiffré avec (e1, n) :

SdDNt6n9EEF+utJNMcTMIEYy9soQylbI9ZMgOPQPW8O32kv/YalsXJZZBTr8peZW
cS6JWnWy6O28PGHsFy0WqixmCZxTkAtufYZy4Evo+okzDhQ21gfkWfSdfhfmzgqo
MEB7He0uDwhzTcIJlFICOOf1IbvwjEo2yyMqbu1hDTsSrZ23wbokMoMDo2Om41y2
TxsSBbNo+P9jRgXKF3vHwtWKXqUCXwB8ouUYnj7R+aF08+ygHGTEinmYFBRPZjU0
Z/pzyV92kY831wvycx42S19RGRKiTYISAgellpqZ/dH2iA3BBBwkHdU8T5y8HKC/
seNkJLz57NVaB6UQbMAHfQ==

et le message chiffré avec (e2, n) :

TTLtgZobIHxmP3Ywki0wogMRSv1/4E/8ts4ywkfZPr9HDu7BKhrAoIB29zj6qF4/
ymS4rSi/K4/dSwO/nU/TgoNEvyHVploxTOjhA/N6zsutqVGrVnysR2AHZjrQ4fco
AxfkTg4HfMnX1Y10RyhdhRPt88RDai54Z15g1X8Yh21qkaoB9LD4pY+Mf8spBnoB
awUqKjsfcxIDqsMm1kKDlcjGZHd/javRQ9Y5fBfezT4TxAgKs5KM65ZD9FABAKc4
dqSTg4l0nO7iWoOoiFMjm1dR9+SRuXIb9wqMtUxoM+9qea8IWg/IVqRJlQ+z+BZr
//JhPZQfu2l52GwFnNtmxA==

Validez le défi en donnant le code d'accès à Scarif.

Un peu d'aide ? Renseignez-vous sur l'attaque des modules communs.

Ce problème est tiré de c0d1ng UP 2018

Type de retour

une chaîne de caractères

Entrée du problème

Pas de donnée d'entrée

Formulaire de réponse

Vous devez être connecté pour pouvoir répondre aux défis

Tags : cryptographie arithmétique cup18