[发明专利]基于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″接入自己失败。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110116873.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top