一种智能电网中基于二叉树的批认证方法
技术领域
本发明属于智能电网技术领域,尤其涉及一种智能电网中基于二叉树的批认证方法。
背景技术
智能电网(smart grid)将取代传统电网,成为下一代电力供应网络,这已经是行业专家共同的认知。智能电网是一种现代化的电网,使用模拟和数字信号,传递电力使用端和供应端的信息。根据这些信息,智能电网可以自动的改进电力生产和配送的效率、可靠性、经济性和可持续性。智能电网从大量的家用电器、智能电表(smart meter,SM)、分布式设施和其他设备收集信息。与传统通信网络系统相比,智能电网有新的目标、需求和责任。
现有技术中,一种智能电网的通信架构,其中包含家庭局域网(home areanetwork,HAN)、建筑区域网络(building area network,BAN)、附近的区域网络(neighborhood area network,NAN)。在每一个NAN中都有一个控制中心(control center,CC)用于管理该NAN,CC负责从NAN网关(gateway,GW)收集数据,向用户发送实时账单和控制信息。CC还需向NAN GW,BAN GW和SMs收集和分配相应参数指令。高级量测体系(Advancedmetering infrastructure,AMI)是智能电网中的一个重要组成部分,而智能电表是AMI的重要部件。智能电表是一个资源限制性的设备,它具有低存储和计算能力。智能电表和家用设备之间包含两种通信方式,数据流和电流。
智能电表发送设备的各种信息给控制中心,其中一个重要的信息就是实时的用电需求;CC发送实时的账单给智能电表,使得客户可以实时了解他的用电情况。由于这些信息涉及到用户隐私,所以需要保密。因此设计一个认证方案,提供信息的安全传送,保证只有合法用户能够获得电表信息是十分必要的。
在智能电网中安全和隐私问题面临着许多挑战,研究者致力于发现和解决智能电网的各种安全问题。近年来,针对智能电网的不同安全需求,许多安全方案被提出。Fouda等基于Diffie-Hellman算法提出了一个轻量级的认证方案,该方案解决了HAN GW和BAN GW之间的双向认证问题。Wu等结合Needham-Schroeder认证协议和椭圆密码算法提出了一个密钥管理协议,该协议需在一个可信中心的协助下建立会话密钥。但是,Xia等发现Wu等提出的方案存在中间人攻击缺陷(man-in-the-middle attack)。
Nabeel等基于量子不可克隆的特性,设计了一个密钥管理方案实现AMI中的安全通信,该方案提供了一个以硬件为基础的强认证机制。但是该方案需依赖于一个中心服务器存储所有智能电表的密钥,使得方案的扩展性较差,而且如果该中心服务器被攻击,会影响到AMI中所有电表的安全性。
现有文献提出了一个工作于AMI中的密钥管理方案。这个方案基于密钥图标实现安全通信。但是该方案被发现存在严重缺陷,无法抵御DoS攻击,作者结合基于身份的密码系统和有效的密钥树技术提出了一个新的密钥管理方案。该方案实现了智能电表和电表数据管理系统之间的安全通信。
现有文献中,基于merkle哈希树设计了一个认证协议,该协议考虑智能电表是一个低计算能力的设备,协议中只采用哈希计算。但是协议没有考虑BAN GW的计算负担问题,BAN GW需要认证每一个智能电表发送的消息,而且智能电表需要存储较多的数据。此外,协议无法抵御重放攻击。
为了能够获得用户的实时用电情况,智能电表需要与BAN GW频繁的进行通信,BANGW每隔一个较短的时间间隔就需要重新认证该区域内所有智能电表发送的消息。而在一个BAN内部有成千上万的智能电表,因此如果采用上述协议,BAN GW的计算负担会非常繁重。
综上所述,现有技术存在的问题是:在BAN GW认证智能电表的信息时,需对每一个智能电表进行单独认证,随着BAN中智能电表数量的不断增长,BAN GW势必会成为网络的计算瓶颈。本方案能实现BAN GW对所有智能电表的批量认证,即BAN GW执行一次认证就可以认证所有智能电表信息的有效性,显著提高了BAN GW的工作效率,解决了BAN GW的计算瓶颈问题。
发明内容
针对现有技术存在的问题,本发明提供了一种智能电网中基于二叉树的批认证方法。
本发明是这样实现的,一种智能电网中基于二叉树的批认证方法,所述智能电网中基于二叉树的批认证方法,包括以下步骤:
当BAN GW收到智能电表发送的数据,需要认证数据的来源是否合法;本发明包括单用户认证和批认证两个部分;所述单用户认证中,CC首先需要初始化协议参数,当有新的智能电表加入时,先由CC对新的智能电表进行初始化、注册、认证和密钥更新;
批认证:为收集用户的实时用电情况,每t分钟,所有的SMi将用电报告发送给BANGW一次;BAN GW收到SMs的数据后,采用批认证,消耗n个乘法和2n个双线性映射验证用户发送的信息,其中n为智能电表数;如果认证通过,可确定所有消息都来源于合法的智能电表;反之BAN GW进行比较,确定假冒消息和恶意攻击。
进一步,CC对新的智能电表进行初始化的方法包括:CC先生成如下参数,G
1是一个由P产生的循环加法群,它的阶是q,G
2是阶为q的循环乘法群,双线性映射
CC随机生成
作为自己的私钥,然后计算P
pub=sP作为自己的公钥。
进一步,CC对新的智能电表进行注册的方法包括:
BAN GW预设置公共参数{G1,G2,q,P,Ppub,h,h1,H()};
每一个智能电表加入智能电网时,按照如下步骤获得智能电表的系统参数;具体包括:
1)智能电表SMi向CC发送它的IDi;
2)CC选择一个随机数
计算
和sk
i=sH(DID
i);
3)CC通过一个安全信道发送消息{G
1,G
2,q,P,P
pub,h,h
1,H()}和
给SM
i。
进一步,CC对新的智能电表进行认证的方法包括:
为收集用户的实时用电报告,SM
i向BAN GW发送消息m
i;为对该消息进行签名,SM
i首先选择一个随机数
计算A
i=r
iP和B
i=sk
i+h(M
i,A
i)r
iP
pub,其中
Enc是一个对称加密算法;
最后SMi发送消息<DIDi,Ai,Bi,Mi,Ti,Ci>给BAN GW,其中Ci=h1(Ai,Bi,Mi,Ti);
在收到消息<DIDi,Ai,Bi,Mi,Ti,Ci>后,BAN GW检测(T*-Ti)≤ΔT,其中T*是系统当前时间,ΔT表示允许的最大传输延迟时间;
检测通过后,BAN GW计算
该式通过如下方式认证:
进一步,CC对新的智能电表进行密钥更新的方法包括:
SMs和BAN GW在密钥更新阶段更新会话密钥;系统设置的更新时间间隔,作为系统参数被保存在SMs和BAN GW中;在密钥更新阶段,SMs和BAN GW分别重新计算会话密钥
用户要获得SMs中存储的数据时,输入正确的ID和
SMs根据自己存储的DID和
来认证用户输入的信息是否有效;
BAN GW在认证SMs后,通过解密
来获得消息mi,其中的Ti是时间戳。
进一步,所述基于二叉树的批认证方法包括:
步骤一,对于n=2h个智能电表{SM1,SM2,...,SMn};每个叶子节点<h,v>代表一个智能电表,SMi+1其对应的签名信息为
Ci+1=<Ai+1,Bi+1>,
其中(i=0,1,2,...,n-1);每一个内部节点<l,v>(l≤(h-1)),对应着一个签名集合
其中k
1=2
h-l·v,k
2=2
h-l·(v+1)-1;而根节点是所有节点的签名集合;
步骤二,SM1,SM2,...,SMn发送消息<DID1,A1,B1,M1,T1,C1>,<DID2,A2,B2,M2,T2,C2>,...,<DIDn,An,Bn,Mn,Tn,Cn>,给BAN GW;BAN GW首先检测
(T*-Tj)≤ΔT(j=1,2,...,n),
其中T*是BAN GW的当前时间,Tj是SMj的当前时间,T1,T2,...,Tn之间需要相互同步;
步骤三,BAN GW通过
对收到的所有消息进行批认证,批认证过程如下:
如果这些消息都来源于叶子节点的智能电表SM1,SM2,...,SMn,批认证变为
如果认证通过,就表示所有消息都来源于合法的智能电表;反之BAN GW还需要通过计算
并与收到的Ci(i=1,2,...,n)进行比较,确定假冒消息和恶意攻击。
进一步,所述BAN GW用n个乘法和2n个双线性映射运算来一次性认证SM1,SM2,...,SMn的所有消息。
进一步,BAN GW批认证的计算开销包括乘法和双线性映射法计算法;具体包括:
设Tmul表示系统在椭圆曲线上执行乘法操作所需的时间,Tpar表示双线性对计算时间,B(h,t)和C(h,t)表示单一认证和批认证所需的计算时间,其中h是树的高度,t是伪造签名的叶子节点数;
设一个智能电网的BAN中包含n=2h个智能电表SM1,SM2,...,SMn,BAN GW一次要收到和认证n个消息;这n个SM组成一个高度为h的二叉树;
如果所有SMs都是诚实的,发送的消息都是合法的,没有被恶意篡改,则B(h,0)=nTmul+2Tpar,这时协议的计算开销最小;
如果SMs发送的消息中包含k个假冒消息,那么BAN GW需要通过二叉树查找算法找出相应的假冒消息;BAN GW通过认证节点<1,0>和<1,1>来确认所有消息的合法性,其中<1,0>包含叶子节点<3,0>,<3,1>,<3,2>和<3,3>;<1,1>包含叶子节点<3,4>,<3,5>,<3,6>,<3,7>;
如果BAN GW成功认证内部节点<1,0>,则BAN GW确定收到的消息确实来源于合法的叶子节点<3,0>,<3,1>,<3,2>和<3,3>;反之,BAN GW需要继续认证<2,0>和<2,1>;
由此可得,BAN GW批认证的计算开销是:
而采用单一用户认证方式认证所有用户的计算开销是:
C(h,k)=2nTmul+2(n+1)Tpar。
本发明的另一目的在于提供一种智能电网中基于二叉树的批认证系统。
本发明的优点及积极效果为:
安全和高效的认证协议是确保智能电网安全的关键。本发明基于二叉树提出了一个批处理认证协议,该协议可被用于智能电网的AMI中。可以实现BAN GW和智能电表间的安全认证和密钥协商功能。通过安全和效率分析,说明当智能电网采用本发明设计的协议时,能够保证BAN GW和智能电表之间传输信息的保密性和完整性,且能抵御重放、假冒、中间人攻击。在该协议中,BAN GW可以同时认证所有智能电表的信息,降低了BAN GW的计算消耗。与基于RSA算法的安全方案相比(在NISTIR 7628标准中,RSA算法被建议应用于安全智能电网),当智能电网中有500个智能电表时,RSA方案的计算消耗是本发表方案的25倍,尤其当BAN中包含大量智能电表时,本协议可以显著提高认证效率。
附图说明
图1是本发明实施例提供的智能电网中基于二叉树的批认证方法流程图。
图2是本发明实施例提供的二叉认证树示意图。
图3是本发明实施例提供的现有技术与本发明的方法比较结果图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施仅仅用以解释本发明,并不用于限定本发明。
下面结合附图及具体实施例对本发明的应用原理作进一步描述。
如图1所示,本发明实施提供的智能电网中基于二叉树的批认证方法,包括以下步骤:
S101:当BAN GW收到智能电表发送的数据,需要认证数据的来源是否合法;首先进行单用户认证协议,然后在单用户认证协议的基础上进行批认证;所述单用户认证中,CC首先需要初始化协议参数,当有新的智能电表加入时,先由CC对新的智能电表进行初始化、注册、认证和密钥更新;
S102:批认证:为收集用户的实时用电情况,每t分钟,所有的SMi将用电报告发送给BAN GW一次;每个t分钟时间间隔,BAN GW用n个乘法和2n个双线性映射法来验证用户发送的信息,其中n为智能电表数;并通过基于二叉树进行批认证;如果认证通过,所有消息都来源于合法的智能电表;反之BAN GW进行比较,确定假冒消息和恶意攻击。
下面结合具体实施例对本发明的应用原理作进一步描述。
1、本发明实施提供的智能电网中基于二叉树的批认证方法中,给出智能电网中AMI的通信架构,并给出基于身份的密码系统和双线性对(bilinearpairings)的相关理论。
1.1 AMI通信架构:
AMI是智能电网中的一个关键部分,本发明实施提供的一种智能电网中AMI的通信架构。它由下面几个部分组成,一个BAN GW,许多智能电表和家用电器。BAN GW负责收集、分析和存储数据,如用电实时账单,需要从NAN GW发送给智能电表。AMI中的安全协议既要考虑智能电表的低计算、存储特性,同时BAN GW需要管理数以千计的智能电表,如何提高协议的执行效率,也是协议设计时需面临的挑战。本发明将关注HAN中BAN GW和智能电表之间安全双向通信。
1.2基于身份的密码系统和双线性对:
基于身份的密码系统可以简化认证管理,用户唯一的身份信息就是他的公钥。与基于RSA加密算法的协议相比,双线性对方案提供了低传输消耗。
因此本发明基于身份的密码系统和双线性对理论提出了一个新的批处理认证协议,用于BAN GW和智能电表之间的安全通信。
本发明首先简述双线性对的定义和性质。
假设G
1是一个由P产生的循环加法群,它的阶是q,G
2是阶为q的循环乘法群,则bilinearpairing是映射
假定离散对数问题(DLP)在两个群上都是困难的,则bilinearpairing有以下性质。
对于群G1,计算上Diffie-Hellman问题(CDH)是困难的,但是决定性的Diffie-Hellman问题(DDH)是容易的。
CDH问题:给定
P,aP,bP∈G
1,计算abP是困难的,过多项式时间算法。
DDH问题:给定P,aP,bP,abP∈G
1,对于
能够判定c=ab(mod q)是否成立。
2、批处理认证协议:
当BAN GW收到智能电表发送的数据,首先需要认证数据的来源是否合法。
本发明将首先介绍一个单用户认证协议,然后在单用户认证协议的基础上给出批处理认证协议工作的过程。
2.1单一用户认证协议
CC首先需要初始化协议参数,当有新的智能电表加入时,先由CC对其进行注册。本发明给出的协议包含四个阶段:初始化(Setup)、注册(Registration)、认证(Authentication)和密钥更新(Key refreshment)阶段。本发明中所使用的相关符号如表1所示。
表1.文中使用的符号
初始化Setup阶段:CC先生成如下参数,G
1是一个由P产生的循环加法群,它的阶是q,G
2是阶为q的循环乘法群,bilinearpairing是映射
CC随机生成
作为自己的私钥,然后计算P
pub=sP作为自己的公钥。
注册Registration阶段:BAN GW和智能电表需先注册才能加入到智能电网。BANGW需要预设置公共参数{G1,G2,q,P,Ppub,h,h1,H()}。每一个智能电表加入智能电网时,需按照如下步骤获得它的系统参数。
1)智能电表SMi向CC发送它的IDi。
2)CC选择一个随机数
计算
和sk
i=sH(DID
i)。
3)CC通过一个安全信道发送消息{G
1,G
2,q,P,P
pub,h,h
1,H()}和
给SM
i。
注册阶段必须是在智能电表加入到智能电网前由管理员完成。
认证Authentication阶段:为了收集用户的实时用电报告,SM
i需要向BAN GW发送消息m
i。为了对该消息进行签名,SM
i首先选择一个随机数
计算Ai=riP和Bi=ski+h(Mi,Ai)riPpub,
Enc是一个对称加密算法,如AES或DES。最后SMi发送消息<DIDi,Ai,Bi,Mi,Ti,Ci>给BAN GW,其中
Ci=h1(Ai,Bi,Mi,Ti)。
在收到消息<DIDi,Ai,Bi,Mi,Ti,Ci>后,BAN GW检测
(T*-Ti)≤ΔT,
其中T*是系统当前时间,ΔT表示允许的最大传输延迟时间。检测通过后,BAN GW计算
该式可通过如下方式认证。
显然,上述验证过程的计算消耗主要由一个乘法和两个双线性映射组成,而且相较于乘法,双线性映射的计算量要高得多。
2.2批认证协议:
为了收集用户的实时用电情况,每t分钟,如t=15分,所有的SMi就需要将用电报告发送给BAN GW一次。此外,SMi还需发送其它信息给BAN GW,如紧急信息,而本发明仅考虑发送的是实时用电信息。
每个时间间隔,BAN GW需要用n个乘法和2n个双线性映射运算来验证用户发送的信息,其中n为智能电表数。为了减少BAN GW的运算量,本发明介绍一个基于二叉树的批认证协议。
假设有n=2h个智能电表{SM1,SM2,...,SMn},其对应的二叉树如图2所示。
每个叶子节点<h,v>代表一个智能电表,SMi+1其对应的签名信息为
Ci+1=<Ai+1,Bi+1>,
其中(i=0,1,2,...,n-1)。每一个内部节点<l,v>(l≤(h-1)),对应着一个签名集合
其中k
1=2
h-l·v,k
2=2
h-l·(v+1)-1。而根节点是所有节点的签名集合。
例如SM1,SM2,...,SMn发送消息<DID1,A1,B1,M1,T1,C1>,<DID2,A2,B2,M2,T2,C2>,...,<DIDn,An,Bn,Mn,Tn,Cn>给BAN GW。BAN GW首先检测
(T*-Tj)≤ΔT(j=1,2,...,n),
其中T*是BAN GW的当前时间,Tj是SMj的当前时间,T1,T2,...,Tn之间需要相互同步。
BAN GW可以通过
对收到的所有消息进行批认证,该批认证过程如下:
如果这些消息都来源于叶子节点,即智能电表SM1,SM2,...,SMn,上式可变为
BAN GW仅仅需要计算n个乘法和2个双线性映射,就可以一次性认证SM1,SM2,...,SMn的所有消息,显著降低了BAN GW的计算开销。如果认证通过,就表示所有消息都来源于合法的智能电表;
反之BAN GW还需要通过计算
并与收到的Ci(i=1,2,...,n)进行比较,确定假冒消息和恶意攻击。由于所有的智能电表都是叶子节点,所以当有SMs退出,或新的SMs加入时,都不会对BAN GW造成任何影响。
为了保护会话密钥的安全性,协议提出了一个密钥更新机制,SMs和BAN GW可以在密钥更新阶段更新会话密钥。系统设置的更新时间间隔,作为系统参数被保存在SMs和BANGW中。在密钥更新阶段,SMs和BAN GW分别重新计算会话密钥
此外,用户想要获得SMs中存储的数据时,必须输入正确的ID和
SMs根据自己存储的DID和
来认证用户输入的信息是否有效。
BAN GW在认证SMs后,通过解密
来获得消息mi,其中的Ti是时间戳,用来防止重放攻击。
3、协议的安全性和效率分析:
本发明将对协议的安全性和执行效率进行分析,并将本发明的协议与基于RSA的认证协议进行比较分析。
3.1协议安全性分析:
根据攻击模型,分析本发明设计协议的安全性。
1)重放攻击(Replay attack):由于在本协议中,所传送的消息<DIDi,Ai,Bi,Mi,Ti,Ci>中加了时间戳Ti,其中
BAN GW在收到消息后,需先验证时间戳的有效性,所以本协议不存在
重放攻击。
2)假冒攻击(Impersonation attack):如果攻击者想要伪装成合法智能电表发消息给BAN GW,他必须伪造通信消息<DIDi,Ai,Bi,Mi,Ti,Ci>,其中
Ai=riP,
Bi=ski+h(Mi,Ai)riPpub,
Ci=h1(Ai,Bi,Mi,Ti),
攻击者需要知道P,sk
i,P
pub,才能伪造上述消息,但是由于攻击者无法获得ID和
所以他也就无法获知P,sk
i,P
pub。因此,协议不存在假冒攻击。
3)完整性保证(Integrity assurance):在协议中BAN GW通过
验证智能电表,每个消息都包含一个消息摘要Ci=h1(Ai,Bi,Mi,Ti),用于验证消息的完整性。因此,如果消息被修改,BAN GW会发现。
4)中间人攻击:攻击者可以通过监听,获得SMs和BAN GW之间传递的消息。但是消息
是以加密的形式传递的,攻击者即使监听到消息Mi,他无法解密,也就无法获知有效的传输信息。
通过以上非形式化的分析,可得本发明设计的协议能够抵御各种常见的攻击,适用于智能电网的工作环境。
2.2效率分析:
协议中的计算开销主要包含乘法,双线性计算和哈希计算。由于哈希计算与乘法和双线性计算相比,计算量很低,因此本发明不考虑哈希计算的开销。设Tmul表示系统在椭圆曲线上执行乘法操作所需的时间,Tpar表示双线性对计算时间,B(h,t)和C(h,t)表示单一认证和批认证所需的计算时间,其中h是树的高度,t是伪造签名的叶子节点数。
设一个智能电网的BAN中包含n=2h个智能电表SM1,SM2,...,SMn,BAN GW一次要收到和认证n个消息。这n个SM可以组成一个高度为h的二叉树。
引理1:如果所有SMs都是诚实的,发送的消息都是合法的,没有被恶意篡改,则B(h,0)=nTmul+2Tpar,这时协议的计算开销最小。
引理2:如果SMs发送的消息中包含k个假冒消息,那么BAN GW需要通过二叉树查找算法找出相应的假冒消息。BAN GW通过认证节点<1,0>和<1,1>来确认所有消息的合法性,其中<1,0>包含叶子节点<3,0>,<3,1>,<3,2>和<3,3>;<1,1>包含叶子节点<3,4>,<3,5>,<3,6>,<3,7>。
如果BAN GW成功认证内部节点<1,0>,则BAN GW可以确定收到的消息确实来源于合法的叶子节点<3,0>,<3,1>,<3,2>和<3,3>;反之,BAN GW需要继续认证<2,0>和<2,1>,二叉树的结构如图2所示。
由此可得,BAN GW批认证的计算开销是:
而采用单一用户认证方式认证所有用户的计算开销是:C(h,k)=2nTmul+2(n+1)Tpar。
由于使用批处理认证协议来查找恶意消息所需的计算开销非常高,所以BAN GW可以使用单一用户认证协议,即Ci=h1(Ai,Bi,Mi,Ti),来查找恶意伪造消息。
最近,现有技术RSA算法被建议用在安全智能电网,。因此,下面将本发明设计的协议与基于RSA算法的协议进行比较,说明本发明设计的协议在计算开销方面的优势。在基于RSA算法的协议中,BAN GW需要通过RSA签名方案认证每一个SM的签名。
因此,在比较计算开销方面,本发明分析协议中的RSA算法、双线性对操作和乘法运算。在Intel(R)Core(TM)i5-4300M 2.6-GHz的执行环境下,加密操作对应的计算开销如表2所示。
表2加密操作对应的计算开销
算法名称 |
执行时间 |
Pairing |
2.275ms |
Point Multiplication |
0.004ms |
RSA signature verification |
0.284ms |
设每隔15分,BAN GW需接收一次BAN中所有智能电表的信息,假设BAN中有n个SM。在基于RSA算法的协议中,BAN GW需执行n个RSA签名认证,来认证SMs的消息;
在本发明所提出的协议中,BAN GW需要执行nTmuland 2Tpar,来认证SMs的消息。两个协议的比较结果如图3所示,当智能电表的数据增加时,现有技术基于RSA算法协议的计算开销会成倍增加。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。