多元与奇特征HFE变体及非交换斜多项式密码系统的密码分析
多元与奇特征HFE变体的密码分析
攻击原理
公钥多项式的矩阵表示 $G_i$ 具有 $(n - r)$ 行和列,但 $\sum_{i = 0}^{n} u_{i,0}G_{i + 1}$ 的秩受限于 $N \log_q(D)$,即移除行或列不会增加秩。设 $K = \ker(\sum_{i = 0}^{n} u_{i,0}G_{i + 1})$,一旦知道 $K$,就可以通过求解 MinRank 问题恢复矩阵 $U’$。
然而,在恢复矩阵 $W’ = S’M_{N,d}$(其中 $S’$ 是私钥的等效矩阵)时会出现问题。按照特定方法会得到一个具有 $N\ell(n - r - N\ell)$ 个方程和仅 $N(n - r - N)$ 个变量的系统。该线性系统的一个解矩阵 $W’$ 如下:
[
W’ =
\begin{pmatrix}
w_{0,0} & w_{0,0}^q & \cdots & w_{0,0}^{q^{d - 1}} & \cdots & \cdots \
w_{0,1} & w_{0,1}^q & \cdots & w_{0,1}^{q^{d - 1}} & \cdots & \cdots \
\vdots & \vdots & \ddots & \vdots & \ddots & \vdots \
w_{n - r,0} & w_{n - r,0}^q & \cdots & w_{n - r,0}^{q^{d - 1}} & \cdots & w_{n - r,N - 1}^{q^{d - 1}}
\end{pmatrix}
]
$W’$ 有 $(n - r)$ 行,因此不可逆,但为了计算完整的私钥,需要对 $W’$ 求逆。
构建可逆矩阵的尝试与改进
最初的想法是通过向 $W’$ 附加一个 $(r \times n)$ 矩阵 $V = [v_{i,j}]$(满足 $v_{i,j}^q = v_{i,j + 1}$)来构建一个新的可逆矩阵 $W_r$,并通过计算 $G_i’ = W_r^{-1}G_iW_r^{-t}$ 来重构秘密变换。但由于 $W_r^{-1}$ 的最后 $r$ 行有非零系数,最终计算 $\sum_{i = 0}^{n} u_{i,0}G_{i + 1}’$ 时,最后变量 $(x_{n - r + 1}, \cdots, x_n)$ 的单项式会与其他单项式混合,导致多项式不是 HFE 形状,难以求逆。
为解决这个问题,我们不再向 $W’$ 附加随机矩阵,而是垂直附加矩阵 $Z$ 来构建可逆矩阵 $W_z$:
[
Z =
\begin{pmatrix}
0 & \cdots & \cdots & \cdots & 0 & 1 \
\vdots & \vdots & \vdots & \vdots & \vdots & \vdots \
0 & \cdots & \cdots & \cdots & 0 & 1
\end{pmatrix}
]
这样能确保 $W_z$ 可逆,构建 $G_i’ = W_z^{-1}G_iW_z^{-t}$ 时不会出现变量 $(x_{n - r + 1}, \cdots, x_n)$,且秩的性质得以保留。唯一的区别是 $w_{i,j}^q = w_{i,j + 1}$ 仅对所有 $0 \leq i < n - r$ 成立。结果是 $S’ = W_zM_{N,d}^{-1}$ 的系数在大域 $F_{q^d}$ 中,但 $S’$ 仍可求逆,并且可以恢复具有 HFE 形状的映射 $F^*$。
实验结果
在 Magma(V2.16 - 10)中实现攻击,并在 2.93 GHz Intel Xeon CPU 上获取所有计时数据。使用 Kipnis - Shamir 建模求解 MinRank 问题。实验观察到的正则度记为 $d_{reg}$,理论正则度记为 $d_{theo}^{reg}$。
对 [10] 中提出的实际规模参数(带嵌入的 multi - HFE)应用攻击,结果表明这些参数不安全,最保守的 256 位声称安全的参数在 9 天内就被破解。使用 MinRank 的 minors 建模和 FGb 软件中的 F5 实现可能会得到更好的结果。以下是部分实验结果:
| $q$ | $N$ | $d$ | $D$ | 安全位数 | $d_{theo}^{reg}$ | Magma 时间 | Magma 内存 | FGb 时间 | $d_{reg}$ |
| — | — | — | — | — | — | — | — | — | — |
| 31 | 2 | 15 | 2 | 150 位 | 3 | 2 分 27 秒 | 434 MB | 21.1 秒 | 3 |
| 31 | 3 | 10 | 2 | 150 位 | 4 | 1 小时 38 分 | 1500 MB | 24 分 56 秒 | 3 |
| 31 | 3 | 15 | 2 | 192 位 | 4 | 2 天 1 小时 | 12 GB | - | 3 |
| 31 | 3 | 18 | 2 | 256 位 | 4 | 9 天 16 小时 | 33 GB | - | 3 |
还比较了攻击的不同步骤与 multi - HFE 的 minus 和 embedding 变体(参数 $q = 31$,$N = 3$,$d = 8$,$D = 2$,约 120 位安全):
| 变体 | MR 时间 | MR $d_{reg}$ | 查找 $U$ 时间 | 查找 $W$ 时间 |
| — | — | — | — | — |
| 无变体(参考时间) | 23.3 秒 | 3 | 0.01 秒 | 7.29 秒 |
| Minus($s = 1$) | 23.2 秒 | 3 | 0.01 秒 | 16.71 秒 |
| Minus($s = 2$) | 23.4 秒 | 3 | 0.01 秒 | 35.24 秒 |
| Minus($s = 3$) | 不可行 | - | - | - |
| Embedding($r = 1$) | 788 秒 | 3 | 0.01 秒 | 6.14 秒 |
| Embedding($r = 2$) | 2811 秒 | 3 | 0.01 秒 | 5.25 秒 |
| Embedding($r = 3$) | 401 秒 | 3 | 0.01 秒 | 4.44 秒 |
结论
奇特征域上的 multi - HFE 看似修复了 HFE 的弱点,嵌入修改器也用于更好地隐藏公钥中的大域结构,但这些特性实际上成为了弱点。攻击不仅能在多项式时间内完成密钥恢复,而且在 multi - HFE 上比原始 HFE 更有效。对于实际规模的参数,multi - HFE 的密钥恢复变得可行,已成功破解高达 256 位声称安全的参数集。因此,使用 multi - HFE 是不安全的。增加秘密变量/方程的数量 $N$ 或其度数 $D$ 可能使参数超出攻击范围,但合法解密会变得非常缓慢或不可行。在研究的构造中,只有 HFE/multi - HFE 的 minus 变体(移除的方程数大于 $(N - 1)$)是安全的,而 HFE 的 vinegar 变体不受影响。
基于非交换斜多项式的密码系统的密码分析
背景与原理
自原始的 Diffie - Hellman 密钥交换方案提出以来,出现了许多基于相同原理的变体。Diffie - Hellman 类密钥交换的核心结构如下:设 $K$ 和 $D$ 为固定域,$F$ 是从 $D \times K$ 到 $D$ 的函数,满足:
1. 对于 $D$ 中的任何 $z$,$F(z, \cdot)$ 是单向函数。
2. 函数集 $F_a = F(\cdot, a)$($a \in K$)对于映射的复合是可交换的,即对于任何 $a, b \in K$,$F_a \circ F_b = F_b \circ F_a$。
在 Diffie - Hellman 类协议中,函数 $F$ 和 $D$ 中的特定元素 $z$ 是公共信息。各方先在 $K$ 中选择随机元素(Alice 选 $a$,Bob 选 $b$),用其加密 $z$ 并将结果发送给对方,然后再用自己的元素加密收到的数据,最终双方得到相同的 $F_a(F_b(z)) = F_b(F_a(z))$。协议的安全性假设是给定 $F_a(z)$ 和 $F_b(z)$ 时,计算这个公共数据是不可行的(计算性 DH 假设)。
原始的 Diffie - Hellman 方案将 $F$ 设为在乘法群中 $z$ 的 $a$ 次幂运算,其单向性意味着识别 $z$ 的幂次(离散对数)是不可行的。另一方面,也有尝试从非交换代数结构构建 Diffie - Hellman 协议的函数 $F$,这些方案通常依赖于特定的分解问题而非离散对数。
通用 Diffie - Hellman 协议
基于非交换半群的通用 Diffie - Hellman 协议:设 $(D, \star)$ 是非交换半群,假设给定元素 $z, z’ \in D$,若 $z’$ 可分解为 $u \star z \star v$ 的形式,找到这样的左右因子 $u, v$ 是困难的。定义集合 $K$ 为有序对 $[u, v]$,函数 $F : (z, [u, v]) \to u \star z \star v$。当分解问题难以解决时,$F$ 满足第一个性质。为使 $F$ 满足第二个性质,需要函数 $F(\cdot, [u, v])$ 可交换,这可以通过选择 $u, v$ 在一个可交换子半群 $S$ 中来实现,即 $K = S \times S$。此时,$F$ 的单向性性质变为:给定 $D$ 中的元素 $z$ 和 $S \star z \star S$ 中的元素 $z’$,在 $S$ 中找到 $u$ 和 $v$ 使得 $z’ = u \star z \star v$。
实例分析
辫群实例
基于完整群结构的一个著名实例是辫群上的方案。在这种情况下,考虑形如 $[u, u^{-1}]$ 的对,相关的分解问题称为共轭问题。已经有对辫群中一般共轭问题的部分(仍然是指数级的)攻击。后来发现存在一种特定的多项式时间算法来攻击辫群上的 Diffie - Hellman 假设。该攻击利用了辫群元素可以用某个(复杂的)环上的可逆矩阵表示的性质。对于辫群中的任何元素 $z$,用 $Z$ 表示其关联矩阵,那么 DH 类协议中出现的共轭问题可以重写为在特定可交换集 $S$ 的表示中找到矩阵 $U$,使得 $Z’ = UZU^{-1}$,其中 $Z, Z’$ 是公共矩阵且至少存在一个这样的解 $U$。候选解可以通过求解线性代数问题得到:找到矩阵 $U$ 使得 $Z’U - UZ = 0$ 且对于 $S$ 的任何生成元 $s_i$ 有 $S_iU - US_i = 0$。然而,这个线性系统的许多解并不是辫群元素的表示,当无法筛选出有效解时,就不能解决共轭问题。但研究发现,上述线性系统的任何可逆解(随机解以高概率可逆)都具有与 $S$ 中的元素可交换的性质,因此同样有助于揭示 Diffie - Hellman 协议的共享输出。尽管该攻击是多项式时间的,但目前还不能实际破解该方案,并且辫群上的 Diffie - Hellman 协议似乎不再被深入研究。
斜多项式实例
最近,Boucher 等人提出了一个基于斜多项式的 Diffie - Hellman 方案(以及一个配套的 ElGamal 方案)。斜多项式是有限域上具有特定非交换乘法的多项式,其乘法使用 Frobenius 域自同构。该方案遵循上述非交换 Diffie - Hellman 协议的描述,以斜多项式的乘法作为非交换律,因此是一个不基于完整群律的非交换 Diffie - Hellman 协议实例。
攻击方法
本文表明 Boucher 等人的方案容易受到非常有效的攻击。该攻击实际上只在很小程度上利用了斜多项式的结构,主要利用了底层域中存在的左(或右)最大公约数(gcd)概念和相关的精确除法过程。在任何具有这些工具的环境中,可以将相关的分解问题转化为线性代数类型的问题。
与辫群 DH 方案的攻击类似,线性类型问题的并非所有解都是初始分解问题的解。实际解需要满足一个额外条件(如辫群 DH 方案中的可逆性)。因此,需要使用特定的启发式方法从线性问题的解中找到实际解。基于斜多项式在实践中满足的一个假设,可以通过 gcd 非常容易地得到实际解,并且攻击是完全多项式时间的。
具体步骤
- 不考虑斜多项式的攻击设置和工作原理描述 :先在不参考斜多项式的情况下描述攻击的精确设置和工作方式。
- 应用到斜多项式的情况 :将上述攻击方法应用到斜多项式的具体情况。
- 考虑基于模斜多项式的方案变体 :虽然攻击似乎不适用于这种情况,但表明可逆元素的密度使其完全脆弱。
- 矩阵乘法实例的简化 :指出基于矩阵乘法的实例可以简化为模斜多项式,尽管攻击看起来具有一般性,但目前无法找到其他应用该攻击的实例,这仍是一个开放问题。
综上所述,无论是多元与奇特征 HFE 变体还是基于非交换斜多项式的密码系统,都存在不同程度的安全漏洞和有效的攻击方法。在设计和使用密码系统时,需要充分考虑这些因素,以确保系统的安全性。
多元与奇特征 HFE 变体及斜多项式密码系统攻击的深入分析
多元与奇特征 HFE 变体攻击的技术细节
矩阵秩与 MinRank 问题求解
在多元与奇特征 HFE 变体的攻击中,矩阵秩的性质起到了关键作用。公钥多项式矩阵表示 $G_i$ 的秩特性限制了 $\sum_{i = 0}^{n} u_{i,0}G_{i + 1}$ 的秩,这为后续通过 MinRank 问题恢复矩阵 $U’$ 提供了基础。具体操作步骤如下:
1. 确定公钥多项式矩阵 $G_i$ 的规模为 $(n - r)$ 行和列。
2. 计算 $\sum_{i = 0}^{n} u_{i,0}G_{i + 1}$,并明确其秩受限于 $N \log_q(D)$。
3. 求解 $K = \ker(\sum_{i = 0}^{n} u_{i,0}G_{i + 1})$。
4. 利用 $K$ 的信息,通过 MinRank 问题求解得到矩阵 $U’$。
可逆矩阵构建的原理与影响
构建可逆矩阵是为了计算完整私钥,但不同的构建方法会产生不同的结果。最初尝试附加矩阵 $V$ 构建 $W_r$ 时,由于 $W_r^{-1}$ 的系数分布问题,导致最终多项式不是 HFE 形状,难以求逆。而改进后的方法附加矩阵 $Z$ 构建 $W_z$,解决了这一问题。具体分析如下:
-
附加矩阵 $V$ 的问题
:$W_r^{-1}$ 最后 $r$ 行的非零系数使得在计算 $\sum_{i = 0}^{n} u_{i,0}G_{i + 1}’$ 时,变量 $(x_{n - r + 1}, \cdots, x_n)$ 的单项式与其他单项式混合,破坏了 HFE 形状。
-
附加矩阵 $Z$ 的优势
:$W_z$ 可逆,构建 $G_i’ = W_z^{-1}G_iW_z^{-t}$ 时不出现变量 $(x_{n - r + 1}, \cdots, x_n)$,且保留了秩的性质,使得 $S’ = W_zM_{N,d}^{-1}$ 可求逆并恢复具有 HFE 形状的映射 $F^*$。
基于非交换斜多项式密码系统攻击的技术要点
从分解问题到线性代数问题的转化
攻击基于非交换斜多项式的密码系统时,核心是将分解问题转化为线性代数问题。这一转化依赖于底层域中左(或右)gcd 和精确除法过程的可用性。具体转化步骤如下:
1. 明确分解问题:在非交换半群 $(D, \star)$ 中,给定 $z, z’ \in D$,找到 $u, v$ 使得 $z’ = u \star z \star v$。
2. 利用左(或右)gcd 和精确除法工具,将上述分解问题转化为线性代数问题,如在辫群实例中转化为求解矩阵 $U$ 满足 $Z’U - UZ = 0$ 且 $S_iU - US_i = 0$。
从线性问题解中筛选实际解
线性代数问题的解并非都对应初始分解问题的解,需要特定的启发式方法进行筛选。以斜多项式为例,基于其满足的一个假设,通过 gcd 可以很容易地得到实际解。具体筛选过程如下:
1. 求解线性代数问题得到一组解。
2. 检查每个解是否满足额外条件(如可逆性)。
3. 利用斜多项式满足的假设,通过 gcd 操作从满足额外条件的解中确定实际解。
两种密码系统攻击的对比与启示
攻击效率和适用范围对比
| 密码系统类型 | 攻击效率 | 适用范围 |
|---|---|---|
| 多元与奇特征 HFE 变体 | 攻击能在多项式时间内完成密钥恢复,对 multi - HFE 比原始 HFE 更有效 | 适用于 multi - HFE 及相关变体,但部分变体(如 minus 变体需满足一定条件)有抵抗能力 |
| 基于非交换斜多项式的密码系统 | 攻击是完全多项式时间的,但目前仅适用于斜多项式及可简化为模斜多项式的情况 | 对于基于矩阵乘法等其他实例的应用仍需进一步研究 |
对密码系统设计的启示
从这两种密码系统的攻击中可以看出,在设计密码系统时需要充分考虑以下几点:
1.
避免引入看似增强安全性实则成为弱点的特性
:如多元与奇特征 HFE 变体中,嵌入修改器原本用于隐藏大域结构,却成为攻击的突破口。
2.
谨慎选择代数结构和运算
:非交换斜多项式的结构虽然在某些方面有优势,但由于存在左(或右)gcd 和精确除法等工具,导致容易受到攻击。
3.
考虑攻击的通用性和可扩展性
:设计密码系统时要预估可能出现的攻击方法,并确保系统对多种攻击具有抵抗能力。
未来研究方向
多元与奇特征 HFE 变体
- 探索更有效的参数选择方法,在保证合法解密效率的同时,提高对现有攻击的抵抗能力。
- 研究新的攻击方法,进一步挖掘 multi - HFE 及相关变体可能存在的安全漏洞。
基于非交换斜多项式的密码系统
- 寻找其他可应用该攻击方法的实例,验证攻击的通用性。
- 研究如何改进基于斜多项式的密码系统,使其对现有攻击具有更强的抵抗能力。
总结
本文详细分析了多元与奇特征 HFE 变体及基于非交换斜多项式的密码系统的密码分析方法。通过对攻击原理、具体步骤和实验结果的阐述,揭示了这些密码系统存在的安全漏洞。同时,对两种攻击方法进行了对比,并提出了对密码系统设计的启示和未来研究方向。在密码系统的设计和使用中,需要充分考虑各种潜在的安全风险,不断优化系统以确保其安全性。
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(多元与奇特征 HFE 变体攻击):::process
A --> C(基于非交换斜多项式密码系统攻击):::process
B --> B1(矩阵秩与 MinRank 问题求解):::process
B --> B2(可逆矩阵构建):::process
C --> C1(分解问题转化为线性代数问题):::process
C --> C2(从线性问题解中筛选实际解):::process
B1 --> B3(分析攻击效率和适用范围):::process
B2 --> B3
C1 --> C3(分析攻击效率和适用范围):::process
C2 --> C3
B3 --> D(对比两种攻击并得出启示):::process
C3 --> D
D --> E(提出未来研究方向):::process
E --> F([结束]):::startend
通过以上的分析和总结,我们可以更全面地了解这两种密码系统的安全性和攻击方法,为密码学的研究和应用提供有价值的参考。
超级会员免费看
12

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



