RSA_实验吧
http://www.shiyanbar.com/ctf/1772
RSA:
RSA破解
解题链接: http://ctf5.shiyanbar.com/crypto/RSA
解:
先打开OpenSSl.exe

使用openssl工具对私钥进行解析,并运行rsa命令以获取公钥模数。请确保public.pem文件与OpenSSL.exe处于同一目录中。
得到n, e值。exponent就是e值,modulus是n模数的值。

Exponent: 65537 (0x10001)
Modulus=A41006DEFD378B7395B4E2EB1EC9BF56A61CD9C3B5A0A73528521EEB2FB817A7
2、通过msieve来分解n值:
https://sourceforge.net/projects/msieve/?source=recommended
分解了老半天3min,进入gnfs目录下输入一下命令就可以分解
msieve.exe 0xA41006************************EB2FB817A7 -v
初学在探索中
print log messages to the screen and the logfile, meaning detailed records of log entries.
-q -q 静默:不生成任何日志信息;仅打印能找到的因子
--------------------------------------------------------------------------------------------------------------------------------------
E:\gnfs>msieve.exe 0xA41006DEFD378B7395B4E2EB1EC9BF56A61CD9C3B5A0A73528521EEB2FB817A7 -q
0xA41006DEFD378B7395B4E2EB1EC9BF56A61CD9C3B5A0A73528521EEB2FB817A7
prp39: 258631601377848992211685134376492365269
prp39: 286924040788547268861394901519826758027
-------------------------------------------------------------------------------------------------------------

prq39就是p,q可以的。
3.借助脚本工具,在给定参数p、q和e的情况下创建私钥文件private.pem, 该脚本仅限于Linux系统或其在cygwin环境下的Python版本运行,本人曾在Windows环境下尝试过
不过经常出现ImportError错误:从Crypto模块导入RSA密钥生成始终遇到问题。最后不得不安装了cygwin软件环境,在我的博客中详细描述了安装步骤。
之前,在window环境中使用python显得较为繁琐。您可以在cgyming软件包页面(博客中有介绍)找到相应工具包下载链接。如果想运行相关.py脚本,则需先进入相应的代码路径

#!/usr/bin/python
# coding=utf-8
#通过脚本,根据p,q,e值,生成私钥,貌似该脚本只能在Linux或者cygwin的python下运行。
#我就在windows试试不行,装不了能力有限,试过pip install pycrypto
#果断用Linux吧
import math
import sys
from Crypto.PublicKey import RSA
keypair=RSA.generate(1024)
keypair.p=258631601377848992211685134376492365269
keypair.q=286924040788547268861394901519826758027
keypair.e=65537
keypair.n=keypair.p*keypair.q
Qn=long((keypair.p-1)*(keypair.q-1))
i=1
while(True):
x=(Qn*i)+1
if(x%keypair.e==0):
keypair.d=x/keypair.e
break
i+=1
private=open('private.pem','w')
private.write(keypair.exportKey())
private.close()
AI写代码python
运行

4、使用密钥进行解密
OpenSSL> rsautl -decrypt -in flag.enc -inkey private.pem

