古典密码-仿射密码
一:仿射密码加密
仿射密码是一种单表代换密码
代换密码就是明文每个字符按一定顺序代换成另一个字符
在仿射密码中26个小写英文字母分别对应(0,1,2,… ,25)
例子:将明文security按照以下方式加密
c代表密文,m代表明文
将每个字符的值作为m 带入公式7m+21 模26
二:欧几里得求逆元
仿射密码解密需要求出7在模26的逆元
列出方程26x+7y=1
将26写成7 * n+余数的形式
26=7 * 3+5
再从7开头,写成上一个式子余数 * m+余数的形式
7=5 * 1+2
一直写直到余数为1
5=2 * 2+1
再倒回去写
1=5 * 1+2 * (-2)
=5 * 1+(7 * 1+5 * (-1) ) * (-2) ///将2按上面的式子扩写
=5 * 3+7 * (-2) ///合并
=(26 * 1+7 * (-3) ) * 3+7 * (-2) ///将5按上面的式子扩写
=26 * 3+7 * (-11)////合并成26 * 一个数和7 * 一个数的格式
求得x=3,y=-11
7在模26下的逆元为-11,因为要得到0到25之间的正整数,因此计算-11 (mod 26) = 26-11 = 15
三:仿射密码解密
仿射密码解密的式子是
乘的改成逆元 加的改成减
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 从 Windows Forms 到微服务的经验教训
· 李飞飞的50美金比肩DeepSeek把CEO忽悠瘸了,倒霉的却是程序员
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee