文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.190275
中文引用格式: 陳琳,,唐俊,曲彤洲,,等. 高速可重構(gòu)高資源利用率統(tǒng)一模單元設(shè)計(jì)與研究[J].電子技術(shù)應(yīng)用,,2019,45(10):58-65.
英文引用格式: Chen Lin,,Tang Jun,,Qu Tongzhou,et al. High-speed reconfigurable advanced-utilization unified modular operation unit[J]. Application of Electronic Technique,,2019,,45(10):58-65.
0 引言
隨著科技的飛速發(fā)展,,信息技術(shù)已經(jīng)成為了人們生活工作不可或缺的一部分,,隨之而來(lái)的信息安全隱患成為了當(dāng)前亟待解決的問(wèn)題。公鑰密碼體制在信息安全領(lǐng)域的重要性不言而喻,,橢圓曲線密碼體制在經(jīng)過(guò)多年的研究成熟之后逐漸成為了新一代的公鑰密碼標(biāo)準(zhǔn),。由于高度密集的運(yùn)算特性,公鑰密碼處理器在速度,、靈活性,、面積資源消耗等方面存在著較大矛盾。本文基于對(duì)橢圓曲線體制層次化運(yùn)算特性的深入研究,,通過(guò)對(duì)底層運(yùn)算進(jìn)行算法優(yōu)化和單元結(jié)構(gòu)兼容,,設(shè)計(jì)了一種基于改進(jìn)的radix-4交錯(cuò)模乘算法的統(tǒng)一模運(yùn)算單元,達(dá)到提高橢圓曲線處理器運(yùn)算速度,、靈活性和優(yōu)化底層單元資源消耗的目的,。本文對(duì)模加減和模除運(yùn)算進(jìn)行了優(yōu)化和基于模乘單元的兼容設(shè)計(jì),。模除的結(jié)構(gòu)復(fù)雜且調(diào)用率低,傳統(tǒng)的兼容設(shè)計(jì)思路是在模除單元基礎(chǔ)上實(shí)現(xiàn)模乘和模加減,,或者在模乘基礎(chǔ)上擴(kuò)展結(jié)構(gòu)實(shí)現(xiàn)模除,。這種設(shè)計(jì)往往出現(xiàn)資源浪費(fèi)的問(wèn)題。本文提出的改進(jìn)的radix-4交錯(cuò)模乘單元,,能夠在不增加大位寬加減運(yùn)算結(jié)構(gòu)的基礎(chǔ)上,,直接適配plus-minus模除和模加減,有效解決了資源浪費(fèi)的問(wèn)題,。
1 模乘加算法分析
1.1 算法兼容性研究
二元域與素?cái)?shù)域運(yùn)算的差異體現(xiàn)在運(yùn)算規(guī)則上,,素?cái)?shù)域的所有運(yùn)算都是有進(jìn)位的,而二元域的運(yùn)算則約束在對(duì)應(yīng)位之中不存在進(jìn)位,,只是按位異或操作,。目前業(yè)內(nèi)出現(xiàn)了很多支持雙域操作的結(jié)構(gòu)統(tǒng)一的運(yùn)算架構(gòu),主要的策略有三種,,一種為在素?cái)?shù)域運(yùn)算架構(gòu)基礎(chǔ)上加入部分二元域?qū)S玫慕Y(jié)構(gòu),,以此來(lái)實(shí)現(xiàn)雙域操作;一種則是在主流的CSA加CPA結(jié)構(gòu)基礎(chǔ)上,,直接取用CSA的本位作為二元域輸出,;一種為直接大素?cái)?shù)域進(jìn)位加法器中加入進(jìn)位屏蔽信號(hào),來(lái)實(shí)現(xiàn)無(wú)進(jìn)位加法,,即二元域加法,。總之,,二元域與素?cái)?shù)域運(yùn)算無(wú)論是在算法層次還是硬件結(jié)構(gòu)層次都具有優(yōu)秀的兼容性,。
綜上所述,有限域?qū)舆\(yùn)算無(wú)論是在模運(yùn)算內(nèi)部操作還是運(yùn)算域方面都具有較好的兼容性,。圖1是模運(yùn)算系統(tǒng)的兼容關(guān)系,。如圖所示,模乘加完全兼容于模乘與模逆算法,。但是,,模乘與模逆的兼容性關(guān)系根據(jù)算法的不同有可能是:模乘完全兼容模逆、模逆完全兼容模乘或二者部分兼容,。素?cái)?shù)域的運(yùn)算均能較好地兼容相應(yīng)的二元域運(yùn)算,。以上主要討論了有限域?qū)舆\(yùn)算在單元數(shù)據(jù)路徑上的結(jié)構(gòu)兼容性。而它們?cè)诖鎯?chǔ)單元方面也有較好的兼容性,。有限域?qū)痈鞣N運(yùn)算所涉及到輸入數(shù)據(jù)中間變量情況如表1所示,。
由表1中信息可知,三種運(yùn)算的數(shù)據(jù)輸入均為相同規(guī)格輸入,,可以復(fù)用相同的寄存器,,中間變量牽扯到的U、V在三種運(yùn)算中皆為運(yùn)算位寬加1~3 bit的進(jìn)位,,因此結(jié)構(gòu)完全可以復(fù)用,,而模逆/除運(yùn)算中的標(biāo)志位β、α根據(jù)它們?cè)谒惴ㄖ械亩x,,其極限數(shù)據(jù)長(zhǎng)度有限,,與A、B,、p,、U、V等數(shù)據(jù)長(zhǎng)度不在同一量級(jí),。因此三種運(yùn)算所涉及的寄存器可以達(dá)到很高的復(fù)用率,。為了適配NIST規(guī)定的標(biāo)準(zhǔn),本文設(shè)計(jì)的運(yùn)算位寬要兼容576 bit以內(nèi)的任意長(zhǎng)度的雙域運(yùn)算,。
1.2 算法分析及改進(jìn)
如表2所示,,算法1所述的基交錯(cuò)模乘,在運(yùn)算過(guò)程中進(jìn)位鏈太過(guò)復(fù)雜,,如“C=C+b0·A+b1·2·A(mod p)”要進(jìn)行三個(gè)數(shù)據(jù)的算術(shù)加法和模約減運(yùn)算,。且其中一項(xiàng)“0<b1·2·A<2p”,導(dǎo)致這一步運(yùn)算的結(jié)果0<C<4p,,則需要進(jìn)行C-0·p,、C-1·p、C-2·p,、C-3·p的四種模約減運(yùn)算,,硬件實(shí)現(xiàn)上需要兩級(jí)CSA一級(jí)CPA。
如果能夠在累加之前預(yù)先計(jì)算出b1·2·A(mod p),,就可以將2.1操作的結(jié)果約束到0<C<3p而后再約減,,從而降低約減的運(yùn)算復(fù)雜度,簡(jiǎn)化電路,。另外考慮到模乘操作本質(zhì)上是一連串的加法和約減運(yùn)算的合集,,加法與模減的先后順序并不會(huì)影響到最終的結(jié)果。即,,C=C+b0·A+b1·2·A(mod p)中的b0·A和b1·2·A可以分開(kāi)進(jìn)行加和約減,。因此可以將乘數(shù)B分為奇數(shù)位和偶數(shù)位進(jìn)行并行計(jì)算,結(jié)尾時(shí)再將兩個(gè)部分乘積進(jìn)行加和約減得到最終結(jié)果,。該種并行運(yùn)算操作可以將2.1步所需要的三輸入加法器改成二輸入加法器,,進(jìn)而縮短關(guān)鍵路徑。但是如果奇偶分開(kāi)之后2.2步的提前約減就會(huì)變得相對(duì)復(fù)雜,,此處的操作順序與流水加速實(shí)現(xiàn)方法將在3.2.3進(jìn)行詳細(xì)描述,。改進(jìn)的并行2n基交錯(cuò)模乘算法如表3所示,。
在算法2中,O為乘數(shù)B奇數(shù)位掃描的部分和,,E則為偶數(shù)部分和,。在算法2中只有2.3的模約減數(shù)據(jù)A1的約束范圍是0<4A1<4p,需要進(jìn)行C-0·p,、C-1·p,、C-2·p、C-3·p的四種模約減運(yùn)算,。其余所有操作均約束在2p以內(nèi),,不需要C-2·p、C-3·p操作,,降低算法約減代價(jià),。同時(shí),簡(jiǎn)化子運(yùn)算過(guò)程勢(shì)必會(huì)降低對(duì)應(yīng)硬件結(jié)構(gòu)的復(fù)雜度,,將三輸入加法器改為并行二輸入加法器來(lái)實(shí)現(xiàn),,降低了數(shù)據(jù)路徑的延遲。
需要注意的是,,以上兩種算法均為雙域統(tǒng)一的模乘算法,,且之前的分析均為基于素?cái)?shù)域的分析?;诙虻倪\(yùn)算相對(duì)簡(jiǎn)單,,將所有的進(jìn)位信號(hào)進(jìn)行屏蔽即可,兩者的具體區(qū)別將在后續(xù)的硬件設(shè)計(jì)過(guò)程中詳細(xì)描述,。綜上所述,,本小節(jié)對(duì)兩種算法在算法結(jié)構(gòu)上進(jìn)行了一定的改進(jìn),兩種類型的模乘算法各有利弊,,具體的區(qū)別,,如運(yùn)算效率、功耗,、面積將在后面的小節(jié)進(jìn)行更為詳細(xì)的分析比較,。
2 流水線分析
對(duì)算法2的循環(huán)部分分析可知,核心循環(huán)部分主要有三個(gè)步驟,。
(1)O←0+b0·A1 mod p與E←E+b1·A2 mod p mod p,,完成掃描結(jié)果的累加;
(2)A1←4·A1 mod p,,奇數(shù)部分累加值更新,;
(3)A2←2·A1 mod p與B←B<<2,偶數(shù)部分累加值更新與乘數(shù)B移位。
如果按照這樣的步驟分析,,每個(gè)輪循環(huán)需要3個(gè)時(shí)鐘周期才能完成,,且步驟(1)與步驟(3)有數(shù)據(jù)相關(guān)性無(wú)法完成全流水。若將步驟(1)中的兩個(gè)累加過(guò)程進(jìn)行分步執(zhí)行就可以防止這種數(shù)據(jù)相關(guān)性導(dǎo)致的流水障礙,。即將算法步驟調(diào)整為兩步:
(1)O←O+b0·A1 mod p,,A2←2·A1 mod p,完成奇數(shù)位累加及偶數(shù)位累加數(shù)據(jù)更新,。
(2)E←E+b1·A2 mod p,A1←4·A1 mod p,,B←B<<2,,完成偶數(shù)位累加、奇數(shù)位累加數(shù)據(jù)更新及乘數(shù)B移位,。
進(jìn)行上述改進(jìn)之后,,步驟(1)與步驟(2)可以流水并行執(zhí)行。在第一個(gè)clk來(lái)臨時(shí),,步驟(1)的O←O+b0·A1 mod p,、A2←2·A1 mod p與步驟(2)的A1←4·A1 mod p同時(shí)執(zhí)行。這三者產(chǎn)生的結(jié)果,,分別是O的更新值,,用于E累加的A2,用于O累加的A1,。第二個(gè)clk開(kāi)始,,O←O+b0·A1 mod p需要的O與A1上一周期已經(jīng)得到;E←E+b1·A2 mod p需要的A2也在上一周期得到,;A2←2·A1 mod p所需要的A1已經(jīng)在上一周期更新,;A1←4·A1 mod p所需的A1也在上一周期更新。因此步驟(1)可以和步驟(2)并行運(yùn)行,,但是需要注意的是步驟(2)的運(yùn)算輪次慢于步驟(1)一個(gè)時(shí)鐘周期,。則算法更新為表4所示的算法3。
為使該算法的流水線描述更加詳細(xì),,圖2對(duì)該算法每個(gè)時(shí)鐘每個(gè)模塊的運(yùn)算以及數(shù)據(jù)流向進(jìn)行詳細(xì)標(biāo)注描述,。其中橫向?yàn)橥粫r(shí)鐘周期完成的操作,縱向?yàn)闀r(shí)間流逝方向,,箭頭表示數(shù)據(jù)流向,。
由圖2可知,算法3可以實(shí)現(xiàn)全流水,,相對(duì)于蒙哥馬利模乘,,其運(yùn)算效率更高。但是由于其數(shù)據(jù)高低位之間存在嚴(yán)格的數(shù)據(jù)相關(guān)性,難以實(shí)現(xiàn)高低位數(shù)據(jù)之間的并行加速改進(jìn),。
3 硬件電路設(shè)計(jì)
3.1 模乘單元研究
根據(jù)前文對(duì)算法3的分析以及流水線的設(shè)計(jì),,可知radix-4交錯(cuò)模乘算法的核心運(yùn)算主要包括以下4個(gè):
由上式可知,這四種運(yùn)算以A1←4·A1 mod p的約減過(guò)程最為復(fù)雜,,需要判斷約減3p,、2p、p或者不約減,,需要三個(gè)并行的約減CPA,。A2←2·A1 mod p最為簡(jiǎn)單,可以通過(guò)移位代替2A1運(yùn)算,,而后只需要進(jìn)行是否減p判斷即可,。這4種運(yùn)算的具體結(jié)構(gòu)如圖3所示。
4種結(jié)構(gòu)思路均為通過(guò)并行多路運(yùn)算提前完成加np約減預(yù)計(jì)算,,而后根據(jù)不同加np路徑的進(jìn)位進(jìn)行判斷并選擇正確的約減結(jié)果,。該種結(jié)構(gòu)面積會(huì)有一定的增大,但是運(yùn)算效率極高,。前文已經(jīng)提到了,,將原算法1的C=C+b0·A+b1·2·A(mod p)分解為并行運(yùn)行的O←O+b0·A1 mod p與E←E+b1·A2 mod p。在算法運(yùn)算邏輯上雖然分開(kāi)的兩者可以并行,,但實(shí)際上E←E+b1·A2 mod p的累加比O←O+b0·A1 mod p的累加要落后一個(gè)周期,,即比原來(lái)的結(jié)構(gòu)多用2~3個(gè)時(shí)鐘,但是相對(duì)整個(gè)運(yùn)算過(guò)程的用時(shí),,可以忽略不計(jì),,同時(shí)圖3這種改進(jìn)的結(jié)構(gòu)比原結(jié)構(gòu)的關(guān)鍵路徑更短,綜合考慮改進(jìn)后的結(jié)構(gòu)更優(yōu)化,。
圖3所有結(jié)構(gòu)均為雙域統(tǒng)一的模乘運(yùn)算單元,。下面以A1←4·A1 mod p的結(jié)構(gòu)為例,分析二元域運(yùn)算原理,,此時(shí)的運(yùn)算變?yōu)锳1(x)←x2·A1(x) mod f(x),,即需要進(jìn)行兩次連續(xù)的x乘。首先通過(guò)field信號(hào)將所有CPA中的進(jìn)位信號(hào)屏蔽,,同時(shí)將CSA中的輸入進(jìn)位全部拉低,,將CPA和CSA的本位輸出均轉(zhuǎn)化為兩個(gè)輸入數(shù)據(jù)的異或。而后將兩個(gè)輸入,,一個(gè)定義為A1(x)<<1,,另一個(gè)定義為f(x)或0。選擇f(x)或0的判斷條件是A1(x)左移前的最高位,。圖4是x乘A1(x)←x1·A1(x) mod f(x)的硬件原理圖,。二元域的模除運(yùn)算運(yùn)用同樣的原理,將除2模變成x除運(yùn)算。
本文設(shè)計(jì)基于radix-4交錯(cuò)模乘算法的總體硬件結(jié)構(gòu),,如圖5所示,。
3.2 模除單元研究
根據(jù)p-m 算法分析可知,該算法需要經(jīng)歷“數(shù)據(jù)更新路徑裁決”(J-path)和“數(shù)據(jù)更新”(U-path)兩個(gè)過(guò)程,。p-m算法引入了兩個(gè)變量ε=min(α,,β)和λ=α-β,其中α,、β分別表示,,中間變量A、B的階,,但在算法中不會(huì)直接使用α,、β,而是使用兩者的變化量ε,、λ,。ε,、λ的引入可以代替經(jīng)典歐幾里得模除算法A,、B大小的比較,使得J-path的路徑復(fù)雜度大幅度降低,。算法4如表5所示,,表6是算法4的判斷條件及路徑選擇。
這種算法在硬件結(jié)構(gòu)設(shè)計(jì)時(shí)較傳統(tǒng)蒙哥馬利模除算法具有較大優(yōu)勢(shì),。該算法的J-path路徑結(jié)構(gòu)比較簡(jiǎn)單,,不需要依靠大位寬CPA,從而一定程度上降低了相應(yīng)延遲,,同時(shí)也節(jié)省了面積資源,。但是其判斷條件及數(shù)據(jù)更新的關(guān)系較蒙哥馬利模乘算法稍顯復(fù)雜,規(guī)律性較低,,在控制路徑設(shè)計(jì)時(shí)可能會(huì)導(dǎo)致復(fù)雜度上升,。不過(guò)這兩種結(jié)構(gòu)的關(guān)鍵路徑均不在控制路徑上,其對(duì)單元的整體性能影響微乎其微,。而更新過(guò)程也分為相對(duì)獨(dú)立的兩部分,。其中U-pathA主要是運(yùn)算數(shù)據(jù)的更新,U-pathB主要是路徑裁決信息的更新(B←A,,E←O為簡(jiǎn)單的賦值運(yùn)算,,不作考慮)。
通過(guò)分析表6中的不同運(yùn)算可以發(fā)現(xiàn),。U-path與J-path之間是有數(shù)據(jù)相關(guān)性的,,不能采取流水線劃分。J-path的路徑延遲由小比特的加減法和數(shù)據(jù)選擇器構(gòu)成;而U-path則由大位寬的加法器和數(shù)據(jù)選擇器構(gòu)成,。兩者的延遲不在同一量級(jí),。如果采取流水線加速策略,將J-path和U-path劃分為兩級(jí)流水,,會(huì)出現(xiàn)運(yùn)算頻率提升有限而控制路徑復(fù)雜度大幅度提升的情況,。因此本文并未對(duì)p-m模除算法進(jìn)行流水線加速設(shè)計(jì),而是采取“相似路徑整合,,不同路徑并行,,統(tǒng)一數(shù)據(jù)選擇”的策略。即將相似運(yùn)算進(jìn)行結(jié)構(gòu)兼容,,不能兼容的則并行運(yùn)算,,并根據(jù)判斷條件選擇出最終的正確結(jié)果。圖6給出了該模除算法的結(jié)構(gòu)簡(jiǎn)圖,。主要由I/O接口,、控制狀態(tài)機(jī)和數(shù)據(jù)路徑構(gòu)成。數(shù)據(jù)路徑包括J-path數(shù)據(jù)更新裁決路徑,、U-pathA數(shù)據(jù)更新路徑,、U-pathB裁決信息更新路徑。
面對(duì)表6給出的各條路徑進(jìn)行運(yùn)算分析和歸納分類,。由于該算法與radix-4交錯(cuò)模乘算法的兼容性主要體現(xiàn)在U-pathA中,,此處著重分析U-pathA的相關(guān)操作。U-pathA操作可以歸納為一種算術(shù)移位運(yùn)算Z←(X+Y)/n和三種模移位運(yùn)算Z←X/2 mod p,、Z←X/4 mod p,、Z←(X+Y)/4 mod p。其中三種模移位運(yùn)算在結(jié)構(gòu)實(shí)現(xiàn)上比2 bit掃描的蒙哥馬利模除算法中的Z←4 X mod p等模約減運(yùn)算簡(jiǎn)單得多,。因?yàn)?<4X<4p需要通過(guò)多次p減運(yùn)算,,最終通過(guò)進(jìn)位判斷正確結(jié)果,消耗的硬件資源是3個(gè)三輸入加法器,。完成(X+Y)/4 mod p需要進(jìn)行四種運(yùn)算,,而后對(duì)結(jié)果進(jìn)行左移兩位操作。但是與Z←4 X mod p路徑選擇方式不同,,該運(yùn)算的選擇信號(hào)與X,、Y、p的末尾2 bit數(shù)據(jù)有關(guān),。因此不需要將這四種運(yùn)算并行實(shí)現(xiàn)后對(duì)結(jié)果進(jìn)行選擇,,而是在輸入端就選擇+np,僅需一個(gè)3輸入加法器就可以實(shí)現(xiàn),。在此基礎(chǔ)上本文設(shè)計(jì)了如圖7(a)所示的U-pathA結(jié)構(gòu)圖,。U-pathB的結(jié)構(gòu)為小位寬的加法,,結(jié)構(gòu)如圖7(b)所示。J-path的結(jié)構(gòu)與統(tǒng)一模運(yùn)算單元的兼容性并不強(qiáng),,且結(jié)構(gòu)簡(jiǎn)單,、占用資源少,在此不進(jìn)行詳細(xì)描述,。
模除運(yùn)算的核心運(yùn)算部分在于U-pathA,,其主要運(yùn)算由一種算術(shù)移位運(yùn)算Z←(X+Y)/n和三種模移位運(yùn)算Z←X/2 mod p、Z←X/4 mod p,、Z←(X+Y)/4 mod p構(gòu)成,。由于運(yùn)算原理的不同,模移位運(yùn)算的選擇信號(hào)由最低位而不是最高位進(jìn)位確定,,因此可以在運(yùn)算之前就可以根據(jù)運(yùn)算數(shù)據(jù)的尾數(shù)確定運(yùn)算正確路徑,。且由于后三種操作不會(huì)在一輪運(yùn)算中同時(shí)出現(xiàn),因此這三者可由同一結(jié)構(gòu)實(shí)現(xiàn),。圖8為U-pathA模移位運(yùn)算路徑在radix-4模乘單元中的映射,。圖8中虛線框中的CSA1、CPA3以及輸入數(shù)據(jù)選擇器一同完成“Z←X/2 mod p”,、“Z←X/4 mod p”,、“Z←(X+Y)/4 mod p”等運(yùn)算。根據(jù)表6中對(duì)算術(shù)移位的路徑分析可知,,當(dāng)Z←(X+Y)/n中的n為2時(shí),,X+Y的最后1 bit必為0,;當(dāng)n為4時(shí),,X+Y的最后2 bit必為00。因此該路徑只需一個(gè)2輸入CPA即可完成,,如圖8中右虛線框所示,。
J-path與U-pathA的路徑不在結(jié)構(gòu)兼容考慮范圍之內(nèi),在此不再詳述,。如圖9所示為基于radix-4交錯(cuò)模乘算法的統(tǒng)一模單元結(jié)構(gòu)圖,。下面以“X+Y”、“A1←4·A1 mod p”,、“O←(O+E)/4 mod p”為例描述統(tǒng)一模運(yùn)算單元的模加,、模除、模乘功能,。其中紅色部分表示“X+Y”,,通過(guò)“CSA1+CPA4”與“CPA5”分別實(shí)現(xiàn)是否“減p”的運(yùn)算,而后通過(guò)數(shù)據(jù)選擇器完成數(shù)據(jù)更新,。綠色部分為“A1←4·A1 mod p”路徑,,其“CSA1+CPA1”,、“CPA2”、“CPA3”分別完成A1←4·A1-3 p,、A1←4·A1-2 p,、A1←4·A1-p,而后根據(jù)三個(gè)CPA的進(jìn)位確定正確輸出結(jié)果,?!癘←(O+E)/4 mod p”的運(yùn)算路徑由“CPA4+CSA1”、“CPA5”以及輸入端的數(shù)據(jù)選擇器完成“-p”或“-0p”以及“右移2bit”的操作,,其用到的結(jié)構(gòu)與“X+Y”相同,,只有輸入選擇器配置不同,在此不再進(jìn)行額外標(biāo)注,。
4 性能分析
文獻(xiàn)[1]~文獻(xiàn)[5]中對(duì)模運(yùn)算單元進(jìn)行了類似的模單元設(shè)計(jì),。為了性能對(duì)比的公平性和可靠性,本文將這些設(shè)計(jì)在相同的域長(zhǎng)度下基于Xilinx Vitex-7 200T FPGA平臺(tái)進(jìn)行了邏輯綜合,,具體結(jié)果如表7所示,。其中效能定義為:1/(Area×Time),并對(duì)其進(jìn)行了歸一化,。
通過(guò)對(duì)表7進(jìn)行詳細(xì)分析可得到如下結(jié)論,。
(1)靈活性
本文提出的統(tǒng)一模運(yùn)算單元可以實(shí)現(xiàn)576 bit以內(nèi)任意位寬的雙域有限域模運(yùn)算,具有極高的靈活性,。文獻(xiàn)均有較高的靈活性,,可以滿足NIST提出的標(biāo)準(zhǔn)模式。而文獻(xiàn)[6],、[2],、[4]、[7]為固定結(jié)構(gòu),,不具可重構(gòu)性,,難以滿足橢圓曲線密碼體制多樣化的應(yīng)用需求。
(2)面積資源消耗
本文提出的統(tǒng)一模運(yùn)算單元在Vitex-7 2000T的面積為5673 slices,。文獻(xiàn)[6],、[7]、[4],、[3]比之較小,,但是前三者為固定的運(yùn)算位寬,且不能完成雙域運(yùn)算,,在靈活性上與本文不具有可比性,。而對(duì)于文獻(xiàn)[2],本文無(wú)論是在運(yùn)算頻率還是模乘模除的運(yùn)算時(shí)間上均比之優(yōu)化,。
(3)運(yùn)算速度與能效
本文從算法和硬件設(shè)計(jì)層次對(duì)radix-4模乘算法進(jìn)行了改進(jìn),,將結(jié)構(gòu)關(guān)鍵路徑分解重新規(guī)劃算法流程,,并實(shí)現(xiàn)了全流水設(shè)計(jì),在速度上具有一定的優(yōu)勢(shì),。本設(shè)計(jì)的運(yùn)算頻率在上述文獻(xiàn)中是最高的,,效能除文獻(xiàn)[6]的模除外,為最高,。但一方面文獻(xiàn)[6]中的結(jié)構(gòu)不具有可重構(gòu)性,,另一方面,模除運(yùn)算的調(diào)用頻數(shù)極低,。所以在運(yùn)算速度方面,,本文提出的結(jié)構(gòu)具有較大優(yōu)勢(shì)。
綜上所述,,本文提出的統(tǒng)一模運(yùn)算單元具有較高的運(yùn)算速度,、較好的靈活性,同時(shí)在面積資源消耗上進(jìn)行了模單元兼容優(yōu)化,,并取得了一定的成效,。而且該結(jié)構(gòu)可以滿足目前國(guó)際國(guó)內(nèi)橢圓曲線體制任意標(biāo)準(zhǔn)的底層模運(yùn)算,能夠較好地移植到各種ECC處理器中,,具有較好的適應(yīng)性,。
前文已經(jīng)在65 nm CMOS工藝下,通過(guò)DC對(duì)統(tǒng)一模單元進(jìn)行了綜合,,改進(jìn)的radix-4統(tǒng)一模單元面積為223 761 μm2,,時(shí)鐘周期為526 MHz。
但相關(guān)研究實(shí)現(xiàn)方式大都在FPGA上進(jìn)行實(shí)現(xiàn),,少有進(jìn)行ASIC測(cè)試,。目前相關(guān)的ECC處理器的ASIC設(shè)計(jì)時(shí)鐘周期多在300~500 MHz,而這些ECC處理器的關(guān)鍵路徑多由模單元決定,。通過(guò)比較發(fā)現(xiàn),,本文設(shè)計(jì)的結(jié)構(gòu)在速度和靈活性方面具有優(yōu)勢(shì),。通過(guò)將本文提出的結(jié)構(gòu)替換到相關(guān)ECC處理器中大多能實(shí)現(xiàn)一定的工作頻率優(yōu)化,。
5 結(jié)論
本文提出了一種基于改進(jìn)的radix-4交錯(cuò)模乘算法的高速可重構(gòu)統(tǒng)一模單元,該結(jié)構(gòu)支持576 bit以內(nèi)的任意長(zhǎng)度雙域可重構(gòu)模乘,、模除和加減運(yùn)算,。不同于傳統(tǒng)統(tǒng)一模單元以模除單元為基礎(chǔ)的設(shè)計(jì),該結(jié)構(gòu)以模乘單元為基礎(chǔ)設(shè)計(jì)實(shí)現(xiàn),,具有較高的資源利用率,,為統(tǒng)一模運(yùn)算單元的設(shè)計(jì)提供了一定的參考。
參考文獻(xiàn)
[1] LEE J W,,CHUNG S C,,CHANG H C,,et al.Efficient power-analysis-resistant dual-field elliptic curve cryptographic processor using heterogeneous dual-processingelement architecture[J].IEEE Transactions on Very Large Scale Integration Systems,2013,,22(1):49-61.
[2] DALY A.An FPGA implementation of a GF(p) ALU for encryption processors[J].Microprocessors & Microsystems,,2004,28(5):253-260.
[3] SAKIYAMA K,,PRENEEL B,,VERBAUWHEDE I.A fast dual-field modular arithmetic logic unit and its hardware implementation[C].IEEE International Symposium on Circuits and Systems,2006.ISCAS 2006.Proceedings.IEEE,,2006.
[4] GHOSH S,,MUKHOPADHYAY D,ROYCHOWDHURY D.Petrel:power and timing attack resistant elliptic curve scalar multiplier based on programmable,,GF(p) arithmetic unit[J].IEEE Transactions on Circuits & Systems I Regular Papers,,2011,58(8):1798-1812.
[5] LIU Z,,LIU D,,ZOU X.An efficient and flexible hardware implementation of the dual-field elliptic curve cryptographic processor[J].IEEE Transactions on Industrial Electronics,2017,,PP(99):1-1.
[6] MARZOUQI H,,AL-QUTAYRI M,SALAH K,,et al.A high-speed FPGA implementation of an RSD-based ECC processor[J].IEEE Transactions on Very Large Scale Integration Systems,,2015,24(1):151-164.
[7] MORALES-SANDOVAL M,,F(xiàn)EREGRINO-URIBE C,,ALGREDO-BADILLO I.An area/performance trade-off analysis of a GF(2m) multiplier architecture for elliptic curve cryptography[J].Computer & Electrical Engineering,2009,,35(1):54-58.
作者信息:
陳 琳,,唐 俊,曲彤洲,,尹安琪
(信息工程大學(xué),,河南 鄭州450000)