[情報処理システムの全体構成例]
図1は、本実施形態における情報処理システムであるバッテリユニット運用システムの全体構成例を示している。本実施形態のバッテリユニット運用システムは、複数のバッテリユニット100と、総合管理サーバ600から成る。なお、本実施形態では、バッテリユニット100の各々と総合管理サーバ600は、ネットワークなどの所定の通信網を経由して相互に通信可能とされているものとする。
近年、スマートグリッドが注目されてきている。スマートグリッドは、分散型電源と電力会社からの集中型電源とを組み合わせることで、需要と供給のバランスをリアルタイムに調整することで効率的な電力供給を行うように構築される電力受給システムである。上記の分散型電源には、太陽光発電や風力発電などに加え、蓄電装置も含まれる。このスマートグリッドにおける蓄電装置が、本実施形態のバッテリユニット100に該当する。
バッテリユニット100は、充電により電力を蓄えるとともに、蓄えた電力を必要に応じて放電することにより所定の負荷に供給する機能を有する。図2には、バッテリユニット100の内部における装置構成が示されている。同図に示すバッテリユニット100は、バッテリ管理装置200と複数のセルパッケージ300を備える。バッテリ管理装置200は、セルパッケージ300に対する充放電などをはじめとする各種の動作をコントロールする。セルパッケージ300は、ここでは図示を省略しているが内部にセルと称する二次電池を備える。また、当該セルを管理するセル管理装置400を備える。セルパッケージ300の数は、例えばバッテリユニット100の用途などに応じて異なる。これらのセルパッケージ300が例えば直列に接続されることで、バッテリユニット100として必要な容量が確保される。このようなバッテリユニット100の構成においては、バッテリ管理装置200が上位の情報処理装置となり、セルパッケージ300が下位の情報処理装置となる関係にあるといえる。
図1に説明を戻す。バッテリユニット100は、特定の産業分野に限定されることなく、車両や各種の施設に備えられる。すなわち、電気自動車1に備えられたバッテリユニット100は、当該電気自動車1を駆動するバッテリとして機能する。また、住宅施設2や企業施設3に備えられたバッテリユニット100は、例えば、無停電電源として機能する。また、これらのバッテリユニット100は、スマートグリッド環境において、電力使用量が少ない時間帯には蓄電を行い、必要に応じて、電力会社に電力を供給するための放電を行うという分散型電源の1つとして機能する。
総合管理サーバ600は、上記のように各所に設置されるバッテリユニット100を一括して管理する。この管理機能の1つとして、総合管理サーバ600は、各バッテリユニット100が相互認証に使用する鍵を更新するための処理を実行可能とされている。
なお、図1に示す構成において、例えば、1つの住宅施設2や企業施設3において、複数のバッテリユニット100が並列に備えられるような構成も考えることができる。
[情報処理システムの運用例]
バッテリユニット100が備えるセルパッケージ300は、充放電が繰り返されるのに応じてその性能が劣化していく。ただし、例えばセルパッケージのばらつきなどにより、セルパッケージ300間の劣化の度合いにもばらつきが生じる。バッテリユニット100としての製品は高価であるため、例えばバッテリユニット100における少数のセルパッケージ300が劣化しただけであるのにバッテリユニット100自体を交換するという運用はコスト面からみて好ましくない。
そこで、本実施形態では、バッテリユニット運用システムにおいてバッテリユニット100におけるセルパッケージ300ごとの劣化を監視し、劣化の度合いが一定以上であると判断されたセルパッケージ300を交換するという運用を行う。このような運用であれば、セルパッケージ300を交換するためのコストで済む。
また、本実施形態における運用では、セルパッケージ300を交換するにあたり、新品に交換する場合もあるが、他のバッテリユニット100において使用されていたセルパッケージ300を再利用する場合もあることを想定している。同じセルパッケージ300の製品であっても、用途に応じて要求される性能が異なる場合もあると考えられる。つまり、ある用途では、非常に高い性能が求められるが、他の用途では、一定以下の水準にまで性能が低下していなければ十分に使用可能であるというような状況を想定できる。そこで、本実施形態では、或るバッテリユニット100において使用不可であるとして取り外されたセルパッケージ300を一律に廃棄するのではなく、再利用可能なものについては再利用するように運用する。つまり、或るバッテリユニット100から取り外されたセルパッケージ300が、他のバッテリユニット100ではまだ要求される性能を満たしているのであれば、この他のバッテリユニット100におけるセルパッケージ300の交換時に再利用する。このようにセルパッケージ300を再利用することでさらにコストダウンが図られ、環境面の点からも望ましい。
また、本実施形態においては、バッテリユニット100は多様な事業者(メーカ)が提供することを想定している。具体的に、電気自動車1のバッテリユニット100であれば、自動車の電装品などの事業者Bが提供し、セルパッケージ300の交換サービスを行うことが想定される。また、住宅施設2や企業施設3のバッテリユニット100であれば、住宅販売会社や建設会社などの事業者C、Dも参入して、その販売やセルパッケージ300の交換を行うことが想定される。そのうえで、総合管理サーバ600は、バッテリユニット100を提供する事業者B、C、Dなどを一括して管理する別の事業者Aが運用する。なお、総合管理サーバ600を運用する事業者Aと、バッテリユニット100を提供する事業者のうちの1つが重複する場合も考えられる。
[バッテリユニット運用システムにおける相互認証]
上記運用の実現のためには、セルパッケージ300を人為的作業によって交換可能なようにバッテリユニット100を構成することになる。この場合、正規品ではない安価なセルパッケージが市場に出回り、ユーザがこのセルパッケージを購入して勝手に交換するという不正が行われてしまう可能性が生じる。
上記のように正規品でないセルパッケージは、製品の信頼性、安全性を保証することができない。このため、正規品でないセルパッケージに交換された場合にはバッテリユニットが動作できないようにすることが必要になる。つまり、正規品でないセルパッケージの不正使用を防ぐことが必要になる。
そこで、本実施形態では、次のように正規品でないバッテリの不正使用を防止する。この点について、図2を参照して説明する。このためには、まず、総合管理サーバ600側でバッテリユニット100自体が正規のものであるか否かについて確認する必要がある。このために、総合管理サーバ600と、バッテリユニット100のバッテリ管理装置200との間で相互認証を行う(ステップS1)。この相互認証は、例えばバッテリユニット100が設置されたときに行う。また、設置後においても例えばバッテリユニットの再起動時や一定期間ごとのタイミングで行うようにしてもよい。
上記相互認証が成立すれば、総合管理サーバ600は、バッテリユニット100が正規のものであると認識する。これに対して、相互認証が不成立の場合、総合管理サーバ600は、バッテリユニットが正規のものではないと認識し、例えばこのバッテリユニットからアクセスが行われたとしても、これを拒否する。
また、セルパッケージ300が正規品であるか否かについて認識するために、バッテリユニット100において、バッテリ管理装置200と各セルパッケージ300が相互認証を行う(ステップS2)。ここで、バッテリ管理装置200は親鍵Kpを記憶し、セルパッケージ300のセル管理装置400はそれぞれ子鍵Kcを記憶している。バッテリ管理装置200とセル管理装置400は、例えば交換鍵方式による相互認証処理を行い、この相互認証処理の際に、上記親鍵Kpと子鍵Kcを使用する。この相互認証は、バッテリユニット100においてセルパッケージ300の交換が行われるのに応じて必ず実行される。また、例えばバッテリユニット100が設置されたときに実行されるものとする。また、バッテリユニット100の設置後において、バッテリユニット100が再起動された場合にも実行されるものとする。
バッテリ管理装置200とセルパッケージ300の相互認証が成立した場合、バッテリ管理装置200は、そのセルパッケージ300を正規品であると認識し、このセルパッケージ300についての管理を行う。これに対して、バッテリ管理装置200とセルパッケージ300の相互認証が成立しなかった場合、バッテリ管理装置200は、このセルパッケージ300は正規品ではないと認識する。この場合、バッテリ管理装置200は、セルパッケージ300を動作させないように制御して使用できないようにする。本実施形態では、このようにバッテリ管理装置200とセルパッケージ300が相互認証を行うことによって、正規品でないセルパッケージ300の使用を防止できる。
上記のようにバッテリ管理装置200とセルパッケージ300の相互認証には親鍵Kpと子鍵Kcのペアを使用する。しかし、これら親鍵Kpと子鍵Kcが固定のままであると、悪意のある事業者が子鍵Kcを入手して、同じ子鍵Kcを記憶させた正規品でないセルパッケージを製造する可能性がある。
そこで、本実施形態では、所定の機会により親鍵Kpと子鍵Kcの更新を行う。このためには、まず、総合管理サーバ600にて更新用親鍵データを生成し、この更新用親鍵データをバッテリ管理装置200に送信する。バッテリ管理装置200は、受信した更新用親鍵データを利用して親鍵Kpを更新する(ステップS3)。なお、親鍵Kpの更新が成立しなかった場合は、総合管理サーバ600によりその異常を検知することができる。
そして、バッテリ管理装置200は、この親鍵Kpの更新をトリガとして、下位のセルパッケージ300の子鍵Kcを更新するための処理を実行する。つまり、バッテリ管理装置200は、更新用子鍵データを生成し、セルパッケージ300に対して転送する。セルパッケージ300のセル管理装置400は、受信した更新用子鍵データを利用して子鍵Kcを更新する(ステップS4)。なお、子鍵Kcの更新が成立しなかった場合は、バッテリ管理装置200によりその異常を検知することができる。
このように、まずバッテリ管理装置200の親鍵Kpを更新し、これに応じてセルパッケージ300の子鍵Kcの更新を行うようにすることで、親鍵Kpと子鍵Kcを固定とした場合よりもセキュリティを高めることができる。なお、親鍵Kpと子鍵Kcを更新するタイミングとしては、例えば一定期間ごとに行うようにすればよい。また、これに加えて、何らかの要因によって親鍵Kpや子鍵Kcのデータが漏洩した可能性があると判断したときに更新を行うようにすれば、さらにセキュリティを高めることができる。
なお、本実施形態における親鍵Kpと子鍵Kcは、パスワード認証等の暗証方式に用いる暗証鍵(暗証番号)でもよいし、共通鍵方式または鍵交換方式等に用いる鍵でもよい。共通鍵方式と鍵交換方式は相互認証が可能なであるため、暗証方式より好ましい。暗証鍵を用いる場合、親鍵Kpの暗証鍵とセル識別子等のセルに固有の値を用いて演算して子鍵Kcを生成することができる。
また、共通鍵方式または鍵交換方式を用いる場合にはパラーメータキーとロジック(アルゴリズム)のペアを用いることとなる。具体的には共通鍵暗号方式や公開鍵暗号方式のロジック(アルゴリズム)としては、DES(Data Encryption Standard)、AES(Advanced Encryption Standard)、RSA、楕円暗号等を用いることができる。これらの方法では、相互認証する2者が対応するパラーメータキーとロジックのペアを持っておき、これらを用いて演算した結果をお互いに照合することにより相互認証をすることができる。この場合、パラーメータキーのみを更新してもよいし、ロジック(アルゴリズム)のみを更新してもよい。またパラーメータキーとロジック(アルゴリズム)の双方を更新してもよい。
また、親鍵Kpから子鍵Kcを生成する際は、親鍵のパラーメータキーとロジックの少なくもいずれか一方を元にセル識別子等セル固有の値を用いた演算から得た子鍵Kcを生成することもできる。子鍵Kc生成のための演算ロジックは、総合管理サーバ600だけではなく、バッテリ管理装置200にも記憶させておくことができる。
[バッテリユニットにおけるバッテリ管理装置の構成]
以降、本実施形態のバッテリユニット運用システムにおける鍵更新のための構成について説明することとし、まず、バッテリユニット100の構成から説明する。先に図2に示したように、バッテリユニット100は、バッテリ管理装置200とセルパッケージ300から成る。
先にバッテリユニット100のバッテリ管理装置200から説明する。図3は、バッテリ管理装置200の構成例を示している。この図に示すバッテリ管理装置200は、CPU(Central Processing Unit)201、RAM(Random Access Memory)202、記憶部203、入力インターフェース204、出力インターフェース205、サーバ対応通信部206及びセルパッケージ対応通信部207を備える。これらの部位は、データバス208を介して接続されている。
CPU201は、記憶部203に記憶されるプログラムを実行することにより、バッテリ管理装置200としての所定の機能を実現する。
RAM202は、主記憶装置として機能するもので、CPU201が実行すべきプログラムが記憶部203から読み出されて展開される。また、RAM202は、CPU201が演算処理を実行する際の作業領域として使用される。
記憶部203は、補助記憶装置として機能するもので、CPU201により実行されるプログラムや各種データを格納する。なお、この記憶部203には、例えばハードディスクやフラッシュメモリなどの半導体記憶装置を採用することができる。なお、記憶部203は、特許請求の範囲に記載の第1の記憶部に相当する。
入力インターフェース204は、例えばキーボードやマウスなどの操作デバイスをはじめとする入力デバイスを一括して示したものである。また、出力インターフェース205は、例えばディスプレイデバイスやスピーカなどの出力デバイスを一括して示したものである。
サーバ対応通信部206は、総合管理サーバ600と、例えばネットワークなどの所定の通信網を経由して通信を行う部位である。サーバ対応通信部206が対応するネットワークとしては、インターネットやWAN(Wide Area Network)などを想定することができる。
セルパッケージ対応通信部207は、同じバッテリユニット100における複数のセルパッケージ300の各々と所定の通信規格にしたがって通信を行う部位である。この通信規格としては、例えばIEEE1394などのデータインターフェースをはじめ多様に考えられる。また、有線によるデータインターフェースのほか、RFIDに適用される通信方式やブルートゥース(登録商標)などの近距離無線通信規格を適用することも考えられる。
[バッテリユニットにおけるセルパッケージの構成]
図4は、バッテリユニット100におけるセルパッケージ300の構成例を示している。この図に示すように、セルパッケージ300は、セル管理装置400とセル500を備える。
セル管理装置400は、セルパッケージ300において備えられるセル500に関する所定の制御を行う部位である。具体的には、セル500に対する充放電に関する制御を行う。また、セル500の劣化度合いを判断するためのセル500に関する情報の収集を行う。このセル500に関する情報としては、例えばセル500に対する充放電の履歴の情報、セル500の電圧値などを上げることができる。
同図に示すセル管理装置400は、CPU401、RAM402、記憶部403、管理装置対応通信部404及びセル対応通信部405を備える。これらの部位は、データバス406を介して接続されている。
CPU401は、記憶部403に記憶されるプログラムを実行することにより、セル管理装置400としての所定の機能を実現する。なお、RAM402及び記憶部403の個々の機能については、図3のRAM202及び記憶部203と同様となることから、ここでの説明は省略する。なお、記憶部403は、特許請求の範囲に記載の第2の記憶部に相当する。
管理装置対応通信部404は、同じバッテリユニット100におけるバッテリ管理装置200と通信を行う部位である。この管理装置対応通信部404は、バッテリ管理装置200におけるセルパッケージ対応通信部207と同じ通信規格に対応した通信が可能なように構成される。
セル対応通信部405は、同じセルパッケージ300におけるセル500と通信を行う部位である。セル対応通信部405を介した通信により、セル管理装置400は、セル500に対して充放電などの制御を実行することができる。また、セル500の劣化判定に使用する所定の情報をセル500から取得することができる。なお、セル対応通信部405が対応する通信規格は、所定の有線によるデータインターフェースのほか、RFIDに適用される通信方式やブルートゥース(登録商標)などの所定の近距離無線通信規格を適用することも考えられる。
セル500は、例えばリチウムイオン電池などによる所定容量の二次電池である。また、この図のセル500は、二次電池に対する充放電回路などの周辺回路も含むものとされる。
なお、本実施形態におけるバッテリユニット運用システムの運用では、前述のようにバッテリユニット100の性能劣化に対するメンテナンスとして、セルパッケージ300の単位で交換が行われる。これに応じて、セルパッケージ300は、内部のセル500を抜き取り不可なようにパッケージングした構造とされている。
[総合管理サーバの構成]
図5は、総合管理サーバ600の構成例を示している。この図に示す総合管理サーバ600は、CPU601、RAM602、記憶部603、入力インターフェース604、出力インターフェース605及びバッテリユニット対応通信部606を備える。これらの部位は、データバス607を介して接続されている。
CPU601は、記憶部603に記憶されるプログラムを実行することにより、総合管理サーバ600としての所定の機能を実現する。
なお、RAM602、記憶部603、入力インターフェース604及び出力インターフェース605の個々の機能については、それぞれ、図3のRAM202、記憶部203、入力インターフェース204及び出力インターフェース205と同様となることから、ここでの説明は省略する。
バッテリユニット対応通信部606は、例えばネットワークなどの所定の通信網を経由して、バッテリユニット100におけるバッテリ管理装置200のサーバ対応通信部206と通信を行う部位である。
[バッテリユニットにおけるバッテリ管理装置の機能構成]
図6は、バッテリ管理装置200のCPU201がプログラムを実行することにより実現される機能構成例を示している。また、この図においては、図3に示した記憶部203、サーバ対応通信部206及びセルパッケージ対応通信部207をともに示している。
また、この図では、記憶部203が記憶するデータのうち、CPU201が使用するデータとして親鍵Kp、バッテリユニット識別子230及びセルパッケージ管理テーブル240が示される。親鍵Kpは、同じバッテリユニット100のセルパッケージ300と相互認証を実行する際に使用される鍵である。バッテリユニット識別子230は、当該バッテリ管理装置200を備えるバッテリユニット100を一意に特定する識別子である。セルパッケージ管理テーブル240は、同じバッテリユニット100のセルパッケージ300ごとの管理情報を格納するテーブルである。
同図においては、CPU201の機能部として、セルパッケージ管理部211、サーバ対応認証処理部212、セル対応認証処理部213、親鍵更新部214、更新検知部215及び子鍵生成部216が示される。
セルパッケージ管理部211は、同じバッテリユニット100における配下のセルパッケージ300を統合して管理する。具体的に、セルパッケージ管理部211は、セルパッケージ300ごとに対する充放電制御を行う。また、セルパッケージ300ごとの充放電の履歴情報や電圧値などの情報を取得する。
また、セルパッケージ管理部211は、このように取得した情報を、記憶部203のセルパッケージ管理テーブル240に登録して管理する。ここでの図示による説明は省略するが、セルパッケージ管理テーブル240は、セルパッケージ300を一意に識別するセルパッケージ識別子ごとに、このセルパッケージ識別子により特定されるセルパッケージ300から取得した上記情報を対応付けた構造を有する。
なお、セルパッケージ管理テーブル240には、セルパッケージ300ごとの子鍵Kcの更新履歴も格納される。この更新履歴の内容としては、例えば更新された子鍵Kcの世代を示す世代情報(世代番号)や世代ごとの鍵更新日時などの情報とされる。このような更新履歴を管理することにより、セルパッケージ300ごとの子鍵Kcの世代管理、すなわち時間軸にしたがったセルパッケージ300ごとの管理が可能となる。
また、セルパッケージ管理部211は、所定のトリガまたは総合管理サーバ600からの要求に応答して、セルパッケージ管理テーブル240のデータをサーバ対応通信部206から総合管理サーバ600に対して送信させる。このように送信されたセルパッケージ管理テーブル240は、総合管理サーバ600において、バッテリユニット100を管理するテーブルの構築に利用されるとともに、セルパッケージ300ごとの交換の要否を判定するのに利用される。
サーバ対応認証処理部212は、サーバ対応通信部206経由で、総合管理サーバ600との間で相互認証処理を実行する機能部である。この総合管理サーバ600との相互認証処理に際しては、例えばバッテリユニット識別子230を暗号化するなどして総合管理サーバ600に対して送信する。また、記憶部203に記憶される親鍵Kpを利用するアルゴリズムを考えることもできる。
セル対応認証処理部213は、セルパッケージ対応通信部207経由で、同じバッテリユニット100におけるセルパッケージ300の各々と親鍵Kpを利用した相互認証を実行する。このセル対応認証処理部213は、特許請求の範囲に記載の第1の認証処理部に相当する。
親鍵Kpは、例えばセキュリティの点から所定の機会において更新される。更新に際しては総合管理サーバ600から更新用親鍵が送信される。なお、この更新用親鍵として、ここでは、更新されるべき親鍵Kpそのもののデータであることを想定するが、例えば、親鍵生成のための種データとすることも考えられる。そして、親鍵更新部214は、総合管理サーバ600から受信した更新用親鍵を利用して、記憶部203に記憶される親鍵Kpを更新する。
更新検知部215は、親鍵更新部214による親鍵Kpの更新が行われたことを検知する。具体的には、例えば親鍵更新部214が親鍵Kpの更新を完了させると、その旨を通知する。更新検知部215は、この通知を検知することを以て、親鍵Kpの更新が行われたことを検知する。
子鍵生成部216は、更新検知部215により親鍵Kpの更新が検知されるのに応じてセルパッケージ300ごとの更新用子鍵のデータを生成する。なお、この更新用子鍵についても、ここでは、更新されるべき子鍵Kcそのもののデータであることを想定するが、例えば、子鍵生成のための種データとすることも考えられる。そして、この更新用子鍵を、セルパッケージ対応通信部207経由で、セルパッケージ300ごとに対して転送する。セルパッケージ300は、転送された更新用子鍵により自己が記憶している子鍵Kcを更新する。
[セルパッケージにおけるセル管理装置の機能構成]
図7は、セルパッケージ300におけるセル管理装置400のCPU401がプログラムを実行することにより実現される機能構成例を示している。また、この図においては、図4に示した記憶部403、管理装置対応通信部404及びセル対応通信部405をともに示している。
また、この図では、記憶部403が記憶するデータのうち、CPU401が使用するデータとして子鍵Kc、セル識別子430及びセル管理テーブル440が示される。子鍵Kcは、同じバッテリユニット100におけるバッテリ管理装置200と相互認証を行う際に利用される鍵である。セル識別子430は、当該セル管理装置400を含むセルパッケージ300を一意に特定する識別子である。セル管理テーブル440は、同じバッテリユニット100におけるセル500についての所定項目の情報を格納するテーブルである。
同図においては、CPU401の機能部として、セル管理部411、認証処理部412及び子鍵更新部413が示される。セル管理部411は、同じセルパッケージ300におけるセル500を管理する。具体例として、セル管理部411は、セル対応通信部405経由でセル500に対する充放電の動作を制御する。また、セル500から、その劣化の度合いの判定要素となる所定の情報を取得し、セル管理テーブル440として記憶部403に記憶させる。
また、セル管理部411は、バッテリ管理装置200からの要求または所定のトリガに応答して、記憶部403に記憶されるセル識別子430とセル管理テーブル440のデータをバッテリ管理装置200に対して転送する。バッテリ管理装置200は、転送されたセル識別子430とセル管理テーブル440のデータを利用してセルパッケージ管理テーブル240を作成する。
認証処理部412は、同じバッテリユニット100における上位のバッテリ管理装置200と相互認証処理を実行する。この相互認証処理に際して、認証処理部412は、子鍵Kcを利用する。この認証処理部412は、特許請求の範囲に記載の第2の認証処理部に相当する。
子鍵更新部413は、バッテリ管理装置200から受信した更新用子鍵を利用して、記憶部403に記憶される子鍵Kcを更新する。
[総合管理サーバの機能構成]
図8は、総合管理サーバ600のCPU601がプログラムを実行することにより実現される機能構成例を示している。また、この図においては、図5に示した記憶部603及びバッテリユニット対応通信部606をともに示している。
また、この図では、記憶部603が記憶するデータのうち、CPU401が使用するデータとしてバッテリユニット管理テーブル630が示される。バッテリユニット管理テーブル630は、自己の管理下におけるバッテリユニット100ついての所定項目の情報を格納するテーブルである。
同図においては、CPU601の機能部として、バッテリユニット管理部611、認証処理部612及び親鍵生成部613が示される。
バッテリユニット管理部611は、自己の管理下におけるバッテリユニット100を管理する。具体例として、バッテリユニット管理部611は、バッテリユニット対応通信部606経由でバッテリユニット100から受信したセルパッケージ管理テーブル240のデータを利用してバッテリユニット管理テーブル630を作成する。
図9(a)は、バッテリユニット管理テーブル630の構造例を示している。この図に示すように、バッテリユニット管理テーブル630は、バッテリユニット識別子631にIPアドレス632及びバッテリユニット状態情報640を対応付けた構造を有する。
バッテリユニット識別子631の項目には、総合管理サーバ600の管理下にあるバッテリユニット100ごとのバッテリユニット識別子230の値を格納する。
IPアドレス632には、対応のバッテリユニット識別子631により特定されるバッテリユニット100に割り当てられたIPアドレスが格納される。バッテリユニット対応通信部606は、このIPアドレスを送信先として設定することでバッテリユニット100を指定して通信を行うことができる。
バッテリユニット状態情報640は、対応のバッテリユニット100の状態を示す情報を格納する。具体的には、対応のバッテリユニット100におけるセルパッケージ300ごとの状態を示す情報を格納する。
図9(b)は、1つのバッテリユニット識別子230に対応付けられたバッテリユニット状態情報640の構造例を示している。この図に示すバッテリユニット状態情報640は、セル識別子641に、セルパッケージ状態情報642と管理履歴情報を対応付けた構造を有する。
セル識別子641の項目には、対応のセルパッケージ300が記憶するセル識別子430の値が格納される。
セルパッケージ状態情報642は、対応のセルパッケージ300の状態が示される。具体例として、セルパッケージ状態情報642にはセルパッケージ300の充放電回数や電圧値などの情報が格納される。なお、上記セル識別子641及びセルパッケージ状態情報642は、セルパッケージ管理テーブル240の情報内容に基づいて作成される。
管理履歴情報643には、セルパッケージ300についての管理履歴として、これまでに交換のために取り外しが行われた回数や、交換により取り付けられたバッテリユニットを示す情報などが格納される。また、管理履歴情報643には、親鍵Kpの更新履歴も格納される。この更新履歴の内容としては、例えば更新された親鍵Kpの世代を示す世代情報(世代番号)や世代ごとの鍵更新日時などの情報とされる。このような更新履歴を管理することにより親鍵Kpの世代管理、つまり、時間軸にしたがったバッテリユニット100の管理が可能となる。なお、図9に示したバッテリユニット管理テーブル630の構造はあくまでも一例である。
説明を図8に戻す。また、バッテリユニット100を管理する機能の1つとして、バッテリユニット管理部611は、セルパッケージ管理テーブル240に基づいて、バッテリユニット100内のセルパッケージ300ごとに交換の要否を判定する。上記のように、バッテリユニット管理テーブル630には、セルパッケージごとの充放電回数や電圧値などの情報がセルパッケージ状態情報642として格納されている。充放電回数が多いほど、セルパッケージ300のセル500の劣化は進んでいると判定できる。また、計測される電圧値と既定電圧値との差に基づいても劣化の進行程度を推定できる。そこで、バッテリユニット管理部611は、セルパッケージ状態情報642の内容に基づいて、劣化の度合いが一定以上であると判断されるセルパッケージ300について、交換が必要であると判定する。
認証処理部612は、総合管理サーバ600の配下におけるバッテリユニット100ごとと相互認証を実行する部位である。この際、認証処理部612は、バッテリユニット100のバッテリ管理装置200が備えるサーバ対象認証処理部212と相互認証処理を実行する。この相互認証処理が成立することにより、総合管理サーバ600は、相手のバッテリユニット100が正規のものであると認識する。
親鍵生成部613は、前述のように親鍵を更新すべき機会となったことに対応して更新用親鍵を生成する。そして、生成した更新用親鍵を、バッテリユニット対応通信部606を経由して、自己の管理下のバッテリユニット100におけるバッテリ管理装置200に対して送信する。
[鍵更新のための処理手順例]
図10のシーケンス図は、本実施形態のバッテリユニット運用システムにおいて親鍵Kp及び子鍵Kcを更新するために実行される処理手順例を示している。この図に示す処理は、図8に示した総合管理サーバ600のCPU601における所定の機能部、図6に示したバッテリ管理装置200のCPU201における所定の機能部、図7に示したセル管理装置400のCPU401における所定の機能部が適宜実行する。
まず、親鍵Kp及び子鍵Kcの更新が行われる以前の所定のタイミングで、バッテリユニット100内のバッテリ管理装置200と各セルパッケージ300は、相互認証処理を実行する(ステップS101)。つまり、バッテリ管理装置200のセル対応認証処理部213と、セル管理装置400の認証処理部412との間で、その時点で記憶されている親鍵Kpと子鍵Kcを利用した相互認証処理を実行する。この相互認証処理の成立によって、バッテリ管理装置200は、配下のセルパッケージ300の各々が正規のものであると認識する。
そして、その後の或るタイミングで、総合管理サーバ600の親鍵生成部613は、親鍵更新のトリガとなる条件が満たされたことに応じて、親鍵を更新すべきと判断する(ステップS102)。親鍵更新のトリガとして、本実施形態では、前述のように、一定期間ごとに親鍵Kpを更新することとしている。したがって、この一定期間が経過したことに応じて親鍵生成部613は親鍵を更新すべきと判断することになる。また、一定期間を経過しなくとも、例えば鍵情報が漏洩した可能性があると運用者が判断したときには、運用者が総合管理サーバ600の入力インターフェース604としての操作デバイスに対する所定操作により親鍵の更新を指示する。この指示に応じても、親鍵生成部613は親鍵を更新すべきと判断する。
上記のように親鍵を更新すべきと判断したことに応じて、総合管理サーバ600の認証処理部612は、バッテリ管理装置200のサーバ対応認証処理部212と相互認証処理を実行する(ステップS103)。この相互認証処理が成立することにより、総合管理サーバ600は、親鍵更新対象のバッテリユニット100が正規のものであることを認識し、以降の親鍵更新のための処理を継続する。
そこで、親鍵生成部613は、上記ステップS103による相互認証処理の成立に応じて、更新用親鍵を生成する(ステップS104)。そして、この更新用親鍵を、更新対象のセルパッケージ300のバッテリ管理装置200に対して送信する(ステップS105)。なお、この更新用親鍵は暗号化されたうえで送信されるようにすることがセキュリティの点から好ましい。
次に、更新用親鍵を受信したバッテリ管理装置200において、親鍵更新部214は、受信した更新用親鍵を利用して記憶部203に記憶されている親鍵Kpを更新する(ステップS106)。具体的に、更新用親鍵は、更新すべき親鍵Kpそのもののデータであるから、この受信した更新用親鍵を、新たな親鍵Kpとして記憶部203に上書き記録すればよい。なお、更新用親鍵が、種データである場合には、この種データから所定のアルゴリズムによって鍵のデータを生成し、この鍵のデータを親鍵Kpとして更新する。
そして、親鍵更新部214は、親鍵Kpの更新を完了すると、その旨を更新検知部215に通知する。これに応じて、更新検知部215は、親鍵Kpが更新されたことを検知する(ステップS107)。
子鍵生成部216は、上記更新検知部215により親鍵Kpの更新が検知されたことをトリガとして更新用子鍵を生成するようにされている。このため、上記ステップS107により親鍵Kpの更新が検知されるのに応じて、子鍵生成部216は、更新用子鍵を生成し(ステップS108)、これを配下の各セルパッケージ300のセル管理装置400に対して送信する(ステップS109)。
更新用子鍵を受信したセル管理装置400において、子鍵更新部413は、この受信した更新用子鍵を利用して記憶部403に記憶されている子鍵Kcを更新する(ステップS110)。なお、更新用子鍵は、更新すべき子鍵Kcそのもののデータであるから、受信した更新用子鍵を子鍵Kcとして記憶部403に上書き記録する。なお、更新用子鍵が、種データである場合には、この種データから所定のアルゴリズムによって鍵のデータを生成し、この鍵のデータを子鍵Kcとして更新する。
なお、ステップS108による更新用子鍵の生成手法について、本実施形態では特に限定されない。一例として、例えば更新後の親鍵Kpを利用した所定の演算により更新用子鍵を生成することが考えられる。この場合において、生成される更新用子鍵は、セルパッケージ300ごとに異なるものとなるように求められてもよいし、同じものとして求められてもよい。
本実施形態との比較として、例えばバッテリ管理装置200において親鍵Kpが更新された後において、運用者またはユーザなどのバッテリユニット100に対する操作による指示に応答して子鍵Kcを更新させるような運用も考えることができる。しかし、このような運用では、子鍵Kcの更新に人為的な作業が伴うことになるために、運用者やユーザにとっての負担が大きく、ミスによって適切に子鍵Kcの更新が行われない場合もあると考えられる。
これに対して、本実施形態では、バッテリ管理装置200において更新検知部215により親鍵Kpの更新を検知する機能を与え、親鍵Kpの更新の検知をトリガとして子鍵Kcの更新が行われるように構成している。これにより、親鍵Kpの更新に連動して、子鍵Kcは自動的に、かつ、確実に更新されることとなる。
なお、バッテリユニット100が正常でない状態で使用されているなどの異常が発生した場合には、バッテリ管理装置200がこの異常を検知する。このような異常を検知したバッテリ管理装置200は、例えばその異常に対応したステータス情報を総合管理サーバ600に送信する。総合管理サーバ600は、ステータス情報に基づいてバッテリユニット100の継続利用の可否判定を行うことができる。また、セル500に何らかの異常が発生した場合には、この異常をセル管理装置400が検知し、バッテリ管理装置200に異常が通知する。この通知に応じてバッテリ管理装置200は、異常が発生したセル500の動作を停止させるようにセル管理装置400を制御することができる。
また、本実施形態の親鍵Kpに連動して子鍵Kcを更新する構成は、これまでに説明したバッテリユニット運用システムに限定されるものではなく、多様な分野で適用が可能である。一例として、プリンタを上位の情報処理装置として、このプリンタに装填されるインクカートリッジを下位の情報処理装置として、相互認証が不成立の場合にはエラーが発生したとしてプリンタを動作させないというシステム構成を考えることができる。つまり、プリンタのメーカが正規品であると認可していないインクカートリッジの不正使用を防止するシステムである。このシステム構成では、例えばホストからの操作によりプリンタに記憶される親鍵が更新されるのに連動して、そのときに装填されているインクカートリッジに記憶される子鍵が更新されることになる。
上述のバッテリユニット100及び総合管理サーバ600は、内部にコンピュータシステムを有している。そして、上述した鍵更新のための処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
また、図6〜図8における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより本実施形態としての鍵更新のための処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。