国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于單片機(jī)的DUKPT密鑰管理系統(tǒng)

2014-09-06 10:51:08陳章余
電子器件 2014年6期
關(guān)鍵詞:加密算法計(jì)數(shù)器寄存器

陳章余

(南京工程高等職業(yè)學(xué)校電子工程系,南京 211135)

?

基于單片機(jī)的DUKPT密鑰管理系統(tǒng)

陳章余*

(南京工程高等職業(yè)學(xué)校電子工程系,南京 211135)

密鑰是加密系統(tǒng)中的核心,也是最薄弱的環(huán)節(jié),密鑰管理在加密系統(tǒng)尤其是金融加密系統(tǒng)中具有極為重要的地位。在51單片機(jī)平臺(tái)上用C語言完成了符合ANS X9.24金融標(biāo)準(zhǔn)規(guī)范的DUKPT對(duì)稱密鑰管理系統(tǒng)的軟件設(shè)計(jì),具有前向安全性,保證了交易的安全。同時(shí)設(shè)計(jì)驗(yàn)證方案,模擬交易1048575次,將密鑰派生結(jié)果與標(biāo)準(zhǔn)測(cè)試數(shù)據(jù)比對(duì),數(shù)據(jù)完全正確。結(jié)果表明,本設(shè)計(jì)運(yùn)行結(jié)果完全符合ANS X9.24金融標(biāo)準(zhǔn)規(guī)范,對(duì)于各種金融終端信息加密具有非常重要實(shí)用意義。

對(duì)稱密鑰管理;DUKPT;8051單片機(jī);ANS X9.24

隨著電子商務(wù)的興起,金融加密安全性越來越受到挑戰(zhàn)與重視。密鑰管理在加密系統(tǒng)尤其是金融交易加密系統(tǒng)中具有極為重要的地位。每筆交易使用不同派生密鑰(DUKPT)是一種非常安全的對(duì)稱密鑰管理方式,它基于一次一密的加密思想[2-3],具有前向安全性[4],抵抗針對(duì)加密系統(tǒng)的攻擊[5-7],主要應(yīng)用于金融終端加密(如手機(jī)銀行、手機(jī)刷卡器等新型支付終端)。對(duì)于DUKPT密鑰管理系統(tǒng)的理論分析、設(shè)計(jì)和實(shí)現(xiàn)具有非常重要的現(xiàn)實(shí)意義。

1 DUKPT密鑰管理系統(tǒng)

圖1 DUKPT與對(duì)稱加密算法

DUKPT是一種非常安全的對(duì)稱密鑰管理方式[8-9],在加密系統(tǒng)中,負(fù)責(zé)對(duì)加密密鑰進(jìn)行有效的管理,能確保信息的安全性。常見的對(duì)稱加密標(biāo)準(zhǔn)有3DES[10-12]、AES、IDEA等。如圖1所示,DUKPT和對(duì)稱加密算法的關(guān)系,二者不止是密鑰層面的聯(lián)系,在DUKPT密鑰派生機(jī)制中,還用到3DES加密算法進(jìn)行密鑰派生。對(duì)稱加密算法使用該當(dāng)前交易密鑰進(jìn)行數(shù)據(jù)加密。因?yàn)镈UKPT獨(dú)特的算法機(jī)制,加密時(shí)每次使用的密鑰都是不同的,從而保證了加密系統(tǒng)的安全性。

圖2是常用加密系統(tǒng)模型圖,兩端分別為客戶端(Client)與服務(wù)器端(Server),典型應(yīng)用如銀行PIN碼輸入設(shè)備向主機(jī)傳送客戶輸入的PIN碼或MAC碼。金融終端交易過程中,經(jīng)過3DES或AES加密后的交易數(shù)據(jù)信息和加密密鑰信息將構(gòu)成安全管理信息數(shù)據(jù)(SMID),在Server和Client端進(jìn)行傳輸。通常一個(gè)Server服務(wù)器要與多個(gè)Client終端進(jìn)行交易,這就是使區(qū)分多個(gè)Sever的密鑰管理方式變得更為重要。

圖2 DUKPT密鑰管理系統(tǒng)系統(tǒng)模型構(gòu)架圖

2 DUKPT算法設(shè)計(jì)

2.1 DUKPT密鑰管理算法設(shè)計(jì)

DUKPT密鑰管理技術(shù)為每次交易提供一個(gè)獨(dú)特的密鑰,將前一次使用密鑰從存儲(chǔ)區(qū)內(nèi)擦除,在Client端(如PIN輸入設(shè)備)中不會(huì)存留任何前一次交易的密鑰信息。DUKPT派生密鑰系統(tǒng)中,請(qǐng)求方Server的安全模塊可以根據(jù)交易中的安全管理信息數(shù)據(jù)(SMID),確定任意進(jìn)行過或?qū)⒁M(jìn)行的交易的任意密鑰。在本文中,SMID具體來說,包含有:基礎(chǔ)派生密鑰(BDK),初始化加密密鑰(IK),初始化密鑰序列號(hào)(IKSN)以及包含有加密計(jì)數(shù)器(Encryption Counter)的密鑰序列號(hào)(KSN)等。

2.2.1 初始密鑰的產(chǎn)生

一個(gè)服務(wù)器S與多個(gè)終端Ci相連,在所有交易進(jìn)行之前,S需對(duì)所有Ci進(jìn)行初始化,注入IKi和IKSNi,因?yàn)镃i設(shè)備序列號(hào)的互異性,IKSNi和IKi都具有唯一性,這方便了S對(duì)Ci的管理。如前所述,IKi是由BDK根據(jù)IKSNi派生出來的:

IKi=F(BDK,i)

(1)

(2)

(3)

其中C為已知常數(shù),為當(dāng)前交易KSN的左64bit,其中包含有加密計(jì)數(shù)器。C′為固定常數(shù),在ANSX9.24中C′=0000 0000 0000 00FF0000 0000 0000 00FFHex。

如圖3所示為初始密鑰產(chǎn)生、注入過程示意圖,S端安全模塊TRSM為一種特殊的安全屏障,不易被破壞,并有相應(yīng)的斷電及其他異常情況反映機(jī)制,能保證其中的數(shù)據(jù)絕對(duì)安全不被竊取。

圖3 初始密鑰產(chǎn)生、注入過程示意圖

IKi和IKSNi是被注入到各個(gè)Ci設(shè)備中的。S端根據(jù)不同設(shè)備的BDK和KSN重新派生出Ci的初始化加密密鑰IKi,并根據(jù)KSN右21位加密計(jì)數(shù)器值進(jìn)行獨(dú)立DUKPT運(yùn)算,推出當(dāng)前密鑰,對(duì)加密數(shù)據(jù)進(jìn)行解密。下文的討論只考慮一個(gè)Server S和一個(gè)Client C,初始化加密密鑰為IK。

2.2.2 密鑰的派生

DUKPT密鑰的派生,在Client端和Server端獨(dú)立進(jìn)行,密鑰的同步是依賴于傳輸?shù)腒SN的,KSN中包含Client相關(guān)的設(shè)備序列號(hào),以及加密計(jì)數(shù)器,在ANS X9.24中為21 bit。Client端每次交易使用當(dāng)前密鑰,交易完成后,加密計(jì)數(shù)器值加1,派生出新密鑰存儲(chǔ)后,擦除已用密鑰。

Client端使用的初始派生密鑰IK是經(jīng)Server注入的,IK在Server端產(chǎn)生:

IK=F(BDK)

(4)

Client端的密鑰派生也是采用F派生函數(shù),使用當(dāng)前密鑰加密當(dāng)前KSN左64 bit即可獲得。

派生機(jī)制具有前向安全特性,派生函數(shù)F輸入為當(dāng)前密鑰和當(dāng)前KSN狀態(tài),輸出為將用密鑰,第j個(gè)密鑰由第j-1個(gè)密鑰產(chǎn)生:

Kj=F(Kj-1,j)

(5)

圖4 多元有向密鑰樹

本文用多元密鑰樹來表征密鑰派生過程,如圖4所示,是多元有向密鑰樹,“根”為IK,以下“分支點(diǎn)”和“葉”均為派生密鑰。K1,K2,K3,K4,K5組成密鑰數(shù)第1層,均是IK的子密鑰,IK為其父密鑰,它們距IK的距離D1=D2=D4=D8=D16=1,表示只需一次F派生運(yùn)算即可得到。同理,第2層密鑰距離D=2,圖4所示密鑰樹最大層數(shù)為5,表示最大加密周期N=5。密鑰樹的有向性是由派生函數(shù)F的不可逆性決定的。

計(jì)數(shù)器Counter值的作用是標(biāo)志密鑰的位置與順序,給定Counter值有特定的密鑰與其對(duì)應(yīng)。在Client端,密鑰使用為橫向順序,按照紅色虛線所示,按照Counter值按照00001,00010,00011,……,11110,11111,順序使用。在Server端,當(dāng)前交易密鑰的推算為縱向順序,是按照藍(lán)色斷續(xù)線所示,按Counter值中“1”bit位由左往右順序,從IK推演,經(jīng)過K8,K12,K14派生出當(dāng)前交易密鑰K15,最大加密周期為N=5,避免了Counter值較大時(shí)造成的Server端冗雜運(yùn)算,使密鑰管理算法實(shí)用有效。

密鑰的派生按照密鑰樹框架,按Counter最右“1”bit位所在位置,將派生密鑰存入到將用密鑰寄存器中,在圖4所示密鑰派生系統(tǒng)中,密鑰寄存器R=5組,分別是R1、R2、R3、R4和R5。

2.2.3 符合ANS X9.24的DUKPT密鑰派生機(jī)制

DUKPT加密系統(tǒng)中,21 bit加密寄存器值表示為cnt,它表示為KSN的最右21 bit,在Client與Server之間進(jìn)行傳輸,起到密鑰信息的同步作用。在第j次交易中加密計(jì)數(shù)器值為cnt=j,則cnt=j對(duì)應(yīng)的密鑰就在本次交易中被使用。初始化加密密鑰IK為j=0時(shí)的密鑰。

(6)

至此或許會(huì)產(chǎn)生一個(gè)疑問,加密計(jì)數(shù)器cnt為何為21bit?若產(chǎn)生百萬個(gè)加密密鑰,只需20bit足夠(因?yàn)?0bit對(duì)應(yīng)密鑰個(gè)數(shù)220-1=1048575)。關(guān)鍵問題在于,應(yīng)用20bit計(jì)數(shù)器,交易過程中將用上全部的220-1個(gè)密鑰,這將使最大加密周期變?yōu)镹=20,增加了運(yùn)行時(shí)間和降低了系統(tǒng)運(yùn)行效率。使用21bit加密計(jì)數(shù)器時(shí),當(dāng)最大加密周期為N=10時(shí),也能獲得百萬個(gè)加密密鑰,在運(yùn)行中,跳過Nob(cnt)>10 的cnt,只保留‘1’bit個(gè)數(shù)小于等于10的cnt。所以,DUKPT能產(chǎn)生的最大密鑰數(shù)量為:

(7)

2.3 DUKPT的單片機(jī)軟件設(shè)計(jì)

下面從Server端和Client端說明DUKPT單片機(jī)實(shí)現(xiàn)算法的設(shè)計(jì)。

2.3.1Server端密鑰派生機(jī)制

服務(wù)器S接收到用戶C發(fā)送的當(dāng)前交易KSN,從中取出21bit加密計(jì)數(shù)器cnt,S只需在縱向進(jìn)行Nob(cnt)次F派生運(yùn)算,即可推演出當(dāng)前交易密鑰,其中Nob(cnt)<=N=10,具體步驟為:

(1)S根據(jù)BDK獲取C的初始化加密密鑰IK,IK=F(BDK);

(2)S根據(jù)cnt最高有效‘1’位置p1,ctemp=2p1,Ktemp=F(IK,ctemp);

(3)S據(jù)cnt第2最高有效‘1’位置p2,ctemp=ctemp+2p2,Ktemp=F(Ktemp,ctemp);

(4)繼續(xù)c)步驟,直到最低有效‘1’位,此時(shí)ctemp=cnt,Ktemp=F(Ktemp,ctemp);

(5)最終的Ktemp為當(dāng)前交易加密密鑰。

圖5 Client端當(dāng)前交易密鑰產(chǎn)生示意圖

2.3.2Client端密鑰派生機(jī)制

Client端的密鑰派生機(jī)制為縱向多元派生,密鑰的使用按照橫向順序,即按照cnt遞增順序。首先,Client的21個(gè)將用密鑰寄存器,初始化存入密鑰為:F(IK,2r-1),其中r={1,…,R},每個(gè)密鑰寄存器r存入密鑰K2r-1,然后IK被從Client存儲(chǔ)區(qū)內(nèi)擦除,這個(gè)R=21個(gè)密鑰實(shí)質(zhì)上是所有將用密鑰的父密鑰。Client端的每次當(dāng)前交易如圖5所示,對(duì)于第1次交易j=1,對(duì)應(yīng)加密計(jì)數(shù)器cnt=(21′b0…00001),對(duì)應(yīng)的交易密鑰K1=F(IK,1)存于第1個(gè)密鑰寄存器r=1中,交易結(jié)束后,K1被直接從存儲(chǔ)區(qū)擦除。因?yàn)镵1并無可派生子密鑰,所以它的重要性不很明顯,可以隨意擦除。j=2時(shí),使用r=2中的密鑰K2,K2是K3的父密鑰,所以交易結(jié)束后,擦除K2之前,需要先派生K3=F(K2,3)存于寄存器r=1中。繼續(xù)執(zhí)行此過程,直到一百萬次密鑰用盡。前向安全特性的一個(gè)重要保證是,在Client中,每一個(gè)密鑰的父密鑰都已經(jīng)不存在于寄存器中,派生函數(shù)不可逆。在派生過程中,所有使用密鑰對(duì)應(yīng)的cnt值中‘1’bit的個(gè)數(shù)都不超過10,即Nob(cnt)≤10,超過10的cnt將被跳過。

3 單片機(jī)軟件實(shí)現(xiàn)與驗(yàn)證

3.1 DUKPT密鑰管理系統(tǒng)軟件實(shí)現(xiàn)

DUKPT軟件代碼編寫采用51單片機(jī)C語言,因?yàn)樽鳛槊荑€管理系統(tǒng),要具備更高的靈活性,所以本文選則51單片機(jī)平臺(tái),采用SiliconLabs公司的C8051F340單片機(jī)。按照ANSX9.24的DUKPT算法規(guī)范,需將理論算法用C語言表達(dá)出,在軟件平臺(tái)實(shí)現(xiàn),本文定義了派生流程函數(shù),設(shè)計(jì)了軟件構(gòu)架,并用流程圖形式表達(dá)出來。

如圖6是軟件構(gòu)架的流程圖,實(shí)際為前文所設(shè)計(jì)算法單片機(jī)軟件實(shí)現(xiàn),所有流程函數(shù)按流程進(jìn)行調(diào)用,即可實(shí)現(xiàn)DUKPT密鑰使用、派生、銷毀等操作。詳細(xì)流程步驟,限于篇幅,本文不再贅述。在系統(tǒng)中,密鑰存儲(chǔ)是放在非易失性存儲(chǔ)器中的,本文設(shè)計(jì)存儲(chǔ)空間為51單片機(jī)內(nèi)部FLASH。

3.2 DUKPT密鑰管理系統(tǒng)軟件的驗(yàn)證

通過使用SiliconLabs公司C8051F系列單片機(jī)仿真器U-EC5對(duì)程序運(yùn)行進(jìn)行在線仿真,進(jìn)行仿真驗(yàn)證。平臺(tái)驗(yàn)證使用的是兩臺(tái)C8051F340單片機(jī)組成的Server-Client交易平臺(tái),模擬真實(shí)加密系統(tǒng)進(jìn)行DUKPT密鑰管理系統(tǒng)驗(yàn)證.平臺(tái)組成框圖如圖7所示,實(shí)物如圖8所示。使用SPI協(xié)議進(jìn)行Server-Client端數(shù)據(jù)傳輸,Server端單片機(jī)通過使用U-EC5仿真器在線觀察系統(tǒng)運(yùn)行結(jié)果。

圖6 DUKPT算法流程圖

圖7 驗(yàn)證平臺(tái)組成框圖

圖8 單片機(jī)驗(yàn)證平臺(tái)實(shí)物圖

進(jìn)行Server-Client端進(jìn)行模擬交易,將Server解密出的明文與Client端直接傳輸?shù)脑拿魑淖霰葘?duì)。交易次數(shù)為1048575次,完成百萬次密鑰的全部派生、驗(yàn)證。通過記錄,實(shí)際正常交易次數(shù),加解密錯(cuò)誤次數(shù)行進(jìn)單片機(jī)驗(yàn)證的結(jié)果如表1所示。

表1 百萬次交易錯(cuò)誤統(tǒng)計(jì)表

最大派生密鑰數(shù)量理論值為1048575,但實(shí)際驗(yàn)證中,加密數(shù)據(jù)的原文驗(yàn)證錯(cuò)誤次數(shù)為0,說明系統(tǒng)能正確運(yùn)行。即使密文傳輸有錯(cuò)誤,在交易中通過單片機(jī)軟件的縱向冗余校驗(yàn)(LRC)機(jī)制,即可鑒別、排除錯(cuò)誤,保證交易安全。

經(jīng)驗(yàn)證,本文設(shè)計(jì)的DUKPT密鑰管理系統(tǒng)可以正確工作,且經(jīng)過硬件驗(yàn)證,系統(tǒng)符合ANS X9.24標(biāo)準(zhǔn)中關(guān)于DUKPT的規(guī)范。

經(jīng)KELL C51μVision4對(duì)Client端軟件代碼編譯,所占用單片機(jī)資源報(bào)告如表2所示。

表2 單片機(jī)消耗資源統(tǒng)計(jì)表

可見,一般性能單片機(jī)或其他CPU均能滿足該存儲(chǔ)空間的要求。因此該DUKPT密鑰管理系統(tǒng)有較好的應(yīng)用適應(yīng)性。

4 結(jié)束語

本文在51單片機(jī)平臺(tái)上用C語言完成了符合ANS X9.24金融標(biāo)準(zhǔn)規(guī)范的DUKPT對(duì)稱密鑰管理系統(tǒng)的軟件設(shè)計(jì),能派生百萬個(gè)密鑰用于加密,具有前向安全性,保證了交易的安全。并設(shè)計(jì)驗(yàn)證方案,將密鑰派生結(jié)果與標(biāo)準(zhǔn)測(cè)試數(shù)據(jù)比對(duì),結(jié)果表明,本文設(shè)計(jì)DUKPT密鑰管理系統(tǒng)運(yùn)行結(jié)果完全符合ANS X9.24金融標(biāo)準(zhǔn)規(guī)范,對(duì)于各種金融終端(如手機(jī)銀行、手機(jī)刷卡器等新型支付終端)信息加密具有非常重要實(shí)用意義。

[1]Smid M E,Branstad D K. Data Encryption Standard:Past and Future[J]. Proceedings of the IEEE,1988,76(5):550-559.

[2]焦占亞,曾永瑩,劉海峰. 一次一密的密碼算法研究[J]. 西安科技大學(xué)學(xué)報(bào),2005,25(4):477-480.

[3]王偉,郭錫泉. 一次一密DES算法的設(shè)計(jì)[J]. 計(jì)算機(jī)安全,2006,5:9.

[4]Canetti R,Halevi S,Katz J. A Forward-Secure Public-Key Encryption Scheme[C]//Advances in Cryptology—Eurocrypt 2003. Springer Berlin Heidelberg,2003:255-271.

[5]Kocher P C. Timing Attacks on Implementations of Diffie-Hellman,RSA,DSS,and Other Systems[C]//Advances in Cryptology—CRYPTO’96. Springer Berlin Heidelberg,1996:104-113.

[6]Kocher P,Jaffe J,Jun B. Differential Power Analysis[C]//Advances in Cryptology—CRYPTO’99. Springer Berlin Heidelberg,1999:388-397.

[7]Quisquater J J,Samyde D. Electromagnetic Analysis(ema):Measures and Counter-Measures for Smart Cards[C]//Smart Card Programming and Security. Springer Berlin Heidelberg,2001:200-210.

[8]王五一,唐剛. 談信息加密及對(duì)稱密鑰加密技術(shù)[J]. 計(jì)算機(jī)應(yīng)用研究,1999,16(12):26-27.

[9]高品均,陳榮良. 加密算法與密鑰管理[J]. 計(jì)算機(jī)世界,2000.

[10]Barker W C. Recommendation for the Triple Data Encryption Algorithm(TDEA)Block Cipher[M]. US Department of Commerce,Technology Administration,National Institute of Standards and Technology,2004:10-12.

[11]應(yīng)君,朱俊達(dá),陳抗生. DES加密算法在低成本FPGA上的實(shí)現(xiàn)[J]. 電子器件,2006,29(3):895-897.

[12]張萌,曹建峰,胡晨. 一種混合加密算法DESR的探討[J]. 電子器件,2001,24(4):6.

陳章余(1981-),男,江蘇新沂人,講師,碩士,研究方向?yàn)榍度胧较到y(tǒng)。

DUKPTKeyManagementSystemBasedonSCM

CHENZhangyu*

(Department of Electronic Engineering;Nanjing Engineering Vocational College,Nanjing 211135,China)

The encryption key is the core but the weakest link of encryption system. Therefore,the key management plays an important part in an encryption system,especially in the financial transaction encryption system. In this paper,the software design of the DUKPT defined in ANS X9.24 standard is finished on the 51 single-chip platform,by using C language. This system is designed to ensure the security of transactions with forward-security. Additionally,the validation scheme is designed. After checking the operating results with the standard test data for 1048575 times,we conclude that the designed DUKPT key management system runs correctly and is fully compliant with ANS X9.24 financial standards. And the design has a very important practical significance to the information encryption of the financial terminal.

DUKPT;SCM;Symmetric key management;ANS X9.24

2013-11-05修改日期:2013-12-25

TP368.2

:A

:1005-9490(2014)06-1177-06

10.3969/j.issn.1005-9490.2014.06.034

猜你喜歡
加密算法計(jì)數(shù)器寄存器
煤氣與熱力(2022年2期)2022-03-09 06:29:30
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
分簇結(jié)構(gòu)向量寄存器分配策略研究*
基于小波變換和混沌映射的圖像加密算法
計(jì)數(shù)器競(jìng)爭(zhēng)冒險(xiǎn)及其處理的仿真分析
Hill加密算法的改進(jìn)
對(duì)稱加密算法RC5的架構(gòu)設(shè)計(jì)與電路實(shí)現(xiàn)
任意N進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法
河南科技(2014年10期)2014-02-27 14:09:30
基于Arnold變換和Lorenz混沌系統(tǒng)的彩色圖像加密算法
基于單片機(jī)的仰臥起坐計(jì)數(shù)器
彩票| 隆德县| 沅江市| 华池县| 扎囊县| 社会| 托克逊县| 延安市| 永兴县| 修文县| 密云县| 天台县| 和顺县| 措美县| 通化县| 肥西县| 樟树市| 唐河县| 玉树县| 景泰县| 马边| 安平县| 怀来县| 山西省| 安西县| 攀枝花市| 华蓥市| 建水县| 茶陵县| 蒙阴县| 区。| 江阴市| 台北县| 五华县| 江华| 江源县| 利辛县| 泸定县| 巴塘县| 施秉县| 玛曲县|