(57)【特許請求の範囲】
【請求項１】
外部端末と認証を行う電子デバイスであって、
予め外部端末と共有された複数の秘密鍵を記憶する秘密鍵記憶部と、
前記外部端末から認証開始コマンド、乱数、認証用符号を受信するデータ受信部と、
前記全ての秘密鍵を用いて、前記乱数に暗号演算を行って暗号演算結果を取得する暗号演算部と、
前記認証用符号と、前記暗号演算結果とを照合する認証部と、
前記暗号演算結果のうち認証用符号と一致するもの、一致しないものの双方がある場合に、認証用符号と一致する暗号演算結果の演算に使用された秘密鍵で他の秘密鍵を上書きする上書き部と、
を含む電子デバイス。
【請求項２】
外部端末と認証を行う電子デバイスであって、
予め外部端末と共有された複数の秘密鍵を記憶する秘密鍵記憶部と、
前記複数の秘密鍵同士を比較してこれらが相互に等しいか否かを判定し、相互に等しい秘密鍵同士の群を生成し、それぞれの群から秘密鍵を一つずつ選択する秘密鍵比較部と、
前記外部端末から認証開始コマンド、乱数、認証用符号を受信するデータ受信部と、
前記選択された全ての秘密鍵を用いて、前記乱数に暗号演算を行って暗号演算結果を取得する暗号演算部と、
前記認証用符号と、前記暗号演算結果とを照合する認証部と、
前記暗号演算結果のうち認証用符号と一致するもの、一致しないものの双方がある場合に、認証用符号と一致する暗号演算結果の演算に使用された秘密鍵で他の秘密鍵を上書きする上書き部と、
を含む電子デバイス。
【請求項３】
予め外部端末と共有された複数の秘密鍵を用いて、外部端末と認証を行う認証方法であって、
前記外部端末から認証開始コマンド、乱数、認証用符号を受信するデータ受信ステップと、
前記全ての秘密鍵を用いて、前記乱数に暗号演算を行って暗号演算結果を取得する暗号演算ステップと、
前記認証用符号と、前記暗号演算結果とを照合する認証ステップと、
前記暗号演算結果のうち認証用符号と一致するもの、一致しないものの双方がある場合に、認証用符号と一致する暗号演算結果の演算に使用された秘密鍵で他の秘密鍵を上書きする上書きステップと、
を含む認証方法。
【請求項４】
予め外部端末と共有された複数の秘密鍵を用いて、外部端末と認証を行う認証方法であって、
前記複数の秘密鍵同士を比較してこれらが相互に等しいか否かを判定し、相互に等しい秘密鍵同士の群を生成し、それぞれの群から秘密鍵を一つずつ選択する秘密鍵比較ステップと、
前記外部端末から認証開始コマンド、乱数、認証用符号を受信するデータ受信ステップと、
前記選択された全ての秘密鍵を用いて、前記乱数に暗号演算を行って暗号演算結果を取得する暗号演算ステップと、
前記認証用符号と、前記暗号演算結果とを照合する認証ステップと、
前記暗号演算結果のうち認証用符号と一致するもの、一致しないものの双方がある場合に、認証用符号と一致する暗号演算結果の演算に使用された秘密鍵で他の秘密鍵を上書きする上書きステップと、
を含む認証方法。
【請求項５】
コンピュータを、請求項１又は２に記載の電子デバイスとして機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子デバイス、電子デバイスと外部端末間の認証方法、およびそのプログラムに関する。
【背景技術】
【０００２】
従来、ＩＣカード乗車券、クレジットカードの認証、自動車の盗難防止システムであるイモビライザーシステムなどにおいて電子デバイスが外部端末を認証する内部認証システムが利用されている。内部認証において、外部端末は端末内で生成したランダムな値（入力）とあらかじめ電子デバイスと共有した秘密鍵とを用いて暗号演算を行う。外部端末は当該暗号演算結果を電子デバイスに送信する。電子デバイスは外部端末からの入力に対して暗号演算を行った結果を比較する。この比較によって電子デバイスが外部端末を認証することが行われている。
【０００３】
電子デバイスが使用する秘密鍵は、数値の列として電子デバイスの記憶領域（メモリ）のいずれかのアドレスに物理的に格納されている。電子デバイスに温度変化や衝撃等の物理的作用が加わることによって秘密鍵が壊れる、つまり秘密鍵としてメモリに格納された数値列の一部が変更される場合がある。この場合、電子デバイスは秘密鍵を用いて外部端末を認証することができなくなってしまう。
【０００４】
このため、秘密鍵が壊れやすい環境での利用が想定される電子デバイスにおいては、複数個の同じ値の秘密鍵を、それぞれ内部メモリ（例えば、EEPROM）の異なる物理アドレスに格納し、仮に１つの秘密鍵が壊れたとしても他の秘密鍵で正しく認証できるような実装方法が採用されている。
【０００５】
例えば、非特許文献１の電子キー端末は、メモリ内に３個の同一の値の秘密鍵を格納している。この電子キー端末は、まず一つ目の秘密鍵を用いて外部端末との認証を行う。もし一つ目の秘密鍵が壊れていた場合は認証に失敗するので、電子キー端末は、二つ目の秘密鍵を用いて認証を行う。二つ目の秘密鍵も壊れており、再度認証に失敗した場合は、電子キー端末は、三つ目の秘密鍵を用いて認証を行う。このように従来の電子キー端末は、認証が成功するまで、複数個の秘密鍵を用いて繰り返し認証を実行することとしていた。電子キー端末内に複数個格納された秘密鍵を順番に利用することにより、これらの秘密鍵が全て壊れない限り、電子キー端末が外部端末を認証できるようになっていた。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Atmel Corporation, “ Open Source Immobilizer Protocol Stack ”、［online］、［平成 25年 10月 29日検索］、インターネット〈URL：http://www.atmel.com/tools/OPENSOURCEIMMOBILIZERPROTOCOLSTACK.aspx〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
電子デバイスが複数の秘密鍵を保持することによって、セキュリティ面において問題が生じる場合がある。例えば、攻撃者と呼ばれる不正な装置（端末）は、既知の手法を用いて電子デバイスに格納された秘密鍵の数値列の一部を既知の値（例えば０）に改竄することができる場合がある。秘密鍵の数値列の一部を改竄して固定することによって、改竄されていない数値の組み合わせを総当たり可能な組み合わせ数に絞り込むことができる。攻撃者は、改竄されていない数値に対して総当たり攻撃を実行して、改竄されていない数値（秘密鍵の一部）を取得することができる。秘密鍵がメモリ内に１つだけ格納されている場合は、上述の総当たり攻撃によっても、攻撃者は秘密鍵の数値列の全てを取得することができないため問題はなかった。しかし、電子デバイス内に秘密鍵が複数個格納されている場合は、攻撃者は複数の秘密鍵のそれぞれに対して改竄の位置をずらしながら総当たり攻撃を逐次実行していくことにより、秘密鍵の全ての値を取得することができる場合がある。
【０００８】
また、上述のように、電子デバイスが複数の秘密鍵を保持することによっても、メモリ内に格納されている全ての秘密鍵が壊れた場合は正しい認証ができなくなることも問題であった。
【０００９】
そこで本発明では、内部認証システムの安全性と耐久性を改善する電子デバイスを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の電子デバイスは、外部端末と認証を行う装置であって、秘密鍵記憶部と、データ受信部と、暗号演算部と、認証部と、上書き部とを含む。
【００１１】
秘密鍵記憶部は、予め外部端末と共有された複数の秘密鍵を記憶する。データ受信部は、外部端末から認証開始コマンド、乱数、認証用符号を受信する。暗号演算部は、全ての秘密鍵を用いて、乱数に暗号演算を行って暗号演算結果を取得する。認証部は、認証用符号と、暗号演算結果とを照合する。上書き部は、暗号演算結果のうち認証用符号と一致するもの、一致しないものの双方がある場合に、認証用符号と一致する暗号演算結果の演算に使用された秘密鍵で他の秘密鍵を上書きする。
【発明の効果】
【００１２】
本発明の電子デバイスによれば、内部認証システムの安全性と耐久性を改善することができる。
【図面の簡単な説明】
【００１３】
【図１】実施例１の内部認証システムであるイモビライザーシステムの概略を示す図。
【図２】実施例１の電子デバイス、外部端末の構成を示すブロック図。
【図３】実施例１の電子デバイス、外部端末の動作を示すフローチャート。
【図４】実施例１の電子デバイス、外部端末（攻撃者）の構成を示すブロック図。
【図５】実施例１の電子デバイス、外部端末（攻撃者）の動作を示すフローチャート。
【図６】第１秘密鍵を格納するメモリ内のアドレスを例示する図。
【図７】オリジナルの第１秘密鍵の一部が改竄された場合について例示する図。
【図８】オリジナルの第１秘密鍵の改竄箇所と異なる位置で第１の複製が改竄された場合について例示する図。
【図９】攻撃者から総当たり攻撃を受けた後、実施例１の電子デバイスにより上書きされた第１、第２の複製を例示する図。
【図１０】攻撃以外の要因で第１秘密鍵の一部が変更された場合について例示する図。
【図１１】実施例２の電子デバイス、外部端末の構成を示すブロック図。
【図１２】実施例２の電子デバイス、外部端末の動作を示すフローチャート。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【実施例１】
【００１５】
図１、図２、図３を参照して、攻撃者に対する安全性およびその他の外的要因に対する耐久性を改善した実施例１の内部認証システムについて説明する。図１は、本実施例の内部認証システムであるイモビライザーシステムの概略を示す図である。図２は、本実施例の電子デバイス、外部端末の構成を示すブロック図である。図３は、実施例１の電子デバイス、外部端末の動作を示すフローチャートである。図１に示すように、イモビライザーシステムは電子デバイス（自動車の電子キー）１、外部端末（自動車）９を含む構成である。本内部認証システムは、例えばAdvanced Encryption Standard （AES）暗号演算により実装可能である。認証に際し、外部端末９は、電子デバイス１に対して、認証開始コマンド、乱数（チャレンジ）、認証用符号（暗号演算結果）を送信する。
【００１６】
図２に示すように電子デバイス１は、第１暗号演算部８４、第１秘密鍵記憶部８４１、データ受信部８５、認証部８６、上書き部１７を含む構成である。外部端末９は、乱数生成部９１、第２暗号演算部９４、第２秘密鍵記憶部９４１、データ送信部９５を含む構成である。第１秘密鍵記憶部８４１には、予め外部端末９と共有された複数の秘密鍵が記憶されている。より詳細には、第１秘密鍵記憶部８４１には、電子デバイス用の秘密鍵であるオリジナルの第１秘密鍵およびその複製が格納されている。複製はいくつあってもよい。例えばオリジナルの第１秘密鍵を１つ、その複製の個数を２つとしてもよい。複製もオリジナルと同じように秘密鍵として機能するため、これらを呼び分ける必要がないときは、オリジナルも複製も単に第１秘密鍵と呼ぶ。従って、オリジナルの第１秘密鍵とその複製を総称するとき、単に複数の第１秘密鍵とも呼ぶ。第２秘密鍵記憶部９４１には、外部端末用の秘密鍵である第２秘密鍵が格納されている。第２秘密鍵の個数は任意である。電子デバイスと外部端末の間では予め秘密鍵が共有されているものとする。つまり第１秘密鍵と第２秘密鍵とは等しい。
【００１７】
まず、外部端末９の乱数生成部９１はランダムな値を生成する（Ｓ９１）。このランダムな値を以下、乱数、もしくはチャレンジと呼ぶ。外部端末９の第２暗号演算部９４は、あらかじめ電子デバイス１と共有した第２秘密鍵を用いて、生成した乱数（チャレンジ）を暗号演算する（Ｓ９４）。暗号演算は、例えばＡＥＳの暗号アルゴリズムに従って実行される。なお、ステップＳ９４で用いられる暗号アルゴリズムと、後述するステップＳ８４で用いられる暗号アルゴリズムは同一である必要がある。当該演算の結果を認証用符号と呼ぶ。外部端末９のデータ送信部９５は電子デバイス１に、認証開始コマンド、生成した乱数、認証用符号を送信する（Ｓ９５）。
【００１８】
一方、電子デバイス１のデータ受信部８５は、外部端末９から認証開始コマンド、乱数、認証用符号を受信する（Ｓ８５）。電子デバイス１の第１暗号演算部８４は、全ての第１秘密鍵を用いて、外部端末９から受信した乱数に暗号演算を行って暗号演算結果を取得する（Ｓ８４）。ステップＳ８４で用いられる暗号アルゴリズムは、ステップＳ９４で用いられた暗号アルゴリズムと同じものとする。暗号演算は、例えばＡＥＳの暗号アルゴリズムに従って実行される。電子デバイス１の認証部８６は、外部端末９と電子デバイス１間の認証を実行する機能を備える。電子デバイス１の認証部８６は、外部端末９から受信した認証用符号と、自端末における暗号演算結果とを照合して認証を実行する（Ｓ８６）。認証部８６は、認証用符号と全ての演算結果が等しい場合には（Ｓ８６１Ｙ）、次の処理に進む。次の処理とは、認証に関するその他の諸々の処理のことである。これらの処理は本発明の要点ではないため、説明を略する。なお、本明細書において割愛された認証動作がすべて正常に終了した場合、電子デバイス１はレスポンスを出力する。一方、認証用符号と全ての演算結果のうち等しくないものがある場合であって（Ｓ８６１Ｎ）、演算結果のうち認証用符号と一致するもの、一致しないものの双方がある場合には（Ｓ８６２Ｙ）、上書き部１７は、認証用符号と一致する演算結果の演算に使用された秘密鍵で他の秘密鍵を上書きする（Ｓ１７）。一方、ステップＳ８６１Ｎの場合において、演算結果のうち認証用符号と一致するものが一つもない場合（Ｓ８６２Ｎ）、電子デバイス１の処理はストップする（エラー）。
【００１９】
このように、本実施例の電子デバイス１によればオリジナルの第１秘密鍵やその複製のうち、いずれかの第１秘密鍵が故障していても認証を実行することができ、電子デバイスの耐久性が向上する。
【００２０】
＜外部端末が攻撃者であった場合＞
以下、図４、図５を参照して、外部端末が攻撃者であった場合について説明する。図４は、本実施例の電子デバイス１、外部端末（攻撃者）５の構成を示すブロック図である。図５は、本実施例の電子デバイス１、外部端末（攻撃者）５の動作を示すフローチャートである。外部端末５は、正規の外部端末の挙動を模倣し、電子デバイス１のデータ内容の一部を改竄可能な端末（攻撃者）である。外部端末５は、秘密鍵改竄部５０、乱数生成部９１、第２暗号演算部９４、仮定秘密鍵記憶部９４１、データ送信部９５、エラー判定部５６、仮定秘密鍵変更部５７を含む構成であって、秘密鍵改竄部５０、エラー判定部５６、仮定秘密鍵変更部５７以外の構成は、前述した外部端末９と同じである。
【００２１】
＜外部端末５＞
以下、図６、図７、図８を参照して外部端末５の処理の詳細を説明する。図６は、第１秘密鍵を格納するメモリ内のアドレスを例示する図である。図７は、オリジナルの第１秘密鍵の一部が改竄された場合について例示する図である。図８は、オリジナルの第１秘密鍵の改竄箇所と異なる位置で第１の複製が改竄された場合について例示する図である。
【００２２】
図６の例では、第１秘密鍵が１６個の８ビットの１６進数の数値列で表現されている。オリジナルの第１秘密鍵は物理アドレス0780-078Fに、その第１の複製（COPY1）は物理アドレス0790-079Fに、その第２の複製（COPY2）は物理アドレス07A0-07AFに、それぞれ記憶されている。物理アドレス0780-078F, 0790-079F, 07A0-07AFは前述した第１秘密鍵記憶部８４１内のアドレスである。図６の例では、第１秘密鍵となる１６個の数値(DATA1-16)はそれぞれ0x2b, 0x7e, 0x15, 0x16, 0x6c, 0xd2, 0x21, 0x11, 0x39, 0x9d, 0x45, 0x1f, 0xe0, 0x8f, 0xc3, 0xf5である。なお、外部端末５の仮定秘密鍵記憶部９４１には外部端末（攻撃者）が仮定した秘密鍵の初期値が記憶されている。外部端末（攻撃者）が仮定した秘密鍵を以下仮定秘密鍵と呼ぶ。仮定秘密鍵は前述した第２秘密鍵と同様に用いられる。仮定秘密鍵の初期値については、第１秘密鍵の改竄箇所と対応する箇所については、改竄後の第１秘密鍵と等しくなるように設定されているものとする。ここでは１６個の数値（DATA1-16）が全て0x00であるものとする。
【００２３】
外部端末５の秘密鍵改竄部５０は、秘密鍵の一部を取得することを目的として、電子デバイス１の第１秘密鍵記憶部８４１に格納されたオリジナルの第１秘密鍵の一部である、例えばDATA5-16を全てゼロ(0x00)に改竄する（Ｓ５０、図７参照、黒塗り箇所は攻撃者が改竄した箇所を示す）。改竄値はゼロ（0x00）でなくてもよく、任意の値でよい。前述した仮定秘密鍵のDATA5-16の初期値は、改竄後の第１秘密鍵のDATA5-16と等しくなるように設定されているものとする。次に、外部端末５は前述同様にステップＳ９１、Ｓ９４、Ｓ９５を実行することにより認証を試みる。エラー判定部５６は、認証開始後、所定時間に渡り無応答が続いた場合には、エラーと判定する。一方、電子デバイス１から前述のレスポンスを取得した場合（Ｓ５６Ｎ）、外部端末５は、その時の仮定秘密鍵のDATA1-4を真正な秘密鍵の一部として記憶し（Ｓ９４１）、処理はスタートに戻る。エラー判定部５６がエラーと判定した場合には（Ｓ５６Ｙ）、仮定秘密鍵変更部５７は、自端末の仮定秘密鍵記憶部９４１に記憶された仮定秘密鍵の一部であるDATA1-4を、次の値に変更（インクリメント）し（Ｓ５７）、処理はステップＳ９４に戻る。この例では、仮定秘密鍵のDATA1-4は、DATA1-4=(0x00, 0x00, 0x00, 0x00)を初期値としているため、エラー判定部５６はエラーと判定し（Ｓ５６Ｙ）、秘密鍵変更部５７は、仮定秘密鍵の一部DATA1-4を、次の値である(0x00, 0x00, 0x00, 0x01)に変更し（Ｓ５７）、処理はステップＳ９４に戻る。外部端末５は仮定秘密鍵のDATA1-4を（0x00,0x00,0x00,0x00）から（0xFF,0xFF,0xFF,0xFF）まで変えながら、総当たり攻撃（Ｓ９４〜Ｓ５７）を繰り返し実行する。第１秘密鍵におけるDATA1-4は、(0x2b, 0x7e, 0x15, 0x16)であるため、仮定秘密鍵のDATA1-4が、(0x2b, 0x7e, 0x15, 0x16)となるまで、前述の総当たり攻撃（Ｓ９４〜Ｓ５７）は繰り返される。第１秘密鍵のDATA1-4と、仮定秘密鍵の対応する箇所であるDATA1-4とが等しくなるとき、電子デバイス１は、前述の諸々の認証処理を経てレスポンスを出力し（Ｓ５６Ｎ）、外部端末５は、その時の仮定秘密鍵のDATA1-4を真正な秘密鍵の一部として記憶し（Ｓ９４１）、処理はスタートに戻る（スタートへ）。このようにして、外部端末（攻撃者）５は、最大でも２３２通りという現実的に計算可能な試行回数で、第１秘密鍵の最初の４つの数値を取得することができる。
【００２４】
ステップＳ５６Ｎを得て、処理がスタートに戻った場合、外部端末５の秘密鍵改竄部５０は、電子デバイス１の第１秘密鍵記憶部８４１に格納された第１の複製に対して、次に取得しようとする数値列以外の部分に改竄（変更）を行う。前述の例では、DATA1-4が取得済みであるため、秘密鍵改竄部５０は、例えば図８に示すようにDATA9-16を全てゼロ(0x00)に改竄する（Ｓ５０）。図８において黒塗り箇所は攻撃者が改竄した箇所を示す。以下、前述同様に外部端末５は、総当たり攻撃（Ｓ９４〜Ｓ５７の繰り返し実行）を実行することによって、第１の複製の一部であるDATA5-8を取得しようとする。しかしながら外部端末５は、後述する電子デバイス１の処理によって、その攻撃をガードされ、正しいDATA5-8を取得することができない。
【００２５】
＜電子デバイス１＞
引き続き図４、図５を、新たに図９を参照して電子デバイス１の動作について説明する。図９は、攻撃者から総当たり攻撃を受けた後、本実施例の電子デバイス１により上書きされた第１、第２の複製を例示する図である。図５に示すように、電子デバイス１は、前述の電子デバイス１と同様にステップＳ８５〜Ｓ８６１を実行する。認証用符号と全ての演算結果のうち等しくないものがある場合であって（Ｓ８６１Ｎ）、演算結果のうち認証用符号と一致するもの、一致しないものの双方がある場合には（Ｓ８６２Ｙ）、上書き部１７は、認証用符号と一致する演算結果の演算に使用された秘密鍵で他の秘密鍵を上書きする（Ｓ１７）。従って、前述の総当たり攻撃の例の場合、外部端末（攻撃者）５が第１秘密鍵の一部であるDATA1-4の取得に成功したとき、認証用符号と暗号演算結果の一部が一致するため（Ｓ８６２Ｙ）、電子デバイス１の上書き部１７は、図９に示すように他の第１秘密鍵を、認証用符号と一致する演算結果の演算に使用された改竄後の第１秘密鍵の値である（0x2b, 0x7e, 0x15, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00）に上書き（更新）する。図９の黒塗り箇所は攻撃者の改竄および電子デバイスの上書きにより生じた変更箇所を示す。これにより、オリジナル、複製ともにDATA5-16が改竄後の値（0x00）に上書き（更新）される。このように、電子デバイス１の上書き部１７は、第１秘密鍵に対して総当たり攻撃が仕掛けられた場合には、最初に総当たり攻撃が行われた箇所のみを残して、残りを全て改竄後の値に上書きしてしまう。従って、外部端末（攻撃者）５はオリジナルの第１秘密鍵及びその複製におけるデータ改竄位置をシフトさせながら総当たり攻撃を行ったとしても、残りの正しい数値を取得することができない。また、これに伴って電子デバイス１に記憶された第１秘密鍵は全て故障してしまうため、電子デバイス１も使用不可能となる。
【００２６】
＜外部端末が攻撃者でなく第１秘密鍵に改変が生じた場合＞
以下、図１０を参照して外部端末が攻撃者ではない正規な端末であって、オリジナルの第１秘密鍵またはその複製に攻撃以外の理由で改変が生じた場合について説明する。図１０は、攻撃以外の要因で第１秘密鍵の一部が変更された場合について例示する図である。ここでは、本実施例の電子デバイス１と前述した攻撃者でない外部端末９が認証を行う場合について説明する。ここでは電子デバイス１の第１秘密鍵の数値列の一部に攻撃以外の要因で改変が生じたものとする。攻撃以外の要因として、例えば温度変化や衝撃等の物理的作用による改変が挙げられる。図１０の例では、第１の複製のDATA5に改変が生じている（図中黒塗り部分）。このような場合にも電子デバイス１は前述と同じ動作を実行して、改変箇所を修復することができる。具体的には、外部端末９は前述したステップＳ９１、Ｓ９４、Ｓ９５を実行して、電子デバイス１に認証開始コマンド、乱数、認証用符号を送信する。電子デバイス１は、前述したステップＳ８５〜Ｓ８６２を実行する。図１０の例の場合、オリジナルの第１秘密鍵、第２の複製には改変が生じていないため、オリジナルの第１秘密鍵、第２の複製による暗号演算結果と認証用符号とは一致し、第１の複製による暗号演算結果と認証用符号とは一致しない（Ｓ８６２Ｙ）。この場合、前述同様に電子デバイス１の上書き部１７は、認証用符号と一致する演算結果の演算に使用された秘密鍵で他の秘密鍵を上書き（更新）する（Ｓ１７）。この上書き動作によって、図１０の例における第１の複製のDATA5に生じていた改変箇所の修復がなされる。図１０の例に限らず、オリジナルの第１秘密鍵自身に改変が生じている場合でも、改変箇所の自動修復は可能である。この場合、前述同様に電子デバイス１は、ステップＳ８５〜Ｓ８６２を実行する。オリジナルの第１秘密鍵自身に改変が生じている場合でも、第１の複製や、第２の複製には改変が生じていない場合、暗号演算結果の一部と認証用符号とは一致し（Ｓ８６２Ｙ）、電子デバイス１の上書き部１７は、認証用符号と一致する演算結果の演算に使用された秘密鍵で他の秘密鍵を上書き（更新）する（Ｓ１７）。このように、オリジナルの第１秘密鍵自身に改変が生じている場合でも、改変箇所の自動修復がなされる。本実施例の電子デバイス１は、オリジナルの第１秘密鍵およびその複製の全てに「同時に」改変が生じない限り、適切に改変箇所を修復することができる。
【００２７】
このように、本実施例の電子デバイス１によれば、上書き部１７が、暗号演算結果の一部と認証用符号とが一致する場合（Ｓ８６２Ｙ）に、認証用符号と一致する演算結果の演算に使用された秘密鍵で他の秘密鍵を上書き（更新）するため、総当たり攻撃を仕掛けた攻撃者に第１秘密鍵を知られることを防ぎ、攻撃以外の要因でいずれかの第１秘密鍵に改変が生じた場合であってもその改変を自動修復することができるため、内部認証システムの安全性と耐久性を同時に改善することができる。本実施例の電子デバイス１は、上述した一つのアルゴリズムによって、二つの課題（総当たり攻撃からの防御、秘密鍵の修復）を同時に解決している。また、本実施例の電子デバイス１のアルゴリズムは、既存の認証プロトコルで用いる情報を基にしているため、実装が容易である。本発明技術は、電子デバイスが外部環境の影響を受け、秘密鍵が壊れやすい状況である自動車のイモビライザーシステムへの応用が特に有効である。
【実施例２】
【００２８】
以下、図１１、図１２を参照して実施例２の電子デバイスについて説明する。図１１は、本実施例の電子デバイス２、外部端末９の構成を示すブロック図である。図１２は、本実施例の電子デバイス２、外部端末９の動作を示すフローチャートである。図１１に示すように、本実施例の電子デバイス２は、秘密鍵比較部２１、第１暗号演算部２４、第１秘密鍵記憶部８４１、データ受信部８５、認証部８６、上書き部１７を含む構成であって、秘密鍵比較部２１が追加されている点、第１暗号演算部８４が第１暗号演算部２４に変更されている点以外は、前述した電子デバイス１と同じである。また、外部端末９は、実施例１で述べた外部端末９と同じである。
【００２９】
電子デバイス２の秘密鍵比較部２１は、第１秘密鍵記憶部８４１に記憶された複数の第１秘密鍵同士を比較してこれらが相互に等しいか否かを判定し、相互に等しい第１秘密鍵同士の群を生成し、それぞれの群から第１秘密鍵を一つずつ選択する（Ｓ２１）。第１暗号演算部２４は、ステップＳ２１において選択された第１秘密鍵の全てを用いて、外部端末５から受信した乱数に暗号演算を行って、第１秘密鍵ごとに暗号演算結果を取得する（Ｓ２４）。認証部８６は、外部端末５から受信した認証用符号と全ての暗号演算結果とを照合して認証を実行する（Ｓ８６）。上書き部１７は、認証用符号と一致する演算結果の演算に使用された秘密鍵で他の秘密鍵を上書き（更新）する（Ｓ１７）。
【００３０】
具体的には、秘密鍵比較部２１は、認証開始コマンド、認証用符号の受信をトリガとして、格納された複数の第１秘密鍵同士が全て一致しているかを確認する。例えば、図７の例において物理アドレス0780-078Fに格納されている１６個の数値列をK(0)、物理アドレス0790-079Fに格納されている１６個の数値列をK(1)、物理アドレス07A0-07AFに格納されている１６個の数値列をK(2)とする。図７の例では、K(0)とK(1)、K(0)とK(2)は一致せず、K(1)とK(2)が一致するため、秘密鍵比較部２１は、K(0)を一つの群とし、K(1)とK(2)を一つの群として生成し、前半の群からはK(0)を選択し、後半の群からはK(1)を選択する。第１暗号演算部２４は、選択されたK(0)，K(1)を全て用いてAES暗号演算を行う。この手順により、暗号演算の演算量を削減することができる。この例では、第１暗号演算部２４は、３番目の第１秘密鍵（第２の複製、K(2)）を用いて行うAES暗号演算を省略することができる。
【００３１】
本実施例の電子デバイス２は、暗号演算の前に第１秘密鍵そのものの値を比較し、一致するものがあれば、演算結果が同じになるものとし、暗号演算を省略したため、実施例１の効果に加え、暗号演算を効率化することができる。本実施例の電子デバイス２によれば、全ての第１秘密鍵に変化がない時は、一致を確認する処理のオーバーヘッドのみとすることができるため、通常の認証プロトコルからの全体のオーバーヘッドを少なくすることができる。
【００３２】
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【００３３】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【００３４】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００３５】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００３６】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００３７】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
0006023689.tif 000002
【図２】
0006023689.tif 000003
【図３】
0006023689.tif 000004
【図４】
0006023689.tif 000005
【図５】
0006023689.tif 000006
【図６】
0006023689.tif 000007
【図７】
0006023689.tif 000008
【図８】
0006023689.tif 000009
【図９】
0006023689.tif 000010
【図１０】
0006023689.tif 000011
【図１１】
0006023689.tif 000012
【図１２】
0006023689.tif 000013