i春秋第二届春秋欢乐赛RSA256writeup

i春秋第二届春秋欢乐赛writeup

i春秋第二届春秋欢乐赛RSA256writeup_第1张图片

下载之后进行解压 发现四个文件

i春秋第二届春秋欢乐赛RSA256writeup_第2张图片

0x01看到题目是RSA的  又看到public.key 所以直接用kali linux的openssl

i春秋第二届春秋欢乐赛RSA256writeup_第3张图片

0x02可以看到e就是Exponent的值

而n的十六进制为Modules  我们用python转成十进制

i春秋第二届春秋欢乐赛RSA256writeup_第4张图片

0x03 再将n进行因式分解来得到我们的p和q (推荐使用http://factordb.com/)

i春秋第二届春秋欢乐赛RSA256writeup_第5张图片

0x04最后一步 我用的kali linux 的python2.7

贴上python2.7代码进行解密



#coding:utf-8 
import gmpy 
import rsa 
p = 302825536744096741518546212761194311477 
q = 325045504186436346209877301320131277983 
n = 98432079271513130981267919056149161631892822707167177858831841699521774310891 
e = 65537 
d = int(gmpy.invert(e , (p-1) * (q-1))) 
privatekey = rsa.PrivateKey(n , e , d , p , q)      #根据已知参数,计算私钥 
with open("encrypted.message1" , "rb") as f: 
    print(rsa.decrypt(f.read(), privatekey).decode())       #使用私钥对密文进行解密,并打印 
with open("encrypted.message2" , "rb") as f: 
    print(rsa.decrypt(f.read(), privatekey).decode())       #使用私钥对密文进行解密,并打印 
with open("encrypted.message3" , "rb") as f: 
    print(rsa.decrypt(f.read(), privatekey).decode())       #使用私钥对密文进行解密,并打印

i春秋第二届春秋欢乐赛RSA256writeup_第6张图片

 


你可能感兴趣的:(我的CTF进阶之路)