周婉祎,尹毅峰,王兆博
(鄭州輕工業(yè)大學(xué)計算機(jī)與通信工程學(xué)院,鄭州 450002)
隨著信息科技和網(wǎng)絡(luò)的飛速發(fā)展,數(shù)字化信息不斷地涌入人們的生產(chǎn)和生活中。雖然數(shù)字化信息的便捷高效功能極大地促進(jìn)了社會的發(fā)展,但是數(shù)據(jù)信息在傳輸或者保存的過程中,一旦被惡意篡改,就會被不法分子所利用,這不僅會影響到個人的安全和利益,而且還會影響企業(yè)乃至國家的安全和利益[1]。為此,代理重加密被提出,它為上述問題提供了一種新的解決方法,代理重加密是一種密文轉(zhuǎn)換功能的加密密碼體制,通過半可信的代理服務(wù)器可以將數(shù)據(jù)擁有者的密文轉(zhuǎn)換成數(shù)據(jù)請求者的密文[2?5]。在重加密的過程中,不能通過密文和轉(zhuǎn)換密鑰獲得任何關(guān)于明文的信息[6?7],但是在有些場景對時效性有要求的情況下[8],此技術(shù)還不夠完善,這時就需要代理重加密所生成的密文具有時釋性的特點。
Zheng 等[9]利用一種基于類型的代理重加密實現(xiàn)細(xì)粒度共享,提出了一種新的數(shù)據(jù)共享方案,可以實現(xiàn)一般云計算環(huán)境下的差異訪問控制,并且保護(hù)隱私泄露。Liang 等[10]提出了一種支持定時釋放的條件代理廣播重加密方案,支持對重加密的條件委托,能夠抵抗代理和接收者勾結(jié)。但是由于非對稱加密算法效率沒有對稱加密算法高,不適合大型數(shù)據(jù)文件的加密。
針對以上的需求,提出了一種基于時釋性的多維虛置換代理重加密方案,將多維虛置換機(jī)制、時釋性和代理重加密相結(jié)合,不僅可以解決對時效性有要求的問題,而且又可以提高效率。用戶通過多維虛置換生成安全的對稱密鑰,使用對稱加密算法加密數(shù)據(jù)文件得到數(shù)據(jù)密文,然后使用代理重加密算法生成重加密密文。保證了方案的效率和安全性,提高了性能。
為了保護(hù)數(shù)據(jù)信息的安全,更好地解決時效性問題,為其設(shè)計出多用戶信息共享模型,如圖1所示。

圖1 多用戶信息共享模型
數(shù)據(jù)擁有者通過構(gòu)造多維密鑰空間,可以生成對稱密鑰,執(zhí)行對稱加密算法可以將數(shù)據(jù)明文加密成數(shù)據(jù)密文,并且上傳到代理服務(wù)器中,由第三方可信的時間服務(wù)器生成時間參數(shù),發(fā)送給數(shù)據(jù)請求者,可以使密文有時效性。
本文用到的符號和其對應(yīng)的含義如表1所示。

表1 文中的符號和含義
針對傳統(tǒng)的代理重加密方案存在的缺陷,本文引入了時間服務(wù)器生成時間參數(shù),并且結(jié)合了多維虛置換機(jī)制,提高傳統(tǒng)方案的機(jī)密性和效率,根據(jù)多用戶數(shù)據(jù)共享模型可以實現(xiàn)的方案具體闡述如下。
(1)系統(tǒng)參數(shù)初始化。選取素數(shù)q,階數(shù)為q的有限循環(huán)群G和GT,一個雙線性映射e:G×GT→GT,g是G的生成元。定義哈希函數(shù)H0:{0,1}*→Z*q,H1:{0,1}*→G,H2:{0,1}→G,H3:GT→{0,1}L,從Z*q中隨機(jī)選取一個元素r作為時間服務(wù)器的私鑰skts=r,并且計算時間服務(wù)器的公鑰pkts=gr。
(2)初始密鑰生成。從Z*q中隨機(jī)選取元素Xi,Xj分別作為數(shù)據(jù)擁有用戶i和數(shù)據(jù)請求用戶j的私鑰,令ski=Xi,skj=Xj,則所對應(yīng)的公鑰分別是pki=gXi,pkj=gXj。
(3)定時釋放密鑰生成。時間服務(wù)器可以生成時間參數(shù)T∈{0,1}*,以此來表示發(fā)布的時間。通過時間服務(wù)器的私鑰skts和時間參數(shù)T,可以得到定時釋放密鑰TG,如公式(1)。
(4)對稱密鑰生成。此階段需要構(gòu)造出多維密鑰空間,使用基于流密碼的輕量級密碼算法,構(gòu)造多維虛置換函數(shù),生成對稱密鑰,具體的步驟描述如下所示。
①密鑰空間構(gòu)造。將數(shù)據(jù)擁有用戶i的私鑰和私有密鑰陣列通過哈希映射生成密鑰控制陣列ki[n],將其發(fā)送給其他的用戶,那么每個用戶就可以擁有除了自身的私鑰之外的不完整虛迭代函數(shù)IVPF(i),如公式(2)。
數(shù)據(jù)擁有用戶i把ki[n]代入到不完整虛迭代函數(shù)中,就可以得到一個擁有完整密鑰參數(shù)的多維虛迭代函數(shù)MVPF,即n維密鑰空間,如公式(3)。其中每一個小空間都映射著一個安全子系統(tǒng)。
②迭代和置換。當(dāng)每個用戶隨機(jī)選擇密鑰控制陣列中的m個密鑰元素,m個安全子系統(tǒng)分別記作γ1,γ2,…,γm,按照公式(4)進(jìn)行迭代的操作,就可以獲得安全的對稱密鑰K。
(5)一級密文生成。用戶可以根據(jù)上一個階段產(chǎn)生的對稱密鑰,用公開的對稱加密算法實現(xiàn)對數(shù)據(jù)明文M的安全加密,可以得到所需要的數(shù)據(jù)密文C1,如公式(5)。選擇隨機(jī)數(shù),ω∈GT,令φ=H0(M,α),經(jīng) 過 公 式(6)計算可以得到密文C2,然后使用時間服務(wù)器的公鑰pkts、時間參數(shù)T,由公式(7)得到密文C3。最后將所得到的這些密文經(jīng)過公式(8)計算,得到一級密文CT,同時上傳到代理服務(wù)器中。
(6)加密對稱密鑰。這個步驟是加密對稱密鑰生成密文,用于之后代理重加密生成重加密密文的過程,將對稱密鑰和用戶的公鑰通過公式(9)計算,就可以得到此對稱密鑰的密文CP,并且上傳到代理服務(wù)器中。
(7)重加密密鑰生成。將數(shù)據(jù)擁有用戶i的私鑰ski和數(shù)據(jù)請求用戶j的公鑰pkj,通過哈希映射生成轉(zhuǎn)換密鑰RK1,如公式(10)。然后把時間服務(wù)器生成的時間參數(shù)T和公鑰pkts經(jīng)過公式(11)的計算得到RK2,最后由公式(12)得到重加密密鑰RKi→j,并且上傳到代理服務(wù)器中。
(8)信息共享。輸入對稱密鑰密文CP和重加密密鑰RKi→j,以及時間服務(wù)器的時間參數(shù)T,通過公式(13)可以計算出重加密密文CTPRE。這個過程是由一個半信任的代理商進(jìn)行的,不會泄露任何關(guān)于密文的消息,其安全性得到了保證。
數(shù)據(jù)請求者對重加密密文進(jìn)行解密,可以得到明文M,首先將重加密密文CTPRE和數(shù)據(jù)請求者的私鑰skj進(jìn)行公式(14)解密后得到對稱密鑰K,再使用K解密數(shù)據(jù)密文C1,獲得明文,如公式(15)。
3.1.1 重放攻擊保護(hù)
在本方案中,只有在設(shè)定的時間有效期內(nèi)數(shù)據(jù)請求方才可以解密獲得明文,當(dāng)數(shù)據(jù)請求者收到密文并將其解密后可以獲得對應(yīng)的反向密鑰,因為該反向密鑰存在一定的時效性,所以在這個時間到達(dá)之前,可以保存此反向密鑰。然而當(dāng)攻擊者進(jìn)行重放攻擊時,解密信息獲得相同的反向密鑰后將丟棄該信息,不予傳遞此信息,并且不能獲得服務(wù)器的認(rèn)證,以此來確保時間陷門始終是限時的。因此本方案可以抵抗重放攻擊。
3.1.2 中間人攻擊保護(hù)
當(dāng)攻擊者介入用戶之間,即使攻擊者獲得所有在公開網(wǎng)絡(luò)信道傳輸?shù)乃袇?shù),但是其密鑰信息即便是公鑰也不會對外公開,因此中間人無法得到以密文形式傳輸?shù)娜魏蚊孛苄畔ⅰT谏蓪ΨQ密鑰的過程中,并沒有直接地傳遞其對稱密鑰,其中虛置換函數(shù)和多維密鑰空間的構(gòu)造都需要安全子系統(tǒng),然而安全子系統(tǒng)并不能在公開信道中傳輸,所以攻擊者就無法構(gòu)建完整的多維密鑰空間,也就不能進(jìn)行后續(xù)的一系列操作。攻擊者無法通過通信中產(chǎn)生的不完整迭代函數(shù)破譯出用戶的密鑰陣列,同時由于多維虛置換函數(shù)具有自編譯性,如果攻擊者強(qiáng)行進(jìn)行攻擊破譯的話,那么將會面臨多維函數(shù)變異類,因此攻擊者無法實施攻擊。
3.1.3 選擇密文安全
在任意的概率多項式時間內(nèi),解決DBDH問題的優(yōu)勢是可以忽略不計的,因此本文提出的方案是選擇密文攻擊安全。假設(shè)存在攻擊者A和挑戰(zhàn)者C。
A向C發(fā)出系統(tǒng)參數(shù)初始化、時間陷門生成、初始密鑰的生成、對稱密鑰生成、一級密文生成、加密對稱密鑰、重加密密鑰生成、代理重加密密文生成的相關(guān)詢問,C向A返回查詢的結(jié)果。C通過系統(tǒng)參數(shù)初始化和初始密鑰生成算法,生成相應(yīng)的公鑰和私鑰,以及時間服務(wù)器的私鑰,運行重加密密鑰算法獲得重加密密鑰,并發(fā)送給A。A自己選擇兩條等長的明文M0和M1,發(fā)送給C,發(fā)起挑戰(zhàn)。當(dāng)A詢問一級密文生成算法時,對稱密鑰是保密的。C選取隨機(jī)比E特nc dry∈p t{io0n,1(},,計算,K用*,M于d,挑T*戰(zhàn))返詢回問給的A。密最文終C,*A=返回給C一個猜測值d1∈{0,1},如果d1=d,則說明挑戰(zhàn)成功。A在挑戰(zhàn)中獲勝的概率優(yōu)勢定義為ε,且ε= |Pr[d1=d]-1 2 |可忽略不計,即A在概率多項式時間內(nèi)猜對的概率可以忽略不計,那么A挑戰(zhàn)失敗,也可以推出本文的方案是選擇密文安全。
將本文方案的計算開銷和文獻(xiàn)[9]、文獻(xiàn)[10]進(jìn)行對比,設(shè)定Tp,Tm,Te,Th,TE/D分別表示為雙線性對、點乘運算、冪運算、哈希運算、一次對稱加密/解密運算所需時間,根據(jù)表2中的比較結(jié)果可知,本文的方案在計算開銷上小于文獻(xiàn)[9]和文獻(xiàn)[10],因此我們所提出的方案具有較高的效率。

表2 各方案的時間復(fù)雜度對比
針對當(dāng)前傳統(tǒng)的代理重加密方案難以滿足加密大量數(shù)據(jù)文件的效率和應(yīng)對的時效性要求,設(shè)計出一種基于時效性的多維虛置換代理重加密方案,提供了高效靈活并且安全的數(shù)據(jù)共享服務(wù)。利用對稱加密算法將數(shù)據(jù)明文加密,保護(hù)數(shù)據(jù)信息,在保證了數(shù)據(jù)安全和機(jī)密性的前提下,降低計算開銷,提高其效率。相較于傳統(tǒng)的代理重加密方案,這種方案適用于較大文件的數(shù)據(jù)共享,可以在短時間內(nèi)完成,具有很大的優(yōu)勢和使用價值。