Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)

2,151 views

Published on

SCIS2018 1A2-4

Published in: Technology
  • Be the first to comment

ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)

  1. 1. ペアリングベースの 効率的なレベル2準同型暗号 SCIS 2018 Nuttapong Attrapadung*1, 花岡 悟一郎*1, ○光成 滋生*2, 坂井 祐介*1, 清水 佳奈*3, 照屋 唯紀*1 *1 産総研, *2サイボウズ・ラボ, *3 早稲田大学 本研究の一部はJST CREST JPMJCR1688 の支援を受けている
  2. 2. • 背景 • Lifted-ElGamal暗号ベースのL2準同型暗号の提案 • 安全性 • 既存方式との比較 • 実装 • まとめ 概要 2 / 21
  3. 3. • 準同型暗号は暗号文から別の暗号文を計算できる • 秘匿計算、クラウドへの移譲など応用範囲は広い • 準同型暗号の種類 • 加法準同型(ex. 岡本・内山, Paillier, Lifted-ElGamal) • 𝐸𝑛𝑐 𝑚 + 𝐸𝑛𝑐 𝑚′ = 𝐸𝑛𝑐 𝑚 + 𝑚′ • 乗法準同型(ex. RSA, ElGamal) • 𝐸𝑛𝑐 𝑚 × 𝐸𝑛𝑐 𝑚′ = 𝐸𝑛𝑐 𝑚𝑚′ • 完全準同型(ex. Gentry, 格子ベース) • 加法と乗法の両方が可能 背景 3 / 21
  4. 4. • 加法・乗法準同型暗号 • 速いが用途が限定される • 完全準同型暗号 • 任意の演算が可能だが遅い、暗号文が大きい • (従来の群に比べて)安全評価が研究途上 • レベル準同型暗号 • 乗算回数に制約がある完全準同型暗号 • 加法準同型暗号と完全準同型暗号の間 利点と欠点 加法準同型 レベル準同型 完全準同型 速度・サイズ ◎ ○ △ 機能性 △ ○ ◎ 4 / 21
  5. 5. • 乗算が一度だけ可能な加法準同型暗号 • 「レベル2」は2次多項式を計算できることを指す • 2個のベクトル 𝑥 = 𝑥1, 𝑥2, … , 𝑦 = 𝑦1, 𝑦2, … の暗号文 𝐸𝑛𝑐 𝑥𝑖 , 𝐸𝑛𝑐 𝑦𝑖 の内積を計算可能 ෍ 𝑖 𝐸𝑛𝑐 𝑥𝑖 𝐸𝑛𝑐 𝑦𝑖 = 𝐸𝑛𝑐(෍ 𝑖 𝑥𝑖 𝑦𝑖) 平均、分散、回帰、相関などが可能 レベル2準同型暗号 5 / 21
  6. 6. • Boneh, Goh, Nissim(TCC2005) • 合成数位数ペアリングを利用 • 合成数位数ペアリングは素数位数ペアリングに比べて重たい • Freeman(EUROCRYPTO2010) • 合成数位数ペアリングを素数位数ペアリングで代用する フレームワークの提案とBGN方式への適用 • Herold, Hesse, Hofheinz, Rafols, Rupp(CRYPTO2014) • Freeman方式の改良・一般化 • 対称ペアリング(非対称ペアリングでの効率は未調査) • Catalano, Fiore(SIGSAC2015) • レベルdをレベル2dに変換する一般方式 • 乗算後の復号/加算が非効率 • 注意 • どれも復号にはDLPを解く必要があり平文空間が制限される ペアリングベースのL2HEの既存方式 6 / 21
  7. 7. • Lifted-ElGamal暗号と非対称ペアリングの組み合わせ • 非対称ペアリング(Type3) • 巡回群𝐺1, 𝐺2, 𝐺 𝑇に対する双線形写像 𝑒: 𝐺1 × 𝐺2 → 𝐺 𝑇 • 𝑒 𝑎𝑃, 𝑏𝑄 = 𝑒 𝑃, 𝑄 𝑎𝑏 for 𝑎, 𝑏 ∈ ℤ, 𝑃 ∈ 𝐺1, 𝑄 ∈ 𝐺2 • 𝐺1 ≠ 𝐺2かつ𝐺1から𝐺2への効率的な準同型写像が無い 提案方式の概要 7 / 21
  8. 8. • セットアップ • 位数𝑝の楕円曲線𝐺 = ⟨𝑃⟩ • 鍵生成 • 𝑠 ∈ 𝔽 𝑝を秘密鍵(乱数), 𝑠𝑃が公開鍵 • 暗号化 • 平文𝑚に対して乱数𝑟をとり𝐸𝑛𝑐 𝑚 = (𝑚𝑃 + 𝑟𝑠𝑃, 𝑟𝑃) • 復号 • 𝑐 = (𝑆, 𝑇)に対して 𝑆 − 𝑠𝑇 = 𝑚𝑃 + 𝑟𝑠𝑃 − 𝑠 𝑟𝑃 = 𝑚𝑃 を計算しDLPを解いて𝑚を得る Lifted-ElGamal暗号 8 / 21
  9. 9. • 2個の平文𝑚1, 𝑚2に対して暗号文の各成分を足す 𝐸𝑛𝑐 𝑚1 + 𝐸𝑛𝑐 𝑚2 = 𝑚1 𝑃 + 𝑟1 𝑠𝑃, 𝑟1 𝑃 + 𝑚2 𝑃 + 𝑟2 𝑠𝑃, 𝑟2 𝑃 = 𝑚1 + 𝑚2 𝑃, 𝑟1 + 𝑟2 𝑠𝑃, 𝑟1 + 𝑟2 𝑃 = 𝐸𝑛𝑐(𝑚1 + 𝑚2) Lifted-ElGamal暗号の加法準同型性 9 / 21
  10. 10. • 𝐺1, 𝐺2に対するLifted-ElGamal暗号文を ペアリング𝑒: 𝐺1 × 𝐺2 → 𝐺 𝑇を用いて「乗算」する • 𝐺𝑖 = 𝑃𝑖 , 𝑠𝑖 ; 秘密鍵, 𝑠𝑖 𝑃𝑖 ; 公開鍵 • 𝐶1 = 𝐸𝑛𝑐 𝐺1 𝑚 = 𝑚𝑃1 + 𝑟𝑠1 𝑃1, 𝑟𝑃𝑖 = 𝑆1, 𝑇1 ∈ 𝐺1 2 • 𝐶2 = 𝐸𝑛𝑐 𝐺2 𝑚′ = 𝑚′ 𝑃2 + 𝑟′ 𝑠2 𝑃2, 𝑟′ 𝑃2 = 𝑆2, 𝑇2 ∈ 𝐺2 2 • 𝐶1 × 𝐶2 ≔ 𝑒 𝑆1, 𝑆2 , 𝑒 𝑆1, 𝑇2 , 𝑒 𝑇1, 𝑆2 , 𝑒 𝑇1, 𝑇2 ∈ 𝐺 𝑇 4 • ペアリングを用いた𝐶1, 𝐶2の各要素に対する「テンソル積」 提案方式の暗号文の乗算 10 / 21
  11. 11. • 再掲 • 𝐶1 = 𝐸𝑛𝑐 𝐺1 𝑚 = 𝑚𝑃1 + 𝑟𝑠1 𝑃1, 𝑟𝑃1 = 𝑆1, 𝑇1 ∈ 𝐺1 2 • 𝐶2 = 𝐸𝑛𝑐 𝐺2 𝑚′ = 𝑚′ 𝑃2 + 𝑟′ 𝑠2 𝑃2, 𝑟′ 𝑃2 = 𝑆2, 𝑇2 ∈ 𝐺2 2 • 𝐶1 × 𝐶2 ≔ 𝑒 𝑆1, 𝑆2 , 𝑒 𝑆1, 𝑇2 , 𝑒 𝑇1, 𝑆2 , 𝑒 𝑇1, 𝑇2 ∈ 𝐺 𝑇 4 • 乗算暗号文 𝑐1, 𝑐2, 𝑐3, 𝑐4 ∈ 𝐺 𝑇 4 の復号 𝑑𝑒𝑐 c1, c2, 𝑐3, 𝑐4 ≔ 𝑐1 𝑐4 𝑠1 𝑠2 𝑐2 𝑠2 𝑐3 𝑠1 = 𝑒 𝑆1, 𝑆2 𝑒 𝑠1 𝑇1, 𝑠2 𝑇2 𝑒 𝑆1, 𝑠2 𝑇2 𝑒(𝑠1 𝑇1, 𝑆2) = 𝑒 𝑆1 − 𝑠1 𝑇1, 𝑆2 − 𝑠2 𝑇2 = 𝑒 𝑚𝑃1 , 𝑚′ 𝑃2 = 𝑒 𝑃1, 𝑃2 𝑚𝑚′ • DLPを解いて𝑚𝑚′を得る 乗算暗号文の復号 Lifted-ElGamal暗号 の復号手順 11 / 21
  12. 12. • 𝑥 = (𝑥𝑖), 𝑦 = (𝑦𝑖)の内積を取るだけの場合 𝐸𝑛𝑐 𝐺1 (𝑥𝑖)と𝐸𝑛𝑐 𝐺2 (𝑦𝑖)のみを利用すればよい • 𝐸𝑛𝑐 𝐺1 𝑥𝑖 2 なども計算する必要があるなら暗号文は 𝐸𝑛𝑐 𝑚 ≔ 𝐸𝑛𝑐 𝐺1 𝑚 , 𝐸𝑛𝑐 𝐺2 𝑚 というペアの形で利用する 暗号文 12 / 21
  13. 13. • SXDH(Symmetric eXeternal DH)仮定 • 𝑃𝑖を𝐺𝑖の生成元とするとき (𝑎𝑃𝑖, 𝑏𝑃𝑖, 𝑎𝑏𝑃𝑖)と(𝑎𝑃𝑖, 𝑏𝑃𝑖, 𝑐𝑃𝑖)の区別がつかない • ペアリングパラメータ𝑔𝑘を生成する𝒢(1 𝑛)がSXDH困難とは 任意の確率的多項式アルゴリズム𝒜に対してアドバンデージ Pr[𝑔𝑘 ← 𝒢 1 𝑛 ; 𝛼, 𝛽 ← ℤ 𝑝; 𝑏 ← 𝒜 𝑝𝑝, 𝑔𝑖 𝛼 , 𝑔𝑖 𝛽 , 𝑔𝑖 𝛼𝛽 : 𝑏 = 1 − Pr[𝑔𝑘 ← 𝒢 1 𝑛 ; 𝛼, 𝛽, 𝛾 ← ℤ 𝑝; 𝑏 ← 𝒜 𝑝𝑝, 𝑔𝑖 𝛼 , 𝑔𝑖 𝛽 , 𝑔𝑖 𝛾 : 𝑏 = 1 が𝑖 = 1,2について𝑛に対して無視できること 𝑝𝑝:公開パラメータ • 提案方式はSXDH仮定の元でIND-CPA安全 • 証明は予稿集参照 安全性 13 / 21
  14. 14. • 与えられた暗号文が直接作られたものか、 何かの演算操作によって作られたものか 判別できないこと • 𝐸𝑛𝑐 𝐺 𝑖 (𝑚)と𝐸𝑛𝑐 𝐺 𝑖 𝑚 + 𝐸𝑛𝑐 𝐺 𝑖 (𝑚′)の判別 • 𝐸𝑛𝑐 𝐺1 𝑚 × 𝐸𝑛𝑐 𝐺2 𝑚′ と𝐸𝑛𝑐 𝐺 𝑇 (𝑚𝑚′ )の判別 • (注意)群が異なるのでどの種類の暗号文かは判別可能 • 再暗号化 • 𝑅𝑒𝑅𝑎𝑛𝑑 𝐺 𝑖 𝑐𝑖 : = 𝑐𝑖 + 𝐸𝑛𝑐 𝐺 𝑖 (0) • 暗号文に𝐸𝑛𝑐 𝐺 𝑖 (0)を足したものが 元の暗号文と同じか判別できない 回路安全性(circuit privacy) 14 / 21
  15. 15. • 𝑒 ≔ 𝑒(𝑃1, 𝑃2)とし公開鍵𝑠1 𝑃1, 𝑠2 𝑃2から z1, z2, z3, z4 ≔ (𝑒, 𝑒 𝑠2, 𝑒 𝑠1, 𝑒 𝑠1 𝑠2)を計算しておく • 𝐹 𝜌, 𝜎, 𝜏 ≔ (𝑧4 𝜏 , 𝑧3 𝜎 , 𝑧2 𝜌 , 𝑧1 𝜌+𝜎−𝜏 )とすると 𝑑𝑒𝑐 𝐹 𝜌, 𝜎, 𝜏 = 𝑧4 𝜏 z1 𝜌+𝜎−𝜏 s1s2 z3 𝜏 𝑠2 𝑧2 𝜌 𝑠1 = 𝑒 𝑠1 𝑠2 𝜏+ 𝜌+𝜎−𝜏 𝑠1 𝑠2−𝑠1 𝜏s2−s2 𝜌𝑠1 = 1 • 𝐸𝑛𝑐 𝐺 𝑇 0 = 𝐹(𝜌, 𝜎, 𝜏) • これを掛けると全ての項が乱数と区別できない 𝐸𝑛𝑐 𝐺 𝑇 (𝑚)のランダム化 15 / 21
  16. 16. • Freeman10(optimized version ; not published) • http://theory.stanford.edu/~dfreeman/papers/subgroups.pdf • 秘密鍵 : (𝑥𝑖, 𝑦𝑖, 𝑧𝑖) for 𝑖 = 1, 2 • 公開鍵 : 𝑥𝑖 𝑃𝑖, 𝑦𝑖 𝑃𝑖, 𝑧𝑖 𝑃𝑖 ∈ 𝐺𝑖 3 • 暗号文 : 𝐸𝑛𝑐 𝐺 𝑖 𝑚 = 𝑚𝑦𝑖 𝑃𝑖 + 𝑟𝑖 𝑃𝑖, 𝑚𝑧𝑖 𝑃𝑖 + 𝑟𝑖 𝑥𝑖 𝑃𝑖 ∈ 𝐺𝑖 2 • 乗算暗号文は同じ方法で∈ 𝐺 𝑇 4 • Herold14(対称ペアリング版) • 秘密鍵 : 𝑠, 公開鍵 : s𝑃 • 暗号文 : 𝐸𝑛𝑐 𝑚 = 𝑚 − 𝑠𝑟0 𝑃, 𝑟0 − 𝑠𝑟1 𝑃, 𝑟1 𝑃 ∈ 𝐺1 3 • 乗算暗号文 𝐶0, 𝐶1, 𝐶2 × 𝐶0 ′ , 𝐶1 ′ , 𝐶2 ′ ≔ Π𝑗=0 𝑘 𝑒 𝐶𝑗, 𝐶 𝑘−𝑗 ′ , 𝑘 = 0, . . , 4 ∈ 𝐺 𝑇 5 • ナイーブにはペアリング9回 他方式との比較(1/2) 16 / 21
  17. 17. • サイズ比較 • Heroldの対称ペアリングを非対称にしたときの評価は未調査 • DLPの効率 • Freeman方式はDLPの底が秘密鍵ごとに異なるのに対して 我々の提案方式はシステム固定 • DLPを解くにはテーブルを用意する必要があるので テーブルがシステム固定だと効率がよい 他方式との比較(2/2) ペアリング 秘密鍵 公開鍵 L1暗号文 L2暗号文 ペアリング Freeman 非対称 8/6 4 4 Freeman-opt 非対称 6 4 4 Herold-opt 対称 1 3 5(最適化後) Ours 非対称 2 4 4 17 / 21
  18. 18. • 例)暗号文𝑐が𝐸𝑛𝑐(0)か𝐸𝑛𝑐(1)のどちらかを検証する • 賛成か反対の電子投票では𝑚 = 0か1としたい • 化合物の秘匿検索では入力ベクトルがビットベクトル (0 or 1のベクトル)であることを検証したい • ゼロ知識証明を使う • Lifted-ElGamal暗号に対してはSakai2013らによる効率的な方 法が提案されている • 我々の手法はLifted-ElGamal暗号なので既存手法を適用可能 • (注意)(𝐸𝑛𝑐 𝐺1 𝑚 , 𝐸𝑛𝑐 𝐺2 𝑚 )を暗号文とする場合は𝐺1, 𝐺2と で同じ平文を暗号化していることを確認する必要がある 平文空間の制限 18 / 21
  19. 19. • ペアリング暗号ライブラリmclを用いて実装 • https://github.com/herumi/mcl ; C++版 • https://github.com/herumi/she-wasm ; ブラウザ/Node.js版 • Windows, Linux, OS X, Androidなどに対応 • x64/ARM64などに向けた最適化 • WebAssembly(JavaScriptを補完する仮想マシンコード)対応 • 2017年夏以降のモダンブラウザ (Microsoft Edge, Firefox, Chrome, Safari)で プラグイン無しで動作 • iPhone, Androidなどでも動作 • https://herumi.github.io/she-wasm/she-demo.html 実装 19 / 21
  20. 20. • 暗号化・復号にかかった時間(msec) • BN254(G1 : 256ビット, 100ビットセキュリティ) • decは20ビットテーブル(8MiB)範囲内の復号時間 ベンチマーク native JavaScritpt(WASM) x64 Linux on Core i7-7700 Firefox on Core i7-7700 Safari on iPhone 7 encG1 0.017 0.16 0.74 encG2 0.045 0.44 0.98 addG1 0.00045 0.02 0.02 addG2 0.0013 0.02 0.04 mul 1.097 9.1 13.9 dec 0.616 4.8 7.5 20 / 21
  21. 21. • Lifted-ElGamal暗号同士を非対称ペアリングを用いて 「掛ける」ことでレベル2準同型暗号を構成した • Lifted-ElGamal暗号ベースなので従来のLifted-ElGamal 暗号に対する機能追加(例:平文空間の制限)が容易 • C++/asm/WebAssemblyによる高速な実装 まとめ 21 / 21

×