(57)【要約】  操作端末に記憶されている制御プログラム内の遠隔操作命令の実行により、機器を遠隔操作する遠隔操作システムにおいて用いられる方法において、第１時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第１識別子を取得し（Ｓ８０１）、取得した前記第１識別子を前記操作端末に記憶されている前記制御プログラムに埋め込み（Ｓ８０２）、前記第１時点の後の第２時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第２識別子を取得し（Ｓ８０３）、前記制御プログラムに埋め込まれた前記第１識別子と、取得された前記第２識別子とが一致するか否かを判断し（Ｓ８０４）、前記第１識別子と前記第２識別子とが一致しない場合、前記機器に対する遠隔操作を禁止する（Ｓ８０５）。
2014076927.tif 000002
【特許請求の範囲】
【請求項１】
操作端末に記憶されている制御プログラム内の遠隔操作命令の実行により、機器を遠隔操作する遠隔操作システムにおいて用いられる方法であって、
第１時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第１識別子を取得する第１取得ステップと、
取得した前記第１識別子を前記操作端末に記憶されている前記制御プログラムに埋め込む埋込ステップと、
前記第１時点の後の第２時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第２識別子を取得する第２取得ステップと、
前記制御プログラムに埋め込まれた前記第１識別子と、前記第２取得ステップにより取得された前記第２識別子とが一致するか否かを判断する判断ステップと、
前記第１識別子と前記第２識別子とが一致しない場合、前記機器に対する遠隔操作を禁止する禁止ステップと
を含むことを特徴とする方法。
【請求項２】
前記操作端末は、サーバ装置を介して、前記機器を遠隔操作し、
前記サーバ装置は、前記第１識別子が埋め込まれる前の前記制御プログラムを記憶しており、
前記判断ステップは、
前記操作端末において、前記第１識別子が埋め込まれた前記制御プログラムに一方向性演算を施して、第１演算値を生成し、生成した前記第１演算値と取得した前記第２識別子とに、演算を施して第２演算値を生成する第１ステップと、
前記サーバ装置において、記憶している前記制御プログラムに第１識別子を埋め込み、第１識別子が埋め込まれた前記制御プログラムに前記一方向性演算と同一の一方向性演算を施して、第３演算値を生成し、生成した前記第３演算値と取得した前記第１識別子とに、前記演算と同一の演算を施して第４演算値を生成する第２ステップと、
前記サーバ装置において、前記第２演算値と前記第４演算値とが一致するか否かを判断することにより、前記第１識別子と前記第２識別子とが一致するか否かを判断する第３ステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記方法において、さらに、前記第１取得ステップ、前記埋込ステップ、前記第２取得ステップ、前記判断ステップ及び前記禁止ステップによる前記第１識別子の取得、前記制御プログラムの埋込み、前記第２識別子の取得、前記判断及び前記禁止を繰り返し、
前記埋込ステップにおいて、前記第１取得ステップにより前記第１識別子が取得される都度、当該第１識別子を埋め込む
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記第１時点は、前記操作端末において、前記機器に対する遠隔操作を受け付けた時であり、
前記第１取得ステップにおいて、前記遠隔操作を受け付ける都度、前記第１識別子を取得する
ことを特徴とする請求項３に記載の方法。
【請求項５】
前記埋込ステップにおいて、乱数を生成し、生成した乱数と取得した第１識別子とに可逆の変換を施し、得られた変換値を前記制御プログラムに埋め込み、
前記判断ステップにおいて、前記乱数と前記制御プログラムに埋め込まれた変換値とに、前記変換の逆変換を施して、前記第１識別子を復元する
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記方法において、さらに、前記第１取得ステップ、前記埋込ステップ、前記第２取得ステップ、前記判断ステップ及び前記禁止ステップによる前記第１識別子の取得、前記制御プログラムの埋込み、前記第２識別子の取得、前記判断及び前記禁止を繰り返し、
前記埋込ステップにおいて、前記第１取得ステップにより前記第１識別子が取得される都度、異なる乱数を生成し、生成した乱数と取得した前記第１識別子とに前記変換を施し、得られた前記変換値を前記制御プログラムに埋め込む
ことを特徴とする請求項５に記載の方法。
【請求項７】
前記判断ステップにおいて、前記第１識別子が埋め込まれた前記制御プログラムを取得し、取得した前記制御プログラムから前記第１識別子を抽出する
ことを特徴とする請求項１に記載の方法。
【請求項８】
前記埋込ステップにおいて、前記第１識別子を分割して複数の識別子片を生成し、生成した複数の識別子片を、前記制御プログラムの全体又はその一部に分散して埋め込み、
前記判断ステップにおいて、前記制御プログラムの全体又はその一部から、前記複数の識別子片を抽出し、抽出して得られた前記複数の識別子片を結合して前記第１識別子を復元する
ことを特徴とする請求項１に記載の方法。
【請求項９】
前記制御プログラムは、命令が記録されている命令領域と、データが記録されているデータ領域を含み、
前記埋込ステップにおいて、前記第１識別子を、前記制御プログラム中の前記データ領域に埋め込む
ことを特徴とする請求項１に記載の方法。
【請求項１０】
前記制御プログラムは、命令が記録されている命令領域と、データが記録されているデータ領域を含み、前記命令領域は、実行されないダミー命令を含み、
前記埋込ステップにおいて、前記第１識別子を、前記制御プログラム中の前記ダミー命令に埋め込む
ことを特徴とする請求項１に記載の方法。
【請求項１１】
前記埋込ステップにおいて、前記制御プログラムに対する前記第１識別子の埋込みを制御する埋込プログラムを取得し、前記操作端末において取得した前記埋込プログラムが実行されることにより、前記第１識別子が前記制御プログラムに埋め込まれる
ことを特徴とする請求項１に記載の方法。
【請求項１２】
前記埋込プログラムは、前記制御プログラムにおける前記第１識別子の埋込み位置を記憶しており、
前記埋込ステップにおいて、前記操作端末において前記埋込プログラムが実行されることにより、前記第１識別子が前記制御プログラム内の前記埋込み位置に埋め込まれる
ことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記第１時点は、前記制御プログラムが前記操作端末にインストールされる時、前記操作端末における前記制御プログラムの最初の起動時、又は、前記操作端末における前記制御プログラムの起動時であり、
前記第２時点は、前記操作端末において、前記機器に対する遠隔操作を受け付けた時である
ことを特徴とする請求項１に記載の方法。
【請求項１４】
前記第１時点は、前記操作端末において、前記機器に対する第１遠隔操作を受け付けた時であり、
前記第２時点は、前記操作端末において、前記機器に対する第２遠隔操作を受け付けた時である
ことを特徴とする請求項１に記載の方法。
【請求項１５】
前記操作端末は、サーバ装置を介して、前記機器を遠隔操作し、
前記方法は、さらに、
前記操作端末において、前記機器に対する複数の遠隔操作のうち、利用者により選択可能な遠隔操作を表示する表示ステップと、
前記操作端末において、利用者から、表示された遠隔操作のうち一の遠隔操作を受け付ける受付ステップと、
前記操作端末において、受け付けた遠隔操作を、前記サーバ装置を介して、前記機器に対して送信する送信ステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項１６】
前記操作端末は、サーバ装置を介して、前記機器を遠隔操作し、
前記方法は、さらに、
前記操作端末において、前記機器に対する遠隔操作に対応付けて、前記遠隔操作を受け付けるための第１条件と、前記第１条件に代えて前記遠隔操作を受け付けるための変更候補としての第２条件とを表示する表示ステップと、
前記操作端末において、利用者から、前記第２条件の指定を受け付ける受付ステップと、
指定を受け付けた前記第２条件を、前記操作端末から前記サーバ装置に対して送信する送信ステップと、
前記サーバ装置において、前記機器に対する前記遠隔操作に対応付けて、前記第１条件に代えて、前記第２条件を記憶する記憶ステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項１７】
記憶されている制御プログラム内の遠隔操作命令の実行により機器を遠隔操作する操作端末と、前記機器との間において、遠隔操作を中継するサーバ装置であって、
第１時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第１識別子を取得する第１取得手段と、
取得した前記第１識別子を前記操作端末に記憶されている前記制御プログラムに埋め込ませるために、前記第１識別子を前記操作端末に送信する送信手段と、
前記第１時点の後の第２時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第２識別子を取得する第２取得手段と、
前記制御プログラムに埋め込まれた前記第１識別子と、前記第２取得手段により取得された前記第２識別子とが一致するか否かを判断する判断手段と、
前記第１識別子と前記第２識別子とが一致しない場合、前記機器に対する遠隔操作を禁止する禁止手段と
を備えることを特徴とするサーバ装置。
【請求項１８】
記憶されている制御プログラム内の遠隔操作命令の実行により機器を遠隔操作する操作端末と、前記機器との間において、遠隔操作を中継するサーバ装置において用いられるコンピュータプログラムを記録しているコンピュータ読取可能な記録媒体であって、
第１時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第１識別子を取得する第１取得ステップと、
取得した前記第１識別子を前記操作端末に記憶されている前記制御プログラムに埋め込ませるために、前記第１識別子を前記操作端末に送信する送信ステップと、
前記第１時点の後の第２時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第２識別子を取得する第２取得ステップと、
前記制御プログラムに埋め込まれた前記第１識別子と、前記第２取得ステップにより取得された前記第２識別子とが一致するか否かを判断する判断ステップと、
前記第１識別子と前記第２識別子とが一致しない場合、前記機器に対する遠隔操作を禁止する禁止ステップと
を実行するためのコンピュータプログラムを記録している記録媒体。
【請求項１９】
記憶されている制御プログラム内の遠隔操作命令の実行により機器を遠隔操作する操作端末と、前記機器との間において、遠隔操作を中継するサーバ装置において用いられる方法であって、
第１時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第１識別子を取得する第１取得ステップと、
取得した前記第１識別子を前記操作端末に記憶されている前記制御プログラムに埋め込ませるために、前記第１識別子を前記操作端末に送信する送信ステップと、
前記第１時点の後の第２時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第２識別子を取得する第２取得ステップと、
前記制御プログラムに埋め込まれた前記第１識別子と、前記第２取得ステップにより取得された前記第２識別子とが一致するか否かを判断する判断ステップと、
前記第１識別子と前記第２識別子とが一致しない場合、前記機器に対する遠隔操作を禁止する禁止ステップと
を含むことを特徴とする方法。
【請求項２０】
記憶されている制御プログラム内の遠隔操作命令の実行により機器を遠隔操作する操作端末と、前記機器との間において、遠隔操作を中継するサーバ装置を構成する集積回路であって、
第１時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第１識別子を取得する第１取得手段と、
取得した前記第１識別子を前記操作端末に記憶されている前記制御プログラムに埋め込ませるために、前記第１識別子を前記操作端末に送信する送信手段と、
前記第１時点の後の第２時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第２識別子を取得する第２取得手段と、
前記制御プログラムに埋め込まれた前記第１識別子と、前記第２取得手段により取得された前記第２識別子とが一致するか否かを判断する判断手段と、
前記第１識別子と前記第２識別子とが一致しない場合、前記機器に対する遠隔操作を禁止する禁止手段と
を備えることを特徴とする集積回路。
【請求項２１】
記憶されている制御プログラム内の遠隔操作命令の実行により機器を遠隔操作する操作端末と、前記機器と、前記操作端末と前記機器との間において、遠隔操作を中継するサーバ装置とから構成されるシステムであって、
前記サーバ装置は、
第１時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第１識別子を取得する第１取得手段と、
取得した前記第１識別子を前記操作端末に記憶されている前記制御プログラムに埋め込ませるために、前記第１識別子を前記操作端末に送信する送信手段と、
前記第１時点の後の第２時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第２識別子を取得する第２取得手段と、
前記制御プログラムに埋め込まれた前記第１識別子と、前記第２取得手段により取得された前記第２識別子とが一致するか否かを判断する判断手段と、
前記第１識別子と前記第２識別子とが一致しない場合、前記機器に対する遠隔操作を禁止する禁止手段とを備え、
前記操作端末は、
当該操作端末に近接する可搬媒体から、当該可搬媒体に固有の識別子を取得する取得手段と、
取得した前記識別子を前記サーバ装置に対して送信する送信手段と、
前記サーバ装置から、前記第１識別子を受信し、受信した第１識別子を前記制御プログラムに埋め込む埋込手段とを備える
ことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器を遠隔操作するシステムにおいて用いられる技術に関する。
【背景技術】
【０００２】
近年、スマートフォンやタブレットなどのモバイル端末に対して、ネットワークなどを介して、様々なコンピュータプログラムが提供されている。これらのコンピュータプログラムを実行することにより、モバイル端末は、利用者に対して様々な機能やサービスを提供することができる。【０００３】
特許文献１には、ディスプレィ装置を遠隔操作するモバイル端末が開示されている。モバイル端末は、ディスプレィ装置に対する制御を受け付けるための制御画面を表示する。利用者は、モバイル端末に表示される制御画面を用いて、命令を入力する。入力された命令は、ディスプレィ装置に伝送され、ディスプレィ装置は、命令に従って、動作する。【０００４】
宅外からモバイル端末等を用いて、宅内に設置された機器を遠隔制御する場合、モバイル端末等は、例えば、利用者の本人確認のため、利用者の識別子やパスワードの入力を要求する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−４５４６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、例えば、利用者の識別子やパスワードが第三者に知られた場合には、第三者が利用者本人に成りすまして、利用者の宅内に設置された機器を遠隔制御することが可能となるという問題がある。【０００７】
このような問題を解決するため、本発明は、不正な第三者により利用者の機器が遠隔操作されることを防ぐことができる方法、サーバ装置及びシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の一態様は、操作端末に記憶されている制御プログラム内の遠隔操作命令の実行により、機器を遠隔操作する遠隔操作システムにおいて用いられる方法であって、第１時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第１識別子を取得する第１取得ステップと、取得した前記第１識別子を前記操作端末に記憶されている前記制御プログラムに埋め込む埋込ステップと、前記第１時点の後の第２時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第２識別子を取得する第２取得ステップと、前記制御プログラムに埋め込まれた前記第１識別子と、前記第２取得ステップにより取得された前記第２識別子とが一致するか否かを判断する判断ステップと、前記第１識別子と前記第２識別子とが一致しない場合、前記機器に対する遠隔操作を禁止する禁止ステップとを含むことを特徴とする。
【発明の効果】
【０００９】
この態様によると、不正な第三者により利用者の機器が遠隔操作されることを防ぐことができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態２としての遠隔操作システム１０のシステム構成図である。
【図２】配信サーバ装置１００の構成を示すブロック図である。
【図３】確認サーバ装置２００の構成を示すブロック図である。
【図４】制御プログラム２３１のデータ構造の一例を示す。
【図５】付随データ２５１のデータ構造の一例を示す。
【図６】アカウント管理テーブル２６１のデータ構造の一例を示す。
【図７】条件テーブル２７１のデータ構造の一例を示す。
【図８】制御ルール管理テーブル２８１のデータ構造の一例を示す。
【図９】端末装置３００の構成を示すブロック図である。
【図１０】インストールされた制御プログラム３３１のデータ構造の一例を示す。
【図１１】端末装置３００において動作する制御プログラム３３１の機能構成図を示す。
【図１２】端末装置３００において表示される機器操作画面３５１を示す。
【図１３】端末装置３００において表示される制御ルール変更画面３６１を示す。
【図１４】メモリカード４００の構成を示すブロック図である。
【図１５】確認サーバ装置２００の相互認証部２０３及びメモリカード４００の相互認証部４０３の構成を示すブロック図である。
【図１６】機器５００の構成を示すブロック図である。
【図１７】遠隔操作システム１０における制御プログラムの制作及び配信処理の手順を示すシーケンス図である。
【図１８】遠隔操作システム１０における制御プログラムの起動の手順を示すシーケンス図（その１）である。図１９へ続く。
【図１９】遠隔操作システム１０における制御プログラムの起動の手順を示すシーケンス図（その２）である。図２０へ続く。
【図２０】遠隔操作システム１０における制御プログラムの起動の手順を示すシーケンス図（その３）である。
【図２１】遠隔操作システム１０における各機器に対する遠隔処理及び関連する処理の手順を示すフローチャートである。
【図２２】遠隔操作システム１０における機器情報取得処理の手順を示すシーケンス図である。
【図２３】遠隔操作システム１０における遠隔操作関連処理の手順を示すシーケンス図である。
【図２４】遠隔操作システム１０における機器制御ルール修正処理の手順を示すシーケンス図である。
【図２５】遠隔操作システム１０の確認サーバ装置２００とメモリカード４００との間における相互認証及び鍵共有の手順を示すシーケンス図（その１）である。図２６へ続く。
【図２６】遠隔操作システム１０の確認サーバ装置２００とメモリカード４００との間における相互認証及び鍵共有の手順を示すシーケンス図（その２）である。
【図２７】本発明の一態様である遠隔操作システム１０ａのシステム構成を示す。
【図２８】本発明の一態様である遠隔操作システム１０ｂにおける動作手順を示すシーケンス図である。
【図２９】遠隔操作システム１０ｂにおいて、制御プログラム６０５に対する複数の識別子片の埋め込み及び複数の識別子片の結合を示す図である。この図においては、複数の識別子片が、制御プログラム６０５の全体に分散して埋め込まれる。
【図３０】遠隔操作システム１０ｂにおいて、制御プログラム６０５に対する複数の識別子片の埋め込み及び複数の識別子片の結合を示す図である。この図においては、複数の識別子片が、制御プログラム６０５の一部分に分散して埋め込まれる。
【図３１】遠隔操作システム１０ｂにおいて、制御プログラム６５１内のダミー命令６５４に第１識別子の埋め込みを示す図である。
【図３２】遠隔操作システム１０ｂにおいて、埋込プログラム６６６の実行により、制御プログラム６６２に対する第１識別子の埋め込みを示す図である。
【図３３】本発明の一態様である遠隔操作システム１０ｃにおける動作手順を示すシーケンス図である。
【図３４】本発明の一態様である遠隔操作システム１０ｄにおける動作手順を示すシーケンス図である。
【図３５】本発明の実施の形態１としての遠隔操作システム１０ｅにおける動作手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
本発明の一態様は、操作端末に記憶されている制御プログラム内の遠隔操作命令の実行により、機器を遠隔操作する遠隔操作システムにおいて用いられる方法であって、第１時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第１識別子を取得する第１取得ステップと、取得した前記第１識別子を前記操作端末に記憶されている前記制御プログラムに埋め込む埋込ステップと、前記第１時点の後の第２時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第２識別子を取得する第２取得ステップと、前記制御プログラムに埋め込まれた前記第１識別子と、前記第２取得ステップにより取得された前記第２識別子とが一致するか否かを判断する判断ステップと、前記第１識別子と前記第２識別子とが一致しない場合、前記機器に対する遠隔操作を禁止する禁止ステップとを含むことを特徴とする。
【００１２】
この態様によると、不正な第三者により利用者の機器が遠隔操作されることを防ぐことができる。
【００１３】
ここで、前記操作端末は、サーバ装置を介して、前記機器を遠隔操作してもよい。前記サーバ装置は、前記第１識別子が埋め込まれる前の前記制御プログラムを記憶している。前記判断ステップは、前記操作端末において、前記第１識別子が埋め込まれた前記制御プログラムに一方向性演算を施して、第１演算値を生成し、生成した前記第１演算値と取得した前記第２識別子とに、演算を施して第２演算値を生成する第１ステップと、前記サーバ装置において、記憶している前記制御プログラムに第１識別子を埋め込み、第１識別子が埋め込まれた前記制御プログラムに前記一方向性演算と同一の一方向性演算を施して、第３演算値を生成し、生成した前記第３演算値と取得した前記第１識別子とに、前記演算と同一の演算を施して第４演算値を生成する第２ステップと、前記サーバ装置において、前記第２演算値と前記第４演算値とが一致するか否かを判断することにより、前記第１識別子と前記第２識別子とが一致するか否かを判断する第３ステップとを含むとしてもよい。
【００１４】
この構成によると、第１識別子と第２識別子とを直接比較することなく、一致の判断をすることができる。
【００１５】
ここで、前記方法において、さらに、前記第１取得ステップ、前記埋込ステップ、前記第２取得ステップ、前記判断ステップ及び前記禁止ステップによる前記第１識別子の取得、前記制御プログラムの埋込み、前記第２識別子の取得、前記判断及び前記禁止を繰り返し、前記埋込ステップにおいて、前記第１取得ステップにより前記第１識別子が取得される都度、当該第１識別子を埋め込むとしてもよい。
【００１６】
この構成によると、第１識別子の埋め込みを繰り返すので、不正な遠隔操作に対する防御性を高めることができる。
【００１７】
ここで、前記第１時点は、前記操作端末において、前記機器に対する遠隔操作を受け付けた時であり、前記第１取得ステップにおいて、前記遠隔操作を受け付ける都度、前記第１識別子を取得してもよい。
【００１８】
ここで、前記埋込ステップにおいて、乱数を生成し、生成した乱数と取得した第１識別子とに可逆の変換を施し、得られた変換値を前記制御プログラムに埋め込み、前記判断ステップにおいて、前記乱数と前記制御プログラムに埋め込まれた変換値とに、前記変換の逆変換を施して、前記第１識別子を復元してもよい。
【００１９】
この構成によると、乱数と第１識別子から生成された変換値を埋め込むので、不正な遠隔操作に対する防御性を高めることができる。
【００２０】
ここで、前記方法において、さらに、前記第１取得ステップ、前記埋込ステップ、前記第２取得ステップ、前記判断ステップ及び前記禁止ステップによる前記第１識別子の取得、前記制御プログラムの埋込み、前記第２識別子の取得、前記判断及び前記禁止を繰り返し、前記埋込ステップにおいて、前記第１取得ステップにより前記第１識別子が取得される都度、異なる乱数を生成し、生成した乱数と取得した前記第１識別子とに前記変換を施し、得られた前記変換値を前記制御プログラムに埋め込むとしてもよい。
【００２１】
ここで、前記判断ステップにおいて、前記第１識別子が埋め込まれた前記制御プログラムを取得し、取得した前記制御プログラムから前記第１識別子を抽出してもよい。
【００２２】
この構成によると、前記制御プログラムが別の制御プログラムに改ざんされた場合に、第１識別子を抽出できる可能性が低くなり、不正な遠隔操作に対する防御性を高めることができる。
【００２３】
ここで、前記埋込ステップにおいて、前記第１識別子を分割して複数の識別子片を生成し、生成した複数の識別子片を、前記制御プログラムの全体又はその一部に分散して埋め込み、前記判断ステップにおいて、前記制御プログラムの全体又はその一部から、前記複数の識別子片を抽出し、抽出して得られた前記複数の識別子片を結合して前記第１識別子を復元してもよい。
【００２４】
この構成によると、前記制御プログラムが別の制御プログラムに改ざんされた場合に、第１識別子を抽出できる可能性が低くなり、制御プログラムの不正な改ざんに対する防御性を高めることができる。
【００２５】
ここで、前記制御プログラムは、命令が記録されている命令領域と、データが記録されているデータ領域を含み、前記埋込ステップにおいて、前記第１識別子を、前記制御プログラム中の前記データ領域に埋め込むとしてもよい。
【００２６】
この構成によると、第１識別子をデータ領域に埋め込むので、制御プログラム中の命令に影響を与えない。
【００２７】
ここで、前記制御プログラムは、命令が記録されている命令領域と、データが記録されているデータ領域を含み、前記命令領域は、実行されないダミー命令を含み、前記埋込ステップにおいて、前記第１識別子を、前記制御プログラム中の前記ダミー命令に埋め込むとしてもよい。
【００２８】
この構成によると、第１識別子をダミー命令に埋め込むので、制御プログラム中の命令に影響を与えない。
【００２９】
ここで、前記埋込ステップにおいて、前記制御プログラムに対する前記第１識別子の埋込みを制御する埋込プログラムを取得し、前記操作端末において取得した前記埋込プログラムが実行されることにより、前記第１識別子が前記制御プログラムに埋め込まれるとしてもよい。
【００３０】
この構成によると、埋込プログラムにより、第１識別子の埋込みを制御することができる。
【００３１】
ここで、前記埋込プログラムは、前記制御プログラムにおける前記第１識別子の埋込み位置を記憶しており、前記埋込ステップにおいて、前記操作端末において前記埋込プログラムが実行されることにより、前記第１識別子が前記制御プログラム内の前記埋込み位置に埋め込まれるとしてもよい。
【００３２】
この構成によると、埋込プログラムにより、第１識別子を埋め込む位置を制御することができる。
【００３３】
ここで、前記第１時点は、前記制御プログラムが前記操作端末にインストールされる時、前記操作端末における前記制御プログラムの最初の起動時、又は、前記操作端末における前記制御プログラムの起動時であり、前記第２時点は、前記操作端末において、前記機器に対する遠隔操作を受け付けた時であるとしてもよい。
【００３４】
ここで、前記第１時点は、前記操作端末において、前記機器に対する第１遠隔操作を受け付けた時であり、前記第２時点は、前記操作端末において、前記機器に対する第２遠隔操作を受け付けた時であるとしてもよい。
【００３５】
ここで、前記操作端末は、サーバ装置を介して、前記機器を遠隔操作してもよい。前記方法は、さらに、前記操作端末において、前記機器に対する複数の遠隔操作のうち、利用者により選択可能な遠隔操作を表示する表示ステップと、前記操作端末において、利用者から、表示された遠隔操作のうち一の遠隔操作を受け付ける受付ステップと、前記操作端末において、受け付けた遠隔操作を、前記サーバ装置を介して、前記機器に対して送信する送信ステップとを含むとしてもよい。
【００３６】
ここで、前記操作端末は、サーバ装置を介して、前記機器を遠隔操作してもよい。前記方法は、さらに、前記操作端末において、前記機器に対する遠隔操作に対応付けて、前記遠隔操作を受け付けるための第１条件と、前記第１条件に代えて前記遠隔操作を受け付けるための変更候補としての第２条件とを表示する表示ステップと、前記操作端末において、利用者から、前記第２条件の指定を受け付ける受付ステップと、指定を受け付けた前記第２条件を、前記操作端末から前記サーバ装置に対して送信する送信ステップと、前記サーバ装置において、前記機器に対する前記遠隔操作に対応付けて、前記第１条件に代えて、前記第２条件を記憶する記憶ステップとを含むとしてもよい。
【００３７】
本発明の別の一態様は、記憶されている制御プログラム内の遠隔操作命令の実行により機器を遠隔操作する操作端末と、前記機器との間において、遠隔操作を中継するサーバ装置であって、第１時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第１識別子を取得する第１取得手段と、取得した前記第１識別子を前記操作端末に記憶されている前記制御プログラムに埋め込ませるために、前記第１識別子を前記操作端末に送信する送信手段と、前記第１時点の後の第２時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第２識別子を取得する第２取得手段と、前記制御プログラムに埋め込まれた前記第１識別子と、前記第２取得手段により取得された前記第２識別子とが一致するか否かを判断する判断手段と、前記第１識別子と前記第２識別子とが一致しない場合、前記機器に対する遠隔操作を禁止する禁止手段とを備えることを特徴とする。
【００３８】
この態様によると、不正な第三者により利用者の機器が遠隔操作されることを防ぐことができる。
【００３９】
本発明の別の一態様は、記憶されている制御プログラム内の遠隔操作命令の実行により機器を遠隔操作する操作端末と、前記機器との間において、遠隔操作を中継するサーバ装置において用いられるコンピュータプログラムを記録しているコンピュータ読取可能な記録媒体であって、第１時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第１識別子を取得する第１取得ステップと、取得した前記第１識別子を前記操作端末に記憶されている前記制御プログラムに埋め込ませるために、前記第１識別子を前記操作端末に送信する送信ステップと、前記第１時点の後の第２時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第２識別子を取得する第２取得ステップと、前記制御プログラムに埋め込まれた前記第１識別子と、前記第２取得ステップにより取得された前記第２識別子とが一致するか否かを判断する判断ステップと、前記第１識別子と前記第２識別子とが一致しない場合、前記機器に対する遠隔操作を禁止する禁止ステップとを実行するためのコンピュータプログラムを記録していることを特徴とする。
【００４０】
この態様によると、不正な第三者により利用者の機器が遠隔操作されることを防ぐことができる。
【００４１】
本発明の別の一態様は、記憶されている制御プログラム内の遠隔操作命令の実行により機器を遠隔操作する操作端末と、前記機器との間において、遠隔操作を中継するサーバ装置において用いられる方法であって、第１時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第１識別子を取得する第１取得ステップと、取得した前記第１識別子を前記操作端末に記憶されている前記制御プログラムに埋め込ませるために、前記第１識別子を前記操作端末に送信する送信ステップと、前記第１時点の後の第２時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第２識別子を取得する第２取得ステップと、前記制御プログラムに埋め込まれた前記第１識別子と、前記第２取得ステップにより取得された前記第２識別子とが一致するか否かを判断する判断ステップと、前記第１識別子と前記第２識別子とが一致しない場合、前記機器に対する遠隔操作を禁止する禁止ステップとを含むことを特徴とする。
【００４２】
この態様によると、不正な第三者により利用者の機器が遠隔操作されることを防ぐことができる。
【００４３】
本発明の別の一態様は、記憶されている制御プログラム内の遠隔操作命令の実行により機器を遠隔操作する操作端末と、前記機器との間において、遠隔操作を中継するサーバ装置を構成する集積回路であって、第１時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第１識別子を取得する第１取得手段と、取得した前記第１識別子を前記操作端末に記憶されている前記制御プログラムに埋め込ませるために、前記第１識別子を前記操作端末に送信する送信手段と、前記第１時点の後の第２時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第２識別子を取得する第２取得手段と、前記制御プログラムに埋め込まれた前記第１識別子と、前記第２取得手段により取得された前記第２識別子とが一致するか否かを判断する判断手段と、前記第１識別子と前記第２識別子とが一致しない場合、前記機器に対する遠隔操作を禁止する禁止手段とを備えることを特徴とする。
【００４４】
この態様によると、不正な第三者により利用者の機器が遠隔操作されることを防ぐことができる。
【００４５】
本発明の別の一態様は、記憶されている制御プログラム内の遠隔操作命令の実行により機器を遠隔操作する操作端末と、前記機器と、前記操作端末と前記機器との間において、遠隔操作を中継するサーバ装置とから構成されるシステムであって、前記サーバ装置は、第１時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第１識別子を取得する第１取得手段と、取得した前記第１識別子を前記操作端末に記憶されている前記制御プログラムに埋め込ませるために、前記第１識別子を前記操作端末に送信する送信手段と、前記第１時点の後の第２時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第２識別子を取得する第２取得手段と、前記制御プログラムに埋め込まれた前記第１識別子と、前記第２取得手段により取得された前記第２識別子とが一致するか否かを判断する判断手段と、前記第１識別子と前記第２識別子とが一致しない場合、前記機器に対する遠隔操作を禁止する禁止手段とを備え、前記操作端末は、当該操作端末に近接する可搬媒体から、当該可搬媒体に固有の識別子を取得する取得手段と、取得した前記識別子を前記サーバ装置に対して送信する送信手段と、前記サーバ装置から、前記第１識別子を受信し、受信した第１識別子を前記制御プログラムに埋め込む埋込手段とを備えることを特徴とする。
【００４６】
この態様によると、不正な第三者により利用者の機器が遠隔操作されることを防ぐことができる。
【００４７】
１．実施の形態１
本発明に係る実施の形態１としての遠隔操作システム１０ｅについて説明する。
【００４８】
（１）操作端末に記憶されている制御プログラム内の遠隔操作命令の実行により、機器を遠隔操作する遠隔操作システム１０ｅにおいて用いられる方法について、図３５に示すフローチャートを用いて説明する。
【００４９】
遠隔操作システム１０ｅにおいて用いられる方法は、第１時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第１識別子を取得する第１取得ステップ（ステップＳ８０１）と、取得した前記第１識別子を前記操作端末に記憶されている前記制御プログラムに埋め込む埋込ステップ（ステップＳ８０２）と、前記第１時点の後の第２時点において、前記機器に対する遠隔操作元の操作端末に近接する可搬媒体に固有の第２識別子を取得する第２取得ステップ（ステップＳ８０３）と、前記制御プログラムに埋め込まれた前記第１識別子と、第２取得ステップにより取得された前記第２識別子とが一致するか否かを判断する判断ステップ（ステップＳ８０４）と、前記第１識別子と前記第２識別子とが一致しない場合、前記機器に対する遠隔操作を禁止する禁止ステップ（ステップＳ８０５）とを含む。
【００５０】
（２）前記操作端末は、サーバ装置を介して、前記機器を遠隔操作してもよい。前記サーバ装置は、前記第１識別子が埋め込まれる前の前記制御プログラムを記憶している。
【００５１】
前記判断ステップは、前記操作端末において、前記第１識別子が埋め込まれた前記制御プログラムに一方向性演算を施して、第１演算値を生成し、生成した前記第１演算値と取得した前記第２識別子とに、演算を施して第２演算値を生成する第１ステップと、前記サーバ装置において、記憶している前記制御プログラムに第１識別子を埋め込み、第１識別子が埋め込まれた前記制御プログラムに前記一方向性演算と同一の一方向性演算を施して、第３演算値を生成し、生成した前記第３演算値と取得した前記第１識別子とに、前記演算と同一の演算を施して第４演算値を生成する第２ステップと、前記サーバ装置において、前記第２演算値と前記第４演算値とが一致するか否かを判断することにより、前記第１識別子と前記第２識別子とが一致するか否かを判断する第３ステップとを含むとしてもよい。
【００５２】
（３）前記方法において、さらに、前記第１取得ステップ、前記埋込ステップ、前記第２取得ステップ、前記判断ステップ及び前記禁止ステップによる前記第１識別子の取得、前記制御プログラムの埋込み、前記第２識別子の取得、前記判断及び前記禁止を繰り返す。前記埋込ステップにおいて、前記第１取得ステップにより前記第１識別子が取得される都度、当該第１識別子を埋め込むとしてもよい。
【００５３】
（４）前記第１時点は、前記操作端末において、前記機器に対する遠隔操作を受け付けた時であるとしてもよい。
【００５４】
ここで、前記第１取得ステップにおいて、前記遠隔操作を受け付ける都度、前記第１識別子を取得する。
【００５５】
（５）前記埋込ステップにおいて、乱数を生成し、生成した乱数と取得した第１識別子とに可逆の変換を施し、得られた変換値を前記制御プログラムに埋め込み、前記判断ステップにおいて、前記乱数と前記制御プログラムに埋め込まれた変換値とに、前記変換の逆変換を施して、前記第１識別子を復元してもよい。
【００５６】
（６）前記方法において、さらに、前記第１取得ステップ、前記埋込ステップ、前記第２取得ステップ、前記判断ステップ及び前記禁止ステップによる前記第１識別子の取得、前記制御プログラムの埋込み、前記第２識別子の取得、前記判断及び前記禁止を繰り返してもよい。
【００５７】
前記埋込ステップにおいて、前記第１取得ステップにより前記第１識別子が取得される都度、異なる乱数を生成し、生成した乱数と取得した前記第１識別子とに前記変換を施し、得られた前記変換値を前記制御プログラムに埋め込む。
【００５８】
（７）前記判断ステップにおいて、前記第１識別子が埋め込まれた前記制御プログラムを取得し、取得した前記制御プログラムから前記第１識別子を抽出してもよい。
【００５９】
（８）前記埋込ステップにおいて、前記第１識別子を分割して複数の識別子片を生成し、生成した複数の識別子片を、前記制御プログラムの全体又はその一部に分散して埋め込むとしてもよい。
【００６０】
前記判断ステップにおいて、前記制御プログラムの全体又はその一部から、前記複数の識別子片を抽出し、抽出して得られた前記複数の識別子片を結合して前記第１識別子を復元する。
【００６１】
（９）前記制御プログラムは、命令が記録されている命令領域と、データが記録されているデータ領域を含むとしてもよい。
【００６２】
前記埋込ステップにおいて、前記第１識別子を、前記制御プログラム中の前記データ領域に埋め込む。
【００６３】
（１０）前記制御プログラムは、命令が記録されている命令領域と、データが記録されているデータ領域を含み、前記命令領域は、実行されないダミー命令を含むとしてもよい。前記埋込ステップにおいて、前記第１識別子を、前記制御プログラム中の前記ダミー命令に埋め込む。
【００６４】
（１１）前記埋込ステップにおいて、前記制御プログラムに対する前記第１識別子の埋込みを制御する埋込プログラムを取得し、前記操作端末において取得した前記埋込プログラムが実行されることにより、前記第１識別子が前記制御プログラムに埋め込まれるとしてもよい。
【００６５】
（１２）前記埋込プログラムは、前記制御プログラムにおける前記第１識別子の埋込み位置を記憶しているとしてもよい。前記埋込ステップにおいて、前記操作端末において前記埋込プログラムが実行されることにより、前記第１識別子が前記制御プログラム内の前記埋込み位置に埋め込まれる。
【００６６】
（１３）前記第１時点は、前記制御プログラムが前記操作端末にインストールされる時、前記操作端末における前記制御プログラムの最初の起動時、又は、前記操作端末における前記制御プログラムの起動時であるとしてもよい。
【００６７】
前記第２時点は、前記操作端末において、前記機器に対する遠隔操作を受け付けた時である。
【００６８】
（１４）前記第１時点は、前記操作端末において、前記機器に対する第１遠隔操作を受け付けた時であるとしてもよい。
【００６９】
前記第２時点は、前記操作端末において、前記機器に対する第２遠隔操作を受け付けた時である。
【００７０】
（１５）前記操作端末は、サーバ装置を介して、前記機器を遠隔操作してもよい。
【００７１】
前記方法は、さらに、前記操作端末において、前記機器に対する複数の遠隔操作のうち、利用者により選択可能な遠隔操作を表示する表示ステップと、前記操作端末において、利用者から、表示された遠隔操作のうち一の遠隔操作を受け付ける受付ステップと、前記操作端末において、受け付けた遠隔操作を、前記サーバ装置を介して、前記機器に対して送信する送信ステップとを含むとしてもよい。
【００７２】
（１６）前記操作端末は、サーバ装置を介して、前記機器を遠隔操作してもよい。
【００７３】
前記方法は、さらに、前記操作端末において、前記機器に対する遠隔操作に対応付けて、前記遠隔操作を受け付けるための第１条件と、前記第１条件に代えて前記遠隔操作を受け付けるための変更候補としての第２条件とを表示する表示ステップと、前記操作端末において、利用者から、前記第２条件の指定を受け付ける受付ステップと、指定を受け付けた前記第２条件を、前記操作端末から前記サーバ装置に対して送信する送信ステップと、前記サーバ装置において、前記機器に対する前記遠隔操作に対応付けて、前記第１条件に代えて、前記第２条件を記憶する記憶ステップとを含むとしてもよい。
【００７４】
２．実施の形態２
本発明に係る実施の形態２としての遠隔操作システム１０について説明する。
【００７５】
２．１  遠隔操作システム１０
遠隔操作システム１０は、図１に示すように、配信サーバ装置１００、確認サーバ装置２００、端末装置３００、メモリカード４００、機器５００ａ、５００ｂ、５００ｃ、５００ｄ及び５００ｅから構成されている。
【００７６】
配信サーバ装置１００、確認サーバ装置２００及び端末装置３００は、ネットワーク２０を介して、接続されている。また、機器５００ａ、５００ｂ、５００ｃ、５００ｄ及び５００ｅは、利用者の家屋４０に設置されている。機器５００ａ、５００ｂ、５００ｃ、５００ｄ及び５００ｅは、ルータ３０を介して、ネットワーク２０に接続されている。
【００７７】
機器５００ａ、５００ｂ、５００ｃ、５００ｄ及び５００ｅは、それぞれ、一例として、テレビ受像機、エアコン、照明器具、ドアの施錠機構及び監視カメラである。
【００７８】
端末装置３００には、可搬型のメモリカード４００が装着される。
【００７９】
なお、以下において、機器５００ａ、５００ｂ、５００ｃ、５００ｄ及び５００ｅを代表して、機器５００として言及する場合がある。
【００８０】
端末装置３００は、確認サーバ装置２００を介して、機器５００に対して、例えば、次のような遠隔操作命令を送信する。
【００８１】
テレビ受像機である機器５００ａに対して、電源のＯＮ、ＯＦＦ、チャネルの選択、録画の予約、予約の解除、受信再生中のチャネル情報の取得、受信再生中の番組情報の取得。エアコンである機器５００ｂに対して、電源のＯＮ、ＯＦＦ、設定温度の変更、現在の温度の取得、現在の湿度の取得、冷房、暖房、送風の切換え。照明器具である機器５００ｃに対して、電源のＯＮ、ＯＦＦ、明るさの切換え。ドアの施錠機構である機器５００ｄに対して、施錠、開錠、施錠されているか、開錠されているかを示す施錠状況の取得。監視カメラである機器５００ｅに対して、録画の開始、録画の停止、録画された映像のテレビ受像機への転送、録画された映像の削除。
【００８２】
確認サーバ装置２００は、機器を遠隔操作するための制御プログラムを配信サーバ装置１００に対して送信する。端末装置３００は、配信サーバ装置１００から制御プログラムを受信し、受信した制御プログラムをインストールする。
【００８３】
端末装置３００は、利用者の指示により、制御プログラムを起動する。次に、端末装置３００は、端末装置３００に装着されたメモリカード４００から固有識別子を取得し、取得した固有識別子を確認サーバ装置２００に対して送信する。端末装置３００は、付随データを記憶していれば、制御プログラムに付随データを埋め込む。
【００８４】
確認サーバ装置２００は、端末装置３００から固有識別子を取得する。端末装置３００の利用者からのログインが正常になされれば、確認サーバ装置２００は、取得した固有識別子を含む付随データを生成し、生成した付随データを端末装置３００に対して送信する。端末装置３００は、付随データを受信し、受信した付随データを記憶する。
【００８５】
確認サーバ装置２００は、付随データを制御プログラムに埋め込み、制御プログラムからハッシュ値を算出し、乱数、ハッシュ値及び固有識別子を用いて、評価値Ｓを算出する。
【００８６】
端末装置３００は、メモリカード４００から固有識別子を取得し、制御プログラムからハッシュ値を算出し、乱数、ハッシュ値及び固有識別子を用いて、評価値Ｓ’を算出する。
【００８７】
確認サーバ装置２００は、端末装置３００から評価値Ｓ’を受信し、評価値Ｓと評価値Ｓ’とを比較する。評価値Ｓと評価値Ｓ’とが一致すれば、機器に対する遠隔操作を許可する。評価値Ｓと評価値Ｓ’とが一致しなければ、機器に対する遠隔操作を禁止する。
【００８８】
２．２  配信サーバ装置１００
配信サーバ装置１００は、図２に示すように、制御部１０１、通信部１０２、相互認証部１０３、鍵格納部１０４、記憶部１０５、アカウント格納部１０６及びアカウント確認部１０７から構成されている。
【００８９】
配信サーバ装置１００は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクデバイスなどから構成されるコンピュータシステムである。前記ＲＡＭ又は前記ハードディスクデバイスには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、配信サーバ装置１００は、その機能を達成する。
【００９０】
（１）鍵格納部１０４及び記憶部１０５
鍵格納部１０４は、一例として、ハードディスクデバイスから構成されている。鍵格納部１０４は、配信サーバ装置１００に割り当てられた私有鍵を記憶している。また、予め、システム鍵Ｋｓｃを記憶している。システム鍵Ｋｓｃは、遠隔操作システムに共通の鍵である。なお、確認サーバ装置２００、端末装置３００及びメモリカード４００が有するどの鍵格納部も、鍵格納部１０４が有するシステム鍵Ｋｓｃと同一のシステム鍵Ｋｓｃを予め記憶している。
【００９１】
記憶部１０５は、一例として、ハードディスクデバイスから構成されている。記憶部１０５は、制御プログラムを記憶するための領域を備えている。
【００９２】
（２）通信部１０２
通信部１０２は、ネットワーク２０を介して、確認サーバ装置２００及び端末装置３００との間で、情報の送受信を行う。
【００９３】
具体的には、通信部１０２は、確認サーバ装置２００から、ネットワーク２０を介して、安全な手段により、制御プログラムを受信する。制御プログラムを受信すると、通信部１０２は、受信した制御プログラムを記憶部１０５に書き込む。また、通信部１０２は、端末装置３００から、ネットワーク２０を介して、制御プログラムの要求を受信する。制御プログラムの要求を受信すると、通信部１０２は、受信した要求を制御部１０１に対して出力する。また、通信部１０２は、端末装置３００から、ネットワーク２０を介して、安全な手段により、利用者識別子及びパスワードを受信する。利用者識別子及びパスワードを受信すると、通信部１０２は、受信した利用者識別子及びパスワードをアカウント確認部１０７に対して出力する。
【００９４】
また、通信部１０２は、制御部１０１の制御により、利用者識別子及びパスワードの要求を、端末装置３００に対して送信する。また、通信部１０２は、制御部１０１の制御により、記憶部１０５に記憶されている制御プログラムを読み出す。次に、通信部１０２は、読み出した制御プログラムを、安全な手段により、端末装置３００に対して送信する。また、通信部１０２は、制御部１０１の制御により、メッセージを端末装置３００に対して送信する。なお、安全な手段については、後述する。
【００９５】
（３）アカウント格納部１０６及びアカウント確認部１０７
アカウント格納部１０６は、利用者に割り当てられた利用者識別子及び利用者のパスワードを対応付けて記憶している。利用者識別子及びパスワードは、配信サーバ装置１００の操作者により、入力されたものである。
【００９６】
アカウント確認部１０７は、端末装置３００から、ネットワーク２０及び通信部１０２を介して、安全な手段により、端末装置３００の利用者の利用者識別子及びパスワードを受信する。利用者識別子及びパスワードを受信すると、次に、アカウント確認部１０７は、受信した利用者識別子及びパスワードが、アカウント格納部１０６において、記憶されているか否かを確認する。
【００９７】
受信した利用者識別子及びパスワードが、アカウント格納部１０６に記憶されていない場合、アカウント確認部１０７は、ログインに失敗した（ログイン異常）とみなす。受信した利用者識別子及びパスワードが、アカウント格納部１０６に記憶されている場合、アカウント確認部１０７は、ログインに成功した（ログイン正常）とみなす。
【００９８】
受信した利用者識別子及びパスワードが、アカウント格納部１０６において、記憶されていない場合、つまり、ログイン異常の場合、アカウント確認部１０７は、ログイン異常を示すメッセージを生成する。次に、アカウント確認部１０７は、生成したメッセージを、通信部１０２及びネットワーク２０を介して、端末装置３００に対して送信する。次に、アカウント確認部１０７は、受信した利用者識別子及びパスワードによるログインを禁止する。
【００９９】
受信した利用者識別子及びパスワードが、アカウント格納部１０６において、記憶されている場合、アカウント確認部１０７は、受信した利用者識別子及びパスワードによるログインを許可する。
【０１００】
アカウント確認部１０７は、ログインの許可又は禁止を示す許否情報を制御部１０１に対して出力する。
【０１０１】
（４）制御部１０１
制御部１０１は、通信部１０２、相互認証部１０３、鍵格納部１０４、記憶部１０５、アカウント格納部１０６及びアカウント確認部１０７を制御する。
【０１０２】
制御部１０１は、端末装置３００から、ネットワーク２０及び通信部１０２を介して、制御プログラムの要求を受信する。制御プログラムの要求を受信すると、制御部１０１は、通信部１０２及びネットワーク２０を介して、端末装置３００に対して、利用者識別子及びパスワードの要求を送信する。
【０１０３】
制御部１０１は、アカウント確認部１０７から、ログインの許可又は禁止を示す許否情報を受け取る。
【０１０４】
制御プログラムの要求を受信し、許否情報がログインの許可を示す場合、制御部１０１は、通信部１０２に対して、記憶部１０５から制御プログラムを読み出すように制御する。次に、通信部１０２に対して、読み出した制御プログラムを、安全な手段により、通信部１０２及びネットワーク２０を介して、端末装置３００に対して送信するように、制御する。
【０１０５】
（５）相互認証部１０３
相互認証部１０３は、確認サーバ装置２００の相互認証部２０３と、同様の構成を有している。
【０１０６】
相互認証部１０３は、制御プログラムを受信する場合に、確認サーバ装置２００の相互認証部２０３との間で、相互認証及び鍵共有を行う。また、相互認証部１０３は、制御プログラムを送信する場合に、端末装置３００の相互認証部３０３との間で、相互認証及び鍵共有を行う。なお、相互認証及び鍵共有については、後述する。
【０１０７】
また、相互認証部１０３は、確認サーバ装置２００又は端末装置３００との間の安全な手段による通信を支援する。なお、安全な手段による通信については、後述する。
【０１０８】
２．３  確認サーバ装置２００
確認サーバ装置２００は、図３に示すように、制御部２０１、通信部２０２、相互認証部２０３、鍵格納部２０４、プログラム制作部２０６、プログラム格納部２０７、付随データ生成部２０８、アカウント格納部２０９、信頼性評価部２１０、機器情報格納部２１２、機器制御部２１３、署名生成部２１４、アカウント確認部２１５及び固有識別子取得部２１６から構成されている。
【０１０９】
確認サーバ装置２００は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクデバイス、ディスプレィデバイス、キーボードなどから構成されるコンピュータシステムである。前記ＲＡＭ又は前記ハードディスクデバイスには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、確認サーバ装置２００は、その機能を達成する。
【０１１０】
（１）プログラム格納部２０７、鍵格納部２０４及び機器情報格納部２１２
（プログラム格納部２０７）
プログラム格納部２０７は、一例として、ハードディスクデバイスから構成されている。プログラム格納部２０７は、制御プログラム２３１及び制御プログラム３３１を格納するための領域を備えている。
【０１１１】
制御プログラム２３１は、配信サーバ装置１００を介して、端末装置３００に対して配信すべきコンピュータプログラムである。一方、制御プログラム３３１は、端末装置３００においてインストールされたコンピュータプログラムと同一のコンピュータプログラムである。確認サーバ装置２００が端末装置３００においてインストールされた制御プログラムの状態を再現するために、プログラム格納部２０７は、制御プログラム３３１を記憶するための領域を備えている。
【０１１２】
（ａ）図４に制御プログラム２３１のデータ構造を示す。この図に示すように、制御プログラム２３１は、実行部領域２３２、第１データ領域２３３及び署名領域２３４から構成されている。
【０１１３】
実行部領域２３２には、複数の命令群２３２ａ、２３２ｂ、・・・が記録されている。各命令群は、端末装置３００において実行されるオペレーションコマンドを含む。第１データ領域２３３は、複数の命令群２３２ａ、２３２ｂ、・・・が実行される際に、参照のみされるデータ２３３ａ、２３３ｂ、・・・を含む。署名領域２３４は、署名データ２３４ａを含む。
【０１１４】
署名データ２３４ａは、署名生成部２１４により生成される。署名データ２３４ａは、確認サーバ装置２００に割り当てられた私有鍵２４１を用いて、制御プログラム２３１の実行部領域２３２及び第１データ領域２３３に、デジタル署名Ｓｉｇｎを施して得られた署名データである。
【０１１５】
署名データ２３４ａ＝Ｓｉｇｎ（私有鍵２４１、（実行部領域２３２及び第１データ領域２３３））
ここで、Ｓｉｇｎ（Ａ、Ｂ）は、私有鍵Ａを用いて、データＢに対して、デジタル署名Ｓｉｇｎを施すことにより、生成された署名データを示す。ここで、デジタル署名Ｓｉｇｎは、一例として、ＥＣＤＳＡ（Elliptic Curve Digital Signature Standard）によるデジタル署名アルゴリズムである。
【０１１６】
署名データ２３４ａを用いて、デジタル署名Ｓｉｇｎに対応するデジタル署名検証Ｖｒｆｙを行うことにより、実行部領域２３２及び第１データ領域２３３が改ざんされていないことを確認することができる。ここで、デジタル署名検証Ｖｒｆｙは、一例として、ＥＣＤＳＡ（Elliptic Curve Digital Signature Standard）によるデジタル署名検証アルゴリズムである。
【０１１７】
（ｂ）図１０に制御プログラム３３１のデータ構造を示す。この図に示すように、制御プログラム３３１は、実行部領域３３２、第１データ領域３３３、署名領域３３４、第２データ領域３３５及び第３データ領域３３６から構成されている。
【０１１８】
実行部領域３３２には、複数の命令群３３２ａ、３３２ｂ、・・・が記録されている。各命令群は、端末装置３００において実行されるオペレーションコマンドを含む。第１データ領域３３３は、複数の命令群３３２ａ、３３２ｂ、・・・が実行される際に、参照のみされるデータ３３３ａ、３３３ｂ、・・・を含む。署名領域３３４は、署名データ３３４ａを含む。
【０１１９】
実行部領域３３２、第１データ領域３３３及び署名領域３３４は、それぞれ、図４に示す実行部領域２３２、第１データ領域２３３及び署名領域２３４と同一である。実行部領域３３２に含まれている複数の命令群３３２ａ、３３２ｂ、・・・は、図４に示す複数の命令群２３２ａ、２３２ｂ、・・・と同一である。第１データ領域３３３に含まれているデータ３３３ａ、３３３ｂ、・・・は、図４に示すデータ２３３ａ、２３３ｂ、・・・と同一である。また、署名領域３３４に含まれている署名データ３３４ａは、図４に示す署名データ２３４ａと同一である。
【０１２０】
第２データ領域３３５には、付随データ３３５ａが含まれる。付随データ３３５ａについては、後述する。
【０１２１】
第３データ領域３３６には、データ３３６ａが含まれる。データ３３６ａは、命令群３３２ａ、３３２ｂ、・・・により、追加の書き込み、更新、上書き、参照がされるデータである。
【０１２２】
（鍵格納部２０４）
鍵格納部２０４は、一例として、ハードディスクデバイスから構成されている。鍵格納部２０４は、確認サーバ装置２００に割り当てられた私有鍵２４１を記憶している。また、予め、システム鍵Ｋｓｃを記憶している。
【０１２３】
（機器情報格納部２１２）
機器情報格納部２１２は、予め、条件テーブル２７１及び制御ルール管理テーブル２８１を保持している。
【０１２４】
条件テーブル２７１は、図７に一例として示すように、複数の条件情報を記憶するための領域を備えている。
【０１２５】
各条件情報は、機器情報及び条件を対応付けて含む。機器情報は、機器に関する情報の種類を示す。条件は、機器情報により示される機器状態情報を取得するための条件を示す。機器状態情報は、機器情報によりその種類が示され、機器における現実の状態を示す情報である。
【０１２６】
ここで、機器がエアコンである場合、機器情報の一例は、「エアコンの室内温度、湿度」である。また、機器情報により示される機器状態情報の一例は、当該エアコンにより現実に測定された室内温度「２５度」及び湿度「５０パーセント」である。
【０１２７】
また、機器がテレビ受像機である場合、機器情報の一例は、「再生中のチャネル」である。また、機器情報により示される機器状態情報の一例は、当該テレビ受像機により現実に再生されているチャネル「１６」である。
【０１２８】
また、機器がＤＶＤ再生装置である場合、機器情報の一例は、「再生中のＤＶＤのタイトル」である。また、機器情報により示される機器状態情報の一例は、当該ＤＶＤ再生装置により現実に再生されているＤＶＤのタイトル「銀河戦争」である。
【０１２９】
条件の具体例は、端末装置３００から、確認サーバ装置２００に対して、ログインしている必要があるか否か、及び、端末装置３００に装着されたメモリカード４００の固有識別子が必要であるか否かである。
【０１３０】
条件テーブル２７１は、一例として、条件情報２７２を含んでいる。条件情報２７２は、機器情報２７３「エアコンの室内温度、湿度」及び条件２７４「ログイン不要、固有識別子要」を対応付けて含む。この条件情報２７２は、機器であるエアコンにより測定された室内温度及び湿度を、ネットワーク２０を介して、端末装置３００が取得するためには、端末装置３００から、確認サーバ装置２００に対して、ログインは不要であるが、固有識別子が必要であることを示している。
【０１３１】
制御ルール管理テーブル２８１は、図８に示すように、利用者識別子と、複数の制御ルール情報とを対応付けて記憶するための領域を備えている。
【０１３２】
利用者識別子は、遠隔操作システム１０の利用者を識別するための識別情報である。
各制御ルール情報は、操作内容、条件及び項目を含む。操作内容は、利用者に許可することができる操作の内容を示す。条件は、当該操作内容を利用者に許可する場合の条件を示す。項目は、操作内容により操作の対象となる項目を示す。
【０１３３】
制御ルール管理テーブル２８１は、図８に示すように、一例として、制御ルール情報２８３を含む。制御ルール情報２８３は、操作内容２８４「ドア開閉」、条件２８５「固有識別子要」及び項目２８６「施錠」を含む。
【０１３４】
このように、制御ルール情報２８３は、ドアを開閉するという操作内容に対し、固有識別子が必要であり、この操作内容においては、施錠が操作の対象となる、ことを示している。
【０１３５】
（２）プログラム制作部２０６
プログラム制作部２０６は、確認サーバ装置２００の利用者の操作により、制御プログラムを制作する。プログラム制作部２０６は、制作された制御プログラムをプログラム格納部２０７に書き込む。
【０１３６】
制御プログラムは、遠隔操作の対象である機器５００に関する情報の取得、機器５００の遠隔操作に関連する操作、機器制御ルールの修正及びその他の指示をするためのコンピュータプログラムを含んでいる。
【０１３７】
ここで、制作される制御プログラムは、一例として、図４に示す制御プログラム２３１のうち、実行部領域２３２及び第１データ領域２３３からなる。
【０１３８】
また、プログラム制作部２０６は、確認サーバ装置２００の利用者の操作により、プログラム格納部２０７から、図４に示す制御プログラム２３１を読み出す。次に、読み出した制御プログラム２３１を、プログラム格納部２０７にインストールする。この結果、図１０に示す制御プログラム３３１がプログラム格納部２０７に格納される。制御プログラム３３１においては、上述したように、制御プログラム２３１に対して、第２データ領域３３５及び第３データ領域３３６が付加されている。この時点において、第２データ領域３３５及び第３データ領域３３６は、何も記録されていない初期状態である。
【０１３９】
（３）アカウント格納部２０９及びアカウント確認部２１５
（アカウント格納部２０９）
アカウント格納部２０９は、アカウント管理テーブル２６１を保持している。
【０１４０】
アカウント管理テーブル２６１は、図６に一例として示すように、複数のアカウント情報を記憶するための領域を備えている。各アカウント情報は、利用者に対応している。各アカウント情報は、利用者識別子、パスワード、時変パラメータ及び固有識別子を含む。利用者識別子は、当該利用者を一意に識別するための識別情報である。パスワードは、当該利用者であることを認証するための認証情報である。時変パラメータは、その都度生成される乱数である。固有識別子は、当該利用者が有するメモリカードに固有の識別情報である。
【０１４１】
アカウント管理テーブル２６１は、図６に一例として示すように、アカウント情報２６２を含んでいる。アカウント情報２６２は、利用者識別子２６３「ＳＡＴＯ」、パスワード２６４「１２３４」、時変パラメータ２６５「ＡＤ７Ｃ」及び固有識別子２６６「８ＤＡ４」を含む。
【０１４２】
（アカウント確認部２１５）
アカウント確認部２１５は、端末装置３００から、ネットワーク２０及び通信部２０２を介して、ログインの要否を受信する。次に、アカウント確認部２１５は、受信したログインの要否が、ログインを要求することを示すか、要求しないことを示すかを判断する。
【０１４３】
受信したログインの要否が、ログインを要求しないことを示す場合、アカウント確認部２１５は、ログインの処理を行わない。
【０１４４】
受信したログインの要否が、ログインを要求することを示す場合、アカウント確認部２１５は、端末装置３００から、ネットワーク２０及び通信部２０２を介して、安全な手段により、利用者の利用者識別子及びパスワードを受信する。安全な手段については、後述する。次に、アカウント確認部２１５は、受信した利用者識別子及びパスワードの組が、アカウント格納部２０９のアカウント管理テーブル２６１に記憶されているか否かを確認する。
【０１４５】
アカウント確認部２１５は、端末装置３００からログインの要否を受信した後、一例として、５分以上、経過しても、端末装置３００から利用者識別子及びパスワードを受信しない場合には、ログインに失敗した（ログイン異常）とみなす。また、受信した利用者識別子及びパスワードが、アカウント管理テーブル２６１に記憶されていない場合、アカウント確認部２１５は、ログインに失敗した（ログイン異常）とみなす。
【０１４６】
受信した利用者識別子及びパスワードが、アカウント管理テーブル２６１に記憶されている場合、アカウント確認部２１５は、ログインに成功した（ログイン正常）とみなす。
【０１４７】
アカウント確認部２１５は、ログイン正常か又はログイン異常かを示すログイン結果を制御部２０１に通知する。
【０１４８】
ログイン異常の場合、アカウント確認部２１５は、ログイン異常を示すメッセージを生成する。次に、アカウント確認部２１５は、当該メッセージを、通信部２０２及びネットワーク２０を介して、端末装置３００に対して送信する。
【０１４９】
（４）固有識別子取得部２１６
固有識別子取得部２１６は、制御部２０１から、接続要求を受け取る。接続要求を受け取ると、相互認証及び鍵共有がなされた後、固有識別子取得部２１６は、通信部２０２、ネットワーク２０及び端末装置３００を介して、メモリカード４００に対して、固有識別子の要求を送信する。
【０１５０】
次に、固有識別子取得部２１６は、メモリカード４００から、端末装置３００、ネットワーク２０及び通信部２０２を介して、安全な手段により、固有識別子Ｙ又はメモリカード４００に固有識別子が記録されていないことを示すメッセージ「固有識別子無し」を受信する。安全な手段については、後述する。また、固有識別子取得部２１６は、メモリカード４００に対して、固有識別子の要求を送信した後、所定時間を経過しても、固有識別子Ｙ又は固有識別子が記録されていないことを示すメッセージを受信しないときは、メッセージ「固有識別子無し」を生成する。ここで、所定時間は、一例として、２００ｍ秒である。
【０１５１】
次に、固有識別子取得部２１６は、取得した固有識別子Ｙ又はメッセージ「固有識別子無し」を付随データ生成部２０８及び信頼性評価部２１０に対して出力する。
【０１５２】
（５）制御部２０１
制御部２０１は、通信部２０２、相互認証部２０３、鍵格納部２０４、プログラム制作部２０６、プログラム格納部２０７、付随データ生成部２０８、アカウント格納部２０９、信頼性評価部２１０、機器情報格納部２１２、機器制御部２１３、署名生成部２１４、アカウント確認部２１５及び固有識別子取得部２１６を制御する。
【０１５３】
また、制御部２０１は、端末装置３００から、ネットワーク２０及び通信部２０２を介して、機器操作のための接続要求を受け取る。接続要求を受け取ると、制御部２０１は、相互認証部２０３及び固有識別子取得部２１６に対して、機器操作のための接続要求を出力する。
【０１５４】
制御部２０１は、アカウント確認部２１５から、ログイン正常か又はログイン異常かを示すログイン結果を受け取る。ログイン正常を示すログイン結果を受け取った場合、制御部１０１は、受信した利用者識別子及びパスワードを記憶する。
【０１５５】
（６）通信部２０２
通信部２０２は、制御部２０１の制御により、ネットワーク２０を介して、配信サーバ装置１００、端末装置３００、メモリカード４００、機器５００ａ、５００ｂ、５００ｃ、５００ｄ及び５００ｅとの間で、情報の送受信を行う。
【０１５６】
具体的には、通信部２０２は、制御部２０１の制御により、ネットワーク２０を介して、制御プログラムを配信サーバ装置１００に対して送信する。
【０１５７】
また、通信部２０２は、制御部２０１の制御により、ネットワーク２０及び端末装置３００を介して、固有識別子の要求をメモリカード４００に対して送信する。また、通信部２０２は、ネットワーク２０を介して、メッセージ、付随データ、乱数Ｒを端末装置３００に対して送信する。
【０１５８】
また、通信部２０２は、端末装置３００から、ネットワーク２０を介して、機器操作のための接続要求、ログインの要否、利用者識別子及びパスワード、機器に対する操作指示並びに評価値Ｓ’を受信する。通信部２０２は、メモリカード４００から、端末装置３００及びネットワーク２０を介して、固有識別子Ｙ又はメッセージ「固有識別子無し」を受信する。
【０１５９】
（７）相互認証部２０３
相互認証部２０３は、制御部２０１から、制御プログラムの送信のための接続要求及び機器操作のための接続要求を受け取る。
【０１６０】
制御プログラムの送信のための接続要求を受け取ると、相互認証部２０３は、配信サーバ装置１００の相互認証部１０３との間で、相互認証を行い、配信サーバ装置１００と同一の共有鍵を共有する。
【０１６１】
また、機器操作のための接続要求を受け取ると、相互認証部２０３は、端末装置３００の相互認証部３０３との間で、相互認証を行い、端末装置３００と同一の共有鍵を共有する。また、相互認証部２０３は、メモリカード４００の相互認証部４０３との間で、相互認証を行い、メモリカード４００と同一の共有鍵を共有する。
【０１６２】
相互認証部２０３は、図１５に示すように、乱数生成部Ａ１１、乱数比較部Ａ１２、復号部Ａ１３、暗号化部Ａ１４、鍵共有部Ａ１５及び暗復号化部Ａ１６から構成されている。
【０１６３】
乱数生成部Ａ１０は、ランダムに乱数Ｒ１を生成する。次に、生成した乱数Ｒ１を乱数比較部Ａ１２に出力する。また、生成した乱数Ｒ１を相互認証の相手の装置の相互認証部に送信する。
【０１６４】
復号部Ａ１３は、相互認証の相手の装置の相互認証部から、暗号化乱数Ｅ３（Ｋｓｃ、Ｒ１）を受け取る。次に、復号アルゴリズムＤ３により、システム鍵Ｋｓｃを用いて、受け取った暗号化乱数Ｅ３（Ｋｓｃ、Ｒ１）を復号して復号文Ｒ１’＝Ｄ３（Ｋｓｃ、Ｅ３（Ｋｓｃ、Ｒ１））を生成する。次に、生成した復号文Ｒ１’を乱数比較部Ａ１２へ出力する。
【０１６５】
ここで、復号アルゴリズムＤ３は、秘密鍵暗号方式による復号アルゴリズムである。復号アルゴリズムＤ３は、一例として、ＡＥＳ（Advanced Encryption Standard）によるものである。Ｅ３（Ｋ、Ａ）は、鍵Ｋを用いて、平文Ａに対して暗号化アルゴリズムＥ３を施して生成した暗号文を示す。また、Ｄ３（Ｋ、Ｂ）は、鍵Ｋを用いて、暗号文Ｂに対して復号アルゴリズムＤ３を施して生成した復号文を示す。
【０１６６】
乱数比較部Ａ１２は、乱数生成部Ａ１１から乱数Ｒ１を受け取り、復号部Ａ１３から復号文Ｒ１’を受け取る。次に、乱数Ｒ１と復号文Ｒ１’とを比較する。乱数Ｒ１と復号文Ｒ１’とが一致する場合に、相互認証部２０３は、相手の装置が正当であると判断する。乱数Ｒ１と復号文Ｒ１’とが一致しない場合に、相互認証部２０３は、相手の装置が不正であると判断する。
【０１６７】
暗号化部Ａ１４は、相手の装置の相互認証部から乱数Ｒ２を受け取る。乱数Ｒ２を受け取ると、システム鍵Ｋｓｃを用いて、暗号化アルゴリズムＥ４により、乱数Ｒ２を暗号化して、暗号化乱数Ｅ４（Ｋｓｃ、Ｒ２）を生成し、生成した暗号化乱数Ｅ４（Ｋｓｃ、Ｒ２）を相手の装置へ送信する。
【０１６８】
ここで、暗号化アルゴリズムＥ４は、秘密鍵暗号方式による暗号化アルゴリズムである。暗号化アルゴリズムＥ４は、一例として、ＡＥＳによるものである。また、Ｅ４（Ｋ、Ａ）は、鍵Ｋを用いて、平文Ａに対して暗号化アルゴリズムＥ４を施して生成した暗号文を示す。
【０１６９】
相互の認証に成功すると、鍵共有部Ａ１５は、鍵共有の処理を実行して、共有鍵ｋを算出する。相互の認証に失敗すると、共有鍵ｋの算出は、行われない。
【０１７０】
相互の認証に成功すると、暗復号化部Ａ１６は、算出された共有鍵ｋを用いて、データを暗号化して、暗号化データを生成する。暗号化データは、相手の装置に送信される。また、暗復号化部Ａ１６は、相手の装置から暗号化データを受信する。次に、算出された共有鍵ｋを用いて、暗号化データを復号して、元のデータを生成する。この動作手順により、上述した安全な手段が実現される。
【０１７１】
（８）付随データ生成部２０８
付随データ生成部２０８は、固有識別子取得部２１６から、取得した固有識別子Ｙ又はメッセージ「固有識別子無し」を受信する。
【０１７２】
次に、付随データ生成部２０８は、固有識別子Ｙを受信しているか否かを確認する。固有識別子Ｙを受信している場合、付随データ生成部２０８は、ランダムに乱数Ｒを生成する。付随データ生成部２０８は、受信した利用者識別子及びパスワードに対応付けて、生成した乱数Ｒと受信した固有識別子Ｙとを、時変パラメータ及び固有識別子として、アカウント管理テーブル２６１に書き込む。
【０１７３】
次に、付随データ生成部２０８は、次の式により、固有識別子Ｙ及び乱数Ｒを用いて、変数Ｋを算出する。
【０１７４】
変数Ｋ＝固有識別子Ｙ  ＸＯＲ  乱数Ｒ
ここで、ＸＯＲは、排他的論理和を示す演算子である。
【０１７５】
次に、付随データ生成部２０８は、図５に示すように、変数領域２５２及び署名領域２５３からなる付随データ２５１を生成する。この時点において、変数領域２５２及び署名領域２５３は、何も記録されていない初期状態である。
【０１７６】
次に、付随データ生成部２０８は、算出して得られた変数Ｋ（２５４）を変数領域２５２に書き込む。
【０１７７】
次に、付随データ生成部２０８は、署名生成部２１４に対して、変数Ｋ（２５４）を出力し、変数Ｋ（２５４）の署名データを生成するよう指示する。次に、付随データ生成部２０８は、署名生成部２１４から、変数Ｋ（２５４）の署名データ２５５を受け取る。ここで、署名データ２５５は、確認サーバ装置２００に割り当てられた私有鍵２４１を用いて、変数Ｋ（２５４）に対して、デジタル署名Ｓｉｇｎを施して得られたデータである。署名生成部２１４から、署名データ２５５を受け取ると、付随データ生成部２０８は、付随データ２５１の署名領域２５３に署名データ２５５を書き込む。
【０１７８】
図５に示すように、付随データ２５１は、変数領域２５２及び署名領域２５３から構成されている。変数領域２５２は、変数Ｋ（２５４）を含み、署名領域２５３は、署名データ２５５を含む。
【０１７９】
次に、付随データ生成部２０８は、付随データ２５１及び乱数Ｒを、通信部２０２及びネットワーク２０を介して、端末装置３００に対して、安全な手段により、送信する。
【０１８０】
固有識別子Ｙを受信していない場合、付随データ生成部２０８は、乱数Ｒの生成、変数Ｋの算出、付随データの生成、署名データの生成指示及び付随データ及び乱数Ｒの送信を行わない。
【０１８１】
固有識別子Ｙを受信しており、機器に対する操作指示を受け取っている場合、付随データ生成部２０８は、プログラム格納部２０７に記憶され、インストールされている状態の制御プログラム３３１の第２データ領域３３５に、変数Ｋ（２５４）と署名データ２５５を含む付随データ２５１を上書きする。
【０１８２】
付随データ２５１の上書きが完了すると、付随データ生成部２０８は、付随データ２５１の上書きが完了したことを示す完了通知を、信頼性評価部２１０に対して出力する。
【０１８３】
固有識別子を受信していない場合、付随データ生成部２０８は、制御プログラム３３１の第２データ領域３３５に対する付随データの上書きを行わない。
【０１８４】
（９）署名生成部２１４
署名生成部２１４は、プログラム制作部２０６及び付随データ生成部２０８から、署名データの生成の指示を受け取る。
【０１８５】
プログラム制作部２０６から署名データの生成の指示を受け取ると、署名生成部２１４は、鍵格納部２０４から、確認サーバ装置２００に割り当てられた私有鍵２４１を読み出す。次に、プログラム格納部２０７から制御プログラムを読み出す。ここで、読み出した制御プログラムは、図４に示すように、実行部領域２３２と第１データ領域２３３とを含む。しかし、読み出した制御プログラムは、この段階では、図４に示す署名領域２３４を含まない。
【０１８６】
署名生成部２１４は、次に、読み出した私有鍵２４１を用いて、読み出した制御プログラムにデジタル署名Ｓｉｇｎを施して、署名データ２３４ａを生成する。
【０１８７】
署名データ２３４ａ＝Ｓｉｇｎ（私有鍵２４１、制御プログラム）
次に、署名生成部２１４は、生成した署名データ２３４ａを制御プログラムに付加し、署名データが付加された制御プログラム２３１を、プログラム格納部２０７に記憶されている制御プログラムに上書きする。
【０１８８】
また、付随データ生成部２０８から署名データの生成の指示を受け取ると、署名生成部２１４は、さらに、付随データ生成部２０８から変数Ｋ（２５４）を受け取る。次に、署名生成部２１４は、鍵格納部２０４から確認サーバ装置２００に割り当てられた私有鍵２４１を読み出す。次に、署名生成部２１４は、私有鍵２４１を用いて、変数Ｋ（２５４）に対してデジタル署名Ｓｉｇｎを施して、署名データ２５５を生成する。
【０１８９】
署名データ２５５＝Ｓｉｇｎ（私有鍵２４１、変数Ｋ（２５４））
次に、署名生成部２１４は、署名データ２５５を付随データ生成部２０８に対して出力する。
【０１９０】
（１０）信頼性評価部２１０
信頼性評価部２１０は、固有識別子取得部２１６から、取得した固有識別子Ｙ又はメッセージ「固有識別子無し」を受け取る。また、信頼性評価部２１０は、付随データ生成部２０８から乱数Ｒを受け取る。また、信頼性評価部２１０は、付随データ生成部２０８から、制御プログラムに対する付随データ２５１の上書きが完了したことを示す完了通知を受け取る。
【０１９１】
完了通知を受け取り、固有識別子Ｙを受け取ると、信頼性評価部２１０は、プログラム格納部２０７から、付随データが上書きされた制御プログラム３３１を読み出す。次に、読み出した制御プログラム３３１のうち、実行部領域３３２、第１データ領域３３３、署名領域３３４及び第２データ領域３３５に含まれる命令及びデータにハッシュ演算Ｈａｓｈを施して、ハッシュ値Ｈを算出する。
【０１９２】
ハッシュ値Ｈ＝Ｈａｓｈ（制御プログラム３３１のうち、実行部領域３３２、第１データ領域３３３、署名領域３３４及び第２データ領域３３５に含まれる命令及びデータ）
ここで、第３データ領域３３６をハッシュ演算Ｈａｓｈの対象から除外しているのは、第３データ領域３３６は、制御プログラム３３１の実行状態により変化するデータを含んでいるからである。
【０１９３】
また、ハッシュ演算Ｈａｓｈは、一例として、ＳＨＡ−１（Secure Hash Algorithm 1 ）である。また、ハッシュ演算Ｈａｓｈは、ＳＨＡ−２（Secure Hash Algorithm 2）、ＳＨＡ−２５６（Secure Hash Algorithm 256-bit）等であるとしてもよい。
【０１９４】
なお、ここで用いられるハッシュ演算Ｈａｓｈと、固有識別子取得処理部９０２において用いられるハッシュ演算Ｈａｓｈとは、同一の演算でなければならない。
【０１９５】
次に、信頼性評価部２１０は、固有識別子Ｙ、ハッシュ値Ｈ及び乱数Ｒを用いて、評価値Ｓを算出する。
【０１９６】
評価値Ｓ＝固有識別子Ｙ  ＸＯＲ  Ｏｎｅｗａｙ（ハッシュ値Ｈ、乱数Ｒ）
ここで、一方向性演算Ｏｎｅｗａｙ（Ａ、Ｂ）は、データＡとデータＢに対して、一方向性演算を施して得られた値を示す。例えば、一方向性演算Ｏｎｅｗａｙ（Ａ、Ｂ）は、データＢを鍵として用いて、データＡに鍵付きハッシュ演算を施して得られたハッシュ値である。また、一方向性演算Ｏｎｅｗａｙ（Ａ、Ｂ）は、データＡとデータＢをこの順序で結合して結合体を得、得られた結合体に対して、ハッシュ演算を施して得られたハッシュ値であるとしてもよい。また、一方向性演算Ｏｎｅｗａｙ（Ａ、Ｂ）は、データＢを鍵として用いて、秘密鍵暗号方式としてのＡＥＳによる暗号化アルゴリズムを施して、暗号文を生成し、生成した暗号文にハッシュ演算ＳＨＡ−１を施して得られたハッシュ値であるとしてもよい。
【０１９７】
なお、ここで用いられる一方向性演算Ｏｎｅｗａｙと、固有識別子取得処理部９０２において用いられる一方向性演算Ｏｎｅｗａｙとは、同一の演算でなければならない。
【０１９８】
また、信頼性評価部２１０は、端末装置３００から、ネットワーク２０及び通信部２０２を介して、評価値Ｓ’を受信する。
【０１９９】
次に、信頼性評価部２１０は、算出された評価値Ｓと受信された評価値Ｓ’とが一致するか否かを判断する。評価値Ｓと評価値Ｓ’とが一致する場合、機器に対する遠隔操作及び関連操作が許可される。評価値Ｓと評価値Ｓ’とが一致しない場合、機器に対する遠隔操作及び関連操作が禁止される。
【０２００】
評価値Ｓと評価値Ｓ’とが一致しない場合、信頼性評価部２１０は、機器に対する遠隔操作及び関連操作が禁止される旨を示すメッセージを生成する。次に、生成したメッセージを、通信部２０２及びネットワーク２０を介して、端末装置３００に対して送信する。
【０２０１】
評価値Ｓと評価値Ｓ’とが一致する場合、機器制御部２１３に対して、機器に対する遠隔操作及び関連操作を許可する許可情報を出力する。この場合に限り、機器の遠隔処理及び関連操作が行われる。評価値Ｓと評価値Ｓ’とが一致しない場合、機器制御部２１３に対して、機器に対する遠隔操作及び関連操作を禁止する禁止情報を出力する。この場合に、機器の遠隔処理及び関連操作は、行われない。
【０２０２】
固有識別子Ｙを受け取っていない場合、信頼性評価部２１０は、ハッシュ値Ｈの算出、評価値Ｓの算出及び評価値Ｓと評価値Ｓ’の比較を行わない。
【０２０３】
（１１）機器情報管理部２１７
機器情報管理部２１７は、端末装置３００から、ネットワーク２０及び通信部２０２を介して、制御ルールの変更操作を受信する。次に、機器情報管理部２１７は、受信した変更操作を用いて、機器情報格納部２１２に保持されている制御ルール管理テーブル２８１を変更する。
【０２０４】
（１２）機器制御部２１３
機器制御部２１３は、端末装置３００から、ネットワーク２０及び通信部２０２を介して、操作指示を受信する。操作指示には、機器５００に関する情報の取得の要求、機器５００の遠隔操作に関連する指示、機器制御ルールの修正の指示及びその他の指示が含まれる。
【０２０５】
機器制御部２１３は、受信した操作指示が、機器５００に関する情報の取得の要求、機器５００の遠隔操作に関連する指示、機器制御ルールの修正の指示及びその他の指示のいずれであるかを判断する。
【０２０６】
操作指示が、機器５００に関する情報の取得の要求である場合、機器制御部２１３は、機器５００に関する情報の取得の処理を行う。操作指示が、機器５００の遠隔操作に関連する指示である場合、機器制御部２１３は、機器５００の遠隔操作に関連する処理を行う。操作指示が、機器制御ルールの修正の指示である場合、機器制御部２１３は、機器制御ルールの修正の処理を行う。操作指示が、その他の指示である場合、機器制御部２１３は、その他の処理を行う。
【０２０７】
（機器５００に関する情報の取得）
機器制御部２１３は、端末装置３００から受け取った機器５００に関する情報の取得の要求から、機器情報を抽出する。次に、抽出した機器情報に対応する条件を、条件テーブル２７１から読み出す。
【０２０８】
次に、機器制御部２１３は、確認サーバ装置２００の現在の状態が、条件テーブル２７１から読み出された条件を満たすか否かを判断する。
【０２０９】
ここで、確認サーバ装置２００の現在の状態とは、具体的には、端末装置３００の利用者によるログイン状態にあるか否か、及び、端末装置３００に装着されたメモリカード４００から固有識別子を取得しているか否かである。
【０２１０】
例えば、確認サーバ装置２００が利用者によるログイン状態になく、固有識別子を取得していない場合、読み出した条件が「ログイン不要、固有識別子要」又は「ログイン要、固有識別子要」であれば、確認サーバ装置２００の現在の状態は、読み出した条件を満たしていない。
【０２１１】
また、例えば、確認サーバ装置２００が利用者によるログイン状態にあり、固有識別子を取得していない場合、読み出した条件が「ログイン要、固有識別子要」であれば、確認サーバ装置２００の現在の状態は、読み出した条件を満たしていない。読み出した条件が「ログイン要、固有識別子不要」であれば、確認サーバ装置２００の現在の状態は、読み出した条件を満たしている。
【０２１２】
また、例えば、確認サーバ装置２００が利用者によるログイン状態にあり、固有識別子を取得している場合、読み出した条件が「ログイン不要、固有識別子要」又は「ログイン要、固有識別子要」であれば、確認サーバ装置２００の現在の状態は、読み出した条件を満たしている。
【０２１３】
確認サーバ装置２００の現在の状態が、読み出した条件を満たしていない場合、機器制御部２１３は、機器状態情報の取得ができない旨を示すメッセージを生成する。次に、生成したメッセージを、通信部２０２及びネットワーク２０を介して、端末装置３００に対して送信する。
【０２１４】
確認サーバ装置２００の現在の状態が、読み出した条件を満たしている場合、機器制御部２１３は、機器状態情報の取得の要求を、通信部２０２及びネットワーク２０を介して、機器５００に対して出力する。
【０２１５】
確認サーバ装置２００の機器制御部２１３は、機器５００から、ネットワーク２０及び通信部２０２を介して、機器状態情報を受信する。次に、受信した機器状態情報を含むメッセージを生成する。次に、機器制御部２１３は、生成したメッセージを、通信部２０２及びネットワーク２０を介して、端末装置３００に対して送信する。
【０２１６】
（機器５００に対する遠隔操作に関連する処理）
機器制御部２１３は、制御ルール管理テーブル２８１に含まれている全ての制御ルール情報について、次の手順（ａ）〜（ｄ）を繰り返す。
【０２１７】
（ａ）機器制御部２１３は、制御ルール管理テーブル２８１から一つの制御ルール情報を読み出す。
【０２１８】
（ｂ）次に、機器制御部２１３は、確認サーバ装置２００の現在の状態が、読み出した制御ルール情報に含まれる条件を満たすか否かを判断する。
【０２１９】
ここで、上記の機器５００に関する情報の取得の説明において述べたように、確認サーバ装置２００の現在の状態とは、具体的には、端末装置３００の利用者によるログイン状態にあるか否か、及び、端末装置３００に装着されたメモリカード４００から固有識別子を取得しているか否かである。
【０２２０】
また、判断方法についても、上述した通りである。
【０２２１】
例えば、確認サーバ装置２００が利用者によるログイン状態になく、固有識別子を取得していない場合、読み出した条件が「ログイン不要、固有識別子要」又は「ログイン要、固有識別子要」であれば、確認サーバ装置２００の現在の状態は、読み出した条件を満たしていない。
【０２２２】
また、例えば、確認サーバ装置２００が利用者によるログイン状態にあり、固有識別子を取得している場合、読み出した条件が「ログイン要、固有識別子要」であれば、確認サーバ装置２００の現在の状態は、読み出した条件を満たしている。
【０２２３】
（ｃ）確認サーバ装置２００の現在の状態が、読み出した条件を満たしていない場合、機器制御部２１３は、読み出した制御ルール情報から、操作内容を抽出する。次に、抽出した操作内容の取得ができない旨を示すメッセージを生成する。次に、生成したメッセージを、通信部２０２及びネットワーク２０を介して、端末装置３００に対して送信する。
【０２２４】
（ｄ）確認サーバ装置２００の現在の状態が、読み出した条件を満たしている場合、機器制御部２１３は、読み出した制御ルール情報から、操作内容及び項目を抽出する。次に、抽出した操作内容及び項目を含む示すメッセージを生成する。次に、生成したメッセージを、通信部２０２及びネットワーク２０を介して、機器５００に対して出力する。
【０２２５】
機器制御部２１３は、端末装置３００から受信した操作指示を、通信部２０２、ネットワーク２０を介して、機器５００に対して送信する。
【０２２６】
（機器制御ルールの修正処理）
機器制御部２１３は、端末装置３００の利用者により、ログインが正常にされているか否かを判断する。また、機器制御部２１３は、固有識別子が取得されているか否かを判断する。
【０２２７】
ログインが正常にされていない場合、機器制御部２１３は、ログインが正常にされていないことを示すメッセージを生成する。次に、生成したメッセージを、通信部２０２及びネットワーク２０を介して、端末装置３００に対して送信する。
【０２２８】
固有識別子が取得されていない場合、機器制御部２１３は、固有識別子が取得されていないことを示すメッセージを生成する。次に、生成したメッセージを、通信部２０２及びネットワーク２０を介して、端末装置３００に対して送信する。
【０２２９】
ログインが正常にされ、固有識別子が取得されている場合、機器制御部２１３は、機器情報格納部２１２から、制御ルール管理テーブル２８１を読み出す。次に、読み出した制御ルール管理テーブル２８１を、通信部２０２、ネットワーク２０を介して、端末装置３００に対して送信する。
【０２３０】
２．４  端末装置３００
端末装置３００は、図９に示すように、制御部３０１、通信部３０２、相互認証部３０３、鍵格納部３０４、プログラム格納部３０５、プログラム実行部３０６、付随データ格納部３０７、入出力部３０８、表示部３０９、入力部３１０及び検証部３１１から構成されている。
【０２３１】
端末装置３００は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクデバイス、ディスプレィデバイス、入力デバイスなどから構成されるコンピュータシステムである。前記ＲＡＭ又は前記ハードディスクデバイスには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、端末装置３００は、その機能を達成する。
【０２３２】
（１）鍵格納部３０４、プログラム格納部３０５及び付随データ格納部３０７
（鍵格納部３０４）
鍵格納部３０４は、一例として、ハードディスクデバイスから構成されている。鍵格納部３０４は、一例として、確認サーバ装置２００の公開鍵を記憶している。また、予め、システム鍵Ｋｓｃを記憶している。
【０２３３】
（プログラム格納部３０５）
プログラム格納部３０５は、一例として、ハードディスクデバイスから構成されている。プログラム格納部３０５は、配信サーバ装置１００から送信された制御プログラム２３１及び当該端末装置３００にインストールされた制御プログラム３３１を記憶するための領域を備えている。
【０２３４】
制御プログラム２３１は、図４に示すデータ構造を有している。また、制御プログラム３３１は、図１０に示すデータ構造を有している。
【０２３５】
（付随データ格納部３０７）
付随データ格納部３０７は、一例として、ハードディスクデバイスから構成されている。付随データ格納部３０７は、図５に示す付随データ２５１及び乱数Ｒを記憶するための領域を備えている。
【０２３６】
（２）通信部３０２
通信部３０２は、ネットワーク２０を介して、配信サーバ装置１００及び確認サーバ装置２００との間で、情報の送受信を行う。
【０２３７】
通信部３０２は、具体的には、制御部３０１の制御により、制御プログラムの要求、機器操作のための接続要求、ログイン要否、操作指示及び評価値Ｓ’を、ネットワーク２０を介して、配信サーバ装置１００に対して送信する
また、通信部３０２は、制御部３０１の制御により、利用者識別子及びパスワードを、安全な手段により、ネットワーク２０を介して、配信サーバ装置１００に対して送信する。
【０２３８】
また、通信部３０２は、確認サーバ装置２００から、ネットワーク２０を介して、様々なメッセージを受信する。次に、受信したメッセージを表示部３０９に対して出力する。
【０２３９】
また、通信部３０２は、配信サーバ装置１００から、安全な手段により、ネットワーク２０を介して、制御プログラム、付随データ及び乱数Ｒを受信する。次に、通信部３０２は、受信した制御プログラムをプログラム格納部３０５に書き込む。また、通信部３０２は、受信した付随データ及び乱数Ｒを付随データ格納部３０７に書き込む。
【０２４０】
また、通信部３０２は、確認サーバ装置２００から、ネットワーク２０を介して、情報を受信し、受信した情報を入出力部３０８を介して、メモリカード４００に対して出力する。また、通信部３０２は、メモリカード４００から、入出力部３０８を介して、情報を受信し、受信した情報をネットワーク２０を介して、確認サーバ装置２００に対して送信する。
【０２４１】
（３）相互認証部３０３
相互認証部３０３は、確認サーバ装置２００の相互認証部２０３と、同様の構成を有している。
【０２４２】
制御プログラムの取得指示を受け付けた場合に、相互認証部３０３は、配信サーバ装置１００の相互認証部１０３との間で、相互認証及び鍵共有を行う。
【０２４３】
また、機器操作のための接続要求を送信する場合に、相互認証部３０３は、確認サーバ装置２００の相互認証部２０３との間で、相互認証及び鍵共有を行う。
【０２４４】
さらに、固有識別子を取得する場合に、相互認証部３０３は、メモリカード４００の相互認証部４０３との間で、相互認証及び鍵共有を行う。
【０２４５】
（４）検証部３１１
検証部３１１は、制御プログラム３３１の起動を受け付けた場合に、鍵格納部３０４から、確認サーバ装置２００に割り当てられた公開鍵を読み出す。次に、検証部３１１は、読み出した公開鍵を用いて、プログラム格納部３０５にインストールされた制御プログラム３３１の署名領域３３４に記憶されている署名データ３３４ａ、実行部領域３３２及び第１データ領域３３３に対して、デジタル署名検証Ｖｒｆｙを施す。
【０２４６】
デジタル署名検証Ｖｒｆｙによる検証結果が失敗である場合、検証部３１１は、検証に失敗した旨を示すメッセージを生成し、生成したメッセージを表示部３０９に対して出力する。これにより、端末装置３００は、処理を終了する。
【０２４７】
デジタル署名検証Ｖｒｆｙによる検証結果が成功である場合、端末装置３００の処理は、継続される。
【０２４８】
検証部３１１は、検証の成功又は失敗を示す検証結果をプログラム実行部３０６に対して出力する。
【０２４９】
（５）プログラム実行部３０６
プログラム実行部３０６は、制御プログラム２３１をプログラム格納部３０５にインストールする。これにより、プログラム格納部３０５に、図１０に示すように、制御プログラム３３１が格納される。なお、この時点において、第２データ領域３３５及び第３データ領域３３６には、それぞれ付随データ及びデータは、格納されていない。
【０２５０】
プログラム実行部３０６は、検証部３１１から、検証の成功又は失敗を示す検証結果を受け取る。受け取った検証結果が検証の失敗を示す場合には、以降の端末装置３００の処理を中止する。
【０２５１】
受け取った検証結果が検証の成功を示す場合には、プログラム実行部３０６は、制御プログラム３３１を実行状態にする。
【０２５２】
プログラム実行部３０６が制御プログラム３３１を実行することにより、図１１に示すように、付随データ処理部９０１、固有識別子取得処理部９０２、アカウント提示部９０５、機器制御ルール提示部９０６、機器操作提示部９０７、アカウント取得部９０８、機器制御ルール取得部９０９及び操作指示取得部９１０が実現される。
【０２５３】
（付随データ処理部９０１）
付随データ処理部９０１は、付随データ格納部３０７に付随データが格納されているか否かを判断する。付随データ格納部３０７に付随データが格納されている場合、付随データ処理部９０１は、付随データ格納部３０７に格納されている付随データを制御プログラム３３１の第２データ領域３３５に上書きする。付随データ格納部３０７に付随データが格納されていない場合、付随データ処理部９０１は、付随データの上書きを行わない。
【０２５４】
付随データ処理部９０１は、確認サーバ装置２００から、ネットワーク２０及び通信部３０２を介して、付随データ及び乱数Ｒを、安全な手段により、受信する。
【０２５５】
次に、付随データ処理部９０１は、付随データ及び乱数Ｒを受信したか否かを確認する。
【０２５６】
付随データ及び乱数Ｒを受信した場合、付随データ処理部９０１は、受信した付随データを、付随データ格納部３０７に書き込む。次に、付随データ処理部９０１は、受信した乱数Ｒを、付随データ格納部３０７に書き込む。
【０２５７】
付随データ及び乱数Ｒを受信しなかった場合、付随データ処理部９０１は、付随データ及び乱数Ｒの書き込みを行わない。
【０２５８】
（固有識別子取得処理部９０２）
固有識別子取得処理部９０２は、利用者から操作指示を受け取った場合、固有識別子の要求を、入出力部３０８を介して、メモリカード４００に対して出力する。固有識別子取得処理部９０２は、固有識別子の要求を出力した直後において、変数としての固有識別子Ｙ’を仮に「０」に設定する。
【０２５９】
固有識別子取得処理部９０２は、メモリカード４００から固有識別子を受け取ったか否かを判断する。ここで、受け取るべき固有識別子を固有識別子Ｙ’と表現する。固有識別子Ｙ’を受け取った場合、固有識別子取得処理部９０２は、プログラム格納部３０５に格納されている制御プログラム３３１のうち、実行部領域３３２、第１データ領域３３３、署名領域３３４及び第２データ領域３３５に格納されているメモリ及びデータに対して、ハッシュ演算Ｈａｓｈを施すことにより、ハッシュ値Ｈ’を算出する。
【０２６０】
ハッシュ値Ｈ’＝Ｈａｓｈ（プログラム格納部３０５に格納されている制御プログラム３３１のうちの実行部領域３３２、第１データ領域３３３、署名領域３３４及び第２データ領域３３５に格納されているメモリ及びデータ）
ここで、第３データ領域３３６をハッシュ演算Ｈａｓｈの対象から除外しているのは、第３データ領域３３６は、制御プログラム３３１の実行状態により変化するデータを含んでいるからである。
【０２６１】
ここで、ハッシュ演算Ｈａｓｈは、一例として、ＳＨＡ−１である。また、ハッシュ演算Ｈａｓｈは、ＳＨＡ−２、ＳＨＡ−２５６等であるとしてもよい。
【０２６２】
なお、ここで用いられるハッシュ演算Ｈａｓｈと、信頼性評価部２１０において用いられるハッシュ演算Ｈａｓｈとは、同一の演算でなければならない。
【０２６３】
次に、固有識別子取得処理部９０２は、固有識別子Ｙ’、ハッシュ値Ｈ’及び乱数Ｒを用いて、評価値Ｓ’を算出する。
【０２６４】
評価値Ｓ’＝固有識別子Ｙ’  ＸＯＲ  Ｏｎｅｗａｙ（ハッシュ値Ｈ’、乱数Ｒ）
ここで、一方向性演算Ｏｎｅｗａｙ（Ａ、Ｂ）は、データＡとデータＢに対して、一方向性演算を施して得られた値を示す。例えば、一方向性演算Ｏｎｅｗａｙ（Ａ、Ｂ）は、データＢを鍵として用いて、データＡに鍵付きハッシュ演算を施して得られたハッシュ値である。また、一方向性演算Ｏｎｅｗａｙ（Ａ、Ｂ）は、データＡとデータＢをこの順序で結合して結合体を得、得られた結合体に対して、ハッシュ演算を施して得られたハッシュ値であるとしてもよい。また、一方向性演算Ｏｎｅｗａｙ（Ａ、Ｂ）は、データＢを鍵として用いて、秘密鍵暗号方式としてのＡＥＳによる暗号化アルゴリズムを施して、暗号文を生成し、生成した暗号文にハッシュ演算ＳＨＡ−１を施して得られたハッシュ値であるとしてもよい。
【０２６５】
なお、ここで用いられる一方向性演算Ｏｎｅｗａｙと、信頼性評価部２１０において用いられる一方向性演算Ｏｎｅｗａｙとは、同一の演算でなければならない。
【０２６６】
次に、固有識別子取得処理部９０２は、評価値Ｓ’を、通信部３０２及びネットワーク２０を介して、確認サーバ装置２００に対して送信する。
【０２６７】
（アカウント提示部９０５）
アカウント提示部９０５は、利用者から入力された利用者識別子及びパスワードを表示部３０９に出力して、表示させる。
【０２６８】
（機器制御ルール提示部９０６）
＜機器制御ルールの修正＞
機器制御ルール提示部９０６は、確認サーバ装置２００から、ネットワーク２０及び通信部３０２を介して、制御ルール管理テーブルを受信する。次に、機器制御ルール提示部９０６は、受信した制御ルール管理テーブルを用いて、制御ルール変更画面３６１を生成する。
【０２６９】
制御ルール変更画面３６１の一例を図１３に示す。制御ルール変更画面３６１は、この図に示すように、複数のフィールドを含む。各フィールドは、制御ルール管理テーブルの制御ルール情報に対応する。各フィールドは、表示フィールドとボタンフィールドとの組を含む。表示フィールドは、操作内容及び条件を表示する。ボタンフィールドは、条件の変更の内容を表示する。
【０２７０】
機器制御ルール提示部９０６は、制御ルール管理テーブルの制御ルール情報毎に、制御ルール変更画面３６１のフィールドを生成する。具体的には、機器制御ルール提示部９０６は、制御ルール情報に含まれる操作内容及び条件から表示フィールドを生成する。つまり、操作内容及び条件を、表示フィールドの表示内容とする。また、機器制御ルール提示部９０６は、制御ルール情報に含まれる条件からボタンフィールドを生成する。つまり、制御ルール情報に含まれる条件に含まれていない変更候補の条件を生成し、生成した変更候補の条件を、ボタンフィールドの表示内容とする。
【０２７１】
制御ルール変更画面３６１は、一例として、フィールド３７１及び３７２を含む。
【０２７２】
フィールド３７１に含まれる表示フィールドは、操作内容３６２「ルール変更」及び条件３６３「固有識別子要」を表示し、フィールド３７１に含まれるボタンフィールドは、条件の変更の内容３６４「固有識別子不要に変更」を表示する。
【０２７３】
フィールド３７２に含まれる表示フィールドは、操作内容３６５「エアコン電源制御」及び条件３６６「固有識別子要」を表示し、フィールド３７２に含まれるボタンフィールドは、条件の変更の内容３６７「固有識別子不要に変更」を表示する。
【０２７４】
このように、各フィールドは、項目ごとに制限を表示している。制限とは、ログインが必要であるか否か、及び、固有識別子が必要であるか否かである。ボタンフィールドには、現在の制限を変更できる候補を表示している。利用者がボタンフィールドを押すことにより、現在の制限を変更することができる。
【０２７５】
（機器操作提示部９０７）
＜機器情報取得の処理＞
機器操作提示部９０７は、確認サーバ装置２００から、ネットワーク２０及び通信部３０２を介して、機器の状態を示す機器状態情報の取得ができない旨を示すメッセージを受信する。次に、機器操作提示部９０７は、受信したメッセージを表示部３０９に対して出力する。
【０２７６】
機器操作提示部９０７は、確認サーバ装置２００から、ネットワーク２０及び通信部３０２を介して、機器状態情報を含むメッセージを受信する。次に、機器操作提示部９０７は、受信したメッセージを表示部３０９に対して出力する。
【０２７７】
＜機器５００に対する遠隔操作に関連する処理＞
機器操作提示部９０７は、確認サーバ装置２００から、ネットワーク２０及び通信部３０２を介して、操作内容の取得ができない旨を示すメッセージ及び取得した操作内容及び項目を含むメッセージを受信する。次に、機器操作提示部９０７は、受信したメッセージのうち、操作内容及び項目を含むメッセージを用いて、機器操作メニューを生成する。
【０２７８】
生成した機器操作メニューの一例として、図１２に機器操作画面３５１を示す。
【０２７９】
機器操作画面３５１は、複数のフィールドを含む。各フィールドは、各機器に対する操作に対応し、また一つのメッセージに対応している。各フィールドは、操作内容及び操作ボタンを含む。
【０２８０】
機器操作提示部９０７は、受信した一つのメッセージに対応して、一つのフィールドを生成する。メッセージに含まれる操作内容を、フィールドの操作内容とし、メッセージに含まれる項目を操作ボタンとする。
【０２８１】
図１２に示す機器操作画面３５１では、各機器に対応する操作に応じて、操作内容及び操作ボタンを表示している。また、各操作ボタンは、現在の制限を変更できる候補を表示している。操作ボタンを押すことにより、現在の制限を変更できる。
【０２８２】
機器操作画面３５１は、一例として、フィールド３５８及び３５９を含む。フィールド３５８は、操作内容３５２「ドア開閉」と、これに対応して、操作ボタン３５３「開錠」及び操作ボタン３５４「施錠」を含む。操作ボタン３５３の色をグレー（中間階調）にして表示することにより、操作ボタン３５３が不活性化されている状態を示している。操作ボタン３５３に対しては、利用者は、操作ができない。操作ボタン３５４「施錠」については、現在操作できる操作ボタンであることを表現するため、操作ボタンの表示のコントラストを上げて、活性化されている状態を示している。利用者は、操作ボタン３５４に対する操作が可能である。なお、操作ボタンの色だけでなく、サイズや形などのデザインにより、活性化又は不活性化されていることを表現してもよい。
【０２８３】
フィールド３５９は、操作内容３５５「リビングライト操作」と、これに対応して、操作ボタン３５６「ＯＮ」及び操作ボタン３５７「ＯＦＦ」を含む。ここで、操作ボタン３５６及び操作ボタン３５７に対して、利用者は、操作が可能である。
【０２８４】
図１２に示す機器操作画面３５１では、各機器に対応する操作に応じて、操作内容及び操作ボタンを表示しているが、各機器の機能毎の操作に応じて、操作内容及び操作ボタンを表示してもよい。例えば、テレビ受像機である機器について、チャネルの切替え、番組の予約などの機能毎に、操作内容及び操作ボタンを表示してもよい。
【０２８５】
ここでは、端末装置３００において、機器操作画面３５１を生成している。しかし、これには、限定されない。確認サーバ装置２００が機器操作画面３５１を生成し、生成した機器操作画面３５１を端末装置３００に対して送信してもよい。端末装置３００は、機器操作画面３５１を受信し、受信した機器操作画面３５１を表示する。
【０２８６】
（アカウント取得部９０８）
アカウント取得部９０８は、配信サーバ装置１００から、ネットワーク２０及び通信部３０２を介して、利用者識別子及びパスワードの要求を受信する。利用者識別子及びパスワードの要求を受信すると、アカウント取得部９０８は、入力部３１０に対して、利用者識別子及びパスワードの入力を受け付けるように制御する。
【０２８７】
制御プログラムの起動が受け付けられ、確認サーバ装置２００に対する接続要求が送信される場合に、アカウント取得部９０８は、入力部３１０に対して、ログインの要否の入力を受け付けるように制御する。次に、アカウント取得部９０８は、入力部３１０からログインの要否を受け取る。次に、アカウント取得部９０８は、通信部３０２及びネットワーク２０を介して、ログインの要否を確認サーバ装置２００に対して送信する。
【０２８８】
また、アカウント取得部９０８は、受け取ったログインの要否が、ログインを要求することを示すか要求しないことを示すかを判断する。受け取ったログインの要否が、ログインを要求することを示す場合、アカウント取得部９０８は、入力部３１０に対して、利用者識別子及びパスワードの入力を受け付けるように制御する。受け取ったログインの要否が、ログインを要求しないことを示す場合、アカウント取得部９０８は、入力部３１０に対して、利用者識別子及びパスワードの入力を受け付けるように要求しない。
【０２８９】
アカウント取得部９０８は、入力部３１０から、利用者識別子及びパスワードを受け取る。次に、アカウント取得部９０８は、入力を受け付けた利用者識別子及びパスワードを、安全な手段により、通信部３０２及びネットワーク２０を介して、配信サーバ装置１００に対して送信する。
【０２９０】
（機器制御ルール取得部９０９）
機器制御ルール取得部９０９は、入力部３１０から、制御ルールの変更操作を受け取る。次に、機器制御ルール取得部９０９は、制御ルールの変更操作を、通信部３０２及びネットワーク２０を介して、確認サーバ装置２００に対して送信する。
【０２９１】
（操作指示取得部９１０）
受け付けた操作指示が処理の終了ではない場合、操作指示取得部９１０は、受け取った操作指示を、通信部３０２及びネットワーク２０を介して、確認サーバ装置２００に対して送信する。
【０２９２】
入力部３１０から操作の終了を示す操作指示を受け取った場合、操作指示取得部９１０は、端末装置３００の処理を終了するように制御する。
【０２９３】
（６）制御部３０１
制御部３０１は、通信部３０２、相互認証部３０３、鍵格納部３０４、プログラム格納部３０５、プログラム実行部３０６、付随データ格納部３０７、入出力部３０８、表示部３０９、入力部３１０及び検証部３１１を制御する。
【０２９４】
制御部３０１は、配信サーバ装置１００から、ネットワーク２０及び通信部３０２を介して、様々なメッセージを受信する。次に、受信したメッセージを表示部３０９に対して出力する。
【０２９５】
制御部３０１は、ログインが正常にされていないことを示すメッセージを表示部３０９に対して出力する。また、制御部３０１は、固有識別子が取得されていないことを示すメッセージを表示部３０９に対して出力する。
【０２９６】
（７）入力部３１０、表示部３０９及び入出力部３０８
入力部３１０は、端末装置３００の利用者から、操作指示及びデータを受け付ける。
【０２９７】
具体的には、入力部３１０は、制御プログラムを取得する指示、利用者識別子及びパスワード、ログインの要否、制御プログラムの起動の操作、機器情報の取得の要求、機器に対する遠隔操作に関連する指示、制御ルールの変更操作を受け付ける。次に、入力部３１０は、受け付けた操作指示及びデータを制御部３０１に対して、出力する。機器に対する遠隔操作に関連する指示には、機器に対する遠隔操作命令が含まれる。遠隔操作命令は、具体的には、テレビ受像機である機器５００ａに対する電源ＯＮの指示、電源ＯＦＦの指示、エアコンである機器５００ｂに対する電源ＯＮの指示、電源ＯＦＦの指示、リビングライトである機器５００ｃに対する電源ＯＮの指示、電源ＯＦＦの指示等を含む。
【０２９８】
表示部３０９は、制御部３０１又は通信部３０２から様々なメッセージを受け取る。次に、受け取ったメッセージを表示する。前記メッセージには、ログインが正常にされていないことを示すメッセージ、固有識別子が取得されていないことを示すメッセージ等が含まれる。
【０２９９】
表示部３０９は、機器操作メニューとして、図１２に示す機器操作画面３５１を表示する。また、表示部３０９は、制御ルールの変更にために用いられ、図１３に示す制御ルール変更画面３６１を表示する。
【０３００】
入出力部３０８は、メモリカード４００とプログラム実行部３０６との間で、メモリカード４００と通信部３０２との間で、又は、メモリカード４００と制御部３０１との間で、情報の送受信を中継する。
【０３０１】
２．５  メモリカード４００
メモリカード４００は、図１４に示すように、制御部４０１、相互認証部４０３、鍵格納部４０４、固有識別子格納部４０７及び入出力部４０８から構成される。
【０３０２】
メモリカード４００は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、入出力デバイスなどから構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、メモリカード４００は、その機能を達成する。
【０３０３】
（１）固有識別子格納部４０７及び鍵格納部４０４
固有識別子格納部４０７は、不揮発性の半導体メモリから構成されている。固有識別子格納部４０７は、メモリカード４００に固有の固有識別子を記憶している。固有識別子は、一例として、３２ビット長である。
【０３０４】
鍵格納部４０４は、予め、システム鍵Ｋｓｃを記憶している。
【０３０５】
（２）制御部４０１
制御部４０１は、相互認証部４０３、鍵格納部４０４、固有識別子格納部４０７及び入出力部４０８を制御する。
【０３０６】
また、制御部４０１は、確認サーバ装置２００から、ネットワーク２０、端末装置３００及び入出力部４０８を介して、固有識別子の要求を受信する。固有識別子の要求を受信すると、制御部４０１は、固有識別子格納部４０７から固有識別子の読み出しを試みる。固有識別子の読み出しに成功した場合、制御部４０１は、読み出した固有識別子を、安全な手段により、入出力部４０８、端末装置３００及びネットワーク２０を介して、確認サーバ装置２００に対して、送信する。また、固有識別子の読み出しに失敗したときは、制御部４０１は、固有識別子が無いことを示すメッセージを、安全な手段により、入出力部４０８、端末装置３００及びネットワーク２０を介して、確認サーバ装置２００に対して送信する。
【０３０７】
また、制御部４０１は、端末装置３００から、入出力部４０８を介して、固有識別子の要求を受け取る。固有識別子の要求を受け取ると、制御部４０１は、固有識別子格納部４０７から固有識別子の読み出しを試みる。固有識別子の読み出しに成功した場合、制御部４０１は、読み出した固有識別子を、安全な手段により、端末装置３００に対して出力する。固有識別子の読み出しに失敗した場合、制御部４０１は、固有識別子が無いことを示すメッセージを、安全な手段により、端末装置３００に対して出力する。
【０３０８】
（３）相互認証部４０３
端末装置３００から確認サーバ装置２００に対して、接続要求が送信されたとき、確認サーバ装置２００からの要求により、相互認証部４０３は、確認サーバ装置２００の相互認証部２０３との間で、相互認証を行い、確認サーバ装置２００と共有鍵を共有する。
【０３０９】
また、端末装置３００から確認サーバ装置２００に対して、機器５００に対する操作指示が送信されたとき、端末装置３００からの要求により、相互認証部４０３は、端末装置３００の相互認証部３０３との間で、相互認証を行い、端末装置３００と共有鍵を共有する。
【０３１０】
相互認証部４０３は、図１５に示すように、暗号化部Ｂ１１、乱数生成部Ｂ１２、復号部Ｂ１３、乱数比較部Ｂ１４、鍵共有部Ｂ１５及び暗復号化部Ｂ１６から構成されている。
【０３１１】
暗号化部Ｂ１１は、相互認証の相手の装置から乱数Ｒ１を受け取る。乱数Ｒ１を受け取ると、システム鍵Ｋｓｃを用いて、暗号化アルゴリズムＥ３により、乱数Ｒ１を暗号化して、暗号化乱数Ｅ３（Ｋｓｃ、Ｒ１）を生成し、生成した暗号化乱数Ｅ３（Ｋｓｃ、Ｒ１）を相手の装置へ送信する。
【０３１２】
ここで、暗号化アルゴリズムＥ３は、秘密鍵暗号方式による暗号化アルゴリズムである。暗号化アルゴリズムＥ３は、一例として、ＡＥＳによるものである。Ｅ３（Ｋ、Ａ）は、鍵Ｋを用いて、平文Ａに対して暗号化アルゴリズムＥ３を施して生成した暗号文を示す。
【０３１３】
乱数生成部Ｂ１２は、乱数Ｒ２を生成する。次に、生成した乱数Ｒ２を乱数比較部Ｂ１４に出力する。また、生成した乱数Ｒ２を相互認証の相手の装置に送信する。
【０３１４】
復号部Ｂ１３は、相互認証の相手の装置から、暗号化乱数Ｅ４（Ｋｓｃ、Ｒ２）を受け取る。次に、システム鍵Ｋｓｃを用いて、復号アルゴリズムＤ４により、受け取った暗号化乱数Ｅ４（Ｋｓｃ、Ｒ２）を復号して復号文Ｒ２’＝Ｄ４（Ｋｓｃ、Ｅ４（Ｋｓｃ、Ｒ２））を生成する。次に、生成した復号文Ｒ２’を乱数比較部Ｂ１４へ出力する。
【０３１５】
ここで、復号アルゴリズムＤ４は、秘密鍵暗号方式による暗号化アルゴリズムである。復号アルゴリズムＤ４は、一例として、ＡＥＳによるものである。Ｅ４（Ｋ、Ａ）は、鍵Ｋを用いて、平文Ａに対して暗号化アルゴリズムＥ４を施して生成した暗号文を示す。また、Ｄ４（Ｋ、Ｂ）は、鍵Ｋを用いて、暗号文Ｂに対して復号アルゴリズムＤ４を施して生成した復号文を示す。
【０３１６】
乱数比較部Ｂ１４は、乱数Ｒ２を受け取り、復号文Ｒ２’を受け取る。次に、乱数Ｒ２と復号文Ｒ２’とを比較する。乱数Ｒ２と復号文Ｒ２’とが一致する場合に、相互認証部４０３は、相手の装置が正当であると判断する。乱数Ｒ２と復号文Ｒ２’とが一致しない場合に、相互認証部４０３は、相手の装置が不正であると判断する。
【０３１７】
相互の認証に成功すると、鍵共有部Ｂ１５は、鍵共有の処理を実行して、共有鍵ｋ’を算出する。相互の認証に失敗すると、共有鍵ｋ’の算出は、行われない。
【０３１８】
相互の認証に成功すると、暗復号化部Ｂ１６は、算出された共有鍵ｋ’を用いて、データを暗号化して、暗号化データを生成する。暗号化データは、相手の装置に送信される。また、暗復号化部Ｂ１６は、相手の装置から暗号化データを受信する。次に、算出された共有鍵ｋ’を用いて、暗号化データを復号して、元のデータを生成する。
【０３１９】
（４）入出力部４０８
入出力部４０８は、端末装置３００から情報を受け取り、受け取った情報を制御部４０１又は相互認証部４０３に対して出力する。
【０３２０】
また、入出力部４０８は、制御部４０１又は相互認証部４０３から情報を受け取り、受け取った情報を端末装置３００に対して出力する。
【０３２１】
２．６  機器５００
ここでは、機器５００ａ、５００ｂ、５００ｃ、５００ｄ及び５００ｅを代表して、機器５００として説明する。
【０３２２】
機器５００は、図１６に示すように、機構制御部５０１、通信部５０２、命令受信部５０６、情報通知部５０７及び機構５０８から構成されている。
【０３２３】
機構５０８は、機器５００の機能を達成するための主たる機構である。機器５００が照明器具である場合、機構５０８は、照明機構である。機器５００がテレビ受像機である場合、機構５０８は、放送波を受信し、受信した放送波から利用者の所望のチャネルの番組を抽出し、抽出した番組を再生して表示する。機器５００が扉である場合、機構５０８は、扉の施錠及び開錠を制御するロック機構である。
【０３２４】
機構５０８は、機構制御部５０１から、遠隔操作命令を含む操作指示を受け取り、受け取った操作指示に含まれる遠隔操作命令に従って、動作する。
【０３２５】
通信部５１０は、ネットワーク２０を介して、確認サーバ装置２００との間で情報の送受信を行う。
【０３２６】
情報通知部５０７は、機構制御部５０１から、機器が有する機構５０８の状態を示す機器状態情報を受け取り、受け取った機器状態情報を、通信部５０２及びネットワーク２０を介して、確認サーバ装置２００に対して送信する。
【０３２７】
命令受信部５０６は、確認サーバ装置２００から、ネットワーク２０及び通信部５０２を介して、機器５００の機構５０８を制御する遠隔操作命令を受信し、受信した遠隔操作命令を機構制御部５０１に対して出力する。
【０３２８】
機構制御部５０１は、命令受信部５０６から、遠隔操作命令を受け取り、受け取った遠隔操作命令により、機構５０８を制御する。また、機構５０８から、機構５０８の状態を示す機器状態情報を取得し、取得した機器状態情報を情報通知部５０７に対して出力する。
【０３２９】
機構制御部５０１は、確認サーバ装置２００から、ネットワーク２０、通信部５０２及び命令受信部５０６を介して、機器状態情報の取得の要求を受信する。次に、機構制御部５０１は、機器状態情報の取得の要求から、取得の対象である機器に関する機器情報を抽出し、抽出した機器情報に対応する機器状態情報を機構５０８から取得する。次に、機構制御部５０１は、取得した機器状態情報を、情報通知部５０７、通信部５０２及びネットワーク２０を介して、確認サーバ装置２００に対して送信する。
【０３３０】
２．７  遠隔操作システム１０における動作
（１）制御プログラムの制作及び制御プログラムの配信の手順
制御プログラムの制作及び制御プログラムの配信の手順について、図１７に示すシーケンス図を用いて説明する。
【０３３１】
確認サーバ装置２００のプログラム制作部２０６は、確認サーバ装置２００の利用者の操作により、制御プログラムを制作する。次に、プログラム制作部２０６は、制作された制御プログラムをプログラム格納部２０７に書き込む（ステップＳ１０１）。
【０３３２】
署名生成部２１４は、鍵格納部２０４から、確認サーバ装置２００に割り当てられた私有鍵を読み出し、プログラム格納部２０７から制御プログラムを読み出す。次に、読み出した私有鍵を用いて、読み出した制御プログラムにデジタル署名Ｓｉｇｎを施して、署名データを生成する。次に、署名生成部２１４は、生成した署名データを制御プログラムに付加し、署名データが付加された制御プログラムを、プログラム格納部２０７に記憶されている制御プログラムに上書きする（ステップＳ１０２）。
【０３３３】
次に、確認サーバ装置２００の相互認証部２０３と配信サーバ装置１００の相互認証部１０３とは、相互認証及び鍵共有を行う（ステップＳ１０３）。なお、相互認証及び鍵共有の詳細手順については、後述する。
【０３３４】
次に、通信部２０２は、プログラム格納部２０７から制御プログラムを読み出す（ステップＳ１０４）。
【０３３５】
次に、確認サーバ装置２００の通信部２０２は、読み出した制御プログラムを、安全な手段により、ネットワーク２０を介して、配信サーバ装置１００に送信する（ステップＳ１０５）。次に、配信サーバ装置１００の通信部１０２は、確認サーバ装置２００から、ネットワーク２０を介して、安全な手段により、前記制御プログラムを受信する（ステップＳ１０５）。
【０３３６】
ここで、安全な手段による通信は、次の方法により実現される。
【０３３７】
相互認証部２０３は、ステップＳ１０３に示す相互認証及び鍵共有の手順において、生成された共有鍵を用い、制御プログラムを暗号化して暗号化制御プログラムを生成する。ステップＳ１０５において、通信部２０２は、暗号化制御プログラムを、ネットワーク２０を介して、配信サーバ装置１００に送信する。次に、通信部１０２は、確認サーバ装置２００から、ネットワーク２０を介して、暗号化制御プログラムを受信する。相互認証部１０３は、ステップＳ１０３に示す相互認証及び鍵共有の手順において、生成された共有鍵を用い、暗号化制御プログラムを復号して、制御プログラムを生成する。
【０３３８】
次に、通信部１０２は、受信した制御プログラムを記憶部１０５に書き込む（ステップＳ１０６）。
【０３３９】
以上の手順により、制御プログラムが確認サーバ装置２００から配信サーバ装置１００に送信される。
【０３４０】
次に、端末装置３００の入力部３１０は、端末装置３００の利用者から、制御プログラムを取得する指示を受け付ける（ステップＳ１１１）。
【０３４１】
次に、配信サーバ装置１００の相互認証部１０３と端末装置３００の相互認証部３０３とは、相互認証及び鍵共有を行う（ステップＳ１１２）。
【０３４２】
次に、通信部３０２は、制御部３０１の制御により、制御プログラムの要求を、ネットワーク２０を介して、配信サーバ装置１００に対して送信する（ステップＳ１１３）。配信サーバ装置１００の制御部１０１は、端末装置３００から、ネットワーク２０及び通信部１０２を介して、制御プログラムの要求を受信する（ステップＳ１１３）。
【０３４３】
次に、制御部１０１は、通信部１０２及びネットワーク２０を介して、端末装置３００に対して、利用者識別子及びパスワードの要求を送信する（ステップＳ１１４）。アカウント取得部９０８は、配信サーバ装置１００から、ネットワーク２０及び通信部３０２を介して、利用者識別子及びパスワードの要求を受信する（ステップＳ１１４）。
【０３４４】
次に、入力部３１０は、端末装置３００の利用者から、利用者識別子及びパスワードの入力を受け付ける（ステップＳ１１５）。アカウント取得部９０８は、入力を受け付けた利用者識別子及びパスワードを、安全な手段により、通信部３０２及びネットワーク２０を介して、配信サーバ装置１００に対して送信する（ステップＳ１１６）。アカウント確認部１０７は、端末装置３００から、ネットワーク２０及び通信部１０２を介して、安全な手段により、利用者識別子及びパスワードを受信する（ステップＳ１１６）。ここで、安全な手段とは、上述した暗号化及び復号の方法によるものである。
【０３４５】
次に、アカウント確認部１０７は、受信した利用者識別子及びパスワードが、アカウント格納部１０６に記憶されているか否かを確認する（ステップＳ１１７）。受信した利用者識別子及びパスワードが、アカウント格納部１０６に記憶されていない場合、ログインに失敗した（ログイン異常）とみなす。受信した利用者識別子及びパスワードが、アカウント格納部１０６に記憶されている場合、ログインに成功した（ログイン正常）とみなす。
【０３４６】
ログイン異常の場合（ステップＳ１１８で「異常」）、アカウント確認部１０７は、ログイン異常を示すメッセージを生成する（ステップＳ１１９）。次に、当該メッセージを、通信部１０２及びネットワーク２０を介して、端末装置３００に対して送信する（ステップＳ１２０）。これにより、配信サーバ装置１００における処理は、終了する。
【０３４７】
端末装置３００の制御部３０１は、配信サーバ装置１００から、ネットワーク２０及び通信部３０２を介して、前記メッセージを受信する（ステップＳ１２０）。次に、表示部３０９は、受信した前記メッセージを表示する（ステップＳ１２１）。これにより、端末装置３００の処理は、終了する。
【０３４８】
ログイン正常の場合（ステップＳ１１８で「正常」）、制御部１０１は、記憶部１０５から制御プログラムを読み出す（ステップＳ１２２）。次に、制御部１０１は、読み出した制御プログラムを、安全な手段により、通信部１０２及びネットワーク２０を介して、端末装置３００に対して送信する（ステップＳ１２３）。通信部３０２は、配信サーバ装置１００から、ネットワーク２０を介して、安全な手段により、制御プログラムを受信する（ステップＳ１２３）。ここで、安全な手段については、上述した通りである。次に、通信部３０２は、受信した制御プログラムをプログラム格納部３０５に書き込む（ステップＳ１２４）。次に、プログラム実行部３０６は、制御プログラムをプログラム格納部３０５にインストールする（ステップＳ１２５）。
【０３４９】
以上の手順により、制御プログラムが配信サーバ装置１００から端末装置３００に送信される。
【０３５０】
（２）制御プログラムの起動の手順
制御プログラムの起動の手順について、図１８〜図２０に示すシーケンス図を用いて説明する。
【０３５１】
端末装置３００の入力部３１０は、端末装置３００の利用者から、制御プログラムの起動の操作を受け付ける（ステップＳ１３０）。この時点を第１時点と呼ぶ。
【０３５２】
検証部３１１は、鍵格納部３０４から、確認サーバ装置２００に割り当てられた公開鍵を読み出す。次に、検証部３１１は、読み出した公開鍵を用いて、プログラム格納部３０５にインストールされた制御プログラム３３１の署名領域３３４に記憶されている署名データ３３４ａ、実行部領域３３２及び第１データ領域３３３に対して、デジタル署名検証Ｖｒｆｙを施す（ステップＳ１３１）。デジタル署名検証Ｖｒｆｙによる検証結果が失敗である場合（ステップＳ１３２で「失敗」）、検証部３１１は、デジタル署名検証Ｖｒｆｙに失敗した旨を示すメッセージを生成し、表示部３０９は、当該メッセージを表示する（ステップＳ１３３）。これにより、端末装置３００は、処理を終了する。
【０３５３】
デジタル署名検証Ｖｒｆｙによる検証結果が成功である場合（ステップＳ１３２で「成功」）、プログラム実行部３０６は、制御プログラムを実行状態にする（ステップＳ１３４）。付随データ処理部９０１は、付随データ格納部３０７に付随データが格納されているか否かを判断する（ステップＳ１３５）。
【０３５４】
付随データ格納部３０７に付随データが格納されている場合（ステップＳ１３５で「有り」）、検証部３１１は、鍵格納部３０４から、確認サーバ装置２００に割り当てられた公開鍵を読み出す。次に、検証部３１１は、読み出した公開鍵を用いて、付随データ格納部３０７に記録されている付随データの署名領域に記憶されている署名データ、変数領域に記録されている変数Ｋに対して、デジタル署名検証Ｖｒｆｙを施す（ステップＳ１３６）。デジタル署名検証Ｖｒｆｙによる検証結果が失敗である場合（ステップＳ１３７で「失敗」）、検証部３１１は、デジタル署名検証Ｖｒｆｙに失敗した旨を示すメッセージを生成し、表示部３０９は、当該メッセージを表示する（ステップＳ１３８）。これにより、端末装置３００は、処理を終了する。
【０３５５】
デジタル署名検証Ｖｒｆｙによる検証結果が成功である場合（ステップＳ１３７で「成功」）、付随データ処理部９０１は、付随データ格納部３０７に格納されている付随データを制御プログラム３３１の第２データ領域３３５に上書きする（ステップＳ１３９）。
【０３５６】
付随データ格納部３０７に付随データが格納されていない場合（ステップＳ１３５で「無し」）、検証部３１１による検証及び付随データ処理部９０１による付随データの上書きを行わない。
【０３５７】
制御部３０１は、機器５００に対する遠隔操作のための接続要求を、通信部３０２及びネットワーク２０を介して、確認サーバ装置２００に対して送信する（ステップＳ１４０）。制御部２０１は、端末装置３００から、ネットワーク２０及び通信部２０２を介して、接続要求を受信する（ステップＳ１４０）。
【０３５８】
次に、確認サーバ装置２００の相互認証部２０３と端末装置３００の相互認証部３０３とは、相互認証及び鍵共有を行う（ステップＳ１４１）。
【０３５９】
次に、確認サーバ装置２００の相互認証部２０３とメモリカード４００の相互認証部４０３とは、相互認証及び鍵共有を行う（ステップＳ１４２）。
【０３６０】
確認サーバ装置２００の制御部２０１は、通信部２０２、ネットワーク２０及び端末装置３００を介して、メモリカード４００に対して、固有識別子の要求を送信する（ステップＳ１４３）。メモリカード４００の制御部４０１は、確認サーバ装置２００から、ネットワーク２０、端末装置３００及び入出力部４０８を介して、固有識別子の要求を受信する（ステップＳ１４３）。次に、制御部４０１は、固有識別子格納部４０７から固有識別子Ｙの読み出しを試みる（ステップＳ１４４）。制御部４０１は、読み出した固有識別子Ｙを、安全な手段により、入出力部４０８、端末装置３００及びネットワーク２０を介して、確認サーバ装置２００に対して、送信する（ステップＳ１４５）。また、制御部４０１は、固有識別子Ｙの読み出しに失敗したときは、固有識別子が無いことを示すメッセージを、安全な手段により、入出力部４０８、端末装置３００及びネットワーク２０を介して、確認サーバ装置２００に対して送信する（ステップＳ１４５）。
【０３６１】
制御部２０１は、メモリカード４００から、端末装置３００、ネットワーク２０及び通信部２０２を介して、安全な手段により、固有識別子Ｙ又は固有識別子が無いことを示すメッセージを受信する。また、制御部２０１は、メモリカード４００に対して、固有識別子の要求を送信した後、所定時間を経過しても、固有識別子Ｙ又は固有識別子が無いことを示すメッセージを受信しないときは、固有識別子が無いことを示すメッセージを生成する（ステップＳ１４５）。
【０３６２】
次に、端末装置３００の入力部３１０は、端末装置３００の利用者からログインの要否を受け付ける（ステップＳ１４６）。次に、アカウント取得部９０８は、通信部３０２及びネットワーク２０を介して、ログインの要否を確認サーバ装置２００に対して送信する（ステップＳ１４７）。
【０３６３】
次に、アカウント取得部９０８は、受け付けたログインの要否が、ログインを要求することを示すか要求しないことを示すかを判断する（ステップＳ１４８）。
【０３６４】
ログインを要求することを示す場合（ステップＳ１４８で「要」）、入力部３１０は、端末装置３００の利用者から、利用者識別子及びパスワードの入力を受け付ける（ステップＳ１４９）。次に、アカウント取得部９０８は、受け付けた利用者識別子及びパスワードを、通信部３０２及びネットワーク２０を介して、確認サーバ装置２００に対して、安全な手段により、送信する（ステップＳ１５０）。
【０３６５】
アカウント確認部２１５は、端末装置３００から、ネットワーク２０及び通信部２０２を介して、ログインの要否を受け取る（ステップＳ１５０）。
【０３６６】
アカウント確認部２１５は、受け取ったログインの要否が、ログインを要求することを示すか要求しないことを示すかを判断する（ステップＳ１５６）。
【０３６７】
ログインの要否が、ログインを要求しないことを示す場合（ステップＳ１５６で「否」）、制御をステップＳ１６２へ移す。
【０３６８】
ログインの要否が、ログインを要求することを示す場合（ステップＳ１５６で「要」）、アカウント確認部２１５は、端末装置３００から、ネットワーク２０及び通信部２０２を介して、安全な手段により、利用者識別子及びパスワードを受信する（ステップＳ１５０）。次に、アカウント確認部２１５は、受信した利用者識別子及びパスワードの組が、アカウント管理テーブル２６１に記憶されているか否かを確認する（ステップＳ１５１）。アカウント確認部２１５は、受信した利用者識別子及びパスワードが、アカウント管理テーブル２６１に記憶されていない場合、ログインに失敗した（ログイン異常）とみなす。アカウント確認部２１５は、受信した利用者識別子及びパスワードが、アカウント管理テーブル２６１に記憶されている場合、ログインに成功した（ログイン正常）とみなす。
【０３６９】
ログイン異常の場合（ステップＳ１５２で「異常」）、アカウント確認部２１５は、ログイン異常を示すメッセージを生成する（ステップＳ１５３）。次に、当該メッセージを、通信部２０２及びネットワーク２０を介して、端末装置３００に対して送信する（ステップＳ１５４）。これにより、確認サーバ装置２００における処理は、終了する。
【０３７０】
端末装置３００の通信部３０２は、確認サーバ装置２００から、ネットワーク２０を介して、前記メッセージを受信する（ステップＳ１５４）。次に、表示部３０９は、前記メッセージを表示する（ステップＳ１５５）。これにより、端末装置３００の処理は、終了する。
【０３７１】
ログイン正常の場合（ステップＳ１５２で「正常」）、制御部１０１は、利用者識別子及びパスワードを記憶する（ステップＳ１６１）。
【０３７２】
次に、付随データ生成部２０８は、メモリカード４００から固有識別子を受信しているか否かを確認する（ステップＳ１６２）。固有識別子を受信している場合（ステップＳ１６２で「有り」）、付随データ生成部２０８は、乱数Ｒを生成し（ステップＳ１６３）、変数Ｋ＝固有識別子Ｙ  ＸＯＲ  乱数Ｒを算出する（ステップＳ１６４）。次に、付随データ生成部２０８は、算出して得られた変数Ｋを含む付随データを生成する（ステップＳ１６５）。次に、署名生成部２１４は、付随データに対してデジタル署名Ｓｉｇｎを施して、署名データを生成し、生成した署名データを付随データに付加する（ステップＳ１６６）。次に、付随データ生成部２０８は、付随データ及び乱数Ｒを、通信部２０２及びネットワーク２０を介して、端末装置３００に対して、安全な手段により、送信する（ステップＳ１６７）。
【０３７３】
固有識別子を受信していない場合（ステップＳ１６２で「無し」）、乱数Ｒの生成、変数Ｋの算出、付随データの生成、署名データの生成及び付随データ及び乱数Ｒの送信は、行われない。
【０３７４】
付随データ処理部９０１は、確認サーバ装置２００から、ネットワーク２０及び通信部３０２を介して、付随データ及び乱数Ｒを、安全な手段により、受信する場合がある（ステップＳ１６７）。
【０３７５】
次に、付随データ処理部９０１は、付随データ及び乱数Ｒを受信したか否かを確認する（ステップＳ１６８）。
【０３７６】
付随データ及び乱数Ｒを受信した場合（ステップＳ１６８で「ＹＥＳ」）、付随データ処理部９０１は、受信した付随データを、付随データ格納部３０７に書き込む（ステップＳ１６９）。次に、付随データ処理部９０１は、受信した乱数Ｒを、付随データ格納部３０７に書き込む（ステップＳ１７０）
付随データ及び乱数Ｒを受信しなかった場合（ステップＳ１６８で「ＮＯ」）、付随データ及び乱数Ｒの書き込みは、行われない。
【０３７７】
端末装置３００の入力部３１０は、端末装置３００の利用者から、操作指示を受け付ける（ステップＳ１８１）。この時点を第２時点と呼ぶ。受け付けた操作指示が処理の終了を示す場合（ステップＳ１８２で「ＹＥＳ」）、端末装置３００は、処理を終了する。
【０３７８】
受け付けた操作指示が処理の終了ではない場合（ステップＳ１８２で「ＮＯ」）、操作指示取得部９１０は、受け取った操作指示を、通信部３０２及びネットワーク２０を介して、確認サーバ装置２００に対して送信する（ステップＳ１８３）。
【０３７９】
確認サーバ装置２００の機器制御部２１３は、端末装置３００から、ネットワーク２０及び通信部２０２を介して、操作指示を受け取る（ステップＳ１８３）。次に、信頼性評価部２１０は、固有識別子を受け取ったか否かを判断する（ステップＳ２００）。
【０３８０】
固有識別子を受け取った場合（ステップＳ２００で「有り」）、付随データ生成部２０８は、付随データをプログラム格納部２０７に記憶されている制御プログラムに上書きする（ステップＳ２０１）。次に、信頼性評価部２１０は、制御プログラムにハッシュ演算Ｈａｓｈを施して、ハッシュ値Ｈを算出する（ステップＳ２０２）。次に、信頼性評価部２１０は、評価値Ｓ＝固有識別子Ｙ  ＸＯＲ  Ｏｎｅｗａｙ（ハッシュ値Ｈ、乱数Ｒ）を算出する（ステップＳ２０３）。
【０３８１】
ステップＳ１８３で操作指示を送信した後、端末装置３００の相互認証部３０３と、メモリカード４００の相互認証部４０３とは、相互認証及び鍵共有を行う（ステップＳ１８４）。
【０３８２】
次に、端末装置３００の固有識別子取得処理部９０２は、固有識別子の要求を、入出力部３０８を介して、メモリカード４００に対して出力する（ステップＳ１８５）。次に、メモリカード４００の制御部４０１は、端末装置３００から、入出力部４０８を介して、固有識別子の要求を受け取る（ステップＳ１８５）。
【０３８３】
固有識別子取得処理部９０２は、ステップＳ１８５において、固有識別子の要求を出力した後で、固有識別子Ｙ’を「０」に設定する（ステップＳ１８６）。
【０３８４】
メモリカード４００の制御部４０１は、固有識別子格納部４０７から固有識別子の読み出しを試みる。ここでは、固有識別子Ｙ’が読み出されるとする。読み出した固有識別子Ｙ’を、安全な手段により、端末装置３００に対して出力する。固有識別子の読み出しができない場合、制御部４０１は、固有識別子が無いことを示すメッセージを、安全な手段により、端末装置３００に対して出力する（ステップＳ１８８）。
【０３８５】
次に、固有識別子取得処理部９０２は、メモリカード４００から固有識別子Ｙ’を受け取ったか否かを判断する（ステップＳ１８９）。固有識別子Ｙ’を受け取った場合（ステップＳ１８９で「有り」）、固有識別子取得処理部９０２は、ハッシュ値Ｈ’＝Ｈａｓｈ（プログラム格納部３０５に格納されている制御プログラム）を算出する（ステップＳ１９０）。次に、固有識別子取得処理部９０２は、評価値Ｓ’＝固有識別子Ｙ’  ＸＯＲ  Ｏｎｅｗａｙ（ハッシュ値Ｈ’、乱数Ｒ）を算出する（ステップＳ１９１）。次に、固有識別子取得処理部９０２は、評価値Ｓ’を、通信部３０２及びネットワーク２０を介して、確認サーバ装置２００に対して送信する（ステップＳ１９２）。
【０３８６】
信頼性評価部２１０は、端末装置３００から、ネットワーク２０及び通信部２０２を介して、評価値Ｓ’を受信する（ステップＳ１９２）。
【０３８７】
次に、信頼性評価部２１０は、算出された評価値Ｓと受信された評価値Ｓ’とが一致するか否かを判断する（ステップＳ２０４）。評価値Ｓと評価値Ｓ’とが一致しない場合（ステップＳ２０４で「不一致」）、信頼性評価部２１０は、機器制御部２１３に対して、機器に対する操作を禁止する禁止情報を出力し、評価値Ｓと評価値Ｓ’とが一致しない旨を示すメッセージを生成する（ステップＳ２０５）。次に、生成したメッセージを、通信部２０２及びネットワーク２０を介して、端末装置３００に対して送信する（ステップＳ２０６）。
【０３８８】
端末装置３００の制御部３０１は、確認サーバ装置２００から、ネットワーク２０及び通信部３０２を介して、評価値Ｓと評価値Ｓ’とが一致しない旨を示す前記メッセージを受け取る（ステップＳ２０６）。次に、表示部３０９は、受け取ったメッセージを表示する（ステップＳ２０７）。これにより、端末装置３００による処理を終了する。
【０３８９】
評価値Ｓと評価値Ｓ’とが一致する場合（ステップＳ２０４で「一致」）、機器制御部２１３に対して、機器に対する操作を許可する許可情報を出力し、機器に対する遠隔処理等が行われる（ステップＳ２０８）。これにより、処理が終了する。
【０３９０】
固有識別子を受け取っていない場合（ステップＳ２００で「無し」）、付随データの上書き、ハッシュ値Ｈの算出、評価値Ｓの算出及び評価値Ｓと評価値Ｓ’の比較は、行われない。
【０３９１】
なお、ステップＳ２０８において、機器に対する遠隔処理等が終了した後で、利用者は、制御プログラムを終了させるとしてもよい。又は、ステップＳ２０８において、機器に対する遠隔処理等が終了した後で、ステップＳ１３０に戻って、処理を繰り返すとしてもよい。
【０３９２】
また、ステップＳ２０８において、機器に対する遠隔処理等が終了した後で、ステップＳ１８１に戻って、処理を繰り返すとしてもよい。
【０３９３】
（３）機器の遠隔処理及び関連する処理の手順
機器の遠隔処理及び関連する処理の手順について、図２１に示すフローチャートを用いて説明する。なお、ここで説明する機器の遠隔処理及び関連する処理は、図２０のステップＳ２０８の詳細である。
【０３９４】
機器制御部２１３は、端末装置３００から、ネットワーク２０及び通信部２０２を介して受信した操作指示が、機器５００に関する情報の取得の要求、機器５００の遠隔操作に関連する指示、機器制御ルールの修正の指示及びその他の指示のいずれであるかを判断する（ステップＳ２５１）。
【０３９５】
操作指示が、機器５００に関する情報の取得の要求である場合（ステップＳ２５１で「機器情報取得要求」）、機器制御部２１３は、機器５００に関する情報の取得の処理を行う（ステップＳ２５２）。
【０３９６】
操作指示が、機器５００の遠隔操作に関連する指示である場合（ステップＳ２５１で「遠隔操作関連指示」）、機器制御部２１３は、機器５００の遠隔操作に関連する処理を行う（ステップＳ２５３）。
【０３９７】
操作指示が、機器制御ルールの修正の指示である場合（ステップＳ２５１で「機器制御ルール修正指示」）、機器制御部２１３は、機器制御ルールの修正の処理を行う（ステップＳ２５４）。
【０３９８】
操作指示が、その他の指示である場合（ステップＳ２５１で「他の指示」）、機器制御部２１３は、その他の処理を行う（ステップＳ２５５）。
【０３９９】
これにより、機器の遠隔処理及び関連する処理を終了する。
【０４００】
（４）機器５００に関する情報の取得の手順
機器５００に関する情報の取得の手順について、図２２に示すフローチャートを用いて説明する。なお、ここで説明する機器５００に関する情報の取得の手順は、図２１のステップＳ２５２の詳細である。
【０４０１】
機器制御部２１３は、機器５００に関する情報の取得の要求から、機器情報を抽出し、抽出した機器情報に対応する条件を、条件テーブル２７１から読み出す（ステップＳ３０１）。
【０４０２】
次に、確認サーバ装置２００の現在の状態が、条件テーブル２７１から読み出された条件を満たすか否かを判断する（ステップＳ３０２）。
【０４０３】
確認サーバ装置２００の現在の状態が、読み出した条件を満たしていない場合（ステップＳ３０２で「満たさない」）、機器制御部２１３は、機器の状態を示す機器状態情報の取得ができない旨を示すメッセージを生成する（ステップＳ３０３）。次に、生成したメッセージを、通信部２０２及びネットワーク２０を介して、端末装置３００に対して送信する（ステップＳ３０４）。
【０４０４】
端末装置３００の機器操作提示部９０７は、確認サーバ装置２００から、ネットワーク２０及び通信部３０２を介して、機器状態情報の取得ができない旨を示すメッセージを受信する（ステップＳ３０４）。次に、機器操作提示部９０７は、受信したメッセージを表示部３０９に対して出力する。表示部３０９は、メッセージを受け取り、受け取ったメッセージを表示する（ステップＳ３１０）。これにより、機器状態情報の取得の処理を終了する。
【０４０５】
確認サーバ装置２００の現在の状態が、読み出した条件を満たしている場合（ステップＳ３０２で「満たす」）、機器制御部２１３は、機器状態情報の取得の要求を、通信部２０２及びネットワーク２０を介して、機器５００に対して出力する（ステップＳ３０５）。
【０４０６】
機器５００の機構制御部５０１は、確認サーバ装置２００から、ネットワーク２０、通信部５０２及び命令受信部５０６を介して、機器状態情報の取得の要求を受信する（ステップＳ３０５）。次に、機構制御部５０１は、機器状態情報の取得の要求から、取得の対象である機器に関する機器情報を抽出し、抽出した機器情報に対応する機器状態情報を機構５０８から取得する（ステップＳ３０６）。次に、機構制御部５０１は、取得した機器状態情報を、情報通知部５０７、通信部５０２及びネットワーク２０を介して、確認サーバ装置２００に対して送信する（ステップＳ３０７）。
【０４０７】
確認サーバ装置２００の機器制御部２１３は、機器５００から、ネットワーク２０及び通信部２０２を介して、機器状態情報を受信する（ステップＳ３０７）。次に、受信した機器状態情報を含むメッセージを生成する（ステップＳ３０８）。次に、機器制御部２１３は、生成したメッセージを、通信部２０２及びネットワーク２０を介して、端末装置３００に対して送信する（ステップＳ３０９）。
【０４０８】
端末装置３００の機器操作提示部９０７は、確認サーバ装置２００から、ネットワーク２０及び通信部３０２を介して、機器状態情報を含むメッセージを受信する（ステップＳ３０９）。次に、機器操作提示部９０７は、受信したメッセージを表示部３０９に対して出力する。表示部３０９は、メッセージを受け取り、受け取ったメッセージを表示する（ステップＳ３１０）。これにより、機器状態情報の取得の処理を終了する。
【０４０９】
（５）機器５００に対する遠隔操作に関連する処理の手順
機器５００に対する遠隔操作に関連する処理の手順について、図２３に示すフローチャートを用いて説明する。なお、ここで説明する機器５００に対する遠隔操作に関連する処理の手順は、図２１のステップＳ２５３の詳細である。
【０４１０】
機器制御部２１３は、制御ルール管理テーブル２８１に含まれている全ての制御ルール情報について、ステップＳ３３２〜Ｓ３３８を繰り返す（ステップＳ３３１〜Ｓ３３９）。
【０４１１】
機器制御部２１３は、制御ルール管理テーブル２８１から一つの制御ルール情報を読み出す（ステップＳ３３２）。
【０４１２】
次に、機器制御部２１３は、確認サーバ装置２００の現在の状態が、読み出した制御ルール情報に含まれる条件を満たすか否かを判断する（ステップＳ３３３）。
【０４１３】
確認サーバ装置２００の現在の状態が、読み出した条件を満たしていない場合（ステップＳ３３３で「満たさない」）、機器制御部２１３は、読み出した制御ルール情報から、操作内容を抽出し、抽出した操作内容の取得ができない旨を示すメッセージを生成する（ステップＳ３３４）。次に、生成したメッセージを、通信部２０２及びネットワーク２０を介して、端末装置３００に対して送信する（ステップＳ３３５）。
【０４１４】
確認サーバ装置２００の現在の状態が、読み出した条件を満たしている場合（ステップＳ３３３で「満たす」）、機器制御部２１３は、読み出した制御ルール情報から、操作内容及び項目を抽出し（ステップＳ３３６）、抽出した操作内容及び項目を含むメッセージを生成する（ステップＳ３３７）。次に、生成したメッセージを、通信部２０２及びネットワーク２０を介して、機器５００に対して出力する（ステップＳ３３８）。
【０４１５】
端末装置３００の機器操作提示部９０７は、確認サーバ装置２００から、ネットワーク２０及び通信部３０２を介して、前記メッセージを受信する（ステップＳ３３５、Ｓ３３８）。
【０４１６】
次に、機器操作提示部９０７は、受信したメッセージを用いて、機器操作メニューを生成し、表示部３０９は、機器操作メニューを表示する（ステップＳ３４０）。
【０４１７】
入力部３１０は、端末装置３００の利用者から、機器５００に対する操作指示を受け付ける（ステップＳ３４１）。制御部３０１は、操作指示を、通信部３０２及びネットワーク２０を介して、確認サーバ装置２００に対して送信する。確認サーバ装置２００の機器制御部２１３は、操作指示を、通信部２０２及びネットワーク２０を介して、機器５００に対して送信する（ステップＳ３４２）。
【０４１８】
機器５００の機構制御部５０１は、確認サーバ装置２００から、ネットワーク２０、通信部５０２及び命令受信部５０６を介して、操作指示に含まれる遠隔操作命令を受け取る（ステップＳ３４２）。次に、機構制御部５０１は、受け取った操作指示に含まれる遠隔操作命令に従って、機構５０８を制御する。機構５０８は、操作指示に含まれる遠隔操作命令に従って動作する（ステップＳ３４３）。
【０４１９】
以上により、機器５００に対する遠隔操作に関連する動作を終了する。
【０４２０】
（６）機器制御ルールの修正処理の手順
機器制御ルールの修正処理の手順について、図２４に示すフローチャートを用いて説明する。なお、ここで説明する機器制御ルールの修正処理の手順は、図２１のステップＳ２５４の詳細である。
【０４２１】
機器制御部２１３は、端末装置３００の利用者により、ログインが正常にされているか否かを判断する（ステップＳ３６１）。
【０４２２】
ログインが正常にされていない場合（ステップＳ３６１で「異常」）、機器制御部２１３は、ログインが正常にされていないことを示すメッセージを生成する（ステップＳ３６３）。次に、生成したメッセージを、通信部２０２及びネットワーク２０を介して、端末装置３００に対して送信する（ステップＳ３６４）。制御部３０１は、ログインが正常にされていないことを示すメッセージを表示部３０９に対して出力する。表示部３０９は、当該メッセージを表示する（ステップＳ３６５）。これにより、機器制御ルールの修正処理を終了する。
【０４２３】
ログインが正常にされている場合（ステップＳ３６１で「正常」）、機器制御部２１３は、機器制御部２１３は、固有識別子が取得されているか否かを判断する（ステップＳ３６２）。固有識別子が取得されていない場合（ステップＳ３６２で「無し」）、機器制御部２１３は、固有識別子が取得されていないことを示すメッセージを生成する（ステップＳ３６３）。次に、生成したメッセージを、通信部２０２及びネットワーク２０を介して、端末装置３００に対して送信する（ステップＳ３６４）。制御部３０１は、固有識別子が取得されていないことを示すメッセージを表示部３０９に対して出力する。表示部３０９は、当該メッセージを表示する（ステップＳ３６５）。これにより、機器制御ルールの修正処理を終了する。
【０４２４】
固有識別子が取得されている場合（ステップＳ３６２で「有り」）、機器制御部２１３は、機器情報格納部２１２から、制御ルール管理テーブル２８１を読み出す（ステップＳ３７１）。次に、読み出した制御ルール管理テーブルを、通信部２０２、ネットワーク２０を介して、端末装置３００に対して送信する（ステップＳ３７２）。
【０４２５】
端末装置３００の機器制御ルール提示部９０６は、確認サーバ装置２００から、ネットワーク２０及び通信部３０２を介して、制御ルール管理テーブルを受信する（ステップＳ３７２）。
【０４２６】
次に、機器制御ルール提示部９０６は、受信した制御ルール管理テーブルを用いて、制御ルール変更画面３６１を生成する（ステップＳ３７３）。表示部３０９は、制御ルール変更画面３６１を表示する（ステップＳ３７４）。
【０４２７】
次に、入力部３１０は、制御ルールの変更操作を受け付ける。機器制御ルール取得部９０９は、制御ルールの変更操作を受け取る（ステップＳ３７５）。次に、機器制御ルール取得部９０９は、制御ルールの変更操作を、通信部３０２及びネットワーク２０を介して、確認サーバ装置２００に対して送信する（ステップＳ３７６）。
【０４２８】
機器情報管理部２１７は、端末装置３００から、ネットワーク２０及び通信部２０２を介して、制御ルールの変更操作を受信する（ステップＳ３７６）。次に、機器情報管理部２１７は、受信した変更操作を用いて、機器情報格納部２１２に保持されている制御ルール管理テーブル２８１を変更する（ステップＳ３７７）。
【０４２９】
以上により、機器制御ルールの修正処理を終了する。
【０４３０】
（７）相互認証及び鍵共有の手順
確認サーバ装置２００とメモリカード４００との間の相互認証及び鍵共有の手順について、図２５〜図２６に示すシーケンス図を用いて説明する。
【０４３１】
乱数生成部Ａ１０は、乱数Ｒ１を生成する（ステップＳ４０１）。次に、生成した乱数Ｒ１を、ネットワーク２０及び端末装置３００を介して、メモリカード４００に送信する（ステップＳ４０２）。
【０４３２】
暗号化部Ｂ１１は、確認サーバ装置２００から乱数Ｒ１を受信する（ステップＳ４０２）。次に、システム鍵Ｋｓｃを用いて、暗号化アルゴリズムＥ３により、乱数Ｒ１を暗号化して、暗号化乱数Ｅ３（Ｋｓｃ、Ｒ１）を生成する（ステップＳ４０３）。次に、生成した暗号化乱数Ｅ３（Ｋｓｃ、Ｒ１）を、端末装置３００及びネットワーク２０を介して、確認サーバ装置２００に対して送信する（ステップＳ４０４）。
【０４３３】
復号部Ａ１３は、メモリカード４００から、暗号化乱数Ｅ３（Ｋｓｃ、Ｒ１）を受け取る（ステップＳ４０４）。次に、システム鍵Ｋｓｃを用いて、復号アルゴリズムＤ３により、受け取った暗号化乱数Ｅ３（Ｋｓｃ、Ｒ１）を復号して復号文Ｒ１’＝Ｄ３（Ｋｓｃ、Ｅ３（Ｋｓｃ、Ｒ１））を生成する（ステップＳ４０５）。
【０４３４】
乱数比較部Ａ１２は、乱数Ｒ１と復号文Ｒ１’とを比較する（ステップＳ４０６）。乱数Ｒ１と復号文Ｒ１’とが一致しない場合に（ステップＳ４０６で「不一致」）、相互認証部２０３は、メモリカード４００が不正であると判断する。相互認証部２０３は、その旨を示すメッセージを生成し（ステップＳ４０７）、生成したメッセージを端末装置３００に対して送信する（ステップＳ４０８）。端末装置３００は、メッセージを受信し（ステップＳ４０８）、表示部３０９は、メッセージを表示する（ステップＳ４０９）。これにより、相互認証の処理を終了する。
【０４３５】
次に、乱数生成部Ｂ１０は、乱数Ｒ２を生成する（ステップＳ４１０）。次に、生成した乱数Ｒ２を確認サーバ装置２００に送信する（ステップＳ４１１）。
【０４３６】
一方、乱数Ｒ１と復号文Ｒ１’とが一致する場合に（ステップＳ４０６で「一致」）、相互認証部２０３は、相手の装置が正当であると判断する。暗号化部Ａ１４は、相手の装置から乱数Ｒ２を受け取る（ステップＳ４１１）。システム鍵Ｋｓｃを用いて、暗号化アルゴリズムＥ４により、乱数Ｒ２を暗号化して、暗号化乱数Ｅ４（Ｋｓｃ、Ｒ２）を生成し（ステップＳ４１２）、生成した暗号化乱数Ｅ４（Ｋｓｃ、Ｒ２）をメモリカード４００へ送信する（ステップＳ４１３）。
【０４３７】
復号部Ｂ１３は、確認サーバ装置２００から、暗号化乱数Ｅ４（Ｋｓｃ、Ｒ２）を受け取る（ステップＳ４１３）。次に、システム鍵Ｋｓｃを用いて、復号アルゴリズムＤ４により、受け取った暗号化乱数Ｅ４（Ｋｓｃ、Ｒ２）を復号して復号文Ｒ２’＝Ｄ４（Ｋｓｃ、Ｅ４（Ｋｓｃ、Ｒ２））を生成する（ステップＳ４１４）。
【０４３８】
乱数比較部Ｂ１４は、乱数Ｒ２と復号文Ｒ２’とを比較する（ステップＳ４１５）。乱数Ｒ２と復号文Ｒ２’とが一致しない場合に（ステップＳ４１５で「不一致」）、相互認証部４０３は、その旨を示すメッセージを生成する（ステップＳ４１６）。次に、生成したメッセージを端末装置３００に対して送信する（ステップＳ４１７）。端末装置３００は、メッセージを受信し（ステップＳ４１７）、表示部３０９は、メッセージを表示する（ステップＳ４１８）。これにより、相互認証の処理を終了する。
【０４３９】
一方、乱数Ｒ２と復号文Ｒ２’とが一致する場合に（ステップＳ４１５で「一致」）、相互認証部４０３は、相手の装置が正当であると判断する。
【０４４０】
認証に成功した場合に（ステップＳ４０６で、「一致」）、鍵共有部Ａ１５は、スカラー値であるｘＡを設定する（ステップＳ４３１）。次に、楕円曲線上の点ＹＡ＝ｘＡ＊Ｇを算出する（ステップＳ４３２）。ここで、Ｇは、楕円曲線上の点である。また、ａ＊Ｂは、楕円曲線上の乗算を示す。次に、鍵共有部Ａ１５は、楕円曲線上の点ＹＡをメモリカード４００に対して送信する（ステップＳ４３３）。
【０４４１】
認証に成功した場合には（ステップＳ４１５で、「一致」）、鍵共有部Ｂ１５は、スカラー値であるｘＢを設定する（ステップＳ４３４）。次に、楕円曲線上の点ＹＢ＝ｘＢ＊Ｇを算出する（ステップＳ４３５）。次に、鍵共有部Ｂ１５は、楕円曲線上の点ＹＢを確認サーバ装置２００に対して送信する（ステップＳ４３６）。
【０４４２】
鍵共有部Ａ１５は、スカラー値である共有鍵ｋ＝ｘＡ＊ＹＢを算出する（ステップＳ４３７）。
【０４４３】
また、鍵共有部Ｂ１５は、スカラー値である共有鍵ｋ’＝ｘＢ＊ＹＡを算出する（ステップＳ４３８）。  これにより、相互認証及び鍵共有の処理を終了する。
【０４４４】
ここで、共有鍵ｋ＝ｘＡ＊ＹＢ
＝ｘＡ×（ｘＢ＊Ｇ）
＝ｘＢ×（ｘＡ＊Ｇ）
＝ｘＢ＊ＹＡ
＝共有鍵ｋ’である。
【０４４５】
なお、確認サーバ装置２００と配信サーバ装置１００との間の相互認証及び鍵共有、確認サーバ装置２００と端末装置３００との間の相互認証及び鍵共有、並びに、配信サーバ装置１００と端末装置３００との間の相互認証及び鍵共有についても、上記と同様であるので、説明を省略する。
【０４４６】
３．その他の変形例
なお、本発明を上記の実施の形態に基づいて説明しているが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
【０４４７】
（１）本発明の別の一態様は、遠隔操作システム１０ａであるとしてもよい。
【０４４８】
遠隔操作システム１０ａは、図２７に示すように、操作端末３００ａ、可搬媒体４００ａ、サーバ装置１００ａ及び機器５００ｆから構成されている。
【０４４９】
操作端末３００ａは、記憶されている制御プログラム内の遠隔操作命令の実行により機器を遠隔操作する。サーバ装置１００ａは、操作端末３００ａと機器５００ｆとの間において、遠隔操作を中継する。
【０４５０】
サーバ装置１００ａは、図２７に示すように、第１取得部１０１ａ、送信部１０２ａ、第２取得部１０３ａ、判断部１０４ａ及び禁止部１０５ａから構成されている。
【０４５１】
第１取得部１０１ａは、第１時点において、機器５００ｆに対する遠隔操作元の操作端末に近接する可搬媒体に固有の第１識別子を取得する。
【０４５２】
送信部１０２ａは、取得した前記第１識別子を前記操作端末に記憶されている前記制御プログラムに埋め込ませるために、前記第１識別子を前記操作端末に送信する。
【０４５３】
第２取得部１０３ａは、前記第１時点の後の第２時点において、機器５００ｆに対する遠隔操作元の操作端末に近接する可搬媒体に固有の第２識別子を取得する。
【０４５４】
判断部１０４ａは、前記制御プログラムに埋め込まれた前記第１識別子と、第２取得部１０３ａにより取得された前記第２識別子とが一致するか否かを判断する。
【０４５５】
禁止部１０５ａは、前記第１識別子と前記第２識別子とが一致しない場合、機器５００ｆに対する遠隔操作を禁止する。
【０４５６】
操作端末３００ａは、取得部３０１ａ、送信部３０２ａ及び埋込部３０３ａから構成されている。
【０４５７】
取得部３０１ａは、操作端末３００ａは近接する可搬媒体４００ａから、可搬媒体４００ａに固有の識別子を取得する。
【０４５８】
送信部３０２ａは、取得した前記識別子をサーバ装置１００ａに対して送信する。
【０４５９】
埋込部３０３ａは、サーバ装置１００ａから、前記第１識別子を受信し、受信した第１識別子を前記制御プログラムに埋め込む。
【０４６０】
ここで、サーバ装置１００ａは、第２取得部１０３ａを有しないとしてもよい。この場合、第１取得部１０１ａは、さらに、前記第１時点の後の第２時点において、機器５００ｆに対する遠隔操作元の操作端末に近接する可搬媒体に固有の第２識別子を取得する。
【０４６１】
（２）本発明の別の一態様は、遠隔操作システム１０ｂであるとしてもよい。遠隔操作システム１０ｂは、サーバ装置と操作端末と機器とから構成される。操作端末は、記憶されている制御プログラム内の遠隔操作命令の実行により機器を遠隔操作する。サーバ装置は、操作端末と機器との間において、遠隔操作を中継する。操作端末には、可搬媒体が装着される。可搬媒体は、当該可搬媒体に固有の識別子を保持している。図２８に示すシーケンス図を用いて、遠隔操作システム１０ｂについて説明する。
【０４６２】
操作端末の取得部は、可搬媒体から、固有の第１識別子を取得する（ステップＳ５０１）。
【０４６３】
操作端末の埋込部は、操作端末が記憶している制御プログラムに、取得した第１識別子を埋め込む（ステップＳ５０２）。
【０４６４】
操作端末の送信部は、第１識別子が埋め込まれた制御プログラムをサーバ装置に対して送信する（ステップＳ５０３）。
【０４６５】
サーバ装置の抽出部は、制御プログラムから第１識別子を抽出する（ステップＳ５０４）。
【０４６６】
操作端末の取得部は、さらに、可搬媒体から、固有の第２識別子を取得する（ステップＳ５０５）。
【０４６７】
操作端末の送信部は、さらに、取得した第２識別子をサーバ装置に対して送信する（ステップＳ５０６）。
【０４６８】
サーバ装置の判断部は、抽出された第１識別子と、送信された第２識別子とを比較する（ステップＳ５０７）。第１識別子と第２識別子とが一致しない場合（ステップＳ５０７で「不一致」）、サーバ装置の制御部は、機器に対する遠隔操作を禁止する（ステップＳ５０８）。
【０４６９】
第１識別子と第２識別子とが一致する場合（ステップＳ５０７で「一致」）、サーバ装置の制御部は、機器に対して、操作端末から受け取った操作指示を送信する（ステップＳ５０９）。
【０４７０】
機器は、サーバ装置から操作指示を受信し（ステップＳ５０９）、受信した操作指示に従って動作する（ステップＳ５１０）。
【０４７１】
（３）遠隔操作システム１０ｂにおいて、次に示すようにしてもよい。
【０４７２】
図２８に示すステップＳ５０２において、端末装置の埋込部は、図２９に示すように、一例として６４ビット長の第１識別子を分割して、８個の第１識別子片６０２、第２識別子片６０３、・・・、第８識別子片６０４を生成する（ステップＳ６０１）。第１識別子片６０２、第２識別子片６０３、・・・、第８識別子片６０４は、一例として、それぞれ、８ビット長である。
【０４７３】
制御プログラム６０５は、８個の第１領域６１０、第２領域６１１、・・・、第８領域６１２に分割されている。埋込部は、第１識別子片６０２を第１領域６１０の領域６０７に埋め込む。また、埋込部は、第２識別子片６０３を第２領域６１１の領域６０８に埋め込む。同様に、埋込部は、第８識別子片６０４を第８領域６１２の領域６０９に埋め込む。このように、埋込部は、各識別子片を、制御プログラム６０５の各領域に分散して埋め込む（ステップＳ６０２）。
【０４７４】
図２８に示すステップＳ５０４において、図２９に示すように、サーバ装置の抽出部は、制御プログラム６０５の第１領域６１０の領域６０７から第１識別子片６１３を抽出する。また、制御プログラム６０５の第２領域６１１の領域６０８から第２識別子片６１４を抽出する。同様に、制御プログラム６０５の第８領域６１２の領域６０９から第８識別子片６１５を抽出する。このように、サーバ装置の抽出部は、制御プログラム６０５の各領域から各識別子片を抽出する。各識別子片は、８ビット長である。次に、抽出した８個の第１識別子片６１３、第２識別子片６１４、・・・、第８識別子片６１５をこの順序で結合して第１識別子６１６を生成する（ステップＳ６０３）。第１識別子６１６は、６４ビット長である。
【０４７５】
上記の埋込方法を、上記の実施の形態１及び２において、適用してもよい。
【０４７６】
（４）遠隔操作システム１０ｂにおいて、次に示すようにしてもよい。
【０４７７】
図２８に示すステップＳ５０２において、端末装置の埋込部は、図３０に示すように、一例として６４ビット長の第１識別子を分割して、８個の第１識別子片６０２、第２識別子片６０３、・・・、第８識別子片６０４を生成する（ステップＳ６０１）。第１識別子片６０２、第２識別子片６０３、・・・、第８識別子片６０４は、一例として、それぞれ、８ビット長である。
【０４７８】
制御プログラム６０５は、８個の第１領域６１０、第２領域６１１、・・・、第８領域６１２に分割されている。埋込部は、第１識別子片６０２を第２領域６１１の領域６０７ａに埋め込む。また、埋込部は、第２識別子片６０３を第２領域６１１の領域６０８ａに埋め込む。同様に、埋込部は、第８識別子片６０４を第２領域６１１の領域６０９ａに埋め込む。このように、埋込部は、各識別子片を、制御プログラム６０５の第２領域に埋め込む（ステップＳ６０２ａ）。
【０４７９】
図２８に示すステップＳ５０４において、図３０に示すように、サーバ装置の抽出部は、制御プログラム６０５の第２領域６１１の領域６０７ａから第１識別子片６１３ａを抽出する。また、制御プログラム６０５の第２領域６１１の領域６０８ａから第２識別子片６１４ａを抽出する。同様に、制御プログラム６０５の第２領域６１１の領域６０９ａから第８識別子片６１５ａを抽出する。このように、サーバ装置の抽出部は、制御プログラム６０５の第２領域６１１から各識別子片を抽出する。各識別子片は、８ビット長である。次に、抽出した８個の第１識別子片６１３ａ、第２識別子片６１４ａ、・・・、第８識別子片６１５ａをこの順序で結合して第１識別子６１６ａを生成する（ステップＳ６０３ａ）。第１識別子６１６は、６４ビット長である。
【０４８０】
上記の埋込方法を、上記の実施の形態１及び２において、適用してもよい。
【０４８１】
（５）遠隔操作システム１０ｂにおいて、次に示すようにしてもよい。
【０４８２】
図３１に示すように、操作端末が記憶している制御プログラム６５１は、命令領域６５２とデータ領域６５３とから構成されている。命令領域６５２には、複数の命令が含まれる。複数の命令の一部は、ダミー命令６５４である。ダミー命令６５４は、実行されないように配置されている。データ領域６５３は、データを含む。
【０４８３】
図２８に示すステップＳ５０２において、端末装置の埋込部は、図３１に示すように、第１識別子を、命令領域６５２内のダミー命令６５４に埋め込む（ステップＳ６１１）。
【０４８４】
上記の埋込方法を、上記の実施の形態１及び２において、適用してもよい。
【０４８５】
図２８に示すステップＳ５０４において、サーバ装置の抽出部は、制御プログラム６５１の命令領域６５２のダミー命令６５４に埋め込まれた第１識別子を抽出してもよい。
【０４８６】
（６）遠隔操作システム１０ｂにおいて、次に示すようにしてもよい。
【０４８７】
図３２に示すように、サーバ装置の送信部は、操作端末に対して、埋込プログラム６６６を送信する（ステップＳ６３１）。
【０４８８】
埋込プログラム６６６は、図３２に示すように、埋込命令６６７、対象データアドレス６６８及び埋込先アドレス６６９からなる命令を含む。埋込命令６６７は、対象データアドレス６６８により示される位置に格納されているデータを、埋込先アドレス６６９により示される位置に、埋め込むことを指示する。
【０４８９】
操作端末の受信部は、サーバ装置から、埋込プログラム６６６を受信する（ステップＳ６３１）。
【０４９０】
端末装置は、制御プログラム６６２を記憶している。制御プログラム６６２は、命令領域６６３及びデータ領域６６４から構成されている。
【０４９１】
端末装置のプログラム実行部は、受信した埋込プログラム６６６を実行する（ステップＳ６３２）。これにより、対象データアドレス６６８により示される位置に格納されているデータ、言い換えると、第１識別子６６１が、制御プログラム６６２のデータ領域６６４において、埋込先アドレス６６９により示される位置にある領域６６５に、埋め込まれる。
【０４９２】
上記の埋込方法を、上記の実施の形態１及び２において、適用してもよい。
【０４９３】
（７）本発明の別の一態様は、遠隔操作システム１０ｃであるとしてもよい。遠隔操作システム１０ｃは、サーバ装置と操作端末と機器とから構成される。操作端末は、記憶されている制御プログラム内の遠隔操作命令の実行により機器を遠隔操作する。サーバ装置は、操作端末と機器との間において、遠隔操作を中継する。操作端末には、可搬媒体が装着される。可搬媒体は、当該可搬媒体に固有の識別子を保持している。図３３に示すシーケンス図を用いて、遠隔操作システム１０ｃについて説明する。
【０４９４】
操作端末の取得部は、可搬媒体から、固有の第１識別子を取得する（ステップＳ５３１）。
【０４９５】
操作端末の送信部は、第１識別子をサーバ装置に対して送信する（ステップＳ５３２）。
【０４９６】
操作端末の埋込部は、操作端末が記憶している制御プログラムに、取得した第１識別子を埋め込む（ステップＳ５３３）。
【０４９７】
操作端末の取得部は、さらに、可搬媒体から、固有の第２識別子を取得する（ステップＳ５３４）。
【０４９８】
サーバ装置の埋込部は、受信した第１識別子を、サーバ装置が記憶している制御プログラムに埋め込む（ステップＳ５３５）。
【０４９９】
サーバ装置の第３演算部は、サーバ装置が記憶し、第１識別子が埋め込まれた制御プログラムに対して、ハッシュ演算Ｈａｓｈを施して、第３演算値を算出する（ステップＳ５３６）。
【０５００】
サーバ装置の第４演算部は、第３演算値と、受信した第１識別子とに、排他的論理和ＸＯＲを施して、第４演算値を算出する（ステップＳ５３７）。
【０５０１】
端末装置の第１演算部は、端末装置が記憶し、第１識別子が埋め込まれた制御プログラムに対して、ハッシュ演算Ｈａｓｈを施して、第１演算値を算出する（ステップＳ５３８）。
【０５０２】
端末装置の第２演算部は、第１演算値と、取得した第２識別子とに、排他的論理和ＸＯＲを施して、第２演算値を算出する（ステップＳ５３９）。
【０５０３】
端末装置の送信部は、第２演算値をサーバ装置に対して送信する（ステップＳ５４０）。
【０５０４】
サーバ装置の判断部は、算出された第４演算値と、送信された第２演算値とを比較する（ステップＳ５４１）。第４演算値と第２演算値とが一致しない場合（ステップＳ５４１で「不一致」）、サーバ装置の制御部は、機器に対する遠隔操作を禁止する（ステップＳ５４２）。
【０５０５】
第４演算値と第２演算値とが一致する場合（ステップＳ５４１で「一致」）、サーバ装置の制御部は、機器に対して、操作端末から受け取った操作指示を送信する（ステップＳ５４３）。
【０５０６】
機器は、サーバ装置から操作指示を受信し（ステップＳ５４３）、受信した操作指示に従って動作する（ステップＳ５４４）。
【０５０７】
（８）本発明の別の一態様は、遠隔操作システム１０ｄであるとしてもよい。遠隔操作システム１０ｄは、サーバ装置と操作端末と機器とから構成される。操作端末は、記憶されている制御プログラム内の遠隔操作命令の実行により機器を遠隔操作する。サーバ装置は、操作端末と機器との間において、遠隔操作を中継する。操作端末には、可搬媒体が装着される。可搬媒体は、当該可搬媒体に固有の識別子を保持している。図３４に示すシーケンス図を用いて、遠隔操作システム１０ｄについて説明する。
【０５０８】
操作端末の取得部は、可搬媒体から、固有の第１識別子を取得する（ステップＳ５６１）。
【０５０９】
操作端末の送信部は、第１識別子をサーバ装置に対して送信する（ステップＳ５６２）。
【０５１０】
サーバ装置の乱数生成部は、ランダムに乱数を生成する（ステップＳ５６３）。
【０５１１】
サーバ装置の変換値生成部は、生成された乱数と、受信した第１識別子とに、排他的論理和ＸＯＲを施して、変換値を生成する（ステップＳ５６４）。
【０５１２】
サーバ装置の送信部は、生成された変換値を操作端末に対して送信する（ステップＳ５６５）。
【０５１３】
操作端末の埋込部は、操作端末が記憶している制御プログラムに、受信した変換値を埋め込む（ステップＳ５６６）。
【０５１４】
端末装置の送信部は、変換値が埋め込まれた制御プログラムをサーバ装置に対して送信する（ステップＳ５６７）。
【０５１５】
サーバ装置の演算部は、受信した制御プログラムから、変換値を抽出し、前記乱数と、抽出した変換値とに、排他的論理和ＸＯＲを施して、第１識別子を復元する（ステップＳ５６８）。
【０５１６】
操作端末の取得部は、可搬媒体から、固有の第２識別子を取得する（ステップＳ５６９）。
【０５１７】
操作端末の送信部は、第２識別子をサーバ装置に対して送信する（ステップＳ５７０）。
【０５１８】
サーバ装置の判断部は、復元された第１識別子と、送信された第２識別子とを比較する（ステップＳ５７１）。第１識別子と第２識別子とが一致しない場合（ステップＳ５７１で「不一致」）、サーバ装置の制御部は、機器に対する遠隔操作を禁止する（ステップＳ５７２）。
【０５１９】
第１識別子と第２識別子とが一致する場合（ステップＳ５７１で「一致」）、サーバ装置の制御部は、機器に対して、操作端末から受け取った操作指示を送信する（ステップＳ５７３）。
【０５２０】
機器は、サーバ装置から操作指示を受信し（ステップＳ５７３）、受信した操作指示に従って動作する（ステップＳ５７４）。
【０５２１】
（９）上記の各実施の形態、各変形例、各態様において、メモリカード及び可搬媒体は、一例として、ＳＤカードである。しかし、ＳＤカードには、限定されない。固有識別子を記憶することができれば、ハードディスクデバイス、内蔵メモリデバイスなどあるとしてもよい。
【０５２２】
また、メモリカード及び可搬媒体は、端末装置との間で、短距離無線通信などの非接触型の通信を行うとしてもよい。
【０５２３】
また、メモリカード及び可搬媒体に代えて、固有識別子を記憶している携帯端末装置であるとしてもよい。
【０５２４】
（１０）上記の実施の形態２において、次のようにしてもよい。
【０５２５】
信頼性評価部２１０は、固有識別子取得部２１６により受信した固有識別子と、アカウント確認部２１５により取得した利用者識別子及びパスワードを用いて、端末装置３００にインストールされた制御プログラムの信頼性を評価してもよい。具体的には、以下の確認及びこれらの組合せにより評価を行う。
【０５２６】
（ａ）取得した固有識別子とアカウント管理テーブル２６１に記録されている固有識別子の一致を確認する。
【０５２７】
（ｂ）取得した利用者識別子及びパスワードと、アカウント管理テーブル２６１に記載されている利用者識別子及びパスワードの一致を確認する。
【０５２８】
（ｃ）確認サーバ装置２００において生成された生成された付随データと、端末装置３００において、制御プログラムに埋め込まれた付随データとが一致するか否か確認する。
【０５２９】
機器制御部２１３は、これらの確認による確認結果の組合せに応じて、機器５００に対する遠隔操作を許可し又は禁止する。例えば、（ａ）〜（ｃ）のうち、いずれか一つでも確認できない場合、機器制御部２１３は、機器５００に対する遠隔操作を禁止する。（ａ）〜（ｃ）のうち、全てにおいて確認できる場合、機器制御部２１３は、機器５００に対する遠隔操作を許可する。
【０５３０】
（１１）上記の実施の形態２において、次のようにしてもよい。
【０５３１】
信頼性評価部２１０は、次の評価を行う。
【０５３２】
（ａ）取得した固有識別子とアカウント管理テーブル２６１に記録されている固有識別子の一致を確認する。
【０５３３】
（ｂ）生成された付随データと、制御プログラムに埋め込まれた付随データとが一致するか否か確認する。
【０５３４】
（ａ）において固有識別子の一致が確認できない場合、又は（ｂ）において付随データの一致が確認できない場合、信頼性評価部２１０は、端末装置３００に対して、利用者による利用者識別子とパスワードの入力を要求する。
【０５３５】
端末装置３００のアカウント取得部９０８は、利用者に対して、利用者識別子とパスワードの入力を求め、利用者から利用者識別子とパスワードの入力を受け付ける。次に、アカウント取得部９０８は、利用者識別子とパスワードを確認サーバ装置２００に対して送信する。
【０５３６】
確認サーバ装置２００のアカウント確認部２１５は、利用者識別子とパスワードを受信し、受信した利用者識別子及びパスワードが、アカウント管理テーブル２６１に記憶されているか否かを確認する。
【０５３７】
利用者識別子及びパスワードがアカウント管理テーブル２６１に記憶されている場合、機器制御部２１３は、機器５００に対する遠隔操作を許可する。利用者識別子及びパスワードがアカウント管理テーブル２６１に記憶されていない場合、機器制御部２１３は、機器５００に対する遠隔操作を禁止する。
【０５３８】
（１２）上記の実施の形態２では、制御プログラムの起動を受け付ける時点を第１時点と呼び、第１時点において、固有識別子Ｙを取得している。また、操作指示を受け付ける時点を第２時点と呼び、第２時点において、固有識別子Ｙ’を取得している。
【０５３９】
しかし、これには限定されない。第１時点は、制御プログラムを最初に起動する時であるとしてもよいし、制御プログラムを起動する時であるとしてもよい。
【０５４０】
また、図１７のステップＳ１２５において、制御プログラムがインストールされた時点を第１時点としてもよい。また、この第１時点において、固有識別子Ｙを取得してもよい。
【０５４１】
また、図２０のステップＳ１８１において、操作指示を受け付ける時点を第１時点としてもよい。この第１時点において、固有識別子Ｙを取得するとしてもよい。利用者から、再度、操作指示を受け付け、この時点を第２時点としてもよい。この第２時点において、固有識別子Ｙ’を取得してもよい。
【０５４２】
（１３）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクデバイスなどから構成されるコンピュータシステムであるとしてもよい。前記ＲＡＭ又はハードディスクデバイスには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０５４３】
（１４）上記の各装置を構成する構成要素の一部又は全部は、１個のシステムＬＳＩ（Large Scale Integration：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩである。システムＬＳＩは、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。
【０５４４】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていてもよいし、一部又は全てを含むように１チップ化されてもよい。
【０５４５】
また、上記の各装置を構成する構成要素の一部又は全部は、システムＬＳＩであるとしているが、システムＬＳＩとは集積度の異なるＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩ等により実現されるとしてもよい。
【０５４６】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサにより実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０５４７】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。
【０５４８】
（１５）上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なＩＣカード又は単体のモジュールから構成されているとしてもよい。前記ＩＣカード又は前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカード又は前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ＩＣカード又は前記モジュールは、その機能を達成する。前記ＩＣカード又は前記モジュールは、耐タンパ性を有するとしてもよい。
【０５４９】
（１６）また、前記コンピュータプログラムは、コンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ(登録商標)）、半導体メモリなどに記録されているとしてもよい。
【０５５０】
また、前記コンピュータプログラムは、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送されるとしてもよい。
【０５５１】
また、前記コンピュータプログラムを前記記録媒体に記録して移送することにより、又は、前記コンピュータプログラムを前記ネットワーク等を経由して移送することにより、前記コンピュータプログラムを独立した他のコンピュータシステムにより実行するとしてもよい。
【０５５２】
（１７）以下に示すようにしてもよい。
【０５５３】
本発明の一態様は、ユーザ所有機器の情報提供、もしくは、ユーザ所有機器の遠隔操作を実現するための、信頼性確認サーバ、プログラムを実行するモバイル機器から構成される信頼性確認システムであって、前記プログラムは、前記信頼性確認サーバから前記プログラムの一部を受け取り、前記プログラムの一部を実行し、実行結果を前記信頼性確認サーバに通知し、前記信頼性確認サーバは、前記プログラムから受け取る前記実行結果から前記プログラムの信頼性を確認し、信頼性が低い場合、前記プログラムからの情報提示要求、ないし、機器操作要求の実行を制限することを特徴とする。
【０５５４】
ここで、前記信頼性確認サーバは、前記プログラムが起動されると、新たな前記プログラムの一部を前記プログラムに送信し、前記プログラムの一部は、前記信頼性確認サーバが管理する秘密番号に紐づいていて、前記プログラムの一部を実行した結果を確認することで、前記プログラムの信頼性を評価してもよい。
【０５５５】
ここで、前記信頼性確認システムは、さらに、固有ＩＤを格納する固有ＩＤ格納機器から構成され、前記固有ＩＤ格納機器は、前記モバイル機器に接続され、前記固有ＩＤ格納機器は、格納している前記固有ＩＤを、前記プログラム経由で、前記信頼性確認サーバに通知し、前記信頼性確認サーバは、受け取った前記固有ＩＤを確認することで、前記固有ＩＤの受取り時に経由した前記プログラムの信頼性を評価してもよい。
【０５５６】
ここで、本発明の別の一態様は、ユーザ所有機器の情報提供、もしくは、ユーザ所有機器の遠隔操作を実現するための、信頼性確認サーバ、プログラムを実行するモバイル機器から構成される信頼性確認システムの前記信頼性確認サーバであって、前記プログラムは、前記信頼性確認サーバから前記プログラムの一部を受け取り、前記プログラムの一部を実行し、実行結果を前記信頼性確認サーバに通知し、前記信頼性確認サーバは、前記プログラムから受け取る前記実行結果から前記プログラムの信頼性を評価し、信頼性が低い場合、前記プログラムからの情報提示要求、ないし、機器操作要求の実行を制限することを特徴とする。
【０５５７】
ここで、前記信頼性確認サーバは、前記プログラムが起動されると、新たな前記プログラムの一部を送信し、前記プログラムの一部は、前記信頼性確認サーバが管理する秘密番号に紐づいていて、前記プログラムの一部を実行した結果を確認することで、前記プログラムの信頼性を評価してもよい。
【０５５８】
ここで、前記信頼性確認システムは、さらに、固有ＩＤを格納する固有ＩＤ格納機器から構成され、前記固有ＩＤ格納機器は、前記モバイル機器に接続され、前記固有ＩＤ格納機器は、格納している前記固有ＩＤを、前記プログラム経由で、前記信頼性確認サーバに通知し、前記信頼性確認サーバは、受け取った前記固有ＩＤを確認することで、前記固有ＩＤの受取り時に経由した前記プログラムの信頼性を評価してもよい。
【０５５９】
本発明の別の一態様は、ユーザ所有機器の遠隔操作を実現するための、信頼性確認サーバ、プログラムを実行するモバイル機器、固有ＩＤを格納する固有ＩＤ格納装置から構成される信頼性確認システムの前記プログラムであって、前記プログラムは、前記信頼性確認サーバから前記プログラムの一部を受け取り、前記プログラムの一部を実行し、実行結果を前記信頼性確認サーバに通知し、前記固有ＩＤ格納機器は、前記モバイル機器に接続され、前記固有ＩＤ格納機器は、格納している前記固有ＩＤを、前記プログラム経由で、前記信頼性確認サーバに通知し、前記信頼性確認サーバは、前記プログラムから受け取る前記実行結果、ないし、受け取った前記固有ＩＤ、ないし、その両方を確認することで、前記固有ＩＤの受取り時に経由した前記プログラムの信頼性を評価し、前記プログラムの信頼性が低い場合、前記信頼性確認サーバは、前記プログラムからの情報提示要求、ないし、機器操作要求の実行を制限し、前記プログラムは、前記信頼性確認サーバから受け取った機器、ないし、機能、ないし、機能グループごとの操作可否情報を元に、機器の操作可否を表現するユーザ提示用画面を生成することを特徴とする。
【０５６０】
本発明の別の一態様は、ユーザ所有機器の遠隔操作を実現するための、前記信頼性確認サーバ、プログラムを実行する前記モバイル機器から構成される前記信頼性確認システムにおけるプログラムのユーザーインターフェースであって、前記プログラムは、前記信頼性確認サーバから受け取る操作可能機器情報に従って、操作可能機器を提示するＵＩを生成し、操作できない前記ユーザ所有機器の描写が、操作可能な前記ユーザ所有機器の描写に比べて、不活性化されていることを特徴とする。
【０５６１】
本発明の別の一態様は、ユーザ所有機器の遠隔操作を実現する前記信頼性確認サーバ、前記プログラムを実行する前記モバイル機器から構成される前記信頼性確認システムにおけるプログラムのユーザーインターフェースであって、前記プログラムは、前記信頼性確認サーバから受け取る操作可能機能情報に従って、操作可能機能を提示するＵＩを生成し、操作できない前記機能の描写が、操作可能な前記機能の描写に比べて、不活性化されていることを特徴とする。
【０５６２】
ここで、前記信頼性確認システムは、さらに前記固有ＩＤ格納装置を備え、前記プログラムは、前記固有ＩＤ格納装置の固有ＩＤを通知するメッセージを受け取り、前記信頼性確認サーバに通知してもよい。
【０５６３】
（１８）本発明の一態様によると、モバイル機器におけるアプリケーションプログラムやＯＳ（オペレーティングシステム）の不正な改ざんの有無を確認し、モバイル機器において不正な実行環境となっているか否かを確認する。これにより、成りすましのリスクが高い場合、個人情報の出力を止めたり、宅内機器の操作を抑制したりする。こうして、成りすましによるリスクを低減し、安全性を高める。
【０５６４】
プログラム実行環境と独立して、グローバルユニークに定義された固有識別子を安全に管理する仕組みがある。信頼性を確認するサーバが、評価対象のプログラムを経由して、固有識別子を取得できれば、固有識別子を持つ装置とプログラムを実行しているモバイル機器が、高い確率で物理的に近傍にいて、その結果、ユーザ本人がプログラムを実行し操作している可能性が高いと言える。固有識別子を持つ装置は、一例として、ＳＤカード、内蔵ＨＤＤや内蔵フラッシュメモリを有するデバイス、ＵＳＢメモリなどである。
【０５６５】
さらに、信頼性を確認するサーバがプログラムの一部を作り直して、モバイル機器に格納されているプログラムの一部を更新させ、次回起動時に新たなプログラムの一部を用いて初期化、及び、プログラムの改ざん検出を行う。つまり、時変要素を織り交ぜたデータを、起動の都度チェックすることで、プログラム改ざんを高い確率で検出し、不正を防止することができる。
【０５６６】
（１９）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０５６７】
本発明の機器を遠隔操作するシステムにおいて用いられる方法は、不正な第三者により利用者の機器が遠隔操作されることを防ぐことができ、機器を遠隔操作する技術として有用である。
【符号の説明】
【０５６８】
１０、１０ａ、１０ｂ、１０ｃ、１０ｄ、１０ｅ    遠隔操作システム
２０    ネットワーク
１００    配信サーバ装置
１０１    制御部
１０２    通信部
１０３    相互認証部
１０４    鍵格納部
１０５    記憶部
１０６    アカウント格納部
１０７    アカウント確認部
２００    確認サーバ装置
２０１    制御部
２０２    通信部
２０３    相互認証部
２０４    鍵格納部
２０６    プログラム制作部
２０７    プログラム格納部
２０８    付随データ生成部
２０９    アカウント格納部
２１０    信頼性評価部
２１２    機器情報格納部
２１３    機器制御部
２１４    署名生成部
２１５    アカウント確認部
２１６    固有識別子取得部
２１７    機器情報管理部
３００    端末装置
３０１    制御部
３０２    通信部
３０３    相互認証部
３０４    鍵格納部
３０５    プログラム格納部
３０６    プログラム実行部
３０７    付随データ格納部
３０８    入出力部
３０９    表示部
３１０    入力部
３１１    検証部
４００    メモリカード
４０１    制御部
４０３    相互認証部
４０４    鍵格納部
４０７    固有識別子格納部
４０８    入出力部
５００    機器
５０１    機構制御部
５０２    通信部
５０６    命令受信部
５０７    情報通知部
５０８    機構
５１０    通信部
【図１】
2014076927.tif 000003
【図２】
2014076927.tif 000004
【図３】
2014076927.tif 000005
【図４】
2014076927.tif 000006
【図５】
2014076927.tif 000007
【図６】
2014076927.tif 000008
【図７】
2014076927.tif 000009
【図８】
2014076927.tif 000010
【図９】
2014076927.tif 000011
【図１０】
2014076927.tif 000012
【図１１】
2014076927.tif 000013
【図１２】
2014076927.tif 000014
【図１３】
2014076927.tif 000015
【図１４】
2014076927.tif 000016
【図１５】
2014076927.tif 000017
【図１６】
2014076927.tif 000018
【図１７】
2014076927.tif 000019
【図１８】
2014076927.tif 000020
【図１９】
2014076927.tif 000021
【図２０】
2014076927.tif 000022
【図２１】
2014076927.tif 000023
【図２２】
2014076927.tif 000024
【図２３】
2014076927.tif 000025
【図２４】
2014076927.tif 000026
【図２５】
2014076927.tif 000027
【図２６】
2014076927.tif 000028
【図２７】
2014076927.tif 000029
【図２８】
2014076927.tif 000030
【図２９】
2014076927.tif 000031
【図３０】
2014076927.tif 000032
【図３１】
2014076927.tif 000033
【図３２】
2014076927.tif 000034
【図３３】
2014076927.tif 000035
【図３４】
2014076927.tif 000036
【図３５】
2014076927.tif 000037
【国際調査報告】
2014076927.tif 000038
2014076927.tif 000039