1. 核心定义

离散对数是实数对数在模运算环境下的推广。建立离散对数的前提是模 必须存在原根

  • 定义:设 是模 的一个 原根,对于任意与 互素的整数 (即 ),满足以下同余式的唯一整数 称为以 为底 离散对数(或指标,Index)。
  • 记号:通常记为

2. 运算性质 (算术规则)

离散对数完美继承了普通对数“将乘法变加法”的特性,但要注意运算是在 的加法群中进行的。

  1. 特殊值
  2. 乘积变和
  3. 幂次变乘积
  4. 换底公式:若 也是原根,则

注意

指数形式 mod(),对数形式 mod()

进行变形时,需要注意 mod 的增根、少根,代回验证。

3. 重要关联:指数与离散对数

元素 指数(Order,即阶)可以通过其离散对数直接计算: 意义:这告诉我们,一个元素的阶取决于它的离散对数与群阶 的最大公约数。

类比

想象一个圆形跑道,全长 米。

  • 原根 :每次跳 1米。它需要跳 次才能回到起点(转一圈)。
  • 元素 :每次跳 就是离散对数)。

问题 需要跳多少次()才能回到起点?

  • 如果 每次跳的距离 能整除跑道长度 ,那么它只需要跳 次。
  • 如果 不能整除跑道长度,它可能需要多跑几圈才能恰好落在起点。
  • 公式含义 代表了 的步长 与跑道总长 的“公共节奏”。去除这个公共部分后,剩下的就是 需要跳的次数。

4. 离散对数问题 (DLP)

这是密码学关注的核心。

  • 正向计算(易):给定 ,计算 。这是模幂运算,使用“平方-乘”算法可以非常快地算出。
  • 逆向计算(难):给定 ,求 使得 。这就是 离散对数问题 (Discrete Logarithm Problem, DLP)
    • 是大素数时,目前没有已知的高效多项式时间算法能解出

5. 典型应用

利用 DLP 的困难性构建的密码体制:

  1. Diffie-Hellman 密钥交换:允许双方在公开信道协商出共享密钥 ,攻击者截获 无法推算出
  2. ElGamal 加密/签名:安全性直接依赖于在有限域上求解离散对数的难度。
  3. DSA (Digital Signature Algorithm):美国国家标准数字签名算法,基于 DLP 变体。

计算示例

模数 ,原根选 )。

  1. 建立表(部分)
  2. 利用性质计算:求 。 已知
    • (威尔逊定理/原根性质)。
    • 我们需要知道 。假设已知 (因为 )。
    • 验证:。正确。