📐 仿射密码
使用自定义a、b密钥的仿射密码加密解密文本。E(x) = (a*x + b) mod 26。
关于仿射密码
仿射密码是一种单表替换密码,结合了乘法和加法。每个字母通过函数 E(x) = (a*x + b) mod 26 进行映射,其中 x 是字母位置(A=0, B=1, ..., Z=25)。解密使用 a 的模逆元:D(x) = a⁻¹ * (x - b) mod 26。本工具完全在浏览器中运行——不会上传任何数据。
工作原理
- 加密 —— 将每个字母转换为数字(A=0...Z=25),计算 (a*x + b) mod 26,再转回字母。
- 解密 —— 计算 a⁻¹ * (x - b) mod 26,其中 a⁻¹ 是 a 模 26 的模逆元。
- 密钥 a 必须与 26 互质(即不能被 2 或 13 整除)。合法取值:1、3、5、7、9、11、15、17、19、21、23、25。
- 密钥 b 可以是 0 到 25 之间的任意整数。
- 保留字母大小写;非字母字符保持不变。
使用场景
- 讲解密码学中的模运算和模逆元。
- 演示单表替换密码如何依赖双射映射。
- 制作带数学味道的谜题和教育挑战。
- 探讨仿射密码为何仍可被频率分析攻破。
常见问题
为什么 a 必须与 26 互质? 如果 a 与 26 有公因子,映射不再一一对应,解密将无法完成。合法取值为 1、3、5、7、9、11、15、17、19、21、23、25。
仿射密码安全吗? 不安全。总共只有 12 × 26 = 312 种密钥,极易暴力破解,且仍可被频率分析攻破。
什么是模逆元? a 模 26 的模逆元是满足 (a × a⁻¹) mod 26 = 1 的数 a⁻¹。例如 5 模 26 的逆元是 21,因为 5 × 21 = 105 = 4 × 26 + 1。
这个工具会上传我的文本吗? 不会。所有加密解密都在本地浏览器中完成。