J2ME平臺中混沌加密算法的應(yīng)用

由于傳統(tǒng)混沌加密算法對數(shù)據(jù)文件加密時存在運算開銷大、運算效率不高等缺點,不能有效地應(yīng)用于移動應(yīng)用系統(tǒng),因此提出把混沌理論應(yīng)用剄信息安全系統(tǒng)設(shè)計,并用適合移動通信系統(tǒng)的混沌加密算法,從移動通信的安全需求出發(fā),對J2ME平臺的安全性支持進行了詳細(xì)的分析,將一種新的混沌加密算法引入移動通信中,把設(shè)計的重點放在J2ME平臺上的客戶端和服務(wù)器端,并在Matlab上對提出的加密算法進行加密仿真。

一、移動應(yīng)用的安全需求

移動應(yīng)用具有其得天獨厚的優(yōu)勢,深受移動用戶的青睞,但移動應(yīng)用的開放特性和廣播特性,使得其面臨著重大的安全隱患,攻擊者可以進行截取、插入或重放等惡意攻擊。再者,移動終端運行環(huán)境非常有限,移動軟環(huán)境的瀏覽器、協(xié)議、描述語言的限制等,增加了移動應(yīng)用安全認(rèn)證的困難。

盡管在傳統(tǒng)網(wǎng)絡(luò)中已經(jīng)有了很多成熟、有效、復(fù)雜的普通應(yīng)用方案,但普通應(yīng)用系統(tǒng)和移動應(yīng)用系統(tǒng)相比存在巨大差異,其主要表現(xiàn)在移動應(yīng)用系統(tǒng)易受環(huán)境影響、隨機比特出錯率高、網(wǎng)絡(luò)延遲長、雙向帶寬不平衡等方面。這些差異的存在使得已有的普通應(yīng)用系統(tǒng)無法適用于移動應(yīng)用系統(tǒng)。

因此,有必要結(jié)合這些差異對移動應(yīng)用系統(tǒng)進行研究。目前,無線通信技術(shù)發(fā)展迅速,但不認(rèn)為這些技術(shù)的發(fā)展會使移動應(yīng)用的諸多限制有所緩解。與摩爾定理不同,認(rèn)
為技術(shù)的發(fā)展將推動無線設(shè)備成本的迅速降低,而不足移動應(yīng)用安全的提高,這是由移動應(yīng)用復(fù)雜環(huán)境所決定的。考慮到移動環(huán)境的特點,綜合考慮各方面的因素,認(rèn)為無線移動應(yīng)用的安全應(yīng)確保雙方的合法權(quán)益所涉及的內(nèi)容不受非法入侵者的侵害,通常主要涉及以下幾個方面的內(nèi)容:

1、數(shù)據(jù)的機密性(confidentiality)

移動應(yīng)用應(yīng)該對主要信息進行加密處理,防止對信息的非法操作(對信息的非法存取、竊取、篡改),以避免非法用戶獲取和解讀原始數(shù)據(jù)。移動應(yīng)用信息直接代表著個人、企業(yè)或國家的商業(yè)機密,而移動應(yīng)用建立在開放的網(wǎng)絡(luò)環(huán)境上。因此,要預(yù)防非法的信息存取和信息被非法竊取。防止合法或隱私數(shù)據(jù)為非法用戶所獲得,通常使用加密的手段實現(xiàn),從而確保交易過程中只有交易的雙方才能唯一知道交易的內(nèi)容。

2、完整性(integrity)

數(shù)據(jù)輸入時的意外差錯或欺詐行為,數(shù)據(jù)傳輸過程中信息丟失、信息重復(fù)或息傳送的次序差異可能會導(dǎo)致貿(mào)易各方信息的差異。保持貿(mào)易各方信息的完整性是移動應(yīng)用的基礎(chǔ)。因此,要預(yù)防對信息的隨意生成、修改和刪除,同時要防止數(shù)據(jù)傳送過程中信息的丟失和重復(fù)并保證信息傳送次序的統(tǒng)一。移動應(yīng)用系統(tǒng)應(yīng)該提供對數(shù)據(jù)進行完整性驗證的手段。完整性要求保證數(shù)據(jù)的一致性,防止數(shù)據(jù)被非授權(quán)建立、修改和破壞。完整性一般可通過提取信息消息摘要的方式來獲得。確保交易他方或非法入侵者不能對交易的內(nèi)容進行修改。

3、鑒別(authentication)

移動應(yīng)用系統(tǒng)應(yīng)該提供通信雙方進行身份鑒別的機制,確定要進行交易的貿(mào)易方正是進行交易所期望的貿(mào)易方是保證電子商務(wù)順利進行的關(guān)鍵。交易雙方是可以信任的,即確保服務(wù)間的相互身份認(rèn)證,防止欺詐行為的產(chǎn)生。

在傳統(tǒng)的紙面貿(mào)易中,貿(mào)易雙方通過在交易合同、契約或貿(mào)易單據(jù)等書面文件上手寫簽名或印章來鑒別貿(mào)易伙伴,確定合同、契約、單據(jù)的可靠性并預(yù)防抵賴行為的發(fā)生。在無紙化的移動應(yīng)用系統(tǒng)方式下,通過手寫簽名和印章進行貿(mào)易方的鑒別已是不可能的。因此,要在交易信息的傳輸過程中為參與交易的個人、企業(yè)或國家提供可靠的標(biāo)識。一般可以通過數(shù)字簽名和數(shù)字證書相結(jié)合的方式實現(xiàn)用戶身份的鑒別。

4、不可否認(rèn)性(non-repudiation)

確保交易行為的正確性,交易雙方不能否認(rèn)交易行為的發(fā)生,同時能處理發(fā)生的交易糾紛。

二、J2ME平臺的安全性支持分析

由于Java平臺的最顯著的特性之一是能夠動態(tài)地、安全地用各種類型的網(wǎng)絡(luò)向客戶端設(shè)備傳送交互內(nèi)容和應(yīng)用程序。從所保護的對象的角度分類,J2ME對應(yīng)用安全性的支持主要可以分為三個方面:保護設(shè)備資源的安全、保護網(wǎng)絡(luò)傳輸?shù)陌踩霸黾拥谌焦ぞ甙?/p>

1、設(shè)備資源的安全

應(yīng)用必須不能破壞應(yīng)用所執(zhí)行的環(huán)境,也就是應(yīng)用運行的設(shè)備,不能訪問未被授權(quán)的資源?;贘2ME的移動應(yīng)用平臺可以從開發(fā)語言、底層KVM的安全、采用沙箱模型和保護系統(tǒng)類來實現(xiàn)。

2、網(wǎng)絡(luò)傳輸?shù)陌踩?/strong>

網(wǎng)絡(luò)傳輸中主要面臨的安全問題有:數(shù)據(jù)完整性、認(rèn)證和私密性。在J2ME平臺中是通過MIDP中集成KSSL實現(xiàn)的。服務(wù)器端用Tomcat作為Hitps的服務(wù)器,業(yè)務(wù)邏輯由業(yè)務(wù)Servlet來實現(xiàn),客戶端通過導(dǎo)人Certificate來實現(xiàn)對服務(wù)器的認(rèn)證,此后客戶與服務(wù)器的通信都是經(jīng)過SSL加密的。

KSSL的實現(xiàn)框架如圖1所示。

J2ME平臺中混沌加密算法的應(yīng)用

3、第三方工具包

利用第三方工具包中提供的算法支持類,實現(xiàn)安全加密API可以提高J2ME平臺對應(yīng)用安全性支持。一些開源安全項目和公司開發(fā)的工具包提供了可用于J2ME平臺上的安全支持類,可用于J2ME平臺的第三方安全工具包有:BouncyCastle輕量級安全工具包、IAIK JCE-ME工具包、Phaos Tech-nology Micro Foundation工具包、NTRU jNeo的Java工具包、安全加密工具包等。

三、移動應(yīng)用中的加密算法的分析與設(shè)計

1、混沌迭代函數(shù)設(shè)計

(1)Logistic映射

一個混沌加密算法通常利用一個系統(tǒng)初值生成一個類隨機信號序列,將待加密信息采用某種編碼方式附加到混沌序列形成密文序列,解密時用同樣的混沌序列對密文序列進行解密。Logi8tic混沌系統(tǒng)是一種被廣為使用的一維混沌系統(tǒng),它是定義在(0,1)上的一種映射:

J2ME平臺中混沌加密算法的應(yīng)用

其中參數(shù)?λ∈(0,4]為系統(tǒng)標(biāo)量參數(shù),Xn∈(0,1]是序列中的第n個值,Xn+1是序列中的下一個值(n=0,1,2,…),Xo是序列初值。當(dāng)λ>3.83時由該映射產(chǎn)生的序列呈現(xiàn)出混沌態(tài)口一般將初值xo、系統(tǒng)參數(shù)λ作為種子密鑰產(chǎn)生混沌密鑰序列a通過Logistic模型的分岔圖(圖2)可以直觀了解λ的取值對迭代過程的影響和迭代結(jié)果的分布情況。

J2ME平臺中混沌加密算法的應(yīng)用

由圖2可知,該混沌迭代函數(shù)的問題是:存在明顯的“穩(wěn)定窗”,即點聚集于某個區(qū)間,而其它區(qū)間內(nèi)則是空白,當(dāng)λ<3時,迭代會趨于某一個周定值;控制參數(shù)的有效取值范圍太小,僅為0.4左右;再者,僅用一個混沌系統(tǒng)由一個初值和系統(tǒng)參數(shù)作為種子密鑰產(chǎn)生混沌密鑰序列,其安全性是不夠的。因為易于被攻擊者識別類型;一旦混沌系統(tǒng)的類型被識別,則只要截獲足夠長的明文/密文對,就能夠破解種子密鑰,從而破解混沌序列信息。

(2) 一種新的混沌迭代函數(shù)

根據(jù)原混沌算法存在的問題,我們提出了一種改進的加密算法,在混沌迭代函數(shù)中加入了冪函數(shù)(1 - x)β。在混沌迭代函數(shù)中加入正切函數(shù)和冪函數(shù),形成新的混沌生成
算法,使得冪函數(shù)隨著名的增大,快速衰減,為了使衰減周期變長,那么設(shè)法提高髫增大帶來的函數(shù)值增大效果。新加密算法的公式表示為:

J2ME平臺中混沌加密算法的應(yīng)用

在(0,1.4]內(nèi)隨機選取100個α值,對每一個α,從?β=5開始,每次增大0.01,直到β= 43,經(jīng)過約39萬組(每組100萬個)實驗數(shù)據(jù)證明該迭代函數(shù)均能產(chǎn)生混沌現(xiàn)象,滿足非重復(fù)性、隨機性、發(fā)散性要求。隨機選取其它α、β值做類似的迭代實驗,結(jié)果表明都能產(chǎn)生良好混沌效果。取α=1. 57,β=3.5時函數(shù)的迭代情況如圖3所示。

J2ME平臺中混沌加密算法的應(yīng)用

2、混沌加密算法的分析與設(shè)計

在本文中采用混沌加密算法作為J2ME平臺的第三方工具包API來進行移動應(yīng)用中的安全性研究,因此混沌加密算法的設(shè)計是至關(guān)重要的,它決定了混沌加密系統(tǒng)的安全性以及執(zhí)行效率。由于加密的是數(shù)字量,所以將這個由實數(shù)構(gòu)成的序列{Xi}映射成由整數(shù)構(gòu)成的偽隨機序列來充當(dāng)加密密鑰。常用的一種映射方法是選取X;小數(shù)點后的幾位有效數(shù)字構(gòu)成整數(shù)。由此提出一個基于Logistic混沌映射的加密確/解密模型如圖4所示,解密過程是加密的逆過程,初始值Xo和λ是Logistic方程的參數(shù),迭代M次后得到Xo將X對256取余,然后與經(jīng)過置換后的明文異或獲得加密密文。

J2ME平臺中混沌加密算法的應(yīng)用

在基于J2ME的移動應(yīng)用中,混沌加密算法設(shè)汁可針對客戶端和服務(wù)器兩個方面來進行??蛻舳擞没煦缂用茴悓崿F(xiàn)數(shù)據(jù)信息的加密和解密。服務(wù)器端組件用J2ME開發(fā),實
現(xiàn)對客戶端信息加密、解密、更改帳戶信息和傳遞信息等功能。

混沌加密算法如圖5所示??蛻舳死妹荑€對(K1,K2),對發(fā)送的信息進行加密,將信息分成一定的長度,然后與K1,K2做反饋型異或運算。

J2ME平臺中混沌加密算法的應(yīng)用

也就是說從第二個字節(jié)始,前一字節(jié)的密文與密鑰異或后,再與后一字節(jié)的明文加密,經(jīng)過兩次加密后得到的密文通過HTTPS協(xié)議發(fā)送到服務(wù)器端,服務(wù)器利用它預(yù)存的客戶端初始密碼,對接收的信息進行解密并做進一步的處理。

同時,服務(wù)器也建立用戶注冊信息,并從密鑰生成器中獲取新的密鑰( K3,K4),存于用戶信息表中。然后將經(jīng)過K1,K2加密后的新密鑰傳送到客戶端。客戶端獲得密鑰后,自動更新密鑰。服務(wù)器用新密鑰對客戶需要的信息加密后通過HTTPS協(xié)議傳送,最后由客戶端解密并獲得需求信息。

可以看出,在加密與解密中,系統(tǒng)的所有模塊都是可以重用的,只是按照加密解密的順序不同,模塊流程不同而已,所以系統(tǒng)的加密覦密可以認(rèn)為是相同的,使得系統(tǒng)的結(jié)構(gòu)簡單,成本也很低。當(dāng)服務(wù)器端的邏輯層接收用戶數(shù)據(jù)后,從數(shù)據(jù)庫中查詢出用戶的密碼,然后用上述的解密算法得到明文。

四、仿真研究

以J2ME平臺中設(shè)計—個移動應(yīng)用的安全加密算法(混沌加密算法)為例,采用Matlab工具對提出的加密算法進行數(shù)據(jù)加密實驗,實驗時隨機輸入一段明文:

Finally,B new type of encryption algorithm-chaot-icencryptionalgorithm was tran8planted to the J2ME plat-forrn. What-s more,give a chaotic encryption algorithm based onJ2ME platform design plan and. realize the 8imulation resuIt.

通過對上述明文的實驗,得到如下概率統(tǒng)計數(shù)據(jù),如圖6所示,圖中橫坐標(biāo)表示ACSII碼的碼值,縱坐標(biāo)表示對應(yīng)碼值出現(xiàn)的頻率。

J2ME平臺中混沌加密算法的應(yīng)用

基于J2ME的移動互聯(lián)網(wǎng)信息安全監(jiān)管試驗系統(tǒng)采用混沌算法對密鑰是很敏感的,密鑰有微小的差別,加密解密的結(jié)果就會不同。破譯者只有得到確切的加密密鑰,才能對密文進行還原,破譯者猜測的密鑰只要與真正的密鑰有一點差別,所解密得到的信息都會和真實信息的本來面目相差很大。這樣,給破譯者的攻擊行為加大了難度,保證了系統(tǒng)的安全性。

小知識之J2ME

J2ME(Java Platform,Micro Edition),是為機頂盒、移動電話和PDA之類嵌入式消費電子設(shè)備提供的Java語言平臺,包括虛擬機和一系列標(biāo)準(zhǔn)化的Java API。它和Java SE、Java EE一起構(gòu)成Java技術(shù)的三大版本,并且同樣是通過JCP(Java Community Process)制訂的。