古典密码-仿射密码

一:仿射密码加密

仿射密码是一种单表代换密码
代换密码就是明文每个字符按一定顺序代换成另一个字符
在仿射密码中26个小写英文字母分别对应(0,1,2,… ,25)
image

例子:将明文security按照以下方式加密

c代表密文,m代表明文
image

将每个字符的值作为m 带入公式7m+21 模26

image

二:欧几里得求逆元

仿射密码解密需要求出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

image

三:仿射密码解密

仿射密码解密的式子是

乘的改成逆元 加的改成减
image

将密文vlxijh按照上面的式子解密可得

image

posted on 2024-09-25 19:55  纤秾  阅读(140)  评论(0编辑  收藏  举报