J'ai créé un script pour chiffrer mon message secret, je pense que c'est sécurisé... n'est-ce pas ?
Solution
C'est du RSA, il faut retrouver PHI pour récupérer d et ainsi déchiffre enc_flag. enc_phi est chiffré grâce à un XOR avec secret qui nous est fourni. C'est une opération réversible, il suffit donc de refaire un XOR en enc_phi et secret pour retrouver PHI.
Ensuite, on calcule d en cherchant la puissance inverse de e dans PHI.
Enfin, on déchiffre en mettant enc_flag à la puissance d dans n.
e = 3
n = 23466221480760506562667743825843462440744570153384451970927437431078869108098863029782319878319129686199918018481904170513073162324263423622462364478392380770059872280804132733754098619538001234617163073679468259923086590155154020672179732726352508969764309184476949731646635222521746504791959963185057295693217547031415695563371339580972093823689217638316309801862516444138831515647482077132698283248692122172368376975130835532194377670707511296425395492813320036837602534099067871684524836887215002029208337799497393725867953869624834762222869835145587220249078094630675566643694366490381918371657806809905326509007
enc_phi = 23466221480760506562667743825843462440744570153384451970927437431078869108098863029782319878319129686199918018481904170513073162324263423622462364478392380770059872280804132733754098619538001234617163073679468259923086590155154020672179732726352508969764309184476949731646635222521746504791959963185057295692909491385435854729423538202805344391881954722630760889821352727090990204041841488847137985504800034008851915831385687885399160213461602096681298757887361434834848134750737901850156740236640512740201978735280823770300571763676925625361688541571918514187211467416415899287917807329359940490709666124929470622159
enc_flag = 3744424636416960454095871291454613489213958317043825581211519079727263740067275572644558079648988908096007796271232723759171759303156197151668474862110496844679725077697440767712729670016996841294637920830996752369406336682320699605266117801333913388097262991454520071524400460265575532255513022091957683235659102995382150201046766589433971453640905630922850296454959304283568600800971693175189464717949318971047882341
secret = int('a5ca515b7218504f183a8b3c2c39afef', 16)
phi = enc_phi ^ secret
d = pow(e, -1, phi)
flag = pow(enc_flag, d, n)
print(flag.to_bytes(58, 'big').decode())