两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

基于改進的蒙哥馬利算法的模乘器的制作方法

文檔序號:6650170閱讀:302來源:國知局
專利名稱:基于改進的蒙哥馬利算法的模乘器的制作方法
技術(shù)領(lǐng)域
迅速發(fā)展的電子商務(wù)、保密通訊等應(yīng)用對開放網(wǎng)路上的信息安全提出了更高的要求,于是RSA、ECC的等公開密鑰密碼體制,被廣泛用于密鑰傳遞和數(shù)字簽名。RSA和素數(shù)域ECC的核心操作都是模乘冪運算,而且為了保證一定程度的安全性,RSA模數(shù)和指數(shù)的位長需要達到1024位以上,ECC模數(shù)和指數(shù)的位長也需要達到233位以上。但是這種規(guī)模的大數(shù)模乘運算用軟件實現(xiàn)效率是很低的,會占用大量的系統(tǒng)資源,因此各種大數(shù)模冪乘的硬件應(yīng)運而生。本設(shè)計中的模乘器VLSI結(jié)構(gòu)正是屬于此類的加/解密技術(shù)領(lǐng)域。
背景技術(shù)
應(yīng)用最廣泛的模乘法算法是蒙哥馬利算法,它的核心思想是將通常的取模運算中的比較和減法轉(zhuǎn)化為乘法和加法。
1.Montgomery原始算法Montgomery算法表示為Mon_pro(A,B)=ABR-1mod N,其具體算法是Function Mon_pro(A,B)T←A*Bu←-T*N-1(mod R)x←(T+u*N)/RIf x≥N return x←x-NElse return x其中N為模數(shù),R與N互質(zhì)R=2n,n是N的位數(shù)。N-1和R-1分別滿足NN-1mod R=1和RR-1mod N=1。值得注意的是N-1和R-1是事先預(yù)計算得到的,只有更新模數(shù)的時候才需要計算一次;另外由于R=2n,模R或除R的操作就分別為取低位和取高位的簡單操作。
由此可見Montgomey算法對A、B的積T取模時只用了2次普通的乘法操作。而一般的比較相減的取模方法需要n次減法。而且出于安全的需要n通常很大,本設(shè)計中n=233,這樣Montgomery算法的大大降低了運算的次數(shù)也就降低了運算所需的時鐘數(shù)。
另外一個問題是原始的Montgomery算法中包含的乘法和加法運算全部是大數(shù)運算,VLSI實現(xiàn)時硬件的代價很大,而且由于進位鏈太長,關(guān)鍵路徑延時很大,制約了系統(tǒng)的時鐘頻率。脈動陣列結(jié)構(gòu)是解決長進位鏈問題的策略之一,但該類策略的缺點在于計算周期多且VLSI實現(xiàn)面積大而下文所述的改進算法通過將可以有效的解決這個問題。
2.Montgomery改進算法本設(shè)計采用的Montgomery改進算法具體計算步驟如下n位的2進制A也可以理解為s位的r進制數(shù),即A=(as-1as-2…a1a0),其中ai為r進制數(shù),同理B也可以理解為s位的r進制數(shù),即B=(bs-1bs-2…b1b0),其中bi為r進制數(shù)、N也可以理解為s位的r進制數(shù),即N=(ns-1ns-2…n1n0),其中bi為r進制數(shù)。n’0為只與N有關(guān)常數(shù)且滿足n0n0’mod r=1。
算法分為3個步驟第一步計算中間結(jié)果mi1 for i=0 to s-11.1 for j=0 to i-1S=S+ajbi-j+mjni-j,1.2 Mi=Sn’0mod r,1.3 S=S+min0,1.4 S=S/r,第二步計算最終結(jié)果存于mi2 for i=s to 2s-12.1 for j=i-s+1 to s-1S=S+ajbi-j+mjni-j,2.2 mi-s=S mod r,2.3 S=S/r,第三步調(diào)整結(jié)果到區(qū)間
令M=(ms-1ms-2…m1m0),若M≥N則輸出M-N,否則輸出M可以看出,改進的算法中,位數(shù)很長的大數(shù)被分解為相對較小的數(shù)來分別進行計算,改善了由大數(shù)的加法和乘法進位鏈過長的問題。本設(shè)計綜合考慮了時鐘頻率和所需的總時鐘數(shù)兩方面的因素后,S定為4,相應(yīng)的r=264。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種時間周期少、流水線連續(xù)、速度快、面積小的基于改進的Montgomery算法的模乘器。
本發(fā)明特征在于,該模乘器是一種在外部狀態(tài)機的控制下對輸入數(shù)據(jù)按改進的Montgomery算法操作的,位長233位的模乘器,該算法把位長很長的大數(shù)分解為相對較小的數(shù)來分別進行計算,即把n位2進制的被乘數(shù)A視為s位的r進制數(shù),表示為A=as-1as-2…a1a0,ai為r進制數(shù),把n位2進制的乘數(shù)B視為s位的r進制數(shù),表示為B=bs-1bs-2…b1b0,bi為r進制數(shù),把n位2進制的模N視為s位的r進制數(shù),表示為N=ns-1ns-2…n1n0,ni為r進制數(shù),其中s=4,r=264,i=0,1,2,3,所述基于改進的Montgomery算法的模乘器含有輸入單元、中間單元、預(yù)計算單元、輸出單元和一個多路選擇器,其中輸入單元,含有第一采用7級流水的64位乘法器,輸入數(shù)據(jù)為a和b;第二采用7級流水的64位乘法器,輸入數(shù)據(jù)為n和中間結(jié)果m;第一128位寄存器,該寄存器的輸入端與所述的第一采用7級流水的64位乘法器的輸出端相連;第二128位寄存器,該寄存器的輸入端與所述的第二采用7級流水的64位乘法器的輸出端相連;中間單元,含有一個128位加法器,該加法器的兩個輸入端分別與所述第一128位寄存器和第二128位寄存器的輸出端相連;一個129位寄存器,該寄存器的輸入端與所述128位加法器的輸出端相連;預(yù)計算單元,含有133位加法器I、133位加法器II、133位加法器III,所述各133位加法器的一個輸入端分別和所述129位寄存器的輸出端相連;133位寄存器I、133位寄存器II、133位寄存器III,所述各133位寄存器的輸入端分別依次與所對應(yīng)133位加法器的輸出端相連,所述各133位寄存器的輸出端分別依次與所述個133位加法器的另一個輸入端相連,
多路選擇器,該選擇器的各輸入端分別同時與所述個133位寄存器的輸出端相連;輸出單元,含有一個133位加法器IV,該加法器IV的兩個輸入端分別于所述多路選擇器、129位寄存器的輸出端相連;一個133位寄存器IV,該寄存器IV的輸入端與所述133位加法器的輸出端相連,該寄存器的輸出端在輸出數(shù)據(jù)的同時又與所述第二采用7級流水的64位乘法器的輸入中間結(jié)果m用的輸入端相連;在外部狀態(tài)機的控制下,在i=0的循環(huán)內(nèi),所述第一采用7級流水的64位乘法器被依次按以下步驟輸入數(shù)據(jù)在第一次等待計算結(jié)果S=a0b0的時鐘周期內(nèi),被提前輸入i=1時循環(huán)內(nèi)用的與前一級運算結(jié)果無關(guān)的包括a0、b1、a1、b0在內(nèi)的數(shù)據(jù),產(chǎn)生相應(yīng)的部分積a0b1、a1b0,在外部狀態(tài)機的控制下送入所述預(yù)計算單元累加并寄存在寄存器I中;在第二次等待計算結(jié)果m1=sn’0時鐘周期內(nèi),被提前輸入i=2時的循環(huán)內(nèi)的數(shù)據(jù)a0、b2、a1、b1、a2、b0,產(chǎn)生相應(yīng)的部分積a0b2、a1b1、a2b0,在外部狀態(tài)機的控制下送入預(yù)計算單元累加并寄存在寄存器II中,n’0為只與N有關(guān)常數(shù)且滿足n0n0′mod r=1;在第三次等待計算結(jié)果m1n0時鐘周期內(nèi),被提前輸入i=2時的循環(huán)內(nèi)的數(shù)據(jù)a0、b3、a1、b2、a2、b1、a3、b0,產(chǎn)生相應(yīng)的部分積a0b3、a1b2、a2b1、a3b0,在外部狀態(tài)機的控制下送入預(yù)計算單元累加并寄存在寄存器III中;在所述外部狀態(tài)機的控制下,在i=1、i=2、i=3的循環(huán)內(nèi),同樣按i=0循環(huán)內(nèi)所屬的步驟依次進行;所述的129位寄存器和多路選擇器,按照i=0,1,2,3各個不同的循環(huán)周期,把所寄存的各相應(yīng)數(shù)據(jù)送往所述133位加法器IV累加后送往所述133位寄存器IV寄存,該寄存器IV把中間結(jié)果m送往第二采用7級流水的64位加法器,直到所有各循環(huán)結(jié)束,輸出最終運算結(jié)果,以上所述的基于改進的Montgomery模乘器是在數(shù)字集成電路上實現(xiàn)的。
本設(shè)計用Verilog進行行為級、RTL級編碼和功能仿真,驗證系統(tǒng)功能的正確性?;赟MIC 0.18微米工藝庫完成邏輯綜合(DC),并提取門延時信息,進行門級仿真驗證,確保功能正確性和時序上的準確性。最終,本摸乘器關(guān)鍵路徑時延約3.8ns,考慮到布局布線階段可能引入的連線延時和I/O pin等因素,整個芯片時鐘典型頻率可以達到200MHz,面積約2mm2,完成一次摸乘需要108個時鐘周期。


圖1.本發(fā)明所述模乘器的電路框圖。
具體實施例方式
本設(shè)計的模乘器電路機構(gòu)如圖1所示,是用ASIC芯片實現(xiàn)的。
整個數(shù)據(jù)通路由輸入單元、中間單元、預(yù)計算單元、輸出單元和多路選擇器五個單元構(gòu)成。輸入單元包括a、b、n三個輸入端口和兩個64位乘法器;中間單元包括一個128位的加法器和一個129位寄存器;預(yù)計算單元由加法器I、加法器II、加法器III和寄存器I、寄存器II、寄存器III構(gòu)成;輸出單元由加法器IV和寄存器IV構(gòu)成。
本設(shè)計的一個特點在于盡管模乘器的操作數(shù)已經(jīng)被分解為位長相對較短的64位數(shù),但64位的乘法器的時延還是比較大的,在0.18um的工藝下仍達到20ns以上,限制了系統(tǒng)的時鐘頻率。因此本設(shè)計采用了7級流水線結(jié)構(gòu)的乘法器以縮短其關(guān)鍵路徑的時延到4ns以內(nèi)。本設(shè)計的另一個特點是具有獨特的預(yù)計算單元雖然流水線結(jié)構(gòu)可以提高系統(tǒng)的時鐘頻率,但是Montgomery算法本身的特點會造成流水線的停頓,導(dǎo)致效率系統(tǒng)下降,實際的運算速度變慢。根據(jù)這個問題,我們提出了預(yù)計算單元,在相關(guān)數(shù)據(jù)未就緒導(dǎo)致流水線停頓時提前計算其他數(shù)據(jù),提高了流水線乘法器的利用率,使問題得到有效地緩解。
現(xiàn)在我們具體分析一下上述數(shù)據(jù)通路在執(zhí)行2.4中Montgomery算法時,流水線停頓是怎么發(fā)生的,預(yù)計算單元又是如何解決該問題的以第一步為例,i=0時,我們需要產(chǎn)生部分積a0b0、m0n0并累加;i=1時,我們需要產(chǎn)生部分積a0b1、m0n1、a1b0、m1n0并累加;i=2時,我們需要產(chǎn)生部分積a0b2、m0n2、a1b1、m1n1、a2b0、m2n0并累加;i=3時,我們需要產(chǎn)生部分積a0b3、m0n3、a1b2、m1n2、a2b1、m2n1、a3b0、m3n0并累加。
其中ai、bi、ni都是輸入數(shù)據(jù),隨時能進入乘法器用以生成相應(yīng)的部分積,不會引起流水線的停頓,而mi為中間運算的結(jié)果,如果其在計算的過程當中時被乘法器調(diào)用就會導(dǎo)致流水線輸入數(shù)據(jù)的中斷。如在i=0的循環(huán)中,a0、b0進入乘法器計算部分積a0b0,此時應(yīng)同時輸入m0和n0,但m0是S(即部分積a0b0)乘n’0得到的,顯然此時還沒有就緒。不難看出在i=0的循環(huán)中,流水線乘法器停頓了三次,第一次等待S=a0*b0的計算;第二次是等待m1=S*n’0的計算;第三次是等待m1*n0的計算,每一次等待7個時鐘周期(流水線深度)??梢娖胀ǖ臎]有預(yù)計算單元的數(shù)據(jù)通路在i=0的循環(huán)內(nèi)會浪費21個時鐘周期。實際上這樣的浪費不止發(fā)生在i=0的循環(huán)內(nèi),而是發(fā)生在每一個循環(huán)內(nèi),所以光第一步的4個循環(huán)就要浪費84個時鐘周期。
為了解決這個問題,更高效地利用流水線乘法器,節(jié)省時鐘周期的開銷,我們在第一次等待時提前將i=1時的循環(huán)內(nèi)與前一級運算結(jié)果無關(guān)的數(shù)據(jù),包括a0、b1、a1、b0等送入乘法器,產(chǎn)生相應(yīng)的部分積在狀態(tài)機的控制下進入預(yù)計算單元累加并寄存在寄存器I中;在第二次等待時將i=2時的循環(huán)內(nèi)的數(shù)據(jù)a0、b2、a1、b1、a2、b0送入乘法器,產(chǎn)生相應(yīng)的部分積送入預(yù)計算單元累加并寄存在寄存器II中;同理在第三次等待時將i=3時的循環(huán)內(nèi)的數(shù)據(jù)a0、b3、m0、n3、a1、b2、a2、b1、a3、b0送入乘法器,產(chǎn)生相應(yīng)的部分積送入預(yù)計算單元累加并寄存在寄存器III中。當算法真正進入i=1、i=2或i=3循環(huán)體時,寄存器I、寄存器II、寄存器III中的部分積可以直接送入輸出單元進行累加而不必臨時計算。當然,在i=1、i=2或i=3循環(huán)中,也會遇到流水線停頓的情況,此時就可以預(yù)先計算步驟2中各個循環(huán)中的數(shù)據(jù),以此類推。
這種機制的核心在于不讓流水線乘法器停頓下來,而是不斷地使后續(xù)循環(huán)中的不相關(guān)數(shù)據(jù)進入乘法器,提前計算以后將用到的部分積送到預(yù)計算單元累加然后寄存起來,在需要的時候就可以將寄存的數(shù)據(jù)直接送到輸出單元的加法器中進行累加,從而節(jié)約了大量的時鐘周期。
權(quán)利要求
1.基于改進的蒙哥馬利算法的模乘器,其特征在于,該模乘器是一種在外部狀態(tài)機的控制下對輸入數(shù)據(jù)按改進的蒙哥馬利算法操作的,位長233位的模乘器,該算法把位長很長的大數(shù)分解為相對較小的數(shù)來分別進行計算,即把n位2進制的被乘數(shù)A視為s位的r進制數(shù),表示為A=as-1as-2…a1a0,ai為r進制數(shù),把n位2進制的乘數(shù)B視為s位的r進制數(shù),表示為B=bs-1bs-2…b1b0,bi為r進制數(shù),把n位2進制的模N視為s位的r進制數(shù),表示為N=ns-1ns-2…n1n0,ni為r進制數(shù),其中s=4,r=264,i=0,1,2,3,所述基于改進的蒙哥馬利算法的模乘器含有輸入單元、中間單元、預(yù)計算單元、輸出單元和一個多路選擇器,其中輸入單元,含有第一采用7級流水的64位乘法器,輸入數(shù)據(jù)為a和b;第二采用7級流水的64位乘法器,輸入數(shù)據(jù)為n和中間結(jié)果m第一128位寄存器,該寄存器的輸入端與所述的第一采用7級流水的64位乘法器的輸出端相連;第二128位寄存器,該寄存器的輸入端與所述的第二采用7級流水的64位乘法器的輸出端相連;中間單元,含有一個128位加法器,該加法器的兩個輸入端分別與所述第一128位寄存器和第二128位寄存器的輸出端相連;一個129位寄存器,該寄存器的輸入端與所述128位加法器的輸出端相連;預(yù)計算單元,含有133位加法器I、133位加法器II、133位加法器III,所述各133位加法器的一個輸入端分別和所述129位寄存器的輸出端相連;133位寄存器I、133位寄存器II、133位寄存器III,所述各133位寄存器的輸入端分別依次與所對應(yīng)133位加法器的輸出端相連,所述各133位寄存器的輸出端分別依次與所述個133位加法器的另一個輸入端相連,多路選擇器,該選擇器的各輸入端分別同時與所述個133位寄存器的輸出端相連;輸出單元,含有一個133位加法器IV,該加法器IV的兩個輸入端分別于所述多路選擇器、129位寄存器的輸出端相連;一個133位寄存器IV,該寄存器IV的輸入端與所述133位加法器的輸出端相連,該寄存器的輸出端在輸出數(shù)據(jù)的同時又與所述第二采用7級流水的64位乘法器的輸入中間結(jié)果m用的輸入端相連;在外部狀態(tài)機的控制下,在i=0的循環(huán)內(nèi),所述第一采用7級流水的64位乘法器被依次按以下步驟輸入數(shù)據(jù)在第一次等待計算結(jié)果S=a0b0的時鐘周期內(nèi),被提前輸入i=1時循環(huán)內(nèi)用的與前一級運算結(jié)果無關(guān)的包括a0、b1、a1、b0在內(nèi)的數(shù)據(jù),產(chǎn)生相應(yīng)的部分積a0b1、a1b0,在外部狀態(tài)機的控制下送入所述預(yù)計算單元累加并寄存在寄存器I中;在第二次等待計算結(jié)果m1=sn’0時鐘周期內(nèi),被提前輸入i=2時的循環(huán)內(nèi)的數(shù)據(jù)a0、b2、a1、b1、a2、b0,產(chǎn)生相應(yīng)的部分積a0b2、a1b1、a2b0,在外部狀態(tài)機的控制下送入預(yù)計算單元累加并寄存在寄存器II中,n’0為只與N有關(guān)常數(shù)且滿足n0n0’modr=1;在第三次等待計算結(jié)果m1n0時鐘周期內(nèi),被提前輸入i=2時的循環(huán)內(nèi)的數(shù)據(jù)a0、b3、a1、b2、a2、b1、a3、b0,產(chǎn)生相應(yīng)的部分積a0b3、a1b2、a2b1、a3b0,在外部狀態(tài)機的控制下送入預(yù)計算單元累加并寄存在寄存器III中;在所述外部狀態(tài)機的控制下,在i=1、i=2、i=3的循環(huán)內(nèi),同樣按i=0循環(huán)內(nèi)所屬的步驟依次進行;所述的129位寄存器和多路選擇器,按照i=0,1,2,3各個不同的循環(huán)周期,把所寄存的各相應(yīng)數(shù)據(jù)送往所述133位加法器IV累加后送往所述133位寄存器IV寄存,該寄存器IV把中間結(jié)果m送往第二采用7級流水的64位加法器,直到所有各循環(huán)結(jié)束,輸出最終運算結(jié)果,以上所述的基于改進的蒙哥馬利模乘器是在數(shù)字集成電路上實現(xiàn)的。
全文摘要
本發(fā)明屬于計算機加/解密技術(shù)領(lǐng)域,其特征在于該模乘器用了兩個7級流水的64位乘法器來分解操作數(shù)以提高系統(tǒng)的時鐘頻率,用預(yù)計算單元把在外部狀態(tài)機控制下提前輸入的數(shù)據(jù)分期送入乘法器,所屬分期是按照計算操作數(shù)中前一位值的那個階段中存在的三個等待計算結(jié)果的時鐘周期來劃分的。從i=0時計算第一階段開始,重復(fù)上述步驟,直到操作數(shù)中個位數(shù)全部模乘結(jié)束為止。從而解決了流水線停頓的問題,提高了系統(tǒng)的并行性,減少了所需的時鐘數(shù)。所述模乘器位長233位,基于SMIC 0.18um最壞的工藝,關(guān)鍵路徑最大時延3.8ns,面積2mm
文檔編號G06F7/60GK1786900SQ20051011670
公開日2006年6月14日 申請日期2005年10月28日 優(yōu)先權(quán)日2005年10月28日
發(fā)明者李樹國, 毛天然 申請人:清華大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
泗洪县| 福鼎市| 清丰县| 长岛县| 邢台县| 凤台县| 盱眙县| 科技| 大理市| 景宁| 汨罗市| 福建省| 无极县| 自贡市| 阿拉尔市| 兴城市| 如皋市| 紫阳县| 西乌珠穆沁旗| 新化县| 东光县| 海晏县| 眉山市| 定安县| 广宗县| 勃利县| 油尖旺区| 扬中市| 宁德市| 二手房| 古蔺县| 仁怀市| 景洪市| 定陶县| 曲水县| 汝南县| 河间市| 肇州县| 衡阳市| 武夷山市| 东兴市|