一種基于aes算法的加密解密裝置的制造方法
【技術領域】
[0001] 本發明涉及信息安全技術領域,尤其涉及一種基于AES算法的加密解密裝置。
【背景技術】
[0002] AES(AdvancedEncryptionStandard,高級加密標準)是美國NIST(National InstituteofStandardsandTechnology,國家標準與技術研究院)于2002年確立使用 的一種新的信息加密算法。隨著現代密碼分析水平、芯片處理能力和計算技術的不斷進步, AES算法在各行業各部門獲得廣泛的應用,并逐漸取代DES在IPSec、SSL和ATM中的加密 功能。
[0003] 目前國內在算法實現方面的研究中,通常是基于軟件實現。相對于軟件加密系統, 硬件加密系統處理速度快且更加安全可靠。而目前AES的高速硬件實現數量較少。因此隨 著AES算法的普及應用,算法的硬件開發也逐漸成為一個重要的課題。
[0004] 在實現本發明的過程中,發明人發現現有技術中至少存在如下技術問題:
[0005] AES算法包括ECB、CTR、0FB、CFB以及CBC五種加解密模式。而目前現有技術中, 支持全模式的AES加密裝置還是極少的,通常僅僅支持兩三種。加密模式較為單一,安全性 和保密性較差。
【發明內容】
[0006] 本發明提供一種基于AES算法的加密解密裝置,能夠支持AES加密解密算法的全 模式,提高加密解密的安全性和可靠性。
[0007] 本發明提供一種基于AES算法的加密解密裝置,包括用于處理數據的密碼處理模 塊;所述密碼處理模塊包括:
[0008] 至少一條輸入邏輯通路,用于對輸入的分組數據進行邏輯運算;
[0009] 第一多路選擇單元,用于根據AES模式控制信號選擇一路輸入邏輯通路輸出邏輯 運算后的分組數據;
[0010] 密碼函數運算單元,用于根據所述AES模式控制信號選擇正向或者反向密碼函數 對所述分組數據進行加密解密處理;
[0011] 第二多路分解單元,用于將加密解密后的分組數據分解成至少一路分組數據;
[0012] 至少一條輸出邏輯通路,用于對分解后的每路分組數據分別進行邏輯運算;
[0013] 第二多路選擇單元,用于根據所述AES模式控制信號選擇一路輸出邏輯通路輸出 邏輯運算后的分組數據。
[0014] 本發明提供的基于AES算法的加密解密裝置的核心算法部分采用全硬件實現,支 持全部5種AES加密解密模式、3種密鑰位寬,能夠滿足對AES算法加密解密的全部需求,提 高了數據加密解密的安全性和保密性,使得本發明具備更強的抵抗外界攻擊的能力。
【附圖說明】
[0015] 為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使 用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于 本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其它 的附圖。
[0016] 圖1為本發明一實施例中,密碼處理模塊的結構示意圖;
[0017] 圖2為本發明一實施例中,正向密碼處理模塊的結構示意圖;
[0018] 圖3為本發明一實施例中,反向密碼處理模塊的結構示意圖;
[0019] 圖4為本發明一實施例中,正向密碼運算單元的結構示意圖;
[0020] 圖5為本發明一實施例中,反向密碼運算單元的結構示意圖;
[0021] 圖6為圖4中正向密碼運算單元的處理流程圖;
[0022] 圖7為圖5中反向密碼運算單元的處理流程圖;
[0023] 圖8為本發明所提供的基于AES算法的加密解密裝置的結構示意圖。
【具體實施方式】
[0024] 下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于 本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其它 實施例,都屬于本發明保護的范圍。
[0025] 本發明所提供的加密解密裝置根據AES算法加密解密模式的特點,對邏輯資源實 現復用。從AES算法加密解密的數據處理流程可知,幾種加密模式的不同點在于兩點:一是 密碼函數處理前輸入分組數據和處理后輸出分組數據的構成方式;二是所選的密碼函數。 根據上述兩個特點,本發明中將處理前和處理后的數據交由多條邏輯通道進行處理。對于 處理前后數據構成方式相同的,通過邏輯通道進行合并復用。這樣,在加密解密處理時,只 需選擇相關的邏輯通道,再調用正向/反向密碼函數即可實現多種AES加密解密模式。下 面結合實施例進行詳細說明。
[0026] 本發明所提供的一個實施例中,基于AES算法的加密解密裝置主要對密碼處理模 塊進行了改進。具體地,如圖1所示,密碼處理模塊包括:
[0027] 至少一條輸入邏輯通路,用于對輸入的分組數據進行邏輯運算;
[0028] 第一多路選擇單元,用于根據AES模式控制信號選擇一路輸入邏輯通路輸出邏輯 運算后的分組數據;
[0029] 密碼函數運算單元,用于根據所述AES模式控制信號選擇正向或者反向密碼函數 對所述分組數據進行加密解密處理;
[0030] 第一多路分解單元,用于將加密解密后的分組數據分解成至少一路分組數據;
[0031] 至少一條輸出邏輯通路,用于對分解后的每路分組數據分別進行邏輯運算;
[0032] 第二多路選擇單元,用于根據所述AES模式控制信號選擇一路輸出邏輯通路輸出 邏輯運算后的分組數據。
[0033] 具體地,所述密碼處理模塊還包括與輸入邏輯通路相連接的第二多路分解單元, 用于將輸入的分組數據分解成多路。當輸入邏輯通路所處理的輸入分組數據相同時,需要 通過第二路分解單元對輸入的分組數據分解后發送至各個輸入邏輯通路中。當輸入邏輯通 路處理的輸入分組數據不同時,則將輸入分組數據直接交由輸入邏輯通路處理即可。
[0034] 具體地,所述輸出邏輯通路為以下輸出邏輯通路中的任意一種:第一輸入邏輯通 路,用于直接輸入分組數據;第二輸入邏輯通路,用于輸入分組數據與密碼初始向量進行異 或邏輯運算后的數據;第三輸入邏輯通路,用于輸入分組數據與前一級的輸出128位數據 分組進行異或邏輯運算后的數據;第四輸入邏輯通路,用于直接輸入密鑰初始向量;第五 輸入邏輯通路,用于輸入前一級輸入分組的低b-s位與前一級密文的s位進行拼接運算后 的數據;第六輸入邏輯通路,用于輸入前一級的輸出128位數據分組;第七輸入邏輯通路, 用于輸入計數器的值。
[0035] 具體地,所述輸出邏輯通路為以下輸出邏輯通路中的任意一種:第一輸出邏輯通 路,用于直接輸出分組數據;第二輸出邏輯通路,用于輸出分組數據高s位與當前級明文的 s位異或運算后的數據;第三輸出邏輯通路,用于輸出分組數據與當前級明文進行異或運 算后的數據;第四輸出邏輯通路,用于輸出分組數據高s位與當前級密文的s位進行異或運 算后的數據;第五輸出邏輯通路,用于輸出分組數據與當前級密文異或運算后的數據;第 六輸出邏輯通路,用于輸出分組數據與密鑰初始向量異或運算后的數據;第七輸出邏輯通 路,用于輸出分組數據與前一級的輸入密文進行異或運算后的數據。
[0036] 與現有技術相比,本發明中將正向加密和反向解密的輸入邏輯通道和輸出邏輯通 道復用,有效節省了裝置的硬件實現面積。通過配置輸入邏輯通道和輸出邏輯通道,實現 AES算法的多種模式。對于AES算法的多種模式的具體實現方式在下述實施例中進行詳細 說明。
[0037] 本發明所提供的一個實施例中,將密碼處理模塊分為正向密碼函數處理和反向密 碼函數處理分為兩個獨立的模塊。具體地,兩個模塊中分別包含輸入邏輯通路、多路選擇單 元、多路分解單元以及輸出邏輯通路。下面對兩個模塊的具體實施過程進行詳細介紹。
[0038] 參見圖2,正向密碼函數處理模塊包括七條輸入邏輯通路,兩個多路分解器、兩個 多路選擇器、正向密碼函數運算單元以及五路輸出邏輯通路。其中,明文