CN107819581B - 包含秘密的数和椭圆曲线点的生成方法及系统 - Google Patents
包含秘密的数和椭圆曲线点的生成方法及系统 Download PDFInfo
- Publication number
- CN107819581B CN107819581B CN201710984613.7A CN201710984613A CN107819581B CN 107819581 B CN107819581 B CN 107819581B CN 201710984613 A CN201710984613 A CN 201710984613A CN 107819581 B CN107819581 B CN 107819581B
- Authority
- CN
- China
- Prior art keywords
- mod
- secret
- elliptic curve
- generation method
- curve point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
发明涉及包含秘密的数和椭圆曲线点的生成方法:装置1和2分别有秘密g1、w1和g2、w2;装置1计算s0=E(w1),s1=E((w1g1)mod n),E()为加法同态加密;装置2用s0、s1计算得到同态加密密文数s2,s2的明文数与w1w2(g1+g2+h)mod n模n同余,n为素数,h为常数;装置1解密s2计算得到c=w1w2(g1+g2+h)mod n,P1=[w1c‑1]G,G为椭圆曲线点;装置2利用P1计算得到P=[(g1+g2+h)‑1]G;据此方法结合相应的私钥dA的秘密共享方案,可在两装置不知道b、dA,及不暴露秘密的情况下计算得到b(1+dA)‑1mod n和[dA]G。
Description
技术领域
本发明属于信息安全技术领域,特别是包含秘密的数和椭圆曲线点的生成方法及系统。
背景技术
SM2是由国家密码管理局颁布的一种椭圆曲线公钥密码算法(参见《SM2椭圆曲线公钥密码算法》规范,国家密码管理局,2010年12月),基于此算法能实现数字签名、密钥交换及数据加密。但是,由于SM2算法独特的数字签名运算方式,通常的秘密共享方式及对应的基于秘密共享的密码运算方式,无法适合于使用SM2私钥进行数字签名的情形。
针对此问题,本专利申请的发明人曾经提出了一些基于秘密共享的 SM2数字签名协同生成技术方案。这些技术方案有的采用乘积秘密共享,有的采用求和秘密共享。对于采用求和秘密共享的技术方案,比如,秘密共享是(d1+d2+...+dm)mod n=(1+dA)-1,或者是(b1+b2+...+bm)mod n=b-1且c=b(1+dA)-1mod n的方案,在用户私钥dA是预先已生成的时候,应用起来很容易,但是,在用户私钥dA不是预先已生成的时候,应用起来有点问题,这些问题归咎起来就是,如何在参与协同计算的装置都预先不知道b、dA并在不暴露各自秘密的情况下,协同计算得到b(1+dA)-1mod n 和椭圆曲线点[dA]G(即dA对应的公钥)。本专利申请的目的就是针对两个装置采用求和共享秘密的情况,解决此问题。
发明内容
本发明的目的是针对SM2秘密共享算法中的两个装置采用求和共享秘密时,在不知道b、dA并不暴露各自秘密的情况下计算得到b(1+dA)-1)mod n和椭圆曲线点[dA]G的需求,提出相应的技术方案,其中dA是两个装置在不知晓最终生成的用户私钥的情况下协同生成的用户的SM2私钥。
针对以上目的,本发明提出的技术方案包括:包含秘密的数的生成方法、包含秘密的椭圆曲线点的生成方法以及相应的系统,具体如下。
在以下对本发明技术方案的描述中,若P、Q是椭圆曲线点群中的元素(点),则P+Q表示P、Q的点加,P-Q表示P加上Q的逆元,[k]P表示k个椭圆曲线点P的点加,即P+P+...+P(共有k个P);省略号“...”,表示多个同样(类型)的数据项或多个同样的运算;c-1表示整数c的模n 乘法逆(即cc-1mod n=1);多个整数相乘(包括整数符号相乘、常数与整数符号相乘),在不产生二义性的情况下,省略掉乘号“·”,如k1·k2简化为k1k2,3·c简化为3c;mod n表示模n运算(modulo operation),对应于《SM2椭圆曲线公钥密码算法》规范(国家密码管理局,2010年 12月)中的modn;还有,模n运算的算子mod n的优先级是最低的,如 a+b mod n等同于(a+b)mod n,a-b mod n等同于(a-b)mod n,ab mod n 等同于(ab)mod n。
本发明的包含秘密的数的生成方法具体如下。
所述包含秘密的数的生成方法涉及分别被称为第一装置和第二装置的两个装置,其中,第一装置有[1,n-1]中的整数秘密g1,第二装置有 [1,n-1]中的整数秘密g2,n是一个素数(这里的g1、g2是第一装置、第二装置分别随机选择或生成的整数);
所述第一装置、第二装置按如下方式计算得到包含秘密g1、g2的数 c=w1w2(g1+g2+h)mod n,其中h是一个整数常数,w1、w2是第一装置、第二装置分别在[1,n-1]中随机选取或生成的整数(w1、w2是计算过程中或预先随机选取或生成的整数):
第一装置计算s0=E(w1),s1=E((w1g1)mod n),其中,E(·)是使用第一装置的公钥的加法同态加密的加密运算;第一装置将s0、s1发送给第二装置;
第二装置接收到s0、s1后,检查s0是否为零的加密结果,若是,则向第一装置返回出错提示,否则,第二装置,利用s1、s0、w2、g2、h及前述加法同态加密的加密运算E(·),计算得到一个密文数s2,且使得 s2对应的明文数与(w1w2(g1+g2+h))mod n模n同余;计算得到s2的方式包括(但不限于):
s2=((w2+z1n)⊙s1)⊕(((w2(g2+h)mod n)+z2n)⊙s0)⊕E(z3n),
或s2=(w2⊙(s1⊕E(z1n)))⊕(((w2(g2+h)mod n)+z2n)⊙s0)⊕E(z3n),
或s2=((w2+z1n)⊙s1)⊕((w2(g2+h)mod n)⊙(s0⊕E(z2n)))⊕E(z3n),
或s2=(w2⊙(s1⊕E(z1n)))⊕((w2(g2+h)mod n)⊙(s0⊕E(z2n)))⊕E(z3n),
其中⊕表示同态加密的密文数的加运算(对应相应明文数相加后的加密结果),⊙表示同态加密中的明文数与密文数的乘运算(对应多个相同密文数的⊕累加),z1、z2、z3是只有第二装置知道的整数(z1、z2、z3是在计算过程中随机选择或生成的,或者由第二装置按预定的规则选择的,z1、z2、z3的取值对第一装置保密,z1、z2、z3的取值范围不限于[1.n-1],z1、z2、z3可正、可负,可为0;当s0、s1对应的明文数的取值在[1,n-1] 范围内时,z1、z2、z3的取值使得s2对应的明文数不超出加法同态加密的明文数的补码的表示范围,或者使得s2对应的明文数超出加法同态加密的明文数的补码的表示范围的概率极小);
第二装置将s2发送给第一装置;
第一装置接收到s2后,计算c=D(s2)mod n,其中D(·)是使用第一装置的私钥的加法同态加密的解密运算;
若c=0,则两个装置重新选择或生成秘密g1、g2,重新计算c,直到 c≠0;
则c即为生成的包含秘密g1、g2(以及w1、w2)的数;
在以上过程中应用的加法同态加密针对被加密的明文数进行运算所对应的模m大于n。
(在以上过程中,针对加法同态加密中运算数的正、负以模m补码表示,比如,1到[m/2]的整数为正整数,[m/2]+1到m-1的整数为负整数,其中[m/2]表示m/2取整)。
第二装置检查s0是否为零的加密结果的一种方法如下:
第二装置在加法同态加密允许的范围内任选非零整数u和q(可正、可负,若为负,则u、q取模m补码,其中m是加法同态加密针对被加密的明文数进行运算所对应的模),所述在加法同态加密允许的范围内是指当w1在[1,n-1]范围内时,选择的u和q使得qw1+u不超出加法同态加密表示无符号数或补码的范围(不会产生溢出,具体是无符号数还是补码,取决于双方的约定);
第二装置计算h=(q⊙s0)⊕E(u),然后将h、u发送给第一装置;
第一装置接收到h后,解密h,计算得到q(即计算(D(h)-u)/w1),然后将q返回第二装置;
第二装置接收到第一装置返回的q后,检查第一装置返回的q与自己之前选择的q是否相同,若相同,则确定s0不为零的加密结果;若第一装置无法返回通过解密获得的q,或者返回的q与第二装置之前选择的 q不同,则确定s0为零的加密结果。
基于以上包含秘密的数的生成方法,可构建相应的包含秘密的数的生成系统,系统包括两个装置,其中一个装置作为所述包含秘密的数的生成方法中的第一装置,另一个装置作为所述包含秘密的数的生成方法中的第二装置,所述两个装置按所述包含秘密的数的生成方法生成包含秘密g1、g2的数c。
本发明的包含秘密的椭圆曲线点的生成方法具体如下。
所述包含秘密的椭圆曲线点的生成方法建立在前面所述的包含秘密的数的生成方法的基础上,具体地,所述第一装置、第二装置按如下方式计算得到包含秘密g1、g2的椭圆曲线点P=[(g1+g2+h)-1]G,其中(g1+g2+h)-1是(g1+g2+h)的模n乘法逆(即(g1+g2+h)-1(g1+g2+h)mod n=1),n是SM2椭圆曲线密码算法的椭圆曲线点群的阶(一个素数),G是SM2椭圆曲线密码算法的椭圆曲线点群中的一个点(SM2椭圆曲线密码算法的椭圆曲线点群,是由基点生成的循环群,SM2椭圆曲线点群的阶也是基点的阶,但这个算式中的G可以是,也可以不是SM2椭圆曲线点群的基点):
所述第一装置、第二装置先按所述包含秘密的数的生成方法,计算得到c;
之后,第一装置计算P1=[w1(c-1)]G,然后将P1发送给第二装置,其中 c-1是c的模n乘法逆(即(c(c-1))mod n=1);
第二装置计算P=[w2]P1,则P即为要计算得到的椭圆曲线点(注:P1、P都是非保密的,可以自由传送)。
基于以上包含秘密的数据和椭圆曲线点的生成方法,可构建相应的包含秘密的数据和椭圆曲线点的生成系统,系统包括两个装置,其中一个装置作为所述包含秘密的数据和椭圆曲线点的生成方法中的第一装置,另一个装置作为所述包含秘密的数据和椭圆曲线点的生成方法中的第二装置;
所述两个装置按前述包含秘密的数据和椭圆曲线点的生成方法,计算得到包含秘密的数c=w1w2(g1+g2+h)mod n,椭圆曲线点P=[(g1+g2+h)-1]G。
从以上发明内容可以看到,基于本发明的,两个装置能够利用自己独立选择或生成的秘密g1、g2计算得到包含秘密的数w1w2(g1+g2+h)mod n 和椭圆曲线点[(g1+g2+h)-1]G,而结合根据具体的秘密共享方案,给出合适的g1、g2取值,即可在w1w2(g1+g2+h)mod n和[(g1+g2+h)-1]G的基础上,在两个装置预先都不知道b、dA、以及都不暴露各自秘密的情况下,计算得到数b(1+dA)-1mod n和椭圆曲线点[dA]G,关于这点,从具体实施方式中给出的实施例可以清楚看到(多数情况下(w1w2)mod n即是两个装置都不知道的b,而当G是SM2椭圆曲线点群的基点时,[(g1+g2+h)-1]G-G即为公钥[dA]G)。
具体实施方式
下面结合实施例对本发明作进一步的描述。以下实施例可用于相应的基于秘密共享的SM2数字签名生成方法及系统中的有关参数的安全计算。以下实施例不代表全部可能的实施例,不作为对本发明的限定。
实施例1、
在此实施例中,第一装置、第二装置分别有[1,n-1]中的秘密d1、d2,且d1、d2与用户的SM2私钥dA满足关系(d1+d2)mod n=(1+dA)-1,其中(1+dA)-1是(1+dA)的模n乘法逆(即(1+dA)-1(1+dA)mod n=1);所述第一装置、第二装置,利用前述包含秘密的数和椭圆曲线点的生成方法,按如下方式计算得到(w1w2(1+dA)-1)mod n、[dA]G:
第一装置取g1=d1;
第二装置取g2=d2,h=0;
两个装置按上述包含秘密的数的生成方法计算得到c,c为 (w1w2(1+dA)-1)mod n,而b=(w1w2)mod n即为两个装置都不知道的[1,n-1] 中的秘密数;
两个装置按上述椭圆曲线点的生成方法生成P;
第一装置或第二装置计算Q=P-G,则Q即为[dA]G。
实施例2、
在此实施例中,第一装置、第二装置分别有[1,n-1]中的秘密d1、d2,且d1、d2与用户的SM2私钥dA满足关系(d1+d2)mod n=(-dA(1+dA)-1)mod n (即((1+dA)-1-1)mod n);所述第一装置、第二装置,利用前述包含秘密的数和椭圆曲线点的生成方法,按如下方式计算得到(w1w2(1+dA)-1)mod n、 [dA]G:
第一装置取g1=d1;
第二装置取g2=d2,h=1;
两个装置按上述包含秘密的数的生成方法计算得到c,c为 (w1w2(1+dA)-1)mod n,而b=(w1w2)mod n即为两个装置都不知道的[1,n-1] 中的秘密数;
两个装置按上述椭圆曲线点的生成方法生成P;
第一装置或第二装置计算Q=P-G,则Q即为[dA]G。
实施例3、
在此实施例中,第一装置、第二装置分别有[1,n-1]中的秘密d1、d2,且d1、d2与用户的SM2私钥dA满足关系(d1d2)mod n=(-dA(1+dA)-1)mod n(即 ((1+dA)-1-1)mod n);
所述第一装置、第二装置,利用前述包含秘密的数和椭圆曲线点的生成方法,按如下方式计算得到(w1w2(1+dA)-1)mod n、[dA]G:
第一装置取g1=(d1)-1,其中(d1)-1是d1的模n乘法逆;
第二装置取g2=d2,h=0;
两个装置按上述包含秘密的数的生成方法计算得到c;
第一装置计算c1=(cd1)mod n,c1为(w1w2(1+dA)-1)mod n,而b=(w1w2)mod n即为两个装置都不知道的[1,n-1]中的秘密数;
两个装置按上述椭圆曲线点的生成方法生成P;
第一装置计算Q=[(d1)-1]P-G,则Q即为[dA]G。
实施例4、
在此实施例中,第一装置、第二装置分别有[1,n-1]中的秘密b1、b2; u是(第一装置或第二装置或两个装置之外的一个装置)在[1,n-1]中的任选的整数;所述第一装置、第二装置,利用前述包含秘密的数和椭圆曲线点的生成方法,按如下方式计算得到[dA]G,其中dA满足关系 u=(b1+b2)-1(1+dA)-1mod n或(b1+b2)mod n=u-1(1+dA)-1mod n或u(b1+b2)mod n= (1+dA)-1(这三个关系是等价的,此时第一装置、第二装置预先都不知道 dA):
第一装置取g1=b1;
第二装置取g2=b2,h=0;
两个装置按上述椭圆曲线点的生成方法生成P;
两个装置中的一个装置或两个装置之外的一个装置计算Q=[u-1]P-G,则Q即为[dA]G,且dA满足关系u=(b1+b2)-1(1+dA)-1mod n或(b1+b2)mod n=u-1(1+dA)-1mod n或u(b1+b2)mod n=(1+dA)-1,而b=(b1+b2)-1mod n即为两个装置都不知道的[1,n-1]中的秘密数;在此实施例中,w1、w2仅是得到期望结果的桥梁。
基于本发明的方法,很容易构建实施本发明方法的系统,系统包括两个装置,其中一个装置作为所述包含秘密的数和椭圆曲线点的生成方法中的第一装置,另一个装置作为所述包含秘密的数和椭圆曲线点的生成方法中的第二装置,所述两个装置按所述包含秘密的数和椭圆曲线点的生成方法,在不暴露各自秘密的情况下使用各自拥有的秘密计算得到(b(1+dA)-1)mod n、[dA]G,其中b为(w1w2)mod n或者(b1+b2)-1mod n,是两个装置都不知道的秘密,而w1、b1是仅第一装置知道的秘密,w2、b2是仅第二装置知道的秘密,dA是用户的SM2私钥。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (10)
1.一种包含秘密的数的生成方法,其特征是:
所述方法涉及分别被称为第一装置和第二装置的两个装置,其中,第一装置有[1,n-1]中的整数秘密g1,第二装置有[1,n-1]中的整数秘密g2,n是一个素数;
所述第一装置、第二装置按如下方式计算得到包含整数秘密g1、g2的数c=w1w2(g1+g2+h)mod n,其中h是一个整数常数,w1、w2是第一装置、第二装置分别在[1,n-1]中随机选取或生成的整数:
第一装置计算s0=E(w1),s1=E((w1g1)mod n),其中,E(·)是使用第一装置的公钥的加法同态加密的加密运算;
第一装置将s0、s1发送给第二装置;
第二装置接收到s0、s1后,检查s0是否为零的加密结果,若是,则向第一装置返回出错提示,否则,第二装置,利用s1、s0、w2、g2、h及前述加法同态加密的加密运算E(·),计算得到一个密文数s2,且使得s2对应的明文数与(w1w2(g1+g2+h))mod n模n同余;计算得到s2的方式包括:
s2=((w2+z1n)⊙s1)⊕(((w2(g2+h)mod n)+z2n)⊙s0)⊕E(z3n),
或s2=(w2⊙(s1⊕E(z1n)))⊕(((w2(g2+h)mod n)+z2n)⊙s0)⊕E(z3n),
或s2=((w2+z1n)⊙s1)⊕((w2(g2+h)mod n)⊙(s0⊕E(z2n)))⊕E(z3n),
或s2=(w2⊙(s1⊕E(z1n)))⊕((w2(g2+h)mod n)⊙(s0⊕E(z2n)))⊕E(z3n),
其中⊕表示同态加密的密文数的加运算,⊙表示同态加密中的明文数与密文数的乘运算,z1、z2、z3是只有第二装置知道的整数,z1、z2、z3的取值范围不限于[1,n-1];第二装置将s2发送给第一装置;
第一装置接收到s2后,计算c=D(s2)mod n,其中D(·)是使用第一装置的私钥的加法同态加密的解密运算;
若c=0,则两个装置重新选择或生成秘密g1、g2,重新计算c,直到c≠0;
则c即为生成的包含秘密g1、g2的数;
在以上过程中应用的加法同态加密针对被加密的明文数进行运算所对应的模m大于n。
2.根据要求1所述的包含秘密的数的生成方法,其特征是:
第二装置检查s0是否为零的加密结果的一种方法如下:
第二装置在加法同态加密允许的范围内任选非零整数u和q,所述在加法同态加密允许的范围内是指当w1在[1,n-1]范围内时,选择的u和q使得qw1+u不超出加法同态加密表示无符号数或补码的范围;
第二装置计算h=(q⊙s0)⊕E(u),然后将h、u发送给第一装置;
第一装置接收到h后,解密h,计算得到q,然后将q返回第二装置;
第二装置接收到第一装置返回的q后,检查第一装置返回的q与自己之前选择的q是否相同,若相同,则确定s0不为零的加密结果;若第一装置无法返回通过解密获得的q,或者返回的q与第二装置之前选择的q不同,则确定s0为零的加密结果。
3.一种基于权利要求1所述包含秘密的数的生成方法的包含秘密的数的生成系统,其特征是:
所述系统包括两个装置,其中一个装置作为所述包含秘密的数的生成方法中的第一装置,另一个装置作为所述包含秘密的数的生成方法中的第二装置,所述两个装置按所述包含秘密的数的生成方法生成包含秘密g1、g2的数c。
4.一种基于权利要求1所述包含秘密的数的生成方法的椭圆曲线点的生成方法,其特征是:
所述第一装置、第二装置按如下方式计算得到包含秘密g1、g2的椭圆曲线点P=[(g1+g2+h)-1]G,其中(g1+g2+h)-1是(g1+g2+h)的模n乘法逆,n是SM2椭圆曲线密码算法的椭圆曲线点群的阶,G是SM2椭圆曲线密码算法的椭圆曲线点群中的一个点:
所述第一装置、第二装置先按所述包含秘密的数的生成方法,计算得到c=w1w2(g1+g2+h)mod n;
之后,第一装置计算P1=[w1(c-1)]G,然后将P1发送给第二装置,其中c-1是c的模n乘法逆;
第二装置计算P=[w2]P1,则P即为要计算得到的椭圆曲线点。
5.一种基于权利要求4所述椭圆曲线点的生成方法的包含秘密的数和椭圆曲线点的生成系统,其特征是:
所述系统包括两个装置,其中一个装置作为所述包含秘密的数和椭圆曲线点的生成方法中的第一装置,另一个装置作为所述包含秘密的数和椭圆曲线点的生成方法中的第二装置;
所述两个装置按所述包含秘密的数的生成方法计算得到包含秘密的数c=w1w2(g1+g2+h)mod n,按所述椭圆曲线点的生成方法计算得到椭圆曲线点P=[(g1+g2+h)-1]G。
6.一种基于权利要求4所述椭圆曲线点的生成方法的包含秘密的数和椭圆曲线点的生成方法,其特征是:
第一装置、第二装置分别有[1,n-1]中的秘密d1、d2,且d1、d2与用户的SM2私钥dA满足关系(d1+d2)mod n=(1+dA)-1,其中(1+dA)-1是(1+dA)的模n乘法逆;第一装置、第二装置预先都不知道dA;所述第一装置、第二装置按如下方式计算得到(w1w2(1+dA)-1)mod n、[dA]G:
第一装置取g1=d1;
第二装置取g2=d2,h=0;
两个装置按上述包含秘密的数的生成方法计算得到c,c为(w1w2(1+dA)-1)mod n,而b=(w1w2)mod n即为两个装置都不知道的[1,n-1]中的秘密数;
两个装置按上述椭圆曲线点的生成方法生成P;
第一装置或第二装置计算Q=P-G,则Q即为[dA]G。
7.一种基于权利要求4所述椭圆曲线点的生成方法的包含秘密的数和椭圆曲线点的生成方法,其特征是:
第一装置、第二装置分别有[1,n-1]中的秘密d1、d2,且d1、d2与用户的SM2私钥dA满足关系(d1+d2)mod n=(-dA(1+dA)-1)mod n;第一装置、第二装置预先都不知道dA;所述第一装置、第二装置按如下方式计算得到(w1w2(1+dA)-1)mod n、[dA]G:
第一装置取g1=d1;
第二装置取g2=d2,h=1;
两个装置按上述包含秘密的数的生成方法计算得到c,c为(w1w2(1+dA)-1)mod n,而b=(w1w2)mod n即为两个装置都不知道的[1,n-1]中的秘密数;
两个装置按上述椭圆曲线点的生成方法生成P;
第一装置或第二装置计算Q=P-G,则Q即为[dA]G。
8.一种基于权利要求4所述椭圆曲线点的生成方法的包含秘密的数和椭圆曲线点的生成方法,其特征是:
第一装置、第二装置分别有[1,n-1]中的秘密d1、d2,且d1、d2与用户的SM2私钥dA满足关系(d1d2)mod n=(-dA(1+dA)-1)mod n;第一装置、第二装置预先都不知道dA;所述第一装置、第二装置按如下方式计算得到(w1w2(1+dA)-1)mod n、[dA]G:
第一装置取g1=(d1)-1,其中(d1)-1是d1的模n乘法逆;
第二装置取g2=d2,h=0;
两个装置按上述包含秘密的数的生成方法计算得到c;
第一装置计算c1=(d1c)mod n,c1为(w1w2(1+dA)-1)mod n,而b=(w1w2)mod n即为两个装置都不知道的[1,n-1]中的秘密数;
两个装置按上述椭圆曲线点的生成方法生成P;
第一装置计算Q=[(d1)-1]P-G,则Q即为[dA]G。
9.一种基于权利要求4所述椭圆曲线点的生成方法的包含秘密的数和椭圆曲线点的生成方法,其特征是:
第一装置、第二装置分别有[1,n-1]中的秘密b1、b2;u是在[1,n-1]中的任选的整数;所述第一装置、第二装置,利用前述包含秘密的数和椭圆曲线点的生成方法,按如下方式计算得到[dA]G,其中dA满足关系u=(b1+b2)-1(1+dA)-1mod n或(b1+b2)mod n=u-1(1+dA)-1mod n或u(b1+b2)mod n=(1+dA)-1:
第一装置取g1=b1;
第二装置取g2=b2,h=0;
两个装置按上述椭圆曲线点的生成方法生成P;
两个装置中的一个装置或两个装置之外的一个装置计算Q=[u-1]P-G,则Q即为[dA]G,且dA满足关系u=(b1+b2)-1(1+dA)-1mod n或(b1+b2)mod n=u-1(1+dA)-1mod n或u(b1+b2)modn=(1+dA)-1,而b=(b1+b2)-1mod n即为两个装置都不知道的[1,n-1]中的秘密数。
10.一种基于权利要求6-9中任一项所述包含秘密的数和椭圆曲线点的生成方法的包含秘密的数和椭圆曲线点的生成系统,其特征是:
所述系统包括两个装置,其中一个装置作为所述包含秘密的数和椭圆曲线点的生成方法中的第一装置,另一个装置作为所述包含秘密的数和椭圆曲线点的生成方法中的第二装置,所述两个装置按所述包含秘密的数和椭圆曲线点的生成方法,在不暴露各自秘密的情况下使用各自拥有的秘密计算得到(b(1+dA)-1)mod n、[dA]G,其中b=(w1w2)mod n或b=(b1+b2)-1mod n,是两个装置都不知道的秘密,而w1、b1仅第一装置知道的秘密,w2、b2仅第二装置知道的秘密,dA是用户的SM2私钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710984613.7A CN107819581B (zh) | 2017-10-20 | 2017-10-20 | 包含秘密的数和椭圆曲线点的生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710984613.7A CN107819581B (zh) | 2017-10-20 | 2017-10-20 | 包含秘密的数和椭圆曲线点的生成方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107819581A CN107819581A (zh) | 2018-03-20 |
CN107819581B true CN107819581B (zh) | 2019-10-25 |
Family
ID=61608525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710984613.7A Active CN107819581B (zh) | 2017-10-20 | 2017-10-20 | 包含秘密的数和椭圆曲线点的生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107819581B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109361519B (zh) * | 2018-12-07 | 2020-06-19 | 武汉理工大学 | 一种改进的包含秘密的数的生成方法及系统 |
CN110943828B (zh) * | 2019-11-05 | 2021-01-08 | 武汉理工大学 | 秘密数运算转换方法及系统 |
CN111901123B (zh) * | 2020-07-15 | 2022-07-05 | 杭州安恒信息安全技术有限公司 | 一种sm2签名的生成方法、存储介质和终端 |
CN112769542B (zh) * | 2021-04-12 | 2021-06-11 | 富算科技(上海)有限公司 | 基于椭圆曲线的乘法三元组生成方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106604346A (zh) * | 2016-11-29 | 2017-04-26 | 河南科技大学 | 无线传感器网络能量有效机会路由协议的实现方法 |
CN106850229A (zh) * | 2017-01-22 | 2017-06-13 | 武汉理工大学 | 基于乘积秘密分割的sm2数字签名生成方法及系统 |
-
2017
- 2017-10-20 CN CN201710984613.7A patent/CN107819581B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106604346A (zh) * | 2016-11-29 | 2017-04-26 | 河南科技大学 | 无线传感器网络能量有效机会路由协议的实现方法 |
CN106850229A (zh) * | 2017-01-22 | 2017-06-13 | 武汉理工大学 | 基于乘积秘密分割的sm2数字签名生成方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107819581A (zh) | 2018-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Srivastava et al. | A light and secure healthcare blockchain for iot medical devices | |
TWI797147B (zh) | 臨界數位簽章方法及系統 | |
CN107872322B (zh) | 基于同态加密的数字签名协同生成方法及系统 | |
US9973334B2 (en) | Homomorphically-created symmetric key | |
US20190372760A1 (en) | Method and System for Fault Tolerant and Secure Multiparty Computation with SPDZ | |
CN107819581B (zh) | 包含秘密的数和椭圆曲线点的生成方法及系统 | |
CN114157427B (zh) | 基于sm2数字签名的门限签名方法 | |
CN109547209B (zh) | 一种两方sm2数字签名生成方法 | |
WO2019106166A1 (en) | Cryptography device having secure provision of random number sequences | |
TWI688250B (zh) | 資料加解密的方法及裝置 | |
US10630476B1 (en) | Obtaining keys from broadcasters in supersingular isogeny-based cryptosystems | |
WO2013021360A1 (en) | Encryption and decryption method | |
CN109951292A (zh) | 精简的sm9数字签名分离交互生成方法及系统 | |
CN109361519A (zh) | 一种改进的包含秘密的数的生成方法及系统 | |
CN108055134B (zh) | 椭圆曲线点数乘及配对运算的协同计算方法及系统 | |
CN105393488A (zh) | 建立抗量子计算攻击的公钥密码的方法 | |
CN110401524B (zh) | 一种借助同态加密的包含秘密的数的协同生成方法及系统 | |
CN110798313B (zh) | 基于秘密动态共享的包含秘密的数的协同生成方法及系统 | |
Kaya et al. | Sharing DSS by the Chinese remainder theorem | |
CN114362912A (zh) | 基于分布式密钥中心的标识密码生成方法、电子设备及介质 | |
EP2395698B1 (en) | Implicit certificate generation in the case of weak pseudo-random number generators | |
Aditia et al. | Certificate-less public key encryption for secure e-healthcare systems | |
CN110943828B (zh) | 秘密数运算转换方法及系统 | |
KR20210056572A (ko) | 두 개의 샤미르 비밀정보 조각을 양자 간 두 개의 곱셈 복원 가능한 비밀정보 조각으로 변환하는 방법 | |
CN113708925B (zh) | 一种普通密码算法密钥的群组使用方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |