古典密码-仿射密码
一:仿射密码加密
仿射密码是一种单表代换密码
代换密码就是明文每个字符按一定顺序代换成另一个字符
在仿射密码中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
三:仿射密码解密
仿射密码解密的式子是
乘的改成逆元 加的改成减