RSAd

Flag:

Challenge

circle-info

Description


During your technical interview, the cryptography engineer leans back and smiles : Here's a little RSA encryption puzzle we like to give candidates. If you can recover the original message, the job is yours !

Challenge made by:

Solution

On commence par récupérer les valeurs de la clé publique :

from Crypto.PublicKey import RSA

with open('pub.key', 'rb') as f:
  key = RSA.import_key(f.read())
e = key.e
n = key.n

print(n)
3716988686903660069882200144593397220891733095113506351593605688140148007039485335211705258108910464894219203542907578145260135966195170704004891950321931

N est assez petit, on peut tenter de le factoriser, ici j'utilise dcode - Prime Factors Decompositionarrow-up-right.

C'est un RSA multi facteurs. Ca fonctionne comme un RSA classique : on calcul le totient de N en multipliant tous les facteurs - 1.

Mis à jour