JP2002140236A - マイクロプロセッサおよびデータ保護方法 - Google Patents

マイクロプロセッサおよびデータ保護方法

Info

Publication number
JP2002140236A
JP2002140236A JP2000333635A JP2000333635A JP2002140236A JP 2002140236 A JP2002140236 A JP 2002140236A JP 2000333635 A JP2000333635 A JP 2000333635A JP 2000333635 A JP2000333635 A JP 2000333635A JP 2002140236 A JP2002140236 A JP 2002140236A
Authority
JP
Japan
Prior art keywords
key
data
key pair
program
storage area
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
JP2000333635A
Other languages
English (en)
Other versions
JP4153653B2 (ja
Inventor
Kenji Shirakawa
健治 白川
Mikio Hashimoto
幹生 橋本
Keiichi Teramoto
圭一 寺本
Satoru Ozaki
哲 尾崎
Kensaku Fujimoto
謙作 藤本
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 JP2000333635A priority Critical patent/JP4153653B2/ja
Priority to DE60124845T priority patent/DE60124845T2/de
Priority to EP01309182A priority patent/EP1202150B1/en
Priority to US09/984,407 priority patent/US7065215B2/en
Publication of JP2002140236A publication Critical patent/JP2002140236A/ja
Priority to US11/335,601 priority patent/US7673152B2/en
Application granted granted Critical
Publication of JP4153653B2 publication Critical patent/JP4153653B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Abstract

(57)【要約】 【課題】 マルチタスク環境下で、秘密保護の保持に必
要最小限な暗号データの転送でコンテキストの切り替え
を可能にする。 【解決手段】 マイクロプロセッサは、暗号化されたプ
ログラムを第1の暗号鍵(プログラム鍵)を用いて復号
化する命令復号処理部と、復号化されたプログラムによ
って実行されていたデータを第2の暗号鍵(データ鍵)
を用いて暗号化/復号化するデータ暗号/複号処理部を
有する。マイクロプロセッサの鍵ペア管理部は、第1お
よび第2の鍵をペアにして格納する鍵ペアテーブルを有
する。この鍵ペアを特定するタグを、実行プログラムに
関連するデータとともにレジスタファイルに格納する。
鍵ペア管理部のデータ鍵生成部は、新たなプログラム鍵
が与えられた場合に、この鍵で復号されたプログラムが
実行するデータを暗号化/複号化するためのデータ鍵を
生成する。この鍵のペアは、新規の鍵ペアとして鍵ペア
テーブルに格納される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチタスクのプ
ログラム実行環境を支援するマイクロプロセッサと、こ
のマイクロプロセッサによるデータ保護方法に関する。
【0002】
【従来の技術】計算機システムでプログラムを実行する
にあたり、保護機能を持つプロセッサが求められてい
る。現在実用化されているプロセッサにおいては、仮想
メモリ管理おける保護機能や、周辺入出力デバイスへの
アクセスの制約などの機構は、マルチタスクの実行環境
を提供する計算機システムの安全性を確保するうえで、
必須の条件とされている。
【0003】さらに近年では、保護機構を考える上で、
それ自体が保護されるべき一群のプログラムが特に重要
な保護対象となってきている。たとえば、著作権により
保護されているプログラムは、著作権を侵害する形で実
行することが認められない。また、第三者から秘匿すべ
きデータを扱うプログラムもある。秘匿すべきデータを
扱うプログラムが、その実行状態とともに解析される可
能性があるとしたら、データの秘匿性が保証できなくな
り、厳重な保護が要求される。
【0004】これらプログラムを安全に実行するため
に、暗号学的に安全性を保証するシステムが提案され、
実用化されている。その一つが、耐タンパ・ソフトウェ
アである(David Aucsmith et.al; ``Tamper Resistant
Software: An Implementation'', Proceeding of the 1
996, Intel Software Developer's Conference)。これ
は、プログラムの一部あるいは全部を暗号化して配布・
保存し、これを利用する直前に自らプログラムとデータ
を復号化して実行し、終了時に必要であれば再び暗号化
する技術である。
【0005】しかし、耐タンパソフトウェア技術は、基
本的に逆アセンブラ、デバッガなどの解析ツールによる
解析を繁雑にするだけのものである。プログラムがプロ
セッサによって実行可能である以上、プログラムの開始
時から順を追って解析していけば必ずプログラムの実行
過程を解読分析することが可能である。つまり、プログ
ラムの配布の過程においては、安全ではあっても、一旦
実行するに至ると、実行する計算機システムにアクセス
する手段をもつ第三者からは、プログラムとそのデータ
を秘匿することはできないものであった。
【0006】ソフトウェアによって暗号・復号化を行な
うのではなく、暗号化/複号化の処理機能自体をマイク
ロプロセッサに内蔵し、復号したプログラムをマイクロ
プロセッサの外部から隠匿するという一連の技術があ
る。これらは、Hampsonによる米国特許第4,47,902号、H
artmanの米国特許第5,224,166号、Davisの米国特許第5,
806,706号、Takahasiの米国特許第5,825,878号、Leonar
d et.alの米国特許第6,003,117号、特開平11-282756号
などに開示されている。
【0007】マイクロプロセッサに暗号/複号処理機能
を内蔵する方式に特徴的なことは、マイクロプロセッサ
が、秘密データを外部から物理的に隠蔽された形で保持
できる点にある。すなわち、マイクロプロセッサの破壊
的な検査によっても秘密が開示されない形で、秘密デー
タが保持される。これを次のように利用する。公開鍵暗
号系でいう秘密鍵を、秘密データとしてあらかじめマイ
クロプロセッサに内蔵させる。プログラムは、たとえば
プログラムベンダーにより、ある暗号鍵(共通鍵暗号系
を用いることが一般的である)で暗号化されて、マイク
ロプロセッサに配布される。このとき、暗号鍵を、プロ
セッサの秘密鍵に対応する公開鍵でさらに暗号化してプ
ログラムに添付する。
【0008】この機構により、プログラム自体を安全な
形で提供することが可能であり、その実行過程を逆アセ
ンブルなどの解析手法を用いて復元することはできな
い。また、プログラムの暗号鍵を知ることなくプログラ
ムを意図する形に改変することは、暗号学的に困難であ
る。
【0009】しかし、暗号プログラムを実行するこれら
のマイクロプロセッサには、大きな問題点があった。そ
れは、これらマイクロプロセッサは、通常、マルチタス
ク環境を実現するオペレーティング・システム(以下、
「OS」という)のもとで使用されることである。マル
チタスク環境においては、コンテキスト・スイッチとい
う操作でマイクロプロセッサを時分割することで、複数
のプログラムを見かけ上同時に実行する。このコンテキ
スト・スイッチの過程において、OSは、プロセッサの
実行状態の全てを読み書きすることが可能である。した
がって、OSの挙動を解析すること、あるいはOS自体
を改竄することにより、暗号で保護されているはずのプ
ログラムも、その実行状態が全て解析されるおそれがあ
る。
【0010】この問題に対して、従来技術は部分的な解
決策を提案している。たとえば、特開平第11-282756号
公報は、アプリケーションの持つ秘密情報を保存するた
めにプロセッサ内に設けられた秘密メモリの技術を開示
している。この例では秘密メモリの中のデータへアクセ
スするために、予め定められた参照値を必要とする。し
かしながら、同一のプロセッサで複数のプログラムが走
っている場合に、特にオペレーティング・システムか
ら、秘密データのアクセス権を得るための参照値をどの
ように保護するかは、なんら開示されていない。
【0011】また、特許出願番号第2000−1350
10号公報に開示される技術では、コンテキスト・スイ
ッチをハードウェアで行ない、そのときにレジスタファ
イルの内容を暗号化した上でメモリに一時的に退避する
ことにより、オペレーティング・システムからプログラ
ムの実行状態を隠匿している。これにより、メモリに退
避したプロセッサの実行状態を解析して秘密データを復
元することは暗号学的に困難となり、暗号プログラムの
安全性を保証することができる。しかしながら、この技
術にも、次のような問題がある。
【0012】
【発明が解決しようとする課題】第1の問題は、暗号に
よる保護の対象がレジスタファイルに限定されている点
である。マイクロプロセッサ内部に、レジスタファイル
以外に多数あるいは大容量のメモリを持つ場合も想定さ
れ、その場合、コンテキスト・スイッチングの負荷は容
量に比例して大きくなると思われる。しかし上記公報に
は、これら内部メモリをどのように保護するか、あるい
はコンテキスト・スイッチの負荷をいかに軽減するか
は、まったく開示されていない。
【0013】たとえばプロセッサが大容量の内部メモリ
を持つ場合、従来の技術では、メモリのすべてを保護で
きないため、保護データの漏洩は避けられない。また、
すべてを保護しようとすると、大容量のため暗号処理に
伴う性能劣化を招き、実用化する上での大きな制約とな
っている。
【0014】大容量のキャッシュ・メモリを持つプロセ
ッサにおいて、コンテキスト・スイッチの負荷を軽減さ
せるために用いられる手法に、キャッシュの連想メモリ
部でのヒット・ミスヒットの判定に用いるタグに、キャ
ッシュされているデータを所有するプロセスを特定する
識別子を含ませるという方法が知られている(以下、プ
ロセス・タグ方式と呼ぶ)。
【0015】しかし、この方法を単純に適用することは
難しい。プロセスとは、オペレーティング・システムが
プロセッサを仮想化するために用いる概念であり、プロ
セッサそのものがプロセスを特定する識別子を扱うこと
は困難だからである。また、仮に、プロセッサがプロセ
スを特定する識別子によってデータへのアクセスを保護
する仕組みを持つとしても、プロセス識別子がオペレー
ティング・システムの管理下にある以上、オペレーティ
ング・システムの改竄による秘密の漏洩に対しては、と
るべき措置がない。
【0016】第2の問題点は、コンテキストのスイッチ
ングがハードウェアで固定されており、すべてのレジス
タが保存あるいは復帰されることになり、柔軟性に欠け
る点である。たとえば、頻繁に起きる例外の処理のとき
には、レジスタファイルの一部だけを保存・復帰すると
いった最適化が望まれるが、特許出願番号第2000−
135010号公報に開示される技術では、レジスタフ
ァイルの内容がすべて一括して保存・復帰される。
【0017】そこで、本発明の第1の目的は、プログラ
ム自体の秘密と、プログラムが扱うデータの秘密の双方
を暗号学的に保証するとともに、マルチタスク環境下で
コンテキスト・スイッチの負荷を軽減させることのでき
るマイクロプロセッサを提供することにある。
【0018】本発明の第2の目的は、マルチタスク環境
下で、必要な部分だけのデータの保存・復帰を可能にす
るために、保護対象の処理の最適化を行なうことにあ
る。
【0019】
【課題を解決するための手段】上記第1および第2の目
的を同時に達成するために、本発明では、基本的に、公
開鍵暗号系によるプログラムの暗号化鍵の配布方式を前
提とし、公開鍵暗号系で与えられる、暗号プログラムを
復号するためのプログラム鍵(第1の鍵)と、このプロ
グラムによって処理されたデータを暗号化/複号化する
ためにマイクロプロセッサが生成するデータ鍵(第2の
鍵)とを、鍵ペアとして関連付けて保持する鍵管理方式
を提案する。この方式によれば、マイクロプロセッサ
は、暗号化されたプログラムを第1の鍵を用いて復号化
し、第1の鍵に対応する第2の鍵を生成するとともに、
これらの鍵の組み合わせに対して識別子を与える。第1
の鍵と第2の鍵は、鍵ペアとして鍵ペアテーブルに書き
込まれ、前記識別子はこの鍵ペアを特定するために以降
の処理で使用される。復号化されたプログラムの実行中
には、このプログラムの復号に用いた第1の鍵の鍵ペア
に与えられた識別子を提示しておく。割り込みなどによ
り、復号されたプログラムの実行が中断される場合は、
このプログラムによって処理されていたデータを、現在
の識別子に対応する第2の鍵で暗号化し、外部のメモリ
等に退避させる。処理されたデータに対するアクセス権
の判定には、鍵ペアの一致を用いることで、プロセス間
のデータの保護を暗号学的に保証する。
【0020】このような方式を実現するために、本発明
に係るマイクロプロセッサは、暗号化されたプログラム
を第1の暗号鍵(たとえばプログラム鍵)を用いて復号
化する命令復号処理部と、復号化されたプログラムによ
って実行されていたデータ(すなわちプロセスの実行状
態)を第2の暗号鍵(たとえばデータ鍵)を用いて暗号
化/復号化するデータ暗号/複号処理部と、第1および
第2の鍵をペアにして格納する第1の記憶領域(たとえ
ば鍵ペアテーブル)を有する鍵ペア管理部と、この鍵ペ
アを特定するタグ(識別子)を、前記プログラムに関連
するデータとともに格納する第2の記憶領域(たとえば
レジスタファイル)とを有する。
【0021】プログラム鍵とデータ鍵のペアは不可分に
格納され、これをプログラムの側から操作するときに
は、鍵ペアをプロセッサに固有の秘密鍵で暗号化した形
でのみ操作される。これにより、暗号化プログラムの実
行にあたり、プログラム自体の解析を暗号学的に困難と
し、かつプログラムの実行状態の解析をオペレーティン
グ・システムからも困難とする。また、鍵ペアを特定す
るタグを対応する各データに添付することによって、暗
号処理を伴うデータ転送を、秘密保持に必要最小限の範
囲で行なうことができる。
【0022】暗号化プログラムを復号するためのプログ
ラム鍵は、公開鍵暗号系で与えられる。マイクロプロセ
ッサは、データ鍵生成部をさらに有し、新たなプログラ
ム鍵が与えられた場合に、このプログラム鍵で復号され
たプログラムによって実行されるデータを暗号化/複号
化するためのデータ鍵を生成する。このようにして生成
された鍵のペアは、鍵ペアテーブルに格納される。
【0023】マイクロプロセッサは、現在実行中のプロ
グラムに用いられている有効な鍵ペアの識別子である、
実効鍵ペア識別子を格納する第3の記憶領域(システム
レジスタ)を有する。プログラムが、ユーザモードで実
行しているときに、割り込みなどによりカーネルモード
に遷移すると、実効鍵ペア識別子は、カーネルモードを
示す特定の値に切り替わる。これにより、ユーザモード
のプログラムと、割り込み処理プログラムとを明確に区
別することができる。割り込み処理プログラムが、ユー
ザモードのプログラムによって第2の記憶領域に納めら
れていたデータを外部に一時的に退避させるにあたっ
て、データ暗号/復号処理部は、そのデータに付随する
識別子が指定する暗号鍵を用いて、外部メモリに転送す
る。これにより、割り込み等による例外発生時にも、デ
ータの安全は保護される。
【0024】鍵ペアテーブルは、第1の鍵(プログラム
鍵)と第2の鍵(データ鍵)を1対1対応でペアにし
て、複数の鍵ペアを格納する。
【0025】あるいは、鍵ペアテーブルは、第1の鍵の
インデックスと、第2の鍵のインデックスとを関連付け
て格納する参照格納領域と、第1および第2の鍵を個別
に格納する鍵格納領域とを含む構成としてもよい。この
場合、鍵のインデックス自体はサイズが小さく、参照領
域の記憶容量は少なくてすむ。また、個別に格納された
第1および第2の鍵は、インデックスによって指定され
ることになるので、たとえば、マルチタスク環境下で、
同じひとつのプログラムに対して異なる種類のデータが
処理されている場合など、インデックスを用いて、プロ
グラムの鍵と、処理データの鍵とを適正に組み合わせて
複数の鍵ペアを特定することが可能になる。
【0026】マイクロプロセッサは、第2の記憶領域と
第3の記憶領域に接続されるメモリアクセス部をさらに
有する。メモリアクセス部は、転送すべきデータに添付
された鍵ペアの識別子と、実効鍵ペア識別子とに基づい
てデータ転送の可否を判断するデータ転送判定部を有す
る。
【0027】マイクロプロセッサはまた、第2の記憶領
域と第3の記憶領域に接続される論理演算部をさらに有
する。論理演算部は、演算のオペランドに添付された識
別子と、実効鍵ペア識別子とに基づいて演算実効の可否
を判断する演算実効判定部を有する。
【0028】このように、鍵ペアを特定する識別子を、
マイクロプロセッサ内で扱うデータに付加し、データ転
送や演算操作の際に、データに付随する鍵ペアの識別子
をアクセス権や演算可否の判断に用いることによって、
データの安全性を一層向上することができる。
【0029】第2の記憶領域は、複数のエントリから成
り、各エントリが、プログラムに関連するデータと、そ
のデータに用いられる鍵ペアを特定する識別子とを有す
る。この構成により、たとえば割り込みによりカーネル
モードでの処理が希望され、第3記憶領域の実効鍵ペア
識別子の値がカーネルモードを示す値を取った場合に、
所望のエントリのデータおよび対応する識別子だけを暗
号化して、外部メモリに退避させることが可能になる。
すなわち、割り込み発生時に、第2記憶領域内にあるデ
ータ全体の退避に加えて、その一部だけを暗号化して退
避させることが可能になる。
【0030】本発明のその他の特徴、効果は、以下の詳
細な説明でいっそう明確になる。
【0031】
【発明の実施の形態】<第1実施形態>図1から図15
を参照して、本発明の第一実施形態にかかるマイクロプ
ロセッサを説明する。本発明において、マイクロプロセ
ッサは、暗号化プログラムをマルチタスク環境下で実行
することを前提とする。
【0032】図1は、本発明の第一実施形態に係るマイ
クロプロセッサ101の機能構成を示すブロック図であ
る。マイクロプロセッサ101は、プログラムを実行す
るプロセッサ・コア201、プログラムの命令列を一時
的に格納する命令キャッシュ301、このプログラムに
よって処理されるデータを一時的に格納するデータキャ
ッシュ401、暗号化されたプログラムを実行時に復号
してプロセッサコアに供給する命令復号処理部501、
復号されたプログラムによって実行されていたデータを
暗号化あるいは復号化するデータ暗号/複号処理部60
1と、鍵ペア管理部701を有する。
【0033】命令復号処理部501において、暗号化プ
ログラムの復号には、公開鍵系で与えられるプログラム
鍵を用いる。また、プログラムが実行していたデータの
暗号化/複号化には、プログラム鍵に対応して生成され
たデータ鍵を用いる。第1実施形態の特徴として、鍵ペ
ア管理部701は、このプログラム鍵とデータ鍵とを1
対1対応でペアにして格納する鍵ペアテーブルを有する
が、これについての詳細は後述する。
【0034】また、プロセッサ・コア201は、システ
ムレジスタ210と、レジスタファイル230を含む。
システムレジスタ210は、現在実行中のプログラムの
ための鍵ペアを特定するタグ(識別子)を提示する。レ
ジスタファイルは、プログラムデータあるいは処理デー
タを、それに対応する鍵ペアのタグとともに格納する。
これらの機能の詳細については後述する。
【0035】マイクロプロセッサ101はさらに、プロ
セッサ・バス102、外部バス・インタフェース103
を有し、マイクロプロセッサの外部にあるメモリや周辺
デバイスと外部バス・インタフェース103を介して接
続される。
【0036】プロセッサ・コア201、命令キャッシュ
301、データ・キャッシュ401は、図1において破
線104で示される保護領域内にある。マイクロプロセ
ッサ101の保護領域104は、外部あるいはOSから
保護される領域であり、この領域内部ではデータは平文
状態で取り扱われる。一方、保護領域104の外部で
は、秘匿すべきデータは必ず暗号化されている。保護領
域外部から、暗号化されたデータが保護領域104の内
部に読み込まれるときに、それが命令として読み込まれ
るときには命令復号化部501で復号化され、データと
して読み込まれるときには、データ暗号復号化部601
で復号化される。復号化にあたって使用するプログラム
鍵およびデータ鍵は、鍵ペア管理部701から供給され
る。
【0037】上述したように、第1実施形態の特徴とし
て、復号化された平文状態のデータには、暗号操作を経
たことを示す属性として、復号処理に用いた鍵ペアを特
定するタグが付加され、プロセッサコア201内のレジ
スタファイル230に格納される。
【0038】図2および図3は、マイクロプロセッサ1
01の処理操作の大まかな流れを示す。
【0039】まず、図2に示すように、ステップS21
で、マイクロプロセッサ101の外部のメモリに格納さ
れた暗号化プログラムの命令列を、現在実行中のプログ
ラムの有効な鍵ペア(以下、「実効鍵ペア」と称する)
のプログラム鍵を用いて復号化する。現在の実効鍵ペア
は、システムレジスタに鍵ペアのタグが提示されている
ので、このタグに基づいて知ることができる。図2の例
では、実効ペアタグの値は#1である。このタグ値に基
づいて、鍵ペア管理部の鍵ペアテーブルからタグ#1に
対応するプログラム鍵を読み出す。
【0040】次に、ステップS23に示すように、復号
化されて平文状態になった命令列にしたがって、プログ
ラムを実行する。このプログラムの実行、すなわち演算
操作の結果得られたデータには、鍵ペアタグが添付され
て、レジスタファイル230に格納される。
【0041】次にステップS25に示すように、レジス
タファイルのデータをいったんデータキャッシュ401
に転送する。
【0042】最後に、ステップS27に示すように、こ
のデータに添付された鍵ペアタグに基づいて、鍵ペアテ
ーブルからデータ鍵を取りだし、データ鍵でデータを暗
号化する。暗号化されたデータを外部メモリに転送する
(退避させる)。
【0043】図3は、退避させたデータの復帰処理フロ
ーである。まず、復帰するにあたって使用するべき鍵ペ
アタグを特定する。そして、外部メモリから暗号化され
たデータをマイクロプロセッサ内部に取り込む。鍵ペア
タグが指定するデータ鍵を鍵ペアテーブルから取り出
し、これを用いてデータを復号し、保護領域の内にある
データキャッシュ401にキャッシュする。
【0044】次に、ステップS33に示すように、デー
タキャッシュ401上の平文データをレジスタファイル
230に転送する。そして、ステップS35に示すよう
に、レジスタファイル230上のデータに対する演算操
作を再開する。
【0045】図4から図11は、このような操作を行な
うマイクロプロセッサ101の各構成要素の詳細図であ
る。これらの図に基づいて、各要素の構成と、鍵ペア・
タグによる保護機能について説明する。
【0046】図4は、プロセッサ・コア201の詳細な
構成例を示す。以下の説明においては、MIPS Technolog
ies社のRISC型マイクロプロセッサのアーキテクチャ
に、本発明に基づく変更を加えたものを例にとって説明
する。より具体的には、プロセッサのパイプライン構成
については、MIPS Technologies社のR3000系のも
のを、命令セットについては、MIPS-IないしはMIPS-IV
命令セットを例にとって説明するが、これは本発明の適
用範囲をMIPS Technologies 社のプロセッサに限定する
ものではない。
【0047】なお、図4のプロセッサ・コア201の5
つのパイプラインステージIF(instruction fetc
h)、RF(register read)、EX(execution)、M
EM(memory access)、WB(write back)を左端に
示す。
【0048】プロセッサ・コア201は、システムレジ
スタ210と、命令フェッチ・デコーダ220と、レジ
スタファイル230と、演算部250と、メモリアクセ
ス部260を含む。
【0049】システムレジスタ210は、MIPS R3000の
CP0に相当するシステム・レジスタをもとにして、仮想
アドレス管理や例外処理機能に追加して、現在実行して
いるプロセスを特定する有効な鍵ペアのタグを格納する
実効鍵ペアタグ・レジスタ211を備える。すなわち、
実効鍵ペアタグ・レジスタ211は、現在実行中の有効
なプログラムと、このプログラムによって処理されてい
るデータとを暗号処理する鍵のペアを示すタグを格納し
ている。
【0050】命令フェッチ・デコーダ220は、プログ
ラムカウンタ221と、命令バッファ222と、命令実
行制御部223を含む。命令実行制御部223の制御の
もとに、プログラムカウンタ221の指すアドレスか
ら、命令を命令バッファ222にフェッチし、これをデ
コードして、各データ・パスを制御する信号(図中では
省略)を生成する。
【0051】第1実施形態では、命令キャッシュ301
への読み出し要求のパラメータとして、命令アドレスに
加えて、現在実行中のプロセスを示す実効鍵ペアタグ・
レジスタ211の値も送られる。
【0052】レジスタファイル230は、各レジスタ2
31において、レジスタデータ部231−1とともに、
本発明に特徴的なレジスタタグ部231−2を持つ。レ
ジスタタグ部231−2は、そのレジスタに格納された
データの暗号による保護属性を示す鍵ペア・タグが格納
される。
【0053】命令実行パイプラインのRF(レジスタ・
リード)フェーズでは、レジスタデータ部231−1の
内容がオペランド・バス240に、レジスタタグ部23
1−2の内容がオペランドタグ・バス241に置かれ
る。
【0054】算術論理演算部250は、命令実行パイプ
ラインのEXフェーズに相当する。第1実施形態では、
算術論理演算部250は、通常の演算器(演算データパ
ス)251の他に、演算オペランドタグ判定部252を
備える。図5に示すように、演算オペランドのタグ判定
部252は、少くとも、演算の種類、演算のオペランド
に付加されたタグの値、および実効鍵ペア・タグの三つ
の値に応じて、演算の実行の可否を決定する機能を持
つ。演算の種類は、実効制御部223からタグ判定部2
52に入力され、タグ値は、レジスタファイルのタグ部
231−2から入力される。現在の実効鍵ペア・タグ
は、システムレジスタ210の実効鍵ペア・タグ・レジ
スタ211から入力される。タグ判定部252によって
実行が否決された場合には、プロセッサ・コア201
は、再開のできない例外を発生し、その命令はアボート
される。実行が可決された場合には、命令に実行結果が
存在すれば、その結果のデータがリザルト・バス280
に、結果の鍵ペア・タグがリザルトタグ・バス281に
置かれる。
【0055】メモリアクセス部260は、命令実行パイ
プラインのEX/MEMフェーズに相当する。第1実施
形態では、メモリアクセス部260は、通常のアドレス
計算部261の他に、データ転送タグ判定部262を有
する。メモリアクセス部260は、データ・キャッシュ
401への読み書き要求のパラメータとして、アドレス
計算部261で求めたデータ・アドレスに加えて、オペ
ランドに付加されたタグの値あるいは実効鍵ペア・タグ
の値の、いずれか一方も送出する。データ転送タグ判定
部262は、少くとも、データの転送元、データの転送
先、転送するデータに付加されたタグの値、および実効
鍵ペア・タグの四つの値に応じて、転送の実行の可否を
決定する機能を持つ。実行が否決された場合には、プロ
セッサ・コアは、再開のできない例外を発生し、その命
令はアボートされる。実行が可決された場合には、命令
に実行結果が存在すれば、その結果のデータがリザルト
・バス280に、結果の鍵ペア・タグがリザルトタグ・
バス281に置かれる。
【0056】鍵ペア管理部インタフェース270は、本
発明に固有のものであり、後述する鍵ペア管理部701
を制御するためのものである。
【0057】命令実行パイプラインのWBステージでは、
リザルト・バス280上のデータと、リザルトタグ・バ
ス281上の鍵ペア・タグが、必要であれば、レジスタ
ファイル230に書き戻される。
【0058】図6は、現在の実効鍵ペア・タグを提示す
るシステムレジスタ210の構成図である。実効鍵ペア
・タグ・レジスタ211は、現在実行中のプログラムの
有効な鍵ペアのタグを提示する。第1実施形態では、鍵
ペア・タグのうち、2つのタグ値を、特別な用途のため
に予約している。
【0059】一つは、暗号処理を行わないことを示すた
めのタグ値である(これをゼロ・タグと呼ぶ)。命令復号
処理部501と、データ暗号処理部601においては、
鍵ペア・タグとしてゼロ・タグ(Tag-0)が提示される
と、暗号操作を行わずに、データ(あるいは命令)をその
まま転送する。
【0060】もう一つは、プロセッサの動作モードとし
て、カーネルモードが選択されている時に用いるために
予約されているタグ値(tag-K)である。このタグ値に
対応する鍵ペアには、カーネルモードで実行するプロセ
ス(通常の計算機システムにおいては、オペレーティン
グ・システム)のプログラム鍵およびデータ鍵が登録さ
れる。
【0061】実効鍵ペア・タグ・レジスタ211は、カ
ーネルモードでの鍵ペア・タグを格納するカーネル鍵ペ
アタグ・レジスタ211ー1と、ユーザモードでの鍵ペ
ア・タグを格納するユーザ鍵ペアタグ・レジスタ211
−2を備え、そのときのプロセッサの実効モードにより
いずれかが選択されて、以下の処理で有効な鍵ペアタグ
(実効鍵ペアタグ)として出力される。
【0062】図7は、命令キャッシュ301の詳細な構
成例を示す。命令キャッシュ301は、複数の命令キャ
ッシュライン302の配列で構成される。本発明のキャ
ッシュラインは、キャッシュ中のアドレスの検索方法は
公知の手法で行うが、本発明に特徴的な要素として、各
命令キャッシュラインは、そのラインにキャッシュされ
ているプログラムデータの保護属性を示す、すなわちキ
ャッシュされているプログラムデータに作用させるべき
プログラム鍵を示す鍵ペア・タグを格納する領域302
−1を有する。鍵ペア・タグ領域302−1の大きさ
は、後述する鍵ペアテーブルの全エントリをインデック
スできるだけのビット数があればよい。たとえば64エ
ントリの鍵ペアテーブルを用いるとすれば、6ビットあ
れば十分である。なお、プログラムデータの外部メモリ
での所在を示すアドレスや、その状態を示す領域も、各
キャッシュラインに設けられている。
【0063】図8は、データ・キャッシュ401の詳細
な構成例を示す。データキャッシュ401は、複数のデ
ータキャッシュライン402の配列で構成される。デー
タキャッシュラインもまた、そのラインにキャッシュさ
れている処理データの保護属性を示す、すなわちキャッ
シュされている処理データに作用させるべきデータ鍵を
示す鍵ペア・タグを格納する領域402−1を有する。
外部メモリのアドレスおよび状態を示す領域が設けられ
ているのは、命令キャッシュ301と同様である。
【0064】図9は、命令復号処理部501の詳細な構
成例とその動作を示す。命令復号処理部501は、復号
化処理の対象となっているプログラムデータやその暗号
鍵を一時的に保持するコマンドデータ・レジスタ502
と、共通鍵による復号化を行う命令復号演算器503
と、これらを制御するための命令復号制御部504とか
ら構成される。
【0065】命令復号処理部501はまず、命令キャッ
シュ301から読み出し要求を受ける。このときのパラ
メータは、外部メモリのアドレスと、読み出したプログ
ラムデータに対して作用させる暗号鍵(プログラム鍵)
を特定する鍵ペア・タグである。まず、アドレスをパラ
メータとして外部メモリに読み出し要求を出す。また、
鍵ペア・タグをパラメータとして、鍵ペア管理部701
にプログラム鍵の読み出し要求を出す。
【0066】これらの読み出し要求に応じて外部メモリ
から送られてきた暗号化プログラムデータとプログラム
鍵は、コマンドデータ・レジスタ502に格納される。
命令復号演算器503は、コマンドデータ・レジスタ5
02上の暗号化されているプログラムデータに対してプ
ログラム鍵を作用させ、暗号プログラムデータを復号化
する。復号化が完了すると、平文のデータが命令キャッ
シュへと出力される。
【0067】図10は、データ暗号処理部601の詳細
な構成例とその動作を示す。データ暗号処理部601
は、プログラムによって処理された平文状態あるいは暗
号状態のデータを一時的に格納するコマンドデータ・レ
ジスタ602と、共通鍵による暗号化/復号化を行なう
データ暗号/復号演算器603と、これらを制御するた
めのデータ暗号制御部604とから構成される。
【0068】データ暗号処理部601は、データキャッ
シュ401から読み出しおよび書き込み要求を受ける。
読み出し要求は、たとえば割り込みによる例外発生時
に、一時的に外部のメモリに退避させておいたデータ
を、割り込み処理後に呼び戻す場合に、発せられる。書
き込み命令は、割り込み発生時に、それまで処理してい
たデータを護るためにいったん暗号化して外部のメモリ
に書き込む場合に発せられる。
【0069】読み出し要求のパラメータは、外部メモリ
のアドレスと、読み出したデータに対して作用させる暗
号鍵を特定する鍵ペア・タグである。まず、アドレスを
パラメータとして外部メモリに読み出し要求を出す。ま
た、鍵ペア・タグをパラメータとして鍵ペア管理部70
1にデータ鍵の読み出し要求を出す。外部メモリに暗号
化された状態で格納されていた処理データと、鍵ペア管
理部701からのデータ鍵は、コマンドデータ・レジス
タ601に格納される。データ暗号演算器602は、コ
マンドデータ・レジスタ602上のデータに対してデー
タ鍵を作用させ、暗号化されていたデータを復号化す
る。復号化が完了すると、平文のデータがデータ・キャ
ッシュへと出力される。
【0070】一方、書き込み要求のパラメータは、処理
データを書き込むべき(すなわち一時的に退避させるべ
き)外部メモリのアドレスと、転送するデータと、デー
タに対して作用させる暗号鍵を特定する鍵ペア・タグで
ある。まず、鍵ペア・タグをパラメータとして鍵ペア管
理部701にデータ鍵の読み出し要求を出す。データ暗
号/復号演算器603は、コマンドデータ・レジスタ6
02上の平文データに対してデータ鍵を作用させ、平文
データを暗号化する。暗号化が完了すると、暗号化され
たデータが外部メモリへと出力される。
【0071】図11は、鍵ペア管理部701の詳細な構
成例を示す。鍵ペア管理部701は、プロセッサ・コア
201とのインタフェース702と、命令復号処理部5
01とのインタフェース703と、データ暗号処理部6
01とのインタフェース704と、鍵ペア・テーブル7
10と、鍵ペア制御部720とから構成される。
【0072】鍵ペア・テーブル710は、複数の鍵ペア
のエントリー711を有する。それぞれの鍵ペアは、プ
ログラム鍵711−1とデータ鍵711−2とから構成
される。本発明でいう鍵ペア・タグとは、この鍵ペアの
配列からなる鍵ペア・テーブル710のインデックスで
ある。鍵ペア・テーブル710の動作は、以下で説明す
る三つの読み出し操作と、一つの書き込み操作である。
【0073】(1)プログラム鍵の読み出し 命令復号処理部501と鍵ペア管理部701との間で行
われる動作であり、命令復号処理部インタフェース70
3と接続されるポートを介する読み出し操作である。命
令復号処理部501のレジスタにある鍵ペア・タグ(す
なわちインデックス)によって特定される鍵ペアのプロ
グラム鍵を取り出して出力する。
【0074】(2)データ鍵の読み出し データ暗号/復号処理部601と鍵ペア管理部701と
の間で行われる動作であり、データ暗号処理部インタフ
ェース704と接続されるポートを介する読み出し操作
である。データ暗号/復号処理部601のレジスタにあ
る鍵ペア・タグ(すなわちインデックス)により特定さ
れる鍵ペアのデータ鍵を取り出して出力する。
【0075】(3)鍵ペアの読み出し プロセッサ・コア201と鍵ペア管理部701との間で
行われる動作であり、鍵ペア制御部710と接続される
ポートを介する読み出し操作である。鍵ペア・タグによ
り特定される鍵ペアのプログラム鍵とデータ鍵の両方を
出力する。
【0076】(4)鍵ペアの書き込み 鍵ペア制御部720と接続されるポートを介する書き込
み操作であって、パラメータとして与えられるプログラ
ム鍵とデータ鍵とを、インデックスにより指定される鍵
ペアテーブル上の鍵ペアとして格納する。
【0077】鍵ペア管理部701の鍵ペア制御部720
は、プロセッサ・コア201からの要求に従い、次の三
つの操作を行なう。
【0078】(1)新しい鍵ペアの登録 新規の暗号プログラムを実行する場合、その暗号プログ
ラムを復号するためのプログラム鍵と、このプログラム
によって実行処理されたデータを暗号化/復号化するた
めのデータ鍵をペアにして新規に登録する必要がある。
鍵ペア制御部720は、プロセッサ・コア201から、
プログラム鍵をプロセッサの公開鍵で暗号化したプログ
ラム鍵データと、これに用いられることになる鍵ペア・
タグを提示される。プログラム鍵データは、鍵登録用レ
ジスタ721に格納され、一方、鍵ペア・タグは鍵ペア
・テーブル710へのインデックスとして用いられる。
【0079】公開鍵暗号処理部722は、プロセッサの
秘密鍵を用いて、鍵登録用レジスタ721上の鍵データ
を復号化し、鍵ペア・レジスタ724のプログラム鍵格
納領域724−1に格納する。また、データ鍵生成部7
23は、任意の手段、たとえば乱数発生機能でデータ鍵
を生成し、これを鍵ペア・レジスタ724のデータ鍵格
納領域724−2に格納する。鍵ペア制御部720は、
これら二つの鍵がレジスタ724に格納されると、鍵ペ
ア・テーブル710の鍵ペア書き込み操作に基づいて、
鍵ペア・テーブル710に新規の鍵ペアを登録する。
【0080】(2)既存の鍵ペアの読み出し 鍵ペア制御部720は、プロセッサ・コア201から、
必要な鍵ペア・タグを提示する。この鍵ペア・タグは鍵
ペア・テーブル710へのインデックスとして用いられ
る。鍵ペア・テーブル710は、その読み出し操作によ
って、インデックスが指定する鍵ペアを取り出し、その
結果を鍵ペア制御部720の鍵ペア・レジスタ724に
格納する。鍵ペア暗号処理部725は、鍵ペア・レジス
タ724上に格納されている平文状態のプログラム鍵7
24−1とデータ鍵724−2とを、一つのデータとし
てプロセッサの秘密鍵を用いて暗号化し、その結果を暗
号化鍵ペア・レジスタ726に格納する。鍵ペア制御部
720は、暗号化鍵ペア・レジスタ726上のデータを
プロセッサ・コアへの出力とする。
【0081】(3)既存の鍵ペアの書き込み 鍵ペア制御部720は、プロセッサ・コア201から、鍵
ペア・タグ、およびプロセッサの秘密鍵で暗号化された
鍵ペアである鍵ペア・データが提示される。鍵ペア・デ
ータは暗号化鍵ペア・レジスタ726に格納され、鍵ペ
ア・タグは鍵ペア・テーブル710へのインデックスと
して用いられる。 鍵ペア暗号処理部725は、暗号化
鍵ペア・レジスタ726上のデータを、プロセッサの秘
密鍵を用いて復号化する。結果として得られた平文デー
タは、プログラム鍵およびデータ鍵の2つの鍵として、
鍵ペア・レジスタ724に格納される。鍵ペアテーブル
710は、その書き込み操作に基づいて、レジスタ72
4上の鍵ペアを書き戻す。
【0082】本発明のマイクロプロセッサには、内部に
データを格納するためのメモリが複数存在する。さら
に、外部メモリ・インタフェース103を介してアクセ
スされる外部メモリが存在する。これらのうち、マイク
ロプロセッサの内部にあって、鍵ペア・タグを格納する
領域が付加されているメモリ(たとえばシステムレジス
タ210、レジスタファイル230など)を、「内部メ
モリ」と呼ぶ。内部メモリのうち、さらにこれがキャッ
シュ・メモリ(たとえば命令キャッシュ301、データ
キャッシュ401など)である場合には、「内部キャッ
シュ・メモリ」と呼ぶ。プロセッサの外部にあるメモ
リ、あるいは、プロセッサの内部にあるが鍵ペア・タグ
を格納する領域を持たないメモリは、「外部メモリ」と
呼ぶ。
【0083】以下で、これらのメモリの間でのデータ転
送の詳細について述べる。メモリ間の転送には、転送元
と転送先が、内部であるか外部であるかによって、(i)
内部メモリから内部メモリへ、(ii)内部メモリから外部
メモリへ、(iii)外部メモリから内部メモリへ、(iv)外
部メモリから外部メモリへ、の4通りの場合がある。
【0084】また、本実施形態では、RISC型のプロ
セッサを仮定しているので、データ転送を転送の要因別
に分けるとすると、次のように場合分けされる。なお、
転送の際に転送先が持つべき鍵ペア・タグの指定につい
ても、示す。
【0085】(1)プロセッサ・コア201の命令フェ
ッチデコーダ220による命令フェッチの結果生じるデ
ータ転送 このときの転送先の鍵ペア・タグは、現在実行中の実効
鍵ペアのタグである。
【0086】(2)プロセッサ・コア201のメモリ・
アクセス部260でロード命令あるいはストア命令が実
行された結果生じるデータ転送 このときの転送先の鍵ペア・タグは、現在実行中の実効
鍵ペアのタグである。ただし、本発明では、MIPSのロー
ド命令、ストア命令に加えて、新たに、転送先が持つべ
き鍵ペア・タグを命令のオペランドとして指定するタグ
指定付きロード命令、ストア命令を追加する。これらの
命令の命令フォーマットや、オペランドの指定方法につ
いては、任意である。
【0087】(3)プロセッサ・コア201の算術論理
演算部250で命令が実行された結果生じるデータ転送 RISC型のプロセッサにおいては、演算命令は、レジスタ
のみをデータ転送先とするので、この場合のデータ転送
は、レジスタファイル230上のレジスタ間のデータ転
送でしかあり得ない。転送先の鍵ペア・タグは、現在の
実効鍵ペアのタグである。
【0088】次に、本実施形態において、秘匿すべきデ
ータを保護するための機構について説明する。データの
保護は、算術論理演算部250の演算オペランド・タグ
判定部252、メモリ・アクセス部260のデータ転送
タグ判定部262、および命令実行制御部223におい
て実現される。いずれにおいても、共通したタグ判定規
約に従って、データ転送の成立の可否が決定される。判
定の基準に用いるものは、データの転送元を特定する
識別子、転送するデータに付加された鍵ペア・タグ
(「データタグ」と呼ぶ)、および転送先の持つべき鍵
ペア・タグ(「転送先タグ」と呼ぶ)である。
【0089】データ転送に伴うタグ判定の規約として最
低限必要な規約を、以下にリストする。実施の形態によ
っては、さらに転送を否決する形で限定する規約を加え
てもよい。また、データ転送に伴い、必要であれば暗号
処理が施される。
【0090】(1)内部メモリ間のデータ転送であっ
て、転送元が内部キャッシュであるときには、データタ
グと転送先のタグが一致しているときに限り、転送を許
可する。データはそのまま転送され、転送先には、デー
タタグが付加される。
【0091】(2)内部メモリ間のデータ転送であっ
て、転送元が内部キャッシュではないときは、無条件に
データ転送を許可し、データタグを転送先のタグとす
る。
【0092】(3)内部メモリから外部メモリへのデー
タ転送にあたっては、無条件にデータ転送を許可する。
このとき、データは、データタグが指定する鍵ペアの保
持する暗号鍵(データ鍵)で暗号化される。すなわち、
内部メモリから外部メモリへデータを転送する場合は、
まず、データ暗号処理部601でデータタグが指定する
鍵ペアの保持するデータ鍵を用いて暗号化される。命令
フェッチは、読み出し専用であり、外部に書き出すとい
う操作は存在しない。
【0093】(4)外部メモリから内部メモリへのデー
タ転送にあたっては、無条件にデータ転送を許可する。
このとき、データは、転送先タグが指定する鍵ペアの保
持する暗号鍵で復号化される。すなわち、外部メモリか
ら内部メモリにデータを転送する場合は、それが命令フ
ェッチに由来するデータ転送である時には、命令復号処
理部501を経由して、転送先タグが指定する鍵ペアの
保持するプログラム鍵を用いて復号化される。命令フェ
ッチ以外では、データ暗号処理部601を経由して、転
送先タグが指定する鍵ペアのデータ鍵を用いて復号化さ
れる。
【0094】(5)外部メモリ間のデータ転送には、本
実施形態のプロセッサは関与しない。従って、外部メモ
リ間のデータ転送の挙動については、従来技術と同様で
ある。
【0095】次に、このような保護機能を用いた処理の
例として、オペレーティング・システム(OS)の基本
的な処理であるコンテキスト・スイッチについて、図1
2〜14を参照して説明する。前述の通り、例として用
いるのは、MIPS Technologies社のR3000系プロセッサで
ある。
【0096】前提条件として、ステップS1201に示
すように、暗号化されたプログラムprogram-1がユーザ
・モードで実行されている。そのプログラムを復号する
ためのプログラム鍵progkey-1と、この鍵の新規登録時
に生成されたデータ鍵datakey-1とが、鍵ペアとして鍵
ペア・テーブル710に格納されている。この鍵ペアを
特定する鍵ペア・タグをtag-1とする。
【0097】ここで、外部からの割り込み等を理由とし
て、プロセッサに例外が発生したとする。プロセッサ
は、ステップS1203に示すように、現在のプログラ
ムカウンタの値を例外復帰用レジスタに退避させる。こ
のとき、実効鍵ペア・タグも例外復帰用レジスタに退避
される。ステップS1205に示すように、プロセッサ
の動作モードはユーザ・モードからカーネル・モードに
遷移する。タグの値は実効鍵ペアのタグ値から、カーネ
ル・モード用に予約されたタグ値tag-Kに切り替わる。
動作モードとタグ値の切り替えによって、ステップS1
207に示すように、OSの一部である例外処理ルーチ
ンが起動される。例外処理ルーチンが終了したら、ステ
ップS1209に示すように、再度ユーザ・モードに切
り替わり、コンテキストが復帰する。
【0098】図13は、例外処理ルーチンS1207の
詳細なステップを示す。まず、ステップS1301に示
すように、例外発生時に実行していたプログラムのコン
テキスト、すなわちレジスタファイル230の内容を、
外部のメモリに格納するストア命令を実行する。さら
に、ステップS1303で、退避した実効鍵ペアタグ(t
ag-1)が特定する鍵ペアを、鍵ペア管理部701からレ
ジスタファイル230に読み出す(既存の鍵ペア読み出
し操作)。なお、レジスタファイル230に読み出した
鍵ペアデータは、OSのデータであるため、tag-Kが付
加されている。ステップS1305で、鍵ペアデータを
メモリに転送する。この一連の操作において、OSが不
当にユーザモードのデータ(これにはtag-1が付加され
ている)に算術論理演算を行ったとすれば、それは前述
した演算の制約条件から不許可となる。一方、ユーザモ
ードでのデータを外部に転送する操作は、データ転送の
制約条件で許可されるデータ転送である。この時点でユ
ーザのコンテキストはレジスタファイル230の外に退
避されたが、その退避先がデータキャッシュ上(内部メ
モリ)であるか、外部メモリにまで到達したかは、デー
タキャッシュの状態に依存する。ただし、OSの動作と
いう視点からは、レジスタファイル230からのコンテ
キストの退避は完了している。そして、ステップS13
07で割り込み処理を実行する。
【0099】図14は、例外処理ルーチンが完了した後
の、ユーザのコンテキストの復帰処理(すなわちプログ
ラムの再開)のフローを示す。まず、ステップS140
1で、メモリに退避させておりた鍵ペアをOSのデータ
としてメモリからロードする。ステップS1403で、
この鍵ペアをtag-1に対応する鍵ペアとして鍵ペア・テ
ーブル710に格納する(既存の鍵ペア書き込み操作)。
ステップS1405で、メモリに退避してあったコンテ
キストをレジスタファイル230に復帰させる。このと
きに行うのは、転送先タグ付ロード命令である。転送先
タグとしてはtag-1を指定する。さらに、ステップS1
407で、例外復帰用レジスタに、復帰するプログラム
カウンタの値と、実効鍵ペア・タグ(tag-1)とを格納す
る。最後に、ステップS1409で、例外復帰命令(MIP
S-IVではERET命令)を用いてユーザ・モードに遷移する
ことで、コンテキスト復帰が完了する。この一連の操作
でのデータ転送も、前述したデータ転送の規約条件で許
可されるデータ転送である。
【0100】コンテキストの保存と復帰の際に、tag-1
が付加されているデータが保護されていることは、以下
のことからも確認される。まず、データ転送の規約条件
により、tag-1以外の鍵ペア・タグを実効鍵ペア・タグ
として実行しているときには、tag-1のデータは演算の
対象となり得ない。一方、tag-1で特定されるプログラ
ム鍵で復号されたプログラムの実行中は、実効鍵ペア・
タグの値はtag-1であり、マイクロプロセッサ内部の処
理について、OSは知ることができない。実行されてい
たデータが、割り込み等によって外部メモリへと転送さ
れるときには、tag-1で特定される鍵ペアのデータ鍵で
暗号化される。このデータ鍵は、プロセッサの秘密鍵を
知ることなしに得ることは不可能である。また、コンテ
キスト復帰時には、タグ付きロード命令でデータを取り
戻したが、このタグはOSの実効鍵ペア・タグとは異な
るタグなので、OSからのアクセスは許可されない。逆
に、OS自身の実効鍵を、復帰したユーザのコンテキス
トの鍵ペア・タグであるtag-1にすりかえたとしても、
このときは、OSにとって知ることのできないプログラ
ム鍵をもって、自らの命令列を復号することになり、予
期できない命令を実行することになる。
【0101】このように、プログラム鍵とデータ鍵を鍵
ペアとして不可分に扱うことにより、特権モードで実行
するプログラムからも、秘密データを秘匿することが可
能となる。
【0102】<第2実施形態>図15は、本発明の第2
実施形態にかかるマイクロプロセッサで使用する鍵ペア
テーブル810の構成図である。第1実施形態において
は、一つのプログラム鍵と一つのデータ鍵とを1対1対
応で関連付けて扱う方法について述べたが、第二の実施
形態においては、一つのプログラム鍵に複数のデータ鍵
を関連付けて扱う方法について述べる。
【0103】マルチタスク環境下では、同じひとつのプ
ログラムについて、異なる種類のデータ処理がなされる
場合もある。そのような場合は、プログラムの復号鍵
(プログラム鍵)はひとつであるが、実行処理されたデ
ータを暗号化/復号化するためのデータ鍵は別々であ
る。これら別々のデータ鍵のすべてについてプログラム
鍵とのペアを作って格納しようとすると、膨大な記憶容
量を要することになる。
【0104】そこで第2実施形態では、プログラム鍵の
インデックスとデータ鍵のインデックスとをペアにして
格納し、さらに、プログラム鍵およびデータ鍵をばらば
らに格納しておく。
【0105】図15は、第2実施形態の鍵ペア・テーブ
ル810の構成例を示す。鍵ペア・テーブル810は、
鍵自体を保持する鍵テーブル820と、鍵を間接参照す
る形でインデックスで構成した鍵ペア参照テーブル83
0とで構成される。
【0106】鍵テーブル820は、プログラム鍵とデー
タ鍵とを個別にエントリした配列から構成される。一
方、鍵ペア参照テーブル830は、鍵ペアを表わすもの
ではあるが、鍵のペアを直接格納するのではなく、プロ
グラム鍵のインデックス831−1と、データ鍵のイン
デックス831−2から構成される。これらのインデッ
クスを用いて、ある特定のプログラムと、このプログラ
ムによって実行される複数種類のデータとを特定するこ
とが可能になる。たとえば、図14の例では、インデッ
クスを用いて、プログラム鍵#3で復号化された同じプ
ログラムについて、データ鍵#4で暗号化/復号化され
るデータと、データ鍵#5で暗号化/復号化されるデー
タとを、それぞれ組み合わせることができる。
【0107】鍵テーブル820の動作は、次の読み出し
操作と、書き込み操作である。
【0108】(1)鍵の読み出し パラメータとして与えられるインデックスにより特定さ
れる鍵エントリの共通鍵が、鍵テーブル820から取り
出される。
【0109】(2)鍵の書き込み まず、使用されていない鍵エントリを一つ割り当てる。
その鍵エントリに、パラメータとして与えられる共通鍵
(プログラム鍵またはデータ鍵)を格納する。割り当て
た鍵エントリを特定するインデックスを出力する。
【0110】鍵ペア・テーブル810の動作は、第1実
施形態で述べた鍵テーブル710の動作と基本的に同じ
である。ただし、鍵ペア・テーブル810は、鍵テーブ
ル820と鍵ペア参照テーブル830とに分割されてい
ることから、鍵の読み出し、書き込みの詳細について
は、次のようになる。
【0111】(1)プログラム鍵の読み出し 命令復号処理部インタフェース703と接続されるポー
トを介する読み出し操作である。参照テーブル830の
インデックスペアで特定される鍵のうち、プログラム鍵
のインデックスを用いて鍵テーブル820の鍵読み出し
操作を行ない、その結果を出力する。
【0112】(2)データ鍵読み出し データ暗号処理部インタフェース704と接続されるポ
ートを介する読み出し操作である。参照テーブル830
のインデックスペアで特定される鍵のうち、データ鍵の
インデックを用いて鍵テーブル820の鍵読み出し操作
を行ない、その結果を出力する。
【0113】(3)鍵ペアの読み出し 鍵ペア制御部720と接続されるポートを介する読み出
し操作である。参照テーブル830のインデックスペア
により特定されるペアのプログラム鍵とデータ鍵の双方
のインデックスを用いて、それぞれの鍵を鍵テーブル8
20から読み出し、得られた2つの鍵を出力する。
【0114】(4)鍵ペアの書き込み 鍵ペア制御部720と接続されるポートを介する書き込
み操作である。パラメータとして与えられるプログラム
鍵とデータ鍵とを、それぞれ鍵テーブル820の書き込
み操作で鍵テーブル820に格納する。結果として得ら
れる鍵エントリのインデックスを、参照テーブル830
のプログラム鍵インデックスとデータ鍵インデックスに
格納する。
【0115】鍵ペア・テーブル810は、鍵ペア制御部
720から見て同じ動作を提供するインタフェースを備
えている。したがって、鍵ペア制御部720の動作であ
るところの、新規鍵ペアの登録、既存の鍵ペアの読み出
し、既存の鍵ペアの書き込み、の3つの操作は、第1実
施形態で述べたものと同一である。
【0116】ただし、第2実施形態では、一つのプロセ
スが複数のデータ鍵を用いる手段を提供するために、鍵
ペア・テーブル810と鍵ペア制御部720に、第1実
施形態での操作の他に、次の操作を追加する。
【0117】まず、鍵ペア・テーブル810に追加する
操作は、以下の通りである。
【0118】*データ鍵の書き込み 鍵ペア制御部720と接続されるポートを介する書き込
み操作であって、パラメータとして、プログラム鍵イン
デックスと、データ鍵と、鍵ペア・タグを受け取る。ま
ず、データ鍵を、鍵テーブル820の書き込み操作で、
鍵テーブル820に格納する。結果として得られる鍵エ
ントリのインデックスと、パラメータとして受け取った
プログラム鍵インデックスとを、鍵ペア・タグがインデ
ックスとして指定する鍵ペアのプログラム鍵インデック
ス831−1とデータ鍵インデックス831−2のそれ
ぞれに格納する。
【0119】次に、鍵ペア制御部720に以下の操作を
追加する。
【0120】*新しいデータ鍵の登録 プロセッサ・コア201からは、データ鍵を所有するプ
ロセスを特定する第1の鍵ペア・タグと、新たに登録す
るデータ鍵を特定するための第2の鍵ペア・タグと、登
録するデータ鍵を第1の鍵ペア・タグのプログラム鍵で
暗号化した鍵データとが提示される。鍵データは、鍵ペ
アデータではないが、暗号化鍵ペア・レジスタ726に
格納される。
【0121】まず、第1の鍵ペア・タグをインデックス
として、鍵テーブル820の鍵ペアの読み出し操作を行
い、鍵ペアを鍵ペア・レジスタ724に読み出す。
【0122】鍵ペア暗号処理部725は、暗号化鍵ペア
・レジスタ上のデータを、暗号化された鍵とみなして、
鍵ペア・レジスタ724のプログラム鍵724−1を用
いて復号化し、その結果を鍵ペア・レジスタ724のデ
ータ鍵724−2に格納する。
【0123】鍵ペア制御部720は、第1の鍵ペア・タ
グを利用して読み出したプログラム鍵のインデックス
と、鍵ペア・レジスタ724のデータ鍵724−2と
を、鍵ペアテーブル810のデータ鍵書き込み操作を用
いて、鍵ペアとして登録する。
【0124】この操作により、登録したデータ鍵のイン
デックスと、そのデータ鍵とともに用いられるプログラ
ム鍵のインデックスとを一組にした新しい鍵インデック
スのペアが作成される。
【0125】言い換えれば、複数の鍵ペアを、プログラ
ム鍵が共通であることによりグループ化する操作であ
る。しかも、グループに追加する操作においては、プロ
グラム鍵による暗号処理を必要とするため、プログラム
鍵を知るプロセスにのみ可能なものである。
【0126】上述のデータ鍵登録操作は、プログラム鍵
で暗号化したデータとして与えるものであるが、プログ
ラム鍵ではない別の鍵、たとえばプロセッサの公開鍵あ
るいは別のデータ鍵で暗号化したデータとして与えると
いう変形も可能である。このときは、プログラム鍵に基
づいたグループ化ではなく、別の鍵をもとにしたグルー
プ化となり、プログラム間で鍵を共有する状況に適用で
きる。
【0127】第1実施形態において、データ転送および
演算操作に対して、鍵ペア・タグの値が一致すること
を、その操作が成功するための条件する制約機構につい
て述べた。第2実施形態においては、異なる鍵ペア・タ
グであっても、同一のプロセスが生成した鍵ペアであれ
ば、データ転送や演算操作を許可するものとする。すな
わち、データ転送や演算操作の成立条件判定に、第1実
施形態での鍵ペア・タグの値そのものに加え、その鍵ペ
ア・タグが指定する鍵ペアの、プログラム鍵インデック
スとデータ鍵インデックスを条件判定に用いる。
【0128】第1実施形態で例示した、オペレーティン
グ・システムによるコンテキスト・スイッチの実施例
は、第2実施形態においても同様に動作する。
【0129】第1および第2実施形態を、ともに機能を
実現する要素をブロック図を用いて説明したが、これら
は機能の論理的な分割方法を示したものであり、機能ブ
ロックのプロセッサ上での物理的な配置を示すものでは
ない。例えば、実施形態の説明で鍵ペアは一つのテーブ
ルに一組にして保持するものとしたが、プロセッサ上の
物理的な配置としては、プログラム鍵を集めたテーブル
は命令復号処理部の近くに、データ鍵を集めたテーブル
はデータ暗号処理部の近くに配置する、といった物理的
な構成方法を除外するものではない。
【0130】
【発明の効果】以上説明したように、本発明によれば、
プログラムを復号化するためのプログラム鍵と、データ
を暗号化するためのデータ鍵とが、暗号学的に不可分の
ものとしてプロセッサ内部で扱われるため、プログラム
を実行する主体であるプロセスを、オペレーティング・
システムを介することなく、プロセッサが保護すること
が可能となる。したがって、他のユーザ・プログラムの
みならず、オペレーティング・システムからも、プログ
ラムの持つ秘密情報を守ることができる。
【0131】また、本発明によれば、プロセッサによる
保護の対象であるプロセスを識別するためのタグをプロ
セッサ内部のデータに付加することにより、保護の対象
となるデータを、復号化した状態で内部メモリに保持し
たまま、プロセスの切替えを行なうことができる。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係るマイクロプロセッ
サの全体構成例を示す図である。
【図2】本発明の基本的な処理フローのうち、データを
暗号化して退避させる流れを示す図である。
【図3】本発明の基本的な処理フローのうち、退避させ
たデータを復帰させる流れを示す図である。
【図4】図1に示すプロセッサ・コアの構成図である。
【図5】図4に示す算術論理演算部の詳細図である。
【図6】図4に示すシステムレジスタの詳細図である。
【図7】図1に示す命令キャッシュの図である。
【図8】図1に示すデータキャッシュの図である。
【図9】図1に示す命令暗号処理部の図である。
【図10】図1に示すデータ暗号/復号処理部の図であ
る。
【図11】図1に示す鍵ペア管理部の図である。
【図12】本発明のマイクロプロセッサにおける割り込
み発生時の処理フローを示す図である。
【図13】図12の例外処理ルーチンの詳細を示す図で
ある。
【図14】図12のコンテキスト復帰ステップの詳細を
示す図である。
【図15】本発明の第2実施形態にかかる鍵ペア・テー
ブルの図である。
【符号の説明】
101 マイクロプロセッサ 102 プロセッサ・バス 103 外部バス・インタフェース 201 プロセッサ・コア 210 システム・レジスタ群(第3の記憶領域) 230 レジスタ・ファイル(第2の記憶領域) 250 算術論理演算部 252 演算オペランド・タグ判定部 260 メモリ・アクセス部 262 データ転送タグ判定部 270 鍵ペア管理部インタフェース 301 命令キャッシュ 401 データ・キャッシュ 501 命令復号処理部 601 データ暗号/復号処理部 701 鍵ペア管理部 710、810 鍵ペア・テーブル(第1の記憶領域) 720 鍵ペア制御部 725 鍵ペア暗号化部 726 暗号化鍵ペア・レジスタ 820 鍵テーブル 830 鍵ペア参照テーブル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 寺本 圭一 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 尾崎 哲 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 藤本 謙作 神奈川県川崎市幸区小向東芝町1 株式会 社東芝研究開発センター内 Fターム(参考) 5B017 AA03 BA07 CA15 CA16 5B076 FA13 FC08 5B098 DD01 5J104 AA01 AA16 EA02 EA04 EA25 JA21 NA02

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 暗号化されたプログラムを第1の暗号鍵
    を用いて復号化する命令復号処理部と、 前記復号化されたプログラムの実行対象であるデータ
    を、第2の暗号鍵を用いて暗号化/復号化するデータ暗
    号/複号処理部と、 前記命令復号処理部およびデータ暗号/復号処理部に接
    続され、前記第1および第2の鍵を鍵ペアとして関連付
    けて格納する第1の記憶領域を有する鍵ペア管理部と、 前記鍵ペアを特定する識別子を、前記プログラムに関連
    するデータとともに格納する第2の記憶領域とを備える
    マイクロプロセッサ。
  2. 【請求項2】 前記プログラムを復号するための第1の
    暗号鍵は、公開鍵暗号系で与えられ、 前記鍵ペア管理部は、前記第1の暗号鍵が与えられた場
    合に、当該第1の暗号鍵で復号されたプログラムによっ
    て実行されるデータを暗号化/複号化するための第2の
    暗号鍵を生成する鍵生成部をさらに備えることを特徴と
    する請求項1に記載のマイクロプロセッサ。
  3. 【請求項3】 前記マイクロプロセッサは、現在実行中
    のプログラムに用いられている有効な鍵ペアの識別子を
    格納する第3の記憶領域をさらに有し、 前記第3記憶領域の有効な鍵ペアの識別子の値が、特定
    の値を取る場合に、前記データ暗号/復号処理部は、前
    記第2の記憶領域に格納されていたデータを、そのデー
    タに付随する識別子が指定する暗号鍵を用いて外部メモ
    リに転送することを特徴とする請求項1に記載のマイク
    ロプロセッサ。
  4. 【請求項4】 前記第1の記憶領域は、前記第1の鍵と
    第2の鍵を1対1対応で関連付けて格納することを特徴
    とする請求項1に記載のマイクロプロセッサ。
  5. 【請求項5】 前記第1の記憶領域は、前記第1の鍵の
    インデックスと、前記第2の鍵のインデックスとをペア
    にして格納する参照格納領域と、前記第1および第2の
    鍵を個別に格納する鍵格納領域とを含むことを特徴とす
    る請求項1に記載のマイクロプロセッサ。
  6. 【請求項6】 前記マイクロプロセッサは、前記第2の
    記憶領域および第3の記憶領域に接続されるメモリアク
    セス部をさらに有し、 前記メモリアクセス部は、転送すべきデータに添付され
    た鍵ペアの識別子と、前記第3記憶領域に格納されてい
    る現在有効な鍵ペアの識別子とに基づいてデータ転送の
    可否を判断するデータ転送判定部を有することを特徴と
    する請求項3に記載のマイクロプロセッサ。
  7. 【請求項7】 前記マイクロプロセッサは、前記第2の
    記憶領域および第3の記憶領域に接続される論理演算部
    をさらに有し、 前記論理演算部は、演算のオペランドに添付された識別
    子と、前記第3の記憶領域に格納されている有効な鍵ペ
    アの識別子とに基づいて演算実行の可否を判断する演算
    実行判定部を有することを特徴とする請求項3に記載の
    マイクロプロセッサ。
  8. 【請求項8】 前記第2の記憶領域は、複数のエントリ
    から成り、各エントリが、プログラムに関連するデータ
    と、そのデータに用いられる鍵ペアを特定する識別子と
    を有し、 前記第3記憶領域の有効な鍵ペアの識別子の値が特定の
    値をとる場合に、前記データ暗号/復号化処理部は、所
    望のエントリのデータおよび対応する識別子を暗号化し
    て外部メモリに格納することを特徴とする請求項3に記
    載のマイクロプロセッサ。
  9. 【請求項9】 前記第3記憶領域の有効な鍵ペアの識別
    子は、例外発生時に前記特定の値をとることを特徴とす
    る請求項3に記載のマイクロプロセッサ。
  10. 【請求項10】 前記鍵ペア管理部は、前記第1および
    第2の鍵のペアをプロセッサの秘密鍵で暗号化して格納
    する暗号化鍵ペア格納領域をさらに有することを特徴と
    する請求項2に記載のマイクロプロセッサ。
  11. 【請求項11】 暗号化されたプログラムを第1の鍵で
    復号するステップと、 前記第1の鍵に対応して、前記復号したプログラムによ
    って実行されるデータを暗号化/復号化するための第2
    の鍵を生成するステップと、 前記第1の鍵と第2の鍵とを関連付けた鍵ペアとして格
    納するステップと、 前記鍵ペアに、該鍵ペアを特定する識別子を与えるステ
    ップと、 前記プログラムの実行中に例外が発生した場合に、前記
    識別子に基づいて前記第2の鍵を読み出し、前記データ
    を第2の鍵で暗号化して外部のメモリに退避させるステ
    ップとを含むデータ保護方法。
  12. 【請求項12】 前記例外の終了後に、前記暗号化して
    退避させたデータ外部メモリから読み出して、前記識別
    子に基づき、前記第2の鍵で復号するステップをさらに
    含む請求項11に記載のデータ保護方法。
  13. 【請求項13】 前記鍵ペアとして格納するステップ
    は、前記第1の鍵と第2の鍵とを1対1対応で直接組み
    合わせて格納することを特徴とする請求項11に記載の
    データ保護方法。
  14. 【請求項14】 前記鍵ペアとして格納するステップ
    は、前記第1の鍵のインデックスおよび第2の鍵のイン
    デックスを生成し、第1の鍵のインデックスと第2の鍵
    のインデックスとをペアにして格納するステップを含む
    ことを特徴とする請求項11に記載のデータ保護方法。
JP2000333635A 2000-10-31 2000-10-31 マイクロプロセッサおよびデータ保護方法 Expired - Fee Related JP4153653B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2000333635A JP4153653B2 (ja) 2000-10-31 2000-10-31 マイクロプロセッサおよびデータ保護方法
DE60124845T DE60124845T2 (de) 2000-10-31 2001-10-30 Mikroprozessor mit Programm- und Datenschutzfunktion in einer Multitasking Umgebung
EP01309182A EP1202150B1 (en) 2000-10-31 2001-10-30 Microprocessor with program and data protection function under multi-task environment
US09/984,407 US7065215B2 (en) 2000-10-31 2001-10-30 Microprocessor with program and data protection function under multi-task environment
US11/335,601 US7673152B2 (en) 2000-10-31 2006-01-20 Microprocessor with program and data protection function under multi-task environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000333635A JP4153653B2 (ja) 2000-10-31 2000-10-31 マイクロプロセッサおよびデータ保護方法

Publications (2)

Publication Number Publication Date
JP2002140236A true JP2002140236A (ja) 2002-05-17
JP4153653B2 JP4153653B2 (ja) 2008-09-24

Family

ID=18809679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000333635A Expired - Fee Related JP4153653B2 (ja) 2000-10-31 2000-10-31 マイクロプロセッサおよびデータ保護方法

Country Status (4)

Country Link
US (2) US7065215B2 (ja)
EP (1) EP1202150B1 (ja)
JP (1) JP4153653B2 (ja)
DE (1) DE60124845T2 (ja)

Cited By (11)

* 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 マイクロプロセッサ
JP2004246637A (ja) * 2003-02-14 2004-09-02 Fainaaku Kk 固有情報化プロセッサ、これを備えた処理装置および記憶装置、関連するプログラム実行方法、およびコンピュータプログラム
JP2004272816A (ja) * 2003-03-11 2004-09-30 Ntt Docomo Inc マルチタスク実行システム及びマルチタスク実行方法
US7270193B2 (en) 2000-02-14 2007-09-18 Kabushiki Kaisha Toshiba Method and system for distributing programs using tamper resistant processor
US7603703B2 (en) 2001-04-12 2009-10-13 International Business Machines Corporation Method and system for controlled distribution of application code and content data within a computer network
JP2012090286A (ja) * 2004-12-21 2012-05-10 Sandisk Corp イン−ストリームデータ暗号化/復号の機能を有するメモリシステム
JP2013538376A (ja) * 2010-09-24 2013-10-10 インテル・コーポレーション リプレーアタックに対して保護されたメモリ暗号化のための調整可能な暗号モード
JP2014523020A (ja) * 2011-06-29 2014-09-08 インテル・コーポレーション 整合性チェック及びリプレーアタックからの保護を行って、メモリを暗号化するための方法及び装置
JP2015517160A (ja) * 2012-04-17 2015-06-18 アイトロン インコーポレイテッド 外部メモリ解読のために構成されたマイクロコントローラ
JPWO2019155861A1 (ja) * 2018-02-06 2021-04-08 ソニー株式会社 情報処理装置、情報処理方法、プログラム、および情報処理システム
JP2022075949A (ja) * 2016-04-29 2022-05-18 エヌチェーン ホールディングス リミテッド ブロックチェーンIoT装置のためのオペレーティングシステム

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7549056B2 (en) 1999-03-19 2009-06-16 Broadcom Corporation System and method for processing and protecting content
US7797550B2 (en) 2002-09-25 2010-09-14 Broadcom Corporation System and method for securely buffering content
GB0015276D0 (en) * 2000-06-23 2000-08-16 Smith Neale B Coherence free cache
EP1471405A4 (en) * 2001-11-12 2010-01-13 Gerite Associates Ltd METHOD AND SYSTEM FOR PROTECTING INFORMATION AGAINST UNAUTHORIZED USE
US7107459B2 (en) * 2002-01-16 2006-09-12 Sun Microsystems, Inc. Secure CPU and memory management unit with cryptographic extensions
US7065651B2 (en) * 2002-01-16 2006-06-20 Microsoft Corporation Secure video card methods and systems
US7350069B2 (en) * 2002-04-18 2008-03-25 Herz Frederick S M System and method which employs a multi user secure scheme utilizing shared keys
US7515173B2 (en) * 2002-05-23 2009-04-07 Microsoft Corporation Head pose tracking system
JP2004023351A (ja) * 2002-06-14 2004-01-22 Oki Electric Ind Co Ltd マイクロコンピュータのプログラム保護方法
US8155314B2 (en) 2002-06-24 2012-04-10 Microsoft Corporation Systems and methods for securing video card output
JP2004054834A (ja) 2002-07-24 2004-02-19 Matsushita Electric Ind Co Ltd プログラム開発方法、プログラム開発支援装置およびプログラム実装方法
US20040023646A1 (en) * 2002-07-31 2004-02-05 Satoshi Inami Information processing terminal and information processing method
JP3881942B2 (ja) * 2002-09-04 2007-02-14 松下電器産業株式会社 暗号化部を有する半導体装置
JP2004133087A (ja) * 2002-10-09 2004-04-30 Sony Corp ブロック暗号方法およびブロック暗号回路
JP4099039B2 (ja) * 2002-11-15 2008-06-11 松下電器産業株式会社 プログラム更新方法
JP3880933B2 (ja) * 2003-01-21 2007-02-14 株式会社東芝 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法
US7529367B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US7900055B2 (en) 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7529368B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output feedback mode cryptographic functions
US7321910B2 (en) 2003-04-18 2008-01-22 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7542566B2 (en) 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
US7925891B2 (en) 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7536560B2 (en) 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
US8060755B2 (en) 2003-04-18 2011-11-15 Via Technologies, Inc Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine
US7502943B2 (en) 2003-04-18 2009-03-10 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US7519833B2 (en) 2003-04-18 2009-04-14 Via Technologies, Inc. Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US7539876B2 (en) 2003-04-18 2009-05-26 Via Technologies, Inc. Apparatus and method for generating a cryptographic key schedule in a microprocessor
US7392400B2 (en) 2003-04-18 2008-06-24 Via Technologies, Inc. Microprocessor apparatus and method for optimizing block cipher cryptographic functions
US7532722B2 (en) 2003-04-18 2009-05-12 Ip-First, Llc Apparatus and method for performing transparent block cipher cryptographic functions
US7844053B2 (en) 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
JP2007526590A (ja) * 2003-06-23 2007-09-13 ケストレル ワイヤレス,インク. 光メディア作動方法並びに装置
WO2005020043A2 (en) * 2003-08-26 2005-03-03 Matsushita Electric Industrial Co., Ltd. Program execution device
JP4263976B2 (ja) * 2003-09-24 2009-05-13 株式会社東芝 オンチップマルチコア型耐タンパプロセッサ
JP4282472B2 (ja) * 2003-12-26 2009-06-24 株式会社東芝 マイクロプロセッサ
JP4696449B2 (ja) * 2004-01-09 2011-06-08 ソニー株式会社 暗号化装置およびその方法
JP4294514B2 (ja) * 2004-03-05 2009-07-15 シャープ株式会社 半導体装置および電子装置
US20050210274A1 (en) * 2004-03-22 2005-09-22 Frantz Gene A Apparatus and method for intellectual property protection using the microprocessor serial number
JP4612461B2 (ja) * 2004-06-24 2011-01-12 株式会社東芝 マイクロプロセッサ
JP4559794B2 (ja) * 2004-06-24 2010-10-13 株式会社東芝 マイクロプロセッサ
JP4447977B2 (ja) 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
JP4204522B2 (ja) * 2004-07-07 2009-01-07 株式会社東芝 マイクロプロセッサ
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
KR20070111453A (ko) * 2004-12-07 2007-11-21 케스트럴 와이어리스 인코포레이티드 타깃의 유틸리티를 선택적으로 제어하는 장치 및 그 방법
US20070194945A1 (en) * 2004-12-07 2007-08-23 Paul Atkinson Mobile Device for Selectively Activating a Target and Method of Using Same
US20060126827A1 (en) * 2004-12-14 2006-06-15 Dan P. Milleville Encryption methods and apparatus
US8045714B2 (en) * 2005-02-07 2011-10-25 Microsoft Corporation Systems and methods for managing multiple keys for file encryption and decryption
US7254768B2 (en) * 2005-02-18 2007-08-07 Broadcom Corporation Memory command unit throttle and error recovery
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
US20110181981A1 (en) * 2005-05-09 2011-07-28 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Method and system for rotational control of data storage devices
US7916615B2 (en) * 2005-06-09 2011-03-29 The Invention Science Fund I, Llc Method and system for rotational control of data storage devices
US7596073B2 (en) * 2005-05-09 2009-09-29 Searete Llc Method and system for fluid mediated disk activation and deactivation
US9396752B2 (en) * 2005-08-05 2016-07-19 Searete Llc Memory device activation and deactivation
US7916592B2 (en) 2005-05-09 2011-03-29 The Invention Science Fund I, Llc Fluid mediated disk activation and deactivation mechanisms
US8140745B2 (en) * 2005-09-09 2012-03-20 The Invention Science Fund I, Llc Data retrieval methods
US8218262B2 (en) * 2005-05-09 2012-07-10 The Invention Science Fund I, Llc Method of manufacturing a limited use data storing device including structured data and primary and secondary read-support information
US8121016B2 (en) * 2005-05-09 2012-02-21 The Invention Science Fund I, Llc Rotation responsive disk activation and deactivation mechanisms
US8220014B2 (en) * 2005-05-09 2012-07-10 The Invention Science Fund I, Llc Modifiable memory devices having limited expected lifetime
US7565596B2 (en) * 2005-09-09 2009-07-21 Searete Llc Data recovery systems
US8159925B2 (en) * 2005-08-05 2012-04-17 The Invention Science Fund I, Llc Limited use memory device with associated information
US8099608B2 (en) * 2005-05-09 2012-01-17 The Invention Science Fund I, Llc Limited use data storing device
US8462605B2 (en) * 2005-05-09 2013-06-11 The Invention Science Fund I, Llc Method of manufacturing a limited use data storing device
US20070007358A1 (en) * 2005-07-06 2007-01-11 White Charles A Device and System for Authenticating and Securing Transactions Using RF Communication
WO2007008916A2 (en) * 2005-07-11 2007-01-18 Kestrel Wireless Inc. A radio frequency activated integrated circuit and method of disabling the same
CN100424611C (zh) * 2005-07-28 2008-10-08 国际商业机器公司 用于处理加密软件的方法和中央处理单元
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
US20080028420A1 (en) * 2006-01-20 2008-01-31 Paul Atkinson Optical Media with Reduced Areal-Sized Optical shutters
US7594101B2 (en) * 2006-02-06 2009-09-22 Stmicroelectronics S.A. Secure digital processing unit and method for protecting programs
JP4795812B2 (ja) 2006-02-22 2011-10-19 富士通セミコンダクター株式会社 セキュアプロセッサ
WO2008054456A2 (en) * 2006-02-22 2008-05-08 Luna Innovations Inc. Hardware-facilitated secure software execution environment
US8264928B2 (en) * 2006-06-19 2012-09-11 The Invention Science Fund I, Llc Method and system for fluid mediated disk activation and deactivation
US7870336B2 (en) 2006-11-03 2011-01-11 Microsoft Corporation Operating system protection against side-channel attacks on secrecy
JP4976991B2 (ja) * 2007-11-22 2012-07-18 株式会社東芝 情報処理装置、プログラム検証方法及びプログラム
US20090268902A1 (en) * 2008-04-25 2009-10-29 Koolspan, Inc. System for and method of cryptographic provisioning
US8842836B2 (en) * 2007-11-26 2014-09-23 Koolspan, Inc. System for and method of cryptographic provisioning
US8515080B2 (en) * 2007-12-19 2013-08-20 International Business Machines Corporation Method, system, and computer program product for encryption key management in a secure processor vault
US8085148B2 (en) * 2008-11-11 2011-12-27 Monster Medic, Inc. Mobile monitoring and alert system
JP5322620B2 (ja) 2008-12-18 2013-10-23 株式会社東芝 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム
US20120011144A1 (en) * 2010-07-12 2012-01-12 Frederik Transier Aggregation in parallel computation environments with shared memory
US10127281B2 (en) 2010-12-23 2018-11-13 Sap Se Dynamic hash table size estimation during database aggregation processing
US8516271B2 (en) * 2011-03-11 2013-08-20 Hewlett-Packard Development Company, L. P. Securing non-volatile memory regions
JP5775738B2 (ja) * 2011-04-28 2015-09-09 富士通株式会社 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム
GB2515047B (en) * 2013-06-12 2021-02-10 Advanced Risc Mach Ltd Security protection of software libraries in a data processing apparatus
US9442864B2 (en) * 2013-12-27 2016-09-13 Intel Corporation Bridging circuitry between a memory controller and request agents in a system having multiple system memory protection schemes
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
US10198349B2 (en) * 2016-09-19 2019-02-05 Advanced Micro Devices, Inc. Programming in-memory accelerators to improve the efficiency of datacenter operations
US10417433B2 (en) 2017-01-24 2019-09-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Encryption and decryption of data owned by a guest operating system
US10896267B2 (en) * 2017-01-31 2021-01-19 Hewlett Packard Enterprise Development Lp Input/output data encryption
EP4088214A4 (en) * 2020-02-21 2023-08-30 Hewlett-Packard Development Company, L.P. COMPUTING DEVICES FOR ENCRYPTION AND DECRYPTION OF DATA
US20220414270A1 (en) * 2021-06-24 2022-12-29 International Business Machines Corporation Encrypted data processing design including cleartext register files
US11868275B2 (en) 2021-06-24 2024-01-09 International Business Machines Corporation Encrypted data processing design including local buffers

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09258977A (ja) * 1996-01-17 1997-10-03 Fuji Xerox Co Ltd ソフトウェアの保護機能付き情報処理装置
JPH09259044A (ja) * 1996-03-21 1997-10-03 Fuji Xerox Co Ltd 機密保護機能付き情報処理装置および機密保護方法
JP2001318787A (ja) * 2000-05-08 2001-11-16 Toshiba Corp マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP2002529815A (ja) * 1998-11-05 2002-09-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複数の暗号化アルゴリズムを用いるセキュアメモリ管理ユニット

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4465901A (en) * 1979-06-04 1984-08-14 Best Robert M Crypto microprocessor that executes enciphered programs
GB2122777A (en) * 1982-06-16 1984-01-18 Open Computer Services Limited Software protection apparatus and method
US4847902A (en) 1984-02-10 1989-07-11 Prime Computer, Inc. Digital computer system for executing encrypted programs
US5224166A (en) 1992-08-11 1993-06-29 International Business Machines Corporation System for seamless processing of encrypted and non-encrypted data and instructions
US5825878A (en) 1996-09-20 1998-10-20 Vlsi Technology, Inc. Secure memory management unit for microprocessor
US6003117A (en) * 1997-10-08 1999-12-14 Vlsi Technology, Inc. Secure memory management unit which utilizes a system processor to perform page swapping
JPH11282756A (ja) 1998-03-31 1999-10-15 Nakamichi Corp 秘密デ−タ管理方法
US6311270B1 (en) * 1998-09-14 2001-10-30 International Business Machines Corporation Method and apparatus for securing communication utilizing a security processor
JP4161466B2 (ja) * 1999-04-22 2008-10-08 日本ビクター株式会社 コンテンツ情報記録方法及びコンテンツ情報処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09258977A (ja) * 1996-01-17 1997-10-03 Fuji Xerox Co Ltd ソフトウェアの保護機能付き情報処理装置
JPH09259044A (ja) * 1996-03-21 1997-10-03 Fuji Xerox Co Ltd 機密保護機能付き情報処理装置および機密保護方法
JP2002529815A (ja) * 1998-11-05 2002-09-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複数の暗号化アルゴリズムを用いるセキュアメモリ管理ユニット
JP2001318787A (ja) * 2000-05-08 2001-11-16 Toshiba Corp マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7270193B2 (en) 2000-02-14 2007-09-18 Kabushiki Kaisha Toshiba Method and system for distributing programs using tamper resistant processor
US7353404B2 (en) 2000-02-14 2008-04-01 Kabushiki Kaisha Toshiba Tamper resistant microprocessor
US7650491B2 (en) 2001-04-12 2010-01-19 International Business Machines Corporation Method and system for controlled distribution of application code and content data within a computer network
US7603703B2 (en) 2001-04-12 2009-10-13 International Business Machines Corporation Method and system for controlled distribution of application code and content data within a computer network
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
JP2004246637A (ja) * 2003-02-14 2004-09-02 Fainaaku Kk 固有情報化プロセッサ、これを備えた処理装置および記憶装置、関連するプログラム実行方法、およびコンピュータプログラム
JP2004272816A (ja) * 2003-03-11 2004-09-30 Ntt Docomo Inc マルチタスク実行システム及びマルチタスク実行方法
JP2012090286A (ja) * 2004-12-21 2012-05-10 Sandisk Corp イン−ストリームデータ暗号化/復号の機能を有するメモリシステム
JP2013538376A (ja) * 2010-09-24 2013-10-10 インテル・コーポレーション リプレーアタックに対して保護されたメモリ暗号化のための調整可能な暗号モード
JP2014523020A (ja) * 2011-06-29 2014-09-08 インテル・コーポレーション 整合性チェック及びリプレーアタックからの保護を行って、メモリを暗号化するための方法及び装置
JP2015517160A (ja) * 2012-04-17 2015-06-18 アイトロン インコーポレイテッド 外部メモリ解読のために構成されたマイクロコントローラ
JP2022075949A (ja) * 2016-04-29 2022-05-18 エヌチェーン ホールディングス リミテッド ブロックチェーンIoT装置のためのオペレーティングシステム
JP7364724B2 (ja) 2016-04-29 2023-10-18 エヌチェーン ライセンシング アーゲー ブロックチェーンIoT装置のためのオペレーティングシステム
JPWO2019155861A1 (ja) * 2018-02-06 2021-04-08 ソニー株式会社 情報処理装置、情報処理方法、プログラム、および情報処理システム
JP7338478B2 (ja) 2018-02-06 2023-09-05 ソニーグループ株式会社 情報処理装置、情報処理方法、プログラム、および情報処理システム

Also Published As

Publication number Publication date
US20060126849A1 (en) 2006-06-15
EP1202150B1 (en) 2006-11-29
DE60124845T2 (de) 2007-04-19
US20020051536A1 (en) 2002-05-02
US7673152B2 (en) 2010-03-02
DE60124845D1 (de) 2007-01-11
US7065215B2 (en) 2006-06-20
EP1202150A3 (en) 2003-07-30
EP1202150A2 (en) 2002-05-02
JP4153653B2 (ja) 2008-09-24

Similar Documents

Publication Publication Date Title
JP4153653B2 (ja) マイクロプロセッサおよびデータ保護方法
US11550962B2 (en) Secure processor and a program for a secure processor
JP4098478B2 (ja) マイクロプロセッサ
JP4226760B2 (ja) マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP4226816B2 (ja) マイクロプロセッサ
KR101457355B1 (ko) 보안 애플리케이션 실행을 제공하는 방법 및 장치
US8190917B2 (en) System and method for securely saving and restoring a context of a secure program loader
JP3801833B2 (ja) マイクロプロセッサ
JP2003051819A (ja) マイクロプロセッサ
Gilmont et al. Enhancing security in the memory management unit
CN110069935A (zh) 基于标记内存的内部敏感数据保护方法及系统
JP4643702B2 (ja) マイクロプロセッサ
Steinegger et al. Servas! secure enclaves via risc-v authenticryption shield
JP4375980B2 (ja) マルチタスク実行システム及びマルチタスク実行方法
JP2005094790A (ja) ソフトウェアの保護機能付き情報処理装置およびソフトウェアの保護機能付き情報処理方法
Platte et al. A combined hardware and software architecture for secure computing
WO2024000565A1 (en) Methods and apparatuses to debug confidential virtual machine for processor in production mode

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050307

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080530

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080704

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

Free format text: PAYMENT UNTIL: 20110711

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120711

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130711

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees