王燊燊, 馮金富, 李 騫
(空軍工程大學(xué)工程學(xué)院,西安 710038)
機群作戰(zhàn)時,若載機吊艙與電視制導(dǎo)導(dǎo)彈之間的通訊頻率和指令的編碼方式相同,不同載機發(fā)射的兩枚導(dǎo)彈的無線電指令信號會相互干擾,為了能同時攻擊鄰近目標(biāo)需要克服指令間的干擾。通常采用單層密鑰的分組密碼對導(dǎo)彈的控制指令進行加密,這種方法密鑰空間較小,難以抗擊指令干擾和敵方的主動干擾。為克服這兩方面的干擾,本文提出了一種含有載機認(rèn)證的無線電控制指令編碼加密方案。
電視制導(dǎo)導(dǎo)彈[1-2]控制指令由編碼組件進行編碼,在發(fā)射機內(nèi)進行 AM調(diào)制,調(diào)制后的信號放大后經(jīng)天線發(fā)射出去。導(dǎo)彈由導(dǎo)彈尾部天線接收控制指令信號,除有用信號外,還有干擾信號。干擾源可能是敵人積極干擾,也可能是外界噪聲。導(dǎo)彈上的接收機采用非相干解調(diào),解碼組件對接收到的信號進行解碼。為保證制導(dǎo)指令的保密性和真實性,需要在指令傳輸過程中增加加密認(rèn)證模塊。增加加密認(rèn)證模塊后制導(dǎo)指令的發(fā)射與接收過程如圖 1所示。
圖1 制導(dǎo)指令的發(fā)射與接收過程Fig.1 Sending and receiving process of guidance command
由電視指令制導(dǎo)導(dǎo)彈的工作過程[3-4]可知,控制信息分為兩大類:一次性功能指令和連續(xù)模擬信號。在這里采用分組碼得到 8位的二進制數(shù)字序列表示一次性功能指令,兩路模擬信號由 A/D轉(zhuǎn)換器轉(zhuǎn)換成 7位二進制碼,第 8位為奇偶校驗位。因此明文序列為24位的二進制碼序列。
在加密方法中,對多個 LFSR輸出進行非線性函數(shù)變換后產(chǎn)生密鑰序列,為使非線性變換中序列密碼的良好統(tǒng)計特性不被破壞,在構(gòu)造非線性組合函數(shù)時必須依據(jù)一定的準(zhǔn)則,為此函數(shù)生成相當(dāng)困難[5-6]。本文利用離散 Hopfield神經(jīng)網(wǎng)絡(luò)對 LFSR的當(dāng)前狀態(tài)按網(wǎng)絡(luò)的穩(wěn)定點進行分類,然后設(shè)計一個 S盒使神經(jīng)網(wǎng)絡(luò)的輸出一半對應(yīng) 0,一半對應(yīng) 1,從而生成隨機序列,這樣既能使得該序列某些統(tǒng)計特性不被破壞,又能利用離散 Hopfield神經(jīng)網(wǎng)絡(luò)[7]模擬復(fù)雜的非線性輸出函數(shù),起到非線性系統(tǒng)作用。
一般情況下,非線性濾波函數(shù) f是平衡的非線性布爾函數(shù)。設(shè)為基于二進制域 F2的 n維向量空間。布爾函數(shù) f(X)=f(x1,…,xn)是到 F2的映射(其中 F2是 0,1兩個數(shù)對模 2加和模 2乘運算構(gòu)成的域,數(shù)學(xué)上叫做枷羅華域,表示二元枷羅華域上的 n維向量空間),具有平衡性準(zhǔn)則,要求組合函數(shù) f的輸出值中 0與1的數(shù)目各占一半,它是f具有偽隨機性的必要條件[8]。方案設(shè)計的思想是利用神經(jīng)網(wǎng)絡(luò)的收斂特性構(gòu)造一個 S盒進而組成組合非線性濾波函數(shù) f輸出隨機序列。
函數(shù) σ(·)定義為
用矩陣的形式表示為
突觸權(quán)值被確定為 3種狀態(tài):-1,0,1。這種網(wǎng)絡(luò)有利于硬件(DSP)實現(xiàn)。這種網(wǎng)絡(luò)必須采用同步方式,因為每次只有一個神經(jīng)元進行更新,而且達到穩(wěn)定狀態(tài)步數(shù)一般情況下也是未知的。網(wǎng)絡(luò)的動力學(xué)方程為
在本文所設(shè)計的方案中取 n=8,一組 16個的存儲模式 {α,β}定義為
當(dāng)網(wǎng)絡(luò)由吸引點 {α,β}確定時 ,設(shè) Λαi和 Λβi分別表示吸引點 αi和 βi吸引狀態(tài)向量的個數(shù),窮舉 8維向量空間得到 Λαi,Λβi,如表 1所示 。
表 1 穩(wěn)定點 αi和 βi的吸引域Table 1 Attractive field ofαi andβi
由上面可以得知,8個神經(jīng)元的網(wǎng)絡(luò)能夠?qū)?16個8維向量作為穩(wěn)定點。由于在 8維向量空間中,大多數(shù)的狀態(tài)向量都能收斂于 8個穩(wěn)定點中的一個。因此定義網(wǎng)絡(luò)的記憶過程為的映射,函數(shù) Γ的輸入是一組 n維向量,輸出為 Θ={α,β,τ},其中 α,β是如上所示的一組 2n個穩(wěn)定點,τ為網(wǎng)絡(luò)的偽狀態(tài),這時系統(tǒng)出現(xiàn)限幅的自恃振蕩或極限環(huán)。
當(dāng) x屬于 α0和 β0時,Ψ為 0;當(dāng) x屬于 α1和 β1時,Ψ為 1;當(dāng) x屬于 τ,“0”或“1”被輪流輸出。這樣,得到一個平衡的映射。
結(jié)合對稱密碼與非對稱密碼[9]的特點,考慮到飛機與導(dǎo)彈是一對多的關(guān)系,因此可以采用對稱密碼與非對稱密碼相結(jié)合的方法來實現(xiàn)制導(dǎo)指令的加密和認(rèn)證。每架飛機具有一對公私密鑰對,設(shè)公鑰為 KU,私鑰為 KR,密鑰對由機載計算機產(chǎn)生,其中私鑰為飛機所獨有,而公鑰在導(dǎo)彈發(fā)射前由飛機傳輸給導(dǎo)彈。這樣飛機的公鑰也只有導(dǎo)彈知道,即飛機的公鑰與私鑰對外界都是保密的。每次通信前由飛機產(chǎn)生一個隨機的對稱密鑰 K,或稱會話密鑰,用于對指令進行加密。載機吊艙對指令的加密處理過程如圖 2所示。
圖 2 載機吊艙的加密處理Fig.2 Encryption process of pod
設(shè)載機上的吊艙欲發(fā)送給導(dǎo)彈的指令是 M,吊艙發(fā)送指令前進行如下處理:1)使用會話密鑰 K對指令M進行加密得到密文 CK(M),其中 CK([])是密鑰控制的函數(shù);2)用飛機私鑰 KR對會話密鑰 K進行加密得到密鑰密文計算指令 M的 Hash值H(M),并用飛機私鑰 KR對校驗碼 H(M)進行加密得到飛機對指令的數(shù)字簽名然后向?qū)棸l(fā)送導(dǎo)彈上存有飛機公鑰 KU,當(dāng)收到吊艙發(fā)來的消息后,進行如下處理:1)用飛機公鑰 KU從密鑰密文中解密出會話密鑰 K;2)用會話密鑰 K從密文CK(M)中解密出明文 M′;3)用飛機公鑰 KU從數(shù)字簽名SKR(M)中解密出原始指令的 Hash值 H(M);4)用相同的算法計算 M′的 Hash值 H(M′),比較 H(M′)和H(M),若相同則認(rèn)為 M′真實可靠。其處理過程如圖3所示。
圖3 導(dǎo)彈的解密及認(rèn)證Fig.3 Decryption and authentication process of missile
采用以上加密認(rèn)證方案實現(xiàn)了以下功能:1)用多重密鑰實現(xiàn)了指令信息的保密性,因為指令的保密性依賴于會話密鑰,會話密鑰的保密性依賴于飛機公鑰,而飛機公鑰只有導(dǎo)彈擁有;2)導(dǎo)彈相信發(fā)送方是發(fā)射該導(dǎo)彈的載機,這是因為除飛機外再無其他人知道飛機私鑰,因此其他載機不可能對該導(dǎo)彈發(fā)送的消息計算出正確的認(rèn)證碼;3)導(dǎo)彈相信發(fā)送方發(fā)來的消息未被篡改,這是因為攻擊者不知道飛機私鑰,所以不能在篡改消息后相應(yīng)地篡改認(rèn)證碼,而如果僅篡改消息,則導(dǎo)彈計算的新認(rèn)證碼將與收到的認(rèn)證碼不同。
明文為 24位的二進制代碼,在常用的序列密碼中一般使用多個 LFSRi(i=1,2,…,n)的串行輸出作為驅(qū)動源,LFSRi(i=1,2,…,n)的級數(shù)分別為 N1,N2,…,Nn,而且為了使序列周期有盡可能大的周期和計算復(fù)雜度,N1,N2,…,Nn兩兩互素且需要滿足一定條件[10]。但在電視指令制導(dǎo)中,考慮明文序列比較短,不需要長周期的序列,而且對反應(yīng)時間要求比較高,所以僅使用一個 LFSR,在這里采用 8個寄存器的 LFSR,其特征多項式為 p(x)=1+x4+x5+x6+x8,產(chǎn)生了周期為 255的序列,8個寄存器的當(dāng)前狀態(tài)將作為初始狀態(tài)輸入給神經(jīng)網(wǎng)絡(luò)。當(dāng) LFSR的特征多項式確定后,寄存器的當(dāng)前狀態(tài)由 LFSR的初始狀態(tài)決定,這樣表示 LFSR的初始狀態(tài)的 8位二進制碼就可以設(shè)計為一級密鑰。對于線性反饋移位寄存器,考慮到全零狀態(tài)比較特殊,把它作為電路設(shè)計時初始狀態(tài),當(dāng)電路開始工作時,動態(tài)地產(chǎn)生一個隨機數(shù)作為 8級的線性反饋移位寄存器的初始輸入,這個初始輸入隨機數(shù)的集合 K就作為會話密鑰,范圍用二進制表示為[00000001 11111111],元素個數(shù)為 255個。會話密鑰輸入到非線性濾波函數(shù) f=Ψ(Γ(x))就得到密鑰流,密鑰流和明文經(jīng)過異或運算后就得到密文。
Hash函數(shù)的設(shè)計利用縱向冗余校驗(LRC)的方法,用來驗證指令的完整性?,F(xiàn)代密碼學(xué)中一般使用MD5或 SHA算法作為 Hash函數(shù),但這些算法生成的摘要值普遍偏大,不適合在本系統(tǒng)中使用??v向冗余校驗將位塊組成列表,并計算每個列的奇偶校驗位[11]。例如,如果二進制數(shù)據(jù)為 32位,則把其排成 4行,然后對每列計算奇偶位,生成一個 8位的新行,作為整個塊的校驗位,這樣 LRC實際上是初始消息的指印。接收方收到后把數(shù)據(jù)和 LRC分開,對數(shù)據(jù)執(zhí)行LRC運算,并將得到的 LRC值與收到的 LRC值比較,若相同,則相信發(fā)來的數(shù)據(jù)沒有在中途發(fā)生改變。
非對稱密鑰的設(shè)計利用簡化的 RSA方法[11]構(gòu)造。由于飛機的公鑰和私鑰對外界都是保密的,因此在采用 RSA算法產(chǎn)生密鑰對時,可以采用相對較小的素數(shù)代替大素數(shù),即在 RSA算法第一步中選擇兩個相對較小的質(zhì)數(shù)。這樣不會破壞算法的安全性,但能較大地提高算法的運算速度,滿足制導(dǎo)指令的時效性要求。這里稱這種方法為簡化的 RSA算法。由于選擇的素數(shù)相對較小,密鑰對的產(chǎn)生又由機載計算機在導(dǎo)彈發(fā)射前完成,因此密鑰對的生成不會影響到制導(dǎo)指令的時效性。
RSA算法中大量的運算是方冪模運算,即求 dk(mod r),這里 r為兩個大素數(shù)的乘積,k在加密時用公鑰,解密時用私鑰。由于字長的限制,方冪模運算是不能直接進行的,要采用多精度運算,這使得 RSA運算量大,速度慢,因此提高 RSA的速度顯得尤為重要。目前有 BR算法,SMM算法,2k進制,montgomery算法等。著名的 montgomery算法是從求余過程中避免除法運算的方面加快方冪模運算,2k進制算法是從縮短指數(shù)鏈,減少迭代次數(shù)方面加快方冪模運算,這里采用將大數(shù)的冪模運算轉(zhuǎn)化為較小數(shù)的求模運算的方法,加快方冪模運算速度,便于硬件實現(xiàn)。
模運算使用函數(shù) f1(d,r)=d(mod r),其中輸入為基數(shù) d和模數(shù) r,輸出 c=d(mod r),算法描述為
1)設(shè)變量 x=d,比較 x與 r;
2)若 x≥r,x=x-r并轉(zhuǎn)到 2),否則轉(zhuǎn)到 3);
3)求模結(jié)果 c=x。
上述算法只需簡單的加減法即可進行模運算,實現(xiàn)較簡單,但它只適合對較小的整數(shù)進行模運算。在RSA算法中,加密與解密過程都是對某個數(shù)先進行冪運算,然后求模,若先計算求冪結(jié)果再進行求模運算,不斷多次涉及到大數(shù)的乘法,且求模過程運算量大,使運算過程異常復(fù)雜,耗費時間長。因此需要設(shè)計一種對冪函數(shù)的求模方法,以提高運算效率。方冪模運算方法描述如下:
方冪模計算函數(shù) f2(d,k,r)=dk(mod r),其輸入為基數(shù) d,指數(shù) k和模數(shù) r,輸出 c=dk(mod r),算法描述為
1)設(shè)變量 x=d,比較 x與 r;
2)若 x≥r,利用模計算函數(shù) f1求出 x=f1(x,r)=x(mod r);
3)設(shè)變量 i=1,s=x;
4)若 i<k,s=s×x,否則轉(zhuǎn)到 7);
5)若 s≥r,利用模計算函數(shù) f1求出 s=f1(s,r)=s(mod r);
6)使 i增 1,即 i++,轉(zhuǎn)到 4);
7)求模結(jié)果 c=f1(s,r)=s(mod r)。
上述方法將復(fù)雜的冪運算和求模運算轉(zhuǎn)化為簡單數(shù)的乘法與求模運算,能有效提高 RSA算法加解密效率,便于算法的硬件實現(xiàn)。
帶有載機認(rèn)證的加密方案如圖 4所示。
圖4 發(fā)送序列產(chǎn)生過程Fig.4 Engendering process of sending message
其過程如下所述。
1)設(shè)計非線性濾波函數(shù) f,由一個神經(jīng)網(wǎng)絡(luò)和一個 S盒。
①設(shè)計一個神經(jīng)網(wǎng)絡(luò),選擇網(wǎng)絡(luò)神經(jīng)元的個數(shù)n=8,使得大多數(shù)的 8位隨機向量收斂到網(wǎng)絡(luò)的穩(wěn)定點;
②設(shè)計 S盒,滿足非線性濾波函數(shù) f的輸出一半對應(yīng) 0,一半對應(yīng) 1。
2)使用 RSA算法產(chǎn)生飛機的公私密鑰對,私鑰存儲在飛機上,公鑰在導(dǎo)彈發(fā)射前由飛機傳輸給導(dǎo)彈。
3)產(chǎn)生明文和隨機選擇 8-LFSR的初始狀態(tài)。
4)產(chǎn)生發(fā)送序列,包括認(rèn)證數(shù)據(jù)、密文和密鑰密文。
①由明文的校驗碼經(jīng)飛機私鑰加密生成認(rèn)證數(shù)據(jù);
②由 m-LFSR的初始輸入作為序列發(fā)生器的密鑰生成密鑰流并對明文加密;
③由飛機私鑰對 m-LFSR的初始值加密生成密鑰密文。
本文在制導(dǎo)指令加密認(rèn)證方案的 DSP實現(xiàn)方面采用了 TMS320C54x芯片。TMS320C54x芯片是為實現(xiàn)低功耗、高性能而專門設(shè)計的定點 DSP芯片,主要應(yīng)用在無線通信系統(tǒng)和遠(yuǎn)程通信嵌入式系統(tǒng)中[12]。該芯片速度快,運算能力強,且具有強大的尋址能力。為保證程序掉電后不丟失,需要采用 Flash存儲器擴展程序存儲區(qū)。
在確定系統(tǒng)硬件和處理算法后采用 CCS(Code Composer Studio)集成開發(fā)環(huán)境來對整個算法和 DSP的運行情況進行仿真[13]。仿真分為兩個部分,對吊艙的仿真和對導(dǎo)彈的仿真。設(shè)兩路連續(xù)指令為 11100110、01110110;功能指令為 11010001;會話密鑰為 00110101;飛機公鑰為 00000101;私鑰為 01001101時,通過對吊艙的仿真,在 CCS中使用探針、FileI/O和圖形顯示功能將吊艙的發(fā)送序列顯示,見圖 5。
圖 5 發(fā)送序列的圖形顯示Fig.5 Graphic display of sending message
從存儲器和圖形顯示可以看出吊艙的整個發(fā)送序列,見表 2。
表 2 發(fā)送序列Table 2 Sending message
然后通過對導(dǎo)彈的仿真對發(fā)送序列進行解密認(rèn)證。在不對指令信息作任何更改的情況下,從存儲器可以看出導(dǎo)彈解密后得到的指令明文和認(rèn)證數(shù)據(jù)如表3所示。
表 3 解密得到的明文序列Table 3 Original message after decryption
從表 3可以看出正常情況下導(dǎo)彈可以很好地解密出指令明文并對指令進行認(rèn)證。本文還對以下幾種情況進行了仿真實驗:1)在發(fā)送途中更改發(fā)送序列;2)在計算認(rèn)證碼后更改明文序列;3)利用第三方的私鑰進行簽名。從仿真結(jié)果可以看出在這幾種情況下導(dǎo)彈計算得到的新校驗碼與原校驗碼均不相同,因此導(dǎo)彈認(rèn)為指令是不完整或不真實的。
以上序列一次加密所需時間約為 18.3μs,一次解密驗證所需時間約為 2.5μs,其加解密時間都非常短,能夠滿足導(dǎo)彈的時效性要求。
本文研究了一種含有載機認(rèn)證的無線電控制指令加密方案。該方案中,傳給導(dǎo)彈的信息中不僅包含有加密后的會話密鑰和指令信息,還包括消息認(rèn)證碼,導(dǎo)彈會對接收到的信號進行認(rèn)證,只有認(rèn)證協(xié)議正確,導(dǎo)彈才能進一步對控制指令解碼,這樣確保導(dǎo)彈只接收發(fā)射導(dǎo)彈的載機的控制指令。同時采用非線性函數(shù)來產(chǎn)生加密序列,改變僅靠加大 LFSR長度的方法來增加密鑰空間范圍。仿真結(jié)果表明,本文提出的方法有效地提高了指令的安全性,在不影響導(dǎo)彈時效性的前提下,很好地解決了指令干擾問題。
[1] 吳文超,杜海文,韓統(tǒng).空地電視制導(dǎo)導(dǎo)彈作戰(zhàn)使用研究[J].電光與控制,2008,15(7):55-57.
[2] 李望西,黃長強,龐春雨.基于神經(jīng)網(wǎng)絡(luò)的電視遙控制導(dǎo)導(dǎo)彈損失率預(yù)測[J].電光與控制,2009,16(6):89-92.
[3] МОДЕЛЬ ПРОЦЕССА ПРОСТРАНСТВЕ ННОГО НАВЕДЕ НИЯАУРС ТКСН В УСЛ-ОВИЯХ ОЭ И РЭН[R].2000.
[4] 付裕松.H-XX電視制導(dǎo)訓(xùn)練彈交聯(lián)控制系統(tǒng)研究[D].西安:空軍工程大學(xué),2005.
[5] 李順東,王道順.現(xiàn)代密碼學(xué):理論、方法與研究前沿[M].北京:科學(xué)出版社,2009.
[6] 李騫,馮金富,潘勃,等.電視制導(dǎo)導(dǎo)彈無線電制導(dǎo)指令編碼加密[J].電光與控制,2009,16(10):55-57.
[7] ARIK S.An neural networks and their paplieations[C]//Proceedings of the 7th IEEE International Workshop,2002(7):22-24.
[8] COA J.A set of stability criteria of delayed cellular neural networks[J].IEEE Trans Circuits Syst,2001,48(4):449-498.
[9] LI Zan,CHANG Yilin,JIN Lijun,et al.Analysis of FHMA performanceon block cipher based frequency-hopping sequences[C]//Communications Letters,IEEE,2004:434-436.
[10] HORAN D M,GUNEE R.A novel pseudorandom binary sequence generator for keystream generation[C]//Proceedings of the 2006 IEEE International Symposium on Circuits and Systems,ISCAS 2006:1358-1362.
[11] KAHATE A.Cryptography and network security[M].北京:清華大學(xué)出版社,2009.
[12] 羅焯炬.一個 DSP下實現(xiàn)快速 RSA加密的新方法[J].微計算機信息,2008,24(21):45-46.
[13] 姜陽,周錫青.DSP原理與應(yīng)用實驗[M].西安:西安電子科技大學(xué)出版社,2008.