Attacks on implementation
implementation如果沒考慮到一些已知的attacks的話,會很慘!例如side channel attacks,利用觀察encryption/decryption的電力消耗,也有可能找出secret key
或是fault attacks,利用物理性的使紀錄加密資料的裝置出錯,有可能會在block cipher最後一個round時洩漏secret key! @@
所以絕對不要自己implement這些crypto primitives,既然稱為primitives就代表已經有其他公正機構(e.g. OpenSSL) 幫我們考慮到了這些implementation attacks!
Linear and differential attacks
此類攻擊的動機是,能否找出比exhaustive key search attack更快速的攻擊。這是對DES 的s-boxes的攻擊,記得之前說過s-boxes的mapping不能是linear,但已知DES5th s-boxes有些微的linearity bias,這使得attacker知道message 和ciphertext 能夠得知key的一些資訊。
可以用以下式子檢驗:
如果沒有bias的話,epsilon應該等於0,但是DES的s-boxes linearity使得epislon ~= 1/(2^21)
如何使用此攻擊過程省略,總之可以把攻擊DES時間降低到2^43 << 2^56 (Exhaustive search),不過前提是必須要獲得2^42個m/c pairs。
教訓就是,不要自己設計cipher!!!!!!!!!!!!! 5th sbox的linearity (儘管很輕微)都可能遭遇未知方法的攻擊,所以只能用已知的public cipher,至少已知的攻擊都有防範。
Quantum attacks
名子聽起來很威! 假設一個問題是海底撈針,也就是在某個domain space中找出某幾個特定答案,那只能透過exhaustive search (假設沒有其他快捷的演算法)。如果有量子電腦呢? 已經證明透過量子演算法,可以把search time降低到平方根的量級! 這讓128-bit AES也只需要2^64 時間就能破解key,這時一定要換成AES-256。
不過是否能有真正的量子電腦還是個問題。
沒有留言:
張貼留言