码迷,mamicode.com
首页 > 其他好文 > 详细

古典密码-多表密码体制

时间:2016-05-21 12:53:26      阅读:717      评论:0      收藏:0      [点我收藏+]

标签:

如果明文中不同的位置的同一明文字母在密文中对应的密文字母不同,则称为多表密码体制。

 

代表性的多表密码:

1.Vigenere密码

2.Beaufort密码

3.running-key密码

4.Vernam密码

5.Hill密码

 

例子:

1.Vigenere密码加密:

设明文   m=m1m2...mn

密钥      k = k1k2...kn

则密文   c=Ek(m)=c1c2...cn

其中      ci=(mi+ki)(mod 26),(i=1,2,...,n)

 

Vigenere密码解密:

设明文   m=m1m2...mn

密钥      k = k1k2...kn

则明文   m=Dk(m)=m1m2...mn

其中      mi=(ci-ki)(mod 26),(i=1,2,...,n)

 

假设密钥是hold,生成的加密解密移位密码表为:

  +h +o +l +d
a h o l d
b i p m e
c j q n f
d k r o g

.

.

.

.

.

.

.

.

.

.

x a l i a
y b m j b
z c n k c

 

 

 

 

 

 

 

 

 

2.Beaufort密码

与Vigenere密码相似

设明文   m=m1m2...mn

密钥      k = k1k2...kn

则密文   c=Ek(m)=c1c2...cn

其中      ci=(ki+25-mi)(mod 26),(i=1,2,...,n)

 

3.running-key密码

对于周期代换密码,保密随周期的加大而增加,当周期的长度和明文一样长时,就成了running-key密码。

 

4.Vernam密码

加密:Ci=Pi⊕Ki

解密:Pi=Ci⊕Ki

(⊕表示模2加法)

设明文为101,密钥是110

则加密101⊕110=011

   解密011⊕110=101

要求构造和消息一样长的随机密钥

 

5.Hill密码

加密:c=m K mod n

解密:m=c K-1mod n(注意这里的K-1是K的逆元)

设K=[11     8]

   [ 3      7]          (Ps.这是一个矩阵)

|K|=11*7-3*8=53≡1(mod 26)

K*=[ 7      -8]

  [-3      11]

  =[ 7      18]

      [23     11]

K-1=|K|-1 *   K*=[ 7     18]

         [23     11]

加密:

明文字符为“hi“,m=(7,8)

(7,8) *  [11     8]

        [ 3      7]

 

= (23,8)

对应密文字符"xi"

 

解密:

(23,8) *  [ 7     18]

      [23     11]

=(7,8)

对应明文字符"hi"。

 

古典密码-多表密码体制

标签:

原文地址:http://www.cnblogs.com/13jhzeng/p/5514328.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!