密码系统的差分 - 赫尔曼问题攻击分析
1. 攻击的总体策略
1.1 可逆情况
当交换子半群 $S$ 是一个群,即其所有元素都可逆时,对于给定的 $D$ 中的 $z$ 和 $S ⋄z ⋄S$ 中的 $z’$,$S × S$ 中的对 $[u, v]$ 是迪菲 - 赫尔曼分解问题的解,当且仅当 $z’ = u ⋄z ⋄v$,也就是 $u’ ⋄z’ = z ⋄v$(其中 $u’ = u^{-1}$)。
- 此时,形如二次方程的 $z’ = u⋄z⋄v$(未知量为 $(u, v)$)可直接转化为形如线性方程的 $u’ ⋄z’ = z ⋄v$(未知量为 $(u’ = u^{-1}, v)$)。
- 在辫群中,还有 $u’ = v$。将辫群元素用矩阵表示后,线性方程可转化为矩阵(在一个环上)的线性关系并求解。不过,这种攻击可能无法解决 DH 共轭问题。
- 同样的方法还可用于找到一个线性可逆变量变换,将两组在域上的二次多元方程映射起来。二次多元多项式可用上三角矩阵表示,当线性可逆坐标变换 $U$ 将二次多项式 $p$ 映射到多项式 $p’$ 时,可转化为矩阵恒等式 $P’ = U^tPU$。由于 $U$ 可逆,可通过求解线性方程 $VP’ - PU = 0$(未知量为 $(V = (U^t)^{-1}, U)$)来解决该问题。大致需要 3 组独立的 $(p, p’)$ 对(使用相同的 $U$)来直接解决此问题。更高次的情况也可从二次齐次部分的恒等式进行攻击。
1.2 攻击的设定
在本文中,考虑 $S$ 中的元素不可逆的情况,但破解迪菲 - 赫尔曼问题仍可转化为求解一个换位子型(类似线性)的方程。需要 $D$ 是一个具有可计算左(或右)最大公约数和可计算左(右)精确除法的域($S$ 是一个乘法交换子半群),这里的域指没有零因子,即 $u⋄v = 0 ⇒u$ 或 $v = 0$,且不一定是欧几里得环。
迪菲 - 赫尔曼问题是:给定 $z_A = u_A ⋄z ⋄v_A$ 和 $z_B = u_B ⋄z ⋄v_B$,计算 $z_{AB} = u_A ⋄z_B ⋄v_A = u_B ⋄z_A ⋄v_B$。
破解 DH 问题的一种充分方法是解决迪菲 - 赫尔曼协议中出现的分解问题:给定 $D$ 中的 $z$ 和 $S ⋄z ⋄S$ 中的 $z’$,计算 $S$ 中的 $u$ 和 $v$ 使得 $z’ = u ⋄z ⋄v$。不过,有研究指出,破解此问题的一个宽松变体就足以破解 DH 问题:给定 $D$ 中的 $z$ 和 $S ⋄z ⋄S$ 中的 $z’$,计算与 $S$ 中的元素可交换的 $u$ 和 $v$ 使得 $z’ = u ⋄z ⋄v$。
问题层次关系如下:
|问题关系|描述|
| ---- | ---- |
|$DH ≤ RelaxedDecomposition - DH$|破解宽松分解问题可破解 DH 问题|
|$RelaxedDecomposition - DH ≤ Decomposition - DH$|破解分解问题可破解宽松分解问题|
1.3 攻击过程
假设 $D$ 是一个域,其中两个元素的左(或右)最大公约数总是存在且可有效计算,左(或右)精确除法也可有效执行。攻击源于以下观察:$S⋄z⋄S$ 中的元素在左(或右)乘 $S$ 中的元素时会以特定方式变化。
- 设 $\lambda$ 是 $S$ 中的任意元素,则 $\lambda ⋄(u ⋄z ⋄v) = u ⋄\lambda ⋄z ⋄v$,所以 $z’ = u ⋄z ⋄v$ 和 $\lambda ⋄z’$ 的左最大公约数是 $u$ 的一个(非零)倍数。
- 设 $\lambda_1, \cdots, \lambda_s$ 是 $S$ 的生成元,计算 ${z’, \lambda_1 ⋄z’, \cdots, \lambda_s ⋄z’}$ 的左最大公约数 $g$。若 $g$ 等于 $u$,则使用左精确除法算法得到 $v$,分解问题破解。否则,设 $g = u ⋄a$,通过精确除法算法得到 $m$ 和 $m_i$($i = 1, \cdots, s$),满足:
$\begin{cases}
z’ = g ⋄m \
\lambda_i ⋄z’ = g ⋄m_i
\end{cases}$
由于 $D$ 中没有零因子,此方程组可改写为:
$\begin{cases}
z ⋄v - a ⋄m = 0 \
\lambda_i ⋄z ⋄v - a ⋄m_i = 0
\end{cases}$
得到关于未知量 $(v, a)$ 的一组类似线性的方程。由于相关解 $v$ 与 $S$ 可交换,还有额外的类似线性方程 $\lambda_i ⋄v - v ⋄\lambda_i$($i = 1, \cdots, s$)。
- 并非所有满足这些线性条件的解都是初始分解问题的解,因为从初始系统转换到线性系统时,会丢失 $z ⋄v$ 是 $z’$ 的右因子这一信息。
- 定义因子解为使得 $z ⋄v$ 是 $z’$ 的右因子的线性解 $(v, a)$。若线性系统可解,任取一个因子解 $(v’, a’)$,通过精确除法算法得到 $u’$ 使得 $z’ = u’ ⋄z ⋄v’$,可证明 $(u’, v’)$ 是与 $S$ 可交换且满足 $z’ = u’⋄z⋄v’$ 的一对元素,从而破解宽松分解问题。
- 攻击中唯一未证明的步骤是在解的线性空间中找到一个因子解,这部分可能只能通过启发式方法处理。需要了解解的线性空间的结构,有如下性质:
设 $\tilde{C}(z)$ 表示满足 $z ⋄c = c’ ⋄z$ 的对 $(c, c’)$ 的集合,对于线性方程 $z ⋄v - a ⋄m = 0$ 的任何解 $(v, a)$ 和 $\tilde{C}(z)$ 中的任何 $(c, c’)$,对 $(c ⋄v, c’ ⋄a)$ 也是解。该性质可推广到完整线性系统的解和左乘 $I = \tilde{C}(z) ∩_i \tilde{C}(\lambda_i ⋄z) ∩(·, \overline{S})$(其中 $\overline{S}$ 是与 $S$ 可交换的元素)。$I$ 是一个环,期望线性系统的解都可由一个单一生成元通过加法和左乘 $I$ 生成。
2. 应用于斜多项式密码系统
2.1 斜多项式
斜多项式是在有限域上具有特定非交换内积的多项式。设 $F_q$ 表示具有 $q$ 个元素的有限域,$p$ 是该域的特征。$F_q$ 的自同构是所谓的弗罗贝尼乌斯映射,即幂为 $p$ 的幂运算。设 $\theta$ 是这样的自同构,斜多项式的内积 $⋆$ 定义为:对于所有 $a \in F_q$,$X ⋆a = \theta(a)X$,斜多项式环有时记为 $F_q[X, \theta]$。
- 斜多项式环是左和右欧几里得域,有左和右欧几里得除法算法,可计算左和右最大公约数并进行精确除法。
- 由于内积的非交换性,斜多项式有多种因式分解,可能的因式分解数量的基数预计在多项式的次数上呈指数增长。
2.2 方案的生成
构建交换子集 $S$ 建议采用暴力方法。迭代构建一组小次数 $\delta$ 的生成元 $G_0, \cdots, G_s$,每次随机选取一个次数为 $\delta$ 的多项式,测试其是否与当前生成元集合可交换,若可交换则加入生成元集合,否则重复该过程。$S$ 是由这些生成元张成的交换代数。
设 $d$ 是协议的安全参数,生成一个次数为 $d$ 的公共多项式 $Z$。在迪菲 - 赫尔曼协议执行时,每个参与者通过 $S$ 的生成元组合选择 $S$ 中次数为 $d$ 的两个元素 $U$ 和 $V$。
提出的实例是在 $F_4$ 上的斜多项式,$S$ 的生成元次数 $\delta = 8$ 或 $9$,协议使用次数 $d = 600$ 的多项式。
2.3 斜多项式的交换性
存在一些特殊的斜多项式与任何其他斜多项式可交换,这个子集称为中心,记为 $C$。设 $m$ 是 $\theta$ 的阶,则中心多项式是 $F_p$ 上且仅含 $X^m$ 幂次的多项式,即 $C = F_p[X^m]$。
对于任何多项式 $P$,设 $C_P$ 表示与 $P$ 可交换的多项式集合。$P$ 与自身和中心元素可交换,所以 $C_P$ 包含由 $P$ 和 $C$ 生成的代数。若 $P$ 的所有系数都在 $F_p$ 中,则 $P$ 与所有系数在 $F_p$ 中的多项式可交换。
对于任何次数界 $r$,可通过求解线性系统 $P ⋆Q = Q ⋆P$($Q$ 是次数 $\leq r$ 的不定多项式)来计算 $C_P$ 中次数 $\leq r$ 的元素。实验表明,当随机选取次数约为 $\delta = 8$ 的 $P$(并非所有系数都在 $F_p$ 中)时,至少在次数 $r = 30$ 以内,$C_P$ 中的元素实际上都在 $C[P]$ 中,这意味着在密钥生成时通过暴力方法生成 $S$ 的生成元是没有意义的。
2.4 展开攻击
设 $Z’ = U ⋆Z ⋆V$ 是协议中一方传输的数据。
- 第一步,计算 $Z’$ 和所有 $S$ 的生成元 $\Lambda_i ⋆Z’$ 的最大公约数,由于这些生成元有一个公共生成元 $P_0$,实际上计算 $Z’$ 和 $P_0⋆Z’$ 的最大公约数,得到多项式 $G$,存在多项式 $A$ 使得 $G = U ⋆A$。
- 计算 $M$ 和 $M_0$ 使得:
$\begin{cases}
Z’ = G ⋆M \
P_0 ⋆Z’ = G ⋆M_0
\end{cases}$
由于环是一个域,可推出:
$\begin{cases}
Z ⋆V = A ⋆M \
P_0 ⋆Z ⋆V = A ⋆M_0
\end{cases}$
且因为 $V$ 与 $S$ 可交换,有 $P_0 ⋆V = V ⋆P_0$。这三个方程在 $F_q$ 上不是线性的,但在 $F_p$ 上是线性的。在 $F_p$ 上展开这些方程,并根据预期的 $(V, A)$ 的次数对搜索空间进行次数限制,可通过线性代数求解该系统。
- 前一阶段的输出是线性系统整个解子空间的次数受限部分。若整个解空间在线性性和左乘 $I = \tilde{C}(Z) ∩( \overline{S}, \overline{S})$ 下是单生成的,则该生成元是最低次数解 $(V, A)$,也可作为次数受限解子空间的线性基的右最大公约数找到。
- 实验验证,在推荐参数及其他情况下,次数受限解只有一个最低次数解(在 $F_p$ 倍数意义下),其他解都是它的中心因子倍数,表明在固定次数界内 $I = C ⋆(1, 1)$。设找到的生成元为 $(V_g, A_g)$,验证它是因子解,也是次数受限解的线性基的右最大公约数,还是原始解 $(\hat{V}, \hat{A})$ 的最大中心因子,可通过取 $(\hat{V}, \hat{A})$ 及其任意左倍数的左最大公约数提取该最大中心因子。该攻击的理论复杂度为 $(md)^3$,使用推荐参数并使用 NTL 库在 C++ 中直接实现大约需要一分钟。
3. 模斜多项式的情况
3.1 构建模斜多项式环
设 $R$ 表示斜多项式环 $F_q[X, \theta]$,$N$ 是 $R$ 中的任意元素。设 $⋆N$ 表示 $N$ 的左倍数集合,模 $⋆N$ 的同余是 $R$ 上的一个等价关系,相关的划分元素称为模 $N$ 的左类。同样可定义右类,模 $⋆N$(或 $N⋆$)的约简可通过左(或右)欧几里得除法算法执行。
左类有一个尴尬的性质,即除非 $N$ 与它们的元素在某种意义上可交换,否则它们不能相互相乘。例如,设 $U + \Lambda⋆N$ 和 $V + \Lambda’ ⋆N$ 是两个类的任意代表,它们的乘积…
下面通过 mermaid 流程图展示斜多项式密码系统攻击流程:
graph TD;
A[获取传输数据 Z'] --> B[计算 Z' 和 P0⋆Z' 的最大公约数 G];
B --> C[计算 M 和 M0];
C --> D[推出线性方程组];
D --> E[在 Fp 上展开并次数限制求解];
E --> F[找到最低次数解 (Vg, Ag)];
F --> G[验证 (Vg, Ag) 是因子解等];
通过以上内容,我们详细介绍了针对迪菲 - 赫尔曼问题的攻击策略及其在斜多项式密码系统中的应用,以及模斜多项式的相关情况。这些分析有助于深入理解密码系统的安全性和潜在的攻击方法。
密码系统的差分 - 赫尔曼问题攻击分析
3. 模斜多项式的情况(续)
3.2 模斜多项式环的乘法问题
设 $U + \Lambda⋆N$ 和 $V + \Lambda’ ⋆N$ 是两个类的任意代表,它们的乘积为:
[
\begin{align
}
&(U + \Lambda⋆N) ⋆(V + \Lambda’ ⋆N)\
=&U ⋆V + U ⋆\Lambda’ ⋆N + \Lambda⋆N ⋆V + \Lambda⋆N ⋆\Lambda’ ⋆N
\end{align
}
]
若要使这个乘积能合理地定义在模 $N$ 的类上,就需要 $N$ 与 $U$、$V$、$\Lambda$、$\Lambda’$ 等元素在乘法运算上有良好的交换性。例如,若 $N$ 与所有元素可交换,那么乘积结果可以简化为 $U ⋆V$ 模 $N$ 的形式。
3.3 基于模斜多项式的迪菲 - 赫尔曼协议
在基于模斜多项式的迪菲 - 赫尔曼协议中,参与者的操作会有所不同。
-
公共参数
:除了斜多项式环 $F_q[X, \theta]$ 和公共多项式 $Z$ 外,还需要一个模元素 $N$。
-
密钥生成
:参与者选择 $S$ 中的元素 $U$ 和 $V$,但计算结果需要在模 $N$ 下进行。例如,一方计算 $Z’ = U ⋆Z ⋆V \bmod N$。
-
攻击思路
:与普通斜多项式情况类似,但在计算最大公约数和精确除法时,需要考虑模运算。例如,计算 $Z’$ 和 $\Lambda_i ⋆Z’ \bmod N$ 的最大公约数。
以下是基于模斜多项式的迪菲 - 赫尔曼协议流程表格:
|步骤|描述|
| ---- | ---- |
|1|选择斜多项式环 $F_q[X, \theta]$、公共多项式 $Z$ 和模元素 $N$|
|2|参与者通过 $S$ 的生成元组合选择 $S$ 中元素 $U$ 和 $V$|
|3|计算 $Z’ = U ⋆Z ⋆V \bmod N$ 并传输|
|4|接收方根据接收到的数据进行相应计算|
4. 攻击总结与展望
4.1 攻击总结
- 可逆情况 :当交换子半群 $S$ 是群时,可将二次方程转化为线性方程,利用矩阵关系求解。
- 不可逆情况 :通过计算最大公约数和精确除法,将问题转化为线性方程组求解,找到因子解来破解宽松分解问题。
- 斜多项式应用 :在斜多项式密码系统中,利用斜多项式环的性质,通过计算最大公约数和线性代数求解来展开攻击。
- 模斜多项式情况 :在模斜多项式环中,需要考虑模运算对攻击过程的影响。
4.2 攻击复杂度分析
攻击的理论复杂度在不同情况下有所不同:
- 斜多项式攻击的理论复杂度为 $(md)^3$,在推荐参数下,使用 NTL 库在 C++ 中直接实现大约需要一分钟。
- 模斜多项式攻击的复杂度可能会受到模运算的影响,具体复杂度需要进一步分析。
4.3 展望
- 安全性提升 :密码系统设计者可以考虑采用更复杂的结构或参数选择,以增加攻击的难度。例如,选择更特殊的斜多项式或模元素,使得最大公约数计算和线性方程组求解更加困难。
- 新攻击方法探索 :攻击者可以继续探索新的攻击思路,例如结合其他数学工具或算法,提高攻击的效率。
下面通过 mermaid 流程图展示整个攻击流程的总结:
graph TD;
A[确定 S 的可逆性] -->|可逆| B[转化为线性方程求解];
A -->|不可逆| C[计算最大公约数和精确除法];
C --> D[转化为线性方程组];
D --> E[找到因子解];
F[斜多项式应用] --> G[利用斜多项式环性质攻击];
H[模斜多项式情况] --> I[考虑模运算进行攻击];
B --> J[攻击完成];
E --> J;
G --> J;
I --> J;
综上所述,对迪菲 - 赫尔曼问题的攻击分析涉及多种情况和方法,通过对不同情况的深入研究,可以更好地理解密码系统的安全性,并为密码系统的设计和攻击提供参考。
超级会员免费看
28

被折叠的 条评论
为什么被折叠?



