(57)【特許請求の範囲】
【請求項１】
通信網を介して接続された、認証機関と、サーバ装置と、単数のユーザが使用する少なくとも１のクライエント装置と、オペレーティングシステム（ＯＳ）ベンダと、アプリケーションプログラム（ＡＰ）ベンダとを有する、通信システムであって、
前記クライエント装置は、
外部からの攻撃に対して誤動作および／または内部データの漏洩が生じないように構成された耐タンパ性のあるハードウエア回路であり、ユーザによって書き換えできない
ように、当該クライエント装置に固有の識別データである機器認証データ（機器ＩＤ）を記憶する、クライエント装置セキュアチップと、
クライエント装置制御処理手段と、
入出力プログラム、ローダプログラム、オペレーティングシステム、および、アプリケーションプログラムを記憶する、クライエント装置記憶手段とを有し、
前記サーバ装置は、
サーバ装置記憶手段と、
外部からの攻撃に対して誤動作および／または内部データの漏洩が生じないように構成された耐タンパ性のあるハードウエア回路である、サーバ装置セキュアチップと、
サーバ装置制御処理手段とを有し、
前記サーバ装置セキュアチップは、
乱数発生回路と、
前記乱数発生回路で発生された乱数を基に通信の安全性に係わる鍵データを生成する鍵生成回路と、
ハッシュデータを生成するハッシュ回路と、
前記鍵データを用いた暗号化および復号を行って暗号データの生成および暗号データの復号を行い、さらに署名データの生成および署名データの検証を行う、署名・暗号回路と、
前記サーバ装置制御処理手段の制御に従って、当該サーバ装置セキュアチップの動作を制御するクライエント装置セキュア・プロセッサ手段とを有し、
前記ＯＳベンダは、
前記クライエント装置に組み込まれる、入出力プログラム、ローダプログラム、オペレーティングシステムを前記クライエント装置に提供し、
前記入出力プログラム、前記ローダプログラム、前記オペレーティングシステムのハッシュデータを生成し、当該生成したハッシュデータを所定のビットフィールドに格納した起動プログラム検証データを生成し、当該生成した起動プログラム検証データを参照起動プログラム検証データとして前記サーバ装置に提供し、
前記ＡＰベンダは、
前記クライエント装置において動作するアプリケーションプログラムを前記クライエント装置に提供し、
前記アプリケーションプログラムのハッシュデータを生成し、当該生成したハッシュデータを参照ハッシュデータとして前記サーバ装置に提供し、
前記認証機関は、前記クライエント装置セキュアチップの公開鍵証明データを前記サーバ装置に提供し、前記公開鍵証明データに対応した秘密鍵データを前記クライエント装置に提供し、
前処理として、前記サーバ装置制御処理手段は、前記ＡＰベンダが提供する前記参照ハッシュデータを入力して前記サーバ装置記憶手段に書き込み、前記認証機関が提供する、公開鍵データを含む公開鍵認証データを入力して前記サーバ装置記憶手段に書き込み、
前記クライエント装置の起動のとき、
前記クライエント装置処理手段は、前記クライエント装置記憶手段から前記入出力プログラム、前記ローダプログラムおよび前記オペレーティングシステムをこの順序で読みだして起動して前記機器ＩＤをユーザが書き換えできないことを保証した動作環境を実現し、前記クライエント装置記憶手段から前記アプリケーションプログラムを読みだして起動し、
前記クライエント装置セキュアチップは、
前記順次起動された入出力プログラム、ローダプログラムおよびオペレーティングシステムのハッシュデータを生成し、当該生成したハッシュデータを所定のビットフィールドに格納した起動プログラム検証データを生成し、
前記起動されたアプリケーションプログラムのハッシュデータを生成し、前記生成した起動プログラム検証データおよび前記生成したアプリケーションプログラムのハッシュデータを前記クライエント装置記憶手段に書き込み、
前記クライエント装置がユーザ匿名ＩＤを前記サーバ装置に送信するとき、前記クライエント装置制御処理手段は、前記クライエント装置セキュアチップから前記機器ＩＤを読み出し、当該機器ＩＤを含む登録要求を前記サーバ装置に送信し、
前記サーバ装置制御処理手段は、前記クライエント装置からの前記登録要求を受信したとき、前記クライエント装置に前記起動プログラム検証データおよびハッシュデータの送信を要求し、
前記クライエント装置制御処理手段は、前記要求された起動プログラム検証データおよびハッシュデータを前記サーバ装置に送信し、
前記サーバ装置制御処理手段は、
前記受信した起動プログラム検証データおよびハッシュデータと、前記サーバ装置記憶手段に記憶させた前記参照起動プログラム検証データおよび前記参照ハッシュデータとを比較し、一致した場合当該クライエント装置の動作環境が正当であると判断し、
当該クライエント装置の動作環境が正当であると判断した場合、前記受信した要求に含まれる機器ＩＤがすでに登録されたものであるか否かを検証し、
前記受信した要求に含まれる機器ＩＤが未登録の場合、固有のユーザ匿名ＩＤを発行し、
前記サーバ装置セキュアチップの鍵生成回路は、前記発行されたユーザ匿名ＩＤに対応した鍵データを生成し、
前記サーバ装置制御処理手段は、前記クライエント装置から受信した機器ＩＤと、前記発行したユーザ匿名ＩＤと、前記生成された鍵データとを対応づけて示す項目をテーブルデータに登録し、
前記サーバ装置制御処理手段は当該発行したユーザ匿名ＩＤと前記生成された鍵データとを前記クライエント装置に送信し、
前記クライエント装置制御処理手段は、
前記サーバ装置から前記ユーザ匿名ＩＤと前記鍵データとを受信し、当該受信した鍵データを前記認証機関から提供された秘密鍵データで復号して、前記ユーザ匿名ＩＤと前記復号した鍵データとを前記クライエント装置セキュアチップに書き込み、
前記サーバ装置にデータを送信するとき、当該復号した鍵データで送信すべきデータを暗号化し、当該暗号化されたデータに前記匿名ＩＤを付加して送信する、
通信システム。
【請求項２】
通信網を介して接続された、認証機関と、サーバ装置と、１のクライエント装置を複数のユーザが使用する少なくとも１のクライエント装置と、オペレーティングシステム（ＯＳ）ベンダと、アプリケーションプログラム（ＡＰ）ベンダとを有する、通信システムであって、
前記クライエント装置は、
外部からの攻撃に対して誤動作および／または内部データの漏洩が生じないように構成された耐タンパ性のあるハードウエア回路であり、ユーザによって書き換えできない
ように、当該クライエント装置に固有の識別データである機器認証データ（ＩＤ）を記憶し、演算処理機能を有する、クライエント装置セキュアチップと、
クライエント装置制御処理手段と、
入出力プログラム、ローダプログラム、オペレーティングシステム、および、アプリケーションプログラムを記憶する、クライエント装置記憶手段とを有し、
前記サーバ装置は、
サーバ装置記憶手段と、
外部からの攻撃に対して誤動作および／または内部データの漏洩が生じないように構成された耐タンパ性のあるハードウエア回路である、サーバ装置セキュアチップと、
サーバ装置制御処理手段とを有し、
前記ＯＳベンダは、
前記クライエント装置に組み込まれる、入出力プログラム、ローダプログラムおよびオペレーティングシステムを前記クライエント装置に提供し、
前記入出力プログラム、前記ローダプログラムおよび前記オペレーティングシステムのハッシュデータを生成し、当該生成したハッシュデータを所定のビットフィールドに格納した起動プログラム検証データを生成し、当該生成した起動プログラム検証データを参照起動プログラム検証データとして前記サーバ装置に提供し、
前記ＡＰベンダは、
前記クライエント装置において動作する前記アプリケーションプログラムを前記クライエント装置に提供し、
前記アプリケーションプログラムのハッシュデータを生成し、当該生成したハッシュデータを参照ハッシュデータとして前記サーバ装置に提供し、
前記認証機関は、前記クライエント装置セキュアチップの公開鍵証明データを前記サーバ装置に提供し、前記公開鍵証明データに対応した秘密鍵データを前記クライエント装置に提供し、
前処理として、前記サーバ装置制御処理手段は、前記ＡＰベンダが提供する前記参照ハッシュデータを入力して前記サーバ装置記憶手段に書き込み、前記認証機関が提供する、公開鍵データを含む公開鍵認証データを入力して前記サーバ装置記憶手段に書き込み、
前記クライエント装置の起動のとき、
前記クライエント装置処理手段は、前記クライエント装置記憶手段から前記入出力プログラム、前記ローダプログラムおよび前記オペレーティングシステムをこの順序で読みだして起動して前記機器ＩＤをユーザが書き換えできないことを保証した動作環境を実現し、前記クライエント装置記憶手段から前記アプリケーションプログラムを読みだして起動し、
前記クライエント装置セキュアチップは、
前記順次起動された入出力プログラム、ローダプログラムおよびオペレーティングシステムのハッシュデータで生成し、当該生成したハッシュデータを所定のビットフィールドに格納した起動プログラム検証データを生成し、
前記起動されたアプリケーションプログラムのハッシュデータを生成し、前記生成した起動プログラム検証データおよび前記生成したアプリケーションプログラムのハッシュデータを前記クライエント装置記憶手段に書き込み、
前記クライエント装置はユーザ匿名ＩＤを登録するとき、当該登録要求を前記サーバ装置に送信し、
前記サーバ装置制御処理手段は、前記登録要求を受信したとき、前記クライエント装置に前記起動プログラム検証データおよびハッシュデータの送信を要求し、
前記クライエント装置制御処理手段は、前サーバ装置から起動プログラム検証データおよびハッシュデータの送信要求があったとき、前記クライエント装置記憶手段に記憶されている起動プログラム検証データおよびハッシュデータを読みだして前記サーバ装置に送信し、
前記サーバ装置制御処理手段は、
受信した前記起動プログラム検証データおよびハッシュデータと、前記サーバ装置記憶手段に記憶させた前記参照起動プログラム検証データおよび前記参照ハッシュデータとを比較し、一致した場合当該クライエント装置の動作環境が正当であると判断し、
当該クライエント装置の動作環境が正当であると判断した場合、前記クライエント装置に疑似匿名識別データの送信を要求し、
前記クライエント装置制御処理手段は、前記サーバ装置から前記疑似匿名識別データの生成の要求を受信したとき、前記クライエント装置セキュアチップにおいて信用機関と通信を行って公開鍵データと秘密鍵データとを生成させ、当該生成した公開鍵データを前記信用機関に送信して署名データを付加させ、さらに、前記クライエント装置セキュアチップにおいて各ユーザごとに疑似匿名認証データを割り当てさせ、前記生成した疑似匿名識別データを前記サーバ装置に送信し、
前記サーバ装置制御処理手段は、
前記クライエント装置から受信した前記疑似匿名識別データが未登録か否かを検証し、
前記疑似匿名識別データが未登録の場合、未登録であることを前記クライエント装置に送信し、固有のユーザ匿名ＩＤを発行し、
前記クライエント装置から受信した前記疑似匿名識別データと、前記発行したユーザ匿名ＩＤとを対応づけて示す項目をテーブルデータに登録し、
前記発行したユーザ匿名ＩＤを前記クライエント装置に送信し、
前記クライエント装置制御処理手段は、
前記サーバ装置から前記ユーザ匿名ＩＤを受信したとき、前記生成した疑似匿名識別データと前記受信したユーザ匿名ＩＤとを対応づけて前記クライエント装置セキュアチップに書き込み、
前記サーバ装置にデータを送信するとき、送信すべきデータを前記疑似匿名識別データを用いて暗号化し、当該暗号化されたデータに前記匿名ＩＤを付加して送信する、
通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークなどの通信において、ユーザの匿名性と一意性とを保証する通信システムに関する。
【背景技術】
【０００２】
例えば、チャット、掲示板あるいはオークションなど複数のユーザ間のコミュニケーションの場をサーバ装置が提供する通信システムがある。
このような通信システムでは、上記サーバ装置は、例えば、ユーザの匿名性を保つために、ユーザからの登録要求に応じて、当該サーバ装置内で固有のユーザ匿名ＩＤを発行する。
以後、ユーザは、自らに発行されたユーザ匿名ＩＤを使って、上記コミュニケーションに参加する。
【０００３】
ところで、上述したシステムでは、単数のユーザが自らの端末装置を操作して複数の登録要求をサーバ装置に送信し、複数のユーザ匿名ＩＤを取得することが可能になる。
これでは、サーバ装置が提供するコミュニケーションの場において、ユーザの一意性が保たれないという問題がある。
あるいは、他人の匿名IDを詐称することが可能である。パスワードの保護がない場合にはユーザが任意に設定できるので簡単に詐称が可能である。パスワードの保護がある場合でも、パスワード自体の強度の問題(盗聴などで漏洩、推測可能である場合など)にはやはり詐称が可能であり、現状を振り返ってみるとこのような被害は多発している。
【０００４】
このような問題を解決するために、ユーザが、自らの個人情報をＴＴＰ(Trusted Third Party)に提供し、それを基に自らの正当性（一意性）を認証させ、その結果を基に上記サーバ装置がユーザ匿名ＩＤを発行するシステムがある。
【０００５】
【特許文献１】特開２００３−１２２９４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来の通信システムでは、ユーザはＴＴＰのサーバ装置に個人情報を提供して自らを認証させる必要があり、個人情報の秘匿性の観点から望ましくないという問題がある。
また、上述した従来の通信システムでは、ユーザの端末装置は、上記コミュニケーションの場を提供するサーバ装置の他に、ＴＴＰのサーバ装置とも通信を行う必要があり、通信処理の負担が大きいという問題もある。
【０００７】
本発明は上述した従来技術の問題点に鑑みて成され、ユーザが個人情報を提供することなく、しかも少ない通信量で、ユーザの匿名性と一意性を保証したユーザ匿名ＩＤを発行できる通信システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した従来技術の問題点を解決し、上述した目的を達成するために、本発明によれば、通信網を介して接続された、認証機関と、サーバ装置と、単数のユーザが使用する少なくとも１のクライエント装置と、オペレーティングシステム（ＯＳ）ベンダと、アプリケーションプログラム（ＡＰ）ベンダとを有する、通信システムであって、
前記クライエント装置は、外部からの攻撃に対して誤動作および／または内部データの漏洩が生じないように構成された耐タンパ性のあるハードウエア回路であり、ユーザによって書き換えできないように、当該クライエント装置に固有の識別データである機器認証データ（機器ＩＤ）を記憶する、クライエント装置セキュアチップと、クライエント装置制御処理手段と、入出力プログラム、ローダプログラム、オペレーティングシステム、および、アプリケーションプログラムを記憶する、クライエント装置記憶手段とを有し、
前記サーバ装置は、サーバ装置記憶手段と、外部からの攻撃に対して誤動作および／または内部データの漏洩が生じないように構成された耐タンパ性のあるハードウエア回路である、サーバ装置セキュアチップと、サーバ装置制御処理手段とを有し、
前記サーバ装置セキュアチップは、乱数発生回路と、前記乱数発生回路で発生された乱数を基に通信の安全性に係わる鍵データを生成する鍵生成回路と、ハッシュデータを生成するハッシュ回路と、前記鍵データを用いた暗号化および復号を行って暗号データの生成および暗号データの復号を行い、さらに署名データの生成および署名データの検証を行う、署名・暗号回路と、前記サーバ装置制御処理手段の制御に従って、当該サーバ装置セキュアチップの動作を制御するクライエント装置セキュア・プロセッサ手段とを有し、
前記ＯＳベンダは、前記クライエント装置に組み込まれる、入出力プログラム、ローダプログラム、オペレーティングシステムを前記クライエント装置に提供し、前記入出力プログラム、前記ローダプログラム、前記オペレーティングシステムのハッシュデータを生成し、当該生成したハッシュデータを所定のビットフィールドに格納した起動プログラム検証データを生成し、当該生成した起動プログラム検証データを参照起動プログラム検証データとして前記サーバ装置に提供し、
前記ＡＰベンダは、前記クライエント装置において動作するアプリケーションプログラムを前記クライエント装置に提供し、前記アプリケーションプログラムのハッシュデータを生成し、当該生成したハッシュデータを参照ハッシュデータとして前記サーバ装置に提供し、
前記認証機関は、前記クライエント装置セキュアチップの公開鍵証明データを前記サーバ装置に提供し、前記公開鍵証明データに対応した秘密鍵データを前記クライエント装置に提供し、
前処理として、前記サーバ装置制御処理手段は、前記ＡＰベンダが提供する前記参照ハッシュデータを入力して前記サーバ装置記憶手段に書き込み、前記認証機関が提供する、公開鍵データを含む公開鍵認証データを入力して前記サーバ装置記憶手段に書き込み、
前記クライエント装置の起動のとき、
前記クライエント装置処理手段は、前記クライエント装置記憶手段から前記入出力プログラム、前記ローダプログラムおよび前記オペレーティングシステムをこの順序で読みだして起動して前記機器ＩＤをユーザが書き換えできないことを保証した動作環境を実現し、前記クライエント装置記憶手段から前記アプリケーションプログラムを読みだして起動し、
前記クライエント装置セキュアチップは、
前記順次起動された入出力プログラム、ローダプログラムおよびオペレーティングシステムのハッシュデータを生成し、当該生成したハッシュデータを所定のビットフィールドに格納した起動プログラム検証データを生成し、
前記起動されたアプリケーションプログラムのハッシュデータを生成し、前記生成した起動プログラム検証データおよび前記生成したアプリケーションプログラムのハッシュデータを前記クライエント装置記憶手段に書き込み、
前記クライエント装置がユーザ匿名ＩＤを前記サーバ装置に送信するとき、前記クライエント装置制御処理手段は、前記クライエント装置セキュアチップから前記機器ＩＤを読み出し、当該機器ＩＤを含む登録要求を前記サーバ装置に送信し、
前記サーバ装置制御処理手段は、前記クライエント装置からの前記登録要求を受信したとき、前記クライエント装置に前記起動プログラム検証データおよびハッシュデータの送信を要求し、
前記クライエント装置制御処理手段は、前記要求された起動プログラム検証データおよびハッシュデータを前記サーバ装置に送信し、
前記サーバ装置制御処理手段は、
前記受信した起動プログラム検証データおよびハッシュデータと、前記サーバ装置記憶手段に記憶させた前記参照起動プログラム検証データおよび前記参照ハッシュデータとを比較し、一致した場合当該クライエント装置の動作環境が正当であると判断し、
当該クライエント装置の動作環境が正当であると判断した場合、前記受信した要求に含まれる機器ＩＤがすでに登録されたものであるか否かを検証し、
前記受信した要求に含まれる機器ＩＤが未登録の場合、固有のユーザ匿名ＩＤを発行し、
前記サーバ装置セキュアチップの鍵生成回路は、前記発行されたユーザ匿名ＩＤに対応した鍵データを生成し、
前記サーバ装置制御処理手段は、前記クライエント装置から受信した機器ＩＤと、前記発行したユーザ匿名ＩＤと、前記生成された鍵データとを対応づけて示す項目をテーブルデータに登録し、
前記サーバ装置制御処理手段は当該発行したユーザ匿名ＩＤと前記生成された鍵データとを前記クライエント装置に送信し、
前記クライエント装置制御処理手段は、
前記サーバ装置から前記ユーザ匿名ＩＤと前記鍵データとを受信し、当該受信した鍵データを前記認証機関から提供された秘密鍵データで復号して、前記ユーザ匿名ＩＤと前記復号した鍵データとを前記クライエント装置セキュアチップに書き込み、
前記サーバ装置にデータを送信するとき、当該復号した鍵データで送信すべきデータを暗号化し、当該暗号化されたデータに前記匿名ＩＤを付加して送信する、
通信システムが提供される。
【０００９】
また本発明によれば、通信網を介して接続された、認証機関と、サーバ装置と、１のクライエント装置を複数のユーザが使用する少なくとも１のクライエント装置と、オペレーティングシステム（ＯＳ）ベンダと、アプリケーションプログラム（ＡＰ）ベンダとを有する、通信システムであって、
前記クライエント装置は、外部からの攻撃に対して誤動作および／または内部データの漏洩が生じないように構成された耐タンパ性のあるハードウエア回路であり、ユーザによって書き換えできないように、当該クライエント装置に固有の識別データである機器認証データ（ＩＤ）を記憶し、演算処理機能を有する、クライエント装置セキュアチップと、クライエント装置制御処理手段と、入出力プログラム、ローダプログラム、オペレーティングシステム、および、アプリケーションプログラムを記憶する、クライエント装置記憶手段とを有し、
前記サーバ装置は、サーバ装置記憶手段と、外部からの攻撃に対して誤動作および／または内部データの漏洩が生じないように構成された耐タンパ性のあるハードウエア回路である、サーバ装置セキュアチップと、サーバ装置制御処理手段とを有し、
前記ＯＳベンダは、前記クライエント装置に組み込まれる、入出力プログラム、ローダプログラムおよびオペレーティングシステムを前記クライエント装置に提供し、前記入出力プログラム、前記ローダプログラムおよび前記オペレーティングシステムのハッシュデータを生成し、当該生成したハッシュデータを所定のビットフィールドに格納した起動プログラム検証データを生成し、当該生成した起動プログラム検証データを参照起動プログラム検証データとして前記サーバ装置に提供し、
前記ＡＰベンダは、前記クライエント装置において動作する前記アプリケーションプログラムを前記クライエント装置に提供し、前記アプリケーションプログラムのハッシュデータを生成し、当該生成したハッシュデータを参照ハッシュデータとして前記サーバ装置に提供し、前記認証機関は、前記クライエント装置セキュアチップの公開鍵証明データを前記サーバ装置に提供し、前記公開鍵証明データに対応した秘密鍵データを前記クライエント装置に提供し、
前処理として、前記サーバ装置制御処理手段は、前記ＡＰベンダが提供する前記参照ハッシュデータを入力して前記サーバ装置記憶手段に書き込み、前記認証機関が提供する、公開鍵データを含む公開鍵認証データを入力して前記サーバ装置記憶手段に書き込み、
前記クライエント装置の起動のとき、
前記クライエント装置処理手段は、前記クライエント装置記憶手段から前記入出力プログラム、前記ローダプログラムおよび前記オペレーティングシステムをこの順序で読みだして起動して前記機器ＩＤをユーザが書き換えできないことを保証した動作環境を実現し、前記クライエント装置記憶手段から前記アプリケーションプログラムを読みだして起動し、
前記クライエント装置セキュアチップは、
前記順次起動された入出力プログラム、ローダプログラムおよびオペレーティングシステムのハッシュデータで生成し、当該生成したハッシュデータを所定のビットフィールドに格納した起動プログラム検証データを生成し、
前記起動されたアプリケーションプログラムのハッシュデータを生成し、前記生成した起動プログラム検証データおよび前記生成したアプリケーションプログラムのハッシュデータを前記クライエント装置記憶手段に書き込み、
前記クライエント装置はユーザ匿名ＩＤを登録するとき、当該登録要求を前記サーバ装置に送信し、
前記サーバ装置制御処理手段は、前記登録要求を受信したとき、前記クライエント装置に前記起動プログラム検証データおよびハッシュデータの送信を要求し、
前記クライエント装置制御処理手段は、前サーバ装置から起動プログラム検証データおよびハッシュデータの送信要求があったとき、前記クライエント装置記憶手段に記憶されている起動プログラム検証データおよびハッシュデータを読みだして前記サーバ装置に送信し、
前記サーバ装置制御処理手段は、
受信した前記起動プログラム検証データおよびハッシュデータと、前記サーバ装置記憶手段に記憶させた前記参照起動プログラム検証データおよび前記参照ハッシュデータとを比較し、一致した場合当該クライエント装置の動作環境が正当であると判断し、
当該クライエント装置の動作環境が正当であると判断した場合、前記クライエント装置に疑似匿名識別データの送信を要求し、
前記クライエント装置制御処理手段は、前記サーバ装置から前記疑似匿名識別データの生成の要求を受信したとき、前記クライエント装置セキュアチップにおいて信用機関と通信を行って公開鍵データと秘密鍵データとを生成させ、当該生成した公開鍵データを前記信用機関に送信して署名データを付加させ、さらに、前記クライエント装置セキュアチップにおいて各ユーザごとに疑似匿名認証データを割り当てさせ、前記生成した疑似匿名識別データを前記サーバ装置に送信し、
前記サーバ装置制御処理手段は、
前記クライエント装置から受信した前記疑似匿名識別データが未登録か否かを検証し、
前記疑似匿名識別データが未登録の場合、未登録であることを前記クライエント装置に送信し、固有のユーザ匿名ＩＤを発行し、
前記クライエント装置から受信した前記疑似匿名識別データと、前記発行したユーザ匿名ＩＤとを対応づけて示す項目をテーブルデータに登録し、
前記発行したユーザ匿名ＩＤを前記クライエント装置に送信し、
前記クライエント装置制御処理手段は、
前記サーバ装置から前記ユーザ匿名ＩＤを受信したとき、前記生成した疑似匿名識別データと前記受信したユーザ匿名ＩＤとを対応づけて前記クライエント装置セキュアチップに書き込み、
前記サーバ装置にデータを送信するとき、送信すべきデータを前記疑似匿名識別データを用いて暗号化し、当該暗号化されたデータに前記匿名ＩＤを付加して送信する、
通信システムが提供される。
【発明の効果】
【００１９】
本発明によれば、ユーザが個人情報を提供することなく、しかも少ない通信量で、ユーザの匿名性と一意性を保証したユーザ匿名ＩＤを発行できる通信システムを提供することができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施形態に係わる通信システムについて説明する。
＜第１実施形態＞
以下、図１〜図９を参照して本発明の第１実施形態を説明する。
本実施形態は、第１〜第３および第７の発明に対応している。
〔本発明の構成との対応関係〕
先ず、本実施形態の構成要素と、本発明の構成要素との対応関係を説明する。
ここで、図１等に示すサーバ装置Ｓが、第２の発明の通信装置、並びに第１および第３の発明のコンピュータに対応している。
また、本実施形態のユーザ匿名ＩＤが本発明のユーザ匿名識別データに対応し、本実施形態の機器ＩＤが本発明の装置識別データに対応している。
また、図４に示すインタフェース４２が第２の発明のインタフェースに対応し、ＣＰＵ４５が第２の発明の実行回路に対応している。
また、図８に示すステップＳＴ３２が第１の発明の第１の手順、並びに第３の発明の第１の工程に対応している。
また、図８に示すステップＳＴ３３が第１の発明の第２の手順、並びに第３の発明の第２の工程に対応している。
また、図８に示すステップＳＴ３４，ＳＴ３５が第１の発明の第３の手順、並びに第３の発明の第３の工程に対応している。
【００２１】
図１は、本発明の第１実施形態の通信システム１の全体構成図である。
図１に示すように、通信システム１は、例えば、ＯＳベンダ１０、ＡＰベンダ１２、認証機関１４、クライアント装置Ｃおよびサーバ装置Ｓを有する。
本実施形態において、クライアント装置Ｃは一般のユーザが使用するパーソナルコンピュータや携帯電話などである。
また、サーバ装置Ｓは、例えば、チャット、掲示板あるいはオークションなど複数のユーザ間のコミュニケーションの場を提供するコンピュータである。
【００２２】
〔ＯＳベンダ１０〕
ＯＳベンダ１０は、例えば、クライアント装置Ｃに組み込まれたプログラムＢＩＯＳ＿Ｃ、ローダプログラムＬ＿ＣおよびオペレーティングシステムＯＳ＿Ｃを提供するベンダである。
また、ＯＳベンダ１０は、プログラムＢＩＯＳ＿Ｃ、ローダプログラムＬ＿ＣおよびオペレーティングシステムＯＳ＿Ｃの各々のハッシュデータを生成し、これらを所定のビットフィールドに格納した起動プログラム検証データＰＨＤを生成し、これを参照起動プログラム検証データＲ＿ＰＨＤとしてサーバ装置Ｓに提供（送信）する。
【００２３】
〔ＡＰベンダ１２〕
ＡＰベンダ１２は、クライアント装置Ｃ上で動作するアプリケーションプログラムＡＰ＿Ｃをクライアント装置Ｃに提供するベンダである。
ＡＰベンダ１２は、アプリケーションプログラムＡＰ＿Ｃのハッシュデータを生成し、これを参照ハッシュデータＲ＿ＡＰ＿Ｃとしてセキュアな状態でサーバ装置Ｓに提供（送信）する。
【００２４】
〔認証機関１４〕
認証機関１４は、クライアント装置ＣのセキュリティチップＳＣ＿Ｃの公開鍵証明データＣｅｒｔ＿ｓｃ１をサーバ装置Ｓに提供する。
また、認証機関１４は、公開鍵証明データＣｅｒｔ＿ｓｃ１に対応した秘密鍵データＫｐｒｉ＿ｓｃ１をクライアント装置Ｃに提供する。
【００２５】
以下、クライアント装置Ｃおよびサーバ装置Ｓについて説明する。
〔クライアント装置Ｃ〕
クライアント装置Ｃは、耐タンパ性の回路（ハードウェア）であるセキュリティチップＳＣ＿Ｃと、図示しないＣＰＵ、メモリ、並びにネットワーク９のインタフェースを有する。
ここで、耐タンパ性の回路は、外部から当該回路に対する攻撃（内部データの不正読み出し、入力周波数や入力電圧を所定外に設定する攻撃）を加えたときに、誤動作や内部データの洩漏を生じないように構成された回路である。
本実施形態では、セキュリティチップＳＣ＿Ｃは、クライアント装置Ｃに固有の識別データである機器ＩＤを記憶している。
当該機器ＩＤは、ユーザによって書き換えできないように保護されている。
クライアント装置Ｃは、起動されると、プログラムＢＩＯＳ＿Ｃ、ローダプログラムＬ＿Ｃ、オペレーティングシステムＯＳ＿ＣおよびアプリケーションプログラムＡＰ＿Ｃを順に起動し、これらのプログラムによって、機器ＩＤをユーザが書き換えできないことを保証した動作環境を実現する。
また、クライアント装置Ｃは、上記起動されたプログラムのハッシュデータを自動的且つ強制的に生成する。
【００２６】
以下、クライアント装置Ｃの動作例を説明する。
〔第１の動作例〕
以下、クライアント装置Ｃが起動時に行う動作例を説明する。
図２は、当該動作例を説明するためのフローチャートである。
ステップＳＴ１：
クライアント装置ＣのＣＰＵは、クライアント装置Ｃが起動されたか否かを判断し、起動されたと判断するとステップＳＴ２に進む。
ステップＳＴ２：
ＣＰＵは、メモリから、プログラムＢＩＯＳ＿Ｃ、ローダプログラムＬ＿ＣおよびオペレーティングシステムＯＳ＿Ｃを順に読み出して実行（起動）する。
続いて、ＣＰＵは、メモリからアプリケーションプログラムＡＰ＿Ｃを読み出して起動する。
【００２７】
ステップＳＴ３：
セキュリティチップＳＣ＿Ｃは、ステップＳＴ２で起動されたプログラムＢＩＯＳ＿Ｃ、ローダプログラムＬ＿ＣおよびオペレーティングシステムＯＳ＿ｃのハッシュデータをを生成し、これらを所定のビットフィールドに格納した起動プログラム検証データＰＨＤを生成する。
また、セキュリティチップＳＣ＿Ｃは、ステップＳＴ２で起動されたアプリケーションプログラムＡＰ＿ＣのハッシュデータＡＰ＿Ｃ＿ｈａｓｈを生成する。
【００２８】
ステップＳＴ４：
セキュリティチップＳＣ＿Ｃは、ステップＳＴ３で生成した起動プログラム検証データＰＨＤおよびハッシュデータＡＰ＿Ｃ＿ｈａｓｈをメモリに書き込む。
【００２９】
〔第２の動作例〕
以下、クライアント装置Ｃがユ−ザ匿名ＩＤの登録要求をサーバ装置に送信する場合の動作例を説明する。
図３は、当該動作例を説明するためのフローチャートである。
ステップＳＴ１１：
クライアント装置ＣのＣＰＵは、ユ−ザ匿名ＩＤの登録要求指示がユーザによって入力されたか否かを判断し、入力されたと判断したことを条件にステップＳＴ１２に進む。
ステップＳＴ１２：
クライアント装置ＣのＣＰＵは、セキュリティチップＳＣ＿Ｃから機器ＩＤを読み出し、これを含む登録要求をサーバ装置Ｓに送信する。
【００３０】
ステップＳＴ１３：
クライアント装置ＣのＣＰＵは、サーバ装置Ｓから起動プログラム検証データＰＨＤおよびハッシュデータＡＰ＿Ｃ＿ｈａｓｈの要求を受信したか否かを判断し、受信したと判断したことを条件にステップＳＴ１４に進む。
ステップＳＴ１４：
クライアント装置ＣのＣＰＵは、上記第１の動作例で生成および記憶した起動プログラム検証データＰＨＤおよびハッシュデータＡＰ＿Ｃ＿ｈａｓｈをメモリから読み出してサーバ装置Ｓに送信する。
ステップＳＴ１５：
クライアント装置ＣのＣＰＵは、サーバ装置Ｓから、ユーザ匿名ＩＤと鍵データＫを受信したか否かを判断し、受信したと判断するとステップＳＴ１６に進む。
ステップＳＴ１６：
クライアント装置ＣのＣＰＵは、ステップＳＴ１５で受信したユーザ匿名ＩＤと鍵データＫをセキュリティチップＳＣ＿Ｃに書き込む。
このとき、鍵データＫは、クライアント装置Ｃの公開鍵データＫｐｕｂ−ｓｃ１で暗号化されており、ＣＰＵは秘密鍵データＫｐｒｉ−ｓｃ１を基に当該鍵データＫを復号してセキュリティチップＳＣ＿Ｃに書き込む。
以後、クライアント装置ＣＰＵは、サーバ装置Ｓにデータを送信するときに、当該データを鍵データＫで暗号化し、暗号化したデータにユーザ匿名ＩＤを付加して送信する。
【００３１】
〔サーバ装置Ｓ〕
図４は、図１に示すサーバ装置Ｓの構成図である。
図４に示すように、サーバ装置Ｓは、例えば、インタフェース４２、メモリ４３、セキュリティチップＳＣ＿ＳおよびＣＰＵ４５を有し、これらがデータ線４０を介して接続されている。
【００３２】
インタフェース４２は、ネットワーク９を介してクライアント装置Ｃとの間でデータおよび要求の送受信を行う。
メモリ４３は、プログラムＢＩＯＳ＿Ｓ、ローダプログラムＬ＿Ｓ、オペレーティングシステムＯＳ＿ＳおよびアプリケーションプログラムＡＰ＿Ｓを記憶する。
【００３３】
ＣＰＵ４５は、メモリ４３に記憶された種々のプログラムを読み出し、所定のソフトウェア環境を実現する。
ＣＰＵ４５は、例えば、図５に示すように、ＣＰＵ４５およびセキュリティチップＳＣ＿Ｓなどのハードウェア上でプログラムＢＩＯＳ＿Ｓを動作させる。
また、ＣＰＵ４５は、プログラムＢＩＯＳ＿Ｓ上でローダプログラムＬ＿Ｓを動作させ、このローダプログラムＬ＿Ｓを基にオペレーティングシステムＯＳ＿Ｓを起動する。
また、ＣＰＵ４５は、オペレーティングシステムＯＳ＿Ｓ上でアプリケーションプログラムＡＰ＿Ｓを動作させる。
ＣＰＵ４５は、サーバ装置Ｓの処理を、アプリケーションプログラムＡＰ＿Ｓに従って以下に示すように統括的に制御する。
なお、アプリケーションプログラムＡＰ＿Ｓが第１の発明のプログラムに対応する。
【００３４】
セキュリティチップＳＣは、耐タンパ性の回路であり、外部から当該回路に対する攻撃（内部データの不正読み出し、入力周波数や入力電圧を所定外に設定する攻撃）を加えたときに、誤動作や内部データの洩漏を生じないように構成された回路である。
【００３５】
図６は、図４に示すセキュリティチップＳＣ＿Ｓの構成図である。
図６に示すように、セキュリティチップＳＣ＿Ｓは、例えば、入出力回路（Ｉ／Ｏ）５１、鍵生成回路５２、ハッシュ回路５３、乱数発生回路５４、署名・暗号回路５５、メモリ５６およびプロセッサ５７を有し、これらがデータ線５０を介して接続されている。
【００３６】
入出力回路５１は、図４に示すデータ線４０に接続され、セキュリティチップＳＣ＿Ｓの内部と外部との間でデータ入出力を行う。
鍵生成回路５２は、例えば、乱数発生回路５４が発生した乱数を基に、セキュリティに係わる種々の鍵データを生成する。
ハッシュ回路５３は、ハッシュデータを生成する。
乱数発生回路５４は、乱数を発生（生成）する。
署名・暗号回路５５は、鍵データを用いた暗号化および復号を行い、暗号データの生成、暗号データの復号、署名データの生成、並びに署名データの検証を行う。
メモリ５６は、プログラムＰＲＧ＿ＳＣを記憶する。
プロセッサ５７は、図４に示すＣＰＵ４５からの制御に従って、セキュリティチップＳＣの動作を統括して制御する。
【００３７】
以下、サーバ装置Ｓの動作例を説明する。
〔第１の動作例〕
以下、サーバ装置Ｓの前処理について説明する。
図７は、当該処理を説明するためのフローチャートである。
ステップＳＴ２１：
図４に示すサーバ装置ＳのＣＰＵ４５は、インタフェース４２を介してＯＳベンダ１０が提供する前述した参照起動プログラム検証データＲ＿ＰＨＤを入力、これをメモリ４３に書き込む。
ステップＳＴ２２：
ＣＰＵ４５は、例えば、インタフェース４２を介してＡＰベンダ１２が提供する参照ハッシュデータＲ＿ＡＰ＿Ｃを入力し、これをメモリ４３に書き込む。
ステップＳＴ２３：
ＣＰＵ４５は、例えば、インタフェース４２を介して認証機関１４が提供する公開鍵証明データＣｅｒｔ＿ｓｃ１を入力し、これをメモリ４３に書き込む。
なお、公開鍵証明データＣｅｒｔ＿ｓｃ１には公開鍵データが含まれる。
【００３８】
〔第２の動作例〕
以下、クライアント装置Ｃから登録要求を受信した場合におけるサーバ装置Ｓの動作例を説明する。
図８は、当該動作例を説明するためのフローチャートである。
ステップＳＴ３１：
図４に示すサーバ装置ＳのＣＰＵ４５は、インタフェース４２を介してクライアント装置Ｃから登録要求を受信したか否かを判断し、受信したと判断したことを条件にステップＳＴ３２に進む。
ステップＳＴ３２：
ＣＰＵ４５は、通信先であるクライアント装置Ｃの動作環境を検証する。
具体的には、ＣＰＵ４５は、インタフェース４２を介してクライアント装置Ｃに起動プログラム検証データＰＨＤおよびハッシュデータＡＰ＿Ｃ＿ｈａｓｈを要求する。
そして、ＣＰＵ４５は、上記要求に応じてクライアント装置Ｃからインタフェース４２を介して受信した起動プログラム検証データＰＨＤおよびハッシュデータＡＰ＿Ｃ＿ｈａｓｈと、図７に示すステップＳＴ２１，ＳＴ２２で記憶した参照起動プログラム検証データＲ＿ＰＨＤおよび参照ハッシュデータＲ＿ＡＰ＿Ｃとをそれぞれ比較し、双方が一致している場合にクライアント装置Ｃの動作環境が正当であると判断し、そうでない場合に当該動作環境が不当であると判断する。
本実施形態において、クライアント装置Ｃの正当な動作環境とは、クライアント装置ＣにおいてプログラムＢＩＯＳ＿Ｃ、ローダプログラムＬ＿Ｃ、オペレーティングシステムＯＳ＿ＣおよびアプリケーションプログラムＡＰ＿Ｃが起動されていること、すなわち、機器ＩＤをユーザが書き換えできないことを保証する動作環境である。
また、当該動作環境では、登録要求に機器ＩＤが自動的（強制的）に付加される。
【００３９】
ステップＳＴ３３：
ＣＰＵ４５は、ステップＳＴ３１で受信した登録要求に含まれるクライアント装置Ｃの機器ＩＤを取得し、この機器ＩＤが既に登録されたものであるか否かを検証する。
ステップＳＴ３４：
ＣＰＵ４５は、ステップＳＴ３２でクライアント装置Ｃの動作環境が正当であると判断し、且つ、ステップＳＴ３３で機器ＩＤが未登録であると判断すると、ステップＳＴ３５に進み、そうでない場合には処理を終了する。
【００４０】
ステップＳＴ３５：
ＣＰＵ４５は、例えば、サーバ装置Ｓのプロバイダ内で固有のユーザ匿名ＩＤを発行する。
また、図６に示す鍵生成回路５２がセキュリティチップＳＣ＿Ｓが、ＣＰＵ４５の制御に従って、上記発行したユーザ匿名ＩＤに対応した鍵データＫを生成する。
ステップＳＴ３６：
ＣＰＵ４５は、ステップＳＴ３３で取得した機器ＩＤと、ステップＳＴ３５で生成したユーザ匿名ＩＤと、鍵データＫとを対応付けて示す項目をテーブルデータＴＢＬに登録する。
【００４１】
〔第３の動作例〕
以下、クライアント装置Ｃからデータを受信した場合におけるサーバ装置Ｓの動作例を説明する。
図９は、当該動作例を説明するためのフローチャートである。
ステップＳＴ５１：
図４に示すサーバ装置Ｓのインタフェース４２が、クライアント装置Ｃからデータを受信する。
当該データには、ユーザ匿名ＩＤと、前述した鍵データＫで暗号化された暗号データとが含まれている。
【００４２】
ステップＳＴ５２：
サーバ装置ＳのＣＰＵ４５が、ステップＳＴ５１で受信したデータからユーザ匿名ＩＤを取得する。
ステップＳＴ５３：
ＣＰＵ４５が、図８に示すステップＳＴ３６で説明したテーブルデータＴＢＬから、ステップＳＴ５２で取得したユーザ匿名ＩＤに対応した鍵データＫを取得する。
ステップＳＴ５４：
ＣＰＵ４５が、ステップＳＴ５１で受信したデータに含まれる暗号データを、ステップＳＴ５３で取得した鍵データＫを基に復号する。
ステップＳＴ５５：
ＣＰＵ４５は、ステップＳＴ５４で復号されたデータが適切に復号されたものであるか否かを判断し、適切に復号されたと判断するとステップＳＴ５６に進み、そうでない場合にはステップＳＴ５７に進む。
【００４３】
ステップＳＴ５６：
ＣＰＵ４５は、ステップＳＴ５４で復号されたデータを用いて所定のサービスを提供する。
例えば、ＣＰＵ４５は、ステップＳＴ５４で復号したデータが掲示板への掲載事項である場合に、当該データを掲示板にアップロ−ドする処理を行う。
ステップＳＴ５７：
ＣＰＵ４５は、ステップＳＴ５４で復号されたデータを用いたサービスを提供せず、その旨をクライアント装置Ｃに通知する。
【００４４】
以上説明したように、通信システム１では、サーバ装置Ｓが、クライアント装置ＣにおいてプログラムＢＩＯＳ＿Ｃ、ローダプログラムＬ＿Ｃ、オペレーティングシステムＯＳ＿ＣおよびアプリケーションプログラムＡＰ＿Ｃが起動されていること、すなわち、機器ＩＤをユーザが書き換えできないことを保証する動作環境であることを図８に示すステップＳＴ３２，ＳＴ３４で検証した後にユーザ匿名ＩＤを発行する。
そのため、クライアント装置Ｃの単数のユーザが、複数のユーザ匿名ＩＤを取得することを回避でき、ユーザ匿名ＩＤの一意性をＴＴＰのサーバ装置を介さずに保証できる。
これにより、クライアント装置Ｃのユーザは、ＴＴＰのサーバ装置に自らの個人情報を提供する必要がないので、個人情報の秘匿性を高めることができる。また、クライアント装置Ｃおよびサーバ装置Ｓは直接通信を行い、ＴＴＰのサーバ装置と通信を行わないので、通信処理の負担を軽減できる。
また、通信システム１によれば、なりすましにより、サーバ装置Ｓが保持する他人の情報を不正に改竄することも防止できる。
【００４５】
＜第２実施形態＞
以下、図１０〜図１２を参照して本発明の第２実施形態を説明する。
本実施形態は、第４〜第６の発明に対応している。
上述した実施形態では、クライアント装置Ｃを単数のユーザが使用する場合に、登録要求に含まれる機器ＩＤがテーブルデータＴＢＬに登録させているか否かを基に、ユーザ匿名ＩＤを発行するか否かを決定した。
本実施形態では、クライアント装置Ｃが、複数のユーザで使用される場合に、各ユーザに個別の鍵データＰＥＫを生成する。
クライアント装置Ｃは、起動されると、プログラムＢＩＯＳ＿Ｃ、ローダプログラムＬ＿Ｃ、オペレーティングシステムＯＳ＿ＣおよびアプリケーションプログラムＡＰ＿Ｃを順に起動し、これらのプログラムによって、以下に示す動作環境を備える。
すなわち、クライアント装置Ｃは、動作環境を認証するために用いられる複数の鍵データＰＥＫを生成（発行）し、単数のユーザに対して単数の固有の鍵データＰＥＫを割り当て、且つ鍵データＰＥＫをユーザが書き換えできないことを保証した動作環境を備えている。
【００４６】
〔本発明の構成との対応関係〕
先ず、本実施形態の構成要素と、本発明の構成要素との対応関係を説明する。
ここで、図１等に示すサーバ装置Ｓが、第２の発明の通信装置、並びに第１および第３の発明のコンピュータに対応している。
また、本実施形態のユーザ匿名ＩＤが本発明のユーザ匿名識別データに対応し、本実施形態の鍵データＰＥＫが本発明の疑似匿名識別データに対応している。
また、図４に示すインタフェース４２が第２の発明のインタフェースに対応し、ＣＰＵ４５が第２の発明の実行回路に対応している。
また、図１０に示すステップＳＴ７２が第４の発明の第１の手順、並びに第６の発明の第１の工程に対応している。
また、図１０に示すステップＳＴ７５が第４の発明の第２の手順、並びに第６の発明の第２の工程に対応している。
また、図１０に示すステップＳＴ７６が第４の発明の第３の手順、並びに第６の発明の第３の工程に対応している。
【００４７】
先ず、本実施形態におけるクライアント装置Ｃがユ−ザ匿名ＩＤの登録要求をサーバ装置に送信する場合の動作例を説明する。
図１０は、当該動作例を説明するためのフローチャートである。
ステップＳＴ６１：
クライアント装置ＣのＣＰＵは、ユ−ザ匿名ＩＤの登録要求指示がユーザによって入力されたか否かを判断し、入力されたと判断したことを条件にステップＳＴ６２に進む。
ステップＳＴ６２：
クライアント装置ＣのＣＰＵは、登録要求をサーバ装置Ｓに送信する。
【００４８】
ステップＳＴ６３：
クライアント装置ＣのＣＰＵは、サーバ装置ＳからＰＥＫの要求を受信したか否かを判断し、受信したと判断したこと条件にステップＳＴ６４に進む。
ステップＳＴ６４：
クライアント装置ＣのＣＰＵは、セキュリティチップＳＣに鍵データＰＥＫを生成させる。
ここで、鍵データＰＥＫは、疑似匿名認証データと呼ばれ、ユーザ認証データとは異なり、そのユーザが使用するプラットフォーム（動作環境）の認証に用いられる。
本実施形態では、クライアント装置ＣのセキュリティチップＳＣ＿Ｃが所定のＴＴＰ(Trusted Third Party)のサーバ装置と通信を行って公開鍵データと、秘密鍵データのペアを生成する。そして、セキュリティチップＳＣ＿Ｃが当該公開鍵データをＴＴＰのサーバ装置に送信して署名データを付加する。
本実施形態では、セキュリティチップＳＣ＿Ｃは、複数の鍵データＰＥＫを生成（発行）し、単数のユーザに対して単数の鍵データＰＥＫを割り当てる。また、本実施形態では、ユーザは鍵データＰＥＫを書き換えできない。
【００４９】
ステップＳＴ６５：
クライアント装置ＣのＣＰＵは、サーバ装置Ｓから起動プログラム検証データＰＨＤおよびハッシュデータＡＰ＿Ｃ＿ｈａｓｈの要求を受信したか否かを判断し、受信したと判断したことを条件にステップＳＴ６６に進む。
ステップＳＴ６６：
クライアント装置ＣのＣＰＵは、上記第１の動作例で生成および記憶した起動プログラム検証データＰＨＤおよびハッシュデータＡＰ＿Ｃ＿ｈａｓｈを読み出してサーバ装置Ｓに送信する。
ステップＳＴ６７：
クライアント装置ＣのＣＰＵは、サーバ装置Ｓから、ユーザ匿名ＩＤを受信したか否かを判断し、受信したと判断するとステップＳＴ６８に進む。
ステップＳＴ６８：
クライアント装置ＣのＣＰＵは、ステップＳＴ６４で生成した鍵データＰＥＫと、ステップＳＴ６７で受信したユーザ匿名ＩＤとを対応付けてセキュリティチップＳＣ＿Ｃに書き込む。
以後、クライアント装置ＣＰＵは、サーバ装置Ｓにデータを送信するときに、当該データを鍵データＰＥＫで暗号化し、暗号化したデータにユーザ匿名ＩＤを付加して送信する。
【００５０】
以下、クライアント装置Ｃから登録要求を受信した場合におけるサーバ装置Ｓの動作例を説明する。
図１１は、当該動作例を説明するためのフローチャートである。
ステップＳＴ７１：
図４に示すサーバ装置ＳのＣＰＵ４５は、インタフェース４２を介してクライアント装置Ｃから登録要求を受信したか否かを判断し、受信したと判断したことを条件にステップＳＴ７２に進む。
ステップＳＴ７２：
ＣＰＵ４５は、通信先であるクライアント装置Ｃの動作環境を検証する。
具体的には、ＣＰＵ４５は、インタフェース４２を介してクライアント装置Ｃに起動プログラム検証データＰＨＤおよびハッシュデータＡＰ＿Ｃ＿ｈａｓｈを要求する。
そして、ＣＰＵ４５は、上記要求に応じてクライアント装置Ｃからインタフェース４２を介して受信した起動プログラム検証データＰＨＤおよびハッシュデータＡＰ＿Ｃ＿ｈａｓｈと、図７に示すステップＳＴ２１，ＳＴ２２で記憶した参照起動プログラム検証データＲ＿ＰＨＤおよび参照ハッシュデータＲ＿ＡＰ＿Ｃとをそれぞれ比較し、双方が一致している場合にクライアント装置Ｃの動作環境が正当であると判断し、そうでない場合に当該動作環境が不当であると判断する。
本実施形態において、クライアント装置Ｃの正当な動作環境とは、動作環境を認証するために用いられる複数の鍵データＰＥＫを生成（発行）し、単数のユーザに対して単数の鍵データＰＥＫを割り当て、且つ鍵データＰＥＫをユーザが書き換えできないことを保証する動作環境である。
【００５１】
ステップＳＴ７３：
ＣＰＵ４５は、ステップＳＴ７２でクライアント装置Ｃの動作環境が正当であると判断すると、ステップＳＴ７４に進み、そうでない場合には処理を終了する。
ステップＳＴ７４：
ＣＰＵ４５は、インタフェース４２を介してクライアント装置Ｃに鍵データＰＥＫを要求し、これをクライアント装置Ｃからインタフェース４２を介して受信する。
ステップＳＴ７５：
ＣＰＵ４５は、テーブルデータＴＢＬを参照して、鍵データＰＥＫが未登録であるか否かを検証し、未登録であると判断するとステップＳＴ７６に進み、未登録ではないと判断すると処理を終了し、その旨をクライアント装置Ｃに送信する。
ステップＳＴ７６：
ＣＰＵ４５は、例えば、サーバ装置Ｓのプロバイダ内で固有のユーザ匿名ＩＤを発行する。
ステップＳＴ７７：
ＣＰＵ４５は、ステップＳＴ７４で受信した鍵データＰＥＫと、ステップＳＴ７６で生成したユーザ匿名ＩＤとを対応付けて示す項目をテーブルデータＴＢＬに登録する。
【００５２】
以下、クライアント装置Ｃからデータを受信した場合におけるサーバ装置Ｓの動作例を説明する。
図１２は、当該動作例を説明するためのフローチャートである。
ステップＳＴ８１：
図４に示すサーバ装置Ｓのインタフェース４２が、クライアント装置Ｃからデータを受信する。
当該データには、ユーザ匿名ＩＤと、前述した鍵データＰＥＫで暗号化された暗号データとが含まれている。
【００５３】
ステップＳＴ８２：
サーバ装置ＳのＣＰＵ４５が、ステップＳＴ８１で受信したデータからユーザ匿名ＩＤを取得する。
ステップＳＴ８３：
ＣＰＵ４５が、図１１に示すステップＳＴ７７で説明したテーブルデータＴＢＬから、ステップＳＴ８２で取得したユーザ匿名ＩＤに対応した鍵データＰＥＫを取得する。
ステップＳＴ８４：
ＣＰＵ４５が、ステップＳＴ８１で受信したデータに含まれる暗号データを、ステップＳＴ８３で取得した鍵データＰＥＫを基に復号する。
ステップＳＴ８５：
ＣＰＵ４５は、ステップＳＴ８４で復号されたデータが適切に復号されたものであるか否かを判断し、適切に復号されたと判断するとステップＳＴ８６に進み、そうでない場合にはステップＳＴ８７に進む。
【００５４】
ステップＳＴ８６：
ＣＰＵ４５は、ステップＳＴ８４で復号されたデータを用いて所定のサービスを提供する。
例えば、ＣＰＵ４５は、ステップＳＴ８４で復号したデータが掲示板への掲載事項である場合に、当該データを掲示板にアップロ−ドする処理を行う。
ステップＳＴ８７：
ＣＰＵ４５は、ステップＳＴ８４で復号されたデータを用いたサービスを提供せず、その旨をクライアント装置Ｃに通知する。
【００５５】
以上説明したように、本実施形態によれば、クライアント装置Ｃが複数のユーザに使用される場合でも、クライアント装置Ｃの単数のユーザが、複数のユーザ匿名ＩＤの登録要求を送信することを回避でき、登録要求に対応した鍵データＰＥＫが異なれば、ユーザ匿名ＩＤの一意性をＴＴＰのサーバ装置を介さずに保証できる。
これにより、クライアント装置Ｃのユーザは、ＴＴＰのサーバ装置に自らの個人情報を提供する必要がないので、個人情報の秘匿性を高めることができる。また、クライアント装置Ｃおよびサーバ装置Ｓは直接通信を行い、ＴＴＰのサーバ装置と通信を行わないので、通信処理の負担を軽減できる。
【００５６】
本発明は上述した実施形態には限定されない。
上述した実施形態では、サーバ装置Ｓが掲示板を提供する場合を例示したが、サーバ装置Ｓは、チャット、オークションなどオ−プンなネットワーク９において匿名性と一意性とが要求されるユーザ匿名ＩＤを用いたサービスを提供するものであれば特に限定されない。
また、本発明は、例えば、ネットワークサービスにおいて、ユーザの個人情報を提供することなく、その個人毎にその特性に応じたカスタマイズを行うサービスについても適用可能である。
【００５７】
また、上述した第２実施形態では、サーバ装置Ｓから要求に応じてクライアント装置Ｃが鍵データＰＥＫを生成してサーバ装置Ｓに送信する場合を例示した。
本発明は、例えば、サーバ装置Ｓが登録要求に予め生成した鍵データＰＥＫを含ませてもよい。また、登録要求に自らが希望するユーザ匿名ＩＤをさらに含ませてもよい。
また、第１実施形態の鍵データＫあるいは第２実施形態の鍵データＰＥＫとして、ユーザのパスフレーム、生体情報あるいはキーデバイス（ＩＣカードのＩＤ）などを組み合わせて用いてもよい。
【産業上の利用可能性】
【００５８】
本発明は、ネットワークなどの通信において、ユーザの匿名性と一意性とが要求されるシステムに適用可能である。
【図面の簡単な説明】
【００５９】
【図１】図１は、本発明の第１実施形態の通信システムの全体構成図である。
【図２】図２は、図１に示すクライアント装置Ｃの起動時の処理を説明するためのフローチャートである。
【図３】図３は、図１に示すクライアント装置が登録要求を行う場合の処理を説明するためのフローチャートである。
【図４】図４は、図１に示すサーバ装置の構成図である。
【図５】図５は、図５に示すサーバ装置のソフトウェア環境を説明するための図である。
【図６】図６は、図４に示すセキュリティチップの構成図である。
【図７】図７は、図４に示すサーバ装置の前処理を説明するためのフローチャートである。
【図８】図８は、図４に示すサーバ装置の登録要求処理を説明するためのフローチャートである。
【図９】図９は、図４に示すサーバ装置のサービス処理を説明するためのフローチャートである。
【図１０】図１０は、本発明の第２実施形態のクライアント装置が登録要求を行う場合の処理を説明するためのフローチャートである。
【図１１】図１１は、本発明の第２実施形態のサーバ装置の登録要求処理を説明するためのフローチャートである。
【図１２】図１２は、本発明の第２実施形態のサーバ装置のサービス処理を説明するためのフローチャートである。
【符号の説明】
【００６０】
１…通信システム、１２…ＡＰベンダ、１４…認証機関、Ｃ…クライアント装置、Ｓ…サーバ装置、４２…インタフェース、４３…メモリ、４５…ＣＰＵ、ＳＣ＿Ｓ，ＳＣ＿Ｃ…セキュリティチップ、５１…入出力回路、５２…鍵生成回路、５３…ハッシュ回路、５４…乱数発生回路、５５…署名・暗号回路、５６…メモリ、５７…プロセッサ、ＰＨＤ…起動プログラム検証データ、ＡＰ＿Ｃ＿ｈａｓｈ…アプリケーションプログラムＡＰ＿Ｃのハッシュデータ、ＴＢＬ…テーブルデータ
【図１】
0004265479.tif 000002
【図２】
0004265479.tif 000003
【図３】
0004265479.tif 000004
【図４】
0004265479.tif 000005
【図５】
0004265479.tif 000006
【図６】
0004265479.tif 000007
【図７】
0004265479.tif 000008
【図８】
0004265479.tif 000009
【図９】
0004265479.tif 000010
【図１０】
0004265479.tif 000011
【図１１】
0004265479.tif 000012
【図１２】
0004265479.tif 000013