歡迎您訪問鄭州興邦電子股份有限公司官方網(wǎng)站!
阿里巴巴誠信通企業(yè)
全國咨詢熱線:40000-63966
興邦電子,中國水控機(jī)第一品牌

聯(lián)系興邦電子

全國咨詢熱線:40000-63966

售后:0371-55132951/55132952

工廠:河南省 鄭州市 高新區(qū)蓮花街電子電器產(chǎn)業(yè)園

基于混沌映射的智能卡信道加密方案

文章出處:http://xianjuhong.com 作者:王潔冉,馬秀榮,張佳明   人氣: 發(fā)表時間:2011年09月30日

[文章內(nèi)容簡介]:以中電華大的CIU51GI28智能卡芯片為平臺,針對智能卡與服務(wù)器端的報(bào)文交換安全問題,提出一種基于Logistic混沌加密序列的服務(wù)器端與卡端的數(shù)據(jù)動態(tài)加密傳輸方案,采用標(biāo)準(zhǔn)3DES算法作為加密算法,樣卡測試表明,該方案克服傳統(tǒng)方法易受明文攻擊、報(bào)文交換過程復(fù)雜、時間長等缺點(diǎn),實(shí)現(xiàn)智能卡與服務(wù)器端報(bào)文的安全交換。

    1 概述

    由于ISO 7816-3的限制,智能卡I/O線上的數(shù)據(jù)基本上沒有封裝,因此利用PC機(jī)上的RS232串口很容易就能截獲I/O線上的數(shù)據(jù)。對于一些敏感數(shù)據(jù)的傳輸、私有密鑰的外部認(rèn)證等,必須將數(shù)據(jù)加密以保證信道安全。傳統(tǒng)方法將私有密鑰在卡片個人化階段寫入卡片NVM(Non Volatile Memory),其認(rèn)證流程如下:(1)利用取隨機(jī)數(shù)指令從卡中取出8 Byte(16 Byte)隨機(jī)數(shù)。(2)利用私有密鑰將隨機(jī)數(shù)作DES(3DES)]加密生成密文。(3)將密文利用外部認(rèn)證指令送入卡中。(4)COS(Card Operation System)利用私有密鑰將密文解密,并與流程(I)所生成的隨機(jī)數(shù)做比較,完成外部認(rèn)證??梢?, 上述認(rèn)證過程(密文交換過程)很容易受到明文攻擊,而且認(rèn)證的安全性依賴于固化在NVM 上的密鑰以及隨機(jī)數(shù)的質(zhì)量,對于像CIU51G128這樣沒有真隨機(jī)數(shù)發(fā)生器的低成本卡片來講,上述機(jī)制毫無意義。

    Logistic序列具有對初值敏感、類隨機(jī)和可重現(xiàn)等特性,進(jìn)入混沌狀態(tài)后,具有分布均勻、迭代公式簡單、易于數(shù)字實(shí)現(xiàn)等優(yōu)點(diǎn)。本文討論并實(shí)現(xiàn)了利用Logistic混沌映射來同步動態(tài)生成服務(wù)器端和卡端密鑰,提高了報(bào)文交換的安全性。

    2 Logistic混沌映射理論及其特性

    混沌現(xiàn)象是非線性動力系統(tǒng)中一種確定的、類似隨機(jī)的過程。由于混沌動力系氣初始條件的極端敏感性,能產(chǎn)生大量的非周期、連續(xù)寬帶頻譜、類似噪聲且確定可再生的混沌信號。Logistic混沌映射是人們普遍研究的一種混沌映射,其表達(dá)式為 

    其中,0<Xn<1;1≤ μ≤4, 稱為分形參數(shù),圖1是Xo=0.5,迭代300次時,μ的取值對X的影響,當(dāng)3.57≤ μ≤4時,系統(tǒng)呈現(xiàn)混沌狀態(tài)。 

    圖2為當(dāng)Xo取0.663 489 000,0.663 489 001,μ=3.99時2個不同初值的混沌序列差值的情況。 

不同柵值的棍沌序列之差

    可見,2個初值僅相差0.000 000 001,在最開始20多次迭代,兩者的差很小,近似為0,但隨著迭代次數(shù)的增加,2個序列的值顯示出一種無規(guī)律的情形,兩者相差也比較明顯了。因此,可以看出該系統(tǒng)對初值的變化十分敏感而且具有雪崩效應(yīng)。

    (1)Logistic混沌序列的概率密度分布函數(shù)為

    (2)Logistic混沌序列的均值為 

    (3)Logistic的自相關(guān)和互相關(guān)性

    設(shè)a(1) ,a(2) 分別表示長度為N的2個不同的Logistic混沌映射序列,n 表示a?在i時刻的狀態(tài)。當(dāng)N→∞時,序列的自相關(guān)和互相關(guān)函數(shù)分別為 


    其中,表示a(1)的復(fù)共軛??梢奓ogistic混沌映射序列具有良好的自相關(guān)和互相關(guān)特性。

    (4)Logistic混沌序列的李雅普諾夫(Lyapunov)指數(shù)

    李雅普諾夫指數(shù)是對非線性映射產(chǎn)生的運(yùn)動軌道相互間趨近或分離的整體效果進(jìn)行的定量刻畫。對混沌系統(tǒng)而言,正的李雅普諾夫指數(shù)表明軌線在每個局部都不穩(wěn)定,相鄰軌道按指數(shù)分離。同時正的李雅普諾夫指數(shù)也表示相鄰點(diǎn)信息量的丟失,其值越大,信息量丟失越嚴(yán)重,混沌程度越高。

    在一維動力系統(tǒng)X n+1 =F(X n)中,李稚普諾夫指數(shù)為 

    其中,λ與初值的選取沒有關(guān)系。對于Logistic映射,考慮參數(shù)3.4≤ μ≤4,若P<P ∞=3.569 9,則λ<0對應(yīng)周期運(yùn)動。若μ>μ∞=3.569 9,則λ>0對應(yīng)混沌運(yùn)動。

    3 基于混沌映射的動態(tài)3DES加密方案

    3.1 密文交換流程設(shè)計(jì)

    DES算法是一種公認(rèn)的良好加密算法,已經(jīng)成為貿(mào)易、金融,通信等行業(yè)的事實(shí)標(biāo)準(zhǔn)。但是DES算法是一種公開算法,其安全性完全依賴于對密鑰的保護(hù),必須有可靠的信道來分發(fā)密鑰,而且單DES算法密鑰過短,僅有8 Byte。

    為了彌補(bǔ)這一缺點(diǎn),人們設(shè)計(jì)了三重DES(3DES)。即使用3次單DES算法,每次采用加密、解密和不同的密鑰的組合來強(qiáng)化DES算法。目前常用的3DES算法模型有: 

    (1)DES—EEE2:雙密鑰加密方法。采用加密-加密-加密的流程,其中,第1加密過程和第3加密過程使用相同的密鑰。 

    (2)DES—EDE2:雙密鑰加密方法。采用加密-加密-加密的流程,其中,第1加密過程和第3加密過程使用相同的密鑰。

    (3)DES—EEE3:三密鑰加密法。采用加密-加密-加密的流程,每個加密過程使用一個不同的密鑰。

    (4)DES—EDE3:三密鑰加密法。采用加加密-加密-加密的流程,每個加密、解密過程使用一個不同的密鑰。

    為了增強(qiáng)安全性本文采用方案,即每輪單DES運(yùn)算采用一個不同的密鑰,這樣即使其中某一輪的密鑰被攻破,密文也不會被破解,其中每一輪的密鑰由配置不同分形參數(shù)的Logistic混沌序列來產(chǎn)生。

    為了解決密鑰分發(fā)問題,采用卡端與服務(wù)器端同步生成密鑰的方案,即在卡片預(yù)個人化階段, 由服務(wù)器隨機(jī)生成3個分型參數(shù) μI, μ2, μ3和初始值  X,Y,z0,并和每張卡片的序列號(ICCID:Integrate Circuit Card Identifier)對應(yīng),然后將3個分型參數(shù)和初始值寫入卡中NVM,同時服務(wù)器將3個分型參數(shù)和初始值存入數(shù)據(jù)庫,這樣相當(dāng)于服務(wù)器端和卡端2個混沌系統(tǒng)具有相同的初始值和參數(shù)配置。只要在每次外部認(rèn)證或密文傳遞時,服務(wù)器端和卡端的迭代次數(shù)相同,就能保證2端使用的密鑰是相同的,這樣就解決了密鑰分發(fā)的問題。同時,卡端和服務(wù)器端將本次迭代結(jié)果保存并作為下一次迭代的初始值。這樣就實(shí)現(xiàn)了一次一密的動態(tài)加密,有效地防止了明文攻擊和暴力破解。

    3.2 Logistic混沌序列的算法設(shè)計(jì)

    由于8 bit 51核CPU字長有限,因此得到的序列僅可能是理論值的逼近而且序列必然呈現(xiàn)周期性,但是從工程角度來看,只要保證周期足夠長,序列足夠復(fù)雜即可。結(jié)合以上因素,考慮到存儲空間、運(yùn)算效率、序列復(fù)雜度和DES運(yùn)算對密鑰長度的要求,采用double型變量來存儲分型參數(shù)和初始值,即每個參數(shù)占用8 Byte的存儲空問。

    為了使用通用浮點(diǎn)數(shù)表示,采用IEEE Std 754—1985所規(guī)定的浮點(diǎn)數(shù)表示法,由于Logisic混沌序列的X n∈(0,1),因此將X寫成二進(jìn)制形式,即 

    在式(9)中,(2L-Xn )相當(dāng)于對XK求補(bǔ)碼,(2L-Xn )和XK均為L比特,乘積為2L bit,再與Lbit的  μ相乘,得到3L bit的乘積,然后除以2L就是把乘積右移L bit,取高L bif作為輸出結(jié)果,如圖3所示。 


    4 Logistic混沌映射的數(shù)字算法的實(shí)現(xiàn)

    上述算法的實(shí)現(xiàn)采用中電華大的CIU51G128智能卡芯片,IDE(Integrated Development Environment)采用Keilvision2。Flash一般劃分為代碼區(qū)和數(shù)據(jù)區(qū),采用64 KB代碼,64 KB數(shù)據(jù)的規(guī)劃方式,數(shù)據(jù)區(qū)分為系統(tǒng)區(qū)、用戶數(shù)據(jù)區(qū)和備份區(qū)。其中,系統(tǒng)區(qū)主要存放自由指針、卡片狀態(tài)、MF(Master File)地址和算法常量等重要數(shù)據(jù),故整個系統(tǒng)區(qū)

    一般采用異或校驗(yàn)或CRC 校驗(yàn)來保證數(shù)據(jù)的一致性和正確性。系統(tǒng)區(qū)洋細(xì)規(guī)劃見表1。 


    注:物理地址=0x l 0000+邏輯地址

    利用服務(wù)器生成的分型參數(shù) μI, μ2, μ3和初始值X0,Y0,z0見表2,在卡片上采用Big Endian方式存儲生成的浮點(diǎn)數(shù)。 

    圖4為利用仿真器查看到的FLASH上系統(tǒng)區(qū)的內(nèi)容,由于采用了Bank機(jī)制,代碼區(qū)占用了Bank 0和Bank 1,數(shù)據(jù)區(qū)占用了Bank 2和Bank 3,每個Bank的地址空間為0x8000~0xFFFF共32 KB 空間,因此數(shù)據(jù)區(qū)的邏輯地址0x0000對應(yīng)于Bank 2的0x8000。 

    經(jīng)過200次迭代后,X200,Y200和Z200見表3。 

    例如,加密的數(shù)據(jù)明文為{0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88},則采用前述3DES算法,第1輪加密使用密鑰X200,第2輪解密使用密鑰Y200,第3輪加密使用密鑰Z200,最后密文結(jié)果為{0xE3,0x1D,0x61,0xEF,0x68,0x9D,0xFB,0x72}。當(dāng)服務(wù)器端收到密文后,根據(jù)卡片的ICCID 查找到對應(yīng)的分型參數(shù)和初始值,同樣迭代200次后生成密鑰,第1輪解密使用密鑰 200,第2輪加密使用密鑰Y200,第3輪解密使用密鑰:Z200, 得到明文{0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88},這樣就完成了一次報(bào)文交換。

    5 結(jié)束語

    本文提出的動態(tài)信道加密方案具有速度快、代碼小、成本低和安全性好等優(yōu)點(diǎn),適用于外部認(rèn)證和敏感數(shù)據(jù)的傳輸。隨著智能卡應(yīng)用領(lǐng)域的不斷擴(kuò)大,該方案在遠(yuǎn)程身份認(rèn)證和金融交易等對安全性要求較高的場合具有較為廣闊的應(yīng)用前景。

    (文/天津理工大學(xué)光纖通信實(shí)驗(yàn)室,王潔冉,馬秀榮,張佳明)

本文關(guān)鍵詞:報(bào)文安全交換,混沌序列,DES算法,智能,文安全交換,混沌序列,DES算法,智能卡
回到頂部