公用密钥密码系统方法及设备的制作方法

文档序号:2393379阅读:502来源:国知局
专利名称:公用密钥密码系统方法及设备的制作方法
本申请要求US临时专利申请No.60/024133(1996年8月19日递交)的优先权,所述临时专利申请在此结合用作参考。
本发明是关于信息的编码和译码,较具体说是关于由处理器系统对数字消息加密和解密的公用密钥密码系统。
在二当事方之间例如在二计算机间进行安全的数据交换需要加密。在当今的应用中有两种通用的加密方法,专用密钥加密和公用密钥加密。在专用密钥加密中,二当事方私下地交换欲用于编码和译码的密钥。广泛应用的专用密钥密码系统的示例为DES,Data EncryptionStandard(数据加密标准)。这样的系统可以非常快速和非常安全,但它们具有二当事方必须私下秘密交换他们的密钥的缺陷。
公用密钥密码系统是一种各当事方可公开他们的编码过程而不致危及译码过程的安全性的密码系统。此编码过程通常被称做陷井门(trap-door)功能。公用密钥密码系统尽管通常要较之专用密钥密码系统慢,仍被用于传送小量的数据例如信用卡号,还用来传送随后用于专用密钥编码的专用密钥。
到目前为止已建议并实现多种陷井门功能用于公用密钥密码系统。
一种已被用于生成公用密钥密码系统的陷井门功能涉及到在一集中取幂,即就是,取一集的一个元素并利用此集运算使此元素重复自乘。最经常选择的集是对大素数p和q的乘积集模Pq,虽然也描述过其他的集例如椭圆曲线,阿贝尔簇,和偶然非交换的矩阵集。但是,这种陷井门功能要求大素数,在各自约100位,使得密钥生成十分繁重,而用于编码和译码的求幂过程计算强度很大,要求作许多成百位数并约N3次运算的乘算以对N位的消息进行编码或译码。
已被用来生成公用密钥密码系统的第二种陷井门功能是基于确定一组中哪些数为二次幂,通常为对大素数p和q的乘积集模Pq。正如同在第一种中那样,密钥生成很繁重而编码和译码计算强度很大,需要约N3次操作来编码或译码由N位组成的消息。
第三种陷井门功能涉及到一集中的离散对数问题,一般为乘积集或椭圆曲线模大素数p。仍然是密钥生成很繁杂,因为素数p需要至少150位且p-1必须具有一大的素数因子,且这样的系统使用取幂,所以仍需要约N3次操作来编码和译码由N位组成的消息。
第四种已被用来生成公用密钥密码系统的陷井门功能是基于渐缩、或子集求和问题。这些功能利用一半集,正常为在相加中的正整数的半集。这一类型的许多公用密钥密码系统已被利用格还原技术所突破,所以它们不再被认为是安全的系统。
第五种已被用来生成公用密钥密码系统的陷井门功能是基于差错校正码,特别是Goppa码。这些密码系统利用对一有限域上的线性代数,通常此域具有二个元素。存在有对这些密码系统的线性代数攻击,所以用于安全的密码系统的密钥为一大的矩形矩阵,约400000位。这对大多数应用均过大。
第六种已被用来生成公用密钥密码系统的陷井门功能是基于找出一很大维数N的格中极短的基底向量的困难。用于这样的系统的密钥具有约N2位的长度,这对许多应用均太大。另外,这些格还原公用密钥密码系统很新,所以它们的安全性尚未得到完全的研究。
因此,大多数用户将发现具有一种将相对短的易于生成的密钥与相对高速的编码和译码过程相结合的公用密钥密码系统是可取的。
本发明的目的之一是提供一其密钥相对很短且易于生成而且其编码和译码过程可快速地进行的公用密钥加密系统。其另一个目的是提供一公用密钥密码系统,它具有相对低的存贮器需求和依赖于各种许可在均衡密级、密钥长度、编码和译码速度、存贮器需求、和带宽方面具有显著的灵活性的参数。
本发明使得能基本上随机地从一很大组向量中选择密钥,其密钥长度与其他公用密钥密码系统的密钥长度不相上下,并描写恰当的(例如对当前环境为-280)密级的特征,和提供较之最广泛应用的公用密钥密码系统、即上面引用的取幂密码系统快1至2个数量级的编码和译码过程。
本发明的公用密钥密码系统一实施例的编码技术采用一基于多项式代数及换算模2数p和q的混合系统,而译码技术则采用其有效性取决于基本概率论的分离系统。其公用密钥密码系统的安全性来自于多项式混合系统与换算模p和q的独立性的交互作用。安全性还依赖于这样的在经验上观察到的事实,即对于大多数格,如果存在有大量的仅适度地比最短的向量要长的向量,要找出最短的向量是极为困难的。
本发明的一实施例为一种用于编码和译码数字消息m的方法形式,包括下列步骤选择环R的理想数p和q;生成环R的元素f和g,生成作为f(mod q)的反量的元素Fq,和产生f(modp)的反量的元素Fp;产生一包括h的公用密钥,其中h,使用g和Fq推导得的乘积对mod q同余,;产生一由其能推导得f和Fp的专用密钥;利用公用密钥和一随机元素φ对消息进行编码来产生一编码消息e;和利用专用密钥译码此编码消息来产生一译码消息。
由以下结合所列附图的详细说明对本发明的另外的特征和优点将会更清楚地理解。
对附图的简要说明

图1为能被用于实践本发明实施方案的系统方框图;图2为当结合其中所引用的辅助流程图时,能用于实现本发明实施方案的公用密钥密码系统的流程图;图3为按照本发明一实施例的,用于生成公用和专用密钥的例行程序的流程图4为按照本发明一实施例的,用于使用一公用密钥来编码消息的流程图;图5为按照本发明一实施例的,用于使用一专用密钥对编码消息进行译码的流程图;图6为按照本发明另一实施例的,用于生成公用和专用密钥的例行程序的流程图;图7为按照本发明另一实施例的,用于使用公用密钥来编码消息的流程图;和图8为按照本发明另一实施例的,用于使用专用密钥对编码消息进行译码的流程图。
图1为一可被用于实践本发明的实施例的系统的方框图。基于处理器的两子系统105和155被表示为通过一不安全的信道50通信,后者可以是例如象一电话或互联网通信信道之类的任何有线或无线通信信道。子系统105包括有处理器110而子系统155包括处理器160。当以将说明的方式编程时,处理器110和160以及它们的相关电路能用来实现本发明一实施例和实践本发明的方法的一实施方案。处理器110和160各自可为任何适当的处理器,例如一电子数字处理器或微处理器,将会理解,任何通用的或专用的处理器,或其他能电子地、光学地、或其它措施地执行这里所述功能的机器或电路均可采用。处理器可以是例如Intel Pentium处理器。子系统105一般将包括存贮器123,时钟和定时电路121,输入/输出功能118和监视器125,它们全部可以是常规的类型。输入可以包括被表示为103的键盘输入。通信经由可包括调制解调器或任何适用于作信号通信的装置的发送接收器135进行。
这一示范性实施例中的子系统155可具有类似于子系统105的结构。处理器160具有相关的输入/输出电路164,存贮器168,时钟和定时电路173,和监视器176。输入包括键盘155。子系统155与外部世界的通信通过发送接收器162,后者仍然可包括一调制解调器或任何适用于作信号通信的装置。
这里的公用密钥密码系统的一实施例的编码技术采用基于多项式代数和换算模2数P和q的混合系统,而译码技术则采用其有效性取决于基本概率理论的分离系统。〔将会理解,此多项式是有序系数的通常的表达式(一具有N个有序系数、其中一些可以为零的N-1次多项式),和处理器将对系数进行所指定的运算。〕这里的公用密钥密码系统的安全性来自多项式混合系统与换算模P和g的独立性的交互作用。安全性还依赖于经验上观察到的事实,对于大多数格,如果存在有大量的仅仅稍长于最短向量的向量的话,将很难找到最短的向量。
这里的密码系统适应一概率密码系统的总框架,如下列文献中所描述的M.Blum等的“An Efficient Probabilistic Public-key EncryptionScheme Which Hides All Partial Information”(Advances in Cryptology:Proceedings of CRYPTO 84,Lecture Notes in Computer Science,Vol.196,Springer-Verlag,1985,pp.289-299)和S.Goldwasser等del“ProbabilisticEncryption”,J.Computer and Systems Science 28(1984),270-299。这就是说,加密包括一随机元素,从而各消息具有许多种可能的加密。编码和译码及密钥生成相当快和易于采用这里的技术,其中,编码或译码一长度N的消息块需作O(N2)次运算,使其大大快于RSA所需的O(N3)次运算。密钥长度为O(N),它能很好地匹敌其他“快速”公用密钥系统所需的O(N2)密钥长度,例如下列所述的这些系统R.J.McEliece“A Public-key Cryptosystem Based on Algebraic CodingTheory”,JPL Pasadena,DSN Progress Reports 42-44(1978),114-116;和O.Goldreich等“Public-key Cryptosystems From Lattice ReductionProblems”,MIT-Laboratory for computer Science preprint,November1996。
这里的密码系统的一实施例取决于4个整数参数(N,K,P,q)和3组带整系数的N-1次多项式的L9、Kφ、Lm。该实施例在环R=Z[X]/(XN-1)中工作,一元素F∈R将被置成为一多项式或向量,F=Σi=1NFiXN-i=[F1,F2,...,FN].]]>星号“*”指R中的乘算。此星号乘算被明确地给作为循环卷积积,F*G=H,其中Hk=Σi=1k-1FiGk-i+Σj=kNFiGN+k-i=ΣFiGj.i+j=k(modN)]]>当进行一乘算模(例如)q时,系数为换算的模q。进一步可参看附录1。
下面为公用密钥密码系统按照本发明一实施方案的示例。为易于说明采用非常小的数,因而此例将不是密码保密的。结合此例描述作为双括号(〖〗)中的内容的将在当前情况下提供一实际密码保密密码系统的操作参数。对为达到特定密级的操作参数的进一步讨论在附录1中进行,它还描述这里的密码系统的一实施例对各种不同类型攻击的抗干扰程度。
在此一实施例中所使用的目标是一N-1次的多项式。a1XN-1+a2XN-2+…+aN-1X+aN.
其中系数a1,…aN为整数。在这里的“星号”乘算中,XN由1代替,XN+1由X代替,和Xn-2由X2代替,等等。〔一多项式还由一N元组数来表示。在这样的情况中星号积也称之为卷积积。对于大值N,利用快速傅里叶变换方法计算卷积积较快,其以NlogN步的数量级替代N2步。〕例如,取N=5和二个示例多项式,此星号乘算给出(X4+2X2-3X+2)*(2X4+3X3+5X-1)=2X8+3X7+4X6+5X5-6X4+16X3-17X2+13X-2=2X3+3X2+4X+5X-6X4+16X3-17X2+13X-2=-6X4+18X3-14X2+17X+3〖一安全系统可采用例如N=167或N=263〗[此实施例采用带整数系数模的多项式的环,由所有XN-1的倍数组成的理想子环。较普遍地,可利用多项式模不同的理想子环,而更较普遍地,可采用某些其他环R。关于环和理想数的进一信息,可参考例如I.N.Herstein的Topics in Algebra。]本实施例的另一方面涉及简化多项式模整数、例如理想数q的系数。这基本上是意味着将各系数除以q并以其余数来代替此系数。例如,如果q=128和如果某些系数为2377,则该系数将以73代替,因为2377除以128等于18,余数为73。但采用“中心余数”更方便。这就是说,如果此余数在0与q/2之间,即不作处理,但如果它在q/2与q之间,则由其减去q。因而,利用对q=128的中心余数,2377将被一55所代替,因为-55=73-128。
为了指明这一余数处理正在进行,随同标记“mod q”使用一个三等号符号(≡)。下面为一将两个多项式的星号乘算与换算模5加以组合。答案用中心余数,(X4+2X2-3X+3)*(2X4+3X3+5X-1)=-6X4+18X3-14X2+17X+3=-X4-2X3+X2+2X-2(mod 5),在按照这里一实施例生成一公用密钥密码系统(并带有采用先前指出的为便于说明的小数)中,第一步是选择整数参数N、K、P和q。例如取,N=5,K=1,P=3,q=128。
〖一安全系统可利用例如N=167,K=6,P=3,q=216=65536〗最好P与q互为素数,即就是它们没有大于1的公因数。使理想数P和q成为互为素数的需要性的讨论被表示在附录1中。
某些多项式组可作如下选择Lg={系数为数个-2、-1、0、1、和2的多项式}Lφ={具有2个-1、2个1和1个0作为系数的多项式}Lm={系数为数个-1、0和1的多项式}〖一安全系统可利用例如Lg={系数在-177与177之间的多项式}Lφ={系数为40个1、40个-1、其余为0的多项式}Lm={系数在-1与3之间的多项式}(注这些多项式具有次数N-1,所以对此例的安全参数,此些多项式的次数为166。而且,被编码的实际消息m的系数被p除时(此例中P=3)该实际消息m由余数组成。)〗集Lg被用来为密码系统生成密钥,集Lφ用于编码消息,而集Lm是可能的消息集。例如,2X4-X3+X-2在集Lg中,和X4-X3-X2+1在集Lφ中。
为实现这一例的密钥生成,密钥生成器,称之为Dan,从集Lg选择两个多项式f和g。在此简化例中K=1,所存在有一个多项式g。假定该Dan选择f=X4-X3+2X2-2X+1g=X4-X3+X2-2X+2〖一安全系统可例如使用K+1个多项式f,g1,…gk∈Lg,K=6。〗这里的要求是f必须具有一反模q和一反模D。其意思就是必须有多项式Fq和Fp以使得Fq*f≡1(mod q)和Fp*f≡1(mod p)。
可利用公知的Euclidean算法来计算Fq和Fp。例如可参看附录Ⅱ。(有些f可能没有反量,在此情况下Dan将必须返回选择另一f)。对于上例f,可得到
Fq=103X4+29X3+116X2+79X+58Fp=2X4+2X为检查这是用于f的正确Fq,可作乘算Fq*5=(103X4+29X3+116X2+79X+58)*(X4-X3+2X2-2X+1)=256X4+256X-127≡1(mod 128)。
同样,为检查Fp是正确的,可作乘算Fp*f=(2X4+2X)*(X4-X3+2X2-2X+1)=6X3-6X2+6X-2≡1(mod3)。
现在密钥生成器Dan准备生成他的公用密钥,这是下式给出的多项式h,h≡fq*g(modq)〖一安全系统可使用例如K个多项式h1,…,hk,如下h1=Fg*gi(mod q),i=1,2,…k,K=60〗继续此例,Dan将计算Fq*g=(103X4+29X3+116X2+79X+58)*(X4-X3+X2-2X+2)=243X4-50X3+58X2+232X-98=-13X4-50X3+58X2-24X+30(mod128)。
这样Dan的公用密钥即是多项式h=-13X4-50X3+58X2-24X+30。
Dan的专用密钥为多项式对(f,Fp)。原理上,多项式f自身可以起到专用密钥的功用,因为Fp总能由f计算,但在实践中,Dan多半要预先计算和存放Fp。
在此例的下一部分,说明以此公用密钥进行编码。假定编码器,称之为Cathy,要使用他的公用密钥h发送消息给Dan。她由可能的消息集Lm选择一消息。例如,假定她想发送消息。
M=X4-X3+X2+1为对此消息编码,她从集Lφ随机地选择一多项多φ。例如她选择φ=-X4+X3-X2+1她使用这一随机选择的多项式φ、Dan的公用密钥h(以及p和g,它们是该公用密钥的部分)、和她的明文消息m以利用下式生成编码消息e≡pφ*h+m(mod q)〖一安全系统可使用k个公用密钥h1,…hk,对此安全例K=6。为对消息进行编码,Cathy可由集Lφ随机选择K个多项式φ1,…φK,然后通过计算e≡pφ1*h1+pφ2*h2+…+pφk*hk+m(mod q)生成被编程的消息。〗一替代方案是让h等于pFq*g(mod q),然后可利用公式e≡φ*h+m(mod q)来对消息进行编码。对于本实施例,Cathy计算pφ*h+m=3(-x4+x3-x2+1)*(-13x4-50x3+58x2-24x+30)+(x4-x3+x2+1)=-374x4+50x3+196x2-357x+487=10x4+50x3-60x2+27x-25(mod128)所以Cathy的编码消息为多项式e=10X4+50X3-60X2+27X-25她将此编码消息发送给Dan。
在此例的下一部分,说明使用此专用密钥进行译码。为对消息e进行译码,Dan首先使用他的专用密钥f计算多项式a≡f*e(mod q)。
对所使用的示例,他计算f*e=(x4-x3+2x2-2x+1)*(10x4+50x3-60x2+27x-25)=-262x4+259x3-124x2-13x+142=-6x4+3x3+4x2-13x+14(mod128),故多项式a即为a=-6X4+3X3+4X2-13X+14。下面,Dan使用Fp,他的专用密钥的另一半,来计算Fp*a(mod p),而结果就将是译码的消息。这样,对本示例Dan计算Fp*a=(2x4+2x)*(-6x4+3x3+4x2-13x+14)=34x4-4x3-20x2+36x-38=x4-x3+x2+1(mod3),对于译码工作的进一步说明可参看附录Ⅰ。
在本发明的又一实施例中,该环为一矩阵环。例如可利用环R=(具有整数系数的M×M矩阵的环)。
R的一元件如下所示
这里系数aij为整数。对于矩阵通常应用加算和乘算,将可理解,处理器处理矩阵单元以任何通常方式存贮和处理的数。假定N=M2,则R中的矩阵具有N个系数。选择互为素数的p和q。
在此情况下,为生成一专用密钥,Dan从R选择K+2个矩阵。这些矩阵可被称为f,g,W1,W2,…Wk。
这些矩阵应具有特性,即f、g、W1、…Wk均具有相当小的系数,而每一个Wi均满足
Wi≡0(mod p)。
(换言之,每一Wi的每个系数是P的倍数。)为生成他的密钥,Dan必须求得f和g模p和q的反量。这样,他求得R中的矩阵Fp、Fq、Gp、Gq满足fFp≡Ⅰ(mod p)fFq≡Ⅰ(mod q)gGq≡Ⅰ(mod p)gGq≡Ⅰ(mod q)其中Ⅰ为M×M全同矩阵。通常,这是很容易做的,而如果由于某种原因有一个反量不存在,Dan就要选择一新的f或g。
Dan的公用密钥是一系列由条件Hi≡FqWiGq(mod q)i=1,2,…k确定的K个矩阵(h1,h2,…hk)。(应指出这些W1、零对模P同余。)他的专用密钥是4个矩阵(f,g,Fp,Gp)。原则上,f和g可单独被用作为专用密钥,但实践中更有效的是预先计算和存贮Fp、Gp。
下面说明这一矩阵实例的编码。假定Cathy要编码一消息m。消息m是一带有系数模P的矩阵。为了编码她的消息,她随机选择满足某些条件的一些整数φ1,…φk,例如它们可被选择为其总和φ1+…+φk等于一预定值d的非负数整数。(应指出这些φi为普通整数,它们不是矩阵。同样地,它们可被看作为此同一矩阵的倍数,故它们将用环R的每一元素进行转换。)选择φi后,Cathy按下列规则生成其编码消息ee≡φ1h1+φ2h2+…+φkhk+m(mod q)下面说明这一矩阵实例的译码。现在假定Dan接收到此编码消息e并希望对之解密。他以计算满足a≡feg(mod q)的矩阵a开始。照常,Dan在某些受限范围内选择a的系数,例如从一q/2至q/2(即0为中心的系数),或由0至q-1。
如果参数选择适当,则矩阵a将准确地等于总和a=φ1W1+φ2W2+…φxWx+fmg.
(这将总是正确模,但关键点在于如果q足够大则它将是一确切的等式,而不仅仅模q。)Dan在下一步产生a模p,例如b≡a(mod p)。
由于这些Wi的所有系数均是可由p相除的,这就是说b≡fmg(mod p),最后Dan计算FpbGp(mod p)来恢复原始消息m。
所述M×M矩阵实施例具有优越的运算时间。译码仅需用加算和进行M2次运算。译码需要两个矩阵乘算M×M矩阵,故需进行M3次运算。消息长度约为M2,所以如果N指自然消息长度(即N=M2),则此矩阵实施例需要0(N)步来编码和(N3/2)步来译码。为进行比较,该多项式实施例需要0(N2)步来编码和0(N2)步来译码,且RSA公用密钥系统需要0(N3)步来编码和0(N3)步来译码。
初步分析认为,只有在此矩阵实施例上的自然格攻击需要使用大小为N2+N(或更大)的格。这将是对用来攻击多项式实施例的2N大小的格的显著的安全改善。
为避免强力的(或会聚于中心的)攻击,用于这些φi的取样空间就必须相当大,例如在2100与2200之间。但这不难达到。例如,如果这些φi被选择为具有总和d的非负数的,则此取样空间具有(d+K-1K-1)=(d+K-1)!d!(k-1)!]]>元素。所以如果取例如K=15和d=1024,则得到2103.8个元素的取样空间。
公用密钥大小为KM2Log2(q)位,而专用密钥大小为2M2Log2(pq)位。这二者均是实用的大小。
图2说明一公用密钥密码系统可采用的基本程序,并涉及由描述按照本发明一实施方案的特点的其他的引用流程图所说明的例行程序。框210表示公用密钥和专用密钥信息的生成,和此公用密钥的“公布”。这里的一实施例的例行程序结合图3的流程图加以说明。在本例中,可以假定这一操作是在处理器系统105进行的。公用密钥信息可加以公布,亦即,使得它可为专用密钥持有者希望由其接收被加密消息的任一公众或任何期望的团体所得到。一般,虽然并不一定,公用密钥可在一中央公用密钥库设施或保持有公用密钥持有者及其公用密钥的目录的网址上获得。在本示例中,假定处理器系统155的用户要发送一秘密消息给处理器系统105的用户,且处理器系统155的用户知道处理器系统150用户的已公布的公用密钥。
框240表示可由消息发送者(即此例中处理器系统155的用户)用来利用期望的消息接收者的公用密钥对明文消息进行编码的例行程序。按照本发明一实施例,此例行程序被结合图4的流程图加以说明。经加密的消息被通过信道50进行传送(图1)。
图2的框260表示为对此加密消息进行译码来复原明文消息的例行程序。在本示例中,这一功能由应用专用密钥信息的处理器系统105的用户执行。对本发明一实施例,此译码例行程序接合图5的流程图被加以说明。
现在参看图3,表明由图2的框210总地表示的为生成公用密钥和专用密钥的例行程序的流程图。在本例中此例行程序可被用于对处理器系统105的处理器110进行编程。框305表示整数参数N、P和q的选择。如以上最先说明的,N确定要生成的多项式f和gi的次数,而p和q则分别为在产生星号乘积中所用的二个理想数。框315表示要被使用的多项式gi的数量的K的选择。在上述简化例中K为1,并已指出一特定的示例的相对安全系统可采用K=6。接着,框325表示随机多项式f、g1、g2、…gk的选择。这些系数可利用例如一随机数发生器来选择,后者可以公知方式利用可得到的硬件或软件来实现。本实施例中,每一处理器系统均设置有分别在图1中框130和185指示的随机数发生器。
框340表示对前面选择的多项式f以上述方式应用Euclidean算法来确定反量,Fq和Fp,假如这些反量存在的话。如果Fp、Fq不存在,重新进入框325,选择一新的多项式f。循环330继续直至选择到可为之计算所规定的反量的多项式〔对一给定多项式存在有反量的概率是相当高的,所以在条件符合之前一般均可期望一相当小数量的通过循环330的经历。〕而后进入框350,此框表示按照h=Fq*g(mod q)的公用密钥h的计算,如以上最先说明的。〔对于K>1,将有公用密钥成分hi,i=1,2,…k。〕如框360中所表示的,专用密钥被保持作为多项式f、Fp,而后可公布公用密钥,如框370所表示的。
图4是一总地由图2中的框240表示的,用于编程一处理器例如处理器系统155(图1)的处理器160来实现对明文消息m的编码的例行程序的流程图。欲加编码的消息被输入(框420)并选择一随机多项式φ(框430)。[如果k>1,则选择K个随机多项式φ1,φ2…φk]。此多项式可如上述地来自集Lφ,且可任何硬件或软件手段例如随机数发生器185选择随机系数。然后可计算编码消息e(框450),e=pφ*h+m(mod q)如以上最先指出的,对于k>1,编码消息将为e=pφ1*h1+pφ2h2+…+pφkhk+m(mod q)。此编码消息可通过信道50被传送到在本示例中为处理器系统105的用户的密钥持有者(框460)。
图5为一总地由图2中框260所表示的,按照本发明一实施例的用于对经加密消息进行译码的例行程序的流程图。框530表示加密消息e的接收。提取包括先前定义的多项式f和Fp以及整数N、P和q的保存的专用密钥信息(框550)。接着,框570表示计算a≡f*e(mod q)然后可计算这里被指明为m’的译码消息(框580)m’≡Fp*a(mod p)。
图6、7和8为关于上述矩阵实施例的流程图,图6为由图2方框210总地表示的,用于生成公用和专用密钥的例行程序的流程图。如上述,此例行程序在本例中可被用来对处理器系统105的处理器110进行编程。方框605表示整数参数N、p和q的选择,其中N是矩阵系数的数量,p和q为互为素数的整数。框615表示K的选择,它确定矩阵数。下面,框625表示随机矩阵f、g、W1、W2、…Wk的选择,其要求是W1、W2…Wk、0对模P同余。随机数发生器130(图1)可被用作此目的。
框640表示早先定义的矩阵Fp、Fq、Gp和Gq的确定。如果这些矩阵不存在,重新进入框625,选择新的矩阵f和g。循环630继续直至选择到可对其计算所定义的反量的矩阵。而后进入框650,它表明公用密钥的计算,一系列由条件h1≡FqW1Gq(mod q),Ⅰ=1,2,…,k.所确定的K个矩阵(h1,h2,…hk)。如框660所表明的,专用密钥被保持作为矩阵(f,g,Fp,Gp)而后可公布公用密钥,如框670所表示的。
图7为由图2的框240总地表示的,用于对一处理器例如处理器系统155的处理器160(图1)进行编程以实现利用此矩阵实施例的技术对明文消息m进行编码的例行程序的流程图。输入欲加编码的消息(框720)和选择随机整数φ1、φ2…φk(框730)。可利用随机数发生器185(图1)选择这些整数。而后可计算编码消息e(框750)e≡φ1h1+φ2h2+…+φkhk+m(mod q).
可通过信道50将编码消息传送(框760)给本例中为处理器系统105的用户的密码持有者。
图8为图2中以框260总体表示的,用于按照本矩阵实施例对加密消息进行译码的例行程序流程图。框830表示接收加密消息e。提取被保持的包括早先定义的m、F、g、Fp、Gp以及整数N、p和q的专用密码信息(框850)。然后框870表示计算a≡feg(mod q)接着a被作模p换算到b(框880)b≡a(mod p)然后译码消息被计算(框890)为m’≡FpbGp(mod p)本发明已参照特定的优选实施例作了说明,但对本技术领域熟练人员将可能有在发明精神实质和范畴之内的变型。例如,将会理解,此公用或专用密钥可被存放在任何适合的媒体、例如一“智能卡”上,它可设置有能进行编码和/或译码从而使加密消息能被传送到和/或自此智能卡的微处理器。
NTRU基于环的公用密钥密码系统Jeffrey Hoffstein,Jill Pipher,Joseph H.Silverman摘要我们介绍NTRU,一种新的公用密钥密码系统。NTRU的特点在于相当短的、易于生成的密钥,高速度,和低存贮器需求。NTRU编码和译码采用由与基于基本概率论的聚合原理相组合的多项式代数提供的混合系统。此NTRU密码系统的安全性来自多项式混合系统与换算模二互为素数整数p和q的交互作用。
目录0、引言1、NTRU算法说明2、参数选择3、安全性分析4、实现依据5、用于NTRU的适度安全性参数6、与其他的PKCS的比较附录A.基本命题§0引言自从Diffie和Hellman[4]解释了如何能利用单值函数来生成有效的和计算上低廉的公用密钥密码系统以来在生成这样的系统方面已引起相当大的关注。当前,最广泛应用的公用密钥系统是RSA,它由Rivest、Shamir和Adelman在1978年[10]建立,并以提取大量数的因子的困难为基础。其他系统包括有,依靠于差错校正码的McEliece系统[9],和最近的Goldreich、Goldwasser、和Halevi系统[5],它以格换算问题的困难性为基础。
本文介绍一种新的公用密钥密码系统,我们称它为NTRU系统。编码过程采用一基于多项式代数和换算模二数P和q的混合系统,而译码过程则采用其有效性取决于基本概率论的分离系统。此NTRU公用密钥密码系统的安全性来自多项式混合系统与换算模p和q的独立性的交互作用。安全性还依赖于这样的(经验观察到的)事实,即对于大多数格,要求得极短的(与中等程度的短相比较)向量非常困难。
我们讲明,在此文中的表述在两个主要方向不同于一较早的广泛流传但未公布的未定稿本[7]。第一,我们已引入一可被用来产生具有更好的操作特性的系统的新参数K。第二,基于格的攻击的分析已主要根据通过电子邮件从Don Coppersmith、Johan Hastad、和Adi Shamir亲自接收到的和最新论文[3]中的大量解释已被阐述和澄清。在此表示对他们的参与和他们的帮助表示感谢。
NTRU适应[1]和[6]中所说明的概率密码系统的总体框架。这就意味着加密包括有一随机元素,所以各个消息具有许多可能的加密性。以NTRU进行编码和译码极为快速,而密钥生成快速和容易。参看4和5节的详细说明,而在此我们指出,为编码和译码一长度N的消息块,NTRU需要O(N2)次运算,使之大大快于RSA所需的O(N3)次运算。而且,NTRU密钥长度为O(N),这可很好地匹敌于其他“快速”公用密钥系统如[9,5]所需的O(N2)密钥长度很好的匹敌。
§1 NTRU算法说明§1.1符号NTRU密码系统取决于具有整数系数的N-1次多项式的4个整数参数(N、K、P、q)和3个集Lg、Lφ、Lm。我们以环R=Z[X]/(XN-1)工作。一元素F∈R被写成为一多项式或一向量,F=Σi=1NFixN-i=[F1,F2,...,FN].]]>我们写来指明R中的乘算。这一星号乘算明确地被给作为一循环卷积乘积FG=H,其中Hk=Σi=1k-1FiGk-i+Σj=kNFiGN+k-i=ΣFiGji+j=k(modN)]]>当我们作一乘算模(例如)q时,我们是指换算系数模q。
评述原则上,乘积FG的计算需要N2乘算。但是,对于由NTRU所用的典型乘积,F或G之一具有小系数,从而FG的计算非常快。另一方面,如果N取得很大,则采用快速傅里叶变换能较快地以0(NLogN)运算来计算乘积FG。§1.2密钥生成为生成NTRU密钥,Dan随机地选择K+1多项色f,g1,…gk∈Lg。多项式f必须满足附加的需要,即它具有反模q和模P。对于合适的参数选择,这对大多数f的选择将为真,而这些反量的实际计算利用Eucilidean算法的改型是很容易的。我们将以Fq和Fp标志这些反量,即就是Fqf≡1(modq)和Fqf≡1(modp)(1)接着Dan计算这些量hi≡Fqgi(modq),1≤i≤K.(2)Dan的公用密钥为多项式表(h1,h2,…hk)。
Dan的专用密钥为单一的多项式f,虽然在实际上他还将要存贮Fp。§1.3编码假定Cathy(编码器)要发送消息到Dan(译码器)。她以从明文Lm集选择一消息m开始。接着她随机地选择K个多项式φ1,…φk∈Lφ并利用Dan的公用密钥(h1,…hk)来计算e≡Σi=1kpφi⊗hi+m(modq)]]>这就是Cathy传送到Dan的编码消息。§1.4译码假定Dan已从Cathy处接收到消息e并希望利用他的专用密钥f对其译码。为有效地作到这一点,Dan应予先计算节1.1中说明的多项式Fp。
为译码e,Dan首先计算a≡fe(mod q),在此,它在从-q/2至q/2的间隙内选择系数a。现在处理a作为具有整数系数的多项式,Dan通过计算Fpa(mod p),恢复此消息。
评述对于适宜的参数值,此译码过程复原原始消息具有极高的概率。但某些参数选择可能造成偶然的译码的错误,故或许应在各消息块中包括几个检验位。通常的译码错误原因将是消息被不恰当地集中。在此情况下,Dan将能通过在一稍微不同的间隔例如由-q/2+x至q/2+x(x为某一小的正或负值)中选择a≡fe(modq)的系数来复原消息。如果无x值可行,则认为具有间断故障且消息不能容易地译码。对于选择良好的参数值,这一情况发生如此稀少以致实际上可加以忽略。§1.5译码处理说明。Dan计算的多项式a满足a≡f⊗e≡Σi=1kf⊗pφi⊗hi+f⊗m(modq)]]>≡Σi=1kf⊗pφi⊗Fq⊗gi+f⊗m(modq)]]>自(2),≡ΣI=1Kpφi⊗gi+f⊗m(modq)]]>自(1),考虑这一最后多项式ΣI=1kpφi⊗gi+f⊗m]]>对于适当的参数选择,可以保证(几乎总是)所有其系数均在-q/2与q/2之间,从而如果其系数为换算的模q它就不改变。这就意味着当Dan将fe modq的系数换算成从-q/2至q/2的间隔,即准确地复原此多项式a=Σi=1Kpφi⊗gi+f⊗m]]>在Z(X)/(XN-1)中换算a模p则给予多项式fm(modp),并通过Fp的乘算检索消息m(modp)。§2参数选择§2.1符号和范数估算。定义元素F∈R的宽为|F|∞=1≤i≤Nmax{Fi}-1≤i≤Nmin{Fi}]]>如符号提供的,这是一种R上的L∞范数。同样,通过|F|2=(Σi=1N(Fi-F-)2)1/2,]]>其中F-=1NΣi=1NFi]]>来定义R上的中心L2范数。(等效地,|F|2/N1/2为F的系数的标准偏差。)命题。对于任何ε>0,均存在取决于ε,N和K的常数C1,C2>0,从而使对随机选择的多项式F1,…Fk,G1,…Gk∈R,概率大于1-ε,它们满足c1=Σi=1K|Fi|2•|Gi|2≤|Σi=1KFi⊗Gi|∞≤c2Σi=1K|Fi|2•|Gi|2---(3)]]>自然,在如果比例C2/C对小ε为非常大时从实用观点出发,这一命题将是无用的。但是它证明即使对于中等大的N和K值及非常小的ε值,常数C1,C2也决不是过度的。已在大量情况下经验地证实这一点,并取得理论证明的概要。§2.2取样空间。作为一典型的取样空间示例,取Lg={g∈R:g具有-(r-1)/2与(r-1)/2(含)间的系数}Lφ={φ∈R:φ具有d个系数等于1,d个系数等于-1,其余为0}Lm={m∈R:m具有-(s-1)/2与(s-1)/2(含)间的系数}稍后将看到存在有各种r、d、s必须满足的约束以便实现安全性。还注意到每一φ∈Lφ具有L2范数|φ|2=(2d)1/2,而平均元素g∈Lg和m∈Lm分别具有L2范数|g|2=(N(r2-1)/12)1/2和|m|2=(N(S2-1)/12)1/2。为简化符号,对元素Lg、Lφ、Lm的平均L2范数分别写为Lg、Lφ、Lm。
虽然不是严格必须,这里将作出附加的假设即Lm≈pLφ。这种假设将使得较易于分析可能的格攻击,以及使得这样的攻击无效。作为一例假定d≈N/4,并取S≈(6P)1/2。所以包含在m中的自然模P信息就必须通过随机地加和减P到m的系数来被“加厚”。§2.3译码准则。如§1.5中所述,只要|∑pφigi+fm|<q,Dan就将能对编码消息m译码。可以利用以上命题的不等式(3)(以K+1代替K和一适当小的选择ε)来估算Σi=1Kpφi⊗gi+f⊗m|∞≤c2Σi=1Kp|φi|2•|gi|2+|f|2•|m|2]]>≈c2Lg(KpLφ+Lm)≈c2pLgLφ(K+1)使用假设Lm≈pLφ。因而为了译码(带有概率1-ε),Dan必须选择参数满足译码约束c2pLgLφ(K+1)<q(4)§3.安全分析§3.1会聚中央的攻击。为简单起见(并协助攻击者)假定k=1,故编码消息成为象(30)。Andrew Odlybko已指出存在一种能用来针对φ的会聚中央的攻击,而我们观察到一还加到专用密钥f的类似的攻击。大致上说,将f对半分,例如f=f1+f2,然后针对-f2e匹配f1e,寻求(f1,f2)从而使对应系数具有近似相同的值。因此为获得(例如)280的密级,必须从包含2160左右个元素的集选择f、g和φ。§3.2多重传送攻击。仍然为简单而假定K=1。观察到,如果Cathy使用同一公用密钥但不同的随机φ来发送单一消息m数次,则攻击者Betty将能复原此消息的很大部分。大致上说,假定Cathy发送ei≡φih+m(mod q),i=1,2…r,则Betty能计算(ei-e1)h-1(mod q),由此来复原φ1-φ1(modq),然而,这些φ的系数是如此小使她能准确地恢复φi-φ1,并由此准确复原许多φ1的系数。如果r恰恰是中等大小(例如4或5),Betty将复原足够的φ1以能通过蛮力测验所有的可能性,由此来复原m。这样,如无对基本消息的某种进一步的扰码措施多次传送是不明智的。应指出即使Betty这样来对一单个消息译码,这一信息也将无助于她译码任何进一步的消息。§3.3基于格的攻击我们以数句有关格换算的话开始。格换算的目的是要在一给定的格中找到一或数个“小”向量。理论上,通过彻底的搜寻可能找到M中的最小向量,但实际上如果M的尺寸很大这是不可能的。Lenstra-Lenstra-Lovasz[8]的LLL算法,具有由于Schnorr[11、12]等的各种改进,将发现多项式中M的小向量,但对于大(例如≥100)的尺寸的大多数格将不会找到最小向量,而最小LLL可确定向量与实际最小向量之间的间隔显现为随其尺寸作指数增长。为了从格攻击出发说明NTRU安全性,考虑以下三种有关大尺寸格的假设(H1)对于大多数格M,M的最小非零向量的长度σ(M)满足dim(M)2πeDisc(M)1/dim(M)≤σ(M)≤dim(M)πeDisc(M)1/dim(M)]]>因此,如果V∈M满足|v|≥dim(M)πeDisc(M)1/dim(M),]]>则V就将隐匿在一团接近同样长度的按指数律的许多向量模混之中。
(H2)假定格M具有一小于(H1)所述的最短预期向量的向量,但M另外还是一“随机”格。如果满足|W|>k-dim(M)dim(M)πeDisc(M)1/dim(M),]]>则格换算多半不能发现W。(H3)假定在(H2)的情况。则由格换算方法计算的最小非零向量VLLL几乎肯定满足|VLLL|≥kdim(M)|W|评述在假设(H2)和(H3)中出现的格换算常数K必须由试验和经验来确定。这类似于RSA PKCS的情况,在此,安全性依赖于估算因子分解积pq的当前概率。它甚至更接近类似于[5]中所说明的PKCS,其安全性直接关联到发现格的小的(几乎作正交的)基线的困难。用大(≥100)尺寸的格的试验表明可以取K=1.51/100。(例如可见[11]和[12]。)正如因数分解中的未来进展那样将需要使用RSAPKCS中的较大的素数,这样格换算中的未来进展无疑将需要采用较小的K值和NTRU中的相应地较大的参数。也要说明,对于尺寸大于700的格仅需要假设(H2)和(H3)。对这样高尺寸的格,即使以Schnorr的块换算改善的LLL算法也需要相当长的时间。如果愿意对尺寸约300的格采用假设(H2)和(H3),就可以选择具有更佳运行特性的NTRU参数。§3.3.1对密钥f的小格攻击。以多半会可能的最自然格开始,即取任何一个hi并搜索具有hif(mod q)也很小的性质的小向量f。为此,写成hi=[hi1…hiN]并考虑由以下矩阵的列所生成的格M
为了未来标准方便,将矩阵写成
量λ由攻击者为优化攻击而选择。观察到M满足dim(M)=2N和Disc(M)=λNqN有二方面要考虑。首先是包含在M中作为短向量的实际密钥f。应注意M含有目标向量Vtarg=[λfN,…,λf1,gi1,…,giN],并了解Vtarg将能复原f。但我们可计算Vtarg的长度为|vtarg|2=|λf|22+|gi|22=Lgλ2+1]]>假设(H1)表明如果|Vtarg|2满足不等式|vtarg|2≥dim(M)πeDisc(M)1/dim(M)=2Nλqπe]]>则f对攻击就是安全的。换句话说,必须有Lgλ+λ-1≥2Nqπe]]>由攻击者的观点看可任选的λ为λ=1(见Lemma A.1),因为她想最小化左手边。所以只要q≤πeLg2N---(5)]]>即是安全的。第二个考虑是M中是否有一另外的小向量可使攻击者能译码消息。这样,任一小向量[f’,g’]∈M具有性质,即f’和hif’≡g’(modq)两者均很小。但如果攻击者计算e⊗f1≡Σj=1kpφi⊗hj⊗f1+m⊗f1(modq),]]>只有带j=1的项将具有小系数模q。因此一使得一单个hi小的f’将不会作用为一译码密钥。这提示我们同时注意所有的hj,它们将我引到下一格。§3.3.2对密钥f的大格攻击。不是仅采用一个hi,攻击者可代之以使用hi的某一子集来形成一个格。再行进行标注,将假定攻击者采用h1…hk,1≤k≤K,并以矩阵
的列形成格M。(我们利用前节的缩写符号。)这一格满足dim(M)=(k+1)N和Disc(M)=λNqkN.它含有目标向量(采用明显的简写)Vtarg=[λf1,g1,g2,…,gk](更精确地,f的座标必须倒转。)这一目标向量具有长度|vtarg|2=|λf|22+|gl|22+...|gk|22=Lgλ2+k]]>假设(H2)认为格换算将不可能发现Vtarg,只要其长度满足|vtarg|2≥k-dim(M)dim(M)πeDisc(M)1/dim(M)]]>=k-(k+1)N(k+1)Nπe·λ1/(k+1)qk/(k+1).]]>所以对于攻击是安全的,只要Lgλ2k/(k+1)+kλ-2/(k+1)≥k-(k+1)N(k+1)Nπeqk/(k+1)]]>如前,攻击者将选择λ来使左手边最小。再次成为λ=1给出最小值(见Lemma A.1),所以在假设(H2)情况下实际密钥将是安全的只要qk1(k+1)≤k(k+1)NLgπeN]]>§3.3.3对乱真密钥f的大格攻击。不是搜索真正的密钥f,攻击者可能试图搜找到某另一起译码密钥作用的密钥F。为了有一乱真的密钥,F自身和每一个乘积hjF(modq)必须很小。更精确地说,假定攻击者发现F并计算Gj≡hjF(mod q)j=1,2,…,K.我们想知道一表达式φ1G1+φ2G2+…+φKGK+mF的宽度(L∞范数)一般对某一卷解因数W至少为Wq。(在节4中将讨论为了系统的安全W必须多大的问题。)为试着寻找一乱真密钥F,攻击者将取节3.3.2中描述的格M并利用格换算技术来找到一小向量VLLL。M中的最小非零向量为向量Vtarg=[λf,g1,…gk],故假设(H3)表明
|VLLL|2≥k(K+1)N|vtarg|2.写VLLL=[λF,G1,G2…Gk],找到λ2|F|22+|G1|22+...+|Gk|22≥k(k+1)NLgλ2+K.]]>由格换算得到的向量VLLL将具有其大小或多或少被随机分布的组分。特别是,所有的长度|λF|2,|G1|2,…|GK|2将近似相同,因而得到(近似地)|λF|2,|G1|2,…,|GK|2≥k(K+1)NLg.另一方面,可利用这和(3)来估算|φ1G1+φ2G2+…+φKGK+mF|∞≥c1(|φ1|2·|G1|2+…+|φK|2·|GK|2+|m|2·|F|2)=c1Lφ(|G1|2+…+|GK|2+|F|2)≥c1(K+1)LφLgk(K+1)N.所以此乱真密钥利用卷解因数W将会失败,只要选择参数满足Wq≤c1(K+1)LφLgk(K+1)N.(7)(这可与译码不等式(4)相比较。)§3.3.4对个别消息的大格攻击。有另一类必须考虑的格攻击。不寻找一对每一消息译码的密钥,攻击者可构成一个格来搜索个别消息。考虑如下的类似于节3.3.2中所用的一个格。假定M为矩阵
的列所生成的格。此格满足dim(M)=(K+1)N和Disc=λKNqN并含有(采用明显的符号的)该向量[λφ1,λφ2,…λφk,e-m]. (8)它含有这一向量因为编码消息e的构成是按照规则pφ1h1+pφ2h2+…+pφKhK+m=e(mod q).显然(8)不象为一短向量,因为e-m(mod q)的系数将不很小。但攻击者知道e的值,所以她能寻找M中的一接近已知非格向量
的向量。与被寻找的格向量和已知非格向量的距离为此向量的长度vtarg=[λφ1,λφ2,…λφK,-m].这是一非齐次格问题的示例。非齐次问题趋向于有点难于齐次问题,但使在警告方面出现差错,假定攻击者能解决非齐次问题到与它能解决齐次问题严格相同的程度。所以必须看攻击者能否找到一长度为|vtarg|2=LφKλ2+p2.]]>的向量。(应记住,对每一m∈Lm和每一φ∈Lφ,|m|2=P|φ|2)按照假设(H2),只要|vtarg|≥k-dim(M)dim(M)πeDisc(M)1/dim(M),]]>攻击就将失败,或者换句话说,如果LφKλ2/(k+1)+p2λ-2K/(K+1)≥k-(K+1)N(K+1)Nπeq1/(K+1)]]>攻击者将通过取λ=p(见Lemma A.1)来使左手边最小,所以攻击将失败,只要q1/(K+1)≤k(K+1)NLφπeNp1/(K+1).---(9)]]>这可与它补充的(6)相比拟。§3.3.5格攻击参数约束的概括。在本节的前面部分已经说明了各种格攻击和设想的对防止这些攻击得呈的参数的约束。余下的问题是是否存在着满足所有约束的参数的任何选择。为了阅读方便,在此列出了来自这一节的所有不等式,连同一齐的是如果真正密钥f的所有者要能译码消息时所需要的基本不等式(4),
c2pLgLφ(K+1)<q. (4)q≤πeLg2N.---(5)]]>qk(k+1)≤k(k+1)LgπeNy1≤k≤K.--(6k)]]>Wq≤c1(K+1)LφLgk(K+1)N(7)q1/(K+1)≤k(K+1)NLφπeNp1/(K+1).---(9)]]>我们观察到,对于任一固定的值C1,C2,P,Lφ>0和p,K,W>1,对这些不等式总存在着解N、K、Lg,q。现在作一新的解释来帮助求解。开始以不同方法组合这些不等式。首先组合(4)和(7)得到(在一些代数之后)(K+1)N≥log(c1-1c2pW)logk.---(10)]]>应注意,在选择C1,C2和K上(基本)没有自由度,而W将在5与10之间根据所要求的安全性来选择。在此剩下的是正常为相当小的P的选择。这里要点在于(10)给出在其上能作非常小的控制的(k+1)N的边界。接着组合(4)和(5)来得到Lg>c2p(K+1)NπeLφ.---(11)]]>为在选择q上具有某种灵活性,最好取Lg大于这一所述下边界(例如)1.5~2倍。
例如,如果Lφ和Lg为如节2.2中所述,则Lφ=(2d)1/2和大多数g∈Lg满足|g|2≈Lg=(N(r2-1)/12)1/2。所在利用(11)选择Lg之后,可取r=[Lg(12/N)1/2],而后大部分g∈Lg将具有非常接近所希望Lg的L2范数。而且,由于代码生成器Dan为唯一从Lg选择元素的,并由于这些选择仅需作出一次,所以以范数近似的L。将不难求出L。中所需的K+1个多项式;且即使带有长度限制,Lg中这样的多项式的数量远远大于一攻击者能通过详尽搜索进行检查的数量,因为在实际上rN趋向于至少为25000。§4实现依据§4.1安全性和卷解因数。回想卷解因数W控制攻击者在其利用由格换算所产生的乱真密钥时所能期望的多少个卷解。如果W太小例如W=1.5,则攻击者将能复原许多(其至可能大多数的)系数,因为它们的值倾向于围绕平均值聚集。更确切地说,攻击者将对于N个未知系数复原(例如)0.95N线性方程,然后强力搜索完成攻击。
Coppersmith和Shamir[3]观察到即使W稍许大于此,例如说W=2.5,则聚集使得攻击者能得到对于N未知数的接近0.67N线性方程。然后它们观察到如果则者构成二独立的乱真密钥和应用它们,她可得到足够多的独立方程来解决它们。它们进一步指出,如果W=4,则使用数个短向量可能使得攻击通过采用某种纠错技术能获得成功,但如果W大至10,则这类攻击将不能成功。欲知细节可参看[3]。
根据这些考虑,我们将使用一卷解因数W=10来构成取样操作参数。§4.2取样运行参数。在这一节研究两个可用于NTRU PKCS的参数集,其在节3的假设下是安全的。这些参数集导致相当大的消息扩张,读者可参照下面节4.3将消息扩张换算到可管理的2-1的2级NTRU方案。
以三个由试验证明强加于我们上的值和一被选择来保证足够的卷解来击退一乱真的密钥攻击的第四值来开始c1=0.08,c2=0.24,W=10 k=1.51/100≈1.0040628823.值C1和C2已经由所希望范围内的广泛的数值试验所决定;但我们也有对如何给它们一概率上的理由上的一相当好的主意。卷解因数W=10已在上面节4.1中讨论。最后,格换算常数K的选择已在节3.3的评述中讨论,虽然为预防格换算技术中未来的改进,安全性意识的用户可利用其他参数中的微小变化代之以取K=1.31/100。
首先考虑选择P=2。由节3.3.5的不等式(10)得知必须取(K+1)N≥1009.79,N=167和K=6.故将N=167及K=6(合宜但不一定需要的是使N与(N-1)/2都为素数)。这一选择将提供为选择其余的系数的充分余地。)如节2.2中那样取d=20的Lφ,所以#Lφ=167!/20!·20!·127!≈2165.85,这将提供针对集聚到中心的攻击的足够的安全性。而且,Lφ=(2d)1/2≈6.325,和将这些选择替代进(11)给出Lg>414.07。为提供某些余地,取r=167,使得所期望的Lg值等于622.98。最后,节3.3.5中的5个基本不等式表明q必须满足213.6924<q≤max{214.2766,214.7278,214.6238,252.481},(自然,节3.3.5中的不等式(6k))实际上为6个不等式,每一个用于1≤k≤6。)这样可取q=214-1=16383。(应指出需要gcd(p,q)=1)。为扼要说明,采用节3.3的假设,下列参数给出一安全的NTRU PKCSN=167,K=6,q=16383=214-1,p=2,r=167,d=20,s=3其中集Lφ、Lg、Lm被如节2.2中所述加以选择。对于这些参数,具有公用密钥长度=Nklog2q=14028位专用密钥长度=Nlog2pr=1400位消息扩展=log q/1og p=14比1。利用类似分析,构成一第二组带有一较大P值的安全NTRU参数。这些参数看来很好地适应当前的微处理器,因为所有运算都对小于216的数,而q是2的幂,故带有余数的被q所除是一简单的移位运算。取N=167,K=6,Q=216,P=3,R=354,D=40,S=7。这些参数给出#Lφ=167!/40!·40!·87!≈2239.3,和公用密钥长度=Nklog2q=16032位专用密钥长度=Nlog2pr=1678位消息扩展=log q/1og p=10.1比1。§4.3二级NTRU和改进的消息扩展。用于第4.2中表明的取样参数的NTRU PKCS具有较大的消息扩展。为降低这一扩展的一个方法是利用较大的P值,但这导致相当大的(K+1)N值,这又增加两个密钥的大小和减少计算效率。
另一种降低消息扩展的方法是利用各NTRU消息作为一种为编码实际消息的一次装填。在此NTRU的二级方案中,编码器Cathy选择一随机多项式m∈Lm,而她的实际明文消息M被容许是任何多项式模q。为译码她的消息,她计算二个量c=Σi=1Kpφ2⊗h1+m(modq)]]>和E=mh1+M(mod q).编码消息是(e,E)对。
此译码过程与前类似,但带有一额外步骤。这样译码器Dan跟随节1.4中所述过程来计算多项式m。然后通过计算E-mh1(mod q).
来复原消息。观察到,明文消息M具有长度Nlog2q位,而编码消息(e,E)具有长度2Nlog2q位,故消息扩张被降至2比1。
进一步评述Cathy应用同样的多项式和模来编码m和M。我们不认为这会牺牲安全性,但为增加安全性她可以对不同的(公用)多项式H和模Q计算E≡mH+M(mod q)。§4.4理论运算说明。在这一节考虑NTRU PKCS的理论运算特性。存在有4个整数参数(N,K,P,q),3个如节2.2中说明的分别由整数r,d,s所确定的集Lg、Lφ、Lm,3个试验确定的常数C1、C2、K,和一卷解常数W。为保证安全性,必须选择这些参数来满足节3.3.5中所列举的不等式。下表概括以这些参数表明的NTRU PKCS运算特性明文块Nlog2p位编码文块 Nlog2q位编码速度 O(KN2)次运算译码速度 O(N2)次运算消息扩展 logpq比1专用密钥长度 Nlog2pr位公用密钥长度 Knlog2q位·准确说4KN2加算和带余数的以q作的KN除算。
对如节4.4中所述的2级NTRU。以下项改变明文块 Nlog2q位编码文块Nlog2q位消息扩展2比1§4.5其他实现依据。粗略说明一些在实现NTRU时应予考虑的附加因数。(1)gcd(q,p)=1很重要。虽然原理上NTRU工作将无需这种要求,但实践中如gcd(q,p)>1将降低安全性。在极限范围,如果p|q,则(试验)编码消息e满足e≡m(modp)所以它完全不可靠。(2)希望大多数f具有反模p和模q,因为否则将难以生成密钥。第一需要的要求是gcd(f(1),pq)=1,但如果对某些所选择f这一点未达到,则代码生成器可代之以使用例如f(X)+1或f(X)-1。假定gcd(f(1),pq)=1,如果取N为素数并要求对每一素数P除以p和q,(Z/NZ)*中P的阶很大,例如N-1或(N-1)/2,实际上所有f将具有所需的反量。例如,如果(N-1)/2本身为素数(即N是一Sophie Germain素数)这将肯定是真。这样的素数的例子包括107和167。§5用于NTRU的适度安全参数现实上有许多情况其中高速和/或低存贮器要求是重要的且中等水平的安全是可接收的。在这种意义上,我们观察到实际格换算方法[11、12]为极端地CPU紧张的,且实践中需耗费很大的计算机时间来对尺寸200到300的格进行格换算。自然,这里的“很大“是相对术语,但或许不值得进行300维次的格换算去挪用值得的百分之几,而利用当前的方法在一短时间期间(例如数秒)内进行这样的格换算将非常昂贵(即是不是完全不可能的)。因此是值得生成可被用在要允许大尺寸格攻击的概率的情况下的一组NTRU的参数。
如果除去出自格攻击的参数约束,这里仅余下译码约束c2pLgLφ(K+1)<q(4)和用于f,g和φ的搜索空间足够大来防止强力(或者可能的聚合于中央的)攻击的条件。为了简化,将取K=1,将所有f,g,φ取为在集Lφ中,此集为带有d系数等于1、d系数等于-1和其他N-2d系数等于0的多项式集。(更确切地说,因为必须f为可反的模p和q,将取f具有一额外的1系数,但这将对随的分析具有微小的影响,故将忽略它。)如通常采用C2=0.24,译码约束简单地变成为q>2pd(4)其他约束是(d;d;N-2dN)=N!(d!)2(N-2d)!≥22a,]]>其中σ是所希望的密级。应指出,对于中度安全性实现,约240的密级一般足够,所以将取σ≈40。
下表给出对NTRU的一中度安全性实现的一些可接受的运算参数。在评估安全性中,应指出,可行的格攻击采用一2N维的格。还应指出,列举的q值是所允许的最小值,但满足gcd(p,q)=1的稍大的q是可接受的。特别是,取q=64可能作特别快的实现。
最后,观察到密钥的长度非常小公用密钥Nlog2(q)位专用密钥2Nlog2(p)位例如,(N,d,p,q)=(167,7,3,64)给出一带有公用和专用密钥长度分别为1002位和530位的系统。§6与其他PKCS的比较当前文献中存在有许多公用密钥密码系统,包括根据提取因子的困难的Rivest、Shamir和Adelman(RSA[10])的系统;基于纠错码的McEliece[9]的系统,和基于在格中发现短的几乎正交的基线(base)的困难的Goldreich、Goldwasser和Hatevi(GGH[5])的最近的系统。
此NTRU系统具有一些与McElieve系统共同的特点,其中,环R中的乘算可公式化成为矩阵的乘算(特殊类型的),和然后双方系统中的编码可被写成为矩阵乘算E=AX+Y,这里A为公用密钥。二系统间的微小差别是,对NTRU编码,Y为消息和X是一随机向量,而McEliece系统则反转这些赋值。但真正的差异是允许译码的基础陷井门。对于McEliece系统,矩阵A关连到纠错(Goppa)码和译码工作,因为随机分布很小足以被Goppa码“纠正“。对于NTRU矩阵A为一循环距阵,且译码决定于连同一来自模q到模p的提升一齐的A的分解成具有特殊形式的一矩阵的乘积。
我们所能说的是,NTRU系统与RSA系统的共同点很少。同样,虽然NTRU系统必需被建立来防止格还原攻击,其基本译码方法与译码是根据对小格基线的了解的GGH系统则非常不同。在这方面,GGH实际上相似于McEliece系统,因为在此二情况下译码均是依靠识别和消除一小随机作用进行的。与此相对照,NTRU通过可分性(即同余)依据消除大得多的随机作用。
下表对RSA、McEliece、GGH和NTRU密码系统的一些理论运算特征加以比较。各情况中数N表示一固有安全性消息长度参数。<
附录A 基本命题(LemmA)以下结果可用于优化格攻击。Lemma A.1对于所有A,B,α,β≥0,α+β=1infx>0Ax&alpha;+Bx-&beta;=A&beta;B&alpha;&alpha;&alpha;&beta;&beta;,]]>其中,下确界发生在x=βB/αA时。证明设f(x)=Axα+Bx-β.Then f′(x)=αAxα-1-βBx-β-1=xβ+1(αAx-βB).。所以绝对最小值在x=βB/αA。(注f(x)→∞如x→0+和x→∞。)参考文献1、M·布卢姆,S·戈德瓦塞尔,一种隐藏全部部分信息的有效的概率公用密钥加密方案,密码的改进CRYPTO84的进程,计算机科学中的讲义笔记,196卷,斯普林格一韦拉格,1985年,289-299页。(M.Blum,S.Goldwasser,An effcient probabilistic public-keyencryption scheme which hides all partial information,Advance inCryptology:Proceedings of CRYPTO 84,Lecture Notes in ComputerScience,vol.196,Springer-Verlag,1985,pp.289-299。)2、H·科亨,计算代数数论中的过程,数学中的分度文本,138卷,斯普林格一韦拉格,柏林,1993年。(H.Cohen,A course incomputational algebraic number theory,Graduate Texts in Math.,vol.138,Springer Verlag,Berlin,1993.)3、D·科伯史密斯,A·沙米尔,NTRU上的格攻击,预印本,1997年4月5日;在欧洲密码97介绍的。(D.Coppersmith,A.Shamir,Lattice attacks on NTRU,Preprint,April 5,1997;presented at Eurocrypt97.)4、W-迪菲,M·E·赫尔曼,密码学中的新方向,有关信息理论的IEEE翻译22(1976年),644-654页。(W.Diffie,M.E.Hellman,New directions in cryptography,IEEE Trans.on Information Theory22(1976),644-654.)5、O·戈德赖希,S·戈德瓦塞尔,S·哈勒维,自格减少问题的公共密钥密码系统,MIT一计算机科学预印本的实验室,1996年11月。(O.Goldreich,S.Goldwasser,S.Halevi,Public-key cryptosystems fromlattice reduction problems,MIT-Laboratory for Computer Sciencepreprint,November 1996.)6、S·戈德瓦塞尔和A·米卡利,概率加密,J.计算机和系统科学28(1984年),270-299页。(S.Goldwasser and A.Micali,Probabilisticencryption,J.Computer and Systems Science 28(1984),270-299.)7、J·霍夫施泰因,J·皮弗,J·H·西尔弗曼,NTRU一种新的高速公用密钥密码系统,预印本,在密码96的残余议会会议上介绍的。(J.Hoffstein,J.Pipher,J.H.Silverman,NTRU:A new high speedpublic key cryptosystem,Preprint;presented at the rump session of Crypto96.)8、A·K·伦斯察,H·W·伦斯察,L·勒夫兹,因式分解带有多项式系数的多项式,马.安纳伦261(1982年),515-534页。(A.K.Lenstra,H.W.Lenstra,L.Lovsz,Factoring polynomials withpolynomial coefficients,Math.Annalen 261(1982),515-534.)9、R·J·麦克利斯,一种基于代数编码理论的公用密钥密码系统,JPL帕萨德纳,DSN进度报告42-44(1978年),114-116页。(R.J.McEliece,A public-key cryptosystem based on algebraic codingtheory,JPL Pasadena,DSN Progress Reports 42-44(1978),114-116.)10、R·L·里韦斯特,A·沙米尔,L·阿德曼,一种用于获得数字特征的方法和公用密钥密码系统,ACM的通信2l(1978年),120-126。(R.L.Rivest,A.Shamir,L.Adleman,A method for obtaining digitalsignatures and public key cryptosystems,Communicationa of the ACM21(1978),120-126.)11、C·P·施诺尔,块减少的格基和连续的最小数,组合的,概率和计算3(1994年),507-522页。(C.P.Schnorr,Block reduced latticebases and successiue minima,Combinatories,Probability and Computing3(1994),507-522.)12、C·P·施诺尔,H·H·赫尔纳,通过改进的格减少攻击查尔·里韦斯特密码系统,欧洲密码1995会刊,计算机科学中讲义笔记921,斯普林格-韦拉格,1995年,1-12页。(C.P.Schnorr,H.H.Hoemer,Attacking the Chor Rivest cryptosystem by improved lattice reduction,Proc.EUROCRYPT 1995,Lecture Notes in Computer Science 921,Springer-Verlag,1995,pp1-12.)13、D·斯廷森,密码学,理论和实践,CRC出版社,博卡拉顿,1995年。(D.Stinson,Cryptography,Theory and Practice,CRC Press,Boca Raton,1995.)
权利要求
1.用于编码和译码数字消息的方法,包括步骤选择环R的理想数p和q;生成环R的元素f和g,并生成作为f(mod q)的反量的元素Fq,和生成作为f(mod p)的反量的元素Fp;产生包括有h的公用密钥,其中h、使用g和Fq推导的积对mod q同余产生一能由其推导f和Fp的专用密钥;通过使用公用密钥和一随机元素φ对消息m进行编码来产生编码的消息e;和通过使用此专用密钥对编码消息e进行译码以产生译码消息。
2.按权利要求1所述方法,其中所述环R为一环Z上的模。
3.按权利要求1所述方法,其中Z上R的尺寸为N,这里N是大于1的整数。
4.按权利要求3所述方法,其中环R是多项式模一特定多项式的环。
5.按权利要求1所述方法,其中所述生成元素的步骤还包括生成是g(mod q)的反量的元素Gq,和生成是g(mod p)的反量的元素Gp。
6.权利要求5所述方法,其中所述元素Gq被用于所述公用密钥的推导中且所述元素Gp为所述专用密钥的部分。
7.权利要求1所述方法,其中所述选择步骤还包括选择一正整数k,且其中所述元素g包括各自的gi,其中i=1,2,…k,且其中所述公用密钥h包括各自的hi,其中i=1,2,…k。
8.权利要求7所述方法,其中所述随机元素φ包括理想数p中的各自φi,i=1,2,…k,和所述编码消息被产生作为e&equiv;&Sigma;i=1x&phi;i*hi+m(modq).]]>
9.权利要求1所述方法,其中所述公用和专用密钥各自还包括有p和q。
10.权利要求1所述方法,其中所述理想数p和q由互为素数的整数生成。
11.权利要求10所述方法,其中编码消息e、消息m与包括有φ和h的积的总和对mod q同余。
12.权利要求10所述方法,其中所述整数p和q是不相等的,且p和q两者都大于1。
13.权利要求1所述方法,其中所述编码消息,由一地点的用户产生,由所述一地点传送到另一地点,并被所述另一地点的用户译码。
14.用于编码和译码数字消息m的方法,包括步骤选择整数p和q;生成多项式f和g;确定反量Fq和Fp,其中Fq*f≡1(mod q),Fp*f≡1(mod p);产生包括有P、q、h的公用密钥,其中h≡Fq*g(mod q);产生包括有f和Fp的专用密钥;通过使用专用密钥和一随机元素φ对消息m编码而产生编码的消息e;和通过使用此专用密钥对编码消息e译码而产生译码消息。
15.权利要求14所述方法,其中所述编码消息e被产生作为e≡pφ*h+m(mod q)
16.权利要求15所述方法,其中所述译码消息通过计算a≡f*e(mod q)且然后计算此译码消息m’作为m’≡Fp*a(mod p)来产生。
17.权利要求14所述方法,其中所述生成多项式f和g的步骤包括选择一正整数k并生成多项式g作为g1、g2、…gk,且其中所述公用密钥包括h1、h2…hk,其中hi=Fq*gi(mod q),i=1,2…k。
18.权利要求17所述方法,其中所述编码消息e被生成作为e≡pφ1*h1+pφ2*h2+…+Pφk*hk+m(nod q)其中,φ1、φ2、…φk为k个多项式。
19.权利要求14所述方法,其中所述编码消息由一地点的用户产生,由所述一地点传送到另一地点,并被所述另一地点的用户译码。
20.权利要求14所述方法,其中选择一首一多项式M(X)并通过首先进行多项式的普通乘算和然后以M(X)除此结果并仅保存余数来完成多项式的乘算。
21.权利要求14所述方法,其中选择非零整数N并通过换算指数模N来完成多项式乘算。
22.权利要求14所述方法,其中所述多项式f、g、m和φ必须具有有界系数。
23.权利要求要求22所述方法,其中所述整数q被选择得小于由所述整数p,所述多项式f、g、m和φ的次数,和对所述f、g、m和φ的系数的所述约束所决定的量。
24.权利要求22所述方法,其中所述整数q被选择得大于一由所述整数p,所述多项式f、g、m和φ的次数,和对所述多项式f、g、m和φ的系数的所述约束所决定的量。
25.用于编码和译码数字消息的方法,包括步骤选择互为素数的整数p和q;选择一非零整数k;从一具有整数系数的矩阵环产生K+2个矩阵f、g、w1、w2、…wk,其中wi≡φ(mod p),i=1,2,…k;从所述矩阵环产生反矩阵Fp、Fq、Gp和Gq,其中fFp≡Ⅰ(mod p)fFq≡Ⅰ(mod q)gGp≡Ⅰ(mod p)gGq≡Ⅰ(mod q)这里,Ⅰ为一识别矩阵;产生一公用密钥作为一系列k个矩阵(h1,h2,…hk),其中hi≡FqWiGq(mod q),i=1,2,…k;产生一专用密钥作为矩阵(f、g、Fp,Gp);通过使用专用密钥和随机整数φ1、φ2、…、φk作为e=φ1h1+φ2h2+…+φkhk+m(mod q);和通过计算a≡feg(mod q)和b≡a(mod p)然后计算译码消息作为m’≡FpbGp(mod p)来产生译码消息m’。
26.权利要求25所述方法,其中所述编码消息通过在一地点的用户产生,从所述一地点传送到另一地点,并通过在所述另一地点的用户被译码。
27.权利要求25所述方法,其中所述矩阵W1、W2、…Wk、f、g和m必须具有有界系数且整数φ1、φ2、…φk被约束为有界的。
28.权利要求27所述方法,其中所述整数q被选择得小于一由所述整数p,所述整数k,所述多项式W1、W2、…Wk、f、g和m的次数,对所述多项式W1、W2…Wk、f、g和m的系数的所述约束,和对整数φ1、φ2…φk的所述约束所确定的量。
29.权利要求27所述方法,其中所述整数q被选择得大于一由所述整数p,所述整数k,所述多项式W1、W2…Wk、f、g和m的次数,对所述多项式W1、W2、…Wk、f、g和m的所述约束,和对整数φ1、φ2、…φk的所述约束所决定的量。
30.用于编码和译码数字消息m的系统,包括用于选择理想数p和q的装置;用于生成一环R的元素f和g、并生成作为f(mod q)的反量的元素Fq、并生成作为f(mod p)的反量的元素Fp的装置;用于产生包括有h的公用密钥的装置,这里h、使用g和Fq推导的积对mod q同余;用于产生一可由其推导f和Fp的专用密钥的装置;用于通过使用此公用密钥和一随机元素φ对消息m进行编码来产生编码消息的装置;和用于通过使用专用密钥对编码消息进行译码以产生译码消息的装置。
31.权利要求30所述系统,其中所述编码消息通过在一地点的用户被产生,从所述一地点传送到另一点,并通过在所述另一地点的用户被译码。
32.用于在一通信系统的用户之间传送信息的方法,包括步骤生成一环R、R中的理想数P和Q、一组用于环R模理想数Q的陪集表示式CQ,和一组用于环R模理想数P的陪集表示式Cp;生成环R中至少一公用密钥元素h1,…hk作为R中至少二专用密钥元素f1,…fn和此第一用户的理想数Q的函数;和从一第一用户传送给一第二用户环R的说明,理想数Q,理想数P,和R中的元素h1…hk;生成R中一元素e作为理想数P和Q,公用密钥元素h1,…hk,R中的专用消息元素m,和第二用户的至少一专用随机元素φ1,…φ1的函数和从第二用户传送元素e到第一用户,以便使得第一用户能通过计算估算e,f1,…fn的函数F的R中的结果A,计算该集陪集表示式CQ中的A的陪集表示式a,计算估算a,f1,…fn的函数G的结果B,计算该集陪集表示式Cp中的B的陪集表示式b,并计算估算b,f1,…fn的函数H的该集陪集表示式Cp中的结果C来确定消息元素m。
33.权利要求32所述方法,其中消息元素m满足条件m为Cp的一元素。
34.权利要求32所述方法,其中第一用户通过计算a、b、c、f1、…fn的一函数来确定消息元素m。
35.权利要求32所述方法,其中公用密钥元素h1、…hk满足条件在R中对于i在1与k之间元素f1、积hifk+1对模理想数Q同余。
36.权利要求32所述方法,其中专用密钥元素f1、…fk+1满足条件元素f1…fk是在理想数P中。
37.权利要求32所述方法,其中专用随机元素φ1…φk是在理想数p中。
38.权利要求32所述方法,其中作为公用密钥元素h1…hk、专用随机元素φ1,…φk+1,和专用消息元素m的函数而生成的元素e被生成作为CQ的一元素,该e、φ1h1+φ2h2+…φkhk+φk+m对模理想数Q同余。
39.权利要求32所述方法,其中估算e,f1,…fn的函数F的结果A是乘积efk+1。
40.权利要求32所述方法,其中估算a,f1…fn的函数G的结果B是元素a。
41.权利要求32所述方法,其中估算a,f1,…fn的函数H的该集陪集表示式Cp中的结果C满足条件Cfk+1、b对模理想数P同余。
42.权利要求32所述方法,其中结果C等于该集陪集表示式Cp中消息m的陪集表示式。
43.权利要求32所述方法,其中环R是由次数N的首一多项式M(X)生成的R的一变量X模理想数中的多项式的一环,其中,R的理想数Q是由一整数q生成的理想数,R的理想数P是由一整数P生成的理想数,该集陪集表示式CQ是具有一固定集陪集表示式模q中的系数的R中的次数至多N-1的该集多项式,且其中该集陪集表示式Cp是具有一固定集陪集表示式模P中的系数的R中的次数至多N-1的该集多项式。
44.权利要求43所述方法,其中专用密钥元素f1…fn,R中的专用消息元素m,和专用随机元素φ1…φ1满足条件包括有在它们系数上的边界。
45.权利要求32所述方法,其中环R是非交换的。
46.权利要求32所述方法,其中元素h1,…hk被在CQ中生成是根据条件对于在1与k之间的每一个i,在R中元素fk+1hifk+2、f1对模理想数Q同余。
47.权利要求32所述方法,其中专用密钥元素f1,…fk是在理想数P中。
48.权利要求32所述方法,其中专用附机元素φ1,…φ2k+1满足条件元素φ1…φk是在理想数P中。
49.权利要求45所述方法,其中作为公用密钥元素h1,…,hk,专用随机元素φ1,…,φ2k+1,和专用消息元素m的函数生成的元素e被生成作为CQ的一元素,该e、φ1h1φK+1+φ2h2φK+2+…+φkhkφ2k+φ2k+1+m对模理想数Q同余。
50.权利要求32所述方法,其中环R是一具有整数系数的矩阵环,R的理想数Q是所有可被一固定整数q除的矩阵所构成的理想数,R的理想数P是所有可被一固定整数P除的矩阵所构成的理想数,该集陪集表示式CQ是具有一固定集陪集表示式模q中的系数的R的该集元素,且该集陪集表示式Cp是具有一固定集陪集表示式模P中的系数的R的该集元素。
51.权利要求50所述方法,其中专用密钥元素f1,…fn,专用消息元素m,和专用随机元素φ1,…φ1满足条件包括在它们系数上的边界。
52.权利要求50所述方法,其中专用随机元素φ1,…φn满足条件φ1,…φ1是识别矩阵的常数倍数。
53.权利要求32所述方法,其中环R是一群G的群环,R的理想数Q由整数q生成的理想数,R的理想数P为由整数P生成的理想数,该集陪集表示式CQ为具有一固定集陪集表示式模q中的系数的R的该集元素,和该集陪集表示式Cp是具有一固定集陪集表示式模P中的系数的R的该集元素。
54.权利要求53所述方法,其中专用密钥元素f1,…fn,专用消息元素m,和专用随机元数φ1,…φ1满足条件包括在它们系数上的边界。
55.权利要求32所述方法,其中环R是采用服从二面关系XN=1,Y2=1,和XY=YXN-1的二变量X和Y的多项式非交换环,R的理想数Q是由整数q生成的理想数,R的理想数P是由整数P生成的理想数,该集陪集表示式CQ是采用具有从一集陪集表示式模q中选择的系数的变量X的次数至多N-1的R中的该集多项式,且其中该集陪集表示式Cp是采用具有从一固定集陪集表示式模P选择的变量X的次数至多N-1的R中的该集多项式。
56.权利要求55所述方法,其中专用密钥元素f1…fn,专用消息元素m,和专用随机元素φ1,…φ1满足条件包括有它们中一些在满足条件Yψ=ψY的R的所有元素ψ构成的R的交换子环R0中的条件。
全文摘要
公用密钥密码系统编码技术利用一基于多项式代数和换算模2数的混合系统,同时译码技术则利用一其有效性取决于基本概率论的分离系统。用于编码和译码数字消息的方法包括步骤:选择环R的理想数p和q(305):生成环R的元素f和g(325),和生成作为f(mod q)的反量的元素F
文档编号G09C1/00GK1232588SQ97198451
公开日1999年10月20日 申请日期1997年8月19日 优先权日1996年8月19日
发明者杰弗里·霍夫施泰因, 吉尔·皮弗, 约瑟夫·H·西尔弗曼 申请人:Ntru密码系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1