当前位置: 首页 > 专利查询>武汉大学专利>正文

利用零知识证明协议证明交易金额处于某个区间的方法技术

技术编号:21400941 阅读:40 留言:0更新日期:2019-06-19 07:31
本发明专利技术公开了一种利用零知识证明协议证明交易金额处于某个区间的方法。交易发起者首先把交易金额用FO承诺进行隐藏,所述承诺作为交易密文的一部分。然后利用该承诺、一个承诺所隐藏秘密为平方数的零知识证明协议,两个承诺隐藏相等秘密的零知识证明协议,CFT范围零知识证明协议构造交易金额处于某个区间的零知识证据,之后把上述承诺及证据发送给区块链系统。区块链的节点利用接收的数据,执行零知识验证协议,验证交易金额处于声称的区间内。如果一切验证合法,则把交易记载到区块链系统,如果验证不合格,则交易不合格。该发明专利技术在支持密文同态运算的同时,能够零知识证明密文状态的交易金额处于某个区间内,保证交易金额的隐私。

【技术实现步骤摘要】
利用零知识证明协议证明交易金额处于某个区间的方法
本专利技术属于信息安全
,涉及一种零知识证明协议及证明交易金额处于某个区间方法,特别设计一种零知识证明协议及利用该协议证明区块链中加密的交易金额x处于某个区间[a,b]的方法。
技术介绍
零知识证明(Zero-KnowledgeProof),是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。大量事实证明,零知识证明在密码学中非常有用。如果能够将零知识证明用于验证,将可以有效解决许多问题。零知识证明起源于最小泄露证明。设P表示掌握某些信息,并希望证实这一事实的实体,设V是证明这一事实的实体。假如某个协议向V证明P的确掌握某些信息,但V无法推断出这些信息是什么,我们称P实现了最小泄露证明。不仅如此,如果V除了知道P能够证明某一事实外,不能够得到其他任何知识,我们称P实现了零知识证明,相应的协议称作零知识协议。假设A想向警察局证明他很年轻可以考驾证,但又不想泄露自己的实际年龄。A可以提交一个承诺以说明他的年龄确实属于一个合法的区间。这是一个零知识证明某个数字属于一个区间的问题。目前已经有许多的工具与方法用于实现上述目的。下面我们设n是一个正的大合数,其素数分解未知,g是中阶数很大的一个元素,h是由g生成的一个元素,且满足以h为底g的对数,以g为底h的对数都未知。Fujisaki-Okamoto承诺:定义基于(g,h,n)的(x,r)的F0承诺为E(x,r)=gxhrmodn,其中r是从[-2sn+1,2sn-1]随机选择的一个随机数,x表示待隐藏的数,n是系统参数,如上定义,s是安全参数,是一个大小确定的自然数。用于证明两个承诺E、F里包含同一个秘密的证据PK(x,r1,r2:EandF):A拥有x∈[0,b],令E=E1(x,r1),F=E2(x,r2)是两个对x的承诺,A想向其他人证明他知道生成两个承诺E,F的x,r1,r2。证据如下生成:(1)A随机生成整数ω∈[1,2l+tb-1],计算其中,l,t,s1,s2是四个安全参数,是大小确定的自然数;(2)A计算c=H(W1||W2),其中H()表示hash计算;(3)A计算D=ω+cx,D1=η1+cr1,D2=η2+cr2;(4)(c,D,D1,D2)构成证据以证明E,F包含了同一个数,其他人校验成立即可。用于证明一个承诺所包含的数是平方数的证据PK(x,r1:E):设x∈[0,b],令E=E(x2,r1)是对的一个承诺,A想向其他人证明他知道生成E的x,r1,且E隐藏了一个平方数,其证据生成如下:(1)A选择随机数r2∈[-2sn+1,2sn-1],并计算F=E(x,r2),其中s是安全参数,是大小确定的自然数;(2)接着,A计算r3=r1-r2x.则r3∈[-2sbn+1,2sbn-1],计算(3)E是基于(F,h,n)构造的,对x的承诺,而F是基于(g,h,n)构造的,对x的承诺,A产生证据PK(x,r2,r3:F,E)以证明F,E包含同样的秘密x,A求得(c,D,D1,D2);(4)(F,c,D,D1,D2)构成证据以证明承诺E隐藏了一个平方数。用于证明一个承诺隐藏的数属于某个区间的CFT证据PKcft(x,r:Eandx∈[-2t+lb,2t+lb]):设E(x,r)=gxhrmodn是基于(g,h,n)对x∈[0,b]的一个承诺,其中r是从[-2sn+1,2sn-1]随机选择的一个整数。其证据生成方式如下:(1)A选取随机数ω∈[0,2t+lb-1],η∈[-2t+l+sn+1,2t+l+sn-1],并计算w=gωhηmodn,其中t,l,s是安全参数,是大小确定的自然数;(2)接着计算C=H(W),c=Cmod2t,其中H()表示hash函数;(3)最后A计算D1=ω+xc,D2=η+rc。如果D1∈[cb,2t+lb-1],则(C,D1,D2)构成证据,其他人验证D1∈[cb,2t+lb-1]成立,成立,就可以确信x∈[-2t+lb,2t+lb]。基于上述的基本工具,Boudot提出了一种有效的证据用于证明一个承诺的数位于某个区间[a,b]。近年来,随着bitcoin的走高,其背后的区块链技术被人们所认识。区块链公链的交易具有公开透明的特点,但也带来一些隐私问题。零知识证明,多方计算等密码技术被用于保护交易的隐私。
技术实现思路
为了解决区块链公链的交易中的隐私问题,本专利技术开拓性地提出了一种利用零知识证明协议证明交易金额处于某个区间的方法。本专利技术所采用的技术方案是:一种利用零知识证明协议证明交易金额处于某个区间的方法,其特征在于,包括以下步骤:步骤1:设待加密的交易金额为x,已知x∈[a,b]且x为整数,b-a≥22(t+l)+1,其中,安全参数t、l是大小确定的自然数;N为一个正的合数且其素数分解未知,且g有一个大阶数,h是由g生成的一个元素,且满足以h为底g的对数,以g为底h的对数都未知;基于(g,h,N)为(x,r)构造承诺E(x,r)=gxhrmodN,其中随机整数r∈[-(2sN+1),(2sN+1)],安全参数s是一个确定大小的自然数;步骤2:零知识范围证明的构造;计算c1=g-aE(x,r)modN=gx-ahrmodN,c2=gbE(x,r)-1modN=gb-xh-rmodN;Xlower=x-a;Xupper=b-x;其中,cprime与c2隐藏了同样的秘密Xupper,其证据为PK(Xupper,r1,r2:cprimeandc2),其中r1=rXupper+rprime,r2=-r,g1=gXlower,g2=g,h1=h2=h,随机整数rprime∈[-(2sN+1),(2sN+1)];记:m=(x-a)(b-x)=XupperXlower;其中表示不大于的最大整数;其中m3=m-m1-m2;r′=rXupper+rprime;r′=r1+r2+r3,其中,r1,r2∈[-N,N];基于(g,h,N)构造cprime1=E(m1,r1),cprime2=E(m2,r2),cprime3=E(m3,r3);为证明承诺cprime1,cprime2各自隐藏一个平方数,分别构造证据PK(m0,r1:cprime1),PK(mm0,r2:cprime2);记T=b-a-1;m′3=m32t+l;r3′=r32t+l;基于(g,h,N)构造PKcft(m′3,r′3:E=E(m′3,r′3)andm′3∈[-2t+lT,2t+lT]),以证明m3∈[-T,T]的范围;步骤3:在构造完成之后,将用于证明PK(x,r:E=E(x,r)andx∈[a,b]的所有证据发送给校验方;PK(Xupper,r1,r2:cprimeandc2),PK(m0,r1:cprimel),PK(mm0,r2:cprime2),PKcft(m′3,r′3:E=本文档来自技高网
...

【技术保护点】
1.一种利用零知识证明协议证明交易金额处于某个区间的方法,其特征在于,包括以下步骤:步骤1:设待加密的交易金额为x,已知x∈[a,b]且x为整数,b‑a≥2

【技术特征摘要】
1.一种利用零知识证明协议证明交易金额处于某个区间的方法,其特征在于,包括以下步骤:步骤1:设待加密的交易金额为x,已知x∈[a,b]且x为整数,b-a≥22(t+l)+1,其中,安全参数t、1是大小确定的自然数;N为一个正的合数且其素数分解未知,且g有一个大阶数,乃是由g生成的一个元素,且满足以乃为底g的对数,以g为底乃的对数都未知;基于(g,乃,N)为(x,r)构造承诺E(x,r)=gxhrmodN,其中随机整数r∈[-(2sN+1),(2sN+1)],安全参数s是一个确定大小的自然数;步骤2:零知识范围证明的构造;计算c1=g-aE(x,r)modN=gx-ahrmodN,c2=gbE(x,r)-1modN=gb-xh-rmodN;Xlower=x-a;Xupper=b-x;其中,cprime与c2隐藏了同样的秘密Xupper,其证据为PK(Xupper,r1,r2:cprimeandc2),其中r1=rXupper+rprime,r2=-r,g1=gXlower,g2=g,h1=h2=h,随机整数rprime∈[-(2sN+1),(2sN+1)];记:m=(x-a)(b-x)=XupperXlower;其中表示不大于的最大整数;其中m3=m-mi-m2;r=rXupper+rprime;r′=r1+r2+r3,其中,r1,r2∈[-N,N];基于(g,h,N)构造cprime1=E(mi,r1),cprime2=E(m2,r2),cprime3=E(m3,r3);为证明承诺cprime1,cprime2各自隐藏一个平方数,分别构造证据PK(m0,r1:cprime1),PK(mm0,r2:cprime2);T=b-a-1;m′3=m32t+l;r3′=r32t+l;基于(g,h,N)构造PKcft(m′3,r′3:E=E(m′3,r′3)andm′3∈[-2t+lT,2t+lT]),以证明m3∈[-T,T]的范围;步骤3:在构造完成之后,将用于证明PK(x,r:E=E(x,r)andx∈[a,b]的所有证据发送给校验方;PK(Xupper,r1,r2:cprimeandc2),PK(m0,r1:cpr...

【专利技术属性】
技术研发人员:王志鹏杨敏孟庆树
申请(专利权)人:武汉大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1