Funny NumberCrypto 未解决
分数:
30
金币:
3
题目作者:
Lazzaro
一 血:
Vincent
一血奖励:
3金币
解 决:
181
提 示:
描 述:
Funny Number
其 他:
task.py.zip
评论
灵梦归希 8天前
举报
算法很简单,扯名字只会一脸懵逼,公式如下: 计算(2**10000)对10**175的逆元a(非互质,需要除以公约数再计算逆元)。结果=(a*c/公约数) %((10**175)/公约数)
灵梦归希 8天前
举报
这个题实际上不是多题解的,只要明文10进制长度小于175,解出的解一定是唯一解的。flag一般较短,如果再长,设置的175加大就可以保证是唯一解了。
Alan233 29天前
举报
观察 task.py,即 flag 转为二进制 (小段规则) 后,乘上 2^{10000} 再取末 175 位。这启发我们先将 gcd 除掉 (保证裴蜀定理满足 gcd(x, y) = 1),使用扩展欧几里得算法 (exgcd),算出对应的 flag 二进制值,在通过 ASCII 码反解出原 flag,这里有个坑是小端存储。
hungry_ 2月前
举报
不会做呀,有没有提示呀
bugku2024 5月前
举报
哥们还在骂骂咧咧,而我已经卷完这题学下一题啦
shenjb 1年前
举报
做出来以后看见有个朋友对多解耿耿于怀,其实完全没有必要,ctf本来就是游戏,心态放平。另外,flag是可读纯文本,本来就对解的范围有限制,不是吗?
BMTXLRC 1年前
举报
再退一步说,一个简单的二元一次方程,我只需要 python 或者 C++高精度写个扩展欧几里得就可以跑出来,虽然我选择了后者,但是我想请问出题人明明可以直接算出来你为什么要试着去约掉一个 2^175 呢,这方便了你的计算但是对于计算机来说你觉得有区别吗?你觉得对于一个计算机来说,我约不约有什么区别,如果没有区别反而导致多解的话我为什么要去约呢?
Lazzaro 12月前
举报
我想问问,你来CTF这边搞科研吗?
BMTXLRC 1年前
举报
如果就是这样的题目都依然有人愿意去追捧这个出题人,那我认为你们整个竞赛圈基本都这样了。像这样的问题显然是存在多解的,而且无穷组里面我必须找到一个不是正常解出的特解跟出题人相同,这怎么做得到的?
灵梦归希 8天前
举报
不是多题解的,因为明文不会超过175长度的
BMTXLRC 1年前
举报
后面还有几位是 0330934179318604770903632414698432262118006037032777263247314737011525140366355
BMTXLRC 1年前
举报
我在这里可以给出无数组满足他的条件的 t 值,但是均解不出 flag:417168621626496232447630075058908752186146485679280328272114835364987682761669093744907185992944152132950880839455611670073025906130432621599982848348693983283369061