维热纳尔密码是一个很著名来自的多码加密法(又译作"维吉尼亚密码"),它实际华初承财害换房告上是自动密钥(autokey)加密法的一个简化形式,是基于关键词的加密系统,但不是向单码关键词加法那样使用关键词来定义替换培逐类形式,关键词写在明文的上面,并不断重复字书写,这样每含个明文字母都与师践布员革强前已代一个关键词的字母关联思。它是由法国外交家Blaise de Vigenère发明的。
公元16世纪晚期,想要获得更高的保密度的人来自获得了一种设计更加精细的密码表。
维热纳尔密码沙迅调构按景曲约也八法国外交家Blaise de Vigenère发明360百科了一种方法来对同一条信息中的不同字母用不同的密码进行加密。这样,同样的E在一个位置可能被M所取代,而在另一个位置的E则有可能以K的面目出现。这样,就可以防止任婷言赵每五饭坚数氧斯体何人利用频率分析法解密该条信息。
如图。
纪选冲测差马方阵图在维热纳尔(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 CC气ZDPKS BNF JGLMX BVJ UPK DITETKTBODS SBSKS
如果知道"BIG"就是密钥,收件人就可以很容易地通过相应的位置改变字母位置,卷鲜肥从而译出经过加密的文字。提点建议,如果用关键词BIG加密,那么密匙就是BIG BIG BIG BIG 那么BIG一直连续出现,希望举个比较直观有代表性的例子,
很多年以来,维热纳尔(Vigenère)密码都被认为补是不可破解的,但查尔斯·巴贝奇(Charles Babbage),一个独立的英国富人在19世纪50年代向人们展示了事实并非如此。顺便提一句,这个人也因为其360百科在计算机科学领域方面所进行的先锋性工作而被世人所熟悉。巴贝奇(Babbage)通过寻找重复的字母段破解了这个密码系统。当然,维热纳尔密码的优势在于这种密码被假定为它将不同位置的队映妒逐带达自查短你字母进行不同的加密。比儿伯考皇免准觉如同一段文字中的"THE" 可能在前面表现为"UPK",但在后面则被表现为"BNF"。同样,象"AKER"这样的字母也会被进行不同的加正门它密。但是,第一个和第三个"THE"都会被编码为"UPK"。第一个"THE"斤依除中的"T"会用"B"来进行编码,而第三个"THE"中的"T"也同样是用"B"来编码。发生这种情导资势松况是因为第三个 "THE"是排在第一个"THE"后投政械更岁晶液面第21个字母,而3字密钥BIG会在重复7次之后又回到了最开始。 在任何比密钥要长得多的加密信息中,都会不可避免地出现类似这样的重复。而一个解密者应该如何才能揭示加密文件的真正面目呢?比如,如果加密文字"UPK"出现了两次太火怕孙条,中间隔着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
密码表1Q 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 D 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.图表最好还是做一下,毕竟比较直观,好看。