基于SM9门限签名的电力终端安全认证方案

2022-09-26 12:26赵继光
电力科学与技术学报 2022年4期
关键词:私钥服务端门限

喇 元,赵继光,张 伟

(1.中国南方电网有限责任公司,广东 广州 510623;2.南方电网数字电网研究院有限公司,广东 广州 510633)

智能电网是新一代电网的智能化,通过先进的传感、信息通信和自动控制技术,实现“发—输—变—配—用”以及信息、通信、跨环节电力系统的高度自动化、互动化和信息化[1-2]。随着智能电网建设的逐步推进,出现了海量电力终端设备[3],其数量庞大、种类繁多、分布广泛、通信手段多种多样,这些特点给智能电网信息安全防护带来了新的挑战,如何鉴别海量终端泛在接入和广泛互联过程中的身份,建立安全稳定的电力终端与服务端、电力终端与电力终端之间的交互认证和信任机制成为亟待解决的问题[4]。

为了解决电力终端的安全认证问题,各种密码算法和密码模块被应用到电力终端中。文献[5]提出了电力终端采用国产SM2密码体系的SD卡安全接入方案;文献[6]设计了一种配电终端设备安全加密模块,以此来实现对主站和终端的身份鉴别;文献[7]提出了利用椭圆曲线密码算法(elliptic curves cryptography,ECC)产生动态密钥来保证电力终端与电力专网之间信息的传输。但以上文献均需要电力终端集成密码芯片(密码硬件模块),且均基于PKI体系实现。文献[8]描述了电力终端安全芯片存在的不足,指出需通过软硬件结合方式构建轻量级的验签体系,实现电力终端分布式授权和高速安全接入认证。

为此,本文提出基于SM9门限签名的电力终端安全认证方案。基于IBC的标识密码体系(SM9算法)不需要证书,终端的标识即为公钥,更适用于海量电力终端的认证,SM9门限签名方案采用分割存储和使用私钥的方法,不依赖电力终端设备中安全芯片的支持,可以密码软件模块的形式应用于电力终端。

1 电力终端安全分析

1.1 电力终端信息安全现状

目前,中国电网接入的终端设备超过5亿只,规划到2030年,接入电网系统的各类保护、采集、控制终端设备数量将达到20亿台,届时整个电网将是接入终端设备最大的物联网生态圈。与此同时,电力终端的信息安全问题也越发突出,电力终端作为电力系统信息的采集者、被访问者和传输者,如何鉴别电力终端的身份、保证数据传输过程中的机密性和完整性等安全防护问题急需解决[9-10]。

现有的电力系统中多采用以PKI体系为主体的电力终端安全防护方案[11]。随着物联网和5G技术的发展和万物互联时代的来临,现有的PKI体系在面对智能电网海量终端接入的需求上面临着新的挑战,一方面,PKI体系证书管理复杂,证书查找、更新、撤销等操作占用了较大的存储开销和计算量,且PKI体系的安全性高度依赖于证书服务机构(certificate authority,CA),存在着虚假证书、单点故障等问题。智能电网环境下电力各种终端设备种类繁多,且其数量持续增长,如果使用PKI体系保障其信息安全性,则对于数字证书的生成和管理成本以及在数字证书应用中的通信和计算成本将是巨大的。

1.2 IBC技术的应用

1984年Shamir开创性的提出了基于标识的公钥密码体系(identity based cryptography,IBC)的概念。在IBC体系中,用户的私钥由密钥生成中心(key generation center,KGC)根据主密钥和用户标识计算得出,用户的公钥由用户的标识确定。

基于标识的IBC密码体系可有效地解决PKI体系中数字证书管理的难题,它通过用户的身份标识用以生成用户的公私钥对,无需数字证书绑定。在IBC标识密码中,通信的双方能够根据彼此身份ID计算出对方的公钥,因而降低了密钥交换和密钥管理的复杂程度,利用IBC标识密码的数字签名和加密算法,可以方便地为智能电网电力终端提供身份认证、数据传输机密性等安全防护。

尽管IBC体系相对于PKI体系具有众多优势,但IBC密钥在电力终端安全便捷的存储和使用是IBC体系安全运行的关键,现有的安全方式多采用把密钥存储在电力终端安全芯片中,或把密钥以软件的形式存储在电力终端的内存中。智能电网环境下由于电力终端的类型广泛且接口不一,众多的电力终端没有预留安全芯片的接口,而把密钥直接存储在电力终端内存中的方式被攻击者破解的几率很大,安全风险较高。如何在电力终端中安全便捷的存储和使用IBC密钥成为本方案要解决的问题。

2 相关知识

2.1 SM系列国密算法

为了实现中国密码算法的自主可控,国家密码管理局制定了一系列密码算法标准,包括SM1、SM2、SM3、SM4、SM7和SM9等。其中,SM1、SM4和SM7算法为对称算法,且SM1、SM7算法不公开,使用该算法需要调用专有的密码芯片接口;SM3为密码杂凑算法,主要用于数字签名和数据完整性保护等;SM2、SM9为非对称算法;SM2为椭圆曲线公钥密钥算法;SM9是一种基于双线性对的标识密码算法。

国密SM系列算法在电力系统中得到了广泛的应用,基于SM2/SM3/SM9算法替换了国际RSA/SHA1算法,建立了电力系统密码应用防护体系和电力专用安全防护装置,实现电力设备的身份鉴别和数据完整性保护[12-14];对电力主站和终端之间、智能电表和计量模块等的业务数据采用SM1/SM4进行加解密操作,保证了业务数据的安全性。

2.2 SM9数字签名算法

SM9算法是中国采用的一种IBC标识密码标准,是中国自主设计、具有独特优势的安全高效密码算法,2018年中国SM9算法正式成为ISO/IEC国际标准。SM9算法的公开参数包括(cid,N,k,P1,P2,eid),其中,cid是曲线识别符,N是循环群G1、G2和GT的阶,k是曲线E(Fq)相对于N的嵌入次数,P1、P2分别是G1、G2的生成元,eid是双线性对e的识别符。

SM9标准签名算法[15]包含密钥的产生、数字签名的生成和签名验证。

1)密钥产生。SM9标识签名算法中用户的私钥由密钥生成中心KGC通过主私钥和用户的标识结合产生。KGC产生随机数ks∈[1,N-1]作为主私钥,计算G1中的元素Ppub-s=[ks]P2作为签名主公钥,则主密钥对为(Ppub-s,ks),KGC保存ks,公开Ppub-s。

用户A的标识为IDA,为产生用户A的签名私钥dA,首先,KGC选择并公开用一个字节表示的私钥生成函数识别符hid,并在有限域FN上计算t1=H1(IDA||hid,N)+ks,再计算t2=ks·t1-1;最后,计算dA=[t2]P1,即用户A的密钥对为(IDA,dA)。

2)数字签名生成。设待签名消息为M,作为签名者的用户A对其进行数字签名的过程:首先,计算群GT中的元素g=e(P1,Ppub-s),并选取随机数r∈[1,N-1],计算群GT中的元素w=gr;然后,计算整数h=H2(M||w,N),再计算整数L=(r-h)modN;最后,计算群GT中的元素s=[L]dA,得到消息M的签名为(h,s)。

3)签名验证。作为验证者的用户B对收到的消息M和签名(h,s)验证,其签名验证过程:首先,检验h∈[1,N-1]、s∈G1是否成立,若成立则按顺序计算g=e(P1,Ppub-s)、t=gh、h1=H1(IDA||hid,N);然后,按顺序计算P=[h1]P2+

Ppub-s、u=e(s,P)、w′=u·t;最后,计算h2=H2(M||w′,N),验证h2=h是否成立,若成立则签名验证通过。

2.3 门限密码学

秘密共享是一种将秘密进行分割存储的密码技术,其主要思想是秘密持有者将秘密S分为n个子秘密并分发给持有者,其中,任意多于t个持有者可以恢复出秘密,t个或少于t个持有者则不能得到原秘密的任何信息,此方案被称为(t,n)秘密分享方案。

门限密码学是在秘密分享方案的基础上构建而来,是指采用秘密分享技术将标准的密码算法运算(数字签名或解密运算等)分布于一定数量的参与者集合中,只有有效的参与者子集进行联合,才能得到正确的数字签名或解密结果,而不合法的参与者子集则无法通过伪造参数得到正确的数字签名或解密结果。

3 电子终端安全认证方案

3.1 设计思路

本文利用门限密码学的思想,对标准的SM9算法进行改进,将SM9私钥分割成2份,一份存储在电力终端,一份存储在电力终端所在的服务端,设计适用于智能电网电力终端SM9算法的(2,2)门限签名方案。

电力终端安全认证的参与方包括电力终端、电力终端所在的服务端以及服务端密钥中心KGC,基于SM9门限签名的电力终端安全认证设计思路如图1所示。

图1 基于SM9门限签名的电力终端安全认证设计思路Figure 1 Design of power terminal security authentication based on SM9 threshold signature

3.2 电力终端设备注册

3.3 安全认证

假设智能电网下不同业务的电力终端A、B之间建立通信进行认证,电力终端B对A的认证过程如下。

1)电力终端A生成签名消息。电力终端A随机生成待签名消息M。

2)电力终端A生成签名分量。电力终端A计算群GT中的元素g=e(P1,Ppub),然后生成随机数r1∈[1,N-1],计算w1=gr1,并将w1发送给电力终端所在的服务端。

4)电力终端A合成门限签名结果。首先,电力终端A利用持有的私钥分量dt计算s′=[r1·s2+s22]·dt,然后,电力终端A得到消息M的签名(h′,s′)。

5)电力终端B对A认证。电力终端A将签名消息M和签名数据(h′,s′)发送给电力终端B,电力终端B采用文2.1中的签名验证方法对M和(h′,s′)终端进行验证,若验证通过,则电力终端B对A的认证成功。

4 方案分析

4.1 正确性证明

电力终端门限签名方案的正确性证明过程如下:

2)由L=(r-h)modN、dt=[a]P1、ds=a-1·t2modN计算可得:s′=[ds·L]·dt=[a·a-1·t2·L]·P1=[t2·L]·P1=[L]·dA,通过与文2.2中SM9标准签名比较,s′、s的计算结果一致。

4.2 安全性分析

本文利用门限密码算法的原理,把SM9算法的私钥d分割成私钥分量dt、ds,dt存储在电力终端中,ds存储在电子终端服务端KGC。由于攻击者获取服务端KGC的私钥分量ds是困难的,即便攻击者获取了电力终端的私钥分量dt,也无法获得完整的私钥,从而保障了SM9算法私钥在电力终端安全便捷的存储,保障了电力终端使用SM9算法私钥签名过程中的安全性。

随机数的生成和使用对SM9的签名算法的安全性起着关键性的作用,本方案中电力终端和服务端分别产生随机数r1、r2、r3,其中,随机数r2、r3由服务端产生,有效防止了随机数攻击。

5 实验算例

在Windows7 64位操作系统的keil、eclipse开发平台下,选用一款支持嵌入式系统的电力终端,采用c和java语言对文中的认证方案进行验证。SM9算法参数均使用SM9标识密码算法标准中推荐的值。

以某电力终端A为例,其ID的16进制为0x456C6563 74726963 5F546572 6D696E61 6C5F-416C 696365。电力终端A私钥d经门限分割成私钥分量dt、ds,dt为0x48629E98 90685A66 062684DB 46BEE3A9 F04E5502 C23F7AA9 6DC4C469 EBF-5E533,0x5A35F8F6 11764616 C22985C6 95ACD-52B 0C81C90B 4C37F2B7 FBDEC3F3 03297B6F;ds为0x054B3C69 2C5891FB 42439397 E7422EAA 1766FE15 F2FF542B 08A4C153 D8D2B03F。

待签名消息M的值为0x534D3920 54687265 73686F6C 6420416C 676F7269 74686D20 53636865 6D652066 6F722055 62697175 69746F75 7320506F 77657220 496F5420 5465726D 696E616C 20536563 75726974 79。

服务端生成的签名分量为(h′,s2,s22),其中,h′为0x9E3B983B 36AFE033 11110ED2 EC87E3-D0 682122DC 066BE9E3 FFA6D1A7 398F6F27;s2为0x01F4994C AF50EE8A 4DCAB590 F004A30F F7592F77 B52ABF85 BEC3636F 45B1C795 0C5-EA673 A1B7048E C324A740 DBCE9B36 3B9FE-73F 7C9C17DA C0883BAD C946E21F;s22为0xF-D49A73B EF4F2CA6 1F8244D4 EE824FAE 464-12403 AC29FE11 0700B073 1EFD885E 8C9FF73F 242A8AEE DC6FDFDB 0556C44C 6A776ED1 B87-F6001 95D1E15B CE50869E。

服务端将(h′,s2,s22)的值发送给电力终端A,A的软件密码模块经计算合成后得到最终的签名结果(h′,s′),其中,s′为0x20619CEF 2611F592 77D-54640 4AD49513 700ECE56 6513B1E6 79667577 5BA1CE4E 4E3D3855 5D1A18AB F229F28F F97-84FBD 24DB768D 689A19FB A903E958 F8316B67。

电力终端B利用A的ID对电力终端A的待签名消息M和签名结果(h′,s′)进行验证,得到h2为0x9E3B983B 36AFE033 11110ED2 EC87E3D0 682-122DC 066BE9E3 FFA6D1A7 398F6F27。通过比较,h2与h′一致,验证通过,即电力终端B对A的认证成功。基于SM9门限签名的电力终端认证算例验证过程如图2所示。

图2 基于SM9门限签名的电力终端认证实验算例Figure 2 Simulation of SM9 threshold signature verification for power terminals

6 结语

本文分析了智能电网环境下电力终端面临的信息安全问题,指出IBC标识密码体系比PKI体系更适用于智能电网场景下海量终端的安全认证。对于SM9算法私钥在电力终端安全便捷的存储和使用问题,本文结合门限密码学的思想提出了对SM9私钥进行分割,以此为基础构建了基于SM9门限签名的电力终端安全认证方案,方案不依赖于电力终端安全芯片的支持,可以密码软件模块的方式集成于电力终端中,解决了在安全便捷的前提下电力终端安全接入和终端的身份鉴别和认证问题。最后,通过论证和实验算例验证了方案的正确性和可行性。

猜你喜欢
私钥服务端门限
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
基于规则的HEV逻辑门限控制策略
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
随机失效门限下指数退化轨道模型的分析与应用
VoLTE感知智能优化
基于Neyman-Pearson准则的自适应门限干扰抑制算法*
一种基于虚拟私钥的OpenSSL与CSP交互方案
新时期《移动Web服务端开发》课程教学改革的研究
摸清黑客套路防范木马侵入