(57)【要約】【課題】居住空間における消費エネルギーを計測するメータと、居住空間における消費エネルギーを管理する管理システムの間で安全に通信をする。【解決手段】居住者が利用する居住空間における消費エネルギーを計測するメータと、居住空間における消費エネルギーを管理する管理システムと、を含むシステムにおいて、メータと管理システムは、互いにネットワークを介して通信し、メータと管理システムのそれぞれは、前記居住者を識別する居住者ＩＤを保持する。メータと管理システムの一方は、居住者ＩＤと第１情報とを他方から受信し、受信した居住者ＩＤと一方が保持する居住者ＩＤとが一致するかを検証し、居住者ＩＤが一致との検証結果を得た後に、第１情報に応じて共通鍵を決定する。他方は、第１情報に応じて共通鍵を決定する。一方と他方は、共通鍵を用いて互いに通信する。【選択図】図１
2015130549.tif 000002
【特許請求の範囲】
【請求項１】
居住者が利用する居住空間における消費エネルギーを計測するメータと、前記居住空間における消費エネルギーを管理する管理システムと、を含むシステムであって、
前記メータと前記管理システムは、互いにネットワークを介して通信し、
前記メータと前記管理システムのそれぞれは、前記居住者を識別する居住者ＩＤを保持し、
前記メータと前記管理システムの一方は、
前記居住者ＩＤと第１情報とを他方から受信し、
前記受信した居住者ＩＤと前記一方が保持する居住者ＩＤとが一致するかを検証し、
居住者ＩＤが一致との検証結果を得た後に、前記第１情報に応じて共通鍵を決定し、
前記他方は、前記第１情報に応じて共通鍵を決定し、
前記一方と前記他方は、前記共通鍵を用いて互いに通信するシステム。
【請求項２】
請求項１に記載のシステムであって、
前記メータと前記管理システムのそれぞれは、自身が利用可能な鍵交換アルゴリズムの一覧を含む暗号テーブルをさらに保持し、
前記一方は、前記鍵交換アルゴリズムの一覧を前記他方に送信し、
前記他方は、前記第１情報として、前記一方から受信した前記鍵交換アルゴリズムの一覧から自身が利用可能な鍵交換アルゴリズムを選択し、
前記一方は、
前記選択した鍵交換アルゴリズムを前記他方から受信し、
前記選択した鍵交換アルゴリズムに適用する乱数を生成し、
前記乱数を前記選択した鍵交換アルゴリズムに適用して前記共通鍵を決定し、
前記他方は、
前記乱数を前記一方から受信し、
前記乱数を前記選択した鍵交換アルゴリズムに適用して前記共通鍵を決定するシステム。
【請求項３】
請求項１に記載のシステムであって、
前記他方は、
前記居住者ＩＤを前記一方から受信し、
前記一方から受信した居住者ＩＤと前記他方が保持する居住者ＩＤとが一致するかを検証し、
居住者ＩＤが一致との検証結果を得た後に、前記第１情報に応じて共通鍵を決定するシステム。
【請求項４】
請求項１に記載のシステムであって、
前記居住者ＩＤは、前記居住者を識別する情報のハッシュ値であることを特徴とするシステム。
【請求項５】
請求項１に記載のシステムであって、
前記他方は、前記他方の証明書をさらに保持し、
前記一方は、
前記他方の証明書を前記他方から受信し、
前記受信した他方の証明書を検証し、
前記証明書が適正との検証結果を得た後に、前記第１情報に応じて共通鍵を決定するシステム。
【請求項６】
請求項５に記載のシステムであって、
前記他方の居住者ＩＤと前記他方の証明書とを生成する証明書生成サーバをさらに含み、
前記証明書生成サーバは、前記他方のパスワードと、前記証明書生成サーバの私有鍵と、を保持し、
前記他方は、前記他方のパスワードと、前記居住者を識別する情報と、前記他方の第１公開鍵と、をさらに保持し、
前記証明書生成サーバは、
前記他方のパスワードと、前記他方の居住者を識別する情報と、前記第１公開鍵と、を前記他方から受信し、
前記受信した他方のパスワードと前記証明書生成サーバが保持する他方のパスワードとが一致するかを検証し、
他方のパスワードが一致との検証結果を得た後に、前記他方の居住者を識別する情報に基づいて前記他方の居住者ＩＤを生成し、前記第１公開鍵に対して前記証明書生成サーバの私有鍵で署名を施すことで前記他方の証明書を生成し、前記他方の居住者ＩＤと前記他方の証明書とを前記他方に送信するシステム。
【請求項７】
請求項６に記載のシステムであって、
前記他方は、
前記他方の第２公開鍵と、前記第１公開鍵に対応する第１私有鍵と、をさらに保持し、
前記証明書生成サーバは、前記第１公開鍵をさらに保持し、
前記他方は、前記他方の証明書と前記第２公開鍵とに対して、前記第１私有鍵で署名を施し、
前記証明書生成サーバは、
前記署名が施された他方の証明書と前記第２公開鍵とを前記他方から受信し、
前記署名が施された他方の証明書を検証し、前記第１公開鍵を用いて前記署名を検証し、
前記証明書が適正との検証結果と前記署名が適正との検証結果とを得た後に、前記第２公開鍵に対して前記証明書生成サーバの私有鍵で署名を施すことで新しい前記他方の証明書を生成し、新しい前記他方の証明書を前記他方に送信するシステム。
【請求項８】
請求項５に記載のシステムであって、
前記他方の居住者ＩＤと前記他方の証明書とを生成する証明書生成サーバと、前記他方の証明書と前記他方の居住者ＩＤとの生成を前記証明書サーバに依頼する登録端末と、をさらに含み、
前記証明書生成サーバは、前記他方のパスワードと、前記証明書生成サーバの私有鍵と、を保持し、
前記登録端末は、前記他方のパスワードと、前記他方の居住者を識別する情報と、前記第１公開鍵と、を保持し、
前記証明書生成サーバは、
前記他方のパスワードと、前記他方の居住者を識別する情報と、前記他方の公開鍵と、を前記登録端末から受信し、
前記受信した他方のパスワードと前記証明書生成サーバが保持する他方のパスワードとが一致するかを検証し、
パスワードが一致との検証結果を得た後に、前記他方の居住者を識別する情報に基づいて前記他方の居住者ＩＤを生成し、前記第１公開鍵に対して前記証明書生成サーバの私有鍵で署名を施すことで前記他方の証明書を生成し、前記他方の居住者ＩＤと前記他方の証明書とを前記他方に送信し、
前記登録端末は、前記他方の居住者ＩＤと前記他方の証明書とを前記他方に送信するシステム。
【請求項９】
請求項５に記載のシステムであって、
前記他方の居住者ＩＤは、前記他方の証明書の拡張フィールドに格納されているシステム。
【請求項１０】
請求項５に記載のシステムであって、
前記一方は、
居住者ＩＤが一致との検証結果を得た後に、前記第１情報と、前記他方の証明書とを受信するシステム。
【請求項１１】
請求項５に記載のシステムであって、
前記一方は、
前記第１情報を他方から受信し、かつ前記証明書が適正との検証結果を得た後に、前記居住者ＩＤの検証を行うシステム。
【請求項１２】
居住者が利用する居住空間における消費エネルギーを計測するメータと、前記居住空間における消費エネルギーを管理する管理システムとの間におけるネットワークを介した通信方法であって、
前記メータと前記管理システムのそれぞれは、前記居住者を識別する居住者ＩＤを保持し、
前記方法は、
前記メータと前記管理システムの一方が、
前記居住者ＩＤと第１情報とを他方から受信し、
前記受信した居住者ＩＤと前記一方が保持する居住者ＩＤとが一致するかを検証し、
居住者ＩＤが一致との検証結果を得た後に、前記第１情報に応じて共通鍵を決定し、
前記他方が、前記第１情報に応じて共通鍵を決定し、
前記一方と前記他方が、前記共通鍵を用いて互いに通信することを含む方法。
【請求項１３】
居住者が利用する居住空間における消費エネルギーを計測するメータと、前記居住空間における消費エネルギーを管理する管理システムと、を含むシステムにおいて実行されるプログラムであって、
前記メータと前記管理システムは、互いにネットワークを介して通信し、
前記メータと前記管理システムのそれぞれは、前記居住者を識別する居住者ＩＤを保持し、
前記プログラムは、
前記メータと前記管理システムの一方に、
前記居住者ＩＤと第１情報とを他方から受信する手順と、
前記受信した居住者ＩＤと前記メータ一方が保持する居住者ＩＤとが一致するかを検証する手順と、
居住者ＩＤが一致との検証結果を得た後に、前記第１情報に応じて前記他方と通信するための共通鍵を決定する手順と、を実行させ
前記他方に、前記第１情報に応じて前記一方と通信するための共通鍵を決定する手順を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、消費エネルギーを計測するメータと、消費エネルギーを管理する管理システムと、を含むシステムに関する。
【背景技術】
【０００２】
本技術分野の背景技術として、特開２０１２−２１３００９号公報（特許文献１）がある。この公報には、「情報処理装置は、デバイス鍵記憶部と生成部と演算部と通信部と鍵算出部とを備える。デバイス鍵記憶部はデバイス鍵を記憶する。生成部は、デバイス鍵とメディアキーブロックとからメディア鍵を生成する。演算部は、情報処理装置に固有の第１固有情報と公開情報とに基づいて第１出力情報を演算する。通信部は、第１出力情報を外部装置に送信し、外部装置が計算した第２出力情報を外部装置から受信する。鍵算出部は、メディア鍵と第１固有情報と第２出力情報とに基づいて共有鍵を算出する。」と記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２１３００９
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、ＡＭＩ（Ａｄｖａｎｃｅｄ  Ｍｅｔｅｒｉｎｇ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）においては、ＳＭ（Ｓｍａｒｔ  Ｍｅｔｅｒ（登録商標、以下同））がＨＥＭＳ（Ｈｏｍｅ  Ｅｎｅｒｇｙ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）に電力使用量を送信し、ＨＥＭＳが電力使用量を表示することで電力の可視化を行うことができる。
【０００５】
また、例えば、ＭＤＭＳ（Ｍｅｔｅｒ  Ｄａｔａ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）は、ＳＭを経由してＨＥＭＳに、デマンドレスポンス信号（電力抑制要求、発電要求、時間帯ごとの電力使用に関する価格の情報など）を送信することで、家電機器や太陽光発電装置などの機器の制御を行うことができる。
【０００６】
特許文献１に記載の技術を、ＡＭＩにおけるＳＭとＨＥＭＳの共通鍵の共有に適用した場合、以下に述べる問題が生じる。例えば、ＳＭから異なる居住者のＨＥＭＳに電力使用量が漏洩する恐れがある。つまり、居住者の家電機器のスイッチをＯＮ、あるいはＯＦＦにした時刻、といったプライバシ情報が、異なる居住者に漏洩する恐れがある。
【０００７】
また、異なる居住者のＳＭから不正な電力使用量がＨＥＭＳに送信され、居住者が電力使用量を正しく把握できなくなる恐れがある。また、ＳＭからＨＥＭＳにデマンドレスポンス信号を送る際に、ＳＭから異なる居住者のＨＥＭＳにデマンドレスポンス信号が漏洩し、あるいは異なる居住者のＳＭから不正なデマンドレスポンス信号が送信され、機器の制御が不正に行われる恐れがある。
【課題を解決するための手段】
【０００８】
本発明の一態様は、居住者が利用する居住空間における消費エネルギーを計測するメータと、前記居住空間における消費エネルギーを管理する管理システムと、を含むシステムであって、前記メータと前記管理システムは、互いにネットワークを介して通信し、前記メータと前記管理システムのそれぞれは、前記居住者を識別する居住者ＩＤを保持し、前記メータと前記管理システムの一方は、前記居住者ＩＤと第１情報とを他方から受信し、前記受信した居住者ＩＤと前記一方が保持する居住者ＩＤとが一致するかを検証し、居住者ＩＤが一致との検証結果を得た後に、前記第１情報に応じて共通鍵を決定し、前記他方は、前記第１情報に応じて共通鍵を決定し、前記一方と前記他方は、前記共通鍵を用いて互いに通信する。
【発明の効果】
【０００９】
本発明によれば、エネルギーメータと管理システムが同一の居住者の機器同士であることを、判別した上で共通鍵を共有することが可能となる。その結果、エネルギーメータと管理システムの通信時における安全性が高まる。
【図面の簡単な説明】
【００１０】
【図１】実施例１において、共通鍵共有システムの機能構成例を示すブロック図である。
【図２】実施例１において、ＳＭ証明書発行処理の一例を示すフロー図である。
【図３】実施例１において、ＨＥＭＳ証明書発行処理の一例を示すフロー図である。
【図４】実施例１において、Ｂルート鍵共有処理の一例を示すフロー図である。
【図５】実施例１において、電力使用量可視化処理の一例を示すフロー図である。
【図６】実施例１において、デマンドレスポンス処理の一例を示すフロー図である。
【図７】実施例１において、ＳＭ証明書更新処理の一例を示すフロー図である。
【図８】実施例１において、ＨＥＭＳ証明書更新処理の一例を示すフロー図である。
【図９】実施例１において、Ｂルート鍵無効化処理の一例を示すフロー図である。
【図１０】実施例２において、共通鍵共有システムの機能構成例を示すブロック図である。
【図１１】実施例２において、ＳＭ証明書発行処理の一例を示すフロー図である。
【図１２】実施例２において、ＨＥＭＳ証明書発行処理の一例を示すフロー図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施例を、図面を参照して説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【実施例１】
【００１２】
図１は、本実施例におけるシステムの構成例を示す。共通鍵共有システムは、居住者の利用する居住空間における電力使用量を計測し、保持するＳＭ１００と、居住空間における電力使用量の管理（例えば、電力使用量の表示、家電機器や太陽光発電装置などの制御）を行うＨＥＭＳ２００と、デマンドレスポンス信号をＳＭ１００に送信するＭＤＭＳ３００と、ＨＥＭＳ２００の証明書を発行するＨＥＭＳサーバ４００を含む。
【００１３】
なお、ＳＭ１００は電力使用量に限らず、居住空間における他の消費エネルギーを計測してもよく、このときＨＥＭＳ２００は当該他の消費エネルギーの管理を行う。例えば、ＳＭ１００は居住空間におけるガスの使用量を計測してもよく、このときＨＥＭＳ２００はガス使用量の管理を行う。また、例えば、ＳＭ１００は居住空間における水道の使用量を計測してもよく、このときＨＥＭＳ２００は水道使用量の管理を行う。
【００１４】
ＳＭ１００とＭＤＭＳ３００は、例えばインターネット、キャリア網などを用いて通信を行い、当該通信路は「Ａルート」と呼ばれる。ＳＭ１００とＨＥＭＳ２００は、例えば有線、無線、ＰＬＣ（電力線汎用通信）などを用いて通信を行い、当該通信路は「Ｂルート」と呼ばれる。ＨＥＭＳ２００とＨＥＭＳサーバ４００は、例えばインターネット、キャリア網などを用いて通信を行い、当該通信路は「Ｃルート」と呼ばれる。ＭＤＭＳ３００とＨＥＭＳサーバ４００は、例えばインターネット、キャリア網などを用いて通信を行う。また、ＳＭ１００とＨＥＭＳ２００は、同一の居住者宅に複数台存在してもよい。
【００１５】
ＳＭ１００は、プロセッサであるＣＰＵ１４０と、主記憶装置であるメモリ１５０と、補助記憶装置であるＨＤＤ１６０と、通信Ｉ／Ｆ１７０と、入力装置１８０と、出力装置１９０と、を含む。メモリ１５０は、ＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）ハンドシェイク機能１０１と、居住者ＩＤ検証機能１０２と、暗号・復号・署名機能１０３と、鍵生成機能１０４と、鍵無効化機能１０５と、住所・パスワード取得機能１０６と、を格納する。
【００１６】
ＴＬＳハンドシェイク機能１０１は、ＴＬＳハンドシェイクプロトコルを用いて機器認証と鍵交換を行う。居住者ＩＤ検証機能１０２は、ＨＥＭＳ２００から受信した居住者ＩＤが居住者ＩＤ１２１と一致するかを検証する。
【００１７】
暗号・復号・署名機能１０３は、データの暗号化、復号化、署名の生成、証明書の検証、及び署名の検証等を行う。鍵生成機能１０４は、私有鍵と公開鍵のペア、及び共通鍵を生成する。鍵無効化機能１０５は、Ｂルート鍵を無効化する。住所・パスワード取得機能１０６は、住所とパスワードを取得する。なお、住所・パスワード取得機能１０６は、住所の代わりに、居住者を一意に識別する情報（例えば、居住者の氏名、電話番号等）を取得してもよい。
【００１８】
なお、上述した各機能は、それぞれプログラムである。各プログラムはＣＰＵ１４０によって実行されることで、定められた処理を記憶装置及び通信ポート（通信デバイス）を用いながら行う。従って、本実施例及び他の実施例において各機能を主語とする説明は、ＣＰＵ１４０を主語とした説明でもよい。
【００１９】
若しくは、各機能が実行する処理は、そのプログラムが動作する計算機及び計算機システムが行う処理である。ＣＰＵ１４０は、プログラムに従って動作することによって、所定の機能を実現する機能部（手段）として動作する。ＨＥＭＳ２００、ＭＤＭＳ３００、ＨＥＭＳサーバ４００、後述するＳＭ登録端末５００、及び後述するＨＥＭＳ登録端末６００のメモリに格納される各機能についても同様である。
【００２０】
ＨＤＤ１６０は、ＭＤＭＳ公開鍵を含むルート証明書１１１と、ＳＭ私有鍵１１２と、ＳＭ公開鍵と居住者ＩＤ１２１とを含むＳＭ証明書１２０と、居住者宅の電力使用量１３０と、ＳＭ１００とＭＤＭＳ３００の共通鍵であるＡルート鍵１３１と、ＳＭ１００とＨＥＭＳ２００の共通鍵であるＢルート鍵１３２と、暗号テーブル１３３と、を保持する。
【００２１】
ルート証明書１１１は、ＳＭ１００を居住者宅に設置する前に書き込まれている。ＳＭ私有鍵１１２とＳＭ証明書１２０は、後述するステップＳ１１２において、ＳＭ１００により書き込まれる。Ａルート鍵１３１は、ＳＭ１００を居住者宅に設置する前にＭＤＭＳ３００と予め共有されている。または、ＳＭ１００とＭＤＭＳ３００は、予めＡルート鍵１３１を共有せずに、ＳＭ１００が居住者宅に設置された後に、ＴＬＳハンドシェイクプロトコルを用いて互いに機器認証した上で、Ａルート鍵１３１を交換してもよい。
【００２２】
Ｂルート鍵１３２は、後述するステップＳ３１１において、ＳＭ１００により書き込まれる。暗号テーブル１３３は、ＳＭ１００が利用可能な暗号スイートの識別子と、予め定められた暗号スイートの優先順位と、を格納する。なお、暗号スイートとは、認証アルゴリズムと、鍵交換アルゴリズムと、暗号化アルゴリズムと、ハッシュアルゴリズム、それぞれのアルゴリズムの組である。
【００２３】
ＨＥＭＳ２００は、プロセッサであるＣＰＵ２４０と、主記憶装置であるメモリ２５０と、補助記憶装置であるＨＤＤ２６０と、通信Ｉ／Ｆ２７０と、入力装置２８０と、出力装置２９０と、を含む。メモリ２５０は、ＴＬＳハンドシェイク機能２０１と、居住者ＩＤ検証機能２０２と、暗号・復号・署名機能２０３と、鍵生成機能２０４と、鍵無効化機能２０５と、住所・パスワード取得機能２０６と、を格納する。居住者ＩＤ検証機能２０２は、ＳＭ１００から受信した居住者ＩＤが居住者ＩＤ２２１と一致するかを検証する。ＨＥＭＳ２００のメモリ２５０に格納されるその他の各機能は、ＳＭ１００のメモリ１５０に格納される各機能と同様である。
【００２４】
ＨＤＤ２６０は、ＭＤＭＳ公開鍵を含むルート証明書２１１と、ＨＥＭＳサーバ公開鍵を含むＨＥＭＳサーバ証明書２１２と、ＨＥＭＳ私有鍵２１３と、ＨＥＭＳ公開鍵と居住者ＩＤ２２１を含むＨＥＭＳ証明書２２０と、Ｂルート鍵２３０と、ＨＥＭＳ２００とＨＥＭＳサーバ４００の共通鍵であるＣルート鍵２３１と、暗号テーブル２３３と、を含む。
【００２５】
ルート証明書２１１と、ＨＥＭＳサーバ証明書２１２は、ＨＥＭＳ２００を居住者宅に設置する前に書き込まれている。暗号テーブル２３３は、例えば、ＨＥＭＳ２００が利用可能な暗号スイートと、予め定められた暗号スイートの優先順位と、を格納する。
【００２６】
ＨＥＭＳ私有鍵２１３とＨＥＭＳ証明書２２０は、後述するステップＳ２１２において、ＨＥＭＳ２００によって、書き込まれる。Ｂルート鍵２３０は、後述するステップＳ３１０において、ＨＥＭＳ２００によって、書き込まれる。Ｃルート鍵２３１は、ＨＥＭＳ２００を設置する前にＨＥＭＳサーバ４００と予め共有されている。または、ＨＥＭＳ２００とＨＥＭＳサーバ４００は、予めＣルート鍵２３１を共有せずに、ＨＥＭＳ２００が設置された後にＴＬＳハンドシェイクプロトコルを用いて互いに機器認証した上で、Ｃルート鍵２３１を交換してもよい。
【００２７】
ＭＤＭＳ３００は、プロセッサであるＣＰＵ３４０と、主記憶装置であるメモリ３５０と、補助記憶装置であるＨＤＤ３６０と、通信Ｉ／Ｆ３７０と、入力装置３８０と、出力装置３９０と、を含む。メモリ３５０は、居住者ＩＤを生成する居住者ＩＤ生成機能３０１と、証明書を生成する証明書生成機能３０２と、データの暗号化、復号化や署名生成を行う暗号・復号・署名機能３０３と、ＳＭ１００から受信したパスワードがパスワード３１３と一致するかを検証するパスワード検証機能３０４と、を含む。
【００２８】
ＨＤＤ３６０は、ＭＤＭＳ私有鍵３１１と、ＭＤＭＳ公開鍵を含むルート証明書３１２と、パスワード３１３と、Ａルート鍵３１４と、を保持する。ＭＤＭＳ私有鍵３１１、ルート証明書３１２、パスワード３１３は、ＭＤＭＳ３００が導入された後に書き込まれる。Ａルート鍵３１４は、ＳＭ１００毎に異なっていてもよいし、同一でもよい。
【００２９】
ＨＥＭＳサーバ４００は、プロセッサであるＣＰＵ４４０と、主記憶装置であるメモリ４５０と、補助記憶装置であるＨＤＤ４６０と、通信Ｉ／Ｆ４７０と、入力装置４８０と、出力装置４９０と、を含む。メモリ４５０は、居住者ＩＤ生成機能４０１と、証明書生成機能４０２と、暗号・復号・署名機能４０３と、パスワード検証機能４０４と、を格納する。パスワード検証機能４０４は、ＨＥＭＳ２００から受信したパスワードがパスワード４１４と一致するかを検証する。ＨＥＭＳサーバ４００のメモリ４５０に格納されるその他の各機能は、ＭＤＭＳ３００のメモリ３５０に格納される各機能と同様である。
【００３０】
ＨＤＤ４６０は、ＨＥＭＳサーバ私有鍵４１１と、ＭＤＭＳ公開鍵を含むルート証明書４１２と、ＨＥＭＳサーバ公開鍵を含むＨＥＭＳサーバ証明書４１３と、パスワード４１４と、Ｃルート鍵４１５と、を保持する。ＨＥＭＳサーバ私有鍵４１１、ルート証明書４１２、パスワード４１４は、ＨＥＭＳサーバ４００の導入された後に書き込まれる。ＭＤＭＳ３００は、ＨＥＭＳサーバ４００が導入された後にＨＥＭＳサーバ証明書４１３を発行する。Ｃルート鍵４１５は、ＨＥＭＳ２００毎に異なってもよいし、同一の鍵でもよい。
【００３１】
なお、本実施例の共通鍵共有システムを、ＨＥＭＳサーバ４００を用いない構成とすることができる。このとき例えば、ＭＤＭＳ３００や外部機関が、ＨＥＭＳサーバ４００の代わりにＨＥＭＳ証明書２２０を発行すればよい。ＭＤＭＳ３００がＨＥＭＳ証明書２２０を発行する場合は、ＭＤＭＳ３００とＨＥＭＳ２００とを接続し、ＭＤＭＳ３００とＨＥＭＳ２００の共通鍵を各々のＨＤＤが保持する必要がある。
【００３２】
同様に、本実施例の共通鍵共有システムを、ＭＤＭＳ３００を用いない構成とすることもできる。このとき例えば、ＨＥＭＳサーバ４００や外部機関が、ＭＤＭＳの代わりにＳＭ証明書１２０を発行すればよい。ＨＥＭＳサーバ４００がＳＭ証明書１２０を発行する場合は、ＨＥＭＳサーバ４００とＳＭ１００とを接続し、ＨＥＭＳサーバ４００とＳＭ１００の共通鍵を各々のＨＤＤが保持する必要がある。
【００３３】
本実施例の共通鍵共有システムにおいて、ＭＤＭＳ３００とＨＥＭＳサーバ４００の少なくとも一方を用いない構成とすると、ＳＭ１００に送信する居住者ＩＤ１２１と、ＨＥＭＳ２００に送信する居住者ＩＤ２２１を、１つの装置が生成することになる。従って、ＭＤＭＳ３００とＨＥＭＳサーバ４００とが、居住者ＩＤを生成するためのアルゴリズム、及びパラメータを、共有しておく必要がないため、当該アルゴリズム、及び当該パラメータを容易に変更できる。
【００３４】
図２は、本実施例におけるＳＭ証明書発行の処理手順およびデータの流れの一例を示すフローチャートである。本処理は、ＳＭ１００を居住者宅に設置した後に、設置担当者などが証明書発行依頼者となって行う。
【００３５】
ＳＭ１００の住所・パスワード取得機能１０６は、証明書発行依頼者から、住所とパスワードを取得する（Ｓ１０１）。証明書発行依頼者から住所とパスワードを取得する方法として、例えば、住所・パスワード取得機能１０６は、証明書発行依頼者がＳＭ１００に直接入力した住所とパスワードを取得すればよい。また、住所・パスワード取得機能１０６は、証明書発行依頼者がハンディターミナル、ＰＣなどの端末に入力され、当該端末を経由してＳＭ１００が受信した住所とパスワードを取得するようにしてもよい。
【００３６】
ＳＭ１００の鍵生成機能１０４は、公開鍵暗号方式を利用してＳＭ私有鍵１１２とＳＭ公開鍵のペアを生成する（Ｓ１０２）。なお、鍵生成機能１０４は、公開鍵暗号方式として、例えばＲＳＡ暗号、ＥｌＧａｍａｌ暗号、楕円曲線暗号など、どのような方式を用いてもよい。
【００３７】
ＳＭ１００の暗号・復号・署名機能１０３は、ＳＭ公開鍵、住所、及びパスワードをルート証明書１１１に含まれるＭＤＭＳ公開鍵で暗号化する（Ｓ１０３）。あるいは、ＳＭ１００の暗号・復号・署名機能１０３は、ＳＭ公開鍵、住所、及びパスワードをＡルート鍵１３１で暗号化してもよい。ＳＭ１００は、暗号化されたＳＭ公開鍵、住所、及びパスワードを、通信Ｉ／Ｆ１７０を介して、ＭＤＭＳ３００に送信する（Ｓ１０４）。
【００３８】
ＭＤＭＳ３００の暗号・復号・署名機能３０３は、ＳＭ公開鍵、住所、及びパスワードを、ＭＤＭＳ私有鍵３１１で復号する（Ｓ１０５）。なお、ステップＳ１０３において、ＳＭ１００の暗号・復号・署名機能１０３が、ＳＭ公開鍵、住所、及びパスワードをＡルート鍵１３１で暗号化した場合は、ＭＤＭＳ３００の暗号・復号・署名機能３０３は、ＳＭ公開鍵、住所、パスワードをＡルート鍵３１４で復号する。
【００３９】
ＭＤＭＳ３００のパスワード検証機能３０４は、復号したパスワードがパスワード３１３と一致するか否かを検証する（Ｓ１０６）。一致した場合は、ステップＳ１０７に進む。一致しなかった場合は、ＭＤＭＳ３００は、エラーメッセージをＳＭ１００に送るあるいは何もせずに終了してもよい。
【００４０】
ＭＤＭＳ３００の居住者ＩＤ生成機能３０１は、例えば、復号した居住者の住所のハッシュ値を算出し、これを居住者ＩＤ１２１とする（Ｓ１０７）。居住者ＩＤ１２１は、ＳＭ１００とＨＥＭＳ２００とが、それぞれ同一の居住者の端末同士であることを判別するために用いられる。居住者ＩＤの算出に用いられる情報としては、上述した住所に限らず、例えば、居住者の氏名に電話番号を付加した文字列など、居住者を一意に識別できる情報であればよい。
【００４１】
なお、住所以外の情報に基づいて居住者ＩＤ１２１を生成する場合は、ステップＳ１０１において住所・パスワード取得機能１０６は、当該情報を取得しておく必要がある。また、ＭＤＭＳ３００が生成する居住者ＩＤ１２１とＨＥＭＳサーバ４００が生成する居住者ＩＤ２２１は同一でなければならないため、ＭＤＭＳ３００は、居住者ＩＤ１２１を生成するアルゴリズム、及びパラメータを予めＨＥＭＳサーバ４００と共有しておく。または、ＭＤＭＳ３００は、居住者ＩＤ１２１を生成した際に、居住者ＩＤを生成するために利用したアルゴリズム、及びパラメータをＨＥＭＳサーバ４００に通知してもよい。
【００４２】
ＭＤＭＳ３００の証明書生成機能３０２は、復号したＳＭ公開鍵と、居住者ＩＤに対してＭＤＭＳ私有鍵３１１で署名を施すことで、ＳＭ証明書１２０を生成する（Ｓ１０８）。このとき、ＭＤＭＳ３００の証明書生成機能は３０２、居住者ＩＤを、ＳＭ証明書１２０の拡張フィールドなどに格納する。
【００４３】
ＭＤＭＳ３００の暗号・復号・署名機能３０３は、復号したＳＭ公開鍵でＳＭ証明書１２０を暗号化する（Ｓ１０９）。また、ＭＤＭＳ３００の暗号・復号・署名機能３０３は、Ａルート鍵３１４でＳＭ証明書１２０を暗号化してもよい。ＭＤＭＳ３００は、暗号化されたＳＭ証明書１２０を、通信Ｉ／Ｆ３０５を介して、ＳＭ１００に送信する（Ｓ１１０）。
【００４４】
ＳＭ１００の暗号・復号・署名機能１０３は、ＳＭ証明書１２０をＳＭ私有鍵１１２で復号する（Ｓ１１１）。ステップＳ１０９において、ＳＭ証明書１２０がＡルート鍵３１４で暗号化されている場合は、ＳＭ１００の暗号・復号・署名機能１０３は、ＳＭ証明書１２０をＡルート鍵１３１で復号する。続いて、ＳＭ１００は、ＳＭ私有鍵１１２とＳＭ証明書１２０を、ＨＤＤ１６０に書き込む（Ｓ１１２）。
【００４５】
なお、ステップＳ１０８において、ＭＤＭＳ３００の証明書生成機能３０２が、居住者ＩＤをＳＭ証明書１２０の拡張フィールドに格納せず、ＭＤＭＳ３００の暗号・復号・署名機能３０３が、居住者ＩＤにＭＤＭＳ私有鍵３１１で署名を施してもよい。この場合、ステップＳ１０９〜ステップＳ１１２におけるＳＭ証明書１２０を、ＳＭ証明書１２０と居住者ＩＤ、とすればよい。
【００４６】
上述したように図２の処理では、ＳＭ１００とＭＤＭＳ３００が、互いにデータをやり取りする際には、互いの公開鍵で当該データを暗号化した上で行う。この代わりに、例えば、ＳＭ１００とＭＤＭＳ３００は、ＴＬＳハンドシェイクプロトコルなどを用いて相互認証と共通鍵の交換を行った上で、共通鍵を用いて暗号通信を行うようにしてもよい。
【００４７】
また、ＳＭ私有鍵１１２と、ＳＭ公開鍵を含むＳＭ証明書１２０（居住者ＩＤ１１２を含まない）とを、ＳＭ１００を居住者宅に設置する前に、あらかじめＳＭ１００のＨＤＤ１６０に格納しておいてもよい。この場合、ステップＳ１０２では、ＳＭ私有鍵とＳＭ公開鍵を作成せず、ステップＳ１０３以降では、ＳＭ公開鍵の代わりにＳＭ証明書１２０を用いればよい。このとき、ＳＭ１００が公開鍵と私有鍵のペアを作成する必要がなくなるため、リソースを有効活用することができる。また、証明書発行までの時間を短縮することができる。
【００４８】
このように本実施例では、ステップＳ１０７に示されているように、居住者ＩＤ生成機能３０１が、例えば、居住者の住所のハッシュ値や、居住者の氏名に電話番号を付加した文字列のハッシュ値を算出し、これを居住者ＩＤとする。ハッシュ値を居住者ＩＤとすることで、ＳＭ証明書１２０が漏洩しても、そこから住所、氏名、電話番号等を特定することが困難となる。その結果、個人情報の漏洩を防ぐことができ、安全性が高まる。
【００４９】
また、本実施例では、ステップＳ１０６に示されているように、ＭＤＭＳ３００のパスワード検証機能３０４が、パスワードの検証を行う。ＭＤＭＳ３００のパスワード検証機能３０４が、パスワードの検証を行うことで、悪意を持った居住者などの攻撃者が、他人の住所を入力して、他人の居住者ＩＤが含まれたＳＭ証明書１２０を取得することを防ぐことができる。その結果、異なる居住者間のＳＭ１００とＨＥＭＳ２００で共通鍵が共有されるのを防ぐことが可能となり、安全性が高まる。
【００５０】
図３は、本実施例におけるＨＥＭＳ証明書発行の処理手順およびデータの流れの一例を示すフローチャートである。本処理は、ＨＥＭＳ２００を居住者宅に設置した後に、設置担当者などが証明書発行依頼者となって行う。あるいは、あらかじめパスワードを知らされた居住者が証明書発行依頼者となって、本処理を行うようにしてもよい。
【００５１】
ステップＳ２０１〜ステップＳ２１２における処理、及びデータの流れは、それぞれステップＳ１０１〜ステップＳ１１２と同様である。具体的には、ステップＳ２０１〜ステップＳ２１２は、ステップＳ１０１〜ステップＳ１１２において、それぞれ以下のように各構成を置き換えたものと同等である。
【００５２】
ＳＭ１００をＨＥＭＳ２００に、ＳＭ１００の各機能をＨＥＭＳ２００の対応する各機能に、ＭＤＭＳ３００をＨＥＭＳサーバ４００に、ＭＤＭＳ３００の各機能をＨＥＭＳサーバ４００の対応する各機能に、それぞれ置き換える。
【００５３】
さらに、ＳＭ私有鍵１１２をＨＥＭＳ私有鍵２１３に、ＳＭ公開鍵をＨＥＭＳ公開鍵に、ＳＭ証明書１２０をＨＥＭＳ証明書２２０に、ＭＤＭＳ公開鍵をＨＥＭＳサーバ公開鍵に、ＭＤＭＳ私有鍵３１１をＨＥＭＳサーバ私有鍵４１１に、ルート証明書１１１をＨＥＭＳサーバ証明書２１２に、Ａルート鍵１３１をＣルート鍵２３１に、Ａルート鍵３１４をＣルート鍵４１５に、それぞれ置き換える。
【００５４】
なお、ステップＳ１０８において、ＭＤＭＳ３００が居住者ＩＤをＳＭ証明書１２０の拡張フィールドに格納し、かつステップＳ２０８においてＨＥＭＳサーバ４００が居住者ＩＤをＨＥＭＳ証明書２２０の拡張フィールドに格納した場合には、ＳＭ１００とＨＥＭＳ２００が、証明書を交換すると同時に居住者ＩＤも交換されるため、ＳＭ１００とＨＥＭＳ間の相互認証、及びＢルート鍵の共有にＴＬＳハンドシェイクプロトコルのライブラリをそのまま用いることができる。ＴＬＳハンドシェイクプロトコルを用いたＳＭ１００とＨＥＭＳ間の相互認証、及びＢルート鍵共有については後述する。
【００５５】
図４は、本実施例におけるＢルート鍵共有の処理手順およびデータの流れの一例を示すフローチャートである。本処理は、ＳＭ１００がＳＭ証明書１２０をＨＤＤ１６０に、ＨＥＭＳ２００がＨＥＭＳ証明書２２０をＨＤＤ２６０に書き込んだ後に実行する。本処理はＴＬＳハンドシェイクプロトコルに、ＳＭ１００とＨＥＭＳ２００がお互いの居住者ＩＤを検証する処理を加えたものである。
【００５６】
ＨＥＭＳ２００は、通信の開始をＳＭ１００に通知する。具体的には、ＨＥＭＳ２００のＴＬＳハンドシェイク機能２０１は、ＨＥＭＳ２００が利用可能な暗号スイート、即ち暗号テーブル２３３に格納された暗号スイートの一覧を送信する（Ｃｌｉｅｎｔ  Ｈｅｌｌｏ）（Ｓ３０１）。
【００５７】
ＳＭ１００のＴＬＳハンドシェイク機能１０１は、ＨＥＭＳ２００から受信した暗号スイートの一覧から、使用する暗号スイートを決定し、ＨＥＭＳ２００に通知する（Ｓｅｒｖｅｒ  Ｈｅｌｌｏ）。その後、ＳＭ証明書１２０をＨＥＭＳ２００に送信する（Ｃｅｒｔｉｆｉｃａｔｅ）。その後、ＨＥＭＳ証明書２２０の送信要求をＨＥＭＳ２００に送信する（Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｑｕｅｓｔ）。その後、一連のメッセージが完了したことをＨＥＭＳ２００に通知する（Ｓｅｒｖｅｒ  Ｈｅｌｌｏ  Ｄｏｎｅ）（Ｓ３０２）。
【００５８】
なお、上述した暗号スイートの決定方法として、例えば、ＳＭ１００は、ＨＥＭＳ２００から受信した暗号スイートのうち、ＳＭ１００が利用可能（即ち、ＳＭ１００の暗号テーブル１３３に格納されている）、かつ予め定められた優先順位が最も高いものを選択すればよい。
【００５９】
ＨＥＭＳ２００は、ＳＭ証明書１２０に含まれる居住者ＩＤ１２１と、ＨＥＭＳ証明書に含まれる居住者ＩＤ２２１が一致するか否かを検証する（Ｓ３０３）。２つの居住者ＩＤが一致すれば次のステップに進む。一致しなかった場合は、ＨＥＭＳ２００は、エラーメッセージをＳＭ１００に送信するか、あるいは、何もせずに図４における処理を終了してもよい。
【００６０】
ＨＥＭＳ２００のＴＬＳハンドシェイク機能２０１は、ＳＭ証明書１２０が正しいことを検証する。具体的には、ＨＥＭＳ２００のＴＬＳハンドシェイク機能２０１は、ＳＭ証明書１２０に含まれる署名がＭＤＭＳ３００によって施されたということを、ルート証明書２１１に含まれるＭＤＭＳ公開鍵を用いて検証する（ステップＳ３０４）。
【００６１】
ＨＥＭＳ２００のＴＬＳハンドシェイク機能２０１は、ＨＥＭＳ証明書２２０とＨＥＭＳサーバ証明書２１２をＳＭ１００に送信する（Ｃｅｒｔｉｆｉｃａｔｅ）。その後、ＨＥＭＳ２００のＴＬＳハンドシェイク機能２０１は、Ｂルート鍵を生成するための乱数（プリマスタシークレット）を生成する。ＨＥＭＳ２００の暗号・復号・署名機能２０３は、生成されたプリマスタシークレットをＳＭ証明書１２０に含まれるＳＭ公開鍵を用いて暗号化する。ＨＥＭＳ２００のＴＬＳハンドシェイク機能２０１は、暗号化されたプリマスタシークレットをＳＭ１００に送信する（Ｃｌｉｅｎｔ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ）。
【００６２】
その後、ＨＥＭＳ２００の暗号・復号・署名機能２０３は、Ｃｌｉｅｎｔ  ＨｅｌｌｏからＣｌｉｅｎｔ  Ｋｅｙ  ＥｘｃｈａｎｇｅまでのメッセージにＨＥＭＳ私有鍵２１３を用いて署名を施す。ＨＥＭＳ２００のＴＬＳハンドシェイク機能２０１は、暗号化された当該メッセージをＳＭ１００に送信する（Ｃｅｒｔｉｆｉｃａｔｅ  Ｖｅｒｉｆｙ）。
【００６３】
その後、ＨＥＭＳ２００の鍵生成機能２０４は、ステップＳ３０２において決定された暗号スイートに含まれる鍵交換アルゴリズムを用いて、プリマスタシークレットからＢルート鍵２３０を生成する。続いて、ＨＥＭＳ２００のＴＬＳハンドシェイク機能２０１は、準備が整ったことをＳＭ１００に通知する（Ｃｈａｎｇｅ  Ｃｉｐｈｅｒ  Ｓｐｅｃ）。その後、ＨＥＭＳ２００の暗号・復号・署名機能２０３は、一連のメッセージが完了したことを示すメッセージを、Ｂルート鍵２３０を用いて暗号化する。ＨＥＭＳ２００のＴＬＳハンドシェイク機能２０１は、一連のメッセージが完了したことを示すメッセージをＳＭ１００に送信する（Ｆｉｎｉｓｈｅｄ）（Ｓ３０５）。
【００６４】
ＳＭ１００の居住者ＩＤ検証機能１０２は、ＨＥＭＳ証明書２２０に含まれる居住者ＩＤ２２１と、ＳＭ証明書に含まれる居住者ＩＤ１２１が一致するか否かを検証する（Ｓ３０６）。２つの居住者ＩＤが一致すれば次のステップに進む。一致しなかった場合、ＳＭ１００は、エラーメッセージをＨＥＭＳ２００に送信するか、あるいは、ＳＭ１００は、何もせずに図４における処理を終了してもよい。
【００６５】
ＳＭ１００のＴＬＳハンドシェイク機能１０１は、ＨＥＭＳ証明書２２０とＨＥＭＳサーバ証明書２１２が正しいことを検証する。具体的には、ＳＭ１００のＴＬＳハンドシェイク機能１０１は、ＨＥＭＳ証明書２２０に含まれる署名がＨＥＭＳサーバ４００によって施されたということを、ＨＥＭＳサーバ証明書２１２に含まれるＨＥＭＳサーバ公開鍵を用いて検証する。また、ＳＭ１００のＴＬＳハンドシェイク機能１０１は、ＨＥＭＳサーバ証明書２１２に含まれる署名がＭＤＭＳ３００によって施されたということを、ルート証明書１１１に含まれるＭＤＭＳ公開鍵を用いて検証する（Ｓ３０７）。
【００６６】
ＳＭ１００のＴＬＳハンドシェイク機能１０１は、Ｃｌｉｅｎｔ  ＨｅｌｌｏからＣｌｉｅｎｔ  Ｋｅｙ  Ｅｘｃｈａｎｇｅまでのメッセージの署名が正しいことを、ＨＥＭＳ証明書２２０に含まれるＨＥＭＳ公開鍵を用いて検証する（Ｓ３０８）。
【００６７】
ＳＭ１００の暗号・復号・署名機能１０３は、プリマスタシークレットをＳＭ私有鍵１１２で復号する。ＳＭ１００の鍵生成機能１０４は、ステップＳ３０２において決定された暗号スイートに含まれる鍵交換アルゴリズムを用いて、プリマスタシークレットからＢルート鍵１３２を生成する。ＳＭ１００のＴＬＳハンドシェイク機能１０１は、準備が整ったことをサーバに通知する（Ｃｈａｎｇｅ  Ｃｉｐｈｅｒ  Ｓｐｅｃ）。
【００６８】
その後、ＳＭ１００の暗号・復号・署名機能１０３は、一連のメッセージが完了したことを示すメッセージを、Ｂルート鍵１３２を用いて暗号化する。ＳＭ１００のＴＬＳハンドシェイク機能１０１は、当該メッセージをＨＥＭＳ２００に通知する（Ｆｉｎｉｓｈｅｄ）（Ｓ３０９）。続いて、ＨＥＭＳ２００は、Ｂルート鍵２３０をＨＤＤ２６０に書き込む（Ｓ３１０）。ＳＭ１００は、Ｂルート鍵１３２をＨＤＤ１６０に書き込む（Ｓ３１１）。
【００６９】
なお、ＨＥＭＳ２００とＳＭ１００は、居住者ＩＤの検証処理（即ち、ステップＳ３０３、Ｓ３０６）を、ステップＳ３０１の前、若しくはステップＳ３０９の後に、ＳＭ１００とＨＥＭＳ２００がお互いの証明書と居住者ＩＤを交換した上で行うようにしてもよい。
【００７０】
このように、ＳＭ１００とＨＥＭＳ２００は、居住者ＩＤの検証処理をＴＬＳハンドシェイクプロトコルの前、若しくは後に行うことで、ＳＭ１００とＨＥＭＳ間の相互認証、及びＢルート鍵の共有に、ＴＬＳハンドシェイクプロトコルのライブラリをそのまま用いることができる。
【００７１】
また、ＳＭ１００とＨＥＭＳ２００は、他の居住者のＳＭ１００、又はＨＥＭＳ２００からメッセージを受信した際には、居住者ＩＤが一致しないため、居住者ＩＤの検証処理をもって図４における処理を終了させる。従って、ＳＭ１００とＨＥＭＳ２００は、居住者ＩＤの検証処理をＴＬＳハンドシェイクプロトコルの前に行うことで、他の居住者のＳＭ１００、又はＨＥＭＳ２００からメッセージを受信した場合、ＴＬＳハンドシェイクプロトコルの処理を行わなくてよいため、処理負荷を軽減することができる。
【００７２】
また、図４では、ＴＬＳハンドシェイクプロトコルを用いて機器認証と鍵交換を行っているが、ＤＴＬＳハンドシェイクプロトコルなどのプロトコルを用いて機器認証と鍵交換を行ってもよい。また、ＨＥＭＳ２００がクライアント、ＳＭ１００がサーバとなっているが、ＳＭ１００がクライアント、ＨＥＭＳ２００がサーバとなって、それぞれが行う処理を逆にしてもよい。また、ＳＭ１００とＨＥＭＳ２００は、証明書の検証を行わなくてもよい。また、ＳＭ１００とＨＥＭＳ２００の双方が居住者ＩＤと証明書の検証を行っているが、一方のみが居住者ＩＤと証明書の検証を行ってもよい。
【００７３】
このように本実施例では、ステップＳ３０３とステップＳ３０６に示されているように、ＳＭ１００とＨＥＭＳ２００は、受信した証明書に含まれる居住者ＩＤと、自身の証明書に含まれる居住者ＩＤとが一致することを互いに検証する。このようにすることで、ＳＭ１００とＨＥＭＳ２００が同一の居住者の機器同士であることを、互いに判別した上で共通鍵（Ｂルート鍵）を共有することが可能となる。その結果、ＳＭ１００とＨＥＭＳ２００との通信時における安全性が高まる。
【００７４】
図５は、本実施例における電力使用量可視化の処理手順およびデータの流れの一例を示すフローチャートである。本処理は、ＳＭとＨＥＭＳでＢルート鍵を共有した後に実行する。ＨＥＭＳ２００の暗号・復号・署名機能２０３は、電力使用量送信要求メッセージを、Ｂルート鍵２３０で暗号化する（Ｓ４０１）。ＨＥＭＳ２００は、暗号化された電力使用量送信要求メッセージを、ＳＭ１００に送信する（Ｓ４０２）。
【００７５】
ＳＭ１００の暗号・復号・署名機能１０３は、電力使用量送信要求メッセージを、Ｂルート鍵１３２で復号する（Ｓ４０３）。ＳＭ１００の暗号・復号・署名機能１０３は、電力使用量１３０を、Ｂルート鍵１３２で暗号化する（Ｓ４０４）。ＳＭ１００は、暗号化された電力使用量１３０を、ＨＥＭＳ２００に送信する（Ｓ４０５）。ＨＥＭＳ２００の暗号・復号・署名機能２０３は、電力使用量１３０を、Ｂルート鍵２３０で復号する（Ｓ４０６）。
【００７６】
ＨＥＭＳ２００は、電力使用量１３０をディスプレイなどに表示する（Ｓ４０７）。あるいは、電力使用量１３０をＰＣなどの端末に送信し、当該端末がディスプレイなどに表示するようにしてもよい。なお、上述した処理において、ＳＭ１００は、ＨＥＭＳ２００からの電力使用量送信要求を受信した後に電力使用量１３０を送信したが、ステップＳ４０１〜Ｓ４０３を実行せずに、ＳＭ１００がＨＥＭＳ２００に電力使用量１３０を送信するようにしてもよい。
【００７７】
図６は、本実施例におけるデマンドレスポンスの処理手順およびデータの流れの一例を示すフローチャートである。本処理は、ＳＭ１００とＨＥＭＳ２００でＢルート鍵を共有した後に実行する。ＭＤＭＳ３００の暗号・復号・署名機能２０３は、デマンドレスポンス信号を、Ａルート鍵３１４で暗号化する（Ｓ５０１）。ＭＤＭＳ３００は、暗号化されたデマンドレスポンス信号を、ＳＭ１００に送信する（Ｓ５０２）。
【００７８】
ＳＭ１００の暗号・復号・署名機能１０３は、暗号化されたデマンドレスポンス信号を、Ａルート鍵１３１で復号する（Ｓ５０３）。ＳＭ１００の暗号・復号・署名機能１０３は、デマンドレスポンス信号を、Ｂルート鍵１３２で暗号化する（Ｓ５０４）。ＳＭ１００は、暗号化されたデマンドレスポンス信号を、ＨＥＭＳ２００に送信する（Ｓ５０５）。
【００７９】
ＨＥＭＳ２００の暗号・復号・署名機能２０３は、暗号化されたデマンドレスポンス信号を、Ｂルート鍵２３０で復号する（Ｓ５０６）。ＨＥＭＳ２００は、復号されたデマンドレスポンス信号に従って、家電機器や太陽光発電装置などの機器の制御を行う（Ｓ５０７）。
【００８０】
以下では、図５、図６以外のＢルート鍵を利用した通信を説明する。以下では、このような通信の一例として、Ａルートに障害が発生した際に、ＳＭ１００が計測した電力使用量１３０を、ＭＤＭＳ３００に送信する処理を説明する。
【００８１】
ＳＭ１００の暗号・復号・署名機能１０３はＢルート鍵で電力使用量１３０を暗号化する。ＳＭ１００は、Ｂルート鍵で暗号化された電力使用量１３０を、ＨＥＭＳ２００に送信する。ＨＥＭＳ２００の暗号・復号・署名機能２０３は、受信した電力使用量１３０をＢルート鍵で復号する。ＨＥＭＳ２００の暗号・復号・署名機能２０３は、電力使用量１３０を、Ｃルート鍵で暗号化する。ＨＥＭＳ２００は、Ｃルート鍵で暗号化された電力使用量１３０を、ＨＥＭＳサーバ４００に送信する。
【００８２】
ＨＥＭＳサーバ４００の暗号・復号・署名機能４０３は、受信した電力使用量１３０を、Ｃルート鍵で復号する。ＨＥＭＳサーバ４００の暗号・復号・署名機能４０３は、電力使用量１３０を、ルート証明書４１２に含まれるＭＤＭＳ公開鍵で暗号化する。ＨＥＭＳサーバ４００はＭＤＭＳ公開鍵で暗号化された、電力使用量１３０をＭＤＭＳに送信する。ＭＤＭＳ３００の暗号・復号・署名機能３０３は、受信した電力使用量１３０をＭＤＭＳ私有鍵で復号する。
【００８３】
つまり、ＳＭ１００とＨＥＭＳ２００は、Ｂルート鍵を共有していれば、Ａルートに障害が発生した場合であっても、上記した迂回ルート（Ｂルートと、Ｃルートと、ＨＥＭＳサーバ４００とＭＤＭＳ３００の間のルートと、を経由する迂回ルートによる通信）による通信を用いれば、Ａルート間の通信と同様の通信を安全に行うことができる。Ｃルートに障害が発生した際に、ＨＥＭＳ２００とＨＥＭＳサーバ間で通信を行う場合も同様である。
【００８４】
図７は、本実施例におけるＳＭ証明書更新の処理手順およびデータの流れの一例を示すフローチャートである。本処理は、ＳＭ証明書１２０の更新期限が近づいたとき、ＳＭ私有鍵１１２が危殆化したとき、及び後述するステップＳ７１１においてＨＥＭＳ２００が新しい居住者ＩＤ２２１をＨＤＤ２６０に書き込み、かつＭＤＭＳ３００が、新しい居住者ＩＤ２２１に対応する居住者ＩＤ１２１を生成していないときなどに行う。
【００８５】
ＳＭ１００は、新しいＳＭ私有鍵１１２と新しいＳＭ公開鍵のペアを生成する（Ｓ６０１）。ＳＭ１００の暗号・復号・署名機能１０３は、ＳＭ証明書１２０と新しいＳＭ公開鍵に、今までのＳＭ私有鍵１１２で署名を施した上で、ルート証明書１１１に含まれているＭＤＭＳ公開鍵で暗号化する（Ｓ６０２）。ＳＭ１００は、暗号化されたＳＭ証明書１２０と新しいＳＭ公開鍵をＭＤＭＳ３００に送信する（Ｓ６０３）。
【００８６】
ＭＤＭＳ３００の暗号・復号・署名機能３０３は、ＳＭ証明書１２０と新しいＳＭ公開鍵をＭＤＭＳ私有鍵３１１で復号する（Ｓ６０４）。ＭＤＭＳ３００の暗号・復号・署名機能３０３は、ＳＭ証明書１２０が正しいことを検証する。具体的には、ＭＤＭＳ３００の暗号・復号・署名機能３０３は、ＳＭ証明書１２０に含まれている署名がＭＤＭＳ３００によって施されたということを、ルート証明書３１２に含まれているＭＤＭＳ公開鍵を用いて検証する。
【００８７】
次に、ＭＤＭＳ３００の暗号・復号・署名機能３０３は、ＳＭ証明書１２０と新しいＳＭ公開鍵の署名が正しいことを、ＳＭ証明書１２０に含まれているＳＭ公開鍵を用いて検証する（Ｓ６０５）。ＭＤＭＳ３００が、ＳＭ証明書１２０と署名が正しいと検証できた場合、次のステップに進む。そうでない場合は、何もせずに図７における処理を終了する。
【００８８】
ＭＤＭＳ３００の居住者ＩＤ生成機能３０１は、新しい居住者ＩＤ１２１を生成する（Ｓ６０６）。具体的にはＭＤＭＳ３００の居住者ＩＤ生成機能３０１は、例えばＳＭ証明書１２０に含まれる居住者ＩＤ１２１のハッシュ値などを求め、それを新しい居住者ＩＤ１２１とする。
【００８９】
なお、ＭＤＭＳ３００が生成する新しい居住者ＩＤ１２１とＨＥＭＳサーバ４００が生成する新しい居住者ＩＤ２２１は同一でなければならないため、ＭＤＭＳ３００は、新しい居住者ＩＤ１２１を生成するアルゴリズム、及びパラメータを予めＨＥＭＳサーバ４００と共有しておく。または、ＭＤＭＳ３００は、新しい居住者ＩＤ１２１を生成した際に、新しい居住者ＩＤを生成するために利用したアルゴリズム、及びパラメータをＨＥＭＳサーバ４００に通知してもよい。
【００９０】
また、ステップＳ６０６は後述するステップＳ７０６においてＨＥＭＳ２００が新しい居住者ＩＤ２２１を生成し、かつ当該居住者ＩＤ２２１とＳＭ証明書１２０に格納された居住者ＩＤ１２１が一致していないときを除いて、実行しなくてもよい。
【００９１】
ＭＤＭＳ３００の証明書生成機能３０２は、新しいＳＭ証明書１２０を生成する（Ｓ６０７）。このとき、ＭＤＭＳ３００の証明書生成機能３０２は、新しいＳＭ証明書１２０の拡張フィールドなどに新しい居住者ＩＤ１２１を格納する。あるいは、ＭＤＭＳの暗号・復号・署名機能３０３が、ＳＭ証明書１２０とは別に、新しい居住者ＩＤ１２１に署名を施したものを生成してもよい。なお、ステップＳ６０６を実行しない場合は、新しい居住者ＩＤ１２１の代わりに、今までのＳＭ証明書１２０に含まれる居住者ＩＤ１２１を用いる。
【００９２】
ＭＤＭＳ３００の暗号・復号・署名機能３０３は、新しいＳＭ証明書１２０を新しいＳＭ公開鍵で暗号化する（Ｓ６０８）。また、ＭＤＭＳ３００の暗号・復号・署名機能３０３は、Ａルート鍵３１４で新しいＳＭ証明書１２０を暗号化してもよい。ＭＤＭＳ３００は、暗号化された新しいＳＭ証明書１２０をＳＭ１００に送信する（Ｓ６０９）。
【００９３】
ＳＭ１００の暗号・復号・署名機能１０３は、新しいＳＭ証明書１２０を、新しいＳＭ私有鍵１１２で復号する（Ｓ６１０）。ステップＳ６０８において、新しいＳＭ証明書１２０がＡルート鍵３１４で暗号化されている場合は、ＳＭ１００の暗号・復号・署名機能１０３は、新しいＳＭ証明書１２０をＡルート鍵１３１で復号する。ＳＭ１００は、新しいＳＭ証明書１２０とＳＭ私有鍵１１２とを、データベース１１０に書き込む（Ｓ６１１）。
【００９４】
このように本処理では、ＳＭ１００とＭＤＭＳ３００間のデータのやり取りは、お互いの公開鍵で暗号化した上で行っている。この代わりに、ＳＭ１００とＭＤＭＳ３００でＴＬＳハンドシェイクプロトコルなどを用いて相互認証と共通鍵の交換を行った上で、共通鍵を用いて暗号通信を行うようにしてもよい。
【００９５】
また、ＭＤＭＳ３００が鍵生成機能を有している場合には、ステップＳ６０１を行わず、ＭＤＭＳ３００の鍵生成機能が、新しいＳＭ私有鍵１１２と新しいＳＭ公開鍵のペアを生成するようにしてもよい。この場合、ステップＳ６０２〜ステップＳ６０５の処理は不要である。このとき、ＳＭ１００が公開鍵と私有鍵のペアを作成する必要がなくなるため、リソースを有効活用することができる。また、新しい証明書発行までの時間を短縮することができる。
【００９６】
図８は、本実施例におけるＨＥＭＳ証明書更新の処理手順およびデータの流れの一例を示す。本処理は、ＨＥＭＳ証明書２２０の更新期限が近づいたとき、ＨＥＭＳ私有鍵２１３が危殆化したとき、及びステップＳ６０６において、ＭＤＭＳ３００が新しい居住者ＩＤ１２１を生成し、かつ当該居住者ＩＤ１２１とＨＥＭＳ証明書２２０に格納された居住者ＩＤ２２１が一致していないときなどに行う。
【００９７】
ステップＳ７０１〜ステップＳ７１１における処理手順、及びデータの流れは、それぞれステップＳ６０１〜ステップＳ６１２と同様である。具体的には、ステップＳ７０１〜ステップＳ７１１は、ステップＳ６０１〜ステップＳ６１２において、それぞれ以下のように各構成を置き換えたものと同等である。
【００９８】
ＳＭ１００をＨＥＭＳ２００に、ＳＭ１００の各機能をＨＥＭＳ２００の対応する各機能に、ＭＤＭＳ３００をＨＥＭＳサーバ４００に、ＭＤＭＳ３００の各機能をＨＥＭＳサーバの対応する各機能に、それぞれ置き換える。
【００９９】
さらに、ＳＭ私有鍵１１２をＨＥＭＳ私有鍵２１３に、ＳＭ公開鍵をＨＥＭＳ公開鍵に、ＳＭ証明書１２０をＨＥＭＳ証明書２２０に、ＭＤＭＳ公開鍵をＨＥＭＳサーバ公開鍵に、ＭＤＭＳ私有鍵３１１をＨＥＭＳサーバ私有鍵４１１に、ルート証明書１１１をＨＥＭＳサーバ証明書２１２に、Ａルート鍵１３１をＣルート鍵２３１に、Ａルート鍵３１４をＣルート鍵４１５に、それぞれ置き換える。
【０１００】
図９は、本実施例におけるＢルート鍵無効化の処理手順およびデータの流れの一例示すフローチャートである。本処理は、ＳＭ１００を交換する場合、ＨＥＭＳ２００を交換する場合、居住者が引越しを行う場合、ＨＥＭＳ２００をベンダ等に返却する場合、あるいは廃棄する場合などに行う。
【０１０１】
ＨＥＭＳ２００は、Ｂルート鍵無効化要求メッセージをＢルート鍵２３０で暗号化する（Ｓ８０１）。ＨＥＭＳ２００は、暗号化されたＢルート鍵無効化要求メッセージをＳＭ１００に送信する（Ｓ８０２）。ＳＭ１００は、Ｂルート鍵無効化要求メッセージをＢルート鍵１３２で復号する（Ｓ８０３）。ＳＭ１００は、Ｂルート鍵を無効化したことを知らせるための無効化終了信号を、Ｂルート鍵１３２で暗号化する（Ｓ８０４）。
【０１０２】
ＳＭ１００の鍵無効化機能１０５は、Ｂルート鍵を無効化する（Ｓ８０５）。ＳＭ１００は、暗号化された無効化終了信号をＨＥＭＳ２００に送信する（Ｓ８０６）。ＨＥＭＳ２００の暗号・復号・署名機能２０３は、無効化終了信号をＢルート鍵２３０で復号する（Ｓ８０７）。ＨＥＭＳ２００の鍵無効化機能２０５は、Ｂルート鍵を無効化する（Ｓ８０８）。
【０１０３】
なお、本処理ではＨＥＭＳ２００がＢルート鍵無効化要求メッセージを送信しているが、ＳＭ１００とＨＥＭＳ２００が行う処理を逆にして、ＳＭ１００がＢルート鍵無効化要求を送信するようにしてもよい。
【実施例２】
【０１０４】
本実施例の共通鍵共有システムでは、ＳＭ証明書の発行処理を、ＳＭ１００を居住者宅に設置する前にＳＭ登録端末５００を用いて行い、ＨＥＭＳ証明書の発行処理を、ＨＥＭＳ２００を居住者宅に設置する前にＨＥＭＳ登録端末６００を用いて行う。
【０１０５】
電力会社内、あるいはその関連会社内などの保守員などが、ＳＭ証明書の発行処理を行い、その後、設置担当者が居住者宅にＳＭ１００を設置する。ＨＥＭＳ提供会社内、あるいはその関連会社内などにおいて保守員などが、ＨＥＭＳ証明書の発行処理を行い、その後、設置担当者が居住者宅にＨＥＭＳ２００を設置する。あるいは、家電量販店などで居住者がＨＥＭＳを購入する場合は、店員が居住者の本人確認を行った後、店員がＨＥＭＳ証明書の発行処理を行い、その後、居住者が居住者宅にＨＥＭＳ２００を設置するようにしてもよい。
【０１０６】
図１０に、ＳＭ証明書の発行処理、ＨＥＭＳ証明書の発行処理を行う際における（即ち、ＳＭ１００とＨＥＭＳ２００を居住者宅に設置する前の）、本実施例の共通鍵共有システムの構成例を示す。
【０１０７】
本実施例の共通鍵共有システムは、ＳＭ１００と、ＨＥＭＳ２００と、ＭＤＭＳ３００と、ＨＥＭＳサーバ４００と、ＳＭ登録端末５００と、ＨＥＭＳ登録端末６００を含む。ＭＤＭＳ３００とＳＭ登録端末５００との間の通信路、及びＨＥＭＳサーバ４００とＨＥＭＳ登録端末６００との間の通信路においてインターネット、キャリア網、専用線などを用いて通信を行うことができる。
【０１０８】
また、ＳＭ１００とＳＭ登録端末５００との間の通信路、及びＨＥＭＳ２００とＨＥＭＳ登録端末６００との間の通信路においては有線、無線、ＰＬＣ（電力線汎用通信）などを用いて通信を行うことができる。なお、その他の通信路については、実施例１と同様である。また、ＳＭ１００とＨＥＭＳ２００との間の通信路（即ち、Ｂルート）は、ＳＭ１００とＨＥＭＳ２００を居住者宅に設置した後、通信を行うことができる。
【０１０９】
ＳＭ１００の構成は、実施例１と同様であり、住所・パスワード取得機能１０６を持たない点においてのみ、実施例１と異なる。また、ＨＥＭＳ２００の構成は、実施例１と同様であり、住所・パスワード取得機能２０６を持たない点においてのみ、実施例１と異なる。また、ＭＤＭＳ３００とＨＥＭＳサーバ４００の構成は、それぞれ実施例１と同じであるため、図中での構成の記載を省略する。
【０１１０】
ＳＭ登録端末５００は、プロセッサであるＣＰＵ５４０と、主記憶装置であるメモリ５５０と、補助記憶装置であるＨＤＤ５６０と、通信Ｉ／Ｆ５７０と、入力装置５８０と、出力装置５９０と、を含む。メモリ５５０は、住所とパスワードを取得する住所・パスワード取得機能５０１と、私有鍵と公開鍵のペア、及び共通鍵を生成する鍵生成機能５０２と、データの暗号化を行う暗号機能５０３と、を格納する。
【０１１１】
ＨＥＭＳ登録端末６００は、プロセッサであるＣＰＵ６４０と、主記憶装置であるメモリ６５０と、補助記憶装置であるＨＤＤ６６０と、通信Ｉ／Ｆ６７０と、入力装置６８０と、出力装置６９０と、を含む。メモリ６５０は、住所とパスワードを取得する住所・パスワード取得機能６０１と、私有鍵と公開鍵のペア、及び共通鍵を生成する鍵生成機能６０２と、データの暗号化を行う暗号機能６０３と、を格納する。
【０１１２】
図１１は、本実施例におけるＳＭ証明書発行の処理手順およびデータの流れの一例を示すフローチャートである。図１１のステップＳ１０１〜ステップＳ１１１は、図２と同様であり、図２におけるＳＭ１００による処理を、ＳＭ登録端末５００が行う点のみが異なる。ステップＳ１１２ａについて以下に述べる。
【０１１３】
ＳＭ登録端末５００は、ＳＭ私有鍵１１２とＳＭ証明書１２０を、ＳＭ１００に送信し、ＳＭ１００はＨＤＤ１６０に、受信したＳＭ私有鍵１１２とＳＭ証明書１２０を書き込む（Ｓ１１２ａ）。
【０１１４】
図１２は、本実施例におけるＨＥＭＳ証明書発行の処理手順およびデータの流れの一例を示すフローチャートである。図１２のステップＳ２０１〜ステップＳ２１１は、図３と同様であり、図３におけるＨＥＭＳ２００による処理を、ＨＥＭＳ登録端末６００が行う点のみが異なる。ステップＳ２１２ａについて、以下に述べる。
【０１１５】
ＨＥＭＳ登録端末６００は、ＨＥＭＳ私有鍵２１３とＨＥＭＳ証明書２２０を、ＨＥＭＳ２００に送信し、ＨＥＭＳ２００は、ＨＥＭＳ私有鍵２１３とＨＥＭＳ証明書２２０を、ＨＥＭＳ２００のＨＤＤ２６０に書き込む（Ｓ２１２ａ）。
【０１１６】
なお、本実施例において、ＳＭ１００とＨＥＭＳ２００が居住者宅に設置された後における、Ｂルート鍵共有、電力使用量可視化、デマンドレスポンス、ＳＭ証明書更新、ＨＥＭＳ証明書更新、Ｂルート鍵無効化の処理手順およびデータの流れは、それぞれ図４、図５、図６、図７、図８、図９と同じである。
【０１１７】
本実施例の共通鍵共有システムにおいては、ＳＭ登録端末５００が住所、及びパスワードの取得を行うため、ＳＭ１００は住所・パスワード取得機能１０６を含まない。従って、本実施例におけるＳＭ１００は、住所・パスワード取得を行わない分、リソースを有効に活用できる。また、本実施例におけるＳＭ１００は住所・パスワード取得機能１０６を含まないため、住所等を入力するインタフェースを含まなくてもよい。例えば、共通鍵共有システムに既存のＳＭ１００を用いる場合は、ＳＭ１００の入力インタフェースの変更に困難を伴うため、費用や手間を特に削減できる。上述したことは、ＨＥＭＳ２００とＨＥＭＳ登録端末６００との間においても同様である。
【０１１８】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、置換のいずれもが可能である。
【０１１９】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【図１】
2015130549.tif 000003
【図２】
2015130549.tif 000004
【図３】
2015130549.tif 000005
【図４】
2015130549.tif 000006
【図５】
2015130549.tif 000007
【図６】
2015130549.tif 000008
【図７】
2015130549.tif 000009
【図８】
2015130549.tif 000010
【図９】
2015130549.tif 000011
【図１０】
2015130549.tif 000012
【図１１】
2015130549.tif 000013
【図１２】
2015130549.tif 000014