基于cpk的二維碼生成和驗(yàn)證方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種基于CPK的二維碼的生成和驗(yàn)證方法及裝置,該生成方法包括:確定二維碼的載體的關(guān)鍵信息;根據(jù)預(yù)先配置的私鑰對(duì)關(guān)鍵信息進(jìn)行簽名,生成數(shù)字簽名信息;將數(shù)字簽名信息和二維碼的載體的信息進(jìn)行組合,生成防偽信息;根據(jù)二維碼編碼技術(shù)對(duì)防偽信息進(jìn)行編碼,生成二維碼。該驗(yàn)證方法包括:對(duì)二維碼進(jìn)行解碼,讀取二維碼中存儲(chǔ)的數(shù)字簽名信息和二維碼的載體的信息;對(duì)讀取的數(shù)字簽名信息進(jìn)行分析,得到公鑰;根據(jù)公鑰、二維碼的載體的信息對(duì)數(shù)字簽名信息進(jìn)行驗(yàn)證。本發(fā)明通過CPK簽名驗(yàn)證協(xié)議判定二維碼的真實(shí)性與完整性,從而實(shí)現(xiàn)對(duì)載體的真?zhèn)舞b別,簡(jiǎn)化了防偽信息的驗(yàn)證過程、降低驗(yàn)證防偽信息的難度。
【專利說明】基于0%的二維碼生成和驗(yàn)證方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及二維碼的生成及驗(yàn)證技術(shù),具體來說,涉及一種基于?油11。1(67,組合公鑰)的二維碼生成和驗(yàn)證方法及裝置。
【背景技術(shù)】
[0002]現(xiàn)有的防偽技術(shù)雖然廣泛應(yīng)用于生產(chǎn)生活各個(gè)領(lǐng)域,但都存在實(shí)現(xiàn)成本高,技術(shù)難度大,易被克隆的問題,特別是用于與日常生活密切相關(guān)的票據(jù)、證券、證件、證書、文憑以及一些貴重商品的防偽技術(shù),在現(xiàn)有的防偽技術(shù)中,雖然采用了不斷更新的激光防偽、水印、特殊紙墨、金屬線、熒光印刷、粒子加速器打碼、激光打碼等方法,但由于巨大利益驅(qū)使,不法分子還是能夠不斷跟蹤、提高技術(shù),并采用高科技犯罪手段對(duì)票據(jù)、票證等重要產(chǎn)品進(jìn)行仿造、復(fù)制,從而使偽品進(jìn)入流通領(lǐng)域。
[0003]目前,雖然政府加大了對(duì)制造偽品的打擊力度,但是,仍難以阻止偽品的增加,而對(duì)日益增多的高科技偽造犯罪,普通人群鑒別偽品也日漸困難,而如何讓公眾快速、準(zhǔn)確、方便地鑒別其真?zhèn)危彩钱?dāng)前迫切需要解決的問題。
[0004]針對(duì)相關(guān)技術(shù)中不能簡(jiǎn)單易行的驗(yàn)證防偽二維碼信息的真實(shí)性和完整性的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0005]針對(duì)相關(guān)技術(shù)中不能簡(jiǎn)單易行的驗(yàn)證防偽二維碼信息的真實(shí)性和完整性的問題,本發(fā)明提出一種0?的二維碼的生成和驗(yàn)證方法及裝置,能夠有效的驗(yàn)證二維碼的真實(shí)性,實(shí)現(xiàn)了簡(jiǎn)化防偽信息的驗(yàn)證過程、降低驗(yàn)證防偽信息的難度的效果。
[0006]本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0007]根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于0?的二維碼的生成方法。
[0008]該生成方法包括:
[0009]確定二維碼的載體的關(guān)鍵信息;
[0010]根據(jù)預(yù)先配置的私鑰對(duì)關(guān)鍵信息進(jìn)行簽名,生成數(shù)字簽名信息;
[0011]將數(shù)字簽名信息和二維碼的載體的信息進(jìn)行組合,生成防偽信息;
[0012]根據(jù)二維碼編碼技術(shù)對(duì)防偽信息進(jìn)行編碼,生成二維碼。
[0013]其中,該關(guān)鍵信息包括以下至少之一:
[0014]載體的編號(hào)、載體的名稱、載體的日期、載體的金額。
[0015]此外,該生成方法還可包括:
[0016]預(yù)先配置私鑰,其中,私鑰為載體的對(duì)應(yīng)機(jī)構(gòu)的私鑰,并且,在預(yù)先配置私鑰時(shí),可根據(jù)密鑰管理系統(tǒng)依據(jù)私鑰矩陣和組合公鑰算法,將載體的對(duì)應(yīng)機(jī)構(gòu)的名稱作為標(biāo)識(shí)生成與載體的對(duì)應(yīng)機(jī)構(gòu)對(duì)應(yīng)的私鑰。
[0017]另外,該生成方法還可包括:
[0018]將二維碼打印至對(duì)應(yīng)的載體的預(yù)定位置。
[0019]根據(jù)本發(fā)明的另一方面,提供了一種基于CPK的二維碼的驗(yàn)證方法。
[0020]該驗(yàn)證方法包括:
[0021]對(duì)二維碼進(jìn)行解碼,讀取二維碼中存儲(chǔ)的數(shù)字簽名信息和二維碼的載體的信息;
[0022]對(duì)讀取的數(shù)字簽名信息進(jìn)行分析,得到公鑰;
[0023]根據(jù)公鑰、二維碼的載體的信息對(duì)數(shù)字簽名信息進(jìn)行驗(yàn)證。
[0024]其中,在對(duì)讀取出的數(shù)字簽名信息進(jìn)行分析,得到公鑰時(shí),可對(duì)讀取出的數(shù)字簽名信息進(jìn)行分析,確定出數(shù)字簽名信息中包含的載體的對(duì)應(yīng)機(jī)構(gòu)的名稱;并根據(jù)載體的對(duì)應(yīng)機(jī)構(gòu)的名稱、以及對(duì)應(yīng)的公鑰矩陣和組合公鑰算法,得到公鑰。
[0025]此外,在根據(jù)公鑰、二維碼的載體的信息對(duì)數(shù)字簽名信息進(jìn)行驗(yàn)證之前,該驗(yàn)證方法還可包括:
[0026]將讀取的數(shù)字簽名信息和二維碼的載體的信息與預(yù)先配置的黑名單信息進(jìn)行匹配,如果匹配成功,則終止對(duì)數(shù)字簽名信息的驗(yàn)證。
[0027]另外,在根據(jù)所述公鑰、所述二維碼的載體的信息對(duì)數(shù)字簽名信息進(jìn)行驗(yàn)證后,在驗(yàn)證通過的情況下,該驗(yàn)證方法還可包括:
[0028]將從所述二維碼中讀取的對(duì)應(yīng)載體的信息與二維碼的載體中的信息進(jìn)行對(duì)比驗(yàn)證。
[0029]根據(jù)本發(fā)明的再一方面,還提供了一種基于CPK的二維碼的生成裝置。
[0030]該生成裝置包括:
[0031]確定模塊,用于確定二維碼的載體的關(guān)鍵信息;
[0032]簽名模塊,用于根據(jù)預(yù)先配置的私鑰對(duì)關(guān)鍵信息進(jìn)行簽名,生成數(shù)字簽名信息;
[0033]組合模塊,用于將數(shù)字簽名信息和二維碼的載體的信息進(jìn)行組合,生成防偽信息;
[0034]生成模塊,用于根據(jù)二維碼編碼技術(shù)對(duì)防偽信息進(jìn)行編碼,生成二維碼。
[0035]根據(jù)本發(fā)明的又一方面,還提供了一種基于CPK的二維碼的驗(yàn)證裝置。
[0036]該驗(yàn)證裝置包括:
[0037]解碼模塊,用于對(duì)二維碼進(jìn)行解碼,讀取二維碼中存儲(chǔ)的數(shù)字簽名信息和二維碼的載體的信息;
[0038]分析模塊,用于對(duì)讀取的數(shù)字簽名信息進(jìn)行分析,得到公鑰;
[0039]驗(yàn)證模塊,用于根據(jù)公鑰、二維碼的載體的信息對(duì)數(shù)字簽名信息進(jìn)行驗(yàn)證。
[0040]本發(fā)明在二維碼生成過程中,通過載體對(duì)應(yīng)的私鑰對(duì)載體的關(guān)鍵信息進(jìn)行簽名,從而保證了二維碼中數(shù)據(jù)的真實(shí)性,為后期的驗(yàn)證提供了有力的依據(jù)。而在二維碼的驗(yàn)證過程中,通過直接解碼二維碼中的數(shù)據(jù),根據(jù)解碼的數(shù)據(jù)計(jì)算出載體信息、數(shù)字簽名信息,并根據(jù)數(shù)字簽名信息計(jì)算公鑰,利用公鑰和載體信息來驗(yàn)證數(shù)字簽名信息,進(jìn)而確定二維碼的真實(shí)性。
[0041]在整個(gè)驗(yàn)證過程中,本發(fā)明借助二維碼技術(shù),做到了隨時(shí)隨地、簡(jiǎn)單易行的驗(yàn)證,進(jìn)而使得驗(yàn)證手段更為便捷和通用化,實(shí)現(xiàn)了簡(jiǎn)化防偽信息的驗(yàn)證過程、降低驗(yàn)證防偽信息的難度的效果。
【專利附圖】
【附圖說明】
[0042]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0043]圖1是根據(jù)本發(fā)明實(shí)施例的基于(3?的二維碼的生成方法的流程圖;
[0044]圖2是根據(jù)本發(fā)明一具體實(shí)施例的基于(3?的二維碼的生成方法的流程圖;
[0045]圖3是根據(jù)本發(fā)明實(shí)施例的基于(?的二維碼的驗(yàn)證方法的流程圖;
[0046]圖4是根據(jù)本發(fā)明一具體實(shí)施例的基于(3?的二維碼的驗(yàn)證方法的流程圖;
[0047]圖5是根據(jù)本發(fā)明實(shí)施例的基于(3?的二維碼票據(jù)的示意圖;
[0048]圖6是根據(jù)本發(fā)明實(shí)施例的載體核發(fā)機(jī)構(gòu)發(fā)布基于0?的二維碼票據(jù)的防偽驗(yàn)證程序的流程圖;
[0049]圖7是根據(jù)本發(fā)明實(shí)施例的基于(?的二維碼的生成裝置的框圖;
[0050]圖8是根據(jù)本發(fā)明實(shí)施例的基于(3?的二維碼的驗(yàn)證裝置的框圖。
【具體實(shí)施方式】
[0051]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0052]根據(jù)本發(fā)明的實(shí)施例,提供了一種基于組合公鑰0?的二維碼的生成方法。
[0053]如圖1所示,根據(jù)本發(fā)明實(shí)施例的二維碼的生成方法包括:
[0054]步驟3101,確定二維碼的載體的關(guān)鍵信息;
[0055]步驟3103,根據(jù)預(yù)先配置的私鑰對(duì)關(guān)鍵信息進(jìn)行簽名,生成數(shù)字簽名信息;
[0056]步驟3105,將數(shù)字簽名信息和二維碼的載體的信息進(jìn)行組合,生成防偽信息;
[0057]步驟3107,根據(jù)二維碼編碼技術(shù)對(duì)防偽信息進(jìn)行編碼,生成二維碼。
[0058]其中,該關(guān)鍵信息包括以下至少之一:
[0059]載體的編號(hào)、載體的名稱、載體的日期、載體的金額。
[0060]在上述過程中,所謂的載體是指二維碼所依附的物品,例如發(fā)票,當(dāng)載體為發(fā)票時(shí),二維碼的載體的關(guān)鍵信息可以為發(fā)票的編號(hào)、開票的單位(即,載體的名稱〉、開票的日期、付款的單位、貨品的名稱、貨品的數(shù)量、付款的金額等等,或是以上信息的任意組合,而二維碼的載體的信息則是涵蓋了上述關(guān)鍵信息,也就是說,載體的信息還可以包括載體上除關(guān)鍵信息外的信息,在這里,載體的信息也可以叫做票據(jù)信息。二維碼的生成過程如圖2所示,從圖2中可以看出,當(dāng)要生成載體(例如,發(fā)票)的防偽二維碼時(shí),首先,需要確定二維碼載體(例如,票據(jù))的關(guān)鍵信息;然后,根據(jù)載體所對(duì)應(yīng)的機(jī)構(gòu)(例如,發(fā)行票據(jù)的機(jī)構(gòu)、或者與載體關(guān)聯(lián)的其他形式的機(jī)構(gòu))提供的私鑰對(duì)載體的關(guān)鍵信息進(jìn)行簽名,得到載體防偽信息的簽名;然后,再將載體的防偽信息簽名和載體信息進(jìn)行組合,生成防偽信息;最后,在利用二維碼編碼技術(shù),將生成的防偽信息進(jìn)行編碼,得到載體的二維碼。
[0061]其中,在實(shí)際應(yīng)用中,不同的票據(jù)核發(fā)機(jī)構(gòu)擁有基于本機(jī)構(gòu)名稱標(biāo)識(shí)的(3?私鑰,獨(dú)立核發(fā)本機(jī)構(gòu)業(yè)務(wù)范圍內(nèi)的票據(jù),并進(jìn)行數(shù)字簽名操作,可以有效防止內(nèi)部作案和機(jī)構(gòu)抵賴。
[0062]而在實(shí)際生成時(shí),二維碼的載體的關(guān)鍵信息可以根據(jù)實(shí)際的載體情況,自行定義。
[0063]此外,為了實(shí)現(xiàn)上述步驟,根據(jù)本發(fā)明實(shí)施例的基于CPK的二維碼生成方法還可包括:預(yù)先配置私鑰,其中,私鑰為載體的對(duì)應(yīng)機(jī)構(gòu)的私鑰,可根據(jù)載體的對(duì)應(yīng)機(jī)構(gòu)的名稱得到。具體實(shí)踐時(shí),私鑰根據(jù)載體的對(duì)應(yīng)機(jī)構(gòu)的名稱得到的具體方法可以是通過密鑰管理系統(tǒng)使用私鑰矩陣和組合公鑰算法,將載體的對(duì)應(yīng)機(jī)構(gòu)的名稱作為標(biāo)識(shí)生成與載體的對(duì)應(yīng)機(jī)構(gòu)對(duì)應(yīng)的私鑰,在具體實(shí)踐時(shí),所有的機(jī)構(gòu)可以共同的使用同一私鑰矩陣和組合公鑰算法,以使驗(yàn)證者能夠?qū)λ械臋C(jī)構(gòu)的產(chǎn)品進(jìn)行統(tǒng)一驗(yàn)證。
[0064]另外,為了防止防偽電子標(biāo)簽在使用后,被再次利用,根據(jù)本發(fā)明實(shí)施例的基于CPK的二維碼的生成方法還可包括:將二維碼打印至對(duì)應(yīng)的載體的預(yù)定位置,使二維碼與載體不可分離,而在分離時(shí),將導(dǎo)致二維碼被破壞,防止二維碼被回收再利用。
[0065]根據(jù)本發(fā)明的實(shí)施例,還提供了一種基于CPK的二維碼的驗(yàn)證方法。
[0066]如圖3所示,根據(jù)本發(fā)明實(shí)施例的基于CPK的二維碼的驗(yàn)證方法包括:
[0067]步驟S301,對(duì)二維碼進(jìn)行解碼,讀取二維碼中存儲(chǔ)的數(shù)字簽名信息和二維碼的載體的信息;
[0068]步驟S303,對(duì)讀取的數(shù)字簽名信息進(jìn)行分析,得到公鑰;
[0069]步驟S305,根據(jù)公鑰、二維碼的載體的信息對(duì)數(shù)字簽名信息進(jìn)行驗(yàn)證。
[0070]在上述過程中,所謂的載體是指二維碼所依附的物品,例如發(fā)票,當(dāng)載體為發(fā)票時(shí),二維碼的載體的關(guān)鍵信息可以為發(fā)票的編號(hào)、開票的單位(即,載體的名稱)、開票的日期、付款的單位、貨品的名稱、貨品的數(shù)量、付款的金額等等,或是以上信息的任意組合,而二維碼的載體的信息則是涵蓋了上述關(guān)鍵信息,也就是說,載體的信息還可以包括載體上除關(guān)鍵信息外的信息,在這里,載體的信息也可以叫做票據(jù)信息。當(dāng)載體為票據(jù)時(shí),二維碼的驗(yàn)證過程如圖4所示,從圖4中可以看出,當(dāng)要驗(yàn)證載體(例如,發(fā)票)的防偽二維碼時(shí),首先,需要通過二維碼解碼技術(shù)對(duì)二維碼進(jìn)行解碼,從而讀取二維碼中存儲(chǔ)的防偽信息的簽名和載體的信息;然后,根據(jù)防偽信息的簽名確定出機(jī)構(gòu)的公鑰,通過公鑰訪問載體的防偽信息的簽名,讀取出載體的關(guān)鍵信息,同時(shí)對(duì)讀取到的載體的信息進(jìn)行關(guān)鍵信息的提取,然后,將從二維碼中利用公鑰讀取到的載體的關(guān)鍵信息和從二維碼中的載體信息中提取到的關(guān)鍵信息進(jìn)行比較,驗(yàn)證防偽信息的簽名是否是真的。
[0071]而在實(shí)際生成時(shí),二維碼的載體的關(guān)鍵信息可以根據(jù)實(shí)際的載體情況,自行定義。
[0072]在上述步驟中,在對(duì)讀取出的數(shù)字簽名信息進(jìn)行分析,確定公鑰時(shí),可對(duì)讀取出的數(shù)字簽名信息進(jìn)行分析,確定出數(shù)字簽名信息中包含的載體的對(duì)應(yīng)機(jī)構(gòu)的名稱;并根據(jù)載體的對(duì)應(yīng)機(jī)構(gòu)的名稱、以及對(duì)應(yīng)的公鑰矩陣和組合公鑰算法,得到公鑰。
[0073]具體實(shí)踐時(shí),根據(jù)載體的對(duì)應(yīng)機(jī)構(gòu)的名稱、以及與密鑰管理系統(tǒng)中對(duì)應(yīng)的公鑰矩陣和組合公鑰算法,得到公鑰的具體方法可以是根據(jù)載體的對(duì)應(yīng)機(jī)構(gòu)的名稱,通過與密鑰管理系統(tǒng)對(duì)應(yīng)的公鑰矩陣和組合公鑰算法,計(jì)算出公鑰。
[0074]在具體實(shí)踐時(shí),在根據(jù)公鑰、二維碼的載體的信息對(duì)數(shù)字簽名信息進(jìn)行驗(yàn)證之前,還可將讀取的數(shù)字簽名信息和二維碼的載體的信息與預(yù)先配置的黑名單信息進(jìn)行匹配,如果匹配成功,則終止對(duì)數(shù)字簽名信息的驗(yàn)證。
[0075]其中,預(yù)先配置的黑名單是可動(dòng)態(tài)更新的偽造發(fā)票的唯一標(biāo)識(shí)。
[0076]根據(jù)上述步驟確定出的公鑰和載體的信息對(duì)數(shù)字簽名信息進(jìn)行驗(yàn)證,如果驗(yàn)證失敗,則證明該二維碼為偽造品;如果驗(yàn)證成功,則證明此二維碼時(shí)由該二維碼內(nèi)包含的載體的信息中標(biāo)注的載體核發(fā)機(jī)構(gòu)所制作生產(chǎn),同時(shí),在驗(yàn)證通過的情況下,為了保證該二維碼中的載體的核發(fā)機(jī)構(gòu)簽發(fā)的防偽簽名與該載體的業(yè)務(wù)唯一關(guān)聯(lián)的特性,該驗(yàn)證方法還包括:將從所述二維碼中讀取的對(duì)應(yīng)載體的信息與二維碼的載體中記載的信息進(jìn)行對(duì)比驗(yàn)證,對(duì)比結(jié)果為相同,則證明綁定此二維碼的載體(例如,票據(jù))為真的。
[0077]以下結(jié)合二維碼在商品發(fā)票中的實(shí)例對(duì)本發(fā)明的上述方案進(jìn)行詳細(xì)說明。
[0078]在本實(shí)施例中,發(fā)票的開票單位使用本機(jī)構(gòu)的標(biāo)識(shí),例如XX商貿(mào)公司,并根據(jù)0?密鑰管理系統(tǒng)的私鑰矩陣和組合公鑰算法來生成本單位的私鑰。在二維碼生成過程中,首先需要用此私鑰對(duì)發(fā)票的關(guān)鍵信息進(jìn)行簽名,其中,關(guān)鍵信息在本實(shí)施例中為發(fā)票編號(hào)(本例中的編號(hào)為耵0000187209)、開票單位、開票日期、付款單位、貨品名稱、貨品數(shù)量、金額等組合成固定格式的字符串,然后計(jì)算此字符串的哈希值,并對(duì)此哈希值進(jìn)行簽名;接著,將簽名結(jié)果與上述票據(jù)信息繼續(xù)組合,并依照二維碼編碼規(guī)則,將其生成二維碼圖形;最后,將此二維碼打印紙發(fā)票的固定位置后,如圖5所示,就此完成0? 二維碼防偽發(fā)票的制作。
[0079]在具體實(shí)踐中,發(fā)票開具單位(票據(jù)核發(fā)機(jī)構(gòu))將會(huì)基于移動(dòng)操作系統(tǒng),將0? 二維碼防偽程序公開發(fā)布,如圖6所示,票據(jù)收訖人則可以使用移動(dòng)設(shè)備通過正式渠道下載并安裝該防偽程序;其中,該防偽程序內(nèi)嵌0?組合公鑰算法以及公鑰矩陣,根據(jù)公鑰矩陣及算法可以實(shí)時(shí)計(jì)算任何票據(jù)核發(fā)機(jī)構(gòu)的公鑰,進(jìn)而完成對(duì)發(fā)票的二維碼驗(yàn)證操作;此外,該程序還內(nèi)置了可動(dòng)態(tài)更新的偽造發(fā)票編碼黑名單,可以直接確定黑名單中的票據(jù),縮短驗(yàn)證時(shí)間。
[0080]在本實(shí)施例中,通過權(quán)威機(jī)構(gòu)將0? 二維碼防偽軟件公開地、廣泛地發(fā)布,達(dá)到了群體性的防偽,任何個(gè)人都可以隨時(shí)隨地的對(duì)接收的票據(jù)進(jìn)行真?zhèn)蔚蔫b別,有效的威懾了造假犯罪。
[0081]當(dāng)票據(jù)收訖人接收到票據(jù),則使用該防偽程序?qū)ζ睋?jù)真?zhèn)芜M(jìn)行驗(yàn)證,首先,票據(jù)收訖人需要通過該防偽程序掃描票據(jù)上的二維碼通過對(duì)二維碼的解析,得到了票據(jù)的簽名數(shù)據(jù)和發(fā)票信息;然后將根據(jù)解析出的發(fā)票編號(hào)與程序內(nèi)部偽造發(fā)票黑名單進(jìn)行匹配驗(yàn)證,如存在匹配記錄,則提示此發(fā)票存在高度偽造的嫌疑,提示驗(yàn)證失?。?br>
[0082]對(duì)于類似發(fā)票、收據(jù)這樣有具體收付單位的票據(jù),造假者不大可能針對(duì)某一真票進(jìn)行大量復(fù)制,所以驗(yàn)證過程的對(duì)上述步驟的對(duì)發(fā)票編號(hào)的黑名單匹配可以省略,但是對(duì)于門票、有價(jià)證券等票據(jù),造假者就有可能針對(duì)某一真品進(jìn)行大量復(fù)制牟利,而一旦該批偽造票據(jù)投放市場(chǎng),只要其中一件偽造品被其他防偽措施所識(shí)別,則該編號(hào)或序號(hào)將被加入黑名單中,并通過網(wǎng)絡(luò)或其他途徑廣泛更新到裝有二維碼鑒別軟件的識(shí)別器上,此時(shí),就可以通過對(duì)解析后的編號(hào)進(jìn)行黑名單的匹配,確定所有克隆該編號(hào)的偽造票據(jù),而所有還未來得及投放的偽造票據(jù)也將會(huì)無法再投入到市場(chǎng),這就能夠給造假者在經(jīng)濟(jì)上予以沉重的打擊,從而在經(jīng)濟(jì)層面上達(dá)到杜絕批量造假的目的。
[0083]如果不存在匹配記錄,則對(duì)簽名數(shù)據(jù)進(jìn)行解析獲取二維碼內(nèi)數(shù)字簽名中的核發(fā)機(jī)構(gòu)的標(biāo)識(shí)(票據(jù)核發(fā)機(jī)構(gòu)的名稱),這里為開票單位,并根據(jù)獲取的票據(jù)核發(fā)機(jī)構(gòu)的名稱、以及程序內(nèi)置的公鑰矩陣和組合公鑰算法,計(jì)算得到該發(fā)票核發(fā)單位的公鑰;通過該公鑰對(duì)簽名數(shù)據(jù)進(jìn)行驗(yàn)證,如果驗(yàn)證失敗,則提示該發(fā)票為偽造發(fā)票,并停止驗(yàn)證;如果驗(yàn)證成功,則證明此發(fā)票是由二維碼上發(fā)票信息標(biāo)明的開票單位開具,與此同時(shí),在驗(yàn)證成功下得到了一個(gè)哈希值,然后,提取二維碼內(nèi)發(fā)票信息,并對(duì)其技術(shù)哈希值,接著將兩個(gè)哈希值進(jìn)行對(duì)比,如果不同,則證明該發(fā)票為偽造發(fā)票;如果相同,則證明此二維碼未被篡改,并將二維碼內(nèi)的發(fā)票信息顯示到掃描設(shè)備上,例如手機(jī)屏幕,此時(shí),票據(jù)收訖人可以將屏幕上的信息與紙質(zhì)發(fā)票上填寫的發(fā)票信息對(duì)比,用以確定該二維碼是對(duì)應(yīng)于此發(fā)票的,如果對(duì)比結(jié)果為相同,則發(fā)票為真實(shí)的。
[0084]基于以上描述可以看出,本發(fā)明通過將票據(jù)的票面信息和含有與之相應(yīng)的二維碼同時(shí)綁定在每張票據(jù)上;并通過可讀的票面信息和解析后的二維碼信息對(duì)比是否相符的方式,可方便快捷地進(jìn)行本地實(shí)時(shí)真?zhèn)蔚蔫b定;此外,本發(fā)明采用二維碼作為防偽信息載體,成本低,信息儲(chǔ)存量大,并可用掃描圖像方式錄入信息,快速解碼,立即得到防偽驗(yàn)證結(jié)果;而且,二維碼終端驗(yàn)證設(shè)備普及,方便、實(shí)用,帶有拍照功能并加載有CPK 二維碼防偽軟件的手機(jī)等移動(dòng)電子設(shè)備都可以作為認(rèn)證終端設(shè)備;而CPK公鑰是基于標(biāo)識(shí)的算法體制,可以即時(shí)計(jì)算簽名人的公鑰,而無需連接至密鑰管理中心索取,完全實(shí)現(xiàn)離線驗(yàn)證;此外,本發(fā)明可以根據(jù)建設(shè)需要,選擇是否聯(lián)網(wǎng)以索取其他信息,如黑名單列表等;本發(fā)明的防偽驗(yàn)證方法不僅防偽效果好,更重要的是能夠利用當(dāng)前公眾普遍使用、隨身攜帶的電子數(shù)碼產(chǎn)品,如手機(jī)以及商家的必備設(shè)備,如掃描器等,快速、準(zhǔn)確、方便地鑒別產(chǎn)品真?zhèn)?,將偽品消滅在流通之前?br>
[0085]根據(jù)本發(fā)明的實(shí)施例,還提供了一種基于CPK的二維碼的生成裝置。
[0086]如圖7所示,根據(jù)本發(fā)明實(shí)施例的基于CPK的二維碼的生成裝置包括:
[0087]確定模塊71,用于確定二維碼的載體的關(guān)鍵信息;
[0088]簽名模塊72,用于根據(jù)預(yù)先配置的私鑰對(duì)關(guān)鍵信息進(jìn)行簽名,生成數(shù)字簽名信息;
[0089]組合模塊73,用于將數(shù)字簽名信息和二維碼的載體的信息進(jìn)行組合,生成防偽信息;
[0090]生成模塊74,用于根據(jù)二維碼編碼技術(shù)對(duì)防偽信息進(jìn)行編碼,生成二維碼。
[0091]根據(jù)本發(fā)明的實(shí)施例,還提供了一種基于CPK的二維碼的驗(yàn)證裝置。
[0092]如圖8所示,根據(jù)本發(fā)明實(shí)施例的基于CPK的二維碼的驗(yàn)證裝置包括:
[0093]解碼模塊81,用于對(duì)二維碼進(jìn)行解碼,讀取二維碼中存儲(chǔ)的數(shù)字簽名信息和二維碼的載體的信息;
[0094]分析模塊82,用于對(duì)讀取的數(shù)字簽名信息進(jìn)行分析,得到公鑰;
[0095]驗(yàn)證模塊83,用于根據(jù)公鑰、二維碼的載體的信息對(duì)數(shù)字簽名信息進(jìn)行驗(yàn)證。
[0096]綜上所述,借助于本發(fā)明的上述技術(shù)方案,本發(fā)明在二維碼生成過程中,通過載體核發(fā)機(jī)構(gòu)的私鑰對(duì)載體的關(guān)鍵信息進(jìn)行簽名,從而保證了二維碼中數(shù)據(jù)的真實(shí)性,為后期的驗(yàn)證提供了有力的依據(jù)。而在二維碼的驗(yàn)證過程中,是直接提取二維碼中的數(shù)據(jù),根據(jù)提取的數(shù)據(jù)計(jì)算出載體信息、數(shù)字簽名信息,并根據(jù)載體核發(fā)機(jī)構(gòu)的名稱計(jì)算核發(fā)機(jī)構(gòu)的公鑰,驗(yàn)證數(shù)字簽名信息,進(jìn)而確定二維碼是否為真實(shí)的;而CPK公鑰是基于標(biāo)識(shí)的算法體制,可以即時(shí)計(jì)算簽名人的公鑰,因此整個(gè)驗(yàn)證過程中,無需連接互聯(lián)網(wǎng),實(shí)現(xiàn)了本地驗(yàn)證的功能,做到了隨時(shí)隨地、簡(jiǎn)單易行的驗(yàn)證,進(jìn)而使得驗(yàn)證手段更為便捷和通用化,實(shí)現(xiàn)了簡(jiǎn)化防偽信息的驗(yàn)證過程、降低驗(yàn)證防偽信息的難度的效果;此外,本發(fā)明通過將票據(jù)的票面信息和含有與之相應(yīng)的二維碼同時(shí)綁定在每張票據(jù)上;并通過可讀的票面信息和解析后的二維碼信息對(duì)比是否相符的方式,可方便快捷地進(jìn)行本地實(shí)時(shí)真?zhèn)蔚蔫b定;另外,本發(fā)明可以根據(jù)建設(shè)需要,選擇是否聯(lián)網(wǎng)以索取其他信息,如黑名單列表等。
[0097]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種基于組合公鑰CPK的二維碼的生成方法,其特征在于,包括: 確定所述二維碼的載體的關(guān)鍵信息; 根據(jù)預(yù)先配置的私鑰對(duì)所述關(guān)鍵信息進(jìn)行簽名,生成數(shù)字簽名信息; 將所述數(shù)字簽名信息和所述二維碼的載體的信息進(jìn)行組合,生成防偽信息; 根據(jù)二維碼編碼技術(shù)對(duì)所述防偽信息進(jìn)行編碼,生成二維碼。
2.根據(jù)權(quán)利要求1所述的生成方法,其特征在于,所述關(guān)鍵信息包括以下至少之一: 載體的編號(hào)、載體的名稱、載體的日期、載體的金額。
3.根據(jù)權(quán)利要求1所述的生成方法,其特征在于,所述生成方法進(jìn)一步包括: 預(yù)先配置私鑰,其中,所述私鑰為載體的對(duì)應(yīng)機(jī)構(gòu)的私鑰,并且,預(yù)先配置私鑰包括:密鑰管理系統(tǒng)依據(jù)私鑰矩陣和組合公鑰算法,將所述載體的對(duì)應(yīng)機(jī)構(gòu)的名稱作為標(biāo)識(shí)生成與所述載體的對(duì)應(yīng)機(jī)構(gòu)對(duì)應(yīng)的私鑰。
4.根據(jù)權(quán)利要求1至3任意一項(xiàng)所述的生成方法,其特征在于,所述生成方法進(jìn)一步包括: 將所述二維碼打印至對(duì)應(yīng)的載體的預(yù)定位置。
5.一種基于CPK的二維碼的驗(yàn)證方法,其特征在于,包括: 對(duì)所述二維碼進(jìn)行解碼,讀取所述二維碼中存儲(chǔ)的數(shù)字簽名信息和所述二維碼的載體的信息; 對(duì)讀取的所述數(shù)字簽名信息進(jìn)行分析,得到公鑰; 根據(jù)所述公鑰、所述二維碼的載體的信息對(duì)所述數(shù)字簽名信息進(jìn)行驗(yàn)證。
6.根據(jù)權(quán)利要求5所述的驗(yàn)證方法,其特征在于,對(duì)讀取出的所述數(shù)字簽名信息進(jìn)行分析,得到公鑰包括: 對(duì)讀取出的所述數(shù)字簽名信息進(jìn)行分析,確定出所述數(shù)字簽名信息中包含的載體的對(duì)應(yīng)機(jī)構(gòu)的名稱; 根據(jù)所述載體的對(duì)應(yīng)機(jī)構(gòu)的名稱、以及對(duì)應(yīng)的公鑰矩陣和組合公鑰算法,得到所述公鑰。
7.根據(jù)權(quán)利要求5所述的驗(yàn)證方法,其特征在于,在根據(jù)所述公鑰、所述二維碼的載體的信息對(duì)所述數(shù)字簽名信息進(jìn)行驗(yàn)證之前,所述驗(yàn)證方法進(jìn)一步包括: 將讀取的所述數(shù)字簽名信息和所述二維碼的載體的信息與預(yù)先配置的黑名單信息進(jìn)行匹配,如果匹配成功,則終止對(duì)所述數(shù)字簽名信息的驗(yàn)證。
8.根據(jù)權(quán)利要求5所述的驗(yàn)證方法,其特征在于,在根據(jù)所述公鑰、所述二維碼的載體的信息對(duì)所述數(shù)字簽名信息進(jìn)行驗(yàn)證后,在驗(yàn)證通過的情況下,所述驗(yàn)證方法進(jìn)一步包括: 將從所述二維碼中讀取的對(duì)應(yīng)所述載體的信息與所述二維碼的載體中的信息進(jìn)行對(duì)比驗(yàn)證。
9.一種基于CPK的二維碼的生成裝置,其特征在于,包括: 確定模塊,用于確定所述二維碼的載體的關(guān)鍵信息; 簽名模塊,用于根據(jù)預(yù)先配置的私鑰對(duì)所述關(guān)鍵信息進(jìn)行簽名,生成數(shù)字簽名信息;組合模塊,用于將所述數(shù)字簽名信息和所述二維碼的載體的信息進(jìn)行組合,生成防偽信息; 生成模塊,用于根據(jù)二維碼編碼技術(shù)對(duì)所述防偽信息進(jìn)行編碼,生成二維碼。
10.一種基于CPK的二維碼的驗(yàn)證裝置,其特征在于,包括: 解碼模塊,用于對(duì)所述二維碼進(jìn)行解碼,讀取所述二維碼中存儲(chǔ)的數(shù)字簽名信息和所述二維碼的載體的信息; 分析模塊,用于對(duì)讀取的所述數(shù)字簽名信息進(jìn)行分析,得到公鑰; 驗(yàn)證模塊,用于根據(jù)所述公鑰、所述二維碼的載體的信息對(duì)所述數(shù)字簽名信息進(jìn)行驗(yàn)證。
【文檔編號(hào)】G06K19/06GK104408502SQ201410570893
【公開日】2015年3月11日 申請(qǐng)日期:2014年10月22日 優(yōu)先權(quán)日:2014年10月22日
【發(fā)明者】孫海龍, 趙陽, 郭守祥 申請(qǐng)人:全聯(lián)斯泰克科技有限公司