一种抵抗密钥恢复攻击的多变量签名方法与流程

文档序号:12007478阅读:224来源:国知局
一种抵抗密钥恢复攻击的多变量签名方法与流程
本发明属于信息安全技术领域,涉及多变量公钥及消息的签名认证,特别涉及一种抵抗密钥恢复攻击的多变量签名方法。

背景技术:
数字签名是一种用于鉴别数字信息的方法,是公钥密码体制的主要应用之一,又称为公钥数字签名。在公钥密码体制中,数字签名技术的原理主要是将消息用发送方的私钥签名(加密),与原文一起传送给接收者。接收者用发送者的公钥对签名进行解密,将解得的值与原文进行对比:相同,则接收方就认为该签名为合法而接收;否则认为是非法签名而拒绝。因此,数字签名常由两种算法成对儿构成,一个用于签名,一个用于验证,通信双方能够在公开网络环境中进行数字信息(消息)的签名和验证。数字签名的安全性需要保证确定消息来源正确,其它人无法伪造。目前应用于消息的数字签名,其安全理论大多是基于数论中的大整数分解的困难性。然而,美国科学家PeterShor于1995年提出了一种量子分解算法,它通过利用量子计算的并行性,可以在多项式时间内快速分解出大数的质因子和离散对数问题,也就是说,量子计算机的产生,对现有基于传统密码体制的数字签名的安全性构成了严重的威胁。多变量公钥体制是有限域上根据多变量非线性方程组的求解问题而设计的密码系统,其安全性基于求解一组多变量多项式方程是一NP-C困难问题,目前被认作是量子时代的一种安全的密码体制备选方案,04年提出的签名方案Flash入选了欧洲密码计划NRSSIE,成为密码研究中很有潜力的技术之一。作为一种新的研究方向,相对于传统的签名体制,多变量体制比基于数论的体制具有更高的效率、安全性,且更易于硬件实现的优点,但是,现有的多变量签名方案中还存在以下问题:标准签名模型的验证条件仅依赖公钥,验证单一,也就是说在密钥恢复攻击下,即使伪造者不知道真正的合法私钥,也有可能通过公钥P的精巧结构反解该公钥对应的等价密钥而获取一个可以通过公钥验证的“合法”签名,究其本质原因主要是因为签名验证不涉及内部私钥信息的验证。而目前,在以多变量公钥体制为基础的签名方案中,还没有产生能抵抗密钥恢复攻击的安全的多变量签名方案。因此,在设计新的多变量签名方案时有必要将上述这些问题考虑在内并尽量避免。

技术实现要素:
为了克服上述现有技术的缺点,本发明的目的在于提供一种更为安全的、可以抵抗密钥恢复攻击的多变量签名方法;该方法是在有限域上基于多个变量的多项式方程组建立而来的一种对签名和认证方法,该方法可有效抵抗密钥恢复攻击,为量子计算机时代的信息安全和信任体系的建立提供基础技术支撑,是量子时代一种安全的数字签名备选方案,特别适用于存储空间和运算时间受限的场合,如智能卡、无线传感网络和动态RFID标签。为了实现上述目的,本发明采用的技术方案是:通过增加签名附加值,以建立新的签名验证条件,该验证条件隐含着对内部信息x和y的验证,从而可有效抵抗由等价密钥的存在而产生的密钥恢复攻击。具体地,一种抵抗密钥恢复攻击的多变量签名方法,包括以下步骤:步骤1,选择系统参数取一个有限域正整数n和m,的n次扩域记为的m次扩域记为取到上的一组多变量二次多项式方程q1(x1,…,xn),…,qm(x1,…,xn),记为Q,则Q就表示多变量公钥密码体制的中心映射,其中输入变量为n个,输出变量为m个,用Q-1表示多项式Q的逆多项式,Q-1为合法用户所有,另取和上可逆仿射变换S和T为秘密钥,其逆多项式分别记为S-1和T-1,再随机选取上的一组n个n元二次多变量多项式方程组(g1(x1,…,xn),…,gn(x1,…,xn)),该多项式向量记为G,即G(x1,…,xn)=(g1(x1,…,xn),…,gn(x1,…,xn)),以及两个单向不可逆的多项式方程组H和用户的秘密钥由S、T、G三部分构成,H和为可信第三方秘密选取,但仅用于公钥的产生,其中G的逆多项式表示为G-1,对应的公钥由五个多项式构成,分别为:P=TоQоS,HоG-1оS,HоS,其中运算符о表示运算的合成,即从右向左依次进行代入计算;步骤2,签名的产生已知消息M的编码为向量(u1,…,um),记做u,签名按以下步骤生成签名:(2.1)产生前向签名(2.1a)由秘密钥T-1,将消息M的编码u=(u1,…,um)代入到T-1中,得到(y1,…,ym),记为y;(2.1b)将所得结果y代入到中心映射Q的逆变换Q-1中,得到(x1,…,xn),记为x;(2.1c)将所得结果x代入到秘密钥S的逆S-1中,得到(v1,…,vn),记为v,则v即为消息M的编码u的前向签名;(2.2)产生后向签名(2.2a)将所得结果x代入到秘密钥G中,得到G(x1,…,xn)=(g1(x1,…,xn),…,gn(x1,…,xn))=(g1,…,gn),记为g;(2.2b)将所得结果g代入到秘密钥S的逆S-1中,得到S-1(g)=S-1оG(x)=(vg1,…,vgn),记为vg,则vg即为消息M的编码u的后向签名;(2.3)前向签名和后向签名的级联v||vg即为消息M的编码u的签名;步骤3,签名的验证(3.1)利用公钥P进行验证(3.1a)将前向签名v=(v1,…,vn)代入公钥P中,得到P(v1,…,vn)=(p1(v1,…,vn),…,pm(v1,…,vn)),其结果记为u′=(u′1,…,u′n);(3.1b)判断u′是否和原消息M的编码u相等;(3.2)利用公钥HоS和HоG-1оS进行验证(3.2a)将前向签名v=(v1,…,vn)代入到公钥HоS中,得到HоS(v)=HоS(v1,…,vn)=H(S(v1,…,vn)),其结果记为h=(h1,…,hn);(3.2b)将后向签名vg=(vg1,…,vgn)代入到公钥HоG-1оS中,得到其结果记为h′=(h′1,…,h′n);(3.2c)判断h和h′是否相等;(3.3)利用公钥和进行验证(3.3a)对消息M的编码u,将u代入公钥得到其结果记为(3.3b)对后向签名vg,将vg代入公钥得到其结果记为(3.3c)判断和是否相等;若(3.1b)、(3.2c)和(3.3c)均成立时,则v||vg即为消息M的编码u的合法签名,否则为无效签名,拒绝。所述步骤1中,S、T、G均为可逆仿射变换。与现有技术相比,本发明的有益效果是:1)本发明是基于多变量公钥密码体制的签名模型,因此可抵抗常规的量子攻击;2)本发明是基于有限域上的多变量多项式方程组的公钥密码体制,其运算为加和低次的乘运算,不存在指数和求逆运算,因此比传统的基于数论的体制更为高效和安全;3)本发明所产生的签名由两部分构成:前向签名v和后向签名vg,前向签名v的产生必须拥有合法秘密钥S、T,后向签名vg的获得必须拥有合法秘密钥S、G、T才能完成,因此,相对于已有的多变量签名方案的仅有前向签名v,本发明则增加了攻击者的难度;4)本发明所产生的签名v||vg是由相互关联的两部分v和vg组成,且v和vg需要满足有关秘密钥S、G、T的两个潜在的关联验证:S(v)=x=G-1оS(vg)和T-1(u)=y=QоG-1оS(vg),这两个验证式的成立当且仅当拥有正确的私钥S、g和T,仅有公钥而没有合法私钥S、g和T无法求得后向签名,因此,较现有签名模型的验证仅是u满足公钥P,本发明具有后向签名的关联验证,可有效抵抗密钥恢复攻击,更为安全。附图说明图1是本发明签名产生原理示意图。图2是本发明签名验证原理示意图。具体实施方式下面结合附图和实施例详细说明本发明的实施方式。一、本发明所应用的数学理论(1)有限域有限域是一个包含两个运算加和乘的有限个元素的集合,且满足对加法和乘法均具有结合律、交换律、非零元有逆元和乘法对加法的分配率等性质。域中元素的个数称为该域的阶数,q阶有限域,常记为或简记为有限域上的运算为模运算。(2)变换是一个有限域,称之为一个变换,是指存在变化规则使得(x1,…,xn)经过该变化规则变成为(y1,…,yn),该变化规则记为f,称之为变换。(3)多变量问题多变量问题也简称为多变量二次-困难问题。由于多变量公钥密码体制的安全性是基于有限域上求解一组多变量非线性多项式方程:p1(x1,…,xn)=p2(x1,…,xn)=…=pm(x1,…,xn)=0,求解该问题为一NP-C问题,其中pi的系数和变量均取自有限域通常方程pi取为二次,基于多变量问题构造的方案,前安全性基础来自于从公钥二次方程的直接破解的困难性,即已知公钥求解方程组为一个非多项式时间完全(NP-C)困难问题。二、实施方式步骤1,选择系统参数取一个有限域正整数n和m,的n次扩域记为的m次扩域记为取到上的一组多变量二次多项式方程q1(x1,…,xn),…,qm(x1,…,xn),记为Q,则Q就表示多变量公钥密码体制的中心映射,其中输入变量为n个,输出变量为m个,用Q-1表示多项式Q的逆多项式,Q-1为合法用户所有。另取和上可逆仿射变换S和T为秘密钥,其逆多项式分别记为S-1和T-1。再随机选取上的一组n个n元二次多变量多项式方程组(g1(x1,…,xn),…,gn(x1,…,xn)),该多项式向量记为G,即G(x1,…,xn)=(g1(x1,…,xn),…,gn(x1,…,xn)),以及两个单向不可逆的多项式方程组H和用户的秘密钥由S、T、G三部分构成,H和为可信第三方秘密选取,但仅用于公钥的产生,其中G的逆多项式表示为G-1。对应的公钥由五个多项式构成,分别为:P=TоQоS,HоG-1оS,HоS,其中运算符о表示运算的合成,即从右向左依次进行代入计算。步骤2,签名的产生已知消息M的编码为向量(u1,…,um),记做u,参照图1,签名则按以下步骤生成签名:(2.1)产生前向签名。(2.1a)由秘密钥T-1,将消息M的编码u=(u1,…,um)代入到T-1中,得到(y1,…,ym),记为y;(2.1b)将上述(2.1a)中所得结果y代入到中心映射Q的逆变换Q-1中,得到(x1,…,xn),记为x;(2.1c)将(2.1b)中所得结果x代入到秘密钥S的逆S-1中,得到(v1,…,vn),记为v,则v即为消息M的编码u的前向签名。(2.2)产生后向签名。(2.2a)将上述(2.1b)中所得结果x代入到秘密钥G中,得到G(x1,…,xn)=(g1(x1,…,xn),…,gn(x1,…,xn))=(g1,…,gn),记为g;(2.2b)将上述(2.2a)中所得结果g代入到秘密钥S的逆S-1中,得到S-1(g)=S-1оG(x)=(vg1,…,vgn),记为vg则vg即为消息M的编码u的后向签名;(2.3)前向签名和后向签名的级联v||vg即为消息M的编码u的签名。参照图2,本发明中的签名验证的具体实现如下:步骤3,签名的验证(3.1)利用公钥P进行验证。(3.1a)将前向签名v=(v1,…,vn)代入公钥P中,得到P(v1,…,vn)=(p1(v1,…,vn),…,pm(v1,…,vn)),其结果记为u′=(u′1,…,u′n);(3.1b)判断u′是否和原消息M的编码u相等。(3.2)利用公钥HоS和HоG-1оS进行验证。(3.2a)将前向签名v=(v1,…,vn)代入到公钥HоS中,得到HоS(v)=HоS(v1,…,vn)=H(S(v1,…,vn)),其结果记为h=(h1,…,hn);(3.2b)将后向签名vg=(vg1,…,vgn)代入到公钥HоG-1оS中,得到其结果记为h′=(h′1,…,h′n)(3.2c)判断h和h′是否相等。(3.3)利用公钥和进行验证。(3.3a)对消息M的编码u,将u代入公钥得到其结果记为(3.3b)对后向签名vg,将vg代入公钥得到其结果记为(3.3c)判断和是否相等。若(3.1b)、(3.2c)和(3.3c)均成立时,则v||vg即为消息M的编码u的合法签名,否则为无效签名,拒绝。本发明所提出的基于有限域上的签名方案是正确的,可以抵抗密钥恢复攻击。签名的正确性设接收方收到签名v||vg,若该签名是按上述步骤逐步产生,并且在传输过程中没有发生改变,则由于(1)因为前向签名v是由消息M的编码(u1,…,um)依次经过秘密钥T-1、中心映射Q-1、秘密钥S-1产生,即有v=(v1,…,vn)=S-1оQ-1оT-1(u1,…,um),则显然,将所得前向签名v代入到公钥P中,有P(v)=P(S-1оQ-1оT-1(u1,…,um))=PоS-1оQ-1оT-1(u)=TоQоSоS-1оQ-1оT-1(u)=u成立,即验证式(3.1b)成立。(2)由后向签名vg=S-1оG(x1,…,xn)、前向签名v=S-1(x1,…,xn),则显然有S(v)=(x1,…,xn)=G-1оS(vg),进而得到HоS(v)和HоG-1оS(vg)相等,即验证式(3.2c)成立。(3)由后向签名vg=S-1оG(x1,…,xn)和消息M的编码u,则有QоG-1оS(vg)=y=T-1(u),进而有HоG-1оS(vg)=HоS(v)成立,即验证式(3.3c)成立。签名的抗伪造性本发明所提出的基于多变量多项式的签名方案对已知公钥伪造签名攻击是不可伪造的。下面,从密码理论上证明本发明的数字签名方案可抵抗签名伪造攻击,特别是,针对多变量体制的密钥恢复攻击。证明:众所周知,多变量体制有一个“等价密钥”的特性,即同一个公钥对应于多个私钥,也称为“密钥冗余”,体现为:两个不同私钥(T,Q,S)和(T′,Q,S′),却有TоQоS=P=T′оQоS′。因此,密钥恢复攻击是指攻击者在攻击多变量方案时,即使得不到正确的私钥(T,Q,S),但是只要能得到一个等价的私钥(T′,Q,S′),也能攻击成功。而本发明所提出的模型可有效抵抗该攻击。证明如下:攻击者想成功伪造一个签名,则必须有能通过(3.1b)、(3.2c)和(3.3c)成立的前向签名v和后向签名vg。然而即使伪造者可通过密钥恢复攻击获得一个等价密钥(T′,Q,S′),求出一个前向签名,记为和后向签名,记为也无法通过(3.1c)和(3.2c)的验证。这是因为,公钥HоG-1оS和HоS限制了该签名的产生用到的私钥必须为S而不能是等价的私钥,如公钥和则限制了该签名的产生用到的私钥必须为T而不能是等价的私钥,如因此,在没有正确私钥S和T的情况下,伪造者即使能通过等价密钥恢复攻击产生一个签名,但因为该签名并不是由正确私钥S和T产生,所以该签名无法通过(3.2c)和(3.3c)的验证成为有效签名。如果攻击者随机猜测一个前向签名和后向签名则因为和均是取自q阶有限域的n元向量,所以成功的概率仅为(q为有限域的阶数)。综上,本发明可有效抵抗针对于多变量签名体制的等价密钥恢复攻击。三、实施例选取HFE(HiddenFieldEquations)多变量体制的中心映射为例,签名方案如下:(1)HFE方案。设是一q阶有限域,是的n次扩域,是扩域到向量空间的同构映射,为π(a0+a1x+…+an-1xn-1)=(a0,…,an-1)。中心映射:其中次数是二次项系数,是一次项系数,是常数项,这些系数为随机选取,次数需小于某个参数d。是一个可逆变换,可以通过域上的Berlekamp算法的一个变体来求,该步的复杂度为O(nd2logd+d3),因此参数d不能太大。中心映射Q(x1,…,xn)是到的映射,为:其中,qi(x1,…,xn),i=1,…,m是n个变量的二次多项式方程。令S,T是上的两个随机可逆仿射变换,则定义P(x1,…,xn)=(p1(x1,…,xn),…,pn(x1,…,xn))=TоQоS(x1,…,xn)。这里每一个多项式均为二次。该体制作为签名算法,过程如下。Alice要给Bob发送一个经她自己签了名的消息(v1,…,vn),首先用自己的私钥SAlice,TAlice对消息M的编码(u1,…,um)进行签名:(I)计算(II)计算(III)计算然后将消息(u1,…,um)和签名(v1,…,vn)经通信网络一起发送给Bob。Bob经公共信道收到Alice的消息(u1,…,um)和签名(v1,…,vn),欲判断该签名是否真的来自于Alice,于是Bob找到公开的Alice的公钥PAlice进行验证。Bob对签名(v1,…,vn),利用PAlice,计算PAlice(v1,…,vn),记结果为(u′1,…,u′m),然后判断该值(u′1,…,u′m)是否和原消息(u1,…,um)相等,若相等则接受其签名(v1,…,vn),否则拒绝。多变量体制用作签名方案时,和传统多变量签名模型一样,仅需要通过公钥验证,对用户是否拥有合法秘密钥不做验证,原始的HFE体制已经被破解:99年,Kipins和Shamir利用再线性化方法提出了一种有效的密钥恢复攻击。(2)下面,取Q为HFE体制的中心映射。Alice为给出一个安全的签名,选择一个可逆的二次的多变量多项式GAlice作为私钥和两个随机的单向不可逆多项式H和作为辅助函数。当Alice要给Bob发送一个经她自己签了名的消息(u1,…,um)时,(I)利用私钥TAlice,计算(II)计算(III)利用私钥SAlice,计算(IV)利用私钥GAlice,计算GAlice=G(x1,…,xn)=(g1(x1,…,xn),…,gn(x1,…,xn))=(g1,…,gn);(V)利用私钥SAlice,计算(vg1,…,vgn)=S-1(g)=S-1оG(x);(VI)将(v1,…,vn)和(vg1,…,vgn)级联,得到v1,…,vn||vg1,…,vgn即为消息(u1,…,um)的签名。Bob经公共信道收到Alice发来的消息(u1,…,um)和签名v1,…,vn||vg1,…,vgn。Bob欲判断该签名是否真的来自于Alice。Bob找到公开的Alice的公钥PAlice,HоSAlice,HоG-1оSAlice,然后对签名v1,…,vn||vg1,…,vgn进行验证:(I)Bob用Alice的公钥PAlice,将前向签名v=(v1,…,vn)代入到PAlice中,得到的结果记为(u′1,…,u′m),判断该值(u′1,…,u′m)是否和原消息(u1,…,um)相等,若相等,则进行第(II)步判断,否则拒绝。(II)Bob将前向签名(v1,…,vn)代入Alice的公钥HоSAlice,得到(h1,…,hn)=HоSAlice(v1,…,vn),然后将后向签名(vg1,…,vgn)代入Alice的公钥HоG-1оSAlice中,记结果为(h′1,…,h′n)=HоG-1оSAlice(vg1,…,vgn),断该值(h′1,…,h′n)是否和(h1,…,hn)相等,若相等,则Bob接受该消息的签名,否则拒绝该签名。(III)Bob将后向签名(vg1,…,vgn)代入到得到得到结果记为将消息(u1,…,um)代入到公钥得到结果记为然后判断是和是否相等,若相等,则Bob接受该消息的签名,否则签名无效,拒绝。显然,将新模型应用于该HFE,对于同一个消息(u1,…,um),签名由原来的(v1,…,vn)变成了v1,…,vn||vg1,…,vgn,验证时除了原有的用公钥P验证P(v1,…,vn)是否等于(u1,…,un),还需额外验证和私钥相关的HоG-1оSAlice(v1,…,vn)是否和相等,和是否相等。三式都通过验证才能得到v1,…,vn||vg1,…,vgn是一个正确签名,该方案可有效抵抗密钥恢复攻击,较原有方案有效的提高其安全性。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1