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