CN109510709B - 基于RSA的(k,n)门限签名方法、装置与电子设备 - Google Patents
基于RSA的(k,n)门限签名方法、装置与电子设备 Download PDFInfo
- Publication number
- CN109510709B CN109510709B CN201811089299.7A CN201811089299A CN109510709B CN 109510709 B CN109510709 B CN 109510709B CN 201811089299 A CN201811089299 A CN 201811089299A CN 109510709 B CN109510709 B CN 109510709B
- Authority
- CN
- China
- Prior art keywords
- key
- signature
- target message
- sub
- share
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 57
- 238000004364 calculation method Methods 0.000 claims abstract description 47
- 238000010276 construction Methods 0.000 claims abstract description 42
- 230000006870 function Effects 0.000 claims description 28
- 238000004891 communication Methods 0.000 claims description 19
- 150000001875 compounds Chemical class 0.000 claims description 16
- 238000000638 solvent extraction Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 4
- 239000011159 matrix material Substances 0.000 claims description 4
- 238000012795 verification Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000005192 partition Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
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/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/3255—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 group based signatures, e.g. ring or threshold signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明实施例提供一种基于RSA的(k,n)门限签名方法、装置与电子设备,其中所述方法包括:采用RSA算法,利用给定大素数,生成目标消息的私钥和公钥;基于所述公钥,选取满足设定条件的素数作为构造参数,并基于所述私钥和所述构造参数,为每个参与者终端分配密钥份额,以供所述参与者终端根据所述密钥份额,进行所述目标消息的子签名计算;若反馈所述子签名的参与者终端的数量达到设定阈值,则基于所有所述子签名,对所述目标消息进行组合签名计算。本发明实施例基于RSA算法对目标消息进行签名加密运算,能够有效降低运算量,提高运算效率。
Description
技术领域
本发明实施例涉及信息安全技术领域,更具体地,涉及一种基于RSA的(k,n)门限签名方法、装置与电子设备。
背景技术
Shamir和Blakley于1979年分别独立地提出秘密共享的概念,并给出了(k,n)门限秘密共享方案,即把一个秘密分成若干秘密份额分给n个参与者掌管,这些参与者中k个或k个以上的参与者所构成的子集可以合作重构这个秘密。而Desmedt和Frankel最早提出了(k,n)门限的RSA签名方案。
上述(k,n)门限秘密共享方案的RSA签名技术应用,是对Shamir的(k,n)门限秘密共享方案的改造。但是,由于都依赖于安全素数,使(k,n)门限RSA方案的建造比较困难。具体而言,RSA方案中模N的因子分解是不可泄露的,因而RSA的私有密钥的分享并不是在一个域中,而是在一个环里,而且这个环的阶是未知的。因此,传统的门限RSA签名方案要么要求模N是安全素数的乘积,要么要求公开的验证秘钥e不能选择为3,这些限制无疑增加了运算的代价,很不利于提高验证速度以及降低验证设备成本。
发明内容
为了克服上述问题或者至少部分地解决上述问题,本发明实施例提供一种基于RSA的(k,n)门限签名方法、装置与电子设备,用以有效降低运算量,提高运算效率。
第一方面,本发明实施例提供一种基于RSA的(k,n)门限签名方法,包括:
采用RSA算法,利用给定大素数,生成目标消息的私钥和公钥;
基于所述公钥,选取满足设定条件的素数作为构造参数,并基于所述私钥和所述构造参数,为每个参与者终端分配密钥份额,以供所述参与者终端根据所述密钥份额,进行所述目标消息的子签名计算;
若反馈所述子签名的参与者终端的数量达到设定阈值,则基于所有所述子签名,对所述目标消息进行组合签名计算。
第二方面,本发明实施例提供一种基于RSA的(k,n)门限签名方法,包括:
各参与者终端基于接收到的针对目标消息的密钥份额,利用如下运算公式,计算针对所述目标消息的子签名:
式中,表示第i个所述参与者终端的所述子签名,m表示所述目标消息,表示第i个所述参与者终端对应的所述密钥份额,p表示用于生成所述密钥份额的素数,N表示基于RSA算法生成的所述目标消息的私钥和公钥的N参数;
所述参与者终端对其所述子签名进行广播,以使庄家终端在判断广播所述子签名的所述参与者终端的数量达到设定阈值时,基于所有所述子签名,对所述目标消息进行组合签名计算。
第三方面,本发明实施例提供一种基于RSA的(k,n)门限签名装置,包括:
密钥生成模块,用于采用RSA算法,利用给定大素数,生成目标消息的私钥和公钥;
份额划分模块,用于基于所述公钥,选取满足设定条件的素数作为构造参数,并基于所述私钥和所述构造参数,为每个参与者终端分配密钥份额,以供所述参与者终端根据所述密钥份额,进行所述目标消息的子签名计算;
组合签名模块,用于若反馈所述子签名的参与者终端的数量达到设定阈值,则基于所有所述子签名,对所述目标消息进行组合签名计算。
第四方面,本发明实施例提供一种基于RSA的(k,n)门限签名装置,包括:
子签名模块,用于使各参与者终端基于接收到的针对目标消息的密钥份额,利用如下运算公式,计算针对所述目标消息的子签名:
式中,表示第i个所述参与者终端的所述子签名,m表示所述目标消息,表示第i个所述参与者终端对应的所述密钥份额,p表示用于生成所述密钥份额的素数,N表示基于RSA算法生成的所述目标消息的私钥和公钥的N参数;
广播模块,用于使所述参与者终端对其所述子签名进行广播,以使庄家终端在判断广播所述子签名的所述参与者终端的数量达到设定阈值时,基于所有所述子签名,对所述目标消息进行组合签名计算。
第五方面,本发明实施例提供一种电子设备,包括:至少一个存储器、至少一个处理器、通信接口和总线;所述存储器、所述处理器和所述通信接口通过所述总线完成相互间的通信,所述通信接口用于所述电子设备与目标消息输入设备之间的信息传输;所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上第一方面或者第二方面所述的基于RSA的(k,n)门限签名方法。
本发明实施例提供的基于RSA的(k,n)门限签名方法、装置与电子设备,基于RSA算法对目标消息进行加密运算,并对密钥在多个参与者间进行基于环内的份额分配,以根据多个参与者反馈的子签名,计算针对所述目标消息的组合签名,既不需要安全素数也不限制公开验证秘钥不能等于3,相较于传统门限RSA签名方案,能够有效降低运算量,提高运算效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的基于RSA的(k,n)门限签名方法的流程示意图;
图2为根据本发明实施例提供的基于RSA的(k,n)门限签名方法中对目标消息进行组合签名计算的流程示意图;
图3为本发明另一实施例提供的基于RSA的(k,n)门限签名方法的流程示意图;
图4根据本发明实施例提供的基于RSA的(k,n)门限签名方法的信令交互流程示意图;
图5为本发明一实施例提供的基于RSA的(k,n)门限签名装置的结构示意图;
图6为本发明另一实施例提供的基于RSA的(k,n)门限签名装置的结构示意图;
图7为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明实施例的一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明实施例保护的范围。
针对现有技术(k,n)门限RSA方案建造比较困难的不足,本发明实施例提供一种基于RSA加密算法、在环中进行可验证的(k,n)门限签名的思路。具体而言,庄家可以通过随机生成的向量组,将RSA的私钥(N,d)进行共享,n个参与者可以获得各不相同的一个份额。当超过k个参与者将其份额组合在一起时,就可以对目标消息进行签名。进一步的,通过RSA的公钥(N,e)和多个参与者的组合签名即可验证消息的可信程度。运算量低,运算效率高。
可以理解的是,庄家可以通过持有的终端进行数据运算以及与参与者持有的终端进行信息交互。则庄家持有的终端可定义为庄家终端,而参与者持有的终端可定义为参与者终端。以下将具体通过多个实施例对本发明实施例进行展开说明和介绍。
图1为本发明一实施例提供的基于RSA的(k,n)门限签名方法的流程示意图,如图1所示,该方法的执行主体可以是RSA算法中庄家持有的终端设备,该方法包括:
S101,采用RSA算法,利用给定大素数,生成目标消息的私钥和公钥。
可以理解为,对于一个待加密的消息,即目标消息而言,可以利用RSA算法,生成其加密密钥,即私钥,用(N,d)表示,以及其解密密钥,即公钥,用(N,e)表示。其中,N是RSA算法中所定义的两个大素数相乘的结果,是RSA算法运算的模。
RSA算法是现有的密码学中常用的方法,RSA算法的原理就是基于大整数的因数分解。其中,上述RSA算法运算的模N可以表示为:
N=N′p×N′q;
S102,基于公钥,选取满足设定条件的素数作为构造参数,并基于私钥和构造参数,为每个参与者终端分配密钥份额,以供参与者终端根据密钥份额,进行目标消息的子签名计算。
可以理解为,在根据上述步骤生成目标消息的公钥和私钥后,庄家终端首先会根据该公钥寻找一个满足设定条件的素数,作为构造参数来构造一个构造函数,并据此构造函数为各个参与者终端分别分配一个份额。各参与者终端在接收到分配给自身的份额后,可以根据该份额,利用自身携带的签名算法,来计算对目标消息的签名,并将签名进行广播。
可以理解的是,对于每一个参与者终端而言,其均可以计算出一个如上的签名,因此为了进行区分,将每一个参与者终端自身计算所得的签名定义为子签名。而对于分配各各个参与者终端的份额,其实关于目标消息的密钥的,因此可以定义为密钥份额。
S103,若反馈子签名的参与者终端的数量达到设定阈值,则基于所有子签名,对目标消息进行组合签名计算。
可以理解为,对应上述被分配到密钥份额的每个参与者终端而言,其可以选择进行子签名的计算和广播,也可以由于各种因素不进行子签名的计算和广播。对于(k,n)门限签名,要求至少一定数量的参与者提供其子签名时,才能通过这些参与者提供的子签名和目标消息,进行一系列运算得到针对目标消息的组合签名。因此本发明实施例事先会对该一定数量进行预设,即得到上述设定阈值。
则,庄家终端,或者也可以是其它参与者,会对反馈子签名的参与者终端的数量进行监视,若该数量达到上述设定阈值,则可以进行组合签名计算。具体而言,根据参与者终端反馈的上述所有子签名,以及目标消息本身,对目标消息的签名进行组合运算,得到的组合运算结果,即为对目标消息的组合签名。
本发明实施例提供的基于RSA的(k,n)门限签名方法,基于RSA算法对目标消息进行加密运算,并对密钥在多个参与者间进行基于环内的份额分配,以根据多个参与者反馈的子签名,计算针对所述目标消息的组合签名,既不需要安全素数也不限制公开验证秘钥不能等于3,相较于传统门限RSA签名方案,能够有效降低运算量,提高运算效率。
其中,根据上述各实施例可选的,基于私钥和构造参数,为每个参与者终端分配密钥份额的步骤进一步包括:基于私钥和构造参数,构造份额划分函数,并基于份额划分函数,在基于给定大素数构成的环内,计算每个参与者终端的密钥份额。
可以理解为,在根据上述各实施例生成目标消息的私钥并选取构造参数后,首先根据该私钥和构造参数,以一定的规则生成一个函数,该函数可用于对每个参与者终端进行份额分配,因此可定义为份额划分函数。
其中可选的,基于私钥和构造参数,构造份额划分函数的步骤进一步包括:基于私钥和构造参数,构造份额划分函数如下:
式中,ri,j表示大素数构成的环内的一个随机数,0≤i≤p-2,0≤j≤k-1,p表示构造参数,p≥n,gcd(p,e)=1,n表示生成的所有密钥份额的总数,e表示公钥(N,e)中的e参数,d表示私钥(N,d)中的d参数,k表示(k,n)门限签名的门限k;
之后,利用上述生成的份额划分函数,在基于上述给定大素数所构成的环内,计算为每个参与者终端分配的密钥份额。例如,对于上述各实施例的给定大素数N′p、N′q,可以根据其计算RSA算法运算中模N的欧拉数再根据欧拉数构成环可以理解的是,在环中计算不同于在实数域中计算,环包含一个集合R和二元运算“+”和“*”,其要求在集合R中的任意元素进行这两种运算后,结果仍然在这个集合R中。代表着对于模N的欧拉函数,意为小于或等于n的正整数中与n互质的数的数目,若模N为两个质数N′p和N′q的乘积,则
其中可选的,基于份额划分函数,在大素数构成的环内,计算每个参与者终端的密钥份额的步骤进一步包括:基于份额划分函数,按如下公式计算密钥份额:
其中,式中各变量标记含义与上述各实施例的相同变量标记相同。
本发明实施例提供的基于RSA的(k,n)门限签名方法,通过生成份额划分函数,为每个参与者终端分配密钥份额,使分配给每个参与者终端的密钥份额不易被窃取,从而能够提高安全性。
其中,根据上述各实施例可选的,基于所有子签名,对目标消息进行组合签名计算的进一步处理步骤参考图2,为根据本发明实施例提供的基于RSA的(k,n)门限签名方法中对目标消息进行组合签名计算的流程示意图,包括:
S201,根据如下公式(可作为第一给定计算公式),对所有子签名进行组合运算:
式中,表示第i个参与者终端的子签名,m表示目标消息,表示第i个参与者终端对应的密钥份额,p表示构造参数,p≥n,gcd(p,e)=1,n表示生成的所有密钥份额的总数,e表示公钥(N,e)中的e参数,d表示私钥(N,d)中的d参数,k表示(k,n)门限签名的门限k,其中,
可以理解的是,在至少k个参与者广播了子签名后,根据这k个参与者分别对应的子签名利用上式对各子签名进行组合计算,即得到组合运算的结果,即式中的对于素数构成的构造参数p,可以认为其所满足的设定条件即为p≥n,gcd(p,e)=1。
S202,基于组合运算的结果,按如下公式(可作为第二给定计算公式)计算签名密钥S:
在根据上述步骤对参与者终端反馈的所有子签名进行组合运算后,再利用该公式,结合n进行综合运算,得到签名密钥S。
S203,基于签名密钥S,对目标消息进行组合签名如下(可作为第三给定计算公式):
Sig=mη×SθmodN;
式中,Sig表示组合签名,η、θ为满足e×η+pk-1×θ=1的整数。
本发明实施例提供的基于RSA的(k,n)门限签名方法,对各子签名进行给定权重的累乘计算,既不需要安全素数也不限制公开验证秘钥不能等于3,相较于传统门限RSA签名方案,能够有效降低运算量,提高运算效率。
进一步的,在上述各实施例的基础上,在对目标消息进行组合签名计算的步骤之后,本发明实施例的方法还包括:基于公钥和组合签名,验证目标消息的可信度。
可以理解为,在根据上述各实施例计算得到对目标消息的组合签名后,当其他人希望验证消息m是否可信时,通过对比签名Sig、消息m和公钥(e,N)的关系,即可以验证消息m的可信程度,能够有效加快验证速度并降低验证设备的成本。
其中可选的,基于公钥和组合签名,验证目标消息的可信度的步骤进一步可以包括:
若判断获知公钥和组合签名满足如下公式,则判定目标消息可信:
Sige=m mod N;
式中,Sig表示对目标消息的组合签名,e表示公钥(N,e)中的e参数,m表示目标消息,N表示由给定大素数确定的私钥或公钥的N参数;
否则,判定目标消息不可信。
可以理解为,在庄家终端或者其它参与者想要验证目标消息的可信程度时,根据上述各实施例计算得到的组合签名Sig、对目标消息的公钥(N,e)中的e参数、目标消息m以及私钥或公钥的N参数,判断上述公式能否成立,若成立,则认为目标消息可信,否则认为不可信。
图3为本发明另一实施例提供的基于RSA的(k,n)门限签名方法的流程示意图,如图3所示,该方法的执行主体可以是RSA算法中参与者持有的终端设备,该方法包括:
S301,各参与者终端基于接收到的针对目标消息的密钥份额,利用如下运算公式,计算针对目标消息的子签名:
可以理解为,在根据(k,n)门限的签名算法中,在各参与者获取到分配给自身的份额后,可据此进行对目标消息的子签名。
具体而言,在进行本实施例参与者终端的子签名计算之前,会由庄家终端利用RSA算法,生成目标消息的私钥和公钥,其中私钥可以用(N,d)表示,公钥可以用(N,e)表示。其中,N是RSA算法中所定义的两个大素数相乘的结果,是RSA算法运算的模。之后,庄家终端还会对于上述生成的目标消息的公钥和私钥,先根据该公钥寻找一个满足设定条件的素数,作为构造参数来构造一个构造函数,并据此构造函数为各个参与者终端分别分配一个密钥份额。
对于获取到密钥份额的参与者终端而言,假设当k个参与者终端P1,P2,...,Pk需要计算对目标消息m的签名mdmodN时,参与者终端Pi拥有的密钥份额为则其在计算对m的子签名时,可通过定义其拥有的密钥份额对m的求幂运算得到。即,在获知密钥份额为和目标消息m后,利用如上公式计算参与者终端Pi对目标消息的子签名
S302,参与者终端对其子签名进行广播,以使庄家终端在判断广播子签名的参与者终端的数量达到设定阈值时,基于所有子签名,对目标消息进行组合签名计算。
可以理解的是,对于(k,n)门限签名,要求至少一定数量的参与者提供其子签名时,才能通过这些参与者提供的子签名和目标消息,进行一系列运算得到针对目标消息的组合签名。因此当相应参与者终端对目标消息的子签名进行计算并广播后,可以使庄家终端,或者也可以是其它参与者对反馈子签名的参与者终端的数量进行监视,若该数量达到设定阈值,则可以进行组合签名计算。具体而言,根据参与者终端反馈的上述所有子签名,以及目标消息本身,对目标消息的签名进行组合运算,得到的组合运算结果,即为对目标消息的组合签名。
本发明实施例提供的基于RSA的(k,n)门限签名方法,基于RSA算法对目标消息进行加密运算,并由参与者终端通过定义目标消息的求幂运算,来实现对目标消息的子签名,在保证计算精度的基础上,计算简便,能够有效降低运算量,提高运算效率。
为进一步说明本发明实施例的技术方案,本发明实施例根据上述各实施例提供如下交互的处理流程,但不对本发明的保护范围进行限制。
图4为根据本发明实施例提供的基于RSA的(k,n)门限签名方法的信令交互流程示意图,如图4所示,该交互流程包括两个终端主体,即庄家终端和参与者终端。具体处理流程中,
对于一个目标消息,首先,庄家终端可以利用RSA算法,生成其私钥,用(N,d)表示,以及其公钥,用(N,e)表示。其中,N是RSA算法中定义的两个给定大素数相乘的结果,是RSA算法运算的模。
RSA算法是现有的密码学中常用的方法,RSA算法的原理就是基于大整数的因数分解。其中,上述RSA算法运算的模N可以表示为:
N=N′p×N′q;
之后,庄家终端还根据上述公钥寻找一个满足设定条件的素数,作为构造参数来构造一个构造函数,再据此构造函数为各个参与者终端分别分配一个密钥份额。
接下来,各参与者终端接收分配给自身的密钥份额,并在之后根据该密钥份额,利用自身携带的签名算法,来计算对目标消息的子签名,并将子签名进行广播。
最后,庄家终端通过广播接收各参与者终端的子签名,并对反馈子签名的参与者终端的数量进行监视,若该数量达到设定阈值,则庄家终端可以进行组合签名计算。具体而言,庄家终端根据参与者终端反馈的上述所有子签名,以及目标消息本身,对目标消息的签名进行组合运算,得到的组合运算结果,即为对目标消息的组合签名。
本发明实施例根据上述各实施例,还提供一种基于RSA的(k,n)门限签名装置,该装置用于在上述各实施例中实现对基于RSA的(k,n)门限签名。因此,在上述各实施例的基于RSA的(k,n)门限签名方法中的描述和定义,可以用于本发明实施例中各个执行模块的理解,具体可参考上述实施例,此处不在赘述。
如图5所示,为本发明一实施例提供的基于RSA的(k,n)门限签名装置的结构示意图,该装置可以用于上述各方法实施例中实现基于RSA的(k,n)门限签名,该装置包括密钥生成模块501、份额划分模块502和组合签名模块503。其中:
密钥生成模块501用于采用RSA算法,利用给定大素数,生成目标消息的私钥和公钥;份额划分模块502用于基于公钥,选取满足设定条件的素数作为构造参数,并基于私钥和构造参数,为每个参与者终端分配密钥份额,以供参与者终端根据密钥份额,进行目标消息的子签名计算;组合签名模块503用于若反馈子签名的参与者终端的数量达到设定阈值,则基于所有子签名,对目标消息进行组合签名计算。
具体而言,对于一个目标消息,密钥生成模块501可以利用RSA算法,生成其私钥,用(N,d)表示,以及其公钥,用(N,e)表示。其中,N是RSA算法中定义的两个大素数相乘的结果,是RSA算法运算的模。
RSA算法是现有的密码学中常用的方法,RSA算法的原理就是基于大整数的因数分解。其中,上述RSA算法运算的模N可以表示为:
N=N′p×N′q;
之后,利用份额划分模块502,首先可以根据上述公钥寻找一个满足设定条件的素数,作为构造参数来构造一个构造函数,再据此构造函数为各个参与者终端分别分配一个密钥份额。各参与者终端在接收到分配给自身的密钥份额后,可以根据该密钥份额,利用自身携带的签名算法,来计算对目标消息的子签名,并将子签名进行广播。
最后,在上述计算的基础上,组合签名模块503会对反馈子签名的参与者终端的数量进行监视,若该数量达到上述设定阈值,则组合签名模块503可以进行组合签名计算。具体而言,组合签名模块503根据参与者终端反馈的上述所有子签名,以及目标消息本身,对目标消息的签名进行组合运算,得到的组合运算结果,即为对目标消息的组合签名。
本发明实施例提供的基于RSA的(k,n)门限签名装置,通过设置相应的执行模块,基于RSA算法对目标消息进行加密运算,并对密钥在多个参与者间进行基于环内的份额分配,以根据多个参与者反馈的子签名,计算针对所述目标消息的组合签名,既不需要安全素数也不限制公开验证秘钥不能等于3,相较于传统门限RSA签名方案,能够有效降低运算量,提高运算效率。
如图6所示,为本发明另一实施例提供的基于RSA的(k,n)门限签名装置的结构示意图,该装置可以用于上述各方法实施例中实现基于RSA的(k,n)门限签名,该装置包括子签名模块601和广播模块602。
其中:
子签名模块601用于使各参与者终端基于接收到的针对目标消息的密钥份额,利用如下运算公式,计算针对目标消息的子签名:式中,表示第i个参与者终端的子签名,m表示目标消息,表示第i个参与者终端对应的密钥份额,p表示用于生成密钥份额的素数,N表示基于RSA算法生成的目标消息的私钥和公钥的N参数;广播模块602用于使参与者终端对其子签名进行广播,以使庄家终端在判断广播子签名的参与者终端的数量达到设定阈值时,基于所有子签名,对目标消息进行组合签名计算。
在根据(k,n)门限的签名算法中,在各参与者获取到分配给自身的份额后,可据此进行对目标消息的子签名。而本实施例的基于RSA的(k,n)门限签名装置中,利用子签名模块601,实现各参与者终端基于接收到的密钥份额,进行针对目标消息的子签名的计算。
具体而言,在子签名模块601进行子签名计算之前,本实施例会由庄家终端利用RSA算法,生成目标消息的私钥和公钥,其中私钥可以用(N,d)表示,公钥可以用(N,e)表示。其中,N是RSA算法中所定义的两个给定大素数相乘的结果,是RSA算法运算的模。之后,庄家终端还会先根据该公钥寻找一个满足设定条件的素数,作为构造参数来构造一个构造函数,并据此构造函数为各个参与者终端分别分配一个密钥份额。
对于获取到密钥份额的参与者终端而言,子签名模块601假设当k个参与者终端P1,P2,...,Pk需要计算对目标消息m的签名md mod N时,参与者终端Pi拥有的密钥份额为则子签名模块601在计算对m的子签名时,可通过定义参与者终端拥有的密钥份额对m的求幂运算得到。即,在获知密钥份额为和目标消息m后,子签名模块601利用如上公式计算参与者终端Pi对目标消息的子签名在根据子签名模块601计算得到相应参与者终端的子签名后,会由广播模块602对该子签名进行广播。
可以理解的是,由于(k,n)门限签名中要求提供子签名的参与者数量达到一定数值才能进行有效的组合签名计算,因此在广播模块602对目标消息的子签名进行计算并广播后,可以使庄家终端,或者也可以是其它参与者对反馈子签名的参与者终端的数量进行监视,若该数量达到设定阈值,则可以进行组合签名计算。具体而言,根据参与者终端反馈的上述所有子签名,以及目标消息本身,对目标消息的签名进行组合运算,得到的组合运算结果,即为对目标消息的组合签名。
本发明实施例提供的基于RSA的(k,n)门限签名装置,通过设置相应的执行模块,基于RSA算法对目标消息进行加密运算,并由参与者终端通过定义目标消息的求幂运算,来实现对目标消息的子签名,在保证计算精度的基础上,计算简便,能够有效降低运算量,提高运算效率。
可以理解的是,本发明实施例中可以通过硬件处理器(hardware processor)来实现上述各实施例的装置中的各相关功能模块。并且,本发明实施例的基于RSA的(k,n)门限签名装置可以相应内置到庄家终端或者参与者终端设备中,例如可以是电脑或者手机、平板电脑等便携设备中,也可以单独设置,本发明对此不作限制。
另外,本发明实施例的基于RSA的(k,n)门限签名装置在实现上述各方法实施例中基于RSA的(k,n)门限签名时,产生的有益效果与对应的上述各方法实施例相同,可以参考上述各方法实施例,此处不再赘述。
作为本发明实施例的又一个方面,本实施例根据上述各实施例提供一种电子设备,参考图7,为本发明实施例提供的电子设备的实体结构示意图,包括:至少一个存储器701、至少一个处理器702、通信接口703和总线704。
其中,存储器701、处理器702和通信接口703通过总线704完成相互间的通信,通信接口703还用于该电子设备与目标消息输入设备之间的信息传输;存储器701中存储有可在处理器702上运行的计算机程序,处理器702执行该计算机程序时,实现如上述实施例的基于RSA的(k,n)门限签名方法。
可以理解为,该电子设备中至少包含存储器701、处理器702、通信接口703和总线704,且存储器701、处理器702和通信接口703通过总线704形成相互间的通信连接,并可完成相互间的通信,如处理器702从存储器701中读取基于RSA的(k,n)门限签名方法的程序指令等。另外,通信接口703还可以实现该电子设备与目标消息输入设备之间的通信连接,并可完成相互间信息传输,如通过通信接口703实现基于RSA的(k,n)门限签名等。
电子设备运行时,处理器702调用存储器701中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:采用RSA算法,利用给定大素数,生成目标消息的私钥和公钥;基于公钥,选取满足设定条件的素数作为构造参数,并基于私钥和构造参数,为每个参与者终端分配密钥份额,以供参与者终端根据密钥份额,进行目标消息的子签名计算;若反馈子签名的参与者终端的数量达到设定阈值,则基于所有子签名,对目标消息进行组合签名计算;或者,各参与者终端基于接收到的针对目标消息的密钥份额,利用如下运算公式,计算针对目标消息的子签名:式中,表示第i个参与者终端的子签名,m表示目标消息,表示第i个参与者终端对应的密钥份额,p表示用于生成密钥份额的素数,N表示基于RSA算法生成的目标消息的私钥和公钥的N参数;参与者终端对其子签名进行广播,以使庄家终端在判断广播子签名的参与者终端的数量达到设定阈值时,基于所有子签名,对目标消息进行组合签名计算等。
上述的存储器701中的程序指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。或者,实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还根据上述各实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行如上述各实施例的基于RSA的(k,n)门限签名方法。例如包括:采用RSA算法,利用给定大素数,生成目标消息的私钥和公钥;基于公钥,选取满足设定条件的素数作为构造参数,并基于私钥和构造参数,为每个参与者终端分配密钥份额,以供参与者终端根据密钥份额,进行目标消息的子签名计算;若反馈子签名的参与者终端的数量达到设定阈值,则基于所有子签名,对目标消息进行组合签名计算;或者,各参与者终端基于接收到的针对目标消息的密钥份额,利用如下运算公式,计算针对目标消息的子签名:式中,表示第i个参与者终端的子签名,m表示目标消息,表示第i个参与者终端对应的密钥份额,p表示用于生成密钥份额的素数,N表示基于RSA算法生成的目标消息的私钥和公钥的N参数;参与者终端对其子签名进行广播,以使庄家终端在判断广播子签名的参与者终端的数量达到设定阈值时,基于所有子签名,对目标消息进行组合签名计算等。
本发明实施例提供的电子设备和非暂态计算机可读存储介质,通过执行上述各方法,基于RSA算法对目标消息进行加密运算,并对密钥在多个参与者间进行基于环内的份额分配,以根据多个参与者反馈的子签名,计算针对所述目标消息的组合签名,既不需要安全素数也不限制公开验证秘钥不能等于3,相较于传统门限RSA签名方案,能够有效降低运算量,提高运算效率。
可以理解的是,以上所描述的装置、电子设备及存储介质的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,既可以位于一个地方,或者也可以分布到不同网络单元上。可以根据实际需要选择其中的部分或全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解,各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令,用以使得一台计算机设备(如个人计算机,服务器,或者网络设备等)执行上述各方法实施例或者方法实施例的某些部分所述的方法。
另外,本领域内的技术人员应当理解的是,在本发明实施例的申请文件中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明实施例的说明书中,说明了大量具体细节。然而应当理解的是,本发明实施例的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明实施例公开并帮助理解各个发明方面中的一个或多个,在上面对本发明实施例的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。
然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明实施例的单独实施例。
最后应说明的是:以上实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述实施例对本发明实施例进行了详细的说明,本领域的技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。
Claims (10)
1.一种基于RSA的(k,n)门限签名方法,其特征在于,包括:
采用RSA算法,利用给定大素数,生成目标消息的私钥和公钥;
基于所述公钥,选取满足设定条件的素数作为构造参数,并基于所述私钥和所述构造参数,为每个参与者终端分配密钥份额,以供所述参与者终端根据所述密钥份额,进行所述目标消息的子签名计算;
若反馈所述子签名的参与者终端的数量达到设定阈值,则基于所有所述子签名,对所述目标消息进行组合签名计算;
所述基于所述私钥和所述构造参数,为每个参与者终端分配密钥份额的步骤进一步包括:
在基于所述给定大素数构成的环内,计算每个所述参与者终端的所述密钥份额。
2.根据权利要求1所述的基于RSA的(k,n)门限签名方法,其特征在于,在所述对所述目标消息进行组合签名计算的步骤之后,还包括:
基于所述公钥和所述组合签名,验证所述目标消息的可信度。
3.根据权利要求1所述的基于RSA的(k,n)门限签名方法,其特征在于,所述基于所述私钥和所述构造参数,为每个参与者终端分配密钥份额的步骤进一步包括:
基于所述私钥和所述构造参数,构造份额划分函数,并基于所述份额划分函数,计算每个所述参与者终端的所述密钥份额。
4.根据权利要求3所述的基于RSA的(k,n)门限签名方法,其特征在于,所述基于所述私钥和所述构造参数,构造份额划分函数的步骤进一步包括:
基于所述私钥和所述构造参数,构造所述份额划分函数如下:
式中,ri,j表示所述大素数构成的环内的一个随机数,0≤i≤p-2,0≤j≤k-1,p表示所述构造参数,p≥n,gcd(p,e)=1,n表示生成的所有所述密钥份额的总数,e表示所述公钥(N,e)中的e参数,d表示所述私钥(N,d)中的d参数,k表示(k,n)门限签名的门限k;
相应的,所述基于所述份额划分函数,在所述大素数构成的环内,计算每个所述参与者终端的所述密钥份额的步骤进一步包括:
基于所述份额划分函数,按如下公式计算所述密钥份额:
5.根据权利要求1所述的基于RSA的(k,n)门限签名方法,其特征在于,所述基于所有所述子签名,对所述目标消息进行组合签名计算的步骤进一步包括:
根据如下公式,对所有所述子签名进行组合运算:
式中,表示第i个所述参与者终端的所述子签名,m表示所述目标消息,表示第i个所述参与者终端对应的所述密钥份额,p表示所述构造参数,p≥n,gcd(p,e)=1,n表示生成的所有所述密钥份额的总数,e表示所述公钥(N,e)中的e参数,d表示所述私钥(N,d)中的d参数,k表示(k,n)门限签名的门限k,其中,
基于所述组合运算的结果,按如下公式计算签名密钥S:
基于所述签名密钥S,对所述目标消息进行组合签名如下:
Sig=mη×Sθ mod N;
式中,Sig表示所述组合签名,η、θ为满足e×η+pk-1×θ=1的整数。
6.根据权利要求2所述的基于RSA的(k,n)门限签名方法,其特征在于,所述基于所述公钥和所述组合签名,验证所述目标消息的可信度的步骤进一步包括:
若判断获知所述公钥和所述组合签名满足如下公式,则判定所述目标消息可信:
Sige=m mod N;
式中,Sig表示对所述目标消息的组合签名,e表示所述公钥(N,e)中的e参数,m表示所述目标消息,N表示由所述给定大素数确定的所述私钥和所述公钥的N参数;
否则,判定所述目标消息不可信。
7.一种基于RSA的(k,n)门限签名方法,其特征在于,包括:
各参与者终端基于接收到的针对目标消息的密钥份额,利用如下运算公式,计算针对所述目标消息的子签名:
式中,表示第i个所述参与者终端的所述子签名,m表示所述目标消息,表示第i个所述参与者终端对应的所述密钥份额,p表示用于生成所述密钥份额的素数,N表示基于RSA算法生成的所述目标消息的私钥和公钥的N参数;
所述参与者终端对其所述子签名进行广播,以使庄家终端在判断广播所述子签名的所述参与者终端的数量达到设定阈值时,基于所有所述子签名,对所述目标消息进行组合签名计算;
其中,所述密钥份额是根据以下步骤计算得出的:
在基于给定大素数构成的环内,计算每个所述参与者终端的所述密钥份额。
8.一种基于RSA的(k,n)门限签名装置,其特征在于,包括:
密钥生成模块,用于采用RSA算法,利用给定大素数,生成目标消息的私钥和公钥;
份额划分模块,用于基于所述公钥,选取满足设定条件的素数作为构造参数,并基于所述私钥和所述构造参数,为每个参与者终端分配密钥份额,以供所述参与者终端根据所述密钥份额,进行所述目标消息的子签名计算;
组合签名模块,用于若反馈所述子签名的参与者终端的数量达到设定阈值,则基于所有所述子签名,对所述目标消息进行组合签名计算;
其中,所述份额划分模块进一步用于:
在基于所述给定大素数构成的环内,计算每个所述参与者终端的所述密钥份额。
9.一种基于RSA的(k,n)门限签名装置,其特征在于,包括:
子签名模块,用于使各参与者终端基于接收到的针对目标消息的密钥份额,利用如下运算公式,计算针对所述目标消息的子签名:
式中,表示第i个所述参与者终端的所述子签名,m表示所述目标消息,表示第i个所述参与者终端对应的所述密钥份额,p表示用于生成所述密钥份额的素数,N表示基于RSA算法生成的所述目标消息的私钥和公钥的N参数;
广播模块,用于使所述参与者终端对其所述子签名进行广播,以使庄家终端在判断广播所述子签名的所述参与者终端的数量达到设定阈值时,基于所有所述子签名,对所述目标消息进行组合签名计算;
其中,所述密钥份额是根据以下步骤计算得出的:
在基于给定大素数构成的环内,计算每个所述参与者终端的所述密钥份额。
10.一种电子设备,其特征在于,包括:至少一个存储器、至少一个处理器、通信接口和总线;
所述存储器、所述处理器和所述通信接口通过所述总线完成相互间的通信,所述通信接口还用于所述电子设备与目标消息输入设备之间的信息传输;
所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1至7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811089299.7A CN109510709B (zh) | 2018-09-18 | 2018-09-18 | 基于RSA的(k,n)门限签名方法、装置与电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811089299.7A CN109510709B (zh) | 2018-09-18 | 2018-09-18 | 基于RSA的(k,n)门限签名方法、装置与电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109510709A CN109510709A (zh) | 2019-03-22 |
CN109510709B true CN109510709B (zh) | 2020-09-08 |
Family
ID=65745819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811089299.7A Expired - Fee Related CN109510709B (zh) | 2018-09-18 | 2018-09-18 | 基于RSA的(k,n)门限签名方法、装置与电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109510709B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110430042B (zh) * | 2019-06-28 | 2022-11-22 | 中国人民解放军战略支援部队信息工程大学 | 一种在异构冗余系统中存储秘钥的装置及方法 |
CN111541551B (zh) * | 2020-05-22 | 2023-04-18 | 杭州时戳信息科技有限公司 | 门限签名消息的处理方法、系统、存储介质及服务器 |
CN112257110B (zh) * | 2020-11-02 | 2022-11-11 | 胡金钱 | 电子签章管理方法、管理系统及计算器可读存储介质 |
CN117879825A (zh) * | 2023-11-27 | 2024-04-12 | 杭州海兴泽科信息技术有限公司 | 一种基于raft机制的身份验证方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1819583A (zh) * | 2005-10-20 | 2006-08-16 | 北京邮电大学 | 一种基于门限的多级入侵容忍方案 |
KR101338409B1 (ko) * | 2007-01-25 | 2013-12-10 | 삼성전자주식회사 | 애드-혹 네트워크에서 분산 rsa서명을 생성하는 방법 및상기 애드-혹 네트워크의 노드 |
JP5233449B2 (ja) * | 2008-07-02 | 2013-07-10 | 日本電気株式会社 | 署名生成装置、ならびに、署名検証装置 |
CN101882992B (zh) * | 2010-06-21 | 2012-12-12 | 中国农业大学 | 门限秘密信息分配、还原方法及装置 |
CN106357401B (zh) * | 2016-11-11 | 2019-09-10 | 武汉理工大学 | 一种私钥存储及使用方法 |
-
2018
- 2018-09-18 CN CN201811089299.7A patent/CN109510709B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN109510709A (zh) | 2019-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109510709B (zh) | 基于RSA的(k,n)门限签名方法、装置与电子设备 | |
CN109309569B (zh) | 基于sm2算法的协同签名的方法、装置及存储介质 | |
Wang et al. | Oruta: Privacy-preserving public auditing for shared data in the cloud | |
US8429408B2 (en) | Masking the output of random number generators in key generation protocols | |
Wang et al. | Certificateless public auditing for data integrity in the cloud | |
CN110971413A (zh) | 一种随机数的生成方法、生成装置及存储介质 | |
EP4026273A1 (en) | Systems and methods for signing of a message | |
US9660813B1 (en) | Dynamic privacy management for communications of clients in privacy-preserving groups | |
CN112632630A (zh) | 一种基于sm2的协同签名计算方法及装置 | |
CN112187469A (zh) | 一种基于密钥因子的sm2多方协同数字签名方法和系统 | |
CN109962783B (zh) | 基于递进计算的sm9数字签名协同生成方法及系统 | |
CN112995215B (zh) | 解密系统、方法、装置、电子设备及存储介质 | |
CN105812356B (zh) | 一种面向云服务系统的匿名查询处理方法 | |
WO2013136235A1 (en) | Byzantine fault tolerance and threshold coin tossing | |
CN112202562A (zh) | Rsa密钥生成方法、计算机设备及介质 | |
WO2022116175A1 (zh) | 数字签名的生成方法、装置和服务器 | |
CA2742530C (en) | Masking the output of random number generators in key generation protocols | |
Worku et al. | Cloud data auditing with designated verifier | |
Huang et al. | Hucdo: A hybrid user-centric data outsourcing scheme | |
Wang et al. | Dynamic threshold changeable multi‐policy secret sharing scheme | |
Yang et al. | Efficient certificateless encryption withstanding attacks from malicious KGC without using random oracles | |
RU2452111C1 (ru) | Способ пороговой генерации ключей для системы защиты информации на основе идентификационных данных | |
CN109936442B (zh) | 一种多密钥共享方法及其装置 | |
KR20060033424A (ko) | 모바일 환경에서의 그룹통신을 위한 세션키 생성 방법 | |
CN108521396B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200908 |