JP2002232417A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JP2002232417A
JP2002232417A JP2001024480A JP2001024480A JP2002232417A JP 2002232417 A JP2002232417 A JP 2002232417A JP 2001024480 A JP2001024480 A JP 2001024480A JP 2001024480 A JP2001024480 A JP 2001024480A JP 2002232417 A JP2002232417 A JP 2002232417A
Authority
JP
Japan
Prior art keywords
key
program
instruction
holding
identifier
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
Application number
JP2001024480A
Other languages
English (en)
Other versions
JP4098478B2 (ja
Inventor
Mikio Hashimoto
幹生 橋本
Kenji Shirakawa
健治 白川
Keiichi Teramoto
圭一 寺本
Kensaku Fujimoto
謙作 藤本
Satoru Ozaki
哲 尾崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2001024480A priority Critical patent/JP4098478B2/ja
Priority to EP02250667A priority patent/EP1229427A3/en
Priority to US10/059,217 priority patent/US7136488B2/en
Publication of JP2002232417A publication Critical patent/JP2002232417A/ja
Application granted granted Critical
Publication of JP4098478B2 publication Critical patent/JP4098478B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30156Special purpose encoding of instructions, e.g. Gray coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 リアルタイム処理性能を向上したプロセッサ
を提供すること。 【解決手段】 プロセッサ固有の秘密鍵に対する公開鍵
で暗号化した命令鍵を外部メモリから読み出す機能、読
み出した該鍵の秘密鍵での復号機能、プログラム識別子
対応に命令鍵を保持するテーブルへの鍵登録機能、登録
完了の命令実行部への通知機能、実行中プログラムの識
別子の保持機能と、外部メモリの所定のアドレスの内容
を第5機能にて指示されるテーブルに格納された鍵で復
号する機能、この機能で復号した命令と外部メモリから
の命令の実行機能、復号機能に命令鍵を復号させ該命令
にて指定されたプログラム識別子と命令鍵を対応させて
テーブルに登録しその完了を命令実行部に通知する処理
と、保持機能に該命令において指定されるプログラム識
別子を設定し該命令にて指定される外部メモリのアドレ
スにプログラム実行制御を移す処理を実行する機能を持
つ。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチタスクのプ
ログラム実行環境下で、実行コードや処理対象であるデ
ータの不正な改変を防止することのできるマイクロプロ
セッサ、これを用いたマルチタスク実行方法、およびマ
ルチレッド実行方法に関する。
【0002】
【従来の技術】オープンシステムが広く普及している。
オープンシステムでは、PCなどの一般ユーザ向けコン
ピュータのハードウェアやOSと呼ばれるシステムプロ
グラムの情報が開示されており、システムプログラムを
変更して望んだ改良を加えることができる。
【0003】このような環境で、アプリケーションプロ
グラムが扱う情報の著作権保護や、プログラム自体の著
作権保護を保証するには、システムのOSがアプリケー
ションに対して敵対的動作をとることを前提としたハー
ドウェアが必要となる。このようなハードウェア、特に
マイクロプロセッサの提案が行われている(橋本他、特
願2000−35398,Lie他,“Archite
ctural Support for Copy a
nd Tamper Resistant Softw
are”;Computer Architectur
e News28(5):p168−)。このようなマ
イクロプロセッサは、マルチタスク環境でプログラムと
それが扱う情報の覗き見、改変から守るためにそれら情
報を暗号化する機能を備えている。以下、このようなマ
イクロプロセッサを耐タンパマイクロプロセッサと呼
ぶ。
【0004】アプリケーションプログラムを構成する3
要素(プログラム、コンテキスト、データ)を、プロセ
ッサ外部において暗号化して保護する機構については橋
本らによる文献で開示されている。この従来例において
は、外部メモリ上で暗号化された3要素の情報が、プロ
セッサ内部のキャッシュメモリおよびプロセッサレジス
タでは、復号化された状態で処理される。
【0005】情報を厳密に守るためには、プログラムA
が動作することによってプロセッサ内部に読み込まれ、
平文状態で保持される情報が、OSや別のプログラムB
によって読み出されることを防ぐ機構が必要となる。
【0006】このとき、第1の前提は、プログラムの識
別は、プログラムの命令が暗号化された暗号鍵によって
識別されることである。例えば、あるプログラムAがK
aという鍵で暗号化されているとき、平文のプログラム
Bや別の暗号鍵Kcで暗号化されたプログラムCから
は、プログラムAの情報3要素(プログラム、コンテキ
スト、データ)を読み出すことはできないことが、耐タ
ンパマイクロプロセッサに対する基本的な要求条件であ
る。プログラムAについては、プログラム提供者のみが
知るその暗号鍵Kaによって暗号化したプログラムを配
布し、Kaを秘密としておくことで、他のプログラム作
成者のプログラムと、プログラムAとを区別することが
できる。以下、プログラムAの命令の暗号鍵Kaを、プ
ログラムAの「命令鍵」と呼ぶこととする。
【0007】この要求条件を実現する機構として、従来
から存在するプロセッサのタグメモリによるアクセス制
御機構を利用することが効率的である。これは白川らに
よる特願2000−333635に開示されている。
【0008】だが、従来のシステムでは、タグの管理は
OSに委ねられていた。ところが、耐タンパプロセッサ
のシステムでは、タグの管理はユーザによる改変操作が
可能なソフトウェアのOSではなく、プロセッサ内部に
あらかじめ組み込まれていてユーザによる改変が困難な
ハードウェアまたはソフトウェアの機構によって行われ
る必要がある。
【0009】このような機構はプロセッサ内部に組み込
まれるため、できる限り単純にすることでプロセッサを
安価にし、できる限り処理を単純にしてタグ管理による
オーバヘッドを小さくすることが望ましい。また、有限
の資源であるタグを再利用するために必要となる、鍵値
の書換え操作の前後に置いても前記の要求条件に参照し
て違反や矛盾が生じることなくタグ管理が行われなけれ
ばならない。
【0010】また、オーバヘッドについてはシステム全
体の処理速度の観点と、プロセスの起動または切り替え
時の応答時間の観点とがある。この両者を小さくするこ
とも求められる。さらに、従来例では命令を復号化する
鍵を取得するための公開鍵復号化処理と、取得した鍵を
使用してのプログラム復号化と実行がひとつの命令で実
行されていた。一般のプロセッサでは命令の実行中に例
外をうけつけることはできない。例えば、1024ビッ
トの公開鍵復号化処理は、現時点で最も高速なハードウ
ェアでも1msec以上の時間を必要とする。これは現
在の一般的なリアルタイム処理の応答性能の要求である
数十μsecと比較して非常に長く、システムのリアル
タイム応答性能を低下させる原因となる。
【0011】
【発明が解決しようとする課題】本発明は、上記事情を
考慮してなされたもので、キャッシュメモリ管理手順に
おいて、初期登録における公開鍵処理時間による応答不
感時間を短縮して、リアルタイム処理性能を向上させる
ことのできるマイクロプロセッサを提供することを目的
とする。
【0012】また、本発明は、キャッシュメモリのアク
セス制御に使われるタグの安全な管理を可能にしたマイ
クロプロセッサを提供することを目的とする。
【0013】また、本発明は、連鎖によってプログラム
の暗号鍵を推定されにくくすると同時に効率的な命令実
行を実現するプログラム復号化手段を持つマイクロプロ
セッサを提供することを目的とする。
【0014】また、本発明は、複数のプロセスが同一の
暗号鍵によって暗号化されているデータを共有をすると
きの処理効率を向上させることのできるマイクロプロセ
ッサを提供することを目的とする。
【0015】また、本発明は、安全なプログラム利用の
利便性と秘密の安全性という、相反する要素を、プログ
ラム提供者の意志にしたがって実現するコンテキスト保
存手段を持つマイクロプロセッサを提供することを目的
とする。
【0016】
【課題を解決するための手段】本発明は、外部へ読み出
すことのできない固有の秘密鍵を内部に保持した1チッ
プまたは1パッケージのマイクロプロセッサであって、
あらかじめ前記秘密鍵に対応する公開鍵によって暗号化
された命令鍵をマイクロプロセッサ外部の記憶手段から
読み出す第1の読み出し手段と、前記第1の読み出し手
段で読み出した前記命令鍵を、前記秘密鍵を用いて復号
化する第1の復号化手段と、プログラムを識別するプロ
グラム識別子対応に、プログラムを復号化する命令鍵を
保持するテーブルと、前記テーブルに前記プログラム識
別子対応に命令鍵を登録する登録手段と、登録の完了を
命令実行部に通知する通知手段と、実行中のプログラム
のプログラム識別子を保持するプログラム識別子保持手
段と、外部の記憶手段の所定のアドレスの内容を前記プ
ログラム識別子保持手段によって指示される前記テーブ
ルに格納された命令鍵によって復号化する第2の復号化
手段と、外部の記憶手段から読み込んだ命令および前記
第2の復号化手段により復号化された命令を実行する命
令実行手段と、前記第1の復号化手段に命令鍵を復号化
させるステップと、該命令において指定されたプログラ
ム識別子と前記命令鍵とを対応づけて前記テーブルに登
録するステップと、登録の完了を命令実行部に通知する
ステップとを実行する第1の命令実行手段と、前記プロ
グラム識別子保持手段に、該命令において指定されるプ
ログラム識別子を設定するステップと、該命令において
指定される外部の記憶手段のアドレスにプログラム実行
制御を移すステップとを実行する第2の命令実行手段と
を備えたことを特徴とする。
【0017】本発明は、外部へ読み出すことのできない
固有の秘密鍵を内部に保持した1チップまたは1パッケ
ージのマイクロプロセッサであって、あらかじめ前記秘
密鍵に対応する公開鍵によって暗号化された実行コード
暗号化鍵をマイクロプロセッサ外部の記憶手段から読み
出す第1の読み出し手段と、前記第1の読み出し手段で
読み出した前記実行コード暗号化鍵を、前記秘密鍵を用
いて復号化する第1の復号化手段と、前記復号化された
命令鍵を、プログラム識別子に対応づけて保持する第1
のテーブルと、前記テーブルに前記プログラム識別子対
応に命令鍵を登録する登録手段と、実行中のプログラム
のプログラム識別子を保持するプログラム識別子保持手
段と、前記プログラム識別子をプログラム読出し要求に
付随して出力するプログラム実行手段と、記プログラム
読出し要求に付随する前記プログラム識別子によって該
キャッシュラインの暗号鍵が選択され、復号化が行われ
る第2の復号化手段と、前記第2の復号化手段の復号化
結果と前記読出し要求に付随するプログラム識別子と対
応付けてキャッシュライン毎に保持する手段と、前記キ
ャッシュメモリのキャッシュラインに保持されるプログ
ラム識別子とプログラム実行手段から出力されるプログ
ラム読出し要求のプログラム識別子とが一致したときの
み読出しを許可するキャッシュメモリと、前記登録手段
が第1のテーブルの第1のプログラム識別子に対応する
命令鍵を書き換えるとき、前記第1のプログラム識別子
を保持する前記キャッシュメモリ上のキャッシュライン
をフラッシュする鍵管理手段とを備えたことを特徴とす
る。
【0018】本発明は、外部へ読み出すことのできない
固有の秘密鍵を内部に保持した1チップまたは1パッケ
ージのマイクロプロセッサであって、あらかじめ前記秘
密鍵に対応する公開鍵によって暗号化された命令鍵をマ
イクロプロセッサ外部の記憶手段から読み出す第1の読
み出し手段と、前記第1の読み出し手段で読み出した前
記命令鍵を、前記秘密鍵を用いて復号化する第1の復号
化手段と、外部の記憶手段におかれている、暗号単位間
の連鎖の有無を定義する連鎖情報を読み込む連鎖情報取
得手段と、プログラムを識別するプログラム識別子対応
に、前記復号化された命令鍵を保持するテーブルと、前
記連鎖情報取得手段が読み込んだ連鎖情報に基づいて、
外部の記憶手段の所定のアドレスにおかれた複数の暗号
単位を前記命令鍵によって復号化する第2の復号化手段
とを備えたことを特徴とする。
【0019】本発明は、外部へ読み出すことのできない
固有の秘密鍵を内部に保持した1チップまたは1パッケ
ージのマイクロプロセッサであって、あらかじめ前記秘
密鍵に対応する公開鍵によって暗号化された命令鍵をマ
イクロプロセッサ外部の記憶手段から読み出す第1の読
み出し手段と、前記第1の読み出し手段で読み出した前
記命令鍵を、前記秘密鍵を用いて復号化する第1の復号
化手段と、実行中のプログラムのプログラム識別子を保
持するプログラム識別子保持手段と、登録される鍵の値
についてテーブル内での一意性を保証する鍵登録機構を
持つ、復号鍵を保持する第1のテーブルと、プログラム
識別子によって参照され、前記第1のテーブルへの参照
を保持する第2のテーブルと、キャッシュメモリ参照に
おいて、前記プログラム識別子に基づいて前記第2のテ
ーブルを参照し、前記第1のテーブルへの参照に変換を
行い、前記第1のテーブルへの参照情報をキャッシュタ
グとするタグ変換手段と、キャッシュメモリと、キャッ
シュメモリと外部メモリとのデータ読み書きにおいて、
キャッシュメモリから提示されたタグ値に基づいて、前
記第1のテーブルから対応する前記復号鍵を取得し、デ
ータの暗号化もしくは復号化を行う暗号手段とを備えた
ことを特徴とする。
【0020】本発明は、外部へ読み出すことのできない
固有の第1の秘密鍵および第2の秘密鍵を内部に保持し
た1チップまたは1パッケージのマイクロプロセッサで
あって、あらかじめ前記第1の秘密鍵に対応する公開鍵
によって一体として暗号化された命令鍵および永続化許
可フラグをマイクロプロセッサ外部の記憶手段から読み
出す第1の読み出し手段と、前記第1の読み出し手段で
読み出した前記命令鍵および永続化許可フラグを、前記
秘密鍵を用いて復号化する第1の復号化手段と、プログ
ラムを識別するプログラム識別子対応に、前記命令鍵お
よび前記永続化許可フラグおよび共通鍵を保持するテー
ブルと、実行中のプログラムのプログラム識別子を保持
するプログラム識別子保持手段と、前記プログラム識別
子対応に、プログラムの実行中断時のレジスタ値を前記
共通鍵で暗号化してレジスタ情報として外部の記憶手段
に保存するレジスタ値保存手段と、前記プログラム識別
子対応に、保存された前記レジスタ情報を前記共通鍵に
より復号化してレジスタに読み込むコンテキスト復帰手
段と、該命令において指定されるプログラム識別子に対
応する前記永続化許可フラグの値が所定の値をとる場合
のみ、前記プログラム識別子に対応する前記共通鍵を前
記プロセッサの第2の秘密鍵により暗号化して外部の記
憶手段に書き出すステップを実行する所定の命令実行手
段とを備えたことを特徴とする。
【0021】本発明は、外部へ読み出すことのできない
固有の第1の秘密鍵を内部に保持した1チップまたは1
パッケージのマイクロプロセッサであって、あらかじめ
前記秘密鍵に対応する公開鍵によって一体として暗号化
された命令鍵およびフィードバック鍵をマイクロプロセ
ッサ外部の記憶手段から読み出す第1の読み出し手段
と、前記第1の読み出し手段で読み出した前記命令鍵お
よびフィードバック鍵を、前記秘密鍵を用いて復号化す
る第1の復号化手段と、ログラムを識別する識別子対応
に、前記命令鍵およびフィードバック鍵を保持するテー
ブルと、実行中のプログラムのプログラム識別子を保持
するプログラム識別子保持手段と、前記プログラム識別
子対応に、プログラム実行中断時のレジスタ値を前記共
通鍵で暗号化してレジスタ情報として外部の記憶手段に
保存するレジスタ値保存手段と、該命令において指定さ
れる所定のプログラム識別子に対応する前記共通鍵を前
記フィードバック鍵により暗号化して外部の記憶手段に
書き出すステップを実行する所定の命令実行手段とを備
えたことを特徴とする。
【0022】なお、装置に係る本発明は方法に係る発明
としても成立し、方法に係る本発明は装置に係る発明と
しても成立する。また、装置または方法に係る本発明
は、コンピュータに当該発明に相当する手順を実行させ
るための(あるいはコンピュータを当該発明に相当する
手段として機能させるための、あるいはコンピュータに
当該発明に相当する機能を実現させるための)プログラ
ムとしても成立し、該プログラムを記録したコンピュー
タ読取り可能な記録媒体としても成立する。
【0023】
【発明の実施の形態】以下、図面を参照しながら発明の
実施の形態を説明する。
【0024】(第1の実施形態)第1の実施形態では、
プロセッサ内部において平文状態で格納される情報のア
クセス制御のための鍵情報(実効鍵識別子)の安全かつ
効率的な管理方法について説明する。本実施形態では、
鍵情報管理機能はハードウェアによる実装として説明し
ているが、ユーザによる改変が不可能であるという前提
が保証されれば、鍵管理機能がプロセッサ内蔵ROMに
格納されたファームウェアによる実装であってもよい。
【0025】はじめに本実施形態における用語を定義す
る。
【0026】「暗号化」は、対称(共通)鍵アルゴリズ
ム、非対称(公開)鍵アルゴリズムの両方を含めて、平
文の情報を暗号化することを意味する。
【0027】同様に、「復号化」は、対称(共通)鍵ア
ルゴリズム、非対称(公開)鍵アルゴリズムの両方を含
めて、暗号化された情報を復号化して平文に戻すことを
意味する。
【0028】「暗号鍵」は、上記暗号化、復号化で使わ
れる鍵を暗号化、復号化の両方の場合を含んで用いる。
【0029】「共通鍵」は、共通鍵アルゴリズムで暗号
化、復号化に共通に使われる鍵を意味する。
【0030】「暗号化鍵」は、公開鍵アルゴリズムで暗
号化に使われる鍵を意味する。
【0031】「復号化鍵」は、公開鍵アルゴリズムで復
号化に使われる鍵を意味する。
【0032】本実施形態のマイクロプロセッサは、外部
から読み出し不能な復号化鍵(秘密鍵以下、Ksと表
記)を備える。プロセッサの秘密鍵Ksに対応する暗号
化鍵(公開鍵:以下、Kpと表記する)は公開されてい
る。
【0033】「暗号化プログラム」は、命令が、あるひ
とつの共通鍵(ここでは、Kxと表記)によって暗号化
されたプログラムを意味する。
【0034】あるプログラム作成者が暗号化プログラム
を作成するとき、プログラムを暗号化する適切な共通鍵
Kxを選び、プログラムの命令を暗号化する(ただし、
必ずしもプログラムの全体が暗号化されている必要はな
い)。
【0035】本実施形態のプロセッサにおいて、プログ
ラムの同一性はこの共通鍵Kxによって判定される。こ
の共通鍵Kxを、その暗号化プログラムの命令鍵と呼
ぶ。
【0036】そして、ターゲットのプロセッサの公開鍵
Kpで命令鍵Kxを暗号化した値(E_Kp[Kx]と
表記)を、配布鍵と呼ぶ。プログラム作成者は、命令鍵
で暗号化されたプログラム本体と、配布鍵をターゲット
のシステムに配布する。
【0037】また、コンテキスト情報の暗号処理に使わ
れる暗号鍵をコンテキスト鍵、データの暗号処理に使わ
れる暗号鍵をデータ鍵と呼ぶ。
【0038】キャッシュメモリとメインメモリとの間で
の情報の復号化・暗号化では、命令、データ、コンテキ
ストで何種類もの暗号鍵が使われる。ある特定のキャッ
シュラインの暗号処理に使われる共通鍵を実効鍵と呼
ぶ。
【0039】本実施形態での暗号アルゴリズムの扱いで
は、対称(共通)鍵アルゴリズム、非対称(公開)鍵ア
ルゴリズムの区別は重要だが、対称(共通)鍵アルゴリ
ズム、非対称(公開)鍵アルゴリズムの中での方式、例
えば、DES,Riandal,RSA,Elgama
lなどの暗号方式の違いは重要ではない。したがって、
対称(共通)鍵アルゴリズムではDES,Rianda
lなどが、非対称(公開)鍵アルゴリズムではRSA,
Elgamalなどのいずれを用いてもよい。
【0040】プログラムは、命令と静的データで構成さ
れる。暗号化プログラムでは、命令は暗号化されている
が、静的データは暗号化されていても平文でもどちらで
もよい。
【0041】プロセスとは、プログラムがターゲットシ
ステムのOSの管理のマルチタスク環境下で、実行中
の、または実行を中断されている状態をあらわす。プロ
セスは、命令、実行状態、データからなる。データには
静的データと動的データとがある。プロセスの実行は、
プログラムの命令が(暗号化プログラムの場合は復号化
されて)プロセッサに読み込まれ、実行されることで行
われる。プロセスの実行は、割り込みなどの原因で中断
されることがある。OSはそのときプロセスがプロセッ
サ内部に保持する状態、一般にはレジスタ情報を実行状
態(コンテキスト情報とも呼ばれる)としてプロセッサ
外部のメモリに保存する。割り込みサービスや別のプロ
グラムを実行した後、プロセスの実行を再開するときは
メモリに保存した実行状態を再度プロセッサ内部に読み
込んで実行を再開する。
【0042】ひとつのプログラムから複数のプロセスが
作られ、同時に実行されることがある。暗号化プログラ
ムの場合、これらの共通の起源をもつプロセスの間で復
化された命令を共有することが可能である。
【0043】また、本発明ではキャッシュメモリ上にお
けるプロセスの秘密情報のアクセス制御をキャッシュタ
グによって行っているが、このアクセス制御機構と、従
来から存在する仮想記憶機構におけるプロセスのアクセ
ス制御機構(UNIX(登録商標)カーネル)とは併用
が可能である。本発明が新たに導入する前者の機構は、
アプリケーションプログラムの作成者が意図する秘密保
護が正しくプロセッサ上で実現されることを保証する機
構である。具体的にはプログラム1の命令が、他のプロ
グラムから読み取られることなどを防ぐものである。
【0044】一方、後者はターゲットシステムのOSの
システム管理意図を正しく実現するために用いられる。
具体的には、あるプロセス1のメモリアクセスを、他の
プロセスから隔離し、互いの動作の干渉を防ぐなどを目
的とする。
【0045】以下ではこの2種類の機構をそれぞれプロ
セスの暗号化属性保護、記憶領域保護と呼ぶこととす
る。本実施形態では、これらの機構はともにキャッシュ
メモリ上のタグと呼ばれる属性を利用して効率的に実装
される。後述のように、タグについては暗号化属性保
護、記憶領域保護の領域が設けられている。この両者を
区別するとき、暗号化属性(保護)タグ、記憶領域(保
護)タグと呼ぶこととする。あるキャッシュデータが暗
号処理をうける際の暗号鍵は暗号化属性タグによって決
定される。このときの暗号鍵を暗号化属性タグに対する
実効鍵と呼ぶ。
【0046】なお、第1の実施形態においては、プロセ
ッサの鍵管理機構を説明するため、暗号化された命令の
実行のみを説明する。アプリケーションプログラムの残
りの要素である実効状態やデータの暗号化は第2の実施
形態以降で説明する。
【0047】(プログラミングモデル)はじめに本実施
形態のプロセッサにおいて、暗号化プログラムの命令の
実行手順をおおまかに説明し、その後、プログラムの秘
密を守るプロセッサ内部の機構について詳細に説明す
る。
【0048】図1に、本実施形態に係るマイクロプロセ
ッサの全体構成例を示す。
【0049】図1において、101はプロセッサ全体
を、102は内部データバスを、103は外部バスイン
タフェースをそれぞれ表す。外部バスインタフェース1
03は、外部メモリ(図示せず)との間でデータをやり
取りする。なお、図1ではアドレスバスは省略されてい
るが、実際にはアドレスバスがある。201はプロセッ
サコアであり、命令キャッシュ301、データキャッシ
ュ401、鍵管理部701に接続されている。
【0050】第1の実施形態では、命令のみが暗号化さ
れており、データの暗号化を行わないので、命令復号化
機能501は命令キャッシュ対応のみ設けられている。
プロセッサコア201からは、アドレスとその他の属性
からなるキャッシュタグが出力され、タグが一致する
と、プロセッサコア201に命令が出力される。
【0051】[平文プログラムの実行]本実施形態のプ
ロセッサは、メインメモリにおかれた、平文の命令と暗
号化された命令が混在したプログラムを実行可能であ
る。
【0052】図2で1001はメモリ空間全体を表す。
プログラムはメインメモリ上の1002〜1004の領
域に置かれる。1002,1004は平文の領域であ
り、1003は暗号化された領域である。領域1005
は1003を復号化するための鍵情報が格納されてい
る。
【0053】[暗号化済み命令の実行]次に、暗号化さ
れた命令(以下、暗号化済み命令と呼ぶ)を実行する場
合を説明する。本実施形態のプロセッサには、平文命令
の実行と暗号化済み命令の実行の2つの状態があり、こ
の状態を制御する2種類の命令が備えられている。ひと
つは平文命令の実行から暗号化済み命令の実行に移行す
る暗号実行開始命令であり、もうひとつはその逆の平文
復帰命令である。これら2つに加えて命令鍵を登録する
ための鍵登録命令がある。
【0054】[鍵登録命令]鍵登録命令は、次のニーモ
ニックsetkeyで表記され、ふたつのオペランドを
とる。 setkey Ra, Rb Raは任意のレジスタであり、プログラムの配布鍵のア
ドレスが格納されていることを前提とする。Rbはプロ
セス識別子を指定する。
【0055】OSは暗号化プログラムを実行する前の準
備としてそのプログラムの配布鍵アドレスをパラメータ
としてsetkey命令を発行する。setkey命令
を実行したプロセッサは配布鍵を読み取り、それをプロ
セッサ固有の秘密鍵によって復号化して命令鍵を取り出
し、プロセッサ内部に登録する。
【0056】次に、登録の内部動作を説明する。
【0057】図3に鍵管理部の構成例を示し、図4に鍵
登録処理の手順例を示す。
【0058】[鍵テーブルの初期化と登録、割り込みに
よる通知]setkey命令が実行されると、配布鍵の
アドレスとプロセス識別子が鍵管理部701の状態管理
機能702に送られる(S1101)。setkey命
令の実行はこれで完了し、続く命令が実行されるが、登
録作業は鍵管理部701によって並行して行われ、登録
が完了するとプロセッサコアへ割り込み要求として通知
される。
【0059】鍵管理部701での登録作業は大きく2つ
に分けられる。ひとつは命令鍵の鍵テーブルへの登録で
あり、もうひとつは命令キャッシュに存在する、新たに
登録されるプロセス識別子(#nとする)の暗号化属性
タグを持つキャッシュラインを無効化することである。
【0060】前者については、状態管理機能702がプ
ロセッサコア201から受け取った配布鍵のアドレスを
配布鍵読み出し機能703に送り、内部バス102を通
じて外部メモリから配布鍵を読み込み、実効鍵復号化機
能705へと送る(S1102)。実効鍵復号化機能7
05はプロセッサ固有の秘密鍵704によって配布鍵を
復号化して実効鍵を得る。この復号化は公開鍵アルゴリ
ズムの復号化のため、複数命令サイクルの非常に長いク
ロック数を必要とする。復号の結果得られた実効鍵は、
実効鍵テーブル706のプロセス識別子で指定されたエ
ントリに格納される。この作業が終了すると状態管理機
能702に完了が通知される。
【0061】この作業と並行して、状態管理機能702
は、命令キャッシュ301にプロセス識別子#nの属性
を持つキャッシュエントリを無効化する(S110
2)。無効化が完了すると同様に状態管理機能702に
通知される。
【0062】状態管理機能702は、このふたつの作業
の両方の完了を確認して(S1103)、実効鍵テーブ
ルの対応するエントリの鍵値を古い値からステップS1
102での復号化の結果得られた値に書き換える。
【0063】702−1は、プロセス状態管理テーブル
であり、プロセス対応に鍵登録の状態(書き換え中また
は登録済み)を保持するものであり、上記鍵操作の間、
操作中のプロセスに対応するエントリの値は書き換え中
となり、操作が完了すると登録済みとなる。この値は、
プロセッサコアからの読み出し要求によって随時読み出
される。
【0064】(キャッシュ無効化の効果)あるプロセス
識別子に対して、以前に登録されていたものとは異なる
別の実効鍵Knを登録して、命令を実行するとき、命令
キャッシュに以前に登録されていた実効鍵Koによって
復号化されたキャッシュラインが存在していると、新た
に実効鍵を登録した暗号化プログラムは、本来はプログ
ラムが実行できるはずのない別の暗号化プログラムの命
令を実行できることになり、暗号化プログラムの秘密が
保護されないことになる。本発明では、鍵登録において
登録する実行鍵の属性を持つキャッシュラインの無効化
を行うことにより、暗号化プログラムの秘密保護を厳密
に保証できる。
【0065】また、鍵登録を構成する公開鍵の復号化処
理と、キャッシュラインの無効化という、1命令サイク
ルで完了しない作業に対して、その実行を1命令で行わ
ずに登録の完了を非同期的に割り込みで通知することに
より、登録作業中に他のプログラムを実行したり、別の
割り込み要求に応えることを可能として、システムの性
能と応答性能を高める効果がある。
【0066】この2つの作業が完了すると(S110
3)、状態管理機能702は、プロセッサコアに鍵登録
の完了を割り込みによって通知する。鍵登録状態を取得
する命令をもうけ、OSがポーリングによって鍵登録状
態を取得してもよい。OSは鍵登録完了割り込みの通知
を受けると、暗号化プログラムの実行を開始する(S1
105)。
【0067】[暗号実行開始命令]暗号実行開始命令
は、次のニーモニックstrtencで表記され、ふた
つのオペランドをとる。 strtenc Ra, Rb Raはレジスタを表し、制御を移す暗号化命令の先頭を
示すアドレスが、Rbは先に登録した実行鍵の識別子が
OSによってそれぞれ格納されていることを前提とす
る。この場合、Raには暗号化命令列の先頭アドレスs
tart(図2中、1008)が格納され、Rbには#
nが指定されている。
【0068】この他に制御レジスタとして、後述の暗号
連鎖ベクトルの格納アドレスと暗号連鎖の先頭オフセッ
トアドレスを格納するレジスタが存在する。暗号連鎖ベ
クトルレジスタにはchainaddr(図2中、10
10)が、暗号連鎖オフセットレジスタにはstart
(図2中、1008)が設定されている。
【0069】strtenc命令が実行されると、実行
鍵識別子#nが実行鍵識別子格納レジスタ202に読み
込まれ、アドレスstartから暗号化プログラムの実
行が始まる。
【0070】[命令の復号化と連鎖]命令の復号化と連
鎖の処理について説明する。
【0071】図5に、命令復号化処理部501の構成例
を示す。
【0072】プロセッサコア201は、命令を読み込む
ため、アドレスstartと記憶領域タグ、暗号化属性
タグからなる属性情報を、命令キャッシュ301に送
る。キャッシュがヒットしない場合、アドレス情報が命
令復号化処理部501に送られ、外部メモリから暗号化
プログラムを読み出し、復号化してキャッシュに読み込
む。
【0073】アドレス情報処理部502は、命令キャッ
シュ301からアドレス情報を受け取る。メモリアドレ
スは外部バスインタフェース103に送られ、対応する
データが外部メモリから読み出される。一方、暗号化属
性タグは鍵管理部701に送られる。その結果として、
実効鍵値が鍵管理部701から復号化機能503に送ら
れ、復号化された平文データがバッファ504に格納さ
れる。
【0074】ここで、連鎖ベクトルについて説明する。
【0075】連鎖ベクトルは、暗号ブロックであるキャ
ッシュラインごとに、暗号化に連鎖を使っているかどう
か0/1の1ビット値のつらなりからなるベクトルであ
り、プロセッサの連鎖ベクトルアドレス格納レジスタで
指定された場所に置かれる。先頭のビットは連鎖ベース
アドレスレジスタで指定されたキャッシュラインに対応
する。あるキャッシュラインに対応するビットが1の場
合、そのキャッシュラインがひとつ前のキャッシュライ
ンとの間に連鎖の関係を持っていることを表す。
【0076】プログラムの先頭は連鎖を取れないので、
先頭のビットは必ず0となる。プログラムが先頭から順
次実行されていく場合、命令復号化処理部501(連鎖
計算機能505)では順次連鎖が計算され、復号化が行
える。
【0077】だが、プログラムには分岐やエントリポイ
ントがある。プログラムのエントリポイントや、大域的
な分岐点も0とすることが望ましい。もしあるプログラ
ムの先頭を除いて全ての連鎖属性が1となっていた場
合、プログラムの最後に対応する部分への分岐を行っ
て、そのキャッシュラインを復号化するには、プログラ
ムの先頭からの連鎖を全て計算しなければならないこと
になり、大きなオーバヘッドとなってしまう。
【0078】暗号化プログラムのキャッシュメモリへの
読み込みが、連鎖の途中から開始された場合、復号化処
理機能では、連鎖属性が0となるまで前のキャッシュラ
インを読み込み、順次連鎖の値のみを計算して、読み込
んだデータは捨て、最終的に目的のキャッシュラインを
復号化して命令キャッシュへと送る。
【0079】本実施形態では、連鎖ベクトルとそれに対
応する復号化処理機能を設けたことにより、連鎖による
暗号強度の向上と、分岐における処理の効率化の両方を
達成している。
【0080】[命令キャッシュへの読み込み]復号化さ
れたキャッシュラインが命令キャッシュのあるエントリ
に格納されると、そのタグ領域に実効鍵識別子を含むタ
グ情報が書き込まれる。もしキャッシュがフラッシュさ
れないうちにそのプロセスが再度同じアドレスをアクセ
スすれば、キャッシュがヒットしてキャッシュ上にある
平文データが読み出される。
【0081】[鍵属性不一致の場合の処理]さて、本実
施形態では、キャッシュタグのアドレスが要求したアド
レスと一致しても、実行中のプログラムのプロセス識別
子と、キャッシュタグの実効鍵識別子が異なる場合はキ
ャッシュヒットとはみなさない。代わりに、現在有効な
実効鍵で復号化されたキャッシュラインが新たに読み込
まれ、実行される。
【0082】ここでは、命令キャッシュを対象としてい
るので、書き込みは行われないが、第2の実施形態以降
での、データキャッシュで同様の不一致が起こった場
合、もしそのキャッシュラインに書き込みが行われてd
irty flagがセットされていれば、一度キャッ
シュをフラッシュして、メインメモリにデータが(最初
に読み込まれたときの共通鍵で暗号化されて)外部メモ
リに書き戻され、再び現在有効な共通鍵で復号化されて
読み込まれる。
【0083】このように、キャッシュアクセスで暗号化
属性が一致しないには、現在有効な暗号化属性で再度外
部メモリからその命令またはデータを読み出す処理を行
い、例外は発生させない。この動作は、実行中のプログ
ラムから見れば、そのキャッシュラインが読み込まれて
いない場合と、まったく同一である。もしそのキャッシ
ュラインが読み込まれていなければ、外部メモリから、
現在有効な暗号化属性によって復号化された命令が読み
込まれるからである(それは必ずしも正しく実行される
保証はない)。
【0084】[平文その他]なお、命令鍵識別子が0は
平文プログラムの実行に使われる。復号化処理機能か
ら、命令鍵識別子0の復号化鍵値の要求があると、鍵管
理部701は、予め定められた復号化をしないことを示
す値を返す。
【0085】また、ある実行鍵識別子#xに対する鍵登
録処理が行われている間、プロセッサコアから命令キャ
ッシュのタグ#xを持つキャッシュエントリのアクセス
は禁止される。
【0086】(第2の実施形態)第1の実施形態ではシ
ステムの応答性を改善する非同期的な鍵登録処理と、命
令のみの暗号化について効率的かつ安全な鍵管理方法を
中心に説明した。第2の実施形態では、命令に加えてコ
ンテキストとデータの効率的かつ安全な暗号鍵管理方式
を説明する。本実施形態では、第1の実施形態と相違す
る点を中心にして説明する。
【0087】図6に、本実施形態に係るマイクロプロセ
ッサの全体構成例を示す。第1の実施形態の場合に対し
て、データ暗号化・復号化処理部601が追加されてい
る。また、プロセッサコアにデータ暗号化属性レジスタ
206が追加されている。
【0088】図7に、本実施形態における鍵管理部70
1の構成例を示す。命令鍵テーブルに加えてコンテキス
ト鍵テーブル709、データ鍵テーブル710が追加さ
れている。
【0089】コンテキスト鍵テーブル709には、プロ
セス識別子対応に1つずつの共通鍵を格納する領域が設
けられる。プロセス識別子iに対しては709−iが対
応する。また、データ鍵テーブル710には、プロセス
識別子対応に2つずつの共通鍵を格納する領域が設けら
れる。プロセス識別子iに対しては、710−i−1と
710−i−2が対応する。
【0090】これらの実効鍵をキャッシュ上で識別する
ため、暗号化属性タグは2ビット追加され、プロセス識
別子と、2ビットの種別フィールドの組み合わせで実効
鍵が決定される。
【0091】実効鍵テーブルは、鍵の値を格納するテー
ブル一般を指示し、命令鍵テーブル、コンテキスト鍵テ
ーブル、データ鍵テーブルは、実効鍵テーブルであって
格納する鍵がそれぞれ命令鍵、コンテキスト鍵、データ
鍵であるものを指示する。第1の実施形態においては、
命令鍵を格納するテーブルを実効鍵テーブルとして説明
したが、第2の実施形態以下においては、3種類のテー
ブルを区別するため、命令鍵テーブル、コンテキスト鍵
テーブル、データ鍵テーブルと呼ぶことにする。
【0092】(命令鍵登録、命令実行開始)暗号化プロ
グラムの実行には、まず、命令鍵を命令鍵テーブルに登
録する。命令鍵の登録手順は基本的には第1の実施形態
の場合と同様であり、上述した鍵再割り当てに伴う命令
キャッシュの無効化も行われる。
【0093】ただ、プロセス毎のコンテキスト鍵、デー
タ鍵の独立性を保証するために鍵登録時の内部動作が異
なっている。命令鍵の登録と同時に、コンテキスト鍵テ
ーブル709、データ鍵テーブル710についても、プ
ロセス識別子で指定されたエントリが初期化されること
である。例えば、プロセス識別子iの命令鍵が登録され
るときは、コンテキスト鍵テーブル709−iとデータ
鍵テーブル710−i−1,710−i−2の値が予め
定められた平文アクセスに対応する値に初期化される。
そして、単に値が初期化されるだけでなく、これらの実
効鍵識別子を持つデータキャッシュのラインがフラッシ
ュされる。もし外部メモリに書き戻されていないデータ
があればキャッシュから外部メモリにデータが書き戻さ
れる。このとき、キャッシュデータの書き戻しに古いコ
ンテキスト鍵、データ鍵の値が必要なので、フラッシュ
が完了するまでは、古いコンテキスト鍵、データ鍵の値
を保持しておく必要がある。
【0094】プロセス識別子に対応する命令鍵の登録
と、コンテキスト鍵、データ鍵の初期化、そして命令、
データキャッシュのフラッシュが完了すると状態制御部
はプロセッサコアに登録完了を通知する。
【0095】(命令実行開始)命令実行の開始手順も第
1の実施形態と同一である。
【0096】異なるのは、例外発生時のコンテキスト情
報保護処理と、データ暗号化処理である。
【0097】はじめに例外発生時のデータ暗号化処理を
説明する。データ暗号化機能は、暗号化プロセスのみが
使うことができる。データ暗号化機能は、データ暗号化
属性レジスタによって制御されるが、暗号化プログラム
の実行開始時にはデータ暗号化属性レジスタの有効ビッ
トがクリアされている。また、暗号化属性を変更する前
には、必ず有効ビットを一度クリアしなければならな
い。有効ビットをクリアすると、対応するタグをもつキ
ャッシュエントリは全てフラッシュされる。
【0098】データ暗号化機能を使うには、データ暗号
化レジスタの暗号化属性を設定する。暗号化属性は、開
始アドレス、対象領域の長さ、データ鍵からなる。これ
らのパラメータをデータ暗号化属性レジスタに書き込
み、有効ビットをセットする。すると、データ鍵のデー
タ鍵テーブルへの登録と、アドレス−データ鍵識別子変
換表の構築が行われる。
【0099】データ鍵の登録は、データ鍵テーブルのプ
ロセス識別子と補助情報によって指定されたエントリに
データ鍵の値を書き込むだけである。この時点では、対
応するキャッュラインは全てフラッシュされているの
で、あらためてキャッシュのフラッシュを待つ必要はな
い。
【0100】データ鍵の登録と並行して、アドレス‐デ
ータ鍵識別子変換表の構築が行われる。アドレス‐デー
タ鍵識別子変換表は、プロセッサ内部のメモリ管理機能
の中にある(図示せず)。データ暗号化レジスタの開始
アドレス、長さの情報から、アドレス範囲に対してどの
データ鍵識別子が使われるかを対応付けるテーブルが構
築される。そして、暗号化対象範囲のキャッシュされた
データは、全てフラッシュされる。
【0101】有効ビットをセットする命令の実行が完了
すると、データ暗号化機能が有効な状態となり、データ
暗号化属性レジスタに指定された領域のメモリへの読み
書きは、全て暗号化されて行われる。
【0102】キャッシュされたメモリへの書き込みは、
平文状態で行われるが、対応するデータ鍵識別子のタグ
が付加される。そのラインがフラッシュされるときはデ
ータ鍵識別子が鍵管理部701に送られ、データ鍵テー
ブル710で検索されたデータ鍵が、データ暗号化・復
号化処理部601に読み込まれ、データは暗号化されて
メモリに書き込まれる。
【0103】暗号化により、わずか1ビットのデータの
書き換えでも同じキャッシュラインに対応する外部メモ
リの内容が全面的に書き換わることに注意が必要であ
る。
【0104】読み込みの場合はこの一連の処理の逆が行
われる。
【0105】アドレス‐データ鍵識別子変換表は、現在
実行中のプロセスに対応したもののみがプロセッサコア
に保持される。実行するプロセスが切り替えられると、
アドレス‐データ鍵識別子変換表も再構築される。ただ
し、プロセスの切り替えではキャッシュのフラッシュを
行う必要はない。切り替えの前後で同一のデータ鍵識別
子に対応する鍵の値は変わらないからである。
【0106】一方、データ鍵テーブルには、全ての暗号
化プロセスのデータ鍵が保持される。これは、フラッシ
ュはキャッシュラインは、現在実行中のプロセスのタグ
がついたものとは限らないからである。
【0107】上記のデータ鍵管理機能により、プロセス
の切り替えや、データ暗号化対象アドレスやデータ暗号
鍵の変更があっても、データの安全性、整合性が保障さ
れ、同時に効率的なデータの暗号化が実現できる。
【0108】次に、例外発生時のコンテキスト保護処理
を説明する。
【0109】暗号化命令の実行中に例外が発生すると、
レジスタの内容がレジスタバッファに退避され、下のレ
ジスタは初期化された後に例外ハンドラの処理が開始さ
れる。レジスタの退避のときプロセス識別子もレジスタ
バッファに退避される。レジスタバッファには有効フラ
グがあり、暗号化プログラムの実行中に例外が発生する
と有効フラグが1にセットされる。レジスタバッファは
他のプログラムから読み出すことができないので、暗号
化プログラムが処理中のレジスタの内容が、例外ハンド
ラによって読み出されることはない。
【0110】例外ハンドラではレジスタバッファに保存
されている中断されたプログラムのレジスタ情報を、次
に説明するコンテキスト保存命令によってキャッシュメ
モリに保存する。
【0111】コンテキスト保存命令(savereg)
は次のような形式で表され、一つのオペランドをとる。
オペランドdestはレジスタバッファの内容が保存さ
れるアドレスを示す。 savereg dest savereg命令が発行されるとレジスタバッファの
内容がアドレスdestに対応するキャッシュラインに
書き込まれる。上述のように通常メモリへのデータ書き
込みでは書き込み命令を発行したプロセスのデータ暗号
化属性が使われるが、コンテキスト保存命令の書き込み
の際には、アクセスに使うタグとして、レジスタバッフ
ァに保存されたプロセスのコンテキスト鍵識別子が使わ
れる。
【0112】コンテキストは複数のキャッシュラインに
保存され、連鎖ビットが設定される。連鎖により、コン
テキストの秘密はより安全になる。
【0113】コンテキスト鍵の扱いは命令鍵、データ鍵
とはかなり異なる。あるコンテキスト鍵の値は、乱数生
成装置によって決定される。そして、そのプロセスの実
行を再開するとき、コンテキストが復号化されるまでプ
ロセッサ内部で保持され、復号化が完了すると捨てられ
る。
【0114】あるプロセスのコンテキスト鍵は、プロセ
ッサ内部に保持され、外部には読み出せない。物理乱数
発生装置などの特性のよい乱数発生装置を使うことによ
り、同じ鍵が使われる可能性や、鍵の系列を予想するこ
とを極めて困難とすることができる。
【0115】これらの機構によってあるプロセスのコン
テキスト情報を偽造して、プロセスの動作を変更するよ
うな攻撃や、コンテキスト情報を解析する攻撃をきわめ
て困難にして、安全性を高めることができる。
【0116】同時に、コンテキスト情報の暗号化機構
は、データ暗号化と共通のものを使うことが可能にな
り、安価なプロセッサの提供が可能となる。
【0117】説明が前後したが、暗号化プロセスの実行
を再開するとき、rcvrreg(recover r
egister)命令を発行する。 rcvrreg Ra, Rb この命令は2つのレジスタオペランドをとる。Raには
保存したコンテキストのアドレスを格納する。Rbには
プロセス識別子を指定する。
【0118】この命令を実行したプロセッサコアは、コ
ンテキストのアドレスに、プロセス識別子のコンテキス
ト鍵を示すタグをつけて、データキャッシュにメモリ読
み出し要求を発行する。もしデータキャッシュに保存し
たコンテキスト情報が残っていれば、それがそのまま読
み出されてレジスタに復帰され、そのままプロセスの実
行が再開される。
【0119】もしコンテキスト情報がフラッシュされて
いれば、復号化機能が、プロセスのコンテキスト鍵を鍵
管理機能に要求し、そこから読み出されたコンテキスト
鍵が復号化に使われ、データキャッシュにコンテキスト
情報が平文で読み込まれ、レジスタ情報が復帰されてプ
ロセスの実行が再開される。
【0120】他のプロセスがデータキャッシュ上に平文
で存在するコンテキスト情報を読みだそうとしても、タ
グが一致しないため、読み出すことはできず、コンテキ
スト情報は安全である。
【0121】(第3の実施形態)本実施形態では、第2
の実施形態と相違する点を中心にして説明する。
【0122】第3の実施形態では、共有メモリの高速処
理を実現する実施形態を説明する。プロセス間の通信の
実現には、多くの場合何らかの共有メモリが用いられ
る。第2の実施形態の機構により、2つのプロセスの間
での安全な鍵交換手法(寺本特許)を行い、データ暗号
鍵を共有することにより、プロセッサの暗号機能を利用
した効率的かつ安全なプロセス間通信が実現できる。
【0123】しかしながら、第2の実施形態の機構で
は、プロセッサ内に復号化されたキャッシュラインを、
外部メモリへのフラッシュ無しに複数のプロセス間で共
有することはできない。例えば、プロセスAがレジスタ
D1に格納された鍵Kaでデータを復号化してデータキ
ャッシュに読み込んだとする。このキャッシュラインに
は暗号化属性(#a,D1)が付与される。別のプロセ
スBがレジスタD1に鍵Kaを保持していて、そのキャ
ッシュラインを参照すると、プロセスのメモリ参照タグ
の暗号化属性(#b,D1)はキャッシュラインの暗号
化属性(#a,D1)と一致しないので、そのキャッシ
ュラインはフラッシュされ、一度タグ(#a,D1)に
対応する暗号鍵Kaで暗号化されてメインメモリに書き
出され、再度タグ(#b,D1)に対応する暗号鍵Ka
で復号化されてキャッシュに読み込まれる。
【0124】ここでは不要なメインメモリへのアクセス
が2度起きている。
【0125】このオーバヘッドを削減し、効率のよいメ
モリ参照を行う一実施形態を以下に説明する。
【0126】図8に、本実施形態に係るマイクロプロセ
ッサの全体構成例を示す。第2の実施形態との違いは、
プロセッサコア201とキャッシュメモリ301,40
1との間に、鍵インデックス変換機能801が追加され
たことである。
【0127】図9に、鍵インデックス変換機能801と
鍵管理部701のより詳細な構成例を示す。鍵インデッ
クス変換機能801は、内部に間接鍵値参照テーブル8
02を持つ。鍵管理部701は、内部に実効鍵の値を保
持する鍵値テーブル804を持つ。間接鍵値参照テーブ
ルは、プロセス識別子と鍵タイプ識別子によって参照さ
れ、鍵値テーブル804のエントリへのインデックスを
保持する。図9においては、鍵値テーブルのエントリ#
Nへの参照を、間接鍵値テーブルの(#1,D2)でイ
ンデックスされるエントリが保持している。
【0128】鍵値テーブルの管理は、実効鍵値テーブル
管理機能805が行う。実効鍵値テーブル管理機能80
5は、テーブル内で鍵の値が一意になるよう、登録、削
除処理を行う。また、鍵値テーブルには、エントリが有
効な鍵値を保持しているかどうかを判定するため、鍵値
への参照数を保持するフィールドが設けられている。
【0129】図10に鍵登録時の動作例を示し、図11
に鍵登録処理の手順例を示す。
【0130】まず、プロセッサコア201から状態管理
機能702へ、プロセス識別子と鍵タイプ、鍵値情報が
提示される。鍵値は直接値が提示されるとは限らず、プ
ログラム鍵の場合は配布鍵が格納されたアドレスが提示
され、コンテキスト鍵の場合は鍵値は鍵管理部内で生成
される。
【0131】鍵値Kaは実効鍵値テーブル管理機能80
5に提示される。実効鍵値テーブル管理機能805は、
鍵値をテーブルで検索し、一致するエントリが存在しな
い場合には新たに値を登録し、参照カウンタの値を0か
ら1に増やす。ここで鍵値Kaはエントリ#Nに登録さ
れているので、その参照カウンタの値を1から2に増や
す。ここでは、暗号鍵の共有にはテーブル上の鍵値の一
意性が必要なことに留意しなければならない。一意性を
保証するには、テーブルの値を検索する必要が生じる
が、その実装には連想メモリ(CAM)を使う方法、平
行ツリー(AVLtree)を使うなどの検索の高速化
手法が可能である。もし鍵を新たに登録することができ
なかった場合、状態管理機能702へ通知する。
【0132】登録に成功すると、実効鍵値テーブル管理
機能805は、鍵値が格納されたエントリへのインデッ
クス#Nを間接鍵値参照テーブル管理機能803へ提示
する。間接鍵値参照テーブル管理機能803は、状態管
理機能702からプロセス識別子と鍵タイプ(#n,D
1)を提示されており、これでインデックスされたエン
トリに、鍵値のインデックス#Nを格納する。格納の完
了は状態管理機能702に通知される。
【0133】(鍵値の参照)プロセス#1がデータ鍵D
2によって参照するとき、プロセッサコアからは、プロ
セス識別子、鍵タイプ(#1,D2)が鍵インデックス
変換機能801に提示される。鍵インデックス変換機能
801は、間接鍵値参照テーブルを参照して、このプロ
セス識別子、鍵タイプを鍵値インデックスに対応するタ
グ#Nに変換して、キャッシュタグとしてデータキャッ
シュに提示する。データキャッシュは、キャッシュミス
ヒットの場合、アドレスに対応する外部メモリの内容を
読み込み、タグ#Nに対応する鍵で復号化されたデータ
をキャッシュラインに読み込み、タグ#Nを付加する。
【0134】このキャッシュラインを別のプロセス#n
がデータ鍵D1によって参照するとき、鍵インデックス
変換機能801が出力するタグは同一の#Nとなり、復
号化されたキャッシュラインが外部メモリを参照するこ
となく利用できる。異なるプロセスが同一のタグを利用
するには、実効鍵値テーブルに登録された鍵の値が同一
である必要があるため、鍵の値を知らないプロセスが不
正に復号化されたデータを読み出すことはない。
【0135】(鍵エントリ削除処理)図12に鍵エント
リ削除時の動作例を示し、図13に鍵エントリ削処理の
手順例を示す。
【0136】プロセッサコア201は、削除する鍵に対
応するプロセス識別子、鍵タイプ(#n,D1)を状態
管理機能702に提示する。状態管理機能702は、間
接鍵値参照テーブル管理機能803にプロセス識別子、
鍵タイプ(#n,D1)を提示し、間接鍵値参照テーブ
ル管理機能803は、テーブルから鍵値テーブルインデ
ックス#Nを取得し、同時に値を#0に書き換える。間
接鍵値参照テーブル管理機能803は、鍵値テーブルイ
ンデックス#Nを実効鍵値テーブル管理機能805に提
示し、削除を要求する。実効鍵値テーブル管理機能80
5は、#Nの参照カウンタの値を2から1に減らして削
除が完了すると、状態管理機能702に通知する。
【0137】(第4の実施形態)本実施形態では、第2
の実施形態と相違する点を中心にして説明する。
【0138】第4の実施形態では、実効鍵の外部メモリ
への保存による、プロセスの永続化制御機能と、安全な
フィードバック情報の保存機能を説明する。
【0139】第2の実施形態のマイクロプロセッサで
は、コンテキスト情報を暗号化して外部メモリに保存す
るための鍵情報(コンテキスト鍵)がプロセッサ内部の
テーブル709に保持されていた。ここで、コンテキス
ト鍵はコンテキスト保存の都度更新されるため、一度保
存されたコンテキスト情報を再度利用することはできな
くなり、攻撃者が、攻撃者がコンテキスト情報を別のプ
ロセスや同じプロセスの別の時点で保存したものにすり
かえる攻撃を防ぐことができる。
【0140】しかしながら、コンテキスト鍵がプロセッ
サ内部に保持されていることには次の2種類の欠点もあ
る。ひとつの問題は、プログラムの動作に不具合が発見
されたとき、プログラムの開発者にとっても、プログラ
ムがどのような状態で実行されていたかがわからない、
すなわちプログラム開発者へのフィードバックが不可能
なことである。
【0141】もうひとつの問題は、コンテキスト鍵テー
ブルの数を越えたプロセスを同時に実行することや、プ
ロセッサの電源断をはさんで同一のプロセスの実行を継
続することができず、利便性が損なわれることである。
【0142】特に後者は上記のプロセスのコンテキスト
すり替えを防ぐセキュリティ上の安全性とユーザの利便
性のトレードオフとなる。
【0143】この2つの問題を解決する実施形態を以下
に示す。
【0144】図14に、本実施形態に係るマイクロプロ
セッサの全体構成例を示す。第2の実施形態の場合に対
して、プロセス状態入出力機能901が付加されてい
る。プロセス状態入出力機能901には、プロセス状態
鍵暗号・復号化機能902とプロセス状態保存用秘密鍵
903がある。プロセス状態鍵暗号・復号化機能902
は共通鍵アルゴリズムの暗号化・復号化機能を行うもの
であり、プロセス状態保存用秘密鍵903はプロセッサ
固有であるとする。
【0145】第4の実施形態では、プログラムの配布鍵
として図15に示す形式の情報がプロセッサ公開鍵によ
り暗号化されて配布される。フィードバック鍵と永続化
フラグの2つの情報が付加されている。また、ハッシュ
フィールドがもうけられ、命令鍵、フィードバック鍵、
永続化フラグに対するハッシュ値が合致しない場合鍵の
テーブルへの登録は中止される。配布鍵はプロセッサの
秘密鍵により復号化され、命令鍵テーブルに格納され
る。命令鍵テーブルの形式を図16に示す。命令鍵テー
ブル1501には#0〜#nのエントリがある。エント
リには命令鍵格納フィールド1501−0−p,フィー
ドバック鍵1501−0−f,永続化制御フラグ150
1−0−eがある。
【0146】(フィードバック情報)フィードバック鍵
は、プログラム開発者が任意に決める共通鍵である。プ
ログラム(通常はOS)があるプロセスのフィードバッ
ク情報を保存するときにはフィードバック情報保存命令
を発行する。保存対象のプロセスはコンテキストが保存
され、実行が中断されていることが前提とする。フィー
ドバック情報保存命令はオペランドとしてプロセス識別
子と保存先メモリアドレスをとる。フィードバック情報
保存命令の発行により、プロセスの鍵情報(命令鍵、コ
ンテキスト鍵、データ鍵)はフィードバック鍵によって
暗号化され、フィードバック情報としてプロセッサ外部
メモリの指定アドレスに保存される。
【0147】フィードバック鍵を知るプログラム開発者
はフィードバック情報を復号化して、中断時のプロセス
の状態を知ることができるが、プロセッサにはフィード
バック情報から鍵情報を復元する機構をそなえない。こ
のため、フィードバック情報がプロセスにあやまった状
態を与えるために悪用されるおそれはなく、フィードバ
ック情報から命令鍵やコンテキスト鍵を特定することも
フィードバック鍵を知らないユーザには不可能である。
【0148】(永続化制御)図17に、永続化のための
プロセス鍵の保存手順の一例を示す。
【0149】また、配布鍵の永続化フラグもプログラム
開発者が決める情報である。プログラムの利便性を重視
して永続化を許すとき、プログラム開発者は永続化フラ
グを1とした配布鍵を提供する。プログラムの安全性を
重視して永続化を許さないとき、プログラム開発者は永
続化フラグを0として配布鍵を提供する。
【0150】あるプロセスの鍵情報を保存するときは、
プロセス状態保存命令をプロセス識別子と保存先メモリ
アドレスをオペランドとして発行する。プロセス状態入
出力機能は、命令鍵テーブルのプロセス識別子に対応す
るエントリを参照して、永続化フラグが1のときのみ、
プロセス状態保存処理を行い、永続化フラグが0の場合
は例外を発生させる。
【0151】保存処理では、プロセスの鍵情報(命令
鍵、コンテキスト鍵、データ鍵)はプロセス状態保存用
秘密鍵によって暗号化され、指定された外部メモリアド
レスに書き出される。
【0152】保存したプロセスの鍵情報を復帰するとき
は、プロセス状態復帰命令をプロセス識別子と保存先メ
モリアドレスをオペランドとして発行する。プロセッサ
はプロセス状態保存用秘密鍵により、プロセス鍵を復号
化して、指定したプロセス識別子に対応するテーブルに
登録する。その後、対応するコンテキスト情報とプロセ
ス識別子を指定してプロセス再開命令を発行することに
より、プロセスの実行が再開される。
【0153】保存されたプロセス状態は、プロセッサ固
有のプロセス状態保存用秘密鍵によって暗号化されてい
るので、他のプロセッサに対してプロセス状態を移動す
ることはできず、プログラムの不正利用の可能性を低減
することができる。
【0154】永続化制御フラグは配布鍵に含まれ、暗号
化とハッシュによって守られているため、永続化フラグ
を変更することは正しい命令鍵を知らない限り不可能で
ある。そして、復号化された永続化制御フラグにもとづ
いて、プロセス状態入出力機能によるプロセス鍵情報の
保存処理の可否を判断することにより、プロセスの永続
性と、安全性という相反する要素を、(一般に)プログ
ラムの著作権者であるプログラム開発者が制御可能とす
る効果が本発明により実現される。
【0155】なお、以上の各機能は、ソフトウェアとし
て実現可である。また、本実施形態は、コンピュータに
所定の手段を実行させるための(あるいはコンピュータ
を所定の手段として機能させるための、あるいはコンピ
ュータに所定の機能を実現させるための)プログラムと
して実施することもでき、該プログラムを記録したコン
ピュータ読取り可能な記録媒体として実施することもで
きる。
【0156】なお、この発明の実施の形態で例示した構
成は一例であって、それ以外の構成を排除する趣旨のも
のではなく、例示した構成の一部を他のもので置き換え
たり、例示した構成の一部を省いたり、例示した構成に
別の機能あるいは要素を付加したり、それらを組み合わ
せたりすることなどによって得られる別の構成も可能で
ある。また、例示した構成と論理的に等価な別の構成、
例示した構成と論理的に等価な部分を含む別の構成、例
示した構成の要部と論理的に等価な別の構成なども可能
である。また、例示した構成と同一もしくは類似の目的
を達成する別の構成、例示した構成と同一もしくは類似
の効果を奏する別の構成なども可能である。また、この
発明の実施の形態で例示した各種構成部分についての各
種バリエーションは、適宜組み合わせて実施することが
可能である。また、この発明の実施の形態は、プロセッ
サとしての発明、プロセッサ内部の構成部分についての
発明、またはそれらに対応する方法の発明等、種々の観
点、段階、概念またはカテゴリに係る発明を包含・内在
するものである。従って、この発明の実施の形態に開示
した内容からは、例示した構成に限定されることなく発
明を抽出することができるものである。
【0157】本発明は、上述した実施の形態に限定され
るものではなく、その技術的範囲において種々変形して
実施することができる。
【0158】
【発明の効果】本発明によれば、キャッシュメモリ管理
手順において、初期登録における公開鍵処理時間による
応答不感時間を短縮して、リアルタイム処理性能を向上
させることのできるマイクロプロセッサを提供すること
ができる。
【0159】また、本発明によれば、キャッシュメモリ
のアクセス制御に使われるタグの安全な管理を可能にし
たマイクロプロセッサを提供することができる。
【0160】また、本発明によれば、連鎖によってプロ
グラムの暗号鍵を推定されにくくすると同時に効率的な
命令実行を実現するプログラム復号化手段を持つマイク
ロプロセッサを提供することができる。
【0161】また、本発明によれば、複数のプロセスが
同一の暗号鍵によって暗号化されているデータを共有を
するときの処理効率を向上させることのできるマイクロ
プロセッサを提供することができる。
【0162】また、本発明によれば、安全なプログラム
利用の利便性と秘密の安全性という、相反する要素を、
プログラム提供者の意志にしたがって実現するコンテキ
スト保存手段を持つマイクロプロセッサを提供すること
ができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るマイクロプロセ
ッサの全体構成例を示す図
【図2】プログラムのメモリ上配置について説明するた
めの図
【図3】同実施形態の鍵管理部の構成例を示す図
【図4】同実施形態の鍵登録処理の一例を示すフローチ
ャート
【図5】同施形態の命令復号化処理部の構成例を示す図
【図6】本発明の第2の実施形態に係るマイクロプロセ
ッサの基本構成例を示す図
【図7】同実施形態の鍵管理部の構成例を示す図
【図8】本発明の第3の実施形態に係るマイクロプロセ
ッサの基本構成例を示す図
【図9】同実施形態の鍵管理部の構成例を示す図
【図10】同実施形態の鍵登録処理について説明するた
めの図
【図11】同実施形態の鍵登録処理の一例を示すフロー
チャート
【図12】同実施形態の鍵削除処理について説明するた
めの図
【図13】同実施形態の鍵削除処理の一例を示すフロー
チャート
【図14】本発明の第4の実施形態に係るマイクロプロ
セッサの鍵管理部の構成例を示す図
【図15】同施形態の配布鍵形式の一例を示す図
【図16】同実施形態の命令鍵テーブル形式の一例を示
す図
【図17】同実施形態のプロセス鍵保存手順の一例を示
すフローチャート
【符号の説明】
101…プロセッサ 102…内部データバス 103…外部バスインタフェース 201…プロセッサコア 202…実行鍵識別子格納レジスタ 203…制御レジスタ 204…レジスタ・制御レジスタ 205…プロセス識別子格納レジスタ 206…データ暗号化制御レジスタ 301…命令キャッシュ 401…データキャッシュ 501…復号化処理部 502…アドレス処理部 503…復号化機能 504…バッファ 505…連鎖計算機能 601…データ暗号化・復号化処理部 701…鍵管理部 702…状態管理機能 702−1…プロセス状態管理テーブル 703…配布鍵読み出し機能 704…秘密鍵 705…実効鍵復号化機能 706…鍵テーブル 707…命令鍵管理機能 708…乱数発生機能 709…コンテキスト鍵テーブル 710…データ鍵テーブル 801…鍵インデックス変換機能 802…間接鍵値参照テーブル 803…間接鍵値参照テーブル管理機能 804…鍵値テーブル 805…実効鍵値テーブル管理機能 901…プロセス状態入出力機能 902…プロセス状態保存用秘密鍵 903…プロセス状態鍵暗号・復号化機能
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 12/14 320 H04L 9/00 621A H04L 9/08 601E (72)発明者 寺本 圭一 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 藤本 謙作 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 尾崎 哲 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 Fターム(参考) 5B005 JJ11 KK12 LL01 MM02 MM03 PP22 5B017 AA03 BA07 BB09 CA15 5B098 AA03 GA04 JJ03 5J104 AA16 EA04 EA19 JA03 NA02 NA37 NA42

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】外部へ読み出すことのできない固有の秘密
    鍵を内部に保持した1チップまたは1パッケージのマイ
    クロプロセッサであって、 あらかじめ前記秘密鍵に対応する公開鍵によって暗号化
    された命令鍵をマイクロプロセッサ外部の記憶手段から
    読み出す第1の読み出し手段と、 前記第1の読み出し手段で読み出した前記命令鍵を、前
    記秘密鍵を用いて復号化する第1の復号化手段と、 プログラムを識別するプログラム識別子対応に、プログ
    ラムを復号化する命令鍵を保持するテーブルと、 前記テーブルに前記プログラム識別子対応に命令鍵を登
    録する登録手段と、 登録の完了を命令実行部に通知する通知手段と、 実行中のプログラムのプログラム識別子を保持するプロ
    グラム識別子保持手段と、 外部の記憶手段の所定のアドレスの内容を前記プログラ
    ム識別子保持手段によって指示される前記テーブルに格
    納された命令鍵によって復号化する第2の復号化手段
    と、 外部の記憶手段から読み込んだ命令および前記第2の復
    号化手段により復号化された命令を実行する命令実行手
    段と、 前記第1の復号化手段に命令鍵を復号化させるステップ
    と、該命令において指定されたプログラム識別子と前記
    命令鍵とを対応づけて前記テーブルに登録するステップ
    と、登録の完了を命令実行部に通知するステップとを実
    行する第1の命令実行手段と、 前記プログラム識別子保持手段に、該命令において指定
    されるプログラム識別子を設定するステップと、該命令
    において指定される外部の記憶手段のアドレスにプログ
    ラム実行制御を移すステップとを実行する第2の命令実
    行手段とを備えたことを特徴とするマイクロプロセッ
    サ。
  2. 【請求項2】外部へ読み出すことのできない固有の秘密
    鍵を内部に保持した1チップまたは1パッケージのマイ
    クロプロセッサであって、 あらかじめ前記秘密鍵に対応する公開鍵によって暗号化
    された実行コード暗号化鍵をマイクロプロセッサ外部の
    記憶手段から読み出す第1の読み出し手段と、 前記第1の読み出し手段で読み出した前記実行コード暗
    号化鍵を、前記秘密鍵を用いて復号化する第1の復号化
    手段と、 前記復号化された命令鍵を、プログラム識別子に対応づ
    けて保持する第1のテーブルと、 前記テーブルに前記プログラム識別子対応に命令鍵を登
    録する登録手段と、 実行中のプログラムのプログラム識別子を保持するプロ
    グラム識別子保持手段と、 前記プログラム識別子をプログラム読出し要求に付随し
    て出力するプログラム実行手段と、前記プログラム読出
    し要求に付随する前記プログラム識別子によって該キャ
    ッシュラインの暗号鍵が選択され、復号化が行われる第
    2の復号化手段と、 前記第2の復号化手段の復号化結果と前記読出し要求に
    付随するプログラム識別子と対応付けてキャッシュライ
    ン毎に保持する手段と、 前記キャッシュメモリのキャッシュラインに保持される
    プログラム識別子とプログラム実行手段から出力される
    プログラム読出し要求のプログラム識別子とが一致した
    ときのみ読出しを許可するキャッシュメモリと、 前記登録手段が第1のテーブルの第1のプログラム識別
    子に対応する命令鍵を書き換えるとき、前記第1のプロ
    グラム識別子を保持する前記キャッシュメモリ上のキャ
    ッシュラインをフラッシュする鍵管理手段とを備えたこ
    とを特徴とするマイクロプロセッサ。
  3. 【請求項3】外部へ読み出すことのできない固有の秘密
    鍵を内部に保持した1チップまたは1パッケージのマイ
    クロプロセッサであって、 あらかじめ前記秘密鍵に対応する公開鍵によって暗号化
    された命令鍵をマイクロプロセッサ外部の記憶手段から
    読み出す第1の読み出し手段と、 前記第1の読み出し手段で読み出した前記命令鍵を、前
    記秘密鍵を用いて復号化する第1の復号化手段と、 外部の記憶手段におかれている、暗号単位間の連鎖の有
    無を定義する連鎖情報を読み込む連鎖情報取得手段と、 プログラムを識別するプログラム識別子対応に、前記復
    号化された命令鍵を保持するテーブルと、 前記連鎖情報取得手段が読み込んだ連鎖情報に基づい
    て、外部の記憶手段の所定のアドレスにおかれた複数の
    暗号単位を前記命令鍵によって復号化する第2の復号化
    手段とを備えたことを特徴とするマイクロプロセッサ。
  4. 【請求項4】外部へ読み出すことのできない固有の秘密
    鍵を内部に保持した1チップまたは1パッケージのマイ
    クロプロセッサであって、 あらかじめ前記秘密鍵に対応する公開鍵によって暗号化
    された命令鍵をマイクロプロセッサ外部の記憶手段から
    読み出す第1の読み出し手段と、 前記第1の読み出し手段で読み出した前記命令鍵を、前
    記秘密鍵を用いて復号化する第1の復号化手段と、 実行中のプログラムのプログラム識別子を保持するプロ
    グラム識別子保持手段と、 登録される鍵の値についてテーブル内での一意性を保証
    する鍵登録機構を持つ、復号鍵を保持する第1のテーブ
    ルと、 プログラム識別子によって参照され、前記第1のテーブ
    ルへの参照を保持する第2のテーブルと、 キャッシュメモリ参照において、前記プログラム識別子
    に基づいて前記第2のテーブルを参照し、前記第1のテ
    ーブルへの参照に変換を行い、前記第1のテーブルへの
    参照情報をキャッシュタグとするタグ変換手段と、 キャッシュメモリと、 キャッシュメモリと外部メモリとのデータ読み書きにお
    いて、キャッシュメモリから提示されたタグ値に基づい
    て、前記第1のテーブルから対応する前記復号鍵を取得
    し、データの暗号化もしくは復号化を行う暗号手段とを
    備えたことを特徴とするマイクロプロセッサ。
  5. 【請求項5】外部へ読み出すことのできない固有の第1
    の秘密鍵および第2の秘密鍵を内部に保持した1チップ
    または1パッケージのマイクロプロセッサであって、 あらかじめ前記第1の秘密鍵に対応する公開鍵によって
    一体として暗号化された命令鍵および永続化許可フラグ
    をマイクロプロセッサ外部の記憶手段から読み出す第1
    の読み出し手段と、 前記第1の読み出し手段で読み出した前記命令鍵および
    永続化許可フラグを、前記秘密鍵を用いて復号化する第
    1の復号化手段と、 プログラムを識別するプログラム識別子対応に、前記命
    令鍵および前記永続化許可フラグおよび共通鍵を保持す
    るテーブルと、 実行中のプログラムのプログラム識別子を保持するプロ
    グラム識別子保持手段と、 前記プログラム識別子対応に、プログラムの実行中断時
    のレジスタ値を前記共通鍵で暗号化してレジスタ情報と
    して外部の記憶手段に保存するレジスタ値保存手段と、 前記プログラム識別子対応に、保存された前記レジスタ
    情報を前記共通鍵により復号化してレジスタに読み込む
    コンテキスト復帰手段と、 該命令において指定されるプログラム識別子に対応する
    前記永続化許可フラグの値が所定の値をとる場合のみ、
    前記プログラム識別子に対応する前記共通鍵を前記プロ
    セッサの第2の秘密鍵により暗号化して外部の記憶手段
    に書き出すステップを実行する所定の命令実行手段とを
    備えたことを特徴とするマイクロプロセッサ。
  6. 【請求項6】外部へ読み出すことのできない固有の第1
    の秘密鍵を内部に保持した1チップまたは1パッケージ
    のマイクロプロセッサであって、 あらかじめ前記秘密鍵に対応する公開鍵によって一体と
    して暗号化された命令鍵およびフィードバック鍵をマイ
    クロプロセッサ外部の記憶手段から読み出す第1の読み
    出し手段と、 前記第1の読み出し手段で読み出した前記命令鍵および
    フィードバック鍵を、前記秘密鍵を用いて復号化する第
    1の復号化手段と、プログラムを識別する識別子対応
    に、前記命令鍵およびフィードバック鍵を保持するテー
    ブルと、 実行中のプログラムのプログラム識別子を保持するプロ
    グラム識別子保持手段と、 前記プログラム識別子対応に、プログラム実行中断時の
    レジスタ値を前記共通鍵で暗号化してレジスタ情報とし
    て外部の記憶手段に保存するレジスタ値保存手段と、 該命令において指定される所定のプログラム識別子に対
    応する前記共通鍵を前記フィードバック鍵により暗号化
    して外部の記憶手段に書き出すステップを実行する所定
    の命令実行手段とを備えたことを特徴とするマイクロプ
    ロセッサ。
JP2001024480A 2001-01-31 2001-01-31 マイクロプロセッサ Expired - Fee Related JP4098478B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2001024480A JP4098478B2 (ja) 2001-01-31 2001-01-31 マイクロプロセッサ
EP02250667A EP1229427A3 (en) 2001-01-31 2002-01-31 Microprocessor using public key decryption processing
US10/059,217 US7136488B2 (en) 2001-01-31 2002-01-31 Microprocessor using asynchronous public key decryption processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001024480A JP4098478B2 (ja) 2001-01-31 2001-01-31 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JP2002232417A true JP2002232417A (ja) 2002-08-16
JP4098478B2 JP4098478B2 (ja) 2008-06-11

Family

ID=18889616

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001024480A Expired - Fee Related JP4098478B2 (ja) 2001-01-31 2001-01-31 マイクロプロセッサ

Country Status (3)

Country Link
US (1) US7136488B2 (ja)
EP (1) EP1229427A3 (ja)
JP (1) JP4098478B2 (ja)

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
JP2004228786A (ja) * 2003-01-21 2004-08-12 Toshiba Corp 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法
JP2004246637A (ja) * 2003-02-14 2004-09-02 Fainaaku Kk 固有情報化プロセッサ、これを備えた処理装置および記憶装置、関連するプログラム実行方法、およびコンピュータプログラム
JP2004272816A (ja) * 2003-03-11 2004-09-30 Ntt Docomo Inc マルチタスク実行システム及びマルチタスク実行方法
JP2005078459A (ja) * 2003-09-01 2005-03-24 Toshiba Corp マイクロプロセッサ
JP2005196257A (ja) * 2003-12-26 2005-07-21 Toshiba Corp マイクロプロセッサ
JP2007013678A (ja) * 2005-06-30 2007-01-18 Fujitsu Ltd Icチップ、ボード、情報処理装置及びコンピュータプログラム
JP2007515709A (ja) * 2003-11-26 2007-06-14 インテル コーポレイション 公的にアクセス可能なストレージからデータ処理マシンの状態に関するプライベートデータへのアクセス
JP2008046887A (ja) * 2006-08-17 2008-02-28 Ntt Docomo Inc Os切替装置及びos切替方法
JP2008512909A (ja) * 2004-09-10 2008-04-24 インターナショナル・ビジネス・マシーンズ・コーポレーション オン・チップ・ハードウェアをプログラミングするためのセキュアな機構を有する暗号化および復号化のための集積回路チップ
JP2009193605A (ja) * 2009-06-02 2009-08-27 Panasonic Corp 半導体集積回路装置
US7865733B2 (en) 2004-06-30 2011-01-04 Fujitsu Semiconductor Limited Secure processor and a program for a secure processor
JP2012530961A (ja) * 2009-12-22 2012-12-06 インテル・コーポレーション セキュアなアプリケーションの実行を提供する方法および装置
JP2012531663A (ja) * 2009-06-26 2012-12-10 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ・システム中の安全オブジェクトに対するサポート
JP2014112383A (ja) * 2013-12-19 2014-06-19 Intel Corp セキュアなアプリケーションの実行を提供するプロセッサ
US8954752B2 (en) 2011-02-23 2015-02-10 International Business Machines Corporation Building and distributing secure object software
US9087200B2 (en) 2009-12-22 2015-07-21 Intel Corporation Method and apparatus to provide secure application execution
US9098442B2 (en) 2009-06-26 2015-08-04 International Business Machines Corporation Secure object having protected region, integrity tree, and unprotected region
US9218485B2 (en) 2003-08-26 2015-12-22 Panasonic Intellectual Property Corporation Of America Program execution device
US9298894B2 (en) 2009-06-26 2016-03-29 International Business Machines Corporation Cache structure for a computer system providing support for secure objects
JP2017084392A (ja) * 2016-12-22 2017-05-18 インテル・コーポレーション 装置
US9846789B2 (en) 2011-09-06 2017-12-19 International Business Machines Corporation Protecting application programs from malicious software or malware
US9864853B2 (en) 2011-02-23 2018-01-09 International Business Machines Corporation Enhanced security mechanism for authentication of users of a system
JP2019109910A (ja) * 2019-02-07 2019-07-04 インテル・コーポレーション プロセッサ
US10785240B2 (en) 2009-06-26 2020-09-22 International Business Machines Corporation Protecting from unintentional malware download

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4098478B2 (ja) 2001-01-31 2008-06-11 株式会社東芝 マイクロプロセッサ
US7890771B2 (en) 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption
CA2485108A1 (en) * 2002-05-09 2003-11-20 Kestrel Wireless, Inc. Method and system for enabling electronic transactions via a personal device
US7257718B2 (en) * 2003-05-12 2007-08-14 International Business Machines Corporation Cipher message assist instructions
JP2007526590A (ja) * 2003-06-23 2007-09-13 ケストレル ワイヤレス,インク. 光メディア作動方法並びに装置
JP4263976B2 (ja) * 2003-09-24 2009-05-13 株式会社東芝 オンチップマルチコア型耐タンパプロセッサ
FR2861234A1 (fr) * 2003-10-17 2005-04-22 St Microelectronics Sa Chiffrement de donnees dans un appareil electronique a plusieurs processeurs symetriques
US7590845B2 (en) * 2003-12-22 2009-09-15 Lenovo Singapore Pte. Ltd. Key cache management through multiple localities
GB0403705D0 (en) * 2004-02-19 2004-03-24 Waterleaf Ltd Gaming facility and method of operation thereof
JP4612461B2 (ja) * 2004-06-24 2011-01-12 株式会社東芝 マイクロプロセッサ
JP4559794B2 (ja) * 2004-06-24 2010-10-13 株式会社東芝 マイクロプロセッサ
JP4204522B2 (ja) * 2004-07-07 2009-01-07 株式会社東芝 マイクロプロセッサ
JP2006023957A (ja) * 2004-07-07 2006-01-26 Sony Corp 半導体集積回路及び情報処理装置
KR100735577B1 (ko) 2004-08-12 2007-07-04 삼성전자주식회사 무선 네트워크의 적응형 키검색장치 및 방법
JP2006085676A (ja) * 2004-08-20 2006-03-30 Matsushita Electric Ind Co Ltd 暗号化命令処理装置
US20060075254A1 (en) * 2004-09-27 2006-04-06 Cisco Technology, Inc. (A California Corporation) Smart card functionality from a security co-processor and symmetric key in ROM
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
US7657756B2 (en) * 2004-10-08 2010-02-02 International Business Machines Corporaiton Secure memory caching structures for data, integrity and version values
US20060095385A1 (en) * 2004-10-26 2006-05-04 Paul Atkinson Method and network for selectively controlling the utility a target
US20060132285A1 (en) * 2004-12-07 2006-06-22 Paul Atkinson Device and method for selectively controlling a processing device
US20070194945A1 (en) * 2004-12-07 2007-08-23 Paul Atkinson Mobile Device for Selectively Activating a Target and Method of Using Same
US20060192653A1 (en) * 2005-02-18 2006-08-31 Paul Atkinson Device and method for selectively controlling the utility of an integrated circuit device
US8086871B2 (en) 2005-04-26 2011-12-27 International Business Machines Corporation Method for fast decryption of processor instructions in an encrypted instruction power architecture
US8050406B2 (en) * 2005-06-07 2011-11-01 Sony Corporation Key table and authorization table management
US8165302B2 (en) * 2005-06-07 2012-04-24 Sony Corporation Key table and authorization table management
US20070007358A1 (en) * 2005-07-06 2007-01-11 White Charles A Device and System for Authenticating and Securing Transactions Using RF Communication
US20070008169A1 (en) * 2005-07-11 2007-01-11 Conero Ronald S A Radio Frequency Activated Integrated Circuit and Method of Disabling the Same
US7783896B2 (en) * 2005-09-06 2010-08-24 Research In Motion Limited System and method for management of plaintext data in a mobile data processing device
US20070223692A1 (en) * 2005-10-18 2007-09-27 Paul Atkinson Activation confirmation feedback circuits and methods
DE602005021120D1 (de) * 2005-10-28 2010-06-17 Emma Mixed Signal Cv Zugriffskontrolle auf eine Entschlüsselungstabelle von ASIC bzw. ASSP
US20080028420A1 (en) * 2006-01-20 2008-01-31 Paul Atkinson Optical Media with Reduced Areal-Sized Optical shutters
US7877565B1 (en) 2006-01-31 2011-01-25 Nvidia Corporation Constant versioning for multi-threaded processing
US8094158B1 (en) * 2006-01-31 2012-01-10 Nvidia Corporation Using programmable constant buffers for multi-threaded processing
US20080046114A1 (en) * 2006-08-15 2008-02-21 White Charles A System, packaging, and method for distributing products
US20080244275A1 (en) * 2007-03-30 2008-10-02 Motorola, Inc. Instruction Transform for the Prevention and Propagation of Unauthorized Code Injection
JP4976991B2 (ja) * 2007-11-22 2012-07-18 株式会社東芝 情報処理装置、プログラム検証方法及びプログラム
EP2196937A1 (en) * 2008-12-15 2010-06-16 Thomson Licensing Methods and devices for instruction level software encryption
JP5322620B2 (ja) 2008-12-18 2013-10-23 株式会社東芝 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム
US9892283B2 (en) 2010-05-25 2018-02-13 Via Technologies, Inc. Decryption of encrypted instructions using keys selected on basis of instruction fetch address
US9967092B2 (en) 2010-05-25 2018-05-08 Via Technologies, Inc. Key expansion logic using decryption key primitives
US9798898B2 (en) 2010-05-25 2017-10-24 Via Technologies, Inc. Microprocessor with secure execution mode and store key instructions
US9911008B2 (en) 2010-05-25 2018-03-06 Via Technologies, Inc. Microprocessor with on-the-fly switching of decryption keys
US8639945B2 (en) * 2010-05-25 2014-01-28 Via Technologies, Inc. Branch and switch key instruction in a microprocessor that fetches and decrypts encrypted instructions
US8812871B2 (en) * 2010-05-27 2014-08-19 Cisco Technology, Inc. Method and apparatus for trusted execution in infrastructure as a service cloud environments
CN102156843B (zh) * 2011-03-28 2015-04-08 威盛电子股份有限公司 数据加密方法与系统以及数据解密方法
US8725788B2 (en) * 2011-05-27 2014-05-13 Adobe Systems Incorporated System and method for decryption of content including partial-block discard
US8850557B2 (en) 2012-02-29 2014-09-30 International Business Machines Corporation Processor and data processing method with non-hierarchical computer security enhancements for context states
CN103198242A (zh) * 2013-04-02 2013-07-10 厦门亿联网络技术股份有限公司 一种利用芯片实现加密的方法
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
CN106714075B (zh) * 2015-08-10 2020-06-26 华为技术有限公司 一种处理授权的方法和设备
US10721067B2 (en) * 2016-08-10 2020-07-21 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Secure processor for multi-tenant cloud workloads
CN108667600B (zh) * 2017-03-30 2021-09-14 上海诺亚投资管理有限公司 一种区块链上用户交易密钥的管理方法和系统
US10296741B2 (en) 2017-07-27 2019-05-21 International Business Machines Corporation Secure memory implementation for secure execution of virtual machines
CN110069422B (zh) * 2018-01-23 2021-06-18 普天信息技术有限公司 基于mips多核处理器的内存缓冲区回收方法
US11139959B2 (en) * 2018-02-01 2021-10-05 The University Of Chicago Stream ciphers for digital storage encryption
US11169717B2 (en) * 2018-12-28 2021-11-09 Micron Technology, Inc. Unauthorized access command logging using a key for a protected region of memory

Family Cites Families (6)

* Cited by examiner, † Cited by third party
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
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
US6101255A (en) 1997-04-30 2000-08-08 Motorola, Inc. Programmable cryptographic processing system and method
US6188602B1 (en) * 2000-01-25 2001-02-13 Dell Usa, L.P. Mechanism to commit data to a memory device with read-only access
JP4098478B2 (ja) 2001-01-31 2008-06-11 株式会社東芝 マイクロプロセッサ

Cited By (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
US7568112B2 (en) 2003-01-21 2009-07-28 Kabushiki Kaisha Toshiba Data access control method for tamper resistant microprocessor using cache memory
JP2004228786A (ja) * 2003-01-21 2004-08-12 Toshiba Corp 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法
JP2004246637A (ja) * 2003-02-14 2004-09-02 Fainaaku Kk 固有情報化プロセッサ、これを備えた処理装置および記憶装置、関連するプログラム実行方法、およびコンピュータプログラム
JP2004272816A (ja) * 2003-03-11 2004-09-30 Ntt Docomo Inc マルチタスク実行システム及びマルチタスク実行方法
US11651113B2 (en) 2003-08-26 2023-05-16 Panasonic Holdings Corporation Program execution device
US10318768B2 (en) 2003-08-26 2019-06-11 Panasonic Intellectual Property Corporation Of America Program execution device
US10607036B2 (en) 2003-08-26 2020-03-31 Panasonic Intellectual Property Corporation Of America Program execution device
US9811691B2 (en) 2003-08-26 2017-11-07 Panasonic Intellectual Property Corporation Of America Program execution device
US9524404B2 (en) 2003-08-26 2016-12-20 Panasonic Intellectual Property Corporation Of America Program execution device
US10970424B2 (en) 2003-08-26 2021-04-06 Panasonic Intellectual Property Corporation Of America Program execution device
US10108821B2 (en) 2003-08-26 2018-10-23 Panasonic Intellectual Property Corporation Of America Program execution device
US9218485B2 (en) 2003-08-26 2015-12-22 Panasonic Intellectual Property Corporation Of America Program execution device
JP2005078459A (ja) * 2003-09-01 2005-03-24 Toshiba Corp マイクロプロセッサ
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
JP2011076632A (ja) * 2003-11-26 2011-04-14 Intel Corp 公的にアクセス可能なストレージからデータ処理マシンの状態に関するプライベートデータへのアクセス
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
JP2007515709A (ja) * 2003-11-26 2007-06-14 インテル コーポレイション 公的にアクセス可能なストレージからデータ処理マシンの状態に関するプライベートデータへのアクセス
US7603566B2 (en) 2003-12-26 2009-10-13 Kabushiki Kaisha Toshiba Authenticated process switching on a microprocessor
JP2005196257A (ja) * 2003-12-26 2005-07-21 Toshiba Corp マイクロプロセッサ
US11550962B2 (en) 2004-06-30 2023-01-10 Socionext Inc. Secure processor and a program for a secure processor
US9536110B2 (en) 2004-06-30 2017-01-03 Socionext Inc. Secure processor and a program for a secure processor
US10303901B2 (en) 2004-06-30 2019-05-28 Socionext Inc. Secure processor and a program for a secure processor
US10685145B2 (en) 2004-06-30 2020-06-16 Socionext Inc. Secure processor and a program for a secure processor
US9672384B2 (en) 2004-06-30 2017-06-06 Socionext Inc. Secure processor and a program for a secure processor
US9141829B2 (en) 2004-06-30 2015-09-22 Socionext Inc. Secure processor and a program for a secure processor
US7865733B2 (en) 2004-06-30 2011-01-04 Fujitsu Semiconductor Limited Secure processor and a program for a secure processor
US9652635B2 (en) 2004-06-30 2017-05-16 Socionext Inc. Secure processor and a program for a secure processor
US10095890B2 (en) 2004-06-30 2018-10-09 Socionext Inc. Secure processor and a program for a secure processor
US8886959B2 (en) 2004-06-30 2014-11-11 Fujitsu Semiconductor Limited Secure processor and a program for a secure processor
JP2008512909A (ja) * 2004-09-10 2008-04-24 インターナショナル・ビジネス・マシーンズ・コーポレーション オン・チップ・ハードウェアをプログラミングするためのセキュアな機構を有する暗号化および復号化のための集積回路チップ
JP2007013678A (ja) * 2005-06-30 2007-01-18 Fujitsu Ltd Icチップ、ボード、情報処理装置及びコンピュータプログラム
JP2008046887A (ja) * 2006-08-17 2008-02-28 Ntt Docomo Inc Os切替装置及びos切替方法
JP2009193605A (ja) * 2009-06-02 2009-08-27 Panasonic Corp 半導体集積回路装置
US9298894B2 (en) 2009-06-26 2016-03-29 International Business Machines Corporation Cache structure for a computer system providing support for secure objects
US9098442B2 (en) 2009-06-26 2015-08-04 International Business Machines Corporation Secure object having protected region, integrity tree, and unprotected region
US9690717B2 (en) 2009-06-26 2017-06-27 International Business Machines Corporation Secure object having protected region, integrity tree, and unprotected region
US9727709B2 (en) 2009-06-26 2017-08-08 International Business Machines Corporation Support for secure objects in a computer system
US9471513B2 (en) 2009-06-26 2016-10-18 International Business Machines Corporation Cache structure for a computer system providing support for secure objects
JP2012531663A (ja) * 2009-06-26 2012-12-10 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ・システム中の安全オブジェクトに対するサポート
US10785240B2 (en) 2009-06-26 2020-09-22 International Business Machines Corporation Protecting from unintentional malware download
US9875193B2 (en) 2009-06-26 2018-01-23 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
US10007793B2 (en) 2009-06-26 2018-06-26 International Business Machines Corporation Secure object having protected region, integrity tree, and unprotected region
US9372967B2 (en) 2009-06-26 2016-06-21 International Business Machines Corporation Support for secure objects in a computer system
KR101457355B1 (ko) * 2009-12-22 2014-11-04 인텔 코포레이션 보안 애플리케이션 실행을 제공하는 방법 및 장치
US10102380B2 (en) 2009-12-22 2018-10-16 Intel Corporation Method and apparatus to provide secure application execution
US9087200B2 (en) 2009-12-22 2015-07-21 Intel Corporation Method and apparatus to provide secure application execution
US10885202B2 (en) 2009-12-22 2021-01-05 Intel Corporation Method and apparatus to provide secure application execution
JP2012530961A (ja) * 2009-12-22 2012-12-06 インテル・コーポレーション セキュアなアプリケーションの実行を提供する方法および装置
US8954752B2 (en) 2011-02-23 2015-02-10 International Business Machines Corporation Building and distributing secure object software
US9864853B2 (en) 2011-02-23 2018-01-09 International Business Machines Corporation Enhanced security mechanism for authentication of users of a system
US10007808B2 (en) 2011-09-06 2018-06-26 International Business Machines Corporation Protecting application programs from malicious software or malware
US9846789B2 (en) 2011-09-06 2017-12-19 International Business Machines Corporation Protecting application programs from malicious software or malware
JP2014112383A (ja) * 2013-12-19 2014-06-19 Intel Corp セキュアなアプリケーションの実行を提供するプロセッサ
JP2017084392A (ja) * 2016-12-22 2017-05-18 インテル・コーポレーション 装置
JP2019109910A (ja) * 2019-02-07 2019-07-04 インテル・コーポレーション プロセッサ

Also Published As

Publication number Publication date
EP1229427A3 (en) 2004-09-22
US7136488B2 (en) 2006-11-14
EP1229427A2 (en) 2002-08-07
JP4098478B2 (ja) 2008-06-11
US20020101995A1 (en) 2002-08-01

Similar Documents

Publication Publication Date Title
JP4098478B2 (ja) マイクロプロセッサ
JP4226816B2 (ja) マイクロプロセッサ
US7065215B2 (en) Microprocessor with program and data protection function under multi-task environment
JP3866597B2 (ja) 内部メモリ型耐タンパプロセッサおよび秘密保護方法
JP3880933B2 (ja) 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法
US7590869B2 (en) On-chip multi-core type tamper resistant microprocessor
CN104392188B (zh) 一种安全数据存储方法和系统
US9536110B2 (en) Secure processor and a program for a secure processor
US8190917B2 (en) System and method for securely saving and restoring a context of a secure program loader
JP4226760B2 (ja) マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP3801833B2 (ja) マイクロプロセッサ
EP2062191B1 (en) System and method for securely restoring a program context from a shared memory
US8095802B2 (en) System and method for securely saving a program context to a shared memory
JP6916454B2 (ja) ハードウェアアクアクセラレーテッド暗号法のためのキーのスレッド所有権
JP2002202720A (ja) 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法
JP2006350782A (ja) プロセッサ及びシステム
JP4282472B2 (ja) マイクロプロセッサ
US11748493B2 (en) Secure asset management system
JP4643702B2 (ja) マイクロプロセッサ
CN115994389A (zh) 一种基于risc-v架构的硬件内存加密系统及其应用
JP4021810B2 (ja) プロセッサ、プロセッサシステム及びキャッシュ一貫性制御方法
JP4309726B2 (ja) マイクロプロセッサ
JP2010055423A (ja) マイクロプロセッサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050311

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080218

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: 20080311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080313

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120321

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140321

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees