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