XCTF:Normal_RSA[WriteUP]

从题目中获取到两个文件

flag.enc内容是通过rsa加密了的密文

pubkey.pem是rsa公钥,加密者利用这个文件对flag原文进行了加密

如果对rsa加密算法不了解的可以补一下教学视频

数学不好也能听懂的算法 - RSA加密和解密原理和过程_哔哩哔哩_bilibili


使用openssl对公钥文件算出N、E的值

openssl rsa -pubin -text -modulus -in pubkey.pem

 
 

E=65537

N=C2636AE5C3D8E43FFB97AB09028F1AAC6C0BF6CD3D70EBCA281BFFE97FBE30DD

这里的N是十六进制所以对该值转换成十进制便于后续计算:

使用python3进行进制转换

手动补齐十六进制头:0x

就获得了十进制的N:

N=87924348264132406875276140514499937145050893665602592992418171647042491658461

使用在线网站对N值进行大质数的分解

通过对N值进行分解,获得rsa加密中的关键值:p、q

网站:factordb.com

p=275127860351348928173285174381581152299

q=319576316814478949870590164193048041239

再次利用python帮我们把T的值算出来

T=87924348264132406875276140514499937144456189488436765114374296308467862464924

利用N、E、T生成私钥

import gmpy2
from Crypto.PublicKey import RSA
 
n = 87924348264132406875276140514499937145050893665602592992418171647042491658461
e = 65537
T = 87924348264132406875276140514499937144456189488436765114374296308467862464924
d = int(gmpy2.invert(e, T))

prikey = RSA.construct((n, e, d), False)
 
with open('prikey.pem', 'w') as f:
    key = prikey.export_key().decode('utf-8')
    print(key)
    f.write(key)


使用私钥对flag.enc文件解密

openssl pkeyutl -decrypt -in flag.enc -inkey prikey.pem


PCTF{256b_i5_m3dium}

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-02-01 22:34:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-01 22:34:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-01 22:34:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-01 22:34:01       18 阅读

热门阅读

  1. 9.SELinux

    9.SELinux

    2024-02-01 22:34:01      21 阅读
  2. explicitCharkey是什么

    2024-02-01 22:34:01       38 阅读
  3. L1-017 到底有多二分数 15

    2024-02-01 22:34:01       33 阅读
  4. Linux 下多线程理解

    2024-02-01 22:34:01       30 阅读
  5. Postgresql使用update

    2024-02-01 22:34:01       28 阅读
  6. 学习python第三天

    2024-02-01 22:34:01       27 阅读
  7. k8s学习-Health Check

    2024-02-01 22:34:01       30 阅读
  8. 网课:校门外的树——牛客(题解)

    2024-02-01 22:34:01       40 阅读
  9. Spring相关框架中的bean及其实例化

    2024-02-01 22:34:01       29 阅读
  10. Ubuntu 22.04开发板更新源报错404 Not Found

    2024-02-01 22:34:01       25 阅读
  11. XML详解

    XML详解

    2024-02-01 22:34:01      38 阅读