本發(fā)明涉及數(shù)據(jù)處理,尤其涉及一種利用身份證安全芯片對(duì)數(shù)據(jù)加密方法和裝置。
背景技術(shù):
1、目前,在進(jìn)行數(shù)據(jù)安全傳輸時(shí)需要用到專門的安全芯片,而安全芯片對(duì)我們國(guó)家來(lái)說(shuō)是稀缺資源,如果加大對(duì)安全芯片的復(fù)用,從而大量節(jié)省集成電路安全芯片資源成為亟待解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)所存在的缺陷,提供一種利用身份證安全芯片對(duì)數(shù)據(jù)加密方法和裝置,通過(guò)身份證安全芯片生成帶有數(shù)字簽名的數(shù)據(jù)加密密鑰,數(shù)據(jù)發(fā)送客戶端通過(guò)該數(shù)據(jù)加密密鑰對(duì)待傳輸數(shù)據(jù)進(jìn)行加密傳輸至數(shù)據(jù)接收方,在數(shù)據(jù)加密過(guò)程中將身份證安全芯片進(jìn)行復(fù)用,不需要其它額外的安全芯片的情況下實(shí)現(xiàn)數(shù)據(jù)加密保護(hù),節(jié)省安全芯片資源。
2、為實(shí)現(xiàn)上述目的,本發(fā)明第一方面提供了一種利用身份證安全芯片對(duì)數(shù)據(jù)加密方法,包括:
3、獲取身份證安全芯片的用戶數(shù)據(jù)存儲(chǔ)模塊中的身份證序號(hào);所述身份證為數(shù)據(jù)接收方身份證;
4、獲取身份證安全芯片的隨機(jī)數(shù)發(fā)生器生成的隨機(jī)數(shù);
5、將所述身份證序號(hào)與所述隨機(jī)數(shù)進(jìn)行布爾運(yùn)算,生成第一數(shù)字代碼;
6、獲取身份證安全芯片的主控模塊基于預(yù)設(shè)的加密算法用身份證密鑰對(duì)所述第一數(shù)字代碼進(jìn)行加密生成的第一加密密文;
7、通過(guò)數(shù)據(jù)接收方的sm2預(yù)置簽名私鑰對(duì)所述第一加密密文進(jìn)行數(shù)字簽名生成簽名數(shù)據(jù);
8、發(fā)送所述簽名數(shù)據(jù)至數(shù)據(jù)發(fā)送客戶端;所述數(shù)據(jù)發(fā)送客戶端通過(guò)數(shù)據(jù)接收方的sm2預(yù)置簽名公鑰進(jìn)行簽名驗(yàn)證,若簽名驗(yàn)證通過(guò),將所述簽名數(shù)據(jù)中的第一加密密文作為數(shù)據(jù)加密密鑰,基于國(guó)密對(duì)稱算法使用所述數(shù)據(jù)加密密鑰對(duì)待加密數(shù)據(jù)進(jìn)行加密處理,生成第二加密密文;
9、接收所述數(shù)據(jù)發(fā)送客戶端發(fā)送的所述第二加密密文,基于國(guó)密對(duì)稱算法使用所述第一加密密文對(duì)所述第二加密密文進(jìn)行解密運(yùn)算,生成所述第二加密密文對(duì)應(yīng)的解密明文。
10、進(jìn)一步,所述獲取身份證安全芯片的用戶數(shù)據(jù)存儲(chǔ)模塊中的身份證序號(hào),具體為:
11、發(fā)送第一apdu指令至身份證安全芯片的nfc通訊模塊;
12、所述nfc通訊模塊將所述第一apdu指令向身份證安全芯片的主控模塊轉(zhuǎn)發(fā);
13、所述主控模塊對(duì)所述第一apdu指令進(jìn)行識(shí)別;
14、若為身份證序號(hào)獲取指令,從所述用戶數(shù)據(jù)存儲(chǔ)模塊中指定的第一存儲(chǔ)位置上讀取出身份證序號(hào),并發(fā)送至所述nfc通訊模塊;
15、接收所述nfc通訊模塊發(fā)送的所述身份證序號(hào)。
16、進(jìn)一步,所述獲取身份證安全芯片的隨機(jī)數(shù)發(fā)生器生成的隨機(jī)數(shù),具體為:
17、發(fā)送第二apdu指令至所述nfc通訊模塊;
18、所述nfc通訊模塊將所述第二apdu指令向所述主控模塊轉(zhuǎn)發(fā);
19、所述主控模塊對(duì)所述第二apdu指令進(jìn)行識(shí)別;
20、若為生成隨機(jī)數(shù)指令,調(diào)用所述隨機(jī)數(shù)發(fā)生器進(jìn)行一次隨機(jī)數(shù)生成,得到一個(gè)對(duì)應(yīng)的隨機(jī)數(shù),并將所述隨機(jī)數(shù)臨時(shí)保存在所述用戶數(shù)據(jù)存儲(chǔ)模塊中指定的第二存儲(chǔ)位置;
21、從所述第二存儲(chǔ)位置上讀取出所述隨機(jī)數(shù),并發(fā)送至所述nfc通訊模塊;
22、接收所述nfc通訊模塊發(fā)送的所述隨機(jī)數(shù)。
23、進(jìn)一步,所述獲取身份證安全芯片的主控模塊基于預(yù)設(shè)的加密算法用身份證密鑰對(duì)所述第一數(shù)字代碼進(jìn)行加密生成的第一加密密文,具體為:
24、發(fā)送第三apdu指令至所述nfc通訊模塊;
25、所述nfc通訊模塊將所述第三apdu指令向所述主控模塊轉(zhuǎn)發(fā);
26、所述主控模塊對(duì)所述第三apdu指令進(jìn)行識(shí)別;
27、若為內(nèi)部驗(yàn)證指令,提取所述第三apdu指令攜帶參數(shù)中的所述第一數(shù)字代碼;提取身份證安全芯片的密鑰存儲(chǔ)模塊中的身份證密鑰;基于預(yù)設(shè)的加密算法,用所述身份證密鑰對(duì)所述第一數(shù)字代碼進(jìn)行加密,生成第一加密密文,并發(fā)送至所述nfc通訊模塊;
28、接收所述nfc通訊模塊發(fā)送的所述第一加密密文。
29、進(jìn)一步,所述通過(guò)數(shù)據(jù)接收方客戶端的sm2預(yù)置私鑰對(duì)所述第一加密密文進(jìn)行數(shù)字簽名生成簽名數(shù)據(jù),具體包括:
30、用數(shù)據(jù)接收方的sm2預(yù)置私鑰對(duì)所述第一加密密文進(jìn)行加密,生成簽名數(shù)據(jù)。
31、進(jìn)一步,所述數(shù)據(jù)發(fā)送客戶端通過(guò)數(shù)據(jù)接收方的sm2預(yù)置公鑰進(jìn)行簽名驗(yàn)證,若簽名驗(yàn)證通過(guò),將所述簽名數(shù)據(jù)中的第一加密密文作為數(shù)據(jù)加密密鑰,具體為:
32、所述數(shù)據(jù)發(fā)送客戶端通過(guò)數(shù)據(jù)接收方的sm2預(yù)置公鑰對(duì)所述簽名數(shù)據(jù)進(jìn)行解密;若解密成功,將所述第一加密密文作為數(shù)據(jù)加密密鑰,其中所述第一加密密文與所述簽名數(shù)據(jù)解密后的明文一致。
33、進(jìn)一步,所述布爾運(yùn)算為異或運(yùn)算。
34、本發(fā)明第二方面提供了一種利用身份證安全芯片對(duì)數(shù)據(jù)加密裝置,所述裝置包括:
35、第一數(shù)據(jù)獲取模塊,用于獲取身份證安全芯片的用戶數(shù)據(jù)存儲(chǔ)模塊中的身份證序號(hào);所述身份證為數(shù)據(jù)接收方身份證;
36、第二數(shù)據(jù)獲取模塊,用于獲取身份證安全芯片的隨機(jī)數(shù)發(fā)生器生成的隨機(jī)數(shù);
37、第一數(shù)據(jù)處理模塊,用于將所述身份證序號(hào)與所述隨機(jī)數(shù)進(jìn)行布爾運(yùn)算,生成第一數(shù)字代碼;
38、第三數(shù)據(jù)獲取模塊,用于獲取身份證安全芯片的主控模塊基于預(yù)設(shè)的加密算法用身份證密鑰對(duì)所述第一數(shù)字代碼進(jìn)行加密生成的第一加密密文;
39、第二數(shù)據(jù)處理模塊,用于通過(guò)數(shù)據(jù)接收方的sm2預(yù)置私鑰對(duì)所述第一加密密文進(jìn)行數(shù)字簽名生成簽名數(shù)據(jù);
40、數(shù)據(jù)發(fā)送模塊,用于發(fā)送所述簽名數(shù)據(jù)至數(shù)據(jù)發(fā)送客戶端;所述數(shù)據(jù)發(fā)送客戶端通過(guò)數(shù)據(jù)接收方的sm2預(yù)置公鑰進(jìn)行簽名驗(yàn)證,若簽名驗(yàn)證通過(guò),將所述簽名數(shù)據(jù)中的第一加密密文作為數(shù)據(jù)加密密鑰,基于國(guó)密對(duì)稱算法使用所述數(shù)據(jù)加密密鑰對(duì)待加密數(shù)據(jù)進(jìn)行加密處理,生成第二加密密文;
41、第三數(shù)據(jù)處理模塊,用于接收所述數(shù)據(jù)發(fā)送客戶端發(fā)送的所述第二加密密文,基于國(guó)密對(duì)稱算法使用所述第一加密密文對(duì)所述第二加密密文進(jìn)行解密運(yùn)算,生成所述第二加密密文對(duì)應(yīng)的解密明文。
42、本發(fā)明第三方面提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)第一方面任一項(xiàng)所述方法的步驟。
43、本發(fā)明第四方面提供了一種控制器,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序以實(shí)現(xiàn)第一方面任一項(xiàng)所述方法的步驟。
44、本發(fā)明實(shí)施例提供的一種利用身份證安全芯片對(duì)數(shù)據(jù)加密方法和裝置、相關(guān)產(chǎn)品,通過(guò)身份證安全芯片生成帶有數(shù)字簽名的數(shù)據(jù)加密密鑰,數(shù)據(jù)發(fā)送客戶端通過(guò)該數(shù)據(jù)加密密鑰對(duì)待傳輸數(shù)據(jù)進(jìn)行加密傳輸至數(shù)據(jù)接收方,在數(shù)據(jù)加密過(guò)程中將身份證安全芯片進(jìn)行復(fù)用,不需要其它額外的安全芯片的情況下實(shí)現(xiàn)了數(shù)據(jù)加密保護(hù),節(jié)省了安全芯片資源。
1.一種利用身份證安全芯片對(duì)數(shù)據(jù)加密方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的利用身份證安全芯片對(duì)數(shù)據(jù)加密方法,其特征在于,所述獲取身份證安全芯片的用戶數(shù)據(jù)存儲(chǔ)模塊中的身份證序號(hào),具體為:
3.根據(jù)權(quán)利要求1所述的利用身份證安全芯片對(duì)數(shù)據(jù)加密方法,其特征在于,所述獲取身份證安全芯片的隨機(jī)數(shù)發(fā)生器生成的隨機(jī)數(shù),具體為:
4.根據(jù)權(quán)利要求1所述的利用身份證安全芯片對(duì)數(shù)據(jù)加密方法,其特征在于,所述獲取身份證安全芯片的主控模塊基于預(yù)設(shè)的加密算法用身份證密鑰對(duì)所述第一數(shù)字代碼進(jìn)行加密生成的第一加密密文,具體為:
5.根據(jù)權(quán)利要求1所述的利用身份證安全芯片對(duì)數(shù)據(jù)加密方法,其特征在于,所述通過(guò)數(shù)據(jù)接收方客戶端的sm2預(yù)置私鑰對(duì)所述第一加密密文進(jìn)行數(shù)字簽名生成簽名數(shù)據(jù),具體包括:
6.根據(jù)權(quán)利要求5所述的利用身份證安全芯片對(duì)數(shù)據(jù)加密方法,其特征在于,所述數(shù)據(jù)發(fā)送客戶端通過(guò)數(shù)據(jù)接收方的sm2預(yù)置公鑰進(jìn)行簽名驗(yàn)證,若簽名驗(yàn)證通過(guò),將所述簽名數(shù)據(jù)中的第一加密密文作為數(shù)據(jù)加密密鑰,具體為:
7.根據(jù)權(quán)利要求1所述的利用身份證安全芯片對(duì)數(shù)據(jù)加密方法,其特征在于,所述布爾運(yùn)算為異或運(yùn)算。
8.一種利用身份證安全芯片對(duì)數(shù)據(jù)加密裝置,其特征在于,所述裝置包括:
9.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1-8所述方法的步驟。
10.一種控制器,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上的計(jì)算機(jī)程序,其特征在于,所述處理器執(zhí)行所述計(jì)算機(jī)程序以實(shí)現(xiàn)權(quán)利要求1-8所述方法的步驟。