古典密码-多表密码体制

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

 

代表性的多表密码:

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
ahold
bipme
cjqnf
dkrog

.

.

.

.

.

.

.

.

.

.

xalia
ybmjb
zcnkc

 

 

 

 

 

 

 

 

 

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"。

 

转载于:https://www.cnblogs.com/13jhzeng/p/5514328.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值