暗号化ベクトルデータベースのための索引構造
川本 淳平
(筑波大学 → 九州大学)

本研究の一部は,(財)中島記念国際交流財団の支援を受けています.
Oct. 23, 2013	

暗号化ベクトルデータベースのための索引構造	

ベクトルデータベース	
•  本研究ではベクトルと何らかの値が結びついた DB を考える
•  例) 画像データベースなど	
特徴ベクトル	

(129, 251,...
Oct. 23, 2013	

暗号化ベクトルデータベースのための索引構造	

3	

ベクトルデータベース 	
•  本研究ではベクトルと何らかの値が結びついた DB を考える	
•  スキーマは (k, v) とする
•  k: ベクトル属...
Oct. 23, 2013	

4	

暗号化ベクトルデータベースのための索引構造	

ベクトルデータベース 	
•  問合せの例.	
問合せのベクトル:
(129, 251, 90, …. )T
しきい値:
0.8

(129, 251, 9...
Oct. 23, 2013	

5	

暗号化ベクトルデータベースのための索引構造	

ベクトルデータベース(VDB)のクラウド化	
•  データベース所有者がクラウドサービス上に DB を設置
•  データ共有のため,管理コスト削減のため…
...
Oct. 23, 2013	

6	

暗号化ベクトルデータベースのための索引構造	

セキュリティ問題の解決が必要	
•  クラウドサービスを完全に信用することはできるか?
アクセス制御を無視してデー
タベース全体を走査	

悪意あるサービス...
Oct. 23, 2013	

7	

暗号化ベクトルデータベースのための索引構造	

暗号化ベクトルデータベース (EVDB)	
•  すべてのレコードは所有者によって予め暗号化
•  問合せも同様に暗号化して送信
悪意あるサービスプロバイダ...
Oct. 23, 2013	

8	

暗号化ベクトルデータベースのための索引構造	

暗号化ベクトルデータベース (EVDB) 	
•  悪意あるクラウドサービス提供者から不正アクセスを防ぐ枠組み
k・q = Enck(k)・Encq(q)
...
Oct. 23, 2013	

暗号化ベクトルデータベースのための索引構造	

9	

本研究の目的	
•  問合せ処理コストを削減する索引構造の考案
•  問合せごとにすべてのタプルを走査せずに問合せ結果を求める仕組み
•  サービスプロバイ...
Oct. 23, 2013	

暗号化ベクトルデータベースのための索引構造	

局所性検知可能ハッシュ (LSH)	
•  少ない情報量で近似的に類似度を計算するデータ構造
•  LSH は

m 個の関数 hi (i = 1, 2, …, m...
Oct. 23, 2013	

11	

暗号化ベクトルデータベースのための索引構造	

局所性検知可能ハッシュ (LSH) 	
•  例)
•  lsh(u) = (1, 1, 0)
•  lsh(v) = (1, 1, 1)
•  Pr[l...
Oct. 23, 2013	

暗号化ベクトルデータベースのための索引構造	

12	

LSHフィルタ作成の準備	
•  データベース利用者は暗号化に加えLSH値を計算	

LSH値を追加	
暗号化	

VDB	

データベース所有者	

(...
Oct. 23, 2013	

暗号化ベクトルデータベースのための索引構造	

LSHフィルタの作成	
•  クラウドサーバ上では,

LSH値を元に各タプルをグループ化して保管	

LSH value	
(1, 0, ……, 0)	

tup...
Oct. 23, 2013	

暗号化ベクトルデータベースのための索引構造	

14	

問合せ処理時のフィルタリング	
•  サーバは問合せベクトルのLSH値を計算する	
lsh(Encq(q)) を計算	
find Enck(k) s.t....
Oct. 23, 2013	

暗号化ベクトルデータベースのための索引構造	

15	

問合せ処理時のフィルタリング	
•  サーバは問合せベクトルのLSH値を計算する	
lsh(Encq(q)) を計算	
find Enck(k) s.t....
Oct. 23, 2013	

暗号化ベクトルデータベースのための索引構造	

16	

問合せ処理時のフィルタリング	
•  サーバは問合せベクトルのLSH値を計算する	
(近似計算された類似度) <α
ならばこのグループはスキップする
fi...
Oct. 23, 2013	

暗号化ベクトルデータベースのための索引構造	

17	

問合せ処理時のフィルタリング	
•  サーバは問合せベクトルのLSH値を計算する	
同様に,このグループに含まれる
データと問合せの類似度を近似計算	
f...
Oct. 23, 2013	

暗号化ベクトルデータベースのための索引構造	

18	

問合せ処理時のフィルタリング	
•  サーバは問合せベクトルのLSH値を計算する	
同様に,このグループに含まれる
データと問合せの類似度を近似計算	
f...
Oct. 23, 2013	

暗号化ベクトルデータベースのための索引構造	

19	

問合せ処理時のフィルタリング	
•  サーバは問合せベクトルのLSH値を計算する	
同様に,このグループに含まれる
データと問合せの類似度を近似計算	
f...
Oct. 23, 2013	

暗号化ベクトルデータベースのための索引構造	

20	

問合せ処理時間の比較	

time (sec) (log scale)	

•  IPP 法† を用いた EVDB で問合せ時間を比較.
•  IPP 法...
Oct. 23, 2013	

暗号化ベクトルデータベースのための索引構造	

21	

問合せ処理時間の比較	

問合せ処理時間の
削減を確認	

time (sec) (log scale)	

•  IPP 法† を用いた EVDB で問...
Oct. 23, 2013	

暗号化ベクトルデータベースのための索引構造	

まとめと今後の課題	
•  暗号化ベクトルデータベース用の索引を考案した
•  局所性検知可能ハッシュの利用
•  白色化による局所性検知可能ハッシュ値を分散化
•...
Upcoming SlideShare
Loading in …5
×

暗号化ベクトルデータベースのための索引構造

399 views

Published on

CSS 2013.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
399
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

暗号化ベクトルデータベースのための索引構造

  1. 1. 暗号化ベクトルデータベースのための索引構造 川本 淳平 (筑波大学 → 九州大学) 本研究の一部は,(財)中島記念国際交流財団の支援を受けています.
  2. 2. Oct. 23, 2013 暗号化ベクトルデータベースのための索引構造 ベクトルデータベース •  本研究ではベクトルと何らかの値が結びついた DB を考える •  例) 画像データベースなど 特徴ベクトル (129, 251, 94, …. )T (98, 112, 49, …. )T 画像 (値) 2
  3. 3. Oct. 23, 2013 暗号化ベクトルデータベースのための索引構造 3 ベクトルデータベース •  本研究ではベクトルと何らかの値が結びついた DB を考える •  スキーマは (k, v) とする •  k: ベクトル属性 (特徴ベクトルなど) •  v: 各ベクトルに関連付けられた値属性 (データタイプは気にしない) •  問合せの仮定 •  ベクトル属性に対する次の問合せのみを考えることにする •  「キーベクトル属性値 k が sim(k, q) ≧ α を満たすタプルの検索」 •  q: 問合せのベクトル •  α: しきい値 ここでは類似度 sim としてコサイン類似 度を考え,各ベクトルは正化されている とする.
  4. 4. Oct. 23, 2013 4 暗号化ベクトルデータベースのための索引構造 ベクトルデータベース •  問合せの例. 問合せのベクトル: (129, 251, 90, …. )T しきい値: 0.8 (129, 251, 94, …. )T 特徴ベクトル (129, 251, 94, …. )T (98, 112, 49, …. )T 画像 (値)
  5. 5. Oct. 23, 2013 5 暗号化ベクトルデータベースのための索引構造 ベクトルデータベース(VDB)のクラウド化 •  データベース所有者がクラウドサービス上に DB を設置 •  データ共有のため,管理コスト削減のため… VDB 利用 デプロイ VDB 共有者 (データ利用者) データベース所有者
  6. 6. Oct. 23, 2013 6 暗号化ベクトルデータベースのための索引構造 セキュリティ問題の解決が必要 •  クラウドサービスを完全に信用することはできるか? アクセス制御を無視してデー タベース全体を走査 悪意あるサービス提供者は 利用者の情報を取得 VDB 利用 デプロイ VDB データ利用者 データベース所有者
  7. 7. Oct. 23, 2013 7 暗号化ベクトルデータベースのための索引構造 暗号化ベクトルデータベース (EVDB) •  すべてのレコードは所有者によって予め暗号化 •  問合せも同様に暗号化して送信 悪意あるサービスプロバイダ は通信を見れない 悪意あるサービスプロバイダ はアクセスできない EVDB 利用 デプロイ VDB データ利用者 データベース所有者 •  多くの手法が提案されている •  本研究ではそれらと組み合わせて利用できる方式を考える
  8. 8. Oct. 23, 2013 8 暗号化ベクトルデータベースのための索引構造 暗号化ベクトルデータベース (EVDB) •  悪意あるクラウドサービス提供者から不正アクセスを防ぐ枠組み k・q = Enck(k)・Encq(q) を満たす暗号方式を用いる 問合せは Enck(k)・Encq(q) ≧ α を満たすタプルの検索 EVDB (Enck(k), Encv(v)) ・・・ VDB データ利用者 データベース所有者 •  しかしクラウドサービスは問合せ処理の最適化も行えない •  既存手法の多くは問合せごとにすべてのタプルを走査
  9. 9. Oct. 23, 2013 暗号化ベクトルデータベースのための索引構造 9 本研究の目的 •  問合せ処理コストを削減する索引構造の考案 •  問合せごとにすべてのタプルを走査せずに問合せ結果を求める仕組み •  サービスプロバイダにはデータそのものを隠しておきたい •  → 矛盾しているがなんとかコスト削減を行いたい •  局所性検知可能ハッシュを用いたLSHフィルタを提案 •  ハッシュ索引の一種 •  ハッシュ値から漏れる情報量くらいは許すと仮定
  10. 10. Oct. 23, 2013 暗号化ベクトルデータベースのための索引構造 局所性検知可能ハッシュ (LSH) •  少ない情報量で近似的に類似度を計算するデータ構造 •  LSH は m 個の関数 hi (i = 1, 2, …, m) からなる hi(v) = 1; v・bi ≧ 0 0; otherwise (bi は関数 hi ごとに異なるベクトル) •  あるベクトル v に対する LSH のハッシュ値 •  lsh(v) = (h1(v), h2(v), …, hm(v)) •  LSH の特徴 cos(u, v) ≈ cos(π (1− Pr[lsh(u) = lsh(v)])) •  Pr[lsh(u)=lsh(v)]: 二つのベクトル u, vに対する LSH 値のうち いくつ共通の値が合ったか( hi(u) = hi(v) ) 10
  11. 11. Oct. 23, 2013 11 暗号化ベクトルデータベースのための索引構造 局所性検知可能ハッシュ (LSH) •  例) •  lsh(u) = (1, 1, 0) •  lsh(v) = (1, 1, 1) •  Pr[lsh(u) = lsh(v)] = 2/3 b1 u v b2 •  cos(u, v) 〜 cos(π(1 – 2/3)) = 1/2 b3 •  近似類似度の精度は, •  m の個数に依存する(多ければ精度は高い) m •  ベクトルの分布に依存する(広く分散していれば精度は高い) 白色化することで対応 → これにより元データの偏りに関わらず動作する
  12. 12. Oct. 23, 2013 暗号化ベクトルデータベースのための索引構造 12 LSHフィルタ作成の準備 •  データベース利用者は暗号化に加えLSH値を計算 LSH値を追加 暗号化 VDB データベース所有者 (Enck(k), Encv(v)) (lsh(Enck(k)), Enck(k), Encv(v)) クラウドサービス
  13. 13. Oct. 23, 2013 暗号化ベクトルデータベースのための索引構造 LSHフィルタの作成 •  クラウドサーバ上では, LSH値を元に各タプルをグループ化して保管 LSH value (1, 0, ……, 0) tuple ((1, 0, ….., 0), Enck(k1), Encv(v1)) ((1, 0, ….., 0), Enck(k2), Encv(v2)) (1, 1, ……, 0) ((1, 1, ….., 0), Enck(k1), Encv(v1)) 13
  14. 14. Oct. 23, 2013 暗号化ベクトルデータベースのための索引構造 14 問合せ処理時のフィルタリング •  サーバは問合せベクトルのLSH値を計算する lsh(Encq(q)) を計算 find Enck(k) s.t. Enck(k)・Encq(q)≧α LSH 値 タプル (1, 0, ……, 0) ((1, 0, ….., 0), Enck(k1), Encv(v1)) ((1, 0, ….., 0), Enck(k2), Encv(v2)) データ利用者 (1, 1, ……, 0) ((1, 1, ….., 0), Enck(k1), Encv(v1))
  15. 15. Oct. 23, 2013 暗号化ベクトルデータベースのための索引構造 15 問合せ処理時のフィルタリング •  サーバは問合せベクトルのLSH値を計算する lsh(Encq(q)) を計算 find Enck(k) s.t. Enck(k)・Encq(q)≧α LSH 値 タプル (1, 0, ……, 0) ((1, 0, ….., 0), Enck(k1), Encv(v1)) ((1, 0, ….., 0), Enck(k2), Encv(v2)) データ利用者 Pr[(1,0,…,0)=lsh(Encq(q))] を計算することで (1, 1, ……, 0) ((1, 1, ….., このグループに含まれるデータと問合せの類似度を近似計算 0), Enck(k1), Encv(v1))
  16. 16. Oct. 23, 2013 暗号化ベクトルデータベースのための索引構造 16 問合せ処理時のフィルタリング •  サーバは問合せベクトルのLSH値を計算する (近似計算された類似度) <α ならばこのグループはスキップする find Enck(k) s.t. Enck(k)・Encq(q)≧α lsh(Encq(q)) を計算 LSH 値 タプル (1, 0, ……, 0) ((1, 0, ….., 0), Enck(k1), Encv(v1)) ((1, 0, ….., 0), Enck(k2), Encv(v2)) データ利用者 Pr[(1,0,…,0)=lsh(Encq(q))] を計算することで (1, 1, ……, 0) ((1, 1, ….., このグループに含まれるデータと問合せの類似度を近似計算 0), Enck(k1), Encv(v1))
  17. 17. Oct. 23, 2013 暗号化ベクトルデータベースのための索引構造 17 問合せ処理時のフィルタリング •  サーバは問合せベクトルのLSH値を計算する 同様に,このグループに含まれる データと問合せの類似度を近似計算 find Enck(k) s.t. Enck(k)・Encq(q)≧α lsh(Encq(q)) を計算 LSH 値 タプル (1, 0, ……, 0) ((1, 0, ….., 0), Enck(k1), Encv(v1)) ((1, 0, ….., 0), Enck(k2), Encv(v2)) データ利用者 (1, 1, ……, 0) ((1, 1, ….., 0), Enck(k1), Encv(v1))
  18. 18. Oct. 23, 2013 暗号化ベクトルデータベースのための索引構造 18 問合せ処理時のフィルタリング •  サーバは問合せベクトルのLSH値を計算する 同様に,このグループに含まれる データと問合せの類似度を近似計算 find Enck(k) s.t. Enck(k)・Encq(q)≧α lsh(Encq(q)) を計算 LSH 値 タプル (1, 0, ……, 0) ((1, 0, ….., 0), Enck(k1), Encv(v1)) (近似類似度) ≧αのとき, グループ内の各タプルについて 正しい類似度を計算 データ利用者 ((1, 0, ….., 0), Enck(k2), Encv(v2)) (1, 1, ……, 0) ((1, 1, ….., 0), Enck(k1), Encv(v1))
  19. 19. Oct. 23, 2013 暗号化ベクトルデータベースのための索引構造 19 問合せ処理時のフィルタリング •  サーバは問合せベクトルのLSH値を計算する 同様に,このグループに含まれる データと問合せの類似度を近似計算 find Enck(k) s.t. Enck(k)・Encq(q)≧α lsh(Encq(q)) を計算 LSH 値 タプル (1, 0, ……, 0) ((1, 0, ….., 0), Enck(k1), Encv(v1)) (近似類似度) ≧αのとき, グループ内の各タプルについて 正しい類似度を計算 データ利用者 ((1, 0, ….., 0), Enck(k2), Encv(v 実際の類似度 Enck(k)・Encq(q) 2)) を計算 (1, 1, ……, 0) ((1, 1, ….., 0), Enck(k1), Encv(v1)) 類似度がしきい値未満であるグループをスキップすることで処理時間を削減する
  20. 20. Oct. 23, 2013 暗号化ベクトルデータベースのための索引構造 20 問合せ処理時間の比較 time (sec) (log scale) •  IPP 法† を用いた EVDB で問合せ時間を比較. •  IPP 法は範囲検索に対応した EVDB の一種(詳細は割愛します) •  横軸は問合せ範囲の幅,縦軸は問合せ処理時間(対数尺度). †J. Kawamoto, M. Yoshikawa: Private Range Query by Perturbation and Matrix Based Encryption. In Proc. of the 6th IEEE International Conf. on Digital Information Management, pp. 211–216. (2011)
  21. 21. Oct. 23, 2013 暗号化ベクトルデータベースのための索引構造 21 問合せ処理時間の比較 問合せ処理時間の 削減を確認 time (sec) (log scale) •  IPP 法† を用いた EVDB で問合せ時間を比較. •  IPP 法は範囲検索に対応した EVDB の一種(詳細は割愛します) •  横軸は問合せ範囲の幅,縦軸は問合せ処理時間(対数尺度). m = 128 (recall = 0.6) †J. Kawamoto, M. Yoshikawa: Private Range Query by Perturbation and Matrix Based Encryption. In Proc. of the 6th IEEE International Conf. on Digital Information Management, pp. 211–216. (2011)
  22. 22. Oct. 23, 2013 暗号化ベクトルデータベースのための索引構造 まとめと今後の課題 •  暗号化ベクトルデータベース用の索引を考案した •  局所性検知可能ハッシュの利用 •  白色化による局所性検知可能ハッシュ値を分散化 •  今後の課題 •  提案手法は近似を用いており再現率が小さくなる •  → 近似によるエラーを減らす工夫 22

×