🔐 第 3.5.7 章:基本加密方法——守護秘密

歡迎來到電腦科學中最令人興奮的課題之一:密碼學!在「數據表示」(Representing data)這一節中,我們探討了數據是如何儲存的。現在,我們要學習如何將這些數據進行擾亂(scramble),即使數據落入不法之徒手中,也無法被解讀。這正是現代網際網路安全、銀行業務和私人通訊的基石。

別擔心這聽起來像間諜行動;我們會將這些概念拆解成簡單且易於理解的步驟。學完這些筆記後,你將能分辨古老且容易被破解的編碼與真正安全的現代加密方法之間的區別!

1. 加密的基本概念

在我們深入研究具體方法之前,需要先學會「間諜」(密碼學家)的語言!

關鍵定義

加密(Encryption):
加密是使用演算法(一系列步驟)將可讀的數據(明文,Plaintext)轉換為不可讀格式(密文,Ciphertext)的過程。這確保了即使第三方截獲了數據,除非他們同時知道加密方法和金鑰,否則無法輕易讀懂內容。

明文(Plaintext):
這是原始的、可讀的訊息或數據。你可以把它想像成你在按下「發送」鍵之前輸入的訊息。

密文(Ciphertext):
這是加密後、被擾亂的訊息。它看起來毫無意義,但實際上隱藏著明文。

密碼(Cipher):
「密碼」(Cipher)是用於執行加密和解密的特定演算法或方法(例如凱撒密碼或 Vernam 密碼)。

金鑰(Key):
「金鑰」是一個秘密數值(例如特定的數字、單字或位元序列),由密碼應用於明文以產生密文。金鑰對於加密和解密訊息都至關重要。

比喻:想像一下你要將一個鎖上的盒子寄過洋。盒子裡的訊息就是明文。盒子本身就是密文。所使用的鎖頭類型就是密碼。而真正用來開鎖的鑰匙或組合密碼就是金鑰

快速回顧:加密的目標

加密的主要目標是機密性(Confidentiality)——即確保數據對於非預期的接收者而言是不可用的。

2. 凱撒密碼(一種簡單的替代密碼)

凱撒密碼是最古老且最簡單的加密形式之一,因朱利亞斯·凱撒(Julius Caesar)使用而聞名。

凱撒密碼的運作方式

凱撒密碼是一種替代密碼(Substitution cipher),意味著明文中的每個字母都會被字母表中固定位置後的字母所取代。

金鑰就是位移的位數。

逐步加密(位移 3):

  1. 確定明文:A P P L E

  2. 應用金鑰(位移 3):

    • A 向後位移 3 位 → D

    • P 向後位移 3 位 → S

    • L 向後位移 3 位 → O

    • E 向後位移 3 位 → H

  3. 密文為:D S S O H

若要解密,接收者只需將每個字母「向前」位移 3 位即可。

為什麼凱撒密碼很容易被破解?

凱撒密碼提供的安全性極低,不適合現代使用。它很容易被破解,原因如下:

  • 有限的金鑰空間: 只有 25 種可能的唯一金鑰(位移 1 到 25)。攻擊者可以簡單地嘗試每一種位移,直到出現可讀的訊息(這稱為蠻力攻擊,Brute-force attack)。

  • 頻率分析(Frequency Analysis): 密文中字母出現的頻率與明文中字母的頻率直接對應。例如,在英語中,「E」是最常見的字母。攻擊者可以找出密文中出現頻率最高的字母,假設它代表「E」,從而立即揭露位移量(金鑰)。

  • 位移固定: 一旦識別出一個字母的位移量,所有字母的位移也就已知了,因為金鑰在整條訊息中是保持不變的。

3. Vernam 密碼(一次性密碼本)

Vernam 密碼(也稱為一次性密碼本,One-time pad)在理論上是目前最強大的加密方法。

Vernam 密碼的運作方式

在 Vernam 密碼中,一個隨機金鑰(通常表示為位元序列)會與明文訊息(同樣表示為位元)進行數學運算,從而產生密文。

金鑰必須只能使用一次,這也是它被稱為「一次性密碼本」的原因。

完美安全性(Perfect Security)

Vernam 密碼是唯一達到完美安全性的密碼。如果透過檢查密文完全無法得知關於原始明文的任何資訊,該密碼即為完美安全。

為了達到這種保證等級的安全性,Vernam 密碼必須滿足四個極其嚴格的條件:

  1. 金鑰必須是完全隨機選擇的。(真正的隨機,而非偽隨機。)

  2. 金鑰長度必須至少與明文一樣長。(如果訊息有 1,000 個字元長,金鑰也必須有 1,000 個字元長。)

  3. 金鑰必須只能使用一次(「一次性」)。

  4. 金鑰必須僅由發送者和接收者知道。

你知道嗎?由於生成、分發和安全管理與數據本身一樣長金鑰非常困難,Vernam 密碼很少用於大量數據,但歷史上曾用於政府之間的高度敏感通訊(例如冷戰期間)。

4. 安全等級:計算安全性 vs. 完美安全性

計算安全性(Computational Security)

當今電腦使用的大多數密碼(如 AES 或 RSA)並不提供完美安全性;它們依賴的是計算安全性

若滿足以下條件,密碼即為計算安全

  • 從理論上講,可能能從密文中得知關於明文的資訊。

  • 但破解該密碼所需的演算法需要無法實現的時間長度才能完成(即使使用最快的超級電腦),或者破解的機率極低。

換個角度想:你最終可能透過蠻力破解現代編碼,但那將花費比宇宙年齡還要長的時間。因此,從實際應用角度來看,它是安全的。

比較總結:

  • 凱撒密碼: 最低安全性(幾秒鐘內即可破解)。

  • Vernam 密碼: 完美安全性(若滿足條件,則不可能破解)。

  • 現代密碼(如 AES): 計算安全性(使用上可行,破解上不可行)。

5. 對稱與非對稱密碼及金鑰交換問題

對稱密碼(Symmetric Ciphers)

對稱密碼使用相同的金鑰來進行數據的加密和解密。

  • 凱撒密碼和 Vernam 密碼都是對稱密碼的例子。

金鑰交換問題(Key Exchange Problem)

對稱密碼最大的挑戰在於金鑰交換問題:發送者和接收者如何在不被第三方截獲的情況下秘密共享金鑰?

如果你透過電子郵件發送金鑰,竊聽者可能會同時截獲金鑰和後續的加密訊息,從而使加密失效。

非對稱密碼(Asymmetric Ciphers)

非對稱密碼(也稱為公開金鑰加密,Public-key encryption)使用兩個不同但數學相關的金鑰

  • 公開金鑰(Public Key): 任何人都可以使用它來加密數據。

  • 私密金鑰(Private Key): 由接收者妥善保管,用於解密數據。

由於加密金鑰(公開金鑰)可以公開共享而沒有風險,因此解決了金鑰交換問題!

重要提示:非對稱密碼使用不同的金鑰進行加密和解密,因此金鑰交換問題不適用於它們

🔑 重點總結(3.5.7 基本加密方法)
  • 密碼術語: 輸入明文,輸出密文,受密碼(Cipher)和金鑰(Key)控制。

  • 凱撒密碼: 簡單位移,可透過頻率分析和蠻力攻擊(因為金鑰空間有限)輕鬆破解。

  • Vernam 密碼: 完美安全,但前提是金鑰必須真正隨機、僅使用一次,且長度與訊息相同。

  • 計算安全性: 現代標準;破解在理論上可能,但在實務上所需時間過長而不可行。

  • 對稱加密: 加密和解密使用相同金鑰。面臨金鑰交換問題。

  • 非對稱加密: 使用不同金鑰(公開/私密)。解決了金鑰交換問題。