(57)【要約】【課題】相異なる暗号方式に適宜対応することにより、暗号方式が異なる電気機器との間で認証を行うことが可能なパック電池を提供する。【解決手段】制御部５のＣＰＵ５１が外部の電気機器２０の制御・電源部２１から受信したチャレンジコマンドに含まれるチャレンジのデータ長が２０バイトではない場合、ＲＯＭ５２に記憶したプログラムに含まれるＳＨＡ−１のライブラリを用いて実行する認証とは異なる認証を認証ＩＣに実行させるべきであると判定し、受信したチャレンジコマンドに含まれるチャレンジをそのまま中継して認証ＩＣ６に与える。認証ＩＣ６が生成したレスポンスは、ＣＰＵ５１が中継して制御・電源部２１に返送する。【選択図】図１
2013149487.tif 000002
【特許請求の範囲】
【請求項１】
二次電池と、外部の電気機器との通信を制御する通信制御部とを備え、該通信制御部及び前記電気機器間で認証を行うパック電池において、
前記電気機器との間で前記認証とは異なる認証を行う認証部を備え、
前記通信制御部は、
認証に係る信号を受信した場合、受信した信号を前記認証部に与えるべきか否かを判定する判定手段と、
該判定手段が与えるべきであると判定した場合、前記認証部に受信した信号の一部又は全部を与える手段と
を有することを特徴とするパック電池。
【請求項２】
前記通信制御部は、前記電気機器をマスタとする通信手順に従うようにしてあることを特徴とする請求項１に記載のパック電池。
【請求項３】
前記認証は、チャレンジ及びレスポンスを用いる認証であることを特徴とする請求項２に記載のパック電池。
【請求項４】
前記通信制御部は、
受信した信号がチャレンジの受信指示であるか否かを判定する手段と、
該手段がチャレンジの受信指示であると判定した場合、チャレンジのデータ長が所定長であるか否かを判定する第２の判定手段とを有し、
前記判定手段は、前記第２の判定手段が所定長ではないと判定した場合、前記認証部に与えるべきであると判定するようにしてあること
を特徴とする請求項３に記載のパック電池。
【請求項５】
前記通信制御部は、受信した信号に含まれるチャレンジに基づいてＳＨＡ−１（Secure Hash Algorithm 1）によるハッシュアルゴリズムを用いたＨＭＡＣ（Keyed-Hashing for Message Authentication Code ）を生成してレスポンスとするようにしてあることを特徴とする請求項３又は４に記載のパック電池。
【請求項６】
前記認証部は、与えられた信号の一部又は全部に含まれるチャレンジを楕円曲線暗号（Elliptic Curve Cryptography ）の秘密鍵で暗号化してレスポンスを生成するようにしてあることを特徴とする請求項３から５の何れか１項に記載のパック電池。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気機器に装着された際に、正規品であるか否かが認証によって確認されるパック電池に関する。
【背景技術】
【０００２】
近年、ポータブルな電気機器にパック電池を装着して動作させる機会が多くなっており、パック電池を構成する二次電池には、エネルギー密度が大きいリチウムイオン電池が多用される傾向にある。リチウムイオン電池は、他の二次電池と比較して高価であるがゆえに、模倣品及び模造品を含めた安価な非正規品（メーカ純正品ではない製品）が早晩市場に流通することが想定され、非正規品のパック電池が安易に使用されることがあり得る。また、正規品と誤認されて非正規品が使用されることも考えられる。
【０００３】
二次電池の中でも特にリチウムイオン電池は、過充電、過放電等のいわゆる定格を超えた状態での使用に対する耐性が低いため、パック電池内には過充電防止回路、過放電防止回路等の保護回路が備わっている。このような保護回路で保護されるパック電池を用いることによって、パック電池のみならず、該パック電池が装着される電気機器の安全性が確保される。
【０００４】
一方、非正規品のパック電池では、上述した保護回路が貧弱であるか又は保護回路そのものが備わっていないことが多々あり、過充電、過放電等の異常が発生した場合にパック電池が破損又は焼損する虞があるばかりか、非正規品のパック電池が装着された電気機器の安全性が脅かされる。
【０００５】
そこで、パック電池が正規品であるか否かを判定するために、パック電池及び該パック電池が装着される電気機器間で、入出力の関係が推測され難い信号を授受することにより、パック電池の真贋判定を行う技術が開示されている（特許文献１参照）。また、単なる真贋判定にとどまることなく、例えば電池パック（パック電池）に認証ＩＣを含む認証部を備え、該認証部が外部の電子機器（電気機器）との間で認証を試行することによって、電池パックが純正品であることを検証する技術が開示されている（特許文献２参照）。
【０００６】
認証ＩＣで用いられる暗号方式としては、ＳＨＡ−１等のハッシュ関数によって認証用データを暗号化するものがある（特許文献３参照）。例えば、ＭＡＸＩＭ社の認証ＩＣ（ＤＳ２７０３）によって、電気機器との間で認証セキュリティを実現することができる。また、ルネサス社のＳＨ７７１０グループのように、マイコン自体にＳＨＡ−１による暗号化機能が含まれているものがある。
【０００７】
ところで、近年、ＳＨＡ−１の脆弱性が指摘されている。このため、認証ＩＣでは、暗号の強度がより高い楕円曲線暗号（ＥＣＣ＝Elliptic Curve Cryptography ）等の公開鍵暗号方式が用いられることが多くなっている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第４０９７５８２号
【特許文献２】特開２００７−２８２４７１号公報
【特許文献３】特開２００９−１７１４６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来、電気機器及びパック電池間の認証に用いられる暗号方式は１つの方式に固定されているため、相異なる暗号方式を用いる電気機器に対して、１つのパック電池で随時対応して認証セキュリティを実現することはできなかった。
【００１０】
本発明は斯かる事情に鑑みてなされたものであり、その目的とするところは、相異なる暗号方式に適宜対応することにより、暗号方式が異なる電気機器との間で認証を行うことが可能なパック電池を提供することにある。
【課題を解決するための手段】
【００１１】
本発明に係るパック電池は、二次電池と、外部の電気機器との通信を制御する通信制御部とを備え、該通信制御部及び前記電気機器間で認証を行うパック電池において、前記電気機器との間で前記認証とは異なる認証を行う認証部を備え、前記通信制御部は、認証に係る信号を受信した場合、受信した信号を前記認証部に与えるべきか否かを判定する判定手段と、該判定手段が与えるべきであると判定した場合、前記認証部に受信した信号の一部又は全部を与える手段とを有することを特徴とする。
【００１２】
本発明に係るパック電池は、前記通信制御部は、前記電気機器をマスタとする通信手順に従うようにしてあることを特徴とする。
【００１３】
本発明に係るパック電池は、前記認証は、チャレンジ及びレスポンスを用いる認証であることを特徴とする。
【００１４】
本発明に係るパック電池は、前記通信制御部は、受信した信号がチャレンジの受信指示であるか否かを判定する手段と、該手段がチャレンジの受信指示であると判定した場合、チャレンジのデータ長が所定長であるか否かを判定する第２の判定手段とを有し、前記判定手段は、前記第２の判定手段が所定長ではないと判定した場合、前記認証部に与えるべきであると判定するようにしてあることを特徴とする。
【００１５】
本発明に係るパック電池は、前記通信制御部は、受信した信号に含まれるチャレンジに基づいてＳＨＡ−１（Secure Hash Algorithm 1）によるハッシュアルゴリズムを用いたＨＭＡＣ（Keyed-Hashing for Message Authentication Code ）を生成してレスポンスとするようにしてあることを特徴とする。
【００１６】
本発明に係るパック電池は、前記認証部は、与えられた信号の一部又は全部に含まれるチャレンジを楕円曲線暗号（Elliptic Curve Cryptography ）の秘密鍵で暗号化してレスポンスを生成するようにしてあることを特徴とする。
【００１７】
本発明にあっては、通信制御部が、外部の電気機器から認証に係る信号を受信した場合、自身が実行する認証とは異なる認証を、認証部に実行させるべきであると判定したときに、認証部に対して受信した信号の一部又は全部を与える。
これにより、通信制御部では対応できない認証方式について、認証部に認証を実行させることができる。
【００１８】
本発明にあっては、通信制御部が外部の電気機器をマスタとする通信手順に従うため、パック電池では一般的な通信手順に対して容易に適用することができる。また、認証部に認証を実行させた場合であっても、認証部による認証の応答タイミングに左右されずに、電気機器の要求に応じて認証の応答を返送することができる。
【００１９】
本発明にあっては、チャレンジ及びレスポンスを用いて認証を実行するため、パック電池では一般的な認証手順に対して容易に適用することができる。
【００２０】
本発明にあっては、通信制御部が受信した信号がチャレンジの受信指示であり、且つチャレンジのデータ長が所定長ではない場合、受信指示の一部又は全部を認証部に与える。
これにより、所定長のチャレンジのみを処理対象とする通信制御部が、認証処理を認証部に委ねることができる。
【００２１】
本発明にあっては、受信したチャレンジにＳＨＡ−１のハッシュ関数を適用して生成したＨＭＡＣをレスポンスとするため、パック電池における旧来の認証方式に対応することができる。
【００２２】
本発明にあっては、制御部から認証部に与えられた信号の一部又は全部に含まれるチャレンジを、認証部が楕円曲線暗号の秘密鍵で暗号化してレスポンスを生成するため、ＳＨＡ−１のハッシュ関数を用いた場合よりも認証が強化される。
【発明の効果】
【００２３】
本発明によれば、通信制御部では対応できない認証方式について、認証部に認証を実行させる。
従って、相異なる暗号方式に適宜対応することにより、暗号方式が異なる２つの電気機器との間で認証を行うことが可能となる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態に係るパック電池の構成例を示すブロック図である。
【図２】ＳＭＢｕｓにおけるブロックライトコマンドの構成を例示する説明図である。
【図３】ＳＭＢｕｓにおけるブロックリードコマンドの構成を例示する説明図である。
【図４】制御・電源部との間で認証を行うパック電池のＣＰＵの処理手順を示すフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
図１は、本発明の実施の形態に係るパック電池の構成例を示すブロック図である。図中１０はパック電池であり、パック電池１０は、パーソナルコンピュータ（ＰＣ）、携帯端末等の電気機器２０に着脱可能に装着される。パック電池１０は、例えばリチウムイオン電池からなる電池セル１１１，１１２，１１３，１２１，１２２，１２３，１３１，１３２，１３３を３個ずつ順に並列接続してなる電池ブロック１１，１２，１３を、この順番に直列接続してなる二次電池１を備える。二次電池１は、電池ブロック１３の正極及び電池ブロック１１の負極が夫々正極端子及び負極端子となるようにしてある。
【００２６】
電池ブロック１１，１２，１３の電圧は、夫々独立してＡ／Ｄ変換部４のアナログ入力端子に与えられ、デジタルの電圧値に変換されてＡ／Ｄ変換部４のデジタル出力端子から、マイクロコンピュータからなる制御部（通信制御部）５に与えられる。Ａ／Ｄ変換部４のアナログ入力端子には、二次電池１に密接して配置されており、サーミスタを含む回路によって二次電池１の電池温度を検出する温度検出器３の検出出力と、二次電池１の負極端子側の充放電路に介装されており、二次電池１の充電電流及び放電電流を検出する抵抗器からなる電流検出器２の検出出力とが与えられている。これらの検出出力は、デジタルの検出値に変換されてＡ／Ｄ変換部４のデジタル出力端子から制御部５に与えられる。
【００２７】
二次電池１の正極端子側の充放電路には、充電電流及び放電電流を夫々遮断するＰチャネル型のＭＯＳＦＥＴ７１，７２からなる遮断器７が介装されている。ＭＯＳＦＥＴ７１，７２は、ドレイン電極同士を突き合わせて直列に接続してある。ＭＯＳＦＥＴ７１，７２夫々のドレイン電極及びソース電極間に並列接続されているダイオードは、寄生ダイオード（ボディダイオード）である。ＭＯＳＦＥＴ７１，７２は、Ｎチャネル型であってもよい。
【００２８】
制御部５は、ＣＰＵ５１を有し、ＣＰＵ５１は、プログラム等の情報を記憶するＲＯＭ５２、一時的に発生した情報を記憶するＲＡＭ５３、各種時間を並列的に計時するタイマ５４、及びパック電池１０内の各部に対して入出力を行うＩ／Ｏポート５５と互いにバス接続されている。Ｉ／Ｏポート５５は、Ａ／Ｄ変換部４のデジタル出力端子、ＭＯＳＦＥＴ７１，７２夫々のゲート電極、電気機器２０が有する制御・電源部２１と通信する通信部９、及び電気機器２０との間で認証を行う認証ＩＣ（認証部）６に接続されている。Ｉ／Ｏポート５５及び認証ＩＣ６間は、例えば１−ＷＩＲＥ（登録商標）プロトコルによる１線式のシリアル通信線で接続されている。ＲＯＭ５２は、フラッシュメモリからなる不揮発性メモリである。ＲＯＭ５２には、プログラムの他に、例えば満充電容量の学習値、設定電圧、設定電流及び各種設定データが記憶される。
【００２９】
ＣＰＵ５１は、ＲＯＭ５２に予め格納されている制御プログラムに従って、演算及び入出力等の処理を実行する。例えば、ＣＰＵ５１は、２５０ｍｓ周期で電池ブロック１１，１２，１３の電圧値と、二次電池１の充放電電流の検出値とを取り込み、取り込んだ電圧値及び検出値に基づいて二次電池１の残容量を積算してＲＡＭ５３に記憶させる。また例えば、ＣＰＵ５１は、残容量のデータを生成すると共に、認証に係るデータを生成及び中継し、これらのデータを通信部９から電気機器２０に送信する。
【００３０】
遮断器７は、通常の充放電時にＩ／Ｏポート５５からＭＯＳＦＥＴ７１，７２のゲート電極にＬ（ロウ）レベルのオン信号が与えられることにより、ＭＯＳＦＥＴ７１，７２夫々のドレイン電極及びソース電極間が導通するようになっている。二次電池１の充電電流を遮断する場合、Ｉ／Ｏポート５５からＭＯＳＦＥＴ７１のゲート電極にＨ（ハイ）レベルのオフ信号が与えられることにより、ＭＯＳＦＥＴ７１のドレイン電極及びソース電極間の導通が遮断される。同様に二次電池１の放電電流を遮断する場合、Ｉ／Ｏポート５５からＭＯＳＦＥＴ７２のゲート電極にＨ（ハイ）レベルのオフ信号が与えられることにより、ＭＯＳＦＥＴ７２のドレイン電極及びソース電極間の導通が遮断される。ＭＯＳＦＥＴ７１，７２をＮチャネル型とした場合は、上記のＬ／Ｈレベルを反転させたＨ／Ｌレベルのオン信号／オフ信号をゲート電極に与えればよい。二次電池１が適当に充電された状態にある場合、遮断器７のＭＯＳＦＥＴ７１，７２は共にオンしており、二次電池１は放電及び充電が可能な状態となっている。
【００３１】
電気機器２０は、制御・電源部２１に接続された端末部２２を備える。制御・電源部２１は、図示しない商用電源より電力を供給されて端末部２２を駆動すると共に、二次電池１の充放電路に充電電流を供給する。制御・電源部２１は、また、商用電源から電力の供給が絶たれた場合、二次電池１の充放電路から供給される放電電流により、端末部２２を駆動する。制御・電源部２１が充電する二次電池１がリチウムイオン電池の場合は、例えば、定電流（ＭＡＸ電流０．５〜１Ｃ程度）・定電圧（ＭＡＸ４．２〜４．４Ｖ／電池セル程度）にて充電が行われ、二次電池１の電池電圧が満充電検出開始電圧以上、且つ充電電流が所定値以下の状態が一定時間以上継続したときに、二次電池１が満充電状態にあると判定する。
【００３２】
制御・電源部２１及び通信部９間では、制御・電源部２１をマスタに、通信部９を含む制御部５をスレーブにしてＳＭＢｕｓ（System Management Bus ）方式等の通信方式による通信が行われる。ＳＭＢｕｓ方式の場合、シリアルクロック（ＳＣＬ）は制御・電源部２１から供給され、シリアルデータ（ＳＤＡ）は制御・電源部２１及び通信部９間で双方向に授受される。本実施の形態では、制御・電源部２１が通信部９を２秒周期でポーリングして通信部９が送信しようとするデータの内容を読み出す。ポーリング周期の２秒は、制御・電源部２１側の設定による。
【００３３】
このポーリングにより、例えば、二次電池１の残容量のデータが、通信部９から制御・電源部２１に２秒周期で受け渡され、電気機器２０が有する図示しない表示器に残容量の値（％）として表示される。また、制御部５にて生成及び中継された認証に係るデータは、残容量のデータと同様に通信部９を介して制御・電源部２１に送信される。制御・電源部２１は、制御部５から送信された認証に係るデータに基づいて、パック電池１０を認証する。
【００３４】
次に、本実施の形態で用いるＳＭＢｕｓのデータ送受信コマンドについて説明する。
図２は、ＳＭＢｕｓにおけるブロックライトコマンドの構成を例示する説明図であり、図３は、ＳＭＢｕｓにおけるブロックリードコマンドの構成を例示する説明図である。図２，３において太枠で囲まれた構成部分は、スレーブ側から送信される部分であることを示す。また、枠外に表示された数字は、枠内の構成部分のビット長を表す。「Ｓ」及び「Ｐ」の夫々は、コマンドの開始（Start Condition ）及び終了（Stop Condition ）を表すビットである。また、「Ｗｒ」及び「Ｒｄ」の夫々は、後続するコマンドとデータとが、スレーブに対して書き込み及び読み出しされるものであることを表すビットである。
【００３５】
図２のブロックライトコマンドでは、「スレーブアドレス」で指定されたパック電池１０に対して「コマンドコード」でブロックライトが指示された後、「データバイト数（Ｎ）」で示されるＮバイトのデータが順次送信される。この間、スレーブのパック電池１０は、マスタの制御・電源部２１から、スレーブアドレス、Ｗｒビット、コマンドコード、データバイト数及びデータバイトからなる８ビットのデータを受信する都度、「Ａ」（Acknowledge ）で表される応答ビットを返送する。
【００３６】
一方、図３のブロックリードコマンドでは、「スレーブアドレス」で指定されたパック電池１０に対して「コマンドコード」でブロックリードが指示された後、再度「スレーブアドレス」で指定されたパック電池１０に対して「Ｒｄ」ビットでデータの読み出しが指示される。この間、スレーブのパック電池１０は、マスタの制御・電源部２１から、スレーブアドレス、Ｗｒビット、コマンドコード及びＲｄビットからなる８ビットのデータを受信する都度、「Ａ」（Acknowledge ）で表される応答ビットを返送する。その後、スレーブのパック電池１０が「データバイト数（Ｎ）」で示されるＮバイトのデータバイトを８ビットずつ送信する都度、これらのデータを受信したマスタの制御・電源部２１から「Ａ」で表される応答ビットが返送される。但し、Ｎバイトの最終データバイトに対しては、「ｎｏｔＡ」（「Ａ」の応答ビットを反転したもの）が返送される。
【００３７】
次に、上述したブロックライトコマンド及びブロックリードコマンドで送受信される信号に基づいて行われる認証について説明する。パック電池１０の認証は、いわゆるチャレンジ・レスポンス方式に従い、制御・電源部２１が主体となって試行される。ＳＨＡ−１をハッシュ関数に用いた認証が行われる場合、ＣＰＵ５１が、制御・電源部２１から通信部９を介して受信したチャレンジに基づいてレスポンスを生成し、生成したレスポンスを制御・電源部２１に対して返信する。これに対して楕円曲線暗号による暗号方式を用いた認証が行われる場合、認証ＩＣ６が、制御部５のＩ／Ｏポート５５と通信部９とを介して、電気機器２０の制御・電源部２１との間で認証のための通信を行う。この場合、ＣＰＵ５１は、認証ＩＣ６及び制御・電源部２１間でチャレンジ及びレスポンスを中継する。ＣＰＵ５１が実行する認証は、ＳＨＡ−１によるものに限定されない。また、認証ＩＣ６が実行する認証は、楕円曲線暗号によるものに限定されない。
【００３８】
ＳＨＡ−１をハッシュ関数に用いる認証では、制御・電源部２１及び制御部５が１６バイトの秘密鍵を共有しており、制御・電源部２１がチャレンジとして生成した２０バイトの乱数が、ＳＭＢｕｓのブロックライトコマンドに付随するバイトデータ１〜２０としてパック電池１０の制御部５に送信される。制御部５のＣＰＵ５１は、受信したチャレンジに対し、以下の式（１）で示される演算を行って生成したＨＭＡＣをレスポンスとして制御・電源部２１に返送する。但し、レスポンスの生成式は、式（１）に示されるものに限定しない。
【００３９】
ＨＭＡＣ（Ｍ）＝Ｈ［Ｋｄ||Ｈ（Ｋｄ||Ｍ）］・・・・・・・・・（１）
ここで、Ｈ（||）はＳＨＡ−１のハッシュ関数であり、記号「||」は連結を表す。また、Ｋｄは１６バイトの秘密鍵であり、Ｍは２０バイトのチャレンジである。
【００４０】
式（１）による演算では、先ず、ＫｄにＭが付加されて連結され、連結されたビット列（ここでは３６バイト＝２８８ビット）に対してハッシュ関数Ｈ（||）が適用される。演算結果のブロック長は２０バイトである。更に、前記演算結果がＫｄに連結され、連結されたた３６バイトのビット列に対して再びハッシュ関数Ｈ（||）が適用されて２０バイトのレスポンスが生成される。生成されたレスポンスは、ＳＭＢｕｓのブロックリードコマンドに付随するデータバイト１〜２０として制御・電源部２１に送信される。制御・電源部２１は、パック電池１０から送信されたレスポンスと、別途生成したレスポンスとを照合し、一致した場合にパック電池１０を認証する。
【００４１】
一方、楕円曲線暗号による暗号方式を用いた認証では、制御・電源部２１が１７バイトの乱数をチャレンジとして生成し、生成されたチャレンジがＳＭＢｕｓのブロックライトコマンドに付随するデータバイト１〜１７としてパック電池１０の制御部５に送信される。制御部５のＣＰＵ５１は、受信したブロックライトコマンドの一部（データバイト１〜１７）をチャレンジとして認証ＩＣ６に与える。認証ＩＣ６は、与えられたチャレンジを楕円曲線暗号の秘密鍵で暗号化して２５バイトのレスポンスを生成する。本実施の形態では、認証ＩＣ６がレスポンスを生成するのに要する時間が約５０ｍｓである。生成されたレスポンスは制御部５にて中継され、ＳＭＢｕｓのブロックリードコマンドに付随するデータバイト１〜２５として制御・電源部２１に送信される。制御・電源部２１は、パック電池１０から送信されたレスポンスと、別途生成したレスポンスとを照合し、一致した場合にパック電池１０を認証する。
【００４２】
次に、制御部５のＣＰＵ５１が、制御・電源部２１から受信したデータの内容によって、認証方式が楕円曲線暗号によるものか、又はＳＨＡ−１によるものかを識別する方法について説明する。上述したように、チャレンジの長さは、暗号方式によって１７バイト及び２０バイトの何れになるかが異なる。従って、ＳＭＢｕｓの特定のブロックライトコマンドをチャレンジコマンドとして受信したＣＰＵ５１は、受信したコマンド（信号）に含まれるデータバイト数で示される数値が２０であるか否か（又は１７であるか否か）を判定することによって、暗号方式を識別することができる。
【００４３】
以下では、上述したパック電池の制御部５の動作を、それを示すフローチャートを用いて説明する。以下に示す処理は、パック電池１０側では、ＲＯＭ５２に予め格納された制御プログラムに従ってＣＰＵ５１により実行され、制御・電源部２１側では、図示しないＣＰＵ（以下、単にＣＰＵという）によって実行される。
図４は、制御・電源部２１との間で認証を行うパック電池１０のＣＰＵ５１の処理手順を示すフローチャートである。パック電池１０側では、マスタからのコマンドが随時受け付けられるように、図４の処理が適宜起動される。制御・電源部２１側では、ＳＭＢｕｓのポーリングに対する応答によってパック電池１０の装着が検知されたときに、図４の処理が起動される。
【００４４】
制御・電源部２１側で図４の処理が起動された場合、ＣＰＵは、認証に用いられる暗号方式がＳＨＡ−１のハッシュ関数又は楕円曲線暗号の何れによるものであるかによって、２０バイト又は１７バイトの乱数をチャレンジとして生成する（Ｓ３１）。通常、制御・電源部２１は、何れか一方の暗号方式にのみ対応するものとして構成されている。その後、ＣＰＵは、生成したチャレンジを含むチャレンジコマンドを、ＳＢＭｕｓのブロックライトコマンドの１つとしてパック電池１０に送信する（Ｓ３２）。この場合、図２に示すコマンドの構成では、コマンドコードが０ｘ２７であり、データバイト数が２０（又は１７）であって、後続するデータバイト１，２・・・，２０（又は１７）にチャレンジが含まれている。
【００４５】
次いで、制御・電源部２１のＣＰＵは、後述するパック電池１０側の処理と同様の処理によってレスポンスを生成する（Ｓ３３）。生成されたレスポンスは一旦制御・電源部２１のメモリに記憶される。その後、ＣＰＵは、パック電池１０からレスポンスを受信するために、レスポンスコマンドを、ＳＢＭｕｓのブロックリードコマンドの１つとしてパック電池１０に送信する（Ｓ３４）。
【００４６】
一方のパック電池１０では、ＣＰＵ５１が、制御・電源部２１からのコマンドを受信したか否かを判定して（Ｓ１１）受信するまで待機しており（Ｓ１１：ＮＯ）、コマンドを受信した場合（Ｓ１１：ＹＥＳ）、受信したコマンドのコマンドコードが、チャレンジコマンド（０ｘ２７）を示しているか否かを判定する（Ｓ１２）。チャレンジコマンドを示していない場合（Ｓ１２：ＮＯ）、ＣＰＵ５１は、受信したコマンドのコマンドコードが、レスポンスコマンド（０ｘ２８）を示しているか否かを判定し（Ｓ１３）、レスポンスコマンドを示すものでもない場合（Ｓ１３：ＮＯ）、コマンドの受信を待ち続けるためにステップＳ１１に処理を移す。
【００４７】
ステップＳ１２で、コマンドコードがチャレンジコマンドを示している場合（Ｓ１２：ＹＥＳ）、ＣＰＵ５１は、受信したコマンドに含まれるデータバイト数が示す数値が２０であるか否かを判定し（Ｓ１４）、２０の場合（Ｓ１４：ＹＥＳ）、ＳＨＡ−１による暗号方式が認証に用いられることを記憶するために、ＳＨＡ１フラグを１にセットする（Ｓ１５）。その後、ＣＰＵ５１は、受信したチャレンジに基づいてレスポンスを生成し（Ｓ１６）、再び制御・電源部２１からのコマンドを待ち受けるために、ステップＳ１１に処理を移す。ここでのレスポンスは、ＲＯＭ５２に記憶されたプログラムに含まれるライブラリを用いて生成され、生成されたレスポンスは一旦ＲＡＭ５３に記憶される。
【００４８】
さて、ステップＳ１４でデータバイト数が示す数値が２０ではない場合（Ｓ１４：ＮＯ）、即ち、本実施の形態では上記数値が１７を示す場合、ＣＰＵ５１は、受信したコマンドに含まれるデータバイト１，２・・・，１７からなるチャレンジを、認証ＩＣ６に向けて送出する（Ｓ１７）。その後、ＣＰＵ５１は、認証ＩＣ６からレスポンスを受信したか否かを判定して（Ｓ１８）、受信するまで待機しており（Ｓ１８：ＮＯ）、レスポンスを受信した場合（Ｓ１８：ＹＥＳ）、再び制御・電源部２１からのコマンドを待ち受けるために、ステップＳ１１に処理を移す。ここでも、受信したレスポンスは一旦ＲＡＭ５３に記憶される。
【００４９】
ステップＳ１３で、受信したコマンドのコマンドコードがレスポンスコマンドを示している場合（Ｓ１３：ＹＥＳ）、ＣＰＵ５１は、チャレンジコマンドによって指定された暗号方式を確認するために、ＳＨＡ１フラグが１にセットされているか否かを判定する（Ｓ２１）。１にセットされている場合（Ｓ２１：ＹＥＳ）、即ちＳＨＡ−１による暗号方式が指定されている場合、ＣＰＵ５１は、次の認証フェーズでのコマンドの受信に備えるために、ＳＨＡ１フラグを０にクリアした（Ｓ２２）後、ステップＳ１６でチャレンジに基づいて生成されたレスポンスをＲＡＭ５３から読み出して制御・電源部２１に送信する（Ｓ２３）。
【００５０】
次に、ステップＳ２１でＳＨＡ１フラグが１にセットされていない場合（Ｓ２１：ＮＯ）、ＣＰＵ５１は、ステップＳ１８（：ＹＥＳ）で受信してＲＡＭ５３に記憶した認証ＩＣ６からのレスポンスを読み出し（Ｓ２４）、読み出したレスポンスが認証エラーを示すものであるか否かを判定する（Ｓ２５）。認証エラーを示すものではない場合（Ｓ２５：ＮＯ）、ＣＰＵ５１は、読み出した２５バイトのレスポンス（１）を、レスポンスコマンドに対するレスポンスとして制御・電源部２１に送信した（Ｓ２６）後、図４の処理を終了する。また、認証エラーを示すものである場合（Ｓ２５：ＹＥＳ）、ＣＰＵ５１は、認証エラーを示す４バイトのレスポンス（２）を、レスポンスコマンドに対するレスポンスとして制御・電源部２１に送信した（Ｓ２７）後、図４の処理を終了する。
【００５１】
他方の制御・電源部２１では、ＣＰＵが、パック電池１０からレスポンスを受信したか否かを判定して（Ｓ３５）、受信するまで待機しており（Ｓ３５：ＮＯ）、レスポンスを受信した場合（Ｓ３５：ＹＥＳ）、受信したレスポンスと、メモリに記憶したレスポンスとを照合して一致するか否かを判定し（Ｓ３６）、一致しない場合（Ｓ３６：ＮＯ）、そのまま図４の処理を終了する。レスポンスを照合して一致した場合（Ｓ３６：ＹＥＳ）、ＣＰＵは、認証に成功した旨をメモリに設定して（Ｓ３７）、図４の処理を終了する。
【００５２】
以上のフローチャートにおいて、ステップＳ１４が請求項に記載の「判定手段（第２の判定手段を含む）」に対応し、ステップＳ１７が請求項に記載の「受信した信号の一部又は全部を与える手段」に対応し、ステップＳ１２が請求項に記載の「チャレンジの受信指示であるか否かを判定する手段」に対応する。
【００５３】
以上のように本実施の形態によれば、制御部が、外部の電気機器の制御・電源部から認証に係る信号（チャレンジ）を受信した場合、ライブラリを用いて実行する認証とは異なる認証を認証ＩＣに実行させるべきであると判定したときに、認証ＩＣに対して受信した信号の一部（データバイト１〜Ｎ）を与える。
これにより、制御部では対応できない認証方式について、認証ＩＣに認証を実行させる。
従って、相異なる暗号方式に適宜対応することにより、暗号方式が異なる電気機器との間で認証を行うことが可能となる。
【００５４】
また、制御部が外部の電気機器の制御・電源部をマスタとする通信手順に従うため、パック電池では一般的なＳＭＢｕｓ等の通信手順に対して本発明を容易に適用することが可能となる。また、認証ＩＣに認証を実行させた場合であっても、認証ＩＣによる認証の応答タイミングに左右されずに、制御・電源部の要求（ポーリング）に応じて認証の応答を返送することが可能となる。
【００５５】
更に、パック電池では一般的な認証手順であるチャレンジ及びレスポンスを用いて認証を実行するため、本発明を容易に適用することが可能となる。
【００５６】
更にまた、制御部が受信した信号がチャレンジの受信指示であり、且つチャレンジのデータ長が２０バイトではない場合、受信指示の一部（データバイト１〜Ｎ）を認証ＩＣに与える。
これにより、２０バイトのチャレンジのみを処理対象とする制御部が、認証処理を認証ＩＣに委ねることが可能となる。
【００５７】
更にまた、受信したチャレンジを秘密鍵に連結したビット列にＳＨＡ−１のハッシュ関数を２回適用して生成したＨＭＡＣをレスポンスとするため、パック電池における旧来の認証方式に対応することが可能となる。
【００５８】
更にまた、制御部から認証ＩＣに与えられた１７バイトのチャレンジを、認証部が楕円曲線暗号の秘密鍵で暗号化して２５バイトのレスポンスを生成するため、ＳＨＡ−１のハッシュ関数を用いた場合よりも認証を強化することが可能となる。
【００５９】
今回開示された実施の形態は、全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【００６０】
１  二次電池
１０  パック電池
２  電流検出器
４  Ａ／Ｄ変換部
５  制御部
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５４  タイマ
５５  Ｉ／Ｏポート
６  認証ＩＣ
９  通信部
２０  電気機器
２１  制御・電源部
【図１】
2013149487.tif 000003
【図２】
2013149487.tif 000004
【図３】
2013149487.tif 000005
【図４】
2013149487.tif 000006