基于PCI總線加密卡硬件設(shè)計(jì)
3.1 3DES算法模塊設(shè)計(jì)
本設(shè)計(jì)采用兩個(gè)密鑰的3DES,該加密方案使用兩個(gè)不同的密鑰Key1和Key2對(duì)明文進(jìn)行三次DES或DES-1變換,加密函數(shù)采用加密-脫密-加密序列:
兩個(gè)密鑰的三重DES的有效密鑰長(zhǎng)度是112位。在本設(shè)計(jì)中采用了密碼分組鏈接方式(CBC)。在這種方案中,加密算法的輸入是當(dāng)前的明文分組和前邊的密文分組的異或,對(duì)每個(gè)分組使用相同的密鑰。從效果上看,將明文分組序列的處理連接起來了。每個(gè)明文分組的加密函數(shù)的輸入與明文分組之間不再有固定的關(guān)系,因此,64bit的重復(fù)模式不再會(huì)暴露。
3DES密碼硬件模塊為控制模塊和數(shù)據(jù)路徑設(shè)計(jì)兩部分??刂颇K產(chǎn)生數(shù)據(jù)通路需要的控制信號(hào)序列,保證數(shù)據(jù)處理單元正確有序地工作。數(shù)據(jù)路徑用來實(shí)現(xiàn)信息傳送和密碼變換的數(shù)據(jù)處理單元。3DES算法設(shè)計(jì)采用迭代結(jié)構(gòu),由初始置換電路IP、多路選擇電路L_MUX和R_MUX、32-bit L鎖存器、32-bit R鎖存器、擴(kuò)展置換E處理電路、S盒數(shù)據(jù)代替電路、P盒置換電路及末置換IP-1電路構(gòu)成。其運(yùn)算電路如圖3所示。
3.2 3DES輸入輸出模塊設(shè)計(jì)
輸入輸出模塊主要為密碼運(yùn)算模塊提供密鑰、數(shù)據(jù)以及命令信息的模塊。控制信號(hào)主要包括:操作時(shí)鐘CLK、系統(tǒng)初始化INIT、寫使能WEN、讀使能REN、運(yùn)算完畢READY、DIN[31:0]、數(shù)據(jù)輸入、數(shù)據(jù)輸出DOUT[31:0]、端口選擇A[2:0]。當(dāng)INIT=1時(shí),將3DES模塊內(nèi)部所有寄存器復(fù)位并清零;當(dāng)A[2:0]=010, WEN=1時(shí),在CLK時(shí)鐘上升沿,將命令字由32位數(shù)據(jù)總線寫入芯片內(nèi)部命令寄存器;當(dāng)A[2:0]=001,WEN=1時(shí),在CLK時(shí)鐘上升沿,將128位的密鑰分四次由32-bit數(shù)據(jù)總線寫入芯片內(nèi)部密鑰寄存器;當(dāng)A[2:0]=000,WEN=1時(shí),在CLK時(shí)鐘上升沿將64位的數(shù)據(jù)分兩次由32位數(shù)據(jù)總線寫入芯片內(nèi)部輸入數(shù)據(jù)寄存器;每寫夠2個(gè)長(zhǎng)字,3DES模塊開始運(yùn)算,運(yùn)算完畢后,READY變?yōu)楦唠娖?,輸出?shù)據(jù)分為兩組分別送入temporary_l和temporary_2兩個(gè)寄存器。3DES Quartus仿真波形如圖4所示。
評(píng)論