專利名稱:一種基于文件屬性的密鑰加密方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)安全領(lǐng)域,具體涉及ー種基于文件屬性的密鑰加密方法。
背景技術(shù):
在云存儲中,由于數(shù)據(jù)處于用戶不可控域中,為了保護(hù)敏感數(shù)據(jù)的隱私性,通常會先對數(shù)據(jù)進(jìn)行加密來保護(hù)數(shù)據(jù)的安全。但同時又帶來了新的挑戰(zhàn)——由于分布式環(huán)境中解密方用戶的不固定,數(shù)據(jù)文件類型和大小的多祥性,使用傳統(tǒng)的對稱加密安全性不高,使用傳統(tǒng)的公鑰密碼系統(tǒng)加密的效率不高。同時,用戶為了保護(hù)共享數(shù)據(jù)的隱私性,他需要對密文實(shí)施訪問控制策略,比如他可以定義某份絕密文件只有級別以上和有管理權(quán)限的人才可以訪問的策略。傳統(tǒng)的做法是將數(shù)據(jù)存儲在用戶信任的服務(wù)器上,服務(wù)器通過對每個用戶進(jìn)行認(rèn)證來控制對文件的訪問,但是傳統(tǒng)的公鑰加密實(shí)現(xiàn)的加密共享都是ー對一的,即ー個用戶一個密鑰,在多用戶共享訪問,同時解密用戶不確定的情況下,解密密鑰的安全是個棘手的問題,這樣就很難實(shí)現(xiàn)文件的安全訪問控制了。在傳統(tǒng)的對稱加密體制中,加密數(shù)據(jù)使用的密鑰只有ー個,收發(fā)雙方都使用這個密鑰對數(shù)據(jù)進(jìn)行加密和解密,這就要求解密方事先必須知道加密密鑰。對稱加密算法的特點(diǎn)是算法公開、加密效率高、加密數(shù)據(jù)不定長度。不足之處是,收發(fā)雙方都必須使用同樣的鑰匙,且使用其他人不知道的惟一鑰匙,這樣密鑰的安全性就得不到保證,因此對稱加密體制在分布式文件存儲系統(tǒng)上使用較為困難。公鑰加密體制(非対稱加密體制)利用傳統(tǒng)的對稱密碼體制來實(shí)現(xiàn)保密通信,通信的雙方必須預(yù)先共享ー個密鑰,該密鑰可以由一方選擇好再通過安全的信道傳輸給另ー方,也可以通過一個兩方的密鑰交換協(xié)議來獲得。然而,利用公鑰密碼體制則不需要上述過程。它從根本上克服了對稱密碼在密鑰分配、密鑰傳輸上的問題。但是由于其算法復(fù)雜,而使得加密解密速度沒有對稱加密解密的速度快,加密大文件時效率很低,不適合直接應(yīng)用在分布式環(huán)境的文件加密中。當(dāng)前傳統(tǒng)的公鑰加密一般是基于證書的公鑰加密體制,該加密機(jī)制需要一個關(guān)鍵的前提條件,即公鑰確認(rèn)問題。也就是說ー個用戶A必須確認(rèn)他所使用的公鑰就是用戶B的公鑰。一般在公鑰密碼體制中,該問題是通過在系統(tǒng)中引入一個可信第三方證書授權(quán)(Certificate Authority,簡稱CA)來解決的。該機(jī)構(gòu)為系統(tǒng)中的姆個用戶發(fā)放公鑰證書,因此在加密應(yīng)用中CA需要大量的時間和存儲空間來簽發(fā)、存儲用戶的證書和公鑰,而且用戶驗(yàn)證證書也比較煩瑣,應(yīng)用在分布式存儲系統(tǒng)上效率較低。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于文件屬性的密鑰加密方法,其實(shí)現(xiàn)了公鑰加密體制中的對稱密鑰封裝,通過對稱加密算法加密數(shù)據(jù),并基于屬性加密來保護(hù)對稱密鑰的安全,實(shí)現(xiàn)了加密數(shù)據(jù)的高效安全訪問。本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的
一種基于文件屬性的密鑰加密方法,其特征在于,包括如下步驟(I)接收用戶文件,根據(jù)用戶文件生成屬性集合S = {Sl,S2, , sn}、訪問結(jié)構(gòu)樹P、主密鑰MK和公鑰PK ;(2)隨機(jī)生成ー個對稱密鑰DEK,使用對稱密鑰DEK和對稱加密算法加密用戶文件,以得到數(shù)據(jù)密文;(3)使用公鑰PK和訪問結(jié)構(gòu)樹P加密對稱密鑰DEK,以生成密鑰密文CT ;(4)使用主密鑰MK和屬性集合S生成與屬性集合相關(guān)聯(lián)的私鑰SK ;
(5)將密鑰密文和數(shù)據(jù)密文發(fā)送給服務(wù)器存儲;(6)用戶從服務(wù)器獲取密鑰密文和數(shù)據(jù)密文;(7)用戶用私鑰SK解密密鑰密文,以判斷與私鑰SK相關(guān)聯(lián)的屬性集合是否滿足訪問結(jié)構(gòu)樹P,若滿足則解密對稱密鑰DEK ;(8)用戶使用對稱密鑰DEK解密數(shù)據(jù)密文,以得到明文數(shù)據(jù)。步驟(7)具體包括對于訪問結(jié)構(gòu)樹的每個葉子節(jié)點(diǎn)進(jìn)行解密操作,然后遞歸的從下往上依次解密訪問結(jié)構(gòu)樹的各個節(jié)點(diǎn),直到解密根節(jié)點(diǎn)以得到DEK對稱密鑰為止。對稱加密算法為先進(jìn)加密標(biāo)準(zhǔn)算法。和現(xiàn)有技術(shù)相比,本發(fā)明具有以下的優(yōu)點(diǎn)和技術(shù)效果(I)加密數(shù)據(jù)的高效性使用對稱加密算法來加密數(shù)據(jù)文件,算法效率很高,同時,基于屬性的加密過程中,將對稱密鑰直接當(dāng)成明文數(shù)據(jù)來加密,因此相對于原始的基于屬性加密算法,減少了加密明文數(shù)據(jù)的乘法(異或)操作,因此降低了加密的時間復(fù)雜度,實(shí)現(xiàn)了高效的數(shù)據(jù)加密。(2)密文共享訪問的靈活性該加密算法將解密規(guī)則蘊(yùn)含在加密算法之中,即通過文件訪問結(jié)構(gòu)樹來描述ー個訪問控制策略,支持多種門限(與和或操作)的訪問控制策略,私鑰關(guān)聯(lián)屬性集來控制用戶能否解密,實(shí)現(xiàn)了精細(xì)靈活的密文訪問控制。而傳統(tǒng)的文件加密訪問控制需要頻繁的密鑰分發(fā)和管理。(3)密鑰和數(shù)據(jù)的安全性利用對稱加密算法在支持?jǐn)?shù)據(jù)多樣性和不定長的優(yōu)勢,與基于屬性加密實(shí)現(xiàn)的可證明安全的數(shù)據(jù)共享策略之間的優(yōu)勢結(jié)合。使用基于屬性加密方法封裝對稱密鑰,只有滿足訪問結(jié)構(gòu)的用戶才能解密密鑰,保護(hù)了對稱密鑰的安全性,這樣存儲在服務(wù)器中的密文數(shù)據(jù)是安全的,密文數(shù)據(jù)只有符合屬性要求的用戶才能解密。
圖I是本發(fā)明基于文件屬性的密鑰加密方法流程圖。圖2示出本發(fā)明的應(yīng)用實(shí)例。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施方式
對本發(fā)明做進(jìn)ー步說明。如圖I所示,本發(fā)明方法包括以下幾個步驟(I)接收用戶文件,根據(jù)用戶文件生成屬性集合S = {Sl,S2, , sn}、訪問結(jié)構(gòu)樹P、主密鑰MK和公鑰PK ;訪問結(jié)構(gòu)樹用于描述ー個訪問控制策略,樹的每個葉節(jié)點(diǎn)代表ー個屬性項(xiàng),而每個內(nèi)部節(jié)點(diǎn)代表一個關(guān)系函數(shù),關(guān)系函數(shù)是與、或門限。PK = Gc^g5MK=(にg°),其中g(shù)是ー個生成元,Gtl是生成元為g的素?cái)?shù)階群,a和P是兩個隨機(jī)生成的自然數(shù);(2)隨機(jī)生成ー個對稱密鑰DEK,使用該對稱密鑰DEK和先進(jìn)加密標(biāo)準(zhǔn)(AdvancedEncryption Standard,簡稱AES)對稱加密算法加密用戶文件,以得到數(shù)據(jù)密文;(3)使用公鑰PK和訪問結(jié)構(gòu)樹P加密對稱密鑰DEK,以生成密鑰密文CT :C T =(P,C = DEK e (g,g)°s),其中s是ー個隨機(jī)產(chǎn)生的自然數(shù),e是雙線性映射函數(shù),雙線性映射操作的結(jié)果跟DEK進(jìn)行異或操作生成密文C ;(4)使用主密鑰MK和屬性集合S生成與屬性集合相關(guān)聯(lián)的私鑰SK ;SK = (D = g(a+r)/e, j e S Dj = gr Tj),其中 r 是ー個隨機(jī)產(chǎn)生的自然數(shù),j e S 指的是對應(yīng)集合S中的每個元素,ハ.是根據(jù)集合S的每個元素對應(yīng)生成的一個隨機(jī)自然數(shù)。D是對應(yīng)訪問樹的根節(jié)點(diǎn)的密鑰,gr和ハ進(jìn)行異或操作生成 Dj對應(yīng)的是每個葉節(jié)點(diǎn)的密釩D和Dj —起構(gòu)成了私鑰SK ;(5)將密鑰密文和數(shù)據(jù)密文發(fā)送給服務(wù)器存儲;(6)用戶從服務(wù)器獲取密鑰密文和數(shù)據(jù)密文;(7)用戶用私鑰SK解密密鑰密文,以判斷與私鑰SK相關(guān)聯(lián)的屬性集合是否滿足訪問結(jié)構(gòu)樹P,如果滿足則解密對稱密鑰DEK,否則過程結(jié)束;解密對稱密鑰DEK的過程是輸入密文CT和私鑰SK,對于訪問結(jié)構(gòu)樹的每個葉子節(jié)點(diǎn)X進(jìn)行解密操作Decrypt (CT, SK, x),然后遞歸的從下往上依次解密訪問結(jié)構(gòu)樹的每個節(jié)點(diǎn),直到解密根節(jié)點(diǎn)以得到DEK對稱密鑰為止;(8)用戶使用對稱密鑰DEK解密數(shù)據(jù)密文,以得到明文數(shù)據(jù)。
圖2是本發(fā)明密鑰加密方法的ー個應(yīng)用實(shí)例,首先,接收某學(xué)校的機(jī)密文件,生成文件的屬性集合{對象,類別,專業(yè)},并生成一個文件訪問策略,即文件訪問結(jié)構(gòu)樹結(jié)構(gòu)對象為在校學(xué)生,類別為全日制,專業(yè)位工科或者理科;隨后,系統(tǒng)隨機(jī)生成一個對稱密鑰,使用該對稱加密生成文件的數(shù)據(jù)密文,使用基于文件屬性的加密方法加密密鑰生成密鑰密文,并將所有的密文發(fā)送到服務(wù)器存儲;其后,學(xué)生用戶向服務(wù)器請求訪問機(jī)密文件,獲取密鑰密文和數(shù)據(jù)密文;其后,學(xué)生用戶使用自己的私鑰解密密鑰密文,解密成功即可得到對稱密鑰,否則結(jié)束操作;最后,學(xué)生用戶使用對稱密鑰解密文件數(shù)據(jù)密文得到最終的明文數(shù)據(jù)文件。
權(quán)利要求
1.一種基于文件屬性的密鑰加密方法,其特征在于,包括如下步驟 (1)接收用戶文件,根據(jù)所述用戶文件生成屬性集合s= {Sl,S2, , SnI、訪問結(jié)構(gòu)樹P、主密鑰MK和公鑰PK ; (2)隨機(jī)生成ー個對稱密鑰DEK,使用所述對稱密鑰DEK和對稱加密算法加密所述用戶文件,以得到數(shù)據(jù)密文; (3)使用所述公鑰PK和所述訪問結(jié)構(gòu)樹P加密所述對稱密鑰DEK,以生成密鑰密文CT; (4)使用所述主密鑰MK和所述屬性集合S生成與所述屬性集合相關(guān)聯(lián)的私鑰SK; (5)所述將密鑰密文和所述數(shù)據(jù)密文發(fā)送給服務(wù)器存儲; (6)用戶從所述服務(wù)器獲取所述密鑰密文和所述數(shù)據(jù)密文; (7)用戶用所述私鑰SK解密所述密鑰密文,以判斷與所述私鑰SK相關(guān)聯(lián)的屬性集合是否滿足所述訪問結(jié)構(gòu)樹P,若滿足則解密所述對稱密鑰DEK ; (8)用戶使用所述對稱密鑰DEK解密所述數(shù)據(jù)密文,以得到明文數(shù)據(jù)。
2.根據(jù)權(quán)利要求I所述的密鑰加密方法,其特征在于,所述步驟(7)具體包括對于所述訪問結(jié)構(gòu)樹的每個葉子節(jié)點(diǎn)進(jìn)行解密操作,然后遞歸的從下往上依次解密所述訪問結(jié)構(gòu)樹的各個節(jié)點(diǎn),直到解密根節(jié)點(diǎn)以得到所述DEK對稱密鑰為止。
3.根據(jù)權(quán)利要求I所述的密鑰加密方法,其特征在于,所述對稱加密算法為先進(jìn)加密標(biāo)準(zhǔn)算法。
全文摘要
本發(fā)明公開了一種基于文件屬性的密鑰加密方法,包括接收用戶文件,根據(jù)用戶文件生成屬性集合、訪問結(jié)構(gòu)樹、主密鑰和公鑰,隨機(jī)生成對稱密鑰,使用對稱密鑰和對稱加密算法加密用戶文件,以得到數(shù)據(jù)密文,使用公鑰和訪問結(jié)構(gòu)樹加密對稱密鑰,以生成密鑰密文,使用主密鑰和屬性集合生成與屬性集合相關(guān)聯(lián)的私鑰,將密鑰密文和數(shù)據(jù)密文發(fā)送給服務(wù)器存儲,用戶從服務(wù)器獲取密鑰密文和數(shù)據(jù)密文,用戶用私鑰解密密鑰密文,以判斷與私鑰相關(guān)聯(lián)的屬性集合是否滿足訪問結(jié)構(gòu)樹,若滿足則解密對稱密鑰,用戶使用對稱密鑰解密數(shù)據(jù)密文,以得到明文數(shù)據(jù)。本發(fā)明通過對稱加密算法加密數(shù)據(jù),并基于屬性加密來保護(hù)對稱密鑰的安全,實(shí)現(xiàn)了加密數(shù)據(jù)的高效安全訪問。
文檔編號H04L9/28GK102624522SQ20121009027
公開日2012年8月1日 申請日期2012年3月30日 優(yōu)先權(quán)日2012年3月30日
發(fā)明者唐勇, 徐鵬, 羌衛(wèi)中, 鄒德清, 金海 申請人:華中科技大學(xué)