仿射密码(Affine cipher)加密过程:
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个字母为例),如:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
2)找到的明文字母的整数值后,对这些值执行计算,在此例中,所需的计算为(5x + 8);
3)最后,我们必须确保所有答案均在mod 26中计算,并将整数转换回密文字母。
最后,得到的密文是“IHHWVC SWFRCP”。
仿射密码(Affine cipher)解密过程,使用解密F(x) = a-1(x - b) (mod m)进行计算,即可得到对应的解密后的原文。
仿射密码仍为单字母表密码, 其依旧保留了该类别加密之弱处,当a=1,仿射加密为凯撒密码,因该加密方程可简化为线性移动。