1.密码学
密码学(cryptology)是研究编制密码和破译密码的技术的科学。研究密码变化的客观细律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。
著名的密码学者Ron Rivest认为“密码学是关于如何在敌人存在的环境中通讯”,是信息安全等相关议题,如认证、访问控制的核心。其首要目的是隐藏信息的含义,而不是隐藏信息的存在。
2.加密模型
我要介绍几种基本的加密解密方法,首先了解一下数据加密的模型:
(1)密码(password):是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。
(2)明文(plaintex或Message):就是原始的信息,或是需要被密码保护的信息,可能是比特流、文本文件、位图、数字化的语音流或视频图像等.
(3)密文(ciphertext):原始信息经过加密处理后,隐藏原文含义的信息。
(4)加密(enciphering):把原始信息转换成不直接可读形式的过程。
(5解密(deciphering):是加密的逆过程,从加密过的信息中得到原始信息的过程。
(6)密钥(key):是在控制加密和解密算法实现过程中通信双方掌握的专门信息。密钥是一个具有特定长度的数字串,其值是从大量的随机数中选取的。
3.基本加密方法
1.移位密码(凯撒密码)
Step:将密码按顺序向前(向后)移动n位。
Eg:
明文:ABCDEFG key=3
密文:DEFGABC
2.置换密码(换位密码)
Step:一般是纵行换位密码,明文以固定的宽度水平的写在一张图表纸上,密文按垂直方向读出,解密就是密文按相同的宽度垂直的写在图表纸上,然后水平的读出明文。
Eg:
明文:attack begins at five 密钥:cipher
因为密钥有6个字符,所以将明文按照一行6个字母排成矩阵得
a |
t |
t |
a |
c |
k |
b |
e |
g |
i |
n |
s |
a |
t |
f |
i |
v |
e |
分析置换规则,根据26个英文字母排列顺序,得出密钥cipher各个字母的先后顺序,c是第一位出现。其次是e,以此类推得出其顺序为:145326
随即将顺序规则插入明文矩阵得
a |
t |
t |
a |
c |
k |
b |
e |
g |
i |
n |
s |
a |
t |
f |
i |
v |
e |
1 |
4 |
5 |
3 |
2 |
6 |
纵列依次写下得密文:aba cnv aii tet tgf kse
3.替换密码
Step:这是一种基于凯撒密码的加密方式。得到偏移数量后,将明文与密文相对照,得到一个混合表。使用混合表,我们能得到最终密文。
Eg1:
明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ key=3
密文:DEFGGHIJKLMNOPQRSTUVWXYZABC
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 |
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 |
得知混合表为:A=D B=E C=F D=G E=H F=I G=J……X=A Y=B Z=C
明文:I want give you a hug
密文:L ZDQW JLYH BRX D KXJ
Eg2:
当得到字母组合的密钥时,将字母组合写在混合表最前面,重复的字母删去,组成混合表。
明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ key=ZEBRAS
密文:ZEBRASCDFGHIJKLMNOPQTUVWXY
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 |
Z |
E |
B |
R |
A |
S |
C |
D |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
T |
U |
V |
W |
X |
Y |
得知混合表为:A=Z B=E C=D D=R E=A F=S G=C …… W=V X=W Y=X Z=Y
明文:We are discovered
密文:VA ZOA RFPBLUAOAR
3.Vigenere加密
话不多说,直接上例子!
Eg:
明文:We are finally discovered 密钥:radio
首先先将26个英文字母标个序号(从0开始标记)
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
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 |
接着将明文拆分成单独的字母记为P1、P2……P22,根据26个字母所对应的序号将其标记。同理,将密钥拆分为单独的字母循环放入表格中并对应相应序号。
P1 |
P2 |
P3 |
P4 |
P5 |
P6 |
P7 |
P8 |
P9 |
P10 |
P11 |
P12 |
P13 |
P14 |
P15 |
P16 |
P17 |
P18 |
P19 |
P20 |
P21 |
P22 |
w |
e |
a |
r |
e |
f |
i |
n |
a |
l |
l |
y |
d |
i |
s |
c |
o |
v |
e |
r |
e |
d |
22 |
4 |
0 |
17 |
4 |
5 |
8 |
13 |
0 |
11 |
11 |
14 |
3 |
8 |
18 |
2 |
14 |
21 |
4 |
17 |
4 |
3 |
K1 |
K2 |
K3 |
K4 |
K5 |
K6 |
K7 |
K8 |
K9 |
K10 |
K11 |
K12 |
K13 |
K14 |
K15 |
K16 |
K17 |
K18 |
K19 |
K20 |
K21 |
K22 |
r |
a |
d |
i |
o |
r |
a |
d |
i |
o |
r |
a |
d |
i |
o |
r |
a |
d |
i |
o |
r |
a |
17 |
0 |
3 |
8 |
14 |
17 |
0 |
3 |
8 |
14 |
17 |
0 |
3 |
8 |
14 |
17 |
0 |
3 |
8 |
14 |
17 |
0 |
最重要的一步来了,我们将根据上表算出密文的所对应的字母。
公式:密文C=明文P+密钥K
当计算结果超过25时,将超过25的部分重新归0开始计算。
例如:C1=P1+k1=22+17=39 超过25的部分为14,因为是从0开始计算,所以得出C1=13,又因13对应的字母为N,得出C1=N。
C2=P2+K2=4+0=4=E
C3=P3+K3=0+3=3=D
……
C22=P22+K22=3+0=3=D
得出密文为:NEDZSWIQIZCOGQGTOYMFVD
以上便是我介绍的几种比较简单基础的加密算法。
——参考内容:《边做边学信息安全(人民邮电出版社)》、百度百科