楊 青,于大為
(蘇州信息職業(yè)技術(shù)學院,江蘇 蘇州 215200)
將海量實體與傳感設(shè)備相連,并借助互聯(lián)網(wǎng)技術(shù)實現(xiàn)信息的互通互聯(lián)是物聯(lián)網(wǎng)的深層意義所在。在物聯(lián)網(wǎng)的海量混合數(shù)據(jù)中,智能化查詢所需數(shù)據(jù)信息是現(xiàn)代社會人們獲取信息的主要方式[1]。在智能化查詢過程中,往往涉及用戶的隱私信息,關(guān)系著個人的名譽、財產(chǎn)等方方面面的信息,一旦隱私信息泄露,必然會導致嚴重后果,不僅會造成財產(chǎn)損失,甚至威脅生命安全。另外,物聯(lián)網(wǎng)查詢目標和查詢范圍的廣闊性、查詢數(shù)據(jù)的實時性和動態(tài)性、查詢關(guān)鍵字的多樣性和繁雜性等特點[2-3],決定了物聯(lián)網(wǎng)查詢中實施用戶隱私保護的高難度性、挑戰(zhàn)性。因此,用戶隱私保護是限制物聯(lián)網(wǎng)海量混合數(shù)據(jù)查詢發(fā)展的瓶頸。
陳琳等人[4]針對物聯(lián)網(wǎng)平臺不同場景應(yīng)用不同通信協(xié)議導致原有安全通信方案具有孤立性,無法對用戶隱私信息進行有效保護的問題,提出構(gòu)建適合各場景的通用模型,并利用條件代理重加密方法實現(xiàn)數(shù)據(jù)防御的安全方案。該方法可對用戶訪問權(quán)限進行識別,非合法用戶不具備數(shù)據(jù)查詢資格,但該方法的網(wǎng)絡(luò)開銷較高,且在數(shù)據(jù)查詢過程中未對關(guān)鍵字索引進行加密處理,容易泄露用戶的偏好信息。趙志遠等人[5]針對物聯(lián)網(wǎng)數(shù)據(jù)安全問題,通過建立基于隱藏訪問結(jié)構(gòu)的屬性基加密方法,實現(xiàn)物聯(lián)網(wǎng)數(shù)據(jù)的隱私保護及訪問管理。該方法雖在運算效率方面具有較好效果,但加密后數(shù)據(jù)仍有攻擊風險。因此,本文提出考慮用戶隱私保護范圍的物聯(lián)網(wǎng)海量混合數(shù)據(jù)查詢方法,通過對用戶身份進行認證,為其設(shè)定不同的訪問權(quán)限,通過G-CP-ABE加密方案實現(xiàn)互聯(lián)網(wǎng)海量混合數(shù)據(jù)加密,以降低物聯(lián)網(wǎng)查詢開銷,確保用戶隱私安全。
圖1為考慮用戶隱私保護范圍的物聯(lián)網(wǎng)海量混合數(shù)據(jù)查詢方案。其中涉及到的參與者如下:
圖1 考慮用戶隱私保護范圍的物聯(lián)網(wǎng)海量混合數(shù)據(jù)查詢方案
(1)屬性權(quán)威中心(Attribute Authority Center, AAC):該參與者是考慮用戶隱私保護范圍的物聯(lián)網(wǎng)海量混合數(shù)據(jù)查詢方案中享有較高聲望、在業(yè)界具有權(quán)威性的機構(gòu),可由數(shù)個屬性權(quán)威中心構(gòu)成[6],其職責是對物聯(lián)網(wǎng)參數(shù)進行初始設(shè)置,產(chǎn)生公開參數(shù),能依據(jù)數(shù)據(jù)查詢者的身份及其屬性信息,為其創(chuàng)建密鑰并將其發(fā)送至數(shù)據(jù)查詢者。在數(shù)據(jù)擁有者拒絕數(shù)據(jù)訪問需求時,不再為數(shù)據(jù)查詢者提供數(shù)據(jù)訪問權(quán)限,并將查詢用戶的權(quán)限撤銷證書傳輸給代理服務(wù)器。
(2)數(shù)據(jù)擁有者(Data Owner, DO):該參與者與代理服務(wù)器協(xié)同獲取密文索引,并將其與加密數(shù)據(jù)文件一同傳輸給可實現(xiàn)物聯(lián)網(wǎng)查詢業(yè)務(wù)的一方。對于需要上傳的加密混合數(shù)據(jù)文件,DO可對其設(shè)定相應(yīng)的訪問策略,各訪問策略可存在差異性,設(shè)定完成后可將其保存在密文中。
(3)數(shù)據(jù)查詢者(Data Searcher, DS):一部分特定屬性集合為數(shù)據(jù)查詢者特有,同時含有密鑰信息,DS可發(fā)送數(shù)據(jù)查詢申請,獲取的查詢信息是與其查詢權(quán)限相符合的查詢結(jié)果。對獲取的查詢信息進行解密處理,在考慮用戶隱私保護范圍的物聯(lián)網(wǎng)海量混合數(shù)據(jù)查詢方案中,DS可下載到本地的數(shù)據(jù)文件均為其能實現(xiàn)解密的數(shù)據(jù)文件,此種方式可有效降低其通信開銷[7]。另外,在本文設(shè)計的查詢方案中,代理服務(wù)器可完成部分解密工作,但不會獲取數(shù)據(jù)的明文信息,以此解決因DS查詢設(shè)備性能的限制造成的網(wǎng)絡(luò)開銷大的問題。
(4)代理服務(wù)器(Proxy Server, PS):PS可幫助DS獲取密文索引、查詢陷門,并為DS提供部分數(shù)據(jù)文件解密服務(wù)。
(5)物聯(lián)網(wǎng)查詢服務(wù)商(IoT Search Provider, IoT SP):其職責是保存和查詢數(shù)據(jù)、校驗屬性、篩選數(shù)據(jù)。當數(shù)據(jù)查詢者上傳查詢申請,SP會獲取其訪問權(quán)限,篩選出與之權(quán)限相適應(yīng)的加密數(shù)據(jù)傳送給代理服務(wù)器PS,在數(shù)據(jù)通信時SP存在企圖得到明文數(shù)據(jù)的風險。
(6)認證中心(Certificate Authority, CA):其職責是認證互聯(lián)網(wǎng)用戶的身份信息,為數(shù)據(jù)擁有者、查詢者發(fā)放訪問權(quán)限證書。
數(shù)據(jù)查詢者在進行物聯(lián)網(wǎng)海量混合數(shù)據(jù)查詢前,需在AAC進行身份驗證,在提交查詢申請時需對查詢關(guān)鍵字作加密處理,在代理服務(wù)器的協(xié)同下獲取查詢陷門;經(jīng)過物聯(lián)網(wǎng)查詢服務(wù)商的數(shù)據(jù)過濾,篩選出與數(shù)據(jù)查詢者訪問權(quán)限相當?shù)募用芪募?,代理服?wù)器對其中部分文件進行解密處理,傳輸給數(shù)據(jù)查詢者;數(shù)據(jù)查詢者收取混合數(shù)據(jù)文件,經(jīng)解密得到明文信息。下文為考慮用戶隱私保護范圍的物聯(lián)網(wǎng)海量混合數(shù)據(jù)查詢方案實施流程的詳細描述。
1.2.1 系統(tǒng)初始化階段
AAC對物聯(lián)網(wǎng)參數(shù)進行初始設(shè)置,其算法表示為ABE.Setup()→(PK, MSK, KMSK)。MSK為輸出主密鑰,PK為公開密鑰,KMSK為主查詢密鑰,AAC將PK經(jīng)由安全信道提供給數(shù)據(jù)擁有者、物聯(lián)網(wǎng)查詢服務(wù)商,存儲MSK、KMSK。KMSK==k(k∈Zp)遵循任意性原則進行選取,設(shè)定雙線性組為G0,雙線性映射為e,p為其素數(shù),g為生成器,任意選取α、β,且α,β∈Zp,對PK、MSK進行求解,則有:
1.2.2 認證證書發(fā)放
數(shù)據(jù)查詢者及擁有者需在CA進行身份認證,并由CA發(fā)放身份證書,表示為Did,該證書是用戶身份的證明,且每個用戶只有一份證書[8]。用戶的身份信息獨立于其屬性信息,更有利于保護數(shù)據(jù)查詢者的身份,降低信息泄露風險。
1.2.3 G-CP-ABE數(shù)據(jù)文件加密
數(shù)據(jù)查詢者、擁有者的私鑰可通過其組屬性集進行識別,H:{0, 1}*→G0表示希函數(shù),將其屬性用二進制進行描述[9],再通過該希函數(shù)將其與任意組元素進行一一對應(yīng)。U={A1, A2,..., An}表示屬性集合,G-CP-ABE數(shù)據(jù)文件加密需經(jīng)歷設(shè)定對稱密鑰、對稱加密、對稱解密等階段,對于大數(shù)據(jù)量造成的計算開銷較大的問題,可通過對稱加密實現(xiàn)。
(PK, MSK, S)→SKS密鑰獲?。篠為組屬性集,將其作為密鑰生成算法的輸入,可獲取SKS,即為私密密鑰,屬性集合S可識別SKS。i為S的各個屬性,密鑰生成算法任意選取r、ri賦予各屬性i,且r,ri∈Zp。SKS可通過下式獲得:
對于各屬性的集中屬性數(shù)量,m為其最大值,最小值為1,所用任意密鑰之和表示為m,CP-ABE密鑰長度及運算難度受屬性數(shù)量的影響,且二者為正比關(guān)系,本文通過G-CPABE對CP-ABE進行改進,使屬性數(shù)量大大減少,密鑰獲取效率大幅提升,并降低了運算難度[10]。
數(shù)據(jù)擁有者通過子例程對數(shù)據(jù)文件進行加密,得到(PK,K, A)。公鑰為PK,對稱密鑰集為K,組查詢結(jié)構(gòu)表示為A,C2為通過此算法得到的密文。當數(shù)據(jù)查詢者的屬性集與解密密鑰一一對應(yīng)時,方可獲取解密密鑰[11]。x1, x2, ..., xm為數(shù)據(jù)擁有者任選的數(shù),來自于Zp,數(shù)量為m,密文Ci1、Ci2的求解可通過下式進行描述:
因m很小,有效降低了G-CP-ABE算法的運算難度;y為訪問樹中的各節(jié)點,根據(jù)G-CP-ABE算法可確定其多項式qy,按從上至下順序任意選取節(jié)點信息。針對各節(jié)點y,設(shè)定ky-1為其多項式階數(shù),其閾值為ky。R為訪問樹的根節(jié)點,將其作為起點,數(shù)據(jù)擁有者對其進行初始設(shè)定,令qR(0)=x1,其多項式qR可通過其余節(jié)點進行設(shè)定,設(shè)定多項式節(jié)點分別為層次節(jié)點、訪問樹的任意節(jié)點,令qy(0)=qparenty。L為訪問樹的葉子節(jié)點集合,z為其葉子節(jié)點,數(shù)據(jù)擁有者可通過下式獲取各節(jié)點的Ci1(z)、Ci2(z)。
對于各屬性子集,需利用m個密鑰對其進行迭代加密,完成對稱加密操作。{C1, C2}為數(shù)據(jù)擁有者得到的數(shù)據(jù)文件的加密密文,將之上傳。
加密數(shù)據(jù)文件的解密文件為(C, SKS)。數(shù)據(jù)查詢者通過循環(huán)執(zhí)行子例程實現(xiàn)數(shù)據(jù)文件的解密。設(shè)定(C2, SKS, y)表示遞歸函數(shù)解密節(jié)點,其中y為節(jié)點,C2為密文,SKS為用戶密鑰。
當y為葉子節(jié)點,可確定屬性i=att(y)。若該屬性存在于屬性集合S,則有:
若i不屬于屬性集合S,即設(shè)定DecryptNode(C2, SKS, y)值是null。
當y為非葉子節(jié)點,z=child(y)內(nèi)的各節(jié)點,則執(zhí)行DecryptNode(C2, SKS, y),其值在Fz中保存。對于子節(jié)點z,令Sx為其集合,kx為集合中節(jié)點數(shù)量,以確保Fz為非空。若該節(jié)點無法找到,則說明該節(jié)點不符合條件,此時確定結(jié)果為null。反之,則通過下式進行確定:
數(shù)據(jù)查詢者屬性個數(shù)是影響解密效率的重要因素[12],在本文的G-CP-ABE中,由于數(shù)據(jù)查詢者屬性個數(shù)不多,因此具有更好的解密優(yōu)勢。
根據(jù)層次結(jié)構(gòu),子節(jié)點的密鑰可通過父節(jié)點確定,但該過程不可逆,反過來則無法實現(xiàn)。對于當下節(jié)點為Si、{ki, ki+1, ...,km}為解密密鑰的情況,其獲取過程可通過逐個求解e(g, g)αSi、e(g, g)αSi+1、…、e(g, g)αSi+m 實現(xiàn)。獲得解密密鑰后,數(shù)據(jù)
查詢用戶可對加密數(shù)據(jù)進行解密,并對密鑰表的屬性進行查詢,屬性表示為{Ai, Ai+1, ..., Am}。對應(yīng)的描述公式為:
1.2.4 建立關(guān)鍵字索引
數(shù)據(jù)查詢者在物聯(lián)網(wǎng)查詢數(shù)據(jù)時,需依據(jù)關(guān)鍵字索引檢索實現(xiàn)加密數(shù)據(jù)的查詢,因此建立關(guān)鍵字索引是必不可少的步驟[13]。物聯(lián)網(wǎng)內(nèi)的數(shù)據(jù)信息由物聯(lián)網(wǎng)查詢服務(wù)商保存,存儲形式為文本方式,設(shè)定已從文本中獲取到關(guān)鍵字,表示為{w1, w2, ..., wn},關(guān)鍵字索引的建立步驟如下:
(1)wi表示各關(guān)鍵字,wi∈W,W為關(guān)鍵字集合,數(shù)據(jù)擁有者求解Ai=h(wi)ri,將關(guān)鍵字向G0的任意數(shù)進行映射,其散列函數(shù)可表示為h,ri為Zp內(nèi)的任意數(shù)。
(2)代理服務(wù)器接收來自數(shù)據(jù)擁有者的身份證書Did及獲得的(A1, A2, ..., An),并以Did作為依據(jù)對數(shù)據(jù)擁有者的PDid進行檢索。針對各Ai,對Bi=e(Ai, PDid)進行求解,再將獲得的{Bi, 1≤i≤n}返回給數(shù)據(jù)擁有者。
(3)數(shù)據(jù)擁有者對ki=h(Vi(ri)-1UDid)進行求解,設(shè)定 Iwi=(Ri, [Ri]ki),其中[Ri]ki代表可針對任意數(shù)并具有較高安全性的對稱密鑰算法;ki代表密鑰加密方式。
Iw={IW1, IW2, ..., IWn,}為關(guān)鍵字集合W的加密索引。1.2.5 查詢陷門生成
其中:ru為任意數(shù);IDu代表身份。該用戶的當下坐標及檢索半徑表示為((xu, yu), R),其檢索關(guān)鍵詞表示為Wq;數(shù)據(jù)查詢者在對其感興趣的內(nèi)容進行檢索時,其興趣屬性區(qū)間表示為,其數(shù)據(jù)檢索時間戳表示為Tq。數(shù)據(jù)查詢者對查詢內(nèi)容進行加密處理,是確保個人隱私安全性的關(guān)鍵手段[14]。Q'為生成的查詢陷門,數(shù)據(jù)查詢者只將Q'提交給代理服務(wù)器。
(2)確定查詢關(guān)鍵字陷門。數(shù)據(jù)查詢者使用關(guān)鍵字進行信息查詢時,關(guān)鍵字常能反映查詢者的偏好等涉及個人隱私方面的信息[15]。為避免信息泄露,在上傳查詢申請前,需對查詢關(guān)鍵字作加密處理。關(guān)鍵字陷門生成流程如下:
第一步,數(shù)據(jù)查詢者任選一個數(shù)r',且r'∈Zq*。
第二步,對T1=SKuh2WqPKL+r'P2,T2=r'PKS進行求解。
第三步,TWq={T1, T2}為得到的查詢關(guān)鍵字陷門。
(3)確定興趣點區(qū)間屬性查詢陷門。物聯(lián)網(wǎng)查詢服務(wù)商為數(shù)據(jù)查詢者提供密鑰組,以實現(xiàn)查詢者感興趣內(nèi)容查詢區(qū)間[?u1, ?u2]的加密處理。[?u1, ?u2]陷門確定流程如下:
第一步,數(shù)據(jù)查詢者任選一個數(shù)ρ,且ρ∈Zq*,并對向量Ou=ρOo進行求解。
第二步:?u1為查詢的左界限,確定loc?、loc-1值,并依據(jù)其值在向量Ou適合位置代入1、?u1,由此獲取向量?u1。
第三步:經(jīng)矩陣乘法確定TIu1=MT2?u1,其目的是使數(shù)據(jù)難以區(qū)分;?u2為查詢右界限,以相同方法確定TIu2=MT2?u2。由此可確定TI={TIu1, TIu2}為POI區(qū)間屬性查詢陷門。
綜上,確定查詢陷門Q'={Did, Tcord, TWq, TI, Tq},將其上傳給代理服務(wù)器。
以物聯(lián)網(wǎng)海量混合數(shù)據(jù)為研究對象,構(gòu)建數(shù)據(jù)集,其中包含混合數(shù)據(jù)信息10 000條。在確保用戶隱私信息不泄露的前提下,采用本文方法對混合數(shù)據(jù)進行查詢,驗證本文方法的查詢性能。
為實現(xiàn)物聯(lián)網(wǎng)混合數(shù)據(jù)的用戶隱私保護,需對數(shù)據(jù)擁有者的混合數(shù)據(jù)信息進行加密處理。以數(shù)據(jù)集中的3 000個采樣點語音數(shù)據(jù)為例,采用本文方法對其進行加密處理。通過對比加密前后的語音數(shù)據(jù)的信號波形,分析本文方法的加密效果,實驗結(jié)果如圖2所示。
由圖2可知,采用本文方法加密后的語音數(shù)據(jù)波形已完全不具備原有波形特征,無法識別出原語音數(shù)據(jù)信息。實驗結(jié)果表明,本文方法具備物聯(lián)網(wǎng)海量語音數(shù)據(jù)加密性能,且加密優(yōu)勢突出,可有效保護用戶數(shù)據(jù)安全。
圖2 本文方法加密前后語音數(shù)據(jù)波形對比
數(shù)據(jù)查詢者在查詢到物聯(lián)網(wǎng)混合數(shù)據(jù)時,需先對其進行解密操作,解密密鑰準確方可獲取混合數(shù)據(jù)的明文信息。均方誤差(RMSE)、平均失真度(RNADM)是度量數(shù)據(jù)解密效果的重要指標,本文通過分析解密密鑰正確和存在偏差兩種情況下的指標值,驗證本文方法的解密效果,實驗結(jié)果見表1所列。
表1 混合數(shù)據(jù)解密的均方誤差、平均失真指標
根據(jù)表1可知,以正確密鑰的解密結(jié)果作為對比,當密鑰發(fā)生偏差時,其RMSE指標較之小兩個數(shù)量級以上,RNADM指標較之大一個數(shù)量級。由此可確定,當解密密鑰具有偏差時,解密后的語音數(shù)據(jù)并非為原始數(shù)據(jù),數(shù)據(jù)失真嚴重。實驗結(jié)果表明,本文方法可對物聯(lián)網(wǎng)混合數(shù)據(jù)起到保護作用,安全性較高。
數(shù)據(jù)查詢者在物聯(lián)網(wǎng)平臺進行混合數(shù)據(jù)查詢時,平臺通過云計算實現(xiàn),因此處理效率高;查詢時間主要消耗在關(guān)鍵字索引生成、查詢陷門生成及混合數(shù)據(jù)加密和解密操作。通過分析查詢總開銷驗證本文方法的高效性,實驗結(jié)果如圖3所示。
圖3 查詢總開銷分析
由圖3可知,由于部分解密是通過代理服務(wù)器實現(xiàn),解密開銷很小,其余三項操作所需開銷隨著屬性數(shù)量的不斷增多而不斷增大。當屬性數(shù)量達到20個時,查詢總開銷可達到180 ms左右,但在物聯(lián)網(wǎng)海量混合數(shù)據(jù)查詢中,可能并不需要設(shè)置如此多的訪問屬性。由此可見,本文方法具有較高的處理效率。
以物聯(lián)網(wǎng)海量混合數(shù)據(jù)為研究對象,在確保物聯(lián)網(wǎng)混合數(shù)據(jù)隱私安全的前提下,采用本文方法對其進行查詢,以驗證本文方法的有效性。本文以物聯(lián)網(wǎng)語音數(shù)據(jù)為例,采用本文方法對其進行加密處理,通過對比加密前后的語音數(shù)據(jù)波形分析加密效果;在解密密鑰正確及存在偏差兩種情況下,通過RMSE、RNADM指標分析本文方法的解密性能;通過分析查詢總開銷驗證本文方法的高效性。實驗結(jié)果表明:本文方法的加密、解密性能突出,查詢開銷較小。