JP5021078B2 - 公的にアクセス可能なストレージからデータ処理マシンの状態に関するプライベートデータへのアクセス - Google Patents

公的にアクセス可能なストレージからデータ処理マシンの状態に関するプライベートデータへのアクセス Download PDF

Info

Publication number
JP5021078B2
JP5021078B2 JP2011000154A JP2011000154A JP5021078B2 JP 5021078 B2 JP5021078 B2 JP 5021078B2 JP 2011000154 A JP2011000154 A JP 2011000154A JP 2011000154 A JP2011000154 A JP 2011000154A JP 5021078 B2 JP5021078 B2 JP 5021078B2
Authority
JP
Japan
Prior art keywords
data
processor
private
address
encoded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011000154A
Other languages
English (en)
Other versions
JP2011076632A (ja
Inventor
ロビンソン,スコット
エスピノーザ,グスタヴォ
ベネット,スティーヴン
Original Assignee
インテル コーポレイション
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 インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2011076632A publication Critical patent/JP2011076632A/ja
Application granted granted Critical
Publication of JP5021078B2 publication Critical patent/JP5021078B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • 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
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Description

本発明の実施の形態のうちの幾つかは、プロセッサがコンピュータシステムのストレージからステータスデータをどのように読取り、コンピュータシステムのストレージにステータスデータをどのように書き込むかに関する。他の実施の形態も記載される。
各種設計の考慮により、プロセッサのなかには公的にアクセス可能なストレージ“publicly-accessible storage”における領域にプライベートステータスデータ“private-state data”を書き込む場合がある。このプライベートステータスのフォーマット、セマンティクス及びロケーションは、設計の実現の間で変動する場合がある。プロセッサを記載する文献では、かかるストレージ領域は、これらのコンテンツがプライベートステータスを含むために読取り又は変更されるべきではないことを示す“RESERVED”として記録されることがある。残念なことに、このデータは公的にアクセス可能なストレージに書き込まれるため、ソフトウェアアプリケーション、オペレーティングシステム又は外部エージェント(たとえば入力−出力装置)は、ストレージ領域にアクセスし、そこに記憶されているプライベートステータスを不適切に使用する場合がある。かかる承認されないエンティティによる、このプライベート状態へのアクセス及び使用は、プロセッサ及びプラットフォーム製造業者及びエンドユーザのとって誤った影響及び/又は望まれない影響につながる場合がある。
PCT/US2004/038734, “Accessing private data about the state of a data”
本発明の実施の形態は、例示により説明され、添付図面における図における制約によって説明されず、添付図面では、同じ参照符号は同様のエレメントを示す。なお、この開示における本発明の「ある」実施の形態に対する参照は、同じ実施の形態に対して必ずしも必要ではなく、少なくとも1つを意味している。
メモリのようなストレージに書き込まれたとき、プロセッサの状態は、プロセッサの動作の間、2つのタイプの情報又はデータを含む場合がある。1つのタイプは、ここではアーキテクチァデータ“architectural data”と呼ばれ、他方は、実現に特化したデータと呼ばれる(“private data”又は“private-state data”ともここでは呼ばれる)。
アーキテクチャデータは、製造業者により指定されたような所与のクラスの全てのプロセッサに共通である状態情報であり、すなわちハードウェアとソフトウェアの間で同じ高水準のインタフェースを実質的に有している。このインタフェースは、ISA(Instruction Set Architecture)と呼ばれる。各種のプロセッサの実現で同じISAの使用により、変更されない後の実現での実行するための1つの実現について明示的に書き込まれるソフトウェアの能力を容易にする。
ISAは、プロセッサで実行されているソフトウェアで利用可能な状態、そのフォーマット及びセマンティクス、及び利用可能なオペレーションインタフェース(たとえばインストラクション、イベント)を定義する。このISA仕様の一部は、その動作を容易にするため、プロセッサがマシンのストレージ(たとえばメモリ)における1以上の領域をどのように使用するかを示す。これらのストレージ領域は、プロセッサがあるデータ処理マシン(たとえば、入力−出力装置等)におけるソフトウェア及び他の装置にアクセス可能な場合がある。プロセッサは、アーキテクチャ及びプライベートステータスデータの両者を記憶するため、これらのストレージ領域を使用する。
たとえば、ここでIA−32ISAと呼ばれる、Intel社により製造されるIntel(登録商標)Pentium(登録商標)プロセッサのISAを有するプロセッサを考える。プロセッサは、所定の動作の間におけるストレージにおける領域を利用する場合がある。たとえば、IA−32ISAプロセッサがシステムマネージメントモードに入るとき、システムマネージメント(SMM)状態保存領域と呼ばれるストレージの領域に各種の値を記憶する。各種のアーキテクチャデータは、ISAのドキュメンテーションで規定されるロケーション及びフォーマットに記憶される(たとえば、ESI、EBP等のような各種のマシンレジスタ)。さらに、各種のプライベートデータは、システムマネージメント状態保存領域に記憶される。ISAのドキュメンテーションでは、これらのプライベートステータスの領域は、“Reserved”(予約)とラベル付けされ、このプライベートデータの内容、フォーマット及びセマンティクスは、ISAドキュメンテーションで規定されていない。これら「予約された」ストレージの領域は、ここではプライベートステータスの領域“Private−state region”と呼ばれる。
異なるプロセッサは、ここではプライベートデータ“Private Data”とも呼ばれる異なるプライベートステータスデータを有するために設計される場合がある。これは、たとえば、性能を改善するか、又は製造コストを低減するために行われる場合がある。たとえば、新たな内部レジスタが追加される場合があり、古いレジスタのうちの幾つかは、異なって使用される場合があり、ストレージに書き込まれるそれらのコンテンツのフォーマット又はロケーションは、より効率的に変化する場合がある。結果として、これらのより最近のプロセッサのためのプライベートデータは、コンテンツ、フォーマット、セマンティクス又はロケーションにおいてそれらの古いバージョンとは異なる場合がある。
プライベートステータスデータがメインメモリ又は他のストレージのような公的にアクセス可能な領域に記憶されているときに困難さが生じる可能性がある。たとえばBIOS(Basic Input-Output System)、オペレーティングシステム、バーチャルマシンマネージャ又はハイパーバイザ、デバイスドライバ、又はアプリケーション、及びI/O装置のようなハードウェア又は他の外部エージェントのようなソフトウェアにとって、このプライベートステータスデータにアクセス(すなわち読取り及び/又は書き込み)することは可能である。かかるエンティティによるこのプライベートステータスデータの使用は、プロセッサ及びプラットフォーム製造業者及びエンドユーザにとって誤った作用及び/又は望まれない作用を招く場合がある。
たとえば、アプリケーションが1つのプロセッサの実現で利用可能な特定のプライベートステータスデータに依存する場合、アプリケーションがプライベートステータスを異なって実現する(又は全く実現しない)異なるプロセッサの実現で実行されるときに誤って機能する場合がある。プライベートデータに依存するソフトウェアは、実現から実現まで変化する内部プロセッサ−メモリ間の可干渉性の挙動/ポリシーのために失敗する場合がある。プライベートステータスデータへのソフトウェアの依存性は、プライベートステータスの使用に関してプロセッサの製造業者にとって利用可能な実現の代替を複雑にするか、及び/又はぐらつきながら歩く場合がある。したがって、プロセッサの製造業者は、将来的な実現で変化を受けることを示すRESERVEDとしてかかるプライベートデータを提供する(メモリ領域にそのストレージを提供する)。
新たなマシンで古いソフトウェアを実行する先に記載された能力は、古いソフトウェアが(新たなバージョンのマシンと変化する可能性のある)マシンのプライベートデータに不適切にアクセスしないことを想定している。しかし、ソフトウェア開発業者は、たとえばメインメモリに記憶されたとき、反対のことを行う、すなわちプライベートデータにアクセスし、依存するアプリケーション及びオペレーティングシステムプログラムを書くことが分かっている。このことは、新たなマシンが古いマシンと同じアーキテクチャデータを有し、(たとえば、ISAで定義された命令をロード及び記憶するといった)記憶されたステータスデータにアクセスするために古いマシンを「理解する」ことができる場合でさえも、古いソフトウェアが新たなマシンで適切に実行しない場合があるために問題を生じる。これは、一部又は全部のプライベートデータが新たなマシンで変化したためであって、ソフトウェアに誤って機能させる。さらに、製造業者は、そのプロセッサの将来的なバージョンに改善を追加するのが消極的な場合があり、これはそのようにするのが他のソフトウェアとの互換性がなくなるというリスクを負うことになるためである。
本発明の実施の形態によれば、データ処理マシン及び動作方法が記載され、公的にアクセス可能なストレージの領域に記憶される(たとえば所定の値、その位置、そのセマンティクス又はそのフォーマットといった)プライベートステータスデータに依存するソフトウェアをソフトウェアの開発者が書込むことを妨げる。これは、将来のマシンのバージョンがマシンの内部のハードウェア設計が進化するにつれて必要とされるプライベートデータに関して異なる振る舞いを示すのを可能にし、古いソフトウェアを実行するのに必要とされる同じISAをなお示す。
本発明の幾つかの実施の形態は、構築されたインタフェースの使用を進める場合がある。たとえば、プライベートステータスデータの領域でのデータのロケーションよりはむしろ、アクセスされるデータのアイデンティティを規定することでプライベートステータスデータとして記憶される場合があるデータにアクセスするため、命令が提供される場合がある。これにより、データにアクセスするためのアーキテクチャメカニズムを提供しつつ、(たとえばプライベートステータスの領域で)どのようにデータが記憶されるかの点で実現の自由度を可能にする。たとえば、(先に記載された)IA−32ISAのシステムマネージメント状態保存領域に記憶されるデータエレメントがCSセグメントベースのアドレスの値であるとする。状態保存領域でのこのデータエレメントの記憶領域は、ISA仕様で詳細に説明されていない。代わりに、命令は、データを間接的にアドレス指定するISAにより供給される場合がある。データエレメントは、プロセッサの実現が望む如何なる方式でエンコードされ、状態保存領域に記憶される場合がある(又は、メモリにおけるプライベートステータスの領域に全く記憶されず、代わりに、たとえば特定のレジスタ又はプロセッサ内の領域に保持される)。
本発明は、規定された、構築されたインタフェースと比較したときに、データのソフトウェアのデコードを急速に反対する方式で、プライベートステータスデータがエンコードされるのを許容する。本発明の実施の形態は、ターゲットプロセッサ及びプラットフォームに依存するエンコードの複雑さを変える場合がある。ひとたびターゲットプロセッサが知られると、当業者は、選択されたエンコードをデコードするソフトウェアに基づいた方法が、(たとえば命令といった)規定されたインタフェースを使用するよりも長く要することを保証する、本発明の実施の形態を選択することができる。たとえば、規定されていないソフトウェア方法は、(たとえば所定の命令及びアルゴリズムを使用して)400クロックで所定のステータスデータをデコードすることができ、構成的に規定された命令及び方法は、その時間の分数で機能する。本発明の実施の形態は、たとえば、時間(速度)及び電力消費量のメトリクスを含めて、プライベートステータスのデコードのコストを測定するため、所定のメトリクスを使用することにある。
本発明の実施の形態に係る、プライベートステータスデータの公的な記憶を難読化/エンコードする場合があるコンピュータシステムのブロック図である。 本発明の実施の形態に係る、プライベート状態の記憶領域からエンコードされたプライベートステータスデータ値を読取るための方法を示すフローチャートである。 本発明の実施の形態に係る、プライベート状態のストレージ領域にエンコードされたプライベートステータスデータの値を記憶するための方法を示すフローチャートである。 本発明の実施の形態に係る、公的なストレージに書き込まれたときにプロセッサがそのプライベートステータスデータの難読化/エンコードするために設計されるコンピュータシステムのブロック図である。 本発明の実施の形態に係る、プライベートステータスデータの難読化/エンコードを実現するのに使用される場合がある例示的な機能的なコンポーネントを例示する図である。 本発明の実施の形態に係る、例示的なアドレスの難読化/エンコードユニットの一部の更に詳細なロジック図である。
ここで用語「エンコード」とは、特定のビットパターンの暗号化“encrypting”、計算“ciphering”、フォーマット“formatting”又は割り当て“assignment”若しくは解釈“interpretation”のような概念を含む。本発明の実施の形態によるエンコードは、プライベートデータを「難読化」することをいう。
図1を参照して、コンピュータシステムのブロック図が示されている。ソフトウェア120は、プラットフォームのハードウェア102で実行する。プラットフォームハードウェア102は、パーソナルコンピュータ(PC)、メインフレーム、ハンドヘルド装置、携帯用コンピュータ、セットトップボックス、又はいずれか他の計算システムとすることができる。プラットフォームハードウェア102は、プロセッサ110、ストレージ130を含み、1以上の入出力(I/O)装置140を含む場合がある。
プロセッサ110は、マイクロプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ等のようなソフトウェアを実行可能な如何なるタイプのプロセッサとすることができる。プロセッサ110は、本発明の所定の方法の実施の形態を実行するためのマイクロコード、プログラマブルロジック又はハードコードロジックを含む場合がある。図1は唯一のかかるプロセッサ110を示しているが、システムには1以上のプロセッサが存在する場合がある。
1以上のI/O装置140は、たとえば、ネットワークインタフェースカード、コミュニケーションポート、ビデオコントローラ、ディスクコントローラ、システムバス及びコントローラ(たとえばPCI,ISA,AGP)、又はプラットフォームチップセットロジック又はプロセッサに集積されるデバイス(たとえばリアルタイムクロック、プログラマブルタイマ、パフォーマンスカウンタ)である場合がある。一部又は全部のI/O装置140は、ダイレクトメモリアクセス(DMA)機能を有し、一部又は全部のI/O装置がプロセッサ110又はソフトウェア120とは独立に、又はプロセッサ110又はソフトウェア120の制御下でストレージ130を読取るか及び/又は書き込むのを可能にする。
ストレージ130は、ハードディスク、フロプティカルディスク、ランダムアクセスメモリ(RAM)、キャッシュメモリ、リードオンリメモリ(ROM)、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)、先の装置の組み合わせ、又は若しくはプロセッサ110によりアクセス可能な他のタイプの記憶媒体とすることができる。ストレージ130は、本発明の方法の実施の形態を実行する命令及び/又はデータを記憶する場合がある。ストレージ130は、プロセッサのレジスタファイルの公的にアクセス可能な領域であるか、又はメインメモリのようなプロセッサの外にある領域である場合がある。所定の内部レジスタ114のコンテンツのようなマシン112の状態に関するデータは、ストレージ130におけるプライベートステージ領域132に書き込まれ、ここでステータスデータは「エンコード」又は「難読化」として書き込まれる。したがって、ステータスデータが書き込まれる位置は、I/O装置140、又はプラットフォームハードウェア102で実行している(たとえばオペレーティングシステム122、アプリケーションソフトウェア124)といったソフトウェア120によりアクセスされる場合がある点で公的であるが、エンコードは、適時的なやり方でステータスデータがリバースエンジニア(すなわちデコード)されるのを困難にする。ステータスデータがストレージ130から回復されるとき、プロセッサの製造業者により定義されるプロセッサ初期デコードプロセスといった指定されたデコードプロセスが適用される。デコードプロセスにわたる制御は、以下に記載されるように、特定の命令及び制御信号のような特定のプロセッサ機能にリンクされる場合がある。ステータスデータにアクセスするための規定されていない方法(代替的なソフトウェア命令及びアルゴリズム)は、これらの制御をアクチベートせず、これに応じてより費用が高くなる。
次いで、回復されたステータスデータは、ソフトウェア120又はI/O装置140にアクセス可能であるか、アクセス可能でない場合があるローカル状態112に配置される場合がある。ローカル状態112は、たとえば、ISA(Instruction Set Architecture)を通した支配されないアクセスにとって利用可能でない内部キャッシュ又はレジスタにおける領域である場合がある。あるケースでは、ローカル状態は、ソフトウェア又は他の外部エージェント(たとえばI/O装置)によりアクセス可能ではない。あるケースでは、一部又は全部のローカル状態は、ソフトウェア又は他の外部エージェントにアクセス可能である。他のケースでは、ローカル状態は、特定のインタフェース(たとえば命令)を通して間接的にアクセス可能な場合がある。ローカル状態はプロセッサの内部にあり、「公的な」ストレージではないため、プロセッサは、ローカル状態へのアクセスを厳密に指示していない。
ステータスデータは、ストレージ130の公的にアクセス可能な領域に書き込まれたときにエンコードされた形式にあるが、プロセッサのISAの一部である場合がある製造業者により定義された命令は、ストレージ130からデータを回復するためにソフトウェアにより使用される場合がある。エンコードは、ステータスデータにアクセスするのを求めるとき、かかる命令をソフトウェア開発者が迂回するのを思いとどまらせるように十分に強くあるべきである。マイクロオペレーション又はハードウェア制御信号を使用して、ストレージからステータスデータを読取るか又は回復するために必要とされる内部ロジックの例は、図5を参照して以下に記載される。
1実施の形態では、使用されるエンコードプロセスは、ソフトウェア120の著者に、ソフトウェアの書込みにおいて、メモリからステータスデータにアクセスするためにプロセッサの製造業者により規定される場合がある技術を迂回するよりはむしろ適用させるに十分に強い。他のケースでは、メモリにある(所定の値、その位置、その意味又はそのフォーマットを含む)ステータスデータにアクセスして信頼することがソフトウェア開発者にとって更に困難にすることを製造業者が意図する場合に、エンコードが更に強い場合がある。
プライベート状態のエンコード及びデコードを制御するために使用される制御信号は、たとえばハードウェア状態マシン、プロセッサ命令(マクロ命令としても知られる)、オペレーショナルモード(たとえばPALモード)又はモードビット若しくは命令の動作グループ、マイクロコード又はマイクロコードオペレーション(uops)、及びハードウェア制御信号又はイベントと結合されるか、又はこれらによりアクセスされる。
様々なタイプのエンコードプロセスが使用される場合がある。ストレージのプライベートステート領域に書き込まれるデータは、ストレージの前に変化される場合がある。このタイプの符号化プロセスは、データエンコードと呼ばれる。代替的に、プライベート状態の領域におけるプライベート状態にアクセスするために使用されるアドレスが変わる場合がある。このタイプのエンコードプロセスは、アドレスの難読化と呼ばれ、オリジナルアドレスから難読化されたアドレスへの変換は、アドレスマッピングと呼ばれる。データエンコード及びアドレス難読化が以下に記載される。
エンコードプロセスは、スタティック又はダイナミックのいずれかである場合がある。スタティックエンコードは、マシンが実行して(エンコードプロセスを実行して)いるときに時間を通して変化しない(スタティックエンコードは、動作を実行する間の後ではなく、プロセッサの初期化/リセット又はブートフェーズの間に変化又は再構成される)。スタティックエンコードを発生するプロセスは、静的な難読化と呼ばれる。代替的に、エンコードプロセスは、プロセッサが実行している間に時間を通して変化するエンコードの結果を生成する場合がある。これらのプロセスは、動的な難読化と呼ばれる。
たとえば、所与のエレメントのプライベート状態のコンテンツのストレージフォーマットは、ストレージ130に書き込まれたとき、マシンが実行している間に変化する場合がある。これは、動的な難読化としてここでは呼ばれる。たとえば、フォーマットは、(プロセッサが発生及び追跡する)ランダム又は擬似ランダム系列に従ってビッグエンディアン(big-endian)及びリトルエンディアン(little-endian)との間で変化する場合があり、ステータスデータがストレージに書き込まれる必要があるときはいつであっても、この変化は、プライベートデータが読取り及び書込みされるメモリ領域に影響を及ぼす場合がある。さらに、ここでの意図は、エンジニアを迅速に逆転するのを困難にし、ストレージ130で公的にアクセス可能なストレージの領域からステータスデータをデコードすることである。
実施の形態では、プライベートステータスデータがストレージに書き込まれるとき、隣接するアドレスをもつ(たとえば、メインメモリといった)ストレージの領域に書き込まれる。他の実施の形態では、プライベートデータ領域は隣接しておらず、1を超える個別のストレージの領域からなる。エンコードがプライベート状態の領域を完全にポピュレート“populate”する要件はなく、すなわち幾つかのビット又はバイトは使用されないままである場合がある。エンコード及び/又は難読化機能の設計における自由度は、たとえばプライベートデータを記憶するのに厳密に必要とされるよりも大きくすることで、プライベート状態の領域のサイズを変えることで得られる場合がある。(たとえば、これは、後に記載されるように、より大きなMISR(multi-input shift register)多項式が使用されるのを許容する)。
本発明の実施の形態では、マルチバイト(たとえば32ビットの「長い」整数)値のステータスデータが幾つかの部分に分割され、次いで、全てのシーケンスにおいてではなく、隣接しないロケーションにおいて記憶される。したがって、4バイトの値は、プライベート状態の領域内の隣接しないロケーションに記憶される4つの1バイトの値に分割される場合がある。4つの1バイトの値が記憶される位置は、マシンが動作している間に動的に、ランダムなやり方で変わる場合がある。勿論、実施の形態は、かかるデータを位置決め及びデコードすることが可能であるべきである。なお、ISAは、シングルデータの値が複数のメモリアクセスを使用して記憶又はロードされるケースで、アクセスの原子性に関する所定の要件を課す場合がある。
本発明の実施の形態では、ストレージにアクセスするために使用されるアドレスビットがエンコードされる。このアドレスビットのエンコードは、アドレスビットの順序付け(又はアドレスビットのグループ)を変える場合がある。この例は、所与のメモリ領域でリトルエンディアンのフォーマットからビッグエンディアンのフォーマットへ切替える場合がある。他のアドレス混合のマッピングが可能であり、より精巧な変換を含む。
別のタイプのアドレスエンコードは、あるセットのK個の固有のアドレスを別のセットのK個の固有のアドレスにマッピングし、すなわち数学的に、マッピングは、全単射(bijective:単射(injective)及び全射(surjective)の両者)である。ここで、上位のアドレスビットは、変化されないままである場合があり、下位のオーダのアドレスビットは、変更される。かかるケースでは、所与のメモリレンジをそれ自身に写像するマッピングを構築するのが可能である。すなわち、メモリレンジのベースアドレスオフセットが同じであり、メモリ領域サイズは同じである。これは、メモリレンジでのデータのみが「難読化」されるために、魅力的なソリューションである。すなわち、レンジ内のアドレスビットのみが混合される。図4及び図6は、1つのかかるマッピング及び関連するアドレス混合メカニズムの例を提供する。
アドレス難読化のメカニズムは、プライベート状態領域が基本となるN−aryロジックのべき乗であるサイズ又はベースアドレスを有するときに使用するのが容易である場合がある。大部分の現在のプロセッサは、バイナリロジックを使用しており、したがって、2のべき乗であるサイズ又はベースアドレスをもつプライベート状態領域が好ましい(ここで、バイナリロジック及び算術が説明されるが、N−aryロジック及び算術が使用され、適切な場合、一般的なケースで仮定される)。フィルタ及び他のメカニズムは、N−aryロジックのべき乗ではないサイズ又はベースアドレスをもつプライベートステータス領域を管理するために使用される場合がある。かかるアドレスビットの操作は、各種のメモリ編成及び仮想的なメモリ技術(たとえばページング、セグメンテーション等)と共存することができる。
アドレス難読化のメカニズムは、ストレージ内のデータのレイアウトを変え、データを混合する役割を果たす場合があるが、ストレージの粒状度でのみである場合がある。大部分の現在のプロセッサでは、メインメモリは、バイト単位のアドレス指定が可能であり、ここでデータエレメントの個々のバイトのロケーションはプライベートステート領域で再配置される場合があるが、個々のバイトでのデータビットは、(データエンコードメカニズムにより変更される場合があるが)アドレスの難読化により変化されない。
3つのアドレスマッピングの実施の形態では、オリジナルのアドレスマッピングは、幾つかのデコードプロセスを通して抽出される場合がある。この抽出は、アドレスマッピング機能の逆の機能の適用である。マッピング機能の選択は、この要件に照らして行われ、全てのアドレスマッピング機能がリバーシブルではない。
本発明の実施の形態は、ストレージに書き込まれるデータビットをエンコードする。これらデータのエンコードは、アドレス指定可能なストレージのサイズのようなアドレス可能性の制約により必然的に束縛されることなしに、プライベートステート領域に記憶されるデータを再生成する場合がある。データのセグメントは、他のデータのセグメントでスワップされる場合がある。たとえば、2つのニブル(すなわち、バイトでの4ビットセグメント)はそれぞれのバイトでスワップされる。データエンコードは、一定のXORマスクでビット毎に排他的論理演算される場合がある。また、データは、多入力のフィードバックシフトレジスタ(MISR)の出力でビット毎に排他的論理和演算される場合がある。データエンコードは、暗号化関数を使用して行われる場合がある。これらの実施の形態では、オリジナルデータは、幾つかのデコードプロセスを通して抽出することができる。そのデコードプロセスは、プラットフォームで実行しているソフトウェア(たとえば、ISA定義されたロード及び記憶動作、算術演算の使用)に対して利用可能なデコード方法よりも高速であることを保証するべきである。図4のテーブル470及び480は、たとえばメモリアドレスの所与の16バイトレンジでデータ(バイト)に適用されるビジュネルのような暗号の使用を例示する。
先に列挙された実施の形態のなかには、静的なマッピングで実現されるものがある。すなわち、プロセッサ又はプラットフォームが実行している時間の間に変化しない。適切なマッピングは、(たとえば、システムブートの間、システムパワーオン時、プロセッサリセット時といった)製造、製造後、又はシステム動作における初期の間に、設計時間で設定される場合がある。異なるプロセッサは、同じ静的なマッピングで構成されるか、構成されない場合がある。(たとえばシステムブートといった)システムが使用中であるまでマッピングが制約されている場合、新たなマッピングがそれぞれのプロセッサブートで選択されるのが可能である。実施の形態では、(たとえば動作モード、命令のグループ)異なる制御セットは、異なるマッピングコンフィギュレーションをそれぞれ使用することができる。制御セットで、マッピングは一定のままとなる。しかし、命令のグループ又はモードの間で、マッピングは別個のものである(又は別個でない)場合がある。
他の実施の形態は、プロセッサが動作している間に変化する動的なマッピングで実現される場合がある。実施の形態では、マッピングのコンフィギュレーションは、ストレージにおけるプライベートステータス領域に現在記憶される重大なエンコードデータがない場合にのみ変化する。この実施の形態は、エンコードされたデータがストレージのプライベートステータス領域に書き込まれ、それをアクティブにしたときにインクリメントされるカウンタを使用する場合がある。プライベート状態領域がもはやアクティブであると考慮されないときに、カウンタはデクリメントされる。カウンタがゼロであるとき、マッピングコンフィギュレーションが変化する場合がある。実施の形態では、マッピング記述子におけるそれぞれのプライベートステータス領域について、マッピングコンフィギュレーションが記憶される。マッピング記述子は、既知の、プライベートステータス領域自身のエンコードされていない位置に記憶されるか、プロセッサの内部又は外部にある場合がある待ち行列又はルックアップテーブルのようなトラッキング構造により個別に保持される場合がある。実施の形態では、それぞれのプライベートステータス領域の異なるマッピングが可能である。
図2は、本発明の実施の形態に係るプライベートステータスの記憶領域からエンコードされたプライベートステータスデータの値を読取るためのプロセス200を例示している。プロセスは、ハードウェア(たとえば、回路、専用ロジック、プログラマブルロジック、マイクロコード等)、(汎用コンピュータシステム又は専用マシンで実行されるような)ソフトウェア、又は両者の組み合わせを有する場合がある処理ロジックにより実行される場合がある。1実施の形態では、処理ロジックは、図1のプロセッサ110で実現される。
図2を参照して、プロセス200は、データエレメントのアドレスを決定する処理ロジックで開始する(処理ブロック202)。つぎに、処理ロジックは、ストレージのプライベートステータス領域においてデータエレメントがエンコードされた形式で記憶されているかを判定する(処理ブロック204)。
本発明の実施の形態は、要求されるデータエレメントがデコードを必要とすることを処理ロジックに示すマイクロコードで生成されたか又はハードウェアで生成された制御信号を使用する。この信号がない場合、ブロック250へのNOパスに進む。
データエレメントがデコードされるべきではない場合、処理ロジックは、処理ブロック250に進み、ここで、処理ブロック202で決定されたアドレスでストレージからデータエレメントをロードする。プロセスは、次いで終了される。ロードされたデータはデコードされず、すなわち、アドレス又はデータのデコードが実行されない。なお、このパスで読取られたデータは、通常である(すなわち、プライベートステータスデータではない)か、そのエンコードされた形式である(規定されない方式でアクセスされる)プライベートステータスデータである場合がある。
しかし、データエレメントがデコードされるべき場合、処理ロジックは、処理ブロック202で決定されたアドレスに基づいてそれが記憶されているアドレス(アドレスは難読化される場合がある)を次に決定する(処理ブロック210)。処理ロジックは、処理ブロック210で決定されたアドレスでストレージからエンコードされたデータエレメントをロードする(処理ブロック220)。処理ロジックは、処理ステップ220においてストレージのプライベートステータス領域からロードされたデータエレメントを次にデコードする。デコードされた値は、プロセス200の結果である。プロセスは終了する場合がある。このデコードされた状態は、プライベートステータスのキャッシュ又はプロセッサのプライベートなローカル状態で配置される。
図3は、本発明の実施の形態に係る、プライベートステータスデータの値をストレージのプライベートステータス領域に記憶するためのプロセス300を例示する。プロセスは、ハードウェア(たとえば、回路、専用ロジック、プログラマブルロジック、マイクロコード等)、(汎用コンピュータシステム又は専用マシンで実行されるような)ソフトウェアを有する場合がある処理ロジックにより実行される場合がある。実施の形態では、処理ロジックは図1のプロセッサ110で実現される。
図3を参照して、プロセス300は、データエレメントのデータ値及びストレージアドレスを決定する処理ロジックで始まる(処理ブロック302)。次に、処理ロジックは、記憶されるべきデータエレメントがストレージのプライベートステータス領域にエンコードされた形式で記憶されるべきプライベートステータスエレメントであるかを判定する(処理ブロック304)。
本発明の実施の形態は、マイクロコードで発生されたか、ハードウェアで発生された制御信号を使用して、書き込まれるデータエレメントがエンコードを必要とすることを処理ロジックに指示する。この信号がない場合には、ブロック350へのNOパスに進む。
データエレメントがプライベートステータス領域にエンコードされた形式で記憶されない場合、処理ロジックは、処理ブロック350に進み、ここで、処理ブロック302で決定されたアドレスでストレージにエンコードされていない(変更されていない)形式でデータエレメントを記憶する。プロセスは終了する場合がある。書き込まれたデータはエンコードされない。
しかし、データエレメントがプライベートステータス領域にエンコードされた形式で記憶されるべき場合、処理ロジックは、データエレメントを次にエンコードし(処理ブロック310)、データエレメントを記憶する難読化されたアドレスを決定する(処理ブロック320)。次いで、処理ロジックは、処理ブロック320で決定されたアドレスでストレージにエンコードされたデータエレメントを記憶する(処理ブロック330)。次いで、プロセスは、終了する場合がある。
なお、処理ブロック310及び処理ブロック320で実行される処理は、逆の順序で実行される場合があり、すなわちデータのエンコードの前にアドレス値の難読化が行われる。幾つかの実施の形態は、これらの処理ブロックのうちの両者ではなく、1つを実行する。幾つかの実施の形態は、並列に処理ブロックを実行する場合がある。
ここで図4に戻り、コンピュータシステム402は、ブロック図の形式で示される。このシステム402は、ストレージでプライベートステータスデータを難読化するための先に記載された方法論をサポートするために設計されるプロセッサ404を有する。プロセッサ404は、標準的なキャッシュ410及びプライベートキャッシュ416を有し、後者は、システム402で実行するソフトウェアでアクセス可能ではなく、エンコードされていない(難読化されていない)形式でプライベートステータスデータを記憶するために使用される。この実施の形態では、システムチップセット406が提供され、プロセッサ404は、メモリ408と通信することができる。チップセット406は、コンピュータの周辺装置とインタフェースするために必要とされる他のロジック(図示せず)と同様に、メモリコントローラ(図示せず)を含む場合がある。チップセット406は、幾つかの実施の形態では、チップセット406の機能、又は機能的なチップセットがプロセッサ404で実現される場合がある。
図4では、公的にアクセス可能な領域418に、プロセッサ404のエンコードされたプライベートステータスデータを記憶するメモリ408が示されている。これは、実際の値がメモリ408を単にモニタ及び読取りすることで容易に回復されるか、逆にエンジニアリングすることができないように、プロセッサ404の内部プロセッサの状態の値に計算が印加される例である。
先に記載されたように、エンコードされたプライベート状態領域418に記憶されたデータの難読化は、各種のやり方で達成される場合がある。図4は、両方のデータ値がエンコードされ、データレイアウトがエンコード/難読化される、1つのかかるメカニズムの例を示している。テーブル470における第一のデータ値は、ビジュネルの暗号を使用してエンコードされ、(以下に記載される)テーブル480で示されるデータ値を生じる。次いで、プライベートステータスデータの論理アドレス値から物理的なアドレス値の特別のマッピングが適用され、マッピングはテーブル490で例示される結果となる。物理的なアドレスは、プライベートステータスデータが実際にメモリの何処に記憶されるかを示す。物理的なアドレスは、論理アドレスのエンコードから生じるといわれる。
“deciphered addr/data”と題される図4におけるテーブル470は、キャッシュ416にエンコードされない形式で記憶される例示的な論理アドレス及びそれら関連するプライベートステータスデータ値のリストを有する。ここで全てのゼロのデータ値は、結果的に得られるエンコードを示すために選択される。なお、‘X’はステータスデータの仮想的及び物理的アドレスのエンコードされない上位ビットを表している。“Private State Memory Address Map”と題されたテーブル490は、エンコードされていないアドレス及びエンコードされたアドレスとの間のマッピングの例を示している。ここで、低いオーダの4ビットのみがエンコードされる。
図6は、図4のシステムで使用されるプログラマブル(パラメータ化された)アドレスマッピング機能の実施の形態を例示している。図6では、P0=1,P1=1,P2=0,P3=0で多項式の制御レジスタ604をロードし、基本多項式x4+x1+x0を実現し、任意のマスクレジスタ610を全てのゼロでロードする。このロジックは、一般的なw−ビット幅のMISRを支配する式の適合であり、様々なアドレスエンコードのコンビネーションロジックを構築するために使用することができる。パラメータ化されたMISR状態の式は、以下のようになる。
i(t+1)=Si-1(t)+Ii+(Pi・Sw-1(t)),1≦i≦w−1
0(t+1)=I0+(P0・Sw-1(t))
ここで、演算子“+”は法2の加算(XOR)を表し、“・”は法2の乗算(AND)を表す。パラメータ“t”は時間(クロックチック)を表し、Siはi番目のフリップフロップの状態であり、Iiはi番目の入力ベクトルビットであり、Piはi番目の多項式計数である。Pw係数は暗黙的に1である。図4のアドレス混合の実施の形態を達成するため、全てのSi(t)を対応するアドレスAi値で置き換え、Si(t+1)を出力Oiで置き換える。他の実施の形態も可能である。
オーダwの基本の多項式は、“最大のシーケンス”を発生することができる点で有効であり、すなわち、全てのwビット幅のバイナリコンビネーション又はパターンを発生することができる。300までの基本多項式(300ビット幅)及び更に高い次数が使用される場合がある。
先の関数を例示するため、図4を使用して、(エントリ471に示されるように)論理アドレスオフセット0001でのデータにアクセスするため、(エントリ491が示すように)ロケーション0010での物理メモリがアクセスされる。このケースにおけるこのアドレスに関連するエンコードされていないコンテンツ値(エントリ471参照)は、全てのゼロとなる。しかし、エントリ481で示されるようにエンコードされた形式で記憶されたとき、非ゼロのビットストリング(すなわち、11110101)は、メモリ408の公的な領域418に現れる(このエンコードの計算は、後に更に詳細に説明される)。制限されたビット幅が便宜上示されているが、この技術がより広く又は並列のビットスライスされたデータに適用される場合がある。
図4に示されるような、メモリ408におけるエンコードされたプライベートステータスデータの記憶及び回復は、図5に示されるロジックブロックを使用して実現される場合がある。この例について、特別のミクロ動作(たとえば制御信号)は、プライベートステータスデータを記憶するか、又はストレージから回復するときに、使用するためにプロセッサについて定義される。
アドレス生成ユニット(AGU)504は、特定のミクロ動作を受け、この実施の形態では、高いコンポーネント及び低いコンポーネントを有する論理アドレスを計算する。実施の形態では、論理アドレスは仮想的なアドレスである。別の実施の形態では、図5に示されるように、論理アドレスは、Intel(登録商標)Pentium(登録商標)プロセッサで発見されるようなリニアアドレスである。更に別の実施の形態では、論理アドレスは物理アドレスであり、高いアドレスビットの変換が行われる必要がない。図5では、アドレスの高いコンポーネントは、(仮想的にページ番号である場合がある)高いコンポーネントのリニアアドレスを物理アドレス509の一部に変換するリニア−物理アドレス変換ブロック(変換ルックアサイドバッファ又はTLB)508に供給される。
アドレス難読化/エンコードユニット514は、この実施の形態では、プロセッサの所与のプライベートステータスデータに関連するリニアアドレス値の低い部分を受けることである。これに応じて、アドレス難読化ユニット514は、物理的なアドレス509の別の部分を提供するため、リニアアドレスのこの低いコンポーネントを変換する。物理的なアドレスのこの部分の値は、たとえば、図1及び図4を参照して先に記載されたように、リニアアドレスの混合又はエンコードされたバージョンである。
実施の形態では、特別のマイクロオペレーション又はuop信号(制御信号)は、アドレスエンコードユニット514が低次ビットをエンコードするかを判定する。制御信号はアサートされない場合、低次のアドレスビットはエンコードされずに通過するか、又はユニット514をバイパスする。エンコード制御信号がアサートされるときでさえ、幾つかのアドレスビットがエンコードされずに通過される場合がある。これは、たとえば、プライベート状態メモリ領域が低次のビットによりアドレス可能なアドレス空間サイズよりも小さいときに、アドレスビットのサブセットがエンコードを必要とする場合にのみ生じる。アドレスエンコードがリニア−物理的なアドレス変換の後に生じ、したがって、仮想的なメモリ空間よりも大きいアドレス空間のエンコードを扱うことができる。図5に示される実施の形態の利点は、リニア−物理変換は、シリアルの代わりにエンコード動作を並行して生じる点であり、したがって潜在的に高速である。また、エンコードは、仮想的なメモリページサイズよりも小さいプライベートステータスのメモリ領域についてのみ必要な場合がある。
(TLB508により発生された)物理アドレスの高いコンポーネント、及び(アドレス難読化/エンコードユニット514により発生された)物理アドレスの低いコンポーネントは、連結されたとき、所与のステータスデータが記憶されるメモリ408における実際のロケーションを指示する物理アドレス509を生成する。物理アドレス509は、この実施の形態では、キャッシュ410に始めに印加され、これはミスになる場合、ロケーションのコンテンツは、(動作がロード又はストアのいずれかであるかに依存して)メモリ408から供給されるか、メモリ408に記憶される。メモリの階層性の他のアレンジメントが可能である。
なお、この実施の形態では、プライベートステータスデータのストレージのメモリ408に指定される領域は、ページの一部のみを占め、仮想的なメモリページの境界に揃えられる場合がある。そのケースでは、(リニアアドレスの低い部分である)リニアアドレスのページオフセット部分のみがアドレス難読化/エンコードユニット514を通過し、エンコードされた物理ページオフセットを生成する。他の実現も可能である。さらに、アドレス難読化/エンコードユニット514は、レンジセレクションロジックを含む場合があり、メモリの特定の領域でのアドレスのみがエンコードされる。このロジックにより、ストレージ領域は、仮想的なメモリページの境界、又は先に記載されたようにサイズ的に2のべき乗に揃えられる必要がある。内部的に、アドレス難読化/エンコードユニット514は、マイクロコード、ソフトウェア、ルックアップテーブル、固定された機能ロジック、プログラマブルロジック又はこれらの技術の組み合わせを使用して実現される場合がある(1つのかかる実現のキーエレメントについて図6を参照されたい)。
図5を参照して、この実施の形態では、プロセッサの標準的なキャッシュ410は、エンコード又は難読化されたプライベートステータスデータを記憶するために使用される。キャッシュ410又はメモリ408のいずれかから伝達されるべきエンコードされたコンテンツ510が存在するとき、データデコード/エンコードユニット524を使用してデコードされる場合がある。デコードされたコンテンツ値520は、次いで、この実施の形態では、プロセッサのプライベート状態領域516に記憶される。先のように、(たとえば、オペレーティングシステムにより)キャッシュ410及びメモリ408は公的にアクセス可能であり、プライベートステータス領域は、プロセッサの内部機能にアクセス可能である。データデコード/エンコードユニット524は、ストレージにエンコードされたフォームでプライベートステータスデータを書き込むとき、リバースで使用される場合がある。かかる実施の形態では、ユニット524は、プライベートステータス領域516から生じる場合があるコンテンツの値をエンコードする。
幾つかの実施の形態では、特定の命令は、一部又は全部のプライベートステータスデータにアクセスするためにプロセッサのISAに提供される場合がある。これらのデータは、実行されたとき、プライベートステータス領域516からのエンコードされていないデータの伝送となるか(図5参照)、又はプライベートステータスデータがエンコードされた形式で記憶される、メモリ408における領域418にアクセスするためのマイクロ動作又はハードウェア制御信号を送る(図4参照)。ISAの他の命令(たとえば命令を通常にロード及び記憶)はメモリ408及び/又はキャッシュ410の公的な領域にアクセス可能である場合があり、かかる読取りアクセスの結果は、難読化されたそれらのアドレス値及び/又はエンコードされたデータコンテンツのいずれかを有するプライベートステータスデータ値である。これに応じて、特定のハードウェア支援なしに、エンジニアをリバースするか、さもなければ、適時的なやり方でプライベートステータスデータを回復することは可能ではない場合がある。
先に記載されたメカニズムはプロセッサ装置内で実現されるロジックコンポーネントを有するが、たとえば、一部又は全部のエンコードロジックがシステムチップセットで実現される他の編成も可能である。さらに、特定のバスサイクルは、メモリ408のプライベート状態の領域418にアクセスするために定義される場合がある(図4)。
ここで図6を参照して、例となるプログラマブル4ビットのアドレスビットの難読化(エンコード)のメカニズムの更に詳細な設計が示される。この設計は、図5のアドレスの難読化/エンコードユニット514で使用される場合があり、(低次のビットについて)図4における論理−物理アドレスマッピングを生成する。
図6のロジックダイアグラムでは、先に記載された方法を使用した、4次の多項式による4ビット幅の多入力のリニアフィードバックシフトレジスタ(MISR)のコンビネーションナルロジック部分の実施の形態である。このコンビネーショナルロジックは、多項式の制御レジスタ604、任意のマスクレジスタ610、及び入力アドレスソース606により供給される。なお、このロジックは、全体のMISRではないが、MISRのマッピング特性を梃子“leverage”にする。
図6では、多項式の制御レジスタ604には多項式のバイナリ係数がロードされる。たとえば、基本多項式x4+x1+x0によりマッピングする図4に例示される論理−物理アドレスマッピングを実現するために図6の回路を構成するため、バイナリ係数P0=1,P1=1,P2=0,P3=0を多項式制御レジスタ604にロードする。アドレスビットベクトル0000は、任意のマスクレジスタ610が0000に設定される場合に0000にマッピングされる。入力アドレスソース606は、エンコードされるべき4ビットの論理アドレスを表す。任意のマスクソース610(たとえば制御レジスタ)は、異なるマッピングが構築されるのを許容する。
先に記載されたように、マスクレジスタ610及び多項式レジスタ604は、実行時間で動的に変化される場合がある。たとえば、ロードされた値は、電源オンのリセット処理の間に擬似ランダムデータソースから導出される。これは、プライベートステータスデータにアクセスする試みを妨害するか、(先に記載された特別のISA命令のような)規定されたアクセス方法を回避する試みを妨害する。図6は、合理的に効率的であって、バイナリ係数及びマスク値及び比較的少ないゲート遅延をもつ控えめな量のハードウェアをもつプログラム性を許容する。他のロジック設計は、アドレス難読化/エンコードユニット514を実現するために可能である。更なるロジック又はコンテンツアドレス可能なメモリ(CAM)は、アドレスビットエンコードメカニズムにより変更されるアドレスのレンジを更に制限するために使用される場合がある。さらに、たとえば(必要とされる場合)エンコードを強化するため、エンコード及びデコードプロセスのために更に複雑なロジックが設計される場合がある。
プライベートステータスデータのコンテンツ値のエンコードは、アドレスの難読化のために先に記載されたやり方に類似したやり方で達成される場合がある。1つのアプローチは、所与のプライベートステータスのエレメントのコンテンツがエンコードされ、(揃えられたプライベートステータスデータの領域について)論理アドレスオフセットにおいてXORするか、幾つかの一定の速度値においてXORすることである。より洗練されたエンコードメカニズムは、プライベートステータスデータ値のストリームで使用される場合がある。
フィードバックシフトレジスタ技術の変形(線形、非線形、多入力等)は、初期速度で使用される場合がある。初期速度は、フィードバックシフトレジスタにロードされる初期状態であるとして定義される。連続したそれぞれのデータ値について、シフトレジスタが進められ、その内容は、初期レジスタのコンテンツに対してビット毎にXORされる。これは、ビジュネル暗号と呼ばれ、この例は、テーブル470においてそれぞれエンコードされていないコンテンツ(データ)はゼロである(たとえばエントリ471)先の図4のテーブル470,480で示されるが、メモリ408におけるテーブル(たとえばエントリ481)においてエンコードされた形式で記憶されたときのように現れない。
この暗号によれば、ビット毎のXORマスクの擬似ランダム系列を発生するため、シフトレジスタが使用される。このケースでは、それぞれの擬似ランダムなビット毎のマスクがMISRにより生成されるので(ステップ480参照)、アドレス系列における次のデータ値とビット毎にXORされる。正確に同じ系列を再生するため、多項式及びイニシャルシフトレジスタの速度値のみが必要とされる。
実施の形態では、エンコード及び/又はデコードユニットのコンフィギュレーション情報(たとえば多項式及び初期速度)は、メモリ408におけるエンコードされた状態領域と共に記憶される。プライベート状態をデコードするため、コンフィギュレーション情報(たとえば多項式及び初期速度)が回復され(及びおそらく、別の固定されたエンコード技術を使用してデコードされ)、次いで使用される。それぞれの系列におけるマスクが同じ順序で対応するデータに印加される限り(たとえば、アドレス可能なデータユニット当たり1つのマスクが適用され)、ビット毎のXORマスキングがオリジナルデータを生成(デコード)する。
前に記載されたように、多項式及び初期のMISR速度値は、各種の方法又は変化の制約を使用して変わる場合がある(たとえばブート時間、ラン時間等)。オリジナルデータを回復するため、オリジナルで使用されたエンコード方法に適したデコード方法が適用されるべきであり、すなわちエンコードを元通りにするために適用される。ビジュネル暗号は、プライベートステータスデータ値のエンコードメカニズムのまさに1つの例であり、このエンコードメカニズムは、効率的であって、シンプルなバイナリ係数リスト、速度等でのプログラム可能性“programability”、及び数ゲートの遅延をもつ控えめな量のハードウェアを許容する。他の実施の形態も可能である。
本発明の実施の形態では、プロセッサは、プロセッサの動作モード間の遷移でのストレージでのプライベート状態領域132(図1参照)を利用する。たとえば、プロセッサは、先に記載されたようにシステムマネージメントモード(SMM)に入るとき、プライベートステータス領域にアクセスする場合がある。これら動作モード間の遷移は、モードスイッチとしてここでは呼ばれる。モードスイッチは、たとえばノーマル及びシステムマネージメントモード間、バーチャルマシンシステムにおけるバーチャルマシン(VM)とバーチャルマシンモニタ(VMM)との間、ユーザレベルのオペレーティングシステムプロセスとオペレーティングシステムカーネルとの間の動きを含む。
本発明の実施の形態では、プロセッサは、プライベートステータス領域の指定後の如何なる時間でストレージにおけるプライベートステータス領域132を利用する場合がある。たとえば、バーチャルマシンシステムでは、VMMは、バーチャルマシンシ動作の間のプロセッサの使用についてストレージにおける領域を割り当てる場合がある。VMMは、(たとえばISAで定義された命令を実行することを通して)プロセッサにプライベートステータス領域のロケーションを示す場合がある。プロセッサがこの指示を受けた後、プロセッサは、フィットを見るのでプライベートステータス領域を利用するためにフリーである場合がある。たとえば、プロセッサは、(すなわちモードスイッチポイントで)VMとVMMとの間の遷移の間にプライベートステータス領域にアクセスする場合がある。さらに、VM又はVMMの動作の間の領域にアクセスする場合がある。たとえば、プロセッサは、プライベートステータス領域から制御情報にアクセスするか、又はプロセッサは、プライベートステータス領域に一時的に値を記憶する場合がある。
また、ISAは、(たとえば、命令を実行することにより)プライベートステータス領域はもはや使用されるべきではないことをVMMが指定するメカニズムを提供する場合がある。他の実施の形態では、他の方法を使用してプライベートステータス領域が指定される場合がある。たとえば、モデルに特化したレジスタ(MSR)に書き込み、ISAにおける命令を実行し、ストレージにおける位置に書き込むこと等により指定される場合がある。
先の例は実行ユニット及びロジック回路のコンテクストで本発明の実施の形態を記載する場合があるが、本発明の他の実施の形態はソフトウェアのやり方で達成することができる。たとえば、幾つかの実施の形態では、本発明は、本発明の実施の形態に係るプロセスを実行するため、コンピュータ(又は他の電子装置)をプログラムするために使用される場合がある命令をそこに記憶するマシン又はコンピュータ読取り可能な媒体を含むコンピュータプログラムプロダクト又はソフトウェアとして提供される場合がある。他の実施の形態では、動作は、マイクロコード、ハードワイヤロジックを含む特定のハードウェアコンポーネントにより、又はプログラムコンピュータコンポーネント及びカスタムハードウェアコンポーネントの組み合わせにより実行される場合がある。
したがって、マシン読取り可能な媒体は、限定されるものではないが、フロプティカルディスク、オプティカルディスク、コンパクトディスク、リードオンリメモリ(CD−ROM)、及び磁気−光ディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能なプログラマブルリードオンリメモリ(EPROM)、電気的に消去可能なプログラマブルリードオンリメモリ(EEPROM)、磁気又は光カード、フラッシュメモリ、インターネット、電気、光、音響を通した伝送、(たとえば搬送波、赤外線信号、デジタル信号等といった)他の形式の伝播された信号を含む場合がある。
さらに、設計は、創作、シミュレーション、から製造までの様々なステージを通過する。設計を表すデータは、多数のやり方での設計を表す場合がある。はじめに、シミュレーションで有効であるように、ハードウェア記述言語又は別の機能的な記述言語を使用して、ハードウェアが表される場合がある。さらに、ロジック及び/又はトランジスタをもつ回路レベルモデルが設計プロセスの幾つかのステージで生成される場合がある。さらに、大部分の設計は、幾つかのステージで、ハードウェアモデルにおける各種デバイスの物理的な置き換えを表すデータのレベルに到達する。従来の半導体製造技術が使用されるケースでは、ハードウェアモデルを表すデータは、集積回路を生成するために使用されるマスクの異なるマスクレイヤでの各種の特徴の有無を規定するデータである場合がある。設計の何れかの表現では、マシン読取り可能な媒体の形式でデータが記憶される場合がある。かかる情報を伝送するために変調又はさもなければ生成された光又は電波、メモリ、若しくはディスクのような磁気又は光ストレージは、マシン読取り可能な媒体である場合がある。これらの媒体のいずれかは、デザイン又はソフトウェア情報を「搬送」又は「指示」する場合がある。コード又はデザインを指示又は搬送する電気的な搬送波が送信されるとき、電気信号のコピー、バッファリング、又は再送信が実行される範囲にまで、新たなコピーがつくられる。したがって、通信プロバイダ又はネットワークプロバイダは、本発明の技術を実施するアーティクル(搬送波)のコピーをつくる場合がある。
上述された仕様では、本発明は公的にアクセス可能なストレージからデータ処理マシンの状態に関するデータにアクセスするための各種技術を参照して説明される。しかし、様々な変更及び変化は、特許請求の範囲で述べたような、本発明の実施の形態の広い精神及び範囲から逸脱することなしになされる場合がある。したがって、明細書及び図面は、限定的な意味よりはむしろ例示的にみなされる。
120:ソフトウェア
122:オペレーティングシステム
124:アプリケーションソフトウェア
110:プロセッサ
114:レジスタ
130:ストレージ
140:入力/出力装置
102:プラットフォームハードウェア

Claims (2)

  1. プロセッサと、
    前記プロセッサのプライベートステータスを示すデータエレメントを記憶する記憶手段とを備えるコンピュータシステムであって、
    前記プロセッサは、前記データエレメントがエンコードされる必要があると判定したときに前記データエレメントをエンコードし、前記プロセッサによる前記判定に応答して発生されるアドレス値をエンコードし、エンコードされたデータエレメントを、前記記憶手段における前記アドレス値に対応する位置に記憶し、
    前記プロセッサは、エンコードされたアドレス値をデコードし、前記記憶手段における前記アドレス値に対応する位置から前記エンコードされたデータエレメントを読み出し、前記記憶手段の前記位置から読み出された前記エンコードされたデータエレメントをデコードすることで、前記エンコードされたデータエレメントをデコードする、
    ことを特徴とするコンピュータシステム。
  2. プロセッサと、前記プロセッサのプライベートステータスを示すデータエレメントを記憶する記憶手段とを有するコンピュータシステムの動作方法であって、
    当該方法は、
    前記データエレメントがエンコードされる必要があると判定したときに、前記データエレメントを前記プロセッサがエンコードし、前記プロセッサによる前記判定に応答して発生されるアドレス値を前記プロセッサがエンコードして、エンコードされたデータエレメントを、前記記憶手段における前記アドレス値に対応する位置に記憶するステップと、
    エンコードされたアドレス値を前記プロセッサがデコードし、前記記憶手段における前記アドレス値に対応する位置から前記エンコードされたデータエレメントを前記プロセッサが読み出し、前記記憶手段の前記位置から読み出された前記エンコードされたデータエレメントを前記プロセッサが前記デコードすることで、前記エンコードされたデータエレメントをデコードするステップと、
    を含むことを特徴とするコンピュータシステムの動作方法
JP2011000154A 2003-11-26 2011-01-04 公的にアクセス可能なストレージからデータ処理マシンの状態に関するプライベートデータへのアクセス Expired - Fee Related JP5021078B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/724,321 2003-11-26
US10/724,321 US8156343B2 (en) 2003-11-26 2003-11-26 Accessing private data about the state of a data processing machine from storage that is publicly accessible

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006541379A Division JP2007515709A (ja) 2003-11-26 2004-11-07 公的にアクセス可能なストレージからデータ処理マシンの状態に関するプライベートデータへのアクセス

Publications (2)

Publication Number Publication Date
JP2011076632A JP2011076632A (ja) 2011-04-14
JP5021078B2 true JP5021078B2 (ja) 2012-09-05

Family

ID=34592462

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006541379A Pending JP2007515709A (ja) 2003-11-26 2004-11-07 公的にアクセス可能なストレージからデータ処理マシンの状態に関するプライベートデータへのアクセス
JP2011000154A Expired - Fee Related JP5021078B2 (ja) 2003-11-26 2011-01-04 公的にアクセス可能なストレージからデータ処理マシンの状態に関するプライベートデータへのアクセス

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2006541379A Pending JP2007515709A (ja) 2003-11-26 2004-11-07 公的にアクセス可能なストレージからデータ処理マシンの状態に関するプライベートデータへのアクセス

Country Status (6)

Country Link
US (3) US8156343B2 (ja)
JP (2) JP2007515709A (ja)
KR (1) KR100974973B1 (ja)
CN (1) CN1886711B (ja)
DE (1) DE112004002259B4 (ja)
WO (1) WO2005055024A1 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050044408A1 (en) * 2003-08-18 2005-02-24 Bajikar Sundeep M. Low pin count docking architecture for a trusted platform
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
JP2005182499A (ja) * 2003-12-19 2005-07-07 Matsushita Electric Ind Co Ltd 並列演算装置
US7203808B2 (en) * 2004-03-19 2007-04-10 Intel Corporation Isolation and protection of disk areas controlled and for use by virtual machine manager in firmware
US20060039554A1 (en) * 2004-08-18 2006-02-23 Roxio, Inc. High security media encryption
US9280473B2 (en) * 2004-12-02 2016-03-08 Intel Corporation Method and apparatus for accessing physical memory from a CPU or processing element in a high performance manner
US20060150247A1 (en) * 2004-12-30 2006-07-06 Andrew Gafken Protection of stored data
US20060259900A1 (en) * 2005-05-12 2006-11-16 Xerox Corporation Method for creating unique identification for copies of executable code and management thereof
US20060259903A1 (en) * 2005-05-12 2006-11-16 Xerox Corporation Method for creating unique identification for copies of executable code and management thereof
US8041958B2 (en) * 2006-02-14 2011-10-18 Lenovo (Singapore) Pte. Ltd. Method for preventing malicious software from execution within a computer system
US8694797B2 (en) * 2006-02-14 2014-04-08 Lenovo (Sinapore) Pte Ltd Method for preventing malicious software from execution within a computer system
US8146089B2 (en) * 2006-06-14 2012-03-27 Intel Corporation Sharing resources of a partitioned system
US9280659B2 (en) * 2006-12-29 2016-03-08 Intel Corporation Methods and apparatus for remeasuring a virtual machine monitor
US8904552B2 (en) * 2007-04-17 2014-12-02 Samsung Electronics Co., Ltd. System and method for protecting data information stored in storage
US8848924B2 (en) * 2008-06-27 2014-09-30 University Of Washington Privacy-preserving location tracking for devices
US8719588B2 (en) * 2008-06-30 2014-05-06 Atmel Corporation Memory address obfuscation
US9405931B2 (en) * 2008-11-14 2016-08-02 Dell Products L.P. Protected information stream allocation using a virtualized platform
JP2011232801A (ja) * 2010-04-23 2011-11-17 Renesas Electronics Corp 情報処理装置及びicカード
FR2990034B1 (fr) * 2012-04-25 2014-04-25 Inside Secure Procede de controle de redondance cyclique protege contre une attaque par canal auxiliaire
US9015400B2 (en) * 2013-03-05 2015-04-21 Qualcomm Incorporated Methods and systems for reducing the amount of time and computing resources that are required to perform a hardware table walk (HWTW)
US8983068B2 (en) * 2013-03-06 2015-03-17 Infineon Technologies Ag Masked nonlinear feedback shift register
US9251090B1 (en) * 2014-06-03 2016-02-02 Amazon Technologies, Inc. Hypervisor assisted virtual memory obfuscation
WO2017059396A1 (en) * 2015-09-30 2017-04-06 Clark Jonathan A Computer and method for transmitting confidential information in a network
KR102431928B1 (ko) * 2015-10-29 2022-08-16 엘지디스플레이 주식회사 메모리 보호 장치 및 그 보호 방법과 이를 포함한 유기발광 표시장치
US10452802B2 (en) * 2016-07-08 2019-10-22 efabless corporation Methods for engineering integrated circuit design and development
US10146604B2 (en) 2016-08-23 2018-12-04 Oracle International Corporation Bad block detection and predictive analytics in NAND flash storage devices
US11093588B2 (en) * 2017-06-26 2021-08-17 Micron Technology, Inc. Memory system including data obfuscation
CN109450592A (zh) * 2018-09-29 2019-03-08 广东雅达电子股份有限公司 一种通信协议重组方法
US11481336B2 (en) * 2019-08-19 2022-10-25 Micron Technology, Inc. Host assisted operations in managed memory devices
FR3101980B1 (fr) 2019-10-11 2021-12-10 St Microelectronics Grenoble 2 Processeur

Family Cites Families (268)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699532A (en) * 1970-04-21 1972-10-17 Singer Co Multiprogramming control for a data handling system
US3996449A (en) 1975-08-25 1976-12-07 International Business Machines Corporation Operating system authenticator
US4162536A (en) 1976-01-02 1979-07-24 Gould Inc., Modicon Div. Digital input/output system and method
US4037214A (en) 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4247905A (en) 1977-08-26 1981-01-27 Sharp Kabushiki Kaisha Memory clear system
US4278837A (en) 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4276594A (en) 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
US4207609A (en) * 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
JPS5823570B2 (ja) * 1978-11-30 1983-05-16 国産電機株式会社 液面検出装置
JPS5576447A (en) 1978-12-01 1980-06-09 Fujitsu Ltd Address control system for software simulation
US4307447A (en) 1979-06-19 1981-12-22 Gould Inc. Programmable controller
US4319323A (en) 1980-04-04 1982-03-09 Digital Equipment Corporation Communications device for data processing system
US4419724A (en) * 1980-04-14 1983-12-06 Sperry Corporation Main bus interface package
US4366537A (en) 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys
US4403283A (en) * 1980-07-28 1983-09-06 Ncr Corporation Extended memory system and method
DE3034581A1 (de) 1980-09-13 1982-04-22 Robert Bosch Gmbh, 7000 Stuttgart Auslesesicherung bei einchip-mikroprozessoren
US4521852A (en) 1982-06-30 1985-06-04 Texas Instruments Incorporated Data processing device formed on a single semiconductor substrate having secure memory
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
JPS59111561A (ja) 1982-12-17 1984-06-27 Hitachi Ltd 複合プロセツサ・システムのアクセス制御方式
US4630269A (en) * 1983-05-16 1986-12-16 Data General Corporation Methods for diagnosing malfunctions in a disk drive
US4759064A (en) 1985-10-07 1988-07-19 Chaum David L Blind unanticipated signature systems
US4975836A (en) 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
JPS61206057A (ja) 1985-03-11 1986-09-12 Hitachi Ltd アドレス変換装置
FR2592510B1 (fr) 1985-12-31 1988-02-12 Bull Cp8 Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire
FR2601476B1 (fr) 1986-07-11 1988-10-21 Bull Cp8 Procede pour authentifier une donnee d'habilitation externe par un objet portatif tel qu'une carte a memoire
FR2601535B1 (fr) 1986-07-11 1988-10-21 Bull Cp8 Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission
FR2601525B1 (fr) 1986-07-11 1988-10-21 Bull Cp8 Dispositif de securite interdisant le fonctionnement d'un ensemble electronique apres une premiere coupure de son alimentation electrique
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
JPS63253451A (ja) * 1987-04-10 1988-10-20 Hitachi Ltd メモリ装置のセキユリテイ制御方式
FR2618002B1 (fr) 1987-07-10 1991-07-05 Schlumberger Ind Sa Procede et systeme d'authentification de cartes a memoire electronique
US5007082A (en) 1988-08-03 1991-04-09 Kelly Services, Inc. Computer software encryption apparatus
US5079737A (en) 1988-10-25 1992-01-07 United Technologies Corporation Memory management unit for the MIL-STD 1750 bus
US5434999A (en) 1988-11-09 1995-07-18 Bull Cp8 Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal
FR2640798B1 (fr) 1988-12-20 1993-01-08 Bull Cp8 Dispositif de traitement de donnees comportant une memoire non volatile electriquement effacable et reprogrammable
JPH02171934A (ja) 1988-12-26 1990-07-03 Hitachi Ltd 仮想計算機システム
JPH02208740A (ja) 1989-02-09 1990-08-20 Fujitsu Ltd 仮想計算機制御方式
US5781753A (en) 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
US5442645A (en) 1989-06-06 1995-08-15 Bull Cp8 Method for checking the integrity of a program or data, and apparatus for implementing this method
JP2590267B2 (ja) 1989-06-30 1997-03-12 株式会社日立製作所 仮想計算機における表示制御方式
US5022077A (en) 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
JP2825550B2 (ja) 1989-09-21 1998-11-18 株式会社日立製作所 多重仮想空間アドレス制御方法および計算機システム
CA2010591C (en) 1989-10-20 1999-01-26 Phillip M. Adams Kernels, description tables and device drivers
CA2027799A1 (en) 1989-11-03 1991-05-04 David A. Miller Method and apparatus for independently resetting processors and cache controllers in multiple processor systems
US5075842A (en) 1989-12-22 1991-12-24 Intel Corporation Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism
EP0473913A3 (en) 1990-09-04 1992-12-16 International Business Machines Corporation Method and apparatus for providing a service pool of virtual machines for a plurality of vm users
US5108590A (en) 1990-09-12 1992-04-28 Disanto Dennis Water dispenser
US5230069A (en) 1990-10-02 1993-07-20 International Business Machines Corporation Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system
US5317705A (en) 1990-10-24 1994-05-31 International Business Machines Corporation Apparatus and method for TLB purge reduction in a multi-level machine system
US5287363A (en) * 1991-07-01 1994-02-15 Disk Technician Corporation System for locating and anticipating data storage media failures
US5437033A (en) 1990-11-16 1995-07-25 Hitachi, Ltd. System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode
US5255379A (en) 1990-12-28 1993-10-19 Sun Microsystems, Inc. Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor
US5453003A (en) 1991-01-09 1995-09-26 Pfefferle; William C. Catalytic method
US5446904A (en) 1991-05-17 1995-08-29 Zenith Data Systems Corporation Suspend/resume capability for a protected mode microprocessor
JPH04348434A (ja) 1991-05-27 1992-12-03 Hitachi Ltd 仮想計算機システム
US5522075A (en) 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
US5319760A (en) 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5455909A (en) 1991-07-05 1995-10-03 Chips And Technologies Inc. Microprocessor with operation capture facility
JPH06236284A (ja) 1991-10-21 1994-08-23 Intel Corp コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム
US5627987A (en) 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5574936A (en) 1992-01-02 1996-11-12 Amdahl Corporation Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
US5486529A (en) 1992-04-16 1996-01-23 Zeneca Limited Certain pyridyl ketones for treating diseases involving leukocyte elastase
US5421006A (en) 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5610981A (en) 1992-06-04 1997-03-11 Integrated Technologies Of America, Inc. Preboot protection for a data security system with anti-intrusion capability
US5237616A (en) * 1992-09-21 1993-08-17 International Business Machines Corporation Secure computer system having privileged and unprivileged memories
US5293424A (en) 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
US5796835A (en) 1992-10-27 1998-08-18 Bull Cp8 Method and system for writing information in a data carrier making it possible to later certify the originality of this information
EP0600112A1 (de) 1992-11-30 1994-06-08 Siemens Nixdorf Informationssysteme Aktiengesellschaft Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
JP2765411B2 (ja) 1992-11-30 1998-06-18 株式会社日立製作所 仮想計算機方式
US5668971A (en) * 1992-12-01 1997-09-16 Compaq Computer Corporation Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer
JPH06187178A (ja) 1992-12-18 1994-07-08 Hitachi Ltd 仮想計算機システムの入出力割込み制御方法
US5493683A (en) * 1992-12-29 1996-02-20 Intel Corporation Register for identifying processor characteristics
US5483656A (en) * 1993-01-14 1996-01-09 Apple Computer, Inc. System for managing power consumption of devices coupled to a common bus
US5469557A (en) 1993-03-05 1995-11-21 Microchip Technology Incorporated Code protection in microcontroller with EEPROM fuses
FR2703800B1 (fr) 1993-04-06 1995-05-24 Bull Cp8 Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre.
FR2704341B1 (fr) 1993-04-22 1995-06-02 Bull Cp8 Dispositif de protection des clés d'une carte à puce.
JPH06348867A (ja) 1993-06-04 1994-12-22 Hitachi Ltd マイクロコンピュータ
FR2706210B1 (fr) 1993-06-08 1995-07-21 Bull Cp8 Procédé d'authentification d'un objet portatif par un terminal hors ligne, objet portatif et terminal correspondants.
US5555385A (en) 1993-10-27 1996-09-10 International Business Machines Corporation Allocation of address spaces within virtual machine compute system
US5825880A (en) * 1994-01-13 1998-10-20 Sudia; Frank W. Multi-step digital signature method and system
US5459869A (en) 1994-02-17 1995-10-17 Spilo; Michael L. Method for providing protected mode services for device drivers and other resident software
US5604805A (en) * 1994-02-28 1997-02-18 Brands; Stefanus A. Privacy-protected transfer of electronic information
FR2717286B1 (fr) 1994-03-09 1996-04-05 Bull Cp8 Procédé et dispositif pour authentifier un support de données destiné à permettre une transaction ou l'accès à un service ou à un lieu, et support correspondant.
JP3642533B2 (ja) * 1994-04-26 2005-04-27 株式会社東芝 プログラムカード及びこれを用いた計算機
US5684881A (en) 1994-05-23 1997-11-04 Matsushita Electric Industrial Co., Ltd. Sound field and sound image control apparatus and method
US5473692A (en) 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
US5539828A (en) 1994-05-31 1996-07-23 Intel Corporation Apparatus and method for providing secured communications
US5533123A (en) 1994-06-28 1996-07-02 National Semiconductor Corporation Programmable distributed personal security
US5978481A (en) 1994-08-16 1999-11-02 Intel Corporation Modem compatible method and apparatus for encrypting data that is transparent to software applications
DE69509717T2 (de) 1994-08-31 1999-11-11 Motorola Inc Modulare Chipauswahl-Steuerschaltung
JPH0883211A (ja) * 1994-09-12 1996-03-26 Mitsubishi Electric Corp データ処理装置
EP0706275B1 (en) 1994-09-15 2006-01-25 International Business Machines Corporation System and method for secure storage and distribution of data using digital signatures
US6058478A (en) 1994-09-30 2000-05-02 Intel Corporation Apparatus and method for a vetted field upgrade
FR2725537B1 (fr) 1994-10-11 1996-11-22 Bull Cp8 Procede de chargement d'une zone memoire protegee d'un dispositif de traitement de l'information et dispositif associe
US5903752A (en) 1994-10-13 1999-05-11 Intel Corporation Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system
US5606617A (en) 1994-10-14 1997-02-25 Brands; Stefanus A. Secret-key certificates
US5564040A (en) 1994-11-08 1996-10-08 International Business Machines Corporation Method and apparatus for providing a server function in a logically partitioned hardware machine
US6269392B1 (en) 1994-11-15 2001-07-31 Christian Cotichini Method and apparatus to monitor and locate an electronic device using a secured intelligent agent
US5560013A (en) * 1994-12-06 1996-09-24 International Business Machines Corporation Method of using a target processor to execute programs of a source architecture that uses multiple address spaces
US5555414A (en) 1994-12-14 1996-09-10 International Business Machines Corporation Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals
US5615263A (en) 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5764969A (en) 1995-02-10 1998-06-09 International Business Machines Corporation Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization
FR2731536B1 (fr) 1995-03-10 1997-04-18 Schlumberger Ind Sa Procede d'inscription securisee d'informations dans un support portable
US5717903A (en) 1995-05-15 1998-02-10 Compaq Computer Corporation Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device
JP3451595B2 (ja) 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
JPH0944407A (ja) * 1995-08-02 1997-02-14 Nec Eng Ltd データファイルの保護方法及びセキュリティ方式
US5684948A (en) * 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
US5633929A (en) * 1995-09-15 1997-05-27 Rsa Data Security, Inc Cryptographic key escrow system having reduced vulnerability to harvesting attacks
US5737760A (en) 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
US6093213A (en) * 1995-10-06 2000-07-25 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (SMM) in a processor
JP3693721B2 (ja) 1995-11-10 2005-09-07 Necエレクトロニクス株式会社 フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法
IL116708A (en) 1996-01-08 2000-12-06 Smart Link Ltd Real-time task manager for a personal computer
JP2000503154A (ja) 1996-01-11 2000-03-14 エムアールジェイ インコーポレイテッド デジタル所有権のアクセスと分配を制御するためのシステム
US5657445A (en) 1996-01-26 1997-08-12 Dell Usa, L.P. Apparatus and method for limiting access to mass storage devices in a computer system
US5860028A (en) * 1996-02-01 1999-01-12 Paragon Electric Company, Inc. I/O bus expansion system wherein processor checks plurality of possible address until a response from the peripheral selected by address decoder using user input
IL117085A (en) 1996-02-08 2005-07-25 Milsys Ltd Secure computer system
US5835594A (en) 1996-02-09 1998-11-10 Intel Corporation Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US5978892A (en) 1996-05-03 1999-11-02 Digital Equipment Corporation Virtual memory allocation in a virtual address space having an inaccessible gap
US5809546A (en) * 1996-05-23 1998-09-15 International Business Machines Corporation Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers
US6178509B1 (en) 1996-06-13 2001-01-23 Intel Corporation Tamper resistant methods and apparatus
US6175925B1 (en) 1996-06-13 2001-01-16 Intel Corporation Tamper resistant player for scrambled contents
US6205550B1 (en) 1996-06-13 2001-03-20 Intel Corporation Tamper resistant methods and apparatus
US5729760A (en) 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US5740178A (en) * 1996-08-29 1998-04-14 Lucent Technologies Inc. Software for controlling a reliable backup memory
WO1998012620A1 (fr) 1996-09-20 1998-03-26 Mitsubishi Denki Kabushiki Kaisha Micro-ordinateur possedant une fonction de commande de remise a zero
US6055637A (en) 1996-09-27 2000-04-25 Electronic Data Systems Corporation System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential
US5844986A (en) 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US5937063A (en) 1996-09-30 1999-08-10 Intel Corporation Secure boot
US5935242A (en) * 1996-10-28 1999-08-10 Sun Microsystems, Inc. Method and apparatus for initializing a device
JPH10134008A (ja) 1996-11-05 1998-05-22 Mitsubishi Electric Corp 半導体装置およびコンピュータシステム
US5852717A (en) 1996-11-20 1998-12-22 Shiva Corporation Performance optimizations for computer networks utilizing HTTP
DE19649292A1 (de) 1996-11-28 1998-06-04 Deutsche Telekom Ag Verfahren zum Sichern eines durch eine Schlüsselhierarchie geschützten Systems
US5901225A (en) 1996-12-05 1999-05-04 Advanced Micro Devices, Inc. System and method for performing software patches in embedded systems
US5757919A (en) 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US5818939A (en) 1996-12-18 1998-10-06 Intel Corporation Optimized security functionality in an electronic system
US6412035B1 (en) 1997-02-03 2002-06-25 Real Time, Inc. Apparatus and method for decreasing the response times of interrupt service routines
US6148401A (en) 1997-02-05 2000-11-14 At&T Corp. System and method for providing assurance to a host that a piece of software possesses a particular property
US5953502A (en) 1997-02-13 1999-09-14 Helbig, Sr.; Walter A Method and apparatus for enhancing computer system security
JP4000654B2 (ja) 1997-02-27 2007-10-31 セイコーエプソン株式会社 半導体装置及び電子機器
EP0970411B1 (en) 1997-03-27 2002-05-15 BRITISH TELECOMMUNICATIONS public limited company Copy protection of data
US6272637B1 (en) 1997-04-14 2001-08-07 Dallas Semiconductor Corporation Systems and methods for protecting access to encrypted information
US6557104B2 (en) * 1997-05-02 2003-04-29 Phoenix Technologies Ltd. Method and apparatus for secure processing of cryptographic keys
US6044478A (en) 1997-05-30 2000-03-28 National Semiconductor Corporation Cache with finely granular locked-down regions
US6075938A (en) 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US5987557A (en) 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US6175924B1 (en) 1997-06-20 2001-01-16 International Business Machines Corp. Method and apparatus for protecting application data in secure storage areas
US6035374A (en) * 1997-06-25 2000-03-07 Sun Microsystems, Inc. Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency
US6584565B1 (en) 1997-07-15 2003-06-24 Hewlett-Packard Development Company, L.P. Method and apparatus for long term verification of digital signatures
US6014745A (en) 1997-07-17 2000-01-11 Silicon Systems Design Ltd. Protection for customer programs (EPROM)
US5978475A (en) 1997-07-18 1999-11-02 Counterpane Internet Security, Inc. Event auditing system
US6212635B1 (en) 1997-07-18 2001-04-03 David C. Reardon Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place
US6188995B1 (en) 1997-07-28 2001-02-13 Apple Computer, Inc. Method and apparatus for enforcing software licenses
US5919257A (en) * 1997-08-08 1999-07-06 Novell, Inc. Networked workstation intrusion detection system
DE19735948C1 (de) 1997-08-19 1998-10-01 Siemens Nixdorf Inf Syst Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung
US6282657B1 (en) 1997-09-16 2001-08-28 Safenet, Inc. Kernel mode protection
US5935247A (en) * 1997-09-18 1999-08-10 Geneticware Co., Ltd. Computer system having a genetic code that cannot be directly accessed and a method of maintaining the same
US6148379A (en) 1997-09-19 2000-11-14 Silicon Graphics, Inc. System, method and computer program product for page sharing between fault-isolated cells in a distributed shared memory system
US6182089B1 (en) 1997-09-23 2001-01-30 Silicon Graphics, Inc. Method, system and computer program product for dynamically allocating large memory pages of different sizes
US5987572A (en) * 1997-09-29 1999-11-16 Intel Corporation Method and apparatus employing a dynamic encryption interface between a processor and a memory
US6357004B1 (en) 1997-09-30 2002-03-12 Intel Corporation System and method for ensuring integrity throughout post-processing
US6061794A (en) 1997-09-30 2000-05-09 Compaq Computer Corp. System and method for performing secure device communications in a peer-to-peer bus architecture
US5970147A (en) 1997-09-30 1999-10-19 Intel Corporation System and method for configuring and registering a cryptographic device
US5987604A (en) 1997-10-07 1999-11-16 Phoenix Technologies, Ltd. Method and apparatus for providing execution of system management mode services in virtual mode
US6085296A (en) 1997-11-12 2000-07-04 Digital Equipment Corporation Sharing memory pages and page tables among computer processes
US6219787B1 (en) 1997-12-22 2001-04-17 Texas Instruments Incorporated Method and apparatus for extending security model to native code
US6378072B1 (en) 1998-02-03 2002-04-23 Compaq Computer Corporation Cryptographic system
US6308270B1 (en) 1998-02-13 2001-10-23 Schlumberger Technologies, Inc. Validating and certifying execution of a software program with a smart card
US6108644A (en) 1998-02-19 2000-08-22 At&T Corp. System and method for electronic transactions
US6131166A (en) * 1998-03-13 2000-10-10 Sun Microsystems, Inc. System and method for cross-platform application level power management
US6192455B1 (en) 1998-03-30 2001-02-20 Intel Corporation Apparatus and method for preventing access to SMRAM space through AGP addressing
US6374286B1 (en) 1998-04-06 2002-04-16 Rockwell Collins, Inc. Real time processor capable of concurrently running multiple independent JAVA machines
US6173417B1 (en) 1998-04-30 2001-01-09 Intel Corporation Initializing and restarting operating systems
US6339826B2 (en) 1998-05-05 2002-01-15 International Business Machines Corp. Client-server system for maintaining a user desktop consistent with server application user access permissions
US6397242B1 (en) 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
FR2778998B1 (fr) 1998-05-20 2000-06-30 Schlumberger Ind Sa Procede d'authentification d'un code personnel d'un utilisateur d'une carte a circuit integre
DE69942712D1 (de) 1998-05-29 2010-10-14 Texas Instruments Inc Sichere Rechnervorrichtung
US6421702B1 (en) 1998-06-09 2002-07-16 Advanced Micro Devices, Inc. Interrupt driven isochronous task scheduler system
AU748955B2 (en) 1998-06-17 2002-06-13 Aristocrat Technologies Australia Pty Limited Software verification and authentication
US6289438B1 (en) * 1998-07-29 2001-09-11 Kabushiki Kaisha Toshiba Microprocessor cache redundancy scheme using store buffer
US6505279B1 (en) 1998-08-14 2003-01-07 Silicon Storage Technology, Inc. Microcontroller system having security circuitry to selectively lock portions of a program memory address space
US6339815B1 (en) 1998-08-14 2002-01-15 Silicon Storage Technology, Inc. Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space
JP2000076139A (ja) 1998-08-28 2000-03-14 Nippon Telegr & Teleph Corp <Ntt> 携帯型情報記憶媒体
JP2000090002A (ja) * 1998-09-09 2000-03-31 Toshiba Corp データベース管理システム
US6363485B1 (en) 1998-09-09 2002-03-26 Entrust Technologies Limited Multi-factor biometric authenticating device and method
US6463535B1 (en) 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
US6230248B1 (en) 1998-10-12 2001-05-08 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for pre-validating regions in a virtual addressing scheme
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6609199B1 (en) * 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US6330670B1 (en) 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
US6445797B1 (en) 1998-12-16 2002-09-03 Secure Choice Llc Method and system for performing secure electronic digital streaming
US6463537B1 (en) 1999-01-04 2002-10-08 Codex Technologies, Inc. Modified computer motherboard security and identification system
US6282650B1 (en) 1999-01-25 2001-08-28 Intel Corporation Secure public digital watermark
US6560627B1 (en) * 1999-01-28 2003-05-06 Cisco Technology, Inc. Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore
US7111290B1 (en) * 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US6188257B1 (en) 1999-02-01 2001-02-13 Vlsi Technology, Inc. Power-on-reset logic with secure power down capability
EP1030237A1 (en) 1999-02-15 2000-08-23 Hewlett-Packard Company Trusted hardware device in a computer
US6272533B1 (en) 1999-02-16 2001-08-07 Hendrik A. Browne Secure computer system and method of providing secure access to a computer system including a stand alone switch operable to inhibit data corruption on a storage device
US7225333B2 (en) * 1999-03-27 2007-05-29 Microsoft Corporation Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US6615278B1 (en) * 1999-03-29 2003-09-02 International Business Machines Corporation Cross-platform program, system, and method having a global registry object for mapping registry equivalent functions in an OS/2 operating system environment
US6684326B1 (en) * 1999-03-31 2004-01-27 International Business Machines Corporation Method and system for authenticated boot operations in a computer system of a networked computing environment
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
CA2368858A1 (en) 1999-04-12 2000-10-19 Digital Media On Demand, Inc. Secure electronic commerce system
US6389537B1 (en) 1999-04-23 2002-05-14 Intel Corporation Platform and method for assuring integrity of trusted agent communications
US6275933B1 (en) 1999-04-30 2001-08-14 3Com Corporation Security system for a computerized apparatus
EP1055989A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company System for digitally signing a document
EP1056014A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company System for providing a trustworthy user interface
US6321314B1 (en) 1999-06-09 2001-11-20 Ati International S.R.L. Method and apparatus for restricting memory access
US6633981B1 (en) 1999-06-18 2003-10-14 Intel Corporation Electronic system and method for controlling access through user authentication
US6158546A (en) 1999-06-25 2000-12-12 Tenneco Automotive Inc. Straight through muffler with conically-ended output passage
JP3602984B2 (ja) * 1999-07-09 2004-12-15 富士通株式会社 メモリ装置
US6301646B1 (en) 1999-07-30 2001-10-09 Curl Corporation Pointer verification system and method
US6779114B1 (en) * 1999-08-19 2004-08-17 Cloakware Corporation Tamper resistant software-control flow encoding
US6529909B1 (en) * 1999-08-31 2003-03-04 Accenture Llp Method for translating an object attribute converter in an information services patterns environment
JP2001148344A (ja) 1999-09-09 2001-05-29 Nikon Corp 露光装置、エネルギ源の出力制御方法、該方法を用いるレーザ装置、及びデバイス製造方法
EP1085396A1 (en) 1999-09-17 2001-03-21 Hewlett-Packard Company Operation of trusted state in computing platform
US6535988B1 (en) 1999-09-29 2003-03-18 Intel Corporation System for detecting over-clocking uses a reference signal thereafter preventing over-clocking by reducing clock rate
US6374317B1 (en) 1999-10-07 2002-04-16 Intel Corporation Method and apparatus for initializing a computer interface
GB9923804D0 (en) 1999-10-08 1999-12-08 Hewlett Packard Co Electronic commerce system
GB9923802D0 (en) 1999-10-08 1999-12-08 Hewlett Packard Co User authentication
US6292874B1 (en) 1999-10-19 2001-09-18 Advanced Technology Materials, Inc. Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges
US7270193B2 (en) * 2000-02-14 2007-09-18 Kabushiki Kaisha Toshiba Method and system for distributing programs using tamper resistant processor
JP4226760B2 (ja) 2000-05-08 2009-02-18 株式会社東芝 マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP3801833B2 (ja) * 2000-02-14 2006-07-26 株式会社東芝 マイクロプロセッサ
FR2805074B1 (fr) 2000-02-15 2003-06-27 Ascom Monetel Sa Dispositif anti-intrusion
WO2001063994A2 (en) 2000-02-23 2001-08-30 Iridian Technologies, Inc. Tamper proof case for electronic devices having memories with sensitive information
AU2001251701A1 (en) 2000-02-25 2001-09-03 Identix Incorporated Secure transaction system
AU2001243365A1 (en) 2000-03-02 2001-09-12 Alarity Corporation System and method for process protection
JP3710671B2 (ja) * 2000-03-14 2005-10-26 シャープ株式会社 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法
CA2341931C (en) 2000-03-24 2006-05-30 Contentguard Holdings, Inc. System and method for protection of digital works
US6507904B1 (en) 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US6990579B1 (en) 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US6678825B1 (en) * 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US6633963B1 (en) 2000-03-31 2003-10-14 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
CA2305078A1 (en) * 2000-04-12 2001-10-12 Cloakware Corporation Tamper resistant software - mass data encoding
US6976162B1 (en) 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
GB0020416D0 (en) * 2000-08-18 2000-10-04 Hewlett Packard Co Trusted system
US20020062452A1 (en) 2000-08-18 2002-05-23 Warwick Ford Countering credentials copying
US7149878B1 (en) * 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US6948065B2 (en) 2000-12-27 2005-09-20 Intel Corporation Platform and method for securely transmitting an authorization secret
JP4098478B2 (ja) * 2001-01-31 2008-06-11 株式会社東芝 マイクロプロセッサ
US7631160B2 (en) * 2001-04-04 2009-12-08 Advanced Micro Devices, Inc. Method and apparatus for securing portions of memory
WO2002086684A2 (en) 2001-04-24 2002-10-31 Hewlett-Packard Company An information security system
US6976136B2 (en) * 2001-05-07 2005-12-13 National Semiconductor Corporation Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
US7676430B2 (en) * 2001-05-09 2010-03-09 Lenovo (Singapore) Ptd. Ltd. System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset
US20030061385A1 (en) * 2001-05-31 2003-03-27 Lucas Gonze Computer network interpretation and translation format for simple and complex machines
EP1271277A3 (en) 2001-06-26 2003-02-05 Redstrike B.V. Security system and software to prevent unauthorized use of a computing device
US20030018892A1 (en) 2001-07-19 2003-01-23 Jose Tello Computer with a modified north bridge, security engine and smart card having a secure boot capability and method for secure booting a computer
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
US6996725B2 (en) * 2001-08-16 2006-02-07 Dallas Semiconductor Corporation Encryption-based security protection for processors
JP2003076624A (ja) * 2001-09-03 2003-03-14 Nec Corp 携帯情報端末を利用したコンピュータ使用環境自動設定システムと方法
JP4226816B2 (ja) * 2001-09-28 2009-02-18 株式会社東芝 マイクロプロセッサ
US7191464B2 (en) * 2001-10-16 2007-03-13 Lenovo Pte. Ltd. Method and system for tracking a secure boot in a trusted computing environment
US6807631B2 (en) * 2001-11-16 2004-10-19 National Instruments Corporation System and method for deploying a hardware configuration with a computer program
JP4335516B2 (ja) * 2001-12-04 2009-09-30 パナソニック株式会社 複数のプロセッサを用いた動画像符号化装置およびその方法
US7103771B2 (en) * 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US20030126454A1 (en) 2001-12-28 2003-07-03 Glew Andrew F. Authenticated code method and apparatus
US7308576B2 (en) * 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
US20030126453A1 (en) * 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7107460B2 (en) * 2002-02-15 2006-09-12 International Business Machines Corporation Method and system for securing enablement access to a data security device
US7343493B2 (en) * 2002-03-28 2008-03-11 Lenovo (Singapore) Pte. Ltd. Encrypted file system using TCPA
US6986028B2 (en) * 2002-04-22 2006-01-10 Texas Instruments Incorporated Repeat block with zero cycle overhead nesting
US7729386B2 (en) * 2002-09-04 2010-06-01 Tellabs Operations, Inc. Systems and methods for frame synchronization
ATE504446T1 (de) * 2002-12-02 2011-04-15 Silverbrook Res Pty Ltd Totdüsenausgleich
US7318141B2 (en) * 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible

Also Published As

Publication number Publication date
US8156343B2 (en) 2012-04-10
JP2011076632A (ja) 2011-04-14
DE112004002259B4 (de) 2013-06-06
US9087000B2 (en) 2015-07-21
JP2007515709A (ja) 2007-06-14
CN1886711A (zh) 2006-12-27
KR20060090296A (ko) 2006-08-10
CN1886711B (zh) 2014-07-23
US20130275772A1 (en) 2013-10-17
WO2005055024A1 (en) 2005-06-16
US20130067184A1 (en) 2013-03-14
US20050114610A1 (en) 2005-05-26
US9348767B2 (en) 2016-05-24
KR100974973B1 (ko) 2010-08-09
DE112004002259T5 (de) 2006-10-26

Similar Documents

Publication Publication Date Title
JP5021078B2 (ja) 公的にアクセス可能なストレージからデータ処理マシンの状態に関するプライベートデータへのアクセス
EP3757855A1 (en) Data encryption based on immutable pointers
JP6344614B2 (ja) セキュアエンクレーブページキャッシュのための進歩したページング能力を提供するための命令および論理
US11669625B2 (en) Data type based cryptographic computing
BR102020019667A2 (pt) método e aparelho para criptografia de memória total multichave baseada em derivação de chave dinâmica
EP4020272A1 (en) Fine-grained stack protection using cryptographic computing
JP6300796B2 (ja) 算術及び論理ユニットを伴わないコンピュータプロセッサ及びシステム
US20230018585A1 (en) Updating encrypted security context in stack pointers for exception handling and tight bounding of on-stack arguments
CN113051192A (zh) 具有能够实现tdx keyid缩放的自包含范围的tdx岛
EP4109312A1 (en) Circuitry and methods for supporting encrypted remote direct memory access (erdma) for live migration of a virtual machine
US11570010B2 (en) ISA accessible physical unclonable function
NL2031072B1 (en) Apparatus and method to implement shared virtual memory in a trusted zone
EP4020299A1 (en) Memory address bus protection for increased resilience against hardware replay attacks and memory access pattern leakage
US11706039B2 (en) ISA accessible physical unclonable function
US11700135B2 (en) ISA accessible physical unclonable function
WO2022066347A1 (en) Scalable multi-key memory encryption
US12022013B2 (en) ISA accessible physical unclonable function
JP2023048100A (ja) Isaアクセス可能物理的複製不可能関数

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120412

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150622

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees