自同步流密码Moustique详解
一、自同步流加密概述
1.1 定义
在按位操作的流加密中,每个明文位 $m_t$ 通过与密钥流位 $z_t$ 进行模 2 加法加密得到密文符号 $c_t$,公式为:
$c_t = m_t \oplus z_t$
解密则是:
$m_t = c_t \oplus z_t$
在单比特自同步流加密中,密钥流符号 $z_t$ 是将密码函数 $f_c$ 应用于密文流的一个窗口(索引范围为 $[t - n_m, t - (b_s + 1)]$)和一个 $n_k$ 位的密钥 $K$ 的结果,即:
$z_t = f_c K $
其中,$n_m$ 称为输入记忆,$b_s$ 称为密码函数延迟。对于明文的前 $n_m$ 位加密,由于没有可用的密文位,这些位由初始化向量(IV)代替,该向量必须在发送方和接收方之间共享,并且可以是公开的:
$c_{-n_m} \cdots c_0 =$ 初始化向量(IV)
一般来说,使用不同的 IV 值对同一明文进行加密会得到不同的密文。但需要注意的是,如果 IV 值仅在前 $\ell$ 位不同,两个密文相等的概率为 $2^{-\ell}$;如果 IV 值仅在最后 $b_s - \ell$ 位不同,密文的前 $\ell$ 位将肯定相同。
自同步流密码虽然名称如此,但实际上更类似于分组密码,而不是同步流密码。攻击者可以针对选定的输
超级会员免费看
订阅专栏 解锁全文
38

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



