CN113704831B - 一种参与方无需同时在线的数字签名多方生成方法及系统 - Google Patents
一种参与方无需同时在线的数字签名多方生成方法及系统 Download PDFInfo
- Publication number
- CN113704831B CN113704831B CN202110917842.3A CN202110917842A CN113704831B CN 113704831 B CN113704831 B CN 113704831B CN 202110917842 A CN202110917842 A CN 202110917842A CN 113704831 B CN113704831 B CN 113704831B
- Authority
- CN
- China
- Prior art keywords
- digital signature
- party
- multiparty
- message
- generating
- 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
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000013500 data storage Methods 0.000 claims abstract description 38
- 238000004364 calculation method Methods 0.000 claims abstract description 13
- 230000008569 process Effects 0.000 claims description 14
- 230000008520 organization Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 3
- 238000013475 authorization Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
参与方无需同时在线的数字签名多方生成方法:第1到第m方共享了数字签名私钥dA或共享了与私钥dA相关秘密,其中第i方有秘密份额di,i=1,…,m;在对消息进行签名前,第i方在[1,n‑1]内随机选择的整数pi计算得到随机生成群元gS的生成分量gi,将gi在密码数据存储系统,i=1,…,m,其中n为随机生成群元gS所在群的阶;在使用私钥dA对一个消息M进行数名之前或时,利用gi,i=1,…,m,计算得到随机生成群元gS;当使用私钥dA对一个消息M进行数字签名时,使用随机生成群元gS生成计算数字签名所需的数据,第i方使用计算gi时的pi计算得到部分签名数据集Si,最后利用Si生成最终的数字签名。
Description
技术领域
本发明属于信息安全技术领域,特别是一种参与方无需同时在线的数字签名多方生成方法及系统。
背景技术
基于公钥密码算法的数字签名能防止信息篡改,保证信息的源发性、完整性,具有抗抵赖的能力(具有不可否定性),目前获得广泛的应用。目前常用的数字签名算法包括RSA数字签名算法、DSA数字签名算法、基于椭圆曲线的ECDSA数字签名算法、SM2数字签名算法、基于标识(配对运算)的数字签名算法如SM9数字签名算法等。
SM2是由国家密码管理局颁布的一种椭圆曲线公钥密码算法(参见《SM2椭圆曲线公钥密码算法》规范,国家密码管理局,2010年12月),基于此算法能实现数字签名、数据加密及密钥交换。SM2的数字签名方案如下。
设dA是私钥,G是SM2椭圆曲线点群中的基点(基元),n是G的阶,即G生成的椭圆曲线点群的阶,针对一个消息M的数字签名如下:
在[1,n-1]内随机选择一个整数k,计算Q=[k]G,计算杂凑值(散列值)e=Hv(ZA||M),其中ZA是用户标识IDA与其他数据组合生成的数据的杂凑值(参见SM2规范),计算r=(e+x1)mod n,x1取自(x1,y1)=Q;若r≠0且(r+k)mod n r≠0,计算s=((1+dA)-1k-rdA(1+dA)-1)mod n,则(r,s)为针对消息M的数字签名。
以上描述中,[k]P表示k个椭圆曲线点P的点加,即P+P+...+P(共有k个P),这里省略号“...”,表示多个同样(类型)的数据项或多个同样的运算(本发明描述也是如此);c-1表示整数c的模n乘法逆(即cc-1mod n=1),如无特别说明,本发明中出现整数逆c-1,都是模n乘法逆,这里的n是采用的数字签名算法的群的阶;mod n表示模n运算(在SM2规范中使用的模n运算符号是modn)。
SM9是由国家密码管理局颁布的一种基于双线性映射(配对运算)的标识密码算法(参见GM/T 0044.2-2016《SM9标识密码算法》,2016年3月发布,目前该算法已成为国家标准),它提供了数字签名、数据加密、密钥封装、密钥交换等密码功能。SM9的数字签名方案如下。
设双线性映射(配对运算)为:e:G1×G2→GT时,其中G1、G2是加法循环群,GT是一个乘法循环群,G1、G2、GT的阶是素数n(注:在SM9规范中,G1、G2、GT的阶用的是大写字母N,本专利申请采用小写n)。使用用户私钥dA针对消息M生成数字签名的过程如下:
计算w=g^r,这里符号^表示幂运算(g的r次幂),r是在[1,n-1]区间内随机选择的整数,g=e(P1,Ppub),P1为群G1的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为群G2生成元(参见SM9规范,注意,这里的主私钥或主密钥,主公钥,用户标识私钥使用的符号与SM9规范略有不同);然后,计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示M和w的字串合并(参见SM9规范);若r≠h,计算S=[r-h]dA,则若S为非零元,(h,S)为生成的数字签名;若r=h或S为零元,则重新选择r,重新计算w、h,直到r≠h。
在以上SM2、SM9数字签名中的Q、w是利用[1,n-1]内随机选择的整数计算得到的,它们将数字签名的安全性与离散对数难题绑定,使得从数字签名破解私钥或伪造数字签名变得困难,是保证数字签名安全必须的数据,在其他数字签名方案中有同样的使用随机整数计算得到的群元数据,在本发明的描述中将Q、w及类似的群元数据称为随机生成群元,将SM2中为生成Q在[1,n-1]内随机选择的整数称为k参数,将SM9中为生成w在[1,n-1]内随机选择的整数称为r参数。
在现实世界中我们会遇到这样的情形,一个很重要公章由两人或多人同时掌控,被锁在一个上了多把锁的柜子里,其中公章的掌控人员一人一把锁,只有所有掌控人员都到场,用自己的钥匙打开锁,取出公章,才能使用公章加盖文件。电子世界同样会有类似的需求,一个用于数字签名的私钥被两人或多人掌控,只有掌控私钥的人都同意使用私钥进行签名,才能使用私钥对电子文件进行数字签名。对于这种需求,一种可能方式是采用使用授权的方式:签名私钥被集中保存在一个密码系统中,只要获得有关掌控人员的同时授权,才能使用密码系统中的私钥进行数字签名。这种方式必须建立配套的授权与访问控制系统,集中存储和使用私钥的密码系统。对于这种需求,另一种可能方式是将签名私钥或与签名私钥相关的秘密在两人或多人之间共享,当需要使用私钥对数据进行数字签名时,私钥秘密份额或私钥相关秘密的秘密份额持有人,使用各自的秘密份额协同生成数字签名。关于使用签名私钥的秘密份额或私钥相关秘密的秘密份额协同生成数字签名,人们已提出了各种方案,但这些方案都是基于秘密份额持有者(及其使用的装置)同时在线而设计,这些方案需要秘密份额持有者(及其使用的装置)之间在线交互数据,而在现实中要求秘密份额持有者(及其使用的装置,如密码装置)同时在线这往往是不可能的,或者与实际应用场景不符,比如,实际应用场景可能是,A先使用存储有自己的秘密份额的密码装置对电子文件进行签名,然后A把签名后的电子文件发给在异地的B,由B使用存储有自己的秘密份额的密码装置对A签名的电子文件进行签名,形成最终的数字签名,对于这种应用场景,要求A和B同时在线使用存储有自己秘密份额的密码装置对电子文件进行数字签名几乎是不可能,而且这还需要设计专门的通过互联网交换数据的实时在线数据交换协议,开发专门的实时在线数据交换程序,这在秘密份额由多人持有时会变得更复杂。
这些已有的数字签名协同生成方案之所有存在这些问题是因为这些方案并非针对本发明所说的需求而设计的,这些方案仅适用于秘密份额的持有者中最多有一个是用户,其他都是在线系统(装置)的情形。
另外需要说明是,本发明的应用需求与使用两个或多个签名私钥对电子文件签名是完全不同的,使用两个或多个签名私钥对电子文件签名,最终得到的是包含两个或多个数字签名的电子文件,而本发明的应用需求、场景,最终得到的是仅包含一个数字签名的电子文件。
发明内容
本发明的目的是针对签名私钥或私钥相关秘密的秘密份额持有者不能同时在线的数字签名生成问题,提出相应的解决方案,以满足相应的数字签名应用需求。
针对本发明的目的,本发明提出的解决方案包括一种参与方无需同时在线的数字签名多方生成方法以及相应的系统,下面给出具体描述。
本发明的参与方无需同时在线的数字签名多方生成方法具体如下。
所述方法涉及称为第1方,第2方,…,第m方的m个参与方,m≥2;所述第i方,i=1,…,m,是一个用户或机构及其使用的计算装置(包括软件、硬件)、密码装置(软件或软硬件结合组件)、以及计算装置中使用密码装置生成数字签名的程序的统称(不意味着每一方都需要有单独的计算装置、密码装置、以及计算装置中运行的使用密码装置生成数字签名的程序);
所述m个参与方(通过一定的秘密共享方式)共享(分享)了一个数字签名私钥dA或与私钥dA相关秘密,其中第i方有(私钥dA或与私钥dA相关秘密的)秘密份额di,i=1,…,m(私钥dA属于谁不是本发明关心的问题,每一方如何保存其秘密份额属于本发明之外的问题);所述与私钥dA相关秘密指能够恢复出私钥dA的秘密(比如,对于SM2数字签名,与私钥dA相关秘密可以是(1+dA)-1,也可以是能从非保密数c=(b(1+dA)-1)mod n中恢复出(1+dA)-1以及dA的秘密b;对于SM9,与私钥dA相关秘密可以是从非保密群元[c]dA恢复得到dA的c-1);
在针对消息进行数字签名前,第i方在[1,n-1]内随机选择整数pi计算得到随机生成群元gS的生成分量gi,将gi提交到一个密码数据存储系统(保存或做进一步计算后保存),i=1,…,m,其中n为随机生成群元gS所在群的阶(m个参与方都要进行如此计算;密码数据存储系统通常是一个集中的数据存储系统);
在使用私钥dA对一个消息进行数字签名之前或时,利用gi,i=1,…,m,计算得到随机生成群元gS(计算gS的主体,可以是m个参与方中的一方,或者m个参与方之外的其他方;若gS所在群是加法群,gS通常是使用各gi进行线性运算的结果;若gS所在群是乘法群,gS通常是使用各gi进行乘运算的结果,或各gi非保密次幂运算后的乘运算的结果);
当需要使用私钥dA对一个消息M进行数字签名时,(m个参与方中的一方,或m个参与方之外的实体)使用随机生成群元gS生成计算数字签名所需的数据(如SM2数字签名中的r、SM9数字签名中的h,其他数字签名方案中的类似数据),第i方使用计算gi时的pi,计算得到部分签名数据集Si,i=1,…,m(此时m个参与方无需同时在线计算);所述部分签名数据集Si包含一项或多项用于生成最终数字签名的数据(部分签名数据集Si中的数据为非保密数据);
m个参与方中最后针对消息M进行数字签名运算的一方,或者m个参与方之外的其他方,利用已生成的部分签名数据集Si,i=1,…,m,生成最终的数字签名(对于SM2即(r,s),对于SM9即(h,S));
对于以上所述数字签名多方生成方法,第i方计算gi不依赖于第j方(即其他方)计算的gj,i≠j,i,j=1,…,m,且第i方生成Si时m个参与方中的其他方不必在线,无需其他方使用秘密份额实时在线参与Si的生成(生成Si所需要的数据可以包括其他方计算的结果,如其他方生成的Sj,但不依赖于其他方在线使用其秘密份额dj进行密码运算,i≠j;生成Si所需要的数据可以从约定的地方获取,如密码数据存储系统、被签名的数据中);
在以上数字签名生成程中生成的中间数据,其中包括:随机生成群元gS,和由gS生成的计算数字签名所需的数据,以及部分签名数据集Si,保存在数字签名生成参与方能获取的数据存储位置(比如,存放在密码数据存储系统,或者与被签名的数据如电子文件存放在一起流转);
对于以上所述数字签名多方生成方法,在m个参与方同时在线且能够实时进行签名计算和交换数据时,所述数字签名多方生成方法必须同时是一个安全有效的基于秘密共享的数字签名实时在线多方协同生成方法(这既是对本发明技术方案的要求也是实施本发明的途径)。
(若签名失败,如对于SM2数字签名,r=0或(k+r)mod n=0,对于SM9数字签名r-h=0,则m参与方重新进行签名,但出现这种情况的概率极小极小,在现实中几乎不可能发生)
对于以上所述参与方无需同时在线的数字签名多方生成方法:
在生成Si的过程中第i方通过gi与pi的对应关系找到生成Si所需要的pi,i=1,…,m(gS与gi有对应关系,gi与pi有对应关系);
在完成针对消息M的数字签名后,密码数据存储系统不再保存已使用过的gS、gi,i=1,…,m。
对于以上所述参与方无需同时在线的数字签名多方生成方法:
在对消息M进行数字签名的过程中,或者在对消息M进行数字签名后,所述第i方在[1,n-1]内选择一个新的pi,计算新的gi,并将新计算的gi提交到密码数据存储系统,i=1,…,m;
若所述第i方在对消息M进行数字签名的过程中计算了新的gi,则此gi及对应的pi不用于当前消息M的数字签名,而是用于之后的针对新的消息的数字签名,i=1,…,m。
对于以上所述参与方无需同时在线的数字签名多方生成方法:
除了gi外,i=1,…,m,所述第i方还将与被签名的消息无关的、能够预先计算并在针对一个消息进行签名时用到的、且无需保密的数据预先计算并提交到密码数据存储系统保存。
对于以上所述参与方无需同时在线的数字签名多方生成方法:
在针对一个消息M进行数字签名前,所述第i方向密码数据存储系统提交有一个gi或者有多个使用不同pi计算的gi,i=1,…,m;若提交有多个gi,则在对一个消息M进行数字签名时,生成gS所使用的第i方的gi仅是其中的一个。
对于以上所述参与方无需同时在线的数字签名多方生成方法:
若第i方生成部分签名数据集Si依赖于第j方生成的部分签名数据集Sj,i=1,或…,或m,j≠i,j=1,或…,或m,则第j方在第i方生成Si之前生成部分签名数据集Sj(但第i方无需在线与第j方交互从第j方获得Sj)。
对于以上所述参与方无需同时在线的数字签名多方生成方法:
若di,i=1,…,m,为阶为素数n的加法群中的元,且d1+…+dm为私钥dA或与私钥dA相关秘密,则当所述方法用于(m,t)门限秘密共享(如Shamir、拉格朗日秘密共享)时,t>m,其中的m个参与方是(m,t)门限秘密共享中的t个秘密份额持有方中的m个,其中的di是m个参与方中的第i方根据当前m个门限秘密持有方计算得到的用于恢复共享秘密即私钥dA或与私钥dA相关秘密的秘密份额(比如,假设第i方的Shamir门限秘密份额是λi,i=1,…,m,则di是第i方使用m个参与方的秘密份额所对应的整数计算得到的用于恢复共享秘密的秘密份额)。
基于以上所述参与方无需同时在线的数字签名多方生成方法可构建相应的数字签名多方生成系统:
系统包括所述m个参与方所使用的计算装置、密码装置、计算装置中运行的使用密码装置生成数字签名的程序,以及密码数据存储系统;所述m个参与方按所述无需同时在线的数字签名多方生成方法生成针对消息的数字签名。
从发明内容及具体实施方式中的实施例可以看到,基于本发明的方法,签名私钥的秘密份额或与签名私钥相关的秘密的秘密份额的持有者(参与方用户或机构)不必同时在线就可以使用各自的秘密份额完成对数据的数字签名,在签名过程中各参与方无需实时在线交互。
附图说明
图1:本发明的系统示意图
具体实施方式
下面结合实施例对本发明作进一步的描述。以下实施例只表示本发明几种可能的实施方式,不是全部可能的实施方式,不作为对本发明的限定。
实施例1、
下面说明如何在发明“一种SM2数字签名分割生成方法及系统”(专利号:ZL201710056996.1)的基础上针对SM2数字签名算法实施本发明。
为了利用201710056996.1实施本发明,本发明的第1方、第2方分别对应(但不等同于)201710056996.1中的第一装置、第二装置;第1方、第2方共享的是dA相关的秘密(1+dA)-1,d1、d2分别为第1方、第2方的秘密份额。在实施本发明时,b为第1方的常数秘密,Gb=[b]G为预先计算的非保密常数元。
在对一个消息进行数字签名前,第1方、第2方预先计算有一个或多个Q1=[k1]Gb,Q2=[k2]Gb(k1、k2分别对应本发明的p1、p2,Q1、Q2分别对应本发明的g1、g2),并提交到密码数据存储系统保存,其中k1、k2分别是第1方、第2方在[1,n-1]内随机选择的整数,n是基点G的阶。
在对一个消息M进行数字签名时,第1方或其他实体先计算Q=Q1+Q2(Q对应本发明的随机生成群元gS),利用消息M、Q等计算得到r=(e+x1)mod n;第1方计算w1=d1b mod n,s1=(k1+(b)-1r)mod n,其中k1是与计算Q1对应的k参数k1;第1方将r、w1、s1(对应本发明的部分签名数据集S1)存放约定的位置,如密码数据存储系统中,或被签名的数据(如电子文件)中;第2方从约定的位置获得r、w1、s1,计算s=(d2w1(k2+s1)-r)mod n,其中k2是与计算Q2对应的k参数k2(r、s对应本发明的部分签名数据集S2);(r,s)就是生成的针对消息M的数字签名。
实施例2、
下面说明如何在发明“一种基于去秘密化的分布式SM2数字签名生成方法及系统”(专利号:ZL201710040822.6)的基础上针对SM2数字签名算法实施本发明。
为了利用201710040822.6实施本发明,本发明的第1方、…、第m方分别对应(但不等同于)201710040822.6中的装置1、…、装置m;第1方、…、第2方共享的是dA相关的秘密(1+dA)-1,d1、…、dm分别为第1方、…、第2方的秘密份额(d1、…、dm在201710040822.6中使用的符号是g1、…、gm)。在实施本发明时,c取值为1,Gb=[(1+dA)]G为预先计算的非保密群元。
在对一个消息进行数字签名前,第1方、…、第2方预先计算有一个或多个Q1=[k1]Gb,…,Qm=[km]Gb(k1、…、km分别对应本发明的p1、…、pm,Q1、…、Qm分别对应本发明的g1、…、gm),并提交到密码数据存储系统保存,其中k1、…、km分别是第1方、…、第m方在[1,n-1]内随机选择的整数,n是基点G的阶。
在对一个消息M进行数字签名时,第一个进行签名运算的一方或其他实体先计算Q=Q1+…+Qm(Q对应本发明的随机生成群元gS),利用消息M、Q等计算得到r=(e+x1)mod n;第i方计算si=(ki+dir)mod n,i=1,2,...,m,其中ki是与计算Qi对应的k参数ki;r、si对应本发明的部分签名数据集Si;r、si被存放在约定的位置,如密码数据存储系统中,被签名的数据(如电子文件)中;最后参与数字签名生成的一方或其他实体从约定位置获得其他方生成的数据,计算s=((s1+…+sm)-r)mod n,则(r,s)就是生成的针对消息M的数字签名。
实施例3、
下面说明如何在发明“SM9数字签名分离交互生成方法及系统”(专利号:ZL201711206787.7)的基础上针对SM9数字签名算法实施本发明。
不是201711206787.7中的所有方案都能实施本发明,只有其中的方案一中的w=g^(r1+r2)的情形的能实施本发明,具体如下。
为了利用201710056996.1实施本发明,本发明的第1方、第2方分别对应(但不等同于)201710056996.1中的第1号装置、第2号装置;第1方、第2方共享的是秘密是能从PA=[(c1c2)-1]dA恢复出私钥dA的(c1c2)mod n,其中c1、c2分别为第1方、第2方的秘密份额(c1、c2分别对应本发明的第1方、第2方的秘密份额d1、d2)。
在对一个消息进行数字签名前,第1方、第2方预先计算有一个或多个g1=g^r1,g2=g^r2(r1、r2分别对应本发明的p1、p2,g1、g2分别对应本发明的g1、g2),其中g=e(P1,Ppub),并提交到密码数据存储系统保存,其中k1、k2分别是第1方、第2方在[1,n-1]内随机选择的整数,n群G1、G2、GT的阶。在对一个消息进行数字签名前,第1方同时取S0=PA,计算S1=[r1]PA或者计算S0=[(r1)-1]PA,取S1=PA,将S0、S1提交到密码数据存储系统保存,其中的r1是计算g1时的r参数r1。
在对一个消息M进行数字签名时,第2方或其他实体先计算w=g1g2(w对应本发明的随机生成群元gS),利用消息M、w等计算得到h=H2(M||w,n);第2方计算S2=[c2]S1+[c2(r2-h)]S0,第2方将S2、h存放在约定的位置,如密码数据存储系统、被签名的数据中(如电子文件中)(第2方的S2、h对应本发明的第2方生成的部分签名数据集S2);第1方从约定位置获得S2、h;若第1方之前取S0=PA,则第1方计算S=[c1]S2;若第1方之前取S0=[(r1)-1]PA,则第1方计算S=[c1r1]S2,然后第1方验证(h,S)作为消息M的数字签名的有效性,验证通过则(h,S)是针对消息M的数字签名。
实施例4、
下面说明如何在发明“SM9数字签名多方生成方法及系统”(专利号:ZL201711147604.9)的基础上针对SM9数字签名算法实施本发明。
201711147604.9的方案一不适合于实施本发明,方案二以及方案二的变形方案可用于实施本发明,下面以方案二的变形方案为例说明。
为了利用201711147604.9的方案二的变形方案实施本发明,本发明的第1方、…、第m方分别对应(但不等同于)201711147604.9中的第1号装置、…、第m号装置;第1方、…、第2方共享的是dA,201711147604.9方案二的变形方案中的第1号装置、…、第m号装置的秘密份额d1、…、dm对应本发明的第1方、…、第2方的秘密份额。
在对一个消息进行数字签名前,第1方、…、第2方预先计算有一个或多个g1=gc^r1,…,gm=gc^rm(r1、…、rm分别对应本发明的p1、…、pm,g1、…、gm分别对应本发明的g1、…、gm),gc=g^c,g=e(P1,Ppub),c为[1,n-1]内随机选取的对各方保密的整数,并提交到密码数据存储系统保存,其中r1、…、rm分别是第1方、…、第m方在[1,n-1]内随机选择的整数,n是群GT的阶。
在对一个消息M进行数字签名时,第一个进行签名运算的一方或其他实体先计算w=g1g2…gm(w对应本发明的随机生成群元gS),利用消息M、w等计算得到h=H2(M||w,n);
第i方计算Si=[ri]PA+[-h]di,i=1,2,...,m,其中ri是与计算gi对应的r参数ri;h、Si对应本发明的部分签名数据集Si;h、Si被存放在约定的位置,如密码数据存储系统中,被签名的数据(如电子文件)中;最后参与数字签名生成的一方或其他实体从约定位置获得其他方生成的数据,计算S=S1+…+Sm,则(h,S)就是生成的针对消息M的数字签名。
以上给出的针对SM2、SM9密码算法的基于秘密共享的数字签名多方生成实施方式并非唯一可能的多方生成实施方式,还有其他可能的多方生成实施方式,因此,以上给出的本发明针对SM2、SM9密码算法的实施方式并非唯一可能的实施方式,还有其他可能的实施方式。除了SM2、SM9密码算法,对于其他公钥数字签名算法也可以基于同样或类似的原理实施本发明的方法。
在以上实施例2、4中,若其中的m个参与方是(m,t)门限秘密共享中的t个秘密份额持有方中的m个,t>m,则其中的di是m个参与方中的第i方根据当前m个门限秘密持有方计算得到的用于恢复共享秘密即私钥dA或与私钥dA相关秘密的秘密份额(比如,假设第i方的Shamir门限秘密份额是λi,i=1,…,m,则di是第i方使用m个参与方的门限秘密份额对应的整数计算得到的用于恢复共享秘密的秘密份额)。
密码数据存储系统可以实施为一个单独的系统,或者是一个密码服务系统的数据存储系统,m个参与方通过网络或通过现场访问密码数据存储系统。
对一个消息M进行数字签名时,随机生成群元gS(如SM2的Q、SM9的w)的生成实体可以是如下实体之一(当然不排除其他的方式):
1)由一个密码服务系统从密码数据存储系统获得随机生成群元gS的生成分量gi,计算得到gS;
2)由第一个使用秘密份额进行数字签名操作的一方从密码数据存储系统获得随机生成群元gS的生成分量gi,计算得到gS。
对于以上实施例,从Q、M计算得到r,从w、M计算得到h的操作,可以由一个密码服务系统完成,也可以由第一个使用秘密份额进行签名操作的一方完成。
gi与pi的对应关系,即一个gi它对应的pi具体是啥,是不能直接公开的;在第i方之外,需要通过间接的方式保存,对此,有很多可能的实施方式,下面仅给出其中一种可能的实施方式(当然不排除其他的方式):
第i方,i=1,…,m,在将gi提交到密码数据存储系统时,同时提交对应的pi杂凑值(散列值、哈希值);在数字签名生成过程中,这个杂凑值及其与gi的对应关系可以随时获取,或者与其他处理数据一起流转;第i方保存有之前计算gi使用的pi以及pi与其杂凑值的对应关系;在生成数字签名时,第i方通过pi的杂凑值与pi的对应关系能很容易地找到对应的pi。
注意,由于发明中允许第i方预先计算、提交多个gi到密码数据存储系统,在第i方维护gi和pi的对应关系是需要的。
在m个参与方针对消息M生成数字签名的过程中,需要在参与方之间传递各种相关数据,如其他方已生成的Si,gi与pi的对应关系,对此,可以采用如下方式一(当然不排除其他的方式):
1)将生成数字签名过程中的所有相关数据保存在密码数据存储系统,并通过消息M的杂凑值(散列值)标识、关联;各参与方从密码数据存储系统获取需要的数据;
2)将生成数字签名过程中的所有相关数据保存与被签名的数据(如电子文件)保存在一起,参与方从被签名的数据中获取需要的数据。
基于本发明的参与方无需同时在线的数字签名多方生成方法可构建相应的数字签名多方生成系统:
系统包括所述参与方无需同时在线的数字签名多方生成方法中的m个参与方所使用的计算装置、密码装置、计算装置中运行的使用密码装置生成数字签名的程序,以及密码数据存储系统;所述m个参与方按所述无需同时在线的数字签名多方生成方法生成针对消息的数字签名,包括按以上所述实施例的方式实施针对消息的SM2、SM9的数字签名。所述参与方所使用的计算装置包括个人计算机、便携式计算机,以及平板电脑、手机等移动终端;所述密码装置可以是软件密码组件或者软硬件结合的密码组件;各参与方可以使用不同的计算装置,也可以使用同一个计算装置。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (10)
1.一种参与方无需同时在线的数字签名多方生成方法,其特征是:
所述方法涉及称为第1方,第2方,…,第m方的m个参与方,m≥2;所述第i方,i=1,…,m,是一个用户或机构及其使用的计算装置、密码装置、以及计算装置中运行的使用密码装置生成数字签名的程序的统称;
所述m个参与方共享了一个数字签名私钥dA或与私钥dA相关秘密,其中第i方有秘密份额di,i=1,…,m;所述与私钥dA相关秘密指能够恢复出私钥dA的秘密;
在针对消息进行数字签名前,第i方在[1,n-1]内随机选择整数pi计算得到随机生成群元gS的生成分量gi,将gi提交到一个密码数据存储系统,i=1,…,m,其中n为随机生成群元gS所在群的阶;
在使用私钥dA对一个消息进行数字签名之前或签名时,利用gi,
i=1,…,m,计算得到随机生成群元gS;
当需要使用私钥dA对一个消息M进行数字签名时,使用随机生成群元gS生成计算数字签名所需的数据,第i方使用计算gi时的pi,计算得到部分签名数据集Si,i=1,…,m所述部分签名数据集Si包含一项或多项用于生成最终数字签名的数据;
m个参与方中最后针对消息M进行数字签名运算的一方,或者m个参与方之外的其他方,利用已生成的部分签名数据集Si,i=1,…,m,生成最终的数字签名;
对于以上所述数字签名多方生成方法,第i方计算gi不依赖于第j方计算的gj,i≠j,i,j=1,…,m,且第i方生成Si时m个参与方中的其他方不必在线,无需其他方使用秘密份额实时在线参与Si的生成;
在以上数字签名生成过程中生成的中间数据,其中包括随机生成群元gS,和由gS生成的计算数字签名所需的数据,以及部分签名数据集Si,保存在数字签名生成参与方能获取的数据存储位置;
对于以上所述数字签名多方生成方法,在m个参与方同时在线且能够实时进行签名计算和交换数据时,所述数字签名多方生成方法必须同时是一个安全有效的基于秘密共享的数字签名实时在线多方协同生成方法。
2.根据权利要求1所述的参与方无需同时在线的数字签名多方生成方法,其特征是:
在生成Si的过程中第i方通过gi与pi的对应关系找到生成Si所需要的pi,i=1,…,m;
在完成针对消息M的数字签名后,密码数据存储系统不再保存已使用过的gS、gi,i=1,…,m。
3.根据权利要求1所述的参与方无需同时在线的数字签名多方生成方法,其特征是:
在对消息M进行数字签名的过程中,或者在对消息M进行数字签名后,所述第i方在[1,n-1]内选择一个新的pi,计算新的gi,并将新计算的gi提交到密码数据存储系统,i=1,…,m;
若所述第i方在对消息M进行数字签名的过程中计算了新的gi,则此gi及对应的pi不用于当前消息M的数字签名,而是用于之后的针对新的消息的数字签名,i=1,…,m。
4.根据权利要求1所述的参与方无需同时在线的数字签名多方生成方法,其特征是:
除了gi外,i=1,…,m,所述第i方还将与被签名的消息无关的、能够预先计算并在针对一个消息进行签名时用到的、且无需保密的数据预先计算并提交到密码数据存储系统保存。
5.根据权利要求1所述的参与方无需同时在线的数字签名多方生成方法,其特征是:
在针对一个消息M进行数字签名前,所述第i方向密码数据存储系统提交有一个gi或者有多个使用不同pi计算的gi,i=1,…,m;若提交有多个gi,则在对一个消息M进行数字签名时,生成gS所使用的第i方的gi仅是其中的一个。
6.根据权利要求1所述的参与方无需同时在线的数字签名多方生成方法,其特征是:
若第i方生成部分签名数据集Si依赖于第j方生成的部分签名数据集Sj,i=1,或…,或m,j≠i,j=1,或…,或m,则第j方在第i方生成Si之前生成部分签名数据集Sj。
7.根据权利要求1所述的参与方无需同时在线的数字签名多方生成方法,其特征是:
若di,i=1,…,m,为阶为素数n的加法群中的元,且d1+…+dm为私钥dA或与私钥dA相关秘密,则当所述方法用于(m,t)门限秘密共享时,t>m,其中的m个参与方是(m,t)门限秘密共享中的t个秘密份额持有方中的m个,其中的di是m个参与方中的第i方根据当前m个门限秘密持有方计算得到的用于恢复共享秘密即私钥dA或与私钥dA相关秘密的秘密份额。
8.根据权利要求1所述的参与方无需同时在线的数字签名多方生成方法,其特征是:
若所述数字签名多方生成方法用于SM2数字签名,则pi对应于k参数ki,随机生成群元gS对应用于生成杂凑值r的群元Q,随机生成群元gS所在群即SM2算法使用的椭圆曲线点群,随机生成群元gS生成的计算数字签名所需的数据即SM2数字签名中的r。
9.根据权利要求1所述的参与方无需同时在线的数字签名多方生成方法,其特征是:
若所述数字签名多方生成方法用于SM9数字签名,则所述pi对应于一个r参数ri,随机生成群元gS对应用于生成杂凑值h的群元w,随机生成群元gS所在群即双线性映射结果对应的群GT,随机生成群元gS生成的数字签名计算数字签名所需的数据即SM9数字签名中的h。
10.一种基于权利要求1-9中任一项所述的参与方无需同时在线的数字签名多方生成方法的参与方无需同时在线的数字签名多方生成系统,其特征是:
所述系统包括所述m个参与方所使用的计算装置、密码装置、计算装置中运行的使用密码装置生成数字签名的程序,以及密码数据存储系统;所述m个参与方按所述无需同时在线的数字签名多方生成方法生成针对消息的数字签名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110917842.3A CN113704831B (zh) | 2021-08-11 | 2021-08-11 | 一种参与方无需同时在线的数字签名多方生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110917842.3A CN113704831B (zh) | 2021-08-11 | 2021-08-11 | 一种参与方无需同时在线的数字签名多方生成方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113704831A CN113704831A (zh) | 2021-11-26 |
CN113704831B true CN113704831B (zh) | 2023-11-03 |
Family
ID=78652223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110917842.3A Active CN113704831B (zh) | 2021-08-11 | 2021-08-11 | 一种参与方无需同时在线的数字签名多方生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704831B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108989054A (zh) * | 2018-08-30 | 2018-12-11 | 武汉理工大学 | 一种密码系统及数字签名方法 |
CN110011802A (zh) * | 2019-02-27 | 2019-07-12 | 武汉大学 | 一种高效的sm9两方协同生成数字签名的方法及系统 |
CN110266486A (zh) * | 2019-07-02 | 2019-09-20 | 武汉理工大学 | 基于乘积秘密共享的sm9数字签名简捷生成方法及系统 |
CN110519051A (zh) * | 2019-08-22 | 2019-11-29 | 武汉理工大学 | r参数和秘密双乘积的SM9签名协同生成方法及系统 |
US10903991B1 (en) * | 2019-08-01 | 2021-01-26 | Coinbase, Inc. | Systems and methods for generating signatures |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10530585B2 (en) * | 2017-06-07 | 2020-01-07 | Bar-Ilan University | Digital signing by utilizing multiple distinct signing keys, distributed between two parties |
GB201817506D0 (en) * | 2018-03-02 | 2018-12-12 | Nchain Holdings Ltd | Computer implemented method and system |
GB201805633D0 (en) * | 2018-04-05 | 2018-05-23 | Nchain Holdings Ltd | Computer implemented method and system |
-
2021
- 2021-08-11 CN CN202110917842.3A patent/CN113704831B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108989054A (zh) * | 2018-08-30 | 2018-12-11 | 武汉理工大学 | 一种密码系统及数字签名方法 |
CN110011802A (zh) * | 2019-02-27 | 2019-07-12 | 武汉大学 | 一种高效的sm9两方协同生成数字签名的方法及系统 |
CN110266486A (zh) * | 2019-07-02 | 2019-09-20 | 武汉理工大学 | 基于乘积秘密共享的sm9数字签名简捷生成方法及系统 |
US10903991B1 (en) * | 2019-08-01 | 2021-01-26 | Coinbase, Inc. | Systems and methods for generating signatures |
CN110519051A (zh) * | 2019-08-22 | 2019-11-29 | 武汉理工大学 | r参数和秘密双乘积的SM9签名协同生成方法及系统 |
Non-Patent Citations (1)
Title |
---|
基于iOS终端的SM2移动密码系统;邓高宇;龙毅宏;;软件(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113704831A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110011781B (zh) | 用于交易金额加密且支持零知识证明的同态加密方法和介质 | |
US7653817B2 (en) | Signature schemes using bilinear mappings | |
CN107196926B (zh) | 一种云外包隐私集合比较方法与装置 | |
CA2054037C (en) | Cryptographic system allowing encrypted communication between users with a secure mutual cipher key determined without user interaction | |
CN110414981B (zh) | 一种支持ZKPs的同态加密方法和区块链交易金额加密方法 | |
US6249585B1 (en) | Publicly verifiable key recovery | |
CN109936455B (zh) | 一种数字签名的方法、装置和系统 | |
CN110545279A (zh) | 兼具隐私和监管功能的区块链交易方法、装置及系统 | |
KR100718489B1 (ko) | 신규의 공정한 은닉 서명을 위한 서명 방법, 컴퓨터 프로그램, 장치 및 서명 시스템 | |
CN107872322A (zh) | 基于同态加密的数字签名协同生成方法及系统 | |
CN111819817A (zh) | 针对基于双线性映射累加器的授权的区块链实现的方法和系统 | |
CN109728906A (zh) | 基于非对称密钥池的抗量子计算非对称加密方法和系统 | |
CN109936456B (zh) | 基于私钥池的抗量子计算数字签名方法和系统 | |
CN114467280A (zh) | 使用冷钱包生成数字签名 | |
CN109547199A (zh) | 一种多方联合生成sm2数字签名的方法 | |
US20230224147A1 (en) | Generating shared private keys | |
CN117118617B (zh) | 一种基于模分量同态的分布式门限加解密方法 | |
CN109787758A (zh) | 基于私钥池和Elgamal的抗量子计算MQV密钥协商方法和系统 | |
CN109728905A (zh) | 基于非对称密钥池的抗量子计算mqv密钥协商方法和系统 | |
CN112785306A (zh) | 基于Paillier的同态加密方法及应用系统 | |
WO2021048549A1 (en) | Data communication between a group of users | |
Matyas | Digital signatures—an overview | |
CN113132104A (zh) | 一种主动安全的ecdsa数字签名两方生成方法 | |
CN113704831B (zh) | 一种参与方无需同时在线的数字签名多方生成方法及系统 | |
CN107465508A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230621 Address after: Room 401a, building 4, yard 7, Shangdi 8th Street, Haidian District, Beijing 100085 Applicant after: ITRUSCHINA CO.,LTD. Address before: 430070 Hubei Province, Wuhan city Hongshan District Luoshi Road No. 122 Applicant before: WUHAN University OF TECHNOLOGY |
|
GR01 | Patent grant | ||
GR01 | Patent grant |