雾辅助的轻量级隐私保护数据多级聚合研究

2020-06-05 12:17陈思光
小型微型计算机系统 2020年6期
关键词:密文电表加密

杨 丽,陈思光,2

1(南京邮电大学江苏省通信与网络技术工程研究中心,南京210003)

2(南京邮电大学江苏省宽带无线通信与物联网重点实验室,南京210003)

1 背 景

随着无线通信技术的发展,各种智能传感设备应运而生,智能设备可以通过收集数据并将数据传输到云中心,以进行实时观察和智能决策.于是智能家居[1]、智能医疗[2]、智能城市[3],智能电网[4]等概念也被相继提出,而智能电网作为下一代电网受到了越来越多的关注.在智能电网系统中,分布式的智能电表生成数据报告,并通过互联网传输到远程云服务器以进行进一步分析,云服务器可以定期监控电力输送和用电信息,以便进行实时决策[5,6].但是这些智能电表会生成大量数据,这将为云中心带来极大的负担;同时在智能电表到云服务器的数据存储和数据传输过程中,智能电网必须确保这些数据的隐私性、可靠性、安全性、灵活性和可扩展性.而随着连接到智能电网的用户数量的增加,解决这些问题将变得更加困难.

2012 年,思科提出了“雾计算”的概念,以解决云计算中高延迟,缺乏对移动性和位置感知的支持等问题[7].雾计算作为一种很有前途的分布式模型,它可以在网络边缘存储和处理数据,这不仅可以减少系统的传输开销,还可以提高其实时处理能力.尤其是在智能电网这种生成报告频率较高的基础设施中,雾计算设备可以首先在网络边缘预处理要报告的数据,然后将预处理结果转发到云服务器,从而大大地节省带宽[8].同时雾计算与云计算的结合将为智能电网的发展带来更大的可能性,例如,与基于云的系统相比,在网络边缘保留隐私数据使客户能够以快速和安全的方式访问数据,也更能体现智能电网对于实时性的要求[9].

然而在智能电网应用中,监控家庭的能源消耗同样会带来严重的隐私威胁.因为攻击者可能会通过攻击通信链路、雾设备以及云服务器以获得用户的个人能量消耗,而细粒度的能量消耗数据可以用于推断用户的生活方式、日常活动、以及具有合理推论的其他私人信息[10],除此之外攻击者还可以通过向智能电网注入虚假信息以实现对能源的窃取,或提出不合理的需求造成电网的瘫痪,这都将导致不同程度上的经济损失[11].由此可看出智能电网有两大任务,一是保护用户的隐私信息,二是得到汇总的用电数据,因此隐私数据的采集与聚合是一个非常重要的研究课题[12].

2 相关工作

目前关于智能电网中隐私数据聚合的研究主要有两种方法,第一种方法是通过屏蔽用户的真实身份来掩盖其隐私信息,例如文献[13]中所描述的按用户的地理位置对用户进行分组,并将相同的序列号分配给同一组中的每个成员,通过这种匿名方案保证控制中心可以在不知道发送者的真实身份的情况下获得所有用户的数据;但这种匿名性导致了控制中心无法对数据来源的有效性进行认证;除此之外,基于屏蔽身份的数据聚合方案中想要寻找一个可靠的第三方来保证匿名的安全性是很困难的.第二种方法是通过屏蔽用户的实时用电数据来保护用户的隐私信息,该方法又主要集中在以下三类.

第一类是文献[14-16]中所描述的将智能电表连接到硬件设备,例如将智能电表连接到电池上,智能电网和家用电池同时为用户提供电力.当用户的用电量明显增加时,电池放电,反之,为电池充电,以此来隐藏用户的实时电力消耗,但是电池频繁的放电与充电会缩短电池的使用寿命.换言之,这些操作虽然减轻了智能电网在计算和通信上的负担,却需要频繁地进行维护,这种代价是非常昂贵的.

第二类是文献[17-19]中所描述的通过在智能电表处添加噪声并在控制中心将其除去来掩盖智能电表的真实读数,这些方法虽然可以实现对隐私数据的保护,但是由于添加噪声的操作,导致控制中心无法准确地重建智能电表的真实读数,对于某些对精度要求较高的场景,这些方法并不适用.

第三类是采用加密方法,近来的一些研究主要利用公钥加密方法的同态性来汇聚特定区域的电力消耗,在这个过程中,用户的个人读数一直处于加密状态,从而实现保护用户隐私信息的目的.例如,文献[20]提出了一种在智能电网通信中有效的隐私保护聚合方案,该方案主要利用扩展的Paillier密码系统实现安全的数据聚合,同时还利用超递增序列将多维数据构造成一维,以此减少通信开销,但是效率依然不高.文献[21]描述了一种基于双线性配对的隐私保护数据聚合方案,它通过使用散列和同态加法聚合技术实现隐私保护,然而配对操作不可避免地带来了较高的计算成本.文献[22]将用户的数据划分为两个不同的组,该方案使控制中心能够以更低的成本获得更细粒度的数据聚合结果,但其无法确保数据的完整性.文献[23]描述了一种基于同态加密、同态认证器和陷门散列函数的安全数据聚合方案,该方案可以在聚合过程中实现针对恶意聚合器的数据机密性和完整性验证.文献[24]描述了一种用于雾计算的轻量级隐私保护数据聚合方案,将混合数据聚合为一个,同时可以在雾节点处提前过滤错误数据,但两种方案都无法实现更加细粒度的聚合,无法满足智能电网所需的灵活性,应用范围受限.

基于上述研究方案在计算成本、通信开销、数据完整性验证以及灵活性等方面存在的不足,本文提出了一种雾辅助的轻量级隐私保护数据多级聚合方案(F-LPDMA),该方案的主要特点是利用改进的Paillier 加密系统结合多级聚合模型实现隐私数据的细粒度聚合,同时利用哈希函数的单向性在网络边缘和云端进行轻量级认证.具体来说,该方案主要贡献包含以下三点:

1)提出的F-LPDMA 实现了隐私数据的细粒度聚合,利用云雾协作的多级聚合模型使中间层次的雾节点能够定期从连接的智能电表处收集数据,并导出细粒度的雾级聚合结果,该细粒度聚合可有效节省通信开销,提高聚合方案的灵活性;同时,为云层的粗粒度聚合提供数据以进行云级聚合.

2)实现了隐私数据的高效聚合,采用同态加密方法实现对隐私数据的保护,同时利用模数的性质对加密算法进行优化使计算成本降低,又结合霍纳法则对聚合结果进行高速解析以提升多项式的解析速率,从而提高聚合方案的高效性.

3)实现了隐私数据完整性和真实性的轻量级认证,利用散列函数的单向性和批量签名验证技术过滤错误数据,避开复杂的配对运算,从而大大减少系统的计算成本和通信开销,实现轻量级认证.

本文的其他部分构成如下:第3 部分描述了与F-LPDMA方案相关的预备知识;第4 部分描述该方案的系统模型;第5部分详细描述了该方案的设计;第6 部分从计算成本与通信开销的角度上对该方案进行了性能上的分析;最后,第7 部分总结全文,再次说明本文所提方案的优势.

3 预备知识

同态加密(Homomorphic Encryption)

1)同态加密方案允许在密文上直接执行算术运算,这意味着无需对密文解密即可进行所需操作,这在很大程度上增强了数据的隐私性.Paillier 加密算法是一种加性同态加密,主要由三个部分组成,密钥生成(Key Generation),加密操作(Encryption),解密操作(Decryption),具体如下:

①密钥生成:给定安全参数k,选择两个大素数p 和q,p=q=|k|,需要满足 gcd(qp,(p-1)(q-1))=1,然后计算出 n=pq,和 λ=lcm(p-1,q-1)选择一个生成元 g∈瓕*n2,同时需要保证μ=(L(gλmod n2))-1mod n 存在.其中函数L定义为 L(u)=u-1/n.因此,得到 Paillier 加密算法的公钥(n,g)、私钥(λ,μ).

②加密操作:对于任意的明文m∈瓕n,选择随机数r∈,则加密后的密文为c=gmrnmodn2.

③解密操作:对于任意的明文得到密文c,计算明文m 为m=L(cλmodn2)/L(gλmodn2)modn.

4 网络模型

假设某个电网覆盖区域被分成m 个子区域,每个子区域下存在一个雾节点fogj(对应的雾节点为 fog1,fog2,…,fogm),每个雾节点fogj下存在w 个智能电表SMij(SMij表示第 j 个雾节点下的第 i 个智能电表,i=1,2,…,w).

图1 系统模型Fig.1 System model

由图1 可看出,该系统模型主要包括以下四个实体:可信机构(Trusted Authority),智能电表(Smart Meter),雾节点(Fog Node),云服务器(Cloud Sever).

1)可信任的权限(TA):TA 是受信任的第三方,主要负责生成密钥并将其分配给所有实体,具有强大的处理能力.

2)智能电表(SMij):智能电表SMij可以生成用户的实时用电信息,并对它们进行加密和签名,随后将这些数据报告传输至相应的雾节点等待聚合.除此之外,用户可以向雾节点发送请求实时查询该智能电表SMij所在子区域及其周边子区域的总用电信息,以便用户了解各区域的用电情况.

3)雾节点(fogj):雾节点fogj是智能电表和云服务器间的中间层,部署在网络边缘.每个子区域内布置有一个雾节点,雾节点在其覆盖区域内与本地智能电表交互,考虑到外部攻击者还可能发起虚假数据注入攻击,雾节点将在接收来自智能电表的数据之前对需要其进行过滤,随后雾节点对过滤之后的数据进行一级聚合,最后将聚合结果数据转发到云端.除此之外,雾节点还可以存储该子区域以及周边子区域的用电信息,以此来缓解云服务器的负担,减少传输时延,方便用户的实时查询.

4)云服务器:由于智能电网对于电力的调度和需求是复杂多样的,即智能电网可能需要针对不同范围或者特定范围的进行电力调控.所以通过云服务器对来自雾节点的聚合加密数据进行二次聚合,解密获得聚合明文后运用霍纳法则对聚合明文执行高速解析,以获取各个子区域的用电量,实现对电力的灵活调控.除此之外,云服务器还将解析获得的各个子区域的用电量生成报告发送到雾节点,用以减轻云服务器的资源占用情况,同时由于雾节点位于网络边缘,可以使用户以较低的时延实现用电数据的实时查询.

根据系统模型,本文主要考虑以下三个方面的网络威胁:1)雾节点和云服务器上的威胁:雾节点和云服务器被认为是诚实而好奇的,它们遵循协议,但同时会对某些细节感到好奇;其次雾节点与云服务器有可能会被俘虏.2)攻击者窃听通信链路的威胁:存在攻击者可能通过窃听通信链路获取用户的隐私信息.3)攻击者主动攻击的威胁:攻击者可能会通过发起一些主动攻击(例如修改,伪造,重放等)损害隐私数据的真实性和完整性.

5 雾辅助的轻量级隐私保护数据多级聚合方案

根据系统模型,本文提出了一种在智能电网中雾辅助的轻量级隐私保护数据多级聚合方案(F-LPDMA),该方案主要通过以下4 个阶段实现:系统初始化,智能电表处用户报告的生成,雾节点处聚合报告的生成,云服务器处聚合报告的生成以及聚合报告的读取.图2 详细描述了具体的过程.

5.1 系统初始化

1)系统参数的生成

①假设TA 中存在一个由已生成密钥所组成的一个全局密钥池={kij,kj;0≤i≤w;0≤j≤m},TA 将密钥池不同的密钥分配给智能电表和雾计算设备用于注册.

②TA 首先选择两个安全素数p 和q,计算n=pq 作为同态加密的公钥,同时定义函数L(u)=(u-1)/n.

③计算 λ=lcm(p-1,q-1),令 g=n+1,保证 μ=(L(gλmod n2))-1mod n 存在,从而得到 Paillier 同态加密公钥n,私钥 λ.

⑤同时,TA 选择一个安全的加密散列函数用于隐私数据的签名:h:{0,1}*→{0,1}l.

⑥对于智能电表,选择一个随机安全密钥αij,令mod n2,得到βij,类似地;在雾节点,选择一个随机安全密钥αj,令,得到 βj.

⑦TA 生成系统参数(λ,n,kij,kj,s,h,αij,αj,βij,βj)后,发布系统参数(n,h),同时分配其余参数到各个实体.具体地,TA 通过秘密信道分配{kij,s,αij}到智能电表、分配{kj,αj,βij}到雾节点,分配秘钥{λ,βj}到云服务器.

2)智能电表与雾节点注册

本方案中,新加入的智能电表和雾计算设备首先需要向TA 申请注册信息,具体注册过程如下.

图2 阶段流程Fig.2 Stage process

首先新加入的智能电表通过TA 进行注册:

①新加入的智能电表会通过自身的内置算法生成信息mij,mij主要包含智能电表的IDij,户主信息,定位信息等,该注册信息具有唯一标识性.

②智能电表用TA 分发的初始密钥kij对智能电表SMij的注册信息进行加密,加密后得到密文Cij=E(mij,kij).

③将初始密钥kij和mij作为hash 函数的输入,生成消息验证码 MACij=h(mij‖kij),发送 REQ=(Cij‖MACij)到 TA.

④TA 在收到新加入的智能电表的注册请求信息时,对加密的注册信息Cij使用初始密钥kij进行解密,经过计算得到mij.然后将初始密钥kij与解密得到的mij作为hash 函数的输入,得到消息验证码 MAC’ij=h(mij‖kij).

⑤与接收的MAC 进行比较,若一致,则同意该智能电表注册要求,同时发送验证成功消息到智能电表,公布设备的IDij,否则,拒绝注册.

随后新加入的雾计算设备通过TA 进行注册:

①与智能电表类似,雾计算设备同样具有注册信息mfd.

②加密注册信息Cj=E(mfd,kj).

③将初始密钥kj与mfd作为hash 函数的输入,生成消息验证码 MACj=h(mfd‖kj),发送 REQ=(Cj‖MACj)到 TA.

④TA 在收到雾计算设备的注册请求信息时,对加密的注册信息进行解密,得到mfd,与kj一起生成 MAC’j=h(mfd‖kj).

⑤与接收的MACj进行比较,若一致,则同意该雾计算设备注册,同时发送验证成功消息到雾计算设备,TA 公布设备的IDj,否则,拒绝注册.5.2

智能电表中用户报告的生成

基于SMij中产生的实时用电数据往往会暴露用户的隐私信息,所以本方案首先对该实时用电数据进行加密,随后生成加密数据签名,并将用户报告上传到雾节点,等待雾节点对所收到的来自于其所覆盖子区域的用电数据进行安全聚合.假设某子区域j内,有w 个智能电表,则j内第i 个智能电表SMij存储的信息为 mij(0≤i≤w,0≤j≤m),在某个具体的时间周期Tp,智能电表SMij处将会进行以下操作.

1)智能电表生成在Tp这个时间周期内的用电数据的相关信息mij,包括智能电表SMij的IDij,用电量dij,以及当前时间戳Tp(用于预防潜在的重播攻击).

2)智能电表需要对当前的用电量dij进行加密,采用扩展的Paillier 同态加密算法,得到加密后的用电数据Cij.

3)生成密文签名:为了提高密文签名的安全性,采用当前时间戳Tp作为伪随机数生成器的种子,与智能电表的IDij散列得到伪随机数yij.由于时间戳Tp在不停地变化,与之对应的伪随机数也相应变化,从而生成的伪随机数也是一次性的,更能保证密文签名的安全性.随后联合TA 分配的密钥αij生成聚合明文的签名MACij.

4)发送用户报告至雾节点fogj:最后,SMij发送用户报告(IDij,Cij,MACij,Tp)到所属雾节点 fogj.

5.3 雾节点处聚合报告的生成

第j 个雾节点fogj接收到该子区域内所有智能电表SMij发送的报告(IDij,Cij,MACij,Tp)后,将进行以下操作:

1)检查智能电表的IDij和当前时间戳Tp;首先检查智能电表的IDij是否合法,即该智能电表是否在TA 上注册成功,旨在检查该聚合报告来源的真实性;随后检查时间戳Tp,假设智能电表每15 分钟上传一次用户报告,检查Tp是否在有效期内,旨在抵御潜在的重放攻击.若通过检验,则证明智能电表IDij和当前时间戳Tp检查有效.

2)检验密文签名:如果智能电表IDij和当前时间戳Tp检查有效,则进一步验证聚合密文的签名MACij.

根据 αij=βi-j1mod n2可知,若等式(5)成立,则证明接收的签名是有效的,即聚合报告没有遭到损坏,否则拒绝接受.

3)隐私保护数据一级聚合:雾节点fogj对来自该区域所有w 个智能电表的用电数据进行一级聚合,得到隐私数据的聚合密文Cj.

4)生成聚合密文的签名:与智能电表处类似,生成聚合明文的签名MACj.

5)发送聚合报告至云服务器:雾节点fogj将聚合报告(IDj,Cj,MACj,Tp)发送到云服务器.

5.4 云服务器处聚合报告的生成与读取

云服务器收到来自m 个雾节点fogj的细粒度聚合报告(IDj,Cj,MACj,Tp)后,将进行以下操作:

1)检查雾节点IDj和时间戳Tp:首先检查雾节点的IDj是否合法,即该雾节点是否在TA 上注册成功,旨在检查该聚合报告来源的真实性;随后检查时间戳Tp,假设雾节点每15分钟上传一次聚合报告,检查Tp是否在有效期内,旨在抵御潜在的重放攻击.若通过检验,则证明雾节点IDj和当前时间戳Tp检查有效.

2)检验聚合密文签名MACj:如果雾节点IDj和时间戳Tp检查有效,则进一步验证聚合密文的签名MACj.

若等式成立,则证明聚合报告的签名是有效的,即聚合报告没有遭到损坏,否则拒绝接受.

3)隐私保护数据二级聚合:对来自j 个子区域的雾节点的数据进行二级聚合,即粗粒度聚合,得到二级聚合密文C.

4)读取聚合报告:利用Paillier 解密方法将加密数据解密成明文.首先对公式(9)计算得到的聚合密文C 进行分析:

同时令:

则可获得符合Paillier 密文形式的密文C.

随后云服务器利用Paillier 解密C,得到聚合明文M.

其中L(u)=u-1/n.

得到的M 是一个符合霍纳规则的一元多项式,其中每项系数对应每个子区域j的总用电量为Uj.

随后运用霍纳法则对明文M 进行解析,得到多项式的每项系数,即每个子区域j的总用电量,从而实现细粒度的数据聚合.而区域总的用电量可以通过计算U1+U2+…+Um得到,若云服务器想知道某几个子区域的总用电量,则分别聚合这几个区域的用电量,以实现电量的灵活调控.

5)发送解析得到的子区域的用电量(U1,U2,…,Um)至雾节点,方便用户的实时查询.

6 仿真与性能评估

本文将从计算成本和通信开销的角度来评估F-LPDMA方案的效率,同时将 F-LPDMA 方案与现有的 SEDA[19],PDAF[21]二种方案进行比较.实验中设置 RSA 参数 n、p 分别为1024bits、160bits.为了便于评估本文所提出方案的性能,本部分仅关注上述三种方案在单个区域内的效率,同时为了方便说明,用 TE1,TE2,TM,TPA来分别表示中的指数运算,中的指数运算、乘法运算,以及双线性配对所需要的时间成本.本部分仿真使用基于配对加密库(PBC,pairing-based cryptography)来执行上述计算操作并评估其执行开销.数据源自爱尔兰社会科学数据档案馆能源管制委员会(CER)提供的当地居民用电真实数据1http://www.ucd.ie/issda/data/commissionforenergyregulationcer/.实验运行在处理器为 Intel Core i5-7200U CPU@2.50GHZ,8.00GB RAM 的笔记本电脑上.表1 列出了这几种运算所耗费的时间成本.

6.1 时间成本

本文首先从计算成本出发对F-LPDMA 方案进行分析与比较:首先对加密算法Paillier 的计算成本进行分析,本文假设某子区域j内有w 个智能电表设备,则可以进行如下分析:

表1 各运算计算开销Table 1 Cost of operations

1)加密过程中:智能电表首先要对用电数据进行加密,由于加密的密文形式为Ci=(1+dijn)·s,仅需要两次简单的乘法运算,即在 上进行2w 次乘法运算TM,而其他两种方案采用的paillier 密文形式为Ci=gmrnmod n2,需要进行2w 次大指数模乘运算TE1,这个时间远远大于本方案所需的时间.

2)聚合阶段:为了完成密文的聚合操作,需要在 上进行w 次乘法运算TM,这个过程所花费时间与其它方案相同.

3)解密过程中:由于解密的密文为m=L(Cλmod n2)·λ-1mod n,即需要在上进行1 次指数运算 TE1,1 次乘法运算TM,而其他两种方案采用的解密密文为m=L(Cλmod n2)μmod n,即需要在上进行2 次指数运算TE1,在 上进行3 次指数运算TE2,所需时间均大于本方案所需时间.

其次对于签名与验证,本方案主要利用了散列函数的单向性实现对数据完整性和真实性的验证,其他两种方案则采用了基于双线性配对的方法,而散列运算的时间成本相较于配对运算几乎可以忽略不记,因此本方案在签名与验证阶段仅需要进行2w 次乘法运算TM、指数运算TE1.

类似地,其他方案具体开销见表2.

表2 计算开销Table 2 Comparison of computation cost

图3 更直观地显示了三种方案中总体计算的时间成本的比较结果,通过图3 可以看出本方案所需的计算时间比其他两种方案显著减少,由此可得出结论:本方案比其他两种方案具有更低的计算开销,同时随着用户数量的增多,这种优势将更加明显.

6.2 通信开销

接下来本文将从通信开销的角度对F-LPDMA 方案进行如下分析与比较:首先分别分析在进行数据聚合时,智能电表SMij与雾节点fogj之间、雾节点fogj与云服务器 Cloud 之间的通信开销大小.

1)首先在SMij-to-fogj通信部分中,每个智能电表生成单独的用户隐私数据报告并将其发送到雾节点,该报告的形式为(IDij,Cij,MACij,Tp),其大小为 SizeSMij.所以在每个特定时段,雾节点收集来自所有w 个智能电表的报告,其大小为SizeSM=w·SizeSMij.假 设 n 是 1024-bits,| p | 是 160-bits,则SizeSMij=|IDij|+2048+160+|Tp| bits,同时为了便于比较,假设|ID|和|Tp|为 160-bits.

图3 计算开销Fig.3 Computation cost

2)接下来,本文将考虑fog-to-cloud 通信链路上产生的开销.在聚合阶段,云端汇总了来自所有子区域的j 个雾节点的聚合报告,该聚合报告的形式为(IDj,Cj,MACj,Tp),聚合报告的大小为Sizefog=|IDj|+2048+160+|Tp| bits;而由于在区域j中雾节点将w 个用户报告聚合成一个报告,所需的通信开销由原本的(|IDj|+2048+160+|Tp|)w 位减少到|IDj|+2048+160+|Tp| bits 位,这意味着fog-to-cloud 之间的通信开销和用户的数量之间没有相关性,用户数量的增多也不会导致fog-to-cloud 通信链路上开销的提高.

图4 通信开销Fig.4 Communication overhead

由图4 可以看出,本方案所需的通信开销明显低于其他两种方案,同时随着电表数量的增多,这种优势将更加明显.

7 总 结

本文提出了一种轻量级的隐私保护数据多级聚合方案F-LPDMA,实现了智能电网中隐私数据聚合的灵活性,高效性以及轻量级认证,同时通过分析可看出F-LPDMA 方案可以实现数据的机密性和隐私保护,确保雾设备和云中心在整个聚合过程中不知道用户的私人信息.最后,本文在计算成本和通信方面对F-LPDMA 方案进行了评估,通过与现有聚合方案的比较分析表明F-LPDMA 方案具有更小的计算和通信开销.未来将考虑把数据空时压缩[25-27]、网络资源优化[28]、深度学习[29]等理论融合进来,进一步提升网络系统性能与智能性.

猜你喜欢
密文电表加密
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
嵌入式异构物联网密文数据动态捕获方法
基于广义logistic混沌系统的快速图像加密方法
保护数据按需创建多种加密磁盘
一种新的密文策略的属性基加密方案研究
“蹦叭”跳动电表数
法国人抗议智能电表或监控隐私
加密与解密
停电那点事儿