LWE High Bits Message
python
|
|
缩放因子delta=round(q/p)
b=A * S+m * delta+e(mod q)
所以$m*{\delta}+e=b-A*S=t$
$m + \frac{e}{\delta} = \frac{t}{\delta}$
e在$(-\frac{\delta}{2},\frac{\delta}{2})$之间,所以相当于m+x,x∈$(-\frac{1}{2},\frac{1}{2})$所以四舍五入就是m
python
|
|
LWE Low Bits Message
python
|
|
模q的值可能是:
- x
- x+q
范围在[0,q-1],所以当x+q(即x<0)时,减一个q就可以复原,然后因为x=p*e+m,所以对m取模就可以得到m
python
|
|
Noise Free
python
|
|
有两个选项:
- get_flag:可以得到flag字符的加密
- encrypt:可以加密自定义m
所以选encrypt,且令m=0,就可以得到式子b = A * S,这样就可以把S算出来、
再选get_flag,由于不知道flag的长度,所以进行100轮循环把flag遍历完
然后每次循环执行m=b-A * S(mod q)
python
|
|
评论