欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種實現(xiàn)aes加解密的裝置和方法

文檔序號:7714125閱讀:247來源:國知局
專利名稱:一種實現(xiàn)aes加解密的裝置和方法
一種實現(xiàn)AES加解密的裝置和方法技術(shù)領(lǐng)域
本發(fā)明屬于加解密技術(shù)領(lǐng)域,具體地說,涉及一種實現(xiàn)AES (Advanced Encryption Standard,高級加密標(biāo)準(zhǔn))加解密算法的裝置和方法。
背景技術(shù)
隨著網(wǎng)絡(luò)技術(shù)、通信技術(shù)和多媒體技術(shù)的飛速發(fā)展,以互聯(lián)網(wǎng)、移動通信為代表的 信息技術(shù)已經(jīng)完全滲透到人們的日常生活當(dāng)中。隨之而來的信息安全問題成為人們迫切需 要解決的問題。信息安全需要依靠安全機制來完成,而安全機制主要依賴于密碼技術(shù),密碼 技術(shù)是信息安全的核心技術(shù)。采用安全、高效的加密算法是保證信息安全的關(guān)鍵,因此對加 密算法及其實現(xiàn)的研究具有很強的實際意義。
美國國家標(biāo)準(zhǔn)和技術(shù)研究所(NIST)于2001年11月沈日正式公布了新標(biāo)準(zhǔn)AES, 對于一個加密算法,安全和性能是兩個最重要的方面。通過特別的算法設(shè)計,AES算法解決 了 DES加密算法遭受攻擊出現(xiàn)的漏洞,至今為止,AES算法還沒有為人所知的漏洞。AES算 法可以廣泛地應(yīng)用于各種產(chǎn)品中,對于提高產(chǎn)品競爭力有重要的意義。
AES于2002年5月沈日才開始正式生效,因此現(xiàn)在仍處在新舊加密標(biāo)準(zhǔn)更替的時 期,目前所見的AES算法硬件主要是實現(xiàn)測試性或者實驗性的應(yīng)用。國內(nèi)在加密算法的研 究以及應(yīng)用方面起步較晚,另外又受到各種條件的制約,對AES的研究主要集中在AES算法 本身,在僅有的一些算法實現(xiàn)方面,大部分是軟件實現(xiàn),隨著AES算法日益受到人們的廣泛 關(guān)注,對硬件實現(xiàn)的AES產(chǎn)品的需求必將穩(wěn)步攀升。
AES算法包括4個步驟字節(jié)替換,行移位,列混合變換,輪密鑰加。其中字節(jié)替換 的實現(xiàn)一般是應(yīng)用查找表實現(xiàn)。應(yīng)用查找表實現(xiàn)字節(jié)替換需要大量的硬件資源來存儲查找 表。舉例來說,對于128比特的AES加解密,128比特數(shù)據(jù)共16個字節(jié),進行一次變換時加 密和解密都分別需要用到16個替換表,另外在輪密鑰擴展部分還需要用到4個替換表,這 樣共需要用到36個表格,每張表格共存儲256個字節(jié),這樣存儲這些表格共需要9KB的空 間,這是一個龐大的硬件開銷。并且由于加密的查找表與解密的查找表不同,無法實現(xiàn)資源ο
因此,如何實現(xiàn)有關(guān)網(wǎng)絡(luò)和多媒體系統(tǒng)中實際應(yīng)用的AES核的硬件,并使其具有 節(jié)省硬件資源的特點,成為技術(shù)人員需要考慮的問題。發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種實現(xiàn)AES加解密的裝置和方法,可以實現(xiàn) AES加解密運算,并且可以節(jié)約硬件資源。
為了解決上述技術(shù)問題,本發(fā)明提供了一種實現(xiàn)AES加解密的方法,包括
接收待加密或待解密數(shù)據(jù),將待加密或待解密數(shù)據(jù)復(fù)制到狀態(tài)矩陣當(dāng)中;
將狀態(tài)矩陣與初始密鑰相加;
將與初始密鑰相加后的狀態(tài)矩陣經(jīng)過Nr-I個輪變換;
對經(jīng)過Nr-I個輪變換后的狀態(tài)矩陣進行一個不完全的輪變換,從而完成加密或 解密處理;
其中,Nr為加密及解密時所需的輪數(shù)。
為了解決上述技術(shù)問題,本發(fā)明還提供了一種實現(xiàn)AES加解密的裝置,包括
處理器接口,用于輸入和輸出數(shù)據(jù);
接收先入先出單元,與所述處理器接口相連,用于接收待加密或者解密的數(shù)據(jù),并 傳送給AES加解密核;
AES加解密核,用于對從接收先入先出單元讀取到的數(shù)據(jù)進行加解密處理;
發(fā)送先入先出單元,用于將進行加密或者解密處理后的數(shù)據(jù)發(fā)送給處理器接口 ;
直接存儲器存儲通道接口,用于根據(jù)接收先入先出單元和發(fā)送先入先出單元的狀 態(tài)來產(chǎn)生直接存儲器存儲通道讀寫請求信號,收到直接存儲器存儲通道讀寫請求響應(yīng)信號 后清除直接存儲器存儲通道讀寫請求。
本發(fā)明提供了一種既可以實現(xiàn)AES加密,又可以實現(xiàn)AES解密的裝置和方法,同時 又可以大大降低電路的規(guī)模。通過在加洛華域上進行求逆運算與仿射變換來實現(xiàn)字節(jié)替 換,可以節(jié)省大量的存儲查找表的硬件資源,大大降低電路的規(guī)模。


圖1為本發(fā)明所述的Nb,Nk和Nr對應(yīng)關(guān)系表;
圖2為本發(fā)明所述的AES加密算法流程圖3為本發(fā)明所述的AES解密算法流程圖4為本發(fā)明所述的AES等效解密算法流程圖5為本發(fā)明所述的AES加解密裝置框圖6為本發(fā)明所述的AES加解密核框圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行詳細(xì)說明。
Rijndael (萊恩戴爾)算法是具有可變分組長度和可變密鑰長度的分組加密算 法,其分組長度和密鑰長度均可以獨立地設(shè)定為32比特的任意整數(shù)倍,最小值為1 比特, 最大值為256比特,即數(shù)據(jù)長度和密鑰長度均可為128比特,192比特和256比特。
AES實際是Rijndael的一個特例,在其規(guī)范標(biāo)準(zhǔn)中,明確定義了數(shù)據(jù)分組長度固 定為128比特,而密鑰長度可以是128比特,192比特或者256比特,分別稱為“AES — 128”、 “AES — 192”和“AES — 256”。本發(fā)明以“AES — 128”為例來進行描述。
AES的輸入、輸出可以看作是以字節(jié)為單位的一維數(shù)組。在加、解密過程中數(shù)據(jù)處 理得到的中間值叫做狀態(tài),由于狀態(tài)表示成矩陣的形式,所以又叫做狀態(tài)矩陣。每個數(shù)據(jù)分 組形成的狀態(tài)矩陣的列數(shù)記為Nb,其值等于分組長度除以32,對于AES而言,Nb固定為4。 類似的,密鑰分組也表示成以字節(jié)為單位的矩陣形式,該矩陣的列數(shù)記為Nk。由于密鑰長度 可以是128、192或256,所以Nk可以取值4,6或8。Nr表示加、解密時所需的輪數(shù)。對AES 而言,根據(jù)密鑰長度不同,Nr可取值10、12或者14。Nb,Nk和Nr的對應(yīng)關(guān)系如圖1所示。
AES算法在加密和解密時,基本的運算單位是輪變換,每個輪變換包括四個不同操作步驟,對數(shù)據(jù)的操作都是以字節(jié)為單位的。
處理一個分組的數(shù)據(jù)時,包括以下步驟
步驟101 將初始的待加密或待解密數(shù)據(jù)復(fù)制到狀態(tài)矩陣當(dāng)中;
步驟102 將狀態(tài)矩陣與初始密鑰相加;
步驟103 將與初始密鑰相加后的狀態(tài)矩陣經(jīng)過(Nr-I)個輪變換;
步驟104 對經(jīng)過(Nr-I)個輪變換后的狀態(tài)矩陣進行一個不完全的輪變換,從而 整個處理完成。
其中,每個輪變換包括四個操作步驟SubBytes (字節(jié)替換)、shiftRows (行移 位)、MixColumns (列混合)和 AddRoundKey (輪密鑰加)。
其中三個步驟,shiftRows(行移位)、MixColumns (列混合)和 AddRoundKey (輪 密鑰加)現(xiàn)有技術(shù)中有描述。
另外,步驟104中所述的不完全輪變換,是指省略了 MiXC0lumnS(列混合)變 換的輪變換,即不完全的輪變換僅包括SubBytes (字節(jié)替換)、shiftRows (行移位)和 AddRoundKey(輪密鑰加)三個操作步驟。
需要指出的是,本發(fā)明中的圖2和圖3是以10輪為例,實際應(yīng)用中可能是其他數(shù) 值,比如可能是12或者14。
以加密過程為例,參照圖2所示,為本發(fā)明的AES加密算法流程圖。所述AES加密 算法包括在本實施例中,是以128比特的明文數(shù)據(jù)為例來描述。
步驟201 接收到128比特待加密的明文數(shù)據(jù);
步驟202 將待加密的數(shù)據(jù)與初始密鑰相加;
步驟203 將初始密鑰相加后的狀態(tài)矩陣經(jīng)過(Nr-I)個輪變換,在進行(Nr-I)個 輪變換時,依次與輪密鑰1到輪密鑰(Nr-I)相加;
步驟204 對經(jīng)過(Nr-I)個輪變換后的狀態(tài)矩陣進行一個不完全的輪變換,從而 整個處理完成,獲得128比特密文。
因為AES是對稱算法,所以將加密過程逆向操作并且每個步驟的變換都利 用加密的逆變換就得到了解密演算法。對應(yīng)加密的四個運算步驟,解密過程稱為 InvsubBytes (逆字節(jié)替換)、hvshiftRows (逆行移位)、hvMixCloumns (逆列混合)和 hvAddRoimdKey (逆輪密鑰加)。由于加密和解密的密鑰加都是進行異或運算,所以解密過 程的MvAddRoundKey和加密過程中的AddRoundKey是相同的。解密過程中參與運算的輪 密鑰順序是加密時候的逆序。
整個解密運算過程的流程如圖3所示,包括以下步驟
步驟301 接收到128比特待解密的密文數(shù)據(jù);
步驟302 將待解密的數(shù)據(jù)與加密時的Nr輪密鑰相加;
步驟303 將與加密時的Nr輪密鑰相加后的狀態(tài)矩陣經(jīng)過(Nr-I)個輪變換,在進 行(Nr-I)個輪變換時,依次與輪密鑰(Nr-I)至輪密鑰1相加;
步驟304 對經(jīng)過(Nr-I)個輪變換后的狀態(tài)矩陣進行一個不完全的輪變換,并與 初始密鑰相加從而整個處理完成,獲得128比特明文數(shù)據(jù)。
采用這種直接解密算法的時候,加密和解密在運算流程上差異較大,這會導(dǎo)致硬 件設(shè)計復(fù)雜度的增加。然而,AES算法的特性使得通過簡單的等效變換,加密和解密就可以具有相同的運算流程,其中解密時的各個變換是加密對應(yīng)變換的逆變換,等效解密運算過 程的流程如圖4所示。
步驟401 接收到128比特待解密的密文數(shù)據(jù);
步驟402 將待解密的數(shù)據(jù)與加密時的Nr輪密鑰相加;
步驟403 將與加密時的Nr輪密鑰相加后的狀態(tài)矩陣經(jīng)過(Nr-I)個輪變換,在進 行(Nr-I)個輪變換時,依次與輪密鑰(Nr-I)至輪密鑰1經(jīng)過反向列混合變換后相加;
步驟404 對經(jīng)過(Nr-I)個輪變換后的狀態(tài)矩陣進行一個不完全的輪變換,并與 初始密鑰相加從而整個處理完成,獲得128比特明文數(shù)據(jù)。
AddRoundKey 就是進行異或運算,shiftRows 和 InvshiffRows, MixColumns 和hvMixCloumns也都比較簡單,在此不作詳細(xì)描述。下面重點介紹一下SubByte和 InvSubByte的實現(xiàn)方法。如果應(yīng)用加洛華域上的運算實現(xiàn),加密時,字節(jié)替換分為以下兩 步第一步,將每個字節(jié)表示成其在有限域GF056)上的形式,之后求出該字節(jié)的乘法逆元 素;第二步,對求得的乘法逆元素進行一個仿射變換。解密時,逆字節(jié)替換分為以下兩步 第一步,對求得的乘法逆元素進行一個逆仿射變換;第二步,將每個字節(jié)表示成其在有限域 GF(256)上的形式后求出該字節(jié)的乘法逆元素。
由以上分析可以看出,SubBytes和InvsubBytes變換的相同之處是都需要在有限 域上求待替換字節(jié)的乘法逆元素,不同點是求仿射變換或逆仿射變換。對于乘法逆元素,由 于GW256)可以看作是GF(16)的擴展,可以先將GFQ56)上的元素轉(zhuǎn)化到GF(16)上,然后 求其逆元素(計算簡單),最后再將求得的逆元素,進行變換,得到GF056)上的結(jié)果。
圖5是本發(fā)明所述的AES的加解密裝置框圖。它包括CPU(處理器)接口 50,接收 FIFO (First-In First-Out,先入先出)51單元,發(fā)送FIFO 52單元,AES加解密核53,以及 DMA (Direct Memory Access,直接存儲器存儲通道)接口 M。
CPU接口 50,用于對寄存器進行配置,輸入和輸出數(shù)據(jù);該寄存器配置算法的初始 密鑰,加密還是解密等;
接收FIF051單元,與所述CPU接口相連,用于接收待加密或者解密的數(shù)據(jù),并傳送 給AES加解密核;
AES加解密核53,用于對從接收FIFO單元51讀取到的數(shù)據(jù)進行加解密處理;
發(fā)送FIF052單元,用于將進行加密或者解密處理后的數(shù)據(jù)發(fā)送給CPU接口 50 ;
DMA接口 54,用于根據(jù)接收FIFO單元51和發(fā)送FIFO單元52的狀態(tài)來產(chǎn)生DMA 讀寫請求信號,收到DMA讀寫請求響應(yīng)信號后清除DMA讀寫請求。
待加解密的數(shù)據(jù)通過CPTOO總線輸入到接收FIFO單元51中,AES加解密核53從 接收FIFO單元51讀取128比特位寬的數(shù)據(jù)進行加解密,處理完后將結(jié)果寫入發(fā)送FIFO單 元52中,最后通過CPU總線輸出。接收FIFO單元51和發(fā)送FIFO單元52是2個不對稱的 FIFO,面向CPU50接口的一面數(shù)據(jù)寬度32比特,面向AES加解密核53的一面數(shù)據(jù)位寬是 128比特。DMA接口 M根據(jù)接收FIFO單元51和發(fā)送FIFO單元52的狀態(tài)來產(chǎn)生DMA讀寫 請求信號,收到DMA讀寫請求響應(yīng)信號后清除DMA讀寫請求。
圖6是本發(fā)明所述的AES加解密核框圖。AES加解密核53包括密鑰擴展單元531, 算法控制單元532,行移位和字節(jié)變換單元533和列混合變換單元534。
密鑰擴展單元531,用于生成每一輪所需的密鑰;
算法控制單元532,用于控制循環(huán)密鑰輸出使用,并輸出每一輪的中間結(jié)果即第一 變換數(shù)據(jù)到行移位和字節(jié)變換單元533,并用于輸出最后一輪的第一變換數(shù)據(jù)作為加解密 后的數(shù)據(jù);行移位和字節(jié)變換單元533,用于對所述第一變換數(shù)據(jù)進行行移位和字節(jié)變換,輸 出第二變換數(shù)據(jù)至列混合變換單元534及算法控制單元532 ;列混合變換單元534,用于接收所述第二變換數(shù)據(jù),并輸出第三變換數(shù)據(jù)至算法控 制單元532。具體來說,密鑰擴展單元531,用于生成每一輪所需的密鑰,進行密鑰擴展,密鑰擴 展在算法初始化時進行,循環(huán)密鑰存儲在一個RAM (Random Access Memory,為隨機存取存 儲器)中;算法控制單元532,用于控制所述存儲在一個RAM的循環(huán)密鑰輸出使用。其中密 鑰擴展中的字節(jié)替換也使用上述的計算方法進行。待加解密的數(shù)據(jù)輸入到算法控制單元 532中,由算法控制單元532控制AES算法過程,最后輸出加解密后的數(shù)據(jù)。算法控制單元 532輸出每一輪的中間結(jié)果即變換數(shù)據(jù)1到行移位和字節(jié)變換單元533,進行行移位和字節(jié) 變換,結(jié)果變換數(shù)據(jù)2輸出到列混合變換單元534,列混合變換單元534用于進行列混合變 換,得到變換數(shù)據(jù)3,變換數(shù)據(jù)2和變換數(shù)據(jù)3都輸出到算法控制單元532中以進行下一輪 運算。最后一輪的變換數(shù)據(jù)1就是最終的結(jié)果,也就是加解密后的數(shù)據(jù)。本發(fā)明可以實現(xiàn)AES的加密和解密,通過采用計算的方法進行字節(jié)替換,加密和 解密最大化的共用資源,大大的降低了電路規(guī)模,可以廣泛的應(yīng)用于有關(guān)網(wǎng)絡(luò)和多媒體系 統(tǒng)中。需要指出的是,以上所述僅為本發(fā)明的較佳實施例,并非用來限定本發(fā)明的實施 范圍,凡是依據(jù)本發(fā)明所作的等效的變化與修改,都被本發(fā)明的專利范圍所覆蓋。
權(quán)利要求
1.一種實現(xiàn)AES加解密的方法,其特征在于,包括接收待加密或待解密數(shù)據(jù),將待加密或待解密數(shù)據(jù)復(fù)制到狀態(tài)矩陣當(dāng)中; 將狀態(tài)矩陣與初始密鑰相加; 將與初始密鑰相加后的狀態(tài)矩陣經(jīng)過Nr-I個輪變換;對經(jīng)過Nr-I個輪變換后的狀態(tài)矩陣進行一個不完全的輪變換,從而完成加密或解密 處理;其中,Nr為加密及解密時所需的輪數(shù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述輪變換,包括進行字節(jié)替換操作、進行行移位操作、進行列混合操作、進行輪密鑰加操作; 所述不完全的輪變換,包括進行字節(jié)替換操作、進行行移位操作、進行輪密鑰加操作。
3.如權(quán)利要求2所述的方法,其特征在于,所述進行字節(jié)替換操作,當(dāng)進行加密時,包括將每個字節(jié)表示成其在有限域GF256上的形式,之后求出該字節(jié)的乘法逆元素; 對求得的乘法逆元素進行一個仿射變換。
4.如權(quán)利要求2所述的方法,其特征在于,所述進行字節(jié)替換操作,當(dāng)進行解密時,包括對求得的乘法逆元素進行一個逆仿射變換;將每個字節(jié)表示成其在有限域GF256上的形式,之后求出該字節(jié)的乘法逆元素。
5.如權(quán)利要求3或4所述的方法,其特征在于,所述將每個字節(jié)表示成其在有限域 GF256上的形式,之后求出該字節(jié)的乘法逆元素,包括先將GF256上的元素轉(zhuǎn)化到GF16上,然后求其逆元素,最后再將求得的逆元素,進行變 換,得到GF256上的結(jié)果。
6.如權(quán)利要求1所述的方法,其特征在于,所述將初始密鑰相加后的狀態(tài)矩陣經(jīng)過 Nr-I個輪變換,當(dāng)進行加密時,包括在進行Nr-I個輪變換時,依次與輪密鑰1到輪密鑰Nr-I相加。
7.如權(quán)利要求1所述的方法,其特征在于,所述將初始密鑰相加后的狀態(tài)矩陣經(jīng)過 Nr-I個輪變換,當(dāng)進行解密時,包括在進行Nr-I個輪變換時,依次與輪密鑰Nr-I至輪密鑰1相加。
8.一種實現(xiàn)AES加解密的裝置,其特征在于,包括 處理器接口,用于輸入和輸出數(shù)據(jù);接收先入先出單元,與所述處理器接口相連,用于接收待加密或者解密的數(shù)據(jù),并傳送 給AES加解密核;AES加解密核,用于對從接收先入先出單元讀取到的數(shù)據(jù)進行加解密處理; 發(fā)送先入先出單元,用于將進行加密或者解密處理后的數(shù)據(jù)發(fā)送給處理器接口 ; 直接存儲器存儲通道接口,用于根據(jù)接收先入先出單元和發(fā)送先入先出單元的狀態(tài)來 產(chǎn)生直接存儲器存儲通道讀寫請求信號,收到直接存儲器存儲通道讀寫請求響應(yīng)信號后清 除直接存儲器存儲通道讀寫請求。
9.如權(quán)利要求8所述的裝置,其特征在于,所述AES加解密核,包括 密鑰擴展單元,用于生成每一輪所需的密鑰;算法控制單元,用于控制循環(huán)密鑰輸出使用,并輸出每一輪的中間結(jié)果即第一變換數(shù) 據(jù)到行移位和字節(jié)變換單元,并用于輸出最后一輪的第一變換數(shù)據(jù)作為加解密后的數(shù)據(jù);行移位和字節(jié)變換單元,用于對所述第一變換數(shù)據(jù)進行行移位和字節(jié)變換,輸出第二 變換數(shù)據(jù)至列混合變換單元及算法控制單元;列混合變換單元,用于接收所述第二變換數(shù)據(jù),并輸出第三變換數(shù)據(jù)至算法控制單元。
全文摘要
本發(fā)明提供了一種實現(xiàn)AES加解密的裝置和方法,所述方法包括接收待加密或待解密數(shù)據(jù),將待加密或待解密數(shù)據(jù)復(fù)制到狀態(tài)矩陣當(dāng)中;將狀態(tài)矩陣與初始密鑰相加;將與初始密鑰相加后的狀態(tài)矩陣經(jīng)過Nr-l個輪變換;對經(jīng)過Nr-l個輪變換后的狀態(tài)矩陣進行一個不完全的輪變換,從而完成加密或解密處理;其中,Nr為加密及解密時所需的輪數(shù)。本發(fā)明提供了一種既可以實現(xiàn)AES加密,又可以實現(xiàn)AES解密的裝置和方法,同時又可以大大降低電路的規(guī)模。
文檔編號H04L9/06GK102035641SQ200910178410
公開日2011年4月27日 申請日期2009年9月24日 優(yōu)先權(quán)日2009年9月24日
發(fā)明者范艷芳, 趙博生 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
兴宁市| 绥芬河市| 桂阳县| 汨罗市| 上杭县| 伊吾县| 金川县| 揭西县| 阳原县| 天镇县| 孝义市| 甘肃省| 高要市| 大余县| 天镇县| 瑞昌市| 剑河县| 怀化市| 武冈市| 星座| 建阳市| 石河子市| 根河市| 泾阳县| 庆元县| 义马市| 肇庆市| 庐江县| 福州市| 土默特右旗| 光山县| 台江县| 团风县| 呼图壁县| 建始县| 汕头市| 大埔县| 新巴尔虎左旗| 泽普县| 洪雅县| 新化县|