• 沒有找到結果。

電子競標系統之設計與製作---子計畫II:金鑰管理之設計與製作(III)

N/A
N/A
Protected

Academic year: 2021

Share "電子競標系統之設計與製作---子計畫II:金鑰管理之設計與製作(III)"

Copied!
16
0
0

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

全文

(1)

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

子計畫二:金鑰管理之設計與製作

計畫類別: 整合型計畫

計畫編號: NSC91-2213-E-011-013-

執行期間: 91 年 08 月 01 日至 92 年 07 月 31 日 執行單位: 國立臺灣科技大學電子工程系

計畫主持人: 邱榮輝

計畫參與人員: 卓英哲、林立倫、楊治原、洪偉騰、周彥儒

報告類型: 完整報告

處理方式: 本計畫可公開查詢

國 92 年 9 月 29 日

(2)

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

子計畫二:金鑰管理之設計與製作

計畫類別: 整合型計畫

計畫編號: NSC 91-2213-E-011-013

執行期間: 91 年 08 月 01 日 92 年 07 月 31 日

執行單位: 國立臺灣科技大學電子工程系

計畫主持人: 邱榮輝

計畫參與人: 卓英哲、林立倫、楊治原、洪偉騰、周彥儒

報告類型: 完整報告

處理方式: 本計畫可公開查詢

92 9 28

(3)

一、 計畫摘要

本計畫「金鑰管理之設計與製作」為總計畫「電子競標系統之 設計與製作」之子計畫二,目的為協助提供其他子計畫所需之加密 與簽章等密碼演算法之各種金鑰之產生、分送、儲存、註銷與歸檔 等管理工作。

本子計畫主要內容為:

第一年針對各子計畫之密碼演算法如加密或簽章需求,就現有 各種金鑰管理中研擬適合各子計畫之金鑰管理方法。

第二年再依第一年所研擬之其他子計畫所需之金鑰之產生、分 送、儲存、註銷與歸檔等管理方法,以程式實作一金鑰 管理系統。

第三年則以第一、二年所研擬設計與實作本總計畫電子競標系 統之金鑰管理之經驗,研析其實作技術問題與瓶頸,嘗 試尋找創新改善技術,以提升金鑰管理效能及其安全 性。

在三個年度中,本子計畫共完成下列工作項目:

(4)

1. 完成亂數產生器之程式實作。

2. 產生 PKCS#1 金鑰對。

3. 主金鑰分享及回復。

4. 產生憑證及個人資訊交換檔(pfx)。

5. IC 卡憑證之製作。

二.完成之工作項目

2.1 完成亂數產生器之程式實作

依 據 第 一 年 所 擬 定 之 亂 數 產 生 器 , 參 考 ANSI X9.17 Pseudorandom Number Generator,並將其 triple DES 加密方式改為 AES,如圖 2-1-1 所示。圖中所有的位元長度均為 128 位元,產生之 128 位元亂數可用來當作標案金鑰以及提供給質數測試之用。

AES

AES

AES

DTi

Vi

Vi +1 Ki

DTi Date/time value at the beginning of the i-th generation stage Vi Seed value at the beginning of the i-th generation stage Ri Pseudorandom number produced by the i-th generation stage Ki AES key used for each stage

圖 2-1-1 本子計畫(金鑰中心)採用之亂數產生器

(5)

本計劃使用 Java 程式實作所設計之亂數產生器,完成後並根據 FIPS 140-1 所提供的下列檢測方法做自我測試:

- The Monobit Test - The Poker Test - The Runs Test - The Long Run Test

- 自相關性檢測(Autocorrelation Test) - 線性複雜度檢測(Linear complexity Test)

經測試後,實驗結果如表 2-1-1、表 2-1-2、表 2-1-3、表 2-1-4、

圖 2-1-2 及圖 2-1-3 所示,實驗結果完全符合要求。

表 2-1-1 Monobit test

Monobit test

規格需求 本計畫亂數

9654~10346 bit 20000 bit 中,1 的個數為 10018bit,符合規格

表 2-1-2 Poker test

Poker test 規格需求: 1.03< X <57.4

[n] : 第 n 個 4 bit 樣型(pattern),例如:[13] = [1101]

5000 )

( )

50000 / 16 (

15

0

2

×

=

=

i f x

i

(i)

f 為將 20000bits 轉成 bytes 後每一 4 bit 16 進制值出現的 次數。

(6)

本計畫亂數:[4bit 值] 出現次數

[0]299 [8]317

[1]299 [9]315

[2]328 [10]324

[3]294 [11]302

[4]290 [12]337

[5]304 [13]339

[6]341 [14]324

[7]289 [15]298

x = 15.0 ,符合規格

表 2-1-3 Runs test

Runs test [n]:長度

規格需求

No. 1

Length of Run times … …

No. 12

Length of Run times

0's [1] 2486

0's [2] 1298

0's [3] 624

0's [4] 315

0's [5] 160

0's [6] 140

1's [1] 2524

1's [2] 1263

1's [3] 630

1's [4] 291

1's [5] 149

1's [6] 167

… … 0's [1] 2541

0's [2] 1241

0's [3] 593

0's [4] 349

0's [5] 143

0's [6] 151

1's [1] 2535

1's [2] 1226

1's [3] 631

1's [4] 316

1's [5] 144

1's [6] 164 [1] 2267~2733

[2] 1079~1421 [3] 502~748 [4] 223~402 [5] 90~223 [6+] 90~223

需產生 12 次,每次皆符合規格。

(7)

表 2-1-4 Longrun test

Longrun test

規格需求 本計畫亂數

Run Max<34 Run Max.=14,符合規格

圖 2-1-2 自相關檢測

圖 2-1-3 線性複雜度檢測

(8)

2.2

產生 PKCS#1 金鑰對

一般若要產生具較高安全性之金鑰對,則必須先產生不易猜測之 大質數。所以本子計畫採用亂數產生器產生之大整數,並採用 Miller and Rabin 質數測試法找出所需之大質數。測試法如下:

1. 產生待測之亂數 n。

2. 再產生亂數 a0 3. 計算 test =a0(n1)/2modn

4. 若 test=1 或 test=n-1,n 可能為質數,則進行下一步驟,否 則 n 不為質數,跳出本程式。

5. 再產生亂數 a1 … as-1,再執行步驟 3,4 之測試。

本測試法執行後,共產生 s 次亂數,若皆通過,則 n 為質數 之機率約小於 1-2-s

核心演算法稱為 WITNESS,如以下所定義:

WITNESS (a,n)

(9)

1. let bkbk1Lb0 be the binary representation of (n-1) 2. d←1

3. for ik downto 0 4. do xd

5. d←(d×d) mod n

6. if d=1 and x1 and xn-1 7. then retur n TRUE 8. if b =1i

9. then d(d×a) mod n 10. if d1

11. then retur n TRUE 12. retur n FALSE

若傳回 TURE,則 n 不是質數,若傳回 FALSE,則 n 是質數的 機率至少有 1-2-s,以上演算法我們使用 Java 程式實作,在 CPU 時脈 為 900 MHz 的平台上、s =16,產生一 512 位元的質數平均僅需約 1~2 秒之間。

我們使用上述所產之大質數,並依據 PKCS#1 RSA Cryptography Standard 所定的規格產生金鑰對及相關參數,並將其寫成一支程式,

產生 e,d 及 PKCS#1 所需 dP,dQ,qInv 等相關參數如下所示:

1. RSA public key (n,e)

- n, the modulus, a nonnegative integer

- e, the public exponent, a nonnegative integer 2. RSA private key

(1) (n,d)

- n, the modulus, a nonnegative integer

- d, the private exponent, a nonnegative integer (2) Quintuple (p,q,dP,dQ,qInv)

- p, the prime

(10)

- q, the prime

- dP, the prime p’s exponent - dQ, the prime q’s exponent

- qInv, the CRT coefficient, a nonnegative integer

上述所產生之參數需滿足下列式子:

1. n=p×q

2. φ(n)=(p-1)×(q-1) 3.

e · d ≡ 1 (mod

φ(n)) 4.

e · dP ≡ 1 (mod p–1))

5.

e · dQ ≡ 1 (mod q–1))

6.

q · qInv

1 (mod p)

在 CPU 時脈為 900 MHz 的平台上、檢測次數 s =16,產生 RSA 1024

位元金鑰對所需時間約為 4~6 秒之間(扣除最快和最慢時間)。

2.3 金鑰分享及回復

本計畫設計之金鑰分享及回復機制如下:系統伺服端的程式於安 裝時,同時執行主金鑰內部分享與主金鑰外部協助的秘密分享過程,

其中內部的秘密分享為(3,3)門檻策略;外部協助的秘密分享為(t,n) 門檻策略。主金鑰內部秘密分享有三個成員,分別是系統管理者、系 統伺服器檔案及伺服器電腦硬體(我們使用網路卡卡號);主金鑰外部 協助秘密分享則由

n 位外部協助分享秘密者來協助分享。系統安裝

時,系統會自動產生:(1)系統公私鑰對,並隱藏存於系統中;(2)主金 鑰內部分享之三把次金鑰,一把存於 IC 卡由管理者保管,另二把分 別隱藏存於系統中;(3)主金鑰外部協助者之 n 把次金鑰,每把次金鑰 以協助者之公鑰加密後存於系統之公開檔案中,而每位協助者之公私

(11)

鑰對則存於其保管之 IC 卡中。

主金鑰分享視窗如圖 2-3-1,過程步驟如下。

(a) 在分享人數及門檻值內填入 3。如圖 2-3-2(a)所示。

(b) 輸入 3 個公開代號。如圖 2-3-2 (b)所示。

(c) 開啟欲分享之金鑰檔。如圖 2-3-2 (c)所示。

(d) 程式儲存次秘密檔。如圖 2-3-2 (d)所示。儲存完畢後程式會自 行將金鑰檔刪除。

圖 2-3-1 主金鑰內部分享

圖 2-3-2 (a) 輸入分享人數及門檻值 圖 2-3-2 (b) 輸入公開代號

(12)

圖 2-3-2 (c) 開啟欲分享之金鑰檔 圖 2-3-2 (d) 程式儲存次秘密檔

進行主金鑰回復過程如下。

(a) 請依序開啟操作(1)所儲存之次秘密檔,如圖 2-3-3(a)所示。

(b) 共開啟門檻值 3 之 3 個次秘密檔,如圖 2-3-3 (b)所示。

(c) 將回復之金鑰儲存成檔案,如圖 2-3-3 (c)所示。

(d) 自行開啟步驟 c 所存之金鑰檔,並比較是否和之前的金鑰一 致。

圖 2-3-3 (a) 開啟次秘密檔 圖 2-3-3 (b) 程式所開啟之次秘密

(13)

圖 2-3-3 (c) 儲存回復之金鑰

2.4

產生憑證及個人資訊交換檔(pfx)

在本群體計畫之電子競標系統中,有意願參與投標之廠商需填寫 自公告中心下載之註冊基本資料表,並親自將相關文件送至 EBCA 註冊審查。若廠商已有 GCA 憑證,則本系統之註冊中心將驗證 GCA 憑證;若廠商無 GCA 憑證,或 GCA 憑證驗證未通過,則需辦理申請 本電子競標系統之 EBCA 憑證。在本系統規劃中,EBCA 憑證由本子 計畫金鑰中心產生,產生後送至註冊中心。註冊中心再將憑證存入 IC card 後交付廠商。本子計畫依 X.509 產生 EBCA 公鑰憑證,如圖 2-4-1 所示。本子計畫依據 PKCS#12 標準產生個人資訊交換檔(.pfx),即 公私鑰憑證,如圖 2-4-2 所示。

(14)

圖 2-4-1 EBCA 之公鑰憑證(.cer)

圖 2-4-2 EBCA 之個人資訊交換檔(.pfx)

(15)

2.5 IC 卡憑證之製作

在本電子競標系統中,單位主管及投標廠商具有公私鑰對,並使 用 IC 卡儲存,操作過程中凡需使用到簽章及憑證的部分,皆需用 IC 卡讀取,大幅提高系統安全性。

隨著個人電腦與網際網路的蓬勃發展,安全技術也因此日趨重 要。由於 IC 卡擁有輕便與安全的特性,因此已有不少資訊安全應用 系統藉助 IC 卡來記憶系統運作所需的秘密訊息,並善用 IC 卡所具有 之計算能力提昇系統之安全。近年來政府所提倡的 GCA 憑證,其所 下載的憑證及私密金鑰僅用一般的軟式磁碟片儲存,雖然在使用到私 密金鑰時需提供正確的 PIN 才可使用,但是和 IC 卡相比,磁碟片仍 是極不安全的儲存媒介,而且磁片極易受損以致私密金鑰無法使用,

所以我們採用 IC 卡來儲存憑證及私密金鑰,因此大幅提升系統安全 性。

程式操作步驟如下。

(a) 首先輸入 IC 卡的 PIN 碼,如圖 2-5-1(a)所示。

(b) 選擇要載入的憑證檔案,如圖 2-5-1 (b)所示。

(c) 選擇要載入公私鑰的 pfx 檔案,步驟(b)的憑證為此檔案公鑰 之憑證。如圖 2-5-1 (c)所示。

(d) 輸入步驟(c)所選擇 pfx 檔的通行碼 1234,如圖 2-5-1 (d)所示。

經過以上步驟即可將公私鑰及對應憑證載入 IC 卡中。

(16)

圖 2-5-1 (a) 輸入 IC 卡 PIN 碼

圖 2-5-1 (b) 選擇憑證檔 圖 2-5-1 (c) 選擇 pfx 檔

圖 2-5-1 (d) 輸入 pfx 通行碼

數據

圖 2-1-1  本子計畫(金鑰中心)採用之亂數產生器
圖 2-3-2 (c) 開啟欲分享之金鑰檔 圖 2-3-2 (d)  程式儲存次秘密檔 進行主金鑰回復過程如下。 (a) 請依序開啟操作(1)所儲存之次秘密檔,如圖 2-3-3(a)所示。 (b) 共開啟門檻值 3 之 3 個次秘密檔,如圖 2-3-3 (b)所示。 (c) 將回復之金鑰儲存成檔案,如圖 2-3-3 (c)所示。 (d) 自行開啟步驟  c 所存之金鑰檔,並比較是否和之前的金鑰一 致。         圖 2-3-3 (a)  開啟次秘密檔 圖 2-3-3 (b)  程式所開啟之次秘密
圖 2-3-3 (c) 儲存回復之金鑰 2.4 產生憑證及個人資訊交換檔(pfx) 在本群體計畫之電子競標系統中,有意願參與投標之廠商需填寫 自公告中心下載之註冊基本資料表,並親自將相關文件送至 EBCA 註冊審查。若廠商已有 GCA 憑證,則本系統之註冊中心將驗證 GCA 憑證;若廠商無 GCA 憑證,或 GCA 憑證驗證未通過,則需辦理申請 本電子競標系統之 EBCA 憑證。在本系統規劃中,EBCA 憑證由本子 計畫金鑰中心產生,產生後送至註冊中心。註冊中心再將憑證存入 IC  card 後交付廠商。本
圖 2-4-1    EBCA 之公鑰憑證(.cer)
+2

參考文獻

相關文件

肆、維運標準作業程序(含各項監 控、操作、備份、異常通報等) 伍、系統管理計畫. 陸、資料備份、備援與復原計畫

二、本校於報名表中對於學生資料之蒐集,係為學生成績計算、資料整理及報 到作業等招生作業之必要程序,並作為後續資料統計及學生報到註冊作業

二、本校於報名表中對於學生資料之蒐集,係為學生成績計算、資料整理及報 到作業等招生作業之必要程序,並作為後續資料統計及學生報到註冊作業

三、受補助計畫經審查認定廠商有違反本作業原則之禁止行為者,得視違規情節解除或

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系 統環境下,將給與的紙本或電子檔(如 excel

根據商務活動之舉辦目標及系統需求,應用 Microsoft Office 文書處理 Word、電子試算表 Excel、電腦簡報 PowerPoint、資料庫 Access

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系統環境 下,將給與的紙本或電子檔(如 excel

一、貴公司依據「多國多中心藥品臨床詴驗計畫 審查程序」申請之藥品臨床詴驗計畫,案內申請 人/詴驗委託者為羅氏大藥廠股份有限公司,本部 同意之計畫書版本日期為:Protocol WO30070