楊 青,于大為
(蘇州信息職業技術學院,江蘇 蘇州 215200)
將海量實體與傳感設備相連,并借助互聯網技術實現信息的互通互聯是物聯網的深層意義所在。在物聯網的海量混合數據中,智能化查詢所需數據信息是現代社會人們獲取信息的主要方式[1]。在智能化查詢過程中,往往涉及用戶的隱私信息,關系著個人的名譽、財產等方方面面的信息,一旦隱私信息泄露,必然會導致嚴重后果,不僅會造成財產損失,甚至威脅生命安全。另外,物聯網查詢目標和查詢范圍的廣闊性、查詢數據的實時性和動態性、查詢關鍵字的多樣性和繁雜性等特點[2-3],決定了物聯網查詢中實施用戶隱私保護的高難度性、挑戰性。因此,用戶隱私保護是限制物聯網海量混合數據查詢發展的瓶頸。
陳琳等人[4]針對物聯網平臺不同場景應用不同通信協議導致原有安全通信方案具有孤立性,無法對用戶隱私信息進行有效保護的問題,提出構建適合各場景的通用模型,并利用條件代理重加密方法實現數據防御的安全方案。該方法可對用戶訪問權限進行識別,非合法用戶不具備數據查詢資格,但該方法的網絡開銷較高,且在數據查詢過程中未對關鍵字索引進行加密處理,容易泄露用戶的偏好信息。趙志遠等人[5]針對物聯網數據安全問題,通過建立基于隱藏訪問結構的屬性基加密方法,實現物聯網數據的隱私保護及訪問管理。該方法雖在運算效率方面具有較好效果,但加密后數據仍有攻擊風險。因此,本文提出考慮用戶隱私保護范圍的物聯網海量混合數據查詢方法,通過對用戶身份進行認證,為其設定不同的訪問權限,通過G-CP-ABE加密方案實現互聯網海量混合數據加密,以降低物聯網查詢開銷,確保用戶隱私安全。
圖1為考慮用戶隱私保護范圍的物聯網海量混合數據查詢方案。其中涉及到的參與者如下:

圖1 考慮用戶隱私保護范圍的物聯網海量混合數據查詢方案
(1)屬性權威中心(Attribute Authority Center, AAC):該參與者是考慮用戶隱私保護范圍的物聯網海量混合數據查詢方案中享有較高聲望、在業界具有權威性的機構,可由數個屬性權威中心構成[6],其職責是對物聯網參數進行初始設置,產生公開參數,能依據數據查詢者的身份及其屬性信息,為其創建密鑰并將其發送至數據查詢者。在數據擁有者拒絕數據訪問需求時,不再為數據查詢者提供數據訪問權限,并將查詢用戶的權限撤銷證書傳輸給代理服務器。
(2)數據擁有者(Data Owner, DO):該參與者與代理服務器協同獲取密文索引,并將其與加密數據文件一同傳輸給可實現物聯網查詢業務的一方。對于需要上傳的加密混合數據文件,DO可對其設定相應的訪問策略,各訪問策略可存在差異性,設定完成后可將其保存在密文中。
(3)數據查詢者(Data Searcher, DS):一部分特定屬性集合為數據查詢者特有,同時含有密鑰信息,DS可發送數據查詢申請,獲取的查詢信息是與其查詢權限相符合的查詢結果。對獲取的查詢信息進行解密處理,在考慮用戶隱私保護范圍的物聯網海量混合數據查詢方案中,DS可下載到本地的數據文件均為其能實現解密的數據文件,此種方式可有效降低其通信開銷[7]。另外,在本文設計的查詢方案中,代理服務器可完成部分解密工作,但不會獲取數據的明文信息,以此解決因DS查詢設備性能的限制造成的網絡開銷大的問題。
(4)代理服務器(Proxy Server, PS):PS可幫助DS獲取密文索引、查詢陷門,并為DS提供部分數據文件解密服務。
(5)物聯網查詢服務商(IoT Search Provider, IoT SP):其職責是保存和查詢數據、校驗屬性、篩選數據。當數據查詢者上傳查詢申請,SP會獲取其訪問權限,篩選出與之權限相適應的加密數據傳送給代理服務器PS,在數據通信時SP存在企圖得到明文數據的風險。
(6)認證中心(Certificate Authority, CA):其職責是認證互聯網用戶的身份信息,為數據擁有者、查詢者發放訪問權限證書。
數據查詢者在進行物聯網海量混合數據查詢前,需在AAC進行身份驗證,在提交查詢申請時需對查詢關鍵字作加密處理,在代理服務器的協同下獲取查詢陷門;經過物聯網查詢服務商的數據過濾,篩選出與數據查詢者訪問權限相當的加密文件,代理服務器對其中部分文件進行解密處理,傳輸給數據查詢者;數據查詢者收取混合數據文件,經解密得到明文信息。下文為考慮用戶隱私保護范圍的物聯網海量混合數據查詢方案實施流程的詳細描述。
1.2.1 系統初始化階段
AAC對物聯網參數進行初始設置,其算法表示為ABE.Setup()→(PK, MSK, KMSK)。MSK為輸出主密鑰,PK為公開密鑰,KMSK為主查詢密鑰,AAC將PK經由安全信道提供給數據擁有者、物聯網查詢服務商,存儲MSK、KMSK。KMSK==k(k∈Zp)遵循任意性原則進行選取,設定雙線性組為G0,雙線性映射為e,p為其素數,g為生成器,任意選取α、β,且α,β∈Zp,對PK、MSK進行求解,則有:

1.2.2 認證證書發放
數據查詢者及擁有者需在CA進行身份認證,并由CA發放身份證書,表示為Did,該證書是用戶身份的證明,且每個用戶只有一份證書[8]。用戶的身份信息獨立于其屬性信息,更有利于保護數據查詢者的身份,降低信息泄露風險。
1.2.3 G-CP-ABE數據文件加密
數據查詢者、擁有者的私鑰可通過其組屬性集進行識別,H:{0, 1}*→G0表示希函數,將其屬性用二進制進行描述[9],再通過該希函數將其與任意組元素進行一一對應。U={A1, A2,..., An}表示屬性集合,G-CP-ABE數據文件加密需經歷設定對稱密鑰、對稱加密、對稱解密等階段,對于大數據量造成的計算開銷較大的問題,可通過對稱加密實現。
(PK, MSK, S)→SKS密鑰獲取:S為組屬性集,將其作為密鑰生成算法的輸入,可獲取SKS,即為私密密鑰,屬性集合S可識別SKS。i為S的各個屬性,密鑰生成算法任意選取r、ri賦予各屬性i,且r,ri∈Zp。SKS可通過下式獲得:

對于各屬性的集中屬性數量,m為其最大值,最小值為1,所用任意密鑰之和表示為m,CP-ABE密鑰長度及運算難度受屬性數量的影響,且二者為正比關系,本文通過G-CPABE對CP-ABE進行改進,使屬性數量大大減少,密鑰獲取效率大幅提升,并降低了運算難度[10]。
數據擁有者通過子例程對數據文件進行加密,得到(PK,K, A)。公鑰為PK,對稱密鑰集為K,組查詢結構表示為A,C2為通過此算法得到的密文。當數據查詢者的屬性集與解密密鑰一一對應時,方可獲取解密密鑰[11]。x1, x2, ..., xm為數據擁有者任選的數,來自于Zp,數量為m,密文Ci1、Ci2的求解可通過下式進行描述:

因m很小,有效降低了G-CP-ABE算法的運算難度;y為訪問樹中的各節點,根據G-CP-ABE算法可確定其多項式qy,按從上至下順序任意選取節點信息。針對各節點y,設定ky-1為其多項式階數,其閾值為ky。R為訪問樹的根節點,將其作為起點,數據擁有者對其進行初始設定,令qR(0)=x1,其多項式qR可通過其余節點進行設定,設定多項式節點分別為層次節點、訪問樹的任意節點,令qy(0)=qparenty。L為訪問樹的葉子節點集合,z為其葉子節點,數據擁有者可通過下式獲取各節點的Ci1(z)、Ci2(z)。

對于各屬性子集,需利用m個密鑰對其進行迭代加密,完成對稱加密操作。{C1, C2}為數據擁有者得到的數據文件的加密密文,將之上傳。
加密數據文件的解密文件為(C, SKS)。數據查詢者通過循環執行子例程實現數據文件的解密。設定(C2, SKS, y)表示遞歸函數解密節點,其中y為節點,C2為密文,SKS為用戶密鑰。
當y為葉子節點,可確定屬性i=att(y)。若該屬性存在于屬性集合S,則有:

若i不屬于屬性集合S,即設定DecryptNode(C2, SKS, y)值是null。
當y為非葉子節點,z=child(y)內的各節點,則執行DecryptNode(C2, SKS, y),其值在Fz中保存。對于子節點z,令Sx為其集合,kx為集合中節點數量,以確保Fz為非空。若該節點無法找到,則說明該節點不符合條件,此時確定結果為null。反之,則通過下式進行確定:

數據查詢者屬性個數是影響解密效率的重要因素[12],在本文的G-CP-ABE中,由于數據查詢者屬性個數不多,因此具有更好的解密優勢。
根據層次結構,子節點的密鑰可通過父節點確定,但該過程不可逆,反過來則無法實現。對于當下節點為Si、{ki, ki+1, ...,km}為解密密鑰的情況,其獲取過程可通過逐個求解e(g, g)αSi、e(g, g)αSi+1、…、e(g, g)αSi+m 實現。獲得解密密鑰后,數據
查詢用戶可對加密數據進行解密,并對密鑰表的屬性進行查詢,屬性表示為{Ai, Ai+1, ..., Am}。對應的描述公式為:

1.2.4 建立關鍵字索引
數據查詢者在物聯網查詢數據時,需依據關鍵字索引檢索實現加密數據的查詢,因此建立關鍵字索引是必不可少的步驟[13]。物聯網內的數據信息由物聯網查詢服務商保存,存儲形式為文本方式,設定已從文本中獲取到關鍵字,表示為{w1, w2, ..., wn},關鍵字索引的建立步驟如下:
(1)wi表示各關鍵字,wi∈W,W為關鍵字集合,數據擁有者求解Ai=h(wi)ri,將關鍵字向G0的任意數進行映射,其散列函數可表示為h,ri為Zp內的任意數。
(2)代理服務器接收來自數據擁有者的身份證書Did及獲得的(A1, A2, ..., An),并以Did作為依據對數據擁有者的PDid進行檢索。針對各Ai,對Bi=e(Ai, PDid)進行求解,再將獲得的{Bi, 1≤i≤n}返回給數據擁有者。
(3)數據擁有者對ki=h(Vi(ri)-1UDid)進行求解,設定 Iwi=(Ri, [Ri]ki),其中[Ri]ki代表可針對任意數并具有較高安全性的對稱密鑰算法;ki代表密鑰加密方式。
Iw={IW1, IW2, ..., IWn,}為關鍵字集合W的加密索引。1.2.5 查詢陷門生成

其中:ru為任意數;IDu代表身份。該用戶的當下坐標及檢索半徑表示為((xu, yu), R),其檢索關鍵詞表示為Wq;數據查詢者在對其感興趣的內容進行檢索時,其興趣屬性區間表示為,其數據檢索時間戳表示為Tq。數據查詢者對查詢內容進行加密處理,是確保個人隱私安全性的關鍵手段[14]。Q'為生成的查詢陷門,數據查詢者只將Q'提交給代理服務器。

(2)確定查詢關鍵字陷門。數據查詢者使用關鍵字進行信息查詢時,關鍵字常能反映查詢者的偏好等涉及個人隱私方面的信息[15]。為避免信息泄露,在上傳查詢申請前,需對查詢關鍵字作加密處理。關鍵字陷門生成流程如下:
第一步,數據查詢者任選一個數r',且r'∈Zq*。
第二步,對T1=SKuh2WqPKL+r'P2,T2=r'PKS進行求解。
第三步,TWq={T1, T2}為得到的查詢關鍵字陷門。
(3)確定興趣點區間屬性查詢陷門。物聯網查詢服務商為數據查詢者提供密鑰組,以實現查詢者感興趣內容查詢區間[?u1, ?u2]的加密處理。[?u1, ?u2]陷門確定流程如下:
第一步,數據查詢者任選一個數ρ,且ρ∈Zq*,并對向量Ou=ρOo進行求解。
第二步:?u1為查詢的左界限,確定loc?、loc-1值,并依據其值在向量Ou適合位置代入1、?u1,由此獲取向量?u1。
第三步:經矩陣乘法確定TIu1=MT2?u1,其目的是使數據難以區分;?u2為查詢右界限,以相同方法確定TIu2=MT2?u2。由此可確定TI={TIu1, TIu2}為POI區間屬性查詢陷門。
綜上,確定查詢陷門Q'={Did, Tcord, TWq, TI, Tq},將其上傳給代理服務器。
以物聯網海量混合數據為研究對象,構建數據集,其中包含混合數據信息10 000條。在確保用戶隱私信息不泄露的前提下,采用本文方法對混合數據進行查詢,驗證本文方法的查詢性能。
為實現物聯網混合數據的用戶隱私保護,需對數據擁有者的混合數據信息進行加密處理。以數據集中的3 000個采樣點語音數據為例,采用本文方法對其進行加密處理。通過對比加密前后的語音數據的信號波形,分析本文方法的加密效果,實驗結果如圖2所示。
由圖2可知,采用本文方法加密后的語音數據波形已完全不具備原有波形特征,無法識別出原語音數據信息。實驗結果表明,本文方法具備物聯網海量語音數據加密性能,且加密優勢突出,可有效保護用戶數據安全。

圖2 本文方法加密前后語音數據波形對比
數據查詢者在查詢到物聯網混合數據時,需先對其進行解密操作,解密密鑰準確方可獲取混合數據的明文信息。均方誤差(RMSE)、平均失真度(RNADM)是度量數據解密效果的重要指標,本文通過分析解密密鑰正確和存在偏差兩種情況下的指標值,驗證本文方法的解密效果,實驗結果見表1所列。

表1 混合數據解密的均方誤差、平均失真指標
根據表1可知,以正確密鑰的解密結果作為對比,當密鑰發生偏差時,其RMSE指標較之小兩個數量級以上,RNADM指標較之大一個數量級。由此可確定,當解密密鑰具有偏差時,解密后的語音數據并非為原始數據,數據失真嚴重。實驗結果表明,本文方法可對物聯網混合數據起到保護作用,安全性較高。
數據查詢者在物聯網平臺進行混合數據查詢時,平臺通過云計算實現,因此處理效率高;查詢時間主要消耗在關鍵字索引生成、查詢陷門生成及混合數據加密和解密操作。通過分析查詢總開銷驗證本文方法的高效性,實驗結果如圖3所示。

圖3 查詢總開銷分析
由圖3可知,由于部分解密是通過代理服務器實現,解密開銷很小,其余三項操作所需開銷隨著屬性數量的不斷增多而不斷增大。當屬性數量達到20個時,查詢總開銷可達到180 ms左右,但在物聯網海量混合數據查詢中,可能并不需要設置如此多的訪問屬性。由此可見,本文方法具有較高的處理效率。
以物聯網海量混合數據為研究對象,在確保物聯網混合數據隱私安全的前提下,采用本文方法對其進行查詢,以驗證本文方法的有效性。本文以物聯網語音數據為例,采用本文方法對其進行加密處理,通過對比加密前后的語音數據波形分析加密效果;在解密密鑰正確及存在偏差兩種情況下,通過RMSE、RNADM指標分析本文方法的解密性能;通過分析查詢總開銷驗證本文方法的高效性。實驗結果表明:本文方法的加密、解密性能突出,查詢開銷較小。