近年來雲計算的廣泛應用,大量資料已經被存放在雲中。雖然雲服務提供了很多優點,敏感資料的隱私和安全問題仍然仍然讓人擔憂。為了消除這種擔憂,以加密的形式外包敏感資料是值得期待的管理方式。加密儲存防止對資料進行非法訪問,但使得一些基本操作複雜化,如對資料的搜尋。在很多文獻中已經提出基於不危害隱私而實現對加密資料的搜尋的可搜尋加密方案。然而,大部分都是處理精確查詢匹配,現實中應用最多的是相似性查詢。一些複雜的基於加密技巧的安全多方計算對相似性實驗是可利用的,但計算量大且不能對大資料來源規模化,因此如何找到一種高效的方法非常重要。本文主要是分享一種對加密資料的高效的相似性搜尋方案:1.利用高維空間的快速近鄰搜尋演算法區域性敏感雜湊(lsh);2.提供了一種嚴格的安全定義來確保敏感資料的私隱性並證明方案在定義下的安全性。最後簡單介紹一下有關應用和實驗效果。
1.安全lsh索引:基於lsh索引的可搜尋對稱加密方案:私鑰加密方式,保證curtmola的適應語義安全定義下的安全。
2.對加密資料的容錯性搜尋:允許對有印刷錯誤的查詢集或資料集實現搜尋。
3.洩露資訊的分離:現有方案會洩露對應查詢陷門的加密資料的標號而導致統計學的攻擊,因此可設定兩個伺服器來分離洩露資訊。查詢陷門好比是查詢進入資料集的入口,這裡可看做是查詢項的安全lsh索引值。
一、安全lsh索引
第一步需要從敏感資料集中提取特徵集合,如提取出abcdefg,john或johhn.
第二步需要使用轉換函式將文件轉換成資料集合,
1.可對特徵
統計使用的比較簡單的演算法k-gram
演算法,k
是乙個變數,表示提取文字中的k個字元,
演算法從頭依次掃瞄文字,然後依次把k
個字元儲存起來,比如有個文字,內容是abcdefg
,k
設為2,那得到的子特徵就是ab,bc,cd,de,ef,fg
。
然後採用布隆過濾器(bloom filter)編碼方法,即一種空間效率很高的隨機資料結構,利用位陣列很簡潔地表示乙個集合,並能判斷乙個元素是否屬於這個集合
。但在判斷乙個元素是否屬於某個集合時,有可能會把不屬於這個集合的元素誤認為屬於這個集合。因此可應用在能容忍低錯誤率的場合。
乙個bloom filter是有k個雜湊函式的m位陣列,分別將集合中每個元素對映到的範圍中,初始時每位都置為0,
如圖所示,這裡取k=2,即兩個雜湊函式,轉換函式表達如:ρ(s) = ,文件字串為s,encode是乙個編碼函式,l是m位的位陣列,p是轉換函式。具體示例如下:
jaccard距離:1減去jaccad相似度,
jaccad相似度
即2.minhash
兩個集合的隨機的乙個行排列的minhash值相等的概率和兩個集合的jaccard相似度相等
證明如下:
兩個集合,a、b,對一行來說,他們的狀態有三種
x:a、b都為1,即表示a、b集合中都有這個單詞
y:a、b其中乙個為1,其中乙個不為1,即乙個有這個單詞,乙個沒有
z:a、b都為0,即表示a、b中都沒有這個單詞。
假設有x行為x,y行為y,z行為z,這是jaccard係數為x/(x+y)。再看minhash,因為排列是隨機的,在遇到y之前遇到x的概率是x/(x+y),正好等於jaccard係數的值。
定義如:δ是位陣列l的最大範圍,p是對δ的乙個隨機排列,p[i]是p的第i個元素,如果該元素在集合r中,則將最先出現在r中的元素的i記為最小雜湊值,hp(r)為最小雜湊函式,hp (r) = min()如:δ = .p1 = ,hp1 (ρ(john)) = 4 and hp1 (ρ(johhn)) = 3.
3.and-or級聯方式:
在區域性敏感雜湊家族h中選出k個雜湊函式,構成雜湊家族g。對於g家族中的g= [h1,…,hk],g(x)=g(y)當且僅當對所有的i,
所有hi(x)=hi(y)都滿足。在區域性敏感雜湊家族g中選出l個雜湊哈數,構成雜湊家族g。對於g家族中的g = [g1,…,gl],g(x)=g(y)當且僅當存在i,滿足gi(x)=gi(y).
第三步是構建桶索引,假設使用上步中的雜湊函式族h,通過g1,...,gl對映每個特徵fj到l個桶中,gi(fj)記為索引桶的標號,桶內容是l位的位向量,設資料標號為1,...,l.id(di)是資料di的標號,bk是桶標號,vbk是對應的位向量,那麼當gi(fj)=bk時,bk[id(di)]=1否則為0。
第四步是桶索引加密,對bk和vbk加密,前者在查詢過程中只有使用者知道,否則敵手會利用lsh方法找到某個特徵的桶,後者應該被加密來隱藏一些資訊洩露,如資料個數防止被敵手利用造成統計攻擊。
1.kid, kpayload ∈ ψ是引數為ψ的金鑰,分別為偽隨機序列和pcpa
(對可選明文攻擊的偽隨機性)
安全加密。i是安全索引,令[enckid (bk), enckpayload (vbk )] ∈ i。一旦加密被做,還可以新增一些假記錄到索引中來隱藏資料庫中特徵的數量。設總特徵數目為max,c是i中的記錄數,則可加入max-c*l個假記錄到i中,然後將i傳送給伺服器。
二、搜尋過程
兩輪互動搜尋:
1.資料擁有者a產生金鑰kid, kpayload and kcoll.
2.a使用上步金鑰kid, kpayload對資料集d構建安全lsh索引。如一中所示。
3.a使用金鑰kcoll(也是乙個pcpa安全加密)對資料集加密得到ed,並將其和安全lsh索引傳送給伺服器b,也就是外包資料給伺服器。為使得使用者c能夠從遠端伺服器實現對加密資料的檢索,a共享c:kid,
kcoll,kpayload,p(轉換函式)和g.
4.陷門構建:c有查詢f,使用轉換函式得到對應向量集合,運用g生成索引並用kid加密(kid(gi(fj))),得到對應的l個陷門tfj,將其傳送給伺服器b。
5.搜尋:b根據tfj執行搜尋,並將對應的enckpayload (vbk )傳送給c,
6.排序:c使用kpayload對enckpayload (vbk )解密,對於所有bk中vbk[i]為1的的i累加得到score(i),並返回t個最大score的id列表給b。
7.b找到加密資料集中對應id的資料並傳送給c,c解密即可得到需要的資料。
需要兩輪互動查詢,像大部分可搜尋加密方案一樣會使的對應陷門的資料標號洩露,但是這種洩露的安全陷阱還沒有深度分析過,因此可以在不損失查詢效能前提下隱藏陷門和資料標號之間的結合,使用兩台伺服器來實現搜尋。
一輪搜尋:
1.a構建安全lsh索引時,對vbk使用同態加密kpub,
2.c將陷門tfj和引數t傳送給b1
3.b1根據陷門使用kpub對vbk[i]為1的項實現同態加,得到加密的wscore(i),將其傳送給b2,
4.b2使用kpriv對wscore(i)解密,將t個加密資料的標號傳送給c,c解密即可得到需要的資料。
當資料項很小,特徵數很多時可採用一輪搜尋,因為伺服器的計算和頻寬開銷與資料數目成線性關係。
三應用例項
對加密資料的錯誤感知關鍵字搜尋
四實驗評估
在公開的郵件資料enron資料集上實驗,隨機選擇5000封郵件,由於使用lsh檢索效果非常好,特徵數目的增加不影響搜尋時間和通訊開銷(陷門,加密的位向量和資料標號)。
參考文獻:efficient similarity search over encrypted data
奶牛的相似性
奶牛的相似性 description 農夫約翰有兩頭奶牛,他想要知道,這兩頭奶牛到底有多相似,所以他給每頭奶牛拍了mn 指m行n列 的數碼相片,他想要你寫乙個程式幫助他。mn的數碼相片可以分辨出奶牛身上黑色和白色的斑塊,下面是兩頭奶牛的數碼 x 表示黑色部分,表示白色部分 其中m 5,n 7。奶牛1...
訊號相似性的描述
訊號相似性的描述 在很多的應用場合,經常要描述兩個訊號的相似性。比如在雷達的訊號檢測中,要比較所接收的訊號是否就是發射訊號的延時。有時候,甚至還要描述乙個訊號本身的相似性,比如在語音編碼中,要通過語音頻號本身的相似性,來 下一時刻的訊號值。我們知道,在訊號處理中,用相關函式來描述訊號的相似性。描述兩...
資料歸一化和相似性
資料標準化 歸一化 處理是資料探勘的一項基礎工作,不同評價指標往往具有不同的量綱和量綱單位,這樣的情況會影響到資料分析的結果,為了消除指標之間的量綱影響,需要進行資料標準化處理,以解決資料指標之間的可比性。原始資料經過資料標準化處理後,各指標處於同一數量級,適合進行綜合對比評價。以下是兩種常用的歸一...