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