文鵬程,沈濟(jì)南?,梁 芳,許振武,胡俊鵬,
1.湖北民族大學(xué) 信息工程學(xué)院,湖北 恩施 445000;
2.四川大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,四川 成都 610207
云計(jì)算技術(shù)受到越來越多用戶的青睞,其主要原因是該技術(shù)的彈性計(jì)算、海量存儲(chǔ)、便捷訪問等優(yōu)點(diǎn)。由于用戶以及用戶數(shù)據(jù)爆發(fā)性地增長,系統(tǒng)面臨著崩潰和被黑客攻擊的危險(xiǎn)[1]。此外,數(shù)據(jù)安全成為了云服務(wù)發(fā)展的瓶頸,面對(duì)這一亟須解決的問題,學(xué)者們提出了多種多樣的解決方法。Bell等[2]提出強(qiáng)制訪問模型(mandatory access control,MAC)的概念,所有資源都由系統(tǒng)控制并受MAC策略的約束。要訪問基于MAC的系統(tǒng)中的資源,主體必須持有該資源所需的適當(dāng)安全許可及其安全分類。自主訪問控制模型(discretionary access control,DAC)的訪問控制策略可以看成一個(gè)矩陣,通過該訪問控制矩陣實(shí)現(xiàn)對(duì)請(qǐng)求合法性的判定[3],客體的所有者負(fù)責(zé)管理該客體的訪問授權(quán),有權(quán)分配、更改該客體的屬性信息。Galindo引入了一種基于身份的加密(identity-based encryption,IBE)方案,其中發(fā)送方可以使用接收方的身份作為加密消息的公鑰[4]。Xu等[5]和Shen等[6]分別提出了一種改進(jìn)的代理重加密算法(proxy re-encryption,PRE),通過減少雙線性運(yùn)算提高系統(tǒng)的運(yùn)行效率。Oh等[7]提出基于角色的訪問控制(role based access control,RBAC)的方案,融入了自下而上的權(quán)限角色管理方法。Goyal等[8]提出基于屬性加密(attri?bute-based encryption,ABE)的方案,密文被標(biāo)記為一組屬性,私有密鑰與控制用戶能夠解密哪些密文的訪問結(jié)構(gòu)相關(guān)聯(lián)。后續(xù)全同態(tài)加密算法(fully ho?momorphic encryption,F(xiàn)HE)[9,10]和密文搜索算法等也相繼提出。
上述方案或模型面臨一個(gè)問題,就是當(dāng)用戶數(shù)據(jù)訪問策略發(fā)生改變時(shí),必須由用戶對(duì)數(shù)據(jù)進(jìn)行重新加密,并需要將加密后的文件重新上傳云端,這勢(shì)必產(chǎn)生不可忽略的計(jì)算和通信開銷。直至目前,有大量的研究對(duì)訪問模型中策略變化和策略更新進(jìn)行了探索[11,12],并且所提出的方案將重加密過程中所需要優(yōu)質(zhì)的網(wǎng)絡(luò)資源和計(jì)算資源轉(zhuǎn)移給專用代理(云服務(wù)器)。雖然之前的部分研究降低了用戶物理機(jī)的性能需求,使用戶得到了極大的便利,但是并未很好地降低第三方云服務(wù)器所需要的性能需求。
針對(duì)以上問題,本文提出了優(yōu)化的、低成本的、安全的細(xì)粒度數(shù)據(jù)共享方案,通過降低重加密階段的計(jì)算復(fù)雜度極大限度地降低了第三方云服務(wù)器的性能需求,主要?jiǎng)?chuàng)新點(diǎn)為:
1)針對(duì)多權(quán)限云中的數(shù)據(jù),提出靈活、安全的訪問控制模型,即使云服務(wù)提供商不可信,也能保證數(shù)據(jù)安全;
2)將基于改進(jìn)的代理重加密技術(shù)與改進(jìn)的基于屬性加密技術(shù)相結(jié)合,減少雙線性運(yùn)算次數(shù),提高系統(tǒng)的運(yùn)行效率,降低了云服務(wù)器的計(jì)算資源;
3)制定高效的策略更新方案,降低計(jì)算開銷。
本節(jié)針對(duì)改進(jìn)方案中涉及的基本理論知識(shí)進(jìn)行了描述,包含雙線性映射、Fisher-Yates scram?bling算法以及基于屬性的加密。其中,F(xiàn)isher-Yates scrambling算法為隨機(jī)置亂算法,在方案中可以對(duì)加密后的密文進(jìn)行再次隨機(jī)置亂,以確保方案的安全性。
定義1(雙線性映射[5,6]):當(dāng)映射函數(shù)e:G1×G2→G T滿足以下條件時(shí),稱之為雙線性映射:
1)G1,G2,GT是q階的群,其中q是素?cái)?shù);
3)非退化性,即如果g是G1的成員,那么e(g,g)是GT的成員;
4)e是可計(jì)算的,對(duì)于所有的p,q∈G1,存在有效算法,可以計(jì)算出e(p,q)。
定義2(Fisher-Yates scrambling[13]):Fisher-Yates隨機(jī)置亂算法也稱為Knuth算法,是一種經(jīng)典的shuffle算法。該算法的本質(zhì)是生成隨機(jī)排列的有限集。這個(gè)算法是無偏的,總數(shù)為n!,每種排列都有相同的概率。該算法效率很高,時(shí)間復(fù)雜度為O(n),不需要額外的存儲(chǔ)空間。對(duì)于序列A[n],執(zhí)行以下步驟:
1)令0 2)生成一個(gè)隨機(jī)整數(shù)j(1 3)交換A i和A j的值,且i=i-1; 4)重復(fù)2),3),直到i=1時(shí)停止重復(fù)。 對(duì)于執(zhí)行Fisher-Yates scrambling算法之后的數(shù)組,我們定義為:A{j,n}??{j,n}。 基于密文策略的屬性加密(ciphertext-policy ABE,CP-ABE),Bethencourt,Sahai和Waters提供了一種加密方案[14],該方案基于屬性的加密工作,能夠?qū)?fù)雜的基于樹的訪問策略嵌入到密文中,比基于密鑰策略的屬性加密(key-policy ABE,KPABE)性能更好。CP-ABE還引入了“變量屬性”,它使用一組傳統(tǒng)屬性來表示可以通過更復(fù)雜的操作(包括>,<,<>和=)進(jìn)行評(píng)估的值。通過以下步驟完成:對(duì)于介于0和某個(gè)系統(tǒng)定義的最大值之間的給定十進(jìn)制整數(shù),首先將值轉(zhuǎn)換為二進(jìn)制,然后為每個(gè)位創(chuàng)建一個(gè)屬性。例如,可以使用“access_level_flexint_1xxx OR(access_level_flex?int_x1xx AND(access_level_flexint_xx1x OR ac?cess_level_flexint_xxx1))”策略來強(qiáng)制執(zhí)行“>5”,該策略將創(chuàng)建訪問樹。 本節(jié)闡述所提出方案中的細(xì)粒度訪問策略設(shè)計(jì),其中包含方案流程、算法設(shè)計(jì),詳細(xì)描述了細(xì)粒度訪問策略模塊設(shè)計(jì)、核心算法的執(zhí)行流程。 本文提出的基于改進(jìn)的代理重加密與屬性加密結(jié)合的訪問策略(ACSBPA)方案由初始化算法SetupPRE-ABE(),密鑰生成算法ExtractPRE-ABE(),初始加密算法EncPRE-ABE(),重加密密鑰生成算法RKExtractPRE-ABE(),代理重加密算法ReEncPRE-ABE(),初始密文解密算法Dec1PRE-ABE()和重加密密文解密算法Dec2PRE-ABE())七個(gè)算法組成。 如圖1所示,方案的主要組成部分實(shí)體部分有:屬性管理機(jī)構(gòu)(attribute management agency,AMA),密 鑰 生 成 中 心(key generation center,KGC),數(shù)據(jù)擁有者(data owner,DO),數(shù)據(jù)請(qǐng)求者(data recipient,DR)以及云服務(wù)提供商(cloud ser?vice provider,CSP)。 圖1 云環(huán)境下細(xì)粒度訪問策略方案Fig.1 Fine-grained access strategy in the cloud 方案中各實(shí)體之間的交互描述如下。 1)數(shù)據(jù)擁有者與屬性管理機(jī)構(gòu)交互:在屬性管理機(jī)構(gòu)中記錄了數(shù)據(jù)擁有者的屬性值,在初次加密時(shí),數(shù)據(jù)擁有者可以設(shè)置訪問策略來限制訪問加密文件的權(quán)限,同時(shí)數(shù)據(jù)擁有者的屬性值也限制了其訪問數(shù)據(jù)的權(quán)限以及范圍;當(dāng)用戶為數(shù)據(jù)請(qǐng)求者時(shí)也需要與屬性管理機(jī)構(gòu)交互,完成用戶數(shù)據(jù)請(qǐng)求者的屬性注冊(cè)。屬性管理機(jī)構(gòu)存儲(chǔ)了數(shù)據(jù)擁有者、數(shù)據(jù)請(qǐng)求者的屬性值,當(dāng)訪問策略需要更新時(shí),數(shù)據(jù)擁有者從屬性管理機(jī)構(gòu)獲取數(shù)據(jù)接收者的屬性值,更新訪問策略,對(duì)明文執(zhí)行加密或重加密操作。 2)屬性管理機(jī)構(gòu)與密鑰生成中心交互:屬性管理機(jī)構(gòu)將用戶初始的屬性值、變化后的屬性發(fā)送到密鑰生成中心,密鑰生成中心根據(jù)用戶未更改和已更改的屬性為用戶生成最新的基于屬性的密鑰、傳統(tǒng)的公私密鑰對(duì)、對(duì)稱加密密鑰。 3)密鑰生成中心與數(shù)據(jù)請(qǐng)求者交互:數(shù)據(jù)請(qǐng)求者根據(jù)數(shù)據(jù)不同的存儲(chǔ)方式向密鑰生成中心請(qǐng)求密鑰,若需要存儲(chǔ)于云端,則密鑰生成中心發(fā)送給數(shù)據(jù)擁有者加密數(shù)據(jù)所需要的所有私鑰。 4)數(shù)據(jù)擁有者和云服務(wù)提供商交互:數(shù)據(jù)擁有者制定基于CP-ABE的密文訪問控制策略,使用獲得的密鑰、參數(shù)、訪問策略對(duì)數(shù)據(jù)加密并上傳至云端。在此階段,密文采取樹結(jié)構(gòu)訪問控制策略,用戶的密鑰與屬性集有關(guān),只有當(dāng)用戶滿足訪問控制策略才能解密密文。 5)數(shù)據(jù)請(qǐng)求者與云服務(wù)提供商交互:數(shù)據(jù)請(qǐng)求者申請(qǐng)?jiān)L問數(shù)據(jù),只有符合訪問策略則可以將初次加密后的密文轉(zhuǎn)換為明文。交互至此,在執(zhí)行完1),2),3),4),5)后,完成了密文初次共享。 6)密鑰生成中心與云服務(wù)提供商交互:密鑰生成中心將重加密密鑰發(fā)送到云服務(wù)提供商端,云服務(wù)提供商使用基于數(shù)據(jù)擁有者和數(shù)據(jù)請(qǐng)求者生成的重加密密鑰對(duì)初次加密的密文重加密,最后將重加密密文存儲(chǔ)于云服務(wù)提供商。 7)數(shù)據(jù)請(qǐng)求者與數(shù)據(jù)擁有者交互:若數(shù)據(jù)請(qǐng)求者屬于數(shù)據(jù)擁有者指定的新的屬性集,則數(shù)據(jù)擁有者通過秘密通道將基于屬性的私鑰發(fā)送到數(shù)據(jù)請(qǐng)求者端;若數(shù)據(jù)請(qǐng)求者不屬于數(shù)據(jù)擁有者指定的新的屬性集,則無法獲取基于屬性的私鑰及重加密后的密文。 8)數(shù)據(jù)請(qǐng)求者與云服務(wù)提供商交互:數(shù)據(jù)請(qǐng)求者從CSP端獲取密文,使用由數(shù)據(jù)擁有者通過秘密通道發(fā)送的基于屬性的密鑰、自身的傳統(tǒng)的公私密鑰對(duì)、系統(tǒng)參數(shù)、重加密密文作為解密條件,將密文轉(zhuǎn)換為明文。交互到此階段,在執(zhí)行完1)、2)、3)、4)、6)、7)、8)后完成了密文的重加密共享。 在本方案中,由發(fā)送方制定訪問控制策略。密文采取樹結(jié)構(gòu)訪問控制策略,數(shù)據(jù)訪問者密鑰與屬性集有關(guān),只有當(dāng)數(shù)據(jù)訪問者滿足訪問控制策略才能解密密文,執(zhí)行流程如下: 1)初始化:密鑰生成中心執(zhí)行SetupPRE-ABE()和ExtractPRE-ABE(),并且與屬性管理機(jī)構(gòu)交互。由屬性管理機(jī)構(gòu)將指定密文接收者屬性集合標(biāo)記為attr1,根據(jù)attr1生成傳統(tǒng)的公私鑰對(duì)。同時(shí),由密鑰生成中心生成基于AES算法的對(duì)稱密鑰,完成整個(gè)系統(tǒng)初始化。 2)初次密文加密/上傳:由屬性管理機(jī)構(gòu)根據(jù)attr1,生成訪問策略policy。之后,執(zhí)行EncPRE-ABE(),將明文加密為密文。最后,將初始密文發(fā)送給云端,由云端對(duì)密文存儲(chǔ)并由云端執(zhí)行重加密算法。 3)初次密文下載/解密:當(dāng)符合attr1的用戶申請(qǐng)?jiān)L問數(shù)據(jù)時(shí),從云端下載密文數(shù)據(jù)后,使用Dec1PRE-ABE()解成明文。 4)密文共享:若數(shù)據(jù)擁有者欲將此數(shù)據(jù)分享給屬于attr1中的用戶,將密文上傳至云端,屬于attr1中的用戶直接從云端下載密文,用其私鑰SKABEPRE解密密文。反之,若合法數(shù)據(jù)接收者不屬于attr1,則創(chuàng)建新的屬性集attr2,更新訪問策略。若執(zhí)行代理重加密共享時(shí),由屬性管理機(jī)構(gòu)與數(shù)據(jù)擁有者以及密鑰生成中心交互,執(zhí)行重加密密鑰生成算法,生成一個(gè)重加密密鑰,由云端或第三方代理服務(wù)器執(zhí)行重加密算法。在重加密時(shí),通過執(zhí)行重加密算法將數(shù)據(jù)分享給屬于attr2的用戶。云端執(zhí)行代理重加密算法時(shí),計(jì)算并輸出重加密密文。 5)重加密密文下載/解密:當(dāng)屬于attr2集中的數(shù)據(jù)請(qǐng)求者申請(qǐng)數(shù)據(jù)時(shí),若該數(shù)據(jù)請(qǐng)求者符合傳統(tǒng)公私鑰對(duì)的解密算法,則云服務(wù)器將與數(shù)據(jù)擁有者通信,數(shù)據(jù)擁有者也會(huì)與KGC和AMA確認(rèn)數(shù)據(jù)請(qǐng)求者的屬性以及屬性公鑰是否符合attr2。數(shù)據(jù)擁有者確認(rèn)授權(quán)后,通過安全通道將發(fā)送給數(shù)據(jù)請(qǐng)求者,數(shù)據(jù)請(qǐng)求者從云端下載重加密密文,執(zhí)行解密算法,將重加密密文解密為明文。 1)初始化SetupPRE-ABE(λ) 構(gòu)造雙線性映射e:G1×G2→GT,其中,G1、G2和GT是q階的橢圓曲線群,q是素?cái)?shù)。隨機(jī)選擇兩個(gè)哈希函數(shù)H1:{0,1}*→?*p,H2:GT→G,H1可以將任意長度的0/1串全部映射到?*q中,H2可以將GT中的元全部映射到G1,G2中。KGC輸出系統(tǒng)公共參數(shù)paramsPRE-ABE,paramsPRE-ABE是系統(tǒng)中所有用戶加密和解密所需要的參數(shù)。此外,生成主秘密參數(shù)MKPRE-ABE,MKPRE-ABE由KGC保留,為用戶生成解密所需的私鑰。 其中:g1是G1的生成元,g2是G2的生成元,α和 2)密鑰生成ExtractPRE-ABE() KGC根據(jù)數(shù)據(jù)擁有者和用戶DR的屬性集生成傳統(tǒng)的公私密鑰對(duì),其中 以 MKPRE-ABE、用 戶 屬 性 集 attr1以 及paramsPRE-ABE作為輸入,將屬性密鑰分發(fā)給用戶SKABEPRE(attr1,D j)。執(zhí)行操作如下 以paramsPRE-ABE、基于AES加密的對(duì)稱密鑰明文數(shù)據(jù)信息M以及訪問策略po作為輸入,取s∈GT,利用Fisher-Yates scrambling算法將經(jīng)過哈希變換后的s與基于AES加密的對(duì)稱密鑰隨機(jī)置亂為?,再將s與?隨機(jī)置亂,輸出初始密文ci(ci1,ci2,ci3),其中 秦鐵崖滿不在乎:“管他是大神還是小妖,是八只老虎還是八只烏龜,既然敢給江云飛下戰(zhàn)書,想必有兩下子,他敢挑戰(zhàn),我就敢收拾他。” 本節(jié)從方案的一致性和安全性全面分析了方案中的核心算法,證明了本方案的可行性、合理性以及保密性。 定理1任何通過正確步驟生成的代理重加密密文都可由指定屬性集的接收者解密。 可得出最后的明文。 定義3判定雙線性Diffie-Hellman難題: G和GT兩個(gè)q(q是素?cái)?shù))階的橢圓曲線,g是G的一個(gè)隨機(jī)生成元。在雙線性映射e:G×G→GT中的DBDH(Decisional Bilinear Diffie-Hellman)難題 被 定 義 為 攻 擊 者A區(qū)分(g a,g b,g c,e(g,g)abc)和(g a,g b,g c,e(g,g)r)兩個(gè)元組的優(yōu)勢(shì),其中a,b,c,r都是在中隨機(jī)選取的,且用代表上述優(yōu)勢(shì),如果對(duì)于任何多項(xiàng)式時(shí)間的攻擊都是可忽略的,就可以說DBDH成立。 定義4IND-sABE-CPA攻擊游戲 定理2ACSBPA方案中DBDH難題成立,所以方案在隨機(jī)預(yù)言機(jī)模型下具有IND-sABECPA安全性。 證 1)初始化:攻擊者A首先選擇一個(gè)屬性集合作為挑戰(zhàn)的屬性集合attr1*,同時(shí)攻擊者A將s*和γ*作為挑戰(zhàn)條件;然后將attr1*和s*發(fā)送給攻擊者B;最后攻擊者B將att r1*、s*和γ*發(fā)送給挑戰(zhàn)者C。 2)設(shè)置:挑戰(zhàn)者C執(zhí)行SetupPRE-ABE(λ)算法為攻擊者生成ACSBPA中的主公共參數(shù)paramsPRE-ABE和 主 秘 密 參 數(shù)MKPRE-ABE=(w,β)。在ACSBPA方案所有執(zhí)行過程中,由于哈希函數(shù)H在安全性證明中被認(rèn)為是隨機(jī)預(yù)言機(jī),所以其不會(huì)被發(fā)送。挑戰(zhàn)者C將paramsPRE-ABE發(fā)送給攻擊者B,攻擊者B得到哈希函數(shù)查詢QHPRE-ABE(attr1),挑戰(zhàn)者C將查詢到的用戶屬性與相對(duì)應(yīng)的哈希值記錄在表L H2中。 4)挑戰(zhàn)階段:首次查詢是否結(jié)束由攻擊者A決定,并由攻擊者A向攻擊者B發(fā)送兩條挑戰(zhàn)明文(m0,m1),攻擊者B直接將挑戰(zhàn)明文(m0,m1)發(fā)送給挑戰(zhàn)者C;挑戰(zhàn)者C執(zhí)行EncABE(paramsPRE-ABE,attr1*,mb)生 成 密文來進(jìn)行挑戰(zhàn)(其中b是在{0,1}中是隨機(jī)的);最后將密文發(fā)送給攻擊者B。此時(shí),根據(jù)密文 5)二次查詢階段:此階段與首次查詢階段相同。 6)猜測(cè)階段:攻擊者A猜測(cè)出一個(gè)結(jié)果b′∈{0,1},攻擊者B將其發(fā)送給挑戰(zhàn)者C,如果b′=b,則攻擊者A獲得了這場(chǎng)游戲的勝利。最后,獲得這場(chǎng)游戲勝利的優(yōu)勢(shì)表示為 如果攻擊者A成為了ACSBPA方案中INDsABE-CPA的獲勝者,則攻擊者B成功攻破ACSBPA方案IND-sABE-CPA的安全性。 綜上,ACSBPA具有DBDH難題的難解性和IND-sABE-CPA安全性。 定理3ACSBPA方案中初次加密階段符合Fisher-Yates scrambling隨機(jī)置亂算法,所以該方案在初次加密階段生成的密文更具有隨機(jī)性,密文更具有難解性。 證 1)從1~n之間隨機(jī)選出一個(gè)數(shù)和最后一個(gè)數(shù)(n)交換,然后從1~n-1之間隨機(jī)選出一個(gè)數(shù)和倒數(shù)第二個(gè)數(shù)(n-1)交換。假設(shè)有5個(gè)數(shù):0,1,2,3,4。 第一步,從[0,4]這5個(gè)位置中(包含0和4)隨機(jī)出一個(gè)數(shù)(比如是3)和4號(hào)交換,得到0,1,2,4,3。原來4的位置放3的概率就是1/5。 第二步,從[0,3]這4個(gè)位置中(包含0和3)隨機(jī)出一個(gè)數(shù)(比如是0)和3號(hào)交換,得到4,1,2,0,3。原來3的位置放0的概率就是(4/5)·(1/4)=1/5。 第三步,從[0,2]這3個(gè)位置中(包含0和2)隨機(jī)出一個(gè)數(shù)(比如是0)和2號(hào)交換,得到2,1,4,0,3。原來2的位置放4的概率就是(4/5)·(3/4)·(1/3)=1/5。 第四步,從[0,1]這2個(gè)位置中(包含0和1)隨機(jī)出一個(gè)數(shù)(比如是0)和1號(hào)交換,得到1,2,4,0,3。原來1的位置放2的概率就是(4/5)·(3/4)·(2/3)·(1/2)=1/5。 第五步,從[0,0]這1個(gè)位置中(包含0和0)隨機(jī)出一個(gè)數(shù)(比如是0)和0號(hào)交換,得到1,2,4,0,3。原來0的位置放1的概率就是(4/5)·(3/4)·(2/3)·(1/2)=1/5。 2)在 加 密 計(jì) 算 中,s∈GT,利 用Fisher-Yates scrambling算法將經(jīng)過哈希變換后的s與隨機(jī)置亂為?,再將s與?隨機(jī)置亂,確保密文和明文的安全性。在不增加方案的計(jì)算消耗和存儲(chǔ)空間的情況下,ACSBPA方案中初次加密階段符合Fisher-Yates scrambling隨機(jī)置亂算法。 本文提出的ACSBPA方案與蘇铓等[15]提出的基于代理重加密的云數(shù)據(jù)訪問授權(quán)確定性更新方案(PAUA)的時(shí)間復(fù)雜性的對(duì)比如表1。其中,te代表指數(shù)運(yùn)算,tl代表線性對(duì)運(yùn)算。 表1 ACSBPA與PAUA復(fù)雜性對(duì)比分析Table 1 Comparative analysis of ACSBPA and PAUA complexity 文獻(xiàn)[15]是近期提出的代理重加密與屬性加密機(jī)制方案。從表1可以看出,本文提出的ACSBPA方案在復(fù)雜性方面優(yōu)于PAUA方案。 本次實(shí)驗(yàn)仿真是在AMD R7 4800H CPU@2.90 GHz,32 GB內(nèi)存,操作系統(tǒng)為Windows 10,Myeclipse 2014版PC上進(jìn)行的。在本節(jié)中,將策略更新函數(shù),初次加密算法,重加密算法,重解密算法與近幾年相關(guān)文獻(xiàn)進(jìn)行對(duì)比分析。 1)策略更新函數(shù)po=(k,attr1,cl) ACSBPA方案通過“不同的屬性數(shù)量”來對(duì)性能進(jìn)行評(píng)估。在仿真測(cè)試中,訪問策略包含40個(gè)屬性,所加密的文件為1 GB。包含“or”,“and”和“kofn”門限。本次測(cè)試通過改變?cè)L問策略中的屬性數(shù)量來測(cè)量策略更新的處理時(shí)間。如圖2所示,本文策略更新時(shí)間保持在3~5 ms,解密所需時(shí)間沒有隨策略的增加呈正比例增長。而在屬性為40個(gè)時(shí),文獻(xiàn)[16,17]策略更新時(shí)解密所需時(shí)間超過了300 ms。 圖2 策略更新開銷Fig.2 The cost of policy update 2)初次加密算法 如圖3所示,在屬性為5個(gè)和40個(gè)時(shí),本方案初次加密算法計(jì)算耗時(shí)分別為33 ms和240 ms,文獻(xiàn)[18]初次加密計(jì)算耗時(shí)分別為29 ms和190 ms,文獻(xiàn)[19]初次加密算法計(jì)算耗時(shí)分別為26 ms和189 ms。三種方案初次加密算法計(jì)算耗時(shí)隨著屬性數(shù)量的增加呈正比例增長。雖然本文方案中的初次加密算法計(jì)算耗時(shí)高于文獻(xiàn)[18,19],但是這個(gè)計(jì)算耗時(shí)在客戶的正常接受范圍內(nèi)。 圖3 初次加密計(jì)算開銷Fig.3 The calculation cost of initial encryption 3)重加密算法 本文方案中的重加密算法不涉及雙線性映射,對(duì)第三方云服務(wù)器所需的性能需求達(dá)到最大限度的優(yōu)化。在用戶數(shù)量極速增長的情況下,第三方云服務(wù)器所需要的性能相對(duì)較小。如表2所示,屬性為5~40個(gè)時(shí),重加密算法的計(jì)算耗時(shí)在50 ms以內(nèi),而文獻(xiàn)[20]方案中的重加密計(jì)算耗時(shí)隨著屬性數(shù)量的增加呈正比例增長。當(dāng)屬性為40個(gè)時(shí),計(jì)算耗時(shí)達(dá)到了1 850 ms。由此說明,本方案在重加密方面計(jì)算開銷更小。 表2 重加密計(jì)算開銷Table 2 The calculation cost of re-encryption ms 4)解密算法 如圖4所示,雖然屬性在不斷地增加,但是本文解密算法的計(jì)算耗時(shí)保持在26~28 ms,而文獻(xiàn)[19]和[21]方案中的解密計(jì)算耗時(shí)隨著屬性數(shù)量的增加而增加明顯。當(dāng)屬性增加到40個(gè)時(shí),文獻(xiàn)[19,21]提出方案的計(jì)算耗時(shí)都超過了250 ms。因此,與文獻(xiàn)[19,21]相比,本文解密算法的計(jì)算開銷具有明顯的優(yōu)勢(shì)。 圖4 解密計(jì)算開銷Fig.4 The calculation cost of decryption 隨著云服務(wù)的爆發(fā)性發(fā)展,用戶的數(shù)據(jù)安全成為研究的焦點(diǎn)。代理重加密和基于屬性加密成為研究者的關(guān)注點(diǎn)之一。本文以不完全可信的云服務(wù)商為背景,改進(jìn)代理重加密算法,實(shí)現(xiàn)了云中數(shù)據(jù)的安全存儲(chǔ)以及密文共享,且降低了云平臺(tái)所需的性能需求。同時(shí),在明文初次加密階段使用Fisher-Yatesscrambling算法將密鑰與加密元素兩次置亂,在不增加方案的計(jì)算開銷的情況下,增加了封裝對(duì)稱密鑰的隨機(jī)性和封裝后密文的難解性。另外,結(jié)合基于屬性加密算法,實(shí)現(xiàn)了多用戶多屬性的訪問策略,解密時(shí)間與用戶屬性沒有形成正比關(guān)系。本方案保證了云環(huán)境中用戶數(shù)據(jù)的安全,還實(shí)現(xiàn)了數(shù)據(jù)的安全共享。1.3 基于屬性加密
2 細(xì)粒度訪問策略設(shè)計(jì)
2.1 方案流程
2.2 算法設(shè)計(jì)
3 方案安全性及證明
3.1 方案的一致性
3.2 方案的安全性
4 實(shí)驗(yàn)及性能分析
4.1 復(fù)雜性對(duì)比
4.2 仿真及計(jì)算開銷分析
5 結(jié)語