您的位置:首页 > 其它

维吉尼亚密码加密过程图解及其破译方法

2017-06-18 17:52 399 查看
维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密:

TO BE OR NOT TO BE THAT IS THE QUESTION

当选定RELATIONS作为密钥时,加密过程是:明文一个字母为T,第一个密钥字母为R,因此可以找到在R行中代替T的为K,依此类推,得出对应关系如下:

密钥:RE LA  TI  ONS  RE LA TION   SR ELA TIONSREL

明文:TO BE OR NOT TO BE THAT  IS  THE QUESTION

密文:KS ME HZ  BBL  KS ME MPOG AJ XSE JCSFLZSY
图解加密过程:



方阵破译

首先,破译的第一步就是寻找密文中出现超过一次的字母。有两种情况可能导致这样的重复发生。最有可能的是明文中同样的字母序列使用密钥中同样的字母加了密;另外还有一种较小的可能性是明文中两个不同的字母序列通过密钥中不同部分加了密,碰巧都变成了密文中完全一样的序列。假如我们限制在长序列的范围内,那么第二种可能性可以很大程度地被排除,这种情况下,我们多数考虑到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.图表最好还是做一下,毕竟比较直观,好看.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息