目錄
1 密碼機(jī)通信模型
2 Enigma密碼機(jī)構(gòu)造
3 Enigma密碼機(jī)加解密過(guò)程
3.1?加密過(guò)程
3.2?解密過(guò)程
4 Enigma密碼機(jī)的安全性
5 Enigma密碼機(jī)破解
5.1?波蘭雷耶夫斯基破解
5.2?圖靈破解
? ? ? ?近代密碼一般指20世紀(jì)初~20世紀(jì)70年代期間的密碼技術(shù)。20世紀(jì)初電報(bào)的出現(xiàn)第一次使遠(yuǎn)距離快速傳遞信息成為可能, 它實(shí)現(xiàn)了遠(yuǎn)距離通訊的即時(shí)傳輸,但是也帶來(lái)了新的安全問(wèn)題,為保證每條信息的安全,需要給每條信息加密,隨著一戰(zhàn)的爆發(fā),也進(jìn)一步促進(jìn)了密碼技術(shù)的發(fā)展。近代密碼利用電子和計(jì)算機(jī)技術(shù)設(shè)計(jì)出更加復(fù)雜的密碼體系,雖然技術(shù)上有了很大進(jìn)步,但并未形成理論體系,該階段基本加密原理仍然和古典加密原理類似,仍然是替代及置換的基本原理,但是因?yàn)閼?yīng)用到了機(jī)電技術(shù),近代密碼體制的替代/置換方式從古典密碼的單表代換轉(zhuǎn)變?yōu)槎啾泶鷵Q,這使得人工破譯密碼的成本變得極高。
? ? ? ?這里介紹以恩尼格瑪(enigma)密碼機(jī)為代表的轉(zhuǎn)輪密碼機(jī),Enigma密碼機(jī)1918年由德國(guó)人亞瑟·謝爾比烏斯發(fā)明,隨后被應(yīng)用于軍事,最終被英國(guó)人破譯,Enigma密碼機(jī)的發(fā)明是密碼學(xué)發(fā)展史上的一次飛躍,密碼學(xué)就此進(jìn)入機(jī)械密碼時(shí)代。
1 密碼機(jī)通信模型

? ? ? ?發(fā)送者和接收者各自擁有一臺(tái)enigma。發(fā)送者用enigma將明文加密,將生成的密文通過(guò)無(wú)線電發(fā)送給接收者。接收者將接收到的密文用自己的enigma解密,得到明文。發(fā)送者和接收者會(huì)事先收到一份叫國(guó)防軍密碼本的冊(cè)子,它記錄了發(fā)送者和接收者所使用的每日密鑰,發(fā)送者和接收者需要分別按冊(cè)子的指示來(lái)設(shè)置enigma。
2 Enigma密碼機(jī)構(gòu)造
? ? ? ?Enigma密碼機(jī)是一個(gè)裝滿復(fù)雜精密元件的盒子,主要包括鍵盤(pán)(26個(gè))、轉(zhuǎn)輪(3個(gè))、顯示燈(標(biāo)注了同樣字母的26個(gè)小燈)和接線板,如下圖所示。

? ? ? ?本章節(jié)開(kāi)始我們講到了輪轉(zhuǎn)密碼機(jī)的加密原理其實(shí)也是置換,即通過(guò)一定的置換方式將明文置換為密文,下圖顯示了當(dāng)按下鍵盤(pán)的A鍵時(shí),使燈盤(pán)D亮的電流示意圖,即將A置換為D的過(guò)程。

? ? ? ?電流從電池(1)通過(guò)雙向鍵盤(pán)開(kāi)關(guān)(2)進(jìn)入插板(3)。接下來(lái),它穿過(guò)三個(gè)/四個(gè)已安裝的轉(zhuǎn)子(5)的布線,并進(jìn)入反射器(6)。反射器通過(guò)完全不同的路徑將電流返回,通過(guò)轉(zhuǎn)子(5)和進(jìn)入輪(4),流經(jīng)連接有電纜(8)的插頭“ S”(7)和插頭“ D”,再通過(guò)另一個(gè)雙向開(kāi)關(guān)(9)點(diǎn)亮相應(yīng)的燈。
? ? ? ?如果轉(zhuǎn)子的作用僅僅是把一個(gè)字母簡(jiǎn)單的換成另一個(gè)字母,那么在一千多年前就能通過(guò)字頻法破譯,Enigma密碼機(jī)的巧妙之處在于其核心部件——轉(zhuǎn)子,其構(gòu)造如下圖所示。

?? ? ? ?通過(guò)鍵盤(pán)鍵入一個(gè)字母時(shí),第一個(gè)轉(zhuǎn)子會(huì)轉(zhuǎn)動(dòng)1格,所以當(dāng)連續(xù)鍵入26個(gè)字母時(shí),第一個(gè)轉(zhuǎn)子正好轉(zhuǎn)動(dòng)26格(即1圈),此時(shí)第二個(gè)轉(zhuǎn)子轉(zhuǎn)動(dòng)1格,當(dāng)連續(xù)鍵入26*26個(gè)字母時(shí),第一個(gè)轉(zhuǎn)子轉(zhuǎn)動(dòng)26圈,第二個(gè)轉(zhuǎn)子轉(zhuǎn)動(dòng)1圈,當(dāng)連續(xù)鍵入26*26*26個(gè)字母時(shí),第一個(gè)轉(zhuǎn)子轉(zhuǎn)動(dòng)26*26圈,第二個(gè)轉(zhuǎn)子轉(zhuǎn)動(dòng)26圈,第三個(gè)轉(zhuǎn)子轉(zhuǎn)動(dòng)1圈。這種機(jī)制利用不同齒輪的傳動(dòng)比原理,類似于秒針、分針和時(shí)針的轉(zhuǎn)動(dòng)。通過(guò)第一章維吉尼亞密碼的學(xué)習(xí)我們知道這種三轉(zhuǎn)子的組合密鑰長(zhǎng)度為26*26*26,理論上只要信息長(zhǎng)度低于密鑰長(zhǎng)度時(shí),便無(wú)法破解。
? ? ? ?接下來(lái)講下為什么輸入信號(hào)A,經(jīng)過(guò)轉(zhuǎn)子和反射器后會(huì)輸出信號(hào)H,每個(gè)轉(zhuǎn)子兩側(cè)都有26個(gè)引腳和26個(gè)觸點(diǎn),上一個(gè)轉(zhuǎn)子的觸電與下一個(gè)轉(zhuǎn)子的引腳與下一個(gè)轉(zhuǎn)子的觸點(diǎn)連接,如下圖所示。

? ? ? ? ? ? ??
? ? ? ?如果輸入信號(hào)A,轉(zhuǎn)子內(nèi)部電流信號(hào)流轉(zhuǎn)如下圖所示。?

? ? ? ?再次輸入信號(hào)A時(shí),Right Rotor轉(zhuǎn)動(dòng)一格,剩下的兩個(gè)轉(zhuǎn)子不動(dòng),其內(nèi)部電流信號(hào)流轉(zhuǎn)如下圖所示。

? ? ? ?Enigma最左側(cè)的設(shè)備是一個(gè)“反射器”, 它將最后一個(gè)轉(zhuǎn)子的其中兩個(gè)觸點(diǎn)連接起來(lái),并將電流沿一個(gè)不同的路線導(dǎo)回。這就使加密過(guò)程與解密過(guò)程變得一致,因此,使用兩臺(tái)配置相同的機(jī)器,一臺(tái)可以用于加密信息,另一臺(tái)用于解密信息,而無(wú)需使用龐大的機(jī)制在加密和解密模式之間進(jìn)行切換。但是,反射器也使恩尼格瑪具有了如下性質(zhì):加密后得到的字母與輸入的字母永遠(yuǎn)不會(huì)相同。這在概念上和密碼學(xué)上都是一個(gè)嚴(yán)重的錯(cuò)誤,這個(gè)錯(cuò)誤最終被盟軍解碼人員利用。
? ? ? ?B站上有enigma密碼機(jī)演示視頻,感興趣的可以b站上搜索觀看,能夠更直觀的了解enigma密碼機(jī)的工作原理。
3 Enigma密碼機(jī)加解密過(guò)程
3.1?加密過(guò)程
? ? ? ?發(fā)信人首先按照約定好的規(guī)則插好接線板并設(shè)置好轉(zhuǎn)子初始位置,也就是設(shè)置好enigma密碼機(jī)密鑰。接著依次通過(guò)鍵盤(pán)鍵入明文,并把燈泡亮的字母記錄下來(lái)便得到了密文,最后將密文發(fā)通過(guò)電報(bào)方式送出去。
3.2?解密過(guò)程
? ? ? ?當(dāng)收信人接收到密文后,使用相同的enigma密碼機(jī)并設(shè)置好發(fā)信人相同密鑰。接著依次通過(guò)鍵盤(pán)鍵入密文,并把燈泡亮的字母記錄下來(lái)便得到了明文。
4 Enigma密碼機(jī)的安全性
? ? ? ?Enigma密碼機(jī)的本質(zhì)是一種多表替換,我們之前學(xué)習(xí)過(guò)的凱撒密碼和維吉尼亞密碼也是替換密碼,但后兩種密碼我們知道會(huì)有字母頻率的漏洞,主要因?yàn)樗麄兊募用芏际鞘褂玫耐粡埫艽a表,而Enigma密碼機(jī)每加密一個(gè)字母,就會(huì)轉(zhuǎn)動(dòng)一下,相當(dāng)于換了一張密碼表,基本可以做到加密一個(gè)字母就更換一次密碼表并且不重復(fù),所以無(wú)法通過(guò)高階字頻分析來(lái)破解Enigma密碼機(jī),只能通過(guò)枚舉來(lái)破解了。我們可以通過(guò)數(shù)學(xué)概率的計(jì)算方法來(lái)計(jì)算enigma具有的所有字母映射的可能性,從而評(píng)估其安全性。
? ? ? ?若密碼機(jī)由三個(gè)轉(zhuǎn)子組成,則三個(gè)轉(zhuǎn)子的初始位置,一共有 P1= 26*26*26=17576種組合;
三個(gè)轉(zhuǎn)子不同相對(duì)位置有P2=6種組合;
? ? ? ??插線板由26個(gè)孔位,最多可以插13根線,以插10根線來(lái)舉例計(jì)算,那么共有
? ? ? ?所以總的密鑰空間P=P1 *P2 *P3≈1.5*1019,密鑰一般每次或者每日根據(jù)密碼本來(lái)更新,信息發(fā)送方每使用Enigma密碼機(jī)加密一條信息時(shí),都要按照密鑰來(lái)初始化密碼機(jī),同理信息接收方每次也要使用相同的密鑰來(lái)解密信息。
5 Enigma密碼機(jī)破解
? ? ? ?Enigma加密機(jī)可以稱得上是古典密碼階段的巔峰,由于其巨大的密鑰空間,使用完全依靠人工枚舉破解幾乎不可能。雖然enigma加密算法非常強(qiáng)大,但是其本質(zhì)也是一種較為復(fù)雜的密碼替換,與凱撒密碼及維吉尼亞密碼本質(zhì)上沒(méi)有差異,其安全性是依賴于巨大的密鑰空間,與Enigma密碼機(jī)同時(shí)期的計(jì)算機(jī)械破解Enigma密碼的難度極高。
5.1?波蘭雷耶夫斯基破解
? ? ? ?Enigma密碼機(jī)早期被認(rèn)為是無(wú)法破解的存在,英法等國(guó)一開(kāi)始便放棄了enigma密碼機(jī)的破解,而波蘭由于地理位置處于德國(guó)和蘇聯(lián)之間,與兩國(guó)關(guān)系都不好,且德國(guó)與蘇聯(lián)也互相虎視眈眈,處于中間的波蘭具有非常嚴(yán)重的危機(jī)感,波蘭當(dāng)局表示enigma密碼機(jī)無(wú)論如何都得破解,在語(yǔ)言學(xué)家表示對(duì)enigma密碼機(jī)無(wú)從下手時(shí),波蘭當(dāng)局請(qǐng)到了數(shù)學(xué)家參與enigma密碼機(jī)的破解工作,數(shù)學(xué)家雷耶夫斯基、羅佐基和佐加爾斯基就承擔(dān)起早期enigma密碼機(jī)破譯工作。
? ? ? ?早期德國(guó)人為了增加密碼機(jī)的安全性,設(shè)置了雙重加密,即當(dāng)日密鑰+信息密鑰組合形成最終密鑰,如當(dāng)日密鑰為ABC,信息發(fā)送方先將轉(zhuǎn)子撥到ABC,然后隨機(jī)想三個(gè)字母(假設(shè)為DEF,DEF被稱為信息密鑰),加密DEF后得到密文(假設(shè)為MCL),接下來(lái)將轉(zhuǎn)子撥到DEF,開(kāi)始正式寫(xiě)信,具體過(guò)程如下圖所示。

? ? ? ?所以真正加密信件內(nèi)容的其實(shí)是信息密鑰(DEF),所以收件人需要知道信息密鑰(EDF)后才能解密。問(wèn)題是信息密鑰是發(fā)送者每天拍腦袋想出來(lái)的,接收者是如何知道信息密鑰的呢?這就需要雙方約定好將信息密鑰加密后的密文MCL寫(xiě)在每封信的開(kāi)頭。由于enigma是對(duì)稱加密的,所以接收者只需用每日密鑰(ABC)將信件開(kāi)頭的MCL解密便得到發(fā)送者拍腦袋想出來(lái)的信息密鑰(DEF),接下來(lái)用信息密鑰進(jìn)行解密即可,具體過(guò)程如下圖所示。

? ? ? ?如此一來(lái),每日密鑰雖然只有一個(gè),但是信息密鑰每次確是不一樣的,所以即使一天發(fā)送100封信,就對(duì)應(yīng)100個(gè)信息密鑰,這大大增加了人工破譯難度。
? ? ? ?但是德國(guó)人有個(gè)習(xí)慣,就是將重要的事情說(shuō)兩遍,所以每封密信的開(kāi)頭6個(gè)字母中,是由2個(gè)信息密鑰組成的,如下所示。
? ? ? ?明文的D被加密為M/H、E被加密為C/A、F被加密為L(zhǎng)/Q,也就是說(shuō)密文的第1個(gè)和第3個(gè)字母是由同一個(gè)明文字母加密得到的、第2個(gè)和第4個(gè)字母是由同一個(gè)明文字母加密得到的、第3個(gè)和第6個(gè)字母是由同一個(gè)明文字母加密得到的,雷耶夫斯基正是根據(jù)這一線索發(fā)現(xiàn)了Enigma置換群方程,設(shè)計(jì)出了用來(lái)收集數(shù)據(jù)的“炸彈機(jī)”(Bomba),這也是人類首次將嚴(yán)格的數(shù)學(xué)化方法應(yīng)用到密碼破譯領(lǐng)域,炸彈機(jī)可以在數(shù)個(gè)小時(shí)內(nèi)破解出密鑰,具體的分析步驟本文不再贅述,感興趣的可以關(guān)注b站UP主“Ele實(shí)驗(yàn)室”,講解和動(dòng)畫(huà)演示都非常深刻且易理解。
5.2?圖靈破解
? ? ? ?由于雷耶夫斯基利用社會(huì)工程學(xué)的方法,破解了enigma密碼機(jī),但是這種方法也十分脆弱,一旦德國(guó)人修補(bǔ)上這個(gè)漏洞或者升級(jí)密碼機(jī),雷耶夫斯基的破解方法就難以適用。在絕對(duì)的軍事實(shí)力面前,德國(guó)閃擊波蘭,一個(gè)月后波蘭淪陷,雷耶夫斯基等“波蘭密碼三杰”也被迫逃亡,戰(zhàn)后雷耶夫斯基幾經(jīng)流轉(zhuǎn)后回到波蘭一所中學(xué)任教,魯日茨基和佐加爾斯基則在逃亡途中不幸遇難,令人唏噓。1980年雷耶夫斯基在華沙去世,安葬在波蘭的Powazki公墓,2000年,波蘭政府向“波蘭密碼三杰” 追授波蘭最高勛章。
? ? ? ?波蘭淪陷后,破解enigma密碼機(jī)的任務(wù)交到了英國(guó)人手里,在德國(guó)人改掉重要事情說(shuō)兩遍并且使用多五轉(zhuǎn)子enigma加密機(jī)后,雷耶夫斯基的破解方法就變得極其被動(dòng),圖靈受雷耶夫斯基的啟發(fā),圖靈破解Enigma密碼破譯思想是利用Enigma密碼機(jī)自反特性,若某一位從來(lái)沒(méi)有該字母,那么明文該位困可能就是該字母,再結(jié)合德軍發(fā)送報(bào)文的特點(diǎn)猜測(cè)報(bào)文首句明文(如早上6.05分發(fā)送天氣預(yù)報(bào),猜測(cè)首句明文有wetter,也被稱為已知明文攻擊),由此構(gòu)造明文密文對(duì)應(yīng)關(guān)系和字母循環(huán)圈,圖靈團(tuán)隊(duì)甚至造出一臺(tái)bomb machine來(lái)專門(mén)破解恩尼格碼密碼,bomb machine如下圖所示。bomb machine從原理上不受限德國(guó)人重要事情說(shuō)兩遍的限制,且得到丘吉爾的大力支持,英國(guó)提供給圖靈的人力和物力資源都不是波蘭提供給雷耶夫斯基的資源能比的。圖靈設(shè)計(jì)制造的bomb machine原理這里也不再贅述,感興趣的可以看b站Ele實(shí)驗(yàn)室。

? ? ? ?Enigma曾被譽(yù)為不可破解的密碼,盡管現(xiàn)在看來(lái)Enigma密碼機(jī)的破譯方法很多,但其光輝不可磨滅,它所代表的著加密的理念對(duì)于加密算法有著深遠(yuǎn)的影響。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-456182.html
? ? ? ?從公元前404年到20世紀(jì)70年代,從滾筒密碼到enigma密碼機(jī),從單表替換到多表替換,從凱撒到維吉尼亞,再到雷耶夫斯基和圖靈。人類使用密碼的歷史幾乎與使用文字的時(shí)間一樣長(zhǎng),人類已在加密與解密之間相互糾纏了數(shù)千年,未來(lái)亦是如此,基于共鑰密碼學(xué)的現(xiàn)代加密技術(shù)正熠熠生輝,而以區(qū)塊鏈和量子加密等加密技術(shù)也悄然來(lái)臨。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-456182.html
到了這里,關(guān)于密碼學(xué)基本原理和發(fā)展——近代密碼學(xué)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!