一种基于RSA的Zigbee安全通信方法与流程

文档序号:14717635发布日期:2018-06-16 01:53阅读:448来源:国知局
一种基于RSA的Zigbee安全通信方法与流程

本发明涉及通信技术领域,尤其涉及一种基于RSA的Zigbee安全通信方法。



背景技术:

基于IEEE 802.15.4无线技术的Zigbee是一种低成本、低功耗、近距离的双向通信网络技术,可被应用于众多无线通信场合。随着基于Zigbee的应用实例的增多,其传输信息的安全性也开始被人关注。虽然Zigbee所使用的ZStack协议栈本身已经自带了基于AES128加密解密算法,但是它作为一种对称加密技术,其保密性不如非对称加密技术。由于整个网络共享一个密钥,一旦密钥泄露,则网络毫无安全性可言。

RSA算法是非对称加密技术中的一个典例,其最显著的特征便是需要的密钥是一对,一个用于加密,一个用于解密,且加密密钥与解密密钥不相同。RSA算法安全性高但其复杂度也较高。因此,RSA算法并不适合用于嵌入式等计算能力较弱的终端。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种基于RSA的Zigbee安全通信方法。

本发明采用的技术方案是:

一种基于RSA的Zigbee安全通信方法,Zigbee网络包括信任中心、中心结点和终端结点,信任中心向各个中心结点提供证书和公私钥,中心结点用于将公钥广播至终端结点以及使用私钥加密证书,各终端结点基于公钥验证中心结点的合法性;Zigbee安全通信方法包括如下步骤:

S1,中心结点向信任中心请求证书和公私钥;

S2,信任中心返回证书和公私钥给中心结点;

S3,中心结点获取证书并验证证书,当证书认证成功,中心结点向所有的终端结点广播公钥;

S4,各终端结点向中心结点申请入网,中心结点利用私钥加密证书,并将私钥加密的证书发送到终端结点;

S5,终端结点获取私钥加密的证书后对解密,并验证解密后的证书合法性;当解密后的证书验证合法,则随机生成AES密码;

S6,终端结点利用Zigbee的OSAL层的函数随机生成两个大素数,并凭此两个大素数生成RSA的公私钥;

S7,终端结点使用RSA非对称密码技术生成的公钥对AES密码进行加密;

S8,终端结点传送经过RSA加密后的AES密码和RSA私钥给中心结点;

S9,中心结点利用RSA私钥对RSA加密后的AES密码进行解密认证并通过后,中心结点与对应的终端结点利用RSA加密后的AES密码进行后续通信。

进一步地,步骤S6的具体步骤如下:

S6-1,利用Zstack协议栈中osal层的随机数生成函数osal_rand生成两个随机数;

S6-2,判断两个随机数是否全为素数,是则生成两个素数p和q,并执行步骤S6-3;否则,执行步骤S6-1;

S6-3,在确保p和q不相等的情况下,将素数p和q直接相乘得到公钥n,即n=p*q;

S6-4,根据欧拉函数可知,不大于n且与n互质的整数个数为(p-1)*(q-1),将(p-1)*(q-1)定义为fai_n;

S6-5,根据fai_n随机生成一个与fai_n互质且不大于fai_n的整数e,将e作为另一个公钥;

S6-6,基于fai_n和e通过公式d*e=1(mod fai_n)生成私钥d;

S6-7,销毁p和q,并将(n,e)作为公钥,d作为私钥。

进一步地,步骤S6-1中生成的两个随机数的大小既满足不会过小而被破解又满足不会过大而使Zigbee内存溢出的要求。

进一步地,步骤S7中对AES密码进行加密的具体步骤如下:

S7-1,对作为Zigbee传输密钥的AES密码按指定方式全部转换为数字,形成数字明文组;

S7-2,对数字明文组进行一对一加密,加密公式为:c=me(mod n),其中c是密文,m是明文。

进一步地,步骤S9中根据公式m=cd(mod n)对AES密码的密文进行解密,还原成原始消息。

进一步地,所述中心结点为协调器。

进一步地,所述终端结点包括普通终端和路由器。

进一步地,所述中心结点上设有如下模块:

证书与公私钥接收模块:用于接收信任中心广播的公钥和证书;

中心证书验证模块:用于对信任中心发送的证书验证;

公钥分发模块:用于向终端结点广播公钥;

证书加密模块:用于利用私钥加密证书;

RSA私钥接收模块:接收终端结点发送的私钥;

RSA加密后的AES密钥解密模块:从RSA私钥接收模块中调取对应的私钥,利用私钥对AES密钥进行解密;

终端结点上设有如下模块:

公钥接收模块:用于接收中心结点广播的公钥和证书;

终端证书验证模块:用于对中心结点发送的证书验证;

AES密码生成模块:用于解密后的证书验证合法后随机生成AES密码;

RSA公私钥生成模块:利用RSA原理和Zstack协议栈本身含有的函数,在应用层生成公私钥的头文件及其对应的.c文件;

RSA加密AES密钥模块:利用RSA技术生成的公钥,对AES密钥进行加密。

本发明采用以上技术方案,利用RSA算法加密Zigbee通信密钥,实现Zigbee各终端和协调器之间的通信密钥各不相同,再通过AES128实现各终端和协调器之间的安全通信。各终端通过协调器发布的公钥对协调器进行身份认证,确定协调器的合法性。各终端和协调器的通信密钥处于安全加密状态,其他结点无法轻易捕获破解。各终端和协调器之间的通信密钥各不相同。本发明将RSA非对称加密方法负载到Zigbee设备中,通过对传输密钥进行加密,有效地提高了无线传输的可靠性和安全性,更有效地解决了因消息过长而可能导致的zigbee内存溢出问题。本发明可广泛应用于需要较高保密性的zigbee传输设备中,增强Zigbee传输的可靠性和安全性,防止传输消息被任意破解。

附图说明

以下结合附图和具体实施方式对本发明做进一步详细说明;

图1为本发明一种基于RSA的Zigbee安全通信方法的Zigbee网络示意图;

图2为本发明一种基于RSA的Zigbee安全通信方法的流程示意图;

图3为本发明一种基于RSA的Zigbee安全通信方法的中心结点和终端结点的结构示意图。

具体实施方式

如图1-3之一所示,本发明公开了一种基于RSA的Zigbee安全通信方法,如图1所示,Zigbee网络包括信任中心、中心结点和终端结点,信任中心向各个中心结点提供证书和公私钥,中心结点用于将公钥广播至终端结点以及使用私钥加密证书,各终端结点基于公钥验证中心结点的合法性;如图2所示,Zigbee安全通信方法包括如下步骤:

S1,中心结点向信任中心请求证书和公私钥;

S2,信任中心返回证书和公私钥给中心结点;

S3,中心结点获取证书并验证证书,当证书认证成功,中心结点向所有的终端结点广播公钥;

S4,各终端结点向中心结点申请入网,中心结点利用私钥加密证书,并将私钥加密的证书发送到终端结点;

S5,终端结点获取私钥加密的证书后对解密,并验证解密后的证书合法性;当解密后的证书验证合法,则随机生成AES密码;

S6,终端结点利用Zigbee的OSAL层的函数随机生成两个大素数,并凭此两个大素数生成RSA的公私钥;

S7,终端结点使用RSA非对称密码技术生成的公钥对AES密码进行加密;

S8,终端结点传送经过RSA加密后的AES密码和RSA私钥给中心结点;

S9,中心结点利用RSA私钥对RSA加密后的AES密码进行解密认证并通过后,中心结点与对应的终端结点利用RSA加密后的AES密码进行后续通信。

进一步地,步骤S6的具体步骤如下:

S6-1,利用Zstack协议栈中osal层的随机数生成函数osal_rand生成两个随机数;

S6-2,判断两个随机数是否全为素数,是则生成两个素数p和q,并执行步骤S6-3;否则,执行步骤S6-1;

S6-3,在确保p和q不相等的情况下,将素数p和q直接相乘得到公钥n,即n=p*q;

S6-4,根据欧拉函数可知,不大于n且与n互质的整数个数为(p-1)*(q-1),将(p-1)*(q-1)定义为fai_n;

S6-5,根据fai_n随机生成一个与fai_n互质且不大于fai_n的整数e,将e作为另一个公钥;

S6-6,基于fai_n和e通过公式d*e=1(mod fai_n)生成私钥d;

S6-7,销毁p和q,并将(n,e)作为公钥,d作为私钥。

进一步地,步骤S6-1中生成的两个随机数的大小既满足不会过小而被破解又满足不会过大而使Zigbee内存溢出的要求。

进一步地,步骤S7中对AES密码进行加密的具体步骤如下:

S7-1,对作为Zigbee传输密钥的AES密码按指定方式全部转换为数字,形成数字明文组;

S7-2,对数字明文组进行一对一加密,加密公式为:c=me(mod n),其中c是密文,m是明文。

进一步地,步骤S9中根据公式m=cd(mod n)对AES密码的密文进行解密,还原成原始消息。

进一步地,所述中心结点为协调器。

进一步地,所述终端结点包括普通终端和路由器。

进一步地,如图3所示,所述中心结点上设有如下模块:

证书与公私钥接收模块:用于接收信任中心广播的公钥和证书;

中心证书验证模块:用于对信任中心发送的证书验证;

公钥分发模块:用于向终端结点广播公钥;

证书加密模块:用于利用私钥加密证书;

RSA私钥接收模块:接收终端结点发送的私钥;

RSA加密后的AES密钥解密模块:从RSA私钥接收模块中调取对应的私钥,利用私钥对AES密钥进行解密;

终端结点上设有如下模块:

公钥接收模块:用于接收中心结点广播的公钥和证书;

终端证书验证模块:用于对中心结点发送的证书验证;

AES密码生成模块:用于解密后的证书验证合法后随机生成AES密码;

RSA公私钥生成模块:利用RSA原理和Zstack协议栈本身含有的函数,在应用层生成公私钥的头文件及其对应的.c文件;

RSA加密AES密钥模块:利用RSA技术生成的公钥,对AES密钥进行加密。

本发明采用以上技术方案,利用RSA算法加密Zigbee通信密钥,实现Zigbee各终端和协调器之间的通信密钥各不相同,再通过AES128实现各终端和协调器之间的安全通信。各终端通过协调器发布的公钥对协调器进行身份认证,确定协调器的合法性。各终端和协调器的通信密钥处于安全加密状态,其他结点无法轻易捕获破解。各终端和协调器之间的通信密钥各不相同。本发明将RSA非对称加密方法负载到Zigbee设备中,通过对传输密钥进行加密,有效地提高了无线传输的可靠性和安全性,更有效地解决了因消息过长而可能导致的zigbee内存溢出问题。本发明可广泛应用于需要较高保密性的zigbee传输设备中,增强Zigbee传输的可靠性和安全性,防止传输消息被任意破解。

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