《信息安全技術(shù) 公鑰基礎(chǔ)設(shè)施 電子簽名卡應(yīng)用接口測(cè)試規(guī)范》_第1頁(yè)
《信息安全技術(shù) 公鑰基礎(chǔ)設(shè)施 電子簽名卡應(yīng)用接口測(cè)試規(guī)范》_第2頁(yè)
《信息安全技術(shù) 公鑰基礎(chǔ)設(shè)施 電子簽名卡應(yīng)用接口測(cè)試規(guī)范》_第3頁(yè)
《信息安全技術(shù) 公鑰基礎(chǔ)設(shè)施 電子簽名卡應(yīng)用接口測(cè)試規(guī)范》_第4頁(yè)
《信息安全技術(shù) 公鑰基礎(chǔ)設(shè)施 電子簽名卡應(yīng)用接口測(cè)試規(guī)范》_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

ICS35.040

L80

中華人民共和國(guó)國(guó)家標(biāo)準(zhǔn)

GB/T15852.2—XXXX

信息技術(shù)安全技術(shù)消息鑒別碼

第2部分:采用專用雜湊函數(shù)的機(jī)制

Informationtechnology–Securitytechniques–MessageAuthentication

Codes(MACs)–Part2:Mechanismsusingadedicatedhash-function

MOD

(報(bào)批稿)

(本稿完成日期:2011年1月19日)

XXXX-XX-XX發(fā)布XXXX-XX-XX實(shí)施

GB/T15852.2—XXXX

引??言

本部分規(guī)定的第一個(gè)MAC算法通常被稱作MDx-MAC。它調(diào)用一次完整的雜湊函數(shù),但是對(duì)其中

的輪函數(shù)做了細(xì)微的修改,把一個(gè)密鑰加到了輪函數(shù)的附加常數(shù)上。第二個(gè)MAC算法通常被稱作

HMAC,它調(diào)用兩次完整的雜湊函數(shù)。第三個(gè)MAC算法是MDx-MAC的一個(gè)變種,它限制輸入長(zhǎng)度不

大于256比特。在只處理較短輸入的情況下,它有更好的性能。

本部分規(guī)定的三種MAC算法采用四種專用雜湊函數(shù);其中,專用雜湊函數(shù)1、2、3分別是GB/T

18238.3-2002中規(guī)定的專用雜湊函數(shù)1、2、3,專用雜湊函數(shù)4是ISO/IEC10118-3:2004中規(guī)定的專用

雜湊函數(shù)7。使用的專用雜湊函數(shù)也可以為國(guó)家密碼管理部門批準(zhǔn)的相應(yīng)專用雜湊函數(shù)。

I

GB/T15852.2—XXXX

信息技術(shù)安全技術(shù)消息鑒別碼

第2部分:采用專用雜湊函數(shù)的機(jī)制

1范圍

GB/T15852的本部分規(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ù)。

2規(guī)范性引用文件

下列文件對(duì)于本文件的應(yīng)用是必不可少的。凡是注日期的引用文件,僅所注日期的版本適用于本文

件。凡是不注日期的引用文件,其最新版本(包括所有的修改單)適用于本文件。

GB/T18238.3-2002信息技術(shù)安全技術(shù)散列函數(shù)第3部分:專用散列函數(shù)(idtISO/IEC10118-3:

1998)

GB/T1988-1998信息技術(shù)信息交換用七位編碼字符集(eqvISO/IEC646:1991)

ISO/IEC10118-3:2004信息技術(shù)安全技術(shù)雜湊函數(shù)第3部分:專用雜湊函數(shù)

3術(shù)語(yǔ)和定義

下列術(shù)語(yǔ)和定義適用于本部分。

3.1

消息鑒別碼messageauthenticationcodeMAC

利用對(duì)稱密碼技術(shù),以密鑰為參數(shù),由消息導(dǎo)出的數(shù)據(jù)項(xiàng)。任何持有這一密鑰的實(shí)體,都可利用消

息鑒別碼檢查消息的完整性和始發(fā)者。

3.2

消息鑒別碼(MAC)算法密鑰MACalgorithmkey

一種用于控制消息鑒別碼算法運(yùn)算的密鑰。

3.3

消息鑒別碼算法MessageAuthenticationCodealgorithm

消息鑒別碼算法簡(jiǎn)稱MAC算法,其輸入為密鑰和消息,輸出為一個(gè)固定長(zhǎng)度的比特串,滿足下面兩

個(gè)性質(zhì):

1

GB/T15852.2—XXXX

-對(duì)于任何密鑰和消息,MAC算法都能夠快速地計(jì)算。

-對(duì)于任何固定的密鑰,攻擊者在沒(méi)有獲得密鑰信息的情況下,即使獲得了一些(消息,MAC)對(duì),

對(duì)任何新的消息預(yù)測(cè)其MAC在計(jì)算上是不可行的。

注:一個(gè)MAC算法有時(shí)被稱作一個(gè)密碼校驗(yàn)函數(shù)。計(jì)算不可行性依賴于使用者具體的安全要求及其環(huán)境。

3.4

輸出變換outputtransformation

應(yīng)用在算法中,對(duì)迭代操作的輸出所進(jìn)行的變換。

3.5

抗碰撞雜湊函數(shù)collision-resistanthash-function

滿足如下性質(zhì)的雜湊函數(shù):

-尋找兩個(gè)不同的輸入,使得它們的輸出相同,在計(jì)算上是不可行的。

3.6

消息比特串(數(shù)據(jù))datastring(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

初始值initializingvalue

雜湊函數(shù)開(kāi)始工作時(shí)用到的值。

3.10

填充padding

在消息比特串后面附加額外比特串的操作。

3.11

分組block

一種定義了長(zhǎng)度的比特串。

2

GB/T15852.2—XXXX

3.12

輪函數(shù)round-function

將兩個(gè)長(zhǎng)度為和的比特串映射到一個(gè)長(zhǎng)度為的比特串的函數(shù)。

L1L2L2(.,.)

注:它被反復(fù)地用在雜湊函數(shù)中,將長(zhǎng)度為的比特串和前面長(zhǎng)度為的輸出值相合并。

L1L2

3.13

字word

長(zhǎng)度為32位的比特串。

4符號(hào)和記法

下列符號(hào)和記法適用于本部分。

D、D'將要被輸入到MAC算法的消息比特串;

mMAC值的比特長(zhǎng)度;

q經(jīng)過(guò)填充和分割操作后,消息比特串D的分組個(gè)數(shù);

比特串最左邊的比特;

MSBj(X)Xj

XY比特串X和Y的異或值;

X||Y按順序?qū)⒈忍卮甔和Y連接所構(gòu)成的比特串;

:MAC算法定義中使用的賦值符號(hào);

D經(jīng)過(guò)填充的消息比特串;

h雜湊函數(shù);

h'被修改了常數(shù)和初始值的雜湊函數(shù)h;

h簡(jiǎn)化的雜湊函數(shù)h,沒(méi)有數(shù)據(jù)填充和長(zhǎng)度附加;

'''長(zhǎng)度為比特串,在MAC算法計(jì)算中被用來(lái)存儲(chǔ)臨時(shí)結(jié)果;

H、HL2

'初始值;

IV、IV、IV1、IV2

kMAC算法密鑰的比特長(zhǎng)度;

KMAC算法的密鑰;

'MAC算法1和3中的導(dǎo)出密鑰;

K、K0、K1、K2

、、MAC算法2中的導(dǎo)出密鑰;

KK1K2

LMAC算法3中表示消息長(zhǎng)度的比特串;

3

GB/T15852.2—XXXX

OPAD、IPADMAC算法2中使用的常數(shù)比特串;

R、S0、S1、S2MAC算法1和3中,用來(lái)導(dǎo)出一系列常數(shù)的常數(shù)比特串;

、、MAC算法1和3中,用來(lái)導(dǎo)出子密鑰的128比特常數(shù);

T0T1T2

、、MAC算法1和3中,用來(lái)導(dǎo)出子密鑰的768比特常數(shù);

U0U1U2

'使用修改后常數(shù)的輪函數(shù);

128比特串的第個(gè)字,即:;

K1[i]K1iK1K1[0]||K1[1]||K1[2]||K1[3]

H雜湊值;

LX比特串X的比特長(zhǎng)度;

、'輪函數(shù)中用到的常數(shù)字;

CiCi

專用雜湊函數(shù)4中用到的常數(shù)矩陣;

CCi

輸入到輪函數(shù)的兩個(gè)比特串中,第一個(gè)比特串的比特長(zhǎng)度;

L1

輸入到輪函數(shù)的兩個(gè)比特串中,第二個(gè)比特串的比特長(zhǎng)度;

L2

輪函數(shù)輸出值的比特長(zhǎng)度;初始值IV的比特長(zhǎng)度。

輪函數(shù),即:若和分別表示長(zhǎng)度為和的比特串,則

XYL1L2

(X,Y)表示將作用到X和Y所得到的比特串。

模232加法操作,即:若A和B是字,那么把A和B看作是整

32

數(shù)的2進(jìn)制表示,計(jì)算它們的和再模232,所得到的結(jié)果在0和

32之間,把它看作為字,記作。

21A32B

注:只能被用來(lái)處理長(zhǎng)度為整數(shù)倍的輸入比特串。

hL1

5要求

采用本部分MAC算法的使用者應(yīng)當(dāng)選擇:

1)從章節(jié)6、7、8中選取一種MAC算法;

2)從GB/T18238.3-2002中的專用雜湊函數(shù)1、2、3或ISO/IEC10118-3:2004中的專用雜湊函數(shù)7中

選取一個(gè)雜湊函數(shù);

3)MAC的長(zhǎng)度m。

對(duì)于MAC算法1和2,MAC的長(zhǎng)度應(yīng)該是一個(gè)正整數(shù)并且不大于雜湊值長(zhǎng)度。對(duì)于MAC算法3,MAC

mLH

的長(zhǎng)度m應(yīng)該是一個(gè)正整數(shù)并且不大于雜湊值長(zhǎng)度的二分之一,即。

mLH/2

對(duì)于MAC算法1和2,消息比特串D的比特長(zhǎng)度不大于2641;對(duì)于MAC算法3,消息比特串D的比特

長(zhǎng)度不大于256。

對(duì)一個(gè)具體MAC算法、專用雜湊函數(shù)、m值的選擇超出了本部分所規(guī)定的范圍。

注:上述選擇將影響MAC算法的安全強(qiáng)度,具體請(qǐng)參考附錄B。

4

GB/T15852.2—XXXX

生成MAC和驗(yàn)證MAC應(yīng)當(dāng)使用同樣的密鑰。

6MAC算法1

MAC算法1計(jì)算MAC值要求調(diào)用一次雜湊函數(shù),而且要求修改其中的輪函數(shù)常數(shù)。

雜湊函數(shù)應(yīng)當(dāng)從GB/T18238.3-2002中的專用雜湊函數(shù)1、2、3或ISO/IEC10118-3:2004中的專用

雜湊函數(shù)7中選取。

密鑰長(zhǎng)度k不大于128比特。

注:本條款包括MDx-MAC的描述【5】。具體來(lái)講,若采用專用雜湊函數(shù)1,MAC算法1也被稱作RIPEMD-160-MAC;

若采用專用雜湊函數(shù)2,MAC算法1也被稱作RIPEMD-128-MAC;若采用專用雜湊函數(shù)3,MAC算法1也被稱作

SHA-1-MAC;若采用專用雜湊函數(shù)4(即ISO/IEC10118-3:2004中的專用雜湊函數(shù)7),MAC算法1也被稱作

WHIRLPOOL-MAC。

6.1MAC算法1的描述

MAC算法1要求如下五步操作:密鑰擴(kuò)展、修改常數(shù)和初始值、雜湊操作、輸出變換和截?cái)嗖僮鳌?/p>

6.1.1密鑰擴(kuò)展

若K長(zhǎng)度小于128比特,那么將K重復(fù)足夠多次數(shù),從連接起來(lái)的比特串中選取最左邊128比特作

為128比特密鑰K'(若K的長(zhǎng)度恰好為128比特,則K':K),即:

'

K:MSB128(K||K||||K)

按照如下操作計(jì)算子密鑰、和:

K0K1K2

''

K0:h(K||U0||K)

''

K1:MSB128(h(K||U1||K))

''

K2:MSB128(h(K||U2||K))

其中,、和是768比特的常數(shù),在條款9中有定義。表示簡(jiǎn)化的雜湊函數(shù),即沒(méi)有數(shù)據(jù)

U0U1U2hh

填充和長(zhǎng)度附加。

注:數(shù)據(jù)填充和長(zhǎng)度附加可以被省略,是因?yàn)樵谶@里輸入比特串的長(zhǎng)度總是比特。

2L1

導(dǎo)出的密鑰被分割成四個(gè)字,表示為,即:。

K1K1[i]iK1K1[0]||K1[1]||K1[2]||K1[3]

從比特串到字的轉(zhuǎn)換,需要規(guī)定字節(jié)的排列順序。在這里的轉(zhuǎn)換中,采用GB/T18238.3-2002中對(duì)

所有專用雜湊函數(shù)規(guī)定的字節(jié)排列順序。

6.1.2修改常數(shù)和初始值

輪函數(shù)中采用的附加常數(shù),被修改為它與四個(gè)字中的一個(gè)進(jìn)行模32加的結(jié)果,比如說(shuō):

K12

C0:C032K1[0]

5

GB/T15852.2—XXXX

在條款9中具體規(guī)定了中的哪個(gè)字與哪個(gè)常數(shù)相加。用'取代雜湊函數(shù)的初始值,所

K1IV:K0IV

得的雜湊函數(shù)記作h',其中的輪函數(shù)記作'。

6.1.3雜湊操作

用D表示輸入到被修改的雜湊函數(shù)h'中的比特串,即:

H':h'(D)

6.1.4輸出變換

'

再一次應(yīng)用被修改的輪函數(shù),其中輸入的第一個(gè)參數(shù)為K2||(K2T0)||(K2T1)||(K2T2),第

二個(gè)參數(shù)為H'(雜湊操作的結(jié)果),即:

'''',

H:(K2||(K2T0)||(K2T1)||(K2T2),H)

這里、和都是長(zhǎng)度為128的比特串,在條款9中對(duì)所有專用雜湊函數(shù)均有定義。

T0T1T2

注:輸出變換對(duì)應(yīng)于處理一個(gè)額外的數(shù)據(jù)分組,這個(gè)額外的數(shù)據(jù)分組是在數(shù)據(jù)填充和長(zhǎng)度附加操作之后,由導(dǎo)

K2

出。

6.1.5截?cái)嗖僮?/p>

取比特串H''最左邊m比特,作為MAC值,即:

''

MAC:MSBm(H)

6.2MAC算法1的效率

假定填充后的消息比特串包括q個(gè)分組(這里填充方法由具體的雜湊函數(shù)決定),那么MAC算法1

調(diào)用輪函數(shù)q7次。

'

通過(guò)預(yù)計(jì)算K0、K1和K2,并且在雜湊函數(shù)的應(yīng)用中用IV取代IV,MAC算法1調(diào)用輪函數(shù)的次數(shù)

可以降低到q1次。

處理長(zhǎng)的消息比特串時(shí),MAC算法1和相應(yīng)雜湊函數(shù)的性能相當(dāng)。

7MAC算法2

MAC算法2計(jì)算MAC值要求調(diào)用兩次雜湊函數(shù)。

雜湊函數(shù)應(yīng)當(dāng)從GB/T18238.3-2002中的專用雜湊函數(shù)1、2、3或ISO/IEC10118-3:2004中的專用雜

湊函數(shù)7中選取,并且要求是8的正整數(shù)倍,。

L1L2L1

注:GB/T18238.3-2002中的雜湊函數(shù)1、2、3和ISO/IEC10118-3:2004中的雜湊函數(shù)7滿足這些條件。

6

GB/T15852.2—XXXX

密鑰長(zhǎng)度不小于比特(是雜湊值的比特長(zhǎng)度),不大于比特(為輸入到輪函數(shù)的比特

kL2L2L1L1

串的比特長(zhǎng)度),即:。

L2kL1

7.1MAC算法2的描述

MAC算法2要求如下四步操作:密鑰擴(kuò)展、雜湊操作、輸出變換和截?cái)嗖僮鳌?/p>

7.1.1密鑰擴(kuò)展

在密鑰的右側(cè)填充個(gè)0,所得的長(zhǎng)度為的比特串記作。

KL1kL1K

按照如下的方法,將擴(kuò)展為兩個(gè)子密鑰和:

KK1K2

·將16進(jìn)制的值“36”(二進(jìn)制表示為“00110110”)重復(fù)次連接起來(lái),所得比特串記作。

L1/8IPAD

然后將和比特串相異或,記作。即:

KIPADK1

。

K1:KIPAD

·將16進(jìn)制的值“5C”(二進(jìn)制表示為“01011100”)重復(fù)次連接起來(lái),所得比特串記作。

L1/8OPAD

然后將和比特串相異或,記作。即:

KOPADK2

。

K2:KOPAD

7.1.2雜湊操作

將和相連接,作為輸入到雜湊函數(shù)的比特串,即:

K1D

'。

H:h(K1||D)

7.1.3輸出變換

將和'相連接,作為輸入到雜湊函數(shù)的比特串,即:

K2H

'''。

H:h(K2||H)

7.1.4截?cái)嗖僮?/p>

取比特串H''最左邊m比特,作為MAC值,即:

''。

MAC:MSBm(H)

7

GB/T15852.2—XXXX

7.2MAC算法2的效率

假定填充后的消息比特串包括q個(gè)分組(這里填充方法由具體的雜湊函數(shù)決定),那么采用專用雜

湊函數(shù)1、2和3時(shí),MAC算法2調(diào)用輪函數(shù)q3次;采用專用雜湊函數(shù)4時(shí),MAC算法2調(diào)用輪函數(shù)q4

次。

通過(guò)修改雜湊函數(shù)代碼,MAC算法2調(diào)用輪函數(shù)的次數(shù)可以降低2次。

使用者可以預(yù)計(jì)算和,并且在第一次調(diào)用雜湊函數(shù)時(shí)用取代,

IV1:(K1,IV)IV2:(K2,IV)IV1IV

在輸出變換中(第二次調(diào)用雜湊函數(shù))用取代。同時(shí),這也要求對(duì)填充方法進(jìn)行修改。事實(shí)上,

IV2IV

對(duì)雜湊函數(shù)實(shí)際輸入的比特長(zhǎng)度少了,這樣必須把的值加到上。

L1L1LD

處理長(zhǎng)的消息比特串時(shí),MAC算法2和相應(yīng)雜湊函數(shù)的性能相當(dāng)。

8MAC算法3

注:本條款包括MAC算法1的一個(gè)變種,對(duì)短的輸入(不大于256比特)做了優(yōu)化。

MAC算法3計(jì)算MAC值,要求調(diào)用7次簡(jiǎn)化的輪函數(shù);但是通過(guò)預(yù)計(jì)算,可以降低到調(diào)用一次簡(jiǎn)化的

輪函數(shù)。

雜湊函數(shù)應(yīng)當(dāng)從GB/T18238.3-2002中的專用雜湊函數(shù)1、2、3或ISO/IEC10118-3:2004中的專用雜

湊函數(shù)7中選取。

密鑰長(zhǎng)度不大于128比特,MAC值長(zhǎng)度不大于比特。

kmLH/2

8.1MAC算法3的描述

MAC算法3要求如下五步操作:密鑰擴(kuò)展、修改輪函數(shù)的常數(shù)、數(shù)據(jù)填充、應(yīng)用輪函數(shù)和截?cái)嗖僮鳌?/p>

8.1.1密鑰擴(kuò)展

若K長(zhǎng)度小于128比特,那么將K重復(fù)足夠多次數(shù),從連接起來(lái)的比特串中選取最左邊128比特作

為128比特密鑰K'(若K的長(zhǎng)度恰好為128比特,則K':K),即:

'

K:MSB128(K||K||||K)

按照如下操作計(jì)算子密鑰、和:

K0K1K2

''

K0:h(K||U0||K)

''

K1:MSB128(h(K||U1||K))

''

K2:MSB128(h(K||U2||K))

其中,、和是768比特的常數(shù),在條款9中有定義。表示簡(jiǎn)化的雜湊函數(shù),即沒(méi)有數(shù)據(jù)

U0U1U2hh

填充和長(zhǎng)度附加。

注:數(shù)據(jù)填充和長(zhǎng)度附加可以被省略,是因?yàn)樵谶@里輸入比特串的長(zhǎng)度總是比特。

2L1

8

GB/T15852.2—XXXX

導(dǎo)出的密鑰被分割成四個(gè)字,表示為,即:。

K1K1[i]iK1K1[0]||K1[1]||K1[2]||K1[3]

從比特串到字的轉(zhuǎn)換,需要規(guī)定字節(jié)的排列順序。在這里的轉(zhuǎn)換中,采用GB/T18238.3-2002中對(duì)

所有專用雜湊函數(shù)規(guī)定的字節(jié)排列順序。

8.1.2修改輪函數(shù)的常數(shù)

輪函數(shù)中采用的附加常數(shù),被修改為它與四個(gè)字中的一個(gè)進(jìn)行模32加的結(jié)果,比如說(shuō):

K12

C0:C032K1[0]

在條款9中具體規(guī)定了中的哪個(gè)字與哪個(gè)常數(shù)相加。用'取代雜湊函數(shù)的初始值,所

K1IV:K0IV

得的輪函數(shù)記作'。

8.1.3數(shù)據(jù)填充

對(duì)原始消息填充的比特串只用來(lái)計(jì)算MAC,所以這些填充比特串(如果有)不必隨原始消息存儲(chǔ)或

發(fā)送。MAC的驗(yàn)證者應(yīng)當(dāng)知道填充比特串是否已經(jīng)被存儲(chǔ)或發(fā)送。

對(duì)要輸入到MAC算法的消息比特串D,在其右側(cè)填充盡可能少(可能沒(méi)有)的“0”以使得填充后

比特串D的長(zhǎng)度是256比特。

注:如果消息比特串D是空串,那么規(guī)定填充后的比特串D為256個(gè)“0”。

8.1.4應(yīng)用輪函數(shù)

消息比特串的長(zhǎng)度記作,其二進(jìn)制表示記作。在最左邊填充足夠少的“0”使得的長(zhǎng)度

DLDLLL

為128比特,最右邊的比特和最低位相對(duì)應(yīng)。

LLD

將、和與的異或值相連接,作為輪函數(shù)'(使用修改過(guò)的常數(shù))的輸入,即:

K2DK2L

'''。

H:(K2||D||(K2L),IV)

8.1.5截?cái)嗖僮?/p>

取比特串H'最左邊m比特,作為MAC值,即:

'。

MAC:MSBm(H)

8.2MAC算法3的效率

MAC算法3需要調(diào)用7次輪函數(shù),通過(guò)預(yù)計(jì)算、和,可以降低到一次。

K0K1K2

9

GB/T15852.2—XXXX

9常數(shù)的計(jì)算

本條款中規(guī)定的常數(shù),將被用在MAC算法1和條款8的MAC算法3中。

比特串和是MAC算法中固定的元素,它們通過(guò)雜湊函數(shù)計(jì)算得到(只計(jì)算一次),并且在四個(gè)

TiUi

專用雜湊函數(shù)中各不相同。

128比特的和768比特的按照如下的方法定義:

TiUi

Ti:MSB128(h(Si||R)),i0,1,2

Ui:Ti||Ti1||Ti2||Ti||Ti1||Ti2,i0,1,2

其中下標(biāo)的加法是模3加。是496比特的常數(shù),、和都是16比特

R"abyzABYZ0189"S0S1S2

的常數(shù),其中通過(guò)重復(fù)兩次數(shù)字的16進(jìn)制ASCII編碼得到(比如說(shuō),的表示為3131)。和都

SiiS1RSi

采用ASCII編碼,ASCII編碼等同于GB/T1988-1998所使用的編碼。

對(duì)于所有的常數(shù)、'和所有的字,最高位和最左邊的比特相對(duì)應(yīng)。常數(shù)和'用16進(jìn)制

CiCiK1[i]CiCi

表示。

9.1專用雜湊函數(shù)1

專用雜湊函數(shù)1中的128比特常數(shù)定義如下:(用16進(jìn)制表示)

Ti

T01CC7086A046AFA22353AE88F3D3DACEB

T1E3FA02710E491D851151CC34E4718D41

T293987557C07B8102BA592949EB638F37

專用雜湊函數(shù)1的輪函數(shù)中用到兩個(gè)常數(shù)字序列和''',它們定義如下:

C0,C1,,C79C0C1,,C79

CiK1[0]3200000000,(0i15),

CiK1[1]325A827999,(16i31),

CiK1[2]326ED9EBA1,(32i47),

CiK1[3]328F1BBCDC,(48i63),

CiK1[0]32A953FD4E,(64i79),

'

CiK1[1]3250A28BE6,(0i15),

'

CiK1[2]325C4DD124,(16i31),

'

CiK1[3]326D703EF3,(32i47),

'

CiK1[0]327A6D76E9,(48i63),

'

CiK1[1]3200000000,(64i79)

10

GB/T15852.2—XXXX

9.2專用雜湊函數(shù)2

專用雜湊函數(shù)2中的128比特常數(shù)定義如下:(用16進(jìn)制表示)

Ti

T0FD7EC18964C36D53FC18C31B72112AAC

T12538B78EC0E273949EE4C4457A77525C

T2F5C93ED85BD65F609A7EB182A85BA181

專用雜湊函數(shù)2的輪函數(shù)中用到兩個(gè)常數(shù)字序列和''',它們定義如下:

C0,C1,,C63C0C1,,C63

CiK1[0]3200000000,(0i15),

CiK1[1]325A827999,(16i31),

CiK1[2]326ED9EBA1,(32i47),

CiK1[3]328F1BBCDC,(48i63),

'

CiK1[0]3250A28BE6,(0i15),

'

CiK1[1]325C4DD124,(16i31),

'

CiK1[2]326D703EF3,(32i47),

'

CiK1[3]3200000000,(48i63)

9.3專用雜湊函數(shù)3

專用雜湊函數(shù)3中的128比特常數(shù)定義如下:(用16進(jìn)制表示)

Ti

T01D4CA39FA40417E2AE5A77B49067BBCC

T19318AFEF5D5A5B46EFCA6BEC0E138940

T24544209656E14F97005DAC76868E97A3

專用雜湊函數(shù)3的輪函數(shù)中用到一個(gè)常數(shù)字序列,它定義如下:

C0,C1,,C79

CiK1[0]325A827999,(0i19),

CiK1[1]326ED9EBA1,(20i39),

CiK1[2]328F1BBCDC,(40i59),

CiK1[3]32CA62C1D6,(60i79)

9.4專用雜湊函數(shù)4

專用雜湊函數(shù)4中的128比特常數(shù)定義如下:(用16進(jìn)制表示)

Ti

T036129D71469F205824E118E1F922295A

T119A934B16952C37951C31AA9699FD5A4

T2313D9B56799988C1A3639FB2BDFEF274

11

GB/T15852.2—XXXX

專用雜湊函數(shù)4的輪函數(shù)中用到一個(gè)常數(shù)矩陣序列,它們定義如下:

CC1,CC2,,CC10

1823C6E887B8014F36A6D2F5796F9152

K[0]0000000000000000

100000000

00000000000000000000000000000000

00000000000000000000000000000000

CC=,CC=,

1000000000000000020000000000000000

0000000000000000K1[1]00000000

00000000000000000000000000000000

00000000000000000000000000000000

60BC9B8EA30C7B351DE0D7C22E4BFE57

K[2]0000000000000000

100000000

00000000000000000000000000000000

00000000000000000000000000000000

CC=,CC=,

3000000000000000040000000000000000

0000000000000000K1[3]00000000

00000000000000000000000000000000

00000000000000000000000000000000

157737E59FF04ADA58C9290AB1A06B85

K[0]0000000000000000

100000000

00000000000000000000000000000000

00000000000000000000000000000000

CC=,CC=,

5000000000000000060000000000000000

0000000000000000K1[1]00000000

00000000000000000000000000000000

00000000000000000000000000000000

BD5D10F4CB3E0567E427418BA77D95D8

K[2]0000000000000000

100000000

00000000000000000000000000000000

00000000000000000000000000000000

CC=,CC=,

7000000000000000080000000000000000

0000000000000000K1[3]00000000

00000000000000000000000000000000

00000000000000000000000000000000

12

GB/T15852.2—XXXX

FBEE7C66DD17479ECA2DBF07AD5A8333

K[0]0000000000000000

100000000

00000000000000000000000000000000

00000000000000000000000000000000

CC=,CC=。

90000000000000000100000000000000000

0000000000000000K1[1]00000000

00000000000000000000000000000000

00000000000000000000000000000000

13

GB/T15852.2—XXXX

AA

附錄A

(資料性附錄)

使用MAC算法生成MAC的示例

A.1概述

本附錄提供了使用MAC算法1、2和3生成MAC的過(guò)程示例,采用四種專用雜湊函數(shù);其中,專用雜湊

函數(shù)1、2、3分別是GB/T18238.3-2002中規(guī)定的專用雜湊函數(shù)1、2、3,專用雜湊函數(shù)4是ISO/IEC10118-3:

2004中規(guī)定的專用雜湊函數(shù)7。每個(gè)雜湊函數(shù)值的計(jì)算有九個(gè)示例。表1包含了序號(hào)為1至9的輸入比特串。

在整個(gè)附錄中,我們對(duì)消息比特串采用ASCII編碼,ASCII編碼等同于GB/T1988-1998所使用的編碼。

兩個(gè)128比特的密鑰如下:

密鑰1=00112233445566778899AABBCCDDEEFF

密鑰2=0123456789ABCDEFFEDCBA9876543210

表1用于測(cè)試的輸入數(shù)據(jù)

序號(hào):輸入比特串

1“”(空比特串)

2“a”

3“abc”

4“messagedigest”

5“abcdefghijklmnopqrstuvwxyz”

6“abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq”

7“ABCDEFGHIJKLMNOPQRSTUVWXYZ

abcdefghijklmnopqrstuvwxyz0123456789”

8“1234567890”重復(fù)8次所得的長(zhǎng)為80的字符串

9“a”重復(fù)1,000,000次得到1兆長(zhǎng)的字符串

A.2MAC算法1

在這一部分的示例中,選取mL2/2。具體來(lái)講,在專用雜湊函數(shù)1和3中,m80;在專用雜湊

函數(shù)2中,m64;在專用雜湊函數(shù)4中,m256。

A.2.1專用雜湊函數(shù)1

密鑰1:00112233445566778899

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論