• 沒有找到結果。

寬頻分碼多重進接無線通訊上鏈傳收系統之設計與製作---子計畫II:寬頻分碼多重進接無線通訊之加解密系統(I)

N/A
N/A
Protected

Academic year: 2021

Share "寬頻分碼多重進接無線通訊上鏈傳收系統之設計與製作---子計畫II:寬頻分碼多重進接無線通訊之加解密系統(I)"

Copied!
5
0
0

加載中.... (立即查看全文)

全文

(1)

行政院國家科學委員會補助專題研究計畫成果報告

※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ 寬 頻 分 碼 多 重 進 接 無 線 通 訊 之 加 解 密 系 統 C r y p t o s y s t e m s f o r W i d e - b a n d C D M A W i r e l e s s ※ C o m m u n i c a t i o n s ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ 計畫類別:□個別型計畫  □整合型計畫 計畫編號:NSC-89-2219-E-009-016 執行期間:88 年 8 月 1 日至 89 年 7 月 31 日 計畫主持人:王聖智 執行單位: 國立交通大學電子研究所 中 華 民 國 八十九 年 十一 月   日

(2)

行政院國家科學委員會專題研究計畫成果報告 計畫名稱:寬頻分碼多重進接無線通訊之加解密系統 Cr yptosystems for Wide-band CDMA Wireless Communications

計畫編號:NSC-89-2219-E-009-016 執行期限:88 年 8 月 1 日至 89 年 7 月 31 日 主持人:王聖智 (交通大學電子工程系副教授) 計畫參與人員:蔡維昌、連璧賢、柯瑞泰 (交通大學電子所研究生) 一、中文摘要 本年度計畫的結果進度包含三個部分:RSA 的硬體架構設計、利用 DSP 系統模擬實現 RSA 架構以及進行 Elliptic Curve 密碼系統演算法之 研究並針對在 Elliptic Curve 中主要運算 - finite field multiplication ,提出一個新的演算法架構, 以加快 Elliptic Curve 密碼系統的運算速度。 關鍵詞:密碼學,RSA 密碼系統,橢圓曲線密碼

系統,公匙密碼系統 Abstract

This report includes three parts: the RSA hardware architecture design, the simulation of RSA hardware architecture on a DSP system, and a new architecture design for the major computation – finite field multiplication in Elliptic Curve Cryptosystems.

Keywords : Cryptography, RSA Cryptosystem, Elliptic Curve Cryptosystem, Public-Key Cryptosystem 二、緣由與目的: 無線通訊上資料的安全問題已經逐漸的受到 重視,為了避免被截聽,故於通訊過程中加上資 料的加解密,才能確保安全。 本計畫的目標是針對 RSA 公匙密碼系統和 橢圓曲線密碼系統,研究兩者的演算法,找出合 適於 WCDMA 的方法並加以實現。除了公匙密 碼系統的演算法之外,亦將進行關於架構的設 計、速度、和低功率等方面之研究,並將討論與 其它 WCDMA 設計區塊之整合與界面之處理。 三、結果與討論 (1) RSA 的硬體架構設計 我們嘗試運用 Systolic Array 之架構來實現 一個 RSA 加解密系統,此架構中最主要的運算 就是乘法冪,此處我們採用的是以 Montgomery Algorithm 為主體的實現方式。利用兩個主要的觀 念:Partitioning 及 Pairing-off,實現硬體上之加 速乘法冪的運算。 原始實現乘法冪的每個乘法運算區塊如下, A、B 分別為乘數和被乘數,N 為冪數,R 為乘法 冪的餘數,每一次的區塊運算中的每一個位元都 和前一次區塊的前一個位元有關連性: 0 0 1 0 1 0 1 0 ) ( , 2 , 2 , 2 B b N n q R a b a A m i i i i i i m i i i i m i i = = = ⊕ =

− = − = − = 1 1 1 1 ) 2 ( ) 1 ( ) ( ) 2 ( 2 ) 1 ( 2 ) ( − − − − + + + + = + + j i j i j i j i j i j i j i j i Carry Carry R n q b a Carry Carry R 以下分別是我們所提出,改進乘法冪運算的兩個 設計。 (i) Partitioning 將 原 始 的 式 子 分 解 成 兩 式 , 再 利 用 pre-computation 的技巧計算初始值,使一個 clock cycle 中的運算減少。

(3)

0 0 1 0 1 0 1 0 ) ( , 2 , 2 , 2 B b N n q R ab a A m i i i i i i m i i i i m i i = = = ⊕ =

− = − = − = 1 ) ( ) ( 2 ) (Pi j+ CPi j=aibj+qinj+CPi j (CPi)j =(Carry1i)j 1 1 1 2( ) ( ) ( ) 2( ) ) (Ri j + CRi j = Pi j+ Ri j+ CRi j (CRi)j =(Carry2i)j 若是考慮了 pre-computation 後,以上的式子將可 轉換成: 0 0 1 1 1 1 2) ( ) ( ) (R P CR ab qi = iiii 0 1 1 1 1 2 0 ( ) ( ) ( ) ) (Pi = RiPiCRi ) ) ( ) ( ) (( ) (CPi 0 =aib0Ri2 1Pi1 1CRi1 0 在 Fig.1 中 , 我 們 運 用 模 型 呈 現 出 partitioning 的實際情況。 我們將用這個架構平行運算以充份利用每個 硬體而不會浪費等待資料的時間。但是從產生 (Ri)j這個位元到下一個位元 (Ri+1)j之間仍然需

要一個 clock cycle 的等待時間,也就是 one clock cycle gap problem。雖然 partitioning 的架構不會解 決這個問題,但是它會使每一個 clock cycle 所需 的運算減少,而加快了運算的速度。

Fig.2 為 partitioning 運算乘法冪的時序圖, 而 Fig.3 為 Partitioning 的 Systolic Array 架構。 因為每一個基本的運算架構都是固定的,所以我 們得到 Fig.4 (b)中所示的 1-D 的 systolic array。

(ii) Pairing-off 如果將兩個位元配對成位元組,平行處理乘 法冪的運算,也就是在一個 clock cycle 中,同時 平 行 處 理 多 個 位 元 組 。 雖 然 位 元 組 之 間 有 dependency,但是因為每個位元組在一個 clock cycle 後半段的運算需要來自較低位元組前半段

Fig. 2. Timing sequence of (Pk)i and (Rk)i after removing some data dependencies

Fig. 3. Two-dimensional and one-dimensional structures of the double –layer systolic array Fig.1. Data dependency of Montgomery’s

algorithm (a) original architecture (b) partitioned architecture

(4)

的運算結果,所以整體而言,是不需要多餘的延 遲時間等待的,所以速度上不會受影響。而且這 樣的設計在計算前後高低的不同位元時,是不需 要等待一個 clock cycle,所以不會有 one clock cycle gap problem。以下是合併配對的數學式。

1 1 2 1 2 2 2 1 2 2 ) ( 2 2 ) ( ) ( 2 ) ( 4 − − − − + + + + = + + j i j i j i j i j i j i j i j i CP n q n a n q b a P P CP 2 2 2 2 2 1 1 2 1 2 1 3 2 2 2 1 ) ( ) ( ) ( ) ( ) ( 2 ) ( ) ( 2 ) ( 4 − − − − − − − − − − + + + + = + + j i j i j i j i j i j i j i j i CR P R P R R R CR Fig.4 就是 pairing-off 的架構圖。可以看到 clock cycle k 時可運算得到(Ri)j的值,而在 clock cycle k+1 時,就可接由運算而得到(Ri+1)j的結 果,不需要等待一個 clock period 的時間。 (2) DSP 系統模擬實現 RSA 架構 在此部份,目前我們已經熟悉 TI 的 DSP 發 展系統,了解此系統上之硬體規格架構及使用介 面。由於此系統中之硬體運算資源有限,加上所 使用之字元長度(word length)為 32 bits,目前我 們正嘗試修改我們的運算架構,以便於在 DSP 系 統上模擬出 RSA 系統中整個加解密的過程。 基本上,我們在模擬整個 RSA 公匙密碼系統 的標準時,必須先產生兩個強大的質數 p,q 作 為秘密金匙,還要產生兩個數 e, d,使 ed = 1 mod (p-1)(q-1),分別作為加、解密的公開金匙以及秘 密金匙。而 RSA 的標準,是針對一組 512 – bit 的 資料加、解密,以確保安全性。所以我們在 DSP 系統上設計時,也是試著以 512 – bit 的大小為一 組資料處理,所以在 DSP 系統上,我們需要 16 個 words 大小來處理一組資料,所以 words 之 間的溢位、借位問題也是我們主要的考量問題。 (3) Elliptic Curve 密碼系統演算法之研究發展

Elliptic Curve Cryptosystem (ECC) 一般是架 構在 Fq 或 F2m 上,而 Fq主要是作 modulo q 的 運算,若是運用 homogenous 座標系,可消除在 ECC 中所需要的除法運算,而只需進行乘法的運 算。因此,一個 ECC 系統之實現上,主要的運算 將是架構在 Fq 或是 F2m 上的乘法冪運算。目前 我們已完成整個 ECC 系統之研究,正著手以 Systolic Array 的架構來設計實現。

在 Elliptic curve cryptosystem (ECC)中,我們 採 用 了 在 有 限 域 GF(2m ) 上 non-supersingular Elliptic curve 曲線,而有限域中的有意義的數值是 定義在曲線的有限點上,而曲線的定義如下: b ax x xy y E 2 + = 3 + 2 + : where a, bGF(2m) and b ≠ 0 如果 P = (x1,y1) , Q = (x2,y2) ≠P 且 P, QE ,則定義兩點 P, Q 的加法, P + Q = (x3,y3) ∈ E,而它們的數學運算關係如下:       + + + + + + + + + = 2 1 2 1 2 1 2 1 2 1 2 2 1 2 1 3 ) ( x b x a x x x x y y x x y y x , and       + + + + + + + + = 3 3 1 1 1 2 1 1 3 3 1 2 1 2 1 3 ) ( ) )( ( x x x y x x y x x x x x y y y 而在 GF(2m ) 上 的加法、乘 法等運算的 基 底,我們採用了 standard basis representation ,而 兩 個 數 A(α) 和 B(α) 均 定 義 是 屬 於 有 限 域 Fig. 4. Pairing-off style of the non-interlaced

architecture

PQ P = Q

PQ P = Q

(5)

GF(2m) 中,數學表示式如下: 0 1 2 2 1 1 1 0 ... ) ( a a a a a a A m m m m i m i i = + + + + = − − − − − =

α α α α and 0 1 2 2 1 1 1 0 ... ) ( b b b a b b B m m m m i m i i = + + + + = − − − − − =

α α α α 而在有限域GF(2m ) 上的加法表示式如下:

− = = + = 1 0 ) ( ) ( ) ( m i i i s B A α α α where si = ai ⊕ bi 而乘法冪的演算法如下面所示,主要是移位 (shift) 和求餘數的運算 (mod):

Multiplication Algorithm over GF(2m) by using Modulus Operation R0(α)=0; for i = 1 to m R(α) (R 1(α)α amiB(α))(modF(α)) i i − − + = end P(α)=Rm(α)

where aj is the jth coefficient of A(α), Ri(α) =

− = 1 0 m j j i j r α and

− = − − = 1 0 ) ( ) ( m j j j i m i m B a b a α α 在這個乘法的演算法中,可以發現最主要的 運算就是 R(α) (R 1(α)α amiB(α))(modF(α)) i i − − + = 。 經由化簡我們可以得到在第 i 個 iteration 中的 第 j 個位元的運算是 i mi j j j i m i j r f r a b r = −−11⊕ 1 1 ,

而以 systolic Array 的架構來實現這一個 finite field multiplication。

針對這個架構在 systolic Array 上的 finite field multiplication 動作,我們仿照先前在 RSA 中的設計,套用了 partitioning 和 pairing-off,來 加 速 這 個 運 算 。 partitioning 是 將 finite field multiplication 的運算分解,減少 clock period , 式子如下。 i mi j m i j r a b p = −1⊕ 1 i j i j i j r p r = −1⊕ 1 pairing-off 是將 partitioning 後結果,合併沒 有關聯性的部分,拿掉多餘的 Flip-Flop,並且作 最佳化的處理。結合這兩個部分,我們預期將可 以加速 finite field multiplication 的運算速度,目 前,此設計之硬體實現正在進行中。 四、計畫結果自評 在 RSA 的硬體設計中,我們針對 1024-bit 的 partitioning 架構設計,可以得到一個 cycle time 只需要 2.0ns,面積約為 240 K 個電晶體大 小的實際硬體結果。而 1024-bit 的 paring-off 架 構的運算,經由估計得到的一個 cycle time 為 2.7ns ,面積約為 209K 個電晶體的大小的硬體結 果。我們設計出這兩種硬體架構經由模擬測試結 果顯示,在速度及硬體面積上,都較現有的其他 架構為佳。 用 DSP 系統模擬實現 RSA 的架構目前尚 未完成。 另外,針對在 Elliptic Curve 密碼系統中主要 運算 – finite field multiplication 的運算,我們已 經提出一個演算法,而正要實現和驗證。

五、參考文獻

[1] W. Diffie and M. Hellman, “New Directions in Cryptography”, IEEE Transactions on Information Theory, vol. IT-22, pp. 644-654, November 1976. [2] R.Rivest, A. Shamir and L. Adleman, “A Method for

Obtaining Digital Signatures and Public-Key Cryptosystems,” Communications of the ACM, vol. 21, pp. 120-126, February 1978.

[3] D.Denning, “Cryptography and data security”, Addison-Wesley, 1982

[4] S. Bandyopadhyay and A. Sengupta, “Algorithms for multiplication in Galois field for implementation using systolic arrays”, IEE Proceedings, Vol. 135, Pt. E, No. 6, pp.336-340. November, 1988.

數據

Fig. 3. Two-dimensional and one-dimensional structures of the double –layer systolic arrayFig.1

參考文獻

相關文件

接收器: 目前敲擊回音法所採用的接收 器為一種寬頻的位移接收器 其與物體表

分項計畫「海上絲路之探索」之設計與推行,基本上針對本校通

„ 無線射頻識別 (Radio Frequency Identification, RFID) 系統近年來越來越普及,應用範圍如供

 無線射頻識別 (Radio Frequency Identification, RFID) 系統近年來越來越普及,應用範圍如供

 Number of spectral averages:頻譜 平均的數量,設定為1。. 教育部資通訊科技人才培育先導型計畫

‡ RFID 運作原理是透過一片小型硬體的無線射頻辨識技 術晶片( RFID chips),利用內含的天線來傳送與接

„ 無線射頻識別 (Radio Frequency Identification, RFID) 系統近年來越來越普及,應用範圍如供

無線射頻識別 (Radio Frequency Identification, RFID) 系統近年來越來越普及,應用範圍如供