SlideShare a Scribd company logo
1 of 16
Download to read offline
ElGamal型暗号文に対する
任意関数演算・再暗号化の
二者間秘密計算プロトコルとその応用
SCIS2020 2C3 2020/1/29
縫田光司 : 東京大学/産業技術総合研究所
大畑幸矢 : 産業技術総合研究所
(発表者)光成滋生 : サイボウズ・ラボ株式会社
Nuttapong Attrapadung : 産業技術総合研究所
• 背景
• 提案プロトコル
• 文字列の編集距離の秘匿化への適用
• ベンチマーク
概要
2 / 16
• 秘密計算
• 複数人が自分の情報を隠しつつ
互いにやりとりをして𝑓(𝑚1, … )を求める
• 秘密分散
• Garbled circuit
• 準同型暗号(HE : Homomorphic Encryption)
• FHE(任意演算) ; 主に2者間
• 今回のテーマ
• FHEは重たいのでAHE(加法HE)で2者間秘密計算をやりたい
背景
𝑚1
𝑓(𝑚1,…)
𝐸𝑛𝑐(𝑚1)
𝐸𝑛𝑐(𝑓(𝑚1, 𝑚2))
𝑚1
𝑓(𝑚1, 𝑚2)
𝐸𝑛𝑐(𝑚1)
𝐸𝑛𝑐(𝑓(𝑚1, 𝑚2))
3 / 16
𝑚2
• 複雑な𝑓(𝑚)の計算はできない
• client(秘密鍵保持者)に手伝ってもらう
• 𝑓を加法、定数倍からなる複数の簡単な処理𝑓1, 𝑓2,…に分割
• インタラクションは増える
• 途中結果の秘匿化の必要性
• 𝑓𝑖(𝑚1, . . )をそのまま渡すと計算途中の値が漏れる
• 対応方法例 : 乱数𝑟を足して𝐸𝑛𝑐(𝑓𝑖(𝑚1, . . ) + 𝑟)をclientに渡す
AHEを使うときのよくある方法
𝐸𝑛𝑐(𝑚1)
𝐸𝑛𝑐(𝑓(𝑚1,. . ))
𝑚1
𝑓(𝑚1,. . )
𝐸𝑛𝑐(𝑚1)
𝐸𝑛𝑐(𝑓(𝑚1,. . ))
𝐸𝑛𝑐(𝑓1 𝑚1,.. )
𝐸𝑛𝑐(𝑓2(𝑚1,. . ))
...
4 / 16
• 乱数𝑟を足して𝐸𝑛𝑐(𝑚 + 𝑟)をclientに渡す
• lifted-ElGamal暗号
• 大きな乱数を足すと復号できない
• Paillier暗号
• 遅い、暗号文が大きい
途中結果の秘匿化の問題点
暗号化 復号 暗号文サイズ
ElGamal(256 bit) 14usec 40usec 1024bit
Paillier(2048 bit) 9000usec 8600usec 4096bit
5 / 16
• AHEベースの二者間プロトコル𝒫
• 𝑓(𝑥) ; 整数から整数への任意の一変数関数
• serverは𝐸𝑛𝑐(𝑚)から𝐸𝑛𝑐(𝑓 𝑚 )を得る(𝑚の値は知らない)
• 秘密鍵を持つclientは𝑚の情報をえられない
• clientはserverの手伝いをするだけ
• lifted-ElGamal型暗号に適用可能
提案プロトコル
input : 𝐸𝑛𝑐(𝑚)
𝑋
𝑌
output : 𝐸𝑛𝑐(𝑓(𝑚))
𝑋
𝑌
client
Step 1
Step 3
Step 2 server
6 / 16
• 𝑆 ; 𝑚のとり得る平文の集合, 𝑓: 𝑆 → ℤ
• server input : 𝐸𝑛𝑐 𝑚 , output : 𝑋 = Sℎuffle 𝛾𝑖 𝐸𝑛𝑐 𝑚 − 𝑖 𝑖∈𝑆
• 例 : 𝑆 = {−2,−1,0,1,2}, 𝑚 = 1とする(𝑚 : unknown)
Step 1 : serverによる𝐸𝑛𝑐 𝑚 の秘匿化
=
𝛾0 𝐸𝑛𝑐(𝑚 + 2) 𝛾1 𝐸𝑛𝑐(𝑚 + 1) 𝛾2 𝐸𝑛𝑐(𝑚 + 0) 𝛾3 𝐸𝑛𝑐(𝑚 − 1) 𝛾4 𝐸𝑛𝑐(𝑚 − 2)
𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(∗)
=
=
=
=
𝐸𝑛𝑐(𝑚 + 2) 𝐸𝑛𝑐(𝑚 + 1) 𝐸𝑛𝑐(𝑚 + 0) 𝐸𝑛𝑐(𝑚 − 1) 𝐸𝑛𝑐(𝑚 − 2)
𝐸𝑛𝑐(𝑚) 1. 𝐸𝑛𝑐(𝑖)を引く for 𝑖 ∈ 𝑆
2. 乱数𝛾𝑖を掛ける for 𝑖 ∈ 𝑆
𝑚番目のみ0. それ以外乱数
serverはその場所を知らない
𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(∗)
3. ランダムシャッフル
𝑋 =
7 / 16
• clientは𝑋 = Shuffle 𝛾𝑖 𝐸𝑛𝑐 𝑚 − 𝑖 𝑖∈𝑆を受信
• 𝑌 = Shuffle 𝐸𝑛𝑐 𝛿𝑖𝑚 𝑖∈𝑆を計算
• シャッフルされているため0の位置から
𝑚の情報は得られない
• clientはserverに𝑌 = Shuffle 𝐸𝑛𝑐 𝛿𝑖𝑚 𝑖∈𝑆を返す
Step 2 : clientによる再暗号化
𝐸𝑛𝑐(0) 𝐸𝑛𝑐(1) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(0)
𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(∗)
∗ 0 ∗ ∗ ∗
復号して0なら𝐸𝑛𝑐 1
それ以外は𝐸𝑛𝑐(0)を生成
8 / 16
• input : 𝑌 = Shuffle 𝐸𝑛𝑐 𝛿𝑖𝑚 𝑖∈𝑆
• serverは 𝐸𝑛𝑐 𝛿𝑖𝑚 𝑖∈𝑆を得る
• σ𝑖∈𝑆 𝑓 𝑖 𝐸𝑛𝑐 𝛿𝑖𝑚 = 𝑓 𝑚 𝐸𝑛𝑐 1 = 𝐸𝑛𝑐(𝑓 𝑚 )を算出
Step 3 : serverによる𝐸𝑛𝑐(𝑓 𝑚 )の計算
𝐸𝑛𝑐(0) 𝐸𝑛𝑐(1) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(0)
𝐸𝑛𝑐(0) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(1) 𝐸𝑛𝑐(0)
serverはシャッフルを
元に戻す
9 / 16
• プロトコルの特徴
• 𝑓は毎回変更可能(𝑓𝑚2
(𝑚1) ≔ 𝑓 𝑚1, 𝑚2 を扱える)
• clientの復号処理は暗号文が𝐸𝑛𝑐(0)か否か確認できればよい
• 復号可能な空間が制限されたlifted-ElGamal暗号に適用可能
• 効率は平文のとりえる集合𝑆の大きさに比例
• 暗号方式の切り換え
• clientの𝐸𝑛𝑐(𝛿𝑖𝑚)を作る代わりに別のAHEを用いてもよい
• 𝐸𝑛𝑐(𝑚)から𝐸𝑛𝑐′(𝑓 𝑚 )への変換
• leveled-HE暗号における"対話型bootstrap"
• 乗算後の暗号文を乗算前の暗号文に変換
• 加法準同型-属性ベース暗号(ABE)の構成
• maliciousモデル
プロトコルの拡張(1/2)
10 / 16
• 特殊な2変数関数への対応
• max 𝑥, 𝑦 , min 𝑥, 𝑦 , equal 𝑥, 𝑦 , lessThan(𝑥, 𝑦)など
• max 𝑥, 𝑦 = max 𝑥 − 𝑦, 0 + 𝑦 =: max
0
(𝑥 − 𝑦) + 𝑦とすると
𝐸𝑛𝑐 𝑥 − 𝐸𝑛𝑐 𝑦 = 𝐸𝑛𝑐(𝑥 − 𝑦)に関する
1変数関数max
0
(⋅)として適用可能
• 汎用2変数関数𝑓(𝑥, 𝑦)
• 2個の暗号文𝐸𝑛𝑐 𝑥 , 𝐸𝑛𝑐(𝑦)に対して
• 𝑥, 𝑦 ∈ 𝑆のとき𝑡 ≔ 𝑥 𝑆 + 𝑦で 𝑥, 𝑦 ↔ 𝑡の1対1の対応を作り
• 𝐹 𝑡 ≔ 𝑓(𝑥, 𝑦)
• 𝐸𝑛𝑐 𝑥 𝑆 + 𝐸𝑛𝑐 𝑦 = 𝐸𝑛𝑐 𝑥 𝑆 + 𝑦
• とすることで可能(ただし空間が𝑆 × 𝑆になる)
• 2LHE暗号ベースで𝐸𝑛𝑐 𝑥 , 𝐸𝑛𝑐(𝑦)から 𝐸𝑛𝑐 𝛿 𝑥𝑖 ,{𝐸𝑛𝑐 𝛿 𝑦𝑗 }を
求めてσ𝑖,𝑗 𝑓 𝑖, 𝑗 𝐸𝑛𝑐 𝛿 𝑥𝑖 𝐸𝑛𝑐 𝛿 𝑦𝑗 = 𝐸𝑛𝑐(𝑓 𝑥, 𝑦 )を算出
プロトコルの拡張(2/2)
11 / 16
• 編集距離
• 2個の文字列X, Yの近さdist(X, Y)を表す
• Xに1文字の挿入/削除/置換操作を何回か繰り返してYにする
• その最小ステップ数がdist(X, Y)
• dist("abcd", "abcd") = 0
• dist("abcd", "abXd") = 1
• dist("abcd", "bcda") = 2
• 応用例
• DNAの配列の類似性などのゲノム解析の基本ツール
文字列の編集距離
12 / 16
• 動的計画法(DP)によるO(|X||Y|)アルゴリズム
• 𝑋 = 𝑥1 𝑥2 … 𝑥 𝐿, 𝑌 = 𝑦1 𝑦2 … 𝑦 𝐿
• 𝑒 𝑥𝑖, 𝑦𝑗 = 1 − 𝑒𝑞𝑢𝑎𝑙 𝑥𝑖, 𝑦𝑗 = 0 𝑖𝑓 𝑥𝑖 = 𝑦𝑗 otherwise 1
• 予稿集p.6の𝑒(𝑥𝑖, 𝑦𝑗)は間違い
• 𝐷0,𝑖 = 𝐷𝑖,0 = 𝑖
• 𝐷𝑖𝑗 = min{𝐷𝑖−1,𝑗 + 1, 𝐷𝑖,𝑗−1 + 1, 𝐷𝑖−1,𝑗−1 + 𝑒 𝑥𝑖, 𝑦𝑗 }
編集距離の計算方法
X a b c d
Y 0 1 2 3 4
b 1 1 2 3 4
c 2 1 2 3 4
d 3 2 1 2 3
f 4 3 2 1 2
X="abcd"
Y="bcdf"
右下の値
=dist(X, Y)
13 / 16
𝐷𝑖−1,𝑗
𝐷𝑖,𝑗−1𝐷𝑖−1,𝑗−1
𝐷𝑖,𝑗
表の値を左上から
順に算出
• Aliceが文字列X, Bobが文字列Yを持っているときに
互いに文字列を見せずにdist(X, Y)を計算する
• 動的計画法(DP)の計算𝐷𝑖𝑗 = min(𝑈𝑖−1, 𝐿𝑖−1, 𝐷𝑖−1)に適用
• 実装概要
• AHEはsecp256k1上のLifted-ElGamal暗号
• テーブル𝐷𝑖,𝑗の計算に必要なmin(𝑥, 𝑦)関数について
𝑥 − 𝑦 ∈ 𝑆 ≔ {−2,−1,0,1}という性質を利用(|X|, |Y|に非依存)
• 効率は𝑂( 𝐿 2
)
• https://github.com/herumi/edit-dist/
(厳密な)編集距離の秘匿計算
秘密鍵を保持
𝑋を持ってる
𝐸𝑛𝑐(𝑋)
𝑌を持ってる
Enc-DP
...
𝑑𝑖𝑠𝑡(𝑋, 𝑌) ← 𝐸𝑛𝑐(𝑑𝑖𝑠𝑡(𝑋, 𝑌))
14 / 16
• 文字列の長さ𝐿を変えたときの処理時間(sec)
• FHEベース(non-bootstrap) 682並列実行の一つ当たり
• J.H.Cheon, M.Kim, K.E.Lauter. Homomorphic computation of edit distance. In
Financial Cryptography and Data Security 2015
• 混合(Paillier + 秘密分散 + garbled circuit) with 1Gbps-LAN
• K.Cheng,Y.Hou,L.Wang. Secure similar sequence query on outsourced genomic
data. AsiaCCS 2018
• 秘密分散(SS)ベース : 表の()内数値は事前計算の処理時間(sec)
• 大畑, 縫田 Communication-efficient (client-aided) secure two-party protocols and its
application. In Proc. of Financial Cryptography and Data Security 2020, to appear.
• Ours : WANでの実測値(MacBook Pro --- Core i7 desktop PC)
既存手法との比較(条件が異なるので参考値)
8 50 128 256 512 1024
FHE 27.5 N/A N/A N/A N/A
混合 <29 740 N/A N/A N/A N/A
SS 41.8(+33.4) 84.9(+135) 174.5(+534) 367.0(+2262)
Ours 0.35 8.7 24.4 58.4 203.4
15 / 16
• lifted-ElGamal型暗号方式に適用可能な
𝐸𝑛𝑐(𝑚)から𝑓(𝐸𝑛𝑐 𝑚 )への2者間プロトコルの提案
• プロトコルの拡張
• maliciousモデル対応
• 暗号方式の変換
• レベル準同型で暗号文レベルの低減(対話型bootstrap)
• 加法準同型-属性ベース暗号の構成
• 文字列の編集距離計算の文字列秘匿化と実装実験
• 謝辞
• 総務省SCOPE(受付番号182103105)の委託
• JST CREST(課題番号JPMJCR19F6)の援助
• 科研費(課題番号19H01109)の援助
• Intel株式会社堀越将司氏による2nd-Xeon SP評価環境の協力
まとめ
16 / 16

More Related Content

What's hot

『データ解析におけるプライバシー保護』勉強会
『データ解析におけるプライバシー保護』勉強会『データ解析におけるプライバシー保護』勉強会
『データ解析におけるプライバシー保護』勉強会
MITSUNARI Shigeo
 
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
MITSUNARI Shigeo
 
指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端
Yoichi Iwata
 

What's hot (20)

暗認本読書会7
暗認本読書会7暗認本読書会7
暗認本読書会7
 
暗認本読書会6
暗認本読書会6暗認本読書会6
暗認本読書会6
 
暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり
 
楕円曲線入門 トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門 トーラスと楕円曲線のつながり
 
ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術
 
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
 
暗認本読書会11
暗認本読書会11暗認本読書会11
暗認本読書会11
 
『データ解析におけるプライバシー保護』勉強会
『データ解析におけるプライバシー保護』勉強会『データ解析におけるプライバシー保護』勉強会
『データ解析におけるプライバシー保護』勉強会
 
暗認本読書会4
暗認本読書会4暗認本読書会4
暗認本読書会4
 
自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介
 
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
 
暗認本読書会5
暗認本読書会5暗認本読書会5
暗認本読書会5
 
指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端
 
暗認本読書会12
暗認本読書会12暗認本読書会12
暗認本読書会12
 
差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)
 
技術勉強会(楕円曲線暗号)資料
技術勉強会(楕円曲線暗号)資料技術勉強会(楕円曲線暗号)資料
技術勉強会(楕円曲線暗号)資料
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
 
AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜
AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜
AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜
 
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみたWASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみた
 
Efficient Two-level Homomorphic Encryption in Prime-order Bilinear Groups and...
Efficient Two-level Homomorphic Encryption in Prime-order Bilinear Groups and...Efficient Two-level Homomorphic Encryption in Prime-order Bilinear Groups and...
Efficient Two-level Homomorphic Encryption in Prime-order Bilinear Groups and...
 

Similar to ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用

LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
Takeshi Yamamuro
 
20030203 doctor thesis_presentation_makotoshuto
20030203 doctor thesis_presentation_makotoshuto20030203 doctor thesis_presentation_makotoshuto
20030203 doctor thesis_presentation_makotoshuto
Makoto Shuto
 

Similar to ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用 (20)

暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
x86とコンテキストスイッチ
x86とコンテキストスイッチx86とコンテキストスイッチ
x86とコンテキストスイッチ
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
 
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたIntro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
 
HPC Phys-20201203
HPC Phys-20201203HPC Phys-20201203
HPC Phys-20201203
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用
 
[Basic 3] 計算量 / 配列, 連結リスト / ハッシュ テーブル / スタック, キュー
[Basic 3] 計算量 / 配列, 連結リスト / ハッシュ テーブル / スタック, キュー[Basic 3] 計算量 / 配列, 連結リスト / ハッシュ テーブル / スタック, キュー
[Basic 3] 計算量 / 配列, 連結リスト / ハッシュ テーブル / スタック, キュー
 
Variational autoencoder
Variational autoencoderVariational autoencoder
Variational autoencoder
 
lispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep Learninglispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep Learning
 
文献紹介:Gate-Shift Networks for Video Action Recognition
文献紹介:Gate-Shift Networks for Video Action Recognition文献紹介:Gate-Shift Networks for Video Action Recognition
文献紹介:Gate-Shift Networks for Video Action Recognition
 
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
 
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタつくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
 
introduce "Stealing Machine Learning Models via Prediction APIs"
introduce "Stealing Machine Learning Models  via Prediction APIs"introduce "Stealing Machine Learning Models  via Prediction APIs"
introduce "Stealing Machine Learning Models via Prediction APIs"
 
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けてZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
PBL1-v1-008j.pptx
PBL1-v1-008j.pptxPBL1-v1-008j.pptx
PBL1-v1-008j.pptx
 
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
 
20030203 doctor thesis_presentation_makotoshuto
20030203 doctor thesis_presentation_makotoshuto20030203 doctor thesis_presentation_makotoshuto
20030203 doctor thesis_presentation_makotoshuto
 
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
 

More from MITSUNARI Shigeo

More from MITSUNARI Shigeo (13)

暗認本読書会10
暗認本読書会10暗認本読書会10
暗認本読書会10
 
暗認本読書会9
暗認本読書会9暗認本読書会9
暗認本読書会9
 
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenIntel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
 
暗認本読書会8
暗認本読書会8暗認本読書会8
暗認本読書会8
 
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
WebAssembly向け多倍長演算の実装
WebAssembly向け多倍長演算の実装WebAssembly向け多倍長演算の実装
WebAssembly向け多倍長演算の実装
 
LazyFP vulnerabilityの紹介
LazyFP vulnerabilityの紹介LazyFP vulnerabilityの紹介
LazyFP vulnerabilityの紹介
 
ゆるバグ
ゆるバグゆるバグ
ゆるバグ
 
集約署名
集約署名集約署名
集約署名
 
A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生
 
Practical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Practical Two-level Homomorphic Encryption in Prime-order Bilinear GroupsPractical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Practical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
 

Recently uploaded

Recently uploaded (11)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用

  • 1. ElGamal型暗号文に対する 任意関数演算・再暗号化の 二者間秘密計算プロトコルとその応用 SCIS2020 2C3 2020/1/29 縫田光司 : 東京大学/産業技術総合研究所 大畑幸矢 : 産業技術総合研究所 (発表者)光成滋生 : サイボウズ・ラボ株式会社 Nuttapong Attrapadung : 産業技術総合研究所
  • 2. • 背景 • 提案プロトコル • 文字列の編集距離の秘匿化への適用 • ベンチマーク 概要 2 / 16
  • 3. • 秘密計算 • 複数人が自分の情報を隠しつつ 互いにやりとりをして𝑓(𝑚1, … )を求める • 秘密分散 • Garbled circuit • 準同型暗号(HE : Homomorphic Encryption) • FHE(任意演算) ; 主に2者間 • 今回のテーマ • FHEは重たいのでAHE(加法HE)で2者間秘密計算をやりたい 背景 𝑚1 𝑓(𝑚1,…) 𝐸𝑛𝑐(𝑚1) 𝐸𝑛𝑐(𝑓(𝑚1, 𝑚2)) 𝑚1 𝑓(𝑚1, 𝑚2) 𝐸𝑛𝑐(𝑚1) 𝐸𝑛𝑐(𝑓(𝑚1, 𝑚2)) 3 / 16 𝑚2
  • 4. • 複雑な𝑓(𝑚)の計算はできない • client(秘密鍵保持者)に手伝ってもらう • 𝑓を加法、定数倍からなる複数の簡単な処理𝑓1, 𝑓2,…に分割 • インタラクションは増える • 途中結果の秘匿化の必要性 • 𝑓𝑖(𝑚1, . . )をそのまま渡すと計算途中の値が漏れる • 対応方法例 : 乱数𝑟を足して𝐸𝑛𝑐(𝑓𝑖(𝑚1, . . ) + 𝑟)をclientに渡す AHEを使うときのよくある方法 𝐸𝑛𝑐(𝑚1) 𝐸𝑛𝑐(𝑓(𝑚1,. . )) 𝑚1 𝑓(𝑚1,. . ) 𝐸𝑛𝑐(𝑚1) 𝐸𝑛𝑐(𝑓(𝑚1,. . )) 𝐸𝑛𝑐(𝑓1 𝑚1,.. ) 𝐸𝑛𝑐(𝑓2(𝑚1,. . )) ... 4 / 16
  • 5. • 乱数𝑟を足して𝐸𝑛𝑐(𝑚 + 𝑟)をclientに渡す • lifted-ElGamal暗号 • 大きな乱数を足すと復号できない • Paillier暗号 • 遅い、暗号文が大きい 途中結果の秘匿化の問題点 暗号化 復号 暗号文サイズ ElGamal(256 bit) 14usec 40usec 1024bit Paillier(2048 bit) 9000usec 8600usec 4096bit 5 / 16
  • 6. • AHEベースの二者間プロトコル𝒫 • 𝑓(𝑥) ; 整数から整数への任意の一変数関数 • serverは𝐸𝑛𝑐(𝑚)から𝐸𝑛𝑐(𝑓 𝑚 )を得る(𝑚の値は知らない) • 秘密鍵を持つclientは𝑚の情報をえられない • clientはserverの手伝いをするだけ • lifted-ElGamal型暗号に適用可能 提案プロトコル input : 𝐸𝑛𝑐(𝑚) 𝑋 𝑌 output : 𝐸𝑛𝑐(𝑓(𝑚)) 𝑋 𝑌 client Step 1 Step 3 Step 2 server 6 / 16
  • 7. • 𝑆 ; 𝑚のとり得る平文の集合, 𝑓: 𝑆 → ℤ • server input : 𝐸𝑛𝑐 𝑚 , output : 𝑋 = Sℎuffle 𝛾𝑖 𝐸𝑛𝑐 𝑚 − 𝑖 𝑖∈𝑆 • 例 : 𝑆 = {−2,−1,0,1,2}, 𝑚 = 1とする(𝑚 : unknown) Step 1 : serverによる𝐸𝑛𝑐 𝑚 の秘匿化 = 𝛾0 𝐸𝑛𝑐(𝑚 + 2) 𝛾1 𝐸𝑛𝑐(𝑚 + 1) 𝛾2 𝐸𝑛𝑐(𝑚 + 0) 𝛾3 𝐸𝑛𝑐(𝑚 − 1) 𝛾4 𝐸𝑛𝑐(𝑚 − 2) 𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(∗) = = = = 𝐸𝑛𝑐(𝑚 + 2) 𝐸𝑛𝑐(𝑚 + 1) 𝐸𝑛𝑐(𝑚 + 0) 𝐸𝑛𝑐(𝑚 − 1) 𝐸𝑛𝑐(𝑚 − 2) 𝐸𝑛𝑐(𝑚) 1. 𝐸𝑛𝑐(𝑖)を引く for 𝑖 ∈ 𝑆 2. 乱数𝛾𝑖を掛ける for 𝑖 ∈ 𝑆 𝑚番目のみ0. それ以外乱数 serverはその場所を知らない 𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(∗) 3. ランダムシャッフル 𝑋 = 7 / 16
  • 8. • clientは𝑋 = Shuffle 𝛾𝑖 𝐸𝑛𝑐 𝑚 − 𝑖 𝑖∈𝑆を受信 • 𝑌 = Shuffle 𝐸𝑛𝑐 𝛿𝑖𝑚 𝑖∈𝑆を計算 • シャッフルされているため0の位置から 𝑚の情報は得られない • clientはserverに𝑌 = Shuffle 𝐸𝑛𝑐 𝛿𝑖𝑚 𝑖∈𝑆を返す Step 2 : clientによる再暗号化 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(1) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(∗) 𝐸𝑛𝑐(∗) ∗ 0 ∗ ∗ ∗ 復号して0なら𝐸𝑛𝑐 1 それ以外は𝐸𝑛𝑐(0)を生成 8 / 16
  • 9. • input : 𝑌 = Shuffle 𝐸𝑛𝑐 𝛿𝑖𝑚 𝑖∈𝑆 • serverは 𝐸𝑛𝑐 𝛿𝑖𝑚 𝑖∈𝑆を得る • σ𝑖∈𝑆 𝑓 𝑖 𝐸𝑛𝑐 𝛿𝑖𝑚 = 𝑓 𝑚 𝐸𝑛𝑐 1 = 𝐸𝑛𝑐(𝑓 𝑚 )を算出 Step 3 : serverによる𝐸𝑛𝑐(𝑓 𝑚 )の計算 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(1) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(0) 𝐸𝑛𝑐(1) 𝐸𝑛𝑐(0) serverはシャッフルを 元に戻す 9 / 16
  • 10. • プロトコルの特徴 • 𝑓は毎回変更可能(𝑓𝑚2 (𝑚1) ≔ 𝑓 𝑚1, 𝑚2 を扱える) • clientの復号処理は暗号文が𝐸𝑛𝑐(0)か否か確認できればよい • 復号可能な空間が制限されたlifted-ElGamal暗号に適用可能 • 効率は平文のとりえる集合𝑆の大きさに比例 • 暗号方式の切り換え • clientの𝐸𝑛𝑐(𝛿𝑖𝑚)を作る代わりに別のAHEを用いてもよい • 𝐸𝑛𝑐(𝑚)から𝐸𝑛𝑐′(𝑓 𝑚 )への変換 • leveled-HE暗号における"対話型bootstrap" • 乗算後の暗号文を乗算前の暗号文に変換 • 加法準同型-属性ベース暗号(ABE)の構成 • maliciousモデル プロトコルの拡張(1/2) 10 / 16
  • 11. • 特殊な2変数関数への対応 • max 𝑥, 𝑦 , min 𝑥, 𝑦 , equal 𝑥, 𝑦 , lessThan(𝑥, 𝑦)など • max 𝑥, 𝑦 = max 𝑥 − 𝑦, 0 + 𝑦 =: max 0 (𝑥 − 𝑦) + 𝑦とすると 𝐸𝑛𝑐 𝑥 − 𝐸𝑛𝑐 𝑦 = 𝐸𝑛𝑐(𝑥 − 𝑦)に関する 1変数関数max 0 (⋅)として適用可能 • 汎用2変数関数𝑓(𝑥, 𝑦) • 2個の暗号文𝐸𝑛𝑐 𝑥 , 𝐸𝑛𝑐(𝑦)に対して • 𝑥, 𝑦 ∈ 𝑆のとき𝑡 ≔ 𝑥 𝑆 + 𝑦で 𝑥, 𝑦 ↔ 𝑡の1対1の対応を作り • 𝐹 𝑡 ≔ 𝑓(𝑥, 𝑦) • 𝐸𝑛𝑐 𝑥 𝑆 + 𝐸𝑛𝑐 𝑦 = 𝐸𝑛𝑐 𝑥 𝑆 + 𝑦 • とすることで可能(ただし空間が𝑆 × 𝑆になる) • 2LHE暗号ベースで𝐸𝑛𝑐 𝑥 , 𝐸𝑛𝑐(𝑦)から 𝐸𝑛𝑐 𝛿 𝑥𝑖 ,{𝐸𝑛𝑐 𝛿 𝑦𝑗 }を 求めてσ𝑖,𝑗 𝑓 𝑖, 𝑗 𝐸𝑛𝑐 𝛿 𝑥𝑖 𝐸𝑛𝑐 𝛿 𝑦𝑗 = 𝐸𝑛𝑐(𝑓 𝑥, 𝑦 )を算出 プロトコルの拡張(2/2) 11 / 16
  • 12. • 編集距離 • 2個の文字列X, Yの近さdist(X, Y)を表す • Xに1文字の挿入/削除/置換操作を何回か繰り返してYにする • その最小ステップ数がdist(X, Y) • dist("abcd", "abcd") = 0 • dist("abcd", "abXd") = 1 • dist("abcd", "bcda") = 2 • 応用例 • DNAの配列の類似性などのゲノム解析の基本ツール 文字列の編集距離 12 / 16
  • 13. • 動的計画法(DP)によるO(|X||Y|)アルゴリズム • 𝑋 = 𝑥1 𝑥2 … 𝑥 𝐿, 𝑌 = 𝑦1 𝑦2 … 𝑦 𝐿 • 𝑒 𝑥𝑖, 𝑦𝑗 = 1 − 𝑒𝑞𝑢𝑎𝑙 𝑥𝑖, 𝑦𝑗 = 0 𝑖𝑓 𝑥𝑖 = 𝑦𝑗 otherwise 1 • 予稿集p.6の𝑒(𝑥𝑖, 𝑦𝑗)は間違い • 𝐷0,𝑖 = 𝐷𝑖,0 = 𝑖 • 𝐷𝑖𝑗 = min{𝐷𝑖−1,𝑗 + 1, 𝐷𝑖,𝑗−1 + 1, 𝐷𝑖−1,𝑗−1 + 𝑒 𝑥𝑖, 𝑦𝑗 } 編集距離の計算方法 X a b c d Y 0 1 2 3 4 b 1 1 2 3 4 c 2 1 2 3 4 d 3 2 1 2 3 f 4 3 2 1 2 X="abcd" Y="bcdf" 右下の値 =dist(X, Y) 13 / 16 𝐷𝑖−1,𝑗 𝐷𝑖,𝑗−1𝐷𝑖−1,𝑗−1 𝐷𝑖,𝑗 表の値を左上から 順に算出
  • 14. • Aliceが文字列X, Bobが文字列Yを持っているときに 互いに文字列を見せずにdist(X, Y)を計算する • 動的計画法(DP)の計算𝐷𝑖𝑗 = min(𝑈𝑖−1, 𝐿𝑖−1, 𝐷𝑖−1)に適用 • 実装概要 • AHEはsecp256k1上のLifted-ElGamal暗号 • テーブル𝐷𝑖,𝑗の計算に必要なmin(𝑥, 𝑦)関数について 𝑥 − 𝑦 ∈ 𝑆 ≔ {−2,−1,0,1}という性質を利用(|X|, |Y|に非依存) • 効率は𝑂( 𝐿 2 ) • https://github.com/herumi/edit-dist/ (厳密な)編集距離の秘匿計算 秘密鍵を保持 𝑋を持ってる 𝐸𝑛𝑐(𝑋) 𝑌を持ってる Enc-DP ... 𝑑𝑖𝑠𝑡(𝑋, 𝑌) ← 𝐸𝑛𝑐(𝑑𝑖𝑠𝑡(𝑋, 𝑌)) 14 / 16
  • 15. • 文字列の長さ𝐿を変えたときの処理時間(sec) • FHEベース(non-bootstrap) 682並列実行の一つ当たり • J.H.Cheon, M.Kim, K.E.Lauter. Homomorphic computation of edit distance. In Financial Cryptography and Data Security 2015 • 混合(Paillier + 秘密分散 + garbled circuit) with 1Gbps-LAN • K.Cheng,Y.Hou,L.Wang. Secure similar sequence query on outsourced genomic data. AsiaCCS 2018 • 秘密分散(SS)ベース : 表の()内数値は事前計算の処理時間(sec) • 大畑, 縫田 Communication-efficient (client-aided) secure two-party protocols and its application. In Proc. of Financial Cryptography and Data Security 2020, to appear. • Ours : WANでの実測値(MacBook Pro --- Core i7 desktop PC) 既存手法との比較(条件が異なるので参考値) 8 50 128 256 512 1024 FHE 27.5 N/A N/A N/A N/A 混合 <29 740 N/A N/A N/A N/A SS 41.8(+33.4) 84.9(+135) 174.5(+534) 367.0(+2262) Ours 0.35 8.7 24.4 58.4 203.4 15 / 16
  • 16. • lifted-ElGamal型暗号方式に適用可能な 𝐸𝑛𝑐(𝑚)から𝑓(𝐸𝑛𝑐 𝑚 )への2者間プロトコルの提案 • プロトコルの拡張 • maliciousモデル対応 • 暗号方式の変換 • レベル準同型で暗号文レベルの低減(対話型bootstrap) • 加法準同型-属性ベース暗号の構成 • 文字列の編集距離計算の文字列秘匿化と実装実験 • 謝辞 • 総務省SCOPE(受付番号182103105)の委託 • JST CREST(課題番号JPMJCR19F6)の援助 • 科研費(課題番号19H01109)の援助 • Intel株式会社堀越将司氏による2nd-Xeon SP評価環境の協力 まとめ 16 / 16