智能电网通信中动态密钥加密方法的研究与改进
马李翠, 黎妹红, 吴倩倩, 杜晔     
北京交通大学 智能交通数据安全与隐私保护技术北京市重点实验室, 北京 100044
摘要

针对智能电网无线通信过程中存在的数据监听、伪造、篡改等安全问题,结合智能电网的通信特点,改进了基于动态密钥的轻量级数据加密算法,提出了数据完整性认证方案.初始密钥嵌于设备内部,在通信过程中,利用非重传数据包同步更新双方密钥,使用异或算法完成数据对称加解密.另外,将密钥和消息作为Hash算法的输入,使用Hash值作为消息摘要,完成数据完整性认证.使用libmodbus开源库模拟主/从设备通信,实验结果表明,改进方案保证了密钥更新的同步性和准确性,实现了密钥的自我组织和管理,完成了数据的正确传输,同时在资源消耗上也明显优于现有算法.

关键词: 智能电网     数据加密     数据认证     动态密钥     对称加密    
中图分类号:TN393.0 文献标志码:A 文章编号:1007-5321(2017)04-0074-06 DOI:10.13190/j.jbupt.2017.04.012
Research of Dynamic Key Encryption Algorithm in Smart Grid Communication
MA Li-cui, LI Mei-hong, WU Qian-qian, DU Ye     
Beijing Jiaotong University, Beijing Key Laboratory of Security and Privacy in Intelligent Transportation, Beijing 100044, China
Abstract

To solve the security problem of data interception, forgery and tampering in the process of the smart grid communication, the dynamic key-based lightweight data encryption was improved. A scheme of data integrity authentication was proposed based on the analysis of the communication characteristics of the smart grid. The initial key was embedded in the device. The non-retransmission packets were used to synchronously update the two-party key, the exclusive-or algorithm was used to complete the data symmetric encryption and decryption. In addition, the key and the message are used as the input of the Hash algorithm, and the Hash value was used as the message digest to complete data integrity authentication. Libmodbus open source library was used to simulate the communication between master and slave devices. Experiments show that the synchronization and accuracy of key update are ensured, the key self-organization and management are realized, the data transmission is completed correctly, and the resource consumption is obviously superior to the existing algorithm.

Key words: smart power grid     data encryption     data authentication     dynamic key     symmetric encryption    

新型智能电网的广泛应用,提高了能源利用率,完善了电力市场,但同时也引入了很多安全问题[1-4].由于智能电网中通信设备数量庞大,种类繁多,且大都是嵌入式设备,采用的是成本低廉、灵活性高的无线通信[5],在信息传输过程中,面临着数据窃听、篡改、伪造等安全威胁[6-8].

目前,智能电网中仍在用标准对称加密算法,而智能电网中无线终端数量庞大且分布广泛,密钥的分发和有效更新是个挑战[9-10]. Li等[11]提出智能安全信息聚合方法,采用修改的同态加密来保证数据不在任何设备上泄露.但该方案调用第三方服务来生成和管理密钥,并且基于数学难题,没有充分考虑智能电网中通信设备的存储空间和计算能力,在实时通信的过程中并不适用,会带来额外的通信负担[12-13]. 因此,学者们基于代数、数论等基础知识研究了一系列的轻量级密码算法. Kumar等[14]提出了用于保护智能仪表和智能电网基础设施之间安全通信的轻量级弹性协议,但是该协议正常运行的前提是智能电表安全模块里的初始化密钥始终安全有效,其一旦泄露就会直接影响数据的安全传输. Premnath等[15]利用NTRU(number theory research unit)非对称加密算法实现数据采集和监视控制系统内的数据完整性保护和身份认证.在数据采集和监视控制数据包长度较大时,算法回退到数字信封思想. Xiao[16]等提出了一种动态对称密钥算法,但是算法中没有明确说明数据链路层判断重传包的依据,并且没有论证通信双方怎样可以保证彼此监听到的结果是一样的;同时,网络状态对算法的影响程度较大,动态秘密存储的是整个数据包,存储空间极大.

1 基于动态密钥现有算法分析 1.1 算法介绍

通过监听数据链路层数据包的传输,根据停止等待协议判断数据包是否属于重传,如果是重传数据包,则记为1;否则记为0,并将0/1加入集合中,当集合长度达到门限时,使用Hash算法计算出动态秘密,并使用该动态秘密异或旧密钥得到新密钥,采用异或算法完成数据加解密[17].

1.2 算法不足

1) 算法依赖数据链路层协议,且只适用于停止等待协议,对于回退N帧自动重传请求(ARQ, automatic repeat request)和选择重传ARQ协议并不适用.

2) 算法中集合的元素取值只有0和1两种,并且强依赖于网络环境.如果网络环境稳定,很长一段时间内都是正常数据包,意味着集合中元素取值全是0,导致Hash计算出的动态秘密都一样,密钥在本质上并没有更新.

3) 算法基于敌手存在监听错误来保证通信密钥不被破解,但是没有说明如何保证合法设备之间通信的准确性和一致性,并且关于Hash算法的选择标准也没有具体说明.

2 改进算法框架

智能电网设备通信特点决定了在设计密码算法时,不得不采用密钥长度小、安全强度低的对称密钥算法.改进算法框架如图 1所示.

图 1 基于动态密钥的数据安全方案

1) 有效序列生成模块主要负责过滤筛选出非重传数据包,并对其进行Hash计算获得有效序列,且放入有效序列集合.

2) 对称密钥更新模块主要负责统计有效序列集合的长度,确定门限长度,当集合长度达到门限时,直接更新对称密钥,同时重置有效序列集合.

3) 数据加解密模块主要负责使用当前最新的密钥对数据进行按位异或完成对称加解密.

4) 消息摘要计算模块主要负责计算发送消息的摘要,用于拼接在消息之后发送给接收方用来校验消息的完整性.

5) 数据传输模块主要是通过调用Winsock网络编程接口,为通信双方建立Modbus的TCP/IP通信.

3 模块具体设计 3.1 有效序列生成

有效序列是后续动态更新对称密钥的关键基础.每一个非重传数据包都会经过序列生成算法获得一个相应的序列值b,序列长度可以自定义. ci表示第i次的密文请求,bi表示第i个数据包对应的有效序列,S表示序列集合.

Master和Slave的通信一般是在固定间隔内定时通信. Master在接收到数据包ci的响应后,将bi加入S;Slave收到请求ci后,和暂存的上一个数据包ci-1进行有效数据部分对比,如果一致,则返回上次的响应包,不更新S,否则认为是新请求,则将bi-1加入S. Slave总是比Master慢一步更新集合.

序列产生采用快速Hash算法,同时考虑Hash函数的碰撞性,因此选择使序列的取值分布趋于平均化的Hash算法来计算序列取值,以保证实验数据的可靠性.

3.2 对称密钥更新

密钥更新的同步性和一致性是整个算法的核心.系统的初始密钥k1是嵌入设备芯片内的,默认不会被暴力破解.主从设备的密钥更新过程如图 2所示,其中k(c, s)表示控制中心Master和智能电表Slave的共享密钥.密钥更新采用简单快速的异或算法,且周期性自动更新,没有额外的通信和维护负担,灵活易于管理.

图 2 主/从设备的密钥更新过程

Master收到响应后,首先调用解密模块进行数据解密,然后更新S集合,将当前bi加入集合中,需要统计此时S集合的长度,如果集合长度到达门限长度,则进行密钥更新,重置S为空.

Slave收到请求后,根据是否是重复请求,更新S,将bi-1加入S,判断此时S集合的长度,如果到达门限长度,则进行密钥更新,重置S为空,然后解密ci计算出当前对应的bi,发送响应数据包,完成通信.

在密钥更新过程中,当序列集合长度达到门限时,尽管集合中元素取值是随机均匀分布,也需要排除集合全为0的情况,保证每次密钥不同.因为全0异或旧密钥,得到的新密钥取值无变化.获得新密钥后,去除全为0的弱密钥,因为弱密钥异或加密消息后,消息无变化.

3.3 数据加解密

数据加解密,充分考虑智能电网的通信特点,借鉴现有算法,保留快速按位异或算法,简单可行.加密和解密分别为

$ \text{P}\oplus \text{DEK}\left( k \right)=C $ (1)
$ C\oplus \text{DEK}\left( k \right)=P $ (2)

其中:P为待加密数据,DEK(k)为动态密钥,C为加密后密文.如果数据长度小于等于密钥长度,则只需要和密钥相应位置进行异或;如果数据长度大于密钥长度,则密钥循环异或数据即可.

加解密过程中,不涉及大素数生成、指数等复杂运算,可以独立完成,避免了调用第三方的安全服务带来不可预估的风险,实现了自我管理.

3.4 消息摘要

消息摘要充分考虑智能电网信息采集系统中数据报文的长度,设计基于消息摘要算法第五版(MD5, message digest algorithm 5),直接将密钥和消息作为输入计算摘要值的轻量级摘要算法.

1) 发送方针对需要加密的数据,拼接当前的动态密钥,计算摘要值,然后将数据和摘要值一起发送给接收方.

2) 接收方获得消息,区分数据和摘要后,利用自己当前的动态密钥,采用同样的摘要计算方法计算摘要值并和接收到的摘要值进行对比,如果一致,则消息认证成功;否则失败.

算法融合了基于Hash的消息认证码(HMAC, hash-based message authentication code)的思想,采用Hash算法,效率比HAMC高,同时也避免了离线碰撞和长度扩展攻击.攻击者即使截获了<消息-消息摘要>,也无法推算出密钥k,进而无法进行离线碰撞.在长度扩展攻击中,利用的就是接收方无法正确识别数据真实长度这一缺陷,而在Modbus协议请求和响应数据包中,第5、6字节表征了后续数据的长度,该字段作为数据包的一部分参与Hash运算,攻击者在没有密钥的情况下,无法更改该字段的取值,即使在数据包后面拼接了恶意数据并计算摘要,接收方对长度字段的校验必然失败,则攻击失败.

4 算法实现与测试

CPU为intel core i5,主频2.5 GHz,内存8 GB,硬盘256 GB,基于libmodbus开源库,在Visual Studio 2015平台上完成算法实现.

4.1 序列生成算法

实验选用3个不同的字符串Hash函数,分别是PHP中的PJWHash、MySQL中的Calc_hashnr和经典的Hash,对100万随机数进行运算,然后用0x03、0x15、0xff和运算结果相与,获得2 bit、4 bit序列分布,如图 3所示.

图 3 3种算法的序列分布

8 bit的序列分布走势同2 bit和4 bit.由图 3可见,PJWHash算法得到的序列取值分布趋于平均分布,Hash算法的结果围绕平均值上下轻微波动,Calc_hashnr算法的结果跳跃性太大.因此,实验采用PJWHash保证序列取值的可靠性.

4.2 密钥更新测试

密钥的更新取决于双方有效序列的准确性和同步性,即从端需要保证准确接收到请求,主端需要保证准确收到响应.这些都是在应用层由程序来进行判断和控制的,避开了数据链路层、物理层等底层操作,可以保证数据的发送、接收、解析和验证.

实验中,设置有效序列长度为4,集合门限长度为128,则在正常通信的情况下,32次通信就会更新一次对称密钥.通信过程模拟实际设备通信环境,随机重复发送请求包,进行了13 100次测试,验证通信双方密钥更新的同步性和准确性,结果如表 1所示.

表 1 主从设备密钥同步更新

针对每1 000次通信,主从设备统计了请求数据包和密钥更新的情况.可见,在通信过程中很难预测到数据包的重传情况,并且不可避免.具体分析请求包为5 000个,重传495个,非重传4 505个,重传率为9.900%.按照每32个非重传包,密钥更新一次,理论上密钥更新次数为140,等同于实际通信过程中主从设备的密钥更新次数,并随机检查主从密钥的更新取值是一致的.结果表明,主从设备的密钥同步更新达到了自我组织和管理的目标.

4.3 数据加解密测试

实验采用随机算法模拟生成密钥,对比典型公钥加密算法(RSA, Ron Rivest、Adi Shamir、Leonard Adleman)、数据加密标准(DES, Data Encryption Standard)和改进算法异或(XOR, exclusive or)的加解密过程的耗时情况,如图 4所示.其中RSA密钥长度为1 024 bit,DES密钥长度为64 bit,改进算法的密钥长度为128 bit,针对特定长度的数据,连续加解密100次,统计100次的耗时.

图 4 RSA、DES、XOR 3种加密算法耗时对比

图 4可见,RSA、DES和XOR 3种加密算法耗时均随着加密数据长度的增长而呈现阶梯状上升.其中,RSA加密耗时在百毫秒级别,数据长度在200~256 B之间的平均耗时是480.900 2 ms;DES和XOR加密耗时均在10 ms内,数据长度在200~256 B之间的平均耗时分别是1.950 0 ms和0.533 8 ms.

轻量级数据加解密XOR的耗时时间是典型DES算法耗时的1/2,是RSA算法耗时的1/900,效率上明显优于DES和RSA,符合工业控制系统及时通信的需求.

4.4 消息摘要测试

实验以MD5摘要计算方法为基础来验证典型的HMAC和改进的Lightweight-MD5的效率,使用QueryPerformanceCounter、QueryPerformanceFrequency精确统计耗时.随机产生N(1~240) 字节的数据,分别执行1 000次HMAC-MD5和Lightweight-MD5来计算摘要,统计各自花费的时长,即1 000次的总时长,如图 5所示.

图 5 HAMC-MD5和Lightweight-MD5耗时对比

由于HMAC存在密钥预处理、Hash附加运算,所以起步耗时比Lightweight-MD5长.随着待加密数据长度的增长,2种算法耗时都呈阶梯上涨,趋势一致.通信Modbus/TCP协议数据包长度集中在10~300 B,1 000次HMAC-MD5和Lightweight-MD5的耗时平均相差0.789 389 ms.因此,改进后的Lightweight-MD5消息摘要算法满足智能电网实时通信的特点,时延较小.

4.5 算法安全性分析

算法主要改进了动态密钥的生成过程.该过程不依赖于数据链路层,而是在应用层直接根据数据包的内容来判定重传,进而生成有效序列集合来更新动态密钥.算法的安全性取决于密钥的安全性.

1) 初始密钥是嵌入设备内部的,只有合法通信设备才可以在通信过程中准确无误同步更新密钥,正确完成加解密.

2) 序列生成算法PJWHash,保证了序列集合的平均分布是随机的.该集合异或旧密钥后,保证了动态新密钥的随机性.

3) 采用按位异或完成加解密,不涉及复杂运算,不调用第三方的安全服务,降低了资源消耗,实现了自我管理.

4) 密钥在通信过程中自动周期更新.即使敌手在某个时刻获得了系统的会话密钥,而在随后的通信中系统会不断产生动态序列来更新会话密钥.由于网络具有动态性,任何监听信息的丢失积累或者错误都会阻止敌手获得准确的序列集合,无法破解动态密钥,保证了通信数据的安全性.

5 结束语

以智能电网无线通信数据安全为研究对象,分析现有算法的特点和不足,并进行改进实现,实验结果表明:

1) 算法不依赖数据链路层协议,无需额外监听底层数据包传输情况.

2) 采用平均分布的Hash算法,针对非重传数据包计算出可变位数的二进制序列.序列取值不依赖于网络状态,保证了动态密钥的随机性和新鲜性.

3) 动态密钥更新实现了自我组织和管理.通信双方在正常通信过程中完成密钥同步更新,无额外通信负担,简单可行.

4) 加解密采用简单的XOR和Hash,符合嵌入式设备的通信特点,对资源的消耗都很少.

5) 算法不仅适用于Modbus协议,且适用于无线通信工程中的其他协议,具有良好的适用性.

参考文献
[1] Rajagopalan S R, Sankar L, Mohajer S, et al. Smart meter privacy:a utility-privacy framework[C]//2011 IEEE International Conference on Smart Grid Communications. Brussels Belgium:IEEE, 2011:190-195.
[2] Lu Zhuo, Lu Xiang, Wang Wenye, et al. Review and evaluation of security threats on the communication networks in the smart grid[C]//2010 Military Communications Conference. San Jose:IEEE, 2010:1830-1835.
[3] 刘雪艳, 张强, 李战明. 智能电网信息安全研究综述[J]. 电力信息与通信技术, 2014, 12(4): 56–60.
Liu Xueyan, Zhang Qiang, Li Zhanming. A survey on information security for smart grid[J]. Electric Power Information and Communication Technology, 2014, 12(4): 56–60.
[4] Amin S M. Smart grid security, privacy, and resilient architectures:opportunities and challenges[C]//2012 IEEE Power and Energy Society General Meeting. San Diego:IEEE, 2012:1-2.
[5] Wang X, Yi P. Security framework for wireless communications in smart distribution grid[J]. IEEE Transactions on Smart Grid, 2011, 2(4): 809–818. doi: 10.1109/TSG.2011.2167354
[6] Lim H, Ko J, Lee S, et al. Security architecture model for smart grid communication systems[C]//2013 International Conference on IT Convergence and Security (ICITCS). Macao:IEEE, 2013:327-330.
[7] Li X, Liang X, Lu R, et al. Securing smart grid:cyber attacks, countermeasures, and challenges[J]. IEEE Communications Magazine, 2012, 50(8): 38–45. doi: 10.1109/MCOM.2012.6257525
[8] Anandhi A, Kalpana G. Securing smart grid communication against false data injection attacks[J]. Wireless Communications, 2016, 8(5): 211–215.
[9] Nicanfar H, Jokar P, Beznosov K, et al. Efficient authentication and key management mechanisms for smart grid communications[J]. IEEE Systems Journal, 2014, 8(2): 629–640. doi: 10.1109/JSYST.2013.2260942
[10] Smart Grid Interoperability Panel Cyber Security Working Group. Introduction to NISTIR 7628 guidelines for smart grid cyber security[EB/OL]. USA:NIST Special Publication, 2010. http://www.nist.gov/smartgrid/upload/nistir-7628_total.pdf.
[11] Li Fengjun, Luo Bo, Liu Peng. Secure information aggregation for smart grids using homomorphic encryption[C]//First IEEE International Conference on Smart Grid Communications. Gaithersburg:IEEE, 2010:327-332.
[12] Dehalwar V, Kalam A, Kolhe M L, et al. Review of IEEE 802. 22 and IEC 61850 for real-time communication in smart grid[C]//International Conference on Computing and Network Communications. Trivandrum, India:IEEE, 2015:571-575.
[13] 傅戈, 周年荣, 文红. 智能电网工业系统通信控制协议的安全研究[J]. 信息安全与技术, 2014, 5(1): 36–38.
Fu Ge, Zhou Nianrong, Wen Hong. The study of security issues for the industrial control system communication protocols in smart grid system[J]. Information Security and Technology, 2014, 5(1): 36–38.
[14] Kumar V, Hussain M. Secure communication for advance metering infrastructure in smart grid[C]//2014 Annual IEEE India Conference (INDICON). Pune, India:IEEE, 2014:1-6.
[15] Premnath A P, Jo J Y, Kim Y. Application of NTRU cryptographic algorithm for SCADA security[C]//201411th International Conference on Information Technology:New Generations (ITNG). Las Vegas:IEEE, 2014:341-346.
[16] Xiao S, Gong W, Towsley D. Secure wireless communication with dynamic secrets[C]//2010 Proceedings IEEE INFOCOM. San Diego:IEEE, 2010:1-9.
[17] Liu Ting, Liu Yang, Mao Yashan, et al. A dynamic secret-based encryption scheme for smart grid wireless communication[J]. IEEE Transactions on Smart Grid, 2014, 5(3): 1175–1182. doi: 10.1109/TSG.2013.2264537