<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ù)

        維吉尼亞密碼,轉(zhuǎn)載

        樓主: 匿名 | 查看: 1萬(wàn) | 回復(fù): 47

        匿名
        發(fā)表于 2022-5-21 18:15:48 | 2022-9-17 12:39編輯 發(fā)帖際遇
        四樓有新內(nèi)容。。。。。

        維吉尼亞密碼(Vige nere Cipher)簡(jiǎn)介:
          大家熟知, 早前的單一的凱撒密碼保密性能是十分的差的, 因此人們?cè)趩我坏膭P撒密碼的基礎(chǔ)上擴(kuò)展出了多表密碼, 稱(chēng)之為維吉尼亞密碼. 它是由16世紀(jì)法國(guó)亨利三世王朝的不萊塞-維吉尼亞發(fā)明的. 關(guān)于維吉尼亞的密碼的歷史我這里就不做多的介紹了, 有興趣的朋友可以在互聯(lián)網(wǎng)上搜索相關(guān)文獻(xiàn)查看.
          維吉尼亞密碼的特點(diǎn)是將26個(gè)凱撒密碼表(也即我們常用的Z26)合成一個(gè)表.
          
          如下:
          
          A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
          B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
          C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
          D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
          E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
          F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
          G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
          H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
          I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
          J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
          K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
          L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
          M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
          N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
          O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
          P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
          Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
          R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
          S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
          T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
          U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
          V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
          W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
          X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
          Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
          Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
          
          
          這樣我們就從傳統(tǒng)的單表替換擴(kuò)展到了多表替換了.  
          
          引入一個(gè)概念:秘匙
          
          在前面的凱撒移位密碼和仿射密碼中, 我們同樣引入了秘匙的概念, 不過(guò)那里的秘匙只是一個(gè)或兩個(gè)數(shù)字. 而在這里的秘匙是一個(gè)更為廣義上的秘匙.
          它是一個(gè)串. 不在局限于一個(gè)或兩個(gè)整數(shù).
          
        維吉尼亞密碼的原理:
          
          比如明文為JACKOZOO, 秘匙為L(zhǎng)OVE, 則我們的密文是這樣得到的:
          
          
          J對(duì)應(yīng)的密文我們查秘匙為L(zhǎng), 則在第L行中, 找到與第一行中的J對(duì)應(yīng)的字母為 U.
          A對(duì)應(yīng)的密文我們查秘匙為O, 則在第O行中, 找到與第一行中的A對(duì)應(yīng)的字母為 O.
          C對(duì)應(yīng)的密文我們查秘匙為V, 則在第V行中, 找到與第一行中的C對(duì)應(yīng)的字母為 X.
          K對(duì)應(yīng)的密文我們查秘匙為E, 則在第E行中, 找到與第一行中的K對(duì)應(yīng)的字母為 O.
          O對(duì)應(yīng)的密文我們查秘匙為L(zhǎng), 則在第L行中, 找到與第一行中的O對(duì)應(yīng)的字母為 Z. (如果秘匙不夠了,我們就循環(huán)使用秘匙, LOVELOVELO ... )
          Z對(duì)應(yīng)的密文我們查秘匙為O, 則在第O行中, 找到與第一行中的Z對(duì)應(yīng)的字母為 N.
          O對(duì)應(yīng)的密文我們查秘匙為V, 則在第V行中, 找到與第一行中的O對(duì)應(yīng)的字母為 J.
          O對(duì)應(yīng)的密文我們查秘匙為E, 則在第E行中, 找到與第一行中的O對(duì)應(yīng)的字母為 S.
          
          由此得到JACKOZOO在以LOVE作為秘匙的情況下, 其密文為: UOXOZNJS.
          
          
          我們看到維吉尼亞密碼也很好地隱藏了字頻信息.
          但是這里不得不提的是, 維吉尼亞密碼(Vigenere Cipher)相對(duì)于希爾密碼(Hill Cipher)來(lái)說(shuō), 其對(duì)字頻信息的隱藏還不夠徹底.
          這也導(dǎo)致了在19世紀(jì)50年代, 英國(guó)人查爾斯-巴貝奇對(duì)其的破解. 其實(shí)其破解的基本思想如下:
          比如在密文中, 經(jīng)常出現(xiàn)了同一個(gè)子串(比如UPK), 而且每個(gè)字串之間的距離都是3的整數(shù)倍. 那么解密者就很容易推測(cè)出秘匙的長(zhǎng)度為3. 其原因也是十分簡(jiǎn)單的:
          當(dāng)秘匙在重復(fù)了N次之后, 其還是用第一個(gè)字母去加密UPK相應(yīng)的明文. 尤其是對(duì)THE, YOU, WHAT 這類(lèi)高頻詞匯當(dāng)使用了弱秘匙的話,更容易遭受破解. 關(guān)于維吉
          尼亞密碼的具體破解工作, 不在本文范圍之內(nèi), 有興趣的朋友可以自行研究.
          
          
          以上介紹的是維吉尼亞密碼的加密, 解密的話, 直接找出相應(yīng)行在第一行中對(duì)應(yīng)的字母即可.
          
          
          通過(guò)對(duì)維吉尼亞密碼原理的學(xué)習(xí), 我們不難發(fā)現(xiàn)用計(jì)算機(jī)語(yǔ)言寫(xiě)出維吉尼亞的算法也是很簡(jiǎn)單的一件事情.
          
          加密:
          
          


        代碼:
                nMLen = strlen(szM);
                nKLen = strlen(szK);
          
          
          解密:
          
        代碼:
                nLLen = strlen(szL)
                nKLen = strlen(szK)

        25

        51

        分享

        | 發(fā)表于 2022-5-21 18:16:42 發(fā)帖際遇
        很多人講過(guò)了,感謝分享
        1 | 發(fā)表于 2022-5-21 18:19:28
        好長(zhǎng),先收藏了在慢慢看
        1 | 發(fā)表于 2022-5-21 18:22:43 | 來(lái)自小霸王手機(jī) 發(fā)帖際遇
        仿射密碼破解方法


        仿射密碼簡(jiǎn)介:
        仿射密碼和移位密碼一樣, 也是一種替換密碼. 不同的是, 移位密碼中, 我們使用的是模n加; 而在下面的仿射密碼中, 我們使用的上一節(jié)中介紹的模n乘. 在安全性方面, 仿射密碼同移位密碼一樣, 都是極其差的, 不僅因?yàn)樗麄兊脑砗?jiǎn)單, 更要命的是這兩種替換密碼沒(méi)有隱藏明文的字頻信息, 這很容易導(dǎo)致破解者輕易的攻破.


        放射密碼中的一些概念:

        1) 明密文字母表為Z26
        2) 秘匙 K = (a,b) ∈ Z26_ × Z26 . 其中Z26_ 表示小于26且與26互素(或叫互質(zhì))的正整數(shù)的集合,這點(diǎn)非常重要的.
        3) 加密變換為 y = (ax + b) mod 26 ;

        很簡(jiǎn)單?(呵呵, 先別急.) 我們先來(lái)引入一個(gè)定義.

        大家知道, 好多東西都有逆, 大家讀小學(xué)時(shí)都知道,兩個(gè)數(shù)相乘乘機(jī)為1,則互為倒數(shù), 其實(shí)是最簡(jiǎn)單的逆. 后來(lái), 我們到了高中, 我們學(xué)習(xí)了逆函數(shù); 到了大學(xué), 我們學(xué)習(xí)線性代數(shù), 知道兩個(gè)矩陣的乘積為單位矩陣的話, 則這兩個(gè)矩陣互為逆矩陣.
        現(xiàn)在我跟大家介紹另一種逆. 叫模逆. 其實(shí)很好理解的, 如下:
        若a,b兩數(shù)的乘積對(duì)正整數(shù)n取模的結(jié)果為1. 則稱(chēng)a,b 互為另外一個(gè)的模逆.
        比如:
        3*7 = 21; 21 % 20 = 1 ; 所以3,7 互為 20 的 模逆.
        9*3 = 27; 27 % 26 = 1 ; 所以9,3 互為 26 的 模逆.

        如何標(biāo)記?

        若a,b互為n的模逆 , 即b 為a 的模n的逆元 , 則記 b 為 a-1mod n (這里沒(méi)公式編輯器, a-1中的-1在右上角, 見(jiàn)諒了呵呵).

        看了上面的定義, 我們知道:
        只有當(dāng) a 與 n 互素的時(shí)候, a 才是有模逆的. 其他情況下是不存在模逆的, 比如 2 對(duì)26 就沒(méi)有模逆. 這是個(gè)很簡(jiǎn)單的數(shù)學(xué)問(wèn)題, 大家動(dòng)下手, 畫(huà)幾筆就清楚了.我就不多羅嗦了.

        [思考] 大家能快速的求出11對(duì)123的模逆嗎? (放心,11和123是互素的.)

        可能大家會(huì)這樣想:

        設(shè)其模逆為 b , 則 必定存在一個(gè)整數(shù) t , 使得等式 11b = 123t + 1 成立.

        我們?cè)僮兓幌? 也即所求為 必須使得 (11b - 1) % 123 = 0 恒成立.

        到了這里, 如果使用筆算對(duì)b從2開(kāi)始依次遞加窮舉的話,將會(huì)非常辛苦, 若將123換成一個(gè)更大一點(diǎn)的數(shù), 用筆算窮舉更是不可能的.

        聰明你的肯定想說(shuō), 寫(xiě)個(gè)程序算就行了啊. 不錯(cuò), 寫(xiě)個(gè)程序幫我們窮舉的確很棒, 充分發(fā)揮了計(jì)算機(jī)的作用.

        但這里, 我介紹給大家另外一種巧妙的方法 ---- 擴(kuò)展歐幾里德變換:

        123 = 1*123+ 0*11
        11 = 0*123+ 1*11 |11
        2 = 1*123+ (-11)*11 |5
        1 = (-5)*123+ 56*11


        聰明的你, 一定看出來(lái)了吧. 對(duì)! 我們將123和11都表示成 x * 123 + y * 11 的 格式, 然后相減, 在最右側(cè)一欄寫(xiě)上每次減去的被減數(shù)的倍數(shù). 依次進(jìn)行, 知道減數(shù)變?yōu)?為止. 然后我們?nèi)〉谌械淖钕旅娴囊粋€(gè)數(shù), 再對(duì)123 取模 即得11 對(duì)123的模逆.
        對(duì)于這個(gè)變換, 不清楚的朋友,我勸你們最好動(dòng)筆畫(huà)幾下. 那樣比我在這里說(shuō)的起作用的多.嘿嘿~~


        這個(gè)算法的好處:
        我們編寫(xiě)這個(gè)算法的程序去求任何模逆都是非常高效的, 它幫我們以及CPU都節(jié)省了不少時(shí)間.

        為了加深理解, 來(lái)看一個(gè)例子:

        [例子] :求 1211對(duì)13211的模逆 .

        13211 1 0 //這一行的1和0是固定的.
        1211 0 1 |10 //這一行0和1也是固定的, 后面的10是13211減掉的1211的倍數(shù).意思為減掉10個(gè)1211.
        1101 1 -10 |1 //第一個(gè)1為上一行的第二個(gè)1抄下來(lái);-10 = 0 - 1*10 (上一行的算這一行的);后面的1依然為減掉的倍數(shù).
        110 -10 11 |10 //-10 為帶抄下來(lái), 11 = 1 - (-10) *1 , 10 為倍數(shù).
        1 -120 //很快就到1了, 這時(shí)的 -120 就是我們要的.

        -120 % 13211= 13091 即為 1211 對(duì)13211 的模逆. 怎么樣? 不錯(cuò)吧. 呵呵.

        我們可以用如下一段小程序來(lái)完成模逆的計(jì)算:
        int Moni(int a,int n)
        {
        int p=a,q=n, t;
        int x = 0, y = 1, z = (int)q/p;
        while(1 != p && 1 != q)
        {
        t = p;
        p = q % p;
        q = t;
        t = y;
        y = x - y*z;
        x = t;
        z = (int) q/p;
        }
        y = y%n;
        if (y<0)
        {
        y += n;
        }
        return y;
        }


        [再來(lái)看仿射]

        剛才費(fèi)了這么大的勁, 介紹了模逆, 還是為了在給仿射密碼的解密打地基.
        我們看上面的放射密碼的加密公式 : y = (ax + b) mod 26 .
        根據(jù)簡(jiǎn)單的數(shù)論知識(shí), 我們知道其解密變換為: x = a-1(y-b) mod 26 .(其中a-1中-1在右上角, 為a對(duì)26的模逆).
        也即 x = a對(duì)26的模逆與(y-b)相乘后的積再對(duì)26取模, 最終結(jié)果即為解密后的內(nèi)容.

        下面我們來(lái)看一個(gè)實(shí)例:

        [例子] 已知仿射密碼中密文為JACKOZOO ,字母表為Z26, 秘匙 K = (11,7) , 試解密.

        解: 先求11對(duì)26的模逆: 11-1mod26 = 19 .
        故解密變換為: x = 19(y-7) mod 26 ;
        由 JACKOZOO
        ---> 9 0 2 10 14 25 14 14
        ---> 12 23 9 5 3 4 3 3
        ---> M X J F D E D D

        所以明文為: MXJFDEDD.


        好了, 仿射密碼的理論介紹就到這里.
        評(píng)論列表倒序?yàn)g覽



        由維吉尼亞密碼說(shuō)起
        人們?cè)趩我粣鹑雒艽a的基礎(chǔ)上擴(kuò)展出多表密碼,稱(chēng)為“維吉尼亞”密碼。它是由16世紀(jì)法國(guó)亨利三世王朝的布萊瑟·維吉尼亞發(fā)明的,其特點(diǎn)是將26個(gè)愷撒密表合成一個(gè),見(jiàn)下表:

          A B C D E F G H I J K LM N O P Q R S T U V W X Y Z

          A -A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

          B -B C D E F G H I J K L M N O P Q R S T U V W X Y Z A

          C-C D E F G H I J K L M N O P Q R S T U V W X Y Z A B

          D- D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

          E -E F G H I J K L M N O P Q R S T U V W X Y Z A B C D

          F -F G H I J K L M N O P Q R S T U V W X Y Z A B C D E

          G- G H I J K L M N O P Q R S T U V W X Y Z A B C D E F

          H -H I J K L M N O P Q R S T U V W X Y Z A B C D E F G

          I- I J K L M N O P Q R S T U V W X Y Z A B C D E F G H

          J -J K L M N O P Q R S T U V W X Y Z A B C D E F G H I

          K -K L M N O P Q R S T U V W X Y Z A B C D E F G H I J

          L -L M N O P Q R S T U V W X Y Z A B C D E F G H I J K

          M -M N O P Q R S T U V W X Y Z A B C D E F G H I J K L

          N -N O P Q R S T U V W X Y Z A B C D E F G H I J K L M

          O -O P Q R S T U V W X Y Z A B C D E F G H I J K L M N

          P -P Q R S T U V W X Y Z A B C D E F G H I J K L M N O

          Q -Q R S T U V W X Y Z A B C D E F G H I J K L M N O P

          R -R S T U V W X Y Z A B C D E F G H I J K L M N O P Q

          S -S T U V W X Y Z A B C D E F G H I J K L M N O P Q R

          T -T U V W X Y Z A B C D E F G H I J K L M N O P Q R S

          U -U V W X Y Z A B C D E F G H I J K L M N O P Q R S T

          V -V W X Y Z A B C D E F G H I J K L M N O P Q R S T U

          W -W X Y Z A B C D E F G H I J K L M N O P Q R S T U V

          X -X Y Z A B C D E F G H I J K L M N O P Q R S T U V W

          Y -Y Z A B C D E F G H I J K L M N O P Q R S T U V W X

          Z -Z A B C D E F G H I J K L M N O P Q R S T U V W X Y

          維吉尼亞密碼引入了“密鑰”的概念,即根據(jù)密鑰來(lái)決定用哪一行的密表來(lái)進(jìn)行替換,以此來(lái)對(duì)抗字頻統(tǒng)計(jì)。假如以上面第一行代表明文字母,左面第一列代表密鑰字母,對(duì)如下明文加密:

          TO BE OR NOT TO BE THAT IS THE QUESTION

          當(dāng)選定RELATIONS作為密鑰時(shí),加密過(guò)程是:明文一個(gè)字母為T(mén),第一個(gè)密鑰字母為R,因此可以找到在R行中代替T的為K,依此類(lèi)推,得出對(duì)應(yīng)關(guān)系如下:

          密鑰:RELAT IONSR ELATI ONSRE LATIO NSREL

          明文:TOBEO RNOTT OBETH ATIST HEQUE STION

          密文:KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY

          歷史上以維吉尼亞密表為基礎(chǔ)又演變出很多種加密方法,其基本元素?zé)o非是密表與密鑰,并一直沿用到二戰(zhàn)以后的初級(jí)電子密碼機(jī)上。

          公元16世紀(jì)晚期,想要獲得更高的保密度的人獲得了一種設(shè)計(jì)更加精細(xì)的密碼表。

          法國(guó)外交家Blaise de Vigenère發(fā)明了一種方法來(lái)對(duì)同一條信息中的不同字母用不同的密碼進(jìn)行加密。這樣,同樣的E在一個(gè)位置可能被M所取代,而在另一個(gè)位置的E則有可能以K的面目出現(xiàn)。這樣,就可以防止任何人利用頻率分析法解密該條信息。

          維熱納爾密碼表

          A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

          A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

          B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A

          C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B

          D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

          E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D

          F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E

          G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F

          H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G

          I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H

          J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I

          K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J

          L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K

          M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L

          N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M

          O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N

          P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O

          Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P

          R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q

          S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R

          T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S

          U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T

          V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U

          W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V

          X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W

          Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X

          Z Z A B C D E F G H I J K L M N O P Q R S T U V W X Y

          在維熱納爾(Vigenère)的密碼中,發(fā)件人和收件人必須使用同一個(gè)關(guān)鍵詞(或者同一文字章節(jié)),這個(gè)關(guān)鍵詞或文字章節(jié)中的字母告訴他們?cè)趺礃硬拍芮昂蟾淖冏帜傅奈恢脕?lái)獲得該段信息中的每個(gè)字母的正確對(duì)應(yīng)位置。比如如果關(guān)鍵字“BIG”被使用了,發(fā)件人將把信息按三個(gè)字母的順序排列。第一個(gè)三字母單詞的第一個(gè)字母將應(yīng)當(dāng)向前移動(dòng)一個(gè)位置(因?yàn)锽是排在A后面的字母),第二個(gè)字母需要向后移動(dòng)8位(I是A后面第8個(gè)字母),而第三個(gè)字母需要向前移動(dòng)6位(G是A后面第6個(gè)字母)。然后,文字就可以按下面的順序來(lái)進(jìn)行加密了:

          未加密文字:THE BUTCHER THE BAKER AND THE CANDLESTICK MAKER。(屠夫、面包師和蠟燭匠)。

          關(guān)鍵密鑰:BIG BIGBIGB IGB IGBIG BIG BIG BIGBIGBIGBI GBIGB

          加密文字:UPK CCZDPKS BNF JGLMX BVJ UPK DITETKTBODS SBSKS

          如果知道“BIG”就是密鑰,收件人就可以很容易地通過(guò)相應(yīng)的位置改變字母位置,從而譯出經(jīng)過(guò)加密的文字。

          很多年以來(lái),維熱納爾(Vigenère)密碼都被認(rèn)為是不可破解的,但查爾斯·巴貝奇(Charles Babbage),一個(gè)獨(dú)立的英國(guó)富人在19世紀(jì)50年代向人們展示了事實(shí)并非如此。順便提一句,這個(gè)人也因?yàn)槠湓谟?jì)算機(jī)科學(xué)領(lǐng)域方面所進(jìn)行的先鋒性工作而被世人所熟悉。巴貝奇(Babbage)通過(guò)尋找重復(fù)的字母段破解了這個(gè)密碼系統(tǒng)。當(dāng)然,維熱納爾密碼的優(yōu)勢(shì)在于這種密碼被假定為它將不同位置的字母進(jìn)行不同的加密。比如同一段文字中的“THE” 可能在前面表現(xiàn)為“UPK”,但在后面則被表現(xiàn)為“BNF”。同樣,象“AKER”這樣的字母也會(huì)被進(jìn)行不同的加密。但是,第一個(gè)和第三個(gè)“THE”都會(huì)被編碼為“UPK”。第一個(gè)“THE”中的“T”會(huì)用“B”來(lái)進(jìn)行編碼,而第三個(gè)“THE”中的“T”也同樣是用“B”來(lái)編碼。發(fā)生這種情況是因?yàn)榈谌齻€(gè) “THE”是排在第一個(gè)“THE”后面第21個(gè)字母,而3字密鑰BIG會(huì)在重復(fù)7次之后又回到了最開(kāi)始。 在任何比密鑰要長(zhǎng)得多的加密信息中,都會(huì)不可避免地出現(xiàn)類(lèi)似這樣的重復(fù)。而一個(gè)解密者應(yīng)該如何才能揭示加密文件的真正面目呢?比如,如果加密文字“UPK”出現(xiàn)了兩次,中間隔著21個(gè)字母,那么他就可以推斷出密鑰的長(zhǎng)度是21的整除數(shù)?;蛘邠Q種說(shuō)法,他可以推斷出21是密鑰的倍數(shù)。(約數(shù)或稱(chēng)除數(shù)是一個(gè)數(shù)字被除之后不會(huì)有余數(shù)。比如21的除數(shù)就是1、3、7和21。) 如果獲得了足夠多類(lèi)似的線索,解密者就可以知道密鑰的確切長(zhǎng)度。一旦他知道了密鑰長(zhǎng)度,他就可以對(duì)加密信息進(jìn)行日常頻率分析。注意,數(shù)學(xué)在解密工作中總是放在首位的:解密者首先會(huì)計(jì)算出密鑰的長(zhǎng)度,這步工作甚至是在他要考慮密鑰的具體內(nèi)容是什么之前所要做的。

          巴貝奇的獨(dú)具創(chuàng)意的技巧開(kāi)創(chuàng)了一片密碼術(shù)的新田地,并且將數(shù)學(xué)工具引入到了以前被認(rèn)為專(zhuān)屬于文字學(xué)的領(lǐng)域之中。即使一種編密碼系統(tǒng)沒(méi)有明確地使用數(shù)學(xué),但其中隱藏的格式卻通常需要以數(shù)學(xué)的方式進(jìn)行整理。

          自從頻率分析法出現(xiàn)后,單字母替換密碼完全失去了效用。因此,密碼編碼者想方設(shè)法去編一種更強(qiáng)大的密碼。一些編碼者對(duì)單字母替換密碼做了一些改動(dòng),如在編碼過(guò)程中,加入一些特殊的字符,或者令一些字母不代表另一個(gè)字母,而是代表一種程式,譬如是代表空格,代表刪去前一個(gè)字母,代表?yè)Q行等。但這一切起的作用并不大,聰明的破譯師仍然能在里面找到許許多多破譯密碼的線索。直到有一天,佛羅倫薩的里昂巴蒂斯特·阿爾伯提提出了一種多字母替換密碼,即是用兩個(gè)或兩個(gè)以上的密碼表交替使用來(lái)進(jìn)行加密,如:

          明碼表 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

          密碼表1 Q W E R T Y U I O P A S D F G H K J L Z X C V B N M

          密碼表2 E K P R J B D N C V O U H T Y W Z X M L A S F I G Q

          第一個(gè)密碼表加密第一個(gè)字母,第二個(gè)密碼表加密第二個(gè)字母,第一個(gè)密碼表又加密第三個(gè)字母,不斷地重復(fù)......那么:

          明文 F O R E S T

          密文 Y Y J J L L

          這樣,按原來(lái)的方法進(jìn)行頻率分析就沒(méi)有什么作用了。這只是兩個(gè)密碼表時(shí)的情況,如果用三個(gè),四個(gè)或以上的密碼表后,破譯就顯得非常非常困難。即使是這樣,阿爾伯提未能把他的理念發(fā)展成一個(gè)完整的系統(tǒng)。這個(gè)任務(wù)當(dāng)然由后人完成了。經(jīng)過(guò)幾個(gè)人的努力,最后,維熱納爾終于將其完善了。他編出了一個(gè)系統(tǒng)而有效的密碼。那就是維熱納爾密碼,其主要構(gòu)成是維熱納爾方陣:

          a b c d e f g h i j k l m n o p q r s t u v w x y z

          1 B C D E F G H I J K L M N O P Q R S T U V W X Y Z A

          2 C D E F G H I J K L M N O P Q R S T U V W X Y Z A B

          3 D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

          4 E F G H I J K L M N O P Q R S T U V W X Y Z A B C D

          5 F G H I J K L M N O P Q R S T U V W X Y Z A B C D E

          6 G H I J K L M N O P Q R S T U V W X Y Z A B C D E F

          7 H I J K L M N O P Q R S T U V W X Y Z A B C D E F G

          8 I J K L M N O P Q R S T U V W X Y Z A B C D E F G H

          9 J K L M N O P Q R S T U V W X Y Z A B C D E F G H I

          10 K L M N O P Q R S T U V W X Y Z A B C D E F G H I J

          11 L M N O P Q R S T U V W X Y Z A B C D E F G H I J K

          12 M N O P Q R S T U V W X Y Z A B C D E F G H I J K L

          13 N O P Q R S T U V W X Y Z A B C D E F G H I J K L M

          14 O P Q R S T U V W X Y Z A B C D E F G H I J K L M N

          15 P Q R S T U V W X Y Z A B C D E F G H I J K L M N O

          16 Q R S T U V W X Y Z A B C D E F G H I J K L M N O P

          17 R S T U V W X Y Z A B C D E F G H I J K L M N O P Q

          18 S T U V W X Y Z A B C D E F G H I J K L M N O P Q R

          19 T U V W X Y Z A B C D E F G H I J K L M N O P Q R S

          20 U V W X Y Z A B C D E F G H I J K L M N O P Q R S T

          21 V W X Y Z A B C D E F G H I J K L M N O P Q R S T U

          22 W X Y Z A B C D E F G H I J K L M N O P Q R S T U V

          23 X Y Z A B C D E F G H I J K L M N O P Q R S T U V W

          24 Y Z A B C D E F G H I J K L M N O P Q R S T U V W X

          25 Z A B C D E F G H I J K L M N O P Q R S T U V W X Y

          26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

          它的明碼表后有26個(gè)密碼表,每個(gè)表相對(duì)前一個(gè)發(fā)生一次移位。如果只用其中某一個(gè)進(jìn)行加密,那么只是簡(jiǎn)單的愷撒移位密碼。但用方陣中不同的行加密不同的字母,它就是一種強(qiáng)大的密碼了。加密者可用第7行來(lái)加密第一個(gè)字母,再用第25行來(lái)加密第二個(gè)字母,然后根據(jù)第8行來(lái)加密第三個(gè)字母等。

          現(xiàn)在來(lái)試一下,就用關(guān)鍵詞FOREST來(lái)加密Better to do well than to say well.

          關(guān)鍵詞 F O R E S T F O R E S T F O R E S T F O R E S T F O R

          明 文 b e t t e r t o d o w e l l t h a n t o s a y w e l l

          密 文 G S K X W K Y C U S O X Q Z K L S G Y C J E Q P J Z C

         ?。吹?行,F(xiàn)開(kāi)頭,明文是b,要用G來(lái)加密;第14行,O開(kāi)頭,明文是e,要用S來(lái)加密,如此類(lèi)推......)

          維熱納爾密碼既克服了頻率分析,又具有數(shù)目眾多的密鑰。發(fā)送者和接收者可使用字典里任一個(gè)單詞,或單詞組合,或虛構(gòu)的詞作為關(guān)鍵詞。它提供了很好的安全保障,但它的復(fù)雜性,卻令其等到19世紀(jì)才流行起來(lái)。不過(guò),也是在19世紀(jì),查爾斯·巴比奇---一個(gè)性情古怪的天才將其破譯了。讓我們來(lái)看看解密的過(guò)程:

          首先,破譯的第一步就是尋找密文中出現(xiàn)超過(guò)一次的字母。有兩種情況可能導(dǎo)致這樣的重復(fù)發(fā)生。最有可能的是明文中同樣的字母序列使用密鑰中同樣的字母加了密;另外還有一種較小的可能性是明文中兩個(gè)不同的字母序列通過(guò)密鑰中不同部分加了密,碰巧都變成了密文中完全一樣的序列。假如我們限制在長(zhǎng)序列的范圍內(nèi),那么第二種可能性可以很大程序地被排除,這種情況下,我們多數(shù)考慮到4個(gè)字母或4個(gè)以上的重復(fù)序列。

          破譯的第二步是確定密鑰的長(zhǎng)度,又看看這一段先:

          關(guān)鍵詞 F O R E S T F O R E S T F O R E S T F O R E S T F O R

          明 文 b e t t e r t o d o w e l l t h a n t o s a y w e l l

          密 文 G S K X W K Y C U S O X Q Z K L S G Y C J E Q P J Z C

          第一個(gè)YC出現(xiàn)后到第二個(gè)YC的結(jié)尾一共有12個(gè)字母(U S O X Q Z K L S G Y C)

          那么密鑰的長(zhǎng)度應(yīng)是12的約數(shù)---1,2,3,4,6,12之中的一個(gè)(其中,1可排除)。

          如下面的密文:

          I S W Z P N Q C K M Y Y Y J K A Y Y E Z F F S W E E S S P G Z X Q A H F

          I S W Z P N Q C K M T V Y J O A C V E H A E S A Z R L T P Q I Z M X O T

          Q S W M C V U D S I J G G D E U W A Z R S F X W I L K U E J Q L D A C B

          G D L Y J X M Y L M D Q K Z M P L D I L Q E M W F S W D P A Z E Z Q N W

          D Y W D Z X F S A E E A Z J D U E L V P T M C E K W S E E F U R Z F S W

          D P X A C Q A F K M X W A W V E Z F S D B G D L A Y U Q X G D P E K W S

          E E F U R Z F S W D P O U E Z K Z M Y L Q N P Q Q D E M J T Q Y G U V A

          Z O G R W A W P V U E Q A F J Q J G G C O M J Z A H Q A F K T J D K A D

          M N W P J G G C W K P K A Y E Q Z Z P T V K Z M Q G W D V F A H L T L L

          U S S P X A Z P G Z J G G O S D W A Z R K A E Z Q C W K Z M M C W I T L

          T E Z M E D A Z C A Y Q A F J R L U Q L K U Q Q A F J Q Y W H P J T F J

          F L K U Q Q A F J Q Y W H P J P Z O Z D Z M W D U M W F S W A Y W R Z J

          K Z M I S G B T F O S E E J G G D G R E D K M M F D M D P A R Q J A H F

          U D K T Z O Z E Z Q Y A I T D X V F A H L T L L K Z M M C W Z Z V D P S

          Y P J

          在里面重復(fù)序列有I S W Z P N Q C K M,B G D L,S E E F U R Z F S W D P,

          J G G C,L K U Q Q A F J Q Y W H P J,V F A H L T L L等;

          如果每個(gè)重復(fù)間隔都能被3整除,關(guān)鍵詞應(yīng)該有三個(gè)字母。

          下一步,仍舊是頻率分析,不過(guò),因?yàn)殛P(guān)鍵詞有三個(gè)字母,我們應(yīng)分為三組進(jìn)行。把第1, 4,7,10,13......個(gè)字母分為一組,稱(chēng)之為L(zhǎng)1,把第2,5,8,11,14......個(gè)字母又分為一組,稱(chēng)之為L(zhǎng)2,余下的歸另一組,稱(chēng)之為L(zhǎng)3。那么每一組有169個(gè)字母。

          現(xiàn)在先做一個(gè)標(biāo)準(zhǔn)頻率分布表:

          用169乘以各個(gè)字母的標(biāo)準(zhǔn)百分比,如字母A,169*8.2%=14。

          那么由標(biāo)準(zhǔn)頻率:

          A:8.2 N:6.7

          B:1.5 O:7.5

          C:2.8 P:1.9

          D:4.3 Q:0.1

          E:12.7 R:6.0

          F:2.2 S:6.3

          G:2.0 T:9.1

          H:6.1 U:2.8

          I:7.0 V:1.0

          J:0.2 W:2.4

          K:0.8 X:0.2

          L:4.0 Y:2.0

          M:2.4 Z:0.1

          得到標(biāo)準(zhǔn)個(gè)數(shù):

          A:14 N:11

          B:3 O:13

          C:5 P:3

          D:7 Q:0

          E:21 R:10

          F:4 S:11

          G:3 T:15

          H:10 U:5

          I:12 V:2

          J:0 W:4

          K:1 X:0

          L:7 Y:3

          M:4 Z:0

          然后,統(tǒng)計(jì)L1的169個(gè)字母出現(xiàn)的次數(shù),有:

          A:22 N:1

          B:1 O:1

          C:0 P:5

          D:10 Q:16

          E:10 R:5

          F:9 S:2

          G:7 T:7

          H:2 U:14

          I:9 V:1

          J:0 W:1

          K:11 X:2

          L:0 Y:5

          M:14 Z:14

          又作出L1的圖表(histogram),與標(biāo)準(zhǔn)圖表對(duì)比一下。標(biāo)準(zhǔn)頻率和L1的頻率都有峰值,平穩(wěn)期和低谷。它們之間的區(qū)別在于相互錯(cuò)開(kāi)了一些位置,比較兩者應(yīng)該可以尋找出最顯著的特征。例如,看L1圖表中A-F這一段,A的峰值過(guò)后是低谷,特別是C沒(méi)有出現(xiàn),然后是一段平穩(wěn)期,這與標(biāo)準(zhǔn)頻率中的O-T這一段相像;標(biāo)準(zhǔn)頻率中,O的前面I-N這一段和L1中U-Z一段也大致吻合;又看看,L1中,J和L的缺失應(yīng)該就是標(biāo)準(zhǔn)頻率中X和Z的缺失,M-Q這一段應(yīng)就是標(biāo)準(zhǔn)頻率中A-E這一段。這就暗示著L1的密碼表是由M,N,O,P......開(kāi)始的。把L1的圖表向左平移12個(gè)單位再與標(biāo)準(zhǔn)頻率對(duì)比,整體來(lái)說(shuō)差不多。由此可知,關(guān)鍵詞的第一個(gè)字母是M。(注意,一些誤差是在所難免的,如K替換Y,兩圖表比較起來(lái)好像不很符合,但整體來(lái)說(shuō)是差不多的,我們就可忽略過(guò)去。)

          繼續(xù)下來(lái),統(tǒng)計(jì)L2中169個(gè)字母出現(xiàn)的次數(shù),可以確定關(guān)鍵詞的第二個(gè)字母是L。

          最后,用同樣的方法可確定關(guān)鍵詞的第三個(gè)字母是S。

          至此,得到整個(gè)關(guān)鍵詞是MLS。

          再用維熱納爾方陣將密文翻譯過(guò)來(lái),得到明文:

          Whenever sang my songs

          On the stage on my own

          Whenever said my words

          Wishing they would be heard

          I saw you smiling at me

          Was it real or just my fantasy

          You'd always be there in the corner

          Of this tiny little bar

          My last night here for you

          Same old songs just once more

          My last night here with you

          Maybe yes maybe no

          I kind of liked it you're your way

          How you shyly placed your eyes on me

          Oh did you ever know

          That I had mine on you

          Darling so there you are

          With that look on your face

          As if you're never hurt

          As if you're never down

          Shall I be the one for you

          Who pinches you softly but sure

          If frown is shown then

          I will know that you are no dreamer

          現(xiàn)在再說(shuō)說(shuō)一些技巧:

          1.A-E段,U-Z段以及O-T段的特征比較顯著,可先從這些方面著手;

          2.如果一些字符串出現(xiàn)的頻率較多,不妨猜猜,特別要注意THE,-ING等的出現(xiàn);

          3.要留意那些圖表中沒(méi)有出現(xiàn)的字母,很多時(shí)候也會(huì)是突破點(diǎn),如X與Z的空缺;

          4.圖表最好還是做一下,畢竟比較直觀,好看
        | 發(fā)表于 2022-5-21 18:24:34 發(fā)帖際遇
        好,感謝分享
        | 發(fā)表于 2022-5-21 18:26:23
        先收藏了在慢慢看
        | 發(fā)表于 2022-5-21 20:24:56 | 來(lái)自小霸王手機(jī)
        感謝分享
        | 發(fā)表于 2022-5-21 21:41:19
        感謝分享,你什么時(shí)候變成古戶繪梨花了?
        | 發(fā)表于 2022-5-22 01:08:59 | 發(fā)自安卓客戶端
        感謝分享慢慢了解
        | 發(fā)表于 2022-5-22 08:05:16 | 發(fā)自安卓客戶端
        感謝分享(?′ω`?)
        返回版塊
        123
        尚未登錄
        您需要登錄后才可以回帖 登錄 | 加入學(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>
            欧美日韩在线观看一区二区 | 久久免费少妇视频 | 中国免费黄片大全 | 中国毛片大全 | 婷婷五月天AV在线 | 成人无码区免费A片视频国产解说 | 白峰美羽人妻AND-499 | 五月丁香大香蕉 | 高清无码成人视频 | 无码成A毛片免费 |