JP2003228521A - 集積回路の動作のブロック - Google Patents
集積回路の動作のブロックInfo
- Publication number
- JP2003228521A JP2003228521A JP2002343590A JP2002343590A JP2003228521A JP 2003228521 A JP2003228521 A JP 2003228521A JP 2002343590 A JP2002343590 A JP 2002343590A JP 2002343590 A JP2002343590 A JP 2002343590A JP 2003228521 A JP2003228521 A JP 2003228521A
- Authority
- JP
- Japan
- Prior art keywords
- integrated circuit
- program
- jump
- instruction
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/77—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2123—Dummy operation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
(57)【要約】
【課題】 集積回路にふくまれる情報への不正なアクセ
スを検出したときに集積回路をブロックする方法を提供
する。 【解決手段】 集積回路のランダムアクセスメモリーで
実行される第2プログラムを発生する第1プログラムを
実行する。該第2プログラムは複数の命令シークエンス
をふくみ、各シークエンスは他のシークエンスへのブラ
ンチで終了する。次に第2プログラムを実行する。
スを検出したときに集積回路をブロックする方法を提供
する。 【解決手段】 集積回路のランダムアクセスメモリーで
実行される第2プログラムを発生する第1プログラムを
実行する。該第2プログラムは複数の命令シークエンス
をふくみ、各シークエンスは他のシークエンスへのブラ
ンチで終了する。次に第2プログラムを実行する。
Description
【0001】
【発明の属する技術分野】本発明は集積回路の秘密侵害
に対する安全に関し、特に、そのメモリーの侵害への試
みがあるときに、集積回路の正常動作をブロックする技
術に関する。
に対する安全に関し、特に、そのメモリーの侵害への試
みがあるときに、集積回路の正常動作をブロックする技
術に関する。
【0002】
【従来の技術】本発明の応用例はスマートカードで、1
又は複数の集積回路チップが秘密保持、又は秘密データ
の使用の機能を実行する。
又は複数の集積回路チップが秘密保持、又は秘密データ
の使用の機能を実行する。
【0003】この種の応用、及びより一般にはアルゴリ
ズム及び/又は秘密データを実行する集積回路を使用す
る応用では、集積回路はしばしば秘密を盗むことを意図
した不正なユーザによる侵害の試みにさらされる。プロ
グラムの実行の場合にはデータの符号化つまり暗号化ア
ルゴリズムを決定することを試みる。
ズム及び/又は秘密データを実行する集積回路を使用す
る応用では、集積回路はしばしば秘密を盗むことを意図
した不正なユーザによる侵害の試みにさらされる。プロ
グラムの実行の場合にはデータの符号化つまり暗号化ア
ルゴリズムを決定することを試みる。
【0004】集積回路にふくまれるキー又は秘密量の場
合には対応するデータを決定することが試みられる。
合には対応するデータを決定することが試みられる。
【0005】集積回路の秘密量に対する侵害の試みは一
般にアタックと呼ばれる。2つのタイプのアタックが知
られている。第1のアタックは回路によるアルゴリズム
の実行の間の集積回路の消費電力を解析する。アタック
は電力消費の単純な電力解析(SPA)又は差動電力解
析(DSA)でありうる。アタックは回路の電力消費
と、この回路のチップで処理され秘密量をふくむディジ
タルデータの使用との間の直接又は統計的依存性を評価
することからなる。実際、処理回路によるアルゴリズム
処理において、回路の消費電力と処理されるデータの間
には依存性がある。侵入者は回路に発生し従って可視
で、アルゴリズムが使用したデータを用いて、回路に埋
め込まれた秘密データを決定する。
般にアタックと呼ばれる。2つのタイプのアタックが知
られている。第1のアタックは回路によるアルゴリズム
の実行の間の集積回路の消費電力を解析する。アタック
は電力消費の単純な電力解析(SPA)又は差動電力解
析(DSA)でありうる。アタックは回路の電力消費
と、この回路のチップで処理され秘密量をふくむディジ
タルデータの使用との間の直接又は統計的依存性を評価
することからなる。実際、処理回路によるアルゴリズム
処理において、回路の消費電力と処理されるデータの間
には依存性がある。侵入者は回路に発生し従って可視
で、アルゴリズムが使用したデータを用いて、回路に埋
め込まれた秘密データを決定する。
【0006】アタックの第2のカテゴリは差動侵害解析
(DFA)アタックに関する。このアタックは集積回路
が実行するアルゴリズムの進行に誤りを発生させ、秘密
情報をとり出す。
(DFA)アタックに関する。このアタックは集積回路
が実行するアルゴリズムの進行に誤りを発生させ、秘密
情報をとり出す。
【0007】スマートカード又は一般に秘密データをも
つ集積回路は、侵害の試み又は一般に侵害の試みの疑い
のある正しくないパラメータを検出する機能を有する。
つ集積回路は、侵害の試み又は一般に侵害の試みの疑い
のある正しくないパラメータを検出する機能を有する。
【0008】従って、しばしば、エンドレスループで命
令を実行することにより素子をブロックすることが望ま
れる。無限ループ動作が素子の単なる停止よりも好まし
いのは、制御をユーザに戻さず、従って侵入者による解
析をより困難にするからである。
令を実行することにより素子をブロックすることが望ま
れる。無限ループ動作が素子の単なる停止よりも好まし
いのは、制御をユーザに戻さず、従って侵入者による解
析をより困難にするからである。
【0009】命令の無限ループ動作の欠点は、集積回路
により実行されるプログラムがブロックしたという事実
を侵入者に表示してしまうことにある。特に、電力消費
解析では、ループで実行される命令を検出することが可
能である。次に、侵入者は彼の行動により素子の秘密領
域に接触したことを知ることができる。次に彼は命令カ
ウンタに干渉してループから抜け出すことができ、従っ
て素子はひ弱となる。
により実行されるプログラムがブロックしたという事実
を侵入者に表示してしまうことにある。特に、電力消費
解析では、ループで実行される命令を検出することが可
能である。次に、侵入者は彼の行動により素子の秘密領
域に接触したことを知ることができる。次に彼は命令カ
ウンタに干渉してループから抜け出すことができ、従っ
て素子はひ弱となる。
【0010】
【発明が解決しようとする課題】本発明は侵害の試みを
検出したときの集積回路で実行する従来の動作の欠点を
克服することを目的とする。
検出したときの集積回路で実行する従来の動作の欠点を
克服することを目的とする。
【0011】本発明の別の目的は、素子が干渉の検出に
反応したということを侵入者が検知することを阻止する
解決を提供することにある。
反応したということを侵入者が検知することを阻止する
解決を提供することにある。
【0012】本発明の更に別の目的は侵入の試みの度毎
に集積回路が異なる動作をすることにより再現不可能な
解決を提供することにある。
に集積回路が異なる動作をすることにより再現不可能な
解決を提供することにある。
【0013】
【課題を解決するための手段】上述の目的を達成するた
めに、本発明は、集積回路にふくまれる情報への不正な
アクセスの試みを検出したときに該集積回路をブロック
する方法において、前記集積回路のランダムアクセスメ
モリーで実行される第2プログラムを発生する第1プロ
グラムを実行し、該第2プログラムは複数の命令シーク
エンスをふくみ、各シークエンスは他のシークエンスへ
のブランチで終了し、及び前記第2プログラムを実行す
る方法を提供する。
めに、本発明は、集積回路にふくまれる情報への不正な
アクセスの試みを検出したときに該集積回路をブロック
する方法において、前記集積回路のランダムアクセスメ
モリーで実行される第2プログラムを発生する第1プロ
グラムを実行し、該第2プログラムは複数の命令シーク
エンスをふくみ、各シークエンスは他のシークエンスへ
のブランチで終了し、及び前記第2プログラムを実行す
る方法を提供する。
【0014】本発明の実施例によると、前記ランダムア
クセスメモリーの中にジャンプアドレステーブルを発生
させ、該ジャンプアドレスは相互に所定数のアドレスだ
け相違し、該ジャンプテーブルのひとつのアドレスにブ
ランチする命令をジャンプアドレスの前のアドレスに置
き、中間のアドレスを所定の命令セットからランダムに
選択される命令で充填する。
クセスメモリーの中にジャンプアドレステーブルを発生
させ、該ジャンプアドレスは相互に所定数のアドレスだ
け相違し、該ジャンプテーブルのひとつのアドレスにブ
ランチする命令をジャンプアドレスの前のアドレスに置
き、中間のアドレスを所定の命令セットからランダムに
選択される命令で充填する。
【0015】本発明の実施例によると、前記ジャンプテ
ーブルは第2プログラムの各発生毎にランダムに充填さ
れる。
ーブルは第2プログラムの各発生毎にランダムに充填さ
れる。
【0016】本発明の実施例によると、前記の予め定め
られる命令セットは、前記集積回路の重要エリアにブラ
ンチする命令をふくまない。
られる命令セットは、前記集積回路の重要エリアにブラ
ンチする命令をふくまない。
【0017】本発明の実施例によると、前記の予め定め
られる命令セットは、前記集積回路のROMにアクセス
又はジャンプする命令、又は命令を停止する命令をふく
まない。
られる命令セットは、前記集積回路のROMにアクセス
又はジャンプする命令、又は命令を停止する命令をふく
まない。
【0018】本発明の実施例によると、前記第2プログ
ラムのブランチ命令はジャンプテーブルからランダムに
アドレスを選択する。
ラムのブランチ命令はジャンプテーブルからランダムに
アドレスを選択する。
【0019】本発明の実施例によると、ランダム命令で
処理されるデータを蓄積するバッファを使用する。
処理されるデータを蓄積するバッファを使用する。
【0020】本発明は、又、少なくともひとつの非揮発
メモリー(2)とひとつの実行可能な揮発メモリー
(6)を有し、上記ブロック方法を実行する手段をふく
む、集積回路を提供する。
メモリー(2)とひとつの実行可能な揮発メモリー
(6)を有し、上記ブロック方法を実行する手段をふく
む、集積回路を提供する。
【0021】
【発明の実施の形態】明瞭化のために、本発明の理解に
必要な部材とステップのみを図示し記述する。特に、図
1は集積回路の全ての素子を示すものではない。
必要な部材とステップのみを図示し記述する。特に、図
1は集積回路の全ての素子を示すものではない。
【0022】本発明の特徴は、侵入の試みにより素子を
ブロックする必要の度毎にランダムなプログラムコード
の発生を提供することにある。
ブロックする必要の度毎にランダムなプログラムコード
の発生を提供することにある。
【0023】図1は本発明を適用する集積回路1の例を
示す。本発明の実施のために、集積回路1は、ROM、
PROM、EEPROM等で構成される非揮発メモリー
(NVM)2を有する。回路は又中央処理ユニット3
(CPU)を有し、メモリー2とバス4により通信す
る。回路1は外部と1又は複数のバス5により通信す
る。図1では単一のマルチワイヤ結合を示す。しかし、
このことは全ての制御、検出、及び処理信号がこれらの
ワイヤを通過することを意味する。上述の素子は従来の
スマートカードに装置されている。
示す。本発明の実施のために、集積回路1は、ROM、
PROM、EEPROM等で構成される非揮発メモリー
(NVM)2を有する。回路は又中央処理ユニット3
(CPU)を有し、メモリー2とバス4により通信す
る。回路1は外部と1又は複数のバス5により通信す
る。図1では単一のマルチワイヤ結合を示す。しかし、
このことは全ての制御、検出、及び処理信号がこれらの
ワイヤを通過することを意味する。上述の素子は従来の
スマートカードに装置されている。
【0024】本発明の実施のために、集積回路1はさら
に実行可能な揮発メモリー6(EVM)を有する。これ
は例えば実行可能なRAMである。この条件は発生され
たプログラムが実行可能な素子を非揮発メモリー2を用
いずにブロックするために必要である。この機能はプロ
グラムブロックのランダム発生と関連する。
に実行可能な揮発メモリー6(EVM)を有する。これ
は例えば実行可能なRAMである。この条件は発生され
たプログラムが実行可能な素子を非揮発メモリー2を用
いずにブロックするために必要である。この機能はプロ
グラムブロックのランダム発生と関連する。
【0025】回路素子の他の部分は詳述しない。それは
回路の応用に関連して全ての通常の素子をふくむ。
回路の応用に関連して全ての通常の素子をふくむ。
【0026】図2は、単純化された時間ダイヤグラムに
より、本発明により素子をブロックする方法の実施例を
示す。
より、本発明により素子をブロックする方法の実施例を
示す。
【0027】図3は本発明によりブロックプログラムの
命令を実行可能なRAM6に書いた後のRAM6の内容
の例により、本発明の方法の実施の例を示す。
命令を実行可能なRAM6に書いた後のRAM6の内容
の例により、本発明の方法の実施の例を示す。
【0028】素子の侵害の試みの検出(ブロック10、
検出)、より一般には、ブロックになると考えられる異
状な動作の検出により、本発明の方法は初期化される。
この検出は従来技術である。
検出)、より一般には、ブロックになると考えられる異
状な動作の検出により、本発明の方法は初期化される。
この検出は従来技術である。
【0029】次のステップ11(ジャンプテーブル発
生)は、RAMの利用アドレスをふくむジャンプ又はブ
ランチ(ジャンプテーブル、図3)のテーブルの発生を
ふくむ。対応するプログラムは非揮発メモリーにふくま
れ、RAMの残りの部分から選択されるジャンプアドレ
スADR−JUMPi(ADR−JUMP1,ADR−
JUMP2,・・・,ADR−JUMPN)を発生す
る。実際には、スマートカードの応用に従ったわずかな
特定のレジスタ、ジャンプテーブルをふくむアドレス、
及び後述のワークバッファを除き、メモリーの全体が利
用可能である。
生)は、RAMの利用アドレスをふくむジャンプ又はブ
ランチ(ジャンプテーブル、図3)のテーブルの発生を
ふくむ。対応するプログラムは非揮発メモリーにふくま
れ、RAMの残りの部分から選択されるジャンプアドレ
スADR−JUMPi(ADR−JUMP1,ADR−
JUMP2,・・・,ADR−JUMPN)を発生す
る。実際には、スマートカードの応用に従ったわずかな
特定のレジスタ、ジャンプテーブルをふくむアドレス、
及び後述のワークバッファを除き、メモリーの全体が利
用可能である。
【0030】ジャンプテーブルの発生に必要なパラメー
タは発生されるジャンプの数N、実行可能なRAMにお
けるこれらジャンプのための利用可能なアドレスの範
囲、及び、必要ならば、2つの連続するジャンプの間の
最小距離(アドレスの数で)である。これらのパラメー
タ自身は、発生プログラムの実行毎に予め定められる認
可された値の範囲でランダムに選択される。
タは発生されるジャンプの数N、実行可能なRAMにお
けるこれらジャンプのための利用可能なアドレスの範
囲、及び、必要ならば、2つの連続するジャンプの間の
最小距離(アドレスの数で)である。これらのパラメー
タ自身は、発生プログラムの実行毎に予め定められる認
可された値の範囲でランダムに選択される。
【0031】ジャンプテーブル(JUMP TABL
E)は例えばメモリー6の最後で初期化される。
E)は例えばメモリー6の最後で初期化される。
【0032】ジャンプテーブルのひとつの記録に対応す
るブランチのアドレスに先行する各アドレスに、発生プ
ログラムは、ジャンプテーブルのひとつのアドレスにも
とづいてブランチ命令(RD JUMP)を挿入する。
ジャンプテーブルは他のメモリーアドレスにブランチす
るための命令を直接ふくむか、又は、ブランチ命令RD
JUMPを起動するパラメータを構成するアドレス値
をふくむ。
るブランチのアドレスに先行する各アドレスに、発生プ
ログラムは、ジャンプテーブルのひとつのアドレスにも
とづいてブランチ命令(RD JUMP)を挿入する。
ジャンプテーブルは他のメモリーアドレスにブランチす
るための命令を直接ふくむか、又は、ブランチ命令RD
JUMPを起動するパラメータを構成するアドレス値
をふくむ。
【0033】次に、ブロックプログラム発生プログラム
は一連のランダム命令RD INSTを発生する(ステ
ップ13、ランダム命令発生)。これらの命令は認可さ
れた命令のリストからランダムに選択され、メモリー6
の空のアドレスを充填する。
は一連のランダム命令RD INSTを発生する(ステ
ップ13、ランダム命令発生)。これらの命令は認可さ
れた命令のリストからランダムに選択され、メモリー6
の空のアドレスを充填する。
【0034】従って、命令RD INSTは、ブロック
プログラムのループ動作を阻止するためのわずかな特定
の命令を除いて、ランダムに選択される。特に、ジャン
プテーブルに影響するジャンプ、ストップ、書き込みの
各動作と、ROM2のアルゴリズム又はデータの重要な
素子をふくむエリアへのアクセスは避けなければならな
い。単純には、ブロックプログラムの命令のランダム選
択においてROMへのアクセスの命令を禁止する。
プログラムのループ動作を阻止するためのわずかな特定
の命令を除いて、ランダムに選択される。特に、ジャン
プテーブルに影響するジャンプ、ストップ、書き込みの
各動作と、ROM2のアルゴリズム又はデータの重要な
素子をふくむエリアへのアクセスは避けなければならな
い。単純には、ブロックプログラムの命令のランダム選
択においてROMへのアクセスの命令を禁止する。
【0035】好ましくは、次に、メモリー6の全ての空
いたアドレスにランダム命令を充填して、発生プログラ
ムが終了したときに、空のアドレスがないようにする。
いたアドレスにランダム命令を充填して、発生プログラ
ムが終了したときに、空のアドレスがないようにする。
【0036】好ましい実施例によると、命令RD IN
STはスマートカードの応用プログラムで正常に実行さ
れる命令を集めた予め確立した命令リストから選択され
る。このプログラムの利点はブロックを実行するための
プログラムが正常なプログラムに可能な限り似ているこ
とである。
STはスマートカードの応用プログラムで正常に実行さ
れる命令を集めた予め確立した命令リストから選択され
る。このプログラムの利点はブロックを実行するための
プログラムが正常なプログラムに可能な限り似ているこ
とである。
【0037】最後に、メモリー6に蓄積されたプログラ
ムを実行する(ステップ14、実行)。例えば、実行は
プログラムが記述されるRAMの第1アドレスからスタ
ートする。又は、ブロックプログラムの実行のスタート
はランダム命令RD INST又はジャンプ命令RD
JUMPをふくむ任意のアドレスを選択することもでき
る。
ムを実行する(ステップ14、実行)。例えば、実行は
プログラムが記述されるRAMの第1アドレスからスタ
ートする。又は、ブロックプログラムの実行のスタート
はランダム命令RD INST又はジャンプ命令RD
JUMPをふくむ任意のアドレスを選択することもでき
る。
【0038】オプションとして、メモリー6の一部にワ
ークバッファ(データバッファ)をもうけて、ランダム
データ(RD DATA)を挿入し、安全性に重要でな
く、ROMに格納されるアルゴリズムで使用するように
してもよい。例えば、非揮発メモリーにふくまれる暗号
アルゴリズムを、このアルゴリズムが保護されるべき素
子のひとつでなければ、ランダムデータにもとづいて実
行してもよい。従って、非揮発メモリーの任意の需要で
ない機能を呼び出すことができ、ブロックプログラムを
実プログラムのようにすることができる。
ークバッファ(データバッファ)をもうけて、ランダム
データ(RD DATA)を挿入し、安全性に重要でな
く、ROMに格納されるアルゴリズムで使用するように
してもよい。例えば、非揮発メモリーにふくまれる暗号
アルゴリズムを、このアルゴリズムが保護されるべき素
子のひとつでなければ、ランダムデータにもとづいて実
行してもよい。従って、非揮発メモリーの任意の需要で
ない機能を呼び出すことができ、ブロックプログラムを
実プログラムのようにすることができる。
【0039】レジスタ(データバッファ)の発生はステ
ップ12(データバッファ発生)で行われ、これは例え
ばステップ11の後、又は前で行われる。このステップ
のために、知る必要のあるパラメータはレジスタに割当
てられるRAMのアドレスの数と可能なデータの範囲で
ある。
ップ12(データバッファ発生)で行われ、これは例え
ばステップ11の後、又は前で行われる。このステップ
のために、知る必要のあるパラメータはレジスタに割当
てられるRAMのアドレスの数と可能なデータの範囲で
ある。
【0040】各命令RD JUMPで指定されるジャン
プテーブルのラインは、例えば、可能なラインからラン
ダムに選択され、つまり先行の命令RD JUMPで未
だ選択されていないラインが選択される。発生プログラ
ムでは命令RD JUMPが、直前の命令RD JUM
Pに続くアドレスを指定していないということをチック
することが提供される。これは、単一の命令セットでの
ブロックプログラムのループ動作を避けるためである。
プテーブルのラインは、例えば、可能なラインからラン
ダムに選択され、つまり先行の命令RD JUMPで未
だ選択されていないラインが選択される。発生プログラ
ムでは命令RD JUMPが、直前の命令RD JUM
Pに続くアドレスを指定していないということをチック
することが提供される。これは、単一の命令セットでの
ブロックプログラムのループ動作を避けるためである。
【0041】本発明の利点は、各部がブロックを必要と
する度毎にランダムにプログラムを発生することによ
り、その態様がひとつのブロックから他のブロックへの
間で再現不可能なことにある。従って、侵入者は重要な
エリア又は秘密データへのアクセスをする素子の連続的
ブロックを解析することを阻止される。
する度毎にランダムにプログラムを発生することによ
り、その態様がひとつのブロックから他のブロックへの
間で再現不可能なことにある。従って、侵入者は重要な
エリア又は秘密データへのアクセスをする素子の連続的
ブロックを解析することを阻止される。
【0042】本発明の別の利点は、スマートカードの応
用プログラムに出来るだけ近いところでブロックプログ
ラムを実行できることにある。従って、単純な命令を無
限ループで実行するブロックプログラムの欠点は避けら
れる。
用プログラムに出来るだけ近いところでブロックプログ
ラムを実行できることにある。従って、単純な命令を無
限ループで実行するブロックプログラムの欠点は避けら
れる。
【0043】もちろん、本発明は種々の変更、修飾、改
良が当業者に可能である。特に、本発明の実務上の実施
は上述の機能的記述にもとづいて当業者に容易である。
本発明のテーブルの中のジャンプの数の選択は応用によ
り定まる。数が多ければ、プログラムの動作は実際の動
作に近くなる。しかし、この数は実行可能なRAMのサ
イズにより限定される。
良が当業者に可能である。特に、本発明の実務上の実施
は上述の機能的記述にもとづいて当業者に容易である。
本発明のテーブルの中のジャンプの数の選択は応用によ
り定まる。数が多ければ、プログラムの動作は実際の動
作に近くなる。しかし、この数は実行可能なRAMのサ
イズにより限定される。
【0044】さらに、ランダム命令とワークバッファの
使用及びROMにふくまれるプログラムの選択は応用に
従って当業者に容易である。
使用及びROMにふくまれるプログラムの選択は応用に
従って当業者に容易である。
【0045】上述の変更、修飾、改良は本開示の一部で
あり、本発明の範囲内である。従って、上述の記述は単
なる実施例であり、発明を限定するものではない。発明
は請求の範囲の記載とその均等によってのみ限定され
る。
あり、本発明の範囲内である。従って、上述の記述は単
なる実施例であり、発明を限定するものではない。発明
は請求の範囲の記載とその均等によってのみ限定され
る。
【図1】本発明で使用する集積回路を示す。
【図2】本発明による集積回路ブロック方法の実施例の
時間ダイヤグラムを示す。
時間ダイヤグラムを示す。
【図3】本発明による集積回路の非揮発メモリーの構成
例である。
例である。
1 集積回路
2 非揮発メモリー
3 CPU
4 バス
5 バス
6 揮発メモリー
Claims (8)
- 【請求項1】 集積回路(1)にふくまれる情報への不
正なアクセスの試みを検出したときに該集積回路をブロ
ックする方法において、 前記集積回路のランダムアクセスメモリー(6)で実行
される第2プログラムを発生する第1プログラムを実行
し、 該第2プログラムは複数の命令シークエンスをふくみ、
各シークエンスは他のシークエンスへのブランチで終了
し、及び前記第2プログラムを実行する、ことを特徴と
する方法。 - 【請求項2】 前記ランダムアクセスメモリー(6)の
中にジャンプアドレステーブルを発生させ、該ジャンプ
アドレスは相互に所定数のアドレスだけ相違し、 該ジャンプテーブルのひとつのアドレスにブランチする
命令(RD JUMP)をジャンプアドレスの前のアド
レスに置き、 中間のアドレスを所定の命令セットからランダムに選択
される命令(RD INST)で充填する、請求項1記
載の方法。 - 【請求項3】 前記ジャンプテーブルは第2プログラム
の各発生毎にランダムに充填される、請求項2記載の方
法。 - 【請求項4】 前記の予め定められる命令セットは、前
記集積回路(1)の重要エリアにブランチする命令をふ
くまない、請求項2記載の方法。 - 【請求項5】 前記の予め定められる命令セットは、前
記集積回路(1)のROM(2)にアクセス又はジャン
プする命令、又は命令を停止する命令をふくまない、請
求項2記載の方法。 - 【請求項6】 前記第2プログラムのブランチ命令はジ
ャンプテーブルからランダムにアドレスを選択する、請
求項1記載の方法。 - 【請求項7】 ランダム命令(RD INST)で処理
されるデータ(RDDATA)を蓄積するバッファ(デ
ータバッファ)を使用する、請求項1記載の方法。 - 【請求項8】 少なくともひとつの非揮発メモリー
(2)とひとつの実行可能な揮発メモリー(6)を有
し、請求項1−7のひとつに記載の方法を実行する手段
をふくむ、集積回路(1)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0115361A FR2832824A1 (fr) | 2001-11-28 | 2001-11-28 | Blocage du fonctionnement d'un circuit integre |
FR0115361 | 2001-11-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003228521A true JP2003228521A (ja) | 2003-08-15 |
Family
ID=8869863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002343590A Abandoned JP2003228521A (ja) | 2001-11-28 | 2002-11-27 | 集積回路の動作のブロック |
Country Status (5)
Country | Link |
---|---|
US (1) | US7447916B2 (ja) |
EP (1) | EP1316874B1 (ja) |
JP (1) | JP2003228521A (ja) |
DE (1) | DE60227632D1 (ja) |
FR (1) | FR2832824A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008510242A (ja) * | 2004-08-17 | 2008-04-03 | オベルトゥル カード システムズ ソシエテ アノニム | データ処理の方法及び装置 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2849233B1 (fr) * | 2002-12-24 | 2005-05-20 | Trusted Logic | Procede de securisation des systemes informatiques par confinement logiciel |
FR2849232B1 (fr) * | 2002-12-24 | 2005-02-25 | Trusted Logic | Procede pour la securisation des systemes informatiques incorporant un module d'interpretation de code |
DE102004008179A1 (de) * | 2004-02-19 | 2005-09-01 | Giesecke & Devrient Gmbh | Verfahren zum sicheren Betrieb eines tragbaren Datenträgers |
DE602005015157D1 (de) * | 2004-05-11 | 2009-08-13 | St Microelectronics Sa | Verzweigungsschutz in einem Programm |
FR2877118B1 (fr) * | 2004-10-22 | 2007-01-19 | Oberthur Card Syst Sa | Protection contre les attaques par generation de fautes sur les instructions de saut |
FR2879781B1 (fr) * | 2004-12-20 | 2009-08-28 | Oberthur Card Syst Sa | Procede et dispositif de remplissage de securisation d'une memoire et memoire associee |
FR2888369B1 (fr) * | 2005-07-11 | 2007-10-26 | Oberthur Card Syst Sa | Protection contre les attaques par generation de fautes sur les instructions de saut |
JP4680876B2 (ja) * | 2006-12-11 | 2011-05-11 | ルネサスエレクトロニクス株式会社 | 情報処理装置及び命令フェッチ制御方法 |
US8681308B2 (en) * | 2007-09-13 | 2014-03-25 | Asml Netherlands B.V. | Lithographic apparatus and device manufacturing method |
US10503931B2 (en) * | 2016-05-09 | 2019-12-10 | Arris Enterprises Llc | Method and apparatus for dynamic executable verification |
CN106203099B (zh) * | 2016-07-26 | 2019-02-05 | 北京航空航天大学 | 一种硬件支持嵌入式系统程序指令标记的保护方法 |
EP3438865A1 (fr) * | 2017-08-02 | 2019-02-06 | Texplained | Détection d'attaque par comptage d'instruction de branchement |
CN112199258A (zh) * | 2020-11-13 | 2021-01-08 | 新华三大数据技术有限公司 | 一种磁盘监控的方法、装置、电子设备及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5249294A (en) * | 1990-03-20 | 1993-09-28 | General Instrument Corporation | Determination of time of execution of predetermined data processing routing in relation to occurrence of prior externally observable event |
US5448045A (en) * | 1992-02-26 | 1995-09-05 | Clark; Paul C. | System for protecting computers via intelligent tokens or smart cards |
US5675645A (en) * | 1995-04-18 | 1997-10-07 | Ricoh Company, Ltd. | Method and apparatus for securing executable programs against copying |
FR2745924B1 (fr) * | 1996-03-07 | 1998-12-11 | Bull Cp8 | Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre |
US5953502A (en) * | 1997-02-13 | 1999-09-14 | Helbig, Sr.; Walter A | Method and apparatus for enhancing computer system security |
US6931552B2 (en) * | 2001-05-02 | 2005-08-16 | James B. Pritchard | Apparatus and method for protecting a computer system against computer viruses and unauthorized access |
-
2001
- 2001-11-28 FR FR0115361A patent/FR2832824A1/fr active Pending
-
2002
- 2002-11-26 US US10/304,364 patent/US7447916B2/en active Active
- 2002-11-27 DE DE60227632T patent/DE60227632D1/de not_active Expired - Lifetime
- 2002-11-27 EP EP02354187A patent/EP1316874B1/fr not_active Expired - Lifetime
- 2002-11-27 JP JP2002343590A patent/JP2003228521A/ja not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008510242A (ja) * | 2004-08-17 | 2008-04-03 | オベルトゥル カード システムズ ソシエテ アノニム | データ処理の方法及び装置 |
JP2011076636A (ja) * | 2004-08-17 | 2011-04-14 | Oberthur Technologies | データ処理の方法及び装置 |
JP4790717B2 (ja) * | 2004-08-17 | 2011-10-12 | オベルトゥル テクノロジ | データ処理の方法及び装置 |
US9454663B2 (en) | 2004-08-17 | 2016-09-27 | Oberthur Technologies | Data processing method and device |
Also Published As
Publication number | Publication date |
---|---|
US20030101351A1 (en) | 2003-05-29 |
EP1316874A1 (fr) | 2003-06-04 |
EP1316874B1 (fr) | 2008-07-16 |
FR2832824A1 (fr) | 2003-05-30 |
DE60227632D1 (de) | 2008-08-28 |
US7447916B2 (en) | 2008-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6952778B1 (en) | Protecting access to microcontroller memory blocks | |
US7228423B2 (en) | Apparatuses and methods for decrypting encrypted data and locating the decrypted data in a memory space used for execution | |
JP3396043B2 (ja) | マイクロ回路 | |
US5421006A (en) | Method and apparatus for assessing integrity of computer system software | |
EP1126356B1 (en) | Tamper resistant microprocessor | |
JP5114617B2 (ja) | 秘密鍵を保護する、セキュア端末、プログラム、および方法 | |
CN102592083B (zh) | 用于提高soc芯片系统安全的存储保护控制器及方法 | |
TWI266989B (en) | Method, apparatus and token device for protection against memory attacks following reset | |
JP4475894B2 (ja) | 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法 | |
US20070266214A1 (en) | Computer system having memory protection function | |
US20150058979A1 (en) | Processing system | |
JP2003228521A (ja) | 集積回路の動作のブロック | |
JPH08305558A (ja) | 暗号化プログラム演算装置 | |
US20060294397A1 (en) | System and method of using a protected non-volatile memory | |
US9047448B2 (en) | Branch auditing in a computer program | |
WO2001097010A2 (en) | Data processing method and device for protected execution of instructions | |
CA2247475A1 (en) | Method for ensuring the safety of a security module, and related security module | |
US8161293B2 (en) | Protection of the execution of a program executed by an integrated circuit | |
US20010010331A1 (en) | Process for protecting a security module, and associated security module | |
CN110276213B (zh) | 一种智能卡及其敏感结果的存储和校验方法 | |
CN107784235A (zh) | 一种存储器数据保护方法和集成电路芯片 | |
WO2007020758A1 (ja) | Icカード用lsi | |
JP4162166B2 (ja) | レスポンスタイムを可変化したicカード | |
EP4030682A1 (en) | Method and device for controlling access to a resource | |
CN117993030A (zh) | 存储器的管理方法、芯片、电子设备和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050921 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20081002 |