(58)【調査した分野】(Int.Cl.,DB名)
電気機器の単位時間あたりの電力使用量を集計する電力メータと、複数の前記電力使用量を合算した値を用いて所定のアプリケーションを実行するアプリケーションサーバと、前記電力メータが保持する第1秘密鍵および前記アプリケーションサーバが保持する第2秘密鍵を保持する鍵管理サーバとに接続されるデータ管理装置であって、
前記電力メータから、前記第1秘密鍵を用いて前記電力使用量を暗号化した値である第1の値を受信する第1受信部と、
複数の前記第1の値を合算して第2の値を生成する生成部と、
前記鍵管理サーバから、前記第1秘密鍵と前記第2秘密鍵とを用いて生成された変換鍵を受信する第2受信部と、
前記変換鍵を用いて前記第2の値を第3の値に変換する変換部と、
前記第3の値を前記アプリケーションサーバに送信する送信部と、を備え、
前記第3の値は、前記アプリケーションサーバが前記第2秘密鍵を用いて当該第3の値を復号することで、複数の前記電力使用量を合算した値が得られる値であることを特徴とするデータ管理装置。
前記電力使用量をdt、前記電力使用量の取り得る最大値をdt_max、前記第1秘密鍵と前記時刻情報とを用いて生成される鍵情報をK1、dt+K1をc、cがdt_max以上であるか否かを示すフラグをftとしたときに、
前記第1の値は、cがdt_max未満の場合は、cと、ft=0とを組み合わせた値であり、cがdt_max以上の場合は、c−dt_maxと、ft=1とを組み合わせた値であり、
前記第2の値は、複数のcまたはc−dt_maxを合算した値と、複数のftを合算した値とを組み合わせた値であり、
複数のcまたはc−dt_maxを合算した値をC、複数のftを合算した値をF、前記変換鍵をKc、前記第2秘密鍵と前記時刻情報とを用いて生成される鍵情報をK2としたときに、
前記第3の値は、C−Kcと、Fとを組み合わせた値であり、C−Kc−Kc+F×dt_maxにより複数の前記電力使用量を合算した値が得られることを特徴とする請求項2に記載のデータ管理装置。
【発明を実施するための形態】
【0008】
(電力使用量計算システムの概要)
まず、実施形態に係る電力使用量計算システムの概要について説明する。実施形態に係る電力使用量計算システムは、複数の集計範囲の各々に設置されたSMと、MDMSと、アプリケーションサーバと、鍵管理サーバとを備える。
【0009】
SMは、集計範囲における電気機器の単位時間あたりの電力使用量を集計し、集計した単位時間あたりの電力使用量を自身の秘密鍵(第1秘密鍵)を用いて暗号化し、暗号文(第1の値)をMDMSに送信する。SMが電力使用量の暗号化に用いる秘密鍵は、鍵管理サーバと共有されている。
【0010】
MDMSは、複数のSMから各々送信された暗号文を受信して保存する。この際、MDMSに対しては、SMが電力使用量の暗号化に用いる秘密鍵が秘匿されている。このため、SMが集計した単位時間あたりの電力使用量がMDMSにおいて復号されることはなく、プライバシの保護が図られる。
【0011】
また、MDMSは、アプリケーションサーバからの要求に応じて、複数の暗号文を合算して合算暗号文(第2の値)を生成する。そして、MDMSは、鍵管理サーバに対して変換鍵を要求し、この要求に対する応答として鍵管理サーバから送信された変換鍵を受信し、この変換鍵を用いて合算暗号文を変換合算暗号文(第3の値)に変換する。そして、MDMSは、アプリケーションサーバからの要求に対する応答として、変換合算暗号文をアプリケーションサーバに送信する。
【0012】
アプリケーションサーバは、MDMSから送信された変換合算暗号文を受信し、この変換合算暗号文を自身の秘密鍵(第2秘密鍵)を用いて復号し、複数の電力使用量を合算した値である電力使用総量(第4の値)を生成する。そして、アプリケーションサーバは、生成した電力使用総量を用いて所定のアプリケーションを実行する。アプリケーションサーバが変換合算暗号文の復号に用いる秘密鍵は、鍵管理サーバと共有されている。
【0013】
鍵管理サーバは、MDMSからの要求に応じて変換鍵を生成し、生成した変換鍵を、MDMSからの要求に対する応答としてMDMSに送信する。変換鍵は、SMが電力使用量の暗号化に用いる秘密鍵と、アプリケーションサーバが変換合算暗号文の復号に用いる秘密鍵とを用いて生成される。変換鍵は、上述したように、SMの秘密鍵で電力使用量を暗号化して得られる複数の暗号文を合算した合算暗号文を、アプリケーションサーバの秘密鍵を用いて複数の電力使用量を合算した値である電力使用総量に復号することができる変換合算暗号文に変換する鍵情報である。
【0014】
以上のように、本実施形態に係る電力使用量計算システムによれば、MDMSは電力使用量そのものを保存するのではなく、SMの秘密鍵で電力使用量を暗号化して得られる暗号文を保存する。また、アプリケーションサーバからの要求に応じてMDMSにおいて行われる計算は、元の電力使用量を秘匿したままで行われる。したがって、MDMSの管理者やMDMSに侵入した不正なユーザがMDMSから情報を取り出したとしても、電力使用量そのものが漏洩することはなく、プライバシの保護が図られる。また、SMからMDMSに対して送信されるのは、SMの秘密鍵で電力使用量を暗号化して得られる暗号文であり、MDMSからアプリケーションサーバに対して送信されるのは、アプリケーションサーバの秘密鍵で電力使用総量を復号可能な変換合算暗号文である。したがって、SMとMDMSの間の通信やMDMSとアプリケーションサーバとの間の通信が攻撃の対象となったとしても、電力使用量や電力使用総量が漏洩することはなく、プライバシの保護が図られる。
【0015】
また、本実施形態に係る電力使用量計算システムによれば、SMにおいて電力使用量の暗号化に用いられる秘密鍵や、アプリケーションサーバにおいて変換合算暗号文の復号に用いられる秘密鍵を鍵管理サーバが管理する。そして、管理サーバがこれらの秘密鍵を用いて生成した変換鍵を用いて、MDMSが合算暗号文を変換合算暗号文に変換してアプリケーションサーバに送信し、アプリケーションサーバにおいて電力使用量の総量を得られるようにしている。したがって、SMに過大な負荷を与えることなく、電力使用量そのものを隠蔽しながら、アプリケーションサーバで電力使用量の総量を得られるシステムを実現できる。
【0016】
SMで集計した電力使用量そのものを隠蔽した状態でMDMSに保持させながら、後にアプリケーションサーバで利用する電力使用量の総量を算出できるようにする方法としては、SMとアプリケーションサーバとで共有する秘密鍵を用いて電力使用量を暗号化し、その暗号文をMDMSに保持させることが考えられる。しかし、この方法では、SMはアプリケーションごとに異なる秘密鍵を用いて電力使用量を暗号化する必要があるためSMにおける負荷が大きくなる。これに対して、本実施形態に係る電力使用量計算システムによれば、アプリケーションの種類に関わらず、SMは鍵管理サーバと共有する1つの秘密鍵を用いて電力使用量を暗号化すればよいため、SMの負荷を小さくすることができる。
【0017】
以下では、アプリケーションサーバとしてEMSと課金サーバとを備えた電力使用量計算システムについて、さらに詳しく説明する。
【0018】
EMSは、管理対象エリア内の複数のSMから収集した第1単位時間における複数の電力使用量の総量(以下、第1電力使用総量という。)に基づいて、管理対象エリアに対する電力制御を行う。ここで、第1単位時間とは、EMSが電力制御を実行する時間間隔を表し、例えば30分などの時間間隔である。SMが集計する電力使用量は、この第1単位時間あたりの電力使用量であるものとする。
【0019】
課金サーバは、MDMSが収集した各家庭などの第2単位時間における電力使用量の総量(以下、第2電力使用総量という。)に基づいて、各家庭などでの電力の使用に対する課金処理を行う。ここで、第2単位時間とは、課金サーバが課金処理を行う時間単位であり、通常1ヶ月である。第2単位時間は、第1単位時間の整数倍であり、1つのSMで第1単位時間ごとに集計された電力使用量を複数合算した値が第2電力使用総量となる。
【0020】
なお、以下では、SMは家庭における電力使用量を集計するものとして説明するが、SMがオフィスビルなどの建物の電力使用量を集計する場合や、工場の電力使用量を集計する場合、地域における電力使用量を集計する場合であっても、同様の電力使用量計算システムを構築できる。また、アプリケーションサーバはMDMSや課金サーバに限定されるものではなく、電力使用量の総量を用いて所定のアプリケーションを実行する他のアプリケーションサーバを備えていてもよい。また、後述する電力使用量の暗号化処理は、SM以外の機器、例えばSMの集約器であるコンセントレータや、電力使用量を一時的に蓄積するHES(Head End System)などで実施してもよい。
【0021】
(第1実施形態)
図1は、第1実施形態に係る電力使用量計算システムの構成例を示すブロック図である。本実施形態に係る電力使用量計算システムは、
図1に示すように、SM10と、MDMS20と、EMS30と、課金サーバ40と、鍵管理サーバ50とを備え、これらがネットワーク60を介して接続される構成である。なお、図面の簡略化のため、SM10は1つしか図示していないが、電力使用量計算システムには、複数のSM10が接続されている。ネットワーク60とは、例えば、LAN(Local Area Network)、イントラネット、イーサネット(登録商標)またはインターネットなどである。
【0022】
SM10は、各家庭に設置され、各家庭で使用される電気機器の電力使用量を集計する設備である。なお、各SM10に対しては、これを識別するための識別情報(以下、SM_IDという。)が付与されており、各SM10は当該SM10に対して付与されたSM_IDを記憶しているものとする。
【0023】
MDMS20は、ネットワーク60を介して各家庭のSM10から電力使用量を収集して管理するシステムである。MDMS20は、複数の装置で構成されていてもよいし、単体の装置として構成されていてもよい。以下では、MDMS20は単体の装置として構成されているものとして説明する。
【0024】
EMS30は、管理対象エリアにおける複数の家庭の第1単位時間における電力使用量の総量(第1電力使用総量)を把握し、第1電力使用総量と供給可能な電力量とのバランスを考慮して、管理対象エリア内の各家庭に対して、電力の使用を抑制するよう要求したり、電力網に接続される蓄電池の充放電を制御したりするなどの電力制御を行う。EMS30は、複数の装置で構成されていてもよいし、単体の装置として構成されていてもよい。以下では、EMS30は単体の装置として構成されているものとして説明する。
【0025】
課金サーバ40は、各家庭での第2単位時間における電力使用量の総量(第2電力使用総量)を把握し、各家庭のそれぞれに対して電力の使用に対する課金処理を行う。
【0026】
鍵管理サーバ50は、SM10、EMS30および課金サーバ40のそれぞれと秘密鍵を共有し、MDMS20からの要求に応じて、これらの秘密鍵を用いて後述する変換鍵を生成してMDMS20に渡す。
【0027】
なお、MDMS20、EMS30、課金サーバ40および鍵管理サーバ50は各々、電力使用量計算システムに接続されるSM10のSM_IDをすべて記憶しているものとする。また、SM10が集計した第1単位時間における電力使用量に対しては、少なくともSM_IDと、集計された時間帯を表す時刻情報とが対応付けられる。電力使用量の暗号文は、電力使用量に対応付けられた時刻情報も利用して生成される。ただし、電力使用量に対してSM_IDや時刻情報に加えて他の情報をさらに対応付けて、他の情報をさらに用いて暗号文を生成するようにしてもよい。
【0028】
SM10、EMS30および課金サーバ40のそれぞれは、電力使用量の暗号化および復号に用いるための独自の秘密鍵を保持しており、同じ秘密鍵を鍵管理サーバ50も保持している。SM10の秘密鍵は工場出荷時にSM10に埋め込まれていてもよいし、家庭に設置した際にSM10内部で生成されて、それがネットワーク60を通じて鍵管理サーバ50に送信されてもよいし、家庭に設置した後にネットワーク60を通じて鍵管理サーバ50から配信されてもよい。また、EMS30や課金サーバ40の秘密鍵も、各々のアプリケーションが稼働する前に鍵管理サーバ50から配信されてもよいし、その他の手段で渡してもよい。SM10、EMS30および課金サーバ40などの各主体と鍵管理サーバ50のみが同じ秘密鍵を共有していればよく、共有する方法については特に限定されない。
【0029】
このような構成の電力使用量計算システムにおいて、SM10は、自身の秘密鍵を用いて第1単位時間における電力使用量を暗号化して暗号文を生成する。SM10が生成した暗号文は、ネットワーク60を介してMDMS20に送信される。
【0030】
MDMS20は、SM10から送信された暗号文を受信して保持する。そして、MDMS20は、EMS30からの要求に応じて、まず、EMS30の管理対象エリアに含まれる家庭のSM10から収集した複数の暗号文を合算した合算暗号文(以下、第1合算暗号文という。)を生成する。次に、MDMS20は、第1合算暗号文をEMS30において第1電力使用総量に復号可能な変換合算暗号文(以下、第1変換合算暗号文という。)に変換するための変換鍵(以下、第1変換鍵という。)の取得要求を、ネットワーク60を介して鍵管理サーバ50に送信する。そして、MDMS20は、取得要求に対する応答として鍵管理サーバ50からネットワーク60を介して送信された第1変換鍵を受信し、この第1変換鍵を用いて第1合算暗号文を第1変換合算暗号文に変換する。そして、MDMS20は、得られた第1変換合算暗号文を、ネットワーク60を介してEMS30に送信する。
【0031】
また、MDMS20は、課金サーバ40からの要求に応じて、まず、指定された家庭のSM10から収集した第2単位時間に含まれる複数の暗号文を合算した合算暗号文(以下、第2合算暗号文という。)を生成する。次に、MDMS20は、第2合算暗号文を課金サーバ40において第2電力使用総量に復号可能な変換合算暗号文(以下、第2変換合算暗号文という。)に変換するための変換鍵(以下、第2変換鍵という。)の取得要求を、ネットワーク60を介して鍵管理サーバ50に送信する。そして、MDMS20は、取得要求に対する応答として鍵管理サーバ50からネットワーク60を介して送信された第2変換鍵を受信し、この第2変換鍵を用いて第2合算暗号文を第2変換合算暗号文に変換する。そして、MDMS20は、得られた第2変換合算暗号文を、ネットワーク60を介して課金サーバ40に送信する。
【0032】
EMS30は、要求に対する応答としてMDMS20からネットワーク60を介して送信された第1変換合算暗号文を受信し、この第1変換合算暗号文を自身の秘密鍵を用いて復号することにより、第1電力使用総量を生成する。そして、EMS30は、得られた第1電力使用総量に基づいて、管理対象エリアに対する電力制御を行う。
【0033】
また、課金サーバ40は、要求に対する応答としてMDMS20からネットワーク60を介して送信された第2変換合算暗号文を受信し、この第2変換合算暗号文を自身の秘密鍵を用いて復号することにより、第2電力使用総量を生成する。そして、課金サーバ40は、得られた第2電力使用総量に基づいて、対象となる家庭における電力の使用に対する課金処理を行う。
【0034】
次に、SM10、MDMS20、EMS30、課金サーバ40および鍵管理サーバ50のハードウェア構成について説明する。
【0035】
MDMS20、EMS30、課金サーバ40および鍵管理サーバ50は、装置全体の制御や基本演算を実行するCPU(Central Processing Unit)などの制御部と、CPUのワークエリアとなるRAM(Random Access Memory)などの主記憶部と、各種データや各種プログラムを記憶するROM(Read Only Memory)、HDD(Hard Disk Drive)、CD(Compact Disk)ドライブ装置などの補助記憶部と、これらを接続するバスとを備えており、通常のコンピュータを利用したハードウェア構成となっている。また、MDMS20、EMS30、課金サーバ40および鍵管理サーバ50は、ネットワーク60を介して通信を行うための通信I/F(Interface)をさらに備える。
【0036】
SM10は、装置全体を制御するCPUなどの制御部と、CPUのワークエリアとなるRAMなどの主記憶部と、各種データや各種プログラムを記憶するROMや不揮発性メモリなどの補助記憶部と、これらを接続するバスとを備えており、専用ハードウェアあるいは組み込み機器と同様の構成となっている。また、SM10は、ネットワーク60を介して通信を行うための通信I/Fをさらに備える。さらに、SM10には、電力使用量などの各種情報を表示する表示部と、ユーザの操作が入力される操作ボタンやキーボードなどの操作入力部とが接続される。
【0037】
次に、このようなハードウェア構成において、SM10、MDMS20、EMS30、課金サーバ40および鍵管理サーバ50のそれぞれにおいて実現される各種機能について説明する。
【0038】
まず、SM10において実現される各種機能について説明する。
図2は、SM10の機能的構成の一例を示すブロック図である。SM10は、例えば
図2に示すように、通信制御部11と、暗号化部12と、電力使用量記憶部13と、電力使用量計測部14と、秘密鍵記憶部15とを備える。通信制御部11の機能は、通信I/Fと、CPUが実行する各種プログラムにより実現される。暗号化部12および電力使用量計測部14の各機能は、CPUが実行する各種プログラムにより実現される。電力使用量記憶部13および秘密鍵記憶部15はそれぞれ、例えば補助記憶部に確保される記憶領域である。
【0039】
通信制御部11は、MDMS20との間のネットワーク60を介した通信を制御する。具体的には、通信制御部11は、MDMS20から送信された制御コマンドを受信したり、後述の暗号化部12が電力使用量記憶部13に記憶された電力使用量を暗号化して得られる暗号文をMDMS20に送信したりする(第1送信部)。
【0040】
電力使用量計測部14は、家庭における電気機器の電力使用量を第1単位時間ごとに集計する(集計部)。そして、電力使用量計測部14は、集計した電力使用量を電力使用量記憶部13に記憶させる。また、電力使用量計測部14は、通信制御部11が受信した制御コマンドに応じて、電力使用量の集計を開始したり、その集計を中止したりする。
【0041】
電力使用量記憶部13は、電力使用量計測部14が集計した第1単位時間ごとの電力使用量を記憶する。電力使用量記憶部13に記憶された電力使用量は第1所定時間後に削除される。ここで第1所定時間とは、SM10の記憶領域のサイズなどに依存する時間であり、例えば2週間であったり30日であったりする。
【0042】
暗号化部12は、電力使用量記憶部13が記憶する第1単位時間ごとの電力使用量を、秘密鍵記憶部15に記憶された秘密鍵を用いて暗号化して暗号文を生成する(第1生成部)。本実施形態においては、電力使用量の暗号化には、鍵管理サーバ50と共有した秘密鍵を利用したストリーム暗号方式を用いる。電力使用量の暗号化の詳細は後述する。
【0043】
秘密鍵記憶部15は、電力使用量を暗号化して暗号文を生成するための秘密鍵を記憶する。
【0044】
ここで、秘密鍵について説明する。秘密鍵は、SM10と鍵管理サーバ50との間のみで共有される秘密鍵Ksmと、EMS30と鍵管理サーバ50との間のみで共有される秘密鍵Keと、課金サーバ40と鍵管理サーバ50との間のみで共有される秘密鍵Kpとが存在する。このうち、秘密鍵Ksmが、SM10の秘密鍵記憶部15に記憶される。なお、複数のSM10の間では、秘密鍵Ksmは互いに異なる値とする。
【0045】
暗号化部12は、秘密鍵Ksmを電力使用量の暗号化に直接用いるのではなく、秘密鍵Ksmと上述した時刻情報とを用いて一時鍵を生成して、この一時鍵を用いて電力使用量を暗号化する。時刻情報の例としては、「2012年1月1日」や「14:35:46,1/1/2012」やUNIX(登録商標)時刻(1970年1月1日0時0分0秒(GMT)を起点とし、それから経過した秒数)などが挙げられる。秘密鍵をKsm、時刻情報をtとしたときに一時鍵Ksm_tは、下記式(1)により計算される。
Ksm_t=h(Ksm,t) ・・・(1)
ここで、h(x,y)はxとyを入力とする一方向性関数あるいは鍵付きハッシュ関数であり、一方向性関数の例としてはsha−1やmd5、sha256など、また鍵付きハッシュ関数としてはhmacなどが挙げられる。
【0046】
次に、暗号化部12が行う暗号化の方法の具体例について説明する。本実施形態において使用する暗号化の方法は、準同型性を有する。データdを暗号化鍵ek_Pで暗号化する暗号化Enc_P(ek_P,d)が準同型であるとは、データdとd’について、Enc_P(ek_P,d)*Enc_P(ek_P,d’)=Enc_P(ek_P,d+d’)を満たすことをいう。ここで、+は算術加算を表し、*は適切な演算子を表す。このような暗号化の方法としては、例えば、十分に大きな基数を用いるシーザー暗号や、以下の参考文献1に記載された暗号化などがあり、*はそれぞれ、剰余環での加算および剰余乗算を表す。
(参考文献1)Pascal Paillier,Public-Key Cryptosystems Based on Composite Degree Residuosity Classes,EUROCRYPT 1999,pp223-238
【0047】
ここで、電力使用量を暗号化して暗号文を生成する手順の具体的な一例について説明する。時刻情報tで示される第1単位時間において電力使用量計測部14で集計された電力使用量をdtとする。暗号化部12は、まず下記式(2)に従って、ctを計算する。
ct=dt+KsmST_t(mod α) ・・・(2)
ここで、KsmST_tは、時刻情報tを用いて得られる一時鍵Ksm_tを入力としてストリーム暗号を動作させることによって得られる鍵系列(KsmST_t=ST(Ksm_t)、ST(・)はストリーム暗号)である。ストリーム暗号ST(・)としては、例えば、RC4を用いたり、ブロック暗号の利用モードとしてOFB,CFB,CTRモードで動作させたりすることで実現できる。また、パラメータαは大きな素数であり、暗号化を行う主体と、暗号文の変換を行う主体と、復号を行う主体との間で共有している必要がある。
【0048】
なお、処理の簡略化のために、KsmST_t=Ksm_tとしてもよい。つまり、秘密鍵Ksmと時刻情報tとを用いて得られる一時鍵Ksm_tをそのまま電力使用量dtに算術加算してctを計算することで処理の簡略化を図るようにしてもよい。この簡略化は、後述の変換鍵の生成や復号処理の際にも適用してもよい。
【0049】
なお、時刻情報tは、以降の処理において必要な情報となるため、暗号文に付随してMDMS20に送信する必要がある。このため、SM10がMDMS20に送信するデータCsm_tは、下記式(3)で示されるように、暗号文ctと時刻情報tとを対応付けたデータとなる。
Csm_t=(ct,t) ・・・(3)
以下では、暗号文ctと時刻情報tとを対応付けたデータCsm_t=(ct,t)を、電力使用量の暗号文として扱うものとする。
【0050】
次に、MDMS20において実現される各種機能について説明する。
図3は、MDMS20の機能的構成の一例を示すブロック図である。MDMS20は、例えば
図3に示すように、通信制御部21と、変換鍵取得要求生成部22と、電力使用量記憶部23と、合算部24と、変換部25とを備える。通信制御部21の機能は、通信I/Fと、CPUが実行する各種プログラムにより実現される。変換鍵取得要求生成部22、合算部24および変換部25の各機能は、CPUが実行する各種プログラムにより実現される。電力使用量記憶部23は、例えば補助記憶部に確保される記憶領域である。
【0051】
通信制御部21は、SM10やEMS30や課金サーバ40や鍵管理サーバ50などの他の機器との間のネットワーク60を介した通信を制御する。具体的には、通信制御部21は、第1単位時間ごとにSM10から電力使用量の暗号文を受信したり(第1受信部)、鍵管理サーバ50に対して、第1変換鍵や第2変換鍵の取得要求を送信したり、この取得要求に対する応答として鍵管理サーバ50から送信された第1変換鍵や第2変換鍵を受信したりする(第2受信部)。また、通信制御部21は、SM10に制御コマンドを送信したり、EMS30から第1変換合算暗号文の取得要求を受信したり、この取得要求に対する応答として後述の変換部25により生成された第1変換合算暗号文をEMS30に送信したり(第2送信部)、課金サーバ40から第2変換合算暗号文の取得要求を受信したり、この取得要求に対する応答として後述の変換部25により生成された第2変換合算暗号文を課金サーバ40に送信したりする(第2送信部)。なお、SM10に送信する制御コマンドとは、例えば、電力使用量の計測の中止やその開始、電力使用量の送信などを指示するコマンドである。
【0052】
電力使用量記憶部23は、通信制御部21がSM10から受信した第1単位時間ごとの電力使用量の暗号文を記憶する。
【0053】
合算部24は、EMS30からの要求に応じて、EMS30の管理対象エリアに含まれるすべての家庭のSM10から収集して電力使用量記憶部23に記憶された複数の第1単位時間の電力使用量の暗号文を合算し、第1合算暗号文を生成する(第2生成部)。また、合算部24は、課金サーバ40からの要求に応じて、課金対象として指定された家庭のSM10から収集して電力使用量記憶部23に記憶された第2単位時間に相当する複数の電力使用量の暗号文を合算し、第2合算暗号文を生成する(第2生成部)。
【0054】
変換鍵取得要求生成部22は、合算部24が生成した第1合算暗号文を第1変換合算暗号文に変換するための第1変換鍵の取得要求や、合算部24が生成した第2合算暗号文を第2変換合算暗号文に変換するための第2変換鍵の取得要求を生成する。第1変換鍵の取得要求Req1には、EMS30の識別情報と、EMS30により指定されたすべての家庭(管理対象エリアに含まれるすべての家庭)のSM10のSM_IDと、EMS30により指定された時刻情報tとが含まれる。一方、第2変換鍵の取得要求Req2には、課金サーバ40の識別情報と、課金サーバ40により指定された家庭(課金対象となる家庭)のSM10のSM_IDと、課金サーバ40により指定された第2単位時間(例えば1ヶ月)内のすべての第1単位時間の時刻情報t1,t2,・・・,tnとが含まれる。
【0055】
変換鍵取得要求生成部22により生成された第1変換鍵の取得要求Req1は、通信制御部21からネットワーク60を介して鍵管理サーバ50に送信される。そして、この第1変換鍵の取得要求Req1に対する応答として鍵管理サーバ50からネットワーク60を介して送信された第1変換鍵は、通信制御部21により受信される。また、変換鍵取得要求生成部22により生成された第2変換鍵の取得要求Req2は、通信制御部21からネットワーク60を介して鍵管理サーバ50に送信される。そして、この第2変換鍵の取得要求Req2に対する応答として鍵管理サーバ50からネットワーク60を介して送信された第2変換鍵は、通信制御部21により受信される。
【0056】
変換部25は、鍵管理サーバ50から送信された第1変換鍵を用いて、合算部24が生成した第1合算暗号文を第1変換合算暗号文に変換する。また、変換部25は、鍵管理サーバ50から送信された第2変換鍵を用いて、合算部24が生成した第2合算暗号文を第2変換合算暗号文に変換する。変換部25が生成した第1変換合算暗号文は、EMS30からの第1変換合算暗号文の取得要求に対する応答として、通信制御部21からネットワーク60を介してEMS30に送信される。また、変換部25が生成した第2変換合算暗号文は、課金サーバ40からの第2変換合算暗号文の取得要求に対する応答として、通信制御部21からネットワーク60を介して課金サーバ40に送信される。
【0057】
ここで、複数の暗号文を合算して合算暗号文を生成する手順、および変換鍵を用いて合算暗号文を変換合算暗号文に変換する手順の具体的な一例について説明する。まず、合算部24が第1合算暗号文を生成する手順の一例を説明する。ここでは、合算の対象となるSM10が3つであるものとして説明する。3つのSM10をそれぞれSM10a,SM10b,SM10cとする。SM10a,SM10b,SM10cそれぞれの時刻情報tで示される第1単位時間における電力使用量の暗号文をCsm_a_t,Csm_b_t,Csm_c_tとすると、これらは下記式(4)〜(6)のように表すことができる。
Csm_a_t=(ct_a,t) ・・・(4)
Csm_b_t=(ct_b,t) ・・・(5)
Csm_c_t=(ct_c,t) ・・・(6)
このとき、第1合算暗号文をCsm_1A(abc)_(t)とすると、合算部24は、下記式(7)を用いて第1合算暗号文を求めることができる。
Csm_1A(abc)_(t)=(C1A_c,t) ・・・(7)
ただし、C1A_c=ct_a+ct_b+ct_c(mod α)である。
【0058】
次に、合算部24が第2合算暗号文を生成する手順の一例を説明する。課金対象の家庭のSM10をSM10aとし、第2単位時間内のすべての第1単位時間の時刻情報をt1,t2,・・・,tnとする。各時刻情報t1,t2,・・・,tnで示される第1単位時間における電力使用量の暗号文をCsm_a_t1,Csm_a_t2,・・・,Csm_a_tnとすると、これらは下記式(8)〜(10)のように表すことができる。
Csm_a_t1=(ct_t1_a,t1) ・・・(8)
Csm_a_t2=(ct_t2_a,t2) ・・・(9)
・・・
Csm_a_tn=(ct_tn_a,tn) ・・・(10)
このとき、第2合算暗号文をCsm_2A(a)_(t1,t2,・・・,tn)とすると、合算部24は、下記式(11)を用いて第2合算暗号文を求めることができる。
Csm_2A(a)_(t1,t2,・・・,tn)=(C2A_c,t1,t2,・・・,tn) ・・・(11)
ただし、C2A_c=ct_t1_a+ct_t2_a+・・・+ct_tn_a(mod α)である。
【0059】
次に、変換部25が第1合算暗号文を第1変換合算暗号文に変換する手順の一例を説明する。鍵管理サーバ50から受信した第1変換鍵をK(a,b,c,t)とする。なお、第1変換鍵を生成する方法の具体例については後述する。このとき、第1変換合算暗号文をCsm_1B(abc)_(t)とすると、変換部25は、下記式(12)を用いて第1変換合算暗号文を求めることができる。
Csm_1B(abc)_(t)=(C1B_c,t) ・・・(12)
ただし、C1B_c=C1A_c−K(a,b,c,t)(mod α)である。
【0060】
最後に、第2合算暗号文を第2変換合算暗号文に変換する手順の一例を説明する。鍵管理サーバ50から受信した第2変換鍵をK(a,t1,t2,・・・,tn)とする。なお、第2変換鍵を生成する方法の具体例については後述する。このとき、第2変換合算暗号文をCsm_2B(a)_(t1,t2,・・・,tn)とすると、変換部25は、下記式(13)を用いて第2変換合算暗号文を求めることができる。
Csm_2B(a)_(t1,t2,・・・,tn)=(C2B_c,t1,t2,・・・,tn) ・・・(13)
ただし、C2B_c=C2A_c−K(a,t1,t2,・・・,tn)(mod α)である。
【0061】
次に、EMS30において実現される各種機能について説明する。
図4は、EMS30の機能的構成の一例を示すブロック図である。EMS30は、例えば
図4に示すように、通信制御部31と、復号部32と、秘密鍵記憶部33と、地域電力データ記憶部34と、電力制御実行部35とを備える。通信制御部31の機能は、通信I/Fと、CPUが実行する各種プログラムにより実現される。復号部32および電力制御実行部35の各機能は、CPUが実行する各種プログラムにより実現される。秘密鍵記憶部33および地域電力データ記憶部34は、例えば補助記憶部に確保される記憶領域である。
【0062】
通信制御部31は、MDMS20との間のネットワーク60を介した通信を制御する。具体的には、通信制御部31は、MDMS20に対して第1変換合算暗号文の取得要求を送信したり、この取得要求に対する応答としてMDMS20から送信された第1変換合算暗号文を受信したりする(第3受信部)。通信制御部31がMDMS20に送信する第1変換合算暗号文の取得要求には、管理対象エリアに含まれるすべての家庭のSM10のSM_IDと、第1電力使用総量を求める対象となる時刻情報tとが含まれる。
【0063】
秘密鍵記憶部33は、鍵管理サーバ50と共有する上述した秘密鍵Keを記憶する。
【0064】
地域電力データ記憶部34は、通信制御部31が受信した第1変換合算暗号文や、後述の復号部32が秘密鍵Keを用いて第1変換合算暗号文を復号することで得られる第1電力使用総量を記憶する。
【0065】
復号部32は、秘密鍵記憶部33に記憶された秘密鍵Keを用いて、通信制御部31が受信した第1変換合算暗号文を復号することにより、第1電力使用総量を生成する(第3生成部)。
【0066】
ここで、復号部32が秘密鍵Keを用いて第1変換合算暗号文を復号して第1電力使用総量を生成する手順の具体的な一例について説明する。ここでは、通信制御部31が、MDMS20から第1変換合算暗号文Csm_1B(abc)_(t)=(C1B_c,t)を受信した場合を例示する。
【0067】
復号部32は、MDMS20から受信した第1変換合算暗号文に含まれる時刻情報tと自身の秘密鍵Keとを用いて、まず下記式(14)で示す計算を行う。
Ke_t=h(Ke,t) ・・・(14)
なお、h(x,y)は、上述したようにxとyを入力とする一方向性関数あるいは鍵付きハッシュ関数である。
ただし、暗号化の際にストリーム暗号を用いる場合には、式(14)の計算に代えて、下記式(15)の計算を行う。
Ke_t=ST(h(Ke,t)) ・・・(15)
【0068】
次に、復号部32は、式(14)あるいは式(15)で求めたKe_tを用いて下記式(16)で示す計算を行い、第1電力使用総量d_EMSを得る。
d_EMS=C1B_c−Ke_t(mod α) ・・・(16)
【0069】
電力制御実行部35は、復号部32が生成した第1電力使用総量に基づいて、管理対象エリアに対する電力制御を行う(実行部)。電力制御とは、例えば、第1電力使用総量が上限値を超えている場合に、管理対象エリア内の各家庭に対して電力の使用を抑制するよう要求したり、電力網に接続される蓄電池の放電を促したり、第1電力使用総量が下限値を下回っている場合に、電力網に接続される蓄電池に余剰の供給電力を蓄電したりする制御である。
【0070】
次に、課金サーバ40において実現される各種機能について説明する。
図5は、課金サーバ40の機能的構成の一例を示すブロック図である。課金サーバ40は、例えば
図5に示すように、通信制御部41と、復号部42と、秘密鍵記憶部43と、課金データ記憶部44と、課金処理実行部45とを備える。通信制御部41の機能は、通信I/Fと、CPUが実行する各種プログラムにより実現される。復号部42および課金処理実行部45の各機能は、CPUが実行する各種プログラムにより実現される。秘密鍵記憶部43および課金データ記憶部44は、例えば補助記憶部に確保される記憶領域である。
【0071】
通信制御部41は、MDMS20との間のネットワーク60を介した通信を制御する。具体的には、通信制御部41は、MDMS20に対して第2変換合算暗号文の取得要求を送信したり、この取得要求に対する応答としてMDMS20から送信された第2変換合算暗号文を受信したりする(第3受信部)。通信制御部41がMDMS20に送信する第2変換合算暗号文の取得要求には、課金対象となる家庭のSM10のSM_IDと、課金対象となる第2単位時間内のすべての第1単位時間の時刻情報t1,t2,・・・,tnとが含まれる。
【0072】
秘密鍵記憶部43は、鍵管理サーバ50と共有する上述した秘密鍵Kpを記憶する。
【0073】
課金データ記憶部44は、通信制御部41が受信した第2変換合算暗号文や、後述の復号部42が秘密鍵Kpを用いて第2変換合算暗号文を復号することで得られる第2電力使用総量を記憶する。
【0074】
復号部42は、秘密鍵記憶部43に記憶された秘密鍵Kpを用いて、通信制御部41が受信した第2変換合算暗号文を復号することにより、第2電力使用総量を生成する(第3生成部)。
【0075】
ここで、復号部42が秘密鍵Kpを用いて第2変換合算暗号文を復号して第2電力使用総量を生成する手順の具体的な一例について説明する。ここでは、通信制御部41が、MDMS20から第2変換合算暗号文Csm_2B(a)_(t1,t2,・・・,tn)=(C2B_c,t1,t2,・・・,tn)を受信した場合を例示する。
【0076】
復号部42は、MDMS20から受信した第2変換合算暗号文に含まれる時刻情報t1,t2,・・・,tnと自身の秘密鍵Kpとを用いて、まず下記式(17)で示す計算を行う。
Kp_(t1,t2,・・・,tn)=h(Kp,t1,t2,・・・,tn) ・・・(17)
ここで、h(a,b1,・・・,bn)は、a,b1,・・・,bnを入力とする一方向性関数あるいは鍵付きハッシュ関数である。
ただし、暗号化の際にストリーム暗号を用いる場合には、式(17)の計算に代えて、下記式(18)の計算を行う。
Kp_(t1,t2,・・・,tn)=ST(h(Kp,t1,t2,・・・,tn)) ・・・(18)
【0077】
次に、復号部42は、式(17)あるいは式(18)で求めたKp_(t1,t2,・・・,tn)を用いて下記式(19)で示す計算を行い、第2電力使用総量d_payを得る。
d_pay=C2B_c−Kp_(t1,t2,・・・,tn)(mod α) ・・・(19)
【0078】
課金処理実行部45は、復号部42が生成した第2電力使用総量に基づいて、課金対象となる家庭の第2単位時間における電力の使用に対する課金処理を行う(実行部)。
【0079】
次に、鍵管理サーバ50において実現される各種機能について説明する。
図6は、鍵管理サーバ50の機能的構成の一例を示すブロック図である。鍵管理サーバ50は、例えば
図6に示すように、通信制御部51と、変換鍵生成部52と、秘密鍵記憶部53とを備える。通信制御部51の機能は、通信I/Fと、CPUが実行する各種プログラムにより実現される。変換鍵生成部52の機能は、CPUが実行する各種プログラムにより実現される。秘密鍵記憶部53は、例えば補助記憶部に確保される記憶領域である。
【0080】
通信制御部51は、MDMS20との間のネットワーク60を介した通信を制御する。具体的には、通信制御部51は、MDMS20から送信された第1変換鍵の取得要求や第2変換鍵の取得要求を受信したり、これらの取得要求に対する応答として後述の変換鍵生成部52で生成された第1変換鍵や第2変換鍵をMDMS20に送信したりする(第3送信部)。
【0081】
秘密鍵記憶部53は、SM10と共有する上述した秘密鍵Ksmと、EMS30と共有する上述した秘密鍵Keと、課金サーバ40と共有する上述した秘密鍵Kpとを記憶する。
【0082】
変換鍵生成部52は、MDMS20からの第1変換鍵の取得要求に応じて、この取得要求に含まれるすべてのSM10のSM_IDおよび時刻情報tと、秘密鍵記憶部53が記憶する秘密鍵Ksmおよび秘密鍵Keとを用いて、第1変換鍵を生成する(第4生成部)。また、変換鍵生成部52は、MDMS20からの第2変換鍵の取得要求に応じて、この取得要求に含まれるSM10のSM_IDおよびすべての時刻情報t1,t2,・・・,tnと、秘密鍵記憶部53が記憶する秘密鍵Ksmおよび秘密鍵Kpとを用いて、第2変換鍵を生成する(第4生成部)。変換鍵生成部52が生成した第1変換鍵や第2変換鍵は、第1変換鍵や第2変換鍵の取得要求に対する応答として、通信制御部51からネットワーク60を介してMDMS20に送信される。
【0083】
ここで、変換鍵生成部52が第1変換鍵や第2変換鍵を生成する手順の具体的な一例について説明する。まず、MDMS20からの第1変換鍵の取得要求に応じて第1変換鍵を生成する手順の一例を説明する。MDMS20から送信される第1変換鍵の取得要求Req1には、上述したように、EMS30の識別情報と、EMS30により指定されたすべての家庭(管理対象エリアに含まれるすべての家庭)のSM10(ここでは、SM10a,SM10b,SM10cであるものとする。)のSM_IDと、EMS30により指定された時刻情報tとが含まれる。
【0084】
変換鍵生成部52は、まず、EMS30の識別情報と対応付けて秘密鍵記憶部53に記憶されている秘密鍵Keと、SM10a,SM10b,SM10cのそれぞれのSM_IDと対応付けて秘密鍵記憶部53に記憶されている秘密鍵Ksm_a,Ksm_b,Ksm_cとを取り出す。そして、変換鍵生成部52は、これらの秘密鍵と時刻情報tとを用いて、下記式(20)に示すように、第1変換鍵K(a,b,c,t)を生成する。
K(a,b,c,t)=h(Ksm_a,t)+h(Ksm_b,t)+h(Ksm_c,t)−h(Ke,t)(mod α) ・・・(20)
ただし、暗号化の際にストリーム暗号を用いる場合には、第1変換鍵K(a,b,c,t)は下記式(21)の計算で生成する。
K(a,b,c,t)=ST(h(Ksm_a,t))+ST(h(Ksm_b,t))+ST(h(Ksm_c,t))−ST(h(Ke,t))(mod α) ・・・(21)
【0085】
次に、MDMS20からの第2変換鍵の取得要求に応じて第2変換鍵を生成する手順の一例を説明する。MDMS20から送信される第2変換鍵の取得要求Req2には、上述したように、課金サーバ40の識別情報と、課金サーバ40により指定された家庭(課金対象となる家庭)のSM10(ここでは、SM10aであるものとする。)のSM_IDと、課金サーバ40により指定された第2単位時間内のすべての第1単位時間の時刻情報t1,t2,・・・,tnとが含まれる。
【0086】
変換鍵生成部52は、まず、課金サーバ40の識別情報と対応付けて秘密鍵記憶部53に記憶されている秘密鍵Kpと、SM10aのSM_IDと対応付けて秘密鍵記憶部53に記憶されている秘密鍵Ksm_aとを取り出す。そして、変換鍵生成部52は、これらの秘密鍵と時刻情報t1,t2,・・・,tnとを用いて、下記式(22)に示すように、第2変換鍵K(a,t1,t2,・・・,tn)を生成する。
K(a,t1,t2,・・・,tn)=h(Ksm_a,t1)+h(Ksm_a,t2)+・・・+h(Ksm_a,tn)−h(Kp,t1,t2,・・・,tn)(mod α) ・・・(22)
ただし、暗号化の際にストリーム暗号を用いる場合には、第2変換鍵K(a,t1,t2,・・・,tn)は下記式(23)の計算で生成する。
K(a,t1,t2,・・・,tn)=ST(h(Ksm_a,t1))+ST(h(Ksm_a,t2))+・・・+ST(h(Ksm_a,tn))−ST(h(Kp,t1,t2,・・・,tn))(mod α) ・・・(23)
【0087】
次に、本実施形態に係る電力使用量計算システムにおいて実行される各種の処理の手順について、
図7乃至
図10のフローチャートを参照しながら説明する。
【0088】
まず、SM10が電力使用量の暗号文をMDMS20に送信するまでの処理の手順について、
図7を用いて説明する。
図7は、SM10により実行される処理手順の一例を示すフローチャートである。
【0089】
SM10は、第1単位時間ごとに電気機器の電力使用量dtを集計すると(ステップS101)、鍵管理サーバ50と共有している秘密鍵Ksmと時刻情報tとを用いて一時鍵Ksm_tを計算する(ステップS102)。
【0090】
次に、SM10は、ステップS102で計算した一時鍵Ksm_tを用いてストリーム暗号を動作させて鍵系列KsmST_tを計算する(ステップS103)。そして、SM10は、ステップS103で計算した鍵系列KsmST_tを用いてステップS101で集計した電力使用量dtを暗号化し、暗号文ctを生成する(ステップS104)。そして、SM10は、ステップS104で生成した暗号文ctを時刻情報tと対応付けてMDMS20に送信する(ステップS105)。このとき、SM10は、SM10に付与されたSM_IDも送信する。
【0091】
なお、SM10は、上述したように、処理の簡略化のために秘密鍵Ksmと時刻情報tとから生成した一時鍵Ksm_tをそのまま用いて電力使用量dtを暗号化するようにしてもよい。
図8は、一時鍵Ksm_tをそのまま用いて電力使用量dtを暗号化する場合のSM10における処理手順を示すフローチャートである。
【0092】
この場合、SM10は、第1単位時間ごとに電気機器の電力使用量dtを集計すると(ステップS201)、鍵管理サーバ50と共有している秘密鍵Ksmと時刻情報tとを用いて一時鍵Ksm_tを計算する(ステップS202)。
【0093】
次に、SM10は、ステップS202で計算した一時鍵Ksm_tを用いてステップS201で集計した電力使用量dtを暗号化し、暗号文ctを生成する(ステップS203)。そして、SM10は、ステップS203で生成した暗号文ctを時刻情報tと対応付けてMDMS20に送信する(ステップS204)。このとき、SM10は、SM10に付与されたSM_IDも送信する。
【0094】
次に、EMS30が第1電力使用総量を生成するまでの処理の手順について、
図9を用いて説明する。
図9は、EMS30とMDMS20と鍵管理サーバ50とにより実行される処理手順の一例を示すフローチャートである。
【0095】
まず、EMS30が、MDMS20に対して、第1変換合算暗号文の取得要求を送信する(ステップS301)。EMS30から第1変換合算暗号文の取得要求を受信したMDMS20は、EMS30の管理対象エリアに含まれるすべての家庭のSM10から受信した時刻情報tで示される第1単位時間の電力使用量の暗号文を合算して、第1合算暗号文を生成する(ステップS302)。
【0096】
次に、MDMS20は、鍵管理サーバ50に対して、第1変換鍵の取得要求を送信する(ステップS303)。この第1変換鍵の取得要求には、EMS30の識別情報と、EMS30により指定されたすべての家庭(管理対象エリアに含まれるすべての家庭)のSM10のSM_IDと、EMS30により指定された時刻情報tとが含まれる。
【0097】
MDMS20から第1変換鍵の取得要求を受信した鍵管理サーバ50は、第1変換鍵の取得要求に含まれるすべてのSM_IDと時刻情報tとを用いて第1変換鍵を生成する(ステップS304)。そして、鍵管理サーバ50は、ステップS304で生成した第1変換鍵を、第1変換鍵の取得要求に対する応答として、MDMS20に送信する(ステップS305)。
【0098】
鍵管理サーバ50から第1変換鍵を受信したMDMS20は、受信した第1変換鍵を用いて、ステップS302で生成した第1合算暗号文を第1変換合算暗号文に変換する(ステップS306)。そして、MDMS20は、ステップS306で生成した第1変換合算暗号文を、第1変換合算暗号文の取得要求に対する応答として、EMS30に対して送信する(ステップS307)。
【0099】
MDMS20から第1変換合算暗号文を受信したEMS30は、自身の秘密鍵Keを用いて第1変換合算暗号文を復号し、第1電力使用総量を生成する(ステップS308)。その後、EMS30は、この第1電力使用総量を用いて電力制御を実行する。
【0100】
次に、課金サーバ40が第2電力使用総量を生成するまでの処理の手順について、
図10を用いて説明する。
図10は、課金サーバ40とMDMS20と鍵管理サーバ50とにより実行される処理手順の一例を示すフローチャートである。
【0101】
まず、課金サーバ40が、MDMS20に対して、第2変換合算暗号文の取得要求を送信する(ステップS401)。課金サーバ40から第2変換合算暗号文の取得要求を受信したMDMS20は、課金対象となる家庭のSM10から受信した第2単位時間内のすべての第1単位時間における電力使用量の暗号文を合算して、第2合算暗号文を生成する(ステップS402)。
【0102】
次に、MDMS20は、鍵管理サーバ50に対して、第2変換鍵の取得要求を送信する(ステップS403)。この第2変換鍵の取得要求には、課金サーバ40の識別情報と、課金サーバ40により指定された家庭のSM10のSM_IDと、課金サーバ40により指定された第2単位時間内のすべての第1単位時間の時刻情報t、t1,・・・,tnとが含まれる。
【0103】
MDMS20から第2変換鍵の取得要求を受信した鍵管理サーバ50は、第2変換鍵の取得要求に含まれるSM_IDと時刻情報t1,t2,・・・,tnとを用いて第2変換鍵を生成する(ステップS404)。そして、鍵管理サーバ50は、ステップS404で生成した第2変換鍵を、第2変換鍵の取得要求に対する応答として、MDMS20に送信する(ステップS405)。
【0104】
鍵管理サーバ50から第2変換鍵を受信したMDMS20は、受信した第2変換鍵を用いて、ステップS402で生成した第2合算暗号文を第2変換合算暗号文に変換する(ステップS406)。そして、MDMS20は、ステップS406で生成した第2変換合算暗号文を、第2変換合算暗号文の取得要求に対する応答として、課金サーバ40に対して送信する(ステップS407)。
【0105】
MDMS20から第2変換合算暗号文を受信した課金サーバ40は、自身の秘密鍵Kpを用いて第2変換合算暗号文を復号し、第2電力使用総量を生成する(ステップS408)。その後、課金サーバ40は、この第2電力使用総量を用いて課金処理を実行する。
【0106】
以上、具体的な例を挙げながら詳細に説明したように、本実施形態に係る電力使用量計算システムによれば、SM10が集計した電力使用量は、SM10の秘密鍵Ksmを用いて暗号化された暗号文としてMDMS20に送信される。そして、MDMS20では、元の電力使用量を秘匿した状態で、EMS30や課金サーバ40の要求に応じて第1変換合算暗号文や第2変換合算暗号文が生成され、第1変換合算暗号文はEMS30、第2変換合算暗号文は課金サーバ40にそれぞれ送信される。そして、EMS30が自身の秘密鍵Keを用いて第1変換合算暗号文を復号することで第1電力使用総量が得られ、課金サーバ40が自身の秘密鍵Kpを用いて第2変換合算暗号文を復号することで第2電力使用総量が得られるようにしている。このように、本実施形態に係る電力使用量計算システムによれば、電力使用量そのものを秘匿した状態でアプリケーションが必要とする電力使用総量を得られるようにしているので、プライバシの保護を図りつつ、電力使用総量を利用した様々なアプリケーションを適切に実行することができる。
【0107】
また、本実施形態に係る電力使用量計算システムによれば、SM10において電力使用量の暗号化に用いられる秘密鍵Ksmや、EMS30において第1変換合算暗号文の復号に用いられる秘密鍵Ke、課金サーバ40において第2変換合算暗号文の復号に用いられる秘密鍵Kpを鍵管理サーバ50が管理するようにしている。そして、鍵管理サーバ50がこれらの秘密鍵を用いて第1変換鍵や第2変換鍵を生成し、MDMS20が第1変換鍵を用いて生成した第1変換合算暗号文をEMS30に送信し、第2変換鍵を用いて生成した第2変換合算暗号文を課金サーバ40に送信することで、EMS30において第1電力使用総量が得られ、課金サーバ40において第2電力使用総量が得られるようにしている。したがって、SM10は、電力制御や課金処理などの異なるアプリケーションで要求される電力使用総量を得られるようにするために、アプリケーションごとに異なる秘密鍵を用いて電力使用量を暗号化する必要はなく、鍵管理サーバ50と共有する1つの秘密鍵Ksmを用いて電力使用量を暗号化してその暗号文をMDMS20に送ればよい。このように、本実施形態に係る電力使用量計算システムによれば、SM10に過大な負荷を与えることなく、プライバシの保護を図りながら、様々なアプリケーションが必要とする電力使用総量を得ることができる。
【0108】
(第1実施形態の変形例1)
上述の第1実施形態では、SM10の暗号化部12が、電力使用量dtにストリーム暗号の鍵系列KsmST_tを算術加算して暗号文ctを求めるようにしている。これに対して、本変形例では、SM10の暗号化部12が、電力使用量dtにストリーム暗号の鍵系列KsmST_tを算術加算してctを求め、さらに、求めたctがSM10で計測される電力使用量の最大値であるdt_max以上の値であるか否かを示すフラグftを用いて、暗号文(ct’,ft)を生成する。つまり、求めたctがdt_max未満であれば、フラグftの値を0とし、ctとフラグ0との組み合わせ(ct,0)を電力使用量dtの暗号文とする。一方、求めたctがdt_max以上であれば、フラグftの値を1とし、ctとdt_maxとの差分とフラグ1との組み合わせ(ct−dt_max,1)を電力使用量dtの暗号文とする。本変形例では、Ksm_tの値域は、0以上dt_max未満(dt_maxは、SM10で計測される電力使用量の最大値)である。
【0109】
以下、本変形例における処理の具体例について、上述した第1実施形態との差分を説明する。
【0110】
本変形例では、SM10の暗号化部12は、まず、下記式(2’)に従って、ctを計算する。
ct=dt+KsmST_t ・・・(2’)
【0111】
次に、暗号化部12は、ctがdt_max未満の値であった場合は、下記式(24)に従って(ct’,ft)を求める。
(ct’,ft)=(ct,0) ・・・(24)
一方、ctがdt_max以上の値であった場合は、暗号化部12は、下記式(25)に従って(ct’,ft)を求める。
(ct’,ft)=(ct−dt_max,1) ・・・(25)
本変形例では、このようにして得られた(ct’,ft)が、電力使用量dtを暗号化した暗号文となる。
【0112】
なお、時刻情報tは、以降の処理において必要な情報となるため、上述した第1実施形態と同様に、暗号文に付随してMDMS20に送信する。以下では、暗号文(ct’,ft)と時刻情報tとを対応付けたデータCsm_t=(ct’,ft,t)を、電力使用量dtの暗号文として扱うものとする。
【0113】
次に、MDMS20の合算部24が第1合算暗号文を生成する手順の一例について説明する。ここでは、上述した第1実施形態と同様に、3つのSM10(SM10a,SM10b,SM10c)の時刻情報tで示される第1単位時間における電力使用量の暗号文Csm_a_t,Csm_b_t,Csm_c_tを合算して、第1合算暗号文Csm_1A(abc)_(t)を求める場合を例に挙げる。
【0114】
本変形例の場合、Csm_a_t,Csm_b_t,Csm_c_tは、下記式(4’)〜(6’)のように表される。
Csm_a_t=(ct’_a,ft_a,t) ・・・(4’)
Csm_b_t=(ct’_b,ft_b,t) ・・・(5’)
Csm_c_t=(ct’_c,ft_c,t) ・・・(6’)
そして、合算部24は、下記式(7’)を用いて第1合算暗号文Csm_1A(abc)_(t)を求めることができる。
Csm_1A(abc)_(t)=(C1A_c,C1A_f,t) ・・・(7’)
ただし、C1A_c=ct’_a+ct’_b+ct’_c、C1A_f=ft_a+ft_b+ft_cである。
【0115】
次に、MDMS20の合算部24が第2合算暗号文を生成する手順の一例について説明する。ここでは、上述した第1実施形態と同様に、課金対象の家庭のSM10aから受信した第2単位時間内に含まれる各第1単位時間における電力使用量の暗号文Csm_a_t1,Csm_a_t2,・・・,Csm_a_tnを合算して、第2合算暗号文Csm_2A(a)_(t1,t2,・・・,tn)を求める場合を例に挙げる。
【0116】
本変形例の場合、Csm_a_t1,Csm_a_t2,・・・,Csm_a_tnは、下記式(8’)〜(10’)のように表される。
Csm_a_t1=(ct’_t1_a,ft_t1_a,t1) ・・・(8’)
Csm_a_t2=(ct’_t2_a,ft_t2_a,t2) ・・・(9’)
・・・
Csm_a_tn=(ct’_tn_a,ft_tn_a,tn) ・・・(10’)
そして、合算部24は、下記式(11’)を用いて第2合算暗号部Csm_2A(a)_(t1,t2,・・・,tn)を求めることができる。
Csm_2A(a)_(t1,t2,・・・,tn)=(C2A_c,C2A_f,t1,t2,・・・,tn) ・・・(11’)
ただし、C2A_c=ct’_t1_a+ct’_t2_a+・・・+ct’_tn_a、C2A_f=ft_t1_a+ft_t2_a+・・・+ft_tn_aである。
【0117】
本変形例の場合、MDMS20の変換部25は、鍵管理サーバ50から受信した第1変換鍵K(a,b,c,t)を用いて、下記式(12’)に従って、第1変換合算暗号文Csm_1B(abc)_(t)を求めることができる。
Csm_1B(abc)_(t)=(C1B_c,C1B_f,t) ・・・(12’)
ただし、C1B_c=C1A_c−K(a,b,c,t)、C1B_f=C1A_fである。
【0118】
また、本変形例の場合、MDMS20の変換部25は、鍵管理サーバ50から受信した第2変換鍵K(a,t1,t2,・・・,tn)を用いて、下記式(13’)に従って、第2変換合算暗号文Csm_2B(a)_(t1,t2,・・・,tn)を求めることができる。
Csm_2B(a)_(t1,t2,・・・,tn)=(C2B_c,C2B_f,t1,t2,・・・,tn) ・・・(13’)
ただし、C2B_c=C2A_c−K(a,t1,t2,・・・,tn)、C2B_f=C2A_fである。
【0119】
次に、EMS30の復号部32が秘密鍵Keを用いて第1変換合算暗号文を復号して第1電力使用総量を生成する手順の一例について説明する。ここでは、通信制御部31が、MDMS20から第1変換合算暗号文Csm_1B(abc)_(t)=(C1B_c,C1B_f,t)を受信した場合を例示する。
【0120】
復号部32は、まず、上述した第1実施形態と同様に、MDMS20から受信した第1変換合算暗号文に含まれる時刻情報tと自身の秘密鍵Keとを用いて、上記の式(14)あるいは式(15)で示す計算を行い、Ke_tを求める。
【0121】
次に、復号部32は、式(14)あるいは式(15)で求めたKe_tを用いて下記式(16’)で示す計算を行い、第1電力使用総量d_EMSを得る。
d_EMS=C1B_c−Ke_t+C1B_f×dt_max ・・・(16’)
【0122】
次に、課金サーバ40の復号部42が秘密鍵Kpを用いて第2変換合算暗号文を復号して第2電力使用総量を生成する手順の一例について説明する。ここでは、通信制御部41が、MDMS20から第2変換合算暗号文Csm_2B(a)_(t1,t2,・・・,tn)=(C2B_c,C2B_f,t1,t2,・・・,tn)を受信した場合を例示する。
【0123】
復号部42は、まず、上述した第1実施形態と同様に、MDMS20から受信した第2変換合算暗号文に含まれる時刻情報t1,t2,・・・,tnと自身の秘密鍵Kpとを用いて、上記の式(17)あるいは式(18)で示す計算を行い、Kp_(t1,t2,・・・,tn)を求める。
【0124】
次に、復号部42は、式(17)あるいは式(18)で求めたKp_(t1,t2,・・・,tn)を用いて下記式(19’)で示す計算を行い、第2電力使用総量d_payを得る。
d_pay=C2B_c−Kp_(t1,t2,・・・,tn)+C2B_f×dt_max ・・・(19’)
【0125】
次に、鍵管理サーバ50の変換鍵生成部52が第1変換鍵を生成する手順の一例について説明する。ここでは、上述した第1実施形態と同様に、EMS30により指定されたすべての家庭(管理対象エリアに含まれるすべての家庭)のSM10がSM10a,SM10b,SM10cであるものとする。
【0126】
変換鍵生成部52は、まず、上述した第1実施形態と同様に、EMS30の識別情報と対応付けて秘密鍵記憶部53に記憶されている秘密鍵Keと、SM10a,SM10b,SM10cのそれぞれのSM_IDと対応付けて秘密鍵記憶部53に記憶されている秘密鍵Ksm_a,Ksm_b,Ksm_cとを取り出す。
【0127】
そして、変換鍵生成部52は、これらの秘密鍵と時刻情報tとを用いて、下記式(20’)に示すように、第1変換鍵K(a,b,c,t)を生成する。
K(a,b,c,t)=h(Ksm_a,t)+h(Ksm_b,t)+h(Ksm_c,t)−h(Ke,t) ・・・(20’)
ただし、暗号化の際にストリーム暗号を用いる場合には、第1変換鍵K(a,b,c,t)は下記式(21’)の計算で生成する。
K(a,b,c,t)=ST(h(Ksm_a,t))+ST(h(Ksm_b,t))+ST(h(Ksm_c,t))−ST(h(Ke,t)) ・・・(21’)
【0128】
次に、鍵管理サーバ50の変換鍵生成部52が第2変換鍵を生成する手順の一例について説明する。ここでは、上述した第1実施形態と同様に、課金サーバ40により指定された家庭(課金対象となる家庭)のSM10がSM10aであり、課金サーバ40により指定された第2単位時間内のすべての第1単位時間の時刻情報がt1,t2,・・・,tnであるものとする。
【0129】
変換鍵生成部52は、まず、上述した第1実施形態と同様に、課金サーバ40の識別情報と対応付けて秘密鍵記憶部53に記憶されている秘密鍵Kpと、SM10aのSM_IDと対応付けて秘密鍵記憶部53に記憶されている秘密鍵Ksm_aとを取り出す。
【0130】
そして、変換鍵生成部52は、これらの秘密鍵と時刻情報t1,t2,・・・,tnとを用いて、下記式(22’)に示すように、第2変換鍵K(a,t1,t2,・・・,tn)を生成する。
K(a,t1,t2,・・・,tn)=h(Ksm_a,t1)+h(Ksm_a,t2)+・・・+h(Ksm_a,tn)−h(Kp,t1,t2,・・・,tn) ・・・(22’)
ただし、暗号化の際にストリーム暗号を用いる場合には、第2変換鍵K(a,t1,t2,・・・,tn)は下記式(23’)の計算で生成する。
K(a,t1,t2,・・・,tn)=ST(h(Ksm_a,t1))+ST(h(Ksm_a,t2))+・・・+ST(h(Ksm_a,tn))−ST(h(Kp,t1,t2,・・・,tn)) ・・・(23’)
【0131】
本変形例におけるその他の処理は上述した第1実施形態と同様であるため、説明を省略する。
【0132】
以上説明したように、本変形例においては、SM10の暗号化部12が、電力使用量dtにストリーム暗号の鍵系列KsmST_tを算術加算してctを求め、求めたctがSM10で計測される電力使用量の最大値であるdt_max以上の値であるか否かを示すフラグftを用いて、暗号文(ct’,ft)を生成するようにしている。したがって、本変形例によれば、電力使用量dtの暗号文のデータサイズを小さくし、メモリ資源の有効活用や演算処理の効率化を図ることができる。
【0133】
(第1実施形態の変形例2)
上述した変形例1では、Ksm_tの値域は、0以上dt_max未満(dt_maxは、SM10で計測される電力使用量の最大値)としていた。本変形例では、Ksm_tの値域は、0以上ct_max未満とする(ct_maxは、1以上の整数値)。本変形例では、ct_maxをdt_maxより小さな値とすることで、上述した変形例1よりもctの値を小さくでき、ctを記憶するための記憶容量をさらに削減することができる。
【0134】
以下、本変形例における処理の具体例について、上述した変形例1との差分を説明する。
【0135】
本変形例では、SM10の暗号化部12は、上記の式(2’)に従ってctを計算した後に、下記式(26)に従って、電力使用量dtを暗号化した暗号文(ct’,ft)を求める。
(ct’,ft)=(ct mod ct_max,Q(ct,ct_max)) ・・・(26)
ただし、Q(a,b)は、整数aをbで割り算する際に得られる商である。本変形例では、フラグftは0,1以外の値となることもある。これにより、電力使用量dtの暗号文のデータサイズを小さくし、メモリ資源の有効活用や演算処理の効率化を図ることができる。
【0136】
本変形例において、MDMS20の合算部24が複数の暗号文を合算して合算暗号文を生成する手順は、上述した変形例1と同様である。また、本変形例において、MDMS20の変換部25が第1合算暗号文を第1変換合算暗号文に変換する手順および第2合算暗号文を第2変換合算暗号文に変換する手順は、上述した変形例1と同様である。
【0137】
本変形例では、EMS30の復号部32は、上記の式(14)あるいは式(15)でKe_tを求めた後、このKe_tを用いて下記式(16’’)で示す計算を行い、第1電力使用総量d_EMSを得る。
d_EMS=C1B_c−Ke_t+C1B_f×ct_max ・・・(16’’)
【0138】
また、本変形例では、課金サーバ40の復号部42は、上記の式(17)あるいは式(18)でKp_(t1,t2,・・・,tn)を求めた後、このKp_(t1,t2,・・・,tn)を用いて下記式(19’’)で示す計算を行い、第2電力使用総量d_payを得る。
d_pay=C2B_c−Kp_(t1,t2,・・・,tn)+C2B_f×ct_max ・・・(19’’)
【0139】
本変形例におけるその他の処理は上述した第1実施形態および変形例1と同様であるため、説明を省略する。
【0140】
(第1実施形態の変形例3)
上述した変形例1および変形例2では、フラグftの値は秘匿されることなく、電力使用量記憶部23に記憶される。このとき、ある暗号文ctに対応するフラグftが0である場合には、ct=dt+KsmST_t≧dtであり、電力使用量dtは0以上かつct以下であることが推測可能となる。一方、たとえば上述の変形例1において、あるctに対応するftが1である場合には、ct=dt+KsmST_t−dt_max≦dt+dt_max−dt_max=dtであり、dtはct以上かつdt_max以下であることが推測可能となる。
【0141】
このように、フラグftの値が秘匿されない場合には、フラグftの値に基づいて電力使用量dtの情報が一部漏洩する。そこで、本変形例では、フラグftの値を秘匿することで電力使用量dtの推測を困難にする。以下では、上述した変形例1を例として、フラグftの値を秘匿する方法を説明するが、上述した変形例2においても同様の方法でフラグftの値を秘匿することが可能である。
【0142】
以下、本変形例における処理の具体例について、上述した変形例1との差分を説明する。
【0143】
上述した変形例1におけるSM10の秘密鍵記憶部15は、式(1)の秘密鍵を記憶していた。これに対し、本変形例におけるSM10の秘密鍵記憶部15は、下記式(1’)の秘密鍵を記憶する。
(Ksm_t,K’sm_t)=h(Ksm,t) ・・・(1’)
ここで、Ksm_tの値域は、0以上dt_max未満であり、K’sm_tは、ft_bitビット(ft_bitは1以上の整数であり、上述した変形例2に本変形例を適用する場合には、ft_bitは上述した変形例2でフラグftが取りうる最大値のビット長以上の値とすることが望ましい)の値である。
【0144】
本変形例において、SM10の暗号化部12は、まず、上述した変形例1と同様の手順で、上記の式(24)あるいは式(25)に基づいて(ct’,ft)を計算する。暗号化部12は、次に、ft’=ft(+)K’smST_t(ただし、(+)はビットごとの排他的論理和演算を表す)を計算し、(ct’,ft’)を暗号文として出力する。
【0145】
次に、MDMS20の合算部24が第1合算暗号文を生成する手順の一例について説明する。ここでは、上述した変形例1と同様に、3つのSM10(SM10a,SM10b,SM10c)の時刻情報tで示される第1単位時間における電力使用量の暗号文Csm_a_t,Csm_b_t,Csm_c_tを合算して、第1合算暗号文Csm_1A(abc)_(t)を求める場合を例に挙げる。
【0146】
本変形例の場合、Csm_a_t,Csm_b_t,Csm_c_tは、下記式(4’’)〜(6’’)のように表される。
Csm_a_t=(ct’_a,ft’_a,t) ・・・(4’’)
Csm_b_t=(ct’_b,ft’_b,t) ・・・(5’’)
Csm_c_t=(ct’_c,ft’_c,t) ・・・(6’’)
そして、合算部24は、下記式(7’’)を用いて第1合算暗号文Csm_1A(abc)_(t)を求めることができる。
Csm_1A(abc)_(t)=(C1A_c,C1A’_f,t) ・・・(7’’)
ただし、C1A_c=ct’_a+ct’_b+ct’_c、C1A’_f=(ft_a(+)K’smST_t_a)+(ft_b(+)K’smST_t_b)+(ft_c(+)K’smST_t_c)であり、K’smST_t_iは第i番目のSM10について上記式(1’)で計算される第2成分である。
【0147】
次に、MDMS20の合算部24が第2合算暗号文を生成する手順の一例について説明する。ここでは、上述した変形例1と同様に、課金対象の家庭のSM10aから受信した第2単位時間内に含まれる各第1単位時間における電力使用量の暗号文Csm_a_t1,Csm_a_t2,・・・,Csm_a_tnを合算して、第2合算暗号文Csm_2A(a)_(t1,t2,・・・,tn)を求める場合を例に挙げる。
【0148】
本変形例の場合、Csm_a_t1,Csm_a_t2,・・・,Csm_a_tnは、下記式(8’’)〜(10’’)のように表される。
Csm_a_t1=(ct’_t1_a,ft’_t1_a,t1) ・・・(8’’)
Csm_a_t2=(ct’_t2_a,ft’_t2_a,t2) ・・・(9’’)
・・・
Csm_a_tn=(ct’_tn_a,ft’_tn_a,tn) ・・・(10’’)
そして、合算部24は、下記式(11’’)を用いて第2合算暗号部Csm_2A(a)_(t1,t2,・・・,tn)を求めることができる。
Csm_2A(a)_(t1,t2,・・・,tn)=(C2A_c,C2A’_f,t1,t2,・・・,tn) ・・・(11’’)
ただし、C2A_c=ct’_t1_a+ct’_t2_a+・・・+ct’_tn_a、C2A’_f=(ft_t1_a(+)K’smST_t1_a)+(ft_t2_a(+)K’smST_t2_a)+・・・+(ft_tn_a(+)K’smST_tn_a)である。
【0149】
本変形例におけるその他の処理は上述した第1実施形態および変形例1と同様であるため、説明を省略する。
【0150】
(第1実施形態の変形例4)
上述した変形例3では、フラグftの値を秘匿するために、ビットごとの排他的論理和演算を用いた。これに対して本変形例では、フラグftの値を秘匿するために、ビットごとの排他的論理和演算ではなく、算術加算を用いる。なお、本変形例も変形例3と同様に、上述した変形例1を例として、フラグftの値を秘匿する方法を説明するが、上述した変形例2においても同様の方法でフラグftの値を秘匿することが可能である。
【0151】
以下、本変形例における処理の具体例について、上述した変形例1との差分を説明する。
【0152】
上述した変形例1におけるSM10の秘密鍵記憶部15は、式(1)の秘密鍵を記憶していた。これに対し、本変形例におけるSM10の秘密鍵記憶部15は、下記式(1’’)の秘密鍵を記憶する。
(Ksm_t,K’’sm_t)=h(Ksm,t) ・・・(1’’)
ここで、Ksm_tの値域は、0以上dt_max未満であり、K’’sm_tは、0以上かつft_max以下の値である。
【0153】
本変形例において、SM10の暗号化部12は、まず、上述した変形例1と同様の手順で、上記の式(24)あるいは式(25)に基づいて(ct’,ft)を計算する。暗号化部12は、次に、ft’’=ft+K’’smST_tを計算し、(ct’,ft’’)を暗号文として出力する。
【0154】
次に、MDMS20の合算部24が第1合算暗号文を生成する手順の一例について説明する。ここでは、上述した変形例1と同様に、3つのSM10(SM10a,SM10b,SM10c)の時刻情報tで示される第1単位時間における電力使用量の暗号文Csm_a_t,Csm_b_t,Csm_c_tを合算して、第1合算暗号文Csm_1A(abc)_(t)を求める場合を例に挙げる。
【0155】
本変形例の場合、Csm_a_t,Csm_b_t,Csm_c_tは、下記式(4’’’)〜(6’’’)のように表される。
Csm_a_t=(ct’_a,ft’’_a,t) ・・・(4’’’)
Csm_b_t=(ct’_b,ft’’_b,t) ・・・(5’’’)
Csm_c_t=(ct’_c,ft’’_c,t) ・・・(6’’’)
そして、合算部24は、下記式(7’’’)を用いて第1合算暗号文Csm_1A(abc)_(t)を求めることができる。
Csm_1A(abc)_(t)=(C1A_c,C1A’’_f,t) ・・・(7’’’)
ただし、C1A_c=ct’_a+ct’_b+ct’_c、C1A’’_f=(ft_a+K’’smST_t_a)+(ft_b+K’’smST_t_b)+(ft_c+K’’smST_t_c)であり、K’’smST_t_iは第i番目のSM10について上記式(1’’)で計算される第2成分である。
【0156】
次に、MDMS20の合算部24が第2合算暗号文を生成する手順の一例について説明する。ここでは、上述した変形例1と同様に、課金対象の家庭のSM10aから受信した第2単位時間内に含まれる各第1単位時間における電力使用量の暗号文Csm_a_t1,Csm_a_t2,・・・,Csm_a_tnを合算して、第2合算暗号文Csm_2A(a)_(t1,t2,・・・,tn)を求める場合を例に挙げる。
【0157】
本変形例の場合、Csm_a_t1,Csm_a_t2,・・・,Csm_a_tnは、下記式(8’’’)〜(10’’’)のように表される。
Csm_a_t1=(ct’_t1_a,ft’’_t1_a,t1) ・・・(8’’’)
Csm_a_t2=(ct’_t2_a,ft’’_t2_a,t2) ・・・(9’’’)
・・・
Csm_a_tn=(ct’_tn_a,ft’’_tn_a,tn) ・・・(10’’’)
そして、合算部24は、下記式(11’’’)を用いて第2合算暗号部Csm_2A(a)_(t1,t2,・・・,tn)を求めることができる。
Csm_2A(a)_(t1,t2,・・・,tn)=(C2A_c,C2A’’_f,t1,t2,・・・,tn) ・・・(11’’’)
ただし、C2A_c=ct’_t1_a+ct’_t2_a+・・・+ct’_tn_a、C2A’’_f=(ft_t1_a−K’’smST_t1_a)+(ft_t2_a−K’’smST_t2_a)+・・・+(ft_tn_a−K’’smST_tn_a)である。
【0158】
本変形例におけるその他の処理は上述した第1実施形態および変形例1と同様であるため、説明を省略する。
【0159】
(第2実施形態)
次に、第2実施形態に係る電力使用量計算システムについて説明する。第2実施形態に係る電力使用量計算システムは、鍵管理サーバ50が、MDMS20から変換鍵の取得要求を受信する前に、変換鍵の鍵要素を可能な範囲で事前に計算することで、変換鍵の取得要求に対する応答性を高めるようにしたものである。なお、電力使用量計算システムの基本的な構成や鍵管理サーバ50を除く各機器の処理は第1実施形態と共通であるため、以下、第2実施形態において特徴的な鍵管理サーバ50についてのみ説明し、第1実施形態と重複する説明は省略する。以下では、第2実施形態の鍵管理サーバ50を鍵管理サーバ50Aと表記し、第1実施形態と区別する。
【0160】
図11は、第2実施形態の鍵管理サーバ50Aの機能的構成の一例を示すブロック図である。鍵管理サーバ50Aは、例えば
図11に示すように、第1実施形態の鍵管理サーバ50の構成に加えて、変換鍵記憶部54と、変換鍵記憶制御部55とを備える。また、鍵管理サーバ50Aは、第1実施形態の鍵管理サーバ50が備える変換鍵生成部52に代えて、変換鍵生成部52Aを備える。変換鍵生成部52Aおよび変換鍵記憶制御部55の各機能は、CPUが実行する各種プログラムにより実現される。変換鍵記憶部54は、例えば補助記憶部に確保される記憶領域である。
【0161】
変換鍵生成部52Aは、MDMS20から第1変換鍵や第2変換鍵の取得要求を受信する前に、第1変換鍵や第2変換鍵の鍵要素を事前に計算する。すなわち、第1変換鍵は、上記式(22)あるいは上記式(23)に示したように、時刻情報tが共通でSM_IDが異なる複数の暗号文の各々に対応する複数の鍵要素を組み合わせた鍵情報である。また、第2変換鍵は、上記式(24)あるいは上記式(25)に示したように、SM_IDが共通で時刻情報tが異なる複数の暗号文の各々に対応する複数の鍵要素を組み合わせた鍵情報である。ここで、時刻情報tの値は、第1単位時間の長さが固定であるため、鍵管理サーバ50において事前に認識することができる。また、SM_IDに対応する秘密鍵Ksmは、秘密鍵記憶部53が記憶している。したがって、第1変換鍵や第2変換鍵を構成する個々の鍵要素は、MDMS20からの取得要求を待つことなく、鍵管理サーバ50において事前に計算することが可能である。
【0162】
そこで、変換鍵生成部52Aは、鍵管理サーバ50がアイドル状態のとき、つまりMDMS20から第1変換鍵や第2変換鍵の取得要求が送信されるのを待機しているときに、第1変換鍵や第2変換鍵の鍵要素を可能な範囲で生成する。そして、通信制御部51がMDMS20から第1変換鍵や第2変換鍵の取得要求を受信すると、変換鍵生成部52Aは、事前に計算できなかった鍵要素があればその鍵要素のみを計算し、取得要求に含まれる時刻情報tやSM_IDから必要な鍵要素を特定してこれらを組み合わせることで、第1変換鍵や第2変換鍵を生成する。このように、変換鍵生成部52Aが第1変換鍵や第2変換鍵の鍵要素を可能な範囲で事前に計算しておくことで、第1変換鍵や第2変換鍵の取得要求に対する応答性を高めることができる。
【0163】
変換鍵記憶部54は、変換鍵生成部52Aが計算した第1変換鍵や第2変換鍵の鍵要素を記憶する。変換鍵記憶部54は、第1変換鍵の鍵要素を記憶する第1記憶領域と、第2変換鍵の鍵要素を記憶する第2記憶領域とを有する。変換鍵生成部52Aが計算した第1変換鍵の鍵要素は、変換鍵記憶制御部55によって第1記憶領域に格納され、変換鍵生成部52Aが計算した第2変換鍵の鍵要素は、変換鍵記憶制御部55によって第2記憶領域に格納される。
【0164】
変換鍵記憶制御部55は、変換鍵生成部52Aが計算した第1変換鍵や第2変換鍵の鍵要素を、変換鍵記憶部54の第1記憶領域と第2記憶領域とに振分けながら格納する。このとき、変換鍵記憶制御部55は、変換鍵生成部52Aが計算した鍵要素が、第1変換鍵と第2変換鍵とで共通する鍵要素である場合に、この鍵要素を変換鍵記憶部54の第1記憶領域と第2記憶領域とにそれぞれ格納する。
【0165】
図12は、第1変換鍵の鍵要素と第2変換鍵の鍵要素を概念的に示す模式図である。
図12において、d
i,jはSM(i)が時刻情報t=jのときに集計した電力使用量を表し、k
i,jはd
i,jを暗号化/復号するための鍵要素を表し、c
i,jはk
i,jを用いてd
i,jを暗号化した結果の暗号文を表している。
【0166】
図12に示す例において、例えば、時刻情報t=1のときに複数のSM(i)が集計した電力使用量の暗号文を合算した第1合算暗号文を第1変換合算暗号文に変換するための第1変換鍵は、k
1,1,k
2,1,k
3,1,・・・,k
i_max,1の鍵要素を持つ。また、SM(1)が複数の時刻情報t=iのときに各々集計した電力使用量の暗号文を合算した第2合算暗号文を第2変換合算暗号文に変換するための第2変換鍵は、k
1,1,k
1,2,k
1,3,・・・,k
1,j_maxの鍵要素を持つ。これらの鍵要素のうち、k
1,1は第1変換鍵と第2変換鍵とで共通する鍵要素である。この例の場合、変換鍵生成部52Aによって鍵要素k
1,1が事前に計算されると、変換鍵記憶制御部55が、この鍵要素k
1,1を変換鍵記憶部54の第1記憶領域と第2記憶領域との双方に格納する。このように、変換鍵生成部52Aによって第1変換鍵と第2変換鍵とで共通する鍵要素が事前に計算された場合に、変換鍵記憶制御部55が、この鍵要素を変換鍵記憶部54の第1記憶領域と第2記憶領域との双方に格納することで、変換鍵生成部52Aによる鍵要素の計算回数を減らし、処理の効率化を図ることができる。
【0167】
図13は、変換鍵の鍵要素を事前計算する際の処理手順の一例を示すフローチャートである。まず、変換鍵生成部52Aは、鍵管理サーバ50がアイドル状態であるか否かを判定する(ステップS501)。そして、鍵管理サーバ50がアイドル状態であれば(ステップS501:Yes)、変換鍵生成部52Aは、未計算で事前計算が可能な変換鍵の鍵要素があるか否かを判定する(ステップS502)。そして、未計算で事前計算が可能な変換鍵の鍵要素があれば(ステップS502:Yes)、変換鍵生成部52Aが未計算で事前計算が可能な変換鍵の鍵要素を計算し、変換鍵記憶制御部55が、変換鍵生成部52Aにより計算された鍵要素を、変換鍵記憶部54の対応する記憶領域に格納する(ステップS503)。すなわち、変換鍵生成部52Aにより計算された鍵要素が第1変換鍵のみの鍵要素であれば、変換鍵記憶制御部55は、この鍵要素を変換鍵記憶部54の第1記憶領域に格納する。また、変換鍵生成部52Aにより計算された鍵要素が第2変換鍵のみの鍵要素であれば、変換鍵記憶制御部55は、この鍵要素を変換鍵記憶部54の第2記憶領域に格納する。また、変換鍵生成部52Aにより計算された鍵要素が第1変換鍵と第2変換鍵とで共通する鍵要素であれば、変換鍵記憶制御部55は、この鍵要素を変換鍵記憶部54の第1記憶領域と第2記憶領域との双方に格納する。なお、鍵管理サーバ50がアイドル状態でない場合や(ステップS501:No)、未計算で事前計算が可能な変換鍵の鍵要素がない場合は(ステップS502:No)、ステップS503の処理を行うことなくそのまま処理を終了する。
【0168】
以上説明したように、本実施形態に係る電力使用量計算システムによれば、鍵管理サーバ50Aの変換鍵生成部52Aが、MDMS20から第1変換鍵や第2変換鍵の取得要求を受信する前に、第1変換鍵や第2変換鍵の鍵要素を可能な範囲で事前に計算するようにしているので、第1変換鍵や第2変換鍵の取得要求に対する応答性を高めることができる。また、変換鍵生成部52Aが事前計算した鍵要素が第1変換鍵と第2変換鍵とで共通する鍵要素である場合は、変換鍵記憶制御部55がこの鍵要素を変換鍵記憶部54の第1記憶領域と第2記憶領域との双方に格納するようにしているので、変換鍵生成部52Aによる鍵要素の計算回数を減らし、処理の効率化を図ることができる。
【0169】
なお、以上説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。上記の新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。上記の実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均などの範囲に含まれる。