FCSC 2020 - Intro - SMIC 1
Le chiffrement RSA repose sur l’exponentiation modulaire de grands nombres. En utilisant, les notations standards, donné le “message” chiffré c
correspondant au “message” en clair :
m = 29092715682136811148741896992216382887663205723233009270907036164616385404410946789697601633832261873953783070225717396137755866976801871184236363551686364362312702985660271388900637527644505521559662128091418418029535347788018938016105431888876506254626085450904980887492319714444847439547681555866496873380
en utilisant la clé publique :
(n, e) = (115835143529011985466946897371659768942707075251385995517214050122410566973563965811168663559614636580713282451012293945169200873869218782362296940822448735543079113463384249819134147369806470560382457164633045830912243978622870542174381898756721599280783431283777436949655777218920351233463535926738440504017, 65537).
Le flag est FCSC{xxxx}
où xxxx
est remplacé par la valeur de c
en écriture décimale.
Résolution
Nous voulons chiffrer le message avec la clé publique (n,e)
, nous utilisons donc la formule suivante :
c = m**e mod n
En python nous le faisons avec la fonction pow
:
c = pow(m,e,n)
Le flag est : FCSC{43038584369552603099759673610132404954603129182365447300530480398332322363741719021427218282885888340427764617212360258625034642827465292074914623418386094167402748099928035759712951543068670333972608099203444196434250100760907677561414593941829935308834430903916897564884969367373487895789351212840634163159}