古典密码

古典密码将明文的每一个字母代换为字母表中的另一个字母,代换前现将明文字母用等价的十进制数字代替,使用十进制进行运算。

字母abcdefghijklm
数字0123456789101112
字母nopqrstuvwxyz
数字13141516171819202122232425

根据代换是对每个字母逐个进行还是多个字母同时进行,古典密码又分为单表代换密码和多表代换密码。

1. 单表代换密码

1.1 凯撒密码

凯撒(Caesar)密码的加密代换和解密代换分别为:


其中3是加解密所用到的秘钥,加密时,每个字母向后移3位(循环移位,字母x移到a,y移到b,z移到c)。解密时,每个字母向前移3位(循环移位)

1.2 移位变换

移位变换的加解密分别是:


1.3 仿射变换

仿射变换的加解密分别是:


其中a, b是秘钥,为满足 0 ≦ a,b ≦ 25和 gcd(c,26) = 1的整数。 gcd(a, 26) 表示a和26的最大公因子,gcd(a, 26) = 1 表示 a 和26是互质(互素)的, a的-1次在这里表示a的逆元,即 

【例1】设仿射变换的加解密分别是:


对 "sec" 加密,对 "vlx" 解密:

                                                          s = 18,  7 · 18 + 21 (mod 26)= 17,   s → r

                                                          e = 4, · 4 + 21 (mod 26)= 23,   e → x

                                                          c = 2, · 2 + 21 (mod 26)= 9,   c → j

所以明文 "sec" 对应密文 “rxj”

                                                          

所以密文“vlx”对应明文“age”


2. 多表代换密码

多表代换密码首先将明文M分成由n个字母构成的分组M1,M2,...,Mj,对每个分组Mi的加密为:

其中(A,B)是秘钥,A是n×n的可逆矩阵,满足 gcd(|A|, N)=1 (|A| 是行列式)。

对密文分组Ci的解密为:


【例2】设 n=3, N=26, (大小写问题暂时忽略)


明文为 YOUR PIN NO,密文为WGI FGJ TMR,求对应的密文和明文。

【解】将明文按照3个字母分成一组为: YOU RPI NNO,由字母数字对应表得:


所以


查找数字字母表,可得密文为:WGI FGJ TMR

解密时,先求出A的逆


再求


得明文:YOU RPI NNO

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值