專利名稱:一種多重安防卷煙數碼防偽方法
技術領域:
本發明涉及一種多重安防卷煙數碼防偽方法,屬于數碼防偽技術領域。
背景技術:
數碼防偽技術,是一種綜合利用先進的數字編碼、加密、數據庫、網絡等技術的高科技防偽技術。數碼防偽驗證一般分為兩種方式,即算法驗證與存儲驗證。具有自相關性的防偽數碼一般通過相應加密算法驗證其合法性;無自相關性的隨機防偽碼一般通過查詢防偽數據庫,驗證對應防偽碼的存在性及統計訪問次數(記為c),當防偽碼不存在或c > 1 時提示消費者可能購買到假冒產品。目前,盡管我國對煙草實行了專賣,但卷煙作為一種高附加值的商品,制假、售假現象依然非常猖獗。數碼防偽作為卷煙的一種有效防偽手段,已越來越受到卷煙生產企業的重視,并得到了較多應用,一般采用兩種方式結合的實現模式一是把卷煙的生產信息 (生產時間、生產機臺、班次、品牌〈規格〉等)通過加密算法轉換成一定長度的防偽數碼, 該加密算法是可逆的,可以通過防偽數碼還原出生產信息,主要用于產品質量追溯;在算法驗證通過的基礎上,通過存儲驗證統計訪問次數,當c > 1時提示消費者可能購買到假冒產品。另外此類方法的一種變種是把防偽碼劃分成身份碼和防偽密碼兩部分,其中身份碼是明碼,具有唯一性,直接打印在商品上,防偽密碼不能直接看到,需刮開涂層才能看到,消費者查詢時要輸入身份碼和防偽密碼,其系統實現的本質是一樣的。此類卷煙數碼防偽模式存在以下不足1、由于用于質量追溯的生產信息內容較多(生產時間要精確到分鐘),生成的防偽碼位數較多(如芙蓉王品牌系列是18位防偽數碼),消費者查詢不是很方便,容易在短信或400電話查詢時輸錯號碼。當消費者輸錯的內容恰好滿足加密算法且第一次查詢時會提示所查詢的是正確數碼,但所提示的品牌 < 規格 > 卻與實際包裝不符,消費者會產生誤解。2、作為可逆加密算法,一般來講具有被破解的可能性。此類數碼防偽模式的安全性是建立在加密算法的安全性之上,一旦加密算法或密鑰泄密,則造假者可以據此生成從未查詢的防偽數碼,將為卷煙生產企業帶來災難性影響和無法估量的損失。數碼防偽算法與數碼防偽系統耦合緊密,各種主觀或非主觀原因都可能會造成泄密等安全隱患,一旦發現問題,很難做出及時反應。
發明內容
本發明所要解決的技術問題是提出一種多重安防卷煙數碼防偽方法,該多重安防卷煙數碼防偽方法具有多重防偽功能,顯著減少了現有防偽技術的漏洞。本發明的技術解決方案如下一種多重安防卷煙數碼防偽方法,包括基于冗余檢查的輸入校驗步驟、算法驗證步驟、生產信息驗證步驟和查詢記錄驗證步驟共4重疊加安防驗證步驟。所述的輸入校驗步驟為
步驟201 消費者輸入的防偽數碼f,防偽數碼的長度記為Len ;步驟202,對f進行長度和有效字符合規性判定,長度Len不合法或存在不允許的字符輸入時為不合規轉步驟206 ;步驟203,根據既定規則rl,獲得f的校驗碼位置,該位置記為P,該位置所在字符即為校驗碼字符,該校驗碼字符記為ν ;步驟204,將f中除去效驗碼字符剩余的Len-I個字符記為f',f'作為冗余校驗的輸入,求得的冗余校驗位記為ν';步驟205,若v = v',則校驗通過,將Γ轉加密算法驗證步驟并結束,否則轉步驟 206 ;步驟206,校驗失敗,提示消費者輸入錯誤。算法驗證步驟為步驟301,獲取從輸入校驗步驟驗證通過的f';步驟302,根據既定規則r2,從f'確定加密算法a ;加密算法a為任何一種已知對稱加密算法或自定義對稱加密算法;步驟303,利用加密算法a對f ‘進行解密,獲得生產信息m以及隨機數信息r ;步驟304,對m進行基本合規性檢查,如果m沒有通過基本合規性檢查,則轉步驟 307 ;步驟305,對m進行算法合規性檢查,將m中的生產時間與加密算法a的啟用時間和終止時間進行比對,若生產時間不在加密算法a的有效啟用時間段內,則轉步驟307。步驟306,通過加密算法驗證,將m和r轉生產信息存儲驗證步驟,結束;步驟307,輸出查詢結果,提示消費者錯誤數碼。生產信息存儲驗證步驟為將存儲數據庫記為Dl,Dl中包含實際生產信息集合 M'以及實際生產隨機數集合R';查詢M'中是否有m'使得m' = m,如果不存在對應的m',則認為該產品m沒有被生產,驗證失敗;查詢R'中是否有r'使得r' = r,如果不存在對應的r‘,則認為實際生產隨機數驗證失敗。查詢存儲驗證步驟是在數據庫中驗證防偽數碼是否已經被消費者查詢過,該存儲數據庫記為D2,D2中包含已經被查詢的防偽數碼,記錄查詢號碼和查詢時間信息;如果輸入的防偽數碼在數據庫D2中沒有記錄,則認為是第一次查詢,并且把本次查詢記錄插入到存儲數據庫中。規則rl的一個可行但不局限于此的實施例可以簡單描述為假設f為全數字字符串,①取f的前η位(η> 1且11<1^11)字符串,記為rn ;②取字符串rn中每位的算術和, 記為srn ;③令位置ρ = M0D(srn, (Len_n))+n,其中MOD為取余函數。規則r2的一個可行實施例為,取f'的一個固定位置的數碼位為算法的標志位; 例如可以是f'的第一個數碼位或f'的最后一個數碼位。規則r2的另一個可行實施例為,取f'的不固定位置的數碼位為算法的標志位。 取不固定位置的方法類似于rl的可行實施例。加密算法a是加密算法驗證模塊02的主要組成部分,是采用對稱密碼算法加密技術,對生產信息以及隨機數信息進行加密和解密。本發明的核心在于加密算法a是可隨時更換的,其被攻擊是可以檢測到的,具體的加密算法a的實施例可以采用任何已知對稱加密算法或自定義對稱加密算法。基本合規性檢查包括生產時間是否合法、是否是未來時間,生產機臺、品牌是否合規等。有益效果本發明的多重安防卷煙數碼防偽方法,對數碼防偽查詢提供一個模塊化的多重安防驗證機制,大幅提高了數碼防偽查詢的安全性。每個安防模塊都可以獨立升級或采取修正措施,任何一個安防模塊失效(泄密)都不會影響整個數碼防偽查詢的安全性,而所有安防模塊同時失效的可能性幾乎為零。如果某個安防模塊失效,審查者(自然人或防偽系統) 可以通過審查日志信息及時發現問題,做出相應反應。本發明提供的方法所設計的輸入校驗模塊01可以有效防止用戶誤輸入操作以及順序窮舉攻擊;加密算法驗證模塊02可以自定義升級更換算法,在加密算法泄密后能及時更換,在新的時間段啟用;生產信息存儲驗證模塊03存儲實際的生產信息和隨機數信息,可以檢測加密算法是否泄密,并驗證防偽數碼是否真正被生產;查詢存儲驗證模塊04存儲已查詢的數碼記錄,防止抄碼造假。本方法最大可能消除了數碼查詢部分潛在的安全漏洞所造成卷煙數碼防偽查詢失效。同時,該方法采用模塊化設計實現,嵌入相關數碼防偽系統中使用,可以在部分安防驗證模塊失效時實現互相檢測和自定義升級或調整,進一步加強安全性。
圖1為本發明的多重安防結構框圖;圖2為輸入校驗步驟的流程圖;圖3為加密算法驗證步驟的流程圖。
具體實施例方式以下將結合附圖和具體實施例對本發明做進一步詳細說明實施例1 本發明的方法把數碼防偽查詢從整個數碼防偽系統中剝離出來,采用模塊化設計;該方法設計了多重安防模塊,每個安防模塊都可以獨立升級或采取修正措施,任何一個安防模塊失效(泄密)都不會影響整個數碼防偽查詢部分的安全性。如圖1所示,該防偽方法設計了 4重安防模塊輸入校驗模塊01,加密算法驗證模塊02,生產信息存儲驗證模塊 03,查詢存儲驗證模塊04。(1)輸入校驗模塊01本實施例的輸入校驗模塊01采用冗余校驗來實現。在通信領域中,冗余檢驗是指在消息中附加的用于錯誤檢測與錯誤校正的數據。在本實施例中,我們僅用于錯誤檢測,不需要錯誤校正,即消費者輸錯任一位防偽數碼,都應提示用戶可能是輸入錯誤。冗余校驗位可以作為防偽數碼單獨一位,或與其他數碼位運算融合。為保證安全,冗余校驗位的位置不能固定,可以為防偽數碼中的任意一位。如圖2所示,具體的輸入校驗模塊01實施例步驟及詳細說明如下
5
步驟201,輸入校驗模塊01獲得數碼防偽系統的輸入,輸入的防偽數碼記為f,其長度記為Len。步驟202,對f進行長度和有效字符合規性判定,長度Len不合法或存在不允許的字符輸入時為不合規轉步驟206。步驟203,根據既定規則(該規則記為rl),獲得f的校驗碼位置,該位置記為P,該位置所在字符即為校驗碼字符,該字符記為V。規則rl的一個可行但不局限于此的實施例可以簡單描述為假設f為全數字字符串,①取f的前η位(η> 1且11<1^11)字符串,記為rn ;②取字符串rn中每位的算術和, 記為srn ;③令位置ρ = M0D(srn, (Len_n))+n,其中MOD為取余函數。步驟204,對F剩余字符(共Len-I個),記為f'。f'作為既定散列函數的輸入求冗余校驗,記為ν'。步驟205,若ν = V'則校驗通過,將F'轉加密算法驗證模塊02,否則轉步驟206。步驟206,輸出查詢結果,提示消費者可能輸入錯誤。(2)加密算法驗證模塊02本實施例的加密算法驗證模塊02采用自定義加密算法實現。作為一個獨立的加密(解密)算法模塊,其核心價值是作為一個獨立升級的防偽模塊,可以定期更換算法(此處把算法記為a)或者有攻擊審查顯示算法a有泄密可能時,生產企業主動馬上更換。一個可行的攻擊審查實施例為防偽系統的日志,審查者(自然人或防偽系統)可以通過審查日志里防偽查詢加密算法驗證模塊02驗證信息,根據驗證通過的情況來判斷是否已經受到攻擊并泄密,具體可參見防偽查詢模塊可能的攻擊方式實施例中加密算法泄密一節。如圖3所示,具體的加密算法驗證實施例步驟及詳細說明如下步驟301,加密算法驗證模塊02獲得輸入校驗模塊01驗證通過的輸入f ‘。步驟302,根據既定規則(該規則記為r2),從 '確定加密算法a。規則r2的一個可行實施例為,取f'的一個固定位置的數碼位為算法的標志位; 例如可以是f'的第一個數碼位或f'的最后一個數碼位。規則r2的另一個可行實施例為,取f'的不固定位置的數碼位為算法的標志位。 取不固定位置的方法類似于rl的可行實施例。加密算法a是加密算法驗證模塊02的主要組成部分,是采用對稱密碼算法加密技術,對生產信息以及隨機數信息進行加密和解密。本發明的核心在于加密算法a是可隨時更換的,其被攻擊是可以檢測到的,具體的加密算法a的實施例可以采用任何已知對稱加密算法或自定義對稱加密算法。步驟303,利用加密算法a對f'進行解密,獲得生產信息(記為m)以及隨機數信息(記為r)。步驟304,對m進行基本合規性檢查,例如生產時間是否合法、是否是未來時間,生產機臺、品牌是否合規等。如果m沒有通過合規性檢查,則轉步驟307。步驟305,對m進行算法合規性檢查,將m中的生產時間與加密算法a的啟用時間和終止時間進行比對,若生產時間不在加密算法a的有效啟用時間段內,則轉步驟307。步驟306,通過加密算法驗證,將m和r轉生產信息存儲驗證模塊03。步驟307,輸出查詢結果,提示消費者錯誤數碼。
(3)生產信息存儲驗證模塊03生產信息驗證模塊03是在數據庫中驗證生產信息是否真實存在,即該產品是否真正被生產過,該存儲數據庫記為D1,數據庫Dl中包含實際生產信息集合(記為M')以及實際生產隨機數集合(記為R')。其中,由于算法設計的全包容性,以及生產停機或調整生產作業計劃等因素,實際生產信息遠小于算法容量,可知M' C M ;假設生產機臺速度S/分鐘,則隨機數取值范圍為1 SXN之間,其中強度N—般取值100就可以達到比較良好的效果,可知FV c R。在本實施例中,生產信息存儲驗證模塊03接收加密算法驗證模塊02輸入的生產信息m以及隨機數信r,記m e M、r e R,在生產信息驗證模塊03中需要驗證m e M'并且r e R'。在本實施例中,生產信息驗證包括兩大部分實際生產信息的驗證子模塊03A以及實際生產隨機數驗證子模塊03B。1)實際生產信息的驗證子模塊03A根據m中的信息,查詢Dl中是否有m' (m' = m),如果不存在對應的m',則可認為該產品m沒有被生產。2)實際生產隨機數驗證子模塊03B根據r中的信息,查詢Dl中是否有r' (r' = r),如果不存在對應的r ‘,則可認為實際生產隨機數驗證失敗。(4)查詢存儲驗證模塊04查詢存儲驗證模塊04是在數據庫中驗證防偽數碼是否已經被消費者查詢過,該存儲數據庫記為D2,數據庫D2中包含已經被查詢的防偽數碼,記錄查詢號碼和查詢時間等信息。如果輸入的防偽數碼在數據庫D2中沒有記錄,則認為是第一次查詢,并且把本次查詢記錄插入到數據庫中。在本模塊的實施例中,還要區分查詢號碼相同的多次查詢以及管理員的查詢等情況。以上所述僅為本明的實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改等同替換、改進等,均應包含在本發明的權利要求范圍之內。防偽查詢模塊可能的攻擊方式實施例數碼防偽系統的安全性應建立在整體系統的安全之上,而不應僅僅依賴于防偽查詢模塊的安全性。數碼防偽系統應加強與其他應用系統的隔離(例如專網、IP限制),敏感數據保護區,通訊線路數據加密、防火墻等;數碼防偽系統所有涉及算法、存儲數據等重要敏感信息的硬件設備,出現問題直接進行不可修復性的銷毀;制定安全保密管理制度,加強保密教育。由于本發明所提供的方法是提供一個多重安防防偽查詢模塊嵌入到防偽數碼系統中使用,所以以下列舉的可能的攻擊方式實施例僅針對防偽查詢模塊來展開。1)防偽數碼順序窮舉攻擊。目前,數碼防偽查詢一般以電話和短信為主,互聯網的網站查詢為輔。造成網站查詢不能大規模推廣的一個主要原因是假設造假者從已知正確的防偽數碼開始按照一定的順序在網站上進行試查,試查的結果是大量正確的防偽數碼被查詢作廢,導致整個防偽系統混亂或癱瘓,而做到這一點僅需要把一個黑客小程序發布到網上進行窮舉攻擊即可。雖然在防偽查詢界面可以輔以圖片驗證等手段,但同時又會造成用戶使用不方便,而且安全性不高。本發明提供的輸入校驗模塊01可以有效防范此類錯誤輸入或攻擊,①當消費者輸錯任一位防偽數碼,都可以提示用戶可能是輸入錯誤;②當造假者用于順序大量攻擊防偽系統時,此類行為可在防偽系統日志審查中被發現,現象是如果出現大量的冗余校驗錯誤且被查詢的防偽數碼為連續值或有規律值時,基本可斷定防偽系統受到順序窮舉攻擊, 此時審查者可以自動或手動鎖住攻擊者IP或電話號碼,暫時不再響應攻擊者的請求。2)加密算法泄密。假設造假者破解了當前使用的加密算法,可以根據加密算法批量生成防偽數碼。 但是本發明提供的生產信息存儲驗證模塊03中,實際生產信息集合M'遠小于算法允許的集合M,實際生產隨機數驗證的隨機數集合R'遠小于隨機數集合R,如果強度N取值100, 即使實際生產數量達到算法允許的滿負荷,實際上命中概率也小于1%,低于造假應用價值。即雖滿足加密算法驗證模塊02要求(此時該模塊失效),但將在生產信息存儲模塊驗證03中失敗。此類造假可在防偽系統日志審查中被發現,現象是如果出現大量的加密算法驗證模塊02通過,生產信息存儲模塊驗證03中失敗的情形,基本可斷定為加密算法泄密,生產企業應立即主動更換新算法,即對加密算法驗證模塊02進行升級。幻存儲數據庫Dl泄密。假設造假者闖入存儲數據庫D1,拿到數據庫記錄。但是本發明提供的存儲數據庫 Dl的記錄是實際生產信息和實際生產隨機數,不是可以直接使用的防偽碼,不能直接使用, 需要同時知道對應啟用時間段的加密算法才能根據數據庫記錄還原出防偽碼,但還原出的防偽碼可能已經被查詢了(存儲數據庫D2驗證未通過),也可能使用不合適啟用時間段的加密算法(加密算法驗證模塊02未通過),沒有實際造假意義。在實施例中,存儲數據庫Dl應定期更換密碼(例如一個月),可以有效防范數據庫記錄的泄密;還可以進一步對存儲在存儲數據庫Dl的記錄進行單獨加密,增加破解難度。4)存儲數據庫D2泄密。假設造假者闖入存儲數據庫D2獲得數據庫記錄,得到是已經查詢過的防偽碼,沒有實際造假意義。5)抄碼造假。假設造假者抄寫真煙盒上的正確數碼進行大批量相同防偽碼造假,將在查詢存儲驗證模塊04中失敗。這是最容易失敗的造假,低端造假,消費者查詢時會提示該正確數碼已被查詢幾百次。
權利要求
1.一種多重安防卷煙數碼防偽方法,其特征在于,包括基于冗余檢查的輸入校驗步驟、 算法驗證步驟、生產信息驗證步驟和查詢記錄驗證步驟共4重疊加安防驗證步驟。
2.根據權利要求1所述的多重安防卷煙數碼防偽方法,其特征在于,所述的輸入校驗步驟為步驟201 消費者輸入的防偽數碼f,防偽數碼的長度記為Len ; 步驟202,對f進行長度和有效字符合規性判定,長度Len不合法或存在不允許的字符輸入時為不合規轉步驟206 ;步驟203,根據既定規則rl,獲得f的校驗碼位置,該位置記為P,該位置所在字符即為校驗碼字符,該校驗碼字符記為ν ;步驟204,將f中除去效驗碼字符剩余的Len-I個字符記為f',f'作為冗余校驗的輸入,求得的冗余校驗位記為ν';步驟205,若ν = V',則校驗通過,將f'轉加密算法驗證步驟并結束,否則轉步驟206 ;步驟206,校驗失敗,提示消費者輸入錯誤。
3.根據權利要求2所述的多重安防卷煙數碼防偽方法,其特征在于,算法驗證步驟為 步驟301,獲取從輸入校驗步驟驗證通過的f';步驟302,根據既定規則r2,從f'確定加密算法a ;加密算法a為任何一種已知對稱加密算法或自定義對稱加密算法;步驟303,利用加密算法a對f'進行解密,獲得生產信息m以及隨機數信息r ; 步驟304,對m進行基本合規性檢查,如果m沒有通過基本合規性檢查,則轉步驟307 ; 步驟305,對m進行算法合規性檢查,將m中的生產時間與加密算法a的啟用時間和終止時間進行比對,若生產時間不在加密算法a的有效啟用時間段內,則轉步驟307。 步驟306,通過加密算法驗證,將m和r轉生產信息存儲驗證步驟,結束; 步驟307,輸出查詢結果,提示消費者錯誤數碼。
4.根據權利要求3所述的多重安防卷煙數碼防偽方法,其特征在于,生產信息存儲驗證步驟為將存儲數據庫記為Dl,Dl中包含實際生產信息集合M'以及實際生產隨機數集合R';查詢M'中是否有m'使得m' =m,如果不存在對應的m',則認為該產品m沒有被生產,驗證失敗;查詢R'中是否有r'使得r' =r,如果不存在對應的r',則認為實際生產隨機數驗證失敗。
5.根據權利要求4所述的多重安防卷煙數碼防偽方法,其特征在于,查詢存儲驗證步驟是在數據庫中驗證防偽數碼是否已經被消費者查詢過,該存儲數據庫記為D2,D2中包含已經被查詢的防偽數碼,記錄查詢號碼和查詢時間信息;如果輸入的防偽數碼在數據庫D2 中沒有記錄,則認為是第一次查詢,并且把本次查詢記錄插入到存儲數據庫中。
全文摘要
本發明公開了一種多重安防卷煙數碼防偽方法,包括基于冗余檢查的輸入校驗步驟、算法驗證步驟、生產信息驗證步驟和查詢記錄驗證步驟共4重疊加安防驗證步驟。該多重安防卷煙數碼防偽方法具有多重防偽功能,顯著減少了現有防偽技術的漏洞。本方法最大可能消除了數碼查詢部分潛在的安全漏洞所造成卷煙數碼防偽查詢失效。同時,該方法采用模塊化設計實現,嵌入相關數碼防偽系統中使用,可以在部分安防驗證模塊失效時實現互相檢測和自定義升級或調整,進一步加強安全性。
文檔編號G06F17/30GK102270323SQ20111015341
公開日2011年12月7日 申請日期2011年6月9日 優先權日2011年6月9日
發明者余軍, 葉獻忠, 吳高峰, 徐遠兵, 辛義定 申請人:湖南中煙工業有限責任公司