[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
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
因為 K 和 C 一樣多,若 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)=P⊕K
Decryption: Dk(C)=C⊕K
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(Pi⊕Ci−1)
- Decryption: Pi=Dk(Ci)⊕Ci−1
- 優點: 密文的刪除和重組可以被偵測
- 若傳輸 C2 有誤,只會影響 P2 和 P3,其他還是可以正常解密
- 需要padding
CFB mode (Cipher Feedback Mode)
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)=P⊕PRNG(IV,k) - 優點:
- 計算快速
- 沒有 perfect secrecy,若運用恰當可以跟 block cipher 一樣安全
- PRNG 理論上是不可預測的 (不給定seed的話)
- 缺點:
- 沒有完整性 Integrity (XOR運算有結合率和交換率)
如果一個 key 用兩次會有危險 (因為 XOR 同個字串兩次會是0)
(P1⊕PRNG(IV,K))⊕(P2⊕PRNG(IV,K))=P1⊕P2
若知道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
- 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:
- Random Numbers: RFC 1750
完全不用解釋這邊要背各種 block cipher mode 有多困難,就先記得他們都是 Symmetric Encryption 吧!
留言
張貼留言