所谓的 离散对数问题(Discrete Logarithm Problem, DLP) ,亦被称为 离散对数假设(Discrete Logarithm Assumption) 是密码学中最重要的假设。

设 $\Bbb{G}$ 是一个 $r$ 阶有限循环群,且生成元为 $g$ 。已知存在指数映射 $g^{(\cdot)}: \Z_r \to \Bbb{G} ; x\mapsto g^x$ ,该映射将 模 r 算术中的剩余类 1 : 1 的映射到对应的群中。离散对数问题的任务就是找到该映射的逆,即对于给定的 $h,g \in \Bbb{G}$ ,可以找到解 $x \in \Z_r$ 满足等式:

$$ h = g^x$$

在某些群内, DLP 被假设为无法求解,但在另一些群内可以求解。我们称前者为 DL 安全群(DL-secure)

重述前定义,在 DL 安全群内,存在足够大的阶 $n$ ,使得对于给定的 $h$ 和 $g$ 无法对 $h = g^x$ 求解获得 $x$。此处的 $n$ 就是上文讨论的安全参数。

示例 43

DL 安全群应用最基础的示例之一是在公钥密码学中。参与公钥密码学的各方都认可 $(\Bbb{G}, g)$ ,其中 $\Bbb{G}$ 是一个具有合适阶数 $n$ 的有限群且满足 DL 安全群的定义, $g$ 是 $\Bbb{G}$ 的生成元。

在此设定中,密钥是某个数 $sk \in \Z_r$ ,对应的公钥 $pk$ 是一个群元素 $pk = g^{sk}$。因为离散对数算法被假定为无法执行,所以攻击者无法通过公钥计算出对应的私钥,因为求解私钥涉及以下方程的解:

$$pk = g^x$$

如示例 43 所述,识别 DL 安全群是一个重要的实际问题。不幸的是,假设所有的有限循环群中的离散对数计算都是困难的是没有意义的,我们可以很容易通过反例推翻这一假设。