康 佳,李 育,黃紫涵,蔣夢埡
(南京工程學(xué)院,江蘇 南京 211100)
隨著信息技術(shù)的快速發(fā)展,越來越多的信息被廣泛收集和傳播,使得網(wǎng)絡(luò)中的信息數(shù)量以指數(shù)形式增長。網(wǎng)絡(luò)信息技術(shù)使得世界范圍的信息交流日益方便快捷,人們在享受這種便利的同時(shí),也越來越關(guān)注網(wǎng)絡(luò)信息安全方面的問題。近年來,云存儲(chǔ)服務(wù)商多次出現(xiàn)數(shù)據(jù)泄露問題,致使大量用戶隱私信息泄露。因此,對(duì)數(shù)據(jù)進(jìn)行加密處理是當(dāng)前信息化背景下極為重要的研究課題。
自第三次科技革命以來,電子計(jì)算機(jī)領(lǐng)域高速發(fā)展,在20 世紀(jì)70 年代中后期更是進(jìn)入一個(gè)嶄新的階段。隨著物聯(lián)網(wǎng)、云計(jì)算等新型計(jì)算環(huán)境的出現(xiàn),傳統(tǒng)的訪問控制模型已經(jīng)難以繼續(xù)使用。研究者們提出了一種較為理想的基于屬性的訪問控制(Attribute-Based Access Control, ABAC),ABAC是根據(jù)主體的屬性、客體的屬性、環(huán)境條件以及與這些屬性和條件相關(guān)的一組策略來判斷主體是否有權(quán)限對(duì)客體進(jìn)行訪問的一套控制系統(tǒng)。但隨著云計(jì)算和物聯(lián)網(wǎng)等新型計(jì)算環(huán)境產(chǎn)生的敏感隱私信息日益增多,單一的ABAC 訪問模型不再適應(yīng)于新環(huán)境。
2005 年,Sahai 等人[1]提出了基于屬性加密(Attribute-Based Encryption, ABE)的概念,將訪問控制機(jī)制同保護(hù)機(jī)制相結(jié)合,實(shí)現(xiàn)了細(xì)粒度的訪問控制,在一定程度上保護(hù)了信息數(shù)據(jù)。2006 年,在Sahai 等人的研究基礎(chǔ)上,Goyal 等人[2]又將ABE 劃分為2 類,即密鑰策略的屬性加密(Key-Policy Attribute Based Encryption, KP-ABE)和密文策略的屬性加密(Ciphertext-Policy Attribute Based Encryption, CPABE)方案,并在提出的第一個(gè)KP-ABE 模型中首次引入了訪問樹結(jié)構(gòu),允許對(duì)屬性進(jìn)行單調(diào)的“與”“或”訪問控制操作,實(shí)現(xiàn)了訪問策略的可視化。2007年,Bethencourt 等人[3]構(gòu)造出了第一個(gè)CP-ABE 方案,成功將解密規(guī)則蘊(yùn)含于加密算法,適用于云端解密方不固定的情況。該方案中依舊是采用有界的訪問樹結(jié)構(gòu),可以實(shí)現(xiàn)對(duì)屬性的“與”“或”操作,缺點(diǎn)在于該方案的安全性證明僅僅基于一般群模型,實(shí)際可用性不強(qiáng)[4]。
2010 年,Lewko 等人[5]相繼提出了合數(shù)階雙線性群的CP-ABE 方案和素?cái)?shù)階雙線群的CP-ABE 方案,并給出相應(yīng)的自適應(yīng)安全性證明,這些方案都可以保證數(shù)據(jù)在云端的安全性的前提下實(shí)現(xiàn)細(xì)粒度的訪問控制,但由于都涉及到大量線性配對(duì)運(yùn)算,計(jì)算開銷仍然較大。在此之后,有研究者從算法本身角度降低加解密的計(jì)算開銷,提出了基于橢圓曲線的CP-ABE 方案,使用橢圓曲線上相對(duì)輕量級(jí)的標(biāo)量乘法替代復(fù)雜的雙線性配對(duì)運(yùn)算,到達(dá)了效率與安全性兼得的效果[6]。2012 年,馬丹丹等人[7]提出了基于多授權(quán)機(jī)構(gòu)的CP-ABE 機(jī)制,在訪問樹結(jié)構(gòu)中植入隨機(jī)化參數(shù),這一改進(jìn)有效地抵抗了合謀攻擊。2018 年,鄧宇喬等人[8]基于ABE 提出了一種新的加密方式即流程加密(Process Based Encryption, PBE)。到目前為止,仍有大量的研究者在原有方案的基礎(chǔ)上,對(duì)屬性加密進(jìn)行拓展延伸,進(jìn)行更加深入的研究。
本文從現(xiàn)代密碼的密碼體系與基礎(chǔ)知識(shí)出發(fā),主要介紹基于密文策略的屬性加密并測試了3 種訪問控制方式,通過對(duì)其時(shí)間開銷的比較,選擇一種最適用的訪問控制方法,并提出一種新的屬性加密方案。該方案采用了混合加密體制,在雙重密碼保障的安全性前提下,又降低了加解密的時(shí)間開銷,即提供了細(xì)粒度、高安全的訪問控制。
首先介紹現(xiàn)代密碼體系的基礎(chǔ)知識(shí),對(duì)于群與階,設(shè)G是一個(gè)非空集合,“*”是G上的一個(gè)代數(shù)運(yùn)算,該運(yùn)算為乘法,對(duì)所有的該集合中的任意兩個(gè)元素ɑ、b有ɑ*b∈G。除此之外,如果滿足以下3 個(gè)條件:(1)對(duì)所有的ɑ,b,c∈G有(ɑ*b)*c=ɑ*(b*c);(2)G中存在元素e,使得對(duì)于每一個(gè)G中的元素ɑ都有e*ɑ=ɑ*e;(3)對(duì)G中的每個(gè)元素ɑ,存在另一個(gè)元素b使得ɑ*b=b*ɑ=e,則稱G關(guān)于運(yùn)算“*”構(gòu)成一個(gè)群,記為(G,*)。其中,稱e為單位元,一個(gè)群的單位元是唯一的;稱b為元素ɑ的逆元,對(duì)各個(gè)元素來說,也是唯一的。群的階即為群內(nèi)的元素個(gè)數(shù),也稱為群的基數(shù)。群中元素的階:ɑ為群G中的一個(gè)元素,規(guī)定ɑ0=e為單位元,使ɑn=e的最小正整數(shù)n叫做元素ɑ的階,記為|ɑ|,如果這樣的n不存在,則ɑ的階為無限或?yàn)?。循環(huán)群中所有元素都是由一個(gè)元素生成,也就是所有的元素都形如gn=g·g…g(n個(gè)g),n為任意整數(shù),這個(gè)生成所有元素的元素g稱為生成元。
雙線性配對(duì)(Bilinear Pairing)也叫雙線性映射,設(shè)G0和G1為素?cái)?shù)階p的兩個(gè)乘法循環(huán)群[9]。設(shè)g為G0的生成元,e為雙線性映射e:G0×G0→G1。
雙線性映射e具有以下屬性:
(1)雙線性:對(duì)于所有u,v∈G0和ɑ,b∈zp有e(uɑ,vb)=e(u,v)ɑb。
(2)非簡并性:e(g,g)≠1。
(3)可計(jì)算性:對(duì)于所有的u,v∈G0都存在對(duì)應(yīng)的多項(xiàng)式時(shí)間算法,可以計(jì)算出e(u,v)。
密碼學(xué)中使用的橢圓曲線并非標(biāo)準(zhǔn)數(shù)學(xué)意義上的橢圓曲線,數(shù)學(xué)意義上橢圓周長的計(jì)算可以轉(zhuǎn)化為積分,兩邊平方即可得到橢圓曲線方程,曲線故而得名橢圓曲線。一條橢圓曲線是在射影平面上滿足威爾斯特拉斯方程(Weierstrass)所有點(diǎn)的集合,射影Weierstrass 方程為:
式中:ɑi∈Fq,F(xiàn)q是q元有限域。
對(duì)普通平面上的點(diǎn),令x=X/Z,y=Y/Z,Z≠0,得到如下方程:
同時(shí)約掉Z3可得:
簡化版的Weierstrass 方程即為:
式中,Δ≠0,保證了曲線的光滑性,0∞是曲線唯一的無窮遠(yuǎn)點(diǎn)。
在最小屬性集合策略中,給定兩個(gè)參數(shù)x、y,用(x,y)的形式表示,x代表所有屬性的個(gè)數(shù),y代表解密消息時(shí)最少需要滿足的屬性個(gè)數(shù)。若給定的屬性元素集合為{信息與通信工程學(xué)院,藝術(shù)與設(shè)計(jì)學(xué)院,能源與動(dòng)力工程學(xué)院,材料科學(xué)與工程學(xué)院,材料科學(xué)與工程專業(yè),信息工程專業(yè),大三},設(shè)定條件為(7,3),則表示在7 個(gè)屬性中,用戶至少要滿足3 個(gè),才可以達(dá)到訪問消息的權(quán)限。張同學(xué)是信息與通信工程學(xué)院中一名信息工程專業(yè)的大三學(xué)生,他的屬性集合滿足最小屬性集合的要求,可以訪問成功;李同學(xué)是材料科學(xué)與工程學(xué)院材料科學(xué)與工程專業(yè)的一名大二學(xué)生,他只滿足“材料科學(xué)與工程學(xué)院”和“材料科學(xué)與工程專業(yè)”這兩個(gè)屬性,不滿足最小3 個(gè)的屬性個(gè)數(shù)要求,因此他無法訪問成功。
在布爾公式訪問策略下,采用布爾公式來實(shí)現(xiàn),通過布爾表達(dá)式的計(jì)算結(jié)果(最簡單的布爾表達(dá)式是等式(equality),這種布爾表達(dá)式用來測試一個(gè)值是否與另一個(gè)值相同)來判斷用戶是否具有解密消息的資格,計(jì)算結(jié)果返回值為true 時(shí),表示可以訪問消息;返回值為false 時(shí),則不能訪問。
假設(shè)訪問某個(gè)消息的策略為{(信息與通信工程學(xué)院OR材料科學(xué)與工程學(xué)院)AND(信息工程專業(yè)OR 材料科學(xué)與工程專業(yè))AND(學(xué)生OR 老師)},訪問樹如圖1 所示。
圖1 給定布爾訪問策略下的訪問樹
張同學(xué)是信息與通信工程學(xué)院中信息工程專業(yè)的一名學(xué)生,他具有此消息的訪問資格;李同學(xué)是材料科學(xué)與工程學(xué)院中高分子材料與工程專業(yè)的一名學(xué)生,但他的屬性集并沒有完全滿足訪問條件,不符合訪問策略,因此訪問不成功。
與前兩種方案通過判斷一個(gè)用戶的屬性是否滿足策略的表達(dá)式不同,門限樹訪問策略是對(duì)前兩種方案的進(jìn)一步改進(jìn)和拓展,采用了帶門限值的訪問策略。門限樹方案本質(zhì)是一種多門限的集合,是方案一的一種拓展;同時(shí),把方案二中的AND 和OR 門限換為(t,n)門限,就構(gòu)成了本方案門限樹的模型。給定的屬性集合元素為{ɑ,b,c,d,e,f,g,h,i,j},訪問策略為(((ɑ,b,c, 2), (d,e,f, 2), 2), (g,h,i,j, 1), 2),用戶具有的屬性集合為{ɑ,b,d,e,g},代入到訪問樹中,得到的結(jié)果為true,證明該用戶滿足訪問消息的要求,如圖2 所示。
圖2 給定策略下的門限樹訪問樹
通過對(duì)上述3 種訪問策略進(jìn)行時(shí)間測試,可發(fā)現(xiàn)最小屬性集合策略雖然是最容易實(shí)現(xiàn)的策略,但其在時(shí)間開銷上并不理想,波動(dòng)不穩(wěn)定。對(duì)于布爾公式訪問策略,從測試結(jié)果來看,其波動(dòng)起伏較大,時(shí)間開銷不穩(wěn)定。但是門限樹訪問策略不同,從圖3 中的測試結(jié)果可以看出,它的波動(dòng)起伏小,比較穩(wěn)定,且時(shí)間開銷相對(duì)來說也比較小,所以是3 種策略中最適用的。門限樹訪問策略明顯優(yōu)于另外2 種策略,相比之下時(shí)間開銷比較小且穩(wěn)定。
圖3 三種不同訪問策略下的時(shí)間開銷
雙向加密算法通常分為對(duì)稱性加密算法和非對(duì)稱性加密算法,在對(duì)稱加密算法中常用的算法有:DES 和AES。相較于DES 算法而言,AES 算法具有更高的速度和資源使用效率,安全級(jí)別也有所提高,被稱為下一代加密標(biāo)準(zhǔn)。AES 使用分組加密法,將明文一組組分開,每組長度保持相等,每次只對(duì)一組數(shù)據(jù)加密,直到整個(gè)明文都被加密,如此使得密文強(qiáng)度更高。AES 加密的基本單位是字節(jié),按字節(jié)加密,每個(gè)分組可以有16 個(gè)字節(jié)、24 個(gè)字節(jié)和32 個(gè)字節(jié),所以密鑰的長度有128 位、192 位和256 位3 種形式。這導(dǎo)致加密的輪速會(huì)隨密鑰長度變化而變化,一般來說,密鑰越長,運(yùn)行的速度就越慢。AES 算法的主要優(yōu)點(diǎn)有速度快、算法公開、計(jì)算量小、加密速度快、加密效率高等,由于對(duì)稱加密和解密的密鑰相同,就需要收發(fā)雙方協(xié)商好密鑰并且都要保存好密鑰;另外,每對(duì)用戶每次使用對(duì)稱加密算法時(shí),都需要使用唯一的密鑰,這導(dǎo)致收發(fā)雙方密鑰數(shù)量過大、數(shù)據(jù)過多,進(jìn)而造成效率降低且管理困難,給用戶帶來一定的負(fù)擔(dān)。
密文策略的屬性加密方案(CP-ABE)的基本算法如下:
(1)Setup(ζ)→(PK, MSK):只接受隱式的安全參數(shù)ζ作為輸入,輸出公開參數(shù)PK(即公鑰)和一個(gè)主密鑰MSK。
(2)Encrypt(PK, M, A)→CT:輸入消息M、訪問結(jié)構(gòu)A、公開參數(shù)PK,產(chǎn)生密文CT。
(3)Key Generation(MSK, S)→:SK 輸入描述密鑰的屬性集合S、主密鑰MSK、輸出私鑰SK,其中SK 由屬性來確定。
(4)Decrypt(PK, CT, STK)→M:輸入基于訪問結(jié)構(gòu)A加密的密文CT,對(duì)應(yīng)屬性組S 的解密密鑰SK,公開參數(shù)PK。若S 可以滿足A,則對(duì)CT 進(jìn)行解密并返回對(duì)應(yīng)的消息M[10]。
CP-ABE 根據(jù)屬性加密消息,只有符合屬性要求的用戶才能解密密文,保證了數(shù)據(jù)的安全性。此外,用戶密鑰與隨機(jī)數(shù)和隨機(jī)多項(xiàng)式有關(guān),不同用戶的密鑰無法聯(lián)合,有效防止了用戶合謀攻擊。其主要缺點(diǎn)是時(shí)間開銷大、算法復(fù)雜性較高、加密效率較低。
綜合上述兩種加密算法的分析,兩種算法在不同的環(huán)境下都有一定的局限性,要想保證數(shù)據(jù)加解密的高效性且兼顧密鑰和數(shù)據(jù)的安全性,可以采用混合體制的加密,此加密體制既結(jié)合了對(duì)稱加密體制的加解密高效性,又結(jié)合了基于密文的屬性加密的數(shù)據(jù)管理安全性。即對(duì)數(shù)據(jù)擁有者所提供的數(shù)據(jù)采用AES 對(duì)稱加密算法來實(shí)現(xiàn),對(duì)于對(duì)稱加密產(chǎn)生的加密密鑰再采用CP-ABE 加密?;旌霞用芩惴鞒倘鐖D4所示。
圖4 混合加密算法的加密過程
按圖4 流程計(jì)算密文組件時(shí),隨機(jī)選取GT 群上元素t,得到密文組件,公式為:
再將t元素由Hash 函數(shù)H(t)導(dǎo)出為對(duì)稱密鑰,將獲得的明文和對(duì)稱密鑰進(jìn)行AES 加密,得到對(duì)稱密文并保存。然后對(duì)對(duì)稱密鑰進(jìn)行公鑰加密,隨機(jī)生成多項(xiàng)式,將多項(xiàng)式常數(shù)項(xiàng)設(shè)置為根節(jié)點(diǎn)需要共享的秘密值,記作s。接著沿訪問樹進(jìn)行拆分,使得葉子結(jié)點(diǎn)屬性i對(duì)應(yīng)的秘密分片為λi。若當(dāng)前結(jié)點(diǎn)不是葉子結(jié)點(diǎn),則生成一個(gè)隨機(jī)多項(xiàng)式,多項(xiàng)式的常數(shù)項(xiàng)為當(dāng)前節(jié)點(diǎn)的秘密值(這個(gè)值將被用于分享),多項(xiàng)式的次數(shù)由節(jié)點(diǎn)的門限值決定;若當(dāng)前節(jié)點(diǎn)是葉子節(jié)點(diǎn),則不需要繼續(xù)向下拆分。最后計(jì)算每個(gè)子節(jié)點(diǎn)的拉格朗日多項(xiàng)式值(即對(duì)應(yīng)的秘密分片),并將公共參數(shù)寫入密文。
相對(duì)應(yīng)地,恢復(fù)秘密的過程中,從根節(jié)點(diǎn)開始進(jìn)行遞歸運(yùn)算,若訪問者擁有的屬性集合和密文訪問樹中的葉子節(jié)點(diǎn)屬性集合,有重合屬性i時(shí),則將對(duì)應(yīng)的密文組件和密鑰組件配對(duì)結(jié)果作為秘密分片。秘密分片的計(jì)算公式如下:
再對(duì)葉子節(jié)點(diǎn)秘密分片進(jìn)行恢復(fù),對(duì)非葉子節(jié)點(diǎn)進(jìn)行Lagrange 插值計(jì)算;遞歸完成之后,最終根節(jié)點(diǎn)的秘密值可以用e(g,g)βtS的形式恢復(fù),從而可恢復(fù)GT 群上隨機(jī)生成元素t進(jìn)行Hash 運(yùn)算,導(dǎo)出對(duì)稱密鑰,與獲取的對(duì)稱密文進(jìn)行AES 解密,即可獲得明文。
與最小屬性集合策略和布爾訪問策略相比,門限樹訪問策略更適應(yīng)于當(dāng)今時(shí)代的實(shí)際應(yīng)用,本研究組將最優(yōu)的訪問策略—門限樹策略作為基于密文的屬性加密的訪問策略,并將這種訪問策略下的CP-ABE 算法與AES 對(duì)稱加密算法相結(jié)合,得出一種新的混合加密算法,分析了此混合加密算法的加密和解密過程,證明了混合加密算法的可行性與安全性。