基于物理信道信息的D2D通信双向认证方法
技术领域
本发明涉及一种基于物理信道信息的D2D通信双向认证方法。
背景技术
无线移动用户和数据的***性增长给蜂窝网络***容量带来了巨大挑战。终端直通(Device-to-Device,D2D)通信技术通过提高空间利用率从而提高频谱利用率,在某些场景下使移动通信变得更加直接和高效,不仅缓解了基站的压力,降低了端到端的传输时延,还增加了比特速率,减少了移动终端的电池功耗,大大提高了用户体验。
但由于无线通信***的开放性和D2D通信***本身的特点,***中用户可能成为恶意用户攻击的目标,例如窃听数据、散布错误信息或者侵犯隐私,同时,D2D通信***本身也可能受到搭便车攻击和非授权用户进入等安全攻击而降低***可靠性;因此,安全性成为D2D技术走向实际应用必需的特性之一。
现有的基于加密技术的数据安全传输协议和身份认证机制主要应用于D2D通信***网络层之上,没有充分利用无线信道唯一性、保密性和互易性等特性,没有充分发掘物理层丰富的资源;由于D2D通信的双方距离较近,其信道对称性和互易性较好,可以充分利用这一特性进行物理层认证;近年来,物理层认证技术与上层认证技术相互结合,以极大地增强整个***的安全性能,已经逐步成为研究的热点;但目前的初始认证仍然采用的是上层认证技术,例如PKI、CBC-MAC等,计算复杂度高,对于终端设备来说,这仍然是无法承受的;所以,核心网依然承担着初始认证的重担;另外,D2D通信在建立用户身份认证机制的同时,还需要保护用户隐私,填补信息包认证的空缺。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于物理信道信息的D2D通信双向认证方法,克服了D2D通信中的初始认证复杂度高和缺乏信息包认证的技术缺陷,利用轻重量的物理层认证技术,降低认证方法的复杂度和延时,提高认证的精确度。
本发明的目的是通过以下技术方案来实现的:基于物理信道信息的D2D通信双向认证方法,包括以下步骤:
S1.预先为进行D2D通信的终端A和终端B设置共享密钥K(k);
S2.终端A向终端B提出通信请求;
S3.终端B向终端A发送一个随机的认证序列s1(t);
S4.认证序列s1(t)通过信道后变换为序列r1(n),终端A接收到序列r1(n)后,利用预先共享的密钥K(k),对序列r1(n)进行处理,得到认证响应序列s'1(t),将其发送给终端B;
S5.认证响应序列s'1(t)通过信道后变换为序列r1′(n),终端B接收到序列r1′(n)后,解出密钥估计值并将密钥估计值与预先共享的密钥K(k)进行比较,判断认证响应序列s'1(t)是否合法:
(1)如果认证响应序列s'1(t)合法,则认为该信息来自终端A,提取初始信道信息H0(k),并发送认证确认信息给终端A;
(2)如果认证响应序列s'1(t)不合法,则认为该信息来自伪终端,丢弃该链路;
S6.终端A收到认证确认信息后,生成一个认证随机序列s2(t),发送给终端B;
S7.认证序列s2(t)通过信道后变换为认证序列r2(n),终端B接收到认证序列r2(n)后,利用预先共享的密钥K(k),对认证序列r2(n)进行处理,得到一个认证响应序列s'2(t),将其发送给终端A;
S8.认证响应序列s'2(t)过信道后变换为序列r'2(n),终端A接收到序列r'2(n)后,解出密钥估计值将该密钥估计值与预先共享的密钥K(k)进行比较,判断认证响应序列s'2(t)是否合法:
(1)如果认证响应序列s'2(t)合法,则判断该信息来自终端B,提取初始信道信息H'0(k),并开始向终端B互发数据信息;
(2)如果认证响应序列s'2(t)不合法,则判断该信息来自伪终端,丢弃该链路;
S9.终端A或终端B接收到数据时,从每一次的接收数据中提取信道信息Hi(k),与上一时刻的信道信息进行比较,判断信道信息是否合法:
(1)若信道信息合法,则解调信息包;
(2)若信道信息不合法,则丢弃信息包,返回步骤S2。
进一步地,步骤S1~S8是对信道进行初始认证,步骤S9是对信息包进行基于物理信道信息的信息包认证。
所述的步骤S2中终端A向终端B发送通信请求信息包括终端A的身份信息、终端B的身份信息和D2D通信请求。
所述的步骤S3包括:终端B收到终端A的请求信息后,判断是否同意与终端A进行D2D通信:
(1)如果终端B同意与终端A进行D2D通信,则生成一个随机序列,为了避免多径时延的影响,在随机序列前加入循环前缀,得到随机的认证序列s1(t),将认证序列s1(t)向终端A发送,并跳转至步骤S4;
(2)如果终端B不同意与终端A进行D2D通信,则不对终端A的请求信号进行回应。
所述的步骤S4包括以下子步骤:
S41.认证序列s1(t)在通过信道后变换为序列r1(n),r1(n)=h(t)*s1(t),h(t)表示信道矩阵;
S42.终端A接收到序列r1(n)后,使用傅里叶变换将r1(n)变换到频域,得到R1(k):
R1(k)=FT(r1(n))=FT(h(t)*s1(t))=H(k)S1(k),
式中,FT()运算代表傅里叶变换运算,H(k)为信道矩阵h(t)的频域表示,S1(k)为认证序列s1(t)的频域表示;
S43.为了平衡信道,将R1(k)的倒数与预先共享密钥K(k)相乘,得到频域表示的认证响应序列S'1(k):
S44.利用傅里叶逆变换,将S'1(k)变回时域的s'1(t),将认证响应序列s'1(t)与导频一起发送给终端B。
所述的步骤S5包括以下子步骤:
S51.认证响应序列s'1(t)过信道后变换为序列r'1(n),r'1(n)=h(t)*s'1(t);
S52.终端B接收到序列r1′(n)后,将序列r'1(n)通过傅里叶变换到频域R'1(k);
S53.将终端B本地随机生成的认证序列s1(t)变换到频域S1(k),并将S1(k)于R'1(k)相乘,得到密钥的估计值
S54.将与K(k)比较判断认证响应序列s'1(t)是否合法:
(1)如果与K(k)相等,则认证响应序列s'1(t)合法,认为对应信息来自终端A,从与认证响应序列s'1(t)一起接收到的导频中提取初始信道信息H0(k),并发送认证确认信息给终端A;
(2)如果与K(k)不相等,则认证响应序列s'1(t)不合法,认为对应信息来自伪终端,丢弃该链路。
所述的步骤S6包括以下子步骤:终端A收到终端B的认证确认信息后,生成一个随机序列,为了避免多径时延的影响,在随机序列前加入循环前缀,得到认证序列s2(t),将认证序列s2(t)向终端B发送。
所述的步骤S7包括以下子步骤:
S71.认证序列s2(t)在通过信道后变换为的序列r2(n),r2(n)=h(t)*s2(t);
S72.终端B接收到认证序列r2(n)后,使用傅里叶变换将r2(n)变换到频域:
FT(r2(n))=FT(h(t)*s2(t))=R2(k)=H(k)S2(k);
S2(k)为认证序列s2(t)的频域表示;
S73.为了平衡信道,将R2(k)的倒数与预先共享密钥K(k)相乘,得到频域表示的认证响应序列S'2(k):
S74.使用傅里叶逆变换,将S'2(k)变回时域的s'2(t),与导频一起发送给终端A。
所述的步骤S8包括以下子步骤:
S81.认证响应序列s'2(t)过信道后变换为序列r'2(n),r'2(n)=h(t)*s'2(t);
S82.终端A接收到序列r'2(n)后,将序列r'2(n)通过傅里叶变换到频域R'2(k);
S83.将终端A本地随机生成的认证序列s2(t)变换到频域S2(k),并将S2(k)于R'2(k)相乘,得到密钥的估计值
S84.将与K(k)比较判断认证响应序列s'2(t)是否合法:
(1)如果与K(k)相等,则认证响应序列s'2(t)合法,认为对应信息来自终端B,从与认证响应序列s'2(t)一起接收到的导频中提取初始信道信息H'0(k),并开始与终端B之间互发数据,每一帧中包含用于提取信道信息的导频;
(2)如果与K(k)不相等,则认证响应序列s'1(t)不合法,认为对应信息来自伪终端,丢弃该链路。
所述的步骤S9包括以下子步骤:
S91.终端A或终端B接收到数据时,从每一次的接收数据的导频中提取信道信息Hi(k),并计算归一化信道信息差值Λi:
式中,Kco为归一化系数,i=1,2,3…m;m接收数据的次数;
S92.设定判决门限δ,并判断Λi与δ的大小关系:
(1)Λi大于门限值δ时,信息包来自伪终端,认证不通过,丢弃信息包,返回步骤S2;
(2)Λi不大于门限值δ时,信息包来自合法终端,认证通过,解调信息包。
特别地,终端A第一次接收数据时,将导频中提取的信道信息与步骤S84中得到的初始信道信息H'0(k)按照步骤S91~S92进行判断。
终端B第一次接收数据时,将导频中提取的信道信息与步骤S54中得到的初始信道信息H0(k)按照步骤S91~S92进行判断。
进一步地,步骤S9中对信息包的验证分为两种情况:
终端A接收数据时,验证步骤为:
S001.终端B向终端A发送数据信息,数据信息中含有用于提取信道信息的导频;
S002.终端A接收来自终端B的数据信息,并从数据信息的导频中提取出信道信息;
S003.按照步骤S91~92来判断信道信息是否合法:如果合法,则解调信息包,跳转至步骤S001进行下一次的信息接收和信道验证;如果不合法,则丢弃链路,返回步骤S2。
终端B接收数据时,验证步骤为:
S001.终端A向终端B发送数据信息,数据信息中含有用于提取信道信息的导频;
S002.终端B接收来自终端A的数据信息,并从数据信息的导频中提取出信道信息;
S003.按照步骤S91~92来判断信道信息是否合法:如果合法,则解调信息包,跳转至步骤S001进行下一次的信息接收和信道验证;如果不合法,则丢弃链路,返回步骤S2。
本发明的有益效果是:(1)在D2D通信中实现了基于物理信道信息的双向认证,避免了中间人攻击。
(2)在初始认证中,只需要存储一个通信密钥,就可以进行基于物理信道信息的初始认证,不再需要复杂的上层认证,使得初始认证的计算复杂度极大降低,将D2D通信的初始认证步骤下移到了终端,在认证中利用信道估计信息,降低了初始认证的复杂度、减少了认证时延。
(3)初始认证之后,D2D通信双方对每一次接收到的信息包都进行了基于物理信道的信息认证,弥补了D2D通信中信息包认证的缺失,保护了用户的隐私,防止了攻击者对信息包的恶意篡改等攻击。
附图说明
图1为本发明的流程图;
图2为数据通信过程中终端A对接收的信息包进行认证的流程图;
图3为数据通信过程中终端B对接收的信息包进行认证的流程图;
图4为终端A和终端B之间传输的数据信息的TDD帧结构示意图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
如图1所示,基于物理信道信息的D2D通信双向认证方法,包括以下步骤:
S1.预先为进行D2D通信的终端A和终端B设置共享密钥K(k);
S2.终端A向终端B提出通信请求;
S3.终端B向终端A发送一个随机的认证序列s1(t);
S4.认证序列s1(t)通过信道后变换为序列r1(n),终端A接收到序列r1(n)后,利用预先共享的密钥K(k),对序列r1(n)进行处理,得到认证响应序列s'1(t),将其发送给终端B;
S5.认证响应序列s'1(t)通过信道后变换为序列r1′(n),终端B接收到序列r1′(n)后,解出密钥估计值并将密钥估计值与预先共享的密钥K(k)进行比较,判断认证响应序列s'1(t)是否合法:
(1)如果认证响应序列s'1(t)合法,则认为该信息来自终端A,提取初始信道信息H0(k),并发送认证确认信息给终端A;
(2)如果认证响应序列s'1(t)不合法,则认为该信息来自伪终端,丢弃该链路;
S6.终端A收到认证确认信息后,生成一个认证随机序列s2(t),发送给终端B;
S7.认证序列s2(t)通过信道后变换为认证序列r2(n),终端B接收到认证序列r2(n)后,利用预先共享的密钥K(k),对认证序列r2(n)进行处理,得到一个认证响应序列s'2(t),将其发送给终端A;
S8.认证响应序列s'2(t)过信道后变换为序列r'2(n),终端A接收到序列r'2(n)后,解出密钥估计值将该密钥估计值与预先共享的密钥K(k)进行比较,判断认证响应序列s'2(t)是否合法法:
(1)如果认证响应序列s'2(t)合法,则判断该信息来自终端B,提取初始信道信息H'0(k),并开始向终端B互发数据信息;
(2)如果认证响应序列s'2(t)不合法,则判断该信息来自伪终端,丢弃该链路;
S9.终端A或终端B接收到数据时,从每一次的接收数据中提取信道信息Hi(k),与上一时刻的信道信息进行比较,判断信道信息是否合法:
(1)若信道信息合法,则解调信息包;
(2)若信道信息不合法,则丢弃信息包,返回步骤S2。
所述的步骤S2中终端A向终端B发送通信请求信息包括终端A的身份信息、终端B的身份信息和D2D通信请求。
所述的步骤S3包括:终端B收到终端A的请求信息后,判断是否同意与终端A进行D2D通信:
(1)如果终端B同意与终端A进行D2D通信,则生成一个随机序列,为了避免多径时延的影响,在随机序列前加入循环前缀,得到随机的认证序列s1(t),将认证序列s1(t)向终端A发送,并跳转至步骤S4;
(2)如果终端B不同意与终端A进行D2D通信,则不对终端A的请求信号进行回应。
所述的步骤S4包括以下子步骤:
S41.认证序列s1(t)在通过信道后变换为序列r1(n),r1(n)=h(t)*s1(t),h(t)表示信道矩阵;
S42.终端A接收到序列r1(n)后,使用傅里叶变换将r1(n)变换到频域,得到R1(k):
R1(k)=FT(r1(n))=FT(h(t)*s1(t))=R1(k)=H(k)S1(k),
式中,FT()运算代表傅里叶变换运算,H(k)为信道矩阵h(t)的频域表示,S1(k)为认证序列s1(t)的频域表示;
S43.为了平衡信道,将R1(k)的倒数与预先共享密钥K(k)相乘,得到频域表示的认证响应序列S'1(k):
S44.利用傅里叶逆变换,将S'1(k)变回时域的s'1(t),将认证响应序列s'1(t)与导频一起发送给终端B。
所述的步骤S5包括以下子步骤:
S51.认证响应序列s'1(t)过信道后变换为序列r'1(n),r'1(n)=h(t)*s'1(t);
S52.终端B接收到序列r1′(n)后,将序列r'1(n)通过傅里叶变换到频域R'1(k);
S53.将终端B本地随机生成的认证序列s1(t)变换到频域S1(k),并将S1(k)于R'1(k)相乘,得到密钥的估计值
S54.将与K(k)比较判断认证响应序列s'1(t)是否合法:
(1)如果与K(k)相等,则认证响应序列s'1(t)合法,认为对应信息来自终端A,从与认证响应序列s'1(t)一起接收到的导频中提取初始信道信息H0(k),并发送认证确认信息给终端A;
(2)如果与K(k)不相等,则认证响应序列s'1(t)不合法,认为对应信息来自伪终端,丢弃该链路。
所述的步骤S6包括以下子步骤:终端A收到终端B的认证确认信息后,生成一个随机序列,为了避免多径时延的影响,在随机序列前加入循环前缀,得到认证序列s2(t),将认证序列s2(t)向终端B发送。
所述的步骤S7包括以下子步骤:
S71.认证序列s2(t)在通过信道后变换为的序列r2(n),r2(n)=h(t)*s2(t);
S72.终端B接收到认证序列r2(n)后,使用傅里叶变换将r2(n)变换到频域:
FT(r2(n))=FT(h(t)*s2(t))=R2(k)=H(k)S2(k);
S2(k)为认证序列s2(t)的频域表示;
S73.为了平衡信道,将R2(k)的倒数与预先共享密钥K(k)相乘,得到频域表示的认证响应序列S'2(k):
S74.使用傅里叶逆变换,将S'2(k)变回时域的s'2(t),与导频一起发送给终端A。
所述的步骤S8包括以下子步骤:
S81.认证响应序列s'2(t)过信道后变换为序列r'2(n),r'2(n)=h(t)*s'2(t);
S82.终端A接收到序列r'2(n)后,将序列r'2(n)通过傅里叶变换到频域R'2(k);
S83.将终端A本地随机生成的认证序列s2(t)变换到频域S2(k),并将S2(k)于R'2(k)相乘,得到密钥的估计值
S84.将与K(k)比较判断认证响应序列s'2(t)是否合法:
(1)如果与K(k)相等,则认证响应序列s'2(t)合法,认为对应信息来自终端B,从与认证响应序列s'2(t)一起接收到的导频中提取初始信道信息H'0(k),并开始与终端B之间互发数据,每一帧中包含用于提取信道信息的导频;
(2)如果与K(k)不相等,则认证响应序列s'1(t)不合法,认为对应信息来自伪终端,丢弃该链路。
所述的步骤S9包括以下子步骤:
S91.终端A或终端B接收到数据时,从每一次的接收数据的导频中提取信道信息Hi(k),并计算归一化信道信息差值Λi:
式中,Kco为归一化系数,i=1,2,3…m;m接收数据的次数;
S92.设定判决门限δ,并判断Λi与δ的大小关系:
(1)Λi大于门限值δ时,信息包来自伪终端,认证不通过,丢弃信息包,返回步骤S2;
(2)Λi不大于门限值δ时,信息包来自合法终端,认证通过,解调信息包。
如图2所示,终端A接收数据时,验证步骤为:
S001.终端B向终端A发送数据信息,数据信息中含有用于提取信道信息的导频;
S002.终端A接收来自终端B的数据信息,并从数据信息的导频中提取出信道信息;
S003.按照步骤S91~92来判断信道信息是否合法:如果合法,则解调信息包,跳转至步骤S001进行下一次的信息接收和信道验证;如果不合法,则丢弃链路,返回步骤S2。
如图3所示,终端B接收数据时,验证步骤为:
S001.终端A向终端B发送数据信息,数据信息中含有用于提取信道信息的导频;
S002.终端B接收来自终端A的数据信息,并从数据信息的导频中提取出信道信息;
S003.按照步骤S91~92来判断信道信息是否合法:如果合法,则解调信息包,跳转至步骤S001进行下一次的信息接收和信道验证;如果不合法,则丢弃链路,返回步骤S2。
如图4所示,为终端A和终端B之间传输的数据信息的TDD帧结构示意图,从图中可以看出,在数据信息的帧结构中,10个1ms子帧为一个完整的10ms无线帧,每个子帧包含2个时隙,一个时隙有7个OFDM符号;子帧0、子帧2~5和子帧7~9用于传送数据信息,子帧1和子帧6为特殊子帧,其结构不同于常规子帧,它包含上行导频、下行导频和保护间隔,其中的保护间隔不传送任何信号,为上下行之间提供保护,避免上下行之间出现“交叉干扰”;上行信道信息从特殊子帧的符号9~11中提取,下行信道信息从特殊子帧的符号2~4中提取。