C10:秘匿共通集合計算プロトコルを用いた 就職活動支援システム“JHT” 菊池研究室 香川 大介
就職活動の情報収集 友達との情報交換 志望企業が同じならライバルであり仲間 イヴ ねえ、アリス あなたの欠点は何? なんて聞かれたわ ねえ、アリス この前の面接 どうだった?
問題点 友達と共通な企業があるかわからない 同じ志望企業以外知られるのは都合が悪い 就職活動リスト ・自宅警備員 ・大人のおもちゃ 工場の従業員 ・007(MI6)
研究目的 二者間で志望企業リスト秘匿したまま 同じ志望企業だけを見つけ出すシステム ”Job Hunting Together(JHT)” 二者間で志望企業リスト秘匿したまま 同じ志望企業だけを見つけ出すシステム ”Job Hunting Together(JHT)” を*秘匿共通集合計算プロトコルを使い構築する。 *FreedmanらがEUROCRYPT 2004で提唱
秘匿共通集合計算プロトコル お互いの集合を多項式で表し、準同型暗号を利用して暗号化したまま計算できる方式 Alice {2,3} 暗号文 Alice {2,3} Eve {2,4} 01011… 代入 f(X) = (X - 2)(X - 3) f(2) = (2 - 2)(2 - 3) f(X) = (X - 2)(X - 3) わからない = 0 f(2) f(4) f=0 f=2
JHTの実装 JAVA言語 変形ElGamal暗号(準同型暗号) 企業リストをハッシュ関数で数字化 クライアントとサーバで実現
JHT 実行の流れ 志望企業リストの準備 Step1:サーバ(S)の作業 Step2:クライアント(C)の作業 Step3:結果を表示 C JHT 実行の流れ 志望企業リストの準備 Step1:サーバ(S)の作業 Step2:クライアント(C)の作業 Step3:結果を表示 C S Step1 サーバ(S)とクライアント(C)に分かれて作業していきます Step2 JHT処理 Step3
志望企業リストの準備 企業名フォーマットに従い、志望企業リストをテキストファイルで作成する クライアントのリスト サーバのリスト
step1 サーバの作業 自分のサーバに接続 ” JHTS”プログラムを起動させる ファイル名の入力 自分の志望企業リストのファイル名を入力します。そして自分のサーバ、アドレスをクライアントに教えます。
Step3:結果を表示(クライアント) step2 クライアントの作業 “ JHTC”プログラムを起動させる 接続先 ファイル名
実験 目的: 共通な志望企業がどの程度でるのか調べる 5人の被験者(A~E)に総当りの組み合わせで“JHT”を使い調べた。 目的: 共通な志望企業がどの程度でるのか調べる 5人の被験者(A~E)に総当りの組み合わせで“JHT”を使い調べた。 プライバシー つまり志望企業リスト
実行結果 企業数は10社~30社 平均19.8社 共通な志望企業の平均は1.7社 B A C D E 4 3 1 共通な企業数 A B C 企業数は10社~30社 平均19.8社 共通な志望企業の平均は1.7社 B A C D E A B C D E - 3 1 4 4 3 1 共通な企業数
結論 お互いに志望企業リストを隠して共通の企業だけがわかるようになった。 今後の課題 二者間ではなく一対多で使用できる拡張 規模の大きな学科内の実験がある。
ご清聴ありがとうございました
処理速度 論文理論値 および 実装時のシステム速度 kc クライアントのアイテム数 理論値 O( kc ks ) システム速度 論文理論値 および 実装時のシステム速度 kc クライアントのアイテム数 理論値 O( kc ks ) システム速度 56秒(50*50アイテム) Hash時 Kc + ks lnln kc