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

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

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

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

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

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

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

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

2、完整性(integrity)

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

3、鑒別(authentication)

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

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

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

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

二、J2ME平臺(tái)的安全性支持分析

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

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

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

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

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

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

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

3、第三方工具包

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

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

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

(1)Logistic映射

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

四、仿真研究

以J2ME平臺(tái)中設(shè)計(jì)—個(gè)移動(dòng)應(yīng)用的安全加密算法(混沌加密算法)為例,采用Matlab工具對(duì)提出的加密算法進(jìn)行數(shù)據(jù)加密實(shí)驗(yàn),實(shí)驗(yàn)時(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.

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

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

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

小知識(shí)之J2ME

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