尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

202404_QQ_维纳攻击

202404_QQ_维纳攻击
📅 发布时间:2026/6/17 18:49:07
维纳攻击,低解密指数攻击,Wiener's Attack

Tags:维纳攻击,低解密指数攻击,Wiener's Attack

0x00. 题目

n=115757306476480823890101488188630776729264818625956711197209182923316919450004566705136037138124707757241364238362202848334326230965866182884372905599812001417295792076008382155051507854558917751540997152031158153627516638609891662992021455525208876152512219426022730388430168986634812925997477433074009315297;
e=36759119760107514342451522014504723756781932778854536007844886957566674786814219616184569606624829254075411466011531177462192834674042314582632169998869937630047822402849141636204405624465283618559148388023239618010023983515302829096233233546355639120782376815166070858869807741037590528029792278496614408403;
c=102306866548166297283990570728719380746274356547349456313911134525511009884527595077619658312746154540918040609904792766267540939554230661255790442398718139161414133218935455395440009626652377478022047762911840522170980051387391261774896710421983974318857176556467366545165306790641364917195790444235849931561;

0x01.WP

从给出的三个数来看e非常大,甚至都接近c,那么可以得出d非常小,符合维纳攻击的条件

维纳攻击(低解密指数攻击
攻击条件:e特别大或者特别小(当d比较小时,攻击就会有效)
维纳攻击是一种针对RSA加密算法的攻击方法,适用于私钥d较小(e较大)的情况。其核心原理基于连分数展开和数论逼近,通过公钥信息恢复私钥
原理推导:大佬已经讲的很清楚了,直接搬运一下
https://zhuanlan.zhihu.com/p/400818185
https://zhuanlan.zhihu.com/p/519941081

exp.py

import gmpy2
from Crypto.Util.number import *def transform(x, y):  # 使用辗转相处将分数 x/y 转为连分数的形式res = []while y:res.append(x // y)x, y = y, x % yreturn resdef continued_fraction(sub_res):numerator, denominator = 1, 0    # numerator 分子   denominator 分母for i in sub_res[::-1]:  # 从sublist的后面往前循环denominator, numerator = numerator, i * numerator + denominatorreturn denominator, numerator  # 得到渐进分数的分母和分子,并返回# 求解每个渐进分数
def sub_fraction(x, y):res = transform(x, y)res = list(map(continued_fraction, (res[0:i] for i in range(1, len(res)))))  # 将连分数的结果逐一截取以求渐进分数return resdef get_pq(a, b, c):  # 由p+q和pq的值通过韦达定理求解p和qpar = gmpy2.isqrt(b * b - 4 * a * c)  # 由上述可得,开根号一定是整数,因为有解x1, x2 = (-b + par) // (2 * a), (-b - par) // (2 * a)return x1, x2def wienerAttack(e, n):for (d, k) in sub_fraction(e, n):  # 用一个for循环来注意试探e/n的连续函数的渐进分数,直到找到一个满足条件的渐进分数if k == 0:  # 可能会出现连分数的第一个为0的情况,排除continueif (e * d - 1) % k != 0:  # ed=1 (mod φ(n)) 因此如果找到了d的话,(ed-1)会整除φ(n),也就是存在k使得(e*d-1)//k=φ(n)continuephi = (e * d - 1) // k  # 这个结果就是 φ(n)px, qy = get_pq(1, n - phi + 1, n)if px * qy == n:p, q = abs(int(px)), abs(int(qy))  # 可能会得到两个负数,负负得正未尝不会出现d = gmpy2.invert(e, (p - 1) * (q - 1))  # 求ed=1 (mod  φ(n))的结果,也就是e关于 φ(n)的乘法逆元dreturn dprint("该方法不适用")n=115757306476480823890101488188630776729264818625956711197209182923316919450004566705136037138124707757241364238362202848334326230965866182884372905599812001417295792076008382155051507854558917751540997152031158153627516638609891662992021455525208876152512219426022730388430168986634812925997477433074009315297
e=36759119760107514342451522014504723756781932778854536007844886957566674786814219616184569606624829254075411466011531177462192834674042314582632169998869937630047822402849141636204405624465283618559148388023239618010023983515302829096233233546355639120782376815166070858869807741037590528029792278496614408403
c=102306866548166297283990570728719380746274356547349456313911134525511009884527595077619658312746154540918040609904792766267540939554230661255790442398718139161414133218935455395440009626652377478022047762911840522170980051387391261774896710421983974318857176556467366545165306790641364917195790444235849931561d = wienerAttack(e, n)
m = pow(c, d, n)
mm=long_to_bytes(m)
print('mm=',mm)
# b'.scitamehtam fo neeuq eht si ]yroeht rebmun[ citemhtira dna ,secneics fo neeuq eht si scitamehtaM'print(mm.decode()[::-1])
# Mathematics is the queen of sciences, and arithmetic [number theory] is the queen of mathematics.

或直接使用风二西的工具,套用维纳攻击菜单

维纳攻击

相关新闻

  • perf中 的dwarf是什么?
  • 读书笔记:一文搞懂Oracle全局临时表的统计信息管理
  • 故障处理:dul直接抽取exp文件

最新新闻

  • 2026年淮南职业技术学校招生报名全攻略:42个专业任你选,总有一个适合你 - 我叫小周
  • 上海本地地下室防水施工公司权威口碑排名参考 - 热点速览
  • Microchip嵌入式开发资源全攻略:从官方文档到社区实战
  • 临汾装修避坑指南:2026年整装模式如何选?5大品牌实测对比 - 精选优质企业推荐官
  • 从SQL注入到连接泄漏:WinForms ADO.NET的5个致命误区
  • 成都黄金回收服务评级 2026:计价透明、无隐形扣费优质商家独推 - 奢侈品回收评测

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号