如何加密和解密無(wú)人機(jī)遙測(cè)數(shù)據(jù)文件

無(wú)人機(jī)說(shuō)白了就是一種由無(wú)線電遙控設(shè)備或自身程序控制裝置操縱的無(wú)人駕駛飛行器但由于無(wú)人機(jī)飛行環(huán)境的復(fù)雜性和無(wú)線傳輸信息的開放性,在數(shù)據(jù)的下行鏈路傳輸過(guò)程中,遙測(cè)信息的傳輸會(huì)受到各種各樣的干擾和破壞。遙測(cè)數(shù)據(jù)中含有大量的圖像偵察信息,若沒(méi)有任何安全措施保護(hù)這些信息很容易被第三方竊取。為此針對(duì)無(wú)人機(jī)無(wú)線通信遙測(cè)數(shù)據(jù)幀的結(jié)構(gòu)特點(diǎn),以及傳輸實(shí)時(shí)性和高質(zhì)量的需求,我們提出了一種適合無(wú)人機(jī)遙測(cè)數(shù)據(jù)幀特點(diǎn)基于自同步流密碼的數(shù)據(jù)文件加密和解密方法。

一、無(wú)人機(jī)遙測(cè)數(shù)據(jù)文件加密原理

1、序列密碼

密碼按加密形式分為序列密碼和分組密碼,分組密碼用固定的變換處理明文序列的分組數(shù)據(jù),加密較復(fù)雜,而且存在誤碼擴(kuò)散和一定的延時(shí),一般用于通信傳輸信道質(zhì)量較好或具有數(shù)據(jù)重發(fā)等功能的場(chǎng)合:序列密碼對(duì)明文序列逐位或逐塊地加以隨時(shí)間變化的變換。其硬件加密速度快,且實(shí)現(xiàn)容易,對(duì)信號(hào)加密具有低延時(shí),無(wú)誤碼擴(kuò)散等特點(diǎn),因此序列密碼在實(shí)際中得到廣泛的應(yīng)用。

無(wú)人機(jī)系統(tǒng)通信對(duì)數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性要求很高,例如地面控制站是每20ms接收一幀的遙測(cè)數(shù)據(jù),每80ms發(fā)送一幀的遙控指令,所以必須采用具有低延時(shí)特性的序列密碼加密方法。

將序列密碼分為自同步序列密碼和同步序列密碼。密鑰序列與己經(jīng)產(chǎn)生的一定數(shù)量的密文有關(guān)的序列密碼被稱為自同步序列密碼,而密鑰序列與明密文無(wú)關(guān)的序列密碼被稱為同步序列密碼。

采用同步序列密碼加解密時(shí),收發(fā)雙方的密鑰發(fā)生器必須同步,因此就需要精確的同步電路;如果在密文數(shù)據(jù)傳輸中丟失一個(gè)或若干字符,收發(fā)雙方必須重新同步密鑰發(fā)生器才能保持繼續(xù)通信,同時(shí)也會(huì)造成錯(cuò)誤擴(kuò)散;此外,采用同步法時(shí)要保證密鑰序列不能含有重復(fù)的部分,這樣就導(dǎo)致了密鑰規(guī)模過(guò)大。給密鑰管理帶來(lái)了一定的難度。

采用自同步序列密碼加解密時(shí),收發(fā)雙方不需要精確的同步電路,接收方的每個(gè)解密密鑰都是由它前面的n個(gè)密文導(dǎo)出,如果在傳輸過(guò)程中丟失或改變了一個(gè)密文比特,將導(dǎo)致錯(cuò)誤向后擴(kuò)散n個(gè)分塊,但在連續(xù)正確接收到n個(gè)密文后,系統(tǒng)又能自動(dòng)的恢復(fù)同步,因此只要臺(tái)理地選擇n的大小,就能將錯(cuò)誤擴(kuò)散限制在容許的范圍內(nèi)。因此,本文提出了對(duì)無(wú)人機(jī)數(shù)據(jù)鏈路通信保密系統(tǒng)中的遙測(cè)幀使用自同步序列加密算法。

二、遙測(cè)數(shù)據(jù)文件如何加密和解密

無(wú)人機(jī)在數(shù)據(jù)終端系統(tǒng)中的鏈路層進(jìn)行遙測(cè)數(shù)據(jù)文件的加密操作,使用面向位的鏈路控制協(xié)議,根據(jù)協(xié)議內(nèi)容,遙測(cè)幀主要由標(biāo)志段、數(shù)據(jù)段和幀校驗(yàn)段組成。標(biāo)志段主要用于遙測(cè)幀的搜索捕獲及幀的分離存儲(chǔ),數(shù)據(jù)段主要包括飛機(jī)的狀態(tài)信息和圖像數(shù)據(jù)信息,幀校驗(yàn)段采取RS碼的校驗(yàn)方式。

1、無(wú)人機(jī)遙測(cè)數(shù)據(jù)文件加密實(shí)現(xiàn)

在無(wú)人機(jī)數(shù)據(jù)鏈路通信中使用的自同步加密算法中充分利用了遙測(cè)數(shù)據(jù)幀結(jié)構(gòu)的特點(diǎn),以幀長(zhǎng)為單位更新初始密鑰,以字長(zhǎng)為分塊單位進(jìn)行序列加密,遙測(cè)數(shù)據(jù)經(jīng)過(guò)信道編碼后字長(zhǎng)均為m比特,幀長(zhǎng)為N,約束長(zhǎng)度取n,其加密過(guò)程如圖2所示。

在每幀數(shù)據(jù)開始時(shí),先由初始密鑰發(fā)生器產(chǎn)生初始密鑰K1,K2,K3,…,Kn,并與保密字To生成初始密文Co;同時(shí)該初始密鑰控制密碼發(fā)生器產(chǎn)生密碼數(shù)據(jù)Z1;Z1與第一個(gè)明文字Mi模2加生成密文Ci;Ci與Ti模2加生成Ri,Ri與K2,K3,…,Kn構(gòu)成新的n個(gè)密鑰去控制密碼發(fā)生器產(chǎn)生新的密碼數(shù)據(jù)22;22與第二個(gè)明文字M2模2加產(chǎn)生密文C2;C2與T2模2加生成R2,R2與K3,K4,…,Kn Ri構(gòu)成新的n個(gè)密鑰去控制密碼發(fā)生器產(chǎn)生新的密碼數(shù)據(jù)塊23,如此類推,直到由CN-n,CN-n+1---CN-1構(gòu)成的密鑰去控制密碼發(fā)生器產(chǎn)生密碼數(shù)據(jù)模塊ZN,ZN與MN模2加產(chǎn)生密文CN,從而完成對(duì)一幀數(shù)據(jù)的加密。其中的Mi、Ki、Ci、Zi、Ti均為一個(gè)字長(zhǎng)m比特。

初始密鑰發(fā)生器是由噪聲源產(chǎn)生亂數(shù),每次加密都需要更新。密碼發(fā)生器主要由若干個(gè)數(shù)據(jù)存儲(chǔ)器構(gòu)成,其復(fù)雜的算法用C語(yǔ)言編程來(lái)實(shí)現(xiàn),加密算法存儲(chǔ)與密碼芯片外部的FLASH中,進(jìn)行加密操作時(shí)由DSP控制密碼芯片調(diào)用該加密算法。Ki、Ci、Ti經(jīng)過(guò)具體算法運(yùn)算由密碼發(fā)生器產(chǎn)生密碼數(shù)據(jù)Zi,Zi與Mi模2加產(chǎn)生密文Ci。為了防止初始密鑰被截獲,本文用保密字To對(duì)其加密,中間的密文反饋也沒(méi)有直接利用密文,而是先用保密字Ti進(jìn)行加密之后再移位反饋。保密字Ti是存在密碼芯片SRAM中,該密碼芯片使用Altera公司的低成本Cyclone系列FPGA芯片來(lái)實(shí)現(xiàn),使設(shè)計(jì)資源得到了極大的優(yōu)化利用,降低了整個(gè)的設(shè)計(jì)成本。

2、解密實(shí)現(xiàn)

遙測(cè)數(shù)據(jù)的解密過(guò)程與加密過(guò)程基本相同,首先對(duì)收到的密碼字Co進(jìn)行解密,從而恢復(fù)初始密Ki,K2,K3,…,Kn,由該密鑰控制密碼發(fā)生器產(chǎn)生密碼數(shù)據(jù)Z1,Z1與密文Ci模2加生成明文Mi,如果在信道傳輸?shù)倪^(guò)程中密文Ci出錯(cuò),而Z1是正確的,錯(cuò)誤則同樣反應(yīng)在Mi中,對(duì)Mi進(jìn)行糾錯(cuò)譯碼產(chǎn)生Mi',Mi'與Z1模2加生成Ci',由選擇器判斷Mi中的出錯(cuò)數(shù)是否大于糾錯(cuò)能力,若出錯(cuò)數(shù)大于糾錯(cuò)能力,令Ci''=Ci',這樣可以消除Ci"出錯(cuò)帶來(lái)的影響:否則令Ci''=Ci,從而消除Z1出錯(cuò)帶來(lái)的影響。

三、遙測(cè)數(shù)據(jù)加密解密方法的特點(diǎn)

(1)實(shí)現(xiàn)簡(jiǎn)單

硬件上主要是使用FPGA和DSP芯片來(lái)完成控制和加密操作。軟件只需要完成一些讀取、控制操作,以及一些復(fù)雜的運(yùn)算。

(2)加密強(qiáng)度高

在加密過(guò)程中,盡管每個(gè)密鑰都是從它前n個(gè)密文計(jì)算得到,但從原理上講,每個(gè)密鑰都依賴于它之前的全部明文和初始密鑰,因此每個(gè)密文也都依賴于它之前的全部明文和初始密鑰。這樣明文和初始密鑰的統(tǒng)計(jì)特性分散到全部的密文上,即所謂“置亂擴(kuò)展”,從而使得密碼分析者難以破譯。通過(guò)使用保密字對(duì)初始密鑰和中間密鑰進(jìn)行加密,降低了密碼分析者截獲分析初始密鑰和中間密鑰的概率。在字長(zhǎng)為m比特,并且約束長(zhǎng)度為n的情況下,密鑰被截獲的概率為2-mn。并且為加強(qiáng)保密性,在無(wú)人機(jī)每次升空?qǐng)?zhí)行任務(wù)前,都要更新保密字Ti。

由于每幀數(shù)據(jù)都更新初始密鑰,并且下次的初始密鑰由密文Cl隨機(jī)化,這實(shí)際上利用了以前全部明文和初始密鑰的統(tǒng)計(jì)信息。由于不同的初始密鑰將產(chǎn)生不同的密碼數(shù)據(jù)流,從而使得每幀密碼數(shù)據(jù)流各不相同,呈現(xiàn)隨機(jī)性。即使每路明文數(shù)據(jù)沒(méi)有任何變化,對(duì)應(yīng)的密文也將表現(xiàn)為隨機(jī)或偽隨機(jī),致使第三方難以根據(jù)密文推斷各路遙測(cè)數(shù)據(jù)的性質(zhì),加之不具備幀格式的相關(guān)信息,所以難以對(duì)遙測(cè)數(shù)據(jù)進(jìn)行偵破。

雖然密鑰存儲(chǔ)器的容量有限,但由于在該加密方法中,對(duì)地址的產(chǎn)生具有足夠的隨機(jī)性。不同的地址組合將導(dǎo)致不同的密碼數(shù)據(jù)流產(chǎn)生,也就保證了密碼數(shù)據(jù)流的隨機(jī)性。另外,即使密碼破譯者根據(jù)密文序列能夠解出對(duì)應(yīng)的部分密鑰(其可信度僅為2-mn),也會(huì)由于不知道對(duì)應(yīng)的明文性質(zhì)和加密過(guò)程,也就難以形成對(duì)密鑰存儲(chǔ)器的查找表,因而無(wú)益于保密工作。

(3)錯(cuò)誤擴(kuò)散小

密文在傳輸過(guò)程中發(fā)生了錯(cuò)誤,如果錯(cuò)誤數(shù)在信道編碼的糾錯(cuò)能力以內(nèi),就不會(huì)造成錯(cuò)誤擴(kuò)散:如果超出了糾錯(cuò)能力,錯(cuò)誤擴(kuò)散也不會(huì)造成一幀數(shù)據(jù)被丟失,只會(huì)向后擴(kuò)散n個(gè)字長(zhǎng),這對(duì)遙測(cè)來(lái)講,是可以容忍的.并且,這種錯(cuò)誤擴(kuò)散也并并不一定是缺點(diǎn),適當(dāng)應(yīng)用這一特性,可以用于鑒別密文的真?zhèn)?,以防第三方的篡改?/p>

(4)無(wú)信息擴(kuò)散

該遙測(cè)加密方法僅僅對(duì)明文和密碼作模2加運(yùn)算,沒(méi)有增加任何冗余數(shù)據(jù),故沒(méi)有信息擴(kuò)散,從而降低了信息傳輸速率,節(jié)省了信道資源。

本文介紹的無(wú)人機(jī)遙測(cè)數(shù)據(jù)文件加密方法充分考慮了遙測(cè)數(shù)據(jù)字、幀結(jié)構(gòu)的特點(diǎn)以及遙測(cè)信道編碼的因素,在保證了高加密強(qiáng)度的同時(shí),還具有數(shù)據(jù)文件加密解密實(shí)現(xiàn)簡(jiǎn)單,錯(cuò)誤擴(kuò)散小,無(wú)信息擴(kuò)散等特點(diǎn)。我們將該方法應(yīng)用到硬件中,可行性和可靠性還是具備的。

小知識(shí)之通信鏈路通信鏈路是指網(wǎng)絡(luò)中兩個(gè)結(jié)點(diǎn)之間的物理通道。