Lambert Lin林

基于传统数论的公钥密码学和格理论的引入

加密 · · 阅读 6 分钟

Intro

「公钥密码学」,又称为「非对称密码学」,使用两个不同的金钥:一个公钥和一个私钥。公钥用于加密讯息,私钥用于解密讯息。公钥是公开的,而私钥则需保密。其主要应用包括:加密/解密(确保保密性)、数位签章(提供身份验证)、金钥交换(用于会话金钥)。

PS: 密码学的关键在于达到四个核心要素:保密性(Confidentiality)、资料完整性(Data Integrity)、身份验证(Authentication)以及不可否认性(Non-repudiation)。

公钥密码学

与之相对的“对称密码学”中,加密和解密讯息则使用相同的密钥。

核心构造:陷门单向函数

在“公钥密码学”中,加密讯息的公钥是公开的,而我们需要设计一种结构,使得讯息解谜对持有私钥的人是简单的,而对没有私钥的人是极其困难——不可解的。

这里的核心思想也就是构造一个Trapdoor One Way Function 陷门单向函数,即:

Trapdoor One Way Function 陷门单向函数

  1. 单向性(One-way):函数 f(x) = y 在正向计算非常容易,但给定 y 想要找到 x 使得 f(x) = y 在计算上是困难的。
  2. 陷门(Trapdoor):存在一个特殊的秘密信息(陷门),如果知道这个秘密,就能够高效地计算反向函数,即从 y 求出 x。

传统数论的两类陷门单向函数

1. 大质数分解问题 Factorization of two primes

Given P, Q are two primes and N = P*Q
It is easy to compute N
However given N it is difficult to factorize into P and Q

用于RSA加密体系

2. 离散对数问题 Discrete Log Problem

Consider b and g are elements in a finite group and bk=g, for some k
Given b and k it is easy to compute g
Given b and g it is difficult to determine k

用于Diffie-Hellman加密体系以及变体ECC椭圆曲线加密体系

RSA Cryptosystem

基于大质数分解问题,RSA系统包含以下步骤:

密钥生成步骤:

  1. 选择两个不同的大质数 p, q
  2. 计算模数 n = p × q
  3. 计算欧拉函数值 φ(n) = (p - 1)(q - 1)
  4. 选择公钥指数 b,要求 1 < b < φ(n) 且 gcd(b, φ(n)) = 1
  5. 计算私钥指数 a ≡ b⁻¹ mod φ(n)

结果得到: 公钥 pk = (n, b) 私钥 sk = (p, q, a)

这里的欧拉函数 φ(n) 用于计算在 1 到 n 之间与 n 互质的数的个数。

加密和解密过程:

RSA加密

RSA解密

Elgamal Cryptosystem

基于离散对数DLP问题。它的安全性依赖于有限群中计算离散对数的困难性。

  • 公钥:由群元素 g、私钥 x 和 h = gˣ 组成
  • 加密:选择随机数 y,将消息 m 加密为 (c₁, c₂) = (gʸ, m·hʸ)
  • 解密:利用私钥 x 计算 m = c₂/c₁ˣ

ElGamal体系

Elliptic Curve Cryptography (ECC)

属于DLP离散对数问题的变体。

椭圆曲线的定义(模运算)

椭圆曲线

解集构成阿贝儿群(Abelian group)

解集

Elliptic Curve Discrete Logarithm Problem (ECDLP)

给定:椭圆曲线 E,基点 P,目标点 Q = kP 求解:整数 k,使得 Q = kP

EC ElGamal体系

为什么在 ECC 中使用有限域?

在实际的密码系统中,我们选择在有限域(Finite Field)上定义椭圆曲线,而不是在实数域上,因为

  • 计算精确性:有限域使用精确的整数运算,避免实数域的计算误差。
  • 存储效率:元素可用固定长度比特串表示,提高计算效率。
  • 安全性:有限域使离散对数问题更难解决,避免实数域连续性带来的安全隐患。
  • 运算效率:加法、乘法等运算快速,适合实际应用。

通常使用的有限域包括:

  • 素数域 GF(p):其中 p 是一个大质数
  • 二元扩展域 GF(2ⁿ):特别适用于硬件实现

基于传统数论的公钥密码学的局限

  • 量子威胁:Shor量子算法可在多项式时间内破解传统数论难题
  • 密钥增长:为提升安全强度需要指数级别的密钥增长,影响效率
  • 结构单一:主要依赖于少数几个数论问题(质因数分解、离散对数)
  • 理论瓶颈:缺乏新的可靠数学难题作为密码学基础

传统数论问题的复杂性

  • 大质数分解问题 (Integer Factorization):尚未被证明为 NP 完全问题。在经典计算机上,最佳算法具有次指数时间复杂度,但使用 Shor 量子算法可在多项式时间内解决。
  • 离散对数问题 (DLP):虽非 NP 完全问题,但被视为计算上的困难问题。在经典计算机上需要次指数时间,但同样可被 Shor 量子算法在多项式时间内解决。
  • 椭圆曲线离散对数问题 (ECDLP):较一般离散对数问题更为困难,目前最佳算法仍需指数时间复杂度。然而,此问题同样易受量子计算威胁。

格理论的引入

格的定义

格理论问题的复杂性与应用

  • 最短向量问题 (SVP):在格中寻找最短的非零向量,已被证明在某些范数下是 NP-hard 问题,其近似版本同样保持困难性。
  • 最近向量问题 (CVP):在给定目标点时寻找最近的格点,这是一个 NP-hard 问题,常用作解密算法的基础。
  • 学习带误差问题 (LWE):解决线性方程组 As + e = b (mod q),其中已知 A 和 b 求解 s。此问题具有平均情况困难性,且基于最坏情况的格问题,表现出优异的量子抗性。
  • 短整数解问题 (SIS):给定随机矩阵 A,寻找短向量 x 使得 Ax = 0 (mod q)。此问题与 LWE 相对偶,同样具有优异的量子抗性和平均情况困难性。

格理论的优势

相比传统数论,格理论中的平均情况难度可归约到最坏情况,提供更强的安全保证。这与传统密码学中平均情况归约到特殊情况的方式形成鲜明对比。同时,格理论提供了丰富的难题(如SVP、CVP、LWE、SIS等),使得密码方案设计更加灵活多样。