[0048] 以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
[0049] 本发明提供一种对称密钥生成方法,该方法包括:
[0050] 步骤1,第一装置和第二装置建立通信链路,且在信道的相干时间内所述第一装置和所述第二装置分别对信道进行测量,所述第一装置得到第一接收信号强度值,所述第二装置得到第二接收信号强度值;
[0051] 步骤2,所述第一装置通过归一化量化将第一接收信号强度值转换成一串量化的第一比特串SA,并对第一比特串SA按照相等的长度划分为第一比特串组ΦA={Q1,Q2,...,Qn};所述第二装置通过归一化量化将第二接收信号强度值转换成一串量化的第二比特串SB,并对第二比特串SB按照相等的长度划分为第二比特串组ΦB={P1,P2,...,Pn};
[0052] 步骤3,所述第一装置根据第一比特串组ΦA={Q1,Q2,...,Qn}产生第一共享密钥,且通过隐藏第一共享密钥得到承诺分子TA',并通过散列第一共享密钥得到校验元素Gc,所述第一装置将承诺分子TA'和校验元素Gc发送至所述第二装置;
[0053] 步骤4,所述第二装置根据第二比特串组ΦB={P1,P2,...,Pn}和承诺分子TA'生成第二共享密钥;
[0054] 步骤5,当所述第二共享密钥的散列值等于所述校验元素,则密钥协商成功;否则,判断密钥协商的次数与预设次数的大小,当所述密钥协商的次数大于或等于预设次数时,则密钥协商失败,当所述密钥协商的次数小于预设次数时,重复步骤4。
[0055] 以下将结合附图1、附图2和附图3对本发明进行进一步的说明,其中,用户Alice使用的为第一装置,用户Bob使用的为第二装置,第一装置和第二装置对本发明并不起到限制作用,是用户Alice和用户Bob的使用工具。
[0056] 本发明的密钥协商方法是基于无线信道短时互易特征和多项式插值的信息隐藏(门限密钥共享)方案提出来的,对本发明的理论基础概述如下
[0057] 1、在信道的相干时间内,其信道响应具有短时互易性。如图1所示,当Eve距离Alice和Bob的距离都大于信道响应相干距离d0时,其便不可能获得与合法用户Alice和相同的信道特征。
[0058] 2、在二维平面上,给定k个实数对(x1,y1),(x2,y2),....(xk,yk),有且只有一个k阶多项式f(x),对所有i∈{1,2,...k},满足yi=f(xi)。基于此原理,在(k,n)门限密钥共享方案中,通信双方只要能够获得隐藏密钥的多项式上k个实数对,即可通过插值法重构该多项式,获得共享密钥。
[0059] 在该种实施方式中,在步骤1中,所述第一装置和第二装置建立通信链路的方法包括:所述第一装置和第二装置通过周期性发送信息,当所述第一装置和第二装置在通信范围之内时,建立通信链路。在邻居节点间建立链接进行协商密钥,不考虑需要中继节点的通信。通过上述的方式可以让在第一装置和第二装置在通信范围之内的情况下建立通信链路,实现通信连接。
[0060] 在该种实施方式中,在步骤1中,在信道的相干时间内所述第一装置和所述第二装置分别对信道进行测量的方法包括:在信道的相干时间内所述第一装置发送第一数据包给所述第二装置,所述第二装置接收第一数据包并测量接收到的第一数据包得到第一接收信号强度值;所述第二装置发送第二数据包给所述第一装置,所述第一装置接收第二数据包并测量接收到的第二数据包得到第二接收信号强度值。其中,相干时间的定义如下:信道保持恒定的最大时间差范围。
[0061] 在该种实施方式中,在步骤2中,所述第一装置通过归一化量化将第一接收信号强度值转换成一串量化的第一比特串SA的方法包括:所述第一装置对所述第一接收信号强度值进行归一化量化得到多个量化值,并将每一个所述量化值所转换的比特串首尾相连接形成第一比特串SA;以及所述第二装置通过归一化量化将第二接收信号强度值转换成一串量化的第二比特串SB的方法包括:所述第二装置对所述第二接收信号强度值进行归一化量化得到多个量化值,并将每一个所述量化值所转换的比特串首尾相连接形成第二比特串SB。
[0062] 在上述的实施方式中,在步骤2中,所述归一化量化的方法包括:
[0063] 其中,
[0064] V为第一接收信号强度值,RSSmax为最大第一接收信号强度值,q为量化等级,α为0到1之间的常数。
[0065] 采用最大值归一化量化方法,用于减少由于通信系统的半双工性、非对称性的硬件以及噪声等因素引起的RSS值的不一致性,引入修正因子α∈(0,1)以避免RSS取最大值时量化为全“1”比特串。由于Alice和Bob生成的密钥源中的元素不完全一样。
[0066] 在该种实施方式中,在步骤3中,所述第一装置根据第一比特串组ΦA={Q1,Q2,...,Qn}产生第一共享密钥,且通过隐藏第一共享密钥得到承诺分子,并通过散列第一共享密钥得到校验元素,所述第一装置将承诺分子和校验元素发送至所述第二装置的方法包括:
[0067] 所述第一装置随机生成以下m阶第一多项式,其中,m<n:
[0068] f(x)=cm-1xm-1+cm-2xm-2+...+c1x+c0,其中,所述第一装置将所述第一多项式的系数为第一共享密钥;
[0069] 所述第一装置将第一比特串组ΦA={Q1,Q2,...,Qn}中的元素值代入所述第一多项式,设Yi=f(Qi),i∈{1,2,...,n},得到第一集合TA={(Q1,Y1),(Q2,Y2),...,(Qn,Yn)};
[0070] 所述第一装置将第一集合TA={(Q1,Y1),(Q2,Y2),...,(Qn,Yn)}中每个元素的第一个值去除得到第二集合TA'={Y1,Y2,...,Yn},所述第二集合TA'={Y1,Y2,...,Yn}为承诺分子TA';
[0071] 并通过散列第一共享密钥得到校验元素;
[0072] 所述第一装置将将承诺分子TA'和校验元素Gc一起构成承诺ZA=TA'∪Gc发送给所述第二装置。
[0073] 通过上述的实施方式Alice(即第一装置)生成的多项式阶数m需满足m<n以构成冗余,便于在密钥协商不成功的情况下,Bob(第二装置)可以重新选择元素生成共享密钥。
[0074] 在该种实施方式中,其特征在于,在步骤4中,所述第二装置根据第二比特串组ΦB={P1,P2,...,Pn}和承诺分子TA'生成第二共享密钥的方法包括:
[0075] 所述第二装置根据所述第二比特串组ΦB={P1,P2,...,Pn}中的元素值和所述承诺分子TA'形成第三集合HA={(P1,Y1),(P2,Y2),...,(Pn,Yn)};
[0076] 在所述第三集合中选择m个元素,根据拉格朗日插值公式生成第二多项式f'(x)=c'm-1xm-1+c'm-2xm-2+...+c'1x+c0;
[0077] 所述第二装置将多项式的系数作为第二共享密钥。
[0078] 假设Bob在集合HA中选择的m个元素,采用拉格朗日插值公式重构第二多项式。
[0079] 在该种实施方式中,在步骤1中,所述相干时间通过如下公式计算得到:
[0080] τ=1/(4Ds);
[0081] 其中,Ds为多普勒频移。
[0082] 在该种实施方式中,在步骤1中,所述第一比特串组ΦA={Q1,Q2,...,Qn}中的比特串长度l=|Qi|与所述量化等级之间不能互相整除。其中,Alice第一装置和Bob第二装置所采用的样本数为p,则得到的量化比特串长度为p×q,假设新比特串组中每个比特串的长度为l=|Qi|,则密钥源ΦA和ΦB中元素个数 为了减少密钥源中元素的重复率,l取值应满足:l与q不能相互整除。
[0083] 本发明还提供一种对称密钥生成方法的应用,所述对称密钥生成方法应用于慢衰落信道中。
[0084] 对本发明的密钥安全性、密钥速率和密钥熵的分析如下:
[0085] 设多项式系数(比特串)的长度为t,则密钥长度k=|key|=m×t。在步骤⑥中,由于Alice只发送了多项式的函数值,没有泄露任何关于量化值的信息。对于窃听者而言,重构多项式需要穷尽搜索的次数为:2l×m。由此,本发明的密钥协商方案的安全等级为s=min{m×t,m×l}。一般情况下,多项式系数的长度取值满足m×t≥m×l。这样,本密钥协商方案的安全等级表示为s=m×l。
[0086] 在传统的基于信息调和的密钥协商方法中,针对慢衰落信道,由于RSS值变化缓慢,集合TA中元素的重复率高。需要采用延长采样时间或增大采样间隔的方式提高密钥的安全等级,而这将大大降低密钥生成速率。本方案中采用比特串重组的方法,将重复的比特串变换成不同的比特串,从而重复的采样点均可作为密钥源,提高了密钥生成速率。
[0087] 在传统的密钥协商方法中,密钥的熵取决于所提取RSS值的熵。而慢衰落信道中,RSS值的随机性较低,为了提高密钥的熵需要舍弃一些重复出现的采样值,使得密钥生成速率降低。本发明的密钥协商方法,其密钥的熵取决于多项式的系数随机性,Alice可以随机地产生一组比特串作为多项式的系数。因此,本方案生成的密钥具有很高的熵,且不会影响密钥生成速率。
[0088] 在下述具体实施方式中,Alice表示第一装置,Bob表示第二装置;下述为最优选的实施方式:
[0089] 通信建立:Alice和Bob通过周期性发送信息,发现对方在自己的通信范围内,建立通信链路。
[0090] 信道测量:Alice发送数据包给Bob,Bob接收信号并测量接收到的RSS值;同时,在信道的相干时间内,Bob发送数据包给Alice,Alice接收信号并测量RSS值。
[0091] 归一化量化:Alice和Bob对所接收到的RSS值进行归一化量化,即RSS值为V时的量化值 其中q为量化等级,双方将每一个量化值转换比特串,所有的比特串首尾相连形成更长的比特串,设Alice量化后的比特串为SA,Bob量化后的比特串为SB,设采样点个数为p,则量化比特串长度为L=|SA|=|SB|=p×q。
[0092] 比特串重组:Alice和Bob分别将SA和SB按照长度l划分为新的比特串组,设所得的比特串组组成的集合分别为ΦA={Q1,Q2,...,Qn}和ΦB={P1,P2,...,Pn},如图3所示,将长度为L=52(q=4)的比特串划分为n=17个长度为l=3的新比特串组,将ΦA和ΦB作为密钥源。
[0093] 设置密钥:Alice随机生成m(m<n)阶多项式f(x)=cm-1xm-1+cm-2xm-2+...+c1x+c0,多项式系数比特串的长度t满足t≥l。Alice将多项式的系数作为共享密钥,即key=cm-1|cm-2|...|c1|c0。Alice将ΦA中的元素值代人第一多项式,设Yi=f(Qi),i∈{1,2,...,n},形成集合TA={(Q1,Y1),(Q2,Y2),...,(Qn,Yn)}。Alice将TA中每个元素的第一个值去掉,即形成集合TA'={Y1,Y2,...,Y2}作为承诺分子,并隐藏了密钥。Alice选取hash函数SHA-1(此函数为已知函数),求出密钥的hash值Gc=hash(key),作为校验元素,将承诺分子TA'与校验元素Gc一起构成承诺ZA=TA'∪Gc发送给Bob。
[0094] 生成共享密钥:Bob根据ΦB中元素值形成集合HA={(P1,Y1),(P2,Y2),...,(Pn,Yn)},在集合HA中选择m个元素,根据拉格朗日插值公式 生成多项式f'(x)=c'm-1xm-1+c'm-2xm-2+...+c'1x+c0其中, Bob生成密钥key'=c'm-1|c'm-2|...|c'1|c0',其中的竖线表示比特串的连接。
[0095] 校验密钥:Bob采用hash函数SHA-1计算所生成密钥的hash值,如果Gc=hash(key'),则密钥协商成功;如果Gc≠hash(key'),Bob在集合HA中重新选择m个元素,重新生成多项式,按照步骤生成共享密钥中的方法生成共享密钥。
[0096] 密钥协商结束:如果校验密钥中密钥协商的次数达到w(即预设次数)次没有成功,则宣告密钥协商失败。
[0097] 以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
[0098] 另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
[0099] 此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。