基于窄带物联网的加密通信方法及其加密通信装置与流程

文档序号:16245930发布日期:2018-12-11 23:34阅读:195来源:国知局
基于窄带物联网的加密通信方法及其加密通信装置与流程

本发明属于通信技术领域,具体涉及一种基于窄带物联网的加密通信方法及其加密通信装置。

背景技术

物联网是指,通过部署具有一定感知、计算、执行和通信能力的各种设备,获取物理世界的信息,通过网络实现信息传输、协同和处理,从而实现人与物、物与物的互联的网络。简而言之,物联网就是要实现人与物、物与物的互联互通。其应用包括智能电网、智能农业、智能交通以及环境检测等各个方面。物联网的发展,被誉为是继计算机和互联网之后的信息产业的第三次浪潮,被寄予厚望,受到研究机构和产业界的极大追捧和重视,同时,相关的标准组织,也开始了物联网相关技术的标准化工作。

nb-iot(narrowbandinternetofthings,基于蜂窝的窄带物联网)技术,作为物联网应用的一种通信技术,是一种新兴的广域网网络传输技术,与传统的无线广域网网络传输技术相比,具有深覆盖,用户终端低功耗/长待机,可大规模连接,硬件超低成本等优势。目前,nb-iot系统仍处于建设初期,由于应用规模有限,因此面临的安全威胁也小。但是,随着nb-iot系统数量的增多和规模的增大,nb-iot应用系统互联互通,以及数据处理平台的集中管理,nb-iot安全问题将逐渐显现,而且会以雪崩效应影响到nb-iot行业,到时候“亡羊补牢”将为时太晚,甚至无法弥补。



技术实现要素:

为了解决上述技术问题,本发明提供了一种基于窄带物联网的加密通信方法及其加密通信装置。

为了达到上述目的,本发明的技术方案如下:

本发明提供一种基于窄带物联网的加密通信方法,包括以下步骤:

s1.服务器通过窄带物联网通信模块对终端节点进行身份认证,若身份认证成功,则服务器与终端节点建立通信连接并进入s2;若身份认证失败,则结束;

s2.服务器通过窄带物联网通信模块向终端节点发送生成秘钥表命令和秘钥种子,终端节点收到秘钥种子后生成与服务器相同的秘钥表;

s3.终端节点利用伪随机数生成器生成秘钥并对数据加密;

s4.服务器接收到数据后对通信内容进行解密,然后发送给用户客户端。

作为优选的方案,步骤s1中服务器对终端节点身份认证具体包括以下步骤:

s11.终端节点ni产生随机数r1,终端节点ni将自己的身份标识imei号imeini和随机数r1发送给服务器;

s12.服务器收到消息后,首先验证终端节点的身份标识imeini是否合法,如果是非法节点,则丢弃数据包;若节点合法,则利用计算公式计算终端节点的主密钥kni,并生成随机数r2,然后将随机数r2发送给终端节点ni;

s13.终端节点ni利用下述公式计算认证身份信息identni,然后将identni发送给服务器,计算公式为:

s14.服务器利用下述公式计算认证身份信息idents,计算公式为:

s15.判断identni与idents是否相等,若identni=idents,则身份认证成功,令终端节点ni的身份认证标识auni=1并对终端节点ni进行密钥分配;若identni≠idents,则该终端节点身份认证失败,服务器拒绝与其通信,则令终端节点ni的身份认证标识auni=2。

作为优选的方案,步骤s2中服务器生成秘钥种子具体包括以下步骤:服务器利用种子生成器随机产生一个数值作为密钥表的一个密钥种子seed,将密钥种子seed作为随机数生成器的参数,随机产生256个密钥,将生成的256个密钥的值存储在二维数组密钥表ts[16][16]中;

步骤s2中终端节点生成秘钥表具体包括以下步骤:终端节点收到服务器的生成密钥表命令和密钥种子seed后,生成与服务器相同的大小为256个密钥的密钥表,并将生成的256个密钥的值存储在二维数组密钥表tni[16][16]中。

作为优选的方案,步骤s3中终端节点生成秘钥并对数据加密具体包括以下步骤:

s31.利用伪随机数生成器生成两个[0,15]范围内的随机整数m,n分别作为密钥表的横坐标和纵坐标;

s32.从密钥表tni[16][16]中取出值tni[(m+16-1)mod16][n]、tni[(m+1)mod16][n]、tni[m][(n+16-1)mod16]和tni[m][(n+1)mod16],分别以上述四个数值为参数,利用伪随机数生成器生成lchaosaes的四个密钥:λ、x0、μ和y0,根据imeini得到密钥n;

s33.利用密钥λ、x0、μ、y0和n对数据加密;

s34.将密钥表的坐标值m,n附加在密文的后方一起发送给服务器;

步骤s4中服务器对通信内容进行解密具体包括以下步骤:服务器收到数据后,首先获得坐标值m和n,从密钥表ts中取出值ts[(m+16-1)mod16][n]、ts[(m+1)mod16][n]、ts[m][(n+16-1)mod16]和tni[m][(n+1)mod16],生成四个密钥:λ、x0、μ和y0,根据imeini得到密钥n,对通信内容解密从而获得实际内容。

作为优选的方案,步骤s32中生成lchaosaes的四个密钥的方法具体包括以下步骤:

s321.初始化参数:

数据收发方的密钥内容包括:一维logistics映射的控制参数λ和初始参数x0,tent映射的控制参数μ和初始值y0,以及基本迭代次数n;

s322.将明文分组:

将明文以16字节为单位进行分组并根据待加密明文的长度length计算明文的分组参数m和n;其中,m表示明文分组的组数,m=length/16;n表示明文分组后剩余的字节数,n=length%16;logistic和tent的迭代次数分别由m和n控制;

s323.产生混沌序列以及合成初始密钥:先将logistic映射迭代n+m次,tent映射迭代n+n次,再按照以下过程为第i(0≤i≤m)个分组以及剩余的n字节生成初始密钥:

(1)将logistic映射继上次迭代结果继续迭代8次,产生8个混沌实数:x1,x2,...,x8;

(2)将tent映射继上次迭代结果继续迭代8次,产生8个混沌实数:y1,y2,...,y8;

(3)截取实数xj(1≤j≤8)小数部分的前四位数字作为整数并对256取模,得到有限域gf(28)上的整数xj(1≤j≤8);

(4)截取实数yj(1≤j≤8)小数部分的前四位数字作为整数并对256取模得到有限域gf(28)上的整数yj(1≤j≤8);

(5)将两组整数[x1,x2,x3,x4,x5,x6,x7,x8]和[y1,y2,y3,y4,y5,y6,y7,y8]交叉组合,生成的[x1,y8,x2,y7,x3,y6,x4,y5,x5,y4,x6,y3,x7,y2,x8,y1]即为初始密钥;

s324.动态加密以及尾端处理:

(1)对第i(0≤i≤m)个明文分组加密,首先利用密钥扩展算法将该组的初始密钥扩展,为6轮运算过程生成轮密钥;利用轮密钥对该组明文加密。

(2)对剩余的n个字节的明文加密,将初始密钥的前n个字节与剩余的n个字节的明文异或。

6.根据权利要求1所述的基于窄带物联网的加密通信方法,其特征在于,步骤s321中基本迭代次数n的获取具体包括以下步骤:首先获取身份标识imei号的后三位数记为number,其次根据number的值设置lchaosaes算法的基本迭代次数:若number<100,则n=100;否则,n=number。

本发明还提供一种基于窄带物联网的加密通信装置,包括终端节点、窄带物联网通信模块、服务器和用户终端,终端节点的串口通信端与窄带物联网通信模块的串口通信端连接,窄带物联网通信模块的服务器通信端与服务器的窄带物联网通信端连接,服务器的客户端接口与用户终端连接;用户终端用于访问服务器实现信息的查询。

作为优选的方案,终端节点具体包括:

节点接收模块,用于接收服务器发送的指令;

节点发送模块,用于将自己的身份标识imei号和随机数发送给服务器进行身份认证;

节点生成模块,节点生成模块用于生成进行身份认证的随机数r1,然后根据随机数r2生成认证身份信息identni、;节点生成模块还用于根据服务器的指令生成秘钥表;

节点加密模块,用于对数据进行加密。

作为优选的方案,服务器具体包括:

服务器接收模块,用于接收终端节点和用户终端发送的指令;

服务器判断模块,用于验证节点的身份标识imei号是否合法、以及判断identni与idents是否相等;

服务器发送模块,用于向终端节点发送生成秘钥表命令和秘钥种子、随机数r2

服务器生成模块,服务器生成模块用于根据验证节点的身份标识imei号的合法性生成终端节点的主密钥kni和随机数r2,然后生成认证身份信息idents,服务器生成模块还用于生成秘钥种子和秘钥表;

服务器解密模块,用于将接收到的数据进行解密。

作为优选的方案,用户终端包括pc、平板或手机。

本发明具有以下有益效果:

(1)本发明利用密钥种子使得终端节点和服务器能够拥有相同的密钥表,并采用随机数坐标法共享密钥以提高密钥的安全性,使得nb-iot终端与服务器之间可以高效地进行身份认证,从而提高通信的安全性。

(2)lchaosaes加密轮数仅为6轮,轮函数更加简单,这大大降低了nb-iot终端节点的计算负担。在对明文加密时,该算法采用尾明文单独加密方式,使得密文的长度与明文一致,这不会给nb-iot网络流量带来额外开销。此外,该算法利用logistic映射和tent映射为每个明文分组和尾明文生成不同的初始密钥,实现“一次一密”的加密体制以提高安全性。再者,该算法利用nb-iot终端的imei号生成logistic映射和tent映射的基本迭代次数,这增加了初始密钥之间的差异性。

附图说明

图1为本发明基于窄带物联网的加密通信方法的整体工作流程图。

图2为本发明基于窄带物联网的加密通信方法中服务器对终端节点身份认证的工作流程图。

图3为本发明基于窄带物联网的加密通信方法中生成秘钥的工作流程图。

图4为本发明基于窄带物联网的加密通信方法中生成lchaosaes的四个密钥的工作流程图。

图5为本发明基于窄带物联网的加密通信装置的整体结构框图。

图6为本发明基于窄带物联网的加密通信装置中终端节点的结构框图。

图7为本发明基于窄带物联网的加密通信装置中服务器的结构框图。

具体实施方式

下面结合附图详细说明本发明的优选实施方式。

为了达到本发明的目的,如图1所示,在本发明的其中一种实施方式中提供一种基于窄带物联网的加密通信方法,包括以下步骤:

s1.服务器通过窄带物联网通信模块对终端节点进行身份认证,若身份认证成功,则服务器与终端节点建立通信连接并进入s2;若身份认证失败,则结束;

s2.服务器通过窄带物联网通信模块向终端节点发送生成秘钥表命令和秘钥种子,终端节点收到秘钥种子后生成与服务器相同的秘钥表;

s3.终端节点利用伪随机数生成器生成秘钥并对数据加密;

s4.服务器接收到数据后对通信内容进行解密,然后发送给用户客户端。

如图2所示,步骤s1中服务器对终端节点身份认证具体包括以下步骤:

s11.终端节点ni产生随机数r1,终端节点ni将自己的身份标识imei号imeini和随机数r1发送给服务器;

s12.服务器收到消息后,首先验证终端节点的身份标识imeini是否合法,如果是非法节点,则丢弃数据包;若节点合法,则利用计算公式计算终端节点的主密钥kni,并生成随机数r2,然后将随机数r2发送给终端节点ni;

s13.终端节点ni利用下述公式计算认证身份信息identni,然后将identni发送给服务器,计算公式为:

s14.服务器利用下述公式计算认证身份信息idents,计算公式为:

s15.判断identni与idents是否相等,若identni=idents,则身份认证成功,令终端节点ni的身份认证标识auni=1并对终端节点ni进行密钥分配;若identni≠idents,则该终端节点身份认证失败,服务器拒绝与其通信,则令终端节点ni的身份认证标识auni=2。

具体地,步骤s2中服务器生成秘钥种子具体包括以下步骤:服务器利用种子生成器随机产生一个数值作为密钥表的一个密钥种子seed,将密钥种子seed作为随机数生成器的参数,随机产生256个密钥,将生成的256个密钥的值存储在二维数组密钥表ts[16][16]中。

如图3所示,步骤s2中终端节点生成秘钥表具体包括以下步骤:终端节点收到服务器的生成密钥表命令和密钥种子seed后,生成与服务器相同的大小为256个密钥的密钥表,并将生成的256个密钥的值存储在二维数组密钥表tni[16][16]中。

具体地,步骤s3中终端节点生成秘钥并对数据加密具体包括以下步骤:

s31.利用伪随机数生成器生成两个[0,15]范围内的随机整数m,n分别作为密钥表的横坐标和纵坐标;

s32.从密钥表tni[16][16]中取出值tni[(m+16-1)mod16][n]、tni[(m+1)mod16][n]、tni[m][(n+16-1)mod16]和tni[m][(n+1)mod16],分别以上述四个数值为参数,利用伪随机数生成器生成lchaosaes的四个密钥:λ、x0、μ和y0,根据imeini得到密钥n;

s33.利用密钥λ、x0、μ、y0和n对数据加密;

s34.将密钥表的坐标值m,n附加在密文的后方一起发送给服务器;

具体地,步骤s4中服务器对通信内容进行解密具体包括以下步骤:服务器收到数据后,首先获得坐标值m和n,从密钥表ts中取出值ts[(m+16-1)mod16][n]、ts[(m+1)mod16][n]、ts[m][(n+16-1)mod16]和tni[m][(n+1)mod16],生成四个密钥:λ、x0、μ和y0,根据imeini得到密钥n,对通信内容解密从而获得实际内容。

其中,λ、x0、μ、y0和n的参数值如下所示:

如图4所示,步骤s32中生成lchaosaes的四个密钥的方法具体包括以下步骤:

s321.初始化参数:

数据收发方的密钥内容包括:一维logistics映射的控制参数λ和初始参数x0,tent映射的控制参数μ和初始值y0,以及基本迭代次数n;

s322.将明文分组:

将明文以16字节为单位进行分组并根据待加密明文的长度length计算明文的分组参数m和n;其中,m表示明文分组的组数,m=length/16;n表示明文分组后剩余的字节数,n=length%16;logistic和tent的迭代次数分别由m和n控制;

s323.产生混沌序列以及合成初始密钥:先将logistic映射迭代n+m次,tent映射迭代n+n次,再按照以下过程为第i(0≤i≤m)个分组以及剩余的n字节生成初始密钥:

(1)将logistic映射继上次迭代结果继续迭代8次,产生8个混沌实数:x1,x2,...,x8;

(2)将tent映射继上次迭代结果继续迭代8次,产生8个混沌实数:y1,y2,...,y8;

(3)截取实数xj(1≤j≤8)小数部分的前四位数字作为整数并对256取模,得到有限域gf(28)上的整数xj(1≤j≤8);

(4)截取实数yj(1≤j≤8)小数部分的前四位数字作为整数并对256取模得到有限域gf(28)上的整数yj(1≤j≤8);

(5)将两组整数[x1,x2,x3,x4,x5,x6,x7,x8]和[y1,y2,y3,y4,y5,y6,y7,y8]交叉组合,生成的[x1,y8,x2,y7,x3,y6,x4,y5,x5,y4,x6,y3,x7,y2,x8,y1]即为初始密钥;

s324.动态加密以及尾端处理:

(1)对第i(0≤i≤m)个明文分组加密,首先利用密钥扩展算法将该组的初始密钥扩展,为6轮运算过程生成轮密钥;利用轮密钥对该组明文加密。

(2)对剩余的n个字节的明文加密,将初始密钥的前n个字节与剩余的n个字节的明文异或。

具体地,步骤s321中基本迭代次数n的获取具体包括以下步骤:首先获取身份标识imei号的后三位数记为number,其次根据number的值设置lchaosaes算法的基本迭代次数:若number<100,则n=100;否则,n=number。

如图5所示,为了进一步地优化本发明的实施效果,在本发明的另一种实施方式中,在前述内容的基础上,本发明还提供一种基于窄带物联网的加密通信装置,包括终端节点、窄带物联网通信模块、服务器和用户终端,终端节点的串口通信端与窄带物联网通信模块的串口通信端连接,窄带物联网通信模块的服务器通信端与服务器的窄带物联网通信端连接,服务器的客户端接口与用户终端连接;用户终端用于访问服务器实现信息的查询。

具体地,如图6所示,终端节点具体包括:

节点接收模块,用于接收服务器发送的指令;

节点发送模块,用于将自己的身份标识imei号和随机数发送给服务器进行身份认证;

节点生成模块,节点生成模块用于生成进行身份认证的随机数r1,然后根据随机数r2生成认证身份信息identni、;节点生成模块还用于根据服务器的指令生成秘钥表;

节点加密模块,用于对数据进行加密。

具体地,如图7所示,服务器具体包括:

服务器接收模块,用于接收终端节点和用户终端发送的指令;

服务器判断模块,用于验证节点的身份标识imei号是否合法、以及判断identni与idents是否相等;

服务器发送模块,用于向终端节点发送生成秘钥表命令和秘钥种子、随机数r2

服务器生成模块,服务器生成模块用于根据验证节点的身份标识imei号的合法性生成终端节点的主密钥kni和随机数r2,然后生成认证身份信息idents,服务器生成模块还用于生成秘钥种子和秘钥表;

服务器解密模块,用于将接收到的数据进行解密。

以上所述的仅是本发明的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

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