Contenu connexe
Similaire à レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明 (11)
Plus de MITSUNARI Shigeo (20)
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
- 4. • 暗号文同士の加算や乗算が可能な暗号
• 𝐸𝑛𝑐 𝑚1 + 𝐸𝑛𝑐 𝑚2 = 𝐸𝑛𝑐 𝑚1 + 𝑚2
• 𝐸𝑛𝑐 𝑚1 𝐸𝑛𝑐 𝑚2 = 𝐸𝑛𝑐 𝑚1 𝑚2
• レベル2準同型暗号(L2HE)
• 乗算は1度だけ可能な暗号(暗号文の2次多項式を計算可能)
• σ𝑖 𝐸𝑛𝑐 𝑥𝑖 𝐸𝑛𝑐 𝑦𝑖 = 𝐸𝑛𝑐(σ𝑖 𝑥𝑖 𝑦𝑖)
• 暗号文のまま平均, 分散, 標準偏差, 内積など計算可能
• ポスターセッションでデモしてます
• DPS-10 秘匿依頼計算アプリ開発のための汎用ライブラリ
準同型暗号
4 / 20
- 5. • 紛失通信(OT : Oblivious Transfer)
• 𝑛個のデータを持っているBobにAliceが問い合わせる
• 要件
• AliceはBobに何番目の値𝑎をクエリしたか教えない
• BobはAliceにクエリされた場所の値𝑥 𝑎以外を教えない
• インデックスを暗号化したままテーブル引き
• table[𝐸𝑛𝑐(𝑎)] = 𝐸𝑛𝑐(table 𝑎 )
応用例
Alice Bob
𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6
𝑎番目の値が欲しい
𝑥 𝑎を返す
5 / 20
- 6. • プロトコル
• Alice : (𝐸𝑛𝑐 𝛿 𝑎,1 , … . , 𝐸𝑛𝑐 𝛿 𝑎,𝑛 )を送信, 𝛿𝑖,𝑗はKroneckerデルタ
• Bob : 𝑐 = σ𝑖 𝑥𝑖 𝐸𝑛𝑐( 𝛿 𝑎,𝑖) = 𝐸𝑛𝑐(𝑥 𝑎)を送信
• Alice : 𝑐を復号して𝑥 𝑎を取得
• 通信量は𝑂(𝑛)
加法準同型暗号によるOT
6 / 20
Alice
𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6
要素ごとに暗号化
0 0 0 1 0 0
𝐸(0) 𝐸(0) 𝐸(0) 𝐸(0) 𝐸(0)𝐸(1)
Bob
𝐸(0) 𝐸(0) 𝐸(0) 𝐸(0) 𝐸(0)𝐸(1)
要素ごとに乗算
𝐸(0) 𝐸(0) 𝐸(0) 𝐸(0) 𝐸(0)𝐸(𝑥4)
𝐸(𝑥4)
全部足す
𝐸(𝑥4)
復号
𝑥4
- 7. • 𝑚 = 𝑛としテーブルを2次元表記
• Alice
• 𝑎を選び𝑎 = 𝑞𝑚 + 𝑟(0 ≤ 𝑟 < 𝑚) とし
(𝐸𝑛𝑐 𝛿 𝑞,0 , … , 𝐸𝑛𝑐 𝛿 𝑞,𝑚−1 ),
(𝐸𝑛𝑐 𝛿 𝑟,0 , … , 𝐸𝑛𝑐 𝛿 𝑟,𝑚−1 )を送信
• Bob
• 𝑐 = σ𝑖𝑗 𝑥𝑖𝑚+𝑗 𝐸𝑛𝑐 𝛿 𝑞,𝑖 𝐸𝑛𝑐 𝛿 𝑟,𝑗
= 𝐸𝑛𝑐(
𝑖,𝑗
𝑥𝑖𝑚+𝑗 𝛿 𝑞,𝑖 𝛿 𝑟,𝑗) = 𝐸𝑛𝑐 𝑥 𝑞𝑚+𝑟 = 𝐸𝑛𝑐(𝑥 𝑎)
• Alice : 𝐷𝑒𝑐 𝑐 = 𝑥 𝑎
• 通信量は2𝑚個の暗号文= 𝑂( 𝑛)
cf. PIR by BGN,Evaluating 2-DNF Formulas on Ciphertexts, TCC’05
L2HEによるOT
0 0 0
𝑞
0 0
0 0 0
𝑟 𝑚
𝑚
1
… …
… …
… …
7 / 20
𝐸(0) 𝐸(0)𝐸(1)
𝐸(0)
𝐸(0)
𝐸(1)
送信部分
- 8. • Aliceが 𝐸𝑛𝑐 1000 , 𝐸𝑛𝑐 1 , 𝐸𝑛𝑐 0 , … .
を送ると1000𝑥1 + 𝑥2を得る
• 𝑥1, 𝑥2が小さい値なら両方の値が判明
• Bobは𝐸𝑛𝑐 0 , 𝐸𝑛𝑐(1)以外の暗号文を排除したい
• 𝐸𝑛𝑐(𝑥𝑖)が𝑥𝑖 ∈ {0,1}の暗号文であることを検証したい
• 更にはσ𝑖 𝑥𝑖 = 1であることも検証したい
• バイナリ範囲証明
• BRP : binary range proof (ここだけの用語)
• 𝐸𝑛𝑐(𝑚)が𝑚 ∈ {0,1}であることを検証可能なゼロ知識証明
• 従来は1個の暗号文に1個のBRP
• 𝑛個の暗号文には𝑛個のBRP
• 今回𝑛個の暗号文に対する定数サイズのBRPを提案
悪意あるクライアントに対する防御
8 / 20
- 9. • ℎ: 0,1 ∗ → 𝔽 𝑝 ; ハッシュ関数
• 𝑐𝑖 ≔ 𝐸𝑛𝑐 𝑚𝑖 𝑖=1,…,𝑛に対してℎ𝑖 ≔ ℎ(𝑐1, … , 𝑐 𝑛, 𝑖)として
𝑋 ≔
𝑖
ℎ𝑖 𝑐𝑖 𝐸𝑛𝑐 1 − 𝑐𝑖 = 𝐸𝑛𝑐(
𝑖
ℎ𝑖 𝑚𝑖(1 − 𝑚𝑖))
• 全ての𝑖について𝑚𝑖 ∈ {0,1}ならば𝑋 = 𝐸𝑛𝑐 0
• 逆に𝑋 = 𝐸𝑛𝑐(0)ならば
𝑖
ℎ𝑖 𝑚𝑖 1 − 𝑚𝑖 = 0
• 𝑚𝑖 ∉ {0,1}となる𝑚𝑖を見つけるのは困難
• 𝑋 = 𝐸𝑛𝑐(0)を検証できれば全ての𝑚𝑖 ∈ {0,1}を保証
• 定数サイズのBRP
コアアイデア
9 / 20
- 10. • 𝑓𝑖 𝑥𝑖 = 𝑥𝑖(1 − 𝑥𝑖)としたとき
𝑋 ∶= 𝐸𝑛𝑐(
𝑖
ℎ𝑖 𝑓𝑖(𝑚𝑖)) = 𝐸𝑛𝑐(0)
⇔ 𝑓𝑖 𝑥𝑖 = 0 ⇔ 𝑥𝑖 ∈ {0,1}
• 𝑓𝑖(𝑥)をより一般の多項式にしても
𝑋 = 𝐸𝑛𝑐 0 ⇔ 𝑓𝑖 𝑥𝑖 = 0 for 𝑖 = 0, … , 𝑛
は同様に示せる
• 多項式集合{𝑓𝑖 𝑥 }の共通解を制約条件に出来る
コアアイデアの拡張
10 / 20
- 11. • 𝐾𝑒𝑦𝐺𝑒𝑛, 𝐸𝑛𝑐, 𝐷𝑒𝑐 ; L2HE, 𝑝 : 暗号文空間のサイズ
• 𝑓1, … , 𝑓𝑡 ; 𝑛変数2次多項式, ℎ ; ランダムオラクル
• 攻撃者𝒜は
𝑋 =
𝑖=1
𝑡
ℎ 𝑐, 𝑖 𝑓𝑖(𝑐) = 𝐸𝑛𝑐 0
を満たす暗号文𝑐 = (𝑐1, … , 𝑐 𝑛)を出力する
• このとき高々𝑞回のクエリに対して
𝑃(𝐷𝑒𝑐 𝑓𝑖 𝑐 ≠ 0となる𝑖が存在する) ≤
𝑞+1
𝑝
• i.e., {𝑚𝑖 = 𝐷𝑒𝑐 𝑐𝑖 }が{𝑓𝑖 𝑥 = 0}の解でない確率は無視できる
• 証明は予行集参照
定理
11 / 20
- 12. • 要請
• 𝑐𝑖 = 𝐸𝑛𝑐 𝑚𝑖 について𝑚𝑖 ∈ {0,1}かつσ𝑚𝑖 = 1(1-of-𝑛)
• 多項式
• 𝑓𝑖 𝑚 ≔ 𝑚𝑖(1 − 𝑚𝑖) for 𝑖 = 1, … , 𝑛,
• 𝑓𝑛+1 𝑚 : = σ𝑚𝑖 − 1とする
𝑋: =
𝑖
ℎ 𝑐, 𝑖 𝑓𝑖(𝑐) = 𝐸𝑛𝑐 0
をZKPで示せれば𝑓𝑖 𝑚 = 0 for all 𝑖 = 1, … , 𝑛 + 1
• すなわち𝑚𝑖 ∈ {0,1}かつσ𝑚𝑖 = 1
• 別の応用例
• 定数0 < 𝑘 < 𝑛をとりσ𝑚𝑖 = 1の代わりにσ𝑚𝑖 = 𝑘とすると
{𝐸𝑛𝑐(𝑚𝑖)}に対して𝑘-of-𝑛を検証可能となる
OTでの例
12 / 20
- 13. • ASIACCS’18(Attrapadung,花岡,光成,坂井,清水,照屋)
• 素数位数ペアリングベースのL2HEの提案(AHM+と略記)
• https://dl.acm.org/citation.cfm?doid=3196494.3196552
• 方式
• 𝑒: 𝐺1 × 𝐺2 → 𝐺 𝑇 ; 素数位数𝑝のtype3ペアリング
• 𝐺𝑖 = ⟨𝑔𝑖⟩ ; 生成元𝑔𝑖の乗法的巡回群
• 鍵生成
• 𝑠1, 𝑠2 ∈ 𝔽 𝑝 ; 秘密鍵, ℎ𝑖 ≔ 𝑔𝑖
𝑠 𝑖
; 公開鍵, ℎ3 ≔ 𝑒(ℎ1, ℎ2)
• 暗号化
• 𝐸𝑛𝑐𝑖 𝑚 ∶= 𝑔𝑖
𝑚
ℎ𝑖
𝑟 𝑖
, 𝑔𝑖
𝑟 𝑖
∈ 𝐺𝑖
2
for 𝑟𝑖 ∈ 𝔽 𝑝 ; lifted ElGamal
• 𝐸𝑛𝑐 𝑚 ∶= 𝐸𝑛𝑐1 𝑚 , 𝐸𝑛𝑐2 𝑚 ∈ 𝐺1
2
× 𝐺2
2
AHM+
13 / 20
- 14. • 乗算
• 𝐺1, 𝐺2のlifted ElGamal暗号文のテンソル積
𝑐1 ≔ 𝑆1, 𝑇1 ∈ 𝐺1
2
と𝑐2 ≔ 𝑆2, 𝑇2 ∈ 𝐺2
2
の乗算
𝑐1 ⋅ 𝑐2 ≔ 𝑒 𝑆1, 𝑆2 , 𝑒 𝑆1, 𝑇2 , 𝑒 𝑇1, 𝑆2 , 𝑒 𝑇1, 𝑇2 ∈ 𝐺 𝑇
4
• 復号
• 𝑐 ≔ 𝑠, 𝑡, 𝑢, 𝑣 ∈ 𝐺 𝑇
4
に対して
𝑑𝑒𝑐 𝑀 𝑐 ≔ (𝑠𝑣 𝑠1 𝑠2)/(𝑡 𝑠2 𝑢 𝑠1)
• 𝐷𝑒𝑐 𝑀 𝑐 ≔ 𝐷𝐿𝑃𝑔(𝑑𝑒𝑐 𝑀 𝑐 )
AHM+における暗号文の乗算と復号
14 / 20
- 15. • AHM+の暗号文は2種類のlifted ElGamal暗号のペア
• 𝐸𝑛𝑐 𝑚 = 𝐸𝑛𝑐1 𝑚 , 𝐸𝑛𝑐2 𝑚 = (𝑐1, 𝑐2)
• 加算はそれぞれの暗号文のlifted ElGamalとしての加算
• 暗号文同士の乗算はそれぞれのペアの片方を使う
• 𝐸𝑛𝑐 𝑚 ⋅ 𝐸𝑛𝑐 𝑚′ = 𝑐1, 𝑐2 ⋅ 𝑐1
′
, 𝑐2
′
= 𝑐1 ⋅ 𝑐2
′
• 任意の 𝐸𝑛𝑐1 𝑚 , 𝐸𝑛𝑐2 𝑚′ ∈ 𝐺1
2
× 𝐺2
2
が
暗号文としてvalid⇔ 𝑚 = 𝑚′
• 𝒞 ≔ 𝐸𝑛𝑐1 𝑚 , 𝐸𝑛𝑐2 𝑚 ⊂ 𝐺1
2
× 𝐺2
2
; 暗号文空間が部分集合
• cf. lifted ElGamal暗号の暗号文空間は𝐺𝑖
2
全体
注意点
15 / 20
- 16. • 全ての𝑐𝑖 = (𝐸𝑛𝑐1 𝑚𝑖 , 𝐸𝑛𝑐2 𝑚𝑖
′
)の平文バイナリ制約
⇔ 𝑚𝑖 = 𝑚𝑖′かつ𝑚𝑖 ∈ 0,1
⇔ 𝑓𝑖 𝑚 ≔ ൝
𝑚𝑖 1 − 𝑚𝑖
′
for 𝑖 = 1, … , 𝑛
𝑚𝑖 − 𝑚𝑖
′
for 𝑖 = 𝑛 + 1, … , 2𝑛
• これらの多項式に対して定理1の𝑋を
𝑋 ≔
𝑖=1
2𝑛
ℎ 𝑐, 𝑖 𝑓𝑖 𝑐
として𝑋 = 𝐸𝑛𝑐(0)のゼロ知識証明を構成する
AHM+におけるBRPを与える制約多項式
16 / 20
- 17. • 𝐺の生成元𝑔に対して 𝑥, 𝑦, 𝑧 ≔ (𝑔 𝑠1, 𝑔 𝑠2, 𝑔 𝑠1 𝑠2)とおく
• 𝐺4の任意の元は𝑤1, 𝑤2, 𝑤3, 𝑤3
′
∈ 𝔽 𝑝を用いて
𝑥 𝑤1 𝑦 𝑤2 𝑧 𝑤3
′
, 𝑔 𝑤2 𝑥 𝑤3, 𝑔 𝑤1 𝑦 𝑤3, 𝑔 𝑤3
と表現できる
• 任意の 𝑠, 𝑡, 𝑢, 𝑣 ∈ 𝐺4が0の暗号文𝐸𝑛𝑐(0)である
⟺
𝑠𝑣 𝑠1 𝑠2
𝑡 𝑠2 𝑢 𝑠1
= 1
⟺ 𝑤3 = 𝑤3′
• この等式をゼロ知識証明で示すことに帰着
AHM+における𝐸𝑛𝑐(0)の条件
17 / 20
- 18. • 証明𝜋の構成
• 𝜌1, 𝜌2, 𝜌3 ∈ 𝔽 𝑝をとり
𝑅1, 𝑅2, 𝑅3, 𝑅4 ≔ 𝑥 𝜌1 𝑦 𝜌2 𝑧 𝜌3, 𝑔 𝜌2 𝑥 𝜌3, 𝑔 𝜌1 𝑦 𝜌3, 𝑔 𝜌3
𝑐 ≔ ℎ 𝑔, 𝑥, 𝑦, 𝑧, 𝑠, 𝑡, 𝑢, 𝑣, 𝑅1, 𝑅2, 𝑅3, 𝑅4
𝜎𝑖 ≔ 𝜌𝑖 + 𝑐𝑤𝑖
とおき𝜋 ≔ 𝑐, 𝜎1, 𝜎2, 𝜎3 ∈ 𝔽 𝑝
4
とする
• 𝜋がゼロ知識証明であることの証明は予行集参照
𝐸𝑛𝑐(0)を与えるゼロ知識証明
18 / 20
- 19. • 𝐺1/𝔽 𝑝, 𝐺1 = 𝑟とする
• 254-bit BN曲線(100~110bitセキュリティ)の場合
およそ 𝑝 = 𝑟 = 256bit
ゼロ知識証明のサイズ比較
方式 準同型性 n個の暗号文
サイズ
ゼロ知識証明
のサイズ
lifted ElGamal L1 2𝑛|𝑝| 4𝑛|𝑟|
AHM+の従来方式 L2 6𝑛|𝑝| 7𝑛|𝑟|
提案方式 L2 6𝑛|𝑝| 4|𝑟|
19 / 20
- 20. • レベル2準同型暗号の暗号文𝐸𝑛𝑐(𝑚)に対して𝑚 ∈ {0,1}
であることを検証可能なゼロ知識証明を構成した
• その証明は暗号文の個数によらない定数サイズである
• サイズを変えないままで𝑘-of-𝑛の制約を追加できる
本研究の一部はJST CREST JPMJCR1688の支援を受けている
まとめ
20 / 20