JP3880933B2 - 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法 - Google Patents
耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法 Download PDFInfo
- Publication number
- JP3880933B2 JP3880933B2 JP2003012558A JP2003012558A JP3880933B2 JP 3880933 B2 JP3880933 B2 JP 3880933B2 JP 2003012558 A JP2003012558 A JP 2003012558A JP 2003012558 A JP2003012558 A JP 2003012558A JP 3880933 B2 JP3880933 B2 JP 3880933B2
- Authority
- JP
- Japan
- Prior art keywords
- cache memory
- data
- encryption key
- execution code
- program
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の属する技術分野】
本発明は、マルチタスクのプログラム実行環境を支援する機能を持つマイクロプロセッサであって、キャッシュメモリ制御部及び暗号化・復号化機能を備え、プログラムの実行コード及び処理対象データの秘匿性の保護及び改変を防止する為の耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法に関する。
【0002】
【従来の技術】
近年のコンピュータシステムにおいては、パーソナルコンピュータのように、様々なメーカーのハードウェア及びソフトウェアの組み合わせ構築が可能なオープンシステムが広く普及ししている。オープンシステムでは、ハードウェア及びシステムプログラム等から成るオペレーティングシステム(以下「OS」と記載)の情報が一般に開示されている。この為、ユーザが開示情報をもとにOSのプログラムを改変・改竄することは原理的に可能である。
【0003】
アプリケーションプログラムはこのOSの管理下で動作するので、OS自体が改竄されてハッカー等の第三者により攻撃された場合、これを避ける手段がない。よって、アプリケーションプログラム提供者が、アプリケーションプログラムを第三者の解析や改竄から完全に保護することは困難であった。
【0004】
そこで、オープンシステムのOSで動作するアプリケーションプログラムの改竄及び解析を防止する為に、暗号化という手法を用いる。プログラムを暗号化した場合、解析が困難となり、そのプログラムを改変した場合の動作が予測困難となる為改竄の防止にも有効である。ただし暗号化したアプリケーションプログラムを既存のコンピュータで実行することはできないので、これを復号化しつつ実行するようなマイクロプロセッサが必要となる。このマイクロプロセッサは、OSがアプリケーションプログラムに対して敵対動作をとることを前提として、プログラムの秘密を守り、プログラムだけでなくプログラムが扱う情報やデータも暗号化して、解析や改竄から保護する機能を備える(以下、このようなマイクロプロセッサを「耐タンパマイクロプロセッサ」と記載)。又、この耐タンパマイクロプロセッサは保護を受けたプログラムを複数同時に疑似並列実行するマルチタスクのプログラム実行環境を提供する(例えば特許文献1及び非特許文献1参照。)。
【0005】
耐タンパマイクロプロセッサがキャッシュメモリを搭載する場合、暗号化や復号化を行なう暗号処理部は、プロセッサコアとキャッシュメモリの間若しくはキャッシュメモリとメインメモリ等の記憶装置の間に配置することが可能である。暗号処理部をキャッシュメモリとメインメモリの間に配置すると、キャッシュメモリには復号化後、又は暗号化前の平文の内容が格納される。このため前者よりも後者の配置手法が、暗号化・復号化の処理回数が少なくて済むため、効率的である。
【0006】
暗号処理部が暗号化や復号化を行なう際、マルチタスクのプログラム実行環境であると、キャッシュメモリ内には複数のプログラムやそれらのデータが格納されている。この時、第三者によるOS等の改竄により、キャッシュメモリ内のプログラム間において、他のプログラムの秘密情報等の盗聴、改竄等が発生することがある。これを防止する為、キャッシュメモリに対するアクセスの制限が必要となる。
【0007】
従来提案されてきた耐タンパマイクロプロセッサでは、同時に動作する各プログラムに対して1つずつタスクIDを与え、これをキャッシュメモリに対するアクセス制限に用いる。キャッシュメモリの各キャッシュラインにはタスクIDを格納するためのメモリとして秘密保護フィールドが用意される。プロセッサコアがキャッシュメモリに平文の実行コードやデータを格納するときは、対応する秘密保護フィールドに現在実行中のプログラムのタスクIDを格納する。プロセッサコアがキャッシュメモリの内容を読み出す際は、読み出そうとしているキャッシュラインの秘密保護フィールドからタスクIDを取得する。そのタスクIDと、現在実行中のプログラムのタスクIDとを比較し、これらが一致する場合のみ読み出しを許可する。キャッシュメモリに格納されたデータをメインメモリ等の記憶装置に書き出すときには暗号化を行なう必要があるが、その際に用いる暗号鍵は、現在実行中のプログラムが保持する暗号鍵であるとは限らない。従来提案されてきた耐タンパマイクロプロセッサでは、キャッシュラインの秘密保護フィールドに格納されたタスクIDにより暗号鍵を取得する。このためタスクIDと暗号鍵の対応関係を格納した鍵値テーブルをプロセッサ内部に保持する。又、複数のプログラムが同時に協調動作をするとき、これらのプログラムの間で他のプログラムからは読み出せないようにデータを共有する機能がある。この機能を実現するにはプログラムどうしで1つの暗号鍵の値を共有する。各々のプログラムがこの1つの暗号鍵をデータを読み書きするために使用すれば、これらのプログラムどうしで共有されるメモリ領域の内容を共有することができ、この暗号鍵を知らない他のプログラムは、同じメモリ領域の内容を正しく暗号化・復号化して読み書きすることができない(例えば特許文献2参照。)。
【0008】
【特許文献1】
特開2001−230770号公開公報
【0009】
【特許文献2】
特開2002−202720号公開公報
【0010】
【非特許文献1】
David Lie、Chandramohan Thekkath、Mark Mitchell、Patrick Lincoln、Dan Boneh、John Mitchell、Mark Horowitz著「Architectural Support for Copy and Tamper Resistant Software」、ACM 発行「ASPLOS-IX Proceedings of the 9th International Conference on Architectural Support for Programming Languages and Operating Systems, Cambridge, MA, USA, November 12-15,
2000 」、2000年11月、p.168−177
【0011】
【発明が解決しようとする課題】
しかしながら、上記のタスクIDを使用してキャッシュメモリに対するアクセスの制限をする方式には、以下に述べるような問題点が存在する。
【0012】
先ず、第1の問題点として、この方式の耐タンパマイクロプロセッサはタスクIDと暗号鍵の対応関係を格納した鍵値テーブルを保持するが、この鍵値テーブルの大きさにより同時起動可能なプログラムの数が制限される。
【0013】
第2の問題点として、あるタスクIDのプログラムを終了させてそのタスクIDを新たに起動する別のプログラムに割り当てるとき、前に実行されていたプログラムのデータがキャッシュメモリに残っていると、同じタスクIDを割り当てられた次のプログラムは暗号鍵を知らなくてもそのデータの読み出しが可能となる。これを回避するには、プログラム終了時にキャッシュメモリの全領域を走査し、終了したプログラムのタスクIDに対応する各キャッシュラインを無効化する必要があるが、この操作には時間が長くかかった。特に大きなキャッシュメモリを搭載するマイクロプロセッサではそれが顕著であった。
【0014】
第3の問題点として、複数のプログラムが同時に協調動作する際にメモリの内容を共有する場合、あるプログラムが書き込んだデータを別のプログラムが読み出すには、最初のプログラムが書き込んだデータをいったんキャッシュメモリからメインメモリ等の記憶装置に暗号化して書き出し、これを再度復号化してキャッシュメモリに読み込む必要がある。つまり、本来同一内容のデータであるにもかかわらず、それを一度暗号化し、再び同じ鍵で復号化するため、実行速度が低下する。
【0015】
最後に、第4の問題点として、タスクIDを使用してキャッシュメモリに対するアクセスの制限をする方式では鍵値テーブルを参照する機能及びプログラム終了時にキャッシュ領域を走査し無効化する機能等、多くの機能をハードウェアで実装する必要があり、マイクロプロセッサの構造が複雑化する。
【0016】
本発明はこれらの問題点を解決する為のものであり、キャッシュメモリに対するアクセスの制限方法において、同時起動可能なプログラムの数に制限を与えず、1つのプログラムが終了したときにそのプログラムが使用したキャッシュメモリの内容をキャッシュメモリの全領域を走査することなく他のプログラムから読み出し不可能とし、複数のプログラムが1つの暗号鍵を共有して共有メモリ領域を読み書きする際に、あるプログラムがキャッシュに書き込んだ内容を、それを暗号化して主メモリに書き出さずに他のプログラムから読み出すことができ、複雑なハードウェア機能が不要な耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法を提供することを目的とする。
【0017】
【課題を解決するための手段】
上記の問題点を鑑み、本発明の第1の特徴は、(イ)暗号化されたプログラムの実行コードの読み出し要求を処理するキャッシュメモリ制御手段と、(ロ)キャッシュメモリ制御手段からの復号化要求に基づき、実行コードを記憶装置より読み出し、所定の暗号鍵によって復号化する復号化手段と、(ハ)複数のキャッシュラインを有し、復号化手段にて復号化した実行コードを記憶するデータ領域と、実行コードの復号化に用いた暗号鍵を格納する秘密保護属性保持部とを、同一キャッシュライン上に有するキャッシュメモリと、(ニ)暗号化されたプログラムの実行毎に、復号化に使用する暗号鍵が更新されて記憶される鍵値レジスタとを具備し、(ホ)キャッシュメモリ制御手段は、実行コードの読み出し要求を処理する際に、キャッシュメモリ内に実行コードが存在するときは、鍵値レジスタに記憶されている実行中のプログラムの暗号鍵とキャッシュメモリ内の実行コードが格納されたキャッシュラインの秘密保護属性保持部に格納された暗号鍵とを比較することによって、キャッシュメモリ内の実行コードが所定の暗号鍵と同一の暗号鍵によって復号化された実行コードである否かを判断し、キャッシュメモリ内の実行コードが所定の暗号鍵と同一の暗号鍵によって復号化された実行コードであった場合には、復号化手段へ復号化要求を出す代わりに、キャッシュメモリ内の実行コードを使用するよう制御する耐タンパマイクロプロセッサであることを要旨とする。
【0018】
上記の発明によると、キャッシュメモリに対するアクセス制限が無い為、同時起動可能なプログラムの数に制限がない。又、1つのプログラムが終了したときにそのプログラムが使用していたキャッシュメモリの内容は、そのプログラムの暗号鍵を知らない限り読み出すことができない。その為、キャッシュメモリを無効化するためにキャッシュメモリ全領域を走査する必要が無い。さらに、アクセス制限を行う機能や、キャッシュメモリ全領域を走査する機能が不要であるため、ハードウェアの複雑化を防ぐことができる。
【0019】
本発明の第2の特徴は、(イ)暗号化されたプログラムのデータの読み出し要求を処理するキャッシュメモリ制御手段と、(ロ)キャッシュメモリ制御手段からの復号化要求に基づき、データを記憶装置より読み出し、所定の暗号鍵によって復号化する復号化手段と、(ハ)複数のキャッシュラインを有し、復号化手段にて復号化したデータを記憶するデータ領域と、データの復号化に用いた暗号鍵を格納する秘密保護属性保持部とを、同一キャッシュライン上に有するキャッシュメモリと、(ニ)暗号化されたプログラムの実行毎に、復号化に使用する暗号鍵が更新されて記憶される鍵値レジスタとを具備し、(ホ)キャッシュメモリ制御手段は、データの読み出し要求を処理する際に、キャッシュメモリ内にデータが存在するときは、鍵値レジスタに記憶されている実行中のプログラムの暗号鍵とキャッシュメモリ内のデータが格納されたキャッシュラインの秘密保護属性保持部に格納された暗号鍵とを比較することによって、キャッシュメモリ内のデータが所定の暗号鍵と同一の暗号鍵によって復号化されたデータである否かを判断し、キャッシュメモリ内のデータが所定の暗号鍵と同一の暗号鍵によって復号化されたデータであった場合には、復号化手段へ復号化要求を出す代わりに、キャッシュメモリ内のデータを使用するよう制御する耐タンパマイクロプロセッサであることを要旨とする。
【0020】
本発明の第3の特徴は、(イ)暗号化されたプログラムの実行コードの読み出し要求を処理するステップと、(ロ)実行コードを記憶装置より読み出し、所定の暗号鍵によって復号化するステップと、(ハ)復号化された実行コードを、キャッシュメモリ内の複数のキャッシュラインにそれぞれ設けられたデータ領域の1つに記憶するステップと、(ニ)復号化に用いた暗号鍵を、キャッシュメモリ内の複数のキャッシュラインにそれぞれ設けられた秘密保護属性保持部のうち、実行コードが格納されたキャッシュラインに設けられた秘密保護属性保持部に格納するステップと、(ホ)暗号化されたプログラムの実行毎に、復号化に使用する暗号鍵を更新し、鍵値レジスタに記憶するステップと、(ヘ)実行コードの読み出し要求を処理する際に、キャッシュメモリ内に実行コードが存在するときは、鍵値レジスタに記憶されている実行中のプログラムの暗号鍵とキャッシュメモリ内の実行コードが格納されたキャッシュラインの秘密保護属性保持部に格納された暗号鍵とを比較することによって、キャッシュメモリ内の実行コードが所定の暗号鍵と同一の暗号鍵によって復号化された実行コードである否かを判断し、キャッシュメモリ内の実行コードが所定の暗号鍵と同一の暗号鍵によって復号化された実行コードであった場合には、キャッシュメモリ内の実行コードを使用するよう制御するステップとを備えるキャッシュメモリ搭載プロセッサによるデータアクセス制御方法であることを要旨とする。
【0021】
本発明の第4の特徴は、(イ)暗号化されたプログラムのデータの読み出し要求を処理するステップと、(ロ)データを記憶装置より読み出し、所定の暗号鍵によって復号化するステップと、(ハ)復号化されたデータを、キャッシュメモリ内の複数のキャッシュラインにそれぞれ設けられたデータ領域の1つに記憶するステップと、(ニ)復号化に用いた暗号鍵を、キャッシュメモリ内の複数のキャッシュラインにそれぞれ設けられた秘密保護属性保持部のうち、データが格納されたキャッシュラインに設けられた秘密保護属性保持部に格納するステップと、(ホ)暗号化されたプログラムの実行毎に、復号化に使用する暗号鍵を更新し、鍵値レジスタに記憶するステップと、(ヘ)データの読み出し要求を処理する際に、キャッシュメモリ内にデータが存在するときは、鍵値レジスタに記憶されている実行中のプログラムの暗号鍵とキャッシュメモリ内のデータが格納されたキャッシュラインの秘密保護属性保持部に格納された暗号鍵とを比較することによって、キャッシュメモリ内のデータが所定の暗号鍵と同一の暗号鍵によって復号化されたデータである否かを判断し、キャッシュメモリ内のデータが所定の暗号鍵と同一の暗号鍵によって復号化されたデータであった場合には、キャッシュメモリ内のデータを使用するよう制御するステップとを備えるキャッシュメモリ搭載プロセッサによるデータアクセス制御方法であることを要旨とする。
【0022】
【発明の実施の形態】
キャッシュメモリ制御部及び暗号化復号化機能を備え、プログラムの実行コード及び処理対象データの秘匿性の保護及び改変を防止する為の耐タンパマイクロプロセッサ及びデータアクセス制御方法の実施の形態について以下に説明する。尚、本発明は以下の実施の形態にとらわれず、その趣旨を脱しない範囲で種々変更して実施できることは勿論である。
【0023】
(耐タンパマイクロプロセッサ)
本発明の実施の形態に係る耐タンパマイクロプロセッサ100は、図1に示すように、プロセッサコア10、キャッシュメモリ制御部20、コードデータ暗号復号処理部30、鍵値レジスタ40及び外部バスインタフェース50等を備える。耐タンパマイクロプロセッサ100は、外部バスインタフェース50に接続されたバス70を介して記憶装置60と接続されている。
【0024】
プロセッサコア10は、キャッシュメモリ制御部20から渡された平分コード及び平文データの演算処理を行う。
【0025】
コードデータ暗号復号処理部30は、復号化手段であり、キャッシュメモリ制御部20と外部バスインタフェース50の間に配置され、バス70側から送信された暗号化済み実行コードやデータの復号を行うモジュールである。またコードデータ暗号復号処理部30は、キャッシュメモリ制御部20から受信したデータを暗号化しバス70側に出力する。
【0026】
鍵値レジスタ40は、コードデータ暗号復号処理部30が暗号化及び復号化の実行時に使う暗号鍵を格納する。1つのプログラムは図5のように、複数の実行コード及びデータから構成され、これら複数の実行コード及びデータは、鍵値レジスタ40内の1つの暗号鍵によって暗号化若しくは復号化される。なお、本実施の形態ではプログラムの持つ実行コード及びデータは同一の暗号鍵で暗号化されるものとするが、実行コードとデータを別々の鍵で暗号化するために、鍵値レジスタ40に実行コード用とデータ用の2つの暗号鍵を保持できるようにしても良い。鍵値レジスタ40と図2の秘密保護属性保持部25a〜25dは同じ鍵値を格納する為、これらの領域と同じ大きさであることが好ましい。鍵値レジスタ40の領域は、新たなプログラムを実行する際には新たなプログラムの鍵値に上書きされ、更新される。
【0027】
記憶装置60は、プログラムのコンパイル後の実行コード及びデータを記憶する為の主メモリ、記憶装置等を指す。又記憶装置60は、バス70を介して図示しない通信制御装置を用い、外部の補助記憶装置若しくは外部バスとのデータのやり取りを行っても良い。尚、記憶装置60が記憶する実行コード及びデータは既に相手の暗号処理装置等によって暗号化された状態で受信したものを記憶している。
【0028】
キャッシュメモリ制御部20は、キャッシュメモリ制御手段であり、実行コード及びデータに付随するアドレス情報や秘密保護属性等の情報の比較処理、演算処理等の制御を行う。キャッシュメモリ制御部20は、キャッシュメモリ21を内部に備え、キャッシュメモリ21は実行コード及びデータを平文コード及び平文データとして記憶する。
【0029】
図2は、キャッシュメモリ21のデータ構造を示す。キャッシュメモリ21は複数のキャッシュライン22a、22b、22c、22d…(以下「キャッシュライン22a〜22d」と記載)から構成される。キャッシュライン22a〜22dは、タグ領域23a、23b、23c、23d…(以下「タグ領域23a〜23d」と記載)、データ領域24a、24b、24c、24d…(以下「データ領域24a〜24d」と記載)、秘密保護属性保持部25a、25b、25c、25d…(以下「秘密保護属性保持部25a〜25d」と記載)及び制御情報保持部26a、26b、26c、26d…(以下「制御情報保持部26a〜26d」と記載)等から構成される。タグ領域23a〜23dは、実行コード及びデータが読み出されたアドレスに関する情報を記憶する領域である。データ領域24a〜24dは、読み出された実行コード及びデータを記憶する領域である。秘密保護属性保持部25a〜25dは、実行コード及びデータの復号化に使用した暗号鍵、データの暗号化に使用するべき暗号鍵を記憶する領域である。制御情報保持部26a〜26dは、各キャッシュライン22a〜22dが保持する実行コード及びデータの制御情報を記憶する領域である。
【0030】
本発明の実施の形態に係る耐タンパマイクロプロセッサが、鍵値レジスタの値の初期設定、実行コードの読み出し、データの読み出し及びデータの書き出しを行う際の動作について以下に説明する。
【0031】
(鍵値レジスタの値の初期設定)
記憶装置60にロードされたプログラムは、暗号化された実行コードによる実行を開始する前に、プログラム実行の初期設定として、暗号鍵を耐タンパマイクロプロセッサ100の鍵値レジスタ40に設定する。具体的には、暗号鍵を符合化したデータをパラメータとしてプロセッサコア10に与える。プロセッサコア10は、与えられた暗号鍵を鍵値レジスタ40に設定する。例えば、図5のように、プログラム1において実行コード若しくはデータ「A」「B」「C」を実行する前に、鍵値「X」を鍵値レジスタ40に設定し、プログラム2において実行コード若しくはデータ「D」「E」「F」を実行する前に、鍵値「Y」を鍵値レジスタ40に設定する。又は、鍵値が0の、暗号化されていない実行コードを、図5中の「A」の前に挿入し、その実行コードを実行する際の動作内容として鍵値レジスタ40を設定してもよい。
【0032】
尚、暗号化されたプログラムの実行中に、割り込み等により実行が中断されて他のプログラムに制御が移る場合には、通常のコンテキスト保存操作の一部として鍵値レジスタの値を保存する。また、中断されていたプログラムの実行を再開する際も、通常のコンテキスト復元操作の一部として鍵値レジスタの値を復元する。ここでコンテキストの暗号化を行なっても良い。鍵値レジスタをコンテキストとして保存することにより、別々の暗号鍵で暗号化された複数のプログラムが疑似並列的に実行されるマルチタスク環境が実現される。
【0033】
耐タンパマイクロプロセッサ100の電源投入時やリセットの直後、及びコンテキスト保存の直後(ただしコンテキスト保存の直後に別のコンテキストの復元が行なわれる場合は除く)の制御として、耐タンパマイクロプロセッサ100は鍵値レジスタ40に特別な値の設定する。これは例えば、値がゼロの暗号鍵、鍵値レジスタの1ビットをフラグとする等の手法がある。鍵値レジスタ40にこれらの特別な値が設定されているとき、耐タンパマイクロプロセッサ100は記憶装置60等から読み出した実行コードの復号化を行なわず、読み出したものをそのまま実行する。このことによりプログラマ等は暗号化復号化を行うプログラムや、暗号化復号化を行うタイミング等を自由に設定することが可能となる。
【0034】
プロセッサコア10により鍵値レジスタ40に暗号鍵が設定された後、キャッシュメモリ制御部20は実行コード及びデータの読み出しを以下で述べる手順により実行する。
【0035】
(実行コード及びデータの読み出し)
本発明の実施の形態に係る耐タンパマイクロプロセッサ100が、暗号化されたプログラムの実行コード又はデータを記憶装置60又はキャッシュメモリ21より読み出す動作について、図3のフローチャートを参照し、以下に説明する。
【0036】
(a)先ず、キャッシュメモリ制御部20は、ステップS101において、プロセッサコア10より実行コード又はデータ取得の要求を受け取ると、ステップS102にて、第1の確認として、この実行コード又はデータがキャッシュメモリ21上にあるかを判断する。
【0037】
(b)実行すべきアドレスの実行コード又はデータがキャッシュメモリ21上にないと判断された場合は、ステップS103にて、バス70及び外部バスインタフェース50を経由して記憶装置60からそのアドレスの実行コード又はデータを読み出す。
【0038】
(c)ステップS104では、コードデータ暗号復号処理部30が、記憶装置60より読み出された実行コード又はデータを、初期設定された鍵値レジスタ40の暗号鍵で復号化する。
【0039】
(d)ステップS105にて、この実行コード又はデータはキャッシュメモリ21に転送され、図2のキャッシュライン22a〜22d上のデータ領域24a〜24dのいずれかに格納される。この際、ステップS106にて、実行コード又はデータが読み出されたアドレスに関する情報がタグ領域23a〜23dのいずれかに格納され、制御情報保持部26a〜26dのいずれかの内容が更新される。また、実行コード又はデータの復号化に用いた鍵値レジスタ40の暗号鍵は秘密保護属性保持部25a〜25dのいずれかに格納される。ステップS107にて、復号化された実行コード又はデータは実行のためプロセッサコアにも転送される。
【0040】
(e)一方、ステップS102において、第1の確認の際、実行すべきアドレスの実行コード又はデータがキャッシュメモリに存在すると判断された場合は、ステップS108において、キャッシュメモリ制御部20が、第2の確認を行う。即ち、キャッシュライン22a〜22dに含まれる秘密保護属性保持部25a〜25dの内、これから実行すべきアドレスの実行コード又はデータのキャッシュライン中の秘密保護属性保持部より暗号鍵を取得する。更に、ステップS109において、現在演算処理が実行されているプログラムが固有する暗号鍵を格納する鍵値レジスタ40より暗号鍵を取得する。ステップS110にて、これらの暗号鍵を比較する。もし2つの暗号鍵が一致した場合、これから実行すべきアドレスの実行コード又はデータとして、キャッシュメモリ21内に既に存在する同一の実行コード又はデータの内容を使用することを許可される。その後ステップS111にて、キャッシュライン22a〜22dのデータ領域24a〜24dにある実行コード又はデータ内に存在する同一の実行コード又はデータが再びプロセッサコア10に転送される。反対にステップS110において、2つの暗号鍵が一致しない場合は、現在実行中のプログラムはキャッシュメモリの内容を使用することを許可されず、ステップS103〜S107の、実行すべきアドレスの実行コード又はデータがキャッシュメモリにない場合と同様の動作を行なう。又は、プログラムの実行を中断して異常終了を示す例外を発生しても良い。
【0041】
上記の耐タンパマイクロプロセッサ100の動作の具体例として、図5のプログラム1及びプログラム2を耐タンパマイクロプロセッサ100が実行する動作について説明する。プログラム1及びプログラム2を実行する際には、プログラム1の終了後にプログラム2を実行する場合(実施例1)、プログラム1の実行中にプログラム2が割り込んで実行する場合(実施例2)、同じプログラム内で実行コード若しくはデータを実行する場合(実施例3)、異なるプログラム間にて実行コード若しくはデータを実行する場合(実施例4)とが考えられる。以下、それぞれの実施例について詳述する。
【0042】
(実施例1)
先ず、通常の処理として、図5のプログラム1の終了後にプログラム2を実行する場合について図6を用いて説明する。
【0043】
(a)先ず、耐タンパマイクロプロセッサ100は、ステップS301において、プログラム1の初期設定として、鍵値レジスタ40に「鍵値X」を格納する。この後、ステップS302において、記憶装置60よりプログラム1の実行コード若しくはデータ「A」を呼び出し、「鍵値X」にて復号化し、図2のキャッシュライン22aに格納する。この際、秘密保護属性保持部25aには「鍵値X」が格納される。又、実行コード若しくはデータ「A」はプロセッサコア10にて演算処理される。プロセッサコア10は図示しないプログラムカウンタを1つずつ進め、これと同様の処理を実行コード若しくはデータ「B」「C」に対しても行う(ステップS303〜S304)。
【0044】
(b)プログラム1が完了すると、待機していたプログラム2の処理に入る。ステップS305において、プログラム2の初期設定として、鍵値レジスタ40に「鍵値Y」を格納する。この後、ステップS306において、記憶装置60よりプログラム2の実行コード若しくはデータ「D」を呼び出し、「鍵値Y」にて復号化し、図2のキャッシュライン22dに格納する。この際、秘密保護属性保持部25dには「鍵値Y」が格納される。又、実行コード若しくはデータ「D」はプロセッサコア10にて演算処理される。プロセッサコア10は図示しないプログラムカウンタを1つずつ進め、これと同様の処理を実行コード若しくはデータ「E」「F」に対しても行う(ステップS307〜S308)。
【0045】
実施例1によると、暗号化されたプログラム1及びプログラム2を、暗号鍵を用いて平文化することにより、悪意の第三者の盗聴及び改竄等より防止し、安全に実行することができる。
【0046】
(実施例2)
次に、図5のプログラム1の実行中にプログラム2が割り込んで実行する場合について図7を用いて説明する。
【0047】
(a)先ず、耐タンパマイクロプロセッサ100は、ステップS401において、プログラム1の初期設定として、鍵値レジスタ40に「鍵値X」を格納する。この後、ステップS402において、記憶装置60よりプログラム1の実行コード若しくはデータ「A」を呼び出し、「鍵値X」にて復号化し、図2のキャッシュライン22aに格納する。この際、秘密保護属性保持部25aには「鍵値X」が格納される。又、実行コード若しくはデータ「A」はプロセッサコア10にて演算処理される。プロセッサコア10は図示しないプログラムカウンタを1つずつ進め、これと同様の処理を実行コード若しくはデータ「B」に対しても行う(ステップS403)。
【0048】
(b)実行コード若しくはデータ「B」の処理最中若しくは終了後に、プログラム2の割り込みが発生する。ステップS404において、キャッシュメモリ制御部20は、通常のコンテキスト保存として「鍵値X」を保存する。
【0049】
(c)割り込みしたプログラム2は、ステップS405において、初期設定として、鍵値レジスタ40に「鍵値Y」を格納する。この後、ステップS406において、記憶装置60よりプログラム2の実行コード若しくはデータ「D」を呼び出し、「鍵値Y」にて復号化し、図2のキャッシュライン22dに格納する。この際、秘密保護属性保持部25dには「鍵値Y」が格納される。又、実行コード若しくはデータ「D」はプロセッサコア10にて演算処理される。プロセッサコア10は図示しないプログラムカウンタを1つずつ進め、これと同様の処理を実行コード若しくはデータ「E」「F」に対しても行う(ステップS407〜S408)。
【0050】
(d)プログラム2が終了すると、割り込みされたプログラム1は処理を再開する。ステップS409として、保存されていた「鍵値X」を鍵値レジスタ40に再設定し、一時中断されていたプログラム1の実行コード若しくはデータ「C」の処理を再開する。
【0051】
実施例2によると、暗号化されたプログラム1及びプログラム2を復号するための暗号鍵をコンテキストとして保存することにより、複数のプログラムが擬似並列的に実行されるマルチタスク環境を実現することができる。
【0052】
(実施例3)
次に、図5のプログラム1内で実行コード若しくはデータ「A」「B」「C」「A」を実行する場合について図8を用いて説明する。尚、変数CNTの初期値は1とする。
【0053】
(a)先ず、耐タンパマイクロプロセッサ100は、ステップS501において、プログラム1の初期設定として、鍵値レジスタ40に「鍵値X」を格納する。この後、ステップS502において、記憶装置60よりプログラム1の実行コード若しくはデータ「A」を呼び出し、「鍵値X」にて復号化し、図2のキャッシュライン22aに格納する。この際、秘密保護属性保持部25aには「鍵値X」が格納される。又、実行コード若しくはデータ「A」はプロセッサコア10にて演算処理される。プロセッサコア10は図示しないプログラムカウンタを1つずつ進め、これと同様の処理を実行コード若しくはデータ「B」「C」に対しても行う(ステップS503〜S505)。
【0054】
(b)次に、ステップS506においてカウンタが1つ進められ、ステップS507として、再度S502の処理が行われる。この時には、鍵値レジスタ40は「鍵値X」を格納しており、実行コード若しくはデータ「A」の秘密保護属性保持部25aの値も「鍵値X」であるため、キャッシュメモリ制御部20は、キャッシュメモリ21に存在する実行コード若しくはデータ「A」の使用を許可し、プロセッサコア10へ対しキャッシュメモリ21に存在する実行コード若しくはデータ「A」を再送信する。
【0055】
(c)プログラム1が完了すると、ステップS508の分岐命令によって、待機していたプログラム2の処理に入る。プログラム2の処理ステップS509〜S512についてはステップS305〜S308と同様である為説明を省略する。
【0056】
実施例3によると、同一暗号鍵を有するプログラム、つまり同一プログラムにおいては、キャッシュメモリ内に既存する実行コード及びメモリを使用することができる。よって、演算処理効率が向上する。
【0057】
(実施例4)
最後に、図5のプログラム1及びプログラム2間で実行コード若しくはデータを実行する場合について図9を用いて説明する。
【0058】
(a)先ず、耐タンパマイクロプロセッサ100は、プログラム1の初期設定と実行コード又はデータ「A」「B」「C」に関する処理をステップS601〜S604にて行う。この処理はステップS301〜S304と同様である為説明を省略する。
【0059】
(b)プログラム1が完了すると、待機していたプログラム2の処理に入る。プログラム2は、ステップS605において、初期設定として、鍵値レジスタ40に「鍵値Y」を格納する。この後、ステップS606において、記憶装置60よりプログラム2の実行コード若しくはデータ「D」を呼び出し、「鍵値Y」にて復号化し、図2のキャッシュライン22dに格納する。この際、秘密保護属性保持部25dには「鍵値Y」が格納される。又、実行コード若しくはデータ「D」はプロセッサコア10にて演算処理される。プロセッサコア10は図示しないプログラムカウンタを1つずつ進める。
【0060】
(c)ステップS607において、次に処理を行う実行コード若しくはデータ「E」が、JUMP命令、GOTO命令等で実行コード若しくはデータ「C」に関わるものであるとする。この場合、キャッシュメモリ制御部20は、キャッシュメモリ21内に実行コード若しくはデータ「C」が存在するか否かを判断する。プログラム1の直後にプログラム2を実行した為、キャッシュメモリ21内の、例えば、キャッシュライン22cには実行コード若しくはデータ「C」が存在するとする。次にキャッシュメモリ制御部20は、鍵値レジスタ40の現在の値「鍵値X」と、秘密保護属性保持部25cに格納されている「鍵値Y」とを比較する。この場合、鍵値は一致しない為、ステップS608にて、キャッシュメモリ制御部20は、キャッシュメモリ21内のキャッシュライン22cを使用することを許可しない。この後、実行コード若しくはデータ「C」をステップS103〜107の手順により取得したり、プログラム2の実行を中断し、異常終了を示したりする。
【0061】
実施例4においては、異なる暗号鍵を有するプログラム間、つまり、複数の別々のプログラム間においては、キャッシュメモリ内の実行コード及びデータの使用を許可しない。このことによって、1つのプログラムの終了時にキャッシュメモリ全領域を走査する必要が無くなり、ひいては、演算処理効率が向上する。
【0062】
(データの書き出し)
本発明の実施の形態に係る耐タンパマイクロプロセッサ100がプログラムの要求により、データをキャッシュメモリ21及び記憶装置60に書き出す動作について、図4のフローチャートを参照し、以下に説明する。
【0063】
(a)先ずステップS201では、キャッシュメモリ制御部20が、プロセッサコア10より、書き出すべきデータを平文のままキャッシュメモリ21内に取得し、図2のキャッシュライン22a〜22dのデータ領域24a〜24dの該当領域に格納する。
【0064】
(b)この際、ステップS202では、データを書き込むアドレスに関する情報をタグ領域23a〜23dの該当領域に格納し、制御情報保持部26a〜26dの該当領域の内容を更新する。また、このデータを記憶装置60に書き出す際に用いるべき暗号鍵が鍵値レジスタ40より読み出され、秘密保護属性保持部25a〜25dの該当領域に格納される。
【0065】
(c)次に、データをキャッシュメモリ21から記憶装置60に書き出す。この動作は、キャッシュメモリ21の該当するキャッシュライン22a〜22dに別のデータを格納する場合等に必要となる。詳細を説明すると、ステップS203で、キャッシュメモリ制御部20がキャッシュライン22a〜22dのデータ領域24a〜24dの該当領域より平文データを取得する。又、ステップS204で、秘密保護属性保持部25a〜25dの該当領域より暗号鍵を取得する。これらの平文データ及び暗号鍵はコードデータ暗号復号処理部30に転送される。
【0066】
(d)ステップS205では、コードデータ暗号復号処理部30が暗号鍵を用いて、平文データを暗号化する。ステップS206で、暗号化済みのデータは外部バスインタフェース50及びバス70を経由して記憶装置60に書き出される。
【0067】
上記によると、耐タンパマイクロプロセッサ100において演算処理され、変形されたデータは、秘密保護属性保持部の暗号鍵を用いて暗号化される。この為、悪意の第三者に盗聴、改竄されること無く、安全な状態で記憶装置に渡され、データを所望する装置、ネットワーク等に送信することができる。
【0068】
本発明の実施の形態に係る耐タンパマイクロプロセッサによると、キャッシュメモリに対するアクセスの際に鍵値テーブルが不要であるため、第1の問題点である、同時起動可能なプログラムの数に制限を与えることを回避することができる。
【0069】
1つのプログラムが終了したときにそのプログラムが使用していたキャッシュメモリは、そのプログラムが保持していた暗号鍵の値を知らない限り読み出すことができない。そのため、このキャッシュメモリの内容を残したまま他のプログラムを起動しても、その内容が他のプログラムに読み出される恐れはなく、キャッシュメモリを無効化するために全領域を走査しなくても良い。よって、第2の問題点である全領域走査時間を短縮し、ひいては、プログラムの実行速度を上げることができる。
【0070】
複数のプログラムが1つの暗号鍵を共有している場合、どのプログラムも前記共有された暗号鍵を用いてキャッシュメモリの内容を参照することができ、1つのプログラムが書き込んだ内容を別のプログラムが読み出すために、その内容をいったん暗号化しメインメモリ等の記憶装置に書き出す必要はない。この為、第3の問題点である、暗号化復号化によるプログラムの実行速度の低下を防ぐことができる。
【0071】
この耐タンパマイクロプロセッサを用いた手法によると、鍵値テーブルを用いる手法と異なり、鍵値テーブルを参照する機能や、プログラム終了時にキャッシュ領域を走査し無効化する機能は不要であり、第4の問題点であるハードウェアの複雑化を回避することができ、ひいては製作コストを下げることができる。
【0072】
【発明の効果】
本発明によると、同時起動可能なプログラムの数に制限を与えず、1つのプログラムが終了したときにそのプログラムが使用したキャッシュメモリの内容をキャッシュメモリの全領域を走査することなく他のプログラムから読み出し不可能とし、複数のプログラムが1つの暗号鍵を共有して共有メモリ領域を読み書きする際に、あるプログラムがキャッシュに書き込んだ内容を、それを暗号化して主メモリに書き出さずに他のプログラムから読み出すことができ、複雑なハードウェア機能が不要な耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法を提供することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係る耐タンパマイクロプロセッサの構成図である。
【図2】本発明の実施の形態に係る耐タンパマイクロプロセッサのキャッシュメモリのデータ構成を示す図である。
【図3】本発明の実施の形態に係る耐タンパマイクロプロセッサの実行コード及びデータの読み出しの手順を示すフローチャートである。
【図4】本発明の実施の形態に係る耐タンパマイクロプロセッサのデータの書き出しの手順を示すフローチャートである。
【図5】本発明の実施の形態に係る耐タンパマイクロプロセッサの実行コード及びデータ構造の概略を示す図である。
【図6】本発明の実施の形態に係る耐タンパマイクロプロセッサの実行コード及びデータの読み出しの実施例1を示すフロー図である。
【図7】本発明の実施の形態に係る耐タンパマイクロプロセッサの実行コード及びデータの読み出しの実施例2を示すフロー図である。
【図8】本発明の実施の形態に係る耐タンパマイクロプロセッサの実行コード及びデータの読み出しの実施例3を示すフロー図である。
【図9】本発明の実施の形態に係る耐タンパマイクロプロセッサの実行コード及びデータの読み出しの実施例4を示すフロー図である。
【符号の説明】
10…プロセッサコア
20…キャッシュメモリ制御部
21…キャッシュメモリ
22a〜22d…キャッシュライン
23a〜23d…タグ領域
24a〜24d…データ領域
25a〜25d…秘密保護属性保持部
26a〜26d…制御情報保持部
30…コードデータ暗号復号処理部
40…鍵値レジスタ
50…外部バスインタフェース
60…記憶装置
70…バス
100…耐タンパマイクロプロセッサ
Claims (8)
- 暗号化されたプログラムの実行コードの読み出し要求を処理するキャッシュメモリ制御手段と、
前記キャッシュメモリ制御手段からの復号化要求に基づき、前記実行コードを記憶装置より読み出し、所定の暗号鍵によって復号化する復号化手段と、
複数のキャッシュラインを有し、前記復号化手段にて復号化した前記実行コードを記憶するデータ領域と、前記実行コードの復号化に用いた暗号鍵を格納する秘密保護属性保持部とを、同一キャッシュライン上に有するキャッシュメモリと、
前記暗号化されたプログラムの実行毎に、復号化に使用する暗号鍵が更新されて記憶される鍵値レジスタと
を具備し、
前記キャッシュメモリ制御手段は、
前記実行コードの読み出し要求を処理する際に、前記キャッシュメモリ内に前記実行コードが存在するときは、前記鍵値レジスタに記憶されている実行中のプログラムの暗号鍵と前記キャッシュメモリ内の実行コードが格納されたキャッシュラインの前記秘密保護属性保持部に格納された暗号鍵とを比較することによって、前記キャッシュメモリ内の実行コードが前記所定の暗号鍵と同一の暗号鍵によって復号化された実行コードである否かを判断し、前記キャッシュメモリ内の実行コードが前記所定の暗号鍵と同一の暗号鍵によって復号化された実行コードであった場合には、前記復号化手段へ前記復号化要求を出す代わりに、前記キャッシュメモリ内の実行コードを使用するよう制御する
ことを特徴とする耐タンパマイクロプロセッサ。 - 暗号化されたプログラムのデータの読み出し要求を処理するキャッシュメモリ制御手段と、
前記キャッシュメモリ制御手段からの復号化要求に基づき、前記データを記憶装置より読み出し、所定の暗号鍵によって復号化する復号化手段と、
複数のキャッシュラインを有し、前記復号化手段にて復号化した前記データを記憶するデータ領域と、前記データの復号化に用いた暗号鍵を格納する秘密保護属性保持部とを、同一キャッシュライン上に有するキャッシュメモリと、
前記暗号化されたプログラムの実行毎に、復号化に使用する暗号鍵が更新されて記憶される鍵値レジスタと
を具備し、
前記キャッシュメモリ制御手段は、
前記データの読み出し要求を処理する際に、前記キャッシュメモリ内に前記データが存在するときは、前記鍵値レジスタに記憶されている実行中のプログラムの暗号鍵と前記キャッシュメモリ内のデータが格納されたキャッシュラインの前記秘密保護属性保持部に格納された暗号鍵とを比較することによって、前記キャッシュメモリ内のデータが前記所定の暗号鍵と同一の暗号鍵によって復号化されたデータである否かを判断し、前記キャッシュメモリ内のデータが前記所定の暗号鍵と同一の暗号鍵によって復号化されたデータであった場合には、前記復号化手段へ前記復号化要求を出す代わりに、前記キャッシュメモリ内のデータを使用するよう制御する
ことを特徴とする耐タンパマイクロプロセッサ。 - 前記キャッシュメモリ制御部は、前記秘密保護属性保持部内の暗号鍵を用いて前記データの処理結果を暗号化し、前記記憶装置に記憶させることを特徴とする請求項2に記載の耐タンパマイクロプロセッサ。
- 前記キャッシュメモリ制御部は、前記データの処理結果をキャッシュメモリに書き込む際、前記鍵値レジスタの暗号鍵を前記秘密保護属性保持部に格納することを特徴とする請求項2または3に記載の耐タンパマイクロプロセッサ。
- 暗号化されたプログラムの実行コードの読み出し要求を処理するステップと、
前記実行コードを記憶装置より読み出し、所定の暗号鍵によって復号化するステップと、
復号化された前記実行コードを、キャッシュメモリ内の複数のキャッシュラインにそれぞれ設けられたデータ領域の1つに記憶するステップと、
前記復号化に用いた暗号鍵を、キャッシュメモリ内の複数のキャッシュラインにそれぞれ設けられた秘密保護属性保持部のうち、前記実行コードが格納されたキャッシュラインに設けられた秘密保護属性保持部に格納するステップと、
前記暗号化されたプログラムの実行毎に、復号化に使用する暗号鍵を更新し、鍵値レジスタに記憶するステップと、
前記実行コードの読み出し要求を処理する際に、前記キャッシュメモリ内に前記実行コードが存在するときは、前記鍵値レジスタに記憶されている実行中のプログラムの暗号鍵と前記キャッシュメモリ内の実行コードが格納されたキャッシュラインの前記秘密保護属性保持部に格納された暗号鍵とを比較することによって、前記キャッシュメモリ内の実行コードが前記所定の暗号鍵と同一の暗号鍵によって復号化された実行コードである否かを判断し、前記キャッシュメモリ内の実行コードが前記所定の暗号鍵と同一の暗号鍵によって復号化された実行コードであった場合には、前記キャッシュメモリ内の実行コードを使用するよう制御するステップ
とを備えることを特徴とするキャッシュメモリ搭載プロセッサによるデータアクセス制御方法。 - 暗号化されたプログラムのデータの読み出し要求を処理するステップと、
前記データを記憶装置より読み出し、所定の暗号鍵によって復号化するステップと、
復号化された前記データを、キャッシュメモリ内の複数のキャッシュラインにそれぞれ設けられたデータ領域の1つに記憶するステップと、
前記復号化に用いた暗号鍵を、キャッシュメモリ内の複数のキャッシュラインにそれぞれ設けられた秘密保護属性保持部のうち、前記データが格納されたキャッシュラインに設けられた秘密保護属性保持部に格納するステップと、
前記暗号化されたプログラムの実行毎に、復号化に使用する暗号鍵を更新し、鍵値レジスタに記憶するステップと、
前記データの読み出し要求を処理する際に、前記キャッシュメモリ内に前記データが存在するときは、前記鍵値レジスタに記憶されている実行中のプログラムの暗号鍵と前記キャッシュメモリ内のデータが格納されたキャッシュラインの前記秘密保護属性保持部に格納された暗号鍵とを比較することによって、前記キャッシュメモリ内のデータが前記所定の暗号鍵と同一の暗号鍵によって復号化されたデータである否かを判断し、前記キャッシュメモリ内のデータが前記所定の暗号鍵と同一の暗号鍵によって復号化されたデータであった場合には、前記キャッシュメモリ内のデータを使用するよう制御するステップ
とを備えることを特徴とするキャッシュメモリ搭載プロセッサによるデータアクセス制御方法。 - 前記秘密保護属性保持部内の暗号鍵を用いて前記データの処理結果を暗号化し、前記記憶装置に記憶させるステップを含むことを特徴とする請求項6に記載のキャッシュメモリ搭載プロセッサによるデータアクセス制御方法。
- 前記データの処理結果をキャッシュメモリに書き込む際、前記鍵値レジスタの暗号鍵を前記秘密保護属性保持部に格納するステップを含むことを特徴とする請求項6または7に記載のキャッシュメモリ搭載プロセッサによるデータアクセス制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003012558A JP3880933B2 (ja) | 2003-01-21 | 2003-01-21 | 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法 |
US10/754,571 US7568112B2 (en) | 2003-01-21 | 2004-01-12 | Data access control method for tamper resistant microprocessor using cache memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003012558A JP3880933B2 (ja) | 2003-01-21 | 2003-01-21 | 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004228786A JP2004228786A (ja) | 2004-08-12 |
JP3880933B2 true JP3880933B2 (ja) | 2007-02-14 |
Family
ID=32709233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003012558A Expired - Fee Related JP3880933B2 (ja) | 2003-01-21 | 2003-01-21 | 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7568112B2 (ja) |
JP (1) | JP3880933B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9843440B2 (en) | 2014-10-20 | 2017-12-12 | Samsung Electronics Co., Ltd. | Encryptor/decryptor, electronic device including encryptor/decryptor, and method of operating encryptor/decryptor |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8438392B2 (en) | 2002-06-20 | 2013-05-07 | Krimmeni Technologies, Inc. | Method and system for control of code execution on a general purpose computing device and control of code execution in a recursive security protocol |
US7203844B1 (en) * | 2002-06-20 | 2007-04-10 | Oxford William V | Method and system for a recursive security protocol for digital copyright control |
JP4282472B2 (ja) * | 2003-12-26 | 2009-06-24 | 株式会社東芝 | マイクロプロセッサ |
JP4612461B2 (ja) * | 2004-06-24 | 2011-01-12 | 株式会社東芝 | マイクロプロセッサ |
JP4559794B2 (ja) * | 2004-06-24 | 2010-10-13 | 株式会社東芝 | マイクロプロセッサ |
JP4490192B2 (ja) * | 2004-07-02 | 2010-06-23 | 株式会社エヌ・ティ・ティ・ドコモ | マルチタスク実行システム |
JP4204522B2 (ja) * | 2004-07-07 | 2009-01-07 | 株式会社東芝 | マイクロプロセッサ |
JP2006203564A (ja) * | 2005-01-20 | 2006-08-03 | Nara Institute Of Science & Technology | マイクロプロセッサ、ノード端末、コンピュータシステム及びプログラム実行証明方法 |
JP4836504B2 (ja) * | 2005-06-30 | 2011-12-14 | 富士通株式会社 | Icチップ、ボード、情報処理装置及びコンピュータプログラム |
JP4795812B2 (ja) | 2006-02-22 | 2011-10-19 | 富士通セミコンダクター株式会社 | セキュアプロセッサ |
GB2449454B (en) * | 2007-05-22 | 2011-08-24 | Advanced Risc Mach Ltd | Control data modification within a cache memory |
JP2008299611A (ja) * | 2007-05-31 | 2008-12-11 | Toshiba Corp | メモリセキュリティ装置 |
US8738926B2 (en) * | 2008-01-10 | 2014-05-27 | Intel Mobile Communications GmbH | Data processing system, method for executing a cryptographic algorithm and method for preparing execution of a cryptographic algorithm |
US8726042B2 (en) * | 2008-02-29 | 2014-05-13 | Microsoft Corporation | Tamper resistant memory protection |
US8826037B2 (en) * | 2008-03-13 | 2014-09-02 | Cyberlink Corp. | Method for decrypting an encrypted instruction and system thereof |
JP5111191B2 (ja) * | 2008-03-27 | 2012-12-26 | ルネサスエレクトロニクス株式会社 | データ処理装置、画像符号化復号装置、データ処理システム及び画像処理装置 |
JP2012508938A (ja) * | 2008-11-14 | 2012-04-12 | インテル・コーポレーション | セキュアなアプリケーション実行方法および装置 |
JP5322620B2 (ja) | 2008-12-18 | 2013-10-23 | 株式会社東芝 | 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム |
JP2011181000A (ja) * | 2010-03-03 | 2011-09-15 | Toshiba Corp | コントローラ、半導体記憶装置および半導体記憶装置の制御方法 |
US8990582B2 (en) * | 2010-05-27 | 2015-03-24 | Cisco Technology, Inc. | Virtual machine memory compartmentalization in multi-core architectures |
US8812871B2 (en) * | 2010-05-27 | 2014-08-19 | Cisco Technology, Inc. | Method and apparatus for trusted execution in infrastructure as a service cloud environments |
JP5171907B2 (ja) * | 2010-09-13 | 2013-03-27 | 株式会社東芝 | 情報処理装置、情報処理プログラム |
WO2013012436A1 (en) | 2011-07-18 | 2013-01-24 | Hewlett-Packard Development Company, L.P. | Reset vectors for boot instructions |
US9575906B2 (en) * | 2012-03-20 | 2017-02-21 | Rubicon Labs, Inc. | Method and system for process working set isolation |
KR102218715B1 (ko) * | 2014-06-19 | 2021-02-23 | 삼성전자주식회사 | 채널별로 데이터를 보호할 수 있는 반도체 장치 |
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 |
JP6629999B2 (ja) * | 2016-04-12 | 2020-01-15 | ガードノックス・サイバー・テクノロジーズ・リミテッドGuardKnox Cyber Technologies Ltd. | セキュアロックダウンを実装するように構成された関連装置を有する特別にプログラムされたコンピューティングシステムおよびその使用方法 |
CN106991060B (zh) * | 2017-02-27 | 2020-04-14 | 华为技术有限公司 | 一种读cache的淘汰优化方法及装置 |
US10885213B2 (en) * | 2017-09-12 | 2021-01-05 | Sophos Limited | Secure firewall configurations |
US11868275B2 (en) | 2021-06-24 | 2024-01-09 | International Business Machines Corporation | Encrypted data processing design including local buffers |
US12008150B2 (en) * | 2021-06-24 | 2024-06-11 | International Business Machines Corporation | Encrypted data processing design including cleartext register files |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US4556176A (en) * | 1984-12-11 | 1985-12-03 | Owens-Corning Fiberglas Corporation | Roving winder controller |
US5224166A (en) * | 1992-08-11 | 1993-06-29 | International Business Machines Corporation | System for seamless processing of encrypted and non-encrypted data and instructions |
US5666411A (en) | 1994-01-13 | 1997-09-09 | Mccarty; Johnnie C. | System for computer software protection |
US5943421A (en) * | 1995-09-11 | 1999-08-24 | Norand Corporation | Processor having compression and encryption circuitry |
US5825878A (en) * | 1996-09-20 | 1998-10-20 | Vlsi Technology, Inc. | Secure memory management unit for microprocessor |
US6175924B1 (en) * | 1997-06-20 | 2001-01-16 | International Business Machines Corp. | Method and apparatus for protecting application data in secure storage areas |
US6523118B1 (en) * | 1998-06-29 | 2003-02-18 | Koninklijke Philips Electronics N.V. | Secure cache for instruction and data protection |
JP3866105B2 (ja) * | 1999-12-02 | 2007-01-10 | インフィネオン テクノロジーズ アクチエンゲゼルシャフト | 暗号化機能を備えるマイクロプロセッサ装置 |
US6993130B1 (en) * | 2000-02-04 | 2006-01-31 | Xtec, Incorporated | Methods and apparatus for mediametric data cryptoprocessing |
US7270193B2 (en) * | 2000-02-14 | 2007-09-18 | Kabushiki Kaisha Toshiba | Method and system for distributing programs using tamper resistant processor |
US6895506B1 (en) * | 2000-05-16 | 2005-05-17 | Loay Abu-Husein | Secure storage and execution of processor control programs by encryption and a program loader/decryption mechanism |
JP2002014872A (ja) * | 2000-06-29 | 2002-01-18 | Fujitsu Ltd | 暗号制御装置 |
JP4153653B2 (ja) * | 2000-10-31 | 2008-09-24 | 株式会社東芝 | マイクロプロセッサおよびデータ保護方法 |
JP4074057B2 (ja) * | 2000-12-28 | 2008-04-09 | 株式会社東芝 | 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法 |
JP4098478B2 (ja) * | 2001-01-31 | 2008-06-11 | 株式会社東芝 | マイクロプロセッサ |
US6981138B2 (en) * | 2001-03-26 | 2005-12-27 | Microsoft Corporation | Encrypted key cache |
US7360076B2 (en) * | 2001-06-13 | 2008-04-15 | Itt Manufacturing Enterprises, Inc. | Security association data cache and structure |
US6782477B2 (en) * | 2002-04-16 | 2004-08-24 | Song Computer Entertainment America Inc. | Method and system for using tamperproof hardware to provide copy protection and online security |
KR100476892B1 (ko) * | 2002-04-29 | 2005-03-17 | 삼성전자주식회사 | 데이터의 부정조작을 방지하는 방법 및 그것을 이용한데이터 처리 시스템 |
CN100354786C (zh) * | 2002-07-09 | 2007-12-12 | 富士通株式会社 | 开放型通用抗攻击cpu及其应用系统 |
US20040117639A1 (en) * | 2002-12-17 | 2004-06-17 | Mowery Keith R. | Secure driver |
US7392404B2 (en) * | 2002-12-20 | 2008-06-24 | Gemalto, Inc. | Enhancing data integrity and security in a processor-based system |
US7475257B2 (en) * | 2003-09-25 | 2009-01-06 | International Business Machines Corporation | System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data |
-
2003
- 2003-01-21 JP JP2003012558A patent/JP3880933B2/ja not_active Expired - Fee Related
-
2004
- 2004-01-12 US US10/754,571 patent/US7568112B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9843440B2 (en) | 2014-10-20 | 2017-12-12 | Samsung Electronics Co., Ltd. | Encryptor/decryptor, electronic device including encryptor/decryptor, and method of operating encryptor/decryptor |
Also Published As
Publication number | Publication date |
---|---|
US20040143748A1 (en) | 2004-07-22 |
US7568112B2 (en) | 2009-07-28 |
JP2004228786A (ja) | 2004-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3880933B2 (ja) | 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法 | |
US7136488B2 (en) | Microprocessor using asynchronous public key decryption processing | |
KR100375158B1 (ko) | 변조방지 마이크로프로세서 | |
US8190917B2 (en) | System and method for securely saving and restoring a context of a secure program loader | |
US7590869B2 (en) | On-chip multi-core type tamper resistant microprocessor | |
EP2062191B1 (en) | System and method for securely restoring a program context from a shared memory | |
JP4475894B2 (ja) | 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法 | |
JP4115759B2 (ja) | 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム | |
US8095802B2 (en) | System and method for securely saving a program context to a shared memory | |
US7603566B2 (en) | Authenticated process switching on a microprocessor | |
US11748493B2 (en) | Secure asset management system | |
JP4643702B2 (ja) | マイクロプロセッサ | |
JP2006293516A (ja) | バスアクセス制御装置 | |
JP4375980B2 (ja) | マルチタスク実行システム及びマルチタスク実行方法 | |
CN110598403B (zh) | 一种进程数据保护方法 | |
JP2023154825A (ja) | 分散情報処理システムおよび分散情報処理方法 | |
JP2008033457A (ja) | 暗号化ソフトウェアを処理する方法及び中央処理装置 | |
JP2004240719A (ja) | ソフトウェア実行制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040604 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060808 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060927 |
|
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: 20061024 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061108 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101117 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |