(57)【特許請求の範囲】
【請求項１】
マイクロプロセッサ装置であって、
中央処理装置（１）およびバス（４）を介して互いに接続される少なくとも１つの周辺ユニット（２、３）と、
該周辺ユニット（２、３）において配置され、該バス（４）に接続された第１の暗号ユニット（２１、３１）であって、該中央処理装置（１）によって送信された該バス（４）上のデータを暗号化する、または、該中央処理装置（１）に送信された該バス（４）上の暗号化されたデータを復号化する第１の暗号ユニット（２１、３１）と、
該中央処理装置（１）において配置され、該バス（４）に接続された第２の暗号ユニット（１１）であって、該中央処理装置（１）によって送信された該バス（４）上の該暗号化されたデータを復号化する、または、該中央処理装置（１）に送信された該バス（４）上の該データを暗号化する第２の暗号ユニット（１１）と、
クロック信号を供給する接続であって、該第１の暗号ユニット（２１、３１）および該第２の暗号ユニット（１１）に結合されており、該クロック信号を該第１の暗号ユニット（２１、３１）および該第２の暗号ユニット（１１）のそれぞれに提供する、接続と、
一連のランダム値を生成する乱数発生器（６）であって、該第１の暗号ユニットおよび該第２の暗号ユニット（２１、３１；１１）に該一連のランダム値を供給するために該第１の暗号ユニットおよび該第２の暗号ユニット（２１、３１；１１）に結合された乱数発生器（６）と
を備え、
該第１の暗号ユニットおよび該第２の暗号ユニット（２１、３１；１１）の暗号動作は、該乱数発生器（６）によって生成された該一連のランダム値および該クロック信号に基づいて制御されて、該第１の暗号ユニットおよび該第２の暗号ユニット（２１、３１；１１）に該一連のランダム値がクロック同期的に供給され、
該同一のクロック信号と該同一の一連のランダム値とが該第１の暗号ユニットおよび該第２の暗号ユニット（２１、３１；１１）に供給され、該一連のランダム値からの同一の乱数をクロック同期的に用いて、該第１の暗号ユニット（２１、３１）がデータを暗号化し、または、暗号化されたデータを復号化し、該第２の暗号ユニット（１１）が暗号化されたデータを復号化し、または、データを暗号化するように、該第１の暗号ユニットおよび該第２の暗号ユニット（２１、３１；１１）のそれぞれは、該クロック信号と該一連のランダム値とを用いる、マイクロプロセッサ装置。
【請求項２】
前記第１の暗号ユニットおよび前記第２の暗号ユニット（２１、３１；１１）は、動作中に、暗号化デバイスおよび関連付けられた復号化デバイスを含む１対を形成することを特徴とする、請求項１に記載のマイクロプロセッサ装置。
【請求項３】
前記暗号ユニット（１１、２１、３１）の１つは、
フィードバックを有するシフトレジスタ（１１６）であって、前記乱数発生器（６）によって生成される前記データ値が供給され得るフィードバックを有するシフトレジスタ（１１６）と、
それぞれの組み合わせ論理素子（１１２、１１３、１１４、１１５）を有する多数のデータ信号経路であって、該それぞれの組み合わせ論理素子（１１２、１１３、１１４、１１５）の入力側が該信号経路および該フィードバックを有するシフトレジスタ（１１６）の出力側に接続され、該それぞれの組み合わせ論理素子（１１２、１１３、１１４、１１５）の出力側に該信号経路のうちの１つと接続される、多数のデータ信号経路と
を備えることを特徴とする、請求項１または２に記載のマイクロクプロセッサ装置。
【請求項４】
前記シフトレジスタ（１１６）は、線形的なフィードバックを有することを特徴とする、請求項３に記載のマイクロプロセッサ装置。
【請求項５】
集積回路として前記中央処理装置（１）および前記周辺ユニット（２、３）のモノリシック集積であることを特徴とする、請求項１〜４のいずれか一項に記載のマイクロプロセッサ装置。
【請求項６】
前記周辺ユニット（２）はメモリセルアレイを備えることを特徴とする、請求項１〜５のいずれか一項に記載のマイクロプロセッサ装置。
【請求項７】
移動データ媒体における装置であることを特徴とする、請求項１〜６のいずれか一項に記載のマイクロプロセッサ装置。
【発明の詳細な説明】
【０００１】
本発明は、データバスを介して互いに接続されたマイクロプロセッサおよび周辺ユニットを有するマイクロプロセッサ装置に関する。バスの終端において、暗号ユニットが提供される。
【０００２】
データバスを介して流れるデータトラフィックが暗号法を用いて（ｋｒｙｐｔｏｇｒａｐｈｉｓｃｈ）暗号化されるマイクロプロセッサ装置は、セキュリティが重視される（Ｓｉｃｈｅｒｈｅｉｔｓｋｒｉｔｉｓｃｈ）用途に用いられる。例えば、このようなマイクロプロセッサ装置は、チップカードと呼ばれる移動データ媒体カードの制御回路として利用される。マイクロプロセッサの構造のデータメモリにおいて、個人データ、金銭価値またはアクセス認証が格納される。これらのデータは読出し装置によって読出され、この読出し装置は、次に、非認証アクセスから守られた機能ユニットを作動させる。
【０００３】
マイクロプロセッサ装置内のデータトラフィックは、非認証アクセスが可能であることが許されない秘密のデータを含むので、適切な保護措置を必要とする。装置のデータメモリの非認証の読出し、または装置内部のデータトラフィックのモニタリングはプロービングによって行なわれる。プロービングの際、対応する回路部分およびライン上に細い針が配置され、処理された信号フローが動作中に取出される。バスラインの作動は、比較的大きい寄生容量が原因で、回路が必要とする消費電力量が大きい。バスアクセスは特徴的な電流プロファイルを示すので、外部から可視である。このプロファイルから回路内の動作工程が逆推理され得、場合によっては、暗号ユニットのキーを突きとめることさえ可能である。
【０００４】
チップカード用のマイクロコントローラにおけるデータメモリの内容が非認証で読出されることに対する保護対策は、ＤＥ第１９６  ４２  ５６０  Ａ１号において記載される。セキュリティに関するデータはデータメモリにおいて暗号化されてファイルされる。メモリとＣＰＵとの間のデータ経路において復号化デバイスが接続され、復号されたオリジナルデータがＣＰＵにおいて処理され得る。データをメモリに再書込みする（ｚｕｒｕｅｃｋｓｃｈｒｅｉｂｅｎ）際、データは再び暗号化される。実施形態の１変形において、暗号化および復号化が２段階で実行される。従って、メモリ側にそれぞれ１つの暗号化ユニットおよび復号ユニット、およびＣＰＵ側に各周辺ユニットが構成される。
【０００５】
問題は、実施形態の１変形によっては、バス上のデータトラフィックが完全に復号化されるかまたは部分的に復号化されることである。バスを介して流れるデータトラフィックは、プロービングによって比較的容易にモニタリングされ得る。非認証データの取出しから効果的に守るために、さらなる、例えば、機械的措置が必要とされる。
【０００６】
本発明の課題は、チップ内部の動作が非認証でモニタリングされることに対するセキュリティが強化されたマイクロプロセッサ装置を提供することである。
【０００７】
本発明によると、この課題はマイクロプロセッサ装置によって解決される。この装置は、中央処理装置およびデータバスを介して互いに接続された少なくとも１つの周辺ユニット、周辺ユニット内に構成されデータバスに接続された第１の暗号ユニット（ｋｒｙｐｔｏｇｒａｐｈｉｓｈｃ  Ｅｉｎｈｅｉｔ）、中央処理装置内に構成されデータバスに接続される第２の暗号ユニット、およびデータ値を提供するために第１の暗号ユニットおよび第２の暗号ユニットと結合された、連続したデータ値を生成する乱数発生器を含み、第１の暗号ユニットおよび第２の暗号法ユニットの暗号動作は乱数発生器によって生成されたデータ値に依存して制御され得る。
【０００８】
本発明において、マイクロプロセッサ装置の機能ユニットからデータバスに出力されたデータトラフィックが暗号化され、受信ユニットへの入力において再び復号化される。暗号化動作および復号化動作は乱数発生器によって制御されるので、暗号化法／復号化法の各動作状態についての決定的な予測はできない。この結果、データバスを介して扱われるデータトラフィックのセキュリティは強化される。従って、通常ならば追加的に必要とされる、針による攻撃からバスラインを守る機械的措置はもはや必要でない。暗号化法／復号化法のランダム制御（Ｚｕｆａｌｌｓｓｔｅｕｅｒｕｎｇ）によって、対応してランダムな電流プロファイルが生成されるので、この方法で、データトラフィックを、バスを介してモニタリングすることは不可能である。
【０００９】
本発明は、基本的に、メモリを含む周辺ユニットを有する中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ−ＣＰＵ）がデータおよびアドレスを、バスを介して交換する、すべてのマイクロプロセッサシステムにおいて適用可能である。装置は、単一の半導体チップ、いわゆるマイクロコントローラにおいて個別設計およびモノリシックに集積された装置であり得る。
【００１０】
目的に合わせて、暗号化／復号化を制御するための乱数は、各ユニットにクロック同期的に供給される。これに加えて、すべての暗号化ユニット／復号化ユニットを互いに接続するクロックラインが提供される。さらに、これらのユニットは、乱数が転送されるラインによって互いに接続される。セキュリティを強化するために、機械的遮蔽措置によって上述の２つのラインを針の攻撃から守ることが好ましい。しかしながら、バスの他の複数のデータラインに対する対応する保護は免除される。
【００１１】
キーに関するランダム値をバスおよび制御ラインを介して暗号ユニットに転送することもまた可能である。別個のライン５は、その後、必要ではなくなる。従って、データバスのみでなく、制御信号、いわゆるバスラインも暗号化されて転送され得る。
【００１２】
暗号化ユニット／復号化ユニットは、目的に合わせて、共通のクロック信号および連続的に入力される乱数によって制御される、フィードバックを有するシフトレジスタを含む。シフトレジスタによって出力側に提供されるデータワードはバス上に出力されるべき、またはバスによって受信されるデータワードと、例えば、排他的論理和結合を介して論理的に結びつけられる。シフトレジスタのフィードバックは好適には線形である。
【００１３】
以下において、本発明は、図面に示された実施例を用いて詳細に説明される。図１は、マイクロコントローラにモノリシック集積されたＣＰＵ、メモリおよびさらなる周辺ユニットの模式図を示す。
【００１４】
図に示されたマイクロコントローラは、中央処理装置すなわちＣＰＵ１、メモリ２および周辺ユニット３を含む。周辺ユニット３は、例えば、入力回路ブロック／出力回路ブロックであり得る。マイクロコントローラの全素子は、単一のシリコンチップ上に集積される。ＣＰＵ１は、データ制御および計算機能を引受け、メモリユニット２は揮発性または不揮発性で格納されたデータを含み、周辺ユニット３は、このユニットに割当てられた各専用機能に用いられる。通常、マイクロコントローラは、さらなる機能ユニットを含む。上述のユニット間のデータ交換は、データバス４を介して行なわれる。データバスは、データが並行に転送される複数のラインを含む。さらに、バスはデータを転送するための対応する制御ラインを含む。データバスの方向を向くユニット１、２、３の入力および出力において、暗号ユニット１１、２１、３１が構成される。データバスラインを介して各ユニットに入力されるか、または出力されるデータフローは、割当てられた暗号ユニットによって復号化および暗号化される。
【００１５】
例えば、ＣＰＵ１はメモリ２に対してデータワードを要求する。データワードは、メモリ２の対応するメモリセルから読出され、レジスタ２１１においてバッファされる。暗号ユニット２１の内部回路によってデータワードが暗号化され、バス４に出力される。ＣＰＵ１の暗号ユニット１１は、このデータワードを受取り、復号化し、レジスタ１１１においてバッファする。データワードがバス４上でメモリ２からＣＰＵ１に転送される間、暗号化されたデータのみが利用可能である。ユニット２１および１１における暗号化および復号化は、乱数に依存して実行される。この乱数は乱数発生器６によって提供され、この乱数発生器の出力はライン５を介してユニット２１、１１と接続される。乱数の入力は、２つのユニット２１、１１において、ライン７を介して２つのデバイス２１、１１に入力されたクロックＣＬＫを用いてクロック同期的に行なわれる。乱数発生器５はビットの（擬）ランダム列（ｚｕｆａｅｌｌｉｇｅ  Ｆｏｌｇｅ）を生成し、クロッ暗号ユニット２１、１１にクロックＣＬＫを用いてクロック同期的に提供される。
【００１６】
暗号化および復号化が乱数に依存して制御されることによって、バス４を介して転送されるデータ値の非認証の取出しに対するデータセキュリティは強化される。同期制御は、送信または受信を行なうユニットにおける暗号化工程および復号化工程が同じタイムインターバルで互いに相補的であることを保証する。暗号化のランダム性（Ｚｕｆａｅｌｌｉｇｋｅｉｔ）が原因で、データの転送が繰返し行なわれたとしても、バス上には異なったビットパターンが現れる。まだ転送されていないが比較的容量性負荷が大きいバスの容量性負荷が原因で、外部から比較的測定し易いチップの電流プロファイルは、時間の経過とともに無相関およびランダムである。従って、読出しが試みられる際に、場合によっては生じ得るマイクロコントローラの特徴的なスイッチング特性を認識するために電流プロファイルは用いられ得ない。
【００１７】
セキュリティをさらに強化するためには、乱数および暗号化クロック／復号化クロックを提供するためのライン５および７を針攻撃またはプロービングから守るだけで十分である。これについては、従来の公知の措置が適用され得る。例えば、ラインがさらなる層で覆われ、この層が除去された場合、ラインが破壊され、使用不可能になる。
【００１８】
上述の３つのすべての暗号化ユニット／復号化ユニット１１、２１、３１は、対応して、同じように構成される。ユニット１１が例示的に詳しく説明される。レジスタ１１１は、ＣＰＵ１側において、ＣＰＵによって今受取られるべき、または出力されるべきデータワードをバッファするために用いられる。データバスに接続することにより、バスのデータ線のそれぞれに論理機能を付与する。実施例において、バスのデータライン各々に排他的論理和関数１１２、１１３、１１４、１１５が適用される。排他的論理和ゲートの各入力のうちの１つまたは出力を用いて、データバスのラインのうちの１つに接続される。入力のうちの別の１つは、シフトレジスタ１１６の各出力と接続され、このレジスタは、例えば、線形でフィードバックされる。シフトレジスタ１１６は、クロックライン７および乱数を供給するライン５に入力側で接続される。乱数発生器６によって生成された乱数は、フィードバックされたシフトレジスタ１１６にライン５を介して連続的に生成され、その際、クロック制御はクロックＣＬＫによって行なわれる。シフトレジスタ１１６のフィードバックは、レジスタの出力端子において各タイミングパルスを有する別のデータワードが存在し、このデータワードは排他的論理和ゲート１１２、．．．、１１５を介して各々がバス４上に出力されるべき、またはバス４によって受信されるべきデータワードと論理接続されるようにする。開始時に、シフトレジスタは同じ値を用いて初期化される。他の暗号ユニット２１、３１は同じ設計を有し、このユニットの外部端子において対応して接続されるので、バス４を介して転送されたデータワードは送信位置および受信位置において暗号化され、または対応して相補的に復号化される。暗号化および復号化は互いに対称的である。基本的には、シフトレジスタ１１６がフィードバックされない場合、これで十分である。フィードバックによってセキュリティが強化される。フィードバックに適切であるのは、原始的多項式（ｐｒｉｍｉｔｉｖｅ  Ｐｏｌｙｎｏｍ）に基づく線形フィードバックである。並行度（Ｐａｒａｌｌｅｌｉｔａｅｔ）に依存して、シフトレジスタから入来する対応する複数のビットによって暗号化される。送信側および受信側において、同じ乱数によって暗号化／復号化がクロック同期的に行なわれる。対称的な暗号化が行なわれるため、転送工程は重要ではない。
【００１９】
乱数およびクロックを提供するために使用される回路部分の大きさ、ならびに線形フィードバックされたシフトレジスタ、入力レジスタ／出力レジスタおよび排他的論理和ゲートのために使用される回路部分の大きさは正当化され得る範囲範囲である。しかしながら、バスを介して転送されるデータ値の非認証のモニタリング、および電流プロファイルの測定に対するセキュリティは、これらを費やすだけあって著しく強化される。
【図面の簡単な説明】
【図１】  図１は、マイクロコントローラにモノリシック集積されたＣＰＵ、メモリおよびさらなる周辺ユニットの模式図である。
【図１】
0003866105.tif 000002