鬼佬大哥大
  • / 11
  • 下載費用:30 金幣  

一種支持多工作模式的可配置3DES加解密算法電路.pdf

摘要
申請專利號:

CN201510336965.2

申請日:

2015.06.17

公開號:

CN105049203A

公開日:

2015.11.11

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):H04L 9/18申請日:20150617|||公開
IPC分類號: H04L9/18; G06F21/60(2013.01)I 主分類號: H04L9/18
申請人: 復旦大學
發明人: 韓軍; 謝志成; 曾曉洋
地址: 200433上海市楊浦區邯鄲路220號
優先權:
專利代理機構: 上海正旦專利代理有限公司31200 代理人: 陸飛; 盛志范
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510336965.2

授權公告號:

||||||

法律狀態公告日:

2018.06.29|||2015.12.23|||2015.11.11

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明屬于密碼學集成電路設計技術領域,具體為一種支持多工作模式的可配置3DES加解密算法電路。本發明3DES加解密算法電路由AHB總線接口、數據傳輸模塊、執行模塊以及核心加密模塊等組成。本發明采用乒乓緩存的結構,使得整個電路在加解密過程中避免相鄰加解密操作之間等待輸入數據的時鐘消耗,提高加解密效率。本發明提供總線接口,便于集成到以AMBA總線為互聯機制的片上系統中。本發明實現可選的單重DES加解密或者3DES加解密,并且實現四種不同模式的DES或者3DES的加解密,這四種模式為電碼本、密碼分組鏈接、密碼反饋、輸出反饋。本發明整體運算效率高,面積小,能夠較好地應用于高安全性能要求的系統中。

權利要求書

1.一種支持多種工作模式的可配置3DES加解密算法電路,其特征在于包括如下模塊:(1)AHB總線接口DES_ahb模塊,用于集成到以AMBA總線為互聯機制的片上系統中;(2)頂層模塊DES_mode模塊,用于實現數據傳輸接口DES_io模塊、DES_3DES執行模塊以及核心加密DES模塊的信號連接;整個DES_mode用于實現選擇單重DES加解密或者3DES加解密;并且實現四種不同模式的DES或者3DES的加解密,四種模式為:電碼本、密碼分組鏈接、密碼反饋、輸出反饋;(3)數據傳輸接口DES_io模塊,其主要實現的功能是,與外部模塊以32比特為單位進行數據傳輸,將數據存放在寄存器內,再根據需要的模式進行不同的調度,以64比特為單位將需要加解密的數據傳入DES_3DES模塊;(4)DES_3DES執行模塊,其根據控制寄存器實現DES和3DES兩種加解密方式;(5)核心加密DES模塊,此模塊的基本迭代算法過程如下:設Li-1、Ri-1分別指代一輪迭代的加密數據變換模塊輸入的高32位和低32位;Li、Ri分別指代一輪迭代的加密數據變換模塊輸出的高32位和低32位,并作為下一輪迭代的數據輸入;Ki是每輪迭代加密數據變換的所需的輪密鑰;Ci-1、Di-1分別指一輪迭代中相應的輪密鑰產生模塊輸入的高28位和低28位;Ci、Di分別指一輪迭代中相應的輪密鑰產生模塊輸出的高28位和低28位,并作為下一輪迭代的輸入;把64位的中間數據分為獨立的左右32位數據Li-1和Ri-1,每輪迭代變換的過程歸為如下公式:其中,到第二個異或運算輸入之間的運算,即Ri-1首先經過擴展置換擴展為48位數據,然后與48位的輪密鑰Ki進行異或運算,結果送入S盒中,S盒的輸出再進行一次置換操作并和Li-1進行第二次的異或操作;輪密鑰Ki生成:把Ci、Di首先左移1位或者2位,然后進行置換壓縮操作,結果即為每輪迭代的輪密鑰Ki。2.根據權利要求1所述的支持多種工作模式的可配置3DES加解密算法電路,其特征在于所述數據傳輸接口DES_io模塊包括軟件配置的控制信號的控制寄存器,該控制寄存器用于實現不同加解密方式和不同工作模式配置調度。3.根據權利要求2所述的支持多種工作模式的可配置3DES加解密算法電路,其特征在于所述數據傳輸接口DES_io模塊采用乒乓緩存的結構,其包括一個控制狀態機、一個數據處理和存儲模塊、一個計數器、兩個寄存器data_in_reg和data_in_reg2,兩個寄存器data_in_reg和data_in_reg2用于來交叉存儲加密數據;數據處理和存儲模塊在控制狀態機的控制下選通不同的數據通路來實現對不同的加密數據進行處理和結果的存儲;計數器在控制狀態機的控制下產生信號cnt,信號cnt是實現外部加密數據的存儲控制信號,用來選擇加密的寄存器對象。4.根據權利要求3所述的支持多種工作模式的可配置3DES加解密算法電路,其特征在于所述DES_3DES執行模塊的內部狀態機執行流程為:初始狀態為IDLE,當triple_active為高,表明加密開始,進入DES1狀態;DES1狀態:將single_active置高,single_endec=triple_endec,密鑰為triple_key1,開始一次DES加密;直至single_data_valid為高,第一輪加密結束;若des_tdes為低,說明只是需要單重des加解密,進入下一個狀態為IDLE狀態;若des_tdes為高,說明需要triple_des加解密,進入下一個狀態為DES2;DES2狀態:將single_active置高,single_endec=!triple_endec,密鑰為triple_key2,開始一次DES加密;直至single_data_valid為高,第二輪加密結束;進入下一個狀態為DES3;DES3狀態:將single_active置高,single_endec=triple_endec,密鑰為triple_key3,開始一次DES加密,直至single_data_valid為高,第三輪加密結束;進入下一個狀態為IDLE。

說明書

一種支持多工作模式的可配置3DES加解密算法電路

技術領域

本發明屬于密碼學集成電路設計技術領域,具體涉及一種支持多工作模式的可配置3DES加解密算法電路。

背景技術

近幾年來,隨著計算機和信息技術的迅猛發展和普及應用,各個行業的應用系統的規模迅速擴大,隨著而產生的應用數據呈現出爆炸式增長。大數據量的產生和傳輸在促進行業發展的同時無疑將更多的應用信息暴露于網絡之上。為了保障產生和傳輸的數據的安全性,各個行業都在自家的應用系統中研究行之有效的加解密模塊的軟硬件實現。

DES加密算法是應用最為廣泛的對稱密碼,其使用64位的分組和56位的密鑰。DES在窮舉攻擊之下相對比較脆弱,一種改進的方案是采用多重加密技術,如三重DES(3DES)加密算法。3DES加密算法是在三個階段使用DES算法,通過使用不同的密鑰分別在DES加密,DES解密和DES加密階段對數據進行加密處理。這種技術擴大了密鑰的使用寬度,大大降低了嘗試采取暴力破解加密算法的可能性。到目前為止,3DES加密算法在抗暴力破解上被認為是安全的。因此,在需要保證高的安全性能的應用中,3EDS加密算法已被廣泛接受。如若數據對數據安全性要求不高,可以采用二重DES或者DES加密算法來降低實現代價,提高運算速度。

發明內容

本發明的目的是提供一種支持多種工作模式的可配置3DES加解密算法電路,能夠廣泛應用于需要保障安全性能的系統中。

本發明提供的支持多種工作模式的可配置3DES加解密算法電路,采用一種乒乓緩存的結構,使得整個電路在加解密過程中避免相鄰加解密操作之間等待輸入數據的時鐘消耗,提高加解密效率。

本發明提供的3DES加密算法電路,整體框圖如圖1所示,包括如下模塊:

(1)AHB總線接口DES_ahb模塊,用于集成到以AMBA總線為互聯機制的片上系統中;

(2)頂層模塊DES_mode模塊,用于實現數據傳輸接口DES_io模塊、DES_3DES執行模塊以及核心加密DES模塊的信號連接。整個DES_mode模塊可用于實現選擇單重DES加解密或者3DES加解密;并且實現四種不同模式的DES或者3DES的加解密,四種模式為:電碼本(ECB)、密碼分組鏈接(CBC)、密碼反饋(CFB)、輸出反饋(OFB);

(3)數據傳輸接口DES_io模塊,此模塊主要實現的功能是,與外部模塊以32比特為單位進行數據傳輸,將數據存放在寄存器內,再根據需要的模式進行不同的調度,以64比特為單位將需要加解密的數據傳入DES_3DES模塊;

(4)DES_3DES執行模塊,可以根據控制寄存器實現DES和3DES兩種加解密方式;

(5)核心加密DES模塊,此模塊的基本迭代算法過程如圖2所示。其中,設Li-1、Ri-1分別指代一輪迭代的加密數據變換模塊輸入的高32位和低32位;Li、Ri分別指代一輪迭代的加密數據變換模塊輸出的高32位和低32位,并作為下一輪迭代的數據輸入;Ki是每輪迭代加密數據變換的所需的輪密鑰;Ci-1、Di-1分別指一輪迭代中相應的輪密鑰產生模塊輸入的高28位和低28位;Ci、Di分別指一輪迭代中相應的輪密鑰產生模塊輸出的高28位和低28位,并作為下一輪迭代的輸入。

把64位的中間數據分為獨立的左右32位數據Li-1和Ri-1,每輪迭代變換的過程可以歸為如下公式:

其中,到第二個異或運算輸入之間的運算。即Ri-1首先經過擴展置換擴展為48位數據,然后與48位的輪密鑰Ki進行異或運算,結果送入S盒中,S盒的輸出再進行一次置換操作并和Li-1進行第二次的異或操作。參見圖2的左半部分。

輪密鑰Ki生成,把Ci、Di首先左移1位或者2位,然后進行置換壓縮操作,結果即為每輪迭代的輪密鑰Ki,參見圖2的右半部分。

整個迭代數據通路在圖3中的加密迭代控制子模塊的控制下進行。

核心加密DES模塊框圖如圖3所示,主要子模塊包括:

加密迭代控制子模塊,該子模塊包括密鑰初始置換模塊,該模塊的作用是將64位的初始密鑰通過置換選擇操作變換為56位的數據,并作為圖2中輪密鑰產生模塊的輸入;子密鑰生成模塊,該模塊的數據通路即為上述的圖2中的右半部分;

數據初始置換子模塊,即將原始的輸入明文進行重新排列,并作為圖2中加密數據變換模塊的輸入;

輪函數子模塊,即為上述的數據通路;

數據逆初始置換子模塊,與初始置換操作互逆的運算,該模塊是將經過16輪加密迭代之后的數據的輸出進行置換操作,結果即為最終的密文輸出。

本發明電路整體運算效率高,面積小,能夠較好地應用于高安全性能要求的系統中。

附圖說明

圖13DES加密算法電路整體框圖。

圖2核心加密DES模塊基本迭代算法過程。圖中,Li-1、Ri-1和Li、Ri分別指一輪迭代的數據輸入和輸出的高32位和低32位;Ci-1、Di-1和Ci、Di分別指一輪迭代中相應的輪密鑰輸入和輸出的高28位和低28位。

圖3核心加密DES模塊框圖。

圖4DES_io模塊控制寄存器字段說明。圖中,start_bit:開始控制信號;endec_bit:加密解密選擇信號,低為加密,高為解密;des_tdes_bit:DES或3DES選擇信號,高為3DES,低為DES;mode_bits:模式選擇信號,“00”為ECB,“01”為CBC,“10”為CFB,“11”為OFB。

圖5乒乓緩存的結構簡圖。圖中,寄存器data_in_reg和data_in_reg2是用來實現交叉存儲加密數據,信號cnt的目的是實現外部加密數據的存儲控制信號,用來選擇加密的寄存器對象。

圖6DES_io模塊調度方案圖。圖中,des_data_in:數據輸入端口;endec:加密還是解密運算控制信號;mode_bit:模式選擇信號。

圖7DES_io模塊內部狀態機示意圖。狀態說明:IDLE:初始狀態;DES:加密狀態;NOACTIVE:加密完成狀態。信號說明:start_bit:信號為1時表明加密所需的數據準備就緒,加密開始;des_data_valid:信號為1時表明加密完成。

圖8DES_3DES模塊內部狀態機示意圖。狀態說明:IDLE:初始狀態;DES1:DES加密狀態或者3DES加密狀態的第一次加密狀態;DES2:3DES加密狀態的解密狀態;DES3:3DES加密狀態的第二次加密狀態。

信號說明:triple_active:信號為1時表明加密有效;des_tdes:信號為1時表明是3DES加密模式,為0表明是DES加密模式;single_data_valid:信號為1時表明單輪加解密完成。

具體實施方式

數據傳輸接口DES_io模塊主要實現的功能是,與外部模塊以32比特為單位進行數據傳輸,將數據存放在寄存器內,再根據需要的模式進行不同的調度,以64比特為單位將需要加解密的數據傳入DES_3DES模塊。

數據傳輸接口DES_io模塊存放軟件配置的控制信號的控制寄存器,如圖4所示,該寄存器用于實現不同加解密方式和不同工作模式配置調度。不同的控制字段如下:

start_bit:開始控制信號。

endec_bit:加密解密選擇信號,低為加密,高為解密。

des_tdes_bit:DES或3DES選擇信號,高為3DES,低為DES。

mode_bits:模式選擇信號,“00”為ECB,“01”為CBC,“10”為CFB,“11”為OFB。

busy_bit:忙信號,當為高時,說明這輪加解密還沒完成;為低,表示完成。

該模塊中采用乒乓緩存的結構,使得整個電路在加解密過程中避免了相鄰加解密操作之間等待輸入數據的時鐘消耗,提高了加解密效率。該模塊結構框圖如圖5所示。其包括一個控制狀態機、一個數據處理和存儲模塊、一個計數器、兩個寄存器data_in_reg和data_in_reg2,兩個寄存器data_in_reg和data_in_reg2用于來交叉存儲加密數據;數據處理和存儲模塊在控制狀態機的控制下選通不同的數據通路來實現對不同的加密數據進行處理和結果的存儲;計數器在控制狀態機的控制下產生信號cnt,信號cnt是實現外部加密數據的存儲控制信號,用來選擇加密的寄存器對象。該結構通過增加一組寄存器(data_in_reg2)來實現交叉存儲加密數據,通過增加很小的硬件開銷來提高整個加解密的效率。

在DES加解密方式下,加密時鐘利用率(加密時鐘利用率是指整個加解密過程中加解密執行所占有的時鐘周期數與加解密數據輸入到加解密完成之間的整個過程占有的時鐘周期數之比)由82%提升為92%;在3DES加解密方式下,加密時鐘利用率由93%提升為97%。

數據傳輸接口DES_io模塊調度方案如圖6所示,其內部的狀態機如圖7所示。

當外部將start_bit置為高后,說明外部已經把需要加密的數據放入data_in_reg中,將加密需要的密鑰放入key_reg中了。狀態機進入DES狀態,設置des_active為高,啟動DES_3DES開始工作。

當檢測到des_data_valid為高時,表明加密結束,狀態機進入NOACTIVE狀態,將des_active置為低,一次加密結束。

DES_3DES執行模塊可以根據控制寄存器實現DES和3DES兩種加解密方式。

DES_3DES執行模塊的內部狀態機如圖8所示。其執行流程為:

初始狀態為IDLE。當triple_active為高,表明加密開始,進入DES1狀態。

DES1狀態:將single_active置高,single_endec=triple_endec,密鑰為triple_key1,開始一次DES加密。直至single_data_valid為高,第一輪加密結束。若des_tdes為低,說明只是需要單重des加解密,下一個狀態為IDLE狀態。若des_tdes為高,說明需要triple_des加解密,下一個狀態為DES2。

DES2狀態:將single_active置高,single_endec=!triple_endec,密鑰為triple_key2,開始一次DES加密。直至single_data_valid為高,第二輪加密結束。下一個狀態為DES3。

DES3狀態:將single_active置高,single_endec=triple_endec,密鑰為triple_key3,開始一次DES加密。直至single_data_valid為高,第三輪加密結束。下一個狀態為IDLE。

其中,由于每次triple_des加解密的三次中間有一些的過程轉換時鐘,所以每次加解密的結果需要保存,為了節省64比特的寄存器。當每一次DES加密完之后,將結果通過端口triple_data_out[63:0]輸出到DES_io模塊,暫時存儲在寄存器des_data_out[63:0]中,當下一次加密開始時,通過端口triple_des_in[63:0]輸入。

整個3DES加解密算法電路用VerilogHDL設計,在SMIC65nmCMOS工藝綜合下,得到相應的面積為0.01429mm2,工作在500MHz時的功耗為2.688mW。該3DES加解密算法電路能夠很好地用于高安全性能要求、低成本、低功耗的應用場合。

關 鍵 詞:
一種 支持 工作 模式 配置 DES 解密 算法 電路
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:一種支持多工作模式的可配置3DES加解密算法電路.pdf
鏈接地址:http://www.wwszu.club/p-6401723.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大