研究生

研究生离散数学密码学


RSA 和椭圆曲线密码学


编码和加密是现代数字通信的核心。两种最为人知的安全通信方法,RSA 和椭圆曲线密码学(ECC),都是基于离散数学的原理。本文将深入探讨这些加密系统,并帮助澄清我们如何使用数学原理来加密数据,从而保护数据不被窥探。

RSA 密码学

RSA 以其开发者 Ron Rivest、Adi Shamir 和 Leonard Adleman 的名字命名,他们于 1977 年引入这种加密方法。它是一种公钥密码学,使用两个密钥——用于加密的公钥和用于解密的私钥。

RSA 的基本原理

RSA 的安全性取决于分解大整数的难度。其工作流程如下:

  1. 密钥创建:
    • 选择两个不同的质数 pq
    • 计算 n = p * q。数 n 用作公钥和私钥的模数。其长度,通常用位来表示,即为密钥的长度。
    • 计算 φ(n) = (p-1)(q-1)
    • 选择一个整数 e,使得 1 < e < φ(n) 并且 gcd(e, φ(n)) = 1。数 e 是公用指数。
    • 定义 dd ≡ e -1 (mod φ(n)),意味着 deφ(n) 的模逆。
    公钥为 (e, n),私钥为 (d, n)
  2. 加密:
    • 消息 M 使用接收者的公钥加密: C ≡ M e (mod n),其中 C 是密文。
  3. 解密:
    • 密文 C 使用私钥解密: M ≡ C d (mod n),返回原始消息 M

示例

假设我们选择质数 p = 61q = 53,则 n = 61 * 53 = 3233

总共为 φ(n) = (61-1)(53-1) = 3120

选择 e = 17,它与 3120 互质。

为找到 d,扩展欧几里得算法给出 d = 2753

加密消息

M = 65 加密消息 C

C = 65 17 mod 3233

使用快速指数运算,我们得到 C = 2790

解密消息

要检索 M

M = 2790 2753 mod 3233

再次使用高效计算返回到 M = 65

RSA 的安全性

RSA 的强度在于模数 n 的大小。值越大,将 n 分为其质数组件 pq 的难度就越大,这种计算困难确保了私钥的安全性。此外,选择足够大的指数 e 在增强 RSA 对抗特定类型攻击的能力上也发挥了作用。

椭圆曲线密码学 (ECC)

椭圆曲线密码学是一种现代密码学方法。它利用有限域上椭圆曲线的特性。ECC 因其效率而备受赞誉,提供了与 RSA 等同的安全性,但密钥尺寸要小得多。

理解椭圆曲线

椭圆曲线由以下方程定义:

y 2 = x 3 + ax + b

出于密码学目的,我们关注有限域上的椭圆曲线,特别是素数阶的域。

y 2 = x 3 + ax + b 在有限域上

考虑有限域 F p,其中 p 是素数。则椭圆曲线由满足曲线方程的点 (x, y) 组成,包括一个无限远的特殊点,记为 O

椭圆曲线上的点运算

椭圆曲线上的运算由点加法和标量乘法的规则支配。这些运算在有限域的模算术下进行。

加法

给定两点 P = (x 1, y 1)Q = (x 2, y 2),它们的和 R = P + Q = (x 3, y 3) 计算如下:

  • 如果 P ≠ Q,则使用:
    λ = (y 2 - y 1) / (x 2 - x 1) mod px 3 = λ 2 - x 1 - x 2 mod py 3 = λ(x 1 - x 3) - y 1 mod p
  • 如果 P = Q,则使用:
    λ = (3x 1 2 + a) / 2y 1 mod px 3 = λ 2 - 2x 1 mod py 3 = λ(x 1 - x 3) - y 1 mod p

标量乘法

此运算在 ECC 中很重要。如果 k 是一个标量而 P 是曲线上的一点,则 kP 是通过将 P 自身相加 k 次得到的结果。

ECC 密钥生成

ECC 使用标量乘法生成密钥。以下是一个生成椭圆曲线密钥对的简单纲要:

  1. 选择一个素数 p 和参数 ab 来定义曲线。
  2. 选择曲线中的基点 G
  3. 选择一个随机整数 d 作为私钥。
  4. 计算 Q = dG,其中 Q 是公钥。

ECC 公钥生成的一个示例

考虑一个椭圆曲线在 F p 中,其中 p = 17a = 2b = 2。我们选择 G = (5,1)

假设 d = 7,然后我们计算:

Q = 7G = G + G + G + G + G + G + G

通过重复添加点,我们得到 Q

ECC 的安全性

ECC 的安全性基于椭圆曲线离散对数问题(ECDLP)。给定两点 PkP,确定 k 在计算上是不可能的。这与 RSA 中的分解大质数问题类似。

RSA 和 ECC 之间的比较

虽然 RSA 和 ECC 在加密、签名和验证数据方面的用途相同,但它们通过不同的数学原理实现。以下是一些主要差异:

  • 密钥大小: ECC 提供的每比特强度比 RSA 大,这意味着同等安全水平下密钥更小。
  • 性能: 在计算成本方面,ECC 可以更为高效,尤其是在移动设备和资源受限环境中。
  • 长期性: 由于 RSA 在未来需要更大密钥以维护安全性,ECC 是长期密码安全的更有前途候选者。

视觉表示

考虑这些原理在椭圆曲线的图形表示中是如何工作的。

Hey

在此示例中,蓝色曲线表示椭圆曲线,而标记为 O 的点表示无穷远点,这是椭圆曲线算术中的一个重要概念。

RSA 和 ECC 都是基于离散数学的重要加密成就。RSA 在很大程度上依赖于整数分解,而 ECC 则依赖于椭圆曲线的几何性质。它们共同为在数字化时代保障数据提供了强有力的解决方案,各自具有独特的优势和应用。


研究生 → 10.3.3


U
username
0%
完成于 研究生


评论