仿射密码

努力让世间变得美好 / 2024-09-26 / 原文

一:仿射密码加密

仿射密码是一种单表代换密码
代换密码就是明文每个字符按一定顺序代换成另一个字符
在仿射密码中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=51+2(-2)
=51+(71+5(-1) )(-2)
=53+7(-2)
=(261+7(-3) )3+7(-2)
=263+7(-11)
求得x=3,y=-11

7在模26下的逆元为-11,因为要得到0到25之间的正整数,因此计算-11 (mod 26) = 26-11 = 15

image

三:仿射密码解密

仿射密码解密的式子是

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

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

image