一種數據共享系統的制作方法
【技術領域】
[0001] 本發明涉及信息技術領域,具體說涉及一種數據共享方法及系統。
【背景技術】
[0002] 隨著網絡技術的不斷進步,云存儲服務得到了廣泛的應用。通過云存儲服務,用戶 可以很方便地存儲數據到遠程服務器,并且和其他用戶共享數據。云存儲服務非常強大,但 同時也帶來了新的隱私和安全的挑戰。由于用戶上傳數據之后,托管到服務器上,數據的控 制權就不在用戶的掌握中了。因此,數據安全性和隱私是云存儲需要解決的關鍵問題。
[0003] 在現有技術中,實現云存儲中的數據的安全訪問控制的手段之一是基于密文策略 的屬性訪問控制(Ciphertext policy Attribute-based Access Control)。密文的屬性訪 問控制策略包含用戶、數據以及密鑰分發中心三個部分。其中:
[0004] 用戶:用戶擁有一組屬性值,該屬性由可信第三方授予;
[0005] 數據:數據擁有訪問控制策略(指明了具備什么樣的屬性才能解密),該策略由數 據提供者決定;
[0006] 密鑰分發中心:為用戶生成私鑰(對于不同的用戶和不同的屬性值,公鑰都不相 同),為訪問控制策略生成公鑰。
[0007] 在基于密文策略的屬性訪問控制中,用戶和屬性集合綁定,用戶的每個屬性由密 鑰分發中心分配一個對應的私鑰。每份密文數據被賦予了以樹的形式的訪問策略,樹的葉 子節點是屬性值,樹的中間節點是門限。
[0008] 設計安全訪問控制系統的一個關鍵問題是計算效率。在一個大型的存儲系統會有 海量的用戶和數據,加密解密操作必須是高效的。對于解密,用戶會招致多項式插值和指數 計算。然而,乘法和在有限域運算耗時操作。也就是說,解密的性能整個系統的瓶頸。由于 該方法的效率低下的解密和不靈活,現有技術中大部分基于屬性的訪問控制方案是不適合 實現分布式的數據共享系統。
[0009] 另外,現有技術中的屬性加密方法都依賴于一個可信的密鑰分發中心,導致整個 系統的安全性寄托在單個密鑰分發中心,如果該密鑰分發服務器遭受攻擊,攻擊者掌管了 密鑰分發過程,整個系統的密鑰都會泄露,數據機密性不能確保。
[0010] 因此,針對現有技術中的屬性訪問控制方法存在的問題,需要一種新的數據共享 方法。
【發明內容】
[0011] 針對現有技術中的屬性訪問控制方法存在的問題,本發明提供了一種數據共享方 法,所述方法包括以下步驟:
[0012] 密鑰分發中心構造步驟,采用統一的公共參數構造多個密鑰分發中心,每個所述 密鑰分發中心對應用戶屬性集合中的一份用戶屬性,不同的所述密鑰分發中心相互獨立且 對應的所述用戶屬性不同;
[0013] 屬性公鑰生成步驟,基于所述公共參數每個所述密鑰分發中心生成對應所述用戶 屬性的屬性公鑰;
[0014] 私鑰生成步驟,當數據訪問者加入共享系統時,與所述數據訪問者的所述用戶屬 性對應的所述密鑰分發中心基于所述數據訪問者的所述用戶屬性以及所述公共參數生成 相應的私鑰并將所述私鑰發送給相應的所述數據訪問者;
[0015] 訪問策略構造步驟,數據共享者根據被共享數據的訪問限制需求構造訪問策略, 從而確定可訪問所述被共享數據的所述數據訪問者的所述用戶屬性;
[0016] 加密步驟,利用加密密鑰對所述被共享數據進行加密以生成密文;
[0017] 密文公鑰生成步驟,利用可訪問所述被共享數據的所述數據訪問者的所述用戶屬 性對應的所述密鑰分發中心基于所述訪問策略以及相應的所述屬性公鑰對所述加密密鑰 加密以生成密文公鑰;
[0018] 解密步驟,基于所述密文公鑰以及符合所述訪問策略的所述數據訪問者的私鑰對 所述密文進行解密。
[0019] 在一實施例中,在所述密鑰分發中心構造步驟中,利用分布式系統構造所述多個 密鑰分發中心。
[0020] 在一實施例中,每個所述數據訪問者包含一份或多份不同的所述用戶屬性,在所 述私鑰生成步驟中,基于所述數據訪問者的所述用戶屬性選取相應的一個或多個所述密鑰 分發中心,每個所述密鑰分發中心生成相應的一個屬性私鑰,以所有的所述屬性私鑰的集 合作為所述數據訪問者的私鑰。
[0021] 在一實施例中,在生成所述屬性私鑰的過程中,基于所述數據訪問者的身份生成 相應的所述屬性私鑰,不同所述數據訪問者的同一所述用戶屬性對應的所述屬性私鑰不 同。
[0022] 在一實施例中,所述方法還包括數據訪問權限撤銷步驟,其中:
[0023] 確定需要撤銷的數據訪問權限對應的所述用戶屬性并更新所述用戶屬性對應的 所述公共參數;
[0024] 基于更新后的所述公共參數更新未撤銷數據訪問權限的所述數據訪問者的所述 私鑰中需要撤銷的數據訪問權限對應的所述用戶屬性對應的所述屬性私鑰;
[0025] 對需要撤銷的數據訪問權限對應的所述共享數據進行重新加密以更新所述密文 以及所述密文公鑰。
[0026] 在一實施例中:
[0027] 在所述密文公鑰生成步驟中,基于編碼矩陣對所述加密密鑰進行加密以生成所述 密文公鑰;
[0028] 在所述解密步驟中,基于解碼方法對所述密文進行解密。
[0029] 本發明還提出了一種數據共享系統,所述系統包括多個密鑰分發中心、訪問策略 構造模塊、加密模塊、存儲模塊以及解密模塊,其中:
[0030] 所有的所述密鑰分發中心采用統一的公共參數,每個所述密鑰分發中心對應所述 用戶屬性集合中的一份用戶屬性,不同的所述密鑰分發中心相互獨立且對應的所述用戶屬 性不同;
[0031] 所述密鑰分發中心包含生成所述密鑰分發中心對應的所述用戶屬性的屬性公鑰 的公鑰生成單元以及生成數據訪問者的所述用戶屬性對應的私鑰的私鑰生成單元;
[0032] 所述訪問策略構造模塊用于根據被共享數據的訪問限制需求構造訪問策略,從而 確定可訪問所述被共享數據的所述數據訪問者的所述用戶屬性;
[0033] 所述加密模塊用于利用加密密鑰對所述被共享數據進行加密以生成密文;
[0034] 所述公鑰生成單元還用于基于所述加密密鑰以及所述訪問策略生成并輸出密文 公鑰;
[0035] 所述存儲模塊用于存儲所述密文公鑰、所述訪問策略以及所述密文;
[0036] 所述解密模塊用于基于所述密文公鑰、所述訪問策略以及符合所述訪問策略的所 述數據訪問者的私鑰對所述密文進行解密。
[0037] 在一實施例中,所述多個密鑰分發中心被構造成分布式系統。
[0038] 在一實施例中,每個所述數據訪問者包含一份或多份不同的所述用戶屬性,所述 密鑰分發中心被構造成針對所述數據訪問者的一個相應的所述用戶屬性生成相應的一個 屬性私鑰,所述數據訪問者的所有所述用戶屬性對應的所有所述密鑰分發中心生成的所有 所述屬性私鑰的集合為所述數據訪問者的私鑰。
[0039] 在一實施例中,所述密鑰分發中心被構造成基于所述數據訪問者的身份生成相應 的所述屬性私鑰,不同所述數據訪問者的同一所述用戶屬性對應的所述屬性私鑰不同。
[0040] 在一實施例中:
[0041] 所述公鑰生成單元被構造成基于編碼矩陣對所述加密密鑰進行加密以生成所述 密文公鑰;
[0042] 所述解密模塊被構造成基于解碼方法對所述密文進行解密。
[0043] 與現有技術相比,根據本發明的系統具有更強的抗攻擊能力,根據本發明的方法 可以大大提高系統的安全性能;同時,在不降低安全性的基礎上,本發明的方法的計算量大 大減小。
[0044] 本發明的其它特征或優點將在隨后的說明書中闡述。并且,本發明的部分特征或 優點將通過說明書而變得顯而易見,或者通過實施本發明而被了解。本發明的目的和部分 優點可通過在說明書、權利要求書以及附圖中所特別指出的步驟來實現或獲得。
【附圖說明】
[0045] 附圖用來提供對本發明的進一步理解,并且構成說明書的一部分,與本發明的實 施例共同用于解釋本發明,并不構成對本發明的限制。在附圖中:
[0046] 圖1是根據本發明一實施例的方法流程圖;
[0047] 圖2是根據本發明一實施例的系統結構簡圖。
【具體實施方式】
[0048] 以下將結合附圖及實施例來詳細說明本發明的實施方式,借此本發明的實施人員 可以充分理解本發明如何應用技術手段來解決技術問題,并達成技術效果的實現過程并依 據上述實現過程具體實施本發明。需要說明的是,只要不構成沖突,本發明中的各個實施 例以及各實施例中的各個特征可以相互結合,所形成的技術方案均在本發明的保護范圍之 內。
[0049] 針對現有技術中的屬性訪問控制方法存在的問題,本發明提出了一種數據共享方 法。執行本發明的方法首先需要構造密鑰分發中心。通常的屬性加密方法都依賴于一個可 信的密鑰分發中心,這導致整個系統的安全性寄托在單個密鑰分發中心,如果該密鑰分發 服務器遭受攻擊,攻擊者掌管了密鑰分發過程,整個系統的密鑰都會泄露,數據機密性不能 確保。為了提高系統的安全性能,在本發明的一實施例中,首先構造多個密鑰分發中心。
[0050] 在基于密文策略的屬性訪問控制