Cryptology Academy · 课时

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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 凯撒密码机制
  2. Atbash 与仿射密码
  3. 维吉尼亚密码与多表密码
  4. 频率分析与密码分析基础
← 返回 Cryptology Academy