蔣瀝泉,秦志光
(電子科技大學信息與軟件工程學院 成都 611731)
隨著傳感技術、大數據技術以及移動物聯網的快速發展,移動群智技術作為一種新型大規模感知技術,能夠利用用戶隨身攜帶的移動設備突破時間與地點的限制,隨時隨地地借助云服務平臺進行大規模的實時數據感知、傳輸和共享[1-3]。隨著便攜式移動設備傳感器集成的精細化以及功能的多樣化,其應用也越來越廣泛,如交通導航、環境監測、醫療服務等[4-5]。盡管移動群智應用能夠極大地提升人類生活質量,然而由于在應用過程中涉及大量的數據傳輸、交換和共享,這使得群智感知的應用也面臨著一系列數據隱私和安全問題。如攻擊者可以通過非法獲取用戶上傳的群智醫療等敏感信息來推導其健康狀況,進而進行一系列惡意造謠和攻擊。社交用戶傳輸給應用服務器的群智數據通常帶有時空信息(含有收集數據時的位置),攻擊者可以非法獲取這些數據并可能利用這些數據推導出用戶的生活習慣、行為、家庭住址等敏感信息,從而獲取用戶的隱私并可能對用戶發起惡意攻擊。因此,在保證數據隱私性的前提下,如何實現對群智數據的授權訪問是移動群智應用首要解決的問題[6-8]。
基于屬性加密的訪問控制技術是一種有效的解決方法[9-10]。在該技術中,用戶的私鑰和一組屬性集(或一個訪問控制)綁定在一起,加密的數據和訪問控制(或一組屬性集)綁定在一起。當用戶私鑰中的屬性集(訪問控制)和密文中的訪問控制(屬性集)相匹配時,該用戶才有權訪問數據。然而,在現有的大多數基于屬性加密的訪問控制中,用戶的密鑰通常是由一個中央權威去生成和分配,這就需要該權威機構是完全可信的。而在現實的應用場景中,中央權威機構由于托管著用戶所有的密鑰,可能偽裝成合法用戶去訪問用戶的數據,使得用戶數據隱私性遭到破壞。因此,如何實現去中心化和分布式的訪問控制減少中央權威的信任成為亟待解決的挑戰。此外,現有的大多數基于屬性的訪問控制方案中都過于專注用戶數據機密性的保護,很少考慮用戶屬性的隱私性。如在移動群智的醫療服務場景中,群智用戶選擇一個訪問控制,如“人民醫院”“精神科醫生”“生理醫生”“心理醫生”,對自己的群智醫療數據進行加密,使得只有人民醫院的精神科醫生、生理醫生或心理醫生才能訪問其醫療數據。然而,由于密文中的訪問控制是以明文的形式附加在密文數據上的,這就使得任何非法用戶即使不能解密其密文數據,也能通過訪問控制大致推測該用戶可能患有生理或心理疾病,這無疑在一定程度上損害了用戶的隱私。因此,如何防止訪問控制的隱私性泄漏也成為另一個待解決的挑戰之一。除了實現去中心化和分布式的訪問控制以及保證訪問控制的隱私性之外,考慮到大多數的基于屬性加密的方案其密文長度過長、解密效率過低,這對于資源受限的移動群智用戶難以快速地解密并訪問數據,因此,如何保證資源有限的群智用戶能以最少的耗能快速實現對目標數據的訪問也是一個現實的挑戰。
目前來說,大多數基于屬性的加密方案都只能部分解決以上挑戰。如具有去中心化功能的基于屬性的加密方案[11-18]僅能夠實現中心化和分布式的訪問控制,無法實現對訪問控制的隱私保護和高效的數據訪問。具有策略隱藏功能的基于屬性的加密方案[19-25]僅能夠實現對訪問控制的隱私保護,無法實現去中心化和高效的數據訪問;具有外包功能的基于屬性的加密方案[26-33]僅能夠實現高效的數據訪問,而沒有考慮去中心化和訪問控制的隱私保護;此外,還有一些具有隱私保護的去中心化功能的基于屬性的加密方案或基于外包的具有隱私保護的屬性基加密方案要么沒有考慮用戶解密效率,要么未考慮去中心化問題[14,25,34-35]。
為了實現移動群智應用場景下的屬性隱藏、去中心化以及高效的數據訪問,本文提出了一個基于屬性隱藏的高效去中心化的移動群智數據共享方案。本文的主要貢獻如下。
1)細粒度訪問控制:本方案允許群智用戶指定基于屬性的訪問控制用于加密群智數據,使得只有滿足訪問控制的用戶才能訪問該群智數據。與之前的細粒度訪問控制相比,本方案的訪問控制更高效。
2)權威去中心化:本方案允許多個權威機構為群智用戶共同生成私鑰,使得單獨的權威機構無法偽裝成合法的用戶非法訪問目標數據。相較于之前中心化的屬性權威的問題,本方案能夠防止抗權威密鑰泄漏。
3)屬性隱藏: 本方案支持對訪問控制的隱私保護,本質上來說訪問控制是一組屬性的描述,實現對訪問控制的隱私保護等同于實現對用戶屬性的隱藏。與之前的訪問控制方案相比,本方案考慮了訪問控制的屬性隱私。
4)外包解密: 本方案允許群智用戶能夠以最低的能耗去快速解密和訪問目標數據。
n-線性假設:給定一個群 (p,G1,G2,GT,e),不存在一個多項式區分者可以以不可忽略的優勢區分,這里, γ是 從Zp選 取長度為n的 隨機矩陣,Z是 從Zp選取n+1行1列 的隨機矩陣,R為 從Zp選 取n+1行n列的隨機整數矩陣。
在圖1 所示的本系統模型中,涉及4 種不同類型的實體: 權威機構、云服務器、數據擁有者、數據發送者。具體來說,首先權威機構生成系統公開參數,并向系統中的所有實體公開。此外,所有的權威機構為用戶生成私鑰,并將生產的私鑰發送給用戶。數據擁有者通過加密算法將其群智數據加密生成密文,并將生成的密文發送到云服務器上存儲和共享。當數據使用者想訪問存儲在云服務器上的密文數據,他首先盲化其私鑰生成盲化密鑰和轉換密鑰,然后將盲化密鑰發送給云服務器。云服務器在接收到盲化密鑰時,執行外包解密操作,并將轉換后的外包密文發送給該數據使用者。數據使用者在接收到轉換的外包密文后,使用轉換密鑰恢復明文信息。

圖1 系統模型圖
和其他類似方案的安全模型定義相同[14-15,18],本方案中所有的權威機構都是半可信的第三方,即誠實好奇的第三方,它們能忠實地執行公鑰生成和發布,為用戶生成其各自的私鑰,但可能偽裝成合法用戶非法訪問數據。云服務器是半可信的,即為用戶提供無限的存儲資源以及為用戶忠實地執行其指示的操作,但也很好奇地試圖去了解其存儲的數據或執行的解密內容。數據擁有者是誠實的數據發送方,主要負責上傳數據,以分享給其他用戶實現非交互式的數據訪問。數據訪問者是不可信的數據訪問方,即非授權用戶試圖通過發起包含合謀攻擊等手段以獲取合法權限,從而達到其非法訪問非授權用戶數據的目的。
本方案由如下若干個算法組成。
SETUP(λ): 輸入安全參數 λ , 輸出公共參數 pp,該算法由所有權威機構執行。
AuthSetup(pp,i): 輸入公共參數 pp、 權威機構索引i,生成其公私鑰 PKi和 SKi,該算法由權威機構執行。
Encrypt(pp, PKi,x,m): 輸入公共參數 pp、公鑰PKi、 訪問控制向量x、 加密消息m,該加密算法輸出密文 CT ,該算法由數據所有者執行。
KeyGen(pp, SKi, PKi, GID,z) : 輸入公共參數 pp,所有權威機構私鑰 SKi、 所有權威機構的公鑰 PKi、用戶的全局身份 GID、 屬性向量z,該密鑰生成算法為用戶生成私鑰U Ki,該算法由各權威機構執行。
KeyGenout(pp, UKi): 輸入公共參數 pp、用戶私鑰 UKi,該密鑰盲化算法為用戶生成盲化私鑰(z′,UK′i)和 轉換密鑰 tk ,該算法由數據使用者執行。
Decryptout(pp, CT, (z′, UK′i)): 輸 入 公 共 參 數pp、 密文 CT、 盲化私鑰 (z′,UK′i),該外包解密算法生成外包密文 CT′,該算法由云服務器執行。
Decrypt(pp, CT′, tk): 輸入公共參數 pp、 外包解密密文 CT′、 轉換私鑰 tk,該解密算法輸出明文消息m,該算法由數據使用者執行。
定義1 對所有攻擊者 A來說,若能以可忽略的優勢贏得與挑戰者 C之間的游戲,那么本方案能夠實現語義安全性,即明文的機密性。
參數建立階段 (Setup) :挑戰者 C執行Setup(λ)和AuthSetuppp,i算法生成公共參數pp和權威機構的公共參數 PKi, 并將其發給攻擊者 A。
密鑰詢問階段 ( Key Query): 攻擊者 A 發送對于屬性向量z的密鑰請求,挑戰者 C 執 行KeyGen(pp,SKi, PKi, GID,z)為 攻擊者生成如下密鑰 UKi,GID,z。注意在此階段,允許攻擊者獲取部分 U Ki,GID,z,且在獲得密鑰后允許執行 K eyGenout(pp, UKi)進行密鑰盲化。
密文生成階段 ( Ciphertext) : 攻擊者 A 選擇兩個等長的消息mc,c∈{0, 1}以 及發送訪問向量x0、x1,挑戰者 C 執行E ncrypt(pp, PKi,x,m)生 成C Tc。
猜測階段 Guess: 攻擊者 A輸出一個對消息mc的 猜測比特c′, 若c=c′, 則攻擊者 A贏得該游戲。
SETUP(λ):該算法由共同權威機構執行。輸入安全參數 λ,該算法首先選取一個雙線性群BG=(p,G1,G2,GT,e), 其 中,g1,g2分 別 表示 群G1和G2的 一個生成元。隨后,該算法隨機從Zp選取一 個n+1行n列 的 矩 陣,一 個n+1行n+1列 的矩陣。其次,選取n+2個哈希函數H,H1,···,Hn+1:{0,1}*→Zp。最后,該算法生成公共參數
AuthSetup(pp,i):該算法由每個權威機構生成各自的公私鑰。輸入公共參數 pp、權威機構索引i,該算法首先從Zp選 取一個n+1行n+1列的矩陣、一 個n+1維 向 量 αi∈Zp、一 個 數βi,生成和存儲其私鑰 SKi=(Si, αi, βi),并公開其公鑰

當用戶的屬性向量和訪問向量正相交時,即〈x,z〉=0表示用戶的屬性集合滿足密文中的訪問控制,則以上等式,其中,隨后,用戶可以正確恢復消息m=C′/At?。
為了能夠證明本方案的語義安全性,定義了一系列的游戲G ame如下。
Game0:該游戲與定義1 中一樣,模擬的是方案真實的安全游戲。
Game1:該游戲除了隨機預言機回答的詢問不一樣外,其他均與游戲 G ame0和一樣。具體來說隨機預言機模擬的過程如下:挑戰者 C從Zp中隨機選取一個長度為n的 向量r,計算h=Br,然后存儲h的值去回答攻擊者的隨機預言機詢問。

Game4: 該游戲幾乎與游戲 Game3一樣,除了加密消息時隨機選取的群中的元素。
Game5: 該游戲幾乎與游戲 Game4一樣,除了選取的訪問向量x被一個隨機向量x*取代。注意該游戲從攻擊者 A的角度無法區分加密的消息,因此無法以一定的優勢贏得該游戲。
引理 1 游戲G ame0和 游戲G ame1的不可區分性
如果存在一個攻擊者 A能夠區分游戲 Game0和游戲 Game1, 那么就存在一個挑戰者 C能夠以不可忽略的優勢解決線性判定性問題 (decisional linear problem)。
當h∈Span(B)h∈Span(B)時,密鑰和隨機預言機響應的分布與游戲 G ame1完全相同,而在另一種情況下,其分布與游戲 Game0完 全相同。通過k-判定性線性問題,可以得知攻擊者 A只能夠以可忽略的優勢區分這兩個游戲。
引理 2 游戲 Game2,j-1,3和 游戲 Game2,j,1的不可區分性
如果存在一個攻擊者 A 能夠區分游戲Game2,j-1,3和 游戲 G ame2,j,1,那么就存在一個挑戰者C能夠以不可忽略的優勢解決線性判定性問題。
參數建立階段 ( Setup) :挑戰者 C 如實際方案中一樣隨機選擇一個長度為n+1的 向量 αi∈Zp、一個隨機數t? ∈Zp、 隨機矩陣R,a⊥,Si,V,生成公開參數以及權威機構的公鑰,。
密鑰詢問階段( Key,Query) :輸入第m個密鑰詢問,挑戰者 C為攻擊者生成如下密鑰:
式中,r表示從Zp中選取的隨機值組成的一個長度為n的向量。注意攻擊者在拿到密鑰后可以進行密鑰盲化,模擬外包的過程。
密文生成階段( Ciphertext) : 攻擊者 A 選擇兩個等長的消息mb,b∈{0,1}, 挑戰者 C隨 機選擇一個 γ,計算如下:
當h∈Span(B)時,密鑰和隨機預言機響應的分布與游戲 Game2,j-1,3完全相同,而在另一種情況下,其分布與游戲 Game2,j,1完 全相同。通過k-判定性線性問題,可以得知攻擊者 A只能夠以可忽略的優勢區分這兩個游戲。
引理 3 游戲G ame2,j,1和 游戲G ame2,j,2不可區分性
如果存在一個攻擊者 A能夠區分游戲Game2,j,1和游戲 Game2,j,2, 那么就存在一個挑戰者 C 能夠以不可忽略的優勢解決線性判定性問題。
以第j個密鑰,其中t?是由挑戰者C從Zp中 隨機采樣的。在第j個密鑰詢問中,攻擊者A向挑戰者 C 發送有關密鑰的屬性向量z,挑戰者C執行如下操作:
從以上可以看出Si和的分布顯然是相同的。此外,還可以得知若密文和權威機構的公鑰是使用而 不是Si生成的,則二者沒有區別。具體來說,對于公鑰的生成如下:
對于密文生成如下:
式中,h=Br+(t/n)a⊥;r∈;t∈Zp。可以得到
因此,用戶私鑰可以得到:
這樣可以輕易得知游戲G ame2,j,2的精確分布。
引理 4 游戲G ame2,j,2和 游戲G ame2,j,3的不可區分性
如果存在一個攻擊者 A能夠區分游戲Game2,j,2和游戲 Game2,j,3, 那么就存在一個挑戰者 C能夠以不可忽略的優勢解決k-線性判定性問題(decisional linear problem)。
參數建立階段( Setup):挑戰者 C如實際方案中一樣隨機選擇一個長度為n+1的 向量 αi∈Zp,一個隨機數t∈Zp, 隨機矩陣R,a⊥,Si,V,生成公開參數以及權威機構的公鑰。
密鑰詢問階段 (Key,Query) :輸入第m個密鑰詢問,挑戰者 C為攻擊者生成如下密鑰:
式中,r表示從Zp中選取的隨機值組成的一個長度為n的向量。注意攻擊者在拿到密鑰后可以進行密鑰盲化,模擬外包的過程。
密文生成階段 ( Ciphertext) : 攻擊者 A 選擇兩個等長的消息mb,b∈{0,1}, 挑戰(者 C 隨 機)選擇一個 γ,計算如下:
當h∈Span(B)時,密鑰和隨機預言機響應的分布與游戲 Game2,j-1,3完全相同,而在另一種情況下,其分布與游戲 Game2,j,2完 全相同。通過k-判定性線性問題,可以得知攻擊者 A只能夠以可忽略的優勢區分這兩個游戲。
引理 5 游戲 Game2,q,3和 游戲 Game3的不可區分性
如果存在一個攻擊者 A能夠區分游戲Game2,q,3和游戲 Game3, 那么就存在一個挑戰者 C能夠以不可忽略的優勢解決線性判定性問題。
當a∈Span(R)時,密鑰和隨機預言機響應的分布與游戲Game3完全相同,而在另一種情況下,其分布與游戲 Game2,q,3完 全相同。通過k-判定性線性問題,可以得知攻擊者 A只能夠以可忽略的優勢區分這兩個游戲。
引理 6 游戲 Game3和 游戲 Game4的不可區分性
如果存在一個攻擊者 A能夠區分游戲 Game3和游戲 Game4, 那么就存在一個挑戰者 C 能夠以不可忽略的優勢解決線性判定性問題。
證明:挑戰者 C隨機化選取一個矩陣R,a⊥,使得RT a⊥=0 , 一個從Zp中選取的隨機值組成的一個長度為n+1隨機向量 α,一個從Zp中選取的隨機數s? 。隨后,挑戰者 C 計 算α ?=α-a⊥s?。
參數建立階段 ( Setup) :挑戰者 C如實際方案中一樣生成公開參數以及權威機構的公鑰
密鑰詢問階段 Key,Query: 挑戰者 C 為攻擊者生成如下密鑰:
注意在此階段,攻擊者在拿到密鑰后可以進行密鑰盲化,模擬外包的過程。
密文生成階段 ( Ciphertext) : 攻擊者 A 選擇兩個等長的消息mc,c∈{0,1}, 挑戰者 C 隨機選擇一個向量 γ,一 個 隨 機 數 γ? ,令隨后計算由以上公式可以得知元素m′很大概率是群中的一個隨機值。那么,密文可以被計算如下:
很容易可以得知游戲 Game3被準確模擬出來,攻擊者 A只能夠以可忽略的優勢區分這兩個游戲。
引理 7 游戲 Game4和 游戲 Game5的不可區分性
如果存在一個攻擊者 A能夠區分游戲 Game4和游戲 Game5, 那么就存在一個挑戰者 C能夠以不可忽略的優勢解決線性判定性問題。
證明:挑戰者 C 可以生成如下密文:

屬性隱私:攻擊者很容易從密文中獲取訪問控制屬性的隱私,這是因為對于基于屬性相關的密碼體制來說,訪問控制通常以明文的形式附貼在密文上。在本方案中,將屬性和訪問控制轉化成屬性和訪問向量,這兩種向量分別用于私鑰和密文的生成。在密文生成過程中,訪問向量不必以明文的形式附貼在密文上,而是隱藏在密文中,從而避免了攻擊者從密文中獲取訪問控制屬性的隱私的可能。
從表1 可以得知,文獻[11]僅支持細粒度訪問控制,而不支持權威去中心化、訪問控制的屬性隱私保護和高效的數據訪問;文獻[12-13, 16-17, 19]支持細粒度訪問控制和權威去中心化,而不支持訪問控制的屬性隱私保護和高效的數據訪問;文獻[14, 15, 35]支持細粒度訪問控制、權威去中心化、訪問控制的屬性隱私保護,但不支持高效的數據訪問;文獻[18]支持細粒度訪問控制、權威去中心化、高效的數據訪問,但不支持訪問控制的屬性隱私保護;本方案支持細粒度訪問控制、權威去中心化、訪問控制的屬性隱私保護和高效的數據訪問。

表1 基于多權威的屬性基的方案對比
由于文獻[14, 15, 35]與本方案大部分的功能實現相類似,因此本部分僅將文獻[14, 15, 35]與本方案進行理論開銷對比分析。表2 展示了多權威去中心化屬性隱藏的屬性基方案的各算法計算開銷對比。m,n分別代表權威機構的個數和用戶屬性的個數;e0,e1分 別表示在群G1,GT中一個指數運算的執行時間,p指的是一個對運算的執行時間。|G1|和|GT|分 別代表G1和GT中元素的長度。

表2 相關方案各算法計算開銷對比
從表2 可以得知,在以上所有多權威去中心化屬性隱藏的屬性基方案中,每一個權威機構參數建立算(AuthSetup)的計算開銷都與系統中用戶的屬性個數相關;用戶私鑰生成算法(KeyGen)的計算開銷與用戶屬性的個數和權威機構的個數有關;加密算法(Encryption)的計算開銷與權威機構個數和屬性個數都相關;在解密算法(Decryption)的計算開銷方面,只有本方案能夠實現高效的解密,即其開銷與用戶的屬性個數和權威機構的個數無關。此外,可以很明顯觀察到在密鑰生成和解密方面,本方案相較于其他方案計算開銷最低。
從表3 中可以得知,在以上方案中,存儲權威機構生成的公開參數開銷與屬性個數和權威機構的個數呈正相關;存儲用戶私鑰的開銷同樣與屬性個數和權威機構的個數相關;文獻[14-15, 35]存儲密文的開銷與屬性個數和權威機構的個數相關,而本方案的密文存儲開銷僅與屬性個數相關。此外,很容易從表3 觀察到本方案用戶私鑰和密文的存儲開銷相較于其他方案的存儲較低。

表3 相關方案參數存儲開銷對比
綜上所述,本方案在密鑰生成和解密的計算開銷相較于其他兩個方案明顯較低。在存儲用戶私鑰和密文的開銷方面,本方案相較于其他方案同樣明顯較低。
由于本方案使用基于屬性向量和訪問向量來實現策略隱藏,而文獻[14-15]方案都是基于線性秘密共享矩陣或訪問樹的訪問結構實現訪問策略隱藏。通過以上理論分析可以發現,本方案在計算效率和存儲效率存在一定的優勢。因此,本部分主要對屬性個數和權威機構個數對本方案的各算法計算性能進行評估。本方案在64 bit 的Ubuntu 118.04.6 LTS版本中安裝python 3.5 的運行環境,使用的是Charm-Crypto 0.43 的PBC 安裝包[35],本實驗是基于512位基本字段的對稱曲線SS512。電腦硬件的配置如下: Intel Core i9-9900K CPU@3.60GHz*16,Graphics:GetForce RTX 2 070 Super/PCIe/SSE2,32 GB 內存。
圖2 表示的是當權威機構的個數固定為5 時,本方案中相應算法運算時間隨著屬性向量的長度的變化。圖3 表示的是屬性向量的長度固定為5 時,本方案中相應算法運算時間隨著權威機構的個數的變化。從圖2 中可以看出,當權威機構的個數固定時,本方案的AuthSetup,Encryption 和KeyGen 算法的計算時間隨著屬性向量的長度呈線性關系,而Decryption 算法的計算時間與屬性向量的長度無關。

圖3 各算法隨權威機構個數變化的計算開銷
從圖3 中可以看出,當屬性向量的長度固定時,本方案的Encryption 和KeyGen 算法的計算時間隨著權威機構的個數呈線性關系,而AuthSetup和Decryption 算法的計算時間與屬性向量的長度無關。
綜上所知,本方案的解密計算開銷基本保持恒定,表明本方案能夠使移動用戶在資源受限的條件下依然可以高效訪問密文數據。
本文針對移動群智場景中數據共享過程存在安全、隱私和效率的問題,提出了一個基于屬性隱藏的高效去中心化的移動群智數據共享方案。本方案能夠實現細粒度的授權訪問、訪問控制的隱私保護、權威去中心化以及高效數據訪問。并通過嚴格的安全性分析和性能分析,證明了本方案在應用到移動群智數據共享場景中的安全性、高效性和可行性。本方案訪問控制的表達性較弱,即僅支持與門的訪問控制的向量轉化。未來工作將基于本方案進行擴展,設計出支持可搜索、可撤銷的方案。