福爾摩斯探案集中有一個(gè)故事叫《跳舞的人》,福爾摩斯以字母在英文中出現(xiàn)的頻率為突破口,破解了一個(gè)用跳舞小人書寫的密碼。 這種跳舞小人的密碼,是傳統(tǒng)加密方法中的一種:簡(jiǎn)單代替密碼,就是用一個(gè)字母代替另一個(gè)字母,而代替的規(guī)則是確定的,比如凱撒密碼(字母位移后用模運(yùn)算得出代替字母的位置),或者一個(gè)小人就代表一個(gè)確定的字母。傳統(tǒng)加密方法的很容易破解,因?yàn)樗乃惴ê苋菀妆徊鲁鰜?。一旦算法被破解,整個(gè)加密系統(tǒng)就土崩瓦解。
現(xiàn)代加密方法
現(xiàn)代加密方法的特征之一就是安全性不依賴于算法的保密,而依賴于密鑰,這一原則現(xiàn)在也被普遍承認(rèn)為傳統(tǒng)密碼與現(xiàn)代密碼的分界線。《潛伏》里余則成用的的那本《蝴蝶夢(mèng)》就是這樣一個(gè)密鑰,這個(gè)東西很關(guān)鍵,加密方用它來加密,解密方也用它來解密,所以這個(gè)東西得保密。就算國軍知道了廣播上那些數(shù)字的含義(算法)也沒關(guān)系,書有那么多本,他們不知道用哪本書還是無法破譯密碼。
非對(duì)稱加密體制
為了保護(hù)密鑰,密鑰就要通過線下的方式來傳遞,這增加了使用上的麻煩:我要送一個(gè)密電去米德蘭,還得先派人去過去悄悄的送密鑰。為了解決這個(gè)問題,一種叫做“非對(duì)稱加密體制”的東西被發(fā)明出來了,它主要利用了單向函數(shù)的計(jì)算特性,也就是正向求解很容易而逆向求解卻會(huì)非常困難。生活中有很多單向函數(shù)的例子:你把鏡子打碎很容易,但是把碎片重新恢復(fù)成圓鏡卻很難;你用碎紙機(jī)粉碎一個(gè)文件很容易,但要把碎屑重新拼成之前的那張紙卻很難。在數(shù)學(xué)中這樣的函數(shù)也有很多,比如大數(shù)因子分解、橢圓曲線離散對(duì)數(shù)問題。
非對(duì)稱加密體制下,加密用公鑰,解密用私鑰。接收方可以通過網(wǎng)絡(luò)大張旗鼓的分發(fā)公鑰,任何人都可以用這個(gè)公鑰把信息加密發(fā)給他,但只有接收方的私鑰才能解密。你要暴力破解?想想碎紙機(jī)的比喻吧,要暴力破解一個(gè)256位的密鑰系統(tǒng),大概需要宇宙年齡那么長(zhǎng)的時(shí)間,還是綁架你嚴(yán)刑拷打要密鑰更方便。
所以小伙伴們只要保管好你銀行的U盾,就盡管放心買買買吧!
