7轮和8轮ARIA‐192与ARIA‐256上的改进中间相遇攻击
阿克希玛,张东勋,莫霍娜·戈什(B),AarushiGoel,和索米特拉 库马尔·萨纳德亚
英德拉普拉斯信息技术学院,德里(IIIT‐D),新德里,印度{akshima12014,donghoon,mohonag,aarushi12003,somitra}@iiitd.ac.in
摘要
ARIA分组密码自2004年起被韩国政府确立为韩国加密标准。在本文中,我们重新评估了简化轮数的ARIA‐192和ARIA‐256在单密钥模型下针对中间相遇(MITM)密钥恢复攻击的安全边界。我们提出了一种新的4轮区分器,以展示对ARIA‐192/256的最佳7轮和8轮MITM攻击。我们对ARIA‐192的7轮攻击的数据、时间和内存复杂度分别为2^113、2^135.1和2^130。我们对ARIA‐的8轮攻击的数据、时间、内存复杂度分别为2^115、2^136.1和2^130。这些攻击在所有三个维度上均优于此前对相同目标的最佳MITM攻击。我们对ARIA‐256的8轮攻击需要2^113次密码调用,其时间和内存复杂度分别为2^245.9和2^138。这在时间和内存复杂度方面均优于此前对ARIA‐256的最佳MITM攻击。此外,在我们的攻击中,我们能够恢复实际的秘密密钥,而不同于以往针对ARIA‐192/256存在的密码分析攻击。据我们所知,这是迄今为止首个对ARIA的实际密钥恢复攻击。我们采用多集合攻击——一种中间相遇攻击的变体——来实现这些结果。
关键词 :分组密码 · ARIA · Key恢复 · Differential特征 · Multiset攻击
1 引言
分组密码ARIA由权等人在ICISC 2003[12],提出,是一种采用置换‐替换网络(SPN)结构的128位分组密码,类似于高级加密标准[3],,支持三种密钥长度:128位、192位和256位。ARIA的第一个版本(版本0.8)针对128/192/256的密钥长度分别设置了10/12/14轮,并且其替换层仅使用了两种S盒[2,19]。随后在ICISC 2003上公布了ARIA版本0.9,其中使用了四种类型的S盒。之后升级为ARIA版本1。0[9],当前版本由韩国技术和标准局(KATS)——韩国政府标准机构——标准化为128位分组加密算法(KS X 1213)
c©斯普林格国际出版瑞士公司2015 A. 比留科夫和 V. 戈亚尔 (Eds.): INDOCRYPT 2015, LNCS 9462, 第198–217页, 2015. DOI: 10.1007/978‐3‐319‐26617‐6 11
本文档由 funstory.ai 的开源 PDF 翻译库 BabelDOC v0.5.10 (http://yadt.io) 翻译,本仓库正在积极的建设当中,欢迎 star 和关注。
改进的中间相遇攻击 199
于2004年12月。在此版本中,轮数增加至12/14/16,并在密钥调度算法中引入了一些修改。ARIA还被多个标准协议采纳,例如互联网工程任务组(RFC 5794[11])、安全套接层/传输层安全(RFC 6209[10])和PKCS #11[13]。
ARIA分组密码自问世以来的12年中已受到合理的密码分析。在[1],比留科夫等人对比了ARIA的第一个版本(版本0.8)并提出了针对轮数减少的ARIA变体的多种攻击方法,如截断差分密码分析、专用线性攻击、平方攻击等。在标准化ARIA(版本1.0)的官方规范文档中[12],,ARIA开发者分析了ARIA对许多经典密码分析方法(如差分与线性密码分析、不可能及高阶差分密码分析、滑动攻击、插值攻击等)的安全性,并声称ARIA相较于高级加密标准具有更强的抗攻击能力。在[18],吴等人提出了一种针对ARIA的6轮不可能差分攻击,该攻击的攻击复杂度随后由李等人在[15]中得到改进。在[16],李等人提出了针对ARIA的6轮积分攻击,随后弗莱施曼等人[8]展示了针对ARIA 5轮和6轮的回旋镖攻击。杜等人在[6],将攻击轮数增加一轮,展示了针对ARIA‐256的7轮不可能差分攻击。在[17],唐等人应用中间相遇(MITM)攻击破解了ARIA‐192/256的7轮和8轮版本。在表1中,我们总结了所有针对ARIA 版本 1.0的现有攻击。
在本研究中,我们改进了针对ARIA‐192/256的7轮和8轮中间相遇攻击的攻击复杂度。我们的工作受到Dunkelman等人在[7]中对高级加密标准(AES)提出的多集合攻击的启发。多集合攻击是Demirci等人在[4]中提出的中间相遇攻击的一种变体。Demirci等人的攻击涉及构建一组函数,将第一轮中的一个活跃字节映射到AES经过4轮后的另一个活跃字节。这组函数依赖于‘P’个参数,并可用一个包含 2^P个有序256字节序列条目的表来描述。该表被预先计算并存储,从而允许构建一个4轮区分器,并对最多8轮AES进行攻击。由于ARIA与AES之间存在结构相似性,唐等人在[17]中将类似的攻击应用于7轮和8轮ARIA。该攻击的瓶颈在于极高的内存复杂度,这一点在对ARIA的攻击中同样明显,如表1所示。为了降低Demirci对AES攻击的内存复杂度,Dunkelman等人在[7],中提出了多集合攻击,该方法将存储256个有序字节序列的思想替换为256个无序字节序列(含重数)。这通过将参数减少至‘Q’(其中,Q<P),降低了中间相遇攻击在AES上的内存和时间复杂度。他们还引入了差分枚举技术这一新思想,显著减少了构建多集合所需的参数数量,从 ‘Q’降至‘R’(其中,R<Q<P),从而进一步降低了对AES的攻击复杂度。
Derbez等人在[5]中通过改进差分枚举技术,进一步优化了Dunkelman等人的攻击。他们利用类似反弹技术[14],表明,可达的多集合数量远低于Dunkelman等人所统计的数量
200 Akshima 等人
表1. ARIA 版本 1.0 上密码分析攻击的比较。各项按被攻击轮数各类别中递减的时间复杂度排列。
| 轮数 | 攻击类型 | Time 复杂度 | Data 复杂度 | 内存 | 参考文献 |
|---|---|---|---|---|---|
| 5 | 回旋攻镖击 | 2^110 | 2^109 | 2^57 | [8] |
| 5 | 积分攻击 | 2^76.7 | 2^27.5 | 2^27.5 | [16] |
| 5 | 不可能 差分 | 2^71.6 | 2^71.3 | 2^72 | [15] |
| 5 | Meet‐in‐the‐ middle | 2^65.4 | 2^25 | 2^122.5 | [17] |
| 6 | 积分攻击 | 2^172.4 | 2^124.4 | 2^124.4 | [16] |
| 6 | Meet‐in‐the‐ middle | 2^121.5 | 2^56 | 2^122.5 | [17] |
| 6 | 不可能 差分 | 2^112 | 2^121 | 2^121 | [18] |
| 6 | 回旋镖 攻击 | 2^108 | 2^128 | 2^56 | [8] |
| 6 | 不可能 差分 | 2^104.5 | 2^120.5 | 2^121 | [15] |
| 7 | 不可能 差分 | 2^238 | 2^125 | 2^125 | [6] |
| 7 | 回旋镖 攻击 | 2^236 | 2^128 | 2^184 | [8] |
| 7 | 中间相遇 中间 | 2^185.3 | 2^120 | 2^187 | [17] |
| 7 | 中间相遇‐ 中间 (ARIA‐192) | 2^135.1 | 2^113 | 2^130 | 本工作,第4 |
| 7 | 中间相遇‐ 中间 (ARIA‐256) | 2^136.1 | 2^115 | 2^130 | 本文第4节 |
| 8 | 中间相遇 中间 (ARIA‐256) | 2^251.6 | 2^56 | 2^252 | [17] |
| 8 | 中间相遇 中间 (ARIA‐256) | 2^245.9 | 2^113 | 2^138 | 本工作,第5节 |
攻击。这一改进使得能够对高级加密标准实施相对高效的攻击,并且还扩展了被攻击的轮数。尽管这一研究方向的结果非常有趣,但尚未得到进一步探索。
再加上ARIA的安全性在Fleischmann等人于Indocrypt 2010[8],提出的攻击之后未被深入分析,这促使我们研究多集合攻击在ARIA上的有效性。
改进的中间相遇攻击 201
在我们的攻击中,我们为ARIA构建了一个新的4轮区分器。因此,与之前在[17]中展示的针对ARIA‐192/256的7轮中间相遇攻击相比,我们的攻击显著降低了数据、时间和内存复杂度。我们的8轮攻击也改进了此前针对ARIA‐256[17]的最佳8轮中间相遇攻击的时间和内存复杂度,但代价是增加了数据复杂度。ARIA的密钥调度算法不允许像高级加密标准那样从子密钥恢复主密钥[3]。这可能是此前所有攻击均未在任何ARIA变体上实现实际密钥恢复的原因。然而,根据ARIA的密钥扩展方式,恢复特定的子密钥即可提取出实际的秘密密钥。在我们针对ARIA‐192/256的7轮和8轮攻击中,我们利用了这一密钥调度特性,实现了ARIA中的实际秘密密钥恢复。据我们所知,我们是首个在ARIA上实现实际密钥恢复的。
我们的贡献
本工作的主要贡献如下:
- 我们提出了针对ARIA‐192/256的最佳7轮基于MITM的密钥恢复攻击,以及针对ARIA‐256的8轮攻击。
- 我们应用多集合攻击构建了一个新的针对ARIA‐192和ARIA‐256的4轮区分器。
- 我们对ARIA‐192的7轮攻击具有2^113、2^135.1、2^130的数据/时间/内存复杂度,分别对应。
- 我们对ARIA‐256的7轮攻击具有2^115、2^136.1、2^130的数据/时间/内存复杂度,分别对应。
- 我们对ARIA‐192/256的8轮攻击具有2^113、2^245.6和2^138的数据/时间/内存复杂度,分别对应。
- 我们在对ARIA‐192/256的攻击中首次实现了实际主密钥的恢复。
我们的结果总结于表1。
组织结构
本文结构如下:在第2节中,我们简要描述ARIA,并介绍全文采用的重要符号。在第3节中,我们详细说明在ARIA的4轮上构建的区分器。在第4节中,我们提出7轮攻击;接着在第5节中,我们展示对ARIA的8轮攻击并实现实际的密钥恢复。最后,在第6节中,我们对全文进行总结并给出结论。
2 预备知识
本节中,我们首先描述ARIA,然后介绍在密码分析技术中使用的关键符号和定义,以帮助更好地理解后续内容。
2.1 ARIA描述
分组密码ARIA在其设计中采用了置换‐替换网络,结构上类似于高级加密标准(AES)。ARIA
202 阿克希玛 等
规范定义了3种密钥长度 - 128位、192位和256位,分组大小对所有三种选项均固定为128位。每种ARIA变体在完整加密过程中具有不同的轮数,即ARIA‐128、ARIA‐192和ARIA‐256分别为12轮、14轮和16轮。128位的内部状态和密钥状态被视为一个字节矩阵,其4 × 4大小为,其中字节按列从0到15编号(如图1所示)。每轮包含3个基本操作(如图2所示):
DL
⊕
ki
SL
Xi Zi Yi
Z(i−1)
-
轮密钥加 (ARK) - 此步骤涉及与轮子密钥的异或运算。ARIA的密钥扩展包含两个阶段:
- 非线性扩展阶段,其中使用3轮256位Feistel密码将128位、192位或256位主密钥扩展为四个128位字 W0、W1、W2、W3。
- 线性密钥调度阶段,其中通过W0、W1、W2、W3各自的简单异或运算和循环移位生成子密钥。 -
替换层 (SL) - 它使用四种类型的8位S盒 S1、S2及其逆函数 S⁻¹ 1和 S⁻¹ 2。每个S盒定义为在GF(2⁸)上逆函数的仿射变换。S1 S盒与高级加密标准中使用的相同。ARIA针对偶数轮和奇数轮分别采用两种类型的替换层。在每个奇数轮中,替换层为(LS, LS, LS, LS),其中 LS=(S1, S2, S⁻¹ 2)作用于一列;在每个偶数轮中,替换层为(LS⁻¹, LS⁻¹, LS⁻¹, LS⁻¹),其中 LS⁻¹=(S⁻¹ 1,S⁻¹ 2, S1, S2)也作用于一列。
-
扩散层(DL) ——该层由一个具有分支数8的16 × 16对合二进制矩阵构成。给定输入状态 y 和输出状态 z,扩散层定义为:
z[0] = y[3] ⊕ y[4] ⊕ y[6] ⊕ y[8] ⊕ y[9] ⊕ y[13] ⊕ y[14]
z[1] = y[2] ⊕ y[5] ⊕ y[7] ⊕ y[8] ⊕ y[9] ⊕ y[12] ⊕ y[15]
z[2] = y[1] ⊕ y[4] ⊕ y[6] ⊕ y[10] ⊕ y[11] ⊕ y[12] ⊕ y[15]
z[3] = y[0] ⊕ y[5] ⊕ y[7] ⊕ y[10] ⊕ y[11] ⊕ y[13] ⊕ y[14]
z[4] = y[0] ⊕ y[2] ⊕ y[5] ⊕ y[8] ⊕ y[11] ⊕ y[14] ⊕ y[15]
z[5] = y[1] ⊕ y[3] ⊕ y[4] ⊕ y[9] ⊕ y[10] ⊕ y[14] ⊕ y[15]
z[6] = y[0] ⊕ y[2] ⊕ y[7] ⊕ y[9] ⊕ y[10] ⊕ y[12] ⊕ y[13]
z[7] = y[1] ⊕ y[3] ⊕ y[6] ⊕ y[8] ⊕ y[11] ⊕ y[12] ⊕ y[13]
z[8] = y[0] ⊕ y[1] ⊕ y[4] ⊕ y[7] ⊕ y[10] ⊕ y[13] ⊕ y[15]
z[9] = y[0] ⊕ y[1] ⊕ y[5] ⊕ y[6] ⊕ y[11] ⊕ y[12] ⊕ y[14]
z[10] = y[2] ⊕ y[3] ⊕ y[5] ⊕ y[6] ⊕ y[8] ⊕ y[13] ⊕ y[15]
z[11] = y[2] ⊕ y[3] ⊕ y[4] ⊕ y[7] ⊕ y[9] ⊕ y[12] ⊕ y[14]
z[12] = y[1] ⊕ y[2] ⊕ y[6] ⊕ y[7] ⊕ y[9] ⊕ y[11] ⊕ y[12]
z[13] = y[0] ⊕ y[3] ⊕ y[6] ⊕ y[7] ⊕ y[8] ⊕ y[10] ⊕ y[13]
z[14] = y[0] ⊕ y[3] ⊕ y[4] ⊕ y[5] ⊕ y[9] ⊕ y[11] ⊕ y[14]
z[15] = y[1] ⊕ y[2] ⊕ y[4] ⊕ y[5] ⊕ y[8] ⊕ y[10] ⊕ y[15]
在最后一轮中,扩散层被密钥异或取代以生成密文。ARIA的密钥调度算法 [11]分为两个阶段——初始化阶段和轮密钥生成阶段。在初始化阶段,对于ARIA‐256,首先我们按如下方式计算主密钥K的KL和KR:
KL || KR = K || 0...0
其中,||KL|| = ||KR|| = 128‐比特以及填充到K的零的个数分别为128、64和0,对应于||K||等于128、192和256的情况。
然后,设置四个128位的值 W0、W1、W2和W3为:
W0 = KL (1)
W1 = Fo(W0, CK1)⊕ KR (2)
W2 = Fe(W1, CK2)⊕ W0 (3)
W3 = Fo(W2, CK3)⊕ W1 (4)
其中,Fo 和 Fe 是 ARIA 的奇数轮和偶数轮函数,CK1、CK2 和CK3 是预定义常量。在轮密钥生成阶段,按如下方式生成以下轮子密钥:
K1 = W0 ⊕(W1>>> 19) (5)
K2 = W1 ⊕(W2>>> 19) (6)
K3 = W2 ⊕(W3>>> 31) (7)
K4 = (W0>>> 19)⊕ W3 (8)
K5 = W0 ⊕(W1>>> 31) (9)
K6 = W1 ⊕(W2>>> 31) (10)
K7 = W2 ⊕(W3>>> 31) (11)
K8 = (W0>>> 31)⊕ W3 (12)
K9 = W0 ⊕(W1<<< 61) (13)
更多详情请参见[11]。
2.2 符号和定义
本文其余部分采用以下符号表示。
P : 明文
C : 密文
ki: 第 i 轮的子密钥
k∗ i: DL⁻¹(ki),其中,DL⁻¹ 是逆扩散层
Xi: 第 i 轮 ARK 操作后的状态
Yi: 第 i 轮 SL 操作后的状态
Zi: 第 i 轮 DL 操作后的状态
Δs : 状态 s 的差分
si[m]: 第 i 轮状态 s 的 mth 字节,其中 0 ≤ m ≤ 15
si[p … , r]: 第 i 轮状态 s 的 pth 字节, … , rth 字节,其中 0 ≤ p, r ≤ 15
在我们的攻击中,轮数从 1 到 R 编号,其中 R = 7 或 8。一个完整轮包含所有三个轮操作,即 ARK、SL 和 DL,而一个 半 轮表示省略了 DL 操作的轮。
我们为攻击使用以下定义。
定义 1(δ‐列表) 。我们将 δ‐列表定义为一个包含 256 个 16 字节不同元素的有序列表,这些元素在 15 个字节上相同。这 15 个相同的字节中的每一个都被称为被动字节,而取遍所有 256 个可能值的那个字节称为主动字节 [3]。我们将 δ‐列表表示为 (x0, x1, x2,…, x255),其中 xj表示 jth 128‐列表中的第 δ位成员。如符号部分所述,xj i[m]表示第i 轮中 mth的第 xj字节。
定义2(多重集) 。多重集是允许同一元素出现多次的元素集合。一个包含 256字节的多重集,其中每个字节可以取256种可能值中的任意一种,可以有 (2⁸ +2⁸ −1 2⁸) ≈ 2^506.17种不同的值。
我们攻击中将使用的两个关键性质如下:
性质1 。对于给定的输入‐输出差分(记为(ΔY, ΔZ))在扩散层操作上的状态(如图3所示),如果 ΔY 的7字节具有相等的差分,记为[3, 4, 6, 8, 9, 13, 14] ,那么经过扩散层操作后,在 yZ 的字节0处仅产生非零差分(而不是全状态扩散)。Z 的其余所有字节将处于被动的。因此,在给定约束条件下,该差分路径 ΔY →Δ Z 的概率为1。
证明 。根据ARIA的扩散层规范,状态Z的每个输出字节是状态Y的7个输入字节的异或和。该性质在差分情况下同样保持,即Z的每个输出字节差分是Y的7个输入字节差分的异或和。因此,对于每个输出字节,如果其输入字节差分中偶数个
改进的中间相遇攻击 205
y y y y
y y y
DL
ΔY ΔZ y
如果相应输入字节(即2、4或6个)具有相等的差分,则它们会相互抵消。在上述路径中,Y 的7个字节,即 Y [3, 4, 6, 8, 9, 13,14] 具有相等的差分‘y’,而其余字节具有零差分。因此,除了 ΔZ[0]之外的所有输出字节都具有零差分,因为它们的异或和要么具有2个,要么具有4个相等的输入字节差分。例如,
ΔZ[0] = ΔY[3] ⊕ ΔY[4] ⊕ ΔY[6] ⊕ ΔY[8] ⊕ ΔY[9] ⊕ ΔY[13] ⊕ ΔY[14]
= y ⊕ y ⊕ y ⊕ y ⊕ y ⊕ y ⊕ y = y
ΔZ[1] = ΔY[2] ⊕ ΔY[5] ⊕ ΔY[7] ⊕ ΔY[8] ⊕ ΔY[9] ⊕ ΔY[12] ⊕ ΔY[15]
= 0 ⊕ 0 ⊕ 0 ⊕ y ⊕ y ⊕ 0 ⊕ 0 = 0
ΔZ[11] = ΔY[2] ⊕ ΔY[3] ⊕ ΔY[4] ⊕ ΔY[7] ⊕ ΔY[9] ⊕ ΔY[12] ⊕ ΔY[14]
= 0 ⊕ y ⊕ y ⊕ 0 ⊕ y ⊕ 0 ⊕ y = 0
可以为Z的其他输出字节构造类似的方程。因此,性质1成立。
性质2 。对于给定的ARIA S盒,例如S1以及任意非零输入‐输出差分对,例如(Δi- Δo) ∈ F₂₅₆,平均存在一个解,记为 y,使得等式 S1(y)⊕ S1(y ⊕Δi) = Δo成立(因为ARIA使用高级加密标准S盒作为 S1[5])。该性质同样适用于其他ARIA S盒,即 S2、S⁻¹ 1和 S⁻¹ 2。
该攻击的时间复杂度以所需的完整轮次(7或8轮)ARIA加密的数量来衡量。内存复杂度以所需的128位ARIA数据块为单位来衡量。
3 4轮ARIA的区分性质
给定一个包含256个不同字节的列表(M0, M1,…,M255),一个函数 f:{0, 1}¹²⁸ →{0, 1}¹²⁸以及一个120位常量 U,我们按如下方式定义一个多重集 v:
C i = f(M i || U), where(0 ≤ i ≤ 255)
v = {C 0 [0] ⊕ C 0 [0], C 1 [0] ⊕ C 0 [0],..., C 255 [0] ⊕ C 0 [0]}
206 阿克希玛 等人
注意,(M0 || U, M1 || U, …, M255 || U) 构成一个 δ‐列表,且多重集中至少有一个元素始终为零。
区分性质 。让我们将 F视为128位上的置换族。然后,给定任意一个包含256个不同字节的列表(M0、M1,…,M255),目标是求出当 f ←−$ F和 U ←−${0, 1}¹²⁰ 时,可能的多重集 v的数量。
当 F=为所有128位置换的族,且 f ←−$ F。在此设定下,由于在多重集 v中,我们有255个值是从集合{0, 1,…, 255}中均匀且独立选择的(因为有一个元素,例如C0[0] ⊕ C0[0] (2⁸−1+2⁸−1 2⁸−1) ≈ 2^505.17 0 v ,始终是),因此可能的多重集总数为。
在以下情况中,当 F= 4-ARIA 的4完整轮 与 f ←−$ F。这里, f ←−$ F ⇔ K ←−${0, 1}^k和 f= EK,其中,k = 128(对于 ARIA‐128),192(对于 ARIA‐192)或 256(对于 ARIA‐256)。我们考虑如图4所示的 ARIA 的4完整轮,其中多重集 v定义为 v={Z0 4[0] ⊕ Z0 4[0], Z1 4[0] ⊕ Z0 4[0],…,Z255 4[0] ⊕ Z0 4[0]}。然后,我们陈述以下 观察1。
观察1 。多重集 v仅由以下30个单字节参数决定:
- X0 2 3, 4, 6, 8, 9, 13, 14
- X0 3 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- X0 4 3, 4, 6, 8, 9, 13, 14
因此,可能的多重集总数为 2^(30×8) = 2^240,因为每30字节定义一个多重集。
, X i j , Y i j , Z i j 表示第j轮中对应于 P i的中间状态。轮子密钥 K i由主密钥K生成,其中 1 ≤ i ≤ 4。)
改进的中间相遇攻击 207
证明 。在第1轮中,由于恰好存在256种可能的差分,因此集合 {X10[0] ⊕ X10[0], X11[0] ⊕ X10[0],…,X255 1[0]⊕ X10[0]}(或等价地,在 X1[0]处的差分集合)是已知的。由于S盒 S1是单射的,因此集合 {Y 0 1[0] ⊕ Y 0 1[0], Y 1 1[0] ⊕ Y 0 1[0],......, Y 255 1[0] ⊕ Y 0 1[0]}中也恰好存在256个值。由于扩散层(DL)和轮密钥加(ARK)操作是线性的,根据第2节中讨论的扩散层(DL)定义,X2[3, 4, 6,8, 9, 13, 14]处的差分集合也是已知的。但由于替换层的非线性特性,无法知道 Y2[3, 4, 6, 8, 9, 13, 14]处的差分集合,从而无法继续推进。为缓解此问题,只需知道 X2处第一个状态(256个状态之一)的活跃字节的值 X0 2[3, 4, 6, 8, 9, 13, 14]即可,因为这使得可以计算其余 Xi 2个状态(其中,1 ≤ i ≤ 255)的活跃字节,并穿过第2轮的SL层。再次由于DL和ARK操作是线性的,因此{X0 3 ⊕ X 0 3,X1 3 ⊕ X 0 3,⋯,X255 3 ⊕ X0 3}处的差分集合是已知的。为了获得能够穿过第3轮SL层所需的{X0 3, X1 3,⋯,X255 3}值集合,只需知道完整状态 X0 3的值,该值作为参数给出。
根据类似的逻辑,如上所述,差分集合{X0 4⊕X 0 4, X1 4⊕X 0 4,…, X255 4 ⊕ X0 4}是已知的。现在,在此阶段,如果仅知道 X0 4[3, 4, 6, 8, 9, 13, 14]个字节,则可以穿过第4轮的SL层,并计算出在 Z4处的256个值的集合{Z0 4[0], Z1 4[0],…, Z255 4[0]}。随后,多重集 v={Z0 4[0] ⊕ Z0 4[0], Z1 4[0] ⊕ Z0 4[0],…, Z255 4[0] ⊕ Z0 4[0]}的值也可以轻松确定。这表明多重集 v依赖于30个参数,并可取2^240个可能的值。
由于在 Z4[0]处有 2^240种可能的多重集,如果我们预先计算并将这些值存储在哈希表中,则ARIA‐192的预计算复杂度将高于暴力破解。为了减少多重集的数量,我们采用了Dunkelman等人在[7]中提出的差分枚举技术,并结合 Derbez等人在[5]中对其进行的改进。我们将[5]中提出的改进版本称为改进型差分枚举。
改进型差分枚举 。该技术的基本思想是选择一个包含256个不同字节的列表(M0,M1,…,M255),使得构造多重集所需的多个参数等于某些预设常量。
为此,我们构建一个ARIA四个完整轮次的截断差分,在该差分中,输入和输出差分仅在字节0处非零(如图5所示)。
Δ P Δ X 2
轮密钥加,替换层
扩散层,轮密
钥加
替换层,扩散层
ARK
Δ X 3 Δ Y 3
SL
Δ Y 4
扩散层,轮密钥加
DL
Δ Z 4
SL
该路径的概率为 2⁻¹²⁰,如下:ΔP[0]中的单字节差分以概率‐传播
208 阿克希玛 等人
为ΔX₂中的7字节差分和ΔY₃中的16字节差分性质1。接下来,ΔY₃的全状态差分在ΔY₄产生
11

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



