(57)【要約】【課題】データの改ざんを検出できるデータ管理装置、電力使用量計算システム、データ管理方法、及びデータ管理プログラムを提供する。【解決手段】データ管理装置は、受信部、第１系計算部、第２計算部、及び送信部を備える。受信部は、データを暗号化した少なくとも１つの暗号データと暗号データに対応する少なくとも１つのメッセージ認証符号とを受信する。第１計算部は、受信した暗号データを集計し、暗号化したデータの総和に対応する集計暗号データを計算する。第２計算部は、受信したメッセージ認証符号を合計し、集計暗号データに対応するメッセージ認証符号の合計値を計算する。送信部は、集計暗号データとメッセージ認証符号の合計値とを送信する。【選択図】図５
2014209677.tif 000002
【特許請求の範囲】
【請求項１】
データを暗号化した少なくとも１つの暗号データと前記暗号データに対応する少なくとも１つのメッセージ認証符号とを受信する受信部と、
受信した前記暗号データを集計し、暗号化した前記データの総和に対応する集計暗号データを計算する第１計算部と、
受信した前記メッセージ認証符号を合計し、前記集計暗号データに対応するメッセージ認証符号の合計値を計算する第２計算部と、
前記集計暗号データと前記メッセージ認証符号の合計値とを送信する送信部と、を備えることを特徴とするデータ管理装置。
【請求項２】
前記暗号データと前記メッセージ認証符号は、
準同型であることを特徴とする請求項１に記載のデータ管理装置。
【請求項３】
前記第１計算部は、
前記暗号データの送信元と前記集計暗号データの送信先との間で共有する暗号鍵を用いて暗号化された前記暗号データを集計し、前記集計暗号データを計算することを特徴とする請求項１に記載のデータ管理装置。
【請求項４】
前記第１計算部は、
前記送信先に相当するシステムが利用する前記データの前記暗号データを集計し、前記システムに対応する前記集計暗号データを計算し、
前記送信部は、
計算した前記集計暗号データを前記システムに送信することを特徴とする請求項３に記載のデータ管理装置。
【請求項５】
前記第２計算部は、
前記メッセージ認証符号の送信元と前記メッセージ認証符号の合計値の送信先との間で共有する生成鍵を用いて生成された前記メッセージ認証符号を合計し、前記メッセージ認証符号の合計値を計算することを特徴とする請求項１に記載のデータ管理装置。
【請求項６】
前記第２計算部は、
前記送信先に相当するシステムが利用する前記データの前記暗号データに対応する前記メッセージ認証符号を合計し、前記システムに対応する前記メッセージ認証符号の合計値を計算し、
前記送信部は、
計算した前記メッセージ認証符号の合計値を前記システムに送信することを特徴とする請求項５に記載のデータ管理装置。
【請求項７】
前記受信部は、
計測した電力使用量の暗号データと前記暗号データに対応するメッセージ認証符号とを受信し、
前記第１計算部は、
受信した前記暗号データを集計し、電力使用総量の暗号データを計算し、
前記第２計算部は、
受信した前記メッセージ認証符号を合計し、前記電力使用総量の前記メッセージ認証符号の合計値を計算し、
前記送信部は、
前記電力使用総量の暗号データと前記メッセージ認証符号の合計値とを、前記電力使用量を利用するシステムに送信することを特徴とする請求項１に記載のデータ管理装置。
【請求項８】
データ集計装置は、
計測した電力使用量を集計する集計部と、
集計した前記電力使用量を暗号化し、少なくとも１つの前記電力使用量の暗号データを計算する暗号部と、
前記暗号データに対応する少なくとも１つのメッセージ認証符号を生成する生成部と、
前記暗号データと前記メッセージ認証符号とを送信する第１送信部と、を備え、
データ管理装置は、
前記データ集計装置が送信した前記暗号データと前記メッセージ認証符号とを受信する第１受信部と、
受信した前記暗号データを集計し、電力使用総量の暗号データを計算する第１計算部と、
受信した前記メッセージ認証符号を合計し、前記電力使用総量のメッセージ認証符号の合計値を計算する第２計算部と、
前記電力使用総量の暗号データと前記メッセージ認証符号の合計値とを送信する第２送信部と、を備え、
機能提供装置は、
前記データ管理装置が送信した前記電力使用総量の暗号データと前記メッセージ認証符号の合計値とを受信する第２受信部と、
受信した前記電力使用総量の暗号データを復号し、前記電力使用総量を復元する復号部と、
受信した前記電力使用総量のメッセージ認証符号の合計値を用いて、前記電力使用総量の正当性を検証する検証部と、
前記電力使用総量に基づき、所定の処理を実行する実行部と、を備えることを特徴とする電力使用量計算システム。
【請求項９】
データを暗号化した少なくとも１つの暗号データと前記暗号データに対応する少なくとも１つのメッセージ認証符号とを受信する受信工程と、
受信した前記暗号データを集計し、暗号化した前記データの総和に対応する集計暗号データを計算する第１計算工程と、
受信した前記メッセージ認証符号を合計し、前記集計暗号データに対応するメッセージ認証符号の合計値を計算する第２計算工程と、
前記集計暗号データと前記メッセージ認証符号の合計値とを送信する送信工程と、を含むことを特徴とするデータ管理方法。
【請求項１０】
データを暗号化した少なくとも１つの暗号データと前記暗号データに対応する少なくとも１つのメッセージ認証符号とを受信する受信ステップと、
受信した前記暗号データを集計し、暗号化した前記データの総和に対応する集計暗号データを計算する第１計算ステップと、
受信した前記メッセージ認証符号を合計し、前記集計暗号データに対応するメッセージ認証符号の合計値を計算する第２計算ステップと、
前記集計暗号データと前記メッセージ認証符号の合計値とを送信する送信ステップと、をコンピュータに実行させるためのデータ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データ管理装置、電力使用量計算システム、データ管理方法、及びデータ管理プログラムに関する。
【背景技術】
【０００２】
電力使用量計算システムでは、単位時間あたりの電力使用量が計測され、計測データを集計することで、電力使用量の総量が計算される。そのため、計測した電力使用量が、第三者などにより参照されると、個人や団体など（計測先）の電力使用が推測できることから、プライバシーの侵害につながる恐れがある。そこで、電力使用量計算システムでは、集計する電力使用量に対して、計測先のプライバシーを保護する必要がある。これに対して、従来から、計測した電力使用量を暗号化し、電力使用量に関する情報を隠蔽した状態で処理する方式が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−５８８５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の方式では、データの改ざんを検出することができない。
【課題を解決するための手段】
【０００５】
実施形態に係る情報処理装置は、データを暗号化した少なくとも１つの暗号データと前記暗号データに対応する少なくとも１つのメッセージ認証符号とを受信する。実施形態に係る情報処理装置は、受信した前記暗号データを集計し、暗号化した前記データの総和に対応する集計暗号データを計算する。実施形態に係る情報処理装置は、受信した前記メッセージ認証符号の値を合計し、前記集計暗号データに対応するメッセージ認証符号の合計値を計算する。実施形態に係る情報処理装置は、前記集計暗号データと前記メッセージ認証符号の合計値とを送信する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態に係る電力使用量計算システムの構成例を示す図。
【図２】第１の実施形態に係るＭＤＭＳの装置構成例を示す図。
【図３】第１の実施形態に係るＳＭの機能構成例を示す図。
【図４】第１の実施形態に係るＭＤＭＳの機能構成例を示す図。
【図５】第１の実施形態に係るＥＭＳの機能構成例を示す図。
【図６】第１の実施形態に係る課金サーバの機能構成例を示す図。
【図７】第１の実施形態に係るＳＭとＭＤＭＳとの動作例を示す図。
【図８】第１の実施形態に係るＳＭの処理手順例を示す図。
【図９】第１の実施形態に係るＭＤＭＳの処理手順例を示す図。
【図１０】第１の実施形態に係るＭＤＭＳとＥＭＳとの動作例を示す図。
【図１１】第１の実施形態に係るＭＤＭＳとＥＭＳとの処理手順例を示す図。
【図１２】第１の実施形態に係るＭＤＭＳと課金サーバとの動作例を示す図。
【図１３】第１の実施形態に係るＭＤＭＳと課金サーバとの処理手順例を示す図。
【発明を実施するための形態】
【０００７】
以下に、添付図面を参照して、データ管理装置、電力使用量計算システム、データ管理方法、及びデータ管理プログラムの実施形態を詳細に説明する。
【０００８】
［第１の実施形態］
＜システム概要＞
本実施形態に係る電力使用量計算システムの概要について説明する。本実施形態に係る電力使用量計算システムは、電気機器の電力使用量を集計する電力メータに相当するスマートメータ（Smart  Meter；以下「ＳＭ」という）が、各家庭や各事業所などの電力使用量の集計範囲ごとに（所定の集計単位で）設置される。ＳＭは、メータデータ管理システム（Meter  Data  Management  System；以下「ＭＤＭＳ」という）と接続され通信する。ＳＭは、保護すべきプライバシー情報に応じて、集計範囲における電力使用量に基づき、アプリケーション（所定の機能を提供する機能提供システム）の入力を復元するために必要な暗号データを計算する。これにより、ＳＭは、集計範囲における電力使用量を隠蔽する。また、ＳＭは、電力使用量の計測データ（メータデータ）の改ざんを検出するための情報に相当するＭＡＣ（メッセージ認証符号：Message  Authentication  Code）値を計算する。ＳＭは、計算した暗号データとＭＡＣ値を記憶する。
【０００９】
上記暗号データは、プライバシー情報を特定できない情報であることが望ましい。よって、例えば、単位時間における電力使用量がプライバシー情報に該当する場合には、ＳＭが、単位時間ごとの電力使用量から暗号データを計算し、計算した暗号データをＭＤＭＳに送信し、ＭＤＭＳが、受信した暗号データを記憶する。また、電力を使用する場所がプライバシー情報に該当する場合には、複数のＳＭが、それぞれ集計した電力使用量から複数の暗号データを計算し、計算した複数の暗号データをＭＤＭＳに送信し、ＭＤＭＳが、受信した複数の暗号データを記憶する。なお、ここでいうプライバシー情報とは、個人又は団体の嗜好や行動を特定可能な情報である。プライバシー情報には、個人又は団体を特定可能な情報が含まれる。また、プライバシー情報には、個人又は団体自体が特定できなくても、個人又は団体の嗜好や行動の傾向を特定可能な情報が含まれる。
【００１０】
また、単位時間における電力使用量がプライバシー情報に該当するか否かの判定は、予め行っておいてもよいし、動的に行ってもよい。なお、単位時間における電力使用量や電力を使用する場所がプライバシー情報に該当しない場合であっても、上記暗号データの計算やＭＤＭＳへの記憶を行ってもよい。
【００１１】
また、上記アプリケーションには、例えば、使用電力に対する課金機能を提供するアプリケーションや、スマートグリッドなどの電力網を制御するエネルギー管理機能を提供するアプリケーションなどがある。これらのアプリケーションは、集計範囲における電力使用量の正確な値を入力とする。この場合には、ＭＤＭＳは、暗号化した電力使用量を復号することなく、集計範囲における電力使用量の総量（以下「電力使用総量」という）の正確な値の暗号化結果が計算されるように、準同型の暗号化方式を用い、暗号化結果を記憶する。さらに、ＭＤＭＳは、暗号化した電力使用量に対応するＭＡＣ値から、電力使用総量に対応するＭＡＣ値を計算可能な方法を用いる。
【００１２】
本実施形態では、上記アプリケーションを提供するシステムとして、課金システムとエネルギー管理システム（Energy  Management  System；以下「ＥＭＳ」という）とを例に説明する。ＥＭＳは、集計範囲における第１単位時間あたりの電力使用量を隠蔽し、集計範囲における第１単位時間あたりの電力使用総量（以下「第１電力使用総量」という）を入力とする。ここでいう第１単位時間とは、ＥＭＳが電力網を制御する時間単位を表し、例えば、３０分などである。また、課金システムは、集計範囲における第２単位時間あたりの電力使用総量（以下「第２電力使用総量」という）を入力とする。ここでいう第２単位時間とは、電力使用に応じた課金処理を行う時間単位（課金期間）を表し、例えば、１ヶ月（約３０日）などである。
【００１３】
＜システム構成＞
図１は、本実施形態に係る電力使用量計算システム１０００の構成例を示す図である。図１に示すように、本実施形態に係る電力使用量計算システム１０００は、ＭＤＭＳ１００、データ集計システム２、ＥＭＳ３００、及び課金システム４などを備え、所定の通信路Ｎを介して接続されている。なお、図中には、１つのデータ集計システム２を示したが、この限りでない。電力使用量計算システム１０００には、複数のデータ集計システム２が接続されていてもよい。また、所定の通信路Ｎとは、例えば、ＬＡＮ（Local  Area  Network）、イントラネット、イーサネット（登録商標）、又はインターネットなどである。
【００１４】
ＭＤＭＳ１００は、１又は複数のデータ管理装置により、データ集計システム２から、集計範囲における電力使用量を収集して管理するシステムである。データ集計システム２は、集計範囲に設置された１又は複数のＳＭ２００により、集計範囲で使用される電気機器の電力使用量を集計するシステムである。ＳＭ２００は、集計範囲内の電気機器が接続され、これらの電気機器の電力使用量の計測データを集計する。ＥＭＳ３００は、１又は複数のエネルギー管理装置（機能提供装置）により、ＭＤＭＳ１００で管理する電力使用量に基づき、電力網を制御するシステムである。課金システム４は、１又は複数の課金サーバ４００（機能提供装置）により、ＭＤＭＳ１００で管理する電力使用量に基づき、使用電力に対して課金するシステムである。
【００１５】
なお、データ集計システム２には、集計範囲を識別するための識別情報（以下「集計識別情報」という）が付与されており、ＳＭ２００は、当該装置が含まれるデータ集計システム２に付与された集計識別情報を記憶している。また、ＭＤＭＳ１００、ＥＭＳ３００、及び課金サーバ４００は、電力使用量計算システム１０００に接続される各データ集計システム２の１又は複数の集計識別情報を、それぞれが記憶している。
【００１６】
また、ＳＭ２００の集計情報には、少なくとも集計識別情報と電力使用量とが対応付けられている。ＳＭ２００は、集計識別情報と電力使用量とが対応付けられた情報を用いて暗号データを計算する。なお、ＳＭ２００の集計情報は、集計識別情報と電力使用量に加えて、さらに他の情報が対応付けられていてもよい。
【００１７】
本実施形態に係る電力使用量計算システム１０００では、上記構成により、次のような処理が行われる。ＳＭ２００は、電力使用量をＭＤＭＳ１００により復号可能に暗号化して第１暗号データを計算し、電力使用量をＥＭＳ３００により復号可能に暗号化して第２暗号データを計算し、電力使用量を課金サーバ４００により復号可能に暗号化して第３暗号データを計算する。さらに、ＳＭ２００は、ＭＤＭＳ１００により検証可能な第１暗号データに対応する第１ＭＡＣ値を計算し、ＥＭＳ３００により検証可能な第２暗号データに対応する第２ＭＡＣ値を計算し、課金サーバ４００により検証可能な第３暗号データに対応する第３ＭＡＣ値を計算する。ＳＭ２００は、計算結果をＭＤＭＳ１００に送信する。ＭＤＭＳ１００は、ＳＭ２００から受信した第１暗号データを復号し、復号した電力使用量に基づき、第２暗号データと第３暗号データとを補正し、補正量を記憶する。
【００１８】
ＭＤＭＳ１００は、ＥＭＳ３００からの要求を受け付けると、補正した第２暗号データを用いて、第１電力使用総量（集計範囲における第１単位時間あたりの個別の電力使用量の値を複数個集計した値）の暗号データを計算する。次にＭＤＭＳ１００は、第１電力使用総量の計算に用いた第２暗号データに対応する第２ＭＡＣ値を合計して、第１電力使用総量のＭＡＣ値を計算する。その結果、ＭＤＭＳ１００は、計算結果をＥＭＳ３００に送信し、要求に応答する。これにより、ＥＭＳ３００は、ＭＤＭＳ１００から受信した第１電力使用総量の暗号データを復号することで電力使用量を復元し、復元した電力使用量に基づき、集計範囲の電力制御を行う。このときＥＭＳ３００は、第１電力使用総量のＭＡＣ値を用いて、第１電力使用総量が改ざんされていないかどうかを確認する（復元した電力使用量の正当性を確認する）。
【００１９】
また、ＭＤＭＳ１００は、課金サーバ４００からの要求を受け付けると、補正した第３暗号データを用いて、第２電力使用総量（集計範囲における第２単位時間あたりの電力使用量の個別の電力使用量の値を複数個集計した値）の暗号データを計算する。次にＭＤＭＳ１００は、第２電力使用総量の計算に用いた第３暗号データに対応する第３ＭＡＣ値を合計して、第２電力使用総量のＭＡＣ値を計算する。その結果、ＭＤＭＳ１００は、計算結果を課金サーバ４００に送信し、要求に応答する。これにより、課金サーバ４００は、ＭＤＭＳ１００から受信した第２電力使用総量の暗号データを復号することで電力使用量を復元し、復元した電力使用量に基づき、集計範囲における使用電力に対して課金を行う。このとき課金サーバ４００は、第２電力使用総量のＭＡＣ値を用いて、第２電力使用総量が改ざんされていないかどうかを確認する（復元した電力使用量の正当性を確認する）。
【００２０】
＜装置構成＞
次に、ＭＤＭＳ１００、ＳＭ２００、ＥＭＳ３００、及び課金サーバ４００の装置構成について説明する。なお、本実施形態に係るＭＤＭＳ１００が備えるデータ管理装置、ＳＭ２００、ＥＭＳ３００が備えるエネルギー管理装置、及び課金サーバ４００の各装置は、主なハードウェア構成が同一である。よって、以下の説明では、ＭＤＭＳ１００が備えるデータ管理装置のハードウェア構成を説明し、他の装置については、異なる事項を説明する。
【００２１】
図２は、本実施形態に係るＭＤＭＳ１００の装置構成例を示す図である。図２に示すように、本実施形態に係るＭＤＭＳ１００は、ＣＰＵ（Central  Processing  Unit）１０１、主記憶装置１０２、補助記憶装置１０３、通信ＩＦ（interface）１０４、及び外部ＩＦ１０５などを備え、バスＢを介して接続される。
【００２２】
ＣＰＵ１０１は、装置全体の制御や搭載機能を実現するための演算装置である。主記憶装置１０２は、プログラムやデータなどを所定の記憶領域に保持する記憶装置（メモリ）である。主記憶装置１０２は、例えば、ＲＯＭ（Read  Only  Memory）やＲＡＭ（Random  Access  Memory）などである。また、補助記憶装置１０３は、主記憶装置１０２より容量の大きい記憶領域を備える記憶装置である。補助記憶装置１０３は、例えば、ＨＤＤ（Hard  Disk  Drive）やメモリカード（Memory  Card）などの不揮発性の記憶装置である。また、補助記憶装置１０３には、例えば、フレキシブルディスク（ＦＤ）、ＣＤ（Compact  Disk）、及びＤＶＤ（Digital  Versatile  Disk）などの記録媒体が含まれていてもよい。よって、ＣＰＵ１０１は、例えば、補助記憶装置１０３から主記憶装置１０２上に、プログラムやデータを読み出し、処理を実行することで、装置全体の制御や搭載機能を実現する。
【００２３】
通信ＩＦ１０４は、装置を通信路Ｎに接続するインタフェースである。これにより、ＭＤＭＳ１００は、ＳＭ２００、ＥＭＳ３００、又は課金サーバ４００とデータ通信が行える。外部ＩＦ１０５は、装置と外部機器１０６との間でデータを送受信するためのインタフェースである。外部機器１０６には、例えば、処理結果などの各種情報を表示する表示装置（例えば「液晶ディスプレイ」）や利用者操作の入力を受け付ける入力装置（例えば「テンキー」や「タッチパネル」）などがある。
【００２４】
なお、ＳＭ２００が備える外部ＩＦ（非図示）には、例えば、電力使用量を計測する１又は複数の計測器（センサ）などが接続される。これにより、ＳＭ２００では、電力使用量の集計が行える。また、ＳＭ２００は、上記ハードウェアに加えて、電力使用量などの各種情報を表示する表示装置や利用者操作の入力を受け付ける入力装置を備えていてもよい。
【００２５】
以上のように、本実施形態に係る電力使用量計算システム１０００は、上記構成により、装置に記憶される記憶データや装置間で送受信される通信データなどの改ざんを検出可能な電力使用量の管理サービスを提供する。
【００２６】
＜機能構成＞
本実施形態に係る電力使用量計算システム１０００が有する機能について説明する。ＳＭ２００は、電力使用量を利用するＭＤＭＳ１００、ＥＭＳ３００、及び課金システム４などの各利用システムにより復号可能な電力使用量の暗号データ（第１〜第３暗号データ）をそれぞれ計算する。また、ＳＭ２００は、各利用システムが利用する電力使用量のＭＡＣ値をそれぞれ計算する（電力使用量の第１〜第３暗号データに対応する第１〜第３ＭＡＣ値を計算する）。その結果、ＳＭ２００は、計算結果をＭＤＭＳ１００に送信する。これを受けてＭＤＭＳ１００は、ＳＭ２００から受信したＭＤＭＳ１００用の暗号データ（第１暗号データ）を復号する。次にＭＤＭＳ１００は、復号した電力使用量に基づき、ＥＭＳ３００及び課金システム４などの各利用システム用の暗号データ（第２，第３暗号データ）をそれぞれ補正し、補正量を記憶する。その後、ＭＤＭＳ１００は、ＥＭＳ３００又は課金システム４などの各利用システムから要求を受け付ける。ＭＤＭＳ１００は、要求を受け付けた利用システム用の暗号データを用いて、集計範囲における単位時間あたりの電力使用総量（第１又は第２電力使用総量）の暗号データをそれぞれ計算する。次にＭＤＭＳ１００は、電力使用量のＭＡＣ値を合計して、電力使用総量のＭＡＣ値をそれぞれ計算する（第２又は第３暗号データに対応する第２又は第３ＭＡＣ値を合計して、第１又は第２電力使用総量に対応するＭＡＣ値の合計値を計算する）。その結果、ＭＤＭＳ１００は、計算結果を要求元の利用システムに送信し、要求に応答する。これにより、ＥＭＳ３００又は課金システム４などの各利用システムは、ＭＤＭＳ１００から受信した電力使用総量の暗号データを復号することで電力使用量を復元する。次に利用システムは、受信した電力使用総量のＭＡＣ値を用いて、復元した電力使用量の正当性を確認し、確認した電力使用量に基づき、所定の処理を実行し、機能を提供する。
【００２７】
電力使用量計算システム１０００では、電力使用量が第三者などにより参照されると、計測先の電力使用が推測できることから、プライバシーの侵害につながる恐れがある。そこで、電力使用量計算システム１０００では、集計する電力使用量に対して、計測先のプライバシーを保護する必要がある。これに対して従来から提案されている方式では、データの改ざんを検出することができない。そのため、電力使用量が第三者などにより改ざんされると、アプリケーションが正しく実行されず、利用者に対して適切な機能提供（電力使用量に基づく計算が正しく行えず、計算値に基づく正確な機能提供）ができなくなる恐れがある。
【００２８】
そこで、本実施形態に係る電力使用量計算システム１０００が有する機能では、次のような仕組みを提供する。ＳＭ２００は、電力使用量の暗号データと暗号データに対応するＭＡＣ値とを計算する。ＳＭ２００は、計算結果をＭＤＭＳ１００に送信する。ＭＤＭＳ１００は、ＥＭＳ３００又は課金システム４からの要求に応じて、ＳＭ２００からの受信データに基づき、集計範囲における電力使用総量の暗号データとＭＡＣ値とを計算する。ＭＤＭＳ１００は、計算結果を要求元のＥＭＳ３００又は課金システム４に送信する。
【００２９】
これにより、本実施形態に係る電力使用量計算システム１０００の機能は、装置内に記憶される電力使用量や装置間で送受信される電力使用量を暗号化し隠蔽することにより、計測先のプライバシーを保護することができる。また、本実施形態に係る電力使用量計算システム１０００の機能は、電力使用量や電力使用総量に対して、それぞれＭＡＣ値を計算し、計算した各ＭＡＣ値を、電力使用量や電力使用総量のそれぞれに対応付けて管理することにより、データの改ざんを検出することができる。
【００３０】
以下に、本実施形態に係る電力使用量計算システム１０００が有する機能の構成とその動作について説明する。本実施形態に係る電力使用量計算システム１０００は、ＳＭ２００が有する機能、ＭＤＭＳ１００が有する機能、ＥＭＳ３００が有する機能、及び課金サーバ４００が有する機能に分けられる。
【００３１】
《ＳＭ２００の機能》
図３は、本実施形態に係るＳＭ２００の機能構成例を示す図である。図３に示すように、本実施形態に係るＳＭ２００の機能は、通信制御部２０（第１送信部）、電力使用量集計部２１、暗復号部２２、及びＭＡＣ生成部２３などを有する。これらの各機能は、ソフトウェアの実装により実現される。よって、各機能部は、ＳＭ２００が備えるＣＰＵ（非図示）でプログラムが実行されることにより実現される機能である。なお、通信制御部２０は、ＳＭ２００の通信ＩＦ（非図示）が備える演算装置でプログラムが実行されることにより実現されてもよい。また、本実施形態に係るＳＭ２００の機能は、記憶部９２を有する。記憶部９２は、例えば、ＳＭ２００が備える補助記憶装置（非図示）の所定の記憶領域に相当する。
【００３２】
通信制御部２０は、ＭＤＭＳ１００との間のデータ通信を制御する。具体的には、通信制御部２０は、暗復号部２２から出力された電力使用量の暗号データ、及び、ＭＡＣ生成部２３から出力されたＭＡＣ値などをＭＤＭＳ１００に送信する。このとき通信制御部２０は、電力使用量の暗号データやＭＡＣ値を、所定時間経過ごとに（定期的に）ＭＤＭＳ１００に送信してもよい。なお、ここでいう所定時間とは、電力使用量の暗号データとＭＡＣ値との送信タイミングを表す時間である。所定時間は、例えば、電力使用量を利用する利用システム（ＥＭＳ３００又は課金システム４）の動作タイミングに同期する時間を設定してもよい。また、通信制御部２０は、ＳＭ２００の動作を制御するための制御コマンドをＭＤＭＳ１００から受信する。
【００３３】
電力使用量集計部２１は、集計範囲における電気機器から、計測された電力使用量を所定時間経過ごとに受け付けて、単位時間ごとに集計する。電力使用量集計部２１は、集計した電力使用量を記憶部９２に記憶させる。電力使用量集計部２１は、通信制御部２０で受信した制御コマンドに基づき、電力使用量の集計動作（集計処理の開始と終了、集計処理の中止や停止などの動作）を制御する。なお、記憶された電力使用量は、所定期間が経過すると削除される。ここでいう所定期間とは、電力使用量を記憶しておく記憶期間を表す時間や日時であり、例えば、２週間や３０日などである。所定期間は、システム運用中に、電力使用量の記憶データ量が、記憶先の記憶領域の容量を超過しない範囲であれば、任意の期間を設定できる。
【００３４】
暗復号部２２は、集計した電力使用量の暗号化又は復号を行う。具体的には、暗復号部２２は、記憶部９２が記憶する暗復号用の共通鍵を用いて、電力使用量を暗号化し、電力使用量に対応する暗号データを計算する。また、暗復号部２２は、暗号データを復号し、電力使用量を復元する。このとき暗復号部２２は、暗号化又は復号に、例えば、共通鍵暗号やストリーム暗号などの方式を用いる。
【００３５】
（共通鍵）
共通鍵について説明する。共通鍵は、電力使用量の暗号データの送信元と電力使用総量の暗号データの送信先との間で共有する、暗復号用の鍵（暗復号鍵）に相当する。本実施形態では、課金サーバ４００とＳＭ２００との間で共有される共通鍵Ｋｐ、ＥＭＳ３００とＳＭ２００との間で共有される共通鍵Ｋｅ、及びＭＤＭＳ１００とＳＭ２００との間で共有される共通鍵Ｋｍが存在する。記憶部９２には、これらの各共通鍵Ｋｐ，Ｋｅ，Ｋｍが記憶されている。なお、複数のＳＭ２００の間では、各共通鍵Ｋｐ，Ｋｅ，Ｋｍを、各ＳＭ２００で同じにしてもよいし、互いに異なるようにしてもよい。各共通鍵Ｋｐ，Ｋｅ，Ｋｍが、各ＳＭ２００で互いに異なる場合には、ＳＭ２００同士が互いの各共通鍵Ｋｐ，Ｋｅ，Ｋｍを知ることがないため、機密性が高くなる。
【００３６】
（暗号化方法）
本実施形態に係る暗復号部２２で行われる具体的な暗号化方法について説明する。暗復号部２２は、電力使用量の暗号化に、上記各共通鍵を直接用いるのではない。暗復号部２２は、各共通鍵を用いて一時鍵をそれぞれ生成し、生成した一時鍵を用いて電力使用量を暗号化する。なお、一時鍵は、例えば、集計時刻を表す時間情報と共通鍵とに基づき生成される。時間情報には、例えば、「２０１０年１月１日」などの日付、「１４：３５：４６，３／１／２０１０」などの日時、又は、ＧＭＴ（Greenwich  Mean  Time）の起点からの経過秒数などがある。
【００３７】
暗復号部２２は、共通鍵をＫｐ，Ｋｅ，Ｋｍ、時間情報をｔとしたとき、以下の（式１）から（式３）により、一時鍵Ｋｐ＿ｔ，Ｋｅ＿ｔ，Ｋｍ＿ｔを計算する。
Ｋｐ１＿ｔ  ＝  ｈ１（Ｋｐ，ｔ）  ・・・  （式１）
Ｋｅ１＿ｔ  ＝  ｈ１（Ｋｅ，ｔ）  ・・・  （式２）
Ｋｍ１＿ｔ  ＝  ｈ１（Ｋｍ，ｔ）  ・・・  （式３）
ここで、式中に表現されるｈ１（ｘ，ｙ）は、ｘとｙを入力とする一方向性関数、又は、鍵付きハッシュ関数である。一方向性関数には、例えば、ｓｈａ−１、ｍｄ５（Message  Digest  Algorithm  5）、ｓｈａ２５６などがあり、鍵付きハッシュ関数には、例えば、ｈｍａｃ（Keyed-Hashing  for  Message  Authentication  code）などがある。
【００３８】
暗復号部２２が行う暗号化は、準同型である。例えば、データｄを暗号化鍵ｅｋ＿Ｐで暗号化する場合、暗号化が準同型であるとは、データｄとｄ’について、以下の（式４）を満たすことをいう。
Ｅｎｃ＿Ｐ（ｅｋ＿Ｐ，ｄ）＊Ｅｎｃ＿Ｐ（ｅｋ＿Ｐ，ｄ’）  ＝  Ｅｎｃ＿Ｐ（ｅｋ＿Ｐ，ｄ＋ｄ’）  ・・・  （式４）
ここで、式中に表現される（＋）は、算術加算を表し、（＊）は、適切な演算子を表す。なお、以降においても同様の意味を表す。
【００３９】
このような準同型の暗号化方法には、例えば、十分に大きな基数を用いるシーザー暗号や文献１（Pascal  Paillier,  Public-Key  Cryptosystems  Based  on  Composite  Degree  Residuosity  Classes,  EUROCRYPT  1999,  pp223-238）に記載される暗号化方法などがある。この場合、（＊）は、それぞれ剰余環での加算及び剰余乗算を表す。
【００４０】
本実施形態では、準同型の暗号化方法として、シーザー暗号を用いる。また、上記（＊）として剰余環での加算を用いる。
【００４１】
暗復号部２２は、時刻ｔに集計された電力使用量をｄｔとしたとき、課金サーバ４００との間で共有する共通鍵Ｋｐから生成した一時鍵Ｋｐ１＿ｔを用いて、以下の（式５）により、電力使用量ｄｔを暗号化し、課金システム４が利用する電力使用量ｄｔの第３暗号データｃｐ＿ｔを計算する。
ｃｐ＿ｔ  ＝  ｄｔ＋ＫｐＳＴ１＿ｔ（ｍｏｄ  α）  ・・・  （式５）
ここで、ＫｐＳＴ＿ｔ１は、時刻ｔの一時鍵Ｋｐ１＿ｔを鍵としたストリーム暗号により得られる鍵系列（＝ＳＴ（Ｋｐ１＿ｔ））である。なお、ＳＴ（・）は、ストリーム暗号を表す。ストリーム暗号は、例えば、ＲＣ４（Ronald's  Code  4）を用いたり、ブロック暗号の利用モードをＯＦＢ（Output  Feed  Back）、ＣＦＢ（Cipher  Feed  Back）、ＣＴＲ（Counter）モードとして動作させたりすることで実現できる。また、パラメータαは、大きな素数であり、暗号化を行う主体と復号を行う主体との間で共有される必要がある。
【００４２】
同様にして、暗復号部２２は、ＥＭＳ３００との間で共有する共通鍵Ｋｅから生成した一時鍵Ｋｅ１＿ｔを用いて、以下の（式６）により、電力使用量ｄｔを暗号化し、ＥＭＳ３００が利用する電力使用量ｄｔの第２暗号データｃｅ＿ｔを計算する。
ｃｅ＿ｔ  ＝  ｄｔ＋ＫｅＳＴ１＿ｔ（ｍｏｄ  α）  ・・・  （式６）
ここで、ＫｅＳＴ１＿ｔは、時刻ｔの一時鍵Ｋｅ１＿ｔを鍵としたストリーム暗号により得られる鍵系列（＝ＳＴ（Ｋｅ１＿ｔ））である。
【００４３】
同様にして、暗復号部２２は、ＭＤＭＳ１００との間で共有する共通鍵Ｋｍから生成した一時鍵Ｋｍ１＿ｔを用いて、以下の（式７）により、電力使用量ｄｔを暗号化し、ＭＤＭＳ１００が利用する電力使用量ｄｔの第１暗号データｃｍ＿ｔを計算する。
ｃｍ＿ｔ  ＝  ｄｔ＋ＫｍＳＴ１＿ｔ（ｍｏｄ  α）  ・・・  （式７）
ここで、ＫｍＳＴ１＿ｔは、時刻ｔの一時鍵Ｋｍ１＿ｔを鍵としたストリーム暗号により得られる鍵系列（＝ＳＴ（Ｋｍ１＿ｔ））である。
【００４４】
なお、復号時に必要となる時刻ｔは、暗号データとともに復号先に送信される必要がある。このため、通信制御部２０は、電力使用量の第１暗号データｃｍ＿ｔ、第２暗号データｃｅ＿ｔ、及び第３暗号データｃｐ＿ｔのそれぞれに対応する時刻ｔを、各暗号データに対応付けて、ＭＤＭＳ１００に送信する。また、通信制御部２０は、電力使用量の第１暗号データｃｍ＿ｔと第１暗号データｃｍ＿ｔに対応する時刻ｔとを、ＭＤＭＳ１００から受信する。
【００４５】
ＭＡＣ生成部２３は、集計した電力使用量のＭＡＣ値（電力使用量の改ざんを検出するための情報）を生成する。具体的には、ＭＡＣ生成部２３は、記憶部９２が記憶するＭＡＣ値生成用の鍵（以下「ＭＡＣ生成鍵」という）を用いて、電力使用量のＭＡＣ値を計算する。
【００４６】
（ＭＡＣ生成鍵）
ＭＡＣ生成鍵について説明する。ＭＡＣ生成鍵は、電力使用量のＭＡＣ値の送信元と電力使用総量のＭＡＣ値の送信先との間で共有する、ＭＡＣ値の生成・検証用の鍵に相当する。本実施形態では、課金サーバ４００とＳＭ２００との間で共有されるＭＡＣ生成鍵Ｋｐ＿ｍａｃ、ＥＭＳ３００とＳＭ２００との間で共有されるＭＡＣ生成鍵Ｋｅ＿ｍａｃ、ＭＤＭＳ１００とＳＭ２００との間で共有されるＭＡＣ生成鍵Ｋｍ＿ｍａｃが存在する。記憶部９２には、これらの各ＭＡＣ生成鍵Ｋｐ＿ｍａｃ、Ｋｅ＿ｍａｃ，Ｋｍ＿ｍａｃが記憶されている。なお、複数のＳＭ２００の間では、各ＭＡＣ生成鍵Ｋｐ＿ｍａｃ，Ｋｅ＿ｍａｃ，Ｋｍ＿ｍａｃを、各ＳＭ２００で同じにしてもよいし、互いに異なるようにしてもよい。各ＭＡＣ生成鍵Ｋｐ＿ｍａｃ，Ｋｅ＿ｍａｃ，Ｋｍ＿ｍａｃが、各ＳＭ２００で互いに異なる場合には、ＳＭ２００同士が互いの各ＭＡＣ生成鍵Ｋｐ＿ｍａｃ，Ｋｅ＿ｍａｃ，Ｋｍ＿ｍａｃを知ることがないため、機密性が高くなる。
【００４７】
（ＭＡＣ生成方法）
本実施形態に係るＭＡＣ生成部２３で行われる具体的なＭＡＣ生成方法について説明する。ＭＡＣ生成部２３が行うＭＡＣ生成は、準同型である。例えば、データｄのＭＡＣ値をＭＡＣ生成鍵ｋ＿ｍａｃで生成する場合、ＭＡＣ生成が準同型であるとは、データｄとｄ’について、以下の（式８）を満たすことをいう。
ＭＡＣ（ｋ＿ｍａｃ，ｄ）＊ＭＡＣ（ｋ＿ｍａｃ，ｄ’）  ＝  ＭＡＣ（ｋ＿ｍａｃ，ｄ＋ｄ’）  ・・・  （式８）
ここで、式中に表現される（＋）は、算術加算を表し、（＊）は、適切な演算子を表す。
【００４８】
ＭＡＣ生成部２３は、時刻ｔに集計された電力使用量をｄｔとしたとき、課金サーバ４００との間で共有するＭＡＣ生成鍵Ｋｐ＿ｍａｃを用いて、以下の（式９）により、課金システム４が利用する電力使用量ｄｔの第３ＭＡＣ値Ｍａｃｐ＿ｔを計算する。
Ｍａｃｐ＿ｔ  ＝  ｄｔ×Ｋｐ＿ｍａｃ＋ＫｐＳＴ２＿ｔ（ｍｏｄ  α）  ・・・  （式９）
ここで、ＫｐＳＴ２＿ｔは、時刻ｔの一時鍵Ｋｐ２＿ｔを鍵としたストリーム暗号により得られる鍵系列（＝ＳＴ（Ｋｐ２＿ｔ））である。また、このときの一時鍵Ｋｐ２＿ｔは、ｈ２（Ｋｐ，ｔ）により計算される。なお、ｈ２（ｘ，ｙ）は、ｘとｙを入力とする一方向性関数、又は、鍵付きハッシュ関数である。
【００４９】
同様にして、ＭＡＣ生成部２３は、ＥＭＳ３００との間で共有するＭＡＣ生成鍵Ｋｅ＿ｍａｃを用いて、以下の（式１０）により、ＥＭＳ３００が利用する電力使用量ｄｔの第２ＭＡＣ値Ｍａｃｅ＿ｔを計算する。
Ｍａｃｅ＿ｔ  ＝  ｄｔ×Ｋｅ＿ｍａｃ＋ＫｅＳＴ２＿ｔ（ｍｏｄ  α）  ・・・  （式１０）
ここで、ＫｅＳＴ２＿ｔは、時刻ｔの一時鍵Ｋｅ２＿ｔを鍵としたストリーム暗号により得られる鍵系列（＝ＳＴ（Ｋｅ２＿ｔ））である。また、このときの一時鍵Ｋｅ２＿ｔは、ｈ２（Ｋｅ，ｔ）により計算される。
【００５０】
同様にして、ＭＡＣ生成部２３は、ＭＤＭＳ１００との間で共有するＭＡＣ生成鍵Ｋｍ＿ｍａｃを用いて、以下の（式１１）により、ＭＤＭＳ１００が利用する電力使用量ｄｔの第１ＭＡＣ値Ｍａｃｍ＿ｔを計算する。
Ｍａｃｍ＿ｔ  ＝  ｄｔ×Ｋｍ＿ｍａｃ＋ＫｍＳＴ２＿ｔ（ｍｏｄ  α）  ・・・  （式１１）
ここで、ＫｍＳＴ２＿ｔは、時刻ｔの一時鍵Ｋｍ２＿ｔを鍵としたストリーム暗号により得られる鍵系列（＝ＳＴ（Ｋｍ２＿ｔ））である。また、このときの一時鍵Ｋｍ２＿ｔは、ｈ２（Ｋｍ，ｔ）により計算される。
【００５１】
本実施形態に係るＳＭ２００は、上記機能により、電力使用量を利用するＭＤＭＳ１００、ＥＭＳ３００、及び課金システム４などの各利用システムにより復号可能な電力使用量の第１〜第３暗号データをそれぞれ計算する。また、ＳＭ２００は、各利用システムが利用する電力使用量の第１〜第３ＭＡＣ値をそれぞれ計算する。その結果、ＳＭ２００は、計算結果をＭＤＭＳ１００に送信する。なお、記憶部９２には、計算結果が記憶される。
【００５２】
《ＭＤＭＳ１００の機能》
図４は、本実施形態に係るＭＤＭＳ１００の機能構成例を示す図である。図４に示すように、本実施形態に係るＭＤＭＳ１００の機能は、通信制御部（受信部、送信部、第１受信部、第２送信部）１０、復号部１１、補正部１２、暗号データ集計部（第１計算部）１３、及びＭＡＣ合計部（第２計算部）１４などを有する。これらの各機能は、ソフトウェアの実装により実現される。よって、各機能部は、ＭＤＭＳ１００（データ管理装置）が備えるＣＰＵ１０１でプログラムが実行されることにより実現される機能である。なお、通信制御部１０は、ＭＤＭＳ１００の通信ＩＦ１０４が備える演算装置でプログラムが実行されることにより実現されてもよい。また、本実施形態に係るＭＤＭＳ１００の機能は、記憶部９１を有する。記憶部９１は、例えば、ＭＤＭＳ１００が備える補助記憶装置１０３の所定の記憶領域に相当する。
【００５３】
通信制御部１０は、ＳＭ２００、ＥＭＳ３００、又は課金サーバ４００などの他の機器との間のデータ通信を制御する。具体的には、通信制御部１０は、電力使用量の暗号データ（第１〜第３暗号データ）とＭＡＣ値（第１〜第３ＭＡＣ値）とをＳＭ２００から受信する。ＳＭ２００から受信した電力使用量の暗号データ（第１〜第３暗号データ）とＭＡＣ値（第１〜第３ＭＡＣ値）とは、電力使用量の暗号データと暗号データに対応するＭＡＣ値とを組み合わせて（１対となるように）記憶部９１に記憶される。また、通信制御部１０は、制御コマンドをＳＭ２００に送信する。ＳＭ２００に送信する制御コマンドとは、電力使用量の集計動作を制御するコマンドであり、例えば、電力使用量の集計処理の開始と終了、電力使用量の集計処理の中止や停止、電力使用量の送信などを指示するコマンドである。また、通信制御部１０は、リクエストコマンド（動作要求を表す制御コマンド）をＥＭＳ３００又は課金サーバ４００から受信する。これに対して、通信制御部１０は、暗号データ集計部１３から出力された電力使用総量の暗号データ、及び、ＭＡＣ合計部１４から出力された電力使用総量のＭＡＣ値などをＥＭＳ３００又は課金サーバ４００に送信し、要求元に応答する。
【００５４】
復号部１１は、電力使用量の暗号データを復号する。具体的には、復号部１１は、記憶部９１に記憶する暗復号用の共通鍵を用いて、受信した暗号データを復号することにより、電力使用量を復元する。なお、記憶部９１には、ＳＭ２００との間で共有する暗復号用の共通鍵を記憶している。
【００５５】
（復号方法）
本実施形態に係る復号部１１で行われる具体的な復号方法について説明する。復号部１１は、まず、ＳＭ２００との間で共有する共通鍵Ｋｍ、及び、ＳＭ２００から受信した電力使用量の第１暗号データｃｍ＿ｔに対応付けられた時刻ｔを用いて、一時鍵Ｋｍ１＿ｔ（＝ｈ１（Ｋｍ，ｔ））を計算する。次に復号部１１は、計算した一時鍵Ｋｍ１＿ｔに基づくストリーム暗号（ＳＴ（・））により鍵系列ＫｍＳＴ１＿ｔ（＝ＳＴ（Ｋｍ１＿ｔ））を計算する。その結果、復号部１１は、以下の（式１２）により、時刻ｔにおける電力使用量（ＭＤＭＳ１００が利用する電力使用量）ｄｔを計算し、暗号データから電力使用量を復元する。
ｄｔ  ＝  ｃｍ＿ｔ−ＫｍＳＴ１＿ｔ（ｍｏｄ  α）  ・・・  （式１２）
【００５６】
補正部１２は、復元した電力使用量を用いて、ＳＭ２００から受信した第２，第３暗号データを補正する。具体的には、補正部１２は、まず、復元した電力使用量の正当性を確認する（復元した電力使用量に誤りがないか否かを検証する）。このとき補正部１２は、次のような方法で正当性を確認する。例えば、ＭＤＭＳ１００では、同じＳＭ２００から受信し復元した過去の電力使用量（単位時間ごとの時系列に連続する電力使用量）を主記憶装置（メモリ）１０２に一時保持しておく。これにより、補正部１２は、今回の電力使用量と過去の電力使用量とを比較し、差分値が閾値以下か否かの判定などにより、今回復元した電力使用量に誤りがないか否かを判断し、正当性を検証する。その結果、補正部１２は、正当性の確認結果に基づき、電力使用量に対する補正量（差分値）Δｄを計算する。
【００５７】
（補正方法）
本実施形態に係る補正部１２で行われる具体的な補正方法について説明する。補正部１２は、計算した補正量Δｄを用いて、以下の（式１３）及び（式１４）により、電力使用量の第２暗号データｃｅ＿ｔ及び第３暗号データｃｐ＿ｔを補正する。
ｃｅ＿ｔ’  ＝  ｃｅ＿ｔ＋Δｄ  ・・・  （式１３）
ｃｐ＿ｔ’  ＝  ｃｐ＿ｔ＋Δｄ  ・・・  （式１４）
【００５８】
補正部１２は、補正した第２暗号データｃｅ＿ｔ’及び第３暗号データｃｐ＿ｔ’を記憶部９１に記憶する。このとき補正部１２は、補正した第２暗号データｃｅ＿ｔ’及び第３暗号データｃｐ＿ｔ’と補正量Δｄとを組み合わせて（１対となるように）記憶部９１に記憶する。
【００５９】
暗号データ集計部１３は、電力使用量の暗号データを集計することにより、電力使用総量の暗号データを計算する。具体的には、暗号データ集計部１３は、記憶部９１に記憶する電力使用量の暗号データ、又は、補正部１２が補正した電力使用量の暗号データを集計し、単位時間における電力使用総量の暗号データを計算する。つまり、暗号データ集計部１３は、ＳＭ２００から受信した暗号データを集計し、暗号化したデータの総和に対応する集計暗号データを計算する。
【００６０】
（暗号データ集計方法）
本実施形態に係る暗号データ集計部１３で行われる具体的な暗号データ集計方法について説明する。暗号データ集計部１３は、補正部１２が補正した電力使用量の第２暗号データ、又は、記憶部９１に記憶する電力使用量の第２暗号データを集計し、単位時間における第１電力使用総量の暗号データを計算する。このとき暗号データ集計部１３は、第２暗号データの補正に用いた補正量を合計し、第１電力使用総量に対応する補正量の合計値（以下「第１電力使用総量の補正量」という）を計算する。
【００６１】
暗号データ集計部１３は、同じ時刻ｔに複数のＳＭ２００が集計する集計範囲をｓｍ１からｓｍｘ、及び、各ＳＭ２００から集計される電力使用量の単位時間を３０分としたとき、以下の（式１５−１）により、ＥＭＳ３００が利用する電力使用量の第２暗号データ（補正した第２暗号データ）ｃｅ＿ｔ’を集計し、第１電力使用総量の暗号データｃｅ＿ａｌｌを計算する。なお、集計データの集計範囲は、ＳＭ２００に対応する複数の集計範囲に相当する。
ｃｅ＿ａｌｌ  ＝  ｃｅ＿ｔ’＿ｓｍ１＋・・・＋ｃｅ＿ｔ’＿ｓｍｘ  ・・・  （式１５−１）
【００６２】
つまり、暗号データ集計部１３は、ＥＭＳ３００が利用する電力使用量の第２暗号データを、同じ集計時刻における複数の集計範囲（複数のＳＭ２００）を対象に集計する。
【００６３】
また、第１電力使用総量の暗号データの計算は、上記（式１５−１）に代えて、以下の（式１５−２）により計算してもよい。つまり、ＥＭＳ３００が利用する電力使用量の第２暗号データ（記憶部９１に記憶する第２暗号データ）ｃｅ＿ｔを集計し、第１電力使用総量の暗号データｃｅ＿ａｌｌを計算してもよい。
ｃｅ＿ａｌｌ  ＝  ｃｅ＿ｔ＿ｓｍ１＋・・・＋ｃｅ＿ｔ＿ｓｍｘ  ・・・  （式１５−２）
【００６４】
また、暗号データ集計部１３は、第２暗号データの補正に用いた補正量Δｄを用いて、以下の（式１６）により、第１電力使用総量の補正量Δｄｅ＿ａｌｌを計算する。
Δｄｅ＿ａｌｌ  ＝  Δｄ＿ｓｍ１＋・・・＋Δｄ＿ｓｍｘ  ・・・  （式１６）
【００６５】
同様にして、暗号データ集計部１３は、記憶部９１に記憶する電力使用量の第３暗号データ、又は、補正部１２が補正した電力使用量の第３暗号データを集計し、単位時間における第２電力使用総量の暗号データを計算する。このとき暗号データ集計部１３は、第３暗号データの補正に用いた補正量を合計し、第２電力使用総量の補正量を計算する。
【００６６】
暗号データ集計部１３は、所定のＳＭ２００が集計する集計範囲をｓｍ、及び、ＳＭ２００から集計される電力使用量の単位時間を３０分としたとき、以下の（式１７−１）により、課金システム４が利用する電力使用量の第３暗号データ（補正した第３暗号データ）ｃｐ＿ｔ’を集計し、第２電力使用総量の暗号データｃｐ＿ａｌｌを計算する。なお、この場合には、課金システム４が利用する電力使用量の単位時間（第２単位時間：１ヶ月）が、暗号データを集計する期間（以下「集計期間」という）となる。よって、暗号データの集計期間は、集計される電力使用量の単位時間が３０分である場合、時刻ｔ１からｔ１４４０と表せる。
ｃｐ＿ａｌｌ  ＝  ｃｐ＿ｔ１’＿ｓｍ＋・・・＋ｃｐ＿ｔ１４４０’＿ｓｍ  ・・・  （式１７−１）
【００６７】
つまり、暗号データ集計部１３は、課金システム４が利用する電力使用量の第３暗号データを、同じ集計範囲（同じＳＭ２００）における複数の集計時刻（時系列）を対象に集計する。
【００６８】
また、第２電力使用総量の暗号データの計算は、上記（式１７−１）に代えて、以下の（式１７−２）により計算してもよい。つまり、課金システム４が利用する電力使用量の第３暗号データ（記憶部９１に記憶する第３暗号データ）ｃｐ＿ｔを集計し、第２電力使用総量の暗号データｃｐ＿ａｌｌを計算してもよい。
ｃｐ＿ａｌｌ  ＝  ｃｐ＿ｔ１＿ｓｍ＋・・・＋ｃｐ＿ｔ１４４０＿ｓｍ  ・・・  （式１７−２）
【００６９】
また、暗号データ集計部１３は、第３暗号データの補正に用いた補正量Δｄを用いて、以下の（式１８）により、第２電力使用総量の補正量Δｄｐ＿ａｌｌを計算する。
Δｄｐ＿ａｌｌ  ＝  Δｄ＿ｔ１＿ｓｍ＋・・・＋Δｄ＿ｔ１４４０＿ｓｍ  ・・・  （式１８）
【００７０】
ＭＡＣ合計部１４は、電力使用量のＭＡＣ値を合計することにより、電力使用総量のＭＡＣ値（電力使用総量の改ざんを検出するための情報）を計算する。具体的には、ＭＡＣ合計部１４は、電力使用総量の計算に用いた暗号データに対応するＭＡＣ値を合計し、単位時間における電力使用総量のＭＡＣ値を計算する。つまり、ＭＡＣ合計部１４は、ＳＭ２００から受信したＭＡＣ値を合計し、電力使用総量の暗号データに対応するＭＡＣ値を計算する。
【００７１】
（ＭＡＣ合計方法）
本実施形態に係るＭＡＣ合計部１４で行われる具体的なＭＡＣ合計方法について説明する。ＭＡＣ合計部１４は、第１電力使用総量の計算に用いた第２暗号データに対応する第２ＭＡＣ値を合計し、第１電力使用総量のＭＡＣ値を計算する。
【００７２】
ＭＡＣ合計部１４は、同じ時刻ｔに複数のＳＭ２００が集計する集計範囲をｓｍ１からｓｍｘ、及び、各ＳＭ２００から集計される電力使用量の単位時間を３０分としたとき、以下の（式１９）により、ＥＭＳ３００が利用する電力使用量の第２ＭＡＣ値Ｍａｃｅ＿ｔを合計し、第１電力使用総量のＭＡＣ値Ｍａｃｅ＿ａｌｌを計算する。なお、この場合には、ＳＭ２００に対応する複数の集計範囲が、ＭＡＣ値を合計する範囲（以下「合計範囲」という）となる。
Ｍａｃｅ＿ａｌｌ  ＝  Ｍａｃｅ＿ｔ＿ｓｍ１＋・・・＋Ｍａｃｅ＿ｔ＿ｓｍｘ  ・・・  （式１９）
【００７３】
つまり、ＭＡＣ合計部１４は、ＥＭＳ３００が利用する電力使用量の第２ＭＡＣ値を、同じ集計時刻における複数の集計範囲（複数のＳＭ２００）を対象に合計する。
【００７４】
同様にして、ＭＡＣ合計部１４は、所定のＳＭ２００が集計する集計範囲をｓｍ、及び、ＳＭ２００から集計される電力使用量の単位時間を３０分としたとき、以下の（式２０）により、課金システム４が利用する電力使用量の第３ＭＡＣ値Ｍａｃｐ＿ｔを合計し、第２電力使用総量のＭＡＣ値Ｍａｃｐ＿ａｌｌを計算する。なお、この場合には、課金システム４が利用する電力使用量の単位時間（第２単位時間：１ヶ月）が、合計期間となる。よって、合計期間は、集計される電力使用量の単位時間が３０分である場合、時刻ｔ１からｔ１４４０と表せる。
Ｍａｃｐ＿ａｌｌ  ＝  Ｍａｃｐ＿ｔ１＿ｓｍ＋・・・＋Ｍａｃｐ＿ｔ１４４０＿ｓｍ  ・・・  （式２０）
【００７５】
つまり、ＭＡＣ合計部１４は、課金システム４が利用する電力使用量の第３ＭＡＣ値を、同じ集計範囲（同じＳＭ２００）における複数の集計時刻（時系列）を対象に合計する。
【００７６】
本実施形態に係るＭＤＭＳ１００は、上記機能により、ＳＭ２００から受信したＭＤＭＳ１００用の第１暗号データを復号する。次にＭＤＭＳ１００は、復号した電力使用量に基づき、ＥＭＳ３００及び課金システム４などの各利用システム用の第２及び第３暗号データをそれぞれ補正し、補正量を記憶する。その後、ＭＤＭＳ１００は、ＥＭＳ３００又は課金システム４などの各利用システムから要求を受け付ける。ＭＤＭＳ１００は、要求を受け付けた利用システム用の第２又は第３暗号データを用いて、集計範囲における単位時間あたりの第１電力使用総量の暗号データ及び第２電力使用総量の暗号データをそれぞれ計算する。次にＭＤＭＳ１００は、第２又は第３ＭＡＣ値を合計して、第１電力使用総量のＭＡＣ値及び第２電力使用総量のＭＡＣ値をそれぞれ計算する。なお、記憶部９１には、計算結果が記憶される。
【００７７】
《ＥＭＳ３００の機能》
図５は、本実施形態に係るＥＭＳ３００の機能構成例を示す図である。図５に示すように、本実施形態に係るＥＭＳ３００は、通信制御部（第２受信部）３０、復号部３１、ＭＡＣ検証部３２、及び電力制御判定部（実行部）３３などを有する。これらの各機能は、ソフトウェアの実装により実現される。よって、各機能部は、ＥＭＳ３００（エネルギー管理装置）が備えるＣＰＵ（非図示）でプログラムが実行されることにより実現される機能である。なお、通信制御部３０は、ＥＭＳ３００の通信ＩＦ（非図示）が備える演算装置でプログラムが実行されることにより実現されてもよい。また、本実施形態に係るＥＭＳ３００の機能は、記憶部９３を有する。記憶部９３は、例えば、ＥＭＳ３００が備える補助記憶装置（非図示）の所定の記憶領域に相当する。記憶部９３には、ＭＤＭＳ１００からの受信データが記憶される。
【００７８】
通信制御部３０は、ＭＤＭＳ１００などの他の機器との間のデータ通信を制御する。具体的には、通信制御部３０は、ＭＤＭＳ１００から送信された第１電力使用総量の暗号データ、ＭＡＣ値、及び補正量などを受信する。また、通信制御部３０は、リクエストコマンド（動作要求を表す制御コマンド）をＭＤＭＳ１００に送信するする。これにより、通信制御部３０は、第１電力使用総量の暗号データ、ＭＡＣ値、及び補正量などを、ＭＤＭＳ１００から受信し、要求に対する応答を受け付ける。なお、ＭＤＭＳ１００に送信するリクエストコマンドには、例えば、電力制御に用いる電流値や電圧値などの各種制御情報の送信を要求する制御コマンドなどがある。
【００７９】
復号部３１は、第１電力使用総量の暗号データを復号する。具体的には、復号部３１は、記憶部９３に記憶する暗復号用の共通鍵を用いて、受信した暗号データを復号することにより、第１電力使用総量を復元する。なお、記憶部９３には、ＳＭ２００との間で共有する暗復号用の共通鍵を記憶している。
【００８０】
（復号方法）
本実施形態に係る復号部３１で行われる具体的な復号方法について説明する。復号部３１は、まず、ＳＭ２００との間で共有する共通鍵Ｋｅ、及び、ＭＤＭＳ１００から受信した第１電力使用総量の暗号データｃｅ＿ａｌｌに対応付けられた時刻ｔを用いて、一時鍵Ｋｅ１＿ｔ（＝ｈ１（Ｋｅ，ｔ））を計算する。次に復号部３１は、計算した一時鍵Ｋｅ１＿ｔに基づくストリーム暗号（ＳＴ（・））により鍵系列ＫｅＳＴ１＿ｔ（＝ＳＴ（Ｋｅ１＿ｔ））を計算する。その結果、復号部３１は、以下の（式２１）及び（式２２）により、時刻ｔ（複数の集計範囲の同時刻）における第１電力使用総量（ＥＭＳ３００が利用する電力使用総量）ｄｔｅ＿ａｌｌを計算し、暗号データから電力使用総量を復元する。
Ｋｅ＿ａｌｌ  ＝  ＫｅＳＴ１＿ｔ＿ｓｍ１＋・・・＋ＫｅＳＴ１＿ｔ＿ｓｍｘ  ・・・  （式２１）
ｄｔｅ＿ａｌｌ  ＝  ｃｅ＿ａｌｌ−Ｋｅ＿ａｌｌ  ・・・  （式２２）
【００８１】
第１電力使用総量は、集計範囲における電力使用量の総量である。これにより、集計した時刻ｔにおける各電力使用量を暗号化した暗号データは、集計範囲に含まれる各ＳＭ２００それぞれとの間で共有する各共通鍵を用いて生成した一時鍵により復号できる。そこで、復号部３１は、各ＳＭ２００それぞれとの間で共有する各共通鍵を用いて一時鍵の鍵系列を計算し、計算した各一時鍵を用いて、第１電力使用総量の暗号データから第１電力使用総量を復元する。
【００８２】
ＭＡＣ検証部３２は、復元した第１電力使用総量の正当性を確認する（復元した第１電力使用総量に誤りがないか否かを検証する）。具体的には、ＭＡＣ検証部３２は、復号部３１が復元した第１電力使用総量のＭＡＣ値、ＭＤＭＳ１００から受信した第１電力使用総量の補正量、及びＳＭ２００との間で共有するＭＡＣ検証鍵を用いて、第１電力使用総量に誤りがないか否かを検証する。なお、記憶部９３には、ＳＭ２００との間で共有するＭＡＣ検証鍵を記憶している。
【００８３】
（ＭＡＣ検証方法）
本実施形態に係るＭＡＣ検証部３２で行われる具体的なＭＡＣ検証方法について説明する。ＭＡＣ検証部３２は、まず、ＳＭ２００との間で共有するＭＡＣ検証鍵Ｋｅ＿ｍａｃ、及び、ＭＤＭＳ１００から受信した第１電力使用総量の暗号データｃｅ＿ａｌｌに対応付けられた時刻ｔを用いて、一時鍵Ｋｅ２＿ｔ（＝ｈ２（Ｋｅ，ｔ））を計算する。次にＭＡＣ検証部３２は、計算した一時鍵Ｋｅ２＿ｔに基づくストリーム暗号（ＳＴ（・））により鍵系列ＫｅＳＴ２＿ｔ（＝ＳＴ（Ｋｅ２＿ｔ））を計算する。その結果、ＭＡＣ検証部３２は、以下の（式２３）及び（式２４）により、復元した第１電力使用総量の正当性を確認する。
ＫｅＳＴ２＿ａｌｌ  ＝  ＫｅＳＴ２＿ｔ＿ｍｓ１＋・・・＋ＫｅＳＴ２＿ｔ＿ｍｓｘ  ・・・  （式２３）
Ｍａｃｅ＿ｔ  ＝？  （ｄｔｅ＿ａｌｌ−Δｄｅ＿ａｌｌ）×Ｋｅ＿ｍａｃ＋ＫｅＳＴ２＿ａｌｌ  ・・・  （式２４）
なお、式中に表現される（？）は、比較判定の演算子を表す。よって、ＭＡＣ検証部３２は、（式２４）の右辺の計算結果と第１電力使用総量のＭＡＣ値Ｍａｃｅ＿ｔとが一致するか否かの判定結果に基づき、第１電力使用総量に誤りがないか否かを検証する。
【００８４】
電力制御判定部３３は、電力網を制御する電力制御を行うか否かを判断する。具体的には、電力制御判定部３３は、復号部３１が復元した第１電力使用総量に基づき、電力制御を行うか否かを判定する。本実施形態に係る電力制御とは、次のような制御である。例えば、電力制御判定部３３が、第１電力使用総量が予め設定しておいた上限閾値を超えると判定した場合には、各家庭又は各事業所などの集計範囲における電力使用を抑制する制御を行う。一方、電力制御判定部３３が、第１電力使用総量が予め設定しておいた下限閾値を下回ると判定した場合には、集計範囲に設置された蓄電池などに余剰電力を蓄える（蓄電池に充電する）制御を行う。なお、これらの電力制御は、例えば、通信制御部３０を介して、ＥＭＳ３００からＳＭ２００などの制御対象機器に対し、電力制御コマンドを送信することにより実現できる。
【００８５】
本実施形態に係るＥＭＳ３００は、上記機能により、ＭＤＭＳ１００から受信した第１電力使用総量の暗号データを復号することで電力使用量を復元する。次にＥＭＳ３００は、受信した第１電力使用総量のＭＡＣ値を用いて、復元した電力使用量の正当性を確認し、確認した電力使用量に基づき、所定の処理を実行し、電力制御機能を提供する。
【００８６】
《課金サーバ４００の機能》
図６は、本実施形態に係る課金サーバ４００の機能構成例を示す図である。図６に示すように、本実施形態に係る課金サーバ４００は、通信制御部（第２受信部）４０、復号部４１、ＭＡＣ検証部４２、及び課金処理部（実行部）４３などを有する。これらの各機能は、ソフトウェアの実装により実現される。よって、各機能部は、課金サーバ４００が備えるＣＰＵ（非図示）でプログラムが実行されることにより実現される機能である。なお、通信制御部４０は、課金サーバ４００の通信ＩＦ（非図示）が備える演算装置でプログラムが実行されることにより実現されてもよい。また、本実施形態に係る課金サーバ４００の機能は、記憶部９４を有する。記憶部９４は、例えば、課金サーバ４００が備える補助記憶装置（非図示）の所定の記憶領域に相当する。記憶部９４には、ＭＤＭＳ１００からの受信データが記憶される。
【００８７】
通信制御部４０は、ＭＤＭＳ１００などの他の機器との間のデータ通信を制御する。具体的には、通信制御部４０は、ＭＤＭＳ１００から送信された第２電力使用総量の暗号データ、ＭＡＣ値、及び補正量などを受信する。また、通信制御部４０は、リクエストコマンド（動作要求を表す制御コマンド）をＭＤＭＳ１００に送信するする。これにより、通信制御部４０は、第２電力使用総量の暗号データ、ＭＡＣ値、及び補正量などを、ＭＤＭＳ１００から受信し、要求に対する応答を受け付ける。なお、ＭＤＭＳ１００に送信するリクエストコマンドには、例えば、課金に用いる電力単価などの各種課金用情報の送信を要求する制御コマンドなどがある。
【００８８】
復号部４１は、第２電力使用総量の暗号データを復号する。具体的には、復号部４１は、記憶部９４に記憶する暗復号用の共通鍵を用いて、受信した暗号データを復号することにより、第２電力使用総量を復元する。なお、記憶部９４には、ＳＭ２００との間で共有する暗復号用の共通鍵を記憶している。
【００８９】
（復号方法）
本実施形態に係る復号部４１で行われる具体的な復号方法について説明する。復号部４１は、まず、ＳＭ２００との間で共有する共通鍵Ｋｐ、及び、ＭＤＭＳ１００から受信した第２電力使用総量の暗号データｃｐ＿ａｌｌに対応付けられた時刻ｔ（：ｔ１〜ｔ１４４０）を用いて、一時鍵Ｋｐ１＿ｔ（＝ｈ１（Ｋｐ，ｔ））を計算する。次に復号部４１は、計算した一時鍵Ｋｐ１＿ｔに基づくストリーム暗号（ＳＴ（・））により鍵系列ＫｐＳＴ１＿ｔ（＝ＳＴ（Ｋｐ１＿ｔ））を計算する。その結果、復号部４１は、以下の（式２５）及び（式２６）により、時刻ｔ（集計範囲の時系列）における第２電力使用総量（課金サーバ４００が利用する電力使用総量）ｄｔｐ＿ａｌｌを計算し、暗号データから電力使用総量を復元する。
Ｋｐ＿ａｌｌ  ＝  ＫｐＳＴ１＿ｔ１＿ｓｍ＋・・・＋ＫｐＳＴ１＿ｔ１４４０＿ｓｍ  ・・・  （式２５）
ｄｔｐ＿ａｌｌ  ＝  ｃｐ＿ａｌｌ−Ｋｐ＿ａｌｌ  ・・・  （式２６）
【００９０】
ＭＤＭＳ１００から受信した第２電力使用総量の暗号データには、ＳＭ２００に対して課金処理を行う課金期間（第２単位時間）における電力使用量の各集計時刻ｔ１〜ｔ１４４０が対応づけられている。このため、復号部４１は、各集計時刻ｔ１〜ｔ１４４０について、ＳＭ２００との間で共有する共通鍵を用いて一時鍵の鍵系列をそれぞれ計算し、計算した各一時鍵を用いて、第２電力使用総量の暗号データから第２電力使用総量を復元する。
【００９１】
ＭＡＣ検証部４２は、復元した第２電力使用総量の正当性を確認する（復元した第２電力使用総量に誤りがないか否かを検証する）。具体的には、ＭＡＣ検証部４２は、復号部４１が復元した第２電力使用総量のＭＡＣ値、ＭＤＭＳ１００から受信した第２電力使用総量の補正量、及びＳＭ２００との間で共有するＭＡＣ検証鍵を用いて、第２電力使用総量に誤りがないか否かを検証する。なお、記憶部９４には、ＳＭ２００との間で共有するＭＡＣ検証鍵を記憶している。
【００９２】
（ＭＡＣ検証方法）
本実施形態に係るＭＡＣ検証部４２で行われる具体的なＭＡＣ検証方法について説明する。ＭＡＣ検証部４２は、まず、ＳＭ２００との間で共有するＭＡＣ検証鍵Ｋｐ＿ｍａｃ、及び、ＭＤＭＳ１００から受信した第２電力使用総量の暗号データｃｐ＿ａｌｌに対応付けられた時刻ｔ（：ｔ１〜ｔ１４４０）を用いて、一時鍵Ｋｐ２＿ｔ（＝ｈ２（Ｋｐ，ｔ））を計算する。次にＭＡＣ検証部４２は、計算した一時鍵Ｋｐ２＿ｔに基づくストリーム暗号（ＳＴ（・））により鍵系列ＫｐＳＴ２＿ｔ（＝ＳＴ（Ｋｐ２＿ｔ））を計算する。その結果、ＭＡＣ検証部４２は、以下の（式２７）及び（式２８）により、復元した第２電力使用総量の正当性を確認する。
ＫｐＳＴ２＿ａｌｌ  ＝  ＫｐＳＴ２＿ｔ１＿ｍｓ＋・・・＋ＫｐＳＴ２＿ｔ１４４０＿ｍｓ  ・・・  （式２７）
Ｍａｃｐ＿ｔ  ＝？  （ｄｔｐ＿ａｌｌ−Δｄｐ＿ａｌｌ）×Ｋｐ＿ｍａｃ＋ＫｐＳＴ２＿ａｌｌ  ・・・  （式２８）
なお、式中に表現される（＝？）は、比較判定の演算子を表す。よって、ＭＡＣ検証部４２は、（式２８）の右辺の計算結果と第２電力使用総量のＭＡＣ値Ｍａｃｐ＿ｔとが一致するか否かの判定結果に基づき、第２電力使用総量に誤りがないか否かを検証する。
【００９３】
課金処理部４３は、集計範囲における使用電力に対して課金処理を行う。具体的には、課金処理部４３は、ＳＭ２００に対して課金処理を行う課金期間（第２単位時間）の経過ごとに、通信制御部４０を介して、ＭＤＭＳ１００に対し、リクエストコマンドを送信する。その結果、課金処理部４３は、ＭＤＭＳ１００からの受信データから、復号部４１で復元した第２電力使用総量に基づき、所定の課金価格に従って課金処理を行う。
【００９４】
本実施形態に係る課金サーバ４００は、上記機能により、ＭＤＭＳ１００から受信した第２電力使用総量の暗号データを復号することで電力使用量を復元する。次に課金サーバ４００は、受信した第２電力使用総量のＭＡＣ値を用いて、復元した電力使用量の正当性を確認し、確認した電力使用量に基づき、所定の処理を実行し、課金機能を提供する。
【００９５】
以上のように、本実施形態に係る電力使用量計算システム１０００の機能は、上記各機能部が連携動作することで実現される。具体的には、ＳＭ２００、ＭＤＭＳ１００、ＥＭＳ３００、及び課金サーバ４００それぞれにおいて、プログラムを実行することで、各機能部が連携動作する。
【００９６】
上記プログラムは、実行環境の各装置（コンピュータ）が読み取り可能な記録媒体に、インストール可能な形式又は実行可能な形式のファイルで記録され提供される。例えば、ＭＤＭＳ１００の場合には、プログラムは、上記各機能部を含むモジュール構成となっており、ＣＰＵ１０１が補助記憶装置１０３の記録媒体からプログラムを読み出し実行することで、主記憶装置１０２のＲＡＭ上に各機能部が生成される。なお、プログラムの提供方法は、この限りでない。例えば、プログラムを、インターネットなどに接続された外部機器に格納し、通信路Ｎ経由でダウンロードする方法であってもよい。また、主記憶装置１０２のＲＯＭや補助記憶装置１０３のＨＤＤなどに予め組み込んで提供する方法であってもよい。
【００９７】
以下に、本実施形態に係る電力使用量計算システム１０００の処理（各装置間における搭載機能部の連携動作）について、具体的な動作例とフローチャートとを用いて説明する。
【００９８】
《ＳＭ２００とＭＤＭＳ１００との動作》
図７は、本実施形態に係るＳＭ２００とＭＤＭＳ１００との動作例を示す図である。図７に示すように、各家庭や各事業所などに設置された１又は複数のＳＭ２００は、集計範囲における単位時間あたりの電力使用量を集計する。その後、ＳＭ２００は、集計した電力使用量を暗号化し、電力使用量の暗号データを生成する。また、ＳＭ２００は、生成した暗号データに対応するＭＡＣ値を生成する。このようにして生成された電力使用量の暗号データとＭＡＣ値は、ＭＤＭＳ１００に送信される。その後、ＭＤＭＳ１００は、受信データのＭＡＣ値に基づき、電力使用量の正当性を確認し、ＥＭＳ３００又は課金システム４などの各利用システムが利用する電力使用量を補正する。本実施形態に係る電力使用量計算システム１０００では、ＳＭ２００とＭＤＭＳ１００との間で上記動作が行われる。以下に、その間に行われる具体的な処理手順例について説明する。
【００９９】
図８は、本実施形態に係るＳＭ２００の処理手順例を示す図である。図８に示すように、ＳＭ２００は、各機能部により以下の処理を行う。
【０１００】
電力使用量集計部２１は、集計範囲における単位時間あたりに計測された電力使用量を集計する（ステップＳ１０１）。
【０１０１】
次に暗復号部２２は、ＭＤＭＳ１００、ＥＭＳ３００、及び課金システム４などの各利用システムそれぞれとの間で共有する暗復号の共通鍵と電力使用量の集計時刻とを用いて、一時鍵を生成する（ステップＳ１０２）。このとき暗復号部２２は、各利用システムに対応する一時鍵を生成する。次に暗復号部２２は、各利用システムに対応する一時鍵を鍵としたストリーム暗号により得られる鍵系列を用いて、集計した電力使用量を暗号化し、各利用システムが利用する電力使用量の暗号データを計算する（ステップＳ１０３）。具体的には、ＭＤＭＳ１００が利用する電力使用量の第１暗号データ、ＥＭＳ３００が利用する電力使用量の第２暗号データ、及び課金システム４が利用する電力使用量の第３暗号データを計算する。なお、暗復号部２２は、準同型の暗号化方法により暗号化を行う。
【０１０２】
次にＭＡＣ生成部２３は、各利用システムとの間で共有するＭＡＣ生成鍵を用いて、各利用システムが利用する電力使用量のＭＡＣ値を計算する（ステップＳ１０４）。具体的には、ＭＤＭＳ１００が利用する電力使用量の第１ＭＡＣ値、ＥＭＳ３００が利用する電力使用量の第２ＭＡＣ値、及び課金システム４が利用する電力使用量の第３ＭＡＣ値を計算する。
【０１０３】
その結果、通信制御部２０は、計算結果である電力使用量の第１〜第３暗号データ、第１〜第３ＭＡＣ値、及び集計時刻などをＭＤＭＳ１００に送信する（ステップＳ１０５）。なお、記憶部９２には、これらの計算結果が記憶される。
【０１０４】
図９は、本実施形態に係るＭＤＭＳ１００の処理手順例を示す図である。図９に示すように、ＭＤＭＳ１００は、各機能部により以下の処理を行う。
【０１０５】
通信制御部１０は、電力使用量の第１〜第３暗号データ、第１〜第３ＭＡＣ値、及び時刻などをＳＭ２００から受信する（ステップＳ２０１）。
【０１０６】
次に復号部１１は、ＳＭ２００との間で共有する暗復号の共通鍵を用いて、受信した第１暗号データを復号する（ステップＳ２０２）。このとき復号部１１は、ＳＭ２００との間で共有する共通鍵、及び、受信した第１暗号データに対応付けられた時刻を用いて、一時鍵を計算する。次に復号部１１は、計算した一時鍵を鍵としたストリーム暗号により得られた鍵系列を用いて、時刻における電力使用量を計算し、第１暗号データから電力使用量を復元する。
【０１０７】
次に補正部１２は、受信した第１ＭＡＣ値を用いて、復元した電力使用量の正当性を確認する（ステップＳ２０３）。このとき補正部１２は、復元した今回の電力使用量と過去に復元した電力使用量とを比較し、差分値が閾値以下か否かの判定などにより、今回復元した電力使用量に誤りがないか否かを判断し、正当性を検証する。次に補正部１２は、正当性の確認結果に基づき、復元した電力使用量を用いて、第２，第３暗号データの補正量を計算する（ステップＳ２０４）。その結果、補正部１２は、第１暗号データ、第１ＭＡＣ値、及び復元した電力使用量を記憶部９１から消去し（ステップＳ２０５）、補正した第２，第３暗号データ、第２，第３ＭＡＣ値、補正量、及び集計時刻を記憶部９１に記憶する（ステップＳ２０６）。このとき補正部１２は、補正した第２暗号データ及び第３暗号データと補正量とを組み合わせて記憶部９１に記憶する。
【０１０８】
このように、本実施形態に係る電力使用量計算システム１０００では、ＳＭ２００により、電力使用量を利用するＭＤＭＳ１００、ＥＭＳ３００、及び課金システム４などの各利用システムにより復号可能な電力使用量の暗号データ（第１〜第３暗号データ）がそれぞれ計算される。また、本実施形態に係る電力使用量計算システム１０００では、ＳＭ２００により、各利用システムが利用する電力使用量のＭＡＣ値がそれぞれ計算される（電力使用量の第１〜第３暗号データに対応する第１〜第３ＭＡＣ値が計算される）。その結果、本実施形態に係る電力使用量計算システム１０００では、計算結果をＳＭ２００からＭＤＭＳ１００に送信する。これを受けて本実施形態に係る電力使用量計算システム１０００では、ＭＤＭＳ１００により、ＳＭ２００から受信したＭＤＭＳ１００用の暗号データ（第１暗号データ）が復号される。本実施形態に係る電力使用量計算システム１０００では、復号された電力使用量に基づき、ＥＭＳ３００及び課金システム４などの各利用システム用の暗号データ（第２，第３暗号データ）がそれぞれ補正され、補正量が記憶される。
【０１０９】
《ＭＤＭＳ１００とＥＭＳ３００との動作》
図１０は、本実施形態に係るＭＤＭＳ１００とＥＭＳ３００との動作例を示す図である。図１０に示すように、ＭＤＭＳ１００は、ＥＭＳ３００からリクエストコマンドを受け付けると、ＥＭＳ３００が利用する電力使用量の暗号データを集計することにより、電力使用総量の暗号データを生成する。また、ＭＤＭＳ１００は、ＥＭＳ３００が利用する電力使用量のＭＡＣ値を合計することにより、電力使用総量のＭＡＣ値を生成する。このようにして生成された電力使用総量の暗号データとＭＡＣ値は、ＥＭＳ３００に送信され、要求元に応答される。これを受けてＥＭＳ３００は、受信した電力使用総量の暗号データを復号して電力使用総量を復元し、受信した電力使用総量のＭＡＣ値に基づき、復元した電力使用総量の正当性を確認し、電力使用総量に基づき、電力制御を行う。本実施形態に係る電力使用量計算システム１０００では、ＭＤＭＳ１００とＥＭＳ３００との間で上記動作が行われる。以下に、その間に行われる具体的な処理手順例について説明する。
【０１１０】
図１１は、本実施形態に係るＭＤＭＳ１００とＥＭＳ３００との処理手順例を示す図である。図１１（Ａ）には、ＥＭＳ３００で実行される処理が示され、図１１（Ｂ）には、ＭＤＭＳ１００で実行される処理が示されている。
【０１１１】
図１１（Ａ），（Ｂ）に示すように、ＥＭＳ３００とＭＤＭＳ１００とは、それぞれが有する各機能部により以下の処理を行う。
【０１１２】
（ＥＭＳ３００で実行される処理）
通信制御部３０は、電力制御で利用する第１電力使用総量のリクエストコマンドをＭＤＭＳ１００に送信し（ステップＳ３０１）、ＭＤＭＳ１００からデータを受信したか否かを判定する（ステップＳ３０２）。
【０１１３】
その結果、通信制御部３０は、ＭＤＭＳ１００からデータを受信したと判定すると（ステップＳ３０２：ＹＥＳ）、第１電力使用総量の暗号データ、ＭＡＣ値、及び補正量などをＭＤＭＳ１００から受信する。なお、通信制御部３０は、ＭＤＭＳ１００からデータを受信していないと判定すると（ステップＳ３０２：ＮＯ）、データを受信するまでステップＳ３０２の処理を繰り返す。
【０１１４】
データ受信を受けて、復号部３１は、ＳＭ２００との間で共有する暗復号の共通鍵を用いて、受信した第１電力使用総量の暗号データを復号する（ステップＳ３０３）。このとき復号部３１は、ＳＭ２００との間で共有する共通鍵、及び、受信した第１電力使用総量の暗号データに対応付けられた時刻を用いて、一時鍵を計算する。次に復号部３１は、計算した一時鍵を鍵としたストリーム暗号により得られた鍵系列を用いて、複数の集計範囲の同じ時刻の電力使用総量を計算し、第１電力使用総量の暗号データから第１電力使用総量を復元する。
【０１１５】
次にＭＡＣ検証部３２は、第１電力使用総量のＭＡＣ値を用いて、復元した第１電力使用総量の正当性を確認する（ステップＳ３０４）。このときＭＡＣ検証部３２は、ＳＭ２００との間で共有するＭＡＣ検証鍵、及び、受信した第１電力使用総量の暗号データに対応付けられた時刻を用いて、一時鍵を計算する。次にＭＡＣ検証部３２は、計算した一時鍵に基づくストリーム暗号により得られた鍵系列を合計する。これにより、ＭＡＣ検証部３２は、合計結果と第１電力使用総量のＭＡＣ値とを用いた所定の条件式に従って、第１電力使用総量に誤りがないか否かを判定し、正当性を確認する。
【０１１６】
その後、電力制御判定部３３は、第１電力使用総量に基づき、電力制御処理を実施する（ステップＳ３０５）。このとき電力制御判定部３３は、復元した第１電力使用総量に基づき、電力制御を行うか否かを判定し、判定結果に従って制御する。
【０１１７】
（ＭＤＭＳ１００で実行される処理）
通信制御部１０は、電力制御で利用する第１電力使用総量のリクエストコマンドをＥＭＳ３００から受信したか否かを判定する（ステップＳ４０１）。
【０１１８】
その結果、通信制御部１０は、ＥＭＳ３００からリクエストコマンドを受信したと判定すると（ステップＳ４０１：ＹＥＳ）、ＥＭＳ３００からの要求に対して応答する処理に移行する。なお、通信制御部１０は、ＥＭＳ３００からリクエストコマンドを受信していないと判定すると（ステップＳ４０１：ＮＯ）、リクエストコマンドを受信するまでステップＳ４０１の処理を繰り返す。
【０１１９】
リクエストコマンド受信を受けて、暗号データ集計部１３は、ＥＭＳ３００が利用する（要求された）電力使用量の第２暗号データを用いて、第１電力使用総量の暗号データを計算する（ステップＳ４０２）。このとき暗号データ集計部１３は、ＥＭＳ３００が利用する電力使用量の第２暗号データを、同じ集計時刻における複数の集計範囲（複数のＳＭ２００）を対象に集計し、第１電力使用総量の暗号データを計算する。また、このとき暗号データ集計部１３は、第２暗号データの補正に用いた補正量を用いて、第１電力使用総量の補正量（合計値）を計算する。
【０１２０】
次にＭＡＣ合計部１４は、第２暗号データに対応する第２ＭＡＣ値を用いて、第１電力使用総量のＭＡＣ値を計算する（ステップＳ４０３）。このときＭＡＣ合計部１４は、第１電力使用総量の計算に用いた第２暗号データに対応する第２ＭＡＣ値を合計し、第１電力使用総量のＭＡＣ値を計算する。
【０１２１】
その結果、通信制御部１０は、計算結果である第１電力使用総量の暗号データ、ＭＡＣ値、及び補正量などをＥＭＳ３００に送信する（ステップＳ４０４）。なお、記憶部９１には、これらの計算結果が記憶される。
【０１２２】
このように、本実施形態に係る電力使用量計算システム１０００では、ＭＤＭＳ１００が、ＥＭＳ３００から要求を受け付けると、ＥＭＳ３００用の暗号データを用いて、集計範囲における単位時間あたりの第１電力使用総量の暗号データが計算される。次に本実施形態に係る電力使用量計算システム１０００では、ＭＤＭＳ１００により、電力使用量のＭＡＣ値が合計され、第１電力使用総量のＭＡＣ値が計算される。その結果、本実施形態に係る電力使用量計算システム１０００では、計算結果がＭＤＭＳ１００から要求元のＥＭＳ３００に送信され、応答される。これにより、本実施形態に係る電力使用量計算システム１０００では、ＥＭＳ３００により、ＭＤＭＳ１００から受信した第１電力使用総量の暗号データを復号することで電力使用量を復元される。次に本実施形態に係る電力使用量計算システム１０００では、ＥＭＳ３００により、受信した第１電力使用総量のＭＡＣ値を用いて、復元された電力使用量の正当性が確認され、確認された電力使用量に基づき、所定の処理が実行され、電力制御機能が提供される。
【０１２３】
《ＭＤＭＳ１００と課金サーバ４００との動作》
図１２は、本実施形態に係るＭＤＭＳ１００と課金サーバ４００との動作例を示す図である。図１２に示すように、ＭＤＭＳ１００は、課金サーバ４００からリクエストコマンドを受け付けると、課金サーバ４００が利用する電力使用量の暗号データを集計することにより、電力使用総量の暗号データを生成する。また、ＭＤＭＳ１００は、課金サーバ４００が利用する電力使用量のＭＡＣ値を合計することにより、電力使用総量のＭＡＣ値を生成する。このようにして生成された電力使用総量の暗号データと合計ＭＡＣ値は、課金サーバ４００に送信され、要求元に応答される。これを受けて課金サーバ４００は、受信した電力使用総量の暗号データを復号して電力使用総量を復元し、受信した電力使用総量のＭＡＣ値に基づき、復元した電力使用総量の正当性を確認し、電力使用総量に基づき、課金を行う。本実施形態に係る電力使用量計算システム１０００では、ＭＤＭＳ１００と課金サーバ４００との間で上記動作が行われる。以下に、その間に行われる具体的な処理手順例について説明する。
【０１２４】
図１３は、本実施形態に係るＭＤＭＳ１００と課金サーバ４００との処理手順例を示す図である。図１３（Ａ）には、課金サーバ４００で実行される処理が示され、図１３（Ｂ）には、ＭＤＭＳ１００で実行される処理が示されている。
【０１２５】
図１３（Ａ），（Ｂ）に示すように、課金サーバ４００とＭＤＭＳ１００とは、それぞれが有する各機能部により以下の処理を行う。
【０１２６】
（課金サーバ４００で実行される処理）
通信制御部４０は、課金で利用する第２電力使用総量のリクエストコマンドをＭＤＭＳ１００に送信し（ステップＳ５０１）、ＭＤＭＳ１００からデータを受信したか否かを判定する（ステップＳ５０２）。
【０１２７】
その結果、通信制御部４０は、ＭＤＭＳ１００からデータを受信したと判定すると（ステップＳ５０２：ＹＥＳ）、第２電力使用総量の暗号データ、ＭＡＣ値、及び補正量などをＭＤＭＳ１００から受信する。なお、通信制御部４０は、ＭＤＭＳ１００からデータを受信していないと判定すると（ステップＳ５０２：ＮＯ）、データを受信するまでステップＳ５０２の処理を繰り返す。
【０１２８】
データ受信を受けて、復号部４１は、ＳＭ２００との間で共有する暗復号の共通鍵を用いて、受信した第２電力使用総量の暗号データを復号する（ステップＳ５０３）。このとき復号部４１は、ＳＭ２００との間で共有する共通鍵、及び、受信した第２電力使用総量の暗号データに対応付けられた時刻（時系列）を用いて、一時鍵を計算する。次に復号部４１は、計算した一時鍵を鍵としたストリーム暗号により得られた鍵系列を用いて、集計範囲の時系列の電力使用総量を計算し、第２電力使用総量の暗号データから第２電力使用総量を復元する。
【０１２９】
次にＭＡＣ検証部４２は、第２電力使用総量のＭＡＣ値を用いて、復元した第２電力使用総量の正当性を確認する（ステップＳ５０４）。このときＭＡＣ検証部４２は、ＳＭ２００との間で共有するＭＡＣ検証鍵、及び、受信した第２電力使用総量の暗号データに対応付けられた時刻を用いて、一時鍵を計算する。次にＭＡＣ検証部４２は、計算した一時鍵に基づくストリーム暗号により得られた鍵系列を合計する。これにより、ＭＡＣ検証部４２は、合計結果と第２電力使用総量のＭＡＣ値とを用いた所定の条件式に従って、第２電力使用総量に誤りがないか否かを判定し、正当性を確認する。
【０１３０】
その後、課金処理部４３は、第２電力使用総量に基づき、課金処理を実施する（ステップＳ５０５）。このとき課金処理部４３は、復元した第２電力使用総量に基づき、所定の課金価格に従って課金する。
【０１３１】
（ＭＤＭＳ１００で実行される処理）
通信制御部１０は、課金で利用する第２電力使用総量のリクエストコマンドを課金サーバ４００から受信したか否かを判定する（ステップＳ６０１）。
【０１３２】
その結果、通信制御部１０は、課金サーバ４００からリクエストコマンドを受信したと判定すると（ステップＳ６０１：ＹＥＳ）、課金サーバ４００からの要求に対して応答する処理に移行する。なお、通信制御部１０は、課金サーバ４００からリクエストコマンドを受信していないと判定すると（ステップＳ６０１：ＮＯ）、リクエストコマンドを受信するまでステップＳ６０１の処理を繰り返す。
【０１３３】
リクエストコマンド受信を受けて、暗号データ集計部１３は、課金サーバ４００が利用する（要求された）電力使用量の第３暗号データを用いて、第２電力使用総量の暗号データを計算する（ステップＳ６０２）。このとき暗号データ集計部１３は、課金システム４が利用する電力使用量の第３暗号データを、同じ集計範囲（同じＳＭ２００）における複数の集計時刻（時系列）を対象に集計し、第２電力使用総量の暗号データを計算する。また、このとき暗号データ集計部１３は、第３暗号データの補正に用いた補正量を用いて、第２電力使用総量の補正量（合計値）を計算する。
【０１３４】
次にＭＡＣ合計部１４は、第３暗号データに対応する第３ＭＡＣ値を用いて、第２電力使用総量のＭＡＣ値を計算する（ステップＳ６０３）。このときＭＡＣ合計部１４は、第２電力使用総量の計算に用いた第３暗号データに対応する第３ＭＡＣ値を合計し、第２電力使用総量のＭＡＣ値を計算する。
【０１３５】
その結果、通信制御部１０は、計算結果である第２電力使用総量の暗号データ、ＭＡＣ値、及び補正量などを課金サーバ４００に送信する（ステップＳ６０４）。なお、記憶部９１には、これらの計算結果が記憶される。
【０１３６】
このように、本実施形態に係る電力使用量計算システム１０００では、ＭＤＭＳ１００が、課金サーバ４００から要求を受け付けると、課金サーバ４００用の暗号データを用いて、集計範囲における単位時間あたりの第２電力使用総量の暗号データが計算される。次に本実施形態に係る電力使用量計算システム１０００では、ＭＤＭＳ１００により、電力使用量のＭＡＣ値が合計され、第２電力使用総量のＭＡＣ値が計算される。その結果、本実施形態に係る電力使用量計算システム１０００では、計算結果がＭＤＭＳ１００から要求元の課金サーバ４００に送信され、応答される。これにより、本実施形態に係る電力使用量計算システム１０００では、課金サーバ４００により、ＭＤＭＳ１００から受信した第２電力使用総量の暗号データを復号することで電力使用量が復元される。次に本実施形態に係る電力使用量計算システム１０００では、課金サーバ４００により、受信した第２電力使用総量のＭＡＣ値を用いて、復元された電力使用量の正当性が確認され、確認された電力使用量に基づき、所定の処理が実行され、課金機能が提供される。
【０１３７】
＜まとめ＞
以上のように、本実施形態に係る電力使用量計算システム１０００によれば、ＳＭ２００は、電力使用量を利用するＭＤＭＳ１００、ＥＭＳ３００、及び課金システム４などの各利用システムにより復号可能な電力使用量の暗号データをそれぞれ計算する。また、ＳＭ２００は、各利用システムが利用する電力使用量のＭＡＣ値をそれぞれ計算する。その結果、ＳＭ２００は、計算結果をＭＤＭＳ１００に送信する。これを受けてＭＤＭＳ１００は、ＳＭ２００から受信したＭＤＭＳ１００用の暗号データを復号する。次にＭＤＭＳ１００は、復号した電力使用量に基づき、ＥＭＳ３００及び課金システム４などの各利用システム用の暗号データをそれぞれ補正し、補正量を記憶する。その後、ＭＤＭＳ１００は、ＥＭＳ３００又は課金システム４などの各利用システムから要求を受け付ける。ＭＤＭＳ１００は、要求を受け付けた利用システム用の暗号データを用いて、集計範囲における単位時間あたりの電力使用総量の暗号データをそれぞれ計算する。次にＭＤＭＳ１００は、電力使用量のＭＡＣ値を合計して、電力使用総量のＭＡＣ値をそれぞれ計算する。その結果、ＭＤＭＳ１００は、計算結果を要求元の利用システムに送信し、要求に応答する。これにより、ＥＭＳ３００又は課金システム４などの各利用システムは、ＭＤＭＳ１００から受信した電力使用総量の暗号データを復号することで電力使用量を復元する。次に各利用システムは、受信した電力使用総量のＭＡＣ値を用いて、復元した電力使用量の正当性を確認し、確認した電力使用量に基づき、所定の処理を実行し、所定の機能を提供する。
【０１３８】
これによって、本実施形態に係る電力使用量計算システム１０００では、装置内に記憶される電力使用量や装置間で送受信される電力使用量を暗号化し隠蔽することにより、計測先のプライバシーを保護することができる。また、本実施形態に係る電力使用量計算システム１０００では、電力使用量や電力使用総量に対して、それぞれＭＡＣ値を計算し、計算した各ＭＡＣ値を、電力使用量や電力使用総量のそれぞれに対応付けて管理することにより、データの改ざんを検出することができる。
【０１３９】
なお、上記実施形態では、電力使用量計算システム１０００の機能が、ソフトウェアの実装により実現する例を説明したが、この限りでない。例えば、上記各機能部の一部又は全部を、ハードウェア（例えば「回路」）の実装により実現してもよい。
【０１４０】
また、上記実施形態では、ＳＭ２００と、ＭＤＭＳ１００、ＥＭＳ３００、又は課金システム４などの各利用システムそれぞれとの間で鍵を共有する例を説明したが、この限りでない。例えば、ＳＭ２００とＭＤＭＳ１００とＥＭＳ３００との間で鍵を共有してもよい。また、ＳＭ２００とＭＤＭＳ１００と課金システム４との間で鍵を共有してもよい。
【０１４１】
また、上記実施形態では、電力使用量計算システム１０００を例に説明を行ったが、この限りでない。本実施形態に係る機能を適用可能な他のシステムには、例えばガスの使用量を計算するシステムなどが考えられる。本実施形態に係る適用可能なシステムは、ネットワークを介して、計測機器とサーバとが接続され、サーバが、計測機器から使用量の計測値を集計することで使用総量を計算し、計算した使用総量を用いたサービスを提供するシステムであればよい。
【０１４２】
［変形例］
上記実施形態では、（式８）から（式１１）を用いたＭＡＣ生成方法、及び、（式２４），（式２８）を用いたＭＡＣ検証方法について説明を行った。本変形例では、上記実施形態と異なるＭＡＣ生成方法、ＭＡＣ合計方法、及びＭＡＣ検証方法を用いて、データの改ざんを検出できる例を提案する。なお、以下には、上記実施形態と同様の事項について同じ符号を付し、その説明を省略し、異なる事項について説明を行う。
【０１４３】
《ＳＭ２００の機能》
（ＭＡＣ生成方法）
本変形例に係るＳＭ２００の機能では、各利用システムに対応するＭＡＣ値を、次のような式により計算する。本変形例に係るＭＡＣ生成部２３は、時刻ｔに集計された電力使用量をｄｔとしたとき、課金サーバ４００との間で共有するＭＡＣ生成鍵Ｋｐ＿ｍａｃを用いて、以下の（式２９）により、課金システム４が利用する電力使用量ｄｔの第３ＭＡＣ値Ｍａｃｐ＿ｔを計算する。
Ｍａｃｐ＿ｔ  ＝  Ｋｐ＿ｍａｃ＾ｄｔ  ・・・  （式２９）
【０１４４】
同様にして、ＭＡＣ生成部２３は、ＥＭＳ３００との間で共有するＭＡＣ生成鍵Ｋｅ＿ｍａｃを用いて、以下の（式３０）により、ＥＭＳ３００が利用する電力使用量ｄｔの第２ＭＡＣ値Ｍａｃｅ＿ｔを計算する。
Ｍａｃｅ＿ｔ  ＝Ｋｅ＿ｍａｃ＾ｄｔ  ・・・  （式３０）
【０１４５】
同様にして、ＭＡＣ生成部２３は、ＭＤＭＳ１００との間で共有するＭＡＣ生成鍵Ｋｍ＿ｍａｃを用いて、以下の（式３１）により、ＭＤＭＳ１００が利用する電力使用量ｄｔの第１ＭＡＣ値Ｍａｃｍ＿ｔを計算する。
Ｍａｃｍ＿ｔ  ＝  Ｋｍ＿ｍａｃ＾ｄｔ  ・・・  （式３１）
【０１４６】
《ＥＭＳ３００の機能》
（ＭＡＣ検証方法）
本変形例に係るＥＭＳ３００の機能では、ＭＡＣ検証部３２により、一時鍵の計算及び計算した一時鍵に基づく鍵系列の計算を行わない。本変形例に係るＭＡＣ検証部３２は、第１電力使用総量の正当性を、次のような式により確認する。ＭＡＣ検証部３２は、ＳＭ２００との間で共有するＭＡＣ生成鍵Ｋｅ＿ｍａｃを用いて、以下の（式３２）により、復号部３１が復元した第１電力使用総量の正当性を確認する。
Ｍａｃｅ＿ｔ  ＝？  （Ｋｅ＿ｍａｃ＾ｄｔｅ＿ａｌｌ）÷（Ｋｅ＿ｍａｃ＾Δｄｅ＿ａｌｌ）  ・・・  （式３２）
よって、ＭＡＣ検証部３２は、（式３２）の計算結果と第１電力使用総量のＭＡＣ値Ｍａｃｅ＿ｔとが一致するか否かの判定結果に基づき、第１電力使用総量に誤りがないか否かを検証する。
【０１４７】
《課金サーバ４００の機能》
（ＭＡＣ検証方法）
本変形例に係る課金サーバ４００の機能では、ＭＡＣ検証部４２により、一時鍵の計算及び計算した一時鍵に基づく鍵系列の計算を行わない。本変形例に係るＭＡＣ検証部４２は、第２電力使用総量の正当性を、次のような式により確認する。ＭＡＣ検証部４２は、ＳＭ２００との間で共有するＭＡＣ生成鍵Ｋｐ＿ｍａｃを用いて、以下の（式３３）により、復号部４１が復元した第２電力使用総量の正当性を確認する。
Ｍａｃｐ＿ｔ  ＝？  （Ｋｐ＿ｍａｃ＾ｄｔｐ＿ａｌｌ）÷（Ｋｐ＿ｍａｃ＾Δｄｐ＿ａｌｌ）  ・・・  （式３３）
よって、ＭＡＣ検証部３２は、（式３３）の計算結果と第２電力使用総量のＭＡＣ値Ｍａｃｅ＿ｔとが一致するか否かの判定結果に基づき、第２電力使用総量に誤りがないか否かを検証する。
【０１４８】
以上のように、本変形例では、このようなＭＡＣ生成方法及びＭＡＣ検証方法を用いることで、上記実施形態と同様の効果を奏することができる。また、本変形例では、上記実施形態に示す方法に比べてＭＡＣ検証時の計算量が削減できることから、処理時間などの計算コストを軽減することができ、ＥＭＳ３００や課金システム４における処理効率を図ることができる。
【０１４９】
最後に、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１５０】
２        データ集計システム
４        課金システム
１０，２０，３０，４０  通信制御部
１１，３１，４１  復号部
１２      補正部
１３      暗号データ集計部
１４      ＭＡＣ合計部
２１      電力使用量集計部
２２      暗復号部
２３      ＭＡＣ生成部
３２，４２  ＭＡＣ検証部
３３      電力制御判定部
４３      課金処理部
１００    ＭＤＭＳ（データ管理装置）
２００    ＳＭ（データ集計装置）
３００    ＥＭＳ（エネルギー管理装置）
４００    課金サーバ
１０００  電力使用量計算システム
【図１】
2014209677.tif 000003
【図２】
2014209677.tif 000004
【図３】
2014209677.tif 000005
【図４】
2014209677.tif 000006
【図５】
2014209677.tif 000007
【図６】
2014209677.tif 000008
【図７】
2014209677.tif 000009
【図８】
2014209677.tif 000010
【図９】
2014209677.tif 000011
【図１０】
2014209677.tif 000012
【図１１】
2014209677.tif 000013
【図１２】
2014209677.tif 000014
【図１３】
2014209677.tif 000015