(57)【要約】  【課題】  エージェント機能に伴うサーバ装置の負荷を軽減できるプログラムを提供する。  【解決手段】    クライアント装置１２＿１は、ユーザの操作履歴データを基に、当該ユーザの好みなどの属性を示す公開エ−ジェントデータを生成する。そして、クライアント装置１２＿１は、公開エ−ジェントデータをサーバ装置１０およびクライアント装置１２＿２に送信する。【選択図】  図１
2005301531.tif 000002
【特許請求の範囲】
【請求項１】
通信先と通信を行うコンピュータが実行するプログラムであって、
ユーザによる前記コンピュータの操作履歴を基に、前記ユーザの属性を示す属性データを生成する第１の手順と、
前記第１の手順で生成した前記属性データを、前記通信先に送信する第２の手順と
を前記コンピュータに実行させるプログラム。
【請求項２】
前記第１の手順は、前記操作履歴を基に、前記ユーザの好みを判断する指標となる前記属性データを生成する
請求項１に記載のプログラム。
【請求項３】
前記第１の手順は、前記ユーザから入力されたデータを基に、前記ユーザの個人データをさらに示す前記属性データを生成する
請求項１に記載のプログラム。
【請求項４】
前記第１の手順で生成した前記属性データのハッシュデータを生成し、当該ハッシュデータを前記属性データに付加する第３の手順
をさらに有し、
前記第２の手順は、前記第３の手順で前記ハッシュデータが付加された前記属性データを前記通信先に送信する
請求項１に記載のプログラム。
【請求項５】
前記第１の手順は、前記ユーザからの指示に応じて、公開属性データと非公開属性データとを含む前記属性データを生成し、
前記第２の手順は、前記第１の手順で生成した前記属性データのうち前記公開属性データのみを前記通信先に送信する
請求項１に記載のプログラム。
【請求項６】
前記第１の手順で生成した前記属性データに署名データを付加する第４の手順
をさらに有し、
前記第２の手順は、前記第４の手順で前記署名データが付加された前記属性データを前記通信先に送信する
請求項１に記載のプログラム。
【請求項７】
ユーザによるコンピュータの操作履歴を基に得られた前記ユーザの属性を示す属性データを通信先に送信するアプリケーションプログラムの管理を前記コンピュータに実行させるプログラムであって、
前記コンピュータが起動する前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第１の手順と、
前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第１の手順で生成した前記証明データを送信する第２の手順と
を前記コンピュータに実行させるプログラム。
【請求項８】
前記第１の手順は、前記アプリケーションプログラムが改竄されているか否かを検証し、改竄されていないと判断した場合に、前記識別データを示す前記証明データを生成する  請求項７に記載のプログラム。
【請求項９】
記憶データの改竄および監視を防止する機能が備えられたメモリに記憶されており、
前記コンピュータによって前記メモリからセキュアな状態で読み出されて当該コンピュータに実行される
請求項７に記載のプログラム。
【請求項１０】
通信先と通信を行うコンピュータが実行するプログラムであって、
前記通信先のユーザの操作履歴を基に得られた当該ユーザの属性を示す属性データを前記通信先から受信する第１の手順と、
前記第１の手順で受信した前記属性データを基に、前記通信先にデータを送信する第２の手順と
を前記コンピュータに実行させるプログラム。
【請求項１１】
前記第２の手順は、前記属性データを基に、前記他のコンテンツデータのユーザの属性に適合したデータ、あるいは適合した形態でデータを送信する
請求項１０に記載のプログラム。
【請求項１２】
前記第１の手順は、前記ユーザの好みを判断する指標となる前記属性データを受信する  請求項１０に記載のプログラム。
【請求項１３】
前記通信先の正当性を認証する第３の手順と、
前記第３の手順で正当であると認証したことを条件に、前記通信先によって正当であると判断され当該通信先で起動されるアプリケーションプログラムの識別データを示す証明データを前記通信先から受信する第４の手順と、
所望の識別データが、前記第４の手順で受信した前記証明データに含まれているか否かを判断する第５の手順と、
前記第５の手順で前記所望の識別データが含まれていると判断したことを条件に、前記第２の手順を前記コンピュータに実行させる
請求項１０に記載のプログラム。
【請求項１４】
アプリケーションプログラムが記憶されたメモリと、
前記メモリから読み出した前記アプリケーションプログラムを実行する実行回路と、
通信先とデータ授受を行うインタフェースと
を有するコンピュータであって、
前記実行回路は、前記アプリケーションプログラムに従って、ユーザによる前記コンピュータの操作履歴を基に前記ユーザの属性を示す属性データを生成し、当該生成した前記属性データを前記インタフェースを介して前記通信先に送信する
コンピュータ。
【請求項１５】
記憶データの改竄および監視を防止する機能が備えられ、ブ−トプログラムを記憶する回路モジュール
をさらに有し、
前記実行回路は、前記回路モジュールからセキュアな状態で読み出した前記ブ−トプログラムをさらに実行し、当該ブ−トプログラムに従って、前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを前記回路モジュールに記憶させ、前記回路モジュールから読み出した前記証明データを，前記インタフェースを介して前記通信先に送信する
請求項１４に記載のコンピュータ。
【請求項１６】
通信先と通信を行うコンピュータであって、
プログラムを記憶するメモリと、
前記通信先のユーザの操作履歴を基に得られた当該ユーザの属性を示す属性データを前記通信先から受信するインタフェースと、
前記メモリから読み出した前記プログラムを実行し、当該プログラムに従って、前記インタフェースが受信した前記属性データを基に、前記インタフェースを介して、前記通信先にデータを送信する実行回路と
を有するコンピュータ。
【請求項１７】
前記インタフェースは、前記通信先で起動され当該通信先に
よって正当性が認められたアプリケーションプログラムの識別データを示す証明データを前記通信先から受信し、
前記実行回路は、前記プログラムに従って、通信先が正当であると認証したことを条件に、前記インタフェースを介して受信した前記証明データに所望の識別データが含まれているか否かを判断し、前記所望の識別データが含まれていると判断したことを条件に、前記インタフェースを介して前記通信先にデータを送信する
請求項１６に記載のコンピュータ。
【請求項１８】
通信先と通信を行うコンピュータが行うデータ処理方法であって、
ユーザによる前記コンピュータの操作履歴を基に、前記ユーザの属性を示す属性データを生成する第１の工程と、
前記第１の工程で生成した前記属性データを、前記通信先に送信する第２の工程と
を有するデータ処理方法。
【請求項１９】
通信先と通信を行うコンピュータが行うデータ処理方法であって、
前記通信先のユーザの操作履歴を基に得られた当該ユーザの属性を示す属性データを前記通信先から受信する第１の工程と、
前記第１の工程で受信した前記属性データを基に、前記通信先にデータを送信する第２の工程と
を有するデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信先からデータを受信するコンピュータが実行するプログラム、そのコンピュータおよびデータ処理方法に関する。
【背景技術】
【０００２】
例えば、ユーザの操作履歴データを基に、当該ユーザの動作パターンを学習した学習データを生成し、その学習データを基に、コンテンツデータの提供などの処理を当該ユーザに適合させた形態で行うエージェントプログラムがある。
このようなエージェントプログラムは、例えば、サーバ装置上で動作し、サーバ装置にアクセスしているクライアント装置のユーザの操作履歴データを蓄積し、その操作履歴データを基に上記学習データを生成している。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述した従来のシステムでは、サーバ装置が、多数のクライアント装置からアクセスを受ける場合に、全てのクライアント装置のユーザについての上記操作履歴データを蓄積する必要があり、その管理負担が大きいという問題がある。
【０００４】
本発明は、上述した従来技術に鑑みてなされ、エージェント機能に伴うサーバ装置の負荷を軽減できるプログラム、コンピュータおよびデータ処理方法を提供することを目的とする。
また、本発明は、クライアント装置間でも、少ない負荷でエージェント機能を発揮できるプログラム、コンピュータおよびデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上述した従来技術の問題点を解決し、上述した目的を達成するために、第１の発明のプログラムは、通信先と通信を行うコンピュータが実行するプログラムであって、ユーザによる前記コンピュータの操作履歴を基に、前記ユーザの属性を示す属性データを生成する第１の手順と、前記第１の手順で生成した前記属性データを、前記通信先に送信する第２の手順とを前記コンピュータに実行させる。
【０００６】
第１の発明のプログラムの作用は以下のようになる。
第１の発明のプログラムは、コンピュータによって実行され、前記コンピュータに、ユーザによる前記コンピュータの操作履歴を基に、前記ユーザの属性を示す属性データを生成する第１の手順を実行させる。
次に、当該プログラムは、前記第１の手順で生成した前記属性データを、前記通信先に送信する第２の手順を前記コンピュータに実行させる。
【０００７】
第２の発明のプログラムは、ユーザによるコンピュータの操作履歴を基に得られた前記ユーザの属性を示す属性データを通信先に送信するアプリケーションプログラムの管理を前記コンピュータに実行させるプログラムであって、前記コンピュータが起動する前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第１の手順と、前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第１の手順で生成した前記証明データを送信する第２の手順とを前記コンピュータに実行させる。
【０００８】
第２の発明のプログラムの作用は以下のようになる。
第２の発明のプログラムは、コンピュータによって実行され、前記コンピュータが起動する前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第１の手順を前記コンピュータに実行させる。
次に、当該プログラムは、前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第１の手順で生成した前記証明データを送信する第２の手順を前記コンピュータに実行させる。
【０００９】
第３の発明のプログラムは、通信先と通信を行うコンピュータが実行するプログラムであって、前記通信先のユーザの操作履歴を基に得られた当該ユーザの属性を示す属性データを前記通信先から受信する第１の手順と、前記第１の手順で受信した前記属性データを基に、前記通信先にデータを送信する第２の手順とを前記コンピュータに実行させる。
【００１０】
第３の発明のプログラムの作用は以下のようになる。
第３の発明のプログラムは、コンピュータによって実行され、通信先のユーザの操作履歴を基に得られた当該ユーザの属性を示す属性データを前記通信先から受信する第１の手順を前記コンピュータに実行させる。
次に、当該プログラムは、前記第１の手順で受信した前記属性データを基に、前記通信先にデータを送信する第２の手順を前記コンピュータに実行させる。
【００１１】
第４の発明のコンピュータは、アプリケーションプログラムが記憶されたメモリと、前記メモリから読み出した前記アプリケーションプログラムを実行する実行回路と、通信先とデータ授受を行うインタフェースとを有するコンピュータであって、前記実行回路は、前記アプリケーションプログラムに従って、ユーザによる前記コンピュータの操作履歴を基に前記ユーザの属性を示す属性データを生成し、当該生成した前記属性データを前記インタフェースを介して前記通信先に送信する。
【００１２】
第４の発明のコンピュータの作用は以下のようになる。
先ず、前記実行回路が、前記アプリケーションプログラムに従って、ユーザによる前記コンピュータの操作履歴を基に前記ユーザの属性を示す属性データを生成する。
次に、前記実行回路が、前記生成した前記属性データを前記インタフェースを介して前記通信先に送信する。
【００１３】
第５の発明のコンピュータは、通信先と通信を行うコンピュータであって、プログラムを記憶するメモリと、前記通信先のユーザの操作履歴を基に得られた当該ユーザの属性を示す属性データを前記通信先から受信するインタフェースと、前記メモリから読み出した前記プログラムを実行し、当該プログラムに従って、前記インタフェースが受信した前記属性データを基に、前記インタフェースを介して、前記通信先にデータを送信する実行回路とを有する。
【００１４】
第６の発明のデータ処理方法は、通信先と通信を行うコンピュータが行うデータ処理方法であって、ユーザによる前記コンピュータの操作履歴を基に、前記ユーザの属性を示す属性データを生成する第１の工程と、前記第１の工程で生成した前記属性データを、前記通信先に送信する第２の工程とを有する。
【００１５】
第７の発明のデータ処理方法は、通信先と通信を行うコンピュータが行うデータ処理方法であって、前記通信先のユーザの操作履歴を基に得られた当該ユーザの属性を示す属性データを前記通信先から受信する第１の工程と、前記第１の工程で受信した前記属性データを基に、前記通信先にデータを送信する第２の工程とを有する。
【発明の効果】
【００１６】
本発明によれば、コンピュータが少ない負荷でエージェント機能を発揮することを可能にするプログラム、コンピュータおよびデータ処理方法を提供することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態に係わる通信システムについて説明する。
第１実施形態
図１は、本発明の実施形態に係わる通信システム１の全体構成図である。
図１に示すように、通信システム１は、例えば、サーバ装置１０およびクライアント装置１２＿１，１２＿２を有する。
サーバ装置１０、クライアント装置１２＿１およびクライアント装置１２＿１は、ネットワーク９を介して相互に通信を行う。
なお、本実施形態では、多数のサーバ装置１０および２つのクライアント装置１２＿１，１２＿３で通信を行う場合を例示するが、本発明は、複数のサーバ装置を用いてもよいし、単数または３個以上のクライアント装置を用いてもよい。
【００１８】
先ず、図１に示す通信システム１の概要を説明する。
クライアント装置１２＿１は、ユーザの操作履歴データを基に、当該ユーザの好みなどの属性を示す公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１を生成する。
そして、クライアント装置１２＿１は、公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１をサーバ装置１０に送信する。
サーバ装置１０は、公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１を基に、クライアント装置１２＿１のユーザの好みなどの特性に適合した種々のサービスデータ、例えばコンテンツデータをインタフェース２１を介してクライアント装置１２＿１に送信する。
また、クライアント装置１２＿１は、クライアント装置１２＿２との間で通信を行う場合には、クライアント装置１２＿２に公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１を送信すると共に、クライアント装置１２＿２から公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ２を受信する。
クライアント装置１２＿１は、公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ２を基に、クライアント装置１２＿２のユーザの好みなどの特性に適合したデータ、あるいは適合した形態でデータをクライアント装置１２＿２に送信する。
通信システム１では、サーバ装置１０は、各ユーザの操作履歴データを保持することなく、少ない負担で、エージェント機能を発揮できる。
また、通信システム１では、クライアント装置相互間で、記憶容量および処理の観点から少ない負担で、エ−ジェント機能を利用した円滑な通信を行うことが可能になる。
【００１９】
以下、本実施形態を図１〜図１２を参照して説明する。
先ず、本実施形態の各構成要素と本発明の構成要素との対応関係を説明する。
図２に示すアプリケーションプログラムＡＰ＿Ｓが第３および第５の発明のプログラムに対応している。
図５等に示すブ−トプログラムＢ＿ＰＲＧが、第２の発明のプログラム、並びに第４の発明のブートブログラムに対応している。
また、図１に示すクライアント装置１２＿１が第１、第２および第４の発明のコンピュータに対応し、図１に示すサーバ装置１０およびクライアント装置１２＿２が第１、第２および第５の発明の通信先に対応している。
また、図１に示すサーバ装置１０が第３の発明および第５の発明のコンピュータに対応し、図１に示すクライアント装置１２＿１が第３および第５の発明の通信先に対応している。
また、公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１が本発明の属性データに対応し、証明データＡＰ＿ＣＥＲが、本発明の証明データに対応している。
【００２０】
図８に示すステップが第２の発明の第１の手順に対応し、図９に示すステップＳＴ５４および図１０に示すステップＳＴ６８が第１の発明の第２の手順に対応している。
また、図７に示す各ステップが第２の発明の第１の手順に対応し、図９に示すステップＳＴ５４および図１０に示すステップＳＴ６４が第２の発明の第２の手順に対応している。
また、図３に示すステップＳＴ７が第３の発明の第１の手順に対応し、ステップＳＴ９が第３の発明の第２の手順に対応している。
【００２１】
〔サーバ装置１０〕
図２は、図１に示すサーバ装置１０の構成図である。
図２に示すように、サーバ装置１０は、例えば、インタフェース２１、メモリ２２およびＣＰＵ２３を有し、これらがデータ線２０を介して接続されている。
ここで、インタフェース２１が第５の発明のインタフェースに対応し、メモリ２２が第５の発明のメモリに対応し、ＣＰＵ２３が第５の発明の実行回路に対応している。
【００２２】
インタフェース２１は、ネットワーク９を介して、クライアント装置１２＿１，１２＿２との間でデータ送受信を行う。
メモリ２２は、アプリケーションプログラムＡＰ＿Ｓを記憶する。
アプリケーションプログラムＡＰ＿Ｓは、後述するように、クライアント装置１２＿１，１２＿２から受信した公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１，ＡＧＥＮＴ＿ＤＰ２を基に、クライアント装置１２＿１，１２＿２のユーザの好みなどの特性に適合した種々のサービスをクライアント装置１２＿１，１２＿２に対して提供する。
メモリ２２は、サーバ装置１０の秘密鍵データＳＫ＿Ｓ、公開鍵データＰＫ＿Ｓ、公開鍵証明データＰＫＣ＿Ｓ、並びに識別データＩＤ＿Ｓを記憶する。
また、メモリ２２は、クライアント装置１２＿１から受信した公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１を記憶する。
また、メモリ２２は、クライアント装置１２＿１との通信などにより、クライアント装置１２＿１の公開鍵データＰＫ＿Ｃ１および公開鍵証明データＰＫＣ＿Ｃ１を記憶する。  また、メモリ２２は、クライアント装置１２＿２から受信した公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ２を記憶する。
また、メモリ２２は、クライアント装置１２＿２との通信などにより、クライアント装置１２＿２の公開鍵データＰＫ＿Ｃ２および公開鍵証明データＰＫＣ＿Ｃ２を記憶する。
【００２３】
ＣＰＵ２３は、アプリケーションプログラムＡＰ＿Ｓを実行し、サーバ装置１０の動作を統括的に制御する。
ＣＰＵ２３が行う処理については、サーバ装置１０の動作例と関連付けて説明する。
【００２４】
以下、図２に示すサーバ装置１０がクライアント装置１２＿１と通信を行う場合の動作例を説明する。
図３は、図２に示すサーバ装置１０がクライアント装置１２＿１と通信を行う場合の動作例を説明するためのフローチャートである。
以下に示す各ステップは、アプリケーションプログラムＡＰ＿Ｓによって規定されている。
ステップＳＴ１：
サーバ装置１０のＣＰＵ２３が、ユーザから指定されたアプリケーションプログラムＡＰ＿Ｓをメモリ２２から読み出して実行する。
アプリケーションプログラムＡＰ＿Ｓは、例えば、検索エンジン、あるいは、ビデオやオーディオなどのコンテンツデータをクライアント装置に提供するプログラムであり、これに対応した識別データＡＰ＿ＩＤを持つプログラムとのみデータ送受信を行う。当該データは、例えば、著作権に係わるコンテンツデータである。
【００２５】
ステップＳＴ２：
ＣＰＵ２３は、例えば、メモリ２２から読み出した秘密鍵データＳＫ＿Ｓ、公開鍵データＰＫ＿Ｃ１および公開鍵証明データＰＫＣ＿Ｃ１を基に、インタフェース２１を介してクライアント装置１２＿１との間で相互認証を行う。
当該相互認証としては、例えば、ＩＳＯ／ＩＥＣ  ９７９８−３方式などが用いられる。
ＣＰＵ２３は、当該相互認証により互いの正当性が確認されると、クライアント装置１２＿１との間の以後の通信に用いるセッション鍵データをクライアント装置１２＿１と共用し、以後の通信において当該セッション鍵データを基にデータを暗号化する。
本実施形態では、例えば、後述するように、ＣＰＵ２３は、クライアント装置１２＿１のブ−トプログラムＢ＿ＰＲＧのハッシュデータの検証は行わないでよい。
ステップＳＴ３：
ＣＰＵ２３は、ステップＳＴ２で行った相互認証によって互いの正当性が確認されると、ステップＳＴ４に進み、そうでない場合には処理を終了かエラー処理を行う。
【００２６】
ステップＳＴ４：
ＣＰＵ２３は、インタフェース２１を介してクライアント装置１２＿１から署名データＳＩＧが付された証明データＡＰ＿ＣＥＲを受信する。
証明データＡＰ＿ＣＥＲは、例えば、後述するように、クライアント装置１２＿１で起動され、その正当性が確認されたアプリケーションプログラムＡＰ＿Ｃ１の識別データＡＰ＿ＩＤ、製造識別データＭＦ＿ＩＤ、バージョンＶＥＲおよびハッシュデータＨＡＳＨを図４に示すように対応付けて示している。
本実施形態では、アプリケーションプログラムＡＰ＿Ｃ１の一つとして、エージェントプログラムＡＧＥＮＴ＿Ｐ１が用いられる。
【００２７】
ステップＳＴ５：
ＣＰＵ２３は、ステップＳＴ４で受信した証明データＡＰ＿ＣＥＲの正当性を検証する。
このとき、ＣＰＵ２３は、例えば、証明データＡＰ＿ＣＥＲのハッシュデータをハッシュ関数を基に生成する。そして、ＣＰＵ２３は、上記生成したハッシュデータと、図４に示す証明データＡＰ＿ＣＥＲに付加された署名データＳＩＧとが一致しているか否かを判断し、一致していれば、証明データＡＰ＿ＣＥＲ１が改竄されていない正当なものであると判断する。
ここで、ハッシュ関数は、与えられた原文から固定長のデータを生成する関数であり、ハッシュ値から原文を再現できず、且つ、同じハッシュ値を持つ異なるデータを生成することも極めて困難であるという特性を有している。
そして、ＣＰＵ２３は、証明データＡＰ＿ＣＥＲが正当であると判断した場合にステップＳＴ６に進み、そうでない場合に処理を終了するかエラー処理を行う。
なお、クライアント装置１２＿１が上記ハッシュデータをクライアント装置１２＿１の
秘密鍵ＳＫ＿Ｃ１で暗号化して署名データＳＩＧを生成した場合には、ＣＰＵ２３は、署名データＳＩＧをクライアント装置１２＿１の公開鍵ＰＫ＿Ｃ１で復号し、復号されたデータと上記ハッシュデータを比較する。
なお、ネットワーク９上ではデータはセッション鍵で暗号化されているため、処理時間のかかるディジタル署名技術を用いなくても所望の目的を達成できる。すなわち、ハッシュデータそのものはセッション鍵で暗号化されており、ディジタル署名とほぼ同じ機能を実現できるからである。
また、過去にやりとりされたデータを不正に再利用することを防止するために、通常はデータ（本例では図４に示す証明データＡＰ＿ＣＥＲ）に乱数データを追加し、乱数を含む全データに対しハッシュデータを計算し、それを署名データＳＩＧとして利用する。また、秘密鍵ＳＫ＿Ｃ１で暗号化する場合には、この乱数データを含んだデータに対するハッシュデータに対して暗号化を行う。
【００２８】
ステップＳＴ６：
ＣＰＵ２３は、指定されたアプリケーションプログラムＡＰ＿Ｃ１（本実施形態では、エージェントプログラムＡＧＥＮＴ＿Ｐ１）の識別データＡＰ＿ＩＤが、ステップＳＴ４で受信した証明データＡＰ＿ＣＥＲに含まれているか否かを判断し、当該識別データＡＰ＿ＩＤが含まれている（クライアント装置１２＿１においてエージェントプログラムＡＧＥＮＴ＿Ｐ１の正当性が確認され且つ起動されている）と判断するとステップＳＴ７に進み、そうでない場合には処理を終了する。
ここで、エージェントプログラムＡＧＥＮＴ＿Ｐ１は、例えば、上述したように、クライアント装置１２＿１のユーザの公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１を生成するプログラムである。
なお、ＣＰＵ２３は、当該ステップの上記検証において、識別データＡＰ＿ＩＤの他に製造識別データＭＦ＿ＩＤおよびバージョンデータＶＥＲが所望のものであるか否かを検証してもよい。
なお、よりセキュリティを高めるために、識別データＡＰ＿ＩＤが証明データＡＰ＿ＣＥＲに含まれていることを検証するだけでなく、動作プログラムＡＰ＿Ｃ１に固有のプロトコルを導入して他の（正しく起動した）プログラムとの違いを認識できるようにしたり、動作プログラムＡＰ＿Ｃ１固有の秘密鍵でクライアント装置固有のＩＤ＿Ｃ１を暗号化させ、このデータを適宜受信することで、通信相手のプログラムが所望のものであると認識するようにすることもできる。
【００２９】
ステップＳＴ７：
インタフェース２１は、クライアント装置１２＿１から公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１を受信する。
ステップＳＴ８：
ＣＰＵ２３は、ステップＳＴ７で受信した図６に示す公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１に付された署名データＳＩＧＤの正当性を検証し、正当であると判断するとステップＳＴ９に進み、そうでない場合には処理を終了するかエラー処理を行う。
【００３０】
ステップＳＴ９：
ＣＰＵ２３は、公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１を解析して、クライアント装置１２＿１のユーザの好みなどの特性に適合した種々のサービスデータ、例えばコンテンツデータをインタフェース２１を介してクライアント装置１２＿１に送信する。
ＣＰＵ２３は、例えば、アプリケーションプログラムＡＰ＿Ｓが検索エンジンである場合に、クライアント装置１２＿１のユーザが入力した所定の検索キーワードの他に、上記ユーザの好みを基に決定された当該検索キ−ワードに関連するキ−ワードをさらに用いて、データの検索、並びに検索結果の表示を行う。
例えば、ＣＰＵ２３は、ユーザが「パッケ−ジツア−」を検索キ−ワードとして入力し、公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１が当該ユーザの好みは「車」であることを示す場合に、パッケ−ジツアーのデータのなかで、車を使って現地まで行くプランや、レンタカープランに関するデータを優先して選択してクライアント装置１２＿１に送信する。
上述したように、サーバ装置１０は、クライアント装置１２＿１のユーザの操作履歴データを蓄積することなく、クライアント装置１２＿１から受信した公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１を基に、エージェント機能を実現できる。
【００３１】
〔クライアント装置１２＿１〕
図５は、図１に示すクライアント装置１２＿１の構成図である。
図５に示すように、クライアント装置１２＿１は、例えば、インタフェース３１、メモリ３２、ＣＰＵ３３、操作部３７およびセキュリティモジュール回路ＳＭを有し、これらがデータ線３０を介して接続されている。
ここで、インタフェース３１が第４の発明のインタフェースに対応し、メモリ３２が第４の発明のメモリに対応し、セキュリティモジュール回路ＳＭが第４の発明の回路モジュールに対応し、ＣＰＵ３３が第４の発明の実行回路に対応している。
本実施形態において、クライアント装置１２＿１は、例えば、コンピュータ、ＰＤＡ(Personal Digital Assistants) 、並びに携帯電話などである。
【００３２】
インタフェース３１は、ネットワーク９を介して、サーバ装置１０およびクライアント装置１２＿２との間で通信を行う。
メモリ３２は、アプリケーションプログラムＡＰ＿Ｃ１を記憶する。
メモリ３２は、アプリケーションプログラムＡＰ＿Ｃ１の一つとして、エージェントプログラムＡＧＥＮＴ＿Ｐ１を記憶する。
メモリ３２は、半導体メモリあるいはハードディスクドライブである。
セキュリティモジュール回路ＳＭは、例えば、メモリ３５および演算回路３６を有する。
セキュリティモジュール回路ＳＭは、耐タンパ性を有する回路であり、メモリ３５の記憶データの改竄および盗み見行為、並びに演算回路３６の処理の盗み見行為を防止する機能が備えられている。
耐タンパ性の回路は、外部からの当該回路に対する攻撃（内部データの不正読み出し、入力周波数や入力電圧を所定外に設定したりする攻撃）を加えたときに、誤動作や内部データの漏洩を起こさないように構成された回路である。具体的には、内部データの読み出しを防止するために、回路構成を多層構造とし、メモリを最下層に配置すると共に、上下層にダミー層（例えばアルミ層）を取り入れることで、外部からメモリ入出力Ｉ／Ｆにアクセスすることを困難にしている。また、回路周波数検知回路や電圧検知回路を備え、周波数や電圧が所定の範囲内にない場合に動作しなように構成されている。
【００３３】
メモリ３５は、クライアント装置１２＿１の秘密鍵データＳＫ＿Ｃ１、公開鍵データＰＫ＿Ｃ１、公開鍵証明データＰＫＣ＿Ｃ１、並びに識別データＩＤ＿Ｃ１を記憶する。
また、メモリ３５は、サーバ装置１０との通信などにより、サーバ装置１０の公開鍵データＰＫ＿Ｓおよび公開鍵証明データＰＫＣ＿Ｓを記憶する。
また、メモリ３５は、クライアント装置１２＿２との通信などにより、クライアント装置１２＿２の公開鍵データＰＫ＿Ｃ２および公開鍵証明データＰＫＣ＿Ｃ２を記憶する。  また、メモリ３２は、クライアント装置１２＿２から受信した公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ２を記憶する。
【００３４】
操作部３７は、キ−ボード、マウス、タッチパネルなどの操作手段であり、ユーザの操作に応じた操作信号をＣＰＵ３３に出力する。
【００３５】
ＣＰＵ３３は、ブ−トプログラムＢ＿ＰＲＧ、アプリケーションプログラムＡＰ＿Ｃ１、並びに操作部３７からの操作信号に基づいて種々の処理を行う。
ＣＰＵ３３は、セキュリティモジュール回路ＳＭ内のメモリ３５から、データ線３０を介してブ−トプログラムＢ＿ＰＲＧをセキュアな状態で読み出し、これを実行する。
ＣＰＵ３３は、ブ−トプログラムＢ＿ＰＲＧに従って、図４に示す証明データＡＰ＿ＣＥＲを生成し、これをサーバ装置１０およびクライアント装置１２＿２に送信する。
なお、上記セキュアな状態での読み出しを実現するために、ＣＰＵ３３とセキュリティモジュール回路ＳＭとで共通の暗号鍵データを共有し、データ線３０上のデータを暗号化したり、ＣＰＵ３３とセキュリティモジュール回路ＳＭとの間で相互認証を行い、互いに共有したセッション鍵データでデータ線３０上のデータを暗号化したり、ＣＰＵ３３とセキュリティモジュール回路ＳＭとを１つのパッケージにモールドし、外部からデータ線３０上のデータへのアクセスを防止するなどの手法が用いられる。
また、セキュリティモジュール回路ＳＭを、他のクライアント装置に組み込むことを防止するために、クライアント装置１２＿１に装置固有のメモリデータ（ＩＤ、乱数、鍵などのデータ）を分散化して保持させ、起動時にセキュリティモジュール回路ＳＭが上記メモリデータの検証を行うようにしてもよい。また、インタフェース３１への入出力動作を複雑化するなどして、ＣＰＵ３３のブートメカニズムを複雑化し、許諾を受けた製造者のみが、そのメカニズムを知るようにすることで、ブ−トプログラムＢ＿ＰＲＧの起動の信頼性をさらに高めてもよい。
【００３６】
また、ＣＰＵ３３は、メモリ３２からアプリケーションプログラムＡＰ＿Ｃ１を読み出し、これを実行する。
本実施形態では、ＣＰＵ３３は、メモリ３２からエージェントプログラムＡＧＥＮＴ＿Ｐ１を読み出し、これを実行する。
ＣＰＵ３３は、エージェントプログラムＡＧＥＮＴ＿Ｐ１に従って、図６に示す公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１を生成し、これをサーバ装置１０およびクライアント装置１２＿２に送信する。
図６に示すように、公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１は、例えば、エージェントプログラムＡＧＥＮＴ＿Ｐ１の識別データＩＤ(Agent Software ID) 、製造識別データ(Agent Software Manufacture ID) 、バージョンデータ、その他、当該エージェントプログラムＡＧＥＮＴ＿Ｐ１に関する情報、エージェンデータＡＧＥＮＴ＿Ｄ１、エージェンデータＡＧＥＮＴ＿Ｄ１の更新履歴データＰＲＰ、セキュリティモジュールＳＭのバージョン、並びにエージェントプログラムＡＧＥＮＴ＿Ｐ１の署名データＳＩＧＤを有する。
ここで、更新履歴データＰＲＰは、公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１の更新履歴を示し、各更新について、その履歴番号と、その更新後のエージェントデータＡＧＥＮＴ＿Ｄ１のハッシュデータＨＡＳＨ＿Ｄ１を示している。
また、エージェントデータＡＧＥＮＴ＿Ｄ１は、後述するように、クライアント装置１２＿１のユーザの操作履歴を解析して得られた当該ユーザの好みなどの属性データを基に逐次更新されるデータである。
なお、ＣＰＵ３３は、クライアント装置１２＿１のデバイス、例えば、セキュリティモジュール回路ＳＭを特定できる識別データを公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１内に含ませるか否かを、ユーザからの指示に応じて決定してもよい。
【００３７】
ＣＰＵ３３は、クライアント装置１２＿１の動作を統括的に制御する。
ＣＰＵ３３が行う処理については、クライアント装置１２＿１の動作例と関連付けて説明する。
【００３８】
以下、図５に示すクライアント装置１２＿１がブ−トプログラムＢ＿ＰＲＧに従って証明データＡＰ＿ＣＥＲを生成する動作を説明する。
図７は、図５に示すクライアント装置１２＿１が証明データＡＰ＿ＣＥＲを生成する動作を説明するためのフローチャートである。
以下に示す各ステップは、ブ−トプログラムＢ＿ＰＲＧによって規定されている。
ステップＳＴ１１：
クライアント装置１２＿１が起動されると、セキュリティモジュール回路ＳＭの演算回路３６が、メモリ３５からブ−トプログラムＢ＿ＰＲＧを読み出し、当該ブ−トプログラムＢ＿ＰＲＧの正当性を検証する。
このとき、演算回路３６は、例えば、ブ−トプログラムＢ＿ＰＲＧのハッシュデータをハッシュ関数を基に生成し、当該生成したハッシュデータと、予め用意されたブ−トプログラムＢ＿ＰＲＧのハッシュデータとを比較し、一致していれば、メモリ３５に記憶されているブ−トプログラムＢ＿ＰＲＧが正当である（改竄されていない）と判断する。
ステップＳＴ１２：
クライアント装置１２＿１は、ステップＳＴ１１でブ−トプログラムＢ＿ＰＲＧが正当であると判断されるとステップＳＴ１３に進み、そうでない場合にはエラー処理を行う。
【００３９】
ステップＳＴ１３：
クライアント装置１２＿１のＣＰＵ３３が、データ線３０を介して、メモリ３５からブ−トプログラムＢ＿ＰＲＧをセキュアな状態で読み出す。
ステップＳＴ１４：
ＣＰＵ３３が、ステップＳＴ１３で読み出したブ−トプログラムＢ＿ＰＲＧを実行する。
ステップＳＴ１５：
ＣＰＵ３３が、ブ−トプログラムＢ＿ＰＲＧに従って、ユーザにより指定された複数のアプリケーションプログラムＡＰ＿Ｃ１のうち未選択のアプリケーションプログラムＡＰ＿Ｃ１を選択する。  本実施形態では、アプリケーションプログラムＡＰ＿Ｃ１として、エージェントプログラムＡＧＥＮＴ＿Ｐ１が指定される。
【００４０】
ステップＳＴ１６：
ＣＰＵ３３が、ステップＳＴ１５で選択したアプリケーションプログラムＡＰ＿Ｃ１をメモリ３２から読み出して、その正当性を検証する。
このとき、ＣＰＵ３３は、例えば、アプリケーションプログラムＡＰ＿Ｃ１のハッシュデータをハッシュ関数を基に生成し、当該生成したハッシュデータと、予め用意されたアプリケーションプログラムＡＰ＿Ｃ１のハッシュデータとを比較し、一致していれば、メモリ３２に記憶されているアプリケーションプログラムＡＰ＿Ｃ１が正当であると判断する。
また、ＣＰＵ３３は、アプリケーションプログラムＡＰ＿Ｃ１に対応付けられた所定の署名データを公開鍵データを基に検証してもよい。当該署名データは、アプリケーションプログラムＡＰ＿Ｃ１に付加されていてもよいし、メモリ３２に、アプリケーションプログラムＡＰ＿Ｃ１とは別に記憶されていてもよい。
【００４１】
ステップＳＴ１７：
ＣＰＵ３３は、ステップＳＴ１６でアプリケーションプログラムＡＰ＿Ｃ１が正当であると判断するとステップＳＴ１８に進み、そうでない場合にはステップＳＴ２０に進む。  ステップＳＴ１８：
ＣＰＵ３３は、ステップＳＴ１６で正当であると判断したアプリケーションプログラムＡＰ＿Ｃ１の識別データＡＰ＿ＩＤ、製造識別データＭＦ＿ＩＤ，バージョンデータＶＥＲおよびハッシュデータＨＡＳＨ（以下、単に、識別データＡＰ＿ＩＤとも記す）を、証明データＡＰ＿ＣＥＲに追加する。
ステップＳＴ１９：
ＣＰＵ３３は、ステップＳＴ１６で正当性であると判断されたアプリケーションプログラムＡＰ＿Ｃ１を起動する。
本実施形態では、アプリケーションプログラムＡＰ＿Ｃ１が正当であるとステップＳＴ１６で判断したことを条件に、アプリケーションプログラムＡＰ＿Ｃ１を起動する場合を例示するが、その他、アプリケーションプログラムＡＰ＿Ｃ１が正当であると判断されなかった場合に、その旨をユーザに通知し、ユーザの同意を得てアプリケーションプログラムＡＰ＿Ｃ１を起動してもよい。但し、この場合には、ＣＰＵ３３は、アプリケーションプログラムＡＰ＿Ｃ１の識別データＡＰ＿ＩＤを、証明データＡＰ＿ＣＥＲに追加しない。
ステップＳＴ２０：
ＣＰＵ３３は、ユーザにより指定された全てのアプリケーションプログラムＡＰ＿Ｃ１がステップＳＴ１５で選択されたか否かを判断し、選択されたと判断すると処理を終了し、そうでない場合にはステップＳＴ１５に戻る。
本実施形態では、エージェントプログラムＡＧＥＮＴ＿Ｐ１が正当であられば、ＣＰＵ３３がエージェントプログラムＡＧＥＮＴ＿Ｐ１を起動すると共に、その識別データＡＰ＿ＩＤが証明データＡＰ＿ＣＥＲ内に追加される。
【００４２】
以下、図５に示すクライアント装置１２＿１がエージェントプログラムＡＧＥＮＴ＿Ｐ１に従って、公開エ−ジェントデータＡＧＥＮＴ＿ＤＰを生成する場合の動作例を説明する。
図８は、図５に示すクライアント装置１２＿１が公開エ−ジェントデータＡＧＥＮＴ＿ＤＰを生成する場合の動作例を説明するためのフローチャートである。
図８に示す各ステップは、ＣＰＵ３３が、エージェントプログラムＡＧＥＮＴ＿Ｐ１に従って実行する。
以下の動作は、例えば、検索エンジンなどの他のアプリケーションプログラムＡＰ＿Ｃ１の動作と並行して実行される。
【００４３】
ステップＳＴ３１：
ＣＰＵ３３は、メモリ３２からエージェントデータＡＧＥＮＴ＿Ｄ１を読み出す。
ステップＳＴ３２：
ＣＰＵ３３は、操作部３７からの操作信号を基に、クライアント装置１２＿１のユーザの操作履歴データを更新する。
そして、ＣＰＵ３３が、当該更新した操作履歴データを解析し、上記ユーザの好みなどの属性データを生成する。
ＣＰＵ３３は、当該生成した属性データを基に、現エージェントデータＡＧＥＮＴ＿Ｄ１を更新する。
【００４４】
ステップＳＴ３３：
ＣＰＵ３３は、時間カウンタ（図示せず）のカウタン値を基に、所定の時間が経過したか否かを判断し、経過したと判断するとステップＳＴ３６に進み、そうでない場合にステップＳＴ３４に進む。
本実施形態において、上記所定の時間は、例えば、１週間、１か月あるいは３か月などである。
ステップＳＴ３４：
ＣＰＵ３３は、更新回数カウンタのカウンタ値が示す値（ステップＳＴ３２の更新回数）、あるいは属性データが更新された内容の程度（更新量）が所定のしきい値を越えたか否かを判断し、越えたと判断するとステップＳＴ３６に進み、そうでない場合にはステップＳＴ３５に進む。
ステップＳＴ３５：
ＣＰＵ３３は、操作部３７からの操作信号を基に、公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１の更新指示をユーザから受けたか否かを判断し、更新指示を受けたと判断するとステップＳＴ３６に進み、そうでない場合にはステップＳＴ３２に戻る。
【００４５】
ステップＳＴ３６：
ＣＰＵ３３は、メモリ３２から図６に示す公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１を読み出し、そのエージェントデータＡＧＥＮＴ＿Ｄ１を、ステップＳＴ３２で更新したエージェントデータＡＧＥＮＴ＿Ｄ１で更新する。
ステップＳＴ３７：
ＣＰＵ３３は、更新後のエージェントデータＡＧＥＮＴ＿Ｄ１のハッシュデータＨＡＳＨ＿Ｄ１を生成するとともに、更新前のエージェントデータＡＧＥＮＴ＿Ｄ１のハッシュデータＨＡＳＨ＿Ｄ１を生成し、それを基に図６に示す更新履歴データＰＲＰを更新する。
【００４６】
ステップＳＴ３８：
ＣＰＵ３３は、ステップＳＴ３７で更新した公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１の署名データＳＩＧＤを生成し、これを図６に示す公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１に付加する。
ステップＳＴ３９：
ＣＰＵ３３は、時間カウンタおよび更新回数カウンタのカウンタ値をリセットする。
【００４７】
以下、図５に示すクライアント装置１２＿１がサーバ装置１０と通信を行う場合の動作例を説明する。
図９は、図５に示すクライアント装置１２＿１がサーバ装置１０と通信を行う場合の動作例を説明するためのフローチャートである。
以下に示すステップＳＴ５１〜ＳＴ５５は、ブ−トプログラムＢ＿ＰＲＧによって規定されている。
【００４８】
ステップＳＴ５１：
クライアント装置１２＿１のＣＰＵ３３は、セキュリティモジュール回路ＳＭのメモリ３５から読み出した秘密鍵データＳＫ＿Ｃ１、公開鍵データＰＫ＿Ｓおよび公開鍵証明データＰＫＣ＿Ｓを基に、インタフェース３１を介してサーバ装置１０との間で相互認証を行う。
ＣＰＵ３３は、当該相互認証により互いの正当性が確認されると、サーバ装置１０との間の以後の通信に用いるセッション鍵データをサーバ装置１０と共用し、以後の通信において当該セッション鍵データを基にデータを暗号化する。
なお、上記相互認証において、ＣＰＵ３３は、サーバ装置１０のＡＣ(Attribute Certificate) やＵＲＬ(Uniform Resource Locator)を基に、サーバ装置１０の正当性を認証してもよい。ここで、ＡＣは、所定の認証機関（ＡＣ発行機関）が公開鍵証明データの識別データＩＤにリンクして被発行者の機能や属性を証明する電子データであり、本例では、所定のコンテンツデータを配信するサーバであることを示している。
ステップＳＴ５２：
ＣＰＵ３３は、ステップＳＴ５１で行った相互認証によって互いの正当性が確認されるとステップＳＴ５３に進み、そうでない場合には処理を終了する。
【００４９】
ステップＳＴ５３：
ＣＰＵ３３は、図７を基に説明した処理を経て生成した証明データＡＰ＿ＣＥＲのハッシュデータを生成し、これを署名データＳＩＧとして証明データＡＰ＿ＣＥＲに付加する。
ステップＳＴ５４：
ＣＰＵ３３は、ステップＳＴ５３で生成した署名付き証明データＡＰ＿ＣＥＲと公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１とを、インタフェース３１を介してサーバ装置１０に送信する。
ステップＳＴ５５：
ＣＰＵ３３は、所定のアプリケーションプログラムＡＰ＿Ｃ１あるいはエージェントプログラムＡＧＥＮＴ＿Ｐ１に従って、インタフェース３１を介してサーバ装置１０から受信したデータ、例えばコンテンツデータを利用する。
このとき、サーバ装置１０からクライアント装置１２＿１へのデータ送信は、前述したように、クライアント装置１２＿１がサーバ装置１０に送信した公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１を基に行われているため、クライアント装置１２＿１のユーザの好みなどの属性を反映したものになっている。
【００５０】
なお、アプリケーションプログラムＡＰ＿Ｃ１には、例えば、著作権保護機能が備えられており、その機能により、コンテンツデータの著作権が保護される。
なお、上述した実施形態では、ＣＰＵ３３が、セキュリティモジュール回路ＳＭから読み出したブ−トプログラムＢ＿ＰＲＧを基に、認証処理、並びに署名データＳＩＧの生成処理を行う場合を例示したが、セキュリティモジュール回路ＳＭの演算回路３６が当該処理を行ってもよい。
この場合には、クライアント装置１２＿１は、サーバ装置１０から受信したデータのうち、認証に必要なデータをセキュリティモジュール回路ＳＭに提供する。そして、セキュリティモジュール回路ＳＭの演算回路３６が、当該データを基に演算処理を行い、その結果をインタフェース３１を介してサーバ装置１０に送信する。また、セキュリティモジュール回路ＳＭの演算回路３６が、証明データＡＰ＿ＣＥＲの署名データＳＩＧを生成し、署名データＳＩＧが付加させた証明データＡＰ＿ＣＥＲをインタフェース３１を介してサーバ装置１０に送信する。
【００５１】
以下、図５に示すクライアント装置１２＿１が図１に示すクライアント装置１２＿２との間でコンテンツデータの送受信を行う場合の動作例を説明する。
図１０は、図５に示すクライアント装置１２＿１が図１に示すクライアント装置１２＿２との間でコンテンツデータの送受信を行う場合の動作例を説明するためのフローチャートである。
図１０に示すステップＳＴ６１〜ＳＴ６７はブ−トプログラムＢ＿ＰＲＧに従って実行され、ステップＳＴ６８〜ＳＴ７０はエージェントプログラムＡＧＥＮＴ＿Ｐ１に従って実行される。
ステップＳＴ６１：
クライアント装置１２＿１のＣＰＵ３３は、セキュリティモジュール回路ＳＭのメモリ３５から読み出した秘密鍵データＳＫ＿Ｃ１、公開鍵データＰＫ＿Ｃ２および公開鍵証明データＰＫＣ＿Ｃ２を基に、インタフェース３１を介してクライアント装置１２＿２との間で相互認証を行う。
ＣＰＵ３３は、当該相互認証により互いの正当性が確認されると、クライアント装置１２＿２との間の以後の通信に用いるセッション鍵データをクライアント装置１２＿２と共用し、以後の通信において当該セッション鍵データを基にデータを暗号化する。
なお、本実施形態では、メモリ３５に公開鍵データＰＫ＿Ｃ２および公開鍵証明データＰＫＣ＿Ｃ２が記憶されているとしたが、認証に先立って、クライアント装置１２＿２から受信するようにしてもよい。
ステップＳＴ６２：
ＣＰＵ３３は、ステップＳＴ６１で行った相互認証によって互いの正当性が確認されるとステップＳＴ６３に進み、そうでない場合には処理を終了かエラー処理を行う。
【００５２】
ステップＳＴ６３：
ＣＰＵ３３は、図７を基に説明した処理を経て生成した証明データＡＰ＿ＣＥＲ１のハッシュデータを生成し、これを署名データＳＩＧとして証明データＡＰ＿ＣＥＲ１に付加する。
ステップＳＴ６４：
ＣＰＵ３３は、ステップＳＴ６３で生成した署名付き証明データＡＰ＿ＣＥＲ１を、インタフェース３１を介してクライアント装置１２＿２に送信する。
ステップＳＴ６５：
ＣＰＵ３３は、図７を用いて説明した処理と同様の処理をクライアント装置１２＿２が行って生成された署名データＳＩＧが付された証明データＡＰ＿ＣＥＲ２（図示せず）を、インタフェース３１を介してクライアント装置１２＿２から受信する。
証明データＡＰ＿ＣＥＲ２は、前述したように、クライアント装置１２＿２で起動され、その正当性が確認されたアプリケーションプログラムＡＰ＿Ｃ２の識別データＡＰ＿ＩＤ、製造識別データＭＦ＿ＩＤ、バージョンＶＥＲおよびハッシュデータＨＡＳＨを図４に示すように、対応付けて示している。
【００５３】
ステップＳＴ６６：
ＣＰＵ３３は、ステップＳＴ６４で受信した証明データＡＰ＿ＣＥＲ２の正当性を検証する。
このとき、ＣＰＵ３３は、例えば、証明データＡＰ＿ＣＥＲ２のハッシュデータをハッシュ関数を基に生成する。そして、ＣＰＵ３３は、上記生成したハッシュデータと、署名データＳＩＧとが一致しているか否かを判断し、一致していれば、証明データＡＰ＿ＣＥＲ２が改竄されていない正当なものであると判断する。
そして、ＣＰＵ３３は、証明データＡＰ＿ＣＥＲ２が正当であると判断した場合にステップＳＴ６７に進み、そうでない場合に処理を終了するかエラー処理を行う。
【００５４】
ステップＳＴ６７：
ＣＰＵ３３は、ユーザによって指定されたアプリケーションプログラムＡＰ＿Ｃ２の識別データＡＰ＿ＩＤが、ステップＳＴ６５で受信した証明データＡＰ＿ＣＥＲ２に含まれているか否かを判断し、当該識別データＡＰ＿ＩＤが含まれている（クライアント装置１２＿２においてアプリケーションプログラムＡＰ＿Ｃ２の正当性が確認され且つ起動されている）と判断するとステップＳＴ６８に進み、そうでない場合には処理を終了するかエラー処理を行う。
なお、ＣＰＵ３３は、当該ステップにおいて、識別データＡＰ＿ＩＤの他に製造識別データＭＦ＿ＩＤおよびバージョンデータＶＥＲが所望のものであるか否かを判断してもよい。
【００５５】
ステップＳＴ６８：
ＣＰＵ３３は、例えば、既に起動しているエージェントプログラムＡＧＥＮＴ＿Ｐ１に従って、図８に示す手順で生成した公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１を、インタフェース３１を介してクライアント装置１２＿２に送信する。
インタフェース３１は、クライアント装置１２＿２から、当該クライアント装置１２＿１が生成した公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ２を受信する。
【００５６】
ステップＳＴ６９：
ＣＰＵ３３は、ステップＳＴ６８で受信した公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ２に付された署名データＳＩＧＤの正当性を検証する。
ＣＰＵ３３は、署名データＳＩＧＤが正当であると判断するとステップＳＴ７０に進み、そうでない場合には処理を終了するかエラー処理を行う。
【００５７】
ステップＳＴ７０：
ＣＰＵ３３は、エージェントプログラムＡＧＥＮＴ＿Ｐ１に従って、所定のコンテンツデータなどのデータを暗号化して、インタフェース３１を介してクライアント装置１２＿２に送信する。
このとき、ＣＰＵ３３は、ステップＳＴ６８で受信した公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ２を基に、クライアント装置１２＿１のユーザの好みなどの特性に適合したデータをクライアント装置１２＿２に送信する。
ＣＰＵ３３は、その他、例えば、公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ２を基に、クライアント装置１２＿２のユーザがメール、チャット、ボイスメールおよび通話の何れの利用頻度が高いかを判断し、利用頻度が高い媒体を用いて当該ユーザと通信を行うようにしてもよい。
また、ＣＰＵ３３は、インタフェース３１を介してクライアント装置１２＿２から受信したコンテンツデータなどのデータを利用する。
【００５８】
なお、クライアント装置１２＿２は、上述したクライアント装置１２＿１と同じ構成を有している。
【００５９】
以下、図１に示す通信システム１の全体動作例を説明する。
クライアント装置１２＿１，１２＿２は、前述した図７に示す処理を行って証明データＡＰ＿ＣＥＲ１，ＡＰ＿ＣＥＲ２を、それぞれクライアント装置１２＿１，１２＿２の図５に示すセキュリティモジュール回路ＳＭ内のメモリ３５に書き込む。
また、クライアント装置１２＿１，１２＿２の各々は、図８に示す処理を行ってユーザの好みなどの属性を示す公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１，ＡＧＥＮＴ＿ＤＰ２を生成し、これをメモリ３２に書き込む。
そして、クライアント装置１２＿１，１２＿２は、公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１，ＡＧＥＮＴ＿ＤＰ２をサーバ装置１０に送信する。
サーバ装置１０は、公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１を基に、クライアント装置１２＿１のユーザの好みなどの特性に適合した種々のサービスデータ、例えばコンテンツデータをインタフェース２１を介してクライアント装置１２＿１に送信する。
また、サーバ装置１０は、公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ２を基に、クライアント装置１２＿２のユーザの好みなどの特性に適合した種々のサービスデータ、例えばコンテンツデータをインタフェース２１を介してクライアント装置１２＿２に送信する。  一方、クライアント装置１２＿１は、クライアント装置１２＿２との間で通信を行う場合には、クライアント装置１２＿２に公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１を送信すると共に、クライアント装置１２＿２から公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ２を受信する。
そして、クライアント装置１２＿１は、公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ２を基に、クライアント装置１２＿２のユーザの好みなどの特性に適合したデータ、あるいは適合した形態でデータをクライアント装置１２＿２に送信する。
【００６０】
以上説明したように、通信システム１によれば、サーバ装置１０が各ユーザの操作履歴データを保持することなく、少ない負担で、エージェント機能を実現できる。
また、通信システム１によれば、クライアント装置１２＿１，１２＿２の相互間で、記憶容量および処理の観点から少ない負担で、エ−ジェント機能を利用した円滑な通信を行うことが可能になる。
例えば、クライアント装置１２＿１，１２＿２との間でデータ交換を行う場合に、相手の好みに適合したデータを送信することができる。
【００６１】
また、通信システム１によれば、クライアント装置１２＿１，１２＿２の各々が自らが起動するアプリケーションプログラムＡＰ＿Ｃ１，ＡＰ＿Ｃ２の正当性を検証し、その結果を示す証明データＡＰ＿ＣＥＲ１、ＡＰ＿ＣＥＲ２をサーバ装置１０に送信する。
そのため、サーバ装置１０は、クライアント装置１２＿１，１２＿２が実行するアプリケーションプログラムのハッシュデータを全て保持する必要がなく、また、その正当性の検証処理を行う必要がない。従って、クライアント装置１２＿１，１２＿２で起動されているアプリケーションプログラムの正当性の判断に伴うサーバ装置１０の負荷を軽減できる。
【００６２】
また、通信システム１によれば、クライアント装置１２＿１，１２＿２において、図５に示すように、上述した証明データＡＰ＿ＣＥＲを生成するブ−トプログラムＢ＿ＰＲＧが証明データＡＰ＿ＣＥＲ１，ＡＰ＿ＣＥＲ２内に記憶され、且つ、それがデータ線３０を介してセキュアな状態でＣＰＵ３３に読み出されるので、証明データＡＰ＿ＣＥＲ１，ＡＰ＿ＣＥＲ２の信頼性を高めることができる。
また、通信システム１によれば、サーバ装置１０は、クライアント装置１２＿１，１２＿２と相互認証を行ってから、署名付きの証明データＡＰ＿ＣＥＲ１，ＡＰ＿ＣＥＲ２を受信し、その署名データＳＩＧを検証するため、サーバ装置１０は、クライアント装置１２＿１，１２＿２で起動されているアプリケーションプログラムの正当性を高い信頼性で判断できる。
【００６３】
また、通信システム１によれば、サーバ装置１０とクライアント装置１２＿１，１２＿２との間のみならず、クライアント装置１２＿１と１２＿２との間でコンテンツデータを送受信する場合にも、クライアント装置１２＿１，１２＿２の一方は、他方で起動されているアプリケーションプログラムの正当性を小さな負荷で判断できる。
【００６４】
本発明は上述した実施形態には限定されない。
例えば、クライアント装置１２＿１等は、エージェントプログラムＡＧＥＮＴ＿Ｐ１に従って、ユーザの操作履歴の他に、ユーザが直接入力されたユーザの好み、年齢、性別などに関する情報をさらに含めてエージェントデータＡＧＥＮＴ＿Ｄ１を生成してもよい。
また、クライアント装置１２＿１等は、エージェントプログラムＡＧＥＮＴ＿Ｐ１に従って、ユーザが直接入力した当該ユーザの個人データ、例えば、パスワード、氏名、住所、電話番号、並びにメ−ルアドレスなどの情報をさらに含めてエージェントデータＡＧＥＮＴ＿Ｄ１を生成してもよい。
【００６５】
この場合に、クライアント装置１２＿１等は、上述した個人データなどのプライバシーに係わるデータは、エージェントデータＡＧＥＮＴ＿Ｄ１には含ませるが、公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１には含ませないなどの処理を行う。
また、クライアント装置１２＿１等は、ユーザからの指示に応じて、当該ユーザの好みおよびアクセス履歴などの情報を、公開する情報と非公開の情報とに分類し、公開する情報のみを公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１に含ませてもよい。この場合に、クライアント装置１２＿１等は、非公開の情報は、暗号化して図５に示すメモリ３２に記憶する。
【００６６】
また、クライアント装置１２＿１等は、図６に示す公開エ−ジェントデータＡＧＥＮＴ＿ＤＰ１のエージェントデータＡＧＥＮＴ＿Ｄ１内に、図１１に示すように、暗号化されたデータＥＤと、暗号化されていないデータＵＥＤとを含めてもよい。
この場合に、クライアント装置１２＿１等は、例えば、暗号化されたデータＥＤとして、複数の暗号レベルを規定してもよい。
すなわち、クライアント装置１２＿１等は、例えば、図１２に示すように、鍵データとしてＫ１，Ｋ２，Ｋ３，Ｋ４を規定する。
そして、クライアント装置１２＿１等は、鍵データを暗号化した暗号データＴ２，Ｔ３，Ｔ４、並びに暗号データＥＤ１，ＥＤ２，ＥＤ３，ＥＤ４を、サーバ装置１０あるいはクライアント装置１２＿２に送信する。
この場合に、例えば、下記（１）に示すようにＥｎｃ，Ｄｅｃを定義し、下記（２）、（３）に示すように、鍵データＫ１〜Ｋ４、被暗号化データＤ１〜Ｄ４、並びに暗号データＥＤ１〜ＥＤ４，Ｔ２〜Ｔ４を規定する。
【００６７】
（数１）
（暗号データ）＝Ｅｎｃ（鍵データ、被暗号化データ）
（被暗号化データ）＝Ｄｅｃ（鍵データ、暗号データ）
…（１）
【００６８】
（数２）
ＥＤ１＝Ｅｎｃ（Ｋ１，Ｄ１）
Ｔ１＝Ｅｎｃ（Ｋ１，Ｋ２）
ＥＤ２＝Ｅｎｃ（Ｋ２，Ｄ２）
Ｔ２＝Ｅｎｃ（Ｋ２，Ｋ３）
ＥＤ３＝Ｅｎｃ（Ｋ３，Ｄ３）
Ｔ３＝Ｅｎｃ（Ｋ３，Ｋ４）
ＥＤ４＝Ｅｎｃ（Ｋ４，Ｄ４）
…（２）
【００６９】
（数３）
Ｋ４＝Ｄｅｃ（Ｋ３，Ｔ３）
Ｄ４＝Ｄｅｃ（Ｋ４，ＥＤ４）
Ｋ３＝Ｄｅｃ（Ｋ２，Ｔ２）
Ｄ３＝Ｄｅｃ（Ｋ３，ＥＤ３）
Ｋ２＝Ｄｅｃ（Ｋ１，Ｔ１）
Ｄ２＝Ｄｅｃ（Ｋ２，ＥＤ２）
Ｄ１＝Ｄｅｃ（Ｋ１，ＥＤ１）
…（３）
【００７０】
サーバ装置１０あるいはクライアント装置１２＿２は、鍵データＫ１を保持している場合には鍵データＫ２，Ｋ３，Ｋ４を取得でき、鍵データＫ２を保持している場合には鍵データＫ３，Ｋ４を取得でき、鍵データＫ３を保持している場合には鍵データＫ４を取得できる。従って、これらの鍵データＫ１〜Ｋ４を基に暗号レベルを設定できる。
すなわち、クライアント装置１２＿１等は、サーバ装置１０およびクライアント装置１２＿２に、鍵データＫ１〜Ｋ４のうち自らが指定した鍵データを提供し、図１１に示す暗号化されているデータＥＤを何れかの鍵データで暗号化することで、自らが指定したサーバ装置１０およびクライアント装置１２＿２にのみ、データＥＤを復号させることができる。
例えば、クライアント装置１２＿１は、クライアント装置１２＿２に鍵データＫ２を提供して保持させた場合に、鍵データＫ２，Ｋ３あるいはＫ４を用いて暗号化したデータＥＤはクライアント装置１２＿２に復号させ、鍵データＫ１を用いて暗号化したデータＥＤはクライアント装置１２＿２に復号させないようにできる。
【００７１】
また、上述した相互認証は、公開鍵認証に限定されるのではなく、相互認証できる方法またはシステムであればどのような認証方法でもよい。
【産業上の利用可能性】
【００７２】
本発明は、コンピュータ間で通信を行うシステムに適用可能である。
【図面の簡単な説明】
【００７３】
【図１】図１は、本発明の実施形態に係わる通信システムの全体構成図である。
【図２】図２は、図１に示すサーバ装置の構成図である。
【図３】図３は、図２に示すサーバ装置がクライアント装置と通信を行う場合の動作例を説明するためのフローチャートである。
【図４】図４は、本発明の実施形態に係わる証明データを説明するための図である。
【図５】図５は、図１に示すクライアント装置の構成図である。
【図６】図６は、本発明の実施形態における公開エ−ジェントデータＡＧＥＮＴ＿ＤＰを説明するための図である。
【図７】図７は、図５に示すクライアント装置が証明データＡＰ＿ＣＥＲを生成する動作を説明するためのフローチャートである。
【図８】図８は、図５に示すクライアント装置が公開エ−ジェントデータＡＧＥＮＴ＿ＤＰを生成する動作例を説明するためのフローチャートである。
【図９】図９は、図５に示すクライアント装置がサーバ装置と通信を行う場合の動作例を説明するためのフローチャートである。
【図１０】図１０は、図５に示すクライアント装置１２＿１が図１に示すクライアント装置１２＿２と通信を行う場合の動作例を説明するためのフローチャートである。
【図１１】図１１は、本発明の実施形態の変形例に係わるエージェントデータを説明するための図である。
【図１２】図１２は、本発明の実施形態の変形例に係わるクライアント装置の処理を説明するための図である。
【符号の説明】
【００７４】
１…通信システム、１０…サーバ装置、１２＿１，１２＿２…クライアント装置、２０…データ線、２１…インタフェース、２２…メモリ、２３…ＣＰＵ、３０…データ線、３１…インタフェース、３２…メモリ、３３…ＣＰＵ、ＳＭ…セキュリティモジュール回路、３５…メモリ、３６…演算回路、ＡＰ＿Ｓ，ＡＰ＿Ｃ１…アプリケーションプログラム、Ｂ＿ＰＲＧ…ブ−トプログラム、ＡＰ＿ＣＥＲ…証明データ、ＡＧＥＮＴ＿ＤＰ１…公開エ−ジェントデータ、ＡＧＥＮＴ＿Ｄ…エージェントデータ、ＡＧＥＮＴ＿Ｐ１…エージェントプログラム
【図１】
2005301531.tif 000003
【図２】
2005301531.tif 000004
【図３】
2005301531.tif 000005
【図４】
2005301531.tif 000006
【図５】
2005301531.tif 000007
【図６】
2005301531.tif 000008
【図７】
2005301531.tif 000009
【図８】
2005301531.tif 000010
【図９】
2005301531.tif 000011
【図１０】
2005301531.tif 000012
【図１１】
2005301531.tif 000013
【図１２】
2005301531.tif 000014