Principe:
Utiliser un oracle RSA et lui envoyer C * 2**e pour qu'il le déchiffre, nous renvoie m*2 et en déduire m, le message original (le flag)
Le challenge
Oracle
En RSA, étant donné que cypher = message ** exposant [mod N] un message nul 0
donnera toujours 0 et 1 donnera toujours 1
Chosen ciphertext
L'idée est d'envoyer C * 2 ** e. L'oracle le déchiffrera, nous renvoyant 2*m
soit le double du message original (modulo N)
On peut transformer la réponse de l'oracle en une chaine hexadécimale, puis diviser
chaque paire d'octets par deux. En effet, la table ASCII s'arrête à 0x7f
(pour les caractères qui nous intéressent), donc, le double sera forcément inférieur à 0xff
et tiendra lui aussi sur deux octets