基于分组密码的认证加密方案的INT‐RUP分析
1 引言
密码学的主要应用是实现两个或多个用户之间的安全信道,以通过该信道交换信息。用户最初通过密钥建立或密钥交换协议获得共享密钥。他们使用该密钥,借助高效对称密钥算法(如消息认证码(MAC)和(对称密钥)加密)来认证和加密传输的信息。加密可提供敏感数据的隐私性或机密性,这些数据称为明文或消息,而消息认证码则提供消息的数据完整性。认证加密(AE)是一种集成方案,可同时提供明文的隐私性和消息或密文的真实性或数据完整性。传统AE方案的解密包括两个阶段:明文计算和验证。只有在验证成功后,才释放对应于解密的明文。但在实际中,有时不可避免地需要在验证前释放明文。例如,当在智能卡等缓冲区有限的低端设备上实现AE时,无法存储整个明文。此外,也可能存在需要提前使用已解密明文的情况。
由于实时性要求而需要提前处理,如果明文在验证后才释放,则可能无法满足这些要求。此外,如果一个方案在释放未验证明文的情况下仍然是安全的,那么就可以提高该方案的效率。例如,可以使用两次处理的先加密后认证构造(第一遍处理用于验证MAC,第二遍处理用于解密密文),以避免将未验证明文释放到具有不安全内存的设备中[17]。如果一种AE构造能够抵御未验证明文的泄露,则单次处理就已足够。而且,即使攻击者不能直接观察到未验证明文,仍可能通过侧信道攻击发现明文的一些有趣性质。例如,瓦德奈提出的填充预言机攻击中[18],,错误消息或缺少确认消息表明未验证明文是否正确填充。坎韦尔等人[4],展示了如何利用TLS解密处理中的时间差异,在OpenSSL的某个版本上实施填充预言机攻击。
需要注意的是,释放未验证明文并不意味着省略验证,验证仍然是防止接受错误明文的关键。然而,该场景假设攻击者可以在验证完成之前观察到未验证明文或与之相关的任何信息。Andreeva等人已在论文[2],中针对此问题进行了研究,并通过两个新概念对其进行形式化:PA(明文感知)和INT‐RUP(未验证明文释放下的完整性)。为实现隐私性,他们建议将明文感知(PA)与选择明文攻击下的不可区分性(IND‐CPA)结合使用。如果一个认证加密方案具备明文提取器,能够在没有密钥的情况下模拟解密预言机以欺骗攻击者,则该方案实现了明文感知。此时,释放未验证明文将变得无害,因为无法区分实际的解密预言机与明文提取器。他们在对称密钥环境下提出了两种明文感知概念——明文感知1(PA1)和明文感知2(PA2)。在PA1中,明文提取器可以访问发送给加密预言机的查询历史,而在PA2中则不能。因此,当对手的目标是从查询历史中获取额外知识时,采用PA1来应对未验证明文释放场景;而当对手的目标是解密查询历史中的某个密文时,则使用PA2。另一方面,若对手在拥有访问未验证解密预言机以及加密预言机的额外能力下,仍无法生成新的有效密文‐标签对,则称该AE方案实现了INT‐RUP安全性。
在[2], Andreeva等人还指出,大多数使用非重复初始向量(如OCB[11], GCM[12]等)或任意初始向量(如COPA[3], McOE‐G[6])的AE方案不具备明文感知1安全性,而像CTR、CBC这样使用随机初始向量的方案则具有明文感知1安全性。他们还引入了两种技术,分别称为非重复诱饵和PRF到IV方法,用于恢复非重复初始向量和任意初始向量方案的明文感知1安全性。他们还指出了OCB、COPA等方案的INT‐RUP安全性不足。释放未验证明文的问题已在正在进行的CAESAR竞赛[1]中被承认并明确讨论。研究各种方案的INT‐RUP安全性具有重要意义。
1.1 我们的贡献
在本论文中,我们研究了基于分组密码的AE方案的INT‐RUP安全性。如果一个基于分组密码的AE方案在生成密文(不包括标签)时所使用的分组密码调用次数恰好等于消息块的数量,并且生成标签所需的额外分组密码调用次数为常数(不依赖于消息块的数量),则称该方案为“速率1”方案。在本文中,我们首先讨论了标签处理过程中的弱点,这些弱点可以通过对标签生成方式进行小幅修改来修复。另一方面,本文描述了一种针对该模式的攻击,因此无法通过小幅修改来修复。在第3.3节中,借鉴iFeed所采用的类似思路,我们对通用反馈型认证加密模式提出了一种INT‐RUP攻击,该模式是一种“速率‐1”的基于分组密码的认证加密模式。在第3.1和3.2节中,我们详细描述了该模式,并给出了一些属于此类模式的现有流行AE方案的示例。此处我们采用了Nandi在定义线性模式认证加密时所使用的[14]符号,并将其扩展以定义广义基于分组密码的仿射模式认证加密方案。我们的主要结果如下:
(A). 对“速率‐1”仿射模式认证加密的通用INT‐RUP攻击。在第3.3节中,我们描述了针对该模式的一种通用INT‐RUP攻击。注意,在[14],Nandi提出了一种广义的PRP‐SPRP攻击(隐私攻击),其使用的思想与XLS上的SPRP攻击类似[15]。另一方面,我们的攻击是一种广义的INT‐RUP攻击(RUP环境下的完整性攻击),且我们所采用的攻击技术与他们的方法完全不同。我们的攻击类似于[2]在对OCB进行INT‐RUP攻击时所使用的方法。需要注意的是,我们的攻击不依赖于IV的类型。尽管可以通过使用随机IV来修复PA1安全性,但无法阻止INT‐RUP攻击。
(B). AES‐CPFB上的INT‐RUP攻击[13]。在第4.1节中,我们重新审视了提交至CAESAR竞赛的AE方案AES‐CPFB。CPFB是一种仿射模式AE方案,其速率为3/4。我们通过观察AES‐CPFB构造设计中的弱点,展示了针对AES‐CPFB的INT‐RUP攻击。
(C). mCPFB:一种速率为3/4 INT‐RUP安全的AE方案。在第4.3节中,我们提出了一种名为mCPFB的CPFB修改版本,然后在第4.4节中证明了mCPFB的INT‐RUP安全性。这表明,我们可以拥有速率为3/4的INT‐RUP安全的仿射模式AE构造。
1.2 我们结果的意义
基于分组密码的认证加密的效率随着每个消息块所需的分组密码调用次数的减少而提高。为了实现安全的认证加密方案,所需的分组密码调用次数至少等于消息中的块数。我们的结果表明,任何基于分组密码的“速率‐1”认证加密构造都无法达到INT‐RUP安全,这意味着为了实现INT‐RUP安全性,必须做出一定的妥协。效率。对于基于分组密码的认证加密方案而言,效率和INT‐RUP安全性无法兼得。另一方面,通过mCPFB(速率3/4)的INT‐RUP安全性,我们表明即使速率略有降低,该构造仍可实现INT‐RUP安全性。分组密码,因此效率降低。
2 预备知识
2.1 基于分组密码的AE方案的速率
基于分组密码的加密方案的速率定义为每次分组密码调用所处理的消息块数量。考虑一个认证加密方案,它需要(s+ c)次分组密码调用(其中s次分组密码调用来生成密文,额外的c次分组密码调用来生成标签)以处理l个消息块。该方案的速率为l/(s+c)。对于任意认证加密方案,s依赖于消息长度,即l。对于大多数认证加密方案而言,c是一个非常小的常数(通常为1或2),且不依赖于l。对于这类方案,我们可以忽略c项,并将方案的速率视为l/s。以下是一些基于分组密码的认证加密方案及其速率的示例:
- OCB[11], iFeed[19]: s= l, c= 1, 速率= 1.
- COPA[3], ELmD[5]: s= 2.l, c= 2,速率= 1/2。
- CPFB[13]:s= 4l/3, c= 2,速率= 3/4。
- CLOC[7], SILC[8]: s= l, c= l,速率= 1/2。
2.2 分块矩阵及其性质
在本小节中,我们讨论分块矩阵及其性质。我们借用了[14]中的一些符号。一个块是一个n比特的域元素。记B:={0, 1}^n。我们用粗体字母表示一个块(域元素),以区别于整数。例如, 2 表示一个块(域元素),而2表示一个整数值。我们用+表示整数加法和域加法,具体含义应根据上下文理解。如果一个矩阵的所有元素都是块,则称该矩阵为分块矩阵。在整个论文中,我们将所有矩阵视为分块矩阵。设Mn(a, b)表示所有分块矩阵Aa×b的集合(大小为a×b的分块矩阵,以及大小为an×bn的二进制矩阵),其中第(i, j)个th元素,记为A[i, j],对所有i ∈[1..a]={1,…, a}和j ∈[1..b]均为分块矩阵。A的转置,记为Atr,按二进制矩阵进行操作。因此,Atr[i, j]= A[j, i]tr,其中A[i, ∗]和A[∗, j]分别表示ith块行和jth块列。对于1 ≤ i ≤ j ≤ a,我们也写作A[i..j; ∗],表示由第i行到第j行之间的所有行组成的子矩阵。我们简写为A[..j; ∗]或A[i..; ∗],分别表示A[1..j; ∗]和A[i..a; ∗]。类似地定义列的符号。(0)和(1)分别表示适当大小、所有元素均为0和1的矩阵。
一个(方)矩阵A ∈ Mn(a, a)如果对所有i ≠ j,A[i, j]= 0和A[i, i]= 1满足条件,则称为(分块)对角矩阵。我们用Ia表示它。如果对于所有1 ≤ i ≤ j ≤ a,A[i, j]= 0满足条件,我们称一个(方)矩阵A ∈ Mn(a, a)为(分块)严格下三角矩阵。
对于所有X=(X1,…, Xl) ∈ Bl,我们定义一个将l个块映射到b个块的仿射函数为A ·(1 X)=(Y1,…, Yb)。这里,我们将X和Y视为二进制列向量(我们遵循此约定,应根据上下文理解)。因此,块矩阵A[1, j]表示Yi中的常数项,而A[i+ 1, j]表示Xj对Yi的贡献。更正式地,
$$
Y_i = A[i, 1] + A[i, 2] \cdot X_1 + A[i, 3] \cdot X_2 + \cdots + A[i+1, a] \cdot X_i, \quad 1 \leq i \leq b.
$$
如果A[2..a, 2..b]是一个严格下三角矩阵,那么Yi显然在功能上独立于Xi,…,Xl, 1 ≤ i ≤ l。因此,如果我们为每个Xi唯一地关联Yi(例如,对某个函数ρ有Yi= ρ(Xi)),则满足A·X= Y的向量X和Y的选择就变得唯一。这一观察在我们定义基于黑盒的构造的中间输入和输出时非常有用。
矩阵的有用性质
众所周知,矩阵A ∈ Mn(s, t)的线性无关(二进制)行和列的最大数目是相同的,这个数称为矩阵的秩,记为rank(A)。因此显然有rank(A) ≤ min{ns, nt}。
现在,我们简要陈述矩阵的两个非常重要的性质。
引理1. 设M和N为两个行数相同的矩阵。如果M不满秩,但[M: N]满秩,则可以找到一个行向量R,使得R · M= 0成立但R · N ≠ 0不成立。
引理2。 设A ∈ Mn(s, t)和r= rank(A)。那么,如果s < t,则我们可以找到A · x= 0的一个解(不一定是唯一的)。
由于证明是直接的,我们省略了证明。
3 广义“速率‐1”仿射模式AES方案
3.1 仿射查询与模式
块矩阵J ∈ Mn(q, 1+ l+ q)称为(l, q)‐查询函数,如果J[∗, l+1..]是块意义上的严格下三角。这里q表示查询次数,l表示输入中的块数。对于任意这样的查询函数,给定一个输入M ∈ Bl(以及一组q个函数ρ˜=(ρ1,…, ρq)定义在B上),我们可以唯一地定义或关联U和V,分别称为中间输入和输出向量,并满足
(i) $ J \cdot \begin{pmatrix} 1 \ M \ O \end{pmatrix} = I $ 和 (ii) $ \tilde{\rho}(I) := (\rho_1(I_1), …, \rho_q(I_q)) = O $。
这可以通过递归定义Ii和Oi来轻松证明。更准确地说,Ii是M, O1,…, Oi−1的仿射函数,且对于所有1 ≤ i ≤ q,Oi由Ii通过ρi唯一确定。
非正式地说,一个(l, b, q)‐仿射模式是一种接收l个块输入并返回b个块输出的模式,其基于执行分组函数构建模块。形式上,(l, b, q)‐仿射模式由一个块矩阵E ∈ Mn(q+ b, 1+ l+ q)定义,其中E[1..q, ∗]是一个(l, q)‐查询函数。对于任意q元函数组ρ˜ ∈ Funcq,相应的仿射模式函数Eρ˜:Bl → Bb定义为Eρ˜(I)= O,其中
$$
E \cdot \begin{pmatrix} 1 \ M \ O \end{pmatrix} = (I Z), \quad \tilde{\rho}(I) = O.
$$
因此,V是与输入I相关的中间输出向量,以及最终输出Z:= E[q+ 1.., ∗] · (1 M O),它是O和M的仿射函数。现在注意到,ρ˜的函数是非线性的,并且对攻击者来说是保密的。因此,为了获取有关中间输入和输出的任何信息,我们只能在相同函数下两个输入发生碰撞时,将中间输出等同起来。
Keyed Affine Mode
设F= F1 × ··· × Ff和k为非负整数,其中Fi ⊆ Func。对于任意带密钥函数,其密钥空间K具有形式Bk × F。我们将F称为函数密钥空间,Bk称为掩码密钥空间。任何函数g也可写作g+1。
定义1。 设μ:[1..q] →[1..f],称为密钥分配函数,α:=(α1,…,αl)∈{+1,−1},称为逆分配元组。对于任意函数密钥ρ=(ρ1,…,ρf) ∈ F,我们定义ραμ:=(ρα1 μ1,…,ραq)。我们将所有函数ραμ的集合记为Fαμ。这里我们隐含地假设,每当αi= −1, ρμi是一个置换时。如果α=+1q,我们直接省略符号α。通常情况下,当我们考虑密钥函数的解密时,可能需要使用基本组件的逆调用。对于加密,或未定义解密的密钥函数,不失一般性,我们可以假设α= 1q。
定义2. 一个(k, l, b, q)带密钥仿射模式,其密钥空间为K,密钥分配函数为μ,是一个(k+l, b, q)线性模式E。对于每个密钥κ:=(L, ρ) ∈ K:= Ikn×F,我们定义一个带密钥函数Eκ(M):= Eρµ(K, M)。
注意,给定一个密钥(K, ρ)和一个密钥分配函数μ,我们可以将一个(k, l, b, q)密钥仿射函数表示如下:
$$
E \cdot \begin{pmatrix} L \ M \ O \end{pmatrix} = (I Z) , \quad \rho_\mu(I) = O \quad \text{where} \quad L=(1 K)
$$
3.2 仿射模式认证加密方案
一个(l, s, c)仿射模式认证加密方案接收输入M ∈Bl,并使用(s+ c)次非线性块计算返回带标签的密文(C, T) ∈ Bl × B。此外,它需要恰好s次非线性块计算来计算C,以及额外的c次置换用于计算标签T。
定义4. 一个(k+ l, l+ 1, s+ c)-仿射模式E,若其对应的解密算法D也是一个(k+ l, {v113}, s+ c)-线性模式,并满足以下两个条件:(1) 存在一个逆赋值元组α:=(α1,…, αs+c) ∈{1,−1};(2) 密钥赋值π′:= β ◦ π,其中β=(β1,…, βs+c)是[1..(s+ c)]上的一个置换,则称该仿射模式为具有密钥空间K:= Bk × F和密钥赋值π的(l, s, c)仿射模式认证加密。此外,∀M ∈ Bl, L ∈ Bk, ρ=(ρ1,…, ρf) ∈F,
$$
E \cdot \begin{pmatrix} L \ M \ Y^
\end{pmatrix} = \begin{pmatrix} X^
\ (C T) \end{pmatrix}, \quad \rho_{\pi_i}(U_i) = V_i
$$
if and only if
$$
D \cdot \begin{pmatrix} L \ C \ V^
\end{pmatrix} = \begin{pmatrix} U^
\ (M T) \end{pmatrix}, \quad \rho_{\alpha_i \pi’_i}(X_i) = Y_i
$$
其中(U , V )是(α, β)-对(X , Y )的重排序。此处假设使用的密钥数量k为常数,且不依赖于l。
速率‐1仿射模式认证加密方案
如果一个仿射(认证)加密方案在生成长度为l的消息的密文(不含标签)时,所需的置换调用次数恰好为l,即s= l,则称该方案为“速率‐1”。
我们将“速率‐1”仿射模式认证加密表示为:
$$
E \cdot \begin{pmatrix} L \ M \ Y^
= \begin{pmatrix} Y \ Y_{\text{tag}} \end{pmatrix} \end{pmatrix} = \begin{pmatrix} X^
= \begin{pmatrix} X \ X_{\text{tag}} \end{pmatrix} \ Z = (C T) \end{pmatrix}
$$
其中X= X [1..l], Xtag = X [(l+ 1)..(l+ c)], Y= Y [1..l]和Ytag =Y [(l+ 1)..(l+ c)]。显然,一个“速率‐1”仿射模式认证加密方案具有
$$
E = \begin{pmatrix}
(E_{11})
{l×(k+1)} & (E
{12})
{l×l} & (E
{13})
{l×l} & (E
{14})
{l×c} \
(E
{21})
{c×(k+1)} & (E
{22})
{c×l} & (E
{23})
{c×l} & (E
{24})
{c×c} \
(E
{31})
{l×(k+1)} & (E
{32})
{l×l} & (E
{33})
{l×l} & (E
{34})
{l×c} \
(E
{41})
{1×(k+1)} & (E
{42})
{1×l} & (E
{43})
{1×l} & (E
{44})_{1×c}
\end{pmatrix}
$$
容易验证E13和E24是严格下三角矩阵,而E14= E34是零矩阵。
对于解密,我们有相同的表示形式,即将E替换为D,X替换为U,Y替换为V,M替换为C,以及C替换为M。
一些流行的“速率‐1”仿射模式AE方案示例包括:iFeed、OCB等。这些构造对应的E矩阵可在完整版本中找到。
备注1. 容易验证,任何基于反馈的“速率‐1”AE构造都是“速率‐1”仿射模式认证加密。详细证明见完整版本。
解密矩阵D的重要性质
引理3. 如果rank(D33)<(l −(1+ k))n,那么该AE构造不保持隐私。
证明。我们有如下条件:D31.L+ D32.C+ D33.V= M。由于[D31: D32: D33]的组合秩是满的(否则该方案无法解密),我们可以找到一个行向量N,使得N.D32 ≠ 0成立,但N.D31= 0且N.D33= 0。这给出了关于C和P的一个线性方程:
$$
N.D32.C = N.M.
$$
利用此方程,可以通过一次查询并检查上述方程是否成立,来将该方案与随机函数区分开。
引理4。 如果rank(D12)<(l − c)n,那么该AE构造不具有完整性安全。
证明. 设一个AE方案的解密矩阵为D,其中rank(D12) <(l−c)n。现在,我们描述一种仅使用一次加密查询针对该方案的完整性攻击,如下所示:
- 加密查询:(N, AD, M=(M1, M2,…, Ml)。设,C=(C1, C2,…,Cl, T)为带标签密文。
- 找到一个非零的ΔC=(ΔC1,…,ΔCl),使其满足(i) D12ΔC= 0和(ii) D22ΔC= 0。D12的秩保证了我们将为某些l找到这样的ΔC值。设其为ΔC*
- 计算ΔT= D42ΔC*
- 伪造查询:(N, AD, C+ΔC*, T+ΔT)
3.3 速率‐1基于分组密码的仿射模式AES方案的INT‐RUP不安全性
在本节中,我们证明以下定理:
定理1. 任何“速率-1”基于分组密码的仿射模式认证加密方案都是INT-RUP不安全的。
证明。下面我们描述针对速率‐1仿射域认证加密方案的通用INT‐RUP攻击。该攻击包含一次加密查询和一次未验证明文查询:
- 加密查询:(N, AD, M0=(M0 1, M0 2,…, M0 l)). 设,C0=(C0 1, C0 2,…, C0 l, T 0)为带标签密文。
- 未验证明文查询:(N, AD, C1=(C1 1, C1 2,…, C1 l)). 设M1=(M1 1, M1 2,…, M1 l)为对应的明文。
- 伪造查询:(N, AD, Cf=(Cf 1, Cf 2,…, Cf l) Tf),其生成一个δ=(δ1,…, δl)序列。
Cf在给定二进制向量δ=(δ1,…, δl)、∀i ≤ l, Uf i= Uδi i和∀i> l, Uf i= U0 i的情况下,生成一个δ‐序列。
注意,由于所有查询都使用相同的随机数和关联数据,因此所有查询的密钥将保持不变。因此我们得到以下关系:
$$
(D12 D13 D32 D33) \cdot (\Delta Cij \Delta Vij) = (\Delta Uij \Delta Mij), \quad i= 0, j \in {1, f}
$$
$$
(D22 D23 D24 D42 D43 D44) \cdot \begin{pmatrix} \Delta C0f \ \Delta V0f \ \Delta V0f_{\text{tag}} \end{pmatrix} = (\Delta U0f_{\text{tag}} \Delta T0f)
$$
现在,我们的任务是找到ΔC0f=(ΔC0f 1,…,ΔC0f l)和T0的值f。
我们在以下步骤中发现:
- 步骤1。 从方程D32ΔC01+ D33ΔV01=ΔM01中求出ΔV01:
$$
\Delta V01 = D^{-1}_{33}(\Delta M01 + D32\Delta C01)
$$
- 步骤2. 用δ表示ΔC0f:
$$
\Delta C0f = D^{-1}_{12} \cdot (\Delta U0f + D32\Delta V0f)
$$
由于ΔU0fi = δi.ΔU01i和ΔV0fi = δi.ΔV01i,可以将ΔU0f和V0f都写成δ的线性组合。因此,我们可以写出(ΔU0f+ D32ΔV0f)= D .δ,其中D 为某个值。事实上,我们可以按如下方式求出D*:
$$
D^* = \begin{pmatrix}
\Delta U01_1 + D11_{13} \cdot \Delta V01_1 & D12_{13} \cdot \Delta V01_2 & \cdots & D1l_{13} \cdot \Delta V01_l \
D21_{13} \cdot \Delta V01_1 & \Delta U01_2 + D22_{13} \cdot \Delta V01_2 & \cdots & D2l_{13} \cdot \Delta V01_l \
\vdots & \vdots & \ddots & \vdots \
Dl1_{13} \cdot \Delta V01_1 & Dl2_{13} \cdot \Delta V01_2 & \cdots & \Delta U01_l + Dll_{13} \cdot \Delta V01_l
\end{pmatrix}
$$
因此,我们可以将ΔC0f写成δ的如下线性组合:
$$
\Delta C0f = D^{-1}_{12} \cdot D^* \cdot \delta
$$
- 步骤3: 求解以下方程组,找出使ΔU0ftag= 0成立的δ
$$
D22\Delta C0f + D23\Delta V0f = 0
$$
由于ΔC0f和ΔV0f可以表示为δ的线性组合(如前所述),上述等式意味着
$$
(D22 \cdot D^{-1}_{12} \cdot D^
+ D23 \cdot V^
) \cdot \delta = 0
$$
容易看出,只要l > (c−1).n,该方程至少有一个解。设该解为δ∗。
- 步骤4。 我们将δ= δ∗代入以下方程,求出ΔC0f和ΔT0f:
$$
\Delta C0f = D^{-1}_{12} \cdot D^* \cdot \delta
$$
$$
\Delta T0f = D42\Delta C0f + D43\Delta V0f
$$
因此,我们提供了一种针对任意仿射域认证加密方案的广义INT‐RUP攻击,假设D12和D33矩阵是可逆的,这意味着rank(D12)= rank(D33)= l.n。
由引理3和4可知,rank(D12)和rank(D33)的值应较高。这确保了如果我们适当地将l设为一个较高的值,则能得到一个对D12和D33均具有满秩的(n × n)子矩阵。更准确地说,根据引理3和4,我们知道rank(D12) > (l −(k+ 1))n且rank(D33) > (l−c)n。容易验证,我们可以找到一个l的取值,使得子矩阵D12[l−n.., l−n..]和D33[l−n.., l−n..]均具有满秩。由于k和c是较小的常数,因此可以确保这样的l存在。现在可以很容易地修改之前的攻击并在此处应用。
推论1. 任何“速率-1”基于分组密码的AE方案在面对nonce重用攻击者时都不具备完整性安全。
这很容易验证,并可在完整版本中找到。
备注2(针对任意密钥数量的攻击扩展)。 在仿射域认证加密的定义中,我们假设k密钥数量为常数。某些构造如IACBC[9]和IAPM[10]在加密l块消息时使用log l个密钥。显然,我们的INT‐RUP攻击对这些构造同样有效。一般来说,即使所使用的掩码密钥数量依赖于消息长度,该攻击也适用于任何“速率‐1”认证加密方案,只要D11和D22是可逆的。
4 CPFB的INT‐RUP分析,一种基于分组密码的AE方案的速率 3/4 基于分组密码的AES方案
4.1 重新审视 CPFB
CPFB是一种基于分组密码的AE方案,它以随机数 N、关联数据 A(a个96位块)、消息 M(l个96位块)和一个密钥 K(128位)作为输入,并输出密文 C(l个96位块)和一个128位标签 T。由于每处理96位消息需要一次128位分组密码调用,因此该构造的速率为 96/128 = 3/4。CPFB认证加密的详细过程如图1所示。
此处 $(\ )$,其中 $,:其中$(\ )$和$(\ )$。
4.2 INT‐RUP攻击 on CPFB
该攻击包含一次加密和一次未验证明文查询。攻击步骤如下:
-
发起一次加密查询:$(N, A, M0=(M0_1, M0_2,…, M0_l))$,其中 $l = 129$。令 $C0=(C0_1, C0_2…, C0_l, T_0)$ 为带标签密文。对应的 $X$ 和 $Y$ 向量分别为 $X0=(X0_1 ,···, X0_{l+1})$ 和 $Y0=(Y0_1 ,···, Y0_{l+1})$。
-
发起一个未验证明文解密查询:$(N, A, C1=(C1_1, C1_2 ,···,C1_l))$。设 $M1=(M1_1 , M1_2 ,···, M1_l)$ 为对应的明文。相应的 $X$ 和 $Y$ 向量分别为 $X1=(X1_1 ,···, X1_{l+1})$ 和 $Y1=(Y1_1 ,···, Y1_{l+1})$。
-
通过将相应的消息与密文进行异或运算(使用 $M0 + C0$ 和 $M1 + C1$),从两次查询中计算出前96位 $Y$ 值 $Y0_1,···, Y0_l$ 和 $Y1_1,···, Y1_l$。
-
找到 $\delta$-序列 $(\delta_1,…, \delta_l)$,其中 $\delta_1 = 0$ 满足 $\sum_{i=2}^{l}(Y^{\delta_i} i || Z^{\delta_i}_i) = \sum {i=2}^{l}(Y0_i || Z0_i)$。可以预期存在 $2^{32}$ 个这样的 $\delta$-序列。这是因为利用上述条件两侧表达式中的前96位,我们可以建立关于128个未知数 $\delta_2,…, \delta_{129}$ 的128个线性方程,并且大概率可以获得一个解。由于表达式中最后的32位被假设为均匀且随机的,因此我们预期存在 $2^{32}$ 个这样的 $\delta$-序列。
-
对所有此类 $\delta$-序列执行以下操作:
- (a) 设置 $Cf_1 = C0_1$。对于所有 $1 < i < l$,如果 $\delta_{i-1} = \delta_i$ 且 $C^{\delta_i}_i + Y0_i + Y1_i$,则设置 $Cf_i = C^{\delta_i}_i$,否则不设置。
- (b) 如果 $\delta_l = 0$,则设置 $Cf_l = C0_l$;否则,设置 $Cf_l = C0_l + Y0_l + Y1_l$。
- (c) 返回 $(Cf_1, Cf_2,···, Cf_l, T_0)$ 作为伪造密文。
通过上述 $2^{32}$ 次伪造尝试,我们期望以非常高的概率至少得到一次有效伪造。
4.3 mCPFB:具有INT‐RUP安全性的修改的CPFB
动机。 由于CPFB的速率为 3/4,且通用INT‐RUP攻击不适用,我们尝试对 CPFB 进行修改,以使其具备INT‐RUP安全。我们首先观察到,CPFB的一个潜在弱点是,在消息处理阶段计算出的 $Z_i$ 值对密文 $C$ 没有影响。然而,所有32位的 $Z_i$ 值最终都会在 $T$ 的计算过程中被累加。因此,整个 $Z$ 向量对标签的影响熵降低至32位。因此,攻击者只需计算出合适的 $\delta$ 序列,并利用其可访问的 $Y$ 向量,即可伪造有效的密文‐标签对。因此,在生成密文块的过程中以适当方式注入32位的 $Z_i$ 值,可能可以抵御前述攻击。因此,我们尝试通过如下方式修改 $X_i$:$X_i = M_{i-1}||(i - 1) + \kappa_0 + Z_{i-1}||0^{96}$,其中 $2 \leq i \leq l+1$。该更新方案能够抵抗前述攻击,但增加了一次224未验证明文查询后,攻击者仍可对该更新版本发起改进攻击,且仅需 $2^{32}$ 次伪造尝试即可成功。该更新版本的弱点在于,对手仅能观察到 $Z_i$ 值,而最终标签中来自 $Z_i$ 值的熵仅为32位。因此,我们现在进一步修改构造,使得最终标签包含来自 $Z_i$ 值的完整128位熵,从而实现INT‐RUP安全。我们将修改后的构造称为mCPFB,mCPFB的详细内容如下所述。
mCPFB构造。 以下给出mCPFB构造的描述。此处,我们用记号 $V(d,\ ) \alpha$ 表示一个$(d× l)$范德蒙德矩阵,其$(i, j)^{th}$项为 $\alpha^{(i−1)(l−j)}$。
随机数处理。 使用随机数 $N$ 生成密钥:$\kappa_i = E_K(N||i||l_N)$。此步骤与CPFB相同。
关联数据处理。 关联数据 $A$ 被划分为 $a$ 个96比特的数据块。$A_i$,第 $i$ 个关联数据块通过 $U_i = U_{i-1} + E_{\kappa_1}(A_i||i)$ 进行处理。$X_A := U_a$ 是最终输出。此步骤与CPFB相同,只是我们使用密钥 $\kappa_1$ 而不是 $\kappa_0$。
消息处理。 mCPFB 可以处理大小不超过 $(2^{64} - 2^{32} - 4)$ 的任意消息。在消息处理阶段,我们首先通过距离为4的纠错码 ECCode 对 $M=(M_1,…, M_l)$ 进行扩展。
$$
\text{ECCode}(M) = (M_1,…, M_l, M_{l+1}, M_{l+2}, M_{l+3})
$$
其中 $(M_{l+1}, M_{l+2}, M_{l+3}) = V(3,l) \beta \cdot M$,其中 $\beta$ 是 $F {2^{96}}$ 的一个本原元。在[16]中已证明,固定长度输入的纠错码具有最小距离为4。扩展后,我们以与CPFB处理消息相同的方式处理此扩展后的消息。$C=(C_1,…, C_l)$ 是密文。
标签生成阶段。 标签 $T$ 通过 $E_{\kappa_{-1}}(\tau)$ 计算得出,其中 $\tau = W_l \oplus X_A \oplus L$ 且 $\kappa_{-1} = \kappa_{2^{32}-1}$。$W_l$ 的计算方式如下:
$$
W_l = V(4,l+3)
\alpha \cdot (Z_2, Z_3,···, Z
{l+3}, Z_{l+4}) \oplus (0^{32}||V_l),
$$
其中 $V_l = Y_2 \oplus ··· \oplus Y_{l+3}$ 和 $\alpha$ 是 $F_{2^{32}}$ 的本原元。$L$ 定义为 $L = E_{\kappa_{-1}}(a||l||0)$。
4.4 mCPFB的INT‐RUP安全性
在本节中,我们详细证明mCPFB的INT‐RUP安全性。考虑函数 $f$,它以 $N$、$I$ 和 $i$ 为输入,并输出 $O$,使得 $O = E_{\kappa[i]}(I||(i \mod 2^{32}) + \kappa_0)$,其中 $\kappa[i] = E_K(N||j||l)$,$j = \left\lfloor \frac{i}{2^{32}} \right\rfloor$。$f$ 被假定具有 $(q, \epsilon)$-PRF安全性,其中 $\epsilon$ 被认为可达到生日安全界以上。基于此,我们证明以下定理:
定理2. 设 $f$(定义如上)为$(q_e + q_r, \epsilon)$-PRF。任何对手 $A$,进行 $q_e$ 次加密查询和 $q_r$ 次未验证明文查询,对mCPFB的INT-RUP安全性(在单次伪造尝试下)的攻击优势如下:
$$
\text{Adv}^{\text{int-rup}}_{\text{mCPFB}}(A) \leq \frac{5}{2^{128}} + \epsilon
$$
证明。 首先,我们考虑以下重要观察:
- 作为 $f(q_e + q_r, \epsilon)$-PRF,我们将 $f$ 模块替换为一个随机函数。因此,对于任意两个不同的$(N, M_i, i)$,我们认为 $Y_i||Z_i$ 是均匀且随机的。
- $Z$-值通过范德蒙德矩阵相乘,在标签 $T$ 上具有完整的128位熵。
- ECCode 是一种用于固定长度输入的距离为4的纠错码——因此对于两个不同的消息 $M=(M_1, M_2,···, M_l)$ 和 $M’=(M’_1, M’_2,···, M’_l)$,至少存在四个索引,其对应的32位$Z$-值是均匀且随机的。对于未验证的明文查询,由于标签未生成,因此这些值是未知的。
现在假设对手发出加密查询$(N_i, A_i, M_i)$,并获得了 $i = 1(1)q_e$ 对应的$(C_i, T_i)$,然后发出未验证查询$(N^{\text{rup}} i, A^{\text{rup}}_i, C^{\text{rup}}_i)$,并获得了 $i = 1(1)q_r$ 对应的 $M^{\text{rup}}_i$,随后使用$(N^ , A^ , C^ , T^ )$ 进行伪造。对手的视图为 $\text{View}(A) = {(N_i, A_i, M_i, C_i, T_i) {i=1(1)q_e}; (N^{\text{rup}} i, A^{\text{rup}}_i, C^{\text{rup}}_i, M^{\text{rup}}_i) {i=1(1)q_r}}$。令Win表示对手 $A$ 赢得 INT‐RUP安全性游戏的事件。容易验证,
$$
\Pr[\text{Win}] := \max_v \Pr[\text{Win}_v] = \Pr[(N^
, A^
, C^
, T^
) \text{ is valid} \mid \text{View}(A) = v]
$$
现在,对于任意的 $v$,如果我们能证明 $\Pr[\text{Win}_v] < \epsilon$,那么就有 $\Pr[\text{Win}] < \epsilon$,从而完成证明。考虑以下情况:
情况 A。 $\forall i, N^* \neq N_i$:由于 $\kappa_{-1}$ 与 $\kappa_{1}^{-1},…, \kappa_{q_e}^{-1}$ 相互独立,我们可以通过以下方式限制对手的优势,
$$
\Pr[\text{Win}
v] = \Pr[E
{\kappa^
_{-1}}(\tau^
) = T^
\mid \text{View}(A) = v] = \left( \frac{1}{2^{128}} \sum_{L^
\neq T^
} \Pr[E_{\kappa^
{-1}}(\tau^
) = T^
\mid E
{\kappa^
_{-1}}(a^
||l^
||0) = L^
] \right) + \Pr[L^
= T^
] \leq \frac{1}{2^{128}} + \Pr[L^
= T^
] \leq \frac{2}{2^{128}}
$$
情况 B。 $\exists \text{ unique } i \text{ such that } N^ = N_i, T^ \neq T_i$:此处为 $\kappa^ _{-1} = \kappa_i^{-1}$。由于 $T^ $ 是一个新的分组密码输出,本情况下的成功伪造上界如下所示:
$$
\Pr[\text{Win}
v] = \Pr[E
{\kappa^
_{-1}}(\tau^
) = T^
\mid \text{View}(A) = v] = \sum_{L^
, L_i \neq T^
} \Pr[E_{\kappa^
{-1}}(\tau^
) = T^
\mid E
{\kappa^
{-1}}(\tau_i) = T_i, E
{\kappa^
{-1}}(a^
||l^
||0) = L^
, E_{\kappa^
{-1}}(a_i||l_i||0) = L_i] + \Pr[T^
\notin {L_i, L^
}] \leq \frac{1}{2^{128} - 3} + \Pr[T^
\notin {L_i, L^
}] \leq \frac{1}{2^{128} - 3} + \frac{2}{2^{128}} \leq \frac{5}{2^{128}}
$$
情况 C。 $\exists \text{ unique } i \text{ such that } N^ = N_i, T^ = T_i, |C_i| = |C^ |$:这里同样有 $\kappa^ _{-1} = \kappa_i^{-1}$。由于此处 $T^ = T_i$,我们必须通过 $\tau^ $ 和 $\tau_i$ 的低碰撞概率进行论证。根据观察 (ii) 和 (iii),我们发现对于 $i$th 加密查询和伪造查询,$\Delta Z$ 中至少有4个非零项。基于此 $Z$ 的熵,我们对该情况下Win的概率进行了限定。更正式地,
$$
\Pr[\text{Win}
v] = \Pr[E
{\kappa^
_{-1}}(\tau^
) = T^
\mid \text{View}(A) = v] = \Pr[E_{\kappa_i^{-1}}(\tau^
) = T_i \mid E_{\kappa_i^{-1}}(\tau_i) = T_i] = \Pr[W^
_l + X^
m + L^
= W^i_l + X^i_m + L_i] = \Pr[W^
_l + W_l = c] = \Pr[V(4,l+3)
\alpha \cdot \Delta Z = c’] \leq \frac{1}{2^{128}}
$$
情况 D。 $\exists \text{ unique } i \text{ such that } N^ = N_i, T^ = T_i, |C_i| \neq |C^*|$:如果 $M_i$ 的长度与伪造密文的长度不同,那么我们无法通过$\Delta Z$的熵来进行论证,因为对于长度不同的两条消息,$\Delta Z$可能仅在一个位置上不同。因此,在此我们通过两次查询的$L$-值进行论证。事实上,我们证明在此情况下,可以得到关于相应$L$-值的一个非平凡方程,该方程可由
$$
\Pr[\text{Win}
v] = \Pr[E
{\kappa^
_{-1}}(\tau^
) = T^
\mid \text{View}(A) = v] = \Pr[E_{\kappa^
{-1}}(\tau^
) = T_i \mid E_{\kappa^
{-1}}(\tau_i) = T_i] = \Pr[\tau^
= \tau_i] = \Pr[W^
l + X^
_m + L^
= W^i_l + X^i_m + L_i] = \Pr[L^
+ Li = c] = \Pr[E_{\kappa^
{-1}}(a^
||l^
||0) + E_{\kappa^*_{-1}}(a_i||l_i||0) = c] \leq \frac{1}{2^{128}}.
$$
5 结论和未来工作
本文中,我们提出了一种针对任意“速率‐1”仿射AE模式的通用INT‐RUP攻击。该结果表明,为了实现INT‐RUP安全性,任何基于分组密码的AE方案必须使用的分组密码调用次数多于消息块的数量。因此,基于分组密码的AE方案可以在牺牲效率的前提下实现INT‐RUP安全性。我们还将此攻击扩展到速率小于1的CPFB,并展示了一种变体CPFB,其可实现INT‐RUP安全。
对“速率< 1”基于分组密码的AE构造的INT‐RUP安全性分析是一个可能的未来工作方向。我们知道,像ELmD、SILC和CLOC这样的“速率‐1/2”AE方案声称具有INT‐RUP安全性,而CoPA则没有。因此,寻找一种使得“速率‐1/2”AE方案具备INT‐RUP安全性的性质是值得关注的。还可以进一步将其推广至任意速率$r < 1$。为基于分组密码的AE方案提供速率的上界并给出相应构造将是一个有趣的问题。
1042

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



