实用的 IP1S 身份识别方案密码分析
1. 核心概率与维度问题
在实际分析中,我们需要了解 $\text{ker} S$ 恰好为 $2n$ 维的概率。尽管矩阵 $C$ 并非均匀随机矩阵,但定理 1 仍将该维度与 $C$ 的相似不变量联系起来。推测 $C$ 不太可能有大量的相似不变量,最常见的情况是它只有两个不变量(极小多项式重复两次)。我们无法明确计算出这个概率,在现有文献中也未找到获取方法。通过实验测量,当 $q = 2$ 时,经过 $10^5$ 次试验得到该概率为 $0.746$,这与随机情况下引理 3 的结果惊人地接近。基于 $C$ 以该概率具有两个不变因子的猜想,定理 1 表明,大约 $75\%$ 的情况下,$\text{dim ker} S = 2n$。
2. 求解高度超定二次系统
IP1S 实例(1)的解通常是一个包含 $n^2$ 个二次方程的系统 $\text{Squad}$ 的解。在前述分析中,我们论证了该系统大概率可简化为 $2n$ 个未知数的 $n^2$ 个方程,且存在更多未知数的概率可忽略不计。这个系统超定程度极高,几乎可通过线性化求解。实际上,它是一个包含 $N$ 个未知数和 $N^2/4$ 个方程的系统。在实践中,计算由 $\text{Squad}$ 生成的理想的 Gröbner 基能迅速完成,并可恢复问题的实际解。
Gröbner 基算法在超定系统上更为高效,这在理论上是有依据的。大多数算法的复杂度强烈依赖于理想的一个参数——正则度。当理想维度为零(即解的数量有限)时,计算 Gröbner 基的成本是系统正则度 $D_{reg}$ 的多项式。计算 Gröbner 基本质上相当于求解一个 $M$ 个稀疏线性方程组成的 $M$ 变量系统,其中 $M$ 是 $N$ 个变量中次数为 $D_{reg}$ 的单项式的数量。此过程的复杂度约为 $O(N^{\omega\cdot D_{reg}})$,其中 $2 < \omega \leq 3$ 是线性代数常数,$N$ 是所考虑理想的变量数量(在我们的情况中,$N = 2n$)。
对于“随机”方程组(即正则或半正则系统),正则度的行为已得到很好的理解。推测当 $N$ 趋于 $+\infty$ 时,$N$ 个变量的半正则系统的比例趋近于 1。因此,对于较大的 $N$,我们可以假设随机系统几乎肯定是半正则的。这在一定程度上是最坏情况假设,因为这通常意味着我们的系统并不比其他系统更容易求解。由 $N$ 个变量中的 $m$ 个方程组成的半正则序列生成的理想所关联的 Hilbert 级数的系数,在正则度之前与函数 $f(z) = (1 - z^2)^m / (1 - z)^N$ 的级数展开式的系数一致。正则度是使得 $f(z)$ 的级数展开式中次数为 $d$ 的系数不严格为正的最小次数 $d$。这一性质使得我们能够针对给定的 $m$ 和 $N$ 值明确计算正则度。
然而,现有文献仅提供了 $N + k$ 或 $\alpha \cdot N$ 个方程在 $N$ 个变量的半通用理想的正则度的渐近估计,而对于我们面临的 $\alpha \cdot N^2$ 个方程在 $N$ 个变量的情况却未涉及。因此,我们在表 1 中列出了与我们攻击中出现的方程和未知数数量相同的半正则方程组的正则度。
| $n$ | $N$ | $m$ | $D_{reg}$ |
|---|---|---|---|
| 2 | 4 | 4 | 5 |
| 3 | 6 | 9 | 4 |
| 4 | 8 | 16 | 3 |
| 5 | 10 | 25 | 3 |
| 6 | 12 | 36 | 3 |
| 7 | 14 | 49 | 3 |
| 8 | 16 | 64 | 3 |
| $\cdots$ | $\cdots$ | $\cdots$ | $\cdots$ |
| 16 | 32 | 256 | 3 |
| $\cdots$ | $\cdots$ | $\cdots$ | $\cdots$ |
| 32 | 64 | 1024 | 3 |
从该表可以得出,对于任何合理的参数值,正则度将为 3,因此计算 $\text{Squad}$ 的 Gröbner 基的复杂度至多为 $O(n^9)$。在实践中,F4 算法在我们的方程上达到的最大次数为 2,这更为理想。
3. 算法实现
我们证明了本节描述的算法在一定比例的实例上的运行时间为 $O(n^6)$。这一结论有实证支持:我们使用计算机代数系统 MAGMA 实现了该算法。求解 $\text{Squad}$ 方程的过程如下:
1. 使用 F4 算法为这些方程计算分级逆字典序的 Gröbner 基。
2. 使用 FGLM 算法将其转换为字典序。
这一实现能够在实际可行的时间内破解 IP1S 的随机实例。例如,挑战 A 和 C 可在几秒内解决;$n = 24$,$u = 2$ 的随机实例大约需要一分钟;挑战 E 大约需要 10 分钟,但算法执行的主要时间花费在写出 $\text{Squad}$ 方程所需的多项式符号操作上。实际上,求解得到的二次方程比生成它们更容易。对于任何参数选择,我们使用该技术从未遇到无法解决的随机实例。
4. 三次 IP1S 的密码分析
当 $a$ 和 $b$ 由单个三次多项式组成时,我们聚焦于这种情况。假设 $a$ 和 $b$ 明确给出:
[
a = \sum_{i=1}^{n} \sum_{j=i}^{n} \sum_{k=j}^{n} A_{i,j,k} \cdot x_i x_j x_k
]
[
b = \sum_{i=1}^{n} \sum_{j=i}^{n} \sum_{k=j}^{n} B_{i,j,k} \cdot x_i x_j x_k
]
我们可以将注意力限制在齐次情况。之前为二次情况开发的技术不能直接应用于这种情况,因为微分不再是双线性映射,解的系数与其逆的系数之间也没有明显的线性方程。然而,我们可以结合微分的使用和 Gröbner 基方法。
设 $S_0 = {s_{i,j}^0}_{1\leq i,j\leq n}$ 是 $a$ 和 $b$ 之间 IP1S 的一个特定解,即 $b = a \circ S_0$。对于所有向量 $x, y \in (F_q)^n$,有:
[
D_a(S_0 \cdot x, y) = D_b(x, S_0^{-1} \cdot y)
]
由于 $a$ 和 $b$ 的总次数为 3,$S_0$ 和 $S_0^{-1}$ 的系数在上述 $D_a$ 和 $D_b$ 的表达式中以二次形式出现。设 $R$ 是环 $K[s_{1,1}, \cdots, s_{n,n}, u_{1,1}, \cdots, u_{n,n}]$,考虑所有 $n\times n$ 矩阵在 $R$ 上的代数 $A_s$。设 $S = {s_{i,j}}$ 和 $U = {u_{i,j}}$ 是 $A_s$ 中的符号矩阵。用 $I_{a,b}$ 表示由以下方程在 $R$ 中的所有系数生成的理想:
[
D_a(S \cdot x, y) - D_b(x, U \cdot y) = 0
]
[
U \cdot S - 1_n = 0_n
]
[
S \cdot U - 1_n = 0_n
]
显然,$U = S_0^{-1}$ 和 $S = S_0$ 是该系统的一个特定解,也是 $b$ 和 $a$ 之间 IP1S 的一个解。我们的目标是为计算 $I_{a,b}$ 的 Gröbner 基时达到的最大次数提供一个上界。
在已知特定解 $S_0$ 的一行的假设下,即假设我们知道理想 $J = \langle s_{1,j} - s_{1,j}^{(0)} | j = 1, \cdots, n \rangle$,可以证明 $I_{a,b}$ 的正则度 $D_{reg} = 2$。因此,计算该理想的 Gröbner 基的时间复杂度为 $O(n^6)$。具体证明过程如下:
1. 利用理想的正则度在变量或生成元的任何线性变换下通常保持不变的事实,考虑由以下方程在 $K[x_1, \cdots, x_n, y_1, \cdots, y_n]$ 中的所有系数生成的理想 $I_{a,b}’$:
[
D_a(S_0(S + I_n)x, y) - D_b(x, (U + I_n)S_0^{-1} y) = 0
]
[
U \cdot S = 0_n
]
[
S \cdot U = 0_n
]
显然,$I_{a,b}’$ 是通过将 $S$(或 $U$)替换为 $S_0(I_n + S)$(或 $(U + I_n)S_0^{-1}$)从 $I_{a,b}$ 得到的,因此 $I_{a,b}’$ 和 $I_{a,b}$ 的正则度相等。通过相同的变换,理想 $J$ 变为 $J’ = \langle s_{1,j} | j = 1, \cdots, n \rangle$。
2. 估计理想 $I_{a,b}’ + J’$ 的正则度。引入与 F4 算法相关的一些定义,用 $I_{d,k}$ 表示在 F4 算法的第 $k$ 步考虑次数为 $d$ 的多项式时生成的线性空间:
- $I_{d,0}(F) = \text{Vect}
K (F)$
- $I
{d,1}(F) = \text{Vect}
K (s
{i,j}f | 1 \leq i, j \leq n \text{ 且 } f \in I_{d,0}(F)) + \text{Vect}
K (u
{i,j}f | 1 \leq i, j \leq n \text{ 且 } f \in I_{d,0}(F))$
- $I_{d,k}(F) = \text{Vect}
K (s
{i,j}f | 1 \leq i, j \leq n \text{ 且 } f \in I_{d,k - 1}(F) \text{ 且 } \text{deg}(f) \leq d - 1) + \text{Vect}
K (u
{i,j}f | 1 \leq i, j \leq n \text{ 且 } f \in I_{d,k - 1}(F) \text{ 且 } \text{deg}(f) \leq d - 1)$
可以证明 $I_{2,1}(F)$ 恰好包含 $n^2 + 2n$ 个线性方程。
3. 具体分析 $I_{2,1}(F)$ 中的线性方程:
- 从矩阵 $S \cdot U$ 的第一行得到一系列方程,结合理想 $J’$ 中的方程 $s_{1,j} = 0$,可得到 ${u_{1,j} | j = 1, \cdots, n}$ 为线性方程。
- 对于所有 $(i, j) \in {1, \cdots, n}^2$,$D_a(S_0(S + I_n)x, y) - D_b(x, (U + I_n)S_0^{-1} y)$ 中 $y_1 y_i x_j$ 的系数在理想 $J’$ 和上述线性方程的模下是一个非零线性方程,其中有 $n$ 个方程仅依赖于变量 ${s_{k,\ell} | 1 \leq k, \ell \leq n}$。
4. 由于 $I_{2,1}(F)$ 有 $n^2 + 2n$ 个线性方程,但有 $2n^2$ 个变量,所以需要考虑 $I_{2,2}(F)$,即第二步在次数为 2 时生成的方程。通过引理 6,可将原系统简化为 $(n - 1)^2$ 个变量的二次系统。设 $F’$ 是代入引理 6 中的 $2n + n^2$ 个线性方程后得到的系统,$D_a(S_0(S + I_n)x, y) - D_b(x, (U + I_n)S_0^{-1} y)$ 在 $K[x_1, \cdots, x_n, y_1, \cdots, y_n]$ 中的所有单项式具有 $x_i y_j y_k$ 或 $y_i x_j x_k$ 的形式($1 \leq i, j, k \leq n$),因此单项式的数量约为 $n^3$,这意味着 $F’$ 中的方程数量也约为 $n^3$。
5. 证明可以对 $F’$ 进行线性化。设 $T(F’)$ 是 $F’$ 中出现的所有单项式的集合,$M$ 是 $G’$ 相对于 $T(G’)$ 的矩阵表示。由于我们确切知道方程的形式,可得出:
- 大多数方程非常稀疏,每个方程约包含 $n^2$ 个非零项。
- 所有变量 $t_1, \cdots, t_{(n - 1)^2}$ 出现在所有方程中。
经过矩阵 $M$ 的高斯消元后,可得到特定形式,从而在次数为 2 的第二步计算后得到 $u_{2,2} = \cdots = u_{n,n} = 0$。这意味着在次数为 2 的两步计算后,我们得到了 $2n^2$ 个未知数的 $2n^2$ 个线性方程,解释了为什么 $I_{a,b}’ + J’$ 的 Gröbner 基计算中达到的最大次数被限制为 2。
5. 应用情况分析
- 线性非齐次情况 :若方程(1)中 $c = 0$,且 $a$ 有非平凡的一次齐次分量,观察一次齐次分量可得到 $S$ 在某一点的像。此时定理 3 适用,可通过 Gröbner 基计算在 $O(n^6)$ 时间内确定 $S$。
- 其他情况 :所有其他情况可归结为线性齐次情况。在这种情况下,问题在于我们对 $S$ 的了解不足,无法使 Gröbner 基计算高效。一个简单的想法是猜测 $S$ 的一列,然后计算 Gröbner 基,这种方法的复杂度为 $O(n^6 \cdot q^n)$。通过舍弃那些在相应点上使 $a$ 和 $b$ 产生不同值的 $S$ 列的猜测,可以将复杂度降低一个 $q$ 的因子。
最大的三次 IP1S 挑战(图 2 中的挑战 C),$u = 1$,$n = 16$,$q = 2$。在已知 $S$ 的一个关系的情况下,使用 MAGMA 中公开可用的 F4 实现,在 2.8Ghz Xeon 计算机上计算 Gröbner 基需要 90 秒。由于需要重复 $2^{15}$ 次,整个过程大约需要一个 CPU 月(并且可以随意并行化)。对于挑战 D,计算 Gröbner 基需要 0.1 秒,整个过程大约需要 2 小时。
6. 一个有趣的失败尝试
我们尝试通过有效给出 $S$ 的一个关系来改进算法,但以一种有趣的方式失败了。假设 $a$ 和 $b$ 是齐次的,且 $c = 0$(若 $c \neq 0$,可根据相关观察恢复 $c$)。设 $Z_a$(或 $Z_b$)是 $a$(或 $b$)的零点集。由于 $S$ 是线性的,有 $S(\sum_{x \in Z_a} x) = \sum_{y \in Z_b} y$,这给出了 $S$ 的一个关系,足以应用定理 3。假设 $a$ 和 $b$ 大约有 $q^{n - 1}$ 个零点,找到它们需要 $O(q^n)$ 时间,攻击的复杂度可改进为 $O(n^6 + q^n)$。然而,由于 Chevalley - Warning 定理,这个技巧总是失败。
Chevalley - Warning 定理表明,在 $F_q$ 上 5 个或更多变量的三次形式的零点之和总是零。具体来说,考虑 $Z_a$ 中第一个坐标为 $\alpha$ 的元素,设其数量为 $n_{\alpha}$,这些元素实际上是 $(a, x_1 - \alpha)$ 的公共零点。若 $a$ 至少有 5 个变量,根据 Chevalley - Warning 定理,域的特征能整除 $n_{\alpha}$,因此它们的和在第一个坐标上为零。依次考虑所有坐标,可知 $a$ 的零点之和的所有坐标都为零。
7. 总结
我们提出了针对两个随机二次方程和一个三次方程的单秘密 IP 问题的算法。这些是最具密码学相关性的实例。我们解释了算法的复杂度、成功概率,并给出了算法有效的充分条件。通过结合微分的使用和高度超定系统的 Gröbner 基计算,我们描述的技术在实践中可以破解所有提出的 IP1S 挑战,具体攻击时间如下表所示:
| 挑战 | 单核攻击时间 |
|---|---|
| A | 3 秒 |
| B | 1 个月 |
| C | 0 秒 |
| D | 1 小时 |
| E | 3 分钟 |
基于这些结果,我们得出结论:Patarin 的基于 IP1S 的身份识别方案相对于其他基于组合的身份识别方案已不再具有竞争力。
实用的 IP1S 身份识别方案密码分析
8. 技术要点回顾与分析
为了更好地理解整个密码分析过程,我们对前面涉及的关键技术点进行回顾和分析。
- Gröbner 基计算 :在解决 IP1S 问题时,Gröbner 基计算起到了核心作用。无论是二次系统还是三次系统,都依赖于计算 Gröbner 基来求解方程。对于超定的二次系统,Gröbner 基算法能在较短时间内完成计算,其复杂度与系统的正则度相关。而在三次系统中,通过一系列的变换和分析,证明了在特定条件下计算 Gröbner 基的复杂度为 $O(n^6)$。
- 微分的应用 :在三次 IP1S 的密码分析中,微分的使用是关键步骤之一。通过建立微分方程 $D_a(S_0 \cdot x, y) = D_b(x, S_0^{-1} \cdot y)$,并结合 Gröbner 基方法,我们能够逐步推导和简化问题,最终得到关于解的线性方程。
- 复杂度分析 :对不同情况下的算法复杂度进行了详细分析。对于二次系统,算法在一定比例的实例上运行时间为 $O(n^6)$;对于三次系统,在已知特定条件下计算 Gröbner 基的复杂度为 $O(n^6)$,而在其他情况下,通过猜测和筛选的方法,复杂度为 $O(n^6 \cdot q^n)$ 或经过优化后降低一个 $q$ 的因子。
9. 实际应用中的流程总结
下面我们将整个密码分析过程总结为一个流程图,以便更清晰地展示实际应用中的操作步骤。
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{问题类型}:::decision
B -->|二次系统| C(简化系统):::process
C --> D(计算 Gröbner 基):::process
D --> E(求解方程):::process
B -->|三次系统| F{是否为线性非齐次}:::decision
F -->|是| G(获取 S 在某点的像):::process
G --> H(计算 Gröbner 基):::process
H --> I(确定 S):::process
F -->|否| J(猜测 S 的一列):::process
J --> K(计算 Gröbner 基):::process
K --> L{是否满足条件}:::decision
L -->|是| M(确定 S):::process
L -->|否| J
E --> N([结束]):::startend
I --> N
M --> N
从流程图可以看出,整个密码分析过程根据问题的类型和具体情况分为不同的分支。对于二次系统,主要是简化系统并计算 Gröbner 基;对于三次系统,需要根据是否为线性非齐次进行不同的处理,在不满足条件时还需要进行猜测和筛选。
10. 对现有方案的影响与展望
通过我们的密码分析,Patarin 的基于 IP1S 的身份识别方案在安全性上受到了严重挑战。从攻击时间的表格可以看出,对于不同的挑战,我们的算法都能在实际可行的时间内完成破解。这表明该方案相对于其他基于组合的身份识别方案已不再具有竞争力。
未来,对于类似的身份识别方案,我们可以从以下几个方面进行改进和研究:
-
增加系统的复杂度
:避免使用过于简单的多项式形式,如二次或三次多项式,增加系统的维度和复杂度,使攻击者难以找到有效的破解方法。
-
引入新的加密机制
:结合其他加密技术,如对称加密、非对称加密等,增强方案的安全性。
-
优化算法设计
:在保证安全性的前提下,优化算法的复杂度,提高方案的执行效率。
11. 总结与结论
本文详细介绍了针对两个随机二次方程和一个三次方程的单秘密 IP 问题的密码分析方法。通过结合微分的使用和高度超定系统的 Gröbner 基计算,我们提出了有效的算法,并分析了其复杂度和成功概率。在实际应用中,这些算法能够在合理的时间内破解所有提出的 IP1S 挑战,证明了 Patarin 的基于 IP1S 的身份识别方案已不再安全。
为了确保身份识别方案的安全性,我们需要不断研究和改进加密技术,引入新的算法和机制,以应对日益复杂的安全挑战。同时,对于密码分析的研究也有助于我们更好地理解现有方案的弱点,为设计更安全的加密系统提供参考。
通过以上的分析和总结,我们希望能为相关领域的研究人员和开发者提供有价值的参考,推动身份识别方案的安全性和效率的提升。
超级会员免费看
2019

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



