《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > 移動(dòng)數(shù)據(jù)通信的無(wú)條件安全加密方案設(shè)計(jì)

移動(dòng)數(shù)據(jù)通信的無(wú)條件安全加密方案設(shè)計(jì)

2008-07-28
作者:鄭潔穎, 周玲玲, 徐國(guó)治

??? 摘 要:? 隨著移動(dòng)設(shè)備" title="移動(dòng)設(shè)備">移動(dòng)設(shè)備與有線通信網(wǎng)之間數(shù)據(jù)交互的需求不斷增加,移動(dòng)增值服務(wù)中數(shù)據(jù)安全的重要性也在不斷提高。提出了一種移動(dòng)數(shù)據(jù)通信的無(wú)條件安全加密方案,設(shè)計(jì)中既滿(mǎn)足了移動(dòng)平臺(tái)的有限計(jì)算和網(wǎng)絡(luò)性能,又具有良好的安全性。最后給出了方案的性能分析和實(shí)驗(yàn)結(jié)果。
??? 關(guān)鍵詞:? 移動(dòng)數(shù)據(jù)通信; 無(wú)條件安全; 密鑰發(fā)布

?

??? 隨著移動(dòng)設(shè)備的用途由單一的語(yǔ)音通信向語(yǔ)音與數(shù)據(jù)通信相結(jié)合轉(zhuǎn)變,移動(dòng)增值服務(wù)平臺(tái)中移動(dòng)設(shè)備或便攜設(shè)備之間以及移動(dòng)設(shè)備與有線數(shù)據(jù)通信網(wǎng)之間的數(shù)據(jù)交換越來(lái)越頻繁,移動(dòng)通信系統(tǒng)" title="移動(dòng)通信系統(tǒng)">移動(dòng)通信系統(tǒng)中的安全問(wèn)題正在受到國(guó)際上高度的重視和廣泛的研究。但由于受到移動(dòng)設(shè)備計(jì)算性能的限制和目前無(wú)線通信網(wǎng)絡(luò)的帶寬限制,將有線網(wǎng)絡(luò)和計(jì)算機(jī)平臺(tái)上使用的信息加密算法直接應(yīng)用于移動(dòng)通信系統(tǒng)是不實(shí)際的。通過(guò)對(duì)已有的信息加密體制的研究和移動(dòng)平臺(tái)的開(kāi)發(fā)實(shí)踐,針對(duì)移動(dòng)通信系統(tǒng)的數(shù)據(jù)交換,本文提出一種應(yīng)用層的移動(dòng)數(shù)據(jù)傳輸無(wú)條件安全加密方案。它在執(zhí)行效率上有相當(dāng)?shù)膬?yōu)勢(shì),并能滿(mǎn)足系統(tǒng)的安全要求。
1 移動(dòng)數(shù)據(jù)通信的無(wú)條件安全加密方案
1.1 狀態(tài)機(jī)制

??? 在移動(dòng)設(shè)備與中心服務(wù)器的交互中,出于通用性和擴(kuò)展性的考慮,通常采用HTTP通信方式。但由于HTTP是無(wú)狀態(tài)協(xié)議,為滿(mǎn)足數(shù)據(jù)交互的需要,必須引入一種用以在客戶(hù)端" title="客戶(hù)端">客戶(hù)端與服務(wù)器之間保持狀態(tài)的解決方案。為了盡可能地減輕客戶(hù)端工作量,筆者使用基于服務(wù)器端的Session機(jī)制,即在中心服務(wù)器上,使用一種類(lèi)似散列表的結(jié)構(gòu)保存信息。
??? 當(dāng)程序需要為某個(gè)客戶(hù)端的請(qǐng)求創(chuàng)建一個(gè)Session時(shí),服務(wù)器首先檢查該客戶(hù)端提交的表單里是否已包含一個(gè)Session標(biāo)識(shí),即Session ID,并檢索服務(wù)器上是否存有對(duì)應(yīng)的Session,如有則說(shuō)明已經(jīng)為此客戶(hù)端創(chuàng)建過(guò)Session,且可用(未過(guò)期),服務(wù)器就按照Session ID將對(duì)應(yīng)的Session檢索出來(lái)使用;如不符合則返回錯(cuò)誤信息;如果客戶(hù)端請(qǐng)求不包含Session ID,則為此客戶(hù)端創(chuàng)建一個(gè)Session,并且生成一個(gè)與此Session相關(guān)聯(lián)的Session ID,在本次響應(yīng)中返回給客戶(hù)端保存。
對(duì)于每個(gè)特定移動(dòng)用戶(hù)而言,由于其對(duì)數(shù)據(jù)交換的要求往往集中在一定時(shí)間之內(nèi),出于安全性和節(jié)約資源的考慮,可在服務(wù)器腳本中設(shè)置相對(duì)較短的Session在無(wú)響應(yīng)狀態(tài)下的保持時(shí)間,在一定時(shí)間(如十分鐘)內(nèi)如果客戶(hù)端與服務(wù)器無(wú)交互,則Session自動(dòng)取消,服務(wù)器不再保留這次執(zhí)行過(guò)程的狀態(tài)信息。
1.2?加密算法
??? 信息加密的目的在于將可讀信息(明文)經(jīng)過(guò)一組規(guī)則變換為無(wú)法識(shí)別的內(nèi)容(密文),使得惡意攻擊者即使截獲也無(wú)法閱讀。這種變換的規(guī)則即稱(chēng)之為加密算法。以密鑰為基準(zhǔn),密碼體制可分為對(duì)稱(chēng)密鑰(私鑰)加密體制和非對(duì)稱(chēng)密鑰(公鑰)加密體制[1-2]。由于對(duì)稱(chēng)密鑰加密與非對(duì)稱(chēng)密鑰加密各有所長(zhǎng),目前網(wǎng)絡(luò)中的密鑰加密普遍采用混合加密體制,即密鑰傳送采用非對(duì)稱(chēng)密鑰加密,而數(shù)據(jù)加密" title="數(shù)據(jù)加密">數(shù)據(jù)加密則采用對(duì)稱(chēng)密鑰加密。移動(dòng)通信系統(tǒng)有其固有的特點(diǎn),其加密算法比一般通信網(wǎng)絡(luò)有更高的要求,可以歸納如下:
??? (1) 良好的安全性能;
??? (2) 較高的算法執(zhí)行效率;
??? (3) 有限的密文長(zhǎng)度;
??? (4) 較低的計(jì)算負(fù)荷和通信負(fù)荷。
??? 非對(duì)稱(chēng)密鑰加密雖然不存在密鑰管理問(wèn)題,但算法復(fù)雜、軟件實(shí)現(xiàn)效率很低,且移動(dòng)設(shè)備與服務(wù)器之間敏感數(shù)據(jù)的傳輸(如用戶(hù)注冊(cè)、登錄、提交訂單等)在一次連接過(guò)程中往往只需有限次數(shù)甚至1次,因此本文在保證安全性的基礎(chǔ)上采用了基于對(duì)稱(chēng)密鑰加密的“一次一密”數(shù)據(jù)加密方案。根據(jù)信息論的觀點(diǎn),對(duì)手觀察密文和前后明文的不確定性相等,即觀察密文不會(huì)為之提供任何有助于破譯密碼的信息,因此“一次一密”的對(duì)稱(chēng)密鑰加密方案可稱(chēng)為是無(wú)條件且安全的[3]。經(jīng)過(guò)對(duì)現(xiàn)有算法的比較和實(shí)驗(yàn),實(shí)現(xiàn)方案時(shí)選擇了AES算法和XXTEA算法。
??? 高級(jí)加密標(biāo)準(zhǔn)(AES)是在數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)應(yīng)用二十年后已無(wú)法適應(yīng)當(dāng)前分布式開(kāi)放網(wǎng)絡(luò)對(duì)數(shù)據(jù)加密的要求的情況下,通過(guò)公開(kāi)征集和篩選,于2000年10月最終確定的。該算法是比利時(shí)人Joan Daeman和Vincent Rijmen提交的Rijndael算法,算法充分運(yùn)用了擴(kuò)散和混淆技術(shù),并使用128/192/256位這三種可變長(zhǎng)度的密鑰,對(duì)128位分組數(shù)據(jù)進(jìn)行加密。算法包括:根據(jù)不同的分組長(zhǎng)度確定的輪變化和非線性層、線性混合層及密鑰加密層組成的圈變化[4]。對(duì)于窮舉攻擊而言,128位長(zhǎng)度的密鑰在目前已經(jīng)達(dá)到了計(jì)算安全性的要求。
??? 1994年劍橋計(jì)算機(jī)實(shí)驗(yàn)室的 David Wheeler 和 Roger Needham 設(shè)計(jì)了TEA 算法,使用128位的密鑰為 64 位的信息塊進(jìn)行加密,并使用一個(gè)來(lái)源于黃金比率的常數(shù)δ為倍數(shù),以保證每一輪加密各不相同。之后設(shè)計(jì)者針對(duì)其缺陷提出了TEA 的升級(jí)版本XTEA(也被稱(chēng)為“tean”)和Block TEA,并于1998年給出了Block TEA 算法的修訂版,即 XXTEA。XXTEA 使用與Block TEA相似的結(jié)構(gòu),但在處理塊中每個(gè)字時(shí)使用相鄰字,并利用一個(gè)更復(fù)雜的即使用兩個(gè)輸入函數(shù)的MX函數(shù)代替 XTEA輪循函數(shù)[5-6]
??? 在候選方案中選擇AES和XXTEA作為對(duì)稱(chēng)加密算法,是由于AES算法作為新一代的數(shù)據(jù)加密標(biāo)準(zhǔn)匯聚了強(qiáng)安全性、高性能、高效率、易用和靈活等優(yōu)點(diǎn),并已證明在嵌入式系統(tǒng)中表現(xiàn)優(yōu)秀;而XXTEA 算法安全性較高,且由于無(wú)需查表或S盒,因此初始化時(shí)間短、算法快速,適用于Web開(kāi)發(fā)中,但在實(shí)際開(kāi)發(fā)中目前應(yīng)用尚少。選擇這兩種算法確保了加密操作和解密操作能在客戶(hù)端的有限空間環(huán)境中和服務(wù)器端有效執(zhí)行,有較高實(shí)驗(yàn)價(jià)值和實(shí)用價(jià)值。
1.3 密鑰發(fā)布與管理
??? 密鑰是控制信息加解密算法實(shí)現(xiàn)的關(guān)鍵信息。對(duì)稱(chēng)密鑰加密的薄弱環(huán)節(jié),亦即需要解決的問(wèn)題,是共享密鑰的發(fā)布和管理。
??? 在該無(wú)條件安全加密方案中,服務(wù)器端與所有客戶(hù)端共享n種加解密方式,依次為C0, C1, …, Cn-1。令待發(fā)布的密鑰為K,則服務(wù)器端密鑰發(fā)布過(guò)程可描述如下:
??? (1) 收到客戶(hù)端請(qǐng)求后,服務(wù)器為其隨機(jī)生成0~26 535之間的整數(shù)r,得到m = r mod n。
??? (2) 選取m對(duì)應(yīng)的加密方式,即Cm。如果該加密方式需要參數(shù),則隨機(jī)生成,并用Cm加密K,令參數(shù)為P,加密后的密鑰為Ke。
??? (3) 將(r, P, Ke)的長(zhǎng)度按約定補(bǔ)足至C0, C1, …, Cn-1所對(duì)應(yīng)的序列(隨機(jī)數(shù)" title="隨機(jī)數(shù)">隨機(jī)數(shù),參數(shù),密鑰)的固定長(zhǎng)度,其中補(bǔ)足的部分隨機(jī)生成。令補(bǔ)足后的序列為I1,并將I1傳送到客戶(hù)端。
??? 客戶(hù)端獲取密鑰的算法為以上算法的逆操作,可描述如下:
??? (1) 從服務(wù)器端獲取I1序列并讀取隨機(jī)數(shù)r。
??? (2) 得到m = r mod n,獲得其對(duì)應(yīng)的加密方式為Cm,如果該加密方式需要參數(shù),則從服務(wù)器端獲取的序列中讀取參數(shù)P。
??? (3) 以參數(shù)P的加密方式Cm 解密Ke 得到K。
??? 客戶(hù)端獲取密鑰后,以某種事先商定的加密算法加密敏感數(shù)據(jù)信息,將加密后的序列I2傳送到服務(wù)器端。服務(wù)器端通過(guò)Session ID檢驗(yàn)客戶(hù)端臨時(shí)身份,然后使用剛才約定的密鑰解密敏感數(shù)據(jù)信息。
?? 在本文所述的密鑰發(fā)布方案中,有n種方式供隨機(jī)選擇。在具體實(shí)現(xiàn)中,C0、C1、C2、C3分別設(shè)為XXTEA固定密鑰、XXTEA可變密鑰(可變密鑰由服務(wù)器隨機(jī)生成,即密鑰發(fā)布中的參數(shù)P)、AES固定密鑰、AES可變密鑰。當(dāng)然,也可以采用此方案的構(gòu)架根據(jù)實(shí)際情況選擇具體加密方式。
2?性能分析
2.1?安全性分析

??? (1)在該方案中,明文中不出現(xiàn)任何用戶(hù)關(guān)鍵字,且在一次執(zhí)行過(guò)程中先后出現(xiàn)在無(wú)線接口上的兩個(gè)序列(I1和I2)對(duì)于攻擊者而言無(wú)法提供任何可關(guān)聯(lián)的信息,因此,攻擊者無(wú)法關(guān)聯(lián)同一次執(zhí)行過(guò)程中的消息,由于一次性隨機(jī)數(shù)的存在,更無(wú)法關(guān)聯(lián)不同執(zhí)行過(guò)程中的消息,從而有效地保護(hù)了用戶(hù)的身份和位置匿名性。
??? (2)根據(jù)所選加密算法的不同以及選擇使用固定密鑰或可變密鑰,對(duì)不同的加解密方案,參數(shù)的長(zhǎng)度可能不同,最后發(fā)送給客戶(hù)端的字節(jié)數(shù)也可能不同,這樣可能降低密碼分析的難度,引入安全漏洞,為此,將長(zhǎng)度較短的傳輸長(zhǎng)度補(bǔ)足為固定長(zhǎng)度再進(jìn)行加密。
??? (3) 由于方案中傳輸?shù)男畔⒉恢苯影蚕砻荑€,而I1中的隨機(jī)數(shù)又是一次性的,可保證密鑰的新鮮性,所以敵手即使獲得了上次的共享密鑰,也無(wú)法通過(guò)其推測(cè)當(dāng)前和以后的密鑰,因此該方案可以提供無(wú)條件前向安全性。
??? (4) 由于一次性隨機(jī)數(shù)的引入和Session ID的檢驗(yàn),敵手無(wú)法通過(guò)偽裝客戶(hù)端或重發(fā)密文攻擊獲得認(rèn)證。
??? (5) 由于方案中共享密鑰并不儲(chǔ)存在手機(jī)中,也不保存在服務(wù)器數(shù)據(jù)庫(kù)內(nèi),而是在每次數(shù)據(jù)交換執(zhí)行過(guò)程中隨機(jī)生成,因此,即使用戶(hù)設(shè)備(假定為手機(jī))失竊或者服務(wù)器被入侵,安全性也能夠得到較好的保證。
2.2? 執(zhí)行效率分析
??? 與混合加密體制相比,這里所述的方案無(wú)需可信第三方的參與,且避免了大素?cái)?shù)生成等費(fèi)時(shí)操作,因此大大提高了效率,增加了在移動(dòng)平臺(tái)上的可用性,而方案中包含的操作,如簡(jiǎn)單算術(shù)操作和對(duì)稱(chēng)密鑰加解密操作,對(duì)于服務(wù)器和移動(dòng)設(shè)備而言都是容易實(shí)現(xiàn)的,且計(jì)算量也是可以接受的。
??? (1) 計(jì)算量:移動(dòng)客戶(hù)端需要一次移位操作,一次對(duì)稱(chēng)密鑰解密操作,一次對(duì)稱(chēng)密鑰加密操作;服務(wù)器端一次隨機(jī)數(shù)生成,需要一次移位操作,一次對(duì)稱(chēng)密鑰加密操作,一次對(duì)稱(chēng)密鑰解密操作。
??? (2) 交互次數(shù):移動(dòng)客戶(hù)與服務(wù)網(wǎng)絡(luò)需要進(jìn)行兩次交互。
??? (3) 消息數(shù)目:需要2條不同的消息。
3 實(shí)驗(yàn)及結(jié)果
??? 實(shí)驗(yàn)中,客戶(hù)端用J2ME實(shí)現(xiàn),模擬器為Sony Ericsson公司提供的WTK2.2。服務(wù)器工作站的CPU為Intel Xeon 3.00GHz,實(shí)現(xiàn)算法的編程語(yǔ)言為C#。對(duì)于密鑰發(fā)布過(guò)程的執(zhí)行進(jìn)行多次測(cè)試,并統(tǒng)計(jì)了其中幾種加密方式各自發(fā)布過(guò)程的平均響應(yīng)時(shí)間。測(cè)試結(jié)果如表1和表2所示。

?

?


??? 真機(jī)測(cè)試使用的測(cè)試平臺(tái)為SonyEricsson W550手機(jī),由于需要加密的數(shù)據(jù)長(zhǎng)度不固定,這里給出了加密1Kbit數(shù)據(jù)的平均時(shí)間。
??? 與網(wǎng)絡(luò)通信所用的時(shí)間相比,毫秒級(jí)的程序執(zhí)行時(shí)間是可以接受的,完全可以滿(mǎn)足實(shí)際系統(tǒng)的需要。該方案已經(jīng)應(yīng)用于一個(gè)移動(dòng)個(gè)人信息服務(wù)系統(tǒng)的用戶(hù)認(rèn)證模塊中,表現(xiàn)良好。
??? 筆者針對(duì)移動(dòng)通信的特點(diǎn)和實(shí)際情況,提出了一種移動(dòng)數(shù)據(jù)的無(wú)條件安全傳輸方案,并給出了方案的安全性分析、效率分析和測(cè)試數(shù)據(jù)。方案設(shè)計(jì)中注重簡(jiǎn)潔有效,既保證了安全性能,又避免了費(fèi)時(shí)運(yùn)算,滿(mǎn)足了移動(dòng)通信系統(tǒng)的實(shí)用要求。該方案既可以直接應(yīng)用于用戶(hù)認(rèn)證,也可以經(jīng)過(guò)修改和擴(kuò)展集成到各種移動(dòng)通信增值服務(wù)平臺(tái)的數(shù)據(jù)交互模塊中。
參考文獻(xiàn)
[1]? ATUL K. 密碼學(xué)與網(wǎng)絡(luò)安全[M]. 北京:清華大學(xué)出版社,2005.
[2]? FERGUSON N, SCHNEIER B.密碼學(xué)實(shí)踐[M]. 北京:電子工業(yè)出版社,2005.
[3]? 孫淑玲.應(yīng)用密碼學(xué)[M]. 北京:清華大學(xué)出版社,2004.
[4]? NIST. Advanced encryption standard (AES)[S]. Federal Information Processing Standards Publication, 2001
[5]? RUSSELL M D. Tinyness:an overview of TEA and related ciphers[EB/OL]. http://www-users.cs.york.ac.uk/matthew/TEA/, 2004.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。