• 沒有找到結果。

第四章、 以四為基底 Montgomery 演算法

4.5 模乘法的比較

比 較 近年使 用 進位 儲 存加法 器 實 現 以四 為 基底 Montgomery 演 算 法 , F.

Tenca[10]的架構如圖 4-21 所示,架構的輸入 A、B 各只有一個,如果要應用在 RSA 模指數演算法中,必須把每次運算的結果 sum 和 carry 相加,相加的結果才可以當 作模指數演算法的輸入,在進行加解密運算都是大位元運算,大位元相加的動作 非常浪費時間,且相加完下一個迴圈經過進位儲存加法器運算加法使的結果又拆

41

成了兩個,又要再相加一次,無法有效率的應用在 RSA 模指數演算法中。

Tenca’s

A B N

S1 S2

圖 4-21 Tenca’s 架構

S. S. Ghoreishi[11]使用 Roorda 演算法,不需要增加有號數,即可做有號數運 算,但是在演算法中計算太多判斷式:(ti1, ti0)及 Cin,導致電路關鍵路徑太長,且 最後必須多兩層進位儲存加法器才可以求出結果,該電路的結果也像 F. Tenca 的架 構一樣,需要做最後的加法,才能進行模指數的運算,也是無法有效率的應用在 RSA 模指數演算法中。

M. R. Lee[9]使用進位儲存加法器的以四為基底 Montgomery 演算法為本篇重 要的參考文獻,文中提及模乘法的架構及輸出使用 carry-save 的表示式直接輸出結 果,輸入拆成 A1+A2 及 B1+B2(如圖 4-22 所示)來配合模指數的運算,將輸出的 sum 及 carry 拉回輸入依照演算法所需的位置擺放,即可不需最後的加法也能進行模指 數的運算,搭配文中所提及的 MBRFA,可以有效率的應用在模指數演算法中實現 RSA 密碼系統。根據我們的觀察此電路架構可以繼續做最佳化,讓它的面積更小 且速度更快,下圖 4-23、4-24 是改進的過程,圖 4-23 為 M. R. Lee 模乘法電路架 構中計算(t1, t0)的算式,從圖 4-24 的電路中可以看到我們將圖 4-23 的 cb 上移到 CSA1 的 carry0就可以使我們計算(t1,t0)的關鍵路徑由兩個互斥或閘跟一個 and 變成 一個 and,如此一來就可以使電路的關鍵路徑減短,但是關鍵路徑中還是有一個 4-1 多工器及一個 and 的存在。為了解決這個問題,我們利用四倍 B1、四倍 B2 化 簡電路的概念使(t1,t0)與 5-to-2 CSA 平行運算,再搭配直接在電路中計算 2 補數得 到負值的方法,完成修改使用進位儲存加法器的以四為基底 Montgomery 演算法,

42

43

雖然完成的模乘法多做一次運算,但是少了 D1 及 D2 兩個至少 512-bit 的暫存器,

整體電路的關鍵路徑也比 M. R. Lee[9]來的短,面積來的小。

我們提出的架構修改了使用進位儲存加法器的以四為基底 Montgomery 演算 法,可以搭配模指數 H 演算法完成 RSA 密碼系統,模指數合成結果為 455MHz 合 成面積為 76K gate count。下表 4-5 我們將各個參考文獻模乘法面積、關鍵路徑、

週期數都列成表出來做比較,面積的部分我們省去小電路的面積,列出進位儲存 加法器主體及所需的元件,關鍵路徑為電路運算的最長路徑。

從表 4-5 這樣的比較表格並沒有辦法很直觀看出面積以及關鍵路徑的好壞,為 了進行公平的比較,我們在下面提供表 4-6 來做為一個參考的依據,裡面是 TSMC 90nm 標準元件的標準化面積及延遲,我們是將 FA 的面積以及延遲當做 1 來跟其 他的元件做比較,合成的環境及規範都是相同的,元件是使用 TSMC 90nm 裡現有 的元件,並沒有另外去做最佳化,完成後將表格的數據帶入各個參考文獻中去計 算各個參考文獻中模乘法所需的面積以及延遲,將面積以及延遲時間量化好做比 較,最後將兩者相乘計算 AT 進行比較,完成的結果如表 4-7。

在文獻[14]中提到一個修改 5-to-2 進位儲存加法器的架構,因為他是將兩個 1-bit 全加器合併在一起,合併後的 2-bit 加法器有較短的關鍵路徑(如圖 4-25),將 修改 5-to-2 進位儲存加法器(如圖 4-26)跟我電路修改的兩個方法合併在一起:1.利 用四倍輸入化簡電路 2.直接以 2 補數計算負值,完成速度更快且面積不變得模乘 法電路,電路如圖 4-27 演算法如表 4-8,表 4-8 跟我所提出之電路差異在於加法的 部分使用修改 5-to-2 進位儲存加法器,我們將這個電路也放進表 4-5 及表 4-7 進行 比較,從量化的結果來看該電路整合三種方法,在 AT 的表現上最好。

44

CSA with 2-bit Adder

3

45 Shieh[13] 2n×AFA+9n×AREG

1n×AMUX3+1n×AMUX2+ 3n×AAND

2×TFA+TMUX2+TAND n+4

Kuang[12] 2n×AFA+9n×AREG+ 2n×AMUX4+2n×AMUX2

2×TFA+TMUX4 (n+5)×0.81 Lee[9] 3n×AFA+9n×AREG+

2n×AMUX5+1n×AMUX4

3×TFA+TMUX5+ 2n×AMUX5+1n×AMUX4

2×TFA+TMUX5 2n×AMUX5+1n×AMUX4

3×TFA+TMUX5+TOR 2n×AMUX5+1n×AMUX4

2×TFA+TMUX5 (Throughput) 的比較,因為參考文獻並不是都是使用 TSMC 90nm 去實現的,所以 我們把各個參考文獻的關鍵路徑都用表 4-6 將其標準化,推測那些電路在 TSMC 90nm 下所能達到的速度,再利用求出的值去計算我們的處理能力,我們處理能力 的計算方式為位元數除以 RSA 的全部運算時間,將標準化後的結果寫成表 4-9。

46

表 4-6 標準元件標準化

REG FA OR AND MUX2 MUX3 MUX4 XOR MUX5 Delay - 1 0.26 0.23 0.24 0.36 0.37 0.26 0.69

area 0.92 1 0.21 0.21 0.38 0.75 1.04 0.33 1.42

表 4-7 分析面積及延遲

面積 關鍵路徑 ATP

(n×AFA×TFA×週期數) McIvor

5-to-2[6]

10.07n×AFA 3.75×TFA 37.76 McIvor

4-to-2[6]

12.36n×AFA 3.12×TFA 38.56 Shieh[13] 12.04n×AFA 2.47×TFA 29.74 Kuang[12] 13.12n×AFA 2.37×TFA 25.19 Lee[9] 15.16n×AFA 4.81×TFA 36.46 Yao[14] 15.16n×AFA 3.18×TFA 24.10 ours 13.32n×AFA 3.69×TFA 24.58 ours+Yao 13.32n×AFA 3.18×TFA 21.18

表 4-9 列了一個以四為基底及兩個以二為基底的模乘法所完成的模指數來做 比較,文獻中四個電路都是使用模指數 H 演算法完成 RSA,面積方面 Shieh[13]

及 Kuang[12]為 TSMC 13um 實現的結果,頻率方面有使用標準化的方法去計算估 計 Shieh[13]及 Kuang[12]在 TSMC 90nm 合成出來的速度,比較值得注意的是週期 數的部分,在這邊模指數週期數都是用最差的案例去計算,從表 3-6 模指數 H 演 算法中可以得知最差的案例就是假設 E 皆為 1,就是模乘法次數乘二乘上指數次方 次,Kuang[12]在週期數的部分使用省略的技巧(bypass),使模乘法週期數減少 0.19%,

但就結果來看本論文所提出的修改使用進位儲存加法器的以四為基底 Montgomery 演算法所完成的 RSA 密碼系統架構 Throughput 是最好的。

47

表 4-8 我的加 Yao 的模乘法演算法 Input:A (Booth encoded)(k-bit), B1, B2, N(n-bit)

Output:(S1, S2) = A×4B×R-1mod N, R = 4k 1. S1 = 0, S2 = 0, cb = 0

2. B1 = 4B1, B2 = 4B2 3. for i = 0 to k-1 {

4. (t1, t0) = (S1 + S2 + cb)mod 4 5. (S1, S2) = S1+S2+ai×(B1+B2)+cb

6. if(t1 = 0 and t0 = 0) (C, S) = CSA(S1+S2+0) 7. if(t1 = 1 and t0 = 0) (C, S) = CSA(S1+S2+2N) 8. if(t1 = n1 and t0 = 1) (C, S) = CSA(S1+S2-N) 9. if(t1 != n1 and t0 = 1) (C, S) = CSA(S1+S2+N) 10. cb = S[1] | C[1]

11. S2 = S >> 2, S1 = C >> 2 12. {

13. Return S1, S2

表 4-9 比較不同 RSA 實現結果

Gate Count Clock(Hz) # of clock 製程 處理能力 Radix Shieh[13] 70K(13um) 680M 528384 90nm 659.2K bps 2 Kuang[12] 69K(13um) 709M 428820 90um 846.8K bps 2 Lee[9] 121K 357M 263680 90nm 693.5K bps 4 ours 76K 455M 264704 90nm 879.2K bps 4

48

相關文件