首页 > 编程知识 正文

仿射密码解密Affine Cipher,仿射密码加解密例题

时间:2023-05-06 07:22:19 阅读:186235 作者:2765

仿射密码是表单替换密码,它通过简单的数学函数将对应于每个字母的值与数值相对应,并将对应的数值转换为字符。

abcdefghijklmnopqrstuvwxyz 012345678910112131415161718192021232425加密函数: E (x) = (ax + b) (mod m)其中a和b互为质量

解码函数:D(x) =(x - b) (mod m),其中a是组的乘法逆元。

介绍乘法的逆元是什么。 emmmmmm,好啊。 我也不能。 我不知道。

这是使用网络上冷静的捉襟见肘算法求解乘法逆元——Python的代码。 ()我是个勤奋的搬运工。 请不要自夸^_^ )

#顺利的月饼算法是最大公约数defget_gcd(a,b ) : k=a//bremainder=a % bwhileremainder!=0: a=bb=remainder k=a//bremainder=a % breturnb #改进冷静草莓算法求解线性方程组的x和ydef get_(a, b ) : if b==0:求return10 else : k=a//bremainder=a % bx1,y1=get_(b,remainder ) x,y=y1,x1-k ya=input(a: ) (a3:k ) ) ) a int(b ) )保存初始b的绝对值的if b 0:m=abs(b ) else : m=bflag=get _ gcc b ) )判断最大公约数是否为1,否则逆矩阵if flag==1:x,y b ) x0=x%m )为Python '% '的模运算,因此' m'print ('求得的逆例如,对模型26乘法逆元求5

举以下例子,解开仿射密码(搬运工在线.) :

以e(x )=) 5x8) mod 26函数为例。 加密字符串是AFFINECIPHER,这里直接采用26个字母作为编码系统

密文是IHHWVCSWFRCP。

解密过程:

首先,对模型26乘法逆元求解5,21解码函数在d(x )=21 ) x-8 ) mod 26解码中为下式

以下是关于要求仿射密码的python3脚本。 (我自己写的,如果错了请指出来。 )

#仿射解密#改进冷静草莓算法求解线性方程组x和ydefget(a,b ) : IFB==0: return 1,0 else : k=a//bremainder=a % bx1,yyye ret ) ) b x1 - k * y1 return x, ys=input ('请输入解密字符: '.upper ) (a=int ) ) a:(请输入' ) (b=int ) ) input ) ) 26

这是我第一次写博客,有什么错误的欢迎指正! 谢谢你。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。