古典密码中的Vigenere加密方法的解密实例
来源:互联网 发布:python .eval详解 编辑:程序博客网 时间:2024/05/16 02:08
下列消息是一个Vigenere密文。试找出密钥,并解密密文。
TSMVM MPPCW CZUGX HPECP RFAUE IOBQW PPIMS FXIPC TSQPK
SZNUL OPACR DDPKT SLVFW ELTKR GHIZS FNIDF ARMUE NOSKR
GDIPH WSGVL EDMCM SMWKP IYOJS TLVFA HPBJI RAQIW HLDGA
IYOU
答:两个或两个以上的字母的重复如下所示:
字母
开始
结束
间隔长度
间隔长度因子
FA
21
79
58
2,29
HP
15
120
105
3,5,11
IP
37
92
55
5,11
IYO
110
135
25
5,5
KR
68
88
20
2,2,5
LV
61
116
55
5,11
PP
6
30
24
2,2,2,3
PC
7
38
31
31
PI
31
109
78
2,3,13
PK
43
57
14
2,7
RG
69
89
20
2,2,5
SM
1
105
104
2,2,2,13
SF
34
74
40
2,2,2,5
TS(3次)
0,40,54
0,40,54
14,40,54
(2,2,2,5)(2,7)(2,3,3,3)
UE
23
83
60
2,2,3,5
VF
62
117
55
5,11
在这些出现的重复的间隔长度因子里,‘5’出现了11次为最多,所以最有可能密钥的长度为5。
验证这是否正确,对每个字母表计算重合指数。设原密文第i个字母,计算u=i%5+1。则把对应的u值作为所在的行,得到以下5行:
TMCHRIPFTSODSEGFANGWESITHRHI
SPZPFOPXSZPDLLHNRODSDMYLPALY
MPUEABIIQNAPVTIIMSIGMWOVBQDO
VCGCUQMPPUCKFKZDUKPVCKJFJIGU
MWXPEWSCKLRTWRSFERHLMPSAIWA
每一行表示一个字母表。重合指数如下:
字母表#1:IC=0.0423 字母表#2:IC=0.0608 字母表#3:IC=0.0503
字母表#4:IC=0.0661 字母表#5:IC=0.0513
第4组表示是一个独立的字母表,其它组都不符合一个独立字母表的条件。(先认为它是正确的,进行计算)
计算每个字符的出现的次数,产生如下结果:
H
M
M
M
H
M
M
H
H
M
M
M
M
H
H
M
L
H
H
H
M
L
L
L
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
3
1
0
0
4
0
1
1
3
0
1
0
0
1
3
0
0
1
1
2
0
0
0
0
0
0
2
1
0
0
3
0
1
0
1
0
0
0
4
1
1
2
5
0
1
2
0
0
0
0
1
2
2
3
2
2
0
1
1
0
1
0
5
0
0
0
3
1
2
2
2
0
1
1
1
2
1
0
0
0
4
0
0
4
1
0
2
2
0
1
2
4
0
1
0
0
3
1
0
0
0
4
2
0
0
0
1
5
2
0
1
0
2
1
0
1
1
0
1
2
2
0
0
2
0
3
3
1
0
0
4
2
0
0
原始字母表有如下特性(L表示低频率,M表示中频率,H表示高频率):
H M M M H M M H H M M M M H H M L H H H M L L L L L
现在比较以上5个字母表中频率特性和原始字母表中的频率特性。得到密钥为“ALICE”。
根据密钥,得到明文为:
THE TIME HAS COME THE WALRUS SAID TO SPEAK OF MANY THINGS OF SHOES AND SHIPS AND SEALING WAX OF CABBAGES AND KINGS AND WHY THE SEA IS BOLLING HOT AND WHETHER PIGS HAVE WINGS
- 古典密码中的Vigenere加密方法的解密实例
- Vigenere密码加密解密原理
- 古典密码加密解密之多表代换
- [古典密码]:Vigenere cipher 维吉尼亚密码
- 古典密码之hill密码的加密与解密程序实现
- Vigenere加密解密C++实现
- 一个简单的加密解密方法实例
- 简单的MD5密码加密和解密方法
- C# 密码的加密, 解密
- C# 密码的加密, 解密
- 密码的加密与解密
- Vigenere密码
- Vigenere密码
- .net中的加密解密方法
- 【加密/解密】Botan 中的 AES 加密算法实例
- 【加密/解密】Botan 中的 AES 加密算法实例
- 个人写的凯撒密码,加密解密
- java密码的加密与解密
- 工作到底是为了什么?
- 准备面试---izensoft一家软件公司
- pfc_u_tvs 树应用
- Jquery打造AdRotator轮转图片
- Linux下获取CPUID、硬盘序列号与MAC地址
- 古典密码中的Vigenere加密方法的解密实例
- Eclipse在编写程序不自动跳出提示,解决方法
- 构建移动站点
- pfc_n_cst_dwsrv_linkage 链接服务应用
- centos卸载openoffice
- 2010-11-19
- JBI规范1.0[6] 翻译
- 准备笔试-埃森哲在线笔试
- python 中 列表(list)和字典(dict)数据排序