简述古典密码算法

我简单的说一下两种古典密码算法,置换密码算法和代替密码算法。

置换密码

置换密码对明文字符或字符组进行位置移动的密码,明文的字母保持相同,但顺序被打乱了。例如:明文是student,奇数位置的字母为suet,偶数位置的字母为tdn,奇书位置的字母放前面偶数位置的字母放后面,重新组合后的密文为suettdn。

代替密码

代替密码构造一个或多个密文字母表,然后用密文字母表中的字母或者字母组来代替明文字母或字母组,各字母或字母组的相对位置不变,但其本身的值改变了。
代替密码分为单表代替密码多表代替密码
代替密码算法针对英文字母进行处理。首先将26个字母与十进制数字中的0-25一一对应,而这里的数的加法和乘法都定义为模26的加法和乘法。
单表代替密码——加法密码
明文:x,密文:y,密钥:k,加密:y=x+k(mod26),解密:x=y-k(mod26)
凯撒密码就是一种加密密码
单表代替密码——乘法密码
明文:x,密文:y,密钥:k,加密:y=kx(mod26),解密:x=(k^-1)y(mod26),其中条件为(k,26)=1。关键在于计算k的逆,方法是用欧几里得算法。
单表代替密码——仿射密码
明文:x,密文:y,密钥:a,b,加密:y=ax+b(mod26),解密:x=(a^-1)(y-b)(mod26),其中条件为(a,26)=1。
仿射密码是加法密码与乘法密码的结合。
多表代替密码
多表代替密码首先将明文M分为由n个字母构成的分组M1,M2,……,Mj,对每个分组Mi的加密为:Ci=AMi+B(modN),i=1,2,……,j,其中A,B是密钥,A是nxn的可逆矩阵,满足gcd(|A|,N)=1(|A|是行列式),B=(B1,B2,……,Bn)^T,C=(C1,C2,……,Cn)的行列式T,Mi=(m1,m2,……,mn)的行列式T。对密文分组Ci的解密为:Mi=(A的-1逆)*(Ci-b)(modN),i=1,2,……,j。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值