基于区块链的噪声化数据分享控制协议

2023-11-19 06:53谢晴晴杨念民冯霞
通信学报 2023年10期
关键词:令牌密文解密

谢晴晴,杨念民,冯霞

(1.江苏大学计算机科学与通信工程学院,江苏 镇江 212013;2.江苏大学汽车与交通工程学院,江苏 镇江 212013)

0 引言

区块链技术具有难以篡改、公开透明、去中心化等优点,是数字加密货币的底层核心技术[1]。目前已有许多学者基于区块链技术来实现数据的可信分享。以金融供应链为例,传统金融体系存在着信息不对称、信息孤岛、结算不能自动完成等缺点。以区块链为底层技术的金融供应链可以将银行、核心企业、二三级供应商和其他金融机构上链,支持资金流、信息流、信任流同时传递,并通过嵌入智能合约实现协议的自动执行,提高信息共享的效率,降低信任和资金传递成本[2]。然而,区块链的开放特性使所有节点都可以复制和共享区块链上的数据,查看所有交易历史。这给敏感数据的隐私保护带来了挑战[3]。

为了解决隐私泄露的问题,许多学者从密码学的角度出发来设计解决方法。牛淑芬等[4]提出了一种基于联盟链的可搜索加密方案。该方案将区块链技术和可搜索加密算法相结合,通过代理重加密技术保障数据在不同医院之间进行传输时不会泄露患者的敏感信息,从而解决了病例数据在不同医院中共享的问题。薛腾飞等[5]建立了基于区块链的医疗数据共享模型,采用代理重加密方案解决了访问控制问题。Chen 等[6]提出了一种基于区块链的物联网跨域数据共享方法,使用门限代理重加密的方法对密文进行处理,避免恶意的代理机构与访问者合谋,保证数据在跨域存储、共享过程的安全性。

但是目前已有的基于区块链的数据分享协议皆不适用于数据的噪声化分享场景。例如,导航服务应用程序需要精确的位置数据,外卖服务中顾客可以仅提供楼栋号而非具体的房间号以保护隐私。在医疗健康数据的共享中,医院为了保护病人的隐私,对一些敏感数据进行不同程度的噪声化处理,然后根据数据用户的不同需求来提供不同精度的数据。在社交平台上,用户出于人身安全的考虑,可以先将自己的位置信息进行零度、轻度和重度的噪声化处理后,再分别发布给家人、普通朋友和应用程序。上述情况皆可以归结为数据的噪声化分享控制问题,即通过控制用户访问到的数据精度来实现数据的噪声化分享控制。

为此,本文将智能合约和密文策略属性基加密(CP-ABE,ciphertext policy attribute-based encryption)算法相结合,设计了一种基于区块链的噪声化数据分享控制协议。首先采用支持外包的CP-ABE 算法来减少用户端的加解密计算负担。其次,利用智能合约来实现密文之上的数据搜索,预防了恶意服务器的非法操作,实现了高效、安全且可搜索的数据分享功能。具体来说,本文协议的主要贡献如下。

1) 本文将智能合约、云计算技术和CP-ABE算法相结合,实现了数据的噪声化细粒度分享控制,不但保护了数据隐私,而且能够提供可信的数据搜索结果。

2) 本文协议可以支持密文同态运算,使数据更新的计算复杂度为O(1)。因此本文协议适用于数据实时更新的应用场景。

3) 本文协议的安全性和性能评估分别得到了充分的分析和验证,表明本文协议具有安全性和可行性。

1 相关工作

本节主要介绍访问控制技术和基于区块链的数据分享两方面的相关工作。

1.1 访问控制技术

基于属性的加密(ABE,attribute-based encryption)技术使数据所有者能够根据用户的属性对敏感数据进行细粒度的访问控制。ABE 的概念最早由Sahai 等[7]提出,其原型来源于基于身份的加密。根据解密策略的位置不同,ABE 可以分为密钥策略属性基加密[8](KP-ABE,key policy attribute-based encryption)和密文策略属性基加密[9](CP-ABE,ciphertext policy attribute-based encryption)。在KP-ABE 中,密钥关联于一个访问控制策略,密文关联于数据属性集合;在CP-ABE 中,密文关联于一个访问控制策略,密钥关联于用户属性集合。无论是 KP-ABE 还是 CP-ABE,只有属性集和访问控制策略完全匹配时,用户才能解密该密文。与传统加密方法相比,ABE 实现了一对多加密,降低了密钥管理开销。

ABE 技术是最适用于云存储的加密方法之一,已被广泛研究。随着区块链技术的发展,分布式存储技术得到广泛关注,迎来了ABE 与区块链相结合的热潮。汪玉江等[10]提出基于ABE 和区块链的个人隐私数据保护方案,实现个人数据的一对多的安全传输和数据的细粒度访问控制。牛淑芬等[11]针对中心化云存储带来的数据安全和隐私保护问题,提出了一种区块链上基于云辅助的密文策略属性基数据共享加密方案,确保了数据的安全存储。Zhang 等[12]结合区块链技术、密文策略分级属性加密技术和星际文件系统设计了一种语音数据加密的分布式存储方案,确保了语音数据的安全性、难以篡改性和可扩展性。Wu 等[13]提出一种基于区块链的隐藏策略和属性访问控制方案,实现属性和策略的私密性,增强数据的安全性。Yin 等[14]针对区块链物联网中指定接收者的敏感数据安全共享问题,提出一种基于去中心化密钥生成和可编程密文的私有数据共享方案。该方案设计了一种新的密文策略去中心化密钥属性基加密算法,以防止敏感数据泄露。Zhang 等[15]针对车联网面临的敏感数据暴露、数据易受非法访问和篡改、云服务器单点故障等问题,提出一种基于属性加密的区块链数据访问方法。为了加强隐私保护,属性被隐藏,所有生成的交易都记录在区块链上以供审计。Yu 等[16]提出了一种基于区块链的具有属性撤销的细粒度访问控制算法,并应用于物联网应用系统中。Li 等[17]针对医疗行业的安全存储、可靠共享和隐私保护问题,提出了一种基于属性和同态密码系统的区块链电子医疗系统。系统中应用的属性基加密算法实现了基于部分密文的半策略隐藏和动态权限更改的功能。

1.2 基于区块链的数据分享

随着区块链技术的发展,去中心化存储模式进入大众视野。去中心化存储方式可以解决传统云存储系统的单点故障问题,与中心化存储相比具有价格低、安全性高等诸多优势。此外,区块链具有难以篡改、多方可信等特征,可以有效解决数据篡改和服务器不可信等问题。为此相关学者基于区块链技术陆续提出了一系列的数据安全分享方案。

Liu 等[18]针对医疗数据泄露问题,将区块链技术和基于属性的可搜索加密技术结合,实现医疗数据的安全共享。Long 等[19]针对工业区块链隐私泄露问题,结合对称加密和同态加密技术,提出数据隐私保护方法。Huang 等[20]将联盟链与云计算相结合提出了一套分布式医疗数据隐私保护方案。该方案通过云服务器为区块链节点提供服务并设计了基于区块链的智能医疗分布式数据管理架构。Regueiro 等[21]利用区块链技术和Paillier 加密算法提出了一种用于健康数据统计分析的隐私保护方法。该方法能够在保护患者隐私的前提下提高数据分析的准确性。Gochhayat 等[22]针对物联网和边缘设备的快速增长所带来海量数据的安全存储问题,提出了一种新颖的基于区块链技术的轻量级去中心化加密云存储架构。Agyekum 等[23]提出了一种基于区块链和代理重加密算法的物联网数据安全共享方案,实现数据的机密性、完整性和安全性。Zhang 等[24]基于CP-ABE 和区块链提出了一套轻量级、去中心化且多权限的访问控制方案,用以保证车联网用户的信息安全和隐私保护。Liu 等[25]提出了一种基于CP-ABE 的分层物流数据访问控制方案,以超级账本中的成员身份代替传统的密钥分发中心来保证用户私钥的安全性。

但是以上工作仅能实现部分的如下功能:1)隐私保护的数据搜索;2)安全可信的数据搜索;3)针对搜索权限的细粒度控制。

2 预备知识

本节主要介绍本文使用的密码学知识,包括双线性配对和CP-ABE 方案。

2.1 双线性配对

设G0和GT均为q阶大素数循环群,称映射e:G0×G0→GT为双线性配对,e满足下列条件。

1) 双线性:对于任意x,y∈G0和任意a,b∈Zq,都有e(xa,yb)=e(x,y)ab。

2) 非退化:若g是G0的生成员,则e(g,g)≠1GT。

3) 可计算:对于任意x,y∈G0,e(x,y)∈GT可被有效计算。

2.2 密文策略属性基加密(CP-ABE)方案

CP-ABE 将访问策略嵌入密文中,将用户的身份属性集合嵌入用户的身份私钥中。只有当用户的身份属性集合满足数据的访问策略时,该用户才能成功解密获得明文。然而,在传统的CP-ABE 系统中,加解密需要花费较大的计算开销,不但导致数据分享延迟,而且不适用于资源受限的物联网场景。为此,很多研究学者提出了支持加解密外包的CP-ABE 方案[26],基本框架如下。

3) Encrypt1(PK,T)→CT′。输入公钥PK 和访问策略树T,输出中间密文CT′。该算法的计算复杂度与访问策略树T有关,即O(NumLeaf),其中NumLeaf 是访问策略树T的叶子节点数。从访问策略树T的根节点开始为T的每个节点x赋予一个阶为dx的多项式qx,令kx为节点x的门限值,则dx=kx-1。对于T的根节点r,随机选择s∈Zp,令qr(0)=s,并选择dr个随机整数来确定多项式qr。对于其他节点x,令qx(0)=qparent(x)(index(x)),选择dx个随机整数来确定多项式qx,其中parent(x)是节点x的父节点,当前节点是x的第index(x)个子节点。令X表示T中所有叶子节点构成的集合,att(x)表示节点x对应的属性,该算法输出。

3 模型设计

本节主要介绍系统模型和安全模型。

3.1 系统模型

基于区块链的噪声化数据分享控制系统模型如图1 所示,主要包括四类主体:①可信机构(TA,trusted authority)、②数据主(DO,data owner)、③数据用户(DU,data user)、④云服务器(CS,cloud server)。

图1 基于区块链的噪声化数据分享控制系统模型

1) TA。TA 生成系统参数和系统主密钥,为用户分发属性私钥,维持属性列表。

2) DO。DO 首先为待分享的敏感数据设置访问策略,从数据文件中提取关键字,然后加密数据文件,将密文存储到云服务器中并获取存储地址,最后在区块链中生成关键字索引列表,并部署索引合约。

3) DU。DU 首先计算搜索令牌,将公钥和搜索令牌发送给云服务器,然后云服务器对数据密文进行半解密,并将半解密结果返回给DU,最后DU在本地计算相应的噪声化数据。

4) CS。CS 负责存储DO 上传的数据密文,并提供外包加解密服务。

智能合约包括属性合约、查询合约和索引合约。其中,属性合约维护属性列表;查询合约根据DU 给出的搜索令牌来寻找相应的数据密文存储地址;索引合约建立关键字搜索令牌和密文地址的映射关系。

各个主体之间的交互流程如下。TA 为DU 计算属性私钥1、属性私钥2 和证书,并将属性私钥1和证书上传到区块链,属性私钥2 交给DU 保存;DO 将公钥和访问策略发送给CS;CS 执行外包CP-ABE 的加密算法,并将访问策略密文发送给DO;DO 加密消息和噪声并将完整密文上传到CS;DO 根据关键词生成索引,部署并调用索引合约;DU 将搜索请求<公钥,搜索令牌,签名>发送给云CS;CS 将搜索请求转发给查询合约;区块链运行查询合约,并将查询到的密文地址和属性私钥1 返回给CS;CS 执行外包CP-ABE 的解密操作,将得到的中间密文并返回给DU;DU 进行本地解密,计算得到噪声化数据。

3.2 安全模型

考虑到本文所提方案是通过加密来实现数据的隐私保护和密文搜索的,因此本节讨论的安全模式针对2 种典型的安全标准:选择明文攻击下的不可区分性和适应性选择关键词语义安全。

1) 选择明文攻击下的不可区分性

定义1为证明选择明文攻击下的不可区分性,本文定义了敌手和挑战者之间的交互性游戏。

初始化。挑战者C 运行初始化程序并且向敌手A 发送公钥PK。

阶段1。敌手A 提交属性集合A1,A2,···,An进行解密密钥查询。作为响应,挑战者C 运行属性密钥生成算法生成相应的属性密钥ASKj,其中j∈[1,n1],这些属性私钥发送给敌手A。

猜测。敌手A 输出猜测μ′∈[0,1]。

本文定义敌手A 的优势在这个游戏中为AdvA=Pr[μ′=μ]-。

定理1如果任意多项式时间的敌手A 在以上的安全游戏中的优势AdvA是可忽略的,那么本文协议是CPA 安全的。

2) 适应性选择关键词语义安全

本文在有状态的模拟器S 和敌手A 之间采用基于模拟的游戏,允许泄露访问模式和搜索模式来证明安全。信息泄露情况采用2 个泄露函数进行描述,即,输入数据文件集合D,输出数据文件集合的大小、数据文件数量、每个数据文件的大小和标识符;L2定义为L2(D,w)=(AP(w),Tokw),输入数据文件集合和查询关键词w,输出关键词的访问模式AP(w)和搜索令牌。在挑战者C、敌手A 以及模拟器S 之间进行的游戏定义如下。

RealA(λ)。挑战者C 根据安全参数λ初始化系统、敌手A 给挑战者文件集合D,挑战者根据索引生成算法和数据加密算法生成安全索引I和加密文档D并给敌手。敌手向挑战者发起多项式次查询,对于每次查询q,查询的关键词产生搜索令牌并发送给A,最后A 输出一个比特位作为游戏的输出。

IdealA(λ)。数据文件集合D,给定泄露函数L1和L2,模拟器S 产生并发送 (I*,C*)给A。然后敌手A 重复向模拟器S 发起多项式次查询,对于每次查询q,模拟器S 根据泄露函数L2返回相应的搜索令牌 To,最后敌手A 输出一个比特位作为该概率实验的结果。

4 交易数据隐私保护方案

本节介绍协议的具体构造,假设本文涉及的所有成员都有自己的公私钥对,记为 pkentity/skentity,其中entity 指代实体名称。本文协议的主要标记符说明如表1 所示。

表1 主要标识符说明

4.1 系统初始化

TA 首先设置用户属性空间L={ai}i∈[1,n],调用Setup(1k,L)→(PK,MSK)产生系统公钥PK 和主密钥 MSK,然后定义公开的伪随机函数F:{0,1}k×{0,1}*→{0,1}l,并生成随机搜索密钥SKS←{0,1}k。

4.2 用户注册

用户注册过程是DU、TA 和区块链之间的交互,如图2 所示,主要步骤如下。

图2 用户注册时序

步骤1用户u向TA 发送二元组 〈Au,pku〉以请求计算属性私钥ASKu,其中Au是该用户的身份属性集合,pku是该用户的公钥。

步骤2TA 首先调用KeyGen(MSK,Au)→ASKu算法为用户生成属性私钥ASKu=〈 AK1,AK2〉 并为用户分发证书Cert(skTA,pku);然后将 〈Cert(skTA,pku),pku,Au〉上传到区块链中,返回交易号;再以pku为键,为值调用属性合约,属性合约的执行过程如算法1 所示。若TA 账户没有足够的余额来支付矿工收取的燃料费,则系统回滚;最后将属性私钥分量 ASKu.AK2和搜索密钥SKS发回给DU。

算法1属性合约

4.3 数据加密

DO 首先设置噪声集合 NoiS={τi}i∈[1,N]和相应的访问策略树 TS={Ti}i∈[1,N],其中Ti规定了能获得噪声化数据noi(m,τi)的用户类型,τi随着i的增加而变大。在TS 的基础上,DO 设计一个新的访问策略树T∀,其定义为用户属性集满足T∀当且仅当其满足任一访问树Ti∈TS。另外,DO 还需要产生一个对称的会话密钥k,用于加密原始数据的相关信息,支持数据的高效更新。

然后,DO 和 CS 计算 NoiS 的密文CTNoiS={εTi(Aτi)i∈[1,N]}和会话密钥k的密文εT∀(k),计算过程如下。

步骤1DO 将PK和T∀发送给CS,CS 执行外包属性基加密算法,计算密文 C=Encrypt1(PK,T∀),并将C返回给DO。

步骤2DO 加密会话密钥k为(k)=Encrypt2(PK,k,C)。

步骤3DO 随机选择,∈Zq,计算噪声集合密文 CTNoiS。对于 ∀τi∈NoiS,执行以下步骤。

1) DO 将PK和Ti发送给 CS,CS 计算CTi′=Encrypt1(PK,Ti)并发送给DO。

至此,数据加密阶段结束,DO 得到噪声集合NoiS 密文 CTNoiS={εTi(Aτi)}i∈[1,N]、会话密钥k密文(k)和原数 据m的密文共享组件CTm={Cm,Ek(Pup)}。值得注意的是,CTNoiS和(k)的计算与原数据m无关,因此在数据m持续更新的场景中,DO 仅需更新数据的密文共享组件CTm即可。

4.4 生成索引

假设数据m的关键词集为KWm,其索引的计算步骤如下。

步骤1DO 向TA 申请搜索密钥SKS,TA 使用DO 的公钥pkDO来加密搜索密钥 En c(SKS,pkDO)并传送给DO。

步骤2DO 将CTm和εT∀(k)||C TNoiS||TS 分别存放到CS 中,并返回存储地址addrm和addrτ,令addrmτ={addrm,addrτ}。

步骤3对 ∀wj∈KWm,DO 计算搜索令牌,将 〈Tok,addrmτ〉通过交易发送给索引合约,调用索引合约更新索引I,如算法2 所示。若DO 账户没有足够的余额来支付燃料费,则系统回滚。假设只有2 个数据m1和m2被分享,其中数据m1有关键词w1和w2,密文存储地址为 addrm1τ;数据m2有关键词w1,w2,w3,密文存储地址为 addrm2τ,则生成的索引如表2 所示。索引合约的执行过程如算法 2所示。

表2 生成的索引

算法2索引合约

上述数据加密和生成索引流程如图3 所示。

图3 数据加密和生成索引流程

4.5 访问数据

假设用户u的搜索关键词集合为KWu,初始化查询结果Ru为空集。访问数据过程如下。

步骤1用户u首先计算搜索令牌集TKu={TokWi=F(SKS,wi)|wi∈KWu},然后签名搜索令牌集得到Sig(sku,TKu),并形成搜索请求〈TKu,pku,Sig(sku,TKu)〉发送给CS。

步骤2CS 将搜索请求〈TKu,pku,Sig(sku,TKu)〉转发给查询合约。该查询合约根据搜索请求执行搜索,其执行过程如算法3 所示。

算法3查询合约

步骤3针对 ∀a ddrmτ∈Ru,CS 执行操作如下。

1) 从addrmτ.addrτ中获取εT∀(k)||C TNoiS||TS 。

2) 对于∀Ti∈TS,一旦找到数据用户u的身份属性集合Au满足的访问策略树Ti,则从addrmτ.addrm中获取数据密文共享组件CTm={Cm,Ek(Pup)},并跳到第3)步;否则结束该进程,继而处理下一个数据密文地址addrmτ∈Ru。

3) CS 使用属性私钥 ASKu.AK1外包解密,调用Decrypt1(PK,εTi(Aτi),ASKu.AK1)和 Decrypt1(PK,εT∀(k),ASKu.AK1),并将结果{C Tm,CA′τi,Ck}返回给u。

4)u首先对收到的密文做第二次解密,执行式(1)和式(2)。

4.6 更新数据

在数据噪声化分享场景中,一般只更新原数据m,而无须更新噪声。具体的更新过程如下。

5 安全性证明

本文协议通过加密实现了数据的隐私保护和密文搜索,因此本节将证明本文协议具有选择明文攻击下的不可区分性和适应性选择关键词语义安全。

5.1 选择明文攻击下的不可区分性证明

证明假设一个概率多项式时间敌手A 的优势在之前的安全模型的定义中是AdvA,然后证明可以基于A 构建敌手 A ′,使 A ′能够破解属性基加密算法难以区分的多重加密,在接下来的安全博弈中具有与AdvA相同的优势。

初始化。A 获取属性基加密算法的公钥,然后发送公钥给敌手A。相应的主密钥只有属性基加密算法的挑战者C 知道。

阶段1。A 提交属性集合A1,A2,A3,···,An1。为了产生相应的属性密钥,A' 对于每个属性集Al,l∈[1,n1]向挑战者C 生成一个属性密钥查询。然后 A ′将生成的私钥 ASKl={AK1,l,AK2,l}l∈[1,n1]发送给敌手A。

步骤1A ′随机选择一个秘密的会话密钥k并且在相应的访问策略树加密k。相应的密文计算过程为

阶段2。在没有一组属性可以满足挑战中的任何访问策略树的条件下重复阶段1。

猜测。敌手A 从μ∈[0,1]输出猜测u′。然后,敌手 A ′输出u′结束游戏。

根据之前定义的安全模型,敌手 A ′的优势攻破具有多重加密的属性基加密算法的概率是AdvA=。上述等式表明,如果在本文的安全模型中AdvA是不可忽略的,那么对于敌手也具有不可忽略的优势AdvA=AdvA′来打破具有多重加密的属性基加密算法的安全性。证毕。

5.2 适应性选择关键词语义安全

阶段2。生成模拟安全索引I*。模拟器在{0,1}l随机选择n个元素作为模拟搜索令牌,并生成模拟安全索引I*。在RealA(λ)中采用伪随机方法F构造索引,而模拟安全索引I*由模拟器随机生成的字符串代替。根据伪随机函数的安全性,在搜索密钥SKs未知的情况下,敌手A 在计算中无法区分随机字符串和伪随机函数F的输出结果。因此,敌手A在计算中无法区分I和I*,故negl2(λ),其中IndexGen 是索引生成算法。

本文用Advan(A(C))来表示对手A 能辨别真实的密文和随机密文的优势,用Advan(A(I))来表示对手A 辨别真实的加密索引和随机字符串的优势,则

根据上述证明,对于在任意概率多项式时间的外部敌手A,RealA(λ)和 IdealA,S的输出是不可区分的,因此,本文协议满足适应性选择关键词语义安全。证毕。

6 性能分析

本节将介绍所提出的数据噪声化分享协议在功能和性能方面与其他现有工作的对比。

6.1 功能对比

文献[10-11,27]与本文协议类似,因此将本文协议与其进行功能对比,对比结果如表3 所示。文献[10]方案实现了解密计算的外包,但是用户端的加密计算开销与访问策略树属性数量成正比,而且数据关键字以明文的形式出现在区块链。文献[11]方案将可搜索加密和区块链技术相结合实现数据隐私保护,但不支持高效的数据更新。文献[27]方案依赖半可信服务器,而且未考虑密文之上的数据搜索。

表3 功能对比

6.2 性能对比

表4 展示了本文协议与文献[10-11,27]在数据主端的加密计算、数据用户端的解密计算、搜索令牌计算、数据搜索计算和数据更新开销的计算代价进行对比。其中,Te表示指数运算;Tm表示乘法运算;Tp表示双线性对操作;TD表示一次对称加解密;H表示散列运算;F表示伪随机函数;表示访问策略树中的叶子节点个数;k表示用户属性数量;kn表示搜索关键词的数量;符号—表示不适用;nz表示噪声集合中噪声因子的数量;S表示满足访问结构的最小属性集合数量。

表4 性能对比

1) 数据主端的加密计算。文献[10-11]方案没有实现数据的噪声化处理,所以数据主端的加密开销与访问策略树的叶子节点数量成正比。文献[27]方案的数据主端加密开销与叶子节点数量和噪声因子数量成正比。本文协议提供不同程度的噪声化数据,所以数据主端的加密开销与噪声因子数量成正比;又由于将访问策略计算的加密部分外包给了CS,所以数据主端的加密开销与叶子节点数量无关。此外,本文协议只在初始化时需要计算噪声因子密文,后续对数据进行噪声化加密时只需采用数据更新算法即可,其复杂度与噪声因子数量无关。而文献[10-11]方案若要提供不同程度的噪声化数据,需要对数据执行nz次加密,显然本文协议具有显著优势。

2) 数据用户端的解密计算。文献[10]方案将解密操作的部分加密外包给了CS,但是数据用户端的解密开销与用户的属性数量成正比。文献[11]方案的数据用户端解密开销与访问控制策略和用户属性数量皆无关,仅需要一次双线性对运算,一次乘法运算和一次对称加密计算。文献[27]方案的数据用户端的解密开销与访问策略树的复杂程度和用户的属性数量有关,需要4S+2次双线性对运算,2S+1次乘法运算,2S次指数运算,一次对称加密运算。本文协议将与访问控制策略相关的解密运算外包给了CS,所以数据用户端的解密计算需要2 次双线性对运算,3 次乘法运算,一次对称加密运算。

3) 搜索令牌计算。文献[27]方案不支持对密文进行检索,所以搜索令牌计算开销不存在。文献[10]方案采用明文关键字进行搜索,所以搜索令牌计算开销记为0。文献[11]方案将属性基加密与可搜索加密结合,所以计算搜索陷门时需对用户的每个属性做运算,故计算搜索开销与用户的属性数量成正比;计算单个关键字陷门需要2k+1次指数运算、k次乘法运算,1+k次哈希运算。本文协议需对每个搜索关键词计算一次伪随机函数,因此计算代价为nk F。

4) 数据搜索计算。本文协议和文献[10]方案在构建索引时皆采用基于键值对的查找表方式,因此数据搜索计算的代价皆为常数级。而文献[11]方案将访问控制策略应用于关键字搜索上,当用户的搜索陷门与索引陷门相匹配且用户的属性满足访问控制策略时,搜索匹配才能成功,所以文献[11]方案搜索开销与用户的属性数量成正比。

5) 数据更新开销。文献[27]方案和本文数据更新需要3 次乘法运算,一次指数计算和一次对称加密计算,与访问策略和噪声因子数量无关,更新开销较少。

6.3 实验分析

为了更准确地评估协议性能,本文在系统初始化、密钥生成、用户加密、索引生成、搜索令牌生成、搜索、用户解密和用户更新密文的时间方面进行仿真测试。本节实验选取 JPBC(java pairing-based cryptography library)库中提供的 A 类椭圆曲线,伪随机函数采用 HMAC-SHA256,智能合约采用 solidity 语言,运行在以太坊虚拟机中,使用web3.js 库对部署的3 个智能合约进行调用和测试。本文实验的硬件环境为 Intel(R) Core(TM)i5-4210M CPU @ 2.60 GHz,RAM 为8 GB。

数据加解密的运行开销如图4 所示。图4(a)描述了在不同数量的噪声因子下,数据主端的加密时间。数据主端加密开销主要包含三部分:数据明文的加密即共享组件的计算、会话组件的加密以及噪声集合的加密。共享组件计算和会话组件加密的时间复杂度为O(1),而噪声集合密文的计算开销与噪声因子数量成正比。由于使用了具有外包加解密的CP-ABE 算法,有关访问策略的计算部分都外包给了CS,用户端属性基加密的开销与属性数量无关,这很大程度减少了用户端的计算开销。此外,数据主仅在初始化时需计算噪声集合密文,在后续数据更新时不需要重新计算噪声密文。而文献[27]方案数据主端的加密时间包含了有关访问策略的计算部分,开销大于本文协议。图4(b)描述了当噪声因子数量为1 时,各方案的数据主端加密时间。由于使用了外包加解密的CP-ABE 算法,本文协议的数据主端加密时间几乎不受属性数量影响,而文献[10-11,27]方案的数据主端加密时间与属性数量近似成正比。图4(c)描述了在不同的满足访问策略树的最小属性数量下,数据用户端的解密时间。本文协议的数据用户端解密开销主要包含三部分:会话组件密文解密运算、噪声密文解密运算、加噪数据的运算。尽管数据主设置了多个噪声密文集,但是数据用户在解密时只需解密与其属性集合匹配的噪声密文,所以用户解密时间与噪声因子数量无关。同样,由于本文协议使用了外包加解密的CP-ABE 算法,用户端的解密时间与属性数量也无关,解密开销较低。文献[11]方案中的数据用户端解密不包含与访问策略相关的运算,所以解密时间与属性数量无关。而文献[10-27]方案中的数据用户端解密包含与访问树相关的运算,所以解密时间与属性数量成正比。综上,本文协议在解密时间上略高于文献[11]方案,但远低于[10,27]方案。

图4 数据加解密的运行开销

图5(a)描述了当用户属性数量为10 时,各方案搜索令牌的生成时间和搜索时间。本文采用HMAC-SHA256 算法生成搜索令牌,在Java 语言环境下经1 000 次独立实验测得搜索密钥初始化时间平均为102 ms。当搜索关键词数量为10 时,在搜索密钥已初始化的情况下,搜索令牌生成时间为4 ms。当搜索关键词数量为20 时,在搜索密钥已初始化的情况下,搜索令牌生成时间为6 ms。搜索关键词数量越多,生成搜索令牌的花费开销平均到计算单个关键词搜索令牌的开销上越小,因此具有较高的效率。而文献[11]方案中搜索令牌的计算步骤包括指数运算、乘法运算和哈希运算,搜索令牌的生成时间与搜索关键词数量成正比。图5(b)描述了当搜索关键词数量为10 时,各方案的搜索令牌生成时间。本文协议搜索令牌生成时间与数据用户属性数无关。而文献[11]方案中搜索令牌生成时间与用户属性数量成正比。

图5 搜索令牌的生成时间和搜索时间

图5(c)和图5(d)展示了各方案执行查询合约的搜索时间。假设索引表中存储50 个键值对,每个键值对存储10 个密文存储地址。图5(c)描述了当用户属性数量为10 时,各方案搜索时间与搜索关键词数量之间的关系。本文协议和文献[10]方案在构建索引时皆采用基于键值对的查找表方式,而文献[11]方案采用基于属性的可搜索加密的方式,其需与关键词和访问策略进行匹配,所以本文协议在搜索效率上高于文献[11]方案。图5(d)描述了当搜索关键词数量为10 时,各方案搜索时间与用户属性数量的关系。本文协议和文献[10]方案在构建索引时皆采用基于键值对的查找表方式,所以搜索计算开销与用户属性数无关。而文献[11]方案中的搜索计算开销与用户属性数量成正比。

图6(a)和图6(b)分别描述了数据主端数据更新时间与用户属性数量和噪声因子数量之间的关系。数据主端更新一个密文数据大约耗费4.25 ms,更新的计算开销与访问策略和噪声因子数量皆无关,因此数据更新效率高。

图6 数据更新时间

7 结束语

本文采用密文策略属性基加密算法和智能合约技术,构造了一套安全且高效的噪声化数据分享控制协议。本文协议实现了对不同类型的数据用户可以访问到的数据精度的控制。首先,为了抵抗恶意服务器,本文协议利用智能合约机制实现数据搜索;其次,为了减轻客户端的计算开销,属性加解密过程被外包给云服务器;其次,本文协议支持密文的快速更新,更新的时间开销与访问策略复杂度和噪声因子数量无关;最后,安全性分析证明本文协议具有密文不可区分性和适应性选择关键词语义的安全性,性能分析与实验评估证明了本文协议在客户端的计算开销、搜索效率和数据更新开销等方面具有优良的性能。

猜你喜欢
令牌密文解密
一种针对格基后量子密码的能量侧信道分析框架
称金块
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
炫词解密
解密“一包三改”
炫词解密
基于路由和QoS令牌桶的集中式限速网关
动态令牌分配的TCSN多级令牌桶流量监管算法
云存储中支持词频和用户喜好的密文模糊检索