[发明专利]无线设备间密钥自动协商方法有效
申请号: | 202010013485.3 | 申请日: | 2020-01-07 |
公开(公告)号: | CN111200817B | 公开(公告)日: | 2022-07-19 |
发明(设计)人: | 肖晟;郝斌 | 申请(专利权)人: | 湖南大学 |
主分类号: | H04W12/0431 | 分类号: | H04W12/0431;H04W12/10;H04L9/08 |
代理公司: | 长沙正奇专利事务所有限责任公司 43113 | 代理人: | 马强;王娟 |
地址: | 410082 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 无线 设备 密钥 自动 协商 方法 | ||
1.一种无线设备间密钥自动协商方法,其特征在于,包括以下步骤:
1)发送方构造密钥协商请求包request_packet,表示希望与接收方进行密钥协商,并发送至接收方;请求包request_packet的MESSAGE字段内容设置为发送方的MAC地址;
2)接收方接收到请求包request_packet,提取出请求包request_packet中的内容进行验证,如果验证结果为真,则接收方提取请求包request_packet中Message字段中的值,并检查MESSAGE的值是否符合MAC地址的格式,如果检查结果为真,则接收方考虑是否愿意与发送方开始密钥协商;若接收方不愿意与发送方进行密钥协商,那么接收方将保持沉默;如果发送方等待时间TH没有收到接收方发送的响应数据包,则发送方在下一个请求之前等待时间TW;如果发送方仍发送请求数据包,则接收方在时间Td期间拒绝每个数据包;若接收方想与发送方开始密钥协商,则接收方发送一个通信字段值设置为接收方的识别信息的accepting_packet;
3)发送方收到接收方接受协商的accepting_packet后,在T1时间内发送NS个随机消息数据包random_packet,所述NS个随机消息数据包random_packet的序列字段SEQ按照发送顺序从0开始编号,并且发送方存储所有已发送的随机消息数据包;
4)当接收方收到第一个随机消息数据包时,接收方启动时间为2T1+Tw的计时器,在收到发送方的第一个随机消息数据包后的Tw时间内,接收方只接收随机消息数据包;Tw之后,接收方在接收的同时提取随机消息数据包random_packet中的内容,若random_packet通过完整性验证和序列验证,则存储random_packet通信字段MESSAGE和序列的字段SEQ的值;在序列验证期间,如果收到的随机消息数据包与之前存储的随机消息数据包的SEQ值相同,证明密钥协商可能受到了攻击者的攻击,并舍弃这两个随机消息数据包;当2T1+Tw计时器结束时,接收方检查随机数据包的数量M是否超过阈值Nr,如果超出,接收方开始生成通信密钥并启动2T2计时器;接收方保持两个线性列表,即m[i]和s[j],i=0,1,2,...,S;j=0,1,2,...,S,其中S≥M;m[.]用于存储MESSAGE字段的值,s[.]用于以m[.]的相同顺序存储SEQ字段的值;在第一个T2期间,由哈希函数sha256处理m[.],并将处理结果存储在线性列表ms[.]中;利用线性列表ms[.]计算初始密钥,并利用所述初始密钥计算派生密钥,利用压缩函数对s[.]进行压缩得到SC,填充到MESSAGE字段;利用哈希函数处理SC,得到response_packet中的消息验证码HMACresponse,最后接收方创建响应数据包response_packet,并将该数据包发送给发送方;
5)发送方发送完所有随机数据包后,启动一个时长为T1+TW+2T2的计时器,在该计时器用尽之前,发送方尝试接收接收方发送的response_packet,如果收到response_packet,则提取response_packet中每个字段的内容,通过解压缩SC来获得s[.],进而获得m[.],发送方计算出初始密钥K0、派生密钥KD和对应的消息验证码HMACA;判断发送方计算的HMACA与response_packet中的HMA字段的值HMACresponse是否相同,若相同,则发送方正确获取初始密钥,否则,发送方向更高级别的协议报告协商异常;当T1+TW+2T2的计时器结束时,发送方启动一个2T3计时器,在第一个T3中,发送方使用派生的密钥计算response_packet的ACK,并创建一个MESSAGE的值设置为ACK的数据包acknowledge_Packet;
6)对于接收方,当2T2计时器结束时,启动2T3计时器;在2T3计时器结束之前,如果接收方接收到来自发送方的acknowledge_packet,则双方之间的通信密钥成功建立;
步骤1)中,发送方构造密钥协商请求包request_packet的具体实现过程包括:
a)发送方构建明文数据包PLAINTEXT,填充各个字段的值,并连接得到:PLAINTEXT=(PHASE||RETRAN||LEN||SEQ||MESSAGE);其中,PHASE为通信阶段的标志位;RETRAN为重传标志;LEN为通信数据的长度标志位;SEQ为序列的标志位;MESSAGE为通信数据;||表示连接;
b)利用最优非对称加密方案fOAEP()加工PLAINTEXT,得到填充后的结果RESULT:RESULT=fOAEP(PLAINTEXT,a);a为一次性随机数;
c)计算消息验证码HMAC:HMAC=sha256(RESULT);sha256()是哈希值计算函数;
d)利用下式拼接得到request_packet:request_packet=RESULT||HMAC;
步骤2)中,接收方提取出请求包request_packet的过程包括:
A.接收方根据字节数提取request_packet中的结果值RESULTr和消息验证码HMACr;
B.接收方将RESULTr作为OAEP解决方案处理函数的参数计算得到PLAINTEXTr,为OAEP方案的逆操作;
C.利用RESULTr计算得出HMACr:HMACr=sha256(RESULTr);sha256()是哈希值计算函数;
D.将计算得到的HMAC′r与从接收到的request_packet中提取的HMAC进行比较,若相同,则接收方已完全正确接收到数据包中携带的信息;反之,数据包可能遭到破坏或伪造,向高层协议报告发生攻击异常,停止协商。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南大学,未经湖南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010013485.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于端到端模型的代码可信执行方法
- 下一篇:一种网络图片查看方法