自從頻率分析法出現后,單字母替換密碼完全失去了效用。因此,密碼編碼者想
方設法去編一種更強大的密碼。一些編碼者對單字母替換密碼做了一些改動,如
在編碼過程中,加入一些特殊的字符,或者令一些字母不代表另一個字母,而是
代表一種程式,譬如是代表空格,代表刪去前一個字母,代表換行等。但這一切
起的作用并不大,聰明的破譯師仍然能在里面找到許許多多破譯密碼的線索。直
到有一天,佛羅倫薩的里昂巴蒂斯特·阿爾伯提提出了一種多字母替換密碼,即
是用兩個或兩個以上的密碼表交替使用來進行加密,如:
明碼表 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世紀,
查爾斯·巴比奇---一個性情古怪的天才將其破譯了。讓我們來看看解密的過
程:
首先,看看上篇文章中的一段:
關鍵詞 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
其中,to兩次都是被加密為YC,因為它兩次都是用FO來進行加密,關鍵詞正好輪
回了兩次,巴比奇意識到這種重復正是征服維熱納爾密碼的突破點。那么說,破
譯的第一步就是尋找密文中出現超過一次的字母。有兩種情況可能導致這樣的重
復發生。最有可能的是明文中同樣的字母序列使用密鑰中同樣的字母加了密;另
外還有一種較小的可能性是明文中兩個不同的字母序列通過密鑰中不同部分加了
密,碰巧都變成了密文中完全一樣的序列。假如我們限制在長序列的范圍內,那
么第二種可能性可以很大程序地被排除,這種情況下,我們多數考慮到4個字母或
4個以上的重復序列。如下面的密文:
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等;
破譯的第二步是確定密鑰的長度,又看看這一段先:
關鍵詞 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 36 2 3 4 6 9 12 18 36
B G D L 93 3 31
S E E F U R Z F S W D P 45 3 5 15
J G G C 24 2 3 4 6 12 24
L K U Q Q A F J Q Y W H P J 18 2 3 6 9 18
很明顯,每個重復間隔都能被3整除,關鍵詞應該有三個字母。
下一步,仍舊是頻率分析,不過,因為關鍵詞有三個字母,我們應分為三組進行
。把第1,4,7,10,13......個字母分為一組,稱之為L1,把第2,5,8,11,
14......個字母又分為一組,稱之為L2,余下的歸另一組,稱之為L3。那么每一
組有169個字母。
4┣┃┃ ┏┫┃ ┃┃┃ ┏┓┃┃┃ ┃┃┃┃
┃┃┃┏┫┃┃ ┃┃┃ ┃┃┃┃┃ ┃┃┃┣┓
2┣┃┣┫┃┃┣┳┫┃┃ ┃┣┫┃┣┓┃┃┃┃┃┏┓┏┓
┃┃┃┃┃┃┃┃┃┃┃┏┫┃┃┃┃┃┃┃┃┃┣┫┃┃┃
0┗┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻━
ABCDEFGHIJKLMNOPQRSTUVWXYZ
可以確定關鍵詞的第二個字母是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
PYMPSIZCMTVEEEOVSDAJNKSDPYMZVVABNHV
CAZANVVBLVGCYQYQGEEYZMGXXNVMVICARZG
MECNILGFJJQWIIAUTXMJQIMMLVUNIEOVZRZ
HYEZUQLGLOJQGKGDZTHWFLYGHVGWZVMMECG
WKXIWZBLSISFZDMECKPKSLCYBAIKDVWKMVO
FNZIFIVBKC
2.K Q O W E F V J P U J U U N U K G L M E K J I N M W U X F Q M K J B G
W R L F N F G H U D W U U M B S V L P S N C M U E K Q C T E S W R E E K
O Y S S I W C T U A X Y O T A P X P L W P N T C G O J B G F Q H T D W X
I Z A Y G F F N S X C S E Y N C T S S P N T U J N Y T G G W Z G R W U U
N E J U U Q E A P Y M E K Q H U I D U X F P G U Y T S M T F F S H N U O
C Z G M R U W E Y T R G K M E E D C T V R E C F B D J Q C U S W V B P N
L G O Y L S K M T E F V J J T W W M F M W P N M E M T M H R S P X F S S
K F F S T N U O C Z G M D O E O Y E E K C P J R G P M U R S K H F R S E
I U E V G O Y C W X I Z A Y G O S A A N Y D O E O Y J L W U N H A M E B
F E L X Y V L W N O J N S I O F R W U C C E S W K V I D G M U C G O C R
U W G N M A A F F V N S I U D E K Q H C E U C P F C M P V S U D G A V E
M N Y M A M V L F M A O Y F N T Q C U A F V F J N X K L N E I W C W O D
C C U L W R I F T W G M U S W O V M A T N Y B U H T C O C W F Y T N M G
Y T Q M K B B N L G F B T W O J F T W G N T E J K N E E D C L D H W T V
B U V G F B I J G Y Y I D G M V R D G M P L S W G J L A G O E E K J O F
E K N Y N O L R I V R W V U H E I W U U R W G M U T J C D B N K G M B I
D G M E E Y G U O T D G G Q E U J Y O T V G G B R U J Y S