多重签名的方法及其装置制造方法
【专利摘要】本发明公开了一种多重签名的方法及其装置,该方法包括:获取第L层签名,L为大于等于1的整数,该第L层签名为小范数向量;确定第(L+1)层签名的重签名秘钥,该第(L+1)层签名的重签名秘钥为小范数矩阵;根据该第L层签名和该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名。根据本发明实施例的多重签名的方法及其装置,基于格上的小整数解SIS困难问题,通过将签名和重签名设置为格上的小范数向量,将重签名秘钥设置为格上的小范数矩阵,使得可以采用相同的算法生成各层签名,算法简洁有效,安全性强,具有单向性、不可逆性,相应的验证开销小,改善了用户体验。
【专利说明】多重签名的方法及其装置
【技术领域】
[0001]本发明实施例涉及信息处理领域,并且更具体地,涉及一种多重签名的方法及其
>J-U ρ?α装直。
【背景技术】
[0002]多重签名方案广泛应用于各种无人监管下的顺序检测场景,以保证巡检员按照规定的顺序进行检测。例如,一个产品的生产线上,巡检员需要对产品的流程按顺序进行检测;或在电力系统中,要求按照事先规定好的线路对野外装置实行日常无人监管下的巡检;或在铁路系统中,对轨道进行日常巡检;以及警员对负责片区街道的日常无人监管下的巡检;公司的外出公干,等等。
[0003]为了满足实际应用的需求,一个令人满意的多重签名方案应具有顺序的不可逆性、顺序的不可伪造性和最终结果的验证简洁性等特点。2008年,研究者提出了单向多用的代理重签名方案,该方案基于双线性映射,第一层签名为S1=Q 1; σ ρΗΟιιΓ,其中,m为正整数,g为一双线性群的生成元,X为第一层签名的私钥,HO为Hash函数;第化+1)层签名为 S(L+1) = ( σ ” σ 2,…,ο 2L), L ^ 1,其中,σ0 =HimYv- S 当 k e {I, 2,…,L}时,σ, = g'hh
,当ke {L+l,L+2,…,2L}时,该多重签名方案的大致流程如下:在巡检员检测了第I号流程时,第I号流程会对检测文件进行第一层签名;然后,当巡检员检测了第2号流程时,第2号流程首先验证第I层签名的有效性,若签名有效,则对检测文件进行第二层签名;否则,整个签名过程停止。当巡检员检测了所有N个流程后,将该检测文件递交给上级,上级需要验证该检测文件的最外层签名是否正确,如果该最外层签名正确,说明巡检员按照规定流程进行了 N个流程的检测;否则,说明该巡检员未按照规定进行N个流程的检测。然而,该方案在Diffie-Hellman困难问题的基础上做了近似扩展,安全性较弱,并且签名和重签名使用了两种不同的算法,算法复杂,不够简洁。此外,在该重签名方案中,签名大小和验证开销均随着签名层数的增加而线性增长,第一层签名验证需要6个对运算,而第L层签名验证则需要4L+2个对运算。
[0004]到现在为止,还没有令人满意的既具有单向性(Unidirect1nality)和多次使用性(Mult1-usability),又具有算法简洁、验证开销小和安全性高的方案。本发明提出了基于格的多重签名方案,能够既具有单向性和多次使用性,又具有算法简洁和安全性高的优点。
【发明内容】
[0005]本发明实施例提供了一种多重签名的方法及其装置,能够具有单向性、多次使用性、算法简洁性和高安全性。
[0006]第一方面,提供了一种多重签名的方法,该方法包括:获取第L层签名,L为大于等于I的整数,该第L层签名为小范数向量;确定第(L+1)层签名的重签名秘钥,该第(L+1)层签名的重签名秘钥为小范数矩阵;根据该第L层签名和该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名。
[0007]结合第一方面,在第一种可能的实现方式中,该根据该第L层签名和该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名,包括:确定该第(L+1)层签名为该第L层签名与该第(L+1)层签名的重签名秘钥的乘积。
[0008]结合第一方面或结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,该确定第(L+1)层签名的重签名秘钥,包括:根据该第L层签名的公钥、该第(L+1)层签名的公钥和原像抽样函数,确定该第(L+1)层签名的重签名秘钥。
[0009]结合第一方面或结合第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,该第(L+1)层签名的重签名秘钥由下式确定:Aa+1)XSa+1)=AL mod q;其中,S(L+1)为该第(L+1)层签名的重签名秘钥,且Sa+1) e Z;Xm,A(L+1)为该第(L+1)层签名的公钥,且Aa+1) e ZqnXm,\为该第L层签名的公钥,且\ e ZqnXm,n和m为正整数表示矩阵的维度,q为正整数表示模数。
[0010]结合第一方面或结合第一方面的第一种至第三种可能的实现方式中的任一种实现方式,在第四种可能的实现方式中,在该根据该第L层签名和该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名之前,该方法还包括:确定该第L层签名是否正确;该根据该第L层签名和该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名,包括:当该第L层签名正确时,根据该第L层签名和该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名。
[0011]结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,该确定该第L层签名是否正确,包括:根据该第L层签名的公钥、η维小范数向量U和原像抽样函数,确定该第L层签名是否正确,其中,U=H(m| |r),H()为Hash函数,r为随机序列,η和m均为正整数。
[0012]结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,该根据该第L层签名的公钥、η维小范数向量U和原像抽样函数,确定该第L层签名是否正确,包括:当该第L层签名eL满足等式AljXe1=U mod q,且该eL的欧几里得范数(Euclidean Norm)小于预设阈值时,确定该第L层签名正确;其中,\为该第L层签名的公钥,且kL e Z;Xm, η和m为正整数表示矩阵的维度,q为正整数表示模数。
[0013]第二方面,提供了一种多重签名装置,包括:获取模块,用于获取第L层签名,L为大于等于I的整数,该第L层签名为小范数向量;第一确定模块,用于确定第(L+1)层签名的重签名秘钥,该第(L+1)层签名的重签名秘钥为小范数矩阵;第二确定模块,用于根据该获取模块获取的该第L层签名和该第一确定模块确定的该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名。
[0014]结合第二方面,在第一种可能的实现方式中,该第二确定模块具体用于确定该第(L+1)层签名为该第L层签名与该第(L+1)层签名的重签名秘钥的乘积。
[0015]结合第二方面或结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,该第一确定模块具体用于根据该第L层签名的公钥、该第(L+1)层签名的公钥和原像抽样函数,确定该第(L+1)层签名的重签名秘钥。
[0016]结合第二方面或结合第二方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,该第一确定模块具体用于根据如下公式确定该第(L+1)层签名的重签名秘钥:Aa+1)XSa+1)=A^ mod q;其中,Sa+1)为该第(L+1)层签名的重签名秘钥,且Sa+1) e ZqmXm,A(l+1)为该第(L+1)层签名的公钥,且Αα+1) e ZqnxmA为该第L层签名的公钥,且\ e ZqnXm,η和m为正整数表示矩阵的维度,q为正整数表示模数。
[0017]结合第二方面或结合第二方面的第一种至第三种可能的实现方式中的任一种实现方式,在第四种可能的实现方式中,该多重签名装置还包括:第三确定模块,用于在该第二确定模块根据该第L层签名和该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名之前,确定该第L层签名是否正确;该第二确定模块具体用于当该第三确定模块确定该第L层签名正确时,根据该第L层签名和该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名。
[0018]结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,该第三确定模块包括:第一确定子模块,用于根据该第L层签名的公钥、η维小范数向量U和原像抽样函数,确定该第L层签名是否正确,其中,U=H(m| Ir),HO为Hash函数,r为随机序列,η和m均为正整数。
[0019]结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,该第一确定子模块具体用于当该第L层签名^满足等式\Xe^U mod q,且该^的欧几里得范数(Euclidean Norm)小于预设阈值时,确定该第L层签名正确;其中,为该第L层签名的公钥,且\ e ZqnXm, η和m为正整数表示矩阵的维度,q为正整数表示模数。
[0020]基于上述技术方案,根据本发明实施例的多重签名的方法及其装置,基于格上的小整数解(Small Integer Solut1n,简称为“SIS”)困难问题,通过将签名和重签名设置为格上的小范数向量,将重签名秘钥设置为格上的小范数矩阵,使得可以采用相同的算法生成各层签名,算法简洁有效,相应的验证开销小,此外,基于SIS困难问题的高安全性,本发明实施例的多重签名方案的安全性强,且当该多重签名逆向进行时,即先执行第(L+1)层签名再执行第L层签名时,由于无法使得第L层签名的重签名秘钥为小范数矩阵且该第L层签名为小范数向量这两个条件同时满足,使得该逆向签名无法进行,因此,该多重签名方案具有单向性和不可逆性,改善了用户体验。
【专利附图】
【附图说明】
[0021]为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0022]图1是本发明实施例的多重签名的方法的示意性流程图。
[0023]图2是本发明实施例的多重签名的方法的另一示意性流程图。
[0024]图3是本发明实施例应用于产品线上时的方法流程性示意图。
[0025]图4是根据本发明实施例的多重签名装置的示意性框图。
[0026]图5是根据本发明另一实施例的多重签名装置的示意性框图。
【具体实施方式】
[0027]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0028]为了便于描述,下面将首先对本发明涉及到的专业术语做简单介绍:
[0029]1、格的陷门生成算法:用于生成一个随机正交格,并且生成这个随机格的一组陷门基(欧几里得范数小的基)。
[0030]2、欧几里得范数:对于向量X=(Xl,…,xn),欧几里得范数定义为IMI = -/Λι2 H----+ x/,对一个矩阵χ= (χι,…,Xn),欧几里得范数定义为X = Hiaxi Ixi I I O
[0031]3、Hash函数:把任意长的输入消息变成固定长度的输入消息的一种函数。
[0032]4、原像抽样函数:/:Z? ,优选表达式为:fA (x)=AXx mod q,其中,
A e ZqnXm,Zm表示m维整数向量,Zqn表示η维整数向量且模数为q,ZqnXm表示表示由m个η维整数向量构成的nXm维矩阵且模数为q。
[0033]5、原像抽样算法:给定一个原像抽样函数^(X) =AXX mod q和一个像y,利用陷门AWy的原像集中抽取一个原像X使得y=AXx mod q。
[0034]6、重签名秘钥:代理者进行重签名的私有秘钥。
[0035]下面将介绍本发明实施例中的第一层签名的确定方法:首先,将安全参数In利用陷门生成算法TrapGen(In)产生一个随机矩阵A1 e ZqnXm和格Af (A1)的一个陷门基
T e Zmxm,且T具有较小的范数,可选地,\\τ\\< O(^nlogq),其中,μ.| |表示欧几里得范数,
T表示T的施密特正交化,n、m均为正整数,q为数值较小的正整数;确定第一层签名的公钥为A1,私钥为T ;然后,根据一个随机序列r,例如r e {O, 1}%确定η维向量U=H(m| |r),HO为Hash函数,U e Zqn ;最后,利用原像抽样算法和第一层签名的公钥A1抽取U的原像作为第一层签名ei,即& =A1(U)-1且I |ei| I SC1,其中,C1为预设阈值,可以为数值较小的任意预设数值。该原像抽样函数f()可以具有多种数学表达式,可选地,第一层签名ei的一种优选表达式为A1Xe1=U mod q,此时,该原像抽样算法具体为一种离散高斯抽样算法
SamplePre (A1, T1, U,σ ),相应地,C1可以满足下列等式:C1 =σΛ^ ,其中,σ为离散高斯分布中的均方差;可选地,σ可以设置为一个合理的较小的数值,优选地,σ可以满足下列条件:但本发明实施例不限于此。应理解,本发明实施例以原像抽样函数为例进行说明,但本发明实施例也可以基于格利用其它函数进行签名和重签名运算,本发明实施例不限于此。
[0036]图1示出了本发明实施例的多重签名的方法100的示意性流程图,该方法可以由多重签名装置执行,其中,该多重签名装置可以是一个独立的装置,也可以是某一装置中的一个模块,本发明实施例对此不作限定。如图1所示,该方法100包括:
[0037]S110,获取第L层签名,L为大于等于I的整数,该第L层签名为小范数向量;
[0038]S120,确定第(L+1)层签名的重签名秘钥,该第(L+1)层签名的重签名秘钥为小范数矩阵;
[0039]S130,根据该第L层签名和该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名。
[0040]因此,根据本发明实施例的多重签名的方法,基于格上的SIS困难问题,通过将签名和重签名设置为格上的小范数向量,将重签名秘钥设置为格上的小范数矩阵,使得可以采用相同的算法生成各层签名,算法简洁有效,相应的验证开销小,此外,基于SIS困难问题的安全性,本发明实施例的多重签名方案的安全性强,且当该多重签名逆向进行时,即先执行第(L+1)层签名再执行第L层签名时,由于无法使得第L层签名的重签名秘钥为小范数矩阵且该第L层签名为小范数向量这两个条件同时满足,使得该逆向签名无法进行,因此,该多重签名方案具有单向性和不可逆性,改善了用户体验。
[0041]应理解,根据实际需要,该多重签名装置可以循环利用S110、S120和S130进行多次签名,即L=1,2,一,N,N为预设签名总数。该小范数向量是指格上欧几里得范数较小的向量,该小范数矩阵是指格上欧几里得范数较小的矩阵,该小范数向量和小范数矩阵可以分别采用某一预设阈值来确定,例如,第二层签名的重签名秘钥应满足||S2|< ,第三层签名的重签名秘钥应满足||83|μσ‘,等等;第一层签名应满足IIe1Ih σ‘,第三层签名的重签名秘钥应满足I Ie2I I ( σ 2m,等等;可选地,该第L层签名和第(L+1)层签名的重签名秘钥也可以分别采用不同的预设阈值来衡量,但本发明实施例不限于此。
[0042]在S120中,该多重签名装置可以通过多种方式确定该第(L+1)层签名的重签名秘钥。可选地,该多重签名装置可以通过接收其它装置或模块发送的该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名的重签名秘钥;可选地,作为另一实施例,该多重签名装置也可以根据第L层签名的公钥和该第(L+1)层签名的公钥,确定该第(L+1)层签名的重签名秘钥,但本发明实施例不限于此。相应地,在S120,确定第(L+1)层签名的重签名秘钥,包括:
[0043]S121,根据该第L层签名的公钥、该第(L+1)层签名的公钥和原像抽样函数,确定该第(L+1)层签名的重签名秘钥。
[0044]其中,该第(L+1)层签名的重签名秘钥可以通过第(L+1)层签名和原像抽样算法抽取该第L层签名的原像获得,即St =/4zti (Ai广,其中,S_为该第(L+1)层签名的重签名秘钥,\为该第L层签名的公钥。该原像抽样函数f()可以具有多种数学表达式,可选地,一种优选的表达式为fA(X)=AXx mod q,相应地,该第(L+1)层签名的重签名秘钥可以由下式确定:
[0045]A(l+1) XS(l+1)=Al mod q ;
[0046]其中,Sa+1)为该第(L+1)层签名的重签名秘钥,且Sa+1) e ZqmXm,A(L+1)为该第(L+1)层签名的公钥,且Aa+1) e ZqnXm, \为该第L层签名的公钥,且\ e ZqnXm,η和m为正整数表示矩阵的维度,q为正整数表示模数。可选地,该Sa+1)还可以进一步满足下列条件:
|s(i+iJ|^ ,但本发明实施例不限于此。
[0047]可选地,作为另一实施例,该多重签名装置可以将第L层签名与该第(L+1)层签名的重签名秘钥的乘积作为该第(L+1)层签名。这样,本发明实施例提供的多重签名方案中,各层签名可以通过相同的算法获得,且具有同样的形式,算法和形式简洁,从而使得后续的验证开销也不会随着签名层数的增加而增大。相应地,S130,根据该第L层签名和该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名,包括:
[0048]S131,确定该第(L+1)层签名为该第L层签名与该第(L+1)层签名的重签名秘钥的乘积。
[0049]可选地,该多重签名装置在收到经过第L层签名的消息时,可以直接进行第(L+1)层签名,而不验证该第L层签名是否正确;而当该消息上交至验证端时,可以由验证端验证该消息的最后一层签名是否符合预期结果,从而验证整个签名过程是否按照预设顺序进行。可选地,作为另一实施例,该多重签名装置也可以在确定该第(L+1)层签名之前,验证该第L层签名是否正确,并且只有在验证该第L层签名正确时,才确定该第(L+1)层签名并执行签名操作;否则,该多重签名装置终止签名过程,但本发明实施例不限于此。相应地,如图2所示,在S130之前,该方法100还包括:
[0050]S140,确定该第L层签名是否正确;
[0051]相应地,S130,根据该第L层签名和该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名,包括:
[0052]S130a,当该第L层签名正确时,根据该第L层签名和该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名。
[0053]可选地,作为另一实施例,S140,确定该第L层签名是否正确,包括:
[0054]S141,根据该第L层签名的公钥、η维小范数向量U和原像抽样函数,确定该第L层签名是否正确,其中,U=H(m| |r),HO为Hash函数,r为随机序列,η和m均为正整数。
[0055]其中,该!11、11、(1和1.可以在第一层签名之前确定并公开,并且在整个签名过程中其值保持不变,但本发明实施例不限于此。
[0056]可选地,作为另一实施例,S141,根据该第L层签名的公钥、η维小范数向量U和原像抽样函数,确定该第L层签名是否正确,包括:
[0057]S141a,当该第L层签名eL满足等式AljX G1=U mod q,且该eL的欧几里得范数小于预设阈值时,确定该第L层签名正确;
[0058]其中,\为该第L层签名的公钥,且\ e ZqnXm,η和m为正整数表示矩阵的维度,q为正整数表示模数。
[0059]可选地,该预设阈值可以随着签名层数的增加而增大,一种优选方式为eL| I ( (Λπ^2,但本发明实施例不限于此。
[0060]应理解,上述实施例以%做为第L层签名,该第L层签名也可以为(4,r ),还可以为A的其它形式或变换,本发明实施例不限于此。
[0061]因此,根据本发明实施例的多重签名的方法,基于格上的SIS困难问题,通过将签名和重签名设置为格上的小范数向量,将重签名秘钥设置为格上的小范数矩阵,使得可以采用相同的算法生成各层签名,算法简洁有效,相应的验证开销小,此外,基于SIS困难问题的安全性,本发明实施例的多重签名方案的安全性强,且当该多重签名逆向进行时,即先执行第(L+1)层签名再执行第L层签名时,由于无法使得第L层签名的重签名秘钥为小范数矩阵且该第L层签名为小范数向量这两个条件同时满足,使得该逆向签名无法进行,因此,该多重签名方案具有单向性和不可逆性,改善了用户体验。
[0062]下面将结合具体例子对本发明实施例提供的多重签名的方法做更详细的说明。图3示出了本发明实施例应用于产品线上时的方法流程性示意图。假设该产品线共有N个工艺流程需要检测,记为I?N号流程,并且需要按顺序检测。为了便于描述,假设由多重签名装置的处理单元生成相关参数,多重签名装置的第i层签名单元进行第i层签名,i=l,2,…,N,多重签名装置的验证单元进行最后验证。值得说明的是,上述功能单元的名称只是为了便于描述,实际应用中应以其功能和内在逻辑确定,而不应限制本发明实施例的保护范围。如图3所示,该方法200包括:
[0063]S210,处理单元生成N层签名的公钥集合{Ai; i=l,2,…,N}和第一层签名的私钥V
[0064]其中,该Ai为第i层签名的公钥,该公钥Ai和私钥T1可以采用陷门生成算法生成,且该私钥T1和公钥Ai均为小范数矩阵。
[0065]S220,该处理单元根据该N层签名的公钥集合{Ai; i=l, 2,…,N},确定该N层签名的重签名秘钥集合{Si,i=2, 3,…N};
[0066]其中,该Si为第i层签名的重签名秘钥。可选地,该Si可以满足下列条件:Αα+ι) xS(^i)=Ai mod q且|S£|丨幺, i=l, 2,…,N,但本发明实施例不限于此。
[0067]S230,该处理单元将公钥A1和私钥T1分配至第I层签名单元,并将公钥Ai和重签名秘钥Si分配至第i层签名单元,i=2,3,…,N。
[0068]S240,当巡检员检测完第I号流程时,第一层签名单元根据公钥A1和私钥T1,确定第一层签名ei,并为巡检员进行第一层签名(ei,r)。
[0069]其中,该ei可以满足下列条件A1Xe1=U mod q且S ,其中,U=H(m | | r),
HO为Hash函数,r为二进制序列。随后,该巡检员可以按顺序检测第(i+Ι)号流程,i=l, 2,...,N-1。
[0070]S250,当该巡检员检测完第(i+1)号流程时,第(i+1)层签名单元验证第i层签名(e” r)是否正确,以确定该巡检员是否按规定按顺序检测了前i个流程,其中,i=l,2,…
,N-1 ο
[0071]S卩,验证第i层签名ei是否满足下列条件:Ai Xei=U mod q且| |力| |彡。^2,当ei满足上述条件时,该第i层签名ei正确,该第(i+Ι)层签名单元执行S260,否则说明该巡检员未按照规定按顺序检测前i个流程,该方法的流程结束。
[0072]S260,该第(i+Ι)层签名单元利用该第i层签名和该第(i+Ι)层签名的重签名密钥的乘积,生成第(i+Ι)层签名(e(i+1),r),并为该巡检员进行第(i+Ι)层签名。
[0073]其中,e(i+1)=S(i+1)Xei。该S250和S260可以循环执行,直到该巡检员检测完N个流程,且第N签名单元为该巡检员进行了第N层签名。
[0074]S270,当巡检员检测完N个流程后,签名结果被上交至验证单元,验证单元验证最外层签名是否为第N层签名,以确定该巡检员是否按照规定进行流程的检测。
[0075]即确定该最外层签名是否满足下列条件:ANXeN=U mod q且| |eN| | ( o NmN/2,当eji足上述条件时,说明该巡检员按照规定的顺序检测了该N个流程,否则说明该巡检员未按照规定顺序检测该N个流程。
[0076]可选地,在图3所示的例子中,该第(i+Ι)层签名单元也可以不验证该第i层签名Cei, r)是否正确,直接进行签名;而只有当该签名结果被上交至验证单元,验证单元才会验证最外层签名是否为第N层签名,以确定该巡检员是否按照规定进行流程的检测,但本发明实施例不限于此。
[0077]因此,根据本发明实施例的多重签名的方法,基于格上的SIS困难问题,通过将签名和重签名设置为格上的小范数向量,将重签名秘钥设置为格上的小范数矩阵,使得可以采用相同的算法生成各层签名,算法简洁有效,相应的验证开销小,此外,基于SIS困难问题的安全性,本发明实施例的多重签名方案的安全性强,且当该多重签名逆向进行时,即先执行第(L+1)层签名再执行第L层签名时,由于无法使得第L层签名的重签名秘钥为小范数矩阵且该第L层签名为小范数向量这两个条件同时满足,使得该逆向签名无法进行,因此,该多重签名方案具有单向性和不可逆性,改善了用户体验。
[0078]应注意,图3的例子是为了帮助本领域技术人员更好地理解本发明实施例,而非要限制本发明实施例的范围。本领域技术人员根据所给出的图3的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
[0079]应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0080]上文中结合图1至图3,详细描述了根据本发明实施例的多重签名的方法,下面将结合图4和图5,描述根据本发明实施例的多重签名装置。
[0081]图4示出了根据本发明实施例的多重签名装置300的示意性框图。如图4所示,该多重签名装置300包括:
[0082]获取模块310,用于获取第L层签名,L为大于等于I的整数,该第L层签名为小范数向量;
[0083]第一确定模块320,用于确定第(L+1)层签名的重签名秘钥,该第(L+1)层签名的重签名秘钥为小范数矩阵;
[0084]第二确定模块330,用于根据该获取模块310获取的该第L层签名和该第一确定模块320确定的该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名。
[0085]因此,根据本发明实施例的多重签名装置,基于格上的SIS困难问题,通过将签名和重签名设置为格上的小范数向量,将重签名秘钥设置为格上的小范数矩阵,使得可以采用相同的算法生成各层签名,算法简洁有效,相应的验证开销小,此外,基于SIS困难问题的安全性,本发明实施例的多重签名方案的安全性强,且当该多重签名逆向进行时,即先执行第(L+1)层签名再执行第L层签名时,由于无法使得第L层签名的重签名秘钥为小范数矩阵且该第L层签名为小范数向量这两个条件同时满足,使得该逆向签名无法进行,因此,该多重签名方案具有单向性和不可逆性,改善了用户体验。
[0086]可选地,该第二确定模块330具体用于确定该第(L+1)层签名为该第L层签名与该第(L+1)层签名的重签名秘钥的乘积。
[0087]可选地,作为另一实施例,该第一确定模块320具体用于根据该第L层签名的公钥、该第(L+1)层签名的公钥和原像抽样函数,确定该第(L+1)层签名的重签名秘钥。
[0088]可选地,作为另一实施例,该第一确定模块320具体用于根据如下公式确定该第(L+1)层签名的重签名秘钥:
[0089]A(l+1) XS(l+1)=Al mod q ;
[0090]其中,Sa+1)为该第(L+1)层签名的重签名秘钥,且Sa+1) e ZqmXm,A(L+1)为该第(L+1)层签名的公钥,且Aa+1) e ZqnXm,AL为该第L层签名的公钥,且kL e ZqnXm, η和m为正整数表示矩阵的维度,q为正整数表示模数。
[0091]可选地,作为另一实施例,该多重签名装置300还包括:
[0092]第三确定模块340,用于在该第二确定模块330根据该第L层签名和该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名之前,确定该第L层签名是否正确;
[0093]相应地,该第二确定模块330具体用于当该第三确定模块340确定该第L层签名正确时,根据该第L层签名和该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名。
[0094]可选地,作为另一实施例,该第三确定模块340包括:
[0095]第一确定子模块341,用于根据该第L层签名的公钥、η维小范数向量U和原像抽样函数,确定该第L层签名是否正确,其中,U=H(m| Ir),HO为Hash函数,r为随机序列,η和m为正整数。
[0096]可选地,作为另一实施例,该第一确定子模块341具体用于当该第L层签名%满足等式\XefU mod q,且该%的欧几里得范数小于预设阈值时,确定该第L层签名正确;
[0097]其中,\为该第L层签名的公钥,且\ e ZqnXm,η和m为正整数表示矩阵的维度,q为正整数表示模数。
[0098]根据本发明实施例的多重签名装置300可对应于根据本发明实施例的多重签名的方法中的用户装置,并且多重签名装置300中的各个模块的上述和其它操作和/或功能分别为了实现图1至图3中的各个方法的相应流程,为了简洁,在此不再赘述。
[0099]因此,根据本发明实施例的多重签名装置,基于格上的SIS困难问题,通过将签名和重签名设置为格上的小范数向量,将重签名秘钥设置为格上的小范数矩阵,使得可以采用相同的算法生成各层签名,算法简洁有效,相应的验证开销小,此外,基于SIS困难问题的安全性,本发明实施例的多重签名方案的安全性强,且当该多重签名逆向进行时,即先执行第(L+1)层签名再执行第L层签名时,由于无法使得第L层签名的重签名秘钥为小范数矩阵且该第L层签名为小范数向量这两个条件同时满足,使得该逆向签名无法进行,因此,该多重签名方案具有单向性和不可逆性,改善了用户体验。
[0100]图5示出了根据本发明另一实施例的多重签名装置400的示意性框图。如图5所示,该多重签名装置400包括:处理器410、存储器420和总线系统430。其中,处理器410和存储器420通过总线系统430相连,该存储器420用于存储指令,该处理器410通过该总线系统430,调用该存储器420中存储的该指令,用于获取第L层签名,L为大于等于I的整数,该第L层签名为小范数向量;确定第(L+1)层签名的重签名秘钥,该第(L+1)层签名的重签名秘钥为小范数矩阵;根据该第L层签名和该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名。
[0101]因此,根据本发明实施例的多重签名装置,基于格上的小整数解SIS困难问题,通过将签名和重签名设置为格上的小范数向量,将重签名秘钥设置为格上的小范数矩阵,使得可以采用相同的算法生成各层签名,算法简洁有效,此外,由于SIS困难问题的安全性,本发明实施例的多重签名方案的安全性强,且具有单向性、不可逆性,相应的验证开销小,改善了用户体验。
[0102]应理解,在本发明实施例中,该处理器410可以是中央处理单元(CentralProcessing Unit,简称为“CPU”),该处理器410还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0103]该存储器420可以包括只读存储器和随机存取存储器,并向处理器510提供指令和数据。存储器420的一部分还可以包括非易失性随机存取存储器。例如,存储器420还可以存储装置类型的信息。
[0104]该总线系统430除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统430。
[0105]在实现过程中,上述方法的各步骤可以通过处理器410中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器420,处理器410读取存储器420中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
[0106]可选地,该处理器410具体用于确定该第(L+1)层签名为该第L层签名与该第(L+1)层签名的重签名秘钥的乘积。
[0107]可选地,作为另一实施例,该处理器410具体用于根据该第L层签名的公钥、该第(L+1)层签名的公钥和原像抽样函数,确定该第(L+1)层签名的重签名秘钥。
[0108]可选地,作为另一实施例,该处理器410具体用于根据如下公式确定该第(L+1)层签名的重签名秘钥:
[0109]A(l+1) XS(l+1)=Al mod q ;
[0110]其中,Sa+1)为该第(L+1)层签名的重签名秘钥,且Sa+1) e ZqmXm,A(L+1)为该第(L+1)层签名的公钥,且Aa+1) e ZqnXm,AL为该第L层签名的公钥,且kL e ZqnXm, η和m为正整数表示矩阵的维度,q为正整数表示模数。
[0111]可选地,作为另一实施例,该处理器410还用于在根据该第L层签名和该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名之前,确定该第L层签名是否正确;以及当该第L层签名正确时,根据该第L层签名和该第(L+1)层签名的重签名秘钥,确定该第(L+1)层签名。
[0112]可选地,作为另一实施例,该处理器410还用于根据该第L层签名的公钥、η维小范数向量U和原像抽样函数,确定该第L层签名是否正确,其中,U=H(m| |r),H()为Hash函数,r为随机序列,m和η均为正整数。
[0113]可选地,作为另一实施例,该处理器410具体用于当该第L层签名^满足等式ALXeL=U mod q,且该%的欧几里得范数小于预设阈值时,确定该第L层签名正确;
[0114]其中,\为该第L层签名的公钥,且\ e ZqnXm,η和m为正整数表示矩阵的维度,q为正整数表示模数。
[0115]根据本发明实施例的多重签名装置400可对应于根据本发明实施例的多重签名的方法中的用户装置,并且多重签名装置400中的各个模块的上述和其它操作和/或功能分别为了实现图1至图3中的各个方法的相应流程,为了简洁,在此不再赘述。
[0116]因此,根据本发明实施例的多重签名装置,基于格上的SIS困难问题,通过将签名和重签名设置为格上的小范数向量,将重签名秘钥设置为格上的小范数矩阵,使得可以采用相同的算法生成各层签名,算法简洁有效,相应的验证开销小,此外,基于SIS困难问题的安全性,本发明实施例的多重签名方案的安全性强,且当该多重签名逆向进行时,即先执行第(L+1)层签名再执行第L层签名时,由于无法使得第L层签名的重签名秘钥为小范数矩阵且该第L层签名为小范数向量这两个条件同时满足,使得该逆向签名无法进行,因此,该多重签名方案具有单向性和不可逆性,改善了用户体验。
[0117]应理解,包括前述各实施例中的多重签名装置的系统或将该多重签名装置作为一个模块的装置也应涵盖在本发明的保护范围之内。
[0118]应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0119]本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0120]所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0121]在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0122]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
[0123]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0124]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称为“ROM”)、随机存取存储器(Random Access Memory,简称为“RAM”)、磁碟或者光盘等各种可以存储程序代码的介质。
[0125]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
【权利要求】
1.一种多重签名的方法,其特征在于,包括: 获取第L层签名,L为大于等于I的整数,所述第L层签名为小范数向量; 确定第(L+1)层签名的重签名秘钥,所述第(L+1)层签名的重签名秘钥为小范数矩阵; 根据所述第L层签名和所述第(L+1)层签名的重签名秘钥,确定所述第(L+1)层签名。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第L层签名和所述第(L+1)层签名的重签名秘钥,确定所述第(L+1)层签名,包括: 确定所述第(L+1)层签名为所述第L层签名与所述第(L+1)层签名的重签名秘钥的乘积。
3.根据权利要求1或2所述的方法,其特征在于,所述确定第(L+1)层签名的重签名秘钥,包括: 根据所述第L层签名的公钥、所述第(L+1)层签名的公钥和原像抽样函数,确定所述第(L+1)层签名的重签名秘钥。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第(L+1)层签名的重签名秘钥由下式确定:
A(l+i) X S(l+1)=Al mod q ; 其中,Sa+1)为所述第(L+1)层签名的重签名秘钥,且Sa+1) e Z;Xm,A(L+1)为所述第(L+1)层签名的公钥,且Aa+1) e ZqnXm, Al为所述第L层签名的公钥,且kL e ZqnXm, η和m为正整数表示矩阵的维度,q为正整数表示模数。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在所述根据所述第L层签名和所述第(L+1)层签名的重签名秘钥,确定所述第(L+1)层签名之前,所述方法还包括: 确定所述第L层签名是否正确; 所述根据所述第L层签名和所述第(L+1)层签名的重签名秘钥,确定所述第(L+1)层签名,包括: 当所述第L层签名正确时,根据所述第L层签名和所述第(L+1)层签名的重签名秘钥,确定所述第(L+1)层签名。
6.根据权利要求5所述的方法,其特征在于,所述确定所述第L层签名是否正确,包括: 根据所述第L层签名的公钥、η维小范数向量U和原像抽样函数,确定所述第L层签名是否正确,其中,U=H(m| |r),HO为Hash函数,r为随机序列,η和m均为正整数。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第L层签名的公钥、η维小范数向量U和原像抽样函数,确定所述第L层签名是否正确,包括: 当所述第L层签名eL满足等式AljXe1=U mod q,且所述eL的欧几里得范数(EuclideanNorm)小于预设阈值时,确定所述第L层签名正确; 其中,\为所述第L层签名的公钥,且\ e ZqnXm,η和m为正整数表示矩阵的维度,q为正整数表示模数。
8.一种多重签名装置,其特征在于,包括: 获取模块,用于获取第L层签名,L为大于等于I的整数,所述第L层签名为小范数向量; 第一确定模块,用于确定第(L+1)层签名的重签名秘钥,所述第(L+1)层签名的重签名秘钥为小范数矩阵; 第二确定模块,用于根据所述获取模块获取的所述第L层签名和所述第一确定模块确定的所述第(L+1)层签名的重签名秘钥,确定所述第(L+1)层签名。
9.根据权利要求8所述的多重签名装置,其特征在于,所述第二确定模块具体用于确定所述第(L+1)层签名为所述第L层签名与所述第(L+1)层签名的重签名秘钥的乘积。
10.根据权利要求8或9所述的多重签名装置,其特征在于,所述第一确定模块具体用于根据所述第L层签名的公钥、所述第(L+1)层签名的公钥和原像抽样函数,确定所述第(L+1)层签名的重签名秘钥。
11.根据权利要求8至10中任一项所述的多重签名装置,其特征在于,所述第一确定模块具体用于根据如下公式确定所述第(L+1)层签名的重签名秘钥;
A(l+i) X S(l+1)=Al mod q ; 其中,Sa+1)为所述第(L+1)层签名的重签名秘钥,且Sa+1) e Z;Xm,A(L+1)为所述第(L+1)层签名的公钥,且Aa+1) e ZqnXm, Al为所述第L层签名的公钥,且kL e ZqnXm, η和m为正整数表示矩阵的维度,q为正整数表示模数。
12.根据权利要求8至11中任一项所述的多重签名装置,其特征在于,所述多重签名装置还包括: 第三确定模块,用于在所述第二确定模块根据所述第L层签名和所述第(L+1)层签名的重签名秘钥,确定所述第(L+1)层签名之前,确定所述第L层签名是否正确; 所述第二确定模块具体用于当所述第三确定模块确定所述第L层签名正确时,根据所述第L层签名和所述第(L+1)层签名的重签名秘钥,确定所述第(L+1)层签名。
13.根据权利要求12所述的多重签名装置,其特征在于,所述第三确定模块包括: 第一确定子模块,用于根据所述第L层签名的公钥、η维小范数向量U和原像抽样函数,确定所述第L层签名是否正确,其中,U=H(m| |r),H()为Hash函数,r为随机序列,η和m均为正整数。
14.根据权利要求13所述的多重签名装置,其特征在于,所述第一确定子模块具体用于当所述第L层签名eL满足等式AljXe1=U mod q,且所述eL的欧几里得范数(EuclideanNorm)小于预设阈值时,确定所述第L层签名正确; 其中,\为所述第L层签名的公钥,且\ e ZqnXm,η和m为正整数表示矩阵的维度,q为正整数表示模数。
【文档编号】H04L9/32GK104184584SQ201310200410
【公开日】2014年12月3日 申请日期:2013年5月27日 优先权日:2013年5月27日
【发明者】雷浩, 江明明, 胡予濮 申请人:华为技术有限公司