前言

这学期上一门密码分析学的课, 期末考核要汇报一篇密码分析的论文, 所以…
读一篇密码分析学的论文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'λin​C=λout​C′的概率为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​⨁​ac​i=1∏n​xici​​,ac​∈F2​
孤立变量, 指只出现在ANF中线性部分的变量, 如x1⊕x2x3⊕x4x5x_1 \oplus x_2x_3 \oplus x_4x_5x1​⊕x2​x3​⊕x4​x5​中的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 Dx​fΔ​=DΔ​f
其中DxfΔD_xf_{\Delta}Dx​fΔ​表示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​⊕x2​x3​⊕x3​⊕(x1​⊕1⊕x2​x3​⊕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⊕x3​x⊕x2​x3​⊕x3​=(x3​⊕1)x⊕x1​⊕x2​x3​⊕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=Dx​fΔ​=Dx​(g(α⊕xβ)∘Ψ)=(Dx​g(α⊕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=(Dx​g(α⊕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​⊕x2​x3​⊕x3​,x2​⊕x3​x4​⊕x4​,x3​⊕x4​x5​⊕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)={var⁡w,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=λout​Y′′(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 论文阅读笔记相关推荐

  1. 论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning

    论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning 本文通过神经网络利用了减少轮数的 Speck 的差分性质.为此,作者对神经网络 ...

  2. DnCNN论文阅读笔记【MATLAB】

    DnCNN论文阅读笔记 论文信息: 论文代码:https://github.com/cszn/DnCNN Abstract 提出网络:DnCNNs 关键技术: Residual learning an ...

  3. DCP(Deep Closest Point)论文阅读笔记以及详析

    DCP论文阅读笔记 前言 本文中图片仓库位于github,所以如果阅读的时候发现图片加载困难.建议挂个梯子. 作者博客:https://codefmeister.github.io/ 转载前请联系作者 ...

  4. 【SOD论文阅读笔记】Visual Saliency Transformer

    [SOD论文阅读笔记]Visual Saliency Transformer 一.摘要 Motivation: Method: Experimental results 二.Introduction ...

  5. 论文阅读笔记(2):Learning a Self-Expressive Network for Subspace Clustering,SENet,用于大规模子空间聚类的自表达网络

    论文阅读笔记(2):Learning a Self-Expressive Network for Subspace Clustering. SENet--用于大规模子空间聚类的自表达网络 前言 摘要 ...

  6. 论文阅读笔记(二)——牛的人脸识别,能做到吗?

    论文阅读笔记(二)--牛的人脸识别,能做到吗? 论文简介 论文中文翻译:<牛的人脸识别,能做到吗?> 论文名称:<Face Recognition of Cattle: Can it ...

  7. 论文阅读笔记:Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

    论文阅读笔记:Swin Transformer 摘要 1 简介 2 相关工作 3 方法论 3.1 总览 Swin Transformer block 3.2 shifted window-based ...

  8. Capture, Learning, and Synthesisof 3D Speaking styles论文阅读笔记 VOCA

    Capture, Learning, and Synthesisof 3D Speaking Styles论文阅读笔记 摘要 制作了一个4D面部(3D mesh 序列 + 同步语音)数据集:29分钟, ...

  9. Dynamic MDETR: A Dynamic Multimodal Transformer Decoder for Visual Grounding 论文阅读笔记

    Dynamic MDETR: A Dynamic Multimodal Transformer Decoder for Visual Grounding 论文阅读笔记 一.Abstract 二.引言 ...

最新文章

  1. 如何安装apache服务器最新,云服务器如何安装apache
  2. JAVA实现矩形覆盖问题(《剑指offer》)
  3. 仅IE6中链接A的href为javascript协议时不能在当前页面跳转
  4. linux如何定期备份,在Linux系统中简单地实现定时备份的方法
  5. CentOS --kickstart服务器搭建(一)
  6. Anaconda prompt:Cache entry deserialization failed, entry ignored
  7. 面试官问:你做过什么Java线程池实践,我写了一篇博客给他看~
  8. 忘记MySQL密码怎么办?一招教你搞定!
  9. 计算机里的东西太多,电脑里的东西太多,怎么样清理一下啊
  10. 用户故事与敏捷开发方法笔记05
  11. Effective Java第二版 读后感
  12. IMI 基于 Swoole 开发的协程 PHP 开发框架 常驻内存、协程异步非阻塞
  13. 负载均衡实现 --- LVS的介绍、调度算法、NAT模式的搭建
  14. Delphi各个版本的官方下载地址
  15. 城市中心、华为、软通动力智慧城市联合解决方案发布
  16. 网络协议基础05--数据链路层
  17. 如何读懂EDIFACT报文
  18. 【深度学习Deep Learning】资料大全
  19. 2012 SDCC中国软件开发者大会门票社区团购火热开启!
  20. Gopher China 2019 讲师专访 -探探平台技术部软件工程师于乐

热门文章

  1. 刚当上leader,我让组员去开会,他非说有更重要的会
  2. 湖北省宜昌市谷歌高清卫星地图下载
  3. 游戏进度:关于DirectX3D的压缩纹理格式DXT1/CB1
  4. Firefox的扩展开发介绍
  5. <CSS3练习> CSS动画综合案例 热点图(含素材)
  6. 【solarwinds】【Orion】综述
  7. 个性化推荐的一些挑战(可能比较老了)
  8. CSS3-美化网页元素
  9. 跳马周游c++_NOIP信息学奥赛C++视频教程
  10. 几种常用网络请求汇总