0Pricing
Cryptology Academy · 课时

RSA 加密与解密数学

应用模幂运算加密和解密消息

RSA 加密与解密数学 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。

欢迎

生成 RSA 密钥后,现在开始使用它们。加密和解密都是模幂运算——计算起来很简单,但没有私钥就无法实际逆向。

教科书式 RSA 加密

将消息 M(作为整数)使用公钥 (e, n) 加密: C = M^e mod n 示例:M=42,e=17,n=3233 C = 42^17 mod 3233 Python: C = pow(42, 17, 3233) = 2557

教科书式 RSA 解密

使用私钥 (d, n) 解密密文 C: M = C^d mod n C=2557,d=2753,n=3233 M = 2557^2753 mod 3233 Python: M = pow(2557, 2753, 3233) = 42 ✓

为什么可行:欧拉定理

C^d mod n = (M^e)^d mod n = M^(ed) mod n。 由于 ed ≡ 1 (mod φ(n)),M^(ed) = M^(1+k×φ(n)) = M × (M^φ(n))^k ≡ M × 1^k = M。

平方-乘算法

直接计算 M^e 需要进行 e 次乘法。平方-乘算法将其减少到 O(log e) 次乘法: Python 中的 pow(base, exp, mod) 会自动使用该算法。

消息长度限制

教科书式 RSA 要求 M < n。对于 RSA-2048,M 最大为 256 字节。这足以加密较短的 AES 密钥,但不适合直接加密大文件。

为什么教科书式 RSA 不安全

原始 RSA 存在以下问题: 1. 相同的 M 始终得到相同的 C(确定性) 2. 当 M 较小且 e 较小时:C = M^e 就是字面上的结果(不会发生模约简) 3. 具有乘法性:Enc(M1)×Enc(M2) = Enc(M1×M2) 填充方案可以解决所有这些问题。

在 Python 中使用 RSA 加密(OAEP)

from cryptography.hazmat.primitives.asymmetric import padding from cryptography.hazmat.primitives import hashes ciphertext = public_key.encrypt( b'Secret message', padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ) )

在 Python 中使用 RSA 解密

plaintext = private_key.decrypt( ciphertext, padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ) ) print(plaintext) # b'Secret message'

RSA + AES 混合模式

# Real-world pattern: aes_key = os.urandom(32) # Random 256-bit AES key encrypted_key = rsa_encrypt(aes_key, recipient_pub) # RSA ciphertext = aes_gcm_encrypt(aes_key, plaintext) # AES # Send: encrypted_key + ciphertext

RSA 性能数据

RSA-2048 公钥加密速度约为 0.1 毫秒。RSA-2048 私钥解密速度约为 1 毫秒。AES-256-GCM 的速度约为 100 MB/s。混合加密结合了 RSA 密钥交换的速度和 AES 的数据吞吐量。

快速检查

使用教科书式 RSA,e=3、n=33 时,M=5 的加密结果是什么?

回顾

RSA 加密和解密的数学原理已经清晰了。接下来,我们将了解 RSA 如何在现实世界中保护 HTTPS、SSH 和代码签名。

常见问题解答

「RSA 加密与解密数学」课时是免费的吗?

是的 — 「RSA 加密与解密数学」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。

「RSA 加密与解密数学」这节课中我会学到什么?

应用模幂运算加密和解密消息 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cryptology Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「RSA 加密与解密数学」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cryptology Academy 课中编写并运行代码吗?

能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 公钥密码学概念
  2. RSA 密钥生成步骤详解
  3. RSA 加密与解密数学
  4. RSA 的现实应用场景与密钥长度
← 返回 Cryptology Academy