術語簡介
- Plnintext / Ciphertext
- Cipher: Encryption algorithm
- Secret key
- encipher(encrypt)/decipher(decrypt)
- cryptography
- cryptanalysis: 對密文進行破解的方式研究
- cryptology: 加密解密的技術理論
對稱加密的要求
- 演算法在未知密鑰時必須難以破解
- 如何安全的給予密鑰
密碼的運作
古典密碼學
- 替換組合: ex: 字母進行替換, caesar cipher (可以透過窮舉破解)
- 換位: 改變字母排列
- caesar cipher: 透過shift距離
特性
- 非對稱式加密法採用不同的key
- 對稱採用相同key
- block cipher: 以一個以上的資料作為區塊,個別進行加密運算
- stream cipher: 根據純文字進來,並資料單獨進行運算。
Cryptanalysis 密碼分析
何謂安全的密文
- computationally secure: 破解時間 > 保密期限
term
- ciphertext only: 只知道加密算法,最難的情況
- known plaintext: 可以獲得密鑰,由於密鑰可能相等可能可以破解之後的密文
- chosen plaintext: 選定明文,並對其加密,並得知大量明文與密文的差異求出金鑰
- chosen ciphertext: 同上,不過選定密文,並解密
- chosen text: 以上兩者結合
attack
- brute-force attack: 測試所有可能的key,必須能夠區別有效明文, 可透過可預期的明文降低運算量
Feistel Cipher
包含substitution與permutation加密
- 區分左右兩個區塊
- 透過func(子金鑰與右側) xor 左側進行加密
- 左右交換位置,進行下一次運算
設計的特性:
- block size: 越大產生的變化越多
- key size: 越長越安全
- 次數: 影響資料打散,越多越安全
- subkey generation algorithm: 複雜的算法提供更安全
- round function F: 用於加密運算的函數複雜度越高越安全
其他的考量:
- 速度: 安全的加密算法可能花費過多時間,因此需要進行取捨
對稱的 Block 加密
強度: DES < 3DES <= AES
- DES: 為fistel cipher,並且為56 bit已經不夠安全
- 3DES: 168 bit,串連DES,並且每個DES都有個別的56 bit, 並且加密、解密、加密得出密文,以便向下相容。
- AES
注:
- 加密算法隨則電腦強度增強而變弱
AES cipher
不同於feistel cipher
- 適合硬體設計
- 加解密算法對稱
技術
- 替換: 使用s-box進行block的bytes替換
- shift Rows: 簡易位移
- Mix Columns: 對每個字節進行混合變換
- Add roundkey: 狀態與key使用xor進行運算
key lengths
過長的長度可能在當下消耗的性能過多成為格外的累綴, 而在不同的長度提供了彈性,在當下機器還不能有效破解 金鑰時採用較低的長度,抱持安全性也保持性能, 並且延長演算法使用年限。
隨機偽隨機
何謂隨機
- 機率相同
- 不可預測
Stream cipher
將key輸入偽隨機函數之後,產生一個byte 與密文byte stream進行xor運算產生密文。
解密則採用相同函數並再次xor運算。
加密序列的周期必須非常長,使序列可以接近完全不重複的效果, 以接近隨機的效果。
- key至少128 bit,才有足夠的強度
RC4
- key長度為256個bit
- 為stream cipher
- t1 = KSA(key)
- t2 = pseudorandomGenerator(t1)
- t2 xor plaintext
block cipher
- Electronic Codebook Mode: 透過相同key進行block的加密,不過當中Block可能有重複, 會透露出相關性降低安全性
- Cipher Block Chining:
- 第一個byte stream與IV進行xor運算
- 每個byte stream再加密前,與先前密文xor
- 解密則把前一個密文傳入下一個,在解密之後進行xor運算得出原始資料
- 較花費時間,必須依序完成加解密
- S-bit Cipher feedback Mode:
- 不需要明文符合一定的長度
- 依然需要串接
- 第一次key與IV加密
- 每次選擇s-bit與plaintext進行xor
- 暫存器左移,以便放入上一次的密文,並用於產生下一次的結果加密, 並與明文xor
- 解密則算出s-bit之後對密文xor解密,同時該段密文可傳入下一段使用
- Counter Mode (CTR):
- xor資料與cipher text分離。
- 透過counter加密結果進行xor,可以優先運算達到加速的效果
- 路線異常時不影響結果,因為不採用上一個值。
Network Security Information Security Cryptography