發(fā)布日期:2023-03-21 19:03 瀏覽次數(shù):
GB/T 15852的本部分規(guī)定了三種采用專用雜湊函數(shù)的消息鑒別碼算法。這些消息鑒別碼算法可用作數(shù)據(jù)完整性檢驗(yàn),檢驗(yàn)數(shù)據(jù)是否被非授權(quán)地改變。同樣這些消息鑒別碼算法也可用作消息鑒別,保證消息源的合法性。數(shù)據(jù)完整性和消息鑒別的強(qiáng)度依賴于密鑰的長(zhǎng)度及其保密性、雜湊函數(shù)的算法強(qiáng)度及其輸出長(zhǎng)度、消息鑒別碼的長(zhǎng)度和具體的消息鑒別碼算法。
本部分適用于任何安全體系結(jié)構(gòu)、進(jìn)程或應(yīng)用的安全服務(wù)。
下列文件對(duì)于本文件的應(yīng)用是必不可少的。凡是注日期的引用文件,僅注日期的版本適用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改單)適用于本文件。
GB/T 1988-1998 信息技術(shù) 信息交換用七位編碼字符集(eqv ISO/IEC 646:1991)
ISO/IEC 10118-3:2004 信息技術(shù) 安全技術(shù) 雜湊函數(shù) 第3部分:專用雜湊函數(shù)(Information technology-Security techniques-Hash-functions-Part 3:Dedicated hash-functions)
下列術(shù)語(yǔ)和定義適用于本文件。
3.1
消息鑒別碼 message authentication code;MAC
利用對(duì)稱密碼技術(shù),以密鑰為參數(shù),由消息導(dǎo)出的數(shù)據(jù)項(xiàng)。任何持有這一密鑰的實(shí)體,都可利用消息鑒別碼檢查消息的完整性和始發(fā)者。
3.2
消息鑒別碼(MAC)算法密鑰 MAC algorithm key
一種用于控制消息鑒別碼算法運(yùn)算的密鑰。
3.3
消息鑒別碼算法 message authentication code algorithm
消息鑒別碼算法簡(jiǎn)稱MAC算法,其輸入為密鑰和消息,輸出為一個(gè)固定長(zhǎng)度的比特串,滿足下面兩個(gè)性質(zhì):
——對(duì)于任何密鑰和消息,MAC算法都能夠快速地計(jì)算。
——對(duì)于任何固定的密鑰,攻擊者在沒有獲得密鑰信息的情況下,即使獲得了一些(消息,MAC)對(duì),對(duì)任何新的消息預(yù)測(cè)其MAC在計(jì)算上是不可行的。
注:一個(gè)MAC算法有時(shí)被稱作一個(gè)密碼校驗(yàn)函數(shù)。計(jì)算不可行性依賴于使用者具體的安全要求及其環(huán)境。
3.4
輸出變換 output transformation
應(yīng)用在算法中,對(duì)迭代操作的輸出所進(jìn)行的變換。
3.5
抗碰撞雜湊函數(shù) collision-resistant hash-function
滿足如下性質(zhì)的雜湊函數(shù):
——尋找兩個(gè)不同的輸入,使得它們的輸出相同,在計(jì)算上是不可行的。
3.6
消息比特串(數(shù)據(jù))data string(data)
雜湊函數(shù)的輸入比特串。
3.7
雜湊值 hash-code
雜湊函數(shù)的輸出比特串。
3.8
雜湊函數(shù) hash-function
將任意長(zhǎng)消息比特串映射到定長(zhǎng)比特串的函數(shù),并且滿足如下兩個(gè)性質(zhì):
——對(duì)于任何輸出,找到它所對(duì)應(yīng)的輸入在計(jì)算上是不可行的。
——對(duì)于任何輸入,找到區(qū)別于它且和它具有相同輸出的輸入在計(jì)算上是不可行的。
3.9
初始值 initializing value
雜湊函數(shù)開始工作時(shí)用到的值。
3.10
填充 padding
在消息比特串后面附加額外比特串的操作。
3.11
分組 block
一種定義了長(zhǎng)度的比特串。
3.12
輪函數(shù) round-function
將兩個(gè)長(zhǎng)度為L(zhǎng)1和L2的比特串映射到一個(gè)長(zhǎng)度為L(zhǎng)2的比特串的函數(shù) Φ(· ,·)。
注:它被反復(fù)地用在雜湊函數(shù)中,將長(zhǎng)度為L(zhǎng)1的比特串和前面長(zhǎng)度為L(zhǎng)2的輸出值相合并。
3.13
字 word
長(zhǎng)度為32位的比特串。
下列符號(hào)和記法適用于本部分。
D、D' 將要被輸入到MAC算法的消息比特串
m MAC值的比特長(zhǎng)度
q 經(jīng)過填充和分割操作后,消息比特串D的分組個(gè)數(shù)
MSBj(X) 比特串X最左邊的j比特
X⊕Y 比特串X和Y的異或值
X||Y 按順序?qū)⒈忍卮甔和Y連接所構(gòu)成的比特串
:= MAC算法定義中使用的賦值符號(hào)
D 經(jīng)過填充的消息比特串
h 雜湊函數(shù)
h'被修改了常數(shù)和初始值的雜湊函數(shù)h
簡(jiǎn)化的雜湊函數(shù)h,沒有數(shù)據(jù)填充和長(zhǎng)度附加
H'、H” 長(zhǎng)度為L(zhǎng)2比特串,在MAC算法計(jì)算中被用來(lái)存儲(chǔ)臨時(shí)結(jié)果
IV、IV'、IV1、IV2 初始值
k MAC算法密鑰的比特長(zhǎng)度
K MAC算法的密鑰
K'、K0、K1、K2 MAC算法1和3中的導(dǎo)出密鑰
K、K1、K2 MAC算法2中的導(dǎo)出密鑰
L MAC算法3中表示消息長(zhǎng)度的比特串
OPAD、IPAD MAC算法2中使用的常數(shù)比特串
R、S0、S1、S2 MAC算法1和3中,用來(lái)導(dǎo)出一系列常數(shù)的常數(shù)比特串
T0、T1、T2 MAC算法1和3中,用來(lái)導(dǎo)出子密鑰的128比特常數(shù)
U0、U1、U2 MAC算法1和3中,用來(lái)導(dǎo)出子密鑰的768比特常數(shù)
Φ'使用修改后常數(shù)的輪函數(shù)
K1[i] 128比特串K1的第i個(gè)字,即:K1=K1[0]||K1K1[1]||K1[2]||K1[3]
H 雜湊值
Lx 比特串X的比特長(zhǎng)度
C1、C 輪函數(shù)中用到的常數(shù)字
CCi 專用雜湊函數(shù)4中用到的常數(shù)矩陣
L1 輸入到輪函數(shù)φ的兩個(gè)比特串中,第一個(gè)比特串的比特長(zhǎng)度
L2 輸入到輪函數(shù)φ的兩個(gè)比特串中,第二個(gè)比特串的比特長(zhǎng)度;輪函數(shù)φ輸出值的比特長(zhǎng)度;初始值IV的比特長(zhǎng)度
φ 輪函數(shù),即:若X和Y分別表示長(zhǎng)度為L(zhǎng)1和 L2的比特串,則 φ(X,Y)表示將?作用到X和Y所得到的比特串
+32 模 232加法操作,即:若A和B是字,那么把A和B看作是整數(shù)的2進(jìn)制表示,計(jì)算它們的和再模 232,所得到的結(jié)果在0和 232-1之間,把它看作為字,記作 A+32B
注:h只能被用來(lái)處理長(zhǎng)度為L(zhǎng)1整數(shù)倍的輸入比特串。
采用本部分MAC算法的使用者應(yīng)當(dāng)選擇:
1)從第6、7、8章中選取一種MAC算法;
2)從ISO/IEC 10118-3:2004中的專用雜湊函數(shù)1、2、3和7中選取一個(gè)雜湊函數(shù);
3)MAC的長(zhǎng)度m。
對(duì)于MAC算法1和2,MAC的長(zhǎng)度m應(yīng)該是一個(gè)正整數(shù)并且不大于雜湊值長(zhǎng)度 H。對(duì)于 MAC算法3,MAC的長(zhǎng)度m應(yīng)該是一個(gè)正整數(shù)并且不大于雜湊值長(zhǎng)度的二分之一,即 m≤LH/2。
對(duì)于MAC算法1和2,消息比特串D的比特長(zhǎng)度不大于 264-1;對(duì)于MAC 算法3,消息比特串D的比特長(zhǎng)度不大于256。
對(duì)一個(gè)具體MAC算法、專用雜湊函數(shù)、m值的選擇超出了本部分所規(guī)定的范圍。
注:上述選擇將影響MAC算法的安全強(qiáng)度,具體請(qǐng)參考附錄B。
生成MAC和驗(yàn)證MAC應(yīng)當(dāng)使用同樣的密鑰。
以上為標(biāo)準(zhǔn)部分內(nèi)容,如需看標(biāo)準(zhǔn)全文,請(qǐng)到相關(guān)授權(quán)網(wǎng)站購(gòu)買標(biāo)準(zhǔn)正版。