1、2023 年 10 月 Journal on Communications October 2023 第 44 卷第 10 期 通 信 学 报 Vol.44 No.10 基于区块链的噪声化数据分享控制协议 谢晴晴1,杨念民1,冯霞2(1.江苏大学计算机科学与通信工程学院,江苏 镇江 212013;2.江苏大学汽车与交通工程学院,江苏 镇江 212013)摘 要:区块链提供了一种在不可信网络中进行信息分享的可信通道。然而区块链账本是公开透明的,敏感数据直接明文存储在区块链中会泄露用户隐私。考虑到隐私保护,用户更倾向于提供噪声化数据。另外,面对不同的应用场景,用户需要提供的数据噪声化程度也不同。为
2、此,基于区块链和智能合约技术,采用密文策略属性基加密(CP-ABE)算法设计了一套安全、高效且支持安全搜索的噪声化数据分享控制协议。首先,采用可外包的密文策略属性基加密算法,减少用户端的计算负担。其次,利用智能合约来实现密文之上的数据搜索,预防恶意服务器的恶意操作。再次,所提协议能将数据更新复杂度降低至 O(1),对数据实时更新的应用场景友好。最后,安全性分析和仿真实验证明了所提协议的安全性和可行性。关键词:区块链;噪声化数据分享;访问控制;可搜索加密 中图分类号:TP309 文献标志码:A DOI:10.11959/j.issn.1000436x.2023177 Blockchain-bas
3、ed noisy data sharing control protocol XIE Qingqing1,YANG Nianmin1,FENG Xia2 1.School of Computer Science and Communication Engineering,Jiangsu University,Zhenjiang 212013,China 2.School of Automotive and Traffic Engineering,Jiangsu University,Zhenjiang 212013,China Abstract:Blockchain provides a tr
4、usted channel for information sharing in an untrusted network.However,blockchain ledgers are public and transparent.Hence,the sensitive data stored in plaintext on the blockchain will compromise user privacy.Considering privacy preservation,users are more inclined to provide noisy data.And in differ
5、ent application scenarios,the level of data noise that users need to provide also varies.To this end,a secure,efficient,and searchable noisy data sharing control protocol was proposed based on the blockchain and smart contract technology with the cipher-text policy attribute-based encryption(CP-ABE)
6、algorithm.First,an outsourced CP-ABE algorithm was introduced to reduce the computing burden on the user side.Secondly,smart contract was implemented to perform data search on ci-phertext,which could prevent malicious operations by malicious servers.Third,the proposed protocol reduced the data updat
7、e complexity to O(1),which is friendly to the scenarios with real-time data update.Finally,security analysis and simulation experiments demonstrate the security and feasibility of the proposed protocol.Keywords:blockchain,noisy data sharing,access control,searchable encryption 0 引言 区块链技术具有难以篡改、公开透明、
8、去中心化等优点,是数字加密货币的底层核心技术1。目前已有许多学者基于区块链技术来实现数据的可信分享。以金融供应链为例,传统金融体系存在着信息不对称、信息孤岛、结算不能自动完成等缺点。以区块链为底层技术的金融供应链可以将银行、核收稿日期:20230511;修回日期:20230904 基金项目:国家自然科学基金资助项目(No.62002139,No.62272203);江苏省自然科学基金资助项目(No.BK20200886);中国博士后科学基金资助项目(No.2019M651738)Foundation Items:The National Natural Science Foundation o
9、f China(No.62002139,No.62272203),The Natural Science Founda-tion of Jiangsu Province(No.BK20200886),China Postdoctoral Science Foundation(No.2019M651738)第 10 期 谢晴晴等:基于区块链的噪声化数据分享控制协议 199 心企业、二三级供应商和其他金融机构上链,支持资金流、信息流、信任流同时传递,并通过嵌入智能合约实现协议的自动执行,提高信息共享的效率,降低信任和资金传递成本2。然而,区块链的开放特性使所有节点都可以复制和共享区块链上的数据,查
10、看所有交易历史。这给敏感数据的隐私保护带来了挑战3。为了解决隐私泄露的问题,许多学者从密码学的角度出发来设计解决方法。牛淑芬等4提出了一种基于联盟链的可搜索加密方案。该方案将区块链技术和可搜索加密算法相结合,通过代理重加密技术保障数据在不同医院之间进行传输时不会泄露患者的敏感信息,从而解决了病例数据在不同医院中共享的问题。薛腾飞等5建立了基于区块链的医疗数据共享模型,采用代理重加密方案解决了访问控制问题。Chen 等6提出了一种基于区块链的物联网跨域数据共享方法,使用门限代理重加密的方法对密文进行处理,避免恶意的代理机构与访问者合谋,保证数据在跨域存储、共享过程的安全性。但是目前已有的基于区块
11、链的数据分享协议皆不适用于数据的噪声化分享场景。例如,导航服务应用程序需要精确的位置数据,外卖服务中顾客可以仅提供楼栋号而非具体的房间号以保护隐私。在医疗健康数据的共享中,医院为了保护病人的隐私,对一些敏感数据进行不同程度的噪声化处理,然后根据数据用户的不同需求来提供不同精度的数据。在社交平台上,用户出于人身安全的考虑,可以先将自己的位置信息进行零度、轻度和重度的噪声化处理后,再分别发布给家人、普通朋友和应用程序。上述情况皆可以归结为数据的噪声化分享控制问题,即通过控制用户访问到的数据精度来实现数据的噪声化分享控制。为此,本文将智能合约和密文策略属性基加密(CP-ABE,ciphertext
12、policy attribute-based encryp-tion)算法相结合,设计了一种基于区块链的噪声化数据分享控制协议。首先采用支持外包的CP-ABE 算法来减少用户端的加解密计算负担。其次,利用智能合约来实现密文之上的数据搜索,预防了恶意服务器的非法操作,实现了高效、安全且可搜索的数据分享功能。具体来说,本文协议的主要贡献如下。1)本文将智能合约、云计算技术和 CP-ABE算法相结合,实现了数据的噪声化细粒度分享控制,不但保护了数据隐私,而且能够提供可信的数据搜索结果。2)本文协议可以支持密文同态运算,使数据更新的计算复杂度为 O(1)。因此本文协议适用于数据实时更新的应用场景。3)
13、本文协议的安全性和性能评估分别得到了充分的分析和验证,表明本文协议具有安全性和可行性。1 相关工作 本节主要介绍访问控制技术和基于区块链的数据分享两方面的相关工作。1.1 访问控制技术 基于属性的加密(ABE,attribute-based encryp-tion)技术使数据所有者能够根据用户的属性对敏感数据进行细粒度的访问控制。ABE 的概念最早由Sahai 等7提出,其原型来源于基于身份的加密。根据解密策略的位置不同,ABE 可以分为密钥策略属性基加密8(KP-ABE,key policy attribute-based encryption)和密文策略属性基加密9(CP-ABE,ciph
14、ertext policy attribute-based encryption)。在KP-ABE 中,密钥关联于一个访问控制策略,密文关联于数据属性集合;在 CP-ABE 中,密文关联于一个访问控制策略,密钥关联于用户属性集合。无论是 KP-ABE 还是 CP-ABE,只有属性集和访问控制策略完全匹配时,用户才能解密该密文。与传统加密方法相比,ABE 实现了一对多加密,降低了密钥管理开销。ABE 技术是最适用于云存储的加密方法之一,已被广泛研究。随着区块链技术的发展,分布式存储技术得到广泛关注,迎来了 ABE 与区块链相结合的热潮。汪玉江等10提出基于 ABE 和区块链的个人隐私数据保护方案
15、,实现个人数据的一对多的安全传输和数据的细粒度访问控制。牛淑芬等11针对中心化云存储带来的数据安全和隐私保护问题,提出了一种区块链上基于云辅助的密文策略属性基数据共享加密方案,确保了数据的安全存储。Zhang 等12结合区块链技术、密文策略分级属性加密技术和星际文件系统设计了一种语音数据加密的分布式存储方案,确保了语音数据的安全性、难以篡改性和可扩展性。Wu 等13提出一种基于区块链的隐藏策略和属性访问控制方案,实现属性和策200 通 信 学 报 第 44 卷 略的私密性,增强数据的安全性。Yin 等14针对区块链物联网中指定接收者的敏感数据安全共享问题,提出一种基于去中心化密钥生成和可编程密
16、文的私有数据共享方案。该方案设计了一种新的密文策略去中心化密钥属性基加密算法,以防止敏感数据泄露。Zhang 等15针对车联网面临的敏感数据暴露、数据易受非法访问和篡改、云服务器单点故障等问题,提出一种基于属性加密的区块链数据访问方法。为了加强隐私保护,属性被隐藏,所有生成的交易都记录在区块链上以供审计。Yu 等16提出了一种基于区块链的具有属性撤销的细粒度访问控制算法,并应用于物联网应用系统中。Li 等17针对医疗行业的安全存储、可靠共享和隐私保护问题,提出了一种基于属性和同态密码系统的区块链电子医疗系统。系统中应用的属性基加密算法实现了基于部分密文的半策略隐藏和动态权限更改的功能。1.2
17、基于区块链的数据分享 随着区块链技术的发展,去中心化存储模式进入大众视野。去中心化存储方式可以解决传统云存储系统的单点故障问题,与中心化存储相比具有价格低、安全性高等诸多优势。此外,区块链具有难以篡改、多方可信等特征,可以有效解决数据篡改和服务器不可信等问题。为此相关学者基于区块链技术陆续提出了一系列的数据安全分享方案。Liu 等18针对医疗数据泄露问题,将区块链技术和基于属性的可搜索加密技术结合,实现医疗数据的安全共享。Long 等19针对工业区块链隐私泄露问题,结合对称加密和同态加密技术,提出数据隐私保护方法。Huang 等20将联盟链与云计算相结合提出了一套分布式医疗数据隐私保护方案。该
18、方案通过云服务器为区块链节点提供服务并设计了基于区块链的智能医疗分布式数据管理架构。Regueiro 等21利用区块链技术和 Paillier 加密算法提出了一种用于健康数据统计分析的隐私保护方法。该方法能够在保护患者隐私的前提下提高数据分析的准确性。Gochhayat 等22针对物联网和边缘设备的快速增长所带来海量数据的安全存储问题,提出了一种新颖的基于区块链技术的轻量级去中心化加密云存储架构。Agyekum 等23提出了一种基于区块链和代理重加密算法的物联网数据安全共享方案,实现数据的机密性、完整性和安全性。Zhang 等24基于 CP-ABE 和区块链提出了一套轻量级、去中心化且多权限的
19、访问控制方案,用以保证车联网用户的信息安全和隐私保护。Liu 等25提出了一种基于 CP-ABE 的分层物流数据访问控制方案,以超级账本中的成员身份代替传统的密钥分发中心来保证用户私钥的安全性。但是以上工作仅能实现部分的如下功能:1)隐私保护的数据搜索;2)安全可信的数据搜索;3)针对搜索权限的细粒度控制。2 预备知识 本节主要介绍本文使用的密码学知识,包括双线性配对和 CP-ABE 方案。2.1 双线性配对 设0G和TG均为q阶大素数循环群,称映射00:Te GGG为双线性配对,e满足下列条件。1)双线性:对于任意0,x yG和任意,qa bZ,都有()(,),ababee x yyx。2)
20、非 退 化:若g是0G的 生 成 员,则(,)1TGe g g。3)可计算:对于任意0,x yG,(,)Te x yG可被有效计算。2.2 密文策略属性基加密(CP-ABE)方案 CP-ABE将访问策略嵌入密文中,将用户的身份属性集合嵌入用户的身份私钥中。只有当用户的身份属性集合满足数据的访问策略时,该用户才能成功解密获得明文。然而,在传统的CP-ABE系统中,加解密需要花费较大的计算开销,不但导致数据分享延迟,而且不适用于资源受限的物联网场景。为此,很多研究学者提出了支持加解密外包的CP-ABE方案26,基本框架如下。1)Setup(1,)(PK,MSK)kL。输入安全参数1k和属性空间L,
21、输出公钥PK和系统主密钥MSK。该算法首先选择一个生成元为g、阶为素数p的双线性群0G,任意选取0hG和,pZ;然后,为属性空间L中的每个元素ia随机选择ipvZ,并计算pkivig;最 后,输 出 系 统 公 钥0PK,pk|iviiLG g h gga和系统主密钥MSK,iigv aL。2)KeyGen(MSKASK,)uuA。输入主密钥MSK和用户属性集uA,输出用户属性私钥第 10 期 谢晴晴等:基于区块链的噪声化数据分享控制协议 201 12ASK(AK,AK)u。该算法随机选择,prZ,计算1112AK,jrvrujjDghDgDgaA,2AKrg,12ASKAK,AKu。3)1E
22、ncrypt(PK,C)TT。输入公钥PK和访问策略树T,输出中间密文CT。该算法的计算复杂度与访问策略树T有关,即NumL()eafO,其中NumLeaf是访问策略树T的叶子节点数。从访问策略树T的根节点开始为T的每个节点x赋予一个阶为xd的多项式xq,令xk为节点x的门限值,则1xxdk。对于T的根节点r,随机选择psZ,令(0)rqs,并选择rd个随机整数来确定多 项 式rq。对 于 其 他 节 点x,令 parent(0)(index()xxqqx,选择xd个随机整数来确定多项式xq,其中parent()x是节点x的父节点,当前节点是x的第index()x个子节点。令X表示T中所有叶子
23、节点构成的集合,att()x表示节点x对应的属性,该算法输出1134CT,ssT CgCh(0)|att(),jxv qjjCgax xX。4)2Encrypt(PK,CT)CTm。输 入 公 钥PK、明文m和中间密文CT,输出密文CT。该算法的计算复杂度为(1)O。该算法选择一个随机数2psZ,计 算22123(,),ssCme g gCgC 12124,ssssgCh,输出密文CT(0)1234,|att()jxv qjjT C C C CCgax。5)11Decrypt(PK,CT,ASK.AK)uC。输入公钥PK、密文CT、用户属性私钥分量1ASK.AKu,输出外包解密结果C。该算法的
24、计算复杂度与访问策略树T有关,即()2O kS,其中,ukA表示用户属性个数,S表示满足访问策略树最小的内部节点集合。该算法首先引用一个递归算法decryptNode,其具体定义参考文献9。假设x为访问策略树的任一节点,若S能 够 满 足 访 问 策 略 树T,则(01)decryptNode(CT,ASK.AK,)(,)xrquxe g g。然后,该算法对根节点r执行decryptNode算法,记作1(0)decryptNode(CT,ASK.AK,)(,)rrqurFre g g 1(,)rse g g,并计算1324(,)(,)re D CBe DCF2(,)rse g g。最终,该算法
25、输出12,CC CB,其中12T,CC C。6)22Decrypt(,ASK.AK)uCm。输入中间密文12,CC C B和用户属性私钥分量2ASK.AKu,输出明文m。该算法的计算复杂度为()1O。该算法计算222122(,)(,)(ASK.AK,)(,)rsussrC Bme g ge g gmeCe gg。3 模型设计 本节主要介绍系统模型和安全模型。3.1 系统模型 基于区块链的噪声化数据分享控制系统模型如图1所示,主要包括四类主体:可信机构(TA,trusted authority)、数据主(DO,data owner)、数据用户(DU,data user)、云服务器(CS,clou
26、d server)。图 1 基于区块链的噪声化数据分享控制系统模型 1)TA。TA生成系统参数和系统主密钥,为用户分发属性私钥,维持属性列表。2)DO。DO首先为待分享的敏感数据设置访问策略,从数据文件中提取关键字,然后加密数据文件,将密文存储到云服务器中并获取存储地址,最后在区块链中生成关键字索引列表,并部署索引合约。3)DU。DU首先计算搜索令牌,将公钥和搜索令牌发送给云服务器,然后云服务器对数据密文进行半解密,并将半解密结果返回给DU,最后DU在本地计算相应的噪声化数据。4)CS。CS负责存储DO上传的数据密文,并提供外包加解密服务。智能合约包括属性合约、查询合约和索引合约。其中,属性合
27、约维护属性列表;查询合约根据DU给出的搜索令牌来寻找相应的数据密文存储地址;索引合约建立关键字搜索令牌和密文地址的映202 通 信 学 报 第 44 卷 射关系。各个主体之间的交互流程如下。TA为DU计算属性私钥1、属性私钥2和证书,并将属性私钥1和证书上传到区块链,属性私钥2交给DU保存;DO将公钥和访问策略发送给CS;CS执行外包CP-ABE的加密算法,并将访问策略密文发送给DO;DO加密消息和噪声并将完整密文上传到CS;DO根据关键词生成索引,部署并调用索引合约;DU将搜索请求发送给云CS;CS将搜索请求转发给查询合约;区块链运行查询合约,并将查询到的密文地址和属性私钥1返回给CS;CS
28、执行外包CP-ABE的解密操作,将得到的中间密文并返回给DU;DU进行本地解密,计算得到噪声化数据。3.2 安全模型 考虑到本文所提方案是通过加密来实现数据的隐私保护和密文搜索的,因此本节讨论的安全模式针对2种典型的安全标准:选择明文攻击下的不可区分性和适应性选择关键词语义安全。1)选择明文攻击下的不可区分性 定义 1 为证明选择明文攻击下的不可区分性,本文定义了敌手和挑战者之间的交互性游戏。初始化。挑战者运行初始化程序并且向敌手发送公钥PK。阶段1。敌手提交属性集合12,nAAA进行解密密钥查询。作为响应,挑战者运行属性密钥生成算法生成相 应的 属 性 密钥ASKj,其 中11,jn,这些属
29、性私钥发送给敌手。挑战。敌手向挑战者传递2个明文集0001,NoiS iiNm和1111,NoiS iiNm,2个集合中对应的元素长度相同,并设置相关的访问策略树为*1,TS iiNT和*T。注意,阶段1中敌手查询属性私钥的任一属性集合皆不满足任一访问策略树*1,TS iiNT和*T。在这里如果任何授权用户的属性满足1,iT iN,那么它也一定满足*T。挑战者随机抽取一个比特0,1,对明文集1,NoiSuuuiiNm的元素加密,生成密文集合*NOiSCT,CTuum。随机生成一个会话密钥k,计算相应的密文*()Tk。然后把生成的密文发给敌手。在实际的加密过程中,中间密文并不会发送出去,而是将最
30、终生成的密文发送给敌手。所以在安全游戏中无须考虑中间密文。阶段2。同阶段1,敌手提交属性集合12211,nnnAAA进行解密密钥查询,挑战者返回相应的属性私钥。注意,此处12211,nnnAAA要求均不能满足挑战阶段的任何访问策略树。猜测。敌手输出猜测0,1。本文定义敌手的优势在这个游戏中为1AdvPr2。定理 1 如果任意多项式时间的敌手在以上的安全游戏中的优势Adv是可忽略的,那么本文协议是CPA安全的。2)适应性选择关键词语义安全 本文在有状态的模拟器和敌手之间采用基于模拟的游戏,允许泄露访问模式和搜索模式来证明安全。信息泄露情况采用2个泄露函数进行描述,即11,(),()iiinL D
31、D nDD,输入数据文件集合D,输出数据文件集合的大小、数据文件数量、每个数据文件的大小和标识符;2L定义为2(,)(AP(),Tok)wLD ww,输入数据文件集合和查询关键词w,输出关键词的访问模式AP()w和搜索令牌。在挑战者、敌手以及模拟器之间进行的游戏定义如下。Real()。挑战者根据安全参数初始化系统、敌手给挑战者文件集合D,挑战者根据索引生成算法和数据加密算法生成安全索引I和加密文档D并给敌手。敌手向挑战者发起多项式次查询,对于每次查询q,查询的关键词产生搜索令牌并发送给,最后输出一个比特位作为游戏的输出。Ideal()。数据文件集合D,给定泄露函数1L和2L,模拟器产生并发送*
32、(,)IC给。然后敌手重复向模拟器发起多项式次查询,对于每次查询q,模拟器根据泄露函数2L返回相应的搜索令牌*Tokw,最后敌手输出一个比特位作为该概率实验的结果。4 交易数据隐私保护方案 本节介绍协议的具体构造,假设本文涉及的所有成员都有自己的公私钥对,记为entityentitypk/sk,其中entity指代实体名称。本文协议的主要标记符说明如表1所示。第 10 期 谢晴晴等:基于区块链的噪声化数据分享控制协议 203 4.1 系统初始化 TA首先设置用户属性空间1,iinLa,调用Setup(1,)(PK,MSK)kL 产生系统公钥PK和主密钥MSK,然 后 定 义 公 开 的 伪 随
33、 机 函 数*:0,10,10,1lkF,并生成随机搜索密钥SK0,1kS。4.2 用户注册 用户注册过程是DU、TA和区块链之间的交互,如图2所示,主要步骤如下。图 2 用户注册时序 步骤1 用户u向TA发送二元组,pkuuA以请求计算属性私钥ASKu,其中uA是该用户的身份属性集合,pku是该用户的公钥。步骤 2 TA首先调用KeyGen(MSK,)uA ASKu算 法 为 用 户 生 成 属 性 私 钥12ASKAK,AKu 并 为 用 户 分 发 证 书TACert(sk,pk)u;然后将TACert(sk,pk),pk,uuuA上传到区块链中,返回交易号txIDCu;再以pku为键,
34、1AKtxIDCu为值调用属性合约,属性合约的执行过程如算法1所示。若TA账户没有足够的余额来支付矿工收取的燃料费,则系统回滚;最后将属性私钥分量2ASK.AKu和搜索密钥SKS发回给DU。算法 1 属性合约 输入 键值对1PK,AK|txIDuCu 输出 属性表ASKList 1)判断属性表ASKList是否存在,若存在则跳至步骤3),若不存在则执行步骤2);2)定义并令属性表ASKList为空;表 1 主要标识符说明 参数 含义 PK,MSK,SKS 系统公钥、系统主密钥和搜索密钥 uA 用户u的身份属性集合 12ASKAK,AKu 用户u的属性私钥,是二元组 TACert(sk,pk)u
35、 TA 所签发的用户u证书,其中TAsk是 TA 的私钥,pku是用户u的公钥.XY 取X元组中的Y分量值()kE 对称加密算法,其中k是对称密钥 1,NoiS iNi 噪声集合,其中iTG noi(,)im 噪声化函数,输出对原数据m添加噪声值i之后的噪声化数据,其中NoiSi 1,iiNT 访问策略树集合,其中iT规定了只有满足该访问策略树的用户才能获得噪声化数据noi(,)im T 所有1,iT iN析取得到的访问策略树,其定义为用户属性集满足T当且仅当其满足任一访问树TSiT CTm 原数据 m 的密文共享组件 NoiSCT 噪声集合NoiS的密文()Tk 会话密钥k的密文 12KWS
36、,vw ww 关键词空间,包含v个关键词 Tokiw 关键词iw搜索令牌 204 通 信 学 报 第 44 卷 3)在ASKList中新增键值对1PK,AK|txIDuCu;4)返回ASKList;4.3 数据加密 DO 首先设置噪声集合1,NoiS iiN和相应的访问策略树1,TS iiNT,其中iT规定了能获得噪声化数据noi(,)im的用户类型,i随着i的增加而变大。在TS的基础上,DO设计一个新的访问策略树T,其定义为用户属性集满足T当且仅当其满足任一访问树TSiT。另外,DO还需要产生一个对称的会话密钥k,用于加密原始数据的相关信息,支持数据的高效更新。然 后,DO和CS计 算Noi
37、S的 密 文NoiS1,CT()iiTiNA和 会 话 密 钥k的 密 文()Tk,计算过程如下。步骤 1 DO将PKT和发送给CS,CS执行外包 属 性 基 加 密 算 法,计 算 密 文CT 1Encrypt(PK,)T,并将CT返回给DO。步 骤 2 DO加 密 会 话 密 钥k为()Tk 2Encrypt(PK,CT)k。步骤 3 DO随机选择,qs sZ,计算噪声集合密文NoiSCT。对于NoiSi,执行以下步骤。1)DO将PKiT和发 送 给CS,CS计 算1CTEncrypt(PK,)iiT并发送给DO。2)DO计算1()()(,)iisse g gA和()iiTA 2Encry
38、pt(PK)C,T,iiA。步骤 4 针对待分享的原数据m,DO计算up(,),(,)ssmCme g gpe g g和CT,mmC up()kEP,其中()kE 是对称加密算法。至此,数据加密阶段结束,DO得到噪声集合NoiS密文NoiS 1,CT()iiTiNA、会话密钥k密文()Tk和 原 数 据m的 密 文 共 享 组 件upCT,()mmkCEP。值得注意的是,NoiSCT和()Tk的计算与原数据m无关,因此在数据m持续更新的场景中,DO仅需更新数据的密文共享组件CTm即可。4.4 生成索引 假设数据m的关键词集为KWm,其索引的计算步骤如下。步骤 1 DO向TA申请搜索密钥SKS,
39、TA使用DO的公钥DOpk来加密搜索密钥DOE,(SK)pkncS并传送给DO。步骤 2 DO将CTm和NoiS CT()|TSTk分别存放到CS中,并返回存储地址addrm和addr,令addraddr,addr mm。步骤 3 对KWjmw,DO计算搜索令牌KWTktok(SK,)iimwSiwFw,将Tok,addrm通过交易发送给索引合约,调用索引合约更新索引I,如算法2所示。若DO账户没有足够的余额来支付燃料费,则系统回滚。假设只有2个数据1m和2m被分享,其中数据1m有关键词1w和2w,密文存储地址为1addrm;数据2m有关键词123,w w w,密文存储地址为2addrm,则生
40、成的索引如表2所示。索引合约的执行过程如算法2所示。表 2 生成的索引 键 值 1Tokw 211valueaddr,addrmm 2Tokw 212valueaddr,addrmm 3Tokw 23valueaddrm 4Tokw 4value 算法 2 索引合约 输入 搜索令牌TK,密文地址addrm 输出 索引表I 1)判断索引表I是否存在,若存在跳至步骤3),若不存在执行步骤2);2)定义并初始化映射I,使I中存储的键与关键词空间的关键词一一对应,每个键值对的值为空集;3)for tokTKiw do 4)检索I,得到键值对key,valueii;5)if keytokiiw 6)va
41、luevalueaddriim;7)更新索引表I;8)end if 9)end for 10)返回I;上述数据加密和生成索引流程如图3所示。第 10 期 谢晴晴等:基于区块链的噪声化数据分享控制协议 205 图 3 数据加密和生成索引流程 4.5 访问数据 假设用户u的搜索关键词集合为KWu,初始化查询结果Ru为空集。访问数据过程如下。步 骤 1 用 户u首 先 计 算 搜 索 令 牌 集TKTok(SK,)|KW iuWSiiuFww,然后签名搜索令牌集得到Sig(sk,TK)uu,并形成搜索请求TK,pk,Sig(sk,TK)uuuu发送给CS。步 骤2 CS将 搜 索 请 求TK,pk,
42、uu Sig(sk,TK)uu转发给查询合约。该查询合约根据搜索请求执行搜索,其执行过程如算法3所示。算法 3 查询合约 输入 搜索请求TK,pk,Sig(sk,TK)uuuu 输出 密文地址集合uR,属性私钥1AK,用户身份属性集合uA 1)判断TKverify(pk,Sig(sk,TK)uuuu,若成立则进行下一步,若不成立则返回;2)根据pku在ASKList中检索得到1AK|txIDcu;3)根据txIDcu取得用户身份属性集合uA;4)初始化uR;5)for TokKtiwu do 6)检索I,得到满足keytokiiw的键值对key,valueii,并更新valueuuiRR;7)
43、end for 8)返回 1|AK|uuRA;步骤 3 针对addrmuR,CS执行操作如下。1)从.addraddrm中获取NoiS CT()|TSTk。2)对于TSiT,一旦找到数据用户u的身份 属 性集合uA满 足的访 问 策略树iT,则从.addraddrmm中 获 取 数 据 密 文 共 享 组 件upCT,()mmkCEP,并跳到第3)步;否则结束该进程,继而处理下一个数据密文地址addrmuR。3)CS使用属性私钥1ASK.AKu外包解密,调用11Decrypt(PK,(),ASK.AK)iiuTA和1Decrypt(PK,1(),ASK.AK)Tuk,并将结果CT,iAmkCC
44、返回给u。4)u首先对收到的密文做第二次解密,执行式(1)和式(2)。22DecryptPK,ASK.AKiiuACA(1)22Decrypt(PK,ASK.AK)kuCk(2)然后对称解密up()kkDEP得到upP,最后可得噪声化数据upnoi(,)iimAmCP。4.6 更新数据 在数据噪声化分享场景中,一般只更新原数据m,而无须更新噪声。具体的更新过程如下。假设DO欲将原始数据m更新为m。DO需进行以下步骤,随机选择qZs,计算upP upupup(,)(,)ssmme g gCe g gPPPm,(+(,)sse g g),并加密upP为up()kEP。DO 将原数据的地址addrm
45、和up,()mkCEP发送给 CS。CS 根据addrm获得原数据密文共享组件mC,计算(+)(,)ssmmmCCCm e g g,最后,用新的密文共享组件upCT,()mmkCEP替换原数据的密文共享组件upCT,()mmkCEP。5 安全性证明 本文协议通过加密实现了数据的隐私保护和密文搜索,因此本节将证明本文协议具有选择明文攻击下的不可区分性和适应性选择关键词语义安全。5.1 选择明文攻击下的不可区分性证明 证明 假设一个概率多项式时间敌手的优206 通 信 学 报 第 44 卷 势在之前的安全模型的定义中是Adv,然后证明可以基于构建敌手,使能够破解属性基加密算法难以区分的多重加密,在
46、接下来的安全博弈中具有与Adv相同的优势。初始化。获取属性基加密算法的公钥,然后发送公钥给敌手。相应的主密钥只有属性基加密算法的挑战者知道。阶段 1。提交属性集合1123,nAAAA。为了产生相应的属性密钥,对于每个属性集11,lA ln 向挑战者生成一个属性密钥查询。然后将生成的私钥11,2,1,ASKAK,AKlll ln发送给敌手。挑战。敌手给一个挑战访问策略树*,*1,i iNTSTT和 2 个对应部分长度相同的明文组0001,NoiSiNm和11,NoiSm 11,iN,满足011,iiiN,01mm。要求查询阶段所查询的属性集合1123,nAAAA均不满足任何访问策略树。按照以下
47、2 个步骤对挑战明文进行加密并返回给敌手。步骤 1 随机选择一个秘密的会话密钥k并且在相应的访问策略树*T 加密k。相应的密文计算过程为 *()CPABE.Encrypt(,PK)TkTk(3)步骤 2 随机选择*qsZ,然后生成两组明 文 列 表*000001,(,)(,),ssNe g gegmmmg,*111111(,)(,),ssNe gmmgme g g。然后发送这2 个列表消息和相应的树集合1,xNT TT给挑战者C,其中*xTT是从*T 中任意选择的一个访问策略树。挑战者C第一次随机选择一个值0,1,然后使用属性基加密算法在访问策略树xT下加密m,结果如式(4)所示。类似地,对于
48、每个1,iN,C在访问策略树iT下加密*(,)sNe gmg,如式(5)所示。密文发送给敌手,对于每个,iyY 1,iN,计算*imiCCC*1()(,()usssie g g设置*,mimCCC*,jjiiiiiiiC CC CC CC,*,iiTiiAT C*,att()ijijiiiC CCCaYy。除此以外,设置*up(,)sPe g g,使用对称加密密钥加密*upP生成密文*()kupEP。现在获得密文*upCT,mkmCEP,*NoiS 1,CT()iiTiNA。最终,将挑战密文*(),CTTkm和*CTN返回给。*1*1(0)()CPABE.Encrypt(PK,),att()(
49、,)xjyTuxssssxmssjxxxv qxjmm TT CmChCggCh hCe g gaYgy (4)*(,)xsTie gmg*1)(0)(1CPABE.Encrypt,(,)(,att)(iiiyiijiisisssssissiiiv qjiiijmPKTmT CChCge g ge ggChhCggayY(5)阶段2。在没有一组属性可以满足挑战中的任何访问策略树的条件下重复阶段1。猜测。敌手从0,1输出猜测u。然后,敌手输出u结束游戏。根据之前定义的安全模型,敌手的优势攻破具有多重加密的属性基加密算法的概率是1AdvPrAdv2。上述等式表明,如果在本文的安全模型中Adv是不可
50、忽略的,那么对于敌手也具有不可忽略的优势AdvAdv来打破具有多重加密的属性基加密算法的安全性。证毕。5.2 适应性选择关键词语义安全 证明 本文假设存在一个外部敌手和一个模拟器,若对于外部敌手和模拟器能够满足,PrReal()PrIdeal()negl()(negl()是可忽略函数)。那么,可以认为本文协议满足适应性选择关键词语义安全。通过文献21的等价性证明可知,在模拟中,敌手需区分模拟器产生的密文、索引才能在游戏中取得胜利。所以,需证明第 10 期 谢晴晴等:基于区块链的噪声化数据分享控制协议 207 1PrInd 1neg()2才能证明本文协议是安全的。模拟器生成模拟数据密文*C和模拟