自從頻率分析法出現(xiàn)后,單字母替換密碼完全失去了效用。因此,密碼編碼者想
方設(shè)法去編一種更強(qiáng)大的密碼。一些編碼者對單字母替換密碼做了一些改動,如
在編碼過程中,加入一些特殊的字符,或者令一些字母不代表另一個字母,而是
代表一種程式,譬如是代表空格,代表刪去前一個字母,代表換行等。但這一切
起的作用并不大,聰明的破譯師仍然能在里面找到許許多多破譯密碼的線索。直
到有一天,佛羅倫薩的里昂巴蒂斯特·阿爾伯提提出了一種多字母替換密碼,即
是用兩個或兩個以上的密碼表交替使用來進(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
第一個密碼表加密第一個字母,第二個密碼表加密第二個字母,第一個密碼表又
加密第三個字母,不斷地重復(fù)......那么:
明文 F O R E S T
密文 Y Y J J L L
這樣,按原來的方法進(jìn)行頻率分析就沒有什么作用了。這只是兩個密碼表時的情
況,如果用三個,四個或以上的密碼表后,破譯就顯得非常非常困難。即使是這
樣,阿爾伯提未能把他的理念發(fā)展成一個完整的系統(tǒng)。這個任務(wù)當(dāng)然由后人完成
了。經(jīng)過幾個人的努力,最后,維熱納爾終于將其完善了。他編出了一個系統(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個密碼表,每個表相對前一個發(fā)生一次移位。如果只用其中某
一個進(jìn)行加密,那么只是簡單的愷撒移位密碼。但用方陣中不同的行加密不同的
字母,它就是一種強(qiáng)大的密碼了。加密者可用第7行來加密第一個字母,再用第25
行來加密第二個字母,然后根據(jù)第8行來加密第三個字母等。
現(xiàn)在來試一下,就用關(guān)鍵詞FOREST來加密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
(看第5行,F(xiàn)開頭,明文是b,要用G來加密;第14行,O開頭,明文是e,要用S來
加密,如此類推......)
維熱納爾密碼既克服了頻率分析,又具有數(shù)目眾多的密鑰。發(fā)送者和接收者可使
用字典里任一個單詞,或單詞組合,或虛構(gòu)的詞作為關(guān)鍵詞。它提供了很好的安
全保障,但它的復(fù)雜性,卻令其等到19世紀(jì)才流行起來。不過,也是在19世紀(jì),
查爾斯·巴比奇---一個性情古怪的天才將其破譯了。讓我們來看看解密的過
程:
首先,看看上篇文章中的一段:
關(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
其中,to兩次都是被加密為YC,因?yàn)樗鼉纱味际怯肍O來進(jìn)行加密,關(guān)鍵詞正好輪
回了兩次,巴比奇意識到這種重復(fù)正是征服維熱納爾密碼的突破點(diǎn)。那么說,破
譯的第一步就是尋找密文中出現(xiàn)超過一次的字母。有兩種情況可能導(dǎo)致這樣的重
復(fù)發(fā)生。最有可能的是明文中同樣的字母序列使用密鑰中同樣的字母加了密;另
外還有一種較小的可能性是明文中兩個不同的字母序列通過密鑰中不同部分加了
密,碰巧都變成了密文中完全一樣的序列。假如我們限制在長序列的范圍內(nèi),那
么第二種可能性可以很大程序地被排除,這種情況下,我們多數(shù)考慮到4個字母或
4個以上的重復(fù)序列。如下面的密文:
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等;
破譯的第二步是確定密鑰的長度,又看看這一段先:
關(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
第一個YC出現(xiàn)后到第二個YC的結(jié)尾一共有12個字母(U S O X Q Z K L S G Y C)
那么密鑰的長度應(yīng)是12的約數(shù)---1,2,3,4,6,12之中的一個(其中,1可
排除)。那么,再回到上面的密文:
重復(fù)序列 重復(fù)間隔 密鑰的可能長度
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
很明顯,每個重復(fù)間隔都能被3整除,關(guān)鍵詞應(yīng)該有三個字母。
下一步,仍舊是頻率分析,不過,因?yàn)殛P(guān)鍵詞有三個字母,我們應(yīng)分為三組進(jìn)行
。把第1,4,7,10,13......個字母分為一組,稱之為L1,把第2,5,8,11,
14......個字母又分為一組,稱之為L2,余下的歸另一組,稱之為L3。那么每一
組有169個字母。
4┣┃┃ ┏┫┃ ┃┃┃ ┏┓┃┃┃ ┃┃┃┃
┃┃┃┏┫┃┃ ┃┃┃ ┃┃┃┃┃ ┃┃┃┣┓
2┣┃┣┫┃┃┣┳┫┃┃ ┃┣┫┃┣┓┃┃┃┃┃┏┓┏┓
┃┃┃┃┃┃┃┃┃┃┃┏┫┃┃┃┃┃┃┃┃┃┣┫┃┃┃
0┗┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻━
ABCDEFGHIJKLMNOPQRSTUVWXYZ
可以確定關(guān)鍵詞的第二個字母是L。
最后,用同樣的方法可確定關(guān)鍵詞的第三個字母是S。
至此,得到整個關(guān)鍵詞是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
下面放出練習(xí)吧:
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