仿射密码
仿射密码是一种替换密码。它是一个字母对一个字母的。
加密函数
$e(x)=ax+b{\pmod {m}}$
其中 $a$ 和 $m$ 互质,$m$ 是字母的数目。
- 解密函数
$d(x)=a^{-1}(x-b){\pmod {m}}$
其中 $a^{-1}$ 是 $a$ 在 $ \mathbb {Z} _{m}$ 群的乘法逆元。
仿射密码为单表加密的一种,字母系统中所有字母都由简单数学方程加密,对应至数值,或转回字母。 其仍有所有替代密码之弱处。所有字母皆借由方程 $(ax+b)\pmod {26}$ 加密,$b$ 为移动大小。
当 $a=1$,仿射加密为凯撒密码,因该加密方程可简化为线性移动。
代码
1 | # 仿射密码对应字母表 |
1 | import gmpy2 |