Atbash 与仿射密码
探索希伯来 Atbash 密码和数学仿射密码
第 2 / 4 课13 个步骤
Atbash 与仿射密码 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。
欢迎
本课将学习阿特巴什密码(一种希伯来镜像密码)和仿射密码。仿射密码会对每个字母应用线性数学变换。
阿特巴什密码
阿特巴什密码将字母表镜像排列:A↔Z、B↔Y、C↔X、……它起源于希伯来经文(约公元前 600 年)。《耶利米书》中的“示沙克”一词,是用阿特巴什密码表示“巴别”的结果。
阿特巴什公式
对于包含 26 个字母的字母表:E(x) = 25 - x。因此 A(0)→Z(25),B(1)→Y(24)。同一个函数可以用于解密,因为它就是自己的逆函数。
阿特巴什 Python 实现
def atbash(text):
result = ''
for c in text.upper():
if c.isalpha():
result += chr(90 - (ord(c) - 65))
else:
result += c
return result
print(atbash('HELLO')) # SVOOL
仿射密码概念
仿射密码使用以下公式:E(x) = (a*x + b) mod 26。密钥是数对 (a, b)。凯撒密码是 a=1 时的特殊情况。
仿射密钥约束
乘数 'a' 必须与 26 互质(gcd(a,26)=1)。有效取值为:1、3、5、7、9、11、15、17、19、21、23、25。如果 gcd(a,26)≠1,就无法解密。
仿射解密
D(y) = a_inv * (y - b) mod 26,其中 a_inv 是 a 的模逆元。当 a=5 时:5*a_inv ≡ 1 (mod 26) → a_inv = 21。
仿射 Python 实现
from math import gcd
def affine_enc(x, a, b): return (a*x + b) % 26
def mod_inv(a, m):
for i in range(1, m):
if (a*i) % m == 1: return i
def affine_dec(y, a, b):
ai = mod_inv(a, 26)
return (ai * (y - b)) % 26
仿射密码的总密钥空间
'a' 有 12 个有效取值,'b' 有 26 个取值,因此共有 12×26 = 312 个可能的密钥。这个空间仍然小得不值一提,用暴力破解只需几微秒。
仿射密码与凯撒密码的安全性
仿射密码比凯撒密码更强(312 个密钥对 25 个密钥),但仍然容易受到频率分析攻击,因为每个明文字母始终会映射到同一个密文字母。
单表替换的局限性
任何使用固定替换字母表的密码都称为单表密码。所有这类密码都能通过频率分析破解。要提升安全性,我们需要多表密码。
快速检查
对于 a=5、b=8 的仿射密码,E(0)(即加密字母 A)是多少?
回顾
您已经掌握了阿特巴什密码和仿射密码。接下来,我们将学习维吉尼亚密码——这是超越单表替换的重要第一步。
免费开始
用 AI 导师学习 Cryptology Academy — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 67
- 课程
- 261
常见问题解答
「Atbash 与仿射密码」课时是免费的吗?
是的 — 「Atbash 与仿射密码」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。
「Atbash 与仿射密码」这节课中我会学到什么?
探索希伯来 Atbash 密码和数学仿射密码 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cryptology Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「Atbash 与仿射密码」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cryptology Academy 课中编写并运行代码吗?
能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 凯撒密码机制
- Atbash 与仿射密码
- 维吉尼亚密码与多表密码
- 频率分析与密码分析基础