BUUCTF RSA公钥加签

得到两个文件:
pub.key
flag.enc

BUUCTF RSA公钥加签_第1张图片

将pub.key的后缀名改为txt,打开得到:
BUUCTF RSA公钥加签_第2张图片

把pub中的内容,进行公钥解析

BUUCTF RSA公钥加签_第3张图片BUUCTF RSA公钥加签_第4张图片
分解N的网站,得到p,q
factordb

BUUCTF RSA公钥加签_第5张图片

再用工具RSA Tool2 by Te!就能获取到 d=81176168860169991027846870170527607562179635470395365333547868786951080991441,
你写脚本也行,我比较喜欢用工具。
RSA Tool2 by Te!
BUUCTF RSA公钥加签_第6张图片

最后上脚本求flag:

import rsa

e= 65537
n= 86934482296048119190666062003494800588905656017203025617216654058378322103517
p= 285960468890451637935629440372639283459
q= 304008741604601924494328155975272418463
d= 81176168860169991027846870170527607562179635470395365333547868786951080991441

key = rsa.PrivateKey(n,e,d,q,p)         #在pkcs标准中,pkcs#1规定,私钥包含(n,e,d,p,q)

with open("C:\\Users\\MIKEWYW\\Desktop\\flagenc.txt","rb") as f:  #以二进制读模式,读取密文  
    f = f.read()
    print(rsa.decrypt(f,key))           # f:公钥加密结果  key:私钥

这里需要安装一个rsa的模块(对于python3):
输入pip3 install rsa
BUUCTF RSA公钥加签_第7张图片

得到flag{decrypt_256}

你可能感兴趣的:(RSA加密)