荀艷梅,陳燕俐,彭春春
(南京郵電大學(xué)計算機學(xué)院、軟件學(xué)院、網(wǎng)絡(luò)空間安全學(xué)院,江蘇 南京 210023)
云計算作為一種遠(yuǎn)程服務(wù)模式,能夠給用戶提供存儲空間和計算能力。為了保證用戶隱私,防止數(shù)據(jù)的泄露,數(shù)據(jù)通常被加密后存儲在云端。傳統(tǒng)的密碼技術(shù)雖然能夠確保數(shù)據(jù)在云端的保密存放,但卻無法實現(xiàn)密文之間的運算和處理。全同態(tài)加密(Fully Homomorphic Encryption,F(xiàn)HE)不僅可滿足傳統(tǒng)加密的功能,并可在不知道密鑰的情況下,對密文進(jìn)行任意計算。自2009年Gentry[1]基于理想格提出第一個真正意義上的全同態(tài)加密方案后,全同態(tài)加密研究引起了學(xué)者和專家的極大關(guān)注。在安全性假設(shè)和效率等方面,產(chǎn)生了很多FHE實現(xiàn)和優(yōu)化方案,例如 BGV12[2]、GSW13[3]、BV14[4]等。
屬 性 基 加 密 ( Attribute?Based Encryption,ABE)[5]作為一種公鑰加密,既可以滿足多用戶需求,又可以設(shè)置用戶的訪問權(quán)限,有著廣泛的應(yīng)用場景。ABE可以分為密鑰策略屬性基加密(Key?Policy ABE,KP?ABE) 和密文策略屬性基加密(Ciphertext?Policy ABE,CP?ABE),在 KP?ABE 方案中,密鑰與訪問策略相關(guān),密文與屬性集相關(guān),當(dāng)且僅當(dāng)屬性滿足訪問策略時才可解密密文。而CP?ABE正與之相反。2013年,Gentry等[3]結(jié)合 FHE和文獻(xiàn)[6]中的KP?ABE方案,首次構(gòu)造了屬性基全 同 態(tài) 加 密 ( Attribute?Based Fully Homomorphic Encryption,ABFHE)方案,該方案可在實現(xiàn)屬性基加密的同時,對同屬性集密文進(jìn)行計算。此后圍繞計算效率、訪問策略靈活性、困難性假設(shè)等,專家們提出了一系列的ABFHE方案。
然而傳統(tǒng)的FHE方案只能對相同公鑰加密的密文(所有密文屬于同一個用戶)進(jìn)行同態(tài)運算,這在很大程度上限制了FHE方案的實際應(yīng)用,在許多的現(xiàn)實多用戶場景中,通常需要對多個用戶上傳到云端的用不同密鑰加密的數(shù)據(jù)進(jìn)行安全的多方聯(lián)合計算。因此 López?Alt等[7]提出多密鑰全同態(tài)加密(Multi?Key Fully Homomorphic Encryption,MKFHE)的概念,支持對不同用戶(不同密鑰)的密文進(jìn)行任意的同態(tài)運算,且運算之后的結(jié)果必須由參與計算的所有用戶聯(lián)合解密,可以較好地解決多用戶密文進(jìn)行同態(tài)計算的問題。
2016年,將MKFHE和ABFHE相結(jié)合,Brakerski等[8]提出多策略(即多密鑰)全同態(tài)屬性加密方案(Multi?Target Homomorphic ABE,MT?HABE),實現(xiàn)了不同訪問策略下對應(yīng)的不同屬性集下加密密文的同態(tài)運算。此同態(tài)計算結(jié)果需要聯(lián)合所有擁有匹配這些不同屬性集的訪問策略密鑰的用戶才能解密。但Brakerski等的方案是單跳(Single?hop)型的,即需要提前對參與同態(tài)計算用戶的數(shù)量進(jìn)行設(shè)置,并且在運算過程中無法實現(xiàn)新用戶的加入。2017年,Hiromasa等[9]提出了具有多跳性質(zhì)的多策略目標(biāo)屬性基全同態(tài)加密方案,同態(tài)運算后輸出的密文能夠與新加入?yún)⑴c方的密文重新進(jìn)行運算,即任何參與方都可以實時、動態(tài)地加入到密文運算的過程中,但該方案密文尺寸較大,密文同態(tài)計算效率較低。
針對上述問題,本文在Peikert等[10]提出的多跳MKFHE的基礎(chǔ)上,結(jié)合KP?ABFHE,提出了一種基于LWE(Learning With Error)問題的支持多跳多策略屬性基全同態(tài)短密文加密方案,主要貢獻(xiàn)如下:
(1)方案首先是基于KP?ABE,根據(jù)屬性集合x對消息進(jìn)行加密,并根據(jù)訪問策略f生成密鑰。只有當(dāng)f(x)=0時,密文才能通過密鑰解密,訪問策略是基于布爾電路,可實現(xiàn)對數(shù)據(jù)的細(xì)粒度訪問。其次方案可實現(xiàn)滿足不同訪問策略的不同屬性集密文進(jìn)行全同態(tài)計算的功能,并具有更短的密文和更高的同態(tài)計算效率,密文擴展更容易實現(xiàn)。
(2)方案具有多跳性質(zhì),即任何參與方都可以實時、動態(tài)地加入到密文運算的過程中,同態(tài)運算后輸出的密文能夠與新加入?yún)⑴c方的密文再次進(jìn)行同態(tài)運算,即使新加入密文所對應(yīng)屬性集不滿足已有的訪問策略集。
(3)方案安全性基于LWE問題,證明了選擇屬性下的選擇明文攻擊不可區(qū)分性(INDistinguishability under Chosen Plaintext Attack,IND?CPA)安全性。
屬性基加密方案可實現(xiàn)加密數(shù)據(jù)的細(xì)粒度的訪問控制,但不支持對加密數(shù)據(jù)的計算。2013年,Gentry等[3]采用近似特征向量方法,實現(xiàn)了無需評估密鑰的全同態(tài)加密方案GSW13,并在此基礎(chǔ)上給出第一個屬性基全同態(tài)加密方案的實現(xiàn)思路,方案采用近似特征向量方法,無需評估密鑰,既可以設(shè)置訪問權(quán)限,又可以對密文進(jìn)行同態(tài)評估,但同態(tài)性受到一定限制,該方案只能對具有相同屬性集的密文進(jìn)行同態(tài)計算。2016年,Clear等[11]在標(biāo)準(zhǔn)模型中提出了一個ABFHE方案,該方案可以評估無限深度的電路,但是電路的輸入數(shù)量受到限制。2017年,Tan等[12]為解決云服務(wù)提供商外包數(shù)據(jù)計算問題,提出了一種基于環(huán)上誤差學(xué)習(xí)(Ring?LWE,R?LWE)的密文策略屬性基同態(tài)加密(Ciphertext Policy?Attribute Based Homomorphic Encryption,CP?ABHER?LWE)方案,以支持多用戶場景下具有細(xì)粒度訪問控制的外包云數(shù)據(jù)計算。該方案將ABE方案融入同態(tài)加密方案中,以提供加密數(shù)據(jù)的計算和存儲的細(xì)粒度訪問控制。該方案大大減少了計算時間和密文大小,提高了企業(yè)和云服務(wù)提供商之間的實際效率,但是只能對相同策略的密文進(jìn)行計算,不能滿足多策略應(yīng)用環(huán)境。2021年,Liu等[13]基于LWE問題提出了一種屬性基全同態(tài)短密文加密方案,該方案通過對屬性進(jìn)行分類,并使用小工具矩陣,消除了密文對屬性個數(shù)的依賴,密文不再隨著屬性數(shù)的增加而增加,減少了加解密時間。然而方案只支持相同策略下的密文計算,且訪問策略為與門,不能滿足更靈活的訪問控制要求。
多密 鑰 全 同 態(tài) 加 密 (Multi?Key Fully Homomorphic Encryption,MKFHE)支持對不同用戶(密鑰)的密文數(shù)據(jù)進(jìn)行處理,處理后的結(jié)果可由所有參與計算的用戶聯(lián)合解密,其相對于傳統(tǒng)的(單密鑰)全同態(tài)加密,更加適用于云環(huán)境下多用戶數(shù)據(jù)的隱私保護(hù)和處理,應(yīng)用范圍更廣,如密文檢索、安全多方計算、隱私保護(hù)協(xié)議[14]等。
MKFHE分為3種類型,第一種類型為López?Alt等[7]根據(jù) Hoffstein 等[15]提出的 NTRU 方案首次提出的NTRU型MKFHE方案,以及隨后出現(xiàn)了很多優(yōu)化方案,例如 DHS16[16]、CO17[17]等。 第二種類型是 Chen 等[18]將 Brakerski等[2]于 2012 年提出的BGV12方案擴展到多密鑰設(shè)置,提出了第一個BGV型多跳的MKFHE方案CZW17,以及隨后出現(xiàn)了很多優(yōu)化方案[19-20]。 第三種類型為 GSW 型 MKFHE方案。 2015 年,Clear等[21]將 GSW13[3]方案擴展到多密鑰設(shè)置,首先將單個用戶密文進(jìn)行擴展,使其對應(yīng)所有參與計算的用戶,然后再進(jìn)行同態(tài)計算,最終通過所有用戶的聯(lián)合密鑰對密文進(jìn)行解密,提出了基于LWE問題的MKFHE方案CM15,但是擴展過程較復(fù)雜。 2016年,Mukherjee等[22]優(yōu)化了 CM15中的擴展算法,提出了新的基于 LWE問題的MKFHE方案MW16,該方案允許對多密鑰密文進(jìn)行一輪的分布式解密,可進(jìn)一步構(gòu)造兩輪多方計算協(xié)議,且具有更低的計算復(fù)雜度和更小的密文尺寸。然而CM15和MW16方案是單跳(Single?hop)的,需要提前對參與同態(tài)計算用戶的數(shù)量進(jìn)行設(shè)置,并且在運算過程中無法實現(xiàn)新用戶的加入。2016年,Peikert等[10]提出了多跳(Multi?hop)型 MKFHE 方案,同態(tài)運算后輸出的密文能夠與新加入?yún)⑴c方的密文重新進(jìn)行運算,即任何參與方都可以實時、動態(tài)地加入到密文運算的過程中,但是參與方的數(shù)量受到一定限制。
為了解決多用戶具有細(xì)粒度訪問控制的數(shù)據(jù)計算問題,2016年,Brakerski等[8]提出了兩種類型的訪問策略參與同態(tài)計算的目標(biāo)屬性基全同態(tài)加密方案(Targeted Homomorphic Attribute?Based Encryption,T?HABE):單策略 T?HABE(Single Target Homomorphic ABE,ST?HABE) 和 多 策 略 T?HABE (Multi Target Homomorphic ABE,MT?HABE)。 ST?HABE 方案可對屬性滿足某個單一策略的密文進(jìn)行同態(tài)計算,而在MT?HABE中,一組策略與同態(tài)計算相關(guān),可以在屬性滿足策略集合中某個策略的密文之間進(jìn)行處理。顯然MT?HABE方案能滿足更多的應(yīng)用場景,可對不同用戶(密鑰)下加密的密文進(jìn)行計算,每個用戶根據(jù)訪問策略生成自己的私鑰,即屬于多密鑰全同態(tài)加密方案,但是該方案是單跳的,同態(tài)計算過的密文不能再次與新密文進(jìn)行同態(tài)計算。2017年,Hiromasa等[9]將 Peikert等[10]提出的多跳 MKFHE 方案中第一個大密文小密鑰方法與ST?HABE方案結(jié)合,提出了具有完全動態(tài)同態(tài)計算的MT?HABE,可在同態(tài)計算期間將任意附加密文作為輸入,實現(xiàn)對不同訪問策略對應(yīng)的不同屬性下的加密密文的同態(tài)計算。然而該方案具有較大的密文,密文計算時比較復(fù)雜,需要對密文中每一項進(jìn)行計算,有較低的計算效率。
本文用?表示自然數(shù)集,用?表示整數(shù)集,用?表示實數(shù)集。對于任何正整數(shù)d>0,[d]表示{1,2,…,d}。 設(shè)S是一個集合,P是S上的概率分布。a←S表示a∈S從S中隨機均勻采樣,b←P表示b∈S從P中采樣。符號negl(λ)表示λ∈? 的可忽略函數(shù)集。向量由粗體小寫字母書寫,向量x的第i個元素由xi表示?!瑇‖∞表示向量x的l∞范數(shù)(最大范數(shù))。<x,y>表示兩個向量的內(nèi)積。矩陣表示為粗體大寫字母,矩陣X的第i列向量由X[i]表示。對于矩陣的l∞范數(shù)定義為符號XT表示X的轉(zhuǎn)置。 對于兩個矩陣表示矩陣A和B串聯(lián)生成的矩陣。In表示n×n維單位矩陣,0n×m表示所有項都為0的n×m維矩陣。 對于任何表示第i個維度為n的標(biāo)準(zhǔn)基向量。
m1×n1維矩陣A和m2×n2維矩陣B的張量積?是由m2×n2個區(qū)塊組成的m1m2×n1n2維矩陣,其第 (i,j) 個區(qū)塊為ai,jB,其中ai,j是矩陣A的第(i,j) 個元素。
對于任何標(biāo)量r∈?,有
根據(jù)張量積的混合積屬性,有
對于任何具有兼容維數(shù)的矩陣A,B,C,D,有
誤差學(xué)習(xí)(Learning With Errors,LWE)問題由Regev[23]提出,已經(jīng)被證明為一個難解的多項式復(fù)雜程度的非確定性( Non?Deterministic Polynomial,NP)問題。
定義1判定性 LWE(Decisional LWE,DLWE)問題。 設(shè)安全參數(shù)λ,參數(shù)n=n(λ),q=q(λ)≥2為整數(shù)模數(shù),χ=χ(λ)為?上的高斯分布。D0=其中其中χ。 DLWE問題就是上述兩個分布:D0,D1不可區(qū)分。
對于任意模數(shù)q,l=「logq?,行向量矩陣
函數(shù)g-1:?q→?l,表示將一個數(shù)分解為二進(jìn)制數(shù),對于任意a∈ ?q,列向量x=g-1(a) 是{0,1}向量,并且有<g,x>=a。 符號[a]g-T=g-1[a]T,輸出一個二進(jìn)制的行向量,滿足[a]g-T·gT=[a]。 符號(In?g-1)[A]表示對矩陣A的每個元素進(jìn)行二進(jìn)制分解,得到行擴張的矩陣,有(In?g)·(In?g-1)[A]=A。類似地,[A](In?g-T) 表示對矩陣A的每個元素進(jìn)行二進(jìn)制分解,得到列擴張的矩陣,有[A](In?g-T)·(In?gT)=A。
定理1生成陷門[24]。存在一個有效的算法TrapGen(1n,q,m),對 于 所 有 的m≥m0,m0=O(nlogq),輸出一個陷門矩陣對其中A在統(tǒng)計上接近于均勻分布,并且對于給定的τ≥τ0, 給定可以得到
定理 2高斯采樣[24]。m,n,q,N為選取參數(shù),滿足隨機選取矩陣A∈在統(tǒng)計上接近于均勻分布,對于所有的矩陣可得到分布其中且對于所有的的最后N個坐標(biāo)的邊緣分布統(tǒng)計接近于{0,1}N上的均勻分布。
定義 2[25]令令B=[B1,B2,…,Bl]。 假設(shè)訪問策略f∈{0,1}l→ {0,1} 的電路深度為d,且只包含與非門電路。將B1,B2,…,Bl接入電路的線路端口,f中每個線路端口w,u,v為其的左右輸入,定義則可以遞歸到矩陣B,算法表示為
推 論 1[8]令則存在一個多項式時間的算法EvRelation,令那么有(Bf-
2016年,Brakerski等[8]提出目標(biāo)屬性基全同態(tài)加密方案T?HABE,其同態(tài)計算依賴訪問策略,本文提出的方案也是以此為基礎(chǔ)的,因此下面給出T?HABE的形式化定義和安全模型。
定義3T?HABE。 T?HABE 方案由5個算法構(gòu)成,分別是 Setup,Enc,KeyGen,Eval和 Dec,具體如下:
Setup(1λ) → (pp,psk)。 算法以安全參數(shù)λ(另外還包括訪問策略電路深度等參數(shù))作為輸入,輸出公共參數(shù)pp和主密鑰msk。
Enc(pp,μ,x) → (ct,x)。 算法以公共參數(shù)pp、明文μ和屬性集x作為輸入,輸出一組原始密文和屬性集 (ct,x)。
KeyGen(msk,f) →skf。 算法以主密鑰msk和訪問策略f作為輸入,并輸出私鑰skf。
Eval(pp,F(xiàn),ct(1),…,ct(k),g) →ct(F)。 將公共參數(shù)pp、 訪問策略集F、原始密文ct(1),…,ct(k)和同態(tài)運算函數(shù)g作為輸入,輸出g對應(yīng)的同態(tài)密文ct(F)。
Dec(skF,ct(F)) →μ。 算法以密鑰skF={skf:f∈F} 和密文ct(F)作為輸入,輸出明文μ∈ {0,1}。
定義4T?HABE 的正確性。令{Fλ}λ∈N為訪問策略類,{Gλ}λ∈N為同態(tài)計算類,如果滿足以下條件,那么方案 T?HABE= {Setup,Enc,KeyGen,Eval,Dec}是正確的。
令Setup(1λ) → (pp,psk),考慮一系列策略集F?Fλ,對應(yīng)的私鑰集為個明文和屬性且任意x(i),都存在f∈F,有f(x(i))=0,密文對于一些g∈G,計 算滿 足
定義5如果對于多項式時間的攻擊者在如下游戲中的優(yōu)勢是可忽略的,那么這個方案在選擇安全模型中是選擇明文攻擊下的不可區(qū)分(IND?CPA)安全的:
目標(biāo)。攻擊者聲明一個目標(biāo)屬性x?,且發(fā)送給挑戰(zhàn)者。
初始設(shè)置。 挑戰(zhàn)者利用Setup(1λ,1dF,1dG) 生成pp,msk,并且將pp發(fā)送給攻擊者。
查詢1。攻擊者通過向挑戰(zhàn)者發(fā)送fi函數(shù)來進(jìn)行多項式密鑰查詢。一旦挑戰(zhàn)者收到這些函數(shù)后,挑戰(zhàn)者會利用KeyGen(msk,fi) 生成一個密鑰skfi,且當(dāng)fi(x?)=1時,其將發(fā)送skfi返回給攻擊者,否則發(fā)送⊥。
挑戰(zhàn)。攻擊者發(fā)送一對等長的消息μ0,μ1給挑戰(zhàn)者。 挑戰(zhàn)者隨機選擇b∈ {0,1}, 并利用Enc(pp,μb,x?) 算法將消息μb生成挑戰(zhàn)密文ct?,最后挑戰(zhàn)者將ct?發(fā)送給攻擊者。
查詢2。攻擊者進(jìn)行多項式密鑰查詢,與查詢1階段相同。
猜測。攻擊者輸出關(guān)于b的猜測b′∈{0,1}。
如果b=b′,就可以稱攻擊者贏得了游戲。在游戲中,攻擊者的優(yōu)勢定義為Adv(λ)=如果對于任何多項式時間里的攻擊者,有Adv(λ)=negl(λ), 則認(rèn)為方案 T?HABE是選擇性安全的。
與之前的基于LWE的屬性基加密相同,方案滿足f(x)=0時才可解密,且所有查詢都必須滿足fi(x?)=1。
本方案是在Brakerski等[8]提出的單跳多策略目標(biāo)屬性基全同態(tài)加密方案T?HABE上構(gòu)建的多跳多策略屬性基全同態(tài)加密方案(簡稱dMTHABE方案),在所提出的方案中,同態(tài)密文可與新加入密文再次進(jìn)行同態(tài)操作,實現(xiàn)了多跳功能。
應(yīng)用場景模型如圖1所示。利用ABE的性質(zhì),設(shè)策略集F={fi}i,屬性授權(quán)中心(AA)為每個訪問者(User)根據(jù)該用戶的訪問策略fi分配密鑰skfi。數(shù)據(jù)提供者(Owner)可以用屬性集xj加密共享數(shù)據(jù)μj,將密文 (ctj,xj) 上傳至服務(wù)器(Server)。 只有訪問者的訪問策略與密文的屬性集合滿足一定關(guān)系,即fi(xj)=0時,訪問者才可以解密該密文,查看共享數(shù)據(jù)。利用MKFHE的性質(zhì),服務(wù)器可以對不同屬性集合下加密的密文進(jìn)行同態(tài)操作,得到新的同態(tài)密文ct(F)。 此同態(tài)計算結(jié)果需要聯(lián)合所有擁有匹配這些不同屬性集合的訪問策略密鑰{skfi}i的用戶才能解密,得到同態(tài)計算明文g({μj}j)。 當(dāng)有新的數(shù)據(jù)共享者加入時,新加密的密文可以直接與以前的同態(tài)計算密文再進(jìn)行同態(tài)操作,并能正確解密。
Setup系統(tǒng)初始化算法由屬性授權(quán)中心(AA)運行,生成公共參數(shù)pp和主密鑰msk。 首先根據(jù)4.1節(jié)選取 DLWE 參數(shù)n,q,χ,有為B有界的錯誤分布。
圖1 應(yīng)用場景模型
輸出公共參數(shù)pp=(A,B0,B,Bx,v,H),主密鑰以下算法都默認(rèn)以pp為輸入。
KeyGen密鑰生成算法由AA運行,根據(jù)主密鑰msk和每個訪問者(User)的訪問策略f生成用戶密鑰skf和公開拓展密鑰ek,具體過程如下:
(1)生成用戶密鑰skf
(2)生成拓展密鑰ek
A′R+(Im+N+1?tf?g)(誤差為mB)。其次,對于每個選 取計算并且設(shè)置選取S(1),計算
最終輸出用戶私鑰skf=rf以及公開的拓展密鑰ek=(P,D)。
Enc加密算法由數(shù)據(jù)提供者(Owner)運行,根據(jù)明文μ和屬性集x生成原始密文,并將密文上傳到云服務(wù)器(Server),具體過程如下:
輸出原始密文ct=(x,C,Cx)。
Eval同態(tài)計算算法由Server運行,根據(jù)多個Owner上傳的原始密文、訪問策略集F和同態(tài)運算函數(shù)g生成同態(tài)密文ct(F), 且對于每個i∈[k], 都存在fj滿足fj(xi)=0,具體過程如下:
(1) 采用推論 1 中EvRelation(f,x,Bx) 算法得到矩陣H,令并且計算
則對于訪問策略fj對應(yīng)的私鑰rfj,令滿足
得到fj評估密文
(2)再對這些處理過的評估密文同態(tài)計算g函數(shù),輸出最終同態(tài)密文ct(F)。 且當(dāng)同態(tài)密文再次進(jìn)行同態(tài)運算時,需將同態(tài)密文先進(jìn)行密文擴展,詳細(xì)過程見3.2節(jié)。
Dec解密算法由多個User聯(lián)合解密,對于F={f1,…,fK}中的每個訪問策略,給定密鑰skf1,…,skfK和同態(tài)密文對于每個j∈ [K],有不同的則有私鑰具體過程如下:
密文C′擴展具體過程如下。
計算
最終生成
設(shè)密文組ct1=C1,ct2=C2分別對明文μ1,μ2∈{0,1} 加密,對應(yīng)的隨機矩陣為R1,R2以及對應(yīng)的私鑰為
(1)同態(tài)加法
滿足同態(tài)加法性質(zhì)。
(2)同態(tài)乘法
滿足同態(tài)乘法性質(zhì)。
正確性分析完畢。
DLWE參數(shù)n,q,l根據(jù)決定方案的正確性和安全性的條件進(jìn)行選取。
需要設(shè)置n≥λ和q≤ 2n,且設(shè)置l,K=ploy(λ)。 當(dāng)同態(tài)評估僅由NAND門組成的深度為dG的電路,且在最大深度為dF的K個不同策略下估算最壞情況下的噪聲增長。本文定義Eval和KeyGen算法輸出的密文C和擴展密鑰(P,D)的最大誤差為Bmax,即Bmax=max(BC,BP,BD)。 從第 3節(jié)可知,對于某些多項式poly(·),當(dāng)評估一個NAND門生成密文的噪聲最大為
同樣從第3節(jié)可知,對于某些多項式poly′(·),密文擴展算法生成的擴展密文的噪聲最大為
因為評估密文的最大噪聲Bmax最大為
因此在K個不同的策略下同態(tài)計算深度為dG的電路生成的同態(tài)計算密文的噪聲最大為
為了保證方案的正確性和安全性,本文選取參數(shù)使得在0<ε<1的情況下,以上數(shù)量的8倍小于2nε。 為 了 保 持 這 點, 本 文 設(shè) 置n=以及選取q和χ,使之滿足其中B是噪聲分布χ的上限。選取這些參數(shù)會導(dǎo)致DLWEn,q,χ問題減少到n維晶格上的一個短向量近似為的因子。
本文方案的安全性依賴于底層的T?HABE安全模型,通過一系列假設(shè),可以證明本文方案在決策性LWE問題下是IND?CPA安全的,即任何多項式時間的攻擊者打破底層的T?HABE方案的 IND?CPA安全性是可以忽略的。證明如下:
與T?HABE方案中方式相似,通過考慮挑戰(zhàn)密文ct=(x,C,Cx)中列向量的不可區(qū)分性來證明安全性,設(shè)置x?成為挑戰(zhàn)屬性。即考慮給攻擊者以下向量
Game(0)。 此游戲和column游戲相同,所以有
Game(1)。 與Game(0) 相比,不同之處在于公鑰參數(shù)B0,Bx=[B1,…,Bl]的生成方式,并且有分布均勻的隨機矩陣滿足在這個游戲里,有來代替隨機均勻選取這些矩陣。通過剩余哈希定理,得知的分布和均勻在上選取的是不可區(qū)分的,因 此 有
Game(2)。 與Game(1) 相比,不同之處在于改變了矩陣的分布,即均勻選取矩陣通過定理 1可知,Game(2) 和Game(1) 得到的矩陣是不可區(qū)分的,因此有
Game(3)。 與Game(2) 相比,不同之處在于密鑰生成時,不使用陷門不失一般性情況下,對于挑戰(zhàn)屬性x?,訪問策略f,滿足f(x?)=1。 采用H(A,f) 算法得到計算得根據(jù)EvRelation算法得到矩陣H,則有因此有
通過定理2,當(dāng)給定R0,R和H,對于任意τ≥可 從中采樣,其中通過生成通過定理 2,可知的邊緣分布在統(tǒng)計上與 {0,1}N上的均勻分布不可區(qū)分,并且條件下的概率分布是整數(shù)格上適當(dāng)陪集上的離散高斯分布。由于這個游戲中攻擊者得到的分布在統(tǒng)計上與Game(2)中的無法區(qū)分,所以有
Game(4)。 除了選擇A的方式外,此游戲與Game(3) 相同。 挑戰(zhàn)者從中選擇隨機A,而不是使用TrapGen生成。根據(jù)定理1,TrapGen生成的矩陣A的分布在統(tǒng)計上與上的均勻分布不可區(qū)分,所以有
Game(5)。 與Game(4) 相比,不同之處在于生成P和D的方式不同,挑戰(zhàn)者隨機均勻選取P∈而不是使用
生成,由定理 1可知,Game(4)中P和D與Game(5)中的在統(tǒng)計上的均勻分布不可區(qū)分,所以
Game(6)。 與Game(5) 相比,改變了挑戰(zhàn)密文的生成,令之后挑戰(zhàn)密文可以被重寫成
這與Game(5)中的密文
Game(7)。 與Game(6) 相比,改變uA和uv的分布到均勻分布,通過DLWEn,q,χ假設(shè),這個改變不能 被 攻 擊 者 區(qū) 分,所 以 有通過一系列游戲,有而在這輪游戲中,攻擊者的優(yōu)勢為 0,也就是有因此本文方案dMTHABE是IND?CPA的。
下面首先對本文dMTHABE方案與文獻(xiàn)[8-10]中的多密鑰方案進(jìn)行性能比較,結(jié)果如表1所示。2016年,Peikert等在文獻(xiàn)[10]中提出了兩種動態(tài)多跳的MKFHE方案,任何參與方都可以實時、動態(tài)地加入到密文運算的過程中。其中方案一的特點為密文尺寸較大,而方案二密文相對較短,密文擴展實現(xiàn)較為方便。但該方案是基于公鑰,不是屬性基加密。Brakerski等在文獻(xiàn)[8]中分別提出了單策略和多策略同態(tài)ABE方案,其中多策略方案可對滿足不同策略的密文進(jìn)行同態(tài)運算,但該方案是單跳的,不具備多跳性質(zhì),即同態(tài)計算過的密文不能再次與新密文進(jìn)行同態(tài)計算。 2017 年,Hiromasa 等[9]在文獻(xiàn)[10]的多跳MKFHE方案一的基礎(chǔ)上,提出了具有動態(tài)同態(tài)計算的多策略同態(tài)ABE方案,但該方案和文獻(xiàn)[10]的方案一具有相同的密文尺寸較大,密文計算效率不高的特點。而本文是在文獻(xiàn)[10]的方案二基礎(chǔ)上,提出的具有動態(tài)同態(tài)計算的多策略同態(tài)ABE方案,具有密文短,密文擴展方便以及同態(tài)計算效率高的優(yōu)點。
下面將從私鑰大小、原始密文大小、評估密文以及擴展同態(tài)計算密文大?。ㄗⅲ核袇?shù)比較的都是位大?。┓矫妫瑢⒈疚姆桨概c文獻(xiàn)[8-10]中的多密鑰方案進(jìn)行對比。比較結(jié)果如表2所示。其中,l為訪問策略的輸入屬性最大數(shù)量,n為LWE問題的維數(shù),k為同態(tài)計算相關(guān)密鑰或策略的數(shù)量,設(shè)其上限為K。dG和dF分別代表同態(tài)操作和訪問策略電路的最大深度,
表1 方案性能比較
表2 方案的密鑰和密文大小比較
從對比分析結(jié)果可知:與文獻(xiàn)[10]中的多密鑰全同態(tài)方案相比,本文方案將屬性加密與多跳多密鑰同態(tài)加密方案結(jié)合,引入了屬性向量和訪問策略,既實現(xiàn)了跨屬性間的密文同態(tài)計算,又滿足密文的細(xì)粒度的訪問控制,并且滿足多策略需求,可以滿足大部分實際應(yīng)用場景。與文獻(xiàn)[8]中的多策略屬性基同態(tài)加密方案相比,本文方案實現(xiàn)了多跳的功能,允許新密文直接參與同態(tài)計算,且密文尺寸較小。與文獻(xiàn)[9]中方案相比,本文方案具有更小的密文,加解密開銷變小,并且同態(tài)計算復(fù)雜度降低,密文只與一個部分有關(guān),因此有著更高的計算效率。
本文提出一個基于LWE問題的支持多跳多策略和短密文的屬性基全同態(tài)加密方案,短密文不僅可以減少通信開銷,還可以減少加密、解密和同態(tài)計算的運行時間,有著更高的效率,并且證明了方案在選擇屬性下為IND?CPA安全。與以往方案相比,本文方案可以實現(xiàn)跨屬性密文間的同態(tài)計算,滿足云環(huán)境下多用戶的需求,有著更靈活的訪問控制,但本方案進(jìn)行密文擴展時需要擴展密鑰,這導(dǎo)致本文只能實現(xiàn)弱屬性同態(tài)。下一步工作中,考慮對其進(jìn)行優(yōu)化,實現(xiàn)無需擴展密鑰的多策略屬性基全同態(tài)加密。另外本文的訪問策略是布爾電路,下步工作要提出基于更靈活訪問控制策略的多策略屬性基全同態(tài)加密方案,以提高訪問控制的靈活性。