ストレージ証明の機能
ストレージ証明とは、証明者(サーバ)P が、検証者(クライアント)V から預ったデータ M を(捨てたり壊したりしないで)完全に保持していることを証明するプロトコル。
ストレージ証明においては、データMは非常に大きなサイズとなることを想定している。証明サイズを、データMのサイズに比べ、なるべく小さくすることがポイント。
(ストレージ証明は、その証明サイズがデータサイズと同程度でよいのなら、通常のデジタル署名やMACで容易に実現される。)
ストレージ証明 (Kg, St, V, P):
- (pk, sk) ← Kg()
- (t, M*) ← St(sk, M) ※ a file-storing algorithm
- 0/1 ← (V(pk, t, sk), P(pk, t, M*))
完全性(completeness)
∀(pk, sk) ← Kg(), ∀M ∈ {0,1}*, ∀(t, M*) ← St(sk, M)
- (V(pk, t, sk), P(pk, t, M*)) = 1.
ストレージ証明の安全性
セットアップゲーム
- (pk, sk) ← Kg()
- 公開鍵pkを入力として攻撃者Aを起動:
- AがファイルMのストアを要求したら、
- (t, M*) ← St(sk, M) を計算し、(t, M*)をAに返す。
- Aが、あるファイルMをストアさせる際に得たタグtについて、そのストレージ証明の実行を要求したら、
- Aは(t,P')を出力して停止する。 ただし、
- t : AがあるファイルMをストアさせる際に得たタグ
- P' : 証明者アルゴリズム。
P' がε-許容可能 であるとは、
- Pr[ (V(pk,t,sk), P') = 1 ] ≧ ε.
定義 (ε-健全)
ストレージ証明 (Kg, St, V, P)がε-健全であるとは、
- あるエクストラクタ Extr が存在し、
- 任意の攻撃者Aについて、
- Aがセットアップゲームの結果、あるファイルMについて、ε-許容可能である証明者P'を出力したならば、
- ネグリジブルな確率の例外を除いて、ExtrがP'を利用してMを復元できること、すなわち
- M = Extr(pk, sk, t, P')
であることを云う。
ストレージ証明の構成
私的検証可能ストレージ証明 Priv = (Kg, St, V, P)
部品
- ρ-erasure code(割合ρ以上の符号語から全体ファイルをデコード可能な線形符号)C
- 対象鍵暗号 Enckenc
- メッセージ認証子 MACkmac
- 擬似ランダム関数 f : {0,1}* x Kprf → Zp
パラメータ
- B ⊆ Zp : チャレンジ集合
- l : ランダムインデックス集合の大きさ
Kg() :
- kenc ← Kenc
- kmac ← Kmac
- return sk = (kenc, kmac).
St(sk, M) :
- { mi }1≦i≦n = M' ← C(M) ※ 以下、各符号語miは必要な場合はZpの要素と考える。
- kprf ← Kprf, α ← Zp
- t0 = n || Enckenc(kprf || α), t = t0 || MACkmac(t0).
- i ∈ [1..n] : σi ← fkprf(i) + α mi ※ σiはmiのMAC
- M* = M' ∪ { σi }1≦i≦n
- return (t, M*).
(V(pk, t, sk), P(pk, t, M*)) :
- [V → P] :
- (kenc, kmac) = sk, t0 || mac = t
- kmac を用いて、macの正しさを確認
- kenc を用いて、t0から、kprf とαを復号。
- l個のランダムインデックス I(⊆ [1..n])を選択、i ∈ I : vi ← B
- Send Q = {(i, vi)}i ∈ I.
- [P → V] :
- { mi } ∪ { σi } = M*
- μ ← Σ(i, vi)∈Qvi mi
- σ ← Σ(i, vi)∈Qviσi
- Send (σ, μ).
- [V] :
- return σ =? Σ(i, vi)∈Qvifkprf(i) + αμ.
スキームの観察
構成について
- 証明者Pはファイルの各ブロックmiのMACであるσiを保持。
- 検証者Vは、ランダムに選択したl個のブロックのランダムな線形結合μ=Σ(i, vi)∈Qvi miのMACを要求する。
- 証明者PはチャレンジμのMACとして、各ブロックのMACの線形結合であるσ=Σ(i, vi)∈Qviσiを答える。
- 利用しているMACスキームの準同型性のおかげで、MACの線形結合σが意味を持つ。
安全性について
与えられたチャレンジQ = {(i, vi)}i ∈ Iについて、
検証式の係数であるfkprf(i)やαは検証者にしか見えない乱数だから、
- σ = ? Σ(i, vi)∈Qvifkprf(i) + αμ
を満たす (σ, μ) を答えるためには、証明者は、インデックス集合Iに属するiについて、{mi}も{σi}も捨てられない。
ところが、Q = {(i, vi)}i ∈ I においてインデックス集合Iはランダムに選ばれるから、証明者は結局どの{mi}も{σi}も捨てられない。
定理 (私的検証可能ストレージ証明 Priv)
もしも
- MAC が偽造不可能で、
- ENC が意味論的安全で、
- f が擬似ランダム関数である
ならば、
- ω = 1/#B + (ρn)l/(n-l+1)l
とするとき、
- ε ≧ ω かつ ε-ωが非無視可能であるようなεについて、
私的検証ストレージ証明 Priv はε-健全と言える。
証明について
上に見たように、検証者Vを説得するには、正しい{mi}について
と計算するしかない。
ランダムに選ばれたQについて、O( n/(ε-ω) )回、P'にそのようなμを答えさせれば、線形代数(行縮約)を用いて、{mi}の割合ρを復元できる。
公的検証可能ストレージ証明 Pub = (Kg, St, V, P)
部品
- ρ-erasure code(割合ρ以上の符号語から全体ファイルをデコード可能な線形符号)C
- 双線形写像 e : G x G → GT, G = <g> : 位数p
- ハッシュ関数 H : {0,1}* → G
- 署名スキーム (Skg, SSig, Svfy)
パラメータ
- B ⊆ Zp : チャレンジ集合
- l : ランダムインデックス集合の大きさ
Kg() :
- (spk, ssk) ← SKg
- α ← Zp, v = gα
- return sk = (α, ssk), pk = (v, spk).
St(sk, M) :
- { mi }1≦i≦n = M' ← C(M) ※ 以下、各符号語miは必要な場合はZpの要素と考える。
- (α, ssk) = sk
- name ← Zp, u ← G
- t0 = name||n||u, t = t0||SSigssk(t0)
- i ∈ [1..n] : σi ← ( H(name||i) umi )α ※ σiはmiの署名
- M* = M' ∪ { σi }1≦i≦n
- return (t, M*).
(V(pk=(v,spk), t, sk), P(pk, t, M*)) :
- [V → P] :
- spk を用いてタグtの正しさを確認して後、 name||n||u = t.
- l個のランダムインデックス I(⊆ [1..n])を選択、i ∈ I : vi ← B
- Send Q = {(i, vi)}i ∈ I.
- [P → V] :
- { mi } ∪ { σi } = M*
- μ ← Σ(i, vi)∈Qvi mi
- σ ← Π(i, vi)∈Qσivi
- Send (σ, μ).
- [V] :
- return e(σ,g) =? e(Π(i, vi)∈QH(name||i)vi uμ, v).
スキームの観察
構成について
- 証明者Pはファイルの各ブロックmiの署名であるσiを保持
- 検証者Vは、ランダムに選択したl個のブロックのランダムな線形結合μ=Σ(i, vi)∈Qvi miの署名を要求する。
- 証明者Pはチャレンジμの署名として、各ブロックの署名の(乗法的)線形結合であるσ=Π(i, vi)∈Qσiviを答える。
- 利用している署名スキームの準同型性のおかげで、署名の線形結合σが意味を持つ。
安全性について
与えられたチャレンジQ = {(i, vi)}i ∈ Iについて、証明者*は、あるμについて、
- σ = ( Π(i, vi)∈Q H(name||i)vi uμ )α
を答えなければならない。(双線形写像の非退化性)
公開情報g, v=gαから、このようなσ=wαを作り出すのは、ハッシュ関数H(・)の操作不可能なランダム性を仮定すると困難。ここで、
- w = Π(i, vi)∈Q H(name||i)vi uμ の g に関する離散対数がわからないことが効く。
定理 (公的検証可能ストレージ証明 Pub)
もしも
- 署名スキームが存在的偽造不可能で、
- 群Gについて計算的ディフィー・ヘルマン仮定が成り立つ
ならば、
- ω = 1/#B + (ρn)l/(n-l+1)l
とするとき、
- ε ≧ ω かつ ε-ωが非無視可能であるようなεについて、
ハッシュ関数Hに関するランダムオラクルモデルのもとで、公的検証ストレージ証明 Pub はε-健全と言える。
証明について
上に見たように、検証者Vを説得するには、正しい{mi}について
と計算するしかない。
ランダムに選ばれたQについて、O( n/(ε-ω) )回、P'にそのようなμを答えさせれば、線形代数(行縮約)を用いて、{mi}の割合ρを復元できる。
- [SW 08]
- [AKK 09]
- [JK07]
- [BJO 09]
最終更新:2011年05月02日 12:38