在说起古典密码时,凯撒密码总是绕不开的话题,它是将明文与密钥相加,从而得到的密文,而我们今天要了解的仿射密码,则是将明文与密钥的一部分相乘,然后再加上密钥的另一部分,以此来实现加密。

仿射密码简介

仿射密码(Affine cipher)是一种表单替换密码,它通过对字母数值进行简单的乘法和加法方程运算,而得到另一个与其对应的字母,从而进行加密。

仿射加密函数:F(x) = (ax + b) (mod m),其中a和b互质,m是字母的数量;

仿射解密函数:F(x) = a-1(x - b) (mod m),其中a-1是a在Zm群的乘法逆元,m是字母的数量。

仿射密码

仿射密码的加密过程

  1. 将纯文本字母表中的每个字母转换为0到m -1范围内的相应整数;
  2. 对每个字母数值进行如下算式计算(其中a和b是密码的密钥):E(x)=(ax + b)mod m
  3. 即将纯文本字母的整数值乘以a,然后将b加到结果中,最后我们取模数m(也就是说,当解除以m时取余数,或者取掉字母的长度,直到得到小于该长度的数字)。

举个例子:

使用密钥a = 5,b = 8加密明文“AFFINE CIPHER”:

1、首先,我们必须找到明文字母表中每个字母的整数值(以字母表中的26个字母为例),如:

仿射密码

2、找到的明文字母的整数值后,对这些值执行计算,在此例中,所需的计算为(5x + 8);

3、最后,我们必须确保所有答案均在mod 26中计算,并将整数转换回密文字母。

最后,得到的密文是“IHHWVC SWFRCP”。

仿射密码的解密过程

仿射密码的解密过程于加密相反,使用解密F(x) = a-1(x - b) (mod m)进行计算,即可得到对应的解密后的原文。

仿射密码

仿射密码的优缺点

仿射密码的优缺点为同一点,那就是简单,当a=1,仿射加密为凯撒密码。它明文空间一般为26个英文字母,任意两个不同的字母加密或解密后对应不用的字母,相同的字母加密或解密后对应相同的字母,所有仿射密码可以使用频率分析法破解。

免责声明:素材源于网络,如有侵权,请联系删稿。