Funny NumberCrypto 未解决

分数: 30 金币: 3
题目作者: Lazzaro
一  血: Vincent
一血奖励: 3金币
解  决: 181
提  示:
描  述:
Funny Number
其  他: task.py.zip
评论
灵梦归希 8天前

算法很简单,扯名字只会一脸懵逼,公式如下: 计算(2**10000)对10**175的逆元a(非互质,需要除以公约数再计算逆元)。结果=(a*c/公约数) %((10**175)/公约数)

回复 0

灵梦归希 8天前

这个题实际上不是多题解的,只要明文10进制长度小于175,解出的解一定是唯一解的。flag一般较短,如果再长,设置的175加大就可以保证是唯一解了。

回复 0

Alan233 29天前

观察 task.py,即 flag 转为二进制 (小段规则) 后,乘上 2^{10000} 再取末 175 位。这启发我们先将 gcd 除掉 (保证裴蜀定理满足 gcd(x, y) = 1),使用扩展欧几里得算法 (exgcd),算出对应的 flag 二进制值,在通过 ASCII 码反解出原 flag,这里有个坑是小端存储。

回复 1

hungry_ 2月前

不会做呀,有没有提示呀

回复 0

bugku2024 5月前

哥们还在骂骂咧咧,而我已经卷完这题学下一题啦

回复 1

shenjb 1年前

做出来以后看见有个朋友对多解耿耿于怀,其实完全没有必要,ctf本来就是游戏,心态放平。另外,flag是可读纯文本,本来就对解的范围有限制,不是吗?

回复 0

BMTXLRC 1年前

再退一步说,一个简单的二元一次方程,我只需要 python 或者 C++高精度写个扩展欧几里得就可以跑出来,虽然我选择了后者,但是我想请问出题人明明可以直接算出来你为什么要试着去约掉一个 2^175 呢,这方便了你的计算但是对于计算机来说你觉得有区别吗?你觉得对于一个计算机来说,我约不约有什么区别,如果没有区别反而导致多解的话我为什么要去约呢?

回复 0
Lazzaro 12月前

我想问问,你来CTF这边搞科研吗?

回复 4

BMTXLRC 1年前

如果就是这样的题目都依然有人愿意去追捧这个出题人,那我认为你们整个竞赛圈基本都这样了。像这样的问题显然是存在多解的,而且无穷组里面我必须找到一个不是正常解出的特解跟出题人相同,这怎么做得到的?

回复 0
灵梦归希 8天前

不是多题解的,因为明文不会超过175长度的

回复 0

BMTXLRC 1年前

后面还有几位是 0330934179318604770903632414698432262118006037032777263247314737011525140366355

回复 0

BMTXLRC 1年前

我在这里可以给出无数组满足他的条件的 t 值,但是均解不出 flag:417168621626496232447630075058908752186146485679280328272114835364987682761669093744907185992944152132950880839455611670073025906130432621599982848348693983283369061

回复 0

WriteUp

image
Lazzaro

5 金币

评分(3)

解题动态

灵梦归希 攻破了该题 8天前
smyhz 攻破了该题 9天前
ahisecliu 攻破了该题 23天前
Alan233 攻破了该题 29天前
princess 攻破了该题 1月前
laenix 攻破了该题 1月前
XmN<=GzR 攻破了该题 1月前
18893275577 攻破了该题 1月前
福建巴菲特 攻破了该题 1月前
flyingfish 攻破了该题 2月前
无穷qiong 攻破了该题 2月前
kekefeng 攻破了该题 2月前
舞思 攻破了该题 2月前
123456654 攻破了该题 2月前
909099841 攻破了该题 2月前
tianxiangfazhan 攻破了该题 2月前
Dou豆百万 攻破了该题 2月前
trapping 攻破了该题 3月前
2860745582 攻破了该题 3月前
yaozhiwang 攻破了该题 3月前
问题反馈