簡述OMAC算法

MAC是一種應(yīng)用官方的消息認(rèn)證算法,而基于MAC的變形算法也有很多,除了我們之前了解過的HMAC和CMAC之外,還有一種常見的MAC變形算法——OMAC。下面我們就一起來了解一下OMAC算法。

OMAC算法簡介

OMAC算法全稱為One-KeyMessage Authentication Code,它是CBC-MAC的一種變種,是基于一種叫XCBC的算法改進(jìn)的。XCBC算法KEYI 有效的解決了CBC-MAC的一些安全方面的缺陷,但是需要三個(gè)密鑰。后來人們在此基礎(chǔ)上改進(jìn)了XCBC算法,并把它命名為One-Key CBC-MAC(OMAC)。

目前有兩種OMAC算法,分別為OMAC1和OMAC2,除了小幅調(diào)整外,它們基本上相同。OMAC1相當(dāng)于CMAC,后者于2005年5月成為NIST推薦標(biāo)準(zhǔn)。

OMAC算法

OMAC算法過程

要使用b位分組密碼(E)和密鑰(k)生成消息(m)的?位CMAC標(biāo)記 (t),首先要生成2個(gè)b位子密鑰(k1和k2)使用以下算法(這相當(dāng)于在有限域 GF(2^b) 中乘以 x 和 x2)。 讓 ? 表示標(biāo)準(zhǔn)的左移運(yùn)算符,⊕ 表示按位互斥,或者:

計(jì)算一個(gè)臨時(shí)變量值 k0 = Ek(0)。

如果msb(k0) = 0, 那么k1 = k0 ? 1, 否則k1 = (k0 ? 1) ⊕ C; 這里C 是某個(gè)常數(shù),僅取決于 b。(具體來說,C 是字典序第一個(gè)不可約 b 次二元多項(xiàng)式的非前導(dǎo)系數(shù),其中 1 的個(gè)數(shù)最少:0x1B 表示 64 位,0x87 表示 128 位,0x425 表示 256 位塊。)

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

返回 MAC 生成過程的密鑰 (k1, k2)。

OMAC算法

OMAC算法應(yīng)用場景

OMAC算法的應(yīng)用范圍非常廣泛,它可以用于保護(hù)各種類型的數(shù)據(jù),包括文本、圖像、音頻和視頻等。它可以用于保護(hù)電子郵件、網(wǎng)站、數(shù)據(jù)庫和其他類型的數(shù)據(jù)。此外,OMAC算法還可以用于保護(hù)移動設(shè)備和云計(jì)算環(huán)境中的數(shù)據(jù)。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪稿。