CryptoCTF 2023
一年一度的密码盛宴, 看春哥队和 yeye5队乱杀了, 今年 r3k 也进入前十了, 还有南邮以及中科大的队都好猛, 还有不说话只做题的队友 www, 你们 tql
复现进度 … 先收集一下来自discord 的 wp 如下
easy 难度的几题
DiD
题面
| |
思路
先构造不会被随机值干扰的差异数据, 然后发送后检查收到的数据对其去除干扰后比对即可
从干扰数据的生成方式上看就是pow(base, 2, N) 和 pow(base, 2, N) + 1
服务器上从缓冲区读入 A, A 是玩家数据测试集合, K 是服务器上存着的正解集合, A - K 也就是不对的值的集合, 不对的值逐一采用上面的方法干扰后发送给玩家, 然后玩家使用构造好的数据+抵消掉干扰的计算, 来实现恢复出 A与K中元素index 对应的关系; 通过这个关系再来判断A 中哪个值不在了来恢复出 K, 将其就加入到 ans 集合, 然后发送即可 , www
代码中构造询问数据部分的解释
b神: queries是已有的询问。对于每个i,如果和某个query中所有的都不冲突(相差1以上)就加入,否则新开query 原理是二次剩余,每一个 $x^2$ 都有对应的 $y^2$ 与之相等
exp
| |
easy 难度
suction
题面
| |
数据
| |
思路
对 n 和 e爆破被掩盖的 r 位, 爆破时用两者之和来 check
对其用分解质因数库来查询, 如果查库没有结果, 但是因为 n 比较小, 就用 sagemath 对其分解即可
其实在分解的时候又因为 d 比较小(64bits) 可以进行维纳攻击, 明天在写吧, 太晚了先睡了
exp
| |
easy 难度
blue_office
题面
| |
题目数据
| |
思路
LCG is used to generate a XOR stream
LCG 用于生成异或流
No modulus is used means only the low 24 bits influence the output
不使用模数意味着只有低24位影响输出
Brute force for 2^24 seeds until a valid flag string appears
暴力破解 2^24 个种子,直到出现有效的标志字符串
exp
| |
mid 难度
Trex
The study of Diophantine equations over trex can be significantly more challenging than over the real numbers.
题面
| |
思路
对其展开+合并后可以分析出其为三次不定方程(谴责翻译成丢番图方程的人, 谴责原因是这个词不好记)
论文地址如下
此数学问题在外国知乎上的讨论<详 细 答 案> hhh
exp
| |
代码报错不用担心, 向上滑到不报错的地方就是 flag
mid 难度
TPSD
Solving Diophantine equations is a notoriously challenging problem in number theory, and finding non-trivial integer solutions for certain equations is considered a major open problem in mathematics.
求解丢番图方程是数论中一个众所周知的挑战性问题,为某些方程找到非平凡整数解被认为是数学中一个主要的开放问题。
题面
nc 05.cr.yp.toc.tf 11137
思路
论文
https://ericrowland.github.io/papers/Known_families_of_integer_solutions_of_x%5E3+y%5E3+z%5E3=n.pdf
payload
| |
A: there’s a parametric solution to the equation, just need to brute force until you find one with a prime in the right spot
方程有一个参数解,只需要暴力,直到找到一个质数在正确位置的解
B: For the prime check, we need to only check for
x. The other two are factored by definition, hence they don’t need to be checked for factors. I generatedx, checked it for primes for each bit size.对于质数检查,我们只需要检查x。另外两个被定义为因子,因此它们不需要检查因子。我生成了’ x ‘,检查了每个比特大小的质数。
