现代密码下

RSA常见题型-共模攻击

共模攻击是一种针对使用相同模数(N)但不同公钥指数(e)的多个RSA加密算法进行的攻击。它利用了RSA算法中同一明文在不同公钥指数下进行加密后得到的密文之间的关系。(拥有一个相同的明文,但是进行了多次rsa的算法,通过在加密过程中,使用不同的公钥指数e,算出两个不同的密文,就是密文c1和c2。出题类型:给一个c1、c2,然后给两个公钥e1、e2,还有一个相同的模N,就是一个比较典型的共模攻击)

第1题:sameMod(Buuctf)

下载附件后得到一个txt文件

f61f7a74e78e4a0d9fdb167cf27ca41f.png

 

图中画红线的位置为相同的模量n,画绿线的位置为不同的公钥指数e,下面两个为加密之后的密文c1和c2,是比较典型的共模攻击。

整理后如图所示

af062176b3864f95bebc0313bd2b3c55.png

 

编写Python脚本

调用了gmpy2库中的acdext函数,该函数用来计算e1和e2的乘法逆元,得到明文如图所示

c09e29b80ef748dba9d9824e96475109.png

 

可以观察到明文的特点,101 108 97 103(10进制)的ascll转换后为flag,所以我们需要将明文转换成ascll码

wHPyYAL4xDTRwAAAABJRU5ErkJggg==

转换后的flag值如图所示。

RSA常见题型-低解密指数攻击

低解密指数攻击也叫“维纳攻击”,解密指数指的是私钥d,当私钥值过小会加速破译的过程。CTF中可以根据e的长度判断是否符合低解密指数攻击,此攻击方式适用于e值非常大的情况。

第2题:rsa2

下载插件后获得Python脚本,如图所示

eff3541d5aee477f99f7b1e88e9e2046.png

 

可以发现e的值非常大,判断为低解密指数攻击,最后一行解释:解出的d的16进制形式的MD5值为flag

首先我们需要下载解题文件https://github.com/pablocelayes/rsa-wiener-attack,将我们写的Python脚本,和它放在同一个目录下7eb5e5c817124335bea2db0d65edfc08.png

 

afec0835b51042d1811047b94040b035.png

 

得到d之后,使用题给的py代码解得d的16进制的MD5值,得到最终flag。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值