区块链上基于云辅助的密文策略属性基数据共享加密方案

2021-07-29 03:34牛淑芬杨平平谢亚亚杜小妮
电子与信息学报 2021年7期
关键词:数据文件关键字密文

牛淑芬 杨平平* 谢亚亚 杜小妮

①(西北师范大学计算机科学与工程学院 兰州 730070)

②(西北师范大学数学与统计学院 兰州 730070)

1 引言

为了节省本地的数据管理开销和系统维护开销,数据拥有者会选择将数据上传到云端服务器中,云存储数据共享技术就成为信息交互的一种重要方式[1]。但云存储在给用户带来便利的同时也会造成用户隐私泄露问题[2]。

可搜索加密技术[3,4]实现了数据用户利用关键字搜索陷门对密文数据进行检索,同时也不会泄露关键字。基于属性加密技术[5–7]在实现数据隐私的同时还能够实现细粒度访问控制。尽管如此,基于云存储的数据共享模式大多数依赖第三方,一旦受到攻击或缺乏监控,第三方可能会窃取、泄露、篡改或滥用数据。还有传统的云存储模式以集中存储方式运行,存在单点故障等可能导致系统崩溃的问题[8]。

区块链技术[9]的发展能够解决云存储中数据可能被篡改、完整性得不到保证的问题。区块链技术是一种特定的数据结构,这种数据结构按照时间顺序将数据区块组合成链条,由此来保证其不可篡改性和不可伪造性[10];区块链也是一种去中心化的分布式数据库,它由区块链网络中的所有节点共同维护数据,每一个节点都会对数据进行备份。但是,如何在区块链中实现数据隐私保护以及如何实现只有授权数据用户才能访问数据是目前所要面临的一个挑战[4]。

针对以上问题,本文提出一种区块链上基于云辅助的密文策略属性基(Ciphertext Policy Attribute Based Eencryption, CP-ABE)数据共享加密方案,将基于属性加密技术和可搜索加密技术相结合,实现了数据共享的隐私保护和数据安全。在本方案中,使用对称加密算法对数据文件进行加密,将加密的数据文件存储在云服务器上。基于属性加密算法则对对称密钥进行加密,并且将访问策略与关键字加密结合,密文存储在区块链上,由区块链完成搜索。保证了只有当数据用户的属性集满足密文中的访问策略并且关键字匹配时,区块链才能够返回搜索结果。本文方案中访问策略使用的是线性秘密共享矩阵[11](Linear Secret Sharing Scheme,LSSS),不仅能够实现细粒度访问控制,而且具有较高的计算效率。

2 基础知识

2.1 区块链

区块链技术起源于文献[9]发表的论文《比特币:一种点对点电子现金系统》,是一种去中心化、不可篡改、可信的分布式账本。根据不同的应用场景,区块链可分为公有链、联盟链和私有链。本文方案中所使用的区块链为联盟链,是指由特定的组织或个人参与建立的,由该群体内部共同许可的多个节点作为记账人,所有区块的产生也由这些节点之间的共识规则决定。

本文中区块的数据结构由块头和有效负载组成。块头包括块标识(Block ID)、块的大小(Block size)、前一个区块的哈希值(Pre-block hash)和时间戳(Timestamp);有效负载包括块产生者的身份(Block producer ID)、块产生者的签名(Block producer signature)和交易单(Transaction)。数据结构如表1所示。

表1 区块数据结构

2.2 共识机制

共识机制的作用就是验证无中心的分布式网络环境中数据的真实性和一致性。共识机制保证了所有节点在不依赖中心协调的情况下使得所有交易以可靠方式进行。目前,区块链在联盟链环境下最常用的是实用拜占庭容错(Practical Byzantine Fault Tolerant,PBFT)共识算法[12]。PBFT算法过程[13]如下:客户端负责将交易上传至主节点,主节点对全网交易单进行打包并广播给从节点;从节点执行验证操作,并将验证结果返回给客户端;客户端接收从节点返回的结果,若验证正确结果数大于f+1,则表示上链存储成功。

2.3 困难问题假设

3 系统模型与安全模型

3.1 系统模型

本方案的系统模型如图1所示,主要包括以下5个实体:

图1 系统模型

(1) 属性授权中心 (Attribute Authority, AA):AA是一个可信机构,主要生成系统参数、系统主密钥以及数据用户DU和云服务器CS的私钥。定义属性集合,当DU加入系统时,属性授权中心AA为其分配一个唯一标识u id和一个属性集Suid。

(2) 云服务器 (Cloud Server, CS):CS负责存储数据拥有者DO提供的加密的数据文件F以及将文件存储位置Fid发送到DO在区块链的账户。如果数据用户DU满足访问策略,CS则进行部分解密并将部分解密的密文A和相应加密的数据文件Ek(F)发送到DU在区块链的账户。

(3) 区块链 (BlockChain, BC):区块链上DO将关键字索引作为交易存储在BC上,前提是这一交易需要经过区块链验证者的验证。本文中区块链采用PBFT共识算法,该算法在全网节点不超过1/3的情况下,保证分布式节点网络的一致性。DU将搜索陷门上传到BC上,BC进行关键字密文搜索。当搜索成功后,BC将与对称密钥k有关的密文返回给CS,云服务器CS进行部分解密运算。

(4) 数据拥有者 (Data Owner, DO):DO从数据文件中提取关键字,使用对称密钥加密数据文件得到CF,然后建立关键字索引。DO定义数据文件的访问策略,并对访问策略下的对称密钥进行加密从而获得相应的密文C以及对关键字和每个属性加密得到Ci。最后,DO将加密的数据文件CF和密文C上传到CS上并且将关键字密文Ci和存储地址Fid构成的交易上传至区块链BC上形成新的区块。

(5) 数据用户 (Data User, DU):数据用户DU搜索陷门上传到区块链上,验证通过后,区块链将加密的数据文件Ek(F)与部分解密的密文A返回到DU在区块链的账户上,DU使用自己的私钥对A解密得到对称密钥k,从而能够对加密的数据文件进行解密,得到数据文件明文。

3.2 算法模型

3.3 安全模型

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

OSK(Params,L):A2选择用户的 ID和公共参数Params给挑战者B。B运行密钥生成算法输出私钥。

OTrapdoor(w):攻击者A2输入关键字w,挑战者B设置陷门发送给攻击者A2。

挑战阶段: 询问阶段1完毕,攻击者A2选择两个关键字(w0,w1)和挑战身份ID∗发送给挑战者B。挑战者B回应挑战陷门。

询问阶段2:攻击者A2进行询问,除挑战密文及其衍生不能询问外,其他同询问阶段1一致。

猜测阶段:最后敌手返回猜测δ′,如果δ′=δ,则挑战成功,输出1;否则输出0。

4 具体方案

本文所提出的方案由以下6个概率多项式时间算法组成,算法模型如图2所示,具体设计如下:

图2 算法模型

系统建立(Setup):AA随机选取一个安全参数λ,输入系统安全参数后,输出系统公共参数Params和主密钥MSK。设G和GT分别是两个阶为素数q的循环群,g是G的一个生成元,e:G×G →GT是一个双线性映射。AA定义属性集合U,每个属性x ∈U。随机选取α,β,a ∈Zp,将α作为系统主密钥MSK;然后选择两个哈希函数:H1:{0,1}∗→G,H2:{0,1}∗→G;最后,AA公布Params ={G,GT,e(g,g)α,gβ,ga,H1,H2}。

关键字加密:DO从数据文件F中提取关键字w,然后定义LSSS访问策略(M,ρ)将对称密钥k和关键字w进行加密。其中,M是l×n的矩阵,ρ为内映射函数,是矩阵M的每一行Mx到属性集合中属性ρ(x)的映射,每个属性在矩阵M中都有唯一的行与之对应。随机选取向量v=(s,y2,···,yn)∈Zq,s为要分享的秘密值。对于矩阵的每一行i ∈[1,l],计算λi=Mi·v,其中Mi为矩阵M的第i行向量。DO计算

如果等式不成立,则输出错误符号"⊥";如果等式成立,区块链节点则根据数据文件位置Fid将B以及数据用户DU在区块链上的账户发送到云服务器CS上。

正确性证明:

5 安全性证明

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

5.2 陷门不可区分性

6 性能分析

6.1 理论分析比较

本节从理论角度分析本文方案与文献[15,16]在计算效率上的优劣。其中,主要比较的运算有双线性运算TP、指数运算TE、点乘运算TM和哈希运算TH。nU为系统属性值数量、nS为数据用户属性值数量。比较结果如表2所示。

表2 效率分析

由表2可知,本文方案在系统建立阶段的计算量与文献[15]一样;本文方案在密钥生成阶段、加密阶段以及解密阶段的计算量均小于文献[15]方案;本文方案在陷门生成阶段和测试阶段的计算量大于文献[15]方案。本文方案在系统建立阶段、密钥生成阶段、测试阶段以及解密阶段的计算量均小于文献[16]方案;本文方案在加密阶段和陷门生成阶段的计算量大于文献[16]方案。

6.2 数值实验分析

本节对方案算法进行数值模拟实验。数值模拟实验是在Windows10操作系统下使用C语言的PBC(Pairing-Based Cryptography)库[17]实现的。在PC机(华硕电脑,3.1 GHz CPU, 4 GB RAM)的VC++6.0中运行。通过改变属性的数量分析本文方案的计算效率,属性的数量n分别取1, 4, 8, 12,16。实验结果是算法运行50次的平均值,如图3所示。

图3(a)、图3(b)、图3(c)分别表示系统建立算法、密钥生成算法和加密算法的运行时间与属性数量的关系。由图3(a)可知,本文方案在系统建立阶段的计算效率高于文献[16],系统建立算法的运行时间不会随着属性个数的增加而改变。由图3(b)可知,本文方案在密钥生成阶段的计算效率高于文献[16]。文献[16]密钥生成算法的运行时间随着属性个数的增加呈线性增长,而本文方案密钥生成算法的运行时间不会随着属性个数的增加而改变。由图3(c)可知,本文方案在加密阶段的计算效率低于文献[16]。

图3 属性数量与运行时间

图3(d)、图3(e)、图3(f)分别表示陷门生成算法、测试算法和解密算法的运行时间与属性数量的关系。由图3(d)可知,当属性个数>4时,本文方案在陷门生成阶段的计算效率低于文献[16]。由图3(e)可知,本文方案在测试阶段的计算效率高于文献[16]。本文方案与文献[16]密钥生成算法的运行时间都在随着属性个数的增加呈线性增长,而本文方案在这一阶段运行时间增长较为缓慢。由图3(f)可知,本文方案在解密阶段的计算效率高于文献[16]。文献[16]解密算法的运行时间随着属性个数的增加呈线性增长,而本文方案解密算法的运行时间不会随着属性个数的增加而改变,这在一定程度上减少了数据用户的计算量。

7 结束语

本文提出了一种区块链上基于云辅助的CP-ABE数据共享加密方案,该方案使用基于属性加密技术和可搜索加密技术实现了细粒度访问控制以及关键字密文搜索。搜索过程在区块链上进行,窃听者无法猜出关键字,保证了搜索的安全性。本文所提方案中还是存在一些问题有待解决:如何设计更高效的访问结构;细化区块链上对新区块的验证。在未来的工作中,将对本文方案进行改进,解决这些存在的难题。

猜你喜欢
数据文件关键字密文
履职尽责求实效 真抓实干勇作为——十个关键字,盘点江苏统战的2021
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
成功避开“关键字”
数据文件恢复专题问答
数据文件安全管控技术的研究与实现
SQL数据文件恢复工具
一种基于密文分析的密码识别技术*
云存储中支持词频和用户喜好的密文模糊检索
智能垃圾箱