Appearance
1.2 密碼學基礎-古典密碼學篇
學習目標
- 認識密碼學中的常見名詞
- 認識對稱式與非對稱式密碼
- 認識摩斯電碼
- 認識 XOR 加密
- 認識凱撒加密
密碼學常見名詞
- 明文:原始的資料。
- 密文:明文經過加密即稱為密文。
- 鑰匙(Key):搭配演算法運算可進行加密或解密。
對稱式與非對稱式密碼
你是否聽過對稱式密碼與非對稱式密碼?分別代表什麼意思呢?
對稱式密碼指使用同一把鑰匙(Key)可進行加密及解密,例如 XOR 加密就是其中一個例子,透過鑰匙(Key)可將明文加密成密文,亦可利用鑰匙(Key)將密文解密。
非對稱式密碼則是有兩把鑰匙(Key),透過演算法的設計,鑰匙 A 可解密鑰匙 B 加密的內容,鑰匙 B 可解密鑰匙 A 加密的內容;但鑰匙 A 不可解密鑰匙 A 加密的內容,鑰匙 B 也無法解密鑰匙 B 加密的內容,例如:RSA。
摩斯電碼
摩斯電碼(Morse Code)是由美國發明家塞繆爾·摩斯(Samuel Morse)和他的助手艾爾佛雷德·維爾(Alfred Vail)在1830年代開發的通訊系統。最初是為了電報通訊而設計,它使用點(.)和劃(-)的組合來代表字母和數字。
摩斯電碼的基本原理非常簡單:
- 每個字母和數字都由特定的點和劃組合表示
- 短信號為點(.),長信號為劃(-)
- 例如:A是(.-), B是(-...)
這個通訊系統在其後的百年中廣泛應用於海上通訊、軍事通信,以及緊急求救。最著名的求救信號 SOS(...---...)就是用摩斯電碼表示的。即使在今天,許多軍事和航海人員仍然需要學習摩斯電碼作為備用通訊方式。
詳細之摩斯電碼對照表可參考下圖(圖片來源:https://as2.ftcdn.net/v2/jpg/00/91/38/81/1000_F_91388152_LyydLxRZV72LOsflWCn1gd8broX4Vppg.jpg)。

XOR 加密
XOR(異或)加密是一種簡單但有效的加密方法,它基於 XOR 邏輯運算。XOR 運算的特點是:
- 當兩個輸入位相同時,輸出為 0
- 當兩個輸入位不同時,輸出為 1
XOR 加密的基本原理:
- 將明文與密鑰進行 XOR 運算得到密文
- 將密文再與相同的密鑰進行 XOR 運算,就能還原出原始明文
這種加密方式有幾個有趣的特性:
- 簡單對稱性:加密和解密使用相同的運算和密鑰
- 自反性:對同一數據進行兩次 XOR 運算會得到原始數據
- 運算速度快:XOR 是基本的位運算,執行效率很高
舉個例子:
- 明文:1010
- 密鑰:1100
- XOR 運算後得到密文:0110
- 用密鑰對密文再次 XOR:得到 1010(原始明文)
雖然 XOR 加密簡單易懂,但單獨使用它作為加密方法並不安全,因為它容易受到各種密碼分析攻擊。不過,它經常作為更複雜加密算法的組成部分,比如在流密碼中使用。在實際應用中,它通常與其他加密技術結合使用,以提供更好的安全性。
凱撒密碼
凱撒密碼的歷史故事
凱撒加密的名字來自古羅馬帝國的凱撒大帝(Julius Caesar)。在公元前一世紀,凱撒用這種簡單的加密方法與他的將軍們進行秘密通信。
根據歷史記載,凱撒選擇將字母位移3位作為他的標準加密方式。當時在戰爭期間,這種簡單的加密方法確實發揮了重要作用,可以有效防止敵人讀取軍事情報。
有趣的是,羅馬歷史學家蘇埃托尼烏斯(Suetonius)在他的著作《十二凱撒傳》中特別記載了這種加密方法。這也是為什麼現在這種加密方法被稱為"凱撒密碼"的原因。
雖然以現代標準來看這種加密方法非常簡單,但在當時的古代世界,由於識字率較低,再加上人們對密碼學認識有限,這種方法確實達到了保密的效果。它可以說是最早的替換式加密方法之一,為後來的密碼學發展奠定了基礎。
凱撒密碼的加密和解密
凱撒加密的核心是字母位移,即將明文中的每個字母按照固定的位數向後移動。最常見的是位移3位,這也是凱撒本人使用的方式。
加密步驟
- 選定位移值(例如3)
- 對明文中的每個字母:
- 將字母在字母表中向後移動指定位數
- A 變成 D
- B 變成 E
- C 變成 F
- 以此類推...
- Z 循環回到 C
解密步驟:就是加密的反向操作,將密文中的每個字母向前移動相同的位數
- 使用相同的位移值(如3)
- 對密文中的每個字母:
- 將字母在字母表中向前移動指定位數
- D 變回 A
- E 變回 B
- F 變回 C
- 以此類推...
例如
- 明文:HELLO
- 位移:3
- 加密過程:
- H → K(向後3位)
- E → H
- L → O
- L → O
- O → R
- 密文:KHOOR