CTF解题——看雪CTF-EasyRsa

看雪CTF-EasyRsa解题

  • 题目来源:http://kctf.kanxue.com/challenges在这里插入图片描述
  • RSA有很多中类型的密码题,本文仅作最简单的一种介绍,也正如看雪的EasyRSA题一样,简单的RSA。
  • 想详细其他RSA知识的的可以看下kx论坛的这篇文章:https://bbs.kanxue.com/thread-263069-1.htm
  • 从这篇文章我们可以看到有同本题类似的一题,通过公式即可直接得出D,接下来观察我们本题。在这里插入图片描述从图中我们我们可以看到,PQE并不是我们常见的十进制值,如123,-123,0等等一些值。或者说和上图中一样的数值。而是字母+数字的组合(老鸟应该一眼就能看出来是十六进制(hex)了)。
  • 得知是十六进制之后,我们开始写脚本,进行计算。这边也可以使用工具去进行计算(推荐使用rsatool。工具地址:https://github.com/ius/rsatool)。

脚本实现

import gmpy2

p = 'A890768DCF26582145A87B24BE722E9B' 
q = '8DD7C2DCB43AC1945F668E72F058EBBB'
e = '10001'
#我们将十六进制转换为10进制进行计算
p_decimal = int(p,16)
q_decimal = int(q,16)
e_decimal = int(e,16)

phi = (p_decimal-1)*(q_decimal-1)
d = gmpy2.invert(e_decimal,phi)
#最后输出十六进制的D  
print(hex(d))
输出结果

在这里插入图片描述

rsatool实现(其实也是写好的脚本)

  • 看一下他的使用方法,python rsatool.py +选项 参数
    在这里插入图片描述
    我们直接调用,这里应为我们的p,q,e是十六进制,所以参数前要+0x(代表十六进制数),有又应为十六进制的10001就是65537,rsatool这个工具的E值默认就是65537我们就输入p和q就求解出D了。
python .\rsatool.py -p 0xA890768DCF26582145A87B24BE722E9B  -q 0x8DD7C2DCB43AC1945F668E72F058EBBB

在这里插入图片描述
—————————————————————————————————————————至此,本题结束。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花园小宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值