【密码学RSA】河北省大学生网络与信息安全选拔赛_easyrsa

1.题目:

n=22561172536677648559787604959523195072179259409010314452272275495363968755657659138742248552894595529382230922241140656549843203305826473571445603834757787255736898096406153231539420740606617993518122317969410178044748567867122389763000873035273736666346624950112390179154333942974763371969584888993523474785703126407758739432302547292610981495520537518042779911203114321445895667363586256353373620877601821136901641493999842631467944779970213905636039444786194077923883593166806502276718151627041975659783265190382918098071120315433981040541826821825277381380527761087122467964932153713194745798177997722042776467823
e=65537
c=19328196358751658895450655392637127310222166740765135237100788629359244004186017531913542633846914446577530070361990508415396536818488820222120779983101438854297373364445564149526771854808100054824945213757075977600155153794380392843250249421227703382007213012131876851828154156292326203220320138218001022549062888054700986604924812634110284449199586085012678155983265546720208230278018003075240556412400816319188195980878492235194635353445804239756712398169138480766013684092405117638265070954612493845540746705265223696626365851780172702852574231465793269945857869635628236488314786408909172723290733282538209968247
2d+phi(n)=24114829899810646031152927156356440623523513950820570971172657869605295042116148846058663431685177495769257006671204194892172258274371716987566720411992577862665150660975369465525447840121901649254226473481778722127378865051369383216827923429416969207860136204997233907126159519798979336641129811969668501246242088955574999107571615543760265312436830459903515683689045577164832265662220035876790112563967655077079968881948607640842264058086427875121914327767238217629898601698947580820398969991591620306905238666381003642185305206988597488619954300386153696163111726576675781435154124871145727025050765235161063120482

2.推导过程:

a=2*d+phi_n #两边同时乘以e
e*a=2e*d+phi_n*e #两边同时%phi_n
e*a%phi_n=2e*d%phi_n+phi_n*e%phi_n
         =2e*d%phi_n  #根据定义ed mod phi_n=1
所以:
e*a%phi_n=2
e*(a//2)%phi_n=1
d1=(a//2)
pow(c,d1,n)

3.这一类型的题,主要是需要数论功底,推出表达式即可:

from Crypto.Util.number import *
from gmpy2 import *
from libnum import *

n = 22561172536677648559787604959523195072179259409010314452272275495363968755657659138742248552894595529382230922241140656549843203305826473571445603834757787255736898096406153231539420740606617993518122317969410178044748567867122389763000873035273736666346624950112390179154333942974763371969584888993523474785703126407758739432302547292610981495520537518042779911203114321445895667363586256353373620877601821136901641493999842631467944779970213905636039444786194077923883593166806502276718151627041975659783265190382918098071120315433981040541826821825277381380527761087122467964932153713194745798177997722042776467823
c = 19328196358751658895450655392637127310222166740765135237100788629359244004186017531913542633846914446577530070361990508415396536818488820222120779983101438854297373364445564149526771854808100054824945213757075977600155153794380392843250249421227703382007213012131876851828154156292326203220320138218001022549062888054700986604924812634110284449199586085012678155983265546720208230278018003075240556412400816319188195980878492235194635353445804239756712398169138480766013684092405117638265070954612493845540746705265223696626365851780172702852574231465793269945857869635628236488314786408909172723290733282538209968247
a = 24114829899810646031152927156356440623523513950820570971172657869605295042116148846058663431685177495769257006671204194892172258274371716987566720411992577862665150660975369465525447840121901649254226473481778722127378865051369383216827923429416969207860136204997233907126159519798979336641129811969668501246242088955574999107571615543760265312436830459903515683689045577164832265662220035876790112563967655077079968881948607640842264058086427875121914327767238217629898601698947580820398969991591620306905238666381003642185305206988597488619954300386153696163111726576675781435154124871145727025050765235161063120482
d = a//2
#print(d)
#d = 12057414949905323015576463578178220311761756975410285485586328934802647521058074423029331715842588747884628503335602097446086129137185858493783360205996288931332575330487684732762723920060950824627113236740889361063689432525684691608413961714708484603930068102498616953563079759899489668320564905984834250623121044477787499553785807771880132656218415229951757841844522788582416132831110017938395056281983827538539984440974303820421132029043213937560957163883619108814949300849473790410199484995795810153452619333190501821092652603494298744309977150193076848081555863288337890717577062435572863512525382617580531560241
m = pow(c,d,n)
print(n2s(m))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值