本系列是关于格密码学的记录笔记,这一系列大部分内容我都是从资料直接摘录的,甚至可以看成是不完全的翻译版,少数内容有我自己的理解和注释。
格的优点
在之前的公钥密码学当中,几乎所有的构造都是基于 Diffie-Hellman 假设或者是 RSA 假设,然而这些基于数论的困难问题(离散对数困难问题,大整数分解困难问题)在量子计算情况下不再是困难的 [Sho97]。形式上有着几何性质的格密码学则具有抗量子性。除此之外,它还有下列优点:
- 格因其几何性质,计算主要涉及向量(vector)和矩阵(matrix)的线性运算,因此算法简便而且可以并行化。
- 可归约的强安全性,并且归约的形式是:worst-case to average-case reduction。这意味着只要 worst-case 问题中存在哪怕只有一个困难实例,其对应的 average-case 就是平均意义上困难的。这个性质对于格密码学的安全性来说非常重要。
- 格的出现还为密码学中许多其他的原本只有理论的机制(如全同态加密 FHE,基于属性的加密 ABE,代码混淆 Code obfuscation 等)提供了具体构造的可能。
格的定义
格并不是一个密码学中的新概念,它只是空间中“有规律”的点集,围棋盘、合理密植的树林等形象或许可以帮助我们理解这样的概念。格的具体定义如下:
Lattice
A $n$-dimensional lattice $\mathcal{L}$ is any subset of $\mathbb{R}^n$ that is both:
- an additive subgroup: $0 \in \mathcal{L}$, and $-\mathbf{x}, \mathbf{x+y} \in \mathcal{L}$ for every $\mathbf{x, y} \in \mathcal{L}$; and
- discrete: every $\mathbf{x} \in \mathcal{L}$ has a neighborhood in $\mathbb{R}^n$ in which $\mathbf{x}$ is the only lattice point.
— by [Pei16] in p.6.
一个 $n$ 维的格(lattice $\mathcal{L}$)其实是一个满足下列条件的 $\mathbb{R}^n$ 的子集:
- 加法子群:封闭性,结合率,加法单位元,加法逆元;
- 离散化:即一个格点的周围一定范围内没有其他格点。
每一个格 $\mathcal{L}$ 通常都有一个基(basis $\mathbf{B} = \{\mathbf{b_1, \cdots, b_k}\}$),即格中每个格点($n$ 维格中的格点其实就是 $n$ 维向量)都可以写成这些基中格点的线性组合:
对于一个格 $\mathcal{L}$ 来说,有一个很重要的概念就是它的对偶格(dual lattice $\mathcal{L}$*)。对偶格是指那些与 $\mathcal{L}$ 中所有格点内积均为整数的 $n$ 维点构成的集合:
参考资料
[Pei16]: C. Peikert. A Decade of Lattice Cryptography. 2016.
pdf: https://web.eecs.umich.edu/~cpeikert/pubs/lattice-survey.pdf
[Sho97]: P. W. Shor. Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. SIAM J. Comput., 26(5):1484–1509, 1997.
url: https://epubs.siam.org/doi/abs/10.1137/S0097539795293172
Video from youtube named “How Quantum Computers Break Encryption | Shor’s Algorithm Explained”.