Differential-Linear Cryptanalysis from an Algebraic Perspective 论文阅读笔记
前言
这学期上一门密码分析学的课, 期末考核要汇报一篇密码分析的论文, 所以…
读一篇密码分析学的论文Differential-Linear Cryptanalysis from an Algebraic Perspective
发表在crypto2021上, 是国科大大佬的论文(如果有密码分析大佬看到我的blog, 还请轻喷)
这是作者的论文汇报视频https://www.youtube.com/watch?v=RvKJzc1r40g
导论
差分线性密码分析是一种重要的密码攻击手段, 本文提出一种代数系统并应用在差分密码分析中, 主要贡献有三个方面
(1) 构建一套应用于差分线性密码分析的代数方法, ANF, ATF, DATF
(2) 提出两种描述估计差分线性偏差的可行框架
(3) 将理论和技术应用到三种不同类型的密码算法并取得当前最佳效果, Ascon, Serpent, Grain v1
差分线性密码分析由两个阶段组成. 第一阶段确保在密码中间传播有用的属性,由差分密码分析覆盖. 第二阶段是从密码中间到密文使用线性密码分析执行.
E=E0∘E1E = E_0 \circ E_1E=E0∘E1 EEE为可以表示为两个子密码的级联
Δin\Delta_{in}Δin 为E0E_0E0的输入差分
Δout\Delta_{out}Δout 为E0E_0E0的输出差分
λin\lambda_{in}λin 为E1E_1E1的线性特征的输入掩码
λout\lambda_{out}λout 为E1E_1E1的线性特征的输出掩码
设差分Δin→Δout\Delta_{in} \rightarrow \Delta_{out}Δin→Δout的概率为ppp, 线性近似λin→λout\lambda_{in} \rightarrow \lambda_{out}λin→λout概率为1/2+q1/2 + q1/2+q (q为偏差)
对于输入差分为Δin\Delta_{in}Δin, 满足λinC=λoutC′\lambda_{in} C = \lambda_{out} C'λinC=λoutC′的概率为1/2+2pq21/2 + 2pq^21/2+2pq2
差分线性攻击的数据复杂度为O(p−2q−4)O(p^{-2}q^{-4})O(p−2q−4)
(不要问, 问就是我也没看懂, 密码分析学基础为0…
代数系统
代数范式(ANF, algebraic normal form)
让 F2F_2F2 表示二进制域,让F2nF_2^nF2n表示 F2F_2F2 上的 n 维向量空间。n 变量布尔多项式是从 F2nF_2^nF2n 到 F2F_2F2 的映射,它可以唯一地表示为 F2F_2F2 上的多元多项式,称为代数范式(ANF)
f(x1,x2,⋯,xn)=⨁c=(c1,⋯,cn)∈F2nac∏i=1nxici,ac∈F2f\left(x_{1}, x_{2}, \cdots, x_{n}\right)=\bigoplus_{c=\left(c_{1}, \cdots, c_{n}\right) \in \mathbb{F}_{2}^{n}} a_{c} \prod_{i=1}^{n} x_{i}^{c_{i}}, a_{c} \in \mathbb{F}_{2} f(x1,x2,⋯,xn)=c=(c1,⋯,cn)∈F2n⨁aci=1∏nxici,ac∈F2
孤立变量, 指只出现在ANF中线性部分的变量, 如x1⊕x2x3⊕x4x5x_1 \oplus x_2x_3 \oplus x_4x_5x1⊕x2x3⊕x4x5中的x1x_1x1为孤立变量
对于Δ∈F2nΔ ∈ F^n_2Δ∈F2n和X上的n维变量多项式fff, fff关于ΔΔΔ的导数为
DΔf(X)=f(X)⊕f(X⊕Δ)D_{\Delta} f(X)=f(X) \oplus f(X \oplus \Delta) DΔf(X)=f(X)⊕f(X⊕Δ)
而多项式fΔf_{\Delta}fΔ定义为
fΔ(X,x)=f(X⊕xΔ)f_{\Delta}(X,x) = f(X \oplus x\Delta) fΔ(X,x)=f(X⊕xΔ)
可以证明:
DxfΔ=DΔfD_xf_{\Delta} = D_{\Delta}f DxfΔ=DΔf
其中DxfΔD_xf_{\Delta}DxfΔ表示fΔf_{\Delta}fΔ关于x的偏导数
这里论文给了个例子说明上述等式(水印有点烦, 看不清的直接看原文就行)
解释一下这个例子, ⊕\oplus⊕满足分配律交换律和结合律, 所以DΔf=x1⊕x2x3⊕x3⊕(x1⊕1⊕x2x3⊕x3⊕x3)=x3⊕1D_{\Delta}f = x_1 \oplus x_2x_3 \oplus x_3 \oplus (x_1 \oplus 1 \oplus x_2x_3 \oplus x_3 \oplus x_3) = x_3 \oplus 1DΔf=x1⊕x2x3⊕x3⊕(x1⊕1⊕x2x3⊕x3⊕x3)=x3⊕1
下面的的fΔ=(x1⊕x)⊕(x2⊕x)x3⊕x3=x1⊕x⊕x3x⊕x2x3⊕x3=(x3⊕1)x⊕x1⊕x2x3⊕x3f_{\Delta} = (x_1\oplus x) \oplus (x_2\oplus x)x_3 \oplus x_3 = x_1 \oplus x \oplus x_3x \oplus x_2x_3 \oplus x_3 = (x_3 \oplus 1)x \oplus x_1 \oplus x_2x_3 \oplus x_3fΔ=(x1⊕x)⊕(x2⊕x)x3⊕x3=x1⊕x⊕x3x⊕x2x3⊕x3=(x3⊕1)x⊕x1⊕x2x3⊕x3
代数过渡形式(ATF, algebraic transitional form)
给定一个在 X=(x1,x2,…,xn)X = (x_1,x_2,…,x_n)X=(x1,x2,…,xn)上的布尔多项式fff, 如果fff可以表示为在 (y1,y2,...,ym)(y_1,y_2,...,y_m)(y1,y2,...,ym)上的多项式ggg,其中yiy_iyi可以看作XXX上的一个多项式, 即 yi=φi(X)y_i = φ_i (X)yi=φi(X) ,则 ggg 的 ANF 称为 fff 的代数过渡形式(ATF). 变量y1,y2,...,ymy_1 ,y_2 ,...,y_my1,y2,...,ym 称为过渡变量. 请注意,布尔多项式的 ATF 不是唯一的。 实际上,多项式 fff 是 ggg 和 Φ=(φ1,φ2,...,φm)Φ = (φ_1,φ_2,...,φ_m)Φ=(φ1,φ2,...,φm) 的复合,即 f(X)=g(Φ(X))f(X) = g(Φ(X))f(X)=g(Φ(X)),记为 f=g◦Φf = g ◦ Φf=g◦Φ.
每个多项式 φiφ_iφi 也可以用 ATF 表示。 从这个角度来看,如果计算一个轮函数的 ANF 是可行的,则迭代密码可以在实际时间由 ATF 迭代表示。 它可以扩展为迭代计算密码差分的 ATF.
差分代数过渡形式(DATF, differential algebraic transitional form)
对于输入差分 Δ∈F2nΔ ∈ F_2^nΔ∈F2n ,φi(X⊕xΔ)=φi⊕(DΔφi)xφ_i(X ⊕xΔ) = φ_i ⊕(D_Δφ_i)xφi(X⊕xΔ)=φi⊕(DΔφi)x. 通过引入过渡变量 αi和βiα_i和 β_iαi和βi ,我们将 φi(X⊕xΔ)φ_i(X ⊕xΔ)φi(X⊕xΔ) 表示为 αi⊕xβiα_i ⊕ xβ_iαi⊕xβi. 其中 α=(α1,α2,...,αm)α = (α_1,α_2,...,α_m)α=(α1,α2,...,αm) 和 β=(β1,β2,...,βm)β = (β_1,β_2,...,β_m)β=(β1,β2,...,βm). 那么多项式 fΔ=f(X⊕xΔ)f_Δ = f(X ⊕ xΔ)fΔ=f(X⊕xΔ) 可以表示为
g(α⊕xβ)=g(α1⊕xβ1,α2⊕xβ2,⋯,αm⊕xβm)g(\alpha \oplus x \beta)=g\left(\alpha_{1} \oplus x \beta_{1}, \alpha_{2} \oplus x \beta_{2}, \cdots, \alpha_{m} \oplus x \beta_{m}\right) g(α⊕xβ)=g(α1⊕xβ1,α2⊕xβ2,⋯,αm⊕xβm)
对于差分代数过渡形式, 可以写出fΔf_\DeltafΔ和fff关于Δ\DeltaΔ导数的表达式
fΔ=f(X⊕xΔ)=g(Φ(X⊕xΔ))=g(Φ⊕(DΔΦ)x)=g(α⊕xβ)∘ΨDΔf=DxfΔ=Dx(g(α⊕xβ)∘Ψ)=(Dxg(α⊕xβ))∘Ψf_{\Delta}=f(X \oplus x \Delta)=g(\Phi(X \oplus x \Delta))=g\left(\Phi \oplus\left(D_{\Delta} \Phi\right) x\right)=g(\alpha \oplus x \beta) \circ \Psi \\ D_{\Delta} f=D_{x} f_{\Delta}=D_{x}(g(\alpha \oplus x \beta) \circ \Psi)=\left(D_{x} g(\alpha \oplus x \beta)\right) \circ \Psi fΔ=f(X⊕xΔ)=g(Φ(X⊕xΔ))=g(Φ⊕(DΔΦ)x)=g(α⊕xβ)∘ΨDΔf=DxfΔ=Dx(g(α⊕xβ)∘Ψ)=(Dxg(α⊕xβ))∘Ψ
关于DATF有
命题 1. 如果 n 变量布尔多项式 fff 是 m 变量布尔多项式 ggg 和从 F2nF_2^nF2n 到 F2mF_2^mF2m 的函数 ΦΦΦ 的复合,即 f=g◦Φf = g ◦Φf=g◦Φ,则 fff 对 ΔΔΔ 的导数为 DATF g(α⊕xβ)g(α ⊕ xβ)g(α⊕xβ) 关于 xxx 的偏导数和函数 Ψ=(Φ,DΔΦ)Ψ = (Φ,D_Δ Φ)Ψ=(Φ,DΔΦ) 的复合,即 DΔf=(Dxg(α⊕xβ))◦ΨD_Δ f = (D_x g(α ⊕ xβ)) ◦ ΨDΔf=(Dxg(α⊕xβ))◦Ψ,其中 ααα 和 βββ 是 m-变量向量,xxx 是一个二元变量。
论文同样给出第二个例子, 演示了DATF的计算过程
这里稍微难理解, ΨΨΨ可以看作是将过渡变量α,β\alpha, \betaα,β映射到ϕ\phiϕ参数的函数
按定义DΔΦ=Φ(X)⊕Φ(X⊕Δ)=(x3⊕1,1,0)D_\Delta \Phi = \Phi(X) \oplus \Phi(X \oplus \Delta) = (x_3 \oplus 1, 1, 0)DΔΦ=Φ(X)⊕Φ(X⊕Δ)=(x3⊕1,1,0)计算过程将XXX和Δ\DeltaΔ代入计算即可, 这里可以计算出过渡变量β\betaβ, 过渡变量直接可以由Φ(X)=(x1⊕x2x3⊕x3,x2⊕x3x4⊕x4,x3⊕x4x5⊕x5)\Phi(X) = (x_1 \oplus x_2x_3 \oplus x_3, x_2\oplus x_3x_4\oplus x_4, x_3 \oplus x_4x_5 \oplus x_5)Φ(X)=(x1⊕x2x3⊕x3,x2⊕x3x4⊕x4,x3⊕x4x5⊕x5)确定
其余计算按上面的给出定义计算就行
算法
计算差分线性偏差
理论上,差分线性偏差可以由输出位的代数范式 (ANF) 确定,输入位作为变量. 然而,计算密码输出位的 ANF 在计算上是不可行的. 为了使其可行,我们计算它们的代数转换形式 (ATF) 而不是 ANF. 更准确地说,我们计算内部bits的差分代数转换形式 (DATF) 以及密码的输出bits,然后估计差分线性偏差.
下面先介绍过渡规则
过渡规则:对于布尔多项式 u=u′x⊕u′′u = u' x ⊕ u''u=u′x⊕u′′ 且 u′,u′′u',u''u′,u′′ 与变量 xxx 无关,如果 u′u'u′ 涉及两个或多个变量,则用新的过渡变量替换 u′u'u′; 如果 u′′u''u′′ 涉及两个或多个变量,则用另一个新的过渡变量替换u′′u''u′′。 从 uuu 导出的新表达式用 ATF(u,x)ATF(u, x)ATF(u,x) 表示,或简称为 ATF(u)ATF(u)ATF(u)。 换句话说,对于任何不涉及变量 xxx 的多项式 www,我们有
ATF(w)={varw,if winvolves two or more variables w,otherwise \operatorname{ATF}(w)= \begin{cases}\operatorname{var}_{w}, & \text { if } w \text { involves two or more variables } \\ w, & \text { otherwise }\end{cases} ATF(w)={varw,w, if w involves two or more variables otherwise
其中 varwvar_wvarw 是一个由 www 标识的过渡变量,因此 ATF(w)ATF(w)ATF(w) 是一个常数或一个由常数决定的变量。 根据规则,我们知道 ATF(u,x)=ATF(u′′)x⊕ATF(u′)ATF(u,x) = ATF(u'')x⊕ATF(u')ATF(u,x)=ATF(u′′)x⊕ATF(u′) 最多包含三个变量,包括 xxx。 对于多项式向量,ATF 对向量的每个分量进行运算。 该规则以非常简化的方式确保 ATF(f,x)ATF(f,x)ATF(f,x) 是 fff 的 ATF,从而保持 xxx 不变。(通过实验发现, 在非线性操作之前应用过渡规则会达到最佳性能)
对于密码 EEE,我们将其视为从 F2nF_2^nF2n 到 F2mF_2^mF2m 的函数。 (Δin,λout)(Δ_{in}, λ_{out})(Δin,λout) 对应的差分线性偏差描述了差分线性逼近的偏差 λout•C⊕λout•C=0λ_{out} •C ⊕λ_{out} •C = 0λout•C⊕λout•C=0,即 λout•E(P)⊕λout•E(P⊕Δin)=0λ_{out} •E(P)⊕λ_{out} •E(P ⊕Δ_{in}) = 0λout•E(P)⊕λout•E(P⊕Δin)=0. 表示 f=λout•Ef = λ_{out} • Ef=λout•E 给出 f(X)⊕f(X⊕Δin)=0f(X) ⊕ f(X ⊕ Δ_{in}) = 0f(X)⊕f(X⊕Δin)=0。偏差由 fΔin=f(X+xΔin)f_{Δ_{in}} = f(X + xΔ_{in})fΔin=f(X+xΔin) 的偏导数关于 xxx 的汉明权重确定。 根据命题 1,我们知道 fff 对 ΔinΔ_{in}Δin 的导数可以从它的 DATF 计算出来。
对于输入的二元变量向量 XXX,我们首先初始化 Y(0)=X⊕xΔinY^{(0)} = X ⊕ xΔ_{in}Y(0)=X⊕xΔin 其中 xxx 是一个二进制变量。 (Y(0)∣x=0,Y(0)∣x=1)(Y^{(0)} |_{x=0},Y^{(0)} |_{x=1})(Y(0)∣x=0,Y(0)∣x=1) 的任何实例都对应于约定中具有差分 ΔinΔ_{in}Δin 的pair。 接下来我们计算第一轮输出的代数范式,即 Y(1)=R(Y(0))Y^{(1)} = R(Y^{(0)})Y(1)=R(Y(0))。然后我们将 Y(i−1)Y^{(i-1)}Y(i−1) 重写为 Y′(i−1)⊕xY′′(i−1)Y'^{(i-1)} ⊕ xY''^{(i-1)}Y′(i−1)⊕xY′′(i−1),其中 Y′(i−1)Y'^{(i-1)}Y′(i−1) 和 Y′′(i−1)Y''^{(i-1)}Y′′(i−1)均独立于 xxx,引入新的变量向量 α(i−1)和β(i−1)α^{(i-1)} 和 β^{(i-1)}α(i−1)和β(i−1),并记录表达式 α(i−1)=Y′(i−1)α^{(i-1)} = Y'^{(i-1)}α(i−1)=Y′(i−1) 和β(i−1)=Y′′(i−1)β^{(i-1)} = Y''^{(i-1)}β(i−1)=Y′′(i−1) 到一个方程组QQQ。
算法1
这里解释一下算法1, 初始输入是 Y(0)=X⊕xΔinY^{(0)} = X ⊕ xΔ_{in}Y(0)=X⊕xΔin, 经过轮函数以后得到的结果为Y(1)Y^{(1)}Y(1), 可以表示为Y′(i−1)⊕xY′′(i−1)Y'^{(i-1)} ⊕ xY''^{(i-1)}Y′(i−1)⊕xY′′(i−1), 然后应用过渡规则, 写成代数过渡形式ATF(Y(1),x)=α(i−1)⊕xβ(i−1)ATF(Y^{(1)}, x) = α^{(i-1)} ⊕ xβ^{(i-1)}ATF(Y(1),x)=α(i−1)⊕xβ(i−1)作为下一轮的输入, 依次迭代直到最后一轮, 每次的过渡变量和ATF表达式都记录下来到方程组Q中.
算法1的复杂度为 O(2drtR)O(2^drt_R)O(2drtR), tRt_RtR为计算轮函数ANF的计算代价, d为R轮的代数精度, r为轮数. 算法1复杂度主要来自line 9的ATF计算
下面给出计算差分线性偏差估计的算法2
算法2输出具有线性掩码λout\lambda_{out}λout的输出对parity的差分线性偏差(the differential-linear bias of the parity of the output pair with linear mask λoutλ_{out}λout. )
ATF of the parity: e=λoutY′′(r)e = \lambda_{out}Y''^{(r)}e=λoutY′′(r), 其中Y′′(r)Y''^{(r)}Y′′(r)是Y(r)Y^{(r)}Y(r)关于xxx的偏导数
当e中有孤立变量时, bias为0, 于是去掉e中孤立变量得到新的表达式, 不断更迭e, 直到为0即可得到bias ϵ\epsilonϵ
关于算法Bias()Bias()Bias()给出
引理2 给定 f 的 ATF,如果变量独立且同分布,则 Bias(f) 的输出给出 f 的偏差.
证明见论文p13
关于算法2给出
定理 3 假设算法 2 中 e∗e^*e∗ 的所有变量都是独立同分布的,算法 2 的输出 εεε 是差分线性逼近的偏差 Δin→λoutΔ_{in} → λ_{out}Δin→λout.
算法2复杂度, 由line 5的Bias(e∗)Bias(e^*)Bias(e∗)计算决定, 而Bias()算法复杂度是O(2m∗)O(2^{m^*})O(2m∗), m∗m^*m∗是Separate()中多项式的变量集的最大基数. 所以算法2复杂度为O(2m)O(2^{m})O(2m), m取m∗m^*m∗最大值. 从实际角度看, 一般迭代密码的S-box较小时, m也会比较小, 所以算法复杂度在实际应用中是可以接受的.
如果考虑DATF, 当每一轮的变量Y(i)Y^{(i)}Y(i)是独立的, 可以给出另一个计算差分线性估计偏差的计算算法
算法3
关于算法3有
定理 4. 假设 DATF 的变量,即 Y(i)Y^{(i)}Y(i),在每一轮都是独立的,算法 3 的输出 εεε 是差分线性逼近的偏差 Δin→λoutΔ_{in} → λ_{out}Δin→λout.
算法3的复杂度是算法1和算法2复杂度的结合, O(2drtR+n2m+1)O(2^drt_R + n2^{m+1})O(2drtR+n2m+1), n为状态大小
密钥恢复攻击
为了将差分线性区分器转换为密钥恢复攻击,对于分组密码,我们通常猜测一些关键bits,执行部分加密或解密,并应用区分器。 在之前的工作中,区分器和密钥猜测的过程是分开处理的。 论文中展示了一种同时处理这两个过程的代数方法。 该方法也适用于其他类型的迭代密码,包括流密码和认证加密密码。
算法4 密钥恢复算法
关于算法4有
定理 5. 用ΦΦΦ表示标准正态分布的累积分布函数。 令 PSP_SPS 是对 mmm位子密钥的线性攻击的概率,具有概率 ppp 的线性近似,具有 NNN 个已知明文块,提供 aaa 位或更高的优势。 假设线性近似的概率对于每个尝试的键都是独立的,并且对于所有错误的键都等于 1/2,则有,对于足够大的 m 和 N,满足
PS=Φ(2N∣p−1/2∣−Φ−1(1−2−a−1))P_{S}=\Phi\left(2 \sqrt{N}|p-1 / 2|-\Phi^{-1}\left(1-2^{-a-1}\right)\right) PS=Φ(2N∣p−1/2∣−Φ−1(1−2−a−1))
论文对密钥恢复的预计算遵循算法 3 中估计差分线性偏差的主要框架。算法4与算法3主要区别是在前 r1r_1r1 轮中附加了一些条件 I。 注意在 ANF 和 ATF 的每次计算中,都会在 III 的条件上化简多项式,用modImod ImodI表示。
如算法 4 所示,在对密钥恢复进行预计算后,获得了一组表达式 QIQ_IQI 和一个差分线性偏差 εεε。 然后推导出方程组 S={f=0∣f∈QI}S = \{f = 0|f ∈ Q_I\}S={f=0∣f∈QI}。 假设 S 中的方程是独立并且它们对于任意固定key总是一致的。 用 n 表示 S 中方程的数量,用 m 表示 S 中关键bits的独立表达式的数量。
在密钥恢复攻击中,密钥是未知的,因此我们需要猜测涉及密钥位的表达式的值。 对于这些表达式的每个猜测, 具有输入差异 ΔinΔ_{in}Δin 的O(1/ε2)O( 1/ε^2 )O(1/ε2)明文对就足以应用区分器。 并为错误的密钥假设一种输出子集的奇偶校验的随机行为。 那么攻击的数据复杂度为 D=O(2n/ε2)D = O( 2^n/ε^2 )D=O(2n/ε2)。 攻击中需要猜测的m个表达式有2m2^m2m个值,因此攻击时间为T=O(2m/ε2)T=O(2^m/ε^2)T=O(2m/ε2)。
算法4的复杂度, 除了算法3的复杂度, 算法4的复杂度依赖于modImod ImodI的时间开销tIt_ItI, 所以为O(2drtR+n2m+1+nrtI)O(2^drt_R + n2^{m+1} + nrt_I)O(2drtR+n2m+1+nrtI)
应用
论文的理论应用于Ascon, Serpent, Grain v1算法都达到了目前最好的效果
Ascon
Ascon 是由 Dobraunig 等人设计的一系列经过验证的散列算法, 已被选为 CAESAR 竞(2014-2019 年)最终产品组合中轻量级认证加密的主要选择, 目前正在参加 NIST 轻量级密码术竞赛. 论文分析的重点是Ascon-128.
Dobraunig 等人. 基于 4 轮差分线性区分器,提出了实际对 5 轮 Ascon 置换的差分线性攻击. 得到近似值的总体偏差预计为2−202^{−20}2−20, 但实验表明偏差为2−22^{−2}2−2, 明显更高.
通过 算法1 计算 Ascon 的 DATF
然后在4轮Ascon上分别应用 算法2 和 算法3 估计偏差
算法2得到偏差为 2−32^{−3}2−3
算法3得到偏差为 2−2.3652^{−2.365}2−2.365
算法3比算法2和之前的相关工作更接近实验得到的偏差2−22^{−2}2−2
将密钥恢复算法 算法4 应用于 5 轮的Ascon-128
实验验证得到的时间复杂度约为2262^{26}226
相比于Dobraunig的攻击方法的复杂度2362^{36}236得到显著改善
Serpent
Serpent 是 AES 决赛算法. 是由Anderson, Biham 和 Knudsen 提出的分组密码. Serpent 的块大小为 128 位,并支持 128、192 或 256 位的密钥大小.
03年 Biham 等人提出对 Serpent 的11轮变体的攻击, 该攻击基于 9 轮差分线性区分器,偏差为2−602^{−60}2−60
08年 Dunkelman 等人测出 Serpent 简化轮变体(reduced round variants)的实验偏差为2−57.752^{−57.75}2−57.75
19年 Bar-On 等人使用 DLCT 重新计算判别器的偏差并获得为2−57.682^{−57.68}2−57.68
通过 DATF 技术对区分器的偏差进行分析, 得到2−57.7362^{−57.736}2−57.736的估计值. 这个值非常接近实验值.
在算法 4 的帮助下,可以改进在选择密文攻击的设置下对 11-round Serpent 的攻击
改进后的11轮Serpent攻击的数据复杂度为2113.72^{113.7}2113.7
时间复杂度为2137.72^{137.7}2137.7次内存访问
内存复杂度为2992^{99}299字节
攻击成功率达到99%
扩展到 12 轮
实现首次成功的12轮Serpent攻击
数据复杂度为21272^{127}2127
时间复杂度为22512^{251}2251次内存访问
内存复杂度为2992^{99}299字节
攻击成功率达到77%
Grain v1
Grain v1 是 Hell 等人提出的基于 NFSR 的流密码, 是 eSTREAM 的决赛算法之一
ASIACRYPT 2010 上,Knellwolf 等人提出了对基于 NFSR 的密码系统的条件差分攻击(conditional differential attacks),并应用于 104 轮 Grain v1
Li and Guan在19年对Grain v1提出120轮的条件差分攻击, 偏差为2−12.82^{−12.8}2−12.8
Banik 在14年提出基于差分引擎(Differential Engine)的方法对120轮的条件差分攻击估计的偏差为2−18.132^{−18.13}2−18.13
应用 算法1 和 算法2
对120条件差分Grain v1得到的偏差为2−13.392^{−13.39}2−13.39, 与实验值2−12.82^{−12.8}2−12.8相近
而且高于差分引擎得到的2−18.132^{−18.13}2−18.13
对125轮Grain v1得到的偏差为2−20.772^{−20.77}2−20.77
相比 Banik 的结果2−24.782^{−24.78}2−24.78要高很多
密钥恢复攻击
攻击中需要猜测的关键bits的独立表达式共有20个
数据复杂度2522^{52}252
时间复杂度2592^{59}259
完整密钥恢复的时间复杂度是2602^{60}260
攻击成功的概率是87.7%
总结
论文贡献
(1) 从代数的角度展示了一种新的差分线性密码分析理论,包括差分线性偏差的估计和密钥恢复技术
(2) 并将其应用于 CAESAR 决赛算法 Ascon、AES 决赛算法 Serpent 和 eSTREAM 决赛算法 Grain v1,并获得了最准确的偏差估计以及目前最好的差分线性或差分攻击
(3) 本文中的结果又更新了一轮 Serpent 的密码分析
(4) 提出的技术是一种通用的密码分析技术, 可以应用于大部分迭代式的加密算法的密码分析
(5) 可以作为密码分析技术的补充, 与经典的差分线性密码分析方法一起使用
(6) 等等很多…
ps:
虽说是应试的读论文, 但是时间都花了, 干脆还是水一篇blog, 还是记录一下个人的理解, 不然以后万一要用到又得重读一遍浪费时间.
Differential-Linear Cryptanalysis from an Algebraic Perspective 论文阅读笔记相关推荐
- 论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning
论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning 本文通过神经网络利用了减少轮数的 Speck 的差分性质.为此,作者对神经网络 ...
- DnCNN论文阅读笔记【MATLAB】
DnCNN论文阅读笔记 论文信息: 论文代码:https://github.com/cszn/DnCNN Abstract 提出网络:DnCNNs 关键技术: Residual learning an ...
- DCP(Deep Closest Point)论文阅读笔记以及详析
DCP论文阅读笔记 前言 本文中图片仓库位于github,所以如果阅读的时候发现图片加载困难.建议挂个梯子. 作者博客:https://codefmeister.github.io/ 转载前请联系作者 ...
- 【SOD论文阅读笔记】Visual Saliency Transformer
[SOD论文阅读笔记]Visual Saliency Transformer 一.摘要 Motivation: Method: Experimental results 二.Introduction ...
- 论文阅读笔记(2):Learning a Self-Expressive Network for Subspace Clustering,SENet,用于大规模子空间聚类的自表达网络
论文阅读笔记(2):Learning a Self-Expressive Network for Subspace Clustering. SENet--用于大规模子空间聚类的自表达网络 前言 摘要 ...
- 论文阅读笔记(二)——牛的人脸识别,能做到吗?
论文阅读笔记(二)--牛的人脸识别,能做到吗? 论文简介 论文中文翻译:<牛的人脸识别,能做到吗?> 论文名称:<Face Recognition of Cattle: Can it ...
- 论文阅读笔记:Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
论文阅读笔记:Swin Transformer 摘要 1 简介 2 相关工作 3 方法论 3.1 总览 Swin Transformer block 3.2 shifted window-based ...
- Capture, Learning, and Synthesisof 3D Speaking styles论文阅读笔记 VOCA
Capture, Learning, and Synthesisof 3D Speaking Styles论文阅读笔记 摘要 制作了一个4D面部(3D mesh 序列 + 同步语音)数据集:29分钟, ...
- Dynamic MDETR: A Dynamic Multimodal Transformer Decoder for Visual Grounding 论文阅读笔记
Dynamic MDETR: A Dynamic Multimodal Transformer Decoder for Visual Grounding 论文阅读笔记 一.Abstract 二.引言 ...
最新文章
- 如何安装apache服务器最新,云服务器如何安装apache
- JAVA实现矩形覆盖问题(《剑指offer》)
- 仅IE6中链接A的href为javascript协议时不能在当前页面跳转
- linux如何定期备份,在Linux系统中简单地实现定时备份的方法
- CentOS --kickstart服务器搭建(一)
- Anaconda prompt:Cache entry deserialization failed, entry ignored
- 面试官问:你做过什么Java线程池实践,我写了一篇博客给他看~
- 忘记MySQL密码怎么办?一招教你搞定!
- 计算机里的东西太多,电脑里的东西太多,怎么样清理一下啊
- 用户故事与敏捷开发方法笔记05
- Effective Java第二版 读后感
- IMI 基于 Swoole 开发的协程 PHP 开发框架 常驻内存、协程异步非阻塞
- 负载均衡实现 --- LVS的介绍、调度算法、NAT模式的搭建
- Delphi各个版本的官方下载地址
- 城市中心、华为、软通动力智慧城市联合解决方案发布
- 网络协议基础05--数据链路层
- 如何读懂EDIFACT报文
- 【深度学习Deep Learning】资料大全
- 2012 SDCC中国软件开发者大会门票社区团购火热开启!
- Gopher China 2019 讲师专访 -探探平台技术部软件工程师于乐