《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 高速可重構(gòu)高資源利用率統(tǒng)一模單元設(shè)計(jì)與研究
高速可重構(gòu)高資源利用率統(tǒng)一模單元設(shè)計(jì)與研究
2019年電子技術(shù)應(yīng)用第10期
陳 琳,唐 俊,,曲彤洲,,尹安琪
信息工程大學(xué),,河南 鄭州450000
摘要: 總結(jié)歸納了有限域?qū)幽3?、模加減,、模除運(yùn)算在算法級(jí)和硬件結(jié)構(gòu)級(jí)的特點(diǎn)及兼容性,。通過(guò)對(duì)大量主流有限域算法的對(duì)比,、算法優(yōu)化、流水加速設(shè)計(jì)及結(jié)構(gòu)兼容擴(kuò)展,,提出了一種提升模運(yùn)算結(jié)構(gòu)兼容的模乘優(yōu)化算法:改進(jìn)的radix-4交錯(cuò)模乘算法,。該算法關(guān)鍵路徑短,、結(jié)構(gòu)簡(jiǎn)單,,在兼容設(shè)計(jì)方面有優(yōu)勢(shì),并能實(shí)現(xiàn)全流水加速運(yùn)算,,運(yùn)算效率高,,達(dá)到高速可重構(gòu)的設(shè)計(jì)目的,。不同于傳統(tǒng)的結(jié)構(gòu),本文在此模乘基礎(chǔ)上直接適配plus-minus模除和模加減,,有效解決了資源浪費(fèi)的問(wèn)題,。該統(tǒng)一模單元在65 nm CMOS工藝下進(jìn)行綜合,面積為0.22 mm2,,時(shí)鐘頻率為526 MHz,。完成一次576 bit的模乘、模除運(yùn)算分別用時(shí)0.55 μs和2.98 μs,。
中圖分類號(hào): TP309.7
文獻(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.
High-speed reconfigurable advanced-utilization unified modular operation unit
Chen Lin,Tang Jun,,Qu Tongzhou,,Yin Anqi
Information Engineering University,Zhengzhou 450000,,China
Abstract: Through comparison, algorithm optimization, pipeline accelerated design and structural compatibility extension of a large number of mainstream algorithm, this paper propose an algorithm that is good for modulo operation structure compatibility: improved radix-4 interleaved modular multiplication algorithm. It has advantages of short path and simple structure, and has advantages in compatibility design, can achieve full flow accelerated operation, and achieve the high speed and reconfigurable design purposes. The improved radix-4 interleaved modular multiplication unit proposed in this paper can directly realize plus-minus module division and modular addition without adding extra structure, which solves the problem of the waste of independent resources. The unified modular unit is synthesized under the 65 nm CMOS process. The area is 0.117 mm2. The clock frequency is 526 MHz. A 576 bit modular multiplication and modular division are completed at 0.55 μs and 2.98 μs respectively.
Key words : unified modular operation unit,;radix-4 interleaved modular multiplication;resource reuse

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所示,。

wdz4-t1.gif

wdz4-b1.gif

    由表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。

wdz4-b2.gif

    如果能夠在累加之前預(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所示,。

wdz4-b3.gif

  在算法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。

wdz4-b4.gif

    為使該算法的流水線描述更加詳細(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),。

wdz4-t2.gif

3 硬件電路設(shè)計(jì)

3.1 模乘單元研究

    根據(jù)前文對(duì)算法3的分析以及流水線的設(shè)計(jì),,可知radix-4交錯(cuò)模乘算法的核心運(yùn)算主要包括以下4個(gè):

     wdz4-gs1.gif

    由上式可知,這四種運(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所示。

wdz4-t3.gif

    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)算。

wdz4-t4.gif

    本文設(shè)計(jì)基于radix-4交錯(cuò)模乘算法的總體硬件結(jié)構(gòu),,如圖5所示,。

wdz4-t5.gif

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的判斷條件及路徑選擇。

wdz4-b5.gif

wdz4-b6.gif

    這種算法在硬件結(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裁決信息更新路徑。

wdz4-t6.gif

    面對(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ì)描述,。

wdz4-t7.gif

    模除運(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中右虛線框所示,。

wdz4-t8.gif

    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)注,。

wdz4-t9.gif

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)行了歸一化,。

wdz4-b7.gif

    通過(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)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。