連載
» 2015年10月20日 05時00分 UPDATE

クラウド時代の暗号化技術論(8):まだまだ広く深い、暗号の世界――匿名認証や電子投票に利用される「ブラインド署名」「グループ署名」「ゼロ知識証明」 (1/4)

最終回となる第8回では、匿名認証などに用いられるデジタル署名である「ブラインド署名」や「グループ署名」、相手に情報を与えずに自分が情報を持っていることを証明する「ゼロ知識証明」を紹介します。

[光成滋生,@IT]
「クラウド時代の暗号化技術論」のインデックス

連載目次

 最終回となる今回は、狭い意味での暗号ではないのですが、暗号プロトコルを作るときに重要な「デジタル署名」(以下、署名)や「ゼロ知識証明」について紹介します。これらは、ある情報が正しいかどうかを確認するために使われます。

署名とは

 署名とは、「あるメッセージを作ったのが、確かに自分であること」をメッセージの受領者に確認してもらうための技術です。他人が自分になりすまして署名を行ったり、偽の署名を作ったりすることはできません。また、署名を検証することで、そのメッセージが改ざんされていないことも確認できます。

 署名は大きく三つのステップで行われます。

鍵生成

全員で使うためのパラメーターの初期設定をする。ユーザーそれぞれが秘密にする署名鍵K′と、みんなに教える検証鍵Kを作る。

署名

Aさんはメッセージmと署名鍵K′Aを使って署名sを作る。

検証

Aさんの検証鍵KAを知っている人は、メッセージmを使って署名sの検証を行い、受理か拒否を行う。

 現在よく使われている署名については他を参照していただくことにして、ここでは変わった機能を持つ署名をいくつか紹介しましょう。

ブラインド署名

 「ブラインド署名」とは、署名者にメッセージの内容を見せることなく署名をしてもらう方式です。例えるなら、署名欄のところだけ穴を空けた封筒に契約書を入れて、外側から署名をしてもらうようなものです。

図1 ブラインド署名

 現実にそんなことをするのは非常に怖いかもしれませんが、電子投票や電子マネーにおいて匿名性を確保するなどの応用例が考えられています。例えば電子投票では、選挙管理委員にブラインド署名を行ってもらうことで、投票内容を教えることなく、投票用紙の正当性を保証してもらうことができます。

グループ署名

 「グループ署名」とは、あるグループXに属している人がした署名から、グループXへの所属のみを確認できるようにして、誰が署名したかは特定できないようにする署名方式です。

図2 グループ署名

 グループ署名は、「あるグループに所属している」という属性を用いた匿名認証に利用できます。

 例えば、あるグループの会員になると、さまざまな店舗などでサービスが受けられるとします。このとき、会員の情報が多くのサービス提供者に渡るため、個人情報の取り扱いが問題になる場合があります。

 そこでグループ署名を使うと、会員の個人情報をサービス提供者に渡すことなく、サービス提供者が「利用者が会員であること」を検証できるようになります。そのため、プライバシーを保護したサービス提供が可能になります。

図3 匿名認証

 グループ署名では、仮にAさんが2回続けて署名をしたとしても、検証側で「前回署名をした人と今回の人が、同じ人だと分からないこと(unlinkability)」が求められます。これにより、サービス提供者は行動追跡をしにくくなります。

 グループ署名は、第5回で紹介した「ペアリング」や、後述する「非対話ゼロ知識証明」を用いて構成されます。

 グループ署名を用いた匿名認証においては、「AとBのグループ(属性)に属していたら受理」のような属性の論理式を受け付ける拡張も考えられています。この方式は第6回で紹介した属性ベース暗号に似ていますね。

       1|2|3|4 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。