CBC-MAC算法及其变体详解
1. 简单CBC - MAC算法概述
CBC - MAC是最古老且最流行的消息认证码(MAC)算法之一。MAC算法是一种加密算法,它对明文和密钥进行复杂运算,生成的MAC值通常附加在明文之后,以保护其真实性。CBC - MAC基于分组密码,源自加密模式中的密码块链接(CBC)模式,在金融应用和智能卡领域应用广泛。
1.1 符号定义
- 分组密码的块长度记为 (n),密钥长度记为 (k)。
- MAC值的长度(以比特为单位)记为 (m)。
- 使用密钥 (K) 对分组密码 (E) 进行加密和解密分别记为 (E_K(\cdot)) 和 (D_K(\cdot))。
- 全零的 (n) 比特字符串记为 (0_n)。
1.2 算法步骤
CBC - MAC是一种迭代的MAC算法,包含以下步骤:
1. 输入填充与分割 :
- 目标是将输入分割为 (t) 个长度为 (n) 的块,在此之前需要应用填充算法。
- 常见填充方法:设填充前的消息字符串为 (x = x_1, x_2, \cdots, x_{t’}),且 (|x_1| = |x_2| = \cdots = |x_{t’-1}| = t)((|x_i|) 表示字符串 (x_i) 的比特大小)。
- 若 (|x_{t’}| = n),则附加一个额外的块 (x_{t’+1}),该块由一个 (1) 比特后跟 (n - 1) 个 (0) 比特组成,使得 (|x_{t’+1}| = n),并设 (t = t’ +
超级会员免费看
订阅专栏 解锁全文
4万+

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



