[发明专利]基于DH算法的LoRa终端安全接入方法有效
| 申请号: | 202110116873.9 | 申请日: | 2021-01-28 |
| 公开(公告)号: | CN112954679B | 公开(公告)日: | 2022-07-01 |
| 发明(设计)人: | 方建平;李姣 | 申请(专利权)人: | 西安电子科技大学 |
| 主分类号: | H04W12/06 | 分类号: | H04W12/06;H04W12/08;H04W12/106;H04W12/0431;H04W12/0433;H04W12/03;H04W12/122;H04L9/32;H04L9/40 |
| 代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 陈宏社;王品华 |
| 地址: | 710071*** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 dh 算法 lora 终端 安全 接入 方法 | ||
1.一种基于DH算法的LoRa终端安全接入方法,其特征在于,包括以下步骤:
(1)初始化通信网络参数:
构建包括应用服务器AS、网络服务器NS和N个LoRa终端E={E1,E2,...,Ei,...EN}的通信网络,并初始化Ei的接入请求轮数、随机数、秘钥分别为LEi、AKeyi,初始化网络服务器NS中保存的Ei的成功接入次数、随机数、秘钥分别为LNi、AKeyi′,并令LEi=0,LNi=0,其中N≥1,Ei表示第i个LoRa终端,和的表达式分别为:
其中,hval表示随机数生成函数,mod表示取模运算,||表示连接运算符;
(2)每个LoRa终端Ei向网络服务器NS发送接入请求JRi:
(2a)每个LoRa终端Ei令LEi=LEi+1,并通过LEi和以及Ei对应的应用服务器标识AEUIi和终端标识IDi,计算接入请求载荷JRPi:
其中,表示的消息摘要,Left(·)表示截取函数;
(2b)每个LoRa终端Ei基于aes128_cmac算法,并通过秘钥AKeyi对接入请求载荷JRPi进行加密,得到MAC校验码MIC1i,然后将JRPi和MIC1i的连接结果JRi=JRPi||MIC1i作为接入请求发送至网络服务器NS;
(3)网络服务器NS向每个JRm合法的LoRa终端Em′发送请求应答消息JAm,并向应用服务器AS发送应用会话秘钥AppSKeym′:
(3a)网络服务器NS在终端标识集合ID′中选取与JRi中终端标识IDi相等的IDi′,并基于aes128_cmac算法,通过IDi′对应的秘钥AKeyi′对接入请求载荷JRPi进行加密,得到对比校验码MIC1i′,然后判断MIC1i′=MIC1i是否成立,若是,执行步骤(3b),否则,拒绝LoRa终端Ei的接入;
(3b)网络服务器NS判断LNiLEi是否成立,若是,执行步骤(3c),否则,拒绝LoRa终端Ei的接入;
(3c)网络服务器NS生成临时随机数并对RNt进行更新,RNt=Left(16,sha1(RNt)),然后判断更新LEi-LNi次后的RNt与是否满足若是,得到M个接入请求合法的LoRa终端E′={E1′,E2′,...,Em′,...EM′},否则,拒绝LoRa终端Ei的接入,其中M≥1;
(3d)网络服务器令LNm=LEm,然后通过伪随机数生成算法生成初始随机数RA,并通过RA和计算应用随机数RAm,然后通过RAm、网络标识符NetID、Em′的终端地址DevAddrm、DL设置字段DLSettings、延迟RxDelay和信道频率配置参数CFList,计算请求应答消息载荷JAPm:
JAPm=RAm||NetID||DevAddrm||DLSettings||RxDelay||CFList;
(3e)网络服务器NS基于aes128_cmac算法,并通过秘钥AKeym′对JAPm进行加密,得到验证码MIC2m,然后基于aes128_decrypt算法,并通过秘钥AKeym′对JAPm和MIC2m的连接结果UJAm=JAPm||MIC2m进行加密,得到请求应答消息JAm后,将JAm发送给Em′;
(3f)网络服务器NS通过AKeym′、RAm、NetID、和补位信号pad16,计算Em′的网络会话秘钥NwkSKeym′和Em′的应用会话秘钥AppSKeym′,并将AppSKeym′发送给应用服务器AS:
其中,aes128_encrypt(·)表示aes128对称加密算法;
(4)每个JRm合法的LoRa终端Em′对JAm的合法性进行核实:
每个JRm合法的LoRa终端Em′基于aes128_encrypt算法,并通过秘钥AKeym对JAm进行解密,得到UJAm,然后判断从UJAm中截取的Em′的终端地址DevAddrm′与DevAddr是否满足DevAddrm′=DevAddr,若是,则JAm合法,执行步骤(5),否则,执行步骤(2);
(5)每个JRm合法的LoRa终端Em′对JAm的完整性进行核实:
每个JRm合法的LoRa终端Em′基于aes128_cmac算法,并通过秘钥AKeym对从UJAm中截取的JAPm′进行加密,得到对比校验码MIC2m′,然后判断MIC2m′=MIC2m是否成立,若是,则JAm完整,执行步骤(6),否则,执行步骤(2);
(6)每个JRm合法的LoRa终端Em′向应用服务器AS发送应用授权请求消息AARm:
(6a)每个JRm合法的LoRa终端Em′从UJAm中截取Em′的RAm和NetID,并通过AKeym、RAm、NetID、和pad16生成Em′的网络会话秘钥NwkSKeym和应用会话秘钥AppSKeym:
(6b)每个JRm合法的LoRa终端Em′根据AppSKeym生成随机数Seq1m=Left(16,sha1(Left(64,AppSKeym))),并将Seq1m、Em′的公钥DPdm、AEUIm和IDm组合成AARm的载荷AARPm=Seq1m||DPdm||AEUIm||IDm,然后基于aes128_cmac算法,并通过AppSKeym对AARPm进行加密,得到MAC校验码MIC3m,再将AARm和MIC3m的连接结果AARm=AARPm||MIC3m作为应用授权请求消息发送给应用服务器AS;
(7)应用服务器AS向每个应用授权请求消息AARk合法的LoRa终端Ek″发送应用授权消息AAAk:
(7a)应用服务器AS基于aes128_cmac算法,并通过AppSKeym′对从AARm中截取的AARPm进行加密,得到MAC校验码MIC3m′,然后判断从AARm中截取的MAC3m与MIC3m′是否满足MIC3m′=MIC3m,若是,执行步骤(7b),否则,拒绝LoRa终端Em′的接入;
(7b)应用服务器AS通过AppSKeym′计算随机数Seq1m′,并判断从AARPm中截取的Seq1m与Seq1m′是否满足Seq1m′=Seq1m,若是,得到K个授权请求消息合法的LoRa终端E″={E1″,E2″,...,Ek″,...EK″},否则,拒绝LoRa终端Em′的接入,其中K≥1,Seq1m′=Left(16,sha1(Left(64,AppSKeym′)));
(7c)应用服务器AS生成随机数Seq2k=Seq1k+1,然后,通过AS的私钥a、Seq2k、AS的标识AEUI′、IDk、AS的公钥DPa和从AARPk中截取的Ek″的公钥DPdk,计算MAC校验码MIC4k:
MIC4k=rsa(a,sha1(Seq2k||AEUI′||IDk||DPa||DPdk||SK))
SKk=sha1(aPdk||Seq2k)
其中,SKk表示存储在AS中的基于DH算法得到的Ek″和应用服务器的共享秘钥,rsa(·)表示RSA非对称加密算法;
(7d)应用服务器AS基于aes128_cmac算法,并通过AppSKeyk′对应用授权消息载荷AAAPk=Seq2k||DPa||MIC4k进行加密得到MAC校验码MIC5k,然后将AAAPk和MIC5k的连接结果AAAk=AAAPk||MIC5k作为应用授权消息发送给Ek″;
(8)每个AARk合法的LoRa终端Ek″对AAAk的时效性进行核实:
每个AARk合法的LoRa终端Ek″从AAAk截取出Seq2k′,判断Seq2k′=Seq1k+1是否成立,若是,则AAAk时效性满足要求,执行步骤(9),否则,执行步骤(2);
(9)每个AARk合法的LoRa终端Ek″对AAAk的完整性进行核实:
每个AARk合法的LoRa终端Ek″基于aes128_cmac算法,并通过AppSKeyk对从AAAk中截取的AAAPk进行加密,得到MAC校验码MIC5k′,然后判断MIC5k′=MIC5k是否成立,若是,则AAAk完整,执行步骤(10),否则,执行步骤(2);
(10)每个AARk合法的LoRa终端Ek″对AAAk的正确性进行核实:
每个AARk合法的LoRa终端Ek″将Ek的私钥dk、AS的公钥DPa和Seq2k组合成秘钥Sk=sha1(dkDPa||Seq2k),然后基于rsa算法,并通过DPa对从AAAPk中截取的MIC4k进行解密得到消息P,判断P=Q是否成立,若是,则生成共享秘钥SKk′=Sk,执行步骤(11),否则,执行步骤(2),其中,Q=sha1(Seq2k||AEUIk||IDk||DPa||DPdk||Sk),SKk′表示存储在Ek″中的基于DH算法得到的Ek″和应用服务器的共享秘钥;
(11)每个AARk合法的LoRa终端Ek″向应用服务器AS发送授权确认消息Mk:
每个AARk合法的LoRa终端Ek″生成随机数Seq3k=Seq2k+1,然后基于aes128_cmac算法,并通过SKk′对Seq3k进行加密,得到MAC校验码MIC6k,将授权确认消息Mk=Seq3k||MIC6k发送给应用服务器AS;
(12)应用服务器AS对授权确认消息Mk进行验证:
应用服务器AS基于aes128_cmac算法,并通过SKk对Seq3k进行加密,得到MAC校验码MIC6k′,然后判断从Mk中截取的MIC6k与MIC6k′是否满足MIC6k′=MIC6k,若是,将发送Mk的LoRa终端Ek″接入自己,否则,发送Mk的LoRa终端Ek″接入自己失败。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110116873.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种智能炒菜机器人用搅拌装置
- 下一篇:一种多功能水面智能机器人





