一種基于密碼機和USBKey的防偽碼生成與驗證方法
【專利摘要】本發(fā)明提供一種基于密碼機和USBKey的防偽碼生成與驗證方法,根據(jù)發(fā)票的稅號、金額、代碼、發(fā)票號碼、開票日期等參數(shù)計算產(chǎn)生一個特定的防偽碼,并支持驗證方法。同步提供USBKey數(shù)據(jù)驗證,解決USBKey時效性不高問題,更有效、更安全、更及時做到“一票一碼”,使用密碼機,提供支持SM1/SM2/SM3/SM4/3DES/SSF33加密的算法,根據(jù)開票方納稅人的識別號、開票金額、發(fā)票代碼、發(fā)票號碼、開票日期的發(fā)票信息,生成具有國標(biāo)規(guī)則的防偽碼,保障網(wǎng)絡(luò)安全存在的隱患,對于USBKey灌輸?shù)拿荑€存在不同于加密機任何一組密鑰的情況,則解決不了時效性問題。
【專利說明】—種基于密碼機和USBKey的防偽碼生成與驗證方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機應(yīng)用【技術(shù)領(lǐng)域】,具體地說是基于密碼機和USBKey的防偽碼生成與驗證方法,針對現(xiàn)有網(wǎng)絡(luò)發(fā)票、電子發(fā)票領(lǐng)域提供有效的發(fā)票身份識別和真?zhèn)涡则炞C。
【背景技術(shù)】
[0002]發(fā)票管理體系日趨成熟,以票控稅的理念取得廣泛共識。由此對發(fā)票真?zhèn)涡则炞C更加重要,更加有必要加強網(wǎng)絡(luò)安全和驗證手段。
[0003]在網(wǎng)絡(luò)發(fā)票和電子發(fā)票的使用依托于互聯(lián)網(wǎng),實際應(yīng)用中網(wǎng)絡(luò)存在很不穩(wěn)定的安全問題,一旦數(shù)據(jù)出現(xiàn)泄漏,后果不堪設(shè)想。
[0004]USBKey目前主要作為驗證身份、存儲數(shù)據(jù)兩種方式試用,在網(wǎng)絡(luò)發(fā)票和電子發(fā)票應(yīng)用時,存在時效性不高,存在一定間隔,不能及時滿足實際使用等情況。
[0005]基于密碼機和USBKey的防偽碼生成和驗證方法,整合保障網(wǎng)絡(luò)安全的密碼機和解決USBKey儲存數(shù)據(jù)的時效問題,提供一種更有效、更標(biāo)準(zhǔn)、更使用的管理方法和手段。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是提供一種基于密碼機和USBKey的防偽碼生成與驗證方法。
[0007]本發(fā)明的目的是按以下方式實現(xiàn)的,于針對USBKey離線存儲發(fā)票數(shù)據(jù)存在時效性不高問題,利用在保證灌裝USBKey密鑰和加密機固定一組密鑰相同的前提下,相同的防偽碼生成算法和規(guī)則,然后依托密碼機驗證,有效解決時效性不高的問題,具體包括以下步驟:
1)密碼機初始灌輸200個密鑰,每個密鑰為一組,依次順序為:(1)傳輸密鑰,(2)加密密鑰,(3) MAC密鑰,(4) TAX密鑰,(5)備用密鑰,(6)備用密鑰,每組密鑰的有效期由應(yīng)用系統(tǒng)來確定,有效期過后應(yīng)用系統(tǒng)自動啟用下一組密鑰有效;
2)加密算法支持具體實現(xiàn)算法配置如下:
0—3des ;1—SM1 ;2 — SM2 ;3 — SSF33 ;4 — SM4 ;
3)數(shù)據(jù)格式處理:
(1)在線開票時間:保留時分秒,轉(zhuǎn)化為14位數(shù)字形式;
(2)納稅人識別號:20位數(shù)字,如位數(shù)不夠前面補零;
(3)發(fā)票代碼:12位數(shù)字,如位數(shù)不夠前面補零;
(4)發(fā)票號碼:8位數(shù)字,如位數(shù)不夠前面補零;
(5)發(fā)票金額:發(fā)票金額取到分,去除小數(shù)點,然后金額前面補“0”至20位,再轉(zhuǎn)化金額至十六進(jìn)制10字節(jié)的ASCII碼;
(6)碼數(shù)據(jù)項處理:MAC值前4個字節(jié)+金額十六進(jìn)制10字節(jié)的ASCII碼+0x80;
4)將步驟3)中處理后的納稅人識別號,納稅人識別號轉(zhuǎn)換為16進(jìn)制的存放數(shù)組,對16字節(jié)的納稅人識別號數(shù)組按規(guī)則進(jìn)行處理,得到因子數(shù)組;
5)根據(jù)步驟4)得到的加密因子和加密算法,調(diào)用密碼機,生成臨時句柄和臨時密鑰; 6)根據(jù)步驟3)數(shù)據(jù),固定順序拼接數(shù)據(jù):發(fā)票代碼+發(fā)票號碼+開票日期,轉(zhuǎn)化為16進(jìn)制ASCII碼;
7)根據(jù)步驟5)得到的臨時句柄和臨時密鑰、步驟6)得到的ASCII碼和加密算法(如SM4)調(diào)用密碼機,生成MAC值,注銷臨時密鑰;
8)處理金額,將步驟3)得到的金額和7)得到的MAC值處理,得到碼數(shù)據(jù)項:MAC值前4個字節(jié)+金額十六進(jìn)制10字節(jié)的ASCII碼+0x80 ;
9)根據(jù)步驟4)得到的加密因子和加密算法SM4,調(diào)用密碼機,生成臨時句柄和臨時密鑰;
10)根據(jù)步驟7)數(shù)據(jù)項、步驟8)臨時句柄和臨時密鑰和加密算法SM4生成16個字節(jié)碼,注銷臨時密鑰、關(guān)閉密碼機;
11)將步驟9)得到的16個字節(jié)碼轉(zhuǎn)化為20數(shù)字形式碼,最后將20位數(shù)字碼最后兩位替換成所使用的密碼機密鑰組組號,最終得到防偽碼。
[0008]本方案防偽碼驗證方法,具體包括以下步驟:
1)根據(jù)發(fā)票數(shù)據(jù)和防偽碼,從密碼機調(diào)用防偽碼中的密鑰組組號生成新的碼,然后和防偽碼比較,相同則說明驗證通過,不同說明驗證不通過;
2)USBKey數(shù)據(jù)驗證,前提條件USBKey灌輸密鑰和加密機固定某一組密鑰相同,所以生成的防偽碼符合在加密機中的驗證,同理11);
3)密碼機和USBKey的防偽碼生成與驗證方法結(jié)果如下:
(1)票存根由實物留存變?yōu)殡娮蛹用苄畔⒈4?,?shù)據(jù)更為安全、保存周期更長、查詢效率更高;
(2)網(wǎng)絡(luò)更加有安全保障,USBKey應(yīng)急離線數(shù)據(jù)更及時得到驗真查驗,有效保障發(fā)票的真?zhèn)涡浴?br>
[0009]本發(fā)明的有益效果如下:
1)適用于網(wǎng)絡(luò)發(fā)票和電子發(fā)票,以20位數(shù)字形式打印到發(fā)票上;
2)支持網(wǎng)上查詢方式辨別其真?zhèn)涡浴?br>
[0010]3)需要提供USBKey移動設(shè)備存儲離線開具的發(fā)票信息;
4)需要防偽碼時時支持真?zhèn)涡则炞C,不存在時效性不高的情況;
5)根據(jù)發(fā)票數(shù)據(jù)發(fā)票信息:開票方納稅人識別號、開票金額、發(fā)票代碼、發(fā)票號碼、開票日期,生成具有國標(biāo)規(guī)則的防偽碼。
[0011]使用密碼機,提供支持SM1/SM2/SM3/SM4/3DES/SSF33加密的算法,根據(jù)開票方納稅人的識別號、開票金額、發(fā)票代碼、發(fā)票號碼、開票日期的發(fā)票信息,生成具有國標(biāo)規(guī)則的防偽碼,保障網(wǎng)絡(luò)安全存在的隱患,對于USBKey灌輸?shù)拿荑€存在不同于加密機任何一組密鑰的情況,則解決不了時效性問題。
【專利附圖】
【附圖說明】
[0012]圖1是系統(tǒng)工作流程圖;
圖2是驗證流程圖;
圖3是離線系統(tǒng)開票流程;
圖4是網(wǎng)票開具流程;
圖5密鑰管理流程。
【具體實施方式】
[0013]參照說明書附圖對本發(fā)明的方法作以下詳細(xì)地說明。
[0014]一種基于密碼機和USBKey的防偽碼生成與驗證方法,使用密碼機,提供支持SM1/SM2/SM3/SM4/3DES/SSF33加密的算法,根據(jù)發(fā)票信息:開票方納稅人識別號、開票金額、發(fā)票代碼、發(fā)票號碼、開票日期,生成具有國標(biāo)規(guī)則的防偽碼,保障網(wǎng)絡(luò)安全存在的隱患。
[0015]針對USBKey離線存儲發(fā)票數(shù)據(jù)存在時效性不高問題,利用在保證灌裝USBKey密鑰和加密機固定一組密鑰相同的前提下,相同的防偽碼生成算法和規(guī)則,然后依托密碼機驗證,有效解決了時效性不高的問題。
[0016]對于USBKey灌輸?shù)拿荑€存在不同于加密機任何一組密鑰的情況,則解決不了時效性問題。
[0017]本方案防偽碼生成方法,具體包括以下步驟:(如圖1所示)
1)密碼機初始灌輸200個密鑰,現(xiàn)每個密鑰為一組,依次順序為:1、傳輸密鑰2、加密密鑰3、MAC密鑰4、TAX密鑰5、備用密鑰6、備用密鑰,每組密鑰的有效期一般設(shè)為4年(由應(yīng)用系統(tǒng)來確定),有效期過后應(yīng)用系統(tǒng)自動啟用下一組密鑰有效;
2)加密算法支持具體實現(xiàn)算法的具體配置如下:
0—3des ;1—SMI ;2—SM2 ;3—SSF33 ;4—SM4 ;
3)數(shù)據(jù)格式處理:
1、在線開票時間:保留時分秒,轉(zhuǎn)化為14位數(shù)字形式;
2、納稅人識別號:20位數(shù)字,如位數(shù)不夠前面補零;
3、發(fā)票代碼:12位數(shù)字,如位數(shù)不夠前面補零;
4、發(fā)票號碼:8位數(shù)字,如位數(shù)不夠前面補零;
5、發(fā)票金額:發(fā)票金額取到分,去除小數(shù)點,然后金額前面補“0”至20位,再轉(zhuǎn)化金額至十六進(jìn)制ASCII碼(10字節(jié));
6、碼數(shù)據(jù)項處理:MAC值前4個字節(jié)+金額十六進(jìn)制ASCII碼(10字節(jié))+0x80;
4)將步驟3)中處理后的納稅人識別號,納稅人識別號轉(zhuǎn)換為16進(jìn)制的存放數(shù)組,對16字節(jié)的納稅人識別號數(shù)組按規(guī)則進(jìn)行處理,得到因子數(shù)組;
5)根據(jù)步驟4)得到的加密因子和加密算法(如SM4),調(diào)用密碼機,生成臨時句柄和臨時密鑰;
6)根據(jù)步驟3)數(shù)據(jù),固定順序拼接數(shù)據(jù):發(fā)票代碼+發(fā)票號碼+開票日期,轉(zhuǎn)化為16進(jìn)制ASCII碼;
7)根據(jù)步驟5)得到的臨時句柄和臨時密鑰、步驟6)得到的ASCII碼和加密算法(如SM4)調(diào)用密碼機,生成MAC值,注銷臨時密鑰;
8)處理金額,將步驟3)得到的金額和步驟7)得到的MAC值處理,得到碼數(shù)據(jù)項:MAC值前4個字節(jié)+金額十六進(jìn)制ASCI I碼(10字節(jié))+0x80 ;
9)根據(jù)步驟4)得到的加密因子和加密算法(如SM4),調(diào)用密碼機,生成臨時句柄和臨時密鑰;
10)根據(jù)步驟7)數(shù)據(jù)項、步驟8)臨時句柄和臨時密鑰和加密算法(SM4)生成16個字節(jié)碼,注銷臨時密鑰、關(guān)閉密碼機;
11)將步驟9)得到的16個字節(jié)碼轉(zhuǎn)化為20數(shù)字形式碼,最后將20位數(shù)字碼最后兩位替換成所使用的密碼機密鑰組組號,最終得到防偽碼;
12)本方案防偽碼驗證方法,具體包括以下步驟:(如圖2所示)
(1)根據(jù)發(fā)票數(shù)據(jù)和防偽碼,從密碼機調(diào)用防偽碼中的密鑰組組號生成新的碼,然后和防偽碼比較,相同則說明驗證通過,不同說明驗證不通過;
(2)USBKey數(shù)據(jù)驗證,前提條件USBKey灌輸密鑰和加密機固定某一組密鑰相同,所以生成的防偽碼符合在加密機中的驗證,同理11);
13)密碼機和USBKey的防偽碼生成與驗證方法結(jié)果如下:
1、票存根由實物留存變?yōu)殡娮蛹用苄畔⒈4?,?shù)據(jù)更為安全、保存周期更長、查詢效率更聞;
2、網(wǎng)絡(luò)更加有安全保障,USBKey應(yīng)急離線數(shù)據(jù)更及時得到驗真查驗,有效保障發(fā)票的真?zhèn)涡浴?br>
[0018]除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。
【權(quán)利要求】
1.一種基于密碼機和USBKey的防偽碼生成與驗證方法,其特征在于針對USBKey離線存儲發(fā)票數(shù)據(jù)存在時效性不高問題,利用在保證灌裝USBKey密鑰和加密機固定一組密鑰相同的前提下,相同的防偽碼生成算法和規(guī)則,然后依托密碼機驗證,有效解決時效性不高的問題,具體包括以下步驟: 1)密碼機初始灌輸200個密鑰,每個密鑰為一組,依次順序為:(I)傳輸密鑰,(2)加密密鑰,(3) MAC密鑰,(4) TAX密鑰,(5)備用密鑰,(6)備用密鑰,每組密鑰的有效期由應(yīng)用系統(tǒng)來確定,有效期過后應(yīng)用系統(tǒng)自動啟用下一組密鑰有效; 2)加密算法支持具體實現(xiàn)算法配置如下: O—3des ;1—SMl ;2—SM2 ;3—SSF33 ;4—SM4 ; 3)數(shù)據(jù)格式處理: (1)在線開票時間:保留時分秒,轉(zhuǎn)化為14位數(shù)字形式; (2)納稅人識別號:20位數(shù)字,如位數(shù)不夠前面補零; (3)發(fā)票代碼:12位數(shù)字,如位數(shù)不夠前面補零; (4)發(fā)票號碼:8位數(shù)字,如位數(shù)不夠前面補零; (5)發(fā)票金額:發(fā)票金額取到分,去除小數(shù)點,然后金額前面補“O”至20位,再轉(zhuǎn)化金額至十六進(jìn)制10字節(jié)的ASCII碼; (6)碼數(shù)據(jù)項處理:MAC值前4個字節(jié)+金額十六進(jìn)制10字節(jié)的ASCII碼+0x80; 4)將步驟3)中處理后的納稅人識別號,納稅人識別號轉(zhuǎn)換為16進(jìn)制的存放數(shù)組,對16字節(jié)的納稅人識別號數(shù)組按規(guī)則進(jìn)行處理,得到因子數(shù)組; 5)根據(jù)步驟4)得到的加密因子和加密算法,調(diào)用密碼機,生成臨時句柄和臨時密鑰; 6)根據(jù)步驟3)數(shù)據(jù),固定順序拼接數(shù)據(jù):發(fā)票代碼+發(fā)票號碼+開票日期,轉(zhuǎn)化為16進(jìn)制ASCII碼; 7)根據(jù)步驟5)得到的臨時句柄和臨時密鑰、步驟6)得到的ASCII碼和加密算法(如SM4)調(diào)用密碼機,生成MAC值,注銷臨時密鑰; 8)處理金額,將步驟3)得到的金額和7)得到的MAC值處理,得到碼數(shù)據(jù)項:MAC值前4個字節(jié)+金額十六進(jìn)制10字節(jié)的ASCII碼+0x80 ; 9)根據(jù)步驟4)得到的加密因子和加密算法SM4,調(diào)用密碼機,生成臨時句柄和臨時密鑰; 10)根據(jù)步驟7)數(shù)據(jù)項、步驟8)臨時句柄和臨時密鑰和加密算法SM4生成16個字節(jié)碼,注銷臨時密鑰、關(guān)閉密碼機; 11)將步驟9)得到的16個字節(jié)碼轉(zhuǎn)化為20數(shù)字形式碼,最后將20位數(shù)字碼最后兩位替換成所使用的密碼機密鑰組組號,最終得到防偽碼; 防偽碼驗證包括以下步驟: 1)根據(jù)發(fā)票數(shù)據(jù)和防偽碼,從密碼機調(diào)用防偽碼中的密鑰組組號生成新的碼,然后和防偽碼比較,相同則說明驗證通過,不同說明驗證不通過; 2)USBKey數(shù)據(jù)驗證,前提條件USBKey灌輸密鑰和加密機固定某一組密鑰相同,所以生成的防偽碼符合在加密機中的驗證,與步驟11相同; 3)密碼機和USBKey的防偽碼生成與驗證方法結(jié)果如下: (I)票存根由實物留存變?yōu)殡娮蛹用苄畔⒈4?,?shù)據(jù)更為安全、保存周期更長、查詢效率更高; (2)網(wǎng)絡(luò)更加有安全保障,USBKey應(yīng)急離線數(shù)據(jù)更及時得到驗真查驗,有效保障發(fā)票的真?zhèn)涡浴?br>
【文檔編號】G06F21/46GK104318461SQ201410564708
【公開日】2015年1月28日 申請日期:2014年10月22日 優(yōu)先權(quán)日:2014年10月22日
【發(fā)明者】鄧博, 李大凱, 于治樓 申請人:浪潮軟件集團(tuán)有限公司