对于Pollard_rho,它可以在O(sqrt(p))的时间复杂度内找到n的一个小因子p,所以当n的两个素因子差距过大,即有一方过小的话都可以通过Pollard_rho进行分解
例题:

n = 11419768903339716189261532371559705252086398275876008505047375123074727093589680611869748263351554093957968142343831331654606932684767042958427409579115435445187908134556329979271179879129295667476493886787230948520371350715808988496083694717544298343260369816980228394498856751096191942011545898984240281874509791880690092840536597771674772617299407710771426964764347566008897012753022763270832647775571317162594044338095870404550665457899223394942640876850692848671826594750236910363027949459768124646230555766323417693441861436560072288812137944884954974348317322412816157152702695143094487806945533233359294549423
e = 65537
c = 575061710950381118206735073806398116370706587076775765253483131078316908073202143802386128272374323616239083134747318254436706806781744501903333604772961927966747648954315962269321297121495398057938617145017999482722197661065698707836824505023856306403892307944203245563411961302499347604417024064678999003637933185177922884103362203639349298263339808508185861692596967147081382566246627668898774233029198694500565511361867375668367875805985660705137109665107860799277624050210666866958502948062330037309873148963011192405012811945540153592090345668265964477204465327474208098404082920129178960510763496025906621820

首先对n进行分解,得到p和q
再把 n,e,c,p,q放到python2的脚本中进行解密,脚本用到了Python2的primefac库和pycrypto库,请使用pip进行安装

from Crypto.Util.number import long_to_bytes,bytes_to_long,getPrime,isPrime
import primefac
def modinv(a,n):return primefac.modinv(a,n)%n
n=11419768903339716189261532371559705252086398275876008505047375123074727093589680611869748263351554093957968142343831331654606932684767042958427409579115435445187908134556329979271179879129295667476493886787230948520371350715808988496083694717544298343260369816980228394498856751096191942011545898984240281874509791880690092840536597771674772617299407710771426964764347566008897012753022763270832647775571317162594044338095870404550665457899223394942640876850692848671826594750236910363027949459768124646230555766323417693441861436560072288812137944884954974348317322412816157152702695143094487806945533233359294549423
e = 65537
c = 575061710950381118206735073806398116370706587076775765253483131078316908073202143802386128272374323616239083134747318254436706806781744501903333604772961927966747648954315962269321297121495398057938617145017999482722197661065698707836824505023856306403892307944203245563411961302499347604417024064678999003637933185177922884103362203639349298263339808508185861692596967147081382566246627668898774233029198694500565511361867375668367875805985660705137109665107860799277624050210666866958502948062330037309873148963011192405012811945540153592090345668265964477204465327474208098404082920129178960510763496025906621820
p=2499568793
q=4568695582742345507136251229217400959960856046691733722988345503429689799935696593516299458516865110324638359470761456115925725067558499862591063153473862179550706262380644940013531317571260647226561004191266100720745936563550699000939117068559232225644277283541933064331891245169739139886735615435506152070330233107807124410892978280063993668726927377177983100529270996547002022341628251905780873531481682713820809147098305289391835297208890779643623465917824350382592808578978330348769060448006691307027594085634520759293965723855183484366752511654099121387261343686017189426761536281948007104498017003911d=modinv(e,(p-1)*(q-1))
m=pow(c,d,n)
print long_to_bytes(m)

得到flag

注:在安装pip库的时候遇到了一些问题,在这里记录一下
在pip install pycrypto的时候,出现了error: command 'x86_64-linux-gnu-gcc' failed with exit status 1错误

解决方法:对python2的包进行更新

sudo apt-get install python2.7-dev

然后重新使用pip install pycrypto命令进行安装就可以了

密码学RSA解密之Pollard_rho分解相关推荐

  1. 【BZOJ-4522】密钥破解 数论 + 模拟 ( Pollard_Rho分解 + Exgcd求逆元 + 快速幂 + 快速乘)...

    4522: [Cqoi2016]密钥破解 Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 290  Solved: 148 [Submit][Stat ...

  2. RSA解密-提供enc和pem文件类

    RSA解密 --提供enc和pem文件类 解压文件包发现两个文件,flag.enc和pub.pem两个文件.首先我们会想到openssl.这类题目需要用linux的openssl来解.openssl是 ...

  3. 求密文(Rsa解密)

    读题 描述:我们截获了密文. 审题 Rsa解密 提供 我们截获了密文1615686798107271612673186139928791070964947717396919501525,并且通过其他特 ...

  4. android rsa解密前面带乱码,C#rsa解密的解出来的结果乱码

    关于C#rsa解密的问题,代码里面引用了BouncyCastle.CS文件,但是解出来的结果乱码 static void Main(string[] args) { var rsaHelper = n ...

  5. RSA解密中文乱码解决,前端加密后端解密

    var name = '中文测试'var nameen = encodeURIComponent(name);var name = encrypt.encrypt(nameen); 先用encodeU ...

  6. 墨者学院-密码学加解密实训(摩斯密码第2题)

    密码学加解密实训(摩斯密码第2题) 难易程度:★★ 题目类型:代码审计 使用工具:FireFox浏览器.audacity 1.打开靶场,下载文件,这题没有加密文件格式,所以我们直接用音频编辑器auda ...

  7. RSA解密失败:javax.crypto.BadPaddingException : Decryption error

    一.由于项目需要,前端把密码用RSA加密后传输到后端,后端进行RSA解密后再与数据库中的密码进行对比,接受到前端传过来的加密后的密码,在进行解密的时候出现错误了: javax.crypto.BadPa ...

  8. python使用密钥加密的表述_python 利用Crypto进行RSA解密加密文件

    背景:工作需要,部分数据进行了加密传输,对方使用了RSA对密码进行了加密,需要获取到解密的数据. 目标:在已知公钥,私钥的情况下,使用python对其进行解密. RSA加密 一.遇到的问题 收到加密的 ...

  9. CTF常规密码学加解密脚本(python)

    常规密码学加解密脚本(python) 文章目录 一.凯撒加解密(python3) 二.base64和base32解密(python2) 三.RC4加解密(python3) 四.差分曼彻斯特解密(pyt ...

  10. RSA解密出现乱码的问题

    当RSA解密是后经常会出现乱码.或者是badpadding或者是mustsatrtzero的问题,下边我就给大家解释结局一个乱码的问题,其他的都好说, mustsatrtzero的问题无非就是你加密之 ...

最新文章

  1. 【图神经网络研究精华】图卷积网络作者Thomas Kipf博士论文公布
  2. 实时监控fps的linux代码,GitHub - Forec/monitor-recorder: Monitor (实时视频监控、运动检测视频记录)...
  3. Dapr + .NET 实战(四)发布和订阅
  4. LeetCode MySQL解题目录
  5. 【java8新特性】——Stream API详解(二)
  6. AIX 与Linux 中crontab 介绍
  7. 当编程之于爱情就如鱼之于熊掌般不可兼得时,该怎么办?
  8. ADS仿真4_滤波器设计
  9. 类型函数(type function)
  10. js前端缓存的几种方法
  11. javascript 实现table展开折叠
  12. redis课程视频 黄建宏_求redis从入门到精通视频教程【50讲全】
  13. 金蝶EAS,序时簿界面ListUI数据不允许修改、删除
  14. 车截导航显示服务器错误怎么办,车载导航常见故障
  15. 使用ContentResolver(内容解析者)获取联系人名称,电话,头像
  16. split分割字符串(按两种符号分割)
  17. 傅里叶级数FS,连续时间傅里叶变换CTFT,离散时间傅里叶变换DTFT,离散傅里叶变换DFT,推导与联系(二)
  18. TP5 操作excel 导出
  19. 51 nod 最大公约数之和 (求1~n里面各个数的gcd和 n=1000000)
  20. 抄送(Carbon Copy)

热门文章

  1. Unity TimeLine实用功能讲解
  2. coffeescript html5,CoffeeScript入门
  3. 阿里云网站备案基础知识-什么是网站备案
  4. 本科挣 30 万,秋招大厂提前批offer,大学四年,帅地做对了什么?(附所有知识清单)
  5. LifecycleOwner com.xx.MainActivity@28b4e79 is attempting to register while current state is RESUMED.
  6. 全球及中国吊链总成行业研究及十四五规划分析报告
  7. linux tty core code,linux tty core 源码分析(6)
  8. CF1108D Diverse Garland
  9. Oracle EBS 笔记8
  10. Oracle11g64位发行版安装教程