格的定义
这是格的定义。与向量空间不一样的是,这组线性无关向量的系数都是整数,而组成向量空间的线性无关向量的系数可以取任意实数值。
The Fundamental Parallelepiped
The fundamental parallelepiped 被定义为这样一个区域
注意,系数的取值是左闭右开,
如下图:
其实,一个格的parallelepiped就是一个格的“基本区域”,我们把这个区域放在每一个格点上(用格点来平移这个区域),我们就可以用这个基本区域覆盖整个空间。寻找空间点的一个,实际上就是在做“模”parallelepiped的运算。
举例来说,一个点在格上,当且仅当这个点模P(B)后会得到0点,即原点。我们不关系点的绝对位置,只关心点的相对位置
以下定理便说明了parallelepiped的作用
基本思想是,把空间多有的点都对应到格的相同位置上——parallelepiped上。
行列式
格的行列式定义如下:
格的行列式,是格的parallelepiped的体积大小。
这大小等于多少呢?
以上定理是说,将格的基向量组成一个矩阵,parallelepiped的体积大小即为这个矩阵的行列式的值。所以有:
又有对于格的不同的基,他们构成的parallelepiped的体积是相等的。
Minkowski's Theorem
我们先给出Blichfeld定理
Blichfeld's Theorem:
这个定理是说,选取一个集合,只要所取集合的体积大于行列式,这里面一定有两个点,它们的差值是一个格点。注意,集合体积不能等于行列式,因为基本区域中有且只有一个格点(回忆基本区域的定义)。这个定理已经证明了百分之九十的Minkowski定理。
下面给出Minkowski定理:
这个定理是说,在中选取一个关于原点对称的凸集,如果它的体积大于格的基本区域的体积乘与,那么S中一定包含一个非零的格点。
有几个地方需注意:
1.S是一个关于原点对称的凸集
2."S contains a nonzero lattice vector". 既然S是关于原点对称,原点必然在S中。
我们可以继续的到一个Minkowski定理的推论:
这个推论告诉了我们,L的最短向量,最长不会超过.
格中难题
最短向量问题(SVP):
这个问题是说,给定一个格,要求找到格上的一个最短向量(离原点最近的点)。注意,格上的最短向量可能不止一个,问题只要求找到其中一个。
最近向量问题(CVP):
这个问题是说,给定一个格和一个定义在向量空间中的点(不是格点),要求找到格上的一个点,是距离最近的格点。
SVP和CVP都是NP-hard问题,我们又基于这两个问题定义出两个相对简单的问题。
渐进最短向量问题(apprSVP):
这个问题也是要求找到一个短向量,但不一定要是最短的,只需小于最短向量的一个倍数。基于不同的倍数,apprSVP的难度也不同。
渐进最近向量问题(apprCVP):
apprCVP与apprSVP类似,我们只需要找到一个近似的最近向量。
参考:
1.An Introduction to Mathematical Cryptography —— Second Edition by Jeffrey Hoffstein • Jill Pipher Joseph H. Silverman