Lattice 笔记 1
各种格上问题积累与理解
1. $Ax \equiv y \pmod{P} (对应 \ Wiener’s \ Attack)$
$A, P$ 已知,$x, y$ 相对为小量
可以将其转化为
$wiener$ 里则为
构造
满足 $||w|| = (x^2+y^2)^{\frac{1}{2}} \le \sqrt{2}det(M)^{\frac{1}{2}}$
则很大可能 $w$ 为最短向量
(若 x,y 大小不相当,就可以适当配平使其界更紧)
2. $A_ix_i\equiv Y \pmod{P}$
已知 $A_i, P$ ; $Y$ 为未知大数
问题转换1:
$A_ix_i\equiv Y \pmod{P}$ 变为 $x_iY^{-1} \equiv A_{i}^{-1} \pmod{P}$
即 $x_iY\equiv A_i \pmod{P}$ 的问题
问题转换2:
$A^{‘} = x_{2} * x_{1}^{-1} \equiv A_{2} Y^{-1} Y A_{1}^{-1}\equiv A_{2} A_{1}^{-1} \pmod{P} $
$x^{‘} = x_1 \pmod{P} $
$ y^{‘} = x_2 \pmod{P}$
即 $A^{‘}x^{‘} \equiv y^{‘} \pmod{P}$
3. $\Sigma^{n}_{i=1} A_ix_i \equiv y \pmod{P}$
已知 $A_i,P$
构造
4. $\Sigma^{n}_{i=1} A_ix_i \equiv B \pmod{P}$
已知 $A_i, P, B$
背包格
构造
5. $A_ix_i\equiv y_i \pmod{(P+s)}$ (对应扩展 wiener)
已知 $A_i, P$
先给定两组数据
拆开得
①*② 得
四个等式:
构造
配平
$x_i \le O(P^{\alpha}) \\ y_i \le O(P^{\beta}) \\ s \le O(P^{\gamma})$
在 $w$ 上的大小分别为$(P^{2\alpha},P^{2\alpha+\gamma},P^{\alpha+\beta},P^{2\alpha+2\gamma})$
所以构造对角矩阵 $D$
要满足 $7\alpha+\beta+3\gamma\le4$ ,前提 $\alpha+\gamma\ge \beta$
“Minkowski sum based lattice construction for multivariate simultaneous Coppersmith’s technique and applications to RSA” (Section 4)
这篇论文是打湾区杯的时候搜到的,具体算法的步骤为

可以将界进一步提升
6. $a_iX\equiv y_i \pmod{(P_i +s_i)}$
已知 $a_i,P_i$
$a_i \le O(P^{\alpha}) $
$ y_i \le O(P^{\beta}) $
$ s_i \le O(P^{\gamma})$
展开得到等式
$a_iX+k_iP_i=y_i-k_is_i$
注意到等式右边最大为 $\max(P^{\beta},P^{\alpha+\gamma})$
所以可认为是小量
构造
配平
以 $\beta \le \alpha+\gamma \le 1$ 为例
满足
- 若 $\beta \le \alpha+\gamma \le 1$ :$\alpha+\gamma\le1-\frac{1}{n}$
- 若 $ \alpha+\gamma \le \beta \le 1$ : $\beta \le1-\frac{1}{n}$
感觉这种情况很难构造一种测例
看一看另一种情况
X 是小量的情况
$X \le O(P^{\alpha}) $
$ y_i \le O(P^{\beta}) $
$ s_i \le O(P^{\gamma})$
这时候构造仍相同,只不过配平变了
$\beta \le \alpha+\gamma \le 1$ 的情况
满足 $\cfrac{n}{n+1}+\cfrac{\gamma}{n+1} \ge \alpha+\gamma$
有 $\alpha < \cfrac{n}{n+1}*(1-\gamma)$
另一种情况:
$\beta<\cfrac{n}{n+1}+\cfrac{\beta-\alpha}{n+1}$
The First Attack on k RSA Moduli (2014)
已知 $k \ge 2$ 个 moduli $N_i = p_iq_i$
等式:
define $\delta = \cfrac{k}{2(k+1)}$
这个方法的界感觉差不多,但是玩不明白,只有特定的生成的公钥组才能打的出来
例子如下

7. ACD 问题 $A_i = xy_i+z_i$
已知 $A_i$
$x \le O(2^{\alpha}) $
$ y_i \le O(2^{\beta}) $
$ z_i \le O(2^{\rho})$
一. 构造格
通过 $A_iy_0-A_0y_i$ 将规模从 $2^{\alpha+\beta}$ 降为 $2^{\beta+\rho}$
范围
满足
$\beta+\rho \le \cfrac{n(\alpha+\beta)+\rho}{n+1} $
得到
$\beta \le n(\alpha-\rho)$
二. 正交格
寻找一组向量 $a = (a_1,\cdots, a_n)$
构造等式
其中
因此,若找到的 $a$ 与 $y$ 正交,则 $w = (\Sigma^{n}_{i=1}{a_iz_i},a_1R,\cdots,a_nR)$ 极有可能是格上的最短向量
规约出来得到矩阵 $L$
可知 $L*y = 0$
于是通过求 $L$ 的右核选出合适的 $y$
经测试,以上两种方法的界差不多
三. coppersmith 求小根
前提已知 $N = x*y_0$
设 $z_i$ 为未知变量
可知 $A_i - z_i$ 均为 $x$ 的倍数
则有等式
$N \equiv 0 \pmod{x}$
$A_i-z_i \equiv 0 \pmod{x}$
利用 coppersmith 的扩大模数的方法(原理并没有太懂),把 $N$ 当作模数即可求小根
四. 使用 cuso 优化 coppersmith 进行求解
具体这里就不再阐述了
8. LWE
SLWE(求出私钥 $s$ )
1. 无模数的构造
$A*x+e = b$
已知 $A$
$e$ 很短
构造
可知最后的向量相当小
2. primal attack
$A_{m\times n}s_{n\times 1}+e_{m\times1} = b_{m\times1} \pmod{p}$
基础格
共 $m+n+1$ 维
优化格
$As+e = b$
$s^TA^T+e^T=b^T $
$ K = [I_{n\times n},A^{‘}_{n\times(m-n)}] = PA^T_{m\times n} $
$ (s^TP^{-1})*(PA^T) +e^T=b^T $
$ s^{‘} = s^TP^{-1}$
$s^{‘}K+e^T = b^T$
$ \therefore s^{‘}K-b^T = e^T \pmod{p}$
因为 $K$ 的前 $n$ 维为单位阵,所以可以将格中的模数 $p$ 进行省略,因此可以达到降维的优化效果
DLWE(判断是不是 LWE 生成的参数)
基础版
原理
$As+e = b$
若能找到 $A$ 的左核里的一个短向量 $u$
即 $uA = 0$
则有 $uAs+ue = ub = ue \pmod{p}$
因为 $u,e$ 都是短的,其内积应是一个小的数字
而随机选取的就会大一些,从而进行区分
优化版
依旧降维
于是可以省下 $m-n$ 维
9. NTRU
加密过程
密钥生成
$f(x) \in \tau(d, d+1)\\ g(x) \in \tau(d,d)$
$R = \cfrac{\mathbb{Z}[x]}{x^N-1}\\R_p = \cfrac{(\mathbb{Z}/p\mathbb{Z})[x]}{x^N-1}\\R_q = \cfrac{(\mathbb{Z}/q\mathbb{Z})[x]}{x^N-1}$
$R,R_p,R_q$ 为三个卷积多项式环
多项式乘法相当于对系数进行了卷积操作
私钥为 $f、g$
公钥
$h(x) = f(x)^{-1}*g(x) \ \ in \ R_q$
center-lift
将 $R_p,R_q$ 上多项式转到 $R$ 上
即将 $(0,p)$ 范围内的系数转为 $(-\frac{p}{2},\frac{p}{2})$
加密
$e(x) = p \cdot h(x)r(x)+m(x) \pmod{q}$
解密过程
$a(x)\equiv f(x)*e(x) \pmod{q}$
$b(x)\equiv F_{p}(x)*a(x)\pmod{p}$
$b(x)$ 即为 $m(x)$
若要满足解密关系成立,需要满足以下条件(证明略):
$(3d+\frac{1}{2})\cdot p < \frac{q}{2}$
即
$(6d+1)\cdot p <q$
攻击方法
小密钥空间
$N,d$ 过小直接枚举
格规约
$h(x)\equiv f(x)^{-1}\cdot g(x) \ in \ R_q$
可转化为 $f(x)\cdot h(x) = g(x) + u(x)\cdot p$
因为 $f(x),g(x)$ 均为小量,于是有等式
将多项式乘法转换为矩阵乘法
$F,G,U$ 为三个多项式的系数向量
$H$ 为多项式乘法转换为卷积的矩阵
$f(x)\cdot1 \Rightarrow F_{1\times n}\cdot I_{n\times n}$
$f(x)\cdot h(x)-q\cdot u(x) \Rightarrow F_{1\times n}\cdot H_{n\times n} - q\cdot U_{1\times n}\cdot I_{n\times n} = G_{1\times n}$
因此格变为
让我们来看一下有解的界吧
$det(M) = q^N$
$\vert\vert(f,g)\vert\vert \approx \sqrt{4d}$
我觉得粗略的界是 $4d<q$ (有待确认),而且 N 很大的时候,就算满足界也解不出来
维度比较大的时候要用 BKZ
但是我在 N = 160 时,用 flatter 也干出来了
10. HNP(隐藏数问题)
问题为给出 n 组方程,每组给出
$p$ 是 $m$ 位大小的数
其中给定 $p,\alpha_i$ 的全部和 $\beta_i$ 的一定位数
解出 $x_0$
假设 $\beta_i$ 已知 $s$ 位
则理论上的界: $s*(n+1)> m$
该问题可解
eg1(来自 tover 的 blog)
问题:
$n_{max} = 35,s = 8, m = 256,q = 2^{m}$ 泄漏 $\beta_i$ 的高 $s$ 位
设已知高位为 $B_i$ ,未知低位为 $b_i$
此时 $x_0,b_i$ 未知,且分别为 $m \ bit,(m-s) \ bit$
由于 $p$ 是 $m \ bit$ ,所以要想办法把 $x_0$ 转化为较小的未知数
任取一组数据有
代入得
令 $D_i \equiv A_{0}^{-1}(A_iB_0-A_0B_i) \pmod q$, $E_i \equiv A_{0}^{-1}A_i \pmod q$, 展开得
此时几个未知数均为 $(m-s) \ bit$, 可以构造格进行求解
令常数 $R=2^{m-s}$ ,接下来构造格 $L(B)$
有 $vB = (k_1,k_2,\cdots,k_{n-1},b_0,1)\cdot B=(b_1,b_2,\cdots,b_{n-1},b_0,R) = w$
可算
若 $||w|| \le \sigma(L(B))$ 的话有
化简得
若满足此式则问题大概率可解
eg2 给低位
$n_{max} = 35,m =256,q$ 为 $256$ 位的素数,泄漏 $\beta_i$ 的低八位
$A_ix\equiv T*B_i+b_i \pmod{q}$
$x \equiv A_{0}^{-1}(T*B_0+b_0)$
$(TA_{0})^{-1}(A_ib_0-A_0b_i)+(A_0^{-1}A_i)B_0\equiv B_i\pmod{q}$
$D_i = (TA_{0})^{-1}(A_ib_0-A_0b_i)、E_i = (A_0^{-1}A_i)$
得到的结果与 eg1 的条件相似
总结
在很长一段摆烂的时间里终于更了一篇,还是太菜了,需要学习
