25Jan3
huangx607087 1月的切题 3
0.Introduction
一回家就G了,然后休息了几天,两场CTF比赛都没好好看
1.[DASCTF2304] babyhash_revenge
1x01 题目大意
先瞄一眼题目,这个Hash,和前几天SUCTF那个HASH相似度真高:
1 |
|
1x02 解题过程
首先先过proof_of_work
,发现是一个伪素数的测试,要求给一个合数
构造方法很简单:若
1 |
|
然后看他的Hash函数:很明显,这里有
那么尝试求
对中间矩阵进行LLL,测个界,最终最短向量大概率是
有了
回顾一下那个题的构造方法:
那么直接把SUHash那个找碰撞的函数拿过来用,但注意这边构造的位数为
我这边最终构造的结果为:
1 |
|
exp:
1 |
|
2.[DASCTF2410]easy_xor–7solves
2x01 题目大意
先看眼题目:
1 |
|
题目要求 c=enc(key,p)
,其中
随后将
而对于
2x02 题目分析
拿到第一步就发现,
1 |
|
拿到
1 |
|
拿到
由此类推可以得到
1 |
|
但是LLL之后,观察 M3L 的前两行,我们期待的是
1 |
|
那么最后就可以得到最终结果了。(xs,为啥这个题只有 7 解,因为太套娃了吗?然后10月考过这个题,12月CISCN又考?)
1 |
|
3.[DASCTF 2408] ezShamir
题目比较简单,还是先看一下
1 |
|
题目给出了
还是将
那么可以有这样的关系表达式:
其中
不过注意到,由于
1 |
|
挂在服务器上跑的,真没想到
4.[DASCTF 2203]meet me in the middle
题目看着很长,其实也就是一个DSA,每次签名给出
1 |
|
那么看着很显然,就要从
由于是两条消息,那就是
对上面的式子,区分
注意到
确定一下平衡系数:
这么做了一下,看着推导的式子没有问题,LLL后除以
消
其中
这样只需要给第五列乘
1 |
|
突然发现,几个DSA翻来覆去就那一个线性关系式,感觉好像开始套路化了,基本都是用这个固定的线性关系式LLL的。。。
5.[VNCTF2022] Are You Admin 1
又是一个DSA:
1 |
|
从题目中可以得到的信息为:私钥
不过需要注意的是,LCG 的模数为
题目中的
那么做了这么多DSA了,里面线性关系式,还是很明显的:我们有三组
然后LLL没得到任何结果,调了
卡了3h,然后看到了这个:VNCTF2022 Crypto WriteUp | tl2cents blog (tanglee.top),发现这个题要用CVP解。因为线性关系就那么一个,解不出来说明目标向量并非短向量,但如果能够抓住目标向量的显著特征,那么可以考虑CVP,其构造的矩阵是这样的(LLL前需要转置一下,因为Sage是行向量)
可以发现他这边的平衡系数很有意思:我们刚才分析了,他这个
此外,LLL之后,向量之间有不错的正交性,因此CVP可以通过简单的舍入法去调整,我们只需要求出格中距离
本地测了一波,测试使用的私钥为:
这是一个素数。如果LLL能够直接得到私钥,那么根据素数的性质和Sage中基本都用分数表示的特点,我们可以在LLL后,在矩阵中直接得到私钥
而求CVP的函数也很简单,就是再来一次施密特正交化,对于目标向量
1 |
|
在得到这个之后,那么最后解题也就不难了,感觉这个题难点就是CVP:
1 |
|
6.[VNCTF2022] crypto_sign_in_4
先看一眼题目:
题目给出了素数
1 |
|
题目还给出了提示:
Hint1: cheon discrete log attack
根据关键词 Google 了一圈,发现 eprint 上编号为 2008-300 的论文给出了算法:
不过需要注意的是:这里
那么在实际编程的时候, 上面所有的
并且,
1 |
|
然后就是两个 BSGS 了,注意 BSGS 存入字典的方式,别存倒了就OK!
1 |
|
由于远程环境G了,那么就本地测一下,这里可以多次尝试,确保
当然,也可以多次自动重连,直到成功再结束程序,平均下来,大概尝试 20 次能有一次成功(不知为啥,发现有的时候在最后一步也不一定成功)
1 |
|
这种论文题,感觉主要还是论文实现。
9.总结
BUU继续上分ing,当年自己最高好像是Crypto区第 6 来着?然后两年没打,跌到了 35,寒假才重新回来继续打,上到了 15 名!
xs,这时间跨度,也没谁了
还有,Explore MT19937 经过 3 年半,更新了一些内容,补充了任意 19937 个比特的情况,具体请访问那篇博文内容。