对称密码与攻击
對稱密碼學
基礎知識
對稱密碼方案也稱對稱密鑰,秘密密鑰和單密鑰。
一個很常見的例子:Alice傳信息給Bob,被Oscar截取。但是Alice發送的信息x(明文),已通過k(密鑰)加密為y(密文),所以Oscar截取到的只是雜亂無章的y。
所以在一個可靠的密碼體制中唯一需要保密的就是密鑰。
簡單對稱密碼:替換密碼
將字母表中的一個字符用另一個字符替換。
假設我們選擇的替換表完全是隨機的,攻擊者不可能猜測出對應的輸出。值得注意的是,替換表是這種密碼體制的關鍵。
蠻力攻擊
蠻力攻擊:攻擊者Oscar通過信道竊取得到密文,并且他恰巧知道一小段明文,例如被加密文本的開頭。則Oscar可以嘗試使用所有可能的密鑰解密該密文的前一小段,當解密得到的正好是明文時密鑰正確。(此種加密方法的密鑰是一個替換表)
理論上講,蠻力攻擊是可以破解的,但實際上這種方法的可行性取決于密鑰空間的大小,即某個給定密碼存在的所有可能密鑰對數量。而且蠻力攻擊的過程會很復雜,因為不正確的密鑰會產生誤報。
替換密鑰空間:當選擇第一個字母A的替換字母時,我們可以從26個字母表中隨機選擇一個,例如K,第二個字母B的替換字母則可以從剩下的25個字母中隨機選擇,以此類推。因此,總共存在的不同替換表的數目為:26×25×24×……×3×2×1=26!≈2^88
但這并不能證明替換密碼算法是安全的,因為還有其他攻擊方法。
字母頻率攻擊
替換密碼的最大缺點在于:每個明文字符總是映射到同一個密文字符。這就意味著明文的統計屬性得到了保留。在實際的字母頻率攻擊中,我們可以利用以下幾種語言特征:
確定每個密文字母都頻率。通常,密文中字母都頻率分布與給定語音有著緊密聯系,尤其是最常用的總是很容易被認出來。英文中各字母的出現頻率圖:
上面提供的方法可以推廣到查看連續的兩個密文字母或三個四個等。
假設我們發現了字母分隔符(空格),就可以很容易找到一些高頻的短單詞,例如and、a、the、that、i 等等。但是能發現字母分隔符的情況并不常見。
一般在解密過程中,通常講上面的方法混合使用。
總之,好的密碼應該隱藏被加密文本的統計屬性,密文字符看上去應該是隨機而且是雜亂無章的。此外對于一個強大的加密函數來說,僅僅密鑰空間大是不夠的。
總結