格密码学
基于格的密码学是涉及格的密码原语构造的通用术语,无论是在构造本身还是在安全证明中。基于格的结构支持后量子密码学的重要标准。[1] 与更广泛使用和已知的公钥方案(例如RSA、Diffie-Hellman或椭圆曲线密码系统)不同(理论上可以在量子计算机上使用Shor 算法来击败这些方案),一些基于格的结构似乎是抵抗经典计算机和量子计算机的攻击。此外,在某些经过充分研究的计算格问题无法有效解决的 假设下,许多基于格的构造被认为是安全的。
1996 年,Miklós Ajtai引入了第一个基于格的密码结构,其安全性可以基于经过充分研究的格问题的硬度,[2],Cynthia Dwork表明了某种平均情况格问题,称为短整数解( SIS),至少与最坏情况的晶格问题一样难以解决。[3]然后,她展示了一种加密哈希函数,其安全性相当于 SIS 的计算难度。
1998 年,Jeffrey Hoffstein、Jill Pipher和Joseph H. Silverman推出了一种基于格的公钥加密方案,称为NTRU。[4]然而,据了解,他们的方案至少与解决最坏情况的格子问题一样困难。
第一个基于格的公钥加密方案,其安全性在最坏情况硬度假设下得到了证明,由Oded Regev于 2005 年提出,[5]以及错误学习问题 (LWE)。此后,很多后续工作都集中在改进 Regev 的安全性证明[6] [7]和提高原始方案的效率上。[8] [9] [10] [11]更多的工作致力于构建基于 LWE 和相关问题的附加加密原语。例如,2009年,Craig Gentry引入了第一个完全同态加密方案,该方案基于格问题。[12]
1. 困难问题
格密码学是一类建立在计算复杂性理论上的密码学分支,它主要依赖于解决某些关于格(Lattices)的数学问题的困难性。以下是格密码学中几个核心的困难问题:
-
最短向量问题(Shortest Vector Problem, SVP):
这是最基本的格困难问题之一,要求在给定的格中找到最短的非零向量。具体来说,给定一个格 (L),SVP 是寻找 (L) 中具有最小欧几里得范数的非零向量。 -
最近向量问题(Closest Vector Problem, CVP):
类似于SVP,但目标是找到给定向量在格中最近的点。即给定一个向量 (t) 和一个格 (L),找到 (L) 中与 (t) 距离最近的向量。 -
带隙的最短向量问题(GapSVP):
这是对SVP的一个变种,要求区分最短向量长度与次短向量长度之间的差距是否超过一个预定的“间隙”。 -
学习带误差的线性问题(Learning With Errors, LWE):
LWE问题是格密码学中非常重要的一个构建块,它涉及从带有随机误差的线性方程组中恢复秘密向量。这个问题在没有额外信息(即陷门)的情况下被认为是困难的。 -
模块化最简内积问题(Module Learning With Errors, MLWE)和模块化最短独立集问题(MSIS):
这些是LWE问题的推广,其中涉及到模数运算,常用于如CRYSTALS-KYBER和CRYSTALS-Dilithium等实际的格密码算法中。 -
** R-LWE问题**
https://en.wikipedia.org/wiki/Ring_learning_with_errors