Advertisement

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
    
    运行
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-06-01/t1nPK8lUygXafChpT6ruYALk74so.png)

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

全部评论 (0)

还没有任何评论哟~