信用モデル「信用の輪(web of trust)」のひみつ
IIJ 技術研究所
山本和彦
作成:1998年10月23日
修正:2000年8月30日

注意


有効性と信用度

鍵リングに登録される公開鍵には 有効性(validity)と信用度(trust)という値があります。 信用度は自分で設定し、 有効性は計算により算出されます。 それぞれ以下のような意味を持っています。
有効性
ある公開鍵が、本当にその公開鍵のユーザ ID で示される 人に属しており、改竄もされていないと信頼できる度合。
信用度
ある人 A が他の人 B を紹介する際に、 紹介者としてどれだけ A を信用するかという度合。 A が B を C に紹介するとは、 A が B の公開鍵に署名し、A の署名の付いた B の公開鍵を 何らかの方法で C が入手することを意味します。
公開鍵には複数の人が署名可能であり、 それぞれの信用度の合計から有効性を決定します。

有効性の意味

有効性の値には高い順に、 があります。 PGPは、これらの値をどのように使うのでしょうか?

ある公開鍵を使うとき、 つまり、その人宛に暗号文を作成したり、 その人の電子署名を検証するとき、 有効性の値によって PGP は以下のように動作します。

有効性が complete のとき
いっさい警告は表示されない
有効性が marginal のとき
"WARNING: Because this public key is not certified with enough trusted
signatures, it is not known with high confidence that this public key
actually belongs to:"
と警告が表示される。
有効性が untrusted のとき
"WARNING: This public key is not trusted to actually belong to:"
と警告が表示される。
有効性が undefined のとき
"WARNING: Because this public key is not certified with a trusted
signature, it is not known with high confidence that this public key
actually belongs to:"
と警告が表示される。

このように有効性が complete でない場合、 その公開鍵が偽物である可能性を示唆するために、 その公開鍵が利用される度に PGP は警告を発します。


有効性の決定規則

公開鍵に付いた署名の信用度から その公開鍵の有効性を決定する規則を詳しく説明しましょう。 以下に信用度の値を高い順に示します。 このように有効性と同じ値を使うのでややこしいです。 混乱しないで下さい。

設定ファイルには、有効性を決定する際に 重要な役割を果たす変数が 2 つあります。 それぞれの名称と意味を示します。

COMPLETES_NEEDED
信用度が complete である署名をいくつ集めると 有効性を complete にできるかを示す変数。 デフォルトは 1。
MARGINALS_NEEDED
信用度が marginal である署名をいくつ集めると 有効性を complete にできるかを示す変数。 デフォルトは 2。
読みやすくするため、以下ではそれぞれ V_c と V_m と呼ぶことにします。

有効性は、その公開鍵に付いている 電子署名の信用度の得点の総和から決定されます。 通常、信用度には以下のように得点が与えられます。

complete と marginal がひっくり返っていることに注意して下さい。 信用度が ultimate である電子署名の数を N_u、 complete を N_c、marginal を N_m とすると、 得点の総和は、
	総和 = V_c × N_m + V_m × N_c + V_c × V_m × N_u
となります。有効性は、この総和が と計算されます。

デフォルトでは V_m = 2、V_c = 1 ですから。 信用度の得点は、 marginal、complete、ultimate それぞれ 1、2、2 となります。 よって、 信用度が marginal でる電子署名を 2 つ、あるいは、 complete を 1 つ、あるいは、 ultimate を 1 つ集めれば、有効性を complete にできます。

この規則には、例外が2つあります。

1つ目の例外は、V_m < V_c の場合です。 信用度が低い marginal を集めなければならない数が、 completeのそれよりも小さいのは、 明らかにおかしいです。 そこで、この場合は、V_m を V_c と同じ値して、 上記の規則に従います。

2 つめの例外は、 V_m = 0 の場合です。 これは、いくら信用度が marginal である電子署名を集めても、 公開鍵の有効性を complete にできないことを意味しています。 この場合、次の規則に従います。

まず、信用度の得点は以下のようになります。

よって総和は、
	総和 = N_c + V_c × V_u 
となります。有効性はこの総和が と計算されます。