一種加密二維條碼的組成及應用方法
2023-09-23 07:04:55 2
專利名稱:一種加密二維條碼的組成及應用方法
技術領域:
本發明屬於條碼應用技術領域,尤其是一種加密的二維條碼的組成及應用方法,本發明的方法適用於電子商務、電子政務、信息安全、身份認證、電子票務、網際網路等領域。
背景技術:
一維條碼自出現以來,得到了人們的普遍關注,發展速度十分迅速。它的使用,極大地提高了數據採集和信息處理的速度,提高了工作效率,並為管理的科學化和現代化做出了很大貢獻。
由於受信息容量的限制,一維條碼僅僅是對「物品」的標識,而不是對「物品」的描述。故一維條碼的使用,不得不依賴資料庫的存在。在沒有資料庫和不便聯網的地方,一維條碼的使用受到了較大的限制,有時甚至變得毫無意義。現代高新技術的發展,迫切要求用條碼在有限的幾何空間內表示更多的信息,從而滿足千變萬化的信息表示的需要。二維條碼正是為了解一維條碼無法解決的問題而產生的。因為它具有高密度、高可靠性等特點,所以可以用它表示數據文件(包括漢字文件)、圖像等。二維條碼是大容量、高可靠性信息實現存儲、攜帶並自動識讀的最理想的方法。
一維條碼所攜帶的信息量有限,如商品上的條碼僅能容納13位(EAN-13碼)阿拉伯數字,更多的信息只能依賴商品資料庫的支持,離開了預先建立的資料庫,這種條碼就沒有意義了,因此在一定程度上也限制了條碼的應用範圍。基於這個原因,在90年代發明了二維條碼。二維條碼除了具有一維條碼的優點外,同時還有信息量大、可靠性高等優點。
目前二維條碼主要有PDF417碼、QR Code、Code49碼、Code 16K碼、Data Matrix碼、MaxiCode碼等,主要分為堆積或層排式和棋盤或矩陣式兩大類。
二維條碼作為一種新的信息存儲和傳遞技術,從誕生之時就受到了國際社會的廣泛關注。經過幾年的努力,現已應用在國防、公共安全、交通運輸、醫療保健、工業、商業、金融、海關及政府管理等多個領域。
但是,二維條碼技術雖然比較成熟而且有很多優點,但它的應用普及程度之所以還不理想,主要原因之一在於通常使用二維條碼時沒有結合信息安全技術,所以無法保證關鍵性、私密性信息的安全,無法避免偽造、非法識讀、篡改、抵賴等行為,從而抑制了其應用的範圍,限制了應用的場合。
發明內容
本發明的目的在於避免上述缺陷,提出一種新型的加密二維條碼的組成及應用方法,為基於網際網路的非實物性商品(服務)交易,提供一種有價載體或者交易完成的憑據;為保密票證、認證標識、防偽憑證等的製作和使用提供一種新途徑;為加密二維條碼的應用設計一種參考標準,從而擴大二維條碼的應用範圍和領域。
本發明的具體技術方案如下本發明的安全體系主要借鑑了PKI安全體系的思想。在加密算法上,使用了RSA和PBE加密算法處理信息,並結合MD5散列算法進行數據校驗。
每個加密二維條碼的在線生成系統配備一對RSA密鑰對(建議使用1024位RSA密鑰對)。其中的公鑰的文本表示也稱為「根證書」(本發明中使用「證書」一詞,並不意味著這種文本表示必須使用X.509等標準數字證書格式,以下同理)。
同時,每個使用加密二維條碼的具體應用(對應於生成系統上的一個帳戶)也分配一對RSA密鑰對(建議使用512位RSA密鑰對)。其中的公鑰的文本表示在本文中也稱為「解密證書」。
在應用中,每個具體的應用樣本需要依靠解密證書和PBE密碼才可以解出明文。從技術上講,PBE算法的加解密有兩個參數-PBE密碼和PBE鹽。
製作加密二維條碼時,產生帶有隨機成分的PBE鹽,使用應用帳戶的私鑰加密明文MD5散列值和PBE鹽(共計22位元組,使用512位RSA算法產生64位元組輸出),得到的數字籤名按既定格式加入一種二維條碼編碼算法(比如PDF417編碼算法)輸入字節流。然後以用戶提供的密碼作為PBE密碼,結合PBE鹽這個參數,使用PBE算法加密明文,把得到的密文按既定格式加入二維條碼編碼算法的輸入字節流中。然後使用二維條碼圖像生成算法進行編碼,產生一種二維條碼圖像(比如PDF417或者QR Code等)。
識讀加密二維條碼時,依靠解密證書,使用RSA解密算法從二維條碼識讀輸出字節流中解出明文MD5散列值和PBE鹽,同時在識讀時獲取用戶輸入的PBE密碼。使用PBE密碼和PBE鹽對PDF417識讀輸出字節流中密文部分完成PBE解密,得到明文。
解密證書可以採用多種形式送達識讀方。在本發明中,解密證書也採用上述的加密二維條碼製作過程製成加密二維條碼,而解密證書採用根私鑰結合PBE製作(把解密證書當作明文,其它同目標碼製作過程),所以,擁有根公鑰(根證書)是識讀解密證書內容的必要條件。
根證書也可以採用多種形式送達識讀方。在本發明中,根證書也採用類似的製作過程製成本發明加密二維條碼,只是沒有數字籤名(代之以簡單的MD5校驗數據+PBE鹽的明碼)。把根證書採用PBE加密為密文,按既定格式加入二維條碼編碼算法的輸入字節流中。
在本發明的應用方法中,主要由以下方面參與完成1、服務方擁有一套加密二維條碼在線生成系統,配置有RSA密鑰對。
2、授權方在「服務方」的加密二維條碼在線生成系統上開有使用帳戶(用戶名、密碼),並擁有服務方為其生成的一對RSA密鑰對;授權方負責管理和生成應用樣本。
3、識讀方擁有加密二維條碼識讀軟體,並在獲得「服務方」授予的「激活碼」、「授權方」授予的「授權碼」的條件下,可以識讀授權方發行的「目標碼」。
4、消費方擁有授權方授予的「目標碼」,並通過「識讀方」的識讀,達到某種消費目的最終用戶。
加密二維條碼應用的一般流程如下1、授權方在服務方開戶,獲得一個帳戶(同時生成一對512位RSA密鑰對);2、授權方在具體應用背景下,把授權碼授予識讀方;3、授權方在具體應用背景下,為消費方生成目標碼;4、識讀方從服務方獲得識讀軟體和激活碼,安裝並激活識讀軟體(配置根證書);5、識讀方使用授權方授予的授權碼獲得具體應用背景下的識讀授權(配置解密證書);6、消費方持目標碼到識讀方進行識讀,即具體應用背景意義下的消費;7、識讀方使用識讀軟體識讀目標碼,根據識讀通過與否以及明文的內容,確定消費方的消費權利,完成消費過程。
其中,激活碼是一種加密二維條碼樣本類型,其目的是使識讀軟體獲得識讀某個本發明加密二維條碼行業應用體系中的授權碼的能力。
激活碼密文主體就是用PBE算法加密的根公鑰,用這個根公鑰可以解密所有本應用體系中的授權碼。
授權碼是一種加密二維條碼樣本類型,其目的是使識讀軟體獲得識讀目標碼所必須的一個應用授權方的公鑰。
授權碼密文主體就是使用根私鑰的數字籤名和使用PBE加密的應用授權方公鑰。
目標碼是一種加密二維條碼樣本類型,其目的就是承載應用信息的;在應用中由最終用戶持有,獲得授權的識讀機構可以識讀。
加密二維條碼主要由相同的密文格式和一個內置的序列號標識-UUID組成,其中每個加密二維條碼樣本均有一個內置的序列號標識,即UUID,其組成包括兩部分1、x成分6位元組。通過某種技術手段或者算法,保證在兩個UUID在y成分一樣的情況下,此成分有區別即可;在本發明的參考實現中,包含四字節安全隨機數,二字節區別值(y成分一樣的情況下可保證此二字節不同)。
2、y成分(也稱時間戳)一個0-0x3FFFFFFFFFF間的無符號長整數,表示生成樣本的時間戳。該值是生成該樣本的系統時間與某個時間基點的毫秒差值數。具體時間基點,可以隨應用不同、應用開發投產的時間不同而自定義;在發明人的軟體實現中,是與2000年1月1日0時0分0秒0毫秒這一時間基點的毫秒差值;當然這一時間基點本身的毫秒數值是計算機系統時間的通用標準值(即2000年1月1日0時與1970年1月1日0時的毫秒差值,具體數值是長整數946656000000)由於考慮到加密二維條碼是2005年才產生的,之前的時間沒有意義;所以不直接採用計算機系統/程序設計語言通常使用的與1970年1月1日零時的毫秒差值作為時間戳表示形式,如果採用這種時間戳實際上會浪費一些比特的時間存儲空間。
另外,42比特足以存放超過100年(一個世紀)的毫秒差值數,沒有必要使用64比特;對於加密二維條碼的應用來說這個時間跨度的表達能力已經足夠,而且可以通過應用設置時間計算基點來決定具體時間,也是很靈活的。
本時間戳與計算機系統/程序設計語言的標準時間戳(比如Java語言中java.lang.System.currentTimeMillis返回的標準時間戳)換算非常簡單,只需要加減一個時間基點的標準時間戳數值即可。假設時間基點採用2000年1月1日零時,基點值是946656000000,加密二維條碼時間戳=java.lang.System.currentTimeMillis-946656000000L;識讀時計算生成時間的標準時間戳時,加密二維條碼生成時間=本發明加密二維條碼時間戳+946656000000L。
加密二維條碼的編碼格式每個加密二維條碼的樣本根據類型的不同(激活碼、授權碼、目標碼三種類型),格式略有不同,但同種類型的樣本都具有相同的格式。
從編碼格式的結構上看,每個本發明加密二維條碼都由以下四部分(依次序)組成1、首冗餘字節-1位元組2、頭(header)-7位元組3、校驗數據塊-不同樣本類型長度不同4、密文體經過大量測試發現,有的二維條碼識讀設備在識讀個別樣本時會出現丟失首字節的現象,儘管這種概率比較低,但為了保證高可靠性,特設計本方案以避免這種情況引發的無法識讀的可能。
首冗餘字節是一個字節的0(8比特0)。當識讀設備開始讀一個新樣本時,如果讀到首冗餘字節,說明首字節未丟失,則直接忽略這個字節,繼續讀頭和體;如果沒有讀到首冗餘字節,說明發生首字節丟失現象,仍可繼續讀頭和體。
頭格式是本發明實現所採用的格式。主要設計思想是儘量減少這些附加信息佔用的字節數目,並規定密文最大長度為1023位元組。如果基於本發明的軟體實現需要密文長度超過1023位元組或者需要附加其它信息的,可以參考本發明酌情擴充頭的長度。
頭由56比特位組(組合成7個字節,比特編號從0到55,字節組合方式採用Little-endian位序,數據存放方式也採用Little-endian,低序號比特在前)組成第0至第1共2個比特一個0-3之間的無符號小整數,表示樣本類型,具體含義1=激活碼;2=授權碼;3=目標碼;0=非法第2至第43共42個比特保存一個0-0x3FFFFFFFFFF間的無符號長整數,本發明加密二維條碼時間戳(即樣本的UUID的y成分。參見UUID一節)第44至第45共2個比特保存一個0-3之間的無符號小整數,表示解密密碼類型標誌編碼,0=該樣本未設置密碼;1=應用定義的預設密碼;2=買方設定的密碼(具體含義隨應用定);3=賣方設定的密碼(具體含義隨應用定)第46至第55共10個比特保存一個0-1023之間的無符號小整數,是密文的長度(以字節為單位)
由於在應用中往往需要管理樣本庫,而這時並不需要解讀樣本,也不應牽涉相應的授權關係;但管理樣本庫需要樣本類型、時間戳等信息;而加密二維條碼頭中的信息會影響識讀軟體的交互過程,比如是否需要在界面上彈出密碼輸入窗口;根據樣本類型決定調用哪種解碼的邏輯;判斷識讀器是否讀出了全部字節的條件等。如果加密頭,雖然可以從編程上實現,但會使得識讀過程過於複雜而不夠流暢。所以在本發明中加密二維條碼頭不加密。
激活碼的校驗格式共22位元組,由兩部分組成1、16位元組的MD5值-對根公鑰的字符串表示(也稱根證書)的MD5散列結果;2、6位元組的UUID的x成分。
授權碼的校驗格式128位元組的根數字籤名(因為根密鑰對是1024位的RSA密鑰對,所以數字籤名長度為128位元組),即使用根私鑰對解密證書(授權方公鑰字符串表示)的16位元組MD5散列值以及6位元組UUID的x成分(共22位元組),進行1024位RSA加密所產生的128位元組的密文。
目標碼的校驗格式64位元組的授權方數字籤名(因為授權方密鑰對是512位RSA密鑰對,所以數字籤名長度是64位元組),即使用授權方帳戶私鑰對明文的16位元組MD5散列值以及6位元組UUID的x成分(共22位元組)進行512位RSA加密所產生的64位元組的密文。
密文採用PBE算法,以給定的加密密碼(也稱附加驗證碼)+UUID(在本文中凡是非數值數據之間的+運算符均表示字符串連接或字節序列合併)為PBE密碼,以UUID的x成分為鹽,代入加密過程而得到的密文。
具體採用哪種PBE算法可以根據需要選擇。例如,可以採用PBEWithSHAAnd128BitRC4,這種算法的好處是密文長度與明文長度一致,而且加解密速度很快。
按照前面的UUID定義,每個UUID可以按如下方式產生(假定Java語言開發)1、產生4位元組安全隨機數r2、取系統時間毫秒值,減去2000年1月1日零時的標準時間戳(946656000000),得到本發明加密二維條碼時間戳,即UUID的y成分3、實例化一個J2SE SDK中標準的java.rmi.UID類,取其count成分,從而獲得一個同一個毫秒內的區分值(16比特短整數)c。(java.rmi.UID類唯一性說明可參閱有關Java技術文檔)
4、把r和c合成為UUID的x成分由上可見,本發明中將UUID的x成分存放在校驗數據中,而y成分存放在本發明加密二維條碼頭中,x與y成分分開存放的意義在於1、如果將UUID完全存放在加密二維條碼頭中,有一定安全隱患,因為UUID是PBE解密的重要參數之一(詳細情況請參考以下各節產生過程的描述)。
2、如果在加密二維條碼頭信息中不存放時間戳,會對管理樣本庫的需求帶來不便(管理樣本庫時應不需要解讀樣本,但時間戳卻是一個不可不讀的管理數據)。
3、如果在加密二維條碼頭信息中存放時間戳,同時又在另一處完整存放UUID則造成信息冗餘浪費。
4、RSA算法的默認輸入塊比較小,如果對16位元組MD5值+UUID進行RSA加密會超過默認塊大小;如果分別加密,則產生兩個64位元組的輸出,導致增加大量二維條碼編碼數據,從而擠壓密文體長度,從而進一步限制了允許的明文長度。
激活碼的產生入口參數根證書(根公鑰-1024位RSA密鑰中的公鑰的一種字符串表示)r激活密碼p密碼類型標誌(0-3的小整數)v唯一標識(UUID)u1、對r計算MD5散列值,得到16位元組a2、提出u中的x成分6位元組x,提出u中的y成分作為y3、a+x共22位元組記為b14、把p+u作為PBE算法的密碼參數p25、以p2為密碼,以x為鹽,使用PBE算法加密r,得到b26、計算b2的長度n7、把n,v,y以及激活碼樣本類型標誌(小整數1)組合成56比特(7位元組)的頭h8、把首冗餘字節+h+b1+b2使用某種二維條碼標準算法(比如PDF417)編碼為二維條碼圖像授權碼的產生入口參數
解密證書(授權方公鑰-512位RSA密鑰對中的公鑰的一種字符串表示)k授權密碼p密碼類型標誌v根私鑰(1024位RSA密鑰對中的私鑰)r唯一標識(UUID)u1、對k計算MD5散列,得到16位元組的a2、提出u中的x成分,得到6位元組x成分x,提出u中的y成分y3、以r為加密密鑰,對a+x使用1024位RSA算法加密,得到128位元組的b14、以p+u為密碼,以x為鹽,使用PBE算法加密k,得到b25、計算b2的長度n6、把n,v,y以及授權碼樣本類型標誌(小整數2)組合成56比特(7位元組)的頭h7、對首冗餘字節+h+b1+b2使用二維條碼標準算法編碼為圖像目標碼的產生入口參數待編碼的明文字符串t密碼類型標誌(0-3的小整數)v附加驗證碼(可以為空,表示不設置)p授權方私鑰(512位RSA密鑰對中的私鑰)s唯一標識(UUID)u1、對明文計算MD5散列,得到16位元組的明文散列串a2、提出u中的x成分(6位元組)x,提出u中y成分y3、把p+u作為PBE算法的密碼參數p2準備好4、把a+x共22位元組使用512位RSA算法,用s加密為64位元組密文(數字籤名),記為b15、使用PBE算法,以p2為密碼,x為鹽,將明文加密為密文,記為b26、計算b2的長度n7、把u中的y成分提出,作為y8、把n,v,y以及目標碼樣本類型標誌3按照頭格式組合成56比特(7位元組)的頭h9、把首冗餘字節+h+b1+b2使用二維條碼標準生成算法編碼成二維條碼位加密二維條碼的具體識讀過程如下1、激活碼識讀入口參數激活密碼p(1)如果讀到首冗餘字節(8比特0)則跳過,接著讀出7位元組的頭h(2)根據h中的樣本類型標誌(可以知道相應的校驗數據塊長度)和密文長度,決定後續字節數目(3)從h中取出UUID的y成分y(4)讀出16位元組MD5值a,讀出6位元組的UUID的x成分x(這22位元組是激活碼的校驗數據塊)(5)把x和y組合還原為UUID,作為u(6)以p+u為密碼,x為鹽,使用PBE算法解密剩餘字節,得到根證書r(7)對r進行MD5散列,與a對比校驗2、授權碼識讀入口參數根公鑰(服務方RSA密鑰對中的公鑰,識讀方通過前述的激活碼識讀過程獲得)r授權密碼p(可以為空,表示未設置)(1)如果讀到首冗餘字節(8比特0)則跳過,接著讀出7位元組的頭h(2)根據h中的樣本類型標誌(可以知道相應的校驗數據塊長度)和密文長度,決定後續字節數目(3)從h中取出UUID的y成分y(4)讀出128位元組數字籤名(校驗數據塊),使用r解密得到16位元組MD5散列值a,和6位元組的UUID的x成分x(5)把x與y重新組合還原為UUID格式u(6)以p+u為密碼,以x為鹽,使用PBE算法解密剩餘字節,得到解密證書k(7)對k計算MD5散列,結果與a對比校驗3、目標碼識讀入口參數授權方公鑰(授權方RSA密鑰對中的公鑰,識讀方通過前述授權碼識讀過程獲得)k
附加驗證碼p(可以為空,表示未設置)(1)如果讀到首冗餘字節(8比特0)則跳過,接著讀出7位元組的頭h(2)根據h中的樣本類型標誌(可以知道相應的校驗數據塊長度)和密文長度,決定後續字節數目(3)從h中取出UUID的y成分y(4)讀出體中第一部分64位元組的數字籤名(校驗數據塊),使用k解密得到16位元組MD5散列值a,以及6位元組的UUID的x成分(5)把x與y組合還原為UUID格式的u(6)以p+u為密碼,以x為鹽,使用PBE算法解密剩餘字節,得到明文t對t計算MD5散列,然後與a對比校驗由於採用以上技術措施,本發明具有如下優點和效果1、應用本發明的方法可廉價地、在線地、快速地生產高安全性的加密二維條碼,用以承載關鍵的、保密的、有價的信息,並且可以使用支持二維條碼的標準條碼識讀設備識讀。
2、本發明的加密二維條碼具有防偽造功能本發明編碼成二維條碼圖像的輸入字節流具有特定的格式,並使用了數字籤名技術。
本發明並不是直接對明文簡單加密成二維條碼編碼算法的輸入字節流。而是通過精心的設計,在核心密文體的前面附加了多種有用的信息,這些信息包括唯一標識序列號(含時間戳成分)、密文長度、樣本類型、解密密碼設置類型、數字籤名等。這些信息不但對應用有意義,而且還對解密還原明文有校驗功能。這些附加信息和密文有匹配關係,如果附加信息與密文不匹配,是無法完成識讀的。
3、本發明的加密二維條碼具有防抵賴功能數字籤名是在網際網路和電子商務領域應用廣泛並被普遍認可的防抵賴技術。在我國2005年4月頒布的《電子籤名法》中,也闡明數字籤名具有法律效力。本發明使用了數字籤名技術,每個目標碼樣本附加有發行方對信息明文的數字籤名,所以可以防抵賴。
4、本發明的加密二維條碼具有防篡改功能每個樣本帶有全局唯一標識(UUID),UUID中有生成時間戳成分,而且加密以UUID為加解密過程的重要參數之一。不匹配的UUID會導致識讀過程失敗。這樣可以防止對唯一標識(含生成時間)的篡改。同時,由於目標碼樣本帶有數字籤名,而數字籤名本身就具有對明文進行散列並加密得到的,所以解密數字籤名得到的散列值可以作為校驗數據,從而防止信息內容被篡改。
5、本發明的加密二維條碼具有防盜用功能每個樣本可以設置解密密碼(在前文中也稱附加驗證碼),在沒有正確提供解密密碼的情況下,識讀過程無法完成。
6、本發明的加密二維條碼具有防重複功能每個碼帶有內置全局唯一標識序列號(UUID),可以由具體應用使用此序列號防止已經作廢的或者過期的樣本的重複使用。
本發明加密二維條碼的明文信息量主要與識讀設備相關。本發明中建議1K字節以內(相對於511個GB碼字符或者1023個ISO-8859-1西文字符)。
例如,在流行的二維條碼標準PDF417的識讀設備方面,低端PDF417識讀設備,一次準確識讀的字節數,基本限制在幾百字節;高端的PDF417識讀設備可以識讀1KB字節以上。但隨著字節數的增加,二維條碼的圖像尺寸也在增大。本發明考慮到實際應用的領域,認為1KB字節已經足夠,一般應用使用低端識讀設備就可以滿足需要,不必配備高檔識讀設備。即使偶爾有稍微增大信息量的可能,也可以藉助數據壓縮技術予以解決(在對明文編碼之前先進行壓縮)。之所以這樣提,是因為二維條碼作為一種條碼技術,畢竟其本質用途並非成為一種信息存儲介質,其出現的目的是為了使用標準化、工業化的識讀器快速識別業務標識、業務數據的索引或檢索條件、或者少量脫機關鍵性業務數據,從而在相應的應用領域中發揮一個環節的作用。
圖1為本發明應用方法模型2為本發明業務活動規則示意3為本發明頭格式4為本發明目標碼生成過程的概念化的活動5為本發明目標碼識讀過程的概念化的活動圖具體實施方式
實施例1身份認證用於身份識別,包括身份證件、貴賓卡、電子請柬、股東卡等。
具體應用舉例--電子請柬會展組織機構作為授權方,為每個被邀請人生成一個目標碼;明文內容可以是關鍵性信息,比如房間號、座位號以及被邀請人身份信息等。並且指定本應用的解密密碼原則,解密密碼可以採用隨機生成的密碼或者使用被邀請人的身份證號碼。
會展組織機構把目標碼印製在請柬上,以電子或紙質形式送達每個被邀請人。
會展組織機構把激活碼和授權碼送達會展接待單位。
會展接待單位安裝本發明加密二維條碼識讀軟體,使用激活碼激活軟體,使用授權碼獲得識讀權限。
被邀請人入場時,出示請柬;接待人員使用識讀器掃描請柬上的目標碼,要求輸入附加驗證碼時,根據事先定下的解密密碼原則由被邀請人輸入密碼還是由接待方查驗被邀請人的身份證;如果解密密碼是身份證號,查驗身份證無誤後,由接待人員輸入身份證號。
識讀出結果後,完成籤到,並根據明文內容決定下一步如何安排被邀請人。識讀過程出現任何錯誤(包括樣本類型錯、解密錯、校驗錯等),說明目標碼是偽造的或者是被盜用的,可以拒絕來人的籤到。
每次會議可以作為不同的應用,分別在服務方生成伺服器上開立不同帳戶,使用不同的密鑰對,使用不同的授權碼。
實施例2電子票務,用於一次性使用的有價票、券。包括演出票務、交通運輸票務等。
具體應用舉例--電子機票某航空公司在網上出售民航機票。
網際網路用戶訪該售票網站,進行網上訂購,並完成支付後,網站動態生成一個目標碼,內容是航班號、離港時間、座位號、票價、購票人身份、保險金額等全部機票的票面信息,解密密碼可由用戶決定是否設置。
航空公司作為授權方把激活碼和授權碼給設在機場的本公司check-in辦理臺。
辦理臺安裝識讀軟體,使用激活碼激活,使用授權碼獲得識讀權限。
用戶持列印出來的目標碼作為機票直接到辦理臺辦手續、換取登機牌時,檢票機構掃描目標碼(有解密密碼的,提示用戶輸入),得到用戶的座位號、身份證號等票面信息,查驗證件、給用戶發放登機牌。
為了提高安全級別,航空公司可以定期更換密鑰對,同時只須定期從網上給各個機場更新授權碼即可。
實施例3電子獎券,用於可兌換實物/現金的、網上生成的電子券。包括電子彩票、網站發行的實物(或代金)優惠券、網際網路遊戲娛樂的領獎憑據等。
具體應用舉例--網上彩票銷售某彩票銷售機構開通網上彩票銷售。
彩民可以直接在網上下注購買,每個購買請求即時生成一個本發明加密二維條碼目標碼,內容是投注的目標(比如數字組合等,隨彩票遊戲規則而定)、注數、本人身份等信息,彩民可以自行決定是否設置解密密碼。
彩票銷售機構作為授權方把激活碼和授權碼授予各個彩票獎金兌獎處。兌獎處使用激活碼激活識讀軟體,並使用授權碼進行授權。
當開獎後,中獎的彩民可以持目標碼到彩票兌獎機構兌換獎金。兌獎工作人員使用識讀軟體識讀目標碼,確定中獎等級和彩民身份無誤後,完成兌獎。
如果需要提高安全級別,彩票銷售機構可以在每一期彩票的銷售中使用不同的密鑰對,從而從網上向兌獎處按期提供不同的授權碼。
權利要求
1.一種加密二維條碼的組成,該編碼格式內置全體唯一標識號(Universal UniqueIdentifier,簡稱為UUID),其特徵在於編碼格式由以下四部分依次序組成(1)首冗餘字節-1個8比特0的字節(可有可無)(2)頭(header)-7位元組(3)校驗數據塊(數字籤名段)(verifying)(4)密文體(body);UUID組成包括兩部分(1)x成分用某種算法產生6位元組區別值,以確保在y成分相等情況下區分;(2)y成分(也稱時間戳)一個0-0x3FFFFFFFFFF間的無符號長整數,表示生成樣本的時間戳,是生成該樣本的系統時間與某個時間基點的毫秒差值數,具體時間基點,可以隨應用不同、應用開發投產的時間不同而自定義。
2.根據權利要求1所述的加密二維條碼的組成,其特徵在於頭由56比特位組組成,第0至第1共2個比特表示樣本類型,即一個0-3之間的無符號小整數,具體含義為1=激活碼,2=授權碼,3=目標碼,0=非法;第2至第43共42個比特,即保存一個0-0x3FFFFFFFFFF間的無符號長整數,為加密二維條碼時間戳(UUID的y成分);第44至第45共2個比特表示解密密碼類型標誌編碼,保存一個0-3之間的無符號小整數,0=該樣本未設置密碼,1=應用定義的預設密碼,2=買方設定的密碼,3=賣方設定的密碼;第46至第55共10個比特是密文的長度,保存一個0-1023之間的無符號小整數。
3.根據權利要求1所述的加密二維條碼的組成,其特徵在於密文體是採用PBE算法加密明文而得到的二進位數據塊。
4.根據權利要求1所述的加密二維條碼的組成,其特徵在於加密二維條碼目標碼中帶有授權方的數字籤名(校驗數據塊),即使用授權方的RSA私鑰加密明文的MD5信息摘要而得到的二進位信息塊。
5.一種加密二維條碼的應用方法,其具體步驟如下(1)服務方部署一套基於網際網路的應用服務系統,配置RSA密鑰對(根密鑰對),以建立一個加密二維條碼的具體行業應用體系;(2)授權方在服務方開戶獲得一個帳戶同時生成一對RSA密鑰對,服務方系統使用根密鑰對中的私鑰加密該密鑰對中的公鑰,並製成授權碼;(3)授權方在具體應用背景下,把授權碼授予識讀方;(4)授權方在具體應用背景下,把信息明文加密並結合數字籤名(使用自己私鑰對明文運算而得)製成目標碼,通過Internet「發布」或者「銷售」給消費方;(5)識讀方從服務方獲得識讀軟體和激活碼,安裝並通過識讀激活碼激活識讀軟體,從而獲得根密鑰對中的公鑰,用以解密授權碼;(6)識讀方使用授權方授予的授權碼(其中含授權方公鑰)獲得具體行業應用背景下的識讀權力,從而獲得識讀、解密目標碼的條件;(7)消費方持目標碼到識讀方現場進行識讀,這就是具體行業應用背景意義下的消費;識讀方使用識讀軟體識讀目標碼,根據識讀通過與否以及明文的內容,確定消費方的消費權利,完成消費過程。
6.根據權利要求5所述的加密二維條碼的應用方法,其特徵在於服務方是加密二維條碼某具體行業應用平臺的運營機構,它擁有一套加密二維條碼在線生成系統,配置有RSA密鑰對(根密鑰對);授權方是具體行業應用的「賣方」,它在「服務方」的系統上開有使用帳戶(用戶名、密碼),並擁有服務方系統為其生成的一對RSA密鑰對(授權方密鑰對);授權方負責管理和生成應用樣本;識讀方是具體行業應用的「供貨方」或「消費場所」,它擁有加密二維條碼識讀軟體,並在獲得「服務方」授予的「激活碼」、「授權方」授予的「授權碼」的前提下,能夠識讀授權方發行/「銷售」的「目標碼」;消費方是具體行業應用的「買方」,它持有授權方發行/「銷售」的「目標碼」,並通過「識讀方」的識讀,完成「購買」某種商品/服務或達到某種消費目的最終用戶。
7.根據權利要求5所述的加密二維條碼的應用方法,其特徵在於激活碼是使識讀方能夠識讀由服務方系統中產生的所有授權碼的能力的一種介質;激活碼的介質形式是二維條碼,其明文內容就是服務方公鑰(根公鑰),用這個根公鑰可以解密所有本應用體系中的授權碼。
8.根據權利要求5所述的加密二維條碼的應用方法,其特徵在於授權碼是授權方向識讀方授予識讀目標碼的權力的一種介質。授權碼的形式也是本文描述加密二維條碼,其明文內容是授權方公鑰;授權碼數字籤名是「服務方」籤署的。
9.根據權利要求5所述的加密二維條碼的應用方法,其特徵在於目標碼是承載應用信息的,在具體行業應用背景下它可能作為「商品」或者銷售憑據由消費方(「買方」)持有的加密二維條碼;目標碼數字籤名是「授權方」籤署的;獲得該目標碼授權方授權的識讀方可以識讀;如果目標碼帶有識讀密碼的,在識讀過程中需要用戶輸入識讀密碼。
全文摘要
本發明屬於條碼應用技術領域,尤其是一種加密的二維條碼的組成及應用方法,本發明的方法適用於電子商務、電子政務、信息安全、身份認證、電子票務、網際網路等領域。本發明的方法可廉價地、在線地、快速地生產高安全性的加密二維條碼,用以承載關鍵的、保密的、有價的信息,並且可以使用支持二維條碼標準的條碼識讀設備識讀;本發明的加密二維條碼具有防偽造、防抵賴、防篡改、防盜用、防重複等功能。
文檔編號G09C1/00GK1878057SQ20051007484
公開日2006年12月13日 申請日期2005年6月7日 優先權日2005年6月7日
發明者王向東 申請人:王向東