(57)【要約】【課題】  機密データへの権限のない者によるアクセスを著しく困難にする，マイクロコントローラシステムを提供する。【解決手段】  マイクロコントローラシステムは，プロセッサユニット（１），機密データのためのソース（２；１９）および，プロセッサユニット（１）とソース（２）を接続するバス（８，１５）を有している。ソース（２）と共にアクセスコントロールユニット（３）が同じ基板（６）上に集積されており，そのアクセスコントロールユニットは，バス（８，１５）上で伝達される信号を用いて，ソース（２）からの機密データの出力が許可されるか，あるいは遮断されるか，を決定する。【選択図】    図１
2006155620.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサユニットと，機密データのためのソースと，前記プロセッサユニットと前記ソースとを接続するバスと，を備えるマイクロコントローラシステムにおいて：
前記ソースと前記アクセスコントロールユニットとが同じ基板上に設置されており，
前記アクセスコントロールユニットが前記バス上で伝達される信号に基づいて，前記ソースからの機密データの出力を許可するか否かを決定することを特徴とするマイクロコントローラシステム。
【請求項２】
前記アクセスコントロールユニットは，前記プロセッサユニットによって読まれた，ルーチンのスタートアドレスを認識し，前記スタートアドレスが予め定められた許容領域の外部にある場合には，前記ソースからの出力を遮断することを特徴とする，請求項１に記載のマイクロコントローラシステム。
【請求項３】
前記許容領域の定義が，前記アクセスコントロールユニット内に格納されていることを特徴とする請求項２に記載のマイクロコントローラシステム。
【請求項４】
前記許容領域が，前記プロセッサユニットと共通の基板上に設置されているメモリのアドレス領域内に含まれていることを特徴とする請求項２または３に記載のマイクロコントローラシステム。
【請求項５】
前記プロセッサユニットは，前記バスに関するコントロールを少なくとも１つの他のユニットと交代して行うように形成されており，かつ，
前記アクセスコントロールユニットは，前記プロセッサユニットが前記バスに関するコントロールを前記他のユニットへ引き渡した場合に，前記ソースからの出力を遮断することを特徴とする，請求項１〜４のいずれか１項に記載のマイクロコントローラシステム。
【請求項６】
デバッガインターフェイスを備えており，かつ，
前記アクセスコントロールユニットは，前記プロセッサユニットが前記デバッガインターフェイスを介して通信する場合に，前記ソースからの出力を遮断することを特徴とする，請求項１〜５のいずれか１項に記載のマイクロコントローラシステム。
【請求項７】
前記デバッガインターフェイスと前記アクセスコントロールユニットが，共通の基板上に設置されていることを特徴とする，請求項６に記載のマイクロコントローラシステム。
【請求項８】
前記アクセスコントロールユニットに，前記ソースの環境の特性を検出するためのセンサが対応づけられており，かつ，
前記アクセスコントロールユニットは，前記センサによって検出された特性が許容できない値を含む場合に，前記ソースからの機密データの出力を遮断することを特徴とする，請求項１〜７のいずれか１項に記載のマイクロコントローラシステム。
【請求項９】
前記センサが，前記ソースのハウジングの開放された状態と閉鎖された状態とを区別するためのセンサ，温度センサ，駆動電圧センサ，またはマイクロコントローラシステムの作業クロックを検出するためのクロック周波数センサから選択される１以上のセンサであることを特徴とする，請求項８に記載のマイクロコントローラシステム。
【請求項１０】
前記アクセスコントロールユニットが，前記ソースからの出力の遮断を開始した後，前記マイクロコントローラシステムがオフまたはリセットされるまで，前記ソースからの出力の遮断を維持することを特徴とする，請求項１〜９のいずれか１項に記載のマイクロコントローラシステム。
【請求項１１】
前記ソースが，機密データのためのメモリ回路を有していることを特徴とする，請求項１〜１０のいずれか１項に記載のマイクロコントローラシステム。
【請求項１２】
前記センサによって検出された特性が許容できない値を有する場合に，前記機密データを消去する手段をさらに備えることを特徴とする，請求項８または１１に記載のマイクロコントローラシステム。
【請求項１３】
前記ソースが，暗号化されたデータを復号化して，復号化されたデータを前記機密データとして出力する復号化回路を有していることを特徴とする，請求項１〜１２のいずれか１項に記載のマイクロコントローラシステム。
【請求項１４】
前記センサによって検出された特性が許容できない値を有している場合に，復号化に必要なデータを消去する手段をさらに備えることを特徴とする，請求項８または１３に記載のマイクロコントローラシステム。
【請求項１５】
自動車のための制御装置であることを特徴とする，請求項１〜１４のいずれか１項に記載のマイクロコントローラシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，プロセッサユニットと，機密データのためのソースと，プロセッサユニットとソースとを接続するアドレスバスおよびデータバスと，を備えるマイクロコントローラシステムに関する。
【背景技術】
【０００２】
プロセッサユニット，機密データのためのソース，プロセッサユニットとソースとを接続するアドレスバスおよびデータバスを有するマイクロコントローラシステムにおいて，不当な侵入者がバスへのアクセスを実行できる場合には，その侵入者は，ソース（多くはメモリモジュール）から機密データを探り出し，その機密データを変更してソースを取り替え，あるいは操作し，元の機密のデータの代わりに変更したデータを供給するなどして，マイクロコントローラシステムに，侵入者の望む機能を実施させるようにしむける可能性がある。
【０００３】
この種のマイクロコントローラシステムが，自動車の内燃機関のような，機械を操作するために使用される場合には，機械の駆動安全性や寿命が損なわれる危険がある。
【０００４】
そして，自動車のためのエンジン制御装置においては，上記のような不正な操作を行うという，権限のない者の関心は，極めて大きい。というのは，上記操作により，例えば内燃機関の提供可能なパワーを増大させることが可能だからである。上記操作の結果，不正に制御されるエンジンが長期的に損傷を被り，エンジンの排ガスの有害物質含有量に関する法律的規則を満たすことができなくなる。または車両が，そのシャシーのために設計されていない速度に達して，その速度においてはもはや確実に統御できないことが生じる。従って権限のない者に，たとえばエンジン制御装置のようなマイクロコントローラシステムの駆動データを操作することを不可能にし，あるいはこの種の操作を困難かつ作業に手間がかかるようにして，権限のない者にとってそれが経済的にもはや興味のないものになるような技術に対する著しい必要性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記技術としては，たとえば，マイクロコントローラシステムのハードディスクメモリに記憶されている，エンジン制御のための特性カーブのような駆動データから，インテグリティチェック値（すなわち駆動データの個々のメモリ箇所における各変化に伴って変化するデータ値）を計算して，それを駆動データとともにハードディスクメモリに格納することが，知られている。その場合に駆動データの不正操作は，高い確率で，システムスタート時にプロセッサユニットにより計算されたインテグリティチェック値が，ハードディスクメモリに記憶されているものと一致しなくなることをもたらすので，プロセッサユニットは操作を認識して駆動を拒否することができる。しかし，権限のない者がインテグリティチェック値を計算する規則を知っている場合には，彼は，操作すべき駆動データに合うように変更されたインテグリティチェック値もハードディスクメモリに書き込むことができるので，インテグリティチェック値の照合による方法では不正操作を認識することはできない。
【０００６】
インテグリティチェックを実施するためにプロセッサユニットを使用するプログラム自体を，もはや駆動データの変更を認識することができないように変更する，他の可能性がある。これは，知られているように，駆動プログラムまたはそれの少なくとも重要な部分がマイクロコントローラシステムのメモリに暗号化された形式で格納され，直接それを実施するためにだけ復号化されて，揮発性メモリに格納されることにより，権限のない者にとって困難にすることができる。この保護も，権限のない者が暗号化アルゴリズムと場合によってはそのために使用されるキーを知っている場合には，その効力を失う。しかし両方ともマイクロプロセッサシステム内に永続的に記憶されていなければならないので，権限のない者は原則的に，暗号化アルゴリズムと場合によってはそのキーを探して暗号化を破ることを試みるために，任意の長さの時間を使用できる。
【課題を解決するための手段】
【０００７】
本発明によって，権限のない者に，その中に含まれている機密データへのアクセスを著しく困難にする，マイクロコントローラシステムが提供される。この目的のために，機密データのためのソースとアクセスコントロールユニットとが同じ基板上に設置（集積）され，そのアクセスコントロールユニットは，ソースからのデータの出力を遮断（禁止）することができる。アクセスコントロールユニットは，バス上で伝達される信号を用いて，ソースからの機密データの出力を許可するか，または遮断するかを決定する。
【０００８】
バス上で伝達される信号を用いて権限のない者の攻撃を認識する複数の方法が考えられる。第１の方法は，アクセスコントロールユニットが，プロセッサユニットによって読み込まれた（アドレス指定された），プログラムルーチンのスタートアドレスを認識して，スタートアドレスが予め定められた許容領域の外部にある場合には，ソースからの出力を遮断するという方法である。許容領域は，一般に，その内容が不当な操作に対して比較的良好に保護されているとみなすことのできるアドレス領域，特にプロセッサユニットと共通の基板上に集積されているメモリのアドレス領域としてもよい。プロセッサユニットが，ルーチンの開始の際に，たとえばブートの際に，あるいはインターラプトによってこの許容領域内のアドレスにアクセスするよう促された場合に，ここには操作されていないブートプログラムが記憶されており，従ってマイクロコントローラに機密データへのアクセスを保証することができる，と推定することができる。というのは，マイクロコントローラは機密データを予め定められたようにだけ使用するからである。しかし，プロセッサユニットが予め定められた領域の外部のアドレスからスタートする場合には，操作されたプログラムが使用される，と推定されて，機密データへのアクセスが拒否される。
【０００９】
許容領域の定義は，それがこの許容領域の境界アドレスの直接的な記憶によるものであろうと，あるいはアクセスコントロールユニットに，アドレスバスを介して受信されたアドレスが許容される領域内にあるか否かを決定することを許す，任意の処理規則によるものであろうと，アクセスコントロールユニット内に固定的に，消去等されない状態で格納される。
【００１０】
特別な操作の危険は，プロセッサユニットが少なくとも１つの他のユニット（たとえばコプロセッサ，ＤＭＡコントローラなど）とバスに関するコントロールを交代するように形成されている，マイクロコントローラシステムにおいて存在する。このような他のユニットはそれぞれ，そのメモリ内容を探り出すために，権限のない者がマイクロコントローラシステムに接続させる，マイクロプロセッサでもあり得る。一般的に，このようなマイクロコントローラシステムにおいては，どのユニットがいつバスに関するコントロールをもつかを決定するために，プロセッサユニットと他のユニットが互いに通信する必要がある。そこで，アクセスコントロールユニットはこれ（どのユニットがいつバスに関するコントロールをもつか）をバス上で交換される信号を傍聴することによって確認し，プロセッサユニットがバスに関するコントロールを他のユニットへ引き渡した場合には，ソースからの出力を遮断することができる。
【００１１】
潜在リスクは，デバッガインターフェイスを有するシステムにも存在する。デバッガインターフェイスは，一般に，外部のホストコンピュータに，プロセッサユニットによって実施されるプロセス，そのレジスタ内容などを覗くことを保証し，それによってプロセッサユニットの駆動プログラムにおけるエラーを認識して削除すること，あるいはマイクロコントローラシステムに接続されている周辺機器の技術的障害を診断することができるようにするために用いられる。プロセッサユニットがデバッガインターフェイスを介して通信する場合に，アクセスコントロールユニットがソースからの出力を遮断することにより，このデバッガインターフェイスを介してソースの機密データが管理されずに照会されることを防止できる。デバッガインターフェイスを介しての正当なアクセスの場合にも，この遮断が有効であるが，しかしそれは問題にはならない。というのは，権限を有する者であれば，機密データをすでに知っており，その機密データを改めてソースから読み出す必要がないことを，前提とできるからである。
【００１２】
権限のない者に，デバッガインターフェイスを介しての通信と機密データへのアクセスの遮断との間の結合を無効にすることを困難にするために，デバッガインターフェイスとアクセスコントロールユニットは，共通の基板上に集積されていてもよい。
【００１３】
上述した第１の方法と組み合わせることもできる，アクセス保護の他の方法は，アクセスコントロールユニットが，ソースの環境の特性を検出するためのセンサを有しており，かつセンサによって検出された特性が許容できない値を有する場合に，ソースからの出力を遮断するという方法である。
【００１４】
センサによって検出するための種々の環境特性が考えられる。例えば，センサは，特にソースのハウジングの開放状態と閉鎖された状態とを区別するためのセンサ，温度センサ，駆動電圧センサ，あるいは，マイクロコントローラシステムの作業クロックを検出するためのクロック周波数センサなどとすることができる。開放されたハウジングの検出は，明らかに，マイクロコントローラシステムにおいて不当なことがなされたことを示唆している。また，公知であるように，マイクロコントローラシステムの温度が特徴的な駆動温度領域の外部にあることも，システムの個々の誤機能をもたらす可能性があり，それを権限のない者が機密データを知るために利用しようと試みる場合も考えられる。それが永続的であろうと，あるいは短い電圧ピークの形式であろうと，特徴的な領域の外部の駆動電圧を印加することによって，あるいは個々のクロックサイクルを所望に短縮することによっても，誤機能が誘起され，それを機密データの取得のために利用することができる。従って，温度センサ，駆動電圧センサあるいはクロック周波数センサを，システムへのアクセスを検出するために使用することができる。
【００１５】
上記センサによってシステムへのアクセスが検出された場合に，マイクロコントローラシステムがオフにされ，あるいはリセットされるまで，アクセスコントロールユニットはソースからの出力を遮断し続けることができる。アクセスがそれぞれ認識された後に必要な，マイクロコントローラシステムの新規スタートは，攻撃の試みが行われる頻度を著しく減少させる。
【００１６】
ソースは，機密データのためのメモリ回路を有することができる。
【００１７】
このようなシステムの操作安全性は，センサによって検出された特性が許容されない値を有する場合に，機密データを消去する手段をマイクロコントローラシステムに備えることによって，著しく向上させることができる。機密データがこの機密データを消去する手段によって消去されてしまった場合には，マイクロコントローラシステムは，機密データが新たにソースへ入力された場合にのみ，再び駆動することができ，それはその機密データの知識を前提としており，権限のない者には不可能である。
【００１８】
また，ソースは，暗号化されたデータを復号化して，復号化されたデータを機密データとして出力する復号化回路を有することができる。この場合，暗号化されたデータを機密に扱う必要はなく，その内容が探り出しに対して特に保護されていないメモリに暗号化されたデータを格納してもよい。ここでも，アクセスを検出した場合に，復号化に必要なデータを消去するための消去手段を設けることができる。
【発明の効果】
【００１９】
以上説明したように本発明によれば，権限のない者に，その中に含まれている機密データへのアクセスを著しく困難にする，マイクロコントローラシステムが提供される。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照しながら，本発明の好適な実施の形態について詳細に説明する。なお，本明細書及び図面において，実質的に同一の機能構成を有する構成要素については，同一の符号を付することにより重複説明を省略する。
【００２１】
図１に示すマイクロコントローラシステムは，プロセッサユニット１を備えている。プロセッサユニット１は，以下で内部のＲＯＭ２と称する，消去可能なリードオンリーメモリ，アクセスコントロールユニット３，１つまたは複数のセンサ４および消去信号発生器５と共に，コンポーネント１から５を囲む矩形によって象徴される，共通の半導体基板６上に集積されている。プロセッサユニット１は，そのプロセッサユニット１によって実施されるプログラムの中間結果を記憶するための多数のレジスタ（図示せず）を有している。必要な場合には，さらに，中間結果を記憶させるために，以下で内部のＲＡＭ７と称する，ダイレクトアクセスを有するメモリを，基板６上に集積してもよい。
【００２２】
プロセッサユニット１は，内部のＲＯＭ２および場合によっては内部のＲＡＭ７と内部のバスを介して通信する。バスのデータ線およびアドレス線は図ではまとめて符号８で示されている。内部のバスのデータ／アドレス線８は，同様に基板６上に設けられているスイッチ９を介して，外部のバスの対応する導線１０と接続可能である。スイッチ９は，アクセスコントロールユニット３の管理下にある。
【００２３】
外部のバスには，外部のＲＯＭ１１，外部のＲＡＭ１２，デバッガインターフェイス１３，および１つまたは複数の周辺機器インターフェイス１４が接続されている。デバッガインターフェイス１３は，外部のホスト（図示なし）に，外部のメモリ１１，１２の内容と，周辺機器インターフェイス１４を介して接続されている周辺機器の状態または検出結果を照会することを可能にする。この種のデバッガインターフェイスは，特に，デバッガインターフェイス１３を介して照会された情報を用いて，マイクロコントローラシステムまたはそれによって制御される機器の誤機能を診断することができるようにするために，マイクロコントローラシステムが自動車内でエンジン制御装置として使用される場合に，必要である。
【００２４】
通常駆動において，アクセスコントロールユニット３は，プロセッサユニット１の各読取りアクセスにおいて，照会されたアドレスが内部のメモリ２，７の１つに属するのか，あるいは外部のメモリ１１の１つに属するのか，を判断して，前者の場合にはスイッチ９を開放する。スイッチ９が開放されると，内部のメモリから読み出されたデータは外部のバス上では取り出せない。
【００２５】
デバッガインターフェイス１３は，別に図示されているバスの制御線１５を介してプロセッサユニット１と接続されており，その接続線は様々な機能を有することができる。たとえばそれは，インターラプトまたはリセット線とすることができ，それがデバッガインターフェイス１３に，プロセッサユニットのインターラプトまたは新規スタートルーチンを作動させることを可能にする。その際，そのルーチンにおいてこのプロセッサユニット１は，デバッガインターフェイス１３から要請されたデータを外部のバスへ出力するので，デバッガインターフェイス１３がそれをさらに伝達することができる。制御線１５にも内部のバスの導線８にも接続されている，アクセスコントロールユニット３は，同様にデバッガインターフェイス１３のインターラプト信号を受信して，その直後に内部のバスのアドレス線上に現れる，インターラプトまたは新規スタートルーチンのスタートアドレスが，内部のＲＯＭ２のアドレス領域に属するか，を検査する。肯定である場合には，インターラプトまたは新規スタートルーチンが元々マイクロコントローラシステムのメーカーによって設けられていると，見なされる。というのは，内部のＲＯＭ２の内容は，そのＲＯＭがプロセッサユニット１と共に基板６上に集積されていることにより，権限のない者にとって操作が極めて困難であるからである。インターラプトのスタートアドレスが，内部のＲＯＭ２のアドレス領域内にない場合には，アクセスコントロールユニット３はスイッチ９を永続的に開放する。そのため，操作されたインターラプトまたは新規スタートルーチンは，内部のメモリから機密のデータを読むようにプロセッサユニット１を促すことはできるが，このデータは書込み指令によっても外部のバスへ出力することはできない。アクセスコントロールユニット３は，システムがオフにされ，あるいはリセットされた場合に初めて，再びスイッチを閉成する。次に新規スタートが行われる場合に，再び，新規スタートルーチンが内部のメモリ２，７のアドレス領域内にあるか，が調べられて，そうでない場合には，スイッチ９は即座にまた開放される。
【００２６】
別の制御線１５は，その状態が，プロセッサユニット１がバスに関するコントロールを有しているか，またはデバッガインターフェイス１３，コプロセッサあるいはＤＭＡコントローラのような，他の何らかのシステムモジュールがバスに関するコントロールを有しているか，を表す導線とすることもできる。制御線１５上へ該当する信号を出力することによって，デバッガインターフェイス１３は，バスに関するコントロールを自らに引き寄せて，それによって短時間に外部のＲＯＭ１２あるいは周辺機器インターフェイス１４から大規模なデータ量を読み出すことができ，プロセッサユニット１は待機状態に留まる。ここでも，アクセスコントロールユニット３は，いつデバッガインターフェイス１３あるいは，他のモジュールの１つがバス支配権を自らに引き寄せたかを認識して，その後スイッチ９を開放するので，機密データは，プロセッサユニット１のレジスタ，内部のＲＯＭ２または場合によっては内部のＲＡＭ７のいずれからも照会することはできない。
【００２７】
内部のＲＯＭ２に格納される機密データは，たとえば，外部のＲＯＭ１１内に記憶されている復号アルゴリズムと共にプロセッサユニット１に，暗号化された形式で外部のＲＯＭ１１に記憶されている駆動プログラムの一部を復号化して実施することを可能にする，秘密のキーとすることができる。復号化の中間結果は，プロセッサユニット１のレジスタが十分でない場合には内部のＲＡＭ７に記憶される；内部のＲＡＭ７は，復号化されたプログラム指示を，マイクロコントローラシステムが駆動されている間記憶しておくためにも利用することができるので，これらプログラム指示は各システムスタート後それぞれ１回だけ復号化するだけで済む。
【００２８】
センサ４は，第１の形態によれば，たとえば，半導体基板６の表面上で光を透過しない層の下方に取り付けられている，フォトダイオードのような光センサである。権限を持たない者が，半導体基板６上の構造を解明するために，この層（光を透過しない層，ソースを覆うハウジングの一例として構成される。）を除去した場合に，光がセンサ４上へ入射して，アクセスコントロールユニット３がセンサ４から該当する信号を受信する。これが行われた場合に，アクセスコントロールユニット３は，第１の変形例によれば，制御線１５上に，上述の，プロセッサユニット１とは異なるモジュールのバスに関する支配を表示する信号を出力して，スイッチ９を開放する。プロセッサユニット１は，この信号によって待機状態へ移行され，もはやバスへアクセスすることはできず，内部のメモリ２，７から機密の内容を読み出すことはできない，従ってこの内容は場合によっては解放されている内部のバスからも検出することはできない。この状態は，マイクロコントローラシステム全体がオフにされるまで，維持される。
【００２９】
第２の変形例によれば，上述したように消去信号発生器５が設けられている場合，アクセスコントロールユニット３はセンサ４から光の入射を示す信号を受信した場合に，消去信号発生器５を駆動する。消去信号発生器５は，たとえば電圧変換器として形成することができ，その電圧変換器は，アクセスコントロールユニット３によって駆動された場合に，半導体基板６に印加されている駆動電圧を，内部のＲＯＭ２の電気的書込みまたは消去に十分な，より高い電圧に変換して，それを内部のＲＯＭ２へ，その内部のＲＯＭ２の記憶内容を消去するために供給する。従ってセンサ４を介して検出された，権限のない者の攻撃は，内部のＲＯＭ２内の機密データの即時の破棄をもたらす。従って，このデータが探り出される危険が，完全に除去される。
【００３０】
同じ効果を得るために，光センサの代わりに，様々なタイプの他のセンサを使用することができ，異なるタイプの複数のセンサ４を組み合わせて使用することもできる。可能な代替案として，たとえば，半導体基板上の構造を覆って，外部に対して電磁的にシールドする金属化層（ソースを覆うハウジングの他の一例として構成される。）の存在または不在に反応する，容量性のセンサを挙げることができる。権限のない者は，半導体基板６上に集積されている回路を直接測定しようとする場合に，その金属化層を除去しなければならない。また，半導体基板６の温度が，予め定められた許容される駆動領域の外部にあるか，を表示する温度センサも挙げることができる。温度が駆動領域の外部にある場合には，それは，権限のない者が過熱または過冷によってマイクロコントローラシステムの誤機能をもたらそうとしており，その結果，場合によっては気密データがバス上に現れ，読み出される可能性があることを，示唆する。同じ目的のために，駆動電圧センサを用いることができ，それは，半導体基板６の供給電圧が予め定められた許容される領域の外部にあるか，あるいはその供給電圧が，システムの機能を損なう可能性のある電圧ピークを有しているか，を示す。また，クロックセンサを用いることもできる。クロックセンサは，基板６へ外部から供給されるクロック信号を，基板自体から内部で発生されるものと比較して，外部のクロック信号と内部のクロック信号の間の位相差の突然の変化を用いて，権限のない者により故意に短縮されたクロック，いわゆるグリッチを認識する。
【００３１】
図２に示す形態は，図１に示すものとは，２つの点で異なっている。その１つは，バスシステムの構造である。統一的なアドレスバス１６が，プロセッサユニット１を内部のメモリ２，７とも，外部のメモリ１１，１２，デバッガインターフェイス１３および周辺機器インターフェイス１４とも接続している。それに対してデータバスは，プロセッサユニット１と内部のメモリ２，７との間の内部のデータバス１７と，プロセッサユニット１とコンポーネント１１，１２，１３，１４との間の外部のデータバス１８とに分割されている。分割されることによって，機密データは内部のメモリ２，７から直接外部のデータバス１８へ達することはできない。これがプロセッサユニット１に，外部のＲＯＭ１１に暗号化された形式で格納されている駆動プログラムを内部のＲＯＭ２に記憶されているアルゴリズムを用いて復号化し，復号化されたプログラムを内部のＲＡＭ７へ記憶させて，次のプログラムの指示を内部のデータバス１７を介して読み出して実施することを可能にし，これを基板６の外部で一緒にたどることはできない。
【００３２】
プロセッサユニット１を促して，機密データをそのレジスタへロードして，次に外部のデータバス１８へ出力させようとする，スパイルーチンによって，機密データを内部のメモリ２，７から外部のバスへ間接的に出力することも，ここでは排除されている。外部のＲＯＭ１１内の駆動プログラムは暗号化されているので，権限のない者はこの種のルーチンを暗号化しないで外部のＲＯＭ１１内へ入力することができない。権限のない者は，まず暗号化アルゴリズムとキーを探し出さなければならないが，この機密の情報が内部のメモリ２，７内にあることによって，それを阻止されている。
【００３３】
プロセッサユニット１に，この種のスパイルーチンを実施させようとする可能性は，さらに，プロセッサユニット１がアクセスするインターラプトおよびリセットアドレスのテーブルを変更して，その後プロセッサユニット１に，インターラプトまたはリセットを用いて，インターラプトまたはリセットルーチンを直接外部のＲＯＭ１１から読んで実施するようにさせることにある。しかしこれは，本発明によってアクセスコントロールユニット３が，図１の例におけるように，各リセットまたはインターラプトにおいて該当するルーチンのスタートアドレスをアドレスバス１６から読み出して，スタートアドレスが内部のＲＯＭ２のアドレス領域内にない場合には，制御線１５を介してプロセッサユニット１からバス支配を取り上げることにより，阻止している。従って，外部のＲＯＭ１１からの暗号化されていないルーチンは，実施できない。
【００３４】
図１に示したマイクロコントローラシステムと図２に示したマイクロコントローラシステムとの他の違いは，後者内ではデバッガインターフェイス１３も半導体基板６上に集積されていることにある。従って権限のない者にとっては，デバッガインターフェイス１３と基板６上に集積されている他のコンポーネントとの間の通信に影響を与えることは，極めて困難である。
【００３５】
図３の形態は，上述したマイクロコントローラシステムとは，外部のＲＯＭ１１内の駆動プログラムの復号化が，プロセッサユニット１によって実施されるのではなく，回路的にプロセッサユニット１から分離された，基板６上の暗号ユニット１９によって実施される点が異なっている。暗号ユニット１９は，特に使用される暗号化アルゴリズムに適合された回路を有しており，その回路は，プロセッサユニット１のための駆動プログラムの復号化を，プロセッサユニット自体がそれを実施するよりもずっと迅速に，場合によっては特に，プログラムユニット１が駆動プログラムの指示を実施するのと同じ速度で，実施することができる。内部のＲＯＭ２は，暗号ユニット１９により駆動プログラムを復号化するために使用されるキーを有している。その内部のＲＯＭは，プロセッサユニットによって読む必要はないので，マイクロコントローラシステムのバスとは接続されておらず，従ってデバッガインターフェイス１３によっても，プロセッサユニット１によっても読むことはできない。
【００３６】
内部のＲＯＭ２は，さらに，プロセッサユニット１の駆動プログラムが暗号化されてその中に記憶されている，外部のＲＡＭ１２のアドレス領域の境界を有している。プロセッサユニット１が，このメモリ領域内のアドレスを読み込んでして，該当するメモリアドレスの暗号化された内容が外部のデータバス１８上に現れた場合に，その内容は暗号ユニット１９によって受信されて，復号化されて，内部のデータバス１７を介してプロセッサユニット１へ提供される。暗号化された領域の外部のアドレス，たとえば外部のＲＡＭ１２内のアドレスは，プロセッサユニット１が，直接外部のデータバス１８を介してアドレスして，読む。
【００３７】
アドレスバスと接続されたアクセスコントロールユニット３は，それぞれバスの制御線上で伝達されるリセットまたはインターラプト信号に従って，リセットまたはインターラプトへの反応としてプロセッサユニット１によって始動されるルーチンのアドレスを検出する。アクセスコントロールユニットは，そのアドレスが外部のＲＯＭ１１の暗号化された領域の外部にあり，従ってプロセッサユニット１によって前もって復号化することなしに評価でき，従って場合によっては権限のない者が所望に変更できるデータを含んでいること認識した場合に，アクセスコントロールユニットは制御線１５を介してプロセッサユニット１からバス支配を奪って，それによってシステムをブロックする。従って暗号ユニット１９は，復合化すべきデータをもはや受信せず，復号化された他のデータを出力することもできない。
【００３８】
以上，添付図面を参照しながら本発明の好適な実施形態について説明したが，本発明は係る例に限定されないことは言うまでもない。当業者であれば，特許請求の範囲に記載された範疇内において，各種の変更例または修正例に想到し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【００３９】
【図１】本発明の第１の実施形態に基づくマイクロコントローラシステムのブロック図である。
【図２】本発明の第２の実施形態に基づくマイクロコントローラシステムのブロック図である。
【図３】本発明の第３の実施形態に基づくブロック図である。
【符号の説明】
【００４０】
１      プロセッサユニット
２      内部のＲＯＭ
３      アクセスコントロールユニット
４      センサ
５      消去信号発生器
６      半導体基板
７      内部のＲＡＭ
８      データ／アドレスバス
９      スイッチ
１０      導線
１１      外部のＲＯＭ
１２      外部のＲＡＭ
１３      デバッガインターフェイス
１４      周辺機器インターフェイス
１５      制御線
１６      アドレスバス
１７      内部のデータバス
１８      外部のデータバス
【図１】
2006155620.tif 000003
【図２】
2006155620.tif 000004
【図３】
2006155620.tif 000005