高级搜索

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于无证书的多方合同签署协议

曹素珍 王斐 郎晓丽 汪锐 刘雪艳

曹素珍, 王斐, 郎晓丽, 汪锐, 刘雪艳. 基于无证书的多方合同签署协议[J]. 电子与信息学报, 2019, 41(11): 2691-2698. doi: 10.11999/JEIT190166
引用本文: 曹素珍, 王斐, 郎晓丽, 汪锐, 刘雪艳. 基于无证书的多方合同签署协议[J]. 电子与信息学报, 2019, 41(11): 2691-2698. doi: 10.11999/JEIT190166
Suzhen CAO, Fei WANG, Xiaoli LANG, Rui WANG, Xueyan LIU. Multi-party Contract Signing Protocol Based on Certificateless[J]. Journal of Electronics & Information Technology, 2019, 41(11): 2691-2698. doi: 10.11999/JEIT190166
Citation: Suzhen CAO, Fei WANG, Xiaoli LANG, Rui WANG, Xueyan LIU. Multi-party Contract Signing Protocol Based on Certificateless[J]. Journal of Electronics & Information Technology, 2019, 41(11): 2691-2698. doi: 10.11999/JEIT190166

基于无证书的多方合同签署协议

doi: 10.11999/JEIT190166
基金项目: 国家自然科学基金(61662071, 61662069, 61562077)
详细信息
    作者简介:

    曹素珍:女,1976年生,副教授,研究方向为公钥密码学和软件安全

    王斐:女,1992年生,硕士生,研究方向为密码学与信息安全

    郎晓丽:女,1993年生,硕士生,研究方向为密码学与信息安全

    汪锐:男,1991年生,硕士生,研究方向为密码学与信息安全

    刘雪艳:女,1978年生,副教授,研究方向为组密钥协商、密码协议形式化分析

    通讯作者:

    王斐 wf9211@126.com

  • 中图分类号: TP309

Multi-party Contract Signing Protocol Based on Certificateless

Funds: The National Natural Science Foundation of China (61662071, 61662069, 61562077)
  • 摘要: 线上合同签署在电子商务中日益普及,在互不信任的签署方之间签署一份合同并不是一件简单的事情,各方就合同签署问题提出过许多合同签署协议。其中较多的协议是带有第三方参与的,但是在效率方面并不占优势,且易出现安全问题。现有借助区块链技术取代第三方参与的合同签署协议中,区块链的公开验证对不管是签署方还是待签署合同的敏感信息又发起了挑战。且大多协议针对于双方合同签署,随着签署方数量的增加,协议的通信成本和复杂度都在急剧增加。该文结合现有协议,提出一个高效的多方合同签署协议,协议中通过基于无证书的高效聚合签名方案,用于提高区块链下签署方签名验证效率,在区块链上仅公开签署方的临时密钥以减少系统开销。该协议满足正确性、安全性、公平性、私密性以及高效性。
  • 随着电子商务的不断发展,交易方或合作方通过互联网就某些条款签订合同变得日益普遍。在互不信任的签署方中,尤其是针对多方合同签署时,签署合同时的公平性就显得尤为重要。为解决公平签署的问题,最常见的方法便是加入可信第三方,借助第三方交换签署方的签名信息以达到公平签署的目标。这种方法就要求第三方保持在线状态,所以效率不会太高,尤其是随着签署方的增加易产生系统瓶颈问题。并且现实中第三方并非是完全可信的。随之产生了半可信第三方,在这类协议中,第三方仅在签署方发生争端时出现,用以解决争端问题。但是这类协议通常计算比较复杂,效率也不太高,同时存在信息泄露的风险。而另一类无需第三方参与的协议,通常采用逐步释放待公开的信息[1],但由于互联网的不同步,合同签署的过程也是异步发生的,因而并未解决公平签署的问题,在通信交互过程中的成本较高,实际应用的可能性较低。

    2003年由Al-Riyami等人[2]提出了无证书密码体制。聚合签名自Boneh 等人[3]提出以来受到了广泛的应用,把多个签名压缩聚合成一个签名,降低了存储开销,验证的工作量和对网络传输的要求。文献[47]提出了应用于不同场景的无证书聚合方案及改进方案。聚合签名的使用将为多用户参与的方案提供了新的解决思路。

    近年来,由于区块链技术的兴起,区块链技术受到更多的关注,去中心化特性被用来很好地解决了第三方问题。Wan等人[8]提出了在区块链环境下,采用时间戳服务器检查在最后期限内提交的加盖时间戳的签名的有效性来保障签署双方的公平性。文献[9]在双方合同签署的过程中嵌入了盲的可验证的加密签名,保护了待签署合同的私密性,防止了合同信息的泄露,但是当出现争议时,由于区块链具有公开透明性,区块链上每一个节点均可以获得链上的签名信息,同样泄露用户的信息。故基于区块链的合同签署协议中必不可少的要解决隐私保护问题,防止信息泄露。文献[10]在文献[9]基础上进行改进,引入了半诚信的第三方添加混币模式,保护了用户的隐私,虽然可用于多方合同签署,但是随着签署方数量的增加,在区块链上的工作量也在增加。Huang等人[11]将合同签署的过程分为链上和链下两部分,链下协商一个门限在链上交换,但该协议随着签署人数的增加验证各方签名的消耗也在急剧增加。文献[12]提出了一种新的合同签署协议,将大量的签名工作借助无证书聚合可验证的签名方案放在区块链下执行,只有聚合签名通过验证方可进入链上阶段。在区块链上各签署方交换秘密值,矿工仅验证签署方是否合法有效。但是该协议中无证书方案基于双线性对在聚合签名验证时,验证开销较大。

    本文结合已有工作,在文献[12]的基础上提出一个高效的无证书聚合可验证签名方案,并应用于多方合同签署环境中。在多方合同签署的过程中,签署方首先在区块链链下对待签署合同达成一致,分别签署带有共享公钥的签名后聚合统一验证,若聚合签名通过验证之后,方可进入区块链链上阶段,否则退出合同签署协议。在链上,各方首先提交一笔担保金以担保自己的行为,之后各签署方依次公开自己的临时密钥。若公开过程中出现不诚实的签署方,则该签署方失去其保证金用于奖励之前已经诚实的公开自己临时密钥的签署方,晚于该签署方之后的签署方赎回自己的担保金。该协议不管是在链上还是在链下,保证了对签署方而言的公平性和私密性,针对于合同的机密性和不可伪造性,在协议的效率上也有很大的提高。

    离散对数问题(Discrete Logarithm Problem, DLP)[13]:设在生成元为P 的大素数为q阶的加法循环群G中,已知元组(P,bP), bZq,求解目标b。在任意的概率多项式时间(Probabilistic Polynomial Time, PPT),算法A成功解决DLP问题的概率AdvDLP(A)可忽略[13]。其中AdvDLP(A)=Pr[A(P,bP)=b|bZq]

    计算性Diffie-Hellan问题 (CDH问题)[14]:设在q阶的加法循环群G中,P为其生成元。已知P, aP, bPabP问题,其中a,bZq。在算法A任意的PPT内,成功解决CDH问题的概率AdvCDH(A)可忽略[14]。其中AdvCDH(A)=Pr[A(P,aP,bP)=abP|a,bZq]

    在无证书签名方案的安全模型中,攻击者可以分为两大类[4]

    AI:模拟为恶意的用户,不知道系统主密钥,但是可以任意替换用户的公钥;

    AΠ:模拟为恶意的KGC,知道系统的主密钥,但是不能替换用户公钥。

    证明无证书签名方案的不可伪造性时,可构造挑战者C与攻击者AIAΠ之间的游戏。

    多方的合同签署过程中需要满足以下安全需求:

    (1) 正确性:若参与签署合同的签署者均诚实地执行多方合同签署协议,则合同签署成功,每一个签署者均可以得到其他签署方的普通签名;

    (2) 公平性:多方签署合同时,对于每一个签署者都应该保证相对公平,出现不诚实的签署者时应该得到一定的惩罚,而已经诚实的公开自己临时密钥的签署者应该得到补偿;

    (3) 私密性:在合同签署的过程中,保证每一个签署者的个人隐私不泄露,所签署的合同信息除了签署者知道外对其他人是保密的;

    (4) 可验证性:对于合同签署时的聚合签名可以通过验证,并且具有可提取性,在满足一定条件下,可以恢复出签署者对于合同的普通签名,证明签署的合同有效的;

    (5) 不可伪造性:对于签署者签署的签名具有不可伪造性,协商通过后的合同,若一方未签署,其他签署方不可能伪造一个合法的合同。

    本方案由以下算法组成:

    (1) 系统建立:设置安全参数k, KGC选取主密钥λ,公开系统参数params

    (2) 秘密值生成:(xi,params)(xiPi),选取随机值xi为秘密值,Pi为与之对应的公钥;

    (3) 部分私钥生成:(vi,IDi,λ,Pi,params)yi, vi为随机值,IDi为用户身份,yi为部分私钥;

    (4) 用户密钥生成:(xi,yi,IDi,params)(pki,ski), pkIski分别为用户的公私钥;

    (5) 临时密钥生成:(xi,params)(xi,Pi),选取随机值xi为用户临时私钥xi, Pi为临时公钥;

    (6) 共享密钥生成:(x1,x2,···,xn,P1,P2,···,Pn)(Ppub,xpub), Ppub为共享公钥,xpub为共享密钥;

    (7) 签名生成:(Mi,IDi,Δ,ri,params)σi,消息Mi,随机值ri, Δ为状态信息,σi为用户签名信息;

    (8) 聚合签名:(σ1,σ2,···,σn)σ, σ为聚合签名;

    (9) 聚合签名验证:(M1,M2,···,Mn,ID1ID2···IDn,Δ,Ppub,params,σ)true/false。若聚合签名有效,输出true;否则,输出false。

    (1) 系统建立:设安全参数k, KGC选择素数q>2k阶椭圆曲线加群G, P为其生成元。选择抗碰撞的安全哈希函数H:{0,1}×G×GZq, H1:G×{0,1}Zq,随机选λZq作为系统主密钥,系统公钥PT=λP, KGC保存系统主密钥λ,公开系统参数params={G,q,P,PT,H,H1}

    (2) 秘密值生成:用户Ui随机选取xiZq用作秘密值,计算Pi=xiP作为其对应公钥,并将用户的身份IDiPi发送给KGC

    (3) 部分私钥生成:KGC随机选取viZq,计算Vi=viP, hi=H(IDi,Pi,PT), yi=vi+λhimodq, KGC公开Vi并将部分私钥yi发送给用户Ui

    (4) 用户密钥生成:用户Ui计算hi=H(IDi,Pi,PT),验证yiP=Vi+hiPT 是否成立,成立则合成私钥 ski=xi+yi,公钥pki=(Pi,Vi)。否则,终止执行;

    (5) 临时密钥生成:用户Ui随机选取xi作为临时私钥,计算Pi=xiP, Pi为临时公钥;

    (6) 临时公钥承诺:

    (a) 用户Ui随机选取辅助值ki,并对临时公钥进行承诺,得Ci=Com(Pi,ki),将Ci广播给其他用户;

    (b) 当用户收到Ci后,Ui打开承诺,则用户得到临时公钥Pi

    (7) 共享密钥生成:当所有用户均打开公钥承诺后,可计算共享公钥Ppub=ni=1Pi,与之对应的共享密钥为xpub=ni=1xi

    (8) 签名生成:广播消息M,用户Ui对消息Mi进行签名过程如下:

    (a) 用户Ui随机选取riZq,计算Ri=riP

    (b) 计算li=H1(Ri,IDiMiRi), Si=riPpub+skili

    (c) 用户Ui对消息Mi的签名为σi=(Ri,Si)

    (9) 聚合签名:若对n个消息-签名对(M1,σ1)(M2,σ2)···(Mn,σn)聚合签名,计算R=ni=1Ri, S=ni=1Si,则聚合签名为σ=(R,S)

    (10) 聚合签名验证:每一个参与者均可验证聚合签名,输入消息M1,M2,···,Mn, σ和所需参数,验证者执行:

    (a) 计算hi=H(IDi,Pi,PT)li=H1(Ri,IDiMiRiΔ),其中i=1,2,···,nhili可以预运算;

    (b) 判断等式为SP=ni=1[RiPpub+(Pi+Vi+PThi)li]。等式成立,则输出true;否则,输出false。

    计算hi=H(IDi,Pi,PT),li=H1(Ri,IDiMiRiΔ)R=ni=1Ri,其中i=1,2,···,n

    首先验证等式SiP=RiPpub+(Pi+Vi+hiPT)li是否成立:

    SiP=(riPpub+skili)P=riPpubP+(xi+yi)liP=RiPpub+(xi+vi+λhi)liP=RiPpub+ (Pi+Vi+hiPT)li,故可验证签名的正确性。

    然后验证SP=ni=1[RiPpub+(Pi+Vi+PThi)li]是否成立:

    SP=ni=1(riPpub+skili)P=ni=1[riPpub+(xi+vi+λhi)li]P=ni=1[RiPpub+(Pi+Vi+PThi)li],故可验证聚合签名的正确性。

    定理1 在随机语言模型中,攻击者AI在自适应选择消息攻击下,依赖离散对数困难问题,存在不可伪造性。若攻击者AI能够以一个不可忽略的PPT内成功伪造一个有效聚合签名,则存在挑战者C能够以不可忽略的优势在多项式时间内解决DLP

    证明 攻击者AI已知元组(P,bP),伪造有效的聚合签名。挑战者C利用AI求困难问题,解b的值。假定目标用户IDjCAI交互过程如下:

    系统初始化阶段 挑战者C建立系统模型,执行系统建立算法,生成系统公开参数params={G,q,P,PT,H,H1}和系统主密钥λ,令系统公钥PT=bP(其中bZq)。生成随机数PpubZq作为用户的共享公钥,挑战者C保存系统主密钥λ,将系统公开参数paramsPpub发送给敌手AI

    询问阶段 在此阶段中,挑战者C建立维护表LH,LH1,LX,LY,LSK,LPK,记录下询问过程。其中表的初始值均为空。询问过程如下:

    (1) H询问:当AI进行H询问。首先C检查LH(IDi,Pi,PT,hi)表,当LH表已包含hi时,将hi返回给AI;当LH表不存在hi时,那么C随机选择hiZq,将hi返回给AI并记录到(ID,Pi,PT,hi)中;

    (2) H1询问:当AI进行H1询问。首先C检查LH1(Ri,IDi,Mi,Δ,li)表,当LH1表已包含h1i时,将li返回给AI;当LH1表不存在li时,那么C随机选择liZq,将li返回给AI并记录到(Ri,IDi,Mi,Δ,li)中;

    (3) 秘密值询问:当AI对于IDi的秘密值询问时,首先C检查LX(IDi,Pi,xi)表,当LX表已包含xi时,将xi返回给AI;若IDi=IDj,游戏终止;若IDiIDj, C随机选择xiZq,计算Pi=xiP,将xi返回给AI并更新LX记录;

    (4) 部分私钥询问:当AIIDi的部分私钥询问时,首先C检查LY(IDi,hi,Vi,yi)表,当LY表已包含yi时,将yi返回给AI;若IDiIDj, C随机选择yiZq,计算,Vi=yiPhiPT,将yi返回给AI并更新LY记录;若IDi=IDj, C随机选择yiZq,计算Vi=kP(其中kZqC已知随机数),将yi返回给AI并更新LY记录;

    (5) 私钥生成询问:当AIIDi的私钥询问时,C查看LSK(IDi,xi,yi,ski)表,若LSK表已包含IDi的记录时,将ski返回给AI;当LSK表中无IDi的记录时,C执行秘密值询问和部分私钥询问之后,更新LSK表,将私钥ski=xi+yi返回给AI

    (6) 公钥询问:当AIIDi的公钥询问时,首先C检查LPK(IDi,Pi,Vi)表,若和LPK表已包含IDi的记录时,将(Pi,Vi)返回给AI;当LPK表中无IDi的记录时,则执行秘密值询问和部分私钥询问之后,更新LPK表,将(Pi,Vi)返回给AI

    (7) 公钥替换询问:AI可以将IDi的公钥(Pi,Vi)替换为(Pi,Vi)

    (8) 签名询问:当AI(IDi,Mi,Δ)签名询问时,若IDiIDj,则正常签名,C随机选取riZq,计算Ri=riP, Si=riPpub+skili。签名为σi=(Ri,Si)Cσi返回给AI。若IDi=IDj,游戏终止;

    (9) 聚合签名询问:当AI(IDi,Mi,Δ)(1in)聚合签名询问时,若所有用户IDi(1in)都有IDiIDj,则正常签名,C从签名σi=(Ri,Si)中计算R=ni=1Ri, S=ni=1Si,即聚合签名为σ=(R,S), Cσ返回给AI。若存在IDi=IDj(1in),游戏终止;

    伪造阶段 AI经过有限次数的询问后,输出关于(IDi,Mi,σi)(1in)的聚合签名σ=(R,S),其中至少有1个IDi未经过秘密值询问,部分私钥询问和私钥生成询问;至少有1个消息Mi未进行签名询问。当所有用户IDi(1in)都有IDiIDj,游戏终止。若至少有1个IDi(1in)存在IDi=IDj,那么C在 和LD中查询IDi对应记录,等式SP=ni=1[RiPpub+(Pi+Vi+PThi)li]是否成立。成立输出b={Sni=1,ij[riPpub+(xi+yi)li]rjPpub(xj+k)lj}(hjlj)1;否则,C未解决困难问题。

    计算困难问题过程如下:

    SP=ni=1[RiPpub+(Pi+Vi+PThi)li]=ni=1,ij[riPPpub+(xiP+yiPhiPT+PThi)li]+rjPPpub+(xjP+kP+bPhj)lj
    (1)
    S=ni=1,ij[riPpub+(xi+yi)li]+rjPpub+(xj+k)lj+bhjlj
    (2)
    b={Sni=1,ij[riPpub+(xi+yi)li]rjPpub(xj+k)lj}(hjlj)1
    (3)

    综上所述,若AI成功伪造一个聚合签名,则C便可以通过AI求得b,即C成功地解决了DLP问题,而DLP问题是一个困难问题,故本方案具有不可伪造性。 证毕

    定理2 在随机语言模型中,攻击者AΠ在自适应选择消息攻击下,依赖离散对数困难问题,存在不可伪造性。若攻击者AΠ能够以一个不可忽略的PPT内成功伪造一个有效聚合签名,则存在挑战者C能够以不可忽略的优势在多项式时间内解决DLP问题。

    证明 攻击者AΠ已知元组(P,bP),伪造有效的聚合签名。挑战者C利用AΠ求困难问题,解b的值。假定目标用户IDjCAΠ交互过程如下:

    系统初始化阶段 挑战者C建立系统模型,执行系统建立算法,生成系统公开参数params={G,q,P,PT,H,H1}和系统主密钥λ,系统公钥PT=λP。生成随机数PpubZq作为用户的共享公钥,挑战者C将系统公开参数params,系统主密钥λPpub发送给敌手AΠ

    询问阶段 在此阶段中,挑战者C建立维护表LH,LH1,LX,LY,LSK,LPK,记录下询问过程。其中表的初始值均为空。在AΠ询问阶段与AI询问阶段相比较而言,少了公钥替换询问,在部分私钥询问阶段有所不同,其他地方不变。部分私钥询问过程如下:

    部分私钥询问:当AΠIDi的部分私钥询问时,首先C检查LY(IDi,hi,Vi,yi)表,当LY表已包含yi时,将yi返回给AΠ;若IDiIDj, C随机选择yiZq,计算,Vi=yiPhiPT,将yi返回给AΠ并更新LY记录;若IDi=IDj, C随机选择bZq,计算Vi=bP,将yi返回给AΠ并更新LY记录。

    伪造阶段 AΠ经过有限次数的询问后,输出关于(IDi,Mi,σi)(1in)的聚合签名σ=(R,S),其中至少有1个IDi未经过秘密值询问,部分私钥询问和私钥生成询问;至少有一个消息Mi未进行签名询问。当所有用户IDi(1in)都有IDiIDj,游戏终止。若至少有1个IDi(1in)存在IDi=IDj,那么CLH,LH1,LSK,LPKLD中查询IDi对应记录,等式SP=ni=1[RiPpub+(Pi+Vi+PThi)li]是否成立。成立输出b={Sni=1,ij[riPpub+(xi+yi)li]rjPpub(xj+PThj)lj}lj1;否则,C未解决困难问题。

    计算困难问题过程如下:

    SP=ni=1[RiPpub+(Pi+Vi+PThi)li]=ni=1,ij[riPPpub+(xiP+yiPhiPT+PThi)li]+rjPPpub+(xjP+bP+PThj)lj
    (4)
    S=ni=1,ij[riPpub+(xi+yi)li]+rjPpub+(xj+PThj)lj+blj
    (5)
    b={Sni=1,ij[riPpub+(xi+yi)li]rjPpub(xj+PThj)lj}lj1
    (6)

    综上所述,若AΠ成功伪造一个聚合签名,则C便可以通过AΠ求得b,即C成功地解决了DLP问题,而DLP问题是一个困难问题,故本方案具有不可伪造性。 证毕

    本协议中,对于所签署的合同,可以是不同版本,也可以是相同版本的合同。协议包括区块链下由签署方签名聚合生成的可验证聚合签名和区块链上签署方临时私钥的交换过程。整个过程中,由于签名过程链下执行,合同的内容和敏感信息不予公布,从而保证了该协议的隐私性,而各个签署方的临时私钥的公开过程在区块链上执行,保证了该协议的公平性。由于区块链上公开的是临时私钥,也保证了用户前向和后向合同签署的安全性,多方合同签署的过程如下。

    本阶段中,各签署方在链下针对已经达成一致的合同信息,通过执证无证书聚合可验证签名方案,生成聚合签名σ,若验证签名有效,则进入区块链链上阶段,否则协议停止。如下:

    (1) 各签署方对合同信息M达成一致;

    (2) 各签署方执证无证书聚合可验证签名方案,生成聚合签名σ

    (3) 验证签名是否有效,若通过验证进入区块链链上阶段,否则协议停止。

    各签署方已经在链下对合同签署了一个有效的聚合签名,在本阶段包括预备、提交保证金、索得保证金和失败4部分组成。各签署方将公开自己的临时私钥。为了公平的释放或获取签署方的私钥,各签署方首先预存一定数额的保证金,当签署方公开有效的临时私钥后可赎回担保金,一旦有签署方出现不诚实的行为,此签署方将失去所提交的担保金额,并将奖励给其他签署方。具体过程如下:

    (1) 预备(preparation):为链上公开临时私钥做准备。

    (a) 各签署方协商释放临时私钥的顺序,假设释放顺序为U1,U2,···,Un

    (b) 约定签署方U1指定价值为dB的交易T1

    (c) 对于i{2,3,···,n},签署方Ui指定价值为(n1)dB的交易Ti

    (d) 交易时间锁t1<t2<···<tn

    (2) 提交保证金(deposit):各签署方首先预存一定数额的保证金。

    签署方U1指定价值为dB的交易T1,将T1作为输入生成deposit交易并全网广播,如图1所示。

    图 1  交易T1

    对于i{2,3,···,n},签署方Ui指定价值为(i1)dB的交易Ti,将Ti作为输入生成deposit交易并全网广播,如图2所示。

    图 2  交易Ti

    (3) 索得担保金(claim):在有效的时间内,各签署方诚实地释放所拥有的临时私钥后可拿回保证金。

    (a) 当in时,在有效的时间内,前一个签署方诚实地释放所拥有的临时私钥后,可从下一个签署方处获得dB;

    (b) 当i=n时,Un诚实地释放临时私钥后从U1处获得dB

    (4) 失败(refund):若出现Ui在有效的时间内未诚实释放临时私钥,则U1,U2,···,Ui1均可获得相应的补偿。

    (a) 当i=1时,U1在有效的时间内未诚实释放临时私钥,各签署方拿回其担保金,协议结束;

    (b) 当i1时,若签署方Ui为首个在有效的时间内未诚实释放临时私钥,则Ui+1,Ui+2,···,Un赎回各自的担保金,而Ui失去所提交的担保金(i2)dB,这笔金额将奖励给U2,U3,···,Ui1每人获得dB。由于未成功共享各签署方的临时私钥,所以Un未获得U1的奖励dB,故Ui无需再次奖励U1

    提取 若各签署方正确有效地在区块链上公开自己的临时私钥xi,则各签署方均可获得所有临时私钥,便可计算出共享密钥xpub,由此可从聚合签名中提取出普通签名。

    (1) 各签署方计算共享密钥xpub=ni=1xi

    (2) 各签署方从σi中提取普通签名σi=(Ri,Si), Si=SiRixpub

    假设攻击者A在不知道共享密钥xpub的情况下,能够从某一签署者的签名σ=(Ri,Si)中提取普通签名σi=(Ri,Si),可归约为解决CDH困难问题,在已知P, Ri=riPPpub=xpubP时,由Si=riPpub+skili,得SiSi=riPpub=rixpubP,攻击者A需要计算出rixpubP,而这一结果违背了CDH困难问题。故在本方案中可验证签名具有不透明性。

    本方案中的验证者可为签名的任意参与者(合同的签署方)。当所有签署方都诚实地签署合同,并在区块链上公布自己的临时私钥xi,则所有的签署方均可计算共享密钥xpub。故任意签署方可以从其他任意签署方签名σ=(Ri,Si)中提取其普通签名σi=(Ri,Si),即Si=SiriPpub=SiRixpub

    在多方合同签署的过程中,系统的安全性由链上和链下同时保证,文中第4节安全性证明已证在区块链链下,各签署方签署聚合签名时的正确性和安全性。在区块链上部分,由区块链的性质保证了签署方所公开的临时密钥真实有效地上传至区块链,保证了链上部分的安全性。而所有签署方公开的仅为临时密钥,所以在合同签署的过程中,同时保证了所有签署者的隐私安全,也不影响其之前签署合同的有效性。

    多方合同签署的过程中的公平性主要体现在签署方是否是诚实的用户。

    (1) 所有签署方均是诚实的用户,则各签署方在链下可以得到关于合同的聚合签名,在链上经过诚实地公开自己的临时私钥,各签署方获得所有参与者的临时私钥,即可得到共享密钥,由共享密钥可从聚合签名中提取普通签名;

    (2) 签署方中存在不诚实的用户,若各签署方在链下签名时,存在未能正确签署的签名信息时,则不能通过签名验证,即签署合同失败。若各签署方在链上公开临时私钥时,存在不诚实的行为,未能诚信地公开临时私钥,则首个不诚实者失去所提交的保证金,这笔担保金将补偿给前面已公开临时私钥的签署方,后续签署者赎回担保金。

    综上若多方合同签署的过程中,签署方诚实地执行合同签署的全过程,则合同签署成功。若存在不诚实的签署者,则合同签署失败,不诚实者将付出代价用以补偿已公开临时私钥的签署者。

    分析本协议的效率并与其它合同签署协议作比较,如表1所示。其中,n为签署方的数量,e为一次双线性对运算,sG中1次标量乘运算,h为1次哈希运算。

    表 1  本协议与现有协议比较
    协议签署方第三方签名验证次数签名验证开销
    文献[9]223e+1s+1h
    文献[10]nn(2n+1)e+ns+nh
    文献[12]n1(4n+1)e+(2n+1)h
    本协议n1(3n+2)s+2nh
    下载: 导出CSV 
    | 显示表格

    表1可以看出在这几个合同签署协议中文献[9]是两者在第三方的参与下签署合同,经过两次签名验证。文献[10,12]和本协议均是多方合同签署协议,文献[10]借助了第三方的参与,且验证次数和签署方的数目一致。文献[12]和本协议抛却第三方,直接是签署方直接签署合同,只验证1次聚合签名就可以。但是文献[9,10,12]均采用双线性对运算,而本协议采用离散对数运算。同等条件下耗时较少,运行1次双线性对约是模指数运算的2倍,是点乘运算的20倍[15]。所以本协议大大提高了签名过程中的运算效率。

    本文提出一个高效的多方合同签署协议,利用区块链技术替换第三方参与的合同签署协议分为了链下和链上两部分,在保证安全性的前提下,用提高链下聚合签名算法的效率来提高整体合同签署的效率。但该协议理论上还存在其他的优化方式,这是接下来要研究的方向。

  • 图  1  交易T1

    图  2  交易Ti

    表  1  本协议与现有协议比较

    协议签署方第三方签名验证次数签名验证开销
    文献[9]223e+1s+1h
    文献[10]nn(2n+1)e+ns+nh
    文献[12]n1(4n+1)e+(2n+1)h
    本协议n1(3n+2)s+2nh
    下载: 导出CSV
  • BLUM M. How to exchange (secret) keys[C]. The Fifteenth Annual ACM Symposium on Theory of Computing, Boston, USA, 1983: 440–447.
    Al-RIYAMI S S and PATERSON K G. Certificateless public key cryptography[C]. The 9th International Conference on the Theory and Application of Cryptology and Information Security, Taipei, China, 2003: 452–473.
    BONEH D, GENTRY C, LYNN B, et al. Aggregate and verifiably encrypted signatures from bilinear maps[C]. 2003 International Conference on the Theory and Applications of Cryptographic Techniques, Warsaw, Poland, 2003: 416–432.
    周彦伟, 杨波, 张文政. 高效可证安全的无证书聚合签名方案[J]. 软件学报, 2015, 26(12): 3204–3214. doi: 10.13328/j.cnki.jos.004830

    ZHOU Yanwei, YANG Bo, and ZHANG Wenzheng. Efficient and provide security certificateless aggregate signature scheme[J]. Journal of Software, 2015, 26(12): 3204–3214. doi: 10.13328/j.cnki.jos.004830
    曹素珍, 郎晓丽, 刘祥震, 等. 可证安全的高效无证书聚合签名方案[J]. 信息网络安全, 2019, 19(1): 42–50. doi: 10.3969/j.issn.1671-1122.2019.01.006

    CAO Suzhen, LANG Xiaoli, LIU Xiangzhen, et al. Probably secure and efficient certificateless aggregate signature scheme[J]. Netinfo Security, 2019, 19(1): 42–50. doi: 10.3969/j.issn.1671-1122.2019.01.006
    许芷岩, 吴黎兵, 李莉, 等. 新的无证书广义指定验证者聚合签名方案[J]. 通信学报, 2017, 38(11): 2017220.

    XU Zhiyan, WU Libing, LI Li, et al. New certificateless aggregate signature scheme with universal designated verifier[J]. Journal on Communications, 2017, 38(11): 2017220.
    苏靖枫, 柳菊霞. 不含双线性对的高效无证书聚合签密方案[J]. 计算机应用, 2018, 38(2): 374–378. doi: 10.11772/j.issn.1001-9081.2017081984

    SU Jingfeng and LIU Juxia. Efficient certificateless aggregate signcryption scheme without bilinear pairings[J]. Journal of Computer Applications, 2018, 38(2): 374–378. doi: 10.11772/j.issn.1001-9081.2017081984
    WAN Zhiguo, DENG R H, and LEE D. Electronic contract signing without using trusted third party[C]. Proceedings of the 9th International Conference on Network and System Security, New York, USA, 2015: 386–394.
    田海博, 何杰杰, 付利青. 基于公开区块链的隐私保护公平合同签署协议[J]. 密码学报, 2017, 4(2): 187–198.

    TIAN Haibo, HE Jiejie, and FU Liqing. A privacy preserving fair contract signing protocol based on block chains[J]. Journal of Cryptologic Research, 2017, 4(2): 187–198.
    吴进喜, 高莹, 张宗洋, 等. 基于区块链的多方隐私保护公平合同签署协议[J]. 信息安全学报, 2018, 3(3): 8–16.

    WU Jinxi, GAO Ying, ZHANG Zongyang, et al. A multi-party privacy preserving fair contract signing protocol based on blockchains[J]. Journal of Cyber Security, 2018, 3(3): 8–16.
    HUANG Hui, LI K C, and CHEN Xiaofeng. A fair three-party contract singing protocol based on blockchain[C]. The 9th International Symposium on Cyberspace Safety and Security, Xi’an, China, 2017: 72–85.
    高莹, 吴进喜. 基于区块链的高效公平多方合同签署协议[J]. 密码学报, 2018, 5(5): 556–567.

    GAO Ying and WU Jinxi. Efficient multi-party fair contract signing protocol based on blockchains[J]. Journal of Cryptologic Research, 2018, 5(5): 556–567.
    周彦伟, 杨波, 王青龙. 安全的无双线性映射的无证书签密机制[J]. 软件学报, 2017, 28(10): 2757–2768. doi: 10.13328/j.cnki.jos.005150

    ZHOU Yanwei, YANG Bo, and WANG Qinglong. Secure certificateless signcryption scheme without bilinear pairing[J]. Journal of Software, 2017, 28(10): 2757–2768. doi: 10.13328/j.cnki.jos.005150
    韦性佳, 张京花, 刘增芳, 等. 具有前向安全性质的基于身份的聚合签名方案[J]. 计算机科学, 2018, 45(6A): 387–391.

    WEI Xingjia, ZHANG Jinghua, LIU Zengfang, et al. Identity based aggregate signature scheme with forward security[J]. Computer Science, 2018, 45(6A): 387–391.
    王亚飞, 张睿哲. 强安全无对的无证书签名方案[J]. 通信学报, 2013, 34(2): 94–99. doi: 10.3969/j.issn.1000-436x.2013.02.011

    WANG Yafei and ZHANG Ruizhe. Strongly secure certificateless signature scheme without pairings[J]. Journal on Communications, 2013, 34(2): 94–99. doi: 10.3969/j.issn.1000-436x.2013.02.011
  • 期刊类型引用(5)

    1. 杨小东,李梅娟,任宁宁,田甜,王彩芬. 一种基于无证书的多方合同签署协议的安全性分析与改进. 电子与信息学报. 2022(10): 3627-3634 . 本站查看
    2. 门嘉卫,赖成喆. 带有激励机制的车联网合作下载信任管理方案. 计算机工程与应用. 2021(05): 100-106 . 百度学术
    3. 谢国涛,王首媛,陈礼波. 基于无证书密码体制和区块链结合的物联网设备访问控制方案研究. 邮电设计技术. 2021(07): 31-35 . 百度学术
    4. 李佩丽,徐海霞. 区块链用户匿名与可追踪技术. 电子与信息学报. 2020(05): 1061-1067 . 本站查看
    5. 余荣威,周博孝,王丽娜,朱欣焰,谢辉华,谢红军. 基于区块链的零知识位置证明方法研究. 电子与信息学报. 2020(09): 2142-2149 . 本站查看

    其他类型引用(9)

  • 加载中
图(2) / 表(1)
计量
  • 文章访问数:  2917
  • HTML全文浏览量:  1467
  • PDF下载量:  109
  • 被引次数: 14
出版历程
  • 收稿日期:  2019-03-21
  • 修回日期:  2019-06-25
  • 网络出版日期:  2019-07-09
  • 刊出日期:  2019-11-01

目录

/

返回文章
返回