More Related Content
Similar to ペアリングベースの効率的なレベル2準同型暗号(SCIS2018) (19)
More from MITSUNARI Shigeo (20)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
- 4. • 加法・乗法準同型暗号
• 速いが用途が限定される
• 完全準同型暗号
• 任意の演算が可能だが遅い、暗号文が大きい
• (従来の群に比べて)安全評価が研究途上
• レベル準同型暗号
• 乗算回数に制約がある完全準同型暗号
• 加法準同型暗号と完全準同型暗号の間
利点と欠点
加法準同型 レベル準同型 完全準同型
速度・サイズ ◎ ○ △
機能性 △ ○ ◎
4 / 21
- 6. • Boneh, Goh, Nissim(TCC2005)
• 合成数位数ペアリングを利用
• 合成数位数ペアリングは素数位数ペアリングに比べて重たい
• Freeman(EUROCRYPTO2010)
• 合成数位数ペアリングを素数位数ペアリングで代用する
フレームワークの提案とBGN方式への適用
• Herold, Hesse, Hofheinz, Rafols, Rupp(CRYPTO2014)
• Freeman方式の改良・一般化
• 対称ペアリング(非対称ペアリングでの効率は未調査)
• Catalano, Fiore(SIGSAC2015)
• レベルdをレベル2dに変換する一般方式
• 乗算後の復号/加算が非効率
• 注意
• どれも復号にはDLPを解く必要があり平文空間が制限される
ペアリングベースのL2HEの既存方式
6 / 21
- 8. • セットアップ
• 位数𝑝の楕円曲線𝐺 = ⟨𝑃⟩
• 鍵生成
• 𝑠 ∈ 𝔽 𝑝を秘密鍵(乱数), 𝑠𝑃が公開鍵
• 暗号化
• 平文𝑚に対して乱数𝑟をとり𝐸𝑛𝑐 𝑚 = (𝑚𝑃 + 𝑟𝑠𝑃, 𝑟𝑃)
• 復号
• 𝑐 = (𝑆, 𝑇)に対して
𝑆 − 𝑠𝑇 = 𝑚𝑃 + 𝑟𝑠𝑃 − 𝑠 𝑟𝑃 = 𝑚𝑃
を計算しDLPを解いて𝑚を得る
Lifted-ElGamal暗号
8 / 21
- 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. • 𝐺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. • 再掲
• 𝐶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. • 𝑥 = (𝑥𝑖), 𝑦 = (𝑦𝑖)の内積を取るだけの場合
𝐸𝑛𝑐 𝐺1
(𝑥𝑖)と𝐸𝑛𝑐 𝐺2
(𝑦𝑖)のみを利用すればよい
• 𝐸𝑛𝑐 𝐺1
𝑥𝑖
2
なども計算する必要があるなら暗号文は
𝐸𝑛𝑐 𝑚 ≔ 𝐸𝑛𝑐 𝐺1
𝑚 , 𝐸𝑛𝑐 𝐺2
𝑚
というペアの形で利用する
暗号文
12 / 21
- 13. • SXDH(Symmetric eXeternal DH)仮定
• 𝑃𝑖を𝐺𝑖の生成元とするとき
(𝑎𝑃𝑖, 𝑏𝑃𝑖, 𝑎𝑏𝑃𝑖)と(𝑎𝑃𝑖, 𝑏𝑃𝑖, 𝑐𝑃𝑖)の区別がつかない
• ペアリングパラメータ𝑔𝑘を生成する𝒢(1 𝑛)がSXDH困難とは
任意の確率的多項式アルゴリズム𝒜に対してアドバンデージ
Pr[𝑔𝑘 ← 𝒢 1 𝑛 ; 𝛼, 𝛽 ← ℤ 𝑝; 𝑏 ← 𝒜 𝑝𝑝, 𝑔𝑖
𝛼
, 𝑔𝑖
𝛽
, 𝑔𝑖
𝛼𝛽
: 𝑏 = 1
− Pr[𝑔𝑘 ← 𝒢 1 𝑛 ; 𝛼, 𝛽, 𝛾 ← ℤ 𝑝; 𝑏 ← 𝒜 𝑝𝑝, 𝑔𝑖
𝛼
, 𝑔𝑖
𝛽
, 𝑔𝑖
𝛾
: 𝑏 = 1
が𝑖 = 1,2について𝑛に対して無視できること
𝑝𝑝:公開パラメータ
• 提案方式はSXDH仮定の元でIND-CPA安全
• 証明は予稿集参照
安全性
13 / 21
- 14. • 与えられた暗号文が直接作られたものか、
何かの演算操作によって作られたものか
判別できないこと
• 𝐸𝑛𝑐 𝐺 𝑖
(𝑚)と𝐸𝑛𝑐 𝐺 𝑖
𝑚 + 𝐸𝑛𝑐 𝐺 𝑖
(𝑚′)の判別
• 𝐸𝑛𝑐 𝐺1
𝑚 × 𝐸𝑛𝑐 𝐺2
𝑚′
と𝐸𝑛𝑐 𝐺 𝑇
(𝑚𝑚′
)の判別
• (注意)群が異なるのでどの種類の暗号文かは判別可能
• 再暗号化
• 𝑅𝑒𝑅𝑎𝑛𝑑 𝐺 𝑖
𝑐𝑖 : = 𝑐𝑖 + 𝐸𝑛𝑐 𝐺 𝑖
(0)
• 暗号文に𝐸𝑛𝑐 𝐺 𝑖
(0)を足したものが
元の暗号文と同じか判別できない
回路安全性(circuit privacy)
14 / 21
- 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. • 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. • サイズ比較
• 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. • 例)暗号文𝑐が𝐸𝑛𝑐(0)か𝐸𝑛𝑐(1)のどちらかを検証する
• 賛成か反対の電子投票では𝑚 = 0か1としたい
• 化合物の秘匿検索では入力ベクトルがビットベクトル
(0 or 1のベクトル)であることを検証したい
• ゼロ知識証明を使う
• Lifted-ElGamal暗号に対してはSakai2013らによる効率的な方
法が提案されている
• 我々の手法はLifted-ElGamal暗号なので既存手法を適用可能
• (注意)(𝐸𝑛𝑐 𝐺1
𝑚 , 𝐸𝑛𝑐 𝐺2
𝑚 )を暗号文とする場合は𝐺1, 𝐺2と
で同じ平文を暗号化していることを確認する必要がある
平文空間の制限
18 / 21
- 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. • 暗号化・復号にかかった時間(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