(57)【特許請求の範囲】
【請求項１】
マイクロプロセッサシステムであって、
中央処理ユニット（１）と、
さらなるユニット（２、３）と、
メモリユニット（５）と、
データを交換するために、該中央処理ユニット（１）と該さらなるユニット（２、３）と該メモリ（５）とを互いに接続するバス（６）と、
該ユニット（１、２、３、５）に関連するそれぞれの第１の暗号化ユニット（１２、３２、５２）であって、該それぞれの第１の暗号化ユニット（１２、３２、５２）は、該バス（６）と該関連するユニット（１、２、３、５）との間に接続され、かつ、キーを提供する手段（１０、５０）と、該バス（６）と該関連するユニット（１、２、３、５）との間で接続された組み合わせ論理素子（１１、５１）とを含み、該キーが該ユニットに対して同じであり、かつ、変更可能である、それぞれの第１の暗号化ユニット（１２、３２、５２）と、
該メモリユニット（５）に関連する第２の暗号化ユニット（５３）であって、さらなるキーを提供する手段（５４）と、該関連する第１の暗号化ユニット（５２）のための該キーを提供する該手段（５０）と該関連する第１の暗号化ユニット（５２）ための該組み合わせ論理素子（５１）との間に接続された組み合わせ論理素子（５５）とを含む第２の暗号化ユニット（５３）と
を備え、
該組み合わせ論理素子（５１）において該バス（６）から受信されるデータを復号化し、再び暗号化することを目的として、該組み合わせ論理素子（５５）は、該第２の暗号化ユニット（５３）のためのさらなるキーを提供する該手段（５４）によって提供される該さらなるキーと、該それぞれの第１の暗号化ユニット（５２）のためのキーを提供する該手段（５０）によって提供される該キーとを組み合わせ、
該バス（６）から受信され、該メモリユニット（５）に送信されるべきデータは、該キーを用いて復号化され、該さらなるキーを用いて再び暗号化され、
該メモリユニット（５）から受信され、該バス（６）に送信されるべきデータは、該さらなるキーを用いて復号化され、該キーを用いて再び暗号化される、マイクロプロセッサシステム。
【請求項２】
キーのためのジェネレータ（６１）が提供され、前記第１の暗号化ユニット（１２、３２、５２）のための前記キーを提供する前記手段（１０、５０）は、それぞれのレジスタ（１０、５０）を備え、該それぞれのレジスタ（１０、５０）の出力は、前記それぞれの組み合わせ論理素子（１１、５１）に接続され、該それぞれのレジスタ（１０、５０）の入力側は、該キーのための該ジェネレータ（６１）に接続されることを特徴とする、請求項１に記載のマイクロプロセッサシステム。
【請求項３】
前記ジェネレータ（６１）が、２進数をランダムに生成し得るランダム数ジェネレータであることを特徴とする、請求項１または２に記載のマイクロプロセッサシステム。
【請求項４】
前記レジスタ（１０、５０）が、共通のクロックジェネレータ（６２）によって制御され得ることを特徴とする、請求項３に記載のマイクロプロセッサシステム。
【請求項５】
前記第２の暗号化ユニット（５３）ための前記さらなるキーを提供する前記手段（５４）が、レジスタ（５４）を備え、該レジスタの（５４）の入力がさらなるキーのための第２のジェネレータ（６３）に接続され、該第２の暗号化ユニット（５３）のための前記組み合わせ論理素子（５５）は、該組み合わせ論理素子（５５）の入力によって該第２の暗号化ユニットに対する該レジスタ（５４）の出力と、前記関連する第１の暗号化ユニット（５２）に対する前記レジスタ（５０）とに接続され、該組み合わせ論理素子（５５）の出力によって該関連する第１の暗号化ユニット（５２）に対する前記組み合わせ論理ユニット（５１）の入力に接続されることを特徴とする、請求項１〜４のいずれか一項に記載のマイクロプロセッサシステム。
【請求項６】
前記組み合わせの論理ユニット（１１、５１、５５）が、排他的論理和ゲートであることを特徴とする、請求項１〜５のいずれか一項に記載のマイクロプロセッサシステム。
【請求項７】
前記メモリユニット（５）が、揮発性メモリの形式であることを特徴とする、請求項１〜６のいずれか一項に記載のマイクロプロセッサシステム。
【請求項８】
前記メモリユニット（５）が有効なメモリコンテンツを有さない場合に新しいキーを生成し得るように、さらなるキーための前記第２のジェネレータ（６３）が制御され得ることを特徴とする、請求項１〜７のいずれか一項に記載のマイクロプロセッサシステム。
【請求項９】
前記メモリユニット（５）が初期化された後で、前記第２のジェネレータ（６３）は、前記新しいキーを生成し得ることを特徴とする、請求項８に記載のマイクロプロセッサシステム。
【請求項１０】
さらなるメモリ（２）が提供され、前記メモリユニット（５）が、該さらなるメモリ（２）のためのデータをバッファに入れ得るキャッシュであることを特徴とする、請求項１〜９のいずれか一項に記載のマイクロプロセッサシステム。
【発明の詳細な説明】
【０００１】
本発明は、中央処理ユニット、さらなるユニット、およびメモリユニットがバスを介して互いに接続され、復号化が実行されるマイクロプロセッサ構成に関する。
【０００２】
このようなマイクロプロセッサ構成は、安全性に関して重要なアプリケーション（例えば、チップカード）において使用される。この構成は、単一の半導体チップ（「マイクロコントローラ」）上に一体化される。バスは、全てのデータトラフィックを処理する。例えば、バスは、データ、アドレス、プログラムコマンド、制御コマンドなどを転送する。実行されるべきプログラムは、不揮発性メモリ（ＲＯＭ）内に格納され、データは、不揮発性メモリ内に同様に格納され得るか、または、揮発性メモリ（ＲＡＭ）内に一時的に格納され得る。これらのメモリへのアクセス時間が長いため、処理されるべきデータは、より速いキャッシュ内でバッファに入れられる。
【０００３】
マイクロプロセッサまたはマイクロコントローラ上の全てのメモリおよびバスは、チップ上の簡単に識別可能な規則的な構造である。従って、これらは、安全性に関するデータおよび機能を密かに観察（ｃｏｖｅｒｔｌｙ  ｏｂｓｅｒｖｅ）するために、チップ内蔵回路または動作サイクルをタップオフ（ｔａｐ  ｏｆｆ）する試みが行われる際の好適なアタックポイント（ｐｏｉｎｔ  ｏｆ  ａｔｔａｃｋ）を表す。重要な構造の上にニードルを位置付けることにより信号プロフィールをタップオフすることを含む任意のアタックが、プロービングすることにより行われ得る。
【０００４】
従って、従来のマイクロプロセッサまたはマイクロコントローラにおいて、メモリ内に格納されたデータは、複雑な暗号化を用いてスクランブルされる。読み出しは、対応するレベルの計算の複雑さを必要とする。データは、その後、概して暗号化されていない形式でマイクロプロセッサの種々の機能ユニットに転送かつ供給される。バスにニードルアタック（ｎｅｅｄｌｅ  ａｔｔａｃｋ）が行われると、全てのデータは、従って、プレーンテキストとしてリクエストされ得る。中央処理ユニット（ＣＰＵ）からおよび中央処理ユニット（ＣＰＵ）へのデータトラフィック、周辺ユニットまたは算術および論理ユニット（ＡＬＵ）、あるいはキャッシュの比較的複雑な暗号化および復号化は推奨されない。なぜならば、これにより、これらのユニットへのアクセス速度が著しく減少されるからである。
【０００５】
本発明の目的は、内部サイクルの密かな観察に対してより高いレベルの安全性を有するマイクロプロセッサ構成を特定することである。
【０００６】
この目的は、以下を含むマイクロプロセッサ構成によって達成される：中央処理ユニット；さらなるユニット；メモリユニット；データを交換するために、中央処理ユニット、さらなるユニット、およびメモリを互いに接続させるバス；ユニットに関連し、バスおよび関連するユニットの間で接続され、ユニットに関して同じであり変更可能なキーと、バスおよび関連するユニットの間で接続された組み合わせ論理素子とを提供する手段を含む第１の暗号化ユニットのそれぞれ；メモリユニットに関連し、さらなるキーを提供する手段を含み、関連する第１の暗号化ユニットにキーを提供する手段と、関連する第１の暗号化ユニットに関する組み合わせ論理素子との間で接続される組み合わせ論理素子も含む第２の暗号化ユニット。
【０００７】
本発明によるマイクロプロセッサ構成において、バスに接続された各機能ユニットは、比較的簡単なデザインの暗号化ユニットが提供される。これは、キー（例えば、レジスタ）を提供する手段を含み、組み合わせ論理素子（例えば、排他的論理和ゲート）を提供する手段も含む。暗号化ユニットは、機能ユニットによってバスに出力されるデータアイテムを暗号化すること、および、受信されるデータアイテムを復号化することの両方が可能である。暗号化ユニットは簡単なデザインであり、従って、結果として、データ転送中に著しく遅れることはない。
【０００８】
便宜上、レジスタ内に格納されるキーは時々変えられる。キーは、全ての操作クロックサイクルに関して好適に更新される。その結果、機能ユニットによってバスに出力され、暗号化されるデータ値は、キーが変えられると、別の機能ユニットによって再び復号化され得る。各機能ユニットに関するキーレジスタは、関連の読み書き操作のために同じキーを含む必要がある。このため、キーは、便宜上、クロックと同期して全てのキーレジスタに同じキーを転送するキージェネレータによって生成される。好適には、キーは、ランダム制御の下で生成される。任意の遅延時間をほとんど必要としない暗号化および復号化が簡単であるにも関わらず、種々のキーワードのランダムな供給は、タップオフおよびデータトラフィックの密かな観察に対して適切な安全性を提供する。
【０００９】
バスに接続されたメモリ（例えば、キャッシュ、バッファ、またはトランスレーションルックアサイドバッファ）が、情報をプレーンテキストとして格納することを防ぐために、追加の暗号化および復号化が必要である。このため、さらなる暗号化ユニットが提供され、このさらなる暗号化ユニットも、キーを提供する手段（例えば、さらなるキーレジスタ）と、組み合わせ論理素子（例えば、排他的論理和ゲート）を含む。基本的な局面は、さらなる暗号化ユニットに関する組み合わせ論理素子が、第１の暗号化ユニットに関する組み合わせ論理素子と、後者のキーレジスタとの間に構成されることである。これは、全てのバスセクション、特に、バスおよびメモリの間に構成される第１の暗号化ユニットに関する組み合わせ論理素子とメモリとの間にあるバスセクションが、暗号化されたデータのみを保有するという利点を有する。
【００１０】
第２の暗号化ユニットに関するキーレジスタは、さらなるキージェネレータによって送り込まれる。便宜上、このキーも時々変えられる。この場合、暗号化された形式でメモリ内でバッファに入れられたデータが、同じキーを用いて再び読み出されることを確認することが必要である。このキーレジスタに関するキーは、従って、メモリが任意の有効な情報をもはや含まなくなった場合にのみ更新される。これは、例えば、メモリが完全に空である、または、メモリが再び初期化される場合である。これは、例えば、マイクロプロセッサ構成がアプリケーションを終了し、新しいアプリケーションを開始する場合に行われる。このようなアプリケーションの変更が行われると、安全性のためにメモリコンテンツを変えることはもはや必要でない。なぜならば、キーを変えることは、新しいアプリケーションが、メモリ内にまだ保持されているデータコンテンツを使用することがいずれにしてももはや不可能であることを意味するからである。
【００１１】
本発明のある改良において、暗号化ユニットは、バスに接続された各機能ユニットに関して、排他的論理和ゲートおよび関連するキーレジスタしか含まない。回路の複雑さは比較的低い。キージェネレータはそれぞれ、簡単な形式でのみ提供される必要がある。追加の計算上の複雑さは、データトラフィックの密かな観察に対して得られた安全性と比べて比較的低い。
【００１２】
本発明は、図面に示される例示的な実施形態を参照して、下記により詳細に説明される。
【００１３】
図面に示される図は、本発明による、安全性アプリケーションに関するマイクロコントローラのブロック図を示す。マイクロコントローラは、多数の構成要素を含む：データトラフィックの制御を行う中央処理ユニット（ＣＰＵ）１；実行されるべきデータおよびプログラムを永久的に格納するメモリ２；マイクロコントローラの外側に構成された外部回路にデータトラフィックを実施する周辺ユニット３；データをバッファに入れるバッファ５。太字体で示される接続は、複数のラインを含む。
【００１４】
不揮発性メモリ２は、比較的長いキーの長さを有する非常に良好な暗号化を実行する復号化ユニット２１を含む。しかし、復号化は、比較的長い計算時間を必要とし、それに対応して、回路が複雑である。メモリ２から読み出されるべきデータは、従って、より速くアクセスされ得るメモリ５内で一時的にバッファに入れられる。メモリ５は「キャッシュ」である。上記の機能ユニットは、多数のデータおよび制御ラインを含むバス６によって、互いに接続される。
【００１５】
バス６と機能ユニットのそれぞれとの間には、例えば、ユニット１２、３２、および５２などの暗号化ユニットが構成される。暗号化ユニットは、機能ユニットによってバス６に出力されるデータトラフィックを暗号化し、受信されるデータトラフィックを復号化する。
【００１６】
機能ユニット１、２、および３に関する暗号化ユニットは、同一のデザインである。例えば、ＣＰＵ１に関連する暗号化ユニット１２は、キーワードを格納するキーレジスタ１０を含む。排他的論理和ゲート１１は、ＣＰＵ１とバス６との間のデータパスにおいて接続される。さらに、ゲート１１はまた、キーレジスタ１０からキーＫ１を供給する。バス６から受信されたデータ値をキーワードＫ１と論理的に組み合わせることにより、暗号化された形式でバス６から受信されたデータアイテムＴ１は、プレーンテキストＴに変換される。排他的論理和ゲートからＣＵＰ１へのラインは、概して、簡単にタップされ得ない。なぜならば、ＣＵＰ１が不規則な構造を有するからである。ＣＵＰ１がデータ値Ｔをバス６に出力する場合、このプレーンテキストデータ値は、排他的論理和ゲート１１において、キーレジスタ１０によって提供されるキーと論理的に組み合わせられ、データ値Ｔ１としてバスに提供される。別のユニット、例えば、周辺ユニット３は、暗号化されたデータアイテムＴ１を受信し、相補的な形式で復号化する。
【００１７】
ユニット１２における復号化に使用されるキーＫ１は、周期的に変えられる。キーは、キーワードをランダムに生成するキージェネレータ６１によって提供される。クロックジェネレータ６２によって提供される全てのクロックサイクルによって、キーワードＫ１が変えられる。ＣＰＵ１の上流に出力されるデータ値を暗号化するために使用されるキーＫ１が、同様に、同じデータ値を復号化するため他の暗号化ユニットにおいて利用可能であることは基本である。このため、それぞれの機能ユニットに関連する全てのキーレジスタは、ランダム数ジェネレータ６１およびクロックジェネレータ６２に並列に接続される。結果として、例えば、ＣＰＵ１によって送達されるデータ値Ｔは、暗号化された形式のデータ値Ｔ１としてバスに出力され、周辺ユニット３上で同じキーＫ１を使用して復号化され、プレーンテキストの同じデータ値Ｔとして提供される。キーのランダムに制御された更新は、バスを介して転送されるデータアイテムを復号化しようとする試みに対して高いレベルの安全性を達成する。
【００１８】
キャッシュ５の上流には、暗号化ユニット１２および３２に対応する暗号化ユニット５２が接続される。暗号化ユニット５２は、クロックジェネレータ６２およびランダム数ジェネレータ６１に同じ方法で接続されたキーレジスタ５０、ならびに、バス６とキャッシュ５との間のデータパスにおいて接続された排他的論理和ゲート５１を含む。他の手段がない場合、ゲート５１とキャッシュ５との間を流れるデータトラフィックは、プレーンテキストとして利用可能である。さらに、このデータは、キャッシュ５内にプレーンテキストとして格納される。
【００１９】
キャッシュ５内に格納されたデータに関して追加の暗号化を提供するために、さらなる暗号化ユニット５３が提供されて、このさらなる暗号化ユニット５３は、暗号化ユニット５２と組み合わされて、暗号化ユニット５２によって復号化されたデータを、キーＫ１を使用して再び暗号化する。さらなる暗号化ユニット５３は、キーレジスタ５４および排他的論理和ゲート５５を含む。排他的論理和ゲート５５は、キーレジスタ５０と排他的論理和ゲート５１との間で接続される。排他的論理和ゲート５５は、レジスタ５０および５４からのキーを互いに論理的に組み合わせる。この効果は、排他的論理和ゲート５１によってキャッシュ５に送達されるデータストリームＴ２が暗号化された形式であることである。
【００２０】
従って、キャッシュ５から読み出されるデータＴ２は、キーレジスタ５４内に格納されたキーワードＫ２を使用して再び復号化されて、キーレジスタ５０内に格納された現在の変更可能なキーＫ１を使用して、データバス６への出力に関して暗号化される。
【００２１】
キャッシュ５が、さらなる処理のためにバスに再び読み出される必要のある有効なデータを格納すると、キーレジスタ５４によって提供されるキーワードＫ２は、同じであり続ける必要がある。キーワードＫ２は、さらなるキージェネレータ６３によって生成される。便宜上、キャッシュ５が任意の有効なデータをもはや含まない場合、キーＫ２が変えられる。キーがランダムパターンに基づいて再び更新されて、その結果、メモリ内に格納され、ゲート５１とメモリ５との間のバスセクションを介して転送されるデータの解読に対して十分な安全性が確保される。
【００２２】
キャッシュフラッシュに基づいてキャッシュ５が空になった場合、キーＫ２を変えることが推奨される。このような操作は、例えば、マイクロプロセッサ構成によって処理されるアプリケーションが変わると実行される。キャッシュフラッシュによって、キャッシュ内の全てのデータ値は、所定の値にリセットされる。原則として、メモリコンテンツのリセットを省くことも可能である。なぜならば、キーが変えられると、メモリコンテンツは、いずれにせよ、もはや復号化され得ないからである。
【００２３】
本発明によって達成される効果は、バス６を介して流れる全てのデータトラフィックと、バッファ内でバッファに入れられるデータとが、常に暗号化された形式であり、プレーンテキストとして利用可能でないことである。排他的論理和ゲートの使用は、わずかな回路および計算の複雑さを必要とする対称的な暗号化および復号化方法を使用することを可能にする。キーの長さは、バス内のラインの数に適応される。全てのラインまたはラインのいくつかだけが暗号化されることが可能である。キーレジスタは、次いで、対応してより小さくなる。全てのラインに関して、１ビットのキーワードが使用される。バスラインによって、バスのデータラインとステータスおよび制御ラインとの両方が暗号化され得る。原則として、上記の手段を適切に使用することにより、マイクロプロセッサ構成内の単一の安全性に関連する信号ライン、または、他の回路を暗号化することも可能である。キージェネレータ６１および６３に関するランダムソースとして、物理的ソースが特に適切である。安全性の要件がより少ない場合、キーはまた、擬似ランダム数ジェネレータによって生成され得る。キージェネレータは、線形フィードバックシフトレジスタ（ＬＦＳＲ）の形式であり得る。キーは、バス６に関する全てのクロックサイクルを有するクロックジェネレータ６２によって更新され得るか、または、特定の数のクロックサイクルが経過するまで更新され得ない。パラメータの適切な選択は、所望の度合いの安全性を設定する。
【図面の簡単な説明】
【図１】  図１は、本発明による、安全性アプリケーションに関するマイクロコントローラのブロック図を示す。
0003848573.tif 000002