1.1仿射密码

a)简介
仿射密码为单表加密的一种,字母系统中所有字母都由一简单数学方程加密,对应至数值,或转回字母。
b)算法流程
选取k1,k2两个参数,其中gcd(k1,26)=1
加密:C= k1m+k2 mod 26
解密:m= (C-k2)
〖k1〗^(-1) mod 26
c)算法实现
加密:
在这里插入图片描述
图1.1.1 仿射密码加密
求逆元:
在这里插入图片描述

图1.1.2 求逆元

解密:
在这里插入图片描述
图1.1.3 仿射密码解密
d)算法验证
选取课件上的例子:
在这里插入图片描述

图1.1.4 仿射密码样例
验证:
在这里插入图片描述

图1.1.5 仿射密码验证
e)算法破解
单表代替算法用统计分析法破解:
1)统计各个字母出现的频率
2)根据英文字母频率分析表猜测相应的字母对,从而得出参数值
3)用得出的参数进行破解并验证

f)算法分析
密钥空间为12*26-1=311,暴力破解可成功。
单表代替密码的密文存在明显的统计规律,容易受到频率统计分析攻击。
g)选择工具原因
选择工具:C++
原理:这是我使用最多也是最顺手的工具。
效率快。
细节实现清楚,便于加深我对算法的理解。
h)实现难点
算法简单,无难点。唯一可能有的求逆操作,由于空间小,可直接暴力解决。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值