<noscript id="lol87"></noscript>
  • <form id="lol87"><td id="lol87"></td></form>
    <optgroup id="lol87"><tt id="lol87"><pre id="lol87"></pre></tt></optgroup>
    <optgroup id="lol87"><th id="lol87"><span id="lol87"></span></th></optgroup>
    1. 
      
      • <rt id="lol87"></rt>
        <span id="lol87"><del id="lol87"></del></span>
        回復(fù)

        密碼往事

        樓主: 7 | 查看: 5612 | 回復(fù): 13

        查看: 5612|回復(fù): 13

        [密碼學(xué)習(xí)] 密碼往事

        簡潔模式
        7
        發(fā)表于 2011-9-16 10:23:48
        本文轉(zhuǎn)載自果殼網(wǎng),作者:吳師傅。個人覺得這篇文章寫得挺好,對于密碼不大了解的同學(xué)可以好好學(xué)習(xí)下。


        信息時代,密碼無處不在了,各種密碼術(shù)也隨處可見,為愛好者們津津樂道。而在此前很長一段時間,密碼學(xué)作為一門行走在暗處的黑色藝術(shù),一直不為大眾所知,只在少數(shù)精英間流傳。從凱撒的設(shè)計到二戰(zhàn)時期美日間的較量,這個關(guān)于秘密通信的歷史,精彩無比。有人設(shè)計密碼,就有人破譯密碼,在這場智與智的較量中,遺下無數(shù)經(jīng)典。讓我們來了解幾個最經(jīng)典的密碼,一起感受密碼學(xué)里的藝術(shù)。

        凱撒密碼
        引用
        作為一名杰出的軍事領(lǐng)袖,尤里烏斯•凱撒深知指揮官對前方將領(lǐng)的命令對于一場戰(zhàn)爭的重要性,這些信息絕對不能讓敵方知道,于是他設(shè)計了一種對重要的軍事信息進行加密的方法,即使這些信息被截獲,敵方也不一定能看懂——這就是著名的凱撒密碼,也算是最早的密碼實例。

        在這種密碼中,從A到W的每個字母在加密時用字母表中位于后三位的那個字母代替,字母XYZ分別被替換成ABC。凱撒在這里是將字母向右移動了三位(如下圖)。比如,在三個移位的情況下,信息DOG(這種需要加密的信息統(tǒng)稱“明文”)就變換成GRJ(這種經(jīng)加密后產(chǎn)生的的信息統(tǒng)稱“密文”);密文FDW對應(yīng)的明文則是CAT。可以看到,加密、解密過程都是以字母移位的位數(shù)為參照的。這種在加密和解密的算法中依賴的參數(shù)則被稱為——密鑰。




        引用
        當(dāng)然,移位的選擇并不僅僅限制在三位,從1到25任何數(shù)的移位都能產(chǎn)生類似效果。只要通信雙方事先約定好,這個選擇就很任意。很明顯的是,移位方法最多也只有25種,這成為凱撒密碼的致命弱點。一般情況下,窮舉25種移位方法,得到25組新編碼,必有一種編碼是真實的情報內(nèi)容,由于其它24組多是是毫無意義的字母組合,所以凱撒密碼很容易就能被破譯。

        但是凱撒在當(dāng)時很成功的使用了這種密碼,還在《高盧戰(zhàn)記》中頗為得意的記錄下了這個加密設(shè)計。究其原因,只能是他的敵人并沒有意識到他在使用密碼。


        改進后的加密法
        引用
        在凱撒密碼的缺點暴露后,有人便對它做出了改進:用一個按隨機順序排列的字母表來替代正常順序的字母表。這種簡單代換方法達(dá)26!種,這個看起來不大的數(shù)字,數(shù)量級達(dá)到了10 26 ,也就是說窮舉法破譯已經(jīng)失效了。但是,這種方法并非無懈可擊,當(dāng)它對一段比較長的英文信息加密時,依然容易被破譯。這是英語本身的統(tǒng)計特性決定的。

        眾所周知,英語具有統(tǒng)計特性。每個字母的使用頻率不同且差別很大。一篇文章中字母出現(xiàn)的相對預(yù)期頻率是可以通過統(tǒng)計大量英語文章確定出來的。比如,英語文章中 E 的出現(xiàn)頻率最高,大約是 12.7% 這樣子;而 J 的出現(xiàn)頻率最低,只有 0.1% 左右。當(dāng)使用上述的簡單代換密碼時,字母表中特定字母總是被同一個字母代替,導(dǎo)致密文中字母出現(xiàn)的頻率也會出現(xiàn)同樣的不平衡性,再加上破譯者對發(fā)密方背景的了解,要確定密文中包含的信息依然不是一件困難的事。

        一個好的解決辦法是用多個密文符號來表示同一個字母。每個字母有不同數(shù)量的的密文符號替代,替代者的數(shù)量與每個字母在英語統(tǒng)計中的頻率成正比。例如,字母 a 在書面英語大約占 8% 的比例,所以我們可以分配8個符號來表示它。明文中出現(xiàn)的字母 a 在密文中可以被這8個符號中任一個替換。這樣一來,每個符號在密文中的頻率都在 1% 左右。類似處理所有英文字母。這樣設(shè)計出的一套字母替換表,打亂了密文中的英語統(tǒng)計特性。但由于每個密文符號只代表唯一的明文符號,也會帶來風(fēng)險:對于一個給定的密鑰,破譯者能匯編出一部已知的明文與密文相對應(yīng)的詞典。

        好幾個世紀(jì)以來,上述的幾種加密法保證信息了的安全。不過自從頻度分析這種方法被引進到歐洲后,密碼破譯者終于占據(jù)了上風(fēng)。蘇格蘭瑪麗女王的悲劇充分詮釋了這種密碼的弱點。


        “不可破譯”的密碼
        引用
        1586年,英國政府破譯了蘇格蘭瑪麗女王和同黨謀反的密信,瑪麗女王慘遭吊死。而她使用的就是字母替換這種單碼加密法。這個事件也正式宣告上述密碼已經(jīng)全部失效。

        同年,一位名叫維熱納爾的法國外交家出版了一本《密碼理論》,介紹一種以他自己名字命名的新密碼,而這本書一直無人問津。直到兩百年后莫爾斯電碼流行開來,為了防止電報員泄露信息和間諜窺探秘密,維熱納爾密碼才被廣泛應(yīng)用。

        維熱納爾密碼一度被認(rèn)為是無法破譯的,以致讓一些掌握這種密碼的人洋洋自喜,不過很快,以建立了現(xiàn)代計算機的理論框架而聞名于世的怪才查爾斯•巴貝奇解決了這個難題。

        事情起源于一個布里斯托爾的一個牙醫(yī)賽瓦特。這個牙醫(yī)其實對密碼學(xué)知之甚少,1854年,他聲稱發(fā)明了一種新密碼,并寫信給《藝術(shù)協(xié)會雜志》企圖獲取專利。而他只不過是將維熱納爾密碼重新包裝了而已。巴貝奇寫信揭露這個事實,賽維特卻不愿承認(rèn),甚至為難巴貝奇讓他破解這個密碼。其實能否破解密碼和密碼是不是新創(chuàng)造的毫無關(guān)系,但這已足以激起巴貝奇的好奇心了。很快,他就成功破解了維熱納爾密碼。

        對于這樣重要的成果,巴貝奇卻沒有發(fā)表它。這也符合他的性格:他一直是這種懶洋洋的態(tài)度。而更重要的原因恐怕是英國政府要求巴貝奇保密,從而讓他們可以在這方面領(lǐng)先全世界9年——直到1863年卡西斯基也發(fā)現(xiàn)了破譯方法并將它發(fā)表。

        有趣的是,在美國的南北戰(zhàn)爭期間,南方聯(lián)軍仍然在使用黃銅密碼盤生成維熱納爾密碼,自始至終都只主要使用三個密鑰,而那個時候這密碼早就被破譯了,所以北方政府在情報戰(zhàn)上一直是笑而不語的。


        維熱納爾密碼的原理

        維熱納爾密碼又叫做維吉尼亞密碼。它的加密過程是這樣的:首先選擇一個無重復(fù)字母的密鑰詞(比如 MATH ),重復(fù)密鑰詞直至它成為一個和明文信息一樣長的字母序列,再利用下面這種方陣加密這條信息。為加密第一個字母 I,此時它下方對應(yīng)的密鑰詞是 M,于是,加密 I 時由 M 對應(yīng)的那行中讀出 i 列下的字母即 U,類似的,得出所有密文:
        信息 IL O V E Y O U
        密匙 MA T H M A T H
        密文 UL HC Q Y H B



        這無疑是一種高明的加密手段,維熱納爾密碼用嚴(yán)格的輪換方式重復(fù)使用一串簡單的代換密碼,很好的偽裝了基礎(chǔ)語言中的字母頻率。它還有很多變化,比如有一種可以允許密鑰詞中出現(xiàn)重復(fù)字母。每種變化都會產(chǎn)生一些新的特征,從而引發(fā)破譯方式的變化。

        查爾斯•巴貝奇是破譯維熱納爾密碼的第一人,他的思路是:在已知密碼周期(即所使用的密碼組件數(shù)目,顯然,上述版本的維熱納爾密碼周期就是密鑰詞長度)為 p 的情況下,將密文改寫成 p 行,使得每一列按原來的密文順序排列,例如,p=3,密文 c1c2c3c4c5c6c7c8c9… 就排列成:

        c1 c4 c7…

        c2 c5 c8…

        c3 c6 c9…

        這樣排列后,每行都是使用同一簡單代換密碼所得出的,如此就可以對每一行都使用上一節(jié)提到過的統(tǒng)計分析了。事實上,對每一行而言,這種簡單的代換密碼正是凱撒密碼。

        所以對于維熱納爾密碼的破譯者來說,關(guān)鍵就在于確定周期 p,巴貝奇則用了一種精巧的方法:在密文中搜索重復(fù)的字符串,它意味著兩個重復(fù)模式之間的距離可能等于周期的整數(shù)倍!

        難題又被破解!再一次,密碼編譯者開始尋找新的方法,繼續(xù)這場智的較量。
        本帖子中包含更多圖片或附件資源

        您需要 登錄 才可以下載或查看,沒有帳號?加入學(xué)院

        17

        49

        分享

        7
        1 | 樓主| 發(fā)表于 2011-9-16 10:28:47
        19世紀(jì)之前,維熱納爾密碼可以說是密碼學(xué)的巔峰之作。而自從巴貝奇和卡西斯基破壞了密碼學(xué)的安全性之后,密碼編碼學(xué)就處于一種混亂狀態(tài)。編碼師們一直在尋找新的密碼。而20世紀(jì)初意大利人馬可尼發(fā)明了無線電技術(shù),使得安全加密的需要更為緊迫。

        在無線電開始普及之后,各國政府先后投入精力開始研究加密和破譯技術(shù)。加上隨之而來的第一次世界大戰(zhàn),密碼學(xué)在影響了戰(zhàn)爭結(jié)果的同時,也在這段時間飛速發(fā)展。讓我們一起看看這段時間的一些經(jīng)典成果。

        普萊費爾(Playfair)密碼

        在維熱納爾密碼被破解之后,英國人查爾斯•惠斯通爵士開發(fā)了這種加密法。經(jīng)他的朋友普萊費爾的大力提倡后,被英國政府部門和軍隊采用。它在1854到1855年的克里米亞戰(zhàn)爭和1899年的布爾戰(zhàn)爭中被廣泛應(yīng)用,直到1915年的一戰(zhàn)時期才被破譯。

        普萊費爾加密法也是一種替換密碼,不同的是它不僅比先前提到的維熱納爾加密法更加先進,同時它使用方便而且可以讓英語字母的頻率統(tǒng)計分析法再無用武之地。

        在這種方法中,字母是成對而不是單個加密的。而密鑰是一個5×5方陣(除J以外的25個字母隨機排列)。加密之前,對明文信息要稍作如下處理:
        引用
        用I代替J;
        將要加密的信息所有字母排列成字母對形式:XX XX XX XX……
        遇到同樣字母組成的字母對,在中間插入Z
        如果明文中字母個數(shù)是奇數(shù),在最后補Z

        實際操作時,密鑰是依賴一個關(guān)鍵詞確定產(chǎn)生的。比如選取關(guān)鍵詞“rainbow”,把這個詞的所含字母按序?qū)懙骄仃囍兄螅?5個字母中余下未出現(xiàn)的字母按字母表順序補全矩陣的剩余位置,如下圖(當(dāng)然也可以將25個字母隨機排列到矩陣中,但是這樣并不利于記憶與操作)。

        當(dāng)需要加密的信息用上述規(guī)則處理后,就可以按照一套既定的規(guī)則加密:

        將密鑰擴充成6行6列,第六行與第一行相同,第六列與第一列相同。

        若兩個字母在密鑰中位于一行(列),每個字母替換為擴充后的密鑰中位于它右側(cè)(下方)的字母。

        兩個字母不同行不同列,則第一個字母替換成與它同行,列數(shù)與第二個字母相同的字母,第二個字母替換成與這三個字母形成矩形的字母。



        破譯Playfair
        引用
        與先前所述的密碼術(shù)相比,普萊費爾密碼功能強大。但它并不是無懈可擊,至少可以通過關(guān)鍵詞發(fā)現(xiàn)法破譯這種密碼。

        這種方法是由美國軍方的大弗蘭克•穆爾曼在一戰(zhàn)時期開發(fā)的。他利用關(guān)鍵詞的一些特征猜測關(guān)鍵詞字母完成破譯。穆爾曼知道關(guān)鍵詞中每三個輔音字母很可能有兩個元音字母,而關(guān)鍵詞往往包含一些更為普通的字母。他還發(fā)現(xiàn),如果密文中的某個字母大量和其他字母組合,那該字母很可能就是關(guān)鍵詞的字母(因為關(guān)鍵詞字母在明文中使用更頻繁)。

        穆爾曼通過分析密文,找出這些字母,它們很可能包含了大部分關(guān)鍵詞字母,順著這些字母繼續(xù)下去,將密鑰補充完整,反復(fù)嘗試,就可能找出關(guān)鍵詞了(除非運氣很好,一般情況下工作量還是很大的)。

        在電影《國家寶藏2》中,英國女王曾向美國內(nèi)戰(zhàn)中的南方同盟寫過兩封關(guān)于黃金城的密信,以期南方同盟獲得巨額財富戰(zhàn)勝北方政府。其中第二封信就是用普萊費爾密碼加密的。主人公尼古拉斯凱奇的曾曾祖父為了保護了這個秘密,拒絕為南方同盟破譯了這個密碼被殺。兩百年后凱奇依靠曾曾祖父留下的關(guān)鍵詞(death)破解了這個普萊費爾密碼,找到了黃金城的重要線索,最終解開了這個謎團。


        希爾密碼

        普萊費爾密碼特別之處在于一次加密多個字母。當(dāng)密碼學(xué)家了解這種加密法后,他們進一步開始嘗試以三連字甚至更多字為單位的加密法。但是他們失敗了,其中一個重要原因是維護三維(或以上)表是十分困難的。要成功設(shè)計這種加密法,需要引進專業(yè)的數(shù)學(xué)方法。

        希爾密碼誕生在1929年,是以其發(fā)明人Lester S. Hill來命名的。他是紐約亨特學(xué)院的數(shù)學(xué)教授,在1929年發(fā)表一篇論文提出了這種基于聯(lián)立方程的加密算法。

        希爾密碼以每次加密m個明文字母塊完成加密過程。首先需要對26個字母賦值,通常是a=0,b=1,…,z=25(希爾本人采取的是隨機賦值)。塊中的每個字母的數(shù)值一起用于生成一組新的數(shù)值。例如,m=3,需要加密的明文塊的三個字母的數(shù)值(設(shè)為p1、p2和p3)通過下面的方程組轉(zhuǎn)換成密文數(shù)值C1、C2和 C3。

        該加密法的密鑰就是矩陣

        舉個例子,現(xiàn)在對矩陣賦值如下:

        利用這個密鑰和上面的方程,明文“now”首先轉(zhuǎn)換成數(shù)字:13 14 22。將這些數(shù)值代入方程解得密文數(shù)值:23 20 4。再將這些數(shù)字轉(zhuǎn)換成字母后,就得到密文“xue”了。

        加密密鑰是矩陣M,那么解密密鑰就是 M -1 。這意味著要使解密可行,矩陣M必須是可逆的,因此密鑰值并不能隨意選取。從m=3的例子中歸納出用數(shù)學(xué)方法表達(dá)希爾密碼的一般形式如下:

        密鑰為可逆矩陣

        將明文分塊使得每塊含有n個字母(最后不足位以z不足),用n×1的向量表示。例如第 i 塊含有字符p1,p2,p3,…,pn:

        那么密文就由如下方程確定:


        希爾密碼很好的防止了密文被攻擊。而當(dāng)密鑰矩陣越大時,該加密法抗攻擊能力就越強。但是用已知明文攻擊法可以很容易地破譯該密碼。其攻擊過程類似先前提到的匯編一部明文與密文的對應(yīng)詞典。即用已知明文和密文建立方程組,求解后尋找出密鑰。

        其他的加密技術(shù)

        到這里我們完成了對歷史上幾種最具代表性的加密系統(tǒng)的介紹,然而這也并非密碼史的全部經(jīng)典。還有不少精妙的加密法就不在此一一詳述了。比如二戰(zhàn)時期德軍使用的Enigma加密法。它屬于機械化的加密方法。Enigma加密法利用電機系統(tǒng)實現(xiàn)多碼變換,這種系統(tǒng)叫做回轉(zhuǎn)輪系統(tǒng)?;剞D(zhuǎn)輪是一個圓盤,它的兩面都有電子接點,每個接點代表字母表中的一個字母。回轉(zhuǎn)輪內(nèi)部有連接各接點的電線,這種連接方式定義了簡單單碼替換方式。數(shù)個這樣的回轉(zhuǎn)輪和一個反射器組合起來就構(gòu)成了強大的Enigma加密機。然而,這個加密法最終還是被英國政府聯(lián)合波蘭破解了。

        結(jié)語

        密碼學(xué)從最初的凱撒密碼至今,走過了一個漫長的道路。計算機的超強計算能力,讓上述經(jīng)典的加密方法都已失效。但是先哲的思想并未失效,密碼學(xué)也仍然在飛速發(fā)展,眼下它正朝著量子系統(tǒng)前進。一旦進入這種新的世界,密碼學(xué)會發(fā)生什么變化,我們只能靠猜測了。但可以預(yù)見的是,這一定不是密碼學(xué)故事的結(jié)束,而只是剛剛開始。
        本帖子中包含更多圖片或附件資源

        您需要 登錄 才可以下載或查看,沒有帳號?加入學(xué)院

        178
        | 發(fā)表于 2011-9-16 13:50:45
        贊圖片格式的希爾矩陣..排版混亂的矩陣是初學(xué)者理解希爾密碼的最大障礙之一 - -
        | 發(fā)表于 2011-9-16 17:32:03
        厲害,我完全看不懂,除了最后一個。。。
        | 發(fā)表于 2018-10-30 12:05:21 | 發(fā)自安卓客戶端
        他已經(jīng)成功的激起了我學(xué)習(xí)的欲望。
        | 發(fā)表于 2022-1-23 21:19:14 | 發(fā)自安卓客戶端
        普萊費爾密碼  如果是同列(行)的字母組是將兩個字母替換成同一字母嗎
        (萌新發(fā)問  不要砍我
        | 發(fā)表于 2022-1-25 06:58:36 | 發(fā)自安卓客戶端
        感謝分享
        | 發(fā)表于 2022-1-25 07:05:27 | 發(fā)自安卓客戶端 發(fā)帖際遇
        | 發(fā)表于 2022-7-3 00:52:37 | 發(fā)自安卓客戶端 發(fā)帖際遇
        感謝分享
        尚未登錄
        您需要登錄后才可以回帖 登錄 | 加入學(xué)院

        <noscript id="lol87"></noscript>
      • <form id="lol87"><td id="lol87"></td></form>
        <optgroup id="lol87"><tt id="lol87"><pre id="lol87"></pre></tt></optgroup>
        <optgroup id="lol87"><th id="lol87"><span id="lol87"></span></th></optgroup>
        1. 
          
          • <rt id="lol87"></rt>
            <span id="lol87"><del id="lol87"></del></span>
            撩起老师旗袍挺进去玉足视频 | 色视频www在线播放国产人成 | 亚洲综合中文字幕在线播放 | 青青草国产亚洲精品久久 | 丁香婷婷五月激情综合深爱 | rihanhuangpian | 色哟哟――国产精品 | chaopeng97 | 国产一级A片久久久免费看快餐 | 婷婷五月天欧美激情 |