目录
写在前面
本文章主要关注SVP问题的变式,以及它们的关系。其中包含SVP问题,GapSVP问题,uSVP问题。以及旋转格上这些困难问题的理解。
一. SVP问题
一般利用正整数n来代表格的维度,也就是:
格困难问题会出现近似因子的概念,该值通常是一个与n相关的公共参数:
首先我们先来看第一个很常用的格困难问题,全称叫y-approximate shortest vector problem,通常会被简称为y-SVP问题。
因为目标是输出一个格向量,所以这是一个search问题。
也就是给定格L的格基B:
尝试寻找一个非零的格向量:
该格向量的长度相对较短,也就是满足:
二. GapSVP问题
介绍的第二个问题的全称叫做decision-y-approximate shortest vector problem。该问题简称为y-GapSVP问题。
因为该问题的输出结果只有YES或者NO,所以这叫做判定性问题(decision版本)。
该问题也是给定一个格L的格基B:
外加一个大于0的常数r>0
来判定该格最短向量长度到底满足哪一种情况。
第一种叫YES instance,也就是:
第二种叫NO instance,也就是:
当然,该问题的前提是要保证最短向量的长度只会出现这两种情况之一,不会出现介于中间的情况(问题无定义)。
从直觉来看,GapSVP要比SVP问题“简单”一丢丢。
三. uSVP问题
y-uSVP问题的全称为unique shortest vector problem with gap y。
因为这个问题的本质也是寻找最短的非零格向量,所以这也是一个search问题。
相比于普通的SVP问题,该问题前提限定了:
也就是第二短的格向量比第一短的格向量的y倍还要长。这个性质其实可以间接反应格的稀疏程度。换句话说,如果这两者相差的越大,那么最后的就越好求。
这个问题的目标也是找到一个格向量:
使其长度刚好最短:
四. uSVP与GapSVP问题之间的归约
在格困难问题的归约中,一般会设定近似因子为多项式范畴,也就是:
论文[LM09]证明:在维持格维度不变的情况下,y-uSVP可以使用Cook归约到y-GapSVP上。
[LM09] Vadim Lyubashevsky and Daniele Micciancio. On Bounded Distance Decoding, Unique Shortest Vectors, and the Minimum Distance Problem. In CRYPTO, 2009. 3, 9, 22
如果这些困难问题的近似因子为常数会发生什么?
比如在y-GapSVP问题中,如果近似因子取常数范围,也就是:
那么解决该问题的计算难度其实是指数复杂度:
对计算复杂性感兴趣的小伙伴可以翻看此论文[ADR15]:
[ADRS15] Divesh Aggarwal, Daniel Dadush, Oded Regev, and Noah Stephens-Davidowitz. Solving the shortest vector problem in 2n time using discrete Gaussian sampling. In STOC, 2015. 1, 2, 5,6, 9, 18, 21
五. 整数旋转格上的困难问题
n维整数格可以直接写为:
5.1 格同构
如果有两个格,它们的维度均为n。且存在一种正交变换R:
使得可以将一个格旋转成另外一个格,也就是:
那么这两个格就是同构的,英文写做isomorphic(注意跟格同态区分开来)。
其中最常见的就是n维整数格的旋转格同构:
5.2 y-ZSVP问题
y-ZSVP问题的全称为y-approximate shortest vector problem on rotations of
这个问题的本质是在n维整数旋转格上寻找最短的非零格向量,所以其本质也是一个search问题,近似因子的定义与前面类似:
来总结下这个问题的标准定义。
给定格基B:
格L与n维整数格同构,也就是:
目标是寻找一个格向量:
使其长度有上限:
当然,如果近似因子y=1时,那么这个就是最原始的ZSVP问题。之前对于该问题也有过一些解释,可以参看之前的博客:
细心的小伙伴会发现,其实ZSVP问题的本质就是找出格的旋转角度,所以这个其实就是格同构问题:Lattice isomorphism problem LIP问题。
如果LIP问题真的是NP-困难的话,那么直觉上可以设计很多新的格公钥密码方案。比如:
给定一个同构格:
将格L的坏基作为公钥。
根据以上讨论,我们知道找出标准正交基,也就是旋转角度是困难的。所以这个方向是可行的。
从本质上讲,找出n维整数格的同构形式的标准正交基的过程,可以多项式时间归约到ZSVP问题上。