格密码学的几何原理与应用
1. 格密码学基础
格密码学建立在最短独立向量问题(SIVP)的困难性假设之上。简单来说,SIVP 就是在格中计算一组 $n$ 个线性无关的短向量的问题。直观上,可以构建这样一个密码系统:公钥是格(例如由长向量构成的基来表示),而对应的私钥则是格中的短向量。如果找到短向量很困难,那么就无法轻易从公钥描述中计算出私钥。
公钥/私钥对可用于加密和解密消息,具体步骤如下:
- 设 $L = B\mathbb{Z}^n$ 为一个格,$S$ 为一组线性无关的格向量,分别作为密码系统的公钥和私钥。
- 加密消息 $m$ 时,将其编码为一个短随机向量 $x$,在对偶格中选择一个“随机”点 $v \in B^{\dagger}\mathbb{Z}^n$,并通过 $x$ 对 $v$ 进行扰动,得到密文 $c = v + x$。密文是距离对偶格 $L^{\dagger}$ 不超过 $|x|$ 的点。使用对偶格向量的原因是,格 $L$ 的良好基 $S$ 可用于解决对偶格 $L^{\dagger}$ 中的最近向量问题(BDD)。
- 如果 $|x| < \lambda(L^{\dagger})/2$,则恢复 $x$ 就会产生一个 BDD 问题。根据相关定理,只要误差向量 $x$ 足够短,私钥 $S$ 就可用于找到最接近目标密文 $c$ 的格点 $v$,然后通过 $x = c - v$ 恢复消息。
总结来说,从格 $B$ 的公钥描述中恢复私钥 $S$ 对应一个 SIVP 实例,而在不知道私钥的情况下解密则是一个 BDD 实例。不过,这只是一个非常初步的描述,还有许多重要问题有待解答,例如应该使用什么基 $B$ 作为公钥、如何选择对偶格中的“随机
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



