First AWD at ciscn2021
祭第一次国赛/第一次AWD华东北太卷啦太卷啦
线上初赛360搁这给我高考呢是不,一卷二卷三卷发来发去收来收去的,非要让人肝到凌晨三点
Cryptoclassic谜语人给爷死
ADFGX密码
表phqgmeaynofdxkrcvszwbutil
key classic
密文反过来
rsaLevel1e=3,Level2exgcd,Level3coppersmith
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152from Crypto.Util.number import *from hashlib import md5from gmpy2 import *c1 = 1910576528551066755331389881349822021242117752764718780254991391426396894549314463339067060511625106455036470478935883007213334910880879 ...
Writeup for MRCTF2021 crypto
Writeup for MRCTF2021's crypto比赛前打了疫苗,困得要命,然后神志不清的写了一堆shi,虽然比赛的时候心态炸了,但高质量的题目该复现还得复现
friendly_sign-in签到题,定义了一个函数,要求提供使得 $f(x_{list})=0$ 的x-list,回答一次给一位 $flag$ ,但之后的不能和之前的重复
直接系数两两交换,其中一个取相反数,然后为了前后不重复再乘一个系数即可
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748from Crypto.Util.number import *from hashlib import sha512from gmpy2 import *from pwn import *table = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'# context(log_level ...
Writeup for 红明谷 crypto
Writeup for 红明谷's crypto不知道是为啥,只有一个难题,虽然巨难无比,但收获不小
RSAattack$e=3$ $c$ 远小于 $n$ ,直接开方就完了
ezCRT和VNCTF的factor是一个题,换一下数据直接出
babyFogery题目解析加密模式为AES.OCB,服务器提供加密和解密功能,getflag的要求如下:
associate_data为from Alice
明文为please_give_me_the_flag
分析阅读整体代码,掌握AES.OCB模式的特点与加解密过程如下:
(本文只说明对该题有意义的函数与特点,如果想仔细了解请阅读github上的源代码)
后文中 $E(),D()$ 表示AES.OCB内部的 $aes.encrypt(),aes.decrypt()$
认证AES.OCB在解密时会对 $tag$ 与 $cipher$ 进行认证,如果发现与加密时的不同,则不会返回解密后的 明文,所以这一点要求我们在伪造 $cipher$ 和同时要对 $tag$ 进行伪造,使得其通过认证检测,我们才能得到明文,才能保证连接不被 ...
Writeup for MAR DASCTF's crypto
Writeup for MAR DASCTF’s cryptocrypto_threshold签到题,给了LCG的所有参数,而且求的还是后一位,求得 $e$
RSA部分给的_lambda和我上次出的VNCTF的hint是一个样子,求得明文
FeedBack给了个函数
12def cycle(c:list,a:list)->int: return reduce(lambda x,y: x+y,map(lambda x: x[0]*x[1],zip(c,a)))
功能就是把 $c$ 和 $a$ 两两相乘再相加
显然如果有 $key$ ,逆推回去就很容易,那么就想办法找 $key$ 的关系,因为有$$c = \sum_{i=1}^{lenth}m_i\cdot key_i$$结合数据即$${\begin{bmatrix}x_1&x_2&x_3&\cdots&x_n \\x_2&x_3&x_4&\cdots&x_{n+1} \\\vdots&\vdots&\vdots&\d ...
Lattice learning 2
Lattice learning 2
这篇博客refer的东西太多了,所以要看别的师傅的版本的话可以转路友链里的密码师傅们
Preface格子真是好玩的东西,但是看得再多的博客也不如自己亲自调几个格子来的清楚,比如各种优化或者约束
Chapher 5 Encryption mode in LatticeCoppersmithCoppersmith是啥?
铜匠!炼铜!
在我看来就是一种在有限域内解方程的方法,比方说 $f(x)=x^4+114x+514$ 且对于有特殊关系的 $x_0$ 满足关系 $f(x_0)\equiv0\pmod{N}$ ,去求解这样的 $x_0$ 时我们可以使用Coppersmith’s methed。对于度为 $d$ 的多项式 $f(x)$ ,如果这个 $x_0$ 满足 $|x0|< N^{\frac{1}{d}-\varepsilon}$ ,那么就能在多项式的时间内被找出。
假设 $N$ 是一个未知因子组成的数,且存在一个因子 $b\geq N^\beta(0<\beta\leq 1)$ ,$f(x)$ 是一个一元一次 $d$ 阶的 ...
Lattice learning 1
Lattice learning 1Preface花了一下午的时间学完了线代数学家们上辈子一定是天使吧,才能发明出这么美妙的东西线性代数 相见恨晚
Chapter 1 The world of the Lattice向量真是个神奇的东西,因为世界上的一切都可以用向量来表示。那么如果我们要去表示一个线性空间 $V$ ,我们就需要至少两个非线性相关的向量作为基底,比方说 $\vec{i}$ 和 $\vec{j}$,因此任意的一个向量都可以用基底的线性组合来表示出来,比如 $\vec{x}=a\cdot\vec{i}+b\cdot\vec{j}$ 。而能被 $\vec{i}$ 和 $\vec{j}$ 表示出来的所有向量的集合就称为这个线性空间 $V$ 。但是这里的’$a$’和’$b$’可以是任意的数字,那么如果我们假定这里的’$a$’和’$b$’都是整数($a,b\in\mathbb{Z}$),这时我们就会得到一个整数格(Integer Lattice)。
我们首先使得所有的向量起点都位于原点,此时,所有的向量都与它们各自的终点一一对应,也就是说,我们可以使用向量的终点来代替该向量 ...
Thanks for reward
打赏鸣谢会有的吧会有的吧会有的吧会有的吧会有的吧(哭
ID
Time
Money
幸福一生
2021-03-06 00:07:55
¥1
Writeup for V&NCTF's crypto
Writeup for V&NCTF's cryptowhitegive密码方向签到题,先分解n,详细推导过程如下:
$$e\cdot d \equiv 1\pmod{lcm(p,p-1,q-1)}=k\cdot \frac{p\times(p-1)\times(q-1)}{gcd}+1$$
$$m^{e\cdot d}=m\pmod{((p-1)\times p)}\ 且\ m^{e\cdot d}=m\pmod{(q-1)}$$
$$m^{ed}\equiv m\pmod{((p-1)\times(q-1)\times p)}$$
$$e\cdot d=k\times p\times(p-1)\times(q-1)+1$$
$$(e\cdot d)^e=\sum^{e}_{i=0}C^i_e\cdot (k\times p\times (p-1)\times(q-1))^i\times 1^{e-i}=K\times p +1$$
所以n很容易被分解,从而算得前一步的e,此时发现d较小(满足如下关 ...
Write up for AntCTF X D^3CTF's crypto
Wp for AntCTF X D^3CTF's crypto我的格子和椭圆曲线实在是太烂了,奈何这次比赛基本都是(
这次只贡献了1k分,我对不起V&N的师傅们呜呜呜
babyLattice联合第二题,发现此题应该要分解n,观察秘钥生成代码,发现如下关系:
$$a_1 = k \cdot n + a_{11} \cdot q \cdot inv(q,p) + a_{21} \cdot p \cdot inv(p,q)$$$$a_2 = k \cdot n + a_{12} \cdot q \cdot inv(q,p) + a_{22} \cdot p \cdot inv(p,q)$$
所以$$a_1 = a_{11} \pmod{p} = a_{21} \pmod{q}$$$$a_2 = a_{12} \pmod{p} = a_{22} \pmod{q}$$
所以易知$$b =\frac{a_{11}}{a_{12}}\pmod{p}=\frac{a_{21}}{a_{22}}\pmod ...
LCG
LCG发现自己没有整过线性同余生成器的东西,今天专门来总解一下
参考资料
1、线性同余生成方法设A,B,M是一定常数,按照递推公式 $state_{i+1}=(A\times state_i+B)\pmod{M}$ ,其中A称为乘数(multiplier),B称为增量(increment),M称为模数(modulus)
LCG的生成周期理论上应该是M,但大部分情况下会小于M,如果想要追求LCG的最大周期,应符合以下几个条件:
A与B都是正整数
A、B、N[0]都比M要小
B与M互质
M的所有质因数都能整除A-1
2、攻击方法我们把state均简称为s
1、B未知只需获取中间的两个状态值
1s_1 = (s_0*A+B)%M
显然 $B = s_1 - s_0\times a\pmod{M}$
2、A与B未知只需获取中间的三个状态值
12s_1 = (s_0*A+B)%Ms_2 = (s_1*A+B)%M
线性方程,解起来还是挺简单的
显然 $A = \frac{s_2-s_1}{s_1-s_0}\pmod{M}$ ,于是就转化成了问题1了
3、 ...