肖方恒,石 會,龔 晶
(陸軍工程大學 通信工程學院,江蘇 南京 210007)
無線信道的開放性給人們的通信安全帶來巨大的威脅,通信安全是移動無線通信中必須要解決的一個核心問題。隨著計算機運行速度的不斷提升,傳統(tǒng)加密手段已難以滿足通信安全。近些年來,基于信息論的物理層安全技術(shù)成為解決無線通信安全的新方法。其中,基于信道脈沖響應(yīng)CIR(Channel Impulse Response,CIR)方案生成的物理密鑰具有生成速率較高、一致性好等優(yōu)點[1]。而物理密鑰的隨機性好是保證信息安全的前提和基礎(chǔ),隨機性檢驗可以檢測生成物理密鑰流是否符合隨機性要求。隨機性檢驗有多種方法,本文采用通用的局部隨機性檢驗方法,即最常用的五種隨機性檢驗方法,分別為:頻數(shù)檢驗、序偶檢驗、游程檢驗、撲克檢驗和自相關(guān)檢驗。因此,本文主要分析基于CIR生成物理密鑰的隨機性能。
基于安全性角度,密鑰流的特性最好是真隨機的,真隨機序列具有統(tǒng)計的隨機性、不可預測性和不可再生性。但實際密碼系統(tǒng)中使用的密鑰流序列都是偽隨機序列,即滿足偽隨機序列應(yīng)該具備的統(tǒng)計特性:平衡特性、游程特性與自相關(guān)特性,即認為密鑰流是隨機的[2]。從安全性角度考慮,密鑰流的周期通常很長,而每次通信時僅使用其中很短的一段密鑰,因此密鑰流中的局部也要求具有很好的隨機性,即需要對密鑰流進行局部隨機性檢驗。本文選取的是最常用的五種局部隨機性檢驗方法,分別是:頻數(shù)檢驗、序列檢驗、撲克檢驗、自相關(guān)檢驗和游程檢驗。當密鑰流能全部通過這五種隨機性檢驗,即認為密鑰流是隨機的。
本文中的測試方法主要涉及到兩類統(tǒng)計學中的基本分布,下面對測試方法所涉及的相關(guān)統(tǒng)計學知識做簡單介紹[2]:
1.1.1 正態(tài)分布
若隨機變量X的概率密度函數(shù)(probability density function,pdf)為:
其中,μ,σ為常數(shù),且σ>0,則稱X服從參數(shù)為μ,σ的正態(tài)分布,記為X~(μ,σ2)當參數(shù)為 (0,1)的正態(tài)分布則稱為標準正態(tài)分布。
1.1.2 χ2分布
設(shè)隨機變量X1,X2,…,Xn服從標準正態(tài)分布,且相互獨立,則稱統(tǒng)計量服從自由度為n的χ2分布。χ2分布的概率密度函數(shù)pdf為:
其中,x≥0。
1.2.1 頻數(shù)檢驗
頻數(shù)檢驗是為了考察一個密鑰流序列中0和1的平衡性。設(shè)一個長度為n的被檢測密鑰流序列中有n0個0和n1個1,根據(jù)式:
計算x2的值,與χ2分布表中對應(yīng)的門限值)(其中α表示χ2分布的顯著性水平,v表示χ2分布的自由度)進行比較,這里v=1;當x2<χα2(v)時,表示該密鑰流序列通過頻數(shù)檢驗。
1.2.2 序偶檢驗
序偶檢驗用來考察一個密鑰流序列是否具有合適的轉(zhuǎn)移概率,即兩個相鄰元素間的不同組合出現(xiàn)次數(shù)是否大致相同。設(shè)一個長度為n的被檢測密鑰流序列中組合00、01、10和11出現(xiàn)的次數(shù)分別為n00、n01、n10和n11,0和1出現(xiàn)的次數(shù)分別為n0和n1,根據(jù)式:
計算x2的值,并和χ2分布表中對應(yīng)的門限值進行比較,這里v=2;當時,表示該密鑰流序列通過序偶檢驗。
1.2.3 撲克檢驗
將一個n比特密鑰流按m比特為單位分組后,撲克檢驗用來考察各種組合出現(xiàn)的頻次是否近似相等。假設(shè)各分組中自然數(shù)i(0≤i≤2m-1)出現(xiàn)的次數(shù)為ni,根據(jù)式(5):
計算x2的值,其中將x2和χ2分布表中對應(yīng)的門限值χα2(v)進行比較,這里v=2m-1。當x2<χα2(v)時,表示該密鑰流序列通過撲克檢驗。(撲克檢驗的自由度為v=2m-1,m是分組長度)。
1.2.4 自相關(guān)檢驗
將一個長度為n比特的密鑰流序列經(jīng)移位變換后與原序列之間的相關(guān)性,用自相關(guān)檢驗來考察。設(shè)序列s經(jīng)d位移位變換后的序列與原序列對應(yīng)位置上信號不同的個數(shù)為c(d),根據(jù)式(6)計算C的值:
雙邊分位數(shù)的計算方法是:計算1-α/2的值,在正態(tài)分布表中查找該值,該值所對應(yīng)的最左側(cè)第一列值與第一行值的和為雙邊分位數(shù),即在顯著性水平α下的門限值[3]。
1.2.5 游程檢驗
游程檢驗是用來考察一個長度為n比特的密鑰流序列中0和1的分布是否合理。設(shè)長為i的0游程的個數(shù)為Bi,長為i的1游程的個數(shù)為Gi,Bi和Gi的數(shù)學期望為ei,根據(jù)公式(7)計算x2的值:
其中,ei=(n-i+3)/2i+2,k為使ei≥5的最大整數(shù)。將x2與χ2分布表中對應(yīng)的門限值χα2(v)進行比較,這里v=2k-2;當x2<χα2(v)時,表示該密鑰流序列通過游程檢驗。(游程檢驗的自由度為v=2k-2)。
本文運用MATLAB軟件仿真分析基于信道脈沖響應(yīng)生成物理密鑰的隨機性,具體仿真流程如圖1所示。
圖1 MATLAB仿真流程
首先,合法的通信雙方Alice和Bob基于信道脈沖響應(yīng)生成初始物理密鑰Key_A和Key_B;其次,采用Cascade協(xié)商算法[4]對密鑰Key_A和Key_B進行一致性協(xié)商,以得到完全一致的物理密鑰;最后,對物理密鑰進行隨機性分析即頻數(shù)檢測、序偶檢測、撲克檢測、自相關(guān)檢測和游程檢測。
物理密鑰的具體生成過程可分為3個階段[5]:首先,構(gòu)造瑞利衰落信道的Jakes模型[6],其中多徑數(shù)目N=50,載波頻率ωc=2*10-9rad/s,采樣頻率fs=20 Hz,最大多普勒相移ωm=2*πrad/s。本文選取瑞利衰落信道的同相分量作為CIR的理論值,將其疊加上信噪比為30 dB高斯白噪聲后作為CIR的估計值;然后,合法通信雙方分別對CIR估計值進行多比特自適應(yīng)量化(Multi-bit Adaptive Quantization,MAQ)、編碼,分別得到初始物理密鑰Key_A、Key_B;最后,采用Cascade密鑰協(xié)商算法以得到完全一致的物理密鑰。經(jīng)過MAQ量化、編碼和Cascade協(xié)商后,每次隨機仿真產(chǎn)生了2 000比特一致的物理密鑰,經(jīng)過15次隨機仿真可得到30 000 bit完全一致的物理密鑰。考慮到實際系統(tǒng)中密鑰加密長度,本文中選取分組為256比特物理密鑰進行隨機性分析。從30 000 bit物理密鑰中選取前25 600 bit,可得到100組、每組256 bit的一致物理密鑰流,然后分析這100組物理密鑰流的隨機性。前10組、每組256 bit物理密鑰流如表1所示。
表1 前10組、每組256比特的一致物理密鑰流
在MATLAB仿真程序中,對100組、每組256 bit的物理密鑰流進行五種隨機性測試,前10組、每組256 bit物理密鑰流的五種隨機性檢測指標如表2所示。
表2 前10組物理密鑰流隨機性檢測結(jié)果
從表2中可以看出:第7、9組物理密鑰流未通過頻數(shù)檢測,第7、9、10組物理密鑰流未通過序偶檢測。
在進行的100組物理密鑰的五種隨機性測試中,未通過隨機性測試的組號如表3所示。
表3 100組物理密鑰流未通過隨機性檢測組號
由表3可以看出,在100組物理密鑰中,未通過頻數(shù)檢測共21組,未通過序偶檢測共19組,4組物理密鑰未通過撲克檢測,5組物理密鑰未通過自相關(guān)檢測,1組物理密鑰未通過游程檢測;頻數(shù)檢測和序偶檢測的通過率比較低;共計71組物理密鑰均通過五種隨機性檢測。由此可知,基于CIR的物理密鑰隨機性能較好。
本文介紹了常用的五種隨機性測試方法,利用MATLAB軟件生成了基于信道脈沖響應(yīng)CIR的物理密鑰,經(jīng)過量化,編碼和協(xié)商后,得到完全一致的物理密鑰,并將一致的物理密鑰分成100組,每組256 bit,對這100組物理密鑰進行五種隨機性測試,隨機性測試表明,100組物理密鑰中,有71組物理密鑰能全部通過五種隨機性測試,即通過率為71%,說明基于CIR信道脈沖響應(yīng)生成物理密鑰的隨機性較好。