iT邦幫忙

2025 iThome 鐵人賽

DAY 22
0
Security

從0基礎開始起飛,一起一步步踏入資安系列 第 22

[ Day 22 ] 古典密碼學 - 凱薩密碼、維吉尼亞、仿射密碼...

  • 分享至 

  • xImage
  •  

古典密碼學(Classical Cryptography)

在現代密碼學(像是 AES、RSA、ECC)出現之前,古代人為了保護機密資訊,發明了許多「古典密碼學」的方法。這些方法大多基於 字母替換字母重排,雖然現在已經不安全,但對學習密碼學的基礎原理非常重要。

以下將介紹幾種常見的古典密碼加密方式。

凱薩密碼(Caesar Cipher)

最有名的古典密碼之一,由凱薩大帝使用。

  • 加密原理:將每個字母按照固定的位移量往後移,位移量可自訂。
    例如位移量 = 3:
    • A → D
    • B → E
    • C → F
  • 範例:
    • 明文(Plaintext):HELLO
    • 位移 3 → 密文(Ciphertext):KHOOR
  • 弱點:
    • 只有 25 種可能的位移,很容易被暴力破解。

替換式密碼 ( 單表加密 monoalphabetic cipher )

凱薩密碼是它的一種特例,但這裡的位移不固定,而是用一個隨機的替換表。

  • 加密原理:建立一個隨機字母對應表。
    • A → Q
    • B → W
    • C → E
    • ...
  • 範例:
    • 明文:HELLO
    • 密文:XMDDK(假設替換表設定這樣)
  • 弱點:
    • 雖然比凱薩密碼強,但可以用「頻率分析」破解(例如英文中 E 最常出現)。

維吉尼亞密碼(Vigenère Cipher)

一種多表代換密碼,被稱為「不可破的密碼」長達數百年。

  • 加密原理:使用一個「密鑰字」反覆套用凱薩位移。
    • 例如密鑰:KEY
    • 明文:HELLO
    • 加密過程:
      • H + K → R
      • E + E → I
      • L + Y → J
      • L + K → V
      • O + E → S
  • 結果:密文 RIJVS
  • 優點:比單純位移難破解。
  • 弱點:若密鑰過短,仍能被「卡西斯基檢測法」或「頻率分析」破解。

普萊費爾密碼(Playfair Cipher)

由 Charles Wheatstone 發明,使用 5x5 字母矩陣。

  • 加密原理:
    1. 選擇一個關鍵字,填入矩陣第一列,剩下的字母依序補滿。
    2. 明文分為兩個字母一組。
    3. 根據矩陣規則進行加密:
      • 同一組的明文在同一列時 → 向右移一格
      • 同一組的明文在同一行時 → 向下移一格
      • 同一組的明文在斜對角時 → 取對方斜對角字母
  • 範例:
    • 關鍵字:PLAYFAIR
    • 明文:HELLO → HE LL OX
    • 密文:KC YQ MN

可參考以下,這個大大寫的超清楚 !
https://cms.aaasec.com.tw/index.php/2019/01/15/playfair/

換位密碼(Transposition Cipher)

與代換密碼不同,它不是改變字母,而是重新排列字母順序。

  • 加密原理:根據某種規則打亂明文字母。
  • 範例(欄位換位):
    • 明文:HELLO WORLD
    • 密鑰:312
    • 把字母按 3 列排 → 依序讀取欄位順序
    • 密文:LHOEL OLWRD

仿射密碼(Affine Cipher)

一種數學化的代換密碼。

  • 加密公式:

    C = (aP + b) mod 26
    
    • P = 明文字母(以數字 0–25 表示)
    • C = 密文字母
    • a, b = 密鑰,且 a 必須與 26 互質
  • 範例:

    • 設 a=5, b=8
    • 明文:H (7)
    • 密文:C = (5×7+8) mod 26 = 43 mod 26 = 17 → R

mod(模運算)是什麼?

a mod n = a 除以 n 的餘數
範例 :

  • 43 mod 26
    • 43 ÷ 26 = 1 … 17
    • 所以 43 mod 26 = 17
  • 10 mod 3
    • 10 ÷ 3 = 3 … 1
    • 所以 10 mod 3 = 1
  • 26 mod 26
    • 26 ÷ 26 = 1 … 0
    • 所以 26 mod 26 = 0

下一篇會介紹現代密碼學哦~


上一篇
[ Day 21 ] 硬連結? inode? ( Linux )
下一篇
[ Day 23 ] 現代密碼學 - 對稱/非對稱加密、 雜湊函數、數位簽章
系列文
從0基礎開始起飛,一起一步步踏入資安23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言