本發明涉及信息安全領域,尤其涉及一種可保護用戶隱私的電子票據管理系統與方法。
背景技術:
不斷發展的信息技術在商業交易中得到了越來越多和越來越重要的應用。以電子發票、電子收據為代表的電子票據正在逐步取代傳統的紙質票據。作為對交易的一種記錄,電子票據通常采用集中存儲方式以便于管理,而存儲電子票據的服務器(如國內外各種云存儲服務提供商)往往是誠實但好奇的,管理者可能會通過對服務器上存儲的電子票據進行各種分析來窺探買家或賣家的隱私(如買家的身份信息或賣家的盈利狀況);若服務器受到外來攻擊,其上集中存儲的電子票據也存在被泄露從而被加以利用的風險。另一方面,電子票據確實有可能包含一些敏感信息,而作為電子票據用戶的買賣雙方(或一方)有可能不希望這類信息被公開;例如,賣家認為交易的商品名稱和/或交易金額不應被存儲票據的服務器獲知,再如,個人(或團體)買家不希望暴露其真實姓名(或團體名稱)。為迎合此類需求,有必要在電子票據管理中引入恰當的技術手段,幫助用戶也即交易雙方(或一方)保護其隱私。
技術實現要素:
本發明技術解決問題:克服現有技術的不足,提供一種隱私保護的電子票據管理系統與方法,可用于保護與原始交易有關的用戶指定的敏感信息。視交易雙方的需求而定,所述敏感信息可以是交易信息中的一項或多項條目。
本發明利用單向函數來保護商業交易中的敏感信息。具體地說,敏感信息以掩碼方式被載入電子票據,不持有特定輔助信息的任何人都無法從電子票據中的掩碼恢復出被保護的敏感信息。所述的單向函數是一類特殊的函數,其特點是從輸入值計算輸出值很容易,但從輸出反推輸入不可行;實際應用當中大多采用抗碰撞的單向哈希函數,其特點是輸入值的長度任意但輸出值的長度固定,且找到具有相同輸出的兩個不同輸入值在計算上不可行。此類單向函數通常由密碼標準化組織制定且由系統使用者選定。
本系統包含以下參與方:出票人、持票人、驗票人、服務器。出票人是交易賣方,是電子票據的產生者,負責生成電子票據并將其上傳至服務器;持票人是交易買方,是電子票據的持有者;驗票人是交易驗證方(例如受理報銷/審計業務的組織),是電子票據的驗證者;服務器負責存儲出票人上傳的電子票據,并允許持票人和驗票人(以及出票人)讀取電子票據。所述電子票據為對交易的電子記錄,其內容分為兩部分:公開信息和掩碼。公開信息是指交易中無需保護的信息,票據生成時不做特殊處理;特別地,每張電子票據都具有公開的唯一標識符(類似于發票的編號),用于檢索電子票據。掩碼是指交易信息中需要保護的敏感信息經單向函數處理后的結果,這相當于將敏感信息以掩碼方式載入電子票據。在服務器中存儲和讀取電子票據時有可能要用到電子簽名生成和校驗等技術以保證電子票據的完整性,服務器也可能需要對持票人等進行必要的訪問控制,但本發明關注的是隱私保護,完整性保護及訪問控制不是本發明的核心內容。
本發明采用的技術方案如下:
一種隱私保護的電子票據管理系統與方法,如圖1所示,涉及電子票據在各參與方之間的流轉,包括電子票據的生成和驗證。具體如下。
一、電子票據的生成過程
1)出票人為電子票據選取輔助碼并本地保存;輔助碼不應重復使用,也即為不同的電子票據應選取不同的輔助碼。
2)如圖2所示,出票人將輔助碼以及原始票據中關于交易的一則或多則敏感信息代入選定的單向函數進行計算得到掩碼,利用掩碼和公開信息構造電子票據,并上傳至服務器,其中,掩碼由輔助碼和原始票據中的敏感信息共同且唯一確定。
3)出票人通過離線方式告知持票人此電子票據所對應的輔助碼,持票人可根據此輔助碼核實出票人存儲在服務器中的電子票據。
所述步驟1)中,輔助碼應該足夠長,建議為112比特或更長的隨機數或者偽隨機數,這樣既使得不同的電子票據得以對應不同的輔助碼,也使得敵手通過窮舉法從掩碼猜測出敏感信息變得不可行。出票人可以隨機選取輔助碼,也可以基于其私有密鑰對電子票據的唯一標識符等條目進行密碼學運算來生成輔助碼。輔助碼也可由持票人類似選取并離線告知出票人,或者由出票人和持票人共同選取。
所述步驟3)中,離線方式是指消息不會被票據存儲服務器或其他無關方獲知的通信方式,例如出票人通過紙質打印傳遞給持票人、出票人通過近場通信(NFC)或二維碼方式傳遞給持票人等。
所述步驟3)中,核實電子票據是指持票人自己根據原始票據中的敏感信息和輔助碼計算單向函數的輸出值,并檢查該輸出值是否與電子票據中的掩碼一致。
二、電子票據的驗證過程
1)驗票人根據電子票據的唯一標識符從服務器中在線獲取需驗證的電子票據,同時通過離線方式從持票人處獲取該電子票據對應的輔助碼和敏感信息。
2)驗票人將獲得的輔助碼和敏感信息代入單向函數進行計算。
3)驗票人將計算結果與電子票據中的掩碼進行比較,若相同則驗證通過,否則不通過。
與現有技術相比,本發明提出了一種隱私保護的電子票據管理系統與方法,其有益效果為:
1)本發明采用單向函數對原始票據中用戶指定的敏感信息進行處理,操作簡單易實現,敏感信息以掩碼形式被載入電子票據,不會被攻擊者(例如票據存儲服務器的管理者,或者成功入侵了該服務器的黑客)獲知。
2)視交易雙方的需求而定,本發明可保護關于交易的一則或多則敏感信息,靈活性好。
3)本發明中電子票據中的掩碼通過對敏感信息和輔助碼進行單向函數計算而得到,因此,不知曉輔助碼的攻擊者無法通過嘗試窮舉來發現有關原始交易的敏感信息。掩碼由輔助碼和原始票據中的敏感信息共同且唯一確定,若敏感信息不同則掩碼不同,故持票人無法向驗票人捏造有關交易內容的敏感信息。
4)本發明中出票人、驗票人、服務器等參與方各司其職,實現了電子票據流轉過程中產生、驗證、存儲等功能的隔離,并為各自的升級擴展和整體的運維管理提供了方便。
附圖說明
圖1為電子票據管理系統框架示意圖;
圖2為電子票據組成及構造過程示意圖;
圖3為電子票據驗證過程的流程圖。
具體實施方式
為使本發明的目的、原理、技術方案和優點更加清晰明白,以下將結合具體實施例,并參照附圖對本發明做詳細的說明。
本實施例以基于單向哈希函數的隱私保護的電子發票管理系統為例對本發明的系統設計方法進行說明。假定某單位員工O(持票人)從經銷商G(出票人)處完成了一筆采購,G向O開具了電子發票e,O需要找其單位財務處V(驗票人)進行核銷。指定對稱加密算法Ex為國際通用的分組密碼AES-128,其中,x是G選取的長度為128比特的對稱密鑰。指定單向哈希函數h為RFC 6234中的SHA-224算法。具體實現步驟為:
一、電子發票生成過程
1)出票人G根據需生成的電子發票e的唯一標識符i計算a=Ex(i)作為電子發票e的輔助碼,i對電子發票而言通常為發票代碼和發票號碼的組合。
2)G和O根據雙方的需求進行協商后,將付款日期和付款單位名稱作為敏感信息s,把輔助碼a和敏感信息s代入單向哈希函數h計算得到電子發票e的掩碼x=h(a||s),其中||表示二進制比特串的拼接。G利用掩碼和公開信息構造電子發票e,經必要操作(如電子簽名)后將其上傳至某公有云,其中,公開信息指原始發票中除敏感信息之外的信息。
3)G將a以Base64編碼格式打印在紙條上交付持票人O;O可據此核實存儲在服務器中的電子發票e。
二、電子發票驗證過程,如圖3所示:
1)驗票人V根據電子發票e的唯一標識符i從前述公有云在線獲取e并進行必要(如電子簽名)驗證。持票人O通過口頭方式將付款日期和付款單位名稱也即所屬交易的敏感信息s'告知V,并將打印有輔助碼a'的紙條出示給V。
2)V將輔助碼a'和敏感信息s'代入單向哈希函數h計算得到x'=h(a'||s')。
3)V將x'與e中掩碼x進行比較,若相同則驗證通過(并進行財務核銷),否則不通過。
綜上所述,本發明提出了一種隱私保護的電子票據管理系統與方法。本發明采用單向函數對原始票據中用戶指定的敏感信息進行處理,操作簡單易實現,并能保證商業交易中的敏感信息僅被出票人、持票人和驗票人所獲知;視交易雙方的需求而定,本發明可保護關于交易的一則或多則敏感信息,靈活性好;本發明通過對敏感信息和輔助碼進行單向函數計算得到電子票據中的掩碼,保證了不知曉輔助碼的攻擊者無法通過嘗試窮舉來發現有關原始交易的敏感信息,掩碼由敏感信息和輔助碼共同唯一決定,若敏感信息不同則掩碼不同,保證了持票人無法向驗票人捏造有關交易內容的敏感信息;本發明中出票人、驗票人、服務器等參與方各司其職,實現了電子票據流轉過程中產生、驗證、存儲等功能的隔離,并為各自的升級擴展和整體的運維管理提供了方便。
以上所述實施例僅為更好的說明本發明的目的、原理、技術方案和有益效果。所應理解的是,以上所述僅為本發明的具體實施例而已,并不用于限制本發明,凡在本發明的精神和原則之內所做的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。