[发明专利]一种基于物理层信道特征的轻量级动态安全加密方法有效
申请号: | 201811152678.6 | 申请日: | 2018-09-29 |
公开(公告)号: | CN109347628B | 公开(公告)日: | 2019-07-26 |
发明(设计)人: | 韩彪;刘彬;王宝生;彭伟;赵宝康;赵锋;刘松;郭敏;兰唯 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | H04L9/08 | 分类号: | H04L9/08;H04L9/06 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 陈晖 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于物理层信道特征的轻量级动态安全加密方法,目的是提高物联网节点通信的安全性。技术方案是构建由发送方和接收方组成的基于物理层信道特征的轻量级动态安全加密架构,发送方和接收方均安装有信道测量模块、量化模块、密钥协商模块、加密模块和数据处理模块。信道测量模块生成信道参数序列;量化模块对信道参数序列进行量化,得到原始密钥序列;密钥协商模块对原始密钥序列进行一致性的密钥协商,生成一致性安全密钥;加密模块使用一致性安全密钥对数据处理模块获得的明文进行加密通信。采用本发明可解决物联网设备通信加密时的复杂性、难度大、泄密风险大等问题,有效提高物联网节点通信的安全性。 | ||
搜索关键词: | 物理层信道 动态安全 加密 密钥协商模块 数据处理模块 信道参数序列 物联网节点 安全密钥 加密模块 量化模块 信道测量 原始密钥 发送方 接收方 物联网设备 加密通信 密钥协商 通信加密 泄密 构建 明文 通信 架构 量化 | ||
【主权项】:
1.一种基于物理层信道特征的轻量级动态安全加密方法,其特征在于包括以下步骤:第一步,构建基于物理层信道特征的轻量级动态安全加密架构,基于物理层信道特征的轻量级动态安全加密架构由发送方和接收方组成,发送方和接收方通过数据包的传递,协商获得通信密钥;发送方和接收方均安装有信道测量模块、量化模块、密钥协商模块、加密模块和数据处理模块;发送方的信道测量模块与接收方的信道测量模块、发送方的量化模块相连,该模块向接收方的信道测量模块发送探测数据包,从接收方的信道测量模块接收响应数据包,通过解析响应数据包获得发送方的信道参数序列,向发送方的量化模块发送发送方的信道参数序列;接收方的信道测量模块与发送方的信道测量模块、接收方的量化模块相连;该模块从发送方的信道测量模块接收探测数据包,向发送方的信道测量模块发送响应数据包;该模块通过解析探测数据包获得接收方的信道参数序列,并向接收方的量化模块发送接收方的信道参数序列;发送方的量化模块与接收方的量化模块、发送方的信道测量模块、密钥协商模块相连,该模块从发送方的信道测量模块接收发送方的信道参数序列,将发送方的信道参数序列量化为0、1比特形式的第一原始密钥序列,将第一原始密钥序列发送给发送方的密钥协商模块;发送方的量化模块将第一原始密钥序列经过筛选后得到的第一中心位置索引序列L,将L发送给接收方的量化模块,并从接收方的量化模块接收第二中心位置索引序列L’;接收方的量化模块与发送方的量化模块、接收方的信道测量模块、密钥协商模块相连;该模块从接收方的信道测量模块接收接收方的信道参数序列,将接收方的信道参数序列量化为0、1比特形式的第二原始密钥序列,将第二原始密钥序列发送给接收方的密钥协商模块。接收方的量化模块从发送方的量化模块接收L,通过对L筛选得到符合接收方信道参数序列特征的第二中心位置索引序列L’,并将L’发送给发送方的量化模块;发送方的密钥协商模块与接收方的密钥协商模块、发送方的量化模块、加密模块相连,该模块从发送方的量化模块接收第一原始密钥序列,消除第一原始密钥序列中的不一致比特,生成第一一致性安全密钥,将第一一致性安全密钥发送给发送方的加密模块;发送方的密钥协商模块将第一原始密钥序列进行分组,将每个分组的异或结果发送给接收方的密钥协商模块;接收方的密钥协商模块与发送方的密钥协商模块、接收方的量化模块、加密模块相连,该模块从接收方的量化模块接收第二原始密钥序列,消除第二原始密钥序列中的不一致比特,生成第二一致性安全密钥,将第二一致性密钥发送给接收方的加密模块;接收方的密钥协商模块将第二原始密钥序列进行分组后计算分组的异或结果,与从发送方接收到的第一原始密钥序列每个分组的异或结果进行对比,根据对比结果进行纠错;发送方的数据处理模块与发送方的加密模块相连,该模块从输入设备或传感器获得明文,将明文发送给发送方的加密模块;发送方的加密模块与发送方的密钥协商模块、发送方的数据处理模块、接收方的加密模块相连,该模块从发送方的密钥协商模块接收第一一致性安全密钥;从发送方的数据处理模块接收明文;发送方的加密模块使用第一一致性安全密钥将明文加密获得密文,将密文发送给接收方的加密模块;接收方的加密模块与接收方的密钥协商模块、接收方的数据处理模块、发送方的加密模块相连,该模块从接收方的密钥协商模块接收第二一致性安全密钥;从发送方的加密模块接收密文;接收方的加密模块采用第二一致性安全密钥将密文进行解密得到明文,将明文发送给接收方的数据处理模块;接收方的数据处理模块与接收方的加密模块相连,该模块从接收方的加密模块接收明文;第二步,信道测量模块生成信道参数序列,方法是:2.1 发送方的信道测量模块和接收方的信道测量模块同时进行初始化工作,发送方信道测量模块按2.1.1进行,接收方的信道测量模块按2.1.2进行:2.1.1 发送方的信道测量模块将发送信道参数序列ha初始化为空队列,ha长度为NR,NR为信道参数序列长度,为正整数,令ha的第nA项表示为ha[nA],0<nA≤NR;初始化nA=1;2.1.2 接收方的信道测量模块将接收信道参数序列hb初始化为空队列,hb长度也为NR,令hb的第nB项表示为hb[nB],0<nB≤NR;初始化nB=1;2.2 发送方的信道测量模块向接收方的信道测量模块发送探测数据包;所述探测数据包包括数据包头部、帧体,数据包头部包括帧类型、帧控制、目的地址、源地址、AP的MAC地址、分片号、序列号,帧体包括时间戳、重传间隔、容量信息、服务集标识;2.3 接收方的信道测量模块从发送方的信道测量模块接收探测数据包,接收方的信道测量模块在收到探测数据包时,接收方信道测量模块通过网卡在探测数据包头部附加Radiotap Header,即无线信号信息,Radiotap Header包括时间戳、传输速率、信号强度、信道频率,然后接收方的信道测量模块将Radiotap Header中的信号强度字段存储到信道参数hb[nB]中;2.4 接收方的信道测量模块向发送方的信道测量模块发送响应数据包,响应数据包与探测数据包的格式一致,但源地址和目的地址与探测数据包的相反,即源地址是探测数据包的目的地址,目的地址是探测数据包的源地址;2.5 发送方的信道测量模块从接收方的信道测量模块接收响应数据包,并将响应数据包中的信号强度字段存储到信道参数ha[nA]中;2.6 若nA<NR,令nA=nA+1,nB=nB+1,转步骤2.2;若nA=NR,转第三步;第三步,量化模块采用自适应多比特算法对信道参数序列进行量化,得到原始密钥序列,具体方法为:3.1.发送方的量化模块解析ha,通过量化长度m、量化阈值qA+和qA‑对ha进行筛选,得到第一中心位置索引序列L;其中m为正整数,2≤m≤NR,qA+=meanA+α·σA,qA‑=meanA‑α·σA,meanA是ha中所有元素的平均值,α是自定义参数,取值范围0<α<1,σA是ha中所有元素的标准差;筛选的具体流程为:3.1.1 发送方的量化模块初始化开始循环变量istart和结束循环变量iend为1,初始化L为空队列,令L长度为NL,NL为正整数,令L的第jA项表示为L[jA],0<jA≤NL;初始化jA=1;3.1.2 若NR‑iend<m,说明ha遍历结束,转3.2;若NR‑iend>m,根据ha[iend]的情况进行判定:若ha[iend]>qA+,说明ha[iend]符合筛选条件,iend=iend+1,转3.1.3;若qA‑≤ha[iend]≤qA+,说明ha[iend]不符合筛选条件,转3.1.4;若ha[iend]<qA‑,说明ha[iend]符合筛选条件,iend=iend+1,转3.1.5;3.1.3 若iend‑istart=m,说明在ha中istart到iend范围内的连续m个值都大于量化阈值qA+,满足筛选条件,将istart和iend中值
保存到L[jA]中,令jA=jA+1,转3.1.4;若iend‑istart<m并且ha[iend]>qA+,说明ha[iend]符合筛选条件,令iend=iend+1,转3.1.3;若iend‑istart<m且ha[iend]≤qA+,说明ha[iend]不符合筛选条件,转3.1.4;3.1.4令iend=iend+1,istart=iend,转3.1.2;3.1.5 如果iend‑istart=m,说明在ha中istart到iend范围内的连续m个值都小于量化阈值qA‑,满足筛选条件,转3.1.6,将istart和iend中值
保存到L[jA]中,令jA=jA+1,转3.1.4;若iend‑istart<m并且ha[iend]<qA‑,说明ha[iend]符合筛选条件,令iend=iend+1,转3.1.5;如果iend‑istart<m并且ha[iend]≥qA‑,说明ha[iend]不符合筛选条件,转3.1.4;3.2.发送方的量化模块将L发送给接收方的量化模块;3.3.接收方的量化模块解析hb,通过m、qB+和qB‑对L进行筛选,得到符合hb特征的第二中心位置索引序列L’,qB+=meanB+α·σB,qB‑=meanB‑α·σB,meanB是hb的平均值,σB是hb的标准差,筛选方法为:3.3.1 接收方的量化模块初始化L的位置序号jB1为1,初始化L’为空队列,L′长度为NL′,NL′为正整数,令L′的第jB2项表示为L′[jB2],0<jB2≤NL′;初始化jB2=1;3.3.2 令序列开始变量
令序列结束变量![]()
![]()
表示对x下取整,x为实数;如果hb[lbegin]>qB+,说明hb[lbegin] 满足筛选条件,转3.3.3;如果qB‑≤hb[lbegin]≤qB+,说明hb[lbegin]不满足筛选条件,转3.3.7;如果hb[lbegin]<qB‑,说明hb[lbegin]满足筛选条件,转3.3.5;3.3.3 如果lbegin=lend,说明L[jB1]可以保留,转3.3.8;如果lbegin≠lend,令lbegin=lbegin+1,转3.3.4;3.3.4 如果hb[lbegin]>qB+,转3.3.3;如果hb[lbegin]≤qB+,说明L[jB1]不满足筛选条件,转3.3.7;3.3.5 如果lbegin=lend,说明L[jB1]可以保留,转3.3.8;如果lbegin≠lend,令lbegin=lbegin+1,转3.3.6;3.3.6 如果hb[lbegin]<qB‑,转3.3.5;如果hb[lbegin]≥qB‑,说明L[jB1]不满足筛选条件,转3.3.7;3.3.7 如果jB1=NL,说明L遍历结束,得到L′,转3.4;如果jB1≠NL,令jB1=jB1+1,转3.3.2;3.3.8 令L’[jB2]=L[jB1],jB2=jB2+1,转3.3.7;3.4 接收方的量化模块根据L′对hb进行量化,生成第二原始密钥序列KB;3.5 接收方的量化模块将L’发送给发送方的量化模块;3.6 发送方的量化模块根据L’对ha进行量化,生成第一原始密钥序列KA;3.7 发送方的量化模块将KA发送给发送方的密钥协商模块,同时接收方的量化模块将KB发送给接收方的密钥协商模块;第四步,发送方和接收方的密钥协商模块对KA和KB进行一致性的密钥协商,生成一致性安全密钥,具体方法是:4.1 发送方的密钥协商模块对KA进行分组,分组长度为k1,k1为正整数,分组数V为![]()
表示对x上取整,初始化分组号循环变量vA=1;同时接收方的密钥协商模块对KB进行分组,分组长度也为k1,分组数同样为V,初始化分组号循环变量vB=1;4.2 如果vA>V,转4.5;如果vA≤V,发送方的密钥协商模块计算序号为vA的分组的组内元素异或结果![]()
同时接收方的密钥协商模块计算序号为vB的分组的组内元素异或结果
4.3 发送方的密钥协商模块将vA1发送给接收方的密钥协商模块;4.4 接收方的密钥协商模块判断vA1是否等于vB1,如果vA1=vB1,令vA=vA+1,vB=vB+1,转4.2;如果vA1≠vB1,采用二分纠错方法对KB的分组长度为k1的第vB个分组进行纠错,方法为:4.4.1.接收方的密钥协商模块采用序列B存储方法将KB的序号为vB的分组以二进制密钥序列B的形式进行存储,B={B1,B2,…Bn1…BN},Bn1表示一位二进制密钥,n1为序列B中元素的序号,为正整数,1≤n1≤N,N指序列B中元素的个数,当NL′%k1=0时,N=k1,当NL′%k1≠0时,N=NL′%k1;4.4.2 发送方的密钥协商模块采用序列A存储方法将KA的序号为vA的分组以二进制密钥序列A的形式进行存储,A={A1,A2,…An2…AN},An2表示一位二进制密钥,n2为序列A中元素的序号,为正整数,1≤n2≤N;4.4.3 接收方的密钥协商模块初始化二分纠错第一变量low=1,二分纠错第二变量high=N;4.4.4 如果low=high,转4.4.7;如果low<high,接收方的密钥协商模块计算分组内异或结果
并将low和high发送给发送方的密钥协商模块;4.4.5 发送方的密钥协商模块计算分组内异或结果
将XORA发送给接收方的密钥协商模块;4.4.6 接收方的密钥协商模块判断XORA和XORB是否相等,如果XORA=XORB,令
转4.4.4;如果XORA≠XORB,令
转4.4.4;4.4.7 把KB[vA×k1+low]进行0,1取反操作即将0,1互换,令vA=vA+1,vB=vB+1,转4.2;4.5 接收方的密钥协商模块设置纠错的总轮数为n,n为大于1的整数,初始化纠错进行的轮数标志i=2,初始化纠错分组集合Φi为空,纠错分组集合内位置标志Bφi为0;4.6 接收方的密钥协商模块使用随机排序函数y=fi(x)将KB进行重新排序,KB排序后记为KBi,即KBi=fi(KB);同时发送方的密钥协商模块使用随机排序函数y=fi(x)将KA进行重新排序,KA排序后记为KAi,即KAi=fi(KA);4.7 发送方的密钥协商模块对KAi行分组,分组长度为ki,ki=2ki‑1,分组数V为
令分组号循环变量vA=1;同时接收方的密钥协商模块对原始密钥序列KBi进行分组,分组长度为ki,分组数为V;令分组号循环变量vB=1;4.8 如果vA>V,转4.11;如果vA≤V,发送方的密钥协商模块计算分组vA的组内元素异或结果
同时接收方的密钥协商模块计算分组vB的组内元素异或结果![]()
转4.9;4.9 发送方的密钥协商模块将vAi发送给接收方的密钥协商模块;4.10 接收方的密钥协商模块判断vAi是否等于vBi,如果vAi=vBi,令vA=vA+1,vB=vB+1,转4.8;如果vAi≠vBi,采用二分纠错方法对KBi的分组长度为ki的第vB个分组进行纠错,并将纠错位置添加到回溯纠错序列,方法为:4.10.1.接收方的密钥协商模块采用序列B存储方法将KBi的序号为vB的分组以二进制密钥序列B的形式存储,得到B={B1,B2,…Bn1…Bn};4.10.2 发送方的密钥协商模块采用序列A存储方法将KAi的序号为vA的分组以二进制密钥序列A的形式存储,得到A={A1,A2,…An2…AN};4.10.3 接收方的密钥协商模块令low=1,high=N;4.10.4 如果low=high,转4.10.7;如果low<high,接收方的密钥协商模块计算
并将low和high发送给发送方的密钥协商模块;4.10.5 发送方的密钥协商模块计算
并将XORA发送给接收方的密钥协商模块;4.10.6 接收方的密钥协商模块判断XORA和XORB是否相等,如果XORA=XORB,令
转4.10.4;如果XORA≠XORB,令
转4.10.4;4.10.7 把KBi[vA×ki+low]进行取反操作,令Φi[Bφi]=vA×ki+low,令Bφi=Bφi+1,vA=vA+1,vB=vB+1,转4.8;4.11 如果i=n,转4.12;如果i<n,令i=i+1,转4.6;4.12 接收方的密钥协商模块初始化回溯循环变量iback=0;4.13 接收方的密钥协商模块判断i是否等于1,如果i=1,转4.15;如果i>1,令iback=0,使用随机排序函数y=fi(x)的逆函数x=fi‑1(y)将接收方第i轮密钥KBi恢复为第i‑1轮密钥KB(i‑1),同时发送方的密钥协商模块使用x=fi‑1(y)将发送方第i轮密钥KAi恢复为第i‑1轮密钥KA(i‑1)转4.14;4.14 接收方的密钥协商模块判断是否将Φi纠错完毕,如果iback>Bφi,令i=i‑1,转4.13;如果iback≤Bφi,记yi=fi‑1(Φi[iback]),yi是Φi[iback]在i‑1轮中的位置,令
令
采用二分纠错方法对KB(i‑1)的分组长度为ki‑1的第vB组进行纠错,并将纠错位置补充回溯纠错序列,方法为:4.14.1 接收方的密钥协商模块采用序列B存储方法将KBi的序号为vB的分组以二进制密钥序列B的形式存储,得到B={B1,B2,…Bn1…Bn};4.14.2 发送方的密钥协商模块采用序列A存储方法将KAi的序号为vA的分组以二进制密钥序列A的形式存储,得到A={A1,A2,…An2…AN};4.14.3 接收方的密钥协商模块设置low=1,设置high=N;4.14.4 如果low=high,转4.14.7;如果low<high,接收方的密钥协商模块计算
并将low和high发送给发送方的密钥协商模块;4.14.5 发送方的密钥协商模块计算
将XORA发送给接收方的密钥协商模块;4.14.6 接收方的密钥协商模块判断XORA和XORB是否相等,如果XORA=XORB,
转4.14.4;如果XORA≠XORB,
转4.14.4;4.14.7 把KBi[vA×ki+low]进行取反操作,令Φi[Bφi]=vA×ki+low,Bφi=Bφi+1,iback=iback+1,转4.14;4.15 接收方的密钥协商模块将KBi记为第二一致性安全密钥KB,将KB发送给接收方的加密模块;同时发送方的密钥协商模块将第一一致性安全密钥KA发送给发送方的加密模块;第五步,发送方和接收方的加密模块使用一致性安全密钥对数据处理模块获得的明文进行加密通信,具体方法是:5.1 发送方的数据处理模块从输入设备或传感器获得明文M,将明文M发送给发送方的加密模块;5.2 发送方的加密模块将明文M转换为二进制明文Mbin,读取Mbin的位数,将该位数命名记为Mlength。Mlength为正整数,令Mbin的第mA项表示为Mbin[mA],0<mA≤Mlength;初始化mA=1;初始化加密后的密文Cip为空队列,长度为NC;令Cip的第cA项表示为Cip[cA],0<cA≤NLA;初始化cA=1;令pA=1;5.3 发送方的加密模块对明文Mbin进行加密,方法为:5.3.1 发送方的加密模块比较Mlength和密钥长度NL′的大小,如果Mlength≤NL′,转5.3.2;如果Mlength>NL′,转5.3.3;5.3.2 如果mA=Mlength+1,转5.4;如果mA<Mlength+1,![]()
cA=cA+1,pA=pA+1,mA=mA+1,转5.3.2;5.3.3 如果mA=Mlength+1,转5.4;如果mA<Mlength+1,![]()
cA=cA+1,pA=pA+1,mA=mA+1,转5.3.4;5.3.4 如果pA=L′lengthA+1,pA=1,转5.3.3;5.4 发送方的加密模块将密文Cip发送给接收方的加密模块;5.5 接收方的加密模块读取密文Cip的位数,将Cip的位数记为Ciplength,令Cip的第cB项表示为Cip[cB],0<cB≤Ciplength,初始化cB=1;初始化解密后得到的二进制明文Mbin2为空,长度为Ciplength,令Mbin2的第mB项表示为Mbin2[mB],0<mB≤Ciplength,初始化mB=1,令pB=1;5.6 接收方的加密模块对密文Cip使用KB进行解密,得到二进制明文Mbin2,方法为:5.6.1 接收方的加密模块比较Ciplength和密钥长度NL′的大小,如果Ciplength≤NL′,转5.6.2;如果Ciplength>NL′,转5.6.3;5.6.2 如果cB=Ciplength+1,转5.7;如果cB<Ciplength+1,![]()
cB=cB+1,pB=pB+1,mB=mB+1,转5.6.2;5.6.3 如果cB=Ciplength+1,转5.7;如果cB<Ciplength+1,![]()
cB=cB+1,pB=pB+1,mB=mB+1,转5.6.4;5.6.4 如果pB=NL′+1,pB=1,转5.6.3;5.7 接收方的加密模块将Mbin2转为明文M,将明文发送给接收方的数据处理模块;5.8 接收方的数据处理模块从接收方的加密模块接收明文,通信结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201811152678.6/,转载请声明来源钻瓜专利网。