格的基本概念
	数学研究: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。
 

京公网安备 11010502036488号