一種基于屬性加密的分布式訪問控制方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及計算機(jī)學(xué)科、信息安全學(xué)科中的數(shù)據(jù)安全領(lǐng)域,特別設(shè)及云計算環(huán)境 下的數(shù)據(jù)安全和隱私保護(hù)。
【背景技術(shù)】
[0002] 隨著計算機(jī)技術(shù)、互聯(lián)網(wǎng)W及無線網(wǎng)絡(luò)的快速發(fā)展,每天產(chǎn)生的大量數(shù)據(jù)W數(shù)字 化的形式存儲在計算機(jī)上。云計算技術(shù)為海量數(shù)據(jù)的存儲和處理提供了一個有效的解決方 案。但是,當(dāng)用戶把他們的數(shù)據(jù)存儲到第=方云服務(wù)器時,考慮到第=方云服務(wù)器是不完全 可信的而且用戶一般只允許授權(quán)的訪問者訪問他們的數(shù)據(jù),因此,用戶敏感數(shù)據(jù)的安全和 隱私面臨極大的挑戰(zhàn),例如社交網(wǎng)站上用戶的個人偏好和好友圈W及郵箱服務(wù)器上的個人 郵件等等。當(dāng)該些服務(wù)器被黑客攻擊,用戶的敏感數(shù)據(jù)會被泄露,甚至一些云服務(wù)提供商會 通過出售用戶的數(shù)據(jù)來獲取利益。
[0003] 訪問控制和數(shù)據(jù)加密技術(shù)可W滿足上述用戶對數(shù)據(jù)隱私保護(hù)的需求。傳統(tǒng)的訪 問控制系統(tǒng)的安全性和性能通?;谝粋€完全可信的服務(wù)器,用戶的權(quán)限和數(shù)據(jù)都是由系 統(tǒng)管理員來分配和管理,但當(dāng)用戶數(shù)量龐大時,該將嚴(yán)重影響系統(tǒng)的效率。若該服務(wù)器被 攻陷時,用戶的數(shù)據(jù)將會泄露。數(shù)據(jù)加密技術(shù)可W有效地保護(hù)用戶數(shù)據(jù)安全,當(dāng)使用公鑰 加密機(jī)制(如RSA)時,則加密者需要提前知道接受者的公鑰,當(dāng)使用對稱加密機(jī)制(如 AES(AdvancedE:ncryptionStandard))時,加密者需要在線給接受者分發(fā)密鑰,也就是說 傳統(tǒng)的加密機(jī)制是一對一的,針對不同的接受者,加密者需要使用不同的密鑰,該樣相同的 文件會被加密多次生成不同的密文存儲在服務(wù)器上,當(dāng)系統(tǒng)中的數(shù)據(jù)和用戶數(shù)量龐大時, 會給密鑰管理帶來巨大的開銷。而在許多應(yīng)用環(huán)境中,尤其是云環(huán)境,數(shù)據(jù)擁有者僅需要根 據(jù)加密策略來加密分享的數(shù)據(jù),而不需要提前知道接受者的身份W及哪個用戶會訪問該數(shù) 據(jù)。而基于傳統(tǒng)的加密機(jī)制來構(gòu)建基于策略的加密機(jī)制是困難的,因為當(dāng)數(shù)據(jù)擁有者加密 數(shù)據(jù)時,其仍然需要提前知道所有具有訪問其數(shù)據(jù)權(quán)限的用戶,然后基于該用戶集來加密 數(shù)據(jù),但是當(dāng)新加入用戶具備訪問權(quán)限時,數(shù)據(jù)則需要重新加密。而且傳統(tǒng)的加密機(jī)制不能 很好地支持用戶數(shù)據(jù)的細(xì)粒度訪問,所W傳統(tǒng)的訪問控制系統(tǒng)和加密機(jī)制不能高效地應(yīng)用 于分布式的云環(huán)境中。
[0004] 因此,在不完全可信的云服務(wù)器上實現(xiàn)海量數(shù)據(jù)的安全和隱私保護(hù)亟需一個細(xì)粒 度的、可擴(kuò)展的、分布式的W及可實現(xiàn)一對多加密的訪問控制機(jī)制系統(tǒng)。目前,基于屬性 加密(Attribute-BasedEnc巧ption,AB巧被認(rèn)為是最適合于解決云環(huán)境中數(shù)據(jù)安全和隱 私保護(hù)W及實現(xiàn)細(xì)粒度的數(shù)據(jù)訪問控制的技術(shù)之一。ABE有兩種結(jié)構(gòu),分別為密鑰策略的 ABE(Key-PolicyABE,KP-AB巧和密文策略的ABE(CP-AB巧。在KP-A邸機(jī)制中,每個用戶的 密鑰與訪問結(jié)構(gòu)相關(guān),每個密文與一組屬性集相關(guān);在CP-ABE機(jī)制中則相反,每個用戶密 鑰與一組屬性集相關(guān),密文與訪問結(jié)構(gòu)相關(guān)。當(dāng)把ABE應(yīng)用到云環(huán)境中時,考慮到數(shù)據(jù)擁有 者的數(shù)據(jù)被存儲到云服務(wù)器上,為了使數(shù)據(jù)擁有者能夠控制和管理數(shù)據(jù),CP-A邸更具優(yōu)勢。
[0005] 然而當(dāng)把CP-ABE機(jī)制應(yīng)用到云環(huán)境中時,不可避免地需要考慮一些實際問題。例 如,在實際系統(tǒng)中,用戶職位會發(fā)生變化,進(jìn)而用戶的權(quán)限會發(fā)生變化。在CP-ABE機(jī)制中, 用戶的權(quán)限與屬性一一對應(yīng),所W用戶權(quán)限的變化可W看成用戶屬性的變化,即用戶屬性 撤銷問題。同時考慮到用戶終端的計算能力有限,而在CP-ABE中,解密時間與訪問結(jié)構(gòu)中 屬性數(shù)量線性相關(guān),當(dāng)屬性數(shù)量較多時,會給用戶帶來沉重的計算負(fù)擔(dān)。因此,在為云環(huán)境 設(shè)計CP-A邸機(jī)制時,高效的用戶撤銷和高效的解密問題都亟待解決。目前,已有一些把 CP-ABE機(jī)制應(yīng)用到云環(huán)境中的方法,但是都存在一定的缺陷。
[0006] 目前已有的方法可W分為單權(quán)威的CP-ABE,如中國專利文獻(xiàn)CN201210389845. 5、 CN201310132586. 2、CN201410055341. 9、CN201410330696. 4,和多權(quán)威的CP-ABE,如 CN201310647570. 5,在單權(quán)威的CP-ABE方法中,系統(tǒng)中的屬性管理和密鑰分發(fā)都是由單一 完全可信的屬性權(quán)威(AttributeAuthority,AA)來執(zhí)行,該AA具備解密所有密文的能力, 當(dāng)該AA被攻擊或者巖機(jī),整個系統(tǒng)將會受到影響而且用戶密鑰可能會泄露,所W單一AA將 會是系統(tǒng)的性能瓶頸和安全弱點。因此,多權(quán)威的CP-ABE更適合于云環(huán)境。
[0007]文獻(xiàn)CN201210389845. 5、CN201310132586. 2、CN201410330696. 4 都考慮了用戶撤 銷問題,但是卻沒有考慮高效解密,而CN201410055341. 9在CP-A邸的基礎(chǔ)上提出了一種外 包解密的方法,實現(xiàn)了高效解密,但是并沒有考慮用戶撤銷問題。CN201310647570. 5提出了 一種應(yīng)用于云環(huán)境的多權(quán)威的CP-ABE方法,該方法能夠?qū)崿F(xiàn)高效解密和用戶撤銷,但是在 進(jìn)行用戶撤銷時,該方法不僅需要對含有撤銷屬性的用戶進(jìn)行私鑰更新,還需要對訪問結(jié) 構(gòu)中含有撤銷屬性的密文進(jìn)行更新,而考慮到云環(huán)境中存儲的海量數(shù)據(jù)時,該用戶撤銷方 法會帶來巨大的開銷。
【發(fā)明內(nèi)容】
[000引有鑒于此,為了解決上述問題,本發(fā)明提出了一種既能滿足云服務(wù)器上的海量數(shù) 據(jù)的安全和隱私保護(hù)需求,又能實現(xiàn)細(xì)粒度和可擴(kuò)展的分布式訪問控制機(jī)制。
[0009] 為了實現(xiàn)分布式訪問控制機(jī)制,本發(fā)明設(shè)計了一種支持外包解密和高效用戶撤銷 的多權(quán)威的CP-ABE。在該加密機(jī)制中,加密數(shù)據(jù)時會定義一個訪問結(jié)構(gòu)(訪問結(jié)構(gòu)基于描 述性的屬性集),使得密文與訪問結(jié)構(gòu)相關(guān);生成的解密密鑰則與一組描述性的屬性集相 關(guān),當(dāng)且僅當(dāng)解密密鑰中的屬性集滿足密文中的訪問結(jié)構(gòu)時,解密密鑰才能正確解密密文。 當(dāng)用戶的權(quán)限發(fā)生變化時,則會對用戶進(jìn)行密鑰撤銷更新。為了減輕用戶的開銷,解密密文 的大部分工作被委托給了云服務(wù)器。而且該加密機(jī)制使用多個AA來分發(fā)屬性密鑰,該減輕 了單個AA的工作量,同時提高了系統(tǒng)的安全性和健壯性。
[0010] CP-ABE是建立在雙線群上,滿足雙線性映射的性質(zhì)。下面給出雙線性映射的定義; 設(shè)Gi和G2是兩個階為素數(shù)P的乘法循環(huán)群。g是G1的生成元,雙線性映射e:GiXGi-G2, 該映射有W下特性:
[0011](1)雙線性:對于任意U,VGG。a,bGZp, 6姐\yb) =e(u,v)ab;
[001引(2)非退化;e(g,g)聲1 ;
[0013] (3)可計算性;對于任意u,VGGi,都能有效計算e(u,V)。
[0014] 進(jìn)一步,本發(fā)明的系統(tǒng)模型如圖1所示,該模型由五個實體組成,分別為可信的第 S方認(rèn)證服務(wù)器(T巧、屬性權(quán)威(AA)、數(shù)據(jù)擁有者云服務(wù)器W及用戶。其中TP負(fù)責(zé)用戶 的認(rèn)證和注冊,并給合法用戶分發(fā)全局身份標(biāo)識(GID)、證書和用戶全局私鑰;各個AA都是 獨(dú)立運(yùn)營的并且負(fù)責(zé)管理自己域中的屬性,同時它們還負(fù)責(zé)給注冊的合法用戶分發(fā)屬性密 鑰,并把用戶的屬性密鑰存儲到云服務(wù)器上;數(shù)據(jù)擁有者基于定義的訪問結(jié)構(gòu)來加密數(shù)據(jù), 并把加密的數(shù)據(jù)存儲到云服務(wù)器上;云服務(wù)器則提供存儲和訪問服務(wù),當(dāng)一個合法用戶訪 問授權(quán)的數(shù)據(jù),云服務(wù)器首先檢索用戶的屬性密鑰,然后利用該屬性密鑰解密密文并生成 一個解密令牌(TK)并把該TK和密文發(fā)給用戶,接著用戶利用全局私鑰和TK來解密密文, 最終獲得需要訪問的數(shù)據(jù)。
[0015] 本發(fā)明提供的基于屬性加密的分布式訪問控制機(jī)制,包括W下幾個步驟:
[0016] S1 ;系統(tǒng)初始化,生成系統(tǒng)公共參數(shù)、TP的公/私鑰對W及每個屬性的公/私鑰 對;
[0017] S2 ;數(shù)據(jù)加密,數(shù)據(jù)擁有者加密數(shù)據(jù),并把數(shù)據(jù)W加密的形式存儲到云服務(wù)器上;
[0018] S3;用戶密鑰生成,TP給合法用戶分配一個GID并給該用戶分發(fā)證書和全局私鑰, AA則基于用戶的權(quán)限給其分發(fā)屬性私鑰;
[0019] S4;訪問數(shù)據(jù),用戶向服務(wù)器請求數(shù)據(jù)訪問,當(dāng)且僅當(dāng)用戶的屬性集滿足密文中的 訪問結(jié)構(gòu),用戶才能利用全局私鑰和屬性私鑰來解密密文;
[0020] S5;用戶撤銷,當(dāng)用戶的權(quán)限發(fā)生變化時,則對用戶的私鑰進(jìn)行更新,使其W-個 新的身份重新加入到系統(tǒng)中來。
[0021] 進(jìn)一步,所述步驟S1包括如下步驟:
[0022] S11 ;TP初始化,輸入安全參數(shù),生成系統(tǒng)公共參數(shù)和TP的公/私鑰對;
[002引 S12;AA初始化。
[0024]其中S12包括如下步驟;
[002引 S121;每個AA從TP處接收到系統(tǒng)公共參數(shù)和TP的公鑰;
[0026] S122 ;各個AA為其管理的每個屬性生成公/私鑰對。
[0027] 進(jìn)一步,所述步驟S2包括如下步驟:
[002引 S21;數(shù)據(jù)擁有者分別從TP和AA處接收到系統(tǒng)公共參數(shù)和每個屬性的公鑰;
[0029] S22 ;數(shù)據(jù)擁有者基于全局屬性集U,給數(shù)據(jù)定義一個訪問結(jié)構(gòu)A,A由訪問矩陣 (M,P)來表示,其中函數(shù)P表示矩陣M每一行與屬性X之間的映射;
[0030] 823;從2。中選取隨機(jī)數(shù)8作為加密指數(shù),令8為向量和(3八2,... 八。)€2;:的第一個 兀素;
[0031] S24 ;計算、=Mi,其中Mi是矩陣M的第i行;
[003引 S25 ;選取隨機(jī)數(shù)r;GZP;
[0033]S26 ;輸出密文CT;
[0034]S27 ;數(shù)據(jù)擁有者把密文CT上傳到云服務(wù)器上。
[0035] 進(jìn)一步,所述步驟S3包括如下步驟:
[0036] S31 ;用戶加入系統(tǒng),向TP提交身份信息進(jìn)行注冊;
[0037]S32 ;TP認(rèn)證用戶的合法性;
[0038] S33 ;若用戶合法,則給用戶分配一個GID,并給用戶分發(fā)一個證書和全局私鑰,其 中證書包含用戶的GID、用戶的屬性列表W及用戶的全局公