Transcript slide
組織間プライバシー保護
データマイニングの考察
9adrm009 香川大介
背景: 異業種間の連携
店舗・利用履歴
連携
B
A
A
利用者
u1
B
組織
u2
高松に行かれる
のでしたら評判
の高い讃岐うど
んのお店を紹介
します
u3
従来技術:垂直分割PPDM
Vaidya, Clifton 2003
秘匿内積評価プロトコル
ナイーブベイズ推論器
P(テニス|晴,高)
A
B
日にち
天気
気温
湿度
テニス
1/19
晴
高
低
Yes
1/20
晴
高
高
No
1/21
雨
高
高
Yes
1/22
雨
低
高
Yes
問題点:分割の非同期性
A
B
ID
天気
気温
ID
湿度
1
晴
高
1
低
2
晴
高
3
雨
問題3. 非効率
4
雨
N
100
雨
テニス
高
*
3
Yes
問題1. 欠損値
*
*
Yes
高
低
4
高
Yes
5
高
No 重複
問題2.
3
高
高
…
No
研究目的
目的
非同期垂直分割のデータセットに対するナ
イーブベイズ推論器
仮定:
評価値数 nA ≈ nB ≪ N (ID空間数)
要求条件
欠損値,(重複),効率性
従来研究1. [VC03]
秘匿内積
Alice has X = (x1,..,xn)
Bob has Y = (y1,..,yn)
Wish to compute sA + sB = X.Y
Protocol
A sends E[x1], E[x2] to B
B chooses sB and sends c = E[x1]y1E[x2]y2/E[sB]
A decrypts D[c] = x1y1 + x2y2 – sB = sA
従来研究2. [AES03]
照合タグ(可換性を満たす一方向性関数)
A
X = { 1, 2, 3}
1. 乱数 u Zq
H(1)u, H(2)u, H(3)u
3. 照合
B
Y = {2, 3, 4}
2. 乱数 v Zq
H(2)v, H(3)v, H(4)v
H(1)uv, H(2)uv, H(3)uv
H(2)vu, H(3)vu, H(4)vu
H(1)uv, H(2)uv, H(3)uv
マッチ数 z = 2 = |X∩Y|
照合タグの問題
ナイーブベイズ推論への適用検討
問題点:
z= |X∩Y|が組織Aに分かってしまう.
VC03では,途中結果は nA + nB = a.b と分散
されていた.
提案方式
方式1
再ソートして共通部分だけにVC03を適用.
欠損値の近似値で置換
方式2.
チャフ付き照合タグ
(AES03ベース)
途中結果を不明にするようにチャフを混入
提案方式2. チャフ付照合タグ
A
X = { 1, 2, 3}
1. 乱数 u Zq
B
Y = {2, 3, 4}
2. 乱数 v Zq, sB [0,n]
H(1)u, H(2)u, H(3)u
3. 照合
H(2)vu, H(3)vu, H(4)vu
H(2)v, H(3)v, H(4)v
ti = H(yi)v w/p= sB/n
ri
w/p= 1-p
H(1)uv, H(2)
r2 uv , H(3)uv
H(1)uv, r2 , H(3)uv
マッチ数 sA = 1 = |X∩Y|
SFE2
sB/n = 1/2
|X∩Y| = sA * n/sB = 2
出力
分散された積集合
| X Y |
s A nB
sB
秘匿関数計算により
評価
パフォーマンス
精度
安全性
暗号化処理(方式1)
tE = 1.1 [s] 暗号化
tD = 1.6 [s] 複号
tP = 0.15 [s] べき乗
2. Fairplay (Yao’s SFE)
Fairplay
secure two-party computation system,by D Malkhi,
N Nisan, B Pinkas, Y Sella, Usenix Security Symp.
2004.
Compiler for SFDL to Boolean circuit
(1. 8-bit AND, 2. 32-bit 比較,3. 16項目の24-bit暗
号化データ検索,4. 16-bit メジアン)
FairPlayでの実装例
SharedSum
分散和比較
S(分散した和の比較)
A0 + SB0 > SA1 + SB1
1. program SharedCmp {
2.
const size = 2; type int = Int<8>;
3.
type AliceInput = int[size]; type BobInput = int[size];
4.
type AliceOutput = int; type BobOutput = int;
5.
type Output = struct {AliceOutput alice, BobOutput bob};
6.
type Input = struct {AliceInput alice, BobInput bob};
7.
function Output output(Input input) {
8.
if(input.alice[0] + input.bob[0] >
9.
input.alice[1] + input.bob[1]){
10.
output.alice = input.alice[0];
11.
output.bob = input.bob[0];
12.
}else{
13.
output.alice = input.alice[1];
14.
output.bob = input.bob[1];
15.
}
16. }
17. }
time [s]
SFE処理時間
10bit = 1024の定義域
SFE1 (加算) = 1.6 秒
SFE2 (乗算) = 15.3 秒
7
6
5
4
3
2
1
0
Sum
Div
0
5
10
15
bit
20
25
処理時間の比較
120
1.1 * x + 1.5 + 1.6
方式1.
内積
0.15 * 4 * x*0.1
+ 15
0.15*4 * x*0.01 + 15
100
80
60
40
方式2. 照合タグ n/N = 0.1
20
n/N = 0.01
0
0
20
40
60
N
80
100
精度と安全性
真の Z = |X ∩ Y| = 10
0.3
P(sA|z)
0.25
0.2
0.15
0.1
0.05
0
0
5
観測値 szB
10
15
まとめ
入力単位
計算量
(tE 暗号化,tD 複
号化,tP べき乗)
精度
安全性
方式1 [VC03]
秘匿内積
N次元ベクトル
方式2 [AES03]
チャフ照合
n要素の集合 X
T1 =
T2
tE N + tD +SFE1 = tP n +SFE2
誤差なし
sB/n
P(z | x.y) = 1/N
P(z | sA) > 1/n
結論
方式1(再ソート法)はID空間が狭いとき有
効.精度も高く,安全性も保証.
方式2(チャフ付き照合タグ)はID空間が疎
であるときに有効.ただし,精度は比較的
低く,元の値について漏れる情報がある.
分散比較
問題
安全性 P(a|c)の分布
0.25
0.20
0.15
系列1
0.10
0.05
0.00
0
5
10
15
方式1. 秘匿内積評価の処理時間
Secure scalar product
n encryption + n exponentiations
+ n multiplications + 1 decryption
n = 1000,1024 bit enc.の時: 270s = 4m
1. Naïve Bayes
Vaidya Clifton 2004 [27]
識別(スパム判定)
最大尤度
CMAP = argmax(cj in {Y,N}) P(cj | a1,a2)
P(yes | sunny, hot) = ½
P(no | sunny, hot) = ½
CMAP = yes (no)
Naïveな仮定: 全属性は独立
Naïve Bays
CNB = argmax P(cj | a1, a2)
= argmax P(a1, a2 | cj) P(cj)/ P(a1, a2)
= argmax P(a1|cj) P(a2|cj) P(cj)/ P(a1) P(a2)
= argmax P(a1|cj) P(a2|cj) P(cj)
P(sunny|y) = 2/9, P(hot|y) = 2/9, P(y) = 9/14
P(sunny|n) = 3/5, P(hot|n) = 2/5, P(n) = 5/14
P(s|y)P(n|y)P(y) = 2/63 < P(s|n)P(h|n)P(n) = 2/35
より, argmax = n
Class変数を持つサイトと
秘匿内積計算
方式1. 再ソート
加法の準同型暗号
Enc ( m 1 ; r1 ) Enc ( m 2 ; r2 ) Enc ( m 1 m 2 ; r1 r2 ),
Enc ( m 1 ; r1 )
m2
rはランダムな値
Enc ( m 1 m 2 ; r1 )
ElGamal暗号の場合
計算 2 3 5
C1 : g
2 r1
g
C2 : g 1 g
r
r2
3 r2
g
g
r1 r2
M C1 / C 2
g
5 ( r1 r2 )
g
5
5 ( r1 r2 )
計算 2 4
2
C1 : ( g
2 r1
r1 r2
2
C2 : (g 1 ) g
r
/g
) g
2
2 r1
4 2 r1