基础学习中的一点个人笔记,
1.介绍
格密码是一种将格理论用于公钥密码系统构造的技术。格密码系统主要有以下优势:
- 抗量子攻击:这是格密码相对于传统的公钥密码学最主要的优势,传统的公钥密码学在量子计算机的环境下安全性是没有保证的。传统的公钥密码系统大部分都是以大整数分解以及离散对数问题作为底层的安全性保证的(密码学的本质实质上是利用一个数学上可证明非常困难的问题来达到安全的目的)。然而,Shor在1997年给出了一种可以有效解决这些问题的量子算法(以前被认为是非常困难的问题,现在变得不那么困难了)。所以,因为能够可以有效抵抗量子攻击,格理论密码系统在近些年成为了研究的热门。
- 算法效率高,高并行性:格密码系统中主要是向量之间的运算,不涉及大质数等大数的运算,且算法的并行度相对较高。所以,格密码系统中算法的效率相对较高(但现有的格密码系统中都存在密钥长度较大的问题,这是格密码系统应用的主要困难之一)。
- 强安全性保障:Ajtai给出了一项证明,只要一些相关的格问题在最坏情况下是困难的,就能证明某些问题在平均情况下是困难的。(这一点需要补充解释)
- 在格理论密码系统出现之前,没有合适的问题可以用于构造同态加密系统。
2.基础定义
2.1 格
n n n维的格 L L L是 R n \mathbb R^n Rn的一个子集且满足以下两个条件:
- L L L是一个加法子群(关于加法运算封闭,满足结合律,有0元素和逆元素)。
- L L L是离散的。( L L L的邻域中不包含其他的点)
2.2 格的基(bases)
另一种定义格的方法:任何一组线性无关的向量所生成的系数为整数的向量集合称为格。
L = L ( B ) : = B ⋅ Z k = { ∑ i = 0 k z i b i : z i ∈ Z } L=L(B):=B\cdot \mathbb Z^k=\{\sum\limits_{i=0}^{k}z_ib_i:z_i\in\mathbb Z\} L=L(B):=B⋅Zk={i=0∑kzibi:zi∈Z}
这组生成格的线性无关的向量就是格的基,格可以有很多组基,但格的维数是相同的。格的两组基之间可以通过一个行列式为 ± 1 \pm 1 ±1的矩阵进行转换。
从上图中可以看出这个二维的格中有两组基, v 1 ′ v_1 ' v1′和 v 2 ′ v_2 ' v2′的明显正交性更好(接近于正交),这样的基我们认为是优质基,反之 v 1 v_1 v1 和 v 2 v_2 v2之间夹角就比较小,这类基,通常认为是劣质基。