IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツングの特許一覧

特表2022-520463メモリ装置内に保存されているデータを処理するための方法及び装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-03-30
(54)【発明の名称】メモリ装置内に保存されているデータを処理するための方法及び装置
(51)【国際特許分類】
   G06F 21/64 20130101AFI20220323BHJP
   G06F 12/02 20060101ALI20220323BHJP
   G06F 11/10 20060101ALI20220323BHJP
【FI】
G06F21/64
G06F12/02 510A
G06F11/10 604
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021547676
(86)(22)【出願日】2020-01-30
(85)【翻訳文提出日】2021-08-13
(86)【国際出願番号】 EP2020052311
(87)【国際公開番号】W WO2020164921
(87)【国際公開日】2020-08-20
(31)【優先権主張番号】102019201922.6
(32)【優先日】2019-02-14
(33)【優先権主張国・地域又は機関】DE
(81)【指定国・地域】
(71)【出願人】
【識別番号】390023711
【氏名又は名称】ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
【住所又は居所原語表記】Stuttgart, Germany
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】マニュエル ヤウス
(72)【発明者】
【氏名】ムスタファ カルタル
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160AA12
(57)【要約】
メモリ装置内に保存されているデータを処理するための方法であって、当該方法は、メモリ装置のメモリ領域のうちの少なくとも1つの第1の部分領域を特徴付ける、ランダム又は擬似ランダムに依存して形成されたチェックパターンを特定するステップと、チェックパターンに依存して、少なくとも1つの第1の部分領域内に保存されているデータに関連するチェック変数を形成するステップと、を含む。
【特許請求の範囲】
【請求項1】
メモリ装置(100)内に保存されているデータを処理するための方法であって、
以下のステップ、即ち、
前記メモリ装置(100)のメモリ領域(110)のうちの少なくとも1つの第1の部分領域(110_1)を特徴付ける、ランダム又は擬似ランダムに依存して形成されたチェックパターン(PM)を特定すること(200)と、
前記チェックパターン(PM)に依存して、前記少なくとも1つの第1の部分領域(110_1)内に保存されているデータ(D)に関連するチェック変数(PG)を形成すること(202)と、
を含む方法。
【請求項2】
a)前記チェック変数(PG)を少なくとも一時的に保存すること(204)、
及び/又は、
b)前記少なくとも1つの第1の部分領域(110_1)のために、前記チェック変数(PG;PG’)を基準チェック変数(RPG)と比較すること(205)
をさらに含む、
請求項1に記載の方法。
【請求項3】
前記チェックパターン(PM)を特定すること(200)は、以下の要素、即ち、
a)前記チェックパターン(PM)をランダム又は擬似ランダムに依存して形成すること(200a)、
b)前記チェックパターン(PM)を外部ユニット(400)から受信すること(200b)、
c)前記メモリ装置(100)及び/又はさらなるメモリ装置(304)から前記チェックパターン(PM)を読み取ること(200c)、
d)前記チェックパターン(PM)をチェックパターンベースデータ(PMB)から導出すること(200d)
のうちの少なくとも1つを含む、
請求項1又は2のうちの少なくとも1項に記載の方法。
【請求項4】
前記チェックパターン(PM)を形成すること(200a)は、以下のステップ、即ち、
ランダム又は擬似ランダムな、好ましくは2進数の数列(ZF;ZF’)を用意すること(210)と、
前記数列(ZF)の少なくとも1つの第1の部分(ZF1)に依存して、前記少なくとも1つの第1の部分領域(110_1)を特定すること(212)と、
を含み、
特に、前記数列(ZF)の前記第1の部分(ZF1)に依存して、前記メモリ領域(110)内における前記第1の部分領域(110_1)の先頭アドレス(SA1)が形成される、
請求項3に記載の方法。
【請求項5】
前記チェックパターン(PM)は、前記第1の部分領域(110_1)に加えて追加的に、少なくとも1つの第2の部分領域(110_2)、好ましくは複数のさらなる部分領域(110_3a,110_3b,110_3c,・・)を特徴付け、
好ましくは、前記第2の部分領域(110_2)、特に前記少なくとも1つのさらなる部分領域は、前記第1の部分領域(110_1)に直接的には隣接しておらず、及び/又は、前記第1の部分領域(110_1)との間に非消失の距離を有する、
請求項1から4までの少なくとも1項に記載の方法。
【請求項6】
以下の要素、即ち、
a)前記数列(ZF)の前記第1の部分(ZF1)とは異なる、前記数列(ZF)の第2の部分(ZF2)に依存して、前記第2の部分領域(110_2)を特定すること(214a)であって、特に、前記メモリ領域(110)内における前記第2の部分領域(110_2)の先頭アドレス(SA2)は、前記数列(ZF)の前記第2の部分(ZF2)に依存して形成される、こと(214a)、
b)特に、それぞれ前記数列(ZF)の前記第1の部分(ZF1)及び/又は前記第2の部分(ZF2)とは異なる、前記数列(ZF)のそれぞれの対応するさらなる部分に依存して、前記さらなる部分領域(110_3a,110_3b,110_3c,・・)を特定すること(214b)であって、特に、前記メモリ領域(110)内におけるそれぞれの前記さらなる部分領域の先頭アドレスは、前記数列(ZF)の対応する前記さらなる部分に依存して形成される、こと(214b)
のうちの少なくとも1つをさらに含む、
請求項4を引用する請求項5に記載の方法。
【請求項7】
a)総ての部分領域(110_1,110_2,110_3a,110_3b,110_3c,・・)が、同一の長さを有する、又は、
b)前記複数の部分領域(110_1,110_2,110_3a,110_3b,110_3c,・・)のうちの少なくともいくつかの部分領域が、それぞれ異なる長さを有する、
請求項5又は6のうちの少なくとも1項に記載の方法。
【請求項8】
少なくとも1つの部分領域(110_1,110_2,110_3a,110_3b,110_3c,・・)の長さ(ZF2’’,ZF4’’)は、前記数列(ZF)の少なくとも1つの部分(ZF2’,ZF4’)に依存して特定される、
請求項4から7までの少なくとも1項に記載の方法。
【請求項9】
前記チェックパターン(PM)は、前記メモリ領域(110)を完全にはカバーしない、
請求項1から8までの少なくとも1項に記載の方法。
【請求項10】
前記チェック変数(PG)を形成すること(202)は、以下の要素、即ち、
a)特に前記少なくとも1つの第1の部分領域(110_1)内に保存されているデータ(D)に、ハッシュ関数、特に暗号学的なハッシュ関数を適用すること(220)、
b)前記少なくとも1つの第1の部分領域(110_1)内に保存されている前記データ(D)に依存して、チェックサムを形成すること(222)、
c)特に第1の秘密鍵と、前記少なくとも1つの第1の部分領域(110_1)内に保存されている前記データ(D)とに依存して、署名を形成すること(224)、
d)特に第2の秘密鍵と、前記少なくとも1つの第1の部分領域(110_1)内に保存されている前記データ(D)とに依存して、メッセージ認証コードを形成すること(226)
のうちの少なくとも1つを含む、
請求項1から9までの少なくとも1項に記載の方法。
【請求項11】
前記チェック変数(PG)を形成すること(202)は、以下のステップ、即ち、
前記少なくとも1つの第1の部分領域(110_1)内に保存されている前記データ(D)に依存して、好ましくは、複数の部分領域(110_1,110_2,110_3a)内に保存されているデータ(D)に依存して、1次チェック変数(PG1)を形成すること(228)と、
少なくとも前記1次チェック変数(PG1)に依存して、2次チェック変数(PG2)を形成すること(229)と、
を含む、
請求項1から10までの少なくとも1項に記載の方法。
【請求項12】
前記チェック変数(PG)を形成すること(202)は、以下のステップ、即ち、
前記メモリ装置(100)の前記メモリ領域(110)の、第1の個数の部分領域を選択すること(230)と、
前記メモリ装置(100)の前記メモリ領域(110)の、特に前記第1の個数とは異なる第2の個数の部分領域を選択すること(232)と、
前記メモリ領域(110)の前記第1の個数の部分領域のための1次チェック変数(PG1)を形成すること(234)と、
前記メモリ領域(110)の前記第2の個数の部分領域のための2次チェック変数(PG2)を形成すること(236)と、
を含み、
任意選択的に、前記2次チェック変数(PG2)を形成すること(236)は、追加的に、前記1次チェック変数(PG1)の少なくとも1つの部分に対して実施される、
請求項1から11までの少なくとも1項に記載の方法。
【請求項13】
メモリ装置(100)にアクセスするように構成された計算装置(302)の以下の動作段階、即ち、
a)スイッチオフ状態からの前記計算装置(302)の始動、
b)省エネルギ状態、特にサスペンド・トゥ・RAM状態からの前記計算装置(302)の始動、
c)再設定状態からの、即ち、リセット、特にソフトリセットからの前記計算装置(302)の始動、
d)通常動作
のうちの少なくとも1つの動作段階の前及び/又は後及び/又は最中における、
請求項1から12までの少なくとも1項に記載の方法の使用。
【請求項14】
メモリ装置(100)内に保存されているデータを処理するための装置(300)であって、
以下のステップ、即ち、
前記メモリ装置(100)のメモリ領域(110)のうちの少なくとも1つの第1の部分領域(110_1)を特徴付ける、ランダム又は擬似ランダムに依存して形成されたチェックパターン(PM)を特定すること(200)と、
前記チェックパターン(PM)に依存して、前記少なくとも1つの第1の部分領域(110_1)内に保存されているデータ(D)に関連するチェック変数(PG)を形成すること(202)と、
を実施するように構成されている装置(300)。
【請求項15】
請求項1から13までの少なくとも1項に記載の方法を実施するように構成されている、
請求項14に記載の装置(300)。
【請求項16】
データを保存するためのメモリ装置(100)のメモリ領域(110)のうちの少なくとも1つの第1の部分領域(110_1)を特徴付けるチェックパターン(PM)を形成するための方法であって、
前記チェックパターン(PM)は、ランダム又は擬似ランダムに依存して形成される、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
従来技術
本開示は、メモリ装置内に保存されているデータを処理するための方法に関する。
【0002】
本開示は、さらに、メモリ装置内に保存されているデータを処理するための装置に関する。
【発明の概要】
【課題を解決するための手段】
【0003】
発明の開示
好ましい実施形態は、メモリ装置内に保存されているデータを処理するための方法であって、以下のステップ、即ち、メモリ装置のメモリ領域のうちの少なくとも1つの第1の部分領域を特徴付ける、ランダム又は擬似ランダムに依存して形成されたチェックパターンを特定することと、チェックパターンに依存して、少なくとも1つの第1の部分領域内に保存されているデータに関連するチェック変数を形成することと、を含む、方法に関する。さらなる好ましい実施形態においては、メモリ装置は、少なくとも1つの半導体メモリコンポーネントを有し、例えば、揮発性メモリ(例えば、メインメモリ、RAM、ランダムアクセスメモリ)、又は、不揮発性メモリ、例えばフラッシュメモリ(例えば、NORフラッシュ又はNANDフラッシュ)である。ランダム又は擬似ランダムに依存して形成されたチェックパターンにより、チェック変数を形成する基礎として使用されるべきメモリ領域を、例えば、所定のメモリ装置のために予測不能かつ個別に選択又は規定することが可能となる。チェック変数は、有利には、第1の部分領域のデータ内容を特徴付け、例えば、基準チェック変数との比較により、第1の部分領域のデータの変更、特に改竄を識別することを可能にする。
【0004】
さらなる好ましい実施形態においては、実施形態による方法を実施するための装置を設けることができる。さらに特に好ましい実施形態においては、装置は、少なくとも1つの計算装置を有し、この計算装置には、特に、少なくとも1つのコンピュータプログラム、及び/又は、データ、特に装置によって処理されるべきデータを少なくとも一時的に保存するために、例えば、上述したメモリ装置を対応付けることができる。さらに好ましくは、装置の動作を制御するための、特に実施形態による方法を実施するためのコンピュータプログラムを、メモリ装置内に格納することができる。
【0005】
さらなる好ましい実施形態においては、計算装置は、以下の要素、即ち、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、プログラマブルロジックモジュール(例えば、FPGA、フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)のうちの少なくとも1つを有する。さらなる好ましい実施形態においては、これらの組合せも考えられる。
【0006】
さらなる好ましい実施形態においては、装置には、既に上述したメモリ装置に加えて少なくとも1つのさらなるメモリ装置を対応付けることもでき、このさらなるメモリ装置は、以下の要素、即ち、揮発性メモリ、特にメインメモリ(RAM)、不揮発性メモリ、特にフラッシュメモリ、例えば、フラッシュEEPROM又はNORフラッシュ又はNANDフラッシュのうちの少なくとも1つを有する。これに代えて又はこれに加えて、任意選択肢の少なくとも1つのさらなるメモリ装置が設けられている場合には、この少なくとも1つのさらなるメモリ装置内に、装置の動作を制御するため、特に実施形態による方法を実施するために構成されたコンピュータプログラムを格納することもできる。
【0007】
さらなる好ましい実施形態においては、第1の部分領域は、メモリ領域全体には対応しておらず、例えば、メモリ領域全体の一部のみに対応している。従って、換言すれば、さらなる好ましい実施形態においては、チェックパターンは、メモリ領域を完全にはカバーしない。さらなる好ましい実施形態においては、チェックパターンは、メモリ装置のメモリ領域のうちの、例えば50%(パーセント)以下、特に20%以下をカバーする。さらなる好ましい実施形態においては、例えば、50%よりも多く又は少なくカバーすることも可能である。
【0008】
さらなる好ましい実施形態においては、メモリ領域の第1の部分領域は、例えば、メモリ装置の少なくとも1つのアドレス領域(又はその一部)に対応することができる。さらなる好ましい実施形態においては、第1の部分領域は、メモリ装置の連続したアドレス領域を特徴付け、この場合には、第1の部分領域は、例えば、a)先頭アドレス及び終端アドレス、及び/又は、b)先頭アドレス及び第1の部分領域の長さ、及び/又は、c)終端アドレス及び第1の部分領域の長さによって記述可能である。
【0009】
さらなる好ましい実施形態においては、第1の部分領域は、メモリ装置の連続していないアドレス領域を特徴付け、この場合には、第1の部分領域を記述するために、対応する個数の先頭アドレス及び/又は終端アドレス及び/又は長さ情報を使用することができる。さらなる好ましい実施形態においては、上述した情報(先頭アドレス、終端アドレス、長さ)に代えて又はこれに加えて、第1の部分領域を画定するために、アドレスマスク、特にビットマスク又はバイトマスクを使用することもできる。さらなる好ましい実施形態においては、チェックパターンをランダム又は擬似ランダムに依存して形成するという枠内において、例えば、上述した情報(先頭アドレス、終端アドレス、長さ、ビットマスク又はバイトマスク)のうちの少なくとも1つを、ランダム及び/又は擬似ランダムに依存して選択することができる。さらなる好ましい実施形態においては、好ましくは、第1の部分領域を記述するために必要な複数の、特に総ての情報(先頭アドレス、終端アドレス、長さ、ビットマスク又はバイトマスク)が、ランダム及び/又は擬似ランダムに依存して選択又は形成される。
【0010】
さらなる好ましい実施形態においては、本方法は、チェック変数を少なくとも一時的に保存することをさらに含む。これにより、第1の部分領域のデータが、改竄された(即ち、故意に変更された)か否か、及び/又は、意図せずに変更されたか否かを特定するために、チェック変数を、例えば基準チェック変数として、後々に使用することが可能となる。
【0011】
さらなる好ましい実施形態においては、本方法は、少なくとも1つの第1の部分領域のために、チェック変数を基準チェック変数と比較することをさらに含む。例えば、基準チェック変数は、メモリ装置の製造時に、及び/又は、メモリ装置のプログラミング時に、及び/又は、その他の機会に、特に実施形態による方法を使用して特定されたものであってよく、場合によっては、比較に利用し得るように、後々に使用するために少なくとも一時的に、好ましくは安全なメモリ内に保存されたものであってよい。(現在形成された)チェック変数が、対応する基準チェック変数から相違している場合には、例えば、基準チェック変数が形成された1つ又は複数の所属する部分領域のデータが、(意図せずに)変更又は改竄されたと結論付けることができる。現在形成されたチェック変数が、対応する基準チェック変数と一致している場合には、(意図しない)変更又は改竄に該当するデータは存在しないと結論付けることができる。
【0012】
さらなる好ましい実施形態においては、チェックパターンを特定することは、以下の要素、即ち、a)チェックパターンをランダム又は擬似ランダムに依存して形成すること、b)チェックパターンを外部ユニットから受信すること、c)メモリ装置及び/又はさらなる(即ち、他の)メモリ装置からチェックパターンを読み取ること、d)チェックパターンをチェックパターンベースデータから導出することのうちの少なくとも1つを含む。
【0013】
さらなる好ましい実施形態においては、チェックパターンを形成するために、例えば、擬似ランダム発生器又はランダム発生器を使用することができ、この擬似ランダム発生器又はランダム発生器は、実施形態による方法を実施するために装置に対応付けられており、この装置は、例えば、マイクロコントローラを有し、又は、マイクロコントローラとして構成される。さらなる好ましい実施形態においては、例えば、チェックパターンをランダムに依存して形成するための確率変数として、装置のノイズ信号を使用することができ、このノイズ信号は、例えば、装置(例えば、マイクロコントローラ)のアナログ入力部において特定可能である。
【0014】
さらなる好ましい実施形態においては、ランダム又は擬似ランダムに依存して形成されたチェックパターンを、外部ユニットによって、例えば、実施形態による方法を実施するために設けられた装置のための製造装置の計算装置によって受信することも可能である。この場合、さらなる好ましい実施形態においては、チェックパターンは、安全な通信チャネルを介して装置に伝送される。
【0015】
さらなる好ましい実施形態においては、チェックパターン又は少なくとも1つのチェックパターンを、さらなる実施形態においては、場合により複数のチェックパターンも、メモリ装置内に及び/又は少なくとも1つのさらなる(任意選択肢の)メモリ装置内に保存することができ、これにより、実施形態による方法を実施するように構成された装置は、必要に応じて、対応するメモリ装置から該当するチェックパターンを読み込むことが可能となる。
【0016】
さらなる好ましい実施形態においては、完全なチェックパターンの代わりに、例えば、ランダム又は擬似ランダムに依存して形成された、まだ完全なチェックパターンになっていないチェックパターンベースデータを設けて、実施形態による装置に伝送することができ、及び/又は、メモリ装置のうちの少なくとも1つに保存することができる。さらなる好ましい実施形態においては、このチェックパターンベースデータに依存して、少なくとも1つのチェックパターンを、実施形態による装置により、特に動的に(装置の実行時間中に)形成することもできる。
【0017】
さらなる好ましい実施形態においては、少なくとも1つのチェックパターン又はチェックパターンベースデータは、安全なメモリ装置内又はメモリ装置の安全なメモリ領域内に保存され、この安全なメモリ装置又はメモリ装置の安全なメモリ領域には、例えば、実施形態による方法を実施するために設けられた装置のみがアクセスすることができるが、さらなる(特に外部)ユニットはアクセスすることができない。このことは、例えば、実施形態による装置に、好ましくは装置内に組み込まれたさらなるメモリ装置を対応付けて、このさらなるメモリ装置を、上記装置だけが読み取りすることができるようにし、例えば、外部ユニットへのデータインタフェースを有さないようにすることによって実現可能である。さらなる好ましい実施形態においては、さらなるメモリ装置を、例えば、ハードウェアセキュリティモジュール内に組み込むこともでき、このハードウェアセキュリティモジュールは、例えば、さらなる好ましい実施形態においては、例えば、チェック変数を生成するために利用可能である暗号学的な方法又はアルゴリズム又は少なくともその一部を実行するようにも構成されている。
【0018】
さらなる好ましい実施形態においては、チェックパターンを形成することは、以下のステップ、即ち、ランダム又は擬似ランダムな、好ましくは2進数の数列を用意することと、数列の少なくとも1つの第1の部分に依存して、少なくとも1つの第1の部分領域を特定することと、を含み、特に、数列の第1の部分に依存して、メモリ領域内における第1の部分領域の先頭アドレスが形成される。さらなる好ましい実施形態においては、これに代えて又はこれに加えて、第1の部分領域の終端アドレス及び/又は第1の部分領域の長さは、数列に依存して、特に数列のうちの、上記の第1の部分とは異なる部分に依存して形成される。
【0019】
さらなる好ましい実施形態においては、例えば、数列の第1の部分に依存して、第1の部分領域の先頭アドレスを特定することができ、数列の第1の部分とは異なる、数列の第2の部分に依存して、第1の部分領域の長さを特定することができる。さらなる好ましい実施形態(下記参照)において、チェックパターンを形成するためにさらなる部分領域が設けられている場合には、好ましくは、これらのさらなる部分領域も同様にして特定することができる。
【0020】
さらなる好ましい実施形態においては、数列の第1の部分に依存して、例えば第1の部分領域の先頭アドレスを特定することができ、数列の第2の部分に依存して、例えば第1の部分領域の終端アドレスを特定することができる。
【0021】
さらなる好ましい実施形態においては、数列の該当する部分に依存して、先頭アドレス及び/又は終端アドレス及び/又は長さを特定することは、数列の該当する部分によって表される数値に、それぞれの規定可能な係数(さらなる好ましい実施形態においては、それぞれの規定可能な係数を、数列のそれぞれ異なる部分に対してそれぞれ異なるように選択することも可能である)を乗算することも含み得る。対応する係数を使用することにより、有利には、数列のうちの比較的短い部分から、比較的大きいメモリ領域又はメモリアドレスを特定することが可能となる。さらなる好ましい実施形態においては、それぞれの係数は、(擬似)ランダムに依存して特定可能であり、又は、一定若しくは可変に(例えば、実施形態による装置の少なくとも1つの動作パラメータに依存して)選択可能である。さらなる好ましい実施形態においては、上記の係数の使用に代えて又はこれに加えて、以前に使用された値(先頭アドレス及び/又は終端アドレス及び/又は長さ等)を適合させることも可能である。
【0022】
さらなる好ましい実施形態においては、例えば第1の部分領域の先頭アドレスは、例えば、メモリ装置のメモリ領域の先頭アドレスと、第1の部分領域との間のアドレス間隔(オフセット)としても解釈可能である。
【0023】
さらなる好ましい実施形態においては、チェックパターンは、第1の部分領域に加えて追加的に、少なくとも1つの第2の部分領域、好ましくは複数のさらなる部分領域を特徴付け、好ましくは、第2の部分領域、特に少なくとも1つのさらなる部分領域は、第1の部分領域に直接的には隣接していない。このことは、即ち、第2の部分領域又はさらなる部分領域の先頭アドレスは、メモリ装置のアドレス空間内において、第1の部分領域又は他のさらなる部分領域の終端アドレスに直接的に後続していないことを意味しており、これにより、チェック変数を形成するために寄与する部分領域が、メモリ装置のメモリ領域にわたって分布される。これによって、有利には、チェック変数の形成及び評価の過程で、メモリ装置の比較的大きい領域をチェックすることが可能となり、このためにメモリ装置のメモリ領域全体に相当するデータ量を考慮するが必要なくなる。むしろ、少なくとも1つの第1の部分領域又は場合によりさらなる任意選択肢の部分領域によって特徴付けられたメモリ領域を考慮するだけで十分である。この考察は、チェック変数の形成の意味において実施形態による部分領域によってカバーされていないメモリ領域を意図的に改竄することは、チェックパターンがランダム又は擬似ランダムに依存して形成されることに起因して、このチェックパターンを把握していなければ極めて困難又は不可能となるという事実に基づいている。従って、さらなる好ましい実施形態においては、少なくとも1つの第1の部分領域又は任意選択肢のさらなる部分領域が、メモリ装置のメモリ領域全体をカバーしていなくても十分である。これによって、さらに、チェック変数を形成するためにメモリ領域全体のデータ全体が考慮されるような変形例と比較して、メモリ領域のチェックが加速される。なぜなら、特に好ましい実施形態においては、チェック変数を形成するために、メモリ領域全体のデータ全体よりも少ないデータが処理されるからである。
【0024】
さらなる好ましい実施形態においては、本方法は、以下の要素、即ち、a)数列の第1の部分とは異なる、数列の第2の部分に依存して、第2の部分領域を特定することであって、特に、メモリ領域内における第2の部分領域の先頭アドレスは、数列の第2の部分に依存して形成される、こと、b)特に、それぞれ数列の第1の部分及び/又は第2の部分とは異なる、数列のそれぞれの対応するさらなる部分に依存して、さらなる部分領域を特定することであって、特に、メモリ領域内におけるそれぞれのさらなる部分領域の先頭アドレスは、数列の対応するさらなる部分に依存して形成される、ことのうちの少なくとも1つをさらに含む。さらなる好ましい実施形態においては、第1の部分領域の特定に関連して上述した態様を、第2の部分領域及び/又は少なくとも1つのさらなるメモリ領域にも相応に適用することができる。
【0025】
さらなる好ましい実施形態においては、総ての部分領域が、同一の長さを有する。この場合には、例えば、さらなる好ましい実施形態において、該当する部分領域の先頭アドレス又は終端アドレスを、擬似ランダム又はランダムに特定することができる。
【0026】
さらなる好ましい実施形態においては、複数の部分領域のうちの少なくともいくつかの部分領域が、それぞれ異なる長さを有する。この場合には、例えば、さらなる好ましい実施形態において、該当する部分領域の長さ(と、場合により先頭アドレス及び/又は終端アドレスと)を、擬似ランダム又はランダムに特定することができる。
【0027】
さらなる好ましい実施形態においては、チェック変数を形成することは、以下の要素、即ち、a)特に少なくとも1つの第1の部分領域内に保存されているデータに、ハッシュ関数、特に暗号学的なハッシュ関数を適用すること、b)少なくとも1つの第1の部分領域内に保存されているデータに依存して、チェックサムを形成すること、c)特に第1の秘密(特に非対称な私有)鍵と、少なくとも1つの第1の部分領域内に保存されているデータとに依存して、署名を形成すること(さらなる好ましい実施形態においては、署名は、ハッシュ値(上記の要素a)を参照)によっても形成可能である)、d)特に第2の秘密(特に対称)鍵と、少なくとも1つの第1の部分領域内に保存されているデータとに依存して、メッセージ認証コード(MAC:message authentication code)を形成することのうちの少なくとも1つを含む。
【0028】
さらなる好ましい実施形態においては、チェック変数を形成することは、以下のステップ、即ち、少なくとも1つの第1の部分領域内に保存されているデータに依存して、好ましくは、複数の部分領域内に保存されているデータに依存して、1次チェック変数を形成することと、少なくとも1次チェック変数に依存して、2次チェック変数を形成することと、を含む。
【0029】
さらなる好ましい実施形態においては、1次チェック変数を形成することは、例えばチェックサム、特にCRCチェックサムを形成すること、及び/又は、ハッシュ関数、例えばMD5(Message Digest 5)ハッシュ関数を評価することを含む。
【0030】
さらなる好ましい実施形態においては、チェック変数を形成することは、以下のステップ、即ち、メモリ装置のメモリ領域の、第1の個数の部分領域を選択することと、メモリ装置のメモリ領域の、特に第1の個数とは異なる第2の個数の部分領域を選択することと、メモリ領域の第1の個数の部分領域のための1次チェック変数を形成することと、メモリ領域の第2の個数の部分領域のための2次チェック変数を形成することと、を含み、任意選択的に、2次チェック変数を形成することは、追加的に、1次チェック変数の少なくとも1つの部分に対して実施される。これによって、有利には、それぞれ異なる部分領域に対してそれぞれ異なるチェック変数を(例えば、それぞれ異なる方法によっても)形成することができ、これによって、有利には、例えば、計算コスト及び/又は改竄に対するセキュリティを柔軟に、特に動的にも制御することが可能となる。例えば、さらなる好ましい実施形態においては、第1の個数の部分領域を、比較的少ない計算コストで特定可能な第1のチェック変数と関連付けることができ、第2の個数の部分領域を、より多くの計算コストを必要とする第2のチェック変数と関連付けることができる。第1の個数及び第2の個数、又は、第1の個数対第2の個数の比率を選択することにより、有利には、計算コスト及び/又は改竄に対するセキュリティを制御することができる。
【0031】
さらなる好ましい実施形態は、メモリ装置にアクセスするように構成された計算装置の以下の動作段階、即ち、a)スイッチオフ状態からの計算装置の始動、b)省エネルギ状態、特にサスペンド・トゥ・RAM状態からの計算装置の始動、c)再設定状態からの、即ち、リセット、特にソフトリセットからの計算装置の始動、d)通常動作のうちの少なくとも1つの動作段階の前及び/又は後及び/又は最中における、実施形態による方法の使用に関する。
【0032】
これによって、有利には、メモリ装置のメモリ内容を、例えば、スイッチオフ状態からの始動(「ブート」)の前若しくは最中に、又は、サスペンド・トゥ・RAM状態からの起動又はウェイクアップの前若しくは最中に、又は、通常動作中にも、内容が正規であるか否かについてチェックすることができ、このことは、「ランタイム改竄検知(runtime manipulation detection)」、即ち、実行時間中の改竄検知と称することもできる。
【0033】
さらなる好ましい実施形態は、メモリ装置内に保存されているデータを処理するための装置であって、以下のステップ、即ち、メモリ装置のメモリ領域のうちの少なくとも1つの第1の部分領域を特徴付ける、ランダム又は擬似ランダムに依存して形成されたチェックパターンを特定することと、チェックパターンに依存して、少なくとも1つの第1の部分領域内に保存されているデータに関連するチェック変数を形成することと、を実施するように構成されている装置に関する。
【0034】
さらなる好ましい実施形態においては、本装置は、実施形態による方法を実施するように構成されている。
【0035】
さらなる好ましい実施形態は、データを保存するためのメモリ装置のメモリ領域のうちの少なくとも1つの第1の部分領域を特徴付けるチェックパターンを形成するための方法であって、チェックパターンは、ランダム又は擬似ランダムに依存して形成される、方法に関する。さらなる好ましい実施形態においては、チェックパターンを形成するための方法は、実施形態による上述した装置によって実施される。しかしながら、さらなる好ましい実施形態においては、チェックパターンを形成するための方法を、他のユニットによって実施することが(も)でき、この他のユニットは、次いで、形成されたチェックパターンを、例えば、実施形態による装置が製造される保護された製造環境内において、好ましくは安全なチャネルを介して、例えば、実施形態による装置に提供する。
【0036】
本発明のさらなる特徴、使用可能性及び利点は、図面に図示されている本発明の実施例についての以下の説明から明らかになる。説明又は図示されている総ての特徴は、単独でも又は任意の組合せでも、特許請求の範囲におけるこれらの特徴の関連又は引用に関係なく、また、本明細書又は図面におけるこれらの特徴の文言又は表現に関係なく、本発明の対象を形成する。
【図面の簡単な説明】
【0037】
図1A】好ましい実施形態によるメモリ装置の簡略化された概略ブロック図である。
図1B】さらなる好ましい実施形態によるメモリ装置の簡略化された概略ブロック図である。
図2A】さらなる好ましい実施形態による方法の簡略化された概略フロー図である。
図2B】さらなる好ましい実施形態による方法の簡略化された概略フロー図である。
図3】さらなる好ましい実施形態による方法の簡略化された概略フロー図である。
図4A】さらなる好ましい実施形態による数列の概略図である。
図4B図4Aによるデータ内容を有するテーブルの概略図である。
図5A】さらなる好ましい実施形態による数列の概略図である。
図5B図5Aによるデータ内容を有するテーブルの概略図である。
図6A】さらなる好ましい実施形態による数列の概略図である。
図6B】さらなる好ましい実施形態による乗算器構成の概略図である。
図6C図6A図6Bによるデータ内容を有するテーブルの概略図である。
図7A】さらなる好ましい実施形態によるメモリ装置の簡略化された概略ブロック図である。
図7B】さらなる好ましい実施形態によるメモリ装置の簡略化された概略ブロック図である。
図8A】さらなる好ましい実施形態による方法の簡略化された概略フロー図である。
図8B】さらなる好ましい実施形態による方法の簡略化された概略フロー図である。
図9】さらなる好ましい実施形態による方法の簡略化された概略フロー図である。
図10】さらなる好ましい実施形態による方法の簡略化された概略フロー図である。
図11A】さらなる好ましい実施形態による方法の簡略化された概略フロー図である。
図11B】さらなる好ましい実施形態による方法の簡略化された概略フロー図である。
図11C】さらなる好ましい実施形態による方法の簡略化された概略フロー図である。
図12】さらなる好ましい実施形態による装置の簡略化された概略ブロック図である。
図13】さらなる好ましい実施形態による簡略化された概略ブロック図である。
【発明を実施するための形態】
【0038】
図1Aは、好ましい実施形態によるメモリ装置100の簡略化された概略ブロック図を示している。メモリ装置100は、例えば、少なくとも1つの半導体メモリコンポーネントを有し、例えば、揮発性メモリ(例えば、メインメモリ、RAM、ランダムアクセスメモリ)、又は、不揮発性メモリ、例えばフラッシュメモリである。先頭アドレスSAと終端アドレスEAとの間に、メモリ領域110が画定されている。
【0039】
図2Aの簡略化されたフロー図も参照すると、さらなる好ましい実施形態は、メモリ装置100内に保存されているデータDを処理するための方法であって、当該方法は、メモリ装置100のメモリ領域110のうちの少なくとも1つの第1の部分領域110_1(図1A)を特徴付ける、ランダム又は擬似ランダムに依存して形成されたチェックパターンPMを特定するステップ200、チェックパターンPMに依存して、少なくとも1つの第1の部分領域110_1内に保存されているデータDに関連するチェック変数PGを形成するステップ202を含む、方法に関する。ランダム又は擬似ランダムに依存して形成されたチェックパターンPMにより、チェック変数PGを形成する基礎として使用されるべきメモリ領域(又はこのメモリ領域内に保存されているデータ)を、例えば、所定のメモリ装置100のために予測不能かつ個別に選択することが可能となる。チェック変数PGは、有利には、第1の部分領域110_1のデータ内容を特徴付け、例えば、基準チェック変数との比較により、第1の部分領域のデータの変更、特に改竄を識別することを可能にする。
【0040】
さらなる好ましい実施形態においては、チェック変数は、(単一の)数値を表すことができ、例えば、チェックサム方法(例えば、CRC、巡回冗長検査)を用いてチェック変数を特定する場合には(CRC)チェックサムの値を表すことができ、又は、ハッシュ値方法を用いてチェック変数を特定する場合には、ハッシュ値を表すことができる。なお、このチェック変数の特定については、さらに、以下において、より詳細に説明することとする。しかしながら、さらなる好ましい実施形態においては、チェック変数は、対応する個数の個々の値のn-タプル、n=2,3,4,・・・を表すこともでき、又は、他の形式の値、例えば、ベクトル及び/又はマトリックス等を表すこともできる。
【0041】
図12の簡略化されたブロック図を参照すると、さらなる好ましい実施形態においては、実施形態による方法を実施するための装置300が設けられている。
【0042】
装置300は、好ましくは少なくとも1つの計算装置302を有し、この計算装置302には、特に、少なくとも1つのコンピュータプログラムPRG、及び/又は、データD(図1A)、特に装置300によって処理されるべきデータを少なくとも一時的に保存するために、例えば、上述したメモリ装置100を対応付けることができる。さらに好ましくは、装置300の動作を制御するための、特に実施形態による方法を実施するためのコンピュータプログラムPRGを、メモリ装置100内に格納することができる。さらなる好ましい実施形態においては、メモリ装置100内に複数のコンピュータプログラム(図12には図示せず)が保存されており、例えば、装置の始動プロセス又はさらなるコンピュータプログラムの呼出しを制御することができるブートローダと、例えば、オペレーティングシステム及び/又はアプリケーションプログラムであるさらなるコンピュータプログラムとが保存されている。
【0043】
さらなる好ましい実施形態においては、計算装置302は、以下の要素、即ち、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、プログラマブルロジックモジュール(例えば、FPGA、フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、ハードウェア回路のうちの少なくとも1つを有する。さらなる好ましい実施形態においては、これらの組合せも考えられる。
【0044】
さらなる好ましい実施形態においては、装置300(図12)には、既に上述したメモリ装置100に加えて少なくとも1つのさらなるメモリ装置304を対応付けることもでき、このさらなるメモリ装置304は、以下の要素、即ち、揮発性メモリ304a、特にメインメモリ(RAM)、不揮発性メモリ304b、特にフラッシュメモリ、例えばフラッシュEEPROMのうちの少なくとも1つを有する。これに代えて又はこれに加えて、任意選択肢の少なくとも1つのさらなるメモリ装置304が設けられている場合には、この少なくとも1つのさらなるメモリ装置304内に、装置300の動作を制御するため、特に実施形態による方法を実施するために構成されたコンピュータプログラムPRG’を格納することもできる。メモリ装置304内には、1つ又は複数のチェックパターンPM及び/又はチェック変数PG、特に基準チェック変数も、例えば、少なくとも一時的に保存することができる。
【0045】
図1Aを参照すると、さらなる好ましい実施形態においては、第1の部分領域110_1は、メモリ領域110全体には対応しておらず、例えば、メモリ領域110全体の一部のみに対応している。従って、換言すれば、さらなる好ましい実施形態においては、チェックパターンPM(図2A)は、メモリ領域110を完全にはカバーしない。さらなる好ましい実施形態においては、チェックパターンは、メモリ装置100のメモリ領域110のうちの、例えば50%以下(又は以上)、特に20%以下をカバーする。
【0046】
さらなる好ましい実施形態においては、メモリ領域110の第1の部分領域110_1は、例えば、メモリ装置100の(特に理論的に可能な又は物理的に存在するアドレス領域全体に対応するのではなく)少なくとも1つのアドレス領域AB1に対応することができ、この少なくとも1つのアドレス領域は、例えば、先頭アドレスSA1と終端アドレスEA1との間に位置する。従って、さらなる好ましい実施形態においては、第1の部分領域110_1は、メモリ装置100の連続したアドレス領域AB1を特徴付け、この場合には、第1の部分領域110_1は、例えば、a)既述した先頭アドレスSA1及び終端アドレスEA1、及び/又は、b)先頭アドレスSA1及び第1の部分領域110_1の長さ(図示せず)、及び/又は、c)終端アドレスEA1及び第1の部分領域110_1の長さによって記述可能である。
【0047】
さらなる好ましい実施形態(図示せず)においては、第1の部分領域110_1は、メモリ装置100の連続していないアドレス領域を特徴付け、この場合には、第1の部分領域を記述するために、対応する個数の先頭アドレス及び/又は終端アドレス及び/又は長さ情報を使用することができる。
【0048】
さらなる好ましい実施形態においては、上述した情報(先頭アドレス、終端アドレス、長さ)に代えて又はこれに加えて、第1の部分領域110_1を画定するために、アドレスマスク、特にビットマスク又はバイトマスク又はワードマスク又はブロックマスク(例えば、それぞれのk個のバイト、k=2,3,4,・・のブロックを有する)を使用することもできる。さらなる好ましい実施形態においては、チェックパターンPMをランダム又は擬似ランダムに依存して形成するという枠内において、例えば、上述した情報(先頭アドレス、終端アドレス、長さ、ビットマスク又はバイトマスク又はワードマスク又はブロックマスク)のうちの少なくとも1つを、ランダム及び/又は擬似ランダムに依存して選択することができる。さらなる好ましい実施形態においては、好ましくは、第1の部分領域を記述するために必要な複数の、特に総ての情報(先頭アドレス、終端アドレス、長さ、ビットマスク又はバイトマスク又はワードマスク又はブロックマスク)が、ランダム及び/又は擬似ランダムに依存して選択又は形成される。
【0049】
例えば、部分領域110_1に関して、チェックパターンを形成するために、先頭アドレスSA1及び終端アドレスEA1の両方を(擬似)ランダムに依存して特定することができる。
【0050】
図2Aを参照すると、さらなる好ましい実施形態においては、本方法は、チェック変数PGを少なくとも一時的に保存すること204をさらに含む。これにより、チェック変数PGを、例えば基準チェック変数RPG(図12)として後々に使用することが可能となり、例えば、第1の部分領域110_1のデータが、(チェック変数が形成されて以降)そうこうするうちに改竄された(即ち、故意に変更された)か否か、及び/又は、意図せずに変更されたか否かを特定するために利用可能となる。
【0051】
さらなる好ましい実施形態においては、本方法は、少なくとも1つの第1の部分領域110_1のために、現在形成されたチェック変数PG’(図2A)を(例えば、先行するステップ202,204によって得られた)基準チェック変数RPGと比較すること205をさらに含む。例えば、基準チェック変数RPGは、メモリ装置100の製造時に、及び/又は、メモリ装置100のプログラミング時に、及び/又は、その他の機会に、特に実施形態による方法(例えば、ステップ200,202)を使用して特定されたものであってよく、場合によっては、比較205に利用することができるように、後々に使用するために少なくとも一時的に、好ましくは安全なメモリ内に保存された(ステップ204を参照)ものであってよい。(現在形成された)チェック変数PG’が、対応する基準チェック変数RPGから相違している場合には、例えば、基準チェック変数RPGが形成された1つ又は複数の所属する部分領域110_1のデータが、(意図せずに)変更又は改竄されたと結論付けることができる。現在形成されたチェック変数PG’が、対応する基準チェック変数RPGと一致している場合には、(意図しない)変更又は改竄に該当するデータは存在しないと結論付けることができる。
【0052】
さらなる好ましい実施形態においては、チェックパターンPMを、メモリ装置100の製造時に、及び/又は、メモリ装置100のプログラミング時に、及び/又は、その他の機会に、特に実施形態による方法(例えば、ステップ200)を使用して特定し、場合によっては、将来的に利用することができるように、後々に使用するために少なくとも一時的に、好ましくは安全なメモリ内に保存する。
【0053】
図2Bを参照すると、さらなる好ましい実施形態においては、チェックパターンPMを特定すること200(図2A)は、以下の要素、即ち、a)チェックパターンをランダム又は擬似ランダムに依存して形成すること200a、b)チェックパターンPMを外部ユニット400(図12)から、例えばデータインタフェース306によって、特に安全な通信チャネルによって、及び/又は、安全な(製造)環境において、受信すること200b、c)メモリ装置100及び/又はさらなる(即ち、他の)メモリ装置304からチェックパターンを読み取ること200c、d)チェックパターンをチェックパターンベースデータから導出すること200dのうちの少なくとも1つを含む。
【0054】
さらなる好ましい実施形態においては、チェックパターンを形成するために、例えば、擬似ランダム発生器又はランダム発生器を使用することができ、この擬似ランダム発生器又はランダム発生器は、装置300(図12)に対応付けられており、この装置300は、例えば、マイクロコントローラを有し、又は、マイクロコントローラとして構成される。さらなる好ましい実施形態においては、例えば、チェックパターンをランダムに依存して形成するための確率変数として、装置300のノイズ信号RSを使用することができ、このノイズ信号RSは、例えば、装置300のアナログ入力部308において特定可能である。
【0055】
さらなる好ましい実施形態においては、ランダム又は擬似ランダムに依存して形成されたチェックパターンPMを、任意選択肢として、外部ユニット400(図12を参照)によって、例えば、装置300のための製造装置の計算装置によって受信することも可能である。この場合、さらなる好ましい実施形態においては、チェックパターンPMは、安全な通信チャネル及びデータインタフェース306を介して装置300に伝送される。このようにして受信したチェックパターンPMも、例えば、さらなるメモリ装置304内に保存することができる。さらなる好ましい実施形態においては、チェックパターンPMを、外部ユニット400によって、(擬似)ランダム発生器を使用して(例えば、ノイズ信号に依存して)特定又は形成することができる。
【0056】
さらなる好ましい実施形態においては、既に上述したように、チェックパターンPM又は少なくとも1つのチェックパターンを、さらに他の実施形態においては、場合により複数のチェックパターンも、メモリ装置100内に及び/又は少なくとも1つのさらなる(任意選択肢の)メモリ装置304内に保存することができ、これにより、実施形態による方法を実施するように構成された装置300は、必要に応じて、対応するメモリ装置100,304から該当するチェックパターンPMを読み込むことが可能となる。
【0057】
さらなる好ましい実施形態においては、さらなるメモリ装置304は、装置300内に組み込まれた、特に外部ユニットによってアクセスすることができないメモリ装置である。さらなる好ましい実施形態においては、メモリ装置100(図12)は、装置300に対応付けられているが、場合によっては、装置300の外部に配置されており、例えば、データインタフェース306’(アドレスバス及び/又はデータバス及び/又はシリアル通信バス等)が外部からアクセスすることができるように配置されている。これらの実施形態においては、チェックパターンPMの改竄をより困難にするために、少なくとも1つのチェックパターンPM又は複数のチェックパターン又は装置300に提供される総てのチェックパターンが、組み込まれたメモリ装置304内に配置されていると、特に有利である。このようにして、特に実施形態による方法を、メモリ装置100の少なくとも1つのメモリ領域に適用するために、計算装置302の側において、例えば、組み込まれたメモリ装置304のメインメモリ304a内に保存されているチェックパターンPMに効率的にアクセスすることができる。
【0058】
さらなる好ましい実施形態においては、完全なチェックパターンPMの代わりに、例えば、ランダム又は擬似ランダムに依存して形成された、まだ完全なチェックパターンになっていないチェックパターンベースデータPMB(図12)を設けて、実施形態による装置300に伝送することができ、及び/又は、メモリ装置100,304のうちの少なくとも一方(好ましくは、組み込まれたメモリ装置304自体)に保存することができる。さらなる好ましい実施形態においては、このチェックパターンベースデータPMBに依存して、少なくとも1つのチェックパターンPMを、装置300により、特に動的に(装置300の実行時間中に)形成することもできる。この場合、例えば、計算装置302の1つ若しくは複数のカウンタ値、又は、計算装置302の他の動作変数を使用して、予測不能なチェックパターンを得るためにチェックパターンベースデータPMBを所期のように変化させることができる。さらなる好ましい実施形態においては、チェックパターンベースデータPMBに依存してチェックパターンを形成することにより、例えば、完全なチェックパターンPMを完全に(新しく)形成する場合と比較して、有利には、計算装置302の計算時間リソースを節約することができる。
【0059】
さらなる好ましい実施形態においては、装置300には、少なくとも1つのチェックパターンPMaを保存するための別個の保護されたメモリを有するハードウェアセキュリティモジュール又は暗号モジュール307等が対応付けられている。特に好ましくは、実施形態による方法を実施するように構成された計算装置302のみが、ハードウェアセキュリティモジュール307内に保存されているチェックパターンPMaにアクセスすることができる。
【0060】
さらなる好ましい実施形態においては、ハードウェアセキュリティモジュール又は暗号モジュール307は、実施形態による方法、例えばステップ200,202等を少なくとも部分的に又は完全に実施する。さらなる好ましい実施形態においては、ハードウェアセキュリティモジュール又は暗号モジュール307は、チェックパターンPMaを管理(特に保存及び/又は形成)し、及び/又は、チェック変数PGを特定し、及び/又は、チェック変数PGを基準チェック変数RPGと比較する。さらなる好ましい実施形態においては、ハードウェアセキュリティモジュール又は暗号モジュール307は、値PG,RPGの比較の結果をさらなるユニットに、例えば計算装置302に出力するように構成されている。
【0061】
図3による簡略化されたフロー図を参照すると、さらなる好ましい実施形態においては、チェックパターンPM(図12)を形成することは、ランダム又は擬似ランダムな、好ましくは2進数の数列ZF(図4を参照)を用意するステップ210(図3)、数列ZFの少なくとも1つの第1の部分ZF1(図4A)に依存して、少なくとも1つの第1の部分領域110_1(図1A)を特定するステップ212(図3)を含み、特に、数列ZFの第1の部分ZF1(図4A)に依存して、メモリ領域110内における第1の部分領域110_1の先頭アドレスSA1(図1A)が形成される。この場合、乱数列ZFは、装置300(図12)のランダム発生器RNGによって形成され、乱数列ZFの第1の部分ZF1には、図4Aにおいては参照記号ZF1が付されており、例えば3つのビット「111」を有する。さらなる好ましい実施形態によれば、図4BによるテーブルT1は、このために第1列S1に、例えば、複数の異なる部分領域の先頭アドレスSA1,SA2,SA3,・・・の識別子を示す。例えば、これらの実施形態においては、図1Bによるメモリ領域110aの合計3つの部分領域110_1,110_2,110_3を特徴付けるチェックパターンが使用され、テーブルT1の第1列S1には、これらの部分領域110_1,110_2,110_3に対してそれぞれの先頭アドレスSA1,SA2,SA3が示されている。
【0062】
図4BのテーブルT1の第2列S2は、行Z1,Z2,Z3,・・・において、図4Aによる乱数列ZFのそれぞれの部分を含む。例えば、第1行Z1及び第2列S2(「Z1;S2」)に対応するテーブルセルには、乱数列ZFの第1の部分ZF1に対応付けられた数値0111b(2進数)又は0×7(16進数))が対応付けられており、この数値は、第1行Z1に関連する第1の部分領域110_1と、メモリ領域110a(図1B)内の基準アドレスとの間の、例えば、メモリ領域110aの先頭アドレスSA又は場合により先行する部分領域の終端アドレスとの間のアドレス間隔(「オフセット」であり、好ましくはバイト単位で測定される)を示す。即ち、この場合、第1の部分領域110_1は、例えば、メモリ領域110aの先頭アドレスSAから0111b(2進数)、即ち、10進数7個のバイトだけ離隔している。テーブルT1の行Z2及び列S2からは、第2の部分領域110_2の先頭アドレスSA2に関して、この場合には、第1の部分領域110_1の終端アドレスEA1に基づいて、0×1、即ち、1バイトのアドレス間隔又はオフセットが見て取れる。図1Bによる図面は、縮尺通りではないことに留意されたい。
【0063】
さらなる好ましい実施形態においては、チェックパターンによって特徴付けられる総ての部分領域110_1,110_2,110_3の長さは、一定であり、例えば、固定的に規定可能又は構成可能である(パラメータ化されている)。従って、該当する部分領域110_1,110_2,110_3のそれぞれの終端アドレスEA1,EA2,EA3は、それぞれの先頭アドレスSA1,SA2,SA3に一定の長さを加算することによって特に効率的に特定可能である。
【0064】
さらなる好ましい実施形態においては、検討中の部分領域110_1の先頭アドレスSA1を、乱数列ZFの対応する部分ZF1に依存して、乱数列ZFの当該部分ZF1の値に一定の又は構成可能な第1の係数F1が乗算されるようにして特定することができる。例えば、さらなる好ましい実施形態における第1の係数F1は、32であってよく、即ち、F1=32とすることができる。この場合には、乱数列ZFの第1の部分ZF1の例示的な規定された値に基づいて、第1の部分ZF1の値に第1の係数F1を乗算することにより、第1の部分領域110_1の先頭アドレスSA1を特定することができ、即ち、この場合、SA1=7(111bに相当)*F1=7*32=224(バイト)である。即ち、この実施形態においては、第1の部分領域110_1は、先頭アドレスSA1=224(即ち、例えば、SA+224)において開始する。第2の部分領域110_2の先頭アドレスSA2についても相応に特定することができ、即ち、SA2=001b*32=32であり、この第2の先頭アドレスSA2は、例えば、第2の部分領域110_2の先頭と、先行する第1の部分領域110_1の終端アドレスEA1との間の間隔を示す。第3の部分領域110_3の先頭アドレスSA3については、図4BによるテーブルT1の列S2、行Z3から-ここでも係数F1を使用して-得られ、この場合、値000bである。このことは、即ち、第3の部分領域110_3の先頭アドレスSA3が、先行する第2の部分領域110_2の終端アドレスEA2に直接的に後続することを意味する。
【0065】
さらなる好ましい実施形態においては、第1の係数F1を、擬似ランダム又はランダムに依存して選択することもできるが、しかしながら、有利には、特に、メモリ領域110a全体のサイズに依存して、及び/又は、該当するチェックパターンの基礎となる部分領域の個数に依存して、第1の係数F1の下限及び/又は上限が規定される。これに代えて、さらなる好ましい実施形態においては、乱数列ZFの部分ZF1,2,3ごとに下限及び上限を規定することもできる。例えば、数列のある1つの部分(例えば、ZF1)が下限又は上限を下回った又は上回った場合には、数列のこの部分(例えば、ZF1)は、チェックパターンの形成には考慮されず、その代わりに、後続する数列部分(例えば、ZF2)が使用される。
【0066】
さらなる好ましい実施形態においては、チェックパターンPMを形成するために、部分領域の規定可能な個数を規定することができ、これによって、有利には、チェックパターンPMの形成を制御するためのさらなる自由度が提供されている。
【0067】
これに代えて又はこれに加えて、さらなる好ましい実施形態においては、例えば、第1の部分領域110_1の終端アドレスEA1、及び/又は、第1の部分領域110_1の長さを、数列ZF(図4A)に依存して、特に数列のうちの、上記の第1の部分ZF1とは異なる部分に依存して形成することもできる。
【0068】
図5Aによる乱数列ZF’と、図5BによるテーブルT2とを参照すると、さらなる好ましい実施形態においては、例えば、数列ZF’の第1の部分ZF1に依存して、第1の部分領域110_1の先頭アドレスSA1を特定することができ、数列ZF’の第1の部分ZF1とは異なる、数列ZF’の第2の部分ZF2に依存して、第1の部分領域110_1の長さL1(図1B)を特定することができる。さらなる好ましい実施形態において、チェックパターンを形成するためにさらなる部分領域110_2,110_3,・・・が設けられている場合には、さらなる好ましい実施形態においては、これらのさらなる部分領域も同様にして特定することができる。
【0069】
図5BによるテーブルT2においては、例えば、第1行Z1が、チェックパターンの第1のメモリ領域に対応付けられており、第2行Z2が、第2のメモリ領域に対応付けられており、以下同様である。数列ZF’の第1の部分ZF1によって得られるランダム値は、列S2、行Z1に記入されており、さらなる好ましい実施形態においては、第1の部分領域110_1のサイズ又は長さを特徴付ける。数列ZF’の第2の部分ZF2によって得られるさらなるランダム値は、列S3、行Z1に記入されており、さらなる好ましい実施形態においては、第1の部分領域110_1と、後続する第2の部分領域110_2との間のアドレス間隔(オフセット)を特徴付け、即ち、例えば、第2の部分領域の先頭アドレスSA2と第1の部分領域の終端アドレスEA1との間の差を特徴付ける。数列ZF’の第3の部分ZF3によって得られる第3のランダム値は、列S2、行Z2に記入されており、第2の部分領域110_2の長さを特徴付ける。数列ZF’の第4の部分ZF4によって得られる第4のランダム値は、列S3、行Z2に記入されており、第2の部分領域110_2と、後続する第3の部分領域との間のアドレス間隔(オフセット)を特徴付け、以下同様である。
【0070】
さらなる好ましい実施形態においては、数列ZF’の第1の部分ZF1に依存して、例えば、第1の部分領域及び/又は少なくとも1つのさらなる部分領域の先頭アドレスを特定することができ、数列ZF’の第2の部分ZF2に依存して、例えば、第1の部分領域及び/又は少なくとも1つのさらなる部分領域の終端アドレスを特定することができる。
【0071】
さらなる好ましい実施形態においては、数列の該当する部分に依存して、少なくとも1つの部分領域の先頭アドレス及び/又は終端アドレス及び/又は長さを特定することは、数列の該当する部分によって表される数値に、それぞれの規定可能な係数(例えば、上述した第1の係数と同様であり、さらなる好ましい実施形態においては、それぞれの規定可能な係数を、数列のそれぞれ異なる部分に対してそれぞれ異なるように選択することも可能である)を乗算することも含み得る。対応する係数を使用することにより、有利には、数列ZF,ZF’のうちの比較的短い部分ZF1,ZF2,・・から、比較的大きいメモリ領域又はメモリアドレス、及び/又は、それぞれのメモリ領域の間の比較的大きいオフセットを特定することが可能となる(例えば、係数が、乱数列のうちのオフセットを符号化する部分に乗算される場合)。さらなる好ましい実施形態においては、それぞれの係数は、(擬似)ランダムに依存して特定可能であり、又は、一定若しくは可変に(例えば、装置300(図12)の少なくとも1つの動作パラメータに依存して)選択可能である。
【0072】
さらなる好ましい実施形態においては、例えば第1の部分領域110_1の先頭アドレスSA1は、例えば、メモリ装置のメモリ領域110a(図1B)の先頭アドレスSAと、第1の部分領域110_1との間のアドレス間隔(オフセット)としても解釈可能である。
【0073】
さらなる好ましい実施形態においては、チェックパターンは、第1の部分領域110_1に加えて追加的に、少なくとも1つの第2の部分領域110_2(図1B)、好ましくは複数のさらなる部分領域を特徴付け、好ましくは、第2の部分領域110_2、特に少なくとも1つのさらなる部分領域は、第1の部分領域110_1に直接的には隣接していない。このことは、即ち、第2の部分領域又はさらなる部分領域の先頭アドレスSA2は、メモリ装置のアドレス空間内において、第1の部分領域110_1又は他のさらなる(先行する)部分領域の終端アドレスEA1に直接的に後続していないことを意味しており、これにより、チェック変数PG(図2A)を形成するために寄与する部分領域110_1,110_2が、メモリ装置100のメモリ領域110a(図1B)にわたって分布させられる。これによって、有利には、チェック変数の形成及び評価の過程で、メモリ装置100(図1)の比較的大きい領域をチェックすることが可能となり、このためにメモリ装置100のメモリ領域110,110a全体に相当するデータ量を考慮する必要がなくなる。むしろ、少なくとも1つの第1の部分領域110_1又は場合によりさらなる任意選択肢の部分領域110_2,110_3によって特徴付けられたメモリ領域を考慮するだけで十分である。この考察は、メモリ領域のうちの、チェック変数PGの形成の意味において実施形態による部分領域110_1,110_2によってカバーされていないメモリ領域又は部分を意図的に改竄することは、特にチェックパターンPMが反復的に、特に周期的に新たに形成されるようなさらなる好ましい実施形態の場合には、チェックパターンPMがランダム又は擬似ランダムに依存して形成されることに起因して極めて困難又は不可能となるという事実に基づいている。従って、さらなる好ましい実施形態においては、少なくとも1つの第1の部分領域110_1又は任意選択肢のさらなる部分領域110_2,110_3が、メモリ装置100のメモリ領域110,110a全体をカバーしていなくても十分である。これによって、さらに、チェック変数を形成するためにメモリ領域全体のデータ全体が考慮されるような変形例と比較して、メモリ領域110,110aのチェックが加速される。なぜなら、特に好ましい実施形態においては、チェック変数を形成するために、メモリ領域全体のデータ全体よりも少ないデータが処理されるからである。
【0074】
図3によるフロー図を参照すると、さらなる好ましい実施形態においては、本方法は、a)数列ZF,ZF’の第1の部分ZF1とは異なる、数列ZF,ZF’(図4A図5A)の第2の部分ZF2に依存して、第2の部分領域110_2を特定すること214aであって、特に、メモリ領域110,110a内における第2の部分領域110_2の先頭アドレスSA2は、数列ZF,ZF’の第2の部分ZF2に依存して形成される、こと214aをさらに含む。これについてのさらなる好ましい実施形態は、図4A図4B図5A図5Bを参照しながら既に上述したものである。
【0075】
図3によるフロー図を参照すると、さらなる好ましい実施形態においては、本方法は、特に、それぞれ数列ZF’の第1の部分ZF1及び/又は第2の部分ZF2とは異なる、数列ZF’のそれぞれの対応するさらなる部分ZF3,ZF4に依存して、さらなる部分領域110_3,・・・を特定すること214bであって、特に、メモリ領域110a内におけるそれぞれのさらなる部分領域110_3の先頭アドレスSA3は、数列ZF’の対応するさらなる部分ZF3に依存して形成される、こと214bをさらに含む。さらなる好ましい実施形態においては、第1の部分領域110_1の特定に関連して上述した態様を、第2の部分領域及び/又は少なくとも1つのさらなるメモリ領域にも相応に適用することができる。
【0076】
さらなる好ましい実施形態においては-図1Bを参照して既に述べたように-、少なくとも2つ、好ましくは総ての部分領域110_1,110_2,110_3が、同一の長さL1を有する。この場合には、例えば、さらなる好ましい実施形態において、該当する部分領域の先頭アドレス又は終端アドレスを、擬似ランダム又はランダムに特定することができる。さらなる好ましい実施形態においては、一定の長さL1を(擬似)ランダムに依存して特定し、その後、複数の異なる部分領域を画定するために使用することも考えられる。
【0077】
さらなる好ましい実施形態においては、複数の部分領域のうちの少なくともいくつかの部分領域が、それぞれ異なる長さを有する。この場合には、例えば、さらなる好ましい実施形態において、該当する部分領域の長さ(と、場合により先頭アドレス及び/又は終端アドレスと)を、擬似ランダム又はランダムに特定することができる。
【0078】
さらなる好ましい実施形態においては、少なくとも1つの部分領域110_1の長さL1(図1B)は、数列ZF,ZF’の少なくとも1つの部分に依存して特定される。
【0079】
以下においては、図6A図6B図6Cを参照しながら、さらなる好ましい実施形態について説明する。図6Aは、乱数列ZFを示し、この乱数列ZFは、ここでは例えば4つの異なる部分ZF1’,・・,ZF4’に区分されており、これらの部分の各々は、例えば4ビットの長さを含む。図6Bによる乗算器構成により、それぞれ異なる部分ZF1’,・・,ZF4’の対応する2進値は、第1の係数F1及び第2の係数F2によってそれぞれ異なる出力値範囲へと変換又はスケーリングされる。例えば、第1の乗算器m1を用いて、乱数列ZFの第1の部分ZF1’に対応付けられた値に、第1の係数F1が乗算され、その積として出力値ZF1’’が得られ、この出力値ZF1’’は、ここでは図6CによるテーブルT3の列S2及び行Z1にも記入されている。この出力値ZF1’’は、さらなる好ましい実施形態においては、例えば、第1の部分領域110_1のサイズ又は長さL1を規定するために使用可能である。同様にして、第2の乗算器m2(図6B)を用いて、さらなる出力値ZF3’’が特定され、このさらなる出力値ZF3’’は、列S2、行Z2に記入されており、例えば、第2の部分領域のサイズ又は長さを規定するために使用される。列S3、行Z1,Z2において特定される出力値ZF2’’,ZF4’’は、図6Bから見て取れるように、さらなる乗算器m3,m4を用いて、乱数列ZFのさらなる部分ZF2’,ZF4’と、第2の係数F2とに依存して特定可能であり、例えば、対応する行Z1,Z2に相当する部分領域と、それぞれの先行する部分領域の終端との間又はメモリ領域110aの先頭アドレスSAとの間のアドレス間隔又はオフセットを画定する(図1B)。
【0080】
さらなる好ましい実施形態においては、第2の係数F2も一定とすることができ、例えば、構成可能であるものとしてもよいし、又は、(擬似)ランダムに依存して形成可能であるものとしてもよい。
【0081】
図7Aは、さらなる好ましい実施形態によるメモリ装置のメモリ領域110bの簡略化された概略ブロック図を示している。メモリ装置の、先頭アドレスSA及び終端アドレスEAによって画定されるメモリ領域110bは、ここでは、複数の異なる部分領域110_1,110_2,110_3a,110_3b,110_3c,110_3d(まとめて複数のさらなる部分領域と称される),110_4a,110_4b,110_4c,110_4d,110_4e(まとめて複数のさらなる部分領域と称される)に細分されている。部分領域110_1,110_2,110_3a,110_3b,110_3c,110_3dは、実施形態によるチェックパターンPM(図12)を形成し、このチェックパターンPM(図12)は、例示的に上述した実施形態によれば、例えば(擬似)ランダムに基づいて形成されたものである。これらの部分領域110_1,110_2,110_3a,110_3b,110_3c,110_3dの各々を、例えば、見易くするために図示していないそれぞれの先頭アドレスと、それぞれの終端アドレスとによって特徴付けることができる。さらなる部分領域110_4a,110_4b,110_4c,110_4d,110_4eは、さらなる好ましい実施形態においては、チェックパターンPMの構成部分ではなく、従って、チェック変数PG(図2Aのステップ202を参照)を形成する基礎として使用されない。図7Aに例示的に示されている構成においては、チェックパターンを共に形成している総ての部分領域は、例えば同一の長さを有する。図7Aからは、部分領域110_1,110_2,110_3a,110_3b,110_3c,110_3dによって特徴付けられる又は形成されるチェックパターンが、メモリ領域110b全体を実質的に均一にカバーしていることが見て取れ、従って、実施形態によってチェックパターンPMに依存して特定されるチェック変数PGを用いて、メモリ領域110b全体を高信頼性にチェックすることが可能となる。チェックパターンPMにランダム要素が含まれていることにより、攻撃者は、チェックパターンPM又はその一部、即ち、特に、個々の部分領域の個数及び/又は位置及び/又はサイズを把握及び予測することが不可能となり、従って、これに基づいて、チェック変数PGの形成と、ひいては場合により、メモリ領域110bのデータを変更してチェック変数を模造することを目的とした改竄とが、極めて困難又は不可能となる。
【0082】
図7Bは、さらなる好ましい実施形態によるメモリ装置100のメモリ領域110cの簡略化された概略ブロック図を示している。図7Bから見て取れるように、チェックパターンPMに関連する部分領域110_1,110_2,110_3a,110_3b,110_3c,110_3dは、それぞれ異なる長さを有し、さらなる好ましい実施形態においては、これらの長さを、例えばランダムに依存して、特に乱数列ZF,ZF’に依存して特定することができる。図7Bにおいては、ここではチェックパターンPMによってカバーされていない部分領域のいくつかに、参照符号110_4a,110_4bが象徴的に付されている。
【0083】
図7A図7Bを参照しながら(縮尺通りではなく又は非常に概略的に)図示されたメモリ領域と、メモリ領域の部分領域と、チェックパターンを形成するための所属に対するこれらの部分領域の割り当てとは、単なる例示に過ぎない。さらなる好ましい実施形態においては、メモリ領域110b,110c等の内部に、他の個数のそれぞれの部分領域及び/又は他の配置のそれぞれの部分領域を設けてもよい。
【0084】
図8Aによる簡略化されたフロー図も参照すると、さらなる好ましい実施形態においては、チェック変数PGを形成すること202(図2A)は、以下の要素、即ち、a)特に少なくとも1つの第1の部分領域110_1内に保存されているデータD(図1A)に、ハッシュ関数、特に暗号学的なハッシュ関数を適用すること220、b)少なくとも1つの第1の部分領域110_1内に保存されているデータDに依存して、チェックサムを形成すること222、c)特に第1の秘密(又は私有)鍵と、少なくとも1つの第1の部分領域110_1内に保存されているデータ(及び/又は部分領域110_1内に保存されているデータのハッシュ値(ステップ220及び224から))とに依存して、署名を形成すること224、d)特に第2の秘密(又は対称)鍵と、少なくとも1つの第1の部分領域110_1内に保存されているデータDとに依存して、メッセージ認証コード(MAC:message authentication code)、特にCMAC(cipher-based MAC)を形成すること226のうちの少なくとも1つを含む。
【0085】
さらなる好ましい実施形態においては、ハッシュ関数を適用すること220は、例えば、SHA-2タイプのハッシュ関数、例えば、SHA-224及び/又はSHA-256及び/又はSHA-384及び/又はSHA-512及び/又はその他の、好ましくは暗号学的な(即ち、衝突耐性の)ハッシュ関数を適用することを含み得る。これにより、改竄に対する特に高いセキュリティが提供されている。さらなる好ましい実施形態によって例示的に使用可能なハッシュ関数についての詳細は、http://dx.doi.org/10.6028/NIST.FIPS.180-4に記載されている。
【0086】
さらなる好ましい実施形態においては、チェックサムを形成すること222は、特に、CRCチェックサム及び/又はハッシュ関数等を形成することを含み得る。その場合、特に、ハッシュ関数は、必ずしも衝突耐性でなくてもよい。これにより、さらなる好ましい実施形態においては、少なくとも装置300、又は、実施形態による方法を実施するように構成されたその他の装置のいくつかの実装において、暗号学的なハッシュ関数を使用した場合よりも必要とされる計算リソースが削減された、チェック変数PGの特に効率的な形成が可能となる。
【0087】
さらなる好ましい実施形態においては、チェック変数PGを形成するために上述した方法のうちのいずれを使用するかの選択を動的に、即ち、装置300の実行時間中に実施することもできる。これにより、チェック変数PGを形成するために提供された自由度を柔軟に利用し尽くして、例えば、装置300の計算時間リソース及び/又はメモリ又はセキュリティ要件のような規定可能な境界条件に適合させることができる。さらなる好ましい実施形態においては、さらに、或る時には、チェック変数PGを形成するために第1の方法、例えばSHA-256のような暗号学的なハッシュ関数を使用し、また或る時には、チェック変数PGを形成するために、第1の方法に比較して比較的簡単に評価可能なCRCチェックサムを使用することが可能である。さらなる好ましい実施形態によれば、チェック変数を生成するために使用されるそれぞれ異なる方法に対して、それぞれ対応する基準チェック変数RPG(図2A)を設定又は特定することができると有利である。
【0088】
図8Bの簡略化されたフロー図を参照すると、さらなる好ましい実施形態においては、チェック変数PGを形成することは、少なくとも1つの第1の部分領域110_1内に保存されているデータD(図1A)に依存して、好ましくは、複数の部分領域110_1,110_2(図1B)内に保存されているデータに依存して、1次チェック変数PG1を形成するステップ228、少なくとも1次チェック変数PG1に依存して、2次チェック変数PG2を形成するステップ229(図8B)を含む。
【0089】
さらなる好ましい実施形態においては、1次チェック変数PG1を形成すること228は、例えば、チェックサム、特にCRCチェックサムを形成すること、及び/又は、好ましくは暗号学的でないハッシュ関数、例えばMD5(Message Digest 5)ハッシュ関数を評価することを含む。これによって、1次チェック変数PG1を、比較的少ないリソース消費量で効率的に特定することができ、改竄に対するセキュリティを高めるために、例えば、暗号学的なハッシュ関数、例えばSHA-256を使用して、2次チェック変数PG2を形成することができ、この形成は、好ましくは1次チェック変数PG1に依存して実施される。さらなる好ましい実施形態においては、2次チェック変数PG2を、1次チェック変数PG1と、メモリ領域110のうちの、チェックパターンPMに関連する少なくとも1つの部分領域110_1とに依存して形成することもできる。これにより、さらなる好ましい実施形態においては、チェック変数、即ち、2次チェック変数PG2を少なくとも部分的に2段階で形成することが可能になり、この2段階での形成は、1次チェック変数PG1に加えて任意選択的に、例えばチェックパターンPMに関連する部分領域110_1のデータも直接的に考慮する。さらなる好ましい実施形態においては、1次チェック変数PG1を生成することは、1次チェック変数PG1を形成するために使用される入力データの「データ圧縮」及び/又は「データ削減」としても解釈可能である。なぜなら、さらなる好ましい実施形態においては、1次チェック変数PG1自体を、1次チェック変数PG1を特定するために考慮された入力データよりも格段に小さくすることができるからである。これによって、有利には、2次チェック変数を形成する基礎として使用されるべきデータ量を削減することができる。
【0090】
図9の簡略化されたフロー図を参照すると、さらなる好ましい実施形態においては、チェック変数PGを形成すること202(図2A)は、メモリ装置100のメモリ領域110(図1A)の、第1の個数の部分領域を選択するステップ230、メモリ装置100のメモリ領域110の、特に第1の個数とは異なる第2の個数の部分領域を選択するステップ232、メモリ領域110の第1の個数の部分領域のための1次チェック変数PG1を形成するステップ234、メモリ領域110の第2の個数の部分領域のための2次チェック変数PG1を形成するステップ236を含み、任意選択的に、2次チェック変数PG2を形成するステップ236は、追加的に、1次チェック変数PG1の少なくとも1つの部分に対して実施される。これによって、有利には、それぞれ異なる部分領域に対してそれぞれ異なるチェック変数を(例えば、それぞれ異なる方法によっても)形成することができ、これによって、有利には、例えば、計算コスト及び/又は改竄に対するセキュリティを柔軟に、特に動的にも(即ち、装置300の実行時間中に)制御することが可能となる。例えば、さらなる好ましい実施形態においては、第1の個数の部分領域を、比較的少ない計算コストで特定可能な第1のチェック変数PG1と関連付けることができ、第2の個数の部分領域を、より多くの計算コストを必要とする第2のチェック変数PG2と関連付けることができる(例えば、SHA-256)。第1の個数及び第2の個数、又は、第1の個数対第2の個数の比率を選択することにより、有利には、方法全体の計算コスト及び/又は改竄に対するセキュリティを制御することができ、例えば、さらなる好ましい実施形態においては、装置300の現在の動作状態又は計算装置302の稼働率を適合させることができる。特に好ましくは、第1のチェック変数PG1の形成及び第2のチェック変数PG2の形成に利用されるデータは、例えば、チェックパターンPMに関連付けられている。
【0091】
図10は、さらなる好ましい実施形態による方法の簡略化された概略フロー図を示している。ここでは、例えば、合計5つのメモリ領域110a,110b,110c,110d,110eが考慮され、これらのメモリ領域は、例えば、メモリ装置100(図1A図12)のそれぞれ1つの部分を形成している。合計5つのメモリ領域110a,110b,110c,110d,110eの各々には、各自の専用の基準チェック変数RPGa,RPGb,RPGc,RPGd,RPGeが対応付けられており、これらの基準チェック変数RPGa,RPGb,RPGc,RPGd,RPGeは、例えば、上述した実施形態によるメモリ装置100の製造中に特定されたものであり、例えば、ハードウェアセキュリティモジュール307(図12も参照)の安全なメモリ領域内に保存されている。さらなる好ましい実施形態においては、それぞれの基準チェック変数RPGa,RPGb,RPGc,RPGd,RPGeを特定するための所属するチェックパターンを、ハードウェアセキュリティモジュール307内に保存することもできる。さらなる好ましい実施形態においては、チェックパターンを、例えば、(特に完全に)ハードウェアセキュリティモジュール307内に形成又は保存することもでき、ハードウェアセキュリティモジュール307は、例えば、チェック変数を特定するようにも構成可能である。
【0092】
第1のメモリ領域110aは、ここでは、例えば、ブートローダ、即ち、計算装置302又は装置300の始動プロセスを制御するコンピュータプログラムであって、例えば、始動プロセスの後に、いずれのさらなるプロセスが実施されるかを規定するコンピュータプログラムを含む。第2のメモリ領域110bは、装置300又は装置300の計算装置302のためのオペレーティングシステムのコンピュータプログラム及び/又はデータを表し、さらなるメモリ領域110c,110d,110eは、例えば、装置300のためのアプリケーションプログラムを表す。
【0093】
始動プロセスの開始時に、ステップs1においてまず始めに、ブートローダが格納されているメモリ領域110aのための(現在の)チェック変数が特定され、その後、基準チェック変数RPGaと比較される。一致する場合には、ブートローダが無傷であると結論付けることができ、続いてステップs2において、ブートローダが始動される。その後、ステップs3において、ブートローダは、オペレーティングシステムを含む次のメモリ領域110bのための現在のチェック変数を形成し、現在形成されたチェック変数を、対応する基準チェック変数RPGbと比較する。現在形成されたチェック変数が、メモリ領域110bのための基準チェック変数RPGbと一致する場合には、オペレーティングシステムのコンピュータプログラム及び/又はデータが無傷である、即ち、改竄されていないと結論付けられ、ステップs4において、オペレーティングシステムの対応するコンピュータプログラムが実行される。続いて、ステップs5,s6,s7,s8,sn,sn+1により、さらなるメモリ領域110c,110d,110eのためのそれぞれ1つの同様のプロセスが、それぞれ相応に対応付けられた基準チェック変数RPGc,RPGd,RPGeを使用して実施される。
【0094】
図10を参照しながら上述した実施例においては、ブートローダを含むメモリ領域110aは、好ましくは、完全にチェックされ、又は、メモリ領域110a全体をカバーするチェックパターンを使用してチェックされる。さらなる好ましい実施形態においては、ブートローダを含むメモリ領域110aを、例えば、さらなるメモリ領域110b,110c,110d,110eのための場合と同様に、メモリ領域110a全体をカバーしないチェックパターンによってチェックすることもできる。
【0095】
図11A図11B図11Cは、それぞれ、さらなる好ましい実施形態による方法の簡略化された(縮尺通りではない)概略フロー図を示している。
【0096】
図11Aに示されている構成においては、メモリ領域110f全体のうちの、第1の個数の連続していない部分領域110_1,110_2,・・,110_9を特徴付けるチェックパターンが設けられている。チェックパターンはさらに、第2の個数のさらなる部分領域を特徴付けており、これらのさらなる部分領域には、見易くするためにまとめて参照符号111が付されている。例えば、部分領域110_1,110_2の間には、ここでは4つの個々のさらなる部分領域111が存在し、部分領域110_2,110_3の間には、ここでは3つの個々のさらなる部分領域111が存在し、以下同様である。メモリ領域110fのうちの、図11Aに示されていない領域は、チェックパターンによって検出されていない。ここでは、8つの機能ブロックPG1_1,PG1_2,・・,PG1_8が設けられており、これらの機能ブロックPG1_1,PG1_2,・・,PG1_8は、各自に対応付けられたメモリ領域111のデータ内容に依存して、1次チェック変数PG1のそれぞれ1つの部分を形成する。例えば、機能ブロックPG1_1は、メモリ領域110_1,110_2の間の4つの個々のさらなる部分領域111に依存して、1次チェック変数PG1の第1の部分を形成し、機能ブロックPG1_2は、メモリ領域110_2,110_3の間の3つの個々のさらなる部分領域111に依存して、1次チェック変数PG1の第2の部分を形成し、以下同様である。従って、1次チェック変数PG1を、それぞれ機能ブロックPG1_1,・・,PG1_8によって形成される出力値の8タプルとして特徴付けることができる。さらなる好ましい実施形態においては、2次チェック変数PG2は、1次チェック変数PG1と、第1の個数の部分領域110_1,110_2,・・,110_9のデータ内容との両方に依存して形成され、このことは、ここでは、例えば、機能ブロックPG2_1によって実現可能である。2次チェック変数PG2は、例えば、後々に使用するための基準チェック変数RPG(図2A)として保存可能であり、又は、例えば、事前に保存された基準チェック変数RPGと比較するための、現在の2次チェック変数PG2として使用可能である。
【0097】
さらなる好ましい実施形態においては、機能ブロックPG1_1,・・,PG1_8は、例えば、これらの機能ブロックの入力データに関してCRCチェックサム、例えば32ビットを有するCRCチェックサムを形成するように構成可能であり、このことにより、1次チェック変数を、このときに得られたCRCチェックサムの8タプルとして特に効率的に特定することが可能となる。さらなる好ましい実施形態においては、機能ブロックPG2_1は、暗号学的なハッシュ関数、例えばSHA-256を、自身に供給された入力データEDに適用するように構成されており、このことが2次チェック変数PG2につながる。さらなる好ましい実施形態においては、入力データEDは、例えば、機能ブロックPG1_1,・・,PG1_8の出力値と、第1の個数の部分領域110_1,110_2,・・,110_9のデータとの連結(連鎖)として形成可能である。
【0098】
図11Bに示されている構成においては、図11Aと同様に、メモリ領域110g全体のうちの、第1の個数の連続していない部分領域110_1,110_2,・・,110_9を特徴付けるチェックパターンが設けられている。チェックパターンはさらに、図11Aと同様である限り、第2の個数のさらなる部分領域を特徴付けており、これらのさらなる部分領域には、見易くするためにまとめて参照符号111が付されている。図11Aによる実施形態と同様に、メモリ領域110gのうちの、図11Bに示されていない領域は、チェックパターンによって検出されていない。図11Aによる構成とは異なり、図11Bによる構成においては、単一の機能ブロックPG1_1’が設けられており、この機能ブロックPG1_1’には、第1の入力データED1としてさらなる部分領域111のデータを、ここでも、例えば、個々の部分領域111のデータの連結(要素Kを参照)として供給することができる。機能ブロックPG1_1’は、第1の入力データED1に依存して、例えば、ここでも、CRCチェックサムを使用して、又は、比較的さほど複雑でない、特に暗号学的又は衝突困難でない関数を使用して、第1のチェック変数PG1を形成する。その後、第1のチェック変数PG1は、第1の個数の部分領域110_1,110_2,・・,110_9と組み合わせられ、例えば連結され、このことが第2の入力データED2につながり、この第2の入力データは、さらなるブロックPG2_1により、例えばさらなる、好ましくは暗号学的なハッシュ関数、例えばSHA-256を使用して、第2のチェック変数PG2へと変換される。
【0099】
図11Cに示されている構成においては、図11A及び図11Bと同様に、メモリ領域110h全体のうちの、第1の個数の連続していない部分領域110_1,110_2,・・,110_9を特徴付けるチェックパターンが設けられている。チェックパターンはさらに、図11A図11Bと同様である限り、第2の個数のさらなる部分領域を特徴付けており、これらのさらなる部分領域には、見易くするためにまとめて参照符号111が付されている。図11A図11Bによる実施形態と同様に、メモリ領域110hのうちの、図11Cに示されていない領域は、チェックパターンによって検出されていない。図11A図11Bによる構成とは異なり、図11Cによる構成においては、それぞれのさらなる部分領域111に、例えば、CRCチェックサムを形成する過程で、1次チェック変数を形成するための各自の専用の機能ブロックが対応付けられているが、見易くするために図11Cにおいては、これらの機能ブロックのうちの3つのブロックのみにPG1_1,PG1_2,及びPG1_21が付されている。機能ブロックPG1_1,PG_2,・・,PG1_21の出力値は、好ましくは第1の個数の部分領域110_1,110_2,・・,110_9のデータ内容と共に組み合わせられ、この組合せは、好ましくは連結を含み得る。その場合、機能ブロックPG2_1は、好ましくは暗号学的なハッシュ関数、例えばSHA-512を、自身に供給された入力データEDに適用する。
【0100】
例示的に上述したチェックサム又はハッシュ関数に代えて又はこれに加えて、さらなる好ましい実施形態においては、チェック変数PG,PG1,PG2のうちの少なくとも1つを特定するために、メッセージ認証コード(例えば、MAC、CMAC)及び/又は署名を使用することもできる。
【0101】
さらなる好ましい実施形態は、メモリ装置100にアクセスするように構成された計算装置302(図12)の以下の動作段階、即ち、a)スイッチオフ状態からの計算装置302の始動(「ブート」)、b)省エネルギ状態、特にサスペンド・トゥ・RAM状態からの計算装置302の(再)始動、c)再設定状態からの、即ち、リセット、特にソフトリセットからの計算装置の始動、d)通常動作のうちの少なくとも1つの動作段階の前及び/又は後及び/又は最中における、実施形態による方法の使用に関する。
【0102】
これによって、有利には、メモリ装置100のメモリ内容を、例えば、サスペンド・トゥ・RAM状態からの始動(「ブート」)若しくは起動の前に、又は、通常動作中にも、内容が正規であるか否かについてチェックすることができ、このことは、「ランタイム改竄検知(runtime manipulation detection)」、即ち、実行時間中の改竄検知と称することもできる。
【0103】
さらなる好ましい実施形態は、メモリ装置内に保存されているデータを処理するための装置300(図12)に関し、当該装置300は、実施形態による方法を実施するように構成されている。
【0104】
さらなる好ましい実施形態は、データDを保存するためのメモリ装置100のメモリ領域110のうちの少なくとも1つの第1の部分領域110_1(図1A)を特徴付けるチェックパターンPM(図12)を形成するための方法であって、チェックパターンPMは、ランダム又は擬似ランダムに依存して形成される、方法に関する。さらなる好ましい実施形態においては、チェックパターンPMを形成するための方法は、実施形態による上述した装置300によって実施される。しかしながら、さらなる好ましい実施形態においては、チェックパターンPMを形成するための方法を、他のユニット400によって実施することが(も)でき、この他のユニット400は、次いで、形成されたチェックパターンPMを、例えば、実施形態による装置300が製造される保護された製造環境内において、好ましくは安全なチャネルを介して、例えば、実施形態による装置300に提供する。
【0105】
さらなる好ましい実施形態においては、実施形態による方法は、例えば、計算装置302によって実施可能である。これに代えて又はこれに加えて、実施形態による方法は、任意選択肢のハードウェアセキュリティモジュール307によって少なくとも部分的に実施可能であり、このハードウェアセキュリティモジュール307は、さらなる好ましい実施形態においては、装置300内に組み込み可能であり、特に、計算装置302及び/又はさらなるメモリ装置304と同一の半導体基板上に配置可能である。
【0106】
さらなる好ましい実施形態においては、ハードウェアセキュリティモジュール307は、プログラミングインタフェース(API)を有することができ又は提供することができ、従って、実施形態による方法を実施するために計算装置302によって実行されるコンピュータプログラムは、実施形態による方法の少なくともいくつかのステップ、例えば、ハッシュ関数の評価を、ハードウェアセキュリティモジュール307によって実施するために、プログラミングインタフェースにより、ハードウェアセキュリティモジュール307の対応する関数を呼び出すことができる。さらなる好ましい実施形態においては、このことは、特に、チェック変数PGの特定若しくは形成がMAC若しくはCMAC若しくは署名に基づく場合、又は、一般に、少なくとも1つの秘密鍵若しくは共有秘密等が使用されるべき場合に有利である。
【0107】
さらなる好ましい実施形態においては、実施形態による方法を実施するように構成されたコンピュータプログラムを、例えば、読み取り専用メモリ、例えばROM及び/又はOTP(ワンタイムプログラマブルメモリ)内に保存することもできる。
【0108】
さらなる好ましい実施形態においては、少なくとも2つの異なるメモリ領域110a,110b,110c,110d,110e(図10)に対して、それぞれ異なるチェックパターンPMが設けられている。これにより、さらなる自由度が提供されている。例えば、ブートローダを有するメモリ領域110aに対しては、対応する詳細な又は包括的なチェックパターンPMを用いた比較的根本的なチェックを設けることができ、その一方で、他のメモリ領域110c,110dに対しては、例えば、該当するメモリ領域のうちのより小さい領域をカバーするさほど包括的でないチェックパターンを設けることができる。
【0109】
さらなる好ましい実施形態においては、複数の異なるメモリ領域内に保存されているコンピュータプログラム及び/又はデータに依存して、該当するメモリ領域に対して、それぞれのチェックパターンが選択される。
【0110】
さらなる好ましい実施形態においては、少なくとも1つのチェックパターンを特定すること200、特に形成すること200aは、有利には動的に、即ち、装置300の実行時間中に、さらなる好ましい実施形態においては、反復的にも、特に周期的にも実施可能である。さらなる好ましい実施形態においては、少なくとも1つのチェックパターンを特定すること200、特に形成すること200aは、以下の状況、即ち、装置300の製造の完了時、装置300の始動プロセス又はブートの完了時、継続実行中、特に装置300の非アクティブ化前のうちの1つ又は複数の状況において実施可能である。上述した実施形態は、該当するチェックパターンに依存して少なくとも1つのチェック変数を特定するためにも同様に当てはまる。
【0111】
さらなる好ましい実施形態においては、特定又は生成されたチェックパターンは、一度だけ使用される。その後、場合により、少なくとも1つのさらなるチェックパターンを特定することができ、特に形成することができる。さらなる好ましい実施形態においては、チェック変数PG又は対応付けられた基準チェック変数もまた、一度だけ使用可能である。
【0112】
さらなる好ましい実施形態においては、基準チェック変数RPGが、ワンタイムプログラマブルメモリ(OTP)内に書き込まれ、その後、必要に応じて装置300から基準チェック変数を読み取ることができる。このことは、特に装置300が、任意選択肢のハードウェアセキュリティモジュール307を有していない場合に有利である。
【0113】
さらなる好ましい実施形態においては、メモリ領域110又は少なくとも1つの第1の部分領域110_1をメモリ装置100からメインメモリ304a(図12)にコピーし、コピーされたデータを用いて、実施形態による方法を実施することができ、例えば、コピーされたデータに依存してチェック変数を形成することができる。さらなる好ましい実施形態においては、特にメモリ装置100が、NORフラッシュ技術に基づくメモリセルを有する場合には、実施形態による方法を、メモリ装置100内に存在するデータに直接的に適用することもできる。
【0114】
さらなる好ましい実施形態においては、装置300は、特に自動車のための、例えば、自動車の内燃機関のため制御装置として構成可能である。しかしながら、さらなる好ましい実施形態においては、実施形態による原理の適用は、自動車分野又は制御装置分野に限定されるものではない。
【0115】
さらなる好ましい実施形態においては、実施形態による方法を、メモリ装置100をチェックするための他の方法と組み合わせることもできる。例えば、上述した実施形態によれば、少なくとも或る時には、例えば、チェックパターンを特定し、基準チェック変数を形成し、場合によっては後々に、同一のチェックパターンを使用して現在のチェック変数を形成し、現在のチェック変数を基準チェック変数と比較することによって、メモリ装置100をチェックすることができ、また或る時には、他のチェック方法によって、例えば、チェックパターンが(擬似)ランダムに依存して形成されないような方法によって、メモリ装置100をチェックすることもできる。
【0116】
実施形態による原理の重要な利点は、チェックパターンが決定性でなく、従って、実施形態によるチェックパターンを用いると、攻撃者は、メモリ装置100のうちのいずれの領域がチェックされるかを予測することができなくなるという事実である。さらなる特別な利点は、個々の装置300が、それぞれ個別のチェックパターンPM及び/又はチェックパターンベースデータPMBを特定及び/又は形成及び/又は利用することができ、従って、例えば、該当するチェックパターン及び/又はチェックパターンベースデータは、装置300の内部においてのみ把握されることとなり、このことにより、改竄がさらに困難になることにある。実施形態による原理のさらなる利点は、チェックされるべきメモリ領域を柔軟に規定することが可能であることであり、このことは、例えば、チェックパターンPMの寸法設計によって実現可能である。さらに有利には、「チェック密度」、即ち、メモリ装置100のメモリ領域全体における、チェックパターンPMによってカバーされるメモリ領域の割合を、動的に調整することが可能である。さらに、さらなる好ましい実施形態においては、実施形態による方法の連続的な反復又は再度の実施の間の待ち時間も、柔軟に調整することが可能であり、このことにより、時間的なチェック密度を正確に調整することが可能になる。さらなる好ましい実施形態においては、例えば、メモリ装置の複数の異なる部分領域110_1,110_2を、それぞれ異なる頻度により、又は、それぞれ異なるサイズのチェックパターンを用いてチェックすることができる。
【0117】
図13は、さらなる好ましい実施形態による簡略化された概略ブロック図を示している。3つの異なる動作状態Z_1,Z_2,Z_3における、メモリ装置100(図1A)のメモリ領域110が示されている。第1の動作状態Z_1は、図13においては詳細には示されていない矩形として図示された部分領域が、(擬似)ランダムに形成された第1のチェックパターンを用いて、例えば、第1のチェックパターンによって得られた第1のチェック変数と、場合によっては事前に形成された、対応する基準チェック変数とを比較することにより、チェックされたことを特徴としている。残余のチェックされていない領域は、ハッチングされている。
【0118】
第2の動作状態Z_2は、図13においては詳細には示されていないさらなる部分領域が、(擬似)ランダムに形成された第2のチェックパターンを用いて、例えば、第2のチェックパターンによって得られた第2のチェック変数と、場合によっては事前に形成された、対応する基準チェック変数とを比較することにより、チェックされたことを特徴としている。第3の動作状態Z_3は、図13においては詳細には示されていないさらなる部分領域が、(擬似)ランダムに形成された第3のチェックパターンを用いて、例えば、第3のチェックパターンによって得られた第3のチェック変数と、場合によっては事前に形成された、対応する基準チェック変数とを比較することにより、チェックされたことを特徴としている。第1の動作状態Z_1と第2の動作状態Z_2との間(段階P1を参照)においては、メモリ装置100にアクセスする装置300を、例えば、非アクティブ化によって、又は、サスペンド・トゥ・RAM状態若しくはその他の省エネルギ状態を取ることによって、非アクティブにすることができる。第2の動作状態Z_2と第3の動作状態Z_3との間(段階P2を参照)においては、メモリ装置100にアクセスする装置300を、例えば、非アクティブ化によって、又は、サスペンド・トゥ・RAM状態若しくはその他の省エネルギ状態を取ることによって、例えば、改めて非アクティブにすることができる。
【0119】
段階P1の終了後、装置300は、改めてアクティブ化され、その後、第2のチェックパターンを用いてチェックを実施し、この第2のチェックパターンは、決定性でないという自身の性質に基づいて、第1のチェックパターンによって事前にまだチェックされていないメモリ領域の、少なくとも部分的なチェックを引き起こす。段階P2の終了後のさらなるチェックのためにも、同様のことが当てはまる。このようにして、さらなる好ましい実施形態においては、有利には、メモリ装置100のメモリ領域110のほぼ全体を、逐次チェックすることができる。それと同時に、特に、装置の動作を損なうことなく比較的大きいメモリ領域も効率的にチェックすることができるように、リソース、特に計算時間に対する要求を、柔軟に制御することが可能である。
【0120】
さらなる好ましい実施形態においては、第2の動作状態Z_2の間にチェックするための第2のチェックパターンは、例えば、装置300が第1の動作状態Z_1の終了時に非アクティブ化又はシャットダウンされる前に、装置300によって特定可能である。第2のチェックパターンは、形成された後、好ましくは装置300の内部に安全に保存され、この第2のチェックパターンにより、チェック変数が特定され、このチェック変数を、第2の動作状態Z_2の間にチェックするための基準チェック変数として使用することができ、同様にして装置300内に保存される。その後、装置300は、非アクティブの段階P1に突入し、第2の動作状態Z_2を取るために、再びこの段階P1から離脱する。その後、特に第2の動作状態Z_2の間(アプリケーションプログラム等の実行中)に通常動作が取られる前に、例えばブートローダによって、事前に形成された第2のチェックパターンと、対応する基準チェック変数とを使用して、第2のチェックを実行することができる。第2のチェックは、例えば、第2のチェックパターンを使用して、現在のチェック変数を形成することと、このようにして得られた現在のチェック変数を基準チェック変数と比較することとを含み得る。現在のチェック変数が基準チェック変数と一致していることが確認された場合には、メモリ装置の改竄は実施されておらず、従って、データは真正であり、かつ、完全性があると結論付けることができる。そうでない場合には、例えば、エラー応答を開始することができる。第2の動作状態Z_2から第3の動作状態Z_3への状態移行についても、同様のシーケンスを実施することができる。チェックパターンは、個々の動作状態において非決定性に継続的に変化するので、攻撃者は、チェックパターン、ひいてはチェック変数を形成する基礎を事前に予測することができず、従って、メモリ装置100内に保存されているデータを、検出されずに改竄することがほぼ不可能となる。
【0121】
さらなる好ましい実施形態においては、実施形態による方法は、計算装置302、及び/又は、場合により設けられているハードウェアセキュリティモジュール307によって少なくとも部分的に実施可能である。例えば、さらなる好ましい実施形態においては、以下のステップ、即ち、第1若しくは第2の秘密鍵又は第1若しくは第2の秘密鍵のハッシュ値を保存すること、第1若しくは第2の秘密鍵を処理すること、チェックパターンPM又はチェックパターンベースデータを形成及び/又は保存すること、チェックパターン又はチェックパターンベースデータに基づいて、基準チェック変数を形成及び/又は保存すること、チェックパターン又はチェックパターンベースデータに基づいて、現在のチェック変数を形成及び/又は保存すること、現在のチェック変数を基準チェック変数と比較すること、又は、現在のチェック変数を検証することのうちの少なくともいくつかは、計算装置302及び/又は場合により設けられるハードウェアセキュリティモジュール307によって実施可能である。
【0122】
さらなる好ましい実施形態においては、チェックパターンPM又はチェックパターンベースデータPMB及び/又は基準チェック変数RPGを、必ずしも、例えば計算装置302の内部メモリ内に格納する必要はなく、これに代えて又はこれに加えて、さらなる好ましい実施形態においては、チェックパターンPM又はチェックパターンベースデータPMBを、例えば暗号化された形式において、外部メモリユニット内に保存することもでき、及び/又は、場合によっては、暗号化のために使用される鍵又はこの鍵のハッシュ値を、内部メモリ内に格納することができる。さらに、この鍵は、さらなる好ましい実施形態においては、好ましくはデバイス/制御装置(一般的に言えば、装置)固有に、実装可能である。
【0123】
さらなる好ましい実施形態においては、特に基準チェック変数RPGが非対称な署名である限り、及び/又は、基準チェック変数がMACである限り、基準チェック変数RPGを、特に暗号化されていない形式において、内部又は外部メモリユニット内に保存することができる。
【0124】
さらなる好ましい実施形態においては、特に基準チェック変数RPGが暗号学的なハッシュ(値)である限り、基準チェック変数RPGを、特に暗号化された形式において、外部メモリユニット内に保存することができ、特に、暗号化のために使用される鍵に関して、基準チェックパターンPMの暗号化のために利用されるものと同一又は同様の基準を利用することができる(上記の説明を参照)。
図1A
図1B
図2A
図2B
図3
図4A
図4B
図5A
図5B
図6A
図6B
図6C
図7A
図7B
図8A
図8B
図9
図10
図11A
図11B
図11C
図12
図13
【国際調査報告】