非侵入式负荷监测系统数据隐私保护方法研究*
2021-12-22陈子秋冯瑞珏郑扬富刘嘉昕曾献煜王智东
陈子秋 ,冯瑞珏 ,郑扬富 ,刘嘉昕 ,曾献煜 ,王智东
(1.华南理工大学广州学院 电气工程学院,广东 广州 510800;2.华南理工大学 电力学院 智慧能源工程技术研究中心,广东 广州 510640)
0 引言
非侵入式负荷监测(Non-Intrusive Load Monitoring,NILM)装置为装载于智能电表的模块,通过测量并分析电力入口处的功率、电压、电流等电量信号,获取系统内各用电负荷的运行状态数据[1]。NILM 装置能准确统计和呈现出各用电设备的用电量及用电时间,帮助用户改善用电习惯,节约用电,但缺乏可靠保护,极易被追踪和攻击,存在数据信息泄漏的风险[2]。国家密码局常用的加密算法是SM 系列加密算法,文献[3]运用国密算法SM2与SM4 加密武器装备的数据,并验证了可行性。国际上流行使用的加密算法较多,如DES、AES、RSA 等,文献[4]利用其中的DES 与AES 算法来保障网络环境下安全通信和信息传输的安全。本文分析了NILM 数据安全所面临的风险,在国内外现有的密码技术中寻找最佳的密码技术加密方案。利用STM32 单片机平台进行方案测试和数据处理分析,最终验证了方案的有效性和耗时长短。
1 NILM 数据安全风险分析
NILM 系统结合智能电网,通过互联网进行数据传输,实现交互。电力信息安全性主要有完整性、有效性和机密性。完整性要求保证数据信息不被篡改,影响数据的真实性和可用性,如不法用户篡改用电数据,进行商业欺诈;有效性要求防止被佯装和接收错误指令,如冒充合法用户,导致接收方被错误引导并做出损害自身权益的行为;机密性是重中之重,若保密性无法保障,直接影响数据的完整性和有效性,会造成用户信息泄露、行为暴露,涉及隐私安全等诸多问题[5]。
图1 展示了黑客攻击NILM 系统的途径和方式,主要包括:(1)监听攻击,黑客截取用电大数据内容,通过NILM 负荷分解和数据分析处理,窃取用户的身份信息和活动隐私,用户像在黑客的“监听”下生活;(2)篡改攻击,不法用户篡改用电数据,进行偷电等违法行为;(3)冒充攻击,黑客利用截获的身份信息,假冒合法用户或电力公司,给对方发送有损利益的指令,造成更大的利益损失[6]。
图1 黑客攻击NILM 系统
2 数据隐私方案
常见的加密算法包括对称加密算法和非对称加密算法[7]。AES 是一种对称加密算法,其具备计算速度快、使用长密钥时难破解两方面的特点,在信息安全保护方面,广泛运用于加密敏感大数据[8];RSA 是一种非对称加密算法,其安全性很高,且具备签名验签功能,防止信息被篡改,但RSA 算法计算速度慢,适合加密数据长度短、有高安全性要求的信息保护场景[9]。NILM 系统信息交互频繁、数据流量大[10],为了保证用户信息数据安全,本文提出一种AES+RSA 混合加密数据隐私保护方案。
AES+RSA 混合加密方案如图2 所示。发送方和接收方都会生成一对RSA 密钥,私钥自己保留,公钥对方保留[11]。发送方将用电数据分析(明文)发送给接收方流程如下:
图2 AES+RSA 混合加密流程图
(1)发送方使用AES 密钥加密用电数据分析(明文)生成密文;
(2)发送方使用接收方RSA 公钥加密AES 密钥;
(3)发送方使用自己的RSA 私钥签名AES 密钥,并将密文和已加密签名的密钥发送给接收方;
(4)接收方使用发送方RSA 公钥验签,判断发送方的真实身份;
(5)接收方使用自己的RSA 私钥解密,生成AES 密钥;
(6)接收方使用AES 密钥解密密文,得到用电数据分析(明文)。
3 方案性能测试
混合加密算法为NILM 系统信息安全提供了一定的保障。在主频为480 MHz、型号为STM32H743IIT6 的ARM芯片搭建的平台上,实现验证混合加解密算法的效率。在计算机中利用Visual Studio 2017+Qt5 工具开发测试界面,界面显示算法、算法模式、密钥长度、明文数据和加密后的密文。从OpenSLL 算法开源库中抽取的AES和RSA 算法通过串口下载到单片机开发板中进行耗时性能测试。
3.1 AES 性能测试
AES 分为ECB、CBC、OFB、CFB和CTR 共5 种工作模式。为了解AES 在各种工作模式下数据长度与加解密耗时的关系,以1 000 B为间隔,测试了20 组不同数据长度在不同工作模式、不同密钥长度下的加解密耗时情况,并进行分析处理。
如图3 所示,5 个工作模式所呈现的趋势相同,加密耗时均随明文长度的增加而增加,R2=1,呈正相关的关系。除CTR 模式外,其余4 种工作模式的回归方程斜率基本相同。而CTR 模式回归方程的斜率稍大于其他模式,即CTR 模式的加解密耗时相对较长。根据AES 各模式的工作原理,ECB和CBC为块加密模式,CFB、OFB和CTR为流加密模式,流加密模式比块加密模式安全系数高,且CTR 模式设置了时钟计数步骤[12]。结合安全系数和加解密效率,CTR 模式是ARS 工作模式的最优选择。
图3 AES 各模式下明文长度对加密时间的影响
分别测试了CTR 模式在128 bit、192 bit和256 bit 3 种密钥长度下加解密的耗时状况。从耗时比例图可得,密钥长度越长,加解密耗时越长,128 bit 的加解密速度最快,随着密钥长度的增加,加解密的时间也随之增加,从128 bit 到192 bit,再到256 bit,每个阶梯耗时增幅为13%,增幅较大。效率是选择的重要因素,综上考虑,方案采用AES-128-CTR 加密数据。
3.2 RSA 性能测试
RSA 算法密钥长度有1 024 bit和2 048 bit 两种,国际常用的是RSA-2048 bit 算法。密钥长度越长,破解难度越大[13]。出于安全性方面考虑,选择用RSA 密钥长度为2 048 bit 去加解密AES 的密钥和签名验签,测试结果如图4 所示。
由图4(a)和图4(b)对比得出,RSA-2048 bit 的解密与签名耗时较长,适合加密长度较短的AES 密钥。由于RSA 算法是块加密算法,填充模式大部分是自填充模式[14-15]。以2 048 bit 密钥长度为例,在加密明文时若明文长度不足256 B,加密进行前会在不足256 B 的明文前面填充0,长度填充到256 B 才开始加密,经过填充后都为相同的明文长度,所以加密的时间都不受明文长度变化而影响,同理,签名验签和加解密的算法原理一样。两者在作用层面上不一样,加密是为了保证信息安全,签名是为了防止信息被篡改,签名和验签相当于多了一道防御系统,让整个系统更完善。
图4 2 048 bit 密钥长度的加解密和签名验签效率
3.3 总方案性能测试
如图5 所示,以明文长度5 000 B为例,对AES-128-CTR+RSA-2048 的混合加解密方案进行了耗时性能测试,软件左边的框图为测试的AES 加密明文时长、RSA加密密钥时长以及签名的时长,右边的框图为解密的过程以及时长。加密的明文与解密所得的明文完全一致,没有明显误差,证明NILM 组合密码方案有效。
图5 混合加密方案测试
4 结论
本文针对非侵入式负荷监测数据存在用户隐私泄露的安全问题,提出了一种基于AES+RSA 的混合加解密方案,并对方案进行了耗时性能测试,测试结果如下:
(1)AES 的耗时性能测试表明:AES 各模式的耗时与明文长度呈线性关系。CTR 模式在相同明文长度下,密钥长度越长,耗时呈阶梯式上升。本方案选择AES-128-CRT 模式对用电数据进行加密。
(2)RSA-2048 bit 的耗时性能测试表明:RSA 解密和签名时间耗时较长,且加解密和签名验签时间都不受明文长度变化而影响,适合加密长度较短的AES 密钥。
(3)AES-RSA 混合加解密方案测试表明:RSA 在组合加解密耗时中占主导地位,经过加解密和签名验签前后明文不失真,数据完整,本方案有效可行。