飛行數(shù)據(jù)加密技術(shù)如何實(shí)現(xiàn)

飛行試驗(yàn)是在真實(shí)飛行條件下進(jìn)行的科學(xué)研究和產(chǎn)品試驗(yàn),它所產(chǎn)生的飛行數(shù)據(jù)極為珍貴,具有信息量大,保密要求高,數(shù)據(jù)不可重現(xiàn)等特點(diǎn);因此,飛行數(shù)據(jù)的安全存儲管理問題非常重要。為此,我們提出了一種綜合AES(高級加密標(biāo)準(zhǔn))和ECC(橢圓由線密碼)來對飛行數(shù)據(jù)進(jìn)行保護(hù)的一種加密方案。該方案能夠有效對飛行數(shù)據(jù)進(jìn)行加密存儲,在飛行數(shù)據(jù)安全管理方面得到了很好地應(yīng)用。

一、飛行數(shù)據(jù)文件加密

數(shù)據(jù)文件加密的基本過程就是對原來的可讀信息(明文)進(jìn)行一組可逆的數(shù)字變換,成為一種隱蔽的不可讀的代碼形式(密文)。被授權(quán)的數(shù)據(jù)文件接收者在收到密文數(shù)據(jù)之后,進(jìn)行與文件加密相逆的變換,恢復(fù)明文的過程稱為解密。文件加密和解密過程組成加密系統(tǒng)。

飛行數(shù)據(jù)文件加密分為實(shí)時(shí)數(shù)據(jù)文件加密和事后數(shù)據(jù)文件加密。實(shí)時(shí)數(shù)據(jù)加密就是在飛行過程中由數(shù)據(jù)記錄器將數(shù)據(jù)文件加密存儲,地面站的數(shù)據(jù)處理器則讀取加密數(shù)據(jù)文件后進(jìn)行解密,事后數(shù)據(jù)文件加密則是對于飛行過程中未加密的數(shù)據(jù)文件在存儲管理時(shí)進(jìn)行加密,確保實(shí)現(xiàn)數(shù)據(jù)文件安全存儲,當(dāng)數(shù)據(jù)需要處理時(shí)再進(jìn)行解密。

二、數(shù)據(jù)加密算法的分類

數(shù)據(jù)加密算法一般可以分為對稱加密算法和非對稱加密算法。

1、對稱加密算法

對稱加密算法,又叫單鑰加密算法、秘鑰加密算法、經(jīng)典密碼算法或傳統(tǒng)密碼算法。對稱加密算法中明文的加密和相應(yīng)密文的解密使用相同或相互容易導(dǎo)出的密鑰。

對稱加密算法的優(yōu)點(diǎn)在于算法實(shí)現(xiàn)效率高、速度快,缺點(diǎn)在于密鑰的管理過于復(fù)雜。如果任何一對發(fā)送方和接收方都有他們各自商議的密鑰的話,那么很明顯,假設(shè)有N個(gè)用戶進(jìn)行對稱加密通信,如果按照上述方法,則他們要產(chǎn)生N(N-1)把密鑰,每一個(gè)用戶要記住或保留N-1把密鑰,當(dāng)N很大時(shí),記住是不可能的,而保留起來又會(huì)引起密鑰泄漏可能性的增加。

最著名的對稱加密算法有DES、IDEA、AES加密算法等,其中影響最大且應(yīng)用廣泛的是DES加密算法。DES使用64位密鑰,在內(nèi)部重復(fù)實(shí)現(xiàn)多次替換和變位操作,屬于一種抗破譯能力很強(qiáng)的乘積密碼體制。DES將64位密鑰中的56位用于加密過程,其余8位用于奇偶校驗(yàn)位,通過密鑰對64位的二進(jìn)制信息進(jìn)行加密,把明文的64位信息加密成密文的64位信息。

IDEA加密算法的明文和密文都是64比特,但密鑰長為128比特q它基于混合使用來自不同代數(shù)群中的運(yùn)算,通過三個(gè)不相容的群運(yùn)算作用在16位子分組上來進(jìn)行密碼變換。IDEA是作為循環(huán)的分組密碼實(shí)現(xiàn)的,加密過程由連續(xù)的8輪循環(huán)和一個(gè)輸出變換組成,作為高級加密標(biāo)準(zhǔn)(AES)的Rijndael加密算法是一種靈活的分組加密算法,其分組的大小可變(128、192或256位),密鑰大小可變(128、192或256位),循環(huán)次數(shù)也可變(10、12或14)。AES不像DES那樣在每個(gè)階段中使用替換和置換,而是進(jìn)行多重循環(huán)的替換、列混合、密鑰加操作。

2、非對稱加密算法

非對稱加密算法,又叫雙鑰加密算法、公鑰加密算法或現(xiàn)代加密算法。在非對稱加密算法中,用作加密的密鑰不同于用作解密的密鑰,而且解密密鑰不能根據(jù)加密密鑰計(jì)算出來(至少在合理假定的長時(shí)間內(nèi))。非對稱加密的缺點(diǎn)在于算法實(shí)現(xiàn)效率低、速度慢以及對于某些復(fù)雜的數(shù)學(xué)難題過分依賴。非對稱加密的優(yōu)點(diǎn)在于用戶不必記憶大量提前商定好的密鑰,因?yàn)榘l(fā)送方和接收方事先根本不必商定密鑰,發(fā)送方只要可以得到可靠的接收方公鑰就可以給他發(fā)送信息。

著名的非對稱加密算法有RSA、DSA和ECC等,其中最有影響且應(yīng)用廣泛的是RSA公鑰加密算法。RSA公鑰加密算法是1978年由Rivest,Shamir,Adelman提出的。它依賴于大整數(shù)素因子分解,而大整數(shù)因子分解問題是數(shù)學(xué)上著名的難題,迄今為止沒有有效的方法予以解決,因此可以確保RSA算法的安全性。它生成一對RSA密鑰,私鑰由用戶保存,公鑰可對外公開,人們用公鑰加密文件發(fā)給個(gè)人,個(gè)人用私鑰解密接受。

DSA加密算法基于離散對數(shù)的求解,即給定正整數(shù)x,y,n,求出正整數(shù)k(如果存在的話),使y≡xkmod n。目前而言,還沒有找到計(jì)算離散對數(shù)的快速算法。 DSA加密算法的安全強(qiáng)度和速度均低于RSA加密算法,它僅提供數(shù)字簽名,不提供數(shù)據(jù)文件加密功能,所以它只適用于郵件、電子轉(zhuǎn)帳等認(rèn)證系統(tǒng)。ECC加密算法基于橢圓曲線上的離散對數(shù)問題的求解,即給定素?cái)?shù)p和橢圓曲線Q,對于Q=kP,在已知P,Q的情況下求出小于p的正整數(shù)k。ECC是目前國際上公認(rèn)的比較安全實(shí)用的公鑰加密算法,與RSA相比,具有安全性能更高、計(jì)算量小、處理速度快、存儲空問占用小、帶寬要求低等優(yōu)點(diǎn)。 ECC的這些特點(diǎn)使它必將取代RSA,成為通用的公鑰加密算法。比如SET協(xié)議的制定者已把它作為下一代SET協(xié)議中缺省的公鑰加密算法。

三、混合加密技術(shù)

1、混合加密技術(shù)

由于對稱加密算法和非對稱加密算法都具有自身的局限性,而彼此恰好可以由另一種加密算法來彌補(bǔ)。比如對稱加密算法加密效率高,但是密鑰保存難,而非對稱加密算法雖然加密效率低,但安全性高,實(shí)際應(yīng)用中經(jīng)常把兩者結(jié)合起來使用。

在大多數(shù)實(shí)際實(shí)現(xiàn)過程中,非對稱加密算法用來保護(hù)和分發(fā)會(huì)話密鑰。這些會(huì)話密鑰用在對稱加密算法中,對通信消息進(jìn)行加密,有時(shí)稱這種技術(shù)為混合加密技術(shù),混合加密技術(shù)的特點(diǎn)有:

(1)利用對稱加密算法的高效性,使用對稱加密算法對大量傳輸信息進(jìn)行加密;

(2)非對稱加密算法具有保密性好的特點(diǎn),可以用來加密傳輸對稱加密算法中使用的密鑰;

(3)為了實(shí)現(xiàn)不可否認(rèn)性,利用對稱加密算法等抽取摘要信息,然后用非對稱加密算法進(jìn)行數(shù)字簽名及身份驗(yàn)證。

2、密鑰的管理與分配

所渭密鑰的管理與分配,是指數(shù)據(jù)存儲、傳輸和使用過程中涉及到的加密和解密密鑰的保存、傳遞、認(rèn)證等方面的策略。密鑰管理綜合了密鑰的設(shè)置、產(chǎn)生、分配、存儲、進(jìn)入、使用、銷毀、提取等一系列過程,其宗旨是確保使用中的密鑰是安全的。

在對稱加密算法中,通信雙方共享的密鑰必須通過安全的渠道傳送,普遍的做法是采用非對稱加密算法進(jìn)行密鑰交換。保護(hù)密鑰安全的最直接方法是讓密鑰駐留在密碼裝置之內(nèi),但開銷太大,可采用由一個(gè)密鑰來保護(hù)其他密鑰的原理(主密鑰原理),極少的主密鑰駐留在密碼裝置之內(nèi)是容易實(shí)現(xiàn)的。

四、飛行數(shù)據(jù)文件加密系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

混合加密技術(shù)可以應(yīng)用到飛行數(shù)據(jù)文件加密中。我們使用對稱加密算法對大量飛行數(shù)據(jù)文件加密,通過非對稱算法來加密傳送對稱加密算法中的密鑰。這樣就既利用了對稱加密算法的高效性,又發(fā)揮了非對稱加密算法便于管理密鑰的長處。

1、飛行數(shù)據(jù)文件加密解密過程

事后數(shù)據(jù)加密解密過程如下:

數(shù)據(jù)加密系統(tǒng)每次加密前隨機(jī)生成一個(gè)對稱加密密鑰,用對稱加密算法將飛行數(shù)據(jù)文件加密,同時(shí)將該對稱加密密鑰用非對稱加密算法利用加密方私鑰簽名后,再與對稱密鑰自身一起利用數(shù)據(jù)解密方公鑰加密,得到的結(jié)果與加密后的飛行數(shù)據(jù)一起存儲起來,同時(shí)將此次加密運(yùn)算對應(yīng)的數(shù)據(jù)加密方公鑰和數(shù)據(jù)解密方私鑰存儲到密鑰管理系統(tǒng)。需要處理數(shù)據(jù)時(shí),計(jì)算機(jī)讀取密文,利用密鑰管理系統(tǒng)內(nèi)對應(yīng)的解密方私鑰解密后得到對稱密鑰和簽名,再利用對應(yīng)的加密方公鑰解簽名后得到的數(shù)和對稱密鑰作比較來進(jìn)行簽名認(rèn)征,最后利用對稱密鑰將密文解密后得到飛行數(shù)據(jù)進(jìn)行常規(guī)處理。

實(shí)時(shí)數(shù)據(jù)文件加密解密過程與事后數(shù)據(jù)文件加密和解密類似,在此不再重述,只以事后數(shù)據(jù)加密算法為例介紹。

2、密鑰更改

加密和解密過程中非對稱加密算法所用密鑰如果一直保持不變,會(huì)給竊密者進(jìn)行密碼分析帶來方便。因此,需要一個(gè)密鑰分配器來實(shí)現(xiàn)對這些公鑰和私鑰的產(chǎn)生和更改。本文數(shù)據(jù)文件加密系統(tǒng)的ECC密鑰生成模塊實(shí)現(xiàn)此功能。

3、飛行數(shù)據(jù)加密算法實(shí)現(xiàn)

鑒于AES和ECC加密算法的優(yōu)越性,本文選擇AES作為對稱加密算法,選擇ECC為非對稱加密算法。

(1)AES加密算法

AES加密算法是分組長度和密鑰長度均可變的分組加密算法,循環(huán)次數(shù)與分組和密鑰的大小有關(guān)。假設(shè)我們采用的密鑰長度為128比特、分組長度為128比特,則算法由10輪循環(huán)組成,每一循環(huán)都有一個(gè)循環(huán)密鑰,它來自于初始密鑰。每一循環(huán)輸入的是128位,產(chǎn)生的輸出也是128位。每一循環(huán)由字節(jié)轉(zhuǎn)換、移動(dòng)行、混合列、加循環(huán)密鑰4個(gè)基本步驟組成口解密過程為加密過程的逆過程,每一循環(huán)同樣需要逆字節(jié)轉(zhuǎn)換,逆移動(dòng)行、逆混合列和加循環(huán)密鑰4個(gè)步驟o AES的加密解密原理如圖1所示。

飛行數(shù)據(jù)加密技術(shù)如何實(shí)現(xiàn)

(2)ECC加密算法

設(shè)m→Pm是明文空間到橢圓曲線的嵌入(即將明文編碼轉(zhuǎn)化為橢圓曲線上的點(diǎn),這種編碼不同于加密,任何用戶都可以解碼恢復(fù)明文),G是橢圓曲線上的基點(diǎn)。

1)用戶A選取私鑰dA,產(chǎn)生一個(gè)公開密鑰PA=dAG;

2)用戶B為了向A發(fā)送信息m,選取隨機(jī)數(shù)dB作為他的私鑰,并計(jì)算出他的公鑰PB=dBG,然后將m經(jīng)編碼嵌入到橢圓曲線上的點(diǎn)P限,并向A發(fā)送(PB,Pm+dBPA);

3)用戶A用自己的私鑰dA計(jì)算dAPB;

4)用戶A計(jì)算(Pm+ dRPA)- dAPB=Pm+dBdAG - dAdBG=Pm,然后利用Pm解碼就可以得到明文信息m。

4、飛行數(shù)據(jù)加密系統(tǒng)軟件設(shè)計(jì)與介紹

本文數(shù)據(jù)加密系統(tǒng)采用Visual C++實(shí)現(xiàn)編程,由于飛行試驗(yàn)實(shí)時(shí)數(shù)據(jù)處理系統(tǒng)對實(shí)時(shí)性要求很高,它目前只能應(yīng)用于事后數(shù)據(jù)文件加密。對于實(shí)時(shí)數(shù)據(jù)文件加密,可以考慮利用硬件來滿足其速度要求。

飛行數(shù)據(jù)種類繁多,數(shù)據(jù)信息量大,主要包括遙測數(shù)據(jù)、總線數(shù)據(jù)和視頻數(shù)據(jù)等。本文開發(fā)的數(shù)據(jù)文件加密系統(tǒng)主要針對遙測數(shù)據(jù)和各類總線數(shù)據(jù)。

數(shù)據(jù)文件加密系統(tǒng)的加密流程圖如圖2所示,解密流程圖如圖3所示。

飛行數(shù)據(jù)加密技術(shù)如何實(shí)現(xiàn)

在ECC加密算法中,橢圓曲線的選取是影響加密系統(tǒng)安全性的主要因素。如果自己定義橢圓曲線參數(shù),一則曲線建立代價(jià)太大,二則很難從密碼分析角度驗(yàn)證參數(shù)選取對系統(tǒng)安全的影響,因此本文系統(tǒng)采用NIST推薦的曲線,采用素?cái)?shù)P192為有限域的階。

ECC加密算法所用密鑰的產(chǎn)生與更改可以通過加密軟件界面上的“生成ECC密鑰對“來實(shí)現(xiàn),系統(tǒng)自動(dòng)導(dǎo)出到相關(guān)文件保存。如圖4所示為生成密鑰的畫面。若數(shù)據(jù)加密前不進(jìn)行密鑰更改,系統(tǒng)自動(dòng)從相關(guān)文件導(dǎo)人上次加密過程所用密鑰。

飛行數(shù)據(jù)加密技術(shù)如何實(shí)現(xiàn)

系統(tǒng)初始化完成后,直接點(diǎn)擊“加密”按鈕即可完成數(shù)據(jù)文件加密,如圖5所示。

飛行數(shù)據(jù)加密技術(shù)如何實(shí)現(xiàn)

數(shù)據(jù)解密則需要先點(diǎn)擊解密界面上的“簽名認(rèn)證”通過后,點(diǎn)擊“解密”按鈕即可完成,如圖6所示。

飛行數(shù)據(jù)加密技術(shù)如何實(shí)現(xiàn)

5、系統(tǒng)優(yōu)點(diǎn)

(1)飛行數(shù)據(jù)每次加密前隨機(jī)自動(dòng)產(chǎn)生AES密鑰,增強(qiáng)了加密安全性;

(2)利用AES對稱加密算法對飛行數(shù)據(jù)文件加密,提高了數(shù)據(jù)文件加密速度;

(3)通過采用先簽名后加密的方法來傳遞AES密鑰,實(shí)現(xiàn)了數(shù)據(jù)的簽名認(rèn)證;

(4)需要時(shí)可對ECC密鑰進(jìn)行更改。

小知識之ECC

ECC是一種公鑰加密體制,最初由Koblitz和Miller兩人于1985年提出,其數(shù)學(xué)基礎(chǔ)是利用橢圓曲線上的有理點(diǎn)構(gòu)成Abel加法群上橢圓離散對數(shù)的計(jì)算困難性。