在控制狀態(tài)機的控制下產(chǎn)生信號cnt,信號cnt是實現(xiàn)外部加 密數(shù)據(jù)的存儲控制信號,用來選擇加密的寄存器對象。該結(jié)構(gòu)通過增加一組寄存器(data_ in_reg2)來實現(xiàn)交叉存儲加密數(shù)據(jù),通過增加很小的硬件開銷來提高整個加解密的效率。
[0028] 在DES加解密方式下,加密時鐘利用率(加密時鐘利用率是指整個加解密過程中 加解密執(zhí)行所占有的時鐘周期數(shù)與加解密數(shù)據(jù)輸入到加解密完成之間的整個過程占有的 時鐘周期數(shù)之比)由82%提升為92% ;在3DES加解密方式下,加密時鐘利用率由93%提升為 97%〇
[0029] 數(shù)據(jù)傳輸接口 DES_io模塊調(diào)度方案如圖6所示,其內(nèi)部的狀態(tài)機如圖7所示。
[0030] 當外部將start_bit置為高后,說明外部已經(jīng)把需要加密的數(shù)據(jù)放入data_in_ reg中,將加密需要的密鑰放入key_reg中了。狀態(tài)機進入DES狀態(tài),設(shè)置des_active為 高,啟動DES_3DES開始工作。
[0031] 當檢測到des_data_valid為高時,表明加密結(jié)束,狀態(tài)機進入N0ACTIVE狀態(tài),將 des_active置為低,一次加密結(jié)束。
[0032] DES_3DES執(zhí)行模塊可以根據(jù)控制寄存器實現(xiàn)DES和3DES兩種加解密方式。
[0033] DES_3DES執(zhí)行模塊的內(nèi)部狀態(tài)機如圖8所示。其執(zhí)行流程為: 初始狀態(tài)為IDLE。當triple_active為高,表明加密開始,進入DESl狀態(tài)。
[0034] DESl 狀態(tài):將 single_active 置高,single_endec = triple_endec,密鑰為 triple_keyl,開始一次DES加密。直至single_data_valid為高,第一輪加密結(jié)束。若des_ tdes為低,說明只是需要單重des加解密,下一個狀態(tài)為IDLE狀態(tài)。若des_tdes為高,說 明需要triple_des加解密,下一個狀態(tài)為DES2。
[0035] DES2 狀態(tài):將 single_active 置高,single_endec = ! triple_endec,密鑰為 triple_key2,開始一次DES加密。直至single_data_valid為高,第二輪加密結(jié)束。下一 個狀態(tài)為DES3。
[0036] DES3 狀態(tài):將 single_active 置高,single_endec = triple_endec,密鑰為 triple_key3,開始一次DES加密。直至single_data_valid為高,第三輪加密結(jié)束。下一 個狀態(tài)為IDLE。
[0037] 其中,由于每次triple_des加解密的三次中間有一些的過程轉(zhuǎn)換時鐘,所以每 次加解密的結(jié)果需要保存,為了節(jié)省64比特的寄存器。當每一次DES加密完之后,將結(jié) 果通過端口 triple_data_out[63:0]輸出到DES_io模塊,暫時存儲在寄存器des_data_ out[63:0]中,當下一次加密開始時,通過端口 triple_des_in[63:0]輸入。
[0038] 整個3DES加解密算法電路用Verilog HDL設(shè)計,在SMIC 65nm CMOS工藝綜合下, 得到相應的面積為0. 01429mm2,工作在500MHz時的功耗為2. 688mW。該3DES加解密算法 電路能夠很好地用于高安全性能要求、低成本、低功耗的應用場合。
【主權(quán)項】
1. 一種支持多種工作模式的可配置3DES加解密算法電路,其特征在于包括如下模塊: (1) AHB總線接口DES_ahb模塊,用于集成到以AMBA總線為互聯(lián)機制的片上系統(tǒng)中; (2) 頂層模塊DESjnode模塊,用于實現(xiàn)數(shù)據(jù)傳輸接口DES_io模塊、DES_3DES執(zhí)行模 塊以及核心加密DES模塊的信號連接;整個DESjnode用于實現(xiàn)選擇單重DES加解密或者 3DES加解密;并且實現(xiàn)四種不同模式的DES或者3DES的加解密,四種模式為:電碼本、密碼 分組鏈接、密碼反饋、輸出反饋; (3) 數(shù)據(jù)傳輸接口DES_io模塊,其主要實現(xiàn)的功能是,與外部模塊以32比特為單位進 行數(shù)據(jù)傳輸,將數(shù)據(jù)存放在寄存器內(nèi),再根據(jù)需要的模式進行不同的調(diào)度,以64比特為單 位將需要加解密的數(shù)據(jù)傳入DES_3DES模塊; (4) DES_3DES執(zhí)行模塊,其根據(jù)控制寄存器實現(xiàn)DES和3DES兩種加解密方式; (5) 核心加密DES模塊,此模塊的基本迭代算法過程如下: 設(shè)Li-1、Ri-I分別指代一輪迭代的加密數(shù)據(jù)變換模塊輸入的高32位和低32位;Li、Ri分別指代一輪迭代的加密數(shù)據(jù)變換模塊輸出的高32位和低32位,并作為下一輪迭代的 數(shù)據(jù)輸入;Ki是每輪迭代加密數(shù)據(jù)變換的所需的輪密鑰;Ci-1、Di-I分別指一輪迭代中相 應的輪密鑰產(chǎn)生模塊輸入的高28位和低28位;Ci、Di分別指一輪迭代中相應的輪密鑰產(chǎn) 生模塊輸出的高28位和低28位,并作為下一輪迭代的輸入; 把64位的中間數(shù)據(jù)分為獨立的左右32位數(shù)據(jù)Li-I和Ri-I,每輪迭代變換的過程歸為 如下公式:其中,.¥#_^4,.%1§裏#到第二個異或運算輸入之間的運算,即汜-1首先經(jīng)過擴 展置換擴展為48位數(shù)據(jù),然后與48位的輪密鑰Ki進行異或運算,結(jié)果送入S盒中,S盒的 輸出再進行一次置換操作并和Li-I進行第二次的異或操作; 輪密鑰Ki生成:把Ci、Di首先左移1位或者2位,然后進行置換壓縮操作,結(jié)果即為每 輪迭代的輪密鑰Ki。2. 根據(jù)權(quán)利要求1所述的支持多種工作模式的可配置3DES加解密算法電路,其特征在 于所述數(shù)據(jù)傳輸接口DES_io模塊包括軟件配置的控制信號的控制寄存器,該控制寄存器 用于實現(xiàn)不同加解密方式和不同工作模式配置調(diào)度。3. 根據(jù)權(quán)利要求2所述的支持多種工作模式的可配置3DES加解密算法電路,其特征 在于所述數(shù)據(jù)傳輸接口DES_io模塊采用乒乓緩存的結(jié)構(gòu),其包括一個控制狀態(tài)機、一個數(shù) 據(jù)處理和存儲模塊、一個計數(shù)器、兩個寄存器data_in_reg和data_in_reg2,兩個寄存器 data_in_reg和data_in_reg2用于來交叉存儲加密數(shù)據(jù);數(shù)據(jù)處理和存儲模塊在控制狀 態(tài)機的控制下選通不同的數(shù)據(jù)通路來實現(xiàn)對不同的加密數(shù)據(jù)進行處理和結(jié)果的存儲;計數(shù) 器在控制狀態(tài)機的控制下產(chǎn)生信號cnt,信號cnt是實現(xiàn)外部加密數(shù)據(jù)的存儲控制信號,用 來選擇加密的寄存器對象。4. 根據(jù)權(quán)利要求3所述的支持多種工作模式的可配置3DES加解密算法電路,其特征在 于所述DES_3DES執(zhí)行模塊的內(nèi)部狀態(tài)機執(zhí)行流程為: 初始狀態(tài)為IDLE,當triple_active為高,表明加密開始,進入DESl狀態(tài); DESl狀態(tài):將single_active置高,single_endec = triple_endec,密鑰為triple_ keyl,開始一次DES加密;直至single_data_valid為高,第一輪加密結(jié)束;若des_tdes為 低,說明只是需要單重des加解密,進入下一個狀態(tài)為IDLE狀態(tài);若des_tdes為高,說明需 要triple_des加解密,進入下一個狀態(tài)為DES2 ; DES2狀態(tài):將single_active置高,single_endec =! triple_endec,密鑰為triple- key2,開始一次DES加密;直至single_data_valid為高,第二輪加密結(jié)束;進入下一個狀 態(tài)為DES3 ; DES3狀態(tài):將single_active置高,single_endec = triple_endec,密鑰為triple- key3,開始一次DES加密,直至single_data_valid為高,第三輪加密結(jié)束;進入下一個狀態(tài) 為IDLE。
【專利摘要】本發(fā)明屬于密碼學集成電路設(shè)計技術(shù)領(lǐng)域,具體為一種支持多工作模式的可配置3DES加解密算法電路。本發(fā)明3DES加解密算法電路由AHB總線接口、數(shù)據(jù)傳輸模塊、執(zhí)行模塊以及核心加密模塊等組成。本發(fā)明采用乒乓緩存的結(jié)構(gòu),使得整個電路在加解密過程中避免相鄰加解密操作之間等待輸入數(shù)據(jù)的時鐘消耗,提高加解密效率。本發(fā)明提供總線接口,便于集成到以AMBA總線為互聯(lián)機制的片上系統(tǒng)中。本發(fā)明實現(xiàn)可選的單重DES加解密或者3DES加解密,并且實現(xiàn)四種不同模式的DES或者3DES的加解密,這四種模式為電碼本、密碼分組鏈接、密碼反饋、輸出反饋。本發(fā)明整體運算效率高,面積小,能夠較好地應用于高安全性能要求的系統(tǒng)中。
【IPC分類】G06F21/60, H04L9/18
【公開號】CN105049203
【申請?zhí)枴緾N201510336965
【發(fā)明人】韓軍, 謝志成, 曾曉洋
【申請人】復旦大學
【公開日】2015年11月11日
【申請日】2015年6月17日