朱愛梅 黃毅
摘要:針對(duì)云計(jì)算訪問控制中的加密問題,該文提出了一種改進(jìn)的KAE的加密算法,通過對(duì)[Extract]和[Decrypt]的過程進(jìn)行優(yōu)化,并對(duì)其進(jìn)行了證明。仿真實(shí)驗(yàn)中該文算法具有很好的加密效果,與基本的AES算法相比在讀取時(shí)間,訪問時(shí)間上都有較大的優(yōu)勢(shì)。
關(guān)鍵詞:訪問控制;云計(jì)算;加密
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)31-0029-03
作為一種21世紀(jì)的新興的計(jì)算模式越來越受到人們的關(guān)注,這種新的計(jì)算模式具有資源共享,按需分配的特點(diǎn),因此被廣泛地運(yùn)用到企業(yè)中。企業(yè)中的大部分中小企業(yè)可以通過借助云計(jì)算的平臺(tái)方便地進(jìn)行數(shù)據(jù)的存儲(chǔ)和訪問,這樣可以有效減少云中小企業(yè)的運(yùn)營(yíng)成本。同時(shí)作為日常的人們使用云計(jì)算平臺(tái)可以方便的獲取資料等等。在不斷的訪問云計(jì)算數(shù)據(jù)庫的過程中,安全問題就顯得非常重要,雖然一些企業(yè)級(jí)的殺毒工具能夠?qū)Τ霈F(xiàn)的病毒,木馬進(jìn)行處理,但是很顯然最主要的問題還是來自于訪問控制,這是因?yàn)樵朴?jì)算涉及的用戶存在不同的類型,這些用戶自身參差不齊,導(dǎo)致了對(duì)于云計(jì)算訪問存在很大的風(fēng)險(xiǎn)。因此云計(jì)算的安全問題就顯得非常的重要。尤其是關(guān)系到云計(jì)算的訪問控制就是重中之重了。
本文對(duì)云計(jì)算的訪問控制的研究基礎(chǔ)上,提出了一種改進(jìn)的KAE加密算法來進(jìn)行云計(jì)算下的訪問控制模型。通過仿真實(shí)驗(yàn)說明本文的加密算法具有很好的加密效果適合云計(jì)算控制訪問模型。
1 云計(jì)算訪問控制模型簡(jiǎn)述
在云計(jì)算中的訪問控制主要是指在云計(jì)算中需要對(duì)部分的用戶進(jìn)行授予權(quán)限,而禁止其他的用戶獲得權(quán)限,而訪問控制模型是主要是從安全的角度出來來描述訪問控制而建立的一種模型。目前,在云計(jì)算中使用比較多的訪問控制模型主要分為三類,一類是自主訪問控制,一類是強(qiáng)制訪問控制,一類是基于角色的訪問控制。所謂自主訪問控制主要是對(duì)客體擁有權(quán)的主體對(duì)客體的一種訪問權(quán)限的設(shè)置,并且可以在隨后的時(shí)間范圍內(nèi)可以撤銷。強(qiáng)制訪問控制模型主要是設(shè)定客體中的信息具有敏感和訪問信息的等級(jí)進(jìn)行的一種強(qiáng)行設(shè)置的方法?;诮巧脑L問控制自主訪問控制主要是只對(duì)某個(gè)客體擁有權(quán)的主體對(duì)該客體的一種訪問權(quán),并在隨后的時(shí)刻對(duì)這些授權(quán)進(jìn)行撤銷。強(qiáng)制訪問控制模型是根據(jù)客體中的信息敏感和訪問信息的訪問等級(jí),對(duì)客體進(jìn)行一種限制方法。基于角色的訪問控制主要是指在控制模型中引入了“角色”的概念,將操作的權(quán)限直接給予用戶,這樣用戶通過不同的角色來獲得相應(yīng)的操作權(quán)限。授予主要是引入了角色的概念,使得操作權(quán)限直接授予角色,用戶使用角色來獲得相應(yīng)的操作權(quán)限。
2 基于改進(jìn)的KAE算法的云計(jì)算訪問控制模型
2.1 KAE算法
為了能夠?qū)崿F(xiàn)對(duì)云計(jì)算下的數(shù)據(jù)進(jìn)行加密,增加訪問控制模型的安全性,Chu提出了一種采用密鑰聚合進(jìn)行加密的機(jī)制,其根本思想是在映射函數(shù)中引入雙線性的思想,可以有效地提高明文信息的加密程度。但這種機(jī)制的缺點(diǎn)是對(duì)信息需要額外的添加公鑰加密,并且還在密文信息中添加一個(gè)額外的標(biāo)致,這樣就容易導(dǎo)致明文在進(jìn)行加密后出現(xiàn)的密文會(huì)被分解為幾個(gè)不同的部分組成,而這些私密密鑰的擁有者卻只有一個(gè)主密鑰,很顯然這些私密密鑰都是從主密鑰中分離出來的,分離出來的密鑰就叫做聚合密鑰(Aggregate Key,AK),因此使用這種密鑰的加密算法叫做聚合密鑰加密(Key Aggregate Encryption,簡(jiǎn)稱KAE)算法.其組成部分如下:(1)每一個(gè)數(shù)據(jù)的擁有者都必須設(shè)定一個(gè)公共參數(shù),以便其他的用戶可以訪問這個(gè)參數(shù);(2)通過KAE中的[keyGen]函數(shù)生成一個(gè)公共密鑰對(duì);(3)數(shù)據(jù)擁有者發(fā)布的消息必須通過[Encrypt]函數(shù)來設(shè)定明文信息中的數(shù)據(jù),以便能夠有效的決定密文中的標(biāo)識(shí)符;(4)數(shù)據(jù)的擁有者通過主密鑰和私密密鑰可以聯(lián)合傳給密文子集;(5)用戶使用[Decrypt]函數(shù)通過聚合密鑰對(duì)密文進(jìn)行解密
2.2 算法分析
在KAE算法中,提出的聚合加密機(jī)制主要是為了能夠?qū)⒍鄠€(gè)解密的密鑰聚合為一個(gè)單獨(dú)的密鑰,這樣做的目的是可以方便云計(jì)算用戶只需要通過一個(gè)密鑰就能夠來解密所有的文件,從用戶的角度出發(fā)最大程度的方便了用戶的密鑰管理,同時(shí)提高了資源的利用率和方便的資源的有效管理,但這里同樣存在一個(gè)問題就是云計(jì)算的用戶數(shù)量是不定的,因此可能會(huì)導(dǎo)致設(shè)定的公共參賽容量不斷的變大,這樣容易造成云計(jì)算系統(tǒng)的負(fù)擔(dān),增加系統(tǒng)成本。
2.3 優(yōu)化KAE算法
KAE算法的復(fù)雜主要集中在有大量的雙線性對(duì)的運(yùn)算,因此在解密過程中雙線性對(duì)的運(yùn)算對(duì)算法的運(yùn)行效率存在很大影響,特別是對(duì)細(xì)粒度的訪問,使得結(jié)構(gòu)變得非常龐大。設(shè)云計(jì)算用戶中的角色的個(gè)數(shù)為[m],因此訪問控制中的葉子節(jié)點(diǎn)數(shù)量為[x],因此導(dǎo)致葉子節(jié)點(diǎn)變得非常龐大,為了能夠提高算法的性能,本文將盡可能的減少這種雙性對(duì)的運(yùn)算過程,假如訪問控制樹中的任意兩個(gè)節(jié)點(diǎn)的葉子節(jié)點(diǎn)的屬性存在相同,因此可以考慮合并,這樣就能夠相對(duì)減少線性對(duì)的工作量,結(jié)合KAE算法的特點(diǎn),需要對(duì)[Extract]和[Decrypt]的過程進(jìn)行優(yōu)化。
2.3.1 算法步驟
步驟1:隨機(jī)選擇一個(gè)因子[s∈Zq]和一個(gè)隨機(jī)向量[v∈Zhq],其中,[h]是訪問葉子節(jié)點(diǎn)的個(gè)數(shù)
步驟2:計(jì)算[λx=Rx×v],其中[Rx]為[R]的一行
步驟3:隨機(jī)選擇一個(gè)向量[w∈Zhq]
步驟4:計(jì)算[wx=Rx×w]
步驟5:選擇一個(gè)雙線性素?cái)?shù)[p]階群[G],其中[Setup(1λ,n)]:
[2λ≤p≤2λ+1],[g∈G,α∈RZp] (1)
步驟6:計(jì)算[C0=Me(g,g)sC1,x=e(g,g)λxe(g,g)αxρxC2,x=gρxC3,x=gyπ(x)ρxgwx]
步驟7:設(shè)置[n]為最大密文的標(biāo)記,[param=
[pk=v=gγMk=γ]
步驟8:對(duì)[Encrypt(pk,i,m)]進(jìn)行優(yōu)化:設(shè)定信息[m∈GT],指數(shù)[i∈{1,2,......,n}],隨機(jī)選擇一個(gè)[t∈RZp],計(jì)算得到的密文為:
[C=gt,(vgi)t,me(g1,gn)t]
步驟9:對(duì)進(jìn)[Extract(Mk,S)]進(jìn)行優(yōu)化:對(duì)于[S]集通過計(jì)算得到:
[Ks=j∈Sgγn+1-j]
步驟10:[Decrypt(Ks,S,i,C)=c1,c2,c3]:當(dāng)[i∈S],得到消息輸出,如下:
[m=c3×e(Ks×j∈S,j≠ign+1-j+i,c1)]
因此對(duì)于數(shù)據(jù)信息的持有者來說,只需要了解[γ],就能得到如下結(jié)果
[e(c1,gn)γ=e(gt,gn)γ=e(g1,gn)t]
2.4 方案的安全性證明
本小節(jié)主要證明通過KAE中授權(quán)的用戶才能訪問存儲(chǔ)在云計(jì)算服務(wù)器中的數(shù)據(jù),同時(shí)云計(jì)算提供商不能隨意地修改或者解密數(shù)據(jù),從而能夠訪問存儲(chǔ)在云中的數(shù)據(jù)。設(shè)定每一個(gè)用戶擁有有且只有一組的解密與之匹配的屬性集,因此對(duì)于設(shè)定的訪問矩陣[R]所在的行[X']而言,存在線性約束[Cx∈Zq],使得[x∈X'cxRx={1,0,0,1}]。
由于[dec(x)=C1,xe(H(u),C3,x)e(skπ(x),C2,x)=e(g,g)λxe(H(u),g)ωx],因此存在
[Πx∈X'dec(x)=x∈X'(e(g,g)λxe(H(u),g)ωx)cx=e(g,g)s]
所以:
[C0/x∈X'dC0/e(g,g)S]
從上面的公式中可以發(fā)現(xiàn)不存在矩陣中的相關(guān)行的屬性,無法[x∈X'cxRx={1,0,0,1}]成立,因此無法達(dá)到控制的目的
3 實(shí)驗(yàn)說明
本文選擇的平臺(tái)為L(zhǎng)inux ubuntu,硬件配置是CPU為酷睿2.0,內(nèi)存為4G,硬盤為500G,操作系統(tǒng)為Windows Server2003。圖1顯示了本文算法在不同的私密密鑰個(gè)數(shù)下的情況,用戶通過私密密鑰生產(chǎn)用戶主密鑰的時(shí)間,從圖中可以發(fā)現(xiàn)伴隨著私鑰個(gè)數(shù)的不斷地增大所生成的時(shí)間而呈現(xiàn)上升的趨勢(shì)。圖2顯示了在訪問控制策略用戶數(shù)量下的本文算法的加密時(shí)間,從圖中可以發(fā)現(xiàn),伴隨著用戶數(shù)量的增大,加密時(shí)間逐漸增大。圖3顯示了兩種加密算法下的數(shù)據(jù)讀取的速度,從中發(fā)現(xiàn)伴隨著文件的逐漸增大,本文的讀取速度在逐步減少,圖4中顯示了兩種加密算法下的數(shù)據(jù)訪問時(shí)間,從中發(fā)現(xiàn)伴隨著文件逐步增大,本文算法的讀取時(shí)間相對(duì)穩(wěn)定。
4 結(jié)束語
本文針對(duì)云計(jì)算訪問控制的問題采用了優(yōu)化的KAE算法,并對(duì)算法中的兩個(gè)實(shí)現(xiàn)過程進(jìn)行了改進(jìn),仿真說明中將本文算法與AES算法進(jìn)行相比,獲得了比較好的效果,進(jìn)一步說明了本文算法能夠有效地適應(yīng)云計(jì)算下的訪問控制,具有一定的應(yīng)用價(jià)值。
參考文獻(xiàn):
[1] 劉青.云計(jì)算環(huán)境中基于策略的多用戶全同態(tài)加密方法[J].廣西大學(xué)學(xué)報(bào):自然科學(xué)版,2016,41(3):786-795.
[2] 胡紹忠.同態(tài)加密技術(shù)在云環(huán)境數(shù)據(jù)傳輸中的應(yīng)用[J].科技通報(bào),2012,28(12):91-92.
[3] 高煌紅.云計(jì)算數(shù)據(jù)存儲(chǔ)安全的研究[D].浙江工業(yè)大學(xué),2014.