🌦️极客巅峰2023crypto
2023-8-7
| 2024-11-2
0  |  0 分钟
type
status
date
summary
password
category
slug
icon
🥺
Rosita复现的想哭,废物是这样的
目录

🫣数学但高中

📑题目

🪄题解

很明显,画图!!
找个在线工具就行(🥹🥹🥹🥹找网站很重要,我找的很难用,哭死🥹🥹🥹被小师傅嫌弃死啦)

👀wp

notion image
 

🫣Simple_encryption

📑题目

 

🪄题解

flag被分成两个部分
第一部分 费马小定理
求出p,也可求出q啦
带入刚刚求得g1,g2,,可得,即
😶‍🌫️
中国剩余定理也可以求m叭
notion image
第二部分 solve解方程
A,B,C已知,Cs = [int(pow((A[i] * m[i] ** 2 + B[i] * m[i] + C[i]), e, n))
n是2048bit,左边5次方明显没有2048bit,直接开方,solve 解方程

小师傅开方后,然后直接用求根公式求解二元一次方程,更快一点🫣🫣🫣🫣

👀wp

🥀Rosita

📑题目

 

🪄题解

求模数P

根据ecc椭圆曲线”点加“”点乘“的性质,由Q = b2l(m)*R + b2l(nonce)*E + b2l(sh)*C可知,Q也是椭圆曲线上的点,可以根据多组Q,求出模数p
椭圆曲线的方程:
获取四个
消参数b
消参数a
两式显然有公因数p,gcd求p
[(x1-x3)(k_1-k_2)-(x1-x2)(k_1-k_3)], [(x1-x4)(k_1-k_2)-(x1-x2)(k_1-k_4)]可能存在公因数,所以四个点求出的p可能不准确需要多组
 
 

求a,b

Gröbner basis可以解多元多项式方程组
a=-10602337004611841904759335148883359090969653658510510358600275641050380448768874133472466281757169086931942865127222834826842856583448958195404187194601748
b=-3424757783971572799257324035329262490411658894172572005012994558801041224262349740588482997105623017991071214586261721870544696496442896621106306121614953
利用constant_coefficient()(求常数项的系数)来获取a,b
,G可以通过G=E.gens()(求椭圆曲线的基点)得到

Smart’s attack 求


Smart’s attack: 已知椭圆曲线E:(mod p),已知曲线上两个点P,Q,P=r*Q,Smart’s attack可以快速求出r
 
🥳
令一条椭圆曲线E:模p下的解个数为n,则(Hasse's Theorem
  • 如果|E|的质因子都很小的话 (smooth number光滑数,可以分解成很多小素数的乘积),离散对数很容易被 Pohlig-Hellman 破解
  • 如果|E|=p时,这种曲线被叫做 anomalous curve,且 Smart's Attack 可以很轻易的计算这种曲线的离散对数
 
看到与强网杯2022 Lattice有相似之处,去看了博客,学习了一下HSSP问题

求解正交格

构造
可以规约出来B’
为什么这么构造,可以类比矩阵求逆 E.G.
单位矩阵记录着初等变化的过程

恢复M

 
若满足,(m是给出的数据行数,n是规约后正交的行数),right_kernel().basis()求右零空间
M在是矩阵B’的右核空间上
此时m是70,可以right_kernel().basis()求M
 

这里看到另外一种理解
notion image

👀wp

😖尝试(疑惑,不懂)

💞
学到的(可能不太准确):解决 已知C,N,求B,其中A为向量B为矩阵
  • 构造格求C的正交矩阵C’(orthogonal lattice attack正交格攻击)
方法一:
  • C’*B足够小,小于A的正交,则C’与B正交,通过kernelLLL(给定一个格L,计算出L的正交格的约简基)求出B的正交格
  • Bkz缩小近似因子,得到B
方法二
  • 若满足,(m是给出的数据行数,n是规约后正交的行数),right_kernel().basis()求右零空间B’
  • Bkz缩小近似因子,得到B

🌹尝试right_kernel→Bkz→B

notion image
这里no answer!! why???(我觉得)是因为构造的格不一定能把所有行都能规约成正交矩阵R,按照上面的推断,理论上R的最后一列应该为零,但是(理想是美好的,显示是残酷的)
notion image
求R 的右零空间(包含R*M=0的所有解解),既然最后四行没有规约出来,那只取前70行
notion image
block_size的值必须大于1且小于n(矩阵的行数),BKZ()的默认值是10,而求出得到核(零空间)是3*73,行数只有3行,block_size明显取大了
notion image
block_size取2无结果
notion image
block_size取1和直接LLL是一样的结果
notion image
求出来的结果和key是一样的
notion image

🥀尝试kernelLLL→Bkz→B

notion image
这里kerneLLL求出来是空的,不知道为什么
 

📎 参考文章

🤗 总结归纳

🌀
格还是半知半解😖😖😖
 
 
💞
有被治愈🥰🥰🥰 (本来都要崩溃死啦,学不会学不会) 勇敢就是在你还没开始的时候就知道,自己注定会输,但依然无义无反顾的去做,并且不管发生什么都坚持到底,一个人很少能赢,但也总会有赢的时候
比赛复现
分组密码(三) SM4SICTF2023 Round2
目录