Un simple oracle 1/2 (Cryptanalyse) - 404CTF 2022
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


404CTF{L3s_0r4cl3s_RSA_s0n7_si_fr4g1l35}