[バッテリユニット運用システムの全体構成例]
図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は、バッテリユニットが正規のものではないと認識し、例えばこのバッテリユニットからアクセスが行われたとしても、これを拒否する。
そのうえで、バッテリユニット100においては、セルパッケージ300が正規品であるか否かについて認識するために、バッテリ管理装置200と各セルパッケージ300が相互認証を行う(ステップS2)。バッテリ管理装置200は親鍵Kpを記憶し、セルパッケージ300のセル管理装置400はそれぞれ子鍵Kcを記憶している。バッテリ管理装置200とセルパッケージ300は、例えば交換鍵方式による相互認証処理を行うものとされ、この相互認証処理の際に、上記親鍵Kpと子鍵Kcを使用する。この相互認証は、バッテリユニット100においてセルパッケージ300の交換が行われるのに応じて必ず実行される。また、例えばバッテリユニット100が設置されたときに実行されるものとする。また、バッテリユニット100の設置後において、バッテリユニット100が再起動された場合にも実行されるものとする。
バッテリ管理装置200とセルパッケージ300の相互認証が成立した場合、バッテリ管理装置200は、そのセルパッケージ300を正規品であると認識し、このセルパッケージ300についての管理を行う。これに対して、バッテリ管理装置200とセルパッケージ300の相互認証が成立しなかった場合、バッテリ管理装置200は、このセルパッケージ300は正規品ではないと認識する。この場合、バッテリ管理装置200は、セルパッケージ300を動作させないように制御して使用できないようにする。本実施形態では、このようにバッテリ管理装置200とセルパッケージ300が相互認証を行うことによって、正規品でないセルパッケージ300の使用を防止できる。
また、上記のようにバッテリ管理装置200とセルパッケージ300の相互認証が成立した後においては、所定のタイミングで、バッテリ管理装置200がセルパッケージ300の各々からセルパッケージ情報を取得する(ステップS3)。セルパッケージ情報は、具体的には、対応のセルパッケージ300を一意に特定するセル識別子と、そのセルパッケージ300が備えるバッテリ(二次電池)についての所定の状態を示す情報から成る。バッテリ管理装置200は、配下のセルパッケージ300の各々から取得したバッテリ情報を利用して、セルパッケージ300を管理するためのセルパッケージ管理テーブルを構築する。
上述のようにバッテリ管理装置200とセルパッケージ300の相互認証には親鍵Kpと子鍵Kcのペア鍵を使用する。しかし、子鍵Kcはユーザ側に設置されるセルパッケージ300において記憶されているので、悪意のあるユーザなどに漏洩しやすい状況にあるといえる。このために、子鍵Kcが固定のままであると、悪意のある事業者が子鍵Kcを解読するなどして、同じ子鍵Kcを記憶させた正規品でないセルパッケージを製造する可能性が生じてくる。
そこで、本実施形態では、所定の機会により親鍵Kpと子鍵Kcの更新を行う。このためには、まず、総合管理サーバ600にて更新用親鍵データを生成し、この更新用親鍵データをバッテリ管理装置200に送信する。バッテリ管理装置200は、受信した更新用親鍵データを利用して親鍵Kpを更新する(ステップS4)。なお、親鍵Kpの更新が成立しなかった場合は、総合管理サーバ600によりその異常を検知することができる。
そして、バッテリ管理装置200は、この親鍵Kpの更新をトリガとして、下位のセルパッケージ300の子鍵Kcを更新するための処理を実行する(ステップS5)。つまり、バッテリ管理装置200は、更新用子鍵データを生成し、セルパッケージ300に対して転送する。セルパッケージ300は、受信した更新用子鍵データを利用して子鍵Kcを更新する。なお、子鍵Kcの更新が成立しなかった場合は、バッテリ管理装置200によりその異常を検知することができる。
このように、まずバッテリ管理装置200の親鍵Kpを更新し、これに応じてセルパッケージ300の子鍵Kcの更新を行うようにすることで、親鍵Kpと子鍵Kcを固定とした場合よりもセキュリティを高めることができる。なお、親鍵Kpと子鍵Kcを更新するタイミングとしては、例えば一定期間ごとに行うようにすればよい。また、これに加えて、何らかの要因によって親鍵Kpや子鍵Kcのデータが漏洩した可能性があると判断したときに更新を行うようにすれば、さらにセキュリティを高めることができる。
また、本実施形態のバッテリ運用システムにおけるバッテリユニット100は、セルパッケージ300の交換が行われた場合にも子鍵Kcを更新する。そこで、図3を参照して、上記セルパッケージ300の交換に応じた子鍵Kcの更新に対応するバッテリユニット100における動作の概要について説明する。まず、バッテリユニット100においては、図2の場合と同様に、バッテリ管理装置200とその配下のセルパッケージ300のセル管理装置400ごとに、互いの親鍵Kpと子鍵Kcを利用して相互認証処理を実行する(ステップS2)。また、認証成立後においてバッテリ管理装置200は、セルパッケージ情報を取得し(ステップS3)、取得したセルパッケージ情報を利用してセルパッケージ管理テーブルを構築する。
そして、或るタイミングでセルパッケージ300の交換が行われたとする(ステップS11)。ここでは、バッテリユニット100における複数のセルパッケージ300のうち、1つのセルパッケージ300を交換した場合を想定している。
本実施形態におけるバッテリ運用システムでは、交換により新たに装填されたセルパッケージ300の子鍵Kcは、既定の初期値にリセットされている。子鍵Kcの初期値は、親鍵Kpがどのような値に更新されていても相互認証処理によって認証が成立するようにされた値が設定されている。これにより、セルパッケージ300の交換後においてバッテリ管理装置200が正規品であると認識して正常な動作を保証することができる。しかし、子鍵Kcを初期値のままとしていると、この初期値が悪意のあるユーザによって特定される可能性が高くなる。そこで、バッテリ管理装置200は、セルパッケージ300の交換が行われた直後において、この交換されたセルパッケージ300を対象として子鍵Kcの更新を実行する(ステップS12)。このようにセルパッケージ300の交換後において直ちに初期値の子鍵Kcを更新することで、子鍵Kcが初期値のままであることの脆弱性を回避し、セキュリティの強化を図っている。
なお、本実施形態における親鍵Kpと子鍵Kcは、パスワード認証等の暗証方式に用いる暗証鍵(暗証番号)でもよいし、共通鍵方式または鍵交換方式等に用いる鍵でもよい。共通鍵方式と鍵交換方式は相互認証が可能なであるため、暗証方式より好ましい。暗証鍵を用いる場合、親鍵Kpの暗証鍵とセル識別子等のセルに固有の値を用いて演算して子鍵Kcを生成することができる。
また、共通鍵方式または鍵交換方式を用いる場合にはパラーメータキーとロジック(アルゴリズム)のペアを用いることとなる。具体的には共通鍵暗号方式や公開鍵暗号方式のロジック(アルゴリズム)としては、DES(Data Encryption Standard)、AES(Advanced Encryption Standard)、RSA、楕円暗号等を用いることができる。これらの方法では、相互認証する2者が対応するパラーメータキーとロジックのペアを持っておき、これらを用いて演算した結果をお互いに照合することにより相互認証をすることができる。この場合、パラーメータキーのみを更新してもよいし、ロジック(アルゴリズム)のみを更新してもよい。またパラーメータキーとロジック(アルゴリズム)の双方を更新してもよい。
また、親鍵Kpから子鍵Kcを生成する際は、親鍵のパラーメータキーとロジックの少なくもいずれか一方を元にセル識別子等セル固有の値を用いた演算から得た子鍵Kcを生成することもできる。子鍵Kc生成のための演算ロジックは、総合管理サーバ600だけではなく、バッテリ管理装置200にも記憶させておくことができる。
[バッテリユニットにおけるバッテリ管理装置の構成]
以降、本実施形態のバッテリユニット運用システムにおける鍵更新のための構成について説明することとし、まず、バッテリユニット100の構成から説明する。先に図2及び図3に示したように、バッテリユニット100は、バッテリ管理装置200とセルパッケージ300から成る。
先にバッテリユニット100のバッテリ管理装置200から説明する。図4は、バッテリ管理装置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(Radio Frequency IDentification)に適用される通信方式やブルートゥース(登録商標)などの近距離無線通信規格を採用することも考えられる。
[バッテリユニットにおけるセルパッケージの構成]
図5は、バッテリユニット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の個々の機能については、図4の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を抜き取り不可なようにパッケージングした構造とされている。
[総合管理サーバの構成]
図6は、総合管理サーバ600の構成例を示している。この図に示す総合管理サーバ600は、CPU601、RAM602、記憶部603、入力インターフェース604、出力インターフェース605及びバッテリユニット対応通信部606を備える。これらの部位は、データバス607を介して接続されている。
CPU601は、記憶部603に記憶されるプログラムを実行することにより、総合管理サーバ600としての所定の機能を実現する。
なお、RAM602、記憶部603、入力インターフェース604及び出力インターフェース605の個々の機能については、それぞれ、図4のRAM202、記憶部203、入力インターフェース204及び出力インターフェース205と同様となることから、ここでの説明は省略する。
バッテリユニット対応通信部606は、例えばネットワークなどの所定の通信網を経由して、バッテリユニット100におけるバッテリ管理装置200のサーバ対応通信部206と通信を行う部位である。
[バッテリユニットにおけるバッテリ管理装置の機能構成]
図7は、バッテリ管理装置200のCPU201がプログラムを実行することにより実現される機能構成例を示している。また、この図においては、図4に示した記憶部203、サーバ対応通信部206及びセルパッケージ対応通信部207をともに示している。
また、この図では、記憶部203が記憶するデータのうち、CPU201が使用するデータとして親鍵Kp、バッテリユニット識別子230及びセルパッケージ管理テーブル240が示される。親鍵Kpは、同じバッテリユニット100のセルパッケージ300と相互認証を実行する際に使用される鍵である。バッテリユニット識別子230は、当該バッテリ管理装置200を備えるバッテリユニット100を一意に特定する識別子である。なお、バッテリユニット100を一意に特定するということは、バッテリユニット100ごとに1つずつ備えられるバッテリ管理装置200を一意に特定することと同義である。バッテリユニット識別子230は、特許請求の範囲に記載の上位情報処理装置識別子に相当する。
セルパッケージ管理テーブル240は、同じバッテリユニット100におけるセルパッケージ300ごとの管理情報を格納するテーブルである。
同図においては、CPU201の機能部として、セルパッケージ管理部211、サーバ対応認証処理部212、セル対応認証処理部213、親鍵更新部214、更新検知部215、子鍵生成部216及び交換検知部217が示される。
セルパッケージ管理部211は、同じバッテリユニット100における配下のセルパッケージ300を統合して管理する。具体的に、セルパッケージ管理部211は、セルパッケージ300ごとに対する充放電制御を行う。また、セルパッケージ300ごとの充放電の履歴情報や電圧値などの情報を取得する。
また、セルパッケージ管理部211は、上記のように取得した情報を、記憶部203のセルパッケージ管理テーブル240に登録して管理する。なお、セルパッケージ管理テーブル240には、セルパッケージ300ごとの子鍵Kcの更新履歴も格納される。この更新履歴の内容としては、例えば更新された子鍵Kcの世代を示す世代情報(世代番号)や世代ごとの鍵更新日時などの情報とされる。このような更新履歴を管理することにより、セルパッケージ300ごとの子鍵Kcの世代管理、すなわち時間軸にしたがったセルパッケージ300ごとの管理が可能となる。
図8は、セルパッケージ管理テーブル240の構造例を示している。この図に示すセルパッケージ管理テーブル240は、バッテリユニット100に装填されるセルパッケージ300ごとに対応して、セルパッケージ装填位置241と、セル識別子242と、セルパッケージ状態情報243を格納した構造を有する。
セルパッケージ装填位置241は、対応のセルパッケージ300の装填位置を示す。ここでは、バッテリユニット100において(N−1)個のセルパッケージ300を装填可能とされているものとしたうえで、その装填位置ごとに、#0〜#Nまでの番号が付されているものとする。セルパッケージ装填位置241は、この#0〜#Nによる装填位置番号をそれぞれ格納する。
セル識別子242は、対応のセルパッケージ300を一意に特定する識別子である。セルパッケージ状態情報243は、対応のセルパッケージ300の状態を示すものであり、具体的には、上述の充放電の履歴情報や電圧値などの所定項目の情報により形成される。
説明を図7に戻す。セルパッケージ管理部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を更新する。
交換検知部217は、セルパッケージの交換に伴って新たに装填されたセルパッケージ300を検知する。新規装填されたセルパッケージ300の検知は、交換前のセルパッケージ300の装填状態が反映されたセルパッケージ管理テーブル240の内容と、交換後にセルパッケージ300の各々から取得したセルパッケージ情報を照合することにより行う。なお、図示は省略するが、バッテリユニット100のセルパッケージ300の装填部において装填の有無を検知するセンサを備え、このセンサの検出信号に基づいて新たにセルパッケージ300が装填されたことを検知するようにしてもよい。
[セルパッケージにおけるセル管理装置の機能構成]
図9は、セルパッケージ300におけるセル管理装置400のCPU401がプログラムを実行することにより実現される機能構成例を示している。また、この図においては、図5に示した記憶部403、管理装置対応通信部404及びセル対応通信部405をともに示している。
また、この図では、記憶部403が記憶するデータのうち、CPU401が使用するデータとして子鍵Kc、セル識別子430及びセル管理テーブル440が示される。
子鍵Kcは、同じバッテリユニット100におけるバッテリ管理装置200と相互認証を行う際に利用される鍵である。セル識別子430は、当該セル管理装置400を含むセルパッケージ300を一意に特定する識別子である。このセル識別子430は、特許請求の範囲に記載の下位情報処理装置識別子に相当する。
セル管理テーブル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を更新する。
[総合管理サーバの機能構成]
図10は、総合管理サーバ600のCPU601がプログラムを実行することにより実現される機能構成例を示している。また、この図においては、図6に示した記憶部603及びバッテリユニット対応通信部606をともに示している。
また、この図では、記憶部603が記憶するデータのうち、CPU401が使用するデータとしてバッテリユニット管理テーブル630が示される。バッテリユニット管理テーブル630は、自己の管理下におけるバッテリユニット100についての所定項目の情報を格納するテーブルである。
同図においては、CPU601の機能部として、バッテリユニット管理部611、認証処理部612及び親鍵生成部613が示される。
バッテリユニット管理部611は、自己の管理下におけるバッテリユニット100を管理する。具体例として、バッテリユニット管理部611は、バッテリユニット対応通信部606経由でバッテリユニット100から受信したセルパッケージ管理テーブル240のデータを利用してバッテリユニット管理テーブル630を作成する。
図11(a)は、バッテリユニット管理テーブル630の構造例を示している。この図に示すように、バッテリユニット管理テーブル630は、バッテリユニット識別子631にIPアドレス632及びバッテリユニット状態情報640を対応付けた構造を有する。
バッテリユニット識別子631には、総合管理サーバ600の管理下にあるバッテリユニット100ごとのバッテリユニット識別子230の値が格納される。
IPアドレス632には、対応のバッテリユニット識別子631により特定されるバッテリユニット100に割り当てられたIPアドレスが格納される。バッテリユニット対応通信部606は、このIPアドレスを送信先として設定することでバッテリユニット100を指定して通信を行うことができる。
バッテリユニット状態情報640は、対応のバッテリユニット100の状態を示す情報を格納する。具体的には、対応のバッテリユニット100におけるセルパッケージ300ごとの状態を示す情報を格納する。
図11(b)は、1つのバッテリユニット識別子230に対応付けられたバッテリユニット状態情報640の構造例を示している。この図に示すバッテリユニット状態情報640は、セル識別子641に、セルパッケージ状態情報642と管理履歴情報643を対応付けた構造を有する。
セル識別子641の項目には、対応のセルパッケージ300が記憶するセル識別子430の値が格納される。
セルパッケージ状態情報642は、対応のセルパッケージ300の状態が示される。具体例として、セルパッケージ状態情報642にはセルパッケージ300の充放電回数や電圧値などの情報が格納される。なお、上記セル識別子641及びセルパッケージ状態情報642は、セルパッケージ管理テーブル240の情報内容に基づいて作成される。
管理履歴情報643には、セルパッケージ300についての管理履歴として、これまでに交換のために取り外しが行われた回数や、交換により取り付けられたバッテリユニットを示す情報などが格納される。また、管理履歴情報643には、親鍵Kpの更新履歴も格納される。この更新履歴の内容としては、例えば更新された親鍵Kpの世代を示す世代情報(世代番号)や世代ごとの鍵更新日時などの情報とされる。このような更新履歴を管理することにより親鍵Kpの世代管理、つまり、時間軸にしたがったバッテリユニット100の管理が可能となる。なお、図11に示したバッテリユニット管理テーブル630の構造はあくまでも一例である。
説明を図10に戻す。また、バッテリユニット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に対して送信する。
[子鍵更新のための処理手順例(第1例)]
図12のシーケンス図は、本実施形態のバッテリユニット運用システムにおいて子鍵Kcを更新するために実行される処理手順の第1例を示している。先に図2により説明したように、本実施形態では、総合管理サーバ600によって親鍵Kpが更新されると、これに連係して子鍵Kcを更新する。この第1例は、上記のように親鍵Kpの更新に応じて子鍵Kcの更新を行う場合の処理手順となる。
また、この図に示す処理は、図10に示した総合管理サーバ600のCPU601における所定の機能部、図7に示したバッテリ管理装置200のCPU201における所定の機能部、及び、図9に示したセル管理装置400のCPU401における所定の機能部が適宜実行する。また、図示及び説明の便宜上、この図では1つのセル管理装置400の処理手順が示されているが、この処理手順を、バッテリユニット100における各セルパッケージ300内のセル管理装置400が実行するものとされる。
まず、親鍵Kp及び子鍵Kcの更新が行われる以前の所定のタイミングで、バッテリユニット100内のバッテリ管理装置200と各セルパッケージ300は、相互認証処理を実行する(ステップS101)。つまり、バッテリ管理装置200のセル対応認証処理部213と、セル管理装置400の認証処理部412との間で、その時点で記憶されている親鍵Kpと子鍵Kcを利用した相互認証処理を実行する。この相互認証処理の成立によって、バッテリ管理装置200は、配下のセルパッケージ300の各々が正規のものであると認識する。
そして、上記のように相互認証が成立している状態において、バッテリ管理装置200のセルパッケージ管理部211は、所定のタイミングにおいて、セル管理装置400の各々からセルパッケージ情報を取得するための処理を実行する(ステップS102)。セルパッケージ情報は、セル管理装置400が記憶するセル識別子430とセル管理テーブル440のデータから成る。
また、上記ステップS102としてのセルパッケージ情報の取得処理は、具体的に以下のように実行される。つまり、セルパッケージ管理部211は、セル管理装置400に対してセルパッケージ情報を要求する。この要求に応答してセル管理装置400のセル管理部411は、記憶部403に記憶されているセル識別子430とセル管理テーブル440のデータを読み出し、これらのデータをセルパッケージ情報としてバッテリ管理装置200に返送する。セルパッケージ管理部211は、返送されたセルパッケージ情報を受信する。これにより、セルパッケージ情報が取得される。
なお、上記ステップS102に対応してセルパッケージ情報に含まれるセル識別子430を送信するセル管理部411は、特許請求の範囲に記載の下位情報処理装置識別子送信部に相当する。また、セルパッケージ情報におけるセル識別子430を受信するセルパッケージ管理部211は、特許請求の範囲に記載の下位情報処理装置識別子受信部に相当する。
バッテリ管理装置200において、セルパッケージ管理部211は、上記のようにセル管理装置400から取得したセルパッケージ情報を利用してセルパッケージ管理テーブル240を更新する(ステップS103)。
そして、その後の或るタイミングにおいて、総合管理サーバ600の親鍵生成部613は、親鍵更新のトリガとなる条件が満たされたことに応じて、親鍵を更新すべきと判断する(ステップS104)。親鍵更新のトリガとして、本実施形態では、前述のように、一定期間ごとに親鍵Kpを更新することとしている。したがって、この一定期間が経過したことに応じて親鍵生成部613は親鍵を更新すべきと判断することになる。また、一定期間を経過しなくとも、例えば鍵情報が漏洩した可能性があると運用者が判断したときには、運用者が総合管理サーバ600の入力インターフェース604としての操作デバイスに対する所定操作により親鍵の更新を指示する。この指示に応じても、親鍵生成部613は親鍵を更新すべきと判断する。
上記のように親鍵を更新すべきと判断したことに応じて、総合管理サーバ600の認証処理部612は、バッテリ管理装置200のサーバ対応認証処理部212と相互認証処理を実行する(ステップS105)。この相互認証処理が成立することにより、総合管理サーバ600は、親鍵更新対象のバッテリユニット100が正規のものであることを認識し、以降の親鍵更新のための処理を継続する。
そこで、親鍵生成部613は、上記ステップS103による相互認証処理の成立に応じて、更新用親鍵を生成する(ステップS106)。そして、この更新用親鍵を、更新対象のセルパッケージ300のバッテリ管理装置200に対して送信する(ステップS107)。なお、この更新用親鍵は暗号化されたうえで送信されるようにすることがセキュリティの点から好ましい。
バッテリ管理装置200の親鍵更新部214は、上記のように送信された更新用親鍵を受信し(ステップS108)、受信した更新用親鍵を利用して記憶部203に記憶されている親鍵Kpを更新する(ステップS109)。具体的に、更新用親鍵は、更新すべき親鍵Kpそのもののデータであるから、この受信した更新用親鍵を、新たな親鍵Kpとして記憶部203に上書き記録すればよい。なお、更新用親鍵が、種データである場合には、この種データから所定のアルゴリズムによって鍵のデータを生成し、この鍵のデータを親鍵Kpとして更新する。
そして、親鍵更新部214は、親鍵Kpの更新を完了すると、その旨を更新検知部215に通知する。これに応じて、更新検知部215は、親鍵Kpが更新されたことを検知する(ステップS110)。
子鍵生成部216は、上記更新検知部215により親鍵Kpの更新が検知されたことをトリガとして更新用子鍵を生成するようにされている。このため、上記ステップS110により親鍵Kpの更新が検知されるのに応じて、子鍵生成部216は、配下のセルパッケージ300ごとに個別の更新用子鍵を生成する(ステップS111)。そして、この生成した子鍵Kcを各セルパッケージ300のセル管理装置400に対して送信する(ステップS112)。
セル管理装置400において、子鍵更新部413は、上記のように送信された更新用子鍵を受信し(ステップS113)、この受信した更新用子鍵を利用して記憶部403に記憶されている子鍵Kcを更新する(ステップS114)。なお、更新用子鍵は、更新すべき子鍵Kcそのもののデータであるから、受信した更新用子鍵を子鍵Kcとして記憶部403に上書き記録する。なお、更新用子鍵が、種データである場合には、この種データから所定のアルゴリズムによって鍵のデータを生成し、この鍵のデータを子鍵Kcとして更新する。
上記のように子鍵Kcを更新したことに応じて、子鍵更新部413は、バッテリ管理装置200に対して子鍵更新完了通知を送信する(ステップS115)。バッテリ管理装置200において、子鍵生成部216は、送信された子鍵更新完了通知を受信する(ステップS116)。これにより、子鍵生成部216は、セルパッケージ300側にて子鍵Kcの更新が完了したことを認識する。
また、図示による説明は省略するが、上記ステップS116により子鍵更新完了通知が受信された後は、所定の機会において、更新後の親鍵Kpと子鍵Kcを利用した相互認証処理(ステップS101)が実行され、相互認証が成立することになる。また、バッテリ管理装置200は、ステップS116における子鍵更新完了通知の受信に応じて、さらに、総合管理サーバ600に対して、親鍵Kp及び子鍵Kcの更新完了通知を送信するようにしてもよい。
図13のフローチャートは、上記図12におけるステップS111としての更新用子鍵生成の処理手順例を示している。なお、この図に示す処理は、1つのセルパッケージ300に対応する子鍵Kcを生成するための処理となる。
バッテリ管理装置200における子鍵生成部216は、記憶部203に記憶されるセルパッケージ管理テーブル240から、更新対象のセルパッケージ300に対応するセル識別子242を読み込む(ステップS201)。また、子鍵生成部216は、記憶部203に記憶されるバッテリユニット識別子230を読み込む(ステップS202)。また、子鍵生成部216は、記憶部203に記憶される親鍵Kpを読み込む(ステップS203)。
次に、子鍵生成部216は、上記のように読み込んだセル識別子242、バッテリユニット識別子230及び親鍵Kpを利用した所定の演算によって更新用子鍵を算出する(ステップS204)。一具体例として、更新用子鍵を以下のように算出する。セル識別子242が8バイト、バッテリユニット識別子230が8バイト、親鍵Kpが16バイトとする。そのうえで、これらセル識別子242、バッテリユニット識別子230及び親鍵Kpを暗号化鍵k1、k2、k3として利用したトリプルDES(Data Encryption Standard)により算出される暗号文Cを更新用子鍵とする。なお、トリプルDESとしての演算式は以下のように表される。また、平文Pについては、例えば予め設定した所定値を利用すればよい。
C = encrypt k3 (decrypt k2 (encrypt k1 (P)))
セル識別子242は、セルパッケージ300ごとに固有の値である。したがって、セル識別子を利用して求められた更新用子鍵により更新された子鍵Kcは、セルパッケージ300ごとに固有な値となる。また、更新用子鍵の生成には親鍵Kcも演算に利用されている。これにより、更新された子鍵Kcの値は親鍵Kpと関連性を有し、対を成すものとなる。このように、本実施形態において更新される子鍵Kcは、セルパッケージ300ごとに固有であり、かつ、同じバッテリユニット100における親鍵Kcに対して対と成る関係性が与えられる。これにより、子鍵Kcについてのセキュリティが強化される。
なお、更新用子鍵の生成にあたり上記のようにセル識別子242と親鍵Kpを利用すれば、セルパッケージごとに固有であることと、親鍵Kpに対して対と成る関係を与えることの条件は満たされる。したがって、更新用子鍵の生成にあたり、バッテリユニット識別子230を必ずしも演算に利用する必要はない。しかし、バッテリユニット100ごとに固有となるバッテリユニット識別子230を演算に利用すれば、それだけ演算が複雑になるので子鍵Kcのセキュリティをさらに強化することができる。
また、図12において、上記ステップS110としての更新用子鍵生成からステップS116の子鍵完了通知受信までの処理は、同じバッテリユニット100におけるセルパッケージ300ごとに対応して繰り返し実行される。
そこで、図14のフローチャートにより、ステップS110からステップS116までの処理を、バッテリユニット100におけるセルパッケージ300ごとに繰り返し実行するための手順例を示す。なお、図14において、図12と同じステップについては同一符号を付している。
同図に示すように、子鍵生成部216は、配下のセルパッケージ300のうちから更新対象として選択した1つのセルパッケージ300に対応する更新用子鍵を生成する(ステップS111)。次に、この生成した更新用子鍵を、更新対象のセルパッケージ300のセル管理装置400を送信先として指定して送信する(ステップS112)。
更新対象のセル管理装置400は、上記のように送信された更新用子鍵を利用して子鍵Kcを更新し、子鍵更新完了通知をバッテリ管理装置200に対して送信する。これに応じて、子鍵生成部216は、子鍵更新完了通知を受信する(ステップS116)。これにより、子鍵生成部216は、更新対象のセルパッケージ300において子鍵の更新が正常に実行されたことを認識する。
そこで、子鍵生成部216は、装填されているすべてのセルパッケージ300の子鍵Kcの更新が完了したか否かについて判定する(ステップS117)。ここで、まだ子鍵Kcの更新が行われていないセルパッケージ300が残っている場合には(ステップS117−NO)、ステップS111に戻ることで、新たな更新対象のセルパッケージ300を1つ選択して子鍵更新のための処理を実行する。
そして、装填されているすべてのセルパッケージ300の子鍵Kcの更新が完了したことを判定すると(ステップS117−YES)、子鍵生成部216は子鍵更新のための処理を終了する。このように、第1例の子鍵更新の処理によっては、親鍵Kpの更新に応じて、同じバッテリユニット100におけるすべてのセルパッケージ300ごとに子鍵Kcの更新が行われる。
なお、例えばバッテリ管理装置200において親鍵Kpが更新された後において、運用者またはユーザなどのバッテリユニット100に対する操作による指示に応答して子鍵Kcを更新させるような運用も考えることができる。しかし、このような運用では、子鍵Kcの更新に人為的な作業が伴うことになるために、運用者やユーザにとっての負担が大きく、ミスによって適切に子鍵Kcの更新が行われない場合もあると考えられる。
これに対して、本実施形態では、バッテリ管理装置200において更新検知部215により親鍵Kpの更新を検知する機能を与え、親鍵Kpの更新の検知をトリガとして子鍵Kcの更新が行われるように構成している。これにより、親鍵Kpの更新に連動して、子鍵Kcは自動的に、かつ、確実に更新されることとなる。
[子鍵更新のための処理手順例(第2例)]
図15のシーケンス図は、本実施形態のバッテリユニット運用システムにおいて子鍵Kcを更新するために実行される処理手順の第2例を示している。この第2例は、図3により説明したように、セルパッケージ300の交換に応じて子鍵Kcの更新を行う場合の処理手順となる。
また、この図に示す処理は、図7に示したバッテリ管理装置200のCPU201における所定の機能部、及び、図9に示したセル管理装置400のCPU401における所定の機能部が適宜実行する。また、図示及び説明の便宜上、この図では1つのセル管理装置400の処理手順が示されているが、この処理手順を、バッテリユニット100において子鍵Kcの更新対象とされた各セルパッケージ300のセル管理装置400が実行するものとされる。
まず、セルパッケージ300の交換が行われる以前において、第1例のステップS101〜S103(図12)と同様に、まず、バッテリ管理装置200のセル対応認証処理部213と各セルパッケージ300の認証処理部412は、相互認証処理を実行する(ステップS301)。また、相互認証が成立している状態において、バッテリ管理装置200のセルパッケージ管理部211は、セル管理装置400の各々からセルパッケージ情報を取得するための処理を実行する(ステップS302)。また、セルパッケージ管理部211は、取得したセルパッケージ情報を利用してセルパッケージ管理テーブル240を更新する(ステップS303)。
そして、その後の或るタイミングにおいて、セルパッケージ300の交換が行われたものとする。なお、セルパッケージ300の交換に際してのバッテリユニット100(バッテリ管理装置200及びセル管理装置400)の処理は、例えば交換作業者の操作による電源オフとこの後の再起動となる(ステップS304)。なお、このセルパッケージ300の交換に際しては、交換が必要であると判断された1以上のセルパッケージ300が交換されるものであり、装填可能最大数の範囲内であれば、交換可能なセルパッケージ300の数について特に制約はない。
上記の再起動に応じて、バッテリ管理装置200のセルパッケージ管理部211は、同じバッテリユニット100に装填されるすべてのセルパッケージ300と相互認証を行う(ステップS305)。なお、この相互認証に際して、交換が行われたセルパッケージ300は初期値の子鍵Kcを利用することになる。続いて、セルパッケージ管理部211は、認証が成立したセルパッケージ300の各々からセルパッケージ情報を取得するための処理を実行する(ステップS306)。
次に、交換検知部217は、装填されているセルパッケージ300のうちから、今回の交換により新たに装填されたセルパッケージ300を検知する(ステップS307)。このために、交換検知部217は、記憶部203に記憶されているセルパッケージ管理テーブル240におけるセル識別子242と、上記ステップS306により取得したセルパッケージ情報に含まれるセル識別子430とを照合する。この時点で、セルパッケージ管理テーブル240におけるセル識別子242は、今回の交換前において装填されていたセルパッケージ300を示している。そこで、交換検知部217は、セルパッケージ管理テーブル240におけるセル識別子242と一致しないセル識別子430を特定する。そして、交換検知部217は、このように特定したセル識別子430に対応するセルパッケージ300を、新たに装填されたセルパッケージ300として検知する。
上記のように新規装填されたセルパッケージ300を検知したことに応じて、子鍵生成部216は、更新用子鍵を生成する(ステップS308)。ここでは、交換が検知されたセルパッケージ300のみを対象として、これららのセルパッケージ300ごとに固有となる更新用子鍵を生成する。なお、1つのセルパッケージ300に対応して更新用子鍵を生成する処理については、図13と同様でよい。
上記ステップS308からS313までの処理は、図12におけるステップS111からS116と同様となる。なお、ステップS311では、ステップS308により生成された更新用子鍵により初期値を書き換えるように子鍵Kcを更新することになる。また、交換されたセルパッケージ300が複数である場合には、図14のフローチャートに示した処理手順が適用される。この場合、ステップS117においては、今回交換されたセルパッケージ300のすべてについて子鍵Kcの更新を完了したか否かが判定される。
説明を図15に戻す。ステップS313において新規装填されたセルパッケージ300のすべてから子鍵更新完了通知を受信したとされると、新規装填されたセルパッケージ300のすべてについて子鍵Kcの更新が完了したことになる。これに応じて、セルパッケージ管理部211は、セルパッケージ管理テーブル240を更新する(ステップS314)。つまり、先のステップS307により交換が検知されたセルパッケージ300のセル識別子242を、セルパッケージ装填位置241に対応させて格納する。これにより、セルパッケージ管理テーブル240は、今回のセルパッケージ300の交換後の装填状態が反映された内容を有することになる。
なお、バッテリユニット100が正常でない状態で使用されているなどの異常が発生した場合には、バッテリ管理装置200がこの異常を検知する。このような異常を検知したバッテリ管理装置200は、例えばその異常に対応したステータス情報を総合管理サーバ600に送信する。総合管理サーバ600は、ステータス情報に基づいてバッテリユニット100の継続利用の可否判定を行うことができる。また、セル500に何らかの異常が発生した場合には、この異常をセル管理装置400が検知し、バッテリ管理装置200に異常が通知する。この通知に応じてバッテリ管理装置200は、異常が発生したセル500の動作を停止させるようにセル管理装置400を制御することができる。
なお、本実施形態の子鍵Kcを更新する構成は、これまでに説明したバッテリユニット運用システムに限定されるものではなく、多様な分野で適用が可能である。一例として、プリンタを上位の情報処理装置として、このプリンタに装填されるインクカートリッジを下位の情報処理装置として、相互認証が不成立の場合にはエラーが発生したとしてプリンタを動作させないというシステム構成を考えることができる。つまり、プリンタのメーカが正規品であると認可していないインクカートリッジの不正使用を防止するシステムである。
上記のシステム構成に対して、本実施形態の子鍵更新の第1例は以下のように適用できる。つまり、ホストからの操作によりプリンタ本体に記憶される親鍵が更新されるのに連動して、そのときに装填されているインクカートリッジに記憶される子鍵が更新されるようにするというものである。また、第2例は以下のように適用できる。つまり、インクカートリッジの交換が行われた際に、その交換されたインクカートリッジに記憶されている初期値の子鍵Kcを、プリンタ本体側にて生成した更新用子鍵により更新するというものである。
また、上記実施形態では、親鍵Kpの更新またはセルパッケージ300の交換をトリガとして子鍵Kcを更新することとしている。しかし、本実施形態において、子鍵更新のトリガは上記した事例に限定されるものではない。
また、上述のバッテリユニット100及び総合管理サーバ600は、内部にコンピュータシステムを有している。そして、上述した鍵更新のための処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
また、図7、図9及び図10における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより本実施形態としての鍵更新のための処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。