《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 基于Kogge-Stone加法器改進的雙域模乘器
基于Kogge-Stone加法器改進的雙域模乘器
2019年電子技術(shù)應(yīng)用第8期
楊丹陽1,,楊 萱2,,陳 韜1,,戴紫彬1,,李 偉1
1.信息工程大學,河南 鄭州450001,;2.江南計算技術(shù)研究所,,江蘇 無錫214083
摘要: 模乘作為橢圓曲線公鑰密碼算法的核心運算,調(diào)用頻率最高,,提高其運算速度對于提高橢圓曲線密碼處理器的性能具有重要意義,。基于Kogge-Stone加法結(jié)構(gòu),,結(jié)合可重構(gòu)技術(shù),,實現(xiàn)一種能夠同時支持素數(shù)域GF(p)和二元域GF(2m)上模乘運算的雙域模乘器,并對模塊進行合理復用,,節(jié)省硬件資源,。用Verilog VHDL語言對該模乘器進行RTL級描述,并采用0.18 μm CMOS工藝標準單元庫進行邏輯綜合,。實驗結(jié)果表明,,該雙域模乘器的最大時鐘頻率為476 MHz,占用硬件資源66 518 gates,,實現(xiàn)256位的模乘運算僅需0.27 μs,。
中圖分類號: TP309.7
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190106
中文引用格式: 楊丹陽,楊萱,陳韜,,等. 基于Kogge-Stone加法器改進的雙域模乘器[J].電子技術(shù)應(yīng)用,,2019,45(8):75-78,,82.
英文引用格式: Yang Danyang,,Yang Xuan,Chen Tao,,et al. Dual-field modular multiplier using Kogge-Stone adder[J]. Application of Electronic Technique,2019,,45(8):75-78,,82.
Dual-field modular multiplier using Kogge-Stone adder
Yang Danyang1,Yang Xuan2,,Chen Tao1,,Dai Zibin1,Li Wei1
1.Information Engineering University,,Zhengzhou 450001,,China;2.Jiangnan Institute of Computing Technology,,Wuxi 214083,,China
Abstract: As the key operation, modular multiplication is the highest frequency of use in elliptic curve cryptography algorithm. Improving its operation speed is great significant to improve the performance of elliptic curve cryptography processor. Based on Kogge-Stone add structure, and combined with reconfigurable technology, this paper implemented a modular multiplier which support the operation in both prime field GF(p) and finite field GF(2m). And this modular multiplier reuse logic unit reasonably to save hardware resources. The modular multiplier was described by Verilog VHDL, and integrated in CMOS 0.18 μm technology library. The experimental results show that the maximum clock frequency of this modular multiplier circuit is about 476 MHz and use about 66 518 gates of hardware resources. The 256 bit Dual-field modular multiplication can be finished in 0.27 μs.
Key words : dual-field operation;modular multiplication,;Kogge-Stone adder,;elliptic curve cryptograph

0 引言

    公鑰密碼體制因其強大的安全性,廣泛應(yīng)用于信息安全領(lǐng)域,。橢圓曲線密碼算法與RSA相比,,具有相同安全性下運算速度更快、占用資源更少,、位寬更低的優(yōu)點,,成為新一代的公鑰密碼體制標準。橢圓曲線密碼處理器通常根據(jù)每秒鐘點乘的計算次數(shù)作為衡量其性能好壞的標準之一,。實現(xiàn)點乘運算,,要大量調(diào)用模乘、模除和模加減等有限域?qū)幽_\算,。模除運算最為復雜,,耗時最多,通常引入投影坐標系,,降低調(diào)用次數(shù),。而與模乘相比,模加減的運算量幾乎可以忽略。模乘是橢圓曲線密碼算法中最基本,、最核心的一種模運算,,提高其運算速度將有效提高橢圓曲線密碼處理器性能。

    如今,,設(shè)計一種靈活高效,、適用于多種安全場景的模乘器仍然是研究熱點。文獻[1]基于CPA和CSA結(jié)構(gòu)實現(xiàn)了的統(tǒng)一的MALU單元,,能夠有效完成模運算,,資源復用率高,靈活性和可擴展性強,,但是隨著運算位寬的增加,,CPA的進位鏈會成為瓶頸,大大制約著電路的性能,。文獻[2]采用64位的基4 Kogge-Stone超前進位加法器實現(xiàn)DFA,,實現(xiàn)新型的Wallace數(shù)乘法單元,縮短了運算時間,,但硬件資源占用較多,。文獻[3]在Blakley算法的基礎(chǔ)上,提出改進的Radix-4快速模乘算法,,采用Booth編碼減少迭代次數(shù),,并采用符號估計技術(shù)避免大整數(shù)比較,還基于擴展Euclidean求逆算法,,設(shè)計統(tǒng)一硬件電路,,雖然面積很小,但是運算速度不高,。本文根據(jù)基于Radix-4交錯模乘算法[4],,采用進位保留加法器(Carry Save Adder,)和Kogge-Stone加法器(Kogge-Stone Adder,,KSA)[5]組合的加法結(jié)構(gòu),,縮短電路關(guān)鍵路徑,同時支持素數(shù)域GF(p)和二元域GF(2m)的模乘運算,。根據(jù)操作數(shù)位寬控制迭代輪數(shù),,靈活適配各種長度的模乘運算。

1 背景介紹

1.1 Kogge-Stone加法器

    在硬件電路設(shè)計中,,基礎(chǔ)的加減乘除運算,,最終都可以通過多次加法計算來實現(xiàn),因此加法器是許多運算模塊的基礎(chǔ)單元,,其性能好壞直接關(guān)系到整個電路的性能,。對于傳統(tǒng)加法器,如串行進位加法器、進位選擇加法器,,高位的計算需要低位的進位輸出,。隨著運算位寬的增加,加法器的進位鏈不斷增長,,大大制約著加法器的運算性能,。為了減少進位時間,1973年,,KOGGE P M和STONE H S提出了并行前綴的超前進位加法器,,使高位的計算與前一位的進位結(jié)果無關(guān),從而大大提高加法器的速度,。

    本文中KSA采用4位一組的點操作,,計算延遲是log4N級點操作的延遲,與普通的二進制KSA加法器結(jié)構(gòu)相比速度提高一倍,。圖1是以計算16位加法為例的四進制KSA結(jié)構(gòu)[4],,該結(jié)構(gòu)由三種基本單元構(gòu)成,。最上面的正方型代表前置進位信號產(chǎn)生電路,,用于產(chǎn)生進位傳播信號Pi和進位產(chǎn)生信號Gi。最下面的菱形表示最終的進位生成電路與求和電路,,用于產(chǎn)生每一位的進位信號Ci與加法和Si,。中間的圓形代表Kogge-Stone樹結(jié)構(gòu),用于產(chǎn)生進位信號Ci所需的中間結(jié)果,,包括塊進位產(chǎn)生信號和塊進位傳播信號,。

wdz7-t1.gif

1.2 進位保留加法器

    進位保留加法器(CSA)常用于多操作數(shù)的加法。假設(shè)計算三個m比特的操作數(shù)A,、B和C的和,,采用CSA結(jié)構(gòu),將輸出兩個結(jié)果:本位異或結(jié)果sum與進位carry,。還需要一個加法器將sum和carry相加,,本文中,CSA和KSA共同完成三操作數(shù)相加,。

    CSA用表達式可以表示為:

wdz7-1.3-s1.gif

1.3 模乘算法分析

    模乘是橢圓曲線密碼的核心運算,,本文中交錯模乘算法如算法1所示,支持素數(shù)域GF(p)和二元域GF(2m)上的運算,。

wdz7-1.3-x1.gif

wdz7-1.3-x2.gif

    二元域運算與素數(shù)域的不同在于二元域運算沒有進位,,運算更加簡單。素數(shù)域中的模數(shù)P,,在二元域中表示為不可約多項式F(x),。模乘素數(shù)域用進行2Amod P、4Amod P和x+y+zmod P三種運算,在二元域中表示為x·A(x)mod F(x),、x2·A(x)mod F(x)和xwdz7-2-s1.gifywdz7-2-s1.gifz,。

2 模乘結(jié)構(gòu)

2.1 模乘總體結(jié)構(gòu)

    根據(jù)Radix-4交錯模乘算法,本文設(shè)計了長度可變的雙域模乘器,,其總體結(jié)構(gòu)如圖2所示,。實線框內(nèi)表示素數(shù)域的模乘運算單元,長虛線框內(nèi)表示用于二元域模乘的運算單元,。短虛線框中標出的是本結(jié)構(gòu)中的復用部分,,一是x2·A(x)modf(x)結(jié)構(gòu)復用了x·A(x)modf(x)結(jié)構(gòu);二是復用x+y+zmod P結(jié)構(gòu)中的CSA0中三操作數(shù)的異或輸出sum,,實現(xiàn)二元域上的三操作數(shù)相異或,。

wdz7-t2.gif

    該結(jié)構(gòu)由運算單元、控制器和中間數(shù)據(jù)寄存器組成,。

    運算單元是雙域模乘器的核心部分,,主要包括2Amod P結(jié)構(gòu)、4Amod P結(jié)構(gòu),、x+y+zmod P結(jié)構(gòu),、x·A(x)mod f(x)結(jié)構(gòu)和x2·A(x)mod f(x)結(jié)構(gòu)。

    中間數(shù)據(jù)寄存器主要用于寄存每一輪迭代計算出的U,、V,、A、B的值,,數(shù)據(jù)選擇器選擇寄存運算單元的結(jié)果,。

    控制器基于狀態(tài)機設(shè)計,產(chǎn)生數(shù)據(jù)路徑中數(shù)選器的選擇信號,,以控制數(shù)據(jù)路徑中的數(shù)據(jù)流向,,完成雙域模乘運算時各個模塊的調(diào)度控制。并根據(jù)域選擇信號以及數(shù)據(jù)長度,,進行判斷執(zhí)行素數(shù)域還是二元域運算,,以及迭代輪數(shù)。

2.2 雙域模乘器運算單元

2.2.1 素數(shù)域

    (1)2Amod P結(jié)構(gòu)

    實現(xiàn)2Amod P,,即完成A左移一位,,再判斷2A與P的大小決定是否進行“-P”操作,以實現(xiàn)0≤2Amod P<P,。由于0≤A<P,,則0≤2A<2P,故2Amod P的結(jié)果分兩種情況:

     wdz7-t3-s1.gif

    2Amod P結(jié)構(gòu)如圖3所示,,該結(jié)構(gòu)由一個KSA和一個數(shù)據(jù)選擇器組成,。KSA主要用來計算2A-P,,數(shù)據(jù)選擇器將KSA的進位輸出作為數(shù)選信號,判斷2Amod P的輸出結(jié)果,。

wdz7-t3.gif

    (2)4Amod P結(jié)構(gòu)

    實現(xiàn)4Amod P,,首先A左移兩位,再判斷4A與P的大小,,重復進行“-P”操作直至0≤4Amod P<P,。由于0≤A<P,則0≤4A<4P,,故4Amod P的結(jié)果分四種情況:

     wdz7-t3-x1.gif

    4Amod P結(jié)構(gòu)如圖4所示,,該結(jié)構(gòu)由1個CSA和3個KSA組成。并行計算4A-P,、4A-2P,、4A-3P,根據(jù)三個KSA的進位輸出作為數(shù)選信號,,選擇最后輸出結(jié)果,。

wdz7-t4.gif

    (3)x+y+zmod P結(jié)構(gòu)

    實現(xiàn)x+y+zmod P,先計算x+y+z,,再判斷x+y+z與P的大小,,重復進行“-P”操作直至0≤x+y+zmod P<P。由于0≤x,、y,、z<P,,則0≤x+y+z<3P,,故x+y+zmod P的結(jié)果分三種情況:

     wdz7-t4-x1.gif

    x+y+zmod P結(jié)構(gòu)如圖5所示,該結(jié)構(gòu)由3個CSA和3個KSA組成,。并行計算x+y+z,、x+y+z-P、x+y+z-2P,,根據(jù)KSA1和KSA2的進位輸出作為數(shù)選信號,,選擇最后輸出結(jié)果。

wdz7-t5.gif

2.2.2 二元域

    二元域不同于素數(shù)域,,算法更為簡單,,移位與異或即可實現(xiàn)x乘,將操作數(shù)按位異或即可實現(xiàn)加法,,無需考慮進位,。

    (1)加法結(jié)構(gòu)

    本文中,二元域三操作數(shù)異或通過復用x+y+zmod P結(jié)構(gòu)中的CSA0實現(xiàn),。

    (2)x乘結(jié)構(gòu)

    實現(xiàn)x·A(x)mod f(x),,即將A(x)左移一位,,如果am-1=1,將之與f(x)進行異或,。

     wdz7-t5-x1.gif

    其結(jié)構(gòu)如圖6所示,,將此結(jié)構(gòu)進行級聯(lián),即可實現(xiàn),。

wdz7-t6.gif

3 性能分析

    本文采用Verilog HDL硬件描述語言對雙域模乘器進行RTL級描述,,并利用ModelSim進行功能仿真驗證。在0.18 μm CMOS工藝標準單元庫對雙域模乘器進行邏輯綜合,,綜合工具使用Synopsys公司的Design Complier,。綜合結(jié)果表明,雙域模乘器占用硬件資源66 518 gates,,最高時鐘可達到476 MHz,,計算256 bit的模乘運算僅需0.27 μs。

    本文中雙域模乘器結(jié)構(gòu)的關(guān)鍵路徑在于CSA和KSA組合的加法結(jié)構(gòu),。為了驗證模乘器的性能,,將本文和其他文獻的模乘單元的性能進行比較,其結(jié)果如表1所示,。本文與文獻[2]相比,,模乘運算時間降低了20.59%,且面積減小了55.67%,。本文的運算時間是文獻[6]的3.38倍,,但面積大概只有文獻[6]的1/10。與文獻[3]相比,,雖然面積略大,,但256 bit的計算時間降低了87.2%。與文獻[7]相比,,本文速度降低不多,,但面積減小了28.26%。綜上,,本文的雙域模乘器在速度和面積上具有綜合優(yōu)勢,。

wdz7-b1.gif

    綜合比較,本設(shè)計能同時支持素數(shù)域GP(p)和二元域GP(2m)的模乘運算,,并且適配不同長度的位寬需求,,具有較強的靈活性和可擴展性。

4 結(jié)論

    本文基于雙域Radix-4交錯模乘算法,,采用CSA和KSA組合的加法結(jié)構(gòu),,實現(xiàn)長度可伸縮的雙域模乘器。采用基于Kogge-Stone結(jié)構(gòu)的并行前綴加法器,,減小了進位延遲,,縮短了該模乘單元的關(guān)鍵路徑,,大大提高了運算頻率,尤其當運算位寬越大,,優(yōu)勢越明顯時,。結(jié)構(gòu)上復用了素數(shù)域x+y+zmod P結(jié)構(gòu)的CSA0加法器中的異或門實現(xiàn)二元域中的三操作數(shù)的異或,減少硬件資源,,提高單元利用率,。

參考文獻

[1] 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,64(3):2353-2362.

[2] 郭曉,,蔣安平,,宗宇.SM2高速雙域Montgomery模乘的硬件設(shè)計[J].微電子學與計算機,2013(9):17-21.

[3] 陳光化,,朱景明,,劉名,等.雙有限域模乘和模逆算法及其硬件實現(xiàn)[J].電子與信息學報,,2010,,32(9):2095-2100.

[4] 李泉龍.基于Kogge-Stone算法與多米諾邏輯的64位高性能加法電路設(shè)計[D].成都:西南交通大學,2016.

[5] KOGGE P M,,STONE H S.A parallel algorithm for the efficient solution of a general class of recurrence Equations[J].IEEE Transactions on Computers,,1973,C-22(8):786-793.

[6] 廖望,,萬美琳,,戴葵,等.可擴展雙域模乘器設(shè)計與研究[J].華中科技大學學報(自然科學版),,2015(9):51-54.

[7] 李嘉敏,,戴紫彬,,王益?zhèn)?可編程可伸縮的雙域模乘加器研究與設(shè)計[J].電子技術(shù)應(yīng)用,,2018,44(1):28-32,,36.



作者信息:

楊丹陽1,,楊  萱2,陳  韜1,,戴紫彬1,,李  偉1

(1.信息工程大學,河南 鄭州450001,;2.江南計算技術(shù)研究所,,江蘇 無錫214083)

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