JP2003108442A - マイクロプロセッサ - Google Patents
マイクロプロセッサInfo
- Publication number
- JP2003108442A JP2003108442A JP2001304488A JP2001304488A JP2003108442A JP 2003108442 A JP2003108442 A JP 2003108442A JP 2001304488 A JP2001304488 A JP 2001304488A JP 2001304488 A JP2001304488 A JP 2001304488A JP 2003108442 A JP2003108442 A JP 2003108442A
- Authority
- JP
- Japan
- Prior art keywords
- task
- key
- program
- cache
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 94
- 238000012795 verification Methods 0.000 claims abstract description 11
- 230000006870 function Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000003672 processing method Methods 0.000 claims 3
- 101001116314 Homo sapiens Methionine synthase reductase Proteins 0.000 description 41
- 102100024614 Methionine synthase reductase Human genes 0.000 description 41
- 238000000034 method Methods 0.000 description 31
- 239000000872 buffer Substances 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
-
- 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/72—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 cryptographic circuits
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
- G06F21/126—Interacting with the operating system
-
- 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/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Mathematical Physics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
内容をOSからも効率的に保護することのできる耐タン
パプロセッサを提供する。 【解決手段】 マイクロプロセッサは、複数の状態を取
り得るタスクに識別子を付与し、タスクの状態をそのタ
スク識別子と対応して保持するタスク状態テーブルと、
現在実行中のタスク識別子を保持するタスクレジスタ
と、タスクの要求があったときに、外部メモリに所定の
プログラム鍵で暗号化された状態で格納されているプロ
グラムをキャッシュライン単位に読み込むインターフェ
イスと、プログラム鍵に基づいてキャッシュラインごと
に異なる復号鍵を生成し、読み込まれた内容を復号する
暗号処理部と、キャッシュラインごとにそのキャッシュ
ラインの復号に用いられた復号鍵に対応するタスク識別
子をタグに保持するキャッシュメモリと、キャッシュラ
インのタグに保持されたタスク識別子と、タスクレジス
タの値を比較し、値が一致しない場合にキャッシュライ
ンの内容を廃棄するアクセス検証部とを備える。
Description
ログラム実行環境下で、実行コードや処理対象であるデ
ータの不正な改変を防止することのできる耐タンパマイ
クロプロセッサに関する。
のハードウェア情報や、オペレーションシステム(以
下、「OS」とする)のシステムプログラム情報が、特
に秘密にされることなく開示されているオープンシステ
ムが広く普及している。オープンシステムでは、エンド
ユーザがシステムプログラムを変更して、所望の改良を
加えることができる。このような環境下で、アプリケー
ションプログラムが扱う情報の著作権や、プログラム自
体の著作権を保護するには、あらかじめシステムのOS
がアプリケーションに対して敵対的動作をとり得ること
を想定した秘密保護能力のあるハードウェアが必要であ
る。実際、このような秘密保護機能を有するハードウェ
ア、特にマイクロプロセッサが提案されている(特許出
願第2000−35398号,Lie et al., “Architec
tural Support for Copy and TamperResistant Softwar
e”;Computer Architecture News 28(5):p168- 等)。
は、マルチタスク環境下で、プログラム自体やプログラ
ムが扱う情報が不正に覗き見され、改変されないよう
に、これらの情報を暗号化する機能を備えている。この
ようなマイクロプロセッサを、耐タンパプロセッサと呼
ぶ。
ーザのシステムで動作するアプリケーションを保護する
ことにより、プログラムやコンテンツ、ネットワークサ
ービスの権利者の権利を保護することである。具体的に
は、(1)プログラムに実装されたアルゴリズムの保
護、(2)プログラムに埋め込まれたトレードシークレ
ットや、コンテンツの保護、(3)プログラム動作の改
変からの保護、の3つが挙げられる。
護は、プログラムの権利者を保護するために必要であ
る。プログラムに埋め込まれたトレードシークレットの
保護は、プログラムが扱うコンテンツの不正コピーを防
止するために必要である。不正な改変からの保護は、た
とえばサービスプロバイダの権利を保護するために必要
である。
ムが、課金情報をサーバとやりとりするようなアプリケ
ーションでは、特に、課金情報の送信動作を正しく実行
し、不正な改変を防止することが重要である。実際の例
として、PCでDVDを再生するプログラムが解析さ
れ、そこからDVDの暗号を解読するためのトレードシ
ークレットが読みとられて不正にDVDをコピーするプ
ログラム(DeCSS)が作られたことはよく知られて
いる。
ケーションプログラムの秘密を保護する機構は従来から
提案されているが、本件の出願人は、ひとつのシステム
上で複数のプログラム(複数の異なるプログラムベンダ
からのプログラムあるいは単一のベンダからの複数の異
なるプログラム)が擬似並列的に動かされる場合に、そ
の各々について、システムの資源を管理するOSからも
独立に秘密を保護する保護環境を提案してきた(特許出
願第2000−35398号、第2000−13501
0号、第2000−333635号、第2001−02
4480号など)。このような保護環境を、「マルチパ
ーティアプリケーション保護環境」と呼ぶ。
リケーション保護環境を示す。図18において、ユーザ
12が、複数のソフトウェアベンダ21−1〜21−n
のうち、ベンダ1(21−1)からプログラムをする購
入すると場合を例にとる。ユーザ12が使用するシステ
ム2は、マイクロプロセッサAを内蔵し、マイクロプロ
セッサAは、このプロセッサに固有の秘密鍵Aを有す
る。秘密鍵Aに対応する公開鍵Aは、公開されている。
1を開発し、暗号鍵としてプログラム鍵1を選択し、平
文プログラム22−1を暗号化して暗号プログラム23
−1を作成する。次に、プログラム鍵1を、配布先シス
テム2のプロセッサAに固有の公開鍵Aで暗号化して、
配布鍵25−1を作成する。
プログラム22−1の他にも、複数の異なるプログラム
を開発しており、それぞれプログラムに応じたプログラ
ム鍵を選択して、暗号化プログラムと配布鍵を作成す
る。ここでは、説明の便宜上、ひとつのプログラムにつ
いて説明する。
グラム23−1と、暗号化した配布鍵25−1とを、ネ
ットワークを介して、ターゲットシステム2に配信す
る。配信されたプログラム23−1と配布鍵25−1
は、システムの二次記憶(たとえば、ハードディスク)
7に格納される。プログラム23−1は、実行コードと
データ(初期化データ等)を含み、実行時に、マイクロ
プロセッサ3の外にある外部メモリ8上に、暗号化され
たままの状態で読み込まれる。外部メモリ8上の暗号化
されたプログラムを保護プログラムと称する。
を読み込み、公開鍵Aに対応する秘密鍵Aによってこれ
を復号してプログラム鍵1を得る。鍵の復号処理はマイ
クロプロセッサ内の保護ロジック(コア)6で行なわれ
る。
鍵1によってプログラム1を復号してキャッシュメモリ
4に読み込む。復号とキャッシュメモリ3への読み込み
は、所定のキャッシュアルゴリズムにより、プログラム
の実行に従って、部分ごとに行われ、プログラム全体が
一度にキャッシュメモリ4に読み込まれるわけではな
い。キャッシュメモリ4に読み込まれたプログラムは平
文状態なので、暗号化されていない通常のプログラムと
同様にコア6で実行される。プログラム鍵1や平文プロ
グラムを扱う部分は、プロセッサAのコア6によって行
なわれ、OSが介在する余地はない。マイクロプロセッ
サ内にあるキャッシュメモリ4、秘密鍵5の内容は、プ
ロセッサの仕様に定められた操作を除いては、外部から
直接読み出すことはできない。
に格納された平文の情報について、ユーザが複数のプロ
グラムベンダ21−1〜21−nから、複数の異なるプ
ログラムを購入しても、それらのプログラムの間で、独
立に秘密が守られることを保証するために、キャッシュ
メモリ4のライン毎に、その平文情報がどの暗号鍵によ
って復号化された情報であるかを特定する識別子がつけ
られる。異なるプログラムベンダの、異なるプログラム
ごとにプログラム鍵はそれぞれ異なるので、キャッシュ
ラインにあるタスクと、それを復号した鍵とを対応付け
ることにより、プログラムの独立性は一応保証される。
能を実現するには、各プログラムのプログラム鍵をタス
クIDに対応して保持するテーブルをマイクロプロセッ
サ内部に持つことが必要である。このようなテーブルの
設定を指示するのは、システムを管理するOSであり、
OSプログラムからテーブルを操作する手段が必要とな
る。このテーブル操作手段は、当然、秘密保護の要求を
満たすものでなければならない。
の要となるが、資源の有限性やコストの関係上、テーブ
ルの量を無限に増やすことはできない。このため、ある
テーブルのエントリをどのプログラムに割り当てるか、
エントリをどのように再利用するかは、システムユーザ
の意向に従って、OSが管理する必要がある。
をもたらす可能性がある。例えば、あるプログラム鍵X
にタスクID#1を割り当てた状態の時、OSが別のプ
ログラム鍵Yに同一のタスクID#1を再割当したとす
る。このとき、キャッシュメモリにタスクID#1のタ
グが付与されたキャッシュラインが残っていると、その
データは、プログラム鍵Yに対応するプログラムから読
みとることができる。これは秘密保護の原則に違反す
る。
反を防止するためのタスク状態管理とテーブル管理の機
構を提供する。
ュライン単位で復号処理が完結するような方法と、ある
ひとつのキャッシュラインの復号に複数のキャッシュラ
インのデータが必要な方法の2種類がある。前者はメモ
リ容量やライン単位の入れ替えにさほど影響しないが、
後者には、以下の問題がある。
ュラインのデータを必要とする方法では、メモリへのラ
ンダムアクセスが発生する場合、必要なメモリ領域の前
後のメモリ領域も読み込まなければならない。このた
め、大きなオーバヘッドが発生する。
に依存するため、いわゆるブロック交換攻撃の可能性が
ある。ブロック交換攻撃とは、同一の秘密に基づいて暗
号化されたブロック情報を、攻撃者が適切に入れ換える
ことにより、システムの状態を攻撃者の意図するように
変更する攻撃を意味する。たとえば、攻撃者が、あるア
ドレスXに配置されていたラインPが課金動作に対応す
る部分であることを、通信のタイミングなどから知った
とする。そして、同一のプログラム鍵で暗号化された別
のラインQを実行しても、プログラムの提供するサービ
スに悪影響がないことを、知っていたとする。このと
き、ラインPをラインQで置き換えれば、攻撃者はプロ
グラムのサービスに影響なく、課金だけを逃れることが
できる。同様の攻撃は、プログラムが扱うデータにも適
用可能である。
上記の問題は解決できるが、配布鍵にブロックごとの個
別暗号鍵を格納すると、配布鍵を公開鍵で暗号化するア
ルゴリズムが膨大になり、復号化処理のオーバヘッドを
引き起こす。また、そのような鍵を管理する膨大な容量
のテーブルをマイクロプロセッサ内部に必要とし、鍵の
配布、管理コストの面で現実的ではない。
配置されるアドレスが常に一定であるわけではなく、タ
ーゲットシステムの構成(他のプログラムと共有するラ
イブラリや共有メモリの構成)によって、配置されるア
ドレスが変更されることがある。これをリロケーション
と呼ぶ。ブロックごとの暗号化を行う場合、リロケーシ
ョンの問題を考慮しなければならない。
ッドが小さく、データ交換攻撃を困難にし、リロケーシ
ョンをも考慮した秘密情報管理能力を有するマイクロプ
ロセッサを提供する。
タ、コンテキスト情報は、アプリケーションの3要素で
あるが、これらはプロセッサ内部での取り扱い違いがあ
る。実行コードとデータでプログラム本体を成し、コン
テキストは、タスクの実行が中断されたときにタスクを
再開するためにメモリ上に保存される状態情報である。
ムは書き換えられることはないが、キャッシュ上のデー
タに変更があればデータは外部メモリへと書き戻され
る。
イン単位でアクセスされるが、コンテキスト情報は、単
一のキャッシュラインでは格納できないほどのサイズに
なることが多い。コンテキスト切り替えのときは、複数
のキャッシュラインにまたがる情報がまとめて読み書き
される。
やりとりする際には、それぞれ暗号処理が必要になる
が、その一方でハードウェアコストの削減が望まれる。
に対する暗号処理ハードウェアを共通化できるマイクロ
プロセッサを提供する。
めに、実際にキャッシュラインにあるタスクの識別子
と、OSにより割り当てられたタスクの識別子とを比較
して、一致するときにのみそのキャッシュラインへのア
クセスを許可し、一致しないときは、キャッシュライン
の内容を廃棄する。
サは、複数の状態を取り得るタスクに識別子を付与し、
タスク識別子と対応してタスクの状態を保持するタスク
状態テーブルと、現在実行中のタスク識別子を保持する
タスクレジスタと、タスクの要求があったときに、外部
メモリに所定のプログラム鍵で暗号化された状態で格納
されているプログラムをキャッシュライン単位に読み込
むインターフェイスと、プログラム鍵に基づきキャッシ
ュラインごとに復号鍵を生成し、読み込まれた内容を復
号する暗号処理部と、各々がタグを有する複数のキャッ
シュラインから構成され、キャッシュラインごとに、そ
のキャッシュラインの復号に用いられた復号鍵に対応す
るタスク識別子をタグに保持する第1のキャッシュメモ
リと、キャッシュラインのタグに保持されたタスク識別
子と、前記タスクレジスタの値を比較し、値が一致しな
い場合にキャッシュラインの内容を廃棄するアクセス検
証部とを備える。
に基づいてブロックごとに異なる鍵で復号することを可
能にする。これを実現するために、マイクロプロセッサ
は、以下を備える。
いて暗号化された複数のプログラムが格納されている外
部メモリのアドレスを指定して、読み出し要求を発行す
るプロセッサコア; (b)プロセッサコアの読み出し要求に応じて、外部メ
モリの指定されたアドレスのデータブロックを読み出す
インターフェイス; (c)プログラムの実行制御単位であるタスクごとに与
えられるタスク識別子に対応して、プログラム鍵を保持
するタスク鍵テーブル; (d)タスク識別子ごとに、プログラムが配置された先
頭アドレスをオフセット値として保持するオフセットテ
ーブル; (e)読み出し要求により指定されたアドレスと、オフ
セットテーブルのタスク識別子で指定されるオフセット
値とから相対アドレス値を計算し、この相対アドレス値
を、プログラム鍵で暗号化したブロック対応鍵を生成す
る鍵生成部; (f)読み出されたデータブロックを、ブロック対応鍵
により復号化する暗号処理部;および (g)復号化されたデータブロックをキャッシュライン
単位に読み込むキャッシュメモリ。
ムやデータが配置される物理アドレスは、しばしばシス
テムの資源管理によって変更される(リロケーション)
が、ブロックごとに暗号化されたプログラムを復号して
正常に実行するためには、情報は一定のアドレス空間に
配置される必要がある。そこで、ターゲットアドレスと
プログラムの開始アドレス(オフセットアドレス)との
差で表わされる相対アドレスを計算するときは、仮想ア
ドレスを用いる。
に防止するとともいに、制限ある物理メモリを効率よく
利用することができる。
ロセッサは、(a)外部メモリに暗号化された状態で格
納されているプログラムの実行コードおよびデータをキ
ャッシュラインごとに取り込むインターフェイスと、
(b)プログラムの開始アドレスであるオフセット値を
保持するオフセットテーブルを有し、実行コードを平文
状態でキャッシュラインごとに保持する第1のキャッシ
ュと、(c)データのアドレス範囲を保持するアドレス
範囲レジスタを有し、データを平文状態でキャッシュラ
インごとに保持する第2のキャッシュと、(d)第1お
よび第2のキャッシュに共通バスを介して接続され、プ
ログラムの暗号化に用いた暗号鍵を保持する鍵値テーブ
ルと、(e)第1および第2のキャッシュバスおよび鍵
値テーブルに共通バスを介して接続され、鍵値テーブル
と第1のキャッシュから暗号鍵とオフセット値をそれぞ
れ受け取り、この暗号鍵とオフセット値に基づいて実行
コードを復号化して第1のキャッシュに供給し、鍵値テ
ーブルと第2のキャッシュから暗号鍵とアドレス範囲を
それぞれ受け取って、暗号鍵とアドレス範囲に基づきデ
ータを復号化して第2のキャッシュに供給する暗号処理
部とを備える。この構成により、キャッシュ間で共有さ
れる効率的な暗号処理構造を有するマイクロプロセッサ
が実現される。
の実施の形態を説明する。
ィのアプリケーション保護環境を説明するための図であ
る。
122を作製し、これをユーザ112のシステム102
に内蔵されるマイクロプロセッサAに配布する。配布す
るプログラムを保護するため、平文プログラム122を
暗号化する。
タ等のデータで構成されるプログラムを、ソフトウェア
ベンダ121が選択したプログラム鍵で暗号化し、暗号
化に用いたプログラム鍵を、ターゲットシステム102
のプロセッサAの公開鍵Aで暗号化して配布鍵を生成す
る。
プログラムや初期化データを複数のブロックに分割し、
ブロックごとに異なる鍵で暗号化する。ただし、ベンダ
121は、ブロック数に応じた数の鍵を選択するのでは
なく、複数の鍵を生成するための基本となる定数Cx
と、Cxに基づいて生成された複数の鍵を暗号化する鍵
Kxの2つだけを選択すればよい。詳細は後述するが、
この2つの定数を基にして、ブロックごとに異なる鍵で
暗号化し、暗号化プログラム123を生成する。そし
て、CxとKxをプロセッサAの公開鍵Aで暗号化し
て、配布鍵Kx[A]、Cx[A]を作製する。
フトウェアベンダしか描いていないが、マルチパーティ
の環境を想定しているので、ユーザ112は、複数のベ
ンダから、それぞれブロック暗号化プログラムを購入
し、システム102に格納するものとする。
配布鍵とともに、いったんハードドライブディスクなど
の二次記憶107に格納され、実行時にメモリ108に
確保された領域109−1に読み込まれる。このメモリ
への読み込みは、システム102の資源を管理するOS
110によって行われる。プログラム本体と配布鍵は同
一のファイルに格納しても良いし、別々のファイルに格
納してもよい。メモリ108は、同じベンダ121によ
る別のプログラムや、その他のベンダからのプログラム
のための領域109−nも有するが,説明の便宜上、こ
れらについては省略する。
み、秘密鍵Aを用いて、保護ロジック106で配布鍵を
復号する。復号した鍵で、メモリ108に配置された暗
号化プログラムを、ブロック単位でキャッシュメモリ1
04に読み込み、ブロックごとに復号化する。このと
き、プロセッサAの特徴として、限られた数の秘密、た
とえば2つの定数Kx、Cxから、複数の暗号ブロック
の各々に対応したブロック対応鍵を生成して、ブロック
単位で復号する能力を有する。
のハードウェア構成図である。プロセッサAは、プロセ
ッサパッケージ200の中に、コア902、命令キャッ
シュ903、データキャッシュ904、これらのキャッ
シュで共有される高速暗号鍵処理モジュール(FCM:
Fast Ciphering Module)911、鍵値テーブル(KV
T:key value table)912、配布鍵管理モジュール
913、バスインターフェイス(BIU)906を有す
る。これらは、内部バス905で互いに接続されてい
る。
11、鍵値テーブル912、配布鍵管理モジュール91
3で、図1の保護ロジックを構成する。
スクスイッチャー914を有する。タスクスイッチャー
914は、タスクの切り替え、すなわち割り込み発生時
のコンテキストの保存、復帰を実行する。コンテキスト
は、タスクの実行に対応して生成され、タスクと対応し
て管理される。これを実現するために、タスクスイッチ
ャー914は、内部にタスク状態テーブル921と、ハ
ッシュ計算部922を有する。タスク状態テーブル92
1は、後述するように、タスクIDと対応付けてタスク
状態を保持する。また、図示はしないが、コア902
は、レジスタアレイにあるコンテキストの変更通知や、
配布鍵設定命令などを発する。
行コードをキャッシュする。通常のアドレスを識別する
キャッシュタグに加え、保護タスクを識別するタグも付
けられ、マイクロプロセッサの内部データでアプリケー
ションの独立性を保証する。なお、図2には図示しない
が、後述するように,命令キャッシュは、プログラム
(実行コード)やデータの開始アドレス(オフセット)
を記述するオフセットテーブル1207(図9参照)を
内部に有する。
初期化データ、スタックデータ、ダイナミックデータな
ど、プログラムに関連する種々の情報をキャッシュす
る。
は、鍵生成モジュール1312と暗号処理モジュール1
313を有する。鍵生成モジュール1312は、内部バ
ス905を通じてブロックの鍵と、処理対象ブロックの
相対アドレス値を取得し、後述する方法でブロックごと
に対応する暗号鍵を生成する。暗号処理モジュール13
13は、生成されたブロックごとの暗号鍵により、対応
するブロックの暗号/復号処理を実行する。ブロックの
暗号処理には複数クロックを要するので、複数のモジュ
ールを並列処理するためのディスパッチャも含む。
シュから送られてくるテーブルID情報に基づいてテー
ブルを検索し、鍵の値を高速暗号鍵処理モジュール91
1に供給する。
公開鍵復号化および復号化結果のテーブルをセットアッ
プする。
示すように、タスクチャンネル916を有し、コア90
2から他のモジュールへ、現在実行中のタスク、および
コンテキスト保存されるタスクの情報を伝達する。マイ
クロプロセッサのパッケージの外に外部メモリとしての
RAM907,周辺回路を接続するいわゆるサウスブリ
ッジ908があり、バスインターフェイス905で、内
部バス905と外部メモリ907やサウスブリッジ90
8との間のデータ転送、バッファリングを行なう。
化する手順を説明する図である。この処理は、図1のソ
フトウェアベンダ121のブロック対応暗号処理部12
6によって行われる。
リケーションプログラムのプログラム領域1001は、
128ビット(16バイト)を単位とする複数のブロッ
ク0〜ブロックnで構成されている。この領域全体に対
して、あらかじめ2つの定数KxとCxが選択されてい
る。
見た相対的は各ブロックの先頭アドレスとの和を求め
る。たとえば最初のブロック0の先頭バイトは0である
から、Cx+0が計算される(S1002−0)。Cx
+0の値は、秘密鍵Kxで暗号化され、ブロック対応鍵
Kv0が生成される(S1003−0)。平文ブロック
1001−0は、このブロック対応鍵Kv0で暗号化さ
れ(S1004−0)、暗号ブロック1005−0が生
成される。
は16バイトであるから、プログラムの先頭からみた相
対アドレスは16となり、Cx+16を計算する(S1
002−1)。n+1番目のブロックnの相対アドレス
は16nであり、Cx+16nを求める(S1002−
n)。これらの値をKxで暗号化して、対応するブロッ
クの暗号鍵Kv1〜Kvnを生成する(S1004−1
〜S1004−n)。各暗号鍵で平文ブロック1〜nを
暗号化し、暗号ブロック1005−1〜1005−nを
生成する。
1003−nや、S1004−0〜S1004−nを独
立に示してあるが、ひとつの暗号化処理に与えるパラメ
ータを変えて繰り返し使ってもよいし、ソフトウェアで
実現してもよい。
ムベンダ121は、ターゲットシステム102でプログ
ラムが配置される絶対アドレスを意識せずに、暗号処理
することができる。プログラムベンダは絶対アドレス値
を予想することはできないので、絶対アドレス値に基づ
いてブロック対応鍵を生成しようとすると、ターゲット
システム102からあらかじめプログラムが配置される
絶対アドレスの通知を受けてから、配置アドレス対応の
暗号化プログラム本体を作成するか、配置アドレス対応
の暗号化プログラム本体を無数に配布しなければならな
い。いずれの場合もプログラム本体の配布コストが著し
く大きくなる。
秘密は鍵Kxと定数Cxのみであり、かつ、各ブロック
の相対アドレスを使用して複数ブロック対応の暗号鍵を
生成するので、ソフトウェアベンダ側の処理負担が軽減
され、経済性も満たされる。
−0〜1005−nは、配布鍵Kx[A],Cx[A]とと
もに、ターゲットシステム102に送られる。ターゲッ
トシステムでは、秘密情報Kx、Cxと、ブロックの相
対アドレス値さえ与えられれば、マイクロプロセッサ内
で、他のブロックのデータや配置されたメモリの絶対番
地に依存せず、各ブロック独立に復号することができ
る。
徴とする現在のコンピュータアーキテクチャおよびアプ
リケーションプログラムのリロケーションを前提とした
現在のOSに効率よく適合する。
入れ換えを行っても、ブロックごとの相対アドレス値が
異なるので、ブロック暗号鍵Kvも異なり、攻撃者の意
図する動作は行われない。
作の詳細を説明する。
は、ソフトウェアベンダ121から受け取ったアプリケ
ーションプログラムの実行コード、初期化データ(静的
データ)、作業領域(スタック)に、それぞれメモリ1
08の領域を割り当てる。この段階では、プログラムは
暗号化されたままの状態である。割り当てられるメモリ
領域の開始アドレスは、システムの状態、すなわち連係
して動作する他のプログラムモジュールや共有メモリの
配置によって変わってくるので、システムを管理するO
Sは、状況に応じて領域のアドレスを自由に決定する
(リロケーション)。OS110はまた、配置鍵を配置
するメモリ領域を決定し、配布鍵情報を読み込む。
報を、メモリ上の情報配置記述子(IAD:informatio
n arrangement descriptor)とよばれる構造体に記述す
る。
メモリマップと、情報配置記述子1111および配布鍵
情報1121の構造を示す。メモリマップ上には、プロ
グラム1102、初期化(static)データ1103、作
業領域(スタック)1104に加え、情報配布記述子用
の領域1105、配布鍵用の領域1106が配置され
る。
域の開始アドレス(オフセット)1112、データ領域
開始アドレス(オフセット)1113、データ領域終了
アドレス1114、作業領域開始アドレス(オフセッ
ト)1115、作業領域終了アドレス1116、配布鍵
アドレス開始アドレス(オフセット)1117を含む。
1122、プログラム秘密定数(Cx)1123、初期
化データ鍵1124、初期化データ秘密定数1125、
初期化データ長1126、作業領域(スタック)鍵11
27、作業領域秘密定数1128、作業領域長1129
を含む。
クロプロセッサ103に読み込まれて、復号、実行され
るときは、OS110は、情報配置記述子に基づいて、
タスク状態を制御する種々の特権命令(タスク制御命
令)を発行して、タスクの状態管理を行う。
は、タスクの状態遷移を示す。タスク制御命令は、内部
テーブルへのタスクの登録(register)、タスクの開始
(start)、中断されたタスク状態の保存(suspend)、
中断されたタスクの再開(continue)、タスクの終了、
すなわち内部テーブルからのタスク秘密情報の削除(de
lete)などを含む。そして、これらの制御命令に応じ
て、図6に示すようにNULL状態201からINIT
状態202になり、RUN状態203、STOPPED
状態204、SUSPEND状態205等を遷移する。
て、特に、タスクの登録、タスクの実行、タスクの中
断、タスクの終了を中心に、詳細に説明する。
たいタスクのIDと、そのプログラムの情報配置記述子
の先頭アドレスをパラメータとして、特権命令であるre
gister命令を発行する。register命令の発行により、こ
のプログラムのための配布鍵1121が復号され、各メ
モリブロックの復号に使われる鍵と相対アドレス情報
が、タスクIDと関連付けて、マイクロプロセッサ内の
各種テーブル(後述)に登録される。
ア)103上でのタスク登録の概略動作を示し、図8
は、登録(register)命令の処理フローを示す。
レスとタスクID#1をパラメータとしてregister命令
が発行されると、コア902内のタスクスイッチャー9
14はタスクの状態をチェックする(S301)。タス
ク状態がNULLでなければ(S301でNO)、タス
ク状態をINVALIDとしてエラーにする(S30
8)。タスク状態がNULLならば(S301でYE
S)、図7の点線(1)で示すように、コア902は情
報配置記述子のアドレスとタスクIDを含む登録要求
を、配布鍵管理モジュール913のシーケンサ913−
1に書き込む。
うに、情報配置記述子の領域に対するメモリ読み出し要
求をBIU906に送り、BIUは、点線(3)で示す
ように情報記述子1111をシーケンサに供給する。シ
ーケンサはこの情報記述子を解析して、プログラム、初
期化データ、作業領域に対応するオフセットアドレスや
範囲、配布鍵オフセットアドレス1117を取得する
(S302)。
る読み出し要求をBIUに送る。BIUは、点線(4)
で示すように、配布鍵の内容を公開鍵復号モジュール9
13−2に供給する。公開鍵復号モジュール913−2
は、配布鍵1121(図4)を復号化し、プログラムの
秘密定数(Cx)、初期化データの秘密定数、作業領域
秘密定数を取得する(S303)。
302で取得したプログラム、初期化データ、作業領域
のオフセットアドレスを、命令キャッシュ903のオフ
セットテーブル(図9参照)に書き込む(S304)。
初期化データ、作業領域の暗号鍵(秘密定数)を、鍵値
テーブル912に書き込む(S305)。こうして、テ
ーブルが設定され、タスクの登録が完了する。
NULLからINITに移行し(S306)、この状態
の遷移は、割り込みによりコア902に通知され(S3
07)、OSは、タスクを実行するための準備が整った
ことを知る。
前に、図9〜11を参照して、マイクロプロセッサを構
成する命令キャッシュ903、高速暗号鍵処理モジュー
ル(FCM)911、鍵値テーブル(KVT)912、
データキャッシュ904の構成を説明する。
す。命令キャッシュ903は、命令TLB(translatio
n lookaside buffer)1202を有する命令管理ユニッ
ト(MMU)1201と、命令キャッシュメモリ120
3と、カレントタスクIDレジスタ1204と、キャッ
シュアクセス検証部1205と、タスクID書き込み部
1206と、オフセットテーブル1207を含む。
サイズのキャッシュラインで構成され、各キャッシュラ
インは、そのキャッシュライン(ブロック)で実行され
るタスクのタスクIDを保持するタグを有する。キャッ
シュアクセス検証部1205は、タグに保持されたタス
クIDと、カレントタスクIDレジスタの値とを比較
し、一致するときのみアクセスを許可する。一致しない
ときは、そのキャッシュラインの内容を廃棄する。
と、高速暗号鍵処理モジュール(FCM)911の詳細
を示す。KVT912は、テーブルアクセス制御部13
01と、カレントタスクIDレジスタ1302と、タス
ク鍵(あるいはプログラム鍵)テーブル1303と、コ
ンテキスト鍵テーブル1304と、データ鍵テーブル1
305を含む。ここでは図示はしないが、データ鍵テー
ブル1305は、4つのテーブル(0〜3)を含む。K
VT912は、パス1315を介してバス905と接続
される。
1は、ディスパッチャ1311と、鍵生成モジュール1
312と、暗号処理モジュール1313を含む。鍵生成
モジュール1312は、鍵生成単位として並列に131
2−1〜1312−3を有し、暗号処理モジュール13
13は暗号処理単位として1313−1〜1313−3
を有する。ディスパッチャ1311は、後述するよう
に、鍵生成単位や暗号処理単位の空きのある部分に処理
を割り振り、並列処理を可能にする。FCM911は、
パス1314を介してバス905に接続される。
316を介して暗号鍵が転送され、パス1317を介し
て相対アドレス値が転送される。
を示す。データキャッシュ904は、カレントタスクI
Dレジスタ1401と、アドレス範囲を保持するMTR
R(memory type range register)テーブル1403
と、このテーブルを管理しMTRRテーブルのアドレス
範囲とターゲットアドレスを比較するMTRRテーブル
管理比較部1402と、暗号属性送出部1411と、デ
ータキャッシュメモリ1431と、データTLB143
3を有するMMU1442と、保存予定コンテキスト識
別子レジスタ1434を含む。暗号属性送出部1411
は、データやコンテキストを外部メモリへ書き戻すとき
に、その暗号属性を確認するために、読み込み要求デー
タ暗号識別子レジスタ1412と、読み込み要求コンテ
キスト暗号鍵識別子レジスタ1413と、書き出し要求
データ暗号鍵識別子レジスタ1414と、書き出し要求
コンテキスト暗号鍵識別子レジスタ1415と、アクセ
ス検証部1421を有する。MMU1442は、所定の
変換情報に基づいて、コア902から出力される仮想ア
ドレスから物理アドレスへと変換してメモリアクセスを
行う。
ちプログラム鍵テーブル1303、コンテキスト鍵テー
ブル1304、データ鍵テーブル1305(0−3)
は、それぞれタスクIDでインデックスされ、鍵生成に
使う2種類の秘密情報を保持できる。ブロックの復号鍵
生成に使われる2つの秘密情報、例えば図4に示すプロ
グラムのためのKx1122とCx1123は、KVT
912のプログラム鍵テーブル1303のタスクID#
1の欄に書き込まれる。
1112は、命令キャッシュ903内のオフセットテー
ブル1207のタスクID#1の欄に書き込まれる。
ル1403は、タスクIDと0〜3の値をとるMTRR
識別子で識別される。すなわち、MTRRテ−ブル14
03は、1タスク当たり4個のMTRR(アドレス範囲
レジスタ)を持ち、それぞれにデータ領域のアドレス範
囲と鍵の値を登録することができる。タスク登録時にお
いては、MTRR識別子0、1に対応する初期化データ
と、作業領域(スタック)に対応するMTRRが設定さ
れる。また、MTRR2,3の内容は0で初期化され
る。
ットアドレスとMTRRのアドレス範囲とが比較され、
一致したMTRRに対応する暗号化属性(すなわち鍵)
が使用される。データについても、MTRRの先頭番地
をオフセットとして、相対アドレス値を使用して、上述
した手順の暗号鍵生成が適用される。
ため、これらのテーブルを書き換えている期間は、コア
902ではこのタスクに対するあらゆるオペレーション
が禁止される。
イッチャー(STS)914のタスク状態テーブル92
1で、このタスクIDに対応するエントリが状態NUL
LからINITに書き換えられ、登録の完了が、割り込
みによってコア902に通知される。
ションをハードウェアで実装した例を示したが、ファー
ムウェアとしてプロセッサ内部に組み込まれたソフトウ
ェアとして実装してもよい。ただし、ファームウェアは
悪意を持つシステムユーザによって改変されることがな
いような注意が必要である。
して、OSがタスクIDをパラメータとしてstart命令
を実行する。すると制御がプログラム領域の先頭に移さ
れる。INIT状態にあるタスク以外を指定してstart
命令を実行した場合、エラーとなり、なにも実行されな
い。
ーを示す。あるタスクについてそのタスクIDを指定し
てstart命令が発行されると、まず、そのタスク状態が
INITにあるかどうか、すなわち、タスク実行の準備
が整った状態にあるか否かを判断する(S401)。I
NIT以外の状態にあるタスク識別子を指定してstart
命令が出された場合は(S401でNO)、タスク状態
テーブル921がINVALIDにされ(S407)、
エラーとなる。
01でYES)、コア902が保持するカレントタスク
IDが、新しいタスクに設定され(S402)、レジス
タアレイ915が初期化される(S403)。また、プ
ログラムカウンタ(不図示)の値が、プログラム領域の
先頭に設定される(S404)。
ンネル916を通じて、命令キャッシュ903、データ
キャッシュ904、鍵値テーブル912に通知され、そ
れぞれのカレントタスクIDレジスタ1204、140
1、1302に保持される(S405)。その後、コア
902のタスク状態テーブル921で、タスク状態がI
NITからRUNに書き換えられ(S406)、実行が
開始される。
れ保護されたプログラムを実行するので、外部メモリの
プログラムがキャッシュに読み込まれる際に、タスクI
Dに対応して登録されたプログラム鍵に基づいて、ブロ
ックごとにプログラムの復号化が行われ、復号結果であ
る平文がキャッシュに読み込まれ、実行される。このと
き、タスク登録時に配置されたメモリアドレスに合わせ
て、オフセットを命令キャッシュ903内部のオフセッ
トテーブル1297に登録し、メモリアクセスとオフセ
ットの差を相対アドレス値として使用するので、プログ
ラマが暗号化したプログラムがOSによりどのアドレス
に配置されていても、正しく復号化できる。
のINIT状態を経てRUN状態へ移行する例が書かれ
ているが、これは配布鍵の公開鍵アルゴリズム処理を非
同期的に実行することにより、公開鍵アルゴリズム処理
中の比較的長い応答不能時間を短縮することが目的であ
る。応答不能時間を許容すれば中間のINIT状態を省
略してもさしつかえない。(非同期的公開アルゴリズム
処理については、同一出願人による特許出願第2001
−024480号を参照されたい。) 2.命令キャッシュの読み込み 次に、命令キャッシュ903の読み込み処理について、
図13の処理フローを参照して説明する。
み込まれたラインには、通常のメモリアドレスの一致を
判定するタグに加えて、このタスクのタスクIDタグが
付けられる。そして、読み込まれたキャッシュラインに
アクセスがあると、命令キャッシュ903のアクセス検
証部1205で、ラインに付されたタスクIDのタグ
と、アクセスのあったカレントタスクIDの一致、不一
致が判断される。不一致の場合は、たとえメモリアドレ
スのタグが一致していてもキャッシュのミスヒットとし
て扱われ、このキャッシュラインの情報が再度外部メモ
リから読み込まれることになる。別のタスクによりこの
ラインに対応する外部メモリの内容が再読み込みされて
も、新たにアクセスしたタスクのタスクIDに対応する
鍵で復号化されて読み込まれることになる。つまり、本
来の鍵と異なる鍵で復号化された結果を実行することに
なり、正常な処理は行われない。
は仮想アドレスに基づいて行なわれるが、キャッシュの
ヒット、ミスヒットの判定は、物理アドレスに対して行
われる。キャッシュのヒット、ミスヒットの判定に仮想
アドレスを使用すると、同一のメモリブロックがキャッ
シュ上に複数存在するエイリアスと呼ばれる現象が発生
するからである。この現象は特に同一の物理アドレス領
域を複数のタスクが共有する場合に問題となるので、本
実施形態では、通常のキャッシュヒット、ミスヒットは
物理アドレスによって判定している。
み処理フローを示す。このフローでは、説明の簡略化の
ため、命令キャッシュ903と、FCM911、BIU
906の動作を一体として示している。まず、コア90
2から読み出し要求があると、命令キャッシュ903は
BIU906に対して、ターゲットアドレスブロックの
読み出し要求を送る。読み出し要求には、リクエストI
D、保護の有無、ターゲットアドレス範囲、要求元ID
の情報が含まれている。
れたキャッシュラインに付されているアドレスタグとの
一致、不一致が判断される(S501)。物理アドレス
が一致しない場合は(S501でNO)、ミスヒットと
して、読み出し要求された新たなタスクIDに対応する
オフセットアドレスの取得を開始する。オフセットアド
レスは、オフセットテーブル1207の中の、カレント
タスクIDに対応するエントリから取得する(S50
2)。
レスを計算する。相対アドレスは、メモリアドレスから
オフセット値を引き算することによって求められる(S
503)。なお、保護タスク実行中にキャッシュメモリ
へのアクセスがあると、命令キャッシュ903は、キャ
ッシュメモリのアクセスと並行して、相対アドレスの計
算を行なう。
レス値とタスクIDとを、内部バス905を通じて鍵値
テーブル(KVT)912へ送る。このとき、リクエス
トIDがつけられる。KVT912は、はタスク鍵テー
ブル1303からタスクIDに対応する鍵の値を取得
し、鍵の値とオフセット値を、チャネル1316を通じ
て、高速暗号鍵処理モジュール(FCM)911の鍵生
成モジュール1312へと送る。同時にKVT912
は、オフセット値とリクエストID、要求元IDを、チ
ャネル1317を通じて、FCM911の暗号処理モジ
ュール1313へ送る。
は、KVT912から鍵の値とオフセット値を受け取る
と、すぐにそのブロックに対応する鍵の計算を開始す
る。すなわち、プログラムの秘密定数Cxに相対アドレ
ス値を加算した中間値を求め(S504)、求めた中間
値をプログラムの秘密鍵Kxで暗号化して、プログラム
のブロックに対応するブロック対応鍵を生成する(S5
05)。
イクルの時間を要する。効率よく計算をするため、鍵生
成モジュール1312には複数の鍵生成単位1312−
1〜1312−3が設けられ、ディスパッチャ1311
が、空きの鍵生成単位に処理要求を割り振る。1つのリ
クエストが複数の暗号ブロックで構成される場合は、す
べての暗号ブロック対応の鍵を生成するまで相対アドレ
ス値を増分してS502〜505を繰り返す。
出した結果を、暗号ブロックの大きさのデータになるま
でバッファリングする。もともと保護されていない非暗
号化データが要求されている場合は、データは直接要求
元の命令キャッシュへ送られるが、本実施形態では、暗
号化データに対する要求なので、読み出し結果はFCM
911へ送られる。FCM911の暗号処理モジュール
1313は、鍵生成モジュールによって生成されたブロ
ック暗号鍵で、BIU906から供給されたデータを復
号する(S506)。
で、前の復号処理が完了する前にキャッシュラインを構
成する次の暗号ブロックが到着した場合は、別の暗号処
理単位が割り当てられ、並列的に処理が行なわれる。図
10には、暗号処理単位として1313−1〜1313
−3だけが示されているが、十分な数の暗号処理単位を
準備すれば、暗号処理単位の処理サイクルよりも短い間
隔でデータが到着しても遅延を発生させることなく復号
化処理が可能となる。
ス経由で要求元の命令キャッシュ903に送られる。命
令キャッシュ903は、このキャッシュラインにデータ
を格納し、ラインを構成するすべてのデータがそろう
と、キャッシュタグにライン有効の表示、暗号化ありの
表示、実行中のタスクIDを書き込む(S507)。
02はこのラインからデータを読み出し、プログラムの
実行を再開する(S508)。
ャッシュラインのアドレスタグ(物理アドレス部分)が
一致した場合、つまり、それまで実行されていたタスク
Aと異なるタスクIDを有するタスクBが、たまたま同
一のメモリ領域をアクセスしてキャッシュラインがヒッ
トした場合を考える。キャッシュの物理アドレスがヒッ
トしたということは、タスクBは、従来の資源管理的な
意味でこのアドレスのメモリのアクセス権があることに
なる。
セス検証部1205が、現在のタスクIDレジスタ12
04の値と、このキャッシュラインにつけられているタ
スクIDタグとを、さらに比較する(S509)。比較
結果が一致しない場合、たとえばカレントタスクIDレ
ジスタ1204には“B”と書かれているが、キャッシ
ュラインタグのタスクID欄には“A”と書かれ、その
暗号特性は暗号化ラインであることを示している場合に
は(S509でNO)、キャッシュがフラッシュされ、
タスクBにタスクIDに対してS502〜S507を繰
り返す。すなわち、タスクBのオフセットアドレスから
相対アドレスが計算され、キャッシュラインアドレスに
対応する外部メモリのデータをタスクBのプログラム鍵
で復号した結果が、このキャッシュラインに読み込まれ
る。
していれば、別々に読み込まれたとしても2つのタスク
は同一のプログラムを実行するだけであるが、外部メモ
リのデータを暗号化した本来の鍵がタスクAのプログラ
ム鍵であり、タスクBの鍵がそれとは違うものである場
合、タスクBは本来のプログラムとは異なるでたらめな
プログラムを実行することになり、意図する攻撃ができ
ない。
ッシュラインのタスクIDタグが一致すれば(S509
でYES)、要求されたアドレスの内容が、コア902
に送られる(S508)。
タスクによって同じキャッシュラインが再度読み込まれ
た場合、外部メモリの内容は、本来の鍵とは異なる鍵で
復号化されてキャッシュラインに読み込まれる。本来の
鍵と異なる鍵で復号化した結果を実行したプログラムは
もちろん正常な動作をしない。
はできない。OSが自由にタスク鍵テーブル1303を
操作できとしたならば、他のプログラムの秘密を取得す
ることができるが、本発明では、OSがプログラム鍵の
登録に代表されるタスクの状態管理と秘密情報の操作を
実行できるのは、図5に示すような一連のタスク制御命
令の発行に制限されている。したがって、本発明のマイ
クロプロセッサでは、たとえOSの資源特権をもって
も、アプリケーションのプログラムまたはデータの各ブ
ロックに対応する鍵を知らない限り、それを正しく実行
したり読み出したりすることはできない。
ラムの独立性を保証するマルチパーティのプログラム保
護環境が提供できるのである。
単位1313により迅速な復号処理が可能であると述べ
たが、1個の暗号処理単位に十分なスループットがあれ
ば、複数の暗号処理単位を備えることは不要である。例
えば、DESのように同一種類の演算の繰り返しにより
構成される暗号処理では、処理をパイプライン化するこ
とにより高いスループットが得られることが知られてい
る。
ハードウェア規模においても、設計の困難さにおいても
大きなコストが必要である。また、一般に利用可能なI
Pの形で提供される暗号処理単位は、設計に高度のノウ
ハウと時間を必要とするので、必要な処理能力に見あっ
た番号処理単位をその都度設計することを大きな負担と
なる。多様な条件への対応を考えた時、本実施形態のよ
うに既存の暗号処理単位を複数並列動作させることが、
設計の柔軟性の点で有利である。また、ハードウェア設
計コストを含めた全体のコスト削減の効果がある。
化データ、作業領域(スタック)などのデータの保護に
ついては、タスクが動的に確保したデータ領域を、任意
の暗号鍵によって暗号化保護することができる。初期化
データ、作業領域、動的領域など、複数の保護領域を定
義し、各々異なる鍵を設定することが可能である。たと
えば初期化データの場合、外部メモリにはすでに暗号化
済みのデータがおかれており、これを読み出し、復号す
る際の手順は基本的にはプログラムの場合と同じであ
る。
は、暗号属性は、命令キャッシュ903でカレントタス
クIDとキャッシュタグのタスクIDを比較することに
よって判断されていたが、データの場合は、属性の判断
がカレントタスクIDとMTRR(アドレス範囲レジス
タ)との比較で行なわれるところが異なる。
すデータキャッシュ904のMTRRテーブル管理比較
部1402でアクセス属性が判定される。具体的には、
MTRRテーブル管理比較部1402にカレントタスク
IDとターゲットアドレスが入力されると、タスクID
に対応するMTRRテーブル1403のエントリ(0〜
3)のアドレス範囲とターゲットアドレスがそれぞれ比
較される。
だけであれば、その属性が無条件に採用され、タスクI
DとMTRRエントリIDの組が当該メモリアクセスの
暗号属性となる。
を持ち、ターゲットアドレスが複数のエントリのアドレ
ス範囲に合致した場合、あらかじめMTRRごとに定め
られた優先順位にしたがってただひとつのMTRRが選
ばれ、このメモリアクセスの暗号属性となる。
02で決定されたメモリアクセス属性は、データ読み込
みの場合、暗号属性送出部1411の読み込みデータキ
ーIDレジスタ1412に一時的に保持される。また、
MTRRテーブル管理比較部1402では、ヒットした
MTRRエントリの先頭アドレスとメモリアクセスのタ
ーゲットアドレスから相対アドレス値が計算される。
ス値は、プログラムメモリのアクセスの場合と同様に、
内部バス905を通じて鍵値テーブル(KVT)912
に送られる。
読み出しを要求し、メモリアクセス属性がKVT912
に送られ、データがFCM911に送られて復号化さ
れ、データキャッシュに返されるシーケンスは、命令キ
ャッシュの場合と同一である。
性と相対アドレス値が書き込まれてキャッシュの読み込
みは完了する。
タキャッシュの非同期書き込みに関する問題と、本実施
形態で提供する機構について説明する。
のデータ構造を示す。データキャッシュメモリ1431
は、256本のライン1501―0〜1501−255
で構成されている。各ライン(たとえばライン0)は、
外部メモリの内容を格納するラインバッファ1501−
0−0と、物理アドレスタグ1501−0−1と、相対
アドレス値1501−0−2と、タスク識別子1501
−0−3と、MTRR識別子1501−0−4と、フラ
ッグ領域1501−0−5を有する。
903と異なる点は、データの書き戻し、すなわち割り
込み時などに、外部メモリに一時的に退避される場合が
あることである。
インは、必ずしもタスクAの実行中にフラッシュされて
外部メモリに書き戻されるとは限らない。別のタスクB
の実行中にフラッシュされる可能性もある。アドレス変
換機構を持つプロセッサの場合、タスク毎に異なるメモ
リマップを持つことできるため、キャッシュラインの保
存先物理アドレスは、仮想アドレスから一意に決定する
ことはできない。
アドレスタグ1501−0−1をもうけて、保存先の物
理アドレス情報を付与すれば、現在実行中のタスクが何
であるかに関わらずキャッシュラインの保存先を決定で
きる。
を利用した暗号化を適用しようとすると、問題が生じ
る。ブロック対応鍵は、上述したように、キャッシュラ
インの仮想アドレスと、オフセット値の差である相対ア
ドレス値から生成されている。一般にはこの相対アドレ
ス値は物理アドレスから生成することはできないので、
キャッシュの書き戻しにあたってのデータ暗号化ができ
ない。
1431のキャッシュタグに、相対アドレス値を格納す
るタグ1501−0−2をもうけて、このキャッシュラ
インの確保時に付与された相対アドレス値を保存するこ
とで、書き戻し時の暗号化の問題を解決している。タグ
の書き込みは、このキャッシュラインの暗号属性決定時
に行う。
ドレスを保持しても同様の機能が実現される。キャッシ
ュの非同期書き戻しを実行するときに、メモリ領域情報
はMTRRテーブル1403に保持されているので、仮
想アドレスとタスク識別子からMTRRのオフセット情
報を取得して相対アドレス値を計算すればよい。
められた初期化データと作業領域の他に、2箇所のデー
タ領域を追加することができる。これらの領域は、MT
RR(アドレス範囲レジスタ)のID2、3で指定され
る。
命令をタスクが発行することで行なわれる。プロセッサ
の所定のレジスタにデータの暗号鍵、補助定数とメモリ
領域およびMTRR IDを格納してsetkey命令を発行
する。Setkey命令は自タスクIDのデータ暗号化属性の
みに有効なので、命令で明示的にタスクIDを指定する
必要はない。
部で、データキャッシュ904のMTRRテーブル14
03へのアクセスと、鍵値テーブル912のデータ鍵テ
ーブル1305へのアクセスという、2つのステップに
分解されて実行される。
ドレス範囲レジスタ)の2、3は無効化された状態、す
なわちアドレス範囲の大きさが0である状態にある。こ
の状態ではいかなるメモリアクセスもアドレス範囲に該
当しない。
IDとMTRRのIDに一致するデータキャッシュライ
ンがフラッシュされる。
ブル1305のタスクIDとMTRRのIDでインデッ
クスされた欄に、暗号鍵が書き込まれる。
テーブル1403の指定タスクIDとMTRR IDで
インデックスされた欄に、アドレス範囲が書き込まれ
る。
るとその暗号化指定が有効になる。以下、追加データの
読み書きについては初期化データの場合と同様である。
領域の属性を変更するには、再度setkey命令を発行す
る。上述のように、setkey命令を発行するとMTRRの
IDに対応するキャッシュ上のラインはすべてフラッシ
ュされ、外部メモリへと書き出される。その後、データ
鍵テーブル1305,MTRRテーブル1403に新し
い設定が書き込まれ、新しい設定での読み書きが始ま
る。
れた暗号データは、先に使用した暗号鍵Kx、補助定数
Cx、オフセットアドレスが一致して初めて正しく読み
出せる。たとえ暗号鍵、補助定数が一致していてもオフ
セットアドレスが一致しなければ正しい値を復号化する
ことはできない。このことはタスク間で共有される共有
メモリやディスクデータの読み書きにおいて重要であ
る。この理由でsetkey命令が実行されると、対応するキ
ャッシュラインは無条件にフラッシュされる。
の絶対メモリアドレスに領域にコピーされたとしても、
MTRRの領域指定先頭アドレスが移動先アドレスに対
応して設定されれば、暗号鍵、補助定数が一致する条件
の下で、元のデータを正しく読み出すことができる。
化においても、ブロック交換攻撃防止のためのブロック
ごとの個別暗号鍵方式と、メモリの再配置(リロケーシ
ョン)とを、矛盾なく両立させることができる。
は、タスクの実行はしばしば割り込みにより中断され
る。割り込み後はOSの割り込みハンドラが実行され、
必要に応じて、別のタスクに実行が切替えられる場合
と、タスクの切り替えなしに元のタスクに復帰する場合
がある。
ントローラから割り込み要求があると、保護タスクの実
行は中断され、割り込みベクタで指定されるアドレスの
割り込みハンドラの実行が開始される。すなわち、それ
までの保護タスクのレジスタ値(コンテキスト情報)
が、割り込みハンドラによりコア902のレジスタバッ
ファ(アレイ)915に退避され、OSを含む他のタス
クからの読み出しから保護される。この割り込みによ
り、図6の状態遷移に示されるように、タスク状態テー
ブル921の値がRUNからSTOPPEDに移行す
る。STOPPED状態では、中断されたタスクのコン
テキストは、コア902のレジスタバッファ915を占
有しているが、この状態でSUSPEND命令(タスク
実行状態保存命令)が発せられると、レジスタバッファ
の内容は、SUSPEND命令で指定されたメモリ領域
に保存され、タスク状態はSUSPENDへ移行する。
割り込みハンドラは、レジスタバッファの内容を読み出
すことはできないが、それを一括してメモリに保存する
ことはできるのである。
り替えがある場合は、レジスタバッファの内容は、キャ
ッシュメモリに保存される。また、保存されたコンテキ
スト情報が、さらに外部メモリへ書き出される場合もあ
る。この場合、コンテキスト情報が所定のコンテキスト
鍵で暗号化されてから、外部メモリに書き出される。
開するには、図5および6に示すように、タスクIDと
コンテキスト情報の保存先アドレスを指定して、resume
命令を発行する。
れず、単に退避されている状態)からタスクを再開する
には、continue命令を発行する。たとえば、割り込み処
理が簡単に終りタスクの切り替えが起きない場合や、ソ
フトウェアタイマーのカウンタインクリメント処理で
は、それまで実行されていたレジスタ値を保存せずに、
レジスタバッファアレイ915に退避させるにとどま
る。この場合は、レジスタバッファからレジスタ値が復
帰され、割り込み前のタスク実行が再開される。タスク
の状態は、STOPPEDからRUNに戻される。
令が出されたときの処理フローである。
ク状態テーブル921を参照して、指定されたタスク状
態がSTOPPEDであるか判断される(S601)。
STOPPEDでない場合は(S601でNO)、それ
まのレジスタ値がコア902のレジスタバッファ(アレ
イ)915に退避されていないことになるので、この状
態でsuspend命令が出されても無効にされ、タスク状態
はINVALIDにされる(S605)。
場合は(S601でYES)、レジスタバッファアレイ
915にある内容が、suspend命令で指定されたアドレ
スのメモリ領域に書き込まれ、保存が開始される(S6
92)。
保存開始前にタスクチャネル916を通じてそれまで実
行していたタスクのIDが、データキャッシュの保存予
定コンテキスト識別子レジスタ1434に保持される。
そして、データキャッシュメモリ1431上でコンテキ
スト情報を書き込むためのキャッシュラインが確保さ
れ、データの転送が開始される。ラインの書き込み完了
ごとに、キャッシュラインのタグにコンテキストを表す
識別子とタスクIDが書き込まれる。
容を完全に上書きするものである。コンテキスト情報は
キャッシュラインサイズの整数倍で、その先頭アドレス
がかならずキャッシュラインサイズでアラインされてお
り、通常必要とされる書き込み前に保存先内容を読み出
す動作(ライトアロケート)は不要となる。
2で、レジスタバッファの内容全体のハッシュが計算さ
れ、タスクIDとともに、メモリ上のレジスタ情報の最
後にハッシュ値が付加される(S603)。多数ライン
にわたる場合は、コア902のタスクスイッチャ(ST
S)914は、レジスタバッファアレイ915の情報を
順次キャッシュラインに書き込みながらハッシュを計算
する。
ッシュ値を書き込み、タグの付加が終わるとsuspend命
令の実行は完了となり、タスクの状態はSUSPEND
に移行する(S604)。
同様に、タスクの実行とは非同期的に外部メモリ108
へと書き出される。外部メモリへの書き出し時のコンテ
キスト情報の取り扱いで、他の情報と異なる点が2点あ
る。ひとつは相対アドレス値の扱いであり、もうひとつ
は読み込み処理の違いである。
されるが、相対アドレス値として同一の値が使われる。
相対アドレス値には、あらかじめ定められた定数が用い
られる。コンテキスト情報にはハッシュが付加されてい
るため、ブロックの交換に元々耐性があるためである。
コンテキスト情報が保存されたキャッシュラインがフラ
ッシュされる時、取り出された暗号属性は書き出しコン
テキストキーID1415に一時的に保持される。その
後の処理は、データキャッシュの書き出しと同様であ
る。
らタスクを再開する処理フローである。
込んでタスクの実行を再開するために、タスクIDと保
存先メモリアドレスをパラメータとしたresume命令が発
行されると、指定されたタスク状態がSUSPENDで
あるかどうか判断される(S701)。SUSPEND
状態にない場合は(S701でNO)、コンテキスト情
報が保存されていないので、タスク状態はINVALI
Dにされる(S707)。換言すれば、resume命令はタ
スク状態がSUSPENDED以外の場合は、無効であ
る。
1でYES)、アドレスとタスクIDが、それぞれアド
レスラインとタスクチャンネルを通して、データキャッ
シュ904に送られる。キャッシュのアドレスがヒット
して、かつタグがコンテキストを示しており、タスクI
Dが一致する場合、キャッシュメモリ1431上のデー
タが、レジスタバッファに転送され、タスクの再開処理
が開始される(S702)。
てハッシュ計算が行なわれる(S703)。計算したハ
ッシュが期待値と一致するかどうか判断され(S70
4)、不一致の場合、再開処理は中止され、タスクはI
NVALID状態となる(S707)。
ES)、カレントタスクレジスタに指定されたタスクの
IDを設定し(S705)、タスクの状態をRUNに変
更して実行が再開される(S706)。
resume命令で指定されたコンテキスト情報の領域がキャ
ッシュにヒットしない場合は、保存されたデータが外部
メモリに書き出されている場合である。この場合は、外
部メモリからのデータ読み込みが開始される。すなわ
ち、タスクIDレジスタ1401に保持されたタスクI
Dと、resume命令で指定されたアドレスに対応するメモ
リの読み出し要求がデータキャッシュ904からBIU
906に送られる。そして、タスクIDとコンテキスト
を意味する暗号属性が鍵値テーブル912へ送られ、F
CM911で復号のための鍵が生成される。ある時点で
保存されたタスクのコンテキスト情報は、すべて同じ鍵
で暗号化されているので、ブロック単位の鍵生成は行な
わない。
ャッシュ904へと送られ、タスクスイッチャ(ST
S)914はレジスタバッファアレイ915にその内容
を読み込む。以後の処理はキャッシュがヒットした場合
と同じである。
当てたタスクIDとプロセッサ内の各種テーブルを別の
新しいタスクのために再利用するには、タスクIDを指
定してdelete命令を発行する。本実施形態では、それま
でのタスクの内容が不正に覗き見されないように、シス
テム動作中は、一度登録したタスクのタスクIDは、そ
の登録を削除しない限り、新しいタスクのために使用す
ることはできない。
す。
れると、指定されたタスクがINIT、STOPPE
D、SUSPENDのいずれかの状態にあるかが判断さ
れる(S801)。上記のいずれの状態にもない場合
(すなわちRUN,NULLである場合)には、タスク
はINVALIDにされ(S805)、エラーとなる。
01でYES)、指定されたタスクIDに対応するタグ
が付与されたキャッシュラインがフラッシュされ(S8
02)。
〜1305、命令キャッシュのオフセットテーブル12
07、データキャッシュのMTRRテーブル1403も
クリアされる(S803)。
NULLにされる(S804)。
なくOSであり、delete命令を発行できるのはRUNと
NULL以外の状態にあるタスクに対してである。
状態となれば、再びregister命令により配布鍵を登録し
て、新しいタスクを実行することができる。
プログラムをブロックごとに暗号化、復号化するので、
ブロック入れ替え攻撃を防止できるとともに、ソフトウ
ェアベンダ側とマイクロプロセッサ側の双方の資源管
理、処理負担が軽減する。
基づく相対アドレスを用いるので、リロケーションの問
題に効率的に対処できる。
をキャッシュ間で共有することにより、ハードウェアコ
ストが削減される。
リケーション保護環境を示す図である。
ロプロセッサの概略構成図である。
のブロック対応暗号鍵生成手順を示す図である。
と配布鍵の構成と、これらの情報が配置される仮想アド
レス空間のメモリマップを示す図である。
示す図である。
ある。
シュの概略構成図である。
ブルと高速暗号鍵処理モジュールの概略構成図である。
ャッシュの概略構成図である。
ートである。
を示すフローチャートである。
である。
順を示すフローチャートである。
ーチャートである。
ーチャートである。
環境の図である。
ジスタ 1205 アクセス検証部 1207 オフセットテーブル 1303〜1305 キーテーブル 1311 ディスパッチャ 1312 鍵生成モジュール 1313 暗号処理モジュール 1402 MTRRテーブル管理比較部 1403 MTRR(アドレス範囲レジスタ)テーブル 1411 暗号属性送出部
Claims (18)
- 【請求項1】 複数の状態を取り得るタスクに識別子を
付与し、前記タスク識別子と対応して前記タスクの状態
を保持するタスク状態テーブルと、 現在実行中のタスク識別子を保持するタスクレジスタ
と、 前記タスクの要求があったときに、外部メモリに所定の
プログラム鍵で暗号化された状態で格納されているプロ
グラムをキャッシュライン単位に読み込むインターフェ
イスと、 前記プログラム鍵に基づいて、前記キャッシュラインご
とに異なる復号鍵を生成し、読み込まれた内容を復号す
る暗号処理部と、 各々がタグを有する複数のキャッシュラインから構成さ
れ、キャッシュラインごとに、そのキャッシュラインの
復号に用いられた復号鍵に対応するタスク識別子を前記
タグに保持する第1のキャッシュメモリと、 前記キャッシュラインのタグに保持されたタスク識別子
と、前記タスクレジスタの値を比較し、値が一致しない
場合に前記キャッシュラインの内容を廃棄するアクセス
検証部とを備えるマイクロプロセッサ。 - 【請求項2】 前記プログラム鍵を前記タスク識別子と
関連付けて格納する鍵値テーブルをさらに有し、 前記アクセス検証部の比較結果が一致したときに、前記
暗号処理部は、前記タスク識別子に対応して格納されて
いるプログラム鍵で、前記読み込まれた内容を復号する
ことを特徴とする請求項1に記載のマイクロプロセッ
サ。 - 【請求項3】 前記タスクに対応するプログラムが配置
された先頭アドレスを、オフセット値として保持するオ
フセットテーブルをさらに備え、 前記暗号処理部は、前記オフセット値と前記プログラム
鍵とに基づき、前記復号鍵を生成し、前記キャッシュラ
イン単位で読み込まれた内容を復号することを特徴とす
る請求項1に記載のマイクロプロセッサ。 - 【請求項4】 前記タスクは、少なくともNULL、R
UNの2種類の状態をとり、 前記鍵値テーブルは、前記タスク状態がNULLからR
UNに移行するときに、前記プログラム鍵と、このプロ
グラム鍵に基づいて生成された前記復号鍵とを格納する
ことを特徴とする請求項2に記載のマイクロプロセッ
サ。 - 【請求項5】 前記タスクは、少なくともNULL,R
UN,SUSPENDの3種類の状態を取り、 前記実行中のタスクが中断されたときに、中断されたタ
スクの実行状態を一時的に保存する第2のキャッシュメ
モリをさらに備えることを特徴とする請求項1に記載の
マイクロプロセッサ。 - 【請求項6】 現在処理中のタスクの識別子をタスクI
Dレジスタに格納するステップと、 タスクの要求があったときに、タスクを実行するため
に、外部メモリにブロックごとに暗号化された状態で格
納されているプログラムをキャッシュライン単位に読み
込むステップと、 前記キャッシュラインの所定領域に、前記要求のあった
タスクの識別子を格納するステップと、 前記キャッシュラインに格納されたタスクの識別子と、
前記タスクIDレジスタに格納されたタスク識別子とを
比較するステップと、 前記比較結果が一致するときに、前記読み込んだ内容を
復号化するステップとを含む暗号処理方法。 - 【請求項7】 前記比較結果が不一致の場合に、前記キ
ャッシュラインの内容を廃棄するステップをさらに含む
ことを特徴とする請求項6に記載の暗号処理方法。 - 【請求項8】 それぞれ固有のプログラム鍵に基づいて
暗号化された複数のプログラムが格納されている外部メ
モリのアドレスを指定して、読み出し要求を発行するプ
ロセッサコアと、 前記プロセッサコアの読み出し要求に応じて、前記外部
メモリの指定されたアドレスのデータブロックを読み出
すインターフェイスと、 前記プログラムの実行制御単位であるタスクごとに与え
られるタスク識別子に対応して、前記プログラム鍵を保
持するタスク鍵テーブルと、 前記タスク識別子ごとに、前記プログラムが配置された
先頭アドレスをオフセット値として保持するオフセット
テーブルと、 前記読み出し要求により指定されたアドレスと、前記オ
フセットテーブルのタスク識別子で指定されるオフセッ
ト値とから相対アドレス値を計算し、この相対アドレス
値を、前記プログラム鍵で暗号化したブロック対応鍵を
生成する鍵生成部と、 前記読み出されたデータブロックを、前記ブロック対応
鍵により復号化する暗号処理部と、 前記復号化されたデータブロックをキャッシュライン単
位に読み込むキャッシュメモリと、 を備えるマイクロプロセッサ。 - 【請求項9】 前記プロセッサコアが指定する外部メモ
リのアドレスは、仮想アドレスであり、 前記マイクロプロセッサは、所定の変換情報に基づいて
仮想アドレスから物理アドレスへ変換して外部メモリに
アクセスするアドレス変換機能をさらに有し、 前記鍵生成部は、前記仮想アドレスから相対アドレス値
を計算することを特徴とする請求項8に記載のマイクロ
プロセッサ。 - 【請求項10】 現在実行中のタスクの識別子を保持す
るタスクレジスタをさらに有し、 前記鍵生成部は、前記相対アドレス値に所定の秘密定数
を加算し、前記加算結果を、前記タスクレジスタに保持
されたタスク識別子で指定されるプログラム鍵によって
暗号化して、前記ブロック対応鍵を生成することを特徴
とする請求項8に記載のマイクロプロセッサ。 - 【請求項11】 外部メモリに暗号化されて保持された
プログラムを、アドレス指定することによって、キャッ
シュライン単位に読み込むステップと、 前記プログラムの開始アドレスをオフセット値として取
り込むステップと、 前記指定したアドレスと、前記オフセット値とから相対
アドレスを求め、前記相対アドレスを所定の暗号鍵で暗
号化することによって、暗号鍵を生成するステップと、 前記生成した暗号鍵で、前記読み込んだ内容を復号化す
るステップとを含む暗号処理方法。 - 【請求項12】 現在実行されているタスクの識別子を
保持するタスクレジスタと、 複数のキャッシュラインから構成され、タスクの要求が
あったときに、外部メモリに暗号化された状態で格納さ
れているデータを、前記キャッシュライン単位に前記タ
スクの識別子と対応付けて、平文状態で読み込み可能な
キャッシュメモリと、 前記暗号状態のデータを、キャッシュラインごとに異な
るブロック対応暗号鍵で前記平文に復号する暗号処理部
と、 前記暗号状態のデータのアドレス範囲を、前記タスクの
識別子と対応付けて保持するアドレス範囲レジスタとを
備え、前記タスクの実行中に、第2のタスクの要求があ
った場合に、前記暗号処理部は、前記タスクレジスタに
保持されているタスクの識別子に対応するキャッシュラ
インの内容を、前記ブロック対応暗号鍵で暗号化し、 前記キャッシュメモリは、前記暗号化されたデータを外
部メモリに書き戻し可能であることを特徴とするマイク
ロプロセッサ。 - 【請求項13】 前記アドレス範囲レジスタに保持され
たアドレス範囲と、前記タスクの要求先のアドレスとか
ら相対アドレスを計算し、この相対アドレスを所定の鍵
で暗号化することにより前記ブロック対応暗号鍵を生成
する暗号鍵生成部をさらに備えることを特徴とする請求
項12に記載のマイクロプロセッサ。 - 【請求項14】 外部メモリに暗号化された状態で格納
されているプログラムの実行コードおよびデータをキャ
ッシュラインごとに取り込むインターフェイスと、 前記プログラムの開始アドレスであるオフセット値を保
持するオフセットテーブルを有し、前記実行コードを平
文状態でキャッシュラインごとに保持する第1のキャッ
シュと、 前記データのアドレス範囲を保持するアドレス範囲レジ
スタを有し、前記データを平文状態でキャッシュライン
ごとに保持する第2のキャッシュと、 前記第1および第2のキャッシュに共通バスを介して接
続され、前記プログラムの暗号化に用いた暗号鍵を保持
する鍵値テーブルと、 前記第1および第2のキャッシュバスおよび前記鍵値テ
ーブルに、前記共通バスを介して接続され、前記鍵値テ
ーブルと前記第1のキャッシュから前記暗号鍵と前記オ
フセット値をそれぞれ受け取り、当該暗号鍵とオフセッ
ト値に基づいて前記実行コードを復号化して前記第1の
キャッシュに供給し、前記鍵値テーブルと前記第2のキ
ャッシュから前記暗号鍵と前記アドレス範囲をそれぞれ
受け取って、前記暗号鍵とアドレス範囲に基づき前記デ
ータを復号化して、前記第2のキャッシュに供給する暗
号処理部とを備えるマイクロプロセッサ。 - 【請求項15】 前記暗号処理部は、 複数の並列鍵生成ユニットから構成され、前記鍵値テー
ブルの暗号鍵と、前記第1および第2のキャッシュから
のオフセット値およびアドレス範囲に基づいて、前記キ
ャッシュラインごとに復号するブロック暗号鍵を生成す
る鍵生成モジュールと、 複数の並列暗号処理ユニットから構成され、前記生成さ
れたブロック暗号鍵に基づいて前記キャッシュラインご
とに復号化する暗号処理モジュールと、 前記鍵生成ユニットおよび暗号処理ユニットの空きユニ
ットに順次処理を割り振るディスパッチャとを備えるこ
とを特徴とする請求項14に記載のマイクロプロセッ
サ。 - 【請求項16】 タスクの要求に応じて、外部メモリに
暗号化された状態で格納されているプログラムを、キャ
ッシュラインごとに平文状態で保持するキャッシュメモ
リと、 前記平文状態のプログラムを実行する命令実行部と、 前記タスクの実行中に割り込みが発生した場合に,前記
プログラムの実行状態を一時的に退避させる退避レジス
タと、 実行状態保存要求があったときに、前記退避レジスタの
内容にハッシュを付加して前記キャッシュメモリの所定
のラインに書き込むハッシュ計算部と、 前記キャッシュラインに書き込まれた実行状態を前記キ
ャッシュライン単位で所定の暗号鍵により暗号化して、
外部メモリに書き戻す暗号処理部とを備えるマイクロプ
ロセッサ。 - 【請求項17】 前記キャッシュメモリのキャッシュラ
インは、当該キャッシュラインが実行状態を格納中であ
ることを示すフラグを有することを特徴とする請求項1
6に記載のマイクロプロセッサ。 - 【請求項18】 前記暗号処理部は、実行状態復帰要求
があったときに、前記暗号化された実行状態を前記キャ
ッシュメモリに読み込み、前記暗号鍵でキャッシュライ
ンごとに復号して前記退避レジスタに供給し、前記ハッ
シュ計算部は前記ハッシュを検証して、検証に成功した
場合にのみ、前記実行状態の復帰を許可することを特徴
とする請求項16に記載のマイクロプロセッサ。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001304488A JP4226816B2 (ja) | 2001-09-28 | 2001-09-28 | マイクロプロセッサ |
KR10-2002-0058773A KR100503906B1 (ko) | 2001-09-28 | 2002-09-27 | 마이크로프로세서 |
DE60214640T DE60214640T2 (de) | 2001-09-28 | 2002-09-27 | Mikroprozessor mit verbesserten Taskverwaltungs- und Tabellenverwaltungsvorrichtungen |
EP02256772A EP1298518B1 (en) | 2001-09-28 | 2002-09-27 | Microprocessor with improved task management and table management mechanism |
CN02143924A CN1410876A (zh) | 2001-09-28 | 2002-09-28 | 微处理机 |
US10/259,379 US7424622B2 (en) | 2001-09-28 | 2002-09-30 | Microprocessor with improved task management and table management mechanism |
US12/118,291 US7673155B2 (en) | 2001-09-28 | 2008-05-09 | Microprocessor with improved task management and table management mechanism |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001304488A JP4226816B2 (ja) | 2001-09-28 | 2001-09-28 | マイクロプロセッサ |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008276073A Division JP4643702B2 (ja) | 2008-10-27 | 2008-10-27 | マイクロプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003108442A true JP2003108442A (ja) | 2003-04-11 |
JP4226816B2 JP4226816B2 (ja) | 2009-02-18 |
Family
ID=19124403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001304488A Expired - Fee Related JP4226816B2 (ja) | 2001-09-28 | 2001-09-28 | マイクロプロセッサ |
Country Status (6)
Country | Link |
---|---|
US (2) | US7424622B2 (ja) |
EP (1) | EP1298518B1 (ja) |
JP (1) | JP4226816B2 (ja) |
KR (1) | KR100503906B1 (ja) |
CN (1) | CN1410876A (ja) |
DE (1) | DE60214640T2 (ja) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005078459A (ja) * | 2003-09-01 | 2005-03-24 | Toshiba Corp | マイクロプロセッサ |
JP2005196257A (ja) * | 2003-12-26 | 2005-07-21 | Toshiba Corp | マイクロプロセッサ |
JP2006018684A (ja) * | 2004-07-02 | 2006-01-19 | Ntt Docomo Inc | タスク管理システム |
JP2006018685A (ja) * | 2004-07-02 | 2006-01-19 | Ntt Docomo Inc | マルチタスク実行システム |
JP2006042289A (ja) * | 2004-06-24 | 2006-02-09 | Toshiba Corp | マイクロプロセッサ |
JP2006227777A (ja) * | 2005-02-16 | 2006-08-31 | Renesas Technology Corp | データ処理装置 |
JP2006260224A (ja) * | 2005-03-17 | 2006-09-28 | Fujitsu Ltd | データのバックアップ方法、バックアップ処理システム、およびコンピュータプログラム |
JP2006526173A (ja) * | 2003-06-25 | 2006-11-16 | インテル・コーポレーション | 解読待ち時間が削減されたメモリ暗号化のための装置及び方法 |
JP2007515709A (ja) * | 2003-11-26 | 2007-06-14 | インテル コーポレイション | 公的にアクセス可能なストレージからデータ処理マシンの状態に関するプライベートデータへのアクセス |
US7590869B2 (en) | 2003-09-24 | 2009-09-15 | Kabushiki Kaisha Toshiba | On-chip multi-core type tamper resistant microprocessor |
JP2010517424A (ja) * | 2007-01-26 | 2010-05-20 | マイクロソフト コーポレーション | Usbトークン上の暗号化キーコンテナ |
JP2011181107A (ja) * | 2011-06-09 | 2011-09-15 | Fujitsu Semiconductor Ltd | セキュアプロセッサ用プログラム |
JP2012090286A (ja) * | 2004-12-21 | 2012-05-10 | Sandisk Corp | イン−ストリームデータ暗号化/復号の機能を有するメモリシステム |
Families Citing this family (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4226816B2 (ja) | 2001-09-28 | 2009-02-18 | 株式会社東芝 | マイクロプロセッサ |
JP4115759B2 (ja) * | 2002-07-01 | 2008-07-09 | 株式会社東芝 | 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム |
US7529367B2 (en) | 2003-04-18 | 2009-05-05 | Via Technologies, Inc. | Apparatus and method for performing transparent cipher feedback mode cryptographic functions |
US7392400B2 (en) | 2003-04-18 | 2008-06-24 | Via Technologies, Inc. | Microprocessor apparatus and method for optimizing block cipher cryptographic functions |
US7532722B2 (en) | 2003-04-18 | 2009-05-12 | Ip-First, Llc | Apparatus and method for performing transparent block cipher cryptographic functions |
US7925891B2 (en) | 2003-04-18 | 2011-04-12 | Via Technologies, Inc. | Apparatus and method for employing cryptographic functions to generate a message digest |
US7321910B2 (en) | 2003-04-18 | 2008-01-22 | Ip-First, Llc | Microprocessor apparatus and method for performing block cipher cryptographic functions |
US7900055B2 (en) | 2003-04-18 | 2011-03-01 | Via Technologies, Inc. | Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms |
US7529368B2 (en) | 2003-04-18 | 2009-05-05 | Via Technologies, Inc. | Apparatus and method for performing transparent output feedback mode cryptographic functions |
US7536560B2 (en) | 2003-04-18 | 2009-05-19 | Via Technologies, Inc. | Microprocessor apparatus and method for providing configurable cryptographic key size |
US7539876B2 (en) | 2003-04-18 | 2009-05-26 | Via Technologies, Inc. | Apparatus and method for generating a cryptographic key schedule in a microprocessor |
US7519833B2 (en) | 2003-04-18 | 2009-04-14 | Via Technologies, Inc. | Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine |
US7844053B2 (en) * | 2003-04-18 | 2010-11-30 | Ip-First, Llc | Microprocessor apparatus and method for performing block cipher cryptographic functions |
US8060755B2 (en) | 2003-04-18 | 2011-11-15 | Via Technologies, Inc | Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine |
US7502943B2 (en) | 2003-04-18 | 2009-03-10 | Via Technologies, Inc. | Microprocessor apparatus and method for providing configurable cryptographic block cipher round results |
US7542566B2 (en) | 2003-04-18 | 2009-06-02 | Ip-First, Llc | Apparatus and method for performing transparent cipher block chaining mode cryptographic functions |
US6996698B2 (en) * | 2003-05-12 | 2006-02-07 | International Business Machines Corporation | Blocking processing restrictions based on addresses |
JP4624732B2 (ja) * | 2003-07-16 | 2011-02-02 | パナソニック株式会社 | アクセス方法 |
WO2005020111A2 (en) * | 2003-08-21 | 2005-03-03 | Koninklijke Philips Electronics, N.V. | Hardware register access via task tag id |
US20050097300A1 (en) * | 2003-10-30 | 2005-05-05 | International Business Machines Corporation | Processing system and method including a dedicated collective offload engine providing collective processing in a distributed computing environment |
JP2006023957A (ja) * | 2004-07-07 | 2006-01-26 | Sony Corp | 半導体集積回路及び情報処理装置 |
US7657756B2 (en) * | 2004-10-08 | 2010-02-02 | International Business Machines Corporaiton | Secure memory caching structures for data, integrity and version values |
US8954751B2 (en) * | 2004-10-08 | 2015-02-10 | International Business Machines Corporation | Secure memory control parameters in table look aside buffer data fields and support memory array |
US7843830B1 (en) * | 2005-05-05 | 2010-11-30 | Force 10 Networks, Inc | Resilient retransmission of epoch data |
CN100447702C (zh) * | 2005-05-23 | 2008-12-31 | 联想(北京)有限公司 | 一种防止未被授权程序在计算机系统运行的方法及其系统 |
US7684566B2 (en) | 2005-05-27 | 2010-03-23 | Microsoft Corporation | Encryption scheme for streamed multimedia content protected by rights management system |
JP4372061B2 (ja) * | 2005-07-01 | 2009-11-25 | パナソニック株式会社 | 機密情報実装システム及びlsi |
US8321690B2 (en) * | 2005-08-11 | 2012-11-27 | Microsoft Corporation | Protecting digital media of various content types |
CN100354789C (zh) * | 2005-08-19 | 2007-12-12 | 华为技术有限公司 | 一种内容群组的数字版权保护方法及系统 |
US7970133B2 (en) * | 2006-01-19 | 2011-06-28 | Rockwell Collins, Inc. | System and method for secure and flexible key schedule generation |
US8001591B2 (en) * | 2006-01-31 | 2011-08-16 | Freescale Semiconductor, Inc. | Distributed resource access protection |
US7991965B2 (en) | 2006-02-07 | 2011-08-02 | Intel Corporation | Technique for using memory attributes |
US20070297606A1 (en) * | 2006-06-27 | 2007-12-27 | Tkacik Thomas E | Multiple key security and method for electronic devices |
US8285877B1 (en) * | 2006-12-05 | 2012-10-09 | Nvidia Corporation | Intelligent background data conversion |
JP2009044677A (ja) * | 2007-08-10 | 2009-02-26 | Panasonic Corp | 機密情報処理装置、機密情報処理機器、及び機密情報処理方法 |
JP4976991B2 (ja) * | 2007-11-22 | 2012-07-18 | 株式会社東芝 | 情報処理装置、プログラム検証方法及びプログラム |
JP2009199414A (ja) * | 2008-02-22 | 2009-09-03 | Renesas Technology Corp | マイクロコンピュータ |
US8112634B2 (en) * | 2008-06-04 | 2012-02-07 | Samsung Electronics Co., Ltd. | Security-enhanced storage devices using media location factor in encryption of hidden and non-hidden partitions |
US8145855B2 (en) | 2008-09-12 | 2012-03-27 | Sandisk Technologies Inc. | Built in on-chip data scrambler for non-volatile memory |
US8429330B2 (en) * | 2008-09-12 | 2013-04-23 | Sandisk Technologies Inc. | Method for scrambling data in which scrambling data and scrambled data are stored in corresponding non-volatile memory locations |
US9336160B2 (en) * | 2008-10-30 | 2016-05-10 | Qualcomm Incorporated | Low latency block cipher |
US8745411B2 (en) * | 2008-11-07 | 2014-06-03 | Broadcom Corporation | Protecting external volatile memories using low latency encryption/decryption |
JP2010128392A (ja) * | 2008-11-28 | 2010-06-10 | Canon Inc | ハッシュ処理装置及びその方法 |
JP5322620B2 (ja) | 2008-12-18 | 2013-10-23 | 株式会社東芝 | 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム |
JP5304345B2 (ja) * | 2009-03-11 | 2013-10-02 | 富士通株式会社 | コンテンツ処理装置、コンテンツ処理システム、およびコンテンツ処理プログラム |
US9846789B2 (en) | 2011-09-06 | 2017-12-19 | International Business Machines Corporation | Protecting application programs from malicious software or malware |
US8954752B2 (en) | 2011-02-23 | 2015-02-10 | International Business Machines Corporation | Building and distributing secure object software |
US9298894B2 (en) | 2009-06-26 | 2016-03-29 | International Business Machines Corporation | Cache structure for a computer system providing support for secure objects |
US8819446B2 (en) | 2009-06-26 | 2014-08-26 | International Business Machines Corporation | Support for secure objects in a computer system |
US9954875B2 (en) | 2009-06-26 | 2018-04-24 | International Business Machines Corporation | Protecting from unintentional malware download |
US8578175B2 (en) * | 2011-02-23 | 2013-11-05 | International Business Machines Corporation | Secure object having protected region, integrity tree, and unprotected region |
ES2390796T3 (es) * | 2009-07-27 | 2012-11-16 | Nagravision S.A. | Método de implementación de un procesador para garantizar la integridad de un software |
JP2011071760A (ja) * | 2009-09-25 | 2011-04-07 | Canon Inc | 情報処理装置、情報処理装置のジョブ処理方法、及びプログラム |
WO2011101972A1 (ja) | 2010-02-18 | 2011-08-25 | 株式会社東芝 | プログラム |
JP2011181000A (ja) * | 2010-03-03 | 2011-09-15 | Toshiba Corp | コントローラ、半導体記憶装置および半導体記憶装置の制御方法 |
US8751789B2 (en) * | 2010-09-17 | 2014-06-10 | International Business Machines Corporation | General purpose distributed encrypted file system |
US9864853B2 (en) | 2011-02-23 | 2018-01-09 | International Business Machines Corporation | Enhanced security mechanism for authentication of users of a system |
US8745408B2 (en) * | 2011-04-08 | 2014-06-03 | Infineon Technologies Ag | Instruction encryption/decryption arrangement and method with iterative encryption/decryption key update |
JP5775738B2 (ja) * | 2011-04-28 | 2015-09-09 | 富士通株式会社 | 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム |
KR101869059B1 (ko) * | 2012-02-28 | 2018-06-20 | 삼성전자주식회사 | 저장 장치 및 그것의 메모리 컨트롤러 |
EP2653992A1 (en) * | 2012-04-17 | 2013-10-23 | Itron, Inc. | Microcontroller configured for external memory decryption |
US8572410B1 (en) | 2012-07-18 | 2013-10-29 | Freescale Semiconductor, Inc. | Virtualized protected storage |
JP6214142B2 (ja) * | 2012-10-09 | 2017-10-18 | キヤノン株式会社 | 情報処理装置、情報処理方法およびプログラム |
US20140181402A1 (en) * | 2012-12-21 | 2014-06-26 | Advanced Micro Devices, Inc. | Selective cache memory write-back and replacement policies |
US20140310536A1 (en) * | 2013-04-16 | 2014-10-16 | Qualcomm Incorporated | Storage device assisted inline encryption and decryption |
TW201512894A (zh) * | 2013-09-24 | 2015-04-01 | hong-jian Zhou | 資料存取系統及其資料與指令傳輸裝置 |
US9223965B2 (en) | 2013-12-10 | 2015-12-29 | International Business Machines Corporation | Secure generation and management of a virtual card on a mobile device |
US9235692B2 (en) | 2013-12-13 | 2016-01-12 | International Business Machines Corporation | Secure application debugging |
US10223289B2 (en) * | 2015-07-07 | 2019-03-05 | Qualcomm Incorporated | Secure handling of memory caches and cached software module identities for a method to isolate software modules by means of controlled encryption key management |
US9767318B1 (en) * | 2015-08-28 | 2017-09-19 | Frank Dropps | Secure controller systems and associated methods thereof |
US20170116003A1 (en) * | 2015-10-27 | 2017-04-27 | International Business Machines Corporation | Dynamic determination of the applicability of a hardware accelerator to a request |
US9886390B2 (en) * | 2015-11-10 | 2018-02-06 | International Business Machines Corporation | Intelligent caching of responses in a cognitive system |
CN107145308B (zh) * | 2017-05-04 | 2021-06-22 | 惠州Tcl移动通信有限公司 | 移动终端、及其sd卡操作控制方法、系统、存储装置 |
IT201700050153A1 (it) * | 2017-05-09 | 2018-11-09 | St Microelectronics Srl | Modulo hardware di sicurezza, relativo sistema di elaborazione, circuito integrato e dispositivo |
US10509666B2 (en) * | 2017-06-29 | 2019-12-17 | Ati Technologies Ulc | Register partition and protection for virtualized processing device |
TWI670960B (zh) | 2018-06-14 | 2019-09-01 | 笠眾實業有限公司 | 在公眾網路下進行驗證連線的車聯網系統及其連線方法 |
US11595192B2 (en) * | 2020-04-24 | 2023-02-28 | Dell Products L.P. | System and method of migrating one or more storage class memories from a first information handling system to a second information handling system |
CN117940910A (zh) * | 2021-08-18 | 2024-04-26 | 美光科技公司 | 选择性高速缓存行存储器加密 |
CN117519955B (zh) * | 2024-01-08 | 2024-03-29 | 浪潮电子信息产业股份有限公司 | 一种加速设备的控制方法、系统、装置及加速设备 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3976978A (en) * | 1975-03-26 | 1976-08-24 | Honeywell Information Systems, Inc. | Method of generating addresses to a paged memory |
US4168396A (en) * | 1977-10-31 | 1979-09-18 | Best Robert M | Microprocessor for executing enciphered programs |
US4463420A (en) * | 1982-02-23 | 1984-07-31 | International Business Machines Corporation | Multiprocessor cache replacement under task control |
US4558176A (en) | 1982-09-20 | 1985-12-10 | Arnold Mark G | Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software |
JPS6079446A (ja) | 1983-10-06 | 1985-05-07 | Hitachi Ltd | 多重仮想記憶デ−タ処理装置 |
US4887296A (en) * | 1984-10-26 | 1989-12-12 | Ricoh Co., Ltd. | Cryptographic system for direct broadcast satellite system |
JPH0192833A (ja) * | 1987-10-02 | 1989-04-12 | Satoru Kubota | 暗号翻訳の回路を内蔵することにより、ソフトウェアの違法なコピーを防止するマイクロプロセッサ |
US5097533A (en) * | 1988-11-29 | 1992-03-17 | International Business Machines Corporation | System and method for interfacing computer application programs written in different languages to a software system |
JPH03204744A (ja) | 1990-01-08 | 1991-09-06 | Nec Corp | アドレス変換機構 |
JPH03235143A (ja) | 1990-02-13 | 1991-10-21 | Sanyo Electric Co Ltd | キャッシュメモリ制御装置 |
JP2846697B2 (ja) | 1990-02-13 | 1999-01-13 | 三洋電機株式会社 | キャッシュメモリ制御装置 |
JP3235144B2 (ja) | 1991-08-02 | 2001-12-04 | ソニー株式会社 | 量子箱列の作製方法 |
JP3235143B2 (ja) | 1991-11-25 | 2001-12-04 | ソニー株式会社 | アルカリ電池 |
JP3204744B2 (ja) | 1992-07-22 | 2001-09-04 | 株式会社東芝 | 信号遅延メモリ回路 |
US5319705A (en) * | 1992-10-21 | 1994-06-07 | International Business Machines Corporation | Method and system for multimedia access control enablement |
JP3381080B2 (ja) | 1993-03-16 | 2003-02-24 | 日本電信電話株式会社 | 処理の中断が可能な排他制御方式 |
JP3381079B2 (ja) | 1993-03-16 | 2003-02-24 | 日本電信電話株式会社 | キャッシュメモリを用いた排他制御システム |
JPH06266621A (ja) | 1993-03-17 | 1994-09-22 | Nippon Telegr & Teleph Corp <Ntt> | データアクセス方法 |
JPH06282488A (ja) | 1993-03-25 | 1994-10-07 | Mitsubishi Electric Corp | キャッシュ記憶装置 |
JP3381086B2 (ja) | 1993-07-09 | 2003-02-24 | 日本電信電話株式会社 | 排他制御可能なマルチプロセッサシステム |
US5805711A (en) * | 1993-12-21 | 1998-09-08 | Francotyp-Postalia Ag & Co. | Method of improving the security of postage meter machines |
US5666411A (en) * | 1994-01-13 | 1997-09-09 | Mccarty; Johnnie C. | System for computer software protection |
JPH08180001A (ja) * | 1994-04-12 | 1996-07-12 | Mitsubishi Electric Corp | 通信方式及び通信方法及びネットワークインタフェース |
JPH07311712A (ja) | 1994-05-19 | 1995-11-28 | Toshiba Corp | 障害復旧方法 |
JPH09259044A (ja) | 1996-03-21 | 1997-10-03 | Fuji Xerox Co Ltd | 機密保護機能付き情報処理装置および機密保護方法 |
US6427162B1 (en) * | 1996-05-02 | 2002-07-30 | Sun Microsystems, Inc. | Separate code and data contexts: an architectural approach to virtual text sharing |
US6311290B1 (en) * | 1997-02-14 | 2001-10-30 | Intel Corporation | Methods of reliably allocating, de-allocating, re-allocating, and reclaiming objects in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture |
US6061449A (en) * | 1997-10-10 | 2000-05-09 | General Instrument Corporation | Secure processor with external memory using block chaining and block re-ordering |
JP3376956B2 (ja) * | 1999-05-14 | 2003-02-17 | 日本電気株式会社 | プロセッサ間通信装置 |
US6816488B1 (en) * | 1999-05-21 | 2004-11-09 | Advanced Micro Devices, Inc. | Apparatus and method for processing data frames in a network switch |
US6983374B2 (en) | 2000-02-14 | 2006-01-03 | Kabushiki Kaisha Toshiba | Tamper resistant microprocessor |
US20010031050A1 (en) * | 2000-02-14 | 2001-10-18 | Lateca Computer Inc. N.V. | Key generator |
EP1182556B1 (en) * | 2000-08-21 | 2009-08-19 | Texas Instruments France | Task based adaptive profiling and debugging |
JP4226816B2 (ja) | 2001-09-28 | 2009-02-18 | 株式会社東芝 | マイクロプロセッサ |
-
2001
- 2001-09-28 JP JP2001304488A patent/JP4226816B2/ja not_active Expired - Fee Related
-
2002
- 2002-09-27 EP EP02256772A patent/EP1298518B1/en not_active Expired - Lifetime
- 2002-09-27 DE DE60214640T patent/DE60214640T2/de not_active Expired - Fee Related
- 2002-09-27 KR KR10-2002-0058773A patent/KR100503906B1/ko not_active IP Right Cessation
- 2002-09-28 CN CN02143924A patent/CN1410876A/zh active Pending
- 2002-09-30 US US10/259,379 patent/US7424622B2/en not_active Expired - Fee Related
-
2008
- 2008-05-09 US US12/118,291 patent/US7673155B2/en not_active Expired - Fee Related
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006526173A (ja) * | 2003-06-25 | 2006-11-16 | インテル・コーポレーション | 解読待ち時間が削減されたメモリ暗号化のための装置及び方法 |
JP2005078459A (ja) * | 2003-09-01 | 2005-03-24 | Toshiba Corp | マイクロプロセッサ |
US7590869B2 (en) | 2003-09-24 | 2009-09-15 | Kabushiki Kaisha Toshiba | On-chip multi-core type tamper resistant microprocessor |
US9348767B2 (en) | 2003-11-26 | 2016-05-24 | Intel Corporation | Accessing private data about the state of a data processing machine from storage that is publicly accessible |
US9087000B2 (en) | 2003-11-26 | 2015-07-21 | Intel Corporation | Accessing private data about the state of a data processing machine from storage that is publicly accessible |
JP2011076632A (ja) * | 2003-11-26 | 2011-04-14 | Intel Corp | 公的にアクセス可能なストレージからデータ処理マシンの状態に関するプライベートデータへのアクセス |
JP2007515709A (ja) * | 2003-11-26 | 2007-06-14 | インテル コーポレイション | 公的にアクセス可能なストレージからデータ処理マシンの状態に関するプライベートデータへのアクセス |
JP2005196257A (ja) * | 2003-12-26 | 2005-07-21 | Toshiba Corp | マイクロプロセッサ |
US7603566B2 (en) | 2003-12-26 | 2009-10-13 | Kabushiki Kaisha Toshiba | Authenticated process switching on a microprocessor |
US8191155B2 (en) | 2004-06-24 | 2012-05-29 | Kabushiki Kaisha Toshiba | Microprocessor |
JP2006042289A (ja) * | 2004-06-24 | 2006-02-09 | Toshiba Corp | マイクロプロセッサ |
JP4559794B2 (ja) * | 2004-06-24 | 2010-10-13 | 株式会社東芝 | マイクロプロセッサ |
JP4668556B2 (ja) * | 2004-07-02 | 2011-04-13 | 株式会社エヌ・ティ・ティ・ドコモ | タスク管理システム |
JP4490192B2 (ja) * | 2004-07-02 | 2010-06-23 | 株式会社エヌ・ティ・ティ・ドコモ | マルチタスク実行システム |
US7577851B2 (en) | 2004-07-02 | 2009-08-18 | Ntt Docomo, Inc. | Multitask execution apparatus and multitask execution method |
JP2006018685A (ja) * | 2004-07-02 | 2006-01-19 | Ntt Docomo Inc | マルチタスク実行システム |
JP2006018684A (ja) * | 2004-07-02 | 2006-01-19 | Ntt Docomo Inc | タスク管理システム |
JP2012090286A (ja) * | 2004-12-21 | 2012-05-10 | Sandisk Corp | イン−ストリームデータ暗号化/復号の機能を有するメモリシステム |
JP2006227777A (ja) * | 2005-02-16 | 2006-08-31 | Renesas Technology Corp | データ処理装置 |
JP4737592B2 (ja) * | 2005-02-16 | 2011-08-03 | ルネサスエレクトロニクス株式会社 | データ処理装置 |
JP2006260224A (ja) * | 2005-03-17 | 2006-09-28 | Fujitsu Ltd | データのバックアップ方法、バックアップ処理システム、およびコンピュータプログラム |
JP4721737B2 (ja) * | 2005-03-17 | 2011-07-13 | 富士通株式会社 | データのバックアップ方法、バックアップ処理システム、およびコンピュータプログラム |
US8588421B2 (en) | 2007-01-26 | 2013-11-19 | Microsoft Corporation | Cryptographic key containers on a USB token |
JP2010517424A (ja) * | 2007-01-26 | 2010-05-20 | マイクロソフト コーポレーション | Usbトークン上の暗号化キーコンテナ |
JP2011181107A (ja) * | 2011-06-09 | 2011-09-15 | Fujitsu Semiconductor Ltd | セキュアプロセッサ用プログラム |
Also Published As
Publication number | Publication date |
---|---|
EP1298518B1 (en) | 2006-09-13 |
KR100503906B1 (ko) | 2005-07-27 |
KR20030027803A (ko) | 2003-04-07 |
DE60214640T2 (de) | 2007-01-11 |
JP4226816B2 (ja) | 2009-02-18 |
US20030065933A1 (en) | 2003-04-03 |
US7424622B2 (en) | 2008-09-09 |
CN1410876A (zh) | 2003-04-16 |
US20090006864A1 (en) | 2009-01-01 |
US7673155B2 (en) | 2010-03-02 |
DE60214640D1 (de) | 2006-10-26 |
EP1298518A3 (en) | 2004-04-21 |
EP1298518A2 (en) | 2003-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4226816B2 (ja) | マイクロプロセッサ | |
US7590869B2 (en) | On-chip multi-core type tamper resistant microprocessor | |
JP3866597B2 (ja) | 内部メモリ型耐タンパプロセッサおよび秘密保護方法 | |
US7136488B2 (en) | Microprocessor using asynchronous public key decryption processing | |
US8190917B2 (en) | System and method for securely saving and restoring a context of a secure program loader | |
KR100924043B1 (ko) | 보안 데이터 프로세싱 및 전송을 위한 방법들 및 장치들 | |
US7673152B2 (en) | Microprocessor with program and data protection function under multi-task environment | |
JP4226760B2 (ja) | マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法 | |
US6983374B2 (en) | Tamper resistant microprocessor | |
US7681044B2 (en) | Secure processor and system | |
EP2062191B1 (en) | System and method for securely restoring a program context from a shared memory | |
US8135867B2 (en) | Secure operation of processors | |
US8095802B2 (en) | System and method for securely saving a program context to a shared memory | |
JP4643702B2 (ja) | マイクロプロセッサ | |
US11748493B2 (en) | Secure asset management system | |
US20050144438A1 (en) | Microprocessor | |
JP4021810B2 (ja) | プロセッサ、プロセッサシステム及びキャッシュ一貫性制御方法 | |
KR20090059602A (ko) | 세션 메모리 버스를 구비한 암호화 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050307 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080826 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081027 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20081118 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081127 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111205 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111205 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121205 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121205 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131205 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |