《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業(yè)界動態(tài) > 可適配多路并行移位操作指令及其硬件實現(xiàn)研究

可適配多路并行移位操作指令及其硬件實現(xiàn)研究

2008-12-10
作者:張 琰, 戴紫彬

??? 摘? 要: 在分析Rijndael、Serpent、MARS等41種分組密碼算法" title="密碼算法">密碼算法的基礎上,對分組密碼算法中移位的操作特征進行了研究,提出了可適配" title="適配">適配、支持多路并行執(zhí)行的移位操作指令" title="操作指令">操作指令,通過適配參數(shù),可完成固定或不定、循環(huán)或邏輯、左向或右向、不同位寬的移位操作,不同位寬的操作支持不同組數(shù)的并行執(zhí)行,并給出了其級聯(lián)" title="級聯(lián)">級聯(lián)及組合的指令模型,研究了移位操作的硬件實現(xiàn)算法,設計并實現(xiàn)了硬件單元,給出了其性能分析。?

??? 關鍵詞: 分組密碼; 可適配; 并行; 移位操作指令?

?

??? 分組密碼具有速度快、易于標準化和便于軟硬件實現(xiàn)等特點,已成為信息與網(wǎng)絡安全中實現(xiàn)數(shù)據(jù)加密、數(shù)字簽名、認證及密鑰管理的核心體制之一。隨著密碼學和芯片設計技術的發(fā)展,專用密碼處理器作為一個高速、靈活的實現(xiàn)方式已被廣泛認可。專用分組密碼處理器的指令集包含了較多運算指令,這些運算指令的靈活性與執(zhí)行效率在一定程度上決定了系統(tǒng)處理數(shù)據(jù)的靈活性與速度。移位操作具有較好的擾亂與擴散作用,又易于軟硬件實現(xiàn),所以其使用頻率非常高,因而移位操作指令的設計成為專用分組密碼處理器指令集設計的關鍵之一。本設計基于32位RISC微處理器,提出了可適配的、支持多路并行執(zhí)行的移位操作指令RPSI(Reconfigurable and Parallel Shift Instruction),能夠實現(xiàn)字節(jié)移位、亞字移位、字移位以及雙字的級聯(lián)移位,并通過指令組合實現(xiàn)長字移位。文章給出了相應移位運算單元的硬件設計,最后給出了移位運算單元的性能分析。?

1 分組密碼算法中的移位操作

??? 分組密碼算法中用到了大量的移位操作,但其執(zhí)行模式各不相同。?

??? 移位操作按照所移位數(shù)是否可變,分為固定移位和不定移位。基于常量的固定移位是分組密碼處理中一種最主要的移位模式,它使數(shù)據(jù)比特到達指定的位置,且算法不易遭受定時攻擊,包含移位位數(shù)及其補碼的寄存器內容也可抵抗能量攻擊[6],在Rijndael、DES、RC6等41種分組密碼算法中有25種算法使用了固定移位[1]。依賴于分組運算中間數(shù)據(jù)或子密鑰的不定移位模式,使不同子數(shù)據(jù)路徑上的分組之間有了較好的擾亂與擴散效果,因此具有較強的抵抗線性密碼分析的能力,目前已經(jīng)得到廣泛應用。所在分析的41種分組密碼算法中有10種算法使用了不定移位。表1給出了移位操作在常用分組密碼算法中的應用。?

?

?

??? 移位操作按照其移位方式,可分為循環(huán)移位方式和邏輯移位方式,其中,循環(huán)移位方式應用較多,如Serpent[2]、Twofish[3]、MARS[4]等算法均使用了循環(huán)移位。?

??? 移位操作按照移位方向,可分為左向移位和右向移位方式。?

??? 按照移位的操作位寬,可分為字節(jié)(8bit)移位、亞字(16bit)移位、字(32bit)移位、雙字(64bit)移位及長字(128bit)移位。除DES算法移位操作的操作位寬為28bit外,其他算法的操作位寬均為2n bit(n=34567)。考慮到一些專用領域,像軍事應用,有些專用密碼算法所使用的移位操作位寬已達到256bit, 但因當前分組密碼算法的處理位寬多為32bit,所以字移位操作的使用頻率相對較高。?

2 RPSI的設計及其可擴展、可級聯(lián)特性研究?

2.1 RPSI的設計?

??? 經(jīng)對分組密碼算法中移位操作特征的分析可知,完成一個指定的移位操作,需要確定其移位位數(shù)是否可變,采用何種移位方式、移位方向及移位操作位寬,所以移位操作指令的func域要包含的四個參數(shù)為:source、com、width、mode,加上標識移位位數(shù)是立即數(shù)的shift域,以及指令本身的操作數(shù)域rd、rs1及rs2,其指令格式如表2。

?

?

??? 對func域上的source、come、width、mode適配不同的值后,此指令就可以完成不同的移位操作。由于當前常用密碼算法的處理位寬多為32bit,且本設計是基于32位RISC微處理器,所以設定其操作數(shù)rd、rs1,rs2的位寬為32bit的寄存器數(shù),imm為5bit的立即數(shù),它根據(jù)參數(shù)source而定。?

??? sourse的值可適配為1或0。適配為0時,代表所進行的操作為固定移位,imm為5bit的立即數(shù);適配為1時,代表所進行的操作為不定移位,移位位數(shù)存放在rs2中,rs2為32bit的寄存器數(shù)(取后5位);mode為移位模式,00時為邏輯左移,01時為邏輯右移,10時為循環(huán)左移,11時為循環(huán)右移。width是8bit、16bit或32bit移位位寬的選擇。width為00時,表示執(zhí)行字節(jié)移位,一條指令可并行完成四組字節(jié)移位;width為01時,執(zhí)行亞字移位,一條指令可并行完成兩組;為10時,執(zhí)行字移位。例如:指令IROLm Rd, Rs1, #3,它所完成的操作為:將寄存器Rs1中的32bit數(shù)按8bit分四組,分別進行固定的循環(huán)左移,移位位數(shù)為3;同理,進行相應的不定移位操作時,其指令為ROLm Rd, Rs1, Rs2,其移位位數(shù)由Rs2寄存器數(shù)的低5bit指定。圖1(a)、圖1(b)給出了當width為8時,執(zhí)行四種字節(jié)移位操作指令的功能示意圖,指令將輸入的32bit數(shù)據(jù)分為4個字節(jié),每個字節(jié)自身獨立地進行指定模式的移位操作。圖1(c)、圖1(d)給出了當width為32bit時的字移位操作功能示意圖。

?

?

2.2 RPSI的級聯(lián)執(zhí)行?

??? 隨著分組密碼算法主流分組寬度的增加,僅在32bit數(shù)據(jù)路徑上的移位操作已不能滿足要求,但由于RISC處理器32位位寬的局限性,不能改變其32bit的數(shù)據(jù)路徑,因此在進一步研究移位操作的基礎上,提出了移位操作指令的級聯(lián)執(zhí)行模式,即64bit級聯(lián)移位。?

??? 假設要執(zhí)行的操作為64bit循環(huán)左移,移位位數(shù)為m,其指令為CROL? Rd, Rs1, Rs2, #imm,這時指令格式中func域的com值是1,表示級聯(lián)。Rs1、Rs2是64bit源操作數(shù),Rs1中存放的是64bit中高32bit,Rs2中存放的是64bit中低32bit,Rd為目的操作數(shù),運算后存放的是64bit移位的高32bit結果。下一個時鐘(第二步),交換64bit的高低32bit,運算后Rd存放64bit移位的低32bit結果。?

??? 這樣就在32bit的數(shù)據(jù)路徑上實現(xiàn)了64bit的移位操作。其功能示意圖如圖2所示。?

?

?

??? 同理可執(zhí)行循環(huán)右移操作。但在執(zhí)行級聯(lián)的邏輯移位操作時有所不同,進行邏輯左移時,第一步與循環(huán)移位相同,在第二步時,Rs1中存放的是64bit中低32bit,Rs2中存放的操作數(shù)是全零;進行邏輯右移時,在第一步時,Rs1中存放的是64bit中高32bit,Rs2中存放的操作數(shù)全為零,第二步與循環(huán)移位相同。?

2.3 RPSI的組合執(zhí)行?

??? 某些密碼算法的移位操作位寬是128bit,例如IDEA算法的子密鑰生成中,就用到了長字移位操作。在級聯(lián)移位指令的基礎上,通過指令的組合實現(xiàn)128bit移位操作,或者更長位寬的移位操作,例如:要完成128bit的移位,需要執(zhí)行四條級聯(lián)移位指令。?

??? 以128bit邏輯左移5位為例,假設R4&R3&R2&R1表示128bit待移位的數(shù)據(jù),則執(zhí)行指令CSHL? Rd, R1, Rs, #5(Rs中的數(shù)是全零),得到移位后最終結果的31~0位;執(zhí)行指令CSHL? Rd, R2, R1, #5,得到移位后最終結果的63~32位,執(zhí)行指令CSHL? Rd, R3, R2, #5,得到移位后最終結果的95~64位;執(zhí)行指令CSHL Rd, R4, R3, #5,得到移位后最終結果的127~96位。?

??? 再以128bit循環(huán)左移5位為例,假設R4&R3&R2&R1表示128bit待移位的數(shù)據(jù),則執(zhí)行指令CROL Rd, R1,R4,#5,得到移位后最終結果的31~0位,執(zhí)行指令CROL Rd,R2,R1,#5,得到移位后最終結果的63~32位;執(zhí)行指令CROL Rd,R3,R2,#5,得到移位后最終結果的95~64位;執(zhí)行指令CROL Rd,R4,R2,#5,得到移位后最終結果的127~96位。?

??? 同理,可以用這種多條指令組合的方式實現(xiàn)256bit的移位。128bit移位操作功能示意圖如圖3所示。

?

?

3 RPSI的硬件實現(xiàn)及其性能分析?

3.1 移位操作硬件實現(xiàn)算法研究?

??? 傳統(tǒng)的實現(xiàn)方法中,基于線性反饋移位寄存器LFSR是實現(xiàn)移位操作的一種主要方式,LFSR通常以移1位運算為基礎,循環(huán)移k位通過k次調用移1位基本運算實現(xiàn),占用k個時鐘周期,移位速度受移位位數(shù)的影響。因此對于移位位數(shù)較大的操作,采用LFSR進行循環(huán)移位運算很難滿足高速數(shù)據(jù)處理的需求。?

??? 循環(huán)移位操作還可以看作是一類特殊的置換,采用基于BENES網(wǎng)絡的實現(xiàn)方法。但是,由于移位位數(shù)k的不確定性,導致配置信息生成電路較為復雜,不利于軟硬件實現(xiàn)。下面在對循環(huán)移位及邏輯移位分別研究的基礎上,給出了基于數(shù)據(jù)選擇器" title="數(shù)據(jù)選擇器">數(shù)據(jù)選擇器的實現(xiàn)方法。?

??? (1) 循環(huán)移位的實現(xiàn)?

??? 令移位位數(shù)k=kn-12n-1+kn-22n-2+…+…k12+k0,則循環(huán)移位可以表示為: y=RSH(a,k),y的第j位y(j)可以表示為: y(j)=a((j±k)modN)?

其中,執(zhí)行左移操作時操作符為“-”,執(zhí)行右移操作時操作符為“+”,N為操作數(shù)a的位寬。由此可得:?

???

即:任意位的循環(huán)移位操作分解為若干加減2i置換操作的級聯(lián)。對于循環(huán)左移而言,循環(huán)移位操作可以分解為減2i置換操作。?

??? 循環(huán)左移操作算法描述:?

Input:操作數(shù)a, k=kn-12n-1+ kn-22n-2+…+k12+k0?? Output:y ?

??? (1) y←a?

??? (2) For i=n-1 downto 0 do?

??? (3) For j= 0 to N-1 do?

??????? ?If ki=1 then ?

??????????? ?If j≤k then b(j)=y((j-2i)modN) ?

???????????? else b(j)=0?

?????????????else b(j)=y(j)?

??? (4) y=b Return (y)?

??? 當N=2n時,循環(huán)左移操作可以采用n級數(shù)據(jù)選擇器實現(xiàn),每一級使用N個二選一數(shù)據(jù)選擇器,共計需要nN個二選一數(shù)據(jù)選擇器,系統(tǒng)的延遲相當于n級二選一數(shù)據(jù)選擇器的延遲。循環(huán)右移操作可以看作循環(huán)移位位數(shù)為N-k的循環(huán)左移操作,由此可以構造如圖4所示的循環(huán)移位結構。

?

?

??? (2) 邏輯移位的實現(xiàn)?

??? 對于邏輯左移,上述算法可以修改如下:?

Input:操作數(shù) a,移位位數(shù)?k=kn-12n-1+ kn-22n-2+…+k12+k0? Output:y ?

???? ① y←a?

???? ② For i=n-1 downto 0 do?

???? ③?For j= 0 to N-1 do?

???????????If ki=1 then ?

??????????????If j≤k then b(j)=y((j-2i)modN) ?

???????????else? b(j)=0?

????????else? b(j)=y(j)?

?? ? ④ y=b Return (y)?

??? 可以采用類似的方法對邏輯右移操作算法進行修改,本文不再贅述。在硬件實現(xiàn)時,可以通過將上述循環(huán)移位電路的每一個數(shù)據(jù)選擇器擴展為四選一實現(xiàn)支持循環(huán)移位和邏輯移位的電路。?

3.2 移位操作硬件單元的實現(xiàn)及性能分析?

??? 根據(jù)基于數(shù)據(jù)選擇器的實現(xiàn)原理,用verilog語言實現(xiàn)了32bit數(shù)據(jù)路徑上的移位操作硬件單元,用modelsim SE 6.0仿真軟件進行了功能仿真,對于RPSI所指定的功能,均能正確完成。使用Design Compiler綜合工具進行了綜合,在0.18μm工藝下綜合結果如表3。?

?

?

??? 由前面分析可知,要完成32bit數(shù)據(jù)路徑上RPSI不同模式的移位操作,只需在圖4的每個選擇輸入上加一個四選一的數(shù)據(jù)選擇器,其關鍵路徑即為一級四選一數(shù)據(jù)選擇器和六級二選一數(shù)據(jù)選擇器的路徑延遲。?

??? 移位操作是密碼算法中常用的運算,特別是在密鑰調度中用于子密鑰的生成。本文在分析Rijndael、DES、RC6等41種分組密碼算法的基礎上,首先對分組密碼算法中移位運算的操作特征進行了研究,結合移位操作特征,提出了可適配的、支持多路并行執(zhí)行的RPSI;通過適配操作特征域上的source、com、width、mode四個參數(shù),可完成固定或不定、循環(huán)或邏輯、左向或右向、不同位寬下的移位操作,能夠支持字節(jié)移位、亞字移位、字移位以及雙字的級聯(lián)移位,并通過指令組合實現(xiàn)長字移位;設計并實現(xiàn)了其硬件單元,給出了硬件單元的性能分析。?

參考文獻?

[1] ELBIRT A J. Reconfigurable computing for symmetric-key?algorithms. PhD thesis, Electrical and Computer Engineering?Department University of Massachusetts Lowell,2002,(4): 22.

[2] Ross Anderson Eli Biham Lars Knudsen Serpent: A Proposal?for the Advanced Encryption Standard http://www.ii.uib.no/~larsr/?

[3] Bruce Schneier John Kelsey Doug Whiting Twofish: A?128-Bit Block Cipher http://www.counterpane.com/twofish.html?

[4] IBM Corporation Carolynn Burwick Don Coppersmith Edward?D’Avignon, MARS-a candidate cipher for AES, Revised,?1999,(9):22.?

[5] FISKIRAN A M, LEE R B. Fast parallel table lookups to ? accelerate symmetric-key cryptography, Proceedings of the?International Conference on Information Technology Coding??and Computing (ITCC), Embedded Cryptographic Systems?Track, 2005,(4):4-6.? Las Vegas, Nevada, USA?

[6] 彭巍.一種分組密碼算法測試平臺設計.電子科技大學碩士學位論文,2004,12.?

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美日韩成人免费| 伊人久久噜噜噜躁狠狠躁| 久久久久久有精品国产| 亚洲欧美国产不卡| 这里只有精品在线播放| 亚洲欧洲久久| 亚洲国产精品视频| 亚洲大胆av| 久久精品国产亚洲aⅴ| 欧美亚洲视频| 欧美亚洲综合网| 亚洲欧美日韩国产精品| 亚洲一线二线三线久久久| 亚洲视频在线一区| 一区二区日本视频| 在线亚洲精品福利网址导航| 亚洲久久一区| 艳女tv在线观看国产一区| 一区二区三区国产在线观看| 一本色道久久88亚洲综合88| 99视频精品免费观看| 99国产精品久久久久久久| 99v久久综合狠狠综合久久| 一本色道久久加勒比精品| 在线亚洲成人| 午夜精品影院| 欧美在线视频a| 亚洲国产老妈| 日韩视频在线一区二区| 中文日韩在线| 亚洲欧美在线看| 久久疯狂做爰流白浆xx| 久久免费少妇高潮久久精品99| 久久av红桃一区二区小说| 久久久女女女女999久久| 免费观看欧美在线视频的网站| 欧美第一黄色网| 欧美日韩天堂| 国产欧美日韩91| 狠狠爱成人网| 亚洲精品中文字幕在线| 亚洲天堂网站在线观看视频| 新狼窝色av性久久久久久| 久久国产加勒比精品无码| 亚洲欧洲在线观看| 亚洲视频电影在线| 欧美中文字幕不卡| 欧美国产极速在线| 国产精品爱久久久久久久| 国产亚洲在线| 91久久综合| 亚洲一区欧美二区| 亚洲观看高清完整版在线观看| 99精品国产99久久久久久福利| 亚洲网站在线| 久久久国产精品一区二区中文 | 亚洲欧美日韩国产综合精品二区| 久久黄金**| 欧美高清自拍一区| 欧美午夜女人视频在线| 国产一区二区三区在线观看视频| 亚洲精品1区2区| 亚洲欧美日韩精品一区二区 | 日韩午夜在线观看视频| 午夜天堂精品久久久久| 欧美77777| 国产精品最新自拍| 亚洲欧洲一区二区在线观看 | av不卡免费看| 久久精品理论片| 欧美日韩免费观看中文| 国内精品久久久久影院优| av成人天堂| 91久久在线播放| 欧美一区二区三区四区在线| 欧美精品久久久久久久久久| 国产亚洲精品自拍| 一区二区日韩精品| 亚洲三级视频在线观看| 性欧美大战久久久久久久免费观看| 欧美va亚洲va日韩∨a综合色| 国产精品永久免费在线| 亚洲美女免费视频| 亚洲黄色尤物视频| 性高湖久久久久久久久| 欧美日韩成人精品| 在线观看视频免费一区二区三区| 亚洲欧美日韩国产综合在线| 亚洲视频一二区| 欧美高清视频| 伊人成人在线视频| 午夜日韩视频| 亚洲女人天堂成人av在线| 欧美人成在线视频| 在线欧美一区| 久久爱91午夜羞羞| 欧美怡红院视频| 国产精品国色综合久久| 亚洲国产日韩欧美综合久久| 亚洲第一在线视频| 欧美与欧洲交xxxx免费观看| 国产精品av久久久久久麻豆网| 91久久精品国产91久久性色tv| 亚洲福利视频专区| 久久久久久久激情视频| 国产欧美日韩不卡| 亚洲欧美国产精品va在线观看| 亚洲手机在线| 欧美日韩国产成人在线91| 亚洲大胆美女视频| 久久精品国产99| 久久精品国产亚洲aⅴ| 国产啪精品视频| 亚洲欧美视频在线| 性色一区二区三区| 国产精品久久久久久影院8一贰佰| 亚洲蜜桃精久久久久久久| 日韩小视频在线观看专区| 免费欧美日韩| 亚洲第一偷拍| 亚洲人成人一区二区在线观看| 免费短视频成人日韩| 在线观看欧美成人| 亚洲国产欧美不卡在线观看| 久久久久国色av免费看影院| 国产亚洲一区精品| 久久精品国产免费看久久精品| 久久青草欧美一区二区三区| 黄色精品一二区| 亚洲高清在线播放| 欧美成人日本| 亚洲精品影院| 亚洲一区二区成人| 国产精品国产自产拍高清av王其| 亚洲自拍偷拍麻豆| 久久精品噜噜噜成人av农村| 韩国在线一区| 亚洲精品欧美精品| 欧美日韩国产一级片| 亚洲小视频在线观看| 欧美一区久久| 狠狠色丁香婷婷综合久久片| 亚洲黄色三级| 欧美日韩一区二区在线观看| 亚洲一区国产| 久久久国产午夜精品| 亚洲第一在线视频| 一区二区三区蜜桃网| 国产精品xxx在线观看www| 午夜国产一区| 免费日韩av片| 99精品国产在热久久婷婷| 欧美亚洲网站| 一区二区亚洲欧洲国产日韩| 亚洲精品一区二区三区四区高清 | 国产综合香蕉五月婷在线| 亚洲国内精品在线| 欧美成人视屏| 亚洲特级毛片| 久久深夜福利免费观看| 亚洲精品乱码久久久久久黑人| 亚洲欧美另类久久久精品2019| 国产在线拍揄自揄视频不卡99| 亚洲美女在线视频| 国产精品福利在线观看| 久久国产精品99精品国产| 欧美激情一区二区三区高清视频| 一本色道久久综合亚洲精品婷婷| 久久精品人人做人人爽| 亚洲激情网站| 欧美一区二区日韩一区二区| 揄拍成人国产精品视频| 亚洲无线视频| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲视屏在线播放| 韩国三级电影一区二区| 亚洲一区二区伦理| 狠狠色综合色区| 亚洲中字黄色| 国产一区二区三区日韩| 99综合在线| 国语自产在线不卡| 在线综合+亚洲+欧美中文字幕| 国产亚洲一区二区三区| 亚洲午夜性刺激影院| 狠狠色丁香婷综合久久| 亚洲欧美日本伦理| 亚洲激情影院| 久久久久国产成人精品亚洲午夜| 99视频精品免费观看| 蜜臀a∨国产成人精品| 亚洲欧美国产高清| 欧美日韩精选| 亚洲风情在线资源站| 国产精品福利在线| 亚洲美女网站| 狠狠狠色丁香婷婷综合激情| 销魂美女一区二区三区视频在线| 亚洲欧洲一区二区三区在线观看| 久久久97精品|