SEKAICTF2023 Crypto SEKAICTF2023 Crypto我刚学密码时,做个SEKAI2022,一个都不会,今年刚好这个比赛又开了,想看看能做几个。题目质量都是没得说的也是做了下前四题,在noisier CRC卡住了就没往下做了。文章目录SEKAICTF2023 CryptocryptoGRAPHytask1(*)task2(**)task3(****)Noisy CRC(***)Noiser CRC(*****)DiffecientwoRandSubWarecryptoGRAPHy代码有点长,是实现了对图的最短路
NepCTF2023 Crypto wp 先通过类似boneh and durfee attack获得p,q,d,后面爆破一下p,q的位置,然后随机数预测就行。这个没注意到P和的线性无关条件,复杂度没降下来,也是稍微改了下原代码就出了。注意一下,要判断ABC每个数生成的环的数量,长度相等,可以筛选掉大部分值。遍历密钥空间,然后判断环是否与给定的加密结果的环相同。没做,看起来恢复一下轮密钥就出了,解的人挺多。爆一下p,q位置,后面常规的随机数预测。稍微看一下源代码就发现漏洞点吧?就用题目上这个人的攻击思路就ok。二元cop解一下就行。
巅峰极客2023 Crypto Rosita 浅浅的记录一下。跟强网杯2022 Lattice 这个有很大的相似之处。这个折磨我好久所以看着太熟悉了可惜我太久没做ECC,忘记ECC 的smart attack。
CISCN2023 badkey1&badkey2 这里只有n,e,d,没有p,q所以会跳到下面的else。再对生成的q,依次每个素数进行二次剩余判断是否等于上述由p生成的结果。后面使用while循环生成q的同时爆破a,对于a爆破(0,e)就好。p是给定的,使用可以先计算15个素数在模p的二次剩余和二次非剩余。查看当前生成的碰撞字典长度为10的个数,这里有2万个就足够了。即对每个数,有1/2的可能满足,所有2到50一共15个素数。源码分解取的g是2到100间的偶数。生成3000个也有大概10%的概率找到一个q。这样写肯定是不行的,可以先本地生成。
2023闽盾杯线上初赛Crypto wp 实际上m<512bits也能格出来,但是最好是已知flag的长度,构造相应的格。然后对于结果矩阵R只知道第0,2,4,6次项。所以我只需要取出变换矩阵p的第0,2,4,6行。其中p为变换矩阵,N为Jordan标准型,不知道的话可以搜一下学一学。后来就变成矩阵的运算了,这块递推还是自己看比较好。就是dsa签名,然后私钥取值太小了,考虑用格解一下就出了。是一个小于512bits,即小于64字节的flag。的第一位,也就是上面矩阵运算结果的第一位。下面我们的问题就转成矩阵运算的形式了。,然后带入到第一个等式中。
上海市大学生CTF(华东杯CTF) Crypto 全解 这里就算不知道原始理论上界,也可以通过依次下调的方法知道edge。这里当未知474bits或更小时是可以使用small_roots算出来的,在高了就不行了。这里epsilon肯定要下调的0.03,求较小解是这样的。gcd一下就行,具体可参考NSSCTF round11,我的前面wp有写。总之是界限卡的很死,只能爆破最后一位大写字母,后面的AES解密都还好。多线程爆破,什么tree构造不用关,爆破完了适当调顺序就OK了。后面的AES,CBC模式就不用多说了。后续的解密按照他实现的运算就行。
2023春秋杯春季赛Crypto方向全解 2023春秋杯春季赛Crypto wp 全解侥幸ak了checkin题目from Crypto.Util.number import *# from secret import flag, x, yflag=b'flag{????????????}'def keygen(nbit): p, q = [getPrime(nbit) for _ in range(2)] return (p, q)p, q = keygen(1024)n = p * qt = len(
DASCTF Apr.2023 Crypto 全解 其实通过这个点就能发现,只要我的string1,string2在key[i]=0时对应的字符串不一样就得到flag了。s2='11',错了就s1='110';首先算a,b,在环上定义三个方程组(由三个点),然后在理想集求解groebner_basis(),得到a,b,n。官方wp给的是在2^383下进行的,我复现一下在2^383下数据还是太大了,是不行的。给了三个e,共模攻击,通过gcd发现e1,e3,gcd(e1,e3)=1。2^230在2^240格上,又是经典的格求解,板子格,具体看看我之前的。