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

一種選擇門(mén)優(yōu)化的aes加解密方法及裝置的制作方法

文檔序號(hào):7855677閱讀:214來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):一種選擇門(mén)優(yōu)化的aes加解密方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)通信安全技術(shù)領(lǐng)域,尤其涉及一種選擇門(mén)優(yōu)化的AES加解密方法
及裝置。
背景技術(shù)
AES (Advanced Encryption Standard,高級(jí)加密標(biāo)準(zhǔn))是當(dāng)前存儲(chǔ)領(lǐng)域的主要加密算法。AES加密和解密由多個(gè)相同的輪運(yùn)算組成,每個(gè)輪運(yùn)算包含S盒運(yùn)算、移位運(yùn)算、列混合運(yùn)算和加密鑰的運(yùn)算。加密和解密的S盒運(yùn)算、移位運(yùn)算、列混合運(yùn)算都不相同。現(xiàn)有的AES方案使用獨(dú)立的結(jié)構(gòu)實(shí)現(xiàn)加密和解密運(yùn)算,或者使用獨(dú)立的結(jié)構(gòu)實(shí)現(xiàn)S盒和逆的S盒的運(yùn)算。 圖I是現(xiàn)有加密運(yùn)算的結(jié)構(gòu)圖,SBX(Sbox)表示加密運(yùn)算的S盒運(yùn)算,MC(MixColumns)表示加密運(yùn)算的列混合運(yùn)算,ARK (add round key)表示輪密鑰加運(yùn)算,Register (寄存器)緩存每輪運(yùn)算的中間數(shù)據(jù),選擇器用于選擇裝載輸入數(shù)據(jù)或輪運(yùn)算的輸出數(shù)據(jù),round-key表示加密輪密鑰,initial-data表示輸入數(shù)據(jù),data-out表示加密結(jié)果,initial-round表示輪運(yùn)算的輪數(shù)。每組數(shù)據(jù)的加密有Nr輪運(yùn)算,第一輪運(yùn)算開(kāi)始時(shí)裝載輸入數(shù)據(jù),第一輪運(yùn)算的輸出作為第二輪運(yùn)算的輸入,依次類(lèi)推,直到完成Nr輪運(yùn)算,輸出解密結(jié)果。圖2是加密S盒運(yùn)算的結(jié)構(gòu)圖,INV表示有限域中計(jì)算逆元的邏輯運(yùn)算,MT表示SBX運(yùn)算中逆元運(yùn)算后把逆元和一個(gè)固定的矩陣相乘的運(yùn)算。圖3是現(xiàn)有解密運(yùn)算的結(jié)構(gòu)圖,ISBX(Inv Sbox)表示解密運(yùn)算的S盒運(yùn)算,也是加密S盒運(yùn)算的逆,IMC(Inv Mix Columns)表示解密運(yùn)算的列混合運(yùn)算,ARK (add roundkey)表示輪密鑰加運(yùn)算,Register (寄存器)緩存每輪運(yùn)算的中間數(shù)據(jù),選擇器用于選擇裝載輸入數(shù)據(jù)或輪運(yùn)算的輸出數(shù)據(jù),round-key表示加密輪密鑰,initial-data表示輸入數(shù)據(jù),data-out表示加密結(jié)果,initial-round表示當(dāng)前輪運(yùn)算的輪數(shù)。每組數(shù)據(jù)的解密有Nr輪運(yùn)算,第一輪運(yùn)算開(kāi)始時(shí)裝載輸入數(shù)據(jù),第一輪運(yùn)算的輸出作為第二輪運(yùn)算的輸入,依次類(lèi)推,直到完成Nr輪運(yùn)算,輸出及誒結(jié)果。圖4是解密運(yùn)算S盒的運(yùn)算過(guò)程,MTI表示ISBX運(yùn)算中計(jì)算逆元之前輸入數(shù)據(jù)和一個(gè)固定矩陣相乘的運(yùn)算,INV表示有限域中計(jì)算逆元的邏輯運(yùn)算?,F(xiàn)有的AES算法采用獨(dú)立結(jié)構(gòu)分別實(shí)現(xiàn)加密和解密運(yùn)算,而S盒運(yùn)算邏輯的面積很大,獨(dú)立結(jié)構(gòu)分別實(shí)現(xiàn)加密和解密運(yùn)算會(huì)增加芯片的面積和功耗。綜上可知,現(xiàn)有技術(shù)在實(shí)際使用上顯然存在不便與缺陷,所以有必要加以改進(jìn)。

發(fā)明內(nèi)容
針對(duì)上述的缺陷,本發(fā)明的目的在于提供一種選擇門(mén)優(yōu)化的AES加解密方法及裝置,其能夠降低芯片面積及功耗,同時(shí)減少關(guān)鍵路徑上選擇門(mén)的使用,縮短了關(guān)鍵路徑,提高了 AES模塊的運(yùn)行速度。為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種選擇門(mén)優(yōu)化的AES加解密方法,包括
控制選擇將輪運(yùn)算結(jié)果或者待加/解密數(shù)據(jù)輸出至寄存器;對(duì)所述寄存器中的數(shù)據(jù)進(jìn)行Nr輪加/解密輪運(yùn)算,Nr由密鑰長(zhǎng)度確定;通過(guò)加/解密控制信號(hào)控制選擇輸出加密輪運(yùn)算結(jié)果或者解密輪運(yùn)算結(jié)果至寄存器。根據(jù)本發(fā)明的方法,對(duì)所述寄存器中的數(shù)據(jù)進(jìn)行加密輪運(yùn)算或解密輪運(yùn)算的步驟具體為對(duì)所述寄存器中的數(shù)據(jù)進(jìn)行求逆運(yùn)算操作,并輸出兩個(gè)相同的求逆運(yùn)算結(jié)果;對(duì)其中一個(gè)求逆運(yùn)算結(jié)果依次進(jìn)行加密仿射變換操作、加密列混合運(yùn)算操作以及輪密鑰加運(yùn)算操作,并輸出操作結(jié)果作為所述加密輪運(yùn)算結(jié)果;
對(duì)另一個(gè)求逆運(yùn)算結(jié)果依次進(jìn)行輪密鑰加運(yùn)算操作、解密列混合運(yùn)算操作以及解 密仿射變換操作,并輸出操作結(jié)果作為所述解密輪運(yùn)算結(jié)果;根據(jù)本發(fā)明的方法,對(duì)所述寄存器中的數(shù)據(jù)進(jìn)行加密輪運(yùn)算或解密輪運(yùn)算的步驟還包括在第Nr輪運(yùn)算時(shí),將所述求逆運(yùn)算結(jié)果進(jìn)行輪密鑰加運(yùn)算操作后輸出作為解密結(jié)果,或者在第Nr輪運(yùn)算時(shí),將所述加密仿射變換操作后的數(shù)據(jù)進(jìn)行輪密鑰加運(yùn)算操作后輸出作為加S結(jié)果。根據(jù)本發(fā)明的方法,控制選擇將輪運(yùn)算結(jié)果或者待加/解密數(shù)據(jù)輸出至寄存器的步驟具體為通過(guò)輪運(yùn)算的輪數(shù)控制選擇將輪運(yùn)算結(jié)果或者待加/解密數(shù)據(jù)輸出至所述寄存器,若為第一輪則選擇將待加/解密數(shù)據(jù)加載至所述寄存器,否則將所述輪運(yùn)算結(jié)果緩存至所述寄存器。根據(jù)本發(fā)明的方法,所述方法還包括將初始密鑰進(jìn)行變換獲取所述輪密鑰加運(yùn)算操作在每一輪運(yùn)算使用的密鑰。本發(fā)明相應(yīng)提供一種選擇門(mén)優(yōu)化的AES加解密裝置,包括第一選擇器,控制選擇將輪運(yùn)算結(jié)果或者待加/解密數(shù)據(jù)輸出至寄存器;寄存器,用于緩存待加/解密數(shù)據(jù)或者輪運(yùn)算的結(jié)果;加/解密輪運(yùn)算單元,用于對(duì)所述寄存器中的數(shù)據(jù)進(jìn)行Nr輪加/解密輪運(yùn)算,Nr由密鑰長(zhǎng)度確定;第二選擇器,用于通過(guò)加/解密控制信號(hào)控制選擇輸出加密輪運(yùn)算結(jié)果或者解密輪運(yùn)算結(jié)果至寄存器。根據(jù)本發(fā)明的裝置,所述加/解密輪運(yùn)算單元包括求逆模塊,用于對(duì)所述寄存器中的數(shù)據(jù)進(jìn)行求逆運(yùn)算操作,并輸出兩個(gè)相同的求逆運(yùn)算結(jié)果;加密仿射變換模塊,用于對(duì)所述求逆運(yùn)算結(jié)果進(jìn)行加密仿射變換操作;加密列混合模塊,用于對(duì)加密仿射變換的結(jié)果進(jìn)行加密列混合運(yùn)算操作;第一輪密鑰加模塊,用于對(duì)所述加密列混合運(yùn)算的結(jié)果進(jìn)行輪密鑰加運(yùn)算操作,并輸出輪密鑰加運(yùn)算操作結(jié)果作為所述加密輪運(yùn)算結(jié)果;第二輪密鑰加模塊,用于對(duì)另一個(gè)求逆運(yùn)算結(jié)果進(jìn)行輪密鑰加運(yùn)算操作;
解密列混合模塊,用于對(duì)所述第二輪密鑰加模塊輸出的輪密鑰加運(yùn)算結(jié)果進(jìn)行解密列混合運(yùn)算操作;解密仿射變 換模塊,用于對(duì)所述解密列混合運(yùn)算結(jié)果進(jìn)行解密仿射變換操作,并輸出所述解密仿射變換操作結(jié)果作為所述解密輪運(yùn)算結(jié)果。根據(jù)本發(fā)明的裝置,所述裝置還包括第三輪密鑰加模塊,用于在第Nr輪運(yùn)算時(shí),將所述加密仿射變換操作后的數(shù)據(jù)進(jìn)行輪密鑰加運(yùn)算操作后輸出作為加密結(jié)果;所述第二輪密鑰加模塊還用于在第Nr輪運(yùn)算時(shí),將所述求逆運(yùn)算結(jié)果進(jìn)行輪密鑰加運(yùn)算操作后輸出作為解密結(jié)果。根據(jù)本發(fā)明的裝置,所述第一選擇器還用于通過(guò)輪運(yùn)算的輪數(shù)控制選擇將輪運(yùn)算結(jié)果或者待加/解密數(shù)據(jù)輸出至所述寄存器,若為第一輪則選擇將待加/解密數(shù)據(jù)加載至所述寄存器,否則將所述輪運(yùn)算結(jié)果緩存至所述寄存器。根據(jù)本發(fā)明的裝置,所述裝置還包括密鑰擴(kuò)展單元,用于將初始密鑰進(jìn)行變換獲取所述輪密鑰加運(yùn)算操作在每一輪運(yùn)算使用的密鑰。本發(fā)明通過(guò)相同寄存器緩存待加/解密數(shù)據(jù)或者輪運(yùn)算的結(jié)果,第一選擇器控制選擇將輪運(yùn)算結(jié)果或者待加/解密數(shù)據(jù)輸出至寄存器,加/解密輪運(yùn)算單元對(duì)寄存器中的數(shù)據(jù)進(jìn)行Nr輪加/解密輪運(yùn)算,第二選擇器通過(guò)加/解密控制信號(hào)控制選擇輸出加密輪運(yùn)算結(jié)果或者解密輪運(yùn)算結(jié)果至寄存器。通過(guò)把加密和解密運(yùn)算放到一個(gè)模塊內(nèi),并把加密和解密輪運(yùn)算的結(jié)果使用相同的寄存器緩存,降低了芯片面積降低了功耗;同時(shí),本發(fā)明通過(guò)改變S盒計(jì)算中和特定矩陣進(jìn)行乘法運(yùn)算的位置,減少了關(guān)鍵路徑上選擇門(mén)的使用,縮短了關(guān)鍵路徑,提高了 AES模塊的運(yùn)行速度。借此,本發(fā)明能夠降低芯片面積及功耗,同時(shí)減少關(guān)鍵路徑上選擇門(mén)的使用,縮短了關(guān)鍵路徑,提聞了 AES I旲塊的運(yùn)行速度。優(yōu)選的是,本發(fā)明使用相同的計(jì)算逆元的邏輯實(shí)現(xiàn)加密和解密S盒的計(jì)算,由于每輪運(yùn)算需要使用16個(gè)S盒,并且S盒的面積很大,通過(guò)復(fù)用,降低了芯片的面積和功耗。


圖I是現(xiàn)有加密運(yùn)算的結(jié)構(gòu)示意圖;圖2是現(xiàn)有加密S盒運(yùn)算的結(jié)構(gòu)示意圖;圖3是現(xiàn)有解密運(yùn)算的結(jié)構(gòu)示意圖;圖4是現(xiàn)有解密S盒運(yùn)算的結(jié)構(gòu)示意圖;圖5是本發(fā)明一種選擇門(mén)優(yōu)化的AES加解密裝置的結(jié)構(gòu)示意圖;圖6是本發(fā)明一種選擇門(mén)優(yōu)化的AES加解密方法的流程圖;圖7是本發(fā)明中進(jìn)行加/解密輪運(yùn)算操作的流程圖;圖8是本發(fā)明中選擇輪運(yùn)算輸入數(shù)據(jù)的流程圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。圖5示出了本發(fā)明一種選擇門(mén)優(yōu)化的AES加解密裝置100,裝置100包括第一選擇器10、寄存器20、加/解密輪運(yùn)算單元30以及第二選擇器40。第一選擇器10,控制選擇將輪運(yùn)算結(jié)果或者待加/解密數(shù)據(jù)(Initial-data)輸出至寄存器20。具體的,第一選擇器10通過(guò)輪運(yùn)算的輪數(shù)(Initial-round)控制選擇將輪運(yùn)算結(jié)果或者待加/解密數(shù)據(jù)輸出至寄存器20,若為第一輪則選擇將待加/解密數(shù)據(jù)加載至寄存器20,否則將所述輪運(yùn)算結(jié)果緩存至寄存器20。寄存器20,用于緩存待加/解密數(shù)據(jù)或者輪運(yùn)算的結(jié)果。加/解密輪運(yùn)算單元30,用于對(duì)寄存器20中的數(shù)據(jù)進(jìn)行Nr輪加/解密輪運(yùn)算,Nr由密鑰長(zhǎng)度確定。表I是Nr和密鑰長(zhǎng)度關(guān)系的一種實(shí)施例。表I
密鑰長(zhǎng)度(比特) I28192256
Nr101214其中,每組數(shù)據(jù)的加/解密有Nr輪運(yùn)算,第一輪運(yùn)算開(kāi)始時(shí)裝載輸入數(shù)據(jù),第一輪運(yùn)算的輸出作為第二輪運(yùn)算的輸入,依次類(lèi)推,直到完成Nr輪運(yùn)算,輸出加/解密結(jié)果。加/解密輪運(yùn)算單元30包括求逆模塊31、加密仿射變換模塊32、加密列混合模塊33、第一輪密鑰加模塊34、第二輪密鑰加模塊35、解密列混合模塊36以及解密仿射變換模塊37。求逆模塊31,用于對(duì)寄存器20中的數(shù)據(jù)進(jìn)行求逆運(yùn)算操作,并輸出兩個(gè)相同的求逆運(yùn)算結(jié)果。加密仿射變換模塊32,用于對(duì)求逆運(yùn)算結(jié)果進(jìn)行加密仿射變換操作。加密列混合模塊33,用于對(duì)加密仿射變換的結(jié)果進(jìn)行加密列混合運(yùn)算操作。第一輪密鑰加模塊34,用于對(duì)加密列混合模塊33的加密列混合運(yùn)算結(jié)果進(jìn)行輪密鑰加運(yùn)算操作,并輸出輪密鑰加運(yùn)算操作結(jié)果作為加密輪運(yùn)算結(jié)果,輪密鑰(Round-key)其由最初始的密鑰變換而來(lái),最初的密鑰來(lái)自用戶(hù)的輸入,輪密鑰用于輪密鑰加運(yùn)算操作。第二輪密鑰加模塊35,用于對(duì)另一個(gè)求逆運(yùn)算結(jié)果進(jìn)行輪密鑰加運(yùn)算操作。解密列混合模塊36,用于對(duì)第二輪密鑰加模塊35輸出的輪密鑰加運(yùn)算結(jié)果進(jìn)行解密列混合運(yùn)算操作。解密仿射變換模塊37,用于對(duì)解密列混合運(yùn)算結(jié)果進(jìn)行解密仿射變換操作,并輸出解密仿射變換操作結(jié)果作為解密輪運(yùn)算結(jié)果。在加/解密輪運(yùn)算單元30中,將加密和解密的求逆模塊31進(jìn)行復(fù)用,求逆模塊31用于加密S盒運(yùn)算中的求逆元運(yùn)算,也可用于解密S盒運(yùn)算中的求逆元運(yùn)算。使用相同的計(jì)算逆元的邏輯實(shí)現(xiàn)加密和解密S盒的計(jì)算,由于每輪運(yùn)算需要使用16個(gè)S盒,并且S盒的面積很大,通過(guò)復(fù)用降低了芯片的面積和功耗,從而實(shí)現(xiàn)了 S盒的復(fù)用,降低了芯片面積以及功耗。同時(shí),通過(guò)改變S盒計(jì)算中和特定矩陣進(jìn)行乘法運(yùn)算的位置,減少了關(guān)鍵路徑上選擇門(mén)的使用,縮短了關(guān)鍵路徑,提高了 AES模塊的運(yùn)行速度。第二選擇器40,用于通過(guò)加/解密控制信號(hào)(Encrypt)控制選擇輸出加密輪運(yùn)算結(jié)果或者解密輪運(yùn)算結(jié)果至寄存器20。優(yōu)選的是,裝置100還包括第三輪密鑰加模塊50,用于在第Nr輪運(yùn)算時(shí),將加密仿射變換操作后的數(shù)據(jù)進(jìn)行輪密鑰加運(yùn)算操作后輸出作為加密結(jié)果(Data-out-enc);同時(shí),第二輪密鑰加模塊35還用于在第Nr輪運(yùn)算時(shí),將求逆運(yùn)算結(jié)果進(jìn)行輪密鑰加運(yùn)算操作后輸出作為解密結(jié)果(Data-out-dec)。其中,在解密的輪運(yùn)算過(guò)程中,由于將求逆模塊31的求逆操作結(jié)果首先進(jìn)行輪密鑰加運(yùn)算,再進(jìn)行解密列混合運(yùn)算,因此可以將解密輪運(yùn)算中的輪密鑰加運(yùn)算和解密輸出的輪密鑰加運(yùn)算進(jìn)行復(fù)用,通過(guò)一個(gè)輪密鑰加模塊實(shí)現(xiàn)即可。在加密的輪運(yùn)算過(guò)程中,將求逆模塊31的求逆操作結(jié)果首先進(jìn)行加密仿射變換、加密列混合運(yùn)算,再進(jìn)行輪密鑰加運(yùn)算,所以無(wú)法對(duì)輪密鑰加運(yùn)算進(jìn)行復(fù)用。優(yōu)選的是,裝置100還包括密鑰擴(kuò)展單元,用于將初始密鑰進(jìn)行變換獲取輪密鑰加運(yùn)算操作在每一輪運(yùn)算使用的密鑰。在每一輪的輪運(yùn)算所使用的密鑰都不相同,稱(chēng)為輪密鑰,其由最初始的密鑰變換而來(lái),最初的密鑰來(lái)自用戶(hù)的輸入。輪密鑰用于輪密鑰加運(yùn)算操作。根據(jù)本發(fā)明的一個(gè)實(shí)施例,在加密過(guò)程中,待加密數(shù)據(jù)(Initial-data)從第一選擇器10的輸入端輸入,輪運(yùn)算的輪數(shù)(Initial-round)為1,第一選擇器10根據(jù)輪運(yùn)算的輪數(shù)(Initial-round)選擇將待加密數(shù)據(jù)加載到寄存器20 ;寄存器20將數(shù)據(jù)發(fā)送到求逆模塊31,求逆模塊31對(duì)寄存器20發(fā)來(lái)的數(shù)據(jù)進(jìn)行有限域的求逆元運(yùn)算;加密仿射變換模塊32對(duì)求逆元運(yùn)算結(jié)果逆元和一個(gè)固定矩陣進(jìn)行相乘運(yùn)算,加密列混合模塊33對(duì)加密仿射變換結(jié)果進(jìn)行加密混列變換,并將混列變換結(jié)果輸出到第一輪密鑰加模塊34與輪密鑰矩陣(Round-key)相加作為當(dāng)前一輪的加密輪運(yùn)算的結(jié)果;第二選擇器40根據(jù)加/解密控 制信號(hào)(此時(shí)加/解密控制信號(hào)為加密控制信號(hào))選擇將加密輪運(yùn)算的結(jié)果發(fā)送到第一選擇器10,第一選擇器10將第二選擇器40發(fā)來(lái)的加密輪運(yùn)算結(jié)果緩存至寄存器20開(kāi)始下一輪的輪運(yùn)算,依次類(lèi)推,直到完成Nr輪運(yùn)算。在Nr輪運(yùn)算時(shí),第三輪密鑰加模塊50將加密仿射變換模塊32的輸出進(jìn)行輪密鑰加運(yùn)算操作后輸出作為加密結(jié)果(Data-out-enc)。根據(jù)本發(fā)明的另一實(shí)施例,在解密過(guò)程中,待解密數(shù)據(jù)(Initial-data)從第一選擇器10的輸入端輸入,輪運(yùn)算的輪數(shù)(Initial-round)為1,第一選擇器10根據(jù)輪運(yùn)算的輪數(shù)(Initial-round)選擇將待解密數(shù)據(jù)加載到寄存器20 ;寄存器20將數(shù)據(jù)發(fā)送到求逆模塊31,求逆模塊31對(duì)寄存器20發(fā)來(lái)的數(shù)據(jù)進(jìn)行有限域的求逆元運(yùn)算;第二輪密鑰加模塊35將逆元與輪密鑰矩陣(Round-key)相加后輸出結(jié)果到解密列混合模塊36,解密列混合模塊36將數(shù)據(jù)進(jìn)行解密混列變換后發(fā)送到解密仿射變換模塊37,解密仿射變換模塊37對(duì)解密列混合模塊36發(fā)來(lái)的數(shù)據(jù)和一個(gè)固定矩陣進(jìn)行相乘運(yùn)算后輸出結(jié)果作為當(dāng)前一輪解密輪運(yùn)算的結(jié)果;第二選擇器40根據(jù)加/解密控制信號(hào)(此時(shí)加/解密控制信號(hào)為解密控制信號(hào))選擇將解密輪運(yùn)算的結(jié)果發(fā)送到第一選擇器10,第一選擇器10將第二選擇器40發(fā)來(lái)的解密輪運(yùn)算結(jié)果緩存至寄存器20開(kāi)始下一輪的輪運(yùn)算,依次類(lèi)推,直到完成Nr輪運(yùn)算。在Nr輪運(yùn)算時(shí),第二輪密鑰加模塊35將求逆模塊31的輸出進(jìn)行輪密鑰加運(yùn)算操作后輸出作為解密結(jié)果(Data-out-dec)。圖6是本發(fā)明一種選擇門(mén)優(yōu)化的AES加解密方法的流程圖,其通過(guò)如圖5所示的裝置實(shí)現(xiàn),該流程包括步驟S601,控制選擇將輪運(yùn)算結(jié)果或者待加/解密數(shù)據(jù)輸出至寄存器。步驟S602,對(duì)寄存器中的數(shù)據(jù)進(jìn)行Nr輪加/解密輪運(yùn)算,Nr由密鑰長(zhǎng)度確定。步驟S603,通過(guò)加/解密控制信號(hào)控制選擇輸出加密輪運(yùn)算結(jié)果或者解密輪運(yùn)算結(jié)果至寄存器。優(yōu)選的是,該方法還包括將初始密鑰進(jìn)行變換獲取所述輪密鑰加運(yùn)算操作在每一輪運(yùn)算使用的密鑰。本步驟通過(guò)密鑰擴(kuò)展單元實(shí)現(xiàn)。圖7是本發(fā)明中進(jìn)行加/解密輪運(yùn)算操作的流程圖,其通過(guò)加/解密輪運(yùn)算單元30實(shí)現(xiàn),該流程包括步驟S701,對(duì)寄存器中的數(shù)據(jù)進(jìn)行求逆運(yùn)算操作,并輸出兩個(gè)相同的求逆運(yùn)算結(jié)
果O步驟S702,對(duì)其中一個(gè)求逆運(yùn)算結(jié)果依次進(jìn)行加密仿射變換操作、加密列混合運(yùn)算操作以及輪密鑰加運(yùn)算操作,并輸出操作結(jié)果作為加密輪運(yùn)算結(jié)果。步驟S703,對(duì)另一個(gè)求逆運(yùn)算結(jié)果依次進(jìn)行輪密鑰加運(yùn)算操作、解密列混合運(yùn)算操作以及解密仿射變換操作,并輸出操作結(jié)果作為解密輪運(yùn)算結(jié)果。優(yōu)選的是,加/解密輪運(yùn)算操作還包括在第Nr輪運(yùn)算時(shí),將求逆運(yùn)算結(jié)果進(jìn)行輪密鑰加運(yùn)算操作后輸出作為解密結(jié)果,在第Nr輪運(yùn)算時(shí),將所述加密仿射變換操作后的數(shù)據(jù)進(jìn)行輪密鑰加運(yùn)算操作后輸出作為加密結(jié)果。 圖8是本發(fā)明中選擇輪運(yùn)算輸入數(shù)據(jù)的流程圖,其通過(guò)第一選擇器10實(shí)現(xiàn),該流程包括步驟S801,通過(guò)輪運(yùn)算的輪數(shù)控制選擇將輪運(yùn)算結(jié)果或者待加/解密數(shù)據(jù)輸出至所述寄存器;步驟S802,若為第一輪則選擇將待加/解密數(shù)據(jù)加載至寄存器,否則將輪運(yùn)算結(jié)果緩存至寄存器。綜上所述,本發(fā)明通過(guò)相同寄存器緩存待加/解密數(shù)據(jù)或者輪運(yùn)算的結(jié)果,第一選擇器控制選擇將輪運(yùn)算結(jié)果或者待加/解密數(shù)據(jù)輸出至寄存器,加/解密輪運(yùn)算單元對(duì)寄存器中的數(shù)據(jù)進(jìn)行Nr輪加/解密輪運(yùn)算,第二選擇器通過(guò)加/解密控制信號(hào)控制選擇輸出加密輪運(yùn)算結(jié)果或者解密輪運(yùn)算結(jié)果至寄存器。通過(guò)把加密和解密運(yùn)算放到一個(gè)模塊內(nèi),并把加密和解密輪運(yùn)算的結(jié)果使用相同的寄存器緩存,降低了芯片面積降低了功耗;同時(shí),本發(fā)明通過(guò)改變S盒計(jì)算中和特定矩陣進(jìn)行乘法運(yùn)算的位置,減少了關(guān)鍵路徑上選擇門(mén)的使用,縮短了關(guān)鍵路徑,提高了 AES模塊的運(yùn)行速度。借此,本發(fā)明能夠降低芯片面積及功耗,同時(shí)減少關(guān)鍵路徑上選擇門(mén)的使用,縮短了關(guān)鍵路徑,提高了 AES模塊的運(yùn)行速度。優(yōu)選的是,本發(fā)明使用相同的計(jì)算逆元的邏輯實(shí)現(xiàn)加密和解密S盒的計(jì)算,由于每輪運(yùn)算需要使用16個(gè)S盒,并且S盒的面積很大,通過(guò)復(fù)用,降低了芯片的面積和功耗。當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種選擇門(mén)優(yōu)化的AES加解密方法,其特征在于,包括 控制選擇將輪運(yùn)算結(jié)果或者待加/解密數(shù)據(jù)輸出至寄存器; 對(duì)所述寄存器中的數(shù)據(jù)進(jìn)行Nr輪加/解密輪運(yùn)算,Nr由密鑰長(zhǎng)度確定; 通過(guò)加/解密控制信號(hào)控制選擇輸出加密輪運(yùn)算結(jié)果或者解密輪運(yùn)算結(jié)果至寄存器。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,對(duì)所述寄存器中的數(shù)據(jù)進(jìn)行加密輪運(yùn)算或解密輪運(yùn)算的步驟具體為 對(duì)所述寄存器中的數(shù)據(jù)進(jìn)行求逆運(yùn)算操作,并輸出兩個(gè)相同的求逆運(yùn)算結(jié)果; 對(duì)其中一個(gè)求逆運(yùn)算結(jié)果依次進(jìn)行加密仿射變換操作、加密列混合運(yùn)算操作以及輪密 鑰加運(yùn)算操作,并輸出操作結(jié)果作為所述加密輪運(yùn)算結(jié)果; 對(duì)另一個(gè)求逆運(yùn)算結(jié)果依次進(jìn)行輪密鑰加運(yùn)算操作、解密列混合運(yùn)算操作以及解密仿射變換操作,并輸出操作結(jié)果作為所述解密輪運(yùn)算結(jié)果。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,對(duì)所述寄存器中的數(shù)據(jù)進(jìn)行加密輪運(yùn)算或解密輪運(yùn)算的步驟還包括 在第Nr輪運(yùn)算時(shí),將所述求逆運(yùn)算結(jié)果進(jìn)行輪密鑰加運(yùn)算操作后輸出作為解密結(jié)果,或者 在第Nr輪運(yùn)算時(shí),將所述加密仿射變換操作后的數(shù)據(jù)進(jìn)行輪密鑰加運(yùn)算操作后輸出作為加密結(jié)果。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,控制選擇將輪運(yùn)算結(jié)果或者待加/解密數(shù)據(jù)輸出至寄存器的步驟具體為 通過(guò)輪運(yùn)算的輪數(shù)控制選擇將輪運(yùn)算結(jié)果或者待加/解密數(shù)據(jù)輸出至所述寄存器,若為第一輪則選擇將待加/解密數(shù)據(jù)加載至所述寄存器,否則將所述輪運(yùn)算結(jié)果緩存至所述寄存器。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述方法還包括將初始密鑰進(jìn)行變換獲取所述輪密鑰加運(yùn)算操作在每一輪運(yùn)算使用的密鑰。
6.一種選擇門(mén)優(yōu)化的AES加解密裝置,其特征在于,包括 第一選擇器,控制選擇將輪運(yùn)算結(jié)果或者待加/解密數(shù)據(jù)輸出至寄存器; 寄存器,用于緩存待加/解密數(shù)據(jù)或者輪運(yùn)算的結(jié)果; 加/解密輪運(yùn)算單元,用于對(duì)所述寄存器中的數(shù)據(jù)進(jìn)行Nr輪加/解密輪運(yùn)算,Nr由密鑰長(zhǎng)度確定; 第二選擇器,用于通過(guò)加/解密控制信號(hào)控制選擇輸出加密輪運(yùn)算結(jié)果或者解密輪運(yùn)算結(jié)果至寄存器。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述加/解密輪運(yùn)算單元包括 求逆模塊,用于對(duì)所述寄存器中的數(shù)據(jù)進(jìn)行求逆運(yùn)算操作,并輸出兩個(gè)相同的求逆運(yùn)算結(jié)果; 加密仿射變換模塊,用于對(duì)所述求逆運(yùn)算結(jié)果進(jìn)行加密仿射變換操作; 加密列混合模塊,用于對(duì)加密仿射變換的結(jié)果進(jìn)行加密列混合運(yùn)算操作; 第一輪密鑰加模塊,用于對(duì)所述加密列混合運(yùn)算的結(jié)果進(jìn)行輪密鑰加運(yùn)算操作,并輸出輪密鑰加運(yùn)算操作結(jié)果作為所述加密輪運(yùn)算結(jié)果; 第二輪密鑰加模塊,用于對(duì)另一個(gè)求逆運(yùn)算結(jié)果進(jìn)行輪密鑰加運(yùn)算操作;解密列混合模塊,用于對(duì)所述第二輪密鑰加模塊輸出的輪密鑰加運(yùn)算結(jié)果進(jìn)行解密列混合運(yùn)算操作; 解密仿射變換模塊,用于對(duì)所述解密列混合運(yùn)算結(jié)果進(jìn)行解密仿射變換操作,并輸出所述解密仿射變換操作結(jié)果作為所述解密輪運(yùn)算結(jié)果。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括第三輪密鑰加模塊,用于在第Nr輪運(yùn)算時(shí),將所述加密仿射變換操作后的數(shù)據(jù)進(jìn)行輪密鑰加運(yùn)算操作后輸出作為加密結(jié)果; 所述第二輪密鑰加模塊還用于在第Nr輪運(yùn)算時(shí),將所述求逆運(yùn)算結(jié)果進(jìn)行輪密鑰加運(yùn)算操作后輸出作為解密結(jié)果。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第一選擇器還用于通過(guò)輪運(yùn)算的輪數(shù)控制選擇將輪運(yùn)算結(jié)果或者待加/解密數(shù)據(jù)輸出至所述寄存器,若為第一輪則選擇將待加/解密數(shù)據(jù)加載至所述寄存器,否則將所述輪運(yùn)算結(jié)果緩存至所述寄存器。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括密鑰擴(kuò)展單元,用于將初始密鑰進(jìn)行變換獲取所述輪密鑰加運(yùn)算操作在每一輪運(yùn)算使用的密鑰。
全文摘要
本發(fā)明提供了一種選擇門(mén)優(yōu)化的AES加解密方法及裝置,該方法包括控制選擇將輪運(yùn)算結(jié)果或者待加/解密數(shù)據(jù)輸出至寄存器;對(duì)寄存器中的數(shù)據(jù)進(jìn)行Nr輪加/解密輪運(yùn)算,Nr由密鑰長(zhǎng)度確定;通過(guò)加/解密控制信號(hào)控制選擇輸出加密輪運(yùn)算結(jié)果或者解密輪運(yùn)算結(jié)果至寄存器。借此,本發(fā)明能夠降低芯片面積及功耗,同時(shí)減少關(guān)鍵路徑上選擇門(mén)的使用,縮短了關(guān)鍵路徑,提高了AES模塊的運(yùn)行速度。
文檔編號(hào)H04L9/06GK102780557SQ201210236938
公開(kāi)日2012年11月14日 申請(qǐng)日期2012年7月10日 優(yōu)先權(quán)日2012年7月10日
發(fā)明者朱麗娟, 莫海鋒 申請(qǐng)人:記憶科技(深圳)有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
安泽县| 固始县| 上栗县| 沐川县| 微山县| 康定县| 阳山县| 巴林右旗| 沙田区| 广丰县| 嘉鱼县| 太谷县| 正阳县| 阜新市| 唐河县| 靖江市| 监利县| 镇江市| 曲阳县| 巴青县| 宜丰县| 忻州市| 清镇市| 宜兰县| 鄂尔多斯市| 衡东县| 阿坝| 怀来县| 卫辉市| 四平市| 都江堰市| 新巴尔虎左旗| 阿坝县| 城步| 深泽县| 扶余县| 伊川县| 庆城县| 和田市| 盘山县| 林西县|