專利名稱:用于使用數字票據提供匿名性的電子商務的方法和設備的制作方法
技術領域:
本發明涉及一種用于使用數字票據的電子商務的方法和設備,更具體地說,涉及這樣一種用于使用數字票據的電子商務的方法和設備,通過其保證了匿名性,從而數字票據用戶的信息泄露到達最小,并且促進了業務的使用。
背景技術:
互聯網實現了有用的信息的高效收集和處理,以及多種商品的獲得和業務在線(即,無需物理接觸)。因此,諸如加密的信用卡、電子現金和微支付系統的各種電子支付方案已經被設計和實現來用于電子商務。例如,在網絡上的服務提供商通常發出證書以確保用戶使用服務的特殊權利。這種證書被稱為數字票據(digital ticket)。使用數字票據的電子商務的概念已經被公開。例如,第6,236,971號美國專利公開了一種用于使用數字票據控制數字作品的發布和使用的現有技術系統。
然而,現有技術的數字票據允許票據發放器(issuer)或服務提供商在發放和消費(consume)(例如,交出或使用)期間容易地監控和記錄用戶的行為,這會導致用戶的敏感信息被泄露的問題。
發明內容
本發明提供一種用于使用數字票據的電子商務的方法和設備,通過其保證了匿名性從而數字票據用戶的信息泄露到達最小,并且促進了業務的使用。
根據示例性的非限定性的方面,提供一種用于使用數字票據的電子商務的方法。該方法包括生成隨機數;生成包括該隨機數的消息;將散列函數應用于該消息;對通過將散列函數應用于該消息獲得的散列值進行隱藏;向票據發放器發送隱藏的散列值;接收在其中票據發放器已經以數字簽名簽署散列值的消息;對在接收的消息中的數字簽名進行驗證;以及向票據鑒定器發送具有驗證的數字簽名和通過以比散列函數已經被應用于獲得散列值的次數少一次的次數將散列函數應用于該消息而獲得的值的消息。
根據另一示例性的非限定性的方面,提供一種用于使用數字票據的電子商務的方法,該方法包括對通過將散列函數應用于包括隨機數的消息而獲得的散列值進行隱藏,并向票據發放器發送隱藏的值;接收包括發送的散列值并由票據發放器以數字簽名簽署的消息;驗證在接收的消息中的數字簽名;以及向票據鑒定器發送具有驗證的數字簽名和通過以比散列函數已經被應用于獲得散列值的次數少一次的值的次數將散列函數應用于該消息而獲得的值的消息,以消費數字票據。
根據另一示例性的非限定性的方面,提供一種用于使用數字票據的電子商務的方法,該方法包括接收其每一包括由票據用戶生成的隨機數的隱藏的消息;以數字簽名簽署一個接收的消息;以及向票據用戶發送具有數字簽名的消息。
根據另一示例性的非限定性的方面,提供一種用于使用數字票據的電子商務的方法,該方法包括接收包括由票據用戶生成的隨機數并由票據發行器以數字簽名簽署的消息;驗證該消息;鑒定該消息是否被重復使用;以及當該消息沒有被重復使用時,向票據用戶提供服務。
根據另一示例性的非限定性的方面,提供一種用于使用數字票據的電子商務的方法,該方法包括接收由票據用戶生成并由票據發放器以數字簽名簽署的散列值和用于生成該散列值的輸入散列值;驗證該散列值和該輸入散列值;鑒定該散列值是否被重復使用;以及當該散列值沒有被重復使用時,向票據用戶提供服務。
根據另一示例性的非限定性的方面,提供一種用于使用數字票據的電子商務的設備,該設備包括消息生成模塊,用于生成隨機數并生成包括該隨機數的消息;消息處理模塊,用于隱藏消息;以及收發器模塊,用于向票據發放器發送隱藏的消息,并接收由票據發放器以數字簽名簽署的隱藏的消息,其中,消息處理模塊驗證在接收的消息中的數字簽名,收發器模塊向票據鑒定器發送具有數字簽名的驗證的消息以消費該數字票據。
根據另一示例性的非限定性的方面,提供一種用于使用數字票據的電子商務的設備,該設備包括消息生成模塊,用于生成隨機數并生成包括該隨機數的消息;散列化模塊,用于將散列函數應用于該消息;消息處理模塊,用于隱藏通過將散列函數應用于該消息而獲得的散列值;以及收發器模塊,用于向票據發放器發送隱藏的散列值,并接收在其中由票據發放器以數字簽名簽署的散列值的消息,其中,消息處理模塊驗證在接收的消息中的數字簽名,收發器模塊向票據鑒定器發送具有該數字簽名和通過以比散列函數已經被應用于獲得散列值的次數少一次的次數來應用散列函數而獲得的值的驗證的消息,以消費數字票據。
根據另一示例性的非限定性的方面,提供一種用于使用數字票據的電子商務的設備,該設備包括收發器模塊,用于接收包括由票據用戶生成的隨機數的隱藏的消息;以及盲簽名模塊,用于以數字簽名簽署接收的消息,其中,收發器模塊向票據用戶發送具有數字簽名的消息。
根據另一示例性的非限定性的方面,提供一種用于使用數字票據的電子商務的設備,該設備包括收發器模塊,用于接收包括由票據用戶生成的隨機數并由票據發放器以數字簽名簽署的消息;數字簽名驗證模塊,用于驗證接收的消息;以及重復使用鑒定模塊,用于鑒定該消息是否被重復使用。
根據另一示例性的非限定性的方面,提供一種用于使用數字票據的電子商務的設備,該設備包括收發器模塊,用于接收由票據用戶生成并由票據發放器以數字簽名簽署的散列值和用于生成該散列值的輸入散列值;數字簽名驗證模塊,用于驗證在散列值中的數字簽名;散列化模塊,用于驗證具有數字簽名的散列值和輸入散列值之間的關系;以及重復使用鑒定模塊,用于鑒定散列值是否被重復使用。
通過參照附圖對其示例性的非限定性的實施例進行的詳細描述,本發明的上述和其他方面將會變得更加清楚,其中圖1示出使用數字票據的電子商務的概念;圖2是發放數字票據的現有技術過程的流程圖;圖3是消費數字票據的現有技術過程的流程圖;圖4是根據示例性非限定性實施例的使用數字票據的電子商務系統的框圖;圖5是根據另一示例性非限定性實施例的使用數字票據的電子商務系統的框圖;圖6是在圖4所示的電子商務系統中發放僅使用一次的數字票據的過程的流程圖;
圖7是在圖4所示的電子商務系統中消費僅使用一次的數字票據的過程的流程圖;圖8是在圖4所示的電子商務系統中發放可多次使用的數字票據的過程的流程圖;圖9是在圖4所示的電子商務系統中消費可多次使用的數字票據的過程的流程圖;圖10是在圖5所示的電子商務系統中發放可多次使用的數字票據的過程的流程圖;以及圖11是在圖5所示的電子商務系統中消費可多次使用的數字票據的過程的流程圖。
具體實施例方式
通過參照下面對示例性的非限定性的實施例和附圖的詳細描述,本發明的優點和特征以及實現本發明的方法可更易于理解。然而,本發明可以以多種不同的形式來實施,而不應被解釋為受限于在此闡釋的實施例。此外,提供這些實施例從而該公開將是徹底的和完全的,并將完整地將本發明的構思傳達給本領域技術人員,本發明將僅由所附權利要求定義。在說明書中,相同的標號始終指示相同的部件。
現將參照在其中示例性的非限定性實施例被示出的附圖來更完整地描述本發明。
圖1示出使用數字票據的電子商務的概念。數字票據是向票據持有者保證請求在票據中指定的服務的權利的數字證書。通常,數字票據指示包含關于票據用戶的信息和關于在聯合協定下定義的服務權利的信息并且以票據發放器的數字簽名簽署的消息。在使用數字票據的電子商務中的參與者大致分為三種類型票據發放器110、票據用戶120、以及票據鑒定器(或服務提供商)130。
票據發放器110生成數字票據,以數字簽名簽署數字票據,并發放該數字票據。票據用戶120使用將被提供服務的數字票據。票據鑒定器130驗證數字票據的有效性并提供在數字票據中指定的服務。票據發放器110和票據鑒定器130可以相同,也可不同,這取決于具體的實際應用。使用數字票據的電子商務的典型的機制包括票據用戶120關于票據購買與票據發放器110達成協定,并根據該協定獲得由票據發放器110發放的數字票據的操作;以及票據用戶120消費(即,交出或使用)數字票據并接收由票據鑒定器130提供的服務的操作。
圖2是發放數字票據的現有技術過程的流程圖。在操作S210中,票據用戶120和票據發放器110關于票據發放達成協定。在操作S220中,票據發放器110生成消息,該消息包含關于票據發放器110的信息、用于防止數字票據的重復使用的計數值、以及數字票據可被使用的次數(下文中被稱為票據可用計數)。接下來,票據發放器110在操作S230中使用其私鑰以數字簽名簽署該消息,并在操作S240中向票據用戶110發送簽署的消息。
接下來,在操作S250中,票據用戶120使用票據發放器110的公鑰對以數字簽名簽署的消息(即,從票據發放器110接收的數字票據)進行解碼,并驗證數字簽名是否是已經由票據發放器110寫入的,或驗證服務內容是否與先前達成協定的內容相符。如果驗證成功,則在操作S260中,票據用戶120存儲數字票據。然而,如果數字簽名不是已經由票據發放器110寫入的,或者服務內容與先前協商的內容不符,則在操作S270中,票據用戶120向票據發放器110發送報錯消息。
圖3是消費數字票據的現有技術過程的流程圖。在操作S310中,票據用戶120向票據鑒定器(或服務提供商)130發送存儲在其中的數字票據以接收服務。在操作S320中,票據鑒定器130使用票據發放器110的公鑰對數字票據進行解碼,以驗證數字票據是否有效。如果數字票據被驗證為有效,則為了鑒定數字票據是否被重復使用,票據鑒定器130在操作S330中從數字票據中提取用于防止重復使用的計數值,并在操作S340中在數據庫(DB)中搜索該計數值。
如果該計數值沒有出現在DB中,則當前使用是數字票據的第一次使用。因此,在操作S350中,票據鑒定器130將計數值存儲在DB中,并向票據用戶120提供服務。如果數字票據可多次使用,則在操作S360中,票據鑒定器130發放票據可用計數減少了1的新的票據。票據可用計數減少了1的新的票據通過圖2所示的過程被發放。同時,如果該計數值已經出現在DB中,則由于該數字票據已經被使用,所以票據鑒定器130可向票據使用者120發送拒絕消息。
根據分別在圖2和3中所示的現有技術票據發放和消費過程,票據發放器110和票據鑒定器130可獲得票據用戶120的信息。其結果是,沒有保證票據用戶120的匿名性,使用服務的票據用戶120的行為可被監控。因此,期望保證票據用戶120的匿名性的數字票據的概念。
圖4是根據示例性的非限定性實施例的使用數字票據的電子商務系統的框圖。該電子商務系統包括票據用戶410、票據發放器430、以及票據鑒定器450。
包括數字票據的內容的消息由票據用戶410生成,以保證票據用戶410的匿名性。換句話說,票據用戶410生成包含用于防止重復使用數字票據的唯一隨機數和關于票據發放器430的信息的消息。當數字票據可多次使用時,該消息可包括票據可用計數,當數字票據僅可使用一次時,該消息可不包括票據可用計數。如上所述,票據發放器430和票據鑒定器450可以是相同的物理裝置,或可以是不同的物理裝置,這取決于實現方式。票據用戶410包括消息生成模塊411、消息處理模塊412、收發器模塊413、以及存儲模塊414。在用于電子商務的設備中,部件和模塊可被實現為再現一個或多個中央處理單元(CPU)。
這里使用的術語“模塊”是指,但不限于軟件或諸如執行特定任務的現場可編程門陣列(FPGA)或專用集成電路(ASIC)的硬件。模塊可有利地被配置為駐留在可尋址存儲介質中,并且被配置為由一個或多個處理器執行。因此,作為示例,模塊可包括諸如軟件組件、面向對象的軟件組件、類組件和任務組件的組件、進程、函數、屬性、程序、子程序、程序代碼段、驅動程序、固件、微碼、電路、數據、數據庫、數據結構、表、數組、以及變量。在組件和模塊中提供的功能可被組合成更少的組件和模塊,或還可被分成其它的組件和模塊。此外,組件和模塊可按其由在通信系統中的一個或多個CPU執行的方式而被實現。
消息生成模塊411生成將被包含在數字票據中的唯一隨機數,生成包含該隨機數、關于票據發放器430的信息、以及當數字票據可多次使用時的票據可用計數的消息,并向消息處理模塊412提供該消息。消息處理模塊412隱藏由消息生成模塊411生成的消息,驗證由票據發放器430盲簽署的在消息中的數字簽名,并對隱藏的信息進行解盲以提取具有解盲的數字簽名的消息,即數字票據。存儲模塊414存儲由消息處理模塊412提取的數字票據。收發器模塊413發送和接收消息。
票據發放器430包括收發器模塊431、消息驗證模塊432、以及盲簽名模塊433。
收發器模塊431接收從票據用戶410的收發器模塊413發送的消息,并向票據用戶410發送由盲簽名模塊433盲簽署的消息。當從票據用戶410接收的消息是盲的或被加密的消息時,消息驗證模塊432對消息進行解盲或解碼,并驗證消息的內容是否與先前協定的內容相符。盲簽名模塊433以盲簽名簽署由消息驗證模塊432驗證的消息。
票據鑒定器450包括收發器模塊451、存儲模塊452、重復使用鑒定模塊453、以及數字簽名驗證模塊454。
收發器模塊451從票據用戶410接收數字票據,并當接收的數字票據的票據可用計數具有至少是2的值時,向票據用戶410發送請求發放票據可用計數減少了1的消息。數字簽名驗證模塊454通過使用票據發放器430的公鑰對數字票據進行解碼來驗證在從收發器模塊451接收的數字票據中的數字簽名是否是已經由票據發放器430寫入的。重復使用鑒定模塊453鑒定從票據用戶410接收的數字票據是否已經被消費。
重復使用鑒定模塊453從數字票據中提取用于防止重復使用的隨機數,并在存儲模塊452中搜索該隨機數。如果該隨機數沒有出現在存儲模塊452中,則由于這是第一次使用數字票據,所以重復使用鑒定模塊453將該隨機數存儲在存儲模塊452中。這里,可使用現有技術數據加密算法來執行隱藏。可使用諸如基于RSA的盲簽名方案或基于DLP的盲簽名方案的公知的盲簽名方案來實現盲簽名。稍后將參照圖6到9來描述圖4中示出的根據示例性的非限定性的實施例的電子商務系統的詳細操作。
圖5是根據另一示例性的非限定性實施例的使用數字票據的電子商務系統的框圖。該電子商務系統包括票據用戶510、票據發放器530、以及票據鑒定器550。
票據用戶510包括消息生成模塊511、散列化模塊512、消息處理模塊513、收發器模塊514、以及存儲模塊515。
消息生成模塊511生成將被包含在數字票據中的唯一隨機數,生成包含該隨機數和關于票據發放器530的信息的消息,并將該消息提供給散列化模塊512。散列化模塊512通過按(票據可用計數+2)的次數連續地將單向散列函數應用于該消息來生成散列值。消息處理模塊513隱藏由散列化模塊512生成的散列值,驗證在該消息中的由票據發放器530盲簽署的數字簽名,并對隱藏的消息解盲以提取具有解盲的數字簽名的消息。存儲模塊515存儲由消息處理模塊513提取的具有解盲的數字簽名的消息。收發器模塊514接收和發送消息。
票據發放器530包括收發器模塊531、消息驗證模塊532、以及盲簽名模塊533。
收發器模塊531接收從票據用戶510的收發器模塊514發送的消息,并將由盲簽名模塊533盲簽署的消息發送到票據用戶510。消息驗證模塊532對從票據用戶510發送的消息進行解盲或解碼,并驗證該消息的內容是否與先前協定的內容相符。盲簽名模塊533以盲簽名簽署由消息驗證模塊532驗證的消息。
票據鑒定器550包括收發器模塊551、存儲模塊552、重復使用鑒定模塊553、數字簽名驗證模塊554、以及散列化模塊555。
收發器模塊551從票據用戶510接收數字票據,并當接收的數字票據的票據可用計數至少是2時,將與票據可用計數減少了1的數字票據相應的消息發送到票據用戶510。數字簽名驗證模塊554通過使用票據發放器530的公鑰對數字票據進行解碼來驗證在從收發器模塊551接收的數字票據中的數字簽名是否是已經由票據發放器530寫入的。散列化模塊555確定從票據用戶510接收的兩個散列值之間是否具有正確的關系。
稍后將參照圖11詳細描述散列化模塊550的這種操作。重復使用鑒定模塊553鑒定從票據用戶510接收的數字票據是否已經被消費。重復使用鑒定模塊553在存儲模塊552中搜索從票據用戶510發送的散列值。如果該散列值沒有出現在存儲模塊552中,則由于這次是第一次使用該數字票據,所以重復使用鑒定模塊553將該散列值存儲在存儲模塊552中。
稍后將參照圖10和11描述圖5示出的根據示例性的非限定性的實施例的電子商務系統的詳細操作。
圖6是在圖4所示的電子商務系統中發放僅可使用一次的數字票據的過程的流程圖。可使用盲簽名來設計僅可使用一次的數字票據。
在操作S610中,票據用戶410和票據發放器430關于僅可使用一次的數字票據的發放達成協定。票據用戶410在操作S615中通過消息生成模塊411生成唯一隨機數“r”,其被用于重復使用鑒定,并在操作S620中生成包含該隨機數“r”和關于票據發放器430的信息的消息。票據用戶410在操作S625中使用消息處理模塊412來隱藏該消息,并在操作S630中通過收發器模塊413向票據發放器430發送該隱藏的消息。
票據發放器430在操作S635中通過收發器模塊431接收隱藏的消息,在操作S640中使用其私鑰通過盲簽名模塊433來以盲簽名簽署該消息,并在操作S645中通過收發器模塊431將具有盲簽名的消息發送到票據用戶410。
票據用戶410在操作S650中從票據發放器430接收該數字票據,并在操作S655中經過消息處理模塊412通過使用票據發放器430的公鑰對數字票據進行解碼來驗證在數字票據中的數字簽名是否是已經由票據發放器430寫入的。如果驗證成功,則在操作S660中,票據用戶410對該消息進行解盲以提取具有數字簽名的消息,并將具有該數字簽名的消息存儲在存儲模塊414中。
圖7是在圖4所示的電子商務系統中消費僅可使用一次的數字票據的過程的流程圖。通過圖6所示的過程發放的數字票據如下被消費。
在操作S710中,票據用戶410向票據鑒定器450發送存儲在其中的具有數字簽名的消息。票據鑒定器450在操作S720中接收該消息,并在操作S730中經過數字簽名驗證模塊454通過使用票據發放器430的公鑰對消息解碼來驗證在消息中的數字簽名是否是已經由票據發放器430寫入的。如果數字簽名是已經由票據發放器430寫入的,則在操作S740和S750中,票據鑒定器450通過重復使用鑒定模塊453執行重復使用鑒定。如果確定該消息是新的數字票據,則在操作S760中,票據鑒定器450向票據用戶410提供與數字票據的權利相應的服務,并消費該數字票據。
通過鑒定從票據用戶410發送的消息中包含的隨機數“r”是否與先前消費的數字票據的隨機數之一相同來執行重復使用鑒定。
更具體地說,票據鑒定器450在操作S740中從該消息中提取隨機數“r”,并在操作S750中在存儲模塊452中搜索該隨機數“r”。如果該隨機數“r”沒有出現在存儲模塊452中,則在操作S760中,票據鑒定器450將該隨機數“r”存儲在存儲模塊452中,并向票據用戶410提供與該數字票據的權利相應的服務。
同時,如果隨機數“r”出現在存儲模塊452中,則由于該數字票據被重復使用,所以票據鑒定器450可拒絕該數字票據的消費。
圖8是在圖4所示的電子商務系統中發放可使用多次的數字票據的過程的流程圖。在操作S810中,票據用戶410和票據發放器430關于可使用多次的數字票據的發放達成協定。
票據用戶410在操作S815中通過消息生成模塊411生成K個唯一的隨機數“ri”,其被用于重復使用鑒定,并在操作S820中生成其每一包括隨機數“ri”、關于票據發放器430的信息、以及票據可用計數的K個消息。票據用戶410在操作S825中使用消息處理模塊412隱藏所述K個消息,并在操作S830中通過收發器模塊413向票據發放器430發送所述K個隱藏的消息。
票據發放器430在操作S835中通過收發器模塊431接收所述K個消息,并在操作S840中通過消息驗證模塊432來驗證包含在所述K個消息中的信息。如果所述K個消息被驗證,則票據發放器430在操作S845中經過盲簽名模塊433使用其私鑰以盲簽名簽署K個消息之一,并在操作S850中通過收發器模塊431向票據用戶410發送具有盲簽名的消息(即,數字票據)。
票據用戶410在操作S855中從票據發放器430接收該數字票據,并在操作S860中經過消息處理模塊412通過使用票據發放器430的公鑰對數字票據解碼來驗證在數字票據中的數字簽名是否是已經由票據發放器430寫入的。如果驗證成功,則在操作S865中,票據用戶410對該消息解盲以提取具有該數字簽名的消息,并將具有該數字簽名的消息存儲在存儲模塊414中。
操作S845如下被執行。消息驗證模塊432從K個消息中隨機地選擇一個消息,并從票據用戶410請求用于對剩余(K-1)個消息進行解盲的解盲密鑰值。消息驗證模塊432使用解盲密鑰值對所述(K-1)個消息進行解盲,并驗證被包含在該(K-1)個消息的每一個中的信息(即票據可用計數)是否與在操作S810中達成的協定的內容相符。
如果被包含在(K-1)個消息中的信息與協定的內容相符,則可假定被隨機選擇的一個消息也包含正確的信息,因此,消息驗證模塊432將所述被選擇的一個消息發送到盲簽名模塊433。當選擇合適的K時,從K個消息中選擇一個消息的概率是1/2K。其結果是,對票據用戶410來說,難以預測將由票據發放器430選擇的消息,因此,幾乎不可能對票據可用計數等進行欺詐。K指示隨機數的數量,并可根據諸如網絡的安全狀態和請求的安全級別的環境因素而被相應地確定。
如上所述,僅有除了由票據發放器430隨機選擇的消息之外的消息被公開給公眾,而選擇的消息由票據發放器430的盲簽名模塊433在盲狀態中以數字簽名進行簽署,其后向票據用戶410發送。因此,票據用戶信息在數字票據的發放期間沒有被泄露。
圖9是在圖4所示的電子商務系統中消費可多次使用的數字票據的過程的流程圖。通過圖8所示的過程發放的數字票據如下被消費。
在操作S910中,票據用戶410向票據鑒定器450發送存儲在其中的具有數字簽名的消息。票據鑒定器450在操作S920中接收該消息,并在操作S930中經過數字簽名驗證模塊454通過使用票據發放器430的公鑰對該消息進行解碼來驗證在消息中的數字簽名是否是已經由票據發放器430寫入的。
如果數字簽名是已經由票據發放器430寫入的,則在操作S940和S950中,票據鑒定器450通過重復使用鑒定模塊453執行重復使用鑒定。如果確定消息是新的數字票據,則在操作S960中,票據鑒定器450向票據用戶410提供與該數字票據的權利相應的服務,并消費該數字票據。
通過鑒定從票據用戶410發送的消息中包含的隨機數“ri”與先前消費的數字票據的隨機數之一是否相同來執行重復使用鑒定。更具體地說,票據鑒定器450在操作S940中從該消息中提取隨機數“ri”,并在操作S950中在存儲模塊452中搜索該隨機數“ri”。如果隨機數“ri”沒有出現在存儲模塊452中,則在操作S960中,票據鑒定器450將隨機數“ri”存儲在存儲模塊452中,并向票據用戶410提供與該數字票據的權利相應的服務。其后,票據鑒定器450請求票據發放器430發放票據可用計數減少了1的數字票據。同時,如果隨機數“ri”出現在存儲模塊452中,則由于該數字票據被重復地使用,所以票據鑒定器450可拒絕該數字票據的消費。
圖10是在圖5所示的電子商務系統中發放可多次使用的數字票據的過程的流程圖。在圖10所示的示例性的非限定性的實施例中,不是將票據可用計數嵌入消息,而是通過將散列函數與票據可用計數成比例地應用于該消息而獲得的值被發送和接收。與圖8所示的示例性的非限定性實施例不同的是,用戶匿名性得到保證,并且關于票據可用計數的信息沒有被泄露。根據圖10所示的示例性的非限定性的實施例的發放數字票據的過程描述如下。
在操作S1010中,票據用戶510和票據發放器530關于可多次使用的數字票據的發放達成協定。票據用戶510在操作S1015中通過消息生成模塊511生成K個隨機數“ri”,并在操作S1020中生成其每一包含隨機數“ri”和關于票據用戶510的信息的K個消息Mi。在操作S1025中,票據用戶510經過散列化模塊512生成通過將散列函數按與(票據可用計數+2)的值相同的次數應用于所述K個消息Mi中的每一個獲得的值。票據用戶510在操作S1030中使用消息處理模塊513來隱藏所述K個消息,并在操作S1035中通過收發器模塊514向票據發放器530發送K個隱藏的消息Mi。
票據發放器530在操作S1040中通過收發器模塊531接收K個消息Mi,并在操作S1045中通過消息驗證模塊532驗證包含在K個消息Mi中的信息。如果K個消息Mi被驗證,則票據發放器530在操作S1050中通過盲簽名模塊533使用其私鑰以盲簽名簽署K個消息Mi之一,并在操作S1055中通過收發器模塊531向票據用戶510發送具有該盲簽名的消息。
票據用戶510在操作S1060中從票據發放器530接收具有盲簽名的消息,并在操作S1065中經過消息處理模塊513通過使用票據發放器530的公鑰對該消息進行解碼來驗證在消息中的數字簽名是否是已經由票據發放器530寫入的。如果驗證成功,則在操作S1070中,票據用戶510對該消息進行解盲以提取具有該數字簽名的消息,并將具有該數字簽名的消息存儲在存儲模塊515中。
操作S1025將被詳細描述。以Xi,0表示通過將公知的單向散列函數H一次應用于消息Mi獲得的值。散列化模塊512按與(票據可用計數+2)的值相同的次數連續地將散列函數H應用于消息Mi,并獲得以下連續的值Xi,0、Xi,1、Xi,2、……、Xi,n、Xi,n+1。這里,當“j”是在1到n+1范圍的數字時,滿足Xi,j=H(Xi,j-1)。票據用戶510在操作S1030中隱藏關于從1到K的每一個“i”的每一Xi,n+1,并在操作S1035中向票據發放器530發送每一隱藏的Xi,n+1。在散列狀態中,散列函數H按與(票據可用計數+2)的值相同的次數被應用,以保護數字票據的內容,直到數字票據被消費到與票據可用計數相同的次數。
為了鑒定票據用戶510是否對數字票據進行欺詐,票據發放器530如下執行操作S1045。票據發放器530的消息驗證模塊532從K個消息Mi中隨機地選擇一個消息,并請求票據用戶510向公眾公開剩余的(K-1)個消息。票據用戶510向票據發放器530發送關于每一請求的(K-1)個消息的隨機數“ri”和對隱藏的Xi,n+1進行解盲的解盲密鑰。票據發放器530的消息驗證模塊532驗證使用解盲密鑰公開的Xi,n+1是否與通過執行與由票據用戶510使用接收的ri和散列函數H執行的操作相同的操作生成的散列值相符,以確定所述(K-1)個消息是否正確。如果所述(K-1)個消息被確定為正確,則消息驗證模塊532將所述被選擇的一個消息發送到盲簽名模塊533。當K被合適地選擇時,從K個消息中選擇一個消息的概率是1/2K。其結果是,票據用戶510難以預測將由票據發放器530選擇的消息。因此,幾乎不可能對票據可用計數等進行欺詐。指示隨機數的數量的K可根據諸如網絡的安全狀態和請求的安全級別的環境因素而被適應地確定。
如上所述,僅有除了由票據發放器530隨機選擇的消息之外的消息被公開給公眾,而選擇的消息由票據發放器530的盲簽名模塊533在盲狀態以數字簽名進行簽署,并且接下來向票據用戶510發送。因此,票據用戶信息在數字票據的發放期間沒有被泄露。
圖11是在圖5所示的電子商務系統中消費可使用多次的數字票據的過程的流程圖。通過圖10所示的過程發放的數字票據如下被消費。
在操作S1110中,票據用戶510向票據鑒定器550發送消息Xi,n和具有數字簽名的消息Xi,n+1。票據鑒定器550在操作S1120中接收所述消息,并在操作S1130中經過數字簽名驗證模塊554通過使用票據發放器530的公鑰對消息進行解碼來驗證在消息Xi,n+1中的數字簽名是否是已經由票據發放器530寫入的。同時,在操作S1130中,票據鑒定器550的散列化模塊555驗證Xi,n+1=H(Xi,n)的關系是否實現。如果兩個驗證都成功,則在操作S1140和S1150中,票據鑒定器550通過重復使用鑒定模塊553執行重復使用鑒定。如果確定消息Xi,n+1是新的數字票據,則在操作S1160中,票據鑒定器550向票據用戶510提供與該數字票據的權利相應的服務并消費給數字票據。
通過鑒定從票據用戶510發送的Xi,n+1是否是未曾使用過的新值來執行重復使用鑒定。更具體地說,在操作S1140中,票據鑒定器550在存儲模塊552中搜索Xi,n+1。如果Xi,n+1沒有在存儲模塊552中出現,則在操作S1150中,票據鑒定器450將Xi,n+1存儲在存儲模塊552中,并向票據用戶510提供與該數字票據的權利相應的服務。其后,在操作S1160中,票據鑒定器550以數字簽名簽署可被用作票據可用計數減少了1的數字票據的消息Xi,n,其后向票據用戶510發送消息Xi,n。同時,如果Xi,n+1出現在存儲模塊552中,則由于數字票據被重復使用,所以票據鑒定器550可拒絕該數字票據的消費。
此外,使用數字票據的電子商務系統的前述方法可在計算機可讀介質、或數據載波中被實現。更具體地說,計算機可讀介質包括一系列指令(如計算機程序)。所述指令包括關于前述方法討論的步驟。其結果是,除了前述公開之外,本發明可實現為軟件。
本發明的用于使用數字票據的電子商務系統的方法和設備至少提供以下優點。例如,該方法和設備保證匿名性,從而使數字票據用戶的信息最少地被泄露,并促進服務的使用。
雖然已參照其示例性實施例具體示出和描述了本發明,但本領域技術人員將理解,在不脫離由權利要求定義的本發明的精神和范圍的情況下,可對其在形式和細節上做出改變。因此,應理解上述實施例僅在描述性的意義上被提供,而不應被解釋為對本發明的范圍進行限制。
權利要求
1.一種用于使用數字票據的電子商務的方法,該方法包括隱藏包括隨機數的消息,并向票據發放器發送隱藏的消息;接收由票據發放器以數字簽名簽署的隱藏的消息;驗證在該消息中的數字簽名;以及向票據鑒定器發送具有驗證的數字簽名的消息以消費數字票據。
2.如權利要求1所述的方法,其中,所述消息包括隨機數和票據可用計數。
3.一種用于使用數字票據的電子商務的方法,該方法包括將散列函數應用于包括隨機數的消息以獲得散列值;隱藏所述散列值并向票據發放器發送隱藏的散列值;從票據發放器接收包括由該票據發放器以數字簽名簽署的散列值的消息;驗證在所述接收的消息中的數字簽名;以及向票據鑒定器發送驗證的消息和通過按以下次數將散列值應用于驗證的消息而獲得的值以消費數字票據,其中,所述次數為(a)比散列函數已經被應用于獲得散列值的次數少一次的值,以及(b)與票據可用計數成比例的值兩者中的一個。
4.如權利要求3所述的方法,其中,包括隨機數的消息包括關于票據用戶的信息。
5.一種用于使用數字票據的電子商務的方法,該方法包括接收其每一包括由票據用戶生成的隨機數的隱藏的消息;以數字簽名簽署所述接收的消息之一;以及向票據用戶發送具有該數字簽名的消息。
6.如權利要求5所述的方法,還包括驗證接收的隱藏的消息,其中,簽名包括以數字簽名簽署所述驗證的消息。
7.如權利要求6所述的方法,其中,接收的消息的驗證包括從票據用戶請求并接收對除了在接收的消息中的一個消息之外的剩余消息進行解盲的解盲密鑰;以及使用解盲密鑰對所述剩余消息進行解盲,并驗證包含在所述剩余消息中的信息。
8.如權利要求6所述的方法,其中,接收的消息的驗證包括從票據用戶請求并接收對除了在所述接收的消息中的一個消息之外的剩余消息和在每一所述剩余消息中的隨機數進行解盲的解盲密鑰;以及基于通過使用解盲密鑰對所述剩余消息進行解盲而獲得的值是否與使用被包括在所述剩余消息中的隨機數生成的值相符來驗證包含在所述剩余消息中的信息。
9.一種用于使用數字票據的電子商務的方法,該方法包括接收包括由票據用戶生成的隨機數并由票據發放器以數字簽名簽署的消息;驗證該消息;鑒定該消息是否被重復使用;以及如果該消息沒有被重復使用,則向票據用戶提供服務。
10.如權利要求9所述的方法,其中,消息的驗證包括驗證數字簽名。
11.如權利要求9所述的方法,其中,所述鑒定包括從消息中提取隨機數;在存儲模塊中搜索該隨機數;以及如果該隨機數沒有出現在存儲模塊中,則將該隨機數存儲在存儲模塊中。
12.如權利要求9所述的方法,還包括請求票據用戶生成票據可用計數的減少了1的消息。
13.一種用于使用數字票據的電子商務的方法,該方法包括接收由票據用戶產生并由票據發放器以數字簽名簽署的生成的散列值,以及用于產生所述生成的散列值的輸入散列值;驗證生成的散列值和輸入散列值;鑒定生成的散列值是否被重復使用;以及如果生成的散列值沒有被重復使用,則向票據用戶提供服務。
14.如權利要求13所述的方法,其中,驗證包括驗證數字簽名;以及驗證具有該數字簽名的生成的散列值與輸入散列值是否具有正確的關系。
15.如權利要求13所述的方法,其中,鑒定包括在存儲模塊中搜索生成的散列值;以及如果所述生成的散列值沒有出現在存儲模塊中,則將所述生成的散列值存儲在存儲模塊中。
16.如權利要求13所述的方法,還包括以數字簽名簽署輸入散列值,并向票據用戶發送具有數字簽名的輸入散列值。
17.一種用于使用數字票據的電子商務的設備,該設備包括消息生成模塊,用于生成隨機數和包括該隨機數的消息;消息處理模塊,用于隱藏該消息;以及收發器模塊,用于向票據發放器發送隱藏的消息,并接收由票據發放器以數字簽名簽署的隱藏的消息;其中,消息處理模塊驗證在接收的消息中的數字簽名,收發器模塊向票據鑒定器發送具有該數字簽名的驗證的消息,以消費數字票據。
18.一種用于使用數字票據的電子商務的設備,該設備包括消息生成模塊,用于生成隨機數并生成包括該隨機數的消息;散列化模塊,用于將散列函數應用于該消息以獲得散列值;消息處理模塊,用于所述隱藏散列值;以及收發器模塊,用于向票據發放器發送隱藏的散列值并接收所述消息,其中,散列值由票據發放器以數字簽名進行簽署;其中,消息處理模塊驗證在接收的消息中的數字簽名,收發器模塊向票據鑒定器發送具有數字簽名的驗證的消息和通過按比散列函數已經被應用以于獲得散列值的次數少一次的次數來應用散列函數而獲得的值,以消費數字票據。
19.一種用于使用數字票據的電子商務的設備,該設備包括收發器模塊,用于接收包括由票據用戶生成的隨機數的隱藏的消息;以及盲簽名模塊,用于以數字簽名簽署接收的消息;其中,收發器模塊向票據用戶發送具有數字簽名的消息。
20.一種用于使用數字票據的電子商務的設備,該設備包括收發器模塊,用于接收包括由票據用戶生成的隨機數并由票據發放器以數字簽名簽署的消息;數字簽名驗證模塊,用于驗證接收的消息;以及重復使用鑒定模塊,用于鑒定消息是否被重復使用。
21.一種用于使用數字票據的電子商務的設備,該設備包括收發器模塊,用于接收由票據用戶生成并由票據發放器以數字簽名簽署的散列值,以及用于生成所述散列值的輸入散列值;數字簽名驗證模塊,用于驗證在散列值中的數字簽名;散列化模塊,用于驗證具有數字簽名的散列值和輸入散列值之間的關系;以及重復使用鑒定模塊,用于鑒定散列值是否被重復使用。
22.一種用于存儲執行用于使用數字票據的電子商務的方法的程序的計算機可讀介質,該方法包括隱藏包括隨機數的消息,并向票據用戶發送隱藏的消息;接收由票據發放器以數字簽名簽署的隱藏的消息;驗證在消息中的數字簽名;以及向票據鑒定器發送具有驗證的數字簽名的消息以消費數字簽名。
23.一種用于存儲執行用于使用數字票據的電子商務的方法的程序的計算機可讀介質,該方法包括將散列函數應用于包括隨機數的消息以獲得散列值;隱藏所述散列值,并向票據發放器發送隱藏的散列值;從票據發放器接收包括由票據發放器以數字簽名簽署的散列值的消息;驗證在接收的消息中的數字簽名;以及向票據鑒定器發送驗證的消息和通過按比散列函數被應用以獲得散列值的次數少一次的值的次數將散列函數應用于驗證的消息而獲得的值,以消費數字票據。
24.一種用于存儲執行用于使用數字票據的電子商務的方法的程序的計算機可讀記錄介質,該方法包括接收每一包括由票據用戶生成的隨機數的隱藏的消息;以數字簽名簽署所述接收的消息之一;以及向票據用戶發送具有該數字簽名的消息。
25.一種用于存儲執行用于使用數字票據的電子商務的方法的程序的計算機可讀記錄介質,該方法包括接收包括由票據用戶生成的隨機數并由票據發放器以數字簽名簽署的消息;驗證該消息;鑒定該消息是否被重復使用;以及如果該消息沒有被重復使用,則向票據用戶提供服務。
26.一種用于存儲執行用于使用數字票據的電子商務的方法的程序的計算機可讀記錄介質,該方法包括接收由票據用戶生成并由票據發放器以數字簽名簽署的生成的散列值,以及用于產生所述生成的散列值的輸入散列值;驗證生成的散列值和輸入散列值;鑒定生成的散列值是否被重復使用;以及如果生成的散列值沒有被重復使用,則向票據用戶提供服務。
全文摘要
提供一種用于使用數字票據的電子商務的方法和設備。所述用于使用數字票據的電子商務的方法包括隱藏包括隨機數的消息并向票據發放器發送隱藏的消息;接收由票據發放器以數字簽名簽署的隱藏的消息;驗證在消息中的數字簽名;以及向票據鑒定器發送具有驗證的數字簽名的消息以消費數字票據。
文檔編號G06Q50/26GK1763760SQ20051010951
公開日2006年4月26日 申請日期2005年10月19日 優先權日2004年10月19日
發明者金亨植 申請人:三星電子株式會社