(57)【要約】      （修正有）【課題】グループ内に複数のコントローラが存在する場合にグループ内の各機器が同一のグループ鍵を共有して暗号通信を行う。【解決手段】制御コマンドの送信処理シーケンスにおいて、グループ内の少なくとも１つのコントローラが、グループ内で共通で利用するグループ鍵を管理するコーディネータを、グループ内のコントローラの中から決定する。決定したコーディネータが、グループ鍵を生成し、グループ内の機器およびコントローラと相互認証を実行し、認証に成功した機器およびコントローラと生成したグループ鍵を共有する。そして、コーディネータが、グループ鍵を用いて暗号化データと認証用データを生成し、暗号化データと認証用データとを含むメッセージの一斉同報通信を行う。【選択図】図２９
2020039154.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上の１以上の機器と２以上のコントローラとが所属するグループにおける認証方法であって、
前記グループ内の少なくとも１つのコントローラが、前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中から各コントローラの状況によって決定し、
前記コーディネータが、グループ鍵を生成し、前記グループ内の機器およびコントローラと相互認証を実行し、認証に成功した機器およびコントローラと前記生成したグループ鍵を共有し、
前記コーディネータが、前記グループ鍵を用いて送信データを暗号化して暗号化データを生成し、前記グループ鍵を用いてヘッダと送信元アドレスと、送信先である前記グループ内の機器またはコントローラの送信先アドレスと、前記送信データとから認証用データを生成し、前記グループ内の機器またはコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該暗号化データと当該認証用データとを含むメッセージの通信を行うことを特徴とする認証方法。
【請求項２】
前記コーディネータの決定は、
前記グループ内の機器の各コントローラのペアリングしている機器の数が一番多いコントローラを前記コーディネータと決定する、
請求項１の認証方法。
【請求項３】
前記コーディネータの決定は、
前記グループ内の機器の各コントローラの稼働時間が一番短いコントローラを前記コーディネータと決定する、
請求項１の認証方法。
【請求項４】
前記コーディネータの決定は、
前記グループ内の機器の製造年月日が一番新しいコントローラを前記コーディネータと決定する、
請求項１の認証方法。
【請求項５】
ネットワーク上の１以上の機器と２以上のコントローラとが所属するグループにおける認証方法であって、
前記グループ内の少なくとも１つのコントローラが、前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中からユーザの入力によって決定し、
前記コーディネータが、グループ鍵を生成し、前記グループ内の機器およびコントローラと相互認証を実行し、認証に成功した機器およびコントローラと前記生成したグループ鍵を共有し、
前記コーディネータが、前記グループ鍵を用いて送信データを暗号化して暗号化データを生成し、前記グループ鍵を用いてヘッダと送信元アドレスと、送信先である前記グループ内の機器またはコントローラの送信先アドレスと、前記送信データとから認証用データを生成し、前記グループ内の機器またはコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該暗号化データと当該認証用データとを含むメッセージの通信を行うことを特徴とする認証方法。
【請求項６】
前記送信データは制御コマンドであって、
前記メッセージを受信した機器が、前記グループ鍵を用いて前記暗号化データの復号及び前記認証用データの検証を行い、検証に成功した場合、復号された制御コマンドを実行する
請求項１または５の認証方法。
【請求項７】
前記暗号化データ及び前記認証用データをＡＥＳ−ＣＣＭで生成する
請求項１または５の認証方法。
【請求項８】
ネットワーク上の１以上の機器と第１のコントローラとが所属するグループにおける認証方法であって、
前記第１のコントローラが、第１のグループ鍵を生成し、前記グループ内の機器と第１の相互認証を実行し、認証に成功した機器と前記第１のグループ鍵を共有し、
前記グループに新たに第２のコントローラが参入した場合、前記グループ内の少なくとも１つのコントローラが、前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中から各コントローラの状況によって決定し、
前記第１のコントローラが、前記コーディネータと第２の相互認証を実行し、認証に成功した場合に前記第１のグループ鍵を共有し、
前記第１のコントローラが、前記第１のグループ鍵を用いてヘッダと送信元アドレスと、送信先である前記グループ内の機器またはコントローラの送信先アドレスと、コーディネータの変更を通知するための通知情報とから認証用データを生成し、前記グループ内の機器またはコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該通知情報と当該認証用データとを含む変更通知の通信を行い、
前記コーディネータが、第２のグループ鍵を生成し、前記グループ内の機器およびコントローラと第３の相互認証を実行し、認証に成功した機器およびコントローラのグループ鍵を前記第２のグループ鍵に更新させる
認証方法。
【請求項９】
ネットワーク上の１以上の機器と第１のコントローラとが所属するグループにおける認証方法であって、
前記第１のコントローラが、第１のグループ鍵を生成し、前記グループ内の機器と第１の相互認証を実行し、認証に成功した機器と前記第１のグループ鍵を共有し、
前記グループに新たに第２のコントローラが参入した場合、前記グループ内の少なくとも１つのコントローラが、前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中からユーザの入力によって決定し、
前記第１のコントローラが、前記コーディネータと第２の相互認証を実行し、認証に成功した場合に前記第１のグループ鍵を共有し、
前記第１のコントローラが、前記第１のグループ鍵を用いてヘッダと送信元アドレスと、送信先である前記グループ内の機器またはコントローラの送信先アドレスと、コーディネータの変更を通知するための通知情報とから認証用データを生成し、前記グループ内の機器またはコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該通知情報と当該認証用データとを含む変更通知の通信を行い、
前記コーディネータが、第２のグループ鍵を生成し、前記グループ内の機器およびコントローラと第３の相互認証を実行し、認証に成功した機器およびコントローラのグループ鍵を前記第２のグループ鍵に更新させる
認証方法。
【請求項１０】
前記コーディネータが、前記第１のグループ鍵を用いて送信データを暗号化して当該暗号化データを生成し、前記第１のグループ鍵を用いてヘッダと送信元アドレスと、送信先である前記グループ内の機器またはコントローラの送信先アドレスと、前記送信データとから認証用データを生成し、前記グループ内の機器またはコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該暗号化データと当該認証用データとを含むメッセージの通信を行う
請求項８または９の認証方法。
【請求項１１】
前記コーディネータが、前記第２のグループ鍵を用いて送信データを暗号化して当該暗号化データを生成し、前記第２のグループ鍵を用いてヘッダと送信元アドレスと、送信先である前記グループ内の機器またはコントローラの送信先アドレスと、前記送信データとから認証用データを生成し、前記グループ内の機器またはコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該暗号化データと当該認証用データとを含むメッセージの通信を行う
請求項８または９の認証方法。
【請求項１２】
ネットワーク上の１以上の機器と２以上のコントローラとが所属するグループ内のコントローラであって、
前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中から各コントローラの状況によって決定するネゴシエータと、
自機器が前記コーディネータと決定された場合に、グループ鍵を生成し、前記グループ内の機器およびコントローラと相互認証を実行し、認証に成功した機器およびコントローラと前記生成したグループ鍵を共有する認証処理部と
を備え、
自機器が前記コーディネータと決定された場合、前記グループ鍵を用いて送信データを暗号化して暗号化データを生成し、前記グループ鍵を用いてヘッダと送信元アドレスと、送信先である前記グループ内の機器またはコントローラの送信先アドレスと、前記送信データとから認証用データを生成し、前記グループ内の機器またはコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該暗号化データと当該認証用データとを含むメッセージの通信を行う
コントローラ。
【請求項１３】
前記コーディネータの決定は、
前記グループ内の機器の各コントローラのペアリングしている機器の数が一番多いコントローラを前記コーディネータと決定する、
請求項１２のコントローラ。
【請求項１４】
前記コーディネータの決定は、
前記グループ内の機器の各コントローラの稼働時間が一番短いコントローラを前記コーディネータと決定する、
請求項１２のコントローラ。
【請求項１５】
前記コーディネータの決定は、
前記グループ内の機器の製造年月日が一番新しいコントローラを前記コーディネータと決定する、
請求項１２のコントローラ。
【請求項１６】
ネットワーク上の１以上の機器と２以上のコントローラとが所属するグループ内のコントローラであって、
前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中からユーザの入力によって決定するネゴシエータと、
自機器が前記コーディネータと決定された場合に、グループ鍵を生成し、前記グループ内の機器およびコントローラと相互認証を実行し、認証に成功した機器およびコントローラと前記生成したグループ鍵を共有する認証処理部と
を備え、
自機器が前記コーディネータと決定された場合、前記グループ鍵を用いて送信データを暗号化して暗号化データを生成し、前記グループ鍵を用いてヘッダと送信元アドレスと、送信先である前記グループ内の機器またはコントローラの送信先アドレスと、前記送信データとから認証用データを生成し、前記グループ内の機器またはコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該暗号化データと当該認証用データとを含むメッセージの通信を行う
コントローラ。
【請求項１７】
接続部とネゴシエータと認証処理部を備えるコントローラであって、
前記接続部は、ネットワーク上の１以上の機器と１以上の他コントローラとが所属するグループであって、前記他コントローラの中の一コントローラが、第１のグループ鍵を生成し、前記グループ内の機器と第１の相互認証を実行し、認証に成功した機器と前記第１のグループ鍵を共有しているグループに接続し、
前記ネゴシエータは、前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中から各コントローラの状況によって決定し、
前記認証処理部は、
前記一コントローラと第２の相互認証を実行し、認証に成功した場合に前記第１のグループ鍵を受信し、前記第１のグループ鍵を用いて第１の送信データを暗号化して第１の暗号化データを生成し、前記第１のグループ鍵を用いてヘッダと送信元アドレスと、送信先である前記グループ内の機器またはコントローラの送信先アドレスと、前記第１の送信データとから第１の認証用データを生成し、前記グループ内の機器またはコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該第１の暗号化データと当該第１の認証用データとを含むメッセージの通信を行い、
自機器がコーディネータと決定された場合、第２のグループ鍵を生成し、前記一コントローラから前記グループ内の機器の認証情報を受信し、受信した認証情報を用いて前記グループ内の機器およびコントローラと第３の相互認証を実行し、認証に成功した機器およびコントローラのグループ鍵を前記第２のグループ鍵に更新させ、前記第２のグループ鍵を用いて第２の送信データを暗号化して第２の暗号化データを生成し、前記第２のグループ鍵を用いてヘッダと送信元アドレスと、送信先である前記グループ内の機器またはコントローラの送信先アドレスと、前記第２の送信データとから第２の認証用データを生成し、前記グループ内の機器またはコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該第２の暗号化データと当該第２の認証用データとを含むメッセージの通信を行う
コントローラ。
【請求項１８】
接続部とネゴシエータと認証処理部を備えるコントローラであって、
前記接続部は、ネットワーク上の１以上の機器と１以上の他コントローラとが所属するグループであって、前記他コントローラの中の一コントローラが、第１のグループ鍵を生成し、前記グループ内の機器と第１の相互認証を実行し、認証に成功した機器と前記第１のグループ鍵を共有しているグループに接続し、
前記ネゴシエータは、前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中からユーザの入力によって決定し、
前記認証処理部は、
前記一コントローラと第２の相互認証を実行し、認証に成功した場合に前記第１のグループ鍵を受信し、前記第１のグループ鍵を用いて第１の送信データを暗号化して第１の暗号化データを生成し、前記第１のグループ鍵を用いてヘッダと送信元アドレスと、送信先である前記グループ内の機器またはコントローラの送信先アドレスと、前記第１の送信データとから第１の認証用データを生成し、前記グループ内の機器またはコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該第１の暗号化データと当該第１の認証用データとを含むメッセージの通信を行い、
自機器がコーディネータと決定された場合、第２のグループ鍵を生成し、前記一コントローラから前記グループ内の機器の認証情報を受信し、受信した認証情報を用いて前記グループ内の機器およびコントローラと第３の相互認証を実行し、認証に成功した機器およびコントローラのグループ鍵を前記第２のグループ鍵に更新させ、前記第２のグループ鍵を用いて第２の送信データを暗号化して第２の暗号化データを生成し、前記第２のグループ鍵を用いてヘッダと送信元アドレスと、送信先である前記グループ内の機器またはコントローラの送信先アドレスと、前記第２の送信データとから第２の認証用データを生成し、前記グループ内の機器またはコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該第２の暗号化データと当該第２の認証用データとを含むメッセージの通信を行う
コントローラ。
【請求項１９】
認証処理部とネゴシエータとを備え、ネットワーク上の１以上の機器と１以上のコントローラとが所属するグループ内のコントローラであって、
前記認証処理部は、第１のグループ鍵を生成し、前記グループ内の機器と第１の相互認証を実行し、認証に成功した機器と前記第１のグループ鍵を共有し、
他コントローラが前記グループに新たに参入した場合において、前記ネゴシエータは、前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中から各コントローラの状況によって決定し、
前記認証処理部は、
前記コーディネータと第２の相互認証を実行し、認証に成功した場合に前記第１のグループ鍵を共有し、
前記第１のグループ鍵を用いてヘッダと送信元アドレスと、送信先である前記グループ内の機器またはコントローラの送信先アドレスと、コーディネータの変更を通知するための通知情報とから当該認証用データを生成し、前記グループ内の機器またはコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該通知情報と当該認証用データとを含む変更通知の通信を行い、
前記コーディネータに、前記グループ内の機器の認証情報を送信し、
前記コーディネータと第３の相互認証を行い、認証に成功した場合に第２のグループ鍵を受信し、保持するグループ鍵を受信した第２のグループ鍵に更新する
コントローラ。
【請求項２０】
認証処理部とネゴシエータとを備え、ネットワーク上の１以上の機器と１以上のコントローラとが所属するグループ内のコントローラであって、
前記認証処理部は、第１のグループ鍵を生成し、前記グループ内の機器と第１の相互認証を実行し、認証に成功した機器と前記第１のグループ鍵を共有し、
他コントローラが前記グループに新たに参入した場合において、前記ネゴシエータは、前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中からユーザの入力によって決定し、
前記認証処理部は、
前記コーディネータと第２の相互認証を実行し、認証に成功した場合に前記第１のグループ鍵を共有し、
前記第１のグループ鍵を用いてヘッダと送信元アドレスと、送信先である前記グループ内の機器またはコントローラの送信先アドレスと、コーディネータの変更を通知するための通知情報とから当該認証用データを生成し、前記グループ内の機器またはコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該通知情報と当該認証用データとを含む変更通知の通信を行い、
前記コーディネータに、前記グループ内の機器の認証情報を送信し、
前記コーディネータと第３の相互認証を行い、認証に成功した場合に第２のグループ鍵を受信し、保持するグループ鍵を受信した第２のグループ鍵に更新する
コントローラ。
【請求項２１】
ネットワーク上のグループに所属する１以上の機器と２以上のコントローラとからなる認証システムであって、
前記グループ内のコントローラが、前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中から各コントローラの状況によって決定し、
前記コーディネータが、グループ鍵を生成し、
前記コーディネータが、各前記機器および各前記コントローラと相互認証を実行し、
前記コーディネータが、相互認証に成功した機器およびコントローラと生成したグループ鍵を共有し、
前記コーディネータが、前記グループ鍵を用いて送信データを暗号化して暗号化データを生成し、前記グループ鍵を用いてヘッダと送信元アドレスと、送信先である前記グループ内の機器またはコントローラの送信先アドレスと、前記送信データとから認証用データを生成し、前記グループ内の機器またはコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該暗号化データと当該認証用データとを含むメッセージの通信を行う
認証システム。
【請求項２２】
ネットワーク上のグループに所属する１以上の機器と２以上のコントローラとからなる認証システムであって、
前記グループ内のコントローラが、前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中からユーザの入力によって決定し、
前記コーディネータが、グループ鍵を生成し、
前記コーディネータが、各前記機器および各前記コントローラと相互認証を実行し、
前記コーディネータが、相互認証に成功した機器およびコントローラと生成したグループ鍵を共有し、
前記コーディネータが、前記グループ鍵を用いて送信データを暗号化して暗号化データを生成し、前記グループ鍵を用いてヘッダと送信元アドレスと、送信先である前記グループ内の機器またはコントローラの送信先アドレスと、前記送信データとから認証用データを生成し、前記グループ内の機器またはコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該暗号化データと当該認証用データとを含むメッセージの通信を行う
認証システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ネットワークに接続されたコントローラと機器との間で相互認証を行い、グループ鍵を共有する技術に関する。
【背景技術】
【０００２】
近年、ネットワーク接続機能を有する家電機器やＡＶ（Audio/Visual）機器、住宅設備機器などの機器類（以下、単に「機器」と呼ぶ。）からクラウド上のサーバに収集される各種履歴情報を用いたサービスが期待されている。
【０００３】
このようなサービスにおいて、家庭内に機器を制御するための機器（以下、「コントローラ」と呼ぶ。）を設置し、コントローラが、機器とクラウド上のサーバとの間の通信を中継することが考えられる。このとき、コントローラと機器との接続に関して、不正機器のなりすましや通信内容の傍受による情報漏えいなどを防止することが求められる。
【０００４】
不正機器のなりすましの対策として、例えば、公開鍵認証基盤（ＰＫＩ：Public Key Infrastructure）を用いたコントローラや機器の正当性の認証が行われる。また、情報漏えいの対策として、例えば、正当性が認証されたコントローラと機器とで暗号通信用の鍵を共有して暗号通信が行われる。
【０００５】
ここで、コントローラと接続する機器が複数存在する場合、コントローラと各機器とが同一の暗号通信用の鍵（以下、「グループ鍵」と呼ぶ。）を共有することで、コントローラが各機器に対して同一情報を一斉送信する一斉同報送信（マルチキャスト通信）の暗号化が可能になる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４５７６９９７号公報
【非特許文献】
【０００７】
【非特許文献１】Federal Information Processing Standards Publication (FIPS PUB) 186-4: Digital Signature Standard (DSS), National Institute of Standards and Technology (NIST), July 2013
【非特許文献２】NIST Special Publication 800-56A Revision 2: Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography, National Institute of Standards and Technology (NIST), May 2013
【非特許文献３】IETF: RFC5191: Protocol for Carrying Authentication for Network Access (PANA), Internet Engineering Task Force (IETF), May 2008
【非特許文献４】IETF: RFC6347: Datagram Transport Layer Security Version 1.2, Internet Engineering Task Force (IETF), January 2008
【発明の概要】
【発明が解決しようとする課題】
【０００８】
認証システムでは、グループ鍵に関して更なる改善が必要とされている。
【課題を解決するための手段】
【０００９】
ネットワーク上の１以上の機器と２以上のコントローラとが所属するグループにおける認証方法であって、まず、グループ内の少なくとも１つのコントローラが、グループ内で共通で利用するグループ鍵を管理するコーディネータを、グループ内のコントローラの中から各コントローラの属性に応じて決定する。そして、決定されたコーディネータが、グループ鍵を生成し、グループ内の機器およびコントローラと相互認証を実行し、認証に成功した機器およびコントローラとグループ鍵を共有する。その後、コーディネータが、グループ鍵を用いて送信データを暗号化して暗号化データを生成し、グループ鍵を用いてヘッダと送信元アドレスと送信先アドレスと前記送信データとから認証用データを生成し、グループ内の機器およびコントローラに対してヘッダと送信元アドレスと送信先アドレスと暗号化データと認証用データとを含むメッセージの一斉同報通信を行う。
【発明の効果】
【００１０】
本開示によれば、ネットワーク上のグループ内に複数のコントローラが存在する場合において、グループ内で共通で利用するグループ鍵を管理するコーディネータとして、適切なコントローラを選択することができる。また、グループ鍵を用いた認証用データ（ＭＡＣ）の生成に、メッセージのヘッダ、送信元アドレス、送信先アドレスを含めることでメッセージのヘッダや送信元アドレスや送信先アドレスの改ざんを防止できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、認証システムの一例を示す図である。
【図２】図２は、ＨＡＮ（Home Area Network）内のグループ構成の一例を示す図である。
【図３】図３は、統合後のグループ構成の一例を示す図である。
【図４】図４は、コントローラの機能構成の一例を示す図である。
【図５】図５は、コントローラの保持する接続機器管理テーブルとグループに関する情報の一例を示す図である。
【図６】図６は、公開鍵証明書の一例を示す図である。
【図７】図７は、ＣＲＬ（Certificate Revocation List）の一例を示す図である。
【図８】図８は、機器の機能構成の一例を示す図である。
【図９】図９は、機器の保持する接続コントローラ管理テーブルとグループに関する情報の一例を示す図である。
【図１０】図１０は、機器登録時の認証システムの動作の一例を示すシーケンス図である。
【図１１】図１１は、コントローラ参入時の認証システムの動作の一例を示すシーケンス図である。
【図１２】図１２は、ネゴシエート処理の一例を示すシーケンス図である。
【図１３】図１３は、ＳＣ（Security Coordinator）引継処理の一例を示すシーケンス図である。
【図１４】図１４は、相互認証処理の一例を示すシーケンス図である。
【図１５】図１５は、共通鍵を計算する処理の一例を示すシーケンス図である。
【図１６】図１６は、グループ鍵配信・受信処理の一例を示すシーケンス図である。
【図１７】図１７は、グループ鍵更新処理の一例を示すシーケンス図である。
【図１８】図１８は、グループ鍵更新処理の一例を示すシーケンス図である。
【図１９】図１９は、グループ統合前のコントローラＡの保持する接続機器管理テーブルとグループに関する情報と、グループ統合前のコントローラＢの保持する接続機器管理テーブルと情報を示す図である。
【図２０】図２０は、グループ統合前の機器Ａの保持する接続コントローラ管理テーブルとグループに関する情報と、グループ統合前の機器Ｂの保持する接続コントローラ管理テーブルとグループに関する情報を示す図である。
【図２１】図２１は、グループ統合後のコントローラＡの保持する接続機器管理テーブルと情報と、グループ統合後のコントローラＢの保持する接続機器管理テーブルとグループに関する情報を示す図である。
【図２２】図２２は、グループ統合後の機器Ａの保持する接続コントローラ管理テーブルとグループに関する情報と、グループ統合後の機器Ｂの保持する接続コントローラ管理テーブルとグループに関する情報を示す図である。
【図２３】図２３は、機器履歴情報の送信処理の一例を示すシーケンス図である。
【図２４】図２４は、制御コマンドの送信処理の一例を示すシーケンス図である。
【図２５】図２５は、ＳＣ引継処理の一例を示すシーケンス図である。
【図２６】図２６は、ＳＣ選択画面の一例を示す図である。
【図２７】図２７は、暗号化前と暗号化後のメッセージフォーマットを示す図である。
【図２８】図２８は、機器履歴情報の送信処理の一例を示すシーケンス図である。
【図２９】図２９は、制御コマンドの送信処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１２】
（本開示に至る経緯）
ＨＡＮ（Home Area Network）などのネットワークにおいて、同一の機器を複数のコントローラが制御する状況が想定される。
【００１３】
このような状況では、各コントローラが個別にグループ鍵を生成して機器に配信し、機器はコントローラ毎に異なるグループ鍵を用いた暗号通信を行うことが想定される。しかしながら、機器によっては、複数のグループ鍵を用いた暗号通信のために必要なリソースを割り当てることができない可能性がある。例えば、機器の演算性能が低く、複数のグループ鍵を用いた暗号通信ができない可能性がある。また、機器の記憶容量が少ない場合には、すべてのコントローラとの暗号通信に必要な数のグループ鍵を記憶できない可能性がある。
【００１４】
そこで、ネットワーク上の一部または全部の機器及びコントローラがグループを構成し、グループ内のコントローラの中からグループ鍵を管理するコントローラを決めて、決定されたコントローラがグループ鍵を生成してグループ内の機器及び他のコントローラに配信する構成が考えられる。しかしながら、この構成では、どのコントローラがグループ鍵を管理するかが問題となる。例えば、コントローラによっては、電源断やネットワーク未接続状態が頻繁に起こり、機器や他のコントローラと常時通信できないものが存在する。グループ鍵を管理するコントローラをランダムに決めてしまうと、このようなコントローラが選ばれてしまう可能性がある。グループ鍵を管理するコントローラと通信できない状態では、新たな機器やコントローラがグループに参入しグループ鍵を共有することができない。また、セキュリティ上の観点からグループ鍵を定期的に更新することが望まれるが、グループ鍵を管理するコントローラと通信できない状態では、グループ鍵の更新ができない。
【００１５】
本開示は、係る問題を鑑みてなされたものであり、ネットワーク上のグループ内に複数のコントローラが存在する場合において、グループ内で共通で利用するグループ鍵を管理するコントローラとして、適切なコントローラを決定する認証方法を提供するものである。
【００１６】
（実施の形態１）
以下、図面を参照しながら、本開示の実施の形態に係る認証システムについて説明する。なお、本実施の形態で示される数値、形状、材料、構成要素、構成要素の配置および接続形態、ステップ、ステップの順序などは一例であり、本開示を限定する主旨ではない。
【００１７】
＜概要＞
ここでは、本開示の一実施形態としての認証システム１００の概要について説明する。
【００１８】
図１は、認証システム１００の構成を示す図である。認証システム１００は、ＨＡＮ１３０上のコントローラ１１０（コントローラ１１０ａ及びコントローラ１１０ｂ）及び機器１２０（機器１２０ａ、１２０ｂ及び１２０ｃ）から構成される。また、コントローラ１１０は、ネットワーク１５０を介してサーバ１４０（サーバ１４０ａ及びサーバ１４０ｂ）と接続される。
【００１９】
機器１２０は、ネットワークに接続する機能を有する家電機器やＡＶ機器及び住宅設備機器であり、例えば、テレビ、レコーダ、エアコン、冷蔵庫、蓄電池などである。コントローラ１１０は、機器１２０を制御する機能を有する機器であり、例えばサーバ１４０からの依頼等に応じて制御コマンドを生成し、生成した制御コマンドを機器１２０に送信して実行させる。また、コントローラ１１０は、機器１２０に蓄積された情報をサーバ１４０に送信する機能も有する。なお、コントローラ１１０は、ペアリングを行って登録された機器１２０の制御を行い、機器１２０は、ペアリングを行って登録されたコントローラ１１０から送信された制御コマンドを実行する。
【００２０】
ＨＡＮ１３０は、家庭内に構築された有線又は無線のネットワークである。ＨＡＮ１３０は、具体的には、Ｅｔｈｅｒｎｅｔ（登録商標）、特定小電力無線、Ｗｉ−Ｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、電力線通信などで実現される。また、ネットワーク１５０は、家庭と企業との間等に構築された、所謂インターネット等のネットワークである。
【００２１】
認証システム１００では、ＨＡＮ１３０上の１以上のコントローラ１１０と、該１以上のコントローラ１１０とペアリングを行った１以上の機器１２０とで一つのグループ鍵を共有する１つのグループが形成される。グループ鍵は、コントローラ１１０が生成し、コントローラ１１０と機器１２０とが認証処理を行ったとき等に、コントローラ１１０から機器１２０へ配信される。
【００２２】
図２は、ＨＡＮ１３０上のコントローラ１１０及び機器１２０のグループ構成の一例を示す図である。図２は、コントローラＡと機器Ａとが所属するグループ２００及びコントローラＢと機器Ｂとが所属するグループ２１０を示している。グループ２００とグループ２１０とでは、異なるグループ鍵が共有される。これにより、グループ２００とグループ２１０が同じ通信方式を利用していたとしても、互いのグループ内で通信している内容がグループ外に漏洩することがなくなる。
【００２３】
認証システム１００では、異なるグループに所属する機器やコントローラの間でペアリングが発生すると、２つのグループの統合を行う。例えば、グループ構成が図２に示す状態で、機器ＡとコントローラＢとでペアリングが行われた場合、グループ構成が図３に示すように変更される。このとき、認証システム１００では、認証処理やグループ鍵の管理処理を行うコントローラを一つ決定し、決定されたコントローラがグループ鍵の生成及び配信を担う。本開示では、認証処理やグループ鍵の管理処理を行うコントローラのことをＳＣ（Security Coordinator）と呼ぶ。なお、ＳＣ以外の機器やコントローラのことをノードと呼ぶ場合がある。図３の例では、ＳＣとして、コントローラＡが決定されている。すなわち、グループ３００では、各機器との認証処理やグループ鍵の生成や配信はＳＣであるコントローラＡのみが行い、コントローラＢは行わない。そして、コントローラＢは、ＳＣであるコントローラＡが生成し配信したグループ鍵を用いて、ペアリングを行った機器Ａ及び機器Ｂの制御を行うことになる。
【００２４】
＜構成＞
次に、認証システム１００の主要な構成要素であるコントローラ１１０及び機器１２０の構成について説明する。
【００２５】
＜コントローラの構成＞
まず、図４−７を参照して、コントローラ１１０の構成を説明する。
【００２６】
図４は、コントローラ１１０の機能構成を示す図である。コントローラ１１０は、機器管理部４１０、機器情報保持部４２０、認証処理部４３０、認証情報保持部４４０、ネゴシエート部４５０、操作部４６０、通信部４７０を含んで構成される。
【００２７】
機器管理部４１０は、自機（コントローラ１１０）に接続される機器１２０や他のコントローラ１１０を管理する。機器管理部４１０は、通信部４７０を介した機器１２０や他のコントローラ１１０からのペアリング要求や相互認証要求、機器情報保持部４２０からのグループ鍵更新要求などを受け付け、認証処理部４３０などに、要求に応じた処理を依頼し、依頼結果に応じて機器情報保持部４２０で保持する接続機器管理テーブル５００やグループに関する情報５１０を更新する機能を有する。
【００２８】
図５は、機器情報保持部４２０が保持する接続機器管理テーブル５００やグループに関する情報５１０の一例を示す図である。図５（ａ）は、コントローラの保持する接続機器管理テーブルの一例を示す図である。図５（ｂ）は、コントローラの保持するグループに関する情報の一例を示す図である。
【００２９】
接続機器管理テーブル５００には、自機（コントローラ１１０）と接続する機器１２０（又は他のコントローラ１１０）毎に、機器ＩＤ５０１、証明書ＩＤ５０２、共有鍵５０３、グループ鍵５０４、グループ鍵有効時間５０５、グループ鍵更新フラグ５０６が記録される。機器ＩＤ５０１は、機器１２０を一意に識別するための情報である。証明書ＩＤ５０２は、機器１２０が持つ公開鍵証明書の証明書ＩＤである。共有鍵５０３は、機器１２０との間で共有される共有鍵のデータである。グループ鍵５０４は、機器１２０に設定されているグループ鍵のデータである。グループ鍵有効時間５０５は、機器１２０に設定されているグループ鍵の有効期間の残余時間である。グループ鍵更新フラグ５０６は、機器１２０のグループ鍵が最新のものに更新されているか否かを示すフラグ情報である。
【００３０】
グループに関する情報５１０には、制御機器５１１、ＳＣ５１２、傘下の機器５１３が記録される。制御機器５１１は、ペアリングを行った機器１２０の機器ＩＤである。ＳＣ５１２は、所属しているグループのＳＣの機器ＩＤである。なお、コントローラ１１０のＳＣ５１２は、コントローラ１１０の出荷時には、自機の機器ＩＤを示す値が設定されているものとする。傘下の機器５１３は、自らがＳＣの場合におけるグループに所属している機器１２０及び他のコントローラ１１０の機器ＩＤである。
【００３１】
機器情報保持部４２０は、時間の経過と共にグループ鍵有効時間５０５の値をカウントダウンさせ、グループ鍵有効時間５０５の値が所定値以下となった場合に機器管理部４１０に、グループ鍵更新要求を行う機能を有する。
所定値とは、例えば、最初に設定された値の１０％の値や、グループ鍵の更新に必要な時間の２倍の値などである。
【００３２】
図４に戻り、コントローラ１１０の構成について説明を続ける。
【００３３】
認証処理部４３０は、機器管理部４１０からの依頼に応じて、機器１２０や他のコントローラ１１０との認証処理を行う機能を有する。認証処理部４３０の行う認証処理の詳細は後述する。
【００３４】
認証情報保持部４４０は、自機（コントローラ１１０）の秘密鍵と公開鍵証明書を保持している。また、認証情報保持部４４０は、相手機器の公開鍵証明書が失効していないことを確認するために使用するＣＲＬ（Certificate Revocation List）や、認証局の公開鍵が含まれるデジタル証明書を保持している。なお、秘密鍵と公開鍵証明書との鍵ペアやＣＲＬやデジタル証明書はコントローラ１１０の出荷時に埋め込まれるものとする。
【００３５】
図６は、認証情報保持部４４０の保持する公開鍵証明書６００のデータ構成の一例を示す図である。公開鍵証明書６００は、例えば、バージョン６１０、証明書ＩＤ６２０、署名６３０、発行者６４０、有効期間の開始６５０、有効期間の終了６６０、公開鍵６７０、属性６８０のデータで構成される。
【００３６】
図７は、認証情報保持部４４０の保持するＣＲＬ７００のデータ構成の一例を示している。ＣＲＬ７００は、例えば、バージョン７１０、署名７２０、発行者７３０、発行日時７４０、次回発行日７５０、失効した証明書ＩＤのデータで構成される。
【００３７】
図４に戻り、コントローラ１１０の構成について説明を続ける。
【００３８】
ネゴシエート部４５０は、１つのグループ内に複数のコントローラ１１０が存在する場合、例えば、異なるグループに属する機器間でペアリングが発生したとき等に、他のコントローラ１１０と通信をし合い、どのコントローラがＳＣになるかを決定するネゴシエート処理を行う。ネゴシエート部４５０の行うネゴシエート処理の詳細については後述する。
【００３９】
機器管理部４１０、機器情報保持部４２０、認証処理部４３０、認証情報保持部４４０ネゴシエート部４５０の各機能部は、典型的には、メモリに保持されているプログラムをプロセッサが実行することにより実現される。
【００４０】
操作部４６０は、ペアリング用のボタンと、当該ボタンの押下に応じて割り込み信号を生成してプロセッサに伝えるための制御回路とで構成される。
【００４１】
通信部４７０は、通信機能を有する通信用ＬＳＩ（Large Scale Integration）によって実現される。通信部４７０は、ＨＡＮ１３０とネットワーク１５０とに接続され、ＨＡＮ１３０を介してＨＡＮ１３０に接続される機器１２０や他のコントローラ１１０と通信する機能と、ネットワーク１５０を介してサーバ１４０と通信する機能とを有する。なお、コントローラ１１０とネットワーク１５０との接続は、図示しないゲートウェイ機器を介して行われてもよい。
【００４２】
通信部４７０は、機器１２０や他のコントローラ１１０との通信には、認証処理部４３０から受信したグループ鍵などを用いて適宜暗号化通信を行う。また、通信部４７０は、サーバ１４０との通信には、ＳＳＬ（Secure Socket Layer）通信を行う。なお、ＳＳＬ通信に必要な証明書等は、通信部４７０が記憶している。
【００４３】
＜機器の構成＞
次に、図８−９を参照して、機器１２０の構成を説明する。
【００４４】
図８は、機器１２０の機能構成を示す図である。機器１２０は、機器管理部８１０、機器情報保持部８２０、認証処理部８３０、認証情報保持部８４０、機器履歴保持部８５０、操作部８６０、通信部８７０を含んで構成される。
【００４５】
機器管理部８１０は、自ら（機器１２０）に接続されるコントローラ１１０を管理する。機器管理部８１０は、操作部８６０からの割り込み信号をトリガとして登録モードを起動してコントローラ１１０へペアリング要求を送信する機能や認証処理部８３０などの処理結果に応じて機器情報保持部８２０で保持する接続コントローラ管理テーブル９００やグループに関する情報９１０を更新する機能を有する。また、機器管理部８１０は、機器履歴保持部８５０で記録している機器履歴情報をグループ鍵で暗号化して、定期的または非定期にコントローラ１１０経由でサーバ１４０へ送信する機能を有する。
【００４６】
図９は、機器情報保持部８２０が保持する接続コントローラ管理テーブル９００やグループに関する情報９１０の一例を示す図である。図９（ａ）は、機器の保持する接続コントローラ管理テーブルの一例を示す図である。図９（ｂ）は、機器の保持するグループに関する情報の一例を示す図である。
【００４７】
接続コントローラ管理テーブル９００には、自機（機器１２０）と接続するコントローラ１１０毎に、コントローラＩＤ９０１、証明書ＩＤ９０２、共有鍵９０３、グループ鍵９０４が記録される。コントローラＩＤ９０１は、コントローラ１１０を一意に識別するための情報である。証明書ＩＤ９０２は、コントローラ１１０が持つ公開鍵証明書の証明書ＩＤである。共有鍵９０３は、コントローラ１１０との間で共有される共有鍵のデータである。
グループ鍵９０４は、コントローラ１１０から受信したグループ鍵のデータである。なお、共有鍵は、ＳＣとのみ共有を行うものであり、すべてのコントローラと共有するわけではない。
【００４８】
グループに関する情報９１０には、制御コントローラ９１１、ＳＣ９１２が記録される。制御コントローラ９１１は、ペアリングを行ったコントローラ１１０の機器ＩＤである。ＳＣ９１２は、所属しているグループのＳＣの機器ＩＤである。なお、機器１２０のＳＣ９１２は、機器１２０の出荷時には、ＳＣが登録されていないことを示す値が設定されているものとする。
【００４９】
図８に戻り、機器１２０の構成について説明を続ける。
【００５０】
認証処理部８３０は、コントローラ１１０との認証処理を行う機能を有する。認証処理部８３０の行う認証処理の詳細は後述する。
【００５１】
認証情報保持部８４０は、自機（機器１２０）の秘密鍵と公開鍵証明書を保持している。また、認証情報保持部８４０は、ＣＲＬ（Certificate Revocation List）や、認証局の公開鍵が含まれるデジタル証明書を保持している。公開鍵証明書やＣＲＬはコントローラ１１０が持つ公開鍵証明書やＣＲＬと同じ構成であるのでここでの説明は省略する。なお、秘密鍵と公開鍵証明書の鍵ペアやＣＲＬやデジタル証明書は機器１２０の出荷時に埋め込まれるものとする。
【００５２】
機器履歴保持部８５０は、自機（機器１２０）の動作履歴を示す機器履歴情報を保持している。
【００５３】
機器管理部８１０、機器情報保持部８２０、認証処理部８３０、認証情報保持部８４０、機器履歴保持部８５０の各機能部は、典型的には、メモリに保持されているプログラムをプロセッサが実行することにより実現される。
【００５４】
操作部８６０は、ペアリング用のボタンと、当該ボタンの押下に応じて割り込み信号を生成してプロセッサに伝えるための制御回路とで構成される。
【００５５】
通信部８７０は、通信機能を有する通信用ＬＳＩ（Large Scale Integration）によって実現される。通信部８７０は、ＨＡＮ１３０に接続され、ＨＡＮ１３０を介してＨＡＮ１３０に接続されるコントローラ１１０と通信する機能を有する。
【００５６】
通信部８７０は、コントローラ１１０との通信には、認証処理部８３０から受信したグループ鍵などを用いて適宜暗号化通信を行う。
【００５７】
＜動作＞
以下、認証システム１００で行う、機器登録処理、ネゴシエート処理、ＳＣ引継処理、相互認証処理、共有鍵計算処理、グループ鍵配信・受信処理、グループ鍵更新処理、機器履歴情報送信処理、制御コマンド送信処理について、順に説明する。
【００５８】
＜機器登録処理＞
機器登録処理は、コントローラと機器とがペアリングする際の処理である。以下、機器登録処理について、図１０を参照して説明する。なお、以下の説明において、機器ＡとコントローラＢが機器登録処理を行うものとする。
【００５９】
（Ｓ１０００）ユーザが、機器ＡとコントローラＢとが備えるペアリング用のボタンを押下する。これにより、機器ＡとコントローラＢとはそれぞれ登録モードを起動する。
【００６０】
（Ｓ１００５）機器ＡからコントローラＢに対し、接続要求を送信する。
この時、機器Ａは、自機に設定されているＳＣの機器ＩＤも併せて送信する。なお、機器ＡにＳＣが設定されていない場合にはその旨を示す情報が送信される。
【００６１】
（Ｓ１０１０）コントローラＢは、自機に設定されているＳＣの機器ＩＤと、機器Ａから通知されたＳＣの機器ＩＤとからネゴシエート処理が必要か否かを判断する。認証システム１００では、機器ＡとコントローラＢとで互いに異なるコントローラがＳＣとして設定されていた場合に、ネゴシエート処理が必要となる。逆に、機器ＡにＳＣが設定されていない場合や、機器ＡとコントローラＢとで共通のコントローラがＳＣとして設定されている場合には、ネゴシエート処理を行う必要はない。
【００６２】
（Ｓ１０１５）ステップＳ１０１０において、ネゴシエート処理が必要と判断された場合、機器ＡにＳＣとして設定されているコントローラとコントローラＢにＳＣとして設定されているコントローラとの間でネゴシエート処理が行われる。
【００６３】
コントローラＢは、自機がネゴシエート処理を行う場合、ネゴシエート処理を行う相手のコントローラにネゴシエート依頼を送信し、ネゴシエート処理を開始する。コントローラＢは、自機がネゴシエート処理を行わない場合、ネゴシエート処理を行う２つのコントローラにネゴシエート依頼を送信する。ネゴシエート処理の詳細は後述する。
【００６４】
（Ｓ１０２０）コントローラＢは、機器Ａに対してＳＣの機器ＩＤを送信する。ステップＳ１０１０において、ネゴシエート処理が必要ないと判断した場合、コントローラＢは、自機に設定されているＳＣの機器ＩＤを通知する。ステップＳ１０１０において、ネゴシエート処理が必要と判断した場合、コントローラＢは、ネゴシエート処理の結果新たにＳＣとして決定されたコントローラの機器ＩＤを取得し、機器Ａに送信する。
【００６５】
（Ｓ１０２５）機器ＡおよびコントローラＢは、ＳＣとの間で認証が必要であるか否かを判断する。機器Ａは、ステップＳ１０２０でコントローラＢから通知された機器ＩＤと、機器Ａに現在ＳＣとして設定されているコントローラの機器ＩＤとが異なる場合、コントローラＢから通知されたＳＣの生成したグループ鍵を共有していない場合等に、認証が必要であると判断する。コントローラＢは、ステップＳ１０２０で機器Ａに送信した機器ＩＤと、コントローラＢに現在ＳＣとして登録されているコントローラの機器ＩＤとが異なる場合、機器Ａに通知したＳＣの生成したグループ鍵を共有していない場合等に、認証が必要であると判断する。
【００６６】
（Ｓ１０３０、Ｓ１０３５）ステップＳ１０２５で認証が必要と判断された場合、機器Ａ又はコントローラＢは、新たなＳＣとの間で後述する相互認証処理及びグループ鍵配信・受信処理を行う。
【００６７】
（Ｓ１０４０）相互認証処理及びグループ鍵配信・受信処理が正常に終了した場合、機器Ａ又はコントローラＢは、新たなＳＣの傘下に参入する処理を行う。機器Ａは、新たなＳＣの機器ＩＤを、機器情報保持部８２０の保持１４するグループに関する情報９１０のＳＣ９１２に設定する。又は、コントローラＢは、新たなＳＣの機器ＩＤを、機器情報保持部４２０の保持するグループに関する情報５１０のＳＣ５１２に設定する。そして、機器Ａ又はコントローラＢは、新たなＳＣに自機の機器ＩＤを送信し、ＳＣは、受信した機器ＩＤを機器情報保持部４２０の保持するグループに関する情報５１０の傘下の機器５１３に設定する。
【００６８】
（Ｓ１０４５）機器Ａ又はコントローラＢにおける相互認証処理及びグループ鍵配信・受信処理を正常に終了した場合、機器Ａは、コントローラＢに対して、ペアリング要求を送信する。このとき、機器Ａは、自機の機器ＩＤを併せて送信する。
【００６９】
（Ｓ１０５０）コントローラＢは、機器Ａからペアリング要求を受信すると、機器Ａのペアリングを行う。すなわち、コントローラＢは、機器Ａからペアリング要求と共に受信した機器ＩＤを、機器情報保持部４２０の保持するグループに関する情報５１０の制御機器５１１に設定する。
【００７０】
（Ｓ１０５５）コントローラＢは、機器Ａのペアリングを行うと、機器Ａに対して、ペアリング要求を送信する。このとき、コントローラＢは、自機の機器ＩＤを併せて送信する。
【００７１】
（Ｓ１０６０）機器Ａは、コントローラＢからペアリング要求を受信すると、コントローラＢのペアリングを行う。すなわち、機器Ａは、コントローラＢからペアリング要求と共に受信した機器ＩＤを、機器情報保持部８２０の保持するグループに関する情報９１０の制御コントローラ９１１に設定する。
【００７２】
（Ｓ１０６５）機器Ａ及びコントローラＢは、互いのペアリングが正常に終了すると、登録モードを終了し、機器ＡとコントローラＢとでペアリングが行われたことを、同じグループに所属する他の機器やコントローラに通知する。当該通知は、ステップＳ１０３５で共有したグループ鍵を用いて暗号化して、一斉同報通信（マルチキャスト）で送信される。
【００７３】
以上が、機器ＡとコントローラＢとの間で行われる機器登録処理となる。
【００７４】
なお、コントローラＡとコントローラＢとの間で機器登録処理が行われる場合の処理を図１１に示す。コントローラＡとコントローラＢとの間で機器登録処理は、ステップＳ１０４５、Ｓ１０５０、Ｓ１０５５、Ｓ１０６０の処理を行わないことを除いて、機器ＡとコントローラＢとの機器登録処理と同じであり、説明を省略する。
【００７５】
＜ネゴシエート処理＞
ネゴシエート処理は、異なるグループに所属する機器やコントローラの間でペアリングが発生した場合に行われる、２つのグループを統合した後にいずれのコントローラがＳＣになるかを決定する処理である。以下、ネゴシエート処理について、図１２を参照して説明する。なお、以下では、コントローラＡとコントローラＢとがネゴシエート処理を行うものとする。
【００７６】
（Ｓ１２００）コントローラＡは、コントローラＢにネゴシエート要求を送信する。
【００７７】
（Ｓ１２０５）コントローラＡ及びコントローラＢは、後述する相互認証処理を行う。
【００７８】
（Ｓ１２１０）相互認証処理が正常に終了した場合、コントローラＡは、コントローラＡの公開鍵証明書と、相互認証処理で取得したコントローラＢの公開鍵証明書とから、コントローラの属性を取得する。
【００７９】
（Ｓ１２１５）コントローラＡは、コントローラＡの属性が「専用機器」であるか否かを判断する。コントローラＡの属性が「専用機器」である場合はステップＳ１２３５に進み、そうでない場合はステップＳ１２２０に進む。
【００８０】
（Ｓ１２２０）コントローラＡは、コントローラＢの属性が「専用機器」であるか否かを判断する。コントローラＢの属性が「専用機器」である場合はステップＳ１２４０に進み、そうでない場合はステップＳ１２２５に進む。
【００８１】
（Ｓ１２２５）コントローラＡは、コントローラＡの属性が「汎用機器」であるか否かを判断する。コントローラＡの属性が「汎用機器」である場合はステップＳ１２３５に進み、そうでない場合はステップＳ１２３０に進む。
【００８２】
（Ｓ１２３０）コントローラＡは、コントローラＢの属性が「汎用機器」であるか否かを判断する。コントローラＢの属性が「汎用機器」である場合はステップＳ１２４０に進み、そうでない場合はステップＳ１２３５に進む。
【００８３】
（Ｓ１２３５）コントローラＡは、コントローラＡをＳＣとして決定する。
【００８４】
（Ｓ１２４０）コントローラＡは、コントローラＢをＳＣとして決定する。
【００８５】
（Ｓ１２４５）コントローラＡは、ＳＣの選定結果をコントローラＢに通知する。
【００８６】
（Ｓ１２５０）コントローラＡ及びコントローラＢは、後述するＳＣ引継処理を行う。
【００８７】
以上が、ネゴシエート処理となる。
【００８８】
ネゴシート処理では、公開鍵証明書の項目内の属性のデータを参照して、コントローラが他の機器をコントロールする機能しか持たない「専用機器」であるか、他の機能も持つ「汎用機器」であるか、ＰＣやスマートフォン上で動作する「アプリ」であるかによって、ＳＣになる優先度を変えている。
コントローラの属性「専用機器」であれば、どんなときでも迅速に処理が行えるように常に待機する機能を持っていることが考えられる。コントローラの属性が「汎用機器」であれば、家の中に誰もいなくなったときや、就寝中には電源が切られる可能性が考えられる。コントローラの属性が「アプリ」であれば、いつ電源が切られたり、ネットワークから外れたりするか分からない。このため、「専用機器」、「汎用機器」、「アプリ」の順番で、ＳＣになりやすいように優先度を付けている。また、ここでは、両者の属性が同じであった場合は、ネゴシエート処理を依頼した側のコントローラが優先的にＳＣになる場合を示しているが、ネゴシエート処理の依頼を受けた側のコントローラＢが優先的にＳＣになってもよい。
【００８９】
＜ＳＣ引継処理＞
ＳＣ引継処理は、ネゴシエート処理によって新たなＳＣが決定された後、今までＳＣであったコントローラが保持していた情報を、新たなＳＣへと譲渡する処理である。以下、ＳＣ引継処理について、図１３を参照して、説明する。なお、以下では、新たなにＳＣとなったコントローラＡ（新ＳＣ）と、今までＳＣであったコントローラＢ（旧ＳＣ）とがＳＣ引継処理を行うものとする。
【００９０】
（Ｓ１３００）新ＳＣおよび旧ＳＣは、後述するグループ鍵配信・受信処理を行う。ここでは、旧ＳＣの管理していたグループ鍵を、新ＳＣへ配信する。
【００９１】
（Ｓ１３０５）旧ＳＣは、傘下の機器の情報を新ＳＣへ送信する。具体的には、旧ＳＣのグループに関する情報５１０の傘下の機器５１３の機器それぞれについて、接続機器管理テーブル５００の機器ＩＤ５０１、証明書ＩＤ５０２、グループ鍵５０４、グループ鍵有効時間５０５のデータを送信する。このとき、旧ＳＣは、傘下の機器の公開鍵証明書も併せて送信する。なお、旧ＳＣは、新ＳＣにグループ鍵を送信する場合は、新ＳＣとの間で共有した共有鍵を用いて暗号化して送信する。
【００９２】
（Ｓ１３１０）旧ＳＣは、傘下の機器へ、ＳＣがコントローラＢからコントローラＡへと変更した旨を通知する。このとき、コントローラＡの機器ＩＤや公開鍵証明書も併せて送信する。
【００９３】
（Ｓ１３１５）旧ＳＣ傘下の機器は、旧ＳＣからＳＣの変更通知と機器ＩＤと公開鍵証明書を受信すると、コントローラＡをＳＣとして登録する。具体的には、旧ＳＣ傘下の機器は、受信したコントローラＡの機器ＩＤを、機器情報保持部８２０の保持するグループに関する情報９１０のＳＣ９１２に登録する。さらに、旧ＳＣ傘下の機器は、接続コントローラ管理テーブル９００に、受信したコントローラＡの機器ＩＤのレコードを追加する。
【００９４】
（Ｓ１３２０）新ＳＣは、ステップＳ１３００のグループ鍵配信・受信処理で受信したグループ鍵、ステップＳ１３０５で受信した機器の情報を用いて、機器情報保持部４２０で保持する接続機器管理テーブル５００及びグループに関する情報５１０を更新する。
【００９５】
（Ｓ１３２５）旧ＳＣは、新ＳＣであるコントローラＡをＳＣとして登録する。具体的には、旧ＳＣは、コントローラＡの機器ＩＤを、機器情報保持部４２０の保持するグループに関する情報５１０のＳＣ５１２に設定する。
【００９６】
（Ｓ１３３０）旧ＳＣ傘下の機器と新ＳＣは、後述の共有鍵計算処理を行う。なお、共有鍵計算処理のタイミングは、旧ＳＣ傘下の機器が新ＳＣをＳＣとして登録した直後に行ってもよいが、新ＳＣがグループ鍵を更新する前であればいつでもよい。
【００９７】
以上が、ＳＣ引継処理となる。
【００９８】
＜相互認証処理＞
次に、機器又はコントローラとコントローラとの間の相互認証処理について、図１４を参照して説明する。なお、以下では、機器とコントローラとの間の相互認証処理について、説明するが、コントローラとコントローラとの間の相互認証処理でも同様の処理を行う。
【００９９】
（Ｓ１４００）機器からコントローラへ、認証要求を送信する。このとき、機器は、自機の機器ＩＤ及び公開鍵証明書も併せて送信する。
【０１００】
（Ｓ１４０５）コントローラは、機器の公開鍵証明書の証明書ＩＤが、認証情報保持部４４０で保持するＣＲＬに記載されていないことを検証する。
検証に失敗した場合、コントローラは、機器にエラーを通知して処理を終了する。
【０１０１】
（Ｓ１４１０）コントローラは、証明書ＩＤがＣＲＬに記載されていないことを確認すると、機器の公開鍵証明書の署名を認証局の公開鍵を用いて検証する。検証に失敗した場合、コントローラは、機器にエラーを通知して処理を終了する。署名には、ＥＣＤＳＡ（Elliptic Curve Digital Signature Algorithm)RSA、DSA(Digital Signature Algorithm）等の一般的に用いられている方式を利用することが可能である。また、コントローラは、機器の公開鍵証明書の署名の検証に成功すると、接続機器管理テーブル５００に、新たなレコードを作成し、相互認証処理の相手となる機器の機器ＩＤ及び証明書ＩＤを登録する。
【０１０２】
（Ｓ１４１５）コントローラは、機器の公開鍵証明書の署名の検証に成功すると、自機の機器ＩＤ及び公開鍵証明書を機器に送信する。
【０１０３】
（Ｓ１４２０）機器は、コントローラの公開鍵証明書の証明書ＩＤが、認証情報保持部８４０で保持するＣＲＬに記載されていないことを検証する。
検証に失敗した場合、機器は、コントローラにエラーを通知して処理を終了する。
【０１０４】
（Ｓ１４２５）機器は、証明書ＩＤがＣＲＬに記載されていないことを確認すると、コントローラの公開鍵証明書の署名を認証局の公開鍵を用いて検証する。検証に失敗した場合、機器は、コントローラにエラーを通知して処理を終了する。また、機器は、コントローラの公開鍵証明書の署名の検証に成功すると、接続コントローラ管理テーブル９００に、新たなレコードを作成し、相互認証処理の相手となるコントローラの機器ＩＤ及び証明書ＩＤを登録する。
【０１０５】
（Ｓ１４３０）機器及びコントローラは、後述する共有鍵計算処理を行う。
【０１０６】
以上が、相互認証処理となる。
【０１０７】
＜共有鍵計算処理＞
次に、機器又はコントローラとコントローラとの間の共有鍵計算処理について、図１５を参照して説明する。なお、以下では、機器とコントローラとの間の共有鍵計算処理について、説明するが、コントローラとコントローラとの間の共有鍵計算処理でも同様の処理を行う。
【０１０８】
（Ｓ１５００）機器及びコントローラは、鍵交換を行う。鍵交換の方式は、ＥＣＤＨ（Elliptic Curve Diffie-Hellman key exchange）等の一般的な方式を用いることが可能である。ＥＣＤＨにはＳｔａｔｉｃ方式と、Ｅｐｈｅｍｅｒａｌ方式があるが、本実施の形態では、Ｓｔａｔｉｃ方式を用いるものとする。なお、当然ではあるが、Ｅｐｈｅｍｅｒａｌ方式を用いるとしてもよい。
【０１０９】
（Ｓ１５０５）機器及びコントローラは、共有鍵を算出する。具体的には、機器及びコントローラは、ステップＳ１５００の鍵交換で共有した値に対し、ハッシュ値を計算し、計算したハッシュ値の上位１２８ビットを共有鍵とする。なお、認証システム１００では、共有鍵を用いた暗号方式として鍵長１２８ビットのＡＥＳ（Advanced Encryption Standard）を用いるものとするが、これに限らず、他の暗号方式を用いてもよい。機器は、算出した共有鍵を、接続コントローラ管理テーブル９００の対応するコントローラのレコードの共有鍵９０３に登録する。コントローラは、算出した共有鍵を、接続機器管理テーブル５００の対応する機器のレコードの共有鍵５０３に登録する。ここで、対応するコントローラ及び対応する機器とは、共有鍵計算処理の相手となる機器及びコントローラのことである。
【０１１０】
（Ｓ１５１０、Ｓ１５１５）コントローラは、乱数Ａを生成し、機器に送信する。
【０１１１】
（Ｓ１５２０）機器は、コントローラから受信した乱数Ａを、ステップＳ１５０５で算出した共有鍵を用いて暗号化し、暗号化乱数Ａ’を生成する。
【０１１２】
（Ｓ１５２５、Ｓ１５３０）機器は、乱数Ｂを生成し、暗号化乱数Ａ’と乱数Ｂをコントローラに送信する。
【０１１３】
（Ｓ１５３５）コントローラは、機器から受信した暗号化乱数Ａ’をステップＳ１５０５で算出した共有鍵を用いて復号し、ステップＳ１５１０で生成した乱数Ａと一致するか否かの検証を行う。検証に失敗した場合、コントローラは、機器にエラーを通知して処理を終了する。
【０１１４】
（Ｓ１５４０、Ｓ１５４５）コントローラは、機器から受信した乱数ＢをステップＳ１５０５で算出した共有鍵を用いて暗号化し、暗号化乱数Ｂ’を生成し、機器に送信する。
【０１１５】
（Ｓ１５５０）機器は、コントローラから受信した暗号化乱数Ｂ’をステップＳ１５０５で算出した共有鍵を用いて復号し、ステップＳ１５２５で生成した乱数Ｂと一致するか否かの検証を行う。検証に失敗した場合、機器は、コントローラにエラーを通知して処理を終了する。
【０１１６】
（Ｓ１５５５）検証が成功した場合、機器はコントローラに検証成功の結果を通知する。
【０１１７】
以上が、共有鍵計算処理となる。
【０１１８】
＜グループ鍵配信・受信処理＞
次に、機器又はＳＣでないコントローラとＳＣのコントローラとの間のグループ鍵配信・受信処理について、図１６を参照して説明する。なお、以下では、機器とＳＣのコントローラとの間のグループ鍵配信・受信処理について、説明するが、ＳＣでないコントローラとＳＣのコントローラとの間で実施してもよい。その場合は、機器をＳＣでないコントローラに置き換えればよい。
【０１１９】
（Ｓ１６００）コントローラは、グループ鍵を既に生成済みであるか否かを判断する。なお、コントローラは、グループ鍵を既に生成済みである場合、接続機器管理テーブル５００の対応する機器のレコードに生成済みのグループ鍵及びグループ鍵の有効時間を登録する。ここで、対応する機器とは、グループ鍵配信・受信処理の相手となる機器のことである。
【０１２０】
（Ｓ１６０５、Ｓ１６１０）グループ鍵を既に生成済みでない場合、コントローラは、グループ鍵を生成すると共に、生成したグループ鍵の有効時間を決定する。なお、認証システム１００では、グループ鍵を用いた暗号方式として鍵長１２８ビットのＡＥＳを用いるものとするが、これに限らず、他の暗号方式を用いてもよい。コントローラは、接続機器管理テーブル５００の対応する機器のレコードに生成したグループ鍵及びグループ鍵の有効時間を登録する。
【０１２１】
（Ｓ１６１５、Ｓ１６２０）コントローラは、生成した又は生成済のグループ鍵を、接続機器管理テーブル５００の対応する機器のレコードの共有鍵を用いて暗号化し、暗号化グループ鍵を生成し、機器に送信する。
【０１２２】
（Ｓ１６２５）機器は、コントローラから受信した暗号化グループ鍵を、接続コントローラ管理テーブル９００の対応するコントローラのレコードの共有鍵を用いて復号する。
【０１２３】
（Ｓ１６３０）機器は、ステップＳ１６２５で復号したグループ鍵を、接続コントローラ管理テーブル９００の対応するコントローラのレコードに登録する。
【０１２４】
（Ｓ１６３５）機器は、グループ鍵の登録を完了したことをコントローラに通知する。
【０１２５】
（Ｓ１６４０）コントローラは、接続機器管理テーブル５００の対応する機器のレコードのグループ鍵更新フラグ５０６に、グループ鍵が更新済みである旨を示す値を登録する。
【０１２６】
以上が、グループ鍵配信・受信処理である。
【０１２７】
なお、コントローラ間でグループ鍵を共有する場合には、ステップＳ１６１５、Ｓ１６２０で、グループ鍵を暗号化して送信するときに、グループ鍵の有効時間も暗号化して送信してもよい。また、暗号化されたグループ鍵の有効時間を受信したコントローラは、接続機器管理テーブル５００に受信したグループ鍵の有効時間を登録してもよい。
【０１２８】
＜グループ鍵更新処理＞
次に、ＳＣのコントローラとＳＣ傘下の機器やコントローラとの間のグループ鍵更新処理について、図１７を参照して説明する。
【０１２９】
（Ｓ１７００）ＳＣとなったコントローラは、接続機器管理テーブル５００のいずれか一つのレコードのグループ鍵有効時間５０５が、所定値以下になっているか否かを判断する。グループ鍵の有効時間が所定値以下になるまで、以降の処理は実施しない。
【０１３０】
（Ｓ１７０５）ＳＣは、接続機器管理テーブル５００のいずれか一つレコードのグループ鍵有効時間５０５が、所定値以下になると、新しいグループ鍵を生成する。
【０１３１】
（Ｓ１７１０）ＳＣは、ステップＳ１７０５で生成したグループ鍵の有効時間を決定する。有効時間は、例えば、２４時間、７２時間といった値に決定する。
【０１３２】
（Ｓ１７１５）ＳＣは、接続機器管理テーブル５００のすべてのレコードのグループ鍵更新フラグ５０６に、グループ鍵が更新されていない旨を示す値を登録する。
【０１３３】
（Ｓ１７２０）ＳＣは、傘下の機器及びコントローラの中からグループ鍵を更新する機器（又はコントローラ）を一つ決定する。
【０１３４】
（Ｓ１７２５）ＳＣは、ステップＳ１７０５で生成したグループ鍵を、接続機器管理テーブル５００のステップＳ１７２０で決定した機器（又はコントローラ）のレコードの共有鍵で暗号化して暗号化グループ鍵を生成する。
【０１３５】
（Ｓ１７３０）ＳＣは、ステップＳ１７２０で決定した機器に、ステップＳ１７２５で生成した暗号化グループ鍵を送信し、ステップＳ１７２０で決定した機器（又はコントローラ）のグループ鍵を更新する。ステップＳ１７３０の処理の詳細は後述する。
【０１３６】
（Ｓ１７３５）ＳＣは、傘下の機器及びコントローラの全てのグループ鍵の更新を行ったか否かを判断する。グループ鍵の更新を行っていない機器又はコントローラが存在する場合はステップＳ１７２０に戻り、傘下の機器及びコントローラの全てのグループ鍵の更新を行った場合はステップＳ１７４０に進む。
【０１３７】
（Ｓ１７４０）ＳＣは、ステップＳ１７０５で生成したグループ鍵を、接続機器管理テーブル５００のすべてのレコードのグループ鍵５０４に登録する。ＳＣは、決定したグループ鍵の有効時間を、接続機器管理テーブル５００のすべてのレコードのグループ鍵有効時間５０５に登録する。
【０１３８】
次に、ステップＳ１７３０の処理の詳細について、図１８を参照して説明する。なお、以下では、ステップＳ１７２０で決定された機器とＳＣのコントローラとの間の処理について、説明するが、ステップＳ１７２０で決定されたコントローラとＳＣのコントローラとの間で実施してもよい。その場合は、機器をＳＣでないコントローラに置き換えればよい。
【０１３９】
（Ｓ１８００、Ｓ１８０５）ＳＣは、乱数Ａを生成し、グループ鍵更新要求と共に乱数Ａを機器に送信する。
【０１４０】
（Ｓ１８１０）機器は、ＳＣからグループ鍵更新要求及び乱数Ａを受信すると、接続コントローラ管理テーブル９００のＳＣのレコードの共有鍵を用いて乱数Ａを暗号化して暗号化乱数Ａ’を生成する。
【０１４１】
（Ｓ１８１５、Ｓ１８２０）機器は、乱数Ｂを生成し、暗号化乱数Ａ’と乱数ＢをＳＣに送信する。
【０１４２】
（Ｓ１８２５）ＳＣは、機器から受信した暗号化乱数Ａ’を接続機器管理テーブル５００の対応する機器のレコードの共有鍵を用いて復号し、ステップＳ１８００で生成した乱数Ａと一致するか否かを検証する。検証に失敗した場合、ＳＣは、機器にエラーを通知して処理を終了する。
【０１４３】
（Ｓ１８３０、Ｓ１８３５）ＳＣは、接続機器管理テーブル５００の対応する機器のレコードの共有鍵を用いて、機器から受信した乱数Ｂを暗号化して暗号化乱数Ｂ’を生成し、機器に送信する。
【０１４４】
（Ｓ１８４０）機器は、ＳＣから受信した暗号化乱数Ｂ’を接続コントローラ管理テーブル９００のＳＣのレコードの共有鍵を用いて復号し、ステップＳ１８１５で生成した乱数Ｂと一致するか否かを検証する。検証に失敗した場合、機器は、ＳＣにエラーを通知して処理を終了する。
【０１４５】
（Ｓ１８４５）検証が成功した場合、機器はＳＣに検証成功の結果を通知する。
【０１４６】
（Ｓ１８５０）ＳＣは、機器から検証成功の結果を受信すると、ステップＳ１７２５で生成した暗号化グループ鍵を機器に送信する。
【０１４７】
（Ｓ１８５５）機器は、ＳＣから受信した暗号化グループ鍵を、接続コントローラ管理テーブル９００のＳＣのレコードの共有鍵を用いて復号する。
【０１４８】
（Ｓ１８６０）機器は、復号したグループ鍵を、接続コントローラ管理テーブル９００のすべてのレコードのグループ鍵９０４に登録する。
【０１４９】
（Ｓ１８６５）機器は、グループ鍵の更新完了通知をＳＣに送信する。
【０１５０】
（Ｓ１８７０）ＳＣは、機器からグループ鍵の更新完了通知を受信すると、接続機器管理テーブル５００の対応する機器のレコードのグループ鍵更新フラグ５０６に、グループ鍵が更新済みである旨を示す値を登録する。
【０１５１】
以上がグループ鍵更新処理である。
【０１５２】
＜機器履歴情報送信処理＞
次に、ペアリングを行った機器からコントローラへ機器履歴情報を送信する処理について図２３を参照して説明する。なお、この機器履歴情報送信処理は、定期的あるいは不定期に行われる。
【０１５３】
（Ｓ２３００）機器は、機器履歴保持部８５０で保持している機器履歴情報を、接続コントローラ管理テーブル９００のグループ鍵で暗号化して、暗号化履歴情報を生成する。
【０１５４】
（Ｓ２３０５）機器は、グループに関する情報９１０の制御コントローラ９１１に登録されているコントローラに対して、ステップＳ２３００で生成した暗号化履歴情報をコントローラに送信する。
【０１５５】
（Ｓ２３１０）コントローラは、ペアリングした機器から暗号化機器履歴情報を受信すると、接続機器管理テーブル５００の対応する機器のレコードのグループ鍵を用いて復号する。
【０１５６】
以上が機器履歴情報送信処理となる。なお、コントローラは、復号した機器履歴情報を、外部のサーバなどに送信してもよい。
【０１５７】
＜制御コマンド送信処理＞
次に、ペアリングを行ったコントローラから機器へ制御コマンドを送信する処理について図２４を参照して説明する。なお、この制御コマンド送信処理は、定期的あるいは不定期に行われる。
【０１５８】
（Ｓ２４００）コントローラは、外部のサーバからの制御依頼などに基づいて、ペアリングした各機器向けの制御コマンドを生成する。
【０１５９】
（Ｓ２４０５）コントローラは、生成した各制御コマンドを、接続機器管理テーブル５００の対応する機器のレコードのグループ鍵を用いて暗号化して暗号化制御コマンドを生成する。
【０１６０】
（Ｓ２４１０）コントローラは、生成した暗号化制御コマンドを、ペアリングした各機器に送信する。コントローラは、複数の機器に対して同一グループ鍵で暗号化された同一の制御コマンドを送信する場合は、一斉同報通信（マルチキャスト通信）で送信する。
【０１６１】
（Ｓ２４１５）機器は、ペアリングしたコントローラから暗号化制御コマンドを受信すると、接続コントローラ管理テーブル９００のグループ鍵を用いて復号する。
【０１６２】
（Ｓ２４２０）機器は、復号した制御コマンドを実行する。
【０１６３】
以上が制御コマンド送信処理となる。
【０１６４】
＜接続機器管理テーブル及びグループに関する情報の更新について＞
以上に示した機器登録処理、ネゴシエート処理、ＳＣ引継処理、相互認証処理、共有鍵計算処理、グループ鍵配信・受信処理を適宜行うことより、認証システム１００のグループ構成は、図２に示す状態から図３に示す状態のようにグループ統合を行いながら動作する。
【０１６５】
ここで、ＨＡＮ内のグループ構成が図２の状態で、コントローラＡとコントローラＢとが機器登録処理を行い、グループ統合により、図３に示すようなグループ構成になったとする。このときの各コントローラの接続機器管理テーブル５００及びグループに関する情報５１０、並びに、各機器の接続コントローラ管理テーブル９００及びグループに関する情報９１０の更新について、図１９−２２を参照して説明する。
【０１６６】
図１９は、グループ統合前のコントローラＡの保持する接続機器管理テーブルとグループに関する情報と、グループ統合前のコントローラＢの保持する接続機器管理テーブルと情報を示す図である。
【０１６７】
図２０は、グループ統合前の機器Ａの保持する接続コントローラ管理テーブルとグループに関する情報と、グループ統合前の機器Ｂの保持する接続コントローラ管理テーブルとグループに関する情報を示す図である。
【０１６８】
図２１は、グループ統合後のコントローラＡの保持する接続機器管理テーブルと情報と、グループ統合後のコントローラＢの保持する接続機器管理テーブルとグループに関する情報を示す図である。
【０１６９】
図２２は、グループ統合後の機器Ａの保持する接続コントローラ管理テーブルとグループに関する情報と、グループ統合後の機器Ｂの保持する接続コントローラ管理テーブルとグループに関する情報を示す図である。
【０１７０】
図１９（ａ），（ｂ）は、ＨＡＮ内のグループ構成が図２の状態のときのコントローラＡの接続機器管理テーブル５００及びグループに関する情報５１０を示している。図１９（ｃ），（ｄ）は、ＨＡＮ内のグループ構成が図２の状態のときのコントローラＢの接続機器管理テーブル５００及びグループに関する情報５１０を示している。図２０（ａ），（ｂ）は、ＨＡＮ内のグループ構成が図２の状態のときの機器Ａの接続コントローラ管理テーブル９００及びグループに関する情報９１０を示している。図２０（ｃ），（ｄ）は、ＨＡＮ内のグループ構成が図２の状態のときの機器Ｂの接続コントローラ管理テーブル９００及びグループに関する情報９１０を示している。
【０１７１】
図２１（ａ），（ｂ）は、ＳＣ引継処理後のコントローラＡの接続機器管理テーブル５００及びグループに関する情報５１０を示している。図２１（ｃ），（ｄ）は、ＳＣ引継処理後のコントローラＢの接続機器管理テーブル５００及びグループに関する情報５１０を示している。図２２（ａ），（ｂ）は、ＳＣ引継処理後の機器Ａの接続コントローラ管理テーブル９００及びグループに関する情報９１０を示している。図２２（ｃ），（ｄ）は、ＳＣ引継処理後の機器Ｂの接続コントローラ管理テーブル９００及びグループに関する情報９１０を示している。
【０１７２】
図１９（ａ）と図２１（ａ）を比較すると、コントローラＡの接続機器管理テーブル５００には、新たに傘下となったコントローラＢのレコード（機器ＩＤが「００４」のレコード）と機器Ｂのレコード（機器ＩＤが「００２」のレコード）が追加されている。コントローラＢのレコードは、コントローラＡとコントローラＢのネゴシエート処理において、コントローラＡとコントローラＢとが相互認証を行ったときに、追加されたレコードである（図１２：ステップＳ１２０５及び図１４：ステップＳ１４１０、Ｓ１４２５参照）。機器Ｂのレコードは、コントローラＢ（旧ＳＣ）からコントローラＡ（新ＳＣ）のＳＣ引継処理において、旧ＳＣから通知された機器の情報を登録したときに追加されたレコードである（図１３：ステップＳ１３２０、ステップＳ１３３０参照）。
【０１７３】
図１９（ｂ）と図２１（ｂ）を比較すると、コントローラＡのグループに関する情報５１０の傘下の機器５１３には、新たに傘下になったコントローラＢと機器Ｂの機器ＩＤが追加されている。この追加は、コントローラＢ（旧ＳＣ）からコントローラＡ（新ＳＣ）のＳＣ引継処理において、旧ＳＣから通知された機器及び旧ＳＣを傘下の機器として登録したときになされたものである（図１３：ステップＳ１３２０参照）。
【０１７４】
図１９（ｃ）と図２１（ｃ）を比較すると、コントローラＢの接続機器管理テーブル５００には、新たにＳＣとなったコントローラＡのレコード（機器ＩＤが「００３」のレコード）が追加されている。コントローラＡのレコードは、コントローラＡとコントローラＢのネゴシエート処理において、コントローラＡとコントローラＢとが相互認証を行ったときに、追加されたレコードである（図１２：ステップＳ１２０５及び図１４：ステップＳ１４１０、Ｓ１４２５参照）。なお、図２１（ｃ）において、コントローラＢの接続機器管理テーブル５００のグループ鍵有効時間５０５及びグループ鍵更新フラグ５０６の値が「−」となっているのは、コントローラＢがＳＣではなくなり、管理する必要のない情報であることを示している。
【０１７５】
図１９（ｄ）と図２１（ｄ）を比較すると、コントローラＢのグループに関する情報５１０のＳＣ５１２が、コントローラＢの機器ＩＤからコントローラＡの機器ＩＤに変更している。この変更は、コントローラＢ（旧ＳＣ）
からコントローラＡ（新ＳＣ）のＳＣ引継処理において、新ＳＣを登録したときになされたものである（図１３：ステップＳ１３２５参照）。なお、図２１（ｄ）において、コントローラＢのグループに関する情報５１０の傘下の機器５１３の値が「−」となっているのは、コントローラＢがＳＣではなくなり、管理する必要のない情報であることを示している。
【０１７６】
図２０（ａ），（ｂ）と図２２（ａ），（ｂ）を比較すると、機器Ａの接続コントローラ管理テーブル９００及びグループに関する情報９１０に変更はない。これは、今回のグループ統合によっては、機器ＡのＳＣがされなかったことを意味している。
【０１７７】
図２０（ｃ），（ｄ）と図２２（ｃ），（ｄ）を比較すると、機器Ｂの接続コントローラ管理テーブル９００に、新たにＳＣとなったコントローラＡの機器ＩＤのレコードが追加され、グループに関する情報９１０のＳＣ９１２が旧ＳＣであるコントローラＢの機器ＩＤから新ＳＣであるコントローラの機器ＩＤに変更されている。この変更は、コントローラＢ（旧ＳＣ）からコントローラＡ（新ＳＣ）のＳＣ引継処理において、旧ＳＣの傘下であった機器Ｂが旧ＳＣからＳＣの変更通知を受信した後に、コントローラＡを新ＳＣとして登録したときになされたものである（図１３：ステップＳ１３１５、Ｓ１３３０参照）。
【０１７８】
以上図１９−２２で示したように、各コントローラの接続機器管理テーブル５００及びグループに関する情報５１０、並びに、各機器の接続コントローラ管理テーブル９００及びグループに関する情報９１０が更新される。
【０１７９】
＜新規コントローラ参入の流れ＞
ここでは、ＨＡＮ内の全ての機器及びコントローラがペアリングされていない状態から、上記機器登録処理、ネゴシエート処理、ＳＣ引継処理、相互認証処理、共有鍵計算処理、グループ鍵配信・受信処理、グループ鍵更新処理を行うことにより、グループが構築され、さらに、新規コントローラがグループに参入したときの流れについて説明する。
【０１８０】
まず、ＨＡＮ内に、いずれの機器及びコントローラともペアリングされていないコントローラＡ、機器Ａが存在するとする。この状態において、コントローラＡのＳＣはコントローラＡが設定しており、機器Ａには、ＳＣが設定されていない状態である。
【０１８１】
ユーザによるコントローラＡと機器Ａとのペアリング操作により、コントローラＡと機器Ｂとの間で上述の図１０に示す機器登録処理が行われる。
【０１８２】
この機器登録処理では、機器ＡにはＳＣが設定されていないことから、ネゴシエート処理を行わずに、コントローラＡのＳＣとして設定されているコントローラＡが新たなＳＣとして、機器Ａに通知される（ステップＳ１０１０、Ｓ１０２０参照）。
【０１８３】
機器Ａでは、ＳＣが新たに登録されることによって、ＳＣとの認証が必要になり、ＳＣであるコントローラＡとの相互認証処理を行う（ステップＳ１０２５、Ｓ１０３０参照）。この機器ＡとコントローラＡとの相互認証処理を第１の相互認証と呼ぶ。
【０１８４】
第１の相互認証の後、機器ＡとコントローラＡとが、グループ鍵配信・受信処理を行って機器ＡとコントローラＡとの間でグループ鍵が共有される（ステップＳ１０３５参照）。このときに共有されるグループ鍵を第１のグループ鍵と呼ぶ。
【０１８５】
そして、機器ＡがコントローラＡの傘下に参入し、機器ＡとコントローラＡとからなるグループが形成される（ステップＳ１０４０参照）。この後、第１のグループ鍵の有効時間が所定値以下になる度に、コントローラＡは、図１７，１８に示すグループ鍵更新処理を行い、グループ内で共有されているグループ鍵である第１のグループ鍵を更新する。
【０１８６】
この状態で、新たにいずれの機器ともペアリングされていないコントローラＢがＨＡＮに接続されたとする。この時、コントローラＢのＳＣとしてはコントローラＢが設定されている。
【０１８７】
ユーザによるコントローラＡとコントローラＢとのペアリング操作により、コントローラＡとコントローラＢとの間で図１１に示す機器登録処理が行われる。
【０１８８】
この機器登録処理では、コントローラＡに設定されているＳＣと、コントローラＢに設定されているＳＣが異なることから、コントローラＡのＳＣとコントローラＢのＳＣとの間でネゴシエート処理が発生する（ステップＳ１１１０、Ｓ１１１５参照）。この場合、コントローラＡとコントローラＢがネゴシエート処理を行う。
【０１８９】
ネゴシエート処理では、コントローラＡとコントローラＢとの間で相互認証処理が行われる（図１２：ステップＳ１２０５参照）。このコントローラＡとコントローラＢとの間で行われる相互認証処理を、第２の相互認証と呼ぶ。
【０１９０】
第２の相互認証のあと、コントローラＡとコントローラＢのうちどちらがＳＣとなるかが決定される。
【０１９１】
コントローラＢがＳＣとなると、コントローラＡからコントローラＢへのＳＣ引継処理が行われる。ＳＣ引継処理では、旧ＳＣであるコントローラＡが生成した第１のグループ鍵を、旧ＳＣであるコントローラＡと新ＳＣであるコントローラＢとが共有するグループ鍵配信・受信処理が行われる（図１３：ステップＳ１３００参照）。
【０１９２】
この時、コントローラＡとコントローラＢと機器Ａとでは、コントローラＡが生成したグループ鍵である第１のグループ鍵が共有されており、新ＳＣによるグループ鍵更新処理が行われるまでは、コントローラＡとコントローラＢと機器Ａとは、第１のグループ鍵を用いた暗号通信を行うことが可能である。
【０１９３】
第１のグループ鍵の有効時間が所定値以下になると、図１７、１８に示すグループ鍵更新処理が行われる。グループ鍵更新処理では、ＳＣであるコントローラＢがグループ鍵を生成する。このグループ鍵を第２のグループ鍵と呼ぶ（図１７：ステップＳ１７０５参照）。そして、コントローラＢは、傘下の機器であるコントローラＡと機器Ａそれぞれに対して、共有鍵と乱数を用いた相互認証を行う（図１８：ステップＳ１８００−Ｓ１８４５参照）。
この共有鍵と乱数を用いた相互認証を第３の相互認証と呼ぶ。
【０１９４】
コントローラＢは、第３の相互認証に成功したコントローラＡと機器Ａと第２のグループ鍵を共有する。
【０１９５】
以上のように、グループに新たに参入したコントローラにＳＣが引き継がれ、新ＳＣによりグループ鍵が更新される場合には、第１の相互認証、第２の相互認証、第３の相互認証が行われることになる。
【０１９６】
＜実施の形態１の効果＞
実施の形態１では、コントローラと機器でグループを形成し、１つのグループの中に複数のコントローラが含まれる状態になるときに、複数のコントローラ間でネゴシエート処理を行う。各コントローラは、公開鍵証明書に記載されたコントローラの属性を用いて、ネゴシエートすることで、電源断やネットワーク未接続の状態が発生しにくいコントローラを優先的にＳＣとして決定することができる。これにより、新しい機器やコントローラがグループに参入するときにも、グループ鍵を更新する必要が生じたときにも、グループ内で迅速にグループ鍵を共有できる。
【０１９７】
また、実施の形態１では、コントローラ間でＳＣを変更した際に、旧ＳＣから新ＳＣへのＳＣ引継処理を行って、旧ＳＣが傘下の機器と行った認証結果を新ＳＣが引き継いでいる。これにより、新ＳＣと旧ＳＣの傘下の機器との間における公開鍵証明書を用いた認証を省略することができる。その結果、機器やコントローラの処理負担を少なくすることができる。
【０１９８】
さらに、実施の形態１では、コントローラ間でＳＣを変更した際に、旧ＳＣから新ＳＣに、旧ＳＣの生成したグループ鍵を送信している。これにより、新ＳＣは、新ＳＣの生成したグループ鍵を配信する前であっても、旧ＳＣの生成したグループ鍵を用いて、旧ＳＣの傘下の機器に対する一斉同報通信を暗号化して行うことができる。
【０１９９】
（変形例）
以上、本開示に係る認証方法を用いた認証システムについて、実施の形態に基づき説明したが、以下のように変形することも可能であり、本開示は上述した実施の形態で示した通りの認証システムに限られない。
【０２００】
＜１＞実施の形態１で示したＳＣ引継処理は、以下に示すように変形してもよい。
【０２０１】
図２５は、ＳＣ引継処理の変形例を示す図である。
【０２０２】
ステップＳ２５００、Ｓ２５０５、Ｓ２５１０、Ｓ２５２０、Ｓ２５２５、Ｓ２５３５の処理は、実施の形態１のＳＣ引継処理におけるステップＳ１３００、Ｓ１３０５、Ｓ１３１０、Ｓ１３２０、Ｓ１３２５、Ｓ１３３０の処理と同様であり説明を省略する。
【０２０３】
（Ｓ２５１５）旧ＳＣであるコントローラＢは、傘下の機器及び新ＳＣであるコントローラＡに、登録モードの起動指示を送信する。
【０２０４】
（Ｓ２５３０）コントローラＡと旧ＳＣの傘下の機器は、コントローラＢから登録モードの起動指示を受信すると、登録モードを起動する。
【０２０５】
（Ｓ２５３５）コントローラＡは、旧ＳＣの傘下の各機器と順次、機器登録処理を行う。機器登録処理は、図１０のステップＳ１００５〜Ｓ１０６５と同様の処理であり、ここでの説明は省略する。
【０２０６】
図２５に示すＳＣ引継処理は、ＳＣが変更された場合に、旧ＳＣから傘下の機器及び新ＳＣへ登録モードの起動指示を送信し、新ＳＣと旧ＳＣ傘下の機器が登録モードを起動する。これにより、ユーザが手動で登録モードを起動せずとも、旧ＳＣ傘下の機器と新ＳＣとで機器登録処理を行うことができ、ユーザの利便性が向上する。
【０２０７】
＜２＞実施の形態１のＳＣ引継処理において、旧ＳＣは、傘下の機器の情報を新ＳＣに通知する際に、傘下の機器それぞれの公開鍵証明書も新ＳＣに送信するものとした。しかしながら、本開示はこれに限らず、旧ＳＣが傘下の機器それぞれの公開鍵証明書を新ＳＣに送信するのではなく、旧ＳＣからＳＣの変更通知を受けた傘下の機器それぞれが、自機が保持する公開鍵証明書を、新ＳＣに送信するものとしてもよい。この場合、旧ＳＣの傘下の機器それぞれは、旧ＳＣが生成したグループ鍵を用いて、公開鍵証明書を暗号化して、新ＳＣに送信してもよい。
【０２０８】
＜３＞実施の形態１のネゴシエート処理は、公開鍵証明書に記載の機器の属性として、コントローラの機能による分類が記載され、その分類項目（「専用機器」、「汎用機器」、「アプリ」）によって、ＳＣになるコントローラを決定すると説明した。しかしながら、本開示のネゴシエート処理は、これに限定されるものではない。例えば、公開鍵証明書に記載の機器の属性として、通信方式や認証方式などのバージョン情報が記載され、ネゴシエート処理を行うコントローラのなかで、通信方式や認証方式などのバージョン情報として最新のバージョン番号が記載された公開鍵証明書を持つコントローラをＳＣとして決定してもよい。また、対応機器や対応機能が多いことを示すバージョン情報を持つコントローラをＳＣとして決定してもよい。これにより、最新の機能を持ったコントローラや対応機器や対応機能が多いコントローラをＳＣとして決定することができる。
【０２０９】
また、公開鍵証明書に記載の機器の属性として、コントローラとペアリング可能な機器の最大数が記載され、ネゴシエート処理を行うコントローラの中でその最大数が一番大きいコントローラをＳＣとして決定してもよい。これにより、より多くの機器とペアリング可能なコントローラをＳＣとして決定することができる。
【０２１０】
また、公開鍵証明書に記載の機器の属性として、コントローラが対応している通信機能の種類（有線、専用無線、汎用無線、近距離無線）が記載され、その種類によってＳＣとなるコントローラを決定してもよい。この時、例えば「有線」、「専用無線」、「汎用無線」、「近距離無線」の順番で、ＳＣになりやすいように優先度を設定してもよい。この順番は、ＨＡＮに接続している可能性が高い（ＨＡＮに接続していない状態となる頻度が低い）通信に対応しているコントローラが、ＳＣになりやすい順番である。これにより、ＳＣが必要とされるときに、ＨＡＮに接続している可能性が高いコントローラをＳＣとして決定することができる。
【０２１１】
また、公開鍵証明書に記載の機器の属性として、電源の種類（常時通電、定期通電、短期通電）が記載され、その種類によってＳＣとなるコントローラを決定してもよい。この時、「常時通電」、「定期通電」、「短期通電」の順番で、ＳＣになりやすい優先度を設定してもよい。この順番は、動作している可能性が高い（電源ＯＦＦとなる頻度が低い）コントローラが、ＳＣになりやすい順番である。これにより、ＳＣが必要とされているときに動作している可能性が高いコントローラをＳＣとして決定することができる。ここで、「常時通電」の機器とは、機器制御用の専用コントローラやログ収集装置、分電盤、ブレーカー、冷蔵庫、エアコン、太陽光発電装置、蓄電池（バッテリー）、電話機、ブロードバンドルータ、終端装置等の常時通電している必要のある機器である。「定期通電」の機器とは、ＴＶや録画装置、オーディオ機器、天井灯等の機器である。「短期通電」の機器とは、電子レンジ、オーブン、洗濯機、掃除機、炊飯器等の機器である。
【０２１２】
また、公開鍵証明書に記載の機器の属性として、使用形態（据え置き（固定）、据え置き（移動可）、持ち運び、身につける）が記載され、その形態によってＳＣになるコントローラを決定してもよい。この時、例えば「据え置き（固定）」、「据え置き（移動可）」、「持ち運び」、「身につける」の順番で、ＳＣになりやすいように優先度を設定してもよい。この順番は、移動させやすいコントローラほどＳＣになりにくい順番である。移動しない機器であれば、通信環境が変化することも少なく、通信が途中で切れる可能性が低いと考えられる。また、移動しない機器は、電源の確保も容易である。従って、通信が途中で途切れにくく、電源の確保が容易なコントローラをＳＣとして決定することができる。
【０２１３】
さらに、公開鍵証明書に記載の機器の属性によりＳＣを決めるのではなく、その時の機器の状況によりＳＣを決定してもよい。例えば、ネゴシエート処理をするときに、そのコントローラとペアリングしている機器の数が一番多いコントローラがＳＣになるとしてもよい。これにより、ＳＣが変わることにより再認証の必要が生じる機器の台数を減らすことができる。また、稼働時間が一番短いコントローラがＳＣになるとしてもよいし、製造年月日が一番新しいコントローラがＳＣになるとしてもよい。これにより、ＳＣの故障により認証処理ができなくなる可能性を減らすことが可能となる。
【０２１４】
また、上記の基準を組み合わせて、セキュリティコーディネータを決めてもよい。
【０２１５】
＜４＞実施の形態１におけるネゴシエート処理は、コントローラにより自動で実施するものとして説明した。しかしながら、本開示のネゴシエート処理は、コントローラがユーザへＳＣの候補となるコントローラを提示し、ユーザが提示された候補の中からＳＣとなるコントローラを選択するとしてもよい。この時、ＳＣになれるコントローラ全てを候補として提示してもよいし、実施の形態１や変形例＜３＞に示す基準で選択したコントローラが複数になったときに、それらを候補として提示してもよい。
【０２１６】
図２６は、本変形例におけるコントローラの表示部での表示例である。図２６においては、ＳＣの候補となるコントローラが２つあり、それぞれに異なる家電が登録されている様子を示している。また、２つのコントローラそれぞれの公開鍵証明書に記載された機器の属性（コントローラの機能による分類、通信方式や認証方式などのバージョン情報、製造年月日、稼働時間）
が表示されている。ユーザは、提示された情報に応じてＳＣとなるコントローラを決定する。ここで、ユーザの決定は、例えば、決定したコントローラの画面内の絵をタッチする、それぞれのコントローラに付けられた番号（１や２）を入力装置から入力する、又は、コントローラの識別記号（ＡやＢ）
を入力装置から入力する、といった方法により入力される。入力装置は、ユーザからの意思をコントローラへ伝えることができる装置であればよく、物理的なキー入力装置、タッチパネル上に提示されるアイコン、音声により指示を与える装置、ジェスチャーにより指示を与える装置、視線によって指示を与える装置であってもよい。
【０２１７】
＜５＞実施の形態１では、ステップＳ１５１０〜Ｓ１５５５で乱数を暗号化して共有鍵を検証するチャレンジレスポンス認証を行っているが、これに限定するわけではなく、ＲＦＣ５１９１に記載されている認証方式を用いて、認証を行うとしてもよい。ＲＦＣ５１９１は非特許文献３に記載されているためここでは述べない。このとき、ＲＦＣ５１９１においてＥＡＰ−ＰＳＫを用いるとしてもよい。また、グループ鍵はＥＡＰ−ＰＳＫのネゴシエーションの結果導出されるＥＭＳＫを用いて導出するとしてもよい。さらに、鍵導出関数はＨＭＡＣ＿ＳＨＡ２＿２５６を用いてもよい。
【０２１８】
＜６＞実施の形態１では、Ｓ１５１０〜Ｓ１５５５で乱数を暗号化して共有鍵を検証するチャレンジレスポンス認証を行っているが、これに限定するわけではなく、ＲＦＣ６３４７に記載されている認証方式を用いて、認証を行うとしてもよい。ＲＦＣ６３４７は非特許文献４に記載されているためここでは述べない。
【０２１９】
＜７＞上記実施の形態では、グループへのコントローラの新規参入時に、新規参入するコントローラとグループ内の既存のコントローラとが登録モードを起動して、機器登録処理を行っているが、本開示はこれに限定されるものではない。例えば、以下であってもよい。コントローラの新規参入時に、新規参入するコントローラとグループ内の機器とが登録モードを起動する。
このとき、機器は接続コントローラ管理テーブルを参照して、機器のＳＣとして設定されているコントローラの情報を新規参入するコントローラへ送信する。新規参入するコントローラはＳＣの情報を受信し、ＳＣと認証することにより参入が可能となる。これにより、グループのＳＣが家庭内で離れた場所にあったとしても、ＳＣ傘下の機器の登録モードを起動することで、ＳＣと新規参入するコントローラとが認証することが可能となる。
【０２２０】
＜８＞コントローラは、接続する機器の消費電力量や蓄電池の電力量、太陽光発電の発電量を表示するとしてもよい。
【０２２１】
＜９＞コントローラは、家庭に設置される分電盤であってもよい。
【０２２２】
＜１０＞実施の形態１では、グループ鍵更新処理において、ＳＣとなったコントローラがグループ鍵の有効時間を管理し、各機器へグループ鍵更新通知を送信しているが、ＳＣとなったコントローラから各機器にグループ鍵の有効時間を通知し、各機器がグループ鍵の有効時間を管理し、各機器からＳＣとなったコントローラへグループ鍵更新通知を送信してもよい。
【０２２３】
＜１１＞実施の形態１では、グループ鍵の有効時間を残り時間で管理しているが、これに限定するものではなく、グループ鍵の生成時刻やグループ鍵の有効期間の終了時刻で管理するとしてもよい。グループ鍵の生成時刻で管理する場合、グループ鍵の有効期間の長さを別途記憶し、現在の時刻と、グループ鍵の生成時刻にグループ鍵の有効期間を追加した時刻とを比較し、グループ鍵を更新するか否かを判断する。また、グループ鍵の有効期間の終了時刻で管理する場合、現在の時刻とグループ鍵の有効時間の終了時刻とを比較し、グループ鍵を更新するかを判断する。
【０２２４】
＜１２＞実施の形態１では、グループ鍵更新処理においてグループ鍵未更新の機器が存在した場合、グループ鍵更新通知を送信し、グループ鍵の更新を行っているが、当該機器の電源が入っていない場合には、定期的にグループ鍵更新通知を送信するとしてもよい。
【０２２５】
＜１３＞実施の形態１では、グループ鍵更新処理においてグループ鍵未更新の機器が存在した場合、グループ鍵更新通知を送信し、グループ鍵の更新を行っているが、当該機器がペアリングされたコントローラによる制御を受けている場合は、当該機器からグループ鍵の延期時間を通知して、当該延期時間の経過後にグループ鍵更新処理を行うとしてもよい。
【０２２６】
＜１４＞実施の形態１では、ＳＣ引継処理時、ＳＣの変更通知の後に、新ＳＣと旧ＳＣ傘下の機器とで共有鍵を計算（Ｓ１３３０）しているが、グループ鍵有効時間が切れてグループ鍵更新処理が行われる前であればどのタイミングで行ってもよい。たとえば、機器の動作が行われていない時にするとしてもよいし、グループ鍵更新処理の直前に行うとしてもよい。これにより、機器の動作に負担をかけずにコントローラと機器間で共有鍵の計算ができる。
【０２２７】
＜１５＞実施の形態１では、ネゴシエート処理時にコントローラＡがＳＣの判断（ステップＳ１２１０−Ｓ１２４０）をしているが、これに限定するわけではなく、コントローラＡとコントローラＢのそれぞれがＳＣの判断を行ってもよい。
【０２２８】
＜１６＞ペアリングを行った機器からコントローラへ機器履歴情報を送信する場合や、コントローラから機器へ制御コマンドを送信する場合など、機器やコントローラがメッセージを送信する場合、ＨＡＮ内のすべての機器やコントローラへ一斉同報送信する（マルチキャスト通信を行う）ことを考える。このとき、機器履歴情報や制御コマンドのみを暗号化して送信すると、マルチキャストで送信する機器やコントローラに成りすましが可能となる場合がある。すなわち、不正な機器によりメッセージのヘッダや送信元アドレスや送信先アドレスが改ざんされる可能性がある。そこで、機器履歴情報や制御コマンドだけでなく、メッセージのヘッダや送信元アドレスや送信先アドレスも含めて、ＭＡＣ（Message Authentication Code）などの認証用データを生成し、生成した認証用データを含めてメッセージを送信することで、グループ鍵を持たない第三者の成りすましを防止できる。例えば、第三者が送信元アドレスや送信先アドレスを他のコントローラや機器のアドレスに改ざんしたとしても、認証用データを検証することで改ざんを検出できる。
【０２２９】
図２７（ａ）は、暗号化前のメッセージフォーマットである。メッセージは、ヘッダ、送信元アドレス、送信先アドレス、送信データから構成される。ヘッダには、制御コマンドや機器履歴情報などの送信データが複数のパケットに分割される場合に付与されるフラグメントのフラグやフラグメントの番号などが含まれる。また、ヘッダには、機器履歴情報や制御コマンドなどの送信データがグループ鍵を用いて暗号化されている旨の情報が含まれていてもよい。送信元アドレスは、メッセージを送信する機器またはコントローラのアドレスであり、例えば、ＩＰ（Internet Protocol）アドレスやＭＡＣ（Media Access Control）アドレスなどの機器やコントローラを識別できる情報が含まれる。送信先アドレスは、メッセージを受信する機器またはコントローラのアドレスであり、例えば、ＩＰアドレスやＭＡＣアドレスなどの機器やコントローラを識別できる情報が含まれる。送信先アドレスは、一斉同報通信（マルチキャスト送信）の場合、マルチキャストアドレスが含まれる。送信データは、機器履歴情報や制御コマンドやＳＣの変更通知などの送信データが含まれる。
【０２３０】
図に示すように、送信データが暗号化の対象となり、ヘッダと送信元アドレスと送信先アドレスと送信データが認証用データ（ＭＡＣ）の対象となる。すなわち、機器又はコントローラは、グループ鍵を鍵として用い、送信データを平文として暗号化を行う。また、機器又はコントローラは、グループ鍵を鍵として用い、ヘッダと送信元アドレスと送信先アドレスと暗号化される前の送信データとを平文として認証用データを生成する。このとき、暗号化は、ＡＥＳで暗号化し、認証用データは、ＡＥＳのＣＢＣ−ＭＡＣ（Cipher Block Chaining MAC）やＣＭＡＣ（Cipher-based MAC）、ＨＭＡＣ（Hashbased MAC)で生成するとしてもよい。また、暗号化と認証用テ゛ータの生成を、ＡＥＳ−ＣＣＭ（Counter with CBC MAC）やＡＥＳ−ＧＣＭ（Galois/Counter Mode）などの認証付暗号化で行うとしてもよい。認証付暗号化を行う場合でも、暗号化は制御コマンドを平文として用い、認証用データの生成は、ヘッダと送信元アドレスと送信先アドレスと暗号化される前の送信データとを平文として用いるとしてもよい。
【０２３１】
図２７（ｂ）は、暗号化後のメッセージフォーマットである。暗号化後のメッセージにおける認証付暗号化データは、暗号化した送信データと認証用データとを結合したデータである。
【０２３２】
機器からコントローラへ機器履歴情報を一斉同報送信する処理について図２８を参照して説明する。
【０２３３】
（Ｓ２８００）機器は、ペアリングした各コントローラへ送信するメッセージを生成する。具体的には、機器は、まず、メッセージのヘッダと送信元アドレスと送信先アドレスとの設定を行う。そして、接続コントローラ管理テーブル９００のグループ鍵を鍵として用い、機器履歴保持部８５０で保持している機器履歴情報を平文として暗号化し、設定したヘッダと送信元アドレスと送信先アドレスと暗号化される前の機器履歴情報とを平文として認証用データの生成を行う。そして、暗号化した機器履歴情報と生成した認証用データを連結して認証付暗号化データを生成する。
【０２３４】
（Ｓ２８０５）機器は、生成したメッセージを、ペアリングした各コントローラに一斉同報送信する。
【０２３５】
（Ｓ２８１０）コントローラは、ペアリングした機器からメッセージを受信すると、接続機器管理テーブル５００の対応する機器のレコードのグループ鍵を用いて暗号化された機器履歴情報の復号及び認証用データの検証を行う。コントローラは、認証用データの検証に成功した場合に、例えば、復号した機器履歴情報を外部のサーバへの送信などを行う。
【０２３６】
次に、コントローラから機器へ制御コマンドを一斉同報送信する処理について図２９を参照して説明する。
【０２３７】
（Ｓ２９００）コントローラは、外部のサーバからの制御依頼などに基づいて、ペアリングした各機器向けの制御コマンドを生成する。
【０２３８】
（Ｓ２９０５）コントローラは、ペアリングした各機器へ送信するメッセージを生成する。具体的には、コントローラは、まず、メッセージのヘッダと送信元アドレスと送信先アドレスとの設定を行う。そして、接続機器管理テーブル５００の対応する機器のレコードのグループ鍵を鍵として用い、生成した制御コマンドを平文として暗号化し、設定したヘッダと送信元アドレスと送信先アドレスと暗号化される前の制御コマンドとを平文として認証用データの生成を行う。そして、暗号化した制御コマンドと生成した認証用データを連結して認証付暗号化データを生成する。
【０２３９】
（Ｓ２９１０）コントローラは、生成したメッセージを、ペアリングした各機器に一斉同報送信する。
【０２４０】
（Ｓ２９１５）機器は、ペアリングしたコントローラからメッセージを受信すると、接続コントローラ管理テーブル９００のグループ鍵を用いて、暗号化された制御コマンドの復号及び認証用データの検証を行う。
【０２４１】
（Ｓ２９２０）機器は、認証用データの検証に成功した場合、復号した制御コマンドを実行する。
【０２４２】
上記機器履歴情報や制御コマンドの送信において、送信データの暗号化及び認証用データの生成を行うが、実施の形態１で示したＳＣ引継処理におけるＳ１３１０のＳＣの変更通知も同様に暗号化及び認証用データの生成を行ってもよい。また、ＳＣの変更通知に関しては、暗号化は行わず、認証用データの生成のみを行ってもよい。このとき、認証用データは、グループ鍵を鍵として用い、メッセージのヘッダと送信元アドレスと送信先アドレスと通知情報を平文として生成される。通知情報は、ＳＣが変更された旨や変更後のＳＣを示す情報などを含む。そして、メッセージは、通知情報と認証用データとを含んで送信される。これにより、旧ＳＣがＳＣの変更通知に認証用データを付加して送信し、受信した機器やコントローラが認証用データを検証することで、ＳＣの変更通知が改ざんされていないことが保証でき、ＳＣの変更を確実に行うことができる。
【０２４３】
なお、機器履歴情報、制御コマンド、通知などのメッセージの種別によって、暗号化を行うか、認証用データの生成を行うかを決定してもよい。これにより、メッセージを受信した機器やコントローラにおける処理を軽くすることができる。
【０２４４】
なお、コントローラから機器への制御コマンドが複数の制御コマンドから構成される場合、複数の制御コマンドを複数のメッセージとして送信するとしてもよい。このとき、複数のメッセージのヘッダにフラグメントのフラグやフラグメントの番号を付与して送信するとしてもよい。また、メッセージを受信した機器は、ヘッダにフラグメントのフラグが立っている場合、制御コマンドが複数のメッセージから構成されるため、複数のメッセージを受信してから制御コマンドを実行するとしてもよい。このとき、すべてのメッセージで認証用データの生成を実施している場合、複数のメッセージのうちいずれかの認証用データの検証が成功しなかった場合、制御コマンドを実行しないとしてもよい。また、複数のメッセージのうち認証用データの検証が成功しなかった場合、以降のフラグメントフラグのついた複数のメッセージについて、認証用データの検証をせずにメッセージを破棄するとしてもよい。
これにより、受信した機器の処理を軽くすることができる。
【０２４５】
また、すべてのメッセージには認証用データの生成を行わない場合、すべてのメッセージのヘッダや送信元アドレス送信先アドレスおよび制御コマンドを結合したものを平文として認証用データを生成し、最後のメッセージに認証用データを付与するとしてもよい。これにより、認証用データの検証を１回するだけで、すべてのメッセージの完全性を検証することができ、受信した機器の処理を軽くすることができる。
【０２４６】
＜１７＞上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０２４７】
＜１８＞上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Large Scale Integration：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【０２４８】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又はすべてを含むように１チップ化されてもよい。
【０２４９】
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０２５０】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【０２５１】
＜１９＞上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【０２５２】
＜２０＞本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０２５３】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【０２５４】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０２５５】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【０２５６】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０２５７】
＜２１＞上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【０２５８】
（補足）
以下、さらに、本開示の構成について補足説明する。
【０２５９】
＜Ａ＞本開示の一態様の認証方法は、ネットワーク上の１以上の機器と２以上のコントローラとが所属するグループにおける認証方法であって、前記グループ内の少なくとも１つのコントローラが、前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中から各コントローラの属性に応じて決定し、前記コーディネータが、グループ鍵を生成し、前記グループ内の機器およびコントローラと相互認証を実行し、認証に成功した機器およびコントローラと前記生成したグループ鍵を共有し、前記コーディネータが、前記グループ鍵を用いて送信データを暗号化して暗号化データを生成し、前記グループ鍵を用いてヘッダと送信元アドレスと送信先アドレスと前記送信データとから認証用データを生成し、前記グループ内の機器およびコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該暗号化データと当該認証用データとを含むメッセージの一斉同報通信を行うことを特徴とする。
【０２６０】
＜Ｂ＞本開示の一態様の認証方法は、上記態様Ａにおいて、前記送信データは制御コマンドであって、前記メッセージを受信した機器が、前記グループ鍵を用いて前記暗号化データの復号及び前記認証用データの検証を行い、検証に成功した場合、復号された制御コマンドを実行するとしてもよい。
【０２６１】
＜Ｃ＞本開示の一態様の認証方法は、上記態様Ａにおいて、前記暗号化データ及び前記認証用データをＡＥＳ−ＣＣＭで生成するとしてもよい。
【０２６２】
＜Ｄ＞本開示の一態様の認証方法は、ネットワーク上の１以上の機器と第１のコントローラとが所属するグループにおける認証方法であって、前記第１のコントローラが、第１のグループ鍵を生成し、前記グループ内の機器と第１の相互認証を実行し、認証に成功した機器と前記第１のグループ鍵を共有し、前記グループに新たに第２のコントローラが参入した場合、前記グループ内の少なくとも１つのコントローラが、前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中から各コントローラの属性に応じて決定し、前記第１のコントローラが、前記コーディネータと第２の相互認証を実行し、認証に成功した場合に前記第１のグループ鍵を共有し、前記第１のコントローラが、前記第１のグループ鍵を用いてヘッダと送信元アドレスと送信先アドレスとコーディネータの変更を通知するための通知情報とから認証用データを生成し、前記グループ内の機器およびコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該通知情報と当該認証用データとを含む変更通知の一斉同報通信を行い、前記コーディネータが、第２のグループ鍵を生成し、前記グループ内の機器およびコントローラと第３の相互認証を実行し、認証に成功した機器およびコントローラのグループ鍵を前記第２のグループ鍵に更新させることを特徴とする。
【０２６３】
＜Ｅ＞本開示の一態様の認証方法は、上記態様Ｂにおいて、前記コーディネータが、前記第１のグループ鍵を用いて送信データを暗号化して当該暗号化データを生成し、前記第１のグループ鍵を用いてヘッダと送信元アドレスと送信先アドレスと前記送信データとから認証用データを生成し、前記グループ内の機器およびコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該暗号化データと当該認証用データとを含むメッセージの一斉同報通信を行うとしてもよい。
【０２６４】
＜Ｆ＞本開示の一態様の認証方法は、上記態様Ｄにおいて、前記コーディネータが、前記第２のグループ鍵を用いて送信データを暗号化して当該暗号化データを生成し、前記第２のグループ鍵を用いてヘッダと送信元アドレスと送信先アドレスと前記送信データとから認証用データを生成し、前記グループ内の機器およびコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該暗号化データと当該認証用データとを含むメッセージの一斉同報通信を行うとしてもよい。
【０２６５】
＜Ｇ＞本開示の一態様のコントローラは、ネットワーク上の１以上の機器と２以上のコントローラとが所属するグループ内のコントローラであって、前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中から各コントローラの属性に応じて決定するネゴシエータと、自機器が前記コーディネータと決定された場合に、グループ鍵を生成し、前記グループ内の機器およびコントローラと相互認証を実行し、認証に成功した機器およびコントローラと前記生成したグループ鍵を共有する認証処理部とを備え、自機器が前記コーディネータと決定された場合、前記グループ鍵を用いて送信データを暗号化して暗号化データを生成し、前記グループ鍵を用いてヘッダと送信元アドレスと送信先アドレスと前記送信データとから認証用データを生成し、前記グループ内の機器およびコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該暗号化データと当該認証用データとを含むメッセージの一斉同報通信を行うことを特徴とする。
【０２６６】
＜Ｈ＞本開示の一態様のコントローラは、接続部とネゴシエータと認証処理部を備えるコントローラであって、前記接続部は、ネットワーク上の１以上の機器と１以上の他コントローラとが所属するグループであって、前記他コントローラの中の一コントローラが、第１のグループ鍵を生成し、前記グループ内の機器と第１の相互認証を実行し、認証に成功した機器と前記第１のグループ鍵を共有しているグループに接続し、前記ネゴシエータは、前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中から各コントローラの属性に応じて決定し、前記認証処理部は、前記一コントローラと第２の相互認証を実行し、認証に成功した場合に前記第１のグループ鍵を受信し、前記第１のグループ鍵を用いて第１の送信データを暗号化して第１の暗号化データを生成し、前記第１のグループ鍵を用いてヘッダと送信元アドレスと送信先アドレスと前記第１の送信データとから第１の認証用データを生成し、前記グループ内の機器およびコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該第１の暗号化データと当該第１の認証用データとを含むメッセージの一斉同報通信を行い、自機器がコーディネータと決定された場合、第２のグループ鍵を生成し、前記一コントローラから前記グループ内の機器の認証情報を受信し、受信した認証情報を用いて前記グループ内の機器およびコントローラと第３の相互認証を実行し、認証に成功した機器およびコントローラのグループ鍵を前記第２のグループ鍵に更新させ、前記第２のグループ鍵を用いて第２の送信データを暗号化して第２の暗号化データを生成し、前記第２のグループ鍵を用いてヘッダと送信元アドレスと送信先アドレスと前記第２の送信データとから第２の認証用データを生成し、前記グループ内の機器およびコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該第２の暗号化データと当該第２の認証用データとを含むメッセージの一斉同報通信を行うことを特徴とする。
【０２６７】
＜Ｉ＞本開示の一態様のコントローラは、認証処理部とネゴシエータとを備え、ネットワーク上の１以上の機器と１以上のコントローラとが所属するグループ内のコントローラであって、前記認証処理部は、第１のグループ鍵を生成し、前記グループ内の機器と第１の相互認証を実行し、認証に成功した機器と前記第１のグループ鍵を共有し、他コントローラが前記グループに新たに参入した場合において、前記ネゴシエータは、前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中から各コントローラの属性に応じて決定し、前記認証処理部は、前記コーディネータと第２の相互認証を実行し、認証に成功した場合に前記第１のグループ鍵を共有し、前記第１のグループ鍵を用いてヘッダと送信元アドレスと送信先アドレスとコーディネータの変更を通知するための通知情報とから当該認証用データを生成し、前記グループ内の機器およびコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該通知情報と当該認証用データとを含む変更通知の一斉同報通信を行い、前記コーディネータに、前記グループ内の機器の認証情報を送信し、前記コーディネータと第３の相互認証を行い、認証に成功した場合に第２のグループ鍵を受信し、保持するグループ鍵を受信した第２のグループ鍵に更新することを特徴とする。
【０２６８】
＜Ｊ＞本開示の一態様の認証システムは、ネットワーク上のグループに所属する１以上の機器と２以上のコントローラとからなる認証システムであって、前記グループ内のコントローラが、各コントローラの属性に応じて、前記グループ内で共通で利用するグループ鍵を管理するコーディネータを、前記グループ内のコントローラの中から決定し、前記コーディネータが、グループ鍵を生成し、前記コーディネータが、各前記機器および各前記コントローラと相互認証を実行し、前記コーディネータが、相互認証に成功した機器およびコントローラと生成したグループ鍵を共有し、前記コーディネータが、前記グループ鍵を用いて送信データを暗号化して暗号化データを生成し、前記グループ鍵を用いてヘッダと送信元アドレスと送信先アドレスと前記送信データとから認証用データを生成し、前記グループ内の機器およびコントローラに対して当該ヘッダと当該送信元アドレスと当該送信先アドレスと当該暗号化データと当該認証用データとを含むメッセージの一斉同報通信を行うことを特徴とする。
【産業上の利用可能性】
【０２６９】
本開示は、ＨＡＮ等のネットワーク内に構成されたグループ内に複数のコントローラが存在するシステムにおいて、グループ鍵の配布・更新を行うコントローラを適切に決定することができ、様々な機器と複数のコントローラが接続し、互いに通信しながら動作するシステムにおける認証システム等として有用である。
【符号の説明】
【０２７０】
１００  認証システム
１１０  コントローラ
１２０  機器
１３０  ＨＡＮ
１４０  サーバ
１５０  ネットワーク
４１０  機器管理部
４２０  機器情報保持部
４３０  認証処理部
４４０  認証情報保持部
４５０  ネゴシエート部
４６０  操作部
４７０  通信部
８１０  機器管理部
８２０  機器情報保持部
８３０  認証処理部
８４０  認証情報保持部
８５０  機器履歴保持部
８６０  操作部
８７０  通信部
【図１】
2020039154.tif 000003
【図２】
2020039154.tif 000004
【図３】
2020039154.tif 000005
【図４】
2020039154.tif 000006
【図５】
2020039154.tif 000007
【図６】
2020039154.tif 000008
【図７】
2020039154.tif 000009
【図８】
2020039154.tif 000010
【図９】
2020039154.tif 000011
【図１０】
2020039154.tif 000012
【図１１】
2020039154.tif 000013
【図１２】
2020039154.tif 000014
【図１３】
2020039154.tif 000015
【図１４】
2020039154.tif 000016
【図１５】
2020039154.tif 000017
【図１６】
2020039154.tif 000018
【図１７】
2020039154.tif 000019
【図１８】
2020039154.tif 000020
【図１９】
2020039154.tif 000021
【図２０】
2020039154.tif 000022
【図２１】
2020039154.tif 000023
【図２２】
2020039154.tif 000024
【図２３】
2020039154.tif 000025
【図２４】
2020039154.tif 000026
【図２５】
2020039154.tif 000027
【図２６】
2020039154.tif 000028
【図２７】
2020039154.tif 000029
【図２８】
2020039154.tif 000030
【図２９】
2020039154.tif 000031