Slide 1

Slide 1 text

Lifted-ElGamal暗号による、Argmaxとベクトルの内積 近似計算の二者間秘匿計算プロトコルとその応用 サイボウズ・ラボ 光成滋生 NTT社会情報研究所 上野真奈 SCIS2024 3C2-4 1 / 19

Slide 2

Slide 2 text

クライアント・サーバ間の二者間秘密計算 目的 クライアントCが をサーバSに教えずに, Sから情報 を得る( はSの入力) 制約 クライアントCは について から分かる以上のことは分からない サーバSは について何も分からない 2 / 19

Slide 3

Slide 3 text

本発表の位置づけ 既存方式 FHE(完全準同型暗号, BGV/BFV/CKKSなど), Garbled circuit, 秘密分散など 既存方式と本発表方式 方式 オフライン処理 通信回数 トータル通信量 CPU時間 FHE 不要 0 0 大きい 本発表 不要 ? ? ? 秘密分散 必要 多い 多い? 小さい 目的 Lifted ElGamal暗号+通信でどこまでできるのか, ?を埋めたい 3 / 19

Slide 4

Slide 4 text

ベクトル検索の秘匿化 クライアントとサーバの入力 クライアントC : ベクトル サーバS : ベクトル 出力 コサイン類似度で に最も近いベクトル を探す CがSに を送り, Sは を求めて返す ※ 応用例は後述 これをAHE(Lifted ElGamal暗号)で実現するプロトコルの提案 4 / 19

Slide 5

Slide 5 text

EOHVプロトコル OHV (One Hot Vector)とEOHV (Encrypted OHV) . OHV(m):= =(0, ..., 1, 0, ...) : 番目だけ1で残り0の 次元ベクトル mのOHVの暗号文 : EOHV(m):=(Enc( )) = (Enc(0), ..., Enc(1), Enc(0), ...) サーバがc=Enc(m)からEOHV(m)を計算する(SCIS2020縫田たち) クライアントはAHEの秘密鍵を持ち, サーバは対応する公開鍵を持つ 図はsemihonestモデル. maliciousモデルはSCIS2021光成, 縫田参照 5 / 19

Slide 6

Slide 6 text

関数評価 1変数整数値関数f(x)をEOHV(m)に適用する eval(f, EOHV(m)) := 「AHE+通信」で任意の計算ができる 注)1個のEOHV(m)に対して複数の を適用できる EOHV(m) → Enc( ), Enc( ) EOHVプロトコルのコスト 通信 サーバとクライアント : 個の暗号文を送りあう 演算 サーバ : 個の暗号文の乱数倍( は乱数無しの固定値でよい) クライアント : 個の暗号文の0判定と(事前計算可能な) 個の暗号文の生成 をEOHVプロトコルのサイズと呼ぶ 6 / 19

Slide 7

Slide 7 text

max(a, b)の秘匿計算 max(Enc(a), Enc(b)) = Enc(max(a, b))を求める 一変数化 max(a, b) = max(a-b, 0)+b f(x):=max(x, 0)は一変数関数 プロトコル 1. Enc(a) - Enc(b) = Enc(a-b) 2. EOHVプロトコルによりEOHV(a-b)を計算 3. f(x)をEOHV(a-b)に適用してeval(f, EOHV(a-b)) = Enc(max(a-b, 0)) 4. Enc(max(a-b, 0)) + Enc(b) = Enc(max(a, b)) なら のとり得る範囲はその約2倍となり, このEOHVのサイズは 7 / 19

Slide 8

Slide 8 text

select(c, a, b)の秘匿化 定義 select for ; が真(1)な , 偽(0)なら を返す関数 アイデア , を , の2進数展開とする( ) selectはビットごとに独立なので各 についてselect を実行すればよい 以下 , を1ビットの , とする として とする 1ビットselectの秘匿化プロトコル 1. Enc(a), Enc(b), Enc(c)が与えられたときC:=Enc(4c+2a+b)を計算 2. CのEOHV EOHV にf(x)を適用してEnc(f(4c+2a+b)) = Enc(select(c, a, b))を計算 このEOHVのサイズは8なので とすると全体のサイズは 8 / 19

Slide 9

Slide 9 text

selectのargmaxへの適用 v[0], ..., v[N-1]に対する素朴なargmax m = v[0] idx = 0 for i from 1 to N-1: m = max(v[i], m) idx = select(v[i] > m, i, idx) return idx i番目までの最大値mとそのときの添え字idxの両方の同時更新 のEOHVからEnc-maxとselectのcを算出 添え字の大きさは このまま比較するとEOHVのサイズは 添え字空間の縮小による改良 隣り合う添え字は上位ビットが同じなのでselect処理は不要 木構造で下位1ビットのselect, 下位2ビットのselectを実行 9 / 19

Slide 10

Slide 10 text

argmaxのEOHVのサイズ select部分 (実は)最上位ビットの入力値は平文 → 最上位ビットのselectにEOHVは不要 回目から下位 ビットのselectにEOHVを利用 として max部分 内積値の区間集合が なら 合計 区間集合の大きさ が支配的 → を小さくすることを目指す 10 / 19

Slide 11

Slide 11 text

内積の近似計算 内積 の積 の近似を考える の近似値を求めたい( ) aの下位sビットを2進数展開してa= とする( ) 例 の場合 一般化 : としてサイズを にする AHEによる計算 最初に送信する暗号文個数が 倍になるがそれ以降のコストに比べたら小さい 11 / 19

Slide 12

Slide 12 text

内積の近似計算の改善 修正2進数展開 近似計算は常に切り捨てなので結果が小さくなる方向にバイアスがある 2進数展開の代わりに近接偶数方向丸め =round(x)を使う # input : a, s # output: s+1次元ベクトルv for i from 0 to s: v[s-i] = round(x / 2**(s-i)) x = x - v[s-i] * 2**(s-i) return v 例 2 = [0, 0, 1 0]', 6 = [1, 0, -1, 0]', 7=[1, 0, 0, -1]' AHEによる計算 12 / 19

Slide 13

Slide 13 text

内積の近似計算の改善の効果 精度が向上 修正2進数展開は, 平均値が真値に近くなる の真値と近似計算の差の絶対値の平均(と括弧内は最大誤差) s 2進数 修正2進数 3 0.531(2) 0.062(1) 4 0.765(3) 0.125(1) 5 1.007(4) 0.196(1) での平均値 13 / 19

Slide 14

Slide 14 text

内積値の区間圧縮 内積のargmax 内積が負なら「近いベクトル」ではないのでargmaxの候補から外してよい より強く, 内積値が閾値 以下なら全て0としてよい 更にargmaxの結果を変えない範囲で で割って区間を圧縮する は用途に応じて決定 14 / 19

Slide 15

Slide 15 text

画像検索CLIPのクエリ秘匿化への応用 CLIP 文と画像の関連性を学習するモデルで, 関連する文と画像は似た512ビットベクトルになる 文による画像検索が可能 CLIPのクエリ秘匿化 画像idxから画像本体を得るのはOTやObliviousRAMなどを利用(今回の対象外) 15 / 19

Slide 16

Slide 16 text

CLIPでのコスト評価 パラメータ設定 N=8192個の正規化された512次元CLIPベクトル : 成分を256倍して整数に量子化 64個のクエリ文による数値実験 内積の分布 : , 内積の最大値の分布 : 内積の近似計算 : 結果を で割る近似 区間圧縮関数 : , とすると圧縮後の内積分布区間は EOHVのサイズ 区間圧縮( ) + argmaxのselect( ) = 通信ラウンド : 16 / 19

Slide 17

Slide 17 text

CLIPの内積argmaxの秘匿化演算コスト 推測値( ) 方式 オフライン ラウンド オンライン 通信量 client CPU(秒) server CPU(秒) FHE 0 0 0 0 ≧670000 本発表 0 15 2.7GiB 1700 2520 秘密分散 ≧2.8GiB? ≧78? 数十MB? ? ? FHEはTFHEで1BR(blind rotation)=10msecで「9ビット乗算をD個加算」をN回の見積もり 秘密分散のオンラインは17ビット内積計算でラウンドは 個のargmaxを次で評価 (A2B(2)+BitExt16(3)+selectl(1)) CPU負荷は小さいはず クライアント数が増えたときのサーバの負荷を考えるとオフライン処理のコストも重要 17 / 19

Slide 18

Slide 18 text

まとめ Lifted-ElGamal暗号を用いたクライアント・サーバ型2PC秘匿計算 ベクトルの内積の近似計算方法の提案 効率的なargmaxの提案 画像検索CLIPのクエリ秘匿化への応用 18 / 19

Slide 19

Slide 19 text

(予備)EOHVに用いるLifted ElGamal暗号の演算評価 各種メソッドの速度(単位:usec) 関数 AlderLake M1 Mac enc 10.8 8.26 add 0.355 0.434 mul 56 60 isZero* 26 30 128ビットセキュリティ(secp256k1)で暗号文1個あたり約64byte isZeroは暗号文が0か否かを秘密鍵を用いて判定する - 復号するよりは軽い処理 19 / 19