<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > RISC結構微處理器專(zhuān)用存儲單元的研究與實(shí)現

RISC結構微處理器專(zhuān)用存儲單元的研究與實(shí)現

作者: 時(shí)間:2017-06-04 來(lái)源:網(wǎng)絡(luò ) 收藏

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

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

1 應用分析

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

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

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

2 專(zhuān)用存儲單元的設計

2.1 整體結構

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

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

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

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

2.2 S盒存儲模塊

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

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

2.3 密鑰存儲模塊

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

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

2.4 置換及有限域存儲模塊

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

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

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

2.5指令設計

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

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

3 性能分析

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

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

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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>