(57)【要約】【課題】匿名性を確保したサービスの提供を行う。【解決手段】ユーザ装置２００は、ユーザ装置２００で匿名認証により作成された第１の証明書を証明書管理装置３００に送信し、証明書管理装置３００からはユーザ装置２００以外で作成された複数の第１の証明書を受信する。ユーザ装置２００は、これら第１の証明書群をサービス提供者装置１００に送信する。サービス提供者装置１００は、受信した第１の証明書群の各々についてブラインド署名を検証し、成功するとリング署名を検証し、これにも成功するとチャレンジを計算してユーザ装置２００に送信する。ユーザ装置２００は受信したチャレンジに基づきレスポンスを作成してサービス提供者装置１００に送信する。サービス提供者装置１００は受信したレスポンスを検証し、成功するとサービスが提供される。【選択図】    図１０
2004289247.tif 000002
【特許請求の範囲】
【請求項１】
証明内容Ｍとユーザの公開鍵の結びつきを証明する第１の証明書によるユーザの匿名認証を用いたサービス利用方法であって、
証明書発行段階では、
ユーザ装置が、
発行者装置から送信された仮ブラインド署名情報ｐｒｅ−ＳＩＧＳＰに基づき、ブラインド署名ＳＩＧＳＰを含み、かつユーザの秘密鍵Ｓ１に対応する匿名認証のために証明内容Ｍと前記ユーザの秘密鍵Ｓ１とペアのユーザの公開鍵Ｐ１の結びつきを証明する第１の証明書を作成し、
前記第１の証明書を証明書管理装置に送信し、
前記証明書管理装置は、
前記第１の証明書のブラインド署名ＳＩＧＳＰを検証する第１の検証を行い、
前記第１の検証に成功した場合に前記第１の証明書を第１の記憶装置に格納し、
前記第１の記憶装置に予め格納され、前記ユーザ装置以外で作成され、前記ユーザの秘密鍵Ｓ１とは異なる秘密鍵に対応する匿名認証のための複数の第１の証明書からなる第１の証明書群を読み出し前記ユーザ装置に送信し、
前記ユーザ装置は、
受信した前記第１の証明書群の各々から公開鍵を抽出して複数の公開鍵からなる公開鍵群を取得し、
ユーザの公開鍵Ｐ２に対して、前記公開鍵群、ユーザの秘密鍵Ｓ１及びユーザの公開鍵Ｐ１に基づきリング署名ＳＩＧＵを計算し、前記公開鍵Ｐ２とリング署名ＳＩＧＵからなる第２の証明書を作成し、
サービス利用段階では、
前記ユーザ装置は、
サービス提供者装置に、前記第１の証明書群、第１の証明書及び第２の証明書を送信し、
前記サービス提供者装置は、
前記第１の証明書群の各々及び前記第１の証明書に対してブラインド署名ＳＩＧＳＰを検証する第２の検証を行い、
前記第２の検証に成功した場合に前記第２の証明書のリング署名ＳＩＧＵを検証する第３の検証を行い、
前記第２の証明書から前記公開鍵Ｐ２を抽出し、該公開鍵Ｐ２に基づきチャレンジを計算して前記ユーザ装置に送信し、
前記ユーザ装置は、
前記チャレンジに対して前記秘密鍵Ｓ２を用いてレスポンスを計算して前記サービス提供者装置に送信し、
前記サービス提供者装置は、
前記レスポンスを検証する
ことを特徴とするサービス利用方法。
【請求項２】
前記発行者装置と前記サービス提供者装置は同一の装置であることを特徴とする請求項１に記載のサービス利用方法。
【請求項３】
仮ブラインド署名情報ｐｒｅ−ＳＩＧＳＰに基づき、ブラインド署名ＳＩＧＳＰを含み、かつユーザの秘密鍵Ｓ１に対応する匿名認証のために証明内容Ｍと前記ユーザの秘密鍵Ｓ１とペアのユーザの公開鍵Ｐ１の結びつきを証明する第１の証明書を作成する第１の証明書作成部と、
前記第１の証明書を送信するとともに、前記ユーザの秘密鍵Ｓ１とは異なる秘密鍵に対応する匿名認証のための複数の第１の証明書からなる第１の証明書群を受信する第１の証明書収集部と、
前記第１の証明書群の各々から公開鍵を抽出して複数の公開鍵からなる公開鍵群を取得する公開鍵抽出部と、
ユーザの公開鍵Ｐ２に対して、前記公開鍵群、ユーザの秘密鍵Ｓ１及びユーザの公開鍵Ｐ１に基づきリング署名ＳＩＧＵを計算し、前記公開鍵Ｐ２とリング署名ＳＩＧＵからなる第２の証明書を作成するリング署名計算部と、
前記第１の証明書群、第１の証明書及び第２の証明書を送信する証明書送信部と、
前記第２の証明書から抽出される公開鍵Ｐ２に基づき計算されたチャレンジを受信し、該チャレンジに対して前記秘密鍵Ｓ２を用いてレスポンスを計算して前記サービス提供者装置に送信するレスポンス計算部と
を具備したことを特徴とするユーザ装置。
【請求項４】
コンピュータに、
仮ブラインド署名情報ｐｒｅ−ＳＩＧＳＰに基づき、ブラインド署名ＳＩＧＳＰを含み、かつユーザの秘密鍵Ｓ１に対応する匿名認証のために証明内容Ｍと前記ユーザの秘密鍵Ｓ１とペアのユーザの公開鍵Ｐ１の結びつきを証明する第１の証明書を作成する処理と、
前記第１の証明書を送信するとともに、前記ユーザの秘密鍵Ｓ１とは異なる秘密鍵に対応する匿名認証のための複数の第１の証明書からなる第１の証明書群を受信する処理と、
前記第１の証明書群の各々から公開鍵を抽出して複数の公開鍵からなる公開鍵群を取得する処理と、
ユーザの公開鍵Ｐ２に対して、前記公開鍵群、ユーザの秘密鍵Ｓ１及びユーザの公開鍵Ｐ１に基づきリング署名ＳＩＧＵを計算し、前記公開鍵Ｐ２とリング署名ＳＩＧＵからなる第２の証明書を作成する処理と、
前記第１の証明書群、第１の証明書及び第２の証明書を送信する処理と、
前記第２の証明書から抽出される公開鍵Ｐ２に基づき計算されたチャレンジを受信し、該チャレンジに対して前記秘密鍵Ｓ２を用いてレスポンスを計算して前記サービス提供者装置に送信する処理と
実行させるためのサービス利用処理プログラム。
【請求項５】
各々がブラインド署名ＳＩＧＳＰを含み、かつ証明内容Ｍとユーザの公開鍵の結びつきを証明するものであって、ユーザの秘密鍵Ｓ１に対応する匿名認証のために証明内容Ｍと前記ユーザの秘密鍵Ｓ１とペアのユーザの公開鍵Ｐ１の結びつきを証明する第１の証明書を含む複数の第１の証明書と、ユーザの公開鍵Ｐ２に対して前記公開鍵群、ユーザの秘密鍵Ｓ１及びユーザの公開鍵Ｐ１に基づき計算されたリング署名ＳＩＧＵと前記公開鍵Ｐ２からなる第２の証明書とを受信し、前記複数の第１の証明書の各々に対してブラインド署名ＳＩＧＳＰを検証する第１の検証を行う第１の証明書検証部と、
前記第１の検証に成功した場合に、前記第２の証明書のリング署名ＳＩＧＵを検証する第２の検証を行うリング署名検証部と、
前記第２の証明書から前記公開鍵Ｐ２を抽出し、該公開鍵Ｐ２に基づきチャレンジを計算して送信し、前記チャレンジに対して前記秘密鍵Ｓ２を用いて計算されたレスポンスを受信し、該レスポンスを検証するチャレンジ計算部と
を具備したことを特徴とするサービス提供者装置。
【請求項６】
コンピュータに、
各々がブラインド署名ＳＩＧＳＰを含み、かつ証明内容Ｍとユーザの公開鍵の結びつきを証明するものであって、ユーザの秘密鍵Ｓ１に対応する匿名認証のために証明内容Ｍと前記ユーザの秘密鍵Ｓ１とペアのユーザの公開鍵Ｐ１の結びつきを証明する第１の証明書を含む複数の第１の証明書と、ユーザの公開鍵Ｐ２に対して前記公開鍵群、ユーザの秘密鍵Ｓ１及びユーザの公開鍵Ｐ１に基づき計算されたリング署名ＳＩＧＵと前記公開鍵Ｐ２からなる第２の証明書とを受信し、前記複数の第１の証明書の各々に対してブラインド署名ＳＩＧＳＰを検証する第１の検証を行う処理と、
前記第１の検証に成功した場合に、前記第２の証明書のリング署名ＳＩＧＵを検証する第２の検証を行う処理と、
前記第２の証明書から前記公開鍵Ｐ２を抽出し、該公開鍵Ｐ２に基づきチャレンジを計算して送信し、前記チャレンジに対して前記秘密鍵Ｓ２を用いて計算されたレスポンスを受信し、該レスポンスを検証する処理と
を実行させるためのサービス提供処理プログラム。
【請求項７】
仮ブラインド署名情報ｐｒｅ−ＳＩＧＳＰを生成して送信する第１の証明書発行部と、
各々がブラインド署名ＳＩＧＳＰを含み、かつ証明内容Ｍとユーザの公開鍵の結びつきを証明するものであって、ユーザの秘密鍵Ｓ１に対応する匿名認証のために証明内容Ｍと前記ユーザの秘密鍵Ｓ１とペアのユーザの公開鍵Ｐ１の結びつきを証明する第１の証明書を含む複数の第１の証明書と、ユーザの公開鍵Ｐ２に対して前記公開鍵群、ユーザの秘密鍵Ｓ１及びユーザの公開鍵Ｐ１に基づき計算されたリング署名ＳＩＧＵと前記公開鍵Ｐ２からなる第２の証明書とを受信し、前記複数の第１の証明書の各々に対してブラインド署名ＳＩＧＳＰを検証する第１の検証を行う第１の証明書検証部と、
前記第２の検証に成功した場合に前記第２の証明書のリング署名ＳＩＧＵを検証する第３の検証を行うリング署名検証部と、
前記第２の証明書から前記公開鍵Ｐ２を抽出し、該公開鍵Ｐ２に基づきチャレンジを計算して送信し、前記チャレンジに対して前記秘密鍵Ｓ２を用いて計算されたレスポンスを受信し、該レスポンスを検証するチャレンジ計算部と
を具備したことを特徴とするサービス提供者装置。
【請求項８】
コンピュータに、
仮ブラインド署名情報ｐｒｅ−ＳＩＧＳＰを生成して送信する処理と、
各々がブラインド署名ＳＩＧＳＰを含み、かつ証明内容Ｍとユーザの公開鍵の結びつきを証明するものであって、ユーザの秘密鍵Ｓ１に対応する匿名認証のために証明内容Ｍと前記ユーザの秘密鍵Ｓ１とペアのユーザの公開鍵Ｐ１の結びつきを証明する第１の証明書を含む複数の第１の証明書と、ユーザの公開鍵Ｐ２に対して前記公開鍵群、ユーザの秘密鍵Ｓ１及びユーザの公開鍵Ｐ１に基づき計算されたリング署名ＳＩＧＵと前記公開鍵Ｐ２からなる第２の証明書とを受信し、前記複数の第１の証明書の各々に対してブラインド署名ＳＩＧＳＰを検証する第１の検証を行う処理と、
前記第２の検証に成功した場合に前記第２の証明書のリング署名ＳＩＧＵを検証する第３の検証を行う処理と、
前記第２の証明書から前記公開鍵Ｐ２を抽出し、該公開鍵Ｐ２に基づきチャレンジを計算して送信し、前記チャレンジに対して前記秘密鍵Ｓ２を用いて計算されたレスポンスを受信し、該レスポンスを検証する処理と
を実行させるためのサービス提供処理プログラム。
【請求項９】
ブラインド署名ＳＩＧＳＰを含み、かつ証明内容Ｍとユーザの公開鍵の結びつきを証明する第１の証明書をユーザ装置から受信し、該第１の証明書のブラインド署名ＳＩＧＳＰを検証する第１の検証を行い、前記第１の検証に成功した場合に前記第１の証明書を第１の記憶装置に格納する第１の証明書検証部と、
前記第１の記憶装置に予め格納され、前記ユーザ装置以外で作成され、前記ユーザの秘密鍵Ｓ１とは異なる秘密鍵に対応する匿名認証のための複数の第１の証明書からなる第１の証明書群を読み出し前記ユーザ装置に送信する第１の証明書管理部と
を具備したことを特徴とする証明書管理装置。
【請求項１０】
コンピュータに、
ブラインド署名ＳＩＧＳＰを含み、かつ証明内容Ｍとユーザの公開鍵の結びつきを証明する第１の証明書をユーザ装置から受信し、該第１の証明書のブラインド署名ＳＩＧＳＰを検証する第１の検証を行い、前記第１の検証に成功した場合に前記第１の証明書を第１の記憶装置に格納する処理と、
前記第１の記憶装置に予め格納され、前記ユーザ装置以外で作成され、前記ユーザの秘密鍵Ｓ１とは異なる秘密鍵に対応する匿名認証のための複数の第１の証明書からなる第１の証明書群を読み出し前記ユーザ装置に送信する処理と
を実行させるための証明書管理プログラム。
【請求項１１】
コンピュータに、
仮ブラインド署名情報ｐｒｅ−ＳＩＧＳＰに基づき、ブラインド署名ＳＩＧＳＰを含み、かつユーザの秘密鍵Ｓ１に対応する匿名認証のために証明内容Ｍと前記ユーザの秘密鍵Ｓ１とペアのユーザの公開鍵Ｐ１の結びつきを証明する第１の証明書を作成する処理と、
前記第１の証明書を送信するとともに、前記ユーザの秘密鍵Ｓ１とは異なる秘密鍵に対応する匿名認証のための複数の第１の証明書からなる第１の証明書群を受信する処理と、
前記第１の証明書群の各々から公開鍵を抽出して複数の公開鍵からなる公開鍵群を取得する処理と、
ユーザの公開鍵Ｐ２に対して、前記公開鍵群、ユーザの秘密鍵Ｓ１及びユーザの公開鍵Ｐ１に基づきリング署名ＳＩＧＵを計算し、前記公開鍵Ｐ２とリング署名ＳＩＧＵからなる第２の証明書を作成する処理と、
前記第１の証明書群、第１の証明書及び第２の証明書を送信する処理と、
前記第２の証明書から抽出される公開鍵Ｐ２に基づき計算されたチャレンジを受信し、該チャレンジに対して前記秘密鍵Ｓ２を用いてレスポンスを計算して前記サービス提供者装置に送信する処理と
実行させるためのサービス利用処理プログラムを記録した記録媒体。
【請求項１２】
コンピュータに、
各々がブラインド署名ＳＩＧＳＰを含み、かつ証明内容Ｍとユーザの公開鍵の結びつきを証明するものであって、ユーザの秘密鍵Ｓ１に対応する匿名認証のために証明内容Ｍと前記ユーザの秘密鍵Ｓ１とペアのユーザの公開鍵Ｐ１の結びつきを証明する第１の証明書を含む複数の第１の証明書と、ユーザの公開鍵Ｐ２に対して前記公開鍵群、ユーザの秘密鍵Ｓ１及びユーザの公開鍵Ｐ１に基づき計算されたリング署名ＳＩＧＵと前記公開鍵Ｐ２からなる第２の証明書とを受信し、前記複数の第１の証明書の各々に対してブラインド署名ＳＩＧＳＰを検証する第１の検証を行う処理と、
前記第１の検証に成功した場合に、前記第２の証明書のリング署名ＳＩＧＵを検証する第２の検証を行う処理と、
前記第２の証明書から前記公開鍵Ｐ２を抽出し、該公開鍵Ｐ２に基づきチャレンジを計算して送信し、前記チャレンジに対して前記秘密鍵Ｓ２を用いて計算されたレスポンスを受信し、該レスポンスを検証する処理と
を実行させるためのサービス提供処理プログラムを記録した記録媒体。
【請求項１３】
コンピュータに、
仮ブラインド署名情報ｐｒｅ−ＳＩＧＳＰを生成して送信する処理と、
各々がブラインド署名ＳＩＧＳＰを含み、かつ証明内容Ｍとユーザの公開鍵の結びつきを証明するものであって、ユーザの秘密鍵Ｓ１に対応する匿名認証のために証明内容Ｍと前記ユーザの秘密鍵Ｓ１とペアのユーザの公開鍵Ｐ１の結びつきを証明する第１の証明書を含む複数の第１の証明書と、ユーザの公開鍵Ｐ２に対して前記公開鍵群、ユーザの秘密鍵Ｓ１及びユーザの公開鍵Ｐ１に基づき計算されたリング署名ＳＩＧＵと前記公開鍵Ｐ２からなる第２の証明書とを受信し、前記複数の第１の証明書の各々に対してブラインド署名ＳＩＧＳＰを検証する第１の検証を行う処理と、
前記第２の検証に成功した場合に前記第２の証明書のリング署名ＳＩＧＵを検証する第３の検証を行う処理と、
前記第２の証明書から前記公開鍵Ｐ２を抽出し、該公開鍵Ｐ２に基づきチャレンジを計算して送信し、前記チャレンジに対して前記秘密鍵Ｓ２を用いて計算されたレスポンスを受信し、該レスポンスを検証する処理と
を実行させるためのサービス提供処理プログラムを記録した記録媒体。
【請求項１４】
コンピュータに、
ブラインド署名ＳＩＧＳＰを含み、かつ証明内容Ｍとユーザの公開鍵の結びつきを証明する第１の証明書をユーザ装置から受信し、該第１の証明書のブラインド署名ＳＩＧＳＰを検証する第１の検証を行い、前記第１の検証に成功した場合に前記第１の証明書を第１の記憶装置に格納する処理と、
前記第１の記憶装置に予め格納され、前記ユーザ装置以外で作成され、前記ユーザの秘密鍵Ｓ１とは異なる秘密鍵に対応する匿名認証のための複数の第１の証明書からなる第１の証明書群を読み出し前記ユーザ装置に送信する処理と
を実行させるための証明書管理プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ユーザの匿名性を確保したままユーザが保有する情報を認証する匿名認証を利用したサービス利用方法、ユーザ装置、サービス利用処理プログラム、サービス提供者装置、サービス提供処理プログラム、証明書管理装置、証明書管理プログラム及び記録媒体に関する。
【０００２】
【従来の技術】
被認証主体であるホスト（計算機端末）やユーザを認証するために用いられる電子的な証明書の枠組みとして、「公開鍵証明書」、「属性証明書」、「権利証明書」などが提案、運用されている（非特許文献１，非特許文献３を参照）。これらの証明書を利用した認証は、現在広く普及しているＩＤやパスワードを用いた認証に比較して、ユーザのなりすましやネットワーク上の盗聴などの不正な攻撃に対して強い。従って、医療分野や電子自治体などの外部からの不正な攻撃の排除が強く求められる分野への応用に適しているといえる。
【０００３】
しかしながら、上記のような認証方法は、ユーザ、すなわち電子証明書の所有者のプライバシーを考慮したものではなく、証明書からその所有者であるユーザを特定できるものであった。直接ユーザの個人情報が知られないにしても、電子証明書から個人情報を間接的に追跡し得た。
【０００４】
これに対して、近年、ユーザのプライバシーの保護を考慮し、電子証明書からはユーザが誰かを特定できず、ユーザの有する権利のみが確認できるような認証方法が提案されている（非特許文献４を参照）。この方法では、ユーザの個人情報、権利、属性などを保証するその方法独自の電子証明書を使用し、この証明書を発行する主体（以下、発行者と呼ぶ）と、証明書の正当性を確認してサービスを提供する主体（以下、検証者と呼ぶ）を明確に分離させ、両者が結託しないという前提の下にユーザのプライバシーを確保するものである。発行者は、予めユーザの個人情報、権利、属性などの情報を取得し、審査の上でユーザへ当該方法独自の電子証明書を発行する。一方、電子証明書の検証者は、ユーザから提示された匿名の電子証明書を検証することで、ユーザが誰かを知らなくても、すなわちユーザの個人情報、権利、属性などの情報を知らなくても、電子証明書の正当性を確認することでユーザにサービスを提供する。
【０００５】
これに対して、ユーザのプライバシーをより強く保護するものとして、暗号理論を応用した特許文献１，２，３、非特許文献５に記載された方法がある。この方法では、証明書の検証者だけでなく、発行者に対しても、証明書とその所有者であるユーザの関連づけを暗号理論上困難にしている。また、この方法では、ユーザの個人情報、権利、属性などの情報を記憶している証明書の発行者が同時に証明書の検証者となった場合でも、証明書を検証する段階では、証明書を所有するユーザが誰なのか知り得ないという、一見相反する事情を両立させている。以下ではこの方法を「匿名認証方式」と呼ぶ。
【０００６】
匿名認証方式では、証明書を発行する発行者装置と、証明書を検証する検証者装置はそれぞれを異なる主体が保有してもよく、また１つの同じ主体が２つの装置を保有してもよい。
【０００７】
証明書の発行者は、ユーザの個人情報、権利、属性などを知っており、証明内容（ユーザの個人情報、権利、属性など）に対してブラインド署名によって証明内容を保証した証明書をユーザに発行する。ブラインド署名の詳細は非特許文献２に記載されている。
【０００８】
なお、以下では、匿名認証において作成される、特定の情報とユーザの公開鍵の結びつきに対する電子証明書は、便宜上「第１の証明書」と称する。
【０００９】
匿名認証方式による匿名性の確保の具体的な仕組みを説明する。
【００１０】
なお、前提として、第１の証明書発行前に、予め、郵送等のオフライン、あるいはユーザ装置と発行者装置、検証者装置との間のオンライン処理により、ユーザの個人情報などのメッセージＭがユーザから発行者装置に提供されている。
【００１１】
まず、ユーザ装置は、乱数ｒｊ，ｗｊおよび公開鍵Ｐｕと秘密鍵Ｓｕのペアを生成し、以下の式で示される関数値Ｚｊを演算し、発行者装置にこの関数値Ｚｊを送信する。
【００１２】
Ｚｊ＝Ｐｓｐ（ｒｊ）ｇＢ（ｇＡ（Ｐｕ｜｜ｗｊ）｜｜Ｍ）    ｆｏｒ  １≦ｊ≦Ｎ
ここで、“｜｜”はビット結合を、ｇＡ（・），ｇＢ（・）は公開されている衝突困難な一方向ハッシュ関数を表す。これら衝突困難な一方向ハッシュ関数ｇＡ（・）とｇＢ（・）は、ともに同じ関数（同じアルゴリズム）であってもよい。また、Ｐｓｐは発行者が広く公開している公開鍵を、Ｍは特定のメッセージをそれぞれ表す。
【００１３】
なお、ここでの公開鍵Ｐｕは第１の証明書の発行段階では誰にも公開しない。
【００１４】
発行者装置は、受信したＺｊのうち、任意のＲ個を決定し、これに対応した｛Ｚｋ｝（１≦ｋ≦Ｒ）に含まれ、Ｚｋを算出するのに必要な乱数ｒｋ、関数値ｇＡ（Ｐｕ｜｜ｗｋ）からなるＺパラメータの開示をユーザ装置に要求する。
【００１５】
ユーザ装置は、発行者装置から要求のあったＺｋ（１≦ｋ≦Ｒ）についてのＺパラメータを送信する。
【００１６】
発行者装置は、Ｚパラメータに基づき以下の式Ｚｋを計算し、前記受信したＺｊと一致するか否かを検証する。
【００１７】
Ｚｋ＝Ｐｓｐ（ｒｋ）ｇＢ（ｇＡ（Ｐｕ｜｜ｗｋ）｜｜Ｍ）    ｆｏｒ  １≦ｋ≦Ｒ
一致していない場合には発行できないと判定し、第１の証明書発行手順を終了する。一致している場合には、開示されていないＺｉ（１≦ｉ≦Ｎ−Ｒ）について以下のＺｉへの仮ブラインド署名を実行する。
【００１８】
ｐｒｅ−ＳＩＧＳＰ＝Ｓｓｐ（ΠｉＺｉ）
ここで、Ｓｓｐは発行者装置の秘密鍵を表す。また、“Πｉ”は、すべてのｉについて乗算（ここではＺ１×Ｚ２×…×ＺＮ−Ｒ）することを表す。
【００１９】
得られた仮ブラインド署名ｐｒｅ−ＳＩＧＳＰはユーザ装置に送信される。
【００２０】
ユーザ装置は、受信した仮ブラインド署名ｐｒｅ−ＳＩＧＳＰを利用して以下の計算を実行するデジタル署名の抽出処理を行う。
【００２１】
ＳＩＧＳＰ＝ｐｒｅ−ＳＩＧＳＰ／Πｉｒｉ  ｆｏｒ  ａｌｌ  ｉ  （Πｉｒｉ＝ｒ１×ｒ２×…×ｒＮ−Ｒ）
また、以下をひとまとまりとして第１の証明書として保存する。
【００２２】
Ｃｅｒｔ＝［Ｍ，｛ｗｉ｝，Ｐｕ，ＳＩＧＳＰ］  ｆｏｒ  ａｌｌ  ｉ
ここで、｛ｗｉ｝＝｛ｗ１，ｗ２，…，ｗＮ−Ｒ｝である。
【００２３】
以上により第１の証明書の発行処理が終了する。
【００２４】
次に、第１の証明書の使用手順を説明する。
【００２５】
ユーザ装置は第１の証明書Ｃｅｒｔを検証者装置に送信する。
【００２６】
検証者装置は、ユーザ装置から受信したＣｅｒｔに含まれるＭ，｛ｗｉ｝，Ｐｕを用いて
Ｙｉ＝ｇＢ（ｇＡ（Ｐｕ｜｜ｗｊ）｜｜Ｍ）    ｆｏｒ  １≦ｊ≦Ｎ
を計算した後、以下の式が成立するか否かを判定する。
【００２７】
ΠｉＹｉ＝Ｐｓｐ（ＳＩＧＳＰ）
上記式が成り立つことが確認された後、提示された第１の証明書Ｃｅｒｔが正当なユーザ以外のユーザによって不正に取得されたものではないことを確認するために、チャレンジ／レスポンス方式を利用する。具体的には、検証者装置は公開鍵Ｐｕを使用してチャレンジを計算しユーザ装置へ送信する。ユーザ装置は秘密鍵Ｓｕを使用してチャレンジに対するレスポンスを計算し検証者装置へ送信する。検証者装置は受信したレスポンスを検証する。正しいレスポンスであることが確認された場合、Ｃｅｒｔの所有者の正当性が検証されたことになる。
【００２８】
これにより、ユーザが発行者から第１の証明書を発行された者であること、第１の証明書Ｃｅｒｔの正当な所有者であることが証明される。
【００２９】
図１はこの匿名認証方式の仕組みの概念図である。図１に示すように、ユーザＡ、ユーザＢおよびユーザＣがそれぞれ第１の証明書Ｃｅｒｔ  ｏｆ  Ａ、Ｃｅｒｔ  ｏｆ  Ｂ、Ｃｅｒｔ  ｏｆ  Ｃを使用する場合、第１の証明書の発行時には、ユーザの個人情報とユーザに発行したブラインド署名の元情報としての仮ブラインド署名Ｓｓｐ（ΠｉＺｉ）を関連づけて記憶することができる。これは、仮ブラインド署名Ｓｓｐ（ΠｉＺｉ）の生成に必要なユーザから提供されるＺｉやＺｉ算出に必要なＺパラメータには、ユーザ固有の情報が含まれているからである。
【００３０】
しかしながら、第１の証明書の検証時においては、上記第１の証明書Ｃｅｒｔ  ｏｆ  Ａ、Ｃｅｒｔ  ｏｆ  Ｂ、Ｃｅｒｔ  ｏｆ  Ｃとユーザの個人情報の対応づけが無いため、戻ってくる第１の証明書はいずれも区別はつくが、初めて見るデータということとなる。
【００３１】
このように、この匿名認証方式の注目すべき点は、第１の証明書の発行段階で誰にどんな第１の証明書を発行したかを発行者であるサービス提供者が記憶していたとしても（発行者が第１の証明書の発行時に記憶できるデータはＳｓｐ（ΠｉＺｉ）である）、第１の証明書が使用され発行者自身のもとへ戻ってきた際には、この第１の証明書（第１の証明書が戻ってきた際はＳＩＧＳＰというデータになっている）が誰に発行したものかを知り得ないことである。ただし、第１の証明書には発行者自身による仮ブラインド署名が含まれているため、発行者はこの第１の証明書は自分が発行したものであることを認めざるを得ない。
【００３２】
以上説明したように、この匿名認証方式によれば、ユーザへの第１の証明書の発行とその検証を例えばサービス提供者などの同一の主体が実施しても、ユーザのプライバシーが守られるという利点を有する。例えばサービス提供者のどの会員がサービスを利用したかをサービス提供者は知り得ず、自身の会員であることを確認できる。
【００３３】
また、「ユーザの情報」を秘匿するブラインド署名技術とは別に、「署名者が誰であるか」を秘匿できるものとして、暗号理論を応用したリング署名方式（例えば、非特許文献６参照）がある。リング署名方式に関して、以下では、通常の署名と比較しながら説明する。
【００３４】
通常の署名方法（ＲＳＡ署名など）は一般的に、例えば図２のフローチャートで示されたステップで行う。署名者Ａは署名鍵ＳＡとこれに対応する検証鍵ＰＡのペアを取得する（ｓ１２１）。ここで、署名鍵ＳＡは公開せず、検証鍵ＰＡは公開する。
【００３５】
署名者Ａは署名鍵ＳＡによって署名ＳＩＧを計算する（ｓ１２２）。
【００３６】
検証者は署名者Ａが公開する検証鍵ＰＡによって署名ＳＩＧを検証する（ｓ１２３）。
【００３７】
このため、署名の検証者は検証鍵ＰＡを使用する時点で署名者が署名者Ａであることを知ることができる。
【００３８】
一方でリング署名とは、署名者が誰であるかを検証者に知らせることなく、署名を検証させる方法である。具体的には、例えば図３に示すフローチャートに沿った以下のステップで署名を行う。
【００３９】
まず、署名者Ａは署名鍵ＳＡとこれに対応する検証鍵ＰＡのペアを取得する（ｓ１３１）。ここで、署名鍵ＳＡは公開せず、検証鍵ＰＡは公開する。
【００４０】
次に、署名者Ａは所定の手段によって署名者Ａの所有しない他の検証鍵ＰＢ、Ｐｃ、ＰＤ…を収集する（ｓ１３２）。
【００４１】
次に、署名者Ａは検証鍵ＰＡ，ＰＢ，Ｐｃ，ＰＤ…および署名鍵ＳＡを使用して、署名ＳＩＧを計算する（ｓ１３３）。
【００４２】
一方、検証者は、検証鍵ＰＡ，ＰＢ，Ｐｃ，ＰＤ…によってＳＩＧを検証する（ｓ１３４）。検証者にとってはＳＩＧを複数の検証鍵ＰＡ，ＰＢ，Ｐｃ，ＰＤ…で検証するため、ＳＩＧの計算に使用された署名鍵が、検証鍵ＰＡ，ＰＢ，Ｐｃ，ＰＤ…のうちのどれに対応する署名鍵なのかを知りえない。しかし、検証者側では、いずれかの検証鍵に対応する署名鍵でなければ検証が行えない。従って、ユーザにとっては、署名者が誰であるかを検証者に知らせることなく、署名を検証させることが可能となる。
【００４３】
ブラインド署名は署名時において「署名の依頼者」と「署名の実施者」が存在するモデルにおいて、「署名の依頼者」は「署名の実施者」に対し“何に対して”署名したのかを秘匿する技術である。これに対し、リング署名は署名時において「署名の実施者」のみが存在するモデルにおいて、“誰が”署名したのかを秘匿する技術である。
【００４４】
【特許文献１】
特開２０００−２３１３３１号公報
【特許文献２】
特開２００１−１３４１８２号公報
【特許文献３】
特開２００１−１８８７５７号公報
【非特許文献１】
小松文子著「ＰＫＩハンドブック」、株式会社ソフト・リサーチ・センター、２０００年１１月２５日発行、ｐ．４１−６８「第３章  ３．１  公開鍵証明書」、ｐ．８２−８３「３．３．１属性証明書」
【非特許文献２】
岡本龍明、山本博資著、「現代暗号」、産業図書、ｐ．１８４、１９９８年６月３０日発行
【非特許文献３】
Ｃａｒｌ  Ｅｌｌｉｓｏｎ著、「ＳＰＫＩ  Ｃｅｒｔｉｆｉｃａｔｅ  Ｔｈｅｏｒｙ，  ＲＦＣ２６９３  ３．３  ＳＰＫＩ  Ｃｅｒｔｉｆｉｃａｔｅｓ，  ６．１．５  ５−ｔｕｐｌｅ  Ｄｅｆｉｎｅｄ」、〔ｏｎｌｉｎｅ〕、１９９９年９月掲載、〔２００３年２月２７日検索〕、インターネット＜ｈｔｔｐ：／／ｗｗｗ．ｆａｑｓ．ｏｒｇ／ｒｆｃｓ／ｒｆｃ２６９３．ｈｔｍｌ＞
【非特許文献４】
斎藤孝道、梅澤健太郎、奥野博著、「プライバシを重視するアクセス制御システムの一方式」、電子情報通信学会誌、Ｄ−Ｉ，  Ｖｏｌ．Ｊ８４−Ｄ−Ｉ，  ｎｏ．１１，  ｐ．１５５３−１５６２，  ２００１年
【非特許文献５】
佐藤直之、鈴木英明著、「匿名のまま権利行使を可能とした認証方式」、情報処理学会論文誌、Ｖｏｌ．４１，  Ｎｏ．８，  ｐ．２１３８−２１４７，  ２０００年
【非特許文献６】
Ｒ．Ｌ．Ｒｉｖｅｓｔ，  Ａ．Ｓｈａｍｉｒ，  ａｎｄ  Ｙ．Ｔａｕｍａｎ、「Ｈｏｗ  ｔｏ  ｌｅａｋ  ａ  ｓｅｃｒｅｔ」、Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ−Ａｓｉｓｃｒｙｐｔ  ２００１、ＬＮＣＳ２２４８、ｐ．５５２−５６５、Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ、２００１年
【００４５】
【発明が解決しようとする課題】
以上説明したように、匿名認証方式とは、「予めユーザを特定できる情報を第１の証明書の発行者が知っていても、発行者がユーザへ発行した第１の証明書が発行者自身へ戻ってきたとき、その第１の証明書がどのユーザのものであるかを識別できない」という認証方式の枠組みを提供するものである。
【００４６】
従って、第１の証明書の発行と検証を同一の主体が実施するような場合にも、ユーザの匿名性が維持できるという特徴がある。この特徴を考慮すると、既存のインターネットサービスプロバイダ（ＩＳＰ）が実施しているように、ユーザをその会員として登録し、サービスの提供を行うようなサービス提供者に対しても、匿名認証方式を適用することができるといえる。この場合、例えばサービス提供者は、ユーザを会員として登録する際に第１の証明書を発行しておき、ユーザの要求に応じてサービスを提供する際には、ユーザから提示される第１の証明書を検証することで認証するといった運用が考えられる。
【００４７】
ところが、上記のような運用においては、第１の証明書の発行および検証はユーザの要求に応じて実施されるものであるため、第１の証明書の発行および検証は任意の時系列で実施されることが予想される。任意の時系列で第１の証明書の発行と検証が実施されるとき、同じ証明内容（即ちユーザ情報）を保有するユーザであっても、匿名性が実効的に保証されなくなるユーザが存在するという状況が発生しうる。
【００４８】
図４はこの匿名認証方式の問題点を説明するための図である。以下では、第１の証明書の発行および検証をともに「サービス提供者」が実施し、ユーザはすべて同じ証明内容（即ちユーザ情報）を保有することを前提としている。以下ではサービス提供者、ユーザＡ、Ｂ及びＣがやりとりする記載としているが、実質的にはネットワークを介したサービス提供サーバと各ユーザ装置間のデータ通信により実現される。
【００４９】
まず、サービス提供者がユーザＡに第１の証明書を発行し（ｓ５０１）、ユーザＡはブラインド署名の抽出を実行する（ｓ５０１ａ）。具体的には、受信した仮ブラインド署名を乱数ｒＡで除算する。なお、実際にはサービス提供者が発行するのは仮ブラインド署名ｐｒｅ−ＳＩＧＳＰであって、この仮ブラインド署名ｐｒｅ−ＳＩＧＳＰからユーザ側がブラインド署名ＳＩＧＳＰを抽出し、このブラインド署名ＳＩＧＳＰを証明の対象とするメッセージＭ，乱数ｗｋ，公開鍵Ｐｕに付加して第１の証明書Ｃｅｒｔが出来上がる。
【００５０】
次に、サービス提供者はユーザＢに第１の証明書を発行し（ｓ５０２）、ユーザＢは前述したブラインド署名の抽出を実行する（ｓ５０２ａ）。具体的には、受信した仮ブラインド署名を乱数ｒＢで除算する。次に、ユーザＡが第１の証明書を使用する、すなわち、サービス提供者に対して第１の証明書Ｃｅｒｔ  ｏｆ  Ａを送信する。サービス提供者から見ると、この第１の証明書がユーザＡのものである確率は１／２、ユーザＢのものである確率は１／２となる。このとき、ユーザＡは、第１の証明書から自分を特定されないため、匿名性は確保できる。そして、次にユーザＢが第１の証明書を使用する。この場合も、ユーザＡの場合と同様に匿名性を確保できる。ところが、次でサービス提供者がユーザＣに第１の証明書を発行し（ｓ５２１）、次に他のユーザに第１の証明書を発行する前にユーザＣが第１の証明書を使用すると（ｓ５２２）、サービス提供者は、ユーザＣから受信した第１の証明書が確率１でユーザＣのものと分かってしまう。少なくとも、ユーザＡとユーザＢは既に第１の証明書を使用したことをサービス提供者は記憶しているからである。
【００５１】
上記の説明からも明らかなように、ユーザにとっては、自分以外のユーザが複数存在していたとしても自分と識別不能な対象、すなわち他のユーザが少なくとも１人はいない限り、自分の匿名性をサービス提供者に対して確保できない。この問題点は自分と識別不能なユーザが１人もいないことに起因する。逆に、ユーザＡおよびユーザＢは、それぞれ互いが自分と識別不能なユーザとなっているため、サービス提供者に対して匿名性を確保できるのである。
【００５２】
ユーザが１枚の第１の証明書の発行を受け、この１枚の第１の証明書を使用するという匿名認証方式のモデルでは、サービス提供者は戻ってくる第１の証明書の枚数から、何人にユーザが第１の証明書を使用しているのかを記憶できる。そして、「第１の証明書を発行したすべてのユーザが既に第１の証明書を使用した」ことを記憶されてしまうと、新たに第１の証明書を発行されるユーザの匿名性は保証されなくなる。
【００５３】
本発明は上記課題を解決するためになされたもので、その目的とするところは、証明内容を同じくするユーザがただ一人に限られる場合を除き、いかなるタイミングでユーザが第１の証明書の発行を受けても、常にこのユーザがどの第１の証明書の所有者かをサービス提供者から秘匿することができるサービス利用方法、ユーザ装置、サービス利用処理プログラム、サービス提供者装置、サービス提供処理プログラム、証明書管理装置、証明書管理プログラム及び記録媒体を提供することにある。
【００５４】
【課題を解決するための手段】
本発明の骨子は以下の通りである。
【００５５】
本発明では、まず、サービス利用者であるユーザが証明内容、即ちユーザ情報を同じくする他のユーザの保持する第１の証明書を収集し、収集した複数の第１の証明書を一度に検証者であるサービス提供者に提出する。この処理は、前述の図４の例に即して説明すると、ユーザＣが（ｓ５２２）で「ユーザＣが使用する第１の証明書」がサービス提供者に提供される代わりに、「ユーザＡが使用する第１の証明書」「ユーザＢが使用する第１の証明書」「ユーザＣが使用する第１の証明書」からなる３枚の第１の証明書がサービス提供者に提供され使用されることになる。
【００５６】
このとき、サービス提供者は、ユーザＣが作成した第１の証明書が、提示された３枚の第１の証明書のうちのどれであるかを知りえない。
【００５７】
しかしながら、単に証明内容（即ちユーザ情報）を同じくする複数の異なる第１の証明書を提供するだけでは、いずれか１つの第１の証明書は、確かに自分自身の第１の証明書であること、すなわち、サービス提供者に提示する複数の証明書のうち、いずれか１つの第１の証明書については、ユーザがこの第１の証明書に対応する秘密鍵を所持していることを、サービス提供者に主張することができない。そこで、第１の証明書に含まれる各ユーザの公開鍵Ｐｕを用いることで、また図３に示したユーザのプライバシを保護するリング署名を計算することで、いずれか１つの第１の証明書が自分自身の第１の証明書であることをサービス提供者へ主張することを可能とする。
【００５８】
また、証明内容を同じくする複数の第１の証明書を一度にサービス提供者に提出することで、どのユーザがサービス提供依頼を行っているかを隠蔽する場合は、どの第１の証明書が、サービス提供依頼を行っているユーザの第１の証明書であるかが隠蔽されていることになるので、前述の従来技術で説明された第１の証明書の検証処理における「ユーザが正しい秘密鍵を持つことの検証」をチャレンジ／レスポンスにより実施できなくなる。
【００５９】
そこで、本発明では、チャレンジ／レスポンスに使用する鍵ペアは、第１の証明書に含まれる公開鍵Ｐ１およびこれに対応する秘密鍵Ｓ１ではなく、サービスを利用する際に作成する、別の公開鍵方式の鍵ペアＰ２，Ｓ２とし、前出のリング署名とＰ２の組を第２の証明書として、証明内容を同じくする第１の証明書群と共に、サービス提供者に提供することとする。
【００６０】
これにより、サービス提供者は、▲１▼第１の証明書群に含まれるユーザの公開鍵群と、第２の証明書に含まれるリンク署名により、いずれかの第１の証明書を保有したユーザからのサービス依頼であることを確認可能で、更に、▲２▼第２の証明書に含まれるＰ２に基づきチャレンジをユーザに送信し、Ｓ２に基づいたレスポンスを得ることで、当該情報をタッピングした悪意のユーザからの依頼ではないことが確認可能となる。
【００６１】
第１の証明書は、ユーザ情報と公開鍵との関連付けを客観的に証明する役割を果たすのに対し、第２の証明書はユーザが第１の証明書を確かに保有することを証明する役割を果たす。
【００６２】
本発明の一つの観点によれば、以上に示した方法を実現するために、証明内容Ｍとユーザの公開鍵の結びつきを証明する第１の証明書によるユーザの匿名認証を用いたサービス利用方法であって、証明書発行段階では、ユーザ装置が、発行者装置から送信された仮ブラインド署名情報ｐｒｅ−ＳＩＧＳＰに基づき、ブラインド署名ＳＩＧＳＰを含み、かつユーザの秘密鍵Ｓ１に対応する匿名認証のために証明内容Ｍと前記ユーザの秘密鍵Ｓ１とペアのユーザの公開鍵Ｐ１の結びつきを証明する第１の証明書を作成し、前記第１の証明書を証明書管理装置に送信し、前記証明書管理装置は、前記第１の証明書のブラインド署名ＳＩＧＳＰを検証する第１の検証を行い、前記第１の検証に成功した場合に前記第１の証明書を第１の記憶装置に格納し、前記第１の記憶装置に予め格納され、前記ユーザ装置以外で作成され、前記ユーザの秘密鍵Ｓ１とは異なる秘密鍵に対応する匿名認証のための複数の第１の証明書からなる第１の証明書群を読み出し前記ユーザ装置に送信し、前記ユーザ装置は、受信した前記第１の証明書群の各々から公開鍵を抽出して複数の公開鍵からなる公開鍵群を取得し、ユーザの公開鍵Ｐ２に対して、前記公開鍵群、ユーザの秘密鍵Ｓ１及びユーザの公開鍵Ｐ１に基づきリング署名ＳＩＧＵを計算し、前記公開鍵Ｐ２とリング署名ＳＩＧＵからなる第２の証明書を作成し、サービス利用段階では、前記ユーザ装置は、サービス提供者装置に、前記第１の証明書群、第１の証明書及び第２の証明書を送信し、前記サービス提供者装置は、前記第１の証明書群の各々及び前記第１の証明書に対してブラインド署名ＳＩＧＳＰを検証する第２の検証を行い、前記第２の検証に成功した場合に前記第２の証明書のリング署名ＳＩＧＵを検証する第３の検証を行い、前記第２の証明書から前記公開鍵Ｐ２を抽出し、該公開鍵Ｐ２に基づきチャレンジを計算して前記ユーザ装置に送信し、前記ユーザ装置は、前記チャレンジに対して前記秘密鍵Ｓ２を用いてレスポンスを計算して前記サービス提供者装置に送信し、前記サービス提供者装置は、前記レスポンスを検証することを特徴とするサービス利用方法が提供される。
【００６３】
また、本発明の別の観点によれば、上記サービス利用方法を実現するためのユーザ装置、発行者装置、サービス提供者装置、証明書管理装置、またこれら装置として機能させるためのプログラム、該プログラムを記録した記録媒体としても成立する。
【００６４】
【発明の実施の形態】
以下、図面を参照して本発明の一実施形態を説明する。
【００６５】
図５は本発明の一実施形態に係るサービス提供方法が適用されるサービス提供システムの全体構成を示す図である。４００はインターネットなどの電子ネットワークを示す。このネットワーク４００に、サービスを提供する認証主体としてのサービス提供者が使用するサービス提供者装置１００、サービスを利用し、認証を受けるユーザの使用する複数のユーザ装置２００、及び証明書管理装置３００が接続されている。
【００６６】
サービス提供者装置１００は、ユーザ装置２００に電子証明書を発行するサービス提供者が利用する装置である。発行される電子証明書には、匿名認証において作成される、特定の情報とユーザの公開鍵の結びつきに対する電子証明書（以下、第１の証明書と称する）も含まれる。匿名認証とは、被認証者であるユーザの属性情報を提供することなく電子証明書の認証を行う方式をいう。
【００６７】
また、サービス提供者装置１００は、ユーザを認証しサービスを提供する装置であり、第１の証明書発行部１１０、第１の証明書検証部１２０、第２の証明書検証部１３０とを備える。
【００６８】
ユーザ装置２００は、サービスを利用するために認証の対象とされるユーザにより操作される装置であり、第１の証明書作成部２１０、第２の証明書作成部２２０及びサービス要求部２３０を有する。
【００６９】
証明書管理装置３００は、発行された第１の証明書を管理するための装置であり、第１の証明書検証部３１０及び第１の証明書管理部３２０を有し、管理されるべき第１の証明書は、記憶装置３３０に格納される。
【００７０】
例えば証明書管理装置３００に設けられたメモリから読み出されたプログラムが読み出されて証明書管理装置３００のＣＰＵなどで実行されることにより、証明書管理装置３００が各構成要素３１０及び３２０として機能する。
【００７１】
図６はサービス提供者装置１００の詳細な構成の一例を示す図である。
【００７２】
第１の証明書発行部１１０は、匿名認証における第１の証明書の発行処理をユーザ装置２００との間で実施する。第１の証明書の発行処理は、具体的には後述する仮ブラインド署名ｐｒｅ−ＳＩＧＳＰの生成及びユーザ装置２００への送信からなる。第１の証明書検証部１２０は、匿名認証における第１の証明書の検証処理をユーザ装置２００との間で実施する。この第１の証明書検証部１２０は、第１の証明書に含まれるブラインド署名を検証するブラインド署名検証部１２１を有する。第２の証明書検証部１３０は、ユーザ装置２００が作成したリング署名を検証するリング署名検証部１３１と、ユーザ装置２００が正しい秘密鍵を保有することを検証するためのチャレンジ計算部１３２とを有する。
【００７３】
例えばサービス提供者装置１００に設けられたメモリから読み出されたプログラムが読み出されてサービス提供者装置１００のＣＰＵなどで実行されることにより、サービス提供者装置１００が各構成要素１１０，１２０，１２１及び１３０として機能する。
【００７４】
図７はユーザ装置２００の詳細な構成の一例を示す図である。
【００７５】
第１の証明書作成部２１０は、匿名認証方式における第１の証明書の発行処理をサービス提供者装置１００との間で実施する。この第１の証明書作成部２１０は、公開鍵Ｐ１と秘密鍵Ｓ１を作成し、秘密鍵Ｓ１を秘密に所有する処理を実施する。秘密に所有する処理とは、記憶装置等に格納して読み出し不能に設定する処理等が該当する。
【００７６】
第２の証明書作成部２２０は、鍵ペア作成部２２１と、第１の証明書収集部２２２と、公開鍵抽出部２２３と、リング署名計算部２２４とを有する。
【００７７】
鍵ペア作成部２２１は、公開鍵Ｐ２と秘密鍵Ｓ２のペアを作成し、Ｓ２を秘密に所有する処理を実施する。第１の証明書収集部２２２は、他のユーザ装置２００が管理する第１の証明書を証明書管理装置３００から取得する処理を実行する。公開鍵抽出部２２３は、収集した第１の証明書の各々から公開鍵を抽出する。リング署名計算部２２４は、鍵ペア作成部２２１にて作成した公開鍵に対してリング署名を計算する。
【００７８】
「第２の証明書」とは、鍵ペア作成部２２１にて作成した公開鍵Ｐ２とリング署名ＳＩＧＵの組を指す。
【００７９】
サービス要求部２３０は、証明書送信部２３１とレスポンス計算部２３２とを有する。証明書送信部２３１は、第１の証明書収集部２２２にて収集した第１の証明書群および第２の証明書をサービス提供者装置１００へ送信する。レスポンス計算部２３２は、鍵ペア作成部２２１にて作成した秘密鍵を使用してサービス提供者装置１００のチャレンジに対するレスポンスを作成し、サービス提供者装置１００へ送信する。
【００８０】
また、ユーザ装置２００には、記憶装置２４０が備えられ、各種電子証明書や鍵などのデータを格納することができる。この記憶装置２４０は、ユーザ装置２００本体に接続された磁気ディスクや光ディスクなどの記憶装置のみならず、例えばカード書込／読取装置とその装置により書込及び読取可能なＩＣカードにより実現されてもよい。
【００８１】
例えばユーザ装置２００に設けられたメモリから読み出されたプログラムが読み出されてユーザ装置２００のＣＰＵなどで実行されることにより、ユーザ装置２００が各構成要素２１０，２２０，２２１，２２２，２２３，２２４，２３０，２３１及び２３２として機能する。
【００８２】
図８は本実施形態に係る第１の証明書５００の構成例を示す図である。第１の証明書５００は、ユーザ装置２００の第１の証明書作成部２１０が作成した公開鍵Ｐ１と、証明内容（ユーザの属性情報）Ｍと、公開鍵Ｐ１および証明内容Ｍに対するサービス提供者装置１００のブラインド署名ＳＩＧｓｐからなる。
【００８３】
図９は第２の証明書６００の構成例を示す図である。第２の証明書６００は、ユーザ装置２００の鍵ペア作成部２２１が作成した公開鍵Ｐ２と、公開鍵Ｐ２に対するユーザ装置２００のリング署名ＳＩＧＵからなる。
【００８４】
図１０は第１の証明書５００の作成を含む第２の証明書６００の作成処理の流れを示したものである。
【００８５】
ユーザ装置２００の第１の証明書作成部２１０はサービス提供者装置１００の第１の証明書発行部１１０と協力して第１の証明書Ａを作成する（ｓ１）。この処理は、第１の証明書Ａの作成処理の一例を図１２を用いて説明する。
【００８６】
なお、（ｓ１）に示す第１の証明書Ａ発行前に、予め、郵送等のオフライン、あるいはユーザ装置２００とサービス提供者装置１００との間のオンライン処理により、ユーザの個人情報などのメッセージＭがユーザからサービス提供者に提供されている。
【００８７】
図１２に示すように、まずユーザ装置２００は、乱数ｒｊ，ｗｊおよび公開鍵Ｐ１Ａと秘密鍵Ｓ１Ａのペアを生成し、以下の式で示される関数値Ｚｊを演算し（ｓ１０１）、サービス提供者装置１００にこの関数値Ｚｊを送信する（ｓ１０２）。
【００８８】
Ｚｊ＝Ｐｓｐ（ｒｊ）ｇＢ（ｇＡ（Ｐ１Ａ｜｜ｗｊ）｜｜Ｍ）    ｆｏｒ  １≦ｊ≦Ｎ
ここで、“｜｜”はビット結合を、ｇＡ（・），ｇＢ（・）は公開されている衝突困難な一方向ハッシュ関数を表す。これら衝突困難な一方向ハッシュ関数ｇＡ（・）とｇＢ（・）は、ともに同じ関数（同じアルゴリズム）であってもよい。また、Ｐｓｐはサービス提供者が広く公開している公開鍵を、Ｍは特定のメッセージをそれぞれ表す。
【００８９】
なお、ここでの公開鍵Ｐ１Ａは第１の証明書Ａの発行段階では誰にも公開しない。
【００９０】
サービス提供者装置１００は、受信したＺｊのうち、任意のＲ個を決定し（ｓ１０３）、これに対応した｛Ｚｋ｝（１≦ｋ≦Ｒ）に含まれ、Ｚｋを算出するのに必要な乱数ｒｋ、関数値ｇＡ（Ｐ１Ａ｜｜ｗｋ）からなるＺパラメータの開示をユーザ装置２００に要求する（ｓ１０４）。
【００９１】
ユーザ装置２００は、サービス提供者装置１００から要求のあったＺｋ（１≦ｋ≦Ｒ）についてのＺパラメータを送信する（ｓ１０５）。
【００９２】
サービス提供者装置１００は、Ｚパラメータに基づき以下の式Ｚｋを計算し、（ｓ１０２）で受信したＺｊと一致するか否かを検証する（ｓ１０６）。
【００９３】
Ｚｋ＝Ｐｓｐ（ｒｋ）ｇＢ（ｇＡ（Ｐ１Ａ｜｜ｗｋ）｜｜Ｍ）    ｆｏｒ  １≦ｋ≦Ｒ
一致していない場合には発行できないと判定し、第１の証明書Ａの発行手順を終了する。一致している場合には、（ｓ１０７）に進み、開示されていないＺｉ（１≦ｉ≦Ｎ−Ｒ）について以下のＺｉへの仮ブラインド署名を実行する。
【００９４】
ｐｒｅ−ＳＩＧＳＰ＝Ｓｓｐ（ΠｉＺｉ）
ここで、Ｓｓｐはサービス提供者装置１００の秘密鍵を表す。また、“Πｉ”は、すべてのｉについて乗算（ここではＺ１×Ｚ２×…×ＺＮ−Ｒ）することを表す。
【００９５】
得られた仮ブラインド署名ｐｒｅ−ＳＩＧＳＰはユーザ装置２００に送信される（ｓ１０８）。
【００９６】
ユーザ装置２００は、受信した仮ブラインド署名ｐｒｅ−ＳＩＧＳＰを利用して以下の計算を実行するデジタル署名の抽出処理を行う（ｓ１０９）。
【００９７】
ＳＩＧＳＰ＝ｐｒｅ−ＳＩＧＳＰ／Πｉｒｉ  ｆｏｒ  ａｌｌ  ｉ  （Πｉｒｉ＝ｒ１×ｒ２×…×ｒＮ−Ｒ）
また、以下をひとまとまりとして第１の証明書Ａ（＝Ｃｅｒｔ  １Ａ）として記憶装置２４０に保存する（ｓ１１０、ｓ２）。
【００９８】
Ｃｅｒｔ  １Ａ＝［Ｍ，｛ｗｉ｝，Ｐ１Ａ，ＳＩＧＳＰ］  ｆｏｒ  ａｌｌ  ｉ
ここで、｛ｗｉ｝＝｛ｗ１，ｗ２，…，ｗＮ−Ｒ｝である。
【００９９】
以上により第１の証明書Ａの発行処理（ｓ１，ｓ２：ｓ１０１〜ｓ１１０）が終了する。
【０１００】
次に、第１の証明書収集部２２２は、上記で作成した第１の証明書Ａを読み出し（ｓ３）、証明書管理装置３００に送信し、他の第１の証明書の送信を要求する（ｓ４）。これら（ｓ３）及び（ｓ４）の処理は、必ずしも（ｓ２）の処理の直後に実行される必要は無く、（ｓ２）から所定の時間経過した所定の時刻（例えば毎日１２：００）に実施されるようにしてもよい。
【０１０１】
証明書管理装置３００の第１の証明書検証部３１０は、受信した第１の証明書Ａのブラインド署名を検証する（ｓ５）。なお、第１の証明書検証部３１０は、予め第１の証明書Ａが記憶装置３３０に記憶されているか否かを記憶装置３３０を参照して判定し、記憶されていない場合には（ｓ５）のブラインド署名の検証を行い、記憶されている場合には検証を省略し、第１の証明書Ａの追記を実行しないようにしてもよい。
【０１０２】
具体的には、第１の証明書検証部３１０は、ユーザ装置２から受信したＣｅｒｔ  １Ａに含まれるＭ，｛ｗｉ｝，Ｐｕを用いて
Ｙｉ＝ｇＢ（ｇＡ（Ｐｕ｜｜ｗｊ）｜｜Ｍ）    ｆｏｒ  １≦ｊ≦Ｎ
を計算した後、以下の式が成立するか否かを判定する。
【０１０３】
ΠｉＹｉ＝Ｐｓｐ（ＳＩＧＳＰ）
成立すると判定される場合には、ユーザがサービス提供者から証明書を発行された者であることが証明される。この検証に成功すると第１の証明書検証部３１０は第１の証明書Ａを記憶装置３３０に保存する（ｓ６）。検証に失敗した場合、第１の証明書Ａは保存されない。
【０１０４】
また、この第１の証明書Ａを保存する際に、第１の証明書管理部３２０は、あらかじめ所有する第１の証明書群（第１の証明書Ｂ、第１の証明書Ｃ、第１の証明書Ｄ）を読み出し（ｓ７）、ユーザ装置２００の第１の証明書収集部２２２に送信する（ｓ８）。なお、上記の第１の証明書群の各々は証明書管理装置３００があらかじめ他のユーザ装置から収集したものである。本システムを利用するはじめてのユーザが第１の証明書を証明書管理装置に送信（ｓ４）する場合には、記憶装置３３０には他のユーザにより予め登録された第１の証明書群は存在しない。しかし、この場合であっても、例えば証明書管理装置３００が予めユーザが行うのと同様の（ｓ１）の処理によりサービス提供者１００と協力してダミーの複数の第１の証明書を作成しておき、これを第１の証明書群として記憶装置３３０に格納しておく。これにより、はじめてのユーザに対しても、（ｓ８）の処理で、複数の第１の証明書からなる第１の証明書群を送信することができる。
【０１０５】
公開鍵抽出部２２３は、収集した第１の証明書群（第１の証明書Ｂ、第１の証明書Ｃ、第１の証明書Ｄ）の各々から公開鍵ＰｌＢ，ＰｌＣ，ＰｌＤからなる公開鍵群を抽出する（ｓ９）。鍵ペア作成部２２１は公開鍵Ｐ２Ａと秘密鍵Ｓ２Ａの鍵ペアを作成し（ｓ１０）、秘密鍵Ｓ２Ａは秘密に所有すべく記憶装置２４０に格納される（ｓ１１）。リング署名計算部２２４は、公開鍵ＰｌＡ，ＰｌＢ，ＰｌＣ，ＰｌＤ及びＳｌＡを使用して、公開鍵Ｐ２Ａに対するリング署名ＳＩＧＵを計算する（ｓ１２）。また、公開鍵Ｐ２Ａおよびリング署名ＳＩＧＵを第２の証明書Ａとして保存する（ｓ１３）。この（ｓ９）以降の処理は、（ｓ８）の証明書送信の直後に実行される必要は無く、（ｓ８）の証明書送信から所定の時間経過した後に例えばユーザ装置２００上の所定の操作に応答して実行されるようにしてもよい。
【０１０６】
図１１は第１の証明書Ａ及び第２の証明書Ａを発行した後のサービス要求処理の流れを示したものである。
【０１０７】
ユーザ装置２００の証明書送信部２３１は、所有する第１の証明書Ａ、第１の証明書Ｂ、第１の証明書Ｃ、第１の証明書Ｄ、および第２の証明書Ａを記憶装置２４０から読み出し（ｓ２１）、サービス提供者装置１００の第１の証明書検証部１２０へ送信する（ｓ２２）。第１の証明書検証部１２０のブラインド署名検証部１２１は、受信した全ての第１の証明書５００（第１の証明書Ａ、第１の証明書Ｂ、第１の証明書Ｃ、第１の証明書Ｄ）に含まれるブラインド署名ＳＩＧＳＰ（５３０）を検証する（ｓ２３）。この検証処理は、第１の証明書検証部３１０で実行される検証手法と共通する。これに成功すると、第２の証明書検証部１３０のリング署名検証部１３１は第２の証明書６００に含まれるリング署名ＳＩＧＵ（６２０）を検証する（ｓ２４）。これに成功すると、チャレンジ計算部１３２は第２の証明書Ａに含まれる公開鍵Ｐ２Ａ（６０１）を使用してチャレンジを作成し（ｓ２５）、ユーザ装置２００へ送信する（ｓ２６）。ユーザ装置２００のレスポンス計算部２３２は受信したチャレンジに対し、秘密鍵Ｓ２Ａを使用してレスポンスを計算し（ｓ２７）、サービス提供者装置１００へ送信する（ｓ２８）。サービス提供者装置１００は上記のレスポンスを検証し（ｓ２９）、これに成功するとユーザ装置２００ヘサービスを提供する（ｓ３０）。
【０１０８】
従来の匿名認証方式では、ユーザは１つの証明書の発行を受け、この１つの証明書を使用するモデルであった。このため、任意の時系列で証明書の発行、使用が起こる際は、その時系列関係によってはユーザの匿名性が実効的に確保できなくなる場合があった。これに対して本実施形態によれば、ユーザが１つの第１の証明書の発行を受けても、複数の第１の証明書を一度に使用することでこのユーザがどの第１の証明書の所有者かをサービス提供者に秘匿している。したがって任意の時系列で第１の証明書の発行、使用が起こってもサービス提供者にユーザを一意に推定されることなく、匿名性を確保した認証を実現できる。
【０１０９】
本発明は上記実施形態に限定されるものではない。
【０１１０】
図９の証明書発行手順、図１０の証明書検証手順ともに、サービス提供者装置１００が発行及び検証する場合を例に説明したが、発行者装置と検証者装置が別途設けられ、それぞれが発行処理および検証処理を実行してもよい。また、証明書の発行、検証とサービスの提供は別の装置が提供してもよいことはもちろんである。
【０１１１】
また、上記実施形態の図１２を用いて説明した匿名認証手法はほんの一例にすぎず、被認証者の属性情報を提供せずに電子証明書の認証を行ういかなる匿名認証方式にも本発明を適用可能であることはもちろんである。
【０１１２】
また、秘密鍵と他の証明書等のデータを同一の記憶装置に格納する例として示したが、秘密鍵は秘密に所有すべく別の記憶装置に格納してもよい。
【０１１３】
また、サービス提供者装置１００、ユーザ装置２００及び証明書管理装置３００に設けられたメモリからプログラムが読み出されることにより、これら各装置１００，２００及び３００が各構成要素１１０，１２０，１３０，２１０，２２０，２３０，３１０，３２０等として機能する場合を示したが、これに限定されない。各構成要素１１０，１２０，１３０，２１０，２２０，２３０，３１０，３２０等として機能させるため、各装置１００，２００及び３００のコンピュータに指令を与えるプログラムコードを記録した記録媒体を予め作成しておき、この記録媒体から各装置１００，２００及び３００に記録媒体読取装置によりプログラムを読み出すことにより、上記構成要素として各装置１００，２００及び３００を機能させるようにしてもよい。
【０１１４】
【発明の効果】
以上詳述したように本発明によれば、認証者に被認証者を一意に推定されることなく、匿名性を確保したサービスの提供が可能となる。
【図面の簡単な説明】
【図１】匿名認証方式の仕組みの概念図。
【図２】通常の署名方法のフローチャートを示す図。
【図３】リング署名のフローチャートを示す図。
【図４】匿名認証方式の問題点を説明するための図。
【図５】本発明の一実施形態に係る電子証明書管理方法が適用されるサービス提供システムの全体構成を示す図。
【図６】同実施形態に係るサービス提供者装置の詳細な構成の一例を示す図。
【図７】同実施形態に係るユーザ装置の詳細な構成の一例を示す図。
【図８】同実施形態に係る第１の証明書の構成例を示す図。
【図９】同実施形態に係る第２の証明書の構成例を示す図。
【図１０】同実施形態に係る第１の証明書５００の作成を含む第２の証明書６００の作成処理の流れを示す図。
【図１１】同実施形態に係る第１の証明書Ａ及び第２の証明書Ａを発行した後のサービス要求処理の流れを示す図。
【図１２】第１の証明書Ａの作成処理の一例を示す図。
【符号の説明】
１００…サービス提供者装置、１１０…第１の証明書発行部、１２０…第１の証明書検証部、１３０…第２の証明書検証部、２００…ユーザ装置、２１０…第１の証明書作成部、２２０…第２の証明書作成部、２３０…サービス要求部、３００…証明書管理装置、３１０…第１の証明書検証部、３２０…第１の証明書管理部
【図１】
2004289247.tif 000003
【図２】
2004289247.tif 000004
【図３】
2004289247.tif 000005
【図４】
2004289247.tif 000006
【図５】
2004289247.tif 000007
【図６】
2004289247.tif 000008
【図７】
2004289247.tif 000009
【図８】
2004289247.tif 000010
【図９】
2004289247.tif 000011
【図１０】
2004289247.tif 000012
【図１１】
2004289247.tif 000013
【図１２】
2004289247.tif 000014