JP2000501541A - 予測不可能なマイクロプロセッサまたはマイクロコンピュータ - Google Patents

予測不可能なマイクロプロセッサまたはマイクロコンピュータ

Info

Publication number
JP2000501541A
JP2000501541A JP11505328A JP50532899A JP2000501541A JP 2000501541 A JP2000501541 A JP 2000501541A JP 11505328 A JP11505328 A JP 11505328A JP 50532899 A JP50532899 A JP 50532899A JP 2000501541 A JP2000501541 A JP 2000501541A
Authority
JP
Japan
Prior art keywords
program
microcomputer
microprocessor
memory
unpredictable
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.)
Pending
Application number
JP11505328A
Other languages
English (en)
Inventor
ユゴン,ミシエル
Original Assignee
ブル・セー・ペー・8
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ブル・セー・ペー・8 filed Critical ブル・セー・ペー・8
Publication of JP2000501541A publication Critical patent/JP2000501541A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/75Protecting 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
    • G06F21/755Protecting 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 with measures against power attack
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Microcomputers (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 本発明は、プロセッサ(1)と、第一の作業メモリ(51)と、オペレーティングシステムと主プログラム(P1)と二次プログラム(P2)とを含む主メモリ(6)とを含む自動予測不可能なマイクロプロセッサまたはマイクロコンピュータであって、第二の作業メモリ(52)と、プログラム実行中に、その二つの作業メモリ(51、52)の内容を保持しながら作業メモリとしての使用をその二つの作業メモリ(51、52)のどちらか一方に切り替えることを可能にする切替手段とをさらに含み、この切替手段が、主メモリ中のプログラムの動作コンテキストを記憶する少なくとも一つのレジスタブロック(54)と、一方の作業メモリおよび各メモリ(51、52、6)に結合されかつ切替回路(53)によって制御されるアクセスレジスタ(A1〜A3)(D1〜D3)を妥当化する切替回路(53)とを含むことを特徴とする自動予測不可能なマイクロプロセッサまたはマイクロコンピュータに関する。

Description

【発明の詳細な説明】 予測不可能なマイクロプロセッサまたはマイクロコンピュータ 本発明は予測不可能なマイクロプロセッサまたはマイクロコンピュータに関す る。 マイクロプロセッサまたはマイクロコンピュータが、メモリに記録されたプロ グラムの過大な命令を、内部または外部からそのマイクロプロセッサまたはマイ クロコンピュータに供給されたクロック信号の一つを基準とする一つまたは複数 のタイミング信号に合わせて順次実行することは知られている事実である。 このプログラム実行方法の様々な段階は時が経つにつれて精通できるようにな ることが分かっている。これは、命令の実行が、このプログラムによって予め決 められたプロセスどおりに順序正しく行われ、一般にプロセッサを規則正しく調 時するクロック信号と同期しているためである。実際に、すべてのプログラムは 、予め分かっている順序で連続的に実行されなければならない命令シーケンスを 生成し、また命令は時が経つにつれ て所定のプロセスどおりに実行されるので、各命令が開始される瞬間および終了 する瞬間は正確に知れる。したがって原理的には、実行されているプログラムは 所定の命令シーケンスを含んでいるので、プロセッサの処理装置中で所与の瞬間 に実行されている命令を知ることができる。 例えば、プログラムまたは処理装置の始動時に実行される命令の数を決定した り、あるイベントすなわち外部または内部の基準信号から経過した時間、さらに はプロセッサのリセットから経過した時間を決定することができる。 このようにマイクロプロセッサまたはマイクロコンピュータ中のプログラムの 実行を観察できることは、このマイクロプロセッサまたはマイクロコンピュータ が高度の機密保護を要する用途で使用されるときには大きな欠点となる。したが って、悪意のある人間がプロセッサの連続状態を調べ、この情報を使用して、内 部処理に関するいくつかの機密の結果を入手することもできる。 例えば、内部機密情報の試験、メッセージの暗号解読、さらには何らかの情報 の完全性試験など、決められた機密保護操作の結果に応じて、様々な瞬間に所与 の処置がとられることが想 像できる。当該の瞬間に応じて、例えば、プロセッサに処置を施すか、または物 理的調査によっていくつかのレジスタの値を得、それにより結果についての情報 またはその情報の機密内容を得ることができ、さらには暗号計算の場合には使用 された秘密暗号キーについての情報を得ることもできる。 ランダムクロックパルスを発生させる回路を装備することによって機密保護マ イクロコンピュータに初期の改善を施す装置がある。このようにすると、同期が すぐに実行不可能になるので、イベントを観察することで調査を実行することが 特に困難になる。 しかし、このタイプの解決策は多くの欠点を伴う。 まず、マイクロコンピュータと同程度に複雑な回路全体にわたってランダム動 作をシミュレートすることはできないので、このような回路の設計は特に巧妙か つ繊細になる。回路の挙動が乱雑なために製造終了時に回路を試験することはさ らに困難である。実際に、クロックパルスのランダムシーケンスを回路の定義に ついてシミュレートすることは非常に困難であるが、特に内部バス上およびレジ スタ中で信号が切り替わる期間中に全てのプロセッサの諭理回路の全ての挙動を 習得することはさ らに困難である。 これが本出願人による「improved integrated circ uit、process for useof such integrate d circuit」と題する1996年3月7日のフランス特許N゜9602 903の要求の主題である初期の改善がなされた理由であり、これによりプロセ ッサは定義期間中および試験期間中に通常の周期クロックで通常動作が可能にな った。すなわち、プロセッサは保護モードと通常モードの間で切り替わることが できる。機密保護を保証するために、パスワードまたは特別な暗号メッセージが 入力されたときにのみそのプロセッサによってそのモードが活動化できることは 容易に想像される。 これらの難点に加えて、ランダムクロックの制御下で、すなわち全く無秩序な 形で、シーケンス中に障害を診断するという難点がある。実際に、このような無 秩序状態では、どうすれば問題を障害のある部分に限定することができ、またど うすれば問題が生じる正確な条件を決定することができるであろうか。 ランダムクロックの使用は、理論上は興味深い改善策を与えるが、全く満足な 解決策ではなく、とりわけ実際に実施するこ とは容易でないことが分かる。 本発明の一目的は、上述のタイプの調査を抑止する手段をプロセッサに装備す ること、より一般的には、従来の方法の使用による単純な設計および障害の診断 を可能にするために、完全に制御された標準の回路を使用して、プロセッサの内 部挙動の不正な観察を防止することである。 この目的は、プロセッサと、第一の作業メモリと、オペレーティングシステム と主プログラムと二次プログラムとを含む主メモリとを含む予測不可能なマイク ロプロセッサまたはマイクロコンピュータが、 ■第二の作業メモリと、 ■プログラムの実行中に、その二つの作業メモリの内容を保持しながら作業メ モリとしての使用をその二つの作業メモリの一方に切り替えることを可能にする 通信手段とをさらに有し、 ■この切替手段が、主メモリ中のプログラムの動作コンテキストを記憶する少 なくとも一つのレジスタブロックと、一方の作業メモリと各メモリに結合されか つ切替回路によって制御されるアクセスレジスタとを妥当化する切替回路とを含 むことを特徴とすることによって達成される。 別の特徴によれば、この予測不可能なマイクロプロセッサまたはマイクロコン ピュータは、二次プログラムの実行のコンテキストを記憶する第二のレジスタブ ロックを有する。 別の特徴によれば、この予測不可能なマイクロプロセッサまたはマイクロコン ピュータは、プログラムの実行を等時クロックに対して相関させる手段を有する 。 本発明の別の目的は、前記手段の実施がプロセッサ自体によって保証され、そ れにより上記手段によって与えられるいかなる追加の機密保護も、マイクロコン ピュータ内にあり、したがって悪意のある処置に関して予測不可能であるオペレ ーティングシステムの決定のみに依存するようにすることである。 この目的は、作業メモリ妥当化回路と各作業メモリに結合された記憶レジスタ ブロックとをロードすることによって、主プログラムが切替機構を使用可能にす るかまたは抑止することができることによって達成される。 別の特徴によれば、主プログラムによって使用される際に、第一のメモリおよ びそれ自体のアクセスレジスタの代わりに第二の作業メモリおよびそのアクセス レジスタが使用される。 本発明の第三の目的は、クロック信号およびランダムタイミ ング信号を使用する必要なしに実行時間をプログラム自体から独立させることで ある。 この目的は、相関解除手段が、二次プログラムにランダム接続することによっ てプロセッサ中のプログラムの実行を脱同期させるために割込み回路を介してラ ンダム割込みをトリガすることができるランダム発生器を含むことによって達成 される。 別の特徴によれば、相関解除手段は、時間カウント後に、二次プログラムから 主プログラムに復帰するために割込みをトリガする、プロセッサ1から独立した 時間カウントシステムを含む。 別の特徴によれば、作業メモリを切り替える手段は、プロセッサおよびそのプ ログラムか、ランダム割込みシステムか、時間カウンタか、またはこの三つのう ちの少なくとも二つの組合せによって制御される。 本発明の第四の目的は、レジスタの切替が機密情報への直接的または間接的な アクセスの手段と解釈されるのを防止することである。 この目的は、作業メモリを切り替える手段が、主プログラムのシーケンスを実 行しているプロセッサからの移行によって確 立されることによって達成される。 別の特徴によれば、第二のプログラムは、主メモリ中の主プログラムの作業領 域と同じ作業領域を使用する。 別の特徴によれば、第二のプログラムは、主プログラムの作業領域より小さい 作業領域を使用する。 別の特徴によれば、切替手段は、マイクロプロセッサの命令の実行サイクル中 に作業メモリおよびそれに関連するコンテキストを置換する。 別の特徴によれば、二次プログラムは主プログラムの一般動作コンテキストを 修正せず、それによりこのコンテキストを回復する必要なしに主プログラムの復 帰を可能にする。 別の特徴によれば、主プログラムのコンテキストは、二次プログラムによって 自動的に回復されるか、または制御権を主プログラムに戻す前に切替手段によっ て自動的に回復される。 別の特徴によれば、この予測不可能なマイクロプロセッサまたはマイクロコン ピュータは、主プログラムのメモリを二次プログラムのメモリで置換する手段を 含む。 別の特徴によれば、主プログラムは、第一の作業メモリおよび/または第二の 作業メモリを交互にまたは同時に使用するこ とができる。 別の特徴によれば、切替回路をロードすることにより相関解除割込みのマスク またはマスク解除が可能になる。 別の特徴によれば、割込みをマスク解除するために主プログラムまたは二次プ ログラムの命令を実行することによって切替レジスタが適切にロードされた後で 主プログラムへの復帰が二次プログラムによってトリガされた割込みによって実 行される。 別の特徴によれば、この予測不可能なマイクロプロセッサまたはマイクロコン ピュータはモノリシック集積回路からなる。 本発明の他の特徴および利点は、添付の図面を参照しながら以下の説明を読め ばより明らかになろう。 第1図は、本発明の一実施形態による集積回路の電子図である。 第2図は、割込みの出現およびマスク解除された割込みの確認に関する命令の 実行のタイミング図である。 第3図は、一つの集積回路の記憶レジスタのロード回路の代替設計を示す図で ある。 第4図は、回路の通常動作への復帰を可能にするプログラム部分(P2)を示 す論理図である。 第1図に本発明の一実施形態を示す。SUMIC(Self−Unpredi ctable MICrocomputer)と呼ばれる、本発明が包含するマ イクロプロセッサまたはマイクロコンピュータは、処理装置(1)と、実行すべ きプログラムを含む不揮発性メモリ(6)と、そのアドレスレジスタ(A2)お よびそのデータレジスタ(D2)を備えたRAM(51)と、例えば規則的かつ 予測不可能な瞬間にパルスを供給するランダムまたは疑似ランダム信号発生器( 2)と、割込み回路(4)と、レジスタ回路(R2)と、タイマ(R3)と、シ ーケンサ回路(8)と、不揮発性メモリ(7)(NVM)と、そのアドレスレジ スタ(A3)およびそのデータレジスタ(D3)を備えた揮発性タイプのダミー メモリ(DumRAM)(52)と、通常動作に復帰するためのパラメータを記 憶する二つのレジスタスタック(54、55)と、例えばアドレスレジスタ(A 1)および(A3)、データレジスタ(D1)および(D3)、第一の記憶レジ スタブロック(54)および第二の記憶レジスタブロック(55)の動作を検査 するのに十分な数のセルを有するレジスタを含む切替回路(53)とを備えたモ ノリシック集積回路を含む。この切替レジスタ(53)はバス(3) を介して処理装置(1)によってロードされる。この切替レジスタ(53)の状 態は、より詳細には、プロセッサの作業メモリ領域内またはこの領域外のRAM および/またはDumRAMを妥当化するために使用される。 このモノリシック集積回路では、処理装置はバス(3)によって様々なメモリ に接続され、各メモリはそれぞれアドレス(A1、A2、A3)を有するレジス タとデータレジスタ(D1、D2、D3)とに向かって進み、各アドレスレジス タおよびデータレジスタはそれぞれ切替回路(53)からきたコマンド線(53 1A、532A、536A)、(531D、532D、536D)によってそれ ぞれロックすることができる。この切替回路はまた他の三つのコマンド線を含み 、そのうちの一つ(533)は、二つの入力を有するANDゲートで終端し、そ のうちの第二の入力は割込み回路からきたバス線(31)を受ける。 このANDゲートの出力は、割り込みイネーブルレジスタ(IER)ビットの一 つに直接接続され、これにより切替回路が活動化されていないとき、したがって 線(533)が活動状態でないときのみ、割込み回路(4)によってトリガされ た割込みをマスクする。 他の二つの線(534、535)はそれぞれ、記憶レジスタの二つのブロック またはスタック(54、55)の一方をロックする。これらのブロックはそれぞ れ、以下に述べる情報を記憶するためのいくつかの記憶レジスタ(54)および (55)を有する。これらのレジスタ(54、55)は、各メモリに共通のバス (3)に接続される。このバス(3)は、制御線(531A、532A、532 D、536A、536D、533、534、535)を所望の動作モードに応じ て活動状態または非活動状態にするのに必要な値を切替回路(53)にロードす るために使用される。不揮発性メモリ(6)は、回路オペレーティングシステム と、以下主プログラムと呼ぶ第一のアプリケーションプログラム(P1)と、以 下二次プログラムと呼ぶ第二のプログラム(P2)とを含み、またシーケンサ( 8)と、レジスタ(R2)と、タイマ(R3)と、ランダム発生器(R1)とが バス(3)に接続され、これら三つの要素(R1、R2、R3)は、プロセッサ の割り込みイネーブルレジスタ(IER)を使用して、プロセッサの割込み入力 (1)に接続された割込み発生器回路(4)に接続される。IERのビットの一 つは一般に、一部のユーザに固有の用途のために取っておかれ、 使用可能になっている。 第一の実施形態では、不揮発性メモリ(6)に含まれた主プログラム(P1) は、必要に応じてバス(3)を介して切替回路(53)の状態を修正するが、こ のプロセスは実行に関して何らの難点も示さない。これにより直ちに、CE(C hip Enable)入力に作用して、メモリパッケージと第一のブロック( 54)を通常動作に復帰させるのに必要な全てのレジスタとを妥当化することに よって主作業RAM(51)またはこのメモリの一部分が切り替わる。これらの メモリおよびレジスタはスタティックタイプにし、それによりそれらを維持する ために必要なエネルギーを節約できることが有利である。したがって、切替回路 (53)は主作業メモリ(51)をダミーメモリ(52)で置換し、それにより 主作業メモリの代わりに専らダミーメモリを使用してプログラムが実行されるよ うにする。 このダミーメモリ(52)は、それが置換されたメモリと同じアドレスにあるこ ともあるが、異なるアドレスにあることもある。一つの有利かつ経済的な解決策 は、このダミーメモリとして非常に小さいRAMを使用することである。実際に 、このダミーメモリは主プログラムの機能上の役割を果たすものではな く、アドレス可能領域はアドレスレジスタ(A3)の長さを短縮するだけで制限 できる。また、いくつかのアドレスレジスタブロック間で排他的ORをとること によってアドレスをそれ自体に「折り返す」こともできる。したがって、主作業 メモリのアドレス可能領域が512バイトである場合、ダミーメモリは容易に3 2バイトに制限でき、したがって非常に経済的な解決策が得られる。32バイト は、例えば、単に主作業メモリのマトリックスにRAMメモリ線を追加した場合 に対応する。この場合、この線はそれ自体のアドレスレジスタ(A3)および障 害レジスタ(D3)を有することになる。切替回路(53)は、ダミーメモリを 活動化したとき、NVMへの書込みアクセスを抑止し、それによりその内容が乱 されることがないようにすることもできる。 切替を実行するためには、二つのレジスタのブロック、すなわち第一のブロッ ク(54)と第二のブロック(55)を交互に使用することが有利な場合があり 、各ブロックは、プログラムを実行するために必要なコンテキスト全体、より具 体的に言えば、第一のブロック(54)用のプログラムカウンタ(PC1)、第 二のブロック(55)用のプログラムカウンタ(PC 2)、第一のブロック用の命令復号レジスタ(D1)、第二のブロック用の命令 復号レジスタ(D2)、および(T11、T12、およびT21、T22)で表 される他のレジスタを含む。 このレジスタ(T11、T12、T21、およびT22)は、例えば使用するマ シンサイクル数など、同じ動作パラメータを保持する。これら全てのレジスタは 切替回路(53)によって自動的に切り替えられる。アドレスの変更は、この場 合、特定の命令を使用してプログラムカウンタの内容をレジスタスタック中に保 存するために、大抵のマイクロ計算機の場合と同様に何らの負担もなしに直ちに 実行される。したがって、両方向の切替は非常に迅速であり(一般にクロックサ イクルよりはるかに短い)、したがってこの装置の機密保護レベルはかなり高く なる。同じ機構は、(T11〜T22)など、プロセッサの動作コンテキストを 保存するその他のレジスタにも使用できる。 プログラム(P1)が切替レジスタをロードすることによってダミーモードの 集積回路を活動化したとき、切替回路(53)は、ダミー回路の動作の前にパラ メータを保持する第一のレジスタスタック(54)を抑止して、プログラム(P 1)が中断されている場合にその第一のレジスタスタック(54)を再開 することを理解されたい。一方、第二のレジスタスタック(55)は、プログラ ム(P2)を実行するために同じダミーメモリを有する回路の通常動作を使用可 能にするために使用されることになる。また、この場合、ダミーモードでの動作 に対応する割込みマスクIERレジスタビットはマスク解除され、それによりラ ンダム発生器によってかまたは前にランダム発生器によって乱数をロードされた タイマ(R3)によって割込みが生成される間に、またこの乱数によってかまた は特定の情報をロードされたレジスタ(R2)によって表された時間の実行が終 了した時に使用可能になり、割込みがトリガされ、(31)プログラム(P1) の制御下の通常動作からプログラム(P2)の制御下のダミーモードでの動作へ の切換が起こることは明らかである。 第2図に割込みモードでの動作を示す。この図には、割込み回路から線(31 )上を処理装置(1)に向かって伝送される第一の割込みパルスITは、レジス タによってマスクされたために考慮されておらず、この割込みのマスクは、命令 「MOVE immediate data to registerIER( 隣接するデータをレジスタIERに移動せよ)」を使 用し、それによりそのデータをマスクするレジスタにロードすることが示されて いる。現在の命令は分岐割込みをマスク解除すると仮定する(ただしこれは異な る時刻で他の命令によって実行できる)。この場合、第二のパルスは処理装置( 1)によって考慮され、その結果切替回路(53)が切り替わり、したがって第 二のレジスタブロック(55)およびDumRAM(52)が第一のブロック( 54)およびRAMダミーメモリ(51)の代わりに活動状態になる。割込みの 確認は、ある状態から別の状態に遷移する間、例えば(S2)と(S3)の間に のみ可能であり、それによりマシンの安定かつ一貫した状態を記憶し、とりわけ 中断されたプログラムが復帰するときと全く同じ状態を回復することに留意され たい。この割込みが確認された場合、通常の場合と同様に命令の終了時に、中断 されたプログラムが回復されたとき、これは通常次の命令で行われるので特に問 題は生じない。逆に、割込みは命令の実行中、例えば状態(S2)で発生した場 合、順序づけ回路を同様に回復させ、それにより中断されたプログラムの回復時 に状態(S3)を正しくトリガする必要があることは明らかである。これは、例 えば、回復の瞬間にバス(3)を介してレジスタ(T11)とシ ーケンサ(8)との間の直接リンクによって達成できる。このリンクは、バス( 3)を介さずに特定のものにすることもできる。また、シーケンサ自体に状態記 憶レジスタを含めて、この段階中のバスの移動を防止することが有利なこともあ る。 このように、割込みを用いて、主プログラム(P1)は以下に述べるように二 次プログラム(P2)を使用可能にすること、および/または二次プログラム( P2)に切り替わることができる。二次プログラムが活動状態でなくなったとき 、切替回路(53)の状態は変化し、RAM作業メモリは何らの修正もなしにそ の最初の構成を回復し、その結果主プログラムは、正確にそれが中断された時点 でその経路を回復することができる。 また、主プログラム(P1)は、保護が必要なときには、それ自体が二次プログ ラム(P2)に分岐することにより、最初にまたは処理中にそれが選択した瞬間 に作動してランダム長さを生成し、それにより様々なシーケンスをスクランブル するような形で実行することもできる。その場合、このプロセスの動作は、例え ばその時間の長さが発生器(2)から得られた乱数に依存する待機ループをトリ ガすることができる二次プログラム(P2)によって制御することができる。二 次プログラムは、 二次プログラムが新しい制御権を主プログラムに移すとすぐに、さらには次の割 込み時に、主プログラムがその通常のプロセスを再開できるように主プログラム が使用していないメモリの一部分を使用して、または前と同様にタイマを使用し て、またはこの二つを組み合わせて使用して実行することができる。二次プログ ラムはまた、制御権を主プログラムに移す前に主プログラムのコンテキストを回 復する限り、共用資源を使用することもできる。 これらの機構は、二次プログラムの実行の終了時に復帰を伴う主プログラムの 二次プログラムへの分岐の実行に類似するが、本発明の機構は以下の点で特に異 なることを述べておきたい。 ■二次プログラムは、主プログラムに必ず関係するいかなる機能も実行しない 。 ■ダミーメモリ(52)のサイズは、プログラムの通常の実行に必要とされる よりはるかに小さくすることができる。 ■ダミーメモリ(52)の内容は単にトラックをカバーするだけなので重要で はない。 ■この高速機構を用いれば、二次プログラムの命令を主プログラムの命令と組 み合わせることができる。 ■二次プログラムの内容は単にトラックをカバーするために使用されるだけな ので保存する必要はない。 第二の実施形態では、プロセッサは、回路(53)を切り替えたとき、同時に ランダム発生器(2)によって、または不揮発性メモリNVM(7)の内容から 初期化されるタイマ(R3)を活動化する。例えばE2PROMタイプのNVM または強誘電性装置は、実際に、NVMが使用されるたびに修正される単一の数 を含むことができる。タイマ(R3)は、予測不可能な時間期間後に満了したと き、主プログラムへの復帰をトリガし、また切替回路(53)を切り替えて、主 メモリを作業領域に戻す。この機構は、従来の割込みによるか、または切替回路 (53)へのタイマ(R3)の直接作用およびレジスタ(PC1)および(PC 2)への作用により実行され、それにより(PC1)や(PC2)など処理装置 (1)によるプログラムの実行を検査することができる。 代替実施形態では、ランダムに選択されたアドレスを最初に指し、次いでその アドレスから得られたバイトを反転させ、かつ/または例えば逆配線によるかま たはアドレスの内容のための左シフト回路によってレジスタ(ID2)の内容を 反転させ る、主プログラム(P1)の任意の部分を二次プログラム(P2)として使用す ることができる。このようにすると、プログラムが全く異なる命令を実行するよ うにすることもできる。 異なる命令を実行する別の代替形態は、第3図に示されるようなものである。 レジスタ復号一時命令IDTは、一方ではバス(33)の一部分によってバス( 3)に接続され、他方ではバス(34)の一部分によって回路状態の記憶を可能 にする第二のレジスタスタック(55)に接続される。バス(34)の一部分は 、レジスタIDTのビット(B7)をレジスタ(ID2)のビット(B4)に、 レジスタIDTのビット(B6)をレジスタ(ID2)のビット(B1)に、レ ジスタIDTのビット(B5)をレジスタ(ID2)のビット(B3)に接続す る特定の配線によってスタック(55)のレジスタ(ID2)にハードウェアに よって接続される。 最後に、最後の代替形態は、全く異なる(命令の)実行を可能にし、またバス (3)がバス(35)の一部分によってIDT一時命令復号レジスタに接続され た第3図に示す実施形態を含む。このバスの別の部分(37)は、このIDTレ ジスタを、いくつかの入力を有する排他的ORゲート(39)に接続する。 このORゲートの他の入力は、バスの一部分(36)をロードされてバス(3) に関連づけられるレジスタ(R’2)にバス(38)によって接続される。この レジスタ(R’2)には、「MOVE register(R1)(for instan ce)to register(R’2)(レジスタ(R1)を(例えば)レジス タR‘2)に移動せよ)」などの命令によって、ランダム発生器(R1)かタイ マか不揮発性メモリNVM(7)から得られるものなど、任意の情報をロードす ることができる。 このタイプのシフト命令はマイクロプロセッサの分野の当業者にはよく知られて おり、実施に関して何らの困難も伴わない。 レジスタ(R’2)からの情報とIDTレジスタにロードされた値との排他的O Rをとることは、プログラム命令(P2)を全く変更し、したがって全く異なる 命令を実行する一つの方法である。 プログラム(P2)中では、ランダムな形で呼び出されることになる多数のシ ーケンスを使用することができ、各シーケンスは、様々な命令の組を実施するこ とになり、これには各分岐ごとに異なる処理時間および様々なマイクロプロセッ サ挙動を伴う。シーケンスは、例えば主プログラムが二次プログラムに 飛び移った後でランダムに呼び出すことができ、この二次プログラムは、メモリ (7)からのランダム値Vを二つのレジスタ、例えばマイクロプロセッサ(1) の(T21)および(T22)にロードする。二次プログラムはこの値Vを増分 し、次いでこのプログラムは増分したこの値を不揮発性メモリ(7)に記憶する よう命令する。不揮発性メモリ(7)に記憶されたこの値は、後で使用できるよ うになされている。二次プログラムは、次いで(T21)中のn個のMSBまた はLSBをサンプリングして、様々な二次プログラムシーケンスの中から実行す べきプログラムシーケンスを選定することを可能にする値rを得る。 第三の実施形態では、プロセッサ(1)は、ランダム発生器(2)の状態を調 べるための読取り命令によるか、所定のパルスを直接読み取るか、それらのいく つかをグループ化するか、さらにはランダム発生器(2)によってロードされた レジスタ(R2)の内容を考慮することによりランダム発生器(2)に問い合わ せることができる。主プログラムは、保護が必要なときには、前述の機構と同様 にして制御権を二次プログラムに移す。 当然、前述の実施形態の効果は、一方ではランダムクロック を備えることにより、他方では主プログラム自体か、または主プログラムが許可 するかまたは許可しないランダム割込みシステムによって主プログラムの実行を 中断できるようにすることにより組み合わせることができる。 また、主プログラムの実行は、ランダム発生器かプログラムかタイマか二次プ ログラムに依存するか、または一度に二つ、三つ、四つの要素に依存する絶対に 予測不可能な順序づけに従って達成されることが明らかである。主プログラムは また、機密保護の観点からは機密でない機能を実行するときには通常動作に頼り 、それにより例えば結果を外界に供給するか、タイマ(R3)またはランダム発 生器(2)の相関解除割込みをマスクし、それにより処理時間を最適化すること ができる。機密保護機能が実施されるとすぐに、主プログラム(P1)は、相関 解除割込みを妥当化し、それによりランダムモードでの動作を「スクランブル」 することによってその動作を可能にする。 同じく第1図に示す第四の実施形態によれば、RAM(51)および(52) を同時に使用することができる。実際に、メモリおよびそれに関連するレジスタ の切替を検出することができると仮定した場合、ダミーメモリ(52)を使用し てシーケン スを除去することによって分析を実行できる場合もある。このような万一の場合 を回避するために、この実施形態では、第一の段階中にメモリ(51)および( 52)を並列に妥当化できるようになされている。明らかに、このことは、メモ リ(52)がこの場合少なくともプログラム(P1)と共に動作しているメモリ (51)中の、プログラム(P1)によって使用される領域のサイズに等しいサ イズを有することを前提条件とする。 このようにして、それぞれメモリ(51)および(52)中の、プログラム(P 1)によって使用される二つのメモリ領域の内容は、この第一の段階中にこのプ ログラムによって同様にして初期化され、使用される。一つの代替形態は、読取 りサイクル中に必要な構成を有する切替回路(53)に二つのレジスタの一方( D2)または(D3)のみをロードして競合を防止することによって妥当化を行 うことであるが、これは本発明に根本的な変更を加えるものではない。したがっ て、この段階中に実際に使用されているメモリを識別することはできない。した がって、第二の段階中に、切替回路(53)に修正を加えることによってメモリ を交互にかつランダムに切り替え、同時に同じプログラム(P1)を実行し続け ることが可能になる。したが って、あるプログラムまたは別のプログラムの実行をRAMまたは使用されてい るレジスタに相関させることはもはや不可能になる。第三の段階では、前述のよ うに予測不可能な瞬間にプログラム(P2)を介してダミーメモリ(52)を切 り替え、同時に主作業メモリ(51)への復帰も予測不可能な瞬間に行う。この プロセスは、保護措置として主プログラム(P1)の制御下で任意に再現可能で ある。 最後に、本発明が提供する最後のプログラムは、プログラム(P2)のダミー モードから出て、プログラム(P1)を伴う通常動作モードに復帰することがで きるプログラムである。プログラム(P1)は、制御権をプログラム(P2)に 移す直前に、ランダム発生器からかまたはタイマから来る割込みを使用可能にし 、同時にそれを初期化する。無秩序プログラム(P2)の実行中に、回路(4) を介した割込みが発生し、これは割込みプログラム(PIT)に移る。このプロ グラムは、通常割込みベクトルを用いてアクセスされ、例えば現在のプログラム の実行コンテキストを分析する。(P2)が活動状態の場合、PITは制御権を プログラム(P1)に移す。この機構は、以下のように実行できる。PITプロ グラムの第一の命令が実行さ れたとき、これは例えば第4図に示すように、切替回路(53)の内容を読み取 り(41)、次いで回路(53)に含まれる情報がダミーモード動作に対応する かどうかを決定する試験を行う(42)ことによって構成できる。肯定の場合、 PITプログラムは、ステップ(43)で表されるプログラム復帰命令(P1) を実行する。この復帰は、線(534)および(531)の値を修正することス テップ(44)に従って切替レジスタ(53)の書込みを行うことによって開始 される。切替レジスタ(53)へのこの後続の書込み(44)により、線(53 4)および線(531)の値の修正された通常モードに復帰し、それにより再度 スタック(54)および主作業メモリ(51)の使用を許可することができる。 プログラム(P1)への復帰のこの命令は、ダミー試験(42)の直後か、また はランダム時間の生成を可能にする表されていない他のいくつかの命令の実行の 直後に実行することができる。試験(42)が否定の場合、プログラムはステッ プ(45)に進み、ダミーモードに変更するよう切替レジスタ(53)への書き 込みを行い、それにより線(535)および(532)の値を修正して、(53 1)および(534)の制御下で回路をロックしながらレジスタスタッ ク(55)およびダミーメモリの使用を可能にする。 前記の全ての実施形態で、ランダムクロックを使用する必要はないことに気づ くであろう。逆に、クロック配分を全く通常の等時配分にして、回路の設計なら びにそのシミュレーションおよび試験を容易にすることができる。実際に、機密 保護は、もはやプロセッサがランダムに調時されることによって与えられるので はなく、これらのプログラムが等時クロックに合わせて、またはこれに合わせず にそれなりに実行され、実行自体がスクランブルされることによって与えられる 。 プロセッサが実行するプログラムの編成は、マシンが実行するプログラムのタ イプに従って実施される妨害のタイプを決定する実際の機密保護オペレーション システムによって、プロセッサの動作が制御されるように実施することができる 。この場合、オペレーティングシステムは、ランダム発生器からきた様々な信号 、割込み、主プログラムおよび二次プログラムの起動を適宜に管理する。明らか に、二次プログラムは、単純な待機ループ以外の機能、特に二次プログラムに与 えられた時間を利用するために主プログラムにとって有効である処理を実行する ために使用できる。この処理は、例えば主プログラムが後で使用 する予備計算を含む。当然、プロセッサがマルチアプリケーションモードで動作 し、同時にアプリケーションプログラムが単純な主プログラムと見なせるときに は、本発明の機構は容易に一般化できる。 上述のランダム発生器およびタイマは、製造に関して特に何らの問題も生じず 、また本発明と何らの関係もない他の用途に別々に使用するときに当業者に知ら れている。 ランダム発生器に関しては、例えば、様々な周期を有するループカウンタを使 用することができる。これらのカウンタは、不揮発性メモリ(7)に記憶された 初期化情報によって初期化される。プロセッサが始動したとき、カウンタは初期 値として記憶された値を考慮する。計算中またはその終了時に、不揮発性メモリ は、次の初期化時にカウンタを初期化するために初期化情報として使用される新 しい値で更新される。上述の割込みパルスの生成は、生成された数がプログラム データの一部と等しいなどの特徴を有するときに行われる。また、一つまたは複 数のカウンタの一つまたは複数のビットの値を使用することもできる。また、暗 号アルゴリズムかまたは上述の初期化情報によって初期化されたチョッピング機 能を使用して、非常に良好 なランダム発生器を得ることもできる。この場合、発生器は、このアルゴリズム を実施するプログラムにすることができる。 この乱数発生器は上述の様々な乱数を発生させるためにも使用できることは明ら かである。このような発生器を得る別の方法は、「ノイズダイオード」の両端子 間で発生した電圧を増幅し、低域フィルタを通過させた後で信号を整形して、過 度に高速なノイズパルスがマイクロプロセッサの動作を妨害しないようにするこ とである。
【手続補正書】 【提出日】1999年3月1日(1999.3.1) 【補正内容】 (1)請求の範囲を別紙の通り補正する。 (2)明細書中、第6頁第13行目に「ブロックとを」とあるを「ブロックとへ 」と補正する。 (3)同中、第9頁第2行目に「切替回路を」とあるを「切替回路へ」と補正す る。 請求の範囲 1.プロセッサ(1)と、第一の作業メモリ(51)と、オペレーティングシス テムと主プログラム(P1)と二次プログラム(P2)とを含む主メモリ(6) と、第二の作業メモリ(52)と、プログラムの実行中にその二つの作業メモリ (51、52)の内容を保持しながらその二つの作業メモリの一方の作業メモリ から他方の作業メモリに切り替える切替手段と、各メモリ(6、51、52)に 結合されたアクセスレジスタ(A1〜A3)(D1〜D3)とを有し、その切替 手段が、主メモリ中のプログラムの動作コンテキストを記憶する少なくとも一つ の第一のレジスタブロック(54)と、一方の作業メモリと各メモリ(51、5 2、6)に結合されかつ切替回路(53)によって制御されるアクセスレジスタ (A1〜A3)(D1〜D3)とを使用可能にする切替回路(53)とを含む予 測不可能なマイクロプロセッサまたはマイクロコンピュータ。 2.二次プログラムの動作コンテキストを記憶する第二のレジスタブロック(5 5)をさらに含むことを特徴とする請求の範囲第1項に記載の予測不可能なマイ クロプロセッサまたはマイ クロコンピュータ。 3.プログラムの実行を等時クロックから相関解除する手段(R1、R2、R3 )をさらに含むことを特徴とする請求の範囲第1項または第2項に記載の予測不 可能なマイクロプロセッサまたはマイクロコンピュータ。 4.作業メモリ(51、52)を切り替えかつ使用可能にする切替回路(53) と、各作業メモリ(51、52)に結合されかつそれぞれ、主メモリ中のプログ ラムの動作コンテキストおよび二次プログラムの動作コンテキストを記憶する記 憶レジスタブロック(54、55)とへロードすることによって、主プログラム が一つまたは複数の切替機構を便用可能にするかまたは抑止することができるこ とを特徴とする請求の範囲第1項から第3項のいずれか一項に記載のマイクロプ ロセッサまたはマイクロコンピュータ。 5.主プログラムによって利用される際に、作業メモリ(51)およびそのアク セスレジスタ(A2、D2)の代わりに第二の作業メモリ(52)およびそのア クセスレジスタ(A3、D3)が使用されることを特徴とする請求の範囲第1項 から第4項のいずれか一項に記載の予測不可能なマイクロプロセッサまたは マイクロコンピュータ。 6.相関解除手段が、二次プログラム(P2)にランダムに飛び移ることによっ て、プロセッサ中のプログラムの実行を脱同期させるためにランダム割込みを、 割込み回路(4)を介してトリガする乱数発生器(2)を含むことを特徴とする 請求の範囲第3項に記載の予測不可能なマイクロプロセッサまたはマイクロコン ピュータ。 7.相関解除手段が、時間カウント後に、二次プログラムから主プログラムに復 帰するために割込みをトリガする、プロセッサ(1)から独立した時間カウント システム(R3)を含むことを特徴とする請求の範囲第4項または第6項に記載 のマイクロプロセッサまたはマイクロコンピュータ。 8.作業メモリを切り替える手段(53、54、55、A2、A3、D2、D3 )が、プロセッサおよびそのプログラムか、ランダム割込みシステム(2、4) か、タイマ(R3)か、またはこれら三つの要素のうちの少なくとも二つの要素 の任意の組合せによって制御されることを特徴とする請求の範囲第4項か第6項 か第7項またはその組合せに記載の予測不可能なマイクロプロセッサまたはマイ クロコンピュータ。 9.作業メモリを切り替える手段(53、54、55、A2、A3、D2、D3 )が、主プログラムのシーケンスを実行するプロセッサ(1)によってロードさ れることによって使用可能になることを特徴とする請求の範囲第1項から第8項 のいずれか一項またはその組み合わせに記載の予測不可能なマイクロプロセッサ またはマイクロコンピュータ。 10.第二のプログラム(P2)が主メモリ(6)中の主プログラム(P1)の 作業領域と同じ作業領域を使用することを特徴とする請求の範囲第1項から第9 項のいずれか一項に記載の予測不可能なマイクロプロセッサまたはマイクロコン ピュータ。 11.第二のプログラム(P2)が主プログラムの作業領域より小さい作業領域 を使用することを特徴とする請求の範囲第1項から第9項のいずれか一項に記載 の予測不可能なマイクロプロセッサまたはマイクロコンピュータ。 12.切替手段が、マイクロプロセッサからの命令の実行サイクル中にメモリ( 51、52、53、54、55、A2、A3、D2、D3)およびそれに関連す るコンテキストの置換を実行することを特徴とする請求の範囲第1項から第11 項のいずれか一項に記載の予測不可能なマイクロプロセッサまたはマイク ロコンピュータ。 13.二次プログラム(P2)が主プログラム(P1)の一般動作コンテキスト を修正せず、それによりこのコンテキストを回復する必要なしに主プログラムの 復帰を可能にすることを特徴とする請求の範囲第1項から第12項のいずれか一 項に記載の予測不可能なマイクロプロセッサまたはマイクロコンピュータ。 14.主プログラム(P1)のコンテキストが、二次プログラム(P2)によっ て自動的に回復されるか、または制御権を主プログラム(P1)に戻す前に切替 手段(53)によって自動的に回復されることを特徴とする請求の範囲第13項 に記載の予測不可能なマイクロプロセッサまたはマイクロコンピュータ。 15.主プログラム(P1)のメモリを二次プログラム(P2)のメモリで置換 する手段をさらに含むことを特徴とする請求の範囲第1項から第14項のいずれ か一項に記載の予測不可能なマイクロプロセッサまたはマイクロコンピュータ。 16.主プログラム(P1)が第一の作業メモリ(51)および/または第二の 作業メモリ(52)を交互にまたは同時に使用することができることを特徴とす る請求の範囲第1項から第 15項のいずれか一項に記載の予測不可能なマイクロプロセッサまたはマイクロ コンピュータ。 17.切替回路(53)へロードすることにより相関解除割込みのマスクまたは マスク解除が可能になることを特徴とする予測不可能なマイクロプロセッサまた はマイクロコンピュータ。 18.割込みをマスク解除するために、主プログラム(P1)または二次プログ ラム(P2)の命令を実行することによって、切替レジスタ(53)が適切にロ ードされた後で二次プログラム(P2)によってトリガされる割込みによって主 プログラム(P1)への復帰が実行されることを特徴とする予測不可能なマイク ロプロセッサまたはマイクロコンピュータ。 19.モノリシック集積回路として実施されることを特徴とする予測不可能なマ イクロプロセッサまたはマイクロコンピュータ。 【手続補正書】 【提出日】1999年3月5日(1999.3.5) 【補正内容】 請求の範囲 1.プロセッサ(1)と、第一の作業メモリ(51)と、オペレーティングシス テムと主プログラム(P1)と二次プログラム(P2)とを含む主メモリ(6) と、第二の作業メモリ(52)と、プログラムの実行中にその二つの作業メモリ (51、52)の内容を保持しながらその二つの作業メモリの一方の作業メモリ から他方の作業メモリに切り替える切替手段と、各メモリ(6、51、52)に 結合されたアクセスレジスタ(A1〜A3)(D1〜D3)とを有し、その切替 手段が、主メモリ中のプログラムの動作コンテキストを記憶する少なくとも一つ の第一のレジスタブロック(54)と、一方の作業メモリと各メモリ(51、5 2、6)に結合されかつ切替回路(53)によって制御されるアクセスレジスタ (A1〜A3)(D1〜D3)とを使用可能にする切替回路(53)とを含む予 測不可能なマイクロプロセッサまたはマイクロコンピュータ。 2.二次プログラムの動作コンテキストを記憶する第二のレジスタブロック(5 5)をさらに含むことを特徴とする請求の範囲第1項に記載の予測不可能なマイ クロプロセッサまたはマイ クロコンピュータ。 3.プログラムの実行を等時クロックから相関解除する手段(R1、R2、R3 )をさらに含むことを特徴とする請求の範囲第1項または第2項に記載の予測不 可能なマイクロプロセッサまたはマイクロコンピュータ。 4.作業メモリ(51、52)を切り替えかつ使用可能にする切替回路(53) と、各作業メモリ(51、52)に結合されかつそれぞれ、主メモリ中のプログ ラムの動作コンテキストおよび二次プログラムの動作コンテキストを記憶する記 憶レジスタブロック(54、55)とへロードすることによって、主プログラム が一つまたは複数の切替機構を使用可能にするかまたは抑止することができるこ とを特徴とする請求の範囲第1項から第3項のいずれか一項に記載のマイクロプ ロセッサまたはマイクロコンピュータ。 5.主プログラムによって利用される際に、作業メモリ(51)およびそのアク セスレジスタ(A2、D2)の代わりに第二の作業メモリ(52)およびそのア クセスレジスタ(A3、D3)が使用されることを特徴とする請求の範囲第1項 から第4項のいずれか一項に記載の予測不可能なマイクロプロセッサまたは マイクロコンピュータ。 6.相関解除手段が、二次プログラム(P2)にランダムに飛び移ることによっ て、プロセッサ中のプログラムの実行を脱同期させるためにランダム割込みを、 割込み回路(4)を介してトリガする乱数発生器(2)を含むことを特徴とする 請求の範囲第3項に記載の予測不可能なマイクロプロセッサまたはマイクロコン ピュータ。 7.相関解除手段が、時間カウント後に、二次プログラムから主プログラムに復 帰するために割込みをトリガする、プロセッサ(1)から独立した時間カウント システム(R3)を含むことを特徴とする請求の範囲第4項または第6項に記載 のマイクロプロセッサまたはマイクロコンピュータ。 8.作業メモリを切り替える手段(53、54、55、A2、A3、D2、D3 )が、プロセッサおよびそのプログラムか、ランダム割込みシステム(2、4) か、タイマ(R3)か、またはこれら三つの要素のうちの少なくとも二つの要素 の任意の組合せによって制御されることを特徴とする請求の範囲第4項か第6項 か第7項に記載の予測不可能なマイクロプロセッサまたはマイクロコンピュータ 。 9.作業メモリを切り替える手段(53、54、55、A2、A3、D2、D3 )が、主プログラムのシーケンスを実行するプロセッサ(1)によってロードさ れることによって使用可能になることを特徴とする請求の範囲第1項から第8項 のいずれか一項またはその組み合わせに記載の予測不可能なマイクロプロセッサ またはマイクロコンピュータ。 10.第二のプログラム(P2)が主メモリ(6)中の主プログラム(P1)の 作業領域と同じ作業領域を使用することを特徴とする請求の範囲第1項から第9 項のいずれか一項に記載の予測不可能なマイクロプロセッサまたはマイクロコン ピュータ。 11.第二のプログラム(P2)が主プログラムの作業領域より小さい作業領域 を使用することを特徴とする請求の範囲第1項から第9項のいずれか一項に記載 の予測不可能なマイクロプロセッサまたはマイクロコンピュータ。 12.切替手段が、マイクロプロセッサからの命令の実行サイクル中にメモリ( 51、52、53、54、55、A2、A3、D2、D3)およびそれに関連す るコンテキストの置換を実行することを特徴とする請求の範囲第1項から第11 項のいずれか一項に記載の予測不可能なマイクロプロセッサまたはマイク ロコンピュータ。 13.二次プログラム(P2)が主プログラム(P1)の一般動作コンテキスト を修正せず、それによりこのコンテキストを回復する必要なしに主プログラムの 復帰を可能にすることを特徴とする請求の範囲第1項から第12項のいずれか一 項に記載の予測不可能なマイクロプロセッサまたはマイクロコンピュータ。 14.主プログラム(P1)のコンテキストが、二次プログラム(P2)によっ て自動的に回復されるか、または制御権を主プログラム(P1)に戻す前に切替 手段(53)によって自動的に回復されることを特徴とする請求の範囲第13項 に記載の予測不可能なマイクロプロセッサまたはマイクロコンピュータ。 15.主プログラム(P1)のメモリを二次プログラム(P2)のメモリで置換 する手段をさらに含むことを特徴とする請求の範囲第1項から第14項のいずれ か一項に記載の予測不可能なマイクロプロセッサまたはマイクロコンピュータ。 16.主プログラム(P1)が第一の作業メモリ(51)および/または第二の 作業メモリ(52)を交互にまたは同時に使用することができることを特徴とす る請求の範囲第1項から第 15項のいずれか一項に記載の予測不可能なマイクロプロセッサまたはマイクロ コンピュータ。 17.切替回路(53)へロードすることにより相関解除割込みのマスクまたは マスク解除が可能になることを特徴とする請求の範囲第4項に記載の予測不可能 なマイクロプロセッサまたはマイクロコンピュータ。 18.割込みをマスク解除するために、主プログラム(P1)または二次プログ ラム(P2)の命令を実行することによって、切替レジスタ(53)が適切にロ ードされた後で二次プログラム(P2)によってトリガされる割込みによって主 プログラム(P1)への復帰が実行されることを特徴とする請求の範囲第6項に 記載の 予測不可能なマイクロプロセッサまたはマイクロコンピュータ。 19.モノリシック集積回路として実施されることを特徴とする請求の範囲第1 項に記載の 予測不可能なマイクロプロセッサまたはマイクロコンピュータ。

Claims (1)

  1. 【特許請求の範囲】 1.プロセッサ(1)と、第一の作業メモリ(51)と、オペレーティングシス テムと主プログラム(P1)と二次プログラム(P2)とを含む主メモリ(6) とを含む予測不可能なマイクロプロセッサまたはマイクロコンピュータであって 、 二の作業メモリ(52)と、 プログラムの実行中に、その二つの作業メモリ(51、52)の内容を保持し ながらその二つの作業メモリ(51、52)の一方の作業メモリの使用から他方 の作業メモリの使用に切り替えることを可能にする切替手段とをさらに有し、 この切替手段が、主メモリ中のプログラムの動作コンテキストを記憶する少な くとも一つのレジスタブロック(54)と、一方の作業メモリとおよび各メモリ (51、52、6)に結合されかつ切替回路(53)によって制御されるアクセ スレジスタ(A1〜A3)(D1〜D3)とを使用可能にする切替回路(53) とを含むことを特徴とする予測不可能なマイクロプロセッサまたはマイクロコン ピュータ。 2.二次プログラムの動作コンテキストを記憶する第二のレジ スタブロック(55)を有することを特徴とする請求の範囲第1項に記載の予測 不可能なマイクロプロセッサまたはマイクロコンピュータ。 3.プログラムの実行を等時クロックから相関解除する手段(R1、R2、R3 )を有することを特徴とする請求の範囲第1項または第2項に記載の予測不可能 なマイクロプロセッサまたはマイクロコンピュータ。 4.作業メモリ(51、52)を切り替えかつ使用可能にする回路(53)と、 各作業メモリ(51、52)に結合された記憶レジスタブロック(54、55) とをロードすることによって、主プログラムが一つまたは複数の切替機構を使用 可能にするかまたは抑止することができることを特徴とする請求の範囲第1項か ら第3項のいずれか一項に記載のマイクロプロセッサまたはマイクロコンピュー タ。 5.主プログラムによって利用される際に、作業メモリ(51)およびそのアク セスレジスタ(A2、D2)の代わりに第二の作業メモリ(52)およびそのア クセスレジスタ(A3、D3)が使用されることを特徴とする請求の範囲第1項 から第4項のいずれか一項に記載の予測不可能なマイクロプロセッサまたは マイクロコンピュータ。 6.相関解除手段が、二次プログラム(P2)にランダムに飛び移ることによっ て、プロセッサ中のプログラムの実行を脱同期させるためにランダム割込みを割 込み回路(4)を介してトリガすることを可能にする乱数発生器(2)を含むこ とを特徴とする請求の範囲第3項に記載の予測不可能なマイクロプロセッサまた はマイクロコンピュータ。 7.相関解除手段が、時間カウント後に、二次プログラムから主プログラムに復 帰するために割込みをトリガすることを可能にする、プロセッサ(1)から独立 した時間カウントシステム(R3)を含むことを特徴とする請求の範囲第4項ま たは第6項に記載のマイクロプロセッサまたはマイクロコンピュータ。 8.作業メモリを切り替える手段(53、54、55、A2、A3、D2、D3 )が、プロセッサおよびそのプログラムか、ランダム割込みシステム(2、4) か、タイマ(R3)か、またはこの三つのうちの少なくとも二つの任意の組合せ によって制御されることを特徴とする請求の範囲第4項か第6項か第7項または その組合せに記載の予測不可能なマイクロプロセッサまたはマイクロコンピュー タ。 9.作業メモリを切り替える手段(53、54、55、A2、A3、D2、D3 )が、主プログラムのシーケンスを実行するプロセッサ(1)によってロードさ れることによって使用可能になることを特徴とする請求の範囲第1項から第8項 のいずれか一項またはその組み合わせに記載の予測不可能なマイクロプロセッサ またはマイクロコンピュータ。 10.第二のプログラム(P2)が、主メモリ(6)中の主プログラム(P1) の作業領域と同じ作業領域を使用することを特徴とする請求の範囲第1項から第 9項のいずれか一項に記載の予測不可能なマイクロプロセッサまたはマイクロコ ンピュータ。 11.第二のプログラム(P2)が主プログラムの作業領域より小さい作業領域 を使用することを特徴とする請求の範囲第1項から第9項のいずれか一項に記載 の予測不可能なマイクロプロセッサまたはマイクロコンピュータ。 12.切替手段が、マイクロプロセッサからの命令の実行サイクル中にメモリ( 51、52、53、54、55、A2、A3、D2、D3)およびそれに関連す るコンテキストの置換を実行することを特徴とする請求の範囲第1項から第11 項のいずれ か一項に記載の予測不可能なマイクロプロセッサまたはマイクロコンピュータ。 13.二次プログラム(P2)が主プログラム(P1)の一般動作コンテキスト を修正せず、それによりこのコンテキストを回復する必要なしに主プログラムの 復帰を可能にすることを特徴とする請求の範囲第1項から第12項のいずれか一 項に記載の予測不可能なマイクロプロセッサまたはマイクロコンピュータ。 14.主プログラム(P1)のコンテキストが、二次プログラム(P2)によっ て自動的に回復されるか、または制御権を主プログラム(P1)に戻す前に切替 手段(53)によって自動的に回復されることを特徴とする請求の範囲第13項 に記載の予測不可能なマイクロプロセッサまたはマイクロコンピュータ。 15.主プログラム(P1)のメモリを二次プログラム(P2)のメモリで置換 する手段を含むことを特徴とする請求の範囲第1項から第14項のいずれか一項 に記載の予測不可能なマイクロプロセッサまたはマイクロコンピュータ。 16.主プログラム(P1)が第一の作業メモリ(51)および/または第二の 作業メモリ(52)を交互にまたは同時に使 用することができることを特徴とする請求の範囲第1項から第15項のいずれか 一項に記載の予測不可能なマイクロプロセッサまたはマイクロコンピュータ。 17.切替回路(53)をロードすることにより相関解除割込みのマスクまたは マスク解除が可能になることを特徴とする予測不可能なマイクロプロセッサまた はマイクロコンピュータ。 18.割込みをマスク解除するために、主プログラム(P1)または二次プログ ラム(P2)の命令を実行することによって、切替レジスタ(53)が適切にロ ードされた後で二次プログラム(P2)によってトリガされる割込みによって主 プログラム(P1)への復帰が実行されることを特徴とする予測不可能なマイク ロプロセッサまたはマイクロコンピュータ。 19.モノリシック集積回路として実施されることを特徴とする予測不可能なマ イクロプロセッサまたはマイクロコンピュータ。
JP11505328A 1997-06-26 1998-06-25 予測不可能なマイクロプロセッサまたはマイクロコンピュータ Pending JP2000501541A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR97/07995 1997-06-26
FR9707995A FR2765361B1 (fr) 1997-06-26 1997-06-26 Microprocesseur ou microcalculateur imprevisible
PCT/FR1998/001343 WO1999000718A1 (fr) 1997-06-26 1998-06-25 Microprocesseur ou microcalculateur imprévisible

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2001190336A Division JP2002055883A (ja) 1997-06-26 2001-06-22 予測不可能なマイクロプロセッサまたはマイクロコンピュータ

Publications (1)

Publication Number Publication Date
JP2000501541A true JP2000501541A (ja) 2000-02-08

Family

ID=9508464

Family Applications (2)

Application Number Title Priority Date Filing Date
JP11505328A Pending JP2000501541A (ja) 1997-06-26 1998-06-25 予測不可能なマイクロプロセッサまたはマイクロコンピュータ
JP2001190336A Pending JP2002055883A (ja) 1997-06-26 2001-06-22 予測不可能なマイクロプロセッサまたはマイクロコンピュータ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2001190336A Pending JP2002055883A (ja) 1997-06-26 2001-06-22 予測不可能なマイクロプロセッサまたはマイクロコンピュータ

Country Status (9)

Country Link
US (1) US7036002B1 (ja)
EP (1) EP0920660B1 (ja)
JP (2) JP2000501541A (ja)
KR (1) KR100578459B1 (ja)
CN (1) CN1239973C (ja)
DE (1) DE69839958D1 (ja)
FR (1) FR2765361B1 (ja)
TW (1) TW457453B (ja)
WO (1) WO1999000718A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006510126A (ja) * 2002-12-12 2006-03-23 エイアールエム リミテッド データ処理システムでの処理動作マスキング

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2787900B1 (fr) * 1998-12-28 2001-02-09 Bull Cp8 Circuit integre intelligent
JP2001094550A (ja) * 1999-09-17 2001-04-06 Toshiba Corp 信号処理装置
US20040162993A1 (en) * 2003-02-13 2004-08-19 Yannick Teglia Antifraud method of an algorithm executed by an integrated circuit
US7373463B2 (en) * 2003-02-13 2008-05-13 Stmicroelectronics S.A. Antifraud method and circuit for an integrated circuit register containing data obtained from secret quantities
JP4447977B2 (ja) 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
MX2009012134A (es) * 2007-05-11 2009-11-25 Echostar Technologies Llc Aparato para controlar la ejecucion de un procesador en un ambiente seguro.
EP2000936A1 (en) * 2007-05-29 2008-12-10 Gemplus Electronic token comprising several microprocessors and method of managing command execution on several microprocessors
IT1404162B1 (it) * 2010-12-30 2013-11-15 Incard Sa Metodo per de-correlare segnali elettrici emessi da una carta a circuito integrato
CN103164384B (zh) * 2011-12-15 2016-05-18 中国银联股份有限公司 多机系统共享内存的同步实现方法及其系统
US9703951B2 (en) 2014-09-30 2017-07-11 Amazon Technologies, Inc. Allocation of shared system resources
US9754103B1 (en) 2014-10-08 2017-09-05 Amazon Technologies, Inc. Micro-architecturally delayed timer
US9378363B1 (en) * 2014-10-08 2016-06-28 Amazon Technologies, Inc. Noise injected virtual timer
US9864636B1 (en) 2014-12-10 2018-01-09 Amazon Technologies, Inc. Allocating processor resources based on a service-level agreement
US9491112B1 (en) 2014-12-10 2016-11-08 Amazon Technologies, Inc. Allocating processor resources based on a task identifier
CN120653503B (zh) * 2025-08-20 2025-11-07 沐曦集成电路(南京)有限公司 一种多模式的开关系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02163834A (ja) * 1988-12-16 1990-06-25 Mitsubishi Electric Corp マルチ・タスク処理方式
JPH0440532A (ja) * 1990-06-06 1992-02-10 Matsushita Electric Ind Co Ltd リアルタイム処理装置
JPH0454652A (ja) * 1990-06-25 1992-02-21 Nec Corp マイクロコンピュータ
JPH04223530A (ja) * 1990-03-20 1992-08-13 General Instr Corp 以前の観察可能な外部事象の発生に関係する予め定められたデータ処理ルーチンの実行時間決定の阻止
JPH07239837A (ja) * 1993-12-21 1995-09-12 General Instr Corp Of Delaware 秘密保護マイクロプロセッサのためのクロック周波数変調

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694603A (en) * 1982-09-28 1997-12-02 Reiffin; Martin G. Computer memory product with preemptive multithreading software
US4575817A (en) * 1983-06-27 1986-03-11 International Business Machines Corporation Switching of programming routine supporting storage stacks
US4591982A (en) * 1983-08-29 1986-05-27 International Business Machines Corporation Storage selection override apparatus for a multimicroprocessor implemented data processing system
JPS6491228A (en) * 1987-09-30 1989-04-10 Takeshi Sakamura Data processor
US5012409A (en) * 1988-03-10 1991-04-30 Fletcher Mitchell S Operating system for a multi-tasking operating environment
JPH02224140A (ja) * 1989-02-27 1990-09-06 Nippon Motoroola Kk 割込試験装置
US5127098A (en) * 1989-04-12 1992-06-30 Sun Microsystems, Inc. Method and apparatus for the context switching of devices
GB2234613B (en) * 1989-08-03 1993-07-07 Sun Microsystems Inc Method and apparatus for switching context of state elements in a microprocessor
EP0417817B1 (en) * 1989-09-15 1998-11-11 Digital Equipment Corporation System and method for reducing the bandwidth of timing channels in a digital data processing system
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
US5357617A (en) * 1991-11-22 1994-10-18 International Business Machines Corporation Method and apparatus for substantially concurrent multiple instruction thread processing by a single pipeline processor
US5613114A (en) * 1994-04-15 1997-03-18 Apple Computer, Inc System and method for custom context switching

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02163834A (ja) * 1988-12-16 1990-06-25 Mitsubishi Electric Corp マルチ・タスク処理方式
JPH04223530A (ja) * 1990-03-20 1992-08-13 General Instr Corp 以前の観察可能な外部事象の発生に関係する予め定められたデータ処理ルーチンの実行時間決定の阻止
JPH0440532A (ja) * 1990-06-06 1992-02-10 Matsushita Electric Ind Co Ltd リアルタイム処理装置
JPH0454652A (ja) * 1990-06-25 1992-02-21 Nec Corp マイクロコンピュータ
JPH07239837A (ja) * 1993-12-21 1995-09-12 General Instr Corp Of Delaware 秘密保護マイクロプロセッサのためのクロック周波数変調

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006510126A (ja) * 2002-12-12 2006-03-23 エイアールエム リミテッド データ処理システムでの処理動作マスキング

Also Published As

Publication number Publication date
FR2765361A1 (fr) 1998-12-31
WO1999000718A1 (fr) 1999-01-07
EP0920660B1 (fr) 2008-09-03
CN1234883A (zh) 1999-11-10
FR2765361B1 (fr) 2001-09-21
KR20000068373A (ko) 2000-11-25
CN1239973C (zh) 2006-02-01
KR100578459B1 (ko) 2006-05-10
JP2002055883A (ja) 2002-02-20
TW457453B (en) 2001-10-01
DE69839958D1 (de) 2008-10-16
HK1022756A1 (en) 2000-08-18
EP0920660A1 (fr) 1999-06-09
US7036002B1 (en) 2006-04-25

Similar Documents

Publication Publication Date Title
US4558176A (en) Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software
US5944833A (en) Integrated circuit and method for decorrelating an instruction sequence of a program
JP2000501541A (ja) 予測不可能なマイクロプロセッサまたはマイクロコンピュータ
EP3682362B1 (en) Call path dependent authentication
JP4030719B2 (ja) インテリジェントic
US5237616A (en) Secure computer system having privileged and unprivileged memories
US9311255B2 (en) Multi-layer content protecting microcontroller
US5675645A (en) Method and apparatus for securing executable programs against copying
EP0694828A2 (en) Data processor with secure communication
JPH0719231B2 (ja) 改良されたアクセス安全装置を備える集積回路
KR19980071365A (ko) 메모리 액세스 제어회로
CN110135199A (zh) 安全通用数字信号处理dsp芯片
US20210373891A1 (en) Enhanced protection of processors from a buffer overflow attack
US8397081B2 (en) Device and method for securing software
US8127120B2 (en) Secured processing unit
JPH0231256A (ja) 外部メモリとそれを用いる情報処理装置
WO2002027478A1 (en) Instruction issue in a processor
WO2002027474A1 (en) Executing a combined instruction
JPH0475137A (ja) データ処理装置
Lehniger et al. Windowguardian: return address integrity for esp32 microcontrollers with xtensa processors using aes and register windows
EP1920376A2 (en) Processor hardware and software
WO2002027479A1 (en) Computer instructions
WO2002027476A1 (en) Register assignment in a processor

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050428

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20051124

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20051124

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20051202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060213

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060524

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060830