双工结构(duplex construction)

参考文献:

  1. [BDPV11] Bertoni G, Daemen J, Peeters M, et al. Duplexing the sponge: single-pass authenticated encryption and other applications[C]//Selected Areas in Cryptography: 18th International Workshop, SAC 2011, Toronto, ON, Canada, August 11-12, 2011, Revised Selected Papers 18. Springer Berlin Heidelberg, 2012: 320-337.
  2. 海绵结构:Hash as RO

Padding Rules

在海绵结构中,变换 f f f 的宽度是 b = c + r b=c+r b=c+r,容量是 c c c,比率是 r r r

在这里插入图片描述

对于变长的输入 M M M,需要做一定的填充,使得它的长度是 r r r 的倍数。填充规则记为 p a d [ r ] ( ∣ M ∣ ) pad[r](|M|) pad[r](M),应当满足一些条件,使得海绵函数是安全的。

在这里插入图片描述

根据 [BDPV11],一个充分条件是:填充可逆、填充后长度大于零、最后一个区块不是零。

  • simple reversible padding:定义为 p a d 1 0 ∗ [ r ] ( x ) , ∀ x ≥ 0 pad10^*[r](x), \forall x\ge0 pad10[r](x),x0,其中 0 ∗ 0^* 0 的长度是 [ − x − 1 ] r ∈ [ 0 , r − 1 ] [-x-1]_r \in [0,r-1] [x1]r[0,r1]
  • multi-rate padding:定义为 p a d 1 0 ∗ 1 [ r ] ( x ) , ∀ x ≥ 0 pad10^*1[r](x), \forall x\ge0 pad101[r](x),x0,其中 0 ∗ 0^* 0 的长度是 [ − x − 2 ] r ∈ [ 0 , r − 2 ] [-x-2]_r \in [0,r-2] [x2]r[0,r2]

注意到填充长度大于零,即使 ∣ M ∣ |M| M 恰好是 r r r 的倍数,也必须添加上一个新的区块。

Duplex Construction

[BDPV11] 提出了双工结构,它是带状态的,其输入流/输出流的速率相同。如图所示:

在这里插入图片描述

假设已经确定了某个 padding rule,定义 maximum duplex rate
ρ m a x ( p a d , r ) = min ⁡ { x ∣ x + p a d [ r ] ( x ) > r } − 1 \rho_{max}(pad,r) = \min\{x \mid x+pad[r](x) > r \}-1 ρmax(pad,r)=min{xx+pad[r](x)>r}1
容易验证, ρ m a x ( p a d 1 0 ∗ , r ) = r − 1 \rho_{max}(pad10^*,r) = r-1 ρmax(pad10,r)=r1 以及 ρ m a x ( p a d 1 0 ∗ 1 , r ) = r − 2 \rho_{max}(pad10^*1,r) = r-2 ρmax(pad101,r)=r2

双工结构的算法为:

在这里插入图片描述

如果 σ i = ∅ \sigma_i=\empty σi=,称之为 blank call(空的);如果 l i = 0 l_i=0 li=0,称之为 mute call(哑的)

双工结构的每一次调用,都等价于如下的海绵结构:

在这里插入图片描述

具体来说,海绵结构本身对 M M M 有个 pading,那么有
Z i = S p o n g e ( σ 0 ∥ p a d 0 ∥ ⋯ ∥ σ i − 1 ∥ p a d i − 1 ∥ σ i ,    l i ) Z_i = Sponge(\sigma_0\|pad_0\|\cdots\|\sigma_{i-1}\|pad_{i-1}\|\sigma_i,\,\, l_i) Zi=Sponge(σ0pad0σi1padi1σi,li)
并且 σ 0 ∥ σ i → σ 0 ∥ p a d 0 ∥ ⋯ ∥ σ i − 1 ∥ p a d i − 1 ∥ σ i \sigma_0\|\sigma_i \to \sigma_0\|pad_0\|\cdots\|\sigma_{i-1}\|pad_{i-1}\|\sigma_i σ0σiσ0pad0σi1padi1σi 是单射,因此可以将双工结构的安全性归约为海绵结构的安全性

Applications

[BDPV11] 给出了双工结构的一些应用:

  • authenticated encryption,带身份验证的加密,提供隐私性和认证性
  • key wrapping,密钥打包,提供隐私性和完整性
  • reseedable PRG,重新播种的PRG,将新的种子和当前状态组合
  • overwrite functions,当前输入覆盖了部分的状态,而非和当前的状态异或
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值