丘 嶸,劉 威
(1.廣東科學(xué)技術(shù)職業(yè)學(xué)院,廣東廣州 510640;2.杭州電子科技大學(xué)電子信息學(xué)院,浙江 杭州 310018)
動(dòng)態(tài)密碼是根據(jù)專門的算法生成一個(gè)不可預(yù)測的隨機(jī)數(shù)字組合,每個(gè)密碼只能使用一次,目前主要被應(yīng)用在電信運(yùn)營商、網(wǎng)銀、網(wǎng)游與企業(yè)等領(lǐng)域。動(dòng)態(tài)密碼有短信密碼、硬件令牌、手機(jī)令牌3種常見的終端形式?;煦鐒?dòng)態(tài)密碼是指利用混沌的初值敏感性、非周期性和不可預(yù)測性,構(gòu)建動(dòng)態(tài)密碼算法,生成6~8位的不斷變化的隨機(jī)字符組合?;煦鐒?dòng)態(tài)密碼具備動(dòng)態(tài)密碼的全部特性,包括容不可預(yù)測性和短生存周期性,已有類似于混沌動(dòng)態(tài)密碼算法的相關(guān)算法應(yīng)用于身份認(rèn)證的報(bào)道[1-2]。
目前,動(dòng)態(tài)密碼算法主要可分為兩類:同步的基于時(shí)間的動(dòng)態(tài)密碼算法和異步的基于挑戰(zhàn)響應(yīng)的動(dòng)態(tài)密碼算法?;跁r(shí)間的動(dòng)態(tài)密碼算法,安全性高于基于挑戰(zhàn)響應(yīng)的動(dòng)態(tài)密碼算法。但基于時(shí)間的動(dòng)態(tài)密碼算法,對服務(wù)器同步時(shí)鐘的要求也較高。基于挑戰(zhàn)響應(yīng)的動(dòng)態(tài)密碼算法,對服務(wù)器時(shí)鐘沒有任何要求,安全性取決于動(dòng)態(tài)密碼的更新速率以及動(dòng)態(tài)密碼算法。
手機(jī)令牌是動(dòng)態(tài)密碼的一種常見終端形式,具有安全性高、易于攜帶和零成本等特性。目前成熟的手機(jī)令牌有,iKEY,RSA手機(jī)令牌。因此可以預(yù)計(jì)手機(jī)令牌將成為未來網(wǎng)絡(luò)身份認(rèn)證的主流形式?;煦缡謾C(jī)令牌是能夠產(chǎn)生混沌動(dòng)態(tài)密碼的令牌終端,本文提出了一種新的混沌動(dòng)態(tài)密碼算法,采用挑戰(zhàn)響應(yīng)機(jī)制,在研究了混沌動(dòng)態(tài)密碼算法的基礎(chǔ)上,以Lorenz超混沌系統(tǒng)作為密碼源,設(shè)計(jì)實(shí)現(xiàn)了一種新的基于混沌手機(jī)令牌的網(wǎng)絡(luò)身份認(rèn)證系統(tǒng)。
挑戰(zhàn)碼是由服務(wù)器隨機(jī)產(chǎn)生的一組的由1~8位數(shù)字組成的數(shù)字。本文介紹的挑戰(zhàn)碼生成算法,實(shí)質(zhì)上應(yīng)用的是一種基于混沌的隨機(jī)數(shù)算法。挑戰(zhàn)碼生成算法主要包括連續(xù)混沌系統(tǒng)離散量化、構(gòu)建挑戰(zhàn)碼兩個(gè)步驟。
對于連續(xù)的微分系統(tǒng)dx/dt=f(x),運(yùn)用歐拉微分離散方法對其進(jìn)行離散:
可得其迭代方程:
對式(2)進(jìn)行迭代運(yùn)算,把每次迭代值x(n)的小數(shù)部分轉(zhuǎn)化為二進(jìn)制:
式(3)中的每一位為“1”或“0”,抽取每次迭代值二進(jìn)制小數(shù)部分的一位或多位可生產(chǎn)所需的隨機(jī)數(shù)。
如表1所示,為了使挑戰(zhàn)碼在1~8位之間均勻跳變,建立了7個(gè)查找表。每個(gè)索引值對應(yīng)一個(gè)查找表,值域是查找的取值范圍。表1以一個(gè)四維的混沌系統(tǒng)為例,說明了值域的求值規(guī)則。
索引值也是基于查表獲取的,索引值查找表如下所示:
查找表的長度為28。先獲取取值為[0,27]的隨機(jī)數(shù)。然后檢索索引值查找表,獲取索引值。
表1 挑戰(zhàn)碼生成規(guī)則Table 1 Rule generation for challenge
動(dòng)態(tài)密碼是由動(dòng)態(tài)密碼終端產(chǎn)生的一組6~8位隨機(jī)字符組合。動(dòng)態(tài)密碼的產(chǎn)生與前述挑戰(zhàn)碼的生成相似,區(qū)別在于對量化后的序列進(jìn)行序列映射和密鑰表置亂后再生產(chǎn)動(dòng)態(tài)密碼[3]。
序列映射的目的有兩個(gè):其一,為了保證算法的安全性,不直接將抽取的序列用于檢索動(dòng)態(tài)密碼;其二,混沌迭代運(yùn)算結(jié)果變量組存儲的是浮點(diǎn)型的數(shù)據(jù),不便于后續(xù)查表處理,故需要將其映射為正整數(shù),作為檢索密鑰表的索引值。舉例的序列映射方法如下:
式中,index為映射輸出,作為動(dòng)態(tài)密鑰索引向量,abs為取絕對值操作,a為乘積因子,b為位數(shù)為k的16進(jìn)制位與模板。實(shí)踐證明,在取得合適的參數(shù)a,b時(shí),該方法能將抽取的混沌迭代運(yùn)算結(jié)果變量組var(x,y,z,…),有效的映射為一組(0,2k-1)之間取值的偽隨機(jī)自然數(shù)。序列映射的方法多種多樣,不局限于此。
密鑰表通過混沌流密碼算法加密處理,每次使用時(shí),將加密密鑰表讀出,解密后,供索引值索引[4]。密鑰表推薦使用常見字符,如 A-F,a-f,標(biāo)點(diǎn)符號組成,也可采用漢字表。在算法完全公開的情況下,應(yīng)該保證密鑰表的隱密性。密鑰表常以二進(jìn)制代碼的形式編譯至程序中,安全的方式是動(dòng)態(tài)的對密鑰表進(jìn)行同步更新或?qū)γ荑€表信息進(jìn)行加密處理。如式(6)所示,若位與模板b的位數(shù)為k,則序列映射的查表檢索空間為2k。此時(shí)密鑰表可根據(jù)需要填充置亂的2k個(gè)字符或漢字。
根據(jù)動(dòng)態(tài)密鑰索引向量,索引密鑰表。記密鑰表為T,k為位與模板b的位數(shù),索引向量為index,密鑰符為key,密鑰符與索引向量之間的關(guān)系如下:
索引向量和密鑰表是一對多映射的關(guān)系。一個(gè)索引值在同一密鑰表中映射唯一的密鑰符,一個(gè)索引值可對應(yīng)不同密鑰表的多個(gè)密鑰符。一對多的映射方式不僅可以減小混沌迭代的運(yùn)算量,提升速率;還可以提升算法的復(fù)雜度,提升安全性能。最后,將密鑰符進(jìn)行組合,生成偽隨機(jī)的密鑰串,得到動(dòng)態(tài)密碼。
令牌文件存儲在數(shù)據(jù)庫中,對令牌進(jìn)行加密,實(shí)質(zhì)上是對數(shù)據(jù)庫進(jìn)行加密。采用混沌與AES算法相結(jié)合的加密算法(下面簡記為混沌-AES算法)實(shí)現(xiàn)了令牌加密算法[5]。所述的混沌-AES算法是利用混沌產(chǎn)生AES的16 Bytes為單位的加密密鑰,然后利用AES算法實(shí)現(xiàn)數(shù)據(jù)加密。每次加密16 Bytes數(shù)據(jù),更新一次加密密鑰。令牌加密的基本思路如下所述:
1)令牌插入操作:利用混沌-AES算法加密令牌字段,然后將加密處理的字段添加進(jìn)數(shù)據(jù)庫。
2)令牌查詢操作:先將加密處理的令牌字段值,利用數(shù)據(jù)庫查詢語句讀出,然后利用混沌-AES算法解密還原數(shù)據(jù)庫字段中的令牌數(shù)據(jù)。
3)令牌更新操作:利用混沌-AES算法對令牌數(shù)據(jù)進(jìn)行加密,然后利用數(shù)據(jù)庫更新語句將相應(yīng)的字段更新為已加密的令牌數(shù)據(jù)。
4)令牌字段匹配:利用混沌-AES算法加密待查詢的字段,然后查找數(shù)據(jù)庫中,是否有對應(yīng)的令牌加密字段。若查詢到該字段,則匹配成功;若沒有查詢到該字段,則匹配失敗。
5)令牌刪除操作:先進(jìn)行數(shù)據(jù)庫字段匹配。若查詢到該字段,則刪除該字段;若沒有查詢到該字段,則不進(jìn)行操作。
這種網(wǎng)絡(luò)身份認(rèn)證匹配是基于混沌手機(jī)令牌的,實(shí)質(zhì)上是混沌同步的問題。下面介紹一種非對稱的新型網(wǎng)絡(luò)身份認(rèn)證匹配算法。
記混沌系統(tǒng)A為FA(x,y,z…),混沌系統(tǒng) B為FB(x,y,z…),系統(tǒng) A 迭代輸出記為GA(x,y,z…),系統(tǒng)B迭代輸出記為GB(x,y,z…)。
緩沖池存儲匹配的臨時(shí)數(shù)據(jù),記緩沖池為C(x,y,z…),則緩沖池滿足:
由式(7)可以看出系統(tǒng)A和系統(tǒng)B迭代輸出相異或的結(jié)果即為緩沖池。異或運(yùn)算是可逆的,已知C(x,y,z…)、GA(x,y,z…)、GB(x,y,z…)任意兩項(xiàng),必然可以獲得另外一項(xiàng)的輸出。在服務(wù)器端采用系統(tǒng)A而客戶端則采用系統(tǒng)B。當(dāng)身份認(rèn)證進(jìn)行匹配時(shí),客戶端提供GB(x,y,z…)的相關(guān)信息,通過服務(wù)器端緩沖池 C(x,y,z…)信息,可以還原 GA(x,y,z…)信息。
本系統(tǒng)采用二級認(rèn)證的形式,初級認(rèn)證為用戶驗(yàn)證,次級認(rèn)證為混沌動(dòng)態(tài)密碼認(rèn)證。系統(tǒng)采用的身份認(rèn)證協(xié)議描述如下:
(1)協(xié)議所使用的符號
(2)協(xié)議描述
用戶U向服務(wù)器S提交注冊信息,進(jìn)行用戶驗(yàn)證。
服務(wù)器S將用戶U狀態(tài)信息SI,返回給用戶U。如果SI顯示用戶名 UID不存在,則需先進(jìn)行用戶注冊。
服務(wù)器S檢查用戶名UID和用戶密碼PWD,若無誤,則返回令牌狀態(tài)信息。若已綁定令牌則繼續(xù)進(jìn)行;如果為短信密碼就直接獲取CDPWD,并且跳轉(zhuǎn)至步驟f;如果未綁定令牌就跳轉(zhuǎn)至步驟g。
服務(wù)器S向用戶U返回挑戰(zhàn)碼。
用戶根據(jù)挑戰(zhàn)碼CCode獲取混沌動(dòng)態(tài)密碼CDPWD。
用戶U向服務(wù)器S傳遞用戶名UID,用戶密碼PWD以及混沌動(dòng)態(tài)密碼CDPWD,服務(wù)器S檢查用戶名UID,用戶密碼PWD以及混沌動(dòng)態(tài)密碼CDPWD是否正確,如果無誤就直接跳轉(zhuǎn)至步驟h。
用戶U向服務(wù)器S傳遞用戶名UID,用戶密碼PWD,服務(wù)器 S檢查用戶名 UID以及用戶密碼PWD是否正確。如果無誤,則直接跳轉(zhuǎn)至下一步。
點(diǎn)擊登錄,服務(wù)器會(huì)將頁面重定向至資源訪問頁,并獲取會(huì)話標(biāo)識符SID。
基于混沌動(dòng)態(tài)密碼算法,利用Java編寫了JavaMe手機(jī)平臺的混沌手機(jī)令牌。采用了一種改進(jìn)的Lorenz超混沌系統(tǒng)[4]:
當(dāng) a=10,b=2,c=28,d=0.1 時(shí),系統(tǒng)處于超混沌狀態(tài),其相圖和時(shí)間序列如圖1所示。
圖1 改進(jìn)Lorenz超混沌系統(tǒng)相圖和時(shí)間序列Fig.1 Phase diagram and time series of improved hyperchaotic Lorenz system
該混沌手機(jī)令牌采用異步的挑戰(zhàn)-響應(yīng)的方式,即通過獲取挑戰(zhàn)碼,解析混沌運(yùn)算迭代次數(shù)和初始值信息,利用混沌動(dòng)態(tài)密碼算法最終得到動(dòng)態(tài)密碼。手機(jī)令牌的模擬器實(shí)現(xiàn)效果如圖2所示。
圖2 手機(jī)令牌模擬器效果Fig.2 Effect of mobile token simulator
網(wǎng)絡(luò)身份認(rèn)證系統(tǒng)登錄界面如圖3(a)所示,綁定令牌后,安全中心界面如圖3(b)所示。
圖3 網(wǎng)絡(luò)身份認(rèn)證系統(tǒng)部分截圖Fig.3 Network identity authentication system
本文提出一種基于混沌的新型的動(dòng)態(tài)密碼算法,該算法包括挑戰(zhàn)碼生成、動(dòng)態(tài)密碼生成以及令牌加密3個(gè)部分。基于該算法,設(shè)計(jì)了以混沌數(shù)字序列作為挑戰(zhàn)碼和動(dòng)態(tài)密碼的手機(jī)令牌,該手機(jī)令牌具有目前手機(jī)令牌的所有優(yōu)點(diǎn)。在新型的動(dòng)態(tài)密碼算法基礎(chǔ)上,提出了一種新型的身份認(rèn)證匹配算法和認(rèn)證協(xié)議,并以此設(shè)計(jì)了基于混沌手機(jī)令牌的網(wǎng)絡(luò)身份認(rèn)證系統(tǒng)。
[1]LI Li-fen,ZHU Yong-li.Authentication Scheme for Substation Information Security Based on Chaotic Theory[C]//International Conference on Power Electronics and Intelligent Transportation System(PEITS).Shenzhen:[s.n.],2009:1-3.
[2]ZHANG Chang-ming,LI Li-fen.Research on Substation Information Secure Technologies based on Chaotic Sequence[C]//International Conference on Power Electronics and Intelligent Transportation System(PEITS).Shenzhen:[s.n.],2009:152-155.
[3]劉霞,馮朝勝.一種基于動(dòng)態(tài)口令的FTP雙向認(rèn)證方案[J].通信技術(shù),2010,43(05):111-113.LIU Xia,F(xiàn)ENG Chao-sheng.A FTP Mutual Authentication Scheme based on Dynamic Password[J].Communications Technology,2010,43(05):111-113.
[4]周福才,朱偉勇.基于混沌理論身份認(rèn)證的研究[J].東北大學(xué)學(xué)報(bào),2002,23(08):730-732.ZHOU Fu-cai,ZHU Wei-yong.Research of Identity Authentication based on Chaotic Theory[J].Journal of Northeastern University,2002,23(08):730-732.
[5]譚德,王光義.改進(jìn)超混沌系統(tǒng)PN序列的SOPC實(shí)現(xiàn)[J].杭州電子科技大學(xué)學(xué)報(bào),2012,32(03):1-4.TAN De,WANG Guang-yi.The SOPC Realization of PN Sequence on Improved Hyperchaos System[J].Journal of Hangzhou Dianzi University,2012,32(03):1-4.