a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > RISC結構微處理器專用存儲單元的研究與實現

RISC結構微處理器專用存儲單元的研究與實現

作者: 時間:2017-06-04 來源:網絡 收藏

采用通用微處理器實現密碼算法雖然靈活性好,但性能不佳,實現速度也較慢。而采用專用ASIC針對特定密碼算法進行加速,靈活性不高。RISC結構密碼專用微處理器設計是面向通用微處理器與高效密碼處理器的結合,在RISC結構中整合了一個密碼運算單元,并且這些運算單元是基于可重構的,對它配置不同的信息可以完成不同的算法,該運算單元與算術運算單元ALU并行工作,并訪問同一個寄存器文件[1]。RISC體系結構作為計算機設計策略的一種類型己愈來愈多地應用于計算機的體系設計中。RISC結構的指令系統中,采用大量的寄存器——寄存器操作指令,但只有load/store指令可以訪問內存。從內存中取出的數據要送到寄存器,在寄存器之間對數據進行快速處理,從而避免了由于頻繁訪問內存而降低執行速度[2]。RISC指令尋址模式和指令操作都相對簡單,這雖然有利于簡化微結構實現,但是在進行大量數據流處理特別是密碼運算時,由于它需要存儲較多的數據,所以必須頻繁地利用load/store指令控制數據的進出,這需要占用較多的指令和較多的時鐘周期。因此,針對上述問題,本文在32位RISC密碼專用微處理器中設計了一個專用用來存放密碼運算的相關數據,在密碼運算時可以對其直接訪問,大大減少了指令條數,提高了密碼運算效率。

本文引用地址:http://www.j9360.com/article/201706/348383.htm

1 應用分析

通過對DES、RIJNDAEL、SERPENT、RC6、IDEA等算法的分析,很多不同算法具有相同或相似的基本操作運算,或者說,同一基本操作運算在不同的算法中出現的頻率也不相同,如表1所示。

在表1所示常見操作中:S盒變換需要用到查找表LUT數據,算法不同,S盒查找表的大小也不相同,例如,DES是8個6~4的查找表,AES是1個8~8的查找表;位置換操作需要用到相關的控制信息,不同的置換其控制信息也不相同,例如,DES算法就用到了六種置換的控制信息;有限域乘法運算中需要對不可約多項式和乘數多項式進行配置;密碼運算中還有密鑰及運算生成的子密鑰數據。由此可見,密碼運算中需要存儲大量的不同類型的數據,每種數據的存儲量大小也各不相同。這就決定了基于RISC結構的密碼專用微處理器需要具有較靈活的存儲結構。

因此,為了提高密碼運算的執行效率,在密碼微處理器中可以設計一個內部的專用,用來存儲密鑰和一些特定的配置數據。對專用的訪問要結合密碼運算單元的特點才能具有較好的靈活性。因此在本設計中,微處理器完成密碼運算時使用專用存儲單元,而完成其他運算時則使用數據存儲器。這樣,既具有了其專用性又保留了其通用性,能夠高效地實現密碼算法[3]。

2 專用存儲單元的設計

2.1 整體結構

密碼專用微處理器在支持原load指令和store指令訪問數據存儲單元的基礎上,硬件上又加入了專用存儲單元的訪問邏輯。專用存儲單元與數據存儲單元分離獨立地存儲相應的數據,這樣就減少了大量RISC結構中難以避免的寄存器與存儲單元交換數據的指令[4]。密碼專用微處理器的整體結構如圖1所示。

專用存儲單元放置于IF/ID極間寄存器之后,在進行密碼運算時,操作數從寄存器堆中取出,對于密碼運算的配置信息,則從專用存儲單元中取出直接進入IU運算單元完成配置。

專用存儲單元共分為三個模塊:S盒模塊、密鑰模塊、bit置換和有限域模塊,每一個模塊又由一些地址位寬和數據位寬各不相同的RAM組成,如圖2所示。

圖2中,存放S盒LUT數據部分由8個28×8的RAM構成,存放密鑰部分由1個27×32的RAM構成,存放置換和有限域配置信息部分由6個24×32的RAM構成。三個存儲模塊統一編址,對于S盒存儲模塊前2bit進行譯碼,后8bit進行尋址;對于密鑰存儲模塊前3bit進行譯碼,后7bit進行尋址;對于存儲置換和有限域模塊,前6bit進行譯碼,后4bit進行尋址。訪問專用存儲單元時由Opcode及指令字中其他字段參加譯碼來控制對不同數據的訪問。

2.2 S盒存儲模塊

通過對DES、AES、IDEA等41種算法分析可知,有30種算法使用了S盒替代操作,共計十種不同類型的S盒,十種S盒中為二種以上不同算法所使用的僅有4×4、6×4、8×8、8×32 四種S盒,其他六種不同類型的S盒查表操作可以采用以上四種S盒查表操作或邏輯運算實現[5]。本設計的S盒實現方式是基于查找表LUT(Look Up Table)的實現方式,將S盒查找表存儲在RAM中,操作數作為讀地址。這種方法占用較多存儲單元,但運算速度快,最主要的是它具有可配置性,能滿足當前多種密碼運算的需要,并且不進行配置時它本身不帶有任何算法信息,使得本身更具有安全性。S盒電路結構如圖3所示。

S盒代替電路在設計上考慮支持8×8、8×32、4×4、6×4四種查表模式,采用RAM組的設計方式,為支持32bit的數據路徑,采用了4個雙端口28×8的RAM組并聯電路,即2個28×8的RAM構成一個RAM組。

2.3 密鑰存儲模塊

密鑰存儲模塊是由一個27×32的RAM組成,通過對如表2所示的多種分組密碼算法密鑰容量的統計和分析可知,深度為128的存儲容量可以滿足密碼運算中密鑰的存儲要求。

在AES算法中每輪要進行輪密鑰加,即“異或”運算;在DES算法中,密鑰要進行64位減至56位的置換,然后每一輪都要進行移位和壓縮置換;在IDEA算法中,在每一輪運算中其子密鑰要進行多次的“異或”、模加、模乘。可見密鑰或子密鑰在密碼運算中參與了多種運算。為了減少硬件設計的復雜度,本設計將取出的密鑰放入寄存器堆中,以便能靈活地和其他數據進行各種運算。

2.4 置換及有限域存儲模塊

置換作為擴散的首要手段,在密碼算法中得到了廣泛應用。例如:在DES中有六種不同種類的置換;Twofish和Serpent中有兩種不同種類的置換。本設計的bit置換單元是基于64×64的omega-flip網絡,該網絡共有11級,在進行數據置換之前,要先對每一級的開關邏輯進行配置。一級omega-flip網絡需要N/2bit(即32bit)控制信息決定該級開關的狀態(交叉或直通),所以該置換網絡進行一次置換需要11個控制信息。如果用通用指令實現這些控制信息,則至少需要6條指令才能完成配置。

分組密碼應用中,有限域乘法運算主要在GF(28)、GF(27)及GF(29)域上。其中,在GF(28)域上的乘法運算最為常見,占到了全部有限域乘法的54.14%。有限域乘法電路運算前需要對乘數多項式和不可約多項式進行靜態配置,每組136bit,其中128bit為乘法矩陣配置數據,8bit作為不可約多項式配置數據。

由以上分析可知,本設計的bit置換和有限域模塊由6個24×32的RAM組成,它一次可以存放六種置換所需要的控制信息,四種有限域運算所需的128bit乘法矩陣配置數據和8bit不可約多項式配置數據。6個RAM都是雙端口(即2個讀端口),所以給出2個相同的讀地址,6個RAM就可以同時讀出12個配置數據。64位的bit置換一次需要的11個控制信息只用一條指令就可以完成配置,大大提高了密碼運算速度。

2.5指令設計

密碼專用微處理器擴展了指令集,增加了密碼指令。加入專用存儲單元后,由于專用存儲單元存放的主要是配置數據,結合運算單元的特點,在擴展的專用密碼指令中對原指令格式進行了改進,使之更適合于密碼算法。改進后該指令字中的低11位被作為5位的shift域和6位的func域,其指令格式如表3所示。三個模塊的數據都由CONFIGURE指令存儲到專用存儲單元中,密鑰和S盒可以直接參與運算,對于置換和有限域乘法,在其密碼運算指令的shift域中添加專用存儲單元的地址,運算時再將配置信息動態配置到IU運算單元中,這樣配置和運算用一條指令就可以完成。

表3中:Op為操作碼,Rd為目的寄存器地址,Rs1和Rs2為源寄存器地址。type(1)作為區分bit置換和有限域。addr(4)為置換和有限域模塊4bit地址,該4bit地址與該地址加1為bit置換和有限域模塊6個RAM的2個讀地址,讀出的數據直接送入運算單元內部對相應模塊進行配置。sboxtype(2)2bit為S盒類型選擇,用來區分8×8、8×32、4×4及6×4四種S盒。Sboxa/b(1)這1bit是訪問S盒時用來選擇RAM組a或RAM組b。

3 性能分析

指令條數是影響性能的關鍵因素,設計專用密碼處理指令的目的就是減少實現過程中的指令條數。由于本設計所基于指令的CPI都為1,故可以通過算法所需的指令數來反映系統處理明文的效率。表4給出了與其他兩種處理器所需指令條數的對比情況,表中的I386為32位指令編碼的通用處理器,PVCP[6]為國防科技大學研制的一款向量結構的密碼處理器。

從表4可以看出,本設計的指令條數與通用處理器指令條數相比減少了78%~90%,與功能相似的向量處理器相比,指令條數也減少了許多。

通過對RISC結構進行研究可以發現,寄存器—寄存器的指令特性極大地降低了微處理器對大量存儲器中數據的處理效率。因此,結合密碼運算的特點及系統需求,本設計將重點放在RISC結構密碼專用微處理器在實現密碼算法過程中如何減少指令條數上。本文在RISC密碼專用微處理器中加入了專用存儲單元,用來存儲和密碼處理相關的數據,如密鑰、S盒運算中的LUT數據、有限域乘法中的配置數據及bit置換所用到的控制信息,并擴展和改進了其相應的指令集,減少了指令條數,提高了運算效率。



評論


相關推薦

技術專區

關閉