仿射密码
1.简介
仿射密码是一种单字母替换密码的特例。
该密码不如简单替换密码安全,因为它不仅容易受到针对替代密码的所有攻击方法,而且还存在其他缺点。其主要缺点来自以下方面:如果密码分析者可以发现(通过频率分析,暴力破解,猜测或其他方式)两个密文字符对应的明文,则可以通过联立方程组来求解密钥。
2.数学描述
仿射密码的"密钥"由2个数字组成,我们将其称为a和b。以下讨论假定使用26个字符的字母(m = 26)。a应该选择为相对于m素数(即a应该没有与m相同的公因数<除1以外>)。例如15和26没有公因数(除1以外),因此15是可以用来加密的值,然而12和26具有相同公因数(例如2),这样12不能被用于加密。加密时,我们首先将所有字母转换为数字(‘a’= 0,‘b’= 1,…,‘z’= 25)。
对于密文c,给定任意的p(p是代表字母的数字),有:
c = ap + b (mod m) 1<=a<=m, 1<=b<=m;
解密的公式为:
其中a-1是a的乘法逆元,为了找到a的乘法逆元,我们需要假定数字x满足:</