吳海濤 史青海 梅 彬 聶文明
(中國(guó)直升機(jī)設(shè)計(jì)研究所,天津 300000)
自從飛機(jī)問世以來,飛行參數(shù)記錄器應(yīng)需要而生。隨著需求的不斷完善,飛行參數(shù)記錄器涵蓋的變量由最初的十幾個(gè)衍生到現(xiàn)在的幾千個(gè)。目前,飛行參數(shù)記錄器的主要功能包括5個(gè)方面:試飛期間的排故、飛行品質(zhì)的測(cè)試、輔助地勤人員維保、飛機(jī)事故原因調(diào)查、地面模擬器設(shè)計(jì)改進(jìn)。隨著自動(dòng)駕駛技術(shù)的不斷發(fā)展,有效地降低飛行員的駕駛負(fù)擔(dān),在軍用飛機(jī)領(lǐng)域,飛控系統(tǒng)已經(jīng)逐漸發(fā)展為飛管系統(tǒng),以美軍F-35為例,先進(jìn)的飛管系統(tǒng)顯著地提升了整機(jī)的戰(zhàn)斗力。迫于飛管系統(tǒng)的技術(shù)成熟度相對(duì)較低,尚未在民航客機(jī)中推廣。飛管系統(tǒng)技術(shù)的不斷完善依賴于大量的飛行數(shù)據(jù)支撐,由于此類數(shù)據(jù)的敏感性,因此對(duì)于飛行參數(shù)記錄器的數(shù)據(jù)安全性提出了新的要求。
已有的針對(duì)飛行參數(shù)記錄器的研究更多的是關(guān)注數(shù)據(jù)的后期使用。有學(xué)者研究制訂飛參判據(jù)的方法,對(duì)其存儲(chǔ)的數(shù)據(jù)進(jìn)行自動(dòng)判讀,提高處理效率,更好地發(fā)揮其在地勤維護(hù)中的應(yīng)用[1]。有學(xué)者針對(duì)飛參中數(shù)據(jù)存儲(chǔ)和使用問題,提出了基于Hbase數(shù)據(jù)庫(kù)的分布式存儲(chǔ)架構(gòu),實(shí)現(xiàn)了對(duì)飛行參數(shù)的列存儲(chǔ)和對(duì)擴(kuò)展檢索需求的高效支持,提高了飛行數(shù)據(jù)的訪問效率[2]。有學(xué)者提出一種基于改進(jìn)支持向量數(shù)據(jù)描述(SVDD)的數(shù)據(jù)新異檢測(cè)方法,通過啟發(fā)式的約減SVDD核矩陣尺寸加快了SVDD的運(yùn)算速度,而后研究了飛參數(shù)據(jù)中參數(shù)采樣率不統(tǒng)一條件下樣本生成的問題,測(cè)試表明該方法能準(zhǔn)確檢測(cè)出飛參數(shù)據(jù)中的異常[3]。有學(xué)者提出了一種基于樣本分位數(shù)的數(shù)據(jù)異常值檢測(cè)算法來提高數(shù)據(jù)處理精度,通過設(shè)置時(shí)間序列窗口對(duì)記錄的飛參數(shù)據(jù)進(jìn)行遍歷檢測(cè),然后對(duì)每個(gè)窗口內(nèi)的數(shù)據(jù)進(jìn)行樣本分位數(shù)提取,并將提取的樣本分位數(shù)組成的時(shí)間序列與原始飛參記錄數(shù)據(jù)進(jìn)行對(duì)比,實(shí)現(xiàn)飛參數(shù)據(jù)異常值檢測(cè)[4]。有工程人員為充分挖掘飛參數(shù)據(jù)在航空飛行器監(jiān)控及故障診斷中的應(yīng)用價(jià)值,對(duì)利用飛參數(shù)據(jù)進(jìn)行航空飛行器狀態(tài)監(jiān)控和檢測(cè)維護(hù)的方法進(jìn)行了研究,并提出閾值法、比較法和關(guān)聯(lián)法3種飛參數(shù)據(jù)處理方法[5]。
在網(wǎng)絡(luò)數(shù)據(jù)傳輸中,數(shù)據(jù)加密技術(shù)已經(jīng)較為成熟,在量子計(jì)算機(jī)尚未推廣應(yīng)用之前,已有的加密算法可以滿足工業(yè)的安全需求[6-8]。針對(duì)飛行參數(shù)記錄器數(shù)據(jù)加密的需求,文中提出一種基于AES加密算法的工程化實(shí)現(xiàn)方式,測(cè)試證明該方法無(wú)論是在電腦端還是微處理器中均可正常運(yùn)行。
高級(jí)加密標(biāo)準(zhǔn)AES(Advanced Encryption Standard)又稱Rijndael加密法,是美國(guó)聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)。與數(shù)據(jù)加密標(biāo)準(zhǔn)DES(Data Encryption Standard)不同,AES采用的是置換-組合架構(gòu),而不是Feistel架構(gòu)。硬件運(yùn)行AES算法只占用很少的存儲(chǔ)器空間,且軟件實(shí)現(xiàn)簡(jiǎn)單,可以快速地完成加解密[9-11]。
AES加密是基于一個(gè)4×4的字節(jié)矩陣進(jìn)行的,其初始值是一個(gè)明文塊,字節(jié)矩陣中的一個(gè)元素對(duì)應(yīng)明文塊中的一個(gè)字節(jié)。因此在加密之前要先將整個(gè)明文拆分成n個(gè)明文塊:M1、M2、M3、…Mn,每一個(gè)明文塊就是一個(gè)4×4的字節(jié)矩陣。針對(duì)每個(gè)明文塊進(jìn)行相同的加密運(yùn)算,便可生成n個(gè)密文塊:C1、C2、C3、…Cn,如圖1所示。
圖1 AES加密結(jié)構(gòu)
按照密鑰的長(zhǎng)度區(qū)分,AES加密算法包括AES-128、AES-192、AES-256三種,涉及運(yùn)算過程中塊的大小、密鑰的長(zhǎng)度以及迭代計(jì)算的次數(shù),文中以AES-128進(jìn)行說明,對(duì)應(yīng)的塊大小為128位,密鑰長(zhǎng)度為128位,迭代次數(shù)為10輪。AES-128加解密過程如圖2所示。
圖2 AES加解密流程
在加密過程中進(jìn)行的字節(jié)代換操作可以視作為查表的過程。AES算法預(yù)先定義了一個(gè)16×16的S盒狀態(tài)矩陣,按照M1中一個(gè)字節(jié)的高4位作為行值,低4位作為列值,取出S盒中對(duì)應(yīng)的元素作為輸出,代替M1中的明文字節(jié)。解密過程中的逆字節(jié)代換與之類似,只不過將S盒換為逆S盒。AES加密過程中的行移位是一個(gè)左循環(huán)移位操作,在密鑰長(zhǎng)度為128位,M1的第0行左移0字節(jié),第1行左移1字節(jié),第2行左移2字節(jié),第3行左移3字節(jié)。解密過程中的逆行移位是將前述的左移位變?yōu)橛乙莆弧<用苓^程中的輪密鑰加是將M1中的數(shù)據(jù)與128位密鑰進(jìn)行逐位異或運(yùn)算,也可以看成是字逐位異或的結(jié)果或者字節(jié)異或的結(jié)果。解密過程的輪密鑰加與之相同。
列混合運(yùn)算是通過M1與固定矩陣相乘完成的,其加密計(jì)算公式如下。
在運(yùn)算過程中應(yīng)該注意矩陣元素的乘法和加法都是在基于GF(2^8)有限域內(nèi)的二元運(yùn)算,并不是常規(guī)意義上的乘法與加法。在此有限域內(nèi),二元運(yùn)算的加法等價(jià)于兩個(gè)字節(jié)的異或。以8位的二進(jìn)制數(shù)為例,在有限域內(nèi)的乘十六進(jìn)制數(shù)02等價(jià)于該二進(jìn)制數(shù)左移1位,同時(shí)低位補(bǔ)0,如果高位溢出則還需要與二進(jìn)制數(shù)00011011進(jìn)行異或運(yùn)算,如果未溢出則不必進(jìn)行異或運(yùn)算。在解密過程中的逆列混合計(jì)算與列混合計(jì)算方式相同,只是替換了固定矩陣,其計(jì)算式如下。
為了測(cè)試AES加密算法在電腦端與微處理器端的運(yùn)行效果,將加密算法使用C語(yǔ)言進(jìn)行編譯。如前所述,在進(jìn)行AES加密以及解密運(yùn)算之前需產(chǎn)生S盒以及各循環(huán)中輪密鑰加對(duì)應(yīng)的密鑰,逆S盒產(chǎn)生方式與之類似。行移位、字節(jié)代換以及輪密鑰加運(yùn)算代碼實(shí)現(xiàn)簡(jiǎn)單,各功能代碼如下:
在AES加密過程中,由于列混合運(yùn)算要求在有限域內(nèi)完成,其計(jì)算較為復(fù)雜,采用三層循環(huán)結(jié)構(gòu)實(shí)現(xiàn)其功能,代碼如下:
選取飛行參數(shù)記錄器一條記錄中的空速、俯仰角、橫滾角、航向角進(jìn)行測(cè)試,假設(shè)此4個(gè)變量均為單精度浮點(diǎn)數(shù),分別取值為120.64、10.13、20.36和1.23。密鑰設(shè)定為十六進(jìn)制數(shù):00112233445566778899AABBCCDDE EFF,測(cè)試結(jié)果如表1所示。
表1 飛行參數(shù)記錄器測(cè)試結(jié)果
同樣的,選取TI產(chǎn)MSP430系列微處理器進(jìn)行前述步驟測(cè)試,亦可得到如表1所示的測(cè)試結(jié)果。測(cè)試表明,加密程序有效,加密后得到的十進(jìn)制數(shù)與原始數(shù)據(jù)相差甚遠(yuǎn),無(wú)任何物理意義,經(jīng)解密后的十進(jìn)制數(shù)據(jù)與原始數(shù)據(jù)相同。
文中提出一種基于AES加密理論的飛行參數(shù)記錄器的加密方法,明文經(jīng)過分塊、字節(jié)代換、行移位、列混合以及輪密鑰加等運(yùn)算后得到相應(yīng)的密文。加密與解密流程在電腦端與微處理器上均進(jìn)行了測(cè)試,效果符合預(yù)期。工作人員在保護(hù)好密鑰的前提下,任何人在獲取密文后也難以進(jìn)行破解,為飛行參數(shù)記錄器數(shù)據(jù)的安全性提供了強(qiáng)有力的保護(hù)措施,為后續(xù)推廣應(yīng)用奠定了基礎(chǔ)。