《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 基于Benes網絡結構的比特置換在處理器中的實現

基于Benes網絡結構的比特置換在處理器中的實現

2008-03-31
作者:于學榮,戴紫彬

  摘 要: 比特置換" title="比特置換">比特置換操作在對稱密碼算法" title="密碼算法">密碼算法中使用頻率非常高,它所采用的非線性變換能夠實現高安全性。但現有的可編程處理器對單個比特的操作并不直接支持。就此問題,研究了比特置換操作在處理器上的高效靈活實現方法,提出了一種基于Benes網絡結構" title="網絡結構">網絡結構的硬件可實現的比特置換結構及其在不同指令集上的應用,并在FPGA上進行了驗證。
  關鍵詞: 比特置換 專用指令集微處理器 查找表" title="查找表">查找表 Benes網絡結構


  目前,通用微處理器大多是以字為單位進行操作的,它的指令結構ISA(Instruction-set Architecture)不支持小于一個字的數據操作。而單比特的置換操作在分組密碼算法中使用頻率非常高,是提高算法安全性的重要手段;而且比特置換操作在處理器中快速高效的特點,也將影響密碼處理的整體性能。但在現有的指令結構處理器中,任意的比特置換通常都采用邏輯操作或查找表的方式實現[1],即使一個簡單的置換操作(如循環移位),也需要多條指令才能完成。根據相關研究可知,一個n比特的置換操作,它的指令級復雜度是O(n),處理速度也將隨著n的增大而不斷降低。對于目前實時的網絡通信來說,這顯然是不可容忍的。因此,針對這一問題在一些專用指令集微處理器ASIP(Application-Specific Instruction-Set Processor)中,增加了特殊的置換指令,如多媒體處理器PLX中增加了MIX、MUX和Perm等指令[2],但這些指令并不能滿足n-bit數據的任意置換操作。本文提出了一種在處理器中實現比特置換的方法,給出了相應的比特置換指令及其操作結構。
1 密碼學中的比特置換及其一般實現方式
1.1 密碼學中的比特置換

  比較置換操作能使輸入數據中第i比特置換到輸出數據的第j比特上,而且置換過程中各位源數據之間不發生計算關系。輸入的n比特數據需要log2n比特位置信息或配置信息。
  置換是密碼算法中隱藏明文信息中冗余度的重要手段,通過位置置換可以實現明文到密文的擴散。置換按明密文映射關系分為三類:直接置換、擴展置換和壓縮置換。直接置換指明密文間是一一映射關系,且明文的每一位都有到密文的映射;擴展置換指明密文間為一對多的映射關系,它使得密文對明文的依賴性傳播得更快;壓縮置換指明密文間是一一映射關系,但并不是明文的每一位都有到密文的映射。置換輸入和輸出位寬根據算法和置換類型的不同而有所不同。例如DES算法中有64-bit初始置換IP、末尾置換IP-1以及輪運算中的32-bit P置換[3]
1.2 邏輯操作方式
  邏輯操作方式是指采用AND、OR、SHIFT等簡單邏輯操作實現復雜的比特置換操作。在此方式下,每對1 bit進行置換,處理器需要進行四步操作:①產生目標比特的MASK參數;②提取相應比特值(AND指令);③將該比特移至相應位置(SHIFT指令);④存儲到相應寄存器中(OR指令)。由上述過程可知,一個n-bit的置換操作需要4n條指令才能完成。盡管一些處理器中針對這一問題有所改進,將1 bit置換操作的指令壓縮到2條——汲取指令(EXTRACT)和放置指令(DEPOSIT),但n-bit置換操作仍需要2n條指令,處理性能沒有明顯提高。
1.3 查找表方式
  查找表方式是另一種實現比特置換的方法,它在速度上與邏輯操作相比有所提高,但需要大量的存儲空間放置控制信息。完成一個n-bit的置換操作需要m個查找表,每個表的容量為2n/m×nbit。以64-bit輸入數據為例,當m=1時,完成一次任意置換需要一個264×64bit的查找表,這在現有微處理器結構中是無法實現的;當m=8時,完成一次任意置換需要8個容量為28×64bit的查找表。每個表代表源操作數中連續8-bit的置換,表中除了8-bit置換的目標位置外,其他位置均為0,此時共需要23條指令來完成64-bit置換:8條Extract指令獲得表的索引值、8條Load指令置換相應比特、7條OR指令鏈接8個8-bit置換后的數據。這種方法相對于邏輯操作方式來說指令條數減少了很多,但它在實際執行中,Load指令往往遇到未命中Cache的情況,所以實現n-bit的置換操作需要的復雜度一般為O(n)。
2 比特置換操作的優化實現
2.1 Butterfly結構

  目前,Butterfly結構[4]及其他一些相似的結構都廣泛應用于信息處理領域中,如數字信號處理中的快速傅里葉變換(FFT)等。圖1(a)中給出了8-bit輸入的Butterfly結構,圖1(b)中給出了相應的Inverse Butterfly結構。


2.2 Benes網絡結構
  Benes網絡結構由一個Butterfly結構鏈接一個Inverse Butterfly結構組成,它是一種可重排網絡,能實現輸入端到輸出端的所有置換。完成n-bit置換操作需log2n級Butterfly變換和log2n級Inverse Butterfly變換。對于一個64-bit置換,則需要2log2n=12級變換,且每一級需要n/2-bit配置信息。在處理器中執行置換操作需要一條Butterfly指令和一條Inverse Butterfly指令及log2n個n-bit配置信息。
  圖2給出了一個8-bit輸入的Benes網絡結構,能完成(abcdefgh)到(cfghbdea)的置換。根據配置信息,它的置換過程如下:Butterfly指令完成(abcdefgh)->(abgdefch)->(gdabehcf)->(dgabehfc);Inverse Butterfly指令完成(dgabehfc)->(gcbaehcf)->(bdgacfeh)->(cfghbdea)。


2.3 比特置換指令
  比特置換單元內部設置了一定的緩存區,用于存儲配置信息,如圖3所示的B1、B2、B3和I1、I2、I3。由于不同ASIP中指令格式存在差異,這些內部緩存區是可選擇的。由于Inverse Butterfly指令類似于Butterfly指令,下面以Butterfly指令為例進行說明。對于超長指令字格式(VLIW),支持多操作數方式,不需要內部寄存器存儲配置信息,其指令可描述為:Butterfly Rd,Rs,B1,B2,B3。其中Rd為置換數據目的地址,Rs為置換數據源地址,B1、B2、B3為配置信息的外部存儲地址,即一條Butterfly指令包括Rs、B1、B2、B3四個源操作數。對于精簡指令格式(RISC),最多支持兩個源操作,相應指令可描述為:Butterfly Rd,Rs,B3。即需要將配置信息B1、B2、I1、I2在進行置換操作前裝入到置換單元內部緩存區中,而B3、I3則從外部存儲器中獲得。對于超標量結構處理器,假設其有兩路并行處理通路,則Butterfly指令與Inverse Butterfly指令可并行執行。對于所采用的不同指令格式,具體操作指令數也不同。


3 性能比較
  如果一個處理器可以支持比特置換操作,則其比特置換操作的延時必須與邏輯運算單元(ALU)的時鐘頻率相匹配。在ALU中主要是乘法器[5]延時較大,通常占用3~5個時鐘周期" title="時鐘周期">時鐘周期,因此只有使比特置換操作延時小于乘法運算延時,才能在不影響處理器整體性能的前提下,使處理器支持比特置換操作。而邏輯操作方式與查找表方式的比特置換實現方法所占用的時鐘周期都遠遠大于3個時鐘周期,如表1所示。當采用Benes網絡結構時,僅執行兩次Butterfly指令,在性能上得到了很大提高,使n-bit 的比特置換操作的復雜度從O(n)降至O(log(n))。


  比特置換是現代對稱密碼算法中的一個基本操作,但由于它比其他操作延時大且需要大量的控制信息,使得目前的通用處理器并不支持比特置換操作。本文針對上述兩個問題提出的解決方案,使其可以在處理器中快速實現,并以64-bit置換為例,在FPGA上對這一結構進行了驗證,結果僅占用700個邏輯單元,最高時鐘頻率達到了220MHz。采用ASIC實現時,其性能還將在此基礎上顯著提高,從而滿足網絡通信等方面的需求。
參考文獻
1 R B Lee,Z Shi,X Yang.Efficient permutation instructions for fast software cryptography[J].IEEE Micro,2001;21(6):56~69
2 Ruby B Lee,A Murat Fiskiran.PLX:A fully subword parallel instruction set architecture for fast scalable multimedia pro-cessing.Supported in part by HP,NSF and Kodak:2~3
3 Bruce Schneier著,吳世忠,祝世雄,張文政譯.應用密碼學[M].北京:機械工業出版社,2000:225~233
4 Xiao Yang,Manish Vachharajani,Ruby B Lee.Fast Subword Permutation Instruction Based on Butterfly Networks[J].In:Proceedings of SPIE,Media Processor 2000,January 2000:80~86
5 Zhijie Shi,Xiao Yang,Ruby B Lee.Arbitrary Bit Permuta-tions in One or Two Cycles[J].In:Proceedings of the IEEE 14th International Conference on Application-Specific Systems,Architectures and Processors,June 2003

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 美女私密福利第一导航 | 在线播放福利 | yellow中文字幕久久网 | 日韩中文字幕视频在线 | 国产视频一区二区三区四区 | 欧美在线欧美 | 成人免费看吃奶视频网站 | 国产成人精品午夜免费 | 黄色三级视频在线 | 欧美怡红院免费的全部视频 | 天天摸天天碰天天碰 | 一级黄毛片 | 午夜第一页 | 韩国理伦片最新免费观看 | 欧美高清国产在线观看 | 国产精品自拍一区 | 狼人久草| 日本黄大片 在线播放 | 在线播放性xxx欧美 在线播放你懂的 | www.黄色片 | 黄色最新网址 | 国产一级一国产一级毛片 | 成人欧美网站 | 窝窝影院午夜看片 | 在线观看色视频网站 | 最近的中文字幕大全免费版 | 日本一区二区三区高清福利视频 | 97碰视频人人做人人爱欧美 | 最好看的毛片 | 成人在线午夜 | 日韩免费一区二区三区 | 在线免费观看一级片 | 福利免费在线 | 男女羞羞视频网站免费 | 久久久久88色偷偷免费 | 国产视频h | 桃花岛亚洲精品tv自拍网站 | 国产精品免费一区二区三区四区 | 外国成人网在线观看免费视频 | 操操操干干 | 免费欧美 |