JP4263976B2 - オンチップマルチコア型耐タンパプロセッサ - Google Patents

オンチップマルチコア型耐タンパプロセッサ Download PDF

Info

Publication number
JP4263976B2
JP4263976B2 JP2003331143A JP2003331143A JP4263976B2 JP 4263976 B2 JP4263976 B2 JP 4263976B2 JP 2003331143 A JP2003331143 A JP 2003331143A JP 2003331143 A JP2003331143 A JP 2003331143A JP 4263976 B2 JP4263976 B2 JP 4263976B2
Authority
JP
Japan
Prior art keywords
processor
program
memory
key
processors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2003331143A
Other languages
English (en)
Other versions
JP2005099984A (ja
Inventor
幹生 橋本
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 JP2003331143A priority Critical patent/JP4263976B2/ja
Priority to US10/948,313 priority patent/US7590869B2/en
Publication of JP2005099984A publication Critical patent/JP2005099984A/ja
Application granted granted Critical
Publication of JP4263976B2 publication Critical patent/JP4263976B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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
    • 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

Landscapes

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

Description

本発明は、マルチタスクのプログラム実行環境下で、プログラム対応に複数の暗号鍵を使用できる暗号処理機能を持つことで、プログラム自身の実行コードや処理対象のデータの秘密を守り、不正な改変を防止することのできる耐タンパマイクロプロセッサにおいて、同一パッケージ上に複数の命令処理機能を持つマルチプロセッサ構成のものに関する。
耐タンパプロセッサは、マルチタスクのコンピュータシステムにおいて、マルチベンダのプログラムに対してプログラムの秘密の安全性を確保するメカニズムを備えたプロセッサである(例えば、特許文献1)。
また、実行中の実行制御ユニット(ECU ID)とは独立に暗号鍵が選択されるキャッシュライトバックの方法は、本発明者らにより詳細に開示されている(例えば、特許文献2)。
一方、暗号/復号処理において、共通のハードウェアを用いる場合には、別途、仕様上の鍵から暗号作業用鍵、及び、復号作業用鍵を作成する必要がある(例えば、特許文献2参照)。たとえば、アドバンスド・エンクリプション・スタンダード(AES)によるAES暗号の場合には、暗号作業用鍵が仕様上の鍵として定義されており、復号作業用鍵は、暗号作業用鍵の拡張演算によって求める必要がある(非特許文献1)。
特開2001−318787号公報 特開2003−108442号公報 特開2000−66586号公報 エヌ・アイ・エス・ティー(NIST)(米国国立標準技術研究所)、コンピュータ・セキュリティー・リソース・センターのホームページ(http://csrc.nist.gov/)
背景技術のキャッシュ制御方式により、システムのプロセッサが単一(ユニプロセッサ)の時、キャッシュ上データの安全性を保証することができた。また、独立パッケージのマルチプロセッサの場合にも、安全性と同時にキャッシュ一貫性を保証する制御方式が提案されている。
しかしながら、マルチプロセッサ構成には同一パッケージに複数のプロセッサコアを持つオンチップマルチコア型の構成もあるが、従来暗号機能を持つ耐タンパプロセッサについてオンチップマルチコア型の構成例は知られていなかった。
耐タンパプロセッサの実現において、独立パッケージのマルチプロセッサ構成と、オンチップマルチコア型のマルチプロセッサ構成のもっとも大きな違いはプロセッサ間を接続するバスがプロセッサパッケージ外部にあるか内部にあるかが違いとなる。そして、バスがパッケージ内部にある場合、LSI解析設備を持たない一般ユーザはパッケージ内部バスに流れる情報を読み取ることは不可能である。
本発明の目的は、同一パッケージ上に複数の命令処理機能を持つマルチプロセッサ構成の耐タンパプロセッサを提供することにある。
又、本発明の目的は、マルチタスクのプログラム実行環境下で、プログラム対応に複数の暗号鍵を使用できる暗号処理機能を持つことで、プログラム自身の実行コードや処理対象のデータの秘密を守り、不正な改変を防止することのできる、マルチプロセッサ構成の耐タンパマイクロプロセッサを提供することにある。
上記目的を達成するため、本発明の第1の特徴は、(イ)プログラムを並列に実行可能な第1のプロセッサおよび第2のプロセッサと、(ロ)プログラムに対する鍵を格納する鍵テーブルと、(ハ)第1のプロセッサで実行中のプログラムからのメモリ参照要求、第2のプロセッサで実行中のプログラムからのメモリ参照要求、または、第1および第2のプロセッサで実行中のプログラムからのメモリ参照要求に応じて、要求されたメモリデータを外部のメモリから取得する手段と、取得したメモリデータを、鍵テーブルから取り出したプログラムに対応する鍵で復号する復号処理手段とを有するバスインタフェースユニットであり、第1および第2のプロセッサと接続され、前記鍵テーブルを有する前記バスインタフェースユニットとを備え、非保護の平文プログラムと保護ありの暗号化プログラムとが混在して並列実行される前記複数のプロセッサが、前記復号処理手段を共有しているマイクロプロセッサパッケージであることを要旨とする。
本発明の第2の特徴は、(イ)プログラムを並列に実行可能な第1のプロセッサおよび第2のプロセッサと、(ロ)プログラムに対する鍵を格納する鍵テーブルと、(ハ)第1のプロセッサで実行中のプログラムからのメモリ書き込み要求、第2のプロセッサで実行中のプログラムからのメモリ書き込み要求、または、第1および第2のプロセッサで実行中のプログラムからのメモリ書き込み要求に応じて、鍵テーブルから取り出したプログラムに対応する鍵でメモリへ書き込むデータを暗号化する暗号化処理手段と、暗号化されたデータを外部のメモリへ転送する手段とを有するバスインタフェースユニットであって、第1および第2のプロセッサと接続され、前記鍵テーブルを有する前記バスインタフェースユニットとを備え、非保護の平文プログラムと保護ありの暗号化プログラムとが混在して並列実行される前記複数のプロセッサが、前記暗号処理手段を共有しているマイクロプロセッサパッケージであることを要旨とする。
本発明によれば、オンチップマルチコア型の耐タンパマイクロプロセッサにおいて、パッケージ上の複数のプロセッサコアに対して、暗号処理部を1箇所に集中することにより、同一規模のハードウェアで各プロセッサコア対応に暗号処理部を設けた場合と比較して、メモリアクセス時の遅延を低減し、処理能力を向上させることができる。すなわち、ハードウェア規模に注目した場合には、平均メモリアクセス遅延の値を一定値以下に押さえるためのハードウェア規模を小さくすることができ、プロセッサパッケージのコストを低減することが可能となる。
本発明の実施の形態に係るオンチップマルチコア型耐タンパプロセッサは、マルチタスクのプログラム実行環境下で、プログラム対応に複数の暗号鍵を使用できる暗号処理機能を持つことで、プログラム対応に複数の暗号鍵を使用できる暗号処理機能を持ち、同一パッケージ上に複数の命令実行コアを持つマイクロプロセッサパッケージにおいて、暗号鍵を格納する鍵テーブルと、暗号処理機能部をパッケージ上で1箇所に集中することにより、同鍵テーブルおよび暗号処理機能部を分散して設けた場合と比較して、同一規模のハードウェアにおける処理性能の向上を達成できるマルチプロセッサ構成の耐タンパマイクロプロセッサを提供する。その結果、プログラム自身の実行コードや処理対象のデータの秘密を守り、不正な改変を防止する。
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す実施の形態は、この発明の技術思想を具体化するための装置や方法を例示するものであって、この発明の技術思想を下記のものに特定するものではない。この発明の技術思想は、特許請求の範囲において、種々の変更を加えることができる。
(実施の形態)
(基本技術)
図2に耐タンパプロセッサの基本形を示し、動作を説明する。耐タンパプロセッサは、マルチタスクOSの管理下で、プロセッサハードウェアによりマルチベンダのプログラムの秘密を保護する。OSが信用できないことを前提として、耐タンパプロセッサはプロセッサパッケージ単体のハードウェア機能で完結するプログラムの秘密保護機能を提供する。
プログラムは実行時にはプロセスとしてOSに管理される。耐タンパプロセッサハードウェアにおけるプログラムの実行は、通常のOSの場合と同様プロセスを単位として行われる。大きな違いは、従来OSが管理していたプロセス情報の一部をプロセッサハードウェアが直接管理することおよび、プログラム自身の暗号処理がハードウェアによって処理されることである。
正しいプロセス実行においては、OSとプロセッサによるプロセス情報の管理は一致して行なわれるはずだが、悪意のあるOS、あるいはバグのあるOSを前提とした場合、OSとプロセッサが管理するプロセス情報の間に食い違いが生じることを前提としなければならない。以下の説明では、OSによるプロセス情報の管理とプロセッサによる管理を明確に区別して説明するため、耐タンパプロセッサハードウェアが管理するプロセスを、実行制御ユニット(ECU)と呼ぶ。
耐タンパプロセッサはマルチタスク環境をサポートするため、複数のECUを擬似並行的に実行できる。プロセッサ上で、ECUはECU IDにより一意に識別される。図2において、111はプロセッサコアを、112は実行中のECU IDを保持するECU IDレジスタをそれぞれ表す。121はキャッシュコントローラであり、内部に命令キャッシュ(Iキャッシュ)122とデータキャッシュ(Dキャッシュ)124をそれぞれ持つ。命令キャッシュ122、データキャッシュ124にはそれぞれ命令キャッシュメモリ123、データキャッシュメモリ125があり、各キャッシュメモリはキャッシュライン123−1〜123−n,125−1〜125−nで構成されている。各キャッシュラインはタグフィールドとデータフィールドからなる。
図7にデータキャッシュメモリ125の詳細を説明する。キャッシュライン125−1〜125−nは大きくタグとコンテンツに分けられる。タグには制御ビットフィールド、ECU IDフィールド,アドレスフィールドがある。キャッシュライン125−1について、制御ビットフィールドはキャッシュラインの有効/無効(バリッド/インバリッド)を示す有効フィールド125−1−vと、キャッシュ内容の外部メモリ102に書き込まれていない更新の有無(ダーティ/クリーン)を示すダーティフィールド125−1−dと、キャッシュラインの他のプロセッサと共有状態の有無(シェアド/エクスクルーシブ)を示す共有フィールド125−1−sがある。ECU IDフィールドは125−1−t、アドレスフィールドは125−1−Aである。キャッシュ内容は125−1−Cである。
図2に戻って、131はバスインタフェースユニット(BIU)であり、プロセッサ外部との入出力を行なう。BIU131には鍵テーブル132、セレクタ133,暗号/復号ハードウェア134が備えられている。鍵テーブル132は132−0〜132−mのm+1個のエントリを持つ。各エントリはECU対応にもうけられており、それぞれのエントリにプログラム暗号鍵(以下プログラム鍵)Kxとデータ暗号鍵(以下データ鍵)Kdの2つのフィールドがある。141はECU状態管理機能部を、151は2次キャッシュ、161は公開鍵復号機能部をそれぞれ表す。以下、あるプログラムPをプロセスpとして実行する例を図2にしたがって説明する。このとき、プロセスpにはECU ID#1を割り当てる。
(暗号化プロセスの実行)
プログラムは外部メモリ102上では所定の暗号鍵KxPで暗号化されている。この鍵は、プログラムの供給者がプログラムごとに個別に設定できる。プログラムをECU(プロセス)として実行するときは、OSがプロセスにECU IDを割当てて、ECU IDに対応する鍵テーブル132のエントリを一つ割り当てる。一度ECU IDが割当てられたECUの鍵テーブルエントリは、プロセッサが管理し、たとえOSといえども勝手に書き換えることはできない。なお、以下の説明では、共通鍵アルゴリズムの暗号化/復号化においては、そこで使われる鍵は暗号・復号どちらの場合にも暗号鍵という言葉で表す。
KxPは外部メモリ上ではプロセッサ公開鍵Kpによって暗号化された形Xとして配置されている。ECU IDをプロセスに割当てるとき、OSは割当てるECU ID(ここでは#1)および上記Xのアドレスをパラメータとして、鍵登録特殊命令を発行する。鍵登録命令の実行により、プロセッサハードウェアのECU状態管理機能部141,公開鍵復号機能部161がXをプロセッサ秘密鍵により復号される。復号結果のKxPはやはりハードウェアによってECU ID #1に対応する鍵テーブル132のエントリ132−1−1に暗号鍵を書き込む。この過程はOSによる鍵登録特殊命令発行を除いて全てプロセッサハードウェアによって処理され、OSがこの過程に干渉することはできない。ECU IDに対応する鍵テーブルエントリへの鍵値書き込みにより,ECU #1は実行可能な状態となる。
プロセスpすなわちECU ID#1のECUの実行を開始する時、OSはECU ID#1を指定して特殊命令である実行開始命令を発行する。すると、プロセッサコア111のカレントタスクレジスタ(ECUレジスタ)112に#1が書き込まれ、以後、ECU#1のプログラム実行では、外部メモリ102に格納されている暗号化された命令ではなく、命令の読込み時に、このカレントタスクレジスタ112で指定されるエントリ132−1−x内の鍵すなわちK0で復号化された命令列がキャッシュメモリに格納され、実行される。
なお、OSを含む非暗号化プロセスには、ECU ID#0が割り当てられており、カレントタスクレジスタ112の値が#0の場合は以下の暗号化処理は行なわれない。プロセスpの開始前、OSが実行されている状態ではカレントタスクIDは#0となる。
暗号化されたプログラムの実行で、ECU#1の実行による命令フェッチでアドレスXのメモリ内容が読みこまれたとき、BIU131はXのアドレスに相当する暗号化された命令列のメモリ内容を読みだす。そして、実行中のECU ID#0で指定されるプログラムのエントリ132−0−x内の復号鍵K0によって復号し、キャッシュライン123−1に格納する。
プロセッサコア111はキャッシュライン123−1から復号された命令列を取り込み順次実行する。
(割り込み/再開、被保護ラインへの他タスク参照禁止)
割り込みによりプロセス実行が中断された場合、実行中ECUのレジスタ情報は暗号化されてメモリに保存された後に、所定の割り込みハンドラへ制御が移される。割り込みハンドラへの制御が移るときには、カレントタスクレジスタ(ECU IDレジスタ)112の値は、非暗号化を表す値#0に戻される。
ECU#1の実行が中断されている間も復号化された命令列はキャッシュライン123−1に保持されている。だが、OSまたは他のプロセスが命令フェッチにおいてこのキャッシュラインを参照してもキャッシュヒットの判定においてキャッシュタグのECU ID値(#1)と実行中のECU ID値(≠#1)が一致しないので、OSや他のプロセスが復号化済みのキャッシュラインの命令を実行することはできず、ECU#1と他のECUとは隔離される。
割り込み処理が完了し、再度プロセスpがスケジュールされ、ディスパッチが行なわれるとき、ECU#1の実行再開命令が発行される。実行再開命令の発行によりECU IDが#1に再設定され、保存されたコンテキスト情報がレジスタに読み込まれてプログラムカウンタが復帰され、制御が実行中断前のアドレスに移り、プロセスが再開される。
(データ暗号化)
プロセッサはプログラムだけでなくデータも暗号化処理できる。データの場合には読みだし時の復号だけでなく、書き込み時の暗号化処理があるところが命令の場合との違いである。以下の説明ではデータ処理に使われる鍵をデータ鍵と呼ぶ。ECU#1のデータ鍵はエントリ132−1−dに格納されている。データ鍵の値は命令鍵の初期化と同様に、プロセスの開始時に設定する方法と、プロセスが実行中に設定する方法がある。ここでは命令鍵の初期化時に値が設定されているものとする。以下、データ処理について、図8を使用して説明する。
プロセッサコア111はキャッシュコントローラ121にアドレスX2のワード読み出し要求を発行する(シーケンスS1001)。
データキャッシュ124はアドレスX2のキャッシュ存在判定を行う。ここではアドレスX2の内容はキャッシュされていないので、キャッシュコントローラ121はBIU131を通じて外部メモリ102へアドレスX2を含むアドレス範囲X〜X+31のメモリ読み出し要求を発行する(シーケンスS1002)。
外部メモリ102からのECU#1のデータの読み込みは、命令と同様にキャッシュライン単位で行なわれる。プロセッサコア111からアドレスXのメモリに対するデータ読み出し要求があったときには、キャッシュからBIU131へカレントECU ID#1が伝達される。外部メモリ102から読み出されたアドレスXに対応するキャッシュデータC(X)の内容は、カレントタスクレジスタ112で指定されるエントリ132−1−d内のデータ鍵K1dにより復号化されて結果がキャッシュライン125−xに格納され、タグにID#1が書き込まれる(シーケンスS1003)。
プロセッサコア111はキャッシュライン125−xから要求したアドレスのキャッシュデータC(X2)=aのメモリ内容を読み込み、エントリ125−x−Cに格納する(シーケンスS1004)。
外部メモリ102から内容が読み込んだ状態では、当該キャッシュライン125−xのタグの状態ビット125−x−dは“クリーン”の状態になる。データの場合には書込みがある。プロセッサコア111からデータの書き込みがあった場合、対象アドレスがキャッシュにヒットすればキャッシュにデータを書き込む(シーケンスS1005)。
ここではライトバックキャッシュアルゴリズムが採用されているので変更されたデータはすぐには外部メモリ102に書き戻されない。書き込みがあったキャッシュラインの状態ビット125−x−dは“ダーティ”状態になる。
(データのライトバック)
キャッシュラインがフラッシュされ、書き戻される時、暗号化が行なわれる。実行中ECU IDで指定されるデータ鍵で暗号化されて外部メモリ102の所定アドレスに書き込まれる。例においてはアドレスXの内容が保持されているキャッシュライン125−xについて競合する、アドレスX+m*32の読込み要求がプロセッサコア111から発行されると(シーケンスS1007)、キャッシュライン125−xの書き戻しが始まる。
データの書き込みに先立って、データの暗号化が行われる。キャッシュコントローラ121により当該キャッシュライン125−xを読み込んだときのECU IDを格納するキャッシュタグ125−x−tが参照されECU ID♯1が取り出される。そしてBIU131において鍵テーブル132のデータ鍵でECU ID♯1に対応するエントリ132−1−dのフィールドに格納された鍵K1dの値が読み出され、鍵K1dによりキャッシュデータが暗号化される。暗号化されたデータは外部メモリ102のアドレスXに書き戻される(シーケンスS1008)。
なお、この時点ではキャッシュライン125−xのECU IDとカレントECU IDは異なる場合がある。例ではシーケンスS1006においてカレントECU IDが♯0に変更されているため、キャッシュライン書き戻しの際の暗号鍵指定に使われるECU IDとカレントECU IDとは一致しない。書き戻しの際の暗号鍵指定に使われるのはキャッシュタグに格納されたキャッシュライン125−xを読み込んだときのECU IDである。
さて、書き換え対象のラインに残されていたデータの書き戻しが終わると、中断していたアドレスX+m*32のメモリ読み出しが再開される(シーケンスS1009)。
このメモリ参照ではECU IDが0なので、メモリ読み込みにあたって復号化処理は行われず、外部メモリ102から読み込まれた値がそのままデータキャッシュメモリ125に格納され、キャッシュライン125−xのフィルが完了する(シーケンスS1010)。そして、キャッシュラインからコアが要求したアドレスのワードが読み込まれる(シーケンスS1011)。
(キャッシュ上データに対するプロセス間のアクセス競合制御)
上記キャッシュライン125−xに復号化状態のデータが存在する時、命令の場合と同様、他のプロセスによってアクセスされる場合がありうる。データの場合も命令と同様に、アクセス対象のキャッシュラインのタグに記録されたECU IDとカレントECU IDが比較され、一致しない場合は当該キャッシュラインはフラッシュされるため、プロセスpが読み込んだ平文データは他のプロセスから隔離保護される。
上記のメカニズムにより、耐タンパプロセッサシステムでは、悪意のあるOSの管理下でも、異なるベンダが供給するソフトウェア毎の情報の隔離保護が保証される。
(バス結合独立型マルチプロセッサ)
プロセッサシステムは、図3に示すように、システムバスライン205と、システムバスライン205に接続されたメモリインタフェース207と、メモリインタフェース207を介してシステムバスライン205に接続された外部メモリ208と、複数のプロセッサ201−1〜201−nと、システムバスライン205に接続されたDMAコントローラ206−1〜206−mとを備える。耐タンパプロセッサのマルチプロセッサシステムとして構成され、個々のプロセッサの内部には、プロセッサコア202−1〜202−nと、キャッシュ203−1〜203−nと、暗号機能を有するBIU204−1〜204−nが含まれる。図3においては、201,202,203,204はそれぞれ図2における101,111,121,131に対応する。
また、システムの性能向上の目的でマルチプロセッサ構成がしばしば用いられる(図3)。201−1〜201−nが独立したパッケージの暗号機能を持つプロセッサであり、システムバスライン205を通じて接続されている。それぞれのプロセッサが独立にキャッシュを持つマルチプロセッサ構成のシステムでは、データキャッシュの一貫性を保証するためのキャッシュ一貫性制御プロトコルが使われる。キャッシュ一貫性制御プロトコルでは、個々のプロセッサの間で、データの同期を取るためのメッセージが交換され、データキャッシュの一貫性が保たれる。このとき、個々のプロセッサから見ると、外部からのメッセージによってローカルのキャッシュデータの入出力制御を行う必要がある。耐タンパプロセッサにおけるキャッシュ一貫性制御方式では、図3に示す201−1〜201−nのプロセッサそれぞれがひとつずつのプロセッサコア202−1〜202−nを持ち、プロセッサパッケージのひとつひとつが暗号機能を持つ耐タンパプロセッサであり、システムバスライン205を通じて接続されるときの問題を解決している。一般に、このような各プロセッサパッケージが独立にキャッシュを持つマルチプロセッサ構成では、あるプロセッサがローカルにキャッシュデータを更新したときに、その更新情報を他のプロセッサが持つキャッシュに反映するためのキャッシュ一貫性制御が必要となり、上記耐タンパプロセッサにおけるキャッシュ一貫性制御方式では各プロセッサが独立して動作するときのキャッシュ一貫性制御方式を示している。
(単純な適用例)
図2に示した独立耐タンパプロセッサを、単純にオンチップマルチコア型のマルチプロセッサ構成に適用した例を図4に示す。以下この例を単純適用例と呼ぶ。図4に示すプロセッサパッケージ301において、311−1〜311−nはチップ上のプロセッサを表す。311−1のプロセッサ中で、321−1はプロセッサコアを、331−1はキャッシュコントローラを、332−1は命令キャッシュを、333−1はデータキャッシュを、341−1は内部BIU(以下I−BIUと表記)を、342−1は鍵テーブルを、343−1は暗号/復号ハードウェアを、351はECU状態管理機能部を、361−1は公開鍵復号機能部をそれぞれ表す。プロセッサパッケージ301において371は内部バスを381はBIUを、391は2次キャッシュをそれぞれ表す。
図9は本発明の実施の形態において、メモリ参照時にプロセッサ411−1〜nよりBIU461へ内部バス451を経由して発行される、メモリ読み出し要求信号1101および書き込み要求信号1121の形式を表す図である。読み出し要求のECU番号1102はメモリ参照が発生したときのECU IDが格納され、BIU461はこの値に基づいて復号処理に使う鍵を鍵テーブルから選択する。つまり、内部信号においてECU番号1102は鍵識別子として機能する。そして、プロセッサ番号1103は要求発行元のプロセッサ番号を、リクエスト番号1104は要求発行元プロセッサごとに付与される要求番号を、タイプ1105はプログラムとデータの識別を、アドレス1106は読み出しアドレスを、サイズ1107は読み出しサイズをそれぞれ表す。このうち、プロセッサ番号1103は、単一プロセッサ構成の場合には存在しないものである。
厳密には、BIU461における鍵選択はECU番号11021102とタイプ1105の両方によって行われるので、この両方を合わせたものが、内部バス信号における鍵識別子として機能することになる。書き込み要求信号1121の形式は書き込みデータ1128があることを除いて読み出しの場合と同様である。
図5は単純適用例における2つのプロセッサによるメモリアクセス動作シーケンスの時間経過を示したものである。図5上において、2クロックごとに補助線が引かれている。ここではメモリ参照動作シーケンスは4クロック、復号処理動作シーケンスは10クロックを要する。
プロセッサ311−1のプロセッサコア321−1はキャッシュコントローラ331−1に対してメモリ参照要求REQ1を発行する(シーケンスS501)。キャッシュがミスヒットの場合、1クロック遅れてI−BIU341−1へ参照要求が出され(シーケンスS502)、さらにBIU381へと転送され(シーケンスS503)、メモリ参照MEM1が行われる(シーケンスS504)。
この間に、メモリ参照要求REQ1から1単位時間遅れてプロセッサ311−2のプロセッサコア321−2が同様に、メモリ参照要求REQ2を発行する(シーケンスS505)。BIU381への要求はシーケンスS509として発行されるが、メモリ参照の実行はメモリ参照MEM1の処理後にスケジュールされる。
さらにプロセッサ311−1のキャッシュコントローラ331−1からはプリフェッチ要求PRE1が、シーケンスS502から2クロック遅れて発行される(シーケンスS507)。プリフェッチ要求PRE1の処理はシーケンスS509の後になる。
メモリ参照MEM1が完了すると、結果がI−BIU341−1に送られ、復号処理DEC1が始まる(シーケンスS509)。BIU381ではキューイングされていたメモリ参照MEM2が始まる(シーケンスS510)。
メモリ参照MEM2が完了すると、同様にプロセッサ311−2のI−BIU341−2に結果が送られ、復号処理DEC2が始まる(シーケンスS513)。BIU381ではキューイングされていたプロセッサ311−1によるのメモリ参照MEM3が始まる(シーケンスS514)。
プロセッサ311−1での復号処理DEC1が完了すると結果がキャッシュコントローラ331−1に送られ(シーケンスS516)、プロセッサコア321−1へメモリ参照応答RSP1が返される(シーケンスS517)。復号処理の完了と同時にすでに完了していたメモリ参照MEM3のメモリ参照結果(シーケンスS515)の復号処理DEC3が始まる(シーケンスS518)。このとき、メモリ参照MEM3の参照結果が得られてから復号処理DEC3が始まるまで2クロックの遅延が生じる。
プロセッサ311−2では復号処理DEC2が完了すると結果がメモリ参照応答RSP2としてコア321−2に返される(シーケンスS520)。プロセッサ311−1ではメモリ参照応答RSP1の後にメモリ参照要求REQ3が発行されており(シーケンスS521)、復号処理DEC3が完了すると結果がメモリ参照応答RSP3としてコア321−1に返される(シーケンスS523)。
シーケンスS507におけるプリフェッチPRE1からメモリ参照結果が返されるまでの遅延はメモリ参照MEM1,MEM2の終了待ち(6クロック)+MEM3自身の処理遅延(4クロック)+DEC1の終了待ち(2クロック)+DEC3自身の処理遅延(10クロック)=22クロックとなる(シーケンスS524)。
なお、シーケンスS503およびシーケンスS509のメモリ参照要求に対して、BIU381がメモリからの読み出し結果を復号するときに使用する鍵は、それぞれのメモリ参照要求における書き込み要求信号1121のECU番号1102およびタイプ1105によって選択される。
そして、BIU381からI−BIU341−1、341−2に読み出し結果を返すときは、シーケンスS503およびS509で送られたメモリ参照要求における書き込み要求信号1121のプロセッサ番号1103に基づいて結果を要求元のプロセッサに送る。このECU番号1102およびタイプ1105からなる鍵識別子と要求発行元のプロセッサ番号1103を持つ信号形式を使うことで、オンチップマルチコア型耐タンパプロセッサにおいても、暗号鍵選択とメモリ参照結果の要求発行元への送付が可能となる。
(パイプライン処理)
次に本発明の実施の形態に係るオンチップマルチコア型耐タンパプロセッサの構成および動作を図1および図6にしたがって説明する。
図1に示すプロセッサパッケージ401において、411−1〜411−nはチップ上のプロセッサを表す。411−1のプロセッサ中で、421−1はプロセッサコアを、431−1はキャッシュコントローラを、432−1は命令キャッシュを、433−1はデータキャッシュを、441はECU状態管理機能部をそれぞれ表す。本構成においては暗号処理機能はパッケージ上にひとつ設けられるBIU461にまとめられ、462は鍵テーブルを、463は暗号/復号処理部を表す。464はセレクタを表し、キャッシュからの要求に応じて暗号/復号処理部463において使用する鍵を選択する鍵選択機能を有する。ここで暗号/復号処理部463はプロセッサパッケージ401にただひとつ設けられているだけだが、データの処理中に別の要求を受け付けることができるパイプライン処理能力を持つ。プロセッサパッケージ401において451は内部バスを、471は2次キャッシュを、481は公開鍵復号機能部をそれぞれ表す。
以下、図6にしたがって本発明の実施の形態の動作を説明する。これは、単純適用例の場合と同様に2つのプロセッサによるメモリアクセス動作であり、リクエストREQ1〜REQ3の発生タイミングも同一、メモリアクセス遅延(4クロック)、復号遅延(10クロック)も同一である。処理時間に影響する違いは、BIU461で行われる復号処理が、パイプライン処理されることである。そのほか、構成上の違いとして、I−BIUがなくなっている。
プロセッサ411−1のプロセッサコア421−1はキャッシュコントローラ431−1に対してメモリ参照要求REQ1を発行する(シーケンスS601)。キャッシュコントローラ431−1がミスヒットなので、1クロック遅れてBIU461へ参照要求(シーケンスS602)が出され、メモリ参照MEM1が行われる(シーケンスS603)。メモリ参照MEM1〜3は全て4クロックを要する。この間に、メモリ参照要求REQ1から1単位時間遅れてプロセッサ411−2のプロセッサコア421−2が同様にメモリ参照要求REQ2を発行する(シーケンスS604)。キャッシュコントローラ431−2からBIU461への要求はシーケンスS605として発行されるが、メモリ参照の実行はメモリ参照MEM1の処理後にスケジュールされる。
さらにプロセッサ411−1のキャッシュコントローラ431−1からはプリフェッチ要求PRE1のシーケンスS608が、シーケンスS602から2クロック遅れて発行される。プリフェッチ要求PRE1の処理はメモリ参照MEM2の後になる(シーケンスS607)。
メモリ参照MEM1が完了すると、暗号/復号処理部463で参照結果の復号処理DEC1が始まる(シーケンスS606)。同時にキューイングされていたメモリ参照MEM2が始まる(シーケンスS607)。
メモリ参照MEM2が完了すると、同様に復号処理DEC2が始まる(シーケンスS609)。この時点で復号処理DEC1はまだ完了していないが、暗号/復号処理部463はパイプライン処理能力を持つので、次のデータを処理することができる。キューイングされていたプロセッサ411−1によるのメモリ参照MEM3が始まる(シーケンスS613)。
復号処理DEC1が完了すると結果がキャッシュコントローラ431−1に送られ(シーケンスS611)、プロセッサコア421−1へメモリ参照応答RSP1が返される(シーケンスS612)。復号処理の完了と同時にすでに完了していたメモリ参照MEM3の結果の復号処理DEC3が始まる(シーケンスS614)。
プロセッサ2では復号処理DEC2が完了すると結果がメモリ参照応答RSP2としてプロセッサコア421−1に返される(シーケンスS617)。
プロセッサ411−1ではメモリ参照応答RSP1の後に参照要求REQ3が発行されており、復号処理DEC3が完了すると結果がメモリ参照応答RSP3としてプロセッサコア421−1に返される(シーケンスS620)。ここで、プロセッサ411−1,411−2によるメモリ参照要求REQ1,REQ2に対するメモリ参照応答RSP1,RSP2の遅延時間は単純適用例と同一である。
しかしながら、シーケンスS608におけるプリフェッチ要求PRE1からメモリ参照結果が返されるまでの遅延はメモリ参照MEM1,MEM2の終了待ち(6クロック)+メモリ参照MEM3自身の処理遅延(4クロック)+復号処理DEC3自身の処理遅延(10クロック)=20クロックとなり(シーケンスS621)、単純適用例の場合と比較して復号処理DEC2の完了待ちの2クロックだけ待ち時間を短縮することができる。
上記実施の形態ではプロセッサ数を2個とし、プリフェッチ要求はプロセッサ411−1から1回だけ行う例を示したが、プロセッサ数が増え、プリフェッチ要求がそれぞれのプロセッサコアから行われた場合、本実施の形態の適用による待ち時間の短縮はより顕著となり、性能向上をはかることができる。
この効果は関連するプロセッサの数が多く、かつメモリ参照要求REQ1とプリフェッチ要求PRE1のような連続したメモリ参照の頻度が多いほど高くなる。
一般に10段の構成で10クロックの遅延を持つブロック暗号処理回路を、パイプライン化した場合、その回路規模は単純には10倍になる。実際には回路を集中化したことにより重複部分のオーバヘッドを削ることで10倍より小さくなることが期待できる。
したがって、10個のコアを持つオンチップマルチコア型のプロセッサパッケージの場合、10個のコアにそれぞれパイプライン機能を持たない暗号ハードウェアを設けた単純適用例と、1個のパイプライン機能を持つ暗号ハードウェアを設けた本発明の実施の形態の場合とでは、回路規模は同等もしくは本発明の実施の形態の構成の方が小さくなる。このハードウェア条件のもとで、上記動作例に示したように、本発明の実施の形態の構成はメモリの復号処理の遅延を小さく押さえることができ、性能向上の効果がある。さらに単純適用例では、各プロセッサに鍵テーブルが必要となっていたが、本発明の実施の形態の構成では、鍵テーブルをひとつに集約することができ、この点においてもハードウェア規模を小さく押さえる効果がある。
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施の形態及び運用技術が明らかとなろう。したがって、本発明の技術範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
その他、本発明の要旨を逸脱しない範囲で、様々に変形して実施することができる。なお、上記各実施の形態は、それぞれ組み合わせて実施することができる。このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。
本発明の実施の形態のプロセッサ内部構成図。 耐タンパプロセッサ基本内部構成図。 独立型バス結合耐タンパプロセッサシステムの構成図。 単純オンチップマルチコア型耐タンパプロセッサシステムの構成図。 単純オンチップマルチコア型耐タンパプロセッサシステムの動作シーケンス図。 本発明の実施の形態に係るオンチップマルチコア型耐タンパプロセッサシステムの動作シーケンス図。 図2に示す耐タンパプロセッサにおいて使用するキャッシュデータ構造の詳細図。 図2に示す耐タンパプロセッサの動作説明図であって、ユニプロセッサのキャッシュアクセスシーケンス図。 本発明の実施の形態において使用する内部バスの信号形式であって、(a)読み出し要求信号の形式を表す模式図、(b)書き込み要求信号の形式を表す模式図。
符号の説明
101,201−1〜201−n,411−1〜411−n…マイクロプロセッサ(プロセッサ)
102,208…外部メモリ
111,202−1〜202−n,321−1〜321−n,421−1〜421−n…プロセッサコア
112…カレントタスクレジスタ(ECU IDレジスタ)
121,203−1〜203−n,331−1〜331−n,431−1〜431−n…キャッシュコントローラ
122,332−1〜332−n,432−1〜432−n…命令キャッシュ(Iキャッシュ)
123…命令キャッシュメモリ
124,333−1〜333−n,433−1〜433−n…データキャッシュ(Dキャッシュ)
125…データキャッシュメモリ
123−1〜123−n,125−1〜125−n…キャッシュライン
125−1−v…有効フィールド
125−1−d…ダーティフィールド
125−1−s…共有フィールド
125−1−t…ECUフィールド
125−1−A…アドレスフィールド
125−1−C…キャッシュ内容
125−x−t…キャッシュタグ
125−x−C…キャッシュ内容
125−x−d…状態ビット
131,204−1〜204−n,381,461…バスインタフェースユニット(BIU)
132,342−1〜342−n,462…鍵テーブル
132−0〜132−m,132−1−x,232−1−d…エントリ
133,464…セレクタ
134,463…暗号/復号処理部
135…暗号/復号共通モジュール
140…外部バス
141,351−1〜351−n,441−1〜441−n…ECU状態管理機能部
151,471…2次キャッシュ
161,361−1〜361−n,481…公開鍵復号機能部
205…システムバスライン
206−1〜206−m…DMAコントローラ
207…メモリインタフェース
301,401…プロセッサパッケージ
341−1〜341−n…内部バスインタフェースユニット(I−BIU)
343−1〜343−n…暗号/復号ハードウェア
451,371…内部バス
1101…読み出し要求信号
1102…ECU番号
1103…プロセッサ番号
1104…リクエスト番号
1105…タイプ
1106…アドレス
1107…サイズ
1121…書き込み要求信号
1128…データ
S501〜S524,S601〜S622,S1001〜S1011…シーケンス
Kx,K1x,K2x〜Kmx,Kx0〜Kxn…プログラム鍵
Kd,K1d,K2d〜Kmd,Kd0〜Kdn…データ鍵
KxP…暗号鍵
K0…復号鍵
P…プログラム
p…プロセス
X〜X+31…アドレス
C(X),C’(X)…キャッシュデータ

Claims (7)

  1. プログラムを並列に実行可能な第1のプロセッサおよび第2のプロセッサと、
    前記プログラムに対する鍵を格納する鍵テーブルと、
    前記第1のプロセッサで実行中のプログラムからのメモリ参照要求、第2のプロセッサで実行中のプログラムからのメモリ参照要求、または、前記第1および第2のプロセッサで実行中のプログラムからのメモリ参照要求に応じて、要求されたメモリデータを外部のメモリから取得する手段と、取得したメモリデータを、前記鍵テーブルから取り出した前記プログラムに対応する鍵で復号する復号処理手段とを有するバスインタフェースユニットであり、前記第1および第2のプロセッサと接続され、前記鍵テーブルを有する前記バスインタフェースユニットと
    を備え
    非保護の平文プログラムと保護ありの暗号化プログラムとが混在して並列実行される前記複数のプロセッサが、前記復号処理手段を共有していることを特徴とするマイクロプロセッサパッケージ。
  2. プログラムを並列に実行可能な第1のプロセッサおよび第2のプロセッサと、
    前記プログラムに対する鍵を格納する鍵テーブルと、
    前記第1のプロセッサで実行中のプログラムからのメモリ書き込み要求、第2のプロセッサで実行中のプログラムからのメモリ書き込み要求、または、前記第1および第2のプロセッサで実行中のプログラムからのメモリ書き込み要求に応じて、前記鍵テーブルから取り出した前記プログラムに対応する鍵でメモリへ書き込むデータを暗号化する暗号化処理手段と、暗号化されたデータを外部のメモリへ転送する手段とを有するバスインタフェースユニットであって、前記第1および第2のプロセッサと接続され、前記鍵テーブルを有する前記バスインタフェースユニットと
    を備え
    非保護の平文プログラムと保護ありの暗号化プログラムとが混在して並列実行される前記複数のプロセッサが、前記暗号処理手段を共有していることを特徴とするマイクロプロセッサパッケージ。
  3. 前記復号処理手段は、パイプライン処理によって復号を行うことを特徴とする請求項1記載のマイクロプロセッサパッケージ。
  4. 前記暗号化処理手段は、パイプライン処理によって暗号化を行うことを特徴とする請求項2記載のマイクロプロセッサパッケージ。
  5. 前記第1および第2のプロセッサから前記バスインタフェースユニットへ発行されるメモリ参照要求に、要求発行元のプロセッサを識別するプロセッサ識別子および前記鍵テーブルのエントリを一意に識別する鍵識別子を含むことを特徴とする請求項1記載のマイクロプロセッサパッケージ。
  6. 前記第1および第2のプロセッサから前記バスインタフェースユニットへ発行されるメモリ書き込み要求に、要求発行元のプロセッサを識別するプロセッサ識別子および前記鍵テーブルのエントリを一意に識別する鍵識別子を含むことを特徴とする請求項2記載のマイクロプロセッサパッケージ。
  7. プログラムを並列に実行可能な第1のプロセッサおよび第2のプロセッサと、
    前記第1および第2のプロセッサと接続され、前記プログラムに対する鍵を格納する鍵テーブルを有する前記バスインタフェースユニットと
    を備え、
    前記バスインタフェースユニットが、前記第1のプロセッサで実行中のプログラムからのメモリ参照要求、第2のプロセッサで実行中のプログラムからのメモリ参照要求、または、前記第1および第2のプロセッサで実行中のプログラムからのメモリ参照要求に応じて、要求されたメモリデータを外部のメモリから取得する手段と、取得したメモリデータを、前記鍵テーブルから取り出した前記プログラムに対応する鍵で復号する復号処理手段とを有し、
    非保護の平文プログラムと保護ありの暗号化プログラムとが混在して並列実行される前記複数のプロセッサが、前記復号処理手段を共有している
    ことを特徴とするマイクロプロセッサパッケージ。
JP2003331143A 2003-09-24 2003-09-24 オンチップマルチコア型耐タンパプロセッサ Expired - Lifetime JP4263976B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003331143A JP4263976B2 (ja) 2003-09-24 2003-09-24 オンチップマルチコア型耐タンパプロセッサ
US10/948,313 US7590869B2 (en) 2003-09-24 2004-09-24 On-chip multi-core type tamper resistant microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003331143A JP4263976B2 (ja) 2003-09-24 2003-09-24 オンチップマルチコア型耐タンパプロセッサ

Publications (2)

Publication Number Publication Date
JP2005099984A JP2005099984A (ja) 2005-04-14
JP4263976B2 true JP4263976B2 (ja) 2009-05-13

Family

ID=34459878

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003331143A Expired - Lifetime JP4263976B2 (ja) 2003-09-24 2003-09-24 オンチップマルチコア型耐タンパプロセッサ

Country Status (2)

Country Link
US (1) US7590869B2 (ja)
JP (1) JP4263976B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12019511B2 (en) 2022-09-16 2024-06-25 Kabushiki Kaisha Toshiba Information processing apparatus, method, and storage medium

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8176298B2 (en) 2002-10-08 2012-05-08 Netlogic Microsystems, Inc. Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline
US9088474B2 (en) 2002-10-08 2015-07-21 Broadcom Corporation Advanced processor with interfacing messaging network to a CPU
US7334086B2 (en) * 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US8478811B2 (en) 2002-10-08 2013-07-02 Netlogic Microsystems, Inc. Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip
US8037224B2 (en) * 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US20050033889A1 (en) * 2002-10-08 2005-02-10 Hass David T. Advanced processor with interrupt delivery mechanism for multi-threaded multi-CPU system on a chip
JP4612461B2 (ja) * 2004-06-24 2011-01-12 株式会社東芝 マイクロプロセッサ
JP4204522B2 (ja) * 2004-07-07 2009-01-07 株式会社東芝 マイクロプロセッサ
US7664970B2 (en) 2005-12-30 2010-02-16 Intel Corporation Method and apparatus for a zero voltage processor sleep state
US7496753B2 (en) * 2004-09-02 2009-02-24 International Business Machines Corporation Data encryption interface for reducing encrypt latency impact on standard traffic
US7409558B2 (en) * 2004-09-02 2008-08-05 International Business Machines Corporation Low-latency data decryption interface
JP4969791B2 (ja) * 2005-03-30 2012-07-04 株式会社日立製作所 ディスクアレイ装置およびその制御方法
US7409570B2 (en) 2005-05-10 2008-08-05 Sony Computer Entertainment Inc. Multiprocessor system for decrypting and resuming execution of an executing program after transferring the program code between two processors via a shared main memory upon occurrence of predetermined condition
US8397081B2 (en) * 2005-06-22 2013-03-12 Freescale Semiconductor, Inc. Device and method for securing software
WO2007049388A1 (ja) * 2005-10-24 2007-05-03 Sony Computer Entertainment Inc. 検索仲介装置、検索仲介方法、分散検索システム、分散処理装置及び分散処理装置の制御方法
JP4498295B2 (ja) * 2005-11-30 2010-07-07 株式会社東芝 アクセス制御装置、アクセス制御システム、プロセッサ、アクセス制御方法
JP4795812B2 (ja) 2006-02-22 2011-10-19 富士通セミコンダクター株式会社 セキュアプロセッサ
US8560863B2 (en) * 2006-06-27 2013-10-15 Intel Corporation Systems and techniques for datapath security in a system-on-a-chip device
US20080148061A1 (en) * 2006-12-19 2008-06-19 Hongxia Jin Method for effective tamper resistance
EP2040192A4 (en) * 2006-12-22 2011-03-30 Panasonic Corp INFORMATION PROCESSING DEVICE, INTEGRATED CIRCUIT, METHOD, AND PROGRAM
JP2009044677A (ja) * 2007-08-10 2009-02-26 Panasonic Corp 機密情報処理装置、機密情報処理機器、及び機密情報処理方法
US8479014B1 (en) * 2007-09-04 2013-07-02 Guoan Hu Symmetric key based secure microprocessor and its applications
JP4782871B2 (ja) * 2007-10-03 2011-09-28 富士通株式会社 デバイスアクセス制御プログラム、デバイスアクセス制御方法および情報処理装置
JP4976991B2 (ja) * 2007-11-22 2012-07-18 株式会社東芝 情報処理装置、プログラム検証方法及びプログラム
DE102007062915A1 (de) * 2007-12-21 2009-06-25 Endress + Hauser Process Solutions Ag Verfahren zum Betreiben einer speicherprogrammierbaren Steuerung
US9596324B2 (en) 2008-02-08 2017-03-14 Broadcom Corporation System and method for parsing and allocating a plurality of packets to processor core threads
JP2010067089A (ja) * 2008-09-11 2010-03-25 Toshiba Corp システムlsi
JP2012508938A (ja) * 2008-11-14 2012-04-12 インテル・コーポレーション セキュアなアプリケーション実行方法および装置
JP5322620B2 (ja) 2008-12-18 2013-10-23 株式会社東芝 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム
JP2010185982A (ja) * 2009-02-10 2010-08-26 Toshiba Storage Device Corp 暗号化装置、復号化装置及び記憶装置
EP2250760A1 (en) * 2009-02-26 2010-11-17 LSI Corporation Cipher independent interface for cryptographic hardware service
US8578175B2 (en) 2011-02-23 2013-11-05 International Business Machines Corporation Secure object having protected region, integrity tree, and unprotected region
US8954752B2 (en) 2011-02-23 2015-02-10 International Business Machines Corporation Building and distributing secure object software
US9298894B2 (en) * 2009-06-26 2016-03-29 International Business Machines Corporation Cache structure for a computer system providing support for secure objects
US9846789B2 (en) 2011-09-06 2017-12-19 International Business Machines Corporation Protecting application programs from malicious software or malware
US8819446B2 (en) * 2009-06-26 2014-08-26 International Business Machines Corporation Support for secure objects in a computer system
US9954875B2 (en) 2009-06-26 2018-04-24 International Business Machines Corporation Protecting from unintentional malware download
DE102010014748B4 (de) * 2009-09-30 2019-01-17 Infineon Technologies Ag Vorrichtung zum Protokollieren einer Konfiguration eines Mikroprozessorsystems sowie Verfahren zum Protokollieren einer Konfiguration eines Mikroprozessorsystems
US8380724B2 (en) * 2009-11-24 2013-02-19 Microsoft Corporation Grouping mechanism for multiple processor core execution
CN102473224B (zh) * 2009-12-22 2016-10-12 英特尔公司 提供安全应用执行的方法和装置
US9087200B2 (en) 2009-12-22 2015-07-21 Intel Corporation Method and apparatus to provide secure application execution
US8645714B2 (en) 2010-05-25 2014-02-04 Via Technologies, Inc. Branch target address cache for predicting instruction decryption keys in a microprocessor that fetches and decrypts encrypted instructions
US9911008B2 (en) 2010-05-25 2018-03-06 Via Technologies, Inc. Microprocessor with on-the-fly switching of decryption keys
US9798898B2 (en) 2010-05-25 2017-10-24 Via Technologies, Inc. Microprocessor with secure execution mode and store key instructions
US9967092B2 (en) 2010-05-25 2018-05-08 Via Technologies, Inc. Key expansion logic using decryption key primitives
US9892283B2 (en) 2010-05-25 2018-02-13 Via Technologies, Inc. Decryption of encrypted instructions using keys selected on basis of instruction fetch address
US8990582B2 (en) * 2010-05-27 2015-03-24 Cisco Technology, Inc. Virtual machine memory compartmentalization in multi-core architectures
US8856504B2 (en) * 2010-06-07 2014-10-07 Cisco Technology, Inc. Secure virtual machine bootstrap in untrusted cloud infrastructures
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8782435B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time using control flow signatures
JP5171907B2 (ja) * 2010-09-13 2013-03-27 株式会社東芝 情報処理装置、情報処理プログラム
US8988536B2 (en) * 2010-12-23 2015-03-24 Samsung Electronics Co., Ltd. Image processing circuit, method of operation thereof, and digital camera including same
KR102450324B1 (ko) 2011-02-09 2022-10-04 엘지전자 주식회사 영상 부호화 및 복호화 방법과 이를 이용한 장치
US9158924B2 (en) 2011-05-25 2015-10-13 Panasonic Intellectual Property Management Co., Ltd. Information processing apparatus and information processing method
US9122873B2 (en) 2012-09-14 2015-09-01 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9280490B2 (en) * 2013-04-17 2016-03-08 Laurence H. Cooke Secure computing
US9846656B2 (en) 2013-04-17 2017-12-19 Laurence H. Cooke Secure computing
CN103607279B (zh) * 2013-11-14 2017-01-04 中国科学院数据与通信保护研究教育中心 基于多核处理器的密钥保护方法及系统
US9223965B2 (en) 2013-12-10 2015-12-29 International Business Machines Corporation Secure generation and management of a virtual card on a mobile device
US9235692B2 (en) 2013-12-13 2016-01-12 International Business Machines Corporation Secure application debugging
JP6068325B2 (ja) * 2013-12-19 2017-01-25 インテル・コーポレーション セキュアなアプリケーションの実行を提供するプロセッサ
CN104883256B (zh) * 2014-02-27 2019-02-01 中国科学院数据与通信保护研究教育中心 一种抵抗物理攻击和系统攻击的密钥保护方法
EP3183685A1 (en) * 2014-08-20 2017-06-28 Intel Corporation Encrypted code execution
US9904807B2 (en) * 2015-01-09 2018-02-27 Toshiba Memory Corporation Memory system and information processing system
JP6085320B2 (ja) * 2015-02-09 2017-02-22 インテル・コーポレーション プロセッサ、プログラム、システム及び方法
US10108557B2 (en) * 2015-06-25 2018-10-23 Intel Corporation Technologies for memory confidentiality, integrity, and replay protection
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
TWI560575B (en) * 2015-10-15 2016-12-01 Via Tech Inc Microprocessor and method for securely executing instructions therein
US10277597B2 (en) 2015-11-09 2019-04-30 Silvercar, Inc. Vehicle access systems and methods
US10721067B2 (en) * 2016-08-10 2020-07-21 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Secure processor for multi-tenant cloud workloads
JP6480403B2 (ja) * 2016-12-22 2019-03-13 インテル・コーポレーション 装置
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
GB2564878B (en) * 2017-07-25 2020-02-26 Advanced Risc Mach Ltd Parallel processing of fetch blocks of data
JP2019053617A (ja) * 2017-09-15 2019-04-04 株式会社東芝 システムlsiおよびシステムlsiの故障検出方法
US10009325B1 (en) * 2017-12-07 2018-06-26 Karamba Security End-to-end communication security
JP6777288B2 (ja) * 2019-02-07 2020-10-28 インテル・コーポレーション プロセッサ
JP7186829B1 (ja) 2021-06-21 2022-12-09 三菱電機株式会社 制御装置および制御装置の製造方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0121853A3 (en) 1983-04-04 1988-01-13 BURROUGHS CORPORATION (a Delaware corporation) Data processing system having public encryption and private decryption keys
JP3657396B2 (ja) * 1997-07-07 2005-06-08 株式会社日立製作所 鍵管理システム、鍵管理装置、情報暗号化装置、情報復号化装置、およびプログラムを記憶した記憶媒体
US6983366B1 (en) * 2000-02-14 2006-01-03 Safenet, Inc. Packet Processor
US7270193B2 (en) * 2000-02-14 2007-09-18 Kabushiki Kaisha Toshiba Method and system for distributing programs using tamper resistant processor
JP4558879B2 (ja) * 2000-02-15 2010-10-06 富士通株式会社 テーブルを用いたデータ処理装置および処理システム
US20030236919A1 (en) * 2000-03-03 2003-12-25 Johnson Scott C. Network connected computing system
US6546465B1 (en) * 2000-08-31 2003-04-08 Hewlett-Packard Development Company, L.P. Chaining directory reads and writes to reduce DRAM bandwidth in a directory based CC-NUMA protocol
JP4153653B2 (ja) * 2000-10-31 2008-09-24 株式会社東芝 マイクロプロセッサおよびデータ保護方法
JP4074057B2 (ja) * 2000-12-28 2008-04-09 株式会社東芝 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法
JP4098478B2 (ja) * 2001-01-31 2008-06-11 株式会社東芝 マイクロプロセッサ
US6918117B2 (en) * 2001-02-08 2005-07-12 International Business Machines Corporation Apparatus and method for dynamic load balancing of multiple cryptographic devices
US20020178240A1 (en) * 2001-05-24 2002-11-28 International Business Machines Corporation System and method for selectively confirming digital certificates in a virtual private network
JP2002353960A (ja) 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
JP4226816B2 (ja) * 2001-09-28 2009-02-18 株式会社東芝 マイクロプロセッサ
KR100445406B1 (ko) * 2001-11-30 2004-08-25 주식회사 하이닉스반도체 데이터 암호화 장치 및 그 방법
US20030105830A1 (en) * 2001-12-03 2003-06-05 Duc Pham Scalable network media access controller and methods
US7107459B2 (en) * 2002-01-16 2006-09-12 Sun Microsystems, Inc. Secure CPU and memory management unit with cryptographic extensions
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
JP3866597B2 (ja) * 2002-03-20 2007-01-10 株式会社東芝 内部メモリ型耐タンパプロセッサおよび秘密保護方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12019511B2 (en) 2022-09-16 2024-06-25 Kabushiki Kaisha Toshiba Information processing apparatus, method, and storage medium

Also Published As

Publication number Publication date
JP2005099984A (ja) 2005-04-14
US7590869B2 (en) 2009-09-15
US20050105738A1 (en) 2005-05-19

Similar Documents

Publication Publication Date Title
JP4263976B2 (ja) オンチップマルチコア型耐タンパプロセッサ
US11321469B2 (en) Microprocessor pipeline circuitry to support cryptographic computing
US7673152B2 (en) Microprocessor with program and data protection function under multi-task environment
US9298894B2 (en) Cache structure for a computer system providing support for secure objects
US8566607B2 (en) Cryptography methods and apparatus used with a processor
US6523118B1 (en) Secure cache for instruction and data protection
US8191155B2 (en) Microprocessor
US7681044B2 (en) Secure processor and system
JP3880933B2 (ja) 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法
JP2002232417A (ja) マイクロプロセッサ
US20090144564A1 (en) Data encryption interface for reducing encrypt latency impact on standard traffic
US11748493B2 (en) Secure asset management system
US20150301957A1 (en) Secured memory system and method therefor
WO2019139854A1 (en) Managing a set of cryptographic keys in an encrypted system
JP4591163B2 (ja) バスアクセス制御装置
JP2023086670A (ja) レガシ周辺デバイスを用いた暗号コンピューティング
JP2009064462A (ja) マイクロプロセッサ
JP2018526720A (ja) 仮想マシンの状態情報の保護
JP4309726B2 (ja) マイクロプロセッサ
KR20090059602A (ko) 세션 메모리 버스를 구비한 암호화 장치
JP4021810B2 (ja) プロセッサ、プロセッサシステム及びキャッシュ一貫性制御方法
JP2002244757A (ja) 半導体回路
JP3642533B2 (ja) プログラムカード及びこれを用いた計算機
JP2010134572A (ja) セキュリティを実現する装置、および方法
WO2015157842A1 (en) Secured memory system and method therefor

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080805

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081002

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

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

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

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4263976

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140220

Year of fee payment: 5

EXPY Cancellation because of completion of term