本發(fā)明涉及一種角色對稱加密所有權(quán)證明的方法及系統(tǒng)。
背景技術(shù):
全球數(shù)據(jù)量的爆炸式增長促進了云計算技術(shù)的急速發(fā)展,越來越多的個人和企業(yè)選擇使用云平臺存儲和管理數(shù)據(jù)以實現(xiàn)資源共享。最新的研究數(shù)據(jù)表明,截止2015年底,全球數(shù)據(jù)量已達到8.61zb,預計2020年,全球數(shù)據(jù)量將突破44zb。因此,如何提高存儲效率、減少通信開銷對云服務提供商將是一個嚴峻的挑戰(zhàn)。
數(shù)據(jù)壓縮技術(shù)雖然節(jié)省了存儲空間和帶寬消耗,但是針對同一份文件,不同個體選擇不同的壓縮技術(shù)將產(chǎn)生不同的文件副本,實際上增加了云存儲的壓力。為了解決上述問題,提出了數(shù)據(jù)去重技術(shù),云服務器采用隨機采樣或者提取哈希值的方式檢測用戶上傳的數(shù)據(jù)是否已存在,如果存在,則無需再次上傳,有效的節(jié)省帶寬消耗,同時降低了存儲開銷。然而,云數(shù)據(jù)去重技術(shù)也存在嚴重的隱私問題和新的安全挑戰(zhàn),例如隱私泄露、側(cè)信道攻擊以及未授權(quán)訪問等。
為了解決云數(shù)據(jù)去重中的隱私泄露,最直接的方式是對數(shù)據(jù)進行加密。同時,為了實現(xiàn)對密文數(shù)據(jù)的去重,提出了收斂加密和消息鎖加密算法,這類加密方法使用文件的哈希值作為加密密鑰,保證了相同的明文得到相同的密鑰和密文。然而,哈希值本身易遭受內(nèi)容猜測攻擊等側(cè)信道攻擊而泄露隱私信息,存在很大的安全隱患。
為了解決云數(shù)據(jù)去重中的側(cè)信道攻擊,如敵手僅通過上傳文件的哈希值即可獲得隱私信息,提出了所有權(quán)證明的概念,通過典型的挑戰(zhàn)-回答交互機制驗證用戶確實擁有特定的文件,從而抵抗側(cè)信道攻擊。
為了解決云數(shù)據(jù)去重中的授權(quán)訪問,引入可信的私有云構(gòu)建混合云架構(gòu),對用戶實施訪問控制策略實現(xiàn)對云數(shù)據(jù)的授權(quán)去重,但是沒有考慮云數(shù)據(jù)的隱私泄露和側(cè)信道攻擊等問題。
綜上所述,針對云數(shù)據(jù)去重中存在的隱私泄露、側(cè)信道攻擊以及未授權(quán)訪問問題,已有解決方案均從某一方面考慮,簡單解決某一問題,嚴重忽視了其他挑戰(zhàn),不能綜合解決云數(shù)據(jù)去重中的文件訪問控制和授權(quán)去重問題。因此,需要發(fā)明一種能夠同時解決上述三類安全問題的方法和相應的系統(tǒng)。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種角色對稱加密所有權(quán)證明的方法及系統(tǒng),既能實現(xiàn)對文件的角色訪問控制,又能滿足對文件的授權(quán)去重要求。
為實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
一種角色對稱加密所有權(quán)證明的方法,其特征在于:包括文件上傳階段和文件所有權(quán)證明階段;
所述文件上傳階段包括以下步驟:
s100、角色認證中心根據(jù)角色建立組織層次架構(gòu),并給根節(jié)點分配主密鑰,執(zhí)行角色密鑰生成算法得到各層角色密鑰;
s200、將步驟s100所得的角色密鑰通過安全信道發(fā)送給各層角色中的文件所有者;
s300、所述文件所有者獲取步驟s200的角色密鑰,根據(jù)角色訪問控制策略執(zhí)行文件密鑰生成算法得到文件密鑰;
s400、使用步驟s300所得到的文件密鑰對文件進行加密處理得到密文;對所述密文進行哈希運算得到第一文件索引值;對所述文件所有者的賬號進行哈希運算得到帳號哈希值;
s500、將步驟s400所得的密文、第一文件索引值、賬號哈希值上傳至云存儲服務器;
s600、云存儲服務器將步驟s500所上傳的密文進行哈希運算得到第二文件索引值,并驗證所述第二文件索引值與第一文件索引值是否一致,若一致,則存儲上傳的密文、第一文件索引值、賬號哈希值,并將所述密文經(jīng)過處理插入布隆過濾器;若不一致,云存儲服務器則不存儲上傳的密文、第一文件索引值、賬號哈希值;
所述文件所有權(quán)證明階段包括以下步驟:
s700、所述文件所有者將步驟s400所得的第一文件索引值與賬號哈希值上傳至云存儲服務器;
s800、判斷步驟s700所得第一文件索引值是否已經(jīng)存儲,若存在,則進一步檢查步驟s700所得賬號哈希值是否已經(jīng)存儲,若存在,則產(chǎn)生一個大小為a的隨機位置數(shù)組作為挑戰(zhàn),進行步驟s900;否則,要求所述文件所有者上傳所述密文;
s900、將步驟s800所得挑戰(zhàn)返回給所述文件所有者;
s1000、所述文件所有者根據(jù)步驟s900所得挑戰(zhàn)計算得到所述挑戰(zhàn)的對應回答;
s1100、將步驟s1000所得的對應回答數(shù)組發(fā)送至云存儲服務器;
s1200、判斷步驟s1100所得回答是否存儲于布隆過濾器中,若存在,則驗證成功;否則,驗證失??;
s1300、將步驟s1200所得驗證結(jié)果返回給所述文件所有者。
一種角色對稱加密所有權(quán)證明的系統(tǒng),其特征在于:包括角色密鑰管理模塊、文件密鑰生成模塊、數(shù)據(jù)加密模塊、數(shù)據(jù)上傳模塊、一致性檢驗模塊、數(shù)據(jù)存儲模塊、布隆過濾器模塊、挑戰(zhàn)模塊和驗證模塊;
所述角色密鑰管理模塊,用于管理角色密鑰;
所述文件密鑰生成模塊,用于根據(jù)角色訪問策略生成文件密鑰;
所述數(shù)據(jù)加密模塊,用于對所述文件和所述文件所有者賬號進行加密操作;使用所述密鑰對所述文件進行加密得到所述密文;對所述密文進行哈希運算得到文件索引值;對所述文件所有者賬號進行哈希運算得到帳號哈希值;
所述數(shù)據(jù)上傳模塊,用于將數(shù)據(jù)加密模塊得到的密文、文件索引值、賬號哈希值上傳至云存儲服務器;
所述一致性檢驗模塊,用于云服務器對數(shù)據(jù)上傳模塊所得密文和文件索引值是否一致進行檢驗;
所述數(shù)據(jù)存儲模塊,用于存儲數(shù)據(jù)上傳模塊所得密文、文件索引值、賬號哈希值;
所述布隆過濾器模塊,用于根據(jù)數(shù)據(jù)上傳模塊所得密文進行分塊操作、哈希運算、隨機化操作后插入布隆過濾器;
所述挑戰(zhàn)模塊,用于云存儲服務器要求上傳文件索引值和賬號哈希值的所述文件所有者接受所有權(quán)證明的挑戰(zhàn);
所述驗證模塊,用于云存儲服務器驗證所述文件所有者上傳的回答是否正確,并返回驗證結(jié)果。
本發(fā)明與現(xiàn)有技術(shù)相比具有以下有益效果:本發(fā)明不但能夠?qū)崿F(xiàn)對文件的角色訪問控制,還能夠有效地解決文件的授權(quán)去重問題;并且本發(fā)明能夠利用靈活的角色訪問控制機制和合適的對稱加密算法降低系統(tǒng)開銷,達到安全高效的設計目標,適用于大規(guī)模推廣使用,能應用到實際生產(chǎn)生活過程中。
附圖說明
圖1是本發(fā)明一實施例的系統(tǒng)模型圖。
圖2是本發(fā)明的步驟流程圖。
具體實施方式
下面結(jié)合附圖及實施例對本發(fā)明做進一步說明。
本發(fā)明最關鍵的構(gòu)思在于:建立層次組織架構(gòu),管理角色密鑰,根據(jù)角色訪問控制策略生成文件密鑰,使用該密鑰對稱加密文件,實現(xiàn)對文件的角色訪問控制,然后基于挑戰(zhàn)-響應模型,并在查詢過程中利用布隆過濾器加快搜索效率,實現(xiàn)了文件的安全高效去重。
如圖1所示為本發(fā)明具體實施例的系統(tǒng)模型圖,包括:
100、文件所有者;110、角色認證中心;120、云存儲服務器;130、敵手;
所述文件所有者100,不同角色的文件所有者擁有對應的角色密鑰,根據(jù)角色訪問控制策略計算出對應的文件密鑰,可以通過云存儲服務器的驗證,上傳和下載對應角色訪問控制的文件。
所述角色認證中心110,主要負責管理角色密鑰,包括角色密鑰的生成、角色密鑰的分發(fā)、角色密鑰的撤銷和角色密鑰的更新。
所述云存儲服務器120,主要負責存儲數(shù)據(jù)和驗證數(shù)據(jù)所有權(quán),存儲主要體現(xiàn)在當文件所有者首次請求上傳文件時,存儲該所有者上傳的密文以及相關信息;驗證主要體現(xiàn)在當文件所有者請求二次上傳文件或請求下載文件時,驗證該所有者是否擁有文件的所有權(quán),并返回對應挑戰(zhàn)的驗證結(jié)果。
所述敵手130,表示對云存儲服務器、文件上傳過程中可能發(fā)起攻擊。
請參照圖2,本實施例提供一種角色對稱加密所有權(quán)證明的方法,其特征在于:包括文件上傳階段和文件所有權(quán)證明階段;
所述文件上傳階段包括以下步驟:
(1)角色密鑰管理步驟
s100、角色認證中心根據(jù)角色建立組織層次架構(gòu),并給根節(jié)點分配主密鑰,執(zhí)行角色密鑰生成算法得到各層角色密鑰;
于本實施例中,所述組織層次架構(gòu)為所述角色認證中心根據(jù)角色建立的層次關系樹;所述角色密鑰生成算法具體為根據(jù)主密鑰、各級角色的索引值以及哈希運算、異或處理等得到對應角色的角色密鑰;所述角色認證中心主要負責管理角色密鑰,包括角色密鑰的生成、角色密鑰的分發(fā)、角色密鑰的撤銷和角色密鑰的更新。
所述角色密鑰生成算法具體描述為,角色層次關系樹中根節(jié)點的主密鑰哈希值異或下級節(jié)點索引值,對該結(jié)果進行哈希運算,即為下級節(jié)點的角色密鑰,對所述角色層次關系樹中各個節(jié)點進行遞歸的上述哈希異或操作,即可得到各級節(jié)點的角色密鑰。
s200、將步驟s100所得的角色密鑰通過安全信道發(fā)送給各層角色中的文件所有者;所述安全信道可以為公共網(wǎng)絡、專用網(wǎng)絡,有線網(wǎng)絡、無線網(wǎng)絡,但要求是安全可信的,如ssl、ipsecvpn等。
(2)文件密鑰生成步驟
s300、所述文件所有者獲取步驟s200的角色密鑰,根據(jù)角色訪問控制策略執(zhí)行文件密鑰生成算法得到文件密鑰;于本實施例中,所述文件密鑰生成算法具體為根據(jù)角色密鑰以及角色訪問控制策略得到對應文件密鑰的過程,輸入即為所述文件所有者擁有的角色密鑰,輸出即為所述文件密鑰;角色訪問控制策略是訪問控制策略的一種,基于角色對訪問控制策略進行組合、更新和撤銷,也可基于屬性對訪問控制策略進行組合、更新和撤銷。
所述文件密鑰生成算法具體描述為,對所述文件所有者擁有的角色密鑰進行策略組合得到文件密鑰,不同的角色權(quán)限使用不同的哈希運算,以實現(xiàn)不同角色權(quán)限的訪問控制。
(3)數(shù)據(jù)加密步驟
s400、使用步驟s300所得到的文件密鑰對文件進行加密處理得到密文;對所述密文進行哈希運算得到第一文件索引值;對所述文件所有者的賬號進行哈希運算得到帳號哈希值;于本實施例中,加密處理使用的是對稱加密方式,加密算法為des、rc2、idea或aes。所述哈希運算可以采用md5、sha-128、sha-256等。
(4)數(shù)據(jù)上傳步驟
s500、將步驟s400所得的密文、第一文件索引值、賬號哈希值上傳至云存儲服務器;
(5)數(shù)據(jù)存儲步驟
s600、云存儲服務器將步驟s500所上傳的密文進行哈希運算得到第二文件索引值,并驗證所述第二文件索引值與第一文件索引值是否一致,若一致,則存儲上傳的密文、第一文件索引值、賬號哈希值,并將所述密文經(jīng)過處理插入布隆過濾器;若不一致,云存儲服務器則不存儲上傳的密文、第一文件索引值、賬號哈希值驗證過程可以有效地防止文件所有者上傳密文與文件索引值不一致的情況;云存儲服務器的存儲過程如下:云存儲服務器創(chuàng)建一個三元組的結(jié)構(gòu)體,第一文件索引值作為唯一索引值,密文、賬號哈希值以及所述密文經(jīng)過處理所得結(jié)果分別存儲在所述三元組的結(jié)構(gòu)體中;于本實施例中,所述密文的處理過程為,將所述密文進行分塊處理,并得到文件塊的哈希值,所述文件塊的哈希值和索引作為隨機函數(shù)的輸入,進而得到插入元素,最后將所述元素插入所述布隆過濾器中。
所述文件所有權(quán)證明階段包括以下步驟:
(6)所有權(quán)證明挑戰(zhàn)步驟
s700、所述文件所有者將步驟s400所得的第一文件索引值與賬號哈希值上傳至云存儲服務器;
s800、判斷步驟s700所得第一文件索引值是否已經(jīng)存儲,若存在,則進一步檢查步驟s700所得賬號哈希值是否已經(jīng)存儲,若存在,則產(chǎn)生一個大小為a的隨機位置數(shù)組作為挑戰(zhàn),進行步驟s900;否則,要求所述文件所有者上傳所述密文;
進一步的,所述判斷過程具體可以描述為,查詢步驟s700所得文件索引值與云存儲服務器數(shù)據(jù)庫中已存儲的文件索引值是否匹配,根據(jù)查詢結(jié)果進行下一步的操作;
進一步的,所述挑戰(zhàn)為云存儲服務器在所述文件塊哈希值中隨機選擇大小為a比特的隨機位置數(shù)組;
s900、將步驟s800所得挑戰(zhàn)返回給所述文件所有者;
(7)所有權(quán)證明驗證步驟
s1000、所述文件所有者根據(jù)步驟s900所得挑戰(zhàn)計算得到所述挑戰(zhàn)的對應回答;所述對應回答為所述文件所有者根據(jù)擁有的所述文件產(chǎn)生步驟s900得到所述大小為a的隨機位置挑戰(zhàn)對應的信息。
s1100、將步驟s1000所得的對應回答數(shù)組發(fā)送至云存儲服務器;
s1200、判斷步驟s1100所得回答是否存儲于布隆過濾器中,若存在,則驗證成功;否則,驗證失??;判斷過程具體可以描述為,將步驟s1000所得回答和步驟s800所得挑戰(zhàn)的隨機位置作為隨機函數(shù)的輸入,進而得到需要驗證的元素,并查詢所述元素是否存在于所述布隆過濾器中,即可得出快速得出所述回答與所述挑戰(zhàn)是否一致,進而驗證所述回答是否正確;于本實施例中,驗證成功即為所述文件所有者擁有所述文件,可以根據(jù)擁有的權(quán)限對所述文件進行對應操作;驗證失敗即為所述文件所有者沒有所述文件的所有權(quán),無法對所述文件進行操作。
s1300、將步驟s1200所得驗證結(jié)果返回給所述文件所有者。
本實施例還提供一種角色對稱加密所有權(quán)證明的系統(tǒng),其特征在于:包括角色密鑰管理模塊、文件密鑰生成模塊、數(shù)據(jù)加密模塊、數(shù)據(jù)上傳模塊、一致性檢驗模塊、數(shù)據(jù)存儲模塊、布隆過濾器模塊、挑戰(zhàn)模塊和驗證模塊;
所述角色密鑰管理模塊,用于管理角色密鑰;包括角色密鑰的生成、角色密鑰的分發(fā)、角色密鑰的撤銷和角色密鑰的更新;所述角色密鑰的生成即為角色層次關系樹中各級密鑰由主密鑰執(zhí)行所述角色密鑰生成算法計算得到;所述角色密鑰的分發(fā)即為角色層次關系樹中上級節(jié)點計算并分發(fā)角色密鑰給下級節(jié)點;所述角色密鑰的撤銷即為刪除特定節(jié)點的角色密鑰;所述角色密鑰的更新即為執(zhí)行所述角色密鑰的撤銷操作后,重新生成所述特定節(jié)點所在的角色層次關系子樹。
所述文件密鑰生成模塊,用于根據(jù)角色訪問策略生成文件密鑰;文件密鑰與文件所有者的角色相關,不同角色的文件所有者擁有對應的角色密鑰,根據(jù)角色訪問控制策略執(zhí)行文件密鑰生成算法得到對應的文件密鑰;所述文件密鑰生成算法具體為根據(jù)角色密鑰以及角色訪問控制策略得到對應文件密鑰的過程,輸入即為所述文件所有者擁有的角色密鑰,輸出即為所述文件的密鑰;進一步的,所述角色訪問控制策略是訪問控制策略的一種,基于角色對訪問控制策略進行組合、更新和撤銷,也可基于屬性對訪問控制策略進行組合、更新和撤銷。
所述數(shù)據(jù)加密模塊,用于對所述文件和所述文件所有者賬號進行加密操作;使用所述密鑰對所述文件進行加密得到所述密文;對所述密文進行哈希運算得到文件索引值;對所述文件所有者賬號進行哈希運算得到帳號哈希值。所述密鑰為所述文件密鑰生成模塊所得密鑰;所述加密使用的是對稱加密方式,具體的加密算法可以采用des、rc2、idea、aes等;所述哈希運算可以采用md5、sha-128、sha-256等。
所述數(shù)據(jù)上傳模塊,用于將數(shù)據(jù)加密模塊得到的密文、文件索引值、賬號哈希值上傳至云存儲服務器;
所述一致性檢驗模塊,用于云服務器對數(shù)據(jù)上傳模塊所得密文和文件索引值是否一致進行檢驗;所述一致性檢驗具體可以描述為,云存儲服務器對接收到的所述密文進行哈希運算得到所述文件索引值,并與接收到的文件索引值進行對比,判斷是否一致,若一致,對所述密文進行存儲;若不一致,云存儲服務器則不存儲所述密文。
所述數(shù)據(jù)存儲模塊,用于存儲數(shù)據(jù)上傳模塊所得密文、文件索引值、賬號哈希值;所述存儲過程具體可以描述為,云存儲服務器創(chuàng)建一個三元組的結(jié)構(gòu)體,所述文件索引值作為唯一索引值,所述密文、所述文件所有者賬號哈希值以及所述密文經(jīng)過處理所得結(jié)果分別存儲在所述三元組的結(jié)構(gòu)體中。
所述布隆過濾器模塊,用于根據(jù)數(shù)據(jù)上傳模塊所得密文進行分塊操作、哈希運算、隨機化操作后插入布隆過濾器;生成布隆過濾器過程具體可以描述為,將所述密文進行分塊處理,并得到文件塊的哈希值,所述文件塊哈希值和索引作為隨機函數(shù)的輸入,進而得到插入元素,最后將所述元素插入所述布隆過濾器中;所述布隆過濾器主要為了加快服務器的查詢效率,減少系統(tǒng)的響應時間。
所述挑戰(zhàn)模塊,用于云存儲服務器要求上傳文件索引值和賬號哈希值的所述文件所有者接受所有權(quán)證明的挑戰(zhàn);所述挑戰(zhàn)為云存儲服務器在所述文件塊哈希值中隨機選擇大小為a比特的隨機位置數(shù)組發(fā)送給所述文件擁有者;
所述驗證模塊,用于云存儲服務器驗證所述文件所有者上傳的回答是否正確,并返回驗證結(jié)果。所述回答為所述文件所有者根據(jù)擁有的所述文件產(chǎn)生對應所述挑戰(zhàn)的回答;回答正確即為所述文件所有者擁有所述文件,可以根據(jù)擁有的權(quán)限對所述文件進行對應操作;驗證失敗即為所述文件所有者沒有所述文件的所有權(quán),無法對所述文件進行操作。
以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明申請專利范圍所做的均等變化與修飾,皆應屬本發(fā)明的涵蓋范圍。