摘 要: 量子計算機技術(shù)的進步,使傳統(tǒng)公鑰密碼系統(tǒng)受到了巨大的威脅,特別對基于傳統(tǒng)公鑰加密的應(yīng)用系統(tǒng)帶來不可估量的損失。與此同時,辮子群公鑰密碼算法的提出,有效地防止了量子技術(shù)對公鑰密碼的破譯而且可以抵抗已知的各種攻擊。在研究辮子群密碼算法和傳統(tǒng)公鑰算法、按需裝配Agent的概念和系統(tǒng)模型特點的基礎(chǔ)上,提出了一種辮子群混合加密方法并有效地應(yīng)用到按需裝配Agent的系統(tǒng)中,從而大大提高了Agent系統(tǒng)的安全性。
關(guān)鍵詞: 辮子群;公鑰密碼系統(tǒng);混合加密;按需裝配Agent
公鑰密碼算法自產(chǎn)生之日起就占據(jù)了現(xiàn)代密碼學(xué)的核心地位,其主要思想是利用數(shù)學(xué)中的某些難解問題如大整數(shù)分解問題、離散對數(shù)問題等構(gòu)造了一些安全性很好的公鑰算法。然而,隨著現(xiàn)代計算機性能的不斷提高,與交換群相關(guān)的問題逐漸變得容易處理了。量子計算的最新研究也表明,基于有限域特性的某些難解問題可以用量子的多項式時間算法解決,因此在量子計算機時代,這些密碼算法將不再是安全的。于是產(chǎn)生了辮子群的公鑰密碼算法,它不但可以有效地抵抗量子計算的攻擊,還可以抵抗目前已知的各種攻擊。
目前學(xué)術(shù)界對辮子群公鑰密碼算法的破譯沒有實質(zhì)性的進展,但這并不表示在未來的幾年或幾十年中不會出現(xiàn)有效的攻擊手段,因此,本文提出一種辮子群密碼與公鑰密碼相結(jié)合的混合密碼算法并且將其應(yīng)用到按需裝配Agent的系統(tǒng)中,這樣的混合密碼算法可以同時保留辮子群公鑰加密和傳統(tǒng)公鑰加密的優(yōu)點,從而大大地提高密碼算法的安全性。同時,將其應(yīng)用到按需裝配Agent的系統(tǒng)中,可增強混合密碼算法的實用性。
2 按需裝配Agent
2.1 按需裝配Agent的特點[3-5]
(1)能夠及時實現(xiàn)功能的動態(tài)擴展與更新,優(yōu)化網(wǎng)絡(luò)計算等資源的配置。
(2)Agent能夠在遇到具體問題、需要某個特定功能時才調(diào)入具體的功能模塊,無需一開始就加載很多可能用不著的功能,具有良好的動態(tài)擴展能力,也減少了一些不必要的開銷。
(3)為動態(tài)環(huán)境下復(fù)雜問題的解決提供了靈活有效的模式。在動態(tài)環(huán)境下Agent所遇到的問題很可能是事先無法預(yù)料的,而且在類似電子商務(wù)的領(lǐng)域中一個Agent的角色還可能發(fā)生很大的變化,而按需裝配移動Agent在遇到問題時能夠進行相應(yīng)功能擴展,賦予了Agent極大的靈活性,使得Agent能夠從容地解決這些問題。
2.2 按需裝配Agent系統(tǒng)的實現(xiàn)[3]
Agent的按需裝配過程可以用圖1來描述,具體過程如下:
(1)當按需裝配Agent發(fā)現(xiàn)某網(wǎng)絡(luò)主機需要裝載某功能構(gòu)件時,就會根據(jù)服務(wù)類別和需要解決的問題向系統(tǒng)的構(gòu)件管理器提交加載申請;
(2)Agent系統(tǒng)根據(jù)請求返回相應(yīng)功能構(gòu)件的構(gòu)件基地路徑;
(3)按需裝配Agent根據(jù)返回的基地路徑利用自身的構(gòu)件裝載器動態(tài)地將該功能構(gòu)件加載到本地;
(4)按需裝配Agent通過加載到本地的功能構(gòu)件完成相應(yīng)的功能。
3 混合加密應(yīng)用于按需裝配Agent系統(tǒng)
通過對目前現(xiàn)有的密碼算法和國內(nèi)外的密碼學(xué)發(fā)展進行研究和分析,提出了基于辮子群和公鑰密碼RSA相混合的加密算法,并將其應(yīng)用于按需裝配Agent系統(tǒng)中。
3.1 混合密碼算法所用符號的意義
PKH:客戶機的RSA加密公鑰;
SKH:客戶機的RSA解密私鑰;
PKA:Agent運行機的RSA加密公鑰;
SKA:Agent運行機的RSA解密私鑰;
PK3:構(gòu)件服務(wù)器的RSA加密公鑰;
SK3:構(gòu)件服務(wù)器的RSA解密私鑰;
BPKH:客戶機的辮子群加密公鑰;
BSKH:客戶機的辮子群解密公鑰;
BPKA:Agent運行機的辮子群加密公鑰;
BSKA:Agent運行機的辮子群解密私鑰;
BPK3:構(gòu)件服務(wù)器的辮子加密公鑰;
BSK3:構(gòu)件服務(wù)器的辮子解密私鑰;
SHA-512:Hash函數(shù)的信息摘錄。
i為標志符(當i=1時,加密順序為先辮子加密后RSA加密;當i=0時,加密順序為先RSA加密后辮子加密)。
3.2 混合密碼加密過程
(1)客戶機、Agent運行機和構(gòu)件服務(wù)器三方分別產(chǎn)生并公布各方的公鑰。
(2)如果客戶機有任務(wù),先判斷當前系統(tǒng)時間的秒鐘,如果秒鐘為偶數(shù),設(shè)i=0;如果秒鐘為奇數(shù),設(shè)i=1。
(3)客戶機根據(jù)i的值對BPKA、PKA和BPK3、PK3進行相應(yīng)順序的加密,同時將任務(wù)用SHA-512進行信息摘錄,最后將用公鑰加密的結(jié)果、SHA-512的摘錄和i的值打包分別傳給Agent運行機和構(gòu)件服務(wù)器。
(4)Agent運行機和構(gòu)件服務(wù)器同時收到客戶機發(fā)來的任務(wù),構(gòu)件服務(wù)器等待Agent運行機的響應(yīng)。Agent運行機首先判斷i的值并根據(jù)i的值對加密任務(wù)用自已的私鑰BSKA、SKA進行正確的順序解密。然后將解密后的任務(wù)進行SHA-512摘錄提取并與客戶機發(fā)來的SHA-512的值進行對比,如果相同則執(zhí)行任務(wù),否則返回步驟(2)。
(5)Agent運行機在執(zhí)行任務(wù)時,首先將i值進行取反,然后用取反的i值對客戶機發(fā)來的任務(wù)用構(gòu)件服務(wù)器的公鑰BPK3、PK3進行相應(yīng)順序的加密, 同時將任務(wù)用SHA-512進行信息摘錄,最后將用公鑰加密的結(jié)果、SHA-512的摘錄和i的值一起傳給構(gòu)件服務(wù)器來申請生成構(gòu)件。
(6)當構(gòu)件服務(wù)器收到Agent運行機的信息時,同樣需要先判斷i值并根據(jù)i值用自己的私鑰BSK3、SK3對收到的信息(包括從客戶機和Agent運行機傳來的信息)進行順序解密。之后,判斷客戶機和Agent運行機傳來的信息的合法性(通過對比解密后直接得到的摘錄和任務(wù)提取的SHA-512摘錄),再對客戶機和Agent傳來的SHA-512值進行對比判斷。如果有一個判斷不符合要求,則返回步驟(2),否則進行下一步。
(7)構(gòu)件服務(wù)器首先將從Agent運行機傳來的i值取反,之后根據(jù)取反后的i值進行相應(yīng)順序的加密并用運行機的公鑰BPKA、PKA對構(gòu)件進行加密傳輸。Agent運行機對收到的構(gòu)件進行解密并裝載,執(zhí)行任務(wù)后,將得到的結(jié)果傳遞給客戶機。
3.3 安全性分析
辮子群混合加密下的按需裝配Agent系統(tǒng)的安全性分析如下:
(1)混合加密算法的安全機制存在于Agent運行機、構(gòu)件服務(wù)器和客戶機中。這樣,攻擊者就不能從這三者中進行非法攻擊。
(2)辮子群混合加密算法采用了判斷合法的機制,因此即使Agent運行機是惡意主機或成為傀儡機,也不可以在客戶機和構(gòu)件服務(wù)器之間進行欺騙。同時攻擊者無論是從客戶機和Agent運行機之間進行攻擊,還是在客戶機和構(gòu)件服務(wù)器之間進行欺騙,都是不可行的。
(3)RSA公鑰加密算法可以抵抗非量子計算以外的攻擊;辮子群算法可以抵抗量子計算的攻擊,因此辮子群和RSA的混合加密算法可以有效地抵抗各種攻擊。
(4)將參考文獻[6]中的Hash函數(shù)使用相對安全的SHA-512函數(shù)進行加密,也提高了Agent系統(tǒng)的安全性。
將辮子群和傳統(tǒng)加密方法混合加密應(yīng)用于Agent系統(tǒng)中,有針對性地改進了Agent系統(tǒng)存在的缺點, 提高了系統(tǒng)的安全性。對于一些單純地只用傳統(tǒng)加密算法或者辮子加密算法加密的系統(tǒng),也可以用混合加密的方法來提高安全性。
參考文獻
[1] CHA J C,KO K H,LEE S J,et al.An efficient implementation of braid groups[C].In:Boyd C,ed.Advances in Cryptology-ASIACRYPT2001.LNCS 2048,Berlin:Springer Verlag,2001:144-156.
[2] KO K H,LEE S J,CHEON J H,et al.New public-key cryptosystem using braid groups[C].In:Bellare M,ed. Advances in Cryptology-CRYPTO 2000.LNCS1880,Berlin:Springer-Verlag,2000:166-183.
[3] 黃曉斌,李琦,吳少巖.一種按需裝配的Agent[J].計算機科學(xué),2002,29(5):89-91.
[4] 馬繼業(yè),張仲義,呂永波.按需裝配Agent系統(tǒng)的構(gòu)件安全機制研究[J].中國安全科學(xué)學(xué)報,2005,15(4):77-80.
[5] Huang Xiaobin,Li Qi,Wu Shaoyan.Assemble-on-demand Agent[A].信息技術(shù)與信息網(wǎng)絡(luò)國際會議ICII2001 Conferences[C].北京:科學(xué)出版社,2001:286-291.
[6] Wang Xiaoyun,Yu Hongbo.How to break MD5 and other Hash function[A].EUROCRYPTO′05[C].2005.