news 2026/5/23 16:03:04

[网鼎杯 2020 青龙组]you_raise_me_up

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[网鼎杯 2020 青龙组]you_raise_me_up

打开文件后发现给了n,m,c的值

n = 2**512 m = 391190709124527428959489662565274039318305952172936859403855079581402770986890308469084735451207885386318986881041563704825943945069343345307381099559075 c = 6665851394203214245856789450723658632520816791621796775909766895233000234023642878786025644953797995373211308485605397024123180085924117610802485972584499

并暗示存在一个flag,使得c≡me(mod)

那么目标就很明确了

求出e,从而还原flag

初步观察加密类型

我们注意到模数不是常见的两个大素数乘积(如 RSA)

进一步检查m和c的奇偶性

两者都 ≡ 3(mod4),说明它们都是奇数但非1mod 4

模 2**k乘法群的结构

对于 k≥3 ,模 2**k的乘法群 (Z/2**kZ)× 是一个阶为 2**k−1的阿贝尔群,且同构于:

(Z/2Z)×(Z/**2k−2Z)

更关键的是:所有 ≡ 1 (mod 4) 的奇数构成一个循环子群,由 5 生成,阶为 2**k−2 。

而 ≡ 3 (mod 4) 的数不在该循环子群中,但满足:

x≡3(mod4)⇒−x≡1(mod4)

因此,我们可以将问题“转化”到由 5 生成的循环子群中

>>> m % 4 3 >>> c % 4 3

推算演练

设:

  • m≡3(mod4)⇒−m≡1(mod4)
  • c≡3(mod4)⇒−c≡1(mod4)

于是存在整数 b,db,d

使得:

5b≡−m(mod2**512)

5d≡−c(mod2**512)

原方程 c≡me(mod2**512)可改写为

(−c)≡(−m)**e(mod2**512)

由于e必须是奇数(否则 (−m)**e≡−me!≡-c,因为左边 ≡ 1 mod 4,右边 ≡ 3 mod 4 会矛盾)

所以有:

(−c)≡(−1)**e⋅m**e=−m**e⇒−c≡−m**e⇒c≡m**e

成立当且仅当 e为奇数。

于是有:

5**d≡(−c)≡(−m)**e≡(5**b)**e=5**(be)(mod2**512)

由于 5 的阶是 2**510

故:

b⋅e≡d(mod2**510)

现在问题转化为:已知b,d,求e

求解离散对数 log⁡5(x)mod2**512

我们需要一个函数,输入 x≡1(mod4)x≡1(mod4) ,输出t使得 5**t≡x(mod2**512)

这可以通过Hensel 引理式的提升算法实现:

  1. 先在模 8 下确定初始值(5^0=1, 5^1=5 mod 8)。
  2. 逐步从 2**323 提升到 2**512,每次根据当前误差修正指数。

具体实现如下:

def discrete_log(x, k=512): if x % 4 != 1: raise ValueError("x must be 1 mod 4") # 初始化 b based on x mod 8 b = 0 if x % 8 == 1 else 1 for i in range(4, k + 1): power = 1 << i current = pow(5, b, power) diff = (current - x) % power if diff % (1 << (i - 1)) != 0: raise Exception("Not divisible!") t = (diff // (1 << (i - 1))) & 1 b += t * (1 << (i - 3)) return b

求解线性同余方程

得到 b=log⁡5(−m) , d=log⁡5(−c)后,解:

b⋅e≡d(mod2**510)

由于b可能是偶数,需先提取因子2**v:

  • 设 b=2**v⋅b′,其中b′为奇数
  • 若 d!≡0(mod2**v) ,则无解
  • 否则令 d′=d/2**v,模数变为 M=2**(510−v)
  • 解: e≡d′⋅(b′)**(−1)(modM)

由于b′是奇数,在模 2**M下一定有逆元。

完整脚本如下

from Crypto.Util.number import long_to_bytes def discrete_log(x, k=512): if x % 4 != 1: raise ValueError("x must be 1 mod 4") b = 0 if (x % 8) == 1 else 1 for i in range(4, k + 1): mod = 1 << i cur = pow(5, b, mod) diff = (cur - x) % mod if diff % (1 << (i - 1)) != 0: raise ValueError("No solution") t = (diff // (1 << (i - 1))) & 1 b += t * (1 << (i - 3)) return b n = 2**512 m = 391190709124527428959489662565274039318305952172936859403855079581402770986890308469084735451207885386318986881041563704825943945069343345307381099559075 c = 6665851394203214245856789450723658632520816791621796775909766895233000234023642878786025644953797995373211308485605397024123180085924117610802485972584499 neg_m = (n - m) % n neg_c = (n - c) % n b = discrete_log(neg_m) d = discrete_log(neg_c) # Solve b * e ≡ d (mod 2^510) v = 0 b_temp = b while b_temp % 2 == 0: v += 1 b_temp //= 2 if d % (2**v) != 0: raise Exception("No solution") d_new = d // (2**v) mod = 2**(510 - v) inv_b = pow(b_temp, -1, mod) e = (d_new * inv_b) % mod print("Flag:", long_to_bytes(e).decode())

解得flag

flag{5f95ca93-1594-762d-ed0b-a9139692cb4a}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/20 14:33:24

DeepSeek写的论文AI率90%?实测这个方法降到15%以内

DeepSeek写的论文AI率90%&#xff1f;实测这个方法降到15%以内 用DeepSeek写了一篇文献综述&#xff0c;知网一测&#xff1a;AI率96%。 当时我就慌了。距离提交截止还有三天&#xff0c;要是重写根本来不及。后来找到了方法&#xff0c;5分钟把AI率从96%降到了8%。 先说结论…

作者头像 李华
网站建设 2026/5/20 14:33:25

2026软著代办平台推荐:从人工到AI,效率提升10倍的选择

去年帮公司申请了12个软著&#xff0c;前6个找的传统代办公司&#xff0c;后6个用的AI工具。 结果很有意思&#xff1a;前6个平均每单花了500块&#xff0c;耗时3周左右&#xff0c;还有2个被打回补正&#xff1b;后6个平均每单花了40块&#xff0c;当天出材料&#xff0c;全部…

作者头像 李华
网站建设 2026/5/20 11:35:57

AI绘图:快速出好图的核心技巧与常见误区

AI绘图的效率与质量并非完全依赖工具&#xff0c;而是取决于对提示词逻辑的掌握、对风格边界的理解&#xff0c;以及对人机协同的合理运用——这三者是快速出好图的核心底层能力。在实践中&#xff0c;许多用户困惑于“为什么同样的工具&#xff0c;输出效果差异巨大”&#xf…

作者头像 李华
网站建设 2026/5/20 23:00:50

2026免费降AI工具测评:哪款能把知网AI率降到15%以下

2026免费降AI工具测评&#xff1a;哪款能把知网AI率降到15%以下 花了一周时间&#xff0c;我把能找到的免费降AI工具都试了一遍。 先说结论&#xff1a;免费工具能用&#xff0c;但效果有限。如果你的AI率在50%以下&#xff0c;免费工具可能够用&#xff1b;如果在50%以上&…

作者头像 李华
网站建设 2026/5/20 14:33:30

基于Thinkphp和Laravel的小区物业管理系统设计与实现

目录 小区物业管理系统设计与实现摘要技术架构功能模块系统特点实现效果 项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理 小区物业管理系统设计与实现摘要 该系统基于ThinkPHP和Laravel框架开发&#xff0c;旨在提升小区物业管理效率和服务质量。…

作者头像 李华
网站建设 2026/5/20 21:35:27

为什么你的测试总在“网络延迟”上失败?

网络延迟测试是软件性能测试的关键环节&#xff0c;尤其在云计算、物联网和实时应用场景中&#xff0c;它直接影响用户体验和系统可靠性。然而&#xff0c;许多测试团队反复遭遇延迟测试失败&#xff0c;导致误报、数据失真和项目延期。 一、硬件因素&#xff1a;设备老化与配…

作者头像 李华