属性ベース暗号(鍵ポリシー型)の機能

  • 暗号文は、いくつかの属性の集合γでラベル付けされる。
  • 復号鍵は、アクセス構造Aを表現する。
  • 暗号文の属性集合γが復号鍵のアクセス構造Aを満たす γ∈A ときのみ、復号できる。- ただし、対象とできるアクセス構造は単調なもの。

属性ベース暗号(鍵ポリシー型)スキーム

ABE = (Setup, Enc, KeyGen, Dec):
  • (PK, MK) ← Setup
  • E ← Enc(PK, m, γ)
  • D ← KeyGen(PK, A, MK)
  • m/⊥ ← Dec(PK, D, E)

完全性 (completness)

∀(PK, MK) ← Setup
∀A : アクセス構造
∀D ← KeyGen(PK, A, MK)
∀γ:属性集合、∀m, ∀E ← Enc(PK, m, γ)
について
  • γ∈A ならば Dec(PK, D, E) = m.

属性ベース暗号(鍵ポリシー型)の安全性

ポイントは結託耐性。様々なアクセス構造Ajに対応する秘密鍵Djをかき集めてきても、γ not∈ ∪j Ajであるならば、そのようなγを属性集合とする暗号文の復号には、秘密鍵の集まり∪jDjはまったく役立たないこと。

ゲーム

  • 攻撃者Aを起動し、ターゲットとなる属性集合γを得る。
  • (PK, MK) ← Setupを実行し、PKをAに渡す。
  • Aが望むだけ以下を複数回繰り返す:     ※ 秘密鍵クエリ
    • 攻撃者Aがアクセス構造Ajに対応する秘密鍵を要求したら、
      • γがAjを満たさないことを確認する。
      • Dj ← KeyGen(PK, Aj, MK)を実行し、DjをAに渡す。
  • 攻撃者Aより2つの平文M0, M1 を受け取り、    ※ チャレンジクエリ
    • b ← {0,1}、 E ← Enc(PK, Mb, γ)
    • Eを返す。
  • Aが望むだけ以下を複数回繰り返す:     ※ 秘密鍵クエリ
    • 攻撃者Aがアクセス構造Ajに対応する秘密鍵を要求したら、
      • γがAjを満たさないことを確認する。
      • Dj ← KeyGen(PK, Aj, MK)を実行し、DjをAに渡す。
  • Aはb'を出力して停止する。

攻撃者Aのアドバンテージ:
  • AdvA(s) =def | Pr[b=b'] - 1/2 |

定義

属性ベース暗号 ABE = (Setup, Enc, KeyGen, Dec) が選択的属性集合攻撃に対し識別不可能であるとは、どのような効率的な攻撃者Aについても上記のゲームにおけるアドバンテージAdvA(s)が無視可能であることを云う。

属性ベース暗号の構成1

アクセス構造

アクセス構造は木 T で表現:
  • 各内部ノードxは閾値ゲート
    • numx : ノードxの子ノードの数。
    • kx : ノードxの閾値。(0 < kx ≦ numx

γ∈Tの判定:
  • すべての葉ノードを偽に初期化。
  • 属性集合γに含まれる各属性について、対応する葉ノードを真にセット。
  • 上位ノードに値を再帰的に伝播。
  • ルートノードの真偽を出力。

記号:
  • parent(x) : xの親ノード
  • att(x) : 葉ノードxについてのみ定義。属性を表す。
  • index(x) : xの子ノードとしてのインデックス。

部品

  • 双線形写像 e : G1 x G1 → G2,   #G1 = #G2 = 素数p
  • ラグランジュ係数 {Δi,S(x)}i∈S
    • S ⊆ Zp
    • i ∈ S,  Δi,S(x) =def Πj∈S,j≠i (x - j) / (i - j).
      • 次数が#S-1以下の任意の多項式q(x)について、Σi∈S q(i)Δi,S(x) = q(x) となる。

構成

Setup (n) :
  • y ← Zp, g1 = gy,  g2 ← G1
  • t1, ・・・, tn+1 ← G1
  • N = {1, 2, ・・・, n+1}
  • return PK = (g1,g2,t1,・・・,tn+1), MK = y.
  • ※ T(X) =def g2Xn Πi=1,...,n+1tiΔi,N(X)  ( = g2Xn gh(X) with deg h = n+1 )
  • ※ T(i) = g2in ti   for i ∈ N

Enc (m, γ, PK) :
  • s ← Zp
  • return E = (γ, E' = m・e(g1,g2)s, E'' = gs, {Ei = T(i)s }i∈γ ).

KeyGen (T, MK, PK) :
  • ※ Tの各ノードxに次数dxの多項式qxを配置
  • Tの各ノード x : dx = kx - 1
  • ルートノード r :   ※ 主秘密をルートノードにセット
    • qr(0) = y,
    • 他の任意のdr個の点における値をランダムに選択。
  • その他のノード x :   ※ 親ノードparent(x)の秘密情報を子ノードxに分散
    • qx(0) = qparent(x)(index(x)),   
    • 他の任意のdx個の点における値をランダムに選択。
  • ※ Then
  • 各葉ノード x :  ※ 各葉ノードの秘密情報qx(0)を暗号化。これにより、ルートの秘密情報である主秘密を復元できないようにする。
    • rx ← Zp,  Dx = g2qx(0)T(i)rx,  Rx = grx  
  • return D = { (Dx, Rx) }x : 葉ノード.

Dec (E, D) :
  • return E' / DecNode(E, D, r).  ※ rはルートノード

DecNode (E=(γ,E',E'',{Ei}), D= {(Dx,Rx)}, x) :
  • x : 葉ノード :
    • i = att(x) ∈? γ:
      • return e(Dx, E'') / e(Rx, Ei)
    • else return ⊥
  • else // x : 内部ノード
    • z :xの子ノード:
      • Fz = DecNode(E,D,z)
    • Sx ← Fz≠⊥である子ノードzからなる、任意の要素数kxの集合
  • return Πz∈SxFzΔi=index(z),index(Sx)(0)

スキームの観察

暗号文
  • E = (γ, E' = m・e(g1,g2)s, E'' = gs, {Ei = T(i)s }i∈γ )
において、mを直接隠しているのは、G2要素である
  • e(g1, g2)s
これは、
  • e(E'', g2)y
に等しい。

MK = y は秘密鍵Dの構成において、ルートノードにセットされ、それが再帰的に子ノードに秘密分散されて秘密鍵Dの値となった。

分散先である各葉ノードでT(i)sなどを用いて、
  • e(E'', g2)qx(0)
を得る。これらは再帰的にe(E'', g2)yを構成する。

定理 (ABE)

判定双線形ディフィー・ヘルマン仮定が成り立つならば、ABEは選択的属性集合攻撃に対し識別不可能である。

構成2

Large Universe Construction [Waters 11]
Setup () :
  • Choose a group G of prime order p with generator g
  • α, a  ← Zp
  • Choose a hash function H : {0,1}* → G
  • PK = (g, e(g,g)α, ga), MSK = gα.

Encrypt (PK, (M,ρ), PT) :   ※ M : l x n
  • s, y2,・・・, yn  ← Zp
  • i ∈ [1..l] : λi = (s, y2,・・・, yn)・Mi
  • r1,・・・, rl  ← Zp
  • CT = (C = PT・e(g,g)αs, C' = gs, (Ci = gi H(ρ(i))-ri, Di = gri)i=1,...,l).

KeyGen (MSK, S) :
  • t  ← Zp
  • SK = (K = gαgat, L = gt, (Kx = H(x)t)x∈S).

Decrypt(CT, SK) :
  • I = {i : ρ(i)∈S}
  • i}i∈I : the set of constants for I
  • ※ Σi∈I ωi Mi = (1,0,・・・, 0)
  • return C・e(C', K)-1・Πi∈I { e(Ci, L)・e(Di, Kρ(i)) }ωi.

定理 (Large Universe Construction)

判定q-平行BDHE仮定が成り立つならば、Large Universe Constructionは選択的攻撃に対し識別不可能である。


Bethencourt-Sahai-Waters

  • PK = (g, h = gβ, f = g1/β, e(g,g)α)
  • MK = (β, gα)
  • 暗号文
    • (M・e(g,g)αs, hs, (gsy, H(att(y))sy)y∈Y)
  • 属性集合鍵
    • (g(α+r)/β, (grH(j)rj, grj)j∈S)

文献

  • [GPSW 06]
  • [Waters 11]
























最終更新:2011年11月01日 14:17