謝金宏,陳建偉,林力偉,張美平
1(福建師范大學 計算機與網(wǎng)絡空間安全學院,福州 350117)
2(福建師范大學 福建省網(wǎng)絡空間安全與密碼技術(shù)實驗室,福州 350117)
3(福建師范大學 數(shù)字福建大數(shù)據(jù)安全技術(shù)研究所,福州 350117)
4(福建工程學院 計算機科學與數(shù)學學院,福州 350118)
隨著網(wǎng)絡技術(shù)和微電子技術(shù)的發(fā)展,智能電網(wǎng)應運而生,它作為下一代電網(wǎng)技術(shù)受到世界各國的廣泛關注.在我國智能電網(wǎng)已經(jīng)成為國家重大發(fā)展戰(zhàn)略之一,2019年,國家電網(wǎng)提出要求全面加快智能電網(wǎng)建設的戰(zhàn)略部署,隨后國有電力企業(yè)投入大量的人力、物力和財力開展相關研究和試點工作[1].智能電網(wǎng)將傳統(tǒng)電網(wǎng)與信息技術(shù)相融合,支持雙向通信,能夠?qū)Πl(fā)電、輸電和用電的實時狀況進行采集和分析,通過信息流和能量流的雙向控制實現(xiàn)能源優(yōu)化,并且減少碳排放量,與新時代的環(huán)保理念相呼應[2].
智能電網(wǎng)周期性的收集智能電表的數(shù)據(jù)并在遠程云服務器上進行處理和分析.然而,智能電網(wǎng)規(guī)模的不斷擴大,實時數(shù)據(jù)量的急劇增加,使得有限的帶寬資源無法滿足遠程云服務器實時數(shù)據(jù)處理對傳輸?shù)脱訒r的要求.2012年,“霧計算”的概念由思科公司率先提出,相比于單一的云計算架構(gòu),霧計算在延遲、聚合、位置感知和地理分布提供了額外的能力.基于該計算模式,智能電表數(shù)據(jù)上傳到云服務器之前,先在霧節(jié)點進行數(shù)據(jù)聚合處理,從而節(jié)約了帶寬資源,滿足實時數(shù)據(jù)處理的需求.
然而,霧輔助智能電網(wǎng)的架構(gòu)仍然存在用戶隱私泄露的風險.在整個數(shù)據(jù)收集過程中,智能電表周期的上報用戶電量數(shù)據(jù)(如10-15 min 上報一次[3]),大量細粒度的電量數(shù)據(jù)使得惡意的攻擊者可以推斷出用戶的行為活動、生活習慣、經(jīng)濟狀況以及其他一些隱私信息.例如,結(jié)合電器電力消耗情況在時間維度上的關聯(lián)性,可表征用電設備的使用情況,而此類隱私信息將被第三方用于提供準確的商業(yè)營銷,以及被惡意人員用于判斷用戶是否居家從而實現(xiàn)入室盜竊.而霧輔助智能電網(wǎng)的架構(gòu)因為引入了第三方公司提供的霧節(jié)點,如Cisco,反而使得隱私泄露的風險增大[4].
為了保護用戶的隱私,一些學者提出了輕量級的數(shù)據(jù)聚合方案[5-7].此類方案將一組和為零的隨機整數(shù)作為盲因子分配給智能電表和聚合器,智能電表利用盲因子對電量數(shù)據(jù)進行加密,聚合器消除盲因子得到聚合密文,最后控制中心解密獲得聚合結(jié)果.在這個過程中,控制中心無法得到任一智能電表的具體數(shù)據(jù),在一定的程度上保護了用戶的隱私.但如果其中一個智能電表故障,或者網(wǎng)絡連接中斷,數(shù)據(jù)提交失敗,將使得整個密文聚合過程中的盲因子無法消除,導致控制中心無法獲得正確聚合結(jié)果,因而方案不具備容錯功能.
一些學者提出其他類別的數(shù)據(jù)聚合方案,并嘗試解決容錯問題,但由于內(nèi)在的運行機制,給系統(tǒng)帶來額外的計算開銷或者通信開銷.文獻[8]中,Xue 等人提出了一種無可信權(quán)威中心的數(shù)據(jù)聚合方案,該方案對隱私數(shù)據(jù)進行同態(tài)加密,并通過Shamir 秘密共享方案實現(xiàn)了容錯功能.但方案容錯機制中用戶組重新協(xié)商密鑰的過程將占用額外的計算和通信資源.Wang 等人[9]提出一種支持容錯的多子集數(shù)據(jù)聚合方案,該方案同樣存在效率較低的問題.當某些智能電表無法正常工作時,聚合器將發(fā)布事件和故障智能電表的標識,隨后相關區(qū)域內(nèi)的智能電表必須重新協(xié)商更新盲因子,再加密數(shù)據(jù)后上報,這些給系統(tǒng)帶來了額外的開銷.Lyu 等人[10]提出了一種霧計算架構(gòu)下的差分隱私數(shù)據(jù)聚合方案,該方案使用OTP(one-time-pad)加密算法和高斯機制來最小化數(shù)據(jù)隱私泄露.但該方案每次執(zhí)行加密操作之前需要生成新的密鑰; 并且當設備出現(xiàn)故障需要容錯處理時,需要霧節(jié)點和可信任中心進行交互,這些都給系統(tǒng)帶來額外的負擔.另外,這類滿足差分隱私的數(shù)據(jù)聚合方案[10,11],往往只能得到數(shù)據(jù)聚合結(jié)果的近似值,方案設計者需要在數(shù)據(jù)隱私性和可用性之間取得一個平衡.
此外,整個數(shù)據(jù)收集應用系統(tǒng)部署在大范圍復雜的環(huán)境下,容易受到各種外部攻擊.Pan 等人[12]利用中國剩余定理實現(xiàn)了多維數(shù)據(jù)聚合,但該方案無法抵御篡改和偽造等攻擊,不能保證數(shù)據(jù)的完整性.Li 等人[13]基于Paillier 同態(tài)加密算法提出了一種多子集的隱私保護數(shù)據(jù)聚合方案,但該方案無法確認數(shù)據(jù)源的合法性和確保數(shù)據(jù)的完整性,給系統(tǒng)帶來了安全隱患.
針對現(xiàn)有方案存在的不足,本文提出了一種新的高效隱私保護數(shù)據(jù)聚合方案.本文工作包含以下3 點:(1)將BGN 同態(tài)加密算法和Shamir 秘密共享方案進行巧妙地結(jié)合,構(gòu)建了擴展的BGN 同態(tài)加密算法,確保了用戶數(shù)據(jù)的隱私性.(2)實現(xiàn)了兩種容錯措施,當智能電表端電量數(shù)據(jù)無法到達服務端時,或者服務端云服務器出現(xiàn)故障時,系統(tǒng)還能繼續(xù)運作.(3)基于橢圓曲線離散對數(shù)困難問題構(gòu)造了高效的簽名認證方法,實現(xiàn)了數(shù)據(jù)完整性和數(shù)據(jù)源合法性的有效驗證.此外,采用標量乘法運算代替較為耗時的雙線性配對運算,極大提高了方案計算效率.理論分析和性能實驗證明了本文方案的安全性和有效性.
在本節(jié)中,簡要回顧相關的背景知識,包括BGN加密算法、Shamir 秘密共享方案和橢圓曲線離散對數(shù)困難問題.
BGN 加密算法[14]是Boneh、Goh 和Nissim 于2005年提出的一種同態(tài)加密算法,該算法支持無限次加法運算但最多只支持一次乘法運算,它由以下3 個子算法構(gòu)成:
密鑰生成: 給定安全參數(shù)τ ∈Z+,運行算法?(τ)得到元組(p,q,G),其中,p和q是2 個不同的大素數(shù),G是N=pq階的乘法循環(huán)群.隨機選取G的2 個生成元g和x,并計算χ=xq.最后公布公鑰PK=(N,G,g,χ),保存私鑰SK=p.
明文加密: 給定消息m∈[0,M],M<q,選取隨機數(shù)r∈[0,N-1],計算密文C=gmχr.
密文解密: 使用私鑰SK=p解密密文C,計算Cp=(gmχr)p=gmp(xpq)r=(gp)m,令g1=gp,則Cp=g1m,隨后使用Pollard’s Lambda 算法[15]求解離散對數(shù)得到明文m.
Shamir 秘密共享方案[16]存在管理者和k個參與者,秘密θ被管理者劃分為k個碎片,只有當秘密的碎片數(shù)達到給定的閾值d+1才能恢復出秘密θ.方案由以下兩部分組成.
秘密分發(fā): 管理者通過以下多項式對秘密進行分發(fā):
其中,σ是一個大素數(shù),秘密θ為f(x)的常數(shù)項,即θ=f(0).管理者為每個參與者選擇一個公開值xi,并計算子份額yi=f(xi),隨后將份額(xi,yi)發(fā)送給相應的參與者.
秘密重構(gòu): 任意不少于d+1個參與者通過拉格朗日插值法可重構(gòu)出秘密θ,如下所示:
橢圓曲線離散對數(shù)問題(elliptic curve discrete logarithm problem,ECDLP):G1為定義在橢圓曲線E上的ω 階循環(huán)群,存在B=αP,其中P,B∈G1,α ∈Zω*,在已知B和P的情況下求出整數(shù)α使其滿足B=αP屬于ECDLP.
橢圓曲線離散對數(shù)問題假設(elliptic curve discrete logarithm assumption,ECDLA): 不存在算法能夠在多項式時間內(nèi)以不可忽略的優(yōu)勢ε解決橢圓曲線離散對數(shù)問題.
智能電網(wǎng)下典型的系統(tǒng)模型如圖1 所示,其中包含4 種實體對象,即智能電表、霧節(jié)點、云服務器和可信任機構(gòu).
圖1 系統(tǒng)模型
智能電表(SM): 周期性地收集用戶用電數(shù)據(jù),并將加密數(shù)據(jù)提交給霧節(jié)點.
霧節(jié)點(FN): 負責對SM的數(shù)據(jù)進行合法性認證(包括數(shù)據(jù)源認證和數(shù)據(jù)完整性認證),并對加密數(shù)據(jù)進行聚合計算.
云服務器(CS): 由一組服務器CSj組成,其中j=1,2,···,k,k≥3,在這組服務器中選舉計算資源最大的服務器作為主服務器,讓其負責FN和SM的注冊以及對FN數(shù)據(jù)的認證,并對聚合的密文進行解密.
可信任機構(gòu)(TA): 是可信任的第三方實體對象,負責生成系統(tǒng)所需參數(shù)并分配給相應實體對象.
安全模型包含以下兩點假設:
1)SM被認為是完全可信的,而FN和CS則設定為“誠實且好奇”的角色,即FN和CS能正確的執(zhí)行協(xié)議,但他們?nèi)試L試各種方法推斷用戶的隱私數(shù)據(jù).
2)惡意的攻擊者可能對CS進行攻擊并使其癱瘓.由于CS是強大的實體,攻擊者破壞CS需要付出極大的代價,因此假設攻擊者只能破壞或妥協(xié)一定數(shù)量的CS,即不超過,但系統(tǒng)仍然有(k-d)個CSj用來恢復聚合數(shù)據(jù),其中,k-d≥d+1.
根據(jù)安全模型中的假設,同時考慮到系統(tǒng)內(nèi)各實體之間傳輸?shù)男诺朗遣话踩?惡意的攻擊者可能發(fā)起數(shù)據(jù)修改、數(shù)據(jù)偽造以及重放攻擊等.方案應實現(xiàn)以下設計目標:
1)隱私性: 應確保授權(quán)的實體能獲得聚合數(shù)據(jù),但不能獲得單一用戶的具體數(shù)據(jù),同時又要防止沒有授權(quán)的外部實體竊取用戶的隱私數(shù)據(jù).
2)容錯性: 部分智能電表可能會出現(xiàn)故障或因為網(wǎng)絡波動等原因?qū)е聰?shù)據(jù)無法正常上傳,部分服務器也可能受到惡意攻擊而停止工作.所提聚合方案應具備容錯功能以保證聚合方案能夠有條不紊地進行.
3)完整性: 攻擊者可能竊取數(shù)據(jù)進行修改,并利用錯誤的數(shù)據(jù)進行犯罪,消息接收方應能檢測接收的數(shù)據(jù)是否被篡改.
4)認證性: 攻擊者可能偽裝成合法實體發(fā)送錯誤信息,消息接收方應能認證發(fā)送方是否為合法實體.
所提方案包含6 個階段: 初始化階段、注冊階段、數(shù)據(jù)收集階段、數(shù)據(jù)聚合階段、數(shù)據(jù)解密階段和容錯處理階段.
TA 通過執(zhí)行以下步驟生成系統(tǒng)所需參數(shù).
步驟1.給定安全的參數(shù)τ ∈Z+,TA 運行算法?(τ)得到元組(p,q,G),其中p和q是2 個不同的素數(shù),G是N=pq階的乘法循環(huán)群.TA 選取G的3 個隨機生成元η、g和u,并計算χ=uq.
步驟2.設Fρ是一個有限域,ρ是素數(shù),TA 定義橢圓曲線E:y2=x3+ax+bmod ρ,其中a,b∈Fρ.TA 從E上選取一個階為 ω的加法循環(huán)群G1,P為G1的生成元,TA 選取隨機數(shù)β ∈Zω*并計算公鑰Ppub=βP.
步驟3.T A 選取隨機數(shù)λ ∈Zω*,計算Pcs=λP.TA 將(λ,Pcs)作為所有CS共同的私鑰和公鑰,并通過安全信道發(fā)送給所有CS.
步驟4.TA 選取3 個安全的哈希函數(shù)H1,H2,H3:{0,1}*→Zω*.
步驟5.TA 使用偽隨機數(shù)生成器生成n+1個偽隨機數(shù)π0,π1,···,πn∈Zω*,偽隨機數(shù)滿足下式關系:
TA 將πi和 π0分別作為SMi和CS 的密鑰并通過安全通道發(fā)送給SMi和CS,隨后TA 計算Qi=ηπi并發(fā)送給CS.
步驟6.TA 利用 π0生成哈希值h1=H1(π0)并計算p·h1,隨后將其作為密鑰嵌入隨機生成的d次多項式函數(shù):
其中,ai∈Zn,σ是一個素數(shù).TA 將F(xj)和lj(0)作為CSj的私鑰并通過安全通道發(fā)送給CSj,其中l(wèi)j(0)=
步驟7.TA 公布系統(tǒng)參數(shù)(ω,η,g,h1,N,G,G1,P,Ppub,χ,Hi:i=1,2,3).
為了成為系統(tǒng)的合法實體,SMi和FNi分別向CS進行注冊.詳細的步驟如下:
(1)SMi注冊
步驟1.SMi的身份標識為idi,SMi隨機選擇私鑰vi∈Zω*和ri∈Zω*,計算公鑰Ri=riP,并計算簽名:
SMi獲取當前的時間戳treq,隨后將(idi,Vi,Ri,si,treq)通過安全通道發(fā)送給CS.
步驟2.CS在收到注冊請求消息(idi,Vi,Ri,si,treq)后,如果檢查時間戳為最新,則驗證式(7)是否成立:
如果式(7)成立,CS將參數(shù)Pcs發(fā)送給SMi,以此證明其為合法實體.
(2)FNi注冊
步驟1.FNi的身份標識為idFN,FNi隨機選擇私鑰vFN∈Zω*和rFN∈Zω*,計算公鑰RFN=rFNP,并計算簽名:
FNi獲取當前的時間戳treq,并將(idFN,VFN,RFN,sFN,treq)通過安全通道發(fā)送給CS.
步驟2.CS在收到注冊請求消息(idFN,VFN,RFN,sFN,treq)后,如果檢查時間戳為最新,則驗證式(9)是否成立:
如果式(9)成立,CS將參數(shù)Pcs發(fā)送給FNi,以此證明其為合法實體.
SMi周期性地(如每隔15 min)收集用電數(shù)據(jù)mi∈ZN*,隨后對數(shù)據(jù)mi進行加密,并生成相應的簽名,SMi執(zhí)行如下步驟.
步驟1.SMi收集實時的用電數(shù)據(jù),隨后選擇一個隨機數(shù)di∈ZN*并結(jié)合πi對數(shù)據(jù)進行加密:
步驟2.SMi選取隨機數(shù)wi∈Zω*并計算簽名:
其中,ti為當前的時間戳.
步驟3.SMi將(idi,Vi,Ri,Wi,ci,ei,ti)發(fā)送給FNi.
在收到n個SMi發(fā)送的消息(idi,Vi,Ri,Wi,ci,ei,ti)后,FNi開始執(zhí)行以下步驟.
步驟1.FNi先檢查ti是否有效,如果無效,輸出拒絕.否則,驗證式(12)是否相等:
為了提高驗證速度,將在FNi上運用小指數(shù)測試技術(shù)[17]對消息進行批量驗證.FNi隨機選擇一系列的小數(shù)o1,o2,···,on∈[1,2n],并驗證式(13)是否成立:
步驟2.如果式(13)成立,FNi將對密文進行聚合:
步驟3.FNi選取隨機數(shù)wFN∈Zω*并計算簽名:
步驟4.FNi將(idFN,VFN,RFN,WFN,Cγ,eFN,ti)發(fā)送給CS.
在收到FNi發(fā)送的消息(idFN,VFN,RFN,WFN,Cγ,eFN,ti)后,CS將執(zhí)行以下步驟.
步驟1.CS先檢查ti是否有效,如果無效,則輸出拒絕.否則,驗證式(16)是否成立:
步驟2.如果式(16)成立,主服務器使用密鑰 π0進行解密操作:
步驟3.各個服務器CSj利用{lj(0),F(xj)}計算φj=lj(0)F(xj),其中:
隨后主服務器負責收集所有的 φj進行密鑰重構(gòu),得到密鑰ph1(只有主服務器被妥協(xié)或自然宕機,才進行新一輪的主服務器選舉以及密鑰的重構(gòu)):
步驟4.主服務器通過使用密鑰ph1進行解密:
步驟5.主服務器使用Pollard’s Lambda 方法[15]求解式(20)獲得數(shù)據(jù)聚合值:
服務器端容錯: 系統(tǒng)部署了k臺服務器進行協(xié)同工作.正如安全模型的假設,在最壞情況下攻擊者也只能破壞或妥協(xié)d個服務器并獲得它們的私鑰{lj(0),F(xj)},但本著Shamir 秘密共享方案“全有或全無”的屬性,至少需要d+1個份額才能重構(gòu)密鑰ph1進行解密,系統(tǒng)仍有k-d(≥d+1)個服務器能正常進行解密,保證聚合方案能夠有條不紊地進行.
智能電表端容錯: 當部分SM數(shù)據(jù)無法正常發(fā)送,FN仍然能進行數(shù)據(jù)聚合,CS也能將密文進行解密.假設用戶總數(shù)為U,未能正常上傳數(shù)據(jù)的用戶為具體步驟如下.
步驟1.FN聚合的密文為:
步驟2.FN將和發(fā)送給CS,隨后CS計算:
步驟3.CS計算聚合密文C:
步驟4.同數(shù)據(jù)解密階段,CS可獲得數(shù)據(jù)聚合值:
結(jié)合文獻[18,19]中的加密模型,本節(jié)將證明在隨機預言機模型下本方案具有不可偽造性,并在此基礎上對本方案是否實現(xiàn)所提的設計目標進行分析.
安全屬性(不可偽造性)通過挑戰(zhàn)者 C和攻擊者A 之間的博弈來定義.挑戰(zhàn)者 C和攻擊者 A在進行博弈的過程中,攻擊者 A向挑戰(zhàn)者 C發(fā)起以下查詢:
hash查詢: 在C 中存在列表LHi,其中i=1,2,3,后文將會詳細說明.在A 的查詢下,C返回隨機值給A .
CreateS Mi查詢: A輸入idi,C生成相對應SMi的公鑰、私鑰和偽隨機數(shù)并發(fā)送給A .
ExtractS Mi查詢: A輸入idi,C生成相對應SMi的私鑰并發(fā)送給A .
Signcrytion查詢: A輸入SMi的明文mi,C生成相對應SMi的密文ci并發(fā)送給A .
Designcrytion查詢: C對密文ci進行解密,隨后將明文mi發(fā)送給A .
上述查詢是自適應的,即每次查詢都可以根據(jù)上一次的詢問結(jié)果進行調(diào)整.
博弈.自適應選擇消息攻擊下具有不可偽造性(existentially unforgeable under the adaptive chosen message attack,EUF-CMA)由以下博弈定義:
設置: C生成系統(tǒng)所需參數(shù)并發(fā)送給A ,A選擇一個挑戰(zhàn)者的身份idi′并發(fā)送給C .
查詢: A可以進行hash查詢,CreateSMi查詢,ExtractSMi查詢,S igncrytion查詢和Designcrytion查詢,但不能使用挑戰(zhàn)者的身份idi′進行ExtractSMi查詢和Designcrytion查詢.
偽造: A用挑戰(zhàn)者的身份idi′輸出一個有效的密文ci.
攻擊者A 想贏得博弈,需滿足以下條件:
1)A從 未使用挑戰(zhàn)者的身份idi′進行ExtractSMi查詢.
2)輸出的密文ci是有效的.
定義1.不可偽造性: 若不存在攻擊者 A能夠在多項式時間內(nèi)以不可忽略的優(yōu)勢ε贏得上述博弈,則所提方案在自適應選擇消息攻擊下具有不可偽造性.
定理1.基于橢圓曲線離散對數(shù)問題,所提方案能夠抵抗自適應選擇消息偽造攻擊.
證明: 假設攻擊者 A能夠在多項式時間內(nèi)以不可忽略的優(yōu)勢ε贏下上述博弈,則證明在自適應選擇消息偽造攻擊下,存在挑戰(zhàn)者 C可以解決橢圓曲線離散對數(shù)問題(ECDLP).
設置: 假定提供一個橢圓曲線離散對數(shù)問題(ECDLP)的實例(P,B=αP).C選擇一個挑戰(zhàn)者的身份idi′,隨機選擇β ∈Zω*計算Ppub=βP,隨后將生成的系統(tǒng)參數(shù)(ω,η,g,h1,N,G,G1,P,Ppub,χ,α,Hi:i=1,2,3)和身份idi′一起發(fā)送給A .
查詢: 在博弈中,為了及時回應A ,C進行以下查詢:
H1查詢: 列表LH1由元組(π0,h1)構(gòu)成,C首先檢查(π0,h1)是否存在于LH1中.如果存在,C將LH1中的數(shù)據(jù)h1=H1(π0)返回給A .否則,C將隨機選取h1∈Zω*存入列表LH1,并返回h1給A .
H2查詢: 列表LH2由元組(idi,Vi,Ri,Ppub,h2,i)構(gòu)成,當A查詢(idi,Vi,Ri,Ppub)時,C首先檢查(idi,Vi,Ri,Ppub,h2,i)是否存在于LH2中.如果存在,C將LH2中的數(shù)據(jù)h2,i=H2(idi||Vi||Ri||Ppub)返回給A .否則,C將隨機選取h2,i∈Zω*存入列表LH2,并返回h2,i給A .
H3查詢: 列表LH3由元組(idi,Pcs,Vi,Wi,ci,ti,h3,i)構(gòu)成,當 A查詢(idi,Pcs,Vi,Wi,ci,ti)時,C首先檢查(idi,Pcs,Vi,Wi,ci,ti)是否存在于LH3中.如果存在,C將LH3中的數(shù)據(jù)h3,i=H3(idi||Pcs||Vi||Wi||ci||ti)返回給A .否則,C將隨機選取h3,i∈Zω*存入列表LH3,并返回h3,i給A .
CreateSMi查詢: 列表LSMi由元組(idi,vi,Vi,ri,Ri,si,πi)構(gòu)成,當A 查詢SMi的idi時,C首先檢查(idi,vi,Vi,ri,Ri,si,πi)是否存在于LSMi中.如果存在,C將LSMi中的數(shù)據(jù)(Vi,Ri)返回給A .否則,C將執(zhí)行以下過程:
1)如果idi′≠idi,C隨機選取vi,ri,h2,i,πi∈Zω*,計算Vi=viP,Ri=riP和si=vi+rih2,i,隨后分別將(idi,Vi,Ri,h2,i)和(idi,vi,Vi,ri,Ri,si,πi)存入列表LH2和LSMi,最后C 將(Vi,Ri)返回給A .
2)否則(idi′=idi),C隨機選取si,h2,i,πi∈Zω*,計算Vi=viP,Ri=αP和siP=Vi+Rih2,1,隨后分別將(idi,Vi,Ri,h2,i)和(idi,vi,Vi,⊥i,Ri,si,πi)存入列表LH2和LSMi.最后C將(Vi,Ri)返回給A .
ExtractSMi查詢: 當A 查詢SMi的idi時,C首先檢查idi和idi′是否相等.如果是,游戲結(jié)束.否則,C將檢查在列表LSMi中的(idi,vi,Vi,ri,Ri,si,πi),并將(ri,si,πi)返回給A .
S igncrytion查詢: 當A 輸入數(shù)據(jù)mi時,C首先檢查idi′和idi是否相等.如果相等,C隨機選擇ei,h2,i,h3,i∈Zω*,計算和Vi=eiP-(h2,iRi+h3,iWi),隨后 C分別將(idi,Vi,Ri,Ppub,h2,i)和(idi,Pcs,Vi,Wi,ci,ti,h3,i)存入列表LH2和列表LH3.最后 C將密文(Vi,Wi,ci,ei,ti)返回給 A.否則,C根據(jù)本方案的既定流程生成密文(Vi,Wi,ci,ei,ti)并返回給A .
Designcrytion查詢: 當A 輸入密文ci時,C首先檢查idi和idi′是否相等.如果相等,游戲結(jié)束.否則,C按照本方案既定流程對密文進行解密.
偽造: A以SMi的idi偽造并輸出密文(Vi,Wi,ci,ei,ti),其中:
C首先檢查idi和idi′是否相等.如果相等,游戲結(jié)束.否則,基于交叉引理[20],C 在選擇不同的哈希函數(shù)H2下可以輸出有效密文(Vi,Wi,ci,e′i,ti),可得:
根據(jù)式(26)和式(27)可得:
最后,C輸出α=(h2,i-h′2,i)-1(ei-e′i)作為橢圓曲線離散對數(shù)問題(ECDLP)解決方案.
優(yōu)勢分析: 為了評估挑戰(zhàn)者C 解決橢圓曲線離散對數(shù)問題(ECDLP)的優(yōu)勢,進行了以下3 個操作:
O1: 在進行ExtractSMi和Designcrytion查詢過程中,C不會停止上訴博弈.
O2: 進行上述查詢時idi和idi′相等.
O3: A偽造出合法密文.
根據(jù)以上操作,可得出優(yōu)勢分別為Pr[O1]=(1-1/qH2)qe+qd、Pr[O2|O1]=1/qH2和Pr[O3|O1∧O2]=ε,其中qH2、qe和qd分別表示H2查詢次數(shù)、ExtractSMi查詢次數(shù)和Designcrytion查詢次數(shù).因此,C解決橢圓曲線離散對數(shù)問題(ECDLP)的優(yōu)勢為Pr[O1∧O2∧O3]=Pr[O3|O1∧O2]Pr[O2|O1]Pr[O1]=ε·1/qH2·(1-1/qH2)qe+qd.因為優(yōu)勢ε是不可忽略的,所以優(yōu)勢Pr[O1∧O2∧O3]也是不可忽略的,但這與橢圓曲線離散對數(shù)困難問題相矛盾.因此假設不成立,證得所提方案具備不可偽造性.
本節(jié)將證明方案實現(xiàn)了第2.3 節(jié)所提出的設計目標,即隱私性、完整性、認證性和容錯性.
隱私性: 在數(shù)據(jù)收集階段,數(shù)據(jù)mi通過式(10)加密成規(guī)范且有效的BGN 密文.BGN 加密算法被證明在子群決策假設下是語義安全的[14],即使密文被攻擊者竊聽或攔截,也無法在多項式時間內(nèi)破解密文; 在加密時選取的偽隨機數(shù) πi是由TA隨機生成的,攻擊者無法獲取全部的偽隨機數(shù)用以消除密文中的ηNπi; 并且根據(jù)安全模型的假設,惡意的攻擊者最多只能妥協(xié)d個服務器,所以攻擊者無法重構(gòu)秘密ph1進行解密.因此,密文中的數(shù)據(jù)是語義安全的.另外,本方案利用密文的同態(tài)性在霧節(jié)點對密文進行聚合操作,避免了“誠實且好奇”的霧節(jié)點從中獲取單一用戶的隱私數(shù)據(jù),而CS也只能從聚合數(shù)據(jù)中解析出總聚合數(shù)據(jù),仍無法獲得單一用戶的隱私數(shù)據(jù).因此,所提方案具有隱私保護功能.
完整性: 在方案的數(shù)據(jù)生成和數(shù)據(jù)聚合階段,SMi和FN分別生成數(shù)字簽名(Wi,ei)和(WFN,eFN),FN和CS會對收到的簽名進行驗證.由定理1 可知,任何的攻擊者都不能偽造出有效的數(shù)字簽名,一旦數(shù)字簽名中的數(shù)據(jù)被篡改,篡改數(shù)據(jù)將會被及時檢測.因此,所提方案能夠確保數(shù)據(jù)的完整性.
認證性: 在方案的注冊階段,SM和FN的注冊信息由CS進行驗證,隨后CS會將參數(shù)Pcs發(fā)送給注冊成功的實體以此證明該實體是合法的.另外,由定理1 可知,任何的攻擊者都不能偽造出有效的密文,并且在報告的消息(idi,Vi,Ri,Wi,ci,ei,ti)和(idFNVFN,RFN,WFN,Cγ,eFN,ti)中,SM和FN的身份標識被包含在其中,SM和FN可以通過驗證式(13)和式(16)是否相等以此證明發(fā)送方是否為合法實體.因此,所提方案具有認證性.
容錯性: 詳見第3.6 節(jié).
本文實驗運行在Intel Core i7-5500U CPU @2.40 GHz,8 GB RAM 以及64 位Windows 10 操作系統(tǒng)的筆記本電腦上.實驗采用基于配對的密碼學庫JPBC[21].設置參數(shù)|p|=|q|=512 bits,|N|=1024 bits.選定的橢圓曲線E中的兩個素數(shù) ρ和 ω都為160 bits.為了更好評估本文方案的性能(包括計算開銷和通信開銷),實驗將本文方案與文獻[22-24]進行比較.為了減少實驗誤差,實驗取1 000 次測試結(jié)果的平均值.除非特別說明,本文方案中的霧節(jié)點等同于其他方案的聚合器.
各方案中的主要操作的基準執(zhí)行時間如表1 所示,實驗忽略如哈希運算、ECC 點加運算和整數(shù)乘法等計算.為了方便比較,假設存在l個霧節(jié)點FN,每個霧節(jié)點FN下有n個智能電表SM.表2 列出各階段的主要操作.
表1 相關運算和運行時間
表2 各階段的主要操作
圖2 展示了4 個方案在數(shù)據(jù)收集階段SM計算開銷的對比情況.在文獻[22]中,SM進行加密和簽名需要4 次指數(shù)運算和2 次群上乘法運算.在文獻[23]中,SM進行加密和簽名需要4 次群上指數(shù)運算和2 次群上乘法運算.在文獻[24]中,SM進行加密和簽名需要3 次群上指數(shù)運算,1 次群上乘法運算,1 次群上點乘運算和2 次雙線性配對運算.在本文方案中,SM進行加密和簽名需要3 次群上指數(shù)運算,2 次群上乘法運算和1 次ECC 標量乘法運算.由圖2 可知,本文方案在此階段需要的計算開銷最小.
圖2 數(shù)據(jù)收集階段計算開銷對比
圖3 展示了4 個方案在數(shù)據(jù)聚合階段FN計算開銷的對比情況,假設每個FN下有200 個SM.在文獻[22]中,FN進行驗證需要3 次群上指數(shù)運算、3n-2次群上乘法運算和n+2次雙線性配對運算.FN聚合密文和生成簽名需要執(zhí)行2n-1次乘法運算和2 次指數(shù)運算.在文獻[23]中,FN進行認證需要n+1次雙線性配對運算和2(n-1)次群上乘法運算,FN聚合密文需要1 次群上指數(shù)運算和n次群上乘法運算,FN生成簽名需要1 次指數(shù)運算.在文獻[24]中,FN需要先認證來自終端的詢問信息,需執(zhí)行 2n次雙線性配對運算,FN進行認證需要2 次雙線性配對運算,FN聚合密文需要2(n-1)次群上乘法運算,FN生成簽名需要1 次群上的點乘運算.在本文方案中,FN進行認證和簽名需要3n+2次ECC 上標量乘法運算,FN聚合密文需要n-1次群上乘法運算.由圖3 可知,本文方案相比較其他3 種方案具有較好的計算性能.其主要原因是本文方案使用橢圓曲線中標量乘法運算代替較為耗時的雙線性配對運算.
圖3 數(shù)據(jù)聚合階段計算開銷對比
圖4 展示了4 個方案在數(shù)據(jù)解密階段CS計算開銷的對比情況,假設CS下有20 個FN.在文獻[22]中,CS進行驗證需要3 次雙線性配對運算,恢復密文數(shù)據(jù)需要2 次群上乘法運算和1 次雙線性配對運算.在文獻[23]中,CS進行批驗證需要(l+1)次雙線性配對運算和2(l-1)次群上乘法運算,聚合密文需要(l-1)次群上乘法運算,恢復密文數(shù)據(jù)需要1 次群上指數(shù)運算.在文獻[24]中,CS進行驗證需要2 次雙線性配對運算,恢復密文數(shù)據(jù)需要1 次群上指數(shù)運算和1 次群上乘法運算.在本文方案中,CS進行驗證需要3 次ECC 上標量乘法運算,恢復密文數(shù)據(jù)需要2 次群上指數(shù)運算和1 次群上乘法運算.由圖4 可知,由于避免使用雙線性配對運算,本文方案在此階段的計算開銷均小于其他方案.
圖4 數(shù)據(jù)解密階段計算開銷對比
本小節(jié)將分析SM和FN之間以及FN和CS之間的通信開銷.G,G1,Zω*,ZN,ZN2中元素的長度分別為1 024 bits,160 bits,160 bits,1 024 bits 和2 048 bits.假設單向哈希函數(shù)長度是160 bits,時間戳和身份的長度分別是64 bits 和32 bits.
首先,分析SM和FN之間的通信開銷.在文獻[22]中,SM發(fā)送信息{CTi,Vi,Ti}給FN,其中CTi={c1i,c2i},(c1i,c2i)∈G,Vi∈G和Ti是時間戳,此階段通信開銷為|CTi|+|Ti|+|Vi|=3136bits.在文獻[23]中,SM發(fā)送信息{IDTDij,tij,Cij,σij}到FN,其中(Cij,σij)∈G,IDTDij和tij分別是身份和時間戳.因此,此階段通信開銷為|Cij|+|σij|+|IDTDij|+|tij|=2144bits.在文獻[24] 中,SM和FN需要先交互來完成認證,假設授權(quán)消息Autd為32 bits,SM向FN發(fā)送{PStd,Autd,S igpcs-td},其中S igpcs-td∈G和PStd是身份.該過程|S igpcs-td|+|Autd|+|PStd|=1088bits.FN向SM發(fā)送{IDfn,Aufn,S igpcs-fn}完成認證,該過程|S igpcs-fn|+|Aufn|+|IDfn|=1088 bits.再者,SM發(fā)送信息{ci,PStd,Ti,σi}到FN,其中ci={ci1,ci2},(ci1,ci2,σi)∈G和Ti是時間戳.該過程通信開銷為|ci|+|σi|+|Ti|+|PStd|=3168bits.因此,此階段通信開銷為1088+1088+3168=5344 bits.在本文方案中,SM發(fā)送信息{idi,Vi,Ri,Wi,ci,ei,ti}到FN,其中ci∈G,(Vi,Ri,Wi)∈G1,ei∈Zω*,idi和ti分別是身份和時間戳.因此,此階段通信開銷計算為|ci|+|ei|+|ti|+|idi|+|Vi|+|Ri|+|Wi|=1760bits.
其次,分析FN和CS之間的通信開銷.在文獻[22]中,FN發(fā)送信息{CT,σ,Tc}到CS,其中CT={C1,C2},(C1,C2)∈G,σ={U,V},(U,V)∈G和Tc是時間戳.因此,此階段通信開銷為|CT|+|σ|+|Tc|=4160 bits.在文獻[23] 中,FN發(fā)送信息{IDESi,Ci,σi,ti}到CS,其中(Ci,σi)∈G,IDESi和ti分別是身份和時間戳.因此,此階段通信開銷為|σi|+|ti|+|Ci|+ |IDESi|=2144 bits.在文獻[24]中,FN發(fā)送信息{c,PStd,IDfn,T,σfn}到CS,其中c={c1,c2},(c1,c2,σfn)∈G,PStd和IDfn是身份,T是時間戳.因此,此階段通信開銷計算為|c|+|σfn|+|T|+|PStd|+|IDfn|=3200bits.在本文方案中,FN發(fā)送信息(idFNVFN,RFN,WFN,Cγ,eFN,ti)到C S,其中Cγ∈G,(VFN,RFN,WFN)∈G1,eFN∈Zω*,idFN和ti分別是身份和時間戳.因此,此階段通信開銷計算為|Cγ|+|VFN|+|RFN|+|WFN|+|eFN|+|ti|+|idFN|=1760bits.
圖5 展示了4 個方案一次會話的總通信開銷對比情況.設置FN數(shù)量逐步遞增到40 個,每個FN下的SM數(shù)量逐步遞增到100 個.圖5 可以直觀反映出本文方案具有較優(yōu)的通信開銷性能.原因是本文方案采用橢圓曲線加密算法進行簽名,在同等安全水平下,其簽名數(shù)據(jù)占用空間小,有效地減少通信成本.
圖5 通信開銷對比
本文提出了一種基于霧計算的高效隱私保護數(shù)據(jù)聚合方案,該方案巧妙地結(jié)合了BGN 同態(tài)加密算法和Shamir 秘密共享方案確保了數(shù)據(jù)的隱私性,利用橢圓曲線離散對數(shù)問題構(gòu)造高效的簽名認證算法保證數(shù)據(jù)的完整性,并且該方案實現(xiàn)了兩種容錯措施.安全性分析證明了該方案滿足智能電網(wǎng)的安全要求.性能分析表明了該方案具有較低的計算和通信開銷.