一种适用于电力无线传感器网络的SM2签名方法与流程

文档序号:16671446发布日期:2019-01-18 23:36阅读:229来源:国知局
一种适用于电力无线传感器网络的SM2签名方法与流程

本发明属于信息安全技术领域,尤其涉及一种适用于电力无线传感器网络的sm2签名方法。



背景技术:

sm2是国家密码管理局发布的先进安全的椭圆曲线公钥密码算法,sm2具有性能更优、处理速度快、密码复杂度高等优势,与rsa算法相比具有更高的安全性。sm2算法规定了数字签名算法、密钥交换协议和公钥加密算法,其中数字签名算法包括签名生成算法和签名验证算法。sm2数字签名算法的私钥一般用于签名者生成签名,公钥用于验证者对签名进行验证。在应用中,验证者往往需要保管公钥,而对于电力系统的无线传感器网络,其信息安全核心是安全密钥的建立,而传感节点常常分布在偏僻、信号较差的区域,往往资源受限,从而造成数据传输不稳定、消息来源鉴别困难等问题。

目前,无线传感器网络密钥管理机制有四种类型,分别是密钥预分配、动态密钥管理机制、基于公钥体制的密钥管理机制和基于可信密钥分发中心的密钥管理机制。然而不同的密钥管理方案可能造成节点的密钥更新代价较大、安全性低和计算开销较大等问题。同时由于用户公钥较长,如何减少公钥存储空间又不影响认证效率和安全性也是设计签名方法时需要解决的问题。



技术实现要素:

本发明的主要目的是提出一种适用于电力无线传感器网络的sm2签名方法,解决上述背景技术中提出的无线传感器网络在消息鉴别时,减少公钥存储空间而又不影响认证效率和安全性问题。

为此,本发明提供了一种适用于电力无线传感器网络的sm2签名方法,所述方法包括以下步骤:

步骤a:系统参数,

数据云端生成sm2算法系统参数,其中为定义在有限域上的椭圆曲线方程,上的阶基点,的生成元,选择为系统主密钥,为系统主公钥,为安全的哈希函数,数据云端秘密保存,公布其他参数;

步骤b:传感节点密钥生成,

以传感节点序列号作为身份id,计算传感节点私钥,传感节点公钥计算方法为,数据云端将每个节点的身份id作为索引对传感节点信息进行管理,通过安全方式对每个传感节点注入私钥,这种密钥生成方式要求仅数据云端可验证,在获得授权后被授权者也可验证,或者通过数据云端所述步骤a中主密钥对和传感节点序列号进行认证;

步骤c:签名生成,

对于传感节点的数据包,传感节点采用所述步骤b中传感节点私钥对数据包进行签名,输出数字签名值(r,s);

步骤d:签名验证,

数据云端对接收的数据包和签名,采用所述步骤b中传感节点公钥计算方法,计算对应的传感节点公钥,再用所述传感节点公钥对签名进行验证,输出验证结果;

步骤e:授权签名验证,

数据云端向验证者公开所述步骤b中身份为id的传感节点对应的授权信息,被授权者通过传感节点id和q验证签名,并输出验证结果。

进一步的,所述步骤b包括:数据云端关于传感节点,无需存储所述传感节点公钥,而只需存储传感节点身份id。

进一步的,所述步骤c包括:传感节点计算数据包和身份id的哈希值,协商一个随机数,计算椭圆曲线上的点,再计算,如果,则重新生成,再计算得到签名值,如果,则重新生成,最后输出签名值(r,s)。

进一步的,所述步骤d包括:数据云端先分别验证是否成立,如果不成立则验证失败,再计算,如果则验证失败,再计算椭圆曲线上的点,检验是否成立,如果成立则验证成功,否则验证失败,最后输出验证结果。

进一步的,所述步骤d包括:数据云端验证签名之前,通过传感节点id计算对应的所述传感节点公钥,在验证签名后,撤销所述传感节点公钥,释放存储空间。

本发明公开了一种适用于电力无线传感器网络的sm2签名方法,有益效果包括:

1.数据云端根据传感节点身份id能够计算出其对应公钥,故无需存储,从而节省数据云端存储空间。

2.验证签名者仅限于数据云端或经过数据云端授权的被授权者,从而提高了验证结果的可靠性。

附图说明

下面结合附图对本实施例或技术方案进一步说明。

图1是本发明签名方法的流程图。

图2是本发明签名密钥生成的流程图。

具体实施方式

为了更好的解释本发明实施例的方案,下面结合附图作进一步说明。

如图1所示,本发明签名方法大致流程如下:

101、数据云端生成sm2算法椭圆曲线参数,秘密保存主密钥,公布其他参数;

102、将传感节点序列号作为身份id,数据云端通过身份id计算每个传感节点公私钥,并将私钥注入传感节点;

103、传感节点用私钥对数据包进行签名,输出数字签名值(r,s);

104、数据云端根据传感节点公钥计算方法,计算对应的传感节点公钥,再对签名进行验证,输出验证结果;

105、数据云端向验证者公开身份为id的传感节点对应的授权信息q,被授权者可以通过传感节点id和q验证签名,并输出验证结果。

如图2所示,本发明签名密钥生成方法具体如下:

201、传感节点发送身份id到数据云端;

202、数据云端根据身份id计算私钥,并设计公钥计算方法,并根据身份id建立传感节点索引;

203、通过安全方式对每个传感节点注入私钥。

实施例1:

系统参数生成后,传感节点a将序列号作为身份id发送至数据云端,数据云端根据身份id生成私钥,并设计传感节点公钥计算方法,然后以安全的方式将传感节点私钥注入传感节点a,传感节点a利用私钥对采集的数据包进行签名,生成签名(r,s),再将数据包和签名发送给数据云端,数据云端接收后,利用传感节点a的身份id根据传感节点公钥计算方法生成对应公钥,再用公钥对签名进行验证,最后输出验证结果,并撤销传感节点a的公钥,释放数据云端存储空间。

以上所述仅是本发明的优选实施方式,而不限于这种方式,应当指出,尽管对本发明进行了详细说明,本领域的普通技术人员应当理解,对对上述各实施例其中部分或者全部技术特征进行等同替换,或对所述的技术方案依然能够进行修改,而这些替换和修改,并不使其本质脱离本发明各实施例技术方案的范围。

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