61、密码系统的差分 - 赫尔曼问题攻击分析

密码系统的差分 - 赫尔曼问题攻击分析

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;

综上所述,对迪菲 - 赫尔曼问题的攻击分析涉及多种情况和方法,通过对不同情况的深入研究,可以更好地理解密码系统的安全性,并为密码系统的设计和攻击提供参考。

【四轴飞行器】非线性三自由度四轴飞行器模拟器研究(Matlab代码实现)内容概要:本文围绕非线性三自由度四轴飞行器模拟器的研究展开,重点介绍基于Matlab代码实现的四轴飞行器动力学建模与仿真方法。研究构建了考虑非线性特性的飞行器数学模型,涵盖姿态动力学与运动学方程,实现了三自由度(滚转、俯仰、偏航)的精确模拟。文中详细阐述了系统建模过程、控制算法设计思路及仿真结果分析,帮助读者深入理解四轴飞行器的飞行动力学特性与控制机制;同时,该模拟器可用于算法验证、控制器设计与教学实验。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的高校学生、科研人员及无人机相关领域的工程技术人员,尤其适合从事飞行器建模、控制算法开发的研究生和初级研究人员。; 使用场景及目标:①用于四轴飞行器非线性动力学特性的学习与仿真验证;②作为控制器(如PID、LQR、MPC等)设计与测试的仿真平台;③支持无人机控制系统教学与科研项目开发,提升对姿态控制与系统仿真的理解。; 阅读建议:建议读者结合Matlab代码逐模块分析,重点关注动力学方程的推导与实现方式,动手运行并调试仿真程序,以加深对飞行器姿态控制过程的理解。同时可扩展为六自由度模型或加入外部干扰以增强仿真真实性。
基于分布式模型预测控制DMPC的多智能体点对点过渡轨迹生成研究(Matlab代码实现)内容概要:本文围绕“基于分布式模型预测控制(DMPC)的多智能体点对点过渡轨迹生成研究”展开,重点介绍如何利用DMPC方法实现多智能体系统在复杂环境下的协同轨迹规划与控制。文中结合Matlab代码实现,详细阐述了DMPC的基本原理、数学建模过程以及在多智能体系统中的具体应用,涵盖点对点转移、避障处理、状态约束与通信拓扑等关键技术环节。研究强调算法的分布式特性,提升系统的可扩展性与鲁棒性,适用于多无人机、无人车编队等场景。同时,文档列举了大量相关科研方向与代码资源,展示了DMPC在路径规划、协同控制、电力系统、信号处理等多领域的广泛应用。; 适合人群:具备一定自动化、控制理论或机器人学基础的研究生、科研人员及从事智能系统开发的工程技术人员;熟悉Matlab/Simulink仿真环境,对多智能体协同控制、优化算法有一定兴趣或研究需求的人员。; 使用场景及目标:①用于多智能体系统的轨迹生成与协同控制研究,如无人机集群、无人驾驶车队等;②作为DMPC算法学习与仿真实践的参考资料,帮助理解分布式优化与模型预测控制的结合机制;③支撑科研论文复现、毕业设计或项目开发中的算法验证与性能对比。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注DMPC的优化建模、约束处理与信息交互机制;按文档结构逐步学习,同时参考文中提及的路径规划、协同控制等相关案例,加深对分布式控制系统的整体理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值