本發(fā)明涉及智能卡領(lǐng)域,尤其涉及一種脫機認證數(shù)據(jù)的個人化方法及個人化設(shè)備。
背景技術(shù):
隨著電子技術(shù)的發(fā)展,智能卡憑借其存儲信息量大和安全性高的優(yōu)勢,廣泛應(yīng)用于金融、交通、通訊、商業(yè)、教育、醫(yī)療、社保和旅游娛樂等多個行業(yè)領(lǐng)域。
目前,智能卡中靜態(tài)數(shù)據(jù)被惡意篡改,信息被盜取,卡片被復制的事情時有發(fā)生,人們使用是智能卡的安全問題得不到保障,嚴重影響了智能卡用戶的財產(chǎn)安全,為解決以上問題需進行靜態(tài)數(shù)據(jù)認證或者動態(tài)數(shù)據(jù)認證,但是現(xiàn)有技術(shù)中靜態(tài)數(shù)據(jù)認證或者動態(tài)數(shù)據(jù)認證過程中需要的脫機認證數(shù)據(jù)的個人化過程比較繁瑣,且個人化過程中需要人為參與,容易出現(xiàn)人為錯誤,造成個人化數(shù)據(jù)不準確,并且個人化過程效率低下。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是為了解決現(xiàn)有技術(shù)中存在的不足,提供了一種脫機認證數(shù)據(jù)的個人化方法及個人化設(shè)備。
本發(fā)明提供一種脫機認證數(shù)據(jù)的個人化方法,包括:
步驟s1、個人化設(shè)備確定當前操作的卡片,并獲取所述當前操作的卡片的靜態(tài)數(shù)據(jù),根據(jù)預設(shè)格式組織包含靜態(tài)數(shù)據(jù)的待簽名數(shù)據(jù);
步驟s2、個人化設(shè)備生成隨機數(shù),使用發(fā)卡行私鑰對隨機數(shù)和待簽名數(shù)據(jù)進行簽名得到數(shù)字簽名;根據(jù)數(shù)字簽名以及待簽名數(shù)據(jù)中除去靜態(tài)數(shù)據(jù)的其余數(shù)據(jù)生成簽名數(shù)據(jù);
步驟s3、個人化設(shè)備根據(jù)預設(shè)數(shù)據(jù)分組標識符和簽名數(shù)據(jù)組合為數(shù)據(jù)分組;根據(jù)數(shù)據(jù)分組創(chuàng)建個人化指令,并將個人化指令寫入個人化文件;
當個人化文件完成時,個人化方法還包括:個人化設(shè)備選擇卡片的主安全域,打開安全通道,并將個人化文件中的個人化指令發(fā)送給所述當前操作的卡片。
本發(fā)明提供一種脫機認證數(shù)據(jù)的的個人化設(shè)備,包括:
獲取模塊,用于確定當前操作的卡片,并獲取所述當前操作的卡片的靜態(tài)數(shù)據(jù);
待簽名數(shù)據(jù)組織模塊,用于根據(jù)預設(shè)格式組織包含獲取模塊獲取到的靜態(tài)數(shù)據(jù)的待簽名數(shù)據(jù);
隨機數(shù)生成模塊,用于生成隨機數(shù);
簽名模塊,用于使用發(fā)卡行私鑰對待簽名數(shù)據(jù)組織模塊組織的待簽名數(shù)據(jù)和隨機數(shù)生成模塊生成的隨機數(shù)進行簽名得到數(shù)字簽名;
簽名數(shù)據(jù)生成模塊,用于根據(jù)簽名模塊生成的數(shù)字簽名以及待簽名數(shù)據(jù)中除去靜態(tài)數(shù)據(jù)的其余數(shù)據(jù)生成簽名數(shù)據(jù);
數(shù)據(jù)分組組合模塊,用于根據(jù)預設(shè)數(shù)據(jù)分組標識符和簽名數(shù)據(jù)生成模塊生成的簽名數(shù)據(jù)組合為數(shù)據(jù)分組;
創(chuàng)建個人化指令模塊,用于根據(jù)數(shù)據(jù)分組組合模塊組合的數(shù)據(jù)分組創(chuàng)建個人化指令;
寫入模塊,用于將創(chuàng)建個人化指令模塊創(chuàng)建的個人化指令寫入個人化文件;
發(fā)送模塊,用于當個人化文件完成時選擇卡片的主安全域,打開安全通道,并將個人化文件中的個人化指令發(fā)送給當前操作的卡片。
本發(fā)明取得的有益效果是:采用本發(fā)明的技術(shù)方法,獲取與卡片一一對應(yīng)的靜態(tài)數(shù)據(jù),并自動根據(jù)靜態(tài)數(shù)據(jù)進行簽名,并根據(jù)簽名結(jié)果自動生成個人化指令,并將個人化指令寫入個人化文件,使得智能卡個人化過程效率提高且更加準確。
附圖說明
圖1為本發(fā)明實施例2提供的一種脫機認證數(shù)據(jù)的個人化方法的流程圖;
圖2為本發(fā)明實施例3提供的一種脫機認證數(shù)據(jù)的個人化方法的流程圖;
圖3為本發(fā)明實施例4提供的一種脫機認證數(shù)據(jù)的個人化設(shè)備的模塊圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
實施例1
本實施例提供了一種脫機認證數(shù)據(jù)的個人化方法,包括:
步驟s1、個人化設(shè)備確定當前操作的卡片,并獲取當前操作的卡片的靜態(tài)數(shù)據(jù),根據(jù)預設(shè)格式組織包含靜態(tài)數(shù)據(jù)的待簽名數(shù)據(jù);
靜態(tài)數(shù)據(jù)具體包括:應(yīng)用主賬戶、應(yīng)用生效日期、應(yīng)用失效日期和應(yīng)用版本號。
步驟s2、個人化設(shè)備生成隨機數(shù),使用發(fā)卡行私鑰對隨機數(shù)和待簽名數(shù)據(jù)進行簽名得到數(shù)字簽名;根據(jù)數(shù)字簽名以及待簽名數(shù)據(jù)中除去靜態(tài)數(shù)據(jù)的其余數(shù)據(jù)生成簽名數(shù)據(jù);
步驟s1具體為:個人化設(shè)備確定當前操作的卡片,并獲取當前操作的卡片的靜態(tài)數(shù)據(jù),將簽名數(shù)據(jù)格式、數(shù)據(jù)驗證代碼和靜態(tài)數(shù)據(jù)順序拼接生成待簽名數(shù)據(jù);
相應(yīng)的,根據(jù)數(shù)字簽名以及待簽名數(shù)據(jù)除去靜態(tài)數(shù)據(jù)的其余數(shù)據(jù)生成簽名數(shù)據(jù)具體為:將簽名數(shù)據(jù)格式、數(shù)據(jù)驗證代碼和數(shù)字簽名順序拼接生成簽名數(shù)據(jù),簽名數(shù)據(jù)即為靜態(tài)簽名數(shù)據(jù)。
或者,步驟s1具體為:個人化設(shè)備確定當前操作的卡片,并獲取當前操作的卡片的靜態(tài)數(shù)據(jù),將ic卡公鑰數(shù)據(jù)與靜態(tài)數(shù)據(jù)順序拼接生成待簽名數(shù)據(jù);
相應(yīng)的,根據(jù)數(shù)字簽名以及待簽名數(shù)據(jù)除去靜態(tài)數(shù)據(jù)的其余數(shù)據(jù)生成簽名數(shù)據(jù)具體為:將ic卡公鑰數(shù)據(jù)和數(shù)字簽名順序拼接生成簽名數(shù)據(jù),簽名數(shù)據(jù)即為ic卡公鑰證書。
具體的,使用發(fā)卡行私鑰對隨機數(shù)和待簽名數(shù)據(jù)進行簽名得到數(shù)字簽名具體為:使用發(fā)卡行私鑰對隨機數(shù)和待簽名數(shù)據(jù)通過sm2算法進行簽名得到數(shù)字簽名。
更進一步的,使用發(fā)卡行私鑰對隨機數(shù)和待簽名數(shù)據(jù)進行簽名得到數(shù)字簽名具體包括:
步驟a-1、個人化設(shè)備將用戶可辨別標識比特長度、用戶可辨別標識、橢圓曲線參數(shù)和發(fā)卡行公鑰順序拼接得到第一數(shù)據(jù);將第一數(shù)據(jù)進行sm3密碼雜湊算法得到第一雜湊值;
步驟a-2、個人化設(shè)備將待簽名數(shù)據(jù)和第一雜湊值順序拼接得到第二數(shù)據(jù),將第二數(shù)據(jù)進行sm3密碼雜湊算法得到第二雜湊值;
步驟a-3、個人化設(shè)備用隨機數(shù)發(fā)生器生成第一隨機數(shù);根據(jù)第一隨機數(shù)計算橢圓曲線點;
步驟a-4、個人化設(shè)備計算橢圓曲線點的橫坐標和第二雜湊值之和,將計算得到的結(jié)果與橢圓曲線上基點的階進行模運算得到第三數(shù)據(jù);
步驟a-5、個人化設(shè)備判斷第三數(shù)據(jù)與第一預設(shè)值是否相等,是則返回步驟a-3,否則執(zhí)行步驟a-6;
步驟a-6,個人化設(shè)備判斷第三數(shù)據(jù)與第一隨機數(shù)之和是否等于橢圓曲線上基點的階,是則返回步驟a-3,否則執(zhí)行步驟a-7;
步驟a-7、個人化設(shè)備計算1與發(fā)卡行私鑰之和的模逆得到第四數(shù)據(jù),計算第三數(shù)據(jù)與發(fā)卡行私鑰之積得到第五數(shù)據(jù),計算第一隨機數(shù)與第五數(shù)據(jù)之差得到第六數(shù)據(jù),將第六數(shù)據(jù)與橢圓曲線上基點的階進行模運算得到第七數(shù)據(jù),計算第四數(shù)據(jù)和第七數(shù)據(jù)之積得到第八數(shù)據(jù);
步驟a-8、個人化設(shè)備判斷第八數(shù)據(jù)是否等于第二預設(shè)值,是則返回步驟a-3,否則執(zhí)行步驟a-9;
步驟a-9、個人化設(shè)備將第三數(shù)據(jù)與第八數(shù)據(jù)順序拼接得到數(shù)字簽名。
步驟s3、個人化設(shè)備根據(jù)預設(shè)數(shù)據(jù)分組標識符和簽名數(shù)據(jù)組合為數(shù)據(jù)分組;根據(jù)數(shù)據(jù)分組創(chuàng)建個人化指令,并將個人化指令寫入個人化文件;
個人化設(shè)備根據(jù)預設(shè)的數(shù)據(jù)分組標識符和簽名數(shù)據(jù)組合為數(shù)據(jù)分組具體為:個人化設(shè)備計算簽名數(shù)據(jù)長度,將預設(shè)數(shù)據(jù)分組標識符、簽名數(shù)據(jù)長度和簽名數(shù)據(jù)順序拼接生成數(shù)據(jù)分組。
根據(jù)數(shù)據(jù)分組創(chuàng)建個人化指令具體為:根據(jù)數(shù)據(jù)分組組織apdu指令;數(shù)據(jù)分組為apdu指令的命令數(shù)據(jù)域。
當個人化文件完成時,個人化方法還包括:個人化設(shè)備選擇卡片的主安全域,打開安全通道,并將個人化文件中的個人化指令發(fā)送給當前操作的卡片。
優(yōu)選的,步驟s1之后,s2之前還包括:
步驟b1、個人化設(shè)備檢查簽名數(shù)據(jù)是否滿足預設(shè)條件,是則執(zhí)行步驟b2,否則簽名數(shù)據(jù)生成失??;
步驟b1具體為:個人化設(shè)備判斷簽名數(shù)據(jù)的格式是否正確,是則判定簽名數(shù)據(jù)滿足預設(shè)條件,否則判定簽名數(shù)據(jù)不滿足預設(shè)條件。
步驟b2、個人化設(shè)備使用發(fā)卡行公鑰對簽名數(shù)據(jù)中的數(shù)字簽名進行驗證,判斷驗證是否通過,是則執(zhí)行步驟s3,否則簽名數(shù)據(jù)生成失敗。
步驟b2具體為:個人化設(shè)備使用發(fā)卡行公鑰對簽名數(shù)據(jù)中的數(shù)字簽名通過sm2算法進行驗證,判斷驗證是否通過,是則執(zhí)行步驟s3,否則簽名數(shù)據(jù)生成失敗。
更進一步的,步驟b2具體包括:
步驟c1、個人化設(shè)備將用戶可辨別標識比特長度、用戶可辨別標識、橢圓曲線參數(shù)和發(fā)卡行公鑰順序拼接生成第九數(shù)據(jù);將第九數(shù)據(jù)進行sm3運算生成第三雜湊值;
步驟c2、個人化設(shè)備將第三雜湊值和待簽名數(shù)據(jù)順序拼接生成第十數(shù)據(jù);將第十數(shù)據(jù)進行sm3運算生成第四雜湊值;
步驟c3、個人化設(shè)備從靜態(tài)數(shù)字簽名中獲取第三數(shù)據(jù)和第八數(shù)據(jù),計算第三數(shù)據(jù)與第八數(shù)據(jù)之和得到第十一數(shù)據(jù),將第十一數(shù)據(jù)和橢圓曲線上的基點的階進行模運算得到第十二數(shù)據(jù);
步驟c4、個人化設(shè)備根據(jù)第八數(shù)據(jù)、第十二數(shù)據(jù)、橢圓曲線的基點以及發(fā)卡行公鑰計算橢圓曲線點;
步驟c5、個人化設(shè)備計算第四雜湊值與橢圓曲線點的橫坐標之和得到第十三數(shù)據(jù),將第十三數(shù)據(jù)與橢圓曲線上基點的階進行模運算得到第十四數(shù)據(jù);
步驟c6、個人化設(shè)備判斷第十四數(shù)據(jù)與第三數(shù)據(jù)是否相等,是則執(zhí)行步驟s3,否則驗簽失敗,結(jié)束。
優(yōu)選的,步驟s1中獲取靜態(tài)數(shù)據(jù)之后,根據(jù)預設(shè)格式組織包含靜態(tài)數(shù)據(jù)的待簽名數(shù)據(jù)之前,還包括:
步驟d1、個人化設(shè)備判斷靜態(tài)數(shù)據(jù)中是否包括靜態(tài)數(shù)據(jù)認證標簽列表,是則執(zhí)行步驟d2,否則執(zhí)行根據(jù)預設(shè)格式組織包含靜態(tài)數(shù)據(jù)的待簽名數(shù)據(jù);
步驟d2、個人化設(shè)備判斷靜態(tài)數(shù)據(jù)認證標簽列表中是否只包含應(yīng)用交互特征的標簽,是則執(zhí)行根據(jù)預設(shè)格式組織包含靜態(tài)數(shù)據(jù)的待簽名數(shù)據(jù),否則靜態(tài)簽名數(shù)據(jù)生成失敗。
實施例2
本實施例提供一種脫機認證數(shù)據(jù)的個人化方法,具體為脫機認證數(shù)據(jù)中的靜態(tài)簽名數(shù)據(jù)的個人化方法,如圖1所示,具體包括:
步驟101、個人化設(shè)備確定當前操作的卡片,并獲取所述當前操作的卡片的靜態(tài)數(shù)據(jù);
具體的,靜態(tài)數(shù)據(jù)包括應(yīng)用主賬號、應(yīng)用生效日期、應(yīng)用失效日期和應(yīng)用版本號等智能卡靜態(tài)數(shù)據(jù);
本實施例中,需認證的靜態(tài)數(shù)據(jù)具體為:
0x5a0862280001000011175f24033012315f25039507019f08020030,其中第一個字節(jié)至第十個字節(jié)為應(yīng)用主賬號;第十一字節(jié)至第十六字節(jié)為應(yīng)用生效日期;第十七字節(jié)至第二十二字節(jié)為應(yīng)用失效日期;第二十三字節(jié)至第二十七字節(jié)為應(yīng)用版本號。
步驟101具體為:個人化設(shè)備確定當前操作的卡片,并獲取與當前操作的卡片相關(guān)聯(lián)的靜態(tài)數(shù)據(jù);
更進一步的,個人化設(shè)備讀取當前操作的卡片表面預先印刷的卡片信息,例如卡號,并從靜態(tài)數(shù)據(jù)文件中獲取與所述卡片信息相關(guān)聯(lián)的靜態(tài)數(shù)據(jù)。
更為詳細的,從靜態(tài)數(shù)據(jù)文件中獲取與所述卡片信息相關(guān)聯(lián)的靜態(tài)數(shù)據(jù)具體為:從靜態(tài)數(shù)據(jù)文件中獲取應(yīng)用主賬號與卡片信息一致的靜態(tài)數(shù)據(jù)。
或者步驟101具體為:個人化設(shè)備確定當前操作的卡片,并從靜態(tài)數(shù)據(jù)文件中獲取一條靜態(tài)數(shù)據(jù)。;
步驟102、個人化設(shè)備判斷靜態(tài)數(shù)據(jù)中是否包括靜態(tài)數(shù)據(jù)認證標簽列表,是則執(zhí)行步驟103,否則執(zhí)行步驟104;
本實施例中靜態(tài)數(shù)據(jù)為tlv格式,即靜態(tài)數(shù)據(jù)認證標簽列表是由標簽、數(shù)據(jù)長度以及數(shù)據(jù)組成的。
具體的,判斷靜態(tài)數(shù)據(jù)中是否包含靜態(tài)數(shù)據(jù)認證標簽列表的標簽,即判斷需認證的靜態(tài)數(shù)據(jù)中是否包含0x4a;是則判定靜態(tài)數(shù)據(jù)中包括靜態(tài)數(shù)據(jù)認證標簽列表;否則判定靜態(tài)數(shù)據(jù)中不包括靜態(tài)數(shù)據(jù)認證標簽列表;
步驟103、個人化設(shè)備判斷靜態(tài)數(shù)據(jù)認證標簽列表中是否只包含應(yīng)用交互特征的標簽,是則執(zhí)行步驟104,否則靜態(tài)簽名數(shù)據(jù)生成失敗,結(jié)束;
步驟103具體包括:
步驟103-1、個人化設(shè)備判斷靜態(tài)數(shù)據(jù)認證標簽列表的數(shù)據(jù)長度是否為1是則執(zhí)行步驟103-2;否則靜態(tài)簽名數(shù)據(jù)生成失敗,結(jié)束;
步驟103-2、個人化設(shè)備判斷靜態(tài)數(shù)據(jù)認證標簽列表的數(shù)據(jù)是否為應(yīng)用交互特征的標簽,是則執(zhí)行步驟104;否則靜態(tài)簽名數(shù)據(jù)生成失敗。
具體的,個人化設(shè)備判斷靜態(tài)數(shù)據(jù)認證標簽列表的數(shù)據(jù)是否為0x82,是則執(zhí)行步驟104;否則靜態(tài)簽名數(shù)據(jù)生成失敗。
步驟104、個人化設(shè)備根據(jù)簽名數(shù)據(jù)格式、數(shù)據(jù)驗證代碼和靜態(tài)數(shù)據(jù)生成待簽名數(shù)據(jù);
具體的,簽名數(shù)據(jù)格式為預設(shè)字節(jié)0x13,數(shù)據(jù)驗證代碼為發(fā)卡行分配的代碼,本實施例中具體為0xdac5;將簽名數(shù)據(jù)格式、數(shù)據(jù)驗證代碼和需認證的靜態(tài)數(shù)據(jù)順序拼接生成待簽名數(shù)據(jù),0x13dac55a0862280001000011175f24033012315f25039507019f08020030。
步驟105、個人化設(shè)備生成隨機數(shù),并使用發(fā)卡行私鑰對待簽名數(shù)據(jù)和隨機數(shù)進行簽名得到靜態(tài)數(shù)字簽名;
步驟105具體為:個人化設(shè)備生成隨機數(shù),并使用發(fā)卡行私鑰對待簽名數(shù)據(jù)和隨機數(shù)通過sm2算法進行簽名得到靜態(tài)簽名數(shù)據(jù);
更進一步的,步驟105中,使用發(fā)卡行私鑰對待簽名數(shù)據(jù)和隨機數(shù)進行簽名得到靜態(tài)數(shù)字簽名,具體包括:
步驟105-1、個人化設(shè)備將用戶可辨別標識比特長度、用戶可辨別標識、橢圓曲線參數(shù)和發(fā)卡行公鑰順序拼接得到第一數(shù)據(jù);將第一數(shù)據(jù)進行sm3密碼雜湊算法得到第一雜湊值;
本實施例中,第一數(shù)據(jù)具體為:
0x008031323334353637383132333435363738ffffffffffffffffffffffffffffffffffffff00000000fffffffffffffffc28e9fa9e9d9f5e344d5a9e4bcf6509a7f39789f515ab8f92ddbcbd414d940e9332c4ae2c1f1981195f9904466a39c9948fe30bbff2660be1715a4589334c74c7bc3736a2f4f6779c59bdcee36b692153d0a9877cc62a474002df32e52139f0a0c3ac12b81b9d175936b5bf72bb8fe3a2266bc013b2e94f5837f16aa1c01aa7323b75626ab64d02aed20cc6f440841f10ee6873bcbea3f41d6869d0feadd71154;其中前十八個字節(jié)為固定數(shù)據(jù),其后的一百二十八字節(jié)為預設(shè)的橢圓曲線參數(shù),其后的六十四個字節(jié)為發(fā)卡行公鑰。
sm3運算具體為將輸入的數(shù)據(jù)映射為一個32字節(jié)的哈希值;本實施例中根據(jù)第一數(shù)據(jù)進行sm3運算生成的第一哈希值為:
228c5edbd4150cd02785f763c074ddcd2e21294465341cfe48530b589ba0fc85。
步驟105-2、個人化設(shè)備將待簽名數(shù)據(jù)和第一雜湊值順序拼接得到第二數(shù)據(jù),將第二數(shù)據(jù)進行sm3密碼雜湊算法得到第二雜湊值;
具體的,將第一雜湊值和待簽名數(shù)據(jù)串聯(lián)得到的第二數(shù)據(jù)具體為:
0x228c5edbd4150cd02785f763c074ddcd2e21294465341cfe48530b589ba0fc855a0862280001000011175f24033012315f25039507019f08020030;
本實施例中生成的第二哈希值具體為:
0xb178b75cae400122778070132278ee73d511846076424a4041e8e427759ff7b6。
步驟105-3、個人化設(shè)備用隨機數(shù)發(fā)生器生成第一隨機數(shù);根據(jù)第一隨機數(shù)計算橢圓曲線點;
具體的隨機數(shù)生成器生成的第一隨機數(shù)記作k,計算橢圓曲線上的基點的k倍點,計算得到的橢圓曲線上的基點的k倍點記為橢圓曲線點。
步驟105-4、個人化設(shè)備計算橢圓曲線點的橫坐標和第二雜湊值之和,將計算得到的結(jié)果與橢圓曲線上基點的階進行模運算得到第三數(shù)據(jù);
步驟105-5、個人化設(shè)備判斷第三數(shù)據(jù)是與第一預設(shè)值是否相等,是則返回步驟105-3,否則執(zhí)行步驟105-6;
步驟105-6,個人化設(shè)備判斷第三數(shù)據(jù)與第一隨機數(shù)之和是否等于橢圓曲線上基點的階,是則返回步驟105-3,否則執(zhí)行步驟105-7;
步驟105-7、個人化設(shè)備計算1與發(fā)卡行私鑰之和的模逆得到第四數(shù)據(jù),計算第三數(shù)據(jù)與發(fā)卡行私鑰之積得到第五數(shù)據(jù),計算第一隨機數(shù)與第五數(shù)據(jù)之差得到第六數(shù)據(jù),將第六數(shù)據(jù)與橢圓曲線上基點的階進行模運算得到第七數(shù)據(jù),計算第五數(shù)據(jù)和第七數(shù)據(jù)之積得到第八數(shù)據(jù);
步驟105-8、個人化設(shè)備判斷第八數(shù)據(jù)是否等于第二預設(shè)值,是則返回步驟105-3,否則執(zhí)行步驟105-9;
步驟105-9、個人化設(shè)備將第三數(shù)據(jù)與第八數(shù)據(jù)順序拼接得到靜態(tài)數(shù)字簽名;
步驟106、個人化設(shè)備根據(jù)簽名數(shù)據(jù)格式、數(shù)字驗證代碼和靜態(tài)數(shù)字簽名生成靜態(tài)簽名數(shù)據(jù);
具體的,簽名數(shù)據(jù)格式為預設(shè)字節(jié)0x13,數(shù)據(jù)驗證代碼為發(fā)卡行分配的代碼,本實施例中具體為0xdac5;將簽名數(shù)據(jù)格式、數(shù)據(jù)驗證代碼和靜態(tài)數(shù)字簽名順序拼接生成靜態(tài)簽名數(shù)據(jù)。
靜態(tài)簽名數(shù)據(jù)具體為:
0x13dac59babd0781722ac9d1aa73e3eed30a5b91fa1ba3ce6e51b492fff4fdf810c607af738d73b359659ba8f755e0bf38b9f1289e0fc2b84f518a60c852fb01290e61a
步驟107、個人化設(shè)備檢查靜態(tài)簽名數(shù)據(jù)格式是否正確,是則執(zhí)行步驟108,否則靜態(tài)數(shù)據(jù)認證失敗,結(jié)束;
具體的,步驟107具體為:個人化設(shè)備判斷靜態(tài)簽名數(shù)據(jù)中的簽名數(shù)據(jù)格式的值是否為ox13,是則繼續(xù)檢查,否則判斷靜態(tài)簽名數(shù)據(jù)中的數(shù)據(jù)驗證代碼的值是否為發(fā)卡行分配的代碼即oxdac5,是則靜態(tài)簽名數(shù)據(jù)格式正確,否則靜態(tài)簽名數(shù)據(jù)格式不正確;
步驟108、個人化設(shè)備使用發(fā)卡行公鑰對靜態(tài)簽名數(shù)據(jù)中的靜態(tài)數(shù)字簽名進行驗證,判斷驗證是否通過,是則執(zhí)行步驟109,否則靜態(tài)簽名數(shù)據(jù)生成失敗,結(jié)束。
步驟108具體為,個人化設(shè)備使用發(fā)卡行公鑰對靜態(tài)簽名數(shù)據(jù)中的靜態(tài)簽名數(shù)據(jù)通過sm2算法進行驗簽,判斷驗證是否通過,若驗證通過則執(zhí)行步驟109,否則靜態(tài)簽名數(shù)據(jù)生成失敗,結(jié)束。
進一步的,步驟108中使用發(fā)卡行公鑰對靜態(tài)簽名數(shù)據(jù)中的靜態(tài)數(shù)字簽名進行驗證,具體包括:
步驟108-1、個人化設(shè)備將用戶可辨別標識比特長度、用戶可辨別標識、橢圓曲線參數(shù)和發(fā)卡行公鑰串聯(lián)生成第九數(shù)據(jù);將第九數(shù)據(jù)進行sm3運算生成第三雜湊值;
本實施例中第九數(shù)據(jù)具體為
0x008031323334353637383132333435363738fffffffeffffffffffffffffffffffffffffffff00000000fffffffffffffffc28e9fa9e9d9f5e344d5a9e4bcf6509a7f39789f515ab8f92ddbcbd414d940e9332c4ae2c1f1981195f9904466a39c9948fe30bbff2660be1715a4589334c74c7bc3736a2f4f6779c59bdcee36b692153d0a9877cc62a474002df32e52139f0a0c3ac12b81b9d175936b5bf72bb8fe3a2266bc013b2e94f5837f16aa1c01aa7323b75626ab64d02aed20cc6f440841f10ee6873bcbea3f41d6869d0feadd71154。
本實施例中第三雜湊值具體為:
0x228c5edbd4150cd02785f763c074ddcd2e21294465341cfe48530b589ba0fc85。
步驟108-2、個人化設(shè)備將第三雜湊值和待簽名數(shù)據(jù)串聯(lián)生成第十數(shù)據(jù);將第十數(shù)據(jù)進行sm3運算生成第四雜湊值;
本實施例中第十數(shù)據(jù)具體為:
0x228c5edbd4150cd02785f763c074ddcd2e21294465341cfe48530b589ba0fc8513dac55a0862280001000011175f24033012315f25039507019f08020030。本實施例中第四哈希值具體為:
0xb178b75cae400122778070132278ee73d511846076424a4041e8e427759ff7b6。
步驟108-3、個人化設(shè)備從靜態(tài)數(shù)字簽名中獲取第三數(shù)據(jù)和第八數(shù)據(jù),計算第三數(shù)據(jù)與第八數(shù)據(jù)之和得到第十一數(shù)據(jù),將第十一數(shù)據(jù)和橢圓曲線上的基點的階進行模運算得到第十二數(shù)據(jù);
步驟108-4、個人化設(shè)備根據(jù)第八數(shù)據(jù)、第十二數(shù)據(jù)、橢圓曲線的基點以及發(fā)卡行公鑰計算橢圓曲線點;
具體的,將第八數(shù)據(jù)記為s,計算橢圓曲線上基點的s倍點,將第十二數(shù)據(jù)記為t,計算發(fā)卡行公鑰的t倍點,將s倍點與t倍點相加得到橢圓曲線點。
步驟108-5、個人化設(shè)備計算第四雜湊值與橢圓曲線點的橫坐標之和得到第十三數(shù)據(jù),將第十三數(shù)據(jù)與橢圓曲線上基點的階進行模運算得到第十四數(shù)據(jù);
步驟108-6、個人化設(shè)備判斷第十四數(shù)據(jù)與第三數(shù)據(jù)是否相等,是則執(zhí)行步驟109,否則驗簽失敗,結(jié)束。
步驟109、個人化設(shè)備根據(jù)預設(shè)的數(shù)據(jù)分組標識符和靜態(tài)簽名數(shù)據(jù)生成數(shù)據(jù)分組;
具體的,個人化設(shè)備計算靜態(tài)簽名數(shù)據(jù)長度,將數(shù)據(jù)分組標識符、靜態(tài)數(shù)據(jù)長度和靜態(tài)數(shù)據(jù)順序拼接得到數(shù)據(jù)分組;
步驟110、個人化設(shè)備根據(jù)數(shù)據(jù)分組創(chuàng)建個人化指令,并將創(chuàng)建的個人化指令寫入個人化文件;
具體的,個人化指令的數(shù)據(jù)格式為cla+ins+p1+p2+lc+dgi+length+data;
其中,cla為命令報文的類別字節(jié)、ins為命令報文的指令字節(jié)、p1和p2為引用控制參數(shù)和塊編號、lc為數(shù)據(jù)dgi+length+data的長度、dgi為數(shù)據(jù)分組標識符;length為靜態(tài)簽名數(shù)據(jù)長度;data為靜態(tài)簽名數(shù)據(jù);
本實施例中個人化指令具體為0x80e20004
a02054770459313dac59babd0781722ac9d1aa73e3eed30a5b91fa1ba3ce6e51b492fff4fdf810c607af738d73b359659ba8f755e0bf38b9f1289e0fc2b84f518a60c852fb01290e61a;其中ox80為cla,e2為ins即存儲數(shù)據(jù)命令的指令字節(jié),00為p1,05為p2,4a為lc,其后的數(shù)據(jù)為data,包括靜態(tài)簽名數(shù)據(jù)的標簽ox93和靜態(tài)簽名數(shù)據(jù)。
當個人化文件完成時,個人化方法還包括:個人化設(shè)備選擇卡片的主安全域,打開安全通道,并將個人化文件中的個人化指令發(fā)送給當前操作的卡片。
個人化設(shè)備等待接收智能卡返回的響應(yīng)數(shù)據(jù),若響應(yīng)數(shù)據(jù)中包括0x9000則表明靜態(tài)簽名數(shù)據(jù)成功寫入智能卡,否則靜態(tài)簽名數(shù)據(jù)寫入失敗。
當卡片的卡面沒有預先印刷卡片信息時,則該方法還包括:個人化設(shè)備從靜態(tài)數(shù)據(jù)中獲取應(yīng)用主賬號印刷到卡面。
實施例3
本實施例提供一種脫機認證數(shù)據(jù)的個人化方法,具體為脫機認證中的ic卡公鑰證書的個人化方法;如圖2所示,具體包括:
步驟201、個人化設(shè)備確定當前操作的卡片,并獲取所述當前操作的卡片的靜態(tài)數(shù)據(jù);
具體的,靜態(tài)數(shù)據(jù)包括應(yīng)用主賬號、應(yīng)用生效日期、應(yīng)用失效日期和應(yīng)用版本號等智能卡靜態(tài)數(shù)據(jù);
本實施例中,需認證的靜態(tài)數(shù)據(jù)具體為:
0x5a0862280001000011175f24033012315f25039507019f08020030,其中第一個字節(jié)至第十個字節(jié)為應(yīng)用主賬號;第十一字節(jié)至第十六字節(jié)為應(yīng)用生效日期;第十七字節(jié)至第二十二字節(jié)為應(yīng)用失效日期;第二十三字節(jié)至第二十七字節(jié)為應(yīng)用版本號。
步驟201具體為:個人化設(shè)備確定當前操作的卡片,并獲取與當前操作的卡片相關(guān)聯(lián)的靜態(tài)數(shù)據(jù);
更進一步的,個人化設(shè)備讀取當前操作的卡片表面預先印刷的卡片信息,例如卡號,并從靜態(tài)數(shù)據(jù)文件中獲取與所述卡片信息相關(guān)聯(lián)的靜態(tài)信息。
更為詳細的,從靜態(tài)數(shù)據(jù)文件中獲取與所述卡片信息相關(guān)聯(lián)的靜態(tài)數(shù)據(jù)具體為:從靜態(tài)數(shù)據(jù)文件中獲取應(yīng)用主賬號與卡片信息一致的靜態(tài)數(shù)據(jù)。
或者步驟201具體為:個人化設(shè)備確定當前操作的卡片,并從靜態(tài)數(shù)據(jù)文件中獲取一條靜態(tài)數(shù)據(jù)。;
步驟202、個人化設(shè)備判斷靜態(tài)數(shù)據(jù)是否包括靜態(tài)數(shù)據(jù)認證標簽列表,是則執(zhí)行步驟203,否則執(zhí)行步驟204;
本實施例中靜態(tài)數(shù)據(jù)為tlv格式,即靜態(tài)數(shù)據(jù)認證標簽列表是由標簽、數(shù)據(jù)長度以及數(shù)據(jù)組成的。
具體的,判斷靜態(tài)數(shù)據(jù)是否包含靜態(tài)數(shù)據(jù)認證標簽列表的標簽,即判斷靜態(tài)數(shù)據(jù)中是否包含0x4a;是則判定靜態(tài)數(shù)據(jù)中包括靜態(tài)數(shù)據(jù)認證標簽列表;否則判定靜態(tài)數(shù)據(jù)中不包括靜態(tài)數(shù)據(jù)認證標簽列表;
步驟203、判斷靜態(tài)數(shù)據(jù)認證標簽列表中是否只包含應(yīng)用交互特征的標簽,是則執(zhí)行步驟204,否則ic卡公鑰證書生成失??;
步驟203具體包括:
步驟203-1、判斷靜態(tài)數(shù)據(jù)認證標簽列表的數(shù)據(jù)長度是否為1是則執(zhí)行步驟203-2;否則ic卡公鑰證書生成失敗;
步驟203-2、判斷靜態(tài)數(shù)據(jù)認證標簽列表的數(shù)據(jù)是否為應(yīng)用交互特征的標簽即判斷靜態(tài)數(shù)據(jù)認證標簽列表的數(shù)據(jù)是否為0x82,是則執(zhí)行步驟204;否則ic卡公鑰證書生成失敗。
步驟204、根據(jù)ic卡公鑰數(shù)據(jù)和靜態(tài)數(shù)據(jù)生成待簽名數(shù)據(jù)。
具體的,將個人化數(shù)據(jù)中的證書格式、應(yīng)用主賬號、證書失效日期、證書序列號、ic卡公鑰簽名算法標識、ic卡公鑰加密算法標識、ic卡公鑰參數(shù)標識、ic卡公鑰長度和ic卡公鑰順序拼接作為ic卡公鑰數(shù)據(jù),將ic卡公鑰數(shù)據(jù)以及靜態(tài)數(shù)據(jù)順序拼接得到待簽名數(shù)據(jù)。
本實施例中獲取到的待簽名數(shù)據(jù)具體為0x146228000100001117ffff123000000104001140
c3ac12b81b9d175936b5bf72bb8fe3a2266bc013b2e94f5837f16aa1c01aa7323b75626ab64d02aed20cc6f440841f10ee6873bcbea3f41d6869d0feadd71154
5a0862280001000011175f24033012315f25039507019f08020030
其中待簽名數(shù)據(jù)的第一個字節(jié)0x14為證書格式,第二個字節(jié)至第十一字節(jié)0x6228000100001117ffff為應(yīng)用主賬號;第十二個字節(jié)至第十三字節(jié)ox1230為證書失效日期,第十四字節(jié)至第十六字節(jié)0x000001為證書序列號;第十七字節(jié)0x04為ic卡公鑰簽名算法標識;第十八字節(jié)0x00為ic卡公鑰加密算法標識;第十九字節(jié)0x11為ic卡公鑰參數(shù)標識,用于標識橢圓曲線;第二十字節(jié)0x40為ic卡公鑰長度;第二十一字節(jié)至第六十字節(jié)為ic卡公鑰,其后的二十七個字節(jié)為靜態(tài)數(shù)據(jù);
步驟205、個人化設(shè)備生成隨機數(shù),并使用發(fā)卡行私鑰對待簽名數(shù)據(jù)和隨機數(shù)進行簽名得到ic卡數(shù)字簽名;
步驟205具體為:個人化設(shè)備生成隨機數(shù),并使用發(fā)卡行私鑰對待簽名數(shù)據(jù)和隨機數(shù)通過sm2算法進行簽名得到ic卡數(shù)字簽名;
本實施例中得到的ic卡數(shù)字簽名具體為0xaf3a6e51ac91005cdd6136497793091d8a52ea3ad49d8c215fb25a9e3b9e110511d0089a7450147553147bf4144e435cc55de8c8c0d0bfe34115de19804333a5
具體的,步驟205中使用發(fā)卡行私鑰對待簽名數(shù)據(jù)和隨機數(shù)進行簽名得到ic卡數(shù)字簽名與實施例1中提到的使用發(fā)卡行私鑰對待簽名數(shù)據(jù)和隨機數(shù)進行簽名得到靜態(tài)數(shù)字簽名的過程類似在此不再贅述;
步驟206、個人化設(shè)備根據(jù)ic卡公鑰數(shù)據(jù)和ic卡數(shù)字簽名生成ic卡公鑰證書。
具體的,將個人化數(shù)據(jù)中的證書格式、應(yīng)用主賬號、證書失效日期、證書序列號、ic卡公鑰簽名算法標識、ic卡公鑰加密算法標識、ic卡公鑰參數(shù)標識、ic卡公鑰長度和ic卡公鑰順序拼接作為ic卡公鑰數(shù)據(jù),將ic卡公鑰數(shù)據(jù)與ic卡數(shù)字簽名順序拼接得到ic卡公鑰證書。
本實施例中生成ic卡公鑰證書具體為:
0x6228000100001117ffff123000000104001140
c3ac12b81b9d175936b5bf72bb8fe3a2266bc013b2e94f5837f16aa1c01aa7323b75626ab64d02aed20cc6f440841f10ee6873bcbea3f41d6869d0feadd71154
dd956d186252ee711398b339270cb1839daf4a15b7f907e0ad334470cb83f0e3,0xfd395978a5a0ffd2a2055a986522368e6f3a6be34e0c416eb69fa7a08c89dff2,其中前60字節(jié)為ic卡公鑰數(shù)據(jù);其后的64字節(jié)為步驟210中得到的ic卡數(shù)字簽名。
步驟207、個人化設(shè)備判斷ic卡公鑰證書中的證書格式的值是否為預設(shè)值,是則執(zhí)行步驟208、否則ic卡公鑰證書生成失??;
預設(shè)值具體為ox14;
步驟208、個人化設(shè)備根據(jù)ic卡公鑰證書中的證書失效日期,判斷證書是否過期,是則執(zhí)行步驟209,否則ic卡公鑰證書生成失??;
步驟209、個人化設(shè)備判斷ic卡公鑰證書中的ic卡公鑰簽名算法是否為sm2算法,是則執(zhí)行步驟210、否則ic卡公鑰證書生成失?。?/p>
具體的,個人化設(shè)備判斷ic卡公鑰數(shù)據(jù)中的ic卡公鑰簽名算法的值是否為0x04,是則判定ic卡公鑰簽名算法為sm2算法,否則判定ic卡公鑰簽名算法不是sm2算法。
步驟210、個人化設(shè)備使用發(fā)卡行公鑰對ic卡公鑰證書中的ic卡數(shù)字簽名進行驗證;判斷驗證是否通過,是則執(zhí)行步驟211,否則ic卡公鑰證書生成失??;
步驟210具體為:個人化設(shè)備使用發(fā)卡行公鑰對ic卡公鑰證書中的ic卡數(shù)字簽名通過sm2算法進行驗證,判斷驗證是否通過,若驗證通過則執(zhí)行步驟211,否則ic卡公鑰證書生成失?。?/p>
具體的,步驟210中使用發(fā)卡行私鑰對ic卡公鑰證書中的ic卡數(shù)字簽名通過sm2算法進行驗證與步驟108中使用發(fā)卡行公鑰對靜態(tài)簽名數(shù)據(jù)中的靜態(tài)數(shù)字簽名進行驗證的過程類似在此不再贅述;
步驟211、個人化設(shè)備根據(jù)預設(shè)的數(shù)據(jù)分組標識符和ic卡公鑰證書生成數(shù)據(jù)分組;
具體的,個人化設(shè)備計算ic卡公鑰證書長度,將數(shù)據(jù)分組標識符、ic卡公鑰證書長度和靜態(tài)數(shù)據(jù)順序拼接得到數(shù)據(jù)分組;
步驟212、個人化設(shè)備根據(jù)數(shù)據(jù)分組創(chuàng)建個人化指令;并將創(chuàng)建的個人化指令寫入個人化文件;
具體的,個人化指令的數(shù)據(jù)格式為cla+ins+p1+p2+lc+dgi+length+data;
具體的,向智能卡發(fā)送寫入ic卡公鑰證書,并等待接收智能卡返回的響應(yīng)數(shù)據(jù),若響應(yīng)數(shù)據(jù)中包括0x9000則表明ic卡公鑰證書成功寫入智能卡,否則ic卡公鑰證書寫入失敗。
當個人化文件完成時,個人化方法還包括:個人化設(shè)備選擇卡片的主安全域,打開安全通道,并將個人化文件中的個人化指令發(fā)送給卡片。
個人化設(shè)備等待接收智能卡返回的響應(yīng)數(shù)據(jù),若響應(yīng)數(shù)據(jù)中包括0x9000則表明靜態(tài)簽名數(shù)據(jù)成功寫入智能卡,否則靜態(tài)簽名數(shù)據(jù)寫入失敗。
當卡片的卡面沒有預先印刷卡片信息時,則該方法還包括:個人化設(shè)備從靜態(tài)數(shù)據(jù)中獲取應(yīng)用主賬號印刷到卡面。
實施例4
本實施例提供一種脫機認證數(shù)據(jù)的個人化設(shè)備,參見圖3,包括:
獲取模塊11,用于確定當前操作的卡片,并獲取所述當前操作的卡片的靜態(tài)數(shù)據(jù);
獲取模塊11獲取到的靜態(tài)數(shù)據(jù)中具體包括:應(yīng)用主賬戶、應(yīng)用生效日期、應(yīng)用失效日期和應(yīng)用版本號。
待簽名數(shù)據(jù)組織模塊12,用于根據(jù)預設(shè)格式組織包含獲取模塊11獲取到的靜態(tài)數(shù)據(jù)的待簽名數(shù)據(jù);
隨機數(shù)生成模塊13,用于生成隨機數(shù);
簽名模塊14,用于使用發(fā)卡行私鑰對待簽名數(shù)據(jù)組織模塊12組織的待簽名數(shù)據(jù)和隨機數(shù)生成模塊13生成的隨機數(shù)進行簽名得到數(shù)字簽名;
具體的,簽名模塊14,用于使用發(fā)卡行私鑰對隨機數(shù)生成模塊13生成的隨機數(shù)和待簽名數(shù)據(jù)組織模塊12組織的待簽名數(shù)據(jù)通過sm2算法進行簽名得到數(shù)字簽名。
更進一步的,簽名模塊14具體包括:
拼接子模塊,用于將用戶可辨別標識比特長度、用戶可辨別標識、橢圓曲線參數(shù)和發(fā)卡行公鑰順序拼接得到第一數(shù)據(jù);還用于將待簽名數(shù)據(jù)和sm3子運算模塊得到的第一雜湊值順序拼接得到第二數(shù)據(jù);
相應(yīng)的,sm3運算子模塊,用于將拼接子模塊得到的第一數(shù)據(jù)進行sm3密碼雜湊算法得到第一雜湊值;還用于將拼接模塊得到的第二數(shù)據(jù)進行sm3密碼雜湊算法得到第二雜湊值;
計算橢圓曲線點模塊,用于根據(jù)隨機數(shù)生成模塊13生成的第一隨機數(shù)計算橢圓曲線點;
模運算模塊,用于計算計算橢圓曲線點模塊得到的橢圓曲線點的橫坐標和sm3運算子模塊得到的第二雜湊值之和,將計算得到的結(jié)果與橢圓曲線上基點的階進行模運算得到第三數(shù)據(jù);還用于計算第三數(shù)據(jù)與發(fā)卡行私鑰之積得到第五數(shù)據(jù),計算第一隨機數(shù)與第五數(shù)據(jù)之差得到第六數(shù)據(jù),將第六數(shù)據(jù)與橢圓曲線上基點的階進行模運算得到第七數(shù)據(jù);
第一判斷子模塊,用于判斷模運算模塊得到的第三數(shù)據(jù)與第一預設(shè)值是否相等;
第二判斷子模塊,用于當?shù)谝慌袛嘧幽K判定第三數(shù)據(jù)與第一預設(shè)值不相等時判斷模運算模塊得到的第三數(shù)據(jù)與隨機數(shù)生成模塊13生成的第一隨機數(shù)之和是否等于橢圓曲線上基點的階;
模逆運算子模塊,用于第二判斷模塊判定模運算模塊得到的第三數(shù)據(jù)與隨機數(shù)生成模塊13生成的第一隨機數(shù)之和等于橢圓曲線上基點的階時,計算1與發(fā)卡行私鑰之和的模逆得到第四數(shù)據(jù);
第三判斷模塊,用于計算模逆運算子模塊得到的第四數(shù)據(jù)與模運算模塊得到的第七數(shù)據(jù)之積得到第八數(shù)據(jù),判斷第八數(shù)據(jù)是否等于第二預設(shè)值;
數(shù)字簽名子模塊,用于當?shù)谌袛嗄K判定第八數(shù)據(jù)不等于第二預設(shè)值時將模運算模塊得到的第三數(shù)據(jù)與第八數(shù)據(jù)順序拼接得到數(shù)字簽名;
隨機數(shù)生成模塊13,具體用于生成隨機數(shù)作為第一隨機數(shù);還用于當?shù)谝慌袛嘧幽K判定第三數(shù)據(jù)與第一預設(shè)值相等時生成隨機數(shù),更新第一隨機數(shù),觸發(fā)計算橢圓曲線點模塊;還用于當?shù)谌袛嗄K判定第八數(shù)據(jù)與第二預設(shè)值相等時生成隨機數(shù),更新第一隨機數(shù),觸發(fā)計算橢圓曲線點模塊。
簽名數(shù)據(jù)生成模塊15,用于根據(jù)簽名模塊14生成的數(shù)字簽名以及待簽名數(shù)據(jù)中除去靜態(tài)數(shù)據(jù)的其余數(shù)據(jù)生成簽名數(shù)據(jù);
數(shù)據(jù)分組組合模塊16,用于根據(jù)預設(shè)數(shù)據(jù)分組標識符和簽名數(shù)據(jù)生成模塊15生成的簽名數(shù)據(jù)組合為數(shù)據(jù)分組;
具體的,數(shù)據(jù)分組組合模塊16,用于計算簽名數(shù)據(jù)長度,將預設(shè)數(shù)據(jù)分組標識符、簽名數(shù)據(jù)長度和簽名數(shù)據(jù)生成模塊15生成的簽名數(shù)據(jù)順序拼接生成數(shù)據(jù)分組。
創(chuàng)建個人化指令模塊17,用于根據(jù)數(shù)據(jù)分組組合模塊16組合的數(shù)據(jù)分組創(chuàng)建個人化指令;
具體的,創(chuàng)建個人化指令模塊17,用于根據(jù)數(shù)據(jù)分組組合模塊16組合的數(shù)據(jù)分組織apdu指令;數(shù)據(jù)分組為apdu指令的命令數(shù)據(jù)域。
寫入模塊18,用于將創(chuàng)建個人化指令模塊17創(chuàng)建的個人化指令寫入個人化文件;
發(fā)送模塊19,用于當個人化文件完成時選擇卡片的主安全域,打開安全通道,并將個人化文件中的個人化指令發(fā)送給當前操作的卡片。
具體的,待簽名數(shù)據(jù)組織模塊12,用于將簽名數(shù)據(jù)格式、數(shù)據(jù)驗證代碼和獲取模塊11獲取到的靜態(tài)數(shù)據(jù)順序拼接生成待簽名數(shù)據(jù);
相應(yīng)的,簽名數(shù)據(jù)生成模塊15,具體用于將簽名數(shù)據(jù)格式、數(shù)據(jù)驗證代碼和簽名模塊14得到的數(shù)字簽名順序拼接生成簽名數(shù)據(jù),簽名數(shù)據(jù)即為靜態(tài)簽名數(shù)據(jù)。
具體的,待簽名數(shù)據(jù)組織模塊12,用于將ic卡公鑰數(shù)據(jù)與獲取模塊11獲取到的靜態(tài)數(shù)據(jù)順序拼接得到待簽名數(shù)據(jù);
相應(yīng)的,簽名數(shù)據(jù)生成模塊15,具體用于將ic卡公鑰數(shù)據(jù)和簽名模塊14得到的數(shù)字簽名順序拼接生成簽名數(shù)據(jù),簽名數(shù)據(jù)即為ic卡公鑰證書。
優(yōu)選的,個人化設(shè)備還包括:
第一判斷模塊,用于判斷簽名數(shù)據(jù)組織模塊組織的簽名數(shù)據(jù)是否滿足預設(shè)條件;
具體的,第一判斷模塊,用于判斷簽名數(shù)據(jù)組織模塊組織的簽名數(shù)據(jù)的格式是否正確。
驗簽模塊,用于若第一判斷模塊判定簽名數(shù)據(jù)滿足預設(shè)條件時使用發(fā)卡行公鑰對簽名數(shù)據(jù)中的數(shù)字簽名進行驗證,并判斷驗證是否成功;
具體的,驗簽模塊,用于若第一判斷模塊判定簽名數(shù)據(jù)滿足預設(shè)條件時使用發(fā)卡行公鑰對簽名數(shù)據(jù)中的數(shù)字簽名通過sm2算法進行驗證,并判斷驗證是否成功。
相應(yīng)的,數(shù)據(jù)分組組合模塊16,具體用于當驗證成功模塊判定驗證成功時根據(jù)預設(shè)數(shù)據(jù)分組標識符和簽名數(shù)據(jù)組合為數(shù)據(jù)分組。
更進一步的,驗簽模塊,具體包括:
拼接子模塊,用于將用戶可辨別標識比特長度、用戶可辨別標識、橢圓曲線參數(shù)和發(fā)卡行公鑰順序拼接生成第九數(shù)據(jù);還用于將sm3子運算模塊的第三雜湊值和待簽名數(shù)據(jù)生成模塊15生成的待簽名數(shù)據(jù)順序拼接生成第十數(shù)據(jù);
sm3運算子模塊,用于將拼接模塊生成的第九數(shù)據(jù)進行sm3運算生成第三雜湊值;還用于將拼接子模塊生成的第十數(shù)據(jù)進行sm3運算生成第四雜湊值;
模運算模塊,用于從簽名數(shù)據(jù)生成模塊15生成的簽名數(shù)據(jù)中獲取第三數(shù)據(jù)和第八數(shù)據(jù),計算第三數(shù)據(jù)與第八數(shù)據(jù)之和得到第十一數(shù)據(jù),將第十一數(shù)據(jù)和橢圓曲線上的基點的階進行模運算得到第十二數(shù)據(jù);還用于計算sm3運算子模塊得到的第四雜湊值與計算橢圓曲線模塊得到的橢圓曲線點的橫坐標之和得到第十三數(shù)據(jù),將第十三數(shù)據(jù)與橢圓曲線上基點的階進行模運算得到第十四數(shù)據(jù);
計算橢圓曲線模塊,用于根據(jù)第八數(shù)據(jù)、模運算模塊得到的第十二數(shù)據(jù)、橢圓曲線的基點以及發(fā)卡行公鑰計算橢圓曲線點;
判斷子模塊,用于判斷模運算模塊得到的第十四數(shù)據(jù)與第三數(shù)據(jù)是否相等;
數(shù)據(jù)分組組合模塊16,用于當判斷子模塊判定第十四數(shù)據(jù)與第三數(shù)據(jù)相等時,根據(jù)預設(shè)數(shù)據(jù)分組標識符和簽名數(shù)據(jù)生成模塊15生成的簽名數(shù)據(jù)組合為數(shù)據(jù)分組。
優(yōu)選的,個人化設(shè)備,還包括:第一判斷模塊,用于判斷獲取模塊11獲取到的靜態(tài)數(shù)據(jù)中是否包括靜態(tài)數(shù)據(jù)認證標簽列表;
第二判斷模塊,用于當?shù)谝慌袛嗄K判定靜態(tài)數(shù)據(jù)中包括靜態(tài)數(shù)據(jù)認證標簽列表時判斷靜態(tài)數(shù)據(jù)認證標簽列表中是否只包含應(yīng)用交互特征的標簽;
相應(yīng)的,待簽名數(shù)據(jù)組織模塊12,用于當?shù)谝慌袛嗄K判定靜態(tài)數(shù)據(jù)中不包括靜態(tài)數(shù)據(jù)認證標簽列表時,根據(jù)預設(shè)格式組織包含獲取模塊11獲取到的靜態(tài)數(shù)據(jù)的待簽名數(shù)據(jù);還用于當?shù)诙袛嗄K判定靜態(tài)數(shù)據(jù)認證標簽列表中只包含應(yīng)用交互特征的標簽時,根據(jù)預設(shè)格式組織包含獲取模塊11獲取到的靜態(tài)數(shù)據(jù)的待簽名數(shù)據(jù)。
以上所述的實施例只是本發(fā)明較優(yōu)選的具體實施方式,本領(lǐng)域的技術(shù)人員在本發(fā)明技術(shù)方案范圍內(nèi)進行的通常變化和替換都應(yīng)包含在本發(fā)明的保護范圍內(nèi)。