ACORNv3状态恢复与TMDTO攻击分析

ACORNv3状态恢复与TMDTO攻击

关于ACORNv3的若干观察及其对 TMDTO攻击的影响

摘要

ACORN 是一种轻量级认证密码,是十五个第三轮候选设计中被选中的方案之一。该密码基于一种流密码的底层模型,包含6个不同长度的线性反馈移位寄存器(LFSR)以及三个额外的比特。在本文中,我们考虑已知一定数量的密钥流比特以及部分状态比特的情形,并尝试恢复其余的状态比特。例如,我们展示了长度为47的线性反馈移位寄存器(LFSR)可以从47个密钥流比特以及对剩余状态比特的猜测中恢复。我们还给出了这些结果对在 ACORN v3 上实施 TMDTO 攻击的影响。我们表明,可以以预处理复杂度 $2^{171}$ 和 $2^{180}$(分别是在不使用和使用 SAT 求解器辅助的情况下)发起 TMDTO 攻击,其在线时间、内存和数据复杂度的最大值分别为 $2^{122}$ 和 $2^{120}$。尽管我们的结果并未否定设计者的任何声明,但这些观察可能有助于进一步理解该密码。

关键词 :ACORN v3 · Authenticated加密 · CAESAR ·密码分析 · Stream密码算法

1 引言

最近启动了一项新的竞赛CAESAR(认证加密竞赛:安全性、适用性和鲁棒性) [4],首次提交截止日期为2014年3月。目前第三轮的候选算法已经公布, ACORN v3 是其中之一[10]。这是一种轻量级的认证流密码,由6个线性反馈移位寄存器(LFSR)和四个额外比特组成,状态大小为293位。它使用128位密钥和初始化向量,提供128位安全。

鉴于当前密码算法的设计都经过了充分周密的考虑,要反驳设计者的主张相当具有挑战性,有时甚至难以实现。然而,密码分析人员已发现一些重要观察结果,有助于以提供更稳健的密码算法。这正是ACORN被修订两次且当前版本为ACORN v3的原因。本文聚焦于该密码,尝试研究在已知部分密钥流比特和其余状态比特的情况下,如何获取ACORN v3的某些状态比特。这与[2,3]中提到的采样抗性相关。特别地,我们观察到长度为47的线性反馈移位寄存器(S107,…, S153)可以从47个密钥流比特以及ACORN v3其余 293 −47= 246个状态比特中恢复。这是通过建立一组方程并将其输入到SAGE等SAT求解器实现的[8]。类似地,长度为61的线性反馈移位寄存器中的60位(S0,…, S59)可以从72个密钥流比特以及该密码其余233个状态比特中恢复。此内容在第2节中给出。此类观察有助于针对流密码实施具有不同参数的时间‐内存‐数据权衡攻击(TMDTO攻击)。

在TMDTO攻击中,我们有四个参数:预处理时间 P、所需内存(辅助存储中的表)大小 M、数据量 D(对于流密码而言即密钥流)以及在线时间 T(对表的访问次数,即对辅助存储的访问次数)。如果密钥长度为 k比特,并且所有参数 P、 M、 T、 D均小于 $2^k$,则可视为对该密码的一种突破。如[10, 第3节.3.2]所述,由于ACORN v3的状态大小(n= 293)超过其密钥长度( k= 128)的两倍,因此此类攻击难以实现。然而,TMDTO攻击还存在另一种含义:允许预处理时间超过穷举密钥搜索的时间,从而尝试最小化在线参数M、 T、 D的最大值。若在线参数小于 $2^k$,则在密码分析意义上具有一定吸引力。

对于BG攻击[1,5],,最佳情况是在增加 P= T的代价下,使 P= T= M= D= $2^{n/2}$和 M、 D得以降低。因此,即使在 P> $2^{n/2}$的情况下,也无法实现max{T, M, D}< $2^{n/2}$。相反,我们采用[2,3],的思想,通过将预处理时间 P增加到超过 $2^{n/2}$,可以使得三个在线参数 T、 M、 D均降低至小于 $2^{n/2}$。在这方面,我们获得了类似P= $2^{171}$、 M= T= D= $2^{120}$的参数,使得在 ACORN v3[10]的情况下,所有在线参数均小于穷举密钥搜索的复杂度 $2^{128}$。这将在第3节中给出。在进一步讨论之前,我们先介绍该密码算法。

1.1 ACORNv3描述

我们在此简要说明与本研究相关的ACORN v3的描述。我们假设明文消息为一串0序列,并仅关注提供密钥流的伪随机生成算法(PRGA)。我们省略了该密码的密钥加载算法(KLA)和密钥调度算法(KSA),这些内容可在[10]找到。这是因为对PRGA期间秘密状态比特的恢复以及进一步的TMDTO攻击的研究可独立于初始化过程进行。如前所述,ACORN v3包含6个LFSR,并额外附加四位比特以构成293位状态。ACORN的结构框图如图1所示,其中 ft表示反馈位, mt表示在 tth步时的消息比特。[10]。我们记

示意图0

通过 St表示密码的状态,并将其相应的位表示为: St+0… St+292。该密码具有以下三个函数。

输出函数 。对于任何状态 t,输出位 zt的生成方式如下:
$$
zt=St+12 \oplus St+154 \oplus maj(St+235, St+61, St+193) \oplus ch(St+230, St+111, St+66) \tag{1}
$$

反馈函数 。 任意状态 t的反馈位ft生成如下:
$$
ft=St+0 \oplus(\sim St+107)\oplus maj(St+244, St+23, St+160) \oplus(cat\&St+196)\oplus(cbt\&zt) \tag{2}
$$

状态更新函数 。 在执行移位之前,位St+289、 St+230、St+193、 St+154、 St+107、 St+61按如下方式更新:
$$
S(t+289)= S(t+289) \oplus S(t+235) \oplus S(t+230) \tag{3}
$$
$$
S(t+230)= S(t+230) \oplus S(t+196) \oplus S(t+193) \tag{4}
$$
$$
S(t+193)= S(t+193) \oplus S(t+160) \oplus S(t+154) \tag{5}
$$
$$
S(t+154)= S(t+154) \oplus S(t+111) \oplus S(t+107) \tag{6}
$$
$$
S(t+107)= S(t+107) \oplus S(t+66) \oplus S(t+61) \tag{7}
$$
$$
S(t+61)= S(t+61) \oplus S(t+23) \oplus S(t+0) \tag{8}
$$

然后,下一位使用反馈位进行初始化:
$$
St+293= ft \tag{9}
$$

2 恢复状态中某些比特的方法

BSW采样[2,3]的基本动机是,通过观察密钥流序列 zt并猜测状态的剩余部分,可以恢复状态中的某些比特。这减少了搜索空间,并为TMDTO攻击提供了更广泛的参数选择范围。我们在此考虑两种方法:一种是使用SAT求解器,另一种是通过试错法手动发现方程。

2.1 使用SAT求解器

为此,我们首先构造一组方程,然后将其输入SAT求解器。在构造方程时,所形成方程的次数迅速增加,这使得寻找解变得非常困难。因此,我们必须通过引入新变量来采用一种特定的方法来构建方程。这一点与[9]一致。考虑 ACORN v3的某个PRGA轮 t。该轮的方程为:1. 1个输出位方程,2. 1个反馈位方程,以及3. 6个状态更新方程。

在PRGA开始时,攻击者拥有293个状态变量 S0, S1,…, S292。攻击者可以获得一个长度为 的密钥流 z0, z1,… z−1。接下来我们将解释如何将输出方程引入到方程组中。如(1)中所述,输出方程为:
$$
zt= St+12 \oplus St+154 \oplus maj(St+235, St+61, St+193) \oplus ch(St+230, St+111, St+66) \tag{10}
$$

为了将方程添加到SAT求解器中,这些方程被表示为在布尔多项式环中等于零的形式。也就是说,输出方程被写成
$$
zt \oplus St+12 \oplus St+154 \oplus maj(St+235, St+61, St+193) \oplus ch(St+230, St+111, St+66) \equiv 0, \tag{11}
$$
对于 $ t= 0,1,2,…, − 1 $ 并添加到系统中。因此,我们得到一组输出方程如下:
$$
z0 \oplus S12 \oplus S154 \oplus maj(S235, S61, S193) \oplus ch(S230, S111, S66) \equiv 0
$$
$$
z1 \oplus S13 \oplus S155 \oplus maj(S236, S62, S194) \oplus ch(S231, S112, S67) \equiv 0
$$

$$
z(−1) \oplus S(−1+12) \oplus S(−1+154) \oplus maj(S(−1+235), S(−1+61), S(−1+193)) \oplus ch(S(−1+230), S(−1+111), S(−1+66)) \equiv 0
$$

接下来我们讨论将反馈位方程纳入方程组的问题。如(2)中所述,PRGA的反馈位方程为:
$$
ft= St+0 \oplus(\sim St+107)\oplus maj(St+244, St+23, St+160)\oplus S196 \tag{12}
$$

然而,生成的反馈位是未知的。因此,直接用反馈方程替换状态变量St+293会增加非线性。相反,我们引入新的变量 f0, f1,… f−1,并以如下方式将这些方程添加到SAT求解器中:
$$
f0 \oplus S0 \oplus(\sim S107)\oplus maj(S244, S23, S160)\oplus S196 \equiv 0
$$
$$
f1 \oplus S1 \oplus(\sim S108)\oplus maj(S245, S24, S161)\oplus S197 \equiv 0
$$

$$
f(−1) \oplus S(−1) \oplus(\sim S(−1+107)) \oplus maj(S(−1+244), S(−1+23), S(−1+160))\oplus S(−1+196) \equiv 0
$$

到目前为止,系统中已引入了 $ 2 $ 个新方程和 $ $ 个新变量。如前所述,变量 $St+289, St+230, St+193, St+154, St+107, St+61 $ 在步骤3 中被更新。为此,我们引入 $ 6 $ 个新变量 $ a01, a02, a03,a 0 1, a−1 2, a−1 3, a−1 4, a−1 5, a−1 6 ,$ ,, , 并向系统添加以下方程(对于 $ t= 0,1,…, −1 $):
$$
at 1 \oplus S(t+289) \oplus S(t+235) \oplus S(t+230) \equiv 0
$$
$$
at 2 \oplus S(t+230) \oplus S(t+196) \oplus S(t+193) \equiv 0
$$
$$
at 3 \oplus S(t+193) \oplus S(t+160) \oplus S(t+154) \equiv 0
$$
$$
at 4 \oplus S(t+154) \oplus S(t+111) \oplus S(t+107) \equiv 0
$$
$$
at 5 \oplus S(t+107) \oplus S(t+66) \oplus S(t+61) \equiv 0
$$
$$
at 6 \oplus S(t+61) \oplus S(t+23) \oplus S(t+0) \equiv 0
$$

由于引入了新变量,需要引入新的方程以保持系统的 consistency。即,以下方程被添加到系统中:
$$
at 1 \oplus S(t+288) \equiv 0
$$
$$
at 2 \oplus S(t+229) \equiv 0
$$
$$
at 3 \oplus S(t+192) \equiv 0
$$
$$
at 4 \oplus S(t+153) \equiv 0
$$
$$
at 5 \oplus S(t+106) \equiv 0
$$
$$
at 6 \oplus S(t+60) \equiv 0
$$
对于 $ t= 0,1,…, − 1 $。最后,我们将反馈位代入状态变量:
$$
S293+t= ft \quad \forall t \in[0, −1].
$$

因此,使用的变量数量为 293+ + 6= 293+ 7,建立的方程数量为 + + 6= 8个方程。所有方程被收集后输入给SAT求解器。

我们设置SAT求解器以找出上述方程组的所有可能解。通过这种方式,我们可以确保如果SAT求解器仅返回一个解,则该方程组不存在其他解,从而能够求解出状态。然而,在我们实验的少数情况下,未能实现这一点。例如,当考虑借助70个密钥流比特恢复60比特时,有时会得到两个解。其原因是密钥流比特的数量不足,因此SAT求解器提供了多个解而非唯一解。

我们使用SAGE‐7中提供的SAT求解器Cryptominisat‐2.9.6。6[8]实验在 一台硬件配置为Intel(R) Core(TM) i5‐4200M CPU @ 2.50 GHz和8GB内存、 运行Ubuntu‐16.10的笔记本电脑上进行。提供了一些实验数据,其中每一行基于 $ 2^{15} $次实验。

密钥流比特 used 状态比特 恢复 恢复比特的位置 多个(两个)解的比例 多个(两个) 解 时平间均(秒)
47 47 S107… S153 0 0.076
43 43 S12… S54 0 0.067
72 60 S0… S59 1/$2^{10}$ 0.127
60 53 S107… S150, S56,… S64 1/$2^{14}$ 0.097

2.2 通过观察构建方程,而非使用SAT求解器

在本节中,我们构建一个方程组,用于通过前49位密钥流恢复49位内部状态。为了执行此恢复,我们需要以特定模式固定10位内部状态,并猜测剩余的状态比特。待恢复的内部状态位由集合 R= R1∪R2表示,其中 R1={S(t+107): t= 0,......, 43}和 R2={S(t+56): t= 0,......, 4}。生成密钥流的方程(1)可写为:
$$
zt= S(t+12) \oplus S(t+154) \oplus S(t+235)S(t+61) \oplus S(t+235)S(t+193) \oplus S(t+193)S(t+61) \oplus S(t+230)S(t+111) \oplus S(t+230)S(t+66) \oplus S(t+66). \tag{13}
$$

注意,在上述方程中,带下划线的位是反馈位。在生成输出位之前,状态比特根据以下方程进行更新:
$$
S(t+289)= S(t+289) \oplus S(t+235) \oplus S(t+230)
$$
$$
S(t+230)= S(t+230) \oplus S(t+196) \oplus S(t+193)
$$
$$
S(t+193)= S(t+193) \oplus S(t+160) \oplus S(t+154)
$$
$$
S(t+154)= S(t+154) \oplus S(t+111) \oplus S(t+107)
$$
$$
S(t+107)= S(t+107) \oplus S(t+66) \oplus S(t+61)
$$
$$
S(t+61)= S(t+61) \oplus S(t+23) \oplus S(t+0) \tag{14}
$$

因此,公式(13)可以写成
$$
S(t+107)= zt \oplus S(t+12)\oplus S(t+154) \oplus S(t+111) \oplus St+235(S(t+61) \oplus S(t+23) \oplus S(t+0)) \oplus S(t+235)(S(t+193) \oplus S(t+160) \oplus S(t+154)) \oplus(S(t+193) \oplus S(t+160) \oplus S(t+154))(S(t+61) \oplus S(t+23) \oplus S(t+0)) \oplus(S(t+230) \oplus S(t+196) \oplus S(t+193))S(t+111) \oplus(S(t+230) \oplus S(t+196) \oplus S(t+193))S(t+66) \oplus S(t+66), \tag{15}
$$
这使得恢复更加简单,因为方程等式右侧的所有比特均为状态比特(而非反馈位) t= 0,…,32。然而,当我们将 t= 33,…,48代入公式(15)时,反馈位也会被涉及并需要进行计算。

现在我们使用方程(15)来恢复集合 R1的内部状态位。状态比特的恢复按一定顺序进行。例如,如果我们试图通过将 S107代入方程(15)来恢复 t= 0,则 S111会出现在等式右侧,并需要已知 S111。因此,在恢复 S111之前,必须先恢复我 S们10定7。义四个集合 $ R3, R4, R5, R6 $,其中
$$
R3={S(t+107): t= 40, 36,…, 0}
$$
$$
R4={S(t+107): t= 41, 37,…, 1}
$$
$$
R5={S(t+107): t= 42, 38,…, 2}
$$
$$
R6={S(t+107): t= 43, 39,…, 3}
$$
并且每个$Ri \subset R1$,对于$ i= 3…,6$。状态比特的恢复顺序为R3, R4, R5, R6和 $ R2 $,即先恢复 $ R3$的状态比特,然后是$R4$,依此类推。对于每个集合$ Ri: i= 2…,6$,索引较高的元素优先恢复。在恢复 R1时,无需固定任何内部状态位。然而,在恢复$ R2$时,需根据表2固定内部状态位。令集合$ F$表示根据表2所固定的内部状态位。

现在我们描述 R3的恢复。通过将 t= 40代入公式(15)来恢复内部状态位 S147,由此可得
$$
S147= z40 \oplus S52 \oplus S194 \oplus S151 \oplus S275(S101 \oplus S63 \oplus S40) \oplus S275(S233 \oplus S200 \oplus S194)\oplus(S233 \oplus S200 \oplus S194)(S101 \oplus S63 \oplus S40) \oplus(S270 \oplus S236 \oplus S233)S151 \oplus(S270 \oplus S236 \oplus S233)S106 \oplus S106. \tag{16}
$$

行号 状态 比特及值
1 Si+268= 0: i= 0…, 4
2 Si+187= S[i+226] ⊕ S[i+193] ⊕ S[i+160] ⊕ S[i+154]: i= 0…, 3
3 S191= S[230] ⊕ S[196] ⊕ S[193] ⊕ S[197] ⊕ S[164] ⊕ S[158]
## 3 TMDTO攻击的复杂度

现在我们将详细描述TMDTO攻击。我们的状态大小为 n= 293位。因此,使用单个表的标准TMDTO公式[2,3]如下所示:
– TM²D²= N², where N= 2ⁿ, – D² ≤ T,
– P= N / D.
在预处理阶段,我们将准备一个包含 m行和 t列的表,其中mt²= N以实现成功的攻击。表的数量为 t / D,对于单个表我们有 t= D。表的每一行包含一条由 t个元素组成的链。假设一个特定的 n= 293比特状态为 ζ, f为单向函数。
此处的单向函数 f指的是:使用状态 ζ的密码将再次运行n次,以生成 n个密钥流比特。这些比特将被加载为新的状态,称为 η。即 η= f(ζ)。我们将从一个随机状态开始,通过此方法生成一条包含 t个元素的行。这样的行共有 m条。
因此,表的总大小为 mt。然而,完整的行不会被保存,仅保存起始和最终元素。
因此,表的存储需求为 O(m),这实际上是内存参数 M。

3.1 由47密钥流比特获知47比特状态

现在考虑一种情况,即我们能够从ψ个连续的密钥流比特和其他剩余的状态比特中恢复出 ψ位状态。在这种情况下,我们针对密钥流比特采用一个固定的模式,只有当该模式在密钥流中出现时,才尝试在表中搜索对应的状态。因此,在这种情况下,我们考虑状态大小为 n − ψ位,相关参数记为N′= 2ⁿ⁻ᵠ、 P′、 M′、 T′、 D′。现在考虑具体参数,参考表1,其中 ψ= 47。因此, T′M′D′²= N′²= 2²⁽²⁹³⁻⁴⁷⁾。让我们考虑 D′²= T T′= M′= 2¹²³ T′M′= 2²⁹³⁻⁴⁷= 2²⁴⁶ D′= 2⁶¹·⁵。于是, 我们得到。现在,可以假设,以及。然而,正如我们所讨论的,在在线阶段,只有当特定的 ψ位模式出现时才能发起攻击,因此有 D= 2ᵠD′。最终,我们得到参数 T= T′= 2¹²³、 M= M′= 2¹²³ 、 D= 2ᵠD′= 2⁴⁷ · 2⁶¹·⁵= 2¹⁰⁸·⁵、 P= P′= N ′ / D ′= 2¹⁸⁴·⁵。这使得在线参数的最大值为 2¹²³,,小于复杂度为 2¹²⁸的穷举密钥搜索。然而,正如预期的那样,预处理时间远大于穷举密钥搜索。

步骤 用于恢复的方程 猜测的位
0 S147= z40 ⊕ S52 ⊕ S194 ⊕ S151 ⊕ S275(S101 ⊕ S63 ⊕ S40) ⊕ S275(S233 ⊕ S200 ⊕ S194) ⊕(S233 ⊕ S200 ⊕ S194)(S101 ⊕ S63 ⊕ S40) ⊕(S270 ⊕ S236 ⊕ S233)S151 ⊕(S270 ⊕ S236 ⊕ S233)S106 ⊕ S106 S52, S101, S63, S25, S2, S40, S275, S233, S199, S196, S200, S167, S161 S194, S155, S236, S202, S151, S106
1 S143= z36 ⊕ S48 ⊕ S190 ⊕ S147 ⊕ S271(S97 ⊕ S59 ⊕ S36) ⊕ S271(S229 ⊕ S196 ⊕ S190) ⊕(S229 ⊕ S196 ⊕ S190)(S97 ⊕ S59 ⊕ S36) ⊕(S266 ⊕ S232 ⊕ S229)S147 ⊕(S266 ⊕ S232 ⊕ S229)S102 ⊕ S102 S48, S97, S36, S229, S163, S157, S266, S232, S198, S195, S102
2 S139= z32 ⊕ S44 ⊕ S186 ⊕ S143 ⊕ S267(S93 ⊕ S55 ⊕ S32) ⊕ S267(S225 ⊕ S192 ⊕ S186) ⊕(S225 ⊕ S192 ⊕ S186)(S93 ⊕ S55 ⊕ S32) ⊕(S262 ⊕ S228 ⊕ S225)S143 ⊕(S262 ⊕ S228 ⊕ S225)S98 ⊕ S98 S44, S93, S55, S32, S267, S225, S192, S186 S262, S228, S98
3 S135= z28 ⊕ S40 ⊕ S182 ⊕ S139 ⊕ S263(S89 ⊕ S51 ⊕ S28) ⊕ S263(S221 ⊕ S188 ⊕ S182)⊕(S221 ⊕ S188 ⊕ S182) (S89 ⊕ S51 ⊕ S28) ⊕(S258 ⊕ S224 ⊕ S221)S139 ⊕(S258 ⊕ S224 ⊕ S221)S94 ⊕ S94 S89, S51, S28, S 263, S221, S182, S258, S224 S94
4 S131= z24 ⊕ S36 ⊕ S178 ⊕ S135 ⊕ S259(S85 ⊕ S47 ⊕ S24) ⊕ S259(S217 ⊕ S184 ⊕ S178) ⊕(S217 ⊕ S184 ⊕ S178)(S85 ⊕ S47 ⊕ S24) ⊕(S254 ⊕ S220 ⊕ S217)S135 ⊕(S254 ⊕ S220 ⊕ S217)S90 ⊕ S90 S85, S47, S24, S259, S217, S184, S178, S254 S220, S90
5 S127= z20 ⊕ S32 ⊕ S174 ⊕ S131 ⊕ S255(S81 ⊕ S43 ⊕ S20) ⊕ S255(S213 ⊕ S180 ⊕ S174) ⊕(S213 ⊕ S180 ⊕ S174)(S81 ⊕ S43 ⊕ S20) ⊕(S250 ⊕ S216 ⊕ S213)S131 ⊕(S250 ⊕ S216 ⊕ S213)S86 ⊕ S86 S81, S43, S20, S255, S213, S180, S174, S250, S216, S86
6 S123= z16 ⊕ S28 ⊕ S170 ⊕ S127 ⊕ S251(S77 ⊕ S39 ⊕ S16) ⊕ S251(S209 ⊕ S176 ⊕ S170) ⊕(S209 ⊕ S176 ⊕ S170)(S77 ⊕ S39 ⊕ S16) ⊕(S246 ⊕ S212 ⊕ S209)S127 ⊕(S246 ⊕ S212 ⊕ S209)S82 ⊕ S82 S77, S39, S16, S251, S209, S176, S170, S246 S212, S82
7 S119= z12 ⊕ S24 ⊕ S166 ⊕ S123 ⊕ S247(S73 ⊕ S35 ⊕ S12) ⊕ S247(S205 ⊕ S172 ⊕ S166) ⊕(S205 ⊕ S172 ⊕ S166)(S73 ⊕ S35 ⊕ S12) ⊕(S242 ⊕ S208 ⊕ S205)S123 ⊕(S242 ⊕ S208 ⊕ S205)S78 ⊕ S78 S73, S35, S12, S247, S205, S172, S166, S242, S208, S78
8 S115= z8 ⊕ S20 ⊕ S162 ⊕ S119 ⊕ S243(S69 ⊕ S31 ⊕ S8) ⊕ S243(S201 ⊕ S168 ⊕ S162) ⊕(S201 ⊕ S168 ⊕ S162)(S69 ⊕ S31 ⊕ S8) ⊕(S238 ⊕ S204 ⊕ S201)S119 ⊕(S238 ⊕ S204 ⊕ S201)S74 ⊕ S74 S69, S31, S8, S243, S201, S168, S162, S238 S204, S74
9 S111= z4 ⊕ S16 ⊕ S158 ⊕ S115 ⊕ S239(S65 ⊕ S27 ⊕ S4) ⊕ S239(S197 ⊕ S164 ⊕ S158) ⊕(S197 ⊕ S164 ⊕ S158)(S65 ⊕ S 27 ⊕ S 4) ⊕(S234 ⊕ S 200 ⊕ S 197) S 115 ⊕(S234 ⊕ S 200 ⊕ S 197) S 70 ⊕ S 70 S65 , S27 , S4 , S239 , S197, S164, S158, S234 S 70
10 S107= z0 ⊕ S12 ⊕ S154 ⊕ S111 ⊕ S235(S61 ⊕ S23 ⊕ S0) ⊕ S235(S193 ⊕ S160 ⊕ S154) ⊕(S193 ⊕ S160 ⊕ S154)(S61 ⊕ S23 ⊕ S0) ⊕(S230 ⊕ S196 ⊕ S193)S111 ⊕(S230 ⊕ S196 ⊕ S193)S66 ⊕ S66 S61, S23, S0, S235, S193, S160, S154, S230 S66
11 S148= z41 ⊕ S53 ⊕ S195 ⊕ S152 ⊕ S276(S102 ⊕ S64 ⊕ S41) ⊕ S276(S234 ⊕ S201 ⊕ S195) ⊕(S234 ⊕ S201 ⊕ S195)(S102 ⊕ S64 ⊕ S41) ⊕(S271 ⊕ S237 ⊕ S234)S152 ⊕(S271 ⊕ S237 ⊕ S234)S107 ⊕ S107 S53, S64, S26, S3, S41, S276, S156, S237 S203, S152
12 S144= z37 ⊕ S49 ⊕ S191 ⊕ S148 ⊕ S272(S98 ⊕ S60 ⊕ S37) ⊕ S272(S230 ⊕ S197 ⊕ S191) ⊕(S230 ⊕ S197 ⊕ S191) (S98 ⊕ S60 ⊕ S37) ⊕(S267 ⊕ S233 ⊕ S230)S148 ⊕(S267 ⊕ S233 ⊕ S230)S103 ⊕ S103 S49, S37, S103
13 S140= z33 ⊕ S45 ⊕ S187 ⊕ S144 ⊕ S268(S94 ⊕ S56 ⊕ S33) ⊕ S268(S226 ⊕ S193 ⊕ S187) ⊕(S226 ⊕ S193 ⊕ S187) (S94 ⊕ S56 ⊕ S33) ⊕(S263 ⊕ S229 ⊕ S226)S144 ⊕(S263 ⊕ S229 ⊕ S226)S99 ⊕ S99 S45, S94, S33, S226, S99
14 S136= z29 ⊕ S41 ⊕ S183 ⊕ S140 ⊕ S264(S90 ⊕ S52 ⊕ S29) ⊕ S264(S222 ⊕ S189 ⊕ S183)⊕(S222 ⊕ S189 ⊕ S183) (S90 ⊕ S52 ⊕ S29) ⊕(S259 ⊕ S225 ⊕ S222)S140 ⊕(S259 ⊕ S225 ⊕ S222)S95 ⊕ S95 S29, S264, S222, S183, S95
15 S132= z25 ⊕ S37 ⊕ S179 ⊕ S136 ⊕ S260(S86 ⊕ S48 ⊕ S25) ⊕ S260(S218 ⊕ S185 ⊕ S179) ⊕(S218 ⊕ S185 ⊕ S179) (S86 ⊕ S48 ⊕ S25) ⊕(S255 ⊕ S221 ⊕ S218)S136 ⊕(S255 ⊕ S221 ⊕ S218)S91 ⊕ S91 S260, S218, S185, S179, S91
16 S128= z21 ⊕ S33 ⊕ S175 ⊕ S132 ⊕ S256(S82 ⊕ S44 ⊕ S21) ⊕ S256(S214 ⊕ S181 ⊕ S175) ⊕(S214 ⊕ S181 ⊕ S175) (S82 ⊕ S44 ⊕ S21) ⊕(S251 ⊕ S217 ⊕ S214)S132 ⊕(S251 ⊕ S217 ⊕ S214)S87 ⊕ S87 S21, S256, S214, S181, S175, S87
17 S124= z17 ⊕ S29 ⊕ S171 ⊕ S128 ⊕ S252(S78 ⊕ S40 ⊕ S17) ⊕ S252(S210 ⊕ S177 ⊕ S171) ⊕(S210 ⊕ S177 ⊕ S171) (S78 ⊕ S40 ⊕ S17) ⊕(S247 ⊕ S213 ⊕ S210)S128 ⊕(S247 ⊕ S213 ⊕ S210)S83 ⊕ S83 S17, S252, S210, S177, S171, S83
18 S120= z13 ⊕ S25 ⊕ S167 ⊕ S124 ⊕ S248(S74 ⊕ S36 ⊕ S13) ⊕ S248(S206 ⊕ S173 ⊕ S167) ⊕(S206 ⊕ S173 ⊕ S167) (S74 ⊕ S36 ⊕ S13) ⊕(S243 ⊕ S209 ⊕ S206)S124 ⊕(S243 ⊕ S209 ⊕ S206)S79 ⊕ S79 S13, S248, S206, S173, S79
19 S116= z9 ⊕ S21 ⊕ S163 ⊕ S120 ⊕ S244(S70 ⊕ S32 ⊕ S9) ⊕ S244(S202 ⊕ S169 ⊕ S163) ⊕(S202 ⊕ S169 ⊕ S163)(S70 ⊕ S32 ⊕ S9) ⊕(S239 ⊕ S205 ⊕ S202)S120 ⊕(S239 ⊕ S 205 ⊕ S 202) S 75 ⊕ S 75 S9, S244, S169, S75
20 S112= z5 ⊕ S17 ⊕ S159 ⊕ S116 ⊕ S240(S66 ⊕ S28 ⊕ S5) ⊕ S240(S198 ⊕ S165 ⊕ S159) ⊕(S198 ⊕ S165 ⊕ S159)(S66 ⊕ S28 ⊕ S5) ⊕(S235 ⊕ S201 ⊕ S198)S116 ⊕(S235 ⊕ S201 ⊕ S198)S71 ⊕ S71 S5, S240, S165, S159, S71
21 S108= z1 ⊕ S13 ⊕ S155 ⊕ S112 ⊕ S236(S62 ⊕ S24 ⊕ S1) ⊕ S236(S194 ⊕ S161 ⊕ S155) ⊕(S194 ⊕ S161 ⊕ S155)(S62 ⊕ S24 ⊕ S1) ⊕(S231 ⊕ S197 ⊕ S194)S112 ⊕(S231 ⊕ S197 ⊕ S194)S67 ⊕ S67 S62, S1, S231, S67
22 S149= z42 ⊕ S54 ⊕ S196 ⊕ S153 ⊕ S277(S103 ⊕ S65 ⊕ S42) ⊕ S277(S235 ⊕ S202 ⊕ S196) ⊕(S235 ⊕ S202 ⊕ S196) (S103 ⊕ S65 ⊕ S42) ⊕(S272 ⊕ S238 ⊕ S235)S153 ⊕(S272 ⊕ S238 ⊕ S235)S108 ⊕ S108 S54, S42, S277, S153
23 S145= z38 ⊕ S50 ⊕ S192 ⊕ S149 ⊕ S273(S99 ⊕ S61 ⊕ S38) ⊕ S273(S231 ⊕ S198 ⊕ S192) ⊕(S231 ⊕ S198 ⊕ S192) (S99 ⊕ S61 ⊕ S38) ⊕(S268 ⊕ S234 ⊕ S231)S149 ⊕(S268 ⊕ S234 ⊕ S231)S104 ⊕ S104 S50, S38, S273, S104
24 S141= z34 ⊕ S46 ⊕ S188 ⊕ S145 ⊕ S269(S95 ⊕ S57 ⊕ S34) ⊕ S269(S227 ⊕ S194 ⊕ S188) ⊕(S227 ⊕ S194 ⊕ S188)(S95 ⊕ S57 ⊕ S34) ⊕(S264 ⊕ S230 ⊕ S227)S145 ⊕(S264 ⊕ S230 ⊕ S227)S100 ⊕ S100 S46, S34, S227 S100
25 S137= z30 ⊕ S42 ⊕ S184 ⊕ S141 ⊕ S265(S91 ⊕ S53 ⊕ S30) ⊕ S265(S223 ⊕ S190 ⊕ S184)⊕(S223 ⊕ S190 ⊕ S184) (S91 ⊕ S53 ⊕ S30) ⊕(S260 ⊕ S226 ⊕ S223)S141 ⊕(S260 ⊕ S226 ⊕ S223)S96 ⊕ S96 S30, S265, S223, S96
26 S133= z26 ⊕ S38 ⊕ S180 ⊕ S137 ⊕ S261(S87 ⊕ S49 ⊕ S26) ⊕ S261(S219 ⊕ S186 ⊕ S180) ⊕(S219 ⊕ S186 ⊕ S180)(S87 ⊕ S49 ⊕ S26) ⊕(S256 ⊕ S222 ⊕ S219)S137 ⊕(S256 ⊕ S222 ⊕ S219)S92 ⊕ S92 S261, S219, S92
27 S129= z22 ⊕ S34 ⊕ S176 ⊕ S133 ⊕ S257(S83 ⊕ S45 ⊕ S22) ⊕ S257(S215 ⊕ S182 ⊕ S176) ⊕(S215 ⊕ S182 ⊕ S176)(S83 ⊕ S45 ⊕ S22) ⊕(S252 ⊕ S218 ⊕ S215)S133 ⊕(S252 ⊕ S218 ⊕ S215)S88 ⊕ S88 S22, S257, S215, S88
28 S125= z18 ⊕ S30 ⊕ S172 ⊕ S129 ⊕ S253(S79 ⊕ S41 ⊕ S18) ⊕ S253(S211 ⊕ S178 ⊕ S172) ⊕(S211 ⊕ S178 ⊕ S172)(S79 ⊕ S41 ⊕ S18) ⊕(S248 ⊕ S214 ⊕ S211)S129 ⊕(S248 ⊕ S214 ⊕ S211)S84 ⊕ S84 S18, S253, S211, S84
29 S121= z14 ⊕ S26 ⊕ S168 ⊕ S125 ⊕ S249(S75 ⊕ S37 ⊕ S14) ⊕ S249(S207 ⊕ S174 ⊕ S168) ⊕(S207 ⊕ S174 ⊕ S168)(S75 ⊕ S37 ⊕ S14) ⊕(S244 ⊕ S210 ⊕ S207)S125 ⊕(S244 ⊕ S 210 ⊕ S 207) S 80 ⊕ S 80 S14, S249, S207, S80
30 S117= z10 ⊕ S22 ⊕ S164 ⊕ S121 ⊕ S245(S71 ⊕ S33 ⊕ S10) ⊕ S245(S203 ⊕ S170 ⊕ S164) ⊕(S203 ⊕ S170 ⊕ S164) (S71 ⊕ S33 ⊕ S10) ⊕(S240 ⊕ S206 ⊕ S203)S121 ⊕(S240 ⊕ S206 ⊕ S203)S76 ⊕ S76 S10, S245, S76
31 S113= z6 ⊕ S18 ⊕ S160 ⊕ S117 ⊕ S241(S67 ⊕ S29 ⊕ S6) ⊕ S241(S199 ⊕ S166 ⊕ S160) ⊕(S199 ⊕ S166 ⊕ S160) (S67 ⊕ S29 ⊕ S6) ⊕(S236 ⊕ S202 ⊕ S199)S117 ⊕(S236 ⊕ S202 ⊕ S199)S72 ⊕ S72 S6, S241, S72
32 S109= z2 ⊕ S14 ⊕ S156 ⊕ S113 ⊕ S237(S63 ⊕ S25 ⊕ S2) ⊕ S237(S195 ⊕ S162 ⊕ S156) ⊕(S195 ⊕ S162 ⊕ S156) (S63 ⊕ S25 ⊕ S2) ⊕(S232 ⊕ S198 ⊕ S195)S113 ⊕(S232 ⊕ S198 ⊕ S195)S68 ⊕ S68 S68
33 S150= z43 ⊕ S55 ⊕ S197 ⊕ S154 ⊕ S278(S104 ⊕ S66 ⊕ S43) ⊕ S278(S236 ⊕ S203 ⊕ S197) ⊕(S236 ⊕ S203 ⊕ S197) (S104 ⊕ S66 ⊕ S43) ⊕(S273 ⊕ S239 ⊕ S236)S154 ⊕(S273 ⊕ S239 ⊕ S236)S109 ⊕ S109 S278
34 S146= z39 ⊕ S51 ⊕ S193 ⊕ S150 ⊕ S274(S100 ⊕ S62 ⊕ S39) ⊕ S274(S232 ⊕ S199 ⊕ S193) ⊕(S232 ⊕ S199 ⊕ S193) (S100 ⊕ S62 ⊕ S39) ⊕(S269 ⊕ S235 ⊕ S232)S150 ⊕(S269 ⊕ S235 ⊕ S232)S105 ⊕ S105 S274, S105
35 S142= z35 ⊕ S47 ⊕ S189 ⊕ S146 ⊕ S270(S96 ⊕ S58 ⊕ S35) ⊕ S270(S228 ⊕ S195 ⊕ S189) ⊕(S228 ⊕ S195 ⊕ S189) (S96 ⊕ S58 ⊕ S35) ⊕(S265 ⊕ S231 ⊕ S228)S146 ⊕(S265 ⊕ S231 ⊕ S228)S101 ⊕ S101
36 S138= z31 ⊕ S43 ⊕ S185 ⊕ S142 ⊕ S266(S92 ⊕ S54 ⊕ S31) ⊕ S266(S224 ⊕ S191 ⊕ S185)⊕(S224 ⊕ S191 ⊕ S185) (S92 ⊕ S54 ⊕ S31) ⊕(S261 ⊕ S227 ⊕ S224)S142 ⊕(S261 ⊕ S227 ⊕ S224)S97 ⊕ S97
37 S134= z27 ⊕ S39 ⊕ S181 ⊕ S138 ⊕ S262(S88 ⊕ S50 ⊕ S27) ⊕ S262(S220 ⊕ S187 ⊕ S181)⊕(S220 ⊕ S187 ⊕ S181) (S88 ⊕ S50 ⊕ S27) ⊕(S257 ⊕ S223 ⊕ S220)S138 ⊕(S257 ⊕ S223 ⊕ S220)S93 ⊕ S93
38 S130= z23 ⊕ S35 ⊕ S177 ⊕ S134 ⊕ S258(S84 ⊕ S46 ⊕ S23) ⊕ S258(S216 ⊕ S183 ⊕ S177) ⊕(S216 ⊕ S183 ⊕ S177) (S84 ⊕ S46 ⊕ S23) ⊕(S253 ⊕ S219 ⊕ S216)S134 ⊕(S253 ⊕ S219 ⊕ S216)S89 ⊕ S89
39 S126= z19 ⊕ S31 ⊕ S173 ⊕ S130 ⊕ S254(S80 ⊕ S42 ⊕ S19) ⊕ S254(S212 ⊕ S179 ⊕ S173) ⊕(S212 ⊕ S179 ⊕ S173)(S80 ⊕ S42 ⊕ S19) ⊕(S249 ⊕ S215 ⊕ S212)S130 ⊕(S249 ⊕ S215 ⊕ S212)S85 ⊕ S85 S19
40 S122= z15 ⊕ S27 ⊕ S169 ⊕ S126 ⊕ S250(S76 ⊕ S38 ⊕ S15) ⊕ S250(S208
【故障诊断】【pytorch】基于CNN-LSTM故障分类的轴承故障诊断研究[西储大学数据](Python代码实现)内容概要:本文介绍了基于CNN-LSTM神经网络模型的轴承故障分类方法,利用PyTorch框架实现,采用西储大学(Case Western Reserve University)公开的轴承故障数据集进行实验验证。该方法结合卷积神经网络(CNN)强大的特征提取能力和长短期记忆网络(LSTM)对时序数据的建模优势,实现对轴承不同故障类型和严重程度的高精度分类。文中详细阐述了数据预处理、模型构建、训练流程及结果分析过程,并提供了完整的Python代码实现,属于典型的工业设备故障诊断领域深度学习应用研究。; 适合人群:具备Python编程基础和深度学习基础知识的高校学生、科研人员及工业界从事设备状态监测故障诊断的工程师,尤其适合正在开展相关课题研究或希望复现EI级别论文成果的研究者。; 使用场景及目标:① 学习如何使用PyTorch搭建CNN-LSTM混合模型进行时间序列分类;② 掌握轴承振动信号的预处理特征学习方法;③ 复现并改进基于公开数据集的故障诊断模型,用于学术论文撰写或实际工业场景验证; 阅读建议:建议读者结合提供的代码逐行理解模型实现细节,重点关注数据加载、滑动窗口处理、网络结构设计及训练策略部分,鼓励在原有基础上尝试不同的网络结构或优化算法以提升分类性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值