一种基于区块链技术进行身份认证的智能电表的制作方法

文档序号:20431955发布日期:2020-04-17 21:46阅读:129来源:国知局
一种基于区块链技术进行身份认证的智能电表的制作方法

本发明涉及智能电表技术领域,尤其涉及一种基于区块链技术进行身份认证的智能电表。



背景技术:

随着电力技术的不断发展,其应用成本也在不断降低,使得分布式能源的形式广泛应用于社区和家庭。传统的电能消费者开始具备了供电能力,同时售电市场的改革使各种分布式电源等主体参与电力市场竞争成为未来发展的趋势。智能电表作为用户和电力系统的连接点,在电力系统中属于智能电表,具有身份属性,不仅能够完成用户的身份认证和记录用户的实时用电量,而且要能够根据用户的实时电量信息进行电能的双向传输,实现用户和能源系统的有效交易。

而现有的传统电力系统是以大型发电厂为中心,采用中心式管理和数据集中储存的运行模式,电力公司具有最高权限。在交易过程中电力公司知晓用户的真实身份,同时具有用户细粒度的实时用电数据,攻击者通过获取这些数据,可以将用户的身份和实时用电数据进行关联,进而分析出用户的日常用电习惯,对用户造成一定的潜在危险.除此之外,现有的中心式能源网络中,所有数据被集中存储和管理,一旦遭受攻击,容易造成数据被篡改或丢失的后果,不能保证数据的真实性、完整性和有效性。



技术实现要素:

本发明的目的是为了克服现有技术的不足,提供一种基于区块链技术进行身份认证的智能电表及系统。

本发明提供了一种基于区块链技术进行身份认证的智能电表,包括:

步骤s1:注册机构对区块链和智能电表进行身份注册,提供智能电表身份认证凭证,智能电表将经过merkle树处理的身份认证凭证信息的哈希值广播至区块链及同一个区块链下的所有智能电表;

步骤s2:当智能电表接收到登录触发信息时,提示用户选择登录方式,如用户选择的登录方式为硬件方式则提示用户接入身份认证硬件设备,当检测到身份认证硬件设备接入时,执行步骤s3;

步骤s3:所述智能电表判断用户是否选择使用默认身份认证方式,是则通过对应的自身认证服务器对用户身份进行认证,否则执行步骤s4;

步骤s4:所述智能电表通过将身份认证查询请求发送给服务器区块;

步骤s5:服务器接收所述身份认证查询请求,根据所述身份认证请求中的身份认证凭证信息,生成第一交易信息;

步骤s6:所述服务器将所述第一交易信息广播至区块链;

步骤s7:所述服务器将第一交易信息的第一交易编号信息发送至所述智能电表;

步骤s8:所述智能电表接收所述第一交易编号信息,根据所述第一交易编号信息和所述身份认证凭证信息,生成第二交易信息,并将所述第二交易信息广播至所述区块链;

步骤s9:所述区块链根据所述第一交易信息和所述第二交易信息,对所述智能电表进行身份认证,得到认证结果。

优选地,步骤s1包括:

步骤101,初始化系统,注册机构生成主密钥对(mpui,mpri),认证区域管理器,组建区块链,以及对智能电表身份的注册,其中mpui,mpri为注册机构生成的用于颁发给区域管理器或智能电表的公钥和私钥密码对,i是代表区域管理器或智能电表的编号;

步骤102,响应区域管理器和智能电表的注册申请,注册机构为区域管理器和智能电表分发注册机构的主密钥对;

步骤103,区域管理器和智能电表根据主密钥对产生随机数λ、γ,计算区域管理器的子公钥purm=f(mpu1,λ)和子私钥prrm=f(mpr1,λ),计算智能电表的子公钥pusm=f(mpu2,γ)和子私钥prsm=f(mpr2,γ),其中λ、γ为随机数,f()为非对称加密算法;

步骤104,智能电表利用merkle树对智能电表的注册信息进行哈希加密处理形成身份认证凭证信息,存放于merkle树的叶节点;

步骤105,智能电表将经过merkle树处理的身份认证凭证信息的哈希值广播至区域管理器及同一个区域管理器下的所有智能电表。

优选地,步骤1进一步包括:

智能电表获取所在区域管理器的公钥,将注册信息存进merkle树中,用区域管理器的公钥和注册机构颁发给自己的公钥进行加密,将两个加密结果计算为哈希值h0和h1,将(h0,h1)进行广播。

优选地,所述联盟成员认证服务器使用内部保存的与所述智能密钥设备对应的证书中的签名公钥和接收到的所述报文对接收到的所述签名结果进行验证,并将验证结果返回给所述智能电表,具体为:

所述联盟成员认证服务器对所述报文进行哈希运算得到哈希值,使用所述签名公钥对所述签名结果进行解密,判断解密结果与所述哈希值是否一致,是则所述签名结果验证成功,给所述智能电表返回身份认证成功信息,否则所述签名结果验证失败,给所述智能电表返回身份认证失败信息。

优选地,所述服务器接收所述身份认证请求,根据所述身份认证请求,生成脚本信息;所述服务器利用所述身份认证请求中的身份认证凭证信息和所述脚本信息,得到数学变换结果;所述服务器利用哈希算法计算得到所述脚本信息对应的脚本哈希值;所述服务器根据脚本信息的区块链地址信息、所述脚本哈希值和所述数学变换结果,生成第一交易信息。

优选地,在所述服务器将第一交易信息的第一交易编号信息发送至所述智能电表之前,所述方法还包括:所述服务器利用哈希算法对所述第一交易信息进行计算,得到所述第一交易信息的第一交易编号信息。

优选地,所述智能电表接收所述第一交易编号信息,根据所述第一交易编号信息和所述身份认证凭证信息,生成第二交易信息,并将所述第二交易信息广播至所述区块链进一步包括:所述智能电表接收所述第一交易编号信息,根据所述第一交易编号信息,获取所述第一交易信息;所述智能电表根据所述第一交易信息,得到所述脚本信息;所述智能电表根据所述第一交易编号信息、所述脚本信息、所述身份认证凭证信息和服务器的区块链地址信息,生成第二交易信息;所述智能电表将所述第二交易信息广播至所述区块链。

优选地,所述区块链根据所述第一交易信息和所述第二交易信息,对所述智能电表进行身份认证,得到认证结果进一步包括:所述区块链根据所述第二交易信息,得到所述第二交易信息对应的脚本信息;所述区块链利用哈希算法对所述第二交易信息对应的脚本信息进行计算,得到待认证脚本哈希值;所述区块链根据所述第一交易信息,得到所述第一交易信息对应的脚本哈希值;所述区块链判断所述待认证脚本哈希值是否与所述第一交易信息对应的脚本哈希值相同;若所述区块链判断得到所述待认证脚本哈希值与所述第一交易信息对应的脚本哈希值相同,则所述区块链根据所述第二交易信息,得到所述第二交易信息对应的身份认证凭证信息,并根据所述第二交易信息对应的身份认证凭证信息和脚本信息,得到待认证数学变换结果;所述区块链根据所述第一交易信息,得到所述第一交易信息对应的数学变换结果;所述区块链判断所述待认证数学变换结果是否与所述第一交易信息对应的数学变换结果相同;若是,则所述区块链得到第一认证结果;若否,则所述区块链得到第二认证结果;若所述区块链判断得到所述待认证脚本哈希值不与所述第一交易信息对应的脚本哈希值相同,则所述区块链得到第二认证结果。

优选地,在所述区块链根据所述第一交易信息和所述第二交易信息,对所述智能电表进行身份认证,得到认证结果之后,所述方法还包括:所述区块链将所述认证结果发送至所述服务器。

一种基于区块链技术进行身份认证的智能电表,包括:智能电表、服务器和区块链;其中,所述智能电表用于:向所述服务器发送身份认证请求;其中,所述身份认证请求包括身份认证凭证信息;所述服务器用于:接收所述身份认证请求,根据所述身份认证请求中的身份认证凭证信息,生成第一交易信息;将所述第一交易信息广播至区块链,并将第一交易信息的第一交易编号信息发送至所述智能电表;所述智能电表进一步用于:接收所述第一交易编号信息,根据所述第一交易编号信息和所述身份认证凭证信息,生成第二交易信息,并将所述第二交易信息广播至所述区块链;所述区块链用于:根据所述第一交易信息和所述第二交易信息,对所述智能电表进行身份认证,得到认证结果。

优选地,所述身份认证凭证信息包括以下一项或多项:用户名信息、用户密码信息、设备指纹信息、动态码和行为习惯信息。

优选地,所述服务器包括:第一接收模块、第一处理模块、第一生成模块、第一广播模块和第一发送模块;所述第一接收模块用于:接收所述身份认证请求;所述第一处理模块用于:根据所述身份认证请求,生成脚本信息;利用所述身份认证请求中的身份认证凭证信息和所述脚本信息,得到数学变换结果;利用哈希算法计算得到所述脚本信息对应的脚本哈希值;所述第一生成模块用于:根据脚本信息的区块链地址信息、所述脚本哈希值和所述数学变换结果,生成第一交易信息;所述第一广播模块用于:将所述第一交易信息广播至区块链;所述第一发送模块用于:将第一交易信息的第一交易编号信息发送至所述智能电表。

与现有的技术相比,本发明的有益效果是:

1、本发明技术方案通过一个身份认证硬件设备在不同应用或者页面进行用户身份认证的操作,方便用户身份认证管理,提高用户体验,

2、本发明由于智能电表具有大量用户隐私数据,通过区块链技术进行身份认证,使用户身份信息得到了有效保护,使内部和外部攻击者不能将用户身份信息和实时电力数据关联,同时数据分布式存储,提高了系统的安全性和可靠性。

3、根据本发明提供的技术方案,服务器根据智能电表的身份认证请求中的身份认证凭证信息,生成第一交易信息,将第一交易信息广播至区块链,并将第一交易信息的第一交易编号信息发送至智能电表,接着智能电表根据第一交易编号信息和身份认证凭证信息,生成第二交易信息,并将第二交易信息广播至区块链,然后区块链根据第一交易信息和第二交易信息,对智能电表进行身份认证,得到认证结果。根据本发明提供的技术方案,通过区块链能够安全、便捷地对智能电表进行身份认证,另外,利用区块链不可篡改的特性,还增加了身份认证的可信度。

附图说明

图1为本发明提出的一种基于区块链技术进行身份认证的智能电表的流程图;

图2为本发明提出的一种基于区块链技术进行身份认证的智能电表的中步骤s5的流程图。

图3为本发明提出的一种基于区块链技术进行身份认证的智能电表的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

一种基于区块链技术进行身份认证的智能电表,包括:

步骤s1:注册机构对区块链和智能电表进行身份注册,提供智能电表身份认证凭证,智能电表将经过merkle树处理的身份认证凭证信息的哈希值广播至区块链及同一个区块链下的所有智能电表;

步骤s2:当智能电表接收到登录触发信息时,提示用户选择登录方式,如用户选择的登录方式为硬件方式则提示用户接入身份认证硬件设备,当检测到身份认证硬件设备接入时,执行步骤s3;

步骤s3:所述智能电表判断用户是否选择使用默认身份认证方式,是则通过对应的自身认证服务器对用户身份进行认证,否则执行步骤s4;

步骤s4:所述智能电表通过将身份认证查询请求发送给服务器区块;

其中,身份认证请求包括身份认证凭证信息。具体地,身份认证凭证信息包括以下一项或多项:用户名信息、用户密码信息、设备指纹信息、动态码和行为习惯信息。本领域技术人员还可根据实际需要将其他可用于认证身份的信息作为身份认证凭证信息,此处不做限定。

步骤s501,服务器接收身份认证请求,根据身份认证请求,生成脚本信息。

步骤s502,服务器利用身份认证请求中的身份认证凭证信息和脚本信息,得到数学变换结果。

具体地,利用脚本信息对身份认证请求中的身份认证凭证信息进行数学变化,得到数学变换结果。例如,将身份认证请求中的身份认证凭证信息作为脚本信息对应的输入信息,利用脚本信息得到输出信息,所得到的输出信息即为数学变换结果。其中,数学变化包括但不限于加运算、减运算、与运算、异或运算和哈希运算等。

步骤s503,服务器利用哈希算法计算得到脚本信息对应的脚本哈希值。

服务器利用哈希算法对脚本信息进行哈希运算,得到脚本信息对应的脚本哈希值。

服务器根据脚本信息的区块链地址信息、脚本哈希值和数学变换结果,生成第一交易信息。

其中,脚本信息具有对应的区块链地址信息,根据脚本信息的区块链地址信息可得到脚本信息。由于交易信息包括交易输入信息和交易输出信息,那么在步骤s504中,服务器可将区块链的代币作为第一交易信息的交易输入信息,将脚本信息的区块链地址信息、脚本哈希值和数学变换结果作为第一交易信息的交易输出信息,从而生成第一交易信息。

步骤s6,服务器将第一交易信息广播至区块链。

在生成了第一交易信息之后,服务器将第一交易信息广播至区块链。相当于服务器将脚本信息的区块链地址信息、脚本哈希值和数学变换结果以第一交易信息的形式广播至区块链。

步骤s7,服务器将第一交易信息的第一交易编号信息发送至智能电表。

具体地,第一交易信息的第一交易编号信息为利用哈希算法对第一交易信息进行计算得到的。可选地,在步骤s206之前,该方法还可包括:服务器利用哈希算法对第一交易信息进行计算,得到第一交易信息的第一交易编号信息的步骤。

步骤s801,智能电表接收第一交易编号信息,根据第一交易编号信息,获取第一交易信息。

由于第一交易信息的第一交易编号信息为利用哈希算法对第一交易信息进行计算得到的,那么在智能电表接收了第一交易编号信息之后,就可根据第一交易编号信息,获取第一交易信息。

步骤s802,智能电表根据第一交易信息,得到脚本信息。

由于第一交易信息是根据脚本信息的区块链地址信息、脚本哈希值和数学变换结果生成的,那么智能电表根据第一交易信息就可得到脚本信息的区块链地址信息,接着根据脚本信息的区块链地址信息就可得到脚本信息。

步骤s803,智能电表根据第一交易编号信息、脚本信息、身份认证凭证信息和服务器的区块链地址信息,生成第二交易信息。

服务器具有对应的区块链地址信息,根据服务器的区块链地址信息可确定服务器。具体地,智能电表可将第一交易编号信息、脚本信息、身份认证凭证信息作为第二交易信息的交易输入信息,将服务器的区块链地址信息作为第二交易信息的交易输出信息,从而生成第二交易信息。

步骤s804,智能电表将第二交易信息广播至区块链。

在生成了第二交易信息之后,智能电表将第二交易信息广播至区块链。相当于智能电表将第一交易编号信息、脚本信息、身份认证凭证信息和服务器的区块链地址信息以第二交易信息的形式广播至区块链。

步骤s9,区块链根据第一交易信息和第二交易信息,对智能电表进行身份认证,得到认证结果。

由于第一交易信息和第二交易信息都广播至了区块链,那么在步骤s9中,区块链就可根据第一交易信息和第二交易信息,对智能电表进行身份认证,得到认证结果。

由于第一交易信息是根据脚本信息的区块链地址信息、脚本哈希值和数学变换结果生成的,那么区块链根据第一交易信息,可得到第一交易信息对应的脚本信息的区块链地址信息、脚本哈希值和数学变换结果,同理,第二交易信息是根据第一交易编号信息、脚本信息、身份认证凭证信息和服务器的区块链地址信息生成的,区块链根据第二交易信息,可得到第二交易信息对应的第一交易编号信息、脚本信息、身份认证凭证信息和服务器的区块链地址信息。

具体地,区块链根据第二交易信息,得到第二交易信息对应的脚本信息;利用哈希算法对第二交易信息对应的脚本信息进行计算,得到待认证脚本哈希值。区块链根据第一交易信息,得到第一交易信息对应的脚本哈希值。

在得到了待认证脚本哈希值和第一交易信息对应的脚本哈希值之后,区块链判断待认证脚本哈希值是否与第一交易信息对应的脚本哈希值相同。

如果区块链判断得到待认证脚本哈希值与第一交易信息对应的脚本哈希值相同,则区块链根据第二交易信息,得到第二交易信息对应的身份认证凭证信息,并根据第二交易信息对应的身份认证凭证信息和脚本信息,得到待认证数学变换结果;接着区块链根据第一交易信息,得到第一交易信息对应的数学变换结果;在得到了待认证数学变换结果和第一交易信息对应的数学变换结果之后,区块链判断待认证数学变换结果是否与第一交易信息对应的数学变换结果相同。如果判断得到认证数学变换结果与第一交易信息对应的数学变换结果相同,则区块链得到第一认证结果,即得到认证成功的认证结果;如果判断得到认证数学变换结果不与第一交易信息对应的数学变换结果相同,则区块链得到第二认证结果,即得到认证失败的认证结果。

如果区块链判断得到待认证脚本哈希值不与第一交易信息对应的脚本哈希值相同,则区块链得到第二认证结果。

在本实施例中,在区块链对智能电表进行身份认证的过程中,区块链不仅验证脚本哈希值,还验证数学变换结果,从而能够更加全面、准确地进行身份认证,进而获得可靠的认证结果。

其中,其他的验证交易合法性的方式与现有技术中区块链验证交易合法性的方式相同,此处不再赘述。

在实际应用中,可由区块链中的矿工节点根据第一交易信息和第二交易信息,对智能电表进行身份认证。如果经区块链中的矿工节点对智能电表进行身份认证,得到第一认证结果,即认证成功,那么矿工节点在区块链中广播第二交易信息,在区块链中的各节点达成共识后写入区块链。

步骤s9,区块链将认证结果发送至服务器。

区块链根据第二交易信息可得到服务器的区块链地址信息,根据服务器的区块链地址信息,就可将认证结果发送至服务器,以便服务器获知智能电表的身份认证是否认证成功。

根据本发明实施例提供的基于区块链的身份认证方法,服务器根据脚本信息的区块链地址信息、脚本哈希值和数学变换结果,生成第一交易信息,将第一交易信息广播至区块链,并将第一交易信息的第一交易编号信息发送至智能电表,智能电表根据第一交易编号信息、脚本信息、身份认证凭证信息和服务器的区块链地址信息,生成第二交易信息,并将第二交易信息广播至区块链,然后区块链根据第一交易信息和第二交易信息,对智能电表进行身份认证,得到认证结果。根据本发明提供的技术方案,通过区块链保存并验证脚本哈希值和数学变换结果,从而能够安全、便捷、准确地对智能电表进行身份认证,另外,利用区块链不可篡改的特性,还增加了身份认证的可信度。

图3示出了根据本发明一个实施例的基于区块链的身份认证系统的结构框图,如图所示,该系统包括:服务器。

智能电表用于:向服务器发送身份认证请求。

其中,身份认证请求包括身份认证凭证信息。本领域技术人员可根据实际需要将可用于认证身份的信息作为身份认证凭证信息,此处不做限定。例如,身份认证凭证信息可包括以下一项或多项:用户名信息、用户密码信息、设备指纹信息、动态码和行为习惯信息。

服务器用于:接收身份认证请求,根据身份认证请求中的身份认证凭证信息,生成第一交易信息;将第一交易信息广播至区块链,并将第一交易信息的第一交易编号信息发送至智能电表。

具体地,服务器包括:第一接收模块、第一处理模块、第一生成模块、第一广播模块和第一发送模块。其中,第一接收模块用于:接收身份认证请求。第一处理模块用于:根据身份认证请求,生成脚本信息;利用身份认证请求中的身份认证凭证信息和脚本信息,得到数学变换结果;利用哈希算法计算得到脚本信息对应的脚本哈希值。第一生成模块用于:根据脚本信息的区块链地址信息、脚本哈希值和数学变换结果,生成第一交易信息。第一广播模块用于:将第一交易信息广播至区块链。第一发送模块用于:将第一交易信息的第一交易编号信息发送至智能电表。

其中,服务器中的第一处理模块利用脚本信息对身份认证请求中的身份认证凭证信息进行数学变化,得到数学变换结果。例如,将身份认证请求中的身份认证凭证信息作为脚本信息对应的输入信息,利用脚本信息得到输出信息,所得到的输出信息即为数学变换结果。数学变化包括但不限于加运算、减运算、与运算、异或运算和哈希运算等。

由于交易信息包括交易输入信息和交易输出信息,那么服务器中的第一生成模块可将区块链的代币作为第一交易信息的交易输入信息,将脚本信息的区块链地址信息、脚本哈希值和数学变换结果作为第一交易信息的交易输出信息,从而生成第一交易信息。在第一生成模块生成了第一交易信息之后,服务器中的第一广播模块将第一交易信息广播至区块链,相当于第一广播模块将脚本信息的区块链地址信息、脚本哈希值和数学变换结果以第一交易信息的形式广播至区块链。

可选地,服务器还用于:利用哈希算法对第一交易信息进行计算,得到第一交易信息的第一交易编号信息。具体地,服务器中的第一处理模块利用哈希算法对第一交易信息进行计算,得到第一交易信息的第一交易编号信息。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1