彈載記錄儀的實時加密實現(xiàn)方法

針對某型導彈的彈載記錄儀對其測試參數(shù)保密的要求,而目前最好的辦法就是對記錄儀內(nèi)數(shù)據(jù)進行加密處理方可確保數(shù)據(jù)安全,保證國防科技的信息安全。

一、彈載記錄儀電路模塊設(shè)計

彈載記錄儀由信號采集模塊、加密模塊、電源變換模塊、中央控制模塊及讀數(shù)接口模塊5部分組成,如圖1所示,通過核心控制芯片(CPLD及單片機)的控制,將接收到的彈上模擬量進行調(diào)理、跟隨,經(jīng)A/D轉(zhuǎn)化為數(shù)字量,并進行加密按序存人存儲芯片F(xiàn)LASH中。

1

二、加密設(shè)計

彈載記錄儀測試環(huán)境極其特殊且惡劣,其設(shè)計的更改極有可能對彈上系統(tǒng)造成影響。故在不影響彈載記錄儀原有設(shè)計的前提下,添加本加密設(shè)計,數(shù)據(jù)加密是在原有的存儲模塊中的CPLD內(nèi)部進行,在數(shù)據(jù)寫入Flash前采用軟件進行加密,加密后數(shù)據(jù)與原始數(shù)據(jù)字節(jié)對應且數(shù)據(jù)量不變,無時間延遲,密鑰選取隨機。

1、加密原理

彈上模擬量經(jīng)A/D轉(zhuǎn)換成數(shù)字量后,分高八位和低八位先后進入加密程序,加密模塊原理框圖如圖2所示,該部分軟件主要由3大部分組成:數(shù)據(jù)位交換模塊、密鑰選擇模塊及加密運算模塊。

1

加密采用的方法是:

(1)并行數(shù)據(jù)首先進行數(shù)據(jù)位交換,(位交換規(guī)則及密鑰提前進行預設(shè)),而數(shù)據(jù)位交換后的最低兩位將被用作選取密鑰,密鑰包括7位與數(shù)據(jù)進行計算的2進制數(shù)Ki和對應的7位二進制數(shù)與數(shù)據(jù)計算的7個位計算規(guī)則Si(密鑰位數(shù)可以小于等于每一字節(jié)的數(shù)據(jù)位,可以僅對數(shù)據(jù)的部分位進行加密處理,密鑰的預設(shè)須保證用于選取密鑰的數(shù)據(jù)在與Ki按Si進行運算時保持不變),每一位的計算規(guī)則為同或、異或2種中的一種。

(2)交換后的數(shù)據(jù)位最低兩位組成二進制數(shù)OO、01、10、1 1,故與之相對應的密鑰為4個,分別為KEYO、KEY1、KEY2、KEY3(KEYi是7位,程序設(shè)定為KEYi-對數(shù)據(jù)的第2位至第8位進行加密處理最低位不作處理),密鑰選取規(guī)則見表1。當選定密鑰之后,位交換后的其中7位數(shù)據(jù)將與選定的密鑰按Si進行運算,運算過程如圖3所示,Di、Ki、Si、Ji分別代表參與加密運算的7位交換后的數(shù)據(jù)、7位密鑰、7位運算規(guī)則、7位加密后的數(shù)據(jù)。

1

2、加密強度分析

8位2進制數(shù)參與位交換,數(shù)據(jù)經(jīng)位交換生成的數(shù)據(jù)排列組合有8 種可能。密鑰由7位數(shù)字量數(shù)據(jù)組成4個密鑰,采用的密鑰組合形式有4x27種可能。交換后的數(shù)據(jù)與密鑰進行的算法也有6位在同或與異或間選擇,組合形式有26種可能。這樣加密后數(shù)據(jù)和原來數(shù)據(jù)的對應關(guān)系有660602880種的可能性,加密后的數(shù)據(jù)在不知道交換次序、密鑰、計算組合形式的情況下要恢復原始數(shù)據(jù)的概率是1/660 602 880,數(shù)量級為1億分之1。

3、防錯可靠性分析

加密后的數(shù)據(jù)與原始數(shù)據(jù)具有唯一的對應關(guān)系,這個由同或與異或的計算方法決定的。加密后的數(shù)據(jù)前后間沒有關(guān)聯(lián)關(guān)系,即使由于某一字節(jié)存儲或讀取錯誤,導致加密數(shù)據(jù)解密發(fā)生錯誤,但也僅限于某字節(jié)出錯,并不影響其他數(shù)據(jù)。

4、解密

解密流程圖如圖4所示。

1

解密是通過計算機讀取加密后的數(shù)據(jù),由計算機軟件進行的。解密軟件檢測到數(shù)據(jù)的第1位、第2位為OO,則選擇KEYO對其進行解密,若檢測到01,則選擇KEY1對其進行解密,依此類推,解密運算是加密運算的逆運算。

三、加解密原理驗證及應用情況

該加密軟件模塊的程序通過FPGA的仿真軟件Xinlinx ISE9.1和Modelsim SE PLUS 6.1f環(huán)境下及計算機讀數(shù)軟件上進行了加密算法驗證。

1

1、仿真軟件驗證

首先在Xinlinx ISE9.1中建立仿真文件,進而采用Modelsim SE PLUS 6.1f對其進行仿真。在仿真文件中設(shè)置其輸入值為Ox00一OxFF,覆蓋8位所有取值情況。預設(shè)的key 0、key 1、key 2、key 3分別為0100101、101 1010、0101001、00101 10。

其中jmq為加密前O一8的二進制數(shù),bchange為加密前數(shù)據(jù)進行位交換的二進制數(shù)結(jié)果,jmh為加密后的二進制數(shù)數(shù)據(jù)輸出。key0、keyl、key2、key3為交換后數(shù)據(jù)位最低兩位分別為OO、01、10、11的二進制數(shù)密鑰。經(jīng)過對本加密算法進行仿真驗證可知,加密后的數(shù)據(jù)與原始數(shù)據(jù)唯一地對應。

2、計算機軟件讀數(shù)驗證

通過計算機讀數(shù)軟件讀取彈載記錄儀采集到的數(shù)據(jù),點擊“讀取文件”得到加密后數(shù)據(jù),之后點擊“數(shù)據(jù)解密”即可完成數(shù)據(jù)解密,如圖6所示,并最終得到解密后的數(shù)據(jù)波形,如圖7所示。

1

2、應用

該加密軟件模塊在用于2010年實彈測試的存儲電路中首次使用,數(shù)據(jù)經(jīng)加密存儲后,通過地面軟件讀取數(shù)據(jù)能夠正確解密恢復測試數(shù)據(jù)。

小知識之Flash

Flash又被稱之為閃客,是由macromedia公司推出的交互式矢量圖和 Web 動畫的標準,由Adobe公司收購。