• 沒有找到結果。

2.1 數位簽章(Digital Signature)

一般而言,密碼機制的具體運作由兩部分決定:演算法與金鑰。而在現代密碼

5

使用公鑰密碼來鑑別數位訊息的技術,稱之為「數位簽章」,又可稱為公鑰數 位簽章。一套數位簽章通常會定義兩種互補運算,一個用於簽名,另一個則用在驗證 上,它是個獨一無二的數值,兼具「可確認性」及「不可否認性」(不需要筆跡專家 驗證)等雙重屬性,能用於網路上的身分確認,若公鑰能通過其驗證,那人們即可確 認對應公鑰的正確性。

定理 1 : 數位簽章

一般而言,數位簽章必須依照下列程序運行:

(1) 產生金鑰 (Key Generation) : (PK, SK) KeyGen(α)

一種金鑰生成的演算法,針對待簽名的訊息,輸入系統參數α後,輸出簽 名者的公鑰/私鑰配對(PK,SK)。

(2) 產生簽章 (Signature Generation) : σ  Sign(SK, m)

即「利用私鑰將訊息簽名」,方法為輸入系統參數、簽名者的私鑰 SK 與 訊息 m,然後產生簽章 σ。

(3) 驗證 (Verification) : {accept, reject}  Verify(PK, m, σ) 驗證訊息簽章的效力,將所輸入的系統參數、公鑰 PK、訊息 m 和簽章 σ 進行運算,若計算的結果與原先加密的訊息相符,即表示 σ 是 m 上的有 效簽名,反之,則表示驗證失敗。

6

2.2 雙線性配對(Bilinear Pairing)

近期諸多的簽章方案中,皆討論到或直接使用「雙線性配對」來運算與實作,

因此我們將在分節介紹雙線性配對與相關項目的基本概念。

雙線性配對是由一個群對應到另外一個群的雙線性映射函數(Bilinear Map),

其設定是這兩組群皆符合循環式(Cyclic)特性,且其中的 G1 為加法群 (Additive Group),而另一個群 G2則是乘法群(Multiplicative Group),兩群的序(Order)皆為 一質數 q, G1的生成元(Generator)是 P。雙線性配對可表示為 e:G1 × G1 → G2,且 具備三個性質:

 雙線性(Bilinear):所有的 P,Q ∈ G1,所有的 a,b ∈ Zq*,我們會得到 e(aP,bQ) = e(P,Q)ab = e(bP,aQ);

 非退化性(Non-degenerate):如果 P 是 G1 中的生成元,那 e(P,P)也會是 G2 的生成元,且滿足 e(P,P)≠1;

 可計算性(Computable): 如果所有的 P,Q ∈ G1,則能在可計算出的時間 內求出 e(P, Q) ∈ G2

7 後繼者。全名是安全雜湊演算法 2(Secure Hash Algorithm 2),由美國國家安全局 研發,美國國家標準與技術研究院(NIST)於 2001 年發布。其下又可再分為六個不同 的演算法標準,包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。

SHA-3 為 2015 年 8 月 5 日由 NIST 通過 FIPS 202 正式發表的第三代安全雜湊 演算法(Secure Hash Algorithm 3),在硬體實作上面,它比起 SHA-2 演算法有著更好 的表現。SHA3-256 在 CPU 上的效能約為 8.59 cpb(每位元組周期數,cycles per byte);而 SHA-2 各項標準中,SHA-512/256 與 SHA3-256 輸出位元(output bits size)皆為 256 bits,其 CPU 運效能約為 5.12 cpb [10]。

8

2.4 隨機預言機模型(Random Oracle Model)

密碼學將像是黑箱般產出數據的函數稱為隨機預言機(Random oracle),對任 何輸入都能回傳一個真正均勻隨機的輸出值,並且對於相同的輸入,該預言機每次都 會用同一方法輸出。它可被視為完美的雜湊函式,在假設雜湊函式皆為完全隨機的情 況下,任何一個機率多項式都沒辦法自行計算出此雜湊函式的輸出值,故必須向外在 的 random oracle 查詢此雜湊函式的輸出值。

Bellare 等學者[8]在 1993 年指出雜湊函數可被視為隨機函數,人們可在隨機 預算機模 式 下 , 證 明使用雜湊函數 簽 章 機制的 安全 性 ,其 精神 即是運 用 Random Oracle 的輸出值以及一個假設可以破解目標系統的演算法,使其來破解某個公認的難 問題,而又因目前的難問題尚無法解決(即找出答案),因此我們可藉由反證法,證明 某簽章演算法是安全的。我們將運用此一論點來證明本篇論文方案的安全性。

9

2.5 k-CAA 難問題

多數密碼學的系統安全性建於高複雜性的難題上,不外乎為數學理論上的因數 分解及離散對數問題。而雙線性配對的環境下,離散對數問題在 G1 及 G2 的群中都非 常難解,為了方便論述,先介紹離散對數問題(Discrete Logarithm Problem ,DLP)。

定理 2 : 離散對數問題(DLP)

我們定義一個乘法群 G = Zp*,其生成元 g ∈ G、序為 p-1,在所有乘法群 G 中的元素 y 均可表示為 y = gx(mod p),而 1≤ x ≤ p-1。而我們必須在給定(y, g, p)的前提下,由這三個數值找到能滿足 gx = y(mod p)的 x 值,此一問題就稱 為離散對數問題。

而本篇論文將運用 Mitsunari 等學者 [11]在 2002 年所提出 k-CAA 難問題 (Collusion Attack Algorithm with k traitors problem),來處理安全性驗證時的 幾種狀況。此難問題的定義如下:

定理 3 : k-CAA 難問題

 設P是某加法群G1的生成元(generator),則 x ∈ Zq,且 h1,…,hk ∈ Zq

 若提供P、xP及k組配對(h1,(1/x+h1)P),… ,(hk, (1/x+hk)P),須找出新的 配對 (h,(1/x+h*)P),且該h ∉ {h1, … ,hk}。

 上述的答案必須在可運算的多項式時間(polynomial time)內計算出來,

這樣的挑戰我們稱之為k-CAA難問題。

10

2.6 選擇訊息攻擊(Chosen Message Attack)

密碼分析(Cryptanalysis) ,也稱密碼破解,是門和密碼學同時進步的技術,

通常是指找出密碼系統的秘密鑰匙或是破解未知的密文。而在本論文中破解數位簽章 即意指偽造出訊息的簽名。實際上個密碼破解的手段與技巧則隨著時代的演進變得復 雜且多元化,且有著不盡相同的效力,對密碼系統亦帶來不同的威脅。在攻擊行動中,

攻擊者能通過觀察或研究簽名者所使用的系統,來獲得關於這個系統的資訊並破解之。

而選擇訊息攻擊(Chosen Message Attack)則是指 - 攻擊者 T 在攻擊中途向簽 名者 S 詢問以獲得指定訊息的雜湊值與簽章後,可搭配公鑰及簽章演算法,計算出偽 造的訊息與其相對應的簽章,執行步驟如下:

 設定 : 簽名者 S 透過系統公開參數α產生公鑰 PK 與私鑰 SK,並將α與 PK 傳送給攻擊者 T,SK 只有簽名者 S 知道。

 詢問 : 針對任一訊息 m,在一有限的多項式時間內,攻擊者 T 可以向簽名 者 S 詢問相關的雜湊值 Hm及簽名值σm,而簽名者 S 會回覆答案給攻擊者 T。

 偽造 : 針對訊息 m*,攻擊者偽造出一個簽章σ*,如滿足以下條件,定義 為攻擊成功。

✓ Ture  Verify(α, PK, m*, σ* )。

✓ T 從未向 S 詢問過 m*的簽章值σ*

11

相關文件