《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于Kogge-Stone加法器改進(jìn)的雙域模乘器
基于Kogge-Stone加法器改進(jìn)的雙域模乘器
2019年電子技術(shù)應(yīng)用第8期
楊丹陽1,楊 萱2,陳 韜1,戴紫彬1,李 偉1
1.信息工程大學(xué),河南 鄭州450001;2.江南計(jì)算技術(shù)研究所,江蘇 無錫214083
摘要: 模乘作為橢圓曲線公鑰密碼算法的核心運(yùn)算,調(diào)用頻率最高,提高其運(yùn)算速度對于提高橢圓曲線密碼處理器的性能具有重要意義。基于Kogge-Stone加法結(jié)構(gòu),結(jié)合可重構(gòu)技術(shù),實(shí)現(xiàn)一種能夠同時(shí)支持素?cái)?shù)域GF(p)和二元域GF(2m)上模乘運(yùn)算的雙域模乘器,并對模塊進(jìn)行合理復(fù)用,節(jié)省硬件資源。用Verilog VHDL語言對該模乘器進(jìn)行RTL級描述,并采用0.18 μm CMOS工藝標(biāo)準(zhǔn)單元庫進(jìn)行邏輯綜合。實(shí)驗(yàn)結(jié)果表明,該雙域模乘器的最大時(shí)鐘頻率為476 MHz,占用硬件資源66 518 gates,實(shí)現(xiàn)256位的模乘運(yùn)算僅需0.27 μs。
中圖分類號: TP309.7
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.190106
中文引用格式: 楊丹陽,楊萱,陳韜,等. 基于Kogge-Stone加法器改進(jìn)的雙域模乘器[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 引言

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

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

1 背景介紹

1.1 Kogge-Stone加法器

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

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

wdz7-t1.gif

1.2 進(jìn)位保留加法器

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

    CSA用表達(dá)式可以表示為:

wdz7-1.3-s1.gif

1.3 模乘算法分析

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

wdz7-1.3-x1.gif

wdz7-1.3-x2.gif

    二元域運(yùn)算與素?cái)?shù)域的不同在于二元域運(yùn)算沒有進(jìn)位,運(yùn)算更加簡單。素?cái)?shù)域中的模數(shù)P,在二元域中表示為不可約多項(xiàng)式F(x)。模乘素?cái)?shù)域用進(jìn)行2Amod P、4Amod P和x+y+zmod P三種運(yùn)算,在二元域中表示為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交錯(cuò)模乘算法,本文設(shè)計(jì)了長度可變的雙域模乘器,其總體結(jié)構(gòu)如圖2所示。實(shí)線框內(nèi)表示素?cái)?shù)域的模乘運(yùn)算單元,長虛線框內(nèi)表示用于二元域模乘的運(yùn)算單元。短虛線框中標(biāo)出的是本結(jié)構(gòu)中的復(fù)用部分,一是x2·A(x)modf(x)結(jié)構(gòu)復(fù)用了x·A(x)modf(x)結(jié)構(gòu);二是復(fù)用x+y+zmod P結(jié)構(gòu)中的CSA0中三操作數(shù)的異或輸出sum,實(shí)現(xiàn)二元域上的三操作數(shù)相異或。

wdz7-t2.gif

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

    運(yùn)算單元是雙域模乘器的核心部分,主要包括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ù)寄存器主要用于寄存每一輪迭代計(jì)算出的U、V、A、B的值,數(shù)據(jù)選擇器選擇寄存運(yùn)算單元的結(jié)果。

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

2.2 雙域模乘器運(yùn)算單元

2.2.1 素?cái)?shù)域

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

    實(shí)現(xiàn)2Amod P,即完成A左移一位,再判斷2A與P的大小決定是否進(jìn)行“-P”操作,以實(shí)現(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)由一個(gè)KSA和一個(gè)數(shù)據(jù)選擇器組成。KSA主要用來計(jì)算2A-P,數(shù)據(jù)選擇器將KSA的進(jìn)位輸出作為數(shù)選信號,判斷2Amod P的輸出結(jié)果。

wdz7-t3.gif

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

    實(shí)現(xiàn)4Amod P,首先A左移兩位,再判斷4A與P的大小,重復(fù)進(jìn)行“-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個(gè)CSA和3個(gè)KSA組成。并行計(jì)算4A-P、4A-2P、4A-3P,根據(jù)三個(gè)KSA的進(jìn)位輸出作為數(shù)選信號,選擇最后輸出結(jié)果。

wdz7-t4.gif

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

    實(shí)現(xiàn)x+y+zmod P,先計(jì)算x+y+z,再判斷x+y+z與P的大小,重復(fù)進(jìn)行“-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個(gè)CSA和3個(gè)KSA組成。并行計(jì)算x+y+z、x+y+z-P、x+y+z-2P,根據(jù)KSA1和KSA2的進(jìn)位輸出作為數(shù)選信號,選擇最后輸出結(jié)果。

wdz7-t5.gif

2.2.2 二元域

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

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

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

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

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

     wdz7-t5-x1.gif

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

wdz7-t6.gif

3 性能分析

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

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

wdz7-b1.gif

    綜合比較,本設(shè)計(jì)能同時(shí)支持素?cái)?shù)域GP(p)和二元域GP(2m)的模乘運(yùn)算,并且適配不同長度的位寬需求,具有較強(qiáng)的靈活性和可擴(kuò)展性。

4 結(jié)論

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

參考文獻(xiàn)

[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ì)[J].微電子學(xué)與計(jì)算機(jī),2013(9):17-21.

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

[4] 李泉龍.基于Kogge-Stone算法與多米諾邏輯的64位高性能加法電路設(shè)計(jì)[D].成都:西南交通大學(xué),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] 廖望,萬美琳,戴葵,等.可擴(kuò)展雙域模乘器設(shè)計(jì)與研究[J].華中科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2015(9):51-54.

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



作者信息:

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

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 一日本道a高清免费播放| 亚洲网站www| 欧美视频第二页| 天天操夜夜操天天操| 久久精品国产免费观看| 波多野结衣在线女教师| 国产乱偷国产偷高清| 亚洲一区二区三区免费| 精品综合一区二区三区| 国产激情久久久久影院| a级情欲片在线观看hd| 日本久久久久亚洲中字幕| 免费高清日本完整版| 国产在视频线精品视频2021| 天堂网www在线观看| 久久久久亚洲AV成人网| 欧美不卡一区二区三区免| 伊人久久大香线蕉观看| 色综合久久久久久久久五月| 国产福利精品一区二区| av无码精品一区二区三区四区| 无码人妻丰满熟妇区五十路| 亚洲一区二区三区在线网站| 狂野欧美激情性xxxx在线观看| 国产特级毛片aaaaaa毛片| a级aaaaaaaa毛片| 成人黄色免费网站| 久草视频在线网| 欧美综合自拍亚洲综合图片区| 十八岁的天空完整版在线观看 | 欧美成人香蕉网在线观看| 免费精品久久天干天干| 蜜桃导航一精品导航站| 天下第一社区视频在线观看www | 亚洲色国产欧美日韩| 美国成人a免费毛片| 国产午夜无码视频在线观看| chinese中国农村夫tube| 扒下胸罩揉她的乳尖调教| 九九九九九九伊人| 欧美日韩在线视频一区 |