摘要:本文用通俗的方式介绍基于格的密码学。先从"格"这一高维规则点阵的几何结构讲起,说明 SVP、CVP 等格上困难问题为何难以求解;再借助"棉花糖"类比解释公钥(坏基)与私钥(好基)的关系;随后分析其抗量子原因(Shor 算法失效、Grover 加速有限)、效率与功能优势,并列举 Kyber、Dilithium、Falcon、NTRU 等主流方案,最后厘清其与 LWE / Ring-LWE 的关系。
1. 什么是"格"?
这里的"格"不是指化学中的晶格,而是数学中的一种几何结构 。
想象一个无限延伸的、规则排列的点阵。比如:
- 在二维平面上,所有坐标为整数的点 ((x, y)),其中 (x) 和 (y) 都是整数。这就构成了一个最简单的二维格。
- 更一般地,一个格可以由一组基向量 通过整数系数线性组合生成。例如,基向量 (b_1 = (1, 0)) 和 (b_2 = (0, 1)) 生成的格就是所有整数坐标点。
在密码学中,我们通常考虑高维空间中的格,比如 500 维、1000 维。维度越高,格的几何性质就越复杂。
2. 基于格的困难问题
基于格的密码学,其安全性建立在几个公认的困难问题上。这些问题在经典计算机和量子计算机上都被认为是困难的。
核心问题:
- 最短向量问题:给定一个格的基,找到这个格中长度最短的非零向量。
- 最近向量问题 :给定一个格和一个目标点(通常不在格上),找到格中离目标点最近的那个点。
为什么困难?
关键在于基的选择。一个格可以由很多组不同的基生成。有些基是"好"的(向量短且近似正交),有些是"坏"的(向量长且方向歪斜)。 - 如果你知道一个"好"基,解决 SVP 或 CVP 可能很容易。
- 但如果只给你一个"坏"基,找到最短向量或最近向量就变得极其困难。
密码学正是利用了这一点:公钥是一个"坏"基,私钥是一个"好"基。 没有私钥,攻击者面对的是一个高维的、看似混乱的点阵,很难找到那个隐藏的短向量。
3. 一个直观的类比
想象一个巨大的、高维的棉花糖。
- 公钥:就像从外面看这个棉花糖,你只能看到它模糊的轮廓,很难找到里面那颗最小的糖粒(最短向量)。
- 私钥 :就像你有一张内部地图(好基),知道怎么直接走到那颗糖粒的位置。
攻击者没有内部地图,只能在巨大的空间里盲目搜索,这在计算上不可行。
4. 为什么基于格的密码学被认为是抗量子的?
原因在于:
- Shor 算法对它无效 :Shor 算法之所以能破解 RSA 和椭圆曲线密码,是因为它能把这些问题转化为寻找周期的问题,而量子傅里叶变换可以高效解决周期寻找。但 SVP 和 CVP 没有已知的类似周期结构,Shor 算法无法直接应用。
- Grover 算法加速有限:Grover 算法最多提供平方级加速。对于高维格问题,即使有平方级加速,搜索空间仍然大到不可行。
- 目前没有已知的高效量子算法:经过多年研究,密码学界尚未发现能高效解决格中困难问题的量子算法。
5. 基于格的密码学有什么优势?
- 抗量子:如上所述,目前被认为是安全的。
- 效率较高:相比其他抗量子方案(如基于编码的 McEliece),基于格的方案密钥和密文尺寸相对较小,计算速度也较快。
- 功能丰富 :不仅能实现加密和密钥交换,还能实现数字签名,甚至更高级的功能如全同态加密。
- 安全性归约较强:许多基于格的方案可以将其安全性归约到最坏情况下的格问题,这意味着只要最坏情况下的格问题困难,方案就是安全的。这是一种很强的安全保证。
6. 主要方案举例
- CRYSTALS-Kyber :用于密钥封装,是 NIST 标准化的首选。它的安全性基于模块格上的带误差学习问题。
- CRYSTALS-Dilithium:用于数字签名,同样基于模块格上的困难问题。
- Falcon:另一个数字签名方案,基于 NTRU 格,签名尺寸更小,但实现更复杂。
- NTRU:最早的基于格的密码系统之一,基于多项式环上的格。
7. 与"带误差学习"的关系
你可能会经常看到 LWE 或 Ring-LWE 这些术语。它们是构建基于格密码的具体数学框架。
- LWE:可以看作是在格的问题上加入了一些"噪声"。给定一个线性方程组,但每个方程都有小的误差,求解原始秘密向量是困难的。
- Ring-LWE :是 LWE 在多项式环上的高效版本,是 Kyber 和 Dilithium 的基础。
LWE 问题的困难性可以归约到格上的困难问题,因此基于 LWE 的方案本质上就是基于格的密码学。
总结
基于格的密码学利用高维空间中格上困难问题(如 SVP、CVP)的计算复杂性来构建密码系统。它的公钥是一个"坏"基,私钥是一个"好"基。由于目前没有已知的高效量子算法能解决这些格问题,它被认为是抗量子的,并且因为效率较高、功能丰富,成为了后量子密码标准化的主流方向。