当前位置: 首页 > news >正文

202205_宁波市赛_Cr4ck2

Tags:共模攻击

0x00. 题目

n = 14571489544273684681632745165173941757355029852967262639728000988042839386897493030097099884895386115482493694058873038502860513888769546717076461092157274631880422404640774568976816310850151976919429837061384758878560393916832880369835035094654445542998583110983141044252629041042005200028747437532412882541760701913277010315019696176276304794162940731256361777150089869864848752521412637555443729084762017260965056626550279092491606837302796652497491465469860146607791410672793656097187677222298486237121302232907875363012059539134811841994652897489100941594071086553725267695160318463265760189436211892048571831049
e1 = 18181
e2 = 19937
c1 = 14086932244393217502907224674408736488830849146214227184918262698062675736724337554446711585503734671616977407523947180439538475650652413419679106435434870038055027980301567294772290568083578726775663339768961737480740922223388718943787094330870471886171540256870630059797491648906275021947443613254535459415614412289718705188895798826235866579862681303315446414825328707142227744471707921742768342732559562524019443552187374960675403256064296192626351031408014769594350992074453942709110651276633951009115468620886310509692671361261934324842739148921650085982490562922669906835464674323688759465709626540284576889210
c2 = 9788755099571270122752620318833990768386552453915390611782202313009843880011885989102462216813557305415919308702993594866012255516635580308442538867800280824955615413443022611149710694144180395588528536827198061901961298781041399064307258829088210698947995786806886824892341393690873854230422832064661235313593912677068722144241580197984421905987499008664508485233509643273752098892825326153287135195132848517181638343515469682704077797334084053581822968060796475866168907228760199308163970477417979781603099935953389513751241815586854968725454388470460653618696872424888914546835979441528674579794525553550639554293

0x01. WP

对同一个明文通过同一模数n使用不同的e加密得到不同的c,符合共模攻击的条件

共模攻击(mn相同ec不同)
n不变的情况下,知道n,e1,e2,c1,c2可以在不知道d1,d2的情况下解出m
首先假设e1e2互质,即gcd(e1,e2)=1
此时则有e1s1+e2s2=1
式中s1s2皆为正数,但是一正一负。
通过扩展欧几里得算法,我们可以得到该式子的一组解(s1,s2),假设s1为正数,s2为负数。
因为$$c1=m^{e1}\ mod \ n,c2=m^{e2}\ mod \ n$$
所以$$(c1^{s1} \ c2^{s2}) \ mod \ n = ((m^{e1} \ mod \ n)^{s1} (m^{e2} \ mod \ n)^{s2}) \ mod \ n$$
根据模运算性质可化简为$$({c1}^{s1} \ {c2}^{s2}) \ mod \ n = (( m^{e1} )^{s1} ( m^{e2} )^{s2}) \ mod \ n$$.
即$$( c1^{s1} c2^{s2} ) \ mod \ n = ( m^{e1s1+e2s2} ) \ mod \ n$$
又前面提到的e1s1+e2s2=1
所以$$( c1^{s1} c2^{s2} ) \ mod \ n = m \ mod \ n$$
即$$( c1^{s1} c2^{s2} ) = m$$

exp.py

n = 14571489544273684681632745165173941757355029852967262639728000988042839386897493030097099884895386115482493694058873038502860513888769546717076461092157274631880422404640774568976816310850151976919429837061384758878560393916832880369835035094654445542998583110983141044252629041042005200028747437532412882541760701913277010315019696176276304794162940731256361777150089869864848752521412637555443729084762017260965056626550279092491606837302796652497491465469860146607791410672793656097187677222298486237121302232907875363012059539134811841994652897489100941594071086553725267695160318463265760189436211892048571831049
e1 = 18181
e2 = 19937
c1 = 14086932244393217502907224674408736488830849146214227184918262698062675736724337554446711585503734671616977407523947180439538475650652413419679106435434870038055027980301567294772290568083578726775663339768961737480740922223388718943787094330870471886171540256870630059797491648906275021947443613254535459415614412289718705188895798826235866579862681303315446414825328707142227744471707921742768342732559562524019443552187374960675403256064296192626351031408014769594350992074453942709110651276633951009115468620886310509692671361261934324842739148921650085982490562922669906835464674323688759465709626540284576889210
c2 = 9788755099571270122752620318833990768386552453915390611782202313009843880011885989102462216813557305415919308702993594866012255516635580308442538867800280824955615413443022611149710694144180395588528536827198061901961298781041399064307258829088210698947995786806886824892341393690873854230422832064661235313593912677068722144241580197984421905987499008664508485233509643273752098892825326153287135195132848517181638343515469682704077797334084053581822968060796475866168907228760199308163970477417979781603099935953389513751241815586854968725454388470460653618696872424888914546835979441528674579794525553550639554293import gmpy2 as gpdef egcd(a, b):if a == 0:return (b, 0, 1)else:g, y, x = egcd(b % a, a)return (g, x - (b // a) * y, y)s = egcd(e1, e2)
s1 = s[1]
s2 = s[2]
if s1 < 0:s1 = - s1c1 = gp.invert(c1, n)
elif s2 < 0:s2 = - s2c2 = gp.invert(c2, n)m = pow(c1, s1, n) * pow(c2, s2, n) % n
print(bytes.fromhex(hex(m)[2:]))
# b'flag{afe12ec-c1be-421f-c0fa-ea2f6ceb10a0}'

或直接使用工具

图片

http://www.zskr.cn/news/1207.html

相关文章:

  • 20250909 GOJ 模拟赛
  • 自我介绍
  • MQ
  • 自我介绍+软工五问
  • 三数之和-leetcode
  • 相似了
  • 最新可用Docker镜像加速站点
  • 第一周作业
  • 来此加密实现SSL证书自动申请+自动部署
  • 2025.9.9——1橙
  • 学习
  • TRVCOST - Travelling cost 题解
  • 原型设计实用干货!3款热门AI生成原型图软件横向测评
  • 错误报警:“该 CPU 或当前的库版本不支持数据类型”
  • Charles实战秘籍:弱网模拟、Map Local/Remote、HTTPS抓包详解
  • 9月23日周二《AI+企业IP获客联盟峰会》,相约东莞厚街富盈酒店
  • 第一次作业 自我介绍+软工5问
  • 深度学习调参新思路:Hyperband早停机制提升搜索效率
  • Nginx 基础
  • .NET 单文件程序详解:从原理到实践 - C#混淆加密大师解包打包单文件程序
  • Rust/C/C++ 混合构建 - Buck2构建工具一探究竟
  • Linux运维-字符处理(1、文件查看)
  • Rust 环境搭建
  • Node-RED 究竟是否适合工业场景?
  • 向量化与嵌入模型:RAG系统背后的隐形英雄
  • 模拟信号采集的硬件基石:高性能ADC设计的核心法则
  • WPS设置多级标题,一级标题为“一”、“二”、“三”,二级标题为“1.1”、“2.2”、“3.3”,三级标题为“1.1.1”、“2.2.2”、“3.3.3”
  • 第一周个人作业
  • Modbus开发不头疼:极简指南,半小时搞定基础配置
  • 通过命令行生成.url链接文件