(57)【要約】【課題】  演算能力が低い小型端末が暗号化処理又は復号化処理を必要とする場合に、当該小型端末の負荷を低減することができ、かつ上記暗号化処理または復号化処理をスムーズに行うことができるサーバ装置、端末装置、情報通信システム及び情報通信方法を提供すること。【解決手段】  家庭内サーバ３１は、暗号化された映像データの暗号鍵及び初期ベクタを、ネットワークを介して接続された小型端末３２から受信し、当該暗号鍵及び初期ベクタを基に、上記暗号化されたデータの復号化に必要な復号化バイナリデータを生成して、上記小型端末３２へ送信する。小型端末３２は、当該復号化バイナリデータを前記暗号化されたデータに適用して、当該映像データを復号化する。【選択図】  図１６
2005244662.tif 000002
【特許請求の範囲】
【請求項１】
暗号化されたデータの暗号鍵を、ネットワークを介して接続された端末装置から受信する第１の受信手段と、
前記第１の受信手段により受信した前記暗号鍵を基に、前記暗号化されたデータの復号化に必要な復号化バイナリデータを生成する生成手段と、
前記生成手段により生成した復号化バイナリデータを前記暗号化されたデータに適用して前記端末装置に復号化させるために、当該復号化バイナリデータを前記端末装置へ送信する送信手段と
を具備することを特徴とするサーバ装置。
【請求項２】
請求項１に記載のサーバ装置であって、
前記暗号化されたデータの暗号化方式情報を前記端末装置から受信する第２の受信手段と、
前記第２の受信手段により受信した暗号方式における前記復号化バイナリデータを生成するためのプログラムを保持しているか否かを判断する判断手段と、
前記判断手段により前記プログラムを保持していないと判断した場合に、当該プログラムを前記端末装置から受信する第３の受信手段と
を更に具備することを特徴とするサーバ装置。
【請求項３】
請求項１に記載のサーバ装置であって、
前記端末装置以外の機器へ前記復号化バイナリデータが送信されることを規制する規制手段を更に具備することを特徴とするサーバ装置。
【請求項４】
請求項３に記載のサーバ装置であって、
前記端末装置のみと接続可能な有線ネットワークを介して前記端末装置と通信を行うことを特徴とするサーバ装置。
【請求項５】
請求項３に記載のサーバ装置であって、
前記生成手段により生成した復号化バイナリデータ、送信元である当該サーバ装置のアドレス及び送信先である前記端末装置のアドレスを暗号化する暗号化手段と、
前記端末装置の受信権限を認証する認証手段と
を更に具備することを特徴とするサーバ装置。
【請求項６】
データを暗号化するための暗号鍵を、ネットワークを介して接続された端末装置から受信する第１の受信手段と、
前記第１の受信手段により受信した前記暗号鍵を基に、前記データの暗号化に必要な暗号化バイナリデータを生成する生成手段と、
前記生成手段により生成した暗号化バイナリデータを前記データに適用して前記端末装置に暗号化させるために、当該暗号化バイナリデータを前記端末装置へ送信する送信手段と
を具備することを特徴とするサーバ装置。
【請求項７】
暗号化されたデータの暗号鍵を、ネットワークを介して接続されたサーバ装置へ送信する送信手段と、
前記サーバ装置から、当該サーバ装置が前記暗号鍵を基に生成した復号化バイナリデータを受信する受信手段と、
前記受信手段により受信した復号化バイナリデータを前記暗号化されたデータに適用することにより、当該暗号化されたデータを復号化する復号化手段と
を具備することを特徴とする端末装置。
【請求項８】
データを暗号化するための暗号鍵を、ネットワークを介して接続されたサーバ装置へ送信する送信手段と、
前記サーバ装置から、当該サーバ装置が前記暗号鍵を基に生成した暗号化バイナリデータを受信する受信手段と、
前記受信手段により受信した暗号化バイナリデータを前記データに適用することにより、当該データを暗号化する暗号化手段と
を具備することを特徴とする端末装置。
【請求項９】
暗号化されたデータの暗号鍵を受信する第１の受信手段と、前記第１の受信手段により受信した前記暗号鍵を基に、前記暗号化されたデータの復号化に必要な復号化バイナリデータを生成する生成手段と、前記生成手段により生成した復号化バイナリデータを送信する第１の送信手段とを有するサーバ装置と、
前記暗号鍵を、ネットワークを介して接続された前記サーバ装置へ送信する第２の送信手段と、前記サーバ装置から、当該サーバ装置が前記生成手段により生成した前記復号化バイナリデータを受信する第２の受信手段と、前記第２の受信手段により受信した復号化バイナリデータを前記暗号化されたデータに適用することにより、当該暗号化されたデータを復号化する復号化手段とを有する端末装置と
を具備することを特徴とする情報通信システム。
【請求項１０】
データを暗号化するための暗号鍵を受信する第１の受信手段と、前記第１の受信手段により受信した前記暗号鍵を基に、前記データの暗号化に必要な暗号化バイナリデータを生成する生成手段と、前記生成した暗号化バイナリデータを送信する第１の送信手段とを有するサーバ装置と、
前記暗号鍵を、ネットワークを介して接続された前記サーバ装置へ送信する送信手段と、前記サーバ装置から、当該サーバ装置が前記生成手段により生成した前記暗号化バイナリデータを受信する第２の受信手段と、前記第２の受信手段により受信した暗号化バイナリデータを前記データに適用することにより、当該データを暗号化する暗号化手段とを有する端末装置と
を具備することを特徴とする情報通信システム。
【請求項１１】
暗号化されたデータの暗号鍵を、ネットワークを介して接続された端末装置から受信するステップと、
前記受信した前記暗号鍵を基に、前記暗号化されたデータの復号化に必要な復号化バイナリデータを生成するステップと、
前記生成した復号化バイナリデータを前記暗号化されたデータに適用して前記端末装置に復号化させるために、当該復号化バイナリデータを前記端末装置へ送信するステップと
を具備することを特徴とする情報通信方法。
【請求項１２】
データを暗号化するための暗号鍵を、ネットワークを介して接続された端末装置から受信するステップと、
前記受信した前記暗号鍵を基に、前記データの暗号化に必要な暗号化バイナリデータを生成するステップと、
前記生成した暗号化バイナリデータを前記データに適用して前記端末装置に暗号化させるために、当該暗号化バイナリデータを前記端末装置へ送信するステップと
を具備することを特徴とする情報通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化されたデータの復号化処理及びデータの暗号化処理を分散して処理することができるサーバ装置、端末装置、情報通信システム及び情報通信方法に関する。
【背景技術】
【０００２】
現代社会において、情報通信データの暗号化は、プライバシーの保護や、データの改ざん、データの無断複製を防ぐために必要不可欠なものとなっている。また、それに伴い、暗号化に使用するアルゴリズムも計算負荷が大きなものとなっている。例えば携帯型の画像再生装置のような小型端末で外部サーバからのストリーミングにより映像を視聴する際に、ストリーミングデータが暗号化されている場合には、当該暗号化されたデータの復号化処理と、圧縮された映像の復号化処理が必要となるが、小型端末の処理能力は家庭用のＰＣ（Personal Computer）に比べて低いため、処理能力不足が生じる可能性がある。
【０００３】
そこで、上記外部サーバと上記端末との間に中継装置を設け、当該中継装置が上記端末の代わりに、プロキシとして外部サーバとデータの送受信及び上記暗号化／復号化処理を行うという技術が存在する（例えば、特許文献１参照）。
【特許文献１】特開２００２−８２９０７号公報（段落[００２１]等）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のような技術においては、上記中継装置が暗号化／復号化処理以外にも様々な処理を行っているため、上記小型端末及び上記外部サーバとの通信に用いるプロトコルが異なる場合には、それぞれ異なる処理が必要となり、当該処理に対応するコストが増大するという問題が生じる。また、上記中継装置が全ての暗号化／復号化処理を行っていては処理に時間を要してしまい、結果的に上記外部サーバ及び端末との通信効率を下げてしまうこととなる。
【０００５】
以上のような事情に鑑み、本発明の目的は、演算能力が低い小型端末が暗号化処理又は復号化処理を必要とする場合に、当該小型端末の負荷を低減することができ、かつ上記暗号化処理または復号化処理をスムーズに行うことができるサーバ装置、端末装置、情報通信システム及び情報通信方法を提供することにある。
【課題を解決するための手段】
【０００６】
上述の課題を解決するため、本発明の主たる観点に係るサーバ装置は、暗号化されたデータの暗号鍵を、ネットワークを介して接続された端末装置から受信する第１の受信手段と、前記第１の受信手段により受信した前記暗号鍵を基に、前記暗号化されたデータの復号化に必要な復号化バイナリデータを生成する生成手段と、前記生成手段により生成した復号化バイナリデータを前記暗号化されたデータに適用して前記端末装置に復号化させるために、当該復号化バイナリデータを前記端末装置へ送信する送信手段とを具備することを特徴としている。
【０００７】
ここで上記暗号化されたデータとは、例えばストリーミング配信局から上記端末装置がストリーミングにより受信する映像データや、上記端末装置が他の通信機器へ送信する電子メールデータ等をいう。
【０００８】
上記復号化バイナリデータとは、上記暗号鍵に所定の演算処理を施すことにより生成されるデータであり、復号化処理においてはその生成のための演算処理に大きな負荷がかかるデータである。
【０００９】
また、上記端末装置とは、例えば映像や音響を再生したり、電子メールを他の機器に送信したりすることが可能なＰＤＡ（Personal Digital Assistance）、携帯電話等の携帯型の小型端末、ＰＣ（Personal Computer）等の端末装置をいう。
【００１０】
この構成によれば、上記暗号鍵を基に復号化バイナリデータを生成して上記端末装置に送信することで、当該端末装置において必要な復号化処理のうち負荷のかかる一部の処理を代行して処理することができるため、上記端末装置の復号化処理における負荷を軽減させることができる。特に上記端末装置が例えば処理能力の低い小型端末である場合には、当該負荷軽減の効果は顕著となる。
【００１１】
また、復号化処理に必要な全ての処理を行うわけではないため、上記端末のいわゆるプロキシサーバとして全ての処理を行う場合に比べて、上記端末装置との通信効率を低下させることもなくなる。
【００１２】
上記サーバ装置は、前記暗号化されたデータの暗号化方式情報を前記端末装置から受信する第２の受信手段と、前記第２の受信手段により受信した暗号化方式における前記復号化バイナリデータを生成するためのプログラムを保持しているか否かを判断する判断手段と、前記判断手段により前記プログラムを保持していないと判断した場合に、当該プログラムを前記端末装置から受信する第３の受信手段とを更に具備するようにしてもよい。
【００１３】
ここで上記暗号化方式情報とは、例えば公開鍵方式、対象鍵方式といった暗号化方式や、ＲＳＡ（登録商標）、ＤＥＳ、Ｒｉｊｎｄａｅｌ、ＰＧＰ（登録商標）、Ｓ／ＭＩＭＥ（Secure Multipurpose Internet Mail Extensions）といった暗号化アルゴリズムの仕様をいう。
【００１４】
これにより、上記サーバ装置が上記復号化バイナリデータを生成するためのプログラムを保持していない場合でも、上記端末装置から当該プログラムを受信して上記復号化バイナリデータを生成することができるため、上記端末装置において使用される任意の暗号化アルゴリズムに対応することができる。
【００１５】
上記サーバ装置は、前記端末装置以外の機器へ前記復号化バイナリデータが送信されることを規制する規制手段を更に具備するようにしてもよい。これにより、上記端末装置以外の機器へ上記復号化バイナリデータが漏洩することを防ぐことができ、上記サーバ装置と上記端末装置間の通信の保護を図ることができる。
【００１６】
上記サーバ装置は、前記端末装置のみと接続可能な有線ネットワークを介して前記端末装置と通信を行うようにしてもよい。これにより、上記サーバ装置と上記端末装置間でやり取りされるデータが他の機器へ漏洩することを物理的に防ぐことができる。
【００１７】
上記サーバ装置は、前記生成手段により生成した復号化バイナリデータ、送信元である当該サーバ装置のアドレス及び送信先である前記端末装置のアドレスを暗号化する暗号化手段と、前記端末装置の受信権限を認証する認証手段とを更に具備するようにしてもよい。これにより、上記復号化バイナリデータと上記サーバ装置及び前記端末装置のアドレスを暗号化し、かつ前記端末装置を認証しているため、両装置間の通信の保護をより強化することができる。
【００１８】
本発明の他の観点に係るサーバ装置は、データを暗号化するための暗号鍵を、ネットワークを介して接続された端末装置から受信する第１の受信手段と、前記第１の受信手段により受信した前記暗号鍵を基に、前記データの暗号化に必要な暗号化バイナリデータを生成する生成手段と、前記生成手段により生成した暗号化バイナリデータを前記データに適用して前記端末装置に暗号化させるために、当該暗号化バイナリデータを前記端末装置へ送信する送信手段とを具備することを特徴としている。
【００１９】
この構成によれば、上記暗号鍵を基に暗号化バイナリデータを生成して上記端末装置に送信することで、当該端末装置において必要な暗号化処理のうち負荷のかかる一部の処理を代行して処理することができるため、上記端末装置の暗号化処理における負荷を軽減させることができる。
【００２０】
本発明の主たる観点に係る端末装置は、暗号化されたデータの暗号鍵を、ネットワークを介して接続されたサーバ装置へ送信する送信手段と、前記サーバ装置から、当該サーバ装置が前記暗号鍵を基に生成した復号化バイナリデータを受信する受信手段と、前記受信手段により受信した復号化バイナリデータを前記暗号化されたデータに適用することにより、当該暗号化されたデータを復号化する復号化手段とを具備することを特徴としている。
【００２１】
この構成により、上記暗号鍵を上記サーバ装置に送信し、当該暗号鍵を基に当該サーバ装置が生成した復号化バイナリデータを上記暗号化されたデータに適用することで当該データを復号化することができるため、復号化処理において負担のかかる処理の一部を上記サーバ装置に代行させることで、復号化処理の負荷を軽減することができる。
【００２２】
また、上記端末装置は、上記サーバ装置が上記復号化バイナリデータを生成するためのプログラムを保持していない場合に、当該プログラムを上記サーバ装置に送信する手段を具備してもよい。これにより、上記サーバ装置が上記復号化バイナリデータを生成するためのプログラムを保持していない場合でも、当該プログラムを上記サーバ装置に送信して使用させることで、任意のアルゴリズムについて、復号化処理の一部を上記サーバ装置に代行させることが可能となる。
【００２３】
本発明の他の観点に係る端末装置は、データを暗号化するための暗号鍵を、ネットワークを介して接続されたサーバ装置へ送信する送信手段と、前記サーバ装置から、当該サーバ装置が前記暗号鍵を基に生成した暗号化バイナリデータを受信する受信手段と、前記受信手段により受信した暗号化バイナリデータを前記データに適用することにより、当該データを暗号化する暗号化手段とを具備することを特徴としている。
【００２４】
この構成により、暗号化処理において負担のかかる処理の一部を上記サーバ装置に代行させることで、暗号化処理の負荷を軽減することができる。
【００２５】
また、上記端末装置は、上記サーバ装置が上記暗号化バイナリデータを生成するためのプログラムを保持していない場合に、当該プログラムを上記サーバ装置に送信する手段を具備してもよい。これにより、上記サーバ装置が上記暗号化バイナリデータを生成するためのプログラムを保持していない場合でも、当該プログラムを上記サーバ装置に送信して使用させることで、任意のアルゴリズムについて、暗号化処理の一部を上記サーバ装置に代行させることが可能となる。
【００２６】
本発明の主たる観点に係る情報通信システムは、暗号化されたデータの暗号鍵を受信する第１の受信手段と、前記第１の受信手段により受信した前記暗号鍵を基に、前記暗号化されたデータの復号化に必要な復号化バイナリデータを生成する生成手段と、前記生成手段により生成した復号化バイナリデータを送信する第１の送信手段とを有するサーバ装置と、前記暗号鍵を、ネットワークを介して接続された前記サーバ装置へ送信する第２の送信手段と、前記サーバ装置から、当該サーバ装置が前記生成手段により生成した前記復号化バイナリデータを受信する第２の受信手段と、前記第２の受信手段により受信した復号化バイナリデータを前記暗号化されたデータに適用することにより、当該暗号化されたデータを復号化する復号化手段とを有する端末装置とを具備することを特徴としている。
【００２７】
この構成により、上記端末装置において扱うデータの復号化処理を、当該端末装置と上記サーバ装置とで分割し、当該復号化処理において負荷のかかる処理を当該サーバ装置に行わせることで、上記端末装置の暗号化処理における負荷を軽減させることができ、当該復号化処理を迅速かつスムーズに行うことができる。
【００２８】
本発明の他の観点に係る情報通信システムは、データを暗号化するための暗号鍵を受信する第１の受信手段と、前記第１の受信手段により受信した前記暗号鍵を基に、前記データの暗号化に必要な暗号化バイナリデータを生成する生成手段と、前記生成した暗号化バイナリデータを送信する第１の送信手段とを有するサーバ装置と、前記暗号鍵を、ネットワークを介して接続された前記サーバ装置へ送信する送信手段と、前記サーバ装置から、当該サーバ装置が前記生成手段により生成した前記暗号化バイナリデータを受信する第２の受信手段と、前記第２の受信手段により受信した暗号化バイナリデータを前記データに適用することにより、当該データを暗号化する暗号化手段とを有する端末装置とを具備することを特徴としている。
【００２９】
この構成により、上記端末装置において扱うデータの暗号化処理を、当該端末装置と上記サーバ装置とで分割し、当該暗号化処理において負荷のかかる処理を当該サーバ装置に行わせることで、上記端末装置の暗号化処理における負荷を軽減させることができ、当該暗号化処理を迅速かつスムーズに行うことができる。
【００３０】
本発明の主たる観点に係る情報通信方法は、暗号化されたデータの暗号鍵を、ネットワークを介して接続された端末装置から受信するステップと、前記受信した前記暗号鍵を基に、前記暗号化されたデータの復号化に必要な復号化バイナリデータを生成するステップと、前記生成した復号化バイナリデータを前記暗号化されたデータに適用して前記端末装置に復号化させるために、当該復号化バイナリデータを前記端末装置へ送信するステップとを具備することを特徴としている。
【００３１】
また、本発明の他の観点に係る情報通信方法は、データを暗号化するための暗号鍵を、ネットワークを介して接続された端末装置から受信するステップと、前記受信した前記暗号鍵を基に、前記データの暗号化に必要な暗号化バイナリデータを生成するステップと、前記生成した暗号化バイナリデータを前記データに適用して前記端末装置に暗号化させるために、当該暗号化バイナリデータを前記端末装置へ送信するステップとを具備することを特徴としている。
【発明の効果】
【００３２】
本発明によれば、演算能力が低い小型端末が暗号化処理又は復号化処理必要とする場合に、当該小型端末の負荷を低減することができ、かつ上記暗号化処理または復号化処理をスムーズに行うことができる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の実施の形態を図面に基づき説明する。
【００３４】
まず、本発明の一実施形態において前提となるネットワークシステムについて説明する。図１は、この発明のネットワークシステムの一例を示し、ネットワーク９を介して複数の情報処理装置１、２、３、４が接続されたものである。情報処理装置１、２、３、４は、例えば各種のＡＶ（Audio and Visual）機器やポータブル機器等である。
【００３５】
情報処理装置１について示すと、情報処理装置１は、コンピュータ機能部として情報処理コントローラ１１を備える。情報処理コントローラ１１は、メインプロセッサ２１−１、サブプロセッサ２３−１，２３−２，２３−３、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）２５−１及びＤＣ（ディスクコントローラ）２７−１を有する。
【００３６】
メインプロセッサ２１−１は、サブプロセッサ２３−１，２３−２，２３−３によるプログラム実行（データ処理）のスケジュール管理と、情報処理コントローラ１１（情報処理装置１）の全般的な管理とを行う。ただし、メインプロセッサ２１−１内で管理のためのプログラム以外のプログラムが動作するように構成することもできる。その場合には、メインプロセッサ２１−１はサブプロセッサとしても機能することになる。メインプロセッサ２１−１は、ＬＳ（ローカルストレージ）２２−１を有する。
【００３７】
サブプロセッサは、１つでもよいが、望ましくは複数とする。本例は、複数の場合である。各サブプロセッサ２３−１，２３−２，２３−３は、メインプロセッサ２１−１の制御によって並列的かつ独立にプログラムを実行し、データを処理する。更に、場合によってメインプロセッサ２１−１内のプログラムがサブプロセッサ２３−１，２３−２，２３−３内のプログラムと連携して動作するように構成することもできる。後述する機能プログラムもメインプロセッサ２１−１内で動作するプログラムである。各サブプロセッサ２３−１，２３−２，２３−３も、ＬＳ（ローカルストレージ）２４−１，２４−２，２４−３を有する。
【００３８】
ＤＭＡＣ２５−１は、情報処理コントローラ１１に接続されたＤＲＡＭ（ダイナミックＲＡＭ）などからなるメインメモリ２６−１に格納されているプログラム及びデータにアクセスするものであり、ＤＣ２７−１は、情報処理コントローラ１１に接続された外部記録部２８−１，２８−２にアクセスするものである。
【００３９】
外部記録部２８−１，２８−２は、固定ディスク（ハードディスク）でも、リムーバブルディスクでもよく、また、ＭＯ，ＣＤ±ＲＷ，ＤＶＤ±ＲＷなどの光ディスク、メモリディスク、ＳＲＡＭ（スタティックＲＡＭ）、ＲＯＭなど、各種のものを用いることができる。したがって、ＤＣ２７−１は、ディスクコントローラと称するが、外部記録部コントローラである。図１の例のように、情報処理コントローラ１１に対して外部記録部２８を複数接続できるように、情報処理コントローラ１１を構成することができる。
【００４０】
メインプロセッサ２１−１、各サブプロセッサ２３−１，２３−２，２３−３、ＤＭＡＣ２５−１及びＤＣ２７−１は、バス２９−１によって接続される。
【００４１】
情報処理コントローラ１１には、当該の情報処理コントローラ１１を備える情報処理装置１を、ネットワーク全体を通して一意的に識別できる識別子が、情報処理装置ＩＤとして割り当てられる。
【００４２】
メインプロセッサ２１−１及び各サブプロセッサ２３−１，２３−２，２３−３に対しても同様に、それぞれを特定できる識別子が、メインプロセッサＩＤ及びサブプロセッサＩＤとして割り当てられる。
【００４３】
情報処理コントローラ１１は、ワンチップＩＣ（集積回路）として構成することが望ましい。他の情報処理装置２、３、４も、上記と同様に構成される。ここで、図１において親番号が同一であるユニットは枝番号が異なっていても、特に断りがない限り同じ働きをするものとする。また、以下の説明において枝番号が省略されている場合には、枝番号の違いにいる差異を生じないものとする。
【００４４】
上述したように、１つの情報処理コントローラ内の各サブプロセッサ２３は、独立にプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ２６内の同一領域に対して同時に読み出しまたは書き込みを行った場合には、データの不整合を生じ得る。そこで、サブプロセッサ２３からメインメモリ２６へのアクセスは、以下のような手順によって行う。
【００４５】
図２（Ａ）に示すように、メインメモリ２６は、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、Ｆ／Ｅビット、サブプロセッサＩＤ及びＬＳアドレス（ローカルストレージアドレス）を含むものとされる。また、各メモリロケーションには、後述のアクセスキーも割り振られる。Ｆ／Ｅビットは、以下のように定義される。
【００４６】
Ｆ／Ｅビット＝０は、サブプロセッサ２３によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、読み出し不可であることを示す。また、Ｆ／Ｅビット＝０は、当該メモリロケーションにデータ書き込み可能であることを示し、書き込み後に１に設定される。
【００４７】
Ｆ／Ｅビット＝１は、当該メモリロケーションのデータがサブプロセッサ２３によって読み出されておらず、未処理の最新データであることを示す。当該メモリロケーションのデータは読み出し可能であり、サブプロセッサ２３によって読み出された後に０に設定される。また、Ｆ／Ｅビット＝１は、当該メモリロケーションがデータ書き込み不可であることを示す。
【００４８】
更に、上記Ｆ／Ｅビット＝０（読み出し不可／書き込み可）の状態において、当該メモリロケーションについて読み出し予約を設定することは可能である。Ｆ／Ｅビット＝０のメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ２３は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報として当該サブプロセッサ２３のサブプロセッサＩＤ及びＬＳアドレスを書き込む。
【００４９】
その後、データ書き込み側のサブプロセッサ２３によって、読み出し予約されたメモリロケーションにデータが書き込まれ、Ｆ／Ｅビット＝１（読み出し可／書き込み不可）に設定されたとき、予め読み出し予約情報として追加セグメントに書き込まれたサブプロセッサＩＤ及びＬＳアドレスに読み出される。
【００５０】
複数のサブプロセッサによってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出し／書き込みを制御することによって、前段階の処理を行うサブプロセッサ２３が、処理済みのデータをメインメモリ２６上の所定のアドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ２３が前処理後のデータを読み出すことが可能となる。
【００５１】
図２（Ｂ）に示すように、各サブプロセッサ２３内のＬＳ２４も、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含むものとされる。
【００５２】
サブプロセッサ２３がメインメモリ２６内のデータを自身のＬＳ２４のメモリロケーションに読み出すときには、対応するビジービットを１に設定して予約する。ビジービットが１であるメモリロケーションには、他のデータは格納することができない。ＬＳ２４のメモリロケーションに読み出し後、ビジービットは０になり、任意の目的に使用できるようになる。
【００５３】
図２（Ａ）に示すように、更に、各情報処理コントローラと接続されたメインメモリ２６には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ２６内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ２３に割り当てられ、そのサブプロセッサが排他的に使用することができる。すなわち、各々のサブプロセッサ２３は、自身に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行うことはできない。メインメモリ２６は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。
【００５４】
更に、メインメモリ２６の排他的な制御を実現するために、図２（Ｃ）に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ内のＳＲＡＭ等の比較的高速のメモリに格納され、ＤＭＡＣ２５と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサＩＤ、サブプロセッサキー及びキーマスクが含まれる。
【００５５】
サブプロセッサ２３がメインメモリ２６を使用する際のプロセスは、以下の通りである。まず、サブプロセッサ２３はＤＭＡＣ２５に、読み出しまたは書き込みのコマンドを出力する。このコマンドには、自身のサブプロセッサＩＤと、使用要求先であるメインメモリ２６のアドレスが含まれる。
【００５６】
ＤＭＡＣ２５は、このコマンドを実行する前に、キー管理テーブルを参照して、使用要求元のサブプロセッサのサブプロセッサキーを調べる。次に、ＤＭＡＣ２５は、調べた使用要求元のサブプロセッサキーと、使用要求先であるメインメモリ２６内の図２（Ａ）に示したメモリロケーションに割り振られたアクセスキーとを比較して、２つのキーが一致した場合にのみ、上記のコマンドを実行する。
【００５７】
図２（Ｃ）に示したキー管理テーブル上のキーマスクは、その任意のビットが１になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが０または１になることができる。例えば、サブプロセッサキーが１０１０であるとする。通常、このサブプロセッサキーによって１０１０のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが０００１に設定されている場合には、キーマスクのビットが１に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキー１０１０によってアクセスキーが１０１０または１０１１のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
【００５８】
以上のようにして、メインメモリ２６のサンドボックスの排他性が実現される。すなわち、１つの情報処理コントローラ内の複数のサブプロセッサによってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサと、後段階の処理を行うサブプロセッサのみが、メインメモリ２６の所定アドレスにアクセスできるようになり、データを保護することができる。
【００５９】
例えば、以下のように使用することが考えられる。まず、情報処理装置の起動直後においては、キーマスクの値は全てゼロである。メインプロセッサ内のプログラムが実行され、サブプロセッサ内のプログラムと連携動作するものとする。第１のサブプロセッサにより出力された処理結果データを一旦メインメモリに格納し、第２のサブプロセッサに入力したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサからもアクセス可能である必要がある。そのような場合に、メインプロセッサ内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサによる多段階的な処理を可能にする。
【００６０】
より具体的には、他の情報処理装置からのデータ→第１のサブプロセッサによる処理→第１のメインメモリ領域→第２のサブプロセッサによる処理→第２のメインメモリ領域、という手順で多段階処理が行われるときには、
第１のサブプロセッサのサブプロセッサキー：０１００、
第１のメインメモリ領域のアクセスキー    ：０１００、
第２のサブプロセッサのサブプロセッサキー：０１０１、
第２のメインメモリ領域のアクセスキー    ：０１０１
というような設定のままだと、第２のサブプロセッサは第１のメインメモリ領域にアクセスすることができない。そこで、第２のサブプロセッサのキーマスクを０００１にすることにより、第２のサブプロセッサによる第１のメインメモリ領域へのアクセスを可能にすることができる。
【００６１】
図１のネットワークシステムでは、情報処理装置１、２、３、４間での分散処理のために、情報処理装置１、２、３、４間でソフトウェアセルが伝送される。すなわち、ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、コマンド、プログラム及びデータを含むソフトウェアセルを生成し、ネットワーク９を介して他の情報処理装置に送信することによって、処理を分散することができる。
【００６２】
図３に、ソフトウェアセルの構成の一例を示す。この例のソフトウェアセルは、全体として、送信元ＩＤ、送信先ＩＤ、応答先ＩＤ、セルインターフェース、ＤＭＡコマンド、プログラム及びデータによって構成される。
【００６３】
送信元ＩＤには、ソフトウェアセルの送信元である情報処理装置のネットワークアドレス及び当該情報処理装置の情報処理装置ＩＤ、更に、その情報処理装置内の情報処理コントローラが備えるメインプロセッサ２１及び各サブプロセッサ２３の識別子（メインプロセッサＩＤ及びサブプロセッサＩＤ）が含まれる。
【００６４】
送信先ＩＤ及び応答先ＩＤには、それぞれ、ソフトウェアセルの送信先である情報処理装置、及びソフトウェアセルの実行結果の応答先である情報処理装置についての、同じ情報が含まれる。
【００６５】
セルインターフェースは、ソフトウェアセルの利用に必要な情報であり、グローバルＩＤ、必要なサブプロセッサの情報、サンドボックスサイズ及び前回のソフトウェアセルＩＤから構成される。
【００６６】
グローバルＩＤは、ネットワーク全体を通して当該ソフトウェアセルを一意的に識別できるものであり、送信元ＩＤ及びソフトウェアセルの作成または送信の日時（日付及び時刻）に基づいて作成される。
【００６７】
必要なサブプロセッサの情報は、当該ソフトウェアセルの実行に必要なサブプロセッサの数を設定する。サンドボックスサイズは、当該ソフトウェアセルの実行に必要なメインメモリ２６内及びサブプロセッサ２３のＬＳ２４内のメモリ量を設定する。前回のソフトウェアセルＩＤは、ストリーミングデータなどのシーケンシャルな実行を要求する１グループのソフトウェアセル内の、前回のソフトウェアセルの識別子である。
【００６８】
ソフトウェアセルの実行セクションは、ＤＭＡコマンド、プログラム及びデータから構成される。ＤＭＡコマンドには、プログラムの起動に必要な一連のＤＭＡコマンドが含まれ、プログラムには、サブプロセッサ２３によって実行されるサブプロセッサプログラムが含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによって処理されるデータである。
【００６９】
更に、ＤＭＡコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コマンド、ステータス要求コマンド、及びステータス返信コマンドが含まれる。
【００７０】
ロードコマンドは、メインメモリ２６内の情報をサブプロセッサ２３内のＬＳ２４にロードするコマンドであり、ロードコマンド自体のほかに、メインメモリアドレス、サブプロセッサＩＤ及びＬＳアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリ２６内の所定領域のアドレスを示す。サブプロセッサＩＤ及びＬＳアドレスは、情報のロード先であるサブプロセッサ２３の識別子及びＬＳ２４のアドレスを示す。
【００７１】
キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンド自体のほかに、サブプロセッサＩＤ及びプログラムカウンタを含む。サブプロセッサＩＤは、キック対象のサブプロセッサ２３を識別し、プログラムカウンタは、プログラム実行用プログラムカウンタのためのアドレスを与える。
【００７２】
機能プログラム実行コマンドは、後述のように、ある情報処理装置が他の情報処理装置に対して、機能プログラムの実行を要求するコマンドである。機能プログラム実行コマンドを受信した情報処理装置内の情報処理コントローラは、後述の機能プログラムＩＤによって、起動すべき機能プログラムを識別する。
【００７３】
ステータス要求コマンドは、送信先ＩＤで示される情報処理装置の現在の動作状態（状況）に関する装置情報を、応答先ＩＤで示される情報処理装置宛に送信要求するコマンドである。機能プログラムについては後述するが、図６に示す情報処理コントローラのメインメモリ２６が記憶するソフトウェアの構成図において機能プログラムにカテゴライズされるプログラムである。機能プログラムは、メインメモリ２６にロードされ、メインプロセッサ２１により実行される。
【００７４】
ステータス返信コマンドは、上記のステータス要求コマンドを受信した情報処理装置が、自身の装置情報を当該ステータス要求コマンドに含まれる応答先ＩＤで示される情報処理装置に応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納する。
【００７５】
図４に、ＤＭＡコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示す。
【００７６】
情報処理装置ＩＤは、情報処理コントローラを備える情報処理装置を識別するための識別子であり、ステータス返信コマンドを送信する情報処理装置のＩＤを示す。情報処理装置ＩＤは、電源投入時、その情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１によって、電源投入時の日時、情報処理装置のネットワークアドレス及び情報処理装置内の情報処理コントローラに含まれるサブプロセッサ２３の数などに基づいて生成される。
【００７７】
情報処理装置種別ＩＤには、当該情報処理装置の特徴を表す値が含まれる。情報処理装置の特徴とは、例えば、後述の家庭内サーバ、ＰＤＡ（Personal Digital Assistants）等の小型端末である。また、情報処理装置種別ＩＤは、データ通信、映像音声再生等、情報処理装置の機能を表すものであってもよい。情報処理装置の特徴や機能を表す値は予め決定されているものとし、情報処理装置種別ＩＤを読み出すことにより、当該情報処理装置の特徴や機能を把握することが可能である。
【００７８】
ＭＳ（マスター／スレーブ）ステータスは、後述のように情報処理装置がマスター装置またはスレーブ装置のいずれで動作しているかを表すもので、これが０に設定されている場合にはマスター装置として動作していることを示し、１に設定されている場合にはスレーブ装置として動作していることを示す。
【００７９】
メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサ２１の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ２１で現在動作している全てのプログラムについての、メインプロセッサ２１での使用率を表す。メインプロセッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値で、例えばプロセッサ処理能力評価のための単位であるＭＩＰＳを単位として算出され、または単位時間あたりのプロセッサ使用時間に基づいて算出される。後述のサブプロセッサ使用率についても同様である。
【００８０】
サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサ２３の数を表す。サブプロセッサＩＤは、当該の情報処理コントローラ内の各サブプロセッサ２３を識別するための識別子である。
【００８１】
サブプロセッサステータスは、各サブプロセッサ２３の状態を表すものであり、ｕｎｕｓｅｄ，ｒｅｓｅｒｖｅｄ，ｂｕｓｙなどの状態がある。ｕｎｕｓｅｄは、当該のサブプロセッサが現在使用されてなく、使用の予約もされていないことを示す。ｒｅｓｅｒｖｅｄは、現在は使用されていないが、予約されている状態を示す。ｂｕｓｙは、現在使用中であることを示す。
【００８２】
サブプロセッサ使用率は、当該のサブプロセッサで現在実行している、または当該のサブプロセッサに実行が予約されているプログラムについての、当該サブプロセッサでの使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスがｂｕｓｙである場合には、現在の使用率を示し、サブプロセッサステータスがｒｅｓｅｒｖｅｄである場合には、後に使用される予定の推定使用率を示す。
【００８３】
サブプロセッサＩＤ、サブプロセッサステータス及びサブプロセッサ使用率は、１つのサブプロセッサ２３に対して一組設定され、１つの情報処理コントローラ内のサブプロセッサ２３に対応する組数が設定される。
【００８４】
メインメモリ総容量及びメインメモリ使用量は、それぞれ、当該の情報処理コントローラに接続されているメインメモリ２６の総容量及び現在使用中の容量を表す。
【００８５】
外部記録部数は、当該の情報処理コントローラに接続されている外部記録部２８の数を表す。外部記録部ＩＤは、当該の情報処理コントローラに接続されている外部記録部２８を一意的に識別する情報である。外部記録部種別ＩＤは、当該の外部記録部の種類（例えば、ハードディスク、ＣＤ±ＲＷ、ＤＶＤ±ＲＷ、メモリディスク、ＳＲＡＭ、ＲＯＭなど）を表す。
【００８６】
外部記録部総容量及び外部記録部使用量は、それぞれ、外部記録部ＩＤによって識別される外部記録部２８の総容量及び現在使用中の容量を表す。
【００８７】
外部記録部ＩＤ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量は、１つの外部記録部２８に対して一組設定されるものであり、当該の情報処理コントローラに接続されている外部記録部２８の数の組数だけ設定される。すなわち、１つの情報処理コントローラに複数の外部記録部が接続されている場合、各々の外部記録部には異なる外部記録部ＩＤが割り当てられ、外部記録部種別ＩＤ、外部記録部総容量及び外部記録部使用量も別々に管理される。
【００８８】
ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、以上のような構成のソフトウェアセルを生成し、ネットワーク９を介して他の情報処理装置及び当該装置内の情報処理コントローラに送信する。送信元の情報処理装置、送信先の情報処理装置、応答先の情報処理装置、及び各装置内の情報処理コントローラは、それぞれ、上記の送信元ＩＤ、送信先ＩＤ及び応答先ＩＤによって識別される。
【００８９】
ソフトウェアセルを受信した情報処理装置内の情報処理コントローラに含まれるメインプロセッサ２１は、そのソフトウェアセルをメインメモリ２６に格納する。更に、送信先のメインプロセッサ２１は、ソフトウェアセルを読み出し、それに含まれるＤＭＡコマンドを処理する。具体的には、送信先のメインプロセッサ２１は、まず、ロードコマンドを実行する。これによって、ロードコマンドで指示されたメインメモリアドレスから、ロードコマンドに含まれるサブプロセッサＩＤ及びＬＳアドレスで特定されるサブプロセッサ内のＬＳ２４の所定領域に、情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに含まれるサブプロセッサプログラムまたはデータ、あるいはその他の指示されたデータである。
【００９０】
次に、メインプロセッサ２１は、キックコマンドを、これに含まれるサブプロセッサＩＤで指示されたサブプロセッサに、同様にキックコマンドに含まれるプログラムカウンタと共に出力する。指示されたサブプロセッサは、そのキックコマンド及びプログラムカウンタに従って、サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ２６に格納した後、実行を完了したことをメインプロセッサ２１に通知する。
【００９１】
なお、送信先の情報処理装置内の情報処理コントローラにおいてソフトウェアセルを実行するプロセッサはサブプロセッサ２３に限定されるものではなく、メインプロセッサ２１がソフトウェアセルに含まれる機能プログラムなどのメインメモリ用プログラムを実行するように指定することも可能である。
【００９２】
この場合には、送信元の情報処理装置は、送信先の情報処理装置宛に、サブプロセッサプログラムの代わりに、メインメモリ用プログラム及びそのメインメモリ用プログラムによって処理されるデータを含み、ＤＭＡコマンドがロードコマンドであるソフトウェアセルを送信し、メインメモリ２６にメインメモリ用プログラム及びそれによって処理されるデータを記憶させる。次に、送信元の情報処理装置は、送信先の情報処理装置宛に、送信先の情報処理装置内の情報処理コントローラについてのメインプロセッサＩＤ、メインメモリアドレス、メインメモリ用プログラムを識別するための後述の機能プログラムＩＤなどの識別子、及びプログラムカウンタを含み、ＤＭＡコマンドがキックコマンドまたは機能プログラム実行コマンドであるソフトウェアセルを送信して、メインプロセッサ２１に当該メインメモリ用プログラムを実行させる。
【００９３】
以上のように、この発明のネットワークシステムでは、送信元の情報処理装置は、サブプロセッサプログラムまたはメインメモリ用プログラムをソフトウェアセルによって送信先の情報処理装置に送信するとともに、当該サブプロセッサプログラムを送信先の情報処理装置内の情報処理コントローラに含まれるサブプロセッサ２３にロードさせ、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置に実行させることができる。
【００９４】
送信先の情報処理装置内の情報処理コントローラでは、受信したソフトウェアセルに含まれるプログラムがサブプロセッサプログラムである場合には、当該サブプロセッサプログラムを指定されたサブプロセッサにロードさせる。そして、ソフトウェアセルに含まれるサブプロセッサプログラムまたはメインメモリ用プログラムを実行させる。したがって、ユーザが送信先の情報処理装置を操作しなくても自動的に、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置内の情報処理コントローラに実行させることができる。
【００９５】
このようにして情報処理装置は、自装置内の情報処理コントローラがサブプロセッサプログラムまたは機能プログラムなどのメインメモリ用プログラムを有していない場合には、ネットワークに接続された他の情報処理装置からそれらを取得することができる。更に、各サブプロセッサ間ではＤＭＡ方式によりデータ転送を行い、また上述したサンドボックスを使用することによって、１つの情報処理コントローラ内でデータを多段階に処理する必要がある場合でも、高速かつ高セキュリティに処理を実行することができる。
【００９６】
ソフトウェアセルの使用による分散処理の結果、図５の上段に示すようにネットワーク９に接続されている複数の情報処理装置１、２、３、４は、図５の下段に示すように、仮想的な１台の情報処理装置７として動作する。ただし、そのためには、以下のような構成によって、以下のような処理が実行される必要がある。
【００９７】
図６に、個々の情報処理コントローラのメインメモリ２６が記憶するソフトウェアの構成を示す。これらのソフトウェア（プログラム）は、情報処理装置に電源が投入される前においては、当該の情報処理コントローラに接続される外部記録部２８に記録されているものである。各プログラムは、機能または特徴によって、制御プログラム、機能プログラム及びデバイスドライバにカテゴライズされる。
【００９８】
制御プログラムは、各情報処理コントローラが同じものを備え、各情報処理コントローラのメインプロセッサ２１が実行するもので、後述のＭＳ（マスター／スレーブ）マネージャ及び能力交換プログラムを含む。
【００９９】
機能プログラムは、メインプロセッサ２１が実行するもので、記録用、再生用、素材検索用など、情報処理コントローラごとに情報処理装置に応じたものが備えられる。
【０１００】
デバイスドライバは、情報処理コントローラ（情報処理装置）の入出力（送受信）用で、放送受信、モニタ出力、ビットストリーム入出力、ネットワーク入出力など、情報処理コントローラ毎に情報処理装置に応じたものが備えられる。
【０１０１】
情報処理装置が物理的にネットワーク９に接続された状態で、情報処理装置に主電源が投入され、情報処理装置が電気的・機能的にもネットワーク９に接続されると、その情報処理装置の情報処理コントローラのメインプロセッサ２１は、制御プログラムに属する各プログラム、及びデバイスドライバに属する各プログラムを、メインメモリ２６にロードする。
【０１０２】
ロード手順としては、メインプロセッサ２１は、まず、ＤＣ２７に読み出し命令を実行させることによって、外部記録部２８からプログラムを読み出し、次に、ＤＭＡＣ２５に書き込み命令を実行させることによって、そのプログラムをメインメモリ２６に書き込む。
【０１０３】
機能プログラムに属する各プログラムについては、必要なときに必要なプログラムだけをロードするように構成してもよく、または、他のカテゴリに属するプログラムと同様に、主電源投入直後に各プログラムをロードするように構成してもよい。
【０１０４】
ここで、機能プログラムに属する各プログラムは、ネットワークに接続された全ての情報処理装置の外部記録部２８に記録されている必要はなく、いずれか１つの情報処理装置の外部記録部２８に記録されていれば、前述の方法によって他の情報処理装置からロードすることができるので、結果的に図５の下段に示すように、仮想的な１台の情報処理装置７として機能プログラムを実行することができる。
【０１０５】
ここで前述したようにメインプロセッサ２１によって処理される機能プログラムは、サブプロセッサ２３によって処理されるサブプロセッサプログラムと連携動作する場合がある。そこでメインプロセッサ２１が外部記録部２８から機能プログラムを読み出し、メインメモリ２６に書き込む際に対象となる機能プログラムと連携動作するサブプロセッサプログラムが存在する場合には、当該サブプロセッサプログラムも併せて同じメインメモリ２６に書き込むものとする。この場合、連携動作するサブプロセッサプログラムは１個である場合もあるし、複数個であることもあり得る。複数個である場合には、全ての連携動作するサブプロセッサプログラムをメインメモリ２６に書き込むことになる。メインメモリ２６に書き込まれたサブプロセッサプログラムはその後、サブプロセッサ２３内のＬＳ２４に書き込まれ、メインプロセッサ２１によって処理される機能プログラムと連携動作する。
【０１０６】
図３のソフトウェアセルに示したように、機能プログラムには、プログラムごとにプログラムを一意的に識別できる識別子が、機能プログラムＩＤとして割り当てられる。機能プログラムＩＤは、機能プログラムの作成の段階で、作成日時や情報処理装置ＩＤなどから決定される。
【０１０７】
そしてサブプロセッサプログラムにもサブプロセッサプログラムＩＤが割り当てられ、これによりサブプロセッサプログラムを一意的に識別可能である。割り当てられるサブプロセッサプログラムＩＤは、連携動作する相手となる機能プログラムの機能プログラムＩＤと関連性のある識別子、例えば機能プログラムＩＤを親番号とした上で最後尾に枝番号を付加させたもの等であることもあり得るし、連携動作する相手となる機能プログラムの機能プログラムＩＤとは関連性のない識別子であってもよい。いずれにしても機能プログラムとサブプロセッサプログラムが連携動作する場合には、両者とも相手の識別子であるプログラムＩＤを自プログラム内に互いに記憶しておく必要がある。機能プログラムが複数個のサブプロセッサプログラムと連携動作する場合にも、当該機能プログラムは複数個ある全てのサブプロセッサプログラムのサブプロセッサプログラムＩＤを記憶しておくことになる。
【０１０８】
メインプロセッサ２１は、自身が動作する情報処理装置の装置情報（動作状態に関する情報）を格納するための領域をメインメモリ２６に確保し、当該情報を自装置の装置情報テーブルとして記録する。ここでの装置情報は、図４に示した情報処理装置ＩＤ以下の各情報である。
【０１０９】
上述したネットワークシステムでは、ある情報処理装置への主電源投入時、その情報処理装置の情報処理コントローラのメインプロセッサ２１は、マスター／スレーブマネージャ（以下、ＭＳマネージャ）をメインメモリ２６にロードし、実行する。
【０１１０】
ＭＳマネージャは、自身が動作する情報処理装置がネットワーク９に接続されていることを検知すると、同じネットワーク９に接続されている他の情報処理装置の存在を確認する。ここでの「接続」または「存在」は、上述したように、情報処理装置が物理的にネットワーク９に接続されているだけでなく、電気的・機能的にもネットワーク９に接続されていることを示す。また、自身が動作する情報処理装置を自装置、他の情報処理装置を他装置と称する。当該装置も、当該情報処理装置を示すものとする。
【０１１１】
ＭＳマネージャが同じネットワーク９に接続されている他の情報処理装置の存在を確認する方法を以下に示す。
【０１１２】
ＭＳマネージャは、ＤＭＡコマンドがステータス要求コマンドであり、送信元ＩＤ及び応答先ＩＤが当該情報処理装置で、送信先ＩＤを特定しないソフトウェアセルを生成して、当該情報処理装置が接続されたネットワーク上に送信して、ネットワーク接続確認用のタイマーを設定する。タイマーのタイムアウト時間は、例えば１０分とされる。
【０１１３】
当該ネットワークシステム上に他の情報処理装置が接続されている場合、その他装置は、上記ステータス要求コマンドのソフトウェアセルを受信し、上記応答先ＩＤで特定されるステータス要求コマンドを発行した情報処理装置に対して、ＤＭＡコマンドがステータス返信コマンドであり、かつデータとして自身（その他装置）の装置情報を含むソフトウェアセルを送信する。このステータス返信コマンドのソフトウェアセルには、少なくとも当該他装置を特定する情報（情報処理装置ＩＤ、メインプロセッサに関する情報、サブプロセッサに関する情報など）及び当該他装置のＭＳステータスが含まれる。
【０１１４】
ステータス要求コマンドを発行した情報処理装置のＭＳマネージャは、上記ネットワーク接続確認用のタイマーがタイムアウトするまで、当該ネットワーク上の他装置から送信されるステータス返信コマンドのソフトウェアセルの受信を監視する。その結果、ＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信された場合には、自装置の装置情報テーブルにおけるＭＳステータスを１に設定する。これによって、当該装置は、スレーブ装置となる。
【０１１５】
一方、上記ネットワーク接続確認用のタイマーがタイムアウトするまでの間にステータス返信コマンドが全く受信されなかった場合、またはＭＳステータス＝０（マスター装置）を示すステータス返信コマンドが受信されなかった場合には、自装置の装置情報テーブルにおけるＭＳステータスを０に設定する。これによって、当該装置は、マスター装置となる。
【０１１６】
すなわち、いずれの装置もネットワーク９に接続されていない状態、またはネットワーク９上にマスター装置が存在しない状態において、新たな情報処理装置がネットワーク９に接続されると、当該装置は自動的にマスター装置として設定される。一方、ネットワーク９上に既にマスター装置が存在する状態において、新たな情報処理装置がネットワーク９に接続されると、当該装置は自動的にスレーブ装置として設定される。
【０１１７】
マスター装置及びスレーブ装置のいずれについても、ＭＳマネージャは、定期的にステータス要求コマンドをネットワーク９上の他装置に送信してステータス情報を照会することにより、他装置の状況を監視する。その結果、ネットワーク９に接続されている情報処理装置の主電源が遮断され、またはネットワーク９から情報処理装置が切り離されることにより、予め判定用に設定された所定期間内に特定の他装置からステータス返信コマンドが返信されなかった場合や、ネットワーク９に新たな情報処理装置が接続された場合など、ネットワーク９の接続状態に変化があった場合には、その情報を後述の能力交換プログラムに通知する。
【０１１８】
メインプロセッサ２１は、ＭＳマネージャから、ネットワーク９上の他装置の照会及び自装置のＭＳステータスの設定完了の通知を受けると、能力交換プログラムを実行する。
【０１１９】
能力交換プログラムは、自装置がマスター装置である場合には、ネットワーク９に接続されている全ての他装置の装置情報、すなわち各スレーブ装置の装置情報を取得する。他装置の装置情報の取得は、上述したように、ＤＭＡコマンドがステータス要求コマンドであるソフトウェアセルを生成して他装置に送信し、その後、ＤＭＡコマンドがステータス返信コマンドで、かつデータとして他装置の装置情報を含むソフトウェアセルを他装置から受信することによって可能である。
【０１２０】
能力交換プログラムは、マスター装置である自装置の装置情報テーブルと同様に、ネットワーク９に接続されている全ての他装置（各スレーブ装置）の装置情報を格納するための領域を自装置のメインメモリ２６に確保し、これら情報を他装置（スレーブ装置）の装置情報テーブルとして記録する。すなわち、マスター装置のメインメモリ２６には、自装置を含むネットワーク９に接続されている全ての情報処理装置の装置情報が、装置情報テーブルとして記録される。
【０１２１】
一方、自装置がスレーブ装置である場合には、能力交換プログラムは、ネットワーク９に接続されている全ての他装置の装置情報、すなわちマスター装置及び自装置以外の各スレーブ装置の装置情報を取得し、これら装置情報に含まれる情報処理装置ＩＤ及びＭＳステータスを、自装置のメインメモリ２６に記録する。すなわち、スレーブ装置のメインメモリ２６には、自装置の装置情報が、装置情報テーブルとして記録されるとともに、自装置以外のネットワーク９に接続されているマスター装置及び各スレーブ装置についての情報処理装置ＩＤ及びＭＳステータスが、別の装置情報テーブルとして記録される。
【０１２２】
また、マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、新たにネットワーク９に情報処理装置が接続されたことが通知されたときには、その情報処理装置の装置情報を取得し、上述したようにメインメモリ２６に記録する。
【０１２３】
なお、ＭＳマネージャ及び能力交換プログラムは、メインプロセッサ２１で実行されることに限らず、いずれかのサブプロセッサ２３で実行されてもよい。また、ＭＳマネージャ及び能力交換プログラムは、情報処理装置の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
【０１２４】
マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにＭＳマネージャから、ネットワーク９に接続されている情報処理装置の主電源が遮断され、またはネットワーク９から情報処理装置が切り離されたことが通知されたときには、その情報処理装置の装置情報テーブルを自装置のメインメモリ２６から削除する。
【０１２５】
更に、このようにネットワーク９から切断された情報処理装置がマスター装置である場合には、以下のような方法によって、新たにマスター装置が決定される。
【０１２６】
具体的には、例えば、ネットワーク９から切断されていない情報処理装置は、それぞれ、自装置及び他装置の情報処理装置ＩＤを数値に置き換えて、自装置の情報処理装置ＩＤを他装置の情報処理装置ＩＤと比較し、自装置の情報処理装置ＩＤがネットワーク９から切断されていない情報処理装置中で最小である場合、そのスレーブ装置は、マスター装置に移行して、ＭＳステータスを０に設定し、マスター装置として、上述したように、ネットワーク９に接続されている全ての他装置（各スレーブ装置）の装置情報を取得して、メインメモリ２６に記録する。
【０１２７】
図５の下段に示したようにネットワーク９に接続されている複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させるためには、マスター装置がユーザの操作及びスレーブ装置の動作状態を把握する必要がある。
【０１２８】
図７に、４台の情報処理装置が仮想的な１台の情報処理装置７として動作する様子を示す。情報処理装置１がマスター装置、情報処理装置２、３、４がスレーブ装置Ａ、Ｂ、Ｃとして、動作しているものとする。
【０１２９】
ユーザがネットワーク９に接続されている情報処理装置を操作した場合、操作対象がマスター装置１であれば、その操作情報は、マスター装置１において直接把握され、操作対象がスレーブ装置であれば、その操作情報は、操作されたスレーブ装置からマスター装置１に送信される。すなわち、ユーザの操作対象がマスター装置１とスレーブ装置のいずれであるかにかかわらず、その操作情報は常にマスター装置１において把握される。操作情報の送信は、例えば、ＤＭＡコマンドが操作情報送信コマンドであるソフトウェアセルによって行われる。
【０１３０】
そして、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その操作情報に従って、実行する機能プログラムを選択する。その際、必要であれば、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、上記の方法によって自装置の外部記録部２８−１、２８−２からメインメモリ２６−１に機能プログラムをロードするが、他の情報処理装置（スレーブ装置）がマスター装置１に機能プログラムを送信してもよい。
【０１３１】
機能プログラムには、その実行単位毎に必要となる、図４に示した各情報として表される情報処理装置種別ＩＤ、メインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件等の、装置に関する要求スペックが規定されている。
【０１３２】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、各機能プログラムについて必要となる上記要求スペックを読み出す。また、予め能力交換プログラムによってメインメモリ２６−１に記録された装置情報テーブルを参照し、各情報処理装置の装置情報を読み出す。ここでの装置情報は、図４に示した情報処理装置ＩＤ以下の各情報を示し、メインプロセッサ、サブプロセッサ、メインメモリ及び外部記録部に関する情報である。
【０１３３】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ネットワーク９上に接続された各情報処理装置の上記装置情報と、機能プログラム実行に必要となる上記要求スペックとを順次比較する。
【０１３４】
そして、例えば、機能プログラムが録画機能を必要とする場合には、情報処理装置種別ＩＤに基づいて、録画機能を有する情報処理装置のみを特定して抽出する。更に、機能プログラムを実行するために必要なメインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件を確保できるスレーブ装置を、実行要求候補装置として特定する。ここで、複数の実行要求候補装置が特定された場合には、当該候補装置から１つの実行要求候補装置を特定して選択する。
【０１３５】
実行要求するスレーブ装置が特定されたら、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その特定されたスレーブ装置について、自装置内の情報処理コントローラ１１に含まれるメインメモリ２６−１に記録されている当該スレーブ装置の装置情報テーブルを更新する。
【０１３６】
更に、マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、ＤＭＡコマンドがロードコマンド及びキックコマンドであるソフトウェアセルを生成し、当該ソフトウェアセルのセルインターフェースに、機能プログラムに関する必要なサブプロセッサの情報及びサンドボックスサイズ（図３参照）を設定して、上記実行要求されるスレーブ装置に対して送信する。
【０１３７】
機能プログラムの実行を要求されたスレーブ装置は、その機能プログラムを実行するとともに、自装置の装置情報テーブルを更新する。その際、必要であれば、スレーブ装置内の情報処理コントローラに含まれるメインプロセッサ２１は、上記の方法によって自装置の外部記録部２８からメインメモリ２６に機能プログラムおよび当該機能プログラムと連携動作するサブプロセッサプログラムをロードする。
【０１３８】
機能プログラムの実行を要求されたスレーブ装置の外部記録部２８に、必要な機能プログラムまたは当該機能プログラムと連携動作するサブプロセッサプログラムが記録されていない場合には、他の情報処理装置が当該機能プログラムまたはサブプロセッサプログラムを、その機能プログラム実行要求先スレーブ装置に送信するように、システムを構成すればよい。
【０１３９】
サブプロセッサプログラムについては、前述のロードコマンドおよびキックコマンドを利用して他の情報処理装置に実行させることもできる。
【０１４０】
機能プログラムの実行終了後、機能プログラムを実行したスレーブ装置内の情報処理コントローラに含まれるメインプロセッサ２１は、終了通知をマスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１に送信するとともに、自装置の装置情報テーブルを更新する。マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、その終了通知を受信して、機能プログラムを実行したスレーブ装置の装置情報テーブルを更新する。
【０１４１】
マスター装置１内の情報処理コントローラ１１に含まれるメインプロセッサ２１−１は、自装置及び他装置の装置情報テーブルの参照結果から、当該の機能プログラムを実行することができる情報処理装置として、自身を選択する場合もあり得る。その場合には、マスター装置１が当該機能プログラムを実行する。
【０１４２】
図７の例で、ユーザがスレーブ装置Ａ（情報処理装置２）を操作し、当該操作に応じた機能プログラムを別のスレーブ装置Ｂ（情報処理装置３）が実行する場合について、図８を用いてその分散処理の例を説明する。
【０１４３】
図８の例では、ユーザがスレーブ装置Ａを操作することによって、スレーブ装置Ａを含むネットワークシステム全体の分散処理が開始して、まず、スレーブ装置Ａは、ステップ８１で、その操作情報をマスター装置１に送信する。
【０１４４】
マスター装置１は、ステップ７２で、その操作情報を受信し、更にステップ７３に進んで、自装置のメインメモリ２６−１に記録されている自装置及び他装置の装置情報テーブルから、各情報処理装置の動作状態を調べて、受信した操作情報に応じた機能プログラムを実行することができる情報処理装置を選択する。この例は、スレーブ装置Ｂが選択される場合である。
【０１４５】
次に、マスター装置１は、ステップ７４で、その選択したスレーブ装置Ｂに対して機能プログラムの実行を要求する。
【０１４６】
スレーブ装置Ｂは、ステップ９５で、その実行要求を受信し、更にステップ９６に進んで、実行要求された機能プログラムを実行する。
【０１４７】
以上のように、ユーザは、１台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置１、２、３、４を仮想的な１台の情報処理装置７として動作させることができる。
【０１４８】
次に、以上のようなネットワークシステムを前提に、本発明の実施の形態について説明する。
【０１４９】
まず、第１の実施形態として、本発明を家庭内における映像受信システムに適用した場合について説明する。
【０１５０】
図９は、本実施形態における映像受信システムの構成を示す図である。なお、同図において、上記図１で説明したネットワークシステムの構成及び機能等について同様のものは説明を簡略または省略し、異なる点を中心に説明する。
【０１５１】
同図に示すように、本実施形態における映像受信システムは、家庭内サーバ３１、小型端末３２及びストリーミングサーバ３３により構成される。家庭内サーバ３１と小型端末３２は家庭内においてＬＡＮ（Local Area Network）３５により、またストリーミングサーバ３３と家庭内サーバ３１及び小型端末３２はＷＡＮ（Wide Area Network）３４により接続され、互いに通信を行うことが可能である。本システムにおいては、ストリーミングサーバ３３から配信される映像データを小型端末３２が受信して再生する。また、当該映像データは暗号化され、例えばＭＰＥＧ（Motion Picture Experts Group）−２フォーマットで圧縮されているものとする。
【０１５２】
また、家庭内サーバ３１は上述の図１等における情報処理装置１として、小型端末３２は情報処理装置２として機能し、それぞれ上述のメインプロセッサ、サブプロセッサを含む情報処理コントローラを有し、上記ＤＭＡコマンド等によりソフトウェアセルを実行したり、各種データをやり取りしたりすることが可能である。よって、上記家庭内サーバ３１及び小型端末３２には上記情報処理装置ＩＤと同様、それぞれを識別するためのＩＤが付与されている。
【０１５３】
家庭内サーバ３１は、通信部３６及び暗号化／復号化部３７を有し、それらは情報処理コントローラ１１のバス２９−１に接続されたバス３８に接続されている。
【０１５４】
上記通信部３６は、ＬＡＮ３５により上記小型端末３２と通信を行い、当該小型端末３２から暗号鍵や必要なプログラムを受信したり、小型端末３２に上記復号化バイナリデータ及び暗号化バイナリデータを送信したりする際のインターフェースとなる。
【０１５５】
上記暗号化／復号化部３７は、上記通信部３６を介して上記小型端末３２から受信した暗号鍵を基に、ストリーミングサーバ３３から配信される映像データの暗号化及び復号化（decryption）に必要な処理を行う。なお、メインメモリ２６−２には任意の暗号アルゴリズムに対応した暗号化／復号化プログラムが記憶され、上記暗号化／復号化処理には当該プログラムを用いる。
【０１５６】
小型端末３２は、通信部３９、暗号化／復号化部４０、操作入力部４１、ビットストリーム入出力部４２、デコーダ４３、表示部４４、音響部４５を有し、それらは情報処理コントローラ１２のバス２９−２に接続されたバス４６に接続されている。
【０１５７】
上記通信部３９は、ＬＡＮ３５を介して上記家庭内サーバ３１と通信を行い、当該家庭内サーバ３１に上記暗号鍵や暗号方式情報及び必要なプログラムを送信したり、当該家庭内サーバ３１から上記復号化バイナリデータを受信したりする際のインターフェースとなる。
【０１５８】
また上記通信部３９は、上記ＷＡＮ３４を介して上記ストリーミングサーバ３３とも通信を行い、当該ストリーミングサーバ３３に映像データの配信を要求し、受信する際のインターフェースとなる。
【０１５９】
上記暗号化／復号化部４０は、上記通信部３９を介して上記家庭内サーバ３１から受信した上記復号化バイナリデータを基に、上記映像データの復号化に必要な処理を行う。
【０１６０】
上記操作入力部４１は、例えばプッシュボタン、ジョグダイヤルなどであり、小型端末３２が映像を再生したり各モードを選択したりする際にユーザからの操作入力を受け付け、操作入力に応じた操作信号をメインプロセッサ２１−２に伝える。
【０１６１】
上記ビットストリーム入出力部４２は、上記暗号化／復号化部４０が復号化した上記映像データのビットストリームを入力し、上記デコーダ４３に出力する。また上記デコーダ４３は、ＭＰＥＧ−２フォーマットで圧縮された上記復号化後の映像データのビットストリームを伸張して、当該映像データに含まれるビデオストリームを上記表示部４４へ、またオーディオストリームを上記音響部４５へ出力する。
【０１６２】
上記表示部４４は、例えばＴＦＴ（Thin Film Transistor）等のＬＣＤ（Liquid Crystal Display）、ＣＲＴ（Cathode Ray Tube）、ＰＤＰ(Plasma Display Panel)、ＯＥＬ(Organic Electroluminescence)等であり、上記ビデオストリームを表示する。また上記音響部４５は、図示しないアンプ及びスピーカ等からなり、上記オーディオストリームを出力する。
【０１６３】
次に、上記家庭内サーバ３１及び小型端末３２が暗号化／復号化処理を行う場合に処理されるアルゴリズムについて説明する。図１０は、上記映像データが暗号化及び復号化される手順を示した図である。
【０１６４】
上述したように、上記ストリーミングサーバ３３は上記小型端末３２に映像データを暗号化した上で配信する。本実施形態においては、暗号化アルゴリズムとして、上記Ｒｉｊｎｄａｅｌを使用する場合を想定する。Ｒｉｊｎｄａｅｌは、アメリカ政府標準技術局(ＮＩＳＴ)によって次世代の暗号化標準ＡＥＳ(Advanced Encryption Standard)に選定されている秘密鍵方式の暗号化アルゴリズムである。
【０１６５】
当該アルゴリズムにおいて、図１０（ａ）に示すように、例えば当該映像データの最初のパケット（平文）がデータＡに示すような８バイトのデータである場合には、ストリーミングサーバ３３は、上記暗号鍵及び初期化ベクタ（ＩＶ：Initialization Vector）を組み合わせて、同じ８バイトのデータＢのような乱数列のバイナリデータを生成する。初期化ベクタとは、秘密鍵方式の暗号化の際に使われる乱数列の基となる数値であり、暗号アルゴリズムの初期化を行って暗号の多様性を確保するためのものである。
【０１６６】
具体的には、自動的に４０ビットの乱数である暗号鍵と２４ビットの乱数である初期化ベクタの両方をバイト配列として生成してから、それらを組み合わせて６４ビット（８バイト）の文字列としてシリアル化して出力する。当該初期化ベクタと上記暗号鍵から得られるデータＢは、上記平文データが何バイトであるかに関わらず、適切なバイト数に調整して生成される。
【０１６７】
そして上記データＡとデータＢとをＸＯＲ演算（排他的論理和演算）処理して暗号化データであるデータＣを生成する。ＸＯＲ演算とは、入力のうち「真」(あるいは「１」)の数が奇数個ならば出力が真（あるいは１）になり、偶数個の場合は出力が「偽」(あるいは「０」)になるような論理演算をいう。ストリーミングサーバ３３は、当該暗号化されたデータＣを、小型端末３２の配信要求に応じて配信する。
【０１６８】
一方、小型端末３２は、図１０（ｂ）上記暗号化された映像データの配信を要求する前に、ストリーミングサーバ３３から上記暗号鍵及び初期ベクタを受信し、それらを上記家庭内サーバ３１へ転送する。そして、家庭内サーバ３１は、当該暗号鍵及び初期ベクタを用いて、上記データＢと同一のバイナリデータＤを生成する。そして、当該データＤを小型端末３２に送信する。
【０１６９】
小型端末３２は、上記ストリーミングサーバ３３へ映像データの配信を要求して上記暗号化データであるデータＣを受信する。そして、当該データＣに上記家庭内サーバ３１から受信したデータＤを適用してＸＯＲ演算処理することにより、上記データＡと同一のデータＥが得られ、これにより上記８バイトのパケットデータの復号化が完了する。当該処理を、ストリーミングサーバ３３が小型端末３２へ配信する映像データの全てのパケットについて繰り返す。
【０１７０】
なお、上記暗号化／復号化処理においては上記暗号鍵と初期化ベクタの組合せによりデータＢ及びデータＤを生成する際の処理が、上記ＸＯＲ演算処理等、他の処理に比べて負荷の係る処理である。
【０１７１】
次に、上記家庭内サーバ３１及び小型端末３２が、上記データを含めた情報を互いにやり取りする際に送信される上記ソフトウェアセルについて述べる。
【０１７２】
図１１は、上記家庭内サーバ３１が上記暗号化された映像データの暗号アルゴリズムに対応する暗号プログラムを保持していない場合に、上記小型端末３２が当該プログラムを家庭内サーバ３１へ送信する際のソフトウェアセルの例を示した図である。同図に示すように、このソフトウェアセルにおいて、送信元ＩＤは小型端末３２のＩＤ、送信先ＩＤは家庭内サーバ３１のＩＤ、応答先ＩＤは小型端末３２のＩＤである。またＤＭＡコマンドとして復号化プログラム送信コマンドを送信し、サブプロセッサプログラムとして、復号化プログラムを送信する。
【０１７３】
図１２は、上記小型端末３２が、ストリーミングサーバ３３から受信した暗号鍵及び初期化ベクタを上記家庭内サーバ３１に送信する際のソフトウェアセルの例を示した図である。このソフトウェアセルにおいて、上記図１１と同様、送信元ＩＤは小型端末３２のＩＤ、送信先ＩＤは家庭内サーバ３１のＩＤ、応答先ＩＤは小型端末３２のＩＤである。またＤＭＡコマンドとして、暗号鍵・初期化ベクタ送信コマンドを送信する。当該暗号鍵・初期化ベクタ送信コマンドは、データとして、上記暗号鍵及び初期化ベクタを含む。なお、当該暗号鍵及び初期化ベクタの送信の前に、家庭内サーバ３１へ上記復号化プログラムを送信した場合には、当該送信時のソフトウェアセルのグローバルＩＤを、今回の当該ソフトウェアセルのセルインターフェース中、前回のソフトウェアセルＩＤとして送信する。
【０１７４】
図１３は、上記小型端末３２が家庭内サーバ３１へ復号化バイナリデータの生成を要求する際のソフトウェアセルの例を示した図である。このソフトウェアセルにおいて、上記図１１及び図１２と同様、送信元ＩＤは小型端末３２のＩＤ、送信先ＩＤは家庭内サーバ３１のＩＤ、応答先ＩＤは小型端末３２のＩＤである。またＤＭＡコマンドとして、上記復号化バイナリデータの生成の実行開始要求コマンドを送信する。前回のソフトウェアセルＩＤとしては、前回図１２において暗号鍵・初期化ベクタ送信コマンドを送信した際のソフトウェアセルのグローバルＩＤを送信する。
【０１７５】
図１４は、上記小型端末３２が上記復号化バイナリデータの生成の実行要求後、家庭内サーバ３１に対して、当該生成された復号化バイナリデータの送信を要求する場合のソフトウェアセルの例を示した図である。このソフトウェアセルにおいて、上記図１１〜図１３と同様、送信元ＩＤは小型端末３２のＩＤ、送信先ＩＤは家庭内サーバ３１のＩＤ、応答先ＩＤは小型端末３２のＩＤである。またＤＭＡコマンドとして、復号化バイナリデータ要求コマンドを送信し、データとして、当該復号化バイナリデータのサイズを送信する。当該サイズは、上記暗号化された映像データのパケットのサイズに応じて決定される。前回のソフトウェアセルＩＤとしては、当該復号化バイナリデータを始めて要求する場合には、前回図１３において実行要求コマンドを送信した際のソフトウェアセルのグローバルＩＤを送信し、その後、家庭内サーバ３１から復号化バイナリデータの応答があった場合には、それ以降は、家庭内サーバ３１の当該応答時のソフトウェアセルのグローバルＩＤを送信する。
【０１７６】
図１５は、上記小型端末３２から上記復号化バイナリデータ要求コマンドを受信した家庭内サーバ３１が当該要求に応答する場合のソフトウェアセルの例を示した図である。このソフトウェアセルにおいて、送信元ＩＤは家庭内サーバ３１のＩＤ、送信先ＩＤは小型端末３２のＩＤ、応答先ＩＤは家庭内サーバ３１のＩＤである。またＤＭＡコマンドとして、復号化バイナリデータ応答コマンドを送信し、データとして、当該復号化バイナリデータを送信する。前回のソフトウェアセルＩＤとしては、上記小型端末３２が上記復号化バイナリデータ要求コマンドを送信した際のソフトウェアセルのグローバルＩＤを送信する。
【０１７７】
次に、以上で説明した暗号化／復号化処理及びソフトウェアセルの構成に基づいて、本実施形態において、上記小型端末３２で上記映像データが復号化されるまでの動作を説明する。
【０１７８】
図１６は、当該動作の流れを示したシーケンス図である。同図における動作の前提として、家庭内サーバ３１と小型端末３２とを接続する必要がある。なお、当該接続の時点で、上述のマスター／スレーブの関係が発生する。この場合、家庭内サーバ３１がマスター、小型端末３２がスレーブとなる。
【０１７９】
同図に示すように、まず、ストリーミングサーバ３３は、配信する映像データの暗号化方式（例えば上記Ｒｉｊｎｄａｅｌ、ＤＥＳ等の仕様）を小型端末３２へ通知する（ステップ５１）。小型端末３２は、上記通信部３９を介して、当該受信した暗号化方式を家庭内サーバ３１へ通知する（ステップ５２）。ここで、通知を受けた家庭内サーバ３１の暗号化／復号化部３７は、自らが当該暗号化方式に対応する復号化プログラムを保持しているか否かを調べ、保持していないと判断した場合には、通信部３６を介して、上記小型端末３２に当該復号化プログラムのモジュールを要求する（ステップ５３）。なお、図示しないが、以上の暗号化方式通知、復号化プログラム要求の際にも、上記図１１から図１５に説明したように、ソフトウェアセルを用いて例えば暗号化方式通知コマンド、復号化プログラム要求コマンド等のＤＭＡコマンドを送信することにより各通知及び要求が実行される。
【０１８０】
次に、上記復号化プログラムの要求を受けた小型端末３２は、要求を受けた復号化プログラムをメインメモリ２６−２から呼び出し、当該プログラムのモジュールを、通信部３９を介して、上記復号化プログラム送信コマンドにより、家庭内サーバ３１へ送信する（ステップ５４）。
【０１８１】
なお、小型端末３２は、上記復号化プログラムの全てのモジュールを送信するわけでなく、復号化バイナリデータを生成するために必要な部分のモジュールのみ送信する。すなわち、最終的に当該復号化バイナリデータと暗号化された映像データとをＸＯＲ演算して復号化を行う部分のモジュールについては送信されない。
【０１８２】
次に、小型端末３２は、ストリーミングサーバ３３に対し、配信される映像データの暗号鍵及び初期ベクタを要求する（ステップ５５）。当該要求を受けたストリーミングサーバは、暗号鍵及び初期ベクタを小型端末３２へ送信する（ステップ５６）。そして小型端末３２は、上記暗号鍵・初期化ベクタ送信コマンドを用いて、当該受信した暗号鍵及び初期ベクタを家庭内サーバ３１へ転送し（ステップ５７）、続いて、家庭内サーバ３１に対して、復号化バイナリデータの生成処理の実行を要求する（ステップ５８）。当該要求を受けた家庭内サーバ３１の暗号化／復号化部３７は、上記受信した復号化プログラムを実行して、上記図１０において説明したように、暗号鍵及び初期ベクタを基に、復号化バイナリデータを生成する。
【０１８３】
そして、ストリーミングサーバ３３から映像データの配信が開始されると（ステップ５９）、小型端末３２は、家庭内サーバ３１に対して、上記復号化バイナリデータ要求コマンドにより復号化バイナリデータの要求を行う（ステップ６０）。要求を受けた家庭内サーバ３１は、上記生成した復号化バイナリデータを小型端末３２へ送信する（ステップ６１）。
【０１８４】
小型端末３２は、当該受信した復号化バイナリデータを上記配信された映像データに適用し、両者間でＸＯＲ演算を行うことにより、当該映像データが復号化される。そして、当該復号化された映像データは、上記ビットストリーム入出力部４２を経由し、上記デコーダによりデコードされた上で、表示部４４及び音響部４５に出力され、再生される。
【０１８５】
以上の動作により、本実施形態における家庭内サーバ３１は、上記暗号鍵及び初期化ベクタを基に復号化バイナリデータを生成して上記小型端末３２に送信することで、当該小型端末３２において必要な復号化処理のうち負荷のかかる一部の処理を代行して処理することができ、小型端末の復号化処理における負荷を軽減させることができる。
【０１８６】
また、家庭内サーバ３１は、復号化処理に必要な全ての処理を行うわけではなく、上記復号化バイナリデータの生成のみ行っているため、上記小型端末３２のいわゆるプロキシサーバとして全ての処理を行う場合に比べて、小型端末３２との通信効率を低下させることもなくなる。
【０１８７】
更に、家庭内サーバ３１は、上記復号化バイナリデータを生成するためのプログラムを保持していない場合でも、上記小型端末３２から当該プログラムを受信して上記復号化バイナリデータを生成することができるため、小型端末３２において使用される任意の暗号化アルゴリズムに対応することができる。
【０１８８】
ところで、暗号化技術はそもそも機器同士の通信の保護を図るために用いられるものであるが、上述の動作においては、家庭内サーバ３１と小型端末３２との間で、復号化に必要なデータがやり取りされており、これらのデータが外部に漏洩すると、暗号化の本来の目的を没却してしまうことになる。よって、家庭内サーバ３１と小型端末３２との間の通信も保護する必要がある。
【０１８９】
そこで、両者間の通信の保護を図る方法として、家庭内サーバにスイッチングハブの機能を持たせ、上記ＬＡＮ３５の態様として、両者を有線ケーブルで直接接続することが考えられる。スイッチングハブは、通常のハブがリピータとして働くのに対してブリッジとして働き、端末から送られてきたデータを解析してあて先を検出し、送り先の端末にしかデータを送信しない。よって、家庭内サーバ３１と小型端末３２以外にデータが漏洩するのを規制することができるとともに、ネットワーク全体の負荷も軽減させることができる。
【０１９０】
また、上記スイッチングハブの代わりに、家庭内サーバ３１にＩＰＳｅｃ(IP Security)のようなＩＰ（Internet Protocol）ネットワークの保護機構を利用することも考えられる。ＩＰＳｅｃとは、ＩＰパケットの暗号化と認証を行なう、ＴＣＰ（Transmission Control Protocol）／ＩＰ環境で汎用的に用いることができるセキュリティ技術である。ＩＰＳｅｃにおいては、送信側ではデータ及び送信元、送信先のアドレスを暗号化し、電子署名を付与して、暗号データをカプセル化して送信する。受信側では、当該カプセルから暗号データを取り出し、当該暗号データを復号化して、電子署名により送信側のユーザ認証を行う。よって、上記家庭内サーバ３１が小型端末３２に送信する復号化バイナリデータを暗号化するとともに、送信先である小型端末３２の認証も行う。これにより、暗号化によりデータの機密性を確保することができるとともに、ユーザ認証を行うことで不正アクセスを防止することができる。
【０１９１】
更に、通信保護対策として、家庭内サーバ３１と小型端末３２の双方にハードウェア暗号器を取り付けてもよい。ハードウェア暗号器とは、具体的には暗号アクセラレータ等、ハードウェアベースの暗号生成器を指す。
【０１９２】
暗号アクセラレータは、通常はソフトウェアによって処理される暗号演算処理をハードウェア内に実装することで、高速な暗号演算処理を行うことが可能な暗号デバイスである。これにより、上記復号化バイナリデータを生成する暗号化／復号化部３７等が位置するアプリケーション層よりもアクセスが困難な下位のハードウェア層で通信路の暗号化処理を行うことで、不正アクセス等を防止することができる。
【０１９３】
次に、第２の実施形態として、本発明をメール送信システムに適用した場合について説明する。本実施形態において、上述の第１実施形態と同一の構成及び動作となる箇所については説明を簡略及び省略し、異なる点を中心に説明する。
【０１９４】
図１７は、本実施形態における電子メール送信システムの構成を示す図である。同図において、家庭内サーバ３１及び小型端末３２の構成は上記図９と同様である。当該家庭内サーバ３１及び小型端末３２は、ＷＡＮ３４を介してメールサーバ１０１と接続されている。また、上述の第１実施形態の場合と同様、家庭内サーバ３１と小型端末３２は、ソフトウェアセルの実行により各種ＤＭＡコマンドを送信して、プログラムやデータをやり取りすることが可能である。
【０１９５】
本システムにおいて、小型端末３２は例えばメインメモリ２６−２に電子メールソフトウェア（図示せず）を有し、通信部３９を介して電子メールの送受信を行うことが可能である。当該電子メールは暗号化された暗号メールであり、上記メールサーバ１０１を介して当該暗号メールを他の機器へ送信する。その際、家庭内サーバ３１は、小型端末のメールデータの暗号化処理の一部を小型端末３２の代わりに処理する。
【０１９６】
電子メールの暗号化には、例えばＰＧＰ（登録商標）、Ｓ／ＭＩＭＥ等の公開鍵方式のアルゴリズムが用いられる。
【０１９７】
上記ＰＧＰ（登録商標）は米国のPhil Zimmermann氏が開発し、1971年に配布を開始したソフトウェアで、電子メールの暗号化方式の標準となっており、電子メールの暗号化／復号化、電子署名の作成及び添付と確認の機能を備えている。またＳ／ＭＩＭＥは、ＲＳＡデータセキュリティ社（登録商標）が開発したもので、上記ＰＧＰ（登録商標）とほぼ同様の機能を持ち、同じく電子メールの暗号化方式の標準となっている。
【０１９８】
これらのアルゴリズムにおいては、暗号化専用の鍵（公開鍵）と復号化専用の鍵（個人鍵）を使って、暗号化及び復号化を行なう。受信側で事前に公開鍵と個人鍵のペアを用意し、暗号文の送信側に公開鍵の方を配布する。送信側は平文を公開鍵で暗号文に変換できるが、復号化はできない。受信側は、個人で上記暗号文を平文に復号可能であるが、公開鍵だけでは復号できないという利点がある。
【０１９９】
このような公開鍵方式において、家庭内サーバ３１は、小型端末３２が暗号メールを作成する際に、当該小型端末３２から公開鍵を受信して、当該公開鍵を基に演算処理を行ってメールデータの暗号化に必要な暗号化バイナリデータを生成し、当該暗号化バイナリデータを小型端末３２へ送信する。小型端末３２は、当該暗号化バイナリデータをメールデータに適用してＸＯＲ演算処理を行い、当該メールデータを暗号化する。
【０２００】
以下、本実施形態において、上記小型端末３２で上記電子メールデータが暗号化されるまでの動作を説明する。
【０２０１】
図１８は、当該動作の流れを示したシーケンス図である。同図における動作の前提として、家庭内サーバ３１と小型端末３２とを接続する必要があり、当該接続の時点で、上述のマスター／スレーブの関係が発生する。この場合、家庭内サーバ３１がマスター、小型端末３２がスレーブとなる。
【０２０２】
同図に示すように、まず、小型端末３２は、通信部３９を介して、メールデータの暗号化処理における暗号化方式を通知する（ステップ１１１）。家庭内サーバ３１の暗号化／復号化部３７は、当該暗号化方式に対応する暗号化プログラムを保持しているか否かを判断し、保持していない場合は、当該プログラムのモジュールを、通信部３６を介して小型端末３２へ要求する（ステップ１１２）。小型端末３２は、要求に応じて、暗号化プログラムのモジュールを家庭内サーバ３１へ送信する（ステップ１１３）。この場合も、上記第１実施形態と同様、メールデータの暗号化に必要な暗号化バイナリデータを生成するためのモジュールのみを送信する。
【０２０３】
そして小型端末３２は、事前に用意した暗号鍵（公開鍵）を家庭内サーバ３１へ送信し（ステップ１１４）、続いて当該暗号鍵を用いた暗号化バイナリデータの生成処理の実行開始を家庭内サーバ３１へ要求する（ステップ１１５）。これを受けて家庭内サーバ３１は、受信した暗号鍵を元に演算処理を行い、上記メールデータを暗号化するための暗号化バイナリデータを生成する。
【０２０４】
続いて小型端末３２は、当該暗号化バイナリデータを家庭内サーバ３１へ要求し（ステップ１１６）、要求を受けた家庭内サーバ３１は、当該生成した暗号化バイナリデータを小型端末３２へ送信する（ステップ１１７）。
【０２０５】
小型端末３２は、当該受信した暗号化バイナリデータをメールデータへ適用してＸＯＲ演算処理を行うことにより上記メールデータを暗号化して暗号メールを作成し、当該暗号メールを、通信部３９によりＷＡＮ３４を介して上記メールサーバ１０１へ送信する（ステップ１１８）。これにより、メールサーバ１０１から当該暗号メールが指定したアドレスの機器へ送信される。
【０２０６】
なお、以上の動作において、家庭内サーバ３１と小型端末３２の間でやり取りされるデータやプログラムの送信は、上記第１実施形態と同様、上記ソフトウェアセルを用いて、ＤＭＡコマンド及び付随するデータの送信により実行される。例えば、ＤＭＡコマンドとしては、小型端末３２側では暗号化方式通知コマンド、暗号化プログラム応答コマンド、案後鍵送信コマンド、実行開始要求コマンド、暗号化バイナリデータ要求コマンド及びそれらのコマンドに付随する暗号化プログラムや暗号鍵等のデータが送信される。また家庭内サーバ３１側では、暗号化プログラム要求コマンド、暗号化バイナリデータ応答コマンド及びそれらのコマンドに付随する暗号化バイナリデータ等のデータが送信される。
【０２０７】
以上の動作により、暗号メールの作成に必要な暗号化バイナリデータの生成処理を家庭内サーバ３１が行い、小型端末３２は当該暗号化バイナリデータをメールデータに適用して当該メールデータの暗号化を行うことができるため、小型端末３２の暗号メール作成処理における負荷を軽減させることができる。また、家庭内サーバ３１は、上記暗号化バイナリデータの生成に必要な暗号化プログラムを、必要に応じて小型端末３２から受信して使用することができるため、小型端末３２で用いられる任意の暗号化方式に対応することができる。
【０２０８】
また、本実施形態においても、上記第１実施形態において説明したスイッチングハブ、ＩＰＳｅｃ、ハードウェア暗号器といった技術により、家庭内サーバ３１と小型端末３２間の通信の保護を図ることができる。
【０２０９】
なお、本発明は以上説明した実施の形態には限定されるものではなく、種々の変形が可能である。
【０２１０】
例えば、上述の第１及び第２の実施形態においては、上記小型端末３２はデータの暗号化または復号化のみを行っていたが、第１の実施形態において、更に、復号化した映像データを他の端末へ暗号化して送信する場合に、上記家庭内サーバ３１がその暗号化のための暗号化バイナリデータを生成するようにしてもよいし、また第２の実施形態において、暗号化された電子メール受信して復号化する場合に当該復号化に必要な復号化バイナリデータを上記家庭内サーバ３１が生成したりするような態様であっても勿論構わない。
【０２１１】
また、上述の実施形態においては、本発明を映像受信システム及び電子メール送信システムに適用した例について説明したが、例えばインターネットショッピング等の電子商取引システム等、端末装置においてデータの暗号化及び復号化の必要がある様々なシステムに適用することが可能である。
【図面の簡単な説明】
【０２１２】
【図１】本発明において前提となるネットワークシステムの一例を示す図である。
【図２】情報処理装置が備える情報処理コントローラの説明に供する図である。
【図３】ソフトウェアセルの一例を示す図である。
【図４】ＤＭＡコマンドがステータス返信コマンドである場合のソフトウェアセルのデータ領域を示す図である。
【図５】複数の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示す図である。
【図６】情報処理コントローラのソフトウェア構成の一例を示す図である。
【図７】４台の情報処理装置が仮想的な１台の情報処理装置として動作する様子を示す図である。
【図８】図７のシステムにおける分散処理の例を示す図である。
【図９】第１の実施形態における映像受信システムの構成を示す図である。
【図１０】第１の実施形態において、映像データが暗号化及び復号化される処理の手順を示した図である。
【図１１】小型端末３２が復号化プログラムを家庭内サーバ３１へ送信する際のソフトウェアセルの例を示した図である。
【図１２】上記小型端末３２が、暗号鍵及び初期化ベクタを上記家庭内サーバ３１に送信する際のソフトウェアセルの例を示した図である。
【図１３】小型端末３２が家庭内サーバ３１へ復号化バイナリデータの生成を要求する際のソフトウェアセルの例を示した図である。
【図１４】小型端末３２が家庭内サーバ31に対して復号化バイナリデータの送信を要求する場合のソフトウェアセルの例を示した図である。
【図１５】小型端末３２から上記復号化バイナリデータ要求コマンドを受信した家庭内サーバ３１が、当該要求に応答する場合のソフトウェアセルの例を示した図である。
【図１６】第１の実施形態において、上記小型端末３２で上記映像データが復号化されるまでの動作の流れを示したシーケンス図である。
【図１７】第２の実施形態における電子メール送信システムの構成を示す図である。
【図１８】第２の実施形態において、小型端末３２で上記電子メールデータが暗号化されるまでの動作の流れを示したシーケンス図である。
【符号の説明】
【０２１３】
３１…家庭内サーバ
３２…小型端末
３３…ストリーミングサーバ
３４…ＷＡＮ
３５…ＬＡＮ
３６…通信部
３７、４０…暗号化／復号化部
３８、４６…バス
３９…通信部
４１…操作入力部
４２…ビットストリーム入出力部
４３…デコーダ
４４…表示部
４５…音響部
１０１…メールサーバ
【図１】
2005244662.tif 000003
【図２】
2005244662.tif 000004
【図３】
2005244662.tif 000005
【図４】
2005244662.tif 000006
【図５】
2005244662.tif 000007
【図６】
2005244662.tif 000008
【図７】
2005244662.tif 000009
【図８】
2005244662.tif 000010
【図９】
2005244662.tif 000011
【図１０】
2005244662.tif 000012
【図１１】
2005244662.tif 000013
【図１２】
2005244662.tif 000014
【図１３】
2005244662.tif 000015
【図１４】
2005244662.tif 000016
【図１５】
2005244662.tif 000017
【図１６】
2005244662.tif 000018
【図１７】
2005244662.tif 000019
【図１８】
2005244662.tif 000020