NTRU的原理及安全性现状分析.doc

上传人:b****9 文档编号:142133 上传时间:2022-10-04 格式:DOC 页数:23 大小:1.10MB
下载 相关 举报
NTRU的原理及安全性现状分析.doc_第1页
第1页 / 共23页
NTRU的原理及安全性现状分析.doc_第2页
第2页 / 共23页
NTRU的原理及安全性现状分析.doc_第3页
第3页 / 共23页
NTRU的原理及安全性现状分析.doc_第4页
第4页 / 共23页
NTRU的原理及安全性现状分析.doc_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

NTRU的原理及安全性现状分析.doc

《NTRU的原理及安全性现状分析.doc》由会员分享,可在线阅读,更多相关《NTRU的原理及安全性现状分析.doc(23页珍藏版)》请在冰豆网上搜索。

NTRU的原理及安全性现状分析.doc

NTRU的原理及安全性现状分析

【摘要】NTRU一种比较新的公开密钥体制,由于NTRU产生的密钥方法比较容易,加密、解密的速度比RSA等著名算法快得多,NTRU成为当前公钥体制研究的一个热点。

本文介绍了NTRU的原理,总结了对该算法密码分析的结果,给相关的理论研究及工程应用提供一些参考。

【关键词】NTRU;加密;解密

1引言

1.1NTRU的研究背景和意义

NTRU(NumberTheoryResearchUnit)算法是1996年由美国布朗大学三位数学教授发明的公开秘密体制。

这是一个基于多项式环(其中N是一个安全参数)的密码体制。

它的安全性依赖于格中最短向量问题(SVP)。

相对于离散对数或大数分解等公开秘密体制来说,它有许多优势。

在安全性方面,NTRU算法具有抵抗量子计算攻击的能力,而RSA和ECC算法是无法抵抗量子计算的。

当前,对于用什么公钥密码来替代正在大量使用的RSA和ECC,主要有以下互相竞争的技术解决方案:

NTRU公钥密码体制、McEliece公钥密码体制、MQ公钥密码体制。

McEliece公钥密码体制的安全性基于纠错码问题,安全性强,但计算效率低。

MQ公钥密码体制,即多变元二次多项式公钥密码体制(MultivariateQuadraticPolynomialsinPublicKeyCryptosystem),基于有限域上的多变元二次多项式方程组的难解性,在安全性方面的缺点比较明显。

相比之下,NTRU公钥加密体制算法简洁、计算速度快、占用存贮空间小。

1.2国内外研究现状

随着信息技术的迅猛发展和一些高技术武器设备、通信指挥系统等的需要,未来军事部门将大量地使用公钥密码技术。

由于RSA和ECC不能抗量子计算攻击,而NTRU能抗量子计算攻击,且速度快和安全性高,特别别适合用于诸如智能卡,保密蜂窝电话系统,保密传真、无线保密数据网,以及认证系统等业务,这也扩大了公钥密钥体制的应用范围。

有理由相信NTRU算法完全有可能在公钥密钥体制中占有主导地位。

自从该密码体制被提出来后,就引起国外一流的密码学家的关注,这包括DonCoppersmithJohanHastad,AndresOdlyzko,andAdiShamir等。

到目前为止,有很多讨论NTRU算法安全性。

但还没有哪一种分析方法能破译该密码体制。

从现阶段研究来看,NTRU所基于的困难问题是安全的。

接下来的研究主要集中在体制的参数设置和适当的使用填充方案。

在2000年,Jaulmes和Joux论证了仔细的选择填充方案可以防止选择密文攻击,Howgrave-Graham等的研究结果显示了仔细的选择参数集可以使得解密失败概率降为几乎为0,一旦正确的参数的选择和适当填充方案的使用,任何对NTRU的攻击都可以转发为对困难格问题的求解。

为了充分利用在学术界和商界的专家的经验和知识,提供一个完善的、有效的、能共同操作的,正确使用NTRU公钥密码系统的方法,在2002年10月出版了一个标准EESS1v1:

NTRU加密和签名的实施,2003年5月对第一版进行完善和修改出台二版:

EESS1v2。

1.3本文安排

本文将在第2节中介绍NTRU的数学背景—格的知识,然后就是LLL算法、BKZ算法和NTRU算法的数学基础;在第3节中,介绍NTRU公钥加密体制,第4节介绍一些对NTRU算法的攻击方法,进而对算法的安全性进行分析;最后在第5节进行了小结。

2数学背景

2.1格问题(latticeproblem)

2.1.1格的定义

这里的格是指点格。

它是的一个离散子群。

特别地,对于的任意加法子群都构成一个格,这样的格称为整格(integerlattice)。

格的具体定义如下:

定义1设为中一组线性无关向量,取集合为的整线性组合,即

这样的集合称为格,其中称为格的一组基或简称格基。

的每一组基所含向量的个数相同,基中所含向量个数称之为格的维数或秩,记为,它与所张成的线性子空间的维数相同。

当时,格中有无数组基。

任意两组基之间都可以通过一个幺模矩阵(行列式为的整数矩阵)进行相互转化。

因此格中所有的基都有相同的Gram行列式,其中表示两个向量的内积。

格的体积定义为格基的Gram行列式的平方根。

当,也就是为满维格时,它的体积等于以任何一组基为行向量的矩阵的行列式的绝对值。

中向量的欧氏范数和中心化欧氏范数定义为:

若,则的欧氏范数为,

而的中心化欧氏范数定义为,

其中

本节以下部分如无特别说明均指中心化欧氏范数。

由于格是离散的,所以格中必有最短非零向量,这个向量的欧式范数称为格的第一最小,记为或。

更一般的,对于所有的,Minkowski的次最小定义为

其中最小值取自中个线性无关向量构成的向量组的集合。

,,…,称为的逐次最小。

总存在一组线性无关向量达到所有的逐次最小,即对所有的,。

但是当时,这样的一组向量不一定是一组格基;当时,甚至可能不存在这样一组格基。

利用高斯启发式算法(Gaussianheuristic),随机维格的最短向量长度约为

2.1.2格中的困难问题

关于格有三个著名的NP问题。

以下代表一个格,为格的维数,为一范数。

①最短向量问题(SVP):

给定格的一组基,寻找格中一非零向量,使得。

近似最短向量问题(APPR-SVP):

给定格的一组基,寻找一非零向量,使得,其中是与维数有关的某个近似因子。

②最近向量问题(CVP),也称为最近格点问题:

给定格的一组基和向量,不一定在中,寻找一向量,使得都有。

类似地,近似最近向量问题定义为:

给定格的一组基和向量,不一定在中,寻找一向量,使得都有。

③最小基问题(SBP):

这个问题目前研究的人并不多,本文也未曾涉及,这里就不作介绍了。

2.1.3格约化(latticereduction)

在格中总有线性无关向量组可以达到所有的逐次最小值,但一般来说,这样一组线性无关向量并不构成格的一组基;格中也没有一组基比其它基“明显好”。

格约化的目的是利用已有的一组基找另一组“更好”的基,这组基满足:

该基中的向量比原有的基中的向量更短,或者该基中有向量的范数。

‚该基中的向量两两正交或者相对正交(即该基中任意两个向量的内积与它们的长度之积的比率特别小,接近于零)。

一组约化的基可以帮助解决SVP和CVP。

目前最有名的格基约化算法为A.K.Lenstra、H.W.LenstraJr和L.Lovász提出的LLL算法。

2.1.4多项式环及NTRU格

NTRU加密体制及NTRUSign数字签名体制都是基于商环上运算的算法。

环中的乘法运算定义为卷积“”(convolutionmultiplication):

设,

,,

定义

其中的的系数为

,。

称是模的是指及中的所有单项式系数均为模q的,即将及视作的元素。

中的元素也可以用向量形式来表示,即可表示为。

因此类似可定义中元素的欧式范数和中心化欧氏范数。

中的元素还可以用循环矩阵来表示:

即可表示为

类似地有。

很显然地,映射为一同构映射,即,其中为普通的矩阵乘法。

对应于环中的任一元素,有的一自然格,即由的行向量生成的格。

对于每个,,集合

是一个维数为2N的格。

这种形式的格称为NTRU格。

显然,它有一组基为。

作为格,其体积为,因此中最短向量长度约为。

中元素的欧氏范数定义为分量形式的欧式范数,即

定义两个符号:

对于任意,令「」表示最接近的整数,记「」。

若多项式是有理系数的,用「」和分别表示对其系数进行「」、运算所得的多项式。

2.2LLL算法

2.2.1LLL规约基的定义及有关定理

定义2令是格L上一组基,是由格朗姆——施密特正交化过程定义的。

记,,且。

我们称向量组为LLL规约(关于)的,如果他们满足一下两个条件:



‚

引理1是格L上的一组基,是格中的最短向量,则。

证明:

设是非零向量,是使得最大的坐标。

因为是整数,所以

定理1如果是一组关于的LLL—规约基,则至多比格中的最短非零向量长倍,。

证明:

若则,

同理

由定义可知

对进行递推,可得

由引理可证得

证毕

2.2.2LLL算法

LLL算法是一个将一个基转化为LLL约减基的迭代算法。

因为LLL约减基的定义使用了施密特正交向量组,所以这个算法将施密特正交法作为一个子程序。

第一种情况可以通过适当的整数线性组合来满足。

第二种情况不满足,则比短,这时交换和,并由原路返回。

具体算法如下:

输入:

输出:

LLL规约基

1:

计算施密特正交基和系数,

2:

计算

3:

4:

whiledo

5:

fordownto1do

6:

Let=「」andset

7:

update,

8:

endfor

9:

ifthen

10:

11:

else

12;Sampwith

13;updateand,,and

14:

15:

endif

16:

endwhile

2.3BKZ算法

LLL算法的一般化是由Schnorr提出来的,他的想法是约减维数为的基,,而不是维数为2的基。

约减这些子格的基是受Korkin-Zolotarev的启发。

定义3是格L的一组基,是KZ规约基,如果

(1)

(2),其中是指中最小非零向量的长度。

定义4是格L的一组基, 是分组长度为k的分组KZ规约基,或k-BKZ规约基,如果

(1)

(2)是KZ-规约的,

在这个定义下,格的一组维的基是LLL规约基当且仅当是2-BKZ规约基,是KZ规约基当且仅当是n-BKZ规约基。

下面我们简单描述一个关于在k-BKZ规约基中最长向量的长度的定理。

定理2如果是k-BKZ规约基,至多是格中最短向量的倍,当。

计算k-BKZ规约基的算法与LLL算法相似,算法如下:

输入:

格L的一组基,一个整数

输出:

格L的一组k-BKZ规约基

1:

约减的大小

2:

if存在使得不是KZ规约的then

3:

KZ规约

4:

goto1

5:

return

2.4NTRU算法的数学基础

NTRU是一种基于多项式环的加密系统,其加、解密过程基于环上多项式代数运算和对数及的模约化运算,解密的有效性依赖于某些元素的概率。

它是由正整数以及4个次整系数多项式集合来建构的。

一般为一大质数,为多项式截断环(Truncatedrolynomialrings),其元素可表示为向量的形式:

定义5上多项式元素加运算为普通多项式之间的加运算,用符号+表示;上多项式元素乘法运算为普通多项式的乘法运算,但乘完的结果要模上多项式(XN-1),即2个多项式的卷积运算,常称为卷积,用表示。

多项式元素模q运算就是把多项式的系数作处理,用表示。

可以证明是一个环。

和在NTRU中一般作为模数,不一定为质数,但是为了安全,要求和必须互质,且远大于。

和为正整数,分别决定了多项式集合的系数分布。

令={:

的个系数为1,个系数为-l,余下的系数为0},则多项式集合:

,为明文空间。

由于4个集合的元素系数一般都比较小,常称为小多项式

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1