全同态学习(i春秋课程https://www.ichunqiu.com/course/50439 课时一:基于密码学中格的基础知识相关介绍)
一、什么是格
格是一组由一些线性无关的向量组成的点(全部整数组合)。其中称为基,
应为整数。而图上的这些点,都是可以通过比如基
组合得来的。
基并不是唯一的:图中的两对基都能形成图上所示的格。
二、3L算法
3L算法(用于估计格内的最短近似向量),以上是最开始的用途。。
而后,与密码学结合:
越来越多的应用,人们探索用格及其运算来构造密码算法,诸如公钥加密等。
三、为什么使用格来构造密码算法?
格 more secure than 整数分解等等,可以抵御量子计算机的攻击。而且,有时候可满足更多功能。
underlying of 格困难问题:给定一点,我们无法知道其是从哪点来的,因为维度可以很高(可沿很多方向移动)。但在实际应用中,这个问题被封装成LWE、SIS等问题。
格的优势:
而且,格可以用于实现其他密码功能(如全同态加密,当使用普通的整数分解问题就实现不了)。
四、可证明安全
困难问题:将加密方案规约成某困难问题。
平均情况困难问题vs.最坏情况困难问题:
平均困难问题:不然,如果你相信分解整数是难的,那就是相信在平均情况下分解整数是难的。所以不是意味着相信所有整数都难以分解,而是一些是难以分解的。所以可能一部分比例的(比如1%)的整数分解相关方案是可被破解的。
最坏情况困难问题:
任选左框的一个“格”,都可以映射到右框的任意一个加密算法。也就是说,如果我们发现1%的密码算法被破解了,那么所有的格函数都被破解了。于是:1、安全性更高;2、不需要担心如何选择加密方案所涉及的参数(按照安全证明的范围来就好)。
五、现代基于格的密码算法
以上是现代lattice-work的两个方面。
还有一个方面是:基于特定格代数结构而构造(可大幅度提高效率),即ring-SIS, ring-LWE (ideal lattices)。
六、格的技术方面介绍
1、格的定义
定义1:L(B),B是n*n矩阵(其列向量为基向量)
定义2:上的某离散加法子群(离散:点是分散的;加法子群:加法操作是封闭的)
2、基生成格
如何判断两对基生成同样的格:
幺模矩阵U (unimodular matrix)
3、周期性函数
陪集:基本区域,其他区域的点都可以映射到里面(例如,以下两个灰色都是)
有下列性质:
If ,
then
于是引出一个重要的性质:一个点在格上当且仅当这个点模P(B)后所得到的点是0点!
in fact,我们不是要考虑点的位置,而是要考虑点和格之间的关系。
这里的P(B)是某个基本区域(一般可称平行多面体)。
ps.基本区域不一定要是平行四边形:
4、行列式(determinant)
基向量(即B的列向量)所构成平行多面体的体积,因此行列式表示格点的密度(det越大,密度越小)。
5、连续极小
:格L中最短非零向量的l2范式距离(欧几里得距离)。
:包含k个线性不相关的球的最小直径
6、Gram-Schmidt正交
实现:对一组有序基做处理,投影每一个向量到之前向量的正交空间。如下图例子(但要注意的是,投影出来的~v2不是格点,~v2的形式见上图):
Gram-Schmidt正交同样也构成基本区域:
将n个基向量先GS正交,再正则化,得到一组基向量(线性代数意义上,非格点)。而后把基向量的长度作为图示的矩阵形式(上三角矩阵),于是矩阵又变成了可表示格点。同时满足两个性质,其中第二个性质比较重要!(给出了的下界),但是证明听不懂。。
7、Minkowski's 定理
8、Computation Problems (困难问题)
第一个可用高斯消元法,看能否用那些基向量来表示v
第二个可用检查是否由幺模矩阵来转换得来;或者用更简单的方法:取B1每一个基元素,看是否在B2中,而后反过来再检查一遍。
当涉及到几何问题,就更难了:
最短向量问题(SVP),以及其变种(如近似最短向量问题)
最短不相关向量问题(SIVP)
最近向量问题(CVP):给定一个点,求与这个点最大倍最近的格点。
以及BDD问题(定距离编码问题)