歡迎來到網絡安全(Cyber Security)的世界!

在本章中,我們將探討如何確保數碼資訊的安全性和準確性。你可以把網絡安全想像成電腦世界裡的「數碼鎖頭和警報器」。無論你是編碼高手還是剛起步的初學者,了解如何保護數據都是電腦科學中最關鍵的技能之一。我們將學習如何將訊息「打亂」,令黑客無法閱讀(加密 Encryption),以及如何確保數據在網絡傳輸時不會「受損」或發生錯誤(錯誤偵測 Error Detection)。


1. 加密基礎

加密是指使用演算法(Algorithm)(一套規則)將正常訊息轉變為混亂的內容,若沒有秘鑰(Key),任何人也無法理解其中的含義。

需要記住的關鍵術語:

  • 明文 (Plaintext):原始且可讀的訊息(例如:"Meet me at the park")。
  • 密文 (Ciphertext):訊息被打亂後、不可讀的版本。
  • 密碼 (Cipher):用於打亂數據的方法或演算法。
  • 秘鑰 (Key):由密碼用來鎖定或解鎖訊息的秘密數值(類似密碼或數字)。
快速回顧:明文 + 秘鑰 + 密碼 = 密文

2. 凱撒密碼 (Caesar Cipher)

這是最古老且最簡單的加密數據方法之一。它的工作原理是將字母表中的每個字母「位移」特定的位置數量。

例子:如果我們的秘鑰是 3,那麼 'A' 就會變成 'D','B' 變成 'E',以此類推。

為什麼它很弱?

如果你覺得這聽起來很容易破解,別擔心——你是對的!它非常不安全,原因如下:

  1. 只有 25 種可能的秘鑰(位移 26 次就會回到原點!)。電腦可以在幾分之一秒內嘗試所有組合。
  2. 頻率分析 (Frequency Analysis):在英語中,某些字母(如 'E' 或 'T')出現的頻率比其他字母高。黑客可以觀察密文,推測出現頻率最高的符號大概就是 'E'。
  3. 一旦你找出一個字母的位移量,你就獲得了整段訊息的秘鑰。

3. 維納姆密碼 (Vernam Cipher)(「無法破解」的密碼)

維納姆密碼很特別,因為它可以提供完美安全性 (Perfect Security)。這意味著即使擁有世界上最強大的電腦,黑客也無法從數學上破解該代碼。

完美安全性的 4 個黃金法則:

為了使維納姆密碼無法被破解,必須滿足以下條件:

  • 隨機性 (Random):秘鑰必須是完全隨機選擇的。
  • 長度 (Length):秘鑰的長度必須至少與明文一樣長。
  • 一次性使用 (One-time Use):秘鑰只能使用一次(這就是它常被稱為「一次性密碼本 (one-time pad)」的原因)。
  • 保密性 (Secret):秘鑰必須為發送者和接收者所知。

類比:想像一個帶鎖的實體箱子。如果我為發送的每一個箱子製作一把全新的、獨一無二的鑰匙,並且在使用一次後就銷毀鑰匙,那麼沒人能複製它!


4. 對稱加密 vs. 非對稱加密

當我們討論秘鑰時,主要有兩種使用方式:

對稱加密 (Symmetric Encryption)

使用相同的秘鑰來加密和解密數據。發送者和接收者都擁有同一個秘密鑰匙。

問題:這會導致秘鑰交換問題 (Key Exchange Problem)。如果我需要透過網絡將秘密鑰匙發送給你以便你讀取我的訊息,黑客可能會在傳輸過程中攔截該鑰匙!

非對稱加密 (Asymmetric Encryption)

使用兩把不同但數學相關的鑰匙:公開秘鑰 (Public Key)(所有人都可以看到)和私人秘鑰 (Private Key)(只有你擁有)。用公開秘鑰加密的數據,只能用相對應的私人秘鑰解密。

好處:這解決了秘鑰交換問題,因為你永遠不需要分享你的私人秘鑰!


5. 計算安全性 (Computational Security)

大多數現代電腦加密(與維納姆密碼不同)並不是「完美」安全的。相反,它依賴於計算安全性

這是什麼意思?這意味著代碼在技術上可以被破解,但需要超級電腦運算數百萬年才能完成。在實際應用中,數據是安全的。

關鍵總結:如果破解所需的成本或時間過高,以至於不值得進行,那麼該密碼就是計算安全的。

6. 錯誤偵測與修正

有時候,網絡安全與黑客無關,而是關於數據完整性 (Data Integrity)。當數據透過電線或 Wi-Fi 傳輸時,位元(\(0\) 和 \(1\))可能會因電氣干擾而意外翻轉。

方法 A:同位檢查位 (Parity Bits)

在二進制字串中加入一個額外的位元,使 \(1\) 的總數變為偶數奇數

  • 偶同位 (Even Parity):\(1\) 的總數必須是偶數。
  • 奇同位 (Odd Parity):\(1\) 的總數必須是奇數。

弱點:如果兩個位元同時翻轉,同位檢查位將無法察覺!它只能偵測單一位元的錯誤。

方法 B:多數投票 (Majority Voting)

每個位元被發送多次(通常是 3 次)。接收者觀察「投票」結果。

例子:如果你想發送一個 \(1\),你發送 \(111\)。如果干擾使其變為 \(101\),電腦會看到 \(1\) 的數量比 \(0\) 多,因此認定該位元原意是 \(1\)。

方法 C:總和檢查碼 (Checksums)

電腦對數據執行數學公式以得出單一數值(即總和檢查碼)。此數值隨數據一同發送。接收者執行相同的公式,如果數值不匹配,則表示數據已損壞。


7. 安全軟件(工具程式 Utility Programs)

在你的課程大綱中,你需要知道工具程式提供了額外的功能來協助管理和保護電腦。一個經典例子是病毒檢查程式 (Antivirus)

  • 它會掃描檔案以尋找與已知惡意軟件相符的「特徵碼」(模式)。
  • 它可以隔離或刪除危險檔案以保護系統。

快速回顧清單:

  • 你能解釋明文密文之間的區別嗎?
  • 你知道凱撒密碼脆弱的三個原因嗎?
  • 你能列出維納姆密碼要達到完美安全性所需的 4 個條件嗎?
  • 你了解為什麼多數投票同位檢查位佔用更多記憶體嗎?

如果這些內容看起來很多,別擔心!只要記住:加密是為了隱藏含義,而錯誤偵測是為了檢查錯誤。