CN106549770A - Sm2数字签名生成方法及系统 - Google Patents
Sm2数字签名生成方法及系统 Download PDFInfo
- Publication number
- CN106549770A CN106549770A CN201710024908.XA CN201710024908A CN106549770A CN 106549770 A CN106549770 A CN 106549770A CN 201710024908 A CN201710024908 A CN 201710024908A CN 106549770 A CN106549770 A CN 106549770A
- Authority
- CN
- China
- Prior art keywords
- mod
- calculated
- digital signature
- elliptic curve
- 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.)
- Granted
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
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
发明涉及SM2数字签名生成方法:在[1,n‑1]中任选一整数b,计算c=(1+dA)‑1b mod n,Gb=[b]G,将Gb、c给m个装置,m≥2;m个装置分别有秘密d1、d2、…、dm且(1+dA)‑1dA mod n=(d1+d2+…+dm)mod n;需使用SM2私钥dA对消息数字签名时,m个装置协同计算Q=[k1+k2+…+km]Gb,r=(e+x1)mod n,其中(x1,y1)=Q,ki是装置i在[1,n‑1]中任选的整数,e为消息杂凑值;每个装置计算si=(cki‑dir)mod n;由任一装置计算s=(s1+s2+…+sm)mod n;则(r,s)为数字签名。
Description
技术领域
本发明属于信息安全技术领域,特别是SM2数字签名生成方法及系统。
背景技术
在公开密钥密码体制中,为了保障用户私钥的安全性,用户的私钥通常是存储在专门的密码硬件中使用,如存储在USB Key、SmartCard中使用,且私钥不能从密码硬件中导出。但是,在有些情况下,比如,由于成本的原因,或者由于没有合适的密码硬件(如移动通信终端),使得用户无法依赖密码硬件来存储私钥、以及使用私钥进行密码运算。对于这种情况,目前最常用的方法是使用纯软件的密码模块,并将用户私钥保存在用户计算装置本地的永久存储介质中(如个人电脑的磁盘、移动通信终端内的电子盘),并通过PIN(Personal Identification Number)码对私钥进行保护。当需要使用用户私钥时,软件密码模块从用户计算装置的永久存储介质读取用户私钥(必要时要求用户输入PIN码),然后进行密码运算。这种采用纯软件密码模、将用户私钥保存在用户计算装置本地的方式存在用户私钥泄露的风险,比如,攻击者通过木马窃取保存在用户计算装置中的用户私钥,破解用户保护私钥的PIN码,从而获得用户私钥;而且这种采用纯软件密码模块的方式,用户私钥最终需以明文形式导入到内存中使用,这样攻击者有可能通过一定的攻击方式,窃取存放在内存中的用户私钥。如何在不采用密码硬件的情况下,安全存储和使用用户私钥具有现实的需求,对此问题的解决具有很好的实际应用意义。
对此问题常见的解决方案是,将用户私钥通过一定的方式分割成多份,每份称为秘密份额,然后将每份秘密份额存储到不同的计算装置中,尤其是将部分秘密份额存放在安全保护措施到位、安全条件好的专业的密码服务机构的在线密码服务系统中;当密码应用程序、系统需要使用用户私钥进行密码运算时,如进行数字签名或数据解密时,多个计算装置分别使用自己的秘密份额进行密码运算,最后将各装置计算的结果合并,形成最后的、使用用户私钥进行密码运算的结果(数字签名或数据解密的结果)。这里,对用户私钥进行的秘密分割可以是普通秘密分割,也可以是门限秘密分割。
SM2是由国家密码管理局颁布的一种椭圆曲线公钥密码算法(参见《SM2椭圆曲线公钥密码算法》规范,国家密码管理局,2010年12月),基于此算法能实现数字签名、密钥交换及数据加密。但是,由于SM2算法独特的数字签名运算方式,通常的秘密共享(分割)方式及对应的基于秘密共享的密码运算方式无法适合于使用SM2私钥进行数字签名的情形。
发明内容
本发明的目的是提出基于秘密共享(或分割)的SM2数字签名生成,以满足没有密码硬件的情况下,安全使用用户SM2私钥进行数字签名的需求。
针对本发明的目的,本发明提出了两个基于秘密共享(或分割)的SM2数字签名生成方案,下面给出具体描述。
在以下对本发明技术方案的描述中,若P、Q是椭圆曲线点群中的元素(点),则P+Q表示P、Q的点加,[k]P表示k个椭圆曲线点P的点加,即P+P+...+P(共有k个P);省略号“...”,表示多个同样(类型的)的数据项或多个同样的运算;c-1表示整数c的模n乘法逆(即c(c)- 1mod n=1);多个整数相乘(包括整数符号相乘、常数与整数符号相乘),在不产生二义性的情况下,省略掉乘号“·”,如k1·k2简化为k1k2,3·c,简化位3c;mod n表示模n运算(modulooperation),对应于《SM2椭圆曲线公钥密码算法》规范(国家密码管理局,2010年12月)中的modn;还有,模n运算的算子mod n的优先级是最低的,如a+b mod n等同于(a+b)mod n,a-bmod n等同于(a-b)mod n,ab mod n等同于(ab)mod n。
本发明的方案一如下。
生成SM2数字签名时有m个装置参与,其中m大于或等于2;m个装置分别被称为装置1,装置2,…,装置m;
在生成数字签名前,针对参与数字签名生成的m个装置进行如下初始化操作:
给m个装置中的每个装置都分配1份秘密份额,其中装置i的秘密份额或从装置i的秘密份额导出的秘密数是di,i=1,2,…,m,其中,di是区间[1,n-1]内的整数,而n是SM2密码运算所使用的椭圆曲线点群的阶,也即SM2密码运算所使用的椭圆曲线点群的基点G的阶(SM2密码运算所使用的椭圆曲线点群是指由基点G生成的循环群;对于普通秘密共享,di就是秘密份额;对于门限秘密共享,di是从秘密份额导出的秘密数);
m个装置的秘密份额或者从秘密份额导出的秘密数与用户的SM2私钥dA满足关系:
(1+dA)-1dA mod n=(d1+d2+…+dm)mod n,其中(1+dA)-1是(1+dA)的模n乘法逆(即(1+dA)-1与(1+dA)模n乘积为1)(这里被共享的秘密是(1+dA)-1dA mod n,对(1+dA)-1dA mod n的秘密分割可以是普通秘密分割,也可以是门限秘密分割);
在区间[1,n-1]内随机选择一个整数b,计算c=(1+dA)-1b mod n(本发明中的b不是椭圆曲线方程的参数b);
计算Gb=[b]G,其中G是SM2椭圆曲线点群的基点;
将c、Gb分发给所有m个装置;
(m个装置都不保存dA、b;进行这些初始化操作的可以是一个专门的密钥管理系统,或用户计算装置中的一个密码模块、密钥管理工具)
当需要使用用户的SM2私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的生成(需要使用用户的SM2私钥dA针对消息M进行数字签名的主体可以是调用这些装置的密码应用程序、系统或密码模块,或者其中一个装置中的密码应用程序、系统):
首先,m个装置通过交互,计算得到Q=[k1+k2+…+km]Gb,r=(e+x1)mod n,且得到的r、Q满足:r≠0且[r]G+Q不是SM2椭圆曲线点群的零元(无穷远点),其中ki是计算Q的过程中装置i在区间[1,n-1]中随机选择的一个整数,i=1,2,…,m,x1取自(x1,y1)=Q,e是从用户标识和消息M导出的杂凑值(即散列值)(按SM2算法,e是从用户标识IDA等参数导出的杂凑值ZA同消息M合并后的数据的杂凑值,参见SM2规范);
之后,每个装置计算si=(cki-dir)mod n,其中i=1,2,…,m,si对应si装置i所进行的计算;
最后,m个装置中的一个装置(任一个装置)计算得到s=(s1+s2+…+sm)mod n;则(r,s)即为使用用户的SM2私钥dA对消息M的数字签名。
在上述数字签名生成过程中,r、e、si,i=1,2,…,m,根据计算的需要在m个装置之间传送(如通过网络传送)。
在上述方案中,在针对消息M进行数字签名时,m个装置按如下方式,或者按与如下方式等同的方式,通过交互计算得到Q=[k1+k2+…+km]Gb,r=(e+x1)mod n,且得到的r、Q满足:r≠0且[r]G+Q不是SM2椭圆曲线点群的零元(无穷远点):
m个装置中的每个装置在区间[1,n-1]中随机选择一个整数ki,计算得到Qi=[ki]Gb,其中,i=1,2,…,m,分别表示装置i随机选择的整数ki,所进行的计算及计算得到的Qi;
之后,由m个装置中的一个装置(任一个装置)计算Q=Q1+Q2+…+Qm,此时,Q=[k1+k2+…+km]Gb(计算过程中Q1,Q2,…,Qm可在装置间传递);
若进行Q=Q1+Q2+…+Qm计算的是装置j,其中j=1,或2,…,或m,则在完成Q的计算后,装置j检查Q是否是SM2椭圆曲线点群的零元(无穷远点),若是,则装置j重新选择kj,重新计算Qj,重新计算Q=Q1+Q2+…+Qm,重新判断Q是否是零元,重复此过程,直到Q不是零元;若Q不是零元,则装置j取(x1,y1)=Q,计算r=(e+x1)mod n;
若计算得到的r、Q满足:r≠0且[r]G+Q不是SM2椭圆曲线点群的零元(无穷远点),则Q、r的计算完成;否则,装置j重新在区间[1,n-1]中随机选择一个整数kj,然后重新计算Qj、Q=Q1+Q2+…+Qm,重新判断Q是否是零元,以及在Q不是零元时重新计算r=(e+x1)mod n,重复此过程,直到r≠0且[r]G+Q不是SM2椭圆曲线点群的零元(无穷远点);
或者,若r=0或[r]G+Q是SM2椭圆曲线点群的零元(无穷远点),则所有m个装置一起从头重新进行Q、r的计算(即每个装置重新选择ki,计算Qi=[ki]Gb,其中i=1,2,…,m,表示装置i的Qi和ki,其中一个装置重新计算Q=Q1+Q2+…+Qm、重新判断Q是否是零元,以及在Q不是零元时重新计算r=(e+x1)mod n),直到r≠0且[r]G+Q不是SM2椭圆曲线点群的零元(无穷远点);
所述等同的方式,即同样能得到Q=[k1+k2+…+km]Gb、并在Q不是SM2椭圆曲线点群的零元时依据Q计算得到r,且使得r、Q满足r≠0且[r]G+Q不是SM2椭圆曲线点群的零元的方式。
在以上计算Q、r的过程中,若计算Q=Q1+Q2+…+Qm、r=(e+x1)mod n的装置(即前面的所述装置j),在计算得到Q、r后,仅检查r是否为零,不检查[r]G+Q是否是SM2椭圆曲线点群的零元(无穷远点),且仅在r=0时重新进行Q、r计算(只要r≠0就不重新进行Q、r计算),则:
根据s1,s2,…,sm计算s的装置(m个装置中的一个装置),若检查发现(s+r)mod n=0,则放弃计算得到的s,数字签名生成过程中计算Q、r的装置j,其中j=1,或2,…,或m,重新在区间[1,n-1]中随机选择一个整数kj,重新计算Qj,重新计算Q=Q1+Q2+…+Qm,重新判断Q是否是零元,以及在Q不是零元时重新计算r=(e+x1)mod n,之后每个装置i重新计算si,i=1,2,…m,然后由一个装置根据s1,s2,…,sm计算s,重复此过程,直到最后计算得到的s满足(s+r)mod n≠0;
或者根据s1,s2,…,sm计算s的装置,若检查发现(s+r)mod n=0,则所有m个装置一起从头重新进行Q、r的计算(每个装置重新选择ki、计算Qi=[ki]Gb,其中i=1,2,…,m,分别表示装置i选择的ki和计算的Qi,然后其中的一个装置重新计算Q=Q1+Q2+…+Qm、确定Q是否为零元、以及在Q不是零元时重新计算r=(e+x1)mod n,之后每个装置i重新计算si,i=1,2,…m,然后由一个装置根据s1,s2,…,sm计算s),直到最后计算得到的s满足(s+r)mod n≠0。
在以上所述方案一中,用户的公钥仍然是[dA]G,在进行秘密分割前计算得到,并公开发布。
本发明的方案二如下。
同样地,生成SM2数字签名时有m个装置参与,其中m大于或等于2;m个装置分别被称为装置1,装置2,…,装置m;
相应地,在生成数字签名前,针对参与数字签名生成的m个装置进行如下初始化操作:
给m个装置中的每个装置都分配1份秘密份额,其中装置i的秘密份额或从装置i的秘密份额导出的秘密数是di,i=1,2,…,m,其中,di是区间[1,n-1]内的整数,而n是SM2密码运算所使用的椭圆曲线点群的阶,也即SM2密码运算所使用的椭圆曲线点群的基点G的阶(对于普通秘密共享,di就是秘密份额;对于门限秘密共享,di是从秘密份额导出的秘密数);
m个装置的秘密份额或者从秘密份额导出的秘密数与用户的SM2私钥dA满足关系:
(1+dA)-1=(d1+d2+…+dm)mod n,其中(1+dA)-1是(1+dA)的模n乘法逆(即(1+dA)-1与(1+dA)模n乘积为1)(这里(1+dA)-1是被共享的秘密,对(1+dA)-1的秘密分割可以是普通秘密分割,也可以是门限秘密分割);
在区间[1,n-1]内随机选择一个整数b,计算c=(1+dA)-1b mod n(本发明中的b不是椭圆曲线方程的参数b);
计算Gb=[b]G,其中G是SM2椭圆曲线点群的基点;
将c、Gb分发给所有m个装置;
(m个装置都不保存dA、b;进行以上初始化操作的可以是一个专门的密钥管理系统,或用户计算装置中的一个密码模块、密钥管理工具)
当需要使用用户的SM2私钥dA针对消息M进行数字签名时,m个装置通过如下方式进行数字签名的生成(需要使用用户的SM2私钥dA针对消息M进行数字签名的主体可以是调用这些装置的密码应用程序、系统或密码模块,或者其中一个装置中的密码应用程序、系统):
首先,m个装置通过交互,计算得到Q=[k1+k2+…+km]Gb,r=(e+x1)modn,且得到的r、Q满足:r≠0且[r]G+Q不是SM2椭圆曲线点群的零元(无穷远点),其中ki是计算Q的过程中装置i在区间[1,n-1]中随机选择的一个整数,i=1,2,…,m,x1取自(x1,y1)=Q,e是从用户标识和消息M导出的杂凑值(即散列值)(按SM2算法,e是从用户标识IDA等参数导出的杂凑值ZA同消息M合并后的数据的杂凑值,参见SM2规范);
之后,每个装置计算si=(cki+dir)mod n,其中i=1,2,…,m,si对应装置i所进行的计算;
最后,m个装置中的一个装置(任一个)计算得到s=((s1+s2+…+sm)-r)mod n;则(r,s)即为使用用户的SM2私钥dA对消息M的数字签名。
在上述数字签名生成过程中,r、e、si,i=1,2,…,m,根据计算的需要在m个装置之间传送(如通过网络传送)。
对于上述方案二,在针对消息M进行数字签名时,m个装置按与方案一同样的方式,通过交互计算得到Q=[k1+k2+…+km]Gb,r=(e+x1)mod n,且使得得到的r、Q满足:r≠0且[r]G+Q不是SM2椭圆曲线点群的零元(无穷远点)。
同样地,在方案二中,用户的公钥仍然是[dA]G,在进行秘密分割前计算得到,并公开发布。
从以上发明内容并结合实施例可以看到,基于本发明的SM2数字签名生成方法,当用户没有硬件密码装置存放SM2私钥时,可以将与用户的私钥dA相关的秘密数据,分别存放在不同装置中,如用户的计算装置(如个人电脑、移动终端)、一个或多个密码服务系统的密码服务器中;在需要使用用户的SM2私钥对消息进行数字签名时,多个装置使用各自拥有的秘密数据(秘密份额或秘密份额的导出的数据)进行运算,并通过交互生成最终的数字签名,而且在交互过程中,每个装置都不泄露自己的秘密;除非攻击者能同时获得分布在不同装置中的足够数量的秘密份额,否则,攻击者无法恢复用户私钥;由于攻击者要同时获得分布在不同装置中的、足够数量的秘密份额的可能性非常低,或者几乎不可能,比如攻击者很难获得专业密码服务机构的密码服务系统中的秘密份额,这就大大提高了在没有密码硬件的情况下,用户SM2私钥使用的安全性。
与现有的技术方案相比,本发明的方法简单,不但适合于两方共享秘密,而且适合于多方共享秘密,不但适合于普通的秘密分割(共享),而且适合于门限秘密分割(共享)。本发明的巧妙之处在于,引入了一个与用户SM2私钥无关的随机数b!
附图说明
无。
具体实施方式
下面结合实施例对本发明作进一步的描述。以下实施例只表示本发明几种可能的实施方式,不是全部可能的实施方式,不作为对本发明的限定。
对本发明的方案一,要分割的秘密是(1+dA)-1dA mod n。对(1+dA)-1dA modn的秘密分割有普通秘密分割和门限秘密共享分割。若是普通秘密分割,则很简单。若有m个装置,则在区间[1,n-1]中随机选择m-1个整数,d1,d2,…,dm-1,计算dm=((1+dA)-1dA-(d1+d2+…+dm-1))mod n,若dm≠0,则d1,d2,…,dm即是所需的秘密分割,若dm=0,则重新选择d1,d2,…,dm-1,直到dm≠0。
若采用门限秘密共享分割,则可以采用Shamir或拉格朗日秘密共享方案。此时,本发明中进行数字签名操作处理的m个装置,仅是全部p个装置中的m个(p≥m),即采用(m,p)的门限方案;初始化时,按门限秘密共享算法,将秘密(1+dA)-1dA mod n在所有p个装置中分享;而在应用本发明的方法时,m个装置的秘密数据d1,d2,…,dm,是参与数字签名生成的m个装置中的每个装置依据自身的门限秘密(秘密份额),针对此时的m个装置计算得到的秘密数(若p>m,那么,针对不同的m个装置,每个装置依据门限秘密份额进行恢复秘密的操作时,每个装置依据秘密份额计算得到的秘密数是不同的,它取决于恢复私钥时参与的装置是哪m个,对于熟悉Shamir或拉格朗日秘密共享方案的人而言,这些是很容易理解的)。
以上秘密分割方法,只是对(1+dA)-1dA mod n分割的几种可能方案,不是全部的方案。
对本发明的方案二,要分割的秘密是(1+dA)-1。对(1+dA)-1进行普通秘密分割或门限秘密分割的方法与方案一中对(1+dA)-1dA mod n进行秘密分割的方法一样,仅仅秘密不同而已。
以下是本发明的一些实施例,以下实施例同时适用于本发明的两个方案(方法)。
实施例1、
在此实施例中,m=2,采用普通秘密共享方案,用户的计算装置(如个人电脑、移动通信终端)是本发明的SM2数字签名生成方法中的两个装置中的一个(装置1或装置2),本发明方法中的另一个装置是密码服务系统中的密码服务器(作为装置2或装置1);用户的计算装置和密码服务器都不保存用户的SM2私钥dA;(1+dA)-1dA mod n或(1+dA)-1的秘密份额d1、d2,一份保存在用户计算装置中,另一份保存在密码服务器中;当用户计算装置中的密码应用程序或系统要使用用户的SM2私钥dA对消息进行签名时,用户计算装置(实际上通常是用户计算装置中的密码模块)与密码服务系统的密码服务器交互,应用本发明的方法、使用秘密份额d1、d2生成消息的数字签名。
实施例2、
在此实施例中,m=2,采用普通秘密共享,两个装置中一个装置是一个机构的密码服务系统中的密码服务器,另一个装置是另一个机构的密码服务系统中的密码服务器;用户计算装置以及两个机构的密码服务器都不保存用户的SM2私钥dA;(1+dA)-1dA mod n或(1+dA)-1的两份秘密份额d1、d2,分别保存在两个机构的密码服务系统的密码服务器中;当用户计算装置中的密码应用程序或系统要使用用户的SM2私钥dA对消息进行签名时,用户计算装置(实际上通常是用户计算装置中的密码模块)将请求发送到一个密码服务系统,之后两个密码服务系统的密码服务器通过交互,应用本发明的方法使用秘密份额d1、d2生成消息的数字签名,然后将生成的签名被返回给用户计算装置;在数字签名生成过程中,分属两个机构的密码服务系统中的密码服务器中的任一个可以都作为本发明的数字签名生成方法中的装置1,而另一个作为装置2。
实施例3、
在此实施例中,m=3,采用普通秘密共享,其中一个装置是一个机构的密码服务系统中的密码服务器A,另一个装置是另一个机构的密码服务系统中的密码服务器B,还有一个装置是用户的计算装置(如个人电脑、移动终端);密码服务器A、B和用户计算装置中的任一个可作为装置1、装置2或3;用户计算装置以及两个机构的密码服务系统的密码服务器都不保存用户的SM2私钥dA;(1+dA)-1dA mod n或(1+dA)-1的3份秘密份额d1、d2、d3,被分别保存在密码服务器A、B,以及用户计算装置中;当用户计算装置中的密码应用程序要使用用户的SM2私钥dA对消息进行签名时,用户计算装置、密码服务器A、密码服务器B通过交互,应用本发明的方法、使用秘密份额d1、d2、d3生成消息的数字签名。
实施例4、
在此实施例中,采用(2,3)的门限秘密共享,共三个装置,三个装置中的任两个装置可以使用本发明的方法进行数字签名的生成,故应用本发明的方法进行数字签名生成时,对应本发明的m=2。
三个装置中的一个是一个机构的密码服务系统中的密码服务器,另两个装置,一个是用户的个人电脑,另一个是用户的移动终端;(1+dA)-1dAmod n或(1+dA)-1的按门限秘密共享算法生成的3份秘密份额(门限秘密)被分别分配给了密码服务器、用户的个人电脑、用户的移动终端;在应用本发明的方法时,假设本发明中的装置1始终是密码服务器,而本发明中的装置2或者是用户的个人电脑,或者是用户的移动终端,取决于用户的哪个装置参与数字签名的生成过程。
当用户的个人电脑要使用用户的SM2私钥进行数字签名时,密码服务器、用户的个人电脑(中的密码模块)根据它们各自拥有的门限秘密及门限算法,分别算出各自此时的d1、d2(或者d1、d2已预先算好、保存,下同),然后使用d1、d2生成消息的数字签名;当用户的移动终端要使用用户的SM2私钥进行数字签名时,密码服务器、用户的移动终端(中的密码模块)根据它们各自拥有的门限秘密及门限算法,分别算出各自此时的d1、d2,使用d1、d2生成消息的数字签名(对于门限秘密共享,恢复秘密时的参与方不同,由门限秘密算出的相应的秘密数是不同的)。
实施例5、
在此实施例中,采用(2,3)的门限秘密共享,共三个装置,三个装置中的任两个装置可以使用本发明的方法进行数字签名的生成,故应用本发明的方法进行数字签名生成时,对应本发明的m=2。
三个装置中的一个是一个机构的密码服务系统的密码服务器A,一个是另一个机构的密码服务系统的密码服务器B,再有一个是用户的计算装置(如个人电脑、移动终端);(1+dA)-1dA mod n或(1+dA)-1的按门限秘密共享算法生成的3份秘密份额(门限秘密)被分别分配给了密码服务器A、密码服务器B和用户的计算装置;在应用本发明的方法时,假设本发明中的装置1始终是用户的计算装置,而本发明中的装置2或者是密码服务器A,或者是密码服务器B,取决于哪个密码服务器参与数字签名的生成。
当用户的计算装置要使用用户的SM2私钥进行数字签名时,用户计算装置先尝试与密码服务器A建立连接,若无法与密码服务器A建立连接,则尝试与密码服务器B建立连接。若用户计算装置与密码服务器A成功建立连接,则密码服务器A、用户的计算装置(中的密码模块)根据它们各自拥有的门限秘密(秘密份额)及门限算法,分别算出各自此时的d1、d2,然后使用d1、d2生成消息的数字签名;若用户计算装置与密码服务器A无法建立连接,但之后与密码服务器B成功建立连接,则密码服务器B、用户的计算装置(中的密码模块)根据它们各自拥有的门限秘密及门限算法,分别算出各自此时的d1、d2,使用d1、d2生成消息的数字签名。
实施例6、
在此实施例中,采用(2,3)的门限秘密共享,共三个装置,三个装置中的任两个装置可以使用本发明的方法进行数字签名的生成,故应用本发明的方法进行数字签名生成时,对应本发明的m=2。
三个装置分别是分属三个机构的密码服务系统的密码服务器A、密码服务器B、密码服务器C;(1+dA)-1dA mod n或(1+dA)-1的按门限秘密共享算法生成的3份秘密份额(门限秘密)被分别分配给了密码服务器A、密码服务器B、密码服务器C;在应用本发明的方法时,参与数字签名生成的两个服务器分别对应本发明中的装置1、装置2。
当用户的计算装置要使用用户的SM2私钥进行数字签名时,三个密码服务器中的两个(至于如何选择其中的两个,取决于实施者的方案),根据它们各自拥有的门限秘密及门限算法,分别算出各自此时的d1、d2,然后使用d1、d2生成消息的数字签名。
实施例7、
在此实施例中,采用(3,4)的门限秘密共享,共四个装置,其中任意三个装置可以使用本发明的方法进行数字签名的生成,故应用本发明的方法进行数字签名生成时,对应本发明的m=3。
四个装置中的两个是属于同一个机构的密码服务系统的密码服务器A、B,或者是分属不同机构的密码服务系统的密码服务器A、B,四个装置中的另两个装置,一个是用户的个人电脑,一个是用户的移动终端,用户的两个装置只有一个参与数字签名的生成。(1+dA)-1dA mod n或(1+dA)-1的按门限秘密共享算法生成的4份秘密份额(门限秘密)被分别分配给了密码服务器A、密码服务器B、以及用户的个人电脑、移动终端。假定密码服务器A、B是本发明中的装置1、装置2,而生成数字签名时,参与数字签名生成过程的用户装置假定是本发明的装置3。
当用户的一个装置,如个人电脑或移动终端,需要使用用户的SM2私钥生成针对消息的数字签名时,密码服务器A、密码服务器B、用户的装置各自根据自己拥有的门限秘密和门限算法,分别算出针对此时三个装置的秘密数d1、d2、d3,然后通过交互应用本发明方法、使用各自的秘密数d1、d2、d3生成数字签名。
基于本发明的方法,很容易构建实施本发明方法的系统。
基于本发明的SM2数字签名生成方法(包括方案一、方案二)构建的SM2数字签名生成系统包括m个装置,其中m大于或等于2;m个装置中的每个装置是一个密码服务器或一个用户计算装置;m个装置按本发明的数字签名生成方法,生成使用用户的SM2私钥dA针对消息M的数字签名。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (8)
1.一种SM2数字签名生成方法,其特征是:
生成SM2数字签名时有m个装置参与,其中m大于或等于2;m个装置分别被称为装置1,装置2,…,装置m;
在生成数字签名前,针对参与数字签名生成的m个装置进行如下初始化操作:
给m个装置中的每个装置都分配1份秘密份额,其中装置i的秘密份额或从装置i的秘密份额导出的秘密数是di,i=1,2,…,m,其中,di是区间[1,n-1]内的整数,而n是SM2密码运算所使用的椭圆曲线点群的阶,也即SM2密码运算所使用的椭圆曲线点群的基点G的阶;
m个装置的秘密份额或者从秘密份额导出的秘密数与用户的SM2私钥dA满足关系:
(1+dA)-1dA mod n=(d1+d2+…+dm)mod n,其中(1+dA)-1是(1+dA)的模n乘法逆;
在区间[1,n-1]内随机选择一个整数b,计算c=(1+dA)-1b mod n;
计算Gb=[b]G,其中G是SM2椭圆曲线点群的基点;
将c、Gb分发给所有m个装置;
当需要使用用户的SM2私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的生成:
首先,m个装置通过交互,计算得到Q=[k1+k2+…+km]Gb,r=(e+x1)mod n,且得到的r、Q满足:r≠0且[r]G+Q不是SM2椭圆曲线点群的零元,其中ki是计算Q的过程中装置i在区间[1,n-1]中随机选择的一个整数,i=1,2,…,m,x1取自(x1,y1)=Q,e是从用户标识和消息M导出的杂凑值;
之后,每个装置计算si=(cki-dir)mod n,其中i=1,2,…,m,si是对应装置i所进行的计算;
最后,m个装置中的一个装置计算得到s=(s1+s2+…+sm)mod n;则(r,s)即为使用用户的SM2私钥dA对消息M的数字签名。
2.根据权利要求1所述的SM2数字签名生成方法,其特征是:
在针对消息M进行数字签名时,m个装置按如下方式,或者按与如下方式等同的方式,通过交互计算得到Q=[k1+k2+…+km]Gb,r=(e+x1)mod n,且得到的r、Q满足:r≠0且[r]G+Q不是SM2椭圆曲线点群的零元:
m个装置中的每个装置在区间[1,n-1]中随机选择一个整数ki,计算得到Qi=[ki]Gb,其中,i=1,2,…,m,分别表示装置i随机选择的整数ki,所进行的计算及计算得到的Qi;
之后,由m个装置中的一个装置计算Q=Q1+Q2+…+Qm,此时,Q=[k1+k2+…+km]Gb;
若进行Q=Q1+Q2+…+Qm计算的是装置j,其中j=1,或2,…,或m,则在完成Q的计算后,装置j检查Q是否是SM2椭圆曲线点群的零元,若是,则装置j重新选择kj,重新计算Qj,重新计算Q=Q1+Q2+…+Qm,重新判断Q是否是零元,重复此过程,直到Q不是零元;若Q不是零元,则装置j取(x1,y1)=Q,计算r=(e+x1)mod n;
若计算得到的r、Q满足:r≠0且[r]G+Q不是SM2椭圆曲线点群的零元,则Q、r的计算完成;否则,装置j重新在区间[1,n-1]中随机选择一个整数kj,然后重新计算Qj、Q=Q1+Q2+…+Qm,重新判断Q是否是零元,以及在Q不是零元时重新计算r=(e+x1)mod n,重复此过程,直到r≠0且[r]G+Q不是SM2椭圆曲线点群的零元;
或者,若r=0或[r]G+Q是SM2椭圆曲线点群的零元,则所有m个装置一起从头重新进行Q、r的计算,直到r≠0且[r]G+Q不是SM2椭圆曲线点群的零元;
所述等同的方式,即同样能得到Q=[k1+k2+…+km]Gb、并在Q不是SM2椭圆曲线点群的零元时依据Q计算得到r,且使得r、Q满足r≠0且[r]G+Q不是SM2椭圆曲线点群的零元的方式。
3.根据权利要求2所述的SM2数字签名生成方法,其特征是:
若计算Q=Q1+Q2+…+Qm、r=(e+x1)mod n的装置,在计算得到Q、r后,仅检查r是否为零,不检查[r]G+Q是否是SM2椭圆曲线点群的零元,且仅在r=0时重新进行Q、r计算,则:
根据s1,s2,…,sm计算s的装置,若检查发现(s+r)mod n=0,则放弃计算得到的s,数字签名生成过程中计算Q、r的装置j,其中j=1,或2,…,或m,重新在区间[1,n-1]中随机选择一个整数kj,重新计算Qj,重新计算Q=Q1+Q2+…+Qm,重新判断Q是否是零元,以及在Q不是零元时重新计算r=(e+x1)mod n,之后每个装置i重新计算si,i=1,2,…m,然后由一个装置根据s1,s2,…,sm计算s,重复此过程,直到最后计算得到的s满足(s+r)mod n≠0;
或者根据s1,s2,…,sm计算s的装置,若检查发现(s+r)mod n=0,则所有m个装置一起从头重新进行Q、r的计算,直到最后计算得到的s满足(s+r)mod n≠0。
4.一种基于权利要求1-3中任一项的SM2数字签名生成系统,其特征是:
所述SM2数字签名生成系统包括m个装置,其中m大于或等于2;所述m个装置中的每个装置是一个密码服务器或一个用户计算装置;所述m个装置按所述数字签名生成方法,生成使用用户的SM2私钥dA针对消息M的数字签名。
5.一种SM2数字签名生成方法,其特征是:
生成SM2数字签名时有m个装置参与,其中m大于或等于2;m个装置分别被称为装置1,装置2,…,装置m;
在生成数字签名前,针对参与数字签名生成的m个装置进行如下初始化操作:
给m个装置中的每个装置都分配1份秘密份额,其中装置i的秘密份额或从装置i的秘密份额导出的秘密数是di,i=1,2,…,m,其中,di是区间[1,n-1]内的整数,而n是SM2密码运算所使用的椭圆曲线点群的阶,也即SM2密码运算所使用的椭圆曲线点群的基点G的阶;
m个装置的秘密份额或者从秘密份额导出的秘密数与用户的SM2私钥dA满足关系:
(1+dA)-1=(d1+d2+…+dm)mod n,其中(1+dA)-1是(1+dA)的模n乘法逆;
在区间[1,n-1]内随机选择一个整数b,计算c=(1+dA)-1b mod n;
计算Gb=[b]G,其中G是SM2椭圆曲线点群的基点;
将c、Gb分发给所有m个装置;
当需要使用用户的SM2私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的生成:
首先,m个装置通过交互,计算得到Q=[k1+k2+…+km]Gb,r=(e+x1)mod n,且得到的r、Q满足:r≠0且[r]G+Q不是SM2椭圆曲线点群的零元,其中ki是计算Q的过程中装置i在区间[1,n-1]中随机选择的一个整数,i=1,2,…,m,x1取自(x1,y1)=Q,e是从用户标识和消息M导出的杂凑值;
之后,每个装置计算si=(cki+dir)mod n,其中i=1,2,…,m,si对应装置i所进行的计算;
最后,m个装置中的一个装置计算得到s=((s1+s2+…+sm)-r)mod n;则(r,s)即为使用用户的SM2私钥dA对消息M的数字签名。
6.根据权利要求5所述的SM2数字签名生成方法,其特征是:
在针对消息M进行数字签名时,m个装置按如下方式,或者按与如下方式等同的方式,通过交互计算得到Q=[k1+k2+…+km]Gb,r=(e+x1)mod n,且得到的r、Q满足:r≠0且[r]G+Q不是SM2椭圆曲线点群的零元:
m个装置中的每个装置在区间[1,n-1]中随机选择一个整数ki,计算得到Qi=[ki]Gb,其中,i=1,2,…,m,分别表示装置i随机选择的整数ki,所进行的计算及计算得到的Qi;
之后,由m个装置中的一个装置计算Q=Q1+Q2+…+Qm,此时,Q=[k1+k2+…+km]Gb;
若进行Q=Q1+Q2+…+Qm计算的是装置j,其中j=1,或2,…,或m,则在完成Q的计算后,装置j检查Q是否是SM2椭圆曲线点群的零元,若是,则装置j重新选择kj,重新计算Qj,重新计算Q=Q1+Q2+…+Qm,重新判断Q是否是零元,重复此过程,直到Q不是零元;若Q不是零元,则装置j取(x1,y1)=Q,计算r=(e+x1)mod n;
若计算得到的r、Q满足:r≠0且[r]G+Q不是SM2椭圆曲线点群的零元,则Q、r的计算完成;否则,装置j重新在区间[1,n-1]中随机选择一个整数kj,然后重新计算Qj、Q=Q1+Q2+…+Qm,重新判断Q是否是零元,以及在Q不是零元时重新计算r=(e+x1)mod n,重复此过程,直到r≠0且[r]G+Q不是SM2椭圆曲线点群的零元;
或者,若r=0或[r]G+Q是SM2椭圆曲线点群的零元,则所有m个装置一起从头重新进行Q、r的计算,直到r≠0且[r]G+Q不是SM2椭圆曲线点群的零元;
所述等同的方式,即同样能得到Q=[k1+k2+…+km]Gb、并在Q不是SM2椭圆曲线点群的零元时依据Q计算得到r,且使得r、Q满足r≠0且[r]G+Q不是SM2椭圆曲线点群的零元的方式。
7.根据权利要求6所述的SM2数字签名生成方法,其特征是:
若计算Q=Q1+Q2+…+Qm、r=(e+x1)mod n的装置,在计算得到Q、r后,仅检查r是否为零,不检查[r]G+Q是否是SM2椭圆曲线点群的零元,且仅在r=0时重新进行Q、r计算,则:
根据s1,s2,…,sm计算s的装置,若检查发现(s+r)mod n=0,则放弃计算得到的s,数字签名生成过程中计算Q、r的装置j,其中j=1,或2,…,或m,重新在区间[1,n-1]中随机选择一个整数kj,重新计算Qj,重新计算Q=Q1+Q2+…+Qm,重新判断Q是否是零元,以及在Q不是零元时重新计算r=(e+x1)mod n,之后每个装置i重新计算si,i=1,2,…m,然后由一个装置根据s1,s2,…,sm计算s,重复此过程,直到最后计算得到的s满足(s+r)mod n≠0;
或者根据s1,s2,…,sm计算s的装置,若检查发现(s+r)mod n=0,则所有m个装置一起从头重新进行Q、r的计算,直到最后计算得到的s满足(s+r)mod n≠0。
8.一种基于权利要求5-7中任一项的SM2数字签名生成系统,其特征是:
所述SM2数字签名生成系统包括m个装置,其中m大于或等于2;所述m个装置中的每个装置是一个密码服务器或一个用户计算装置;所述m个装置按所述数字签名生成方法,生成使用用户的SM2私钥dA针对消息M的数字签名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710024908.XA CN106549770B (zh) | 2017-01-13 | 2017-01-13 | Sm2数字签名生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710024908.XA CN106549770B (zh) | 2017-01-13 | 2017-01-13 | Sm2数字签名生成方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106549770A true CN106549770A (zh) | 2017-03-29 |
CN106549770B CN106549770B (zh) | 2019-07-12 |
Family
ID=58398308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710024908.XA Active CN106549770B (zh) | 2017-01-13 | 2017-01-13 | Sm2数字签名生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106549770B (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106961336A (zh) * | 2017-04-18 | 2017-07-18 | 北京百旺信安科技有限公司 | 一种基于sm2算法的密钥分量托管方法和系统 |
CN107017993A (zh) * | 2017-04-01 | 2017-08-04 | 北京江南天安科技有限公司 | 一种多方联合密钥产生和数字签名方法及系统 |
CN107104793A (zh) * | 2017-04-12 | 2017-08-29 | 武汉理工大学 | 一种数字签名生成方法及系统 |
CN107294707A (zh) * | 2017-06-22 | 2017-10-24 | 四川思安特科技有限公司 | 一种手机盾签名密钥保护方法 |
CN107528696A (zh) * | 2017-09-27 | 2017-12-29 | 武汉理工大学 | 一种隐藏私钥秘密的数字签名生成方法及系统 |
CN107566128A (zh) * | 2017-10-10 | 2018-01-09 | 武汉大学 | 一种两方分布式sm9数字签名生成方法与系统 |
CN107864037A (zh) * | 2017-10-25 | 2018-03-30 | 深圳奥联信息安全技术有限公司 | Sm9联合数字签名方法和装置 |
CN107872322A (zh) * | 2017-11-02 | 2018-04-03 | 武汉理工大学 | 基于同态加密的数字签名协同生成方法及系统 |
CN107911217A (zh) * | 2017-10-30 | 2018-04-13 | 陈彦丰 | 基于ecdsa算法协同生成签名的方法、装置和数据处理系统 |
WO2018225053A1 (en) * | 2017-06-07 | 2018-12-13 | Bar-Ilan University | Digital signing by utilizing multiple distinct signing keys, distributed between two parties |
CN109257176A (zh) * | 2018-10-18 | 2019-01-22 | 天津海泰方圆科技有限公司 | 基于sm2算法的解密密钥分割及解密方法、装置和介质 |
CN109586912A (zh) * | 2018-11-09 | 2019-04-05 | 天津海泰方圆科技有限公司 | 一种sm2数字签名的生成方法、系统、设备及介质 |
CN109787767A (zh) * | 2018-11-30 | 2019-05-21 | 济南晟安信息技术有限公司 | Sm2协同数字签名方法及装置 |
CN109872155A (zh) * | 2019-02-22 | 2019-06-11 | 矩阵元技术(深圳)有限公司 | 数据处理方法和装置 |
CN109962783A (zh) * | 2019-03-20 | 2019-07-02 | 武汉理工大学 | 基于递进计算的sm9数字签名协同生成方法及系统 |
CN110048839A (zh) * | 2019-04-26 | 2019-07-23 | 山东渔翁信息技术股份有限公司 | 一种数字签名方法、装置及存储介质 |
CN110213057A (zh) * | 2019-05-23 | 2019-09-06 | 武汉理工大学 | 具有乘积r参数的SM9数字签名协同生成方法及系统 |
CN110266472A (zh) * | 2019-04-09 | 2019-09-20 | 武汉理工大学 | 支持混合秘密共享的sm9数字签名协同生成方法及系统 |
CN110299998A (zh) * | 2019-07-04 | 2019-10-01 | 武汉理工大学 | 借助中间参数的sm9数字签名协同生成方法及系统 |
CN110688089A (zh) * | 2019-09-24 | 2020-01-14 | 武汉理工大学 | 一种针对群元数乘或幂运算的计算方法及系统 |
CN110943828A (zh) * | 2019-11-05 | 2020-03-31 | 武汉理工大学 | 秘密数运算转换方法及系统 |
CN110943829A (zh) * | 2019-11-08 | 2020-03-31 | 中国电子科技网络信息安全有限公司 | 一种三方协同生成sm2签名的方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000007326A1 (en) * | 1998-07-31 | 2000-02-10 | Sun Microsystems, Inc. | Methods and systems for establishing a shared secret using an authentication token |
US20020108040A1 (en) * | 2000-11-13 | 2002-08-08 | Eskicioglu Ahmet M. | Threshold cryptography scheme for conditional access systems |
EP1306749A2 (en) * | 2001-10-25 | 2003-05-02 | Matsushita Electric Industrial Co., Ltd. | Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device |
CN1543118A (zh) * | 2003-03-27 | 2004-11-03 | ���µ�����ҵ��ʽ���� | 公开密钥生成装置、共享密钥生成装置、密钥交换装置以及密钥交换方法 |
CN101262333A (zh) * | 2008-04-21 | 2008-09-10 | 上海大学 | 一种车辆网络中节点间的安全通信方法 |
US20100316215A1 (en) * | 2007-11-19 | 2010-12-16 | Paycool International Limited | Method of sharing a strong secret between two parties, one of whom has little processing power |
CN103475469A (zh) * | 2013-09-10 | 2013-12-25 | 中国科学院数据与通信保护研究教育中心 | 一种结合cpu和gpu实现sm2算法的方法及装置 |
CN103546288A (zh) * | 2013-09-25 | 2014-01-29 | 中国科学院数据与通信保护研究教育中心 | Sm2数字签名生成算法的实现方法及装置 |
CN104734847A (zh) * | 2015-04-21 | 2015-06-24 | 武汉理工大学 | 面向公钥密码应用的共享对称密钥数据加密和解密方法 |
CN106059760A (zh) * | 2016-07-12 | 2016-10-26 | 武汉理工大学 | 一种从用户端密码模块调用系统私钥的密码系统 |
-
2017
- 2017-01-13 CN CN201710024908.XA patent/CN106549770B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000007326A1 (en) * | 1998-07-31 | 2000-02-10 | Sun Microsystems, Inc. | Methods and systems for establishing a shared secret using an authentication token |
US20020108040A1 (en) * | 2000-11-13 | 2002-08-08 | Eskicioglu Ahmet M. | Threshold cryptography scheme for conditional access systems |
EP1306749A2 (en) * | 2001-10-25 | 2003-05-02 | Matsushita Electric Industrial Co., Ltd. | Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device |
CN1543118A (zh) * | 2003-03-27 | 2004-11-03 | ���µ�����ҵ��ʽ���� | 公开密钥生成装置、共享密钥生成装置、密钥交换装置以及密钥交换方法 |
US20100316215A1 (en) * | 2007-11-19 | 2010-12-16 | Paycool International Limited | Method of sharing a strong secret between two parties, one of whom has little processing power |
CN101262333A (zh) * | 2008-04-21 | 2008-09-10 | 上海大学 | 一种车辆网络中节点间的安全通信方法 |
CN103475469A (zh) * | 2013-09-10 | 2013-12-25 | 中国科学院数据与通信保护研究教育中心 | 一种结合cpu和gpu实现sm2算法的方法及装置 |
CN103546288A (zh) * | 2013-09-25 | 2014-01-29 | 中国科学院数据与通信保护研究教育中心 | Sm2数字签名生成算法的实现方法及装置 |
CN104734847A (zh) * | 2015-04-21 | 2015-06-24 | 武汉理工大学 | 面向公钥密码应用的共享对称密钥数据加密和解密方法 |
CN106059760A (zh) * | 2016-07-12 | 2016-10-26 | 武汉理工大学 | 一种从用户端密码模块调用系统私钥的密码系统 |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107017993A (zh) * | 2017-04-01 | 2017-08-04 | 北京江南天安科技有限公司 | 一种多方联合密钥产生和数字签名方法及系统 |
CN107017993B (zh) * | 2017-04-01 | 2020-05-05 | 北京江南天安科技有限公司 | 一种多方联合密钥产生和数字签名方法及系统 |
CN107104793A (zh) * | 2017-04-12 | 2017-08-29 | 武汉理工大学 | 一种数字签名生成方法及系统 |
CN107104793B (zh) * | 2017-04-12 | 2019-10-25 | 武汉理工大学 | 一种数字签名生成方法及系统 |
CN106961336A (zh) * | 2017-04-18 | 2017-07-18 | 北京百旺信安科技有限公司 | 一种基于sm2算法的密钥分量托管方法和系统 |
CN106961336B (zh) * | 2017-04-18 | 2019-11-26 | 北京百旺信安科技有限公司 | 一种基于sm2算法的密钥分量托管方法和系统 |
WO2018225053A1 (en) * | 2017-06-07 | 2018-12-13 | Bar-Ilan University | Digital signing by utilizing multiple distinct signing keys, distributed between two parties |
CN107294707A (zh) * | 2017-06-22 | 2017-10-24 | 四川思安特科技有限公司 | 一种手机盾签名密钥保护方法 |
CN107528696A (zh) * | 2017-09-27 | 2017-12-29 | 武汉理工大学 | 一种隐藏私钥秘密的数字签名生成方法及系统 |
CN107566128A (zh) * | 2017-10-10 | 2018-01-09 | 武汉大学 | 一种两方分布式sm9数字签名生成方法与系统 |
CN107864037A (zh) * | 2017-10-25 | 2018-03-30 | 深圳奥联信息安全技术有限公司 | Sm9联合数字签名方法和装置 |
CN107911217A (zh) * | 2017-10-30 | 2018-04-13 | 陈彦丰 | 基于ecdsa算法协同生成签名的方法、装置和数据处理系统 |
CN107911217B (zh) * | 2017-10-30 | 2021-02-26 | 陈彦丰 | 基于ecdsa算法协同生成签名的方法、装置和数据处理系统 |
CN107872322B (zh) * | 2017-11-02 | 2020-08-04 | 武汉理工大学 | 基于同态加密的数字签名协同生成方法及系统 |
CN107872322A (zh) * | 2017-11-02 | 2018-04-03 | 武汉理工大学 | 基于同态加密的数字签名协同生成方法及系统 |
CN109257176A (zh) * | 2018-10-18 | 2019-01-22 | 天津海泰方圆科技有限公司 | 基于sm2算法的解密密钥分割及解密方法、装置和介质 |
CN109586912A (zh) * | 2018-11-09 | 2019-04-05 | 天津海泰方圆科技有限公司 | 一种sm2数字签名的生成方法、系统、设备及介质 |
CN109787767A (zh) * | 2018-11-30 | 2019-05-21 | 济南晟安信息技术有限公司 | Sm2协同数字签名方法及装置 |
CN109872155A (zh) * | 2019-02-22 | 2019-06-11 | 矩阵元技术(深圳)有限公司 | 数据处理方法和装置 |
CN109962783A (zh) * | 2019-03-20 | 2019-07-02 | 武汉理工大学 | 基于递进计算的sm9数字签名协同生成方法及系统 |
CN109962783B (zh) * | 2019-03-20 | 2020-08-25 | 武汉理工大学 | 基于递进计算的sm9数字签名协同生成方法及系统 |
CN110266472A (zh) * | 2019-04-09 | 2019-09-20 | 武汉理工大学 | 支持混合秘密共享的sm9数字签名协同生成方法及系统 |
CN110266472B (zh) * | 2019-04-09 | 2021-06-08 | 武汉理工大学 | 支持混合秘密共享的sm9数字签名协同生成方法及系统 |
CN110048839A (zh) * | 2019-04-26 | 2019-07-23 | 山东渔翁信息技术股份有限公司 | 一种数字签名方法、装置及存储介质 |
CN110213057A (zh) * | 2019-05-23 | 2019-09-06 | 武汉理工大学 | 具有乘积r参数的SM9数字签名协同生成方法及系统 |
CN110299998A (zh) * | 2019-07-04 | 2019-10-01 | 武汉理工大学 | 借助中间参数的sm9数字签名协同生成方法及系统 |
CN110688089A (zh) * | 2019-09-24 | 2020-01-14 | 武汉理工大学 | 一种针对群元数乘或幂运算的计算方法及系统 |
CN110943828A (zh) * | 2019-11-05 | 2020-03-31 | 武汉理工大学 | 秘密数运算转换方法及系统 |
CN110943829A (zh) * | 2019-11-08 | 2020-03-31 | 中国电子科技网络信息安全有限公司 | 一种三方协同生成sm2签名的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106549770B (zh) | 2019-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106549770B (zh) | Sm2数字签名生成方法及系统 | |
CN106850198B (zh) | 基于多装置协同的sm2数字签名生成方法及系统 | |
CN106603231B (zh) | 基于去秘密化的分布式sm2数字签名生成方法及系统 | |
CN106603246B (zh) | 一种sm2数字签名分割生成方法及系统 | |
CN106656512B (zh) | 支持门限密码的sm2数字签名生成方法及系统 | |
CN106712942B (zh) | 基于秘密共享的sm2数字签名生成方法及系统 | |
CN106850229B (zh) | 基于乘积秘密分割的sm2数字签名生成方法及系统 | |
CN101617351B (zh) | 密文生成装置、密码通信系统以及群参数生成装置 | |
CN105406967B (zh) | 一种分层属性加密方案 | |
CN110999206A (zh) | 阈值数字签名方法及系统 | |
CN109728906B (zh) | 基于非对称密钥池的抗量子计算非对称加密方法和系统 | |
CN108989045B (zh) | 防全局篡改的装置和系统 | |
CN107104793B (zh) | 一种数字签名生成方法及系统 | |
CN107819585A (zh) | Sm9数字签名协同生成方法及系统 | |
CN104184588B (zh) | 基于身份的不可拆分数字签名方法 | |
CN107623570A (zh) | 一种基于加法密钥分割的sm2签名方法 | |
CN107483205B (zh) | 一种基于加密的私钥秘密的数字签名生成方法及系统 | |
CN109921905B (zh) | 基于私钥池的抗量子计算密钥协商方法和系统 | |
CN109905229B (zh) | 基于群组非对称密钥池的抗量子计算Elgamal加解密方法和系统 | |
CN107968710A (zh) | Sm9数字签名分离交互生成方法及系统 | |
US9660813B1 (en) | Dynamic privacy management for communications of clients in privacy-preserving groups | |
CN109951292A (zh) | 精简的sm9数字签名分离交互生成方法及系统 | |
WO2021102443A1 (en) | Multi-party and multi-use quantum resistant signatures and key establishment | |
Verma et al. | A hybrid-based verifiable secret sharing scheme using Chinese remainder theorem | |
CN109495244A (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 |