(57)【要約】【課題】  システムの修理の容易性を損なうことなく，不当な交換を極めて困難にすることが可能なマイクロプロセッサ及びそのシステムにおけるモジュール交換の検出方法を提供する。【解決手段】マイクロプロセッサシステム内の，シリアルナンバーによって特徴付けられるモジュールの交換を検出するために，シリアルナンバーから暗号化方法を使用することによって得られるコードナンバーと，コードナンバーからシリアルナンバーを計算するために必要とされる情報がマイクロプロセッサシステム内に記憶され，コードナンバーが読み出されて，コードナンバーから情報を用いて，暗号化されていないシリアルナンバーが計算され，得られた復号化されたシリアルナンバーがモジュールのシリアルナンバーと比較されて，モジュールのシリアルナンバーが復号化されたシリアルナンバーと一致しない場合に，そのモジュールが交換されたと検出される。【選択図】    図１
2004288179.tif 000002
【特許請求の範囲】
【請求項１】
その中にマイクロプロセッサ（２，１２）と，前記マイクロプロセッサのためのコード及びデータを記憶するための少なくとも１つのメモリモジュール（３）が含まれる複数のモジュール（２−５）を有し，その場合に前記モジュールの少なくとも１つの中に，前記モジュールのシリアルナンバーが変更できないように記憶されている前記マイクロプロセッサシステムにおいて，
前記マイクロプロセッサシステム内には，さらに，前記シリアルナンバーから暗号化方法を使用することによって得られたコードナンバーと，前記コードナンバーからシリアルナンバーを計算するために必要な情報とが記憶されており，かつ
前記マイクロプロセッサ（２，１２）は，前記コードナンバーから前記情報を用いてシリアルナンバーを計算し，記憶されているシリアルナンバーと比較して，前記比較結果に従ってコードの少なくとも一部を実施し又は実施しないように形成されている，
ことを特徴とするマイクロプロセッサシステム。
【請求項２】
前記暗号化方法は，非対称であって，
前記コードナンバーは，前記シリアルナンバーから秘密キーを用いて計算されており，かつ，
前記情報は，公開キーと，前記コードナンバーからシリアルナンバーを計算するためのプログラムコードとを含んでいる，
ことを特徴とする請求項１に記載のマイクロプロセッサシステム。
【請求項３】
前記シリアルナンバーによって特徴付けられるモジュール（３），又は前記シリアルナンバーによって特徴付けられるモジュールの１つは，メモリモジュールである，
ことを特徴とする請求項２に記載のマイクロプロセッサシステム。
【請求項４】
前記コードナンバーは，前記シリアルナンバーと同一のメモリモジュール（３）内に記憶されている，ことを特徴とする請求項３に記載のマイクロプロセッサシステム。
【請求項５】
前記メモリモジュール（３）は，電気的に書込み可能な不揮発性メモリであって，かつ
前記計算されたシリアルナンバーと前記記憶されているシリアルナンバーが一致しない場合に実施すべきコードは，前記メモリモジュール（３）を消去する指令を有している，
ことを特徴とする請求項３又は４に記載のマイクロプロセッサシステム。
【請求項６】
前記シリアルナンバーによって特徴付けられるモジュール，又は前記シリアルナンバーによって特徴付けられるモジュールの１つは，マイクロプロセッサ（２，１２）である，ことを特徴とする請求項１，２，３，４あるいは５項のうちいずれか１項に記載のマイクロプロセッサシステム。
【請求項７】
前記コードナンバーから前記シリアルナンバーを計算するために必要とされる情報は，前記コードナンバーとは異なるメモリモジュール（１１）内に記憶されている，
ことを特徴とする請求項１，２，３，４，５あるいは６項のうちいずれか１項に記載のマイクロプロセッサシステム。
【請求項８】
前記異なるメモリモジュール（１１）は，前記マイクロプロセッサ（１２）と分離できないように結合されている，ことを特徴とする請求項７に記載のマイクロプロセッサシステム。
【請求項９】
複数のメモリモジュールが，各々，シリアルナンバーによって特徴付けられており，かつ，
前記シリアルナンバーを共通に暗号化することによって，コードナンバーが得られている，ことを特徴とする請求項１，２，３，４，５，６，７あるいは８項のうちいずれか１項に記載のマイクロプロセッサシステム。
【請求項１０】
マイクロプロセッサシステム内のシリアルナンバーによって特徴付けられたモジュールの交換を検出する方法であって，
ａ）前記シリアルナンバーから暗号化方法を使用して得られるコードナンバーと，前記コードナンバーから前記シリアルナンバーを計算するために必要とされる情報をマイクロプロセッサシステム内に記憶し，
ｂ）前記コードナンバーを読み出して，前記コードナンバーから前記情報を用いて暗号化されていないシリアルナンバーを計算し，
ｃ）前記ｂ）ステップにより得られた復号化されたシリアルナンバーを，モジュールのシリアルナンバーと比較し，かつ
ｄ）前記モジュールのシリアルナンバーが，前記復号化されたシリアルナンバーと一致しない場合には，前記モジュールの交換を検出する，
ことを特徴とするモジュールの交換検出方法。
【請求項１１】
非対称の暗号化方法が使用され，かつ
前記暗号化方法の公開キーが，コードナンバーからシリアルナンバーを計算するために必要とされる情報内に含まれている，
ことを特徴とする請求項１０に記載のモジュールの交換検出方法。
【請求項１２】
前記方法が，マイクロプロセッサシステムのメモリモジュールに使用される，ことを特徴とする請求項１０又は１１に記載のモジュールの交換検出方法。
【請求項１３】
前記コードナンバーは，シリアルナンバーと同一のメモリモジュールに記憶されることを特徴とする請求項１２に記載のモジュールの交換検出方法。
【請求項１４】
前記メモリモジュールが交換されたと検出された場合には，前記メモリモジュールの内容が消去される，ことを特徴とする請求項１２又は１３に記載のモジュールの交換検出方法。
【請求項１５】
前記モジュールの交換検出方法が，マイクロプロセッサシステムのマイクロプロセッサに使用される，ことを特徴とする請求項１０，１１，１２，１３あるいは１４項のうちいずれか１項に記載のモジュールの交換検出方法。
【請求項１６】
少なくとも，シリアルナンバーを計算するために必要とされる情報は，前記コードナンバーとは異なるメモリモジュールに記憶される，ことを特徴とする請求項１０，１１，１２，１３，１４あるいは１５項のうちいずれか１項に記載のモジュールの交換検出方法。
【請求項１７】
前記モジュールの交換検出方法が，マイクロプロセッサシステムの複数のモジュールに使用され，かつ
前記コードナンバーが，前記複数のモジュールのシリアルナンバーを共通に暗号化することによって得られる，
ことを特徴とする請求項１０，１１，１２，１３，１４，１５あるいは１６項のうちいずれか１項に記載のモジュールの交換検出方法。
【請求項１８】
前記モジュールの交換検出方法は，マイクロプロセッサシステムの各始動時に実行される，ことを特徴とする請求項１０，１１，１２，１３，１４，１５，１６あるいは１７項のうちいずれか１項に記載のモジュールの交換検出方法。
【請求項１９】
前記モジュールの交換検出方法は，マイクロプロセッサシステムの駆動中に，周期的に実行される，ことを特徴とする請求項１０，１１，１２，１３，１４，１５，１６，１７あるいは１８項のうちいずれか１項に記載のモジュールの交換検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，マイクロプロセッサシステム及びシステムモジュールの交換検出方法に関し，さらに詳細には，車両用のエンジン制御装置におけるマイクロプロセッサシステム及びシステムモジュールの交換検出方法に関する。
【背景技術】
【０００２】
従来においては，例えば車両用のエンジン制御装置は，一般に，マイクロプロセッサ，マイクロプロセッサのためのプログラムと作業用のメモリ並びに，エンジンに設けられたセンサ及びアクターとの通信のための１つ又は複数のインターフェイスを備えたマイクロプロセッサシステムとして構築されている。プロセッサの制御プログラムにおける操作によって，例えばより高いエンジン出力を得るために，エンジンの動態が調節される。エンジンのために，必要に応じて有害な過負荷状況を阻止するために必要な出力制限，あるいは法律的な規定によって定められている出力制限は，このようにして迂回することができる。従って，かかるマイクロプロセッサシステムにおける不当な操作を不可能にし，あるいは少なくとも不正操作を殆ど困難にする技術が必要とされる。
【０００３】
このために，使用されている既知の技術は，かかるマイクロプロセッサシステムの構成部材を接着することである。当然ながら，何らかの方法で再び剥がすことのできない接着剤が提供できないことは，明らかにされている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら，上記接着剤の重大な欠点は，不当な操作を困難にするばかりでなく，同様にマイクロプロセッサシステムにおける修理も困難してしまうことである。
【０００５】
したがって，本発明の目的は，システムの修理の容易性を損なうことなく，不当な交換を極めて困難にすることが可能なマイクロプロセッサ及びそのシステムにおけるモジュール交換の検出方法を提供することにある。なお，不当な交換を困難にすることは，不当な操作による利用が，そのために必要される手間により報われないように，即ち経済的な意味において操作が不可能になるような程度に行われる。
【課題を解決するための手段】
【０００６】
上記課題を解決するため，本発明の第１の観点においては，その中にマイクロプロセッサと，マイクロプロセッサのためのコード及びデータを記憶するための少なくとも１つのメモリモジュールが含まれている複数のモジュールを有するマイクロプロセッサシステムに基づいており，その場合にモジュールの少なくとも１つの中に，このモジュールのシリアルナンバーが変更できない方法で記憶されている。また，マイクロプロセッサにおいては，一般に，マイクロプロセッサに製造時にプログラム技術的に照会可能なシリアルナンバーを搭載することが通常であって，そのシリアルナンバーは各マイクロプロセッサを一義的に同定し，かつ完成されたマイクロプロセッサにおいて変更することはできない。シリアルナンバーを有する不揮発性メモリ，特にフラッシュメモリも，同様に提供可能である。
【０００７】
また，本発明においては，マイクロプロセッサシステム内に，シリアルナンバーによって特徴付けられる少なくとも１つのモジュールのシリアルナンバーから暗号化方法の使用によって得られたコードナンバーと情報，特にプログラムコードとキーが格納され，その情報はマイクロプロセッサがコードナンバーからシリアルナンバーを計算できるようにし，そのシリアルナンバーは，マイクロプロセッサシステムが操作されていない場合には，モジュールのシリアルナンバーと一致すべきものである。
【０００８】
システムが操作されており，かつモジュールが，必然的に異なるシリアルナンバーを有する他のモジュールに取り替えられている場合には，それが検出されて，例えばマイクロプロセッサがこのような場合のために設けられている所定のコードの所定のステップを実施し，あるいはその正常な機能にとって重要な所定のコード部分の実施を拒否することによって，好適な措置がとられる。
【０００９】
マイクロプロセッサシステムがエンジン制御装置である場合に，車両に表示装置がそのために搭載されている場合には，その表示装置上で運転者のために，システム内のエラーに基づいてマイクロプロセッサシステムの所定の機能が阻止されている旨のメッセージを表示することができる。また，エンジンの始動を阻止することもできる。
【００１０】
好ましくは，シリアルナンバーからコードナンバーを得るための暗号化方法は，非対称の方法（即ち，暗号化と復号化のために異なるキーを使用する方法）である。その場合に，コードナンバーからシリアルナンバーの逆算を可能にする復号化に使用される公開キーは，逆にシリアルナンバーからコードナンバーを計算するためには，使用することはできない。従って，権限のないユーザは，ユーザが暗号化について認識しており，かつシステム内に記憶されている公開キーを抽出することができる場合であっても，かかる公開キーから，シリアルナンバーによって特徴付けられるモジュールのための代用としてシステム内へ挿入しようとするモジュールのシリアルナンバーに対する正しいコードナンバーを定めることはできない。従って，コードナンバーからシリアルナンバーを計算するために必要とされる情報をマイクロプロセッサシステムから抽出することについて，権限のないユーザを阻止する特別な措置を講じることは，不要となる。
【００１１】
不当な交換に対して保護することが重要なマイクロプロセッサシステムのモジュールは，メモリモジュール，特にマイクロプロセッサシステムによって実施すべき制御タスクのためのプログラムコード及び／又はパラメータテーブルを有するメモリモジュールである。かかるメモリモジュールのシリアルナンバーから計算されたコードナンバーは，安全性を損なうことなく，このメモリモジュール内に記憶しておくことができる。
【００１２】
本発明に基づいて有用に保護される他のモジュールは，システム自体のマイクロプロセッサである。
【００１３】
コードナンバーからシリアルナンバーを計算するために必要とされる情報は，好ましくはコードナンバーと同一のメモリモジュール内には記憶されない。同一のモジュール内に記憶する場合でも，権限のないユーザがこのモジュールを交換することは，極めて困難である。これは，ユーザは，このモジュールを機能し得る他のモジュールに代えることができるようにするためには，予めその中に記憶されている個々のデータの意味を認識しなければならないからである。しかしながら，分離すれば，付加的な安全性獲得がもたらされる。これは，唯一のモジュールの交換が検出されないままとなり，システムの機能能力がそのままであり続けることは，原則的に排除されているからである。このことにより，権限を有しないユーザにとっては，マイクロプロセッサシステムにおける調査によって，安全措置を理解して迂回することを可能にする情報に達することは，著しく困難になる。
【００１４】
権限のないユーザにとって，シリアルナンバーを計算するために必要とされる情報の操作を困難にするために，この情報を含むメモリモジュールは，好ましくはマイクロプロセッサシステムと，例えば両者をワンチップコンピュータ内に集積することにより，分離できないように結合されている。
【００１５】
さらに，安全性を獲得することは，マイクロプロセッサシステムが，各々，シリアルナンバーによって特徴付けられる複数のモジュールを有している場合に，コードナンバーがこれらのシリアルナンバーを共通に暗号化することによって得られることにより，達成可能である。このような場合には，これらのシリアルナンバーがコードナンバーの計算に入力されている全てのモジュールにおいて，それらが交換されたか否かを検査することができるようにするために，唯一の復号化演算で十分である。
【発明の効果】
【００１６】
システムの修理の容易性を損なうことなく，不当な交換を極めて困難にすることが可能なマイクロプロセッサ及びそのシステムにおけるモジュール交換の検出方法が提供される。
【発明を実施するための最良の形態】
【００１７】
以下に添付図面を参照しながら，本発明の好適な実施の形態について詳細に説明する。なお，本明細書及び図面において，実質的に同一の機能構成を有する構成要素については，同一の符号を付することにより重複説明を省略する。
【００１８】
まず，図１に基づいて，第１の実施の形態にかかるエンジン制御装置の回路構成について説明する。なお，図１は，第１の実施の形態にかかるエンジン制御装置の回路構成を示すブロック図である。
【００１９】
図１に示すように，プリント基板上のバス１に，マイクロプロセッサ２，不揮発性メモリモジュール３，書込み−読取りメモリモジュール４及び（図示されていない）制御すべきエンジンのセンサ及びアクターとの通信のためのインターフェイス５が接続されている。
【００２０】
モジュール２，３，４は，各々，相互に分離されたＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）によって形成されている。不揮発性メモリモジュール３は，従来の方法でアクセス可能なメインメモリ領域６と補助メモリセル７とを有しており，メインメモリ領域はエンジン制御装置のメーカーによってマイクロプロセッサ２のためのプログラムインストラクションとパラメータフィールドが書き込まれており，かつ読み取るためには従来の方法でバス１を介してアドレス可能であり，補助メモリセルは既にメモリモジュール３自体のメーカーによって，所定のタイプの各個々のメモリモジュールに固有のシリアルナンバーが書き込まれている。
【００２１】
補助メモリセル７の内容も，バス１を介して読み取り可能であるが，好ましくは，補助メモリセル７を読み出すために必要なアドレス信号のフォーマットは，メインメモリ領域６をアドレスするためのものとは異なっている。即ち，補助メモリセル７を読み出すためには，例えば予めバス１を介してパスワードが印加されることを必要とすることができる。それによって，メモリモジュール３を，メモリモジュール３のシリアルナンバーのみが通常のアドレス可能なメモリ箇所にコピーされているメーカーからのピン互換のシリアルナンバーのないメモリモジュールで代用する可能性が排除されている。従って，モジュール３は，同一のタイプで，異なるシリアルナンバーを有するモジュールによってのみ代用することができる。
【００２２】
メモリモジュール３のメインメモリ領域６は，エンジン制御装置の制御タスクに必要なプログラムインストラクションとパラメータ以外に，コードナンバーと，コードナンバーから補助メモリセル７内に記憶されているシリアルナンバーを計算するためにマイクロプロセッサ２が実行することができるプログラムインストラクションを有している。この計算は，システムの始動時に毎回及び／又はその駆動中に規則的な時間間隔で実施される。コードナンバーから計算されたシリアルナンバーと補助メモリセル７内のシリアルナンバーとの比較から両者が等しくないことが明らかにされた場合には，この事実は，メモリモジュール３が取り替えられたことに間違いないことを示している。この場合においては，メモリモジュール３内に含まれているプログラムインストラクションが，制御装置の駆動の阻止又は，少なくとも，その制御装置によって制御されるエンジンの機能にとって重要な個々の機能の阻止を実行する。
【００２３】
メモリモジュール３がフラッシュメモリである場合には，かかる機能の阻止は，マイクロプロセッサがメモリモジュール３へリセット信号を印加して，かかるリセット信号がメモリモジュール内に記憶されているデータを消去することによって，極めて簡単に実行することができる。
【００２４】
メモリモジュール３を，マイクロプロセッサ２のためのプログラムインストラクション又はパラメータが変更されている他のメモリモジュールによって代用しようとする権限のないユーザは，ユーザがメモリ３に含まれているプログラムコードを解析して，これをシリアルナンバーの全ての検査が克服されるように変更した場合，あるいはユーザがコードナンバーからシリアルナンバーの計算を実行して，代用として挿入すべきメモリモジュール内にこのシリアルナンバーに適合するコードナンバーを書き込むことによってのみ，他のモジュールに変更することができる。
【００２５】
（第２の実施の形態）
さらに著しく高い安全性を獲得することは，図２に示すように,図１に示す制御装置内でマイクロプロセッサ２がワンチップコンピュータ１０によって代用され，かかるワンチップ内にマイクロプロセッサ１２と不揮発性メモリ１１が集積されており，それらがチップから導出されない内部のバスを介して通信する場合に達成される。プログラムメモリ１１の内容へのアクセスは，当然ながら，チップのハウジングが開放された場合には可能であるが，それは著しい手間及びチップ破壊の危険性が伴っている。
【００２６】
プログラムメモリ１１は，マイクロプロセッサ１２のためのブートプロシージャを有している。かかるブートプロシージャは，少なくとも，メモリモジュール３内に記憶されているコードナンバーからのシリアルナンバーの計算，メモリモジュール３のシリアルナンバーの読出し及び一致しない場合の制御装置の完全な，あるいは部分的な阻止を含んでいる。この場合において，マイクロコンピュータ１０へのアクセスなしでは，コードナンバーの検査を克服することは不可能であるので，メモリモジュール３を成功裏に交換するための前提は，挿入すべきメモリモジュールのシリアルナンバーに適合するコードナンバーを求めることができることである。これは，権限のないユーザにとっては，制御装置のメーカーがメモリモジュール３のシリアルナンバーからコードナンバーを計算するために非対称の暗号化方法を使用している場合には，実際上不可能にされる。
【００２７】
上記方法は，例えばＲＳＡ（Ｒｉｖｅｓｔ，  Ｓｈａｍｉｒ，  Ａｄｅｌｍａｎｎ），Ｐｏｌｉｇ−Ｈｅｌｌｍａｎ，Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ，ＥｌＧａｍａｌなどの名称で，複数の方法が知られている。これら全てのアルゴリズムに共通するものは，メッセージ（ここでは，メモリモジュール３のシリアルナンバー）を暗号化するためには，秘密のキーを使用し，また，メッセージを復号化するためには公開キーを使用する。公開キーは，秘密キーを遡って推論することができないので，メッセージを暗号化するために利用できない。即ち，権限のないユーザが，プログラムメモリ１１内に格納されているキーとこのキーを用いてコードナンバーからシリアルナンバーを計算するためのプログラムインストラクションを読むことができた場合であっても，ユーザは，まだこれによって，新しく挿入すべきメモリモジュール３のシリアルナンバーに適合するマイクロコンピュータ１０に交換されたモジュールを真であるとして受け入れさせるコードナンバーを構築することはできない。
【００２８】
上記のように，モジュールに対応付けられたコードナンバーからシリアルナンバーを計算し，計算されたシリアルナンバーをモジュールの実際のシリアルナンバーと比較することによってモジュールの交換を検出する方法では，交換に対して保護すべき複数のモジュールに容易に一般化することができる。ひとつには，当然ながら，各モジュールについて専用のコードナンバーを記憶させ，かかるコードナンバーからモジュールのシリアルナンバーを逆算できるようにすることができる。このとき，メーカーが保護すべき全てのモジュールのシリアルナンバーの連鎖を暗号化して，全てのモジュールに有効な唯一のコードナンバーとしてメモリモジュール３又は制御装置の他の好適なメモリ内に書き込むことが，より経済的である。この場合には，保護される全てのモジュールのシリアルナンバーを計算するために，復号化方法を１回だけ実行すれば十分である。かかるコードナンバーの計算は，制御装置内に組み込まれている，
【００２９】
このように，保護すべきモジュールの全てのシリアルナンバーの認識を前提とするので（装置を組み立てる前にこれらシリアルナンバーを発見することは著しい手間と結びついているので），この場合には最初に制御装置が組み立てられ，その後保護すべき全てのモジュールのシリアルナンバーが制御装置から読み出され，コードナンバーが計算されて，その後初めてメモリモジュール３にコードナンバーと，そのメモリモジュール内に収容すべき他の全てのデータが書き込まれる。
【００３０】
メモリモジュール３が，例えばＥＥＰＲＯＭ又はフラッシュメモリなどのような電気的に上書き可能なメモリである場合には，メモリモジュールは，その中に含まれているデータが権限のないユーザによってメモリモジュール３の交換なしに操作されることを阻止するために，これ自体既知のように，パスワードによって保護されなければならない。
【００３１】
以上，添付図面を参照しながら本発明の好適な実施形態について説明したが，本発明は係る例に限定されないことは言うまでもない。当業者であれば，特許請求の範囲に記載された範疇内において，各種の変更例又は修正例に想到し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【００３２】
【図１】第１の実施の形態にかかるマイクロプロセッサシステムの回路構成を示すブロック図である。
【図２】第２の実施の形態にかかるマイクロプロセッサシステムの回路構成を示すブロック図である。
【符号の説明】
【００３３】
１  バス
２  マイクロプロセッサ
３  不揮発性メモリモジュール
４  書込み−読取りメモリモジュール
５  インターフェイス
６  メインメモリ領域
７  補助メモリセル
１０  ワンチップコンピュータ
１１  プログラムメモリ
１２  マイクロプロセッサ
【図１】
2004288179.tif 000003
【図２】
2004288179.tif 000004