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