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

AES加密算法中Sbox生成指令優(yōu)化方法及其指令集處理器的制作方法

文檔序號(hào):6353575閱讀:909來源:國知局
專利名稱:AES加密算法中Sbox生成指令優(yōu)化方法及其指令集處理器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及AES的加解密技術(shù),尤其涉及AES加密算法中Sbox生成過程的指令優(yōu) 化方法及其指令集處理器設(shè)計(jì)。
背景技術(shù)
AES是The Advanced Encryption Mandard (高級(jí)加密標(biāo)準(zhǔn))的簡稱,是美國國家 標(biāo)準(zhǔn)與技術(shù)研究所(NIST)公布的一種用于加密電子數(shù)據(jù)的規(guī)范,其被廣泛地討論和認(rèn)可, 成為全球信息安全領(lǐng)域中應(yīng)用最為廣泛的一種分組密碼算法。AES算法采用對(duì)稱分組密碼 體制,密鑰長度可以分別為1 位、192位、256位,而分組長度固定為1 位。AES的加密技術(shù)使用加密密鑰執(zhí)行一系列的轉(zhuǎn)換,以將被稱為“明文”的可理解數(shù) 據(jù)轉(zhuǎn)換為被稱為“密文”的無法理解的數(shù)據(jù)。在AES加密解密算法中使用非線性字節(jié)替換表 (S-Box)對(duì)原文進(jìn)行替換,即根據(jù)查表的方式將原文替換成Sbox中相對(duì)應(yīng)的值。AES-Sbox 需要自己生成,它的生成過程包含了求解逆元和仿射變化兩個(gè)過程第一步求解逆元是 在伽羅瓦域GFQ8)內(nèi)進(jìn)行的,即對(duì)域內(nèi)的任意一個(gè)八位的二進(jìn)制數(shù)A,轉(zhuǎn)換成一個(gè)多項(xiàng)式 A(X),如果存在某個(gè)二進(jìn)制數(shù)對(duì)應(yīng)的多項(xiàng)式B(X)滿足[A(X) XB(X)]mod m(x) = 1那么B 就是A的逆元,其中模多項(xiàng)式m(x) = x8+x4+x3+x+l,是為了保證相乘以后的元素仍然在域 內(nèi)。在這個(gè)過程中,需要大量用到域內(nèi)的乘法。第二步仿射過程,即對(duì)某一 8位二進(jìn)制數(shù) b7b6b5b4b3b2b1b0按如下公式進(jìn)行變化b ’i = bi 十 b(i + 4)mod8 十 b (i + 5)mod8 十 b(i + 6)mod8 十 b(i + 7)mod8該過程涉及到大量的取位操作與異或操作。Sbox的生成運(yùn)算是AES加密算法中最復(fù)雜、最費(fèi)時(shí)的過程,并且在AES加密算法中 Sbox生成運(yùn)算占用的算法運(yùn)行指令數(shù)高達(dá)60 %。因此要想提高AES算法運(yùn)算速度和執(zhí)行 效率,需要優(yōu)化Sbox的生成運(yùn)算速度。目前對(duì)Sbox生成算法的優(yōu)化主要集中于3方面第一種方法是直接將Sbox生成用硬件實(shí)現(xiàn),采用專門的硬件電路實(shí)現(xiàn)這塊功能;第二種方法是對(duì)Sbox生成算法本身進(jìn)行優(yōu)化,用邏輯方法加速其運(yùn)行;第三種方法是對(duì)Sbox生成算法進(jìn)行指令集的擴(kuò)展優(yōu)化,設(shè)計(jì)加速其運(yùn)行的指令。采用硬件加速的方法,雖然在加速效果上比較明顯,但是這種優(yōu)化方法可擴(kuò)展性 較弱,占的硬件資源相對(duì)較多,而且與程序中的其它模塊結(jié)合相對(duì)較難;對(duì)算法本身進(jìn)行 優(yōu)化的空間十分有限,通常優(yōu)化的改進(jìn)效果不是十分明顯;而第三種方法通過對(duì)指令集擴(kuò) 展優(yōu)化的設(shè)計(jì)方法,不僅減少了執(zhí)行代碼空間,提高了算法執(zhí)行速度,而且在設(shè)計(jì)上易于實(shí) 現(xiàn),靈活性也比較強(qiáng),對(duì)硬件資源的要求也比第一種方法要小很多,適合于小規(guī)模電路。由 于這種優(yōu)化技術(shù)的良好性能,它被應(yīng)用到Blowfish加密等算法的優(yōu)化中。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種針對(duì)AES加密算法中Sbox生成過程的指令優(yōu)化方法及其專用指令集處理器模型。本發(fā)明設(shè)計(jì)了 3條專門用于加速優(yōu)化AES加密算法中的Sbox 生成過程的擴(kuò)展指令,并且設(shè)計(jì)了一款與新指令集相對(duì)應(yīng)的專用指令處理器模型-SASIP。 通過與廣泛使用的ARM處理器對(duì)比發(fā)現(xiàn),經(jīng)過指令擴(kuò)展優(yōu)化后,Sbox生成運(yùn)算在本發(fā)明設(shè) 計(jì)的SASIP處理器中僅占用188bytes的代碼存儲(chǔ)空間,比在ARM處理器中減少了 38. 6% ; 執(zhí)行運(yùn)算周期也由原來的觀75個(gè)時(shí)鐘周期縮減到1123個(gè)時(shí)鐘周期,執(zhí)行效率比ARM處理 器提升了 60.9%。為實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案一種AES加密算法中Sbox生成指令優(yōu)化方法,在滿足不改變指令操作碼長度、指 令位數(shù)以及不影響處理器運(yùn)行速度的前提下,它的步驟為1)在Sbox生成過程中需要求解逆元,并且采用伽羅瓦域GFQ8)內(nèi)的乘法運(yùn)算。 分析Sbox生成過程,發(fā)現(xiàn)在每一次域內(nèi)乘法循環(huán)過程中都需要進(jìn)行一次判斷后異或的過 程,該過程對(duì)應(yīng)Sbox生成算法流程

圖1中的步驟1。在傳統(tǒng)的ARM處理器中,完成該功 能需要四條匯編語句,因此需要四個(gè)時(shí)鐘周期。為了加速該過程,我們?cè)O(shè)計(jì)并采用了指令 ifand<srcl>, <src2>, <xor_srcl>, <xor_src2>。該指令的功能是將操作數(shù) srcl 和 src2 相 與,如果結(jié)果不為0,則XOr_srcl和XOr_src2就執(zhí)行異或,并將結(jié)果保存在xor_srcl表示 的通用寄存器內(nèi);如果結(jié)果為0,則不執(zhí)行異或操作。以上過程將在一個(gè)時(shí)鐘周期內(nèi)完成, 因此比傳統(tǒng)處理器的處理速度提高了四倍,從而對(duì)Sbox生成過程中的域內(nèi)乘法運(yùn)算進(jìn)行 了加速。2)在Sbox生成算法中仿射變換過程需要對(duì)位進(jìn)行操作,每次仿射變換都需要把 八位二進(jìn)制數(shù)的每一位取出來,該過程對(duì)應(yīng)Sbox生成算法圖1中的步驟5。在ARM處理器以 及其它常用的嵌入式處理器中,沒有直接的取位操作,完成取位操作需要執(zhí)行三個(gè)時(shí)鐘周 期,因此執(zhí)行過程十分費(fèi)時(shí)。為了加速該過程,設(shè)計(jì)并采用了指令getbit<deSt> = <src>, 〈bitpos〉。該指令的功能完成的功能是從通用寄存器src中取出第bitpos位,然后存入通 用寄存器dest的最后一位,從而完成取位操作。以上過程將在一個(gè)時(shí)鐘周期內(nèi)完成,因此 比傳統(tǒng)處理器的處理速度提高了三倍,從而對(duì)Sbox生成過程中的仿射過程進(jìn)行了加速。3)仿射變換過程中取出二進(jìn)制數(shù)的所有位后,需要進(jìn)行五元異或操作,并用操作 后的結(jié)果對(duì)原數(shù)進(jìn)行替換,該過程對(duì)應(yīng)Sbox生成算法圖1中的步驟6。在傳統(tǒng)的ARM處理 器中,完成該功能需要四條匯編語言,因此需要四個(gè)時(shí)鐘周期。為了加速五元異或操作,設(shè) 計(jì)并采用了新指令 xor5<dest> = <srcl>, <src2>, <src3>, <src4>, <src5>0 該指令的功能 是將srcl到src5所表示的通用寄存器中的內(nèi)容進(jìn)行異或操作,結(jié)果保存在dest所表示的 通用寄存器中。以上過程將在一個(gè)時(shí)鐘周期內(nèi)完成,因此比傳統(tǒng)處理器的處理速度提高了 四倍,從而進(jìn)一步對(duì)Sbox生成過程中的仿射運(yùn)算進(jìn)行了加速。通過上述三條擴(kuò)展指令的運(yùn)行,加速AES加密算法中的Sbox生成過程。一種根據(jù)擴(kuò)展指令集設(shè)計(jì)的指令集處理器模型,它在硬件邏輯上實(shí)現(xiàn)了上述擴(kuò) 展指令,因此能夠用于AES加密算法中Sbox生成過程的加速。處理器模型主要由數(shù)據(jù) 存儲(chǔ)器、代碼存儲(chǔ)器、寄存器堆和流水線四部分組成;其中,數(shù)據(jù)存儲(chǔ)器地址空間定義在 0x0000-0x7FFF范圍內(nèi),大小32K ;代碼存儲(chǔ)器地址空間定義在0x8000_0xFFFF范圍內(nèi),大 小為32Kbytes ;寄存器堆主要由32個(gè)通用寄存器、1個(gè)取指寄存器、1個(gè)堆棧指針寄存器和 1個(gè)鏈接寄存器組成;流水線采用三級(jí)流水線取指流水線、譯碼流水線和執(zhí)行流水線;流水線控制器對(duì)跳轉(zhuǎn)指令譯碼部件進(jìn)行控制,跳轉(zhuǎn)指令只需要將跳轉(zhuǎn)地址存儲(chǔ)在取指寄存器 中,不需要經(jīng)過執(zhí)行部件,然后接著對(duì)流水線的緩存部分進(jìn)行刷新,防止執(zhí)行部件對(duì)跳轉(zhuǎn)指 令進(jìn)行執(zhí)行;在處理器中除了通用指令譯碼部件和邏輯算術(shù)指令執(zhí)行部件外,還添加了針 對(duì)Sbox生成算法專用指令的Sbox擴(kuò)展指令譯碼部件和Sbox擴(kuò)展指令執(zhí)行部件,來對(duì)擴(kuò)展 的指令進(jìn)行專門的譯碼和執(zhí)行。在Sbox擴(kuò)展指令執(zhí)行部件中,主要包括了 3條新擴(kuò)展指令 的執(zhí)行部件。所述擴(kuò)展指令ifand執(zhí)行部件包括2個(gè)與門、1個(gè)異或邏輯門、一個(gè)或門和1個(gè)多 路選擇器,部件的執(zhí)行末端是整個(gè)處理器共用的通用寄存器堆。與門I接受寄存器rO與rl 的輸入,而該與門I的輸出是rO和rl相與后的一個(gè)32位數(shù)值;或門完成的功能是對(duì)與門 I的輸出,即32位數(shù)值進(jìn)行逐位相或,而產(chǎn)生的輸出是一個(gè)1位的數(shù)值;該輸出將與控制信 號(hào)ifand_exe —起作為與門II的輸入,而與門II的輸出將作為多路選擇器I的輸入,來控 制地址選擇;如果與門II的輸出是1,則多路選擇器I將通用寄存器r2的地址傳遞給寄存 器堆,從而將通用寄存器r2和r3通過異或邏輯門的輸出結(jié)果賦給r2 ;如果與門II的輸出 是0,則多路選擇器I將5位O傳遞給寄存器堆,即傳遞空地址,而處理器判斷是空地址后將 不進(jìn)行賦值操作。所述擴(kuò)展指令getbit執(zhí)行部件包括1個(gè)移位器,1個(gè)與門以及1個(gè)多路選擇器, 而部件的執(zhí)行末端是通用寄存器堆。移位器輸入端接收通用寄存器rO和4位的i ;i的最 大值為31,指示寄存器移動(dòng)的位數(shù);移位器移位后的結(jié)果與0x00000001作為與門III的輸 入,而與門III的輸出為一個(gè)32位的數(shù)值,而該數(shù)值的最后一位保存著rO的第i位,而其 它各位為O ;控制信號(hào)getbit_exe控制多路選擇器II,同時(shí)多路選擇器II接受5位的O和 通用寄存器rl的地址,來控制地址選擇;當(dāng)控制信號(hào)為1時(shí),多路選擇器II將rl的地址傳 送給寄存器堆,從而將與門III的輸出賦給rl ;如果控制信號(hào)為O時(shí),多路選擇器II將5位 O傳遞給寄存器堆,即傳遞空地址,而處理器判斷是空地址后將不進(jìn)行賦值操作。所述擴(kuò)展指令Xor5執(zhí)行部件包括1個(gè)異或電路組和1個(gè)多路選擇器,而部件的執(zhí) 行末端是通用寄存器堆。異或電路組由一系列異或邏輯門組成,它輸入端接收通用寄存器 r2、r3、r4、r5、r6的數(shù)據(jù),輸出結(jié)果為5元異或后的值;控制信號(hào)Xor5_eXe控制多路選擇 器III,同時(shí)多路選擇器III接受5位的O和通用寄存器rl的地址,來控制地址選擇;當(dāng)控 制信號(hào)為1時(shí),多路選擇器III將rl的地址傳送給寄存器堆,從而將異或電路組的輸出結(jié) 果賦給rl ;如果控制信號(hào)為O時(shí),多路選擇器III將5位O傳遞給寄存器堆,即傳遞空地址, 而處理器判斷是空地址后將不進(jìn)行賦值操作。本發(fā)明通過對(duì)AES-Sbox算法進(jìn)行分析,在滿足不改變指令操作碼長度、指令位數(shù) 以及不影響處理器運(yùn)行速度的前提下,對(duì)AES加密算法中的Sbox生成過程進(jìn)行了指令擴(kuò)展 優(yōu)化,共設(shè)計(jì)了 3條擴(kuò)展指令用于加速AES-Sbox生成過程,具體設(shè)計(jì)過程如下1.在Sbox生成過程中需要求解逆元,并且采用伽羅瓦域GFQ8)內(nèi)的乘法運(yùn)算。在 最壞情況下需要循環(huán)256次,即經(jīng)過256次域內(nèi)乘法運(yùn)算才能找到逆元,因?yàn)樽顗那闆r下一 個(gè)元素將與256個(gè)元素依次相乘才能判定是否已找到逆元,因此需要對(duì)域內(nèi)乘法運(yùn)算進(jìn)行 加速。分析Sbox生成過程,發(fā)現(xiàn)在每一次域內(nèi)乘法循環(huán)過程中都需要進(jìn)行一次判斷后異或 過程,該過程對(duì)應(yīng)Sbox生成算法流程圖1中的步驟1,而該步驟對(duì)應(yīng)的執(zhí)行語句為if (a and b is l)then
c = c xor d ;對(duì)應(yīng)的ARM編譯器匯編語言為四條語句and rl, rl, r0cmp rl,0equal jumpxorxorr2,r2,r3上述匯編語言的含義是對(duì)通用寄存器rl和rO進(jìn)行與操作,并將結(jié)果保存在rl 中;判斷rl和0是否相等,如果相等則跳過下面一步的異或操作,如果不相等則執(zhí)行下面一 步的異或操作,并將異或結(jié)果保存在寄存器r2中。根據(jù)上述四條匯編語言的功能,設(shè)計(jì)了一條新的指令ifand,能夠在一個(gè)時(shí)鐘周期 內(nèi)完成上面四條語句的所完成的功能。新指令ifand<srcl>,<src2>, <xor_srcl>, <xor_ src2> 一共有四個(gè)操作碼,分別對(duì)應(yīng)著執(zhí)行語句中的a、b、c、d。指令的具體格式如表1所示表Iifand指令格式
101000srclsrc2xor_srclxor_src2XXXXXX31 2625 2120 1615 1110 65 0該指令的操作碼為101000,每個(gè)操作數(shù)的位數(shù)為5位,最低6位的xxxxxx為補(bǔ)齊 位,保證指令的長度為32位。這條指令完成的功能是srcl和src2相與,如果結(jié)果不為0, 則Xor_Srcl和XOr_src2就執(zhí)行異或,并將結(jié)果保存在xor_srcl中,如果結(jié)果為0,則不執(zhí) 行異或操作。2.在Sbox生成算法中仿射變換過程需要對(duì)位進(jìn)行操作,每次仿射變換都需要把 八位二進(jìn)制數(shù)的每一位取出來。在ARM處理器以及其它常用的嵌入式處理器中,沒有直接 的取位操作,因此取位操作執(zhí)行過程十分費(fèi)時(shí)。該過程對(duì)應(yīng)Sbox生成算法流程圖1中的步 驟5,而該步驟對(duì)應(yīng)的執(zhí)行語句為y = (χ >> i)and 0x00000001 ;首先將χ右移i個(gè)位置,然后和0x00000001相與,結(jié)果賦給y。對(duì)應(yīng)的ARM匯編語 句為move rl, r0leftshift rl, rl, (31-i)rightshift rl, rl,31上述匯編語言的含義是先將要移位的通用寄存器r0的值存儲(chǔ)在一個(gè)新的通用寄 存器rl中,然后將rl左移(31-i)位,再右移31位,而這個(gè)操作的目的是對(duì)其余位進(jìn)行清 零,從而取出r0的第i位。為了能夠在一個(gè)時(shí)鐘周期內(nèi)完成取位操作,本發(fā)明設(shè)計(jì)了一條 新取位指令getbit來替代上面的三條指令,getbit<deSt> = <src>,<bitpos>的具體格式 如表2所示表2getbit指令格式
權(quán)利要求
1.一種AES加密算法中Sbox生成指令優(yōu)化方法,其特征是,在滿足不改變指令操作碼 長度、指令位數(shù)以及不影響處理器運(yùn)行速度的前提下,它的步驟為1)在Sbox生成過程中求解逆元,并且采用伽羅瓦域GFQ8)內(nèi)的乘法運(yùn)算;采用指令 ifand<srcl>, <src2>, <xor_srcl>, <xor_src2>來完成該過程,該指令將通用寄存器srcl 和寄存器src2相與,如果結(jié)果不為0,則XOr_srcl和XOr_src2就執(zhí)行異或,并將結(jié)果保存 在xor_srci寄存器內(nèi)中,如果結(jié)果為0,則不執(zhí)行異或操作,以上過程將在一個(gè)時(shí)鐘周期內(nèi) 完成,從而對(duì)Sbox生成過程中的域內(nèi)乘法運(yùn)算進(jìn)行了加速;2)在Sbox生成算法中仿射變換過程需要對(duì)位進(jìn)行操作,每次仿射變換都需要把八位 二進(jìn)制數(shù)的每一位取出;采用指令getbit<dest> = <src>, <bitp0S>來完成取位操作;該 指令從通用寄存器src中取出第bitpos位,然后存入通用寄存器dest的最后一位,從而完 成取位操作;以上過程將在一個(gè)時(shí)鐘周期內(nèi)完成,從而對(duì)Sbox生成過程中的仿射運(yùn)算進(jìn)行 了加速;3)仿射變換過程中取出二進(jìn)制數(shù)的所有位后,需要進(jìn)行五元異或操作,并用操作后的 結(jié)果對(duì)原數(shù)進(jìn)行替換;采用指令 xor5<dest> = <srcl>, <src2>, <src3>, <src4>, <src5>, 該指令將srcl到src5所表示的通用寄存器中的內(nèi)容進(jìn)行異或操作,結(jié)果保存在dest所表 示的通用寄存器中;以上過程將在一個(gè)時(shí)鐘周期內(nèi)完成,從而對(duì)Sbox生成過程中的仿射運(yùn) 算進(jìn)行了加速;通過上述三條擴(kuò)展指令的運(yùn)行,加速AES-Sbox生成過程。
2.一種用于權(quán)利要求1所述的AES加密算法中Sbox生成指令優(yōu)化方法的指令集處理 器,其特征是,模型硬件結(jié)構(gòu)主要由數(shù)據(jù)存儲(chǔ)器(1)、代碼存儲(chǔ)器(3)、寄存器堆(2)和流水 線四部分組成;數(shù)據(jù)存儲(chǔ)器(1)地址空間定義在0x0000-0x7FFF范圍內(nèi),大小32K;代 碼存儲(chǔ)器C3)地址空間定義在0x8000-0xFFFF范圍內(nèi),大小為32Kbytes ;寄存器堆由 32個(gè)通用寄存器GPR
、1個(gè)取指寄存器FPR、1個(gè)堆棧指針寄存器SI5R和1個(gè)鏈接寄 存器LR組成;流水線(4)采用三級(jí)流水線取指流水線(5)、譯碼流水線(6)和執(zhí)行流水線 (7);流水線控制器(14)主要負(fù)責(zé)對(duì)跳轉(zhuǎn)指令進(jìn)行控制,跳轉(zhuǎn)指令只需要將跳轉(zhuǎn)地址存儲(chǔ) 在取指寄存器FPR中,不需要經(jīng)過執(zhí)行部件,然后接著對(duì)流水線的緩存部分進(jìn)行刷新,防止 執(zhí)行部件對(duì)跳轉(zhuǎn)指令進(jìn)行執(zhí)行;在處理器的譯碼、執(zhí)行部件中,除了通用指令譯碼部件(9) 和讀寫指令執(zhí)行部件(11)、邏輯算術(shù)指令執(zhí)行部件(1 外,還設(shè)有Sbox生成算法專用指令 的Sbox擴(kuò)展指令譯碼部件(10)和Sbox擴(kuò)展指令執(zhí)行部件(13),來對(duì)擴(kuò)展的指令進(jìn)行專門 的譯碼和執(zhí)行;在Sbox擴(kuò)展指令執(zhí)行部件(1 中,設(shè)有擴(kuò)展指令的執(zhí)行部件。
3.如權(quán)利要求2所述的用于AES加密算法中Sbox生成指令優(yōu)化方法的指令集處理器, 其特征是,所述擴(kuò)展指令ifand執(zhí)行部件包括2個(gè)與門、1個(gè)或門(18)、1個(gè)異或邏輯門QO) 和1個(gè)多路選擇器1(21),部件的執(zhí)行末端是整個(gè)處理器共用的通用寄存器堆0 ;與門 I (17)接受寄存器rO與rl的輸入,而該與門的電路輸出是rO和rl相與后的一個(gè)32位數(shù) 值;或門(18)完成的功能是對(duì)與門1(17)的輸出,S卩32位數(shù)值進(jìn)行逐位相與,而產(chǎn)生的輸 出是一個(gè)1位的數(shù)值;該輸出將與控制信號(hào)ifand_exe —起作為與門11(19)的輸入,而與 門11(19)的輸出將作為多路選擇器I 的輸入,來控制地址選擇;如果與門11(19)的輸 出是1,則多路選擇器I 將通用寄存器r2的地址傳遞給寄存器堆0),從而將通用寄存 器r2和r3通過異或邏輯門QO)的輸出結(jié)果賦給r2 ;如果與門II (19)的輸出是0,則多路選擇器I 將5位O傳遞給寄存器堆( ,即傳遞空地址,而處理器判斷是空地址后將不 進(jìn)行賦值操作。
4.如權(quán)利要求2所述的用于AES加密算法中Sbox生成指令優(yōu)化方法的指令集處理器, 其特征是,所述擴(kuò)展指令getbit執(zhí)行部件包括1個(gè)移位器,1個(gè)與門III (24)以及1 個(gè)多路選擇器11 ,而部件的執(zhí)行末端是通用寄存器堆0 ;移位器輸入端接收通 用寄存器rO和4位的i ;i的最大值為31,指示寄存器移動(dòng)的位數(shù);移位器移位后的 結(jié)果與0x00000001通過與門III(M)相與,而與門III(M)的輸出為一個(gè)32位的數(shù)值,而 該數(shù)值的最后一位保存著寄存器rO的第i位,而其它各位為0 ;控制信號(hào)getbit_exe控制 多路選擇器II (25),同時(shí)多路選擇器II (25)接受5位的O和通用寄存器rl的地址,來控制 地址選擇;當(dāng)控制信號(hào)為1時(shí),多路選擇器11 將rl的地址傳送給寄存器堆O),從而 將與門III 04)的輸出賦給rl ;如果控制信號(hào)為O時(shí),多路選擇器II 05)將5位O傳遞給 寄存器堆02),即傳遞空地址,而處理器判斷是空地址后將不進(jìn)行賦值操作。
5.如權(quán)利要求2所述的用于AES加密算法中Sbox生成指令優(yōu)化方法的指令集處理 器,其特征是,所述擴(kuò)展指令xor5執(zhí)行部件包括1個(gè)異或電路組06)和1個(gè)多路選擇器 III (27),而部件的執(zhí)行末端是通用寄存器堆0 ;異或電路組06)由一系列異或邏輯門 組成,它輸入端接收通用寄存器r2、r3、r4、r5、r6的數(shù)據(jù),輸出結(jié)果為5元異或后的值;控 制信號(hào)XOr5_eXe控制多路選擇器III (27),同時(shí)多路選擇器III (27)接受5位的O和通用 寄存器rl的地址,來控制地址選擇;當(dāng)控制信號(hào)為1時(shí),多路選擇器IIK27)將rl的地址 傳送給寄存器堆0),從而將異或電路組06)的輸出結(jié)果賦給rl ;如果控制信號(hào)為O時(shí),多 路選擇器III (27)將5位O傳遞給寄存器堆( ,即傳遞空地址,而處理器判斷是空地址后 將不進(jìn)行賦值操作。
全文摘要
本發(fā)明涉及一種AES加密算法中Sbox生成過程的指令優(yōu)化方法及其指令集處理器模型的設(shè)計(jì)。本發(fā)明為了加速AES算法中Sbox的生成過程,設(shè)計(jì)了三條新擴(kuò)展指令(1)ifand,,,,用來加速Sbox生成過程中的域內(nèi)乘法運(yùn)算;(2)getbit=,,用來加速仿射變換過程中的取位操作;(3)xor5=,,,,,用來加速仿射變換過程中的五元異或操作。以上3條指令都將在一個(gè)時(shí)鐘周期內(nèi)完成,而在傳統(tǒng)ARM處理器中,則分別需要多個(gè)時(shí)鐘周期,因此新指令起到了加速作用。本發(fā)明還根據(jù)上述新擴(kuò)展指令設(shè)計(jì)了一款與新指令集相對(duì)應(yīng)的專用指令處理器模型——SASIP。該處理器模型在硬件邏輯上實(shí)現(xiàn)了上述擴(kuò)展指令,因此是一款專門針對(duì)于AES-Sbox加速的處理器模型。
文檔編號(hào)G06F9/38GK102081514SQ20111002476
公開日2011年6月1日 申請(qǐng)日期2011年1月24日 優(yōu)先權(quán)日2011年1月24日
發(fā)明者李新, 賈智平, 陳仁海, 陳健 申請(qǐng)人:山東大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
克拉玛依市| 南平市| 吉木乃县| 太原市| 武功县| 延边| 三穗县| 贵阳市| 斗六市| 河间市| 泾川县| 长沙市| 金昌市| 灌南县| 邯郸市| 陈巴尔虎旗| 涞源县| 霍城县| 瑞昌市| 缙云县| 香格里拉县| 海阳市| 新乐市| 大方县| 电白县| 淮安市| 巴楚县| 平潭县| 汤阴县| 蒲江县| 集安市| 开原市| 北流市| 金华市| 桑日县| 云梦县| 巴马| 含山县| 余庆县| 平乡县| 江油市|