專利名稱:基于屬性的數字簽名系統的制作方法
技術領域:
本發明涉及一種基于屬性的數字簽名系統。本發明還涉及基于屬性的數字簽名系統中用戶的撤消。
背景技術:
從傳統保健,家庭保健到健身服務的護理周期中涉及的不同各方間對數據交換越來越大的需求使得健康數據的安全管理成為一個重要問題。當前的方式基于利用物理和管理程序實施的傳統安全機制,而這會限制健康信息的可用性并使得健康記錄的交換麻煩。數字策略管理和策略執行技術通過提供如下方面而優于這些方法(I)異構網絡中的端到端保密和安全,獨立于數據遷移的基礎設施或機構邊界保護數據;(2)基于角色或基于屬性的訪問控制機制的密碼執行;以及(3)可互操作的安全架構,其允許通過網絡不可知論的方式開發系統,消除了對網絡特異性安全規定的需求,因此減少了實施和維護成本。 數據安全的另一方面是提供源的非否認性,使得數據的消費者能夠驗證數據源。在日常生活中,使用數字簽名提供非否認性。在這些數字簽名方案中,為每位用戶產生私人(或秘密)和公鑰對,其中秘密密鑰可用于簽署消息,而公鑰可用于驗證消息上的簽名。不過,在保健組織中,通常使用屬性來確定用戶的角色和身份,基于用戶屬性授予對數據的訪問權以及簽署消息的權力。在為這種組織制造的計算機系統中,當且僅當他/她具有適當的屬性集合時,用戶才可以創建或修改數據然后簽署數據。因此在保健中,屬性被認為是數據源的重要方面。例如,如果已經由特定角色或屬性的用戶(例如醫生)簽署,則藥房將接受處方訂單。允許在用戶具有特定屬性集合時簽署消息或內容的數字簽名方案是基于屬性的簽名(ABS)方案。在Dalia Khader“Attribute Based Group Signature with Revocation,,,Cryptology ePrint Archive, Report 2007/241, 2007, http ://eprint. iacr. org 中描述了這樣的基于屬性的簽名方案。援引的文章公開了一種基于屬性的群組簽名(ABGS)方案,其中檢驗者有能力識別撤消的用戶,因此如果用戶被撤消則拒絕簽名。檢查(或檢驗)用戶是否被撤消的過程是由檢驗管理機構在本地通過逐個檢查被撤消用戶的列表來實現的。在基于屬性的簽名(ABS)方案中,根據存取結構簽署數據,使得僅有具有正確屬性的用戶能夠簽署數據。為了能夠簽署消息,用戶從信任機構獲得特定的私鑰,所述私鑰對應于他/她所具有的證實的屬性集合。不過,公開的基于屬性的簽名方案對用戶的撤消提供有限的支持。通常,例如在用戶的私鑰被損害或在用戶狀態變化時,希望進行用戶的撤消。例如,用戶可能換了另一份工作,與其關聯的是其他屬性。
發明內容
有一種改進的基于屬性的數字簽名系統會是有利的。為了更好地解決這個問題,本發明的第一方面提供了一種系統,包括簽名產生單元,用于基于與用戶屬性集合相關聯的用戶秘密密鑰來簽署消息,其中簽名產生單元被布置成組合用戶秘密密鑰與撤消數據以形成簽名的至少一部分,其中撤消數據補充多個有效用戶秘密密鑰的相應一些,且其中撤消數據防止被撤消的用戶秘密密鑰被用于有效地簽署消息。這種系統允許通過提供撤消數據來有選擇地撤消用戶秘密密鑰。為了撤消用戶,僅需要更新撤消數據,因為撤消數據防止被撤消的用戶秘密密鑰被使用并補充有效的用戶秘密密鑰。因此,簽名產生單元無需具備新的用戶秘密密鑰。此外,因為撤消數據僅補充有效的用戶秘密密鑰,但不補充撤消的用戶秘密密鑰,所以防止了撤消的用戶秘密密鑰被用于簽署消息。因此,不需要檢驗單元檢查被撤消用戶的列表,以便查看簽名是否是利用被撤消用戶秘密密鑰做出的。簽名產生單元可以被配置成使用最新版的撤消數據。該系統可以包括撤消單元,用于通過提供更新的撤消數據來有選擇地清除要撤消的用戶秘密密鑰的至少一部分簽署能力,其中所述更新的撤消數據基于要撤消的用戶秘密密鑰的至少一部分。簽名產生單元使用的更新的撤消數據撤消先前允許簽署的用戶。可以將更新的撤消數據分布到簽名產生單元。
可以布置撤消單元以提供與更新的撤消數據對應的撤消檢驗分量,該系統可以包括簽名檢驗單元,用于根據撤消檢驗分量檢驗簽名。撤消檢驗分量可以包括例如數字的數據元素。撤消檢驗分量是可以如何實施簽名產生單元對最新撤消數據的利用的范例。可以布置撤消單元以利用撤消數據有選擇地清除與用戶秘密密鑰的至少一個用戶屬性相關聯的簽署能力。這樣允許僅撤消與用戶秘密密鑰相關聯的一個或一些屬性而不是整個用戶秘密密鑰。所述撤消數據和所述用戶秘密密鑰可以基于共享的秘密方案。這是一種實施系統撤消部分的有效方案。用戶秘密密鑰可以包括秘密的份額。這是一種實施共享秘密方案的有效方法。所述撤消數據可以補充所述用戶秘密密鑰中的相應份額,被撤消用戶秘密密鑰中的份額除外。這是一種實施撤消的有效方法。被撤消用戶的份額可以包括在撤消數據中,供未撤消用戶使用。本發明的另一方面提供了一種基于屬性的數字簽名系統,包括多個屬性機構,其中屬性機構被布置成獨立于其他屬性機構向用戶發出密碼密鑰,其中密碼密鑰與屬性集合相關聯;以及簽名產生單元,包括接收單元,用于從不同屬性機構接收與同一用戶的不同屬性集合相關聯的多個密碼密鑰;以及組合單元,用于組合同一用戶的多個密碼密鑰以產生針對消息的密碼簽名,其中所述密碼簽名與來自多個密碼密鑰的屬性相關聯。這使得更容易支持由不同的獨立機構授權的屬性,因為機構能夠向用戶發出密鑰而無需依賴中央機構協調向用戶發出的屬性。簽名產生單元能夠接收密鑰并組合它們,也無需依賴中央或中間機構。不必具有發出對于屬性機構而言特定的秘密信息的中央機構。多個屬性機構可以被布置成產生其自己的公共和主秘密密鑰。公共和主秘密密鑰可以基于公共參數。公共參數可以對于所有屬性機構都是相同的。這樣,屬性機構不取決于中央機構來獲得秘密密鑰。這有助于使屬性機構能夠獨立工作。多個屬性機構可以被布置成基于包括消息大小的一組公共參數來產生密碼密鑰。這樣允許利用來自不同屬性機構的密碼密鑰容易地處理消息。或者,多個屬性機構可以布置成基于公共階為P的公共群G產生密碼密鑰,且其中簽名產生單元布置成為作為群G成員的消息m產生簽名。這使得更容易組合來自獨立機構的密碼密鑰,因為它們全都能夠用于作為群G成員的消息。因此,不需要將消息從一個群轉換到另一個。類似地,可以布置屬性機構以使用相同的散列函數。可以利用用戶標識符在多個屬性機構上識別個體用戶。此外,可以布置多個屬性機構以基于對應的用戶標識符為用戶產生密碼密鑰。利用不同獨立機構之間的相同用戶標識符,更容易組合密碼密鑰以形成組合的數字簽名。此外,可以防止簽名產生單元組合為不同用戶產生的密碼密鑰以利用來自多個用戶的屬性產生簽名。本發明的另一方面提供了一種包括所述系統的醫療工作站。這允許以常規方式操作該系統。本發明的另一方面提供了一種包括所述系統的醫療圖像采集設備。這允許提供集成的功能,例如,便于產生所采集圖像數據的簽名。
本發明的另一方面提供了一種基于屬性的數字簽名處理方法,包括簽名產生單元用于基于與用戶屬性集合相關聯的用戶秘密密鑰來簽署消息,其中簽名產生單元被布置成組合用戶秘密密鑰與撤消數據,其中撤消數據補充有效的用戶秘密密鑰,且其中撤消數據防止被撤消的用戶秘密密鑰被用于有效地簽署消息。本發明的另一方面提供了一種計算機程序產品,包括用于令處理器系統執行所述方法的指令。
本發明的這些和其他方面將從下文描述的實施例變得顯而易見并參考其加以闡述。在附圖中圖I是示出了基于屬性的數字簽名系統各方面的方框圖;圖2是示出了基于屬性的數字簽名處理方法各方面的流程圖;圖3是示出了基于多機構屬性的數字簽名系統各方面的方框圖;以及圖4是示出了多機構系統中基于屬性的數字簽名處理方法各方面的流程圖。
具體實施例方式在基于屬性的簽名方案中,簽名者具有與屬性集合相關聯的秘密密鑰。他能夠使用這個秘密密鑰在消息上生成簽名。僅在簽名是由與正確屬性集合相關聯的秘密密鑰產生時,它才被接受。可以將基于屬性的簽名視為群組簽名的一種形式,主要區別是它允許檢驗者判斷簽名者的屬性(例如角色)。不過,在實踐中,有這樣的情形可能不允許具有特定屬性集合的用戶簽署特定消息(例如,不允許用戶為自己簽署出差申請表的許可,或用戶的秘密密鑰被撤消,并不允許將來簽署任何消息)。在本說明書中,描述了能夠撤消特定用戶的基于屬性的簽名方案。因此,如果撤消的用戶簽署消息,那么它將不被檢驗者接受。在基于屬性的簽名(ABS)方案中,根據存取結構(或屬性集合)簽署數據,使得僅有具有正確屬性的用戶能夠簽署數據。為了能夠簽署消息,用戶從信任機構獲得特定的私鑰,所述私鑰對應于他/她所具有的證實的屬性集合。用戶的狀態可能改變(例如用戶換了工作),或用戶的私鑰可能被損害。在這種情況下,理想地,該系統應當能夠撤消用戶而無需重新設置系統(以及其他用戶的所有私鑰)。為了滿足上述需求,可以為ABS擴展撤消能力。例如,這可以基于秘密共享來實現。每位用戶獲得個性化份額,例如以指數的形式。例如,在從密鑰機構請求私鑰時可以獲得這種個性化份額并可以在其后更新。每位用戶組合他/她的份額與被撤消用戶的份額,以便恢復幫助簽名者產生有效簽名的秘密。撤消是簽名者本地的,因為簽名者執行份額的組合,這僅對于未撤消用戶而言才是可能的。因此,在產生簽名時,撤消已經變得顯而易見。因此,如果用戶未被撤消(允許簽署消息)并擁有正確的屬性集合,那么他將能夠產生有效簽名;否則將不能產生有效簽名。圖I示出了基于屬性的數字簽名系統的方框圖。可以在電子電路中或利用軟件實施該系統。通常,系統部件分布于多個裝置上,所述多個裝置通過溝通指定的數據元而彼此交互。該系統包括簽名產生單元1,用于基于與用戶屬性集合ω相關聯的用戶秘密密鑰SK產生簽名O,來簽署消息m。簽名產生單元I可以被布置成利用秘密密鑰SK根據屬性集合ω簽署消息m。針對不同用戶可以有多個用戶秘密密鑰SK。也可以有多個簽名產生單元I。每個簽名產生單元I可以布置成使用用戶秘密密鑰SK之一。簽名產生單元I可以被布置成從撤消單元2獲得撤消數據R。為此,撤消單元2可以被布置成使得在網絡位置可以獲得撤消數據R。可以使這樣的網絡位置和撤消數據R可以為多個簽名產生單元I所用。簽名產生單元I可以被布置成組合用戶秘密密鑰SK與撤消數據R以形成簽名σ的至少一部分。為此,撤消數據R補充多個有效用戶秘密密鑰的相應一些。在這里,有效的用戶秘密密鑰是指未撤消的用戶秘密密鑰。由于撤消數據R僅補充有效用戶秘密密鑰,所以撤消數據R防止了被撤消的用戶秘密密鑰SK被用于利用與該用戶秘密密鑰SK相關聯的屬性集合有效地簽署消息m。因此,用戶秘密密鑰SK不能用于根據屬性集合ω利用秘密密鑰SK來簽署消息m。該系統可以包括撤消單元2,用于通過提供更新的撤消數據R,有選擇地清除要撤消的用戶秘密密鑰SK的至少一部分簽署能力,其中更新的撤消數據R基于要撤消的用戶秘密密鑰SK的至少一部分。 撤消單元2可以進一步被布置成提供與更新的撤消數據R對應的撤消檢驗分量RVC0可以使用這個撤消檢驗分量RVC檢驗簽名σ的有效性。該系統可以包括簽名檢驗單元3,用于根據撤消檢驗分量RVC檢驗簽名O。檢驗單元3的輸出V可以表示簽名σ的有效性。例如,涉及簽名σ和撤消檢驗分量RVC的密碼操作的結果表示簽名σ的有效性。簽名檢驗單元3還可以使用公鑰PK進行檢驗。可以布置撤消單元2以利用撤消數據R有選擇地清除與用戶秘密密鑰SK的至少一個用戶屬性相關聯的簽署能力。例如,可以由撤消數據補充表示用戶屬性的用戶秘密密鑰SK的一部分。簽名產生單元I可以被布置成組合表示用戶屬性的部分與撤消數據R。通過這種方式,能夠僅撤消與用戶秘密密鑰SK相關聯的屬性而不是整個用戶秘密密鑰SK。因此,仍然可以使用簽名產生單元針對不需要撤消的屬性的策略產生簽名。撤消數據R和用戶秘密密鑰SK可以基于共享的秘密方案。例如,用戶秘密密鑰SK包括秘密的份額。撤消數據R可以補充用戶秘密密鑰中的相應份額,被撤消用戶秘密密鑰SK中的份額除外。例如,可能需要最小數量的η個不同份額來重建秘密。撤消數據可以包括η-l個份額。用戶秘密密鑰SK可以包括一個份額,其中每個用戶秘密密鑰SK包括不同的份額。撤消數據的η-l個份額補充用戶秘密密鑰份額的相應一些以形成最小數量的η個份額。為了撤消用戶秘密密鑰,被撤消的用戶的份額可以與η-2個其他份額一起包括在撤消數據R中。未撤消的用戶秘密密鑰仍然與撤消數據R組合以形成η個份額,因此它們能夠重建秘密;不過,被撤消用戶秘密密鑰的份額與撤消數據R中份額之一相同,因此被撤消的用戶秘密密鑰與撤消數據R組合僅形成η-l個份額,這不足以重建秘密。因此,撤消的用戶秘密密鑰不能用于重建秘密。該系統還可以包括密鑰產生單元4。密鑰產生單元4可以產生用戶秘密密鑰SK,由簽名產生單元I例如基于主秘密密鑰MK使用用戶秘密密鑰SK。為了實施對撤消的支持,秘密密鑰SK可以包括秘密的份額。主秘密密鑰MK可以由設置單元5產生。而且,可以布置設置單元5以產生一個或多個公鑰ΡΚ、撤消數據R和/或撤消檢驗分量RVC。后者可以由撤消單元2向檢驗單元3提供。公鑰PK可以由簽名檢驗單元3使用。密鑰產生單元4和設置單元5可以是信任機構6的一部分或受其控制。盡管在附圖中撤消單元2與信任機構6分離,但撤消單元2也可以是信任機構6的一部分或受其控制。為了撤消用戶,設置單·元5可以更新撤消數據R以包括被撤消用戶的份額,并相應地更新撤消驗證數據RVC,以使檢驗單元3能夠基于更新的撤消數據R檢驗簽名產生單元I產生的簽名σ。該系統可以并入醫療工作站,例如放射學工作站中。工作站可以包括監視器、鍵盤和/或鼠標以操作工作站,以及處理器和存儲器,加載適當軟件以提供簽名產生單元I、撤消單元2、簽名檢驗單元3和/或密鑰產生單元4中一個或多個的功能。該系統可以并入醫療圖像采集設備,例如X射線設備或MRI掃描機中。例如,可以由醫療圖像采集設備提供用戶界面,使得用戶能夠利用用戶秘密密鑰SK授權圖像數據。也可以將該系統并入醫學信息系統中,例如醫院信息系統或圖片歸檔系統中。在這樣的系統中,可以利用一個或多個集中式服務器實施圖I所示的功能。將理解,在實施中,可以將所述功能以很多不同方式分成例如單元、進程或子例程。就此而言,圖I的方框圖僅示出了范例。此外,可以在多個硬件裝置上分布功能。盡管可以將圖I的不同方框設計成運行于不同裝置上,但這不是限制。圖2示出了基于屬性的數字簽名處理的方法。該方法包括步驟202,基于與用戶屬性集合相關聯的用戶秘密密鑰SK產生簽名σ。步驟202可以包括子步驟203 :組合用戶秘密密鑰SK與撤消數據R。在這里,撤消數據R補充多個有效用戶秘密密鑰中的相應一些,其中撤消數據R通過所述方式防止被撤消的用戶秘密密鑰SK被用于有效地簽署消息m。在步驟204中,可以檢驗簽名σ。在步驟205中,判斷是否撤消用戶秘密密鑰。如果不撤消,該過程返回到步驟202。為了撤消用戶秘密密鑰,該過程前進到步驟206以產生更新的撤消數據R和更新的撤消檢驗分量RVC。在接下來執行步驟202時使用更新的撤消數據R,并在接下來執行步驟204時使用撤消檢驗分量RVC。可以將該方法實現為計算機程序產品。在下文中,將描述更詳細的示范性實施例。在具有用戶撤消能力的范例性基于屬性的簽名方案中,在用戶簽署數據時,用戶可以從信任機構接收被撤消用戶份額的列表(或者,例如,簽名者可以在撤消單元2維護的公共數據庫中尋找S)。為了產生有效簽名,用戶需要與用戶擁有的屬性集合ω相關聯的秘密密鑰且他/她的份額不應在51中。如果用戶的份額在S中,用戶不應能夠產生有效簽名。
簽名方案中涉及的算法可以包括Setup、Key Generation、Sign、Verify和Revoke。可以如下描述這些算法。Setup :設置算法在初始化階段期間配置系統參數并輸出公共參數或公鑰PK和主密鑰MK。撤消算法Revoke (% Iu, RVC)可以實現為設置算法的子算法并由設置單元5或信任機構6執行。不過,可以獨立于在初始設置期間執行的其余步驟執行撤消子算法。可以由撤消單元2將撤消數據S分布到簽名產生單元I和/或簽名檢驗單元3。撤消子算法將現有撤消數據1和被撤消用戶的身份Iu作為輸入,并輸出其中身份為Iu的用戶被撤消的更新的撤消數據K。而且,撤消算法可以產生撤消檢驗分量RVC。Private Key Generation (ΜΚ, ω , Iu):由密鑰產生單元4運行,密鑰產生算法以用戶擁有的屬性集合ω、用戶身份Iu和主秘密密鑰MK為輸入,它輸出用戶秘密密鑰SKIU,ω。Sign (m, ji, PK, SKllJ:由簽名產生單元I運行,該算法以消息m、用戶秘密密鑰SKIU,U、公鑰PK、撤消數據1作為輸入,例如形式為包括被撤消用戶份額的一組份額。該算法返回消息m的簽名σω。簽名可以是可檢驗是否為滿足特定策略的簽名。或者,可以檢驗 簽名是否為利用與用戶秘密密鑰SKlu, ω相關聯的屬性ω簽署的簽名。Verify (CT, SKIU;M, σ W,RVC):這個算法可以由簽名檢驗單元3運行。該算法以消息m、公鑰PK、簽名σ ω和撤消檢驗分量RVC作為輸入。該算法返回表示簽名σ ω是否為有效簽名的數據值。該算法可以具有與被撤消用戶的數量“r”線性相關的復雜性。根據簽署哪個簽名,計算復雜性和簽名方案的大小可以進一步線性取決于存取結構中屬性的數目,而不是用戶總數目“η”。例如,用戶可以在設置階段期間(在他們從私鑰產生(PKG)機構獲得私鑰時)獲得指數形式的個性化份額。之后,每個未撤消的用戶可以組合他/她的指數形式的個性化份額與被撤消用戶的份額或偽份額(dummyshare)(由PKG或撤消單元廣播),實現簽名有效分
量的恢復。為了支持用戶撤消,可以為檢驗機構提供來自撤銷列表的一組元素以進行簽名檢驗。在檢驗時,不需要查看被撤消用戶的完整列表以檢驗用戶是否被撤消。如果用戶被撤消,則簽名包含基于共享秘密方案的無效分量,簽名被驗證為無效。提出的方案可以滿足簽名方案的期望性質,例如抵御共謀、不可偽造性、用戶匿名和不可鏈接性。實施例包括針對Setup、KeyGeneration、Sign、Verify 和 Revoke 的以下算法。在該方案中,用戶屬性是Zp的元素,假設最多有k個屬性。不過,這不是限制。在實踐中,例如,能夠使用抵御共謀散列函數將屬性串映射到Zp的元素。I. Setup設置算法選擇素數階為P的雙線性群Gtl和隨機發生器g和h。它還選擇雙線性映射SiGnXGfl -^G1。此外,設置隨機取y, X1, X2,…,xk e Zp,對于屬性集合Q = Ia1, a2,. . , ak},設置Γ, =/' ΡΓ/=// (I彡j彡k)。設置算法包括這里稱為撤消算法的另一子算法。使用這種撤消算法產生被撤消用戶的份額。I. IRevocation:該算法也由設置算法運行,以便產生每位用戶的可用于撤消的目的的份額。為了撤消的目的,它取R,t e Zp產生Zp上的r次隨機多項式P(X)Zac^a1X+. ··+atXlr。設置P (0) =R= α。,其中多項式P的t+Ι個份額可用于重建R。注意,需要多項式P的r+Ι個份額來重建秘密Btl=R=P(O)。對于用戶Iui e {Iul, Iu2,…,Ij (其中I ( i SN并且N是系統中的用戶總數),從多項式P產生份額P (Iui)。設置算法還可以計算r個額外的偽份額P (Id),如果被撤消用戶的數目小于r,則可以廣播所述份額P (Id)(或放在公共數據庫中)。例如,在正在撤消r個用戶的情況下,該算法取t e Zp并產生撤消數據,所述撤銷數據包括以下內容 R =f 和 RVC= g(y+P(0))t然后將這個撤消數據放在公共數據庫中或向用戶廣播。公鑰PK和主密鑰MK可以包括以下分量
PK = (gA虼MK = (P(OXyJAxj)U^y)2. KeyGeneraton(MK以密鑰產生算法輸出與屬性集合ω和身份Iu相關聯
的用戶秘密密鑰。該算法取隨機元素xeZ;,并計算構成以下分量的秘密密鑰( QO) = xj >
Iij j ο α .^ω JJS(2J) = gHPUl,)S(2,2)=gq秘密密鑰也由用戶的個性化份額(即S(2a))構成。如果用戶不是被撤消用戶之一,則將此用于和被撤消用戶的份額組合以產生有效簽名。3. Signdz, ,_該算法取用戶秘密密鑰、被撤消用戶的份額和要簽署的消息m作為輸入。為了簽署消息m e G1,該算法選擇隨機元素s',IeZ:并計算簽名σ,其可以
包括以下分量
f χκ\
w = g]
=(y(w處 ,
σ(3> = Sa,2)K = g9Kσ (4)=gs/用戶將僅能在如果用戶未被撤消時產生有效簽名。4. Verify ( σ,PK, RVC).這個算法以要檢驗的簽名、公鑰和RVC分量nt作為輸入。RVC分量是如Setup O算法中所示的公鑰的部分,不過,為了清楚起見,分開示出了它們。通過以下方式檢驗簽名e(a^, Tj ).σ(2) = β(σ(3), g(y+F(0))t ).e(T^a(4} ):Vaf e ω如果以上方程成立,則可以接受簽名。在基于屬性的簽名(ABS)方案中,根據屬性集合簽署數據。為了能夠簽署消息,用戶從信任機構獲得與他/她具有的經證實的屬性的集合對應的特定私鑰。不過,實際上,可以由不同的機構管理不同的屬性。因此,需要一種基于多機構屬性的簽名方案,其中用戶可以從不同的屬性機構獲得秘密密鑰分量。例如,在個人簽署處方訂單時,那么他根據由多個機構分配給他的多個屬性來進行簽署。例如,某個人部分時間在大學工作,部分時間在醫院工作。在這樣的情況下,用戶可以從諸如大學和醫院的兩個組織都獲取秘密密鑰分量。現在,在用戶簽署文檔時,他會根據由多個機構管理的這些屬性來進行簽署。為了解決這種需求,提出了基于多機構屬性的簽名方案。不過,已知的基于多機構屬性的簽名方案取決于中央機構的存在,中央機構應當被所有屬性機構和系統中的用戶信任。中央機構的主要功能是建立分布式屬性機構之間的同步。為了防止共謀這是必要的。共謀表示知道從第一屬性機構“Al”發給第一用戶的第一秘密密鑰分量和從第二屬性機構“A2”發給第二用戶的第二秘密密鑰分量的惡意用戶可以基于第一秘密密鑰和第二秘密密鑰的組合來簽署消息,利用與第一和第二秘密密鑰都關聯的屬性組合來進行簽署。中央機構使得已知的方案用處更少且更難以實施。在下文中,描述了基于分散化多機構屬性的簽名方案,其能夠無需信任中央機構而工作,同時保持沒有共謀。
圖3示出了基于多機構屬性的數字簽名系統的方框圖。該系統包括多個屬性機構,示意性地示為方框301、302、303。不過,屬性的數量可以是任何數量,根據環境,可能有超過或少于三個屬性機構。將屬性機構301、302、303布置成獨立地向用戶發出與屬性集合相關聯的密碼密鑰。例如,屬性機構301發出密碼密鑰311,屬性機構302發出密碼密鑰312,屬性機構303發出密碼密鑰313。屬性機構301、302、303不需要彼此之間或與中央機構交換秘密信息。可以布置屬性機構301、302、303以產生其自己的秘密密鑰。這可以利用公共共享信息(例如密碼算法中出現的元素的格式和/或大小)來實現。密碼密鑰311、312和313用于同一用戶,但它們與不同屬性相關聯。因此,用戶能夠從不同的機構301、302、303獲得多個密碼密鑰311、312、313。該系統還包括簽名產生單元304。典型地,系統中可以有超過一個簽名產生單元304,例如,不同用戶可以具有他們自己的簽名產生單元。簽名產生單元304可以包括接收單元307,布置成從不同的屬性機構301、302、303接收與同一用戶的不同屬性集合相關聯的密碼密鑰311、312、313。簽名產生單元304還可以包括組合單元308。組合單元308可以布置成從外部源或從簽名產生單元304的存儲模塊接收消息305。組合單元還可以從接收單元307接收密碼密鑰311、312、313。組合單元308還可以布置成組合針對同一用戶的多個密碼密鑰311、312、313,用于產生針對消息305的密碼簽名306,其中密碼簽名306與來自多個密碼密鑰311、312、313的屬性相關聯。可以布置多個屬性機構301、302、303以基于公共階P的公共雙線性群G產生密碼密鑰311、312、313。可以布置簽名產生單元304 (具體是組合單元308)以產生作為雙線性群G的成員的消息的簽名。因此,來自獨立屬性機構301、302、303的密碼密鑰全都對來自同一雙線性群G的消息操作。附加地或替代地,可以布置多個屬性機構301、302、303以基于公共散列函數產生密碼密鑰311、312、313。例如,可以使用散列函數將用戶的標識符映射到雙線性群G的元素。可以利用單個用戶標識符在多個屬性機構301、302、303上識別個體用戶。可以布置多個屬性機構301、302、303以基于對應的用戶標識符為用戶產生密碼密鑰311、312、313。可以設置密碼方案,使得組合單元僅可以組合基于同一用戶標識符的密碼密鑰以形成組合的簽名306。可以布置簽名產生單元304 (具體是組合單元308)以組合用戶秘密密鑰(SK),在這種情況下,組合密碼密鑰311、312、313與撤消數據(Rl,R2,R3),如參考圖I所述,以形成簽名306的至少一部分。不過,也可以使系統不支持密鑰撤消,但支持多個屬性機構。也可以使系統支持密鑰撤消,但不支持多個屬性機構。例如,可以在工作站中或利用分布式計算機系統實現圖3的系統。系統的部分,例如簽名產生單元304,可以并入醫療圖像采集設備中。簽名產生單元304和屬性機構301、302、303的每個都可以實現在獨立裝置中。還可以在同一裝置中組合這些元件中的幾個。在這里,裝置可以是例如工作站或移動裝置。圖4示出了利用來自多個屬性機構的屬性簽署消息的方法。例如,該方法包括步驟401 :由多個屬性機構向用戶獨立地發出與屬性集合相關聯的密碼密鑰。該方法還包括步驟402:由簽名產生單元從不同的屬性機構接收與同一用戶的不同屬性集合相關聯的多個密碼密鑰。該方法還包括步驟403 :由簽名產生單元組合同一用戶的多個密碼密鑰以產生消息的密碼簽名,其中密碼簽名與來自多個密碼密鑰的屬性相關聯。可以至少部分由適當存儲介質上存儲的一個或多個計算機程序實施該方法。 以下算法可用于基于分散式多機構屬性的簽名方案。這些算法僅僅充當范例。I. Global Setup ( λ ) — GP :這一算法以安全參數λ為輸入,為系統返回全局參數,全局參數是公共的。這些全局參數可以包括諸如散列函數和雙線性映射的信息。這些全局參數可以由其他算法使用。安全參數λ可以定義諸如屬性機構和簽名產生單元的算法中使用的群的階的信息。安全參數λ可以定義系統中最重要部件的輸入和/或輸出大小。例如,對于有限循環群,即GO和G1,它可以是它們的階η (素數)。對于散列函數而言,全局參數可以定義其輸出的大小。這種信息是公共的并被視為公共參數(PK)的一部分。全局設置可以是所有機構間公共的。機構可以同意算法中使用的參數,例如群、散列函數和雙線性映射。2. Attribute Authority Setup (GP) — MKi, PKi :每個屬性機構通過以 GP 作為輸入來運行其自己的設置并產生其自己的公共和主秘密密鑰對PKi和MKi。3. Key Generation (MKi, IU, ωυ) — SK ω , Iu, i :密鑰產生算法以屬性機構 “ i ” 的主秘密密鑰MKi和機構能夠對其發出秘密密鑰的用戶的屬性《U作為輸入。此外,它還以用戶的標識符IU作為輸入,其中IU在基于多機構屬性的簽名系統中是唯一的。例如,IU包括社會保險號。該算法的輸出包括針對屬性機構i發出的用戶屬性IU的秘密密鑰分量SKco, Iu, i。4. Sign(M, SK ,Iu) λ )—。:簽名算法以與屬性集合“ ω ”相關的用戶“U”的秘密密鑰SKco,Iu和要簽署的消息“Μ”作為輸入。該算法的輸出包括簽名“ σ ”。在這里,SKco,Iu={SKco,Iu,i}i包括由不同屬性機構i發出的秘密密鑰分量。5. Verify (ΡΚ, σ ) —— Y or N :檢驗算法以公共參數PK= {PKi} i和簽名σ作為輸入,公共參數PK={PKi}i包括為不同屬性機構i產生的公鑰PKi。如果檢驗成功,返回“是”,否則返回“否”。在上文所述的基于多機構屬性的簽名方案中,屬性機構不必彼此共享任何秘密信息。僅對一些公共信息進行共享以提高效率并使得方案是抵御共謀的。在以下描述中僅僅通過舉例的方式給出主要算法的更多細節。!.Global Setup(A):設置算法選擇素數階為p的雙線性群Gtl和隨機發生器g。它還選擇雙線性映射^GciXGtl — G10除此之外,還公開了將用戶u的標識符(即Iu)映射到G0的元素的散列函數H: {O, I}*-G0的描述。2. Setup run by Attribute Authority"i":屬性機構隨機取χ^χ。,…,Xi,k e Zp,對于屬性集合 Qi=Iaia^2,…,aik},其設置 Τ;,=, (I <./</;) 注意Ω i是屬性機構i能夠發出針對其的秘密密鑰分量的屬性集合。公鑰PKi和主密鑰MKi可以包括以下分量
權利要求
1.一種基于屬性的數字簽名系統,包括用于通過基于與用戶屬性集合(ω )相關聯的用戶秘密密鑰(SK)產生簽名(σ )來簽署消息(m)的簽名產生單元(I ),其中所述簽名產生單元(I)被布置成組合所述用戶秘密密鑰(SK)與撤消數據(R)以形成所述簽名(σ )的至少一部分,其中所述撤消數據(R)補充多個有效用戶秘密密鑰的相應一些,且其中所述撤消數據(R)防止被撤消的用戶秘密密鑰(SK)被用于利用所述用戶屬性集合有效地簽署消息(m)。
2.根據權利要求I所述的系統,還包括用于通過提供更新的撤消數據(R)來有選擇地清除要撤消的用戶秘密密鑰(SK)的至少一部分簽署能力的撤消單元(2),其中所述更新的撤消數據(R)基于所述要撤消的用戶秘密密鑰(SK)的至少一部分。
3.根據權利要求2所述的系統,其中所述撤消單元(2)進一步布置成提供與所述更新的撤消數據(R)對應的撤消檢驗分量(RVC),且其中所述系統包括用于根據所述撤消檢驗分量(RVC)檢驗所述簽名(σ )的簽名檢驗單元(3)。
4.根據權利要求2所述的系統,其中所述撤消單元(2)被布置成利用所述撤消數據(R)有選擇地清除與所述用戶秘密密鑰(SK)的至少一個用戶屬性相關聯的簽署能力。
5.根據權利要求I所述的系統,其中所述撤消數據(R)和所述用戶秘密密鑰(SK)基于共享的秘密方案。
6.根據權利要求5所述的系統,其中所述用戶秘密密鑰(SK)包括秘密的份額。
7.根據權利要求6所述的系統,其中所述撤消數據(R)補充所述用戶秘密密鑰中的相 應份額,所述被撤消的用戶秘密密鑰(SK)中的份額除外。
8.根據權利要求I所述的基于屬性的數字簽名系統,包括 多個屬性機構(301,302,303),其中屬性機構(301)被布置成獨立于其他屬性機構向用戶發出密碼密鑰(311),其中所述密碼密鑰(311)與屬性集合相關聯;以及 簽名產生單元(304),包括 接收單元(307),用于從不同屬性機構(301,302,303)接收與同一用戶的不同屬性集合相關聯的多個密碼密鑰(311,312,313); 以及 組合單元(308),用于組合針對同一用戶的所述多個密碼密鑰(311,312,313),用于產生針對消息(305)的密碼簽名(306),其中所述密碼簽名(306)與來自所述多個密碼密鑰(311,312,313)的屬性相關聯。
9.根據權利要求8所述的系統,其中所述多個屬性機構(301,302,303)被布置成利用公共參數產生它們自己的公共和主秘密密鑰。
10.根據權利要求8所述的系統,其中利用用戶標識符在所述多個屬性機構(301,302,303)上識別個體用戶,且其中所述多個屬性機構(301,302,303)被布置成基于對應的用戶標識符產生用戶的多個密碼密鑰(311,312,313 )。
11.一種工作站,包括根據權利要求I所述的系統。
12.—種醫療圖像采集設備,包括根據權利要求I所述的系統。
13.一種基于屬性的數字簽名處理的方法,包括通過基于與用戶屬性集合(ω )相關聯的用戶秘密密鑰(SK)產生(202)簽名(σ )來簽署消息(m),所述產生(202)步驟包括組合(203)所述用戶秘密密鑰(SK)與撤消數據(R),其中所述撤消數據(R)補充多個有效用戶秘密密鑰中的相應一些,且其中所述撤消數據(R)防止被撤消的用戶秘密密鑰(SK)被用于有效地簽署消息(m)。
14.根據權利要求13所述的方法,包括 由多個屬性機構向用戶獨立發出與屬性集合相關聯的密碼密鑰; 由簽名產生單元從不同屬性機構接收與同一用戶的不同屬性集合相關聯的多個密碼密鑰;以及 由所述簽名產生單元組合同一用戶的所述多個密碼密鑰以產生針對消息的密碼簽名,其中所述密碼簽名與來自所述多個密碼密鑰的屬性相關聯。
15.一種計算機程序產品,包括用于令處理器系統執行根據權利要求13或14所述的方法的指令。
全文摘要
一種基于屬性的數字簽名系統包括簽名產生單元(1),用于通過基于與用戶屬性集合相關聯的用戶秘密密鑰(SK)產生簽名(σ)來簽署消息(m),其中簽名產生單元(1)被布置成組合用戶秘密密鑰(SK)與撤消數據(R)以形成簽名(σ)的至少一部分,其中撤消數據(R)補充多個有效用戶秘密密鑰的相應一些,且其中撤消數據(R)防止被撤消的用戶秘密密鑰(SK)被用于利用用戶屬性集合有效地簽署消息(m)。所述系統還包括撤消單元(2),用于通過產生更新的撤消數據(R)來有選擇地清除要撤消的用戶秘密密鑰(SK)的至少一部分簽署能力,其中所述更新的撤消數據(R)基于要撤消的用戶秘密密鑰(SK)的至少一部分。多個屬性機構301可以獨立發出密碼密鑰。
文檔編號H04L9/08GK102907038SQ201180024747
公開日2013年1月30日 申請日期2011年4月27日 優先權日2010年5月19日
發明者L·伊布賴米, M·阿希姆, M·彼特科維克 申請人:皇家飛利浦電子股份有限公司