朱巧,黃俊
(重慶郵電大學 通信與信息工程學院,重慶 400065)
摘要:針對智能IC卡安全認證過程中3DES算法加密速度較慢的問題,本文采用AES算法代替3DES算法完成智能IC卡的安全認證,并對密鑰分散機制進行改進,使用混沌系統(tǒng)中的logistic映射進行密鑰分散。實驗結果表明,改進后的安全認證算法在保證安全加密強度的前提下,有效提升了智能IC卡的安全認證速度。
關鍵詞:3DES算法;AES算法;logistic映射;智能IC卡;密鑰分散
中圖分類號:TP368.1文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.02.002
引用格式:朱巧,黃俊.一種加快智能IC卡安全認證速度的方法[J].微型機與應用,2017,36(2):5-7.
0引言
隨著智能IC卡在各行業(yè)的廣泛應用,消費者對智能IC卡交易速度的要求也越來越高。目前,智能IC卡采用的對稱加密算法為3DES算法[1]。3DES算法的加解密速度較慢,算法資源利用率不高;AES算法采用更加簡潔的數學表達形式,在安全性能、算法資源利用率和實現復雜度上均優(yōu)于3DES算法。在保證加密強度的條件下,為了提高智能IC卡的安全認證速度,本文從以下兩方面對智能IC卡加密算法進行改進:首先,使用AES加密算法代替3DES算法完成安全認證;其次,使用混沌密鑰分散取代3DES密鑰分散。
1AES算法及混沌序列簡介
美國標準技術研究所(NIST)在2001年發(fā)布了高級加密標準AES(Advanced Encryption Standard)[2]。AES是一種分組密碼,用以取代3DES的商業(yè)應用,其分組長度為128位,密鑰長度為128位、192位或256位。AES采用分組迭代算法,每一輪加密可分為字節(jié)代替(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和輪密鑰加(AddRoundKey)。圖1為AES的總體結構。
混沌是非線性動力系統(tǒng)中普遍存在的一種確定性、類隨機性的復雜運動形式和自然現象[3]。它具有的特征包括非線性、遍歷性、初值敏感性、類噪聲性和隨機性,理論分析和實驗表明混沌加密算法能夠達到與傳統(tǒng)加密算法擴散(Diffutsion)和置亂(Confusion)同樣的效果[4]。本文采用混沌系統(tǒng)中的logistic映射產生混沌序列,公式(1)為logistic映射模型。
Xi+1=u*Xi*(1-Xi),i=1,2…(1)
2安全認證速度提升方案
為了提高智能IC卡的安全加密效率,同時使得安全算法適用于IC卡交易數據的加密,達到較好的安全性,下面討論對對IC卡安全認證算法的改進。
2.1改進加密方式
相對于3DES算法,AES算法具有以下優(yōu)勢:首先,AES算法的設計者充分考慮了算法在計算機上的實現,運算速度快,對于內存的需求非常低;其次,AES密鑰長度可變,可根據實際需要選擇密鑰長度;最后,AES加密算法采用寬軌跡策略(Wide Trail Strategy,WTS),可以很好地對抗差分密碼分析和線性密碼分析[5]。使用AES算法代替3DES算法,在安全性、實現復雜度、靈活性上都能得到提升,尤其是能大幅度加快智能IC卡的安全認證速度。在后面的實驗結果分析中均體現了AES在加密性能上的優(yōu)勢。
2.2改進密鑰分散機制
為了便于密鑰的安全管理,智能IC卡密鑰管理系統(tǒng)通常采用一個主密鑰對每張卡的卡號進行加密,生成的密文為IC卡的子密鑰,這種由主密鑰生成子密鑰的方法稱為密鑰分散[6]。目前,智能IC卡的密鑰分散算法為3DES算法。為了提高子密鑰生成的速率,同時保證生成子密鑰的安全性,采用混沌算法進行密鑰分散。本文使用式(1)進行密鑰分散生成子密鑰。子密鑰的生成步驟如下。
(1)智能IC卡密鑰管理系統(tǒng)定義初始值X0與參數u作為主密鑰,設主密鑰為MK(X0,u)。為了使混沌系統(tǒng)的動力學方程更加復雜,同時保證X0∈(0,1),一般取u∈(3.6,4)。
?。?)獲取IC卡卡號最后面16 B,記為一維數組P[16]。
?。?)Xi=Xi+P[i]/256,其中P[i]/256為每張智能IC卡特有的密鑰分散因子。
?。?)使用logistic公式進行16輪迭代運算,獲得N[16]={X1,X2,X3,…,X16} 。
?。?)假設N[16]在處理器中以浮點型進行存儲,位長為4 B。為了獲取16 B的子密鑰,可從N[16]中抽取4個元素,為了提升算法安全性,避免攻擊者通過運算解出u值,取這四個元素的下標間距為4,記為{X4,X8,X12,X16},其中X4={C1,C2,C3,C4},X8={C5,C6,C7,C8},X12={C9,C10,C11,C12},X16={C13,C14,C15,C16},則IC卡的子密鑰C[16]={C1,C2,C3……C16}。
3改進算法在智能IC卡安全認證中的應用
在本文中,智能IC卡的安全認證采用雙向認證機制,即智能IC卡與支付終端相互進行認證,安全認證步驟如下。
?。?)支付終端獲取智能IC卡賬號最后面16 B的ASCII碼值作為AES密鑰分散的輸入明文,設輸入明文記為一維數組X [16]。
(2)支付終端獲取存儲在終端安全區(qū)域內的混沌主密鑰MK(X0,u),將X[16]中的16個元素分別代入公式(1),獲得該智能IC卡的AES密鑰(即子密鑰),記為K[16]。
(3)記支付終端寫入智能IC卡的數據明文為M[L],其中L為16的整數倍 ,終端按照圖1所示流程使用密鑰K[16]對M[L]進行AES分組加密生成分組密文G[L]。
?。?)支付終端將G[L]通過有線或無限信道發(fā)給智能IC卡,智能IC卡在收到G[L]后,使用儲存在IC卡安全區(qū)域內的AES密鑰K[16]對密文G[L]進行解密,判斷解密后的明文是否滿足標準報文格式,若符合標準報文格式,則金融IC卡對支付終端的安全認證通過,否則安全認證失敗。
?。?)智能IC卡使用K[16]對交易相關數據和卡的特征數據進行AES加密,這些數據使用N[L]表示(L為16的整數倍),生成密文C[L]。
?。?)智能IC將密文C[L]返回給支付終端,支付終端將密文C[L]上傳至IC卡安全認證中心。
?。?)IC安全認證中心同樣使用步驟(5)的方式對密文C[L]進行安全認證,認證通過后,返回交易成功報文。
4實驗結果分析
本文仿真平臺處理器采用ST公司的STM32f103系列微處理器,微處理器配置為:CotexM3內核、主頻72 MHz、64 KB RAM、512 KB Flash, 軟件固件庫版本為V3.5.0。實驗首先對AES128與3DES加密速度和安全強度進行對比分析,然后對比混沌密鑰分散速度和3DES分散速度。
4.13DES與AES-128對比分析
3DES和AES-128(表示AES密鑰的長度為128 bit)參數如下(16進制表示):
3DES參數
輸入明文:0123456789abcdef
密鑰:0123456789abcdeffedcba9876543210
密文:1a4d672dca6cb335
AES128參數
輸入明文:0123456789abcdef
密鑰:0123456789abcdeffedcba9876543210
密文:1a4d672dca6cb335
4.1.13DES與AES-128算法速度對比分析
AES與3DES加密速度如表1所示,通過對比,AES-128的加密速度比3DES要快40倍,解密速度為3DES的24倍。由此可見,銀行卡支付終端使用AES來替代3DES進行安全認證,可以提高交易速度。
4.1.23DES與AES-128雪崩效應對比分析
加密算法安全強度的評價指標之一是該加密算法的雪崩效應[7]。雪崩效應指的是明文或者密文即使發(fā)生小的變化即會導致密文發(fā)生很大的變化。研究表明,如果1位的差別能夠引起密文大約一半的位置發(fā)生變化,這是比較理想的結果[8]。圖2和圖3分別表示3DES和AES128的雪崩效應。結合折線圖分析,AES-128在加密2輪后大約有一半的位數發(fā)生變化,而3DES需要加密3輪后才能達到同樣的效果,因此AES-128展示了很好的雪崩效應,且這種強度比3DES要大一些。
4.2混沌算法與3DES算法密鑰分散速度對比分析
若需要獲取一個16 B長的IC卡子密鑰,采用3DES算法完成密鑰分散需進行兩次3DES運算,而采用混沌算法只需要16輪logistic公式迭代運算,大幅度提高了密鑰分散速度。密鑰分散的各參數值與分散速度如表2所示。 通過對比3DES密鑰分散和混沌算法密鑰分散耗費的機器周期數可以得出,采用混沌算法進行密鑰分散的速度是3DES密鑰分散速度的27.5倍左右。
5結論
為了提高智能IC卡的安全認證速度,本文對智能IC卡安全認證算法進行了改進:首先,使用AES算法代替3DES算法,然后使用混沌算法代替?zhèn)鹘y(tǒng)的密鑰分散算法進行密鑰分散。實驗結果表明,這些改進在保證加密安全強度的前提下,有效提升了智能IC卡的安全認證速度。
參考文獻
?。?] 韓樊勇,顧劍,杜文才.基于智能IC卡的高速流加密系統(tǒng)研究[J].微電子學與計算機. 2013,32(4):13-15.
?。?] 廖曉峰, 陳勇, 肖迪,等. 混沌密碼學原理及應用[M]. 北京:科學出版社, 2009.
?。?] 鄭東, 李祥學, 黃征.密碼學—密碼算法與協(xié)議[M]. 北京:電子工業(yè)出版社,2009.
?。?] 陳克非,黃征.信息安全技術導論[M].北京:電子工業(yè)出版社,2007.
?。?] 羅守山,陳萍,鄒永忠,等.密碼學與信息安全技術[M].北京:北京郵電大學出版社,2009.
?。?] 趙富祥,張福泰,王育民.分組加密算法的設計原則及Rijndael[J].信息安全與通信保密[J].2001,23(10):51-52.
?。?] 袁曉風,李永彬.混沌編碼與保密通訊[J].計算機應用,2000,6(20):810.
[8] 馮登國.密碼學導引[M].北京:科學出版社,2000.