APP下载

云存储中可验证的完全外包的属性基加密

2021-05-19郭丽峰王倩丽

关键词:密文外包解密

郭丽峰,王倩丽

(山西大学 计算机与信息技术学院,山西 太原 030006)

0 引言

随着互联网技术的发展,云计算作为一种新型的网络应用概念,规模不断扩大,很多企业和政府开始广泛应用云计算,作为云计算中的主要服务。云存储备受大众青睐。在当前的社会生活中,需记录的信息越来越多,数据呈指数形式甚至呈喷涌式增长,可以存储大量数据的云存储方式得到了快速的发展。同时,移动网络的蓬勃发展使得云存储变得越来越容易,人们可以随时随地访问云存储系统[1]。因此,大量用户选择将资料存放于云存储系统中,但云服务商是不完全可信的。虽然用户可以将信息加密后放在云存储器上,但加密后的数据不利于实现云共享,Sahai和Waters于2005年提出了一对多的属性基加密方案。随着云计算的发展,属性基加密方案逐渐成为云存储中最具发展前景的加密体制。

Sahai和 Waters[2]首次提出属性基加密(简称ABE)的雏形,并实现了数据隐私保护和细粒度访问控制。Goyal等[3]给出了ABE的形式化定义,并给出了密钥-策略的属性基加密(KP-ABE),KPABE是用户密钥对应一个访问策略、密文对应一组属性。随后,Bethencourt等人[4]提出了密文-策略属性基加密(CP-ABE),将访问策略与密文相关联、属性与用户密钥相关联,同时指出该方案可抗合谋攻击。随着移动互联网和智能终端的快速发展,使用移动终端访问云存储空间成为一种趋势。但由于移动终端的计算资源和电量的限制,其不能承担过重的计算负担。为解决资源限制的问题,相关学者提出外包ABE方案[5-12]。

为减少解密用户的本地计算负担,Green和Hohenberger等[5]首次提出了一种将解密运算外包到服务器的方法,利用服务器对密文进行一次转换,从而降低解密用户的计算量。但没有验证解密的正确性。文献[6]提出了一种新奇的可验证外包解密方案,该方案的密文长度和访问策略无关。但该方案只支持外包解密。文献[7]提出外包加密,利用MapReduce为用户指定的访问结构生成部分密文,同时引进一个比较繁琐的访问策略,使它能为任意策略提供外包加密。Hohenberger等人[8]提出了通过预计算降低ABE加密阶段的计算量。以上提出的方案都没有降低密钥生成阶段属性授权机构的计算负担。文献[9]在外包解密的基础上提出了外包密钥生成用于降低属性授权机构的计算量,同时验证云服务器计算的正确性,但该方案只提出了外包密钥生成和外包解密。文献[10]在外包解密的基础上通过外包指数运算实现外包加密算法,同时支持验证外包计算的正确性,但没有降低密钥生成阶段属性授权机构的本地计算量。文献[11]提出了一种可外包解密的属性基加密方案,利用双系统加密技术证明了方案在标准模型下是完全安全的。但该方案没有减轻密钥生成和加密阶段的计算负担。赵志远等人[12]提出了完全外包的属性基加密方案,即把密钥生成、加密和解密阶段全部外包到服务器上,该方案是通过增加一个默认属性来实现外包密钥生成和外包加密,完全外包的属性基加密大大减少属性权威机构、加密用户以及解密用户的本地计算量,但该方案没有验证外包计算的正确性。文献[13]提出了一种适用于雾计算的外包属性基加密,该方案通过简化系统参数降低了用户和雾节点的通信开销,但该方案没有解决权威机构在密钥生成阶段的计算负担。

针对以上问题,本文在Waters方案[14]的基础上提出了一种可验证的完全外包CP-ABE方案,该方案的主要贡献如下所示:

1)该方案将ABE的密钥分发和解密阶段的计算量外包到云服务器计算,使得权威机构和解密用户的计算量达到常量级,并由权威机构利用系统主密钥对外包解密的计算结果进行正确性验证;

2)该方案的加密阶段通过数据拥有者与服务器进行交互计算完成,使得加密用户在使用该算法进行加密过程中所进行的计算与访问结构的大小无关,并在交互过程中完成对外包计算正确性的验证。

1 基础知识

1.1 双线性群

令g是一个算法,该算法以安全参数λ为输入,输出一个元组(p,G,GT,e),其中,G,GT是素数p阶乘法循环群,且e:G×G→GT是一个双线性映射,满足以下条件:

1)双线性:∀g,h∈G和a,b∈Zp,有e(ga,gb)=e(g,g)ab;

2)非退化性:存在g∈G,使得e(g,g)在GT中的阶为p;

3)可计算性:对于 ∀g,h∈G,可以有效计算e(g,h)。

1.2 线性秘密共享方案(LSSS)

参与方集合P上的秘密分享方案∏若满足以下条件,则称其为Zp上的线性秘密共享方案:

1)∏的所有秘密份额构成Zp上的一个向量;

2)存在一个秘密份额生成矩阵Ml×n,对于M上的每一行j=1,…,l,ρ(j)将其映射到每个参与者。考虑向量v=(s,v2,…,vn)T,其中s∈Zp是秘密共享指数,向量v用于隐藏s,Mv是秘密s的l个有效份额形成的向量,其中Mjv是ρ(j)对应的份额。

LSSS可以实现线性重构。假设∏是访问结构A的一个线性秘密共享,令S是一个授权集,定义为I={i:ρ(i)∈S}。如果 {λi}是秘密s的有效份额,那么可以在多项式时间内找到一组常数{ωi∈Zp}i∈I,使得 ∑i∈Iωiλi=s成立。

1.3 安全的外包加密算法

加密阶段的外包计算利用了一个外包模幂算法[10]来实现安全外包加密,这里将该算法缩写为Exp,即。在Exp中,用户U能外包模幂运算到一个不可信服务器S上,在这个过程中,服务器S不能从输入输出中得到任何有价值的信息。

为加速计算,引入Rand子程序[15]用于产生随机且独立对(i,gi),其中,i∈Zp且g∈G。有两种方法产生独立的(i,gi),一是查表法,即提前产生一个表,其中包括一些随机独立对(i,gi)。另一种是利用一种预计算技术,如EBPV生成器[16]。本文采用EBPV生成器技术实现外包加密功能,具体如下:

1)G是一个阶为素数p的双线性群且g是G的生成元。任给u1,u2∈G以及a,b∈Zp,算法最后输出。具体算法过程如下:

2)U运行Rand,产生三对随机值 (γ1,gγ1),(γ2,gγ2),(β,gβ);

3)U在逻辑上切分将要进行计算的u1,u2,a,b。分割如下:

4)U再次运行 Rand,产生三对随机值

5)U随机向服务器S查询:

6)最后,U通过计算Q(η,gα2)·Q(ζ,gα1)是否等于gα3,用于验证S的输出结果是否正确。如果上式不成立,U输出error;否则,U按下式计算即可得到最终结果:

1.4 决策 q-Bilinear Diffie-Hellman Exponent(q-BDHE)假设

根据安全参数λ选择一个阶为素数p的乘法循环群G。随机选择a,s∈Zp,g是G的生成元。令gi表 示,给定,敌手A试图区分和随机元素Z∈GT,敌手A的优势定义为

2 云存储中可验证的完全外包的属性基加密方案

本文提出的可验证的完全外包的属性基加密方案的系统模型如图1所示。本方案共包含8个实体:权威机构(AA),密钥生成服务器(KG-CSP1,KG-CSP2),加密服务器(E-CSP),数据拥有者(DO),云存储服务器(S-CSP),数据使用者(DU),解密服务器(D-CSP)。其中,权威机构(AA)为整个系统生成公共参数,并借助密钥生成服务器(KGCSP1,KG-CSP2)为用户生成解密密钥,同时为数据使用者验证解密服务器的计算正确性;数据拥有者(DO)借助加密服务器(E-CSP)完成对明文消息的加密;云存储服务器(S-CSP)用于存储数据拥有者生成的密文;数据使用者(DU)借助解密服务器(D-CSP)完成部分解密;最后,由数据使用者执行解密操作得到明文消息。

图1 系统模型图Fig.1 System model

2.1 方案构造

本文方案在 Waters[14]的素数阶群下的CPABE方案的基础上,借鉴外包加密算法的思想[10],提出了可验证的完全外包的属性基加密方案。

1)Setup(U)→ (pk,msk):该算法由 AA 执行,以系统属性集合U作为输入,选择一个阶为素数p的乘法循环群G,g是G的一个生成元,同时随机选取h1,…,hU∈G,随机选取指数a,α∈Zp,可得公开参数为:pk=(g,ga,e(g,g)α,h1,…,hU),系统主密钥为msk=gα。

2)KeyGenKG-CSP(pk,S)→ (ISK1,ISK2):外 包密钥生成算法由两个KG-CSP执行。其输入均为公开参数pk,属性集合S。如在KG-CSP1上,首先选择随机数α1,t1∈Zp,计算K′=gα1gat1,L′=gt1,从而,得到中间密钥ISK1=(S,α1,K′,L′,{Kx′}x∈S),同理,可得中间密钥ISK2=(S,α2,K′′,L′′,{Kx′′}x∈S)。

3)KeyGenAA(pk,msk,ISK1,ISK2)→SK:密钥生成算法由AA执行。算法输入公开参数pk,系统主密钥msk,中间密钥ISK1,ISK2,计算

其中,α′=α1+α2,t=t1+t2。可以得到用户密钥SK=(S,K1,L,{Kx}x∈S,K2),其中K2=gα-α′。

4)Encrypt(pk,msk,(M,ρ),m)→CT:加密算法由DO和E-CSP交互完成。DO在访问结构(M,ρ)下加密消息m,M是一个l×n的矩阵,函数ρ是关联矩阵M的每一行到属性的映射,是一个单射函数。

DO随机选取秘密指数s∈Zp,选取一个随机向量v=(s,v2,…,vn)T用于共享加密指数s,计算λi=Miv,i=1,2,…,l,其中Mi是矩阵M的第i行。然后,DO 计算密文,其中,由DO本地计算可得;在E-CSP的帮助下完成,每个Ci的计算为

首先,DO运行Rand算法,得到随机值(γ1,gγ1),(γ,gγ2),(β,gβ),(α,gα1),(α,gα2),(α,gα3);其次,将2123拆分为

然后,DO以随机次序向E-CSP进行如下查询:

接收到E-CSP返回的消息后,DO先计算Q(ζ,gα1)·Q(η,gα2)是否等于gα3来验证外包计算的

ii正确性。若不成立,输出error,重新计算;否则,计算

综上,得到密文

并将密文发送到S-CSP进行存储。

5)KeyGenDU(SK,CT)→ (TK,RK,CT′):外 包密钥生成算法由DU执行。DU从S-CSP取得密文,从中解析出C。算法随机选择δ∈Zp,计算

DU设置恢复密钥RK=δ,转换密钥及密文,数据拥有者将转换密钥TK和密文CT′发送给D-CSP,恢复密钥RK由数据使用者自己保存。

6)DecryptD-CSP(TK,CT′)→CTpart:外包解密算法由D-CSP执行。该算法输入转换密钥TK和处理过的密文CT′。首先判断数据使用者的属性集合S是否满足密文中的访问结构(M,ρ),若不满足,输出⊥;否则,令I={i:ρ(i)∈S},计算常数集合{ωi∈Zp}i∈I使得,计算

7)DecryptDU(CTpart,RK)→m:最终解密算法由DU执行。DU接收到云服务器返回的CTpart,计算

2.2 安全性证明

定理1假设决策q-BDHE假设成立,则没有一个概率多项式时间(PPT)敌手A能以大小为l*×n*的挑战矩阵M*,其中n*≤q,选择性地打破本文的方案。

证明假设有敌手A在选择安全游戏中有优势ε=AdvA去打破本文的方案。此外,假设矩阵M的维度最大为q(q≥l*)。本文利用模拟器B去解决决策q-BDHE问题,通过敌手A和挑战者B之间的交互完成模拟,具体过程如下:

Setup模拟器B随机选择α′∈Zp,隐含地设置α=α′+aq+1,使得e(g,g)α=e(g,g)α′e(g,g)aq+1。

以下描述参数h1,…,hU的生成过程。对于x∈[1,U],随机选择zx∈Zp。若ρ*(i)=x,则令

否则,令hx=gzx。可得到系统公共参数pk=(y,e(g,g)α′,h1,…,hU)。

Query Phase I该阶段由敌手A向模拟器B进行密钥查询。A提交属性集合S给B,其中S不满足挑战访问结构M*。B接收到属性集合S时,提交(S,pk)给密钥生成服务器两个KG-CSP,每个KGCSP按如下步骤生成中间密钥:

1)随机选α1,r∈Zp,然后找到一个常数向量使得ω1=-1,(此处虽然有两个KG-CSP,但对于同一个矩阵M*计算得到同一个向量ω)。对于∀i,ρ*(i)∈S,有ω Mi*=0,向量ω必定存在,因为S不满足访问矩阵M*。

2)模拟器B隐含地定义

4)现在计算K1,x,∀x∈S。对于x∉S,简单地计算;之后为x∈S计算K1,x。

5)假设ρ*(i)=x,有

Challenge 由敌手A向模拟器B提交两个明文消息M0,M1,B 随机选择b∈{0,1},为明文Mb生成挑战密文CTb。 B 生成C=MbT·e(gs,gα′)和=gs。此处关键是模拟Ci的生成,其中包含参数,具体过程如下:

1)模拟器B随机选y2′,…,yn′*∈Zp,可以得到向量v用于共享秘密值s,其中

Query Phase II 步骤同Query Phase I

Guess 敌手A最终输出b的猜测b′,如果b′=b模拟器 B输出 0,表示猜测T=e(g,g)aq+1s;否则输出1,表示猜测T为GT中的一个随机值。

当T是一个元组,B给出了一个完美地模拟,有

当T是一个随机元素,则消息Mb对敌手是完全隐藏的,并且我们有。因此,B能以一个可忽略的优势AdvA攻破决策q-BDHE假设。

3 性能分析

3.1 理论分析

为评估本方案的计算效率,本节从理论层面上分析了密钥生成、加密和解密阶段的本地计算量,同时与文献[10],[12],[14]中的ABE方案进行效率对比。各方案效率及外包能力对比如表1所示。其中,|S|表示属性数量,|l|表示LSSS中矩阵M的行数,EG表示群G上的模幂运算,EGT表示群GT上的模幂运算,GT表示双线性对运算。

表1 效率及外包能力对比Table 1 Comparison on the efficiency and outsourcing capability

3.2 实验分析

为评估本文方案的效率,我们用JPBC在java环境下实现了该方案。所采用的硬件环境如下:操作系统为Windows10,使用的处理器是Intel(R)Core(TM)i7-7700 CPU@3.60 GHz,运行内存为8 GB的台式电脑为测试主机,采用基于配对的密码学库JPBC中的A类型曲线(其中,群Zp和G的阶数均为512 bit)来实现本文提出的方案。

本文所参考的方案中,系统初始化建立、密钥生成、加密和解密阶段的运行时间会随着属性集合的增大而增加。本文改进并实现的完全外包属性基加密方案中,密钥生成、加密和解密阶段的计算负担完全外包给云服务器,使得这三个阶段的本地计算量大大减少。同时,将该方案与文献[10],[12]及[14]进行比较,由图2-图4可以看出,本方案中各个阶段的本地计算量达到了较好的效果,且对外包加密和外包解密的计算进行了验证。

图2 密钥生成阶段Fig.2 Key generation

图4 解密阶段Fig.4 Decryption

4 结论

本文将经典的密文策略的属性基加密方案实现了完全外包计算,即将密钥生成阶段、加密阶段和解密阶段外包给云服务器,并由本地用户对加密和解密阶段的外包结果进行验证,确保云服务器计算结果的正确性。此外,本文对完全外包属性基加密方案在q-BDHE假设下给出了安全性证明。未来的工作方向是将外包属性基加密应用到云平台,区块链上。

猜你喜欢

密文外包解密
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
炫词解密
解密“一包三改”
基于网络报文流量的协议密文分析方法
密钥共享下跨用户密文数据去重挖掘方法*
炫词解密
炫词解密
企业竞争中供应链管理的作用
中小企业内部审计外包风险及应对措施分析