(57)【要約】１つ以上の情報ビット又は１つ以上のペイロードデータビットの形式の情報と、１つ以上の検査ビット又は１つ以上の冗長ビットの形式の冗長性とを具える少なくとも１つのデータワードの少なくとも１つの誤りを検出及び／又は訂正する誤り検出／訂正回路（１００；１００’）並びに方法において、それぞれのデータワードに補足される少なくとも１つの検査ビット又は冗長ビットを最適化し、特に少なくとも１つの物理的メモリスペースをアプリケーションの要求に依存して最適に使用可能にするために、この誤り検出／訂正回路及び方法は、  少なくとも１つの第１のデータパス（３０；３０’）に割り当てられ、少なくとも１つの第１の誤り訂正スキームを実行するとともに、  少なくとも１つの第２のデータパス（４０；４０’）に割り当てられ、少なくとも１つの第２の誤り検出／訂正スキームを実行するよう設計され、且つ前記第２のデータパスを経て伝送されるそれぞれのデータワードの前記情報及び／又は前記冗長性、特に前記１つ以上の情報ビット又は前記１つ以上のペイロードデータビットの数及び／又は前記１つ以上の検査ビット又は前記１つ以上の冗長ビットの数を増大させるように設計された少なくとも１つの第２の誤り訂正スキームを実行することを提案する。
2009510585.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の情報ビット又は１つ以上のペイロードデータビットの形式の情報と、１つ以上の検査ビット又は１つ以上の冗長ビットの形式の冗長性とを具える少なくとも１つのデータワードの少なくとも１つの誤りを検出及び／又は訂正する回路であって、
少なくとも１つの第１のデータパスに割り当てられ、少なくとも１つの第１の誤り検出／訂正スキームを実行するよう設計された少なくとも１つの処理モジュールを具える誤り検出／訂正回路において、
少なくとも１つの第２のデータパスに割り当てられ、少なくとも１つの第２の誤り検出／訂正スキームを実行するよう設計され、且つ前記第２のデータパスを経て伝送されるそれぞれのデータワードの前記情報及び／又は前記冗長性、特に前記１つ以上の情報ビット又は前記１つ以上のペイロードデータビットの数及び／又は前記１つ以上の検査ビット又は前記１つ以上の冗長ビットの数を増大させるように設計された少なくとも１つの第２のデータ処理モジュールを具えることを特徴とずる誤り検出／訂正回路。
【請求項２】
前記第１の処理モジュールは、特に
前記第１のデータパスの少なくとも１つの第１の部分に割り当てられた少なくとも１つの第１の処理部分と、
前記第１のデータパスの少なくとも１つの第２の部分に割り当てられた少なくとも１つの第２の処理部分とを具え、
前記第２の処理モジュールは、
少なくとも１つの書込み動作中に、冗長性の計算を行うように、特にそれぞれのデータパスを経て伝送されるそれぞれのデータワードに前記１つ以上の検査ビット又は前記１つ以上の冗長ビットを補足するように、及び／又は、
少なくとも１つの読出し動作中に、誤り検出を行う、特に少なくとも１つのシンドロームワードを計算するように、及び／又は、誤り訂正を行う、特にそれぞれのデータパスを経て伝送されるそれぞれのデータワードを訂正するように、
設計されていることを特徴とする請求項１記載の誤り検出／訂正回路。
【請求項３】
前記第２のデータパスを経て伝送される前記１つ以上のデータワードは、前記第１のデータパスを経て伝送される前記１つ以上のデータワードと比較して異なるワード長又はワードサイズ、特に増大したワード長又はワードサイズを有することができ、特にほぼ並列に及び／又はほぼ同時に伝送されるときは、前記第２のデータパスを経て伝送される前記１つ以上のデータワードは、前記第１のデータパスを経て伝送される前記１つ以上のデータワードに相関させることができることを特徴とする請求項１又は２記載の誤り検出／訂正回路。
【請求項４】
少なくとも２つのデータワードを具える少なくとも１つのデータエレメントを処理するための電子メモリ要素又はメモリモジュールであって、前記データエレメントの各データワードが少なくとも１つのメモリエリアに割り当てられ、前記メモリエリアが特に少なくとも１つのアドレスレンジに割り当てられる電子メモリ要素又はメモリモジュールにおいて、
それぞれのメモリエリアに対して適切なワード長又はワードサイズの選択、特に可変的な選択を可能にするために、請求項１−３の何れかに記載の少なくとも１つの誤り検出／訂正回路を具えることを特徴とするメモリ要素又はメモリモジュール。
【請求項５】
前記第１の処理モジュール並びに前記第２の処理モジュールの少なくとも１つの書込み動作及び／又は少なくとも１つの読出し動作を並列に及び／又は直列に実行するように設計されていることを特徴とする請求項４記載のメモリ要素又はメモリモジュール。
【請求項６】
前記メモリ要素又はメモリモジュールは、
少なくとも１つのデータバスと、
前記第１の処理モジュール及び前記第２の処理モジュールを前記データバスと相互接続し、特に前記データバスに、前記第１のデータパスの少なくとも１つの出力信号及び／又は前記第２のデータパスの少なくとも１つの出力信号を、少なくとも１つの信号、特に少なくとも１つのモード制御信号に依存して、供給する少なくとも１つのマルチプレクサモジュール又はマルチプレクサユニットとを具え、及び／又は、
少なくとも１つのＥＰＲＯＭ、少なくとも１つのＥＥＰＲＯＭ、少なくとも１つのフラッシュメモリ、少なくとも１つのＲＯＭ又は少なくとも１つのＲＡＭとして構成されたメモリ要素及びメモリモジュールとして構成されていることを特徴とする請求項４又は５記載のメモリ要素又はメモリモジュール。
【請求項７】
１つ以上の情報ビット又は１つ以上のペイロードデータビットの形式の情報と、１つ以上の検査ビット又は１つ以上の冗長ビットの形式の冗長性とを具える少なくとも１つのデータワードの少なくとも１つの誤りを検出及び／又は訂正する方法において、
少なくとも１つのデータパスに割り当てられた少なくとも１つの第１の誤り訂正スキームを実行するステップと、
少なくとも１つの第２のデータパスに割り当てられ、前記第２のデータパスを経て伝送されるそれぞれのデータワードの前記情報及び／又は前記冗長性、特に前記１つ以上の情報ビット又は前記１つ以上のペイロードデータビットの数及び／又は前記１つ以上の検査ビット又は前記１つ以上の冗長ビットの数を増大させるための少なくとも１つの第２の誤り訂正スキームを実行するステップと、
を具えることを特徴とする誤り検出／訂正方法。
【請求項８】
前記第１の誤り訂正スキーム及び第２の誤り訂正スキームは、それぞれ、
少なくとも１つの書込み動作中に、冗長性の計算を行う、特にそれぞれのデータパスを経て伝送されるそれぞれのデータワードに前記１つ以上の検査ビット又は前記１つ以上の冗長ビットを補足するステップ、及び／又は、
少なくとも１つの読出し動作中に、誤り検出を行う、特に少なくとも１つのシンドロームワードを計算する、及び／又は、誤り訂正を行う、特にそれぞれのデータパスを経て伝送されるそれぞれのデータワードを訂正するステップ、
を具えることを特徴とする請求項７記載の方法。
【請求項９】
前記第２の誤り訂正スキームは、前記冗長性の計算ステップを実行することによってそれぞれのデータワードに可変の数及び／又は個別の数の検査ビット又は冗長ビットを補足するよう設計され、前記補足される検査ビット又は冗長ビットの数は、特に
それぞれのデータワードのワードサイズ、特に論理的ワード長及び／又は
それぞれのデータワードのアプリケーション
に依存することを特徴とする請求項７又は８記載の方法。
【請求項１０】
少なくとも１つのセキュリティ関連又はセイフティクリティカルアプリケーションを、特に少なくとも１つのチップカード又はスマートカード、例えば少なくとも１つの組込みセキュリティコントローラ内で処理する際における、請求項１−３の何れかに記載の少なくとも１つの誤り検出／訂正回路及び／又は請求項４−６の何れかに記載の少なくとも１つのメモリ要素又はメモリモジュール及び／又は請求項７−９の何れかに記載の方法の使用。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、請求項１の前文に記載された誤り検出／訂正回路並びに請求項４の前文に記載された電子メモリ要素又は電子メモリモジュールに関する。
【０００２】
本発明は、更に、少なくとも１つの情報ビット又は少なくとも１つのペイロードデータビットの形の情報と、少なくとも１つの検査ビット又は少なくとも１つの冗長ビットの形の冗長部とを具える少なくとも１つのデータワードの少なくとも１つの誤りを検出及び／又は訂正する方法に関する。
【背景技術】
【０００３】
メモリブロックの信頼性を高めるために、誤り検出／訂正回路がよく使われている。ｎ個のペイロードデータビットのうちの単ビットの確実な訂正を保証するために、追加の冗長ビットを格納する必要があり、例えば８（又は１６）個の参照ビットは少なくとも４（又は５）個の冗長ビットを必要とし、即ち約５０％（又は３１％）の追加の記録スペースが必要とされる。
【０００４】
この大きな追加要求のために、冗長ビットの数はできるだけ小さく維持され、通常ペイロードデータの最小ワード長により決定される。冗長性の更なる増大なしでは、多ビット誤り検出／訂正はめったにない２ビット組み合わせの特別の場合にしか可能とならない。
【０００５】
セキュリティ関連アプリケーション又はセイフティクリティカルアプリケーションにおいては、メモリの信頼できる読出しアクセスの要求が高まっている。信頼性を高める種々のスキーム及び／又はあり得る攻撃を確実に検出する種々の方法は、例えば先行技術文献ＷＯ２００４／０４９３４９Ａ２に記載されているようなセル選択なしの中間ダミー読出しアクセスもしくは物理的データを禁止する特別のコードパターン（全ビットが同一の論理状態を有する）を使用するものである。
【０００６】
このような特別のコードパターンの使用は先行技術文献ＷＯ２００４／０４６９２７Ａ１に記載されている。もっと詳しく言うと、先行技術文献ＷＯ２００４／０４６９２７Ａ１には、ある状態のデータ表現が禁止され、これらの状態のデータ表現の発生はハッカーの攻撃として解釈される電子メモリ素子又はメモリモジュールが開示されている。
【０００７】
特に機密データレコード、例えば鍵の場合には、冗長性を、例えば追加の巡回冗長検査（ＣＲＣ）又はＣＲＣチェックサムにより更に増大させることができる。しかし、特にコード実行の場合には、このようなスキームは実施できない。加えて、当然のことながら、追加のチェックサムも追加のメモリスペースを必要とする。
【０００８】
誤り検出／訂正の分野の一般的な記述はChristopher Leddyの先行技術文献“A void corruption in nonvolatile memory”、インターネット＜ＵＲＬ：http://www.embedded.com/showArticle.jhtml?articleID=13100883＞
に見られる。
【０００９】
データアクセスを制限する回路が先行技術文献ＵＳ２００５／００６６３５４Ａ１に開示されている。しかし、この先行技術文献の基本的な考えはメモリモジュールの所定のアドレス領域を特権領域として知らせることにある。
【００１０】
先行技術文献ＵＳ５６２３５０４は、異なる誤り保護の程度を有するデータに関するものであるが、このデータはデータブロックとして実現される。基礎データエレメントのワード幅は常に同一である。即ち、データエレメントは均一のワードサイズを有する。データブロックは多次元フィールドとみなされる。誤り訂正は、この少なくとも２次元配列内で異なる強さのアルゴリズムで行われる、即ちブロック内の種々の位置において高い誤り訂正及び低い誤り訂正で行われる。しかし、ブロック構造は常に維持される。
【００１１】
特に、先行技術文献ＵＳ５６２３５０４には、次のような方法が開示されている。
【００１２】
データブロックの均一サイズのデータエレメントが少なくとも２次元のアレイに分布される。このアレイは少なくとも２つのステップ（１次元につき１ステップ）で追加の冗長情報を受信する。
【００１３】
追加の冗長情報の計算時に、ペイロードデータ対冗長データの比を変えることができ、例えばＵＳ５６２３５０４の図１では、５つの列を８対４の比で、８つの列を１０対２の比で符号化している。１列あたりのデータの総数のみが固定である。
【００１４】
概して、ＵＳ５６２３５０４は、数回（少なくとも２回）の順次のステップで実行されるブロック単位の符号化を開示している。可変の強さを有する誤り検出／訂正はデータブロック内の所定の位置にのみ関連する。
【００１５】
また、所定の位置で誤り訂正のレベルが異なるデータブロックに関するT. Ritthonpitak, M. Kitakami及びE. Fujiwaraの先行技術文献”Optimal Two-Level Unequal Error Control Codes for Computer Systems”, IEEE, Proceedings of FTCS-26,1996,0731-3071/96を参照されたい。
【００１６】
この先行技術文献の考察に関しては、ＵＳ５６２３５０４の考察においてなされた議論を参照されたい。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
上述した欠点及び短所から出発し、上述した従来技術を考慮すると、本発明の目的は、技術分野に記載した種類の誤り検出／訂正回路、電子メモリ要素又はメモリモジュール並びに誤り検出／訂正方法を、それぞれのデータワードに補足される1以上の検査ビット又は冗長ビットの数が最適になるように、特に少なくとも１つの物理的メモリスペースをアプリケーションの要求に依存して最適に使用できるように更に発展させることにある。
【課題を解決するための手段】
【００１８】
本発明の目的は、請求項１の特徴を具える誤り検出／訂正回路により、請求項４の特徴を具える電子メモリ要素又はメモリモジュールにより、並びに請求項７の特徴を具える方法により達成される。本発明の有利な実施例及び好適な改良例はそれぞれの従属請求項に記載されている。
【００１９】
上記の［背景技術］において述べたように、秘密性を保証するために、データは冗長情報と一緒に格納する必要がある。従って、多くの場合、慣例のメモリ要素又はメモリモジュール、特に慣例のメモリブロックは予め誤り検出／訂正回路を具え、この回路も、例えば寿命のために、冗長データ記憶を使用する。
【００２０】
固定的に選択された誤り検出／訂正パターンは所定量の追加の記憶スペースを必要とし、そのサイズはペイロードデータのワード長又はワードサイズ又は１以上の情報ビットに依存する。本発明は、少なくとも２つの誤り検出／訂正スキームを実行するというアイディアに基づくものである。
【００２１】
本発明の好適実施例によれば、両誤り検出／訂正スキームは、
少なくとも１つの書込み動作中に、冗長性の計算を行う、特にそれぞれのデータパスを経て伝送されるそれぞれのデータワードに前記１以上の検査ビット又は前記１以上の冗長ビットを補足するように、及び／又は、
少なくとも１つの読出し動作中に、誤り検出を行う、特に少なくとも１つのシンドロームワードを計算する、及び／又は、誤り訂正を行う、特にそれぞれのデータパスを経て伝送されるそれぞれのデータワードを訂正するように、
設計される。
【００２２】
更に、本発明の好適実施例によれば、それぞれのデータワードのワード長又はワードサイズを選択でき、特に例えばそれぞれのデータワードの用途に応じて可変的に選択できる。最小ワード長又はワードサイズが必要とされない所定の場合には、それぞれのデータワードのワード長又はワードサイズを有利に増大することができる。
【００２３】
従って、例えば第２のデータパスを経て伝送される１以上のデータワードは、第１のデータパスを経て伝送される１以上のデータワードに比較して異なるワード長又はワードサイズ、特に増大したワード長又はワードサイズを有するものとすることができる。
【００２４】
第２のデータパスを経て伝送される１以上のデバイスワードと第１のデバイスパスを経て伝送される１以上のデバイスワードは特に、ほぼ並列に及び／又はほぼ同時に伝送されるとき、相関するものとすることができる。
【００２５】
ワード長又はワードサイズを増大することにより、例えば多ビット誤り検出／認識を達成することができる。その理由は、ワード長又はワードサイズが増大すると、追加の記憶要求が相対的に小さくなるためである。
【００２６】
例えば、情報データ又はペイロードデータのワード長又はワードサイズを８ビットから１６ビットへ増大すると、２つの８＋４ビットの物理的ワードを１６＋８ビットのワードにまとめることができる。実際上、これにより３つの追加のデータビットが獲得される。なぜなら、単ビット訂正の場合、１６情報又はペイロードビットに対しても、１９情報又はペイロードビットに対しても、５つの冗長ビット又は検査ビットが必要とされるのみであるからである。
【００２７】
この追加の情報、即ちこれらの３つの追加のビットは、マーキング（例えばシステムフラグ）のようなシステム目的のために、又は（１以上の追加の検査ビット又は冗長ビットのイネーブル化により）冗長性を増大させ、データ保全性を増大させるために、有利に使用できる。
【００２８】
本発明の電子メモリ要素又はメモリモジュールにより処理される各データエレメントは少なくとも２つのデータワードを具え、各データワードは少なくとも１つのメモリエリアに割り当てられ、前記メモリエリアは特に少なくとも１つのアドレスレンジに割り当てられる。
【００２９】
少なくとも１つのメモリ要素又はメモリモジュール、特に少なくとも１つのメモリユニット内の２つの異なる誤り検出／訂正スキーム、特に２つの異なる誤り検出／訂正パターンの使用は、異なるアドレスレンジ内において必要に応じ異なるワード長又はワードサイズ、従って異なる安全レベルを使用可能にする。
【００３０】
従って、例えばプログラムコード及び秘密鍵のための記憶エリアには高い冗長性を与え、「ノーマル」データエリアは小さいワード長又はワードサイズ用に使用することができる。個々に使用される異なるメモリエリア及び／又は誤り検出／訂正スキームの定義は固定的に設定することができる。
【００３１】
更に、個々に使用される異なるメモリエリア及び／又は誤り検出／訂正スキームの定義はアプリケーションにおいて可変的に設定することができる。しかし、本発明の有利な実施例によれば、少なくとも１つの読出しアクセスが読出し動作時に、書込み動作時と同一の誤り検出／訂正パターンで処理されることが保証される。
【００３２】
本発明は、誤り検出／訂正は読出し動作及び書込み動作時に使用される最小のデータ単位、例えばバイトのレベルで冗長性を必要とするという事実に基づくために、本発明の好適実施例で提案されるように、大きな最小単位を特定のメモリエリア（アドレスレンジ）に対して使用することによって、物理的メモリサイズを増大することなく、冗長性を増大すること又は情報に含まれるビット数を増大することが可能になる。
【００３３】
従って、本発明の好適実施例により与えられる適切な又は設定可能な（コンフィギュラブル）誤り検出／訂正スキームによって、物理的メモリを使途のニーズに応じて最適に使用することができ、小さい及び／又は大きい記憶単位を「ノーマル」及び「拡張」データに対して使用することができる。
【００３４】
この拡張は高いセキュリティ及び機密性のために使用でき、例えばセキュアスマートカードコントローラにおけるコード実行のイネーブル化のために使用でき、またシステムフラグなどの追加の情報の記憶のために使用できる。
【００３５】
追加のダミー読出しアクセス並びに付加的に記憶されるＣＲＣチェックサムの選択が完全な読出しアクセスを必要とし、事実上平均アクセス時間を増大する慣例のスキームと異なり、例えばコンフィギュラブル誤り検出／訂正回路として実現される本発明の好適実施例によれば、メモリ要素又はメモリモジュール、特にメモリユニットのアクセス時間は影響されない。
【００３６】
本発明の好適実施例の本質的な特徴は、時間的に分解される攻撃でも容易に検出できる利点をもたらす同時性にある。これと対照的に、慣例のスキームの場合、ダミー読出しに伴う時間オフセットのために、時間的に分解されない攻撃は確実に検出することはできない。
【００３７】
これに加えて、本発明の好適実施例は、数ビットに関する攻撃に対して高い感度を有する。これと対照的に、定義によってデータワード全体内の物理的に同一のビットを禁止する慣例のコードパターンは、データワード全体を操作する攻撃を認識できるのみである。
【００３８】
更に、本発明の教えは、その実施及び／又はその適用において、例えばＣＲＣチェックサムのための追加のメモリを必要としない利点をもたらす。
【００３９】
最後に、本発明は、慣例のスキームと組み合わせることができ、例えばセキュリティ関連で及び／又はセイフティクリティカルデータの信頼性を増大するスキームと、及び／又は、可能な攻撃を確実に検出するスキームと組み合わせることができる利点を有する。
【００４０】
本発明と慣例のスキームとの組み合わせは有意義である。
【００４１】
異なるアドレス領域を通知する手順（先行技術文献ＵＳ２００５／００６６３５４Ａ１の「背景及び従来技術」に記載されている）は、どのエリアでメモリアクセスを行うかを決定するために、本発明と組み合わせて有利に使用することができる。
【００４２】
しかし、先行技術文献ＵＳ２００５／００６６３５４Ａ１が異なるアドレス領域の通知にフォーカスしているのに対して、本発明はデータコーディング自体にフォーカスしている。本発明の応用例はメモリの異なるレンジ内で異なる誤り検出／訂正を用いるものである。
【００４３】
本発明によれば、（先行技術文献ＵＳ２００５／００６６３５４Ａ１の「背景及び従来技術」に記載されているものと対照的に）、データワードの論理的長さ又は論理的サイズを、例えばアプリケーション及び／又は記憶エリアに応じて可変的に選択でき、一方メモリのデータワードの物理的幅は、いくつかの物理的ワードをまとめるかまとめないかによって確定的に与えられる。
【００４４】
例えば、１２個の物理的ビットの場合、約８個の利用可能ビット、特に情報ビット又はペイロードビットと、約４個の検査ビット又は冗長ビットを実現でき、１ビットの誤り訂正を可能にできる。
【００４５】
ワード長又はワードサイズを増大させること、特に２つの物理的ワードをひとつにまとめることにより、且つ誤り検出／訂正スキームを調整すること、即ち第２の誤り検出／訂正スキームを用いることによって、
・ 冗長性を増大するために（例えば１６の利用可能ビットの１ビット誤り訂正に対して通常５つの冗長ビットが必要とされる）、又は
・ １以上の情報ビット又はペイロードビットの数を増大するために、
例えば２４ビットを用いることができる（本例では、例えば１９の情報ビット又はペイロードビット＋５つの検査ビット又は冗長ビット）。
【００４６】
本発明の好適実施例は、簡単な一次元誤り訂正に関するものであり、いくつかのステップで順次に実行されるものではない。
【００４７】
本発明の好適実施例の要旨は、本発明のシステムに実際に使用できる最小単位、特に上述した電子メモリモジュール又はメモリ要素に実際に使用できる最小単位を保護することにある。このような最小単位は例えば８ビットワード又は１６ビットワードとすることができる。
【００４８】
本発明のこの好適実施例によれば、メモリに対して必要とされる検査ビット又は冗長ビットの数（本例では４つの追加のビット）は実際に使用できる最小情報単位（本例では８ビット）から生じる。
【００４９】
もっと大きい単位（例えば１６ビット単位）を少なくとも１つの所定のメモリエリア又は記憶エリア内の最小単位として選択できる場合（又は妥当な場合所定のアプリケーションのメモリ全体において基本的な制限がなく、アプリケーション内の管理努力のみが境界を設定する場合）には、メモリ／記憶エリアに物理的に利用できる得られた追加の冗長ビットを異なる目的のために、例えば
・ 冗長性を増大させ、誤り検出／訂正の可能性を増大させるために、及び／又は
・ 上述したように追加の情報を格納するために、
使用できる。
【００５０】
これに対して、先行技術文献ＵＳ５６２３５０４は、固定構成のデータブロックの保護に関するものである。
【００５１】
一般に、本発明はチップカード又はスマートカードのような集積回路に適用できる。チップカード又はスマートカードは異なるメモリエリア、例えば
・ ランダムアクセスメモリ（いわゆるＲＡＭ）
・ リードオンリメモリ（いわゆるＲＯＭ）
・ 電気的に消去可能なプログラマブルリードオンリメモリ（いわゆるＥＥＲＯＭ）
・ フラッシュメモリ、
などを具える。
【００５２】
特に、マネーカードのようなセキュリティ関連又はセイフティクリチカルアプリケーションでは、ＥＥＰＲＯＭ又はフラッシュメモリのメモリタイプは通常プログラムコードの記憶のために使用できない。その理由は、データ保全性を十分に保証できないためである。プログラムコードは、慣例のメモリタイプを使用するときＲＯＭ内に格納できるのみであるため、慣例の完成製品における可能なコード実現化の利点が失われる。
【００５３】
１以上の慣例の誤り検出／訂正スキームとの随意の組み合わせにおける、本発明による冗長性を増大するオプションは、データセキュリティをＲＯＭのデータセキュリティに等価な大きさに増大させることができる。
【００５４】
異なるデータワード、特に異なる安全要求又はセキュリティ要求を有するデータワード、例えばプログラムコード、コードエリア又は鍵及び「ノーマル」データワード又は「ノーマル」データエリアの明確な分離が（たとえばソフトウェアにより）可能である場合、「ノーマル」データワード又はデータエリアに小さいワード長又はワードサイズがなければ、データセキュリティの増大は実行する必要はない。
【００５５】
従って、本発明の好適実施例では、少なくとも２つの誤り検出／訂正スキーム、特に
・ 第１の、特にノーマルの、誤り検出／訂正スキーム、及び
・ 第２の、特に拡張された、誤り検出／訂正スキーム、
を実行することによって、マルチレベルの誤り検出／訂正を提供する。
【００５６】
特に、コンパチビリティのために小さいワード長又はワードサイズを提供するメモリ要素又はメモリモジュール、例えばメモリユニットは、メモリ要素又はメモリモジュール、例えばメモリユニットのアプリケーションが実際に小さいワード長又はワードサイズを必要としない場合には、上述したようなワード長又はワードサイズの増大の利益を得ることができる。
【００５７】
本発明の好適実施例によれば、
・ 少なくとも１つのセキュリティ関連データワードを実行する、特に少なくとも１つのメモリブロック又はメモリモジュールからのセーフコードを実行する、及び／又は
・ 追加の情報を格納する、
少なくとも１つのコンフィギュラブル誤り検出／訂正回路が提供される。
【００５８】
本発明は、最後に、少なくとも１つのセキュリティ関連又はセイフティクリティカルアプリケーションを、特に少なくとも１つのチップカード又はスマートカード、例えば少なくとも１つの内臓セキュリティコントローラ内で処理する際に、上述した少なくとも１つの誤り検出／訂正回路及び／又は上述した少なくとも１つのメモリ要素又はメモリモジュール及び／又は上述した方法を使用する方法にも関する。
【００５９】
従って、本発明の好適実施例は、メモリ要素又はメモリモジュール、特にメモリブロックのデータ読出しの信頼性が極めて重要なセキュリティ関連又はセイフティクリティカルアプリケーションの分野に関する。
【００６０】
本発明は特にコード実行の場合に使用でき、コード実行の場合には読出し動作を操作するよう試みる攻撃を検出可能とする必要がある。
【００６１】
以上検討したように、本発明の教えを有利に具体化する並びに改良するいくつかのオプションが存在する。この目的のために、請求項１、請求項４、請求項７にそれぞれ従属する請求項を参照されたい。本発明の他の改良、特徴及び利点について、一例として２つの好適実施例及び図面を参照して以下に更に詳細に説明する。
【発明を実施するための最良の形態】
【００６２】
図１Ａ〜図２Ｂにおいて、対応する部分は同一の参照番号で示されている。
不必要は繰り返しを避けるために、本発明の実施例、特徴および利点に関する以下の記載は、（別に記述がない限り）
・ 本発明の第１の実施例の誤り検出／訂正回路１００を具える本発明の第１の実施例の電子メモリ要素又はメモリモジュール２００（図１Ａ，１Ｂ参照）、並びに、
・ 本発明の第２の実施例の誤り検出／訂正回路１００’を具える本発明の第２の実施例の電子メモリ要素又はメモリモジュール２００’（図２Ａ，２Ｂ参照）
に関連し、すべての実施例２００，１００又は２００’，１００’は本発明の方法に従って動作する。
【００６３】
本発明の第１の実施例の誤り検出／訂正回路１００を具える本発明の第１の実施例の電子メモリ要素又はメモリモジュール２００（図１Ａ，１Ｂ参照）及び本発明の第２の実施例の誤り検出／訂正回路１００’を具える本発明の第２の実施例の電子メモリ要素又はメモリモジュール２００’（図２Ａ，２Ｂ参照）は同一の構成で実現できる。
【００６４】
しかし、図１Ａ，１Ｂには、本発明の第１の応用例、即ち冗長性を増大する例が示され、図２Ａ，２Ｂには、本発明の第２の応用例、即ち情報を増大する例が示されている。従って、以下においては、本発明はどのように構成され使用されるかを２つの好適実施例について説明する。
【００６５】
２つの異なる検出／訂正パターンを可能にするために、本発明の誤り検出／訂正回路１００又は１００’は、２つの対応する別個のデータパス３０，４０又は３０’，４０’に割り当てられた２つの処理モジュール１０,２０または１０’，２０’を具える。
【００６６】
第１の処理モジュール１０又は１０’は第１のデータパス３０又は３０’に割り当てられ、具体的には、
・ 第１の処理モジュール１０又は１０’の第１の処理部分１０ａ又は１０ａ’が第１のデータパス３０又は３０’の第１部分３０ａ又は３０ａ’に割り当てられ、
・ 第２の処理部分１０ｂ又は１０ｂ’が第１のデータパス３０又は３０’の第２部分３０ｂ又は３０ｂ’に割り当てられる。
【００６７】
第２の処理モジュール２０又は２０’は第２のデータパス４０又は４０’に割り当てられる。
【００６８】
メモリ要素又はメモリモジュール２００又は２００’は更に、データバスと、第１の処理モジュール１０又は１０’及び第２の処理モジュール２０又は２０’を該データバスと相互接続するためのマルチプレクサモジュール又はマルチプレクサユニット（ｍｕｘ）とを具える。
【００６９】
具体的には、マルチプレクサユニットｍｕｘはデータバスに、
・ 第１のデータパス３０又は３０’の出力信号３２又は３２’を、及び／又は、
・ 第２のデータパス４０又は４０’の出力信号４２又は４２’を、
チェック信号又はモニタリング信号に依存して、即ちモード制御信号（ｍｃ）に依存して供給する。
【００７０】
メモリ要素又はメモリモジュール２００又は２００’は、
・ 消去可能な読出し専用メモリ（ＥＲＯＭ）ユニット、
・ 電気的に消去可能な読出し専用メモリ（ＥＥＲＯＭ）ユニット、
・ フラッシュメモリユニット、
・ 読出し専用メモリ（ＲＯＭ）ユニット、又は
・ ランダムアクセスメモリ（ＲＡＭ）ユニット、
として構成できる。
【００７１】
各処理モジュール１０，２０又は１０’，２０’は、少なくとも１つの誤り訂正符号（ＥＣＣ）を有する誤り訂正回路として実現するのが有利であり、
・ チェックビット又は冗長ビット計算用の少なくとも１つの第１の回路部分及び
・ 単ビット誤り訂正及び／又は多ビット誤り検出用の少なくとも１つの第２の回路
を具えるものとする。
【００７２】
構成及び／又は記憶アドレスに依存して、モード制御信号ｍｃが、誤り検出または誤り訂正のどちらを書込み動作及び読出し動作中に使用すべきかを決定する。
【００７３】
処理モジュール１０,２０又は１０’，２０’の少なくとも１つで処理されるデータワードのワード長又はワードサイズを増大させると、それぞれのデータワードの情報及び／又は冗長性を増大させることができる。
【００７４】
従って、誤り検出／訂正回路１００又は１００’の構成に依存して、増大したワード長又は増大したワードサイズに対して、必要とされる追加の１以上のビットを追加の情報及び／又は冗長性の増大を格納するために使用できる。
【００７５】
例えば第１の処理モジュール１０又は１０’が８＋４ビットコーディングを使用する場合、一方では２つのデータワードの連結により高い冗長性を有する１６＋８ビットのデータワードが可能になり、他方では１９＋５ビットコーディングが可能になり、この場合には３つの追加のデータビットが使用可能になる。１７＋７ビット又は１８＋６ビットのコーディングも、誤り検出／訂正回路１００又は１００’がそのように設計されていれば可能である。
【００７６】
図１Ａ及び１Ｂは本発明の第１の例示的応用例、即ち冗長性の増大に関するものである。
【００７７】
図１Ａに示す例は８＋４ビットコーディングを使用し、本例では、処理モジュール１０の第１の処理部分１０ａに８ビット入力Ｄａが供給され、処理モジュール１０の第２の処理部分１０ｂに８ビット入力Ｄｂが供給される。
【００７８】
従って、図１Ａおよび１Ｂに示す実施例はメモリエリアから生じ、８ビットの情報データ又はペイロードデータを用い、１データワード又は１バイトメモリにつき１２物理ビットを記憶する。拡張データワードは２つのデータワードの結合により形成され、従って２４物理ビットが第１のデータパス３２に得られる（図１Ａ参照）。
【００７９】
第１の処理モジュール１０又は１０’は８＋４ビットのハミングコードを使用する。基本的には、ハミングコードは、誤データ伝送の場合にキャラクタの完全な訂正確率を最大にずるために、キャラクタ間のビット構造の差が特に大きい誤り検出／訂正コードである。
【００８０】
検査位置が種々のパリティ検査から得られるハミングコードを用いると、基本的に２以上の誤りを訂正するコードを構成することができる。ハミングコードでは、コードワード又はデータワードの情報位置の一部が偶数パリティを与えるために補足されるのみである。
【００８１】
第２の処理モジュール２０又は２０’は１６＋８ビットハミングコードを使用し（図１Ｂのデータパス４０参照）、ハミング距離はできるだけ大きくされる。ここで、ハミング距離は比較する２つのビットパターン間で異なるビットの数である。
【００８２】
一般に、２つの順序付きリストのコードワード又はデータワードを比較する場合には、ハミング距離は完全に一致しないワードの数である。従って、コードのハミング距離はコード冗長性の尺度であり、従って誤りを認識又は訂正するコードアビリティの尺度である。
【００８３】
図１Ａ，１Ｂに示すメモリ要素又はメモリモジュール２００は、拡張モードを可能にするために各対の相関データワードを並列に書き込み及び／又は読み出すように設計される。メモリ要素又はメモリモジュール２００はシリアル書込み及び／又はシリアル読出しを行うように設計することもでき、この場合にはデータをバッファするスキームを実行することができる。
【００８４】
第２の処理モジュール２０は第２の誤り検出／訂正スキーム、即ちエンハンスト誤り検出／訂正スキームを実行する。書込み動作中のエンハンスト誤り検出／訂正スキームの１６＋８コーディングは図１Ａに詳細に示されている。
【００８５】
最低値＜０＞を有するアドレスビットは２つの連結されたバイト又は連結されたデータワードを区別する。
【００８６】
２つの８ビットバイトは、書込み動作中に２つの処理モジュール１０及び２０（図１Ａ参照）により１以上の検査ビット又は冗長ビットで拡張され、ここでは第１の処理モジュール１０が二重に存在する（参照番号１０ａ及び１０ｂ）。
【００８７】
第１の処理部分１０ａ及び第２の処理部分１０ｂの各々はデータバイトＤａ及びＤｂに対して４つの検査ビット又は冗長ビットを８＋４ハミングコードに従って計算する。
【００８８】
代わりに、第２の処理モジュール２０は、８つの検査ビット又は冗長ビットを１６＋８ビットコーディングに従って計算する。従って、図１Ａは第１の処理部分１０ａ、第２の処理部分１０ｂ及び第２の処理モジュール２０の冗長性計算を示している。
【００８９】
選択されたコーディングモード、従ってモード制御信号ｍｃに応じて、２×２４ビットマルチプレクサｍｕｘが２つの１２ビットバイト（第１のデータパス３０の出力信号３２）又は２４ビットワード（第２のデータパス４０の出力信号４２）をメモリブロック２００のデータバスに接続する。バイト単位コーディングの場合で、単一のバイトのみを書き込む必要がある場合には、他のバイはメモリブロック２００で無視する必要がある。
【００９０】
マルチプレクサｍｕｘは誤り検出／訂正回路１００の２４ビット出力Ｄｚを出力する。この２４ビット出力Ｄｚは電子メモリ要素又はメモリモジュール２０００のデータ入力に与えられる。
【００９１】
図１Ｂには、読出し処理中における１６＋８ビットコーディングを具えるエンハンスト誤り検出／訂正スキームが詳細に示されている。
【００９２】
読出し動作中は、誤り検出／訂正回路１００には、電子メモリ要素又は電子メモリモジュール２００のデータ出力に接続後に、２４ビット入力Ｄｏが与えられる。
【００９３】
このとき、読出し動作中に、メモリブロック２００により読み出された群をなす２×１２ビット（図１Ｂのデータパス３０ａ，３０ｂ参照）が第１の処理部分１０ａ及び第２の処理部分１０ｂで評価され、訂正される。即ち、８データビットから冗長ビットの再計算が行われ、計算され格納された４ビットパリティの比較からシンドロームワードの生成が行われ、誤ビットの適切な訂正が必要に応じ行われる。
【００９４】
加えて、読み出された２４ビット（図１Ｂのデータパス４０参照）が拡張誤り検出／訂正スキームにより評価される。即ち、８ビットパリティ及び対応するシンドロームワードの計算が行われる。
【００９５】
シンドロームワードの２５の値は「誤りなし」状態又は「１ビット誤り」状態にそれぞれ対応し、１ビット誤りは訂正される。残りの２３１のシンドロームワードは無効データに対する基準として解釈され、例えばステータスビットＤｓとして表示される。
【００９６】
従って、図１Ｂには、第１の処理モジュール１０の第１の処理部分１０ａ及び第２の処理部分１０ｂ並びに第２の処理モジュール２０のシンドローム計算及びデータ訂正が示されている。
【００９７】
検査信号ｍｃは、有効原データ又は有効生データとしてバイト単位訂正の結果を供給すべきかワード単位訂正の結果を供給すべきかを決定する。マルチプレクサｍｕｘは対応するデータを通過させる。
【００９８】
読出し動作の処理後に、誤り検出／訂正回路の３つの出力Ｄｘ，Ｄｙ，Ｄｓが生じる。具体的には、第１の８ビット出力Ｄｘ、第２の８ビット出力Ｄｙ及びステータス情報信号Ｄｓが供給される。
【００９９】
これに関連して、ステータス情報信号Ｄｓは、冗長性を増大する場合には拡張モードにおける読出し動作中におけるデータ保全性に関する情報を含み、例えばステータス信号は、データをそのまま読み出せるか、訂正すべきで訂正できるか、訂正不能に誤っているかを示す。
【０１００】
図２Ａ，２Ｂは本発明の第２の応用例、即ち追加の情報、例えばステータスビットの格納を行うものに関する。
【０１０１】
図２Ａには、エンハンスト誤り検出／訂正スキームの１９＋５ビットコーディングの場合の書込み動作が詳細に示されている。
【０１０２】
図２Ａは、図１Ａと同様に、追加の情報を格納する手順を示している。第１の応用例（図１Ａ，１Ｂ参照）と同様に、第１の処理モジュール１０’の第１の処理部分１０ａ’及び第１の処理モジュール１０’の第２の処理部分１０ｂ’は両データバイトＤａ，Ｄｂに対して４つの検査ビット又は冗長ビットを計算する。
【０１０３】
拡張モードのための第２の処理モジュール２０’は供給されたデータバイトＤａ，Ｄｂ並びに追加の３ビットデータＤｃに対して５つの冗長ビットを計算する（図２Ａのデータパス４０’参照）。
【０１０４】
マルチプレクサｍｕｘは上述のように動作する。
【０１０５】
図２Ｂには、エンハンスト誤り検出／訂正スキームの１９＋５ビットコーディングの場合の読出し動作が詳細に示されている。
【０１０６】
この読出し動作は本質的に第１の応用例（図１Ａ，１Ｂ参照）と同一であるが、本例では第２の処理モジュール２０’は５ビットパリティのみ、従って５ビットシンドロームワードのみを計算する。
【０１０７】
代わりに、第２の処理モジュール２０’は１９の情報ビット又はペイロードデータビットを出力に供給し（図２Ｂの第２のデータパス４０’の出力信号４２’参照）、これらの１９の情報ビット又はペイロードデータビットのうちの２×８ビットは「ノーマル」データとして、３ビットは追加の情報ビットとして使用できる。
【０１０８】
読出し動作後に、誤り検出／訂正回路１００’の３つの出力Ｄｘ，Ｄｙ，Ｄｆが生じる。具体的には、第１の８ビット出力Ｄｘ、第２の８ビット出力Ｄｙ及び３ビット出力Ｄｆが供給される。３ビット出力Ｄｆは拡張モードに割り当てられ、冗長性増大の代わりに追加の情報の格納を与える。
【図面の簡単な説明】
【０１０９】
【図１Ａ】本発明による誤り検出／訂正回路の第１の実施例の、プログラミング又は書込み動作を含む部分を示す概略ブロック図である。
【図１Ｂ】本発明による誤り検出／訂正回路の第１の実施例の読み出し動作を含む部分を示す概略ブロック図である。
【図２Ａ】本発明による誤り検出／訂正回路の第２の実施例の、プログラミング又は書込み動作を含む部分を示す概略ブロック図である。
【図２Ｂ】本発明による誤り検出／訂正回路の第２の実施例の読み出し動作を含む部分を示す概略ブロック図である。
【符号の説明】
【０１１０】
１００  誤り検出／訂正回路（第１の実施例；図１Ａ，１Ｂ参照）
１００’誤り検出／訂正回路（第２の実施例；図２Ａ，２Ｂ参照）
１０    誤り検出／訂正回路１００の第１の処理モジュール（第１の実施例；図１Ａ，１Ｂ参照）
１０ａ  冗長計算（書込み動作）及び／又はシンドローム計算及びデータ訂正（読出し動作）を実行する第１の処理モジュール１０の第１の処理部分
１０ｂ  冗長計算（書込み動作）及び／又はシンドローム計算及びデータ訂正（読出し動作）を実行する第１の処理モジュール１０の第２の処理部分
１０’  誤り検出／訂正回路１００’の第１の処理モジュール（第２の実施例；図２Ａ，２Ｂ参照）
１０ａ’冗長計算（書込み動作）及び／又はシンドローム計算及びデータ訂正（読出し動作）を実行する第１の処理モジュール１０’の第１の処理部分
１０ｂ’冗長計算（書込み動作）及び／又はシンドローム計算及びデータ訂正（読出し動作）を実行する第１の処理モジュール１０’の第２の処理部分
２０    冗長計算（書込み動作）及び／又はシンドローム計算及びデータ訂正（読出し動作）を実行する誤り検出／訂正回路１００の第２の処理モジュール（第１の実施例；図１Ａ，１Ｂ参照）
２０’  冗長計算（書込み動作）及び／又はシンドローム計算及びデータ訂正（読出し動作）を実行する誤り検出／訂正回路１００’の第２の処理モジュール（第２の実施例；図２Ａ，２Ｂ参照）
３０    第１の処理モジュール１０に割り当てられた第１のデータパス（第１の実施例；図１Ａ，１Ｂ参照）
３０‘  第１の処理モジュール１０’に割り当てられた第１のデータパス（第２の実施例；図２Ａ，２Ｂ参照）
３０ａ  第１の処理部分１０ａに割り当てられた第１のデータパス３０の第１部分
３０ｂ  第１の処理部分１０ａ’に割り当てられた第１のデータパス３０’の第１部分
３０ｂ  第２の処理部分１０ｂに割り当てられた第１のデータパス３０の第２部分
３０ｂ’第２の処理部分１０ｂ’に割り当てられた第１のデータパス３０’の第２部分
３２    第１のデータパス３０の出力信号（第１の実施例；図１Ａ，１Ｂ参照）
３２’  第１のデータパス３０’の出力信号（第２の実施例；図２Ａ，２Ｂ参照）
４０    第２の処理モジュール２０に割り当てられた第２のデータパス（第１の実施例；図１Ａ，１Ｂ参照）
４０’  第２の処理モジュール２０’に割り当てられた第２のデータパス（第２の実施例；図２Ａ，２Ｂ参照）
４２    第２のデータパス４０の出力信号（第１の実施例；図１Ａ，１Ｂ参照）
４２’  第２のデータパス４０’の出力信号（第２の実施例；図２Ａ，２Ｂ参照）
２００  電子メモリ要素又は電子メモリモジュール、特に電子メモリブロック又は電子メモリユニット（第１の実施例；図１Ａ，１Ｂ参照）
２００’電子メモリ要素又は電子メモリモジュール、特に電子メモリブロック又は電子メモリユニット（第２の実施例；図２Ａ，２Ｂ参照）
Ｄａ    書込み動作中に第１のデータパス３０，３０’の第１の部分３０ａ，３０ａ’に割り当てられる誤り検出／訂正回路１００，１００’の８ビット入力（バイトＡ）
Ｄｂ    書込み動作中に第１のデータパス３０，３０’の第２の部分３０ｂ，３０ｂ’に割り当てられる誤り検出／訂正回路１００，１００’の８ビット入力（バイトＢ）
Ｄｃ    冗長性の増大の代わりに追加の情報を記憶する場合にメモリ動作時に第２のデータパス４０’に割り当てられる誤り検出／訂正回路１００’の３ビット入力
Ｄｆ    冗長性の増大の代わりに追加の情報を記憶する場合に拡張モードの読み出し動作時に供給される誤り検出／訂正回路１００’の３ビット出力
Ｄｏ    読出し動作時に、電子メモリ要素又は電子メモリモジュール２００，２００’のデータ出力と接続される誤り検出／訂正回路１００，１００’の２４ビット入力
Ｄｓ    冗長性増大時の拡張モードの読出し動作中におけるデータ保全性に関するステータス情報、例えばデータを変更なしで読み出せるか、訂正する必要があり且つ訂正できるか、訂正不能に誤っているかを示すステータス信号
Ｄｘ    読出し動作時の誤り検出／訂正回路１００，１００’の第１の８ビット出力（バイトＡ）
Ｄｙ    読出し動作時の誤り検出／訂正回路１００，１００’の第２の８ビット出力（バイトＢ）
Ｄｚ    電子メモリ要素又は電子メモリモジュール２００，２００’のデータ入力と接続される誤り検出／訂正回路１００，１００’の２４ビット出力
ｍｃ    誤り訂正モード選択のための検査信号、特にモード制御信号（ノーマル動作又は拡張動作）
ｍｕｘ  マルチプレクサモジュール又はマルチプレクサユニット
【図１Ａ】
2009510585.tif 000003
【図１Ｂ】
2009510585.tif 000004
【図２Ａ】
2009510585.tif 000005
【図２Ｂ】
2009510585.tif 000006
【国際調査報告】
2009510585.tif 000007
2009510585.tif 000008
2009510585.tif 000009