(57)【要約】【課題】複数の端末コンピュータ間で行われる処理を、第三者端末を利用して行っても信頼性が保たれるようにする。【解決手段】ネットワークシステムにおいて、一の端末１１０が他の端末１２０との間で行う協調処理に関する前記一の端末１１０の機能を、代替端末１３０を用いて代替させる代替処理を行う。一の端末１１０は、協調処理を実行するための処理オブジェクトを含む代替処理依頼データＲを生成して、代替端末１３０に対して送信することで代替処理の依頼を行う。代替端末１３０が代替処理依頼データＲを受信すると、処理オブジェクトを用いた協調処理の実行の要求を他の端末１２０に送信する。代替処理依頼データＲには、当該代替処理依頼データの真性を保証する保証データが含まれており、他の端末１２０は、保証データに基づいて、協調処理の実行の要求を受け入れるか否かを判断する。【選択図】図３
2010182222.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムであって、
前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する手段と、
代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する手段と、
前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う手段と、
前記代替コンピュータが前記代替処理依頼データを受信する手段と、
前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、前記代替コンピュータが前記他の端末コンピュータに送信する手段と、
を備え、
前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれており、
前記他の端末コンピュータは、前記代替コンピュータから前記代替処理依頼データに含まれる前記保証データを取得し、取得した前記保証データに基づいて、前記処理の実行の要求を受け入れるか否かを判断する
ことを特徴とするネットワークシステム。
【請求項２】
前記保証データは、前記代替の依頼元の真性を保証する依頼元保証データを含む請求項１記載のネットワークシステム。
【請求項３】
前記保証データは、前記代替の対象である前記処理の真性を保証する依頼対象保証データを含む請求項１又は２記載のネットワークシステム。
【請求項４】
前記保証データは、公開鍵暗号方式における前記一の端末コンピュータ用秘密鍵にて暗号化し、さらに、公開鍵暗号方式における前記他の端末コンピュータ用公開鍵にて暗号化した暗号化データを含む請求項１〜３のいずれか１項に記載のネットワークシステム。
【請求項５】
前記他の端末コンピュータは、前記代替コンピュータから取得した前記暗号化データを、公開鍵暗号方式における前記他の端末コンピュータ用秘密鍵にて復号化し、さらに、公開鍵暗号方式における前記一の端末コンピュータ用公開鍵にて復号化して得られたデータに基づいて、前記処理の実行の要求を受け入れるか否かを判断する請求項４記載のネットワークシステム。
【請求項６】
前記代替コンピュータは、前記他の端末コンピュータが、前記処理の実行の要求を受け入れた場合、前記代替処理依頼データに含まれる代替処理プログラムを、前記他の端末コンピュータにて実行させるか否かを判定し、前記他の端末コンピュータにて実行させる場合には、前記代替処理プログラムを、前記他の端末コンピュータに転送する請求項１〜４のいずれか１項に記載のネットワークシステム。
【請求項７】
前記他の端末コンピュータは、前記処理の実行の要求を受け入れた場合、前記代替処理依頼データに含まれる代替処理プログラムを、当該他の端末コンピュータ自身が実行するか否かを決定するとともに、その決定結果を前記代替コンピュータに送信し、
前記代替コンピュータは、前記決定結果に基づいて、前記代替処理プログラムを、前記他の端末コンピュータにて実行させるか否かを判定する請求項６記載のネットワークシステム。
【請求項８】
前記保証データには、前記代替処理依頼データに含まれる代替処理プログラムから算出される当該代替処理プログラムの代表値が含まれ、
前記代替処理プログラムを前記代替コンピュータから受信した前記他の端末コンピュータは、前記代替処理プログラムから前記代表値を算出し、算出した代表値を、前記保証データに含まれる前記代表値と比較し、両者が一致すると、前記代替処理プログラムを実行する請求項６又は７記載のネットワークシステム。
【請求項９】
ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける前記一の端末コンピュータであって、
前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する手段と、
代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する手段と、
前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う手段と、
を備え、
前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれていることを特徴とする端末コンピュータ。
【請求項１０】
ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける第三の端末コンピュータであって、
前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、前記第三の端末コンピュータを用いて代替させるための代替処理プログラムを含む代替処理依頼データを、前記一の端末コンピュータから受信する手段と、
前記代替処理依頼データを受信すると、前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、当該代替処理依頼データに含まれ当該代替処理依頼データの真性を保証する保証データとともに、前記他の端末コンピュータに送信する送信手段と、
を備えていることを特徴とする代替コンピュータ。
【請求項１１】
ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける、前記他の端末コンピュータであって、
前記一の端末コンピュータとの間で行われる前記処理に関する第一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるための代替処理プログラムを用いた前記処理の実行の要求を、前記代替処理プログラムを含む代替処理依頼データの真性を保証する保証データとともに前記代替コンピュータから受信する手段と、
受信した前記保証データに基づいて、前記代替コンピュータからの前記処理の実行の要求を受け入れるか否かを判断する手段と、
を備えていることを特徴とする端末コンピュータ。
【請求項１２】
コンピュータを、請求項９記載の端末コンピュータとして機能させるためのコンピュータプログラム。
【請求項１３】
コンピュータを、請求項１０記載の代替コンピュータとして機能させるためのコンピュータプログラム。
【請求項１４】
コンピュータを、請求項１１記載の端末コンピュータとして機能させるためのコンピュータプログラム。
【請求項１５】
ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける前記処理の実行方法であって、
前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する判断ステップと、
代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する生成ステップと、
前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う依頼ステップと、
前記代替コンピュータが前記代替処理依頼データを受信する受信ステップと、
前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、前記代替コンピュータが前記他の端末コンピュータに送信する送信ステップと、
を含み、
前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれており、
前記他の端末コンピュータは、前記代替コンピュータから前記代替処理依頼データに含まれる前記保証データを取得し、取得した前記保証データに基づいて、前記処理の実行の要求を受け入れるか否かを判断する
ことを特徴とする処理の実行方法。
【請求項１６】
ネットワークを介して送信元コンピュータから送信先コンピュータに送信されるデータを暗号化した暗号化データを生成する暗号化装置であって、
暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化して中間データを生成する手段と、
前記中間データを、公開鍵暗号方式における送信先用公開鍵にて暗号化して前記暗号化データを生成する手段と、
を備えていることを特徴とする暗号化装置。
【請求項１７】
請求項１６に記載の暗号化装置にて生成された暗号化データを復号化する復号化装置であって、
前記暗号化データを、公開鍵暗号方式における送信先用秘密鍵で復号化して中間データを復号する手段と、
前記中間データを、公開鍵暗号方式における送信元用公開鍵にて復号化する手段と、
を備えていることを特徴とする復号化装置。
【請求項１８】
コンピュータを、請求項１６に記載の暗号化装置として機能させるためのコンピュータプログラム。
【請求項１９】
コンピュータを、請求項１７に記載の復号化装置として機能させるためのコンピュータプログラム。
【請求項２０】
ネットワークを介して送信元コンピュータから送信先コンピュータに送信されるデータを暗号化した暗号化データを生成する暗号化方法であって、
暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化して中間データを生成し、
前記中間データを、公開鍵暗号方式における送信先用公開鍵にて暗号化して前記暗号化データを生成する
ことを特徴とする暗号化方法。
【請求項２１】
請求項２０にて生成された暗号化データを復号化する復号化方法であって、
前記暗号化データを、公開鍵暗号方式における送信先用秘密鍵で復号化して中間データを復号し、
前記中間データを、公開鍵暗号方式における送信元用公開鍵にて復号化する
ことを特徴とする復号化方法。
【請求項２２】
コンピュータによって復号処理が行われるコンピュータ読み取り可能な暗号化データであって、
暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化した上で、公開鍵暗号方式における送信先用公開鍵にて二重に暗号化されていることを特徴とする暗号化データ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、代替処理が行えるネットワークシステム、端末コンピュータ、代替コンピュータ、コンピュータプログラム、及び処理実行方法、並びに、これらの実施に直接使用するのに適した暗号化装置、復号化装置、暗号化方法、復号化方法、及び暗号化データに関するものである。
【背景技術】
【０００２】
複数の端末コンピュータを有するネットワークシステムにおいては、一の端末コンピュータから他の端末コンピュータへのファイル転送処理のように、複数の端末コンピュータが通信を行って一つの処理を行うことがある。
【０００３】
一般に、ファイル転送処理のように複数の端末コンピュータが通信を行って実行すべき処理では、一の端末コンピュータによって実行されるコンピュータプログラム（処理オブジェクト）と、他の端末コンピュータによって実行されるコンピュータプログラム（処理オブジェクト）とが、互いに通信を行って協調しながら、それらのプログラムを実行することになる。
【０００４】
しかし、処理の当事者である複数の端末コンピュータが、常に、同時にネットワーク上に存在して直接通信可能であるとは限らず、いずれか一方の端末コンピュータが、ネットワークから離脱するなどして、複数の端末コンピュータが直接通信できず、前記処理を実行できないこともありえる。
【０００５】
ここで、一方の端末コンピュータがネットワークから離脱するときに、ある処理を、第三のコンピュータにて実行させる手段として、例えばモバイルエージェントを利用することが考えられる（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】本位田真一、“モバイルエージェントのためのソフトウェアプラットフォーム”，ＮＩＩ  Ｊｏｕｒｎａｌ  Ｎｏ．３、６７頁−７２頁、国立情報学研究所、２００１年１１月
【発明の概要】
【発明が解決しようとする課題】
【０００７】
モバイルエージェントを利用する場合、例えば、悪意のあるコンピュータプログラムが移動先のコンピュータで攻撃を行う可能性や、悪意のある移動先のコンピュータが移動してきたコンピュータプログラム中の秘密情報を詐取したり、移動してきたコンピュータプログラムを改ざんしたりする可能性がある。
【０００８】
上記の問題のうち、前者の問題は、ウィルス駆除ソフトの導入やＪａｖａ（登録商標）セキュリティなどで対処でき、後者の問題は、移動するコンピュータプログラム（モバイルエージェント）を暗号化し、暗号文のまま実行処理する手法で対処できる。
しかし、上記対処だけでは、特に、安全性や信頼性が重視される企業内システム等では十分と言えない。
【０００９】
そこで、本発明は、端末コンピュータがネットワークから離脱するなどして、複数の端末コンピュータが直接通信できない場合、それら端末コンピュータ間で行われる処理を第三者端末を用いて行っても信頼性を確保することができる新たな技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
［ネットワークシステムの発明］
（１）本発明は、ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムであって、前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する手段と、代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する手段と、前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う手段と、前記代替コンピュータが前記代替処理依頼データを受信する手段と、前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、前記代替コンピュータが前記他の端末コンピュータに送信する手段と、を備え、前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれており、前記他の端末コンピュータは、前記代替コンピュータから前記代替処理依頼データに含まれる前記保証データを取得し、取得した前記保証データに基づいて、前記処理の実行の要求を受け入れるか否かを判断することを特徴とするネットワークシステムである。
【００１１】
上記本発明によれば、一の端末コンピュータは、他の端末コンピュータとの間で行われる前記処理を、代替コンピュータを用いて代替させることができる。
しかも、代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれているため、他の端末コンピュータは、代替コンピュータから取得した前記保証データに基づいて、前記処理の実行の要求が正当なものであるかを判断した上で、当該要求受け入れるか否かを判断することができる。
【００１２】
（２）前記保証データは、前記代替の依頼元の真性を保証する依頼元保証データを含むのが好ましい。この場合、代替の依頼元の正当性を、前記他の端末コンピュータが判断することができる。
【００１３】
（３）前記保証データは、前記代替の対象である前記処理の真性を保証する依頼対象保証データを含むのが好ましい。この場合、代替の対象である前記処理の正当性を、前記他の端末コンピュータが判断することができる。
【００１４】
（４）前記保証データは、公開鍵暗号方式における前記一の端末コンピュータ用秘密鍵にて暗号化し、さらに、公開鍵暗号方式における前記他の端末コンピュータ用公開鍵にて暗号化した暗号化データを含むのが好ましい。このように二重で暗号化することにより、暗号化データにおける依頼元のなりすましを防止するとともに暗号化データの覗き見を防止することができる。
【００１５】
（５）前記他の端末コンピュータは、前記代替コンピュータから取得した前記暗号化データを、公開鍵暗号方式における前記他の端末コンピュータ用秘密鍵にて復号化し、さらに、公開鍵暗号方式における前記一の端末コンピュータ用公開鍵にて復号化して得られたデータに基づいて、前記処理の実行の要求を受け入れるか否かを判断するのが好ましい。この場合、前記他の端末コンピュータは、依頼元のなりすましの防止と覗き見を防止した暗号化データを復号して、前記処理の実行の要求を受け入れるか否かを精度良く判断することができる。
【００１６】
（６）前記代替コンピュータは、前記他の端末コンピュータが、前記処理の実行の要求を受け入れた場合、前記代替処理依頼データに含まれる代替処理プログラムを、前記他の端末コンピュータにて実行させるか否かを判定し、前記他の端末コンピュータにて実行させる場合には、前記代替処理プログラムを、前記他の端末コンピュータに転送するのが好ましい。この場合、他の端末コンピュータ上で前記処理を実行できる。
【００１７】
（７）前記他の端末コンピュータは、前記処理の実行の要求を受け入れた場合、前記代替処理依頼データに含まれる代替処理プログラムを、当該他の端末コンピュータ自身が実行するか否かを決定するとともに、その決定結果を前記代替コンピュータに送信し、前記代替コンピュータは、前記決定結果に基づいて、前記代替処理プログラムを、前記他の端末コンピュータにて実行させるか否かを判定するのが好ましい。この場合、代替コンピュータは、他の端末コンピュータの決定結果に基づいて、前記代替処理プログラムを、前記他の端末コンピュータにて実行させるか否かを判定することができる。
【００１８】
（８）前記保証データには、前記代替処理依頼データに含まれる代替処理プログラムから算出される当該代替処理プログラムの代表値が含まれ、前記代替処理プログラムを前記代替コンピュータから受信した前記他の端末コンピュータは、前記代替処理プログラムから前記代表値を算出し、算出した代表値を、前記保証データに含まれる前記代表値と比較し、両者が一致すると、前記代替処理プログラムを実行するのが好ましい。この場合、代替処理プログラムの改ざんを検出することが可能となる。
【００１９】
［依頼端末コンピュータの発明］
（９）他の観点からみた本発明は、ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける前記一の端末コンピュータであって、前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する手段と、代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する手段と、前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う手段と、を備え、前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれていることを特徴とする端末コンピュータである。この端末コンピュータでは、他の端末コンピュータとの間で行われる前記処理を、代替コンピュータを用いて代替させる代替処理の依頼を行うことができる。しかも、代替処理の依頼の際には、代替処理依頼データの真性を保証する保証データを、代替コンピュータに送信することができる。
【００２０】
［代替コンピュータの発明］
（１０）さらに他の観点からみた本発明は、ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける第三の端末コンピュータであって、前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、前記第三の端末コンピュータを用いて代替させるための代替処理プログラムを含む代替処理依頼データを、前記一の端末コンピュータから受信する手段と、前記代替処理依頼データを受信すると、前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、当該代替処理依頼データに含まれ当該代替処理依頼データの真性を保証する保証データとともに、前記他の端末コンピュータに送信する送信手段と、を備えていることを特徴とする代替コンピュータである。この代替コンピュータによれば、代替処理の依頼を受け付けると、代替処理依頼データの真性を保証する保証データとともに、前記処理の実行の要求を、他の端末コンピュータに送信することができる。
【００２１】
［処理の実行の要求を受け付ける端末コンピュータの発明］
（１１）さらに他の観点から見た本発明は、ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける、前記他の端末コンピュータであって、前記一の端末コンピュータとの間で行われる前期処理に関する第一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるための代替処理プログラムを用いた前記処理の実行の要求を、前記代替処理プログラムを含む代替処理依頼データの真性を保証する保証データとともに前記代替コンピュータから受信する手段と、受信した前記保証データに基づいて、前記代替コンピュータからの前記処理の実行の要求を受け入れるか否かを判断する手段と、を備えていることを特徴とする端末コンピュータである。この端末コンピュータによれば、前記保証データに基づいて、前期処理の実行の要求を受け入れるか否かを判断することができる。
【００２２】
［コンピュータプログラムの発明］
（１２）さらに他の観点からみた本発明は、コンピュータを、前記（９）記載の端末コンピュータとして機能させるためのコンピュータプログラムである。
【００２３】
（１３）さらに他の観点からみた本発明は、コンピュータを、前記（１０）記載の代替コンピュータとして機能させるためのコンピュータプログラムである。
【００２４】
（１４）さらに他の観点からみた本発明は、コンピュータを、前記（１１）記載の端末コンピュータとして機能させるためのコンピュータプログラムである。
【００２５】
［処理実行方法の発明］
（１５）さらに他の観点からみた本発明は、ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける前記処理の実行方法であって、前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する判断ステップと、代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する生成ステップと、前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う依頼ステップと、前記代替コンピュータが前記代替処理依頼データを受信する受信ステップと、前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、前記代替コンピュータが前記他の端末コンピュータに送信する送信ステップと、を含み、前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれており、前記他の端末コンピュータは、前記代替コンピュータから前記代替処理依頼データに含まれる前記保証データを取得し、取得した前記保証データに基づいて、前記処理の実行の要求を受け入れるか否かを判断することを特徴とする処理の実行方法である。
【００２６】
［暗号化装置の発明］
（１６）さらに他の観点からみた本発明は、ネットワークを介して送信元コンピュータから送信先コンピュータに送信されるデータを暗号化した暗号化データを生成する暗号化装置であって、暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化して中間データを生成する手段と、前記中間データを、公開鍵暗号方式における送信先用公開鍵にて暗号化して前記暗号化データを生成する手段と、を備えていることを特徴とする暗号化装置である。この暗号化装置によれば、送信元のなりすましの防止とともに当該データの覗き見の防止を保証する暗号化データを生成することができる。
【００２７】
［復号化装置の発明］
（１７）さらに他の観点からみた本発明は、前記暗号化装置にて生成された暗号化データを復号化する復号化装置であって、前記暗号化データを、公開鍵暗号方式における送信先用秘密鍵で復号化して中間データを復号する手段と、前記中間データを、公開鍵暗号方式における送信元用公開鍵にて復号化する手段と、を備えていることを特徴とする復号化装置である。この復号化装置によれば、上記暗号化データを復号することができる。
【００２８】
［コンピュータプログラムの発明］
（１８）さらに他の観点からみた本発明は、コンピュータを、前記（１６）記載の暗号化装置として機能させるためのコンピュータプログラムである。
【００２９】
（１９）さらに他の観点から見た本発明は、コンピュータを、前記（１７）記載の復号化装置として機能させるためのコンピュータプログラムである。
【００３０】
［暗号化方法の発明］
（２０）さらに他の観点から見た本発明は、ネットワークを介して送信元コンピュータから送信先コンピュータに送信されるデータを暗号化した暗号化データを生成する暗号化方法であって、暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化して中間データを生成し、前記中間データを、公開鍵暗号方式における送信先用公開鍵にて暗号化して前記暗号化データを生成することを特徴とする暗号化方法である。
【００３１】
［復号化方法の発明］
（２１）前記（２０）にて生成された暗号化データを復号化する復号化方法であって、前記暗号化データを、公開鍵暗号方式における送信先用秘密鍵で復号化して中間データを復号し、前記中間データを、公開鍵暗号方式における送信元用公開鍵にて復号化することを特徴とする復号化方法である。
【００３２】
［暗号化データの発明］
（２２）コンピュータによって復号処理が行われるコンピュータ読み取り可能な暗号化データであって、暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化した上で、公開鍵暗号方式における送信先用公開鍵にて二重に暗号化されていることを特徴とする暗号化データである。
【発明の効果】
【００３３】
上記（１）〜（１５）に記載の本発明によれば、複数の端末コンピュータ間で行われる処理を第三者端末により行っても信頼性を確保することができる。
【００３４】
また、上記（１６）〜（２２）に記載の本発明によれば、送信元のなりすましの防止とともに当該データの覗き見の防止が行える。
【図面の簡単な説明】
【００３５】
【図１】ネットワークシステムの構成図である。
【図２】エージェントの機能ブロック図である。
【図３】代替処理の依頼を示す図である。
【図４】依頼通知を示す図である。
【図５】依頼通知の正当性判断を示す図である。
【図６】依頼通知に対する返答を示す図である。
【図７】協調処理の実行を示す図である。
【図８】協調処理の実行を示す図である。
【図９】依頼エージェントの処理を示す図である。
【図１０】代替処理依頼データの生成処理を示す図である。
【図１１】代替処理依頼データのデータ構造を示す図である。
【図１２】複数のサブネットからなるネットワークシステムを示す図である。
【図１３】代替端末候補を探すための問い合わせパケット送信の様子を示す図である。
【図１４】問い合わせパケットに対する返答パケット送信の様子を示す図である。
【図１５】代替エージェントによる協調処理の実行要求処理を示す図である。
【図１６】代替エージェントの返答受信処理を示す図である。
【図１７】処理依頼通知データＭのデータ構造を示す図である。
【図１８】代替エージェントによる依頼ホップ処理を示す図である。
【図１９】処理依頼通知受信処理を示す図である。
【図２０】信頼性確認処理を示す図である。
【図２１】協調相手端末における処理オブジェクト実行処理を示す図である。
【図２２】暗号化方法及び復号化方法を示す図である。
【発明を実施するための形態】
【００３６】
以下、本発明の実施形態を図面に基づいて説明する。
図１は、複数の端末コンピュータ１１０，１２０，１３０及びサーバ１００を有するネットワークシステムを示している。
【００３７】
端末コンピュータ（以下、単に「端末」という）１１０，１２０，１３０は、ＯＳが搭載されたコンピュータによって構成されている。各端末１１０，１２０，１３０には、各種のアプリケーションプログラム（以下、単に「アプリケーション」という）１１２，１２２，１３２の動作基盤となるエージェントコンピュータプログラム（以下、単に「エージェント」という）１１１，１２１，１３１がインストールされている。これらのエージェントは、通常、各端末１１０，１２０，１３０に常駐している。
【００３８】
各端末のエージェント１１１，１２１，１３１は、他の端末のエージェント１１１，１２１，１３１と協調して動作することで、本発明に係るネットワークシステムにおける機能（代替処理）を実現する。
また、各端末のエージェント１１１，１２１，１３１は、端末に搭載された一又は複数のアプリケーション１１２，１２２，１３２が動作するために必要な機能を提供するフレームワークでもある。
【００３９】
エージェント１１１，１２１，１３１上で動作するアプリケーション１１２，１２２，１３２としては、ネットワーク内の情報の流れを追跡する情報追跡システム、ファイル転送システムなどが挙げられる。
これらのアプリケーションにおいては、一の端末に搭載されたアプリケーションが、他の端末に搭載された同種又は異種のアプリケーションと協調した協調処理を実行するために、エージェント１１１，１２１，１３１を介して、アプリケーション間通信が行われる。
【００４０】
なお、複数のアプリケーション間の協調処理を実行する場合、それぞれのアプリケーションは、当該アプリケーションが本来存在する端末において実行される必要はなく、アプリケーションのプログラムコード一部又は全部や、必要なパラメータ等を、代替処理プログラムとして他の端末に移動し、その代替処理プログラムを移動先の端末で実行させてもよい。
【００４１】
代替処理プログラムは、各端末のエージェント１１１，１２１，１３１によって提供される実行メモリ空間上において動作することができる。このように、エージェント１１１，１２１，１３１は、代替処理プログラムが動作するために必要な機能を提供するフレームワーク（ＭＡＦ；Mobile Agent Framework）でもある。
なお、代替処理プログラムを用いて実行される協調処理は、アプリケーション間の協調処理に限られず、エージェント１１１，１２１，１３１間の協調処理であってもよし、アプリケーション−エージェント間の協調処理であってもよい。
【００４２】
［エージェントの構成］
図２は、本発明に係るネットワークシステムにおける機能（代替処理）を実現するためのエージェント１１１，１２１，１３１の機能を示している。なお、図２に示す機能は、エージェントコンピュータプログラムが端末コンピュータ１１０，１２０，１３０において実行されることで発揮される機能である。
【００４３】
ここでの「代替処理」は、一の端末（以下、「依頼端末」という）が、他の端末（以下、「協調相手端末」という）との間で行う協調処理に関する前記依頼端末の機能を、ネットワーク上の第三の端末である代替コンピュータ（以下、「代替端末」という）に代替させることをいう。なお、ここでの「協調処理」とは、一の端末と他の端末とが互いに通信して行う各種の処理をいう。
【００４４】
ネットワークシステムにおいて、前記代替処理を実現するため、図２に示すように、各端末のエージェント１１１，１２１，１３１は、それぞれ、依頼機能部１、代替機能部２、実行要求受付機能部３を備えている。
【００４５】
依頼機能部１は、ネットワークから離脱等しようとする端末のエージェントが、代替端末のエージェントに代替処理を依頼するための依頼処理を行う。この依頼機能部１によって、エージェント１１１，１２１，１３１は、「依頼エージェント」として機能し、端末１１０，１２０，１３０は、「依頼端末」として機能することができる。
【００４６】
代替機能部２は、依頼エージェント（依頼端末）からの依頼を受けて、協調処理における本来の一方の当事者である依頼端末抜きでも、協調処理が行えるように、依頼端末の代替を行う。この代替機能部２によって、エージェント１１１，１２１，１３１は、「代替エージェント」として機能し、端末１１０，１２０，１３０は、「代替端末」として機能することができる。
【００４７】
実行要求受付機能部３は、依頼エージェントからの依頼に基づいて代替エージェントが行う協調処理実行要求を受け付けて、その実行要求を受け入れて協調処理を実行するか否かの判断を行う。この実行要求受付機能部３によって、エージェント１１１，１２１，１３１は、実行要求受付エージェントとして機能し、端末１１０，１２０，１３０は、「実行要求受付端末」として機能することができる。なお、実行要求を受け付けた場合、当該エージェントは、「協調相手エージェント」として機能し、当該端末は「協調相手端末」として機能することができる。
【００４８】
さらに、各エージェント１１１，１２１，１３１は、それぞれのエージェントに割り当てられた秘密鍵（公開鍵方式における秘密鍵）４を有している。秘密鍵４には、対応するエージェントのみがアクセス可能となっている。この秘密鍵４は、依頼エージェントから送信されるデータの暗号化・復号化に用いられる。この秘密鍵４の使用方法については、後述する。
【００４９】
［代替処理の概要］
以下では、図３〜図６に基づいて、代替処理の概要を説明する。なお、ここでは、図１における端末１１０が「依頼端末」であり、そのエージェント１１１が「依頼エージェント」として機能し、端末１２０が「協調相手端末」となるべき端末であり、そのエージェント１２１が「実行要求受付エージェント」（協調相手エージェント）として機能し、端末１３０が「代替端末」であり、そのエージェント１３１が「代替エージェント」として機能するものとする。
【００５０】
（代替処理の依頼）
図３では、協調処理（例えば、ファイル転送処理）の協調当事者である端末１１０，１２０のうちの一方の端末１２０は、何らかの事情で、ネットワークから離脱しているものとする。このため、端末１１０のアプリケーション１１２が、協調相手端末１２０のアプリケーション１２２に対して、ある協調処理Ａを実行しようとしても、実行できない状態にある。
【００５１】
この図３の状態において、端末１１０も、その後、ネットワークを離脱する予定になっているものとする。この場合、端末１１０は、端末１２０がネットワークに復帰するのを待つことができない。そこで、依頼端末１１０のエージェント１１１は、協調処理Ａの実行のための処理を、代替端末１３０に委ねるために、代替処理の依頼を、代替端末１３０のエージェント１３１に対して行う。
【００５２】
代替処理の依頼は、依頼エージェント１１１が、協調処理Ａを実行するための代替処理プログラムを含む代替処理依頼データを生成し、その代替処理依頼データを、代替エージェント１３１に送信することで行われる。
代替処理プログラムは、例えば協調処理Ａを端末１１０の立場で実行するための処理オブジェクトである。この処理オブジェクトにより、協調処理Ａに関して、端末１１０において実行されるべき処理を、他の端末を用いて実行させることができる。
【００５３】
代替処理依頼データには、代替処理プログラムとしての処理オブジェクトのほか、当該代替処理依頼データの真性（正当性）を保証する保証データが含まれている。なお、保証データの詳細については後述する。
【００５４】
（端末１２０への協調処理の実行要求）
その後、図４に示すように、依頼端末１１０が、ネットワークから離脱し、協調処理の協調相手端末となるべき端末１２０がネットワークに復帰したとする。すると、協調処理Ａに関する代替処理を依頼された代替端末１３０の代替エージェント１３１は、端末１２０がネットワークに復帰したタイミングで、端末１２０の実行要求受付エージェント１２１に対し、当該端末１２０を協調相手とする協調処理Ａの処理依頼があることを通知する。この通知によって、協調処理Ａの実行の要求が、代替エージェント１３１から実行要求受付エージェント１２１に送信されることになる。
【００５５】
（実行要求の正当性確認）
代替エージェント１３１からの通知には、代替エージェント１３１が依頼エージェント１１１から取得した保証データが含められている。図５に示すように、代替エージェント１３１から通知（協調処理Ａの実行要求）を受けた端末１２０の実行要求受付エージェント１２１は、保証データに基づいて、その通知（協調処理Ａの実行要求）の正当性を確認し、協調処理Ａの実行の要求を受け入れるか否か判断する。
【００５６】
ここで、端末１１０がネットワーク上に存在しており、端末１２０から端末１１０への通信が可能であれば、代替エージェント１３１からの通知（協調処理Ａの実行要求）の正当性を、端末１２０のエージェント１２１が、端末１１０のエージェント１１１に問い合わせることも可能ではある。
しかし、図４に示すように、端末１１０がネットワークから離脱している場合、そのような問い合わせを行うことはできない。
ところが、本実施形態では、代替エージェント１３１からの通知（協調処理Ａの実行要求）には、その通知が、依頼エージェント１１１からの依頼に基づくものであることを保証する保証データが含まれているため、上記のような問い合わせが行えなくても、実行要求受付エージェント１２１は、当該保証データに基づいて、通知の正当性を確認することができる。
【００５７】
（正当性確認の返答）
図６に示すように、端末１２０の実行要求受付エージェント１２１は、保証データに基づいて、通知の正当性を確認すると、代替エージェント１３１からの協調処理Ａの実行の要求を受け入れるものと判断し、その旨の返答を、代替エージェント１３１に対して行う。この返答には、依頼端末１１０から送られてきた協調処理Ａの処理オブジェクトの実行場所を、端末１２０とするか端末１３０とするかを示す実行場所情報が含まれる。
【００５８】
（協調処理Ａの実行（その１））
代替エージェント１３１は、実行要求の受け入れの返答を受け取り、その返答に含まれる実行場所情報が示す実行場所が代替端末１３０である場合、図７に示すように、代替エージェント１３１は、依頼エージェント１１１からの代替処理依頼データに含まれる協調処理Ａのための処理オブジェクトを、代替端末１３１上で実行し、協調相手端末１２０のアプリケーション１２２との間で、協調処理Ａを実行する。
【００５９】
（協調処理Ａの実行（その２））
また、実行要求受付エージェント１２１からの返答に含まれる実行場所情報が示す実行場所が協調相手端末１２０である場合、図８に示すように、代替エージェント１３１は、依頼エージェント１１１からの代替処理依頼データに含まれる協調処理Ａのための処理オブジェクトを、実行要求受付端末（協調相手端末）１２０に移動させる。
【００６０】
実行要求受付エージェント１２１は、先に取得した保証データを用いて、再度、処理の正当性を確認し、正当性を確認できた場合、実行要求受付エージェント（協調相手エージェント１２１）は、協調処理Ａのための処理オブジェクトと協調相手端末１２０上のアプリケーション１２２との間での協調処理Ａを実行させる。
この場合、協調処理のためのプログラムが、いずれも端末１２０上に存在するため、端末間通信（エージェント間通信）を行う必要がなく、端末１２０内でのデータのやりとりで協調処理を高速に実行できる。
なお、端末１２０に十分なメモリリソースがない場合には、「協調処理Ａの実行（その１）」で示したように、分散的に協調処理Ａを実行する方が有利である。
【００６１】
上記のようにして行われた協調処理の結果は、処理オブジェクトによって、依頼端末１１０に通知され、これにより依頼端末１１０は、通常の協調処理を実行したのと同様の結果を得ることができる。
【００６２】
［代替処理の詳細］
（依頼エージェントの処理）
図９は、依頼エージェント１１１（エージェントの依頼機能部１）による依頼処理の流れを示している。
まず、依頼エージェント１１１が、アプリケーション１１２からの協調処理Ａの実行依頼を受け付けると（ステップＳ１１）、その依頼エージェント１１１は、協調相手端末１２０がネットワーク上に存在するかどうかを判定するために、端末１２０の検索を行う（ステップＳ１２）。なお、協調処理の開始は、アプリケーション１１２が行うものである必要はなく、エージェント１１１が行うものであってもよい。
【００６３】
協調相手端末１２０がネットワーク上に存在すると判定された場合（ステップＳ１３）、エージェント１１１は、端末１１０のアプリケーション１１２と端末１２０のアプリケーション１２２との間で、通常の協調処理Ａを実行させる（ステップＳ１４）。
【００６４】
一方、協調相手端末１２０となるべき端末がネットワーク上に存在しないと判定された場合（ステップＳ１３）、依頼エージェント１１１は、代替処理の依頼をするべきか否かを判断する（ステップＳ１５）。この判断は、協調相手端末１２０が存在しない場合に代替処理を実行するか否かについて予めエージェント１１１に設定されている情報や、エージェント１１１が代替処理の要否をアプリケーション１１２に問い合わせることによって行われる。
【００６５】
ステップＳ１５において、代替処理を依頼しないと判定された場合、代替処理を依頼せずに終了するが、代替処理を依頼すると判定された場合、依頼エージェント１１１は、代替処理依頼データＲを生成する（ステップＳ１６）。この代替処理依頼データＲの生成方法については後述する。
なお、代替処理の依頼は、協調相手端末１２０がネットワーク上に存在する場合に行っても良い。例えば、自端末１１０の処理リソースが十分でない場合や処理リソース節約のために、他の端末に処理を代替してもらう目的で依頼を行っても良い。
【００６６】
その後、依頼エージェント１１１は、代替端末（代替エージェント）となる端末（エージェント）を決定し（ステップＳ１７）、生成した代替処理依頼データＲを、決定した代替端末（代替エージェント）へ送信する。なお、代替端末（代替エージェント）の決定方法についても後述する。
【００６７】
図１０は、ステップＳ１６における代替処理依頼データＲの生成処理の詳細を示している。代替処理依頼データＲは、図１１に示すように、ヘッダと、ペイロード（データ本体）とを有している。ヘッダには、協調処理Ａの協調相手識別子、代替処理依頼データＲの送信元識別子、代替処理の依頼元識別子が含まれる。また、ペイロードには、保証データと、処理オブジェクトとが含まれる。
【００６８】
前記協調相手識別子は、協調処理Ａにおける協調相手エージェント（実行要求受付エージェント）１２１が常駐する端末１２０を識別する識別子であり、ネットワークシステム内においてユニークなものである。
【００６９】
前記送信元識別子は、代替処理依頼データＲを送信したエージェントが常駐する端末を識別する識別子であり、ネットワーク内においてユニークなものである。
前記依頼元識別子は、協調処理の代替処理を他の端末に依頼した依頼エージェント１１１が常駐する端末を識別する識別子であり、ネットワーク内においてユニークなものである。
なお、代替端末が一つだけの場合、送信元と依頼元とは一致するが、代替処理依頼データＲが、複数の端末を経由して送信される場合、端末を経由する度に、送信元は経由端末に変更されるが、依頼元は代替処理の依頼元であるため、複数の端末を経由しても変更されることがない。
【００７０】
前記保証データは、暗号化データと、非暗号化データとを含む。前記暗号化データは、処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を含み、前記非暗号化データも、処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を含む。つまり、暗号化データの中身と非暗号化データの中身は同じであり、両データの違いは、暗号化の有無にある。
【００７１】
前記処理依頼元保証値としては、代替処理の依頼元のエージェント（依頼エージェント１１１）を特定するための識別子が設定される。この処理依頼元保証値は、本発明の依頼元保証データを構成する。
【００７２】
前記処理オブジェクト保証値は、依頼元からの処理オブジェクト（協調処理Ａのための処理オブジェクト）それ自体を保証するための値であり、本実施形態では、処理オブジェクト自体をハッシュ関数に適用して算出されたハッシュ値が採用されている。なお、処理オブジェクト保証値は、処理オブジェクト自体が改ざんされたときに、その改ざんを検出できるように、処理オブジェクト自体から算出される処理オブジェクトの代表値であればよく、その算出方法がハッシュ関数に限定されるものではない。この処理オブジェクト保証値は、本発明の依頼対象保証データを構成する。
【００７３】
また、前記処理内容値は、処理オブジェクトの処理内容がどのようなものであるか（例えば、ファイル追跡処理やファイル転送処理）を示す値であり、本発明の依頼対象保証データを構成する。
【００７４】
前記処理オブジェクトは、本来、依頼端末１１０で実行されるべき協調処理Ａ用コンピュータプログラムからなる。
【００７５】
図１１に示す代替処理依頼データＲを生成するため、依頼エージェント１１１は、まず、処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を取得する（ステップＳ２１）。
処理依頼元保証値としては、依頼エージェント１１１自身の識別子が設定される。処理オブジェクト保証値としては、処理オブジェクト自体をハッシュ関数に適用し算出されたハッシュ値が設定される。処理内容値としては、処理オブジェクトの処理内容を把握しているアプリケーション１１２から依頼エージェント１１１が取得して設定される。
【００７６】
また、依頼エージェント１１１は、取得した処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を、依頼エージェント１１１自身の秘密鍵４にて暗号化し、暗号化の中間データを生成する（ステップＳ２１）。
【００７７】
さらに、依頼エージェント１１１は、ステップＳ２１で生成された中間データを、処理依頼先端末１２０の公開鍵（公開鍵方式における公開鍵）にて暗号化し、暗号化データを生成する（ステップＳ２２）。この暗号化データが、図１１の保証データにおける暗号化データを構成する。
なお、各端末（エージェント）の公開鍵は、サーバ１００にて集中して保有・管理しておき、各端末のエージェントが、サーバ１００から必要な公開鍵を取得するようにしてもよいし、各端末のエージェントが、他の端末のエージェントの公開鍵を分散的に保有・管理しておき、各端末のエージェントが、自分自身又は他の端末のエージェントから必要な公開鍵を取得するようにしてもよい。
【００７８】
そして、依頼エージェント１１１は、暗号化されていない平文の処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を、図１１の保証データにおける非暗号化データとして、前記暗号化データとともに保証データを形成する。
この保証データは、協調処理Ａの処理オブジェクトに付加され、図１１の代替処理依頼データＲにおけるペイロードが形成される（ステップＳ２３）。このペイロードにヘッダを付加することで、図１１の代替処理依頼データＲの生成が完了する。
【００７９】
図１２は、ステップＳ１７における代替端末の決定方法を示している。依頼エージェント１１１は、代替端末を、通信コストに応じて決定する。ここで、通信コストは、例えば、自身が存在するサブネットからの距離とすることができる。図１２に示すように、ルータで接続された複数のサブネットＡ〜Ｂからなるネットワークの場合、サブネットを超える度に、通信コストが「１」増加するものとする。なお、ここでは、サブネットは、ルータで区切られた個々の領域をいう。
【００８０】
図１２の場合、端末Ａから端末Ｆへの通信コストは、端末Ｆの位置（サブネットＣ）が、端末Ａの属するサブネットＡから数えて２つ目であるため、「端末Ａ−端末Ｆ」の通信コストは「２」となる。
代替処理に関し、端末Ａが端末Ｄへの処理を他端末に依頼する場合、端末Ｄからみて最も通信コストの低い端末は、端末Ｃであるため、端末Ａは、端末Ｃに対して代替処理を依頼することになる。
【００８１】
図１３及び図１４は、上記のように代替端末を決定するための通信コスト比較対象となる代替端末候補を発見する方法を示している。図１３に示すように、代替端末を決定したい端末１１０のエージェント１１１は、エージェントが搭載された他の端末を発見するため、自身と同じ種類のエージェント（本実施形態に係るエージェント）１２１，１３１，１４１だけが応答する問い合わせパケットをマルチキャスト送信する。
【００８２】
図１４に示すように、この問い合わせパケットに対して、他の端末１２０，１３０，１４０のエージェント１２１，１３１，１４１は、返答パケットを端末１１０のエージェント１１１に返す。
ただし、エージェントが搭載されていない（又は何らかの理由によりエージェントが未起動の）端末１５０からは、返答パケットは返ってこない。
エージェント１１１は、他のエージェント１２１，１３１，１４１からの返答により、自身の周辺に、代替端末候補となる端末１２１，１３１，１４１（エージェントが搭載された端末）が存在することを把握することができる。
【００８３】
エージェント１１１は、代替端末候補１２１，１３１，１４１から、協調相手端末１２１を除き、通信コストが最も低い端末を代替端末として決定する。
なお、代替端末としてサーバ１００が決定されてもよい。
【００８４】
（代替エージェントの処理）
図１５及び図１６は代替エージェント１３１の処理を示している。図１３に示すように、代替エージェント１３１が、依頼エージェント１１１から送信された代替処理依頼データＲを受信すると（ステップＳ３１）、代替エージェント１３１は、協調相手端末（実行要求受付端末）１２０がネットワーク上でアクティブになるのを待つ（ステップＳ３２）。協調相手端末１２０がアクティブになっていることの検出は、協調相手端末１２０に対する定期的なポーリングなどによって行うことができる。
【００８５】
協調相手端末１２０がアクティブになると、代替エージェント１３１は、処理依頼通知データＭを、協調相手エージェント（実行要求受付エージェント）１２１に送信する（ステップＳ３３）。この処理依頼通知データＭの送信は、端末１２０を協調相手とする協調処理Ａの処理依頼があることの通知であり、このデータＭを受け取った実行要求受付エージェント１２は、協調処理Ａの実行の要求を受信したことになる。
【００８６】
処理依頼通知データＭは、図１７に示すデータ構造を有するものである。この処理依頼通知データのデータ構造は、代替処理依頼データＲ（図１１参照）から、処理オブジェクトを除いたものと等価であり、暗号化データ及び非暗号化データを含む保証データを有している。
【００８７】
処理依頼通知データＭは、代替エージェント１３１が依頼エージェント１１１から取得した代替処理依頼データＲから処理オブジェクトを削除することで生成される。
したがって、実行要求受付エージェント１２１は、処理依頼通知データＭを代替エージェント１３１から受信すると、依頼エージェント１１１が生成した保証データを取得することができる。
なお、本実施形態では、代替エージェント１３１は、保証データの送信と協調処理Ａの実行要求送信とを同時に行っているが、協調処理Ａの実行要求送信だけを行い、保証データは、実行要求を受信した実行要求受付エージェント１２１が、代替エージェント１３１からダウンロードするようにしてもよい。
【００８８】
代替エージェント１３１は、上記処理依頼通知データＭを送信すると、協調相手エージェント（実行要求受付エージェント）１２１からの返答を待つ（ステップＳ３４）。
【００８９】
図１６に示すように、代替エージェント１３１は、協調相手エージェント（実行要求受付エージェント）１２１から、処理依頼通知データ（協調処理Ａの実行要求）Ｍに対する返答を受信すると（ステップＳ４１）、その返答が、協調処理Ａの実行要求を受け入れるものであるか否かを判定する。
【００９０】
協調相手エージェント（実行要求受付エージェント）１２１からの返答が、協調処理Ａの実行要求を拒否するものである場合には何もせずに終了するが、協調処理Ａの実行要求を受け入れるものである場合には（ステップＳ４２）、処理オブジェクトを実行する場所の判定を行う（ステップＳ４３）。
処理オブジェクトを実行する場所の判定は、返答に含まれる実行場所情報に基づいて行われる。
【００９１】
前記実行場所情報が示す実行場所が、協調相手端末１２０である場合、代替エージェント１３１は、協調相手エージェント１２１に対して、処理オブジェクトを含む代替処理依頼データＭを転送する（ステップＳ４４）。
【００９２】
前記実行場所情報が示す実行場所が、代替端末１３０である場合、代替エージェント１３１は、代替端末１３０上で、処理オブジェクトを実行させ、協調相手端末１２０のアプリケーション１２２との間で、協調処理Ａを実行する（ステップＳ４５）。
【００９３】
図１８は、代替処理依頼データＲを受け取った代替エージェント１３１が、代替処理を完了できなかった場合に、他の端末に代替処理依頼データＲを転送して、当該他の端末に代替処理を委ねる依頼ホップ処理を示している。
代替エージェント１３１が未処理の代替処理依頼データＲを有している場合（ステップＳ５１）、当該代替処理を行う新たな代替端末を決定する（ステップＳ５２）。新たな代替端末の決定は、ステップＳ１７と同様に行えばよい。
【００９４】
代替エージェント１３１は、新たな代替端末を決定すると、代替処理依頼データＲを、新たな代替端末のエージェントに対して送信する。これにより、代替端末１３１が代替処理を実行できない場合でも、他の端末に代替処理を行わせることができる。
【００９５】
（実行要求受付エージェント（協調相手エージェント）の処理）
図１９〜図２１は、実行要求受付エージェント（協調相手エージェント）１２１における処理を示している。
図１９は、実行要求受付エージェント１２１が、処理依頼通知データＭを受信した場合の処理の流れを示している。実行要求受付エージェント１２１が、代替エージェント１３１から処理依頼通知データＭ（協調処理の実行要求）を受信すると（ステップＳ６１）、当該エージェント１２１は、処理依頼通知データＭに含まれる保証データに基づいて、その実行要求の正当性（信頼性）を確認する（ステップＳ６２）。この確認処理については後述する。
【００９６】
実行要求の正当性が確認できなかった場合、実行要求を受け入れない旨の返答のパケットを、代替エージェント１３１へ送信する（ステップＳ６５）。
また、実行要求の正当性が確認できなかった場合、その実行要求を送信してきた代替エージェント１３１（代替端末１３０）は、悪意ある端末である可能性がある。そこで、実行要求受付エージェント１２１は、そのようなエージェント１３１（端末１３０）を、サーバ１００へ通知する。
【００９７】
サーバ１００は、悪意ある端末の可能性がある端末（異常端末）のリストを、各エージェントからの通知によって生成する。異常端末リストは、エージェントが代替端末を決定する場合に、当該エージェントによって参照され、これにより、異常端末リストに含まれる端末を代替端末から排除することができる。
【００９８】
一方、実行要求受付エージェント１２１は、実行要求の正当性（信頼性）を確認すると、代替エージェント１３１からの協調処理Ａの実行の要求を受け入れるものと判断する（ステップＳ６３）。実行要求を受け入れる場合、実行要求受付エージェント１２１は、代替処理の対象である処理オブジェクトの実行場所を決定する（ステップＳ６４）。
【００９９】
処理オブジェクトの実行場所は、実行要求受付エージェント１２１が搭載されている端末１２０における処理リソース量に基づいて、実行要求受付エージェント１２１が判断できる。端末１２０が、携帯端末のように処理リソースが多くない場合には、代替端末１３０などの他の端末で処理オブジェクトを実行させた方が、端末１２０の負荷が軽減され好ましい。一方、端末１２０における処理リソースが十分にある場合には、端末１２０上で処理オブジェクト及びアプリケーション１２２を共に実行させた方が、ネットワーク通信が発生しないため、高速に処理でき好ましい。
【０１００】
実行要求受付エージェント１２１は、上記観点から処理オブジェクトの実行場所（実行端末）を決定し、決定した実行場所を示す実行場所情報を、実行要求を受け入れる旨の返答のパケットに含めて、代替エージェント１３１へ送信する（ステップＳ６５）。
【０１０１】
図２０は、ステップＳ６１における信頼性確認処理の詳細を示している。
実行要求受付エージェント１２１は、処理依頼通知データＭ内に含まれる保証データのうち、暗号化データ（暗号化された処理依頼元保証値、処理オブジェクト保証値、及び処理内容値）を、自身が有する秘密鍵４で復号化し、中間データを復元する（ステップＳ７１）。
さらに、上記中間データを、更に、依頼端末１１０の依頼エージェント１１１の公開鍵で復号化し、平文の処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を得る。
【０１０２】
復号化で得られた処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を、保証データ中の非暗号化データ（平文の処理依頼元保証値、処理オブジェクト保証値、及び処理内容値）と比較する。復号化した各値と非暗号化データの各値が一致していれば、処理依頼元保証値が示す端末が依頼元であること（依頼元の真性）や、代替対象である協調処理の真性を確認できる（ステップＳ７３）。仮に、両者が一致しない場合には、正当性はないものとみなされる。
【０１０３】
図１９のステップＳ６４において、処理オブジェクトの実行場所を代替端末１３０に決定した場合、端末１２０と端末１３０との間で協調処理が行われるが、処理オブジェクトの実行場所を協調相手端末１２０自身に決定した場合、協調相手エージェント１２１は、処理オブジェクトを代替エージェント１３１から取得する必要がある。
【０１０４】
図２１は、協調相手エージェント１２１は、処理オブジェクトを代替エージェント１３１から取得する処理を示している。
まず、協調相手エージェント１２１は、代替エージェント１３１から、処理オブジェクトを含む代替処理依頼データＲをダウンロードする（ステップＳ８１）。
【０１０５】
そして、協調相手エージェント１２１は、代替処理依頼データ内の処理オブジェクト保証値（暗号化データを復号したもの）と、取得した処理オブジェクトをハッシュ関数に適用して得られたハッシュ値とを比較する（ステップＳ８２）。両者が一致した場合、処理オブジェクトは、処理オブジェクト保証値と整合するものと判定する（ステップＳ８３）。両値に、整合性がある場合には、取得した処理オブジェクトを、協調相手端末１２０上で実行させ、協調相手端末１２０のアプリケーション１２２との協調処理Ａを行わせる（ステップＳ８４）。
【０１０６】
［データの暗号化・復号化］
さて、図１０及び図２０において説明した保証データの暗号化・復号化について、図２２に基づいて、補足説明をする。
本実施形態のように、第三者端末である代替端末（中継端末）を経由して、処理オブジェクト（データ）を送信する場合、悪意のある代替端末Ｘによる「依頼元なりすまし」「データの覗き見」を防止することが必要である。
本実施形態では、処理依頼元、処理オブジェクト、処理内容の保証を行うために、依頼元（送信元）Ａ自身の秘密鍵と、協調相手（送信先）Ｂの公開鍵とを用いて、二重に暗号化することにより、「依頼元なりすまし」「データの覗き見」を排除している。
【０１０７】
ここで、一般的な暗号化には、秘密鍵暗号方式による暗号化と、公開鍵暗号方式による暗号化とがある。秘密鍵暗号方式では、データの送信元と送信先とが共通の秘密鍵を持ち、暗号化に用いた秘密鍵で復号化も行う。秘密鍵暗号方式では、秘密鍵を持たない第三者は、復号を行えないため「依頼元なりすまし」「データの覗き見」は行えない。
【０１０８】
しかし、秘密鍵暗号方式では、送信元と送信先とが共通の秘密鍵を持つ必要があり、秘密鍵の配布の安全性の確保が困難であるという問題がある。
【０１０９】
一方、秘密鍵の配布が必要ない方式として、公開鍵暗号方式がある。公開鍵暗号方式では、公開される公開鍵と秘密にされる秘密鍵のペアが用いられ、暗号化したデータを特定の送信先に送信したい送信元は、送信先の公開鍵を用いて、データを暗号化し、送信先は暗号化データを秘密鍵にて復号する。
【０１１０】
公開鍵暗号方式では、公開鍵が公開されているため、不特定多数の端末が暗号化データを作成して、送信先に送信できるものの、復号は秘密鍵を持っている送信先しか行えないため、秘密鍵を配布することなく暗号化を行うことができる。
【０１１１】
しかし、一般的な公開鍵暗号方式では、秘密鍵は送信先しか保有していないため覗き見は防止されるものの、公開鍵が公開されているため、暗号化データを誰でも作成できるという問題がある。このため、悪意ある代替端末Ｘが、依頼元は端末Ａであると偽るとともに、保証データを改ざんして、端末Ｂに保証データを送信すると、端末Ｂは、その保証データが、真実、端末Ａから送信されたのか確認することが困難である。
つまり、一般的な公開鍵暗号方式は、覗き見は防止できるものの、依頼元（送信元）なりすましを防止することはできない。
【０１１２】
これに対し、本実施形態では、図２２にも示すように、保証データの暗号化データ（送信データ）は、送信元である端末Ａの秘密鍵で暗号化された上で、送信先である端末Ｂの公開鍵で二重に暗号化されている。
このため、本実施形態の暗号化データを復号するには、まず、送信先である端末Ｂの秘密鍵が必要である。端末Ｂの秘密鍵は、端末Ｂしか有していないため（端末Ｂにしかアクセスできないよう管理されているため）、第三者端末Ｘは、暗号化データを端末Ｂ秘密鍵で復号して、暗号化データを覗き見することができない。
【０１１３】
さらに、暗号化データ（中間データ）の復号には、端末Ｂの秘密鍵だけでなく、送信元である端末Ａの公開鍵も必要であるが、公開鍵は公開されているため、送信先である端末Ｂは当然に復号を完了することができる。
しかも、悪意ある第三者端末Ｘが、送信元Ａになりすまして、暗号化データを端末Ｂに送信するには、送信元端末Ａの秘密鍵で暗号化した中間データを生成する必要がある。
しかし、端末Ａの秘密鍵は端末Ａしか有していないため、悪意ある第三者端末Ｘは、送信元端末Ａの秘密鍵で暗号化した中間データを生成することができず、端末Ａになりすますことができない。
【０１１４】
仮に、悪意ある第三者端末Ｘが、端末Ａになりすましたデータを生成し、そのデータを自身の秘密鍵で暗号化して中間データを作成した場合、端末Ｂは、中間データを復号するときに、ヘッダの依頼元識別子を参照して、中間データ復号に用いる公開鍵を決定することになる。この場合、端末Ｂは端末Ａの公開鍵で中間データを復号することになるが、端末Ａの公開鍵では、端末Ｘの秘密鍵で暗号化されたデータの復号は行えない。復号が行えない場合、端末Ｂは、データのなりすましを検出することができる。
【０１１５】
このように、公開鍵暗号方式で用いられる公開鍵と秘密鍵とを用いて、二重の暗号化を行うことにより、秘密鍵暗号方式と同様に、依頼元なりすまし防止及びデータの覗き見防止を行うことができる。しかも、秘密鍵暗号方式のように秘密鍵の配布が必要ないため、安全性に優れている。
【０１１６】
なお、上記の暗号化・復号化は、各端末１１０，１２０，１３０のエージェント１１１，１２１，１３１が有する機能であるため、各端末１１０，１２０，１３０は暗号化装置ないし復号化装置ということができる。
【０１１７】
本発明に関して、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１１８】
１  依頼機能部
２  代替機能部
３  実行要求受付機能部
１１０  端末コンピュータ
１１１  エージェント
１１２  アプリケーション
１２０  端末コンピュータ
１２１  エージェント
１２２  アプリケーション
１３０  端末コンピュータ
１３１  エージェント
１３２  アプリケーション
【図１】
2010182222.tif 000003
【図２】
2010182222.tif 000004
【図３】
2010182222.tif 000005
【図４】
2010182222.tif 000006
【図５】
2010182222.tif 000007
【図６】
2010182222.tif 000008
【図７】
2010182222.tif 000009
【図８】
2010182222.tif 000010
【図９】
2010182222.tif 000011
【図１０】
2010182222.tif 000012
【図１１】
2010182222.tif 000013
【図１２】
2010182222.tif 000014
【図１３】
2010182222.tif 000015
【図１４】
2010182222.tif 000016
【図１５】
2010182222.tif 000017
【図１６】
2010182222.tif 000018
【図１７】
2010182222.tif 000019
【図１８】
2010182222.tif 000020
【図１９】
2010182222.tif 000021
【図２０】
2010182222.tif 000022
【図２１】
2010182222.tif 000023
【図２２】
2010182222.tif 000024