根据值 加密后的值 算出key_Bugku:加密 rsa

    因为工作原因,所以停滞了一个月没有更新,哇哈哈哈,我终于又回来啦!!db7cae555902242a9a62b4ff8fdbcec3.png0c85d015ad95403744913b80fa3a9088.png现在就要开始认真学习了。最近不仅在学习网络安全知识,还在准备软考【虽然很多人说没有用的这个证】,还是得去考一下。

下面进入正题,继续加密部分的题目,还剩2道题。

ef20f4a9f9b9564dc0ca67a1b46cdf70.png

这道题提供了一个txt文件,话不多说,直接打开。

b004532fbb31caae6d342019d590b60a.png

N : 460657813884289609896372056585544172485318117026246263899744329237492701820627219556007788200590119136173895989001382151536006853823326382892363143604314518686388786002989248800814861248595075326277099645338694977097459168530898776007293695728101976069423971696524237755227187061418202849911479124793990722597e : 354611102441307572056572181827925899198345350228753730931089393275463916544456626894245415096107834465778409532373187125318554614722599301791528916212839368121066035541008808261534500586023652767712271625785204280964688004680328300124849680477105302519377370092578107827116821391826210972320377614967547827619enc : 38230991316229399651823567590692301060044620412191737764632384680546256228451518238842965221394711848337832459443844446889468362154188214840736744657885858943810177675871991111466653158257191139605699916347308294995664530280816850482740530602254559123759121106338359220242637775919026933563326069449424391192

一堆数字,不过已经标注出了e啊,n啊这种字眼,并且题目就是rsa,很明显的要用rsa算法了。

查询百度:

0160e1ef7460df21435ef676fc61d258.png

看似复杂,其实只是需要小小的编个程...小小的dac7f97fc01fa01be063dba1a4318f53.png

这里已经给出了密文,只需要用最后一个公式即可解出明文,不过问题在于d的值,需要用n和e进行推算。

根据大神提示使用的工具:https://github.com/Ganapati/RsaCtfTool

按照Kali系统安装步骤进行了安装,

现在直接用工具测试出p、q的值,

首先生成公钥,也就是知道了n和e的值,需要知道fi(n)的值:

./RsaCtfTool.py --createpub -n 460657813884289609896372056585544172485318117026246263899744329237492701820627219556007788200590119136173895989001382151536006853823326382892363143604314518686388786002989248800814861248595075326277099645338694977097459168530898776007293695728101976069423971696524237755227187061418202849911479124793990722597 -e 354611102441307572056572181827925899198345350228753730931089393275463916544456626894245415096107834465778409532373187125318554614722599301791528916212839368121066035541008808261534500586023652767712271625785204280964688004680328300124849680477105302519377370092578107827116821391826210972320377614967547827619>test.pem

这个里面就是-n后面放入n的值,-e后面放入e的值,并放入了test.pem文件中。

生成公钥之后就需要推理出私钥d的值:

./RsaCtfTool.py --publickey test.pem --private > test.key

因为我这里出现了无法保存的现象,不知道其他小伙伴怎么样的,安装了几个加解密的库也没有用。

98567b0edfe717a22927520be59d7f7c.png

卡住之后就只能手动保存下来,进行读取展示了416a4fac51ce189fa8a89b3cc1fe81f9.png416a4fac51ce189fa8a89b3cc1fe81f9.png

./RsaCtfTool.py --key test.key --dumpkey

76e6b086d6b3931162e056356c5bc600.png

d,p,q全部都计算出来了。

n: 460657813884289609896372056585544172485318117026246263899744329237492701820627219556007788200590119136173895989001382151536006853823326382892363143604314518686388786002989248800814861248595075326277099645338694977097459168530898776007293695728101976069423971696524237755227187061418202849911479124793990722597e: 354611102441307572056572181827925899198345350228753730931089393275463916544456626894245415096107834465778409532373187125318554614722599301791528916212839368121066035541008808261534500586023652767712271625785204280964688004680328300124849680477105302519377370092578107827116821391826210972320377614967547827619d: 8264667972294275017293339772371783322168822149471976834221082393409363691895p: 15991846970993213322072626901560749932686325766403404864023341810735319249066370916090640926219079368845510444031400322229147771682961132420481897362843199q: 28805791771260259486856902729020438686670354441296247148207862836064657849735343618207098163901787287368569768472521344635567334299356760080507454640207003

按照大神的算法,直接按照RSA算法公式进行编程。

引用代码

https://blog.csdn.net/weixin_43833642/article/details/103697906
import gmpy2from libnum import n2sn = '460657813884289609896372056585544172485318117026246263899744329237492701820627219556007788200590119136173895989001382151536006853823326382892363143604314518686388786002989248800814861248595075326277099645338694977097459168530898776007293695728101976069423971696524237755227187061418202849911479124793990722597'e = '354611102441307572056572181827925899198345350228753730931089393275463916544456626894245415096107834465778409532373187125318554614722599301791528916212839368121066035541008808261534500586023652767712271625785204280964688004680328300124849680477105302519377370092578107827116821391826210972320377614967547827619'enc = '38230991316229399651823567590692301060044620412191737764632384680546256228451518238842965221394711848337832459443844446889468362154188214840736744657885858943810177675871991111466653158257191139605699916347308294995664530280816850482740530602254559123759121106338359220242637775919026933563326069449424391192'p = '15991846970993213322072626901560749932686325766403404864023341810735319249066370916090640926219079368845510444031400322229147771682961132420481897362843199'q = '28805791771260259486856902729020438686670354441296247148207862836064657849735343618207098163901787287368569768472521344635567334299356760080507454640207003'd = '8264667972294275017293339772371783322168822149471976834221082393409363691895'n1 = gmpy2.mpz(n)enc1 = gmpy2.mpz(enc)d1 = gmpy2.mpz(d)r = gmpy2.powmod(enc1, d1, n1)s = n2s(r)print(s)

运算出结果,

b42b910c0416bd97c70e1f8b39ab1bb3.png

主要是搭建环境花费了一些功夫,

flag{Wien3r_4tt@ck_1s_3AsY}

这道题就是加密的硬性题目了,要求平时对DES、RSA等主流加密算法的熟练以及加解密工具的应用,还需要多多积累。a9e21a0cba5591d5c230ff4de3a58692.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值