密碼學(xué)—一場(chǎng)智力的追逐

楊蕊/巫光福/列法
密碼學(xué),從第一代的隱藏法,第二代的移位法和替代法,到第三代的維尼吉亞加密法,到第四代的恩尼格瑪機(jī),再到第五代的魔王加密系統(tǒng),第六代的RSA加密系統(tǒng),以及第七代的量子加密??傮w上可以看作是兩個(gè)時(shí)代,古典密碼學(xué)和現(xiàn)代密碼學(xué)。

密碼學(xué)的英語(yǔ)單詞是Cryptograghy,是由希臘單詞Kryptos(隱藏)和Graphin(寫(xiě))派生出來(lái)的,最初的意思是用來(lái)隱秘的傳遞信息。

2345截圖20200908083720.png

密碼學(xué),從第一代的隱藏法,第二代的移位法和替代法,到第三代的維尼吉亞加密法,到第四代的恩尼格瑪機(jī),再到第五代的魔王加密系統(tǒng),第六代的RSA加密系統(tǒng),以及第七代的量子加密??傮w上可以看作是兩個(gè)時(shí)代,古典密碼學(xué)和現(xiàn)代密碼學(xué)。

一、古典密碼學(xué)時(shí)期

二戰(zhàn)時(shí)期,美國(guó)使用的“納瓦霍語(yǔ)”加密,就是當(dāng)時(shí)最好用的加密法。看過(guò)吳宇森執(zhí)導(dǎo)的好萊塢電影《風(fēng)語(yǔ)者》就知道,它講的就是納瓦霍通訊兵的故事。這是唯一一個(gè)從未被破譯的軍事密碼,并且簡(jiǎn)單實(shí)用。

密碼學(xué)其實(shí)是一種想方設(shè)法給別人讀取信息制造更多麻煩,與此同時(shí)又不給自己讀取信息增加太多麻煩的學(xué)問(wèn)。我們應(yīng)當(dāng)明確一個(gè)觀點(diǎn),密碼加密應(yīng)當(dāng)在安全和效率上取得平衡,而不是純粹追求復(fù)雜難解。

在古典密碼學(xué)中,加密和解密過(guò)程的最小操作單位都是單個(gè)字符或者符號(hào),所以古典密碼學(xué)的核心就是移位法和替代法。在現(xiàn)代密碼學(xué),把研究對(duì)象用數(shù)來(lái)描述,再對(duì)數(shù)進(jìn)行運(yùn)算。不但突破了字母作為最小變化單位的限制,還可以使用更高等的數(shù)學(xué)算法做運(yùn)算,因此破譯就變得越來(lái)越難。所以,加密時(shí)所用的數(shù)學(xué)算法,是一個(gè)密碼能否被破譯的關(guān)鍵。

當(dāng)?shù)骄S尼吉亞加密法時(shí),字母的頻率特征便消失了。為了掩蓋字母使用中暴露的頻率特征,使用多套符號(hào)代替原來(lái)的文字。人們事先規(guī)定每個(gè)字母用了哪套移位法,但并不是毫無(wú)規(guī)律的指定,而是要約定一個(gè)規(guī)則,這個(gè)規(guī)則就叫作“鑰匙”。最終,原文里同一個(gè)字母會(huì)被加密成不同字符,hello中的兩個(gè)“l”分別變成了D和J。而且密文中同樣的字符也可能代表不同的原文。

但是加密程度極高的維尼吉亞加密法卻沒(méi)有得到廣泛的使用,因?yàn)槠平怆y度太大。直到它出現(xiàn)之后兩百多年的南北戰(zhàn)爭(zhēng)時(shí)期,才得到應(yīng)用。歐洲各國(guó)的情報(bào)部門(mén)的建立和電報(bào)的出現(xiàn)讓人們不得不采用更為復(fù)雜的加密法,而機(jī)械的出現(xiàn)也讓這一極其復(fù)雜的加密法有了使用的可能性。因此,基礎(chǔ)學(xué)科的發(fā)展是工程領(lǐng)域發(fā)展的根基,新理論的發(fā)明要比產(chǎn)品的發(fā)明重要得多。

2345截圖20200908083720.png

維吉尼亞加密法是一個(gè)精彩的歷史,針對(duì)其鑰匙的循環(huán)這個(gè)缺陷,加密一方又繼續(xù)發(fā)展,改進(jìn)方法是增加鑰匙的長(zhǎng)度。2.0版本正是讓使用每一套加密法的字母數(shù)量大大減少,從而使得頻率分析法不再適用,人們也就一般使用一篇文章作為鑰匙了。但是不依賴于頻率分析法,人們采用了另一種近乎于體力勞動(dòng)大量猜測(cè)的方法。最后3.0版本的改進(jìn)在于鑰匙編成隨機(jī)字母的方式,而非有意義的文章,稱之為單次鑰匙簿密碼法,但是因?yàn)樾蔬^(guò)低,使用的很少。

密碼學(xué)和戰(zhàn)爭(zhēng)的關(guān)系是相互影響相互促進(jìn)的,一方面信息的價(jià)值比武器的價(jià)值要高得多,密碼學(xué)會(huì)深刻影響戰(zhàn)爭(zhēng)的結(jié)果;另一方面戰(zhàn)爭(zhēng)對(duì)于加密解密的需要,又直接推動(dòng)了密碼學(xué)的發(fā)展。

二戰(zhàn)中大放異彩的第四代加密法——恩尼格瑪機(jī),它使用的加密方式,本質(zhì)上還是第二代加密法——替代和移位,但因?yàn)榭梢郧袚Q無(wú)窮多種加密配套組合,所以在對(duì)抗頻率分析法上極其有效。也正是從它開(kāi)始,密碼學(xué)不再依賴紙和筆的運(yùn)算,使用機(jī)械和電子加密的時(shí)代正式到來(lái)。

恩尼格瑪機(jī)的重點(diǎn)就是編碼器,編碼器由一堆可以手工設(shè)置的機(jī)械部件組成,任何地方的調(diào)整都會(huì)改變加密的結(jié)果。每敲一個(gè)字母,齒輪會(huì)往下轉(zhuǎn)一格,齒輪的轉(zhuǎn)動(dòng)導(dǎo)致線路連接的變化,而連接線一變,又直接導(dǎo)致加密結(jié)果的不同。其實(shí)恩尼格瑪機(jī)的本質(zhì)還是類(lèi)似于尼吉亞加密法,關(guān)鍵在于鑰匙的使用,但是可以產(chǎn)生的鑰匙的無(wú)規(guī)律性大大提高,方便之處在于,幾組齒輪的初始值是可以隨意設(shè)置的,所以幾乎沒(méi)有什么技巧可以破解,而所謂的窮舉法暴力破解又面臨著太多的可能性。

最后是圖靈破解了恩尼格瑪機(jī),破解的關(guān)鍵在于知道每次加密前人工設(shè)定的初始狀態(tài),而且出現(xiàn)了對(duì)小鑰匙加密的總鑰匙,不過(guò)具體的破解過(guò)程太復(fù)雜了。

但有趣的是,圖靈破解的關(guān)鍵居然源于“人性的弱點(diǎn)”,因?yàn)槌跏贾档脑O(shè)定做不到完全的隨機(jī),即使鍵盤(pán)的隨意敲擊也帶有一定的規(guī)律性,這也就給了破解一方可乘之機(jī)。

2345截圖20200908083720.png

隱藏法時(shí)代中,如何加密的細(xì)節(jié)是屬于核心機(jī)密;在替代法和移位法中,大部分操作原理人們都知道,只是不知道具體移動(dòng)了幾位;但到了機(jī)械電子加密的時(shí)代,加密設(shè)備的工作原理,不論是理論還是技術(shù)細(xì)節(jié),敵我雙方都了如指掌,密碼的安全性全部落在鑰匙上,而不再依賴于加密的操作細(xì)節(jié)。

下面進(jìn)入現(xiàn)代密碼學(xué)時(shí)代。

三、現(xiàn)代密碼學(xué)時(shí)期

在數(shù)學(xué)的推動(dòng)下,從計(jì)算機(jī)時(shí)代開(kāi)始,字母不再作為最小的操作單位,以往的加密,都是對(duì)單個(gè)字母進(jìn)行操作;但數(shù)字化后的加密,打亂的是語(yǔ)言規(guī)律的底層結(jié)構(gòu),改變發(fā)生在字母內(nèi)部。魔王加密系統(tǒng)中的魔王是一套完全公開(kāi)的操作算法。魔王系統(tǒng)加密能保證信息主體的安全,但雙方還是要交換鑰匙,而鑰匙的安全是沒(méi)法保證的。這就是魔王系統(tǒng)最大的漏洞。當(dāng)鑰匙越?jīng)]規(guī)律時(shí),密碼越保險(xiǎn),但也就越需要雙方見(jiàn)面溝通;鑰匙越有規(guī)律,密碼越不安全,但卻省去了見(jiàn)面溝通的成本。

為了解決這個(gè)問(wèn)題,一種不可逆的函數(shù)占據(jù)了重要的地位,也就是單向函數(shù)。而這種不可逆的操作稱為模運(yùn)算。有些類(lèi)似鐘表的時(shí)間計(jì)算。滿12進(jìn)1。當(dāng)模比較小的時(shí)候,可以逆運(yùn)算的數(shù)字比較多;但是當(dāng)模大到一定程度時(shí),就完全沒(méi)有逆運(yùn)算了,這是由數(shù)學(xué)決定的,具體的操作方式就是“迪菲-黑爾曼鑰匙交換方案”。

雖然基于模運(yùn)算,密碼學(xué)不再需要單獨(dú)發(fā)送鑰匙,但是卻需要雙方始終在線,即刻恢復(fù),因此實(shí)際上應(yīng)用場(chǎng)景很狹小。

而第六代RSA加密系統(tǒng)就解決了應(yīng)用場(chǎng)景的問(wèn)題。RSA加密的關(guān)鍵在于“非對(duì)稱鑰匙”或者說(shuō)“非對(duì)稱加密”的出現(xiàn)。即上鎖和開(kāi)鎖用的是兩把不同的鑰匙。RSA加密法使用的數(shù)學(xué)工具很陌生,這個(gè)方法用到了兩大數(shù)學(xué)領(lǐng)域的知識(shí)——質(zhì)數(shù)方面的應(yīng)用和數(shù)論有關(guān),單向函數(shù)的應(yīng)用和群論有關(guān)。這個(gè)時(shí)候的運(yùn)算原理難以理解,但是在數(shù)學(xué)原理上是保證了一定成立的。

在近一步的發(fā)展中,出現(xiàn)了“數(shù)字簽名”,以確認(rèn)發(fā)送消息人的身份。比如A給B發(fā)送消息,加兩次密,一次使用A的私鑰,一次使用B的公鑰,前者是為了確定消息的發(fā)送者是A,后者是確保只有B可以解開(kāi)?,F(xiàn)在,我們生活在一個(gè)技術(shù)沒(méi)有天花板的時(shí)代,由新技術(shù)造成的問(wèn)題,只能由更新的技術(shù)解決。

之后我們進(jìn)入到量子加密階段,我們先來(lái)了解下比特幣和區(qū)塊鏈。比特幣的設(shè)計(jì)初衷是希望在點(diǎn)對(duì)點(diǎn)的電子現(xiàn)金支付中,擺脫中央銀行的管制。而由于沒(méi)有機(jī)構(gòu)的管制,就不可避免地要使用加密法,比特幣中的密碼學(xué)并不復(fù)雜,只有2種:一個(gè)是SHA256加密法,另一個(gè)是非對(duì)稱鑰匙系統(tǒng)。前一個(gè)是Hash函數(shù),也就是不論原始數(shù)據(jù)有多長(zhǎng)、有多少位,經(jīng)過(guò)Hash運(yùn)算后,輸出的值的長(zhǎng)度都是固定的,運(yùn)算的結(jié)果是一個(gè)256位的2進(jìn)制數(shù)就足夠了。

比特幣規(guī)定了,寫(xiě)入賬本的信息必須以之前的交易為基礎(chǔ)。之所以要以之前的交易為基礎(chǔ),是因?yàn)檫@套交易系統(tǒng)里沒(méi)有中央銀行。之所以一定要去除中央銀行,那就不是技術(shù)原因了,而是價(jià)值觀的問(wèn)題。那個(gè)價(jià)值觀,就是無(wú)政府主義和理想主義。

2345截圖20200908083720.png

比特幣在使用的過(guò)程中依舊存在很多問(wèn)題,大概率不會(huì)成為主流的電子貨幣,但是它還有一些巨大的運(yùn)用,比如區(qū)塊鏈。在區(qū)塊鏈中,每一個(gè)區(qū)塊里都包含著成百上千條交易記錄。只要經(jīng)過(guò)檢查合格了,就寫(xiě)在之前最后一個(gè)區(qū)塊的后面。大概率說(shuō),一個(gè)新區(qū)塊里的交易記錄大多數(shù)是同時(shí)到的,但肯定還會(huì)略有區(qū)別,所以就會(huì)面臨一個(gè)問(wèn)題——它們會(huì)同時(shí)向網(wǎng)絡(luò)提交N個(gè)不同版本的新區(qū)塊。比如說(shuō)同一時(shí)間有200個(gè)不同版本的新區(qū)塊出現(xiàn),那選哪個(gè)為大家的標(biāo)準(zhǔn)呢?比特幣網(wǎng)絡(luò)的解決辦法是,限制單位時(shí)間里產(chǎn)生新區(qū)塊的數(shù)量。這個(gè)時(shí)間限制源于做兩道題目。

第一個(gè)是簡(jiǎn)單題,它是這樣計(jì)算的:計(jì)算出一個(gè)字符串,這串字符由3部分組成。第一部分是這個(gè)新區(qū)塊內(nèi)包含的成百上千的交易記錄,第二部分是這個(gè)新區(qū)塊的基本信息,最后一個(gè)部分是前一個(gè)區(qū)塊的SHA256函數(shù)值。第二個(gè)題目的難度大幅上升,也是利用SHA256函數(shù)進(jìn)行計(jì)算。整個(gè)比特幣網(wǎng)絡(luò),只認(rèn)可長(zhǎng)度最長(zhǎng)的那條鏈。

量子計(jì)算機(jī)中,存儲(chǔ)的數(shù)據(jù)總是處于0和1的疊加態(tài),可以理解成所有出現(xiàn)0和1的可能性融匯在一起,所以一個(gè)量子存儲(chǔ)單位在某一時(shí)刻,是可以同時(shí)存儲(chǔ)2k個(gè)數(shù)據(jù)的。量子計(jì)算機(jī)一次操作就相當(dāng)于傳統(tǒng)計(jì)算機(jī)很多次操作,計(jì)算能力大大增加了。所以如果能設(shè)計(jì)出一些連續(xù)的操作來(lái)分解質(zhì)數(shù)的話,即使是一個(gè)超大數(shù),用量子計(jì)算機(jī)也能很快的找出他的因數(shù)。這樣,RSA加密法就被破解了。這種操作就是“Shor算法”。它是1994年設(shè)計(jì)出來(lái)的,專門(mén)用來(lái)分解因數(shù)。

事實(shí)上,量子計(jì)算機(jī)破解密碼需要軟件和硬件的協(xié)同,以上的算法就是軟件實(shí)現(xiàn)的部分,需要聲明的是量子計(jì)算機(jī)雖然相較于傳統(tǒng)計(jì)算機(jī)的算力大大增加,可以快速的處理復(fù)雜的運(yùn)算,但其計(jì)算量的增加隨數(shù)字N的增加依舊是較為陡峭的曲線,也就是只要N足夠大,保密的性能就足夠優(yōu)秀。

如果那些明暗條紋代表著量子計(jì)算機(jī)運(yùn)算到某一時(shí)刻的量子位的正確狀態(tài)的話,那設(shè)計(jì)者要盡最大可能維持住這種狀態(tài)。但實(shí)際上,這種狀態(tài)會(huì)被很多因素干擾。在宏觀世界里,任何一種物質(zhì)都有可能和量子發(fā)生互動(dòng)改變他們的狀態(tài),比如說(shuō)溫度。所以那些量子計(jì)算機(jī),都需要在零下200多攝氏度的極低溫才能正常工作。所以,到目前為止并沒(méi)有出現(xiàn)可以有效破解RSA加密法的方法,事實(shí)上目前銀行也大多采用這種方式。

關(guān)于第七代加密法——量子加密,和其他加密法最大的不同是,其他加密法的原理只使用了數(shù)學(xué),而它不但使用了數(shù)學(xué),還使用了物理中的量子理論。也許正是因?yàn)楸澈笥袃纱罂可?,所以它是目前為止最?qiáng)的加密法,就算是量子計(jì)算機(jī)也很可能無(wú)法破解。數(shù)學(xué)原理就是單詞鑰匙薄密碼法,這種加密法無(wú)法破解的前提就是鑰匙的完全隨機(jī),而在量子加密中這個(gè)問(wèn)題得到了有效的解決。鑰匙既不用額外的傳輸,而且本身又是完全隨機(jī)的,滿足了單次鑰匙簿加密法,并且改進(jìn)了傳送鑰匙的薄弱環(huán)節(jié)。

而量子加密最吸引人的特點(diǎn)來(lái)自于它的不可破解。因?yàn)槿绻孔蛹用苣鼙黄平猓驼f(shuō)明在量子理論中,出現(xiàn)了一種對(duì)量子態(tài)測(cè)量后還不改變量子態(tài)的方法,而這是違反量子力學(xué)基本原理的,說(shuō)明目前所有量子力學(xué)結(jié)論都是錯(cuò)的。而我們相信量子力學(xué)現(xiàn)有的基本理論都是經(jīng)過(guò)無(wú)數(shù)的實(shí)驗(yàn)證明的,即使后期有理論改進(jìn),但不會(huì)出現(xiàn)完全的翻盤(pán)。

參考文獻(xiàn)

[1]Barona R,Anitha E A M.Optimal cryptography scheme and Efficient Neutrosophic C-means clustering for anomaly detection in cloud environment[J].Journal of Circuits,Systems and Computers,2020.

[2]Rodrigues G A P,Albuquerque R D O,Alves G D O,et al.Securing Instant Messages with Hardware-Based Cryptography and Authentication in Browser Extension[J].IEEE Access,2020,PP(99):1-1.

[3]Yumang A N,Dimaunahan E D,Lazaro J B,et al.Encryption and Decryption of Vital Signs Information through a Symmetric based Cryptography Algorithm[C]//ICBET 2020:2020 10th International Conference on Biomedical Engineering and Technology.2020.

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無(wú)評(píng)論