维吉尼亚(Vigenere)密码

维吉尼亚密码是一个很著名的多码加密法,多码加密法是一种替换加密法,其中的每个明文字母可以用密文中的多个字母来代替,而每个密文字母也可以表示多个明文字母。

维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。  

例1 维吉尼亚(Vigenere)密码加密:

设字母数字对应表为:

A

B

C

D

E

F

G

H

I

J

K

L

M

0

1

2

3

4

5

6

7

8

9

10

11

12

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

13

14

15

16

17

18

19

20

21

22

23

24

25

n=6,密钥是cipher,这相应于密钥k=(2,8,15,7,4,17),明文是“this cryptosystem is not secure”(明文用小写字母表示), 试用(Vigenere)密码对其加密(密文用大写字母表示)。

解:首先将明文按每6个分为一组,然后与密钥进行模26加计算,得如下算式结果(两种列表形式,任选一种):

t

h

i

s

c

r

y

p

t

o

s

y

19

7

8

18

2

17

24

15

19

14

18

24

2

8

15

7

4

17

2

8

15

7

4

17

21

15

23

25

6

8

0

23

8

21

22

15

V

P

X

Z

G

I

A

X

I

V

W

P

就第一列t而言,(19+2)mod26=21→V 

s

t

e

m

i

s

n

o

t

s

e

c

18

19

4

12

8

18

13

14

19

18

4

2

2

8

15

7

4

17

2

8

15

7

4

17

20

1

19

19

12

9

15

22

8

25

8

19

U

B

T

T

M

J

P

W

I

Z

I

T

u

r

e

20

17

4

2

8

15

22

25

19

W

Z

T

相应的密文是:VPXZGIAXIVWPUBTTMJPWIZITWZT

例2 维吉尼亚密码解密:

设n=5,密钥是ynfjw, 这相应于密钥k=(24,13,5,9,22), 已知密文是“GJNUH ZRARO GGNWC QUFWC FNNCK KBWAK UJNCD KLKAE CAI”(密文用大写字母表示),试用(Vigenere)密码对其解密(即求出明文,明文除英文习惯外用小写字母表示)。

解:首先将明文按每5个分为一组,然后与密钥进行模26减计算,得如下算式结果:

i

w

i

l

l

b

e

v

i

s

i

t

i

n

g

8

22

8

11

11

1

4

21

8

18

8

19

8

13

6

24

13

5

9

22

24

13

5

9

22

24

13

5

9

22

6

9

13

20

7

25

17

0

17

14

6

6

13

22

2

G

J

N

U

H

Z

R

A

R

O

G

G

N

W

C

s

h

a

n

g

h

a

i

t

o

m

o

r

r

o

18

7

0

13

6

7

0

8

19

14

12

14

17

17

14

24

13

5

9

22

24

13

5

9

22

24

13

5

9

22

16

20

5

22

2

5

13

13

2

10

10

1

22

0

10

Q

U

F

W

C

F

N

N

C

K

K

B

W

A

K

w

w

i

t

h

m

y

f

r

i

e

n

d

22

22

8

19

7

12

24

5

17

8

4

13

3

24

13

5

9

22

24

13

5

9

22

24

13

5

20

9

13

2

3

10

11

10

0

4

2

0

8

U

J

N

C

D

K

L

K

A

E

C

A

I

相应的明文是:iwillbevisitingshanghaitomorrowwithmyfriend

  • 17
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值