老哥学习网 - www.lg9.cn 2024年05月18日 11:28 星期六
当前位置 首页 >公文范文 > 公文大全 >

面向移动终端的密文可验证属性基可搜索加密方案*

发布时间:2023-04-03 19:05:10 浏览数:

牛淑芬,张美玲,周思玮,闫 森

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

随着云计算[1]的发展和轻量级设备的出现,大多数个人和企业选择将数据存储到云服务器上以便管理。由于云服务器不完全可信,存储在云上的数据存在被攻击或隐私泄露的风险,因此在将数据存储到云服务器上之前必需先加密。在查找数据时,需先从云服务器上将需要的数据下载到本地再解密,这样的数据使用方式会耗费大量的网络带宽,并且搜索效率低下。

为了提高密文检索的效率,Song等人[2]首次提出对称可搜索加密SSE(Symmetric Search Encryption)方案。该方案通信量低,但计算开销随着查询规模增大而增大。为了解决这个问题,Boneh等人[3]提出了带关键词搜索的公钥加密方案PEKS (Public key Encryption with Keyword Search)。数据拥有者用公钥加密数据并上传到云服务器,仅对应的私钥生成陷门上传到云服务器才能搜索加密数据。近年来,可搜索加密已成为研究热点[4 - 7],可搜索加密SE(Searchable Encrption)具有许多搜索特征,如单/多关键词可搜索、模糊关键词搜索、可验证关键词搜索、排序关键词搜索等。由于单关键词检索的缺陷,Golle等人[8]首次提出了多关键词搜索方案,但关键词陷门大小随着加密文档数量增加而增加。Wu等人[9]为了加强对用户的访问控制,提出了一种高效的支持多用户访问控制MMSE(Multi-keyword Searchable Encryption supporting Multi-user access control)的多关键词可搜索加密方案。

随着科技的高速发展,移动终端(如智能手机、平板、无线可穿戴设备等)基本全面覆盖了生活,由于有限的计算资源、存储空间、通信带宽及电池容量等的限制,数据交互的效率较低。将云计算与其结合,通过移动云存储,移动终端用户将数据存储在云服务器上并且可以便捷地共享数据。为防止云服务器上的隐私数据被恶意窃取和攻击,数据拥有者通常在将数据存储到云服务器上之前会对其加密。传统的加密方法能够保证数据的安全性,但不能够对数据进行灵活的访问控制。Sahai等人[10]首次提出了属性基加密ABE (Attributed-Based Encryption)方案,同时实现了数据的安全性和灵活访问控制[11,12]。用户的属性随着系统用户变化而变化,为了撤销无关属性,传统的属性撤销机制通过重加密用户的密钥来实现用户属性的更新[13 - 15]。Wang等人[16]提出了一种多数据所有者可撤销和可搜索的属性基加密方案,使用相同的访问策略加密索引和消息。由于云服务器诚实且好奇的特点,对云服务器返回的数据进行验证是很有必要的。文献[17,18]提出了支持多关键词可搜索且可验证的属性基加密方案,文献[17]不支持用户可变属性的更新,文献[18]实现的细粒度访问控制保证了数据的私密性,支持用户的属性撤销。Sun等人[19]提出了云存储中数据可验证的属性基多关键词可搜索方案,允许数据用户对云服务器的搜索结果进行正确性验证,同时支持数据用户属性撤销与更新。

现有的大多数方案中,数据搜索结果是由云服务器返回的,由于它不完全可信,可能会获得伪造或篡改后的数据。用户收到搜索结果后需要对密文数据进行验证和解密,这极大地增加了用户的计算量。此外,系统中用户属性随时会发生变化,应及时对用户过期的属性进行更新。因此,针对上述问题,本文提出了面向移动终端的密文可验证属性基可搜索加密方案,数据属主将加密后的密文数据和代表身份的签名一起存储至云服务器;
移动终端用户生成搜索陷门上传到云服务器后,由云服务器进行检索;
引入一个可信第三方,由其验证云服务器返回的搜索结果的正确性和完整性;
可信第三方使用移动终端用户盲化后的私钥,进行部分解密工作。为了更好地管理用户属性,使用属性撤销方法,在不影响用户的前提下,更新已发生变化的用户属性及其相关的密钥和密文。

2.1 双线性映射

设p是一个大素数,G1和G2是2个阶为p的群。g是群G1的一个生成元,定义一个双线性映射e:G1×G1→G2,双线性映射满足下面的性质:(1)双线性。对于任意的a,b∈Zp,有e(ga,gb)=e(g,g)ab。(2)非退化性。e(g,g)≠1。(3)可计算性。G存在一个有效算法计算e(g,g)。

2.2 访问结构

令P={P1,P2,…,Pn}是一个n元集合。对于任意集合B,C,如果B∈AJ且B⊆C,则C∈AJ,那么本文称集合AJ⊆2P是单调的。如果集合AJ是2P的一个非空子集,那么AJ是一个访问结构。包含在集合AJ中的子集称为AJ的授权集合,反之称为AJ的非授权集合。

2.3 线性秘密共享方案LSSS(Linear Secret- Sharing Scheme)

设(Μ,ρ)表示访问策略A,其中,Μ是l行n列的秘密生成矩阵。对于1≤i≤l,ρ(i)是映射Μ的第i行的映射函数,代表不同的属性。线性秘密共享满足下面的条件:

(1)令s∈Zp为一个秘密值,随机选择r2,…,rn∈Zp,列向量v=(s,r2,…,rn),然后计算λi=(M·v)i,其中λi是属性ρ(i)的子秘密值。

(2)令S∈A为授权集合,定义I={i:ρ(i)∈S},I⊂{1,2,…,l}。存在{ωi∈Zp}i∈I满足∑i∈IωiΜi=(1,0,…,0)。其中Mi表示M中第i行的向量。由∑i∈Iωiλi=s恢复秘密值,可以在多项式时间内找到这些常数{ωi}。

2.4 通用双线性群

2.5 困难问题假设

判定性并行双线性指数假设q-BDHE(q- parallel Bilinear Diffie-HEllman):是指不存在多项式时间的算法以不可忽略的优势判定R=e(g,g)aq+1s是否成立。

随机选取a,s,b1,…,bq∈Zp,g是G的生成元。给出如式(1)所示的y:

y=(g,gs,ga,…,gaq,gaq+2,…,ga2q,

∀1≤j≤qgsbj,ga/bj,…,gaq/bj,gaq+2/bj,…,ga2q/bj,

∀1≤k,j≤q,k≠jgasbk/bj,…,gaqsbk/bj)

(1)

很难从一个随机元素R∈GT中区分出一个有效元组e(g,g)aq+1s∈GT。算法B返回z∈{0,1},在群G上若|Pr[B(y,e(g,g)aq+1s)=0]-Pr[B(y,R)]|≥ε,则能以优势ε解决q-BDHE困难问题。

3.1 系统模型

本文方案包括5个实体,即云服务器CS(Cloud Server)、可信第三方TTP(Trusted Third Party)、属性授权中心AA(Attributed Authority)、数据属主DO(Data Owners)和移动终端用户DU(Data Users)。系统模型如图1所示。

Figure 1 System model图1 系统模型

(1)云服务器。负责数据存储与计算;执行陷门与密文匹配操作,若匹配成功,则返回正确密文给可信第三方;
属性撤销阶段更新相应的密文。

(2)可信第三方。验证云服务器返回的密文结果是否完全正确。

(3)属性授权中心。是完全可信实体,负责系统的初始化、数据用户的注册及动态属性撤销。

(4)数据属主。从文件中提取关键词,生成关键词索引并且使用对称密钥加密文件。同时,使用自己定义的访问控制策略加密对称密钥,最后将所有密文上传至云服务器。

(5)移动终端用户。使用私钥生成陷门上传至云服务器然后搜索密文。收到可信第三方发送的密文,且用户属性满足访问策略,则解密密文。

3.2 方案形式化定义

本文方案包括7个阶段:系统建立、密钥生成、数据加密、关键词搜索、密文验证、密文解密和属性撤销。表1给出了本文中部分符号的描述。

Table 1 Symbols description

(1)系统建立,Setup(1K)→(PK,MK):该算法由属性授权中心执行。给定安全参数K,输出系统公共参数par、系统公钥PK和主密钥MK。

(2)密钥生成,KeyGen(MK,Suid)→{SKu,(pko,sko)}:该算法由属性授权中心执行。输入主密钥MK和数据用户的属性集Suid,输出移动终端用户的私钥SKu和数据属主的公私钥对(pko,sko)。

(3)数据加密:该算法由数据属主执行。首先,执行索引生成算法IndexGen(PK,W)→IW:输入系统公钥PK和关键词集W,输出关键词的索引IW;
其次,执行加密算法Encrypt(PK,kθ,(M,ρ))→CT:输入系统公钥PK、对称密钥kθ和访问策略(M,ρ),输出密文集合CT,根据文件的身份生成签名sigθ。

(4)关键词搜索。首先,用户执行陷门生成算法Trapdoor(PK,W′,SKu)→TW′:输入PK,搜索关键词集W′和私钥SKu,生成搜索陷门TW′;其次,云服务器执行搜索算法Search(TW′,IW):输入陷门TW′和索引IW,验证它们是否匹配。若匹配,则将搜索结果发送给可信第三方,否则终止算法。

(5)密文验证,Verify(sigθ,Cθ,PK,pko):该算法由可信第三方执行。收到云服务器返回的密文后,可信第三方与云服务器交互验证密文的正确性。验证通过,可信第三方对密文进行部分解密,并将解密后的密文发送给用户。

(6)密文解密。若验证通过,用户向可信第三方发送盲化密钥BSKu,可信第三方执行解密算法Decrypt(BSKu,CT′,Cθ):输入盲化密钥和密文,计算A=e(g,g)atzs,根据盲化的密钥Dz和密文C1再计算T=e(Dz,C1)。将(A,T)发送给移动终端用户,用户计算得到对称密钥kθ。

(7)属性撤销。可信第三方执行属性密钥更新算法,输入撤销属性x′,利用属性更新密钥AUKx′更新属性公钥PAK;
移动终端用户执行私钥更新算法,输入私钥SKu和属性更新密钥AUKx′,对已变属性的私钥进行更新;
密文更新算法由云服务器执行,输入撤销属性x′和属性更新密钥AUKx′,对已变属性的密文进行相应更新。

3.3 安全模型

本文通过在敌手A和挑战者B之间定义2个安全游戏证明方案的安全性。

(1)游戏Ⅰ:IND-CKA。

初始阶段:挑战者C执行系统建立算法Setup(1K)生成系统公钥PK和主密钥MK,并将PK发送给A,自己保存MK。

阶段1A可以对以下询问进行多项式次数的查询。C令LW为初值是空值的关键词集合。

KeyGen Oracle:输入系统公钥PK和主密钥MK,挑战者C执行密钥生成算法KeyGen,将私钥SKu发送给敌手A。

Trapdoor Oracle:输入系统公钥PK、私钥SKu和询问关键词集合W*,挑战者C执行陷门生成算法Trapdoor,将陷门TW*发送给敌手A。

挑战:敌手A发送等长的2条消息m0和m1给挑战者C,m0和m1之前未被询问过。挑战者C随机选择b∈{0,1},生成关键词集合Wb的索引IWb,并将其发送给敌手A。敌手A不能从陷门询问中得到任何关于消息m0和m1的信息。

阶段2与阶段1询问方式相同。询问过的消息m0和m1不能被重复询问。

猜测:敌手A生成一个猜测b′∈{0,1},若b′=b,则敌手A赢得游戏Ⅰ。

(2)游戏Ⅱ:IND-sCP-CPA。

初始阶段:A选择一个访问结构A*,C执行系统建立算法Setup(1K)生成系统公钥PK和主密钥MK,并将PK发送给A,自己保存MK。

阶段1此阶段敌手A可以对以下询问进行多项式次数的查询。

KeyGen Oracle:敌手A提交元组(uid,Suid)对私钥SKu进行查询,其中属性集Suid与访问结构A*不匹配。

RePAKOracle:给定任意一个属性x′,敌手A能够对属性更新密钥AUKx′进行查询。

挑战:敌手A发送等长的2条消息kθ0和kθ1给挑战者C。C随机选择b∈{0,1},利用访问结构A*加密kθb,最后将密文CT′*发送给敌手A。

阶段2与阶段1询问方式相同。

猜测:敌手A生成一个猜测b′∈{0,1},若b′=b,则敌手A赢得游戏Ⅱ。

4.1 具体方案

面向移动终端的密文可验证属性基可搜索加密方案具体如下所示:

阶段1系统初始化。

阶段2密钥生成。

阶段3数据加密。

(2)DO使用对称密钥kθ加密文件Fθ,得到加密文件Cθ=Enckθ(Fθ)。Encrypt(PK,kθ,(Μ,ρ))→CT:输入PK、kθ和访问策略(Μ,ρ),Μ是l×n的矩阵,函数ρ映射Μ中每一行不同的属性。选择随机值y2,…,yn∈Zp,令向量v=(s,y2,…,yn)。通过λi=Μi·v(1≤i≤l)可以计算出秘密值s,Μi表示Μ中第i行的向量。算法随机选择r1,…,rl∈Zp,计算密文,如式(2)所示:

CT′={(Μ,ρ),C0=kθ·e(g,g)βs,C1=gs,

∀i∈1,…,l:C2i=gaλi·H(ρ(i))ri,

C3i=(gvρ(i))ri}

(2)

阶段4关键词搜索。

(2)Search(TW′,IW):CS收到来自DU的搜索陷门TW′后,通过验证如式(3)所示的等式判断关键词索引IW与搜索陷门TW′是否匹配:

(3)

若匹配成功,CS将密文CT=(IW,Cθ,CT′)发送给TTP;
否则,算法终止。

阶段5密文验证。

阶段6密文解密。

(gβz·gatz,gtz,gaαz,H(x)tz/vx)

(4)

阶段7属性撤销。

当数据用户要撤销属性x′时,AA将移动终端用户的身份加入属性撤销列表RLx′中。

(2)ReKey(SKu,AUKx′)→SK′u:由DU执行该算法,输入SKu和AUKx′,计算更新后的私钥,如式(5)所示:

(5)

4.2 正确性证明

(1)搜索阶段。

(2)验证阶段。

e(ξ,g)

(3)解密阶段。

e(g,g)atzs

T=e(gβz·gatz,gs)=e(gβz,gs)e(gatz,gs)=

e(g,g)βzse(g,g)atzs

kθ=Kz-1

定理1给定一个单向哈希函数H1,在通用双线性群模型下,本文方案是抵抗不可区分的选择关键词攻击IND-CKA。

证明敌手A在不可区分选择关键词攻击游戏中要区分ga(σ+τθ)gσH1(W0)和ga(σ+τθ)gσH1(W1)。输入f∈Zp,A能够区分gf和ga(σ+τθ)gσH1(W0)的优势等同于区分gf和ga(σ+τθ)gσH1(W1)的优势。本文假设A能够区分gf和ga(σ+τθ),游戏描述如下:

阶段1A进行私钥和陷门询问。

KeyGen Oracle:C计算D″=gaα,PK=(g,ga,gα),并将D″发送给A。

阶段2与阶段1相同,已被询问过的关键词集合W0和W1不再进行陷门询问。如果A根据gh′询问返回的信息可以构造gh′a(σ+τθ),就可以区分gf和ga(σ+τθ)。本文还需要证明A在不可区分的选择关键词攻击游戏中以不可忽略的优势不能区分gh′和e(g,g)h′a(σ+τθ)。因为只能从ασ中获得σ,要想得到e(g,g)h′a(σ+τθ),h′中应该含有α。然而,α只有C拥有,所以A任何时候都不能得到e(g,g)h′a(σ+τθ)。从而证明A不能区分gf和ga(σ+τθ),即不能区分ga(σ+τθ)·gσH1(W0)和ga(σ+τθ)·gσH1(W1),也就是A不能以一个不可忽略的优势攻破不可区分的选择关键词攻击游戏。

定理2若q-BDHE假设成立,则本文方案抵抗选择性不可区分的密文策略和选择明文攻击IND-sCP-CPA。

证明假设敌手A能够在选择的安全模型下以不可忽略的优势ε攻击本文方案,令模拟器B以不可忽略的优势ε/2解决q-BDHE问题。挑战者C选择生成元为g的群G1,双线性映射e:G1×G1→GT。C随机选取a,s,b1,…,bq∈Zp,令y如式(6)所示:

y=(g,gs,ga,…,gaq,gaq+2,…,ga2q,

∀1≤j≤qgsbj,ga/bj,…,gaq/bj,gaq+2/bj,…,ga2q/bj,

∀1≤k,j≤q,k≠jgasbk/bj,…,gaqsbk/bj)

(6)

随机选取μ∈{0,1},若μ=0,C令T=e(g,g)aq+1s;若μ=1,则C选择群GT中的一个随机元素T。

初始化:B收到q-BDHE的挑战信息(y,T)后,A产生一个挑战访问结构(Μ*,ρ*),Μ*是l*×n*的矩阵。

阶段1B设置列表LSKu为三元组(uid,Suid,SKu),初始值为空。A在多项式时间内可以进行以下询问:

t=r+η1aq+η2aq-1+…+ηn*aq+1-n*

(7)

H(x)t/vx

(8)

最后,B将私钥SKu={D,D′,{Dx}x∈Suid}加入列表LSKu并发送给A。

(9)

(10)

阶段2与阶段1的询问方式相同。

猜测:A输出一个猜测b′∈{0,1},若b′=b,则B返回ν′=0,T=e(g,g)aq+1s;
否则,B返回ν′=1,T为群GT中的一个随机元素。该游戏中A定义的优势为ε。如果ν=0,A将会获得一个有效密文,则Pr[b′=b|ν=0]=0.5+ε。因为当b′=b时,B返回ν′=0,则有Pr[ν′=ν|ν=0]=0.5+ε。如果ν=1时,A无法得到关于b的有效信息,则有Pr[b′=b|ν=1]=0.5。当b′≠b时,B返回ν′=1时,则有Pr[ν′=ν|ν=1]=0.5。因此,B解决判定性假设q-BDHE问题的优势为:

6.1 功能特性比较

表2将本文方案与文献[17,18]方案进行了对比,其中主要有访问控制树和线性秘密共享2种访问策略。表2表明,本文方案在功能特性上具有一定优势。

Table 2 Function comparison

6.2 计算量比较

本节从理论角度分析了本文方案与文献[17,18]方案在计算开销方面的优势。首先设双线性映射配对时间为Tp,指数运算时间为Te,乘法运算时间为Tm,哈希函数运算时间为Th。在表3和表4中,|Au|表示用户的属性集合,|Xf|表示访问树的叶子节点集合,|W|表示文件的关键词集合,|M|表示满足访问策略的最小属性集。由表3可以看出,在密文生成阶段,由于文献[18]有多个配对运算,故本阶段各方案计算量由大到小依次为文献[18]方案、本文方案和文献[17]方案;在陷门生成阶段,本文方案无配对运算,且指数运算和乘法运算都少于文献[17,18]的,故在本阶段本文方案的计算效率最优;
在搜索阶段,文献[17]方案的配对运算远远大于文献[18]方案与本文方案的,而文献[18]方案无配对运算,本阶段各方案计算量由大到小依次为文献[17]方案、本文方案和文献[18]方案;在解密阶段,文献[17]方案对结果验证成功后,没有叙述数据用户具体对搜索结果的解密步骤,所以在解密阶段对其计算量和通信量不进行对比,本文方案只有少量的乘法运算和指数运算,文献[18]方案有多个乘法运算、哈希运算和1个指数运算,所以在本阶段本文方案的计算效率较高。

6.3 通信量比较

本节从理论角度分析本文方案与文献[17,18]方案在通信量开销方面的优势。表4中|G1|、|GT|和|Zp|分别表示G1、GT和Zp中元素的长度。

Table 3 Computation comparison表3 计算量比较

Table 4 Storage comparison表4 通信量比较

Figure 2 Comparison of algorithm running time图2 算法运行时间比较

由表4可以看出,在系统化初始阶段,文献[17]方案与本文方案通信量几乎相同,文献[18]方案的较高;在密钥生成阶段,随着属性个数的增加,每个方案的通信量都有一定的增长,本文方案的效率高于文献[17,18]方案的;在密文生成阶段,各方案通信量由大到小依次为文献[18]方案、文献[17]方案和本文方案;
在搜索阶段,各方案通信量由大到小依次为文献[17]方案、本文方案和文献[18]方案;在解密阶段,文献[18]方案中CSP进行部分解密后数据用户做剩余的解密工作,本文方案中TTP用盲化的私钥进行部分解密之后用户只需要简单计算出密钥值就能解密得到文件,本文方案的通信量开销低于文献[18]方案的。

6.4 数值实验分析

本文在硬件为3.10GHzCPU,6GBRAM,操作系统为Linux的PC机上利用PBC(Pairing-BasedCryptography)双线性对包和C语言进行编程模拟实验。为了便于描述,假设属性数量|Au|∈[10,60],图2a~图2d给出了文献[17,18]方案和本文方案在密钥生成、加密、搜索和解密阶段的运行时间对比。由图2a可知,密钥生成时间随着属性个数的增加,文献[17,18]方案中指数运算和乘法运算的运行时间都比本文方案的多,所以在密钥生成阶段本文方案效率优于文献[17,18]方案的;
由图2b可知,在加密阶段,随着属性个数的增加,通过固定300个关键词对3个方案进行比较,在实际的数值模拟中,文献[17,18]的效率均低于本文方案的;
由图2c可知,本文方案与文献[17,18]方案的时间相差不大,由于文献[17]方案在搜索阶段包含指数运算、乘法运算和配对运算,文献[18]方案与本文方案的计算量相近,故文献[17]方案的效率最低,搜索阶段文献[18]方案的效率略高于本文方案的;
在解密阶段,由于文献[17]方案成功验证搜索结果后,没有对搜索结果的解密步骤,所以此阶段只比较文献[18]方案与本文方案,由图2d可知,本文方案与文献[18]方案的时间相差较小,文献[18]方案在解密阶段的哈希运算的次数与文件个数相关,计算量消耗比本文方案的高,因此解密阶段文献[18]方案的效率略低于本文方案的。

本文提出了一个面向移动终端的密文可验证属性基可搜索加密方案。本文方案为了更好地实现数据用户的细粒度访问控制,使用密文策略属性基加密系统为用户进行属性颁发和授权,并且利用SE对存储在云服务器上的密文数据进行检索,实现用户对密文数据的安全共享。为了减少单关键词搜索带来的大量无关结果,本文方案使用了多关键词可搜索方法。由于云服务器可能会篡改密文数据,本文方案引入了可信第三方对搜索结果进行完整性验证。为了减轻数据用户的计算负担,请可信第三方帮助用户完成部分解密工作。对于用户可变的属性,对相应的属性进行了更新。最后对本文方案进行了详细的正确性证明、安全性证明与性能分析,数值实验分析结果表明:本文方案有较高的效率。

猜你喜欢 密文解密密钥 一种支持动态更新的可排名密文搜索方案黑龙江大学自然科学学报(2022年1期)2022-03-29幻中邂逅之金色密钥故事作文·低年级(2022年2期)2022-02-23幻中邂逅之金色密钥故事作文·低年级(2022年1期)2022-02-03基于模糊数学的通信网络密文信息差错恢复计算机仿真(2021年10期)2021-11-19炫词解密阅读(快乐英语高年级)(2021年4期)2021-07-11解密“一包三改”少先队活动(2020年9期)2020-12-17密码系统中密钥的状态与保护*北京电子科技学院学报(2020年2期)2020-11-20基于网络报文流量的协议密文分析方法网络安全技术与应用(2020年11期)2020-11-14密钥共享下跨用户密文数据去重挖掘方法*沈阳工业大学学报(2020年2期)2020-04-11炫词解密阅读(快乐英语高年级)(2020年8期)2020-01-08

推荐访问:终端 加密 属性

相关文章:

Top