P2Pデータ共有における暗号化データのアクセス制御
情報処理学会論文誌2003年10月号 Vol.44 No.10 p.2437--2443
概要としては、Peerが頻繁に離脱・再参加するP2P技術を用いたデータ共有システムに
おいて、ある暗号化されたデータを復号できるPeerが、その権限を他のPeerに時間制限
などを設けて、委譲する方法について述べられている。これを実現するために
「変換サーバ」と呼ばれる第三者機関を利用している。
この論文では変換サーバが完全に信頼できる場合の基本方式、単一の変換サーバでは
信頼できない場合の拡張方式の二つが記述されている。
基本的には、ElGamal暗号を用いて、差をうまく利用している。
拡張方式はいまいち理解し切れてない。
送信者、受信者が同一である4.4暗号化データのアクセス制御以外、
あんまりいい使い道も思い浮かばない。
eR, dR: 受信者の公開鍵、秘密鍵(ElGamal暗号による)
eT, dT: 変換サーバの公開鍵、秘密鍵
E(k, m): 公開鍵kでmをひねる
D(k, m): 秘密鍵kでmを復号
H(a, b): 一方向性ハッシュ関数
ElGamal暗号
秘密鍵x、公開鍵y = g^xとする。
メッセージmの暗号文(c1, c2)は、ランダムに選択したr∈Zqと公開j鍵yを用いて
c1 = g^r, c2 = my^r
復号は秘密鍵xを用いて
c2/c1^x = my^r/(g^r)^x = m(g^x)^r/(g^r)^x = m
として求められる。
基本方式
(1)委任鍵生成アルゴリズム
乱数vを生成。委任鍵δ = (uT, uP)
uT = E(eT, v) ; 乱数を変換サーバの公開鍵でひねる
uP = dR - H(φ, v) (mod q) ; 秘密鍵dRから制約条件φと乱数vから生成されるH(φ, v)を引く
(2) 代理復号
代理に復号する代行者Pは委任鍵δ=(uT, uP)を持つ。
また暗号文(c1, c2)を受信している。以下はSSLなどを用いた通信により成り立つ。
(a) PはuT, φ, c1を変換サーバTに送る。
(b) Tはφを評価し、成立する場合は
cT = c1^(H(φ, D(dT, uT))) = c1^ H(φ, v)
をPに返す。だめならエラーを返す
(c) Pはc1, c2, cTを用いて、
m = c2c1^(-uP)cT^(-1)
= c2/(c1^uP x cT) ; uP = dR - H(φ, v)であり、cT = c1 ^ H(φ, v)
= c2 / {c1^(dR - H(φ, v)) x c1 ^ H(φ, v)}
= c2 / c1^{dR - H(φ, v) + H(φ, v)}
= c2/c1^dR
= m
拡張方式
λi(x)の式は、i∈Αではなくて j ∈Aじゃないのかな。良く分からん。
トラックバック(0)
このブログ記事を参照しているブログ一覧: P2Pデータ共有における暗号化データのアクセス制御
このブログ記事に対するトラックバックURL: http://www.imaq.net/cgi-bin/mt/mt-tb.cgi/59

コメントする