專利名稱:一種適用于無源便攜式設(shè)備的3des加密算法電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及SoC數(shù)字電路設(shè)計領(lǐng)域,特別涉及一種適用于CPU卡等無源便攜式設(shè)備的3DES加密算法電路。
背景技術(shù):
CPU卡也稱智能卡,卡內(nèi)的集成電路中嵌有微處理器,實現(xiàn)了軟硬件協(xié)同工作的方式,大大提高了其邏輯控制和數(shù)據(jù)處理的能力,這使得CPU卡采用強(qiáng)力的加密算法對交易流程進(jìn)行全程加密成為可能,安全性能遠(yuǎn)遠(yuǎn)超過以前的邏輯加密卡。CPU卡還具有用戶空間大、讀取速度快、支持一卡多用等特點,可廣泛應(yīng)用于金融、保險、交通、政府行業(yè)等多個領(lǐng)域。
3DES加密算法是DES加密算法的一種安全變形,通過使用不同的密鑰依次對數(shù)據(jù)實施DES加密、DES解密和DES加密,極大地擴(kuò)展了加密的密鑰空間,消除了暴力破解的可能。目前,仍然沒有一種有效的方法可以破解3DES,在需要確保高級安全性能的應(yīng)用中,3DES算法被廣泛采用。
雖然CPU卡具有通過軟件編程實現(xiàn)算法的能力,但軟件實現(xiàn)3DES并不可取,原因如下:
第一,3DES算法的特點是運算量大,并行度高,且運算多為置換、移位、異或等邏輯運算,用微處理器串行執(zhí)行指令的方式來實現(xiàn)效率低,耗時長。
第二,CPU卡無源便攜,通過和讀卡器之間的電磁感應(yīng)獲取能量,可供使用的電能有限,微處理器結(jié)構(gòu)復(fù)雜,動作功耗大,實現(xiàn)3DES的長時間高功耗是卡本身難以承受的。
第三,微處理器實現(xiàn)3DES需要頻繁借助片內(nèi)ROM和RAM,這一方面會引入額外的功耗,另一方面也會給提供數(shù)據(jù)交互的片上總線造成巨大負(fù)擔(dān)。
另一方面,雖然將3DES算法設(shè)計成CPU卡的硬件協(xié)處理器可以避免上述問題,但是硬件設(shè)計的自由度大,針對性強(qiáng),不同的架構(gòu)雖然能實現(xiàn)相同的功能,但在性能參數(shù)上卻各有偏重,不針對系統(tǒng)需求特點的硬件結(jié)構(gòu)反而會降低系統(tǒng)性能甚至造成設(shè)計失敗。
CPU卡芯片的特點是工作頻率不是很高(IS0-14443協(xié)議規(guī)定為13.56MHz±7kHz),但對低功耗設(shè)計要求嚴(yán)格,此外,從降低成本和方便嵌入的角度看,還要求芯片具有小面積、低資源消耗的優(yōu)點,而通用的3DES硬件電路結(jié)構(gòu)一般都是旨在追求芯片的高速數(shù)據(jù)處理能力,針對性差,不能很好地適用于CPU卡等無源便攜式設(shè)備。發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種適用于無源便攜式設(shè)備的3DES加密算法電路,具有低功耗、小面積和低資源消耗的優(yōu)點。
本發(fā)明提供了一種適用于無源便攜式設(shè)備的3DES加密算法電路,其包括:
全局有限狀態(tài)機(jī),其用于控制該加密算法電路中各個模塊的工作狀態(tài);
數(shù)據(jù)初始置換模塊,用于完成3DES加密算法中待加密數(shù)據(jù)的初始置換;
密鑰初始置換模塊,用于完成3DES加密算法中密鑰的初始置換;
輪函數(shù)模塊,用于根據(jù)所述數(shù)據(jù)初始置換模塊和子密鑰生成模塊的輸出數(shù)據(jù)完成3DES加密算法中輪函數(shù)的計算;
子密鑰生成模塊,用于根據(jù)所述密鑰初始置換模塊的輸出數(shù)據(jù)生成3DES算法中的子密鑰;
數(shù)據(jù)逆置換模塊,用于根據(jù)輪函數(shù)模塊的計算結(jié)果完成3DES加密算法中數(shù)據(jù)的逆置換,得到所述輸入數(shù)據(jù)的最終加密/解密結(jié)果。
本發(fā)明的有益效果是:
1、將3DES算法分解為五個基本功能模塊并進(jìn)行復(fù)用,有效減小了面積和資源消耗。
2、在分析子密鑰生成模塊所有工作方式的基礎(chǔ)上,將其分解為三種基本工作模式并用三個子模塊予以實現(xiàn),有效簡化了模塊的復(fù)雜度。
3、模塊設(shè)計成寄存器輸出并引入門控時鐘,有效降低了動態(tài)功耗。
4、合理安排算法流程,采用并行(包括模塊之間的并行和模塊內(nèi)部的并行)的架構(gòu)實現(xiàn)3DES算法,工作速度快,計算時間少。
5、接口簡單,易于轉(zhuǎn)化成符合不同總線要求的接口以滿足不同嵌入式應(yīng)用的要求。
圖1為本發(fā)明中適用于無源便攜式設(shè)備的3DES加密算法電路結(jié)構(gòu)圖2為本發(fā)明中子密鑰生成模塊的內(nèi)部結(jié)構(gòu)圖3為本發(fā)明優(yōu)選實施案例中加密算法電路的部分輸入及輸出信號的波形圖4為本發(fā)明優(yōu)選實施案例的性能評估報告示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。
請參閱圖1所示,本發(fā)明提供了一種適用于無源便攜式設(shè)備的3DES加密算法電路1,其包括:
全局狀態(tài)機(jī)2,其負(fù)責(zé)該加密算法電路的全局工作狀態(tài)跳轉(zhuǎn),并根據(jù)當(dāng)前狀態(tài)輸出其它各個模塊的門控時鐘使 能信號和多路選擇器選擇信號,以對其它模塊的開啟和數(shù)據(jù)流的走向進(jìn)行控制,計算結(jié)束后狀態(tài)機(jī)關(guān)閉所有模塊,置該加密算法電路進(jìn)入全局休眠狀態(tài),并輸出結(jié)束信號。
全局狀態(tài)機(jī)2包括兩組狀態(tài)寄存器cnt_des和cnt,電路狀態(tài)由數(shù)據(jù)對(cnt_des,cnt)來標(biāo)識,電路工作時狀態(tài)機(jī)通過對輸入時鐘的計數(shù)來控制狀態(tài)跳轉(zhuǎn),具體跳轉(zhuǎn)方式如下:(0,0) — (0,1) — (0,2)—…一(0,19) — (1,1) — (1,2)—…一(1,19) — (2,1) — (2,2)—…一(2,19) — (3,1),其中(0,0)為閑置狀態(tài),(3,I)為運算完成的結(jié)束狀態(tài),這兩個狀態(tài)下所有基本功能模塊的門控時鐘均被關(guān)閉。
數(shù)據(jù)初始置換模塊3,其通過線連(即輸入輸出之間的直接對應(yīng)連接,不同的對應(yīng)方式實現(xiàn)不同的置換)的硬件結(jié)構(gòu)實現(xiàn)3DES算法中輸入數(shù)據(jù)的初始置換,模塊設(shè)計為寄存器輸出,寄存器由模塊內(nèi)置的門控時鐘予以驅(qū)動,門控時鐘在cnt = 2時開啟,其余狀態(tài)時關(guān)閉。其輸入在狀態(tài)(0,2)時為初始輸入數(shù)據(jù),其余狀態(tài)時為上一次DES運算的結(jié)果,即數(shù)據(jù)逆置換模塊7的輸出,而輸入數(shù)據(jù)的切換由內(nèi)部多路選擇器完成。其輸出為輪函數(shù)模塊5的輸入。
密鑰初始置換模塊4,其通過線連的硬件結(jié)構(gòu)實現(xiàn)3DES算法中密鑰的初始置換,模塊設(shè)計為寄存器輸出,寄存器由模塊內(nèi)置的門控時鐘予以驅(qū)動,門控時鐘在cnt = I時開啟,其余狀態(tài)時關(guān)閉。其輸入在加密模式下為:cnt_des = O時為keyl、cnt_des = I時為key2、cnt_des = 2 時為 key3,在解密模式下為:cnt_des = O 時為 key3、cnt_des = I 時為key2、cnt_des = 2時為keyl,而輸入數(shù)據(jù)的切換由內(nèi)部多路選擇器完成,其中keyl、key2和key3為原始的密鑰輸入。其輸出為子密鑰產(chǎn)生模塊6的輸入。
子密鑰產(chǎn)生模塊6,其通過移位和線連的硬件結(jié)構(gòu)實現(xiàn)3DES算法中子密鑰的生成。其輸入在cnt = 2時為密鑰初始置換模塊4的輸出,其余狀態(tài)時為其自身上一次的輸出,而輸入數(shù)據(jù)的切換由子密鑰產(chǎn)生模塊6包含的三個子模塊內(nèi)部的多路選擇器完成。其輸出為輪函數(shù)模塊5的輸入。
經(jīng)簡化的子密鑰產(chǎn)生模塊6如圖2所示,包含3個子模塊:第一子模塊61,其在加密時將輸入數(shù)據(jù)左移I位,解密時保持不變;第二子模塊62,其在加密時將輸入數(shù)據(jù)左移I位,解密時右移I位;第三子模塊63,其在加密時將輸入左移2位,解密時右移2位。子模塊設(shè)計為寄存器輸出,寄存器由子模塊內(nèi)置的門控時鐘予以驅(qū)動。子模塊61的門控時鐘在cnt = 2時開啟,其余狀態(tài)時關(guān)閉;子模塊62的門控時鐘在cnt = 3、10、17時開啟,其余狀態(tài)時關(guān)閉;子模塊63的門控時鐘在cnt = 4 9、11 16時開啟,其余狀態(tài)時關(guān)閉。子密鑰產(chǎn)生模塊6還包括一個多路選擇器64,其在cnt = 3時選擇子模塊61的輸出,在cnt =4、11、18時選擇子模塊62的輸出,在cnt = 5 10、12 17時選擇子模塊63的輸出。
輪函數(shù)模塊5,其通過移位、線連和異或的硬件結(jié)構(gòu)實現(xiàn)3DES算法中輪函數(shù)的功能,模塊設(shè)計為寄存器輸出,寄存器由模塊內(nèi)置的門控時鐘予以驅(qū)動,門控時鐘在cnt =318時開啟,其余狀態(tài)時關(guān)閉。其輸入的一部分始終為子密鑰產(chǎn)生模塊6的輸出,另一部分在cnt = 3時為數(shù)據(jù)初始置換模塊3的輸出,其余狀態(tài)時為模塊5自身上一次的輸出,數(shù)據(jù)切換由內(nèi)部多路選擇器完成。其輸出為數(shù)據(jù)逆置換模塊7的輸入。
數(shù)據(jù)逆置換模塊7,通過線連的硬件結(jié)構(gòu)實現(xiàn)3DES算法中數(shù)據(jù)的逆置換,模塊設(shè)計為寄存器輸出,寄存器由模塊內(nèi)置的門控時鐘予以驅(qū)動,門控時鐘在cnt = 19時開啟,其余狀態(tài)時關(guān)閉。其輸入始終為輪函數(shù)模塊5的輸出。其輸出一方面在下一輪DES運算開始時為數(shù)據(jù)初始置換模塊3的輸入,另一方面在計算結(jié)束時即為最終的數(shù)據(jù)輸出。
實施例1
為了驗證本發(fā)明一種適用于CPU卡的3DES加密算法的電路結(jié)構(gòu)的功能,進(jìn)行了如下的實驗:
隨機(jī)選取了 一組明文和密鑰輸入:
din = 0x9ba26cab5d715f65,
keyl = 0xb0004d01elbe37b5,
key2 = 0x98feb211c096fa8e,
key3 = 0x764f9365f02cee22。經(jīng)計算,經(jīng)過3DES加密的密文輸出應(yīng)為:dout = 0x97078658210b6718。利用本發(fā)明對以上明文和密文分別進(jìn)行一次加密和解密,結(jié)果如圖3所示。圖3示出了輸入到所述3DES加密算法的部分輸入及輸出信號,所述部分輸入信號從上至下依次為:復(fù)位信號、時鐘信號、加解密選擇信號、啟動信號、結(jié)束信號、輸出數(shù)據(jù)信號。由圖3的輸出數(shù)據(jù)信號的結(jié)果可以看出電路結(jié)構(gòu)功能完全正確,且可以計數(shù)出一次3DES運算僅需58個時鐘周期。實施例2為了驗證本發(fā)明提出的上述適用于CPU卡的3DES加密算法的電路結(jié)構(gòu)的性能,進(jìn)行了如下的實驗:選用Charter 0.35 μ m CMOS工藝庫和Synopsys公司的軟件工具DesignCompiler在選取最差環(huán)境條件WCCOM下(電壓=3.0V,溫度=125°C )進(jìn)行綜合評估,得到如圖4所示的評估報告,包括:時序評估報告(上),單位為ns;面積評估報告(中),單位為門數(shù);功耗評估報告(下)。報告顯示本發(fā)明至少能滿足20MHz的工作頻率要求,面積約為8500門,動態(tài)功耗在3V工作電壓和20MHz工作頻率下僅為2.44mff,完全符合CPU卡的性能要求。以上所述的具體實施例,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種適用于無源便攜式設(shè)備的3DES加密算法電路,其包括: 全局有限狀態(tài)機(jī),其用于控制該加密算法電路中各個模塊的工作狀態(tài); 數(shù)據(jù)初始置換模塊,用于完成3DES加密算法中待加密數(shù)據(jù)的初始置換; 密鑰初始置換模塊,用于完成3DES加密算法中密鑰的初始置換; 輪函數(shù)模塊,用于根據(jù)所述數(shù)據(jù)初始置換模塊和子密鑰生成模塊的輸出數(shù)據(jù)完成3DES加密算法中輪函數(shù)的計算; 子密鑰生成模塊,用于根據(jù)所述密鑰初始置換模塊的輸出數(shù)據(jù)生成3DES算法中的子密鑰; 數(shù)據(jù)逆置換模塊,用于根據(jù)輪函數(shù)模塊的計算結(jié)果完成3DES加密算法中數(shù)據(jù)的逆置換,得到所述輸入數(shù)據(jù)的最終加密/解密結(jié)果。
2.如權(quán)利要求1所述的加密算法電路,其特征在于,所述子密鑰生成模塊包括三個子模塊: 第一子模塊,其在數(shù)據(jù)加密時將密鑰左移I位,數(shù)據(jù)解密時保持不變; 第二子模塊,其在數(shù)據(jù)加密時將密鑰左移I位,數(shù)據(jù)解密時右移I位; 第三子模塊,其在數(shù)據(jù)加密時將密鑰左移2位,數(shù)據(jù)解密時右移2位。
3.如權(quán)利要求2所述的加密算法電路,其特征在于,所述子密鑰生成模塊的三個子模塊共用所述子密鑰生成模塊的輸入,其輸出連接至所述子密鑰生成模塊內(nèi)部的多路選擇器,以根據(jù)所述全局有限狀態(tài)機(jī)的輸出狀態(tài)選擇相應(yīng)子模塊的輸出。
4.如權(quán)利要求1所述的加密算法電路,其特征在于,所述各個模塊內(nèi)部均包括輸入數(shù)據(jù)多路選擇器,其在所述全局有限狀態(tài)機(jī)的輸出狀態(tài)控制下進(jìn)行輸入數(shù)據(jù)的選擇。
5.如權(quán)利要求2所述的加密算法電路,其特征在于,所述子密鑰產(chǎn)生模塊還包括輸出數(shù)據(jù)多路選擇器,其在所述全局有限狀態(tài)機(jī)的輸出狀態(tài)控制下,選擇所述三個子模塊之一的輸出數(shù)據(jù)進(jìn)行輸出。
6.如權(quán)利要求1所述的加密算法電路,其特征在于,所述各個模塊均包括輸出寄存器,其由各個模塊內(nèi)部的門控時鐘驅(qū)動,且所述門控時鐘的使能信號由全局有限狀態(tài)機(jī)的輸出狀態(tài)控制。
7.如權(quán)利要求1所述的加密算法電路,其特征在于,所述數(shù)據(jù)初始置換模塊在所述全局有限狀態(tài)機(jī)的輸出狀態(tài)控制下選擇初始輸入數(shù)據(jù)或上一次輪函數(shù)模塊的輸出數(shù)據(jù)作為輸入。
8.如權(quán)利要求2所述的加密算法電路,其特征在于,所述三個子模塊在所述全局有限狀態(tài)機(jī)的輸出狀態(tài)控制下選擇密鑰初始轉(zhuǎn)換模塊或其自身上一次的輸出作為輸入。
9.如權(quán)利要求1所述的加密算法電路,其特征在于,所述輪函數(shù)模塊的一部分輸入為子密鑰產(chǎn)生模塊的輸出,另一部分輸入為所述數(shù)據(jù)初始置換模塊的輸出或其自身上一次的輸出。
10.如權(quán)利要求1所述的加密算法電路,其特征在于,所述全局有限狀態(tài)機(jī)輸出各個模塊的門控時鐘使能信號,以控制各個模塊的開啟和關(guān)閉。
全文摘要
本發(fā)明公開了一種適用于無源便攜式設(shè)備的3DES加密算法電路,其包括全局有限狀態(tài)機(jī),其用于控制該加密算法電路中各個模塊的工作狀態(tài);數(shù)據(jù)初始置換模塊,用于完成3DES加密算法中待加密數(shù)據(jù)的初始置換;密鑰初始置換模塊,用于完成3DES加密算法中密鑰的初始置換;輪函數(shù)模塊,用于根據(jù)所述數(shù)據(jù)初始置換模塊和子密鑰生成模塊的輸出數(shù)據(jù)完成3DES加密算法中輪函數(shù)的計算;子密鑰生成模塊,用于根據(jù)所述密鑰初始置換模塊的輸出數(shù)據(jù)生成3DES算法中的子密鑰;數(shù)據(jù)逆置換模塊,用于根據(jù)輪函數(shù)模塊的計算結(jié)果完成3DES加密算法中數(shù)據(jù)的逆置換,得到所述輸入數(shù)據(jù)的最終加密/解密結(jié)果。
文檔編號G06F21/72GK103150522SQ20131007185
公開日2013年6月12日 申請日期2013年3月7日 優(yōu)先權(quán)日2013年3月7日
發(fā)明者方睿, 魯華祥, 邊昳, 陳旭, 陳剛, 葛濱, 徐露露 申請人:中國科學(xué)院半導(dǎo)體研究所