3.1. 什么是密碼學(xué)余指?什么是密碼系統(tǒng)捕犬?什么是明文?什么是密文酵镜?什么是加密碉碉?什么是密鑰?
用這樣的一個故事或許可以解釋:
Julius Caesar 想發(fā)消息給她信任的熟人淮韭,但是她不相信中間負(fù)責(zé)傳遞消息的信使Adam垢粮。于是Caesar把消息中的每一個字母A替換成了字符D,每一個字母B替換成了E缸濒,并且依此把所有字母進(jìn)行了替換∽愣現(xiàn)在,只有知道了“替換距離為3”這個準(zhǔn)則的人才可以解密得到她原本要傳送的消息庇配。
一個密碼系統(tǒng)即為一種偽裝消息斩跌,使得只有特定的對象才可以看破的手段。
密碼系統(tǒng)就是一門創(chuàng)造和使用密碼系統(tǒng)的藝術(shù)捞慌。同樣耀鸦,密碼分析就是一門破解密碼系統(tǒng)的藝術(shù)---揭開偽裝,即便你本不應(yīng)該有這個能力啸澡。而密碼學(xué)就是同時研究這兩門藝術(shù)的一門學(xué)科袖订。
未經(jīng)過處理的消息就是我們所說的明文,經(jīng)過偽裝處理過的消息就是我們所說的密文嗅虏。加密指的是從明文轉(zhuǎn)變成為密文的過程洛姑。同樣,解密即為從密文轉(zhuǎn)變成明文的過程皮服。
一個密碼系統(tǒng)一般由多個算法組成楞艾。這些算法是可標(biāo)識的参咙;而標(biāo)識所用的標(biāo)簽就是我們所說的密鑰。舉一個例子硫眯,這里的Caesar加密所使用的替換距離3---3可以說就是一個密鑰蕴侧。對于Caesar可以使用任意的整數(shù)作為密鑰。
3.3.如何開始進(jìn)行密碼分析两入?
在經(jīng)典的密碼分析中净宵,需要對分析和推斷的結(jié)合,需要數(shù)學(xué)工具的巧妙運用裹纳,對特定模式的識別择葡,毅力和運氣。而這方面能找到的最好的教材非<<the Military Cryptanalytics>>系列莫屬剃氧。顯而易見刁岸,就絕大部分的人而言,對于密碼分析的熟練度來自對于給定系統(tǒng)的不斷嘗試破解她我。這樣的經(jīng)驗是非常可貴的迫横,以至于盟軍在二戰(zhàn)中的一些密碼分析直到現(xiàn)在仍處于保密狀態(tài)番舆。
現(xiàn)代公鑰密碼分析主要由整數(shù)分解或者解決離散對數(shù)難題構(gòu)成。這和經(jīng)典密碼分析區(qū)別較大矾踱。一些計算數(shù)論的理論家可能是公鑰密碼體制最成功的分析員恨狈。
3.4. 什么是暴力搜索?什么是密碼相關(guān)性
對于一個等式$f(x) = y$, 如果我們知道y的值以及函數(shù)$f$呛讲,那么嘗試所有可能的$x$值計算$f(x)$直到等于$y$就找到了需要的$x$禾怠。這就是暴力搜索
或許我們可以用下面一個例子更好地解釋什么是暴力搜索(brute-force search):
假設(shè)一個密碼分析員找到了一組密文和對應(yīng)的明文,但是他不知道密鑰到底是什么贝搁。此時吗氏,他可以簡單的嘗試每一個可能的密鑰對明文進(jìn)行加密,或者對密文進(jìn)行解密直到明文和密文相匹配雷逆,就可以找到本次加解密所使用的密鑰弦讽。
對于每一個精心設(shè)計好的密碼系統(tǒng),應(yīng)該存在一個非常大的密鑰空間膀哲,使得暴力搜索變得不切實際往产。
科技上的進(jìn)步把很多的不切實際的事情變成了可行之事。舉一個例子某宪,被廣泛使用超過了十年的DES密碼體制仿村,擁有2^56 (約等于10^17)個可能的密鑰。在上個世紀(jì)七十年代兴喂,這個計算量幾乎是不可能被做到的蔼囊。但是今時不同往日焚志,隨著計算機(jī)的處理迅速提升,大量的并行計算處理器使暴力破解成為可能压真,對DES的安全性造成了巨大的威脅
5.2. 乘積密碼的安全性由何保證娩嚼?
沒有人知道如何在數(shù)學(xué)上證明乘積密碼是完全安全的。所以在實際上滴肿,一個方法是從密文的高度隨機(jī)性來論證的岳悟。舉個例子,即密碼系統(tǒng)為非線性的泼差,其可以產(chǎn)生函數(shù)依賴于明文的每一個比特以及密鑰的密文贵少。Meyer的一篇論文中指出來只要有五輪或者以上的DES算法就可以保證這樣的一個依賴。從這個意義上來講堆缘,一個乘積密碼體制應(yīng)該表現(xiàn)為一個將結(jié)合明文滔灶,密鑰產(chǎn)生密文的非線性混淆函數(shù)。
5.6. 對稱分組密碼體制可以用作消息認(rèn)證嗎?
你可以使用對稱分組密碼體制來向你自己證明你發(fā)送了一條消息吼肥,并且在發(fā)送之后這條消息并沒有被更改录平。但是你并不能向其他人證明此事,除非你向其揭露了你的密鑰缀皱。但是在那之后斗这,你再也無法驗證
用此密鑰加密的消息的真實性。
5.9. 什么是差分分析啤斗?
差分分析是一種可用于分析存在重復(fù)映射(即基于重復(fù)的輪函數(shù)的映射)的統(tǒng)計攻擊表箭。這種方法在二十年前風(fēng)靡一時,但是很快被人指出DES密碼體制中的S-盒就已經(jīng)做到最優(yōu)化防范差分攻擊了钮莲。差分攻擊已經(jīng)被有效證明對某些乘積密碼非常奏效免钻。
差分分析基于對大量密文對$Y,Y'$以及相對應(yīng)的明文對$X,X ’$($X,X'$滿足差分關(guān)系$D=X \oplus X'$)的大量觀察分析。在基礎(chǔ)的Biham-Shamir攻擊中崔拥,至少需要$2^{47}$對明文對才能破解DES得到密鑰极舔。大體上,如果DES算法中的迭代輪數(shù)只有6或8輪的話只需要更少的明文對握童。在這些輪數(shù)較少的情況中姆怪,實際上使用幾千個明文對就足以在大約十幾分鐘內(nèi)得到密鑰,而在標(biāo)準(zhǔn)的16輪迭代DES中澡绩,這種攻擊是幾乎不切實際的稽揭,因為他需要太多的已知明文對了。
Biham和Shamir在DES上的工作披露了關(guān)于此算法的很多驚人的資料肥卡。最重要的一項是如果密鑰移位變換步驟被從DES中移除溪掀,而使用一個768bit(每一輪使用48比特,有十六輪)的密鑰步鉴,這個密鑰可以在少于$2^{64}$步內(nèi)被破解因此揪胃,獨立的子密鑰并不會使得DES的安全性大大增強璃哟。更進(jìn)一步,DES中的S-盒是極其敏感的喊递,對于其表項中的一些改變都會給差分攻擊帶來很大的便利随闪。
6.6. RSA真的安全嗎?
這個問題至今仍是無人知曉骚勘。一個針對RSA的明顯攻擊是將$n=pq$分解铐伴,得到兩個素數(shù)$p$,和$q$。但是大數(shù)的因式分解問題真的可解嗎俏讹?目前還沒有得到嚴(yán)格的數(shù)學(xué)證明当宴,但是依照現(xiàn)在的計算機(jī)運行速度來說,如果私鑰和$n$選擇的位數(shù)太大是不可能在一個合理的時間內(nèi)分解出來的泽疆,所以我們認(rèn)為RSA是計算上安全的户矢。