多元和奇特征 HFE 变体的密码分析
1. 引言
多元公钥密码学(MPKC)是使用多元多项式的公钥方案集合。其安全性与后量子问题(求解二次代数方程组)的难度相关,且加解密过程高效,适用于受限环境。其中,隐藏域方程密码系统(HFE)是研究最多的之一。
早期,Kipnis 和 Shamir 提出了针对 HFE 的密钥恢复攻击,该攻击可归结为 MinRank 问题,但对给定参数而言不实用,被推测为亚指数级。后来,Faugère 和 Joux 基于 Gröbner 基提出了高效的消息恢复攻击,这对 HFE 的安全性提出了严重质疑。为抵御这些攻击,有人提出使用多元系统作为秘密密钥、奇特征域或两者结合,这类新方案被称为 multi - HFE。
本文提出了针对 HFE、multi - HFE 及其一些变体的密钥恢复攻击,是对 Kipnis - Shamir 攻击的改进和推广。具体是将攻击归结为寻找公共二次型的低秩线性组合问题,即 MinRank 问题。通过将 MinRank 问题在小域中表达,可显著加快求解速度。
2. 多元 HFE
- 参数与系统结构 :Multi - HFE 的参数为 $(q, N, d, D) \in N^4$,其中 $q$(奇数)是基域 $F_q$ 的大小,$d$ 是扩展域 $F_{q^d}$ 的次数,$N$ 是秘密多项式的变量和方程数量,$D$ 是其度数。秘密内部变换 $F^*$ 的多项式具有特定构造,这种系统具有 (multi - )HFE 形状。
- 加密与解密过程 :通过自然态射 $\phi_N$ 将秘密多项式转换到小域表示 $F$。秘密密钥由 $F^ $ 以及两个仿射映射 $S$ 和 $T$ 补充,公共密钥 $G = T \circ F \circ S$ 由总度数为 2 的多项式组成。加密时,在消息 $m$ 上计算 $g_1, \cdots, g_n$;解密时,利用私钥计算 $S^{-1} \circ \phi_N \circ F^{ -1} \circ \phi_N^{-1} \circ T^{-1}(c)$。
-
不同 HFE 方案实例
:
| 方案 | $q$ | $N$ | $d$ | $D$ | 安全性 |
| ---- | ---- | ---- | ---- | ---- | ---- |
| HFE | 2 | 1 | 128 | 513 | 128 |
| PHFE | 7 | 1 | 67 | 56 | 201 |
| 方案 | $q$ | $N$ | $d$ | $D$ | 安全性 |
|---|---|---|---|---|---|
| IFS | 2 | 8 | 16 | 2 | 128 |
| THFE | 31 | 3 | 10 | 2 | 150 |
3. 对原始 HFE 的攻击回顾
- 直接代数攻击 :消息恢复需求解二次方程组 ${g_1 - c_1 = 0, \cdots, g_n - c_n = 0}$,经典方法是计算 Gröbner 基。对于原始 HFE,其正则度约为 $\log_q(D)$,使攻击在变量数量上为亚指数级。为防止直接代数攻击,有人提议使用特征更大的域,但对于某些参数,混合方法虽优于直接求解,但攻击仍为指数级。对于 multi - HFE,在特征 2 下可类似攻击,而在奇特征下,直接代数攻击无效。
- 原始 Kipnis - Shamir(KS)攻击 :对于原始 HFE 方案($N = 1, n = d$),将公钥多项式和变换视为从 $F_{q^n}$ 到 $F_{q^n}$ 的映射,用单变量多项式表示。Kipnis 和 Shamir 提出通过插值恢复公钥的单变量表示,并将单变量多项式写成“非标准二次型”。该攻击基于秘密多项式 $F$ 的秩 $\leq \log_q(D)$,恢复 $t_k$ 需解决 MinRank 问题,解决后通过求解线性系统恢复 $s_k$ 完成密钥恢复。
4. KS 攻击的改进和推广
-
改进单变量情况
- 定义与表示 :为推广 KS 攻击,将其解释为向量/矩阵操作。定义 $Frob_k$ 函数,将向量或矩阵的所有分量提升到 $q^k$ 次幂。设 $(\theta_1, \cdots, \theta_n) \in (F_{q^n})^n$ 是 $F_{q^n}$ 在 $F_q$ 上的向量基,$M_n$ 是其 Frobenius 幂组成的矩阵。通过 $M_n$ 可将 $F_{q^n}$ 与 $F_q$ 之间的映射表示出来。
- 矩阵关系推导 :考虑对称矩阵 $(G_1, \cdots, G_n)$ 使得 $g_i = xG_ix^t$,通过一系列推导得到 $(G_1, \cdots, G_n)U = (WF^{ 0}W^t, \cdots, WF^{ (n - 1)}W^t)$,其中 $U = T^{-1}M_n$,$W = SM_n$。只需要知道 $U$ 的一列就能恢复整个矩阵,例如考虑 $U$ 的第一列 $(u_{0,0}, \cdots, u_{n - 1,0})^t$,有 $\sum_{k = 0}^{n - 1}u_{k,0}G_{k + 1} = WFW^t$。
-
定理与复杂度分析
:定理表明,对于 HFE,恢复 $U$ 归结为在公共矩阵 $G_1, \cdots, G_n$ 上解决 $k = n$ 和 $r = \log_q(D)$ 的 MinRank 问题。在较小域($F_q$ 而非 $F_{q^n}$)上计算 Gröbner 基更快,预期比 KS 攻击有 $M(n)$(两个 $n$ 次单变量多项式乘法的成本)的增益。以下是不同 $n$ 值下原始 KS 攻击和新攻击的时间对比:
| $n$ | KS 攻击(秒) | 新攻击(秒) | 比率 |
| ---- | ---- | ---- | ---- |
| 8 | 15.3 | 0.75 | 20.4 |
| 9 | 20.4 | 1.25 | 16.3 |
| 10 | 76.9 | 2.05 | 37.5 |
| 11 | 391 | 4.45 | 87.9 |
| 12 | 680 | 8.80 | 77.3 |
| 13 | 1969 | 16.9 | 117 |
| 14 | 2439 | 30.2 | 80.8 |
| 15 | 3197 | 68.5 | 46.7 |
| 16 | 13407 | 103 | 130 |
下面是改进单变量情况的流程 mermaid 图:
graph TD;
A[定义向量基和矩阵Mn] --> B[表示Fqn与Fq之间的映射];
B --> C[推导矩阵关系];
C --> D[得到关键方程];
D --> E[得出恢复U的MinRank问题];
E --> F[分析复杂度并对比攻击时间];
- 攻击 Multi - HFE :Kipnis - Shamir 攻击使用公钥的单变量表示,而在 multi - HFE 中,秘密密钥的单变量表示度数无界,无法进行 MinRank 攻击。为此引入新的基变换,设 $(\theta_1, \cdots, \theta_d) \in (F_{q^d})^d$ 是 $F_{q^d}$ 在 $F_q$ 上的向量基,$M_{N,d}$ 是由 $M_d$ 组成的块对角矩阵。通过 $M_{N,d}$ 可表示 $(F_{q^d})^N$ 与 $(F_q)^n$ 之间的映射。
5. 攻击 Multi - HFE(续)
- 映射表示与性质 :通过命题 2 可知,借助 $M_{N,d}$ 能将自然态射 $\phi_N$ 及其逆 $\phi_N^{-1}$ 表示出来,即 $(F_{q^d})^N$ 与 $(F_q)^n$ 之间的映射关系。并且有 $V_q^{id+(j\ mod\ d)+1}=V_{id+(j + 1\ mod\ d)+1}$ 的性质。
- 攻击思路 :虽然 multi - HFE 不能直接用原始 KS 攻击,但利用新的基变换后,可尝试在合适的域中揭示其隐藏的域结构。通过这种方式将攻击转化为在合适的矩阵和向量操作下解决相关问题。
-
总结
:引入新的基变换是攻击 multi - HFE 的关键步骤,它为后续解决隐藏域结构问题提供了基础。以下是攻击 multi - HFE 的关键步骤列表:
- 确定 $F_{q^d}$ 在 $F_q$ 上的向量基 $(\theta_1, \cdots, \theta_d)$。
- 构造块对角矩阵 $M_{N,d}$。
- 利用 $M_{N,d}$ 表示 $\phi_N$ 和 $\phi_N^{-1}$。
- 基于新的映射关系尝试揭示隐藏域结构。
6. 对 HFE 变体的攻击
-
minus 变体攻击
:由于 multi - HFE 存在大量等价密钥,可利用 MinRank 问题的自由度来攻击 minus 变体。minus 变体是在公钥中移除一些方程,而等价密钥的特性使得即使方程减少,仍能通过 MinRank 问题的求解来恢复密钥。具体操作步骤如下:
- 分析公钥中移除方程后的 MinRank 问题的自由度。
- 利用这些自由度构造合适的线性组合,使得其满足低秩条件。
- 通过求解 MinRank 问题得到相关系数。
- 利用得到的系数进一步恢复密钥。
-
嵌入变体攻击
:嵌入变体是对公共系统的一些变量进行实例化。但仍然可以找到二次型的低秩线性组合。在这种情况下,求解截断二次型的 MinRank 问题只能恢复线性变换的一个矩形子矩阵。为克服此困难,需要以特殊方式扩展该矩阵使其可逆。具体步骤如下:
- 对公共系统的变量进行实例化,得到截断二次型。
- 寻找截断二次型的低秩线性组合,构造 MinRank 问题。
- 求解 MinRank 问题,得到矩形子矩阵。
- 以特殊方式扩展矩形子矩阵,使其可逆。
- 利用可逆矩阵进一步恢复密钥。
以下是攻击 HFE 变体的流程 mermaid 图:
graph TD;
A[确定变体类型(minus或嵌入)] --> B{minus变体};
B -- 是 --> C[分析MinRank自由度];
C --> D[构造低秩线性组合];
D --> E[求解MinRank问题];
E --> F[恢复密钥];
B -- 否 --> G[变量实例化得到截断二次型];
G --> H[寻找低秩线性组合];
H --> I[求解MinRank得到矩形子矩阵];
I --> J[扩展矩阵使其可逆];
J --> F;
7. 实验验证
为了验证攻击的有效性,对一些被认为具有较高安全性的参数进行了实际攻击。例如,成功在 9 天内破解了 Chen 等人提出的具有 256 位安全性的最保守参数。实验结果表明,对于相同大小的密钥,multi - HFE 总是比 HFE 安全性低。以下是部分实验参数和结果的表格:
| 方案 | 参数 | 安全性 | 破解时间 |
| ---- | ---- | ---- | ---- |
| 某方案 | 如 Chen 等人提出的参数 | 256 位 | 9 天 |
8. 结论
本文提出了针对 HFE、multi - HFE 及其变体的密钥恢复攻击。通过改进和推广 Kipnis - Shamir 攻击,将攻击归结为 MinRank 问题,并在小域中表达该问题,显著提高了求解速度。实验结果表明,multi - HFE 在相同密钥大小下安全性低于 HFE,并且所提出的攻击能够有效破解一些被认为安全的参数。未来可进一步研究如何提高攻击效率,以及探索更安全的多元公钥密码方案。以下是本文主要贡献的总结列表:
1. 提出改进的 KS 攻击,将其推广到 multi - HFE 及其变体。
2. 将攻击归结为 MinRank 问题,并在小域中求解,提高效率。
3. 成功攻击了一些被认为安全的参数,验证了攻击的有效性。
4. 证明了 multi - HFE 在相同密钥大小下安全性低于 HFE。
超级会员免费看

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



