欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基為16的高速Montgomery模乘法器VLSI的制作方法

文檔序號:6336974閱讀:352來源:國知局
專利名稱:基為16的高速Montgomery模乘法器VLSI的制作方法
技術領域
本發(fā)明涉及電子電路,具體地,涉及基為16的高速蒙哥馬利(Montgomery)模乘法 器超大規(guī)模集成電路(VLSI)。
背景技術
目前,互聯(lián)網(wǎng)的快速發(fā)展,使得信息安全技術顯得尤為重要,諸如在線購物、網(wǎng)上 銀行、數(shù)據(jù)下載等方面都需要一套身份認證系統(tǒng)。在現(xiàn)代密碼學中,公鑰制密碼體制被用來 完成這一任務,它能夠提供如數(shù)字簽名、身份認證、數(shù)據(jù)完整性和抗抵賴性等一系列的安全保障。在公鑰制密碼體制中,應用最為廣泛的當屬RSA密碼算法(RSA密碼算法是一種非 對稱密碼算法)。RSA密碼算法簡單有效,但是卻非常耗時,因為RSA的基本運算是冪運算, 它的操作數(shù)長度一般在256 2048bit或者更長,用軟件來做1024bit的RSA加密運算,每 秒大概只能完成4 8次模冪運算,無法滿足實時性的需求。所以,硬件實現(xiàn)RSA加密算法 成為未來密碼產(chǎn)品的主流,也是當前密碼學的研究熱點。蒙哥馬利(Montgomery)模乘算法是目前應用最為廣泛的也最為高效的模乘算 法,它將模乘運算中的除法運算替換成移位操作,大大加快了模乘運算的速度和效率?;?Montgomery(VeryLarge Scale Integrated circuits, 簡稱VLSI)設計種類比較多,在這些設計中,時鐘數(shù)開銷最少的是高基Montgomery模乘運 算,可擴展性最好的是基于字的Montgomery模乘算法。這里,Montgomery模乘算法,具體 可參見下面的算法1。算法1 =Montgomery模乘算法Input :N、X、Y、Μ、r (r = 2N)Output :S = MM(X, Y) = XYr-1 mod M1. S^1 = 02. For i = 0 to N-I3. Si = Si^xiXY4. Si = S^s0XM5. Si = Sj/26. End For7. If S^1 >= M Then Sn^1 = Sn^1MReturn Sn^1這里的X是乘數(shù),Y是被乘數(shù),M是模數(shù),r是一個等于2N的常數(shù),X、Y、M都是位長 為N的整數(shù)。如算法1所示,Montgomery算法采用一系列的移位運算來替代除法,最終的 運算結果是XYr—1 mod M而不是真正的模乘運算結果XY mod Μ。為了實現(xiàn)模乘運算,需要 對初始輸入數(shù)據(jù)進行域轉(zhuǎn)換。Montgomery模乘運算使用一種稱為M域的表示形式來表示整 數(shù)。比如,將χ (0<χ<Μ)轉(zhuǎn)化成M域的表示形式就成了& = jcr modA/。這樣,M域中
3的F等于Xr mod M,M域的Γ等于Yr mod M,M域中的Montgomery模乘運算就成了
F=Frr-1 mod M
_8] =XrYrr^modM=XYr mod M(1)可見,對于M域中的數(shù)來說,它們模乘的結果仍然在M域之中,在整數(shù)和M域之間 的轉(zhuǎn)換也非常簡單,也可以通過Montgomery模乘運算來實現(xiàn); f = MM (X, ?) = Xr2Y^x mod M = Xr mod M (2)X = MM ,1) = Xrr'1 modM = XmodM (3)這里的r2 mod M是預先計算好的。RSA的加密過程就是求模冪運算過程,而模冪 運算需要大量的模乘運算。在做RSA加密之前需要將操作數(shù)先轉(zhuǎn)化到M域,然后再做模冪, 在做完模冪之后再將結果轉(zhuǎn)化到整數(shù)域,這樣就完成了一次RSA加密。從算法1所示的Montgomery模乘算法中可以看出,做一次N位Montgomery模乘 運算需要N+1個時鐘周期。在開始的N個時鐘周期中,每個時鐘周期都需要做兩次N位的 加法和一次右移操作;在最后一個時鐘周期,需要做N位的減法和N位的比較判斷??梢?, Montgomery乘法器每次運算的操作數(shù)都是固定長度的,對于N位的Montgomery乘法器,它 只能支持N位的RSA加密運算;同時乘法器每個周期需要處理兩次N位的加法,數(shù)據(jù)通路的 延遲非常大。通過對Montgomery原始算法的分析研究,Montgomery乘法器操作數(shù)長度固定,不 能任意擴展操作數(shù)長度;乘法器的數(shù)據(jù)通路延遲達到了 2級N位加法器的延遲,極大地限 制了系統(tǒng)時鐘頻率;同時乘法運算仍然非常消耗時鐘周期數(shù)。Tenca-Todorov-Ko9提出 了一種更為有效的Montgomery模乘算法,首先,它采用了基于字的運算,使得Montgomery 模乘運算能擴展到支持任意位長的乘法;其次它采用了 carry-save結構的加法器,使得 關鍵路徑延遲大大降低;最后采用了高基算法,大大節(jié)省了做一次加密的時鐘周期數(shù)目。 Tenca-Todorov-Κο ;的改進算法,具體可參見下面的算法2。算法2 =Tenca-Todorov- Ko 的改進算法Input :N、X、Y、Μ、r (r = 2N)Output :S = MM(X, Y) = XYr-1 mod Ml.S = 0>x_! = O2. For j = O to N-I Step k
n)mod 2k3.==Booth (χ,Η …
4.(ca,S, = S(0)+(qYJXY) (0)
5.%j "=S(O)k-^0X (2k-M(0)-1k_1.
6.(Cb,S(0)) = S(0)+(qMJXM)(0)
7.Fori = 1 to NW-I
8. (Ca,S⑴)=Ca+S ⑴.+ (qYjXY)⑴9. (Cb,S⑴)=Cb+S ⑴.^(QmjXM)⑴10. S"=(S⑴ k-1. .0' ( - ) ^ BPW-1···. kEnd For
ILCa = Ca or Cb12. Sftw-1) = sign ext (Ca, S(麗―1)·+.々)End For13. If S >= M Then S = S-M如算法2所示,k表示基,每次循環(huán)讀入乘數(shù)X的k位,通過Booth編碼得到qY,被 乘數(shù)Y和模M按字讀取(Y⑴表示Y的第i個字,如算法2),故該算法非常容易組織成流水 線的結構。圖1給出了 Tenca-Todorov- Κο ;提出的基為8的可擴展Montgomery乘法器結 構。它包括了 η個匪Cell運算單元,每個匪Cell運算單元做兩次一個字長的加法(分 別加Υω ,加法器采用carry-save的結構,運算結果傳給下一級MM Cell運算單元。 為了使數(shù)據(jù)通路能支持更高位數(shù)的模乘運算,可以通過加入2個N位的FIFO來實現(xiàn),分別 存儲SS’和SC’。在第一個周期,S初始化為0,在模乘運算過程中如果不需要暫存中間結 果,則將輸出數(shù)據(jù)旁路給輸入,如果需要暫存數(shù)據(jù),則將輸出數(shù)據(jù)輸入到FIFO中。如圖1和圖2所示,Tenca-Todorov-Κο ;提出的基為8,是按字運算的Montgomery 乘法器,并不能應用于各種長度的模乘運算和RSA加密。具體地,在圖1中,包括了 N個MM Cell運算單元,每個MM Cell運算單元做兩次 一個字長的加法(分別加Υω和M(i)),加法器采用carry-save的結構,運算結果傳給下一 級MM Cell運算單元。為了使數(shù)據(jù)通路能支持更高位數(shù)的模乘運算,可以通過加入2個N 位的FIFO來實現(xiàn),分別存儲SS’和SC’。在第一個周期,S初始化為0,在模乘運算過程中 如果不需要暫存中間結果,則將輸出數(shù)據(jù)旁路給輸入,如果需要暫存數(shù)據(jù),則將輸出數(shù)據(jù)輸 入到FIFO中。在圖1中,包含了 2個N位的FIFO,如果N的數(shù)值非常大則FIFO會占用很大 的面積。從算法2中可以發(fā)現(xiàn),F(xiàn)IFO的作用是保存中間運算結果SS’和SC’的,所以可以 通過預先計算SS’和SC’的和來壓縮輸入FIFO的數(shù)據(jù)。在圖2中,以w比特作為一個字長為例,它包含了 2個w位的4-to_2加法器,一個 普通加法器,3個6選1選擇器,兩個解碼器及不少于8個w位的寄存器。qY解碼器和qM解 碼器分別生成系數(shù)qY和qM。對于基為8的設計來說,做一次Montgomery模乘需要的時鐘
數(shù)為
τ _ I 3 * NS *(2 * + 1) + NW + I,NW ^ 2* NS (々) CLKs ~ I Γ N YiNW + 1) + 2 * NS,NW >2* NS 、3 * NS在公式(4)中,NS表示圖1中的流水線級數(shù),NW表示Υ、Μ所包含的字的個數(shù),N是 所有操作數(shù)的長度。Tenca-Todorov-Κο ;的改進型Montgomery乘法器采用的基為8,并支持密鑰長度 可擴展,同時采用按字讀取操作數(shù)和carry-save加法器,提高了整體的系統(tǒng)性能??墒?, Tenca-Todorov-Kog的設計也存在很多不足的方面。首先,采用的基不夠合理;其次,MM Cell運算單元的結構沒有達到最優(yōu)化,從圖2中可以發(fā)現(xiàn),關鍵路徑(圖2中用較長的粗黑 線標識)仍然很長,并且硬件開銷比較大;最后,在FIFO設計上,為了存儲臨時數(shù)據(jù)SS’和 SC’,需要采用2個存儲單元(如圖1),增加了存儲器的開銷。綜上所述,在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn),現(xiàn)有技術中至少存在平均性能低、時鐘頻率低、硬件開銷大與實用性差等缺陷。

發(fā)明內(nèi)容
本發(fā)明的目的在于,針對上述問題,提出基為16的高速Montgomery模乘法器 VLSI,以實現(xiàn)平均性能高、時鐘頻率高、硬件開銷小與實用性好的優(yōu)點。為實現(xiàn)上述目的,本發(fā)明采用的技術方案是基為16的高速Montgomery模乘法 器VLSI,包括N個匪Cell運算單元、FIFO存儲單元與2選1的數(shù)據(jù)選擇單元,其中在所 述N個匪Cell運算單元中,每個匪Cell運算單元的乘數(shù)輸入端均與乘數(shù)X(i)連接,第一 MM Cell運算單元的控制信號輸入端與控制信號連接、被乘數(shù)輸入端與被乘數(shù)Υω連接、模 數(shù)輸入端與模數(shù)^)連接,N個匪Cell運算單元依次串接;第N匪Cell運算單元的輸出 端,依次經(jīng)FIFO存儲單元與2選1的數(shù)據(jù)選擇單元后,反饋輸入至第一 MMCell運算單元; 所述2選1的數(shù)據(jù)選擇單元的控制信號輸入端,與N個MMCell運算單元的控制信號連接; N與i均為整數(shù),X、Y與M都是位長為N的整數(shù)。進一步地,所述FIFO存儲單元包括W位的加法器、2選1的選擇器、1位的進位寄 存器與N位的FIFO存儲模塊,其中所述W位的加法器的第一輸入端及第二輸入端,分別與 2選1的選擇器的第一輸入端及第二輸入端連接;第一輸出端與N位的FIFO存儲模塊的輸 入端連接,第二輸出端經(jīng)1位的進位寄存器、與W位的加法器的第三輸入端連接;所述N位 的FIFO存儲模塊的輸出端,與2選1的選擇器的第三輸入端連接;2選1的選擇器的第四 輸入端置0。進一步地,在所述N個匪Cell運算單元中,每個匪Cell運算單元包括四個6選 1數(shù)據(jù)選擇器、兩個4-to_2加法器、兩個解碼器與八個寄存器,其中一個解碼器、兩個6選 1數(shù)據(jù)選擇器、一個4-to_2加法器與一個寄存器順序設置。進一步地,所述兩個4-to_2加法器均為W位的4-to_2加法器,兩個W位的4-to_2 加法器設置在寄存器的兩邊,用以平衡路徑延遲。本發(fā)明各實施例的基為16的高速Montgomery模乘法器VLSI,由于包括N個匪 Cell運算單元、FIFO存儲單元與2選1的數(shù)據(jù)選擇單元,可以在數(shù)據(jù)需要輸入到FIFO存儲 單元的時候,先將輸入數(shù)據(jù)相加,然后輸入到FIFO存儲單元中;若不需要暫存數(shù)據(jù),則將數(shù) 據(jù)直接旁路給輸出。相比現(xiàn)有技術,有利于節(jié)省存儲開銷;從而可以克服現(xiàn)有技術中平均性 能低、時鐘頻率低、硬件開銷大與實用性差的缺陷,以實現(xiàn)平均性能高、時鐘頻率高、硬件開 銷小與實用性好的優(yōu)點。本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變 得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明 書、權利要求書、以及附圖中所特別指出的結構來實現(xiàn)和獲得。下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。


附圖用來提供對本發(fā)明的進一步理解,并且構成說明書的一部分,與本發(fā)明的實 施例一起用于解釋本發(fā)明,并不構成對本發(fā)明的限制。在附圖中 圖1為現(xiàn)有技術中Tenca-Todorov- Ko 提出的基為8的可擴展Montgomery乘法
6器的結構示意圖;圖2為現(xiàn)有技術中Tenca-Todorov- Ko 提出的基為8的可擴展Montgomery乘法 器中匪Cell運算單元的結構示意圖;圖3為根據(jù)本發(fā)明基為16的高速Montgomery模乘法器VLSI中FIFO模塊的結構 示意圖;圖4為根據(jù)本發(fā)明基為16的高速Montgomery模乘法器VLSI中匪Cell運算單 元的結構示意圖;圖5為根據(jù)本發(fā)明基為16的高速Montgomery模乘法器VLSI中RSA協(xié)處理器的 結構示意圖;圖6a為根據(jù)本發(fā)明基為16的高速Montgomery模乘法器VLSI的測試芯片的外部 結構示意圖;圖6b為根據(jù)本發(fā)明基為16的高速Montgomery模乘法器VLSI的測試芯片的參數(shù) 指標示意圖。
具體實施例方式以下結合附圖對本發(fā)明的優(yōu)選實施例進行說明,應當理解,此處所描述的優(yōu)選實 施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。根據(jù)本發(fā)明實施例,提供了基為16的高速Montgomery模乘法器VLSI。如圖3_圖 6b所示,本實施例包括N個MM Cell運算單元、FIFO存儲單元與2選1的數(shù)據(jù)選擇單元,其 中在N個匪Cell運算單元中,每個匪Cell運算單元的乘數(shù)輸入端均與乘數(shù)Χω連接, 第一 MM Cell運算單元的控制信號輸入端與控制信號連接、被乘數(shù)輸入端與被乘數(shù)Υω連 接、模數(shù)輸入端與模數(shù)Μω連接,N個匪Cell運算單元依次串接;第N匪Cell運算單元 的輸出端,依次經(jīng)FIFO存儲單元與2選1的數(shù)據(jù)選擇單元后,反饋輸入至第一 MM Cell運 算單元;2選1的數(shù)據(jù)選擇單元的控制信號輸入端,與N個MM Cell運算單元的控制信號連 接;N與i均為整數(shù),X、Y與M都是位長為N的整數(shù)。進一步地,在上述實施例中,F(xiàn)IFO存儲單元包括W位的加法器、2選1的選擇器、1 位的進位寄存器與N位的FIFO存儲模塊,其中W位的加法器的第一輸入端及第二輸入端, 分別與2選1的選擇器的第一輸入端及第二輸入端連接;第一輸出端與N位的FIFO存儲 模塊的輸入端連接,第二輸出端經(jīng)1位的進位寄存器、與W位的加法器的第三輸入端連接; N位的FIFO存儲模塊的輸出端,與2選1的選擇器的第三輸入端連接;2選1的選擇器的第 四輸入端置O。具體地,如圖3所示,F(xiàn)IFO存儲單元包含一個W位的加法器、一個2選1的選擇器、 一個1位的進位寄存器和一個N位的FIFO存儲模塊,在數(shù)據(jù)需要輸入到FIFO存儲模塊的 時候,先將輸入數(shù)據(jù)相加,然后輸入到FIFO存儲模塊中;若不需要暫存數(shù)據(jù),則將數(shù)據(jù)直接 旁路給輸出。與圖1所示的現(xiàn)有技術相比,這樣可以節(jié)省近一半的存儲開銷。進一步地,在上述實施例中,在N個匪Cell運算單元中,如圖4所示,每個匪Cell 運算單元包括四個6選1數(shù)據(jù)選擇器、兩個4-to-2加法器、兩個解碼器與八個寄存器,其 中一個解碼器、兩個6選1數(shù)據(jù)選擇器、一個4-to-2加法器與一個寄存器順序設置。這里,與圖2所示的現(xiàn)有技術不同的是,兩個4-to_2加法器均為W位的4_t0_2加法器,兩個W位的4-to_2加法器設置在寄存器的兩邊,用以平衡路徑延遲。對于基為16的 高速Montgomery模乘法器VLSI來說,乘數(shù)X每次掃描4位,經(jīng)Booth編碼后得到5位的輸 入數(shù)據(jù),被乘數(shù)Y和模M每次輸入一個字。乘數(shù)X的Booth編碼如公式(5)所示X⑴=(xi+3, xi+2,xi+1,Xi, χ』(5)在公式(5)中,Xi^1是前一次掃描的數(shù)據(jù)最高位。乘數(shù)X(i)通過qY解碼器得到qY 的值,其值等于公式(6)qY = -8xi+3+4xi+2+2xi+1+xi+xi_1(6)可以發(fā)現(xiàn),qY在[_8,8]范圍內(nèi),為了方便計算S(°) + (qYj X Y) (°)(算法2中第4步), 可以將其分解為兩個2的冪級數(shù)來實現(xiàn),如圖4中ΥωΡ和Y(i)N所示。舉例來說,假如qγ等 于3,可以將其分解為2和1,或者4和-1,這樣3Y就可以通過2Y+Y或者4Y-Y來實現(xiàn),而 2Y、4Y不需要通過做乘法得到,可以由Y的移位來得到。對于4-to-2加法器來說,其輸入 是兩個carry-save形式的操作數(shù),其輸出是一個carry-save形式的加法結果,所以可以將 2Y、Y或者4Υ、-Υ直接輸入到4-to-2加法器,而不需要去真正做一次加法或者減法。這樣, 可以通過對qY建立一張查找表來簡化計算。qY查找表如表1所示。表1 解碼表
權利要求
基為16的高速Montgomery模乘法器VLSI,其特征在于,包括N個MM Cell運算單元、FIFO存儲單元與2選1的數(shù)據(jù)選擇單元,其中在所述N個MM Cell運算單元中,每個MM Cell運算單元的乘數(shù)輸入端均與乘數(shù)X(i)連接,第一MM Cell運算單元的控制信號輸入端與控制信號連接、被乘數(shù)輸入端與被乘數(shù)Y(i)連接、模數(shù)輸入端與模數(shù)M(i)連接,N個MM Cell運算單元依次串接;第N MM Cell運算單元的輸出端,依次經(jīng)FIFO存儲單元與2選1的數(shù)據(jù)選擇單元后,反饋輸入至第一MM Cell運算單元;所述2選1的數(shù)據(jù)選擇單元的控制信號輸入端,與N個MM Cell運算單元的控制信號連接;N與i均為整數(shù),X、Y與M都是位長為N的整數(shù)。
2.根據(jù)權利要求1所述的基為16的高速Montgomery模乘法器VLSI,其特征在于,所 述FIFO存儲單元包括W位的加法器、2選1的選擇器、1位的進位寄存器與N位的FIFO存 儲模塊,其中所述W位的加法器的第一輸入端及第二輸入端,分別與2選1的選擇器的第一輸入端 及第二輸入端連接;第一輸出端與N位的FIFO存儲模塊的輸入端連接,第二輸出端經(jīng)1位 的進位寄存器、與W位的加法器的第三輸入端連接;所述N位的FIFO存儲模塊的輸出端,與2選1的選擇器的第三輸入端連接;2選1的 選擇器的第四輸入端置0。
3.根據(jù)權利要求1或2所述的基為16的高速Montgomery模乘法器VLSI,其特征在于, 在所述N個匪Cell運算單元中,每個匪Cell運算單元包括四個6選1數(shù)據(jù)選擇器、兩個 4-to-2加法器、兩個解碼器與八個寄存器,其中一個解碼器、兩個6選1數(shù)據(jù)選擇器、一個 4-to-2加法器與一個寄存器順序設置。
4.根據(jù)權利要求3所述的基為16的高速Montgomery模乘法器VLSI,其特征在于,所 述兩個4-to-2加法器均為W位的4-to-2加法器,兩個W位的4-to-2加法器設置在寄存器 的兩邊,用以平衡路徑延遲。
全文摘要
本發(fā)明公開了基為16的高速Montgomery模乘法器VLSI,包括N個MMCell運算單元、FIFO存儲單元與2選1的數(shù)據(jù)選擇單元。本發(fā)明所述基為16的高速Montgomery模乘法器VLSI,可以克服現(xiàn)有技術中平均性能低、時鐘頻率低、硬件開銷大與實用性差等缺陷,以實現(xiàn)平均性能高、時鐘頻率高、硬件開銷小與實用性好的優(yōu)點。
文檔編號G06F7/72GK101986261SQ20101056345
公開日2011年3月16日 申請日期2010年11月27日 優(yōu)先權日2010年11月27日
發(fā)明者方井霞, 范益波, 袁帥 申請人:無錫高枕科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
建昌县| 弥勒县| 凤冈县| 高要市| 安多县| 平原县| 黔西| 个旧市| 墨竹工卡县| 东至县| 砚山县| 英吉沙县| 巴彦淖尔市| 手游| 五台县| 滨海县| 安庆市| 定州市| 迁西县| 潼关县| 建平县| 旌德县| 沅江市| 桃园县| 赤峰市| 无棣县| 内江市| 石楼县| 葵青区| 乡宁县| 龙江县| 赤壁市| 永顺县| 治县。| 抚州市| 乡宁县| 江西省| 郯城县| 本溪| 射阳县| 武平县|