第三章 密碼學介紹
3.2 密碼學的應用
3.2 密碼學的應用
密碼學應用的範圍很廣,現今其可應用的有 EDI-企業之間的電 子交易、網路安全、密碼技術與數位簽章...等,而且我們所實作 的正是密碼學應用中的數位簽章。
3.2.1 數位簽章概念
在公開金鑰基礎建設中,由某甲以私密金鑰加密的訊息,只能
以某甲的公開金鑰才能解密。由此可知,若一密文能以某甲的公開金 鑰解密,那此份訊息必然是以某甲的私密金鑰加密的。因此,以各人 的私密金鑰加密後的訊息,具有不可否認的特性,稱為 "數位簽章",
可做為電子訊息簽章的方式。數位簽章的法定效力,將相等於一般的
"手簽章".某些情形下,數位簽章甚至比手寫簽名具有更大的法律效 力。例如一份五頁的文件,只簽名在第一頁,沒有人敢保證其它頁沒 被竄改過。但這份文件如果經過數位簽章,第三者可以驗證該文件是 否有位元被修改過!
由此可知數位簽章可提供四種重要的安全保證:
(1)資料完整性(Integrity):文件接收者透過數位簽章之核對可確保 此文件的完整性,避免被篡改、重送、遺失。
(2)資料來源辨識(Authentication):文件接收者可確認此文件之發 送者的身分,避免被冒名傳送假資料。
(3)資料隱密性(Confidentiality):文件可以利用金鑰來加密、解 密,以達到保密的安全保證。
(4)不可否認性(Non-repudiation):因為只有文件發送者知道自己的 私密金鑰,而且文件具有發送者之數位簽章,使其無法否認發送此文 件的事實。
下圖為數位簽章資料加解密關係圖
3.2.2 數位簽章之演算法
電子商務安全規範可分爲安全、認證兩方面的規範,而數位
簽章是屬於安全這部分,而安全規範包括加密演算法、報文摘要演算 法(Message Digest Algorithms)、安全通信協定(SSL)等方面的規 範。
加密演算法包括對稱跟非對稱,前面已介紹過,而我們所 使用的演算法 RSA 是屬於非對稱密鑰加密,和報文摘要演算法的 SHA (Secure Hash Algorithm)。
3.2.2.1 訊息摘要演算法
訊息摘要演算法(Message Digest Algorithms)即採用單向 HASH 演算法將需要加密的明文進行摘要,而產生的具有固定長度的 單向雜湊(HASH)值。其中,散列函數(Hash Functions)是將一個 不同長度的報文轉換成一個數字串(即報文摘要)的公式,該函數不 需要密鑰,公式決定了報文摘要的長度。報文摘要對非對稱加密一 起,提供數位簽名的方法。 訊息摘要演算法主要有安全散列標準、
MD2 系列標準。
安全散列演算法(Secure Hash Algorithm,簡稱 SHA):是 一種報文摘要演算法,它産生 160 位元的散列值。SHA 已經被美國政 府核准作爲標準,即 FIPS 180-1 Secure Hash Standard (SHS),FIPS 規定必須用 SHS 實施數位簽名演算法。在産生與證實數位簽名中過程 中用到的 HASH 函數也有相應的標準做出規定。
3.2.3 演算法說明
下面將介紹我們所使用的演算法:RSA 和 SHA
RSA: RSA 常用在 EDI 安全系統及一般加密系統的實作上,它是一種 非對稱式加密演算法的簡稱,由麻省理工學院的三位教授 Rivest Shamir 和 Adleman 所發明,取其姓氏的第一個字母組合而成。所謂 非對稱式加密演算法是相對於傳統的對稱式加密演算法改良而成。對 稱式加密演算法在進行加密及解密時是使用同一把金鑰(Key),因此 送信與收信雙方在通訊前必需先協調得知該金鑰。由於雙方共享此秘 密,因此可能產生否認發送或接收訊息的狀況,責任難以劃分。非對 稱式加密演算法則是每個人產生一對金鑰,其中一把為私鑰(Private Key),另一把為公鑰(Public Key)。加密是以私鑰為之,解密則以公
鑰為之,因此在通訊前收信者必須先取得發信者的公鑰,但不需要知 道發信者的私鑰。由於沒有共享的秘密,因此可以達到不可否認的要 求,這也就是所謂數位簽章(Digital Signature)的基礎。
SHA: Secure Hash Algorithm 1 是一種演算法,可承載長度低於 264 位元的訊息並產出一個 160 位元 訊息摘要。該大型訊息摘要提供了 安全性以反制惡意衝突以及反向攻擊。SHA-1 [NIS94c] 是 SHA 的改 版,發表於 1994 年。