一种智能电表的认证方法、装置、介质及设备转让专利

申请号 : CN201811399633.9

文献号 : CN109510830B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄建理明哲许爱东陈华军

申请人 : 南方电网科学研究院有限责任公司中国南方电网有限责任公司电网技术研究中心

摘要 :

本申请公开了一种智能电表的认证方法、装置、介质及设备,该方法包括:当接收到目标智能电表发送的用电请求时,则向目标智能电表发送目标证书;当接收到目标证书时,则利用目标证书对自身的用电数据进行签名,得到签名数据,利用离散对数基更新签名数据,得到更新签名,并将更新签名发送至集中器;当接收到更新签名时,则检测离散对数基是否相同;若否,则对更新签名进行校验,若校验成功,则目标智能电表为合法的智能电表;若是,则向目标智能电表发送数据请求;当目标智能电表接收到数据请求时,则向集中器证明没有发送过离散对数基;若证明失败,则目标智能电表为发送多次用电数据的智能电表。可见,通过该方法,可以大大提高用户体验。

权利要求 :

1.一种智能电表的认证方法,其特征在于,应用于集中器,包括:

当接收到目标智能电表发送的用电请求时,则向所述目标智能电表发送目标证书;其中,当所述目标智能电表接收到所述目标证书时,则利用所述目标证书对所述目标智能电表自身的用电数据进行签名,得到签名数据,利用离散对数基更新所述签名数据,得到更新签名,并将所述更新签名发送至所述集中器;

当接收到所述更新签名时,则检测所述更新签名中的所述离散对数基是否相同;

若否,则利用零知识证明对所述更新签名进行校验,若校验成功,则判定所述目标智能电表为合法的智能电表;

若是,则向所述目标智能电表发送数据请求;其中,所述数据请求为要求所述目标智能电表证明没有向所述集中器发送所述离散对数基的请求;当所述目标智能电表接收到所述数据请求时,则利用所述零知识证明向所述集中器证明没有发送过所述离散对数基;若证明失败,则判定所述目标智能电表为发送多次所述用电数据的智能电表。

2.根据权利要求1所述的方法,其特征在于,所述当接收到目标智能电表发送的用电请求时,则向所述目标智能电表发送目标证书的过程之前,还包括:初始化用户列表UL,以记录所述目标智能电表的所述目标证书。

3.根据权利要求1所述的方法,其特征在于,所述当接收到目标智能电表发送的用电请求时,则向所述目标智能电表发送目标证书的过程之前,还包括:对所述集中器自身的参数进行初始化,得到初始化参数;其中,所述初始化参数包括Hash函数H2:{0,1}*→Gs、离散对数的基底hi以及所述集中器管理区域中每一个智能电表的公私钥对 Gs为素数循环群,order(Gs)>N、N=pq、p=2p'+1、q=2q'+1、p,p',q,q'均为素数、hi∈QRN、0≤i≤3、0

4.根据权利要求3所述的方法,其特征在于,所述当接收到目标智能电表发送的用电请求时,则向所述目标智能电表发送目标证书的过程,包括:当接收到所述目标智能电表发送的所述用电请求时,则获取所述目标智能电表的公钥和参数 其中,所述参数 为所述目标智能电表随机选择的参数;

当获取到所述公钥 和所述参数 时,则利用所述零知识证明验证所述目标智能电表是否具有与所述公钥 对应的私钥x以及与所述参数 对应的参数v',以确定所述目标智能电表是否为所述集中器管理区域的智能电表;

若验证成功,则向所述目标智能电表发送所述目标证书。

5.根据权利要求4所述的方法,其特征在于,所述当目标智能电表接收到所述目标证书时,则利用所述目标证书对所述目标智能电表自身的用电数据进行签名,得到签名数据,利用离散对数基更新所述签名数据,得到更新签名,并将所述更新签名发送至所述集中器的过程,包括:当所述目标智能电表接收到所述目标证书时,则利用所述目标证书对所述目标智能电表自身的用电数据进行签名,得到所述签名数据,利用离散对数基T2=H2(T)x更新所述签名数据,得到更新签名σ,并将所述更新签名σ发送至所述集中器;其中,T为所述目标智能电表向所述集中器发送所述用电数据的时间戳。

6.根据权利要求5所述的方法,其特征在于,所述当所述目标智能电表接收到所述数据请求时,则利用零知识证明向所述集中器证明没有发送过所述离散对数基的过程,包括:当所述目标智能电表接收到所述数据请求时,则产生离散对数基H2(T'),并计算得到其中,时间戳T'为所述目标智能电表从未使用过的时间戳;

基于所述零知识证明理论,向所述集中器发送与所述 相对应的挑战、响应及签名,以向所述集中器证明没有发送过所述离散对数基T2=H2(T)x。

7.一种智能电表的认证方法,其特征在于,应用于目标智能电表,包括:

向集中器发送用电请求;其中,当所述集中器接收到所述用电请求时,则向所述目标智能电表发送目标证书;

当接收到所述目标证书时,则利用所述目标证书对自身的用电数据进行签名,得到签名数据,利用离散对数基更新所述签名数据,得到更新签名,并将所述更新签名发送至所述集中器;其中,当所述集中器接收到所述更新签名时,则检测所述更新签名中的所述离散对数基是否相同;若否,则利用零知识证明对所述更新签名进行校验,若校验成功,则判定所述目标智能电表为合法的智能电表;若是,则向所述目标智能电表发送数据请求;所述数据请求为要求所述目标智能电表证明没有向所述集中器发送所述离散对数基的请求;

当接收到所述数据请求时,则利用所述零知识证明向所述集中器证明没有发送过所述离散对数基;其中,若所述目标智能电表证明失败,则所述集中器判定所述目标智能电表为发送多次所述用电数据的智能电表。

8.一种智能电表的认证装置,其特征在于,应用于集中器,包括:

证书发送模块,用于当接收到目标智能电表发送的用电请求时,则向所述目标智能电表发送目标证书;其中,当所述目标智能电表接收到所述目标证书时,则利用所述目标证书对所述目标智能电表自身的用电数据进行签名,得到签名数据,利用离散对数基更新所述签名数据,得到更新签名,并将所述更新签名发送至所述集中器;

数据检测模块,用于当接收到所述更新签名时,则检测所述更新签名中的所述离散对数基是否相同;

数据校验模块,用于若否,则利用零知识证明对所述更新签名进行校验,若校验成功,则判定所述目标智能电表为合法的智能电表;

数据发送模块,用于若是,则向所述目标智能电表发送数据请求;其中,所述数据请求为要求所述目标智能电表证明没有向所述集中器发送所述离散对数基的请求;当所述目标智能电表接收到所述数据请求时,则利用所述零知识证明向所述集中器证明没有发送过所述离散对数基;若证明失败,则判定所述目标智能电表为发送多次所述用电数据的智能电表。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的智能电表的认证方法的步骤。

10.一种智能电表的认证设备,其特征在于,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的一种智能电表的认证方法的步骤。

说明书 :

一种智能电表的认证方法、装置、介质及设备

技术领域

[0001] 本发明涉及智能电网技术领域,特别涉及一种智能电表的认证方法、装置、介质及设备。

背景技术

[0002] 随着社会经济的不断发展,智能电表因其具有不需要人工进行抄表、功耗低等优点,而得到了广泛的应用。智能电表的数据通信模型是一个分层结构,主要包括控制中心、集中器和智能电表三个实体。其中,集中器和智能电表是存在于电力公司机房内的服务器,与外界进行了物理隔离,只有相关人员经过授权才能够接触到它们。虽然集中器和智能电表都能够按照正确的协议进行运算,但是,集中器和智能电表都是半诚实模型,有可能会将用户的用电数据存储起来,在此种情况下,集中器便能够获取到用户的用电数据,从而泄露用户的隐私信息。另外,由于智能电表的寿命都比较长,一般为十几年左右,当智能电表发生故障时,很容易导致智能电表在某个时间段连续向集中器发送用户的用电数据,极大的影响了用户体验。所以,如何采用一种更好的智能电表的认证方法,不仅能够对用户的用电数据进行匿名隐藏,而且能够查找出智能电表中故障的智能电表,以提高用户体验,是本领域技术人员亟待解决的问题。

发明内容

[0003] 有鉴于此,本发明的目的在于提供一种智能电表的认证方法、装置、介质及设备,以提高用户体验。其具体方案如下:
[0004] 一种智能电表的认证方法,应用于集中器,包括:
[0005] 当接收到目标智能电表发送的用电请求时,则向所述目标智能电表发送目标证书;其中,当所述目标智能电表接收到所述目标证书时,则利用所述目标证书对所述目标智能电表自身的用电数据进行签名,得到签名数据,利用离散对数基更新所述签名数据,得到更新签名,并将所述更新签名发送至所述集中器;
[0006] 当接收到所述更新签名时,则检测所述更新签名中的所述离散对数基是否相同;
[0007] 若否,则利用零知识证明对所述更新签名进行校验,若校验成功,则判定所述目标智能电表为合法的智能电表;
[0008] 若是,则向所述目标智能电表发送数据请求;其中,所述数据请求为要求所述目标智能电表证明没有向所述集中器发送所述离散对数基的请求;当所述目标智能电表接收到所述数据请求时,则利用所述零知识证明向所述集中器证明没有发送过所述离散对数基;若证明失败,则判定所述目标智能电表为发送多次所述用电数据的智能电表。
[0009] 优选的,所述当接收到目标智能电表发送的用电请求时,则向所述目标智能电表发送目标证书的过程之前,还包括:
[0010] 初始化用户列表UL,以记录所述目标智能电表的所述目标证书。
[0011] 优选的,所述当接收到目标智能电表发送的用电请求时,则向所述目标智能电表发送目标证书的过程之前,还包括:
[0012] 对所述集中器自身的参数进行初始化,得到初始化参数;其中,所述初始化参数包括Hash函数H2:{0,1}*→Gs、离散对数的基底hi以及所述集中器管理区域中每一个智能电表的公私钥对 Gs为素数循环群,order(Gs)>N、N=pq、p=2p'+1、q=2q'+1、p,p',q,q'均为素数、hi∈QRN、0≤i≤3、0
[0013] 优选的,所述当接收到目标智能电表发送的用电请求时,则向所述目标智能电表发送目标证书的过程,包括:
[0014] 当接收到所述目标智能电表发送的所述用电请求时,则获取所述目标智能电表的公钥 和参数 其中,所述参数 为所述目标智能电表随机选择的参数;
[0015] 当获取到所述公钥 和所述参数 时,则利用所述零知识证明验证所述目标智能电表是否具有与所述公钥 对应的私钥x以及与所述参数 对应的参数v',以确定所述目标智能电表是否为所述集中器管理区域的智能电表;
[0016] 若验证成功,则向所述目标智能电表发送所述目标证书。
[0017] 优选的,所述当目标智能电表接收到所述目标证书时,则利用所述目标证书对所述目标智能电表自身的用电数据进行签名,得到签名数据,利用离散对数基更新所述签名数据,得到更新签名,并将所述更新签名发送至所述集中器的过程,包括:
[0018] 当所述目标智能电表接收到所述目标证书时,则利用所述目标证书对所述目标智能电表自身的用电数据进行签名,得到所述签名数据,利用离散对数基T2=H2(T)x更新所述签名数据,得到更新签名σ,并将所述更新签名σ发送至所述集中器;其中,T为所述目标智能电表向所述集中器发送所述用电数据的时间戳。
[0019] 优选的,所述当所述目标智能电表接收到所述数据请求时,则利用零知识证明向所述集中器证明没有发送过所述离散对数基的过程,包括:
[0020] 当所述目标智能电表接收到所述数据请求时,则产生离散对数基H2(T'),并计算得到 其中,时间戳T'为所述目标智能电表从未使用过的时间戳;
[0021] 基于所述零知识证明理论,向所述集中器发送与所述 相对应的挑战、响应及签名,以向所述集中器证明没有发送过所述离散对数基T2=H2(T)x。
[0022] 相应的,本发明还公开了一种智能电表的认证方法,应用于目标智能电表,包括:
[0023] 向集中器发送用电请求;其中,当所述集中器接收到所述用电请求时,则向所述目标智能电表发送目标证书;
[0024] 当接收到所述目标证书时,则利用所述目标证书对自身的用电数据进行签名,得到签名数据,利用离散对数基更新所述签名数据,得到更新签名,并将所述更新签名发送至所述集中器;其中,当所述集中器接收到所述更新签名时,则检测所述更新签名中的所述离散对数基是否相同;若否,则利用零知识证明对所述更新签名进行校验,若校验成功,则判定所述目标智能电表为合法的智能电表;若是,则向所述目标智能电表发送数据请求;所述数据请求为要求所述目标智能电表证明没有向所述集中器发送所述离散对数基的请求;
[0025] 当接收到所述数据请求时,则利用所述零知识证明向所述集中器证明没有发送过所述离散对数基;其中,若所述目标智能电表证明失败,则所述集中器判定所述目标智能电表为发送多次所述用电数据的智能电表。
[0026] 相应的,本发明还公开了一种智能电表的认证装置,应用于集中器,包括:
[0027] 证书发送模块,用于当接收到目标智能电表发送的用电请求时,则向所述目标智能电表发送目标证书;其中,当所述目标智能电表接收到所述目标证书时,则利用所述目标证书对所述目标智能电表自身的用电数据进行签名,得到签名数据,利用离散对数基更新所述签名数据,得到更新签名,并将所述更新签名发送至所述集中器;
[0028] 数据检测模块,用于当接收到所述更新签名时,则检测所述更新签名中的所述离散对数基是否相同;
[0029] 数据校验模块,用于若否,则利用零知识证明对所述更新签名进行校验,若校验成功,则判定所述目标智能电表为合法的智能电表;
[0030] 数据发送模块,用于若是,则向所述目标智能电表发送数据请求;其中,所述数据请求为要求所述目标智能电表证明没有向所述集中器发送所述离散对数基的请求;当所述目标智能电表接收到所述数据请求时,则利用所述零知识证明向所述集中器证明没有发送过所述离散对数基;若证明失败,则判定所述目标智能电表为发送多次所述用电数据的智能电表。
[0031] 相应的,本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述公开的智能电表的认证方法的步骤。
[0032] 相应的,本发明还公开了一种智能电表的认证设备,包括:
[0033] 存储器,用于存储计算机程序;
[0034] 处理器,用于执行所述计算机程序时实现如前述公开的一种智能电表的认证方法的步骤
[0035] 可见,在本发明中,目标智能电表通过目标证书和离散对数基的方法可以对自身的用电数据进行匿名隐藏;其次,集中器通过检测更新签名中的离散对数基是否相同,来判断目标智能电表是否为故障的智能电表,若集中器检测到目标智能电表中的离散对数基不相同,则利用零知识证明对更新签名进行校验,若校验成功,则判定目标智能电表为合法的智能电表。显然,由于零知识证明的完备性、健壮性和零知识性,可以充分保证目标智能电表中用户数据的安全性。然后,若集中器检测到目标智能电表中的离散对数基相同,则要求目标智能电表证明没有向集中器发送离散对数基,若目标智能电表利用零知识证明没有证明出目标智能电表没有向集中器发送离散对数基,则集中器就判定目标智能电表为发送多次用电数据的智能电表。显然,由于零知识证明的完备性和健壮性,可以使得集中器寻找到发送多次用电数据的故障智能电表,综上所述,通过本发明中的方法,不仅可以使得用户的用电数据得到匿名隐藏,还可以使得集中器判断出目标智能电表是否为合法的智能电表,若目标智能电表不是合法的智能电表,集中器还能够寻找到发送多次用户数据的故障智能电表,大大提高了用户体验。相应的,本发明提供的一种智能电表的认证装置、介质及设备,同样具有上述有益效果。

附图说明

[0036] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0037] 图1为本发明实施例所提供的一种智能电表的认证方法的流程图;
[0038] 图2为本发明实施例所提供的另一种智能电表的认证方法的流程图;
[0039] 图3为本发明实施例所提供的又一种智能电表的认证方法的流程图;
[0040] 图4为本发明实施例所提供的一种应用于智能电表的认证方法的流程图;
[0041] 图5为本发明实施例所提供的一种智能电表的认证装置的结构图;
[0042] 图6为本发明实施例所提供的一种智能电表的认证设备的结构图。

具体实施方式

[0043] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0044] 本发明实施例公开了一种智能电表的认证方法,如图1所示,该方法包括:
[0045] 步骤S11:当接收到目标智能电表发送的用电请求时,则向目标智能电表发送目标证书;
[0046] 其中,当目标智能电表接收到目标证书时,则利用目标证书对目标智能电表自身的用电数据进行签名,得到签名数据,利用离散对数基更新签名数据,得到更新签名,并将更新签名发送至集中器;
[0047] 可以理解的是,电力公司为了获取每个用户真实的用电数据,控制中心会要求每个智能电表在固定的时间段将自己存储的用电数据发送给集中器,当集中器接收到所有智能电表的用电数据后,然后对这些用电数据进行分析,并将分析结果反馈给控制中心,以供控制中心对用户的用电数据进行分析与计算,显然,在此过程中,集中器和控制中心很容易将用户的用电数据存储起来,获取用户的隐私信息。
[0048] 具体的,当集中器接收到目标智能电表的用电请求时,则向目标智能电表发送目标证书,当目标智能电表接收到集中器发送的目标证书时,目标智能电表就利用目标证书对自身的用电数据进行签名,得到签名数据,并利用离散对数基更新签名数据,得到更新签名,然后,目标智能电表将更新签名发送至集中器,以此来完成目标智能电表与集中器之间的数据交互。
[0049] 显然,在目标智能电表与集中器进行数据交互的过程中,由于目标智能电表利用目标证书对自身的用户数据进行匿名隐藏,集中器不能将目标智能电表的身份与目标智能电表所发送的用户数据进行匹配,由此保证了目标智能电表中用户数据的安全性。
[0050] 步骤S12:当接收到更新签名时,则检测更新签名中的离散对数基是否相同;
[0051] 可以理解的是,由于离散对数基的随机性,如果目标智能电表是一个合法的智能电表,更新签名中不会存在有相同的离散对数基,但是,如果集中器检测到更新签名中存在相同的离散对数基,则说明目标智能电表中存在故障的智能电表,也即,目标智能电表中存在某一个时间段向集中器发送多次用户数据的智能电表。
[0052] 步骤S13:若否,则利用零知识证明对更新签名进行校验,若校验成功,则判定目标智能电表为合法的智能电表;
[0053] 需要说明的是,零知识证明指的是示证者在证明自己身份时不泄露任何信息,验证者也得不到示证者的任何私有信息,但又能证明对方身份的一种验证方法。在一个完整的零知识证明当中,主要包括承诺、挑战和回应三个步骤,而且,零知识证明必须满足下列性质:
[0054] (1)完备性:若示证者真的知道秘密,则能说服验证者相信自己知道这个秘密。
[0055] (2)健壮性:若示证者不知道秘密,则有很小的概率说服验证者相信他知道这个秘密。
[0056] (3)零知识性:任何人不能从证明过程中获得任何和秘密相关的消息。
[0057] 具体到本实施例中,零知识证明中的秘密指的是目标智能电表中存储的用电数据,示证者指的是目标智能电表,验证者指的是集中器。当集中器检测到更新签名中不存在相同的离散对数基时,说明目标智能电表中不存在故障的智能电表,此时,集中器就利用零知识证明理论对接收到的更新签名进行校验,若校正成功,则说明目标智能电表是合法的智能电表。显然,在集中器利用零知识证明理论对更新签名进行校验的过程中,由于零知识证明的完备性、健壮性和零知识性,可以充分保证目标智能电表中用户数据的安全性。
[0058] 步骤S14:若是,则向目标智能电表发送数据请求;
[0059] 其中,数据请求为要求目标智能电表证明没有向集中器发送离散对数基的请求;当目标智能电表接收到数据请求时,则利用零知识证明向集中器证明没有发送过离散对数基;若证明失败,则判定目标智能电表为发送多次用电数据的智能电表。
[0060] 可以理解的是,由于离散对数基的随机性和唯一性的特性,当集中器检测到更新签名中的离散对数基相同时,说明目标智能电表中存在向集中器发送多次用电数据的电表。此时,集中器为了找出该故障电表,则向目标智能电表发送要求目标智能电表向集中器证明没有发送过离散对数基的请求,以此来判定目标智能电表是否为向集中器发送多次用电数据的智能电表。
[0061] 能够想到的是,如果目标智能电表为故障的智能电表,则目标智能电表不能够向集中器证明没有发送离散对数基。具体的,在本实施例中,目标智能电表是利用零知识证明向集中器证明没有向集中器发送过离散对数基,如果证明失败,则说明目标智能电表为发送多次用电数据的智能电表。显然,由于零知识证明的完备性和健壮性,可以使得集中器能够寻找到发送多次用电数据的智能电表。
[0062] 可见,在本实施例中,目标智能电表通过目标证书和离散对数基的方法可以对自身的用电数据进行匿名隐藏;其次,集中器通过检测更新签名中的离散对数基是否相同,来判断目标智能电表是否为故障的智能电表,若集中器检测到目标智能电表中的离散对数基不相同,则利用零知识证明对更新签名进行校验,若校验成功,则判定目标智能电表为合法的智能电表。显然,由于零知识证明的完备性、健壮性和零知识性,可以充分保证目标智能电表中用户数据的安全性。然后,若集中器检测到目标智能电表中的离散对数基相同,则要求目标智能电表证明没有向集中器发送离散对数基,若目标智能电表利用零知识证明没有证明出目标智能电表没有向集中器发送离散对数基,则集中器就判定目标智能电表为发送多次用电数据的智能电表。显然,由于零知识证明的完备性和健壮性,可以使得集中器寻找到发送多次用电数据的故障智能电表,综上所述,通过本实施例中的方法,不仅可以使得用户的用电数据得到匿名隐藏,还可以使得集中器判断出目标智能电表是否为合法的智能电表,若目标智能电表不是合法的智能电表,集中器还能够寻找到发送多次用户数据的故障智能电表,大大提高了用户体验。
[0063] 基于上述实施例,本实施例对上一实施例作进一步的说明与优化,具体的,上述步骤S11:当接收到目标智能电表发送的用电请求时,则向目标智能电表发送目标证书的过程之前,还包括:
[0064] 初始化用户列表UL,以记录目标智能电表的目标证书。
[0065] 可以理解的是,集中器和目标智能电表在进行数据验证的过程中,会产生很多的目标证书,为了在后续的流程步骤中对目标智能电表的身份进行识别和认证,在集中器向目标智能电表发送目标证书之前,还初始化了用户列表UL,用来存储目标智能电表的目标证书,以方便集中器在后续流程步骤中对目标证书进行检索与追踪。
[0066] 基于上述实施例,本实施例对上一实施例作进一步的说明与优化,具体的,上述步骤S11:当接收到目标智能电表发送的用电请求时,则向目标智能电表发送目标证书的过程之前,还包括:
[0067] 对集中器自身的参数进行初始化,得到初始化参数;
[0068] 其中,初始化参数包括Hash函数H2:{0,1}*→Gs、离散对数的基底hi以及集中器管理区域中每一个智能电表的公私钥对 Gs为素数循环群,order(Gs)>N、N=pq、p=2p'+1、q=2q'+1,p,p',q,q'均为素数、hi∈QRN、0≤i≤3,0<j<n。
[0069] 可以理解的是,集中器和目标智能电表在进行身份验证的过程中,集中器需要向目标智能电表发送目标证书,为了对集中器管理区域的智能电表的身份进行认证,集中器需要对自身的参数进行初始化,以此来对目标智能电表的身份进行认证。具体的:
[0070] (1)集中器会产生一个RSA模数N=pq,其中,p和q满足:p=2p'+1和q=2q'+1,p,p',q,q'均为素数,N的长度为ln比特。
[0071] (2)选择一个已知阶的素数循环群Gs,并且,素数循环群的阶数满足order(Gs)>N。
[0072] (3)两个Hash函数:H1:{0,1}*→{0,1}k2,H2:{0,1}*→Gs;
[0073] 其中,k2为安全参数,长度范围为(160,ln/8),下界160比特是离散对数的最低安全长度,上界ln/8为防止相关模指数运算的溢出而设置的值。
[0074] (4)随机选择离散对数的基底hi∈QRN、0≤i≤3。
[0075] (5)集中器所管理区域当中,每个智能电表的公私钥对 其中,x的长度为k1比特,0
[0076] 上述参数就是集中器在初始化过程中,所产生的初始化参数。
[0077] 如图2所示,相应的,上述步骤S11:当接收到目标智能电表发送的用电请求时,则向目标智能电表发送目标证书的过程,包括:
[0078] 步骤S111:当接收到目标智能电表发送的用电请求时,则获取目标智能电表的公钥 和参数
[0079] 其中,参数 为目标智能电表随机选择的参数;
[0080] 步骤S112:当获取到公钥 和参数 时,则利用零知识证明验证目标智能电表是否具有与公钥 对应的私钥x以及与参数 对应的参数v',以确定目标智能电表是否为集中器管理区域的智能电表;
[0081] 步骤S113:若验证成功,则向目标智能电表发送目标证书。
[0082] 可以理解的是,当目标智能电表需要开通用电时,它需要与集中器进行数据交互,并利用集中器向目标智能电表发送的目标证书对自身当中的用户数据进行匿名隐藏,在此过程中,为了进一步确保目标智能电表是集中器所管理区域的智能电表,集中器还利用初始化参数对目标智能电表的身份进行了验证。
[0083] 具体的,首先,目标智能电表会随机选择一个k1-1比特长的参数v',同时将自身的公钥 和经过计算的参数 发送至集中器,当集中器接收到目标智能电表发送的公钥 和参数 时,则利用零知识证明验证目标智能电表是否具有与公钥 对应的私钥x以及与参数 对应的参数v',如果集中器利用零知识证明验证出目标智能电表具有私钥x和参数v',则说明目标智能电表是集中器管理区域的智能电表,此时向目标智能电表发送目标证书。需要说明的是,目标证书的具体表达式为Cred=(A,e),其中,目标证书Cred=(A,e)满足等式 其中,e为一个k1比特的素数,v=v'+v”。
[0084] 并且,在本实施例中,集中器同时也会将参数v”发送至目标智能电表,以及将目标智能电表的身份信息id、签名公钥 发送至目标智能电表,并将这些参数信息添加到用户列表UL当中,以供集中器在后续的流程步骤中对目标智能电表的身份进行核实与验证。
[0085] 此外,当目标智能电表接收到集中器发送的目标证书以后,计算得到v=v'+v”,以及与签名公钥 相对应的签名私钥xskid=(A,e,x,v),以供目标智能电表对集中器的身份进行再次验证与核实,以进一步提高对目标智能电表进行身份验证的准确性。
[0086] 相应的,上述步骤:当目标智能电表接收到目标证书时,则利用目标证书对目标智能电表自身的用电数据进行签名,得到签名数据,利用离散对数基更新签名数据,得到更新签名,并将更新签名发送至集中器的过程,包括:
[0087] 当目标智能电表接收到目标证书时,则利用目标证书对目标智能电表自身的用电数据进行签名,得到签名数据,利用离散对数基T2=H2(T)x更新签名数据,得到更新签名σ,并将更新签名σ发送至集中器;其中,T为目标智能电表向集中发送用电数据的时间戳。
[0088] 可以理解的是,离散对数基问题在计算上具有完全隐藏性,因为很难找到两个不同的值来打开离散对数基。所以,利用目标证书和离散对数基就可以对目标智能电表中的用户数据进行匿名与隐藏,进而保证目标智能电表中用户数据的安全性。
[0089] 在本实施例中,是利用含有时间参数的离散对数基T2=H2(T)x来更新目标智能电表中的签名数据,得到更新签名σ,并将更新签名σ发送至集中器。能够想到的是,如果目标智能电表是合法的智能电表,在不同的时间段向集中器发送的用户数据应该是相互独立的,以防止敌手或者是好奇的服务器通过某些参数将同一用户在不同时间段的签名链接起x来,为了实现这种独立性,在本实施例中,是利用离散对数基T2=H2(T) 更新目标智能电表中的签名数据,其中,T为每个时间段的时间戳,也即,如果目标智能电表为合法的智能电表,则目标智能电表向集中器发送的离散对数基T2=H2(T)x中的时间戳T必定为不同的值;
如果目标智能电表为故障的智能电表,则目标智能电表向集中器发送的离散对数基T2=H2(T)x中的时间戳T中必定会存在有相同的时间戳。
[0090] 具体的,在本实施例中,目标智能电表为了对自身的用电数据进行匿名隐藏,是利用目标证书对自身的用户数据进行签名,首先,目标智能电表是随机选取了s0∈{0,1}k1,r1∈{0,1}2k1+k2+1和{r0,re,rx,rv}∈{0,1}k1+k2+1,然后利用这些参数计算得出T2=H2(T)x, 以及
[0091] 当目标智能电表计算得出T0、T1、h0、T2、D0、D1和D2之后,就向集中器发出挑战c=H1(M,T,T0,T1,T2,D0,D1,D2)、响应ze=re-ce,zi=ri-csi,i=0,1,zx=rx-cx,zv=rv-cv,并将最后的签名数据σ=(M,T,T0,T1,T2,c,ze,z0,z1,zx,zv)发送至集中器。
[0092] 相应的,当集中器接收到目标智能电表发送的更新签名以后,则会利用零知识证明对更新签名进行校验,以验证目标智能电表是否为集中器所管理区域的智能电表,具体校验过程如下:
[0093] 当集中器接收到目标智能电表发送的更新签名σ之后,计算:
[0094]
[0095]
[0096]
[0097]
[0098] 然后,集中器验证 是否成立,如果 则表示目标智能电表是集中器所管理区域的智能电表,并且,目标智能电表是按照上述流程步骤与集中器完成数据交互的智能电表,为合法的智能电表;如果 则表示目标智能电表不是集中器所管理区域的智能电表,或者,目标智能电表并不是按照上述流程步骤与集中器完成数据交互的智能电表,为非法的智能电表。
[0099] 由上述过程可知,合法的目标智能电表由于身份的匿名性,目标智能电表的目标证书Cred=(A,e)被隐藏在T1和h0中,集中器不能得到关于目标证书Cred=(A,e)的任何信息,而且,目标智能电表的私钥x是T2基于H2(T)的离散对数,集中器从T2中也不能获得任何有关于目标智能电表的私钥x的相关信息,因此,集中器不能将合法的目标智能电表的身份与目标智能电表所发送的消息进行匹配。与此同时,由于H2(T)中的时间戳T在每个时间段的值均不相同,所以,T2在不同时间段的离散对数也互不相同。由此可知,集中器不能将合法的目标智能电表在不同时间段发送的数据通过某一个参数链接起来,也即,集中器不能从合法的目标智能电表中获取任何有关于目标智能电表的相关信息,所以,通过本实施例中的方法,可以确保目标智能电表中用户数据的安全性。
[0100] 如图3所示,相应的,上述步骤:当目标智能电表接收到数据请求时,则利用零知识证明向集中器证明没有发送过离散对数基的过程,包括:
[0101] 步骤H01:当目标智能电表接收到数据请求时,则产生离散对数基H2(T'),并计算得到
[0102] 其中,时间戳T'为目标智能电表从未使用过的时间戳;
[0103] 步骤H02:基于零知识证明理论,向集中器发送与 相对应的挑战、响应及签名,以向集中器证明没有发送过离散对数基T2=H2(T)x。
[0104] 具体的,在本实施例中,目标智能电表与集中器进行数据交互,得到一个新的离散对数基H2(T'),其中,T'为之前从未使用过的一个时间参数,然后,目标智能电表计算得到与离散对数基H2(T')相对应的时间参数
[0105] 在此过程之中,目标智能电表为了保证构造的T'2确实是由目标智能电表的私钥x所产生,是基于零知识证明理论证明T'2基于H2(T')的离散对数和 基于h1的离散对数相同。
[0106] 具体的,目标智能电表首先会执行协议 并随机选取{ri}∈{0,1}k1+k2+1,然后计算 和 之后,
目标智能电表向集中器发送与 相对应的挑战 响应zi
=ri-c1si和签名σ1=(c1,T',T'2,upk,zi);
[0107] 并且,目标智能电表为了证明目标智能电表的私钥与被要求证明的离散对数基T2=H2(T)x不同,则目标智能电表需要证明T′2基于 的离散对数和T2基于H2(T)的离散对数不相同。
[0108] 在目标智能电表证明T'2基于 的离散对数和T2基于H2(T)的离散对数不相同的过程中,首先执行协议 并随机选取r∈
{0,1}k1,并计算 α=r*xi和β=r;
[0109] 之后,执行协议
[0110] 并随机选取r1∈{0,1}2k1+k2+1和r2∈{0,1}k1+k2+1,并计算
[0111]
[0112]
[0113] 最后,目标智能电表向集中器发送挑战c2=H1(C,1,DC,D1)、响应z1=r1-c2α、z2=r2-c2β和签名σ2=(c1,C,z1,z2);
[0114] 当接收集中器接收到目标智能电表发送的挑战c1、响应zi、签名σ1、挑战c2、响应z1、z2和签名σ2时,计算c1和c2的值。
[0115] 目标智能电表的具体计算过程为:
[0116]
[0117]
[0118] 当集中器计算得到c1=c1、c2=c2且C≠1,则集中器判定目标智能电表为合法的智能电表;当集中器计算得到c1≠c1或者c2≠c2时,则集中器判定目标智能电表为故障电表,并且是向集中器发送多次用户数据的智能电表。显然,通过本实施例中的方法,可以使得集中器查找到向集中器发送多次用户数据的故障智能电表,当集中器寻找到该智能电表时,则可以将该智能电表从集中器所管理的区域进行排除,以防止该智能电表再次向集中器发送用户的用地数据,极大的提高了用户体验。
[0119] 如图4所示,本发明还公开了一种智能电表的认证方法,应用于目标智能电表,包括:
[0120] 步骤S21:向集中器发送用电请求;
[0121] 其中,当集中器接收到用电请求时,则向目标智能电表发送目标证书;
[0122] 步骤S22:当接收到目标证书时,则利用目标证书对自身的用电数据进行签名,得到签名数据,利用离散对数基更新签名数据,得到更新签名,并将更新签名发送至集中器;
[0123] 其中,当集中器接收到更新签名时,则检测更新签名中的离散对数基是否相同;若否,则利用零知识证明对更新签名进行校验,若校验成功,则判定目标智能电表为合法的智能电表;若是,则向目标智能电表发送数据请求;数据请求为要求目标智能电表证明没有向集中器发送离散对数基的请求;
[0124] 步骤S23:当接收到数据请求时,则利用零知识证明向集中器证明没有发送过离散对数基;
[0125] 其中,若目标智能电表证明失败,则集中器判定目标智能电表为发送多次用电数据的智能电表。
[0126] 关于目标智能电表与集中器之间的数据交互过程、目标智能电表利用目标证书对自身的用电数据进行签名的过程、利用离散对数基更新签名数据的过程、集中器对更新签名进行检测的过程以及目标智能电表利用零知识证明没有向集中器发送离散对数基的过程,均可以参考前述实施例中公开的相应内容,在此不再进行赘述。
[0127] 如图5所示,本发明还公开了一种智能电表的认证装置,应用于集中器,包括:
[0128] 证书发送模块31,用于当接收到目标智能电表发送的用电请求时,则向目标智能电表发送目标证书;其中,当目标智能电表接收到目标证书时,则利用目标证书对目标智能电表自身的用电数据进行签名,得到签名数据,利用离散对数基更新签名数据,得到更新签名,并将更新签名发送至集中器;
[0129] 数据检测模块32,用于当接收到更新签名时,则检测更新签名中的离散对数基是否相同;
[0130] 数据校验模块33,用于若否,则利用零知识证明对更新签名进行校验,若校验成功,则判定目标智能电表为合法的智能电表;
[0131] 数据发送模块34,用于若是,则向目标智能电表发送数据请求;其中,数据请求为要求目标智能电表证明没有向集中器发送离散对数基的请求;当目标智能电表接收到数据请求时,则利用零知识证明向集中器证明没有发送过离散对数基;若证明失败,则判定目标智能电表为发送多次用电数据的智能电表。
[0132] 相应的,本发明还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述公开的智能电表的认证方法的步骤。
[0133] 相应的,本发明还公开了一种智能电表的认证设备,如图6所示,包括:
[0134] 存储器41,用于存储计算机程序;
[0135] 处理器42,用于执行计算机程序时实现如前述公开的一种智能电表的认证方法的步骤。
[0136] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0137] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0138] 以上对本发明所提供的一种智能电表的认证方法、装置、介质及设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。