密码学概述与基本加密方式

 

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

以上便是我介绍的几种比较简单基础的加密算法。

 

 

——参考内容:《边做边学信息安全(人民邮电出版社)》、百度百科

 

你可能感兴趣的:(密码学,信息安全,加密解密)