銀行及相關(guān)金融服務(wù) 基于AES的密鑰封裝_第1頁(yè)
銀行及相關(guān)金融服務(wù) 基于AES的密鑰封裝_第2頁(yè)
銀行及相關(guān)金融服務(wù) 基于AES的密鑰封裝_第3頁(yè)
銀行及相關(guān)金融服務(wù) 基于AES的密鑰封裝_第4頁(yè)
銀行及相關(guān)金融服務(wù) 基于AES的密鑰封裝_第5頁(yè)
已閱讀5頁(yè),還剩25頁(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)介

ICS

XX

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

GB/TXXXX—XXXX

銀行及相關(guān)金融服務(wù)

基于AES的密鑰封裝

Bankingandrelatedfinancialservices—KeywrapusingAES

(ISO20038:2017,IDT)

(征求意見(jiàn)稿)

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

GB/TXXXXX—XXXX

前言

本文件按照GB/T1.1—2020的規(guī)定起草。

本文件由……提出。

本文件由……歸口。

本文件負(fù)責(zé)起草單位:

本文件參加起草單位:

本文件主要起草人:

GB/TXXXXX—XXXX

引言

密碼密鑰的安全管理要求對(duì)其值和使用約束進(jìn)行機(jī)密性和完整性保護(hù)。尤其對(duì)于64位分組密碼三

重?cái)?shù)據(jù)加密算法(3DES)和128位分組密碼高級(jí)加密標(biāo)準(zhǔn)(AES)的密鑰,因?yàn)檫@兩種分組密碼允許

其密鑰長(zhǎng)度大于分組長(zhǎng)度。

本文件提供了一種封裝密碼密鑰的方法,以保證密鑰在傳輸或存儲(chǔ)時(shí)的機(jī)密性和完整性,該機(jī)制使

用AES作為密鑰封裝的密碼算法。

GB/TXXXXX—XXXX

銀行及相關(guān)金融服務(wù)

基于AES的密鑰封裝

1范圍

本文件定義了一種封裝用于傳輸密碼密鑰的方法,該方法還可用于在AES密鑰下存儲(chǔ)密鑰。該方

法采用分組密碼AES作為封裝密碼算法。

其他封裝密鑰的方法不在本文件討論范圍,但是可以使用ISO/IEC19772中指定的經(jīng)過(guò)認(rèn)證的加密

算法。

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

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

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

GB/T15852.1—2008信息技術(shù)安全技術(shù)消息鑒別碼第1部分:采用分組密碼的機(jī)制(ISO/IEC

9797-1:1999,IDT)

GB/T17964—2008信息安全技術(shù)分組密碼算法的工作模式

GB/T27909.2銀行業(yè)務(wù)密鑰管理(零售)第2部分:對(duì)稱密碼及其密鑰管理和生命周期(GB/T

27909.2—2011,ISO11568-2:2005,MOD)

ANSX9TR-31用于對(duì)稱算法的可互操作的安全密鑰交換密鑰分組規(guī)范1)

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

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

3.1

高級(jí)加密標(biāo)準(zhǔn)advancedencryptionstandard;AES

ISO/IEC18033-3中指定的算法。

3.2

比特bit

二進(jìn)制中的1位。

3.3

字節(jié)byte

連續(xù)的8比特(3.2)。

3.4

密文ciphertext

加密后的數(shù)據(jù)。

[GM/Z0001-2013,定義2.60]2)

3.5

密碼密鑰cryptographickey

控制密碼轉(zhuǎn)換操作的符號(hào)序列,例如加密(3.7)、解密(3.6)、密碼校驗(yàn)函數(shù)的計(jì)算、簽名的生

成或簽名的驗(yàn)證。

3.6

解密decryption

1)美國(guó)國(guó)家標(biāo)準(zhǔn),后續(xù)需要?jiǎng)h除或者替換。非原文注釋,編者加。

2)非原文注釋,編者加,術(shù)語(yǔ)中設(shè)計(jì)密碼行業(yè)標(biāo)準(zhǔn)的,下同。

GB/TXXXXX—XXXX

加密過(guò)程對(duì)應(yīng)的逆過(guò)程。

[GM/Z0001-2013,定義2.44]

3.7

加密encryption

對(duì)數(shù)據(jù)進(jìn)行密碼變換以產(chǎn)生密文的過(guò)程。

[GM/Z0001-2013,2.40]

3.8

異或exclusive-OR

等長(zhǎng)二進(jìn)制向量的逐位取模2的加法。

3.9

初始化向量initializationvector

在密碼變換中,為增加安全性或使密碼設(shè)備同步而引入的用于數(shù)據(jù)變換的起始數(shù)據(jù)。

[GM/Z0001-2013,定義2.7]

3.10

密鑰分組keyblock

密鑰分組包含被保護(hù)的密鑰,密鑰的使用約束和使用密鑰封裝機(jī)制對(duì)其進(jìn)行封裝(加密)的其他數(shù)

據(jù)。

3.11

密鑰封裝keywrap

對(duì)稱加密(3.7)算法,用于封裝(加密)密碼密鑰材料。

3.12

半字節(jié)nibble

半字節(jié)(3.3),可以用一個(gè)十六進(jìn)制數(shù)字表示。

3.13

明文plaintext

未加密的數(shù)據(jù)或解密還原后的數(shù)據(jù)。

[GM/Z0001-2013,定義2.85]

3.14

安全密碼設(shè)備securecryptographicdevice;SCD

為密鑰等秘密信息提供安全存儲(chǔ)并基于這些秘密信息提供安全服務(wù)的設(shè)備。

3.15

三重?cái)?shù)據(jù)加密算法tripledataencryptionalgorithm;TDEA3)

ISO/IEC18033-3中指定的算法。

4符號(hào)和縮略語(yǔ)

AES高級(jí)加密標(biāo)準(zhǔn)advancedencryptionstandard

CBC密碼分組鏈接(密碼算法的工作模式)cipherblockchaining(modeofencryption)

CMAC基于密碼的消息認(rèn)證碼cipher-basedMAC

CTR計(jì)數(shù)器模式(密碼算法的工作模式)counter(modeofencryption)

IVCBC模式的初始化向量或CTR模式的初始值initializationvectorforCBCmodeorstarting

valueforCTRmode

K密碼密鑰cryptographickey

MAC消息認(rèn)證碼messageauthenticationcode

3)其他地方已經(jīng)換位3DES或者暫時(shí)標(biāo)紅,國(guó)內(nèi)一般不成為T(mén)DEA。非原文注釋,編者加。

GB/TXXXXX—XXXX

TDEA三重?cái)?shù)據(jù)加密算法tripledataencryptionalgorithm

SCD安全密碼設(shè)備securecryptographicdevice

⊕異或exclusive-OR

5密鑰封裝方法特征

根據(jù)ISO11568-2密鑰管理要求,可以通過(guò)將密鑰分解為組件的物理方式來(lái)保護(hù)對(duì)稱密鑰或通過(guò)密

碼方式進(jìn)行保護(hù)。密碼保護(hù)方式可以通過(guò)認(rèn)證的加密算法(例如ISO/IEC19772中標(biāo)準(zhǔn)化的加密算法)

來(lái)實(shí)現(xiàn)。然而,ISO/IEC19772中,大多數(shù)經(jīng)過(guò)認(rèn)證的加密算法都是為了保護(hù)一般的有效載荷(例如長(zhǎng)

消息或大型數(shù)據(jù)庫(kù))而設(shè)計(jì)的,而不是保護(hù)較短且具有高熵的對(duì)稱密鑰。一個(gè)明顯的特例是ISO/IEC

19772:2009中的機(jī)制2,被稱為密鑰封裝。如ISO/IEC19772中所述,“此方案最初是為密鑰和相關(guān)信

息的認(rèn)證加密而設(shè)計(jì)的”。該模式使用了AES分組密碼,因此也稱為基于AES的密鑰封裝。在ISO/IEC

19772也提到NIST中的《AES密鑰封裝規(guī)范和參考文獻(xiàn)》[5]4)對(duì)AES密鑰封裝進(jìn)行了規(guī)定。

與ISO/IEC19772中的算法5先加密再M(fèi)AC的流程不同,本文件定義的封裝方法使用MAC作為IV,

這樣做理論上可以支持任何對(duì)稱加密算法模式(例如,ISO/IEC10116定義的對(duì)稱算法)或MAC算法(例

如,ISO/IEC9797-1定義的MAC算法)。但是,在本文中,密鑰封裝方法僅支持CBC或CTR模式(定

義在ISO/IEC10116)和用于MAC生成CMAC算法(定義在ISO/IEC9797-1方法5和NIST/SP800-38B5))。

附錄A中定義的密鑰封裝過(guò)程包含了ANS/TR316)中的密鑰使用屬性。其他方法包括但不限于ISO/

IEC19772,RFC3394[5],ANSICBCMAC[4]和TDEA密鑰封裝[4]中認(rèn)證的加密算法。

6帶有密鑰分組綁定的密鑰封裝方法

6.1綜述

使用分組密碼對(duì)密鑰進(jìn)行加密時(shí),若分組密碼算法的分組長(zhǎng)度小于密鑰長(zhǎng)度時(shí),則將導(dǎo)致密鑰由幾

個(gè)分組表示,從而導(dǎo)致替換或誤用整個(gè)密鑰密碼片段的風(fēng)險(xiǎn)。綁定加密后的密鑰分組可以通過(guò)多種方法

來(lái)實(shí)現(xiàn)。

密鑰分組綁定7)方法可保護(hù)密鑰分組的機(jī)密性,且保護(hù)密鑰分組和密鑰分組報(bào)頭之間關(guān)聯(lián)的完整性

(有關(guān)密鑰分組報(bào)頭的定義,請(qǐng)參見(jiàn)附錄A)。本方法使用一個(gè)AES密鑰分組保護(hù)密鑰(即主密鑰)派

生出用于密鑰分組加密算法和MAC8)的密鑰。該密鑰需在雙方通信前完成交換(交換方法定義在ISO

11568-2)。本方法可用于封裝任何密鑰(詳見(jiàn)表A.4)。

帶有密鑰分組綁定的密鑰封裝方法的工作流程有如下步驟:

—密鑰派生(如6.3條所述):

—從保護(hù)密鑰派生出MAC和加密密鑰。

—綁定和加密(如6.2條所述):

—使用派生的MAC密鑰綁定要封裝的密鑰及密鑰報(bào)頭;

—使用派生出的加密密鑰對(duì)要封裝的密鑰及其長(zhǎng)度進(jìn)行加密。

—解密和驗(yàn)證(如6.4條所述):

—使用派生出的加密密鑰解密封裝的密鑰及其長(zhǎng)度;

—使用派生出的MAC密鑰驗(yàn)證相關(guān)的報(bào)頭數(shù)據(jù)。

4)原文中引用標(biāo)號(hào)缺少1、2、3,從5開(kāi)始,因此與原文保持一致。

5)NISTSP800-38B,美國(guó)聯(lián)邦政府標(biāo)準(zhǔn)。計(jì)劃刪除。非原文注釋,編者加。

6)ANS為美國(guó)國(guó)家標(biāo)準(zhǔn),尚未有對(duì)應(yīng)的標(biāo)準(zhǔn),計(jì)劃刪除或替代。非原文注釋,編者加。

7)以下容易歧義的專有名詞使用黑色粗體標(biāo)識(shí)。例如KeyBlockBinding,密鑰分組綁定。非原文注釋,編者加。加粗

也是編者后加。

8)目前MAC運(yùn)算本身和MAC運(yùn)算生成的結(jié)果統(tǒng)一翻譯成MAC。在英文中上述兩種意思不能產(chǎn)生歧義,中文中結(jié)合

上下文也不會(huì)產(chǎn)生歧義。非原文注釋,編者加。

GB/TXXXXX—XXXX

6.2密鑰分組綁定和加密

密鑰分組的綁定和加密過(guò)程如下:

—使用以下方法之一構(gòu)造機(jī)密部分:

—對(duì)于CBC模式加密,在機(jī)密部分(密鑰長(zhǎng)度和密鑰)右側(cè)填充隨機(jī)字節(jié),直到產(chǎn)生的字符串是

16字節(jié)的倍數(shù)??梢允褂妙~外的填充來(lái)掩蓋密鑰或數(shù)據(jù)的真實(shí)長(zhǎng)度,只要結(jié)果長(zhǎng)度是16字節(jié)的倍

數(shù)。

—對(duì)于CTR模式加密,無(wú)填充。盡管CTR無(wú)需填充,但也可以使用與CBC模式相同方式,填充

機(jī)密部分,以掩蓋密鑰長(zhǎng)度。

—CMAC應(yīng)用于整個(gè)載荷,即與機(jī)密部分連接的報(bào)頭和填充(如適用)。使用派生出的MAC密鑰(參

見(jiàn)6.3)對(duì)整個(gè)載荷進(jìn)行運(yùn)算生成MAC,MAC為16字節(jié),不被截?cái)唷?/p>

—機(jī)密部分(密鑰長(zhǎng)度,密鑰和隨機(jī)填充(如果存在))使用CBC或CTR模式(這取決于模式選擇)

進(jìn)行加密,無(wú)需額外填充。根據(jù)ISO/IEC10116,使用MACm作為IV和派生的加密密鑰(參見(jiàn)6.3)

進(jìn)行加密,生成密文c。

—將密文c、MAC和未加密的報(bào)頭一起發(fā)送給對(duì)方。

—圖1說(shuō)明了上述密鑰分組綁定和加密的過(guò)程。密鑰分組報(bào)頭和密鑰長(zhǎng)度編碼的詳細(xì)信息見(jiàn)附錄A。

報(bào)頭密鑰長(zhǎng)度密鑰填充

MAC密鑰CMAC

MACIV加密密鑰加密密鑰

報(bào)頭密文MAC

圖1密鑰分組綁定

MAC密鑰和加密密鑰是派生密鑰,如6.3條所述。

6.3密鑰派生

加密密鑰和MAC密鑰從密鑰分組保護(hù)密鑰(主密鑰)中派生而來(lái),密鑰派生使用CMAC算法(即

ISO/IEC9797-1中的算法5)。本節(jié)中給出具體派生方法。表1列出了CMAC函數(shù)的輸入數(shù)據(jù)。

表1密鑰派生輸入數(shù)據(jù)

GB/TXXXXX—XXXX

半字節(jié)次序字段名稱描述編碼取值范圍

0-1計(jì)數(shù)器計(jì)數(shù)器在每次CMAC運(yùn)算時(shí)遞增2H0x01–0x02

2-5密鑰使用標(biāo)標(biāo)識(shí)派生出的密鑰用于加密/解密還4H0x0000=CBC加密模式

識(shí)符是MAC生成/驗(yàn)證0x0001=MAC

0x0002=CTR加密模式

6-7分隔符1字節(jié)分隔符,值為02H0x00

8-11算法標(biāo)識(shí)符標(biāo)識(shí)加密和MAC所使用的分組密碼4H0x0002=AES128bit

算法。算法既用于加密和MAC運(yùn)算0x0003=AES192bit

也用于密鑰派生0x0004=AES256bit

12-15長(zhǎng)度以比特為單位,標(biāo)識(shí)用于加密和4H0x0080正在生成AES-128的

MAC的密鑰的長(zhǎng)度密鑰

0x00C0正在生成AES-192的

密鑰

0x0100正在生成AES-256的

密鑰

注:在開(kāi)始派生加密密鑰的第1個(gè)字節(jié)時(shí),半字節(jié)0-1中的計(jì)數(shù)器值設(shè)置為1。當(dāng)開(kāi)始派生MAC密鑰的第1個(gè)字節(jié)時(shí),

該計(jì)數(shù)器值再次設(shè)置為1。

作為從密鑰分組保護(hù)密鑰(主密鑰)派生的加密密鑰或MAC密鑰的一部分,計(jì)數(shù)器值從0x01開(kāi)始,

每次調(diào)用CMAC,數(shù)器都會(huì)遞增。密鑰使用標(biāo)識(shí)符標(biāo)識(shí)了生成的密鑰用于MAC的密鑰還是用于CBC模

式或CTR模式加密的密鑰。算法標(biāo)識(shí)符標(biāo)識(shí)了所使用的算法。

密鑰分組保護(hù)密鑰與派生出的密鑰等長(zhǎng)。也就是說(shuō),一個(gè)128位AES密鑰僅用于派生出128位的加密

和MAC密鑰,一個(gè)192位AES密鑰僅用于派生192位的加密和MAC密鑰,一個(gè)256位AES密鑰僅用于派生

256位的加密和MAC密鑰。

長(zhǎng)度字段表示派生出的加密和MAC密鑰的位數(shù)。如果派生出的密鑰是128位,則一共派生128位

(0x0080),如果派生出的密鑰是192位密鑰,則一共派生192位(0x00C0),如果派生出的密鑰是一

個(gè)256位密鑰,則一共派生256位(0x0100)。由于本文只允許使用AES進(jìn)行封裝,因此從算法標(biāo)識(shí)符可

獲得長(zhǎng)度字段的信息。

每次調(diào)用CMAC運(yùn)算時(shí),計(jì)數(shù)器會(huì)不斷遞增,密鑰使用標(biāo)識(shí)符和算法標(biāo)識(shí)符的值應(yīng)保持不變。因此,

應(yīng)通過(guò)對(duì)CMAC的兩個(gè)不同的調(diào)用序列派生加密密鑰和MAC密鑰,每個(gè)調(diào)用的計(jì)數(shù)器從0x01開(kāi)始計(jì)數(shù)。

圖2給出了使用128位AES密鑰分組保護(hù)密鑰K派生出128位AESCBC加密密鑰和MAC密鑰的具體方

法。

GB/TXXXXX—XXXX

01000000000200800100010000020080

kCMACkCMAC

加密密鑰MAC密鑰

圖2派生AES-128MAC和CBC加密密鑰

圖3給出了使用192位AES密鑰分組保護(hù)密鑰K派生出192位AESCBC加密密鑰和MAC密鑰的具體

方法。

01000000000300C002000000000300C001000100000300C002000100000300C0

kCMACkCMACkCMACkCMAC

截?cái)嘟財(cái)?/p>

加密密鑰第一部分加密密鑰第二部分密鑰第一部分密鑰第二部分

MACMAC

圖3派生AES-192MAC和CBC加密密鑰

注:截?cái)噙@里指保留最左邊64比特。

圖4給出了使用256位AES密鑰分組保護(hù)密鑰K派生出256位AESCBC加密密鑰和MAC密鑰的具體

方法。

0100000000040100020000000004010001000100000401000200010000040100

kCMACkCMACkCMACkCMAC

加密密鑰第一部分加密密鑰第二部分密鑰第一部分密鑰第二部分

MACMAC

圖4派生AES-256MAC運(yùn)算和CBC加密密鑰

6.4密鑰分組解密和MAC驗(yàn)證

接收到密鑰分組后,SCD會(huì)對(duì)密鑰分組進(jìn)行解密和驗(yàn)證,并驗(yàn)證報(bào)頭的內(nèi)容和報(bào)頭的結(jié)構(gòu)是否正確。

如果驗(yàn)證失敗,則拒絕該密鑰分組。此過(guò)程的步驟描述如下:

a)檢查接收到的密鑰分組報(bào)頭是否存在格式錯(cuò)誤,例如,某字段為無(wú)效數(shù)據(jù)。針對(duì)CBC模式,還

將驗(yàn)證接收到的密鑰分組密文的總長(zhǎng)度是否為16的倍數(shù)。如果上述檢查失敗,則拒絕接收到的密鑰分組。

b)如果上述檢查均通過(guò),則根據(jù)6.3,使用密鑰分組保護(hù)密鑰派生出MAC和加密密鑰。

c)將接收到的MAC數(shù)據(jù)存儲(chǔ)在臨時(shí)緩沖區(qū)(RCVD_MAC)中。

GB/TXXXXX—XXXX

d)將未加密的密鑰分組報(bào)頭存儲(chǔ)在臨時(shí)緩沖區(qū)(BLK_BUF)中。

e)使用派生出的加密密鑰,用RCVD_MAC中的值作為IV,對(duì)接收到的密鑰分組的加密部分進(jìn)行

解密,解密算法通過(guò)密鑰長(zhǎng)度可知。解密后的數(shù)據(jù)附加到密鑰分組報(bào)頭之后,存儲(chǔ)在BLK_BUF中。

f)將BLK_BUF中值作為CMAC的輸入,使用派生出的MAC密鑰,計(jì)算出MAC數(shù)據(jù)(記作MAC)

g)將計(jì)算出的MAC與RCVD_MAC中的內(nèi)容進(jìn)行比較。如果比較結(jié)果相同,則認(rèn)為接收到的密鑰

分組是有效的,并使用BLK_BUF的內(nèi)容。如果MAC和RCVD_MAC中的內(nèi)容不一致,則拒絕該密鑰分

組。

GB/TXXXXX—XXXX

附錄A

(規(guī)范性)

帶可選分組的密鑰分組

A.1綜述

本文要求使用密鑰封裝方法的雙方實(shí)體預(yù)先約定密鑰分組報(bào)頭的定義。定義應(yīng)包括如何解析、解釋

和處理密鑰分組的內(nèi)容(即報(bào)頭,密文和MAC)。定義還應(yīng)至少標(biāo)識(shí)與被封裝密鑰一起使用的加密模

式(CBC或CTR)和算法(具體見(jiàn)表A.4),還應(yīng)確定被封裝密鑰的用途(例如,加密PIN,計(jì)算MAC,

具體見(jiàn)表A.3)及其使用模式(例如,僅限于驗(yàn)證MAC,具體參見(jiàn)表A.5)。

附錄A的其余部分定義了密鑰分組報(bào)頭,該報(bào)頭用于密鑰分組綁定方法(詳見(jiàn)第5章)。報(bào)頭基于

ANS/TR319)。

圖A.1給出了整個(gè)密鑰分組的格式。

報(bào)頭報(bào)頭(可選)密鑰長(zhǎng)度密鑰填充MAC

圖A.1CBCMAC密鑰分組

A.2密鑰分組報(bào)頭

A.2.1綜述

報(bào)頭包含密鑰屬性的相關(guān)信息。為了提供更好的支持(即可讀性),報(bào)頭字節(jié)使用大寫(xiě)ASCII可打

印字符,但不排除某些情況下需要其他字符。報(bào)頭中每個(gè)字段定義了特定的編碼和可接受的字符,編碼

如表A.1的“編碼”這列。當(dāng)使用術(shù)語(yǔ)數(shù)字字符來(lái)描述ASCII報(bào)頭字節(jié)時(shí),表示在“0”至“9”(即0x31至0x39)

范圍內(nèi)的ASCII字符。當(dāng)多字節(jié)的報(bào)頭中所有字段都是數(shù)字字符時(shí),視該報(bào)頭為數(shù)字報(bào)頭。

表A.1密鑰分組報(bào)頭格式

字節(jié)次序字段名稱描述編碼

密鑰分組版本ID標(biāo)識(shí)密鑰分組的版本,該版本定義了對(duì)密鑰進(jìn)行密碼保護(hù)的方法以及密1AN

鑰分組的內(nèi)容和布局:

—“D”(0x44)—使用CBC模式AES密鑰派生綁定方法保護(hù)密鑰分組;

0—“E”(0x45)—使用CTR模式AES密鑰派生綁定方法保護(hù)密鑰分組。

注:該字段保留數(shù)字字符用于定義專用密鑰分組。另外,存在多個(gè)密

鑰分組版本同時(shí)使用的情況。

本文檔未來(lái)可能會(huì)定義其他值。該字段目前未使用“A”,“B”和“C”。

密鑰分組長(zhǎng)度使用ASCII數(shù)字字符表示編碼后密鑰分組的長(zhǎng)度(即字符總數(shù))。用4N

十進(jìn)制表示包括整個(gè)分組(即報(bào)頭+機(jī)密數(shù)據(jù)+MAC)的長(zhǎng)度,例如一

1–4

個(gè)112字節(jié)的密鑰分組,字節(jié)1為“0”,字節(jié)2為“1”,字節(jié)3為“1”,

字節(jié)4為“2”。詳見(jiàn)A.2.9。

密鑰使用提供受保護(hù)的密鑰/敏感數(shù)據(jù)的用途的相關(guān)信息。常見(jiàn)用途包括加密數(shù)

5–62AN

據(jù),加密PIN以及計(jì)算MAC。詳見(jiàn)表A.3。

9)美國(guó)國(guó)家標(biāo)準(zhǔn),待刪除或替換。

GB/TXXXXX—XXXX

7算法已獲批準(zhǔn)的算法,受保護(hù)密鑰可用于這些密碼算法,詳見(jiàn)表A.4。1AN

使用模式定義受保護(hù)的密鑰可以執(zhí)行的操作。例如,MAC密鑰可被限制為僅驗(yàn)

81AN

證。詳見(jiàn)表A.5。

密鑰版本數(shù)兩位ASCII字符表示版本號(hào),可以用于表示當(dāng)前的密鑰分組是密鑰的

9–102AN

一部分,或用于防止重新插入舊密鑰。參見(jiàn)表A.6。

可輸出性定義是否可以將受保護(hù)的密鑰傳輸?shù)皆撁荑€所在的加密域之外,詳見(jiàn)表

111AN

A.7。

可選分組數(shù)量定義密鑰分組包含的可選分組的數(shù)量。最小值為零,最大值為99,但

12–13其值也受限于整個(gè)密鑰分組的最大字節(jié)數(shù)。例如,如果有5個(gè)可選塊,2N

則字節(jié)12為“0”(0x30),字節(jié)13為“5”(0x35)。

14–15保留該字段保留以便將來(lái)使用,并用ASCII字符“0”(0x30)填充。2N

可選分組1的ID該字段標(biāo)識(shí)第1個(gè)可選分組的ID,如果存在第1個(gè)可選分組,字節(jié)12

16–172AN

和13中為非“00”值,詳見(jiàn)表A.8。

可選分組1的長(zhǎng)度如果第1個(gè)可選塊存在(即字節(jié)12和13中為非“00”值,則本字段包

含該可選分組的長(zhǎng)度。長(zhǎng)度以字節(jié)為單位,包括字段的ID,長(zhǎng)度和數(shù)

據(jù)的總長(zhǎng)度。字節(jié)18表示長(zhǎng)度的高字節(jié),字節(jié)19表示低字節(jié),均為

18-192H

十六進(jìn)制ASCII形式。例如,如果長(zhǎng)度為24字節(jié)的可選分組(十六

進(jìn)制表示為0x18),則字節(jié)18為“1”(0x31),字節(jié)19為“8”(0x38)。

注:在無(wú)可選分組的數(shù)據(jù)的情況下,可選分組長(zhǎng)度為“04”。

可選分組1的數(shù)據(jù)如果存在第一個(gè)可選分組,即字節(jié)12和13中為非“00”值,則本字段

20-nPA

包含該可選分組的數(shù)據(jù)。本字段僅包含可打印的ASCII字符。

其他可選分組(如存附加在第一個(gè)可選分組之后的可變數(shù)量的可選分組。字節(jié)12-13給出了

(n+1)-m在)可選分組總數(shù)。每個(gè)可選分組均包含2字節(jié)的ID字段,2字節(jié)的長(zhǎng)度

字段和可變長(zhǎng)度的數(shù)據(jù)字段。格式與上述可選分組1的格式相同。

注1:在安全加密設(shè)備(SCD)中使用密鑰分組中的密鑰之前,必須先驗(yàn)證報(bào)頭的正確性。首先,SCD確保密鑰分

組的長(zhǎng)度匹配字節(jié)1-4的賦值。如果長(zhǎng)度不匹配,則SCD返回錯(cuò)誤并停止處理密鑰分組。其中,先檢查密鑰使用字段,

再檢查算法字段。其他報(bào)頭字節(jié)的處理取決于使用的密鑰和算法。

在一個(gè)密鑰分組中,可以存在0-99個(gè)可選分組。但需保證密鑰分組的總長(zhǎng)度不能超過(guò)字節(jié)1-4中(密鑰分組長(zhǎng)度

字段)定義的最大長(zhǎng)度。可選分組的數(shù)量在第12-13字節(jié)中給出。每個(gè)可選分組由三個(gè)字段組成:1)一個(gè)2字節(jié)的標(biāo)識(shí)

符,標(biāo)識(shí)可選分組;2)一個(gè)2字節(jié)的長(zhǎng)度字段,表示所有可選分組字段的字節(jié)總數(shù),3)可選分組中攜帶的可變長(zhǎng)度數(shù)

據(jù)。

例如,一個(gè)包含密鑰集標(biāo)識(shí)符的可選分組。一個(gè)示例分組包含以下數(shù)據(jù):

標(biāo)識(shí)符:“KS”

長(zhǎng)度:“18”

數(shù)據(jù):“00604B120F9292800000”

注2:總長(zhǎng)度為2+2+20(24)。長(zhǎng)度值以十六進(jìn)制ASCII編碼,即18(hex)=24(dec)。

如果存在一個(gè)以上的可選分組,那么在密鑰分組結(jié)構(gòu)中,每個(gè)分組都附加在之前分組之后。

密鑰分組中所有可選分組的總長(zhǎng)度應(yīng)為加密分組長(zhǎng)度的倍數(shù),因此可能需要填充。如果需要填充,最后一個(gè)可選分

組將填充適當(dāng)數(shù)量的填充字符。例如,如果填充之前所有可選分組的總長(zhǎng)度為90,則需要額外的6個(gè)字節(jié),達(dá)到加密分

組長(zhǎng)度的下一個(gè)倍數(shù)96。填充分組將作為最后一個(gè)可選分組,包含2個(gè)字節(jié)的標(biāo)識(shí)符“PB”,2個(gè)字節(jié)的長(zhǎng)度字段“06”

和兩個(gè)填充字符。

A.2.2加密

需要加密的數(shù)據(jù)是密鑰長(zhǎng)度、密鑰以及密鑰字段的填充(如適用)。密鑰長(zhǎng)度字段占2字節(jié),用二

進(jìn)制表示,與表A.1中派生數(shù)據(jù)的長(zhǎng)度字段表示方法一致。表A.2給出了使用CBC加密16字節(jié)TDEA密鑰

GB/TXXXXX—XXXX

的示例,包括填充。只要保證機(jī)密數(shù)據(jù)的長(zhǎng)度是16字節(jié)的倍數(shù),也可以使用其他數(shù)量的隨機(jī)填充。完整

的示例請(qǐng)參見(jiàn)附錄B。

表A.2CBC模式加密16字節(jié)TDEA密鑰示例

在加密前長(zhǎng)度字段名稱描述編碼是否加密

2字節(jié)密鑰長(zhǎng)度密鑰長(zhǎng)度,用二進(jìn)制表示,最高有效字節(jié)填入最左2B是

邊的字節(jié)(如果不存在可選數(shù)據(jù),則最高有效字節(jié)

為16)。

在此示例中,一個(gè)128位密鑰的字節(jié)16為0x00,字

節(jié)17為0x80。

16字節(jié)密鑰在此例中受保護(hù)的密鑰為T(mén)DEA密鑰,包括奇偶校16B是

驗(yàn)位。

14字節(jié)填充隨機(jī)數(shù)據(jù)14B是

A.2.3密鑰使用

密鑰的使用字段定義了密鑰的類型,即用于加密數(shù)據(jù)還是計(jì)算MAC等。密鑰的使用由第5和第6字

節(jié)標(biāo)識(shí)。表A.3給出了當(dāng)前定義的密鑰使用值。

表A.3已定義的密鑰使用值

值十六進(jìn)制表示描述使用模式

“B0”0x42,0x30BDK根密鑰“X”

“B1”0x42,0x31DUKPT初始密鑰(也稱為IPEK)“X”

“C0”0x43,0x30CVK卡驗(yàn)證密鑰“C”,“G”,“V”

使用ECB,CBC,CFB,OFB,CCM或CTR

“D0”0x44,0x30“B”,“D”,“E”

模式進(jìn)行數(shù)據(jù)加密

“D1”0x44,0x31非對(duì)稱密鑰數(shù)據(jù)加密“B”,“D”,“E”

“E0”0x45,0x30EMV/芯片發(fā)行方主密鑰:應(yīng)用密文“X”

“E1”0x45,0x31“X”

EMV/芯片發(fā)行方主密鑰:安全報(bào)文的機(jī)密性

“E2”0x45,0x32EMV/芯片發(fā)行方主密鑰:安全報(bào)文的完整性“X”

“E3”0x45,0x33EMV/芯片發(fā)行方主密鑰:數(shù)據(jù)鑒別碼“X”

“E4”0x45,0x34EMV/芯片發(fā)行方主密鑰:動(dòng)態(tài)數(shù)據(jù)“X”

“E5”0x45,0x35EMV/芯片發(fā)行方主密鑰:卡片個(gè)人化“X”

EMV/chipIssuerMasterKey:Other

“E6”0x45,0x36“X”

EMV/芯片發(fā)行方主密鑰:其他

“I0”0x49,0x30初始向量“N”

“K0”0x4B,0x30密鑰加密或封裝“B”,“D”,“E”

“K1”0x4B,0x31TR-31密鑰分組保護(hù)密鑰“B”,“D”,“E”

“B”,“D”,“E”,“S”,

“K2”0x4B,0x32TR-34非對(duì)稱密鑰

“V”

“K3”0x4B,0x33用于密鑰協(xié)商/密鑰封裝的非對(duì)稱密鑰“B”,“D”,“E”,“X”

“K4”0x4B,0x34ISO20038密鑰分組保護(hù)密鑰“B”,“D”,“E”

“M0”0x4D,0x30ISO16609MAC算法1(使用TDEA)“C”,“G”,“V”

“M1”0x4D,0x31ISO9797-1MAC算法1“C”,“G”,“V”

“M2”0x4D,0x32ISO9797-1MAC算法2“C”,“G”,“V”

“M3”0x4D,0x33ISO9797-1MAC算法3“C”,“G”,“V”

GB/TXXXXX—XXXX

“M4”0x4D,0x34ISO9797-1MAC算法4“C”,“G”,“V”

“M5”0x4D,0x35ISO9797-1MAC算法5“C”,“G”,“V”

“M6”0x4D,0x36CMAC“C”,“G”,“V”

“M7”0x4D,0x36HMAC“C”,“G”,“V”

“P0”0x50,0x30PIN加密“B”,“D”,“E”

“S0”0x53,0x30用于數(shù)字簽名的非對(duì)稱密鑰“S”,“V”

“S1”0x53,0x31非對(duì)稱密鑰對(duì),CA密鑰“S”,“V”

“S”,“V”,“T”,“B”,

“S2”0x53,0x32非對(duì)稱密鑰對(duì),非X9.24密鑰

“D”,“E”

“V0”0x56,0x30PIN校驗(yàn)KPV,其他算法“C”,“G”,“V”

“V1”0x56,0x31PIN校驗(yàn),IBM3624“C”,“G”,“V”

“V2”0x56,0x32PIN校驗(yàn),VISAPVV“C”,“G”,“V”

數(shù)字字符保留以便專用,使用方式因密鑰使用規(guī)則而異

注:其中某些用法可能同時(shí)適用于對(duì)稱密鑰和非對(duì)稱密鑰。使用標(biāo)識(shí)“K0”適用于TDEAKEK和RSA密鑰交換密鑰。本

表中不再一一列舉。本文后續(xù)版本可能包括其他密鑰使用類型。

密鑰使用字段賦值的具體要求,如下所述。

非對(duì)稱密鑰數(shù)據(jù)加密-公鑰和私鑰對(duì),用于直接加密或解密數(shù)據(jù)(例如,使用RSA或橢圓曲線ECIES加密PAN)。如果

使用ECIES,則派生出的加密密鑰和MAC密鑰是臨時(shí)的,不會(huì)泄露出SCD。注意,當(dāng)對(duì)稱密鑰封裝在數(shù)字信封中時(shí),

即使不存儲(chǔ)或返回對(duì)稱密鑰,標(biāo)識(shí)符字段的值也不為D1。

非對(duì)稱密鑰對(duì)-非對(duì)稱公私鑰對(duì),用于生成和驗(yàn)證數(shù)字簽名、密鑰交換或上述兩者。

非對(duì)稱密鑰對(duì),密鑰交換-非對(duì)稱公私鑰對(duì),用于加解密其他用于傳輸?shù)拿荑€。使用模式“T”表示密鑰也可以用于驗(yàn)證密

鑰交換(例如,計(jì)算TR-34新鮮度挑戰(zhàn)),但不能僅用于簽名。

BDK根密鑰—此類密鑰用于派生X9.24-1中定義的DUKPT流程的初始密鑰(IPEK)。不適用于其他密鑰派生過(guò)程。PED

使用初始密鑰導(dǎo)出三種DUKPT密鑰類型中的任何一種:PIN密鑰、MAC密鑰或數(shù)據(jù)加密密鑰。當(dāng)使用該密鑰時(shí),派生

密鑰使用字段賦值為“X”。

CVK卡校驗(yàn)密鑰-此類密鑰用于計(jì)算卡驗(yàn)證碼,例如使用CVV,CVC,CSC,CVC2和CVV2算法計(jì)算驗(yàn)證碼。該密鑰

還適用于校驗(yàn)其他驗(yàn)證碼,校驗(yàn)的流程包括計(jì)算驗(yàn)證碼并將結(jié)果與提供的值進(jìn)行比較。注意,適用于CVK的密鑰使用

也適用于MAC密鑰。

數(shù)據(jù)加密-此類密鑰可用于加密或解密數(shù)據(jù),但不能用于其他特定的密碼操作,例如PIN加密或密鑰加密。

DUKPT初始密鑰(即IPEK)—此類密鑰作為DUKPT密鑰管理方案中的初始密鑰發(fā)送到PIN輸入設(shè)備。當(dāng)使用該密鑰

時(shí),派生密鑰使用字段賦值為“X”。

EMV/芯片發(fā)行方主密鑰:應(yīng)用密文-此類密鑰用于派生出EMV芯片卡主密鑰,該密鑰用于產(chǎn)生應(yīng)用密文(TC,ARQC

或AAC)。

EMV/芯片發(fā)行方主密鑰:卡片個(gè)人化—此類密鑰用于派生EMV芯片卡主密鑰,該密鑰用于個(gè)人化期間保護(hù)卡數(shù)據(jù)。

EMV/芯片發(fā)行方主密鑰:數(shù)據(jù)鑒別碼-此類密鑰用于派生EMV芯片卡主密鑰,該密鑰用于產(chǎn)生DAC。

EMV/芯片發(fā)行方主密鑰:動(dòng)態(tài)數(shù)據(jù)-此類密鑰用于派生EMV芯片卡主密鑰,該密鑰用于產(chǎn)生動(dòng)態(tài)數(shù)據(jù)。

EMV/芯片發(fā)行方主密鑰:安全報(bào)文的機(jī)密性—此類密鑰用于派生EMV芯片卡主密鑰,該密鑰用于保證報(bào)文的機(jī)密性。

EMV/芯片發(fā)行方主密鑰:安全報(bào)文的完整性-此類密鑰用于派生EMV芯片卡主密鑰,該密鑰用于保證報(bào)文的完整性。

EMV/芯片發(fā)行方主密鑰:其他-此類密鑰用于派生EMV芯片卡主密鑰,該密鑰用于任何其他目的。

注意:由EMV和使用EMV卡的卡協(xié)會(huì)編寫(xiě)的相關(guān)標(biāo)準(zhǔn)定義EMV密鑰的使用、生成和管理要求。本文對(duì)此不做定義。

初始向量(IV)-初始向量,作為需要IV的加密工作模式的輸入,例如,MAC,數(shù)據(jù)加密/解密等。IV不是密鑰,除用

作初始輸入值之外,不用于其他目的。注意,由于IV不是密鑰,適合于IV的密鑰使用為“N”。報(bào)頭中的算法字段標(biāo)識(shí)

了使用IV的算法。

ISO16609MAC算法1(使用TDEA)—此類密鑰用于使用ISO16609算法1計(jì)算(生成)或驗(yàn)證MAC,不與其他MAC

算法一起使用。

GB/TXXXXX—XXXX

ISO9797-1MAC算法1—此類密鑰可用于使用ISO9797-1算法1計(jì)算(生成)或驗(yàn)證MAC,不與其他MAC算法一起

使用。

ISO9797-1MAC算法2-此類密鑰可用于使用ISO9797-1算法2計(jì)算(生成)或驗(yàn)證MAC,不與其他MAC算法一起使

用。

ISO9797-1MAC算法3—此類密鑰可用于使用ISO9797-1算法3計(jì)算(生成)或驗(yàn)證MAC,不與其他MAC算法一起

使用。

ISO9797-1MAC算法4—此類密鑰可用于使用ISO9797-1算法4計(jì)算(生成)或驗(yàn)證MAC,不與其他MAC算法一起

使用。

ISO9797-1MAC算法5—此類密鑰可用于使用ISO9797-1算法5計(jì)算(生成)或驗(yàn)證MAC,不與其他MAC算法一起

使用。

密鑰加密或封裝-密鑰加密密鑰(KEK),僅用于加密或解密其他密鑰,或者用于派生用作上述目的的密鑰。注意,此類

密鑰可以用于認(rèn)證加密,密鑰或從該密鑰派生的密鑰可同時(shí)用于加密運(yùn)算和完整性校驗(yàn)。注意,此類密鑰用法不適用于

TR-31密鑰分組保護(hù)密鑰。

PIN加密—此類密鑰用于保護(hù)PIN,可以與任何PIN格式一起使用,也可以與任何PIN加密方法一起使用,但不能用于

除PIN或PIN分組以外的其他數(shù)據(jù)。

TR-31密鑰分組保護(hù)密鑰—此類密鑰由密鑰分組加密密鑰和密鑰分組MAC密鑰派生,此密鑰無(wú)其他用途。

PIN驗(yàn)證,KPV和其他算法-此類密鑰用于PIN校驗(yàn),適用于除IBM3624或VisaPVV以外的算法。此類密鑰不能用于

IBM3264或VisaPVV驗(yàn)證算法,也不能用于PIN校驗(yàn)以外的其他功能。

PIN驗(yàn)證,IBM3624—此類密鑰用于IBM3624PIN偏移量生成過(guò)程,或使用IBM3624算法校驗(yàn)PIN。此類密鑰不能

用于其他驗(yàn)證算法,也不能用于PIN校驗(yàn)以外的其他功能。

PIN驗(yàn)證,VISAPVV—此類密鑰用于生成PIN校驗(yàn)值(PVV)或使用VisaPVV算法校驗(yàn)PIN。此類密鑰不能用于其他

驗(yàn)證算法,也不能用于PIN校驗(yàn)以外的其他功能。

A.2.4算法

算法字段定義了密鑰適用的算法。報(bào)頭的字節(jié)7標(biāo)識(shí)了算法。表A.4給出了當(dāng)前定義的該字段的賦值。

表A.4算法賦值定義

值十六進(jìn)制值定義

“A”0x41AES

“D”0x44DEA

“E”0x45橢圓曲線

“H”0x48HMAC-SHA-1

“I”0x49HMAC-SHA-2

“J”0x4AHMAC-SHA-3

“R”0x52RSA

“S”0x53DSA

“T”0x54TDEA(3DES)

數(shù)字值保留以便專用

GB/TXXXXX—XXXX

A.2.5使用模式

使用模式字段定義密鑰可以執(zhí)行的操作。報(bào)頭的字節(jié)8標(biāo)識(shí)了使用模式。表A.5給出了當(dāng)前定義的該

字段的賦值。

溫馨提示

  • 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)論