CN109862046A - 一种联盟链中可追溯匿名方法 - Google Patents
一种联盟链中可追溯匿名方法 Download PDFInfo
- Publication number
- CN109862046A CN109862046A CN201910285666.9A CN201910285666A CN109862046A CN 109862046 A CN109862046 A CN 109862046A CN 201910285666 A CN201910285666 A CN 201910285666A CN 109862046 A CN109862046 A CN 109862046A
- Authority
- CN
- China
- Prior art keywords
- account
- tee
- signature
- user
- algorithm
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000013475 authorization Methods 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 claims abstract description 18
- 238000012795 verification Methods 0.000 claims description 17
- 238000012550 audit Methods 0.000 claims description 13
- 230000000694 effects Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 10
- 238000012423 maintenance Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000012797 qualification Methods 0.000 description 2
- 230000003014 reinforcing effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000205585 Aquilegia canadensis Species 0.000 description 1
- 241000196324 Embryophyta Species 0.000 description 1
- 238000013474 audit trail Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping 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
- 238000004088 simulation Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种联盟链中可追溯匿名方法,包括:用户向审计中心提交账号u,审计中心通过审批后以私钥对u进行签名授权;用户以通过审批的账号u为基础,将u以及安全系数n作为输入,生成匿名账号集合;用户选择任意匿名账户ui,将ui提交至账号中心;账号中心对ui的有效性进行验证,将其公布于联盟链;用户以ui作为交易账号,对交易进行签名授权;审计中心可以在任意时刻对已提交至账号中心的匿名账号ui进行解密,追溯定位至匿名账号的原始账号u。本发明允许用户本地独立生成新的匿名账户。审计方拥有对匿名账户的追溯解密能力,定位对应的原始账户。保证了用户身份的不可伪造性,并允许任何人对用户生成匿名账户过程的完整性有效性进行验证。
Description
技术领域
本发明涉及一种联盟链中可追溯匿名方法,属于区块链中信息安全技术领域。
背景技术
以区块链为核心技术的比特币等去中心化的数字货币已经有了较大的普及度。比特币的成功是建立在其创新性的核心技术区块链技术之上。区块链是一个去中心化运行的系统,信息一经记录在区块链上,经过一段时间便会被认为不可篡改。区块链技术的应用帮助比特币解决了数字货币中经典的双花问题。也正是由于比特币的成功使得外界开始对其核心的区块链技术产生了浓厚的兴趣。
目前主流的区块链分为两种类型,分别为公有链和联盟链。现在较为流行的比特币等主流数字货币大多都是基于公有链之上。公有链与联盟链的不同点在于其内部维护节点的准入机制。公有链是无准入机制,即任何人都可以随时参与到维护区块链的过程之中,不需要额外的资格申请。对应的在比特币系统中,维护节点即所谓的矿工并不存在资格限制,任何人都可以通过在本地机器部署比特币的代码程序参与到比特币系统的维护之中。而联盟链则是存在准入机制,所有参与区块链维护的节点都需要经过中心的认证准许之后,才有资格参与系统的维护。也因为二者相对应的背景不同,所采用的共识协议以及处理的业务也不尽相同。
由于区块链的信息被各个互不信任的节点在本地大量复制并被验证信息的正确有效性,因此区块链上的信息都是公开的。信息的公开导致用户的很多使用信息直接暴露在区块链上,这其中存在许多的隐私风险。在公有链上,已经提出了许多加强隐私的手段,常见的有通过零知识证明达到信息完全匿名的零币,通过环签名以及生成一次性账户的门罗币,以及混币等各种技术。相关的公有链保护隐私的技术可以直接应用在联盟链中来强化用户的隐私。但联盟链中,普遍存在着一个公有链并不存在的问题,即很多场景下联盟链中会存在一个审计中心,要求对信息进行审计追踪。而通过传统的公有链的手段,通常需要用户自己主动提供相关的信息才可进行身份信息的解密,但是联盟链的某些场景下,这种依赖于用户的配合的审计模式是不可取的。审计中心的审计不应该需要用户的配合,审计中心可通过区块链上的信息直接进行回溯解密,达到审计的目的。
在一个公有链中,大多数用户采用的最经典的强化隐私的做法是用户本地生成多个账户,并且在各个场景中使用这些互不相关的账户。尽管这个做法相当直接,但是在要求可以进行审计的联盟链中,审计方难以直接将这些用户本地生成的账户同用户本身进行直接的关联。针对这种场景,本发明提出了一种联盟链中可追溯匿名方案。
发明内容
发明目的:针对现有技术中存在的问题与不足,本发明提供一种联盟链中可追溯匿名方法,特别是一种联盟链中基于SGX的可追溯匿名方法,方法中,审计方对信息的解密不需要依赖用户主动提供信息,且不需要审计方参与用户生成新的匿名身份,用户可以本地独立生成新的匿名账户。本发明方法保证了用户身份的不可伪造性,并允许任何人对用户生成匿名账户过程的完整性有效性进行验证。
技术方案:一种联盟链中可追溯匿名方法,包括如下内容:
1)用户向审计中心提交账号u,审计中心通过审批后以私钥对u进行签名授权;设审计中心批准授权的账号集合为V,有u∈V;
2)用户以通过审批的账号u为基础,将u以及安全系数n作为输入,生成匿名账号集合U=(u1,u1,…,uk);用户选择任意匿名账户ui∈U,将其作为用户的交易用匿名账号,并将ui提交至账号中心;
3)账号中心对ui的有效性进行验证,将其公布于联盟链;
4)用户以ui作为交易账号,对交易进行签名授权;
5)审计中心可以在任意时刻对已提交至账号中心的匿名账号ui进行解密,追溯定位至匿名账号的原始账号u,该过程设为AccDec(ui)=u。
所述3)中,账号中心对ui的有效性进行验证,将其公布于联盟链;公布后,联盟链上任意角色都有可以对ui的有效性进行验证;匿名账号有效性的验证算法,设为AccVerify(ui),当ui∈U,且u∈V时算法输出true,否则输出false。
所述4)中,用户以ui作为交易账号,对交易进行签名授权,设签名授权过程为TxSign(ui,tx);系统中的任意角色都有能力对ui授权的交易进行有效性正确性的验证;设交易验证过程为TxVerify(ui,tx),其中tx为ui授权的某笔具体的交易,交易有效时算法输出true,否则输出false。
所述方法包括用户、审计中心以及账号中心三个角色,审计中心不参与日常业务的场景,用户、审计中心和账号中心可不同时在线。
通过借助SGX实现可信执行环境,将整个可信执行环境抽象为一个算法集合∑TEE,在可信执行环境进行初始化结束后,会生成有密钥对(pkTEE,skTEE),将这个密钥对定义为可信执行环境的主公钥和主私钥;可信执行环境中对应SGX中的Enclave级操作分为TEE.install以及TEE.resume;前者TEE.install属于Enclave的初始化,将Enclave中的程序代码prog作为输入,初始实例化结束后会输出对应实例Enclave的eid;初始化结束后的Enclave执行TEE.resume,其中输入eid指定对应的Enclave实例,输入指定的功能函数fun以及函数所需的参数args,Enclave将会输出对应的结果outp,同时附带硬件的签名证明σTEE=∑TEE.Sig(skTEE,(prog,outp));
将
[outp,σTEE]:=TEE.resume(eid,fun,args)
简化为
[outp,σTEE]:=EF(args)。
可信执行环境生成的硬件签名σTEE有∑TEE.Vf(pkTEE,prog,outp,σTEE),该函数当σTEE有效时函数输出1,否则输出0;σTEE的有效条件为outp,是主公钥为pkTEE且载入了程序片段prog的Enclave的输出结果;设可信硬件是正确且可信的,即设∑TEE.Vf(pkTEE,prog,outp,σTEE)的结果是绝对正确的。
算法1(原始账号初始化申请授权):
输入:用户的原始账号pku,其中pku来自(pku,sku)←∑.KGen(1λ);
输出:审计中心授权的签名σA;
1)审计中心验证用户原始账号pku是否符合规定要求;
2)运行签名算法,通过密钥skA对申请的用户账号pku进行签名授权,获取签名σA;即,σA←∑.Sig(skA,pku);
3)输出返回σA;
算法1为内容1)的具体细节;内容1)中用户需要本地生成一个密钥对,并将公钥pku作为自己的原始账号提交至审计中心;审计中心通过检查后,签名授权该账号,允许该账号进行联盟链上的交易,并将自己的授权签名σA返回给用户。
算法2(可信执行环境SEnc):
输入:用户的原始账号pku,审计中心的授权签名σA,用户的公共参数Ppub,用户的签名信息σu;
输出:原始账号加密信息ue,硬件签名σTEE;
1)运行签名验证算法,通过密钥pku验证σu是否是内容(pku,PPub)的有效签名;即,∑.Vf(pku,σu,(pku,PPub))是否通过;
2)运行签名验证算法,通过密钥pkA验证σA是否是内容(pku)的有效签名;即,∑.Vf(pkA,σA,pku)是否通过;
3)运行加密算法,使用密钥pkA对原始账号pku进行加密生成密文ue;
即,
4)对内容(Ppub,ue)生成硬件签名σTEE;即,σTEE←∑TEE.Sig(skTEE,Ppub,ue);
5)输出返回ue,σTEE。
算法3(衍生匿名账号Extract):
输入:用户的原始账号密钥对(pku,sku),审计中心的授权签名σA;
输出:原始账号加密信息ue,匿名账号对应的私钥skue,硬件签名σTEE;
1)随机选取s∈Zq并计算Ppub←s·P;
2)运行签名算法,通过密钥sku对内容(pku,PPub)进行签名,生成σu;即,
σu←∑.Sig(sku,(pku,PPub));
3)将原始账号pku,审计中心的授权签名σA用户的公共参数Ppub以及用户对输入内容的签名σu输入可信执行环境Enclave中,执行EF程序,返回原始账号的加密密文ue以及相对应的硬件签名σTEE;即,(σTEE,ue)←EF(pku,σA,Ppub,σu);
4)计算QID←H1(ue);
5)计算本次衍生的匿名账号所对应的私钥skue,skue←s·QID;
6)输出返回(ue,PPub,σTEE)以及skue。
内容2)的具体实现为算法3。用户本地运行算法3,输入原始的账号密钥对以及审计中心的授权签名,算法3会进入可信执行环境SGX的Enclave执行算法2。算法2是部署在SGX的Enclave代码程序,函数接口为SEncEF指用户通过SGX调用实例化后Enclave里函数SEnc的过程。SEnc中判断输入的签名的合法性后,使用审计中心的公钥进行加密生成密文ue,之后将ue同用户的公共参数进行签名绑定。用户本次运行获取的衍生匿名账号为(ue,PPub,σTEE),对应的私钥为skue。用户可以通过多次执行算法3获得多次输出,达到衍生多个匿名账号的效果。
内容3)可以通过SGX提供的验证服务对其硬件签名进行验证,即对应为∑TEE.Vf(pkTEE,EF,(Ppub,ue),σTEE)。输入待验证的匿名账号,并且指定输入程序为算法2指定的EF程序,会返回该硬件签名的有效性。当通过时可认为该匿名账号正确有效。
算法4(交易签名TxSign):
输入:匿名账号对应的私钥skue,待签名的交易tx;
输出:交易的授权签名σue=(R,S);
1)随机选取k∈Zq *;
2)计算R←k·P;
3)计算S←k-1(H2(m)·P+H3(R)·skue);
4)输出返回σue=(R,S)。
算法5(交易验证TxVerify):
输入:用户的匿名账号(ue,PPub,σTEE),待验证的交易(tx,σue);
输出:验证通过true;
1)计算QID←H1(ue);
2)计算e(R,S)以及判断二者是否相等,若不相等则输入的签名非法无效,验证
3)验证通过,返回true。
内容4)中用户使用匿名账号签名TxSign,以及其签名验证TxVerify的实现分别为算法4和算法5。算法4中用户输入匿名账号对应的私钥skue对交易进行签名认证产生σue,任何人都可以使用算法5将交易中的账号(ue,PPub,σTEE)作为公钥,对交易中的签名(tx,σue)进行验证。
内容5)中审计中心的AccDec可以直接使用审计中心的私钥进行原始账号的解密追溯,通过匿名账号(ue,PPub,σTEE)中的ue字段,定位原始账号pku。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
1.本发明涉及的预备知识
1.1双线性对(Bilinear Pairing)
G1和G2是两个阶为素数p的循环群。这两个群存在一个映射关系,可表示为e:G1×G1→G2。g1以及g2为G1和G2的生成元。当e满足以下性质时,e定义为双线性映射:
·双线性性:对于所有的u,v∈G1以及x,y∈Zp,e(ux,vy)=e(u,v)xy成立;
·非退化性:e(g,g)≠1G2,其中1G2为G2的单位元;
·可计算性:对于所有的u,v∈G1,e(u,v)可以在多项式时间内计算出结果。1.2基于身份的签名
一个基于身份的签名方案包含以下四个多项式时间的随机算法:
1)系统参数设置(Setup):输入安全参数k,算法输出系统的主密钥msk以及系统的公共参数mpk。主密钥保密不公开,公开系统的公共参数。
2)用户密钥提取(Extract):输入用户的身份信息ID,系统的主密钥msk,算法输出用户的密钥usk。
3)签名(Sign):输入用户的身份信息ID,欲签名的信息m以及用户的密钥usk,输出m基于ID的签名σ。
4)验证(Verify):输入用户的身份信息ID,信息m,m的签名σ以及系统的公共参数mpk,输出签名σ是否是m基于ID的有效签名。
1.3可信硬件环境
可信执行环境(Trusted Execution Environment,以下简称TEE)为程序提供了可信的执行环境,以保护计算的机密性以及计算的完整性。TEE可以为程序的执行环境生成正确性和完整性的证明(Attestation)。
Intel公司提出的Intel Software Guard Extensions(SGX)是一套基于CPU硬件的TEE实现。SGX搭载于Intel近期型号的CPU,SGX基于CPU提供的一组新指令,为用户级代码提供了硬件保护。SGX中提供的TEE环境称之为enclave,用于执行通用的程序计算。当来自TEE的数据从处理器转移到内存中时,数据会使用仅处理器可知的密钥进行暂时的加密用于转移至内存。所以无论是操作系统,管理员程序和其他的用户都无法访问enclave内存中的数据。SGX支持提供证明验证,即SGX能通过为enclave中的执行程序以及其输出,使用一种仅硬件可知的密钥为其进行签名,提供一个远程证明(Remote Attestation)。SGX提供了安全可靠的证明,除了SGX平台之外的任何实体都不可能生成任何正确的证明,即证明是不可伪造的。
2.本发明技术方案
当前联盟链由于其准入制机制,参与联盟链业务的用户都需要经过批准认证。在一个经典银行业务的联盟链中,用户需要经过银行的开户才被允许使用联盟链进行交易。为了保证联盟链中的验证节点可以对用户的交易进行验证,用户不得不将自己的交易账号直接暴露在联盟链的交易中,导致了用户隐私的直接泄露。用户希望可以以自己开户的账号为基础衍生多个新的账号用于交易,以强化自己的隐私。但若依赖于账号中心进行衍生工作,则需要用户信赖账号中心,而用户若本地独立进行衍生,则无法保证匿名账号的可验证性,为审计带来障碍。
本发明讨论的匿名方案涉及到联盟链中的用户、审计中心以及账号中心三个实体。其中,用户作为联盟链上参与交易的普通用户,希望可以在不使用原始账号的情况下使用匿名账号进行交易。审计中心仅负责对用户的账号进行有效性的背书签名,实际场景中应存在中间角色负责用户身份的上传验证,例如用户在商业银行开户时,由商业银行将用户开户的身份上传至人行请求授权背书。账号中心为联盟链中的账号管理节点,进入联盟链的用户以及维护节点都需通过账号中心的授权批准。
本发明方法主要保护的是用户的账号隐私。本发明中,除了审计中心是可信任的角色之外,任何角色包括联盟链上的账号中心都将视为不可信任。目标为用户的匿名身份仅用户以及审计中心可以解密追溯,其余任何角色都无法解密匿名账号,且需保证除用户本人外,攻击者无法伪造用户的匿名身份,保证匿名身份的不可伪造性。
一种联盟链中可追溯匿名方法,包括如下内容:
1)用户向审计中心提交账号u,审计中心通过审批后以私钥对u进行签名授权;设审计中心批准授权的账号集合为V,有u∈V;V并不对外公开仅审计中心可知。
2)用户以通过审批的账号u为基础,将u以及安全系数n作为输入,生成匿名账号集合U=(u1,u1,…,uk)。设生成匿名账号的算法为Extract(u,n,k)=U。用户选择任意匿名账户ui∈U,将其作为用户的交易用匿名账号,并将ui提交至账号中心。
3)账号中心对ui的有效性进行验证,将其公布于联盟链。公布后,联盟链上任意角色都有可以对ui的有效性进行验证。匿名账号有效性的验证算法,设为AccVerify(ui),当ui∈U,且u∈V时算法输出true,否则输出false。
4)账号中心对ui的有效性验证通过后,用户以ui作为交易账号,对交易进行签名授权,设签名授权过程为TxSign(ui,tx)。系统中的任意角色都有能力对ui授权的交易进行有效性正确性的验证。设交易验证过程为TxVerify(ui,tx),其中tx为ui授权的某笔具体的交易,交易有效时算法输出true,否则输出false。
5)审计中心可以在任意时刻对已提交至账号中心的匿名账号ui进行解密,追溯定位至匿名账号的原始账号u,该过程设为AccDec(ui)=u。
将上述联盟链中可追溯匿名方法设为方案Π。方案Π中涉及到的各个算法过程是本地独立运行而非交互式的,这意味着无论是用户匿名账号的生成,亦或者是对公开的匿名账号的验证,这些过程都要求各个角色之间不存在交互行为。现实场景中普遍存在审计方不参与日常业务的场景,并且各个角色之间并不能保证时刻在线,算法能够独立运行是非常必要的条件。
3.方案实现
a)可信执行环境的建模
通过借助SGX实现一个可信执行环境,保证了计算的保密性和完整性,同时提供外界对结果进行认证的途径。为了更好的对可信执行环境的功能进行诠释,我们对方案Π中涉及到可信执行环境的部分进行了抽象建模。
将整个可信执行环境抽象为一个算法集合∑TEE。在可信执行环境进行初始化结束后,会生成有密钥对(pkTEE,skTEE),将这个密钥对定义为可信执行环境的主公钥和主私钥。该密钥对为硬件级别密钥对,硬件型号对应pkTEE。由于硬件型号群组共享,因此pkTEE公开对所有人已知。可信执行环境中对应SGX中的Enclave级操作分为TEE.install以及TEE.resume。前者TEE.install属于Enclave的初始化,将Enclave中的程序代码prog作为输入,初始实例化结束后会输出对应实例Enclave的eid。初始化结束后的Enclave执行TEE.resume,其中输入eid指定对应的Enclave实例,输入指定的功能函数fun(将程序代码部署在SGX的Enclave中,然后通过配置入口函数调用Enclave中的程序功能,功能函数就是Enclave中程序的API接口)以及函数所需的参数列表args,Enclave将会输出对应的结果outp,同时附带硬件的签名证明σTEE=∑TEE.Sig(skTEE,(prog,outp))。
我们的方案中可信执行环境仅需执行一段特定的代码程序,对应仅需要一个Enclave实例,因此对方案中涉及到的Enclave执行步骤进行简化描述。我们设我们方案在执行时程序prog已经过TEE.install初始化,prog提供的唯一函数接口设为SEnc,将调用Enclave实例的过程
[outp,σTEE]:=TEE.resume(eid,SEnc,args)
简化表述为
[outp,σTEE]:=EF(args)
其中args为函数SEnc所需的参数列表。
可信执行环境生成的硬件签名σTEE有∑TEE.Vf(pkTEE,prog,outp,σTEE),该函数当σTEE有效时函数输出1,否则输出0。σTEE的有效条件为outp,是主公钥为pkTEE且载入了程序片段prog的Enclave的输出结果。设可信硬件是正确且可信的,即设∑TEE.Vf(pkTEE,prog,outp,σTEE)的结果是绝对正确的。
b)方案实现细节
设非对称加密方案(KGen,Enc,Dec)以及数字签名方案∑(KGen,Sig,Vf),两种方案均基于传统RSA算法,保证同一密钥对能够同时进行非对称加密以及数字签名
假设联盟链环境中已初始化生成q阶循环群G1和G2,其中q为素数。双线性对映射e:G1×G1→G2,且有随机选取的P∈G1。H1,H2以及H3为公共的密码散列函数,H1:{0,1}*→G1,H2:{0,1}*→Zq,以及H3:G1→Zq。审计中心有密钥对(pkA,skA)←∑.KGen(1λ),公开审计中心的公钥pkA,KGen(1λ)是数字签名算法中的密钥生成算法,使用RSA作为数字签名算法以及非对称加密算法,函数里面的输入指的就是安全系数即密钥的长度。以上除审计中心的私钥外皆为公共参数对任何人已知。
算法1(原始账号初始化申请授权):
输入:用户的原始账号pku,其中pku来自(pku,sku)←∑.KGen(1λ);
输出:审计中心授权的签名σA;
1)审计中心验证用户原始账号pku是否符合规定要求;
2)σA←∑.Sig(skA,pku);
3)输出返回σA。
算法1为方案Π中内容1)的具体细节。用户需要本地生成一个密钥对,并将公钥pku作为自己的原始账号提交至审计中心。审计中心通过检查后,签名授权该账号,允许该账号进行联盟链上的交易,并将自己的授权签名σA返回给用户。
算法2(可信执行环境SEnc):
输入:用户的原始账号pku,审计中心的授权签名σA,用户的公共参数Ppub,用户的签名信息σu;
输出:原始账号加密信息ue,硬件签名σTEE;
1)验证∑.Vf(pku,σu,(pku,PPub))是否通过;
2)验证∑.Vf(pkA,σA,pku)是否通过;
3)
4)σTEE←∑TEE.Sig(skTEE,Ppub,ue);
5)输出返回ue,σTEE。
算法3(衍生匿名账号Extract):
输入:用户的原始账号密钥对(pku,sku),审计中心的授权签名σA;
输出:原始账号加密信息ue,匿名账号对应的私钥skue,硬件签名σTEE;
1)随机选取s∈Zq并计算Ppub←s·P;
2)σu←∑.Sig(sku,(pku,PPub));
3)(σTEE,ue)←EF(pku,σA,Ppub,σu);
4)QID←H1(ue);
5)skue←s·QID;
6)输出返回(ue,PPub,σTEE)以及skue。
方案Π中内容2)的具体实现为算法3。用户本地运行算法3,输入原始的账号密钥对以及审计中心的授权签名,算法3会进入可信执行环境SGX的Enclave执行算法2。算法2是部署在SGX的Enclave代码程序,函数接口为SEncEF指用户通过SGX调用实例化后Enclave里函数SEnc的过程。SEnc中判断输入的签名的合法性后,使用审计中心的公钥进行加密生成密文ue,之后将ue同用户的公共参数进行签名绑定。用户本次运行获取的衍生匿名账号为(ue,PPub,σTEE),对应的私钥为skue。用户可以通过多次执行算法3获得多次输出,达到衍生多个匿名账号的效果。
方案Π中内容3)可以通过SGX提供的验证服务对其硬件签名进行验证,即对应为∑TEE.Vf(pkTEE,EF,(Ppub,ue),σTEE)。输入待验证的匿名账号,并且指定输入程序为算法2指定的EF程序,会返回该硬件签名的有效性。当通过时可认为该匿名账号正确有效。
算法4(交易签名TxSign):
输入:匿名账号对应的私钥skue,待签名的交易tx;
输出:交易的授权签名σue=(R,S);
1)随机选取k∈Zq *,Zq *表示非0且小于q的整数;
2)R←k·P;
3)S←k-1(H2(m)·P+H3(R)·skue);
4)输出返回σue=(R,S)。
算法5(交易验证TxVerify):
输入:用户的匿名账号(ue,PPub,σTEE),待验证的交易(tx,σue);
输出:验证通过true;
1)QID←H1(ue);
2)验证
3)验证通过,返回true。
方案Π中内容4)中用户使用匿名账号签名TxSign,以及其签名验证TxVerify的实现分别为算法4和算法5。算法4中用户输入匿名账号对应的私钥skue对交易进行签名认证产生σue,任何人都可以使用算法5将交易中的账号(ue,PPub,σTEE)作为公钥,对交易中的签名(tx,σue)进行验证。
方案Π中内容5)中审计中心的AccDec可以直接使用审计中心的私钥进行原始账号的解密追溯,通过匿名账号(ue,PPub,σTEE)中的ue字段,定位原始账号pku。
4.实验结果
我们通过Intel SGX技术实现TEE环境,并使用了斯坦福大学实现的双线性对库PBC,以及密码学常用库Openssl,在配置为Intel I7-6700HQ,内存16GB系统为Ubuntu16.04的设备上对我们的方案进行了编程实现,并对其整体性能进行了评估测试。我们的方案中涉及到审计方的签名以及加密算法采用了经典的RSA技术,双线性对基于椭圆曲线进行实现。
表1是整个方案100次实验之后所取得平均值。其中RSA位数为3072位,双线性对中的元素是阶为512位的素数椭圆曲线y2=x3+x的群上元素。可以通过表1看出,整个过程中,Verify Attestation为验证Enclave硬件签名所消耗的时间。其消耗相较其他过程花费时间相当之高。这是由于SGX的硬件签名验证依赖于Intel提供的线上服务。验证硬件签名需要同Intel远程在线服务器进行通信,时间主要消耗在网络通信之上。正如上文所说,硬件签名仅第一次需要验证,因此实际中的Verify过程通常仅存在Verify Signature的时间消耗。
表1仿真实验结果
Extract | TxSign | Verify Attestation | TxVerify | |
时间(/ms) | 97.86 | 3.73 | 3110.15 | 3.74 |
Claims (9)
1.一种联盟链中可追溯匿名方法,其特征在于,包括如下内容:
1)用户向审计中心提交账号u,审计中心通过审批后以私钥对u进行签名授权;设审计中心批准授权的账号集合为V,有u∈V;
2)用户以通过审批的账号u为基础,将u以及安全系数n作为输入,生成匿名账号集合U=(u1,u1,…,uk);用户选择任意匿名账户ui∈U,将其作为用户的交易用匿名账号,并将ui提交至账号中心;
3)账号中心对ui的有效性进行验证,将其公布于联盟链;
4)用户以ui作为交易账号,对交易进行签名授权;
5)审计中心可以在任意时刻对已提交至账号中心的匿名账号ui进行解密,追溯定位至匿名账号的原始账号u,该过程设为AccDec(ui)=u。
2.如权利要求1所述的联盟链中可追溯匿名方法,其特征在于,所述3)中,账号中心对ui的有效性进行验证,将其公布于联盟链;公布后,联盟链上任意角色都有可以对ui的有效性进行验证;匿名账号有效性的验证算法,设为AccVerify(ui),当ui∈U,且u∈V时算法输出true,否则输出false。
3.如权利要求1所述的联盟链中可追溯匿名方法,其特征在于,所述4)中,用户以ui作为交易账号,对交易进行签名授权,设签名授权过程为TxSign(ui,tx);系统中的任意角色都有能力对ui授权的交易进行有效性正确性的验证;设交易验证过程为TxVerify(ui,tx),其中tx为ui授权的某笔具体的交易,交易有效时算法输出true,否则输出false。
4.如权利要求1所述的联盟链中可追溯匿名方法,其特征在于,用户匿名账号的生成及对公开的匿名账号的验证均是独立运行的。
5.如权利要求1所述的联盟链中可追溯匿名方法,其特征在于,所述方法包括用户、审计中心以及账号中心三个角色,审计中心不参与日常业务的场景,用户、审计中心和账号中心可不同时在线。
6.如权利要求1所述的联盟链中可追溯匿名方法,其特征在于,通过借助SGX实现可信执行环境,将整个可信执行环境抽象为一个算法集合∑TEE,在可信执行环境进行初始化结束后,会生成有密钥对(pkTEE,skTEE),将这个密钥对定义为可信执行环境的主公钥和主私钥;可信执行环境中对应SGX中的Enclave级操作分为TEE.install以及TEE.resume;前者TEE.install属于Enclave的初始化,将Enclave中的程序代码prog作为输入,初始实例化结束后会输出对应实例Enclave的eid;初始化结束后的Enclave执行TEE.resume,其中输入eid指定对应的Enclave实例,输入指定的功能函数fun以及函数所需的参数args,Enclave将会输出对应的结果outp,同时附带硬件的签名证明σTEE=∑TEE.Sig(skTEE,(prog,outp));
将
[outp,σTEE]:=TEE.resume(eid,fun,args)
简化为
[outp,σTEE]:=EF(args)。
可信执行环境生成的硬件签名σTEE有∑TEE.Vf(pkTEE,prog,outp,σTEE),该函数当σTEE有效时函数输出1,否则输出0;σTEE的有效条件为outp,是主公钥为pkTEE且载入了程序片段prog的Enclave的输出结果;设可信硬件是正确且可信的,即设∑TEE.Vf(pkTEE,prog,outp,σTEE)的结果是绝对正确的。
7.如权利要求1所述的联盟链中可追溯匿名方法,其特征在于,
算法1,原始账号初始化申请授权:
输入:用户的原始账号pku,其中pku来自(pku,sku)←∑.KGen(1λ);
输出:审计中心授权的签名σA;
1)审计中心验证用户原始账号pku是否符合规定要求;
2)运行签名算法,通过密钥skA对申请的用户账号pku进行签名授权,获取签名σA;
3)输出返回σA;
算法1为内容1)的具体细节;内容1)中用户需要本地生成一个密钥对,并将公钥pku作为自己的原始账号提交至审计中心;审计中心通过检查后,签名授权该账号,允许该账号进行联盟链上的交易,并将自己的授权签名σA返回给用户。
8.如权利要求1所述的联盟链中可追溯匿名方法,其特征在于,
算法2,可信执行环境EF:
输入:用户的原始账号pku,审计中心的授权签名σA,用户的公共参数Ppub,用户的签名信息σu;
输出:原始账号加密信息ue,硬件签名σTEE;
1)运行签名验证算法,通过密钥pku验证σu是否是内容(pku,PPub)的有效签名;
2)运行签名验证算法,通过密钥pkA验证σA是否是内容(pku)的有效签名;
3)运行加密算法,使用密钥pkA对原始账号pku进行加密生成密文ue;
4)对内容(Ppub,ue)生成硬件签名σTEE;
5)输出返回ue,σTEE;
算法3,衍生匿名账号Extract:
输入:用户的原始账号密钥对(pku,sku),审计中心的授权签名σA;
输出:原始账号加密信息ue,匿名账号对应的私钥skue,硬件签名σTEE;
1)随机选取s∈Zq并计算Ppub←s·P;
2)运行签名算法,通过密钥sku对内容(pku,PPub)进行签名,生成σu;
3)将原始账号pku,审计中心的授权签名σA用户的公共参数Ppub以及用户对输入内容的签名σu输入可信执行环境Enclave中,执行EF程序,返回原始账号的加密密文ue以及相对应的硬件签名σTEE;
4)计算QID←H1(ue);
5)计算本次衍生的匿名账号所对应的私钥skue,skue←s·QID;
6)输出返回(ue,PPub,σTEE)以及skue;
内容2)的具体实现为算法3,用户本地运行算法3,输入原始的账号密钥对以及审计中心的授权签名,算法3会进入可信执行环境SGX的Enclave执行算法2,算法2是部署在SGX的Enclave代码程序,判断输入的签名的合法性后,使用审计中心的公钥进行加密生成密文ue,之后将ue同用户的公共参数进行签名绑定,用户本次运行获取的衍生匿名账号为(ue,PPub,σTEE),对应的私钥为skue;用户可以通过多次执行算法3获得多次输出,达到衍生多个匿名账号的效果;
内容3)可以通过SGX提供的验证服务对其硬件签名进行验证,即对应为∑TEE.Vf(pkTEE,EF,(Ppub,ue),σTEE);输入待验证的匿名账号,并且指定输入程序为算法2指定的EF程序,会返回该硬件签名的有效性;当通过时可认为该匿名账号正确有效。
9.如权利要求1所述的联盟链中可追溯匿名方法,其特征在于,
算法4,交易签名TxSign:
输入:匿名账号对应的私钥skue,待签名的交易tx;
输出:交易的授权签名σue=(R,S);
1)随机选取k∈Zq *;
2)计算R←k·P;
3)计算S←k-1(H2(m)·P+H3(R)·skue);
4)输出返回σue=(R,S);
算法5,交易验证TxVerify:
输入:用户的匿名账号(ue,PPub,σTEE),待验证的交易(tx,σue);
输出:验证通过true;
1)计算QID←H1(ue);
2)计算e(R,S)以及判断二者是否相等,若不相等则输入的签名非法无效;
3)验证通过,返回true;
内容4)中用户使用匿名账号签名TxSign,以及其签名验证TxVerify的实现分别为算法4和算法5;算法4中用户输入匿名账号对应的私钥skue对交易进行签名认证产生σue,任何人都可以使用算法5将交易中的账号(ue,PPub,σTEE)作为公钥,对交易中的签名(tx,σue)进行验证;
内容5)中审计中心的AccDec可以直接使用审计中心的私钥进行原始账号的解密追溯,通过匿名账号(ue,PPub,σTEE)中的ue字段,Dec(skA,ue)定位原始账号pku。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910285666.9A CN109862046B (zh) | 2019-04-10 | 2019-04-10 | 一种联盟链中可追溯匿名方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910285666.9A CN109862046B (zh) | 2019-04-10 | 2019-04-10 | 一种联盟链中可追溯匿名方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109862046A true CN109862046A (zh) | 2019-06-07 |
CN109862046B CN109862046B (zh) | 2020-08-14 |
Family
ID=66903506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910285666.9A Active CN109862046B (zh) | 2019-04-10 | 2019-04-10 | 一种联盟链中可追溯匿名方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109862046B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110363509A (zh) * | 2019-07-19 | 2019-10-22 | 华中师范大学 | 一种信息保护方法及装置 |
CN110889696A (zh) * | 2019-11-27 | 2020-03-17 | 杭州趣链科技有限公司 | 一种基于sgx技术的联盟区块链秘钥存储方法、装置、设备及介质 |
CN110995673A (zh) * | 2019-11-20 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 基于区块链的案件证据管理方法、装置、终端及存储介质 |
CN111259433A (zh) * | 2020-02-18 | 2020-06-09 | 重庆第二师范学院 | 一种区块链隐私保护系统 |
CN111556026A (zh) * | 2020-04-08 | 2020-08-18 | 东南大学 | 一种基于联盟链的匿名身份认证方法 |
CN112217775A (zh) * | 2019-07-12 | 2021-01-12 | 华为技术有限公司 | 一种远程证明方法及装置 |
CN112329032A (zh) * | 2020-10-29 | 2021-02-05 | 暨南大学 | 一种基于函数加密的隐私镜像金融审计方法及系统 |
CN113256290A (zh) * | 2021-05-14 | 2021-08-13 | 杭州链网科技有限公司 | 去中心化加密通讯与交易系统 |
CN113315749A (zh) * | 2021-04-12 | 2021-08-27 | 张日和 | 用户数据上链、用户数据使用方法、匿名系统和存储介质 |
CN114124406A (zh) * | 2021-11-19 | 2022-03-01 | 重庆邮电大学 | 基于条件匿名环签名和隐私计算的联盟链隐私保护方法 |
CN114329610A (zh) * | 2021-12-29 | 2022-04-12 | 浙江吉利控股集团有限公司 | 区块链隐私身份保护方法、装置、存储介质及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108809953A (zh) * | 2018-05-22 | 2018-11-13 | 飞天诚信科技股份有限公司 | 一种基于区块链的匿名身份认证的方法及装置 |
WO2019006446A1 (en) * | 2017-06-30 | 2019-01-03 | Visa International Service Association | METHOD, SYSTEM AND COMPUTER PROGRAM PRODUCT FOR DETERMINING THE SOLVENCY OF AN EXCHANGE OF DIGITAL ASSETS |
CN109359483A (zh) * | 2018-10-19 | 2019-02-19 | 东北大学秦皇岛分校 | 一种基于区块链的用户隐私匿名保护方法 |
-
2019
- 2019-04-10 CN CN201910285666.9A patent/CN109862046B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019006446A1 (en) * | 2017-06-30 | 2019-01-03 | Visa International Service Association | METHOD, SYSTEM AND COMPUTER PROGRAM PRODUCT FOR DETERMINING THE SOLVENCY OF AN EXCHANGE OF DIGITAL ASSETS |
CN108809953A (zh) * | 2018-05-22 | 2018-11-13 | 飞天诚信科技股份有限公司 | 一种基于区块链的匿名身份认证的方法及装置 |
CN109359483A (zh) * | 2018-10-19 | 2019-02-19 | 东北大学秦皇岛分校 | 一种基于区块链的用户隐私匿名保护方法 |
Non-Patent Citations (1)
Title |
---|
徐治理: "《基于区块链的可监管数据货币模型研究》", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112217775B (zh) * | 2019-07-12 | 2022-04-05 | 华为技术有限公司 | 一种远程证明方法及装置 |
CN112217775A (zh) * | 2019-07-12 | 2021-01-12 | 华为技术有限公司 | 一种远程证明方法及装置 |
CN110363509A (zh) * | 2019-07-19 | 2019-10-22 | 华中师范大学 | 一种信息保护方法及装置 |
CN110995673A (zh) * | 2019-11-20 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 基于区块链的案件证据管理方法、装置、终端及存储介质 |
CN110995673B (zh) * | 2019-11-20 | 2022-05-31 | 腾讯科技(深圳)有限公司 | 基于区块链的案件证据管理方法、装置、终端及存储介质 |
CN110889696A (zh) * | 2019-11-27 | 2020-03-17 | 杭州趣链科技有限公司 | 一种基于sgx技术的联盟区块链秘钥存储方法、装置、设备及介质 |
CN111259433A (zh) * | 2020-02-18 | 2020-06-09 | 重庆第二师范学院 | 一种区块链隐私保护系统 |
CN111556026A (zh) * | 2020-04-08 | 2020-08-18 | 东南大学 | 一种基于联盟链的匿名身份认证方法 |
CN112329032A (zh) * | 2020-10-29 | 2021-02-05 | 暨南大学 | 一种基于函数加密的隐私镜像金融审计方法及系统 |
CN112329032B (zh) * | 2020-10-29 | 2023-03-10 | 暨南大学 | 一种基于函数加密的隐私镜像金融审计方法及系统 |
CN113315749A (zh) * | 2021-04-12 | 2021-08-27 | 张日和 | 用户数据上链、用户数据使用方法、匿名系统和存储介质 |
CN113315749B (zh) * | 2021-04-12 | 2022-11-22 | 张日和 | 用户数据上链、用户数据使用方法、匿名系统和存储介质 |
CN113256290A (zh) * | 2021-05-14 | 2021-08-13 | 杭州链网科技有限公司 | 去中心化加密通讯与交易系统 |
CN114124406A (zh) * | 2021-11-19 | 2022-03-01 | 重庆邮电大学 | 基于条件匿名环签名和隐私计算的联盟链隐私保护方法 |
CN114124406B (zh) * | 2021-11-19 | 2023-08-29 | 重庆邮电大学 | 基于条件匿名环签名和隐私计算的联盟链隐私保护方法 |
CN114329610A (zh) * | 2021-12-29 | 2022-04-12 | 浙江吉利控股集团有限公司 | 区块链隐私身份保护方法、装置、存储介质及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109862046B (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109862046A (zh) | 一种联盟链中可追溯匿名方法 | |
Li et al. | A blockchain privacy protection scheme based on ring signature | |
CN109101822B (zh) | 一种解决多方计算中数据隐私泄露问题的方法 | |
CN105812570B (zh) | 终端固件更新方法及装置 | |
KR102171568B1 (ko) | 투표자 단말, 인증서버, 투표서버, 및 전자투표 시스템 | |
CN109785494A (zh) | 基于区块链的可追踪的匿名电子投票方法 | |
CN109559117A (zh) | 基于属性基加密的区块链合约隐私保护方法与系统 | |
Wu et al. | A regulated digital currency | |
CN110419193A (zh) | 用于安全智能家居环境的基于ksi的认证和通信方法及其系统 | |
CN109495465A (zh) | 基于智能合约的隐私集合交集方法 | |
CN112487468B (zh) | 基于区块链的可追踪的完全匿名电子投票方法及系统 | |
WO2018133674A1 (zh) | 一种银行支付许可认证信息的反馈验证方法 | |
CN111709749A (zh) | 一种具有条件隐私保护的可追踪区块链交易系统 | |
CN101938354B (zh) | 一种基于模幂运算的密钥分发方法及其应用 | |
Saranya et al. | Efficient mobile security for E health care application in cloud for secure payment using key distribution | |
CN107690791A (zh) | 用于使电子通信中的认证安全的方法 | |
CN102769623A (zh) | 基于数字证书和生物识别信息进行双重认证的方法 | |
CN115564434A (zh) | 一种基于零知识证明的区块链可监管隐私保护方法 | |
CN110138548A (zh) | 基于非对称密钥池对和dh协议的量子通信服务站密钥协商方法和系统 | |
Xue et al. | Enabling regulatory compliance and enforcement in decentralized anonymous payment | |
CN114666032A (zh) | 基于同态加密的区块链交易数据隐私保护方法 | |
CN109981290A (zh) | 一种智能医疗环境下基于无证书签密的通信系统及方法 | |
CN109379176A (zh) | 一种抗口令泄露的认证与密钥协商方法 | |
CN108540447A (zh) | 一种基于区块链的证书验证方法及系统 | |
Wang et al. | Quantum anonymous ranking and selection with verifiability |
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 |