仿射加密
仿射加密就像把字母表上的每个字母,通过 “乘以一个数” 再加 “一个常数” 映射成另一个字母
这样加密后的字母和原字母呈线性关系,所以叫 “仿射”
加密原理
把英文字母 a~z 对应成数字 0~25
设:
x= 明文字母对应的数字y= 密文字母对应的数字
仿射加密的数学形式就是:
1 | y = (a * x + b) mod 26 |
其中 a 和 b 是密钥,必须满足:
a与 26 互质(gcd(a,26)=1),否则不同明文字母可能加密成同一密文b是 0~25 之间的整数
解密原理
解密就是要从 y 求出 x
1 | a*x = y - b (mod 26) |
两边乘以 a 的模逆 a^{-1}(满足 a * a^{-1} ≡ 1 mod 26)
1 | x = a^{-1} * (y - b) mod 26 |