法國外交家布萊斯·德·維吉尼亞(Blaise de Vigenère)發明了壹種方法來對同壹條信息中的不同字母用不同的密碼進行加密。這樣,同樣的E在壹個位置可能被M所取代,而在另壹個位置的E則有可能以K的面目出現。這樣,就可以防止任何人利用頻率分析法解密該條信息。 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)的密碼中,發件人和收件人必須使用同壹個關鍵詞或者同壹文字章節,即密鑰。這個關鍵詞或文字章節中的字母告訴他們怎麽樣才能前後改變字母的位置來獲得該段信息中的每個字母的正確對應位置。比如如果關鍵字“BIG”被使用了,發件人將把信息按三個字母的順序排列。第壹個三字母單詞的第壹個字母將應當向前移動壹個位置(因為B是排在A後面的字母),第二個字母需要向前移動8位(I是A後面第8個字母),而第三個字母需要向前移動6位(G是A後面第6個字母)。然後,文字就可以按下面的順序來進行加密了:
未加密文字:THE BUTCHER THE BAKER AND THE CANDLESTICK MAKER。(屠夫、面包師和蠟燭匠)。
關鍵密鑰:BIG BIGBIGB IGB IGBIG BIG BIG BIGBIGBIGBI GBIGB
加密文字:UPK CCZDPKS BNF JGLMX BVJ UPK DITETKTBODS SBSKS
密鑰
如果知道“BIG”就是密鑰,收件人就可以很容易地通過相應的位置改變字母位置,從而譯出經過加密的文字。
密碼解析
很多年以來,維吉尼亞(Vigenère)密碼都被認為是不可破解的,但查爾斯·巴貝奇(Charles Babbage),壹個獨立的英國富人在19世紀50年代向人們展示了事實並非如此。順便提壹句,這個人也因為其在計算機科學領域方面所進行的先鋒性工作而被世人所熟悉。巴貝奇(Babbage)通過尋找重復的字母段破解了這個密碼系統。當然,維吉尼亞密碼的優勢在於這種密碼被假定為它將不同位置的字母進行不同的加密。比如同壹段文字中的“THE” 可能在前面表現為“UPK”,但在後面則被表現為“BNF”。同樣,象“AKER”這樣的字母也會被進行不同的加密。但是,第壹個和第三個“THE”都會被編碼為“UPK”。第壹個“THE”中的“T”會用“B”來進行編碼,而第三個“THE”中的“T”也同樣是用“B”來編碼。發生這種情況是因為第三個 “THE”是排在第壹個“THE”後面第21個字母,而3字密鑰BIG會在重復7次之後又回到了最開始。 在任何比密鑰要長得多的加密信息中,都會不可避免地出現類似這樣的重復。而壹個解密者應該如何才能揭示加密文件的真正面目呢?比如,如果加密文字“UPK”出現了兩次,第壹個U到下壹個U會數21個字母,那麽他就可以推斷出密鑰的長度是21的整除數。或者換種說法,他可以推斷出21是密鑰的倍數。(約數或稱除數是壹個數字被除之後不會有余數。比如21的除數就是1、3、7和21。) 如果獲得了足夠多類似的線索,解密者就可以知道密鑰的確切長度。壹旦他知道了密鑰長度,他就可以對加密信息進行日常頻率分析。註意,數學在解密工作中總是放在首位的:解密者首先會計算出密鑰的長度,這步工作甚至是在他要考慮密鑰的具體內容是什麽之前所要做的。
巴貝奇的獨具創意的技巧開創了壹片密碼術的新田地,並且將數學工具引入到了以前被認為專屬於文字學的領域之中。即使壹種編密碼系統沒有明確地使用數學,但其中隱藏的格式卻通常需要以數學的方式進行整理。
自從頻率分析法出現後,單字母替換密碼完全失去了效用。因此,密碼編碼者想方設法去編壹種更強大的密碼。壹些編碼者對單字母替換密碼做了壹些改動,如在編碼過程中,加入壹些特殊的字符,或者令壹些字母不代表另壹個字母,而是代表壹種程式,譬如是代表空格,代表刪去前壹個字母,代表換行等。但這壹切起的作用並不大,聰明的破譯師仍然能在裏面找到許許多多破譯密碼的線索。直到有壹天,佛羅倫薩的裏昂巴蒂斯特·阿爾伯提提出了壹種多字母替換密碼,即是用兩個或兩個以上的密碼表交替使用來進行加密,如:
明碼表 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
第壹個密碼表加密第壹個字母,第二個密碼表加密第二個字母,第壹個密碼表又加密第三個字母,不斷地重復......那麽:
明文 F O R E S T
密文 Y Y J J L L
密碼方陣
這樣,按原來的方法進行頻率分析就沒有什麽作用了。這只是兩個密碼表時的情況,如果用三個,四個或以上的密碼表後,破譯就顯得非常非常困難。即使是這樣,阿爾伯提未能把他的理念發展成壹個完整的系統。這個任務當然由後人完成了。經過幾個人的努力,最後,維吉尼亞終於將其完善了。他編出了壹個系統而有效的密碼。那就是維吉尼亞密碼,其主要構成是維吉尼亞方陣:
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個密碼表,每個表相對前壹個發生壹次移位。如果只用其中某壹個進行加密,那麽只是簡單的愷撒移位密碼。但用方陣中不同的行加密不同的字母,它就是壹種強大的密碼了。加密者可用第7行來加密第壹個字母,再用第25行來加密第二個字母,然後根據第8行來加密第三個字母等。
現在來試壹下,就用關鍵詞FOREST來加密Better to do well than to say well.
關鍵詞 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
(看第5行,F開頭,明文是b,要用G來加密;第14行,O開頭,明文是e,要用S來加密,如此類推......)
維熱納爾密碼既克服了頻率分析,又具有數目眾多的密鑰。發送者和接收者可使用字典裏任壹個單詞,或單詞組合,或虛構的詞作為關鍵詞。它提供了很好的安全保障,但它的復雜性,卻令其等到19世紀才流行起來。不過,也是在19世紀,查爾斯·巴比奇---壹個性情古怪的天才將其破譯了。讓我們來看看解密的過程:
方陣破譯
首先,破譯的第壹步就是尋找密文中出現超過壹次的字母。有兩種情況可能導致這樣的重復發生。最有可能的是明文中同樣的字母序列使用密鑰中同樣的字母加了密;另外還有壹種較小的可能性是明文中兩個不同的字母序列通過密鑰中不同部分加了密,碰巧都變成了密文中完全壹樣的序列。假如我們限制在長序列的範圍內,那麽第二種可能性可以很大程度地被排除,這種情況下,我們多數考慮到4個字母或4個以上的重復序列。
破譯的第二步是確定密鑰的長度,又看看這壹段先:
關鍵詞 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
第壹個YC出現後到第二個YC的結尾壹***有12個字母(U S O X Q Z K L S G Y C)
那麽密鑰的長度應是12的約數---1,2,3,4,6,12之中的壹個(其中,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
在裏面重復序列有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等;
如果每個重復間隔都能被3整除,關鍵詞應該有三個字母。
下壹步,仍舊是頻率分析,不過,因為關鍵詞有三個字母,我們應分為三組進行。把第1, 4,7,10,13......個字母分為壹組,稱之為L1,把第2,5,8,11,14......個字母又分為壹組,稱之為L2,余下的歸另壹組,稱之為L3。那麽每壹組有169個字母。
現在先做壹個標準頻率分布表:
用169乘以各個字母的標準百分比,如字母A,169*8.2%=14。
那麽由標準頻率:
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
得到標準個數:
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
然後,統計L1的169個字母出現的次數,有:
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),與標準圖表對比壹下。標準頻率和L1的頻率都有峰值,平穩期和低谷。它們之間的區別在於相互錯開了壹些位置,比較兩者應該可以尋找出最顯著的特征。例如,看L1圖表中A-F這壹段,A的峰值過後是低谷,特別是C沒有出現,然後是壹段平穩期,這與標準頻率中的O-T這壹段相像;標準頻率中,O的前面I-N這壹段和L1中U-Z壹段也大致吻合;又看看,L1中,J和L的缺失應該就是標準頻率中X和Z的缺失,M-Q這壹段應就是標準頻率中A-E這壹段。這就暗示著L1的密碼表是由M,N,O,P......開始的。把L1的圖表向左平移12個單位再與標準頻率對比,整體來說差不多。由此可知,關鍵詞的第壹個字母是M。(註意,壹些誤差是在所難免的,如K替換Y,兩圖表比較起來好像不很符合,但整體來說是差不多的,我們就可忽略過去。)
繼續下來,統計L2中169個字母出現的次數,可以確定關鍵詞的第二個字母是L。
最後,用同樣的方法可確定關鍵詞的第三個字母是S。
至此,得到整個關鍵詞是MLS。
再用維熱納爾方陣將密文翻譯過來,得到明文:
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
技巧
1.A-E段,U-Z段以及O-T段的特征比較顯著,可先從這些方面著手;
2.如果壹些字符串出現的頻率較多,不妨猜猜,特別要註意THE,-ING等的出現;
3.要留意那些圖表中沒有出現的字母,很多時候也會是突破點,如X與Z的空缺;
4.圖表最好還是做壹下,畢竟比較直觀,好看.