丘 嶸,劉 威
(1.廣東科學技術職業學院,廣東廣州 510640;2.杭州電子科技大學電子信息學院,浙江 杭州 310018)
動態密碼是根據專門的算法生成一個不可預測的隨機數字組合,每個密碼只能使用一次,目前主要被應用在電信運營商、網銀、網游與企業等領域。動態密碼有短信密碼、硬件令牌、手機令牌3種常見的終端形式。混沌動態密碼是指利用混沌的初值敏感性、非周期性和不可預測性,構建動態密碼算法,生成6~8位的不斷變化的隨機字符組合。混沌動態密碼具備動態密碼的全部特性,包括容不可預測性和短生存周期性,已有類似于混沌動態密碼算法的相關算法應用于身份認證的報道[1-2]。
目前,動態密碼算法主要可分為兩類:同步的基于時間的動態密碼算法和異步的基于挑戰響應的動態密碼算法?;跁r間的動態密碼算法,安全性高于基于挑戰響應的動態密碼算法。但基于時間的動態密碼算法,對服務器同步時鐘的要求也較高?;谔魬痦憫膭討B密碼算法,對服務器時鐘沒有任何要求,安全性取決于動態密碼的更新速率以及動態密碼算法。
手機令牌是動態密碼的一種常見終端形式,具有安全性高、易于攜帶和零成本等特性。目前成熟的手機令牌有,iKEY,RSA手機令牌。因此可以預計手機令牌將成為未來網絡身份認證的主流形式?;煦缡謾C令牌是能夠產生混沌動態密碼的令牌終端,本文提出了一種新的混沌動態密碼算法,采用挑戰響應機制,在研究了混沌動態密碼算法的基礎上,以Lorenz超混沌系統作為密碼源,設計實現了一種新的基于混沌手機令牌的網絡身份認證系統。
挑戰碼是由服務器隨機產生的一組的由1~8位數字組成的數字。本文介紹的挑戰碼生成算法,實質上應用的是一種基于混沌的隨機數算法。挑戰碼生成算法主要包括連續混沌系統離散量化、構建挑戰碼兩個步驟。
對于連續的微分系統dx/dt=f(x),運用歐拉微分離散方法對其進行離散:

可得其迭代方程:

對式(2)進行迭代運算,把每次迭代值x(n)的小數部分轉化為二進制:

式(3)中的每一位為“1”或“0”,抽取每次迭代值二進制小數部分的一位或多位可生產所需的隨機數。
如表1所示,為了使挑戰碼在1~8位之間均勻跳變,建立了7個查找表。每個索引值對應一個查找表,值域是查找的取值范圍。表1以一個四維的混沌系統為例,說明了值域的求值規則。
索引值也是基于查表獲取的,索引值查找表如下所示:

查找表的長度為28。先獲取取值為[0,27]的隨機數。然后檢索索引值查找表,獲取索引值。

表1 挑戰碼生成規則Table 1 Rule generation for challenge
動態密碼是由動態密碼終端產生的一組6~8位隨機字符組合。動態密碼的產生與前述挑戰碼的生成相似,區別在于對量化后的序列進行序列映射和密鑰表置亂后再生產動態密碼[3]。
序列映射的目的有兩個:其一,為了保證算法的安全性,不直接將抽取的序列用于檢索動態密碼;其二,混沌迭代運算結果變量組存儲的是浮點型的數據,不便于后續查表處理,故需要將其映射為正整數,作為檢索密鑰表的索引值。舉例的序列映射方法如下:

式中,index為映射輸出,作為動態密鑰索引向量,abs為取絕對值操作,a為乘積因子,b為位數為k的16進制位與模板。實踐證明,在取得合適的參數a,b時,該方法能將抽取的混沌迭代運算結果變量組var(x,y,z,…),有效的映射為一組(0,2k-1)之間取值的偽隨機自然數。序列映射的方法多種多樣,不局限于此。
密鑰表通過混沌流密碼算法加密處理,每次使用時,將加密密鑰表讀出,解密后,供索引值索引[4]。密鑰表推薦使用常見字符,如 A-F,a-f,標點符號組成,也可采用漢字表。在算法完全公開的情況下,應該保證密鑰表的隱密性。密鑰表常以二進制代碼的形式編譯至程序中,安全的方式是動態的對密鑰表進行同步更新或對密鑰表信息進行加密處理。如式(6)所示,若位與模板b的位數為k,則序列映射的查表檢索空間為2k。此時密鑰表可根據需要填充置亂的2k個字符或漢字。
根據動態密鑰索引向量,索引密鑰表。記密鑰表為T,k為位與模板b的位數,索引向量為index,密鑰符為key,密鑰符與索引向量之間的關系如下:

索引向量和密鑰表是一對多映射的關系。一個索引值在同一密鑰表中映射唯一的密鑰符,一個索引值可對應不同密鑰表的多個密鑰符。一對多的映射方式不僅可以減小混沌迭代的運算量,提升速率;還可以提升算法的復雜度,提升安全性能。最后,將密鑰符進行組合,生成偽隨機的密鑰串,得到動態密碼。
令牌文件存儲在數據庫中,對令牌進行加密,實質上是對數據庫進行加密。采用混沌與AES算法相結合的加密算法(下面簡記為混沌-AES算法)實現了令牌加密算法[5]。所述的混沌-AES算法是利用混沌產生AES的16 Bytes為單位的加密密鑰,然后利用AES算法實現數據加密。每次加密16 Bytes數據,更新一次加密密鑰。令牌加密的基本思路如下所述:
1)令牌插入操作:利用混沌-AES算法加密令牌字段,然后將加密處理的字段添加進數據庫。
2)令牌查詢操作:先將加密處理的令牌字段值,利用數據庫查詢語句讀出,然后利用混沌-AES算法解密還原數據庫字段中的令牌數據。
3)令牌更新操作:利用混沌-AES算法對令牌數據進行加密,然后利用數據庫更新語句將相應的字段更新為已加密的令牌數據。
4)令牌字段匹配:利用混沌-AES算法加密待查詢的字段,然后查找數據庫中,是否有對應的令牌加密字段。若查詢到該字段,則匹配成功;若沒有查詢到該字段,則匹配失敗。
5)令牌刪除操作:先進行數據庫字段匹配。若查詢到該字段,則刪除該字段;若沒有查詢到該字段,則不進行操作。
這種網絡身份認證匹配是基于混沌手機令牌的,實質上是混沌同步的問題。下面介紹一種非對稱的新型網絡身份認證匹配算法。
記混沌系統A為FA(x,y,z…),混沌系統 B為FB(x,y,z…),系統 A 迭代輸出記為GA(x,y,z…),系統B迭代輸出記為GB(x,y,z…)。
緩沖池存儲匹配的臨時數據,記緩沖池為C(x,y,z…),則緩沖池滿足:

由式(7)可以看出系統A和系統B迭代輸出相異或的結果即為緩沖池。異或運算是可逆的,已知C(x,y,z…)、GA(x,y,z…)、GB(x,y,z…)任意兩項,必然可以獲得另外一項的輸出。在服務器端采用系統A而客戶端則采用系統B。當身份認證進行匹配時,客戶端提供GB(x,y,z…)的相關信息,通過服務器端緩沖池 C(x,y,z…)信息,可以還原 GA(x,y,z…)信息。
本系統采用二級認證的形式,初級認證為用戶驗證,次級認證為混沌動態密碼認證。系統采用的身份認證協議描述如下:
(1)協議所使用的符號


(2)協議描述

用戶U向服務器S提交注冊信息,進行用戶驗證。

服務器S將用戶U狀態信息SI,返回給用戶U。如果SI顯示用戶名 UID不存在,則需先進行用戶注冊。

服務器S檢查用戶名UID和用戶密碼PWD,若無誤,則返回令牌狀態信息。若已綁定令牌則繼續進行;如果為短信密碼就直接獲取CDPWD,并且跳轉至步驟f;如果未綁定令牌就跳轉至步驟g。

服務器S向用戶U返回挑戰碼。

用戶根據挑戰碼CCode獲取混沌動態密碼CDPWD。

用戶U向服務器S傳遞用戶名UID,用戶密碼PWD以及混沌動態密碼CDPWD,服務器S檢查用戶名UID,用戶密碼PWD以及混沌動態密碼CDPWD是否正確,如果無誤就直接跳轉至步驟h。

用戶U向服務器S傳遞用戶名UID,用戶密碼PWD,服務器 S檢查用戶名 UID以及用戶密碼PWD是否正確。如果無誤,則直接跳轉至下一步。

點擊登錄,服務器會將頁面重定向至資源訪問頁,并獲取會話標識符SID。
基于混沌動態密碼算法,利用Java編寫了JavaMe手機平臺的混沌手機令牌。采用了一種改進的Lorenz超混沌系統[4]:

當 a=10,b=2,c=28,d=0.1 時,系統處于超混沌狀態,其相圖和時間序列如圖1所示。

圖1 改進Lorenz超混沌系統相圖和時間序列Fig.1 Phase diagram and time series of improved hyperchaotic Lorenz system
該混沌手機令牌采用異步的挑戰-響應的方式,即通過獲取挑戰碼,解析混沌運算迭代次數和初始值信息,利用混沌動態密碼算法最終得到動態密碼。手機令牌的模擬器實現效果如圖2所示。

圖2 手機令牌模擬器效果Fig.2 Effect of mobile token simulator
網絡身份認證系統登錄界面如圖3(a)所示,綁定令牌后,安全中心界面如圖3(b)所示。

圖3 網絡身份認證系統部分截圖Fig.3 Network identity authentication system
本文提出一種基于混沌的新型的動態密碼算法,該算法包括挑戰碼生成、動態密碼生成以及令牌加密3個部分。基于該算法,設計了以混沌數字序列作為挑戰碼和動態密碼的手機令牌,該手機令牌具有目前手機令牌的所有優點。在新型的動態密碼算法基礎上,提出了一種新型的身份認證匹配算法和認證協議,并以此設計了基于混沌手機令牌的網絡身份認證系統。
[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]劉霞,馮朝勝.一種基于動態口令的FTP雙向認證方案[J].通信技術,2010,43(05):111-113.LIU Xia,FENG Chao-sheng.A FTP Mutual Authentication Scheme based on Dynamic Password[J].Communications Technology,2010,43(05):111-113.
[4]周福才,朱偉勇.基于混沌理論身份認證的研究[J].東北大學學報,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]譚德,王光義.改進超混沌系統PN序列的SOPC實現[J].杭州電子科技大學學報,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.