车载自组网中基于属性的可搜索加密和属性更新①

2021-02-23 06:30:04张露露光笑黎刘继增
计算机系统应用 2021年2期
关键词:关键字密文解密

张露露,光笑黎,刘继增

(长安大学 信息工程学院,西安 710064)

1 引言

车载自组网(VANET)是指在交通环境中车辆之间,车辆与固定接入点之间及车辆与行人之间相互通信形成的开放式移动网络.VANET 的架构已被拓展到更广泛的范畴,分为车内通信(in-vehicle domain)、车间通信(Ad-hoc domain)和车路通信(Infrastructure domain)3 个域.车内通信是车载单元(OBU)与用户终端之间的通信,用户终端可以是某种具体的设备.车间通信包括OBU 之间的通信(V2V)以及OBU 与路侧单元(RSU)间的通信(V2R).车路通信是OBU,RSU以及基础设施之间的通信.然而,车辆与RSU 采用的通信方式是专用短距离通信(Dedicated Short Range Communication),车辆与车辆之间的通信采用的是802.11p通信协议[1].VANET是实现智能交通系统(ITS)的一种方式,是将信息和通信技术传授给交通基础设施和车辆的一种技术.车辆与车辆和车辆与路边基础设施之间可以数据交换,用这些警告信息来提高乘客的安全,可以减少交通事故的发生,改善交通管理.通过物联网的通信、数据处理等技术在交通领域的支撑性映射,来提供更好的服务.一般,我们都是将大量数据存储在云服务器上,但是,云服务器本身的特点会造成网络延迟.为了更好的解决问题,美国思科公司的Bonomi等在2012年首次提出雾计算的概念[2].与云计算相比,它能够过滤信息,当聚合用户信息时,只需要将核心信息发送给云,减少核心网络压力.而且,它比云拥有更小的网络延迟,能够及时的接收信息.此外,雾服务器设置在云服务器和物联网设备,以便存储和计算的数据传输尽可能多的雾服务器.因此,雾计算有助于减少云服务器的工作负载,提高整个系统的效率.由于,我们往往将注意力放在服务器的存储和计算资源上,在这样情况下,如何保证数据的安全,成为了我们需要关注的焦点.Song 等[3]提出了可搜索加密,在该方法中数据所有者将其加密的数据存储在第三个存储服务器中,允许用户使用适当的关键字搜索加密数据,并获得所需的加密数据.此方法,很好的解决了数据的安全性问题.虽然我们将大量数据存储在云服务上,但是它并不是完全可信的.为了保证存储在它上面的数据的隐私性和对数据的细粒度的访问,Sahai 等[4]首次提出基于属性加密(Attribute-Based Encryption,ABE)机制.接着,Goyal 和Bethencourt 等[5,6]提出了基于密钥策略的属性加密方案(KP-ABE)和基于密文策略的属性加密方案(CP-ABE),两方案均是属性集合满足访问策略时,用户才可以解密.然而,在2009年Huang等[7]首次针对车联网中数据访问控制提出了一种新的基于属性的安全策略实施方案,该方案将基于密文策略属性加密方案进行优化,减少了加密和解密时间.2011年,Yeh 等[8]针对车联网中非安全类应用紧急服务提出基于属性访问控制方案,该方案能够实现数据机密性和细粒度访问控制.2013年,针对属性加密密文问题,Rao 等[9]使用析取范式访问策略设计车联网中基于属性访问控制方案,方案中密文长度与属性数无关,降低了通信开销.2014年,Yeh 等[10]提出面向服务的车联网细粒度访问控制便携式计费方案,该方案利用基于密钥策略属性加密实现复杂的访问控制策略,并确保实体的真实性和电子硬币的有效性.2016年,Bouabdellah 等[11]提出车联网中基于属性加密安全协作传输模型,该模型利用基于密文策略属性加密来实现数据的机密性和细粒度访问控制.Xia 等[12]提出车联网中隐私保护的自适应多媒体数据转发方案,该方案利用基于密文策略属性加密将解密外包给路侧单元,提高车辆的解密效率.大量的数据存储在云中,很难满足我们现在的需求,也会给我们带来一些不便.为了减轻用户的计算负担,有学者将雾计算和云计算相结合,由于雾计算有计算能力,因此,可以将部分计算外包给雾,从而减轻用户的计算代价.在2018年,Xue 等[13]提出车辆云计算中延迟敏感数据共享的雾辅助可验证隐私保护访问控制方案,该方案利用基于密文策略属性加密将数据加密和解密外包给云和雾节点,减少了延迟和计算开销.为了在车-雾-云环境中实现用户撤销,计算外包,可搜索加密,本文提出了一个VANET 中基于属性的可搜索加密和属性更新方案.本文的主要工作是:

(1)在车-雾-云环境下,本文设计了一个可搜索加密方案,将雾节点作为车辆和云服务器之间的桥梁,数据拥有者和车辆用户都可以直接与雾节点连接,每个雾节点都与云服务器连接,减少了数据不必要的传输.

(2)本文提出的基于属性的可搜索加密方案,是一个一对多的通信.车辆用户可以根据关键字来询问相关密文,不泄露相关信息.

(3)文章提出的CP-ABE 方案,将雾-云相结合,部分加密和解密外包给雾计算,减少了用户的计算负担,减少了网络延迟.

2 基础知识

2.1 访问结构

令P={P1,P2,···,Pn}是参与者集合,存取结构A是2P的一个非空子集,即A⊆2P{∅}.对任意集合B、C,如果B∈A且B⊆C,有C∈A,则称存取结构A是单调的.存取结构A中的集合称为授权集合,否则称为非授权集合.

2.2 双线性映射

令G为循环乘法群,其生成元为g,阶为素数p.GT是阶同为p的循环乘法群.假设e:G×G→GT为双线性映射,也称双线性对,则其满足下面的性质:

(1)双线性性:对于任意u,v∈G,a,b∈Zp,恒有

(2)非退化性:存在g∈G,使得e(g,g)≠1.

(3)可计算性:对于任意u,v∈G,存在有效的算法计算e(u,v).

2.3 访问树

本文中,我们用访问树作为访问策略.

T代表访问树,x代表它的节点,其中T的非叶节点x代表一个阈值门,numx表示x的子节点数,则0 <kx≤numx.其中,当kx=1时,阈值为“或门”;当kx=numx时,阈值为“与门”,每个叶节点与属性相关.为了方便,我们定义了以下公式:

(1)parent(x):代表除根节点外返回节点的父节点.

(2)index(x):代表假定每个节点的子节点被标记为1 到num,这里返回的是与节点x相关的数字.

(3)att(x):代表一个叶节点相关的属性.

2.4 困难问题及安全假设

问题1.判定性双线性Diffie-Hellman (简称DBDH)问题:

令G、GT是阶为素数p的群,g是G的生成元,e:G×G→GT是双线性映射.给定g,ga,gb,gc∈G以及Z∈GT,其中a,b,c∈为随机选取的未知数,判断Z=e(g,g)abc是否成立.

定义算法ADBDH解DBDH 问题的优势为:

假设1.对于任意多项式时间算法ADBDH,其解DBDH问题的优势是可忽略的.

3 系统和安全模型

3.1 系统模型

本文设计的方案由以下7 部分组成:

云服务器(CSP):CSP 作为可信的实体,提供多种服务,比如:数据存储.当收到VU 的搜索陷门时,CSP提供关键字搜索.当对车辆用户进行撤销时,CSP 可以通过更新用户属性来更新密文,实现用户撤销.

雾节点(Fog):Fog 作为可信的实体,提供多种服务,比如:低延迟,存储.Fog 可以产生部分密文并发送给用户,最终上传给CSP.它也可以解密从CSP 上获得的部分密文.

数据拥有者(DO):DO 定义访问结构并产生部分密文和关键字索引,最后将完整密文和索引发送给Fog,最终存储在CSP.

车辆用户(VU):VU 可以产生搜索的陷门并发送给CSP,CSP 找到包含此关键字的密文,然后将其发送给Fog 进行部分解密.最后,VU 得到部分解密密文,并解密.

数据拥有者(DO):DO 定义访问结构并产生部分密文和关键字索引,最后将完整密文和索引发送给Fog,最终存储在CSP.

车辆用户(VU):VU 可以产生搜索的陷门并发送给CSP,CSP 找到包含此关键字的密文,然后将其发送给Fog 进行部分解密.最后,VU 得到部分解密密文,并解密.

属性权威(AA):AA 作为可信的实体,负责生产系统参数,属性管理和密钥生成.当VU 的属性需要更新时,AA 为VU 产生更新密钥.

系统模型如图1所示.

3.2 方案定义

我们提出的VANET 中基于属性的可搜索加密和属性更新方案具体包含以下8 个步骤:

(1)算法输入安全参数λ 和属性集合L,输出系统参数PP,主密钥MSK,CSP 的公私钥对(PKs,SKs).

(2)密钥生成

KeyGen(MS K,S)→(S K,Apri,Apub):算法输入主密钥MSK和用户的属性集合S,输出用户的私钥SK,用户的公私钥对(Apri,Apub).

(3)数据加密和生成关键字索引

DU 用对称加密算法的对称密钥ck对进行消息M加密,生成Eck(M),然后用加密算法对ck加密.

Fog 执行Encrypt(PP,ck,T)→(CT1):算法输入系统参数PP,对称密钥ck,访问结构T,输出部分密文CT1.

DO 执行Encrypt(PP,CT1)→(CT):算法输入系统参数和部分密文CT1,输出密文CT.

DO 执行Index(W,Apub)→(IW):算法输入关键字集合W,数据拥有者的搜索公钥Apub,输出关键字索引IW.

(4)Trapdoor 生成

TrapdoorGen(w,PKs,Apri)→Tw:算法输入关键字w,CSP 的公钥PKs,DV 搜索私钥Apri,输出Tw.

(5)文件检索

CSP 执行Test(IW,Tw)→(0,1):算法输入关键字索引集合IW,DV 的搜索陷门Tw,输出(0,1).

(6)数据预解密

Fog 执行PDecrypt(CT,S K′)→CT1:算法输入密文CT,密钥S K′,输出部分密文CT1.

(7)车辆用户解密

DV 执行Decrypt(CT1,S K)→ck:算法输入密文CT1,密钥SK,输出ck.

最后,车辆用户解密Eck(M),得到M.

(8)属性更新

假设用户的一个属性aj通过AA 被更新为aj′.属性更新算法包括以下几步:

UKeyGen(PP,MS K,S K,aj,aj′)→(UK,UK′):算法输入系统参数PP,主密钥MSK,用户密钥SK,属性aj,aj′,输出更新算法UK,UK′.

SKUpdate(S K,UK,UK′)→S Ku:算法输入密钥SK,更新算法UK,UK′,输出更新的密钥S Ku.

3.3 安全模型

在我们的方案中,雾节点和云服务器都是诚实可信的,意味着它们可以执行操作并可以抵制获得非授权数据.安全模型包括以下几个方面.

(1)细粒度访问控制:数据拥有者可以灵活的定义访问结构,只有用户的属性集合满足定义的访问结构时,用户才可以访问和更新数据.

(2)抗共谋:两个或多个用户不能结合来获得他们的私钥.

4 方案构造

(1)系统初始化

AA Setup:AA 输入安全参数 λ和属性集合L={a1,a2,···,am}.它选择一个双线性对e:G0×G0→GT,其中G0是阶为p双线性群,g是它的生成元.AA 随机选择两个元素α,β ∈Zp,也选择h∈G0,随机选择xs∈Zp,让S Ks=xs,PKs=gxs作为云的密钥对,让Apri=u作为用户搜索私钥,Apub=gu作为用户搜索公钥,对于每个属性aj∈L,它选择一个随机vj并计算PKj=gv>j.最后输出公钥和主密钥.

(2)密钥生成

AA 运行算法,选择r,ε ∈Zp,生成用户私钥S K=D=gβ(α+r)和外包密钥.

AA 将用户的外包密钥发送给Fog.

(3)加密阶段和生成关键字索引

①加密阶段

数据上传到云之前,数据拥有者随机选择一个ck作为对称密钥数据M进行加密,生成Eck(M),数据拥有者定义访问结构T并发给Fog.

Fog 加密:Fog 首先从根节点R开始自上而下的为每个节点x选择一个多项式qx,多项式的次数取为dx=kx−1,其中kx为节点x的门限值.numx表示x的子节点数,则0≤kx≤numx.

从根节点R开始,Fog 随机选择s1∈Zp并 有qR(0)=s1,对于其他节点x,设置qx(0)=qparent(x)(index(x)),在访问树中,X是叶节点相关的属性集合,生成的部分密文为:

Fog 将CT1发送给数据拥有者.

数据拥有者随机选择s2∈Zp,生成最终的密文CT:

②生成关键字索引

数据拥有者从文件中提取关键字集合W={w1,w2,···,wn},执行索引生成算法

输入关键字和用户搜索公钥,索引生成算法为每个关键字随机选择ζi∈Zp并计算计算最后输出关键字索引的集合由数据拥有者经过雾节点存储到云上.

(4)Trapdoor 生成

输入关键字,云的公钥和用户私钥,算法随机选择 σ∈Zp并计算T1=gσ,T2=(PKs)σ·H1(w)Apri.输出TrapdoorTw.

(5)文件检索

输入关键字索引和用户搜索Trapdoor,云收到用户的搜索请求后,首先要检查用户的属性是否满足访问结构.如果是,云检查Tw是否和Iw匹配.

云计算:

再根据关键字索引计算:

判断H2(θ1)=I2,如果成立,说明匹配成功.

(6)数据预解密

Fog 首先从云上获得关键字索引相关的密文,用部分密钥解密,进行如下操作:

如果用户的属性集合满足定义的访问策略,那么用户就能解密.算法输入密文CT,部分密钥S K′和一个节点x.

①如果节点x是叶节点,让aj=att(x),如果aj∈S,则:

②如果aj∉S有:

③如果是x非叶节点算法定义是:对于x所有的孩子节点n,它执行Fn=Fog.DecryptNode(CT,S K′,n),让,如果没有这个集合存在,则Fn=⊥,否则,计算:

让j=index(n)>和S′x={index(n):n∈Sx}.如果属性集合S满足访问策略T.则整个计算结果是:

然后,雾节点计算:

(7)车辆用户解密

雾节点把预解密密文发送给用户,用户用自己的私钥解密得到对称密钥;

最后再用对称密钥解密Eck(M)得到消息.

(8)属性更新

更新密钥生成:算法输入公钥,主密钥和属性aj,aj′.计算属性更新密钥权威选择一个随机数它为没有更新的用户产生用以更新云中的密文.分别发送及给更新用户,未更新用户和云.更新的公共属性密钥

更新的用户私钥:

5 安全分析

假如存在多项式时间的敌手以不可忽略的优势攻破本文方案,则存在一个算法以一定的优势解决DBDH问题.我们方案的安全性是基于DBDH 困难问题假设做的,证明在文献[14]中.本方案的安全性能分析如下:

(1)细粒度的访问控制

为了能够灵活的访问数据,就需要细粒度的访问加密数据,我们利用CP-ABE 来管理系统的加密密钥.在加密阶段,数据拥有者定义访问结构并用对称密钥对消息进行加密.当有用户要访问数据时,需要自己的属性集合满足定义的访问策略,否则,解密失败.因此,本方案在访问控制方面具有灵活性.

(2)抗共谋

当两个或多个用户想要结合他们的密钥来访问加密数据时,这个操作是实现不了的.在本方案中,属性权威会给每个用户产生不同的私钥,这个私钥是和一个随机数相关的,多个用户密钥结合不能恢复出来访问密钥.

6 性能分析

6.1 功能性比较

在这部分,我们将本方案与其他方案进行了对比,这里我们更注重功能和计算复杂度的比较.表1是功能比较,表中√表示满足,×表示不满足.

在这里可以看出,文献[15]实现了撤销和关键字搜索,但没有实现雾计算和外包.文献[16]仅实现了撤销,其他都没实现.文献[17]仅实现了撤销,其他功能均没有实现.文献[18]实现了外包,撤销和关键字搜索,没有实现解密外包和雾计算.本方案以上功能均实现了,看出本方案功能齐全,有优势.本方案以上功能均实现了,看出本方案功能齐全,有优势.

表1 功能性比较

6.2 计算开销

本节对文献[15–18]等方案的计算开销进行了测试.

设p表示双线性配对所需的时间,e表示在群G中标量乘法所需的时间.本方案在i5-M60,2.53 GHz,i5 CPU,4 GB 内存和64 位Windows 10 上进行仿真.表2列出了操作的平均运行时间.

表2 平均运行时间

假设在密文生成,密钥生成,密钥更新,外包解密等阶段数据使用者从属性授权得到的属性数量l是一致的.表3中总结了本文方案和文献[15–18] 方案的计算开销,对每个过程所需要的计算量进行了量化,对应的实验仿真结果如图2–图5所示.

表3 计算开销比较

图2 密钥生成时间

图3 密文生成时间

图4 密钥更新时间

图5 外包解密时间

在表3中,m表示集合中属性的个数;e表示GT,G中的指数运算;p表示一个对运算;l表示各个操作中涉及的属性的个数.

图2–图5分别表示的是密钥生成时间,密文生成时间,密钥更新时间以及外包解密时间与属性数量的关系,其中密钥中涉及到的属性数量被设置为10,即l=10.从图2–图5可知,这几个阶段的计算开销随着涉及到的属性数量的变化呈线性增长.

在图2中,本文方案的密钥生成时间低于文献[16–18]等对比方案,计算成本更低.在图3中,本文方案的密文生成时间低于所有对比方案,计算成本低且更有效.在图4中,本文方案的密钥更新生成时间低于文献[15–17]等对比方案,计算成本低.在图5中,本文方案的外包解密计算时间低于文献[17,18]等对比方案,计算成本低,其他方案没有实现外包.

经分析可知,本文提出的方案在加密、解密和密文更新阶段所需的计算开销是最低的,比文献[15–18]方案有更多的优势.

7 总结

本文提出了车载自组网中基于属性的可搜索加密和属性撤销方案.首先,将车辆用户的敏感数据和访问策略经过加密通过雾节点外包给云服务器,并将部分加密和解密外包给雾节点,从而减轻了车辆用户的计算负担.其次,我们的应用场景是车载自组网,方案中车辆拥有者能够将数据通过雾节点安全的存储在云服务器上,以便其他用户可以有效的访问.再者,我们的方案支持关键字的可搜索加密和细粒度的访问控制以及属性更新,避免不合法用户对数据的访问.最后,经过比较,我们的方案功能更加齐全,拥有更大的优势.在未来工作中,我们将继续研究多授权、分层、多关键字搜索等在基于属性的加密中的应用.

猜你喜欢
关键字密文解密
解密“热胀冷缩”
一种针对格基后量子密码的能量侧信道分析框架
履职尽责求实效 真抓实干勇作为——十个关键字,盘点江苏统战的2021
华人时刊(2022年1期)2022-04-26 13:39:28
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
解密“一包三改”
少先队活动(2020年9期)2020-12-17 06:17:31
炫词解密
成功避开“关键字”
云存储中支持词频和用户喜好的密文模糊检索
解密“大调解”
中国卫生(2014年12期)2014-11-12 13:12:38