« P2P勉強会について | トップページ | [P2P]信頼されたメッセージの処理について »

2004.04.25

[P2P]P2Pとマジックプロトコル

昨日のBLOGでセキュリティの話を講演するかもしれないと書いたので、セキュリティ関係の話題を探していたのだが、一回紹介してみたいネタがあったので今日はそのことについて書いてみたい。

さて、P2Pで通信することになると、当然サーバはいない。クライアント=サーバモデルの良いところはサーバが認証や公平性等を担保してくれる機能があることである。P2Pは不特定多数の人がノードとなるので、当然認証や公平性の話はややこしくなる。

ところで、セキュリティの世界にはマジックプロトコルという面白い分野がある。例えばP2Pでオセロをしたいとする。このとき、先攻と後攻のじゃんけんをするとしよう。クライアント=サーバモデルであれば、このじゃんけんは公平性があるものになる。しかし、普通に考えるとP2Pでじゃんけんを実現するには難しそうだ。

その理由として例えば相手がパーを出したとしても、後出してチョキを出す事が可能だからだ。なにかあったらネットワークの遅延だなんだと理由をつけて、後出しでないと文句を言う事ができる。ところがマジックプロトコルを使うとそのようなことはできなくなる。

この話はブルーバックスの「情報セキュリティの科学」に書いてあるので、詳しくはそれを見て欲しいが(非常に読みやすくて良書である。)、ここでじゃんけんプロトコルの概要を書いておこう。今、P2PでAさんとBさんが通信していることとする。

1.Aさんは桁が同じ程度の大きな素数p,qを探し、r=pqとする。rのみをBに伝える。ただし、p>qとしよう。
2.Bさんはqの上から4桁目の数が偶数か奇数かを予想し、Aに伝える。(この時点でBはp,qが分からない事に注意する)
3.Aさんはp,qをBに伝える。Bは自分の答えが正しいかどうかチェックできる。

素因数分解が難しいことを利用したうまいプロトコルである。P2Pの世界では公平性を担保するためにこのようなマジックプロトコルが使われる事が期待できる。マジックプロトコルは、他にA、Bの2人のユーザがどちらがお金持ちか、相手に自分の所持金を言わずに分かるものなど、なかなか楽しいものが多い。

では、もう少しつっこんでゼロ知識証明についても話そう。これはA、Bがいて、BがAに対してパスワードを実際に言わなくても、Aに対してパスワードを持っている事を証明できるプロトコルである。なんだか奇妙に思えるかもしれないが、実際そのようなことが可能である。原理については下記のページを参照して下さい。
ゼロ知識証明の原理

不特定多数のノードに対して、自分のパスワードを教える事についてはそれを利用される可能性があるため危険である。このゼロ知識証明を使えば、パスワードが無くても自分がその権利を行使できるように主張できる。そのためP2Pソフトに認証等を行う部分があって、ソフト自体のハッキング等の耐性が強ければ、このようなゼロ知識証明は非常に意義があることだろう。もちろん、ゼロ知識証明を行っている時に中間侵入攻撃などは困難である。

マジックプロトコルやゼロ知識証明は一般にマルチパーティプロトコルと言って、非常に興味深い分野であるが、なかなか実用面に応用されておらず、電子選挙等に応用が限られている。不特定多数が存在し、サーバレスであるP2Pの世界でこそ、マルチパーティプロトコルは活かされるかも知れない。

もっとマルチパーティプロトコルを知りたい方は
「暗号・ゼロ知識証明・数論」共立出版が良書であるので、それを読んで欲しい。

|

« P2P勉強会について | トップページ | [P2P]信頼されたメッセージの処理について »

P2P」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [P2P]P2Pとマジックプロトコル:

« P2P勉強会について | トップページ | [P2P]信頼されたメッセージの処理について »