雾辅助智能电网中容错隐私保护数据聚合方案①

2022-11-08 01:36谢金宏陈建伟林力伟张美平
计算机系统应用 2022年10期
关键词:密文发送给攻击者

谢金宏,陈建伟,林力伟,张美平

1(福建师范大学 计算机与网络空间安全学院,福州 350117)

2(福建师范大学 福建省网络空间安全与密码技术实验室,福州 350117)

3(福建师范大学 数字福建大数据安全技术研究所,福州 350117)

4(福建工程学院 计算机科学与数学学院,福州 350118)

随着网络技术和微电子技术的发展,智能电网应运而生,它作为下一代电网技术受到世界各国的广泛关注.在我国智能电网已经成为国家重大发展战略之一,2019年,国家电网提出要求全面加快智能电网建设的战略部署,随后国有电力企业投入大量的人力、物力和财力开展相关研究和试点工作[1].智能电网将传统电网与信息技术相融合,支持双向通信,能够对发电、输电和用电的实时状况进行采集和分析,通过信息流和能量流的双向控制实现能源优化,并且减少碳排放量,与新时代的环保理念相呼应[2].

智能电网周期性的收集智能电表的数据并在远程云服务器上进行处理和分析.然而,智能电网规模的不断扩大,实时数据量的急剧增加,使得有限的带宽资源无法满足远程云服务器实时数据处理对传输低延时的要求.2012年,“雾计算”的概念由思科公司率先提出,相比于单一的云计算架构,雾计算在延迟、聚合、位置感知和地理分布提供了额外的能力.基于该计算模式,智能电表数据上传到云服务器之前,先在雾节点进行数据聚合处理,从而节约了带宽资源,满足实时数据处理的需求.

然而,雾辅助智能电网的架构仍然存在用户隐私泄露的风险.在整个数据收集过程中,智能电表周期的上报用户电量数据(如10-15 min 上报一次[3]),大量细粒度的电量数据使得恶意的攻击者可以推断出用户的行为活动、生活习惯、经济状况以及其他一些隐私信息.例如,结合电器电力消耗情况在时间维度上的关联性,可表征用电设备的使用情况,而此类隐私信息将被第三方用于提供准确的商业营销,以及被恶意人员用于判断用户是否居家从而实现入室盗窃.而雾辅助智能电网的架构因为引入了第三方公司提供的雾节点,如Cisco,反而使得隐私泄露的风险增大[4].

为了保护用户的隐私,一些学者提出了轻量级的数据聚合方案[5-7].此类方案将一组和为零的随机整数作为盲因子分配给智能电表和聚合器,智能电表利用盲因子对电量数据进行加密,聚合器消除盲因子得到聚合密文,最后控制中心解密获得聚合结果.在这个过程中,控制中心无法得到任一智能电表的具体数据,在一定的程度上保护了用户的隐私.但如果其中一个智能电表故障,或者网络连接中断,数据提交失败,将使得整个密文聚合过程中的盲因子无法消除,导致控制中心无法获得正确聚合结果,因而方案不具备容错功能.

一些学者提出其他类别的数据聚合方案,并尝试解决容错问题,但由于内在的运行机制,给系统带来额外的计算开销或者通信开销.文献[8]中,Xue 等人提出了一种无可信权威中心的数据聚合方案,该方案对隐私数据进行同态加密,并通过Shamir 秘密共享方案实现了容错功能.但方案容错机制中用户组重新协商密钥的过程将占用额外的计算和通信资源.Wang 等人[9]提出一种支持容错的多子集数据聚合方案,该方案同样存在效率较低的问题.当某些智能电表无法正常工作时,聚合器将发布事件和故障智能电表的标识,随后相关区域内的智能电表必须重新协商更新盲因子,再加密数据后上报,这些给系统带来了额外的开销.Lyu 等人[10]提出了一种雾计算架构下的差分隐私数据聚合方案,该方案使用OTP(one-time-pad)加密算法和高斯机制来最小化数据隐私泄露.但该方案每次执行加密操作之前需要生成新的密钥; 并且当设备出现故障需要容错处理时,需要雾节点和可信任中心进行交互,这些都给系统带来额外的负担.另外,这类满足差分隐私的数据聚合方案[10,11],往往只能得到数据聚合结果的近似值,方案设计者需要在数据隐私性和可用性之间取得一个平衡.

此外,整个数据收集应用系统部署在大范围复杂的环境下,容易受到各种外部攻击.Pan 等人[12]利用中国剩余定理实现了多维数据聚合,但该方案无法抵御篡改和伪造等攻击,不能保证数据的完整性.Li 等人[13]基于Paillier 同态加密算法提出了一种多子集的隐私保护数据聚合方案,但该方案无法确认数据源的合法性和确保数据的完整性,给系统带来了安全隐患.

针对现有方案存在的不足,本文提出了一种新的高效隐私保护数据聚合方案.本文工作包含以下3 点:(1)将BGN 同态加密算法和Shamir 秘密共享方案进行巧妙地结合,构建了扩展的BGN 同态加密算法,确保了用户数据的隐私性.(2)实现了两种容错措施,当智能电表端电量数据无法到达服务端时,或者服务端云服务器出现故障时,系统还能继续运作.(3)基于椭圆曲线离散对数困难问题构造了高效的签名认证方法,实现了数据完整性和数据源合法性的有效验证.此外,采用标量乘法运算代替较为耗时的双线性配对运算,极大提高了方案计算效率.理论分析和性能实验证明了本文方案的安全性和有效性.

1 预备知识

在本节中,简要回顾相关的背景知识,包括BGN加密算法、Shamir 秘密共享方案和椭圆曲线离散对数困难问题.

1.1 BGN 加密算法

BGN 加密算法[14]是Boneh、Goh 和Nissim 于2005年提出的一种同态加密算法,该算法支持无限次加法运算但最多只支持一次乘法运算,它由以下3 个子算法构成:

密钥生成: 给定安全参数τ ∈Z+,运行算法ς(τ)得到元组(p,q,G),其中,p和q是2 个不同的大素数,G是N=pq阶的乘法循环群.随机选取G的2 个生成元g和x,并计算χ=xq.最后公布公钥PK=(N,G,g,χ),保存私钥SK=p.

明文加密: 给定消息m∈[0,M],M<q,选取随机数r∈[0,N-1],计算密文C=gmχr.

密文解密: 使用私钥SK=p解密密文C,计算Cp=(gmχr)p=gmp(xpq)r=(gp)m,令g1=gp,则Cp=g1m,随后使用Pollard’s Lambda 算法[15]求解离散对数得到明文m.

1.2 Shamir 秘密共享方案

Shamir 秘密共享方案[16]存在管理者和k个参与者,秘密θ被管理者划分为k个碎片,只有当秘密的碎片数达到给定的阈值d+1才能恢复出秘密θ.方案由以下两部分组成.

秘密分发: 管理者通过以下多项式对秘密进行分发:

其中,σ是一个大素数,秘密θ为f(x)的常数项,即θ=f(0).管理者为每个参与者选择一个公开值xi,并计算子份额yi=f(xi),随后将份额(xi,yi)发送给相应的参与者.

秘密重构: 任意不少于d+1个参与者通过拉格朗日插值法可重构出秘密θ,如下所示:

1.3 困难问题

椭圆曲线离散对数问题(elliptic curve discrete logarithm problem,ECDLP):G1为定义在椭圆曲线E上的ω 阶循环群,存在B=αP,其中P,B∈G1,α ∈Zω*,在已知B和P的情况下求出整数α使其满足B=αP属于ECDLP.

椭圆曲线离散对数问题假设(elliptic curve discrete logarithm assumption,ECDLA): 不存在算法能够在多项式时间内以不可忽略的优势ε解决椭圆曲线离散对数问题.

2 模型与目标

2.1 系统模型

智能电网下典型的系统模型如图1 所示,其中包含4 种实体对象,即智能电表、雾节点、云服务器和可信任机构.

图1 系统模型

智能电表(SM): 周期性地收集用户用电数据,并将加密数据提交给雾节点.

雾节点(FN): 负责对SM的数据进行合法性认证(包括数据源认证和数据完整性认证),并对加密数据进行聚合计算.

云服务器(CS): 由一组服务器CSj组成,其中j=1,2,···,k,k≥3,在这组服务器中选举计算资源最大的服务器作为主服务器,让其负责FN和SM的注册以及对FN数据的认证,并对聚合的密文进行解密.

可信任机构(TA): 是可信任的第三方实体对象,负责生成系统所需参数并分配给相应实体对象.

2.2 安全模型

安全模型包含以下两点假设:

1)SM被认为是完全可信的,而FN和CS则设定为“诚实且好奇”的角色,即FN和CS能正确的执行协议,但他们仍尝试各种方法推断用户的隐私数据.

2)恶意的攻击者可能对CS进行攻击并使其瘫痪.由于CS是强大的实体,攻击者破坏CS需要付出极大的代价,因此假设攻击者只能破坏或妥协一定数量的CS,即不超过,但系统仍然有(k-d)个CSj用来恢复聚合数据,其中,k-d≥d+1.

2.3 设计目标

根据安全模型中的假设,同时考虑到系统内各实体之间传输的信道是不安全的,恶意的攻击者可能发起数据修改、数据伪造以及重放攻击等.方案应实现以下设计目标:

1)隐私性: 应确保授权的实体能获得聚合数据,但不能获得单一用户的具体数据,同时又要防止没有授权的外部实体窃取用户的隐私数据.

2)容错性: 部分智能电表可能会出现故障或因为网络波动等原因导致数据无法正常上传,部分服务器也可能受到恶意攻击而停止工作.所提聚合方案应具备容错功能以保证聚合方案能够有条不紊地进行.

3)完整性: 攻击者可能窃取数据进行修改,并利用错误的数据进行犯罪,消息接收方应能检测接收的数据是否被篡改.

4)认证性: 攻击者可能伪装成合法实体发送错误信息,消息接收方应能认证发送方是否为合法实体.

3 具体方案

所提方案包含6 个阶段: 初始化阶段、注册阶段、数据收集阶段、数据聚合阶段、数据解密阶段和容错处理阶段.

3.1 初始化阶段

TA 通过执行以下步骤生成系统所需参数.

步骤1.给定安全的参数τ ∈Z+,TA 运行算法ς(τ)得到元组(p,q,G),其中p和q是2 个不同的素数,G是N=pq阶的乘法循环群.TA 选取G的3 个随机生成元η、g和u,并计算χ=uq.

步骤2.设Fρ是一个有限域,ρ是素数,TA 定义椭圆曲线E:y2=x3+ax+bmod ρ,其中a,b∈Fρ.TA 从E上选取一个阶为 ω的加法循环群G1,P为G1的生成元,TA 选取随机数β ∈Zω*并计算公钥Ppub=βP.

步骤3.T A 选取随机数λ ∈Zω*,计算Pcs=λP.TA 将(λ,Pcs)作为所有CS共同的私钥和公钥,并通过安全信道发送给所有CS.

步骤4.TA 选取3 个安全的哈希函数H1,H2,H3:{0,1}*→Zω*.

步骤5.TA 使用伪随机数生成器生成n+1个伪随机数π0,π1,···,πn∈Zω*,伪随机数满足下式关系:

TA 将πi和 π0分别作为SMi和CS 的密钥并通过安全通道发送给SMi和CS,随后TA 计算Qi=ηπi并发送给CS.

步骤6.TA 利用 π0生成哈希值h1=H1(π0)并计算p·h1,随后将其作为密钥嵌入随机生成的d次多项式函数:

其中,ai∈Zn,σ是一个素数.TA 将F(xj)和lj(0)作为CSj的私钥并通过安全通道发送给CSj,其中lj(0)=

步骤7.TA 公布系统参数(ω,η,g,h1,N,G,G1,P,Ppub,χ,Hi:i=1,2,3).

3.2 注册阶段

为了成为系统的合法实体,SMi和FNi分别向CS进行注册.详细的步骤如下:

(1)SMi注册

步骤1.SMi的身份标识为idi,SMi随机选择私钥vi∈Zω*和ri∈Zω*,计算公钥Ri=riP,并计算签名:

SMi获取当前的时间戳treq,随后将(idi,Vi,Ri,si,treq)通过安全通道发送给CS.

步骤2.CS在收到注册请求消息(idi,Vi,Ri,si,treq)后,如果检查时间戳为最新,则验证式(7)是否成立:

如果式(7)成立,CS将参数Pcs发送给SMi,以此证明其为合法实体.

(2)FNi注册

步骤1.FNi的身份标识为idFN,FNi随机选择私钥vFN∈Zω*和rFN∈Zω*,计算公钥RFN=rFNP,并计算签名:

FNi获取当前的时间戳treq,并将(idFN,VFN,RFN,sFN,treq)通过安全通道发送给CS.

步骤2.CS在收到注册请求消息(idFN,VFN,RFN,sFN,treq)后,如果检查时间戳为最新,则验证式(9)是否成立:

如果式(9)成立,CS将参数Pcs发送给FNi,以此证明其为合法实体.

3.3 数据收集阶段

SMi周期性地(如每隔15 min)收集用电数据mi∈ZN*,随后对数据mi进行加密,并生成相应的签名,SMi执行如下步骤.

步骤1.SMi收集实时的用电数据,随后选择一个随机数di∈ZN*并结合πi对数据进行加密:

步骤2.SMi选取随机数wi∈Zω*并计算签名:

其中,ti为当前的时间戳.

步骤3.SMi将(idi,Vi,Ri,Wi,ci,ei,ti)发送给FNi.

3.4 数据聚合阶段

在收到n个SMi发送的消息(idi,Vi,Ri,Wi,ci,ei,ti)后,FNi开始执行以下步骤.

步骤1.FNi先检查ti是否有效,如果无效,输出拒绝.否则,验证式(12)是否相等:

为了提高验证速度,将在FNi上运用小指数测试技术[17]对消息进行批量验证.FNi随机选择一系列的小数o1,o2,···,on∈[1,2n],并验证式(13)是否成立:

步骤2.如果式(13)成立,FNi将对密文进行聚合:

步骤3.FNi选取随机数wFN∈Zω*并计算签名:

步骤4.FNi将(idFN,VFN,RFN,WFN,Cγ,eFN,ti)发送给CS.

3.5 数据解密阶段

在收到FNi发送的消息(idFN,VFN,RFN,WFN,Cγ,eFN,ti)后,CS将执行以下步骤.

步骤1.CS先检查ti是否有效,如果无效,则输出拒绝.否则,验证式(16)是否成立:

步骤2.如果式(16)成立,主服务器使用密钥 π0进行解密操作:

步骤3.各个服务器CSj利用{lj(0),F(xj)}计算φj=lj(0)F(xj),其中:

随后主服务器负责收集所有的 φj进行密钥重构,得到密钥ph1(只有主服务器被妥协或自然宕机,才进行新一轮的主服务器选举以及密钥的重构):

步骤4.主服务器通过使用密钥ph1进行解密:

步骤5.主服务器使用Pollard’s Lambda 方法[15]求解式(20)获得数据聚合值:

3.6 容错处理阶段

服务器端容错: 系统部署了k台服务器进行协同工作.正如安全模型的假设,在最坏情况下攻击者也只能破坏或妥协d个服务器并获得它们的私钥{lj(0),F(xj)},但本着Shamir 秘密共享方案“全有或全无”的属性,至少需要d+1个份额才能重构密钥ph1进行解密,系统仍有k-d(≥d+1)个服务器能正常进行解密,保证聚合方案能够有条不紊地进行.

智能电表端容错: 当部分SM数据无法正常发送,FN仍然能进行数据聚合,CS也能将密文进行解密.假设用户总数为U,未能正常上传数据的用户为具体步骤如下.

步骤1.FN聚合的密文为:

步骤2.FN将和发送给CS,随后CS计算:

步骤3.CS计算聚合密文C:

步骤4.同数据解密阶段,CS可获得数据聚合值:

4 安全性分析

结合文献[18,19]中的加密模型,本节将证明在随机预言机模型下本方案具有不可伪造性,并在此基础上对本方案是否实现所提的设计目标进行分析.

4.1 安全属性说明

安全属性(不可伪造性)通过挑战者 C和攻击者A 之间的博弈来定义.挑战者 C和攻击者 A在进行博弈的过程中,攻击者 A向挑战者 C发起以下查询:

hash查询: 在C 中存在列表LHi,其中i=1,2,3,后文将会详细说明.在A 的查询下,C返回随机值给A .

CreateS Mi查询: A输入idi,C生成相对应SMi的公钥、私钥和伪随机数并发送给A .

ExtractS Mi查询: A输入idi,C生成相对应SMi的私钥并发送给A .

Signcrytion查询: A输入SMi的明文mi,C生成相对应SMi的密文ci并发送给A .

Designcrytion查询: C对密文ci进行解密,随后将明文mi发送给A .

上述查询是自适应的,即每次查询都可以根据上一次的询问结果进行调整.

博弈.自适应选择消息攻击下具有不可伪造性(existentially unforgeable under the adaptive chosen message attack,EUF-CMA)由以下博弈定义:

设置: C生成系统所需参数并发送给A ,A选择一个挑战者的身份idi′并发送给C .

查询: A可以进行hash查询,CreateSMi查询,ExtractSMi查询,S igncrytion查询和Designcrytion查询,但不能使用挑战者的身份idi′进行ExtractSMi查询和Designcrytion查询.

伪造: A用挑战者的身份idi′输出一个有效的密文ci.

攻击者A 想赢得博弈,需满足以下条件:

1)A从 未使用挑战者的身份idi′进行ExtractSMi查询.

2)输出的密文ci是有效的.

定义1.不可伪造性: 若不存在攻击者 A能够在多项式时间内以不可忽略的优势ε赢得上述博弈,则所提方案在自适应选择消息攻击下具有不可伪造性.

4.2 安全属性证明

定理1.基于椭圆曲线离散对数问题,所提方案能够抵抗自适应选择消息伪造攻击.

证明: 假设攻击者 A能够在多项式时间内以不可忽略的优势ε赢下上述博弈,则证明在自适应选择消息伪造攻击下,存在挑战者 C可以解决椭圆曲线离散对数问题(ECDLP).

设置: 假定提供一个椭圆曲线离散对数问题(ECDLP)的实例(P,B=αP).C选择一个挑战者的身份idi′,随机选择β ∈Zω*计算Ppub=βP,随后将生成的系统参数(ω,η,g,h1,N,G,G1,P,Ppub,χ,α,Hi:i=1,2,3)和身份idi′一起发送给A .

查询: 在博弈中,为了及时回应A ,C进行以下查询:

H1查询: 列表LH1由元组(π0,h1)构成,C首先检查(π0,h1)是否存在于LH1中.如果存在,C将LH1中的数据h1=H1(π0)返回给A .否则,C将随机选取h1∈Zω*存入列表LH1,并返回h1给A .

H2查询: 列表LH2由元组(idi,Vi,Ri,Ppub,h2,i)构成,当A查询(idi,Vi,Ri,Ppub)时,C首先检查(idi,Vi,Ri,Ppub,h2,i)是否存在于LH2中.如果存在,C将LH2中的数据h2,i=H2(idi||Vi||Ri||Ppub)返回给A .否则,C将随机选取h2,i∈Zω*存入列表LH2,并返回h2,i给A .

H3查询: 列表LH3由元组(idi,Pcs,Vi,Wi,ci,ti,h3,i)构成,当 A查询(idi,Pcs,Vi,Wi,ci,ti)时,C首先检查(idi,Pcs,Vi,Wi,ci,ti)是否存在于LH3中.如果存在,C将LH3中的数据h3,i=H3(idi||Pcs||Vi||Wi||ci||ti)返回给A .否则,C将随机选取h3,i∈Zω*存入列表LH3,并返回h3,i给A .

CreateSMi查询: 列表LSMi由元组(idi,vi,Vi,ri,Ri,si,πi)构成,当A 查询SMi的idi时,C首先检查(idi,vi,Vi,ri,Ri,si,πi)是否存在于LSMi中.如果存在,C将LSMi中的数据(Vi,Ri)返回给A .否则,C将执行以下过程:

1)如果idi′≠idi,C随机选取vi,ri,h2,i,πi∈Zω*,计算Vi=viP,Ri=riP和si=vi+rih2,i,随后分别将(idi,Vi,Ri,h2,i)和(idi,vi,Vi,ri,Ri,si,πi)存入列表LH2和LSMi,最后C 将(Vi,Ri)返回给A .

2)否则(idi′=idi),C随机选取si,h2,i,πi∈Zω*,计算Vi=viP,Ri=αP和siP=Vi+Rih2,1,随后分别将(idi,Vi,Ri,h2,i)和(idi,vi,Vi,⊥i,Ri,si,πi)存入列表LH2和LSMi.最后C将(Vi,Ri)返回给A .

ExtractSMi查询: 当A 查询SMi的idi时,C首先检查idi和idi′是否相等.如果是,游戏结束.否则,C将检查在列表LSMi中的(idi,vi,Vi,ri,Ri,si,πi),并将(ri,si,πi)返回给A .

S igncrytion查询: 当A 输入数据mi时,C首先检查idi′和idi是否相等.如果相等,C随机选择ei,h2,i,h3,i∈Zω*,计算和Vi=eiP-(h2,iRi+h3,iWi),随后 C分别将(idi,Vi,Ri,Ppub,h2,i)和(idi,Pcs,Vi,Wi,ci,ti,h3,i)存入列表LH2和列表LH3.最后 C将密文(Vi,Wi,ci,ei,ti)返回给 A.否则,C根据本方案的既定流程生成密文(Vi,Wi,ci,ei,ti)并返回给A .

Designcrytion查询: 当A 输入密文ci时,C首先检查idi和idi′是否相等.如果相等,游戏结束.否则,C按照本方案既定流程对密文进行解密.

伪造: A以SMi的idi伪造并输出密文(Vi,Wi,ci,ei,ti),其中:

C首先检查idi和idi′是否相等.如果相等,游戏结束.否则,基于交叉引理[20],C 在选择不同的哈希函数H2下可以输出有效密文(Vi,Wi,ci,e′i,ti),可得:

根据式(26)和式(27)可得:

最后,C输出α=(h2,i-h′2,i)-1(ei-e′i)作为椭圆曲线离散对数问题(ECDLP)解决方案.

优势分析: 为了评估挑战者C 解决椭圆曲线离散对数问题(ECDLP)的优势,进行了以下3 个操作:

O1: 在进行ExtractSMi和Designcrytion查询过程中,C不会停止上诉博弈.

O2: 进行上述查询时idi和idi′相等.

O3: A伪造出合法密文.

根据以上操作,可得出优势分别为Pr[O1]=(1-1/qH2)qe+qd、Pr[O2|O1]=1/qH2和Pr[O3|O1∧O2]=ε,其中qH2、qe和qd分别表示H2查询次数、ExtractSMi查询次数和Designcrytion查询次数.因此,C解决椭圆曲线离散对数问题(ECDLP)的优势为Pr[O1∧O2∧O3]=Pr[O3|O1∧O2]Pr[O2|O1]Pr[O1]=ε·1/qH2·(1-1/qH2)qe+qd.因为优势ε是不可忽略的,所以优势Pr[O1∧O2∧O3]也是不可忽略的,但这与椭圆曲线离散对数困难问题相矛盾.因此假设不成立,证得所提方案具备不可伪造性.

4.3 设计目标分析

本节将证明方案实现了第2.3 节所提出的设计目标,即隐私性、完整性、认证性和容错性.

隐私性: 在数据收集阶段,数据mi通过式(10)加密成规范且有效的BGN 密文.BGN 加密算法被证明在子群决策假设下是语义安全的[14],即使密文被攻击者窃听或拦截,也无法在多项式时间内破解密文; 在加密时选取的伪随机数 πi是由TA随机生成的,攻击者无法获取全部的伪随机数用以消除密文中的ηNπi; 并且根据安全模型的假设,恶意的攻击者最多只能妥协d个服务器,所以攻击者无法重构秘密ph1进行解密.因此,密文中的数据是语义安全的.另外,本方案利用密文的同态性在雾节点对密文进行聚合操作,避免了“诚实且好奇”的雾节点从中获取单一用户的隐私数据,而CS也只能从聚合数据中解析出总聚合数据,仍无法获得单一用户的隐私数据.因此,所提方案具有隐私保护功能.

完整性: 在方案的数据生成和数据聚合阶段,SMi和FN分别生成数字签名(Wi,ei)和(WFN,eFN),FN和CS会对收到的签名进行验证.由定理1 可知,任何的攻击者都不能伪造出有效的数字签名,一旦数字签名中的数据被篡改,篡改数据将会被及时检测.因此,所提方案能够确保数据的完整性.

认证性: 在方案的注册阶段,SM和FN的注册信息由CS进行验证,随后CS会将参数Pcs发送给注册成功的实体以此证明该实体是合法的.另外,由定理1 可知,任何的攻击者都不能伪造出有效的密文,并且在报告的消息(idi,Vi,Ri,Wi,ci,ei,ti)和(idFNVFN,RFN,WFN,Cγ,eFN,ti)中,SM和FN的身份标识被包含在其中,SM和FN可以通过验证式(13)和式(16)是否相等以此证明发送方是否为合法实体.因此,所提方案具有认证性.

容错性: 详见第3.6 节.

5 性能分析

本文实验运行在Intel Core i7-5500U CPU @2.40 GHz,8 GB RAM 以及64 位Windows 10 操作系统的笔记本电脑上.实验采用基于配对的密码学库JPBC[21].设置参数|p|=|q|=512 bits,|N|=1024 bits.选定的椭圆曲线E中的两个素数 ρ和 ω都为160 bits.为了更好评估本文方案的性能(包括计算开销和通信开销),实验将本文方案与文献[22-24]进行比较.为了减少实验误差,实验取1 000 次测试结果的平均值.除非特别说明,本文方案中的雾节点等同于其他方案的聚合器.

5.1 计算开销

各方案中的主要操作的基准执行时间如表1 所示,实验忽略如哈希运算、ECC 点加运算和整数乘法等计算.为了方便比较,假设存在l个雾节点FN,每个雾节点FN下有n个智能电表SM.表2 列出各阶段的主要操作.

表1 相关运算和运行时间

表2 各阶段的主要操作

图2 展示了4 个方案在数据收集阶段SM计算开销的对比情况.在文献[22]中,SM进行加密和签名需要4 次指数运算和2 次群上乘法运算.在文献[23]中,SM进行加密和签名需要4 次群上指数运算和2 次群上乘法运算.在文献[24]中,SM进行加密和签名需要3 次群上指数运算,1 次群上乘法运算,1 次群上点乘运算和2 次双线性配对运算.在本文方案中,SM进行加密和签名需要3 次群上指数运算,2 次群上乘法运算和1 次ECC 标量乘法运算.由图2 可知,本文方案在此阶段需要的计算开销最小.

图2 数据收集阶段计算开销对比

图3 展示了4 个方案在数据聚合阶段FN计算开销的对比情况,假设每个FN下有200 个SM.在文献[22]中,FN进行验证需要3 次群上指数运算、3n-2次群上乘法运算和n+2次双线性配对运算.FN聚合密文和生成签名需要执行2n-1次乘法运算和2 次指数运算.在文献[23]中,FN进行认证需要n+1次双线性配对运算和2(n-1)次群上乘法运算,FN聚合密文需要1 次群上指数运算和n次群上乘法运算,FN生成签名需要1 次指数运算.在文献[24]中,FN需要先认证来自终端的询问信息,需执行 2n次双线性配对运算,FN进行认证需要2 次双线性配对运算,FN聚合密文需要2(n-1)次群上乘法运算,FN生成签名需要1 次群上的点乘运算.在本文方案中,FN进行认证和签名需要3n+2次ECC 上标量乘法运算,FN聚合密文需要n-1次群上乘法运算.由图3 可知,本文方案相比较其他3 种方案具有较好的计算性能.其主要原因是本文方案使用椭圆曲线中标量乘法运算代替较为耗时的双线性配对运算.

图3 数据聚合阶段计算开销对比

图4 展示了4 个方案在数据解密阶段CS计算开销的对比情况,假设CS下有20 个FN.在文献[22]中,CS进行验证需要3 次双线性配对运算,恢复密文数据需要2 次群上乘法运算和1 次双线性配对运算.在文献[23]中,CS进行批验证需要(l+1)次双线性配对运算和2(l-1)次群上乘法运算,聚合密文需要(l-1)次群上乘法运算,恢复密文数据需要1 次群上指数运算.在文献[24]中,CS进行验证需要2 次双线性配对运算,恢复密文数据需要1 次群上指数运算和1 次群上乘法运算.在本文方案中,CS进行验证需要3 次ECC 上标量乘法运算,恢复密文数据需要2 次群上指数运算和1 次群上乘法运算.由图4 可知,由于避免使用双线性配对运算,本文方案在此阶段的计算开销均小于其他方案.

图4 数据解密阶段计算开销对比

5.2 通信开销

本小节将分析SM和FN之间以及FN和CS之间的通信开销.G,G1,Zω*,ZN,ZN2中元素的长度分别为1 024 bits,160 bits,160 bits,1 024 bits 和2 048 bits.假设单向哈希函数长度是160 bits,时间戳和身份的长度分别是64 bits 和32 bits.

首先,分析SM和FN之间的通信开销.在文献[22]中,SM发送信息{CTi,Vi,Ti}给FN,其中CTi={c1i,c2i},(c1i,c2i)∈G,Vi∈G和Ti是时间戳,此阶段通信开销为|CTi|+|Ti|+|Vi|=3136bits.在文献[23]中,SM发送信息{IDTDij,tij,Cij,σij}到FN,其中(Cij,σij)∈G,IDTDij和tij分别是身份和时间戳.因此,此阶段通信开销为|Cij|+|σij|+|IDTDij|+|tij|=2144bits.在文献[24] 中,SM和FN需要先交互来完成认证,假设授权消息Autd为32 bits,SM向FN发送{PStd,Autd,S igpcs-td},其中S igpcs-td∈G和PStd是身份.该过程|S igpcs-td|+|Autd|+|PStd|=1088bits.FN向SM发送{IDfn,Aufn,S igpcs-fn}完成认证,该过程|S igpcs-fn|+|Aufn|+|IDfn|=1088 bits.再者,SM发送信息{ci,PStd,Ti,σi}到FN,其中ci={ci1,ci2},(ci1,ci2,σi)∈G和Ti是时间戳.该过程通信开销为|ci|+|σi|+|Ti|+|PStd|=3168bits.因此,此阶段通信开销为1088+1088+3168=5344 bits.在本文方案中,SM发送信息{idi,Vi,Ri,Wi,ci,ei,ti}到FN,其中ci∈G,(Vi,Ri,Wi)∈G1,ei∈Zω*,idi和ti分别是身份和时间戳.因此,此阶段通信开销计算为|ci|+|ei|+|ti|+|idi|+|Vi|+|Ri|+|Wi|=1760bits.

其次,分析FN和CS之间的通信开销.在文献[22]中,FN发送信息{CT,σ,Tc}到CS,其中CT={C1,C2},(C1,C2)∈G,σ={U,V},(U,V)∈G和Tc是时间戳.因此,此阶段通信开销为|CT|+|σ|+|Tc|=4160 bits.在文献[23] 中,FN发送信息{IDESi,Ci,σi,ti}到CS,其中(Ci,σi)∈G,IDESi和ti分别是身份和时间戳.因此,此阶段通信开销为|σi|+|ti|+|Ci|+ |IDESi|=2144 bits.在文献[24]中,FN发送信息{c,PStd,IDfn,T,σfn}到CS,其中c={c1,c2},(c1,c2,σfn)∈G,PStd和IDfn是身份,T是时间戳.因此,此阶段通信开销计算为|c|+|σfn|+|T|+|PStd|+|IDfn|=3200bits.在本文方案中,FN发送信息(idFNVFN,RFN,WFN,Cγ,eFN,ti)到C S,其中Cγ∈G,(VFN,RFN,WFN)∈G1,eFN∈Zω*,idFN和ti分别是身份和时间戳.因此,此阶段通信开销计算为|Cγ|+|VFN|+|RFN|+|WFN|+|eFN|+|ti|+|idFN|=1760bits.

图5 展示了4 个方案一次会话的总通信开销对比情况.设置FN数量逐步递增到40 个,每个FN下的SM数量逐步递增到100 个.图5 可以直观反映出本文方案具有较优的通信开销性能.原因是本文方案采用椭圆曲线加密算法进行签名,在同等安全水平下,其签名数据占用空间小,有效地减少通信成本.

图5 通信开销对比

6 结论

本文提出了一种基于雾计算的高效隐私保护数据聚合方案,该方案巧妙地结合了BGN 同态加密算法和Shamir 秘密共享方案确保了数据的隐私性,利用椭圆曲线离散对数问题构造高效的签名认证算法保证数据的完整性,并且该方案实现了两种容错措施.安全性分析证明了该方案满足智能电网的安全要求.性能分析表明了该方案具有较低的计算和通信开销.

猜你喜欢
密文发送给攻击者
基于贝叶斯博弈的防御资源调配模型研究
一种新的密文策略的属性基加密方案研究
密码分类和攻击类型
【微信小课堂】:如何向好友发送语音
一种抗攻击的网络加密算法研究
正面迎接批判
正面迎接批判
你说我说大家说
条件型非对称跨加密系统的代理重加密方案
公告