密码学—仿射密码Python程序

文章详细介绍了仿射密码的加密和解密过程,这是一种古典的单表加密方法。加密使用了仿射密码公式c=m×k+bmod26,其中k和b需互素。解密部分涉及裴蜀等式和欧几里德算法来求解逆元,以恢复原始信息。示例代码展示了如何对给定的密文进行解密,得到明文。

仿射密码

古典密码,且属于单表加密。

加密算法

  • 仿射密码公式
    c = m×k + b mod 26

    • c是密文,m是明文,m作为26字母中的明文,因此计算出来的密文要模26
    • 仿射密码是对单个字母加密,因此加密文本的时候会采用循环加密
  • k
    k在放射密码中作为乘数

    • k要与b要互素
    • 因为k要做乘数,所以必须要和26互素,否则加密失败
  • b
    b在放射密码中作为加数

    • b要与k互素
key_k = 9
key_b = 7
cipher = [] #存放对应的密文数字
p = 26 
mess = 'abc'
for ch in mess:  # 首先将所有信息转化为大写字母, 非字母的不进入存储
    if ord('A') <= ord(ch) <= ord('Z') \
    or ord('a') <= ord(ch) <= ord('z'):
        temp_num = (
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹等寒

谢过道友支持,在下就却之不恭了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值