2024 SekaiCTF Crypto Writeup
包含3道简单题,另外几个还在尝试复现。
赛中没看マスタースパーク
实在是亏麻了,赛后多看了几眼才发现压根不需要攻击CSIDH本身QQ
以及,Neobeo我一直是你的粉丝啊(
Some Trick
task
python
1 |
|
在置换群上实作的一个类似Diffie-Hellman的加密,但是random seed给了你所以加密用的置换是可以求得的。enc函数的递归可以看作是一个mod进制展开式,先爆破拿到bob_key之后就可以逐位爆破flag了。
exp
python
1 |
|
はやぶさ
task
python
1 |
|
up.sh
bash
1 |
|
读一下falcon的代码后知道这是个NTRU签名系统,私钥是多项式f、g、F、G,公钥是多项式h,所在的环是
\[\frac{\mathbb{Z}_{q}[x]}{x^{64}+1}\]
所以就是商环上的NTRU签名伪造,拿格子直接打就行,但是coding就比较麻烦...
exp
python
1 |
|
*マスタースパーク
task
python
1 |
|
GA.sage
python
1 |
|
基于CSIDH的题目,会对传入的素数检查是否等于secret,是则输出flag,否则在通过额外的一些检查后生成超奇异椭圆曲线,接着在上面CSIDH。
虽然我对CSIDH一窍不通,但是题目把映射后的点也输出了:
P = EC.gens()[0] # 把这里的P记作G
那么返回给我们的其实是
\[Q = \phi_{b}(\phi_{a}(secret*G))\] \[P = \phi_{a}(\phi_{b}(G))\]
所以有
\[Q = secret*P\]
一个ECDLP而已。
题目的二次曲线的阶是拿我们构造的(p+1)//4的素因子组成的,所以只需要控制p光滑之后就能求解ECDLP,最后crt起来就行。
exp
python
1 |
|
2024 SekaiCTF Crypto Writeup
https://eupho.me/da2307c.html