[IT-Security-1] 對稱式密碼學 Symmetric Encryption

Symmetric Encryption


Notes from RWTH Aachen University course 
“IT security 1” Wintersemester 2019/20
professor: Meyer, Ulrike Michaela


Kerckhoff’s Principle

除了key之外,即使整個系統是公開的,這個密碼系統仍是安全的
相反的如果隱藏密碼系統的設計則是「security through obscurity

Perfect Secrecy


明文PP 及密文CCPr(P|C)=Pr(P) 
K: Key space
  • 隱含|K||C||P| 
  • 相等的關係式 
    • Pr(C|P)=Pr(C) 
    • Pr(C|P1)=Pr(C|P2)

Shannon’s Theorem

假設 |K|=|C|=|P|,且Pr(P)0
  此加密系統提供Perfect secrecy 所有K出現機率相等且存在唯一一個K使得EK(P)=C
  • (): 假設存在一個C,使得沒有K符合EK(P)=C,則P(P|C)=0
    和Perfect secrecy定義矛盾: Pr(P|C)=Pr(P)>0
    因為 KC 一樣多,若 K 不是uniformly選擇,則給定 C 會有某些 P 出現機率較高,跟Perfect secrecy矛盾
  • (): 若滿足K出現機率相等且存在唯一一個K使得EK(P)=C
    則對所有P而言Pr(C|P)=1/|K|
    Pr(C|P1)=Pr(C|P2)=1/|K|,是perfect secrecy的定義

Vernam’s One-Time Pad

滿足perfect secrecy的例子
Encryption: Ek(P)=PK
Decryption: Dk(C)=CK

Confusion 混淆

使每個 bit 的密文key 之間的關係變得複雜

Diffusion 擴散

改變一個 bit 的明文密文也會盡可能的混亂

對稱式加密 Symmetric Encryption

DES

  • 1977年被發表被NIST定為標準
  • 64-bit key (其中8個bits為parity,實際用56個bits) 和 64-bit block
  • 1999 年只用 22 小時就破解
  • 缺點是 Key length 太短

2DES

  • 用兩個不同的 key k1,k2 執行兩次 DES
  • 問題:Key size 非兩倍
  • Meet-in-the-middle-attack:
    • 假設明文和密文對為:DESk2(DESk1(P))=C
    • 則用 256 的 DES 時間破解 DESk1(P)=Z
    • 再用 256 的 DES 時間破解DESk2(Z)=C
    • 總共 DES 的操作為 257
      • known-plaintext attack 

3DES

  • 兩個不同的變形:3-key 3DES 和 2-key 3DES
  • 第一次用 k1 加密,第二次用k2 解密,第三次用 k3 加密
  • 3-key 3DES: k1,k2,k3 都不同,有效 key size 112-bit
  • 2-key 3DES: k1=k3 ,有效 key size 80-bit

AES

  • 目標:比 3DES 安全及有效率
  • key size: 128, 192, 256 bit
  • block size: 128 bit
  • operations:
    • Byte substitution (BS): 用S-BOX取代byte
    • Key addition (KA): 用128-bit round key做XOR運算
    • Shift row (SR): 平移row,每個row平移的數量不一
    • Mix column (MC): 乘法在GF(28),module x8+x4+x3+x+1


ECB mode (Electronic Code Book)

  • 有了 block cipher 機制後,若明文長度多於 block 長度,該如何處理?
  • EBC 是將明文切成區塊大小,最每個block獨立加密
  • Encryption: Ci=Ek(Pi)
  • Decryption: Pi=Dk(Ci)
  • 缺點: 相同明文會有相同的密文
  • 密文的重組和刪除無法被偵測到
  • 需要 padding


CBC mode (Cipher Block Chaining)

  • 將明文切成區塊大小,根據前面計算的密文再 XOR 下個區塊的明文
  • 用一新的 IV,所以即使明文相同,密文仍不同
  • IV=C0
  • Encryption: Ci=Ek(PiCi1)
  • Decryption: Pi=Dk(Ci)Ci1
  • 優點: 密文的刪除和重組可以被偵測
  • 若傳輸 C2 有誤,只會影響 P2 和 P3,其他還是可以正常解密
  • 需要padding


CFB mode (Cipher Feedback Mode)

  • 根據密文生成key stream
  • IV public, IV=C0
  • Encryption: Ci=Ek(Ci1)Pi
  • Decryption: Pi=Ek(Ci1)Ci


OFB mode (Output Feedback Mode)

  • key stream不受明文影響
  • key stream可以被pre-compute,如果已知IV的話
  • IV public
  • Encryption: Ci=Eik(IV)Pi
    Eik(IV)=IV 加密 i
  • Decryption: Pi=Eik(IV)Ci
  • 不需要 complete block 就可以加解密 適合平行
  • 把 block cipher 轉成 stream cipher

CTR mode (Counter Mode)

  • 沒有feedback,可以平行執行
  • IV public
  • Encryption: Ci=Ek(IV+i)Pi
  • Decryption: Pi=Ek(IV+i)Ci
  • 不需要 complete block
  • 把 block cipher 轉成 stream cipher


Stream cipher

  • 對每個 bit 做跟 key 的 XOR 運算
  • 目標:用 pseudo-random number generator (PRNG)
    Ek(P)=PPRNG(IV,k)
  • 優點:
    • 計算快速
    • 沒有 perfect secrecy,若運用恰當可以跟 block cipher 一樣安全
    • PRNG 理論上是不可預測的 (不給定seed的話)
  • 缺點:
    • 沒有完整性 Integrity (XOR運算有結合率和交換率)
      如果一個 key 用兩次會有危險 (因為 XOR 同個字串兩次會是0)
      (P1PRNG(IV,K))(P2PRNG(IV,K))=P1P2
      若知道P1有可能破解P2
  • IV 通常和密文同時傳遞,只有接收人和傳送人有 key
  • PRNG(IV,K)產生的 bit stream 被稱為 key stream

RC4

  • 簡單、快速、被廣泛使用
  • key scheduler phase:
    K 為input,生成256 bit的陣列
  • key Stream Generator phase:
    產生key stream
  • 不夠random
  • RC4不該被使用了

Cryptographically Secure PRNG

  • secure pass the next bit text
  • 給定所有 k 個 output,預測下一個 output 的機率不能大於 1/2

Basics: 
  • Buchmann: Einführung in die Kryptographie (7. Auflage), Springer Verlag, 2016
  • Stallings: Cryptograhy and Network Security, Part 2 on Symmetric Encryption, 7th edition, Pearson Global Edition, 2017
Further Reading:

完全不用解釋這邊要背各種 block cipher mode 有多困難,就先記得他們都是 Symmetric Encryption 吧!

留言

這個網誌中的熱門文章