學習目標
- 理解對稱式加密和非對稱式加密的原理和差異
- 掌握雜湊函數的特性和應用
- 理解數位簽章的運作機制
- 了解數位憑證的作用和運作方式
- 理解這些技術如何整合應用
1. 加密的基本概念
1.1 為什麼需要加密?
在網路傳輸中,資料可能被竊聽、篡改或偽造,因此需要加密來保護資料的: - 機密性 (Confidentiality): 只有授權的人可以讀取 - 完整性 (Integrity): 確保資料未被篡改 - 身份認證 (Authentication): 確認資料來源的身份
1.2 加密的基本過程
明文 (Plaintext) → [加密] → 密文 (Ciphertext) → [傳輸] → [解密] → 明文
2. 對稱式加密 (Symmetric Encryption)
2.1 定義
對稱式加密是指加密和解密使用同一把金鑰(共享金鑰,Shared Key)。
2.2 運作方式
傳送方: 明文 + 金鑰 → 加密 → 密文
接收方: 密文 + 金鑰 → 解密 → 明文
2.3 範例
加密演算法: AES (Advanced Encryption Standard)
明文: "HELLO"
金鑰: "SECRET"
密文: "XJ9K2" (範例,實際更複雜)
2.4 優點
- 速度快: 加密和解密速度快,效率高
- 適合大量資料: 適合加密大量資料
- 資源消耗低: 計算資源需求較少
2.5 缺點
- 金鑰配送困難: 如何安全地將金鑰傳送給接收方?
- 金鑰管理複雜: 每對通訊者需要不同的金鑰
- 金鑰洩露風險: 如果金鑰被竊取,安全性即被破壞
2.6 常見演算法
- AES: 目前最常用的對稱式加密演算法
- DES: 已過時,不安全
- 3DES: DES 的改進版,但仍不如 AES
3. 非對稱式加密 (Asymmetric Encryption)
3.1 定義
非對稱式加密使用一對公鑰 (Public Key) 與私鑰 (Private Key): - 公鑰: 可以對外公開,用於加密 - 私鑰: 由本人保管,用於解密
3.2 運作方式
傳送方: 明文 + 接收方的公鑰 → 加密 → 密文
接收方: 密文 + 自己的私鑰 → 解密 → 明文
3.3 金鑰對的特性
- 數學相關: 公鑰和私鑰是數學相關的
- 單向性: 從公鑰無法推導出私鑰(在合理時間內)
- 對稱性: 用公鑰加密的資料只能用對應的私鑰解密
3.4 優點
- 解決金鑰配送問題: 公鑰可以公開,不需要秘密傳送
- 安全性高: 基於數學難題(如大數分解),安全性高
- 數位簽章: 可以用於實現數位簽章
3.5 缺點
- 速度慢: 加密和解密速度較慢
- 不適合大量資料: 通常只用於加密小量資料(如金鑰)
- 計算資源需求高: 需要較多的計算資源
3.6 常見演算法
- RSA: 最常用的非對稱式加密演算法
- ECC (Elliptic Curve Cryptography): 較新的演算法,效率更高
3.7 實際應用
非對稱式加密通常用於: - 加密對稱式金鑰: 用非對稱式加密傳送對稱式金鑰 - 數位簽章: 用私鑰簽章,用公鑰驗證
4. 混合加密系統
4.1 為什麼需要混合?
結合兩種加密方式的優點: - 用非對稱式加密傳送對稱式金鑰(解決金鑰配送問題) - 用對稱式加密加密實際資料(提高效率)
4.2 運作流程
- 產生對稱式金鑰: 傳送方產生一個隨機的對稱式金鑰
- 加密對稱式金鑰: 用接收方的公鑰加密對稱式金鑰
- 加密資料: 用對稱式金鑰加密實際資料
- 傳送: 傳送加密的對稱式金鑰和加密的資料
- 解密對稱式金鑰: 接收方用私鑰解密對稱式金鑰
- 解密資料: 用對稱式金鑰解密資料
4.3 範例:HTTPS
HTTPS 使用混合加密: - 握手階段: 使用非對稱式加密(RSA)傳送對稱式金鑰 - 資料傳輸: 使用對稱式加密(AES)加密實際資料
5. 雜湊函數 (Hash Function)
5.1 定義
雜湊函數將任意長度的輸入資料,轉換成固定長度的輸出值(雜湊值,Hash Value)。
5.2 特性
1. 單向性(不可逆)
- 從雜湊值無法推導出原始資料
- 這是單向函數
2. 雪崩效應 (Avalanche Effect)
- 輸入的小改變會導致輸出的巨大改變
- 即使只改變一個位元,雜湊值也會完全不同
範例:
輸入: "Hello"
雜湊: a8f5f167f44f4964e6c998dee827110c
輸入: "hello" (只改變大小寫)
雜湊: 5d41402abc4b2a76b9719d911017c592 (完全不同!)
3. 抗碰撞性 (Collision Resistance)
- 難以找到兩個不同的輸入有相同的輸出
- 雖然理論上可能存在碰撞,但實際上很難找到
5.3 常見演算法
- MD5: 已不安全,不應使用
- SHA-1: 已不安全,不應使用
- SHA-256: 目前推薦使用(SHA-2 系列)
- SHA-3: 最新的標準
5.4 應用
1. 資料完整性驗證
傳送方: 資料 → 雜湊 → 雜湊值
傳送: 資料 + 雜湊值
接收方: 接收資料 → 重新計算雜湊 → 比較雜湊值
如果相同 → 資料完整
如果不同 → 資料被篡改
2. 密碼儲存
- 不儲存明文密碼
- 儲存密碼的雜湊值
- 登入時比較雜湊值
3. 數位簽章
- 對訊息摘要(雜湊值)進行簽章
- 而不是對整個訊息簽章(提高效率)
6. 數位簽章 (Digital Signature)
6.1 目的
數位簽章提供: - 身份認證 (Authentication): 確認資料來源的身份 - 完整性 (Integrity): 確保資料未被篡改 - 不可否認性 (Non-repudiation): 傳送方無法否認曾傳送過該資料
6.2 運作機制
步驟 1: 產生訊息摘要
傳送方對訊息內容進行雜湊運算,得到訊息摘要(雜湊值)。
訊息: "Hello, World!"
雜湊: 5eb63bbbe01eeed093cb22bb8f5acdc3 (MD5 範例)
步驟 2: 用私鑰加密摘要
傳送方用自己的私鑰對訊息摘要進行加密,產出數位簽章。
摘要 + 私鑰 → 加密 → 數位簽章
注意: 這裡的「加密」實際上是簽章運算,在 RSA 中,用私鑰加密等同於簽章。
步驟 3: 傳送訊息和簽章
傳送方將原始訊息和數位簽章一起傳送給接收方。
傳送: 訊息 + 數位簽章
步驟 4: 接收方驗證
接收方收到訊息與簽章後:
- 用公鑰解密簽章: 用傳送方的公鑰對簽章進行解密,還原出原始摘要 A
- 重新計算雜湊: 對收到的訊息本身重新進行一次雜湊運算,得到摘要 B
- 比較摘要: 比較 A 和 B 是否相符 - 如果相符 → 簽章有效(訊息未被篡改,且確實來自傳送方) - 如果不符 → 簽章無效(訊息可能被篡改,或簽章是偽造的)
6.3 流程圖
傳送方:
訊息 → 雜湊 → 摘要
摘要 + 私鑰 → 簽章
傳送: 訊息 + 簽章
接收方:
簽章 + 公鑰 → 解密 → 摘要 A
訊息 → 雜湊 → 摘要 B
比較 A 和 B → 驗證結果
6.4 為什麼有效?
- 私鑰保密: 只有傳送方有私鑰,可以產生有效的簽章
- 公鑰公開: 任何人都可以用公鑰驗證簽章
- 雜湊保證完整性: 如果訊息被篡改,雜湊值會改變,驗證會失敗
7. 數位憑證 (Digital Certificate)
7.1 問題:公鑰的信任問題
如何確認一個公鑰確實屬於某個人或組織? - 攻擊者可能偽造公鑰 - 如何信任收到的公鑰是真實的?
7.2 解決方案:數位憑證
數位憑證將一個公鑰與一個實體(如個人、網站)的身分綁定,並由受信任的第三方機構簽章。
7.3 憑證的組成
數位憑證包含: - 持有者的身分資訊: 姓名、組織、網域名稱等 - 持有者的公鑰: 要綁定的公鑰 - 憑證頒發機構 (CA) 的資訊: 誰發行了這個憑證 - CA 的數位簽章: 由 CA 用其私鑰對憑證內容進行簽章 - 有效期限: 憑證的有效期間 - 序號: 憑證的唯一識別碼
7.4 運作方式
1. 申請憑證
實體向 CA (Certificate Authority) 申請憑證: - 提供身分證明 - 提供自己的公鑰
2. CA 驗證和簽發
CA 驗證實體的身分後: - 建立憑證(包含實體資訊和公鑰) - 用 CA 的私鑰對憑證進行數位簽章 - 發行憑證
3. 使用憑證
當需要確認公鑰時: - 取得該實體的數位憑證 - 用 CA 的公鑰驗證憑證的簽章 - 如果簽章有效,則信任憑證中的公鑰
7.5 信任鏈 (Chain of Trust)
根 CA (Root CA)
↓ (簽章)
中級 CA (Intermediate CA)
↓ (簽章)
網站憑證 (Website Certificate)
- 根 CA: 最受信任的 CA,其公鑰預先安裝在系統中
- 中級 CA: 由根 CA 簽章的 CA
- 網站憑證: 由中級 CA 簽章的實際使用憑證
7.6 實際應用:HTTPS
當瀏覽器連接到 HTTPS 網站時: 1. 網站傳送其數位憑證 2. 瀏覽器驗證憑證的簽章(使用 CA 的公鑰) 3. 如果驗證通過,瀏覽器信任網站的身份 4. 使用憑證中的公鑰建立安全連線
8. 技術整合應用
8.1 HTTPS 的完整流程
- 憑證驗證: 使用數位憑證驗證網站身份
- 金鑰交換: 使用非對稱式加密(RSA)傳送對稱式金鑰
- 資料加密: 使用對稱式加密(AES)加密實際資料
- 完整性保護: 使用雜湊函數(HMAC)確保資料完整性
8.2 電子郵件安全
- 加密: 使用混合加密保護郵件內容
- 簽章: 使用數位簽章驗證發件人身份
- 憑證: 使用數位憑證管理公鑰
9. 練習題
練習題 1
請說明對稱式加密和非對稱式加密的差異。
參考答案: - 對稱式加密: 加密和解密使用同一把金鑰,速度快但金鑰配送困難 - 非對稱式加密: 使用公鑰和私鑰配對,解決金鑰配送問題但速度較慢
練習題 2
請說明數位簽章的運作機制。
參考答案: 1. 傳送方對訊息進行雜湊,得到摘要 2. 用私鑰對摘要加密,產生簽章 3. 傳送訊息和簽章 4. 接收方用公鑰解密簽章得到摘要 A 5. 對訊息重新計算雜湊得到摘要 B 6. 比較 A 和 B,如果相同則簽章有效
練習題 3
為什麼需要數位憑證?
參考答案: 數位憑證解決公鑰的信任問題。它將公鑰與實體身份綁定,並由受信任的 CA 簽章。使用者可以透過驗證 CA 的簽章來確認憑證的真實性,從而信任憑證中的公鑰。
10. 考試重點提醒
- 兩種加密方式: 理解對稱式和非對稱式加密的原理、優缺點
- 雜湊函數: 理解單向性、雪崩效應、抗碰撞性
- 數位簽章: 詳細掌握運作機制的每個步驟
- 數位憑證: 理解為什麼需要憑證和信任鏈的概念
- 技術整合: 了解這些技術如何整合應用(如 HTTPS)