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