type
status
date
summary
password
category
slug
icon
Rosita复现的想哭,废物是这样的
目录
🫣数学但高中
📑题目
🪄题解
很明显,画图!!
找个在线工具就行(🥹🥹🥹🥹找网站很重要,我找的很难用,哭死🥹🥹🥹被小师傅嫌弃死啦)
👀wp
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fbce7a6d2-bdcc-48df-a79f-014d991136de%2FUntitled.png?table=block&id=71871af1-a787-4cd7-bbcf-7f89f1878d18)
🫣Simple_encryption
📑题目
🪄题解
flag被分成两个部分
第一部分 费马小定理
求出p,也可求出q啦
带入刚刚求得g1,g2,,可得,即
中国剩余定理也可以求m叭![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fdb9d4481-96ef-4584-9a2b-b4c84ba80b57%2FUntitled.png?table=block&id=6cc8e25e-a16c-42ea-8124-db44799659cf)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fdb9d4481-96ef-4584-9a2b-b4c84ba80b57%2FUntitled.png?table=block&id=6cc8e25e-a16c-42ea-8124-db44799659cf)
第二部分 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 可以很轻易的计算这种曲线的离散对数
求解正交格
构造
可以规约出来B’
为什么这么构造,可以类比矩阵求逆 E.G.
单位矩阵记录着初等变化的过程
恢复M
若满足,(m是给出的数据行数,n是规约后正交的行数),right_kernel().basis()求右零空间
M在是矩阵B’的右核空间上
此时m是70,可以right_kernel().basis()求M
这里看到另外一种理解
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fa799566c-76c4-4888-8a16-937b2fdb48ef%2FUntitled.png?table=block&id=91ceccbc-3ce1-41d1-9387-1f44d7562708)
👀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](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fa690a9d0-6b54-4ea6-a57c-baf77fddcebb%2FUntitled.png?table=block&id=1d6e3772-3fd9-4bd0-a5f3-4c140ca13e18)
这里no answer!! why???(我觉得)是因为构造的格不一定能把所有行都能规约成正交矩阵R,按照上面的推断,理论上R的最后一列应该为零,但是(理想是美好的,显示是残酷的)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fab076e37-e6b7-4afa-b255-2c20eb691af1%2FUntitled.png?table=block&id=5771d7d5-c47a-45dd-b731-6639d30753f9)
求R 的右零空间(包含R*M=0的所有解解),既然最后四行没有规约出来,那只取前70行
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F46ebff5e-7f03-466b-846e-ef680989d70a%2FUntitled.png?table=block&id=a44b4cd5-98f9-4ba5-a689-5c0828a48701)
block_size的值必须大于1且小于n(矩阵的行数),BKZ()的默认值是10,而求出得到核(零空间)是3*73,行数只有3行,block_size明显取大了![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F1ef77fc7-31dc-4d17-95cf-5fba5787fdf8%2FUntitled.png?table=block&id=5b038e2c-9768-480d-a6c3-bc135e44a140)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F233517d8-a8ee-43c0-ba33-86187d8eb81e%2FUntitled.png?table=block&id=c74a6c6a-0da3-49e6-b8b0-d416175ab310)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fa56b10c8-73d1-41a3-90bf-73f5f15a1e8e%2FUntitled.png?table=block&id=7c467d0c-45d7-4b79-aa76-ef6c90fe0c60)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F1ef77fc7-31dc-4d17-95cf-5fba5787fdf8%2FUntitled.png?table=block&id=5b038e2c-9768-480d-a6c3-bc135e44a140)
block_size取2无结果
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F233517d8-a8ee-43c0-ba33-86187d8eb81e%2FUntitled.png?table=block&id=c74a6c6a-0da3-49e6-b8b0-d416175ab310)
block_size取1和直接LLL是一样的结果
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fa56b10c8-73d1-41a3-90bf-73f5f15a1e8e%2FUntitled.png?table=block&id=7c467d0c-45d7-4b79-aa76-ef6c90fe0c60)
求出来的结果和key是一样的
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fc55da511-10ea-4c3b-967b-c98105ede4b0%2FUntitled.png?table=block&id=e6875930-5668-4e8a-b9b7-87070c36ab35)
🥀尝试kernelLLL→Bkz→B
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F229f14bc-93be-4c5e-a0c9-7a0bfeda37d4%2FUntitled.png?table=block&id=46eb3548-3e94-4b52-9c6d-bb358d859fdc)
这里kerneLLL求出来是空的,不知道为什么
📎 参考文章
🤗 总结归纳
格还是半知半解😖😖😖
有被治愈🥰🥰🥰 (本来都要崩溃死啦,学不会学不会) 勇敢就是在你还没开始的时候就知道,自己注定会输,但依然无义无反顾的去做,并且不管发生什么都坚持到底,一个人很少能赢,但也总会有赢的时候