加密技術(shù)在分布仿真系統(tǒng)中的應(yīng)用

分布式仿真系統(tǒng)通過網(wǎng)絡(luò)將不同地區(qū)的模擬器,計(jì)算機(jī),及其他一些設(shè)備互聯(lián)在一起,構(gòu)建成一個(gè)協(xié)作虛擬環(huán)境以實(shí)現(xiàn)復(fù)雜仿真過程,常被用于國防領(lǐng)域,其數(shù)據(jù)往往具有很高的機(jī)密性。因此,需要進(jìn)行加密處理來維護(hù)其安全。同時(shí)隨著分布仿真系統(tǒng)的應(yīng)用越來越廣泛,規(guī)模越來越大,使得為其制定出一套完整的數(shù)據(jù)加密等級標(biāo)準(zhǔn)日趨重要。

一、分布仿真系統(tǒng)概述

1、HLA概述

在分布式仿真系統(tǒng)中,通常,需考慮的仿真實(shí)體較多,各仿真實(shí)體之間以及仿真實(shí)體與仿真環(huán)境之間的信息交互量大,傳統(tǒng)的集中式仿真系統(tǒng)難以滿足仿真實(shí)時(shí)性和交互性要求。HLA是高層體系結(jié)構(gòu)(High Level Architecture)的簡稱,是一種開放的、面向?qū)ο蟮捏w系結(jié)構(gòu)。它支持仿真應(yīng)用間的互操作性及仿真部件的可重用性。由于采用運(yùn)行時(shí)間框架(RT1:Runtime Infrastructure)軟件支撐系統(tǒng)將應(yīng)用層和支撐環(huán)境功能分離開來,使得仿真開發(fā)可以獨(dú)立進(jìn)行。

一個(gè)完整的分布仿真系統(tǒng)稱為一個(gè)聯(lián)邦,由若干個(gè)相互作用的聯(lián)邦成員構(gòu)成,各聯(lián)邦成員間的互操作通過RTI進(jìn)行。在網(wǎng)絡(luò)環(huán)境中,仿真系統(tǒng)的各聯(lián)邦成員通過本地的RTI代理進(jìn)程與運(yùn)行在遠(yuǎn)端服務(wù)器上的RTI進(jìn)程進(jìn)行交互。

2、HLA存在的安全漏洞

由于國防領(lǐng)域仿真應(yīng)用的特殊性,某些聯(lián)邦成員通過RTI與其他成員交互的數(shù)據(jù)不希望被計(jì)劃之外的聯(lián)邦成員捕捉到,尤其不希望被該仿真系統(tǒng)之外的主機(jī)得到,但是HLA規(guī)范卻沒有對安全性做出任何要求,故實(shí)際上HLA/RTI體系存在著很大的安全隱患。

因此需要對分布仿真系統(tǒng)中的敏感數(shù)據(jù)進(jìn)行加密,使得數(shù)據(jù)在不同的聯(lián)邦成員之間傳輸?shù)倪^程中,是以密文的形式進(jìn)行的,即便被非目標(biāo)聯(lián)邦成員截獲,由于沒有相應(yīng)的解密密鑰,信息也無法被獲取,這樣,便保證了分布仿真系統(tǒng)之中數(shù)據(jù)傳輸?shù)陌踩?/p>

二、分布仿真系統(tǒng)加密技術(shù)研究

1、分布仿真系統(tǒng)加密概述

對于一個(gè)分布仿真系統(tǒng)進(jìn)行加密,首先應(yīng)該考慮到數(shù)據(jù)的加密粒度,其加密粒度通??煞譃槲募壓蛿?shù)據(jù)級。文件級加密單位大,實(shí)現(xiàn)較容易,但適用范圍相對較窄,靈活性較差。數(shù)據(jù)級加密單位小,相應(yīng)靈活性就較強(qiáng),應(yīng)用范圍廣,但實(shí)現(xiàn)的難度較大,由于需區(qū)別對待仿真系統(tǒng)不同敏感度數(shù)據(jù),因此采用數(shù)據(jù)級加密。

其次,要對仿真數(shù)據(jù)的加密層次進(jìn)行選擇。其加密層汝主要有:通信支持系統(tǒng)層、RTI層、聯(lián)邦成員層。在通信支持系統(tǒng)層進(jìn)行加密,由于無法辨認(rèn)仿真系統(tǒng)中的數(shù)據(jù)類型及敏感程度,因此無法針對具體需要進(jìn)行區(qū)別加密,只能進(jìn)行統(tǒng)一的文件加密,這對于大型的分布仿真系統(tǒng)來說沒有實(shí)際意義。在分布仿真系統(tǒng)的RTI層進(jìn)行加密,需要將相應(yīng)的加密、解密代碼嵌入到時(shí)間支撐框架中,需要進(jìn)行大量的修改工作,代價(jià)較大,且與聯(lián)邦規(guī)則中的規(guī)定“每個(gè)對象的表現(xiàn)應(yīng)限于邦員內(nèi),不應(yīng)在RTI中”不符,因此也不可行。在聯(lián)邦成員層進(jìn)行加密,可以將源代碼直接嵌入聯(lián)邦成員與RTI的接口模塊中,既不影響RTI功能,又能根據(jù)聯(lián)邦成員勢據(jù)的不同敏感度級別區(qū)別加密,是一種切實(shí)可行的加密方法。

圖1顯示了嵌入加解密功能的HLA分布仿真系統(tǒng)的數(shù)據(jù)通信結(jié)構(gòu)。

加密技術(shù)在分布仿真系統(tǒng)中的應(yīng)用

最后,在對仿真系統(tǒng)數(shù)據(jù)進(jìn)行加密之后,其數(shù)據(jù)量不應(yīng)明顯增加,數(shù)據(jù)長度應(yīng)該維持在原有水平,以保證傳輸速度,使數(shù)據(jù)響應(yīng)能夠滿足實(shí)時(shí)性要求。根據(jù)IEEE1278.1-3標(biāo)準(zhǔn),對于實(shí)時(shí)仿真網(wǎng)絡(luò),緊耦合實(shí)體間數(shù)據(jù)交互延遲應(yīng)不超過lOOms,松耦合實(shí)體間數(shù)據(jù)交互延遲不超過300ms。

2、分布仿真系統(tǒng)加密流程及解密流程

(1)加密流程

在進(jìn)行加密過程之前,應(yīng)該先將仿真系統(tǒng)的各種數(shù)據(jù),如文本數(shù)據(jù),圖片數(shù)據(jù),語音數(shù)據(jù)等轉(zhuǎn)化為二進(jìn)制數(shù)據(jù)再進(jìn)行加密,然后將明文轉(zhuǎn)化為密文數(shù)據(jù)用于存儲(chǔ)或進(jìn)行數(shù)據(jù)交互。加密流程圖如圖2所示。

加密技術(shù)在分布仿真系統(tǒng)中的應(yīng)用

(2)解密流程

數(shù)據(jù)解密是數(shù)據(jù)加密的逆過程,即將密文數(shù)據(jù)變成明文數(shù)據(jù)。在需求提取數(shù)據(jù)信息或者交互數(shù)據(jù)的接收方接收到密文信息時(shí),需要將密文數(shù)據(jù)解密得到明文數(shù)據(jù),并再通過一個(gè)逆二進(jìn)制轉(zhuǎn)換得到原始數(shù)據(jù),便于系統(tǒng)成員的處理。解密流程如下圖3所示。

加密技術(shù)在分布仿真系統(tǒng)中的應(yīng)用

3、相關(guān)加密算法

數(shù)據(jù)加密是保障分布仿真系統(tǒng)數(shù)據(jù)安全的最基本、最核心的技術(shù)支持和理論基礎(chǔ)。數(shù)據(jù)加密過程由各種加密算法具體實(shí)現(xiàn),以較小的代價(jià)提供極大的安全保護(hù)。

(1)DES加密算法

DES加密算法又被稱為數(shù)據(jù)加密標(biāo)準(zhǔn),是1972年美國IBM公司研制的對稱密碼體制加密算法,是一種理論及技術(shù)上都很成熟的加密算法。具有較高的安全性。

DES加密算法密鑰長度為56位(去除校驗(yàn)位),明文按64位進(jìn)行分組,將分組后的明文組和64位的密鑰按位替代或交換的方法形成密文組。

DES在對明文進(jìn)行初始置換IP之后,執(zhí)行16輪的迭代變換,每輪都是一個(gè)Feistel網(wǎng)絡(luò)結(jié)構(gòu)。最后經(jīng)IP的逆變換得到密文:其中,Lo是明文的左32位,R0是明文的右32位。給定一個(gè)初始密鑰k,由它生成16個(gè)子密鑰k1,k2,…,k16。通過下面加密過程得到密文R16L16。

圖4是DES的加密流程圖,其加密和解密過程相同,只是解密子密鑰與加密子密鑰的使用順序剛好相反。

加密技術(shù)在分布仿真系統(tǒng)中的應(yīng)用

DES中使用的最重要的密碼技術(shù)是混淆和擴(kuò)展,兩種技術(shù)的歷史都比DES要長,但是在DES中它們得到完美的結(jié)合,從而能抵抗密碼學(xué)家們長達(dá)20多年的分析。由于DES的整個(gè)算法結(jié)構(gòu)都是公開的,其安全性由密鑰保證。

DES也有其固有缺點(diǎn),即抗差分攻擊性能不夠強(qiáng)。其原因就在于E盒擴(kuò)展部分的規(guī)律性明顯,從而造成其非線性太弱。對此,提出改進(jìn)的DES算法。

(2)改進(jìn)DES加密算法

改進(jìn)的DES算法的整體流程與原有的DES算法相同,改進(jìn)部分在于Feistel算法中的E盒,即32位明文擴(kuò)展到48位的部分。原DES算法只有在16輪迭代的情況下才能達(dá)到較好的抗差分攻擊性能,其原因就在于E盒擴(kuò)展部分的規(guī)律性明顯,從而造成其非線性太弱。而改進(jìn)后,可以彌補(bǔ)這點(diǎn)不足。

為了滿足改進(jìn)算法的需要,需將原有的56位密鑰擴(kuò)展到72位,將前10位應(yīng)用于改進(jìn)E盒擴(kuò)展部分,將后56位作為普通的DES加密密鑰,剩余6位丟棄。

改進(jìn)過程如下:以分組的明文Li,Ri(32位)為基礎(chǔ),取密鑰ki的前10位,2位為一組,共分為5組,分別轉(zhuǎn)化為十進(jìn)制,即為5個(gè)可取O,1,2,3的數(shù)字,將其分別看做1,2,3,4,以此決定前5組明文數(shù)據(jù)塊的實(shí)際位數(shù)。假設(shè)分組后前5組的實(shí)際位數(shù)為Si(5≤S1≤20),設(shè)S2=32-S1,(12≤S2≤27),設(shè)a1=[S2/7],a2=S2%7,然后,承接已分好的5組再進(jìn)行后續(xù)分組,還需7組,劃分為a2個(gè)長度為ai+l的組和7-a2個(gè)長度為ai的組。由于:

加密技術(shù)在分布仿真系統(tǒng)中的應(yīng)用

可知此時(shí)已經(jīng)覆蓋了整個(gè)的32位明文,此時(shí)所分組數(shù)為12,再將每個(gè)長度不足4位的組以O(shè)補(bǔ)足到4位,則達(dá)到了同E盒一樣從32位到48位的擴(kuò)展效果,同時(shí),由于擴(kuò)展過程不再具有原DES的E盒擴(kuò)展的重復(fù)性,且與密鑰相關(guān),故增強(qiáng)了抗差分分析性能。

(3)AES加密算法

由于計(jì)算機(jī)技術(shù)的飛速發(fā)展,對于DES的破解不再特別困難,故需求一個(gè)更加安全的加密算法進(jìn)行安全保證,改進(jìn)加密標(biāo)準(zhǔn)AES (Advanced Encryption Standard)算法便應(yīng)運(yùn)而生,經(jīng)過長期驗(yàn)證,證明了這種算法的差分均勻性以及線性偏差都達(dá)到了最佳,安全性顯著高于DES加密算法。

在AES加密算法中,明文以128位分組,分為4個(gè)字,其中,一個(gè)字占4個(gè)字節(jié),即32比特位。密鑰中字的個(gè)數(shù)可以為4,6或8,由明文字?jǐn)?shù)和密鑰字?jǐn)?shù)共同決定加密輪數(shù)Nr。將明文與輪密鑰分別進(jìn)行Nr輪加密變換即可得到密文數(shù)據(jù)。

AES加密算法能夠有效地對抗目前已知的攻擊方法的攻擊,如部分差分攻擊,相關(guān)密鑰攻擊,差值攻擊等。對于AES線性偏差都達(dá)到了最佳,安全性顯著高于DES加密算法。

在AES加密算法中,明文以128位分組,分為4個(gè)字,其中,一個(gè)字占4個(gè)字節(jié),即32比特位。密鑰中字的個(gè)數(shù)可以為4,6或8,由明文字?jǐn)?shù)和密鑰字?jǐn)?shù)共同決定加密輪數(shù)Nr。將明文與輪密鑰分別進(jìn)行Nr輪加密變換即可得到密文數(shù)據(jù)。

AES加密算法能夠有效地對抗目前已知的攻擊方法的攻擊,如部分差分攻擊,相關(guān)密鑰攻擊,差值攻擊等。對于AES加密算法,最有效地攻擊只是窮盡密鑰搜索攻擊。

(4)RSA加密算法

RSA系統(tǒng)是公鑰系統(tǒng)的最具有典型意義的方法,是第一個(gè)既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法,為公用網(wǎng)絡(luò)上信息的加密和鑒別提供了一種基本方法,其安全性基于大整數(shù)素因數(shù)分解的困難性。

RSA加密算法先生成一對RSA密鑰,其中一個(gè)是加密鑰(公鑰),可對外公開發(fā)布,另一個(gè)是解密鑰(私鑰),由接收端秘密保存。

RSA加密算法描述如下:

1)密鑰產(chǎn)程過程:取兩個(gè)不相等的大素?cái)?shù)p和g,計(jì)算n=pq;隨機(jī)選擇整數(shù)8,滿足1<e<(p-1)(q-1),gcd[e,(p-1)(q-1)]=1;計(jì)算d,使其滿足ed=1 mod(p-1)(q-1)。

公有密鑰為n,e;私有密鑰為d。

2)加密算法:對于待加密的消息m,l<m<n,其對應(yīng)密文為c=E(m)=me mod n。

3)解密算法:D(c)=cd mod n。

RSA加密算法為迄今為止公認(rèn)的最為安全有效地加密算法之一,其攻擊難度非常高。

4、各加密算法性能測試比較

在VC6.0中對DES算法,改進(jìn)DES算法,AES算法,RSA算法分別進(jìn)行實(shí)現(xiàn),其中,所采用計(jì)算機(jī)的操作系統(tǒng)為Windows XP Professional 2002,CPU為Pentium(R) Dual 2.40GHz,內(nèi)存為1.96G。對于同一組二進(jìn)制型“00001111110001100111110101011110000”,其平均加解密時(shí)間比較如表1所示。

加密技術(shù)在分布仿真系統(tǒng)中的應(yīng)用

在算法實(shí)現(xiàn)過程中,AES算法采用密鑰字?jǐn)?shù)為4,即128位。加密輪數(shù)Nr為10輪。

RSA加密算法采用的大素?cái)?shù)p,q都為125位左右的十進(jìn)制數(shù),加密密鑰采用隨機(jī)生成的滿足條件的100位左右的大型數(shù),解密密鑰達(dá)到200位。能夠充分保證算法的安全性,但由結(jié)果可以看出,若用于實(shí)時(shí)仿真系統(tǒng),其加密速度略慢。

對于一個(gè)仿真系統(tǒng)而言,聯(lián)邦成員間在互相傳輸數(shù)據(jù)時(shí),為了保證數(shù)據(jù)的實(shí)時(shí)性,往往采用少量的數(shù)據(jù)進(jìn)行傳輸,而增加傳輸次數(shù)。因此根據(jù)測試結(jié)果,前三種算法都能基本滿足系統(tǒng)實(shí)時(shí)性要求,且數(shù)據(jù)量不會(huì)明顯增加。當(dāng)然,如果對于強(qiáng)實(shí)時(shí)性分布仿真系統(tǒng),其實(shí)時(shí)性要求可能會(huì)非常高,為了充分滿足系統(tǒng)的實(shí)時(shí)性要求,也可以采用更高性能的計(jì)算機(jī)、硬件加密、算法優(yōu)化等方法進(jìn)行改進(jìn)。

5、密鑰管理

由于上述DES,改進(jìn)DES,以及AES算法的安全性依賴于密鑰的保密性,故密鑰管理方案的選擇成為系統(tǒng)是否安全的一大關(guān)鍵因素。首先,對于大型的仿真系統(tǒng)而言,一個(gè)可靠的大量密鑰產(chǎn)生機(jī)制是必不可少的。一個(gè)好的密鑰源,要求其具有隨機(jī)性或者偽隨機(jī)性。這里,利用混沌算法產(chǎn)生一個(gè)偽隨機(jī)序列,二進(jìn)制化后進(jìn)而得到任意長的密鑰流。

混沌算法公式如下:

加密技術(shù)在分布仿真系統(tǒng)中的應(yīng)用

當(dāng)公式(2)滿足條件3.57<μ≤4.0且O<xo<l時(shí),輸出結(jié)果序列為混亂狀態(tài)的(0,1)范圍之內(nèi)的高隨機(jī)性數(shù)據(jù)。可以任取限定范圍內(nèi)不同的μ和初值xo,得到任意的密鑰流序列。只要參與數(shù)據(jù)收發(fā)的聯(lián)邦成員之間約定相同的參數(shù)值以及采用序列的規(guī)則,即可成功的實(shí)現(xiàn)大量密鑰的生成,同時(shí)又可免去密鑰分發(fā)的麻煩。

由于RSA算法的加密速度較慢。故不將其直接應(yīng)用于仿真系統(tǒng)的明文加密,而是將其用于密鑰加密,相當(dāng)于實(shí)施了數(shù)據(jù)加密的二級密鑰管理。極大地提高了分布仿真系統(tǒng)的安全性。

三、分布仿真系統(tǒng)加密等級劃分

不同的分布仿真系統(tǒng),對于實(shí)時(shí)性的要求是不同的。雖然總體來說,仿真系統(tǒng)對于實(shí)時(shí)性的要求較高,但是也存在相對實(shí)時(shí)和相對非實(shí)時(shí)的區(qū)別。

對于一個(gè)具體的分布仿真系統(tǒng),可分為平臺(tái)級仿真及聚合級仿真兩種類型。其中,平臺(tái)級仿真是指在仿真推進(jìn)過程中,按照一定的時(shí)間間隔按時(shí)更新仿真實(shí)體的位置、狀態(tài)等相關(guān)信息,一般來說,經(jīng)常采用的時(shí)間間隔為lOms,30ms,50ms等。聚合級仿真則不以時(shí)間作為信息更新的依據(jù),而是根據(jù)某一事件來進(jìn)行推進(jìn),例如一個(gè)軍事對抗演習(xí)仿真,可能需要根據(jù)軍隊(duì)的行進(jìn)位置進(jìn)行檢測,此時(shí),時(shí)間僅為事件的一個(gè)具體參數(shù)。相比較而言,平臺(tái)級仿真系統(tǒng)對于加解密的實(shí)時(shí)性要求嚴(yán)格,而聚合級仿真系統(tǒng)則相對較弱。

下面,針對平臺(tái)級和聚合級分布仿真系統(tǒng)分別進(jìn)行考慮,假定各聯(lián)邦成員的仿真數(shù)據(jù)按照重要性不同劃分可為4個(gè)等級,從低到高依次為1,2,3,4級,則相應(yīng)加密等級劃分如表2所示:

加密技術(shù)在分布仿真系統(tǒng)中的應(yīng)用

其中,所采用的密鑰流均為經(jīng)RSA加密后的工作密鑰流。用于第1級與二進(jìn)制明文直接異或加密的密鑰流根據(jù)其ASCII值進(jìn)行二進(jìn)制化即可得到。

小知識(shí)之系統(tǒng)仿真

所謂系統(tǒng)仿真(system simulation),就是根據(jù)系統(tǒng)分析的目的,在分析系統(tǒng)各要素性質(zhì)及其相互關(guān)系的基礎(chǔ)上,建立能描述系統(tǒng)結(jié)構(gòu)或行為過程的、且具有一定邏輯關(guān)系或數(shù)量關(guān)系的仿真模型,據(jù)此進(jìn)行試驗(yàn)或定量分析,以獲得正確決策所需的各種信息。