【技术实现步骤摘要】
本专利技术涉及信息安全
,特别是涉及一种P元域SM2椭圆曲线的数字签名生成、验证及混合系统。
技术介绍
随着通信技术和信息处理技术的发展,信息在传输过程中的安全性越来越受到关注,需要通过信息处理技术来保证信息在通信过程中不被窃听、篡改和仿造。密码技术能很好的解决这方面的要求。 自从1976年Diffie和Hellmann提出公钥密码体制的概念以来,出现了 3类公认的安全有效的公钥密码系统,其依赖的数学问题分别为整数因数分解问题(IFP)、离散对数问题(DLP)和椭圆曲线离散对数问题(ECDLP),对应的算法依次是RSA算法、DSA数字签名算法、椭圆曲线算法(ECC)。这三种问题均基于计算复杂性的NPC问题(Non-deterministicPolynomial Complete problem)来保证密钥的安全性的。相对于另外两种算法,ECC的安全性能更高、计算量更小,处理速度更快、在安全性相同的情况下所需要的密钥尺寸更小、对带宽的要求更低,因此,ECC体制具有更为广阔的应用前景。SM2椭圆曲线公钥密码算法是国家密码管理局发布的一种ECC算法,其包括数字签 ...
【技术保护点】
一种p元域SM2椭圆曲线的数字签名生成系统,所述数字签名包括一号签名段r和二号签名段s;其特征在于,该系统包括:签名控制中心、密码杂凑模块、随机数生成模块、倍点运算模块、s生成模块;其中,所述签名控制中心用于,将待签名消息m与签名方杂凑值ZA进行拼接,将得到的拼接消息m’发送到所述密码杂凑模块;根据r=(e+x1)mod?n计算得到r;将r发送到所述s生成模块;在r=0、r+k=n或s=0的情况下,通知所述随机数生成模块重新生成k;将k发送到所述倍点运算模块、s生成模块;将r和s作为m的数字签名输出;所述密码杂凑模块用于,对m’进行密码杂凑运算,将生成的拼接消息杂凑值e发送 ...
【技术特征摘要】
1.一种P元域SM2椭圆曲线的数字签名生成系统,所述数字签名包括一号签名段r和二号签名段s ;其特征在于,该系统包括签名控制中心、密码杂凑模块、随机数生成模块、倍点运算模块、s生成模块;其中, 所述签名控制中心用于,将待签名消息m与签名方杂凑值ZA进行拼接,将得到的拼接消息m’发送到所述密码杂凑模块;根据r = (e+xl)mod η计算得到r ;将r发送到所述s生成模块;在r = O、r+k = η或s = O的情况下,通知所述随机数生成模块重新生成k ;将k发送到所述倍点运算模块、s生成模块;将r和s作为m的数字签名输出; 所述密码杂凑模块用于,对m’进行密码杂凑运算,将生成的拼接消息杂凑值e发送到所述签名控制中心; 所述随机数生成模块用于,将生成的随机数k发送到所述签名控制中心; 所述倍点运算模块用于,对所述椭圆曲线的基G进行k倍点运算,将生成的坐标(xl,yl)作为运算结果[k]G发送到所述签名控制中心; 所述s生成模块用于,根据s = [(1+dAr1 · (k-r · dA)]mod η生成s,将生成的s发送到所述签名控制中心; 其中,η为所述椭圆曲线的阶,dA为签名方的私钥。2.根据权利要求I所述的系统,其特征在于,所述s生成模块包括s生成控制子模块、域转换子模块、蒙哥马利域乘法子模块、有限域求逆子模块; 所述s生成控制子模块用于,接收所述签名控制中心发送的r和k在有限域的值;将(Ι+dA)在有限域的值发送到所述有限域求逆子模块Jfr、dA、k、(1+dAr1在有限域的值发送到所述域转换子模块;将r和dA各自在蒙哥马利域的值发送到所述蒙哥马利域乘法子模块,用k在蒙哥马利域的值与其返回的(r · dA)在蒙哥马利域的值进行减法运算,得到(k-r · dA)在蒙哥马利域的值;将(Ι+dAr1和(k-r · dA)各自在蒙哥马利域的值发送到所述蒙哥马利域乘法子模块,并将其返回的[(1+dAr1 · (k-r-dA)]在仿射坐标系的值与I发送到所述蒙哥马利域乘法子模块;将s = [(1+dAr1· (k-r* dA)] mod η在有限域的值s发送到所述签名控制中心; 所述域转换子模块用于,将(l+dA)—1、!·、dA和k在有限域的值分别转换为各自在蒙哥马利域的值,发送到所述s生成控制子模块; 所述蒙哥马利域乘法子模块用于,对r和dA 二者在蒙哥马利域的值进行蒙哥马利域乘法运算,将得到的(r · dA)在蒙哥马利域的值返回所述s生成控制子模块;将(Ι+dAr1和(k-r*dA) 二者在蒙哥马利域的值进行蒙哥马利域乘法运算,将得到的[(1+dAr1· (k-r-dA)]在仿射坐标系的值返回所述s生成控制子模块;对[(1+dAr1 · (k-r · dA)]在仿射坐标系的值与I进行蒙哥马利域乘法运算,将得到的s =[(1+dA) · (k-r · dA) ]mod η在有限域的值s发送到所述s生成控制子模块; 所述有限域求逆子模块用于,对(Ι+dA)在有限域的值进行求逆运算,将得到的(Ι+dAr1在有限域的值发送到所述s生成控制子模块。3.根据权利要求I或2所述的系统,其特征在于,所述倍点运算模块包括倍点运算控制子模块、域转换子模块、蒙哥马利域乘法子模块、射影系点加子模块、射影系二倍点运算子模块、有限域求逆子模块;其中, 所述倍点运算控制子模块用于,将G在仿射坐标系下的坐标(X,y)转换为射影坐标系下的坐标(x2,72,1),并将12、72、1发送到所述域转换子模块;将(x3,y3,z3)作为[k]G在蒙哥马利域的坐标(xl,yl, zl)的初始值;确定k的二进制比特长度L ;将k的二进制形式中的次高比特位作为其当前比特位的初始值,从所述k的二进制形式中的次高比特位开始,每次降低一个比特位作为当前比特位,直至其最低比特位为止,进行(L-I)次迭代运算;将所述(L-I)次迭代运算的结果坐标(xl,yl,zl)中的zl发送到所述蒙哥马利域乘法子模块;将所述蒙哥马利域乘法子模 块返回的zl在有限域的值发送到所述有限域求逆子模块;将所述有限域求逆子模 块返回的ζΓ1在有限域的值发送到所述域转换子模块;将所述(L-I)次迭代运算的结果坐标(xl,yl,zl)中的xl、yl以及ζΓ1各自在蒙哥马利域的值发送到所述蒙哥马利域乘法子模块,并将其返回的xl、yl 二者在仿射坐标系的值分别与I发送到所述蒙哥马利域乘法子模块;将所述蒙哥马利域乘法子模块返回的xl、yl 二者在有限域的值作为[k]G在有限域的坐标(xl,yl)发送到所述签名控制中心;其中的一次所述的迭代运算包括将当前的(xl,yl,zl)发送到所述射影系二倍点运算子模块、在所述当前比特位为二进制I的情况下,将所述射影系二倍点运算子模块返回的输出坐标发送到所述射影系点加子模块; 所述域转换子模块用于,将x2、y2、l在有限域的值分别转换为各自在蒙哥马利域的值x3、y3、z3,并将其返回所述倍点运算控制子模块;将ζΓ1在有限域的值转换为其在蒙哥马利域的值,并将其返回所述倍点运算控制子模块; 所述射影系点加子模块用于,将输入坐标与(x3,y3,z3)进行点加运算,将运算结果发送到所述倍点运算控制子模块; 所述射影系二倍点运算子模块用于,对输入坐标进行二倍点运算,将运算结果作为输出坐标返回至所述倍点运算控制子模块; 所述蒙哥马利域乘法子模块用于,对zl与I进行蒙哥马利域乘法运算,将得到的zl在有限域的值发送到所述倍点运算控制子模块;对xl与ζΓ1 二者在蒙哥马利域的值、yl与ζΓ1 二者在蒙哥马利域的值分别进行蒙哥马利域乘法运算,将得到的xl、yl 二者在仿射坐标系的值返回所述倍点运算控制子模块;将所述倍点运算控制子模块发送的xl、yl 二者在仿射坐标系的值分别与I进行蒙哥马利域乘法运算,将得到的xl、yl 二者在有限域的值返回到所述倍点运算控制子模块; 所述有限域求逆子模块用于,对zl在有限域的值进行求逆运算,将得到的ζΓ1在有限域的值发送到所述倍点运算控制子模块。4.一种P元域SM2椭圆曲线的数字签名验证系统,该系统用于验证权利要求1-3中任一权利要求所述的数字签名生成系统所生成的数字签名,其特征在于,该系统包括验证控制中心、密码杂凑模块、倍点运算模块、点加模块;其中, 所述验证控制中心用于,将接收的r’和s’作为所述数字签名生成系统输出的待验证消息M,的数字签名;判断r’和s’是否均在I与(η-i)之间;将M,与签名方杂凑值TA’进行拼接,将得到的验证方拼接消息XT7发送到所述密码杂凑模块;根据t= (r' +s' )mod η确定t,判断t是否为O ;将S,和t发送到所述倍点运算模块,将所述倍点运算模块返回的[s' ]G和[t]PA发送到所述点加模块;根据R = (e' +xl' )mod η确定R,并判断R是否与r’相等;判断出r’不在I与(η-i)之间、s’不在I与(n_l)之间、t为O、R与r’不相等中的任一情况时,输出数字签名验证不通过的消息,上述各情况均不出现时,输出数字签名验证通过的消息;其中,η为所述椭圆曲线的阶; 所述密码杂凑模块用于,对0进行密码杂凑运算,将生成的验证方拼接消息杂凑值e’发送到所述验证控制中心; 所述倍点运算模块用于,对所述椭圆曲线的基G进行S,倍点运算,将得到的运算结果[s, ]G发送到所述验证控制中心;对签名方的公钥PA进行t倍点运算,将得到的运算结果[t]PA发送到所述验证控制中心; 所述点加模块用于,对输入的[s' ]6和[t]PA进行点加运算,将运算结果(xl',Yli )发送到所述验证控制中心。5.根据权利要求4所述的系统,其特征在于,所述倍点运算模块包括倍点运算控制子模块、域转换子模块、蒙哥马利域乘法子模块、射影系点加子模块、射影系二倍点运算子模 块、有限域求逆子模块;其中, 所述倍点运算控制子模块用于,将G、PA在仿射坐标系下的坐标(x2’,y2’)、(x5’,y5’)分别转换为射影坐标系下的坐标(x3’,y3’,I)、(x6’,y6’,I),并分别将x3’、y3’、I和x6’、y6M发送到所述域转换子模块;将(x4’,y4’,z4’ )和(x7’,y7’,z7’ )分别发送到所述射影系点加子模块,并将其分别作为[s' ]6和[t]PA在蒙哥马利域的坐标(χ Γ,yll’,zir )和(xl2’,yl2’,zl2’ )的初始值;分别确定s’和t的二进制比特长度LA和LB ;分别将LA和LB的二进制形式中的次高比特位作为各自当前比特位的初始值,并分别从各自的次高比特位开始,每次降低一个比特位作为各自的当前比特位,直至各自的最低比特位为止,分别进行(LA-I)和(LB-I)次迭代运算;分别将所述(LA-I)和(LB-I)次迭代运算的结果坐标(Xll’,yir,Zir )和(xl2’,yl2’,zl2’ )中的ζ Γ和ζ12’发送到所述蒙哥马利域乘法子模块;分别将所述蒙哥马利域乘法子模块返回的ζΙΓ和ζ12’在有限域的值发送到所述有限域求逆子模块;分别将所述有限域求逆子模块返回的Zll' ―1和ζ12' ―1在有限域的值发送到所述域转换子模块;将所述(LA-I)次迭代运算的结果坐标(xll’,yir,ζΙΓ)中的xll’,yir以及zll' ―1在蒙哥马利域的值发送到所述蒙哥马利域乘法子模块,将其返回的χ Γ、yll’ 二者在仿射坐标系的值分别与I发送到所述蒙哥马利域乘法子模块;将所述(LB-I)次迭代运算的结果坐标(xl2’,yl2’,zl2’)中的xl2’,yl2’以及zl2' 1在蒙哥马利域的值发送到所述蒙哥马利域乘法子模块,将其返回的xl2’、yl2’ 二者在仿射坐标系的值分别与I发送到所述蒙哥马利域乘法子模块;将所述蒙哥马利域乘法子模块返回的χ Γ、yll’ 二者在有限域的值作为[s' ]6在有限域的坐标(χ Γ,yll’ )发送到所述验证控制中心;将所述蒙哥马利域乘法子模块返回的xl2’、yl2’ 二者在有限域的值作为[t]PA在有限域的坐标(xl2’,yl2’ )发送到所述验证控制中心;其中的一次所述的迭代运算包括分别将[s' ]6和[t]PA 的坐标(χ Γ,yll’,ζΙΓ )、(χ12’,yl2’,ζ12’ )的当前值发送到所述射影系二倍点运算子模块、在s’的当前比特位为二进制I的情况下,将所述射影系二倍点运算子模块返回的(xir,yll’,zir )的当前值发送到所述射影系点加子模块、在t的当前比特位为二进制I的情况下,将所述射影系二倍点运算子模块返回的(xl2’,yl2’,zl2’ )的当前值发送到所述射影系点加子模块; 所述域转换子模块用于,分别将x3’、y3’、I和x6’、y6’、I在有限域的值转换为各自在蒙哥马利域的值x4’、y4’、z4’和x7’、y7’、z7’,并将其返回所述倍点运算控制子模块;分别将zll, ―1和zl2, ―1在有限域的值转换为其在蒙哥马利域的值,并将其返回所述倍点运算控制子模块; 所述射影系点加子模块用于,将输入的(Xll’,yir,Zir)的当前值与(X4’,y4’,z4’)进行点加运算,将运算结果作为新的(χ Γ,yll’,zir )的当前值发送到所述倍点运算控制子模块;将输入的(xl2’,yl2’,zl2’ )的当前值与(x7’,y7’,z7’ )进行点加运算,将运算结果作为新的(xl2’,yl2’,zl2’ )的当前值发送到所述倍点运算控制子模块; 所述射影系二倍点运算子模块用于,对输入的[s' ]6和[t]PA的坐标(χ Γ,yll’,ζΙΓ )> (xl2’,yl2’,zl2’ )的当前值分别进行二倍点运算,将运算结果分别作为(xll’,yll’,zll’)和(xl2’,yl2’,zl2’)的当前值返回至所述倍点运算控制子模块; 所述蒙哥马利域乘法子模块用于,对zll’与I进行蒙哥马利域乘法运算,将得到的ζΙΓ在有限域的值发送到所述倍点运算控制子模块;对zl2’与I进行蒙哥马利域乘法运算,将得到的zl2’在有限域的值发送到所述倍点运算控制子模块;对xll’与zll, ―1各 自在蒙哥马利域的值、yll’与ZlP ―1各自在蒙哥马利域的值分别进行蒙哥马利域乘法运算,将得到的xll’、yll’ 二者在仿射坐标系的值返回所述倍点运算控制子模块;将所述倍点运算控制子模块发送的xll’、yll’二者在仿射坐标系的值分别与I进行蒙哥马利域乘法运算,将得到的xll’、yll’ 二者在有限域的值返回到所述倍点运算控制子模块;对xl2’与zl2' ―1 二者在蒙哥马利域的值、yl2’与zl2' ―1 二者在蒙哥马利域的值分别进行蒙哥马利域乘法运算,将得到的xl2’、yl2’二者在仿射坐标系的值返回所述倍点运算控制子模块;将所述倍点运算控制子模块发送的xl2’、yl2’二者在仿射坐标系的值分别与I进行蒙哥马利域乘法运算,将得到的xl2’、yl2’ 二者在有限域的值返回到所述倍点运算控制子模块;所述有限域求逆子模块用于,分别对zll’和zl2’在有限域的值进行求逆运算,将得到的zll, ―1和zl2, ―1在有限域的值发送到所述倍点运算控制子模块。6.根据权利要求4所述的系统,其特征在于,所述点加模块包括点加控制子模块、域转换子模块、射影系点加子模块、蒙哥马利域乘法子模块、有限域求逆子模块;其中, 所述点加控制子模块用于,接收所述验证控制中心发送的[s' ]6和[t]PA在仿射坐标系下的坐标(xll’,yir )和(xl2’,yl2’),将二者分别转换为各自在射影坐标系下的坐标(xll’,yll’,l)和(xl2’,yl2’,l),并将 xll’、yll’、l 和 xl2’、yl2’、l 发送到所述域转换子模块;将所述域转换子模块返回的Xll’、yir、I和Xl2’、yl2’、I在蒙哥马利域的值Xlir、ylll’、zlir和Χ12Γ、712Γ、ζ12Γ发送到所述射影系点加子模块;将所述射影系点加子模块返回的[s' ]G+[t]PA在射影坐标系下的坐标(xl31’,yl31’,zl3r)中的zl31’发送到所述蒙哥马利域乘法子模块;将所述蒙哥马利域乘法子模块返回的ζ13Γ在有限域的值发送到所述有限域求逆子模块;将所述有限域求逆子模块返回的ζ131' ―1在有限域的值发送到所述域转换子模块;将[s' ]G+[t]PA在射影坐标系下的坐标(χ13Γ,yl31’,zl31’ )中的X131’、y131’以及zl31' ―1在蒙哥马利域的值发送到所述蒙哥马利域乘法子模块,将其返回的X131’、yl31’ 二者在仿射坐标系的值分别与I发送到所述蒙哥马利域乘法子模块;将所述蒙哥马利域乘法子模块返回的xl31’、yl31’ 二者在有限域的值作为(χΓ,Yli )发送到所述验证控制中心; 所述域转换子模块用于,分别将xll’、yll’、I和xl2’、yl2’、I在有限域的值转换为各自在蒙哥马利域的值χΙ Γ、ylll’、ζΙ Γ和xl21’、yl21’、zl21’,并将其返回所述点加控制子模块;将ζ131' ―1在有限域的值转换为其在蒙哥马利域的值,并将ζ131' ―1在蒙哥马利域的值返回所述点加控制 子模块; 所述射影系点加子模块用于,将输入的xlir、ylll’、zlir和xl21’、yl21’、zl21’进行点加运算,将运算结果作为[s' ]G+[t]PA在射影坐标系下的坐标(Χ13Γ,713Γ,ζ13Γ)发送到所述点加控制子模块; 所述蒙哥马利域乘法子模块用于,对输入的ζ13Γ与I进行蒙哥马利域乘法运算,将得到的ζ13Γ在有限域的值发送到所述点加控制子模块;对χ13Γ与zll' ―1各自在蒙哥马利域的值、yl31’与zll' ―1各自在蒙哥马利域的值分别进行蒙哥马利域乘法运算,将得到的X131’、y131’ 二者在仿射坐标系的值返回所述点加控制子模块;将所述点加控制子模块发送的X131’、yl31’ 二者在仿射坐标系的值分别与I进行蒙哥马利域乘法运算,将得到的xl31’、yl3r 二者在有限域的值返回到所述点加控制子模块; 所述有限域求逆子模块用于,对输入的ζ13Γ在有限域的值进行求逆运算,将得到的zl31, 1在有限域的值发送到所述点加控制子模块。7.—种P元域SM2椭圆曲线的数字签名生成、验证混合系统,所述椭圆曲线的阶为n,基为G,签名方具有公钥PA和私钥dA ;其特征在于,该系统包括签名控制中心、验证控制中心、随机数生成模块、s生成模块、密码杂凑模块、倍点运算模块、上层复选模块、点加模块;所述密码杂凑模块、倍点运算模块均具有签名生成模式和签名验证模式;其中, 所述签名控制中心用于,向所述上层复选模块发送签名生成模式信号;将待签名消息m与签名方杂凑值ZA进行拼接,将得到的拼接消息m’通过所述上层复选模块发送到所述密码杂凑模块;根据r = (e+xl)mod η计算得到r ;将r发送到所述s生成模块;在r = O、r+k = η或s = O的情况下,通知所述随机数生成模块重新生成k ;将k发送到所述s生成模块通过所述上层复选模块发送到所述倍点运算模块;将1·和s作为m的数字签名输出; 所述验证控制中心用于,向所述上层复选模块发送签名验证模式信号;将接收的r’和s’作为所述数字签名生成系统输出的待验证消息M,的数字签名;判断r’和s’是否均在I与(n-Ι)之间;将,与签名方杂凑值ZA’进行拼接,将得到的验证方拼...
【专利技术属性】
技术研发人员:徐树民,屈善新,刘振,王绍麟,田心,刘建巍,
申请(专利权)人:航天信息股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。