銀行及相關(guān)金融服務(wù) 基于AES的密鑰封裝_第1頁
銀行及相關(guān)金融服務(wù) 基于AES的密鑰封裝_第2頁
銀行及相關(guān)金融服務(wù) 基于AES的密鑰封裝_第3頁
銀行及相關(guān)金融服務(wù) 基于AES的密鑰封裝_第4頁
銀行及相關(guān)金融服務(wù) 基于AES的密鑰封裝_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

ICS

XX

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

GB/TXXXX—XXXX

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

基于AES的密鑰封裝

Bankingandrelatedfinancialservices—KeywrapusingAES

(ISO20038:2017,IDT)

(征求意見稿)

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

GB/TXXXXX—XXXX

前言

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

本文件由……提出。

本文件由……歸口。

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

本文件參加起草單位:

本文件主要起草人:

GB/TXXXXX—XXXX

引言

密碼密鑰的安全管理要求對其值和使用約束進行機密性和完整性保護。尤其對于64位分組密碼三

重數(shù)據(jù)加密算法(3DES)和128位分組密碼高級加密標(biāo)準(zhǔn)(AES)的密鑰,因為這兩種分組密碼允許

其密鑰長度大于分組長度。

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

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

GB/TXXXXX—XXXX

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

基于AES的密鑰封裝

1范圍

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

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

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

算法。

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

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

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

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

9797-1:1999,IDT)

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

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

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

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

3術(shù)語和定義

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

3.1

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

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

3.2

比特bit

二進制中的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)換操作的符號序列,例如加密(3.7)、解密(3.6)、密碼校驗函數(shù)的計算、簽名的生

成或簽名的驗證。

3.6

解密decryption

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

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

GB/TXXXXX—XXXX

加密過程對應(yīng)的逆過程。

[GM/Z0001-2013,定義2.44]

3.7

加密encryption

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

[GM/Z0001-2013,2.40]

3.8

異或exclusive-OR

等長二進制向量的逐位取模2的加法。

3.9

初始化向量initializationvector

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

[GM/Z0001-2013,定義2.7]

3.10

密鑰分組keyblock

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

據(jù)。

3.11

密鑰封裝keywrap

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

3.12

半字節(jié)nibble

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

3.13

明文plaintext

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

[GM/Z0001-2013,定義2.85]

3.14

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

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

3.15

三重數(shù)據(jù)加密算法tripledataencryptionalgorithm;TDEA3)

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

4符號和縮略語

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

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

CMAC基于密碼的消息認證碼cipher-basedMAC

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

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

valueforCTRmode

K密碼密鑰cryptographickey

MAC消息認證碼messageauthenticationcode

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

GB/TXXXXX—XXXX

TDEA三重數(shù)據(jù)加密算法tripledataencryptionalgorithm

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

⊕異或exclusive-OR

5密鑰封裝方法特征

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

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

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

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

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

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

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

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

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

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

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

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

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

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

6.1綜述

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

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

來實現(xiàn)。

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

(有關(guān)密鑰分組報頭的定義,請參見附錄A)。本方法使用一個AES密鑰分組保護密鑰(即主密鑰)派

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

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

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

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

—從保護密鑰派生出MAC和加密密鑰。

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

—使用派生的MAC密鑰綁定要封裝的密鑰及密鑰報頭;

—使用派生出的加密密鑰對要封裝的密鑰及其長度進行加密。

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

—使用派生出的加密密鑰解密封裝的密鑰及其長度;

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

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

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

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

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

也是編者后加。

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

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

GB/TXXXXX—XXXX

6.2密鑰分組綁定和加密

密鑰分組的綁定和加密過程如下:

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

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

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

數(shù)。

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

機密部分,以掩蓋密鑰長度。

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

見6.3)對整個載荷進行運算生成MAC,MAC為16字節(jié),不被截斷。

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

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

進行加密,生成密文c。

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

—圖1說明了上述密鑰分組綁定和加密的過程。密鑰分組報頭和密鑰長度編碼的詳細信息見附錄A。

報頭密鑰長度密鑰填充

MAC密鑰CMAC

MACIV加密密鑰加密密鑰

報頭密文MAC

圖1密鑰分組綁定

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

6.3密鑰派生

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

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

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

GB/TXXXXX—XXXX

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

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

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

識符是MAC生成/驗證0x0001=MAC

0x0002=CTR加密模式

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

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

算法。算法既用于加密和MAC運算0x0003=AES192bit

也用于密鑰派生0x0004=AES256bit

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

MAC的密鑰的長度密鑰

0x00C0正在生成AES-192的

密鑰

0x0100正在生成AES-256的

密鑰

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

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

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

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

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

密鑰分組保護密鑰與派生出的密鑰等長。也就是說,一個128位AES密鑰僅用于派生出128位的加密

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

256位的加密和MAC密鑰。

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

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

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

獲得長度字段的信息。

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

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

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

法。

GB/TXXXXX—XXXX

01000000000200800100010000020080

kCMACkCMAC

加密密鑰MAC密鑰

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

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

方法。

01000000000300C002000000000300C001000100000300C002000100000300C0

kCMACkCMACkCMACkCMAC

截斷截斷

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

MACMAC

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

注:截斷這里指保留最左邊64比特。

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

方法。

0100000000040100020000000004010001000100000401000200010000040100

kCMACkCMACkCMACkCMAC

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

MACMAC

圖4派生AES-256MAC運算和CBC加密密鑰

6.4密鑰分組解密和MAC驗證

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

如果驗證失敗,則拒絕該密鑰分組。此過程的步驟描述如下:

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

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

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

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

GB/TXXXXX—XXXX

d)將未加密的密鑰分組報頭存儲在臨時緩沖區(qū)(BLK_BUF)中。

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

解密,解密算法通過密鑰長度可知。解密后的數(shù)據(jù)附加到密鑰分組報頭之后,存儲在BLK_BUF中。

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

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

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

組。

GB/TXXXXX—XXXX

附錄A

(規(guī)范性)

帶可選分組的密鑰分組

A.1綜述

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

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

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

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

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

ANS/TR319)。

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

報頭報頭(可選)密鑰長度密鑰填充MAC

圖A.1CBCMAC密鑰分組

A.2密鑰分組報頭

A.2.1綜述

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

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

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

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

表A.1密鑰分組報頭格式

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

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

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

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

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

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

鑰分組版本同時使用的情況。

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

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

十進制表示包括整個分組(即報頭+機密數(shù)據(jù)+MAC)的長度,例如一

1–4

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

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

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

5–62AN

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

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

GB/TXXXXX—XXXX

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

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

81AN

證。詳見表A.5。

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

9–102AN

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

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

111AN

A.7。

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

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

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

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

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

16–172AN

和13中為非“00”值,詳見表A.8。

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

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

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

18-192H

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

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

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

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

20-nPA

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

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

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

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

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

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

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

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

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

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

據(jù)。

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

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

長度:“18”

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

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

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

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

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

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

和兩個填充字符。

A.2.2加密

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

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

GB/TXXXXX—XXXX

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

的示例請參見附錄B。

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

在加密前長度字段名稱描述編碼是否加密

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

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

為16)。

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

節(jié)17為0x80。

16字節(jié)密鑰在此例中受保護的密鑰為TDEA密鑰,包括奇偶校16B是

驗位。

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

A.2.3密鑰使用

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

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

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

值十六進制表示描述使用模式

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

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

“C0”0x43,0x30CVK卡驗證密鑰“C”,“G”,“V”

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

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

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

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

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

“E1”0x45,0x31“X”

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

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

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

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

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

EMV/chipIssuerMasterKey:Other

“E6”0x45,0x36“X”

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

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

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

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

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

“K2”0x4B,0x32TR-34非對稱密鑰

“V”

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

“K4”0x4B,0x34ISO20038密鑰分組保護密鑰“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ù)字簽名的非對稱密鑰“S”,“V”

“S1”0x53,0x31非對稱密鑰對,CA密鑰“S”,“V”

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

“S2”0x53,0x32非對稱密鑰對,非X9.24密鑰

“D”,“E”

“V0”0x56,0x30PIN校驗KPV,其他算法“C”,“G”,“V”

“V1”0x56,0x31PIN校驗,IBM3624“C”,“G”,“V”

“V2”0x56,0x32PIN校驗,VISAPVV“C”,“G”,“V”

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

也適用于MAC密鑰。

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

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

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

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

或AAC)。

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

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

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

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

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

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

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

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

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

了使用IV的算法。

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

算法一起使用。

GB/TXXXXX—XXXX

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

使用。

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

用。

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

使用。

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

使用。

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

使用。

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

密鑰可以用于認證加密,密鑰或從該密鑰派生的密鑰可同時用于加密運算和完整性校驗。注意,此類密鑰用法不適用于

TR-31密鑰分組保護密鑰。

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

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

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

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

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

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

用于其他驗證算法,也不能用于PIN校驗以外的其他功能。

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

驗證算法,也不能用于PIN校驗以外的其他功能。

A.2.4算法

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

表A.4算法賦值定義

值十六進制值定義

“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í)行的操作。報頭的字節(jié)8標(biāo)識了使用模式。表A.5給出了當(dāng)前定義的該

字段的賦值。

溫馨提示

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

評論

0/150

提交評論