程亚歌 贾志娟 胡明生 公备 王利朋
摘 要:针对传统的盲签名、群签名等签名算法适用于区块链异构网络时可能出现依赖可信中心、效率低等问题,提出了适用于区块链电子投票场景的门限签名方案。该方案基于Asmuth-Bloom秘密共享方案,无需可信中心。首先,由区块链节点通过相互协作产生签名,实现节点之间相互验证功能,提升节点可信度;其次,建立节点加入和退出机制,以适应区块链节点流动性大等特点;最后,定期更新节点私钥,以抵抗移动攻击,使其具有前向安全性。安全性分析表明,该方案的安全性基于离散对数难题,能够有效地抵御移动攻击,满足前向安全性;性能分析表明,与其他方案相比,该方案在签名生成和验证阶段的计算复杂度较低,计算量较小。结果表明,所提方案能够很好地适用于区块链电子投票场景。
关键词:区块链;电子投票;秘密共享;门限签名;中国剩余定理
中图分类号:TP393.08
文献标志码:A
Threshold signature scheme suitable for blockchain electronic voting scenes
CHENG Yage1, JIA Zhijuan1*, HU Mingsheng1, GONG Bei2, WANG Lipeng1
1.College of Information Science and Technology, Zhengzhou Normal University, Zhengzhou Henan 450044, China;
2.College of Computer Sciences, Beijing University of Technology, Beijing 100124, China
Abstract:
When traditional signature algorithms such as blind signature and group signature applied to heterogeneous networks of blockchain, they might have problems like relying on trusted centers or low efficiency. Aiming at the problems, a threshold signature scheme suitable for blockchain electronic voting scenes was proposed. The proposed scheme was based on the Asmuth-Bloom secret sharing scheme and did not need a trusted center. Firstly, the signature was generated by the collaboration of blockchain nodes, implementing mutual verification between nodes and improving the node credibility. Secondly, a mechanism of nodes joining and exiting was established to adapt to the high mobility of the blockchain nodes. Finally, the node private keys were updated regularly to resist mobile attacks and make them forward-secure. Security analysis shows that the security of the scheme is based on the discrete logarithm problem, so that the scheme can effectively resist mobile attacks and is forward-secure. The performance analysis shows that compared with other schemes, this scheme has lower computational complexity in the signature generation and verification phases. The results show that the proposed scheme can be well applied to blockchain electronic voting scenes.
Key words:
blockchain; electronic voting; secret sharing; threshold signature; Chinese remainder theorem
0 引言
區块链[1]是一种按照时间顺序将数据块以顺序相连的方式组合成一种链式数据结构,并以密码学的方式保证数据不可篡改和不可伪造的分布式账本系统。作为电子货币交易的底层技术,区块链具有去中心化、匿名化、不可篡改、公开透明等良好特性,解决了数据在传输过程中的可信性,其在金融、医疗、能源互联网、物联网等领域发展迅速。
目前电子投票技术得到了广泛应用,然而大部分的电子投票签名方案基于传统的签名算法,如群签名、环签名、盲签名、代理签名等不能适配到区块链网络中。当前为人熟知的门限签名方案,按照管理者的身份不同,主要分为两种:有可信中心和无可信中心。有可信中心的门限签名方案,主要有可信中心担任管理者角色,承担大部分的管理任务,势必会影响到网络的运行效率;而无可信中心的门前签名方案无需考虑中心化存在的困扰。设计适用于区块链的门限签名方案,需要考虑区块链去中心化的特性。此外区块链节点流动性较大,当有节点加入和退出时,要求签名算法能够支持节点的加入和退出。由于区块链网络的异构性,存在计算资源需求量大的缺点,另外区块链是在不安全信道上传输信息,因此需要设计安全的身份认证机制。针对区块链网络的独有特性,如何设计一种安全的,适用于区块链投票场景的门限签名是本文的研究重点。
1979年,Shamir等[2]首次提出了基于拉格朗日插值多项式的秘密共享方案。基于此方案的研究如文献[3]方案,该方案无可信中心,且可动态增加或删除参与者;文献[4]方案利用联合秘密共享技术,采用改进的ElGamal签名方案,解决了节点联合攻击造成其他节点私钥泄漏的问题;文献[5]方案经过签名后,恶意攻击者可根据漏洞获得节点私钥和组私钥,使得签名信息不可信;文献[6]方案是基于多证书认证机构 (Certification Authority, CA)的公钥认证系统。以上方案计算量较大,适用于区块链网络时,会降低区块链网络的效率。文献[7]方案具有可信中心;文献[8]方案允许节点加入,但没有考虑节点撤销问题;因此,都不能适用于区块连网络应用场景。
1983年,Asmuth 等[9]提出了基于中国剩余定理的秘密共享方案,与Shamir方案相比具有计算量小的优点。文献[10]方案假定节点集合固定不变,没有考虑节点动态变化的情况;文献[11]方案有可信中心;文献[12]方案没有考虑节点退出的情况;文献[13]方案节点的秘密份额一经分发就不再改变,难以抵抗移动攻击;文献[14]基于强RSA(Rivest,Shamir,Adleman)假设,实现了方案的前向安全性,但没有考虑节点动态变化情况;文献[15]方案需可信中心分发秘密份额,文献[16]方案在验证过程中也需要可信中心参与验证过程;文献[17]方案允许节点加入,但是攻击者可根据广播信息获得老节点私钥,存在安全隐患;文献[18]方案将零知识证明协议和离散对数难题相结合,保证了信息传输的安全性。文献[19]中提出了基于中国剩余定理的区块链门限签名,该方案解决了上述方案适用于区块链签名的诸多问题,提高了效率,但是该方案不能抵抗移动攻击,不具有前向安全性。以上方案适配于区块链网络应用场景时有所欠缺,不尽完善。
本文在Asmuth-Bloom秘密共享方案的基础上,提出了适用于区块链电子投票场景的门限签名方案。方案摈弃了可信中心,通过节点之间相互协作产生签名,具有相互验证功能;设计了节点加入和退出机制,解决了节点加入和退出问题;定期更新节点私钥,可有效预防移动攻击。
1 预备知识
1.1 离散对数难题
所谓离散对数难题[20],是指给定有限域GF(p),当模p有原根时,设g为模Zp的一个原根(也可以说是有限循环群Zp的生成元),任给元素y∈Z*P,求解唯一的x,满足1≤x gx≡y(mod p) 称为以p为模,以g为y的离散对数。这里给定g和y,求解x是离散对数难题。 1.2 中国剩余定理 中国剩余定理也即孙子定理[21],最早见于我国古代著作《孙子算经》里面。具体描述如下:设m1,m2,…,mn是n个两两互质的正整数,其中: Mmi ei≡1(mod mi); M=m1·m2·…·mn,i=1,2,…,n 给定一组正整数b1,b2,…,bn,则同余式组: x≡b1(mod m1) x≡b2(mod m2) x≡bn(mod mn) 对于模m具有唯一解: x≡Mm1 e1b1+Mm2 e2b2+…+Mmn enbn(mod m) 1.3 Asmuth-Bloom秘密共享方案 Asmuth-Bloom秘密共享方案由Asmuth和Bloom于1983年提出,与Shamir提出的基于拉格朗日插值多项式的秘密共享方案相比,Asmuth-Bloom秘密共享方案具有计算量小、效率高的优点。其方案主要包括以下3个步骤: 1)初始化。 假设DC(Distribution Center)是秘密分发者,P={P1,P2,…,Pn}是n个节点组成的集合,门限值为t,秘密为s。DC选择大素数q(q>s),整数A,以及严格递增正整数序列d={d1,d2,…,dn},且d满足以下条件: ① 0≤A≤M/q-1。 ② d1 ③ gcd(di,dj)=1; i≠j。 ④ gcd(di,q)=1; i=1,2,…,n。 ⑤ M=∏ti=1di>q∏t-1i=1dn-t+1 2)秘密分发。 秘密分发者DC计算: z=s+Aq zi=z mod di; i=1,2,…,n 并将(zi,di)发送给Pi(i=1,2,…,n),作为Pi的秘密份额。 3)秘密恢复。 任意节点通过相互交换秘密份额恢复秘密s。任选t个节点P1,P2,…,Pi作为恢复秘密的一组节点。通过节点之间相互交换秘密后,任意节点Pi都可建立如下同余方程组: z≡z1(mod d1) z≡z2(mod d2) z≡zt(mod dt) 由中国剩余定理,该同余方程组有唯一解: z=∑ti=1Ddi eiXi mod D; i=1,2,…,t 因此,可求出共享秘密s=z -Aq,也即s=z mod q。 2 本文方案 2.1 区块链门限签名方案架构图 本文基于中国剩余定理,提出一种新的适用于区块链电子投票场景的门限签名方案。其方案构思架构如图1所示。 如图1所示,区块链门限签名方案通过节点之间相互协作产生秘密份额,并计算验证信息的正确性,当验证结果正确时产生组公钥、组私钥及每个区块链节点的个人密钥。区块链节点利用个人私钥产生自己的部分簽名,由签名合成者合成签名,签名验证者进行验证。同时方案允许节点加入和退出,定期更新私钥,确保方案的前向安全性。其具体实施步骤如下: 1)密钥生成。 ①系统初始化:区块链门限签名系统初始化,选取公共参数; ②秘密分割:区塊链节点随机选取秘密数,通过节点之间相互协作产生秘密份额; ③计算验证:区块链节点计算验证信息,并校验信息的正确性; ④产生节点密钥及组密钥:区块链节点计算个人私钥,并根据每个节点随机选取的秘密数计算组公钥和组私钥。 2)生成签名。 ①产生部分签名:每个节点产生自己的部分签名; ②合成签名:签名合成者将t个部分签名合成待签名消息的最终签名。 3)验证签名。 验证签名:验证者验证最终签名的正确性。 4)节点加入。 ①计算伪私钥; ②产生新节点私钥。 5)节点退出。 ①计算组公钥:重新计算组公钥,并将前期组公钥存放在区块链网络中,当需查看前期签名信息时,调用组公钥即可; ②其他节点计算更新私钥。 6)节点私钥更新。 ①计算更新因子; ②产生新私钥。 2.2 区块链门限签名方案详细算法设计 设S={Genkey,Sign,Verify}为一般的签名算法,则有n人参与的(t,n)区块链分布式门限签名算法可表示为:TS={TGenkey,TSign,Verify}。其中:TGenkey表示密钥生成算法;TSign表示签名算法;Verify表示验证算法。 2.2.1 TGenkey:密钥生成 1)区块链电子投票系统初始化。 选取公共参数P,t,g,p,q,d,s,n,M。其中P={P1,P2,…,Pn}是n个参与区块链投票系统签名的节点集合,t为门限值,g为有限域GF(p)上的生成元,p、q为两个大素数且满足q/(p-1),d={d1,d2,…,dn}是一组严格单调递增的正整数序列,q和d满足Asmuth-Bloom方案,待签名消息为s,M=∏ti=1di,公开n,t,g,p,q,d和M。 2)区块链节点之间相互协作产生秘密份额。 每个区块链节点Pi随机选取子秘密λi和整数Zi,满足如下条件: 0<λi<[q/n] 0 节点Pi计算秘密份额Xij: Xij=(λi+Ziq) mod dj(1) Pi保留Xii,广播gλi,gZi,并将 Xij(i≠j)发送给节点Pj。 这里,子秘密λi和整数Zi由区块链节点秘密选取,且没有通过通信信道发送,因此其他人无法获得。 3)区块链节点Pi计算验证信息δi、 μij,并验证信息的正确性。 δi=gλi+Ziq mod p(2) θij=(λi+Ziq-Xij)/dj(3) μij=gθij mod p(4) 并在区块链网络中广播δi、 μij。另外,节点Pj根据广播信息δi和Xij后;通过以下等式验证秘密份额的正确性: gλi·gZiq mod p = δi(5) ((gXij mod p)((μij)dj mod p)) mod p=δi(6) 4)产生区块链节点密钥及组密钥。 根据第3)步的验证,若验证结果正确,则节点Pj计算自己的私钥: Kj=∑ni=1Xij mod dj(7) 则节点公钥为Cj=gKj。 根据每个区块链节点选取的秘密数,产生组公钥和组私钥。其中,组公钥为: ψ=∏ni=1gλi mod p 组私钥为: φ=∑ni=1λi 2.2.2 TSign:产生签名 任意t个区块链节点利用自己的私钥,根据中国剩余定理产生自己的部分签名,t个部分签名合成消息s的签名。 1)生成部分签名。 ①节点Pi选取随机数hi∈Zp,计算并广播: li=ghi mod p Pj收到li后,计算: l=g∑ti=1hi mod p=∏ti=1ghi mod p=∏ti=1li mod p ② Pi计算Hi=Ddi eiKi mod D,用于生成部分签名,其中: D=∏ti=1di ei满足: ei≡(D/di)-1 mod di; i=1,2,…,n ③ Pi计算部分签名Wi: Wi=l·hi·s+Hi mod D(8) 并将部分签名(s,l,W)发送给签名合成者。 2)合成签名。 签名合成者收到t个区块链节点发送的部分签名Wi后,合成签名W: W=(∑ti=1Wi mod D) mod q(9) 则消息 s的签名为 (s,l,W)。 2.2.3 Verify:验证签名 验证者收到签名信息(s,l,W)后,根据如下等式,使用组公钥ψ验证签名的有效性: gW≡ls·l·ψ mod p(10) 若上述等式成立,则说明签名有效,接受签名。 2.2.4 节点加入 假设有新节点Pi+1加入区块链网络,其加入过程如下: 1)新加入节点Pi+1选择模数dn+1,且使dn+1满足Asmuth-Bloom秘密共享方案。 2)由t个区块链节点Pi(i=1,2,…,t)协助新加入节点Pi计算伪私钥。 节点Pi随机选取t个随机数εij∈Zp(j=1,2,…,t),计算εi=∑tj=1εij mod p,并将εij发送给Pj,Pj计算ε′j: ε′j=∑ti=1εij mod p Pi计算伪私钥: K′i=(Ddi eiKi mod D) mod dn+1+(εi-ε′i)dn+1 并将K′i发送给Pn+1。 3)Pn+1收到t份伪私钥K′i后,计算自己的私钥: Kn+1=(∑ti=1K′i mod D) mod dn+1(11) 当有新节点加入区块链网络时,由区块链节点协助其产生伪私钥,新加入节点在收到其他t个节点的伪私钥后计算自己的私钥。在整个过程中组公钥、组私钥和其他节点的私钥均未发生变化,因此对整个签名过程没有影响。 2.2.5 节点退出 假设区块链节点Pk决定离开区块链网络,Pk广播其离开的消息,其他节点剔除节点dk,不再接受其发送的消息。节点Pk离开后,其他节点及时更新密钥,更新后组公钥为: ψ′=ψ/gλk 组私钥: φ′=φ/λk 节点私钥: K′j=(∑ni=1Xij-Xkj) mod dj 由于节点密钥由节点相互协作产生,当有节点离开时,相应的组公钥、组私钥、节点私钥等都要发生变化,会因节点的离开而造成之前签名信息不可用。为了保证节点的离开不会因组公钥的改变而造成在此之前的签名信息无效,将前期组公钥ψ存储到区块链网络中,当需要查看之前的签名信息时,可以在区块链的历史记录中找到组公钥ψ并启用。这样确保了节点退出后,仍然可以查阅之前签名信息。 区块链本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,区块链每一个数据块中包含了一批次比特币网络交易的信息,区块链网络平均每10min产生一个合法区块,区块链节点在参与投票的同时维护区块链投票系统的正常运行,节点在合法区块产生时间段内通过挖矿将在此过程中更新掉的组公钥存储在合法区块中。 区块链强大的计算力保证了区块链网信息的安全,它公开透明,任何人都可以在区块链网络中查看存储在上面的信息,而且可以检验信息的正确性。因此将组公钥保存在区块链网络中,既确保了信息的安全可信,也保证了之前签名信息的有效性,解决了节点退出时存在的之前签名失效等问题。 当区块链网络中同时离开的节点个数大于等于t时,由于t个节点合作即可重构秘密份额,导致签名算法不安全,因此需要系统重新初始化,重新执行签名步骤1)~3)的操作。 2.2.6 节点私钥更新 若有某攻击者成功入侵并控制了某节点,该攻击者能够将攻击目标成功转移到系统中的另一节点上,该攻击称为移动攻击。区块链节点自动保存系统信息,并通过相互连接传递信息,若有某节点被成功入侵,则其他节点将存在极大风险。因此,为避免移动攻击,势必对节点私钥进行定期更新,确保参与节点的安全性。 本文设计的(t,n)门限签名,只有t个节点同时参与才能完成签名。私钥更新确保攻击者即使在某时刻控制了某一节点也无法在有限时间内同时入侵t个节点。 另外,私钥更新,使得攻击者即使获得了T时间段内的某节点的信息,也无法获得在此之前的私钥信息,避免攻击者篡改签名信息的可能性,保证签名信息的前向安全性。 设节点私钥更新周期为T,则更新算法如下: 1)节点Pi随机选取整数ZTi,满足初始条件; 2)节点Pi计算更新因子: XTij=ZTiq mod dj 并将更新因子XTij发送给节点Pj,广播gZTi; 3)节点Pi计算验证信息及验证公式: δTi=gZTiq mod p θTij=(ZTiq-XTij)/dj μTij=gθTij mod p 并广播 δTi和 μTij。 4)节点 Pi收到Pi发送的信息XTij,以及广播信息δTi、 μTij和gZTi,由以下两个等式验证更新因子的正确性: (gZTi)q mod p=δTi ((gXTij mod p)((μTij)dj mod p))mod p=δTi 5)若验证等式成立,则Pj計算T时段的私钥: KTj=KT-1j+∑ni=1XTij mod dj 更新产生的新私钥,仍然可以按照签名过程进行签名和验证。更新过程中组公钥不变,因此更新前的签名依然有效。 3 方案分析 3.1 正确性分析 定理1 节点Pi根据广播信息gλi、gZi和δi ,证明式(5)成立。 证明 gλi·gZqi mod p =gλi+Ziq mod p =δi 等式(5)成立,则节点Pi发送的信息正确,Pi可信。 定理2 节点Pj收到其他n-1个节点发来的秘密份额Xij后,验证其正确性,即证明式(6)成立。 证明 由式(2)、(3)和(4) ((gXij mod p)((μij)dj mod p)) mod p= ((gXij mod p)(gθij)dj mod p) mod p = ((gXij mod p)(gλi+Ziq-Xijdj mod p)dj mod p) mod p= ((gXij mod p)(gλi+Ziq-Xij) mod p) mod p= (gXij+λi+Ziq-Xij mod p) mod p=gλi+Ziq mod p=δi 原式得证,等式(6)成立,则证明Pj收到的秘密份额正确,其他节点可信。 定理3 由t个部分签名合成的最终签名,需由验证式(10)验证其是否合法签名,即证明等式(10)成立。 证明 由式(1)和式(7),节点私钥: Kj =∑ni=1Xij mod dj=∑ni=1λi+Ziq mod dj; j=1,2,…,n 令 Q =∑ni=1λi+Ziq(12) 则 Kj=Q mod dj; j=1,2,…,n(13) 根据中国剩余定理,解如下同余方程组: K1≡Q mod d1 K2≡Q mod d2 Kt≡Q mod dt 可得唯一解: Q=∑ti=1Ddi eiKi mod D(14) 由(13)和(14)式可得, Kj=∑ti=1Ddi eiKi mod D mod dj 令: Hi = Ddi ei Ki mod D 则: Q=∑ti=1Hi mod D 当t>2时,根据文献[22]可知: s·l·∑ti=1hi+Q 由式(8)和(9): W=∑ti=1Wi mod D mod q = [∑ti=1(l·hi·s+Q) mod D]mod q= (l·s·∑ti=1hi+Q)mod q 由式(12): Q=∑ni=1λi+Ziq=∑ni=1λi mod q 因此: W=l·s·∑ti=1hi+∑ni=1λi mod q 则有: gW≡gl·s·∑ti=1hi+∑ni=1λi mod q ≡gl·s·∑ti=1hi·g∑ni=1λi mod p ≡ ls·l·ψ mod p 如果节点Pi提供真实的秘密份额,则两个等式(5)、(6)一定成立;反之如果驗证结果表明等式不成立,则说明节点没有提供真实的秘密份额。 证明结果显示等式成立,故节点私钥Kj产生的签名(s,l,W)有效。 定理4 由区块链节点协助新加入区块链网络的节点产生的新私钥有效,即证明式(11)成立。 证明 Kn+1=(∑ti=1K′i mod D) mod dn+1= {∑ti=1 [(Ddi eiKi mod D) mod dn+1+ εi-ε′idn+1] mod D}mod dn+1= {[∑ti=1(Ddi eiKi mod D) mod dn+1+ ∑ti=1εidn+1-∑ti=1ε′idn+1] mod D} mod dn+1= {[∑ti=1(Ddi eiKi mod D) mod dn+1+ ∑ti=1εidn+1-∑ti=1∑tj=1εijdn+1] mod D} mod dn+1= {∑ti=1(Ddi eiKi mod D) mod dn+1+ (∑ti=1εidn+1-∑ti=1εidn+1 ) mod D} mod dn+1= ∑ti=1(Ddi eiKi mod D) mod dn+1 由此可得,原节点私钥Kj=∑ti=1Ddi eiXi mod D mod dj与新加入区块链网络的节点的私钥Kn+1同构,可以构成同余方程组且只有唯一解。因此,新加入节点私钥有效。 3.2 安全性分析 3.2.1 签名算法安全性分析 本文设计的适用于区块链的(t,n)门限签名算法,根据中国剩余定理,求解同余式方程组至少需要t个方程,少于t个方程无法求解,因此在合成签名时需要至少t个节点协作才能生成签名。攻击者只有在一个周期T内同时攻破t个及以上的节点,才能对投票结果造成影响。 假设某攻击者想要窃取区块链节点的私钥,由于区块链节点私钥计算公式为: Kj=∑ti=1Xij mod dj=∑ni=1λi+Ziq mod dj 则攻击者需要计算: Xij=(λi+Ziq) mod dj 然而,由于λi和Zi由参与区块链投票的节点秘密选取并保存,并没有通过通信通道传输,攻击者无法获得。 攻击者可能通过拦截得到广播消息δi、θij、 μij,并可求得: gXij=δi/μij 然而通过gXij求解Xij是离散对数难题,因此攻击者无法求得Xij,因此无法通过Xij计算节点私钥。另外,基于中国剩余定理的秘密分享,是基于大模数分解难题,这里 Kj=∑ti=1Ddi eiXi mod D mod dj,其中dj、D公开,要通过dj、D求解ei属于大模数分解难题。因此攻击者也无法通过此方案获得区块链节点私钥。 组公钥ψ=∏ni=1gλk mod p和组私钥φ=∏nk=1λk由参与投票的区块链节点相互协作产生。组公钥ψ属于公知信息,攻击者可能知晓此信息。假设攻击者想通过组公钥ψ获得组私钥φ=∑nk=1λk,由组公钥ψ=∏ni=1gλk mod p可知,通过gλk 求解λk属于离散对数难题不可解。另外组私钥是由组节点随机选取的子秘密产生的,子秘密被各节点秘密保存,并通过通信通道传送,攻击者无法拦截获得。而且方案中的签名W由部分签名Wi合成,整个签名过程没有使用组私钥,组私钥没有暴露,因此攻击者无法获得组私钥。 在签名生成阶段,参与投票的区块链节点秘密选取的随机数hi没有通过通信信道传输,攻击者无法获得。攻击者可能拦截到l,而l=g∑ti=1hi mod p,通过l求hi,需要计算g∑ti=1hi,而通过g∑ti=1hi求解hi仍然是求解离散对数难题,攻击者无法获得。 在签名合成阶段,区块链节点需将各自的部分签名(s,l,W)发送给签名合成者, 部分签名(s,l,W)不包含私钥内容,即使攻击者窃取该内容,也没有任何价值,不会影响投票结果。 新节点加入区块链网络时,其私钥由t个区块链节点相互协作产生,εij是由区块链节点随机选取并保存,攻击者无法获得。假设某攻击者通过恶意攻击获得了随机数εij,想通过计算得到新加入节点的私钥Kn+1,根据新加入节点的私钥计算公式: Kn+1=∑ti=1K′i mod D mod dn+1 攻击者不可避免地要计算∑ti=1K′i mod D,则攻击者必须先获得K′i,而: K′i=Ddi eiKi mod D mod dn+1+(εi-ε′i)dn+1 攻击者必须计算Ki,即攻击者必须获得区块链节点私钥,然而根据之前的分析,攻击者不可能获得节点私钥,因此攻击者无法获得新加入区块链网络节点的私钥。 方案对区块链网络中节点的离开具有免疫功能。假设有某节点Pk要离开区块链网络,因为Pk只知道自己的子秘密λk和个人私钥Kk, 而组公钥ψ=∏ni=1gλk mod p和组私钥φ=∑nk=1λk均有区块链节点协作产生,节点Pk仅有自己的秘密数和私钥,并不能对组私钥和其他节点私钥产生任何威胁。且根据秘密共享门限签名方案的原则,至少需要t个节点合作才能打开秘密。因此,少于t个节点的离开并不影响系统的安全性,该方案对于节点的离开不具有敏感性。 3.2.2 不可伪造性分析 不可伪造性是指任意恶意节点都不能伪造区块链网络中的合法節点生成签名信息。 若有某恶意节点i想替代区块链节点j产生秘密份额,则该恶意节点i随机选取秘密数λi′和Zi′,由于λi′≠λi,Zi′≠Zi则λi′+Zi′q≠λi+Ziq,所以有X′ij≠Xij,其他节点收到恶意节点i的广播信息λi′,Zi′,通过验证很容易发现gλi′·gZi′q mod p≠gλi ·gZiq mod p≠δi,即等式不成立,其他节点不接受此节点的信息和签名,因此节点i无法替代其他区块链节点伪造λi,Zi。 假设恶意节点i想替代区块链节点j生成区块链节点私钥,恶意节点可能截获其他n-1个节点发送的信息Xij来构造区块链节点的私钥。但是其他节点各自保留了Xii,攻击者无法获得。由Xii=(λi+Ziq) mod di,攻击者可能通过截获gλi、gZi试图求得λi和Zi,从而计算Xii,但通过gλi、gZi求解λi和Zi是离散对数难题,攻击者无法通过计算得到,因此攻击者无法伪造区块链节点私钥。 若有恶意节点要伪造签名信息,则攻击者随机选取hi′,计算li′、l′和部分签名Wi′,合成者合成签名W′但是在签名验证阶段,由于W′≠W,所以gW′≠ls·l·ψ mod p,无法通过验证,签名无效,因此攻击者无法伪造签名。 3.3 效率分析 本文基于中国剩余定理的秘密共享方案,提出的适用于区块链的(t,n)门限签名算法,其计算难度等价于求解离散对数难题,与拉格朗日插值定理相比,具有较小的计算量。 为了与之前已有的签名算法进行比较,本文定义了如表1符号说明。 与模指数运算和模乘运算相比,模加法、模减法运算的计算量可忽略不计,因此本文只通过模指数和模乘运算来比较。 表2是本文方案与其他方案的计算复杂度对比结果。文献[4]方案基于中国剩余定理,文献[8]方案基于零知识证明协议,文献[10]和[16]方案均基于拉格朗日插值多项式。 从表2可以看出,文献[4]方案在算法上和本文效率相当。在签名生成阶段,本文方案明显优于文献[8]、[10]和[16]中的方案,这是由于文献[10]和[16]方案是基于拉格朗日插值多项式的门限签名算法,而多项式阶数较高,计算复杂,所以导致执行效率较低。 在签名验证阶段,文献[10]和[16]方案均优于本文方案,但是区块链是一种异构网络,其计算资源相对有限,对算法的执行效率要求较高。门限签名算法的计算量主要在于签名生成阶段,不是验证阶段,因此提高签名生成阶段的效率比提高验证阶段的效率更为重要。 本文适用于区块链电子投票场景的方案,设计了节点加入和退出机制;而文献[8]、[10]和[16]方案均不支持节点加入和退出,文献[4]方案建立了节点加入机制,但没有设计节点退出算法,因此,以上方案均不能适配区块链投票场景。 区块链作为一个去中心化的应用平台,其参与节点集合处于动态变化之中,因此要求签名算法不仅要去中心化,还需要允许节点自由加入和退出。与其他方案相比,本文设计的签名算法能够更好地适配到区块链网络投票场景。 4 结语 本文设计的门限签名方案,摈弃了可信中心,参与区块链投票的节点之间相互协作产生签名,实现了节点之间实现相互验证功能,除非大于t个节点合谋,否则无法获得签名信息。方案允许外部节点加入区块链网络参与投票,且保持组公钥不变。在节点退出时,组公钥发生变化,此时将前期组公钥存放在区块链网络中,同时生成新的组公钥,如需验证前期签名,可从区块链网络系统中调用组公钥,解决了节点退出区块链网络时引起的组公钥改变问题。另外,定期更新节点,避免了因移动攻击造的成节点信息泄露问题,确保方案具有前向安全性。 本文提出的适用于区块链投票场景的门限签名方案,与其他方案相比,本方案基于中国剩余定理,计算简单,效率较高。 参考文献 [1]杨保华,陈昌.区块链原理、设计与应用[M].北京:机械工业出版社,2017:9-19.(YANG B H, CHEN C. Blockchain Principle, Design and Application [M]. Beijing: China Machine Press, 2017:9-19.) [2]SHAMIR A. How to share a secret [J]. Communications of the ACM, 1979, 22(11): 612-613. [3]张毅,侯整风,胡东辉.一种动态的无可信中心(t,n)门限签名认证方案[J].合肥工业大学学报(自然科学版),2011,34(9):1341-1344.(ZHANG Y, HOU Z F, HU D H. A dynamic (t,n) threshold signature authentication scheme without a trusty party [J]. Journal of Hefei University of Technology (Natural Science Edition), 2011, 34(9): 1341-1344.) [4]王斌,李建华.无可信中心的(t,n)门限签名方案[J].计算机学报,2003,26(11):1581-1584.(WANG B, LI J H. A (t,n) threshold signature scheme without a trusted party [J]. Chinese Journal of Computers, 2003,26(11):1581-1584.) [5]HARN L. Group-oriented (t,n) threshold digital signature scheme and digital multisignature [J]. IEEE Proceedings—Computers and Digital Techniques, 1994, 141(5):307-313. [6]何二庆, 侯整风, 朱晓玲. 一种无可信中心动态秘密共享方案[J]. 计算机应用研究, 2013,30(2):491-493.(HE E Q, HOU Z F, ZHU X L. Proactive secret sharing scheme without trusted party [J]. Application Research of Computers, 2013 30(2): 491-493.) [7]殷凤梅,濮光宁.允许新成员加入的无可信中心秘密共享方案分析[J].重庆科技学院学报(自然科学版),2011,13(6):173-182.(YIN F M, PU G N. New member joining in a secret sharing scheme without a trusted party [J]. Journal of Chongqing University of Science and Technology (Natural Science Edition), 2011,13(6): 173-182.) [8]徐甫.基于多項式秘密共享的前摄性门限RSA签名方案[J]. 电子与信息学报, 2016, 38(9):2280-2286.(XU F. Proactive threshold RSA signature scheme based on polynomial secret sharing[J]. Journal of Electronics & Information Technology, 2016, 38(9):2280-2286.) [9]ASMUTH C, BLOOM J. A modular approach to key safeguarding[J]. IEEE Transactions on Information Theory, 1983,29(2):208-210. [10]杨阳,朱晓玲,丁凉.基于中国剩余定理的无可信中心可验证秘密共享研究[J].计算机工程,2015,41(2):122-128.(YANG Y, ZHU X L, DING L. Research on verifiable secret sharing without trust center based on Chinese remainder theorem [J].Computer Engineering, 2015, 41(2):122-128.) [11]程宇,刘焕平.可验证的Asmuth-Bloom门限秘密共享方案[J].哈尔滨师范大学自然科学学报,2011,27(3):35-38.(CHENG Y, LIU H P. The Asmuth-Bloom verifiable threshold sharing scheme [J]. Natural Science Journal of Harbin Normal University, 2011, 27(3):35-38.) [12]王岩,侯整风,章雪琪,等. 基于中国剩余定理的动态门限签名方案[J]. 计算机应用, 2018, 38(4):1041-1045.(WANG Y, HOU Z F, ZHANG X Q, et al. Dynamic threshold signature scheme based on Chinese remainder theorem [J]. Journal of Computer Applications, 2018, 38(4): 1041-1045.) [13]徐甫,馬静谨.基于中国剩余定理的门限RSA签名方案的改进[J].电子与信息学报,2015,37(10):2495-2500.(XU F, MA J J. Improvement of threshold RSA signature scheme based on Chinese remainder theorem [J]. Journal of Electronics & Information Technology, 2015,37(10):2495-2500.) [14]李洁平, 韦性佳. 基于中国剩余定理的秘密共享方案[J]. 通信技术,2018,51(3):671-675.(LI J P, WEI X J. Secret sharing scheme based on Chinese remainder theorem [J]. Communications Technology, 2018, 51(3): 671-675.) [15]LI Q, WANG Z, NIU X, et al. A non-interactive modular verifiable secret sharing scheme [C]// Proceedings of the 2005 International Conference on Communications, Circuits and Systems. Piscataway, NJ: IEEE, 2005,1:84-87. [16]KAYA K, SELCUK A A. A verifiable secret sharing scheme based on the Chinese remainder theorem [C]// Proceedings of the 2008 International Conference on Cryptology in India, LNCS 5365. Berlin: Springer, 2008: 414-425. [17]董攀,况晓辉,卢锡城.一种秘密共享新个体加入协议[J]. 软件学报,2005, 16(1):116-120.(DONG P, KUANG X H, LU X C. A non-interactive protocol for member expansion in a secret sharing scheme[J]. Journal of Software, 2005, 16(1):116-120.) [18]曹阳.基于秘密共享的数字签名方案[J].重庆邮电大学学报(自然科学版),2015,27(3):418-421.(CAO Y. Digital signature scheme based on secret sharing [J]. Journal of Chongqing University of Posts and Telecommunications (Natural Science Edition), 2015, 27(3): 418-421.) [19]王利朋,胡明生,贾志娟,等.基于中国剩余定理的区块链投票场景签名方案[J].计算机应用研究, 2020, 37(2):1-8.(WANG L P, HU M S, JIA Z J,et al. Signature scheme applying on blockchain voting scene based on Chinese remainder theorem [J]. Application Research of Computers, 2020, 37(2):1-8.) [20]BLAHUT R E.现代密码学及其应用[M].黄玉划,薛明福,徐娟,译.北京:机械工业出版社,2018:67-68.(BLAHUT R E. Cryptography and Secure Communication [M]. HUANG Y H, XUE M F, XU J, translated. Beijing: China Mechine Press, 2018: 67-68. [21]闵嗣鹤,严士健.初等数论[M].3版.北京:高等教育出版社,2003:76-79.(MIN S H, YAN S J. Elementary Number Theory [M]. 3rd edition. Beijing: Higher Education Press, 2003: 76-79.) [22]HOU Z, TAN M. A CRT-based (t,n) threshold signature scheme without a dealer [J]. Journal of Computational Information Systems, 2015,11(3): 975-986. This work is partially supported by the General Subject of the 13th Five-Year Plan for Education Science in Henan Province ((2018)-JKGHYB-0279). CHENG Yage, born in 1987, M. S., assistant. Her research interests include cryptography, industrial Internet of things. JIA Zhijuan, born in 1973, M. S., professor. Her research interests include software engineering. HU Mingsheng, born in 1973, Ph. D., professor. His research interests include software engineering. GONG Bei, born in 1984, Ph. D., professor. His research interests include information security, trusted computing. WANG Lipeng, born in 1987, M. S., assistant. His research interests include virtualization security, cloud storage, parallel computing.