(57)【要約】【課題】車両制御装置のメモリに格納されたセキュリティに関する情報を書き換えることができるようにし、不正の書き換えを防止する。【解決手段】車両制御装置に搭載され、消去および書き込みが可能なメモリ領域であって、該メモリ領域に対する書き換え許可を判断する第１のセキュリティ情報を格納するメモリ領域と、車両制御装置に第２のセキュリティ情報を外部から転送する書き換え装置と、車両制御装置に搭載され、前記第１のセキュリティ情報を消去して、書き換え装置から転送された第２のセキュリティ情報を書き込む書き換え手段とを備える、車両制御装置のための書き換えシステムを提供する。書き換えのセキュリティ機能を実現する情報を書き換えることができるので、該情報が第三者に知られてしまった場合でも、セキュリティ機能を回復させることができる。また、書き換えシステムは、盗難防止システムと協調して動作することができる。【選択図】図２
2007188522.tif 000002
【特許請求の範囲】
【請求項１】
車両制御装置のためのメモリ書き換えシステムであって、
第２のセキュリティ関数を格納する書き換え可能なメモリ領域を備える車両制御装置と、
第１のセキュリティ関数および第３のセキュリティ関数を有する書き換え装置と、を備え、
前記車両制御装置は、
或る任意の数値について前記第２のセキュリティ関数の値を算出し、
前記書き換え装置によって前記数値について算出された前記第１のセキュリティ関数の値を、該書き換え装置から受信し、
前記第２のセキュリティ関数の値と前記第１のセキュリティ関数の値との間に、予め決められた一定の関係が成立するかどうかを判断し、
前記予め決められた一定の関係が成立すると判断したならば、前記書き換え可能なメモリ領域が書き換えられることを防止するセキュリティ機能を解除し、
前記セキュリティ機能を解除した後、前記第２のセキュリティ関数を消去し、
前記第１のセキュリティ関数とは異なる前記第３のセキュリティ関数を、前記書き換え装置から受け取って、前記書き換え可能なメモリ領域に書き込む、よう構成されている、
メモリ書き換えシステム。
【請求項２】
前記第３のセキュリティ関数の書き込みがプログラムによって実行され、該プログラムが、前記車両制御装置に搭載された消去および書き込みが不可能なメモリ領域に格納されている、
請求項１に記載の車両制御装置のためのメモリ書き換えシステム。
【請求項３】
前記第３のセキュリティ関数は、前記書き換え装置によって任意に設定される、
請求項１または請求項２に記載の車両制御装置のためのメモリ書き換えシステム。
【請求項４】
前記予め決められた一定の関係は、前記第２のセキュリティ関数の値と前記第１のセキュリティ関数の値とが一致する関係である、
請求項１から３のいずれかに記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、車載制御装置のメモリに保存されたプログラムを、外部の書き換え装置から転送される別のプログラムに書き換えるメモリ書き換えシステムに関する。
【背景技術】
【０００２】
現在、車両は、搭載された複数の電子制御ユニット（以下、「ＥＣＵ」という）により、空燃比、燃料噴射量、エミッションなどのエンジンに関する制御、パワーウィンドウ、エアバッグ、ＡＢＳなどの車体に関する制御など、様々に制御されている。ＥＣＵは、車両に搭載された様々なセンサによって感知された車両の現在の状態および走行状況に基づいて、車両を様々に制御する。
【０００３】
一方、車両に盗難防止システムが搭載されることがある。多くの盗難防止システムは、運転者がエンジン始動時に使用したイグニションキーが正規のものかを電子的に判定し、正規のイグニションキーと判定したならば、車両動作を許可する信号をＥＣＵに転送する。ＥＣＵは、その許可信号を受信するまで、燃料噴射を停止するなどの手法によりエンジンを始動させないようにする。したがって、正規のイグニションキーではないと判定された場合には、不正な運転者とみなされ、車両を動かすことができない。
【０００４】
ＥＣＵは、中央演算処理装置（ＣＰＵ）、実行するプログラムおよびデータを格納するＲＯＭ（読み取り専用メモリ）、実行時の作業領域を提供し演算結果などを記憶するＲＡＭ（ランダムアクセスメモリ）、各種センサからの信号を受け取り、およびエンジン各部に制御信号を送る入出力インターフェースを備えている。
【０００５】
上記ＲＯＭに、フラッシュメモリ、ＥＥＰＲＯＭ、ＥＰＲＯＭのような消去および書き込みが可能なＲＯＭを使用して、必要に応じてプログラムを書き替えることが行われている。特開昭６３−２２３９０１号公報には、外部装置からの要求によって、ＥＣＵを車両に搭載したままで、ＥＣＵのＥＥＰＲＯＭに格納されたプログラムを変更する方法が記載されている。
【０００６】
通常、ＥＣＵのＲＯＭに格納されたプログラムを変更する機能には、外部装置からのアクセスに対してセキュリティがかけられており、ユーザーおよびその他の第三者がＲＯＭに格納されたプログラムおよびデータを不正に書き換えることを防止している。特開平３−２３８５４１号公報には、ＲＯＭに格納されたデータに基づくチェックデータを予め記憶しておき、車両の出荷後、ＥＣＵが所定のタイミングでＲＯＭに格納されたデータに基づく新たなチェックデータを作成し、予め記憶されたチェックデータと比較して、一致していなければデータの改ざんが行われたと判断し、警告灯を点灯させる車両制御装置が記載されている。
【０００７】
上記のセキュリティを解除する「キー（Ｋｅｙ）」は、自動車メーカーと契約した書き換え装置メーカーにのみ公開されている。したがって、その自動車メーカーによって認可された書き換え装置メーカーの書き換え装置のみが、「キー」を使用してその自動車のＥＣＵのＲＯＭに格納されたデータを変更することができる。
【０００８】
プログラムの典型的な変更手順を簡単に述べると、上記の「キー」は、通常何らかの関数で表され、書き換え装置およびＥＣＵに同じものが用意されている。書き換え装置をＥＣＵに接続し、書き換え装置は、自身が持っている関数（キー）を使用して、ＥＣＵから送信された任意の数値に対する関数値を算出し、該関数値をＥＣＵに送信する。同時に、ＥＣＵも、自身が持っている関数（キー）を使用してその数値に対する関数値を求める。ＥＣＵは、書き換え装置から受信された関数値と、自身が求めた関数値とを比較し、一致すればセキュリティを解除する。こうして、書き換え装置は、ＲＯＭに格納されたデータを書き換えることを許可される。一致しなければ、書き換え装置とＥＣＵの持つ関数（キー）が異なっており、書き換え装置は正規のものではないと判断されてセキュリティは解除されず、書き換え装置はＲＯＭに格納されたデータを書き換えることはできない。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、従来、セキュリティを解除するキーは、ＥＣＵに搭載されたＲＯＭの変更不可能なメモリ領域に格納されており、車両が出荷された後に書き換え装置を使用して変更することはできなかった。このため、万が一このキーがユーザーおよびその他の第三者に知られてしまった場合、正規の書き換え装置でなくてもＲＯＭのデータを書き換えることができるようになり、セキュリティが機能しなくなるという事態が生じる。
【００１０】
一方、車両に盗難防止システムが搭載されている場合、盗難防止システムを稼働するのに使用されるプログラムが書き換えられると、盗難防止システムが無力化されるおそれがある。したがって、ＲＯＭに格納されたデータおよびプログラムを書き換えるシステムには、盗難防止システム以上のセキュリティが要求される。
【００１１】
この発明は、上記の問題点を解決するものであり、その目的は、車両の出荷後においても、ＥＣＵのＲＯＭに格納されたプログラムまたはデータの改ざんを防止するセキュリティを解除するためのキーを変更することができる車両制御装置のためのメモリ書き換えシステムを提供することである。こうして、キーがメーカー以外の第三者に知られてしまった場合でも、書き換え装置によってメーカーがキーを変更することができるので、セキュリティ機能を容易に回復させることができる。
【００１２】
この発明の他の目的は、盗難防止システムと協調して動作することができる車両制御装置のためのメモリ書き換えシステムを提供することである。こうすることにより、盗難防止システムと協調したセキュリティ機能を確保することができる。
【課題を解決するための手段】
【００１３】
上記の課題を解決するため、請求項１の車両制御装置のためのメモリ書き換えシステムは、車両制御装置に搭載され、消去および書き込みが可能なメモリ領域であって、該メモリ領域に対する書き換え許可を判断する第１のセキュリティ情報を格納するメモリ領域と、前記車両制御装置に第２のセキュリティ情報を外部から転送する書き換え装置と、前記車両制御装置に搭載され、前記第１のセキュリティ情報を消去して、前記書き換え装置から転送された第２のセキュリティ情報を書き込む書き換え手段とを備えるという構成をとる。
【００１４】
請求項１の発明によると、車両制御装置のメモリに記憶された情報が不正に書き換えられることを防止する書き換え許可を判断するセキュリティ情報が第三者に知られてしまった場合でも、書き換え装置によりこのセキュリティ情報を変更することができるので、不正なメモリ書き換えの拡大を防止することができる。
【００１５】
請求項２の発明は、請求項１の車両制御装置のためのメモリ書き換えシステムにおいて、第２のセキュリティ情報の書き込みプログラムによって実行され、該プログラムが、前記車両制御装置に搭載された消去および書き込みが不可能なメモリ領域に格納されているという構成をとる。
【００１６】
請求項２の発明によると、セキュリティ情報を書き換えるプログラムが、変更不可能なメモリに格納されており、第三者によって改ざんされることはないので、安心してセキュリティ情報の書き換えを実行することができる。
【００１７】
請求項３の発明は、請求項１または請求項２の車両制御装置のためのメモリ書き換えシステムにおいて、第２のセキュリティ情報が、書き換え装置によって任意に設定されるという構成をとる。
【００１８】
請求項３の発明によると、書き換え装置によって任意に新たなセキュリティ情報を設定することができるので、第三者に知られることなく、柔軟性をもって新たなセキュリティ情報を設定することができる。
【００１９】
請求項４の発明は、請求項１から請求項３のいずれかの車両制御装置のためのメモリ書き換えシステムにおいて、第１のセキュリティ情報による書き換え許可が、盗難防止システムによって車両動作が許可された場合に書き換えが許可されるという構成をとる。
【００２０】
請求項４の発明によると、盗難防止システムが車両動作を許可したことを条件にメモリの書き換えが実行されるので、不正な運転者による書き換えを防止することができ、よって盗難防止システムに関する情報の書き換えを防止することができる。
【発明を実施するための最良の形態】
【００２１】
次に図面を参照してこの発明の実施の形態を、車両制御装置の不揮発性メモリに格納されたセキュリティプログラムを書き換えるシステムに関して説明する。しかし、この発明は、セキュリティプログラムを書き換えるシステムに限定されるものではなく、広く不揮発性メモリに格納された情報を書き換えるシステムに適用することができる。
【００２２】
図１は、この発明によるメモリ書き換えシステムの概要を示す。メモリ書き換えシステムは、車両１に搭載された電子制御ユニット（ＥＣＵ）１０および書き換え装置１１を備える。書き換え装置１１は、車両１のメーカーによって認可された正規の書き換え装置である。ＥＣＵ１０は、消去および書き込み可能なＲＯＭ（図示せず）を備えている。図に示されるように、書き換え装置１１をＥＣＵ１０に接続し、書き換え装置１１を操作することにより、ＥＣＵ１０のＲＯＭに格納されたプログラムおよびデータのような情報が不正に書き換えられることを防止するセキュリティを解除し、該ＲＯＭに格納された情報を書き換えることができる。
【００２３】
書き換えは、ＥＣＵ１０および書き換え装置１１の間のシリアル通信を介して行われる。書き換え装置１１を操作するユーザーは書き換え装置１１のボタンを操作し、書き換え装置１１に備えられた表示画面と対話しながら、書き換える情報をＥＣＵ１０に送信することができる。しかし、書き換え装置は、図に示されるような形態に限定されるものではなく、シリアル通信を介してＥＣＵ１０と通信するプロトコルを持つ他の形態の装置を書き換え装置として使用するようにしてもよい。
【００２４】
図２は、この発明に従うメモリ書き換えシステムの全体的な機能ブロック図を示す。前述したように、メモリ書き換えシステムは、車両に搭載されたＥＣＵ１０および書き換え装置１１を備える。書き換え装置１１はＥＣＵ１０の外部に設けられ、ＥＣＵ１０とシリアル通信を介して接続される。なお、書き換え装置１１およびＥＣＵ１０の間の通信をパラレル通信によって実現することも可能である。
【００２５】
ＥＣＵ１０は、マイクロコンピュータおよびこれに付随する回路素子で構成され、中央演算処理装置１４（以下「ＣＰＵ」という）、不揮発性メモリであって、実行するプログラムおよびデータを格納するＲＯＭ１６および１８、実行時の作業領域を提供し演算結果などを記憶するＲＡＭ３７（ランダムアクセスメモリ）、各種センサ３９からの信号を受け取り、車両の各部に制御信号を送る入出力インターフェース３８を備える。各種センサ３９からの信号には、エンジン回転数（Ｎｅ）、エンジン水温（Ｔｗ）、吸気温（Ｔａ）、バッテリ電圧（ＶＢ）、イグニションスイッチ（IGSW）などが含まれる。こうして、ＣＰＵ１４は、入出力インターフェース３８から入力された信号に基づいて、ＲＯＭ１６および１８から制御プログラムおよびデータを呼び出して演算を行い、その結果を入出力インターフェース３８を介して車両の各部に出力し、車両の様々な機能を制御する。
【００２６】
また、ＥＣＵ１０は、インターフェース１２を備える。インターフェース１２は、書き換え装置１１との通信のプロトコルを持ち、ＥＣＵ１０および書き換え装置１１の間のシリアル通信を可能にする。
【００２７】
変更可能ＲＯＭ１６は、格納された情報を消去して書き込むことができるメモリであり、たとえばフラッシュメモリ、ＥＥＰＲＯＭによって実現することができる。変更不可能ＲＯＭ１８は、上記のフラッシュメモリ、ＥＥＰＲＯＭのような消去および書き込み可能なＲＯＭのメモリ領域のうち、ある領域を変更不可能領域と設定することによって実現することができ、または製造時にデータが決められ、その後に消去および書き込みができないマスクＲＯＭや、または１度だけデータを書き込むことができるＰＲＯＭなどによっても実現することができる。
【００２８】
これらのＲＯＭ１６および１８は、別個のメモリとして実現してもよく、または１つのメモリのメモリ領域を２つの領域に分割して一方を変更可能領域として使用し、他方を変更不可能領域として使用することもできる。後者の場合、たとえばＥＥＰＲＯＭのある特定の領域を変更不可能領域としてプログラムなどを格納した後、それ以外の空き領域に対してスタートおよびエンドアドレスを指定することにより、変更可能領域を設定することができる。
【００２９】
ここで、ＲＯＭ１６、１８およびＣＰＵの実現の形態例について、図３を参照する。図３においては、ＲＯＭ１６および１８はフラッシュメモリによって実現される。図３の（ａ）は、フラッシュメモリがＣＰＵと別個に設けられた形態を示す。書き換え装置との通信により書き換えモードに移行すると、ＣＰＵは、書き換え装置からプログラムコードを受信し、書き換えを実行するプログラムを呼び出して、受信したプログラムコードをフラッシュメモリに書き込む。
【００３０】
一方、図３の（ｂ）は、フラッシュメモリが内蔵されて、ＣＰＵと共に１チップを構成する形態を示す。書き換え装置からの信号によって書き換えモードに移行すると、書き換え装置からのプログラムコードは、ＣＰＵに組み込まれた機能によって自動的にフラッシュメモリに書き込まれる。いずれの形態においても、この発明によるメモリ書き換えシステムを適用することができる。
【００３１】
図２に戻ると、変更可能ＲＯＭ１６にはセキュリティ関数ｆ２が格納されており、この関数ｆ２が、書き換え装置１１による書き換えの対象となる。セキュリティ関数ｆ２は、ＲＯＭ１６に格納された情報が不正に書き換えられることを防止するセキュリティ機能を実現する関数である。
【００３２】
変更不可能ＲＯＭ１８には、認証部３１、乱数生成部３３および書き換え実行部３５を実現するプログラムが格納される。認証部３１は、書き換え装置１１からのセキュリティ解除要求に応答して、セキュリティ関数ｆ２および乱数Ｒを使用し、書き換え装置１１が正規の書き換え装置かどうかを判断する。乱数Ｒを使用するのは、セキュリティ機能を向上させるためであり、乱数Ｒは、乱数生成部３３により生成される。正規の書き換え装置と判断したならば、セキュリティを解除する。書き換え実行部３５は、認証部３１によりセキュリティが解除された後、セキュリティ関数ｆ２を消去し、書き換え装置１１から新たなセキュリティ関数ｆ３を受信して、それをＲＯＭ１６に書き込む。
【００３３】
書き換え装置１１は、セキュリティ関数ｆ１および新たなセキュリティ関数ｆ３を持つ。セキュリティ関数ｆ１は、上記のＲＯＭ１６に格納されたセキュリティ関数ｆ２と対になってセキュリティ機能を実現する関数である。セキュリティ関数ｆ２が第三者によって変更されていなければ、書き換え装置１１の持つセキュリティ関数ｆ１およびＥＣＵ１０の持つセキュリティ関数ｆ２は、同じ関数である。代わりに、セキュリティ関数ｆ１およびｆ２の間に何らかの一定の関係を持たせるようにしてもよい。
【００３４】
新たなセキュリティ関数ｆ３は、新たなセキュリティ機能を実現するものとして、セキュリティ関数ｆ２の代わりにＲＯＭ１６に格納されることになる関数である。新たなセキュリティ関数ｆ３は、現在のセキュリティ関数ｆ１およびｆ２に何らかの変更を加えたものであり、たとえば関数の式自体が異なったもの、または関数に含まれる定数を変更したものでよい。たとえば、関数ｆ１およびｆ２が、ｆ１＝ｆ２＝Ａ×Ｒ＋Ｂ（ここで、Ａ＝１０，Ｂ＝５）であるとき、新たなセキュリティ関数ｆ３をｆ３＝Ａ＋Ｒ×Ｂ（ここで、Ａ＝１０，Ｂ＝５）のように設定することができる。または、ｆ１およびｆ２の定数ＡおよびＢの値を、Ａ＝５、Ｂ＝１０のように変更することもできる。
【００３５】
書き換え装置１１は、セキュリティ解除要求部２１、書き換え要求部２３、データ列組立部２５を備え、これらはプログラムとして書き換え装置１１のメモリに格納されている。セキュリティ解除要求部２１は、セキュリティ関数ｆ１を使用して、ＥＣＵ１０に対してセキュリティ解除を要求する。
【００３６】
データ列組立部２５は、ＥＣＵ１０に送信される新たなセキュリティ関数ｆ３のプログラムコードを、シリアル通信に適したデータ列に組み立てる。たとえば、データ列組立部２５は、セキュリティ関数ｆ３のプログラムを、ある長さのプログラムコード（たとえば、８ビット）に分割して、シリアル通信に適したシリアルデータ列の形式に変換する。その時、それぞれのプログラムコードには、プログラムコードが格納される先頭アドレスを含むアドレスフィールドが付加される。こうして、それぞれのプログラムコードがＥＣＵに転送されたとき、該プログラムコードがメモリのどの場所に格納されるべきかをＥＣＵに知らせるようにする。
【００３７】
書き換え要求部２３は、セキュリティが解除された後に、データ列組立部２５によって組み立てられた新たなセキュリティ関数ｆ３を表すデータ列をＥＣＵ１０に送信する。
【００３８】
ＥＣＵ１０には盗難防止システム８１が接続されており、メモリ書き換えシステムは、盗難防止システム８１と情報を交換することができる。盗難防止システム８１は、エンジン始動の際にキーシリンダに挿入されたイグニションキーから、該キーに含まれる電子コードを抽出し、該電子コードと予め設定された正規のコードとを比較して、挿入されたイグニションキーが正規のものかどうか判断する。イグニションキーが正規のものと判断されたならば、盗難防止システム８１は、エンジン始動許可を示す信号を入出力インターフェース３８を介してＥＣＵ１０に送信する。ＥＣＵ１０は、エンジン許可信号の受信に応答して、エンジンを始動させることができる。
【００３９】
挿入されたイグニションキーが正規のものと判断されなければ、エンジン始動許可信号は出力されず、ＥＣＵ１０はエンジンを始動させることができない。ＥＣＵ１０に送信されたエンジン始動許可信号により、ＲＡＭ３７（またはＲＯＭ１６）に格納されたエンジン始動許可フラグに値１が設定される。図２では別々に書かれているが、盗難防止システム８１の機能の一部をＥＣＵ１０に含めることができる。たとえば、正規のイグニションキーかどうかの判断を、ＥＣＵ１０によって実行するようにしてもよい。
【００４０】
図２に示されるメモリ書き換えシステムの動作の概要を、図４および図５を参照しながら説明する。書き換え装置１１をＥＣＵ１０に接続した後、書き換え装置１１のたとえば何らかの操作ボタンを押すことにより、書き換え動作が開始する。または、ＥＣＵを操作して、書き換え動作を開始するようにしてもよい。
【００４１】
ステップ４１において、書き換え装置１１のセキュリティ解除要求部２１は、ＥＣＵ１０にセキュリティ解除要求信号を送信する。ＥＣＵ１０は、それに応答して、正規の書き換え装置が接続されていることを確認する認証処理を開始する。
【００４２】
認証処理の一例を図５に示す。ステップ５１において、書き換え装置１１のセキュリティ解除要求部２１は、任意の数Ｒを送信するようＥＣＵ１０に要求する。それに応答して、ＥＣＵ１０の認証部３１が呼び出される。認証部３１は、乱数生成部３３を呼び出して、乱数によって任意の数Ｒを設定し、その任意の数Ｒを書き換え装置１１に送信する（ステップ５２）。なお、上記の乱数を使用して数Ｒを設定する代わりに、異なる機構を用いて任意に数Ｒを設定するようにしてもよい。書き換え装置１１は、予め内部に持っているセキュリティ関数ｆ１を使用して、Ｋ１＝ｆ１(Ｒ)により、数Ｒに対する関数ｆ１の関数値Ｋ１を求める（ステップ５３）。
【００４３】
一方、ＥＣＵ１０の認証部３１は、変更可能ＲＯＭ１６に格納されたセキュリティ関数ｆ２を使用して、Ｋ２＝ｆ２（Ｒ）を計算して関数値Ｋ２を求める（ステップ５４）。書き換え装置１１のセキュリティ解除要求部２１は、関数値Ｋ１をＥＣＵ１０に送信する（ステップ５５）。認証部３１は、書き換え装置１１からの関数値Ｋ１と、内部で生成した関数値Ｋ２を比較し（ステップ５６）、一致したならば、正規の書き換え装置と判断する。続いて、認証部３１は、ＲＡＭ３７に格納されたエンジン始動許可フラグに値１が設定されているかどうか調べる（ステップ５７）。許可フラグに値１が設定されていれば、盗難防止システム８１からエンジン始動許可信号が出力されたことを意味するので、書き換え許可信号を書き換え装置１１に送信する（ステップ５８）。このように、書き換えを実行するには、まずセキュリティを解除する必要があるので、現在のセキュリティ関数ｆ１およびｆ２を使用して、セキュリティを解除する。盗難防止システムが搭載されている場合には、盗難防止システムの解除を条件にメモリ書き換えシステムのセキュリティを解除するので、不正な運転者による書き換えおよび盗難防止システムに関する情報の書き換えを防止することができる。
【００４４】
図４に戻り、ＥＣＵ１０によって書き換え装置１１が正規のものであると認証されて書き換えが許可されたならば、ステップ４２に進む。書き換え装置１１の書き換え要求部２３は、書き換え開始信号をＥＣＵ１０に送り、ＥＣＵ１０の書き換え実行部３５は、準備ができたならば、開始許可信号を返す。ステップ４３において、書き換え装置１１は、書き換え動作モードに移行する要求をＥＣＵ１０に送り、ＥＣＵ１０の書き換え実行部３５は動作モード移行処理を行う。ステップ４４において、書き換え要求部２３は動作モードの移行が完了したかをＥＣＵ１０に問い合わせ、書き換え実行部３５は、動作モードの移行が完了したならば、移行完了信号を書き換え装置１１に送信する。
【００４５】
ステップ４５において、書き換え要求部２３は、変更可能ＲＯＭ１６に格納されたセキュリティ関数ｆ２の消去を要求し、書き換え実行部３５は応答して、ＲＯＭ１６のセキュリティ関数ｆ２を消去する。
【００４６】
書き換え装置１１においては、新たなセキュリティ関数として関数ｆ３が設定され、データ列組立部２５によって、この新たなセキュリティ関数ｆ３は、ＥＣＵ１０に送信するためのシリアルデータ列として準備されている。このセキュリティ関数ｆ３の設定およびそのデータ列の組立は、通常、書き換え装置１１によってセキュリティ解除要求または書き換え開始信号をＥＣＵ１０に送信する前に行われる。しかし、ステップ４５の直前に行うようにしてもよい。
【００４７】
セキュリティ関数ｆ３は、たとえば書き換え装置１１に予め保存されているいくつかの関数の中から選択することによって設定することもでき、またはユーザーが書き換え装置１１を操作しながら新たな関数を作成するようにしてもよい。
【００４８】
ステップ４６において、書き換え要求部２３は、書き込み要求信号と共に、新たなセキュリティ関数ｆ３を表すデータ列をＥＣＵ１０に送信する。書き換え実行部３５は、書き換え装置１１からデータ列を受信し、該データ列に含まれるプログラムコードを変更可能ＲＯＭ１６に書き込む。書き込みを完了すると、書き換え実行部３５は、書き込み完了通知を書き換え装置１１に送信する。書き換え装置１１は、それに応答して、次のデータ列をＥＣＵ１０に送信する。このステップ４６は、ＲＯＭ１６に、セキュリティ関数ｆ３のすべてのプログラムコードの書き込みが完了するまで繰り返される。
【００４９】
書き込みが完了したならば、書き換え要求部２３は、書き換え動作モードを解除する要求をＥＣＵ１０に送信する（ステップ４７）。書き換え実行部３５は、それに応答して書き換え動作モードを解除する。書き換え装置１１によって、ＲＯＭ１６に格納されたセキュリティ関数がｆ３に変更されたので、書き換え装置１１で使用されるセキュリティ関数もｆ３に設定され、その後のセキュリティ機能は、セキュリティ関数ｆ３によって実現される。新たなセキュリティ関数ｆ３を設定した後、または新たなセキュリティ関数ｆ３をＲＯＭ１６に書き込んだ後、前のセキュリティ関数ｆ１を消去することができる。
【００５０】
図６は、書き換え装置で実行される、セキュリティ解除の手順を示すフローチャートである。ステップ６１において、書き換え装置は、ＥＣＵに対して数Ｒを要求する。その後、書き換え装置は、ＥＣＵから任意の数Ｒを受信する（ステップ６２）。数Ｒを受信したならば、予め内部に持っているセキュリティ関数ｆ１を使用して、数Ｒに対する関数値Ｋ１を計算する（ステップ６３）。その後、関数値Ｋ１をＥＣＵに送信する（ステップ６４）。
【００５１】
図７は、ＥＣＵで実行される、セキュリティ解除の手順を示すフローチャートである。ステップ７１において、ＥＣＵは、書き換え装置からの数Ｒの要求を受信する。受信したならば、乱数を使用してＲを設定し（ステップ７２）、数Ｒを書き換え装置に送る（ステップ７３）。その後、ＥＣＵは、内部に持っているセキュリティ関数ｆ２を使用して、数Ｒに対する関数値Ｋ２を計算する（ステップ７４）。
【００５２】
ＥＣＵは、書き換え装置から関数値Ｋ１を受信し（ステップ７５）、Ｋ１およびＫ２を比較する（ステップ７６）。一致したならば、エンジン始動許可フラグに値１が設定されているどうか調べる（ステップ７７）。値１が設定されていれば、ステップ７８に進んで書き換え許可フラグに１を設定し、書き換え装置による書き換えが許可されたことを示す。ステップ７６において一致しなければ、またはステップ７７においてエンジン始動許可フラグに値１が設定されていなければ、書き換え許可フラグにゼロを設定して（ステップ７９）、この書き換え装置によっての書き換えは許可されないことを示し、処理を中止する。
【００５３】
図８は、書き換え装置で実行される、書き換え手順を示すフローチャートである。ステップ８１において、書き換え装置は、書き換え要求をＥＣＵに送信する。この書き換え要求は、実際には図４に示されるように、書き換え開始の通知、書き換え動作モードへの移行要求などを含むことができる。書き換え要求に対するＥＣＵの許可応答を受信したならば（ステップ８２）、設定された新たなセキュリティ関数ｆ３のデータ列を作成する（ステップ８３）。新たなセキュリティ関数ｆ３は、前述したように、書き換え装置を使用して任意に設定することができる。その後、新たなセキュリティ関数ｆ３を表すデータ列を、ＥＣＵに送信する（ステップ８４）。
【００５４】
図９は、ＥＣＵで実行される、書き換え手順を示すフローチャートである。書き換え装置から書き換え要求を受信したならば（ステップ９１）、書き換え許可フラグが１に設定されているかどうか調べる（ステップ９２）。１に設定されているならば、正規の書き換え装置として認証されたことを示すので、書き換え装置から転送される新たなセキュリティ関数ｆ３を待つ。実際には、ステップ９２および９３の間には、図４に示されるように、書き換え動作モードへの移行、変更可能ＲＯＭの現在のセキュリティ関数ｆ２の消去などの処理を実行することができる。
【００５５】
その後、新たなセキュリティ関数ｆ３を受信したならば（ステップ９３）、変更可能ＲＯＭに、この新たなセキュリティ関数ｆ３を書き込む。こうして、変更可能ＲＯＭに格納されていたセキュリティ関数ｆ２が、セキュリティ関数ｆ３に書き換えられる。
【００５６】
請求項１の発明によると、車両制御装置のメモリに記憶された情報が不正に書き換えられることを防止する書き換え許可を判断するセキュリティ情報が第三者に知られてしまった場合でも、書き換え装置によりこのセキュリティ情報を変更することができるので、不正なメモリ書き換えの拡大を防止することができる。
【００５７】
請求項２の発明によると、セキュリティ情報を書き換えるプログラムが、変更不可能なメモリに格納されており、第三者によって改ざんされることはないので、安心してセキュリティ情報の書き換えを実行することができる。
【００５８】
請求項３の発明によると、書き換え装置によって任意に新たなセキュリティ情報を設定することができるので、第三者に知られることなく、柔軟性をもって新たなセキュリティ情報を設定することができる。
【００５９】
請求項４の発明によると、盗難防止システムが車両動作の許可をしたことを条件にメモリ書き換えが実行されるので、不正な運転者による書き換えを防止することができ、よって盗難防止システムに関する情報の書き換えを防止することができる。
【図面の簡単な説明】
【００６０】
【図１】この発明に従うメモリ書き換えシステムの概要を示す図。
【図２】この発明の一実施例における、メモリ書き換えシステムの全体を示すブロック図。
【図３】この発明の一実施例における、メモリ書き換えシステムのＥＣＵのＲＯＭおよびＣＰＵの形態例を示す図。
【図４】この発明の一実施例における、メモリ書き換えシステムの動作手順を示す図。
【図５】この発明の一実施例における、メモリ書き換えシステムの認証手順を示す図。
【図６】この発明の一実施例における、メモリ書き換えシステムの書き換え装置で実行されるセキュリティ解除の手順を示すフローチャート。
【図７】この発明の一実施例における、メモリ書き換えシステムのＥＣＵで実行されるセキュリティ解除の手順を示すフローチャート。
【図８】この発明の一実施例における、メモリ書き換えシステムの書き換え装置で実行される書き換え手順を示すフローチャート。
【図９】この発明の一実施例における、メモリ書き換えシステムのＥＣＵで実行される書き換え手順を示すフローチャート。
【符号の説明】
【００６１】
１０ ＥＣＵ １１ 書き換え装置
１２ インターフェース １４ ＣＰＵ
１６ 変更可能ＲＯＭ １８ 変更不可能ＲＯＭ
８１ 盗難防止システム
【図１】
2007188522.tif 000003
【図２】
2007188522.tif 000004
【図３】
2007188522.tif 000005
【図４】
2007188522.tif 000006
【図５】
2007188522.tif 000007
【図６】
2007188522.tif 000008
【図７】
2007188522.tif 000009
【図８】
2007188522.tif 000010
【図９】
2007188522.tif 000011