发明内容
针对现有技术存在的问题,本发明提供了一种智能电网中基于二叉树的批认证方法。
本发明是这样实现的,一种智能电网中基于二叉树的批认证方法,所述智能电网中基于二叉树的批认证方法,包括以下步骤:
当BAN GW收到智能电表发送的数据,需要认证数据的来源是否合法;本发明包括单用户认证和批认证两个部分;所述单用户认证中,CC首先需要初始化协议参数,当有新的智能电表加入时,先由CC对新的智能电表进行初始化、注册、认证和密钥更新;
批认证:为收集用户的实时用电情况,每t分钟,所有的SMi将用电报告发送给BANGW一次;BAN GW收到SMs的数据后,采用批认证,消耗n个乘法和2n个双线性映射验证用户发送的信息,其中n为智能电表数;如果认证通过,可确定所有消息都来源于合法的智能电表;反之BAN GW进行比较,确定假冒消息和恶意攻击。
进一步,CC对新的智能电表进行初始化的方法包括:CC先生成如下参数,G1是一个由P产生的循环加法群,它的阶是q,G2是阶为q的循环乘法群,双线性映射
CC随机生成作为自己的私钥,然后计算Ppub=sP作为自己的公钥。
进一步,CC对新的智能电表进行注册的方法包括:
BAN GW预设置公共参数{G1,G2,q,P,Ppub,h,h1,H()};
每一个智能电表加入智能电网时,按照如下步骤获得智能电表的系统参数;具体包括:
1)智能电表SMi向CC发送它的IDi;
2)CC选择一个随机数计算和ski=sH(DIDi);
3)CC通过一个安全信道发送消息{G1,G2,q,P,Ppub,h,h1,H()}和给SMi。
进一步,CC对新的智能电表进行认证的方法包括:
为收集用户的实时用电报告,SMi向BAN GW发送消息mi;为对该消息进行签名,SMi首先选择一个随机数计算Ai=riP和Bi=ski+h(Mi,Ai)riPpub,其中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)),对应着一个签名集合其中k1=2h-l·v,k2=2h-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>;
所述最少的计算开销是k=1,则
所述最多的计算开销是k=n,则
由此可得,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所示,本发明实施提供的智能电网中基于二叉树的批认证方法,包括以下步骤:
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和智能电表之间的安全通信。
本发明首先简述双线性对的定义和性质。
假设G1是一个由P产生的循环加法群,它的阶是q,G2是阶为q的循环乘法群,则bilinearpairing是映射假定离散对数问题(DLP)在两个群上都是困难的,则bilinearpairing有以下性质。
1)双线性:对有特别的
2)非退化性:使得
3)可计算性:对于存在一个高效的算法计算
对于群G1,计算上Diffie-Hellman问题(CDH)是困难的,但是决定性的Diffie-Hellman问题(DDH)是容易的。
CDH问题:给定P,aP,bP∈G1,计算abP是困难的,过多项式时间算法。
DDH问题:给定P,aP,bP,abP∈G1,对于能够判定c=ab(mod q)是否成立。
2、批处理认证协议:
当BAN GW收到智能电表发送的数据,首先需要认证数据的来源是否合法。
本发明将首先介绍一个单用户认证协议,然后在单用户认证协议的基础上给出批处理认证协议工作的过程。
2.1单一用户认证协议
CC首先需要初始化协议参数,当有新的智能电表加入时,先由CC对其进行注册。本发明给出的协议包含四个阶段:初始化(Setup)、注册(Registration)、认证(Authentication)和密钥更新(Key refreshment)阶段。本发明中所使用的相关符号如表1所示。
表1.文中使用的符号
初始化Setup阶段:CC先生成如下参数,G1是一个由P产生的循环加法群,它的阶是q,G2是阶为q的循环乘法群,bilinearpairing是映射CC随机生成作为自己的私钥,然后计算Ppub=sP作为自己的公钥。
注册Registration阶段:BAN GW和智能电表需先注册才能加入到智能电网。BANGW需要预设置公共参数{G1,G2,q,P,Ppub,h,h1,H()}。每一个智能电表加入智能电网时,需按照如下步骤获得它的系统参数。
1)智能电表SMi向CC发送它的IDi。
2)CC选择一个随机数计算和ski=sH(DIDi)。
3)CC通过一个安全信道发送消息{G1,G2,q,P,Ppub,h,h1,H()}和给SMi。
注册阶段必须是在智能电表加入到智能电网前由管理员完成。
认证Authentication阶段:为了收集用户的实时用电报告,SMi需要向BAN GW发送消息mi。为了对该消息进行签名,SMi首先选择一个随机数
计算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)),对应着一个签名集合其中k1=2h-l·v,k2=2h-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,ski,Ppub,才能伪造上述消息,但是由于攻击者无法获得ID和所以他也就无法获知P,ski,Ppub。因此,协议不存在假冒攻击。
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所示。
1)最少的计算开销是k=1,则
2)最多的计算开销是k=n,则
由此可得,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算法协议的计算开销会成倍增加。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。