基于同态加密的电网隐私数据多维聚合优化算法
2023-05-05王凌宇
王凌宇,傅 宏,马 创,杨 云
(1.国网重庆市电力公司营销服务中心 重庆 400015;2.重庆邮电大学 软件工程学院 重庆 400065)
0 引 言
智能电网凭借先进的信息技术、传感器技术、自动控制技术[1-2],实现了电网的安全和高效性,也促使智能电网的应用越来越广泛。智能电网除了提供基本供电之外,还涉及监控设备实时状态、用电数据收集、配电方式调整以及价格方案制订等领域[3]。
智能电网要保证每个用户用电数据的隐私信息,还要将所有用户的用电信息聚合起来传输到控制中心[4]。随着智能电网应用的迅速扩大,众多问题也逐渐暴露出来[5-6],其中数据安全以及隐私保护是被广泛关注的问题。电力系统的隐私行为、用电特征等隐私信息泄露事件不断发生,伪造的虚假数据数量不断增加,发送错误指令影响电力网络运行稳定性和安全性[7]的行为不断发生,都说明了智能电网数据安全以及隐私保护的重要性。智能电网促进了新服务、新业务的发展,与此同时,隐私泄露问题也凸显出来。智能电网中的聚合器得到了使用者用电的详细信息,用户敏感的私人信息在电力网络内部或外部进行传播,对用户的隐私和安全构成了一定的威胁。
针对目前智能电网存在的数据隐私泄露问题,传统的解决方案大都依赖于数据加密算法[8]。对称加密算法、非对称加密算法以及混合加密算法[9]都是目前常用的方法。高级加密标准(advanced encryption standard, AES)计算量比较小,加密速度快,但是忽略了加密过程中的安全性。椭圆曲线加密算法(ellipse curve ctyptography, ECC)不适合对大量的电力数据进行加密,效率比较低。传统加密方法存在着数据传输过程中加/解密效率低下和安全实现条件过于苛刻等问题,不适于对大量的电力数据进行加密操作。
为了保证用户用电信息在数据聚合过程中的通信安全,众多学者提出了不同的数据聚合方案。Paillier同态加密算法[10]是数据聚合中最常见的一种算法,它可以在不解密用户加密数据的情况下执行聚合操作,已经应用于许多现有的数据聚合方案中[11-13]。文献[14]关注了现有方法中较少提及的多维用户数据,把数据聚合扩大到多维用户数据,提出了一种隐私保护和安全的多维聚合方案,但是该方案不能抵抗内部攻击,如果操作权限受到攻击,用户的数据将会被泄露。文献[15]提出了一种增强隐私的数据聚合方案,每个用户的密文中结合盲因子,利用盲因子隐藏电力网络中的隐私信息,以保护数据免受内部攻击者的攻击。这种盲因子技术已得到了许多的应用[16-20]。当智能传感器发生错误,出现传感器故障或者没有上传其数据时,聚合器将会得到错误的聚合结果。文献[21]进一步提出一种保护隐私的数据聚合方案,将盲因子分配给聚合者和用户,即使部分用户的智能电表出现故障,通过受信任的权威机构帮助,该聚合方案仍然能够不受故障影响继续很好地工作。但是该方案的通信开销非常大,不能进行签名数据的验证。
从以上分析可以看出,基于传统Paillier同态加密算法的数据聚合方案加密效率以及聚合过程中的安全性不能满足在实际应用中的需求。因此,为了有效解决智能电网用户用电数据聚合上传通信过程中存在的计算效率低、传输不安全、泄露用户隐私等问题,本文提出了一种基于同态加密的电网隐私数据多维聚合优化算法。本文的主要贡献如下。
1)针对加密数据的安全性问题,提出了一种基于盲因子技术的Paillier加密算法,对多维数据进行整体加密和签名,使得入侵者即使获得了数据解密的密钥也无法解密每个用户的加密信息从而保证数据的安全性,进一步体现出数据聚合的特性。
2)针对签名验证过程中计算成本高的问题,提出了一种双线性配对的高效批量验证签名数据方案,实现消息签名的快速验证以降低整个系统的计算成本和通信成本。
1 基于同态加密的电网隐私数据多维聚合优化算法
本文所提出的基于同态加密的电网隐私数据多维聚合优化算法,由Paillier加密算法和隐私数据聚合算法两部分组成。Paillier加密算法通过传输过程中对智能电网中的多维数据进行密钥的生成以及加密和解密,确保数据在该过程中隐私数据的安全性。隐私数据聚合算法利用Paillier算法中的同态特性,实现数据的聚合;利用双线性配对的双线性,进行高效的数据签名批量验证方案,实现数据的快速验证,降低整个算法的通信成本和计算成本。
1.1 Paillier隐私数据加密算法
Paillier加密方案通过对智能电网中的多维数据进行密钥生成、加密和解密,确保隐私数据的安全性;利用概率公钥加密算法以及Paillier加密算法,满足加法和乘法同态。该加密算法被广泛应用于各种保护用户隐私的场景中,它包括密钥生成、加密和解密3个部分。Paillier加密算法的具体流程如图1所示。
图1 Paillier加密流程图Fig.1 Flow chart of Paillier encryption algorithm
Paillier加密算法的具体算法流程如下。
3)解密。由前述流程可知,消息m的密文为c=E(m)=gm·rNmodN2,私钥为(λ,μ),计算得消息m的明文为m=L(cλ mod n2)·μmodn。
1.2 隐私数据聚合系统
本文提出的隐私数据聚合系统包括大量用户、聚合器、可信权威机构3类实体。大量用户U={U1,U2,…,Un}都配有智能电表,可以用来记录实时的用电量信息,将这些信息通过同态加密和签名算法生成加密和签名的数据集,并将这些加密和签名的数据向聚合器报告一次,不过有时候会出现故障导致停止报告;聚合器可以接收到智能电表总用电量数据但是无法知道每个智能电表的详细用电量;可信权威机构是系统模型中最受信任的实体,在初始化阶段,可信权威机构选择盲因子,并将盲因子发送给每个用户和聚合器,对隐私数据进行整体加密来保障整个系统的安全性。
本文在数据加密阶段提出了基于盲因子技术的Paillier加密算法。先利用Paillier加密算法对隐私多维数据进行加密,然后可信权威机构随机选择盲因子发送给每个用户进行保护,使得入侵者即使获得了数据的解密密钥也无法解密每个用户的加密信息。在数据聚合阶段,本文提出了一种双线性配对验证方案对签名数据进行验证,实现了数据签名的快速验证。
1.3 算法具体步骤
目前,智能电网中各个智能传感器读数时存在数据隐私泄漏的问题,计算和通信时存在效率较低的问题。本文将盲因子技术和高效批量验证数据签名方案加入到同态加密算法中,提出了一个基于同态加密的电网隐私数据多维聚合优化算法。该算法包括初始化、数据生成与加密、聚合3个步骤,如图2所示。初始化阶段,对系统中的3类实体进行初始化,生成系统参数并对应注册;数据生成与加密阶段,将采集到的数据进行同态加密和签名,并向聚合器报告密文和签名;聚合阶段,对收到的报告进行签名正确性验证,对验证之后的报告进行聚合。
本文算法具体步骤如下。
图2 基于同态加密的电网隐私数据多维聚合优化算法图Fig.2 Multi-dimensional aggregation optimization algorithm based on homomorphic encryption
3)报告聚合阶段。聚合器接收到n个用户传送过来的某个时刻t产生的用电数据报告,即用电数据的密文和签名{CTi,σi},聚合器也已经计算出hi=H3(CTI),W=H1(t)。
算法1:数据聚合恢复算法
输出:(D1,D2,…,Dl)
1:SetXl=M
2: forn=lto2do
3:Xn-1=Xnmodan
5: end for
7: return(D1,D2,…,Dl)
2 实验与分析
2.1 实验设计
本文仿真实验在64位Windows10操作系统上进行。CPU为Intel Core i7 3.5 GHz处理器,运行内存为8 GB。采用基于Java的配对密码学库(JPBC)。
实验评价主要是安全性分析和性能分析。安全性分析分为攻击安全性、解密安全性以及批量验证安全性的分析;性能分析从计算效率和通信效率两个方面进行评价。
计算效率评价从本文所提方法的加密方案和签名方案效率的角度进行,采用Paillier密码系统、传统基于身份的密码系统、传统基于量子密钥的系统以及EPPA系统[24]和文献[25]采用的方案,随机生成一系列的整数Z1,Z2,…,Zn(将n定义为10、20、30、40、50、60、70、80、90、100),计算加密和签名的时间并进行对比,此外,还分别对加密和签名在聚合器验证阶段所花时间进行对比。
通信主要是指用户生成各种用电量数据,将其加密签名之后传送到聚合器的过程。通信效率的评价指标由随机生成的数据Z1,Z2,…,Zn(将n定义为10、20、30、40、50、60、70、80、90、100)利用不同的方案以进行验证。
2.2 实验结果与分析
2.2.1 安全性分析
1)攻击安全性。分别对外部攻击和内部攻击进行分析。
2)解密安全性。文献[26]提出一种基于模糊集的改进区块链DPoS共识机制,大大提高了区块链当中的解密安全性。本文运用Paillier加密算法和盲因子技术对多维数据进行整体加密,智能电表在加密自己的用电数据信息时采用了盲因子技术,攻击者即使获得Paillier加密算法的解密密钥,也无法解密每个智能电表的密文信息,也就不能获取每个用户的用电信息。
3)批量验证安全性。本文根据文献[27]对短签名批量验证过程中的安全性进行证明。可知,如果Verify(M1,SK1,σ1)=…=Verify(Mn,SKn,σn)=1,那么一定有Batch((M1,SK1,σ1),…,(Mn,SKn,σn))=1。本方案的验证过程如下。
如果Batch((M1,SK1,σ1),…,(Mn,SKn,σn))=1,因为q是其中一个比较大的质数,所以βj会有一个逆γj使得βjγj≡1modq,由此得出,存在j,使得公式Verify(Mj,SKj,σj)=0,但是Verify(M1,SK1,σ1)=…=Verify(Mn,SKn,σn)=1,很明显就可以看出这违背了批量验证的定义。将存在一个j的公式Verify(Mj,SKj,σj)=0和Batch((M1,SK1,σ1),…,(Mn,SKn,σn))=1的事件定义为E,根据向量Δ(δ1,…,δn)可以计算事件E发生的概率性很小,可以忽略不计,由此可知,本文所提出的批量验证安全性可靠。
2.2.2 性能分析
1)计算效率。为了验证本文的方案,分别进行了以下3个实验。第1个实验,用本文所提出的同态加密算法与另外4个对比算法将随机生成的整数进行加密,计算出整个加密时间进行对比,实验结果如图3所示;第2个实验,将随机生成的整数进行签名,计算出整个签名时间进行对比,实验结果如图4所示;第3个实验,模拟数据上传到聚合器之后,对消息签名进行批量验证,将其和另外4个算法中的单一验证计算出验证的时间进行比较,实验结果如图5所示。
图3 数据加密时间对比图Fig.3 Data encryption time comparison diagram
图4 数据签名时间对比图Fig.4 Data signature time comparison diagram
图5 签名验证时间对比图Fig.5 Comparison of signature verification time
由图3可见,当n<30时,本文所提出的算法加密效率更高;当n>30时,基于量子密钥系统加密效率更好。假设每个用户所产生的各种类型的用电数据大小相等,在用户量小于30时,本文提出的优化算法具有更好的加密效率。在用户量比较大的时候,由于在加密时将盲因子和Paillier加密算法进行混合整体加密,因此本文算法在加密阶段会花费大量的时间。本文所提出的算法更适用于用户量小于30的情况。
由图4可以看出,本文算法的签名方案不管在多大的用户量下效率都比其他两种对比方法要高。从图5可以明显看出,本文所提出的批量验证方案花费的时间要远远小于其他4种对比算法,证明本文所提出的用双线性配对去验证签名的正确性是有效的。
综上所述,本文算法具有更好的计算效率。
2)通信成本。本文所述通信指用户与聚合器之间的通信。通信成本用计算出加密签名之后的数据上传到聚合器的时间进行对比,实验结果如图6所示。
图6 通信时间对比图Fig.6 Communication time comparison diagram
从图6可以看出,本文算法上传所需时间最少,通信成本比较低。表1是不同用户数下不同方案的时间指标数据。由表1可知,本文方案在签名时间、上传时间以及验证时间上都较其他都几种方案表现更优。
表1 计算效率、通信效率对比
综上所述,本文方案能够抵抗外部攻击和内部攻击,可以显著降低计算效率以及通信开销,能够有效地对用电数据进行加密以保证其用电数据的安全,同时以更小的通信成本,有效解决智能电网中用户用电数据聚合上传通信过程中存在的计算效率低、传输不安全、泄露用户隐私等问题,可以广泛应用到智能电网场景中。
3 结束语
本文提出了一种基于同态加密的电网隐私数据多维聚合优化算法。首先,利用基于盲因子技术的Paillier加密算法对从智能电表实时采集的各种类型的用电数据进行整体加密和签名;然后,采用了双线性配对的高效批量验证对数据签名进行快速验证以提高计算效率;最后,利用Paillier加密算法的同态特性实现多维数据的聚合。在安全性分析中详细证明了批量验证的内外攻击安全性和解密安全性。为了验证所提方法的计算效率和通信效率,本文进行了一系列实验,随机生成数据模拟多维用户所产生的用电数据量,将本文提出的算法与基于身份的同态方案、基于量子密钥系统、EPPA系统[24]以及文献[25]所提出的方案进行对比,实验结果表明,本文算法的计算效率和通信效率都较优。
所有实验都表明,本文优化算法是有效的,但是仍有许多改进的余地。进一步的工作将考虑聚合算法的容错功能,即用户在进行信息受到错误的智能电表无法发送消息的影响,也可以正常发送到聚合器。