JT-T-978.6-2015城市公共交通IC卡技術(shù)規(guī)范第6部分:安全_第1頁
JT-T-978.6-2015城市公共交通IC卡技術(shù)規(guī)范第6部分:安全_第2頁
JT-T-978.6-2015城市公共交通IC卡技術(shù)規(guī)范第6部分:安全_第3頁
JT-T-978.6-2015城市公共交通IC卡技術(shù)規(guī)范第6部分:安全_第4頁
JT-T-978.6-2015城市公共交通IC卡技術(shù)規(guī)范第6部分:安全_第5頁
已閱讀5頁,還剩112頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

ICS03.220.20;35.240.15JT/T978—2015城市公共交通IC卡技術(shù)規(guī)范2015-05-21發(fā)布2015-07-15實施JT/T978—2015城市公共交通IC卡技術(shù)規(guī)范第1部分:總則 1城市公共交通IC卡技術(shù)規(guī)范第2部分:卡片 城市公共交通IC卡技術(shù)規(guī)范第3部分:讀寫終端 城市公共交通IC卡技術(shù)規(guī)范第4部分:信息接口 城市公共交通IC卡技術(shù)規(guī)范第5部分:非接觸接口通信 城市公共交通IC卡技術(shù)規(guī)范第6部分:安全 城市公共交通IC卡技術(shù)規(guī)范第7部分:檢測項目 401JT/T978.6—2015城市公共交通IC卡技術(shù)規(guī)范2015-05-21發(fā)布2015-07-15實施JT/T978.6—2015 2規(guī)范性引用文件 4符號、代號和縮略語 5.1證書和密鑰 5.3應(yīng)用密文和發(fā)卡機(jī)構(gòu)認(rèn)證 5.4交通行業(yè)信息的保護(hù) 5.5安全報文 6電子錢包安全體系 6.2交易MAC/TAC計算流程 6.3安全報文計算流程 7卡片安全 7.1共存應(yīng)用 7.2密鑰的獨(dú)立性 7.3卡片內(nèi)部安全體系 8.1終端數(shù)據(jù)安全性要求 8.3終端密鑰管理要求 388 9.1國際算法對稱加密機(jī)制 9.2國密算法對稱加密機(jī)制 9.3國際算法非對稱加密機(jī)制 JT/T978.6—201510系統(tǒng)安全要求 10.3系統(tǒng)等級保護(hù)要求 附錄A(規(guī)范性附錄)算法 附錄B(規(guī)范性附錄)算法選擇與交易流程 397參考文獻(xiàn) JT/T978.6—2015 本部分為JT/T978的第6部分。JT/T978.6—2015城市公共交通IC卡技術(shù)規(guī)范第6部分:安全GB/T16649.4識別卡集成電路卡第4部分:用于交換的結(jié)構(gòu)、安全和命令GB/T18238.3信息技術(shù)安全技術(shù)散列函數(shù)第3部分:專用散列函數(shù)GB/T20269—2006信息安全技術(shù)信息系統(tǒng)安全管理要求GB/T20271—2006信息安全技術(shù)信息系統(tǒng)通用安全技術(shù)要求GB/T22239—2008信息安全技術(shù)信息系統(tǒng)安全等級保護(hù)基本要求GB/T25058—2010信息安全技術(shù)信息系統(tǒng)安全等級保護(hù)實施指南GB/T25070—2010信息安全技術(shù)信息系統(tǒng)等級保護(hù)安全設(shè)計技術(shù)要求GB/T27929銀行業(yè)務(wù)采用對稱加密技術(shù)進(jìn)行報文鑒別的要求GM/T0002SM4分組密碼算法JT/T978.1城市公共交通IC卡技術(shù)規(guī)范第1部分:總則JT/T978.2城市公共交通IC卡技術(shù)規(guī)范第2部分:卡片JT/T978.3城市公共交通IC卡技術(shù)規(guī)范第3部分:讀寫終端JT/T978.1及GB/TJT/T978.6—2015公鑰publickey證書certificate公鑰證書publickeycertificate串聯(lián)concatenationAAC——應(yīng)用認(rèn)證密文(ApplicationAuthenticationAC——應(yīng)用密文(ApplicationCryptogram)ADF——應(yīng)用定義文件(ApplicationDefinitionFile)AEF——應(yīng)用基本文件(ApplicationElementaryFile)AFL——應(yīng)用文件定位器(ApplicationFileLocator)AID——應(yīng)用標(biāo)識符(ApplicationIdentifier)AIP——應(yīng)用交互特征(ApplicationInterchangeProfile)APDU——應(yīng)用協(xié)議數(shù)據(jù)單元(ApplicationProtocolDataUnit)ARC——授權(quán)響應(yīng)碼(AuthorizationResponseCode)ARQC——授權(quán)請求密文(AuthorizationRequestCryptCBC——密碼塊鏈接(CipherBlockChaining)CDA——復(fù)合動態(tài)數(shù)據(jù)認(rèn)證/應(yīng)用密文生成(CombinedDDA/ACGeneration)CLA——命令報文的類別字節(jié)(ClassByteoftheCommandMessage)C-MAC——命令一報文鑒別碼(Command-MessageAuthenticationCode)DDA——動態(tài)數(shù)據(jù)認(rèn)證(DynamicDataAuthentication)DDOL——動態(tài)數(shù)據(jù)認(rèn)證數(shù)據(jù)對象列表(DynamicDataAuthenticationDataObjectList)EF——基本文件(ElementaryFile)FCI——文件控制信息(FileControlInformation)fDDA——快速DDA(FastDDA)FMD——文件管理數(shù)據(jù)(FileManagementData)H:=Hash[MSG]——用160位的HASH函數(shù)對任意長度的報文MSG進(jìn)行HASH運(yùn)算。IC——集成電路(IntegratedCircuit)ICC——集成電路卡(IntegratedCircuitCard)IMK——發(fā)卡機(jī)構(gòu)主密鑰(IssuerMasterKey)KEK/TK密鑰交換密鑰/傳輸密鑰(KeyExchangeKey/TransportKey)KeyA——密鑰的左半部分KeyB——密鑰的右半部分JT/T978.6—2015KMC——對稱主密鑰,用于在個人化過程中分散密鑰來產(chǎn)生KMCID——對稱主密鑰標(biāo)識符Ks——過程密鑰(SessionKey)Lpp——卡片動態(tài)數(shù)據(jù)長度(LengthoftheICCDynamicData)MAC——報文鑒別碼(MessageAuthenticationCode)P1——參數(shù)1RID——注冊的應(yīng)用提供商標(biāo)識(RegisteredApplicationProviderIdentifier)RSA——Rivest、Sharmir和Adleman提出的一種非對稱密鑰算法的簡稱SAM安全認(rèn)證模塊(SecureAuthenticationModule)ScA——根私鑰(CertificationAuthorSFI——短文件標(biāo)識符(ShortFileIdentifier)SHA——安全哈希算法(SecureHashAlgorithm)S?——發(fā)卡機(jī)構(gòu)私鑰(IssuerPrivateKey)SIc——卡片公鑰(ICCPrivateKey)SM2——SM2橢圓曲線公鑰密碼算法(PublicKeyCryptographicAlgorithmSM2BasedonEllipticX:=ALG-1(K)[Y]——用密鑰K,通過64位或128位分組加密方法,對64位或128位數(shù)據(jù)塊Y進(jìn)行解密JT/T978.6—2015Y:=ALG(K)[X]——用密鑰K,通過64位或128位分組加密方法,對64位或128位數(shù)據(jù)塊X進(jìn)行加密Y:=Sign(Sk)[X]——用私鑰Sk,通過非對稱可逆算法,對數(shù)據(jù)塊X進(jìn)行簽名A=B——數(shù)值A(chǔ)等于數(shù)值BA=Bmodn——整數(shù)A與B對于模n同余,即存在一個整數(shù)d,使得(A-B)=dnA:=B——A被賦予數(shù)值BA+B——A與B進(jìn)行異或計算5.1.1.1概述5.1.1.2使用國際算法的根公鑰文件5.1.2.1概述d)NP:固定后綴。JT/T978.6—20155.1.2.3使用國密算法的發(fā)卡機(jī)構(gòu)證書請求文件d)NP:固定后綴。5.1.3發(fā)卡機(jī)構(gòu)證書文件命名5.1.3.1概述規(guī)則。5.1.3.2使用國際算法的發(fā)卡機(jī)構(gòu)證書文件b)IT:標(biāo)識國際算法;c)NN:用來簽發(fā)發(fā)卡機(jī)構(gòu)公鑰證書的根公鑰的索引。5.1.3.3使用國密算法的發(fā)卡機(jī)構(gòu)證書文件b)IG:標(biāo)識國密算法;c)NN:用來簽發(fā)發(fā)卡機(jī)構(gòu)公鑰證書的根公鑰的索引。5.1.4電子現(xiàn)金對稱密鑰電子現(xiàn)金相關(guān)的對稱密鑰類型見表1。長度(字節(jié))應(yīng)用密文主密鑰產(chǎn)生卡片應(yīng)用密文子密鑰,用于應(yīng)用密文的產(chǎn)生和驗證安全報文認(rèn)證(MAC)密鑰產(chǎn)生卡片MAC子密鑰,用于安全報文鑒別碼的產(chǎn)生和驗證安全報文加密密鑰產(chǎn)生卡片加密子密鑰,用于加密解密安全報文應(yīng)用開通密鑰產(chǎn)生卡片擴(kuò)展應(yīng)用開通子密鑰,用于與擴(kuò)展應(yīng)用相關(guān)的安全報文鑒別碼的產(chǎn)生和驗證,這個密鑰用于增加指定的擴(kuò)展應(yīng)用擴(kuò)展文件的記錄擴(kuò)展應(yīng)用管理密鑰產(chǎn)生卡片擴(kuò)展應(yīng)用管理子密鑰,用于與擴(kuò)展應(yīng)用相關(guān)的安全報文鑒別碼的產(chǎn)生和驗證,這個密鑰用于保護(hù)指定的擴(kuò)展應(yīng)用擴(kuò)展文件中記錄的信息JT/T978.6—20155.1.5子密鑰推導(dǎo)方法5.1.5.1.1利用16字節(jié)的發(fā)卡機(jī)構(gòu)主密鑰(IMK)分散得出用于密文生成、發(fā)卡機(jī)構(gòu)認(rèn)證和安全報文最右16個數(shù)字作為輸入數(shù)據(jù)X,生成16字節(jié)的卡片子密鑰作為輸出,見圖1。發(fā)卡機(jī)構(gòu)生成16字節(jié)主密鑰(IMK)生成子密鑰PAN和PAN序列號(Y)取反的PAN和PAN序列號3DES子密鑰圖1國際算法的子密鑰推導(dǎo)流程X的長度至少有16個數(shù)字,則Y由X的最右邊的16個數(shù)字組成;b)計算2個8字節(jié)的數(shù)字:ZL:=ALG(IMK)[Y]。ZR:=ALG(IMK)[Y田(‘FF'II‘FF'II‘FF'lI‘FF'lI‘FF'II‘FF'II‘FF'II‘FF’)]。Z:=(ZLIIZR)。16字節(jié)的卡片子密鑰就等于Z。對于DES算法,Z的每個字節(jié)的最低位應(yīng)保證密鑰的每一字節(jié)都有奇數(shù)個非0位(為了符合對DES密鑰奇校驗的要求)。5.1.5.2.1利用16字節(jié)的發(fā)卡機(jī)構(gòu)主密鑰(IMK)分散得出用于密文生成、發(fā)卡機(jī)構(gòu)認(rèn)證和安全報文最右16個數(shù)字作為輸入數(shù)據(jù)X,生成16字節(jié)的卡片子密鑰作為輸出,見圖2。X的長度至少有16個數(shù)字,則Y由X的最右邊的16個數(shù)字組成;Z:=ALG(IMK)[YII(Y田(‘FF'II‘FF'II‘FF'II‘FF'II‘FF'II‘FF'II‘FF'II‘FF'))]。16字節(jié)的卡片子密鑰就等于Z。JT/T978.6—2015發(fā)卡機(jī)構(gòu)生成16字節(jié)主密鑰(IMK)生成子密鑰5.1.6過程密鑰的產(chǎn)生5.1.6.1國際算法過程密鑰的產(chǎn)生發(fā)卡機(jī)構(gòu)主機(jī)安全模塊IMKIMKPAN和PAN序列號(Y)取反的PAN和PAN序列號子密鑰IMK國密算法子密鑰推導(dǎo)流程國際算法的MAC和數(shù)據(jù)加密過程密鑰的產(chǎn)生如下所述(在本節(jié)中將過程密鑰的左半部分和右半部分稱為“過程密鑰A”和“過程密鑰B”),見圖3。輸入數(shù)據(jù)輸入數(shù)據(jù)DESDES過程密鑰KeyAKeyB圖3國際算法的單長度過程密鑰的產(chǎn)生流程5.1.6.1.1單長度DES過程密鑰國際算法的單長度DES過程密鑰產(chǎn)生流程如下:a)卡片/發(fā)卡機(jī)構(gòu)使用MAC密鑰或數(shù)據(jù)加密密鑰進(jìn)行算法處理(在本條中將密鑰的左半部分和右半部分稱為“KeyA”和“KeyB”);b)將當(dāng)前的ATC在其左邊用十六進(jìn)制數(shù)字‘00’填充到8個字節(jié),用KeyA和KeyB對該數(shù)據(jù)作圖3所示的3DES運(yùn)算產(chǎn)生過程密鑰A。JT/T978.6—2015Z:=3DES(Key)[‘00’II‘00’II‘00’II‘00’II‘00’II‘00'IIATC]。5.1.6.1.2雙長度DES過程密鑰的產(chǎn)生圖3所示的3DES運(yùn)算產(chǎn)生過程密鑰A。方法對該數(shù)據(jù)作圖3所示的3DES運(yùn)算得到過程密鑰B。ZL:=3DES(Key)[‘00’lI00’lI‘00’lI‘00’II‘00’lI*00’IIATC]。ZR:=3DES(Key)[‘00'II‘00’II‘00’II‘00’密鑰每個字節(jié)的最低位應(yīng)被設(shè)成能夠保證密鑰b)將當(dāng)前的ATC在其左邊用十六進(jìn)制數(shù)字‘00’填充到8個字節(jié)記為數(shù)據(jù)源A,將當(dāng)前的ATC異或十六進(jìn)制值FFFF后在其左邊用十六進(jìn)制數(shù)字‘00’填充到8個字節(jié)記為數(shù)據(jù)源B,將數(shù)據(jù)源A和數(shù)據(jù)源B串聯(lián),用選定的密鑰對該數(shù)據(jù)作圖4所示的運(yùn)算產(chǎn)生過程Z:=ALG(Key)[‘00’II*00’II*00’II*00’II‘00’II‘00’IIATCII‘00'lI‘00’l‘00’II‘00’l1輸入數(shù)據(jù)輸入數(shù)據(jù)(加密)過程密鑰Key圖4國密算法的過程密鑰產(chǎn)生流程5.2.1概述JT/T978.6—2015a)對于SFI從1到10的文件,記錄的Tag(“70”)和記錄長度不用于動態(tài)數(shù)據(jù)認(rèn)證處理,讀記錄(READRECORD)命令響應(yīng)數(shù)據(jù)域中所有其他數(shù)據(jù)(SW1,SW2除外)都參與動態(tài)數(shù)據(jù)b)對于SFI從11到30的文件,記錄的Tag(“70”)和記錄長度用于動態(tài)數(shù)據(jù)認(rèn)證處理,因而讀記錄(READRECORD)命令響應(yīng)數(shù)據(jù)域中所有數(shù)據(jù)(SW1,SW2除外)都參與動態(tài)數(shù)據(jù)c)若用于動態(tài)數(shù)據(jù)認(rèn)證的文件中的記錄的Tag不是“70”,則認(rèn)為動態(tài)數(shù)據(jù)認(rèn)證已經(jīng)執(zhí)行并失交易證書或授權(quán)請求密文,以及由卡片風(fēng)險管理數(shù)據(jù)對象列表[對第一條生成應(yīng)用密文(GENERATEAC)命令是CDOL1,對第二條生成應(yīng)用密文(GENERATEAC)命令是CDOL2]標(biāo)識的由終端生成的不可預(yù)知數(shù)AIP指明卡片支持的選項。b)發(fā)卡機(jī)構(gòu)公鑰證書:該變長數(shù)據(jù)元由密鑰管理系統(tǒng)提供給發(fā)卡機(jī)構(gòu)。終端驗證這個數(shù)據(jù)元生成的變長數(shù)據(jù)元。它是一個數(shù)字簽名,包含了5.2.6.5描述的存放在卡支持動態(tài)數(shù)據(jù)認(rèn)證的終端應(yīng)為每個注冊的應(yīng)用提供商標(biāo)識存儲6個根公鑰,且應(yīng)使同密鑰相關(guān)的密鑰信息和每一個密鑰相關(guān)聯(lián)(以使終端能在將來支持多種算法,允許從一個算法過渡到另一個,JT/T978.6—2015發(fā)卡機(jī)構(gòu)密鑰管理系統(tǒng)收單機(jī)構(gòu)初始化發(fā)卡機(jī)構(gòu)私鑰S?發(fā)卡機(jī)構(gòu)公鑰P?發(fā)卡機(jī)構(gòu)公鑰證書簽名)個人化卡片私鑰卡片公鑰PIcc發(fā)卡機(jī)構(gòu)公鑰證書卡片公鑰由S?簽名)卡片交易用S?cc計算動態(tài)簽名終端讀記錄(READRECORD)響應(yīng)包括:終端根公鑰索引發(fā)卡機(jī)構(gòu)公鑰證明卡片公鑰證書內(nèi)部認(rèn)證(INTERNALAUTHENTICATE)或生成應(yīng)用密文(GENERATEAC)命令用PcA從發(fā)卡機(jī)構(gòu)公鑰證書恢復(fù)P?用P?從卡片公鑰證書恢驗證卡片公鑰證書中的靜態(tài)數(shù)據(jù)哈希內(nèi)部認(rèn)證(內(nèi)部認(rèn)證(INTERNALAUTHENTICATE)或含動態(tài)簽名的生成應(yīng)用密文(GENERATEAC)響應(yīng)INTERNALAUTHENTICATE命令(對于標(biāo)準(zhǔn)INTERNALAUTHENTICATE命令(對于標(biāo)準(zhǔn)DDA)圖5DDA公鑰體系結(jié)構(gòu)JT/T978.6—20155.2.5.1概述終端采用公鑰算法驗證卡片上的簽名和證書來實現(xiàn)動態(tài)數(shù)據(jù)認(rèn)證。公鑰技術(shù)使用私鑰產(chǎn)生加密數(shù)據(jù)(證書或簽名),該加密數(shù)據(jù)可以被公鑰解密而用于驗證和數(shù)據(jù)恢復(fù)。RSA公鑰模的位長度應(yīng)是8的倍數(shù),最左邊(高)字節(jié)的最左(高)一位為1。所有的長度以字節(jié)為單位。若卡片上的靜態(tài)應(yīng)用數(shù)據(jù)不是唯一的(比如卡片針對國際和國內(nèi)交易使用不同的CVM),卡片應(yīng)支持多個卡片公鑰證書(或靜態(tài)數(shù)據(jù)簽名),若被簽名的靜態(tài)應(yīng)用數(shù)據(jù)在卡片發(fā)出后會被修改,卡片應(yīng)支持卡片公鑰證書(或靜態(tài)數(shù)據(jù)簽名)的更新。5.2.5.2公私鑰對密鑰管理系統(tǒng)和發(fā)卡機(jī)構(gòu)使RSA算法產(chǎn)生根公私鑰對、發(fā)卡機(jī)構(gòu)公私鑰對以及卡片公私鑰對。5.2.5.2.2根公私鑰對公私鑰對應(yīng)分配一個唯一的根公鑰索引。根公鑰及其索引由收單機(jī)構(gòu)加載到終端,根私鑰由密鑰管理系統(tǒng)保管并保證其私密性和安全性。要求如下:b)終端應(yīng)通過RID和根公鑰索引定位根公鑰,根公鑰模長應(yīng)在附錄A.2.1中所定義的范圍內(nèi),根公鑰指數(shù)應(yīng)等于3或21?+1。5.2.5.2.3發(fā)卡機(jī)構(gòu)公私鑰對發(fā)卡機(jī)構(gòu)產(chǎn)生發(fā)卡機(jī)構(gòu)公私鑰對,并從密鑰管理系統(tǒng)獲取發(fā)卡機(jī)構(gòu)公鑰證書。發(fā)卡機(jī)構(gòu)將其公鑰發(fā)送給密鑰管理系統(tǒng),密鑰管理系統(tǒng)使用模長大于等于發(fā)卡機(jī)構(gòu)公鑰模長并且公鑰有效期晚于發(fā)卡機(jī)構(gòu)公鑰有效期的根私鑰對其進(jìn)行簽名。要求如下:a)卡片應(yīng)包含發(fā)卡機(jī)構(gòu)公鑰證書及其用來驗證發(fā)卡機(jī)構(gòu)證書的根公鑰索引;b)發(fā)卡機(jī)構(gòu)公鑰模長應(yīng)小于等于根公鑰最大模長,發(fā)卡機(jī)構(gòu)公鑰模長應(yīng)在附錄A.2.1中所定義的范圍內(nèi)。發(fā)卡機(jī)構(gòu)公鑰指數(shù)應(yīng)等于3或21?+1;c)終端應(yīng)通過RID和根公鑰索引定位根公鑰,并用根公鑰從發(fā)卡機(jī)構(gòu)證書恢復(fù)發(fā)卡機(jī)構(gòu)公鑰,再用發(fā)卡機(jī)構(gòu)公鑰恢復(fù)并驗證卡片上的發(fā)卡機(jī)構(gòu)應(yīng)用數(shù)據(jù)。5.2.5.2.4卡片公私鑰對支持DDA還要求發(fā)卡機(jī)構(gòu)為每張卡片產(chǎn)生卡片公私鑰對,卡片私鑰存放在卡片中的安全存貯區(qū)a)卡片公鑰模長應(yīng)小于等于發(fā)卡機(jī)構(gòu)公鑰模長,卡片公鑰模長應(yīng)在附錄A.2.1中所定義的范圍內(nèi)。卡片公鑰指數(shù)應(yīng)等于3或2?+1;b)終端應(yīng)通過RID和根公鑰索引定位根公鑰,并用認(rèn)證中公鑰從發(fā)卡機(jī)構(gòu)公鑰證書恢復(fù)發(fā)卡機(jī)構(gòu)公鑰,然后用發(fā)卡機(jī)構(gòu)公鑰從卡片公鑰證書恢復(fù)卡片公鑰,并用卡片公鑰驗證卡片的動態(tài)簽名數(shù)據(jù)。5.2.6.1安全要求密鑰和證書安全應(yīng)滿足如下要求:a)一張卡片應(yīng)擁有自身的唯一的公私鑰對,公私鑰對由一個私有的簽名密鑰和相對應(yīng)的公開的驗證密鑰組成。卡片公鑰應(yīng)存放在卡片上的公鑰證書中;b)動態(tài)數(shù)據(jù)認(rèn)證采用三層公鑰證書方案。每一個卡片公鑰由它的發(fā)卡機(jī)構(gòu)認(rèn)證,而密鑰管理系統(tǒng)認(rèn)證發(fā)卡機(jī)構(gòu)公鑰。為驗證卡片的簽名,終端應(yīng)先通過驗證兩個證書來恢復(fù)和驗證卡片公JT/T978.6—2015c)應(yīng)按9.3.1中指明的簽名方案將根私鑰ScA應(yīng)用到表2中指定的數(shù)據(jù),將發(fā)卡機(jī)構(gòu)私鑰S?應(yīng)d)根公鑰模長為NcA個字節(jié)。根公鑰指數(shù)應(yīng)等于3或21?+1;e)發(fā)卡機(jī)構(gòu)的公鑰模長為N?個字節(jié)(N?≤NcA)。若N?>(NcA-36),則發(fā)卡機(jī)構(gòu)公鑰模被分成兩部分,即一部分包含模中最高的NcA-36個字節(jié)(發(fā)卡機(jī)構(gòu)公鑰中最左邊的數(shù)字);另一部分包含剩下的模中最低的N?-(NcA-36)個字節(jié)(發(fā)卡機(jī)構(gòu)公鑰余項)。發(fā)卡機(jī)構(gòu)公鑰指數(shù)應(yīng)等于3或21?+1;的模中最低的Nic-(N?-42)個字節(jié)(卡片公鑰余項)。卡片公鑰指數(shù)應(yīng)等于3或21?+1;長度(字節(jié))證書格式1十六進(jìn)制,值為‘02’b發(fā)卡機(jī)構(gòu)識別號4主賬號最左面的3個~8個數(shù)字(在右邊補(bǔ)上十六進(jìn)制數(shù)‘F’)證書失效日期2MMYY,在此日期后,這張證書無效證書序列號3由密鑰管理系統(tǒng)分配給這張證書的唯一的二進(jìn)制數(shù)b哈希算法標(biāo)識1標(biāo)識用于在數(shù)字簽名方案中產(chǎn)生哈希結(jié)果的哈希算法b發(fā)卡機(jī)構(gòu)公鑰算法標(biāo)識1標(biāo)識使用發(fā)卡機(jī)構(gòu)公鑰的數(shù)字簽名算法b發(fā)卡機(jī)構(gòu)公鑰長度1標(biāo)識發(fā)卡機(jī)構(gòu)公鑰模的字節(jié)長度b發(fā)卡機(jī)構(gòu)公鑰指數(shù)長度1標(biāo)識發(fā)卡機(jī)構(gòu)公鑰指數(shù)的字節(jié)長度b發(fā)卡機(jī)構(gòu)公鑰或發(fā)卡機(jī)構(gòu)公鑰的最左邊字節(jié)NcA-36若N?≤NcA-36,這個字段包含了在右邊補(bǔ)上了NcA-36-N?個值為‘BB’的字節(jié)的整個發(fā)卡機(jī)構(gòu)公鑰。若N?>NcA-36,這個字段包含了發(fā)卡機(jī)構(gòu)公鑰最高位的NcA-36個字節(jié)b發(fā)卡機(jī)構(gòu)公鑰的余項0或N?-NcA+36這個字段只有在N?>NcA-36時才出現(xiàn)。它包含了發(fā)卡機(jī)構(gòu)公鑰最低位的N?-NcA+36個字節(jié)b發(fā)卡機(jī)構(gòu)公鑰指數(shù)發(fā)卡機(jī)構(gòu)公鑰指數(shù)等于3或21?+1b注:此為哈希算法輸入。JT/T978.6—2015表3由發(fā)卡機(jī)構(gòu)簽名的卡片公鑰數(shù)據(jù)長度(字節(jié))證書格式1十六進(jìn)制,值為‘04'b應(yīng)用主賬號主賬號(在右邊補(bǔ)上十六進(jìn)制數(shù)‘F')證書失效日期2MMYY,在此日期后,這張證書無效證書序列號3由發(fā)卡機(jī)構(gòu)分配給這張證書的唯一的二進(jìn)制數(shù)b哈希算法標(biāo)識1標(biāo)識用于在數(shù)字簽名方案中產(chǎn)生哈希結(jié)果的哈希算法b卡片公鑰算法標(biāo)識1標(biāo)識使用在卡片公鑰上的數(shù)字簽名算法b卡片公鑰長度1標(biāo)識卡片公鑰的模的字節(jié)長度b卡片公鑰指數(shù)長度1標(biāo)識卡片公鑰指數(shù)的字節(jié)長度b卡片公鑰或卡片公鑰的最左邊字節(jié)N?-42若N?c≤N?-42,這個字段包含了在右邊補(bǔ)上了N-42-N?c個值為‘BB’的字節(jié)的整個卡片公鑰。若Nc>N?-42,這個字段包含了卡片公鑰最高位的N?-42個字節(jié)b卡片公鑰的余項0或Nc-N?+42這個字段只有在Nnc>N?-42時才出現(xiàn),它包含了卡片公鑰最低位的Nic-N?+42個字節(jié)b卡片公鑰指數(shù)卡片公鑰指數(shù)等于3或21?+1b待認(rèn)證的靜態(tài)數(shù)據(jù)變長名。在卡片個人化階段,使用發(fā)卡機(jī)構(gòu)私鑰簽名的數(shù)據(jù),保存在卡片中b注1:認(rèn)證過程的輸入由被AFL標(biāo)識的記錄組成,其后跟有AIP[若AIP被可選的靜態(tài)數(shù)據(jù)認(rèn)證標(biāo)簽列表(標(biāo)簽“9F4A”)標(biāo)識。若靜態(tài)數(shù)據(jù)認(rèn)證標(biāo)簽列表存在,它應(yīng)僅包含標(biāo)識AIP用的標(biāo)簽“82”]。注2:此為哈希算法輸入。表4動態(tài)認(rèn)證中的公鑰認(rèn)證所需的數(shù)據(jù)對象長度(字節(jié))格式5注冊的應(yīng)用提供商標(biāo)識b1根公鑰索引bNcA發(fā)卡機(jī)構(gòu)公鑰證書bN?-NcA+36發(fā)卡機(jī)構(gòu)公鑰的余項(若存在)b發(fā)卡機(jī)構(gòu)公鑰指數(shù)bN卡片公鑰證書bNc-N?+42卡片公鑰的余項(若存在)b卡片公鑰指數(shù)b—變長名。在卡片個人化階段,使用發(fā)卡機(jī)構(gòu)私鑰簽名的數(shù)據(jù),保存在卡片中—5.2.6.2根公鑰的獲取終端讀取根公鑰索引,使用公鑰索引和RID,確認(rèn)并取得存放在終端的根公鑰的模、指數(shù)以及相應(yīng)JT/T978.6—20155.2.6.3發(fā)卡機(jī)構(gòu)公鑰的獲取b)使用根公鑰和相應(yīng)的算法按照9.3.1中指明的恢復(fù)函數(shù)恢復(fù)發(fā)卡機(jī)構(gòu)公鑰證書,獲得在表5e)將表5中的第2個到第10個數(shù)據(jù)元(即從證書格式直到發(fā)卡機(jī)構(gòu)公鑰或發(fā)卡機(jī)構(gòu)公鑰的最左邊字節(jié))從左到右連接,再把發(fā)卡機(jī)構(gòu)公鑰的余項加在后面(若有),最后是發(fā)卡機(jī)構(gòu)公鑰f)使用指定的哈希算法(從哈希算法標(biāo)識得到)對h)檢驗發(fā)卡機(jī)構(gòu)識別號與主賬號最左面的3個~8個數(shù)字(允許發(fā)卡機(jī)構(gòu)識別號在其后填充的1)以上所有的檢驗都通過,連接發(fā)卡機(jī)構(gòu)公鑰的最左邊字節(jié)和發(fā)卡機(jī)構(gòu)公鑰的余項(若存在),長度(字節(jié))恢復(fù)數(shù)據(jù)頭1十六進(jìn)制,值為‘6A'b證書格式1十六進(jìn)制,值為‘02’b發(fā)卡機(jī)構(gòu)標(biāo)識4主賬號最左面的3個~8個數(shù)字(在右邊補(bǔ)上十六進(jìn)制數(shù)‘F')證書失效日期2MMYY,在此日期后,這張證書無效。證書序列號3由密鑰管理系統(tǒng)分配給這張證書的唯一的二進(jìn)制數(shù)b哈希算法標(biāo)識1標(biāo)識用于在數(shù)字簽名方案中產(chǎn)生哈希結(jié)果的哈希算法b發(fā)卡機(jī)構(gòu)公鑰算法標(biāo)識1標(biāo)識使用在發(fā)卡機(jī)構(gòu)公鑰上的數(shù)字簽名算法b發(fā)卡機(jī)構(gòu)公鑰長度1標(biāo)識發(fā)卡機(jī)構(gòu)公鑰的模的字節(jié)長度b發(fā)卡機(jī)構(gòu)公鑰指數(shù)長度1標(biāo)識發(fā)卡機(jī)構(gòu)公鑰指數(shù)的字節(jié)長度b發(fā)卡機(jī)構(gòu)公鑰或發(fā)卡機(jī)構(gòu)公鑰的最左邊字節(jié)NcA-36若N?≤NcA-36,這個字段包含了在右邊補(bǔ)上了NcA-36-N?個值為‘BB'的字節(jié)的整個發(fā)卡機(jī)構(gòu)公鑰。若N?>NcA-36,這個字段包含了發(fā)卡機(jī)構(gòu)公鑰最高位的NcA-36個字節(jié)b哈希結(jié)果發(fā)卡機(jī)構(gòu)公鑰以及相關(guān)信息的哈希值b恢復(fù)數(shù)據(jù)結(jié)尾1十六進(jìn)制,值為‘BC’bJT/T978.6—20155.2.6.4卡片公鑰的獲取b)使用發(fā)卡機(jī)構(gòu)公鑰和相應(yīng)的算法將9.3.1中指明的恢復(fù)函數(shù)應(yīng)用到卡片公鑰證書上,獲得在表6中指明的恢復(fù)數(shù)據(jù)。若恢復(fù)數(shù)據(jù)的結(jié)尾不等于“BC”,則動態(tài)數(shù)據(jù)認(rèn)證失??;e)將表6中的第2個到第10個數(shù)據(jù)元(即從證書格式直到卡片公鑰或卡片公鑰的最左邊字節(jié))k)以上所有的檢驗都通過,連接卡片公鑰的最左邊字節(jié)和卡片公鑰的余項(若存在),得到發(fā)卡長度(字節(jié))恢復(fù)數(shù)據(jù)頭1十六進(jìn)制,值為‘6A’b證書格式1十六進(jìn)制,值為‘04’b應(yīng)用主賬號主賬號(在右邊補(bǔ)上十六進(jìn)制數(shù)‘F’)證書失效日期2MMYY,在此日期后,這張證書無效證書序列號3由發(fā)卡機(jī)構(gòu)分配給這張證書的唯一的二進(jìn)制數(shù)b哈希算法標(biāo)識1標(biāo)識用于在數(shù)字簽名方案中產(chǎn)生哈希結(jié)果的哈希算法b卡片公鑰算法標(biāo)識1標(biāo)識使用在卡片公鑰上的數(shù)字簽名算法b卡片公鑰長度1標(biāo)識卡片公鑰的模的字節(jié)長度b卡片公鑰指數(shù)長度1標(biāo)識卡片公鑰指數(shù)的字節(jié)長度b卡片公鑰或卡片公鑰的最左邊字節(jié)N?-42若NIc≤N?-42,這個字段包含了在右邊補(bǔ)上了N?-42-Nc個值為‘BB’的字節(jié)的整個卡片公鑰。若Nic>N-42,這個字段包含了卡片公鑰最高位的N?-42個字節(jié)b哈希結(jié)果卡片公鑰以及相關(guān)信息的哈希值b恢復(fù)數(shù)據(jù)結(jié)尾1十六進(jìn)制,值為‘BCb5.2.6.5標(biāo)準(zhǔn)動態(tài)數(shù)據(jù)認(rèn)證5.2.6.5.1動態(tài)簽名的生成終端按上述的過程取得了卡片公鑰,除了表4中指明的數(shù)據(jù),動態(tài)數(shù)據(jù)認(rèn)證所需的數(shù)據(jù)對象見JT/T978.6—2015a)終端發(fā)出內(nèi)部認(rèn)證(INTERb)卡片可包含DDOL,但終端應(yīng)有一個缺省的,由密鑰管理系統(tǒng)指定的DDOL,以防在卡片沒有提供DDOL的情況下使用;c)DDOL應(yīng)包含由終端生成的不可預(yù)知數(shù)(標(biāo)簽“9F37”,4個字節(jié)的二進(jìn)制數(shù));1)卡片和終端都不含有DDOL;3)卡片上沒有DDOL并且終端上缺省的DDOL不包含不可預(yù)知數(shù)。e)卡片使用卡片私鑰和相應(yīng)的算法并按9.3.1對表7中指明的數(shù)據(jù)生成數(shù)字簽名,稱為簽名的動態(tài)應(yīng)用數(shù)據(jù)。表7需簽名的動態(tài)應(yīng)用數(shù)據(jù)長度(字節(jié))簽名的數(shù)據(jù)格式1十六進(jìn)制,值為‘05’b哈希算法標(biāo)識1標(biāo)識用于產(chǎn)生哈希結(jié)果的哈希算法b卡片動態(tài)數(shù)據(jù)長度1標(biāo)識卡片動態(tài)數(shù)據(jù)的字節(jié)長度Lopb卡片動態(tài)數(shù)據(jù)由卡片生成和/或存儲在卡片上的動態(tài)數(shù)據(jù)填充字節(jié)Nic-Lop-25(Nic-Lpp-25)個值為‘BB'的填充字節(jié)b終端動態(tài)數(shù)據(jù)變長由DDOL指定的數(shù)據(jù)元連接而成注1:此為哈希算法的輸入。注2:卡片動態(tài)數(shù)據(jù)的字節(jié)長度Loo滿足0≤Lop≤Nic-25。卡片動態(tài)數(shù)據(jù)的最左邊的3個~9個字節(jié)應(yīng)由一個字節(jié)長的卡片動態(tài)數(shù)字長度后面跟隨的2個~8個卡片動態(tài)數(shù)字的值(標(biāo)簽“9F4C”,2個~8個二進(jìn)制字節(jié))組成。卡片動態(tài)數(shù)字是由一個由卡片生成的,隨時間而變的參數(shù),宜使用ATC作為卡片動態(tài)數(shù)字。長度(字節(jié))值N?c簽名的動態(tài)應(yīng)用數(shù)據(jù)b變長DDOLb5.2.6.5.2動態(tài)簽名的驗證b)為了獲得在表9中指明的恢復(fù)數(shù)據(jù),使用卡片公鑰和相應(yīng)的算法將9.3.1中指明的恢復(fù)函數(shù)應(yīng)用到簽名的動態(tài)應(yīng)用數(shù)據(jù)上。若恢復(fù)數(shù)據(jù)的結(jié)尾不等于“BC”,則動態(tài)數(shù)據(jù)認(rèn)證失?。籩)將表9中的第2個到第6個數(shù)據(jù)元(即從簽名數(shù)據(jù)格式直到填充字節(jié))從左到右連接,再把DDOL中指定的數(shù)據(jù)元加在后面;f)把指定的哈希算法(從哈希算法標(biāo)識得到)應(yīng)用到上一步的連接結(jié)果從而得到哈希結(jié)果;g)若上一步計算得到的哈希結(jié)果和恢復(fù)出的哈希結(jié)果不同,則動態(tài)數(shù)據(jù)認(rèn)證失?。籬)若以上所有的檢驗都成功,則動態(tài)數(shù)據(jù)認(rèn)證成功。在表9中恢復(fù)得到的卡片動態(tài)數(shù)據(jù)中所包JT/T978.6—2015表9從簽名的動態(tài)應(yīng)用數(shù)據(jù)恢復(fù)的數(shù)據(jù)格式長度(字節(jié))恢復(fù)數(shù)據(jù)頭1十六進(jìn)制,值為‘6A'b簽名數(shù)據(jù)格式1十六進(jìn)制,值為‘05’b哈希算法標(biāo)識1標(biāo)識用于在數(shù)字簽名方案中產(chǎn)生哈希結(jié)果的哈希算法b卡片動態(tài)數(shù)據(jù)長度1標(biāo)識卡片動態(tài)數(shù)據(jù)的字節(jié)長度b卡片動態(tài)數(shù)據(jù)由卡片生成和/或存儲在卡片上的動態(tài)數(shù)據(jù)填充字節(jié)Nic-Lpp-25(Nic-Lpp-25)個值為‘BB’的填充字節(jié)b哈希結(jié)果動態(tài)應(yīng)用數(shù)據(jù)以及相關(guān)信息的哈希值b恢復(fù)數(shù)據(jù)結(jié)尾1十六進(jìn)制,值為‘BC’b5.2.7國密算法密鑰和證書5.2.7.1概述終端使用SM2公鑰密碼算法驗證卡片上的簽名和證書以實現(xiàn)動態(tài)數(shù)據(jù)認(rèn)證。SM2算法使用私鑰產(chǎn)生證書或簽名,該證書或簽名可被公鑰驗證。SM2公鑰密碼算法的數(shù)字簽名不具備消息恢復(fù)功能,5.2.7.2公私鑰對5.2.7.2.1概述密鑰管理系統(tǒng)和發(fā)卡機(jī)構(gòu)使用SM2算法產(chǎn)生根公私鑰對、發(fā)卡機(jī)構(gòu)公私鑰對以及卡片公私鑰對。5.2.7.2.2根公私鑰對密鑰管理系統(tǒng)產(chǎn)生SM2算法公私鑰對,每個公私鑰對都應(yīng)分配一個唯一的根公鑰索引。根公鑰及其索引由收單機(jī)構(gòu)加載到終端,根私鑰由密鑰管a)終端應(yīng)有足夠空間存放根公鑰及其對應(yīng)的注冊應(yīng)用提供商標(biāo)識(RID)和根公鑰索引;b)終端應(yīng)通過RID和根公鑰索引定位根公鑰。5.2.7.2.3發(fā)卡機(jī)構(gòu)公私鑰對發(fā)卡機(jī)構(gòu)應(yīng)產(chǎn)生發(fā)卡機(jī)構(gòu)公私鑰對,并從密鑰管理系統(tǒng)獲取發(fā)卡機(jī)構(gòu)公鑰證書。發(fā)卡機(jī)構(gòu)將其公鑰發(fā)送給密鑰管理系統(tǒng),密鑰管理系統(tǒng)使用公鑰有效期晚于發(fā)卡機(jī)構(gòu)公鑰有效期的根私鑰對其進(jìn)行簽a)卡片應(yīng)包含發(fā)卡機(jī)構(gòu)公鑰證書及其用來驗證發(fā)卡機(jī)構(gòu)證書的根公鑰索引,發(fā)卡機(jī)構(gòu)私鑰由發(fā)卡機(jī)構(gòu)保管并保證其私密性和安全性;b)終端應(yīng)通過RID和根公鑰索引定位根公鑰,并用根公鑰驗證發(fā)卡機(jī)構(gòu)證書,然后用發(fā)卡機(jī)構(gòu)公鑰驗證卡片上的發(fā)卡機(jī)構(gòu)應(yīng)用數(shù)據(jù)。驗證簽名數(shù)據(jù)時,根據(jù)發(fā)卡機(jī)構(gòu)證書的“發(fā)卡機(jī)構(gòu)公5.2.7.2.4卡片公私鑰對終端應(yīng)通過RID和根公鑰索引定位根公鑰,并用認(rèn)證根公鑰驗證發(fā)卡機(jī)構(gòu)公鑰證書,然后用發(fā)卡JT/T978.6—20155.2.8.1安全要求符合國密算法的密鑰和證書安全應(yīng)滿足如下要求:a)一張卡片應(yīng)擁有它自己的公私鑰對,公私鑰對應(yīng)由一個私有的簽名密鑰和相對應(yīng)的公開的驗證密鑰組成??ㄆ€應(yīng)存放在卡片上的公鑰證書中;b)動態(tài)數(shù)據(jù)認(rèn)證采用三層公鑰證書方案。卡片公鑰由它的發(fā)卡機(jī)構(gòu)認(rèn)證,認(rèn)證發(fā)卡機(jī)構(gòu)公鑰。為驗證卡片的簽名,終端應(yīng)先通過驗證兩個證書來驗證卡片公鑰,再用該公鑰來驗證卡片的c)應(yīng)用根私鑰ScA對表10中指定的數(shù)據(jù)計算SM2簽名獲得發(fā)卡機(jī)構(gòu)公鑰證書(表11),用發(fā)卡機(jī)構(gòu)私鑰S?對表12中指定的數(shù)據(jù)計算SM2簽名,以獲得卡片公鑰證書;d)若卡片上的靜態(tài)應(yīng)用數(shù)據(jù)是唯一的,則卡片應(yīng)支持多卡片公鑰證書,若被簽名的靜態(tài)應(yīng)用數(shù)e)為完成動態(tài)數(shù)據(jù)認(rèn)證,終端應(yīng)先驗證卡片公鑰??ㄆ€認(rèn)證需要的所有信息見表13,并存放在卡片中。除了RID可以從AID中獲得外,其他信息可通過讀記錄(READRECORD)命令表10由密鑰管理系統(tǒng)簽名的發(fā)卡機(jī)構(gòu)公鑰數(shù)據(jù)長度(字節(jié))證書格式(記錄頭)1十六進(jìn)制,值為‘12’b發(fā)卡機(jī)構(gòu)標(biāo)識4主賬號最左面的3個~8個數(shù)字(在右邊補(bǔ)上十六進(jìn)制數(shù)‘F’)證書失效日期2MMYY,在此日期后,這張證書無效證書序列號3由密鑰管理系統(tǒng)分配給這張證書的唯一的二進(jìn)制數(shù)b發(fā)卡機(jī)構(gòu)公鑰簽名算法標(biāo)識1標(biāo)識發(fā)卡機(jī)構(gòu)公鑰對應(yīng)的數(shù)字簽名算法。SM2算法為‘04’b發(fā)卡機(jī)構(gòu)公鑰加密算法標(biāo)識1標(biāo)識發(fā)卡機(jī)構(gòu)公鑰對應(yīng)的加密算法,保留項b發(fā)卡機(jī)構(gòu)公鑰參數(shù)標(biāo)識1用于標(biāo)識橢圓曲線參數(shù),同時確定Nb發(fā)卡機(jī)構(gòu)公鑰長度1標(biāo)識發(fā)卡機(jī)構(gòu)公鑰字節(jié)長度b發(fā)卡機(jī)構(gòu)公鑰NSM2公鑰是橢圓曲線上的一個點b注:此為待簽名數(shù)據(jù)。表11發(fā)卡機(jī)構(gòu)公鑰證書的格式長度(字節(jié))證書格式1十六進(jìn)制,值為‘12’b發(fā)卡機(jī)構(gòu)標(biāo)識4主賬號最左面的3個~8個數(shù)字(在右邊補(bǔ)上十六進(jìn)制數(shù)‘F')證書失效日期2MMYY,在此日期后,這張證書無效證書序列號3由密鑰管理系統(tǒng)分配給這張證書的,唯一的二進(jìn)制數(shù)bJT/T978.6—2015表11(續(xù))長度(字節(jié))發(fā)卡機(jī)構(gòu)簽名公鑰算法標(biāo)識1標(biāo)識發(fā)卡機(jī)構(gòu)公鑰對應(yīng)的數(shù)字簽名算法。SM2算法為‘04’b發(fā)卡機(jī)構(gòu)公鑰加密算法標(biāo)識1標(biāo)識發(fā)卡機(jī)構(gòu)公鑰對應(yīng)的加密算法,保留項b發(fā)卡機(jī)構(gòu)公鑰參數(shù)標(biāo)識1用于標(biāo)識橢圓曲線參數(shù),同時確定N?b發(fā)卡機(jī)構(gòu)公鑰長度(字節(jié))1標(biāo)識發(fā)卡機(jī)構(gòu)公鑰字節(jié)長度b發(fā)卡機(jī)構(gòu)公鑰N如是SM2算法,該字段是橢圓曲線上的一個點b數(shù)字簽名NcA密鑰管理系統(tǒng)對表10的數(shù)據(jù)計算的SM2簽名rllsb長度(字節(jié))證書格式1值為‘14’b應(yīng)用主賬號主賬號(在右邊補(bǔ)上十六進(jìn)制數(shù)‘F’)證書失效日期2MMYY,在此日期后,這張證書無效證書序列號3由發(fā)卡機(jī)構(gòu)分配給這張證書的唯一的二進(jìn)制數(shù)b卡片公鑰簽名算法標(biāo)識1標(biāo)識卡片公鑰對應(yīng)的數(shù)字簽名算法b卡片公鑰加密算法標(biāo)識1標(biāo)識卡片公鑰對應(yīng)的加密算法,保留項b卡片公鑰參數(shù)標(biāo)識1用于標(biāo)識橢圓曲線參數(shù),同時確定Ncb卡片公鑰長度1標(biāo)識卡片公鑰的字節(jié)長度b卡片公鑰N?c若卡片公鑰算法標(biāo)識對應(yīng)于SM2,該字段為橢圓曲線上的一個點b待認(rèn)證的靜態(tài)數(shù)據(jù)變長名。在卡片個人化階段,使用發(fā)卡機(jī)構(gòu)私鑰簽名的數(shù)據(jù),保存在卡片中b注1:此為待簽名數(shù)據(jù)。注2:對表12中數(shù)據(jù)進(jìn)行SM2簽名的結(jié)果是兩個大整數(shù)r和s,將字節(jié)串rlIs附著在表12除“待認(rèn)證的靜態(tài)數(shù)據(jù)”外的數(shù)據(jù)之后就形成了用SM2簽名的卡片公鑰證書,證書的格式見表14。注3:認(rèn)證過程的輸入由被AFL標(biāo)識的記錄組成,其后跟有AIP[若AIP被可選的靜態(tài)數(shù)據(jù)認(rèn)證標(biāo)簽列表(標(biāo)簽“9F4A”)標(biāo)識。若靜態(tài)數(shù)據(jù)認(rèn)證標(biāo)簽列表存在,它應(yīng)僅包含標(biāo)識AIP用的標(biāo)簽“82”]。長度(字節(jié))5注冊的應(yīng)用提供商標(biāo)識b1根公鑰索引bJT/T978.6—2015表13(續(xù))長度(字節(jié))NcA+N?+14SM2簽名的發(fā)卡機(jī)構(gòu)公鑰證書數(shù)據(jù),格式見表11bN?+Nic+20SM2簽名的卡片公鑰證書數(shù)據(jù),格式見表14b變長卡片中5.2.8.2根公鑰的獲取5.2.8.3發(fā)卡機(jī)構(gòu)公鑰的獲取終端獲取的發(fā)卡機(jī)構(gòu)證書數(shù)據(jù)見表11。c)檢驗發(fā)卡機(jī)構(gòu)標(biāo)識是否匹配主賬號最左面的3個~8個數(shù)字(允許發(fā)卡機(jī)構(gòu)標(biāo)識在其后補(bǔ)g)準(zhǔn)備表11中前9個數(shù)據(jù)元(即表10數(shù)據(jù));h)使用根公鑰和相應(yīng)的簽名算法按照9.4.3中指明的驗證函數(shù)對表11所定義的數(shù)字簽名進(jìn)行5.2.8.4卡片公鑰的獲取e)準(zhǔn)備表14中的前9個數(shù)據(jù)元以及靜態(tài)數(shù)據(jù)(用于驗證簽名)。靜態(tài)數(shù)據(jù)認(rèn)證標(biāo)簽列表存在,g)使用發(fā)卡機(jī)構(gòu)公鑰和相應(yīng)的發(fā)卡機(jī)構(gòu)簽名算法將9.4.3中指明的驗證函數(shù)對表14的數(shù)字簽表14發(fā)卡機(jī)構(gòu)使用SM2簽名的卡片公鑰證書的格式長度(字節(jié))證書格式1十六進(jìn)制,值為‘14’bJT/T978.6—2015表14(續(xù))長度(字節(jié))應(yīng)用主賬號主賬號(在右邊補(bǔ)上十六進(jìn)制數(shù)‘F')證書失效日期2MMYY,在此日期后,這張證書無效證書序列號3由發(fā)卡機(jī)構(gòu)分配給這張證書的唯一的二進(jìn)制數(shù)b卡片公鑰簽名算法標(biāo)識1標(biāo)識卡片公鑰對應(yīng)的數(shù)字簽名算法b卡片公鑰加密算法標(biāo)識1標(biāo)識卡片公鑰對應(yīng)的加密算法,保留項b卡片公鑰參數(shù)標(biāo)識1用于標(biāo)識橢圓曲線參數(shù),同時確定Nicb卡片公鑰長度1標(biāo)識卡片公鑰的字節(jié)長度b卡片公鑰Nic若卡片公鑰算法標(biāo)識對應(yīng)于SM2,該字段是橢圓曲線上的一個點b數(shù)字簽名N?發(fā)卡機(jī)構(gòu)對表12數(shù)據(jù)計算的SM2簽名rllsba)終端發(fā)出內(nèi)部認(rèn)證(INTERNALAUTHENTICATE)命令,命令中包含由DDOL指定的數(shù)據(jù)元式見表17。表15需簽名的動態(tài)應(yīng)用數(shù)據(jù)長度(字節(jié))簽名的數(shù)據(jù)格式1值為‘15’表示用SM2簽名b卡片動態(tài)數(shù)據(jù)長度1標(biāo)識卡片動態(tài)數(shù)據(jù)的字節(jié)長度Lopb卡片動態(tài)數(shù)據(jù)由卡片生成和/或存儲在卡片上的動態(tài)數(shù)據(jù)終端動態(tài)數(shù)據(jù)變長由DDOL指定的數(shù)據(jù)元連接而成注1:此為待簽名數(shù)據(jù)。注2:卡片動態(tài)數(shù)據(jù)的最左邊的3個~9個字節(jié)由一個字節(jié)長的卡片動態(tài)數(shù)字長度后面跟隨的2個~8個卡片動態(tài)數(shù)字的值(標(biāo)簽“9F4C”,2個~8個二進(jìn)制字節(jié))組成。注3:卡片動態(tài)數(shù)字是由一個由卡片生成的,隨時間而變的參數(shù),宜使用ATC作為卡片動態(tài)數(shù)字。長度(字節(jié))Nic+Lp+2SM2簽名動態(tài)應(yīng)用數(shù)據(jù),格式見表17b變長DDOLbJT/T978.6—2015終端獲取的簽名動態(tài)應(yīng)用數(shù)據(jù)的格式見表17,包括被簽名的明文數(shù)據(jù)及數(shù)字簽名。終端使用卡片的公鑰驗證動態(tài)應(yīng)用數(shù)據(jù)的簽名,若動態(tài)數(shù)據(jù)認(rèn)證成功,表17中的卡片動態(tài)數(shù)據(jù)中所包含的卡片動態(tài)a)獲取并解析表17所示的經(jīng)過發(fā)卡機(jī)構(gòu)簽名的動態(tài)數(shù)據(jù)。若失敗,則靜態(tài)數(shù)據(jù)認(rèn)證失??;c)準(zhǔn)備表17中的前3個數(shù)據(jù)元(即從簽名數(shù)據(jù)格式直到卡片動態(tài)數(shù)據(jù))及DDOL中指定的數(shù)據(jù)元(即表15數(shù)據(jù))用于驗證簽名;d)使用卡片公鑰和相應(yīng)的卡片簽名算法將9.4.3中指明的驗證函數(shù)對表17的數(shù)字簽名進(jìn)行驗e)以上所有的檢驗都成功,動態(tài)數(shù)據(jù)認(rèn)證成功。終端獲取卡片動態(tài)數(shù)據(jù)中所包含的卡片動態(tài)數(shù)表17卡片使用SM2簽名的動態(tài)應(yīng)用數(shù)據(jù)的格式長度(字節(jié))簽名的數(shù)據(jù)格式1十六進(jìn)制,值為‘15b卡片動態(tài)數(shù)據(jù)長度1標(biāo)識卡片動態(tài)數(shù)據(jù)的字節(jié)長度Lppb卡片動態(tài)數(shù)據(jù)由卡片生成和/或存儲在卡片上的動態(tài)數(shù)據(jù)數(shù)字簽名Nc卡片對表15中數(shù)據(jù)計算的SM2簽名rllsb5.3.1概述卡片生成應(yīng)用密文(TC、ARQC或AAC),以及發(fā)卡機(jī)構(gòu)生成授權(quán)響應(yīng)密文(ARPC)并由卡片校驗的方法。5.3.2應(yīng)用密文產(chǎn)生5.3.2.1數(shù)據(jù)源選擇一個應(yīng)用密文由基于以下數(shù)據(jù)生成的報文鑒別碼組成:a)引用卡片的DOL并通過生成應(yīng)用密文(GENERATEAC)命令或其他命令從終端傳輸?shù)娇ㄆ琤)卡片內(nèi)部訪問的數(shù)據(jù)。數(shù)據(jù)源的選擇需包含在應(yīng)用密文生成中見JT/T978.2,最小數(shù)據(jù)元見表18;可選的應(yīng)用密文生成數(shù)據(jù)源見表19。表18建議的應(yīng)用密文生成中使用的最小數(shù)據(jù)集值授權(quán)金額(數(shù)字)終端其他金額(數(shù)字)終端終端國家代碼終端終端驗證結(jié)果終端JT/T978.6—2015表18(續(xù))值交易貨幣代碼終端交易日期終端交易類型終端不可預(yù)知數(shù)終端應(yīng)用交互特征卡片應(yīng)用交易計數(shù)器卡片表19可選的應(yīng)用密文生成數(shù)據(jù)源值卡片驗證結(jié)果卡片5.3.2.2國際算法應(yīng)用密文生成應(yīng)用密文生成的方法是以一個唯一的16字節(jié)的卡片應(yīng)用密文(AC)子密鑰MKAc以及按5.3.2.1節(jié)的應(yīng)用密文過程密鑰SKAc,使用5.1.6.1中指明的過程密鑰分散函數(shù);b)使用上一步分散得到的16字節(jié)的應(yīng)用密文過程密鑰并將9.1.2中指明的MAC算法應(yīng)用到經(jīng)選擇的數(shù)據(jù)來生成8字節(jié)的應(yīng)用密文。使用一個唯一的16字節(jié)卡片應(yīng)用密文(AC)子密鑰MKAc,和5.3.2.1描述的數(shù)據(jù)源作為輸入,按以下流程計算得到8字節(jié)的應(yīng)用密文:a)以卡片應(yīng)用密文(AC)子密鑰MKAc和兩字節(jié)的卡片應(yīng)用交易計數(shù)器作為輸入,使用5.1.6描b)終端將CDOL中指定的終端數(shù)據(jù)通過生成應(yīng)用密文命令傳送給c)根據(jù)卡片風(fēng)險管理的結(jié)果,卡片決定返回的密文類型為TC、AAC或ARQC。生成密文的數(shù)1)交易證書(TC)哈希結(jié)果(若存在);2)生成應(yīng)用密文命令中送進(jìn)卡片的數(shù)據(jù)。不包括TC哈希結(jié)果;e)若最后一塊數(shù)據(jù)塊的長度為16字節(jié),后面補(bǔ)16字節(jié)數(shù)據(jù)塊:“80000000000000000000000000000000”,若最后一塊;數(shù)據(jù)塊的長度小于16字節(jié),后面補(bǔ)一個字節(jié)80,若仍然不夠16字節(jié),補(bǔ)00直到16字節(jié);f)見圖6,按照9.2.2中指明的MAC算法,使用過程密鑰SKAc計算生成應(yīng)用密文(TC、AAC);g)取上一步計算結(jié)果的左邊8字節(jié),得到8字節(jié)的密文。JT/T978.6—2015I?=D?I? 取最左邊8字節(jié)說明:5.3.3國際算法發(fā)卡機(jī)構(gòu)認(rèn)證生成8字節(jié)的授權(quán)響應(yīng)密文ARPC的方法是將16字節(jié)的應(yīng)用密文過程密鑰SKAc按照附錄A.1.1指明的對稱加密算法對8字節(jié)長的由卡片按5.3.2.2描述的方法生成的ARQC和2字節(jié)的授權(quán)響應(yīng)碼ARC進(jìn)行加密:a)在2字節(jié)的ARC的后面補(bǔ)上6個‘00’字節(jié)來獲得一個8字節(jié)的數(shù):X:=(ARCII‘00’I‘00II‘00'II‘00’II‘00’lI‘00’);c)計算ARPC:=ALG(SKAc)[Y]。5.3.4國密算法發(fā)卡機(jī)構(gòu)認(rèn)證生成8字節(jié)的授權(quán)響應(yīng)密文ARPC的方法是將16字節(jié)的應(yīng)用密文過程密鑰SKAc按照附錄A.1.2指明的對稱加密算法對5.3.2.3生成的8字節(jié)長的ARQC和2字節(jié)的授權(quán)響應(yīng)碼ARC進(jìn)行加密,:a)在2字節(jié)的ARC的后面補(bǔ)上6個‘00’字節(jié)來獲得一個8字節(jié)的數(shù):X:=(ARCII*00’I‘00'II‘00’II‘00'II‘00'II‘00’);b)計算Y:=ARQC+X;c)計算ARPCO:將Y左對齊后面補(bǔ)8個字節(jié)00形成D;D:=YII‘00'II‘00’II*00’lI‘00'II‘00'II*00’lI*00'II‘00’。JT/T978.6—2015基于16字節(jié)分組加密算法獲得16字節(jié)ARPC0:ARPC0:=SM4(SKAC)[D];d)取ARPCO的左邊8字節(jié)得到ARPC。ARPC的生成方法見圖7。0一取最左邊8字節(jié)→ARPC5.4.1密鑰說明5.4.1.1概述5.4.1.2應(yīng)用開通密鑰應(yīng)用開通密鑰用于發(fā)卡機(jī)構(gòu)在指定的擴(kuò)展應(yīng)用的擴(kuò)展應(yīng)用文件中新增應(yīng)用記錄,該記錄新增成功后,即意味著該應(yīng)用的開通。應(yīng)用開通密鑰由發(fā)卡機(jī)構(gòu)在個人化時創(chuàng)建,每個擴(kuò)展應(yīng)用文件對應(yīng)一個擴(kuò)展應(yīng)用開通密鑰,每個擴(kuò)展應(yīng)用的開通都由此密鑰以安全報文的方式保護(hù),卡片的應(yīng)用開通密鑰由同一個應(yīng)用開通主密鑰分散得到。5.4.1.3擴(kuò)展應(yīng)用管理密鑰擴(kuò)展應(yīng)用管理密鑰用于對指定的擴(kuò)展應(yīng)用擴(kuò)展文件中的每一條記錄進(jìn)行保護(hù)。擴(kuò)展應(yīng)用管理密鑰分為互聯(lián)互通密鑰和地區(qū)擴(kuò)展應(yīng)用管理密鑰兩類,互聯(lián)互通密鑰用于保護(hù)全國范圍內(nèi)相關(guān)的交通行業(yè)信息,地區(qū)擴(kuò)展應(yīng)用管理密鑰用于保護(hù)本地區(qū)的相關(guān)交通行業(yè)信息。擴(kuò)展應(yīng)用管理密鑰在地區(qū)使用時應(yīng)存放于SAM卡中,相關(guān)安全機(jī)制見本部分第9章。應(yīng)用開通密鑰可由發(fā)卡機(jī)構(gòu)自行生成和管理,互聯(lián)互通密鑰應(yīng)由密鑰管理系統(tǒng)統(tǒng)一生成和管理,地區(qū)擴(kuò)展應(yīng)用密鑰可由發(fā)卡機(jī)構(gòu)或相關(guān)交通行業(yè)方生成和管理。密鑰管理系統(tǒng)生成指定的互聯(lián)互通主密鑰,該密鑰同時存放在交通行業(yè)相關(guān)終端的互聯(lián)互通SAM卡中。各發(fā)卡機(jī)構(gòu)的互聯(lián)互通密鑰由互聯(lián)互通密鑰主密鑰分散生成,各發(fā)卡機(jī)構(gòu)再利用本發(fā)卡機(jī)構(gòu)的互聯(lián)互通密鑰分散得到所發(fā)行卡片的互聯(lián)互通密鑰并灌裝至用戶卡中。5.4.2安全機(jī)制終端應(yīng)使用新增記錄(APPENDRECORD)指令在指定擴(kuò)展應(yīng)用的擴(kuò)展應(yīng)用文件中新增應(yīng)用記錄,即開通新的擴(kuò)展應(yīng)用。使用APPENDRECORD命令在擴(kuò)展應(yīng)用文件中新增應(yīng)用記錄,使用更新應(yīng)用數(shù)JT/T978.6—2015MAC的計算方法見5.5中關(guān)于報文鑒別碼的描述。終端在發(fā)送APPENDRECORD和UPDATECAPP使用的報文格式見JT/T978.3的定義。報文所涉及的命令的數(shù)據(jù)域沒有將BER-TLV編碼用于5.5.3使用的密鑰在安全報文計算中用到的過程密鑰應(yīng)按照5.1.6中描述的流程來生成。5.5.4國際算法報文MAC的計算a)MAC計算使用9.1.2中描述的機(jī)制;以及命令數(shù)據(jù)(若存在);c)在本條中MAC長度為4,在按上面描述的方法計算得到8個字節(jié)的結(jié)果后,取其中最左面的(最高)4字節(jié)來得到MAC。5.5.5國密算法報文MAC的計算a)MAC計算使用9.2.2中描述的機(jī)制;以及命令數(shù)據(jù)(若存在);c)在本條中MAC長度為4,在按上面描述的方法計算得到16個字節(jié)的結(jié)果后,取其中最左面的(最高)4字節(jié)來得到MAC。對明文/加密命令數(shù)據(jù)域的加/解密使用9.1.1中描述的機(jī)制。對明文/加密命令數(shù)據(jù)域的加/解密使用9.1.1中描述的機(jī)制。6.1密鑰程見6.1.2。表20卡片中存儲的電子錢包的密鑰發(fā)卡機(jī)構(gòu)終端(PSAM)用于消費(fèi)交易的密鑰消費(fèi)主密鑰(MPK)消費(fèi)子密鑰(DPK),由MPK用應(yīng)用主賬號推導(dǎo)獲得消費(fèi)主密鑰(MPK)用于圈存交易的密鑰圈存主密鑰(MLK)圈存子密鑰(DLK),由MLK用應(yīng)用主賬號推導(dǎo)獲得—用于圈提交易的密鑰圈提主密鑰(MULK)圈提子密鑰(DULK),由MULK用應(yīng)用主賬號推導(dǎo)獲得消費(fèi)交易中用于產(chǎn)生TAC的密鑰TAC主密鑰(MTK)TAC子密鑰(DTK),由MTK用應(yīng)用主賬號推導(dǎo)獲得—用于應(yīng)用維護(hù)功能的密鑰應(yīng)用主控子密鑰(DAMK),由MAMK用應(yīng)用主賬號推導(dǎo)獲得應(yīng)用解鎖密鑰應(yīng)用解鎖主密鑰應(yīng)用主控解鎖子密鑰(DUBK)由MUBK用應(yīng)用主賬號推導(dǎo)獲得—應(yīng)用鎖定密鑰應(yīng)用鎖定主密鑰應(yīng)用主控鎖定子密鑰(DBK)由MBK用應(yīng)用主賬號推導(dǎo)獲得應(yīng)用鎖定主密鑰(MBK)6.1.2.1.1左半部分的推導(dǎo)流程a)將應(yīng)用主賬號的最右16個數(shù)字作為輸入數(shù)據(jù);b)將MPK作為加密密鑰;JT/T978.6—2015輸入數(shù)據(jù)輸入數(shù)據(jù)MPKMPKMPKDPK左半部分DESDESDES圖8國際算法的DPK左半部分推導(dǎo)流程6.1.2.1.2右半部分的推導(dǎo)流程國際算法的雙倍長DPK右半部分的推導(dǎo)流程如下:a)將應(yīng)用主賬號的最右16個數(shù)字的求反作為輸入數(shù)據(jù);b)將MPK作為加密密鑰;c)國際算法的DPK右半部分推導(dǎo)流程見圖9,用MPK對輸入數(shù)據(jù)進(jìn)行3DES運(yùn)算。輸入數(shù)據(jù)輸入數(shù)據(jù)MPKMPKMPK(左半部分)DESDES(解密)DES(加密)DPK右半部分圖9國際算法的DPK右半部分推導(dǎo)流程6.1.2.2國密算法子密鑰推導(dǎo)流程國密算法的子密鑰推導(dǎo)流程如下:a)取8字節(jié)作為分散因子;b)輸入數(shù)據(jù)由8字節(jié)分散因子加上分散因子取反組成;c)國密算法的DPK推導(dǎo)流程見圖10,用主密鑰對輸入數(shù)據(jù)進(jìn)行SM4加密運(yùn)算得到16字節(jié)結(jié)果作為子密鑰。6.1.3.1國際算法過程密鑰的產(chǎn)生流程國際算法的過程密鑰是在交易過程中用可變數(shù)據(jù)產(chǎn)生的單倍長密鑰,過程密鑰產(chǎn)生后只能在某過JT/T978.6—2015程/交易中使用一次,國密算法的過程密鑰產(chǎn)生流程見圖11。輸入數(shù)據(jù)主密鑰DPK圖10國密算法的DPK推導(dǎo)流程輸入數(shù)據(jù)輸入數(shù)據(jù)DESDES過程密鑰DPKDPK圖11國際算法的過程密鑰產(chǎn)生流程6.1.3.2國密算法過程密鑰的產(chǎn)生流程國密算法的過程密鑰是在交易過程中用可變數(shù)據(jù)產(chǎn)生的十六字節(jié)長密鑰。過程密鑰產(chǎn)生后只能在某過程/交易中使用一次,過程密鑰的產(chǎn)生流程如下:a)國際算法中定義的8字節(jié)輸入數(shù)據(jù)內(nèi)容保持不變,將其在右側(cè)以十六進(jìn)制“0x0000000000000000”的方式補(bǔ)齊,形成16字節(jié)數(shù)據(jù)作為SM4的輸入(對原輸入數(shù)據(jù)已經(jīng)為16字節(jié)的交易,不需要補(bǔ)齊);b)國密算法的過程密鑰產(chǎn)生流程見圖12,用16字節(jié)子密鑰,經(jīng)過一次SM4加密產(chǎn)生16字節(jié)過輸入數(shù)據(jù)輸入數(shù)據(jù)過程密鑰子密鑰圖12國密算法的過程密鑰產(chǎn)生流程6.2交易MAC/TAC計算流程6.2.1國際算法MAC/TAC的計算流程國際算法產(chǎn)生MAC/TAC的單倍長DES計算流程如下:JT/T978.6—2015b)將所有的輸入數(shù)據(jù)按指定順序串聯(lián)成一個數(shù)據(jù)塊;下的字節(jié)組成一個長度小于等于8字節(jié)的最后一塊數(shù)據(jù)塊;d)若最后一個數(shù)據(jù)塊長度為8字節(jié),則在此數(shù)據(jù)塊后附加一個8字節(jié)長的數(shù)據(jù)塊,附加的數(shù)據(jù)塊為十六進(jìn)制的“0x8000000000000000”。若最后一個數(shù)據(jù)塊長度小于8字節(jié),則該數(shù)據(jù)塊的最后填補(bǔ)一個十六進(jìn)制‘80’。若填補(bǔ)之后的數(shù)據(jù)塊長度等于8字節(jié),則跳至第五步。若填補(bǔ)之后的數(shù)據(jù)塊長度仍小于8字節(jié),則在數(shù)據(jù)塊后填補(bǔ)十六進(jìn)制‘00’至數(shù)據(jù)塊長度為8e)MAC的產(chǎn)生是通過上述步驟產(chǎn)生的數(shù)據(jù)塊組,由過程密鑰進(jìn)行加密運(yùn)算,過程密鑰的產(chǎn)生流程見圖11。TAC的產(chǎn)生是通過上述步驟產(chǎn)生的數(shù)據(jù)塊組,由DTK密鑰左右8位字節(jié)進(jìn)行異或運(yùn)算的結(jié)果進(jìn)行加密運(yùn)算。MAC/TAC的計算流程見圖13;f)最終值的左4字節(jié)為MAC/TAC。DESMACDESDESKMA十0——輸出;KMA——MAC過程密鑰A;圖13國際算法的MAC/TAC計算流程國密算法產(chǎn)生MAC/TAC的SM4計算流程如下:a)將一個16個字節(jié)長的初始值設(shè)定為十六進(jìn)制的“0x000000000000000000000000b)將所有的輸入數(shù)據(jù)按指定順序串聯(lián)成一個數(shù)據(jù)塊;c)將串聯(lián)成的數(shù)據(jù)塊分割為16字節(jié)長的數(shù)據(jù)塊組,標(biāo)識為D?、D?、D?與D?等。分割到最后,余下的字節(jié)組成一個長度小于等于8字節(jié)的最后一塊數(shù)據(jù)塊;d)若最后一個數(shù)據(jù)塊長度為16字節(jié),則在此數(shù)據(jù)塊后附加一個16字節(jié)長的數(shù)據(jù)塊,附加的數(shù)據(jù)塊為十六進(jìn)制的“0x80000000000000000000000000000000”。若最后一個數(shù)據(jù)JT/T978.6—2015塊長度小于16字節(jié),則該數(shù)據(jù)塊的最后填補(bǔ)一個十六進(jìn)制‘80’。若填補(bǔ)之后的數(shù)據(jù)塊長度等于16字節(jié),則跳至第五步。若填補(bǔ)之后的數(shù)據(jù)塊長度仍小于16字節(jié),則在數(shù)據(jù)塊后填補(bǔ)十e)MAC的產(chǎn)生是通過上述步驟產(chǎn)生的數(shù)據(jù)塊組,由過程密鑰進(jìn)行加密運(yùn)算,過程密鑰的產(chǎn)生流程見圖12。TAC的產(chǎn)生是通過上述方法產(chǎn)生的數(shù)據(jù)塊組,由DTK直接進(jìn)行加密運(yùn)算。MAC/TAC的計算流程見圖14;f)將16字節(jié)運(yùn)算結(jié)果按8字節(jié)分塊做異或運(yùn)算,得到8字節(jié)數(shù)據(jù),取高4字節(jié)得到認(rèn)證碼初始值初始值十MAC?O十KMAKMAI?=D?十十KMA——MAC過程密鑰A;KMB——MAC過程密鑰B;圖14國密算法的MAC/TAC計算流程6.3安全報文計算流程6.3.1概述安全報文通過報文鑒別碼(MAC)來保障數(shù)據(jù)的完整性,通過對數(shù)據(jù)域的加密來保障數(shù)據(jù)的機(jī)密性。6.3.2報文格式使用的報文格式見JT/T978.3的定義。報文所涉及的命令的數(shù)據(jù)域沒有將BER-TLV編碼用于安全報文,使用安全報文的命令的發(fā)送者及當(dāng)前被選擇的應(yīng)用應(yīng)知道數(shù)據(jù)域中包含的數(shù)據(jù)對象以及這些數(shù)據(jù)對象的長度。根據(jù)GB/T16649.4,符合此格式的安全報文是通過將命令的類型字節(jié)的低半字節(jié)設(shè)置為‘4’明確指定的。當(dāng)應(yīng)用基于電子錢包模式時,卡中的FCI表明某個命令的數(shù)據(jù)域的加密傳輸方式。6.3.3使用的密鑰在安全報文計算中,根據(jù)發(fā)卡機(jī)構(gòu)需求來決定是否使用過程密鑰。如使用過程密鑰,應(yīng)按照6.1.4JT/T978.6—2015中描述的流程來生成。6.3.4國際算法報文MAC的計算流程產(chǎn)生MAC的單重或三重DES計算流程如下:b)按照順序?qū)⒁韵聰?shù)據(jù)串聯(lián)在一起形成數(shù)據(jù)塊:2)在JT/T978.2中定義的數(shù)據(jù);3)在命令的數(shù)據(jù)域中(若存在)包含明文或加密的數(shù)據(jù)。(例:若要更改個人識別碼,加密后的個人識別碼數(shù)據(jù)塊放在命令數(shù)據(jù)域中傳輸)。c)將該數(shù)據(jù)塊分成8字節(jié)為單位的數(shù)據(jù)塊,標(biāo)號為D?、D?、D?和D?等。最后的數(shù)據(jù)塊有可能是1個~8個字節(jié);d)根據(jù)數(shù)據(jù)塊長度進(jìn)行補(bǔ)位:1)最后的數(shù)據(jù)塊長度是8字節(jié)的話,則在其后加上十六進(jìn)制數(shù)字“0x800000000000002)最后的數(shù)據(jù)塊長度不足8字節(jié),則在其后加上十六進(jìn)制數(shù)字‘80’,若達(dá)到8字節(jié)長度,則轉(zhuǎn)入步驟e);否則在其后加入十六進(jìn)制數(shù)字‘00’直到長度達(dá)到8字節(jié)。e)對這些數(shù)據(jù)塊使用MAC密鑰進(jìn)行加密,若安全報文傳送支持單長度密鑰,則按照圖15的方式來產(chǎn)生MAC(根據(jù)在步驟b)中產(chǎn)生的數(shù)據(jù)塊長度的不同,確定計算的步數(shù)];f)最終得到從計算結(jié)果左側(cè)取得的4字節(jié)長度的MAC;安全報文傳送的處理支持雙長度密鑰,按照圖16的方式來產(chǎn)生MAC,(根據(jù)步驟b)產(chǎn)生的數(shù)據(jù)塊十十D?D?D?MAC十DESDESDESKMA→KMAO十0——輸出圖15國際算法的單長度密鑰MAC計算流程JT/T978.6—2015DES十MACDESDESDESDES(加密)初始值KMA十十十 KMA——MAC密鑰A;0——輸出; 個人識別碼數(shù)據(jù)塊放在命令數(shù)據(jù)域中傳輸)。是1個~16個字節(jié);00000000000000000000”,轉(zhuǎn)到步驟e);JT/T978.6—2015初始值初始值十??O十D(加密)KMA-KMA—KMA→KMB-十十圖17國密算法的MAC計算流程6.3.6國際算法報文私密性6.3.6.1數(shù)據(jù)加密計算流程數(shù)據(jù)加密計算流程如下:a)用LD表示明文數(shù)據(jù)的長度,在明文數(shù)據(jù)前加上LD產(chǎn)生新的數(shù)據(jù)塊;b)將流程a)中生成的數(shù)據(jù)塊分解成8字節(jié)數(shù)據(jù)塊,標(biāo)號為D?、D?、D?和D?等。最后一個數(shù)據(jù)塊長度有可能不足8字節(jié);長度達(dá)到8字節(jié);d)每一個數(shù)據(jù)塊使用9.1.1中描述的數(shù)據(jù)加密方式加密:1)采用單長度數(shù)據(jù)加密密鑰,數(shù)據(jù)塊的加密流程見圖18(使用數(shù)據(jù)加密密鑰A進(jìn)行加密);2)采用雙長度數(shù)據(jù)加密密鑰,數(shù)據(jù)塊的加密流程見圖19(使用數(shù)據(jù)加密密鑰A和B來進(jìn)行加密);e)計算結(jié)束后,所有加密后的數(shù)據(jù)塊依照原順序連接在一起(加密后的D?、加密后的D?等)。并將結(jié)果數(shù)據(jù)塊插入到命令數(shù)據(jù)域中。JT/T978.6—2015KDADES加密后的DN0——輸出。0——輸出。DNDNDESKDBDES(加密)KDA加密后的DNDES(加密)(解密)KDA KDB——數(shù)據(jù)加密密鑰B。6.3.6.2數(shù)據(jù)解密計算流程a)將命令數(shù)據(jù)域中的數(shù)據(jù)塊分解成8字節(jié)長的數(shù)據(jù)塊,標(biāo)號為D?、D?、D?和D?等;1)采用單長度數(shù)據(jù)加密密鑰,數(shù)據(jù)塊解密流程見圖20(使用數(shù)據(jù)加密密鑰A進(jìn)行解密);2)采用雙長度數(shù)據(jù)加密密鑰,數(shù)據(jù)塊的解密流程見圖21(使用數(shù)據(jù)加密密鑰A和B來進(jìn)行解密)JT/T978.6—2015b)計算結(jié)束后,所有解密后的數(shù)據(jù)塊依照順序(解密后的D、解密后的D?等)鏈接在一起。數(shù)據(jù)塊由LD、明文數(shù)據(jù)、填充字符(若在6.3.6.1描述的加密過程中增加的話)組成;DsDES0——輸出。0——輸出;KDA——數(shù)據(jù)加密密鑰A;圖20國際算法的單長度密鑰的數(shù)據(jù)解密流程DNDNKDBDESDESDES(解密)KDAKDA——數(shù)據(jù)加密密鑰A;KDB——數(shù)據(jù)加密密鑰B。圖21國際算法的雙長度密鑰的數(shù)據(jù)解密流程JT/T978.6—20156.3.7.1數(shù)據(jù)加密計算流程塊長度有可能不足16字節(jié);c)最后(或唯一)的數(shù)據(jù)塊長度等于16字節(jié),轉(zhuǎn)入步驟d);若不足16字節(jié),在右邊添加十六進(jìn)制直到長度達(dá)到16字節(jié);d)每一個數(shù)據(jù)塊使用9.2.1中描述的數(shù)據(jù)加密方式加密,數(shù)據(jù)塊的加密流程見圖22;DNKDBKDA加密后的DN6.3.7.2數(shù)據(jù)解密計算a)將命令數(shù)據(jù)域中的數(shù)據(jù)塊分解成16字節(jié)長的數(shù)據(jù)塊,標(biāo)號為D?、D?、D?和D?等。數(shù)據(jù)塊的解密流程見圖23;b)計算結(jié)束后,依照原順序連接所有解密后的數(shù)據(jù)塊(解密后的D?、解密后的D?等)。數(shù)據(jù)塊由JT/T978.6—2015c)LD表示明文數(shù)據(jù)的長度,用來恢復(fù)明文數(shù)據(jù)。KDBKDAKDA解密后的DN0——輸出;KDA——數(shù)據(jù)加密密鑰A;KDB——數(shù)據(jù)加密密鑰B。圖23國密算法的數(shù)據(jù)解密流程7卡片安全7.1共存應(yīng)用不同應(yīng)用間應(yīng)設(shè)計一道“防火墻”以防止跨過應(yīng)用進(jìn)行非法訪問。包括所有不在本規(guī)范定義中的應(yīng)用和其他的惡意應(yīng)用。不同應(yīng)用不應(yīng)與卡中共存的個人化要求和應(yīng)用規(guī)則發(fā)生沖突。7.2密鑰的獨(dú)立性特定功能(如:AC密鑰)的加密/解密密鑰不能被任何其他功能所使用,包括保存在卡片中的密鑰7.3卡片內(nèi)部安全體系7.3.1卡片內(nèi)部安全目標(biāo)為了保證卡片操作系統(tǒng)使用合適的安全機(jī)制,并在卡片內(nèi)部為所有數(shù)據(jù)及處理過程提供安全性和JT/T978.6—20157.3.2.1一般要求b)對每個EF的存取采用指定的訪問條件。7.3.2.2安全域應(yīng)通過執(zhí)行選擇(SELECT)和獲取處理選項(GPO)命令實現(xiàn)安全域。這些命令建立描述安全c)應(yīng)使用選擇(SELECT)命令訪問應(yīng)用管理數(shù)據(jù)(AMD),AMD指定能夠被后續(xù)指令訪問的所有e)發(fā)卡機(jī)構(gòu)應(yīng)限制在交易期間被存取的資源,應(yīng)用管理數(shù)據(jù)的初始化狀態(tài)(在個人化階段被定7.3.2.3基本文件(EF)訪問條件信或VERIFY命令(或者包含二者)作為訪問條件的文件只有在這些條件都滿足以后被請求的訪問才7.3.3.1概述文件控制信息(FCI)附屬于每個ADF或AEF,描述了文件的特性。文件控制信息在個人化期間為7.3.3.2應(yīng)用管理數(shù)據(jù)7.3.3.2.1安全域的定義數(shù));7.3.3.2.2安全域定義的資源類型JT/T978.6—2015a)數(shù)據(jù)資源(見7.3.3.3.);b)可執(zhí)行代碼資源。數(shù)據(jù)資源可以是以下列出的任意一個:a)數(shù)據(jù)文件及其記錄;7.3.3.3.2數(shù)據(jù)標(biāo)識數(shù)據(jù)資源是指文件內(nèi)的數(shù)據(jù)元,由卡片內(nèi)部的唯一標(biāo)識符所識別。文件由卡片內(nèi)部唯一的文件標(biāo)識符所標(biāo)識。不包含在文件內(nèi)的數(shù)據(jù)元則由一個唯一數(shù)據(jù)標(biāo)識所標(biāo)識。運(yùn)行應(yīng)用所需的任何數(shù)據(jù)資源a)對包含了數(shù)據(jù)元(可由應(yīng)用管理數(shù)據(jù)定義的命令訪問)的文件而言,SFI(在應(yīng)用內(nèi)被唯一標(biāo)識,并且可從外部被引用)與文件標(biāo)識(在卡片內(nèi)被唯一標(biāo)識,并且可從內(nèi)部被引用系被維護(hù)在應(yīng)用管理數(shù)據(jù)內(nèi);b)對未被包含在文件內(nèi)的數(shù)據(jù)對象[可由應(yīng)用管理數(shù)據(jù)定義的命令如取數(shù)據(jù)(GETDATA)命令訪問]而言,數(shù)據(jù)對象標(biāo)簽(可從外部被引用)與唯一數(shù)據(jù)標(biāo)識(在卡片內(nèi)部,并且可從內(nèi)部被引用)之間的關(guān)系被維護(hù)在應(yīng)用管理數(shù)據(jù)內(nèi)。密鑰不應(yīng)從外部被引用。對保存在文件內(nèi)的密鑰,應(yīng)用管理數(shù)據(jù)維護(hù)了在執(zhí)行應(yīng)用管理數(shù)據(jù)定義理數(shù)據(jù)維護(hù)了在執(zhí)行應(yīng)用管理數(shù)據(jù)定義的命令和加密算法時定位密鑰所必需的卡片內(nèi)部的唯一密鑰標(biāo)識。PIN/口令只能從外部通過應(yīng)用管理數(shù)據(jù)和安全通信共同定義的命令被引用。對保存在文件內(nèi)的PIN或者口令而言,應(yīng)用管理數(shù)據(jù)維護(hù)了在執(zhí)行應(yīng)用管理數(shù)據(jù)定義的命令和加密算法時定位PIN/口令所必需的文件標(biāo)識和指向PIN/口令的引用;對不保存在文件內(nèi)的PIN/口令而言,應(yīng)用管理數(shù)據(jù)維護(hù)了在執(zhí)行應(yīng)用管理數(shù)據(jù)定義的命令和加密算法時定位PIN/口令所必需的卡片內(nèi)部的唯一PIN/口令標(biāo)識??蓤?zhí)行代碼資源包括:b)加密算法。命令資源包括CLA和INS字節(jié),操作系統(tǒng)用他們來查找命令的位置。命令資源項包括了命令訪問7.3.3.3.7算法標(biāo)識算法資源建立了為應(yīng)用而定義的算法標(biāo)識,與操作系統(tǒng)用來定位可執(zhí)行代碼的實際算法引用之間的聯(lián)系。7.3.4文件控制參數(shù)每個基本文件在其文件控制信息中包含一個文件控制參數(shù)(FCP),它保存了同文件的訪問條件相關(guān)的附加信息。該信息在個人化期間被放在卡片內(nèi),并且同保存在ADF的文件控制信息內(nèi)的應(yīng)用管理數(shù)據(jù)一起,由卡片操作系統(tǒng)用于建立應(yīng)用的安全域?;疚募脑L問條件見表21。JT/T978.6—2015表21基本文件的訪問條件是/否是/否是/否是/否安全通信是/否是/否校驗(不可用)是/否數(shù)據(jù)加密注1:讀取一欄表示使用讀取命令,如讀記錄(READRECORD)或取數(shù)據(jù)(GETDATA)命令,存取基本文件內(nèi)部的數(shù)文件內(nèi)部的數(shù)據(jù)。注2:文件控制參數(shù)指出是否在發(fā)卡機(jī)構(gòu)腳本修改記錄(UPDATERECORD)命令中以加密或者明文格式傳送數(shù)據(jù)。注3:文件控制參數(shù)也作為一個組件用于實現(xiàn)應(yīng)用管理數(shù)據(jù)的邏輯結(jié)構(gòu)。a)可被設(shè)置數(shù)據(jù)(PUTDATA)命令與安全通信改變的數(shù)據(jù),以及可被取數(shù)據(jù)(GETDATA)命令3)連續(xù)脫機(jī)交易限制數(shù)(國際一國家);4)連續(xù)脫機(jī)交易限制數(shù)(國際);6)累計交易總額限制(兩種貨幣);c)可被取數(shù)據(jù)(GETDATA)命令讀取的數(shù)據(jù),以及可被PIN修改/解鎖(PINCHANGE/UN-8終端安全8.1.1.1通用數(shù)據(jù)的安全要求JT/T978.6—20158.1.1.2敏感數(shù)據(jù)的安全要求8.2.1.1概述8.2.1.2物理安全性b)設(shè)備的包裝不能采用普通的易復(fù)制的材料;e)對交換敏感數(shù)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論