(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-01
(45)【発行日】2024-03-11
(54)【発明の名称】データを処理するための方法および装置
(51)【国際特許分類】
H03K 19/173 20060101AFI20240304BHJP
G06F 21/55 20130101ALI20240304BHJP
【FI】
H03K19/173 170
G06F21/55 380
【外国語出願】
(21)【出願番号】P 2018194035
(22)【出願日】2018-10-15
【審査請求日】2021-10-13
(31)【優先権主張番号】10 2017 124 354.2
(32)【優先日】2017-10-18
(33)【優先権主張国・地域又は機関】DE
【前置審査】
(73)【特許権者】
【識別番号】501209070
【氏名又は名称】インフィネオン テクノロジーズ アーゲー
【氏名又は名称原語表記】INFINEON TECHNOLOGIES AG
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】ゼー, アレクサンダー
(72)【発明者】
【氏名】リーガー, ヴィオラ
【審査官】▲高▼橋 徳浩
(56)【参考文献】
【文献】特表2008-538151(JP,A)
【文献】国際公開第2014/148247(WO,A1)
【文献】特開平08-278898(JP,A)
【文献】特開2011-216020(JP,A)
【文献】特表2013-522785(JP,A)
【文献】米国特許出願公開第2012/0274350(US,A1)
【文献】米国特許出願公開第2017/0213026(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F11/16-G06F11/20
G06F21/12-G06F21/16
G06F21/50-G06F21/57
H03K19/098-H03K19/23
(57)【特許請求の範囲】
【請求項1】
複数の処理ステップでデータを処理するための方法であって、
複数の処理ユニットのうちの第1の処理ユニットおよび第2の処理ユニットの両方が前記複数の処理ステップのうちの第1の処理ステップを実施するように、前記複数の処理ユニットを第1のコンフィグレーションで構成するステップと、
前記第1の処理ユニットが第2の処理ステップを実施し、前記第2の処理ユニットが、前記第2の処理ステップとは異なる第3の処理ステップを実施するように、前記複数の処理ユニットを第2のコンフィグレーションで構成するステップと、
前記第1の処理ステップの後に前記第1の処理ユニットからの出力データと前記第2の処理ユニットからの出力データを組み合わせ、そして前記第2の処理ステップと前記第3の処理ステップそれぞれの後に、前記第1の処理ユニットからの出力データと前記第2の処理ユニットからの出力データを再度組み合わせるようにマルチプレクサを構成するステップと、を含み、
構成ユニットが、前記複数の処理ステップの実施前に、および/または処理ステップの実施中もしくは互いに異なる2つの処理ステップの実施の合間に動的に、前記
第1のコンフィグレーションで構成するステップ及び前記第2のコンフィグレーションで構成するステップを行
い、
前記マルチプレクサが、前記複数の処理ユニットからの重み付けされた処理結果を元にした多数決を表す信号を出力するように構成され、前記複数の処理ユニットからの各処理結果は重要度で重み付けされ、前記重要度は、各処理結果に割り当てられたセキュリティレベルと正に相関させる方法。
【請求項2】
前記第1のコンフィグレーションを第1のセキュリティレベルに割り当てるステップと、
前記第2のコンフィグレーションを第2のセキュリティレベルに割り当てるステップと
をさらに含み、
前記第1のセキュリティレベルが、前記第2のセキュリティレベルよりも高い
請求項1に記載の方法。
【請求項3】
前記複数の処理ユニットがさらに第3の処理ユニットを備え、
前記方法がさらに、
前記複数の処理ユニットを第3のコンフィグレーションで構成するステップと、
前記第3のコンフィグレーションを第3のセキュリティレベルに割り当てるステップと
を含み、
前記第3のセキュリティレベルが前記第1および前記第2のセキュリティレベルを上回っている場合、前記第3のコンフィグレーションに従って、前記第1の処理ステップを実施する、請求項2に記載の方法。
【請求項4】
第4のコンフィグレーションを第4のセキュリティレベルに割り当てるステップ
をさらに含み、
前記第4のセキュリティレベルが前記第1のセキュリティレベルと前記第2のセキュリティレベルの間にある場合、前記第3の処理ユニットが、前記第4のコンフィグレーションに従って、前記第2の処理ステップまたは前記第3の処理ステップを実施する、請求項3に記載の方法。
【請求項5】
第5のコンフィグレーションを前記第2のセキュリティレベルに割り当てるステップ
をさらに含み、
前記第3の処理ユニットが、前記第5のコンフィグレーションに従って、前記第1の処理ステップ、前記第2の処理ステップおよび前記第3の処理ステップと異なる、第4の処理ステップを実施する、請求項3に記載の方法。
【請求項6】
前記第1の処理ユニットからの前記第1の処理ステップの第1の処理結果と、前記第2の処理ユニットからの前記第1の処理ステップの第2の処理結果とを比較するステップと、
前記第2の処理結果が前記第1の処理結果と異なる場合に、エラー信号を送るステップと
をさらに含む請求項1に記載の方法。
【請求項7】
前記第1及び第2の処理ユニットが
前記第1のコンフィグレーションで構成され、
同じ前記第1の処理ステップを実施し、ついで
前記第2のコンフィグレーションで構成され、
互いに異なる前記第2の処理ステップ及び前記第3の処理ステップを実施する、
請求項1に記載の方法。
【請求項8】
プログラムコードを記憶した非一時的コンピュータ可読記憶媒体であって、前記プログラムコードが、データ処理ユニット上での実行時に、前記データ処理ユニットに請求項1に記載の方法
を実行させる、記憶媒体。
【請求項9】
データを処理するための装置であって、
異なる複数のコンフィグレーションで動作するように構成可能な複数の処理ユニットと、
選択的に、前記複数の処理ユニットのうちの第1の処理ユニットおよび第2の処理ユニットの両方が第1の処理ステップを実施するように、前記複数の処理ユニットを第1のコンフィグレーションで構成し、前記第1の処理ユニットが第2の処理ステップを実施し、前記第2の処理ユニットが、前記第2の処理ステップとは異なる第3の処理ステップを実施するように、前記複数の処理ユニットを異なる第2のコンフィグレーションで構成するように構成された構成ユニットと、
前記複数の処理ユニットからの重み付けされた処理結果を元にした多数決を表す信号を出力するように構成された信号回路であって、前記複数の処理ユニットからの各重み付けされた処理結果は重要度で重み付けされ
、前記重要度は、各処理結果に割り当てられたセキュリティレベルと正に相関させる、信号回路と
を備え、
前記構成ユニットが、複数の処理ステップの実施前に、および/または処理ステップの実施中もしくは互いに異なる2つの処理ステップの実施の合間に動的に、前記
第1のコンフィグレーションで構成及び前記第2のコンフィグレーションで構
成を行うように構成されている、装置。
【請求項10】
前記構成ユニットが、前記第1のコンフィグレーションを第1のセキュリティレベルに割り当て、前記第2のコンフィグレーションを第2のセキュリティレベルに割り当てるように構成され、前記第1のセキュリティレベルが前記第2のセキュリティレベルよりも高い、請求項
9に記載の装置。
【請求項11】
前記信号回路が比較デバイスを含み、前記比較デバイスが、前記第1の処理ユニットからの第1の処理結果を前記第2の処理ユニットからの第2の処理結果と比較し、前記第2の処理結果が前記第1の処理結果と異なるかどうかを検出し、前記第2の処理結果が前記第1の処理結果と異なる場合に、信号を送るように構成されている、請求項
9に記載の装置。
【請求項12】
第三者による攻撃および/または環境の影響による障害に対して前記装置の他の領域よりも強固に保護されているセキュリティ領域をさらに含み、少なくとも前記第1の処理ユニットが前記セキュリティ領域に配置されている、請求項
9に記載の装置。
【請求項13】
前記セキュリティ領域が、前記構成ユニットのレジスタを含み、前記レジスタが、前記複数のコンフィグレーションの構成データを記憶するように構成されている、請求項
12に記載の装置。
【請求項14】
前記構成ユニットを介して、
前記複数の処理ユニットのうちの第1の処理ユニットおよび第2の処理ユニットの両方が複数の処理ステップのうちの第1の処理ステップを実施するように、前記複数の処理ユニットを第1のコンフィグレーションで構成し、
前記第1の処理ユニットが第2の処理ステップを実施し、前記第2の処理ユニットが、前記第2の処理ステップとは異なる第3の処理ステップを実施するように、前記複数の処理ユニットを第2のコンフィグレーションで構成する
ように構成されている、請求項
9に記載の装置。
【請求項15】
複数の処理ステップを実施するために、データ処理ユニット上での実行時に、前記データ処理ユニットに処理ステップを実行させるプログラムコードを記憶媒体から受信するように構成された結合デバイスをさらに含む、請求項
14に記載の装置。
【請求項16】
複数の処理ステップでの処理のための入力データを、前記コンフィグレーションに応じて前記複数の処理ユニットに分配するように構成されたデマルチプレクサ、および/または
前記処理ユニットからの出力データを組み合わせるように構成されたマルチプレクサ
をさらに含む、請求項
9に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データを処理するための装置および方法に関する。この装置は、複数の処理ユニットを含む。この方法は、複数の処理ユニットを構成することを含む。
【発明の概要】
【0002】
データの処理に関して高いスループットを実現するために、複数の処理ユニットを並列に使用することができる。
【0003】
できるだけ適切にデータの処理を行うために、処理ユニットは、異なるタスクに対応して互いに異なる様式で形成されてもよい。例えば、プリント回路基板またはチップ上のモジュールの回路システムに、それぞれ異なるタスクを達成するように形成されているいくつかの異なる特定用途向け集積回路(ASIC)を含むことができる。
【0004】
独立クレームは、様々な態様で一般的な実施形態を指定する。従属クレームは、様々な態様で実施形態の特徴を指定する。
【0005】
以下、1つまたは複数の態様で本発明の基本的な理解を提供するために簡単な要旨を述べる。この要旨は、本発明の概要を示すものであり、本発明の本質的または重要な特徴を特徴付けることも、本発明の範囲を導き出すことも意図されていない。むしろ、この要旨は、主に、以下に続くより詳細な説明に先立って、本発明のいくつかの概念を簡単に提供することを意図している。
【0006】
一態様では、本開示は、複数の処理ステップでデータを処理するための方法に関する。この方法は、複数の処理ユニットを第1のコンフィグレーションで構成するステップであって、複数の処理ユニットのうちの第1および第2のユニットが複数の処理ステップのうちの第1の処理ステップを実施する、ステップを含む。この方法は、複数の処理ユニットを第2のコンフィグレーションで構成するステップであって、第1の処理ユニットが第2の処理ステップを実施し、第2の処理ユニットが、第2の処理ステップとは異なる第3の処理ステップを実施する、ステップをさらに含む。
【0007】
一態様では、本開示は、複数のコンフィグレーションで動作するように構成可能な複数の処理ユニットのデータを処理するための装置に関する。いくつかの実施形態では、本装置は実行時間中に構成可能に形成されている。本装置は、複数の処理ユニットを選択的に第1のコンフィグレーションで構成し、複数の処理ユニットのうちの第1および第2のユニットが第1の処理ステップを実施し、また、第2のコンフィグレーションで構成し、第1の処理ユニットが第2の処理ステップを実施し、第2の処理ユニットが第2の処理ステップとは異なる第3の処理ステップを実施するように適合されている構成ユニットを含む。
【0008】
さらに良く理解できるように、添付図面を本開示の一部とする。図面は、実施形態を図示し、明細書と共に本開示の基本的な考えを説明するのに役立つ。
【図面の簡単な説明】
【0009】
【
図1】いくつかの実施形態によるプロセッサを概略的に示すブロック図である。
【
図2】いくつかの実施形態による方法を概略的に示す流れ図である。
【発明を実施するための形態】
【0010】
本願で特許請求する主題を深く理解できるように、説明の目的でいくつかの特定の詳細を述べる。しかし、これらの特定の詳細を伴わなくても本願で特許請求する主題を実現することができることは明らかであろう。
【0011】
図面の特徴は、必ずしも縮尺通りには描かれていない。同様の参照符号は、対応する同様の部分を示す。最初の数字は、その符号を付された部分が最初に示されている図面の番号を示す。以下の詳細な説明を読めば、他の実施形態および意図される利点のいくつかが容易に理解されよう。他の実施形態を使用することもでき、例示的実施形態に構造的および/または論理的な変更を施すこともできることを理解されたい。以下、添付図面を参照して、例示的実施形態、実施形態、およびそれらに関連する効果について述べる。
【0012】
図1は、いくつかの実施形態によるデータ処理装置(DVA装置)を概略的に示すブロック図である。例えば、DVA装置は、以下でマイクロコントローラユニット(MCU)100と呼ぶマイクロコントローラモジュールの構成部分として形成されている。マイクロコントローラユニット100は、例えばプリント回路基板(PCB)などの支持体上に配置されている複数のコンフィグレーション要素を含むことができる。いくつかの実施形態では、複数のコンフィグレーション要素がシステムオンチップとして集積されている。
【0013】
マイクロコントローラユニット100は、いくつかの実施形態では、複数の処理ユニット101、102、103を含み、これらの処理ユニット101、102、103は、複数のコンフィグレーションで動作するように構成可能である。一実施形態では、マイクロコントローラユニット100は、プロセッサコア(図示せず)を有する集積回路として形成されている。いくつかの実施形態では、マイクロコントローラユニット100の処理ユニット101、102、103は、算術論理ユニット(ALU)の一部として形成されている。
【0014】
別の実施形態では、マイクロコントローラユニット100は、複数のプロセッサコア「PROC_1」、「PROC_2」、および「PROC_3」を有し、これらのプロセッサコアはそれぞれ、例えば処理ユニット101、102、103の1つを含む。いくつかの実施形態では、処理ユニット101、102、103は、空間的に互いに離間されている。例えば、処理ユニット101、102、103は、異なるチップハウジング内で同じプリント回路基板上で互いに離して配置されており、または例えば自動車での使用時には互いにできるだけ離れた場所に収容されている異なるモジュール内に配置されている。ここで、生じ得る距離の制限は、自動車の寸法のみから生じるか、または様々なモジュールによって互いに通信される信号の許容できるランタイムの差に関する制限に基づいて生じる。いくつかの実施形態では、装置は、処理ユニットが様々な電圧源から電圧を供給されるように適合されている。1つの効果は、処理ステップの実施が、それぞれ2つの処理ユニット101、102によってできるだけ互いに独立して行われることであり、それにより、例えば第1の処理ユニット101に影響を及ぼす外乱が第2の処理ユニット102にも同時に作用することがない。
【0015】
マイクロコントローラユニット100は、セキュリティ領域120をさらに備え、セキュリティ領域120は、攻撃および/または環境の影響による障害に対して、マイクロコントローラユニット100の他の領域よりも強固に保護されている。セキュリティ領域は、例えば、特に放射線に対する特別な安全対策によって遮蔽する、または別の形で保護することができる。例えば、いくつかの実施形態では、セキュリティ領域は、ファラデーケージ内に配置することによって、電場および/または磁場の放射、および/または外部からのそのような場の作用から防護される。
【0016】
いくつかの実施形態では、セキュリティ領域120は、差分電力解析および/または実行時間解析に耐性があるように形成されている。いくつかの実施形態では、セキュリティ領域は、攻撃者が引き起こすハードウェアエラーに対して耐性があるように形成されている。例えば、セキュリティ領域120は、安全な領域における電力消費をランダム化するように適合されている。少なくとも1つの効果は、差分電力解析が困難になることであり得る。これは、実行された暗号操作に関する観察される電力消費が、場合によっては、統計的に証明しにくい推論を実現するからである。例えば、セキュリティ領域120は、マイクロコントローラユニットの内部にトラストアンカを形成するハードウェアセキュリティモジュール(HSM)として形成されている。このハードウェアセキュリティモジュールは、様々なハードウェアメカニズムによって防護することができ、特定のハードウェアアクセラレータを含み、例えばハッシュ関数を受け取り、また対称および非対称暗号関数を受け取る。このハードウェアセキュリティモジュールは、特別に保護されたキーストアも含むことが多い。
【0017】
本マイクロコントローラユニットは、1つまたは複数のバス(図示せず)を含むことができる。いくつかの実施形態では、バスは制御バスを含み、制御バスは、制御コマンド、制御信号、および/または制御データを、マイクロコントローラユニット100の1つの構成要素からマイクロコントローラユニット100の別の構成要素に伝送するように適合されている。いくつかの実施形態では、バスはデータバスを含む。データバスは、データをマイクロコントローラユニット100の1つの構成要素からマイクロコントローラユニット100の別の構成要素に伝送するように適合されている。いくつかの実施形態では、バスは、制御およびデータバスとして形成されている。バスは、パラレルバスを含むことができる。バスは、データのシリアル伝送用に形成することができる。
【0018】
マイクロコントローラユニット100は、デマルチプレクサ110を含み、デマルチプレクサ110は、複数の処理ステップで処理するための入力データ(「INPUT DATA」)を、コンフィグレーションに応じて複数の処理ユニットに分配するように適合されている。
【0019】
マイクロコントローラユニット100は、マルチプレクサ130をさらに含み、マルチプレクサ130は、処理ユニット101、102、103からの出力データをマージするように適合されている。この実施形態では、出力データは、例えば出力データストリームにバンドルすることができ、出力データストリームは、例えばバス(図示せず)上でのさらなる処理のために他のデバイスに伝送する、またはマイクロコントローラユニット100から出力することができる。マルチプレクサ130については、以下でより詳細に述べる。
【0020】
さらに、本装置は、構成ユニット140(「CONFIG」)を含み、構成ユニット140は、複数の処理ユニット101、102、103を構成するように適合されている。さらに、いくつかの実施形態では、マイクロコントローラユニット100は、特殊目的レジスタ142を含む。特殊目的レジスタ142は、例えば、構成ユニット140に含めることができ、または構成ユニット140の一部として埋め込んで形成することもできる。いくつかの実施形態では、特殊目的レジスタ142は、セキュリティ領域120内にある構成ユニット140の回路部分内に配置されている。いくつかの実施形態では、構成ユニット140は、制御信号をデマルチプレクサ110に伝送するように適合されている。この実施形態では、デマルチプレクサ110は、受信した制御信号に基づいて入力データを分配することができる。
【0021】
構成ユニット140は、いくつかの実施形態では、複数の処理ユニット101、102、103を選択的に第1のコンフィグレーションおよび第2のコンフィグレーションで構成するように適合されている。第1のコンフィグレーションでは、複数の処理ユニット101、102、103のうちの第1の処理ユニット101および第2の処理ユニット102が第1の処理ステップを実施する。第2のコンフィグレーションでは、第1の処理ユニット101が第2の処理ステップを実施し、第2の処理ユニット102が、第2の処理ステップとは異なる第3の処理ステップを実施する。構成ユニット140は、いくつかの実施形態では、第1のコンフィグレーションを第1のセキュリティレベルに割り当て、第2のコンフィグレーションを第2のセキュリティレベルに割り当てるように適合されている。ここで、第1のセキュリティレベルは第2のセキュリティレベルよりも高い。
【0022】
構成ユニット140は、いくつかの実施形態では、複数の処理ステップの実施前に構成することを行うように適合されている。しかし、構成ユニット140は、動的に構成することを行うように適合することもできる。例えば、いくつかの実施形態では、構成ユニット140は、処理ステップの実施中に構成することを行うように適合されている。いくつかの実施形態では、構成ユニット140は、互いに異なる2つの処理ステップの実施の合間に構成することを行うように適合されている。
【0023】
いくつかの実施形態では、複数のコンフィグレーションの構成データを記憶するように適合されている構成ユニット140の特殊タスクレジスタ142が、セキュリティ領域120に配置されている。特に、セキュリティ領域120は、複数のコンフィグレーションの構成データを記憶するように適合されている構成ユニット140のすべての特殊タスクレジスタ142を含むことができる。
【0024】
装置は、少なくとも1つの評価デバイス132(「EVAL」)をさらに含み、評価デバイス132は、例えば評定の過程で、その評価デバイス132が処理ユニット101、102、103から受信したデータを組み合わせるように一般に適合されている。いくつかの実施形態では、評価デバイス132は、
図2に示されるように、マルチプレクサ130の一部として形成されている。評価デバイス132は、
図1に示される例では、例えば、組合せ結果(「OUTPUT」)を出力するようにマルチプレクサ130を制御するように適合されており、組合せ結果は、組合せの結果または評定の結果、したがって処理ユニット101、102、103の処理結果を表す。例えば、いくつかの実施形態では、評価デバイス132は、複数の処理ユニット101、102、103からの重み付けされた処理結果に基づいて、多数決を表す判定信号を出力するように構成されている。組合せ結果は、判定信号を含むことができる。別の実施形態では、評価デバイスは、マルチプレクサ130とは別個に形成されてもよい。例えば、いくつかの実施形態では、さらなる処理ユニット(図示せず)が設けられており、これらの処理ユニットは、二重、三重、またはさらに多重に冗長に構成可能である。この例では、評価デバイスを分配または分散して形成することができ、各部がそれぞれ、二重、三重、またはさらに多重の処理ユニットに割り当てられており、それらの処理ユニットに関して、評価デバイスの各部が処理結果を評定するように適合されている。
【0025】
いくつかの実装形態では、マルチプレクサ130または評価ユニット132は、組合せ結果の信憑性を例えばフラグとして示すように適合されている。フラグは、上述した第1の処理ユニット101の実行の場合のように少なくとも第1の処理ユニット101および第2の処理ユニット102によって冗長処理が行われているときに立てられる。一実施形態では、処理結果のデジタル表現において少なくとも1つの固定ビットがフラグのために確保される。一実施形態では、フラグは判定信号を表す。
【0026】
いくつかの実施形態では、評価デバイス132は比較デバイスを含み、比較デバイスは、第1の処理ユニット101からの第1の処理結果を第2の処理ユニット102からの第2の処理結果と比較するように適合されている。比較デバイスは、第2の処理結果が第1の処理結果と異なる場合にエラーを通知するように適合されている。
【0027】
処理ユニット101、102、103の処理結果は、同じ重み付けをされていてもよい。いくつかの実施形態では、処理結果は、異なる重み付けをされている。例えば、セキュリティ領域120に配置されている第1の処理ユニット101の処理結果は、第2の処理ユニット102または第3の処理ユニット103の処理結果の2倍として査定することができる。各場合の状況に応じて適切な重み付けを当業者が設定することを理解されたい。この信号は、複数のデータ処理ユニット101、102、103の処理結果がエラー公差内で許されるよりも大きく互いに逸脱している旨のエラー通知として形成することができる。
【0028】
いくつかの実施形態では、マイクロコントローラユニット100は、メモリ160をさらに有する。メモリ160は、例えばバス(図示せず)を介して複数の処理ユニット101、102、103に結合することができ、複数の処理ユニット101、102、103がデータをメモリ160に書き込む、またはメモリ160から読み出すことができるようにする。いくつかの実施形態では、マイクロコントローラユニット100およびメモリ160は、回路内に集積されている。メモリ160は、例えば内蔵メモリとして形成されている。これは、例示的実施形態では、メモリ160のメモリセルが、複数の処理ユニット101、102、103も含むプロセッサコアの同じ集積回路の一部であることを意味する。例えば、メモリ160は、マイクロコントローラユニット100を含む集積回路の空間的に分離されたブロックとして形成されており、マイクロコントローラユニット100は、ラインによってメモリ160と接続されている。別の実施形態では、メモリは、マイクロコントローラユニット100に結合されており、しかしマイクロコントローラユニット100の一部ではない。例えば、メモリ160は、処理ユニット101、102、103を含む集積回路の空間的に分離されたブロックとして形成されており、処理ユニット101、102、103は、例えばバス(図示せず)のラインによってメモリ160と接続されている。いくつかの実施形態では、メモリ160は不揮発性に形成されている。特に、メモリ160は、不揮発性メモリセルを含む。
【0029】
マイクロコントローラユニット100が他の構成要素も含むことができることを理解されたい。それらの説明は、例示的実施形態の根底にある概念を理解しやすくするためにここでは省略する。したがって、いくつかの実施形態では、本装置は結合デバイス170を含み、結合デバイス170は、記憶媒体からプログラムコードを受信するように適合されている。いくつかの実施形態では、結合デバイスは、バス接続として形成されている。例えば、結合デバイス170は、スタティックランダムアクセスメモリ(SRAMメモリ)またはフラッシュメモリへのインターフェース(「I/FC」)でよい。いくつかの実施形態では、結合デバイス170は、イーサネットインターフェースとして形成されている。別の実施形態では、結合デバイス170は、ユニバーサルシリアルバス規格(USB)に従って動作するように適合されているバス接続として形成されている。例えば、結合デバイス170によってメモリをプロセッサに結合することができる。例えば、マイクロコントローラユニット100は、記憶媒体(図示せず)に結合するための結合デバイスによってプログラムコードを記憶するように適合することができる。プログラムコードは、マイクロコントローラユニット100上での実行時に、本願で開示する概念による方法の処理ステップを実施するようマイクロコントローラユニット100に指示する。そのような方法の一例およびその方法の変形形態を、
図1および
図2を参照して以下でより詳細に述べる。
【0030】
図2は、いくつかの実施形態による複数の処理ステップでデータを処理するための方法を概略的に表す流れ図を示す。
【0031】
この方法は、少なくとも第1の処理ユニット101を第三者による攻撃および/または環境の影響による障害から保護することを含む。一般に、ステップS210で、複数の処理ユニット101、102、103が、異なるセキュリティの領域に提供される。いくつかの実施形態では、例えば、マイクロコントローラユニット100内のセキュリティ領域120は、差分電力解析に対して耐性を持つように形成される。例えば、セキュリティ領域120は、安全な領域における電力消費をランダム化するように適合されている。したがって、第1の処理ユニット101は、少なくともセキュリティ領域120に配置されている回路部分に関して、第2の処理ユニット102および第3の処理ユニット103よりも安全である。
【0032】
この方法のいくつかの実施形態は、ステップS220で、少なくとも第1のセキュリティレベル(A)および第2のセキュリティレベル(B)を設定することを含み、ここで、第1のセキュリティレベル(A)は第2のセキュリティレベル(B)よりも高い。この方法は、第1のコンフィグレーション「C11」を第1のセキュリティレベル(A)に割り当て、第2のコンフィグレーション「C23」を第2のセキュリティレベル(B)に割り当てることをさらに含む。第1のコンフィグレーションC11によれば、複数の処理ユニット101、102、103のうちの第1の処理ユニット101および第2の処理ユニット102が、複数の処理ステップのうちの第1の処理ステップを実施する。一方、第2のコンフィグレーションC23によれば、第1の処理ユニット101が第2の処理ステップを実施し、第2の処理ユニット102が、第2の処理ステップとは異なる第3の処理ステップを実施する。対応するデータは、安全に記憶することができる。例えば、構成ユニット140は、セキュリティレベルへのコンフィグレーションの割当てを表す割当てデータ、および/または第1のコンフィグレーションC11および/または第2のコンフィグレーションC23を表す構成データを、構成ユニット140の特殊目的レジスタ142に記憶することができ、これらの特殊目的レジスタ142は、マイクロコントローラユニット100のセキュリティ領域120に形成されている構成ユニット140の回路部分に配置されている。構成ユニット140は、選択された第1のコンフィグレーションC11または場合によっては選択された第2のコンフィグレーションC23に関する情報データを、少なくともマイクロコントローラユニット100の当該の構成要素、すなわちこの例では第1の処理ユニット101および第2の処理ユニット102、ならびにマルチプレクサ130、より正確にはマルチプレクサ130の評価デバイス132に伝送する。
【0033】
ステップS240で、デマルチプレクサ110は、処理対象のデータを第1の処理ユニット101および第2の処理ユニット102に割り振る。一実施形態では、第1のコンフィグレーションC11に従って第1の処理ユニット101に割り振られるデータと、第2の処理ユニット102に割り振られるデータとは同一である。処理ユニット101、102はそれぞれ、第1のコンフィグレーションC11に従って第1の処理ステップを実施し、それにより、割り振られたデータを処理して、第1の処理結果R1および第2の処理結果R2を生成する。
【0034】
いくつかの実施形態では、この方法は、第1の処理ユニット101からの第1の処理結果を第2の処理ユニット102からの第2の処理結果と組み合わせることを含む。したがって、例示的な方法は、ステップS250において、マルチプレクサ130が処理結果R1、R2を受信して組み合わせることを含む。例えば、評価デバイス132は、第1の処理結果R1と第2の処理結果R2を互いに比較して、2つの結果R1、R2の一致または相違を断定することができる。したがって、この方法は、第2の処理結果R2が第1の処理結果R1と異なる場合にエラーを通知することを含むことができる。
【0035】
いくつかの実施形態では、第1の処理結果R1は、第2の処理結果R2よりも高く重み付けすることができる。特に、評価デバイス132は、マルチプレクサ130による複数の処理ユニット101、102、103の処理結果R1、R2、R3の組合せ時に、処理結果の重み付けを、それぞれの処理ユニット101、102、または103によるデータの処理に割り当てられたセキュリティレベルと正に相関させることができる。例えば、第1の処理ユニット101によるデータの処理に関して、セキュリティレベルを高くすることができ、それにより、例えば、第1の処理ユニット101の第1の処理結果R1は、第2の処理ユニット102の第2の処理結果R2または第3の処理ユニット103の第3の処理結果R3よりも高く重み付けされる。
【0036】
いくつかの実施形態では、上述したように、複数の処理ステップを実施する前に構成することが行われる。特に、第1の方法ステップを実施する前に構成することを行うことができる。しかし、この方法は、複数の処理ユニット101、102、103を第1のコンフィグレーションC11だけでなく第2のコンフィグレーションC23でも構成することを含む。したがって、構成することは、一般に、互いに異なる2つの処理ステップの実施の合間に行うことができる。例えば、構成ユニット140は、例えばステップS260で第1の処理ステップを実施した後、処理ユニット101、102を再構成して、データのさらなる処理に関して処理ユニット101、102をセキュリティ要件に適合させる。セキュリティ要件は、例えば、第2の処理ステップおよび第3の処理ステップに関しては第1の処理ステップよりも低く下がることがある。そのような場合、第1のコンフィグレーションC11は以下のように企図することができる。上述したように、構成ユニット140において、まず、第1の処理ユニット101および第2の処理ユニット102が第1のコンフィグレーションC11で構成され、それらが同じ第1の処理ステップを実施し、次いで第2のコンフィグレーションC23で構成され、それらが互いに異なる第2の処理ステップおよび第3の処理ステップを実施する。
【0037】
例として前述した方法の少なくとも1つの効果は、マイクロコントローラユニット100を、各場合の要件に応じて、特にセキュリティレベルに関して適合させることができることであり、所要の安全性で処理すると共に、できるだけ高い処理速度を実現する。セキュリティという概念は、ここでは、実施形態に応じて、故障防止または信頼性の意味だけでなく、攻撃に対するセキュリティまたは信憑性の意味でも理解することができる。これは、それによって攻撃者が密かに複数の領域を攻撃して、例えば2つの領域で同じエラーを誘発することがより難しくなるからである。同時に、冗長性は、処理に関して、エラーにつながる可能性がある他の外乱に対するセキュリティも高める。
【0038】
エラーが断定された場合、または様々な処理ステップを含む処理プロセスの信頼性が欠けていることが認められた場合、処理プロセスを早期に中断し、その処理プロセスの実施のために提供されているリソースを解放することができる。上記の例では、例えば第1の処理ステップの実施後、第1の処理結果と第2の処理結果とが一致しない場合には、処理結果の信頼性の低下を断定することができる。この場合、マイクロコントローラユニット100は、処理を中断することができ、したがって第2の処理ステップ102および第3の処理ステップ103の実施には至らず、マイクロコントローラユニット100は、例えば他の処理ステップの実施に進むことができる。
【0039】
図2に示される流れ図は、単に、その実施に第3の処理ユニット103が必要ない場合を示すが、この方法の変形形態では、例えばさらに第3の処理ユニット103もこの方法の実施に参加することができる。したがって、例えば、2つの処理ユニット101、102を含む例に基づいて一般に上述した方法の変形形態(図示せず)は、少なくとも第3の処理ユニット103を提供することを含む。一実施形態では、この方法は、少なくとも第3のコンフィグレーション「C111」を第3のセキュリティレベルに割り当てることを含む。例えば、第3のセキュリティレベルは、第1のセキュリティレベルおよび第2のセキュリティレベルよりも高くなるように設定される。この場合、第3のコンフィグレーションC111は、第3の処理ユニット103が同様に第1の処理ステップを実施することを含む。少なくとも1つの効果は、処理ユニット101、102、103からの処理結果の評定時に、同じ処理ステップを実施した3つの処理ユニット101、102、103の処理結果の組合せが、特に第3の処理ユニット103からの第3の処理結果R3を考慮に入れて3つの処理結果が一致した場合に、単に第1の処理ユニット101の第1の処理結果R1と第2の処理ユニット102の第2の処理結果R2とが組み合わされる上述のより簡単な場合よりも、一致の結果について高い信憑性を生じることであり得る。
【0040】
前述の方法の一変形形態では、第4のセキュリティレベルが、第1のセキュリティレベルと第2のセキュリティレベルとの間にあるように設定される。ここで、この方法は、少なくとも、3つの処理ユニット101、102、103の第4のコンフィグレーション「C234」を第4のセキュリティレベルに割り当てることを含む。この構成によれば、例えば、第1の処理ユニット101が第2の処理ステップを実施し、第2の処理ユニット102および第3の処理ユニット103が第3の処理ステップを実施するように設定することができる。
【0041】
さらなる実施形態では、この方法は、第4のコンフィグレーションを第2のセキュリティレベルに割り当てることを含む。この場合、第4のコンフィグレーションによる第3の処理ユニット103は、第1の処理ステップ、第2の処理ステップ、および第3の処理ステップとは異なる第4の処理ステップを実施する。少なくとも1つの効果は、各処理ユニット101、102、103が別の処理ステップを実施するので、処理ユニット101、102、103によって実施される処理ステップに関する冗長性の解消により、処理速度が最大化されていることであり得る。
【0042】
本明細書に例として述べる教示の文脈では、構成要素とシーケンスステップの他の組合せも可能である。例えば、さらなる処理ユニットを提供することができ、それらの処理ユニットは、コンフィグレーションに応じて、追加の冗長性を保証することができ、したがって、自然の外乱および攻撃者によって恣意的に導入されたエラーに対する処理安全性を保証することができ、異なる処理ステップの実施時に大きな並列性を提供し、それにより、マイクロコントローラユニットによるデータの処理中に特に高いスループットが可能であるか、または、さらなる処理ユニットがマイクロコントローラユニットの安全な領域に完全にまたは部分的に配置されているときに攻撃に対する特別なセキュリティが保証されている。
【0043】
本明細書での例示的実施形態はマイクロコントローラユニットを使用して述べているが、一般に、上述した方法の一実施形態を実施するように適合されている任意の装置を使用することができる。処理ユニットは、互いに空間的に分離された回路ブロックとして実装することができる。一実施形態では、処理ユニットは、同一のプロセッサによるデータ処理における時間的に互いにずれたフェーズとして形成されている。第1のコンフィグレーションに関して、例えば遅延回路を設けることができ、ノードからプロセッサに既に直接渡されており、プロセッサによって処理されたデータを、遅延ラインを介して再び同じプロセッサに送り、それにより、プロセッサが再びデータを処理する。
【0044】
上述した技法による処理ユニットおよび/または他の構成要素は、例えば仮想マシン、仮想プロセッサ、またはスレッドとして、ソフトウェアで実装することもできる。例えば第1の仮想マシンによるデータの処理に関して、暗号化、処理ステップのノイズ付加、または同様の安全手段などの特別な手段が個別にまたは組み合わせて実装されている場合、様々なセキュリティ領域を仮想的に実装することができる。同様に、ハイブリッド実装も可能である。例として、ある処理ユニットは、外乱および/または攻撃に対して物理的に特に保護された回路領域内に形成することができ、他の処理ユニットは、例えば、特に保護された領域外のプロセッサ回路上で実行される仮想マシンとして実装されている。
【0045】
本明細書で述べる技法の例示的な用途は、自動車の内部におけるデータの通信の分野にあり得る。自動車の動作時、環境からおよび自動車の電気設備自体から外乱が発するので、通信は脆弱である。一実施形態では、上述した技法を使用して、いわゆるメッセージ認証コード(MAC)に基づいて、より高い信頼性でメッセージを認証する。複数の処理ユニットによって処理ステップ「MACの認証」が行われることにより、処理結果の評定によって決定された組合せ結果のより高い信頼性を達成することができる。例えば、3つの処理ユニットが冗長で使用される場合、多数決を行うことができ、最も高い可能性で適切な認証コードを決定することができる。したがって、認証されていないものとして却下されるはずのメッセージを誤って認証する可能性が低減される。同様に、例えばブートプロセス時の保全性チェック、ファイアウォール、侵入検知システム、およびセキュリティプロトコルも、用途として考えられる。
【0046】
本明細書で述べた方法、または方法を実施するために提供される装置の特定の効果は、データ改竄のリスクの低減にあり得る。これは、実施すべき処理ステップの冗長性が、暗号化されたデータの無許可の復号化を困難にするからである。
【0047】
本明細書で使用されるとき、単語「例示的」、および単語「例えば」、ならびに語句「例として」は、例が与えられる、または実施形態が表されることを意味する。例として挙げた態様は、必ずしも有利または好適なものと解釈すべきではない。そうではなく、この例は、具体的な可能な実施に基づいて概念または技法を説明するためのものである。ここで、概念「技法」は、自然の力を利用した計画的な活動によって得られたものを含み、文脈に応じて特に、「機器」、「装置」、「デバイス」、「システム」、「製造品」、「コンピュータ可読媒体」、「コンピュータプログラム製品」、および「方法」を含む。
【0048】
本明細書で使用するとき、「第1」や「第2」のような数え上げる概念は、異なる要素、領域、またはステップに名前を付けるために使用される。数え上げる概念は、特に数に関して、限定と解釈すべきではない。
【0049】
本明細書で使用するとき、概念「決定する」および「計算する」、ならびにそれらの変化形は交換可能に使用され、開始データに基づき、その評定によって結果を得る方法を表す。
【符号の説明】
【0050】
100 マイクロコントローラユニット
101、102、103 処理ユニット
110 デマルチプレクサ
120 セキュリティ領域
130 マルチプレクサ
132 評価デバイス
140 構成ユニット
142 特殊目的レジスタ
160 メモリ
170 結合デバイス