用于实现区块链隐私保护的属性基加密方案

2024-03-21 02:24马海峰李玉霞薛庆水杨家海高永福
计算机应用 2024年2期
关键词:敌手私钥密钥

马海峰,李玉霞,薛庆水,杨家海,高永福

(1.上海应用技术大学 计算机科学与信息工程学院,上海 201418;2.清华大学 网络科学与网络空间研究院,北京 100084)

0 引言

比特币问世时,区块链通过一系列的技术为交易系统提供了一定的安全性,避免了恶意交易、双花攻击等威胁[1],但在隐私方面,由于区块链账本公开,区块链网络中所有节点都可以查看账本内容。恶意用户可以借助爬虫技术获取区块链平台的服务信息,构建用户网络拓扑、交易网络拓扑,利用交易特征及溯源技术获取隐私信息,其中包括交易隐私、账户地址隐私和用户身份信息等敏感信息[2]。为了进一步确保对用户隐私的保护,近年来相关密码学技术已应用于该领域,如用零知识证明、属性基加密、环签名和聚合签名等保证链上数据隐私[3-7]。然而数据的全部隐藏为非法交易提供了可乘之机,数字货币的滥用给政府和金融监管机构带来了麻烦。人们对数字货币的监管呈现不同态度[8]:一些人认为用户有保留自己的隐私和自由交易的权力,因此货币系统应该全匿名且不受监管;另一部分人认为监管必不可少,这将大幅减少违法犯罪活动。实际应用中,货币系统需要在隐私性和可监管之间取得某种平衡才能更好地发展,设计一种在隐私保护的同时又能实现监管的区块链方案很有意义。

随着区块链数据隐私保护的研究明显增多,区块链的安全性得到了一定提升。然而,区块链应用的复杂程度在不断增长,许多学者提出一些可监管的区块链隐私保护方案。Yuan 等[9]利用密文策略属性基加密(Ciphertext Policy Attribute Based Encryption,CP-ABE)实现了一种私有链的数据隐私保护及监管机制,并应用于电子文档的管理。该方案允许任何第三方验证公开解密密钥的身份,允许审计师公开审计恶意用户或当局是否应对公开解密密钥负责,密钥滥用者不能否认。Xue 等[10]集成多种加密技术,使用概率公钥加密、基于身份标识加密(Identity-Based Cryptograph,IBC)、Pedersen 承诺和零知识证明等实现区块链隐私保护和监管功能。虽然该算法在安全性和隐私性方面有很大优势,但性能和效率上需进一步提升才能实现应用。赵晓琦等[11]提出了一种可审计的区块链匿名交易方案,使用Elgamal 加密隐藏交易数据,用隐地址实现监管;但交易金额需审计方审计,交易越多,审计时间越长,所以应改进优化审计策略,提高审计效率。Hill 等[12]设计了一种隐私保护协议,通过把密钥和文件分割来增强供应链中的数据可用性和隐私性。审计方是供应链中数据的唯一参与者,负责解决参与者之间的争议,但该协议只针对供应链,未广泛应用。Feng 等[13]提出一种基于可搜索属性加密的区块链数据隐私保护访问控制方案。该方案利用基于密文策略的属性加密来加密陷门密钥,并使用可搜索加密加密区块链上的交易,但该方案属性机构必须完全可信,而且用户可能合谋访问无权访问的数据。

本文主要针对文献[13]中存在的属性机构权力过大和用户合谋问题,提出新的访问控制方案,同时实现区块链的可监管。本文工作如下:

1)提出使用多属性机构的属性基加密方案实现区块链的隐私保护。解密密钥不依赖于单一机构产生,更符合区块链去中心化的性质,最主要的是一个机构被攻破,非法用户也无法获取密钥解密文件。相较于单一机构必须完全可信,有更大的容错空间。

2)为了防止用户合谋访问无权访问的数据,用户在请求解密密钥组件时,需将自己的身份标识符ID 和属性集都发送给属性机构。由此生成的私钥组件就跟该用户绑定,只有该用户能用。同一用户的私钥组件才能合成解密密钥,用户间就不能合谋生成解密密钥访问权限外的数据。

3)使用基于身份的签名(Identity-Based Signature,IBS)方案修改后的签名算法生成交易密钥。该方案既保密了用户身份,又能建立用户身份与用户钱包地址之间的链接,以此实现区块链的可监管。

1 基础知识

1.1 双线性映射

取阶数为素数q的乘法循环群G0、G1。对于群的随机生成器,存在满足以下属性的双线性对映射:

1)双线性性。对所有u,v∈G0;a,b∈Zp,等 式e(ua,vb)=e(u,v)ab成立。

2)非退化性。存在元素u,v∈G0,e(u,v) ≠1。

3)可计算性。对任意u,v∈G0,有一种多项式时间算法用于计算e(u,v)。

1.2 线性秘密共享方案

密码学者已经提出了很多线性秘密共享方案(Linear Secret Sharing Scheme,LSSS),且这些方案在安全性和效率上都在逐步提升。LSSS 是Shamir 秘密共享方案的一般性推广。线性秘密共享方案在参与组上满足以下条件:

1)各方参与者的份额来自矩阵Zp。定义一个c行d列的分享生成矩阵M,该矩阵对应的秘密共享方案为∏。函数ρ将M第i行的参与者标记定义为本文把行向量看作共享的秘密,其中v2,v3,…,vc∈Zp随机选择。Mv是根据秘密共享方案∏得出的秘密份额,份额(Mv)i∈ρ(i)。

2)假设∏是访问结构的LSSS。假设Su∈A是属性机构的任意子集,A是属性集合,I∈{1,2,…,l}。如果{λi}是∏中的有效秘密份额,将会有一个常数使S。此外,这些常数{wi}可以在共享生成器矩阵M的多项式时间中找到。

1.3 判定性双线性Diffie-Hellman假设

设G1和G2是阶q为素数的乘法循环群。选择一个生成器g∈G1,选择参数得 到ga,gb,gc∈G1,e(g,g)abc,e(g,g)r∈G2。判 定e(g,g)abc和e(g,g)r∈G2的 关系是否相等。

定义1对于任意多项式概率时间算法敌手A,DBDH假设的优势定义为:

其 中:A(ga,gb,gc,e(g,g)abc)表示对手A 接收输入参数ga、gb、gc,并尝试确定配对e(g,g)abc是否成立;A(ga,gb,gc,e(g,g)r)代表修改版本,是一个随机值r指数化到双线性映射。如果测定值可以忽略不计,则将建立判定性双线性Diffie-Hellman 假设。

2 系统模型

本文方案提出的基于属性基加密的隐私保护方案包含的实体有:用户(User)、数据拥有者(Data Owner,DO)、多属性权威机构(Multi-attribute Authority,MA)、密钥提供商(Key server)、监管节点(Regulation node),如图1 所示。

图1 系统模型Fig.1 System model

用户 向系统提出注册请求,生成身份标识符,组合每个属性机构(Attribute Authority,AA)生成的私钥构件,形成解密加密数据的私钥。用户ID 作为生成用户属性私钥的参数,用于防止用户共谋访问无权访问的数据。

数据拥有者 对交易签名和加密。数据拥有者为区块链系统中的用户。

多属性权威机构 每个授权机构独立管理每类属性,不同授权机构生成的私钥组件共同组成用户解密密钥。监管过程中向监管节点授权属性密钥。

密钥提供商 根据用户提交的ID 和随机值计算用户签名公私钥对的重要组成部分,并通过秘密通道发送给用户。在监管节点监测到非法用户时,向监管节点提供非法用户的真实身份。

监管节点 监管节点负责对交易监管,但不参与交易过程。该方案假定监管节点可信,只有在属性机构授权属性密钥后,监管节点才能解密非法交易内容,揭露用户身份,区块链账本中的正常交易信息对监管节点不可见。

3 本文方案具体构造

本文方案包含隐私保护部分和监管部分两个部分。

针对隐私保护部分,基本思路是采用多属性机构的属性基加密实现链上数据的访问控制,通过限制访问数据的用户避免账本公开带来的安全隐患。每个属性机构根据用户的属性集为它生成私钥构件,只有满足访问结构的用户才能解密交易密文。为了防止用户间合谋访问无权访问的数据,本方案使用用户身份作为密钥组件的标识,只限定该密钥组件由单一用户使用。

针对监管部分,基本思路是在交易生成时,交易双方需对交易签名。密钥提供商为用户提供签名密钥,对交易签名不会泄露身份隐私。监管节点随机选择交易验证用户身份。授权监管节点通过钱包地址和交易信息获取交易者的身份,验证是否为诚实用户。若为非法用户,监管节点揭露非法用户的真实身份,并将其钱包地址拉入黑名单。

为了方便理解,表1 列出了文章中出现的部分符号。

表1 符号定义Tab.1 Symbol definitions

本文方案的两个主要部分划分为以下7 个步骤:

1)初始化。

系统初始化 在群G0中选择素数p,使用元素g生成组,在限制域中选N个元素,根据系统属性生成系统属性集S=(ω1,ω2,…,ωN),ωi∈Zp,Zp是整数集合。选择两个随机值α,a∈Zp。公共参数pp={e,G0,G1,g1,g2,p}定义双线性映射e:G0× G0→G1。数据所有者选择两个随机数μ、η,计算公钥PK={g,gμ},g是群G0的生成元。

AA 初始化 假定有x个属性机构p{A1,A2,…,Ax},每个属性机构管理一类属性集合,Ai运行初始化算法把公共参数pp作为输入,得到每个属性机构的公私钥对。属性机构保存密钥,公布公钥。

2)用户注册。

用户向系统提出注册申请,获得与用户身份相对应的身份标识和属性集是系统属性集合,ωi是属性。用户提交{ID,r*p}给密钥服务商,其中代表用户身份。密钥服务商验证ID的有效性,如果有效,则运行密钥生成算法QID=H2(ID,r*p),SID=a*QID=a*H2(ID,r*p),并把私钥SID通过安全通道发送给用户。签名公钥pksig=QID=H2(ID,r*p),私钥sksig=(SID,r*)=(a*QID,r*)。在该方案中,用户的公钥不是真实身份,而是由随机值生成的随机化的身份散列,这就隐藏了签名者的身份。通过密钥生成算法,用户可以通过选择不同的随机值{ai*}生成不同的密钥对,以此建立了用户身份和用户钱包地址之间的连接。钱包密钥对的生成如图2。

图2 钱包密钥对生成Fig.2 Wallet key pair generation

3)交易产生及签名。

4)加密。

(m,(M,ρ),pp) →Cw。数据拥有者运行加密算法,输入公共参数pp、访问控制策略(M,ρ)和交易信息m,得到交易密文Cw。

5)密钥生成。

(ID,Su,SKi) →USKuid:用户向AA 提交申请,AA 根据用户标识符ID、用户属性集Su∈S和主密钥生成私钥构件USKuid。用户拿到所有AA 生成的私钥构件,计算自己的私钥SKT。

6)解密。

(UID,PK,Cw,SKT) →m:算法由数据使用者执行。该算法将用户身份UID、公共参数pp、密文Cw和用户生成的密钥SKT作为输入。当访问策略满足时,输出交易明文m;否则输出为空。

7)监管。

若对交易信息有异议,授权监管节点希望验证用户身份,它将通过输入授权属性密钥和密文运行解密算法对交易信息解密,该算法返回一个身份ID',监管节点通过计算pk=并把它和钱包地址pkai比较验证身份:如果相等,则ID'=IDA,A 是诚实用户;否则,监管节点向密钥提供商发送请求以得到用户的真实身份A,并把钱包地址IDA添加到黑名单。

4 方案分析与比较

4.1 安全模型

CP-ABE 方案的安全模型与基于身份加密(Identity-Based Encryption,IBE)方案类似,允许敌手对任意的密钥(不包括能够解密挑战密文的密钥)进行逆向询问。敌手会选择挑战一个满足访问结构p*的密文,并能对任何不满足p*的属性集合S*进行密文询问。CP-ABE 方案的选择明文攻击下的不可区分游戏(记为IND-CP-ABE-CPA 游戏)如下:

1)初始化。由挑战者运行,产生系统参数params并将它发送给敌手。

2)阶段1。敌手发出对属性集合S*的密钥产生询问。挑战者运行密钥产生算法,产生与S*对应的密钥SK*,并发送给敌手,这个过程可以进行多项式有界次问询。

3)挑战。敌手提交两个长度相等的消息m0和m1。此外,敌手选定一个想要挑战的访问结构p*,其中敌手在阶段1中询问过的属性集合均不能满足此访问结构。挑战者选择随机数b∈{0,1},并以p*加密mb将密文给敌手。

4)阶段2。敌手发出对属性集合S*的密钥产生询问,唯一的限制是这些S*均不能满足挑战阶段的访问结构p*。挑战者以阶段1 中的方式进行回应,这个询问过程可进行多项式有界次。

5)猜测。敌手输出猜测b' ∈{0,1},如果b'=b,则敌手攻击成功。

4.2 安全分析

以下将证明在随机预言模型下,本文方案是安全的。

定理1基于DBDH 假设,如果本文方案可以抵抗选择明文攻击(Chosen Plaintext Attack,CPA),则本文方案是CPA安全的。

证明 假设一个概率多项式时间,敌手可以利用优势ϕ攻击。证明以下DBDH 游戏可以被敌手A 以优势攻击。e:G0× G0→G1是双线性映射,其中G 是生成元为g、阶为p的循环群。挑战者随机选择a,b,c,z∈Zp,u∈{0,1}:如果u=0,(g,A,B,C,Z)=(g,ga,gb,gc,e(g,g)abc);如 果u=1,(g,A,B,C,Z)=(g,ga,gb,gc,e(g,g)z)。

初始化 敌手至少控制两个授权权限,挑战者控制其余权限。敌手确认了LSSS 访问结构的挑战。挑战者随机选择a=ξ,b=ψ,c=ζ,且随机数ξ,ψ,ζ∈Zp,并 把Y:e(A,B)=e(g,g)ab发给敌手。

阶段1 敌手根据属性集要求提供许多他想要的私钥,但这些私钥不满足访问结构。在收到身份为RID 的敌手的私钥请求时,挑战者随机选择βRID,k∈Zp并计算每个属性k∈S的私钥组件

阶段2 重复阶段1。

猜测 敌手提交的猜想θ',当θ=θ'时,如果θ=0,代表挑战者的模拟器将输出(g,ga,gb,gc,e(g,g)abc),否则输出DBDH 数组(g,ga,gb,gc,e(g,g)z)。如果θ=1,敌手无法获得有用信息,他的优势Pr=;当θ=0,他的优势是Pr=所以在DBDH 游戏中,敌手的概率多项式时间如果游戏中的多项式时间是ϑ,敌手不可忽视的优势是因此基于DBDH 假设,敌手在该安全游戏中没有优势,这表示本文方案是安全的。

4.3 隐私保护分析

内容隐私 本文采用基于密文策略的属性基加密技术实现对交易信息的访问控制,与对称密码技术相比,本文技术更加安全。在交易密文生成后,只有属性满足访问策略的用户才能解密交易数据,杜绝了区块链账本对所有节点公开所带来的一系列安全问题。在解密私钥生成的过程中,引入了用户标识符,限制解密密钥只能单一用户使用,因此,即使想串通,属性不满足访问结构的用户也不能解密交易信息。所以本文方案对内容隐私的保护是合格且安全的。

身份隐私 本文使用新的签名算法代替椭圆曲线签名生成钱包密钥对。用户的公钥不是真实身份,而是由随机值生成的随机化的身份散列。通过密钥生成算法,用户可以通过选择不同的随机值生成不同的密钥对。只有监管节点在得到属性密钥授权的情况下才可以得到用户的真实身份,如果用户非法才能揭露其身份。

4.4 方案比较

文献[14]中提出了一种基于聚合签名的区块链签名方案,当事务有n个输入地址和m个输出地址时,签名数可以从n减少到1,接收方的身份隐私得到有效保护,但交易金额是公开的,同时没有监管功能。文献[15]中使用环签名的匿名性确保区块链应用中的数据安全和用户身份隐私。文献[16]中提出使用属性基加密的方案,把解密密钥分为两部分,一部分放到DO,一部分放到属性机构,这分散了属性机构的权力,防止属性机构间的合谋但并没有设计监管功能。文献[17]中使用公钥密码实现可搜索关键字的区块链检索隐私保护机制,让DO 在什么都不知道的情况下验证检索请求中的关键字授权,但该方案不涉及防合谋和不可连接。从表2 可以看出,本文使用多属性机构的属性基加密方案实现了区块链数据的隐藏,同时防止了用户间合谋。修改后的签名算法能在有效保护用户身份隐私的同时实现用户可追踪,保证了链上交易安全。

表2 本文方案与其他隐私保护方案比较Tab.2 Comparison of proposed scheme and other privacy protection schemes

5 实验验证

在Ubuntu18.04 系统中搭建了Hypeledger Fabric 实验环境,在CPU 为Intel Core i7-7500U@3.5 GHz 的电脑上运行。

图3 显示了运行密钥生成算法和加密所产生的密钥生成时间和加密时间的测量结果。该实现基于512 位有限域上的超奇异椭圆曲线y2=x3+x的160 位椭圆曲线组。在测试环境中,PBC 库可以在大约5.5 ms 内计算配对,G0和G1的求幂分别需要大约6.4 ms 和0.6 ms。随机选择元素也是一项重要的操作,G0需要16 ms,G1需要1.6 ms。

图3 密钥生成和加密所需时间Fig.3 Time required for key generation and encryption

从图3 中可以看出:密钥生成所需时间与它所包含的密钥相关的属性数几乎是线性的;加密链上数据的时间与访问策略中叶子节点数几乎是完全线性的。内部节点的运算相当于适度的乘法运算,不会显著增加运行时间。即使对于更大的问题实例,这两种方法仍然可行。

现存的区块链隐私保护方案大多存在设计臃肿、开销大和实用性低等问题。为了验证所提方案在区块链应用中的可行性,将本文方案设计的加密和签名方案加入本地搭建的私链中进行仿真实验。实验主要对比区块生成速度,因区块生成过程包含交易生成、验证、数据上链等过程,所以链中块的生成速度是区块链隐私保护方案效率的直观体现。图4给出本文方案与文献[15,17]方案在生成相同区块数时所花费的时间对比。从图4 可以看出,相较于文献[15,17]方案,本文方案在生成相同区块数时时间更少,效率更高,证明了所提方案具有可行性。

图4 区块生成时间对比Fig.4 Comparison of block generation time

6 结语

由于使用区块链技术存储交易信息的全球账本对加入区块链网络的任何节点开放,带来的安全性问题阻碍了区块链的推广,区块链的隐私保护受到了许多关注。随着区块链的应用越来越广泛,复杂程度也在增加,区块链和属性基加密结合很有必要。本文利用MA-ABE 实现对链上数据的访问控制和交易隐私保护,利用修改后的IBS 方案建立用户身份与钱包地址之间的链接,以此来实现对用户的监管。相较于文献[13]方案,解除了单一属性机构必须完全可信的限制,并防止了用户间合谋访问无权访问的数据。在隐私保护的同时引入监管机制,在检测到非法交易时,把用户钱包地址拉入黑名单,这将大幅降低非法交易的可能。最后经过安全分析和实验验证,证明了所提方案的安全性和有效性。

猜你喜欢
敌手私钥密钥
探索企业创新密钥
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
基于改进ECC 算法的网络信息私钥变换优化方法
密码系统中密钥的状态与保护*
不带着怒气做任何事
一种基于虚拟私钥的OpenSSL与CSP交互方案
一种对称密钥的密钥管理方法及系统
基于ECC的智能家居密钥管理机制的实现
不带着怒气作战