MAC是一种应用官方的消息认证算法,而基于MAC的变形算法也有很多,除了我们之前了解过的HMAC和CMAC之外,还有一种常见的MAC变形算法——OMAC。下面我们就一起来了解一下OMAC算法。

OMAC算法简介

OMAC算法全称为One-KeyMessage Authentication Code,它是CBC-MAC的一种变种,是基于一种叫XCBC的算法改进的。XCBC算法KEYI 有效的解决了CBC-MAC的一些安全方面的缺陷,但是需要三个密钥。后来人们在此基础上改进了XCBC算法,并把它命名为One-Key CBC-MAC(OMAC)。

目前有两种OMAC算法,分别为OMAC1和OMAC2,除了小幅调整外,它们基本上相同。OMAC1相当于CMAC,后者于2005年5月成为NIST推荐标准。

OMAC算法

OMAC算法过程

要使用b位分组密码(E)和密钥(k)生成消息(m)的ℓ位CMAC标记 (t),首先要生成2个b位子密钥(k1和k2)使用以下算法(这相当于在有限域 GF(2^b) 中乘以 x 和 x2)。 让 ≪ 表示标准的左移运算符,⊕ 表示按位互斥,或者:

计算一个临时变量值 k0 = Ek(0)。

如果msb(k0) = 0, 那么k1 = k0 ≪ 1, 否则k1 = (k0 ≪ 1) ⊕ C; 这里C 是某个常数,仅取决于 b。(具体来说,C 是字典序第一个不可约 b 次二元多项式的非前导系数,其中 1 的个数最少:0x1B 表示 64 位,0x87 表示 128 位,0x425 表示 256 位块。)

如果msb(k1) = 0,那么k2 = k1 ≪ 1,否则k2 = (k1 ≪ 1) ⊕ C。

返回 MAC 生成过程的密钥 (k1, k2)。

OMAC算法

OMAC算法应用场景

OMAC算法的应用范围非常广泛,它可以用于保护各种类型的数据,包括文本、图像、音频和视频等。它可以用于保护电子邮件、网站、数据库和其他类型的数据。此外,OMAC算法还可以用于保护移动设备和云计算环境中的数据。

免责声明:素材源于网络,如有侵权,请联系删稿。