Bootstrap

ctfshow RSA easyrsa1

easyrsa1

题目:
在这里插入图片描述
对比发现其实这里的n并不大(和后面的题目对比),所以可以直接分解n
分解n几种方式:
1、在线网站
2、yafu工具分解

yafu-x64.exe factor(要分解的质数)

3、对于相近的 p p p q q q可以使用费马分解

在这里插入图片描述
这里出来
p = 1201147059438530786835365194567 p=1201147059438530786835365194567 p=1201147059438530786835365194567
q = 1212112637077862917192191913841 q=1212112637077862917192191913841 q=1212112637077862917192191913841
所以
ϕ ( n ) = ( p − 1 ) ( q − 1 ) = 1455925529734358105461406532257498531110831222760963508193440 \phi(n)=(p-1)(q-1)=1455925529734358105461406532257498531110831222760963508193440 ϕ(n)=(p1)(q1)=1455925529734358105461406532257498531110831222760963508193440
d = ϕ ( n ) / / e = 22215321570019349458495300856882349376853246605138524927 d=\phi(n) //e=22215321570019349458495300856882349376853246605138524927 d=ϕ(n)//e=22215321570019349458495300856882349376853246605138524927
m = c d = 584734024210318745406046669953309948776602881661 m=c^{d}=584734024210318745406046669953309948776602881661 m=cd=584734024210318745406046669953309948776602881661
这里根据rsa加解密算法写个简单的解密脚本

import gmpy2
import binascii
e = 65537
n = 1455925529734358105461406532259911790807347616464991065301847
p = 1201147059438530786835365194567
q = 1212112637077862917192191913841
c = 69380371057914246192606760686152233225659503366319332065009

phi_n = (p-1)*(q-1)
d = gmpy2.invert(e,phi_n)
m = gmpy2.powmod(c, d, n)
print(m)
print(binascii.unhexlify(hex(m)[2:]))

;