本発明の車両機能管理システムの実施形態について図面を用いて説明する。
図1に示されている車両機能管理システム1は車両(図示略)に搭載されているコンピュータまたはECU(電子制御ユニット(CPU,ROM,RAMおよびI/O回路等により構成されている。))により構成されている。
車両機能管理システム1はアンテナ10を通じて、外部のサーバ2から衛星送信アンテナ21および人工衛星22を介して配信される、または、サーバ2から電話回線等の無線ネットワークを介して配信されるプログラム等を受信する。
車両機能管理システム1は車両内部ネットワーク(CAN−BUS等により構成されている。)を介して、同じく車両に搭載されている複数の制御装置CNTi(i=1,2,‥N)に接続されている。
制御装置CNTiはコンピュータまたはECU(CPU,EEPROM(データ書き換え可能なメモリ),RAMおよびI/O回路等により構成されている。)により構成されている。制御装置CNTiは、その構成要素であるCPUにより必要なプログラム等がEEPROM等のメモリから読み出され、かつ、このプログラム等にしたがって制御対象である車載機器の動作を制御する。
たとえば、制御装置CNTiがナビゲーション装置を制御対象とする場合、制御装置CNTiはルート探索プログラムおよびマップデータに基づき、車両の現在位置および目的位置を結ぶルートを探索し、当該探索ルートの一部または全部をマップに重畳させてディスプレイに表示させる等のナビゲーション装置の機能を制御する。制御装置CNTiがエンジンを制御対象とする場合、制御装置CNTiはプログラム等にしたがって燃料噴射制御、点火時期制御およびアイドル回転数制御等を実行する。
車両機能管理システム1は第1更新手段11、第2更新手段12、コード生成手段13およびコード出力手段14を備えている。当該手段11〜14のそれぞれはメモリからプログラム等を読み出して、このプログラム等にしたがって演算処理を実行するCPUにより構成されている。
第1更新手段11は、サーバ2から放送または無線配信された更新データをアンテナ10経由で受信した上で、制御装置CNTiの構成要素であるEEPROMに保存されているプログラム等を書き換えることにより更新するように構成されている。
第2更新手段12は、車両機能管理システム1に有線接続されたツール(コンピュータを構成要素として有する。)から送信された更新データを受信した上で、制御装置CNTiの構成要素であるEEPROMに保存されているプログラム等を書き換えることにより更新するように構成されている。「有線接続」とは、たとえば、ツールに接続されている信号線が車両に設けられている指定端子に接続されることにより、ツールが当該信号線、または、当該信号線および車両内部ネットワークを介して車両機能管理システム1に接続されていることを意味する。
コード生成手段13は、更新手段コード、第1識別コードおよび第2識別コードに基づき、第1更新手段11および第2更新手段12のそれぞれによるプログラム等の更新結果を表わす結果コードを生成するように構成されている。
「更新手段コード」は第1更新手段11および第2更新手段12のいずれによりプログラムが更新されたかを表わすコードである。「第1識別コード」は車両またはその種類を識別するためのコードであり、当該車両のメモリ(ROMなど)に保存されている。「第2識別コード」は更新後の新しいプログラム等を識別するためのコードであり、当該プログラム等の更新用の更新データに付属している。各コードは「2311C23GHJ」等、数字、文字および記号等の列またはデータストリームにより表現される。
コード出力手段14はコード生成手段13により生成された結果コードを出力することにより、たとえば、ナビゲーション装置の構成要素としてインパネに配置されているディスプレイ(図示略)に当該結果コードを表示させるように構成されている。コード出力手段14は車載スピーカから結果コードを表わす音声を出力させる、あるいは、システム1に接続されたプリンタに結果コードを印刷させる等、人間が視覚または聴覚等を通じて知覚しうるあらゆる形態で結果コードを顕在化させてもよい。
前記構成の車両機能管理システム1の機能について説明する。
第1更新手段11および第2更新手段12のそれぞれにより更新データが受信された場合、当該更新データに付属する、更新対象となる旧プログラム等を識別するための旧コードと、メモリ(たとえばEEPROM)に保存され、一の制御装置CNTi(車両機能管理システム1であってもよい。)により利用されているプログラム等を識別するためのコードとが一致するか否かが判定される。そして、両コードが一致していると判定された場合、メモリに保存されている旧プログラム等が、更新データに基づき、第2識別データにより識別される新しいプログラム等に書き換えられることにより更新される。その一方、両コードが相違していると判定された場合、更新データは破棄または削除される。
なお、複数の制御装置のそれぞれにより使用されているプログラム等が更新対象に該当しうる場合、更新データに付属する制御装置を識別するための制御装置コードにより、当該更新データに基づいて旧プログラム等が更新される制御装置が選定された上で、前記のように旧プログラム等が新しいプログラム等に更新されてもよい。
プログラム等が更新された場合、コード生成手段13によって3つのコードX1〜X3に基づき、図2に示す手順にしたがって結果コードが生成される。更新手段コード、第1識別コードおよび第2識別コードのそれぞれが、3つのコードX1〜X3のうちいずれか1つのコードに相互に相違するように割り当てられる。
まず、図2(a)に示されているように3つのコードのうち2つのコードX1およびX2の組み合わせコードX1+X2(「第1基礎コード」に相当する。並び順はX2+X1でもよい。)を対象として、不可逆演算F0およびF1のそれぞれが実行されることによりコードY0(=F0(X1+X2))およびY1(=F1(X1+X2))(「第1コード」に相当する。)のそれぞれが生成される。
さらに、図2(b)に示されているように3つのコードのうち残り1つのコードX3と、第1コードY1との組み合わせコードX3+Y1(「第2基礎コード」に相当する。並び順はY2+X3でもよい。)を対象として、不可逆演算F2が実行されることによりコードY2(=F2(X3+Y1))(「第2コード」に相当する。)が生成される。
なお、不可逆演算F0〜F2の一部または全部が共通であってもよく、全部が相違していてもよい。不可逆演算はCRCもしくはSumまたはこれらの組み合わせにしたがって実行されうる。CRCは任意長のデータストリームを入力とし、32ビット整数等の固定サイズの値を出力する関数の一種である。
そして、図2(c)に示されているようにコードX3、Y0および第2コードY2の組み合わせコードX3+Y0+Y2が結果コードとして生成される。結果コードを構成する複数のコードの並び順は任意に変更されうる。
前記機能を発揮する車両機能管理システム1によれば、更新手段コードおよび第1識別コードのそれぞれを含む一または複数の基礎コードを対象として不可逆演算処理が実行されることにより生成された一または複数のコードが用いられて結果コードが生成される。具体的には、コードX1またはX2が更新手段コード(または第1識別コード)に該当する場合、これを含む組み合わせコードX1+X2を対象とした非可逆演算処理の実行結果であるコードY0およびY1のそれぞれが直接的または間接的に用いられて結果コードX3+Y0+Y2が生成されている(図2参照)。また、コードX3が更新手段コード(または第1識別コード)に該当する場合、これを含む組み合わせコードX3+Y1を対象とした非可逆演算処理の実行結果である第2コードY2が直接的に用いられて結果コードX3+Y0+Y2が生成されている(図2参照)。
このため、結果コードから基礎コードを知見することは著しく困難とされている。また、基礎コードが万が一知見されたとしても、当該基礎コードに更新手段コードがどのような形態で含まれているかはなおも不明である。基礎コードが複数存在する場合には、更新手段コードが含まれている基礎コードすら特定が困難とされている。したがって、プログラム等の更新手段、プログラム等の更新対象とされた車両および結果コードの因果関係が第三者により解明される可能性が著しく低く抑制されうる。また、第三者により提示された結果コードの真偽が、確認用の更新手段コードおよび第1識別コードに基づいて事後的に生成される確認用の結果コードとの比較によって判定されうるので、当該第三者による結果コードの作為的な変更が防止されうる。
このため、結果コードを対象として何らかの演算処理を実行しても、元の更新手段コードおよびこれを含む組み合わせコードは得られない。また、非可逆演算処理の対象となったコードが万が一得られたとしても、当該コードに更新手段コードが含まれているか否か、さらには、当該コードに更新手段コードがどのような形態で含まれているかはなおも不明である。したがって、プログラム等の更新手段および結果コードの因果関係が第三者により解明される可能性が著しく低く抑制されうる。また、第三者により提示された結果コードの真偽が、確認用の更新手段コードに基づく結果コードとの比較によって判定されうるので、当該第三者による結果コードの作為的な変更が防止されうる。
ここで、第三者による「第1識別コード○○により識別される車両を対象として、旧プログラムが第2識別コード●●により識別される新しいプログラム等に第2更新手段12によって更新された」という報告および結果コードの提示があった場合を考える。この場合、第2更新手段12によりプログラム等が更新されたことを表わす確認用の更新手段コードと、第1識別コード○○と、第2識別コード●●とに基づき、確認用の結果コードが生成かつ出力される(図2参照)。これにより、第三者により提示された結果コードおよび確認用の結果コードが一致した場合には第三者による当該報告が真実であることが確認されうる。その一方、両結果コードが相違する場合には第三者による当該報告が虚偽であること(報告された更新手段、対象車両および更新対象とされたプログラム等のうち一部または全部が真実とは異なること)が確認されうる。
なお、更新手段コードおよび第1識別コードのそれぞれが含まれる一または複数の基礎コードを対象とした非可逆演算処理の結果が用いられていることを条件としてさまざまな形態で結果コードが生成されてもよい。
いずれの場合も、前記実施形態と同様に、プログラム等の更新手段および結果コードの因果関係が第三者により解明される可能性が著しく低く抑制されうる。また、第三者により提示された結果コードの真偽が、確認用の更新手段コードおよび識別データに基づく確認用の結果コードとの比較によって判定されうるので、当該第三者による結果コードの作為的な変更が防止されうる。