模运算基础
理解时钟算术,以及它为何是密码学的核心
模运算基础 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。
欢迎
模运算——有时也称为“时钟算术”——是 AES、RSA、Diffie-Hellman 以及几乎所有现代密码的数学基础。
什么是取模
a mod m 是 a 除以 m 所得的余数。17 mod 5 = 2(因为 17 = 3×5 + 2)。在 Python 中:17 % 5 == 2。
时钟算术直觉
在 12 小时制的时钟上,10 + 5 = 3(而不是 15)。这就是模 12 的算术。模运算会在模数处“绕回去”——这正是密码运算所需要的特性。
模加法与模减法
(a + b) mod m = ((a mod m) + (b mod m)) mod m
示例:(19 + 23) mod 7
= (5 + 2) mod 7 = 7 mod 7 = 0
模乘法
(a × b) mod m = ((a mod m) × (b mod m)) mod m
示例:(13 × 17) mod 11
= (2 × 6) mod 11 = 12 mod 11 = 1
模幂运算
RSA 使用 a^b mod m。对于较大的指数,我们使用平方-乘法算法:
2^10 mod 13:
2^2=4,4^2=16≡3,3^2=9,9×2^2=9×4=36≡10。
Python:pow(2, 10, 13) → 10
模逆元
a^(-1) mod m 是满足 a×x ≡ 1 (mod m) 的值 x。示例:3^(-1) mod 7 = 5,因为 3×5=15≡1 (mod 7)。它用于 RSA 和仿射密码的解密。
扩展欧几里得算法
扩展欧几里得算法可以高效地计算模逆元。Python:pow(3, -1, 7) == 5(Python 3.8 及更高版本支持 pow 中的负指数)。
费马小定理
如果 p 是质数:a^p ≡ a (mod p),因此 a^(p-1) ≡ 1 (mod p)。
这意味着 a^(-1) ≡ a^(p-2) (mod p)。
它用于 RSA 密钥生成和素性测试。
中国剩余定理(CRT)
CRT 可以求解同余方程组。RSA 解密使用 CRT,通过分别对 p 和 q 进行模运算来加快计算,然后再合并结果。
AES 中的模运算
AES 在 GF(2^8) 中运行——这是一个伽罗瓦域,其中加法是 XOR,乘法则使用模不可约多项式的多项式运算。AES 中的所有算术运算都是模运算。
快速检查
在 Python 中,pow(2, 10, 7) 的结果是多少?
回顾
您已经掌握了模运算!接下来,我们将学习质数——了解它们为何特殊,以及质因数分解为何构成 RSA 安全性的基础。
常见问题解答
「模运算基础」课时是免费的吗?
是的 — 「模运算基础」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。
「模运算基础」这节课中我会学到什么?
理解时钟算术,以及它为何是密码学的核心 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cryptology Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「模运算基础」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cryptology Academy 课中编写并运行代码吗?
能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。