格的基本概念
数学研究:Lagrange,Gauss,Hermite等研究二二次型理论,开普勒猜想等,Minkowski提出了数的几何理论(几何数论)。
算法研究:Lagrange-Gauss算法,LLL算法等。
密码分析:分析背包问题,小指数RSA问题等。
密码设计:NTRU方案,Ajtai-Dwork方案,抗量子密码体制。



最短向量问题定义
密码分析:分析背包问题,小指数RSA问题等。
密码设计:NTRU方案,Ajtai-Dwork方案,抗量子密码体制。
内积的定义
定义:设R是实数集,
是m维欧氏空间,
中的元素用列向量表示。定义
中的内积
此内积定义了
中向量的长度
,即对
,
。
是
中n个线性无关的向量(m≥n),Z为整数集,称
格的定义
定义:设
为
中的一个格,简记为L,称
为格L的一组基,m为格L的维数,n为格L的秩。
例:
一维的情况:
,
二维的情况:
,
。
格的另外一种定义
定义:格L是
中秩为n的离散加法子群。
,其中
,
。
通常不一定是格L的基。
,
。




注:离散是指对任意的
,存在
的一个邻域
,使得
,可以验证格的两种定义是等价的。

。
Gram-Schmidt正交化
输入:
中的一组线性无关的向量
输出:一组正交向量
1.
,
2. for i=2,3,...,n do
注记
存在关系式:
%3D(b_%7B1%7D%5E%7B*%7D%2Cb_%7B2%7D%5E%7B*%7D%2C...%2Cb_%7Bn%7D%5E%7B*%7D)%0A%5Cleft%5B%20%5Cbegin%7Bmatrix%7D%0A%20%20%20%20%200%20%26%20%5Cmu_%7B2%2C1%7D%20%26%20...%20%26%20%20%5Cmu_%7Bn%2C1%7D%5C%5C%0A%20%20%20%20%200%20%26%201%20%26%20...%20%26%20%5Cmu_%7Bn%2C2%7D%5C%5C%0A%20%20%20%20%20...%20%26%20...%20%26%20...%20%26%20...%5C%5C%0A%20%20%20%20%200%20%26%200%20%26%20...%20%26%201%5C%5C%20%20%20%20%20%0A%5Cend%7Bmatrix%7D%20%5Cright%5D)
特别地,格L的行列式满足:
格上的最短向量问题
给定格基
定义的格L。格中最短非零向量的长度记为
。格上的最短向量问题(Shortest Vector Problem,简称SVP)有如下的变体:
求解SVP:求解格点
使得
。
优化SVP:计算
。
判定SVP:给定一个有理数r,判断是否满足
。
SVP问题在随机归约下被证明是NP-困难问题。
注记
上述三个版本的问题是多项式时间等价的。SVP问题在随机归约下被证明是NP-困难问题。
近似SVP问题:给定逼近因子
,上述问题中的入1替换成
。
后量子密码学
1994年,基于量子计算机模型,Shor提出了概率多项式时间算法求解因子分解问题和离散对数问题。
后量子密码学建立在能抵抗量子攻击的困难问题上,格上的些困难问题(例如SVP问题)是潜在的候选对象。
后量子密码学建立在能抵抗量子攻击的困难问题上,格上的些困难问题(例如SVP问题)是潜在的候选对象。
Blichfeld定理
问题:一般情况下能否在理论上给出
的一个上界?
定理:设L是
中的满秩格。如果可测集满足
,那么存在两个不同的向量
,使得
。
例:
Minkowski凸体定理
定理:设L是
中的满秩格,S是
中一个可测的关于原点对称(即
)的凸集(即
),若S的体积
,则
中有非零向量。
证明:考察
,有
。根据Blichfeld定理,存在
使得
。
因为
,并且S是凸体,所以
。
Minkowski第一定理
。另一方面,因为S中包含一个n维的边长为
。
。
定理:设L是
中的满秩格,
是n维空间中半径为1的单位球的体积,那么
。
证明:设
是以原点为中心,以
为半径的开球。一方面,根据
的定义,推出:
综合上面两个不等式推出定理成立。
应用举例:平方和表示
定理
设素数
,则存在整数a,b使得
。
设素数
证明
因为素数
,所以存在e使得
。考虑由向量
,
生成的格L。计算可知
。根据Minkowski第一定理, 存在非零格点
使得:
又因为:
,所以
。
求解格的最短向量
Minkowski第一定理给出了格中最短向量长度的一个上界。
问题:如何构造出具体的短向量(或者近似的短向量)?如何构造出一组较好的格基(约化基)?





高维的情形:LLL算法
问题:如何构造出具体的短向量(或者近似的短向量)?如何构造出一组较好的格基(约化基)?
1维:辗转约化


2维的例子:投影+辗转约化



考虑1维满秩格
。
1982年,A. K. Lenstra,H. W. Lenstra和L. Lovasz提出了一种格基约化算法能构造性地求出格L的一组LLL-约化基,他们的算法被称为LLL算法。LLL算法能够在多项式时间内求解近似因子为
的短向量,具有广泛的应用。
存在非多项式时间算法可以找到n维格中长度更短的向量(或最短向量)。
投影映射

定义:给定
中一组向量
。定义投影映射
为
注:
对任意
,
是向量x的与
都正交的分量。
特别地,
,
。
LLL约化基
。
可以由
给出的单位正交基表示:
,其中
定义:给定实数
,一组基
称为
约化的,如果满足
1.
;
2.
。
注:
-
如果
,LLL算法可以在多项式时间内计算
约化基。
- 第一个条件称为长度约化条件。
注记:
第二个条件称为Lovasz条件。由于
,
,上述条件又可写成:
因此Lovasz条件保证了
的长度不会比
的长度短太多。
注记
根据约化基定,义中的长度约化条件,T中的参数满足
。考虑T中的子矩阵
。根据约化基定义中的Lovasz条件,这个子矩阵第二列的向量的长度和第一列向量的长度是差不多的。
LLL约化基的性质
定理:设
是n维格L的一组
约化基,那么
1.
;
2.
;
3.
;
4. 对L中任一线性无关向量组
,一定有
。
特别地,对L中的任意向量x,有
。
2维的一一般情况:Lagrange-Gauss算法
1. 约化步:
,此处
;
2. 交换步:若
,则交换
;如果
不是约化基,重复上述步骤。
注:
-
约化步是在投影方向上进行最大的整数倍约化,满足Gram- Schmidt正交化中的
。
- 交换步是进行辗转约化。
LLL算法
LLL算法的正确性分析
- 算法的约化步是为了使得LLL-约化基的第一条性质成立。
- 算法的交换步是为了保证LLL-约化基的第二条性质成立。
- 因此,LLL算法停止时输出的是一组LLL-约化基。
LLL算法时间复杂度分析
定理:
若输入的基为
,设
,则LLL算法的时间复杂度是
。
若输入的基为
注:
证明中的一个重要技巧是定义
,然后考虑
的变化情况。
LLL算法的应用举例
SageMath示例

- 多项式时间分解有理系数多项式。
- 当变量个数为常数时,多项式时间求解整数规划问题。
- 分析基于背包问题的密码体制。
- 求同余方程的小整数解。
- 分析特殊参数下的RSA密码体制。
注
基本方法:针对不同的问题,构造合适的格,将相应的问题转化为求解格中短向量问题。
基本方法:针对不同的问题,构造合适的格,将相应的问题转化为求解格中短向量问题。
问题1:背包问题
问题
背包问题(也称为子集合问题)是指给定集合
和目标元素s,求解
使得
。
背包问题(也称为子集合问题)是指给定集合
- 背包问题被证明是NP-完全问题。
- 可以基于某些背包问题参数设计密码体制,例如Merkle-Hellman体制.
- 很多基于背包问题的密码体制是不安全的。
背包问题的初步分析
)
固定大整数
,构造格L
如果子集合问题有解,那么
是格L中的短向量。
例:
给定集合
和目标元素
,求解对应的背包问题。
选取N=1000,得到组合系数为
。
问题2:同余方程的小整数解
给定次数为d的整系数多项式
和因子分解未知的大模数N,求不超过一定上界的
满足
。
如果知道N的因子分解,应用孙子定理可以快速求解上述问题。
如果N的因子分解未知,Coppersmith提出了一种应用LLL算法的求解方法。
基本思路:应用LLL算法构造另外一个整系数多项式g(x)满足
,而求解整系数多项式的整数根有高效的算法。
问题初步分析
考虑多项式的向量表示:
多项式的向量表示构成格:给定多项式
,定义格
。
如果对任意
,都有
,那么对任意
。
模方程的转化
定理(Howgrave-Graham)
设
是一个至多有w个单项式的多项式,h是正整数,如果:
1.
,这里
,
2.
。
那么
。
证明:验证
,因为
,所以
。
Coppersmith算法框架
1. 构造合适的格。构造多项式
,这里
,满足性质:
2. 求解短向量。考虑格
,求格中的一个短向量对应的多项式
。
3. 模方程转化。验证如果Howgrave-Graham定理的条件成立,求解方程
。
Coppersmith定理
设N是一个未知因子分解的整数,
是N的一个因子,
是一个单变量首一的次数为
的多项式,那么可以找到方程
的满足条件:
的解,算法的时间复杂度是
,这里
是一个任意小的正数。
注记
- Coppersmith还设计了利用LLL算法求解二元模多项式方程小整数解的算法。
- 相关的求模多项式方程小整数解算法在RSA密码算法的分析中有很多应用。
-
例如假设RSA模数N=pq。其中p,q是比特长度相同的素数,如果知道p的
高位(或低位)比特值,那么可以在多项式时间内分解N。