Hkcert2024
前言
距离初赛过了好久好久,复现一直没咋搞,nss上有环境,最近复现一下,主要是那几个lcg和rsa
题目
Almost DSA
task
|
|
比赛的时候以为是一个很复杂的根据dsa原理去做的题目,后面发现自己还是太蠢了,只要取一对正确的rs值就行了,其实就是在找他这个密码题的漏洞,r=1时s=q即符合要求
Mask-mask-RSA
task
|
|
他是一个改编题,原版是 https://github.com/OfficialCyberSpace/CSCTF-2024/tree/main/crypto/mask-rsa ,修改地方就是e=3 -> 65537,还有交互的内容发送接收不同了,我们根据原题目的exp去修改适配就行了
|
|
rsalcg0
task
|
|
seed只有16位,我们只需要优化一下线程或者是直接爆破就行
|
|
rsalcg1
task
|
|
seed很大,爆破就不现实了,发现c=0,这就在暗示思路了 $$ (s \times a^{x_1} ) \times (s \times a^{x_2} ) \times (s \times a^{x_3} ) \times (s \times a^{x_4} ) \equiv n \mod m \ a^{x_1 +x_2+x_3+x_4} \times s^4 \equiv n \mod m \ let \ t = x_1 +x_2+x_3+x_4 \ s^4 ≡ n \times a^{-t} $$
哎推到这里了,我要去求s,对式子开四次方,na已知,我只要暴力求解t就行了,这个t都是4个一批的
|
|
rsalcg2
task
|
|
和上一个一样爆破是不可能的,我们现在的式子就变成了s+xc,我感觉更像一个算法题(),我们利用01去写四个误差情况,计算出可能的误差,排列出所有的情况,用异常去判断情况,然后通过的去求多项式根,直到能n整除为止
还有一个方法是利用格求解
|
|
rsalcg3
task
|
|
这个是真不会,seed被«128,那么$seed«128 \mod 2^{128}=1$,按着佬的思路来说,直接做一个$2^{128}$的mitm,去恢复x1到x4,然后就有一个mod 2**256的方程,利用.roots(multiplicities=False)求解,或者是lsb也可以,看不懂。
|
|
总结
含金量很高很难的比赛,24年没有去线下很遗憾,相信自己吧,25加油