发明内容
本发明实施例的目的是提供一种海量智能电表终端的安全通信方法及安全通信装置,该海量智能电表终端的安全通信方法及安全通信装置具有密钥分发方便、通信成本低的功能。
为了实现上述目的,本发明实施例一方面提供一种海量智能电表终端的安全通信方法,包括:
获取加密服务器和当前时隙内加入高级基础设施网络的智能电表终端的公钥和私钥;
所述加密服务器更新所述高级基础设施网络内当前时隙的通信会话信息;
将所述通信会话信息广播给所述高级基础设施网络内的所述智能电表终端;
所述智能电表终端根据所述通信会话信息计算当前时隙内的对应的会话密钥;
发送终端根据所述会话密钥将要发送的数据加密以生成密文,同时生成消息认证码,其中,所述发送终端包括所述智能电表终端;
所述发送终端将所述消息认证码和所述密文广播给所述高级基础设施网络内的接收终端;
所述接收终端根据所述会话密钥解密所述密文并验证所述消息认证码是否一致,其中,所述接收终端包括所述智能电表终端。
可选地,获取加密服务器和当前时隙内加入高级基础设施网络的智能电表终端的公钥和私钥包括:
密钥生成中心创建一个群G;
随机生成所述加密服务器的私钥;
根据公式(1)计算所述加密服务器的公钥,
其中,QES为所述加密服务器的公钥,dES为所述加密服务器的私钥,g为所述群G的生成元。
可选地,获取加密服务器和当前时隙内加入高级基础设施网络的智能电表终端的公钥和私钥还包括:
根据所述智能电表终端的身份标识随机生成对应的私钥;
根据公式(2)计算所述智能电表终端的公钥,
其中,Qi为所述智能电表终端的公钥,di为所述智能电表终端的私钥。
可选地,所述加密服务器更新所述高级基础设施网络内当前时隙的通信会话信息包括:
所述加密服务器获取当前时隙内所述高级基础设施网络中所述智能电表终端的数量;
所述加密服务器随机生成所述数量加一个两两互素的数,并形成集合;
所述加密服务器根据公式(3)计算加密服务器公共参数,
D0=dESmodn0, (3)
其中,D0是所述加密服务器公共参数,n0为所述集合中的最小值;
所述加密服务器根据公式(4)计算求解参数,
其中,n为所述求解参数,i为整数编号,k为所述数量;
所述加密服务器根据公式(5)计算加密服务器第一参数,
N0=n/n0, (5)
其中,N0为所述加密服务器第一参数;
所述加密服务器根据公式(6)计算加密服务器第二参数,
其中,M0为所述加密服务器第二参数;
根据公式(7)计算第一会话密钥参数,
其中,s0为所述第一会话密钥参数,q∈G,且q为随机生成;
获取更新的通信会话信息{n0,n1,…,nk,q,s0}。
可选地,所述智能电表终端根据所述通信会话信息计算当前时隙内的对应的会话密钥包括:
所述智能电表终端根据更新的所述通信会话信息获取对应的密钥生成信息;
所述智能电表终端根据公式(8)计算智能电表终端公共参数,
Di=dimodni, (8)
其中,Di为所述智能电表终端公共参数;
所述智能电表终端根据公式(4)计算求解参数;
所述智能电表终端根据公式(9)计算智能电表终端第一参数,
Ni=n/ni, (9)
其中,Ni为所述智能电表终端第一参数;
所述智能电表终端根据公式(10)计算智能电表终端第二参数,
其中,Mi为所述智能电表终端第二参数;
所述智能电表终端根据公式(11)计算第二会话密钥参数,
其中,si为所述第二会话密钥参数;
所述智能电表终端根据公式(12)计算会话密钥,
Dt=H1(sosi), (12)
其中,Dt为所述会话密钥,H1(.):G→zp为哈希函数,zp为一个域,p为阶数为λ的素数。
可选地,发送终端根据所述会话密钥将要发送的数据加密以生成密文,同时生成消息认证码包括:
发送终端根据公式(13)计算数据的密文,
其中,C为所述密文,MES为广播的所述数据,
为预设的加密函数;
发送终端根据公式(14)计算消息认证码,
HMAC=H2(Mes,Dt), (14)
其中,HMAC为所述消息认证码,H2(.):{0,1}n→zp是哈希函数。
可选地,所述接收终端根据所述会话密钥解密所述密文并验证所述消息认证码是否一致包括:
接收终端根据公式(15)计算明文,
接收终端根据公式(16)计算消息认证码明码,
HMAC*=H2(Mes*,Dt), (16)
其中,HMAC*为所述消息认证码明码,H2为哈希函数。
可选地,所述接收终端根据所述会话密钥解密所述密文并验证所述消息认证码是否一致还包括:
判断所述消息认证码和所述消息认证码明码是否相等;
在判断所述消息认证码和所述消息认证码明码相等的情况下,则验证成功,所述接收终端可以获取所述数据;
在判断所述消息认证码和所述消息认证码明码不相等的情况下,则验证失败,判定所述数据被篡改。
另一方面,本发明还提供一种海量智能电表终端的安全通信装置,包括:
密钥生成中心;
加密服务器,与所述密钥生成中心连接;
多个智能电表终端,与所述密钥生成中心连接;
控制器,与所述密钥生成中心、所述加密服务器和多个所述智能电表终端连接,用于执行如上述任一所述的安全通信方法。
再一方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有指令,所述指令用于被机器读取以使得所述机器执行如上述任一所述的安全通信方法。
通过上述技术方案,本发明提供的海量智能电表终端的安全通信方法及安全通信装置通过加密服务器更新会话信息并广播给高级基础设施网络内的智能电表终端,智能电表终端根据该会话信息以及自己的公钥和私钥获得会话密钥,发送终端根据该会话密钥加密数据并广播给其他终端,同时生成消息认证码,接收终端根据该会话密钥解密数据并验证消息认证码,进而实现了高级基础设施网络内的安全可靠通信;本发明采用广播的方式,使得密钥分发更加方便,同时也有效降低了通信成本。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
图1是根据本发明的一个实施方式的海量智能电表终端的安全通信方法的流程图。在图1中,该安全通信方法可以包括:
在步骤S10中,获取加密服务器和当前时隙内加入高级基础设施网络的智能电表终端的公钥和私钥。其中,数据中心的密钥生成中心KGC分别生成加密服务器ES和智能电表终端UE的公钥和私钥,且该智能电表终端UE为当前时隙内加入高级基础设施AMI网络中的海量智能电表终端UE。加密服务器ES的公钥和私钥通过密钥生成中心KGC直接发送,而智能电表终端UE的公钥和私钥在接收密钥生成中心KGC的传输后,需要离线安装到现场,以完成初始化的工作。
在步骤S11中,加密服务器更新高级基础设施网络内当前时隙的通信会话信息。其中,加密服务器ES实时检测当前时隙内参与通信的智能电表终端UE的数量情况,并根据检测到的智能电表终端UE的数量情况,更新高级基础设施AMI网络中当前时隙的通信会话信息。
在步骤S12中,将通信会话信息广播给高级基础设施网络内的智能电表终端。其中,在加密服务器ES获得当前时隙的通信会话信息后,加密服务器ES采用广播的方式将该通信会话信息传输给参与通信的智能电表终端UE。该种广播的方式能够克服现有技术双线性配对的耗能密码操作,有效地降低了通信成本,且传输稳定可靠。
在步骤S13中,智能电表终端根据通信会话信息计算当前时隙内的对应的会话密钥。其中,在当前时隙内高级基础设施网络中的所有智能电表终端UE接收到通信会话信息后,每个智能电表终端UE根据自己的公钥和私钥计算出当前时隙内的会话密钥,该会话密钥用于后续数据的加密和解密。
在步骤S14中,发送终端根据会话密钥将要发送的数据加密以生成密文,同时生成消息认证码。其中,发送终端包括智能电表终端,需要发送数据的发送终端用该会话密钥加密所要传输的数据,以保障传输过程中数据的安全完整。同时,发送终端生成消息认证码,进一步提高该数据传输的保密性。
在步骤S15中,发送终端将消息认证码和密文广播给高级基础设施网络内的接收终端。其中,消息认证码和密文生成后,发送终端同样采用广播的方式传输给接收终端,以实现数据的安全可靠且低成本传输。
在步骤S16中,接收终端根据会话密钥解密密文并验证消息认证码是否一致。其中,接收终端包括智能电表终端,接收终端根据会话密钥解密该密文,同时验证消息认证码是否正确,以保障数据传输的准确性和一致性。
在步骤S10至S16中,密钥生成中心KGC为加密服务器ES和当前时隙内加入高级基础设施AMI网络中的智能电表终端UE生成各自的公钥和私钥。同时,加密服务器ES检测当前时隙内参与通信的智能电表终端UE的数量情况,更新通信会话信息,并以广播的方式将该通信会话信息传输给该高级基础设施AMI网络中的智能电表终端UE。每个智能电表终端UE根据自己的公钥和私钥并结合通信会话信息以获得当前时隙内的会话密钥。发送终端用该会话密钥加密需要发送的数据并生成消息认证码,同时广播给高级基础设施AMI网络中的接收终端;接收终端用该会话密钥解密需要接收到的密文并验证消息认证码,以确定该数据传输的安全性、保密性和准确性。
传统的智能终端的通信方法采用双线性配对的方式,使得海量智能电表终端数据传输时耗能大,且会产生极高的通信成本。在本发明的该实施方式中,采用加密服务器ES广播通信会话信息,发送终端广播密文和消息认证码的方式,使得密钥分发更加方便,有效地降低了通信成本;同时加密数据和生成消息认证码的操作也满足了数据的保密性和完整性。
在本发明的该实施方式中,为了获得加密服务器ES的公钥和私钥,还需要密钥生成中心KGC计算生成。具体地,该安全通信方法还可以包括如图2所示的步骤。在图2中,该安全通信方法还可以包括:
在步骤S20中,密钥生成中心创建一个群G。其中,密钥生成中心KGC在创建群G后,随机选取一个生成元g,随机选取一个阶数为λ的素数p,以利于后续公钥的获取。
在步骤S21中,随机生成加密服务器的私钥dES。
在步骤S22中,根据公式(1)计算加密服务器的公钥,
其中,QES为加密服务器的公钥,dES为加密服务器的私钥,g为群G的生成元。
在步骤S20至步骤S22中,密钥生成中心KGC创建一个群G,并在该群G中随机选取一个生成元g以及一个阶数为λ的素数p。此外,该密钥生成中心KGC再随机生成一个加密服务器ES的私钥dES,并根据该私钥dES以及生成元g获得该加密服务器ES的公钥QES,最后该密钥生成中心KGC将该私钥dES以及公钥QES直接发送给加密服务器ES,以便于该加密服务器ES更新当前时隙内高级基础设施AMI网络中的通信会话信息。
在本发明的该实施方式中,为了获得海量智能电表终端UE的公钥和私钥,还需要密钥生成中心KGC计算生成。具体地,该安全通信方法还可以包括如图3所示的步骤。在图3中,该安全通信方法还可以包括:
在步骤S30中,根据智能电表终端的身份标识随机生成对应的私钥。其中,每个智能电表终端UE都有对应的身份标识ID,密钥生成中心KGC根据每个智能电表终端UE的身份标识ID随机生成对应的私钥di。
在步骤S31中,根据公式(2)计算智能电表终端的公钥,
其中,Qi为智能电表终端的公钥,di为智能电表终端的私钥,di∈zp,zp为一个域。
在步骤S30至步骤S31中,密钥生成中心KGC根据每个智能电表终端UE的身份标识ID随机生成对应的私钥di,该私钥di再根据公式(2)计算获得对应的公钥Qi。该密钥生成中心KGC将该私钥di和公钥Qi传输给对应的智能电表终端UE中,最后海量的智能电表终端UE通过离线安装的方式安装到现场。
在本发明的该实施方式中,为了更新该高级基础设施AMI网络内当前时隙通信会话信息,还需要对该通信会话信息中的参数进行计算。具体地,该安全通信方法还可以包括如图4所示的步骤。在图4中,该安全通信方法还可以包括:
在步骤S40中,加密服务器获取当前时隙内高级基础设施网络中智能电表终端的数量。其中,加密服务器ES对当前时隙内参与通信的高级基础设施网络中的智能电表终端UE的数量k进行检测并提取,加密服务器ES根据该数量k来计算通信会话信息所需的对应的参数。
在步骤S41中,加密服务器随机生成数量加一个两两互素的数,并形成集合。其中,加密服务器ES根据数量k随机生成k+1个两两互素的数,并形成集合A={n0,n1,n2,…,nk},且n0<n1<n2<…<nk。
在步骤S42中,加密服务器根据公式(3)计算加密服务器公共参数,
D0=dESmodn0, (3)
其中,D0是加密服务器公共参数,n0为集合中的最小值。
在步骤S43中,加密服务器根据公式(4)计算求解参数,
其中,n为求解参数,i为整数编号。
在步骤S44中,加密服务器根据公式(5)计算加密服务器第一参数,
N0=n/n0, (5)
其中,N0为加密服务器第一参数。
在步骤S45中,加密服务器根据公式(6)计算加密服务器第二参数,
其中,M0为加密服务器第二参数。
在步骤S46中,根据公式(7)计算第一会话密钥参数,
其中,s0为第一会话密钥参数,q∈G,且q为随机生成。
在步骤S47中,获取更新的通信会话信息{n0,n1,…,nk,q,s0}。
在步骤S40至步骤S47中,通信会话信息的更新主要是利用一元线性同余方程组的求解来确定,例如一元线性同余方程组如公式(17)所示:
其中,x为需要求解的值,a
1,a
2,…,a
k为k个两两互素的正整数,y
1,y
2,…,y
k为任意整数。上述方程组在模a=a
1a
2…a
k的情况下,有唯一解
其中,A
i=a/a
i,
因此,通过以上原理,加密服务器ES可根据公式(3)至(7)更新并获得该通信会话信息。
在本发明的该实施方式中,为了获得当前时隙内的会话密钥,还需要根据计算出的更新的通信会话信息计算第二会话密钥参数。具体地,该安全通信方法还可以包括如图5所示的步骤。在图5中,该安全通信方法还可以包括:
在步骤S50中,智能电表终端根据更新的通信会话信息获取对应的密钥生成信息;其中,智能电表终端UE根据更新的通信会话信息以及自身的身份标识ID提取对应的密钥生成信息ni。
在步骤S51中,智能电表终端根据公式(8)计算智能电表终端公共参数,
Di=dimodni, (8)
其中,Di为智能电表终端公共参数。
在步骤S52中,智能电表终端根据公式(4)计算求解参数。
在步骤S53中,智能电表终端根据公式(9)计算智能电表终端第一参数,
Ni=n/ni, (9)
其中,Ni为智能电表终端第一参数。
在步骤S54中,智能电表终端根据公式(10)计算智能电表终端第二参数,
其中,Mi为智能电表终端第二参数。
在步骤S55中,智能电表终端根据公式(11)计算第二会话密钥参数,
其中,si为第二会话密钥参数。
在步骤S56中,智能电表终端根据公式(12)计算会话密钥,
Dt=H1(sosi), (12)
其中,Dt为会话密钥,H1(.):G→zp为哈希函数,zp为一个域,p为阶数为λ的素数。
在步骤S50至步骤S56中,采用更新通信会话信息同样的计算方式,即公式(4)以及公式(8)至(11)所示,以获得第二会话密钥si。再根据公式(12)计算出会话密钥Dt,以便于后续智能电表终端UE加密或者解密数据。
在本发明的该实施方式中,为了保障数据发送的保密性和完整性,发送终端还需要对发送的数据进行加密并生成消息认证码。具体地,该安全通信方法还可以包括如图6所示的步骤。在图6中,该安全通信方法还可以包括:
在步骤S60中,发送终端根据公式(13)计算数据的密文,
其中,C为密文,MES为广播的数据,
为预设的加密函数。
在步骤S61中,发送终端根据公式(14)计算消息认证码,
HMAC=H2(Mes,Dt), (14)
其中,HMAC为消息认证码,H2(.):{0,1}n→zp是哈希函数。
在步骤S60至步骤S61中,发送终端根据会话密钥Dt以及公式(13)对需要发送的数据进行加密并生成密文C,该密文C能够提高数据传输的保密性。同时,发送终端根据会话密钥Dt以及公式(14)计算出消息认证码HMAC,该消息认证码HMAC能够进一步提高数据传输的安全性和准确性。
在本发明的该实施方式中,接收终端为了准确数据接收到发送终端传输的数据,接收终端还需要对接收到的的密文C进行解密成明文并生成消息认证码明码。具体地,该安全通信方法还可以包括如图7所示的步骤。在图7中,该安全通信方法还可以包括:
在步骤S70中,接收终端根据公式(15)计算明文,
在步骤S71中,接收终端根据公式(16)计算消息认证码明码,
HMAC*=H2(Mes*,Dt), (16)
其中,HMAC*为消息认证码明码,H2为哈希函数。
在步骤S70至步骤S71中,接收终端根据会话密钥Dt以及公式(15)对接收到的密文C进行解密并生成明文,使得该接收终端能够读取该数据。同时,接收终端根据会话密钥Dt以及公式(16)计算出消息认证码明码HMAC*,该消息认证码明码HMAC*能够与消息认证码HMAC匹配对应,以确保该数据传输的准确性和安全性。
在本发明的该实施方式中,为了进一步明确发送终端发送的数据是否准确和安全,还需要对消息验证码HMAC和消息认证码明码HMAC*进行验证。具体地,该安全通信方法还可以包括如图8所示的步骤。在图8中,该安全通信方法还可以包括:
在步骤S80中,判断消息认证码和消息认证码明码是否相等。其中,对消息认证码HMAC和消息认证码明码HMAC*的验证,是为了确定数据传输是否准确和安全所设,能够进一步提高该数据传输的准备性和安全性。
在步骤S81中,在判断消息认证码和消息认证码明码相等的情况下,则验证成功,接收终端可以获取数据。其中,若消息认证码HMAC和消息认证码明码HMAC*相等,则说明该数据未被篡改,且数据传输准确,验证成功。
在步骤S82中,在判断消息认证码和消息认证码明码不相等的情况下,则验证失败,判定数据被篡改。其中,若消息认证码HMAC和消息认证码明码HMAC*不相等,则说明该数据被篡改,验证失败。
在步骤S80至步骤S82中,对消息认证码HMAC和消息认证码明码HMAC*进行验证,若消息认证码HMAC和消息认证码明码HMAC*相等,则说明数据完整且准确,验证成功;若消息认证码HMAC和消息认证码明码HMAC*不相等,则说明该数据被篡改,验证失败。采用消息认证码HMAC和消息认证码明码HMAC*验证的方式,能够确保数据传输的准确性和安全性,并形成完整且安全的传输模式。
另一方面,本发明还提供一种海量智能电表终端的安全通信装置。具体地,该安全通信装置可以包括密钥生成中心KGC、加密服务器ES、多个智能电表终端UE以及控制器。
加密服务器ES与密钥生成中心KGC连接,多个智能电表终端UE与密钥生成中心KGC连接,控制器与密钥生成中心KGC连接、加密服务器ES以及多个智能电表终端UE连接,用于执行上述任一的安全通信方法。
再一方面,本发明还提供一种计算机可读存储介质,该计算机可读存储介质存储有指令,指令用于被机器读取以使得机器执行如上任一的安全通信方法。
通过上述技术方案,本发明提供的海量智能电表终端的安全通信方法及安全通信装置通过加密服务器ES更新会话信息并广播给高级基础设施AMI网络内的智能电表终端UE,智能电表终端UE根据该会话信息以及自己的公钥Qi和私钥di获得会话密钥Dt,发送终端根据该会话密钥Dt加密数据并广播给其他终端,同时生成消息认证码HMAC,接收终端根据该会话密钥解Dt密数据并验证消息认证码HMAC,进而实现了高级基础设施AMI网络内的安全可靠通信;本发明采用广播的方式,使得密钥分发更加方便,同时也有效降低了通信成本。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。