一种可信的车联网区块链数据共享模型

2021-02-28 08:58陶永才杨淑博
小型微型计算机系统 2021年10期
关键词:私钥密文密钥

陶永才,李 哲,石 磊,,卫 琳,杨淑博

1(郑州大学 信息工程学院,郑州 450001) 2(郑州大学 软件技术学院,郑州 450002)

1 引 言

据《2019年国民经济和社会发展统计公报》[1]显示,2019年末全国民用汽车保有量达26.15千万辆,传统汽车行业已成为国民经济支柱性产业.同时互联网企业促进互联网和实体经济深度融合发展,推动智能交通领域技术不断革新,车联网(Internet of Vehicles,IoV)的概念被提出.车联网是由车载设备采集车辆位置、速度等信息利用互联网技术传输至中央处理器,通过智能化处理实现对车辆的自动化管理.

更多跨行业介入,使得车联网数据可为车辆保养、车载娱乐、金融服务等领域提供智能服务,甚至在法律变革、学科建设、行业融合、风险控制等方面产生影响.随着车联网市场规模扩大,其产生的数据量也随之增大,其中包含许多异构数据源,如保险数据、违章信息等.车辆也愿意将这些信息与所需部门共享,如征信部门通过加工数据,为商业银行提供信用评级、分析报告等.因此,构建一种可信的模型,使得车辆与第三方组织和个人(以下简称“第三方用户”)进行高效快速的数据共享已成为车联网研究重点.

传统数据共享建立在规模较小、较为集中的系统上.Bogdanov等[2]采用安全多方计算将政府税收和教育记录建立联系,尽管使用SHAREMIND MPC数据共享平台实现数据导入和完整性的统计研究,但仍需进一步试验确保隐私增强技术的突破.赵志远[2]针对物联网提出一种安全数据共享的方案,利用基于属性密码体制实现访问结构的隐藏,但访问大型数据控制系统依然受限.WebAPI提供简单的API即可访问海量数据、实现存储服务.但API身份验证存在缺陷,未提供返回数据的完整性方法,导致地理分布式机器人攻击相对容易,且开放接口不一致,无法实现数据共联.由于传统服务器是独立的,需购置机房及硬件并定期维护,且难更改配置,无法灵活扩展.处理大量数据时运维复杂、负载过大,云计算的兴起有效地解决该问题.用户通过百度网盘、Google Docs等实现数据共享等服务.Xhafa等[4]提出一种基于属性的具有用户责任感的云计算个人健康信息交换模型.Yang等[5]采用基于属性的加密技术保护发布的数据不受云服务器和其他非订阅者侵犯,降低用户解密开销.由于云服务器与终端设备之间的物理位置存在距离限制,2011年思科首次提出雾计算[6],雾计算服务器可部署在车辆上,本地分析、处理数据最大程度地减少延迟.雾计算服务器可将数据分发至云服务器等第三方用户,以获业务洞察力.但雾计算服务器是“半可信”的,在当中存储数据后,便不再掌握数据的控制权.使得雾计算服务器依然会面临诸如信息不透明、用户隐私和数据泄露等安全问题[7].尽管雾计算服务商担保会保障雾计算服务器安全,但由于这些数据是以中心化形式存储的,黑客会对雾计算服务商进行针对性攻击,导致数据丢失损毁或被未经授权的用户滥用造成隐私侵权.区块链技术的出现为本研究提供一种新的思路.

区块链是一个可存储的架构化信息的平台,任何用户都可作为节点参与创设信任区块,全网公示、共同监督,因而数据无法被篡改.Christian等[8]使用区块链技术保护云中托管的医疗数据.目前,已有许多关于区块链数据共享的研究,但现有模型中基本为医疗数据共享、电子政务信息共享,而较少有研究针对车联网数据共享.吴振铨[9]利用联盟链提出一种车载数据管理策略,但未给出安全性证明.同时,区块链的透明性保证链上数据的不变性,确保记录和发现试图篡改数据的行为,但会导致违反数据隐私保护的行为.如何在区块链上共享私有数据是一个挑战.为此,本文提出一种车联网数据共享模型,其主要贡献有以下4个方面:

1)发挥区块链的优势,每辆车构建自己区块链,为保证区块链上数据的机密性,数据发布在链上之前对其进行加密,将真实密文存储在雾计算服务器中,最后将数据存储位置的安全索引放置于区块链上.有效地提高区块链的隐私性并保证安全;

2)为保证车联网数据信息不会泄漏给车辆和被授权的第三方用户以外的任何用户,利用无证书多接收者签密技术,同时向多个客户节点共享数据,每个第三方用户都可独自解密并获得数据.同时,本文模型还能保证解密的公平性;

3)为降低车辆管理数据复杂度,减轻雾计算服务器高频访问的压力,利用代理签密技术,实现实时动态数据访问控制;

4)减少使用计算量较大的双线性对,降低计算的开销.通过正确性分析等数值计算,证明保障车联网用户的数据隐私的有效性.并通过仿真实验,验证模型具有计算开销低优点,适用于车联网数据共享的环境中.

2 研究背景

车联网激发对学术和行业环境的兴趣,目前,国内学者已经开展相应问题的研究.赖成喆等[10]利用签密和代理重加密技术提出一种无人驾驶车辆地图更新的方案.曾萍等[11]利用无证书密码体制和批认证算法提出一种保护车辆身份隐私的车辆认证方案.由此,开放访问环境中进行通信使安全性和隐私问题成为真正的挑战.本节将介绍模型涉及的相关技术及模型设计中用到的困难问题假设等基础数学知识.

2.1 无证书多接收者代理签密

为同时取得机密性、完整性、认证和不可否认性4种安全服务,Zheng[11]提出“签密(digital signcryption)”以取代传统的“先签名后加密”造成运算量大的缺点.实际应用中,车辆需要同时向多个客户节点共享数据.利用Zheng[12]提出的多接收者签密方案,发送者仅通过一个逻辑操作就可安全地将同一消息同步发送给多个用户并独立解密该消息.该签密方案已应用于付费电视系统[13]、智能电网[14]等.

无证书密码体制由Al-Riyami和Paterson[13]首次提出,它既避免基于PKI密码体制[15]昂贵的认证和发布公钥的步骤,又解决基于身份的密码体制[16]被恶意攻击后不易被发现的缺陷,仅使用一个称为密钥生成中心(KGC)的第三方.2008年,Selvi等[17]提出第1个无证书多接收者签密方案.

为减轻车辆与多个用户反复共享数据的负担,利用Gamage等[18]提出代理签密概念,允许车辆授权给代理中心进行签密.本文代理签密操作中,涉及以下三方:车辆、代理中心和被授权的第三方用户.车辆利用自己的私钥设计一个代理签密算法并连同证书(车辆和代理中心的身份、代理签密的有效期等)发送给代理中心.这里根据代理签密密钥不能求出原始签密者的私钥.结合无证书签密,提升模型的效率并保证安全.目前,大多数无证书签密方案采用大量的双线性对实现,本文将减少使用双线性对,提高计算效率.

2.2 区块链

车辆信息传统记录方法是由收集或经办该车辆业务的机构内部系统记录,如4S店、交警部门等.该方法具有严重的局限性,车辆在不同时期产生的数据不连续且未统一存储,导致调取繁琐并消耗大量时间,从而影响数据的挖掘和利用.利用车联网,车载设备将收集到的各类信息汇集到车联网系统中.但由于前期历史原因,每辆车记录数据的格式大相径庭,将这些数据重新清洗,会耗费大量时间和精力.利用区块链将像散沙一样的数据打包成一个个可信可靠可用的数据区块[19],且该区块经过全网所有参与者验证,让每一辆车不仅独立运维,并保留原来的数据记录.其中记录数据的“时间戳”也包含在各区块中,使得每一个环节都清晰可查.

但实际操作中,区块链的透明属性可能导致违反数据隐私保护的行为,使区块链技术经常遇到阻力[20].为此,本文在车联网数据发布在链上之前,对其进行加密操作,并将安全索引发布到链中,以确保数据不可篡改、可审核性,以低成本的方式实现车联网数据的可信共享.同时,将代理签密作为数据共享场景中的核心,当车辆的信息在利益相关者之间共享时,代理中心会对密文进行签密操作,数据不得向车辆、代理中心以及被授权的第三方用户以外的用户披露,从而保证数据及用户的隐私.

利用区块链提供数据的访问授权、保证数据的安全性和不变性;通过维护和更新记录发展现代车联网经济,实现持续可用性和实时数据访问.

2.3 双线性映射

设p是一个大素数,(G1,+)是加法循环群,(G2,·)是乘法循环群,二者的阶数都为p.假定在G1、G2中计算离散对数问题是困难的,双线性映射定义为e:G1×G1→G2,该映射具有以下3个特点:

2)非退化性:若存在Q∈G1,如果e(P,Q)=1,则有P=Q.

3)可计算性:对Q,P∈G1,e(P,Q)是可计算的.

2.4 相关困难问题

在群上可以描述一些密码学问题,这些难题还未找到有效的算法在多项式时间内解决.下面给出在密码协议设计时,需要用到的几种计算困难性问题.

3 车联网区块链数据共享模型

3.1 系统模型

车联网将汽车运行过程中产生的数据在相关服务商中进行模型化计算和解析,成为相应的需求和供给.目前车联网市场对数据共享现状,是由公司、政府统计等机构收集基础数据建立数据库,进行大数据计算和分析.另外,由于车联网数据比较分散,由各个公司或企业掌握,其搜集数据的途径较为单一,给数据库的建设造成了困难[21].本文提出的车联网数据共享模型,以区块数据为核心,去除中心化数据管理,充分实现车联网数据共享.

该模型由道路交通管理局、密钥生成中心、车辆、雾节点服务器、代理中心、被授权的第三方用户以及区块链7个实体组成.每辆车构建自己的区块链,再进行数据共享之前车辆以及第三方用户需要在道路交通管理局进行注册,KGC秘钥生成中心生成它们的公私钥对.车辆生成随机密钥对采集到的数据信息进行加密操作,并保存至雾节点服务器中,雾节点服务器返回数据保存的位置信息.代理中心与车辆共同生成代理签密秘钥对存储位置信息进行代理签密操作,并将签密后的信息以及车辆数据的安全索引放置于区块链中.被授权的第三方用户欲获取车辆所收集的数据,先从区块链中下载信息并进行解签密操作,得到数据存储位置,再前往雾节点服务器获取.图1是本文的系统模型,主要由以下7部分组成:

图1 车联网数据共享模型

1)车辆注册

车辆单元(On-Board Unit,OBU)以及第三方用户需在道路交通管理局(Road and Transport Authority,RTA)注册登记,其中车辆注册信息包含驾驶员性别、驾驶年限、驾驶车辆型号等,第三方用户注册信息需要包含单位名称、机构资质等.

2)密钥生成

RTA通过一个安全可信的密钥生成中心KGC,为车辆和第三方用户生成对应的公私钥:输入用户ID和系统参数params,用户输出秘密值x;输入一个用户ID,KGC运行算法输出该用户的部分私钥;最后,输入系统身份信息ID、用户的部分私钥及部分公钥等,用户运行此算法获取自己的完整私钥SKID及完整公钥PKID.

3)数据存储

雾计算服务器拥有足够的存储空间提供数据存储,车辆不再需要购买相应的基础设施和计算设备等软硬件,减少管理成本.同时为保障共享数据的安全性,将数据发送至雾计算服务器之前对其进行加密操作.车辆生成一个随机密钥α,利用该密钥对车辆实时收集的数据m加密,并将加密后的密文C存储在雾计算服务器中.雾计算服务器返回m的存储位置pos.

4)代理授权

为减轻车辆与第三方用户频繁交互,且保证数据安全.代理中心(Central Agency,CA)为车辆生成代理签密秘钥,对车辆上传至区块链的信息进行监控.车辆将签密权限委托给代理中心,并建立一个许可证mw,利用mw和自己的私钥生成部分签名,这种方式使得代理中心无法获取车辆的密钥.紧接着将mw发送给代理中心,代理中心通过签名算法验证部分签名是否有效,如果有效,则使用密钥生成算法的部分签名来生成代理签密密钥,否则需要重新传输.

5)数据共享

代理中心利用代理签密密钥、随机密钥α、存储位置pos和授权第三方用户R={ID1,ID2,…,IDn}进行签密运算.返回随机密钥α和存储位置pos对应的签密密文L,并将签密密文L放置于区块链中.数据在区块链中是沿时间轴存储的,一旦写入,不能进行修改或者删除操作.

6)密文下载

第三方用户需要大量完整的数据实现自身业务需求,将更多精力投入分析数据和处理数据中.于是,被授权的第三方用户R={ID1,ID2,…,IDn}从链中获得签密密文L,利用自己的私钥进行解签密算法,得到用于解密数据m的随机密钥α和密文C的存储位置pos.

7)数据获取

被授权的第三方用户根据存储位置pos在雾节点服务器中获得密文C,利用随机密钥α进行解密操作,获得数据m.

3.2 模型描述

3.2.1 系统初始化算法

3.2.2 密钥生成算法

车辆(记作A)和第三方用户完成注册后,密钥生成算法由用户和KGC共同实现,生成用户的公钥和私钥:

3)生成公钥和私钥算法:KGC接收到用户的部分私钥Di和部分公钥Ei时,用户判断等式DiP=Ei+Ppub的合法性,如果成立,则用户接收部分私钥Di和部分公钥Ei,并计算完整公钥pki=Ei+H1(IDi,Xi)Xi以及完整私钥ski=xiH1(IDi,Xi)+Di.

3.2.3 数据存储

1)车辆生成用于加密数据的随机密钥α,并计算车辆实时收集到的数据m的安全索引H2(m).

2)车辆利用随机密钥α将数据m加密,即C=Eα(m).并将密文C存储在雾计算服务器中,雾计算服务器返回存储位置pos.

3.2.4 代理授权

1)车辆和代理中心(记作B)经协商后,车辆签发一个代理授权书mw给代理中心.

3)代理中心验证双线对运算e(VP,P)=e(hP+F,pkA+Ppub)是否成立,倘若成立,则接受WA→B=(mw,F,V)为有效的代理信息.代理中心设计演算出代理签密密钥Sp=V+h·skB.否则要求车辆重新发送.

3.2.5 数据共享

利用系统参数params,代理签密密钥Sp,代理中心选择的n个第三方用户R={ID1,ID2,…,IDn},对随机密钥α及存储位置pos进行签密,过程如下.

2)代理中心计算Ii=gH1(IDi,pki)(pki+Ppub),以及ωi=H3(IDi,Ii,G).

4)计算J=H4(φ,G)、M=J⊕α和N=J⊕pos.

5)计算L=H5(α,φ,an-1,an-2,…a1,a0,G,J,pos).

6)计算签名参数S=Sp+gL(modp).从而隐藏车辆的公钥,实现车辆的匿名性.

7)最后生成签密密文:

σ=〈mw,L,M,G,N,an-1,an-2,…,a0,H2(m),S〉,并将其放置于区块链中.

3.2.6 密文下载

1)被授权的第三方用户欲获取代理中心放置于区块链中关于车辆欲共享的数据时,例如云服务器收集数据以进行历史分析和存储.他们从区块链中下载签密密文σ,使用自己的私钥ski进行解签密.

2)被授权的第三方用户计算T=H1(IDi,pki)、Ii=GT·ski,以及ωi=H3(IDi,Ii,G).

3)被授权的第三方用户计算λ(x)=a0+a1x+…+an-1xn-1+xn,以及φ=f(ωi).

4)被授权的第三方用户计算J=H4(φ,G)、α=J⊕M以及pos=J⊕N.

5)被授权的第三方用户计算L′=H5(α,φ,an-1,an-2,…a1,a0,G,J,pos),验证L=L′是否成立,若成立,第三方用户继续以下步骤.否则不接收.

6)最后,验证e(SP,P)=e(h(pkA+pkB+2Ppub)+GL,P)e(pkA+Ppub,F)是否成立.如果成立,则被授权的第三方用户接收加密密钥α及存储位置pos并退出解签密过程.否则接收方放弃α和存储位置pos并退出解签密过程.

3.2.7 获取数据

4 正确性证明

本文所提出的正确性,取决于以下3个定理:

定理 1.在密钥生成算法中,验证由KGC生成的部分私钥是正确的.

证明:通过建立等式DiP=Ei+Ppub保证用户部分私钥的正确性,可以通过以下推导得出:

DiP=(wi+s)P=wiP+sP=Ei+Ppub

因此定理1是正确的.

定理 2.在代理授权算法中,验证代理信息是正确的.

证明:通过建立等式e(VP,P)=e(hP+F,pkA+Ppub)保证代理信息的正确性,可以通过以下推导得出:

e(VP,P)=e((h+f)(H1(IDA,XA)xA+wA+s)P,P)

=e(H1(IDA,XA)xAP+wAP+sP,hP+fP)

=e(H1(IDA,XA)XA+EA+Ppub,hP+F)

=e(pkA+Ppub,hP+F)

因此定理2是正确的.

定理3.在解签密算法中,通过计算签名参数来验证签名的有效性是正确的.

证明:通过建立等式e(SpP,P)=e(h(pkA+pkB+2Ppub)+GL,P)e(pkA+Ppub,F)验证签名的有效性,可以通过以下推导得出:

e(SpP,P)=e(((h+f)skA+h·skB)P,P)

=e((h·skA+f·skA+h·skB+gL)P,P)

=e((h(skA+skB)+f·skA+gL)P,P)

=e((h(H1(IDA,XA)xA+wA+H1(IDB,XB)xB+

wB+2·s)+f(H1(IDA,XA)xA+wA+s)+gL)P,P)

=e(h(pkA+Ppub)+h(pkB+Ppub)+f(pkA+

Ppub)+GL,P)

=e(h(pkA+pkB+2Ppub)+GL,P)e(f(pkA+

Ppub),P)

=e(h(pkA+pkB+2Ppub)+GL,P)e((pkA+

Ppub),fP)

=e(h(pkA+pkB+2Ppub)+GL,P)e(pkA+Ppub,F)

因此定理3是正确的.

5 安全性分析

安全性证明及其相关游戏均在文献[22]给出具体证明,本文不再详细论证.

5.1 保密性

定理1.如果有一个对手AI可以在时间t内以不可忽略概率优势ε攻破签密方案.AI最多可以要求q0次H0询问,q1次H1询问,q2次H2询问,q3次H3询问,q4次H4询问,q5次H5询问,qc密钥询问,qe次秘密值询问,qb部分私钥询问,qp公钥询问,qr公钥替换询问,qa代理密钥询问,qs代理签密询问和qd解签密询问.挑战者B可以通过在时间t′≤t+(2qc+4qd)O(t1)内,在优势ε′≥ε-q5qd/2k下与对手AI交互来解决CDH问题,其中t1是椭圆曲线上点乘运算时间.

证明:假设对手的AI以不可忽略的概率优势ε攻击IND-CLMS-CCA安全性,并在随机预言机下向挑战者B提出一系列查询.给定一组元素〈P,aP,bP〉,挑战者B通过在限时多项式内与对手AI进行交互来计算abP以解决CDH问题.挑战者B与对手AI之间的交互如下所示:

Phase1AI向B进行如下询问:

密钥询问:B询问元组〈IDj,pkj,skj,xj,Dj〉是否在列表Lc中.如果是,B保留〈IDj,pkj,skj,xj,Dj〉.如果不是,B执行下述操作:

秘密值询问:AI查询用户IDj的秘密值,B查询〈IDj,pkj,skj,xj,Dj〉是否在Lc存在相关数据,若存在,输出秘密值xj返回给AI.若AI已替换IDj的公钥,则AI无法查询用户IDj的秘密值.

部分私钥询问:AI欲查询用户IDj的私钥,若IDj≠IDi,B查询〈IDj,pkj,skj,xj,Dj〉是否在Lc存在相关数据.若是,B返回Dj给AI.否则,B不能回答该查询,游戏终止.

公钥询问:AI向B询问IDj的公钥.B查询〈IDj,pkj,skj,xj,Dj〉是否在Lc存在相关数据.若是,B返回PKj给AI.否则,B进行公钥询问,获得元组〈IDj,pkj,skj,xj,Dj〉,返回PKj.

公钥替换询问:AI向B询问IDj的公钥PKj并替换为PKj′,随后B更新Lc中的元组〈IDj,pkj,skj,xj,Dj〉.

代理密钥询问:B收到AI关于IDj部分代理密钥询问.若IDj≠IDi,B作部分私钥提取询问,生成一个代理密钥Sp,则B返回Sp给AI,更新Lc的元组〈IDj,pkj,skj,xj,Dj〉为〈IDj,pkj,skj,Sp,xj,Dj〉.否则,B不能回答该查询,游戏终止.

解签密询问:AI向B进行α及pos的解签密询问.B收到询问后随机选择一个身份IDj,B判断IDj≠IDi,如果是,B在列表Lc中获取pkj及skj,计算T=H1(IDj,pkj)、Ij=GT·skj,ωj=H3(IDj,Ij,G).λ(x)=a0+a1x+…+an-1xn-1+xn,以及φ=f(ωj).最后计算J=H4(φ,G)、α=J⊕M以及pos=J⊕N.B返回α及pos给AI.否则B不能回答该查询,游戏终止.

ChallengeAI随机选择两对等长的〈α0,α1〉、〈pos0,pos1〉发送给B.B分别随机选择〈α0,α1〉、〈pos0,pos1〉中的一个,记为ι∈{0,1}、κ∈{0,1},即αι和posκ.生成签密密文M*以及N*,并执行以下操作:

Phase2AI如同Phase1进行多次询问,进行私钥提取时无法询问IDj(j=1,2,…,n)的身份信息,解签密询问无法询问M*以及N*.

Guess模拟最后AI输出αι和posκ的猜测,若αι=α和posκ=pos,那么B输出abP=Gi-Ii作为CDH问题的有效解.否则,B输出失败.

在上述签密查询的过程中,H5可以在数据共享过程中提供有效的签密信息,因此拒绝该签密信息的可能性小于等于q5/2k.假设AI进行qi次Hi次询问,qd次解签密询问,AI赢得本次游戏的优势为ε.因此,CDH问题在多项式时间内被成功解决的概率优势为ε′≥ε-q5qd/2k.

对手AII在时间t内以不可忽略概率优势ε攻破签密方案证明思路与定理1类似,这里不再论证.

5.2 不可伪造性

攻击者欲冒充代理中心伪造随机密钥α及存储位置pos的签密密文(mw,L,M,G,N,ai,H2(m),S),由于在多项式时间内解决ECDL问题是困难的,所以攻击者无法知道(g,φ,Sp),即在构造数据共享过程中多个用户的代理签密时,攻击者由于无法得知代理中心随机选取的整数(g,φ)以及利用代理中心的私钥和车辆的私钥构成的代理签密秘钥Sp,故无法伪造有效的签密密文(mw,L,M,G,N,ai,H2(m),S).

倘若有一个用户向其他用户伪造并发送随机密钥α及存储位置pos的签密密文(mw,L′,M′,G′,N′,ai,H2(m),S′).其中(L′,M′,G′,N′,S′)为该用户伪造的数据,由于在多项式时间内解决ECDL问题是困难的,即g是由代理中心随机选取的整数,已知G=gP和P在多项式时间内成功计算出g是可忽略不计的.因此,任何攻击者都无法伪造出代理中心对数据进行签密的密文.

5.3 不可否认性

由于在密文下载阶段验证e(SpP,P)=e(h(pkA+pkB+2Ppub),P)e(pkA+Ppub,F)等式是否成立,该等式包含代理授权书mw.在整个数据共享阶段都使用到mw,其包含代理中心B的私钥,即代理中心B对随机密钥α和存储位置pos的签密均使用代理授权书mw.代理中心B一旦代替车辆产生有效的代理签密,且证书mw包含代理中心B的身份信息,他就不能向任何人对他所签密的有效信息有所抵赖.验证式中又包含代理授权书mw,因而它无法否认自己的行为.

5.4 可识别性

由于在密文下载阶段验证e(SpP,P)=e(h(pkA+pkB+2Ppub),P)e(pkA+Ppub,F)等式是否成立,该等式明确涵盖代理授权书mw和代理中心B的身份,第三方用户和车辆A等任何第三方都可确定代理中心B的身份.

5.5 可验证性

当车辆A和被授权的第三方用户R对密文的有效性提出争议时,被授权的第三方用户R可将〈mw,α,G,pos,an-1,an-2,…,a0,H2(m)〉发送给任何第三方,第三方在不使用被授权的第三方用户R私钥的情况下验证密文的有效性.同时,被授权的第三方用户R可以恢复L来验证等式e(SpP,P)=e(h(pkA+pkB+2Ppub),P)e(pkA+Ppub,F)是否成立,表示密文是有效的,而不需要车辆A以及被授权的第三方用户R的私钥.

5.6 防止滥用性

代理授权证书mw中包含车辆A和代理中心B的身份、待签消息范围、签名权利的有效期等信息,车辆A可以利用mw对委托给代理中心的签密权力进行约束,即代理中心B不能对那些没有被车辆A授权的消息执行签密操作,且不能将其权利转交给他人.

5.7 可撤销性

代理授权证书mw中包含车辆A与代理中心B签署的代理有效期限,代理到期后,该代理将被自动吊销.如果车辆A在代理的有效期内欲撤消代理中心的权利,他可以公布mw已经无效.

5.8 数据不篡改性

区块链的主要优点是可验证性和不可否认性.本文模型中,可以通过区块链日志跟踪对数据的所有访问.同时为确保数据的隐私性,在将数据发布到区块链之前进行签密.利用无证书签密机制允许被授权的第三方用户访问数据.在区块链上,存储数据的安全索引H2(m),被授权的第三方用户最终解密密文后,可在本地生成一个新的数据的安全索引,二者进行比较,确保数据未被篡改.

6 性能评价

6.1 通信开销

功能优势方面,由于本文模型采用无证书的密码体制,省去传统体制中公钥证书的管理颁发以及基于身份的密码体制中的密钥托管所带来的巨大的额外开销,这大大提高整个系统的性能.并且密文中不会暴露被授权的第三方用户的信息,保证每一个被授权的第三方用户对于攻击者和其他用户都是匿名的.同时,在密文下载的过程中,对于每一个被授权的第三方用户能够解密出的密文概率是相等的,这样保证解密的公平性.在数据共享的过程中,倘若有数据遭受到破坏,所有下载该消息的第三方用户都将得不到正确的消息.

表1显示各函数每运行10000次所消耗的时间.值得注意的是,仅考虑表1中的数学运算,因为与双线性映射、模幂运算和哈希函数相比,异或运算和大数运算等其他数学运算对整体性能的影响可忽略不计.

表1 相关运算所需时间

在这里,将本文模型与已提出的签密模型进行计算复杂度比较,如表2所示.文献[23]是无证书的单接收者签密,虽与其他文献相比计算效率较高,一旦进行多接收者进行解签密时,其效率将会随着第三方用户的增加而降低.而多接收者签密在批量处理数据时可有效解决计算资源和通信带宽的成本节约.文献[24,25]是基于身份的多接收者签密,虽然公开参数与本文模型基本一致,但计算成本远高于本文模型,同时需考虑基于身份的加密技术中密钥托管的不安全性问题.文献[26-28]是无证书的多接收者签密,其中文献[26]在签密阶段大量使用了计算量仅次于双线性映射的模幂运算,文献[27]在解签密阶段大量使用了双线性对运算.与本文模型签密和解签密过程相比,它们增加构造所需的计算量.文献[28]虽然在计算量上存在一定的优势,但本文模型融合区块链和代理签密技术,具有不可否认性、可识别性、防止滥用性、可撤销性以及数据不可篡改性.因此,本文模型与其他文献相比更加适用于车联网数据共享场景中,表明本文模型是有效的.

表2 相关方案的比较结果

目前所知,多接收者代理签密方案较少,且没有基于无证书的密码体制的文献,文献[29]是基于身份的密码体制,而本文模型是无证书的密码体制的,效果更优.将本文模型中车辆向n个第三方用户共享1个数据的运行效率与文献[29]作一个比较,如表3所示.

表3 性能比较

显然,本文模型降低计算量,在公私钥对生成算法部分和数据共享算法部分中都未使用运算成本较高的双线性映射运算.同时在代理密钥生成算法部分和解签密算法部分中减少使用双线性映射运算.通过使用哈希函数保障数据传递的安全性,同时未使用运算量仅次于双线性对的模幂运算.另外,与文献[29]不同的是,本文借鉴文献[30]中的Lagrange插值多项式算法,保证数据共享及密文载阶段第三方用户身份的匿名性,且第三方用户群组中相互之间无法获取其身份信息.因此,本模型在通讯过程中,在保证签密的安全性同时有效地降低通信开销,具有明显优势.

6.2 仿真实验

本文仿真实验环境是Win10系统,CPU为64bit,Intel core i5-8300H,主频2.3GHz,内存为8GB,Myeclipse 2015系统,对本文模型及文献[26]进行仿真实验.

数据共享阶段详细过程如算法1所示.

算法1.数据共享阶段

输入:n,receiverR={ID1,ID2,…,IDn},Random keyα,

Proxy signing keySp

输出:σ=〈mw,S,L,M,G,N,an-1,an-2,…,a0,H2(m)〉

2.fori←0tondo

3.Ii←g*H1(IDi‖pki)*(pki+Ppub)

4.ωi←H3(IDi‖Ii‖G)

5.fori←0tondo

6.ai←0

7.a0←1

8.fori←0 tondo

9.forj←3 tondo

10.aj←(aj+aj-1)modp▷xiis Secret value

11.aj-1←aj*ximodp

13.J←H4(φ‖G)

14.M←J⊕α

15.N←J⊕pos▷posis data position

16.L←H5(α‖φ‖an-1‖an-2‖…a1‖a0‖G‖J‖pos)

17.S←Sp+g*Lmodp

18.returnσ←〈mw,S,L,M,G,N,an-1,an-2,…,a0,H2(m)〉

经仿真实验实现后,图2展示执行数据共享阶段的时间消耗.仿真模拟第三方用户从0-100家在数据共享模型中数据共享阶段所需的计算开销,由图3,文献[26]和本文模型随着被授权的第三方用户数量的增加,数据共享所需的时间均在逐渐增多.但是,本文模型在该阶段具有更高的计算效率.

图2 数据共享阶段:时间消耗与第三方用户的数量的关系

图3 密文下载阶段:时间消耗与第三方用户的数量的关系

密文下载阶段详细过程如算法2所示.

算法2.密文下载阶段

输入:σ=〈mw,S,L,M,G,N,an-1,an-2,…,a0,H2(m)〉,

receiveri

输出:TRUEorFALSE

1.T←H1(IDi‖pki)

2.Ii←G*T*ski

3.εi←H3(IDi‖Ii‖G)

4.λ(xi)←a0+a1*xi+…+an-1*xin-1+xin

5.φ←f(εi)

6.J←H4(φ‖G)

7.α←J⊕M

8.pos←J⊕N

9.L′←H5(α‖φ‖an-1‖an-2‖…a1‖a0‖G‖J)

10.ifL=L′then

11.ife(S*P,P)=e(h*(pkA+pkB+2*Ppub)+G*L,P)*e(pkA+Ppub,F)then

12.returnTRUE

13.elsereturnFALSE

14.elsereturnFALSE

图3展示仿真实验中执行密文下载阶段的时间消耗.仿真模拟第三方用户从0-100家在数据共享模型中密文下载阶段所需的计算开销,由图3,本文模型在该阶段具有更高的计算效率.

根据图2和图3可进一步观察得到,随着第三方用户数量的快速增长,本文模型的时间消耗波动相对较小且增长速度相对较慢.具有良好的鲁棒性,更加适用于节点数量变化频繁的、计算资源有限的、可保证算法高执行效率的区块链车联网数据共享模型中.

7 总 结

本文针对车联网数据共享模型的隐私安全问题,提出一种可信的车联网区块链数据共享模型.根据现有的研究现状,绝大多数多接收代理签密是基于身份签密的模型,而本文将安全性较高的无证书签密体制与多接收者代理签密相结合,并巧妙融入利用雾计算服务器存储车辆所有者的数据,利用区块链上数据的不变性的特征,方便第三方用户进行消息的下载.通过正确性证明和安全性分析,可以发现不仅攻击者无法获取第三方用户的信息,被授权的第三方用户也无法获取其他用户的任何信息.区块链中的信息也不易被篡改.同时与该文较为类似的多接收者代理签密方案进行效率比较,虽然也使用双线性对映射,但是经过优化,较少使用使得计算成本是可被接受的.因此在本文模型中,无论是在效率,功能还是在安全性方面,所提模型都更符合实际应用需求.未来区块链可以创建一个基于车辆数据的市场,鼓励车辆所有人参与其中,甚至可以获得奖励.

猜你喜欢
私钥密文密钥
一种支持动态更新的可排名密文搜索方案
比特币的安全性到底有多高
幻中邂逅之金色密钥
幻中邂逅之金色密钥
嵌入式异构物联网密文数据动态捕获方法
程序员把7500枚比特币扔掉损失巨大
一种新的密文策略的属性基加密方案研究
一种抗攻击的网络加密算法研究
Android密钥库简析
基于身份的聚合签名体制研究