第二章 文獻回顧與探討
2.4 加密技術
密碼學是研究如何使用密碼與加密技術來保護資訊的學問。所謂的加密技術 是指一種可使資訊變得無法閱讀的變更處理,其特色為具有組織性和固定規律,
且除了使用者本身之外,其他人無法獲知資訊內容[29、53] 。例如,一種規則非
常簡易的,被稱為凱撒密碼的古老加密方法,其運作方式是將訊息中的所有字母 都以某固定距離後的另一字母所替代,以產生密文(,指加密後為一般讀者所無法 理解之文件);而其解密之方法就是將密文中之每一字母都以某固定距離前的字母 還原為明文(,指加密前為一般讀者所能理解之文件)。前述這種將原始明文轉換 成密文的過程就稱為加密,而將密文復原成為明文的逆過程則稱為解密;而金鑰 則是一種用以將原始明文變更為密文過程中所需的特別密碼 [53]。加密與解密所 使用的演算法,一般而言分為兩大類:對稱式加密演算法和非對稱式加密演算法。 以下分述之。
2.4.1 對稱式加密演算法
對稱式加密演算法,指加密端與解密端所使用的為同一把金鑰,即所謂的秘 密金鑰,此種加密的方式速度快捷,適合用來做大量資料的加密[29]。然而,由 於訊息的加密和解密都採用相同的金鑰,而且每一個相關使用者所保存的都是同 一個金鑰,因此所有使用者都必須要是能夠完全信任的。而因為傳送者和接收者 在交換訊息之前,必須先做該金鑰的分享,因此在協調產生此金鑰的過程中,任 何相關的訊息都須透過一安全的通道來分享,以避免被他人竊取。否則一但該金 鑰被他人取得或算出,則傳輸的訊息也將會被一併取得。常見之對稱式演算法有 RC2、RC4、DES 及 Triple-DES 等等,而其中最常被使用的則為 DES(資料加密標 準)[39]。
2.4.2 非對稱式加密演算法
非對稱式加密,指利用公開金鑰及私密金鑰來進行加密和解密的動作。其中 公開金鑰可公開於網路上,私密金鑰則必須個人謹慎保管[29]。所以當傳輸者欲 將重要訊息傳送到接收者的手上時,傳輸者就必須先取得接收者的公開金鑰,以 此值來做訊息的加密,而當接收者收到該訊息後,再以私密金鑰來解密即可得到
正確的資訊[53]。這個方法的優點是其所使用的金鑰較對稱式加密法而言,較沒 有傳遞上的安全問題,而缺點則是速度過慢,且也須有一安全的通道讓使用者先 做金鑰的交換。常見之非對稱式演算法有 RSA、 DSA 及 Diffie-Hellman 等[29]。
以下就 RSA 演算法詳述之。
RSA 演算法為一種目前相當受歡迎的非對稱式加密演算法。它是在公元1977 年時由學者 Rivest、Shamir 和 Adleman 共同提出的;常被運用在電子商務和公開 金鑰加密標準中[42、53]。其產生公開金鑰和私密金鑰的方法有以下所述的幾個 步驟[42]:
1. 隨意任選兩個極大的相異質數
p
與q
,並使用機率演算法來驗證其是否真為質 數,其中p
和q
兩者的值不能過於接近,接著再計算N
=pq
。2. 根據尤拉函數,不大於正整數
N
且與N
互質的整數個數為(p
-1)(q
-1) 3. 選擇一個與(p
-1)(q
-1)互質且小於(p
-1)(q
-1)的整數e
4. 利用以下所述的公式進行計算以求
d
:d× e
≡ 1 (mod (p
-1)(q
-1)) 5. 最後再銷毀p
和q
的記錄。根據上述方法所求出的
e
即為公開金鑰,而d
就是私密金鑰。由此可知 RSA 演算法的可靠性是取決於其對極大整數做因數分解的難度。也就是說,當對該極 大整數做因數分解越困難時,RSA 就越可靠。因此通常只要其金鑰的長度夠長,用 RSA 加密的訊息要被破解實際上是相當困難的 [42]。
由於分配公開金鑰的過程必須能夠抵擋「從中取代」的攻擊;所以它對於 RSA 加密法而言是非常重要的。在這個過程中,假如使用者 A 將一個公開金鑰交給使 用者 B,並使之相信其為使用者 C 的公開金鑰,那麼使用者 A 即可有能力截下使 用者 B 傳遞給 C 之的訊息,並使用自己的私密金鑰解密解讀而不被發現。就這個
問題而言,現今常用「數字認證」的方式來防止此類攻擊以確保金鑰在傳遞上的 安全性[42]。