(57)【要約】【課題】データの真正性を確保しつつ処理の効率化を図ることができる署名生成装置、署名生成方法、及び署名生成プログラムを提供する。【解決手段】署名生成装置は、生成部と更新部を備える。生成部は、所定数の第１仮データを含むデータ系列とデータ系列に対応する仮署名を生成する。更新部は、データ系列の第１仮データを第１実データに置き換えて仮署名を更新し、すべての第１仮データを第１実データに置き換えることで第１実データを含むデータ系列に対応する署名を生成する。【選択図】図４
2014241465.tif 000002
【特許請求の範囲】
【請求項１】
所定数の第１仮データを含むデータ系列と前記データ系列に対応する仮署名を生成する生成部と、
前記データ系列の前記第１仮データを第１実データに置き換えて前記仮署名を更新し、すべての前記第１仮データを前記第１実データに置き換えることで前記第１実データを含む前記データ系列に対応する署名を生成する更新部と、を備えることを特徴とする署名生成装置。
【請求項２】
前記生成部は、
前記第１実データを受け付ける前に、前記仮署名を計算することを特徴とする請求項１に記載の署名生成装置。
【請求項３】
予め定められた値の第１仮データを前記データ系列における前記第１実データの初期値として記憶し、予め定められた値の第２仮データを第２実データの初期値として記憶する記憶部を、さらに備え、
前記生成部は、
前記第１仮データと１又は複数の前記第２仮データとに基づき、前記仮署名を計算することを特徴とする請求項１に記載の署名生成装置。
【請求項４】
前記更新部は、
前記記憶部から前記第１仮データと前記第２仮データを読み出し、
前記第１仮データを前記第１実データに置き換え、前記乱数成分として利用する前記第２実データを計算し、前記第２仮データを、計算した前記第２実データで更新することを特徴とする請求項３に記載の署名生成装置。
【請求項５】
所定時間経過ごとに前記実データを受け付ける受付部を、さらに備えることを特徴とする請求項１に記載の署名生成装置。
【請求項６】
前記生成部は、
所定数の前記第１仮データを含むデータ系列と前記第１仮データを含むデータ系列に対応する前記仮署名を生成し、
前記更新部は、
前記データ系列の前記第１仮データを、前記第１実データに相当する、集計した前記電力使用量の計測データに置き換えて前記仮署名を更新し、すべての前記第１仮データを前記電力使用量の計測データに置き換えることで前記計測データを含む前記電力使用量のデータ系列に対応する前記署名を生成することを特徴とする請求項１に記載の署名生成装置。
【請求項７】
所定数の第１仮データを含むデータ系列と前記データ系列に対応する仮署名を生成する生成工程と、
前記データ系列の前記第１仮データを第１実データに置き換えて前記仮署名を更新し、すべての前記第１仮データを前記第１実データに置き換えることで前記第１実データを含む前記データ系列に対応する署名を生成する更新工程と、を含むことを特徴とする署名生成方法。
【請求項８】
コンピュータに、
所定数の第１仮データを含むデータ系列と前記データ系列に対応する仮署名を生成する生成工程と、
前記データ系列の前記第１仮データを第１実データに置き換えて前記仮署名を更新し、すべての前記第１仮データを前記第１実データに置き換えることで前記第１実データを含む前記データ系列に対応する署名を生成する更新工程と、を実行させる署名生成プログラム。
【請求項９】
所定時間経過ごとに電力使用量の計測データを受け付ける受付部と、
前記電力使用量の計測データを受け付ける前に、所定数の第１仮データを含むデータ系列と前記データ系列に対応する仮署名を生成する生成部と、
前記データ系列の前記第１仮データを、第１実データに相当する、集計した前記電力使用量の計測データに置き換えて前記仮署名を更新し、すべての前記第１仮データを前記電力使用量の計測データに置き換えることで前記計測データを含む前記電力使用量のデータ系列に対応する署名を生成する更新部と、
前記電力使用量のデータ系列、前記電力使用量の計測データ、及び前記署名を送信する第１送信部と、を備える署名生成装置と、
前記署名生成装置から送信されたデータを受信する第１受信部と、
受信した前記署名が前記電力使用量のデータ系列に対して正当な署名か否かを検証する第１検証部と、
前記電力使用量のデータ系列、前記電力使用量の計測データ、及び前記署名を送信する第２送信部と、を備えるデータ管理システムと、
前記データ管理システムから送信されたデータを受信する第２受信部と、
受信した前記署名が前記電力使用量のデータ系列に対して正当な署名か否かを検証する第２検証部と、
受信した前記電力使用量の計測データに基づき、アプリケーションソフトウェアを実行し、所定の機能を提供する実行部と、を備える機能提供システムと、を備える電力使用量計算システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、署名生成装置、署名生成方法、署名生成プログラム、及び電力使用量計算システムに関する。
【背景技術】
【０００２】
電力使用量計算システムでは、単位時間あたりの電力使用量が計測され、計測データを集計することで、総電力使用量が計算される。そのため、計測した電力使用量が、第三者などにより改ざんされると、電力使用量に基づく計算が正しく行えず、計算値に基づく正確な機能提供ができなくなる恐れがある。そこで、電力使用量計算システムでは、電力使用量の真正性を確保する必要がある。これに対して、従来から、データの真正性を確保する署名生成技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−７５８６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、計算量や処理時間などの処理コストが大きく、効率的な署名生成処理を行うことができない。
【課題を解決するための手段】
【０００５】
実施形態に係る署名生成装置は、所定数の仮データを含むデータ系列と前記データ系列に対応する仮署名を生成する。実施形態に係る署名生成装置は、前記データ系列の前記仮データを実データに置き換えて前記仮署名を更新し、すべての前記仮データを前記実データに置き換えることで前記実データを含む前記データ系列に対応する署名を生成する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態に係る電力使用量計算システムの構成例を示す図。
【図２】第１の実施形態に係るＳＭの装置構成例を示す図。
【図３】署名生成方法の概略図。
【図４】第１の実施形態に係るＳＭの機能構成例を示す図。
【図５】第１の実施形態に係るＭＤＭＳの機能構成例を示す図。
【図６】第１の実施形態に係るアプリケーションシステムの機能構成例を示す図。
【図７】第１の実施形態に係るＳＭで実行される処理手順例を示すフローチャート。
【図８】第１の実施形態に係るＭＤＭＳで実行される処理手順例を示すフローチャート。
【図９】第１の実施形態に係るアプリケーションシステムで実行される処理手順例を示すフローチャート。
【発明を実施するための形態】
【０００７】
以下に、添付図面を参照して、署名生成装置、署名生成方法、及び署名生成プログラムの実施形態を詳細に説明する。
【０００８】
［第１の実施形態］
＜システム概要＞
まず、本実施形態に係る電力使用量計算システムの概要について説明する。スマートグリッドと呼ばれる次世代電力網では、電気機器の電力使用量を集計する電力メータに相当するスマートメータ（Smart  Meter；以下「ＳＭ」という）が、各家庭などの電力使用量の集計範囲ごとに設置される。ＳＭは、電力網を介してデータ管理装置に相当するメータデータ管理システム（Meter  Data  Management  System；以下「ＭＤＭＳ」という）と通信する。ＭＤＭＳは、単位時間あたりの電力使用量をＳＭから収集する。ＭＤＭＳが収集した単位時間あたりの電力使用量は、例えば、電力使用量計算システムが備える課金サーバや見える化サーバにより利用される。課金サーバは、ＭＤＭＳが収集した単位時間あたりの電力使用量に基づき、予め定めておいた期間における総電力使用量を求め、各家庭の電力使用に対する課金処理を行う。また、見える化サーバは、各家庭からの要求を受けて、ＭＤＭＳが収集した単位時間あたりの電力使用量をグラフで表示するなどの可視化処理を行い、節電行動の参考情報を提供する。このように、課金サーバや見える化サーバでは、ＭＤＭＳがＳＭから収集した電力使用量を利用し、課金処理や可視化処理などを実行する。
【０００９】
＜システム構成＞
図１は、本実施形態に係る電力使用量計算システム１０００の構成例を示す図である。図１に示すように、本実施形態に係る電力使用量計算システム１０００は、ＳＭ１００、ＭＤＭＳ２００、及びアプリケーションシステム３００などを備え、データ伝送路ＮＷを介して相互に接続される。データ伝送路ＮＷは、例えば、ＬＡＮ（Local  Area  Network）、イントラネット、イーサネット（登録商標）、又はインターネットなどである。また、データ伝送路ＮＷを介した通信は、例えば、ＯｐｅｎＳＳＬ（Secure  Sockets  Layer）などを用いた暗号化通信であってもよい。
【００１０】
ＳＭ１００は、集計範囲で使用される電気機器の単位時間あたりの電力使用量を集計するデータ集計装置である。ここでいう集計範囲とは、例えば、ＳＭ１００が設置された家庭内の各エリアなどである。また、単位時間とは、電力使用量の集計期間を表す時間であり、例えば、１５分や３０分などである。
【００１１】
また、ＳＭ１００は、集計した電力使用量の真正性を確保するための署名を生成する署名生成装置でもある。そのため、ＳＭ１００は、署名生成に用いる秘密鍵と署名検証に用いる検証鍵とを保持している。秘密鍵と検証鍵は、工場出荷時にＳＭ１００に記憶されてもよいし、設置時に内部で生成してもよい。また、例えば、鍵管理サーバ（非図示）が、生成した秘密鍵と検証鍵を管理し、データ伝送路ＮＷを介して、設置されたＳＭ１００に提供するようにしてもよい。
【００１２】
ＳＭ１００が集計した単位時間あたりの電力使用量には、少なくとも、ＳＭ１００を識別するための識別情報（以下「ＳＭ識別情報」という）と、集計時刻を表す時刻情報（以下「集計時刻情報」という）とが対応付けられる。これにより、ＳＭ１００は、例えば、電力使用量に対応付けられたＳＭ識別情報、集計時刻情報、及び秘密鍵を用いて、電力使用量に対応する署名を生成する。なお、電力使用量に対応する署名は、電力使用量に対応付けられたＳＭ識別情報や集計時刻情報以外の情報をさらに用いて生成するようにしてもよい。
【００１３】
ＭＤＭＳ２００は、データ伝送路ＮＷを介して、ＳＭ１００から電力使用量を収集し、管理するデータ管理システムである。ＭＤＭＳ２００は、ＳＭ識別情報を用いて、ＳＭ１００から収集した電力使用量を管理する。なお、図中には１つのＳＭ１００が図示されているが、上述したように、ＳＭ１００は各家庭などに設置されることから、電力使用量計算システム１０００には、複数のＳＭ１００が接続されるのが一般的である。よって、ＭＤＭＳ２００は、複数のＳＭ１００から収集した電力使用量を管理する。なお、ＭＤＭＳ２００は、複数の情報処理装置で構成してもよいし、単体の情報処理装置で構成してもよい。本実施形態に係るＭＤＭＳ２００は、単体の情報処理装置で構成されている。よって、本実施形態に係るＭＤＭＳ２００は、データ管理装置に相当する。
【００１４】
アプリケーションシステム３００は、アプリケーションソフトウェアを実行し、所定の機能を提供する機能提供システムである。アプリケーションシステム３００は、複数の情報処理装置で構成してもよいし、単体の情報処理装置で構成してもよい。また、複数の情報処理装置で構成される場合には、その一部の装置はＭＤＭＳ２００の装置と同一であってもよい。本実施形態に係るアプリケーションシステム３００は、課金機能を提供する課金サーバ３０１と電力使用量の可視化機能を提供する見える化サーバ３０２などの複数の情報処理装置で構成されている。よって、本実施形態に係る課金サーバ３０１又は見える化サーバ３０２は、アプリケーションサーバ（機能提供装置）に相当する。
【００１５】
課金サーバ３０１は、集計範囲における課金期間の総電力使用量に基づき、各集計範囲の電力使用に対する課金処理を行う。ここでいう課金期間とは、課金対象（アプリケーション実行対象）とする電力使用期間を表す時間や日時であり、例えば、１ヶ月や２カ月などである。見える化サーバ３０２は、集計範囲における単位時間あたりの電力使用量の可視化処理を行い、可視化情報を提供する。なお、課金サーバ３０１や見える化サーバ３０２は、複数の情報処理装置で構成してもよいし、単体の情報処理装置で構成してもよい。
【００１６】
また、ＭＤＭＳ２００、課金サーバ３０１、及び見える化サーバ３０２は、ＳＭ識別情報、又は集計範囲を識別するための識別情報（以下「集計範囲識別情報」という）を保持している。また、ＭＤＭＳ２００、課金サーバ３０１、及び見える化サーバ３０２は、ＳＭ１００で生成された署名の検証に用いるための検証鍵を保持している。検証鍵は、データ伝送路ＮＷを介して、ＳＭ１００から送信され、ＭＤＭＳ２００、課金サーバ３０１、及び見える化サーバ３０２に保持される。
【００１７】
次に、本実施形態に係る電力使用量計算システム１０００の概略動作例について説明する。ＳＭ１００は、単位時間あたりの電力使用量を集計し、秘密鍵を用いて、電力使用量のデータ系列に対応する署名を生成する。ＳＭ１００は、電力使用量のデータ系列と生成した署名とをＭＤＭＳ２００に送信する。これを受けてＭＤＭＳ２００は、検証鍵を用いて、受信データの検証処理を行い、受信データが改ざんされていないかを確認する。ＭＤＭＳ２００は、受信データの改ざんが確認されなければ、受信データを保持する。一方、ＭＤＭＳ２００は、受信データの改ざんが確認されれば、エラーを出力する。
【００１８】
また、課金サーバ３０１は、ＭＤＭＳ２００に対して、課金期間内の電力使用量を要求し、ＭＤＭＳ２００から、該当する電力使用量のデータ系列と署名とを受信する。これを受けて課金サーバ３０１は、検証鍵を用いて、受信データの検証処理を行い、受信データが改ざんされていないかを確認する。課金サーバ３０１は、受信データの改ざんが確認されなければ、課金期間の総電力使用量に基づく課金処理を行う。一方、課金サーバ３０１は、受信データの改ざんが確認されれば、エラーを出力する。
【００１９】
また、見える化サーバ３０２は、ＭＤＭＳ２００に対して、単位時間あたりの電力使用量を要求し、ＭＤＭＳ２００から、該当する電力使用量のデータ系列と署名とを受信する。これを受けて見える化サーバ３０２は、検証鍵を用いて、受信データの検証処理を行い、受信データが改ざんされていないかを確認する。見える化サーバ３０２は、受信データの改ざんが確認されなければ、単位時間あたりの電力使用量の可視化処理を行い、可視化情報を提供する。一方、見える化サーバ３０２は、受信データの改ざんが確認されれば、エラーを出力する。
【００２０】
＜装置構成＞
図２は、本実施形態に係るＳＭ１００の装置構成例を示す図である。図２に示すように、ＳＭ１００は、ＣＰＵ（Central  Processing  Unit）１０１、主記憶装置１０２、補助記憶装置１０３、通信ＩＦ（Interface）１０４、及び外部ＩＦ１０５などを備え、バスＢを介して相互に接続される。
【００２１】
ＣＰＵ１０１は、装置全体の制御や搭載機能を実現するための演算装置である。主記憶装置１０２は、プログラムやデータなどを所定の記憶領域に保持する記憶装置（メモリ）である。主記憶装置１０２は、例えば、ＲＯＭ（Read  Only  Memory）やＲＡＭ（Random  Access  Memory）などである。また、補助記憶装置１０３は、主記憶装置１０２より容量の大きい記憶領域を備える記憶装置である。補助記憶装置１０３は、例えば、ＨＤＤ（Hard  Disk  Drive）やメモリカード（Memory  Card）などの不揮発性の記憶装置である。また、補助記憶装置１０３には、例えば、フレキシブルディスク（ＦＤ）、ＣＤ（Compact  Disk）、及びＤＶＤ（Digital  Versatile  Disk）などの記録媒体が含まれていてもよい。よって、ＣＰＵ１０１は、例えば、補助記憶装置１０３から主記憶装置１０２上に、プログラムやデータを読み出し、処理を実行することで、装置全体の制御や搭載機能を実現する。
【００２２】
通信ＩＦ１０４は、ＳＭ１００をデータ伝送路ＮＷに接続するインタフェースである。これにより、ＳＭ１００は、ＭＤＭＳ２００、課金サーバ３０１、又は見える化サーバ３０２とデータ通信が行える。外部ＩＦ１０５は、ＳＭ１００と外部機器１０６との間でデータを送受信するためのインタフェースである。外部機器１０６には、例えば、電力使用量を計測する計測器（センサ）などがある。これにより、ＳＭ１００は、電力使用量の集計が行える。
【００２３】
さらに、ＳＭ１００は、可視化された電力使用量などの各種情報を表示する表示装置（非図示）や、利用者の操作入力を受け付ける操作ボタンなどの入力ＩＦ（非図示）などを備えていてもよい。なお、ＭＤＭＳ２００、課金サーバ３０１、及び見える化サーバ３０２は、例えば、ＰＣ（Personal  Computer）などの情報処理装置であることから、装置構成の説明を省略する。
【００２４】
以上のように、本実施形態に係る電力使用量計算システム１０００は、上記構成により、データの真正性が確保された電力使用量の管理サービスを提供する。
【００２５】
＜機能構成＞
本実施形態に係る電力使用量計算システム１０００が有する機能について説明する。本実施形態に係るＳＭ１００は、単位時間あたりの電力使用量に対応する所定数の第１仮データを含むデータ系列と仮署名とを事前に生成する。その後、ＳＭ１００は、集計範囲における単位時間あたりの電力使用量を集計する。ＳＭ１００は、集計した単位時間あたりの電力使用量（第１実データ）で、対応する時刻の第１仮データを置き換え、データ系列と仮署名とを更新する。これにより、仮署名は、集計した電力使用量（第１実データ）で、データ系列のすべての第１仮データが置き換えられると、集計した電力使用量（第１実データ）のデータ系列に対応する署名となる。ＳＭ１００は、データ系列と仮署名とをＭＤＭＳ２００に送信する。これを受けてＭＤＭＳ２００は、ＳＭ１００からの受信データを保持する。また、ＭＤＭＳ２００は、アプリケーションシステム３００からの要求に応じて、ＳＭ１００から受信したデータ系列と仮署名とをアプリケーションシステム３００に送信する。これを受けてアプリケーションシステム３００は、ＭＤＭＳ２００からの受信データに基づき、アプリケーションを実行し、所定の機能を提供する。
【００２６】
ここで、第１仮データとは、本実施形態に係る署名生成装置（ＳＭ１００）が一時的に定め、仮署名を生成する際に利用する情報（署名方式における署名対象文書）である。本実施形態に係る署名生成装置は仮署名を生成するときに、１つ以上の乱数情報を利用する。よって、後述する第２仮データとは、その乱数情報の初期値であり、本実施形態に係る署名生成装置が一時的に定める情報である。第１実データとは、第１仮データを置き換えるために、本実施形態に係る署名生成装置に外部から入力される情報である。本実施形態に係る署名生成装置は、第１仮データを第１実データに置き換え、仮署名を署名に更新する。このとき、本実施形態に係る署名生成装置は、第２仮データを第２実データに更新する。
【００２７】
電力使用量計算システム１０００では、電力使用量が第三者などにより改ざんされると、アプリケーションが正しく実行されず、利用者に対して適切な機能提供（電力使用量に基づく計算が正しく行えず、計算値に基づく正確な機能提供）ができなくなる恐れがある。そのため、電力使用量などのような時系列に連続するデータ系列の真正性を確保する署名生成方法が求められる。
【００２８】
図３は、署名生成方法の概略図である。図３（ａ）には、従来の署名生成方法の概略が示されている。図３（ａ）に示すように、従来の署名生成方法では、例えば、電力使用量のデータｄｉを計測するたびに、計測データｄｉに対応する署名ｓｉ（＝Ｓｉｇ（ｄｉ））を計算する。このように、従来の方法では、データ系列のデータ数Ｎに比例し、署名生成にかかる計算量（演算量）や生成される署名サイズが多くなり、処理時間も長くなる。このように、従来の技術では、処理コストが大きく、効率的な署名生成処理を行うことができない。
【００２９】
よって、電力使用量計算システム１０００のように、時系列に連続するデータ系列を扱うシステムでは、効率的な署名生成処理により、データ系列の真正性を確保できることが望まれる。
【００３０】
そこで、本実施形態では、図３（ｂ）に示すような署名生成方法を提案する。図３（ｂ）には、本実施形態に係る署名生成方法の概略が示されている。図３（ｂ）に示すように、本実施形態に係る署名生成方法では、事前に、予め定められた第１仮データと第２仮データの組み合わせ（ｄｉ’，ｒｉ’）を生成し、データ系列｛（ｄｉ’，ｒｉ’）｝ｉに対する仮署名ｓ’（＝Ｓｉｇ（｛（ｄｉ’，ｒｉ’）｝ｉ））を計算する。その後、本実施形態に係る署名生成方法では、電力使用量のデータ計測時に、計測データｄｉ（第１実データ）で仮データｄｉ’（第１仮データ）を置き換える。次に、本実施形態に係る署名生成方法では、置き換えた計測データｄｉ（第１実データ）を用いて計算された仮署名（置き換え後の仮署名）Ｓ’（＝Ｓｉｇ（｛（ｄｊ，ｒｊ）｝ｊ≦ｉ，｛（ｄｋ’，ｒｋ’）｝ｋ＞ｉ））が、置き換え前の仮署名ｓ’と同じ値となるように、第２仮データｒｉ’を第２実データｒｉに更新（補正）する。その結果、本実施形態に係る署名生成方法では、データ系列のすべての第１仮データｄｉ’が置き換えられ、乱数成分として扱われる第２仮データｒｉ’が補正されると、仮署名ｓ’が、電力使用量のデータ系列に対応する署名ｓとなる。このように、本実施形態に係る署名生成方法では、第１仮データを含むデータ系列に対して仮署名を事前に生成しておき、電力使用量（第１実データ）の計測後に、データ系列と仮署名とを更新する。
【００３１】
これにより、本実施形態に係る署名生成方法は、ＣＰＵ１０１の空き時間を利用して、事前に署名生成処理を実行できることから、電力使用量の計測後の処理を軽減できる。また、本実施形態に係る署名生成方法は、署名生成に比べて署名更新の計算量が小さい場合、計測後の電力使用量を迅速に送信できる。また、本実施形態に係る署名生成方法は、電力使用量ごとに署名を生成しないことから、署名サイズが、データ系列のデータ数に依存しない（署名サイズが一定となる）。また、本実施形態に係る署名生成方法は、電力使用量が計測され、仮データが置き換えられる（更新される）たびに、署名の検証が行えることから、電力使用量のデータ系列の真正性を確保することができる。つまり、本実施形態に係る署名生成方法では、効率的な署名生成処理により、データ系列の真正性を確保できる。
【００３２】
以下に、本実施形態に係る電力使用量計算システム１０００の機能構成とその動作について説明する。本実施形態に係る電力使用量計算システム１０００は、ＳＭ１００が有する機能、ＭＤＭＳ２００が有する機能、及びアプリケーションシステム３００が有する機能に分けられる。
【００３３】
《ＳＭ１００の機能》
図４は、本実施形態に係るＳＭ１００の機能構成例を示す図である。図４に示すように、本実施形態に係るＳＭ１００の機能は、通信制御部１０、電力使用量集計部１１、署名生成部（仮署名計算部）１２、及び署名更新部１３などを有する。これらの各機能部は、ソフトウェアの実装により実現される。よって、各機能部は、ＣＰＵ１０１でプログラムが実行されることにより実現される機能である。なお、通信制御部１０は、通信ＩＦ１０４が備える演算装置でプログラムが実行されることにより実現されてもよい。また、電力使用量集計部１１は、ハードウェアの実装により実現されてもよい。例えば、電力使用量集計部１１は、計測器が計測した電力使用量を集計する回路により実現されてもよい。また、本実施形態に係るＳＭ１００の機能は、記憶部９１を有する。記憶部９１は、例えば、ＳＭ１００が備える補助記憶装置１０３の所定の記憶領域に相当する。
【００３４】
通信制御部１０は、ＳＭ１００とＭＤＭＳ２００との間のデータ通信を制御する。具体的には、通信制御部１０は、ＭＤＭＳ２００から送信された制御コマンドを受信する。また、通信制御部１０は、署名生成部１２又は署名更新部１３が出力する電力使用量のデータ系列と仮署名とをＭＤＭＳ２００に送信する。
【００３５】
電力使用量集計部（受付部）１１は、集計範囲における電気機器から、計測された電力使用量を所定時間経過ごとに受け付けて、単位時間ごとに集計する。電力使用量集計部１１は、集計した電力使用量を記憶部９１に記憶させる。電力使用量集計部１１は、通信制御部１０で受信した制御コマンドに基づき、電力使用量の集計動作（集計処理の開始と終了、集計処理の中止や停止などの動作）を制御する。
【００３６】
記憶部９１は、署名生成部１２と署名更新部１３とが用いる秘密鍵、及び、署名生成部１２又は署名更新部１３が出力する電力使用量のデータ系列と仮署名などを記憶する。なお、記憶された電力使用量のデータ系列と署名は、所定期間が経過すると削除される。ここでいう所定期間とは、電力使用量のデータ系列と署名を記憶しておく記憶期間を表す時間や日時であり、例えば、２週間や３０日などである。所定期間は、システム運用中に、電力使用量のデータ系列と署名との記憶データ量が、記憶先の記憶領域の容量を超過しない範囲であれば、任意の期間を設定できる。
【００３７】
署名生成部１２は、所定数の第１仮データを含むデータ系列を生成し、記憶部９１に記憶される秘密鍵を用いて仮署名（初期署名）を計算し生成する。ここでいう所定数とは、１つの署名に対応するデータ系列に含まれる第１実データの数である。例えば、署名を１日に１つ生成し、電力使用量（第１実データ）を集計する単位時間が１５分である場合には、所定数は９６（＝２４時間／１５分）となる。これにより、署名生成部１２は、単位時間あたりの電力使用量に対応する９６個の第１仮データを含むデータ系列を生成する。ここでいう第１仮データとは第１実データの初期値のことであり、第２仮データとは乱数成分として利用される第２実データの初期値のことである。第１仮データと第２仮データは、予め定められた値や、予めランダムに選んでおいた乱数、又は、これらの組合せを含むデータである。このときの予め定められた値は、例えば、０や１などの固定値、ＳＭ識別情報や集計時刻情報に基づく値などである。
【００３８】
署名生成部１２は、次のような方法で仮署名を計算し生成する。本実施形態では、群要素で署名生成の計算を行う方法を用いる例を説明する。なお、以下の説明では、便宜上、電力使用量を集計する単位時間を１５分、データ系列のデータ数を９６とする。また、この方法の詳細については、文献１を開示することで、その説明を省略する（文献１：Masayuki  Abe,  Georg  Fuchsbauer,  Jens  Groth,  Kristiyan  Haralambiev,  Miyako  Ohkubo:  Structure-Preserving  Signatures  and  Commitments  to  Group  Elements.  CRYPTO  2010:  209-236）。
【００３９】
（署名生成方法）
まず、上記条件から、記憶部９１は、次のような秘密鍵ｓｋ（＝｛ｕ１，ｕ２，．．．，ｕ９７，ｖ｝）と、検証鍵ｖｋ（＝｛Ｇ，Ｈ，Ｕ１，Ｕ２，．．．，Ｕ９７，Ｖ｝）とを記憶している。秘密鍵ｓｋは、９８（＝データ系列のデータ数＋２）個の０からｐ−１までの整数ｕ１，ｕ２，．．．，ｕ９７，ｖを含む。また、検証鍵ｖｋは、Ｇ及びＨと、９８個の群要素Ｕｉ（＝Ｇｕｉ（ｉ＝１，２，．．．，９７））及びＶ（＝Ｈｖ）を含む。ただし、ＧとＨは、位数ｐの巡回群の生成元（要素）であり、Ｇが生成する巡回群の要素と、Ｈが生成する巡回群の要素とは、ペアリング演算が可能である。すなわち、ｅをペアリング演算の関数とするとき、０以上ｐ未満の整数ａ，ｂについて、ｅ（Ｇａ，Ｈｂ）＝ｅ（Ｇａｂ，Ｈ）＝ｅ（Ｇ，Ｈａｂ）＝ｅ（Ｇａ，Ｈ）ｂ＝ｅ（Ｇ，Ｈｂ）ａ＝ｅ（Ｇ，Ｈ）ａｂなどが成り立つ。
【００４０】
署名生成部１２は、まず、９６（＝データ系列のデータ数）個の第１仮データＮ１，．．．，Ｎ９６と第２仮データＮ９７とを定める。次に署名生成部１２は、０以上ｐ未満の整数ｒをランダムに選び、以下の（式１）を計算する。
Ｒ＝Ｇｒ  ・・・  （式１）
【００４１】
次に署名生成部１２は、以下の（式２）及び（式３）を計算する。
Ｓ＝Ｒｖ（＝Ｇｒｖ）  ・・・  （式２）
Ｔ＝（Ｈ  Пｌ＝１，．．．，９７Ｎｌ−ｕｌ）１／ｒ  ・・・  （式３）
ここで、（式３）に表現されるПｌ＝１，．．．，ｋＡｌは、Ａ１＊Ａ２＊．．．＊Ａｋを表す。
【００４２】
その結果、署名生成部１２は、計算結果（Ｒ，Ｓ，Ｔ）を仮署名とする。本実施形態に係る署名生成部１２は、上記方法により仮署名を生成する。
【００４３】
署名更新部１３は、署名生成部１２で生成されたデータ系列の第１仮データを、電力使用量集計部１１が集計した電力使用量（第１実データ）で置き換え、乱数成分として利用する第２仮データを更新（補正）することで、仮署名を更新する。署名更新部１３は、次のような方法で仮署名を更新する。なお、以下の説明では、便宜上、Ｎ１，．．．，Ｎ９６を、電力使用量の計測データの初期値（第１仮データ）とし、Ｎ９７を、乱数成分の初期値（第２仮データ）とする。
【００４４】
（署名更新方法）
署名更新部１３は、電力使用量集計部１１がｊ番目の電力使用量Ｐｊを計測した後に、ｊ番目に対応する第１仮データＮｊを、計測した電力使用量Ｐｊ（第１実データ）に置き換え、乱数成分（第２仮データ）を更新する。このとき署名更新部１３は、以下の（式４）を計算し、計算値で乱数成分（第２仮データ）を更新する（補正する）。
Ｎ９７’＝（Ｎｊ／Ｐｊ）ｕｊ／ｕ９７Ｎ９７  ・・・  （式４）
【００４５】
また、署名更新部１３は、ｊより大きく９７未満のｌについて、新たな仮データＮｌ’を生成し、（式４）の代わりに、以下の（式５）を計算するようにしてもよい。
Ｎ９７’＝（Ｎｊ／Ｐｊ）ｕｊ／ｕ９７  Пｌ＝ｊ＋１，．．．，９６（Ｎｌ／Ｎｌ’）ｕｌ／ｕ９７＊Ｎ９７  ・・・  （式５）
【００４６】
本実施形態に係る署名更新部１３は、上記方法により、集計した電力使用量でデータ系列のすべての第１仮データを置き換えて仮署名を更新し、集計した電力使用量のデータ系列に対応する署名を生成する。
【００４７】
なお、後述では、混乱のない限り、署名更新部１３が生成した新たな第１仮データＮｌ’と、署名更新部１３が計算した乱数成分（第２仮データ）Ｎ９７’とを、あらためてＮｌとＮ９７で表す。
【００４８】
また、署名更新部１３では、電力使用量Ｐｉを計測する前に、次のような計算を行うようにしてもよい。例えば、（式４）におけるＮｊｕｊ／ｕ９７Ｎ９７及びｕｊ／ｕ９７を、事前に計算しておき、電力使用量Ｐｉを計測した後に、（Ｎｊｕｊ／ｕ９７Ｎ９７）＊（１／Ｐｉ）ｕｊ／ｕ９７を計算してもよい。
【００４９】
なお、後述では、Ｐｉを、電力使用量の計測データの実値（第１実データ）とし、Ｎ１，．．．，Ｎ９６のすべてが実値に置き換えられたときのＮ９７を、乱数成分の実値（第２実データ）とする。
【００５０】
《ＭＤＭＳ２００の機能》
図５は、本実施形態に係るＭＤＭＳ２００の機能構成例を示す図である。図５に示すように、本実施形態に係るＭＤＭＳ２００の機能は、通信制御部２０、及び署名検証部２１などを有する。これらの各機能部は、ソフトウェアの実装により実現される。よって、各機能部は、ＭＤＭＳ２００が備えるＣＰＵ（非図示）でプログラムが実行されることにより実現される機能である。なお、通信制御部２０は、ＭＤＭＳ２００の通信ＩＦ（非図示）が備える演算装置でプログラムが実行されることにより実現されてもよい。また、本実施形態に係るＭＤＭＳ２００の機能は、記憶部９２を有する。記憶部９２は、例えば、ＭＤＭＳ２００が備える補助記憶装置（非図示）の所定の記憶領域に相当する。
【００５１】
通信制御部２０は、ＳＭ１００やアプリケーションシステム３００などの他の装置と間のデータ通信を制御する。具体的には、通信制御部２０は、ＳＭ１００から送信されたデータ系列と仮署名とを受信する。また、通信制御部２０は、単位時間ごとにＳＭ１００から電力使用量を受信する。また、通信制御部２０は、制御コマンドをＳＭ１００に送信する。ＳＭ１００に送信する制御コマンドとは、電力使用量の集計動作を制御するコマンドであり、例えば、電力使用量の集計処理の開始と終了、電力使用量の集計処理の中止や停止、電力使用量の送信などを指示するコマンドである。また、通信制御部２０は、アプリケーションシステム３００が備える課金サーバ３０１又は見える化サーバ３０２から電力使用量の取得要求を受信し、取得要求に対する応答としてデータ系列を要求元に送信する。
【００５２】
記憶部９２は、通信制御部２０がＳＭ１００から受信したデータ系列、仮署名、単位時間あたりの電力使用量などを記憶する。
【００５３】
署名検証部２１は、ＳＭ１００から受信した仮署名が、受信したデータ系列に対して正当な署名であるか否かを検証する。つまり、署名検証部２１は、受信データの検証処理を行い、受信データが改ざんされていないかを確認する。
【００５４】
署名検証部２１は、次のような方法で仮署名を検証する。なお、以下には、署名生成部１２により生成され、署名更新部１３により更新された仮署名の具体的な検証例を示す。
【００５５】
（署名検証方法）
署名検証部２１は、データ系列（Ｎ１，．．．，Ｎ９７）と仮署名（Ｒ，Ｓ，Ｔ）とを、以下の（式６）及び（式７）を用いて検証する。ここで、Ｎｉが電力使用量Ｐｉで置き換えられている場合には、（式６）及び（式７）のＮｉを、Ｐｉに置き換えて計算する。
ｅ（Ｒ，Ｖ）＝ｅ（Ｓ，Ｈ）  ・・・  （式６）
ｅ（Ｒ，Ｔ）Пｌ＝１，．．．，９７ｅ（Ｕｌ，Ｎｌ）＝ｅ（Ｇ，Ｈ）  ・・・  （式７）
ここで、（式６）及び（式７）に表現されるＧ，Ｈ，Ｕ，Ｖは、検証鍵ｖｋに含まれる値である。
【００５６】
その結果、署名検証部２１は、（式６）及び（式７）の両方の式が成立する場合、検証対象の仮署名がデータ系列に対して正当な署名であると判断し（受信データが改ざんされていないことを確認し）、受信した仮署名を記憶する。一方、署名検証部２１は、（式６）又は（式７）のいずれかの式が成立しない場合、検証対象の仮署名がデータ系列に対して正当な署名でないと判断し（受信データが改ざんされていることを確認し）、受信した仮署名を記憶しない（破棄する）。本実施形態に係る署名検証部２１は、上記方法により仮署名を検証する。
【００５７】
《アプリケーションシステム３００の機能》
図６は、本実施形態に係るアプリケーションシステム３００の機能構成例を示す図である。図６に示すように、本実施形態に係るアプリケーションシステム３００の機能は、通信制御部３０、署名検証部３１、及びアプリケーション実行部３２などを有する。これらの各機能部は、ソフトウェアの実装により実現される。よって、各機能部は、課金サーバ３０１や見える化サーバ３０２が備えるＣＰＵ（非図示）でプログラムが実行されることにより実現される機能である。なお、通信制御部３０は、課金サーバ３０１や見える化サーバ３０２の通信ＩＦ（非図示）が備える演算装置でプログラムが実行されることにより実現されてもよい。また、本実施形態に係るアプリケーションシステム３００の機能は、記憶部９３を備える。記憶部９３は、例えば、課金サーバ３０１や見える化サーバ３０２が備える補助記憶装置（非図示）の所定の記憶領域に相当する。
【００５８】
通信制御部３０は、アプリケーションシステム３００とＭＤＭＳ２００との間のデータ通信を制御する。具体的には、通信制御部３０は、ＭＤＭＳ２００に対してデータ系列と仮署名との取得要求を送信し、取得要求に対する応答としてＭＤＭＳ２００から送信されたデータ系列と仮署名とを受信する。このとき送信する取得要求には、例えば、アプリケーション実行対象の電力使用量の集計範囲を識別する集計範囲識別情報、集計範囲のＳＭ１００を識別するＳＭ識別情報、及び集計時刻を表す集計時刻情報などが含まれる。
【００５９】
記憶部９３は、通信制御部３０がＭＤＭＳ２００から受信したデータ系列、仮署名、及び署名検証に用いる検証鍵などを記憶する。
【００６０】
署名検証部３１は、ＭＤＭＳ２００から受信した仮署名が、受信したデータ系列に対して正当な署名であるか否かを検証する。つまり、署名検証部３１は、受信データの検証処理を行い、受信データが改ざんされていないかを確認する。なお、このとき行われる署名検証方法の詳細については、ＭＤＭＳ２００の機能が有する署名検証部２１と同様であることから、その説明を省略する。
【００６１】
アプリケーション実行部３２は、署名検証部３１において仮署名がデータ系列に対して正当な署名であると判断されると（改ざんされていないことが確認できると）、受信した電力使用量のデータ系列に対して、アプリケーションソフトウェア（提供機能を実現するプログラム）を実行し、所定の機能を提供する。例えば、課金サーバ３０１の場合には、受信した電力使用量のデータ系列から、集計範囲における課金期間の総電力使用量を計算し、計算した総電力使用量に基づき、集計範囲の電力使用に対する課金処理を行う課金機能を提供する。また、見える化サーバ３０２の場合には、受信した電力使用量のデータ系列から、集計範囲における単位時間あたりの電力使用量の可視化処理を行う可視化機能を提供する。
【００６２】
以上のように、本実施形態に係る電力使用量計算システム１０００の機能は、ＳＭ１００、ＭＤＭＳ２００、及びアプリケーションシステム３００それぞれにおいて、プログラムが実行され上記各機能部が連携動作することで実現される。
【００６３】
上記プログラムは、実行環境の各装置（コンピュータ）が読み取り可能な記録媒体に、インストール可能な形式又は実行可能な形式のファイルで記録され提供される。例えば、ＳＭ１００の場合には、プログラムは、上記各機能部を含むモジュール構成となっており、ＣＰＵ１０１が補助記憶装置１０３の記録媒体からプログラムを読み出し実行することで、主記憶装置１０２のＲＡＭ上に各機能部が生成される。なお、プログラムの提供方法は、この限りでない。例えば、プログラムを、インターネットなどに接続された外部機器に格納し、データ伝送路ＮＷ経由でダウンロードする方法であってもよい。また、主記憶装置１０２のＲＯＭや補助記憶装置１０３のＨＤＤなどに予め組み込んで提供する方法であってもよい。
【００６４】
以下に、本実施形態に係る電力使用量計算システム１０００の処理（各機能部の連携動作）について、フローチャートを用いて説明する。なお、以下に示す処理例では、ＳＭ１００を設置した家庭を電力使用量の集計範囲とする。また、以下に示す処理例では、電力使用量を集計する単位時間を１５分、電力使用量のデータ系列のデータ数を９６、電力使用量のデータ系列と仮署名とを記憶する記憶期間を２週間、アプリケーション実行対象の電力使用期間を１ヶ月（３０日）とする。つまり、以下に示す処理例では、ＳＭ１００が、１５分ごとに家庭の電力使用量を計算し、９６時点（２４時間分）の電力使用量を含むデータ系列に対して１つの仮署名を生成する。さらに、ＳＭ１００が、２週間分のデータ（電力使用量のデータ系列と仮署名と）を記憶する。また、ＭＤＭＳ２００が、ＳＭ１００が集計した電力使用量の複数のデータ系列（例えば「１０年分のデータ系列」）を、対応する署名とともに記憶する。また、アプリケーションシステム３００は、１ヶ月ごとに、ＭＤＭＳ２００に対して各家庭の電力使用量を要求し、各家庭の１ヶ月ごとの課金処理を実行する。
【００６５】
《ＳＭ１００の機能による処理》
図７は、本実施形態に係るＳＭ１００で実行される処理手順例を示すフローチャートである。図７に示すように、署名生成部１２は、電力使用量の計測データの初期値（第１仮データＮ１，．．．，Ｎ９６と第２仮データＮ９７と）を含むデータ系列（Ｎ１，．．．，Ｎ９７）を生成する（ステップＳ１０１）。次に署名生成部１２は、データ系列に対応する仮署名（Ｒ，Ｓ，Ｔ）を生成する（ステップＳ１０２）。このとき署名生成部１２は、例えば、上述した署名生成方法に基づき、仮署名を生成する。次に署名生成部１２は、データ系列と仮署名とを記憶部９１に記憶する（ステップＳ１０３）。
【００６６】
次に通信制御部（第１送信部）１０は、生成されたデータ系列と仮署名とをＭＤＭＳ２００に送信する（ステップＳ１０４）。このとき通信制御部１０は、データ系列と仮署名とを送信する際に、集計識別情報、ＳＭ識別情報、及び集計時刻情報などを付加して送信してもよい。また、通信制御部１０は、ＭＤＭＳ２００に対してデータ受信を要求した後に、データ系列と仮署名とを送信してもよいし、ＭＤＭＳ２００からデータ送信の要求を受け付けた後に、データ系列と仮署名とを送信してもよい。また、通信制御部１０は、データ送信後にＭＤＭＳ２００から仮署名の検証結果を受信してもよい。なお、データ系列と仮署名との送信タイミングは、ステップＳ１０４の限りでない。例えば、ステップＳ１０９又はステップＳ１１３のタイミングであってもよい。この場合、ステップＳ１０４の処理は省略される。
【００６７】
署名生成部１２は、データ系列と仮署名とを記憶し（ステップＳ１０３）、必要に応じてＭＤＭＳ２００に送信（ステップＳ１０４）した後に、データ系列のデータ参照位置を示す変数ｉを初期化する［ｉ＝１］（ステップＳ１０５）。
【００６８】
次に電力使用量集計部１１は、データ系列のｉ番目に対応する電力使用量（第１実データＰｉ）を集計する（ステップＳ１０６）。これにより、署名更新部１３は、データ系列ｉ番目の初期値（第１仮データＮｉ）を、集計した電力使用量（第１実データＰｉ）で置き換え、データ系列に対応する仮署名を更新する（ステップＳ１０７）。このとき署名更新部１３は、例えば、上述した署名更新方法に基づき、仮署名を更新する。次に署名更新部１３は、データを置き換えたデータ系列と更新した仮署名とを記憶部９１に記憶する（ステップＳ１０８）。
【００６９】
次に通信制御部（第１送信部）１０は、データを置き換えたデータ系列と更新した仮署名とをＭＤＭＳ２００に送信する（ステップＳ１０９）。なお、上述したように、ステップＳ１０４又はステップＳ１１３において送信される場合には省略される。また、ステップＳ１０４で送信後に、この処理を実行する場合には、前回送信したデータに対する差分（データ系列の差分と仮署名の差分）をＭＤＭＳ２００に送信するようにしてもよい。例えば、上記の例では、初期値（第１仮データＮｉ）の代わりとなる電力使用量の計測データの実値（第１実データＰｉ）と、乱数成分の初期値（第２仮データＮ９７）の代わりとなる乱数成分の実値（第２実データＮ９７’）を送信してもよい。
【００７０】
署名更新部１３は、データを置き換えたデータ系列と更新した仮署名とを記憶し（ステップＳ１０８）、必要に応じてＭＤＭＳ２００に送信（ステップＳ１０９）した後に、データ系列のデータ参照位置を進める［ｉ＝ｉ＋１］（ステップＳ１１０）。
【００７１】
署名更新部１３は、データ系列のすべての初期値に対して更新処理が終了したか否か（データ参照位置を示す変数がデータ系列のデータ数と等しい［ｉ＝＝９７］か否か）を判定する（ステップＳ１１１）。
【００７２】
その結果、署名更新部１３は、データ系列のすべての初期値に対して更新処理が終了していないと（変数がデータ数と等しくないと）判定した場合（ステップＳ１１１：ＮＯ）、ステップＳ１０６の処理に戻り、ステップＳ１１１の判定条件を満たすまで、更新処理を繰り返す。
【００７３】
一方、署名更新部１３は、データ系列のすべての初期値に対して更新処理が終了したと（変数がデータ数と等しいと）判定した場合（ステップＳ１１１：ＹＥＳ）、データを置き換えたデータ系列と更新した仮署名とを記憶部９１に記憶する（ステップＳ１１２）。このとき署名更新部１３は、データを置き換えたデータ系列を、集計した電力使用量の計測データと１つの付加データと（合計９７個のデータ）を含むデータ系列とし、更新した仮署名を、集計した電力使用量のデータ系列に対応する署名として記憶する。なお、署名更新部１３は、ステップＳ１１２の処理の前後で、データ系列と仮署名との値が不変である場合、記憶処理（ステップＳ１１２）を省略してもよい。
【００７４】
次に通信制御部（第１送信部）１０は、データを置き換えたデータ系列と更新した仮署名とをＭＤＭＳ２００に送信する（ステップＳ１１３）。なお、上述したように、ステップＳ１０４又はステップＳ１０９において送信される場合には省略される。
【００７５】
なお、ＳＭ１００は、９６時点（２４時間）を経過して、上記ステップＳ１１３までの処理を終了した後に、再びステップＳ１０１の処理に戻り、新たな９６時点（翌２４時間）の処理を繰り返してもよい。
【００７６】
このように、本実施形態に係る電力使用量計算システム１０００では、集計した電力使用量の計測データを含むデータ系列とデータ系列に対応する仮署名とが蓄積される。
【００７７】
《ＭＤＭＳ２００の機能による処理》
図８は、本実施形態に係るＭＤＭＳ２００で実行される処理手順例を示すフローチャートである。図８に示すように、通信制御部（第１受信部）２０は、ＳＭ１００から送信されたデータ系列（Ｎ１，．．．，Ｎ９７）と仮署名（Ｒ，Ｓ，Ｔ）とを受信する（ステップＳ２０１）。なお、このとき通信制御部２０は、ＳＭ１００に対してデータを受信した旨を通知してもよい。
【００７８】
次に署名検証部（第１検証部）２１は、受信した仮署名を検証し、仮署名が受信したデータ系列に対して正当な署名であるか否かを判定する（ステップＳ２０２）。このとき署名検証部２１は、例えば、上述した署名検証方法に基づき、仮署名を検証する。
【００７９】
その結果、署名検証部２１は、仮署名がデータ系列に対して正当な署名であると判定した場合（ステップＳ２０２：ＹＥＳ）、集計識別情報、ＳＭ識別情報、及び集計時刻情報に基づき、受信したデータ系列と仮署名とを記憶部９２に記憶する（ステップＳ２０３）。
【００８０】
一方、署名検証部２１は、仮署名がデータ系列に対して正当な署名でないと判定した場合（ステップＳ２０２：ＮＯ）、所定のエラー処理を行う（ステップＳ２０４）。
【００８１】
次に通信制御部２０は、検証結果をＳＭ１００に送信する（ステップＳ２０５）。その後、ＭＤＭＳ２００は、待機状態へと移行する（ステップＳ２０６）。ここで、ＭＤＭＳ２００は、ステップＳ２０５の処理を省略してもよく、ステップＳ２０２において、仮署名がデータ系列に対して正当な署名でないと判定された場合、ＳＭ１００に対してデータの再送信を要求するようにしてもよい。
【００８２】
また、通信制御部（第２送信部）２０は、ＳＭ１００から受信したデータ系列と仮署名とをアプリケーションシステム３００に送信する（ステップＳ２０７）。このとき通信制御部２０は、データ系列と仮署名とを送信する際に、集計識別情報、ＳＭ識別情報、及び集計時刻情報などを付加して送信してもよい。また、通信制御部２０は、アプリケーションシステム３００に対してデータ受信を要求した後に、データ系列と仮署名とを送信してもよいし、アプリケーションシステム３００からデータ送信の要求を受け付けた後に、データ系列と仮署名とを送信してもよい。
【００８３】
その後、ＭＤＭＳ２００は、待機状態へと移行する（ステップＳ２０８）。
【００８４】
このように、本実施形態に係る電力使用量計算システム１０００では、電力使用量の計測データを含むデータ系列に対応する署名が検証される。また、本実施形態に係る電力使用量計算システム１０００では、データ系列と署名とがアプリケーションシステム３００に送信される。
【００８５】
《アプリケーションシステム３００の機能による処理》
図９は、本実施形態に係るアプリケーションシステム３００で実行される処理手順例を示すフローチャートである。図９に示すように、通信制御部（第２受信部）３０は、ＭＤＭＳ２００から送信されたデータ系列（Ｎ１，．．．，Ｎ９７）と仮署名（Ｒ，Ｓ，Ｔ）とを受信する（ステップＳ３０１）。なお、このとき通信制御部３０は、ＭＤＭＳ２００に対してデータを受信した旨を通知してもよい。また、アプリケーションシステム３００は、ステップＳ３０１の処理を定期的に（実行タイミングを表す所定期間経過ごとに）実行してもよいし、第三者からの要求に従って、ステップＳ３０１の処理を実行してもよい。例えば、アプリケーションシステム３００が備える課金サーバ３０１の場合には、１ヶ月が経過するごとに、ステップＳ３０１の処理を実行してもよいし、課金担当者（課金処理の実行者）からの指示に従って、ステップＳ３０１の処理を実行してもよい。また、アプリケーションシステム３００が備える見える化サーバ３０２の場合には、家庭から電力使用量の閲覧要求を受け付けた後に、ステップＳ３０１の処理を実行してもよいし、ステップＳ３０１の処理を定期的に実行してもよい。
【００８６】
次に署名検証部（第２検証部）３１は、受信した仮署名を検証し、仮署名が受信したデータ系列に対して正当な署名であるか否かを判定する（ステップＳ３０２）。このとき署名検証部３１は、例えば、上述した署名検証方法に基づき、仮署名を検証する。
【００８７】
その結果、署名検証部３１は、仮署名がデータ系列に対して正当な署名であると判定した場合（ステップＳ３０２：ＹＥＳ）、集計識別情報、ＳＭ識別情報、及び集計時刻情報に基づき、受信したデータ系列と仮署名とを記憶部９３に記憶する（ステップＳ３０３）。
【００８８】
一方、署名検証部３１は、仮署名がデータ系列に対して正当な署名でないと判定した場合（ステップＳ３０２：ＮＯ）、所定のエラー処理を行う（ステップＳ３０４）。
【００８９】
次に通信制御部３０は、検証結果をＭＤＭＳ２００に送信する（ステップＳ３０５）。次にアプリケーション実行部３２は、アプリケーションソフトウェアを実行し、電力使用量の可視化機能や課金機能などを提供する（ステップＳ３０６）。その後、アプリケーションシステム３００は、待機状態へと移行する（ステップＳ３０７）。ここで、アプリケーションシステム３００は、ステップＳ３０５の処理を省略してもよく、ステップＳ３０２において、仮署名がデータ系列に対して正当な署名でないと判定された場合、ＭＤＭＳ２００に対してデータの再送信を要求するようにしてもよい。
【００９０】
このように、本実施形態に係る電力使用量計算システム１０００では、電力使用量の計測データを含むデータ系列に対応する署名が検証される。また、本実施形態に係る電力使用量計算システム１０００では、署名検証後のデータ系列に基づき、電力使用量の可視化処理や課金処理が実行される。これにより、本実施形態に係る電力使用量計算システム１０００では、データの真正性が確保された電力使用量の管理サービスが提供される。
【００９１】
＜まとめ＞
以上のように、本実施形態に係る電力使用量計算システム１０００によれば、ＳＭ１００は、単位時間あたりの電力使用量に対応する所定数の第１仮データを含むデータ系列と仮署名とを事前に生成する。その後、ＳＭ１００は、集計範囲における単位時間あたりの電力使用量（第１実データ）を集計する。ＳＭ１００は、集計した単位時間あたりの電力使用量（第１実データ）で、対応する時刻の第１仮データを置き換え、データ系列と仮署名とを更新する。これにより、仮署名は、集計した電力使用量（第１実データ）で、データ系列のすべての第１仮データが置き換えられると、集計した電力使用量（第１実データ）のデータ系列に対応する署名となる。ＳＭ１００は、データ系列と仮署名とをＭＤＭＳ２００に送信する。これを受けてＭＤＭＳ２００は、ＳＭ１００からの受信データを保持する。また、ＭＤＭＳ２００は、アプリケーションシステム３００からの要求に応じて、ＳＭ１００から受信したデータ系列と仮署名とをアプリケーションシステム３００に送信する。これを受けてアプリケーションシステム３００は、ＭＤＭＳ２００からの受信データに基づき、アプリケーションを実行し、所定の機能を提供する。
【００９２】
これによって、本実施形態に係る電力使用量計算システム１０００は、署名生成にかかる計算量や処理時間などの処理コストが軽減される環境を提供する。その結果、本実施形態に係る電力使用量計算システム１０００は、データの真正性を確保しつつ処理の効率化を図ることができる。具体的には、本実施形態に係る電力使用量計算システム１０００は、ＣＰＵ１０１の空き時間を利用して、事前に署名生成処理を実行できることから、電力使用量の計測後の処理を軽減できる。また、本実施形態に係る署名生成方法は、署名生成に比べて署名更新の計算量が小さい場合、計測後の電力使用量を迅速に送信できる。また、本実施形態に係る署名生成方法は、電力使用量ごとに署名を生成しないことから（複数の電力使用量に対して１つの署名でよいことから）、署名サイズが、データ系列のデータ数に依存せず（署名サイズが一定となり）、記憶容量を削減できる。また、本実施形態に係る署名生成方法は、電力使用量（第１実データ）が計測され、第１仮データが置き換えられる（更新される）たびに、署名の検証が行えることから、電力使用量のデータ系列の真正性を確保することができる。
【００９３】
なお、上記実施形態では、電力使用量計算システム１０００の機能が、ソフトウェアの実装により実現する例を説明したが、この限りでない。例えば、上記各機能部の一部又は全部を、ハードウェア（例えば「回路」）の実装により実現してもよい。
【００９４】
また、本実施形態では、署名を生成するデータ系列について、時系列に連続するデータ系列を例に説明したが、この限りでない。例えば、同時刻の複数のデータを含むデータ系列であってもよい。より具体的には、同時刻に複数の集計範囲から集計される複数の電力使用量（第１実データ）に対応する第１仮データを含むデータ系列であってもよい。
【００９５】
［変形例１］
上記実施形態では、（式１）から（式７）を用いた署名生成方法、署名更新方法、及び署名検証方法について説明を行った。本変形例では、上記実施形態と異なる署名生成方法、署名更新方法、及び署名検証方法を用いて、系列データの真正性を確保しつつ処理の効率化を図ることができる例を提案する。なお、以下には、上記実施形態と同様の事項について同じ符号を付し、その説明を省略し、異なる事項について説明を行う。
【００９６】
（署名生成方法）
本変形例に係る署名生成部１２は、次のような方法で仮署名を計算し生成する。本実施形態では、カメレオンハッシュ関数を用いて署名生成の計算を行う方法に基づく例を説明する。なお、以下の説明では、便宜上、電力使用量を集計する単位時間を１５分、データ系列のデータ数を９６とする。また、この方法の詳細については、文献２を開示することで、その説明を省略する（文献２：Hugo  Krawczyk,  Tal  Rabin:  Chameleon  Signatures.  NDSS  2000）。
【００９７】
署名生成部１２は、まず、９６（データ系列のデータ数）個の第１仮データＮ１，．．．，Ｎ９６を定める。次に署名生成部１２は、９６個の０以上ｐ未満の第２仮データｒ１，．．．，ｒ９６を定め、以下の（式８）を計算する。なお、第１仮データと第２仮データは、予め定めた値を利用してもよいし、ランダムな値、及びそれらの組合せの値を利用してもよい。
ｃ１＝ＣＨ（Ｎ１，ｒ１），．．．，ｃ９６＝ＣＨ（Ｎ９６，ｒ９６）  ・・・  （式８）
【００９８】
次に署名生成部１２は、以下の（式９）を計算する。
ｓ＝Ｓｉｇｎ（ｃ１，．．．，ｃ９６）  ・・・  （式９）
【００９９】
その結果、署名生成部１２は、ｓを仮署名とする。ここで、（式８）に表現されるＣＨは、カメレオンハッシュ関数を表す。また、（式９）に表現されるＳｉｇｎは、署名生成関数である。Ｓｉｇｎでは、例えば、ＲＳＡ（Rivest  Shamir  Adleman）署名や楕円曲線デジタル署名（ＥＣＤＳＡ：Elliptic  Curve  Digital  Signature  Algorithm）などを用いる。なお、本変形例では、Ｎ１，．．．，Ｎ９６を電力使用量の計測データの初期値（第１仮データ）とし、ｒ１，．．．，ｒ９６を乱数成分の初期値（第２仮データ）とする。本実施形態に係る署名生成部１２は、上記方法により仮署名を生成する。
【０１００】
（署名更新方法）
署名更新部１３は、電力使用量集計部１１がｊ番目の電力使用量（第１実データ）Ｐｊを計測した後に、ｊ番目に対応する第１仮データＮｊを、計測した電力使用量Ｐｊに置き換え、乱数成分（第２仮データ）を更新することで、仮署名を更新する。このとき署名更新部１３は、以下の（式１０）を計算することで、仮署名を更新する。
ｒｊ’＝ＩＣＨ（Ｎｊ，ｒｊ，Ｐｊ，ｃｊ）  ・・・  （式１０）
ここで、（式１０）に表現されるＩＣＨは、逆カメレオン関数を表す。また、（式１０）により計算されたｒｊ’は、ＣＨ（Ｎｊ，ｒｉ）＝ＣＨ（Ｐｊ，ｒｉ’）を満たす。つまり、本変形例に係る署名更新部１３では、第１仮データＮｊを電力使用量（第１実データ）Ｐｊに置き換える前の仮署名と置き換えた後の仮署名とが同じとなるように乱数成分（第２仮データ）を補正する。
【０１０１】
なお、本変形例では、Ｐｉを電力使用量の計測データの実値（第２実データ）とし、Ｎ１，．．．，Ｎ９６のすべてを置き換えた後のｒ’１，．．．，ｒ’９６を乱数成分の実値（第２仮データ）とする。また、混乱のない限り、署名更新部１３が更新した乱数成分ｒｊ’をあらためてｒｊで表す。本実施形態に係る署名更新部１３は、上記方法により仮署名を更新する。
【０１０２】
（署名検証方法）
署名検証部２１，３１は、データ系列（Ｎ１，．．．，Ｎ９７，ｒ１，．．．，ｒ９６）及び仮署名ｓを、以下の（式１１）を用いて検証する。ここで、Ｎｉ（第１仮データ）が電力使用量Ｐｉ（第１実データ）で置き換えられている場合には、（式１１）のＮｉを、Ｐｉに置き換えて計算する。
Ｖｅｒ（ＣＨ（Ｎ１，ｒ１），．．．，ＣＨ（Ｎ９６，ｒ９６），ｓ）  ・・・  （式１１）
ここで、（式１１）に表現されるＶｅｒは、Ｓｉｇｎに対応する署名検証関数である。
【０１０３】
その結果、署名検証部２１，３１は、（式１１）が成立する場合、検証対象の仮署名がデータ系列に対して正当な署名でないと判断し（受信データが改ざんされていることを確認し）、受信した仮署名を記憶しない（破棄する）。本実施形態に係る署名検証部２１は、上記方法により仮署名を検証する。
【０１０４】
以上のように、本変形例では、このような署名生成方法、署名更新方法、及び署名検証方法を用いることで、上記実施形態と同様の効果を奏することができる。
【０１０５】
最後に、本発明の実施形態を説明したが、上記実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０６】
１００    ＳＭ（署名生成装置，データ集計装置）
２００    ＭＤＭＳ（データ管理システム）
３００    アプリケーションシステム（機能提供システム）
１０，２０，３０  通信制御部
１１      電力使用量集計部
１２      署名生成部
１３      署名更新部
２１，３１  署名検証部
３２      アプリケーション実行部
１０００  電力使用量計算システム
【図１】
2014241465.tif 000003
【図２】
2014241465.tif 000004
【図３】
2014241465.tif 000005
【図４】
2014241465.tif 000006
【図５】
2014241465.tif 000007
【図６】
2014241465.tif 000008
【図７】
2014241465.tif 000009
【図８】
2014241465.tif 000010
【図９】
2014241465.tif 000011