二、 背景知識
2.3 應用密碼學
2.3.2 非對稱式加密演算法
非對稱式加密演算法共有六個主要的組成元素為:明文、密文、加密演算法、
解密演算法、公開金鑰與私密金鑰如下圖 五所示:
圖 五:非對稱加密演算法 z 明文:
是一個可閱讀的訊息或資料,用來當演算法的輸入。
11
雜湊函數(Hash Function):
對一個變動長度的訊息M 來說,一個雜湊值(Hash Value)的產生主要是由訊
12
雜湊函數需求:
對於雜湊函數在網路文件安全方面的用途,主要可作為訊息的「指紋 (fingerprint)」看待,一個雜湊函數應該滿足下列幾個特性:
一、 應用層面廣與使用簡易:
在訊息驗證方面,雜湊函數應該具有下列幾個特性:
1. 可適用於任何大小的資料區塊。
2. 產生的雜湊值要具備固定長度。
3. 不管用軟體或硬體方式運算雜湊函數,皆要容易實作。
二、單向性:
雜湊函數須具備「單向性(one-way)」,換句話說,由訊息來計算雜湊 值是很容易的,但由雜湊值來反推訊息是相當困難的。這個特性相當的重 要,由其是在傳送包含機密訊息的資訊密文時,若攻擊者可以由密文去推得 機密訊息時,那採用雜湊函數來保護機密訊息的功用便會失效。舉例來說 M:原始訊息、Skey:亂數、H:雜湊函數、C:密文運算如下所示:
C = H(M | | Skey)
如果雜湊函數非單向函數時,則攻擊方可以藉由雜湊函數的反運算以及 所竊取到的密文來推得原始訊息如下所示:
M | | Skey = H-1(C) 三、抗碰撞性:
當一個雜湊值使用編碼策略傳送時,必須要能夠抗碰撞(collision resistance),這種抗碰撞性可以分成兩種,分別是「弱抗碰撞性(weak collision resistance)」與「強抗碰撞性(strong collision resistance)」,說明如下:
弱抗碰撞性:
不管在任何區塊x 而言,當 x≠y 時,幾乎不可能找到 H(x)=H(y) 的情況出現。
13
由上述特性看來,數位簽章本身就已經具有「驗證(authentication)」的功能,
而對一個數位簽章所需要的基本需求有:
1. 產生數位簽章流程需簡易。
2. 數位簽章容易比對與核實。
3. 數位簽章必須要有傳送者的單一識別碼,以避免訊息偽造。
數位簽章可歸納出兩種不同的簽章模式,一種是「直接式數位簽章(direct digital signature)」,另一種為「仲裁式數位簽章(arbitrated digital signature)」。
直接式數位簽章(direct digital signature):
這種方式使用的是公開金鑰機制來達成,使用者利用本身私鑰(private key) 作為數位簽章的方式。此種簽章的方法若是基於雙方都是互信的狀態下,訊息認 證與數位簽章的公信力是足夠的,但是對方若是信賴關係不明者,使用此法的簽 章機制便無法有強制性的證明來源者。因對方可說私鑰遺失,以辯解該訊息並非 他所發送。
仲裁式數位簽章(arbitrated digital signature)
此種數位簽章方式,是溝通雙方透過具公信力第三方來傳遞訊息。這種仲裁
14
間簽證(Timestamps)」,並轉送訊息到 B。因此在仲裁式數位簽章協定中,訊息 傳送可分成「A→X」與「X→B」兩部分來看。