[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
\(\mathcal{K}\): Key space
- 隱含\(|\mathcal{K}|\geq|\mathcal{C}|\geq|\mathcal{P}|\)
 - 相等的關係式
 - \(Pr(C|P)=Pr(C)\)
 - \(Pr(C|P_1)=Pr(C|P_2)\)
 
Shannon’s Theorem
假設 \(|\mathcal{K}|=|\mathcal{C}|=|\mathcal{P}|\),且\(Pr(P)\geq 0\)
  此加密系統提供Perfect secrecy \(\Leftrightarrow\) 所有\(K\)出現機率相等且存在唯一一個\(K\)使得\(E_K(P)=C\)
- \((\Rightarrow):\) 假設存在一個\(C\),使得沒有\(K\)符合\(E_K(P)=C\),則\(P(P|C)=0\)
和Perfect secrecy定義矛盾: \(Pr(P|C)=Pr(P)>0\)
因為 \(K\) 和 \(C\) 一樣多,若 \(K\) 不是uniformly選擇,則給定 \(C\) 會有某些 \(P\) 出現機率較高,跟Perfect secrecy矛盾 - \((\Leftarrow):\) 若滿足\(K\)出現機率相等且存在唯一一個\(K\)使得\(E_K(P)=C\)
則對所有\(P\)而言\(Pr(C|P)=1/|\mathcal{K}|\)
則\(Pr(C|P_1)=Pr(C|P_2)=1/|\mathcal{K}|\),是perfect secrecy的定義 
Vernam’s One-Time Pad
滿足perfect secrecy的例子
Encryption: \(E_k(P)=P\oplus K\)
Decryption: \(D_k(C)=C\oplus 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 \(k_1,k_2\) 執行兩次 DES
 - 問題:Key size 非兩倍
 - Meet-in-the-middle-attack:
 - 假設明文和密文對為:\(DES_{k_2}(DES_{k_1}(P))=C\)
 - 則用 \(2^{56}\) 的 DES 時間破解 \(DES_{k_1}(P)=Z\)
 - 再用 \(2^{56}\) 的 DES 時間破解\(DES_{k_2}(Z)=C\)
 - 總共 DES 的操作為 \(2^{57}\)
 - known-plaintext attack
 
3DES
- 兩個不同的變形:3-key 3DES 和 2-key 3DES
 - 第一次用 \(k_1\) 加密,第二次用\(k_2\) 解密,第三次用 \(k_3\) 加密
 - 3-key 3DES: \(k_1,k_2,k_3\) 都不同,有效 key size 112-bit
 - 2-key 3DES: \(k_1=k_3\) ,有效 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(2^8)\),module \(x^8+x^4+x^3+x+1\)
 
ECB mode (Electronic Code Book)
- 有了 block cipher 機制後,若明文長度多於 block 長度,該如何處理?
 - EBC 是將明文切成區塊大小,最每個block獨立加密
 - Encryption: \(C_i=E_k(P_i)\)
 - Decryption: \(P_i=D_k(C_i)\)
 - 缺點: 相同明文會有相同的密文
 - 密文的重組和刪除無法被偵測到
 - 需要 padding
 
CBC mode (Cipher Block Chaining)
- 將明文切成區塊大小,根據前面計算的密文再 XOR 下個區塊的明文
 - 用一新的 IV,所以即使明文相同,密文仍不同
 - IV=\(C_0\)
 - Encryption: \(C_i=E_k(P_i\oplus C_{i−1})\)
 - Decryption: \(P_i=D_k(C_i)\oplus C_{i−1}\)
 - 優點: 密文的刪除和重組可以被偵測
 - 若傳輸 C2 有誤,只會影響 P2 和 P3,其他還是可以正常解密
 - 需要padding
 
CFB mode (Cipher Feedback Mode)
- 根據密文生成key stream
 - IV public, IV=\(C_0\)
 - Encryption: \(C_i=E_k(C_{i−1})\oplus P_i\)
 - Decryption: \(P_i=E_k(C_{i−1})\oplus C_i\)
 
OFB mode (Output Feedback Mode)
- key stream不受明文影響
 - key stream可以被pre-compute,如果已知IV的話
 - IV public
 - Encryption: \(Ci=E^i_k(IV)\oplus P_i\)
\(E^i_k(IV)=IV\) 加密 \(i\) 次 - Decryption: \(Pi=E^i_k(IV)\oplus C_i\)
 - 不需要 complete block 就可以加解密 \(\Rightarrow\) 適合平行
 - 把 block cipher 轉成 stream cipher
 
CTR mode (Counter Mode)
- 沒有feedback,可以平行執行
 - IV public
 - Encryption: \(C_i=E_k(IV+i)\oplus P_i\)
 - Decryption: \(P_i=E_k(IV+i)\oplus C_i\)
 - 不需要 complete block
 - 把 block cipher 轉成 stream cipher
 
Stream cipher
- 對每個 bit 做跟 key 的 XOR 運算
 - 目標:用 pseudo-random number generator (PRNG)
\(E_k(P)=P\oplus PRNG(IV,k)\) - 優點:
 - 計算快速
 - 沒有 perfect secrecy,若運用恰當可以跟 block cipher 一樣安全
 - PRNG 理論上是不可預測的 (不給定seed的話)
 - 缺點:
 - 沒有完整性 Integrity (XOR運算有結合率和交換率)
如果一個 key 用兩次會有危險 (因為 XOR 同個字串兩次會是0)
\((P_1\oplus PRNG(IV,K))\oplus (P_2\oplus PRNG(IV,K))=P_1\oplus P_2\)
若知道\(P_1\)有可能破解\(P_2\) - 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 \(\Rightarrow\) 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 吧!








留言
張貼留言