JP4522372B2 - Method and apparatus for implementing a secure session between a processor and an external device - Google Patents

Method and apparatus for implementing a secure session between a processor and an external device Download PDF

Info

Publication number
JP4522372B2
JP4522372B2 JP2006024770A JP2006024770A JP4522372B2 JP 4522372 B2 JP4522372 B2 JP 4522372B2 JP 2006024770 A JP2006024770 A JP 2006024770A JP 2006024770 A JP2006024770 A JP 2006024770A JP 4522372 B2 JP4522372 B2 JP 4522372B2
Authority
JP
Japan
Prior art keywords
operating system
processor
system software
data
authentic
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
JP2006024770A
Other languages
Japanese (ja)
Other versions
JP2006221631A (en
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of JP2006221631A publication Critical patent/JP2006221631A/en
Application granted granted Critical
Publication of JP4522372B2 publication Critical patent/JP4522372B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Landscapes

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

Description

本発明は、プロセッサ上で実行される、オペレーティングシステムソフトウエア、アプリケーションソフトウエアなどのソフトウエアの整合性を証明し、セキュアなセッションを実現する方法および装置に関する。   The present invention relates to a method and apparatus for proving the integrity of software such as operating system software and application software executed on a processor and realizing a secure session.

最先端のコンピュータアプリケーションがますます複雑になり、プロセッサシステム(処理システム)に対する需要は絶えず増大しているため、近年、より速いコンピュータによる処理データスループットについて強い要望がある。そうした中、特にグラフィックスアプリケーションは、望ましい視覚結果を実現するために、比較的短い時間内で膨大な数のデータアクセス、データ計算、およびデータ操作を必要とし、プロセッサシステムに対する要求は最も高い。リアルタイムのマルチメディアアプリケーションもまた、プロセッサシステムに対する高い要求は高い。実際に、このようなアプリケーションは毎秒何千メガビットものデータ処理という非常に高速な処理を必要とする。   As state-of-the-art computer applications become increasingly complex and the demand for processor systems (processing systems) is constantly increasing, there is a strong demand in recent years for processing data throughput with faster computers. Among them, graphics applications in particular require a tremendous amount of data access, data computation, and data manipulation in a relatively short time to achieve the desired visual results, and the demands on processor systems are highest. Real-time multimedia applications also have high demands on processor systems. In fact, such applications require very high speed processing of thousands of megabits of data per second.

いくつかのプロセッサシステムは一つのプロセッサを用いて高速な処理速度を実現する一方、他のプロセッサシステムはマルチプロセッサアーキテクチャを用いて実装される。マルチプロセッサシステムにおいて、複数のサブプロセッサは並列に(少なくとも協調して)動作し、所望の処理結果を達成できる。マルチプロセッサシステム内でモジュラー構造を用いることも考えられる。なお、この構造において、計算モジュールには、(インターネットなどの)ブロードバンドネットワークを介してアクセスでき、その計算モジュールは多くのユーザ間で共有できる。このモジュラー構造についての詳細は、米国特許第6526491号に記載される。   Some processor systems use one processor to achieve high processing speed, while other processor systems are implemented using a multiprocessor architecture. In a multiprocessor system, a plurality of sub-processors can operate in parallel (at least in cooperation) to achieve a desired processing result. It is also conceivable to use a modular structure in a multiprocessor system. In this structure, the calculation module can be accessed via a broadband network (such as the Internet), and the calculation module can be shared among many users. Details about this modular structure are described in US Pat. No. 6,526,491.

なお、プロセッサシステムがネットワークを介して使用されるとき、あるいは共有リソースの一部分であるときに問題が生じる。特に、プロセッサとそれに関連するハードウエア、ソフトウエア、データおよびそれらと同様のものは、意図的なハッキング、ウイルスやそれらと同様のものなどの外部要因にさらされやすい。他の問題として、実行前における、ある方法での認証がなされていない、起動ソフトウエアや、オペレーティングシステムソフトウエアや、アプリケーションソフトウエアやコンテンツ(データ)によりもたらされうる不正やあからさまな悪意が挙げられる。あいにく、ソフトウエアアプリケーション(あるいは、他の種類のデジタルコンテンツ)の従来の実行過程では、メモリからソフトウエアを読み出すこと、さらにプロセッサを用いてそのソフトウエアを実行することが指示される。たとえ、ソフトウエアを実行するプロセッサシステムにいくつかの種類のセキュリティ対策を施しても、そのソフトウエアが改ざんされる、あるいは、そのソフトウエアに対する実行権限がそもそも与えられていない場合もある。したがって、以降に施される任意のセキュリティ対策は十分に信頼性の高い(trusted;信頼のおける)ものにはなるとは限らず、さらに無駄になる(usurped)可能性もある。   Problems arise when the processor system is used over a network or is part of a shared resource. In particular, the processor and associated hardware, software, data and the like are subject to external factors such as intentional hacking, viruses and the like. Other problems include fraud and overt maliciousness that can be caused by startup software, operating system software, application software and content (data) that have not been authenticated in some way before execution. It is done. Unfortunately, conventional execution of software applications (or other types of digital content) directs reading the software from memory and executing the software using a processor. Even if some kinds of security measures are applied to a processor system that executes software, the software may be falsified, or the execution authority for the software may not be granted in the first place. Therefore, any security measures that are subsequently taken may not be sufficiently reliable and may be further used.

プロセッサシステム上でアプリケーションソフトウエアを実行すれば、通常、例えば、ディスクコントローラ(CD、DVDなど)、グラフィックスチップ、ハードディスク(HD)構成要素、チューナー回路、ネットワークインタフェース回路などの処理資源を使用することになる。そのため、オペレーティングシステム、アプリケーションプログラムおよび/またはコンテンツに対する(例えば、ハッキングやウイルスによる)権限の与えられていない変更に係わる何らかの問題が、当該システムの処理資源にまで広がる。   When application software is executed on a processor system, processing resources such as a disk controller (CD, DVD, etc.), a graphics chip, a hard disk (HD) component, a tuner circuit, and a network interface circuit are usually used. become. As a result, any problems associated with unauthorized changes to the operating system, application programs and / or content (eg, due to hacking or viruses) extend to the processing resources of the system.

本発明の目的は、オペレーティングシステム、アプリケーションプログラムおよび/またはコンテンツに対する任意の権限が与えられていない変更を検出すること、かつ、任意の処理資源との間でセキュアなセッションを実現するセキュアな処理環境を確立できることを保証する、プロセッサシステム内におけるセキュリティ対策を与える新規の方法および装置を提供することにある。   An object of the present invention is to detect a change in which an operating system, an application program, and / or content are not given any authority, and to realize a secure processing environment with an arbitrary processing resource. It is an object of the present invention to provide a novel method and apparatus for providing security measures in a processor system that guarantees that

本発明に係る一以上の態様によれば、好適には外部のデバイスとの間でセキュアなセッションを確立することに関連して、セキュアなプロセッサ内のオペレーティングシステムソフトウエア、ソフトウエアアプリケーションおよび/またはコンテンツを認証できる。セキュアな処理環境(ハッキングやウイルスによる危険にさらされない環境)を確立するとともに、セキュアなプロセッサ内のオペレーティングシステムソフトウエア、ソフトウエアアプリケーションおよび/またはコンテンツを認証することで、外部のデバイスとの間でのセキュアなセッションを用いたデータの使用を可能とする信頼性の高い環境を想定できる。   In accordance with one or more aspects of the present invention, operating system software, software applications and / or in a secure processor, preferably in connection with establishing a secure session with an external device. Can authenticate content. Establish a secure processing environment (an environment that is not at risk from hacking or viruses) and authenticate operating system software, software applications and / or content in a secure processor to and from external devices It is possible to assume a highly reliable environment that enables the use of data using secure sessions.

本発明の一以上の態様によれば、セキュアな処理環境を確立するのが好ましい。セキュアな処理環境の確立には、外部から開始された、そのプロセッサに対するデータアクセスリクエストに応答しない状態の呼び出しが含まれる。すなわち、セキュアなプロセッサは、データに対するどの外部のリクエスト(例えば、ローカルメモリまたはレジスタ上のコンテンツを読み出すというリクエスト)にも応じない。したがって、プロセッサがセキュアなモードに入る場合、例えば、ソフトウエアアプリケーションやコンテンツの認証などといったさらなるセキュリティ対策を講ずることのできる信頼性の高い環境を形成する。   According to one or more aspects of the present invention, it is preferable to establish a secure processing environment. Establishing a secure processing environment includes an externally initiated call that does not respond to a data access request to the processor. That is, the secure processor does not respond to any external request for data (eg, a request to read content on local memory or registers). Therefore, when the processor enters the secure mode, it forms a highly reliable environment in which further security measures can be taken, for example, software application and content authentication.

信頼性の高い復号化コード(および信頼性の高い復号鍵)は、特定のプロセッサに関連付けられるセキュアなメモリ(例えば、フラッシュROM)内に保存されるのが好ましい。その信頼性の高い復号化コードおよび復号鍵は、そのプロセッサがセキュアなモードに入ったときに、そのフラッシュROMのみから入手できるのが好ましい。その復号化機能は、ハードウエア(例えば、フラッシュROMや任意の他の適切なハードデバイス内に焼き付けたソフトウエア)で実装されるのが好ましい。いったん、信頼性の高い復号化コードが呼び出されれば、そのコードを用いて(その信頼性の高い鍵により暗号化された)公開鍵認証プログラムを復号化し、それを(セキュアな処理環境の外部である)システムメモリ内に保存できる。その公開鍵認証プログラムを用いることにより、他のアプリケーションプログラムおよびコンテンツを復号化でき認証できる。   The reliable decryption code (and the reliable decryption key) is preferably stored in a secure memory (eg, flash ROM) associated with a particular processor. The reliable decryption code and decryption key are preferably available only from the flash ROM when the processor enters secure mode. The decryption function is preferably implemented in hardware (eg, software burned into a flash ROM or any other suitable hard device). Once a reliable decryption code is called, it uses the code to decrypt the public key authentication program (encrypted with the reliable key) and extract it outside the secure processing environment Can be stored in system memory. By using the public key authentication program, other application programs and contents can be decrypted and authenticated.

一例として、その公開鍵認証プログラムは、信頼性の高い鍵(例えば、秘密鍵と公開鍵のペアのうちの秘密鍵)を用いて暗号化されたオペレーティングシステムを、復号化できる。セキュアなプロセッサ上で動作する公開鍵認証プログラムは、公開鍵(例えば、秘密鍵と公開鍵のペアのうちの公開鍵)を用いて、そのオペレーティングシステムを認証できる。そのオペレーティングシステムにはまた、電子署名による署名(例えば、ハッシュ結果)が施される。その署名もまた、ハッシュアルゴリズムを実行するとともにその結果をクロスチェックする公開鍵認証プログラムにより認証される。   As an example, the public key authentication program can decrypt an operating system encrypted using a highly reliable key (for example, a private key of a private key / public key pair). A public key authentication program operating on a secure processor can authenticate the operating system using a public key (for example, a public key of a private key / public key pair). The operating system is also signed with a digital signature (eg, a hash result). The signature is also authenticated by a public key authentication program that performs a hash algorithm and cross-checks the result.

オペレーティングシステムが認証されたとき、認証結果が、そのプロセッサ内のセキュアな記憶領域(予め記録された内部の公開鍵を保存するために用いられる領域と同一の領域であってもよい)内に保存される。その後、任意のソフトウエアアプリケーションおよび/またはコンテンツは、(例えば、オペレーティングシステムの認証に関するステップと同様のステップを用いて、)マルチプロセッサ内の同一のプロセッサや異なるプロセッサ内で認証される。(もし、ソフトウエアアプリケーションおよび/またはコンテンツの認証のために異なるプロセッサが用いられるならば、その異なるプロセッサもまた、セキュアなモードであるのが好ましい)。なお、この認証処理の間、プロセッサはその認証結果をチェックすることにより、オペレーティングシステムが正当であり、かつ、どの改ざんも生じていないことを保証できる。   When the operating system is authenticated, the authentication result is stored in a secure storage area in the processor (which may be the same area used to store the pre-recorded internal public key) Is done. Any software application and / or content is then authenticated in the same processor in the multiprocessor or in a different processor (eg, using steps similar to those related to operating system authentication). (If different processors are used for software application and / or content authentication, the different processors are also preferably in secure mode). During this authentication process, the processor can check the authentication result to ensure that the operating system is valid and that no tampering has occurred.

ここで、本明細書で用いられる、「コンテンツ」および「データ」は、任意の種類のプログラムコード、アプリケーションソフトウエア、システムレベルのソフトウエア、任意の種類のデータ、データストリームなどを含むものと広く解釈される。   As used herein, “content” and “data” broadly include any type of program code, application software, system level software, any type of data, data stream, etc. Interpreted.

いったん、オペレーティングシステムおよびソフトウエアアプリケーションおよび/またはコンテンツが認証されれば、そのプロセッサもまた、例えば、ディスクコントローラ(CD、DVDなど)、グラフィックスチップ、ハードディスク(HD)構成要素、チューナー回路、ネットワークインタフェース回路などの外部のデバイスの間で、セキュアなセッションを確立できる。このセキュアなセッションは、プロセッサと外部のデバイスとの間で受け渡される情報を暗号化/復号化するための、別の(または同一の)秘密鍵と公開鍵のペアを用いて確立されうる。(1回限りで使用される鍵(ワンタイムキー)や乱数により生成された鍵(乱数鍵)などの他の鍵も使用できる)。オペレーティングシステム、ソフトウエアアプリケーションおよび/またはコンテンツは認証されているため、そのセキュアなセッションは信頼性の高いものになる。   Once the operating system and software application and / or content has been authenticated, its processor can also be, for example, a disk controller (CD, DVD, etc.), graphics chip, hard disk (HD) component, tuner circuit, network interface. A secure session can be established between external devices such as circuits. This secure session may be established using another (or the same) private and public key pair to encrypt / decrypt information passed between the processor and the external device. (Other keys such as a one-time key (one-time key) and a key generated by a random number (random key) can also be used). Since the operating system, software application and / or content is authenticated, the secure session is reliable.

本発明に係る一以上の態様は、方法および装置に関する。その方法および装置は、自身に関連付けられたローカルメモリを含むプロセッサであって、そのローカルメモリ内での使用を目的としてメインメモリからデータを読み出すことができるようそのメインメモリに動作可能に接続されうるそのプロセッサが、オペレーティングシステムソフトウエアを実行する前に、そのオペレーティングシステムソフトウエアの整合性を証明し、そのオペレーティングシステムソフトウエアの整合性の有無を示す状態フラグを保存し、さらに、そのプロセッサによるそのデータの使用を許可する前に、その状態フラグがオペレーティングシステムソフトウエアの整合性があることを示していることを保証する。   One or more aspects of the invention relate to a method and apparatus. The method and apparatus is a processor that includes a local memory associated with it and can be operatively connected to the main memory so that data can be read from the main memory for use within the local memory. Before the processor executes the operating system software, it verifies the integrity of the operating system software, stores a status flag indicating whether the operating system software is consistent, Ensure that the status flag indicates that the operating system software is consistent before allowing the data to be used.

本発明に係る一以上の別の態様は、方法および装置に関する。その方法および装置は、自身に関連付けられたローカルメモリを含むプロセッサであって、そのローカルメモリ内での使用を目的としてメインメモリからデータを読み出すことができるようそのメインメモリに動作可能に接続されうるそのプロセッサが、オペレーティングシステムソフトウエアを実行する前に、そのオペレーティングシステムソフトウエアの整合性を証明し、そのオペレーティングシステムソフトウエアの整合性の有無を示す状態フラグを保存するステップと、そのプロセッサによるデータまたは所定の処理資源の使用を許可する前に、その状態フラグがそのオペレーティングシステムソフトウエアの整合性があることを示していることを保証する。   One or more other aspects of the invention relate to a method and apparatus. The method and apparatus is a processor that includes a local memory associated with it and can be operatively connected to the main memory so that data can be read from the main memory for use within the local memory. Before the processor executes the operating system software, verifying the integrity of the operating system software and storing a status flag indicating whether the operating system software is consistent; Or, before allowing the use of a given processing resource, ensure that the status flag indicates that the operating system software is consistent.

本発明に係る一以上のさらなる別の態様は、方法および装置に関する。その方法および装置は、自身に関連付けられたローカルメモリを含むプロセッサであって、ローカルメモリ内での使用を目的としてメインメモリからデータを読み出すことができるようそのメインメモリに動作可能に接続されうるプロセッサが、オペレーティングシステムソフトウエアの実行前および/または実行後に、そのオペレーティングシステムソフトウエアの整合性を所定のタイミングで証明し、オペレーティングシステムソフトウエアの整合性の有無を示す状態フラグを保存し、プロセッサによる動作手順の進行を許可する前に、状態フラグがオペレーティングシステムソフトウエアの整合性があることを示していることを所定のタイミングで保証する。   One or more further aspects of the present invention relate to methods and apparatus. The method and apparatus includes a processor including a local memory associated with the processor, the processor being operatively connected to the main memory so that data can be read from the main memory for use in the local memory Before and / or after running the operating system software, verifying the integrity of the operating system software at a predetermined timing, storing a status flag indicating whether the operating system software is consistent, and Before allowing the operation procedure to proceed, it is guaranteed at a predetermined timing that the status flag indicates that the operating system software is consistent.

処理資源は、不揮発性メモリのサブシステムと一以上の機能回路とを含む。その不揮発性メモリのサブシステムは、電磁的記録媒体、電子的記録媒体、シリコン記録媒体、光学記録媒体、ハードディスク記録媒体、CD−ROM記録媒体、DVD−ROM記録媒体、および外部の記録媒体など、ハードウエア要素および/またはソフトウエア要素のうち少なくとも一つを含むこと、一以上の機能回路は、少なくとも一つのグラフィックス処理回路、ネットワークインタフェース回路、ディスプレイインタフェース回路、プリンタインタフェース回路、ローカルデータの入力インタフェース、および出力インタフェースのうち少なくとも一つを含むこと、のうち少なくとも一つを実現する。   The processing resources include a non-volatile memory subsystem and one or more functional circuits. Non-volatile memory subsystems include electromagnetic recording media, electronic recording media, silicon recording media, optical recording media, hard disk recording media, CD-ROM recording media, DVD-ROM recording media, and external recording media, etc. Including at least one of hardware elements and / or software elements, and the one or more functional circuits include at least one graphics processing circuit, network interface circuit, display interface circuit, printer interface circuit, local data input interface , And including at least one of the output interfaces.

本発明の上記以外の態様、特徴、および利点などは、添付図面とともに以下の詳細な説明により当業者には明確に理解される。   Other aspects, features, advantages, etc. of the present invention will become apparent to those skilled in the art from the following detailed description taken in conjunction with the accompanying drawings.

本発明の様々な実施の形態を示すために、現在のところ好適である図面を例示として添付するが、本発明は図面と同一の構成および手段に限定するものではない。   For the purpose of illustrating various embodiments of the present invention, the drawings that are presently preferred are included as examples, but the present invention is not limited to the same arrangements and instrumentalities as the drawings.

図において同一の符号は同一の要素を示すものとする。図1は、実施の形態に係る一以上の態様の実施に適したプロセッサシステム100を示す。簡潔および明確にするために、図1の構成図を参照し装置100を用いて説明するが、同一の主旨を有する様々な態様の方法にその説明を簡単に適用できるのは言うまでもない。装置100は、プロセッサ102と、ローカルメモリ104と、システムメモリ106(例えば、DRAM)と、バス108とを備えるのが好ましい。   In the drawings, the same reference numerals indicate the same elements. FIG. 1 illustrates a processor system 100 suitable for implementing one or more aspects according to an embodiment. For the sake of brevity and clarity, the apparatus 100 will be described with reference to the block diagram of FIG. 1, but it goes without saying that the description can be easily applied to various aspects of the method having the same spirit. Device 100 preferably includes a processor 102, a local memory 104, a system memory 106 (eg, DRAM), and a bus 108.

プロセッサ102は、システムメモリ106からのデータの要求を可能にし、そのデータを操作することで所望の結果への達成を可能にする任意の既知の技術を用いて実装されてもよい。例えば、プロセッサ102はソフトウエアおよび/またはファームウエアを実行可能な、標準マイクロプロセッサや分散型のマイクロプロセッサなどの任意の既知のマイクロプロセッサを用いることで実装されてもよい。例として、プロセッサ102は、ピクセルデータなどのデータを要求し操作できるグラフィックプロセッサであってもよい。なお、そのピクセルデータには、グレースケール情報や、カラー情報や、テクスチャデータや、ポリゴン情報や、ビデオフレーム情報などが含まれる。   The processor 102 may be implemented using any known technique that allows a request for data from the system memory 106 and manipulates that data to achieve the desired result. For example, the processor 102 may be implemented using any known microprocessor capable of executing software and / or firmware, such as a standard microprocessor or a distributed microprocessor. By way of example, the processor 102 may be a graphics processor that can request and manipulate data such as pixel data. The pixel data includes gray scale information, color information, texture data, polygon information, video frame information, and the like.

ここで、ローカルメモリ104は、プロセッサ102と同一チップ上に設けられるのが好ましい。なお、ローカルメモリ104は、ハードウェアキャッシュメモリではないことが好ましく、ローカルメモリ104には、ハードウェアキャッシュメモリ機能を実現するための、チップ内蔵またはチップ外に設けられたハードウェアキャッシュ回路、キャッシュレジスタ、キャッシュメモリコントローラなどが無いことが好ましい。他の実施の形態では、ローカルメモリ104はキャッシュメモリおよび/または付加的なキャッシュメモリであってもよい。チップ上の実装面積はしばしば限られているので、ローカルメモリ104のサイズは、システムメモリ106のサイズより遥かに小さい。プロセッサ102は、プログラムの実行とデータの操作のために、バス108を介してシステムメモリ106からそのローカルメモリ104にデータ(プログラムデータを含みうる)をコピーするためのデータアクセスリクエストを提供することが好ましい。データアクセスを容易にするメカニズムとして、例えばダイレクト・メモリ・アクセス(DMA)技術など、任意の既知の技術を用いてもよい。   Here, the local memory 104 is preferably provided on the same chip as the processor 102. Note that the local memory 104 is preferably not a hardware cache memory, and the local memory 104 includes a hardware cache circuit or a cache register provided in or outside the chip for realizing a hardware cache memory function. It is preferable that there is no cache memory controller or the like. In other embodiments, the local memory 104 may be a cache memory and / or an additional cache memory. Since the mounting area on the chip is often limited, the size of the local memory 104 is much smaller than the size of the system memory 106. The processor 102 may provide a data access request to copy data (which may include program data) from the system memory 106 to its local memory 104 via the bus 108 for program execution and data manipulation. preferable. Any known technique such as direct memory access (DMA) technology may be used as a mechanism for facilitating data access.

その装置100はまた、例えば、バス108を介してプロセッサ102に動作可能に接続される読み出し専用メモリ(ROM)などの記憶媒体110を備えるのが好ましい。その記憶媒体110は信頼性の高い復号化プログラムを含むのが好ましい。その復号化プログラムは、プロセッサ102のローカルメモリ104内に読み出し可能であり、セキュアな復号鍵を用いて情報を復号化できる。好適には、記憶媒体110は、復号化プログラムにより信頼性の高い機能を実現するとともに、外部のソフトウエアの操作により改ざんできない程度のセキュリティを実現するよう構成されたプログラムの書き換えが可能なデバイス(例えば、フラッシュROM)である。記憶媒体110は、その復号化プログラムおよび/または(信頼性の高い復号鍵などの)他の情報が、権限が与えられていないエンティティによりアクセスされない程度のセキュリティを実現するのが好ましい。例えば、その復号化プログラムは、その装置100の製造過程中に、記憶媒体110の中で生成され保存されるのが好ましい。   The apparatus 100 also preferably includes a storage medium 110, such as a read only memory (ROM), operatively connected to the processor 102 via a bus 108, for example. The storage medium 110 preferably includes a highly reliable decryption program. The decryption program can be read into the local memory 104 of the processor 102, and information can be decrypted using a secure decryption key. Preferably, the storage medium 110 is a device that can rewrite a program configured to realize a highly reliable function by a decryption program and to realize security that cannot be tampered with by operation of external software ( For example, a flash ROM). The storage medium 110 preferably provides security to the extent that its decryption program and / or other information (such as a reliable decryption key) is not accessed by unauthorized entities. For example, the decryption program is preferably generated and stored in the storage medium 110 during the manufacturing process of the device 100.

プロセッサ102およびローカルメモリ104は、一つの共通の集積回路として一体化されるのが好ましい。したがって、本明細書では、これらの要素を「プロセッサ102」と呼んでもよい。他の実施の形態では、記憶媒体110もまた、その一以上の他の要素とともに、一つの共通の集積回路として一体化されてもよい。   The processor 102 and the local memory 104 are preferably integrated as one common integrated circuit. Accordingly, these elements may be referred to herein as “processors 102”. In other embodiments, the storage medium 110 may also be integrated with one or more other elements as a common integrated circuit.

ここで、図1の装置100を参照し、本発明の一以上の態様に係る装置100により実施される処理ステップの流れを図2〜図6に示す。動作200において、プロセッサ102は、セキュアな動作モードに入ることができるのが好ましい。このセキュアな動作モードでは、プロセッサ102のローカルメモリ104(あるいは、任意の他のメモリデバイス、レジスタなど)内に保存されたデータに対する要求はいずれも受け付けられない。従って、機密性の高いオペレーションを実行するための信頼性の高い環境を保証できる。セキュアなモードであるにもかかわらず、プロセッサ102は、システムメモリ106からローカルメモリ104へのデータ転送を要求できる。あるいは、ローカルメモリ104からシステムメモリ106へのデータ転送を要求できる。さらに、セキュアな動作モードである間は、プロセッサ102は、自身が転送元であるか転送先であるかにかかわらず、信頼性の高い環境との間でのデータ転送を開始できる。   Referring now to the apparatus 100 of FIG. 1, the flow of processing steps performed by the apparatus 100 according to one or more aspects of the present invention is illustrated in FIGS. In operation 200, processor 102 is preferably capable of entering a secure mode of operation. In this secure mode of operation, no requests for data stored in the local memory 104 (or any other memory device, register, etc.) of the processor 102 are accepted. Therefore, it is possible to guarantee a highly reliable environment for performing highly confidential operations. Despite the secure mode, the processor 102 can request data transfer from the system memory 106 to the local memory 104. Alternatively, data transfer from the local memory 104 to the system memory 106 can be requested. Further, while in the secure operation mode, the processor 102 can start data transfer with a highly reliable environment regardless of whether the processor 102 is a transfer source or a transfer destination.

本発明に係る一以上の他の実施の形態によれば、プロセッサ102をセキュアな方法で起動できる。そのセキュアな方法では、最初に起動コードが認証され、その後、起動が許可される。これにより、プロセッサ102がセキュアな動作モード200に入るときに、よりレベルの高いセキュリティを保証できる。セキュアな起動処理に関するさらなる詳細は、米国特許出願第60/650,755号と同日に米国特許商標庁に出願された「プロセッサ内でセキュアな起動シーケンスを提供する方法および装置」と題する米国特許出願第60/650,506号(代理人番号545/10、整理番号:SC04028US00)内に記載される。例えば、その文献によれば、暗号化された起動コードをバスに接続されたセキュアな記憶媒体から読み出し、その暗号化された起動コードをプロセッサに関連付けられたローカルメモリ内に保存する。さらに、プロセッサの信頼のおける復号化機能を用いて暗号化された起動コードを復号化することにより、起動コードが真正であることを確認し、ローカルメモリから取得した起動コードを用いてプロセッサを起動する。   According to one or more other embodiments of the present invention, the processor 102 can be activated in a secure manner. In the secure method, the activation code is first authenticated and then activation is permitted. This ensures a higher level of security when the processor 102 enters the secure operation mode 200. For further details regarding secure boot processing, see US Patent Application No. 60 / 650,755 filed with the US Patent and Trademark Office on the same day as “Method and Apparatus for Providing Secure Boot Sequence in Processor”. No. 60 / 650,506 (agent number 545/10, serial number: SC04028US00). For example, according to that document, an encrypted activation code is read from a secure storage medium connected to a bus, and the encrypted activation code is stored in a local memory associated with the processor. Furthermore, by decrypting the encrypted startup code using the processor's reliable decryption function, it is confirmed that the startup code is authentic, and the processor is started using the startup code obtained from the local memory. To do.

いったん、信頼性の高い環境がそのセキュアな動作モードにより実現されれば、そのプロセッサ102は、記憶媒体110から復号化プログラムを読み出し、それをローカルメモリ104内に読み込ませることが好ましい(動作202)。好適には、信頼性の高い鍵もまた記憶媒体110内に保存され、後の使用のためにローカルメモリ104内に読み込まれる。動作204では、暗号化された認証プログラムが、プロセッサ102のローカルメモリ104内に読み込まれるのが好ましい。認証プログラムは好適には暗号化されるため、比較的セキュアでない記憶媒体内、例えばシステムメモリ106内に保存できる。その結果、好適には、ローカルメモリ104内への暗号化された認証プログラムの読み込み動作は、システムメモリ106からの暗号化された認証プログラムの取得処理を必要とする。   Once a reliable environment is achieved with the secure mode of operation, the processor 102 preferably reads the decryption program from the storage medium 110 and loads it into the local memory 104 (operation 202). . Preferably, a trusted key is also stored in storage medium 110 and read into local memory 104 for later use. In operation 204, the encrypted authentication program is preferably loaded into the local memory 104 of the processor 102. Since the authentication program is preferably encrypted, it can be stored in a relatively insecure storage medium, such as system memory 106. As a result, preferably, the operation of reading the encrypted authentication program into the local memory 104 requires a process for obtaining the encrypted authentication program from the system memory 106.

動作206では、暗号化された認証プログラムは、その復号化プログラムおよびその信頼性の高い復号鍵を用いて復号化されるのが好ましい。この動作では、認証プログラムが、信頼性の高い鍵に関連付けられた鍵を用いて暗号化されたと想定している。信頼性の高い環境であるセキュアなプロセッサ102の中で、認証プログラムが復号化されるため、復号化された後の認証プログラムの改ざんが不可能であると想定できる。   In operation 206, the encrypted authentication program is preferably decrypted using the decryption program and the highly reliable decryption key. This operation assumes that the authentication program has been encrypted using a key associated with a highly reliable key. Since the authentication program is decrypted in the secure processor 102 that is a highly reliable environment, it can be assumed that the authentication program cannot be altered after being decrypted.

本発明に係る他の実施の形態では、その認証プログラムが真正(authenticity)であることが証明されてもよい。この点について、認証プログラムが真正であること(真正であるか否か)をチェックするステップには、復号化された認証プログラムに対してハッシュ関数を実行することでハッシュ結果を生成する動作が含まれうる。その後、ハッシュ結果は、予め定められたハッシュ値と比較される。なお、ハッシュ値は、デジタル署名やそれと同様のものなどであってもよい。一例として、信頼性の高いエンティティがそのハッシュ関数を認証プログラムに対して実行することにより、所与のハッシュ値を生成してもよい。その所与のハッシュ値は認証プログラムそのものとともに暗号化されてもよく、信頼性の高いエンティティによってシステムメモリ106に提供される。当業者にとって明らかなように、1以上の介在するエンティティが、信頼性の高いエンティティからシステムメモリ106に対しその暗号化されたプログラムの伝送を完了してもよい。   In another embodiment according to the present invention, it may be proved that the authentication program is authentic. In this regard, the step of checking whether the authentication program is authentic (whether it is authentic) includes an operation of generating a hash result by executing a hash function on the decrypted authentication program. Can be. Thereafter, the hash result is compared with a predetermined hash value. Note that the hash value may be a digital signature or the like. As an example, a trusted entity may generate a given hash value by executing its hash function on the authentication program. The given hash value may be encrypted with the authentication program itself and provided to the system memory 106 by a trusted entity. As will be apparent to those skilled in the art, one or more intervening entities may complete the transmission of the encrypted program from the trusted entity to the system memory 106.

上述したように、復号化プログラムは、装置100の製造過程中に、記憶媒体110の中で確立され保存されるのが好ましい。その結果、その復号化プログラムは、所与のハッシュ値の生成を目的として信頼性の高いエンティティにより用いられたハッシュ関数と同一のハッシュ関数を実行する能力を備えることができる。復号化プログラムは、認証プログラムに対してハッシュ関数を実行することでハッシュ結果を生成でき、さらにそのハッシュ結果と所与のハッシュ値とを比較できる。もし、そのハッシュ結果と所与のハッシュ値とが一致すれば、その認証プログラムは改ざんされておらず、真正であるとみなすことができる。   As described above, the decryption program is preferably established and stored in the storage medium 110 during the manufacturing process of the device 100. As a result, the decryption program can be equipped with the ability to execute the same hash function used by a reliable entity for the purpose of generating a given hash value. The decryption program can generate a hash result by executing a hash function on the authentication program, and further compare the hash result with a given hash value. If the hash result matches a given hash value, the authentication program has not been tampered with and can be considered authentic.

動作208では、いったん認証プログラムが生じ、および/または認証されたのであれば、暗号化されたオペレーティングシステムソフトウエアをプロセッサ102のローカルメモリ内に読み込ませるのが好ましい。オペレーティングシステムソフトウエアは暗号化されているため、システムメモリ106など比較的アンセキュアな場所の中にそのコンテンツを保存できる。オペレーティングシステムソフトウエアは、秘密鍵と公開鍵のペアのうちの秘密鍵を用いて暗号化されるのが好ましい。したがって、権限が与えられていないどのエンティティも、そのペアのうちの公開鍵を有することなしにオペレーティングシステムソフトウエアを復号化することは不可能である。動作210において、認証プログラムはその秘密鍵と公開鍵のペアのうちの公開鍵を把握していることが好ましく、そのような鍵を用いて、暗号化されたオペレーティングシステムソフトウエアを復号化できる。   In act 208, once the authentication program has been generated and / or authenticated, the encrypted operating system software is preferably loaded into the processor 102 local memory. Because the operating system software is encrypted, its contents can be stored in a relatively unsecure location such as the system memory 106. The operating system software is preferably encrypted using a private key of a private key / public key pair. Thus, no unauthorized entity can decrypt operating system software without having the public key of the pair. In operation 210, the authentication program preferably knows the public key of the private key / public key pair, and the encrypted operating system software can be decrypted using such a key.

動作212において、認証ルーチンは、その復号化されたオペレーティングシステムソフトウエアに対して実行されるのが好ましい。その認証ルーチンは、そのオペレーティングシステムソフトウエアが真正であること(真正であるか否か)を証明するのが好ましい。例えば、認証ルーチンは、オペレーティングシステムソフトウエアがハッキングにより改ざんされたか否か、ウイルスにより危険にさらされたか否かを決定する。この認証は、プロセッサ102によるオペレーティングシステムソフトウエアの実行の前に、あるいは、その実行中に定期的に実施されうる。この点に関連して、オペレーティングシステムソフトウエアが真正であることをチェックする処理には、その復号化されたオペレーティングシステムソフトウエアに対してハッシュ関数を実行し、ハッシュ結果を生成する動作も含まれる。その後、ハッシュ結果は、予め定められたハッシュ値と比較される。なお、ハッシュ値は、デジタル署名やそれと同様のものなどであってもよい。一例として、信頼性の高いエンティティがハッシュ関数をオペレーティングシステムソフトウエアに対して実行することにより、所与のハッシュ値を生成してもよい。その所与のハッシュ値はオペレーティングシステムソフトウエアそのものとともに暗号化されてもよく、信頼性の高いエンティティによってシステムメモリ106に提供される。また、当業者にとって明らかなように、1以上の介在するエンティティが、信頼性の高いエンティティからシステムメモリ106に対し暗号化されたプログラムの伝送を完了してもよい。   In operation 212, an authentication routine is preferably executed for the decrypted operating system software. The authentication routine preferably verifies that the operating system software is authentic (whether it is authentic). For example, the authentication routine determines whether the operating system software has been tampered with by hacking and whether it has been compromised by a virus. This authentication can be performed prior to or during execution of the operating system software by the processor 102. In this regard, the process of checking that the operating system software is authentic includes an operation of executing a hash function on the decrypted operating system software and generating a hash result. . Thereafter, the hash result is compared with a predetermined hash value. Note that the hash value may be a digital signature or the like. As an example, a trusted entity may generate a given hash value by performing a hash function on the operating system software. The given hash value may be encrypted along with the operating system software itself and provided to the system memory 106 by a trusted entity. Also, as will be apparent to those skilled in the art, one or more intervening entities may complete the transmission of the encrypted program from the trusted entity to the system memory 106.

その認証プログラムは、オペレーティングシステムソフトウエアに対する所与のハッシュ値の生成を目的として信頼性の高いエンティティにより用いられたハッシュ関数と同一のハッシュ関数を実行する能力を備えることができる。認証プログラムは、そのオペレーティングシステムソフトウエアに対しハッシュ関数を実行することでハッシュ結果を生成でき、さらにそのハッシュ結果と所与のハッシュ値とを比較できる。もし、ハッシュ結果と所与のハッシュ値とが一致すれば、そのオペレーティングシステムソフトウエアは改ざんされておらず、真正であるとみなすことができる。   The authentication program may be capable of executing the same hash function as that used by a trusted entity for the purpose of generating a given hash value for the operating system software. The authentication program can generate a hash result by executing a hash function on the operating system software, and can compare the hash result with a given hash value. If the hash result matches a given hash value, the operating system software has not been tampered with and can be considered authentic.

動作214では、そのオペレーティングシステムソフトウエアが真正であるか否かの決定に応じて、処理フローが分岐する。もし、その決定の結果が否定的なものである(オペレーティングシステムソフトウエアが真正ではない)場合、処理の流れは適切な動作が行われる失敗状態に進むのが好ましい。適切な動作の例として、認証プロセスの再度の実施、操作者の装置100へのオペレーティングシステムソフトウエアの認証失敗を示すメッセージの送信、あるいは、他のそのような動作が挙げられる。もし、動作214での決定の結果が肯定的なものである(オペレーティングシステムソフトウエアが真正である)場合、処理の流れは動作216に進むのが好ましい。動作216では、オペレーティングシステムソフトウエアが認証されたという指標(例えば、状態フラグなど)が記憶媒体110内に保存される。(この指標の使用については、本明細書において後述する。)動作218では、プロセッサ102は、そのオペレーティングシステムソフトウエアを呼び出すことが可能である。   In operation 214, the processing flow branches in response to determining whether the operating system software is authentic. If the result of the decision is negative (operating system software is not authentic), the process flow preferably proceeds to a failure state where appropriate action is taken. Examples of suitable operations include performing the authentication process again, sending a message to the operator's device 100 indicating failure of operating system software authentication, or other such operations. If the result of the determination at operation 214 is positive (the operating system software is authentic), then processing flow preferably proceeds to operation 216. In act 216, an indication that the operating system software has been authenticated (eg, a status flag, etc.) is stored in storage medium 110. (The use of this indicator will be described later in this specification.) In operation 218, processor 102 may call its operating system software.

いったん、オペレーティングシステムソフトウエアがプロセッサ102上で実行されているのであれば、暗号化されたコンテンツをプロセッサ102のローカルメモリ104内に読み込ませるのが好ましい(動作220)。コンテンツは暗号化されているため、システムメモリ106など比較的アンセキュアな場所の中に保存できる。オペレーティングシステムソフトウエアの場合と同様に、コンテンツは、秘密鍵と公開鍵のペアのうちの秘密鍵を用いて暗号化されるのが好ましい。したがって、権限が与えられていないどのエンティティも、そのペアのうちの公開鍵を有することなしにコンテンツを復号化することは不可能である。動作222において、認証プログラムはその秘密鍵と公開鍵のペアのうちの公開鍵を把握しているのが好ましく、その鍵を用いて、暗号化されたコンテンツを復号化できる。   Once the operating system software is running on the processor 102, it is preferable to have the encrypted content loaded into the local memory 104 of the processor 102 (operation 220). Since the content is encrypted, it can be stored in a relatively unsecure location such as the system memory 106. As with operating system software, the content is preferably encrypted using a private key of a private key / public key pair. Thus, no unauthorized entity can decrypt the content without having the public key of the pair. In operation 222, the authentication program preferably knows the public key of the private key / public key pair, and can use the key to decrypt the encrypted content.

動作224において、認証ルーチンはその復号化されたコンテンツに対して実行されるのが好ましい。その認証ルーチンは、プロセッサ102によるコンテンツの実行の前に、コンテンツが真正であることを証明するのが好ましい。この点に関連して、コンテンツが真正であることをチェックする処理には、その復号化されたコンテンツに対してハッシュ関数を実行し、ハッシュ結果を生成する動作も含まれる。その後、ハッシュ結果は、予め定められたハッシュ値と比較される。なお、ハッシュ値は、デジタル署名やそれと同様のものなどであってもよい。一例として、信頼性の高いエンティティがハッシュ関数をコンテンツに対して実行することにより、所与のハッシュ値を生成してもよい。その所与のハッシュ値はコンテンツそのものとともに暗号化されてもよく、信頼性の高いエンティティによってシステムメモリ106に提供される。また、当業者にとって明らかなように、1以上の介在するエンティティが、信頼性の高いエンティティからシステムメモリ106に対し暗号化されたプログラムの伝送を完了してもよい。   In operation 224, an authentication routine is preferably performed on the decrypted content. The authentication routine preferably verifies that the content is authentic before execution of the content by the processor 102. In this regard, the process of checking whether the content is authentic includes an operation of executing a hash function on the decrypted content and generating a hash result. Thereafter, the hash result is compared with a predetermined hash value. Note that the hash value may be a digital signature or the like. As an example, a reliable entity may generate a given hash value by performing a hash function on the content. The given hash value may be encrypted along with the content itself and provided to the system memory 106 by a reliable entity. Also, as will be apparent to those skilled in the art, one or more intervening entities may complete the transmission of the encrypted program from the trusted entity to the system memory 106.

その認証プログラムは、コンテンツに対する所与のハッシュ値の生成を目的として信頼性の高いエンティティにより用いられたハッシュ関数と同一のハッシュ関数を実行する能力を備えることができる。認証プログラムは、そのコンテンツに対しハッシュ関数を実行することでハッシュ結果を生成でき、さらにそのハッシュ結果と所与のハッシュ値とを比較できる。もし、ハッシュ結果と所与のハッシュ値とが一致すれば、そのコンテンツは改ざんされておらず、真正であるとみなすことができる。   The authentication program may be capable of executing the same hash function as that used by a trusted entity for the purpose of generating a given hash value for the content. The authentication program can generate a hash result by executing a hash function on the content, and can compare the hash result with a given hash value. If the hash result matches a given hash value, the content has not been tampered with and can be considered authentic.

動作226では、そのコンテンツが真正であるか否かの決定に応じて、処理フローが分岐する。もし、その決定の結果が否定的なものである(コンテンツが真正ではない)場合、処理の流れは適切な動作が行われる失敗状態に進むのが好ましい。適切な動作の例として、認証プロセスの再度の実施、操作者の装置100へのコンテンツの認証失敗を示すメッセージの送信、あるいは、他のそのような動作が挙げられる。もし、動作226での決定の結果が肯定的なものである(コンテンツが真正である)場合、処理の流れは動作228に進むのが好ましい。動作228では、そのプロセッサ102は、記憶媒体110からオペレーティングシステムソフトウエアの認証結果を読み出すのが好ましい。(上述のごとく、この結果は、図3の動作216で、記憶媒体110内に書き込まれたものであり、さらに、その結果はオペレーティングシステムソフトウエアが真正であること、十分にセキュアであること、および/または問題がないこととして証明されたか否かを示すものである。)   In operation 226, the processing flow branches in response to determining whether the content is authentic. If the result of the determination is negative (content is not authentic), the flow of processing preferably proceeds to a failure state where appropriate action is taken. Examples of suitable operations include performing the authentication process again, sending a message indicating failure of content authentication to the operator's device 100, or other such operations. If the result of the determination at act 226 is affirmative (content is authentic), the process flow preferably proceeds to act 228. In operation 228, the processor 102 preferably reads the authentication result of the operating system software from the storage medium 110. (As mentioned above, this result was written into the storage medium 110 in operation 216 of FIG. 3, and the result is that the operating system software is authentic, sufficiently secure, And / or indicates whether it has been proved to be okay.)

動作230において、そのオペレーティングシステムソフトウエアの認証結果がオペレーティングシステムソフトウエアが証明されたことを示すか否かについての決定がなされるのが好ましい。もし、その決定の結果が否定的なものであれば、処理の流れは適切な動作が行われる失敗状態に進むのが好ましい。もし、動作230における決定の結果が肯定的なものであれば、その処理フローは動作232に進むのが好ましい。動作232では、プロセッサ102は、(例えば、それが実行可能なものであれば、)そのコンテンツを実行し、あるいは、(例えば、それが実行不可能であるデータであれば、)そのコンテンツを使用することが好ましい。   In act 230, a determination is preferably made as to whether the authentication result of the operating system software indicates that the operating system software has been certified. If the result of the determination is negative, the flow of processing preferably proceeds to a failure state where an appropriate action is performed. If the result of the determination in operation 230 is positive, the process flow preferably proceeds to operation 232. At operation 232, the processor 102 executes the content (eg, if it is executable) or uses the content (eg, if it is non-executable data). It is preferable to do.

本実施の形態の一以上の態様によれば、処理フローは、動作234、あるいは、動作232におけるコンテンツの使用または実行の後に続く動作236のいずれかに進むのが好ましい。動作234では、そのプロセッサ102は、一以上の処理資源との間でセキュアなセッションを確立するのが好ましい。ここで、オペレーティングシステムソフトウエアの整合性を示すオペレーティングシステムソフトウエアの認証結果(または、状態フラグ)が満足のいくものである(整合性があることを示す)ことをそのプロセッサ102が保証した後に、このセッションが確立されるのが好ましい。アプリケーションプログラムなどのコンテンツの実行により、例えば、ディスクコントローラ(CD、DVDなど)、グラフィックスチップ、ハードディスク(HD)構成要素、チューナー回路、ネットワークインタフェース回路などの外部デバイスを使用できるようになるため、オペレーティングシステムの整合性の認証が行われたときに確立されるセキュアなセッションは、信頼性の高いものになりうる。セキュアなセッションは、プロセッサ102と外部のデバイスとの間で受け渡される情報を暗号化/復号化するための、別の(または同一の)秘密鍵と公開鍵のペアを用いて確立される。なお、ここで、1回限りで使用される鍵(ワンタイムキー)や乱数により生成された鍵(乱数鍵)などの他の鍵も使用できる。さらに、本発明の主旨および範囲を逸脱することなく、そのプロセッサ102と外部のデバイスとの間に、セキュアなセッションに関する他の技術を用いることができる。   According to one or more aspects of this embodiment, the processing flow preferably proceeds to either operation 234 or operation 236 that follows the use or execution of content in operation 232. In operation 234, the processor 102 preferably establishes a secure session with one or more processing resources. Here, after the processor 102 guarantees that the authentication result (or status flag) of the operating system software indicating the consistency of the operating system software is satisfactory (indicating that there is consistency). This session is preferably established. Execution of contents such as application programs enables use of external devices such as disk controllers (CD, DVD, etc.), graphics chips, hard disk (HD) components, tuner circuits, network interface circuits, etc. A secure session established when system integrity authentication is performed can be reliable. A secure session is established using another (or the same) private and public key pair to encrypt / decrypt information passed between the processor 102 and an external device. Here, other keys such as a key that is used only once (one-time key) or a key generated by random numbers (random number key) can also be used. Further, other techniques for secure sessions can be used between the processor 102 and external devices without departing from the spirit and scope of the present invention.

所定のタイミングで、オペレーティングシステムソフトウエアの整合性をチェックして、任意の改ざんまたはウイルスにより、システムおよび/または、外部のデバイスとの任意のセキュアなセッションが危険にさらされることがないことを保証するのが好ましい。動作236では、そのプロセッサ102は、例えば、任意のアイドル時間の間に、あるいは、プログラムの実行を中断することにより、オペレーティングシステムソフトウエアの整合性を証明するのが好ましい。これは、動作212で実施される認証ルーチンと実質的に同一である認証ルーチンの実行を必要とする。例えば、その認証には、オペレーティングシステムソフトウエアに対するハッシュ関数の実行が含まれ、そのハッシュ関数の実行により生じたハッシュ結果は所与のハッシュ値と比較される。   Check the integrity of the operating system software at a given time to ensure that any tampering or virus does not compromise any secure session with the system and / or external devices It is preferable to do this. In operation 236, the processor 102 preferably verifies the integrity of the operating system software during, for example, any idle time or by interrupting program execution. This requires the execution of an authentication routine that is substantially the same as the authentication routine performed in operation 212. For example, the authentication includes performing a hash function on the operating system software, and the hash result resulting from the execution of the hash function is compared to a given hash value.

動作238では、そのオペレーティングシステムソフトウエアの整合性が満足のいくものである(整合性がある)かどうかについての決定が行われるのが好ましい。もし、その決定の結果が否定的なものであれば、処理の流れは適切な動作が行われる失敗状態に進むのが好ましい。もし、動作238における決定の結果が肯定的なものであれば、その処理フローは動作240に進むのが好ましい。動作240では、オペレーティングシステムソフトウエアの整合性が満足のいくものである(整合性がある)ことを示す更新された状態フラグが、記憶媒体110内に保存される。   In act 238, a determination is preferably made as to whether the integrity of the operating system software is satisfactory (consistent). If the result of the determination is negative, the flow of processing preferably proceeds to a failure state where an appropriate action is performed. If the result of the determination in operation 238 is positive, the process flow preferably proceeds to operation 240. In act 240, an updated status flag is stored in storage medium 110 indicating that the integrity of the operating system software is satisfactory (consistent).

動作242では、プロセッサ102による動作手順が続行、例えば、アプリケーションプログラムの実行処理が進行する。なお、動作244では、そのプロセッサ102は、その動作手順の続行の前に、状態フラグをチェックし、その状態フラグが、オペレーティングシステムソフトウエアの整合性が満足のいくものである(整合性がある)ことを示すことを保証する。これに関連して、動作246では、状態フラグがオペレーティングシステムソフトウエアの整合性を証明するものであるか否かについての決定がなされるのが好ましい。もし、その決定の結果が否定的なものであれば、その処理フローは適切な動作が行われる失敗状態に進むのが好ましい。もし、動作246における決定の結果が肯定的なものであれば、その処理フローは、動作248に進むのが好ましい。動作248では、そのプロセッサ102は、動作手順を続行できるのが好ましい。ここで、状態フラグのチェックは、その動作手順に含まれうる、あるいは含まれるようになる一以上の他のプロセッサ(図7において最もよく参照される)に要求するのが好ましい。さらに、動作238〜動作248のプロセスは、そのシステムのセキュリティ対策の効果を増大させるためにしばしば繰り返し行われるのが好ましい。   In the operation 242, the operation procedure by the processor 102 continues, for example, the execution process of the application program proceeds. In operation 244, the processor 102 checks the status flag before continuing the operation procedure, and the status flag is satisfactory for the consistency of the operating system software. ) To show that In this regard, in operation 246, a determination is preferably made as to whether the status flag is a proof of the integrity of the operating system software. If the result of the determination is negative, the process flow preferably proceeds to a failure state where an appropriate operation is performed. If the result of the determination at operation 246 is positive, the process flow preferably proceeds to operation 248. In operation 248, the processor 102 is preferably capable of continuing the operational procedure. Here, the check of the status flag is preferably requested from one or more other processors (most commonly referenced in FIG. 7) that may or may be included in the operating procedure. Furthermore, the process of operations 238-248 is preferably repeated often to increase the effectiveness of the security measures of the system.

図7は、2以上のサブプロセッサ102を有するマルチプロセッサシステム100Aの構成を示す。図1〜図6について上述した概念を、そのマルチプロセッサシステム100A内に適用できる。そのマルチプロセッサシステム100Aは、バス108を介して接続された、複数のプロセッサ102A〜102Dと、それらプロセッサに関連付けられたローカルメモリ104A〜104Dと、メインメモリ106とを備える。4つのプロセッサ102を例として示すが、本発明の主旨および範囲を逸脱しない限り、いかなる数のプロセッサを用いてもよい。プロセッサ102は任意の既知の技術を用いて実装されてもよく、さらにプロセッサのそれぞれの構成は同一であってもよいし、異なってもよい。   FIG. 7 shows a configuration of a multiprocessor system 100A having two or more sub-processors 102. The concepts described above with respect to FIGS. 1-6 can be applied within the multiprocessor system 100A. The multiprocessor system 100A includes a plurality of processors 102A to 102D, local memories 104A to 104D associated with the processors, and a main memory 106 connected via a bus 108. Although four processors 102 are shown as examples, any number of processors may be used without departing from the spirit and scope of the present invention. The processor 102 may be implemented using any known technique, and the configuration of each processor may be the same or different.

1以上のプロセッサ102は、図1のプロセッサ102の能力と構成要素を備えるのが好ましい。他のプロセッサ102はそのような能力を備える必要はないが、すべてのプロセッサ102がそのような能力を備えるのが好ましい。本実施の形態に係る一以上の態様によれば、上述した、オペレーティングシステムソフトウエアの認証、証明、整合性チェックなどを実行するプロセッサ102の数は任意であってもよい。   One or more processors 102 preferably comprise the capabilities and components of processor 102 of FIG. Other processors 102 need not have such capabilities, but preferably all processors 102 have such capabilities. According to one or more aspects of the present embodiment, the number of processors 102 that perform the above-described authentication, certification, consistency check, etc. of operating system software may be arbitrary.

プロセッサ102のそれぞれの構成は同一であってもよいし、異なってもよい。そのプロセッサは、共有(またはシステム)メモリ106からデータを要求するとともにそのデータを操作することで所望の結果を得ることを可能にする任意の既知の技術を用いて実装されてもよい。例えば、プロセッサ102はソフトウエアおよび/またはファームウエアを実行可能な、標準マイクロプロセッサや分散型のマイクロプロセッサなどの任意の既知のマイクロプロセッサを用いることで実装されてもよい。例として、一つ以上のプロセッサ102は、ピクセルデータなどのデータを要求するとともにそのデータを操作可能なグラフィックプロセッサであってもよい。なお、そのピクセルデータには、グレースケール情報や、カラー情報や、テクスチャデータや、ポリゴン情報や、ビデオフレーム情報などが含まれる。   Each configuration of the processor 102 may be the same or different. The processor may be implemented using any known technique that makes it possible to request data from shared (or system) memory 106 and manipulate the data to obtain a desired result. For example, the processor 102 may be implemented using any known microprocessor capable of executing software and / or firmware, such as a standard microprocessor or a distributed microprocessor. By way of example, one or more processors 102 may be graphic processors that request data such as pixel data and are capable of manipulating the data. The pixel data includes gray scale information, color information, texture data, polygon information, video frame information, and the like.

システム100Aの一つ以上のプロセッサ102は、メイン(または管理)プロセッサとして機能する。そのメインプロセッサは他のプロセッサによるデータの処理のスケジューリングと調整を行うことができる。   One or more processors 102 of system 100A function as main (or management) processors. The main processor can schedule and coordinate the processing of data by other processors.

システムメモリ106は、メモリインタフェース回路(図示せず)を通じてプロセッサ102に接続されるダイナミックランダムアクセスメモリ(DRAM)であるのが好ましい。そのシステムメモリ106は、好適にはダイナミックランダムアクセスメモリだが、スタティックランダムアクセスメモリ(SRAM)、磁気ランダムアクセスメモリ(MRAM)、光学メモリ、またはホログラフィックメモリ等の他の手段を用いて実装してもよい。   System memory 106 is preferably dynamic random access memory (DRAM) that is connected to processor 102 through a memory interface circuit (not shown). The system memory 106 is preferably dynamic random access memory, but may be implemented using other means such as static random access memory (SRAM), magnetic random access memory (MRAM), optical memory, or holographic memory. Good.

それぞれのプロセッサ102は好適には、プロセッサコアと、当該コアに関連付けられた、プログラムを実行するためのローカルメモリ104とを含む。これらの構成要素は共通の半導体基板上に一体的に設けられるか、あるいは、設計者の意図により分離されて設けられてもよい。プロセッサコアは好適には、パイプライン処理を用いて実装される。なお、パイプライン処理においては、パイプライン型の方法で論理命令が処理される。そのパイプラインは命令が処理される任意の数のステージに分割されるが、一般的には、一つ以上の命令をフェッチするステージ、その命令をデコードするステージ、命令間の依存性をチェックするステージ、その命令を出力するステージ、その命令を実行するステージを有する。この点に関連して、そのプロセッサコアには、命令バッファ、命令デコード回路、依存性チェック回路、命令出力回路、および実行段階が含まれる。   Each processor 102 preferably includes a processor core and a local memory 104 associated with the core for executing a program. These components may be provided integrally on a common semiconductor substrate, or may be provided separately according to the designer's intention. The processor core is preferably implemented using pipeline processing. In pipeline processing, logical instructions are processed by a pipeline type method. The pipeline is divided into any number of stages in which instructions are processed, but in general, it checks for dependencies between instructions, a stage that fetches one or more instructions, a stage that decodes the instructions A stage for outputting the instruction, and a stage for executing the instruction; In this regard, the processor core includes an instruction buffer, an instruction decode circuit, a dependency check circuit, an instruction output circuit, and an execution stage.

各ローカルメモリ104はバスを介して、そのローカルメモリ104に関連付けられたプロセッサコア102にそれぞれ接続され、プロセッサコアと同一チップ(同一の半導体基板)上に設けられるのが好ましい。ローカルメモリ104は、従来のハードウェアキャッシュメモリではないことが好ましい。なお、そのローカルメモリ104には、ハードウェアキャッシュメモリ機能を実現するための、チップ内蔵またはチップ外に設けられたハードウェアキャッシュ回路、キャッシュレジスタ、キャッシュメモリコントローラなどは存在しない。チップ上の実装面積が限られているので、ローカルメモリ104のサイズは、共有メモリ106のサイズよりはるかに小さい。   Each local memory 104 is preferably connected to a processor core 102 associated with the local memory 104 via a bus and provided on the same chip (same semiconductor substrate) as the processor core. The local memory 104 is preferably not a conventional hardware cache memory. Note that the local memory 104 does not include a hardware cache circuit, a cache register, a cache memory controller, or the like that is built in or outside the chip for realizing a hardware cache memory function. Since the mounting area on the chip is limited, the size of the local memory 104 is much smaller than the size of the shared memory 106.

プロセッサ102は、プログラムの実行とデータの操作のために、バスシステム108を介してシステムメモリ106からそれぞれのローカルメモリ104にデータ(プログラムデータを含みうる)をコピーするためのデータアクセスを要求することが好ましい。データアクセスを容易にするメカニズムとして、例えばダイレクト・メモリ・アクセス(DMA)技術などの任意の既知の技術を用いてもよい。この機能は好適には、メモリインタフェース回路により実行される。   The processor 102 requests data access to copy data (which may include program data) from the system memory 106 to the respective local memory 104 via the bus system 108 for program execution and data manipulation. Is preferred. Any known technology such as direct memory access (DMA) technology may be used as a mechanism to facilitate data access. This function is preferably performed by a memory interface circuit.

本発明に係る少なくとも一つの別の態様によれば、上述した方法および装置は、例えば、図に示す適切なハードウエアを用いて実現できる。そのようなハードウエアは任意の既知の技術を用いて実装できる。なお、その既知の技術として、例えば、標準のデジタル回路、ソフトウエアおよび/またはファームウエアプログラムを実行できる任意の既知のプロセッサ、プログラム可能な読み出し専用メモリ群(PROM群)、プログラム可能なアレイ論理デバイス群(PAL群)などの一以上のプログラム可能なデジタルデバイスまたはシステムが挙げられる。さらに図内の装置は、ある機能ブロックに分割されて示されているが、そのようなブロックは別々の回路で実装でき、および/または、一以上の機能ユニットに結合させることができる。さらに、本発明に係る様々な態様は、適切な記憶メディアや(フレキシブルディスク、メモリチップなどの)持ち運び可能な、および/または配布のためのメディア上に保存可能なソフトウエアおよび/またはファームウエアプログラムにより実装される。   According to at least one other aspect of the invention, the method and apparatus described above can be implemented using, for example, suitable hardware as shown in the figures. Such hardware can be implemented using any known technique. The known techniques include, for example, any known processor capable of executing standard digital circuits, software and / or firmware programs, programmable read-only memory groups (PROM groups), programmable array logic devices. One or more programmable digital devices or systems, such as a group (PAL group). Furthermore, although the apparatus in the figure is shown divided into certain functional blocks, such blocks can be implemented in separate circuits and / or can be coupled to one or more functional units. Furthermore, various aspects of the present invention provide software and / or firmware programs that can be carried on suitable storage media, portable media (such as flexible disks, memory chips, etc.) and / or stored on media for distribution. Implemented by.

ここでは本発明の具体例について説明したが、これらの実施例は単に本発明の趣旨と応用を示すものである。したがって、請求項により定義された本発明の主旨および範囲から逸脱しないかぎり、上述した実施形態に対して様々な変更を加えることができる。   Although specific examples of the present invention have been described herein, these examples merely illustrate the spirit and application of the present invention. Accordingly, various modifications can be made to the above-described embodiments without departing from the spirit and scope of the invention as defined by the claims.

実施の形態の一つ以上の態様に係るプロセッサシステムの構成を示す図である。It is a figure showing the composition of the processor system concerning one or more modes of an embodiment. 実施の形態の一つ以上の態様に係る図1のプロセッサシステムにより実行される処理ステップの流れを示す図である。FIG. 2 is a diagram showing a flow of processing steps executed by the processor system of FIG. 1 according to one or more aspects of the embodiment. 実施の形態の一つ以上の態様に係る図1のプロセッサシステムにより実行される別の処理ステップの流れを示す図である。FIG. 6 is a diagram illustrating a flow of another processing step executed by the processor system of FIG. 1 according to one or more aspects of the embodiment. 実施の形態の一つ以上の態様に係る図1のプロセッサシステムにより実行されるさらなる別の処理ステップの流れを示す図である。FIG. 6 is a diagram illustrating a flow of still another processing step executed by the processor system of FIG. 1 according to one or more aspects of the embodiment. 実施の形態の一つ以上の態様に係る図1のプロセッサシステムにより実行されるさらなる別の処理ステップの流れを示す図である。FIG. 6 is a diagram illustrating a flow of still another processing step executed by the processor system of FIG. 1 according to one or more aspects of the embodiment. 実施の形態の一つ以上の態様に係る図1のプロセッサシステムにより実行されるさらなる別の処理ステップの流れを示す図である。FIG. 6 is a diagram illustrating a flow of still another processing step executed by the processor system of FIG. 1 according to one or more aspects of the embodiment. 2以上のサブプロセッサを有するマルチプロセッサシステムであって、それらサブプロセッサのうちの1以上のサブプロセッサが、実施の形態の1つ以上の別の態様に係る図1のプロセッサの能力を備えうるマルチプロセッサシステムの構成を示す図である。A multiprocessor system having two or more subprocessors, wherein one or more of the subprocessors may comprise the capabilities of the processor of FIG. 1 according to one or more other aspects of the embodiments. It is a figure which shows the structure of a processor system.

符号の説明Explanation of symbols

100 プロセッサシステム、 100A マルチプロセッサシステム、 102,102A,102B,102C,102D プロセッサ、 104,104A,104B,104C,104D ローカルメモリ、 106 メインメモリ,システムメモリ、 110 記憶媒体。   100 processor system, 100A multiprocessor system, 102, 102A, 102B, 102C, 102D processor, 104, 104A, 104B, 104C, 104D local memory, 106 main memory, system memory, 110 storage medium.

Claims (33)

自身に関連付けられたローカルメモリを含むプロセッサであって、前記ローカルメモリ内での使用を目的としてメインメモリからデータを読み出すことができるよう前記メインメモリに動作可能に接続されうる前記プロセッサが、オペレーティングシステムソフトウエアを実行する前に、そのオペレーティングシステムソフトウエアに対して認証処理を行って、そのオペレーティングシステムソフトウエアが真性であるか否かを判断するステップと、
前記オペレーティングシステムソフトウエアが真性であるか否かを示す状態フラグを保存するステップと、
前記メインメモリからの前記データの実行の前に、前記状態フラグをチェックし、前記状態フラグが、前記オペレーティングシステムソフトウエアが真性であることを示していることを保証するステップと、
を含むことを特徴とする方法。
A processor including a local memory associated with the processor, the processor that can be operatively connected to the main memory so that data can be read from the main memory for use in the local memory. Performing an authentication process on the operating system software before executing the software to determine whether the operating system software is authentic ;
Storing a status flag indicating whether the operating system software is authentic ;
Checking the status flag prior to execution of the data from the main memory to ensure that the status flag indicates that the operating system software is authentic ;
A method comprising the steps of:
前記状態フラグのチェックの前に、データに対して認証処理を行って、そのデータが真性であるか否かを判断するステップをさらに含むことを特徴とする請求項1に記載の方法。 The method according to claim 1, further comprising: performing an authentication process on the data before checking the status flag to determine whether the data is authentic . 前記オペレーティングシステムソフトウエアが真性であるか否かを判断するステップは、
外部から開始されたところの、前記プロセッサに対するデータの読み出しまたは書き込みの要求は受け付けないが、内部から開始されたところのデータ転送は受け付けるセキュアな動作モードに入るステップと、
復号化プログラムを記憶媒体から読み出し、前記プロセッサのローカルメモリ内に読み込むステップと、
暗号化された認証プログラムを前記プロセッサのローカルメモリ内に読み込むステップと、
前記復号化プログラムを用いて、前記暗号化された認証プログラムを復号化するステップと、
秘密鍵と公開鍵のペアのうちの秘密鍵を用いて暗号化された前記オペレーティングシステムソフトウエアを、前記ローカルメモリ内に読み込むステップと、
前記認証プログラムを用いて、前記オペレーティングシステムソフトウエアが真性であるか否かを判断するステップと、
を含むことを特徴とする請求項1または2に記載の方法。
Determining whether the operating system software is authentic ;
Entering a secure operation mode that does not accept data read or write requests to the processor that was initiated externally, but accepts data transfers that were initiated internally;
Reading a decryption program from the storage medium and reading it into the local memory of the processor;
Reading an encrypted authentication program into the local memory of the processor;
Decrypting the encrypted authentication program using the decryption program;
Reading the operating system software encrypted using a private key of a private key and public key pair into the local memory;
Using the authentication program to determine whether the operating system software is authentic ;
The method according to claim 1 or 2, comprising:
前記認証プログラムと、前記秘密鍵と公開鍵のペアのうちの公開鍵とを用いて、前記暗号化されたオペレーティングシステムソフトウエアを復号化するステップと、
前記オペレーティングシステムソフトウエアに対してハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することにより、前記オペレーティングシステムソフトウエアが真性であるか否かを判断するステップと、
をさらに含むことを特徴とする請求項3に記載の方法。
Decrypting the encrypted operating system software using the authentication program and the public key of the private key and public key pair;
Whether the operating system software is authentic by generating a hash result by executing a hash function on the operating system software, and comparing the hash result with a predetermined hash value A step of determining whether or not
The method of claim 3, further comprising:
前記状態フラグのチェックの前に、データに対して認証処理を行って、そのデータが真性であるか否かを判断するステップをさらに含むことを特徴とする請求項4に記載の方法。 5. The method of claim 4, further comprising: performing an authentication process on the data before the status flag check to determine whether the data is authentic . 前記データが真性であるか否かを判断するステップは、
秘密鍵と公開鍵のペアのうちの秘密鍵を用いて暗号化されたデータを前記ローカルメモリ内に読み込むステップと、
前記認証プログラムを用いて前記データを認証するステップと、
を含むことを特徴とする請求項5に記載の方法。
Determining whether the data is authentic ;
Reading into the local memory data encrypted using a private key of a private key and public key pair;
Authenticating the data using the authentication program;
The method of claim 5 comprising:
前記認証プログラムと、前記秘密鍵と公開鍵のペアのうちの公開鍵とを用いて、前記暗号化されたデータを復号化するステップと、
前記データに対してハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することにより、前記データが真性であるか否かを判断するステップと、
前記ハッシュ結果と前記予め定められたハッシュ値とが一致した場合に、前記データを実行するステップと、
をさらに含むことを特徴とする請求項6に記載の方法。
Decrypting the encrypted data using the authentication program and a public key of the private key / public key pair;
Determining whether the data is authentic by generating a hash result by executing a hash function on the data, and comparing the hash result with a predetermined hash value; ,
Executing the data when the hash result matches the predetermined hash value;
The method of claim 6 further comprising:
マルチプロセッサシステムの一部である他のプロセッサにおける動作手順の一部として、状態フラグをチェックするステップと、
前記状態フラグが前記オペレーティングシステムソフトウエアが真性であることを示していることを保証した後に限り、前記他のプロセッサ前記動作手順を進行するステップと、
をさらに含むことを特徴とする請求項1に記載の方法。
Checking a status flag as part of an operating procedure in another processor that is part of a multiprocessor system;
A step in which the state flag is only after the operating system software is to ensure that the identification information indicates that the intrinsic, the other processor proceeds to the operation procedure,
The method of claim 1 further comprising:
前記オペレーティングシステムソフトウエアが真性であるか否かを所定のタイミングで判断して、前記状態フラグを更新するステップと、
動作手順を進行する前に、前記状態フラグを所定のタイミングでチェックして前記状態フラグが前記オペレーティングシステムソフトウエアが真性であることを示していることを保証するステップと、
をさらに含むことを特徴とする請求項1から8のいずれかに記載の方法。
Determining whether the operating system software is genuine at a predetermined timing, and updating the status flag;
Checking the status flag at a predetermined timing before proceeding with an operating procedure to ensure that the status flag indicates that the operating system software is authentic ;
The method according to claim 1, further comprising:
自身に関連付けられたローカルメモリを含むプロセッサであって、前記ローカルメモリ内での使用を目的としてメインメモリからデータを読み出すことができるよう前記メインメモリに動作可能に接続されうる前記プロセッサが、オペレーティングシステムソフトウエアを実行する前に、そのオペレーティングシステムソフトウエアに対して認証処理を行って、そのオペレーティングシステムソフトウエアが真性であるか否かを判断するステップと、
前記オペレーティングシステムソフトウエアが真性であるか否かを示す状態フラグを保存するステップと、
前記データを実行する前にまたは所定の処理資源を使用する前に、前記状態フラグをチェックし、前記状態フラグが、前記オペレーティングシステムソフトウエアが真性であることを示していることを保証するステップと、
を含むことを特徴とする方法。
A processor including a local memory associated with the processor, the processor that can be operatively connected to the main memory so that data can be read from the main memory for use in the local memory. Performing an authentication process on the operating system software before executing the software to determine whether the operating system software is authentic ;
Storing a status flag indicating whether the operating system software is authentic ;
Checking the status flag before executing the data or using a predetermined processing resource to ensure that the status flag indicates that the operating system software is authentic ; ,
A method comprising the steps of:
前記処理資源は、不揮発性メモリのサブシステムと一以上の機能回路とを含むことを特徴とする請求項10に記載の方法。   The method of claim 10, wherein the processing resources include a non-volatile memory subsystem and one or more functional circuits. 前記状態フラグが前記オペレーティングシステムソフトウエアが真性であることを示していることを保証した後に、一以上の処理資源との間でセキュアなセッションを確立するステップをさらに含むことを特徴とする請求項10に記載の方法。 The method further comprises establishing a secure session with one or more processing resources after ensuring that the status flag indicates that the operating system software is authentic. 10. The method according to 10. 前記一以上の処理資源との間で確立されたセキュアなセッションは、鍵のペアを用いて、前記プロセッサと前記一以上の処理資源との間で共有されるデータを暗号化するステップを含むことを特徴とする請求項12に記載の方法。 Secure session established between the one or more processing resources, using a key pair, including the step of encrypting the data to be shared between the one or more processing resources with the processor The method according to claim 12. 前記状態フラグをチェックする前に、前記データに対して認証処理を行って、そのデータが真性であるか否かを判断するステップと、
前記データが真性であることが保証され、かつ、前記状態フラグが前記オペレーティングシステムソフトウエアが真性であることを示している後に限り、動作手順を進行するステップと、
をさらに含むことを特徴とする請求項10から13のいずれかに記載の方法。
Performing an authentication process on the data before checking the status flag to determine whether the data is authentic ;
Proceeding the operational procedure only after the data is guaranteed to be authentic and the status flag indicates that the operating system software is authentic ;
The method according to claim 10, further comprising:
自身に関連付けられたローカルメモリを含むプロセッサであって、前記ローカルメモリ内での使用を目的としてメインメモリからデータを読み出すことができるよう前記メインメモリに動作可能に接続されうる前記プロセッサが、オペレーティングシステムソフトウエアの実行前および/または実行後に、所定のタイミングで、そのオペレーティングシステムソフトウエアに対して認証処理を行って、そのオペレーティングシステムソフトウエアが真性であるか否かを判断するステップと、
前記オペレーティングシステムソフトウエアが真性であるか否かを示す状態フラグを保存するステップと、
動作手順を進行する前に、前記状態フラグをチェックし、前記状態フラグが、前記オペレーティングシステムソフトウエアが真性であることを示していることを所定のタイミングで保証するステップと、
を含むことを特徴とする方法。
A processor including a local memory associated with the processor, the processor that can be operatively connected to the main memory so that data can be read from the main memory for use in the local memory. Performing an authentication process on the operating system software at a predetermined timing before and / or after execution of the software to determine whether or not the operating system software is authentic ;
Storing a status flag indicating whether the operating system software is authentic ;
Checking the status flag before proceeding with an operating procedure, and ensuring at a predetermined timing that the status flag indicates that the operating system software is authentic ;
A method comprising the steps of:
少なくとも一つのプロセッサと、前記プロセッサに関連付けられたローカルメモリと、復号化プログラムを有する記憶媒体とを含む装置であって、前記プロセッサは、メインメモリに動作可能に接続されうるとともに、前記ローカルメモリ内での使用を目的として前記メインメモリから少なくともあるデータを読み出すことを要求可能であり、
前記プロセッサは、
前記プロセッサによるオペレーティングシステムソフトウエアの実行前に、そのオペレーティングシステムソフトウエアに対して認証処理を行って、そのオペレーティングシステムソフトウエアが真性であるか否かを判断する機能と、
前記オペレーティングシステムソフトウエアが真性であるか否かを示す状態フラグを保存する機能と、
前記データを実行する前に、前記状態フラグをチェックし、前記状態フラグが、前記オペレーティングシステムソフトウエアが真性であることを示していることを保証する機能と、
を含むことを特徴とする装置。
An apparatus comprising at least one processor, a local memory associated with the processor, and a storage medium having a decoding program, the processor being operatively connected to a main memory and in the local memory Can be requested to read at least some data from the main memory for use in
The processor is
A function of performing an authentication process on the operating system software before execution of the operating system software by the processor to determine whether the operating system software is authentic ;
A function for storing a status flag indicating whether the operating system software is authentic ;
A function to check the status flag before executing the data and to ensure that the status flag indicates that the operating system software is authentic ;
The apparatus characterized by including.
前記プロセッサはさらに、前記状態フラグをチェックする前に、データに対して認証処理を行って、そのデータが真性であるか否かを判断する機能を含むことを特徴とする請求項16に記載の装置。 The processor according to claim 16, further comprising a function of performing an authentication process on the data and determining whether or not the data is authentic before checking the status flag. apparatus. 前記プロセッサは、
外部から開始されたところの、前記プロセッサに対するデータの読み出しまたは書き込みの要求は受け付けないが、内部から開始されたところのデータ転送は受け付けるセキュアな動作モードに入るステップと、
復号化プログラムを記憶媒体から読み出し、前記プロセッサのローカルメモリ内に読み込むステップと、
暗号化された認証プログラムを前記プロセッサのローカルメモリ内に読み込むステップと、
前記復号化プログラムを用いて、前記暗号化された認証プログラムを復号化するステップと、
秘密鍵と公開鍵のペアのうちの秘密鍵を用いて暗号化された前記オペレーティングシステムソフトウエアを、前記ローカルメモリ内に読み込むステップと、
前記認証プログラムを用いて、前記オペレーティングシステムソフトウエアを認証するステップと、
により、前記オペレーティングシステムソフトウエアが真性であるか否かを判断することを特徴とする請求項16または17に記載の装置。
The processor is
Entering a secure operation mode that does not accept data read or write requests to the processor that was initiated externally, but accepts data transfers that were initiated internally;
Reading a decryption program from the storage medium and reading it into the local memory of the processor;
Reading an encrypted authentication program into the local memory of the processor;
Decrypting the encrypted authentication program using the decryption program;
Reading the operating system software encrypted using a private key of a private key and public key pair into the local memory;
Authenticating the operating system software using the authentication program;
The apparatus according to claim 16 or 17, wherein it is determined whether or not the operating system software is genuine .
前記プロセッサはさらに、
前記認証プログラムと、前記秘密鍵と公開鍵のペアのうちの公開鍵とを用いて、前記暗号化されたオペレーティングシステムソフトウエアを復号化する機能と、
前記オペレーティングシステムソフトウエアに対してハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することにより、前記オペレーティングシステムソフトウエアが真性であるか否かを判断する機能と、
前記ハッシュ結果と前記予め定められたハッシュ値とが一致した場合に、前記オペレーティングシステムソフトウエアを実行する機能と、
を含むことを特徴とする請求項18に記載の装置。
The processor further includes:
A function of decrypting the encrypted operating system software using the authentication program and a public key of the private key and public key pair;
Whether the operating system software is authentic by generating a hash result by executing a hash function on the operating system software, and comparing the hash result with a predetermined hash value A function to determine whether
A function of executing the operating system software when the hash result matches the predetermined hash value;
The apparatus of claim 18, comprising:
前記プロセッサはさらに、前記状態フラグをチェックする前に、データに対して認証処理を行って、そのデータが真性であるか否かを判断する機能をさらに含むことを特徴とする請求項19に記載の装置。 The processor according to claim 19, further comprising a function of performing an authentication process on the data and determining whether or not the data is authentic before checking the status flag. Equipment. 前記プロセッサは、
秘密鍵と公開鍵のペアのうちの秘密鍵を用いて暗号化されたデータを前記ローカルメモリ内に読み込むステップと、
前記認証プログラムを用いて前記データを認証するステップと、
により、前記データが真性であるか否かを判断することを特徴とする請求項20に記載の装置。
The processor is
Reading into the local memory data encrypted using a private key of a private key and public key pair;
Authenticating the data using the authentication program;
21. The apparatus of claim 20, wherein the apparatus determines whether the data is authentic .
前記プロセッサはさらに、
前記認証プログラムと、前記秘密鍵と公開鍵のペアのうちの公開鍵とを用いて、前記暗号化されたデータを復号化する機能と、
前記データに対してハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することにより、前記データが真性であるか否かを判断する機能と、
前記ハッシュ結果と前記予め定められたハッシュ値とが一致した場合に、前記データを実行する機能と、
を含むことを特徴とする請求項21に記載の装置。
The processor further includes:
A function of decrypting the encrypted data using the authentication program and a public key of the private key and public key pair;
Generating a hash result by executing a hash function on the data, and comparing the hash result with a predetermined hash value to determine whether or not the data is authentic ; ,
A function of executing the data when the hash result matches the predetermined hash value;
The apparatus of claim 21, comprising:
前記プロセッサはさらに、
前記オペレーティングシステムソフトウエアが真性であるか否かを所定のタイミングで判断して、前記状態フラグを更新する機能と、
動作手順の進行前に、前記状態フラグを所定のタイミングでチェックし、前記状態フラグが、前記オペレーティングシステムソフトウエアが真性であることを示していることを保証する機能と、
を含むことを特徴とする請求項16から22のいずれかに記載の装置。
The processor further includes:
A function of determining whether the operating system software is genuine at a predetermined timing and updating the status flag;
A function of checking the status flag at a predetermined timing before the operation procedure proceeds and ensuring that the status flag indicates that the operating system software is authentic ;
23. A device according to any of claims 16 to 22, characterized in that
マルチプロセッサシステム内の複数の前記プロセッサのうち任意のプロセッサは、
動作手順の一部として状態フラグをチェックする機能と、
前記状態フラグが前記オペレーティングシステムソフトウエアが真性であることを示していることを保証した後に限り、前記動作手順を進行する機能と、
を含むことを特徴とする請求項16に記載の装置。
An arbitrary processor among the plurality of processors in the multiprocessor system is
The ability to check the status flag as part of the operating procedure;
A function of proceeding with the operating procedure only after the status flag ensures that the operating system software is authentic ; and
The apparatus of claim 16, comprising:
少なくとも一つのプロセッサと、前記プロセッサに関連付けられたローカルメモリと、復号化プログラムを有する記憶媒体とを含むシステムであって、前記プロセッサは、メインメモリに動作可能に接続されうるとともに、前記ローカルメモリ内での使用を目的として前記メインメモリから少なくともあるデータを読み出すことを要求可能であり、
前記プロセッサは、
オペレーティングシステムソフトウエアの実行前に、そのオペレーティングシステムソフトウエアに対して認証処理を行って、そのオペレーティングシステムソフトウエアが真性であるか否かを判断する機能と、
前記オペレーティングシステムソフトウエアが真性であるか否かを示す状態フラグを保存する機能と、
前記データを実行する前にまたは所定の処理資源を使用する前に、前記状態フラグをチェックし、前記状態フラグが、前記オペレーティングシステムソフトウエアが真性であることを示していることを保証する機能と、
を含むことを特徴とするシステム。
A system comprising at least one processor, a local memory associated with the processor, and a storage medium having a decryption program, the processor being operatively connected to a main memory and in the local memory Can be requested to read at least some data from the main memory for use in
The processor is
A function of performing an authentication process on the operating system software before executing the operating system software to determine whether the operating system software is genuine ;
A function for storing a status flag indicating whether the operating system software is authentic ;
A function of checking the status flag before executing the data or using a predetermined processing resource to ensure that the status flag indicates that the operating system software is authentic ; ,
A system characterized by including.
前記処理資源は、不揮発性メモリのサブシステムと一以上の機能回路とを含むことを特徴とする請求項25に記載のシステム。   The system of claim 25, wherein the processing resources include a non-volatile memory subsystem and one or more functional circuits. 前記プロセッサはさらに、前記状態フラグが前記オペレーティングシステムソフトウエアが真性であることを示していることを保証した後に、一以上の処理資源との間でセキュアなセッションを確立する機能を含むことを特徴とする請求項25に記載のシステム。 The processor further includes a function of establishing a secure session with one or more processing resources after the status flag ensures that the operating system software is authentic. The system according to claim 25. 前記プロセッサと前記一以上の処理資源との間で確立されたセキュアなセッションは、鍵のペアを用いて、その両者の間で共有されるデータを暗号化するステップを含むことを特徴とする請求項27に記載のシステム。   A secure session established between the processor and the one or more processing resources includes encrypting data shared between the two using a key pair. Item 28. The system according to Item 27. 前記状態フラグをチェックする前に、前記データが真性であるか否かを判断する機能と、
前記データが真性であることが保証され、かつ、前記状態フラグが前記オペレーティングシステムソフトウエアが真性であることを示している後に限り、動作手順を進行する機能と、
をさらに含むことを特徴とする請求項25から28のいずれかに記載のシステム。
A function of determining whether the data is authentic before checking the status flag;
A function to proceed with the operating procedure only after the data is guaranteed to be authentic and the status flag indicates that the operating system software is authentic ;
The system according to any one of claims 25 to 28, further comprising:
プロセッサによる動作の実行を可能にするソフトウエアプログラムであって、
前記動作は、
自身に関連付けられたローカルメモリを含むプロセッサであって、前記ローカルメモリ内での使用を目的としてメインメモリからデータを読み出すことができるよう前記メインメモリに動作可能に接続されうる前記プロセッサが、オペレーティングシステムソフトウエアを実行する前に、そのオペレーティングシステムソフトウエアに対して認証処理を行って、そのオペレーティングシステムソフトウエアが真性であるか否かを判断するステップと、
前記オペレーティングシステムソフトウエアが真性であるか否かを示す状態フラグを保存するステップと、
前記データを実行する前に、前記状態フラグをチェックし、前記状態フラグが、前記オペレーティングシステムソフトウエアが真性であることを示していることを保証するステップと、
を含むことを特徴とするソフトウエアプログラム。
A software program that enables a processor to execute an operation,
The operation is
A processor including a local memory associated with the processor, the processor that can be operatively connected to the main memory so that data can be read from the main memory for use in the local memory. Performing an authentication process on the operating system software before executing the software to determine whether the operating system software is authentic ;
Storing a status flag indicating whether the operating system software is authentic ;
Checking the status flag before executing the data to ensure that the status flag indicates that the operating system software is authentic ;
A software program characterized by including:
プロセッサによる動作の実行を可能にするソフトウエアプログラムであって、
前記動作は、
自身に関連付けられたローカルメモリを含むプロセッサであって、前記ローカルメモリ内での使用を目的としてメインメモリからデータを読み出すことができるよう前記メインメモリに動作可能に接続されうる前記プロセッサが、オペレーティングシステムソフトウエアを実行する前に、そのオペレーティングシステムソフトウエアに対して認証処理を行って、そのオペレーティングシステムソフトウエアが真性であるか否かを判断するステップと、
前記オペレーティングシステムソフトウエアが真性であるか否かを示す状態フラグを保存するステップと、
前記データを実行する前にまたは所定の処理資源を使用する前に、前記状態フラグをチェックし、前記状態フラグが、前記オペレーティングシステムソフトウエアが真性であることを示していることを保証するステップと、
を含むことを特徴とするソフトウエアプログラム。
A software program that enables a processor to execute an operation,
The operation is
A processor including a local memory associated with the processor, the processor that can be operatively connected to the main memory so that data can be read from the main memory for use in the local memory. Performing an authentication process on the operating system software before executing the software to determine whether the operating system software is authentic ;
Storing a status flag indicating whether the operating system software is authentic ;
A step before using or predetermined processing resources before performing the data, checks the status flag, the status flag is the operating system software to ensure that the identification information indicates that the intrinsic ,
A software program characterized by including:
プロセッサによる動作の実行を可能にするソフトウエアプログラムであって、
前記動作は、
自身に関連付けられたローカルメモリを含むプロセッサであって、前記ローカルメモリ内での使用を目的としてメインメモリからデータを読み出すことができるよう前記メインメモリに動作可能に接続されうる前記プロセッサが、オペレーティングシステムソフトウエアを実行する前、および/または実行した後の所定のタイミングで、そのオペレーティングシステムソフトウエアに対して認証処理を行って、そのオペレーティングシステムソフトウエアが真性であるか否かを判断するステップと、
前記オペレーティングシステムソフトウエアが真性であるか否かを示す状態フラグを保存するステップと、
動作手順を進行する前に、前記状態フラグをチェックし、前記状態フラグが、前記オペレーティングシステムソフトウエアが真性であることを示していることを所定のタイミングで保証するステップと、
を含むことを特徴とするソフトウエアプログラム。
A software program that enables a processor to execute an operation,
The operation is
A processor including a local memory associated with the processor, the processor that can be operatively connected to the main memory so that data can be read from the main memory for use in the local memory. at a predetermined timing after the previous, and / or execution of executing software, performs an authentication process for the operating system software, the steps of the operating system software to determine whether the intrinsic ,
Storing a status flag indicating whether the operating system software is authentic ;
Checking the status flag before proceeding with an operating procedure, and ensuring at a predetermined timing that the status flag indicates that the operating system software is authentic ;
A software program characterized by including:
請求項30から請求項32のいずれかのソフトウエアプログラムを格納する記録媒体。   A recording medium for storing the software program according to any one of claims 30 to 32.
JP2006024770A 2005-02-07 2006-02-01 Method and apparatus for implementing a secure session between a processor and an external device Expired - Fee Related JP4522372B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US65075505P 2005-02-07 2005-02-07

Publications (2)

Publication Number Publication Date
JP2006221631A JP2006221631A (en) 2006-08-24
JP4522372B2 true JP4522372B2 (en) 2010-08-11

Family

ID=36649125

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006024770A Expired - Fee Related JP4522372B2 (en) 2005-02-07 2006-02-01 Method and apparatus for implementing a secure session between a processor and an external device

Country Status (3)

Country Link
US (1) US20060179324A1 (en)
JP (1) JP4522372B2 (en)
WO (1) WO2006082994A2 (en)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112006001793T5 (en) * 2005-06-22 2008-05-08 Discretix Technologies Ltd. A system, apparatus and method of selectively allowing host processor access to host-executable code
US9177153B1 (en) * 2005-10-07 2015-11-03 Carnegie Mellon University Verifying integrity and guaranteeing execution of code on untrusted computer platform
JP4795812B2 (en) 2006-02-22 2011-10-19 富士通セミコンダクター株式会社 Secure processor
US8356361B2 (en) * 2006-11-07 2013-01-15 Spansion Llc Secure co-processing memory controller integrated into an embedded memory subsystem
CA2618544C (en) * 2007-01-16 2015-07-21 Bally Gaming, Inc. Rom bios based trusted encrypted operating system
US8429389B2 (en) 2007-01-16 2013-04-23 Bally Gaming, Inc. ROM BIOS based trusted encrypted operating system
US8132233B2 (en) * 2007-02-05 2012-03-06 Hewlett-Packard Development Company, L.P. Dynamic network access control method and apparatus
FR2913122B1 (en) * 2007-02-22 2010-10-15 Airbus France AUTOMATIC RESTORING INFORMATION SYSTEM
US7987349B2 (en) * 2007-06-29 2011-07-26 Intel Corporation Encryption acceleration
WO2009013831A1 (en) * 2007-07-26 2009-01-29 Panasonic Corporation Information processing terminal and falsification verification method
JP2009070327A (en) * 2007-09-18 2009-04-02 Panasonic Corp Information terminal, and method for controling the same
US7865712B2 (en) * 2007-12-26 2011-01-04 Intel Corporation Method and apparatus for booting a processing system
US7788433B2 (en) * 2008-05-24 2010-08-31 Via Technologies, Inc. Microprocessor apparatus providing for secure interrupts and exceptions
US8819839B2 (en) * 2008-05-24 2014-08-26 Via Technologies, Inc. Microprocessor having a secure execution mode with provisions for monitoring, indicating, and managing security levels
US8219772B2 (en) * 2009-07-02 2012-07-10 Stmicroelectronics (Research & Development) Limited Loading secure code into a memory
US9202015B2 (en) 2009-12-31 2015-12-01 Intel Corporation Entering a secured computing environment using multiple authenticated code modules
WO2011114621A1 (en) * 2010-03-19 2011-09-22 パナソニック株式会社 Program executing device, information processing method, information processing program, recording medium, and integrated circuit
WO2013012436A1 (en) 2011-07-18 2013-01-24 Hewlett-Packard Development Company, L.P. Reset vectors for boot instructions
KR102068485B1 (en) 2012-11-30 2020-01-21 삼성전자주식회사 Nonvolatile memory module and method for operating thereof
US9070251B2 (en) * 2013-03-08 2015-06-30 Igt Multi-tiered static chain of trust
JP6244759B2 (en) * 2013-09-10 2017-12-13 株式会社ソシオネクスト Secure boot method, semiconductor device, and secure boot program
US9390258B2 (en) * 2014-07-16 2016-07-12 General Electric Company Systems and methods for verifying the authenticity of an application during execution
US10311236B2 (en) * 2016-11-22 2019-06-04 Advanced Micro Devices, Inc. Secure system memory training
JP7019976B2 (en) * 2017-06-26 2022-02-16 大日本印刷株式会社 Secure element, computer program, device, OS boot system and OS boot method
WO2020047351A1 (en) * 2018-08-31 2020-03-05 Fungible, Inc. Rapidly establishing a chain of trust in a computing system
US11269986B2 (en) * 2018-10-26 2022-03-08 STMicroelectronics (Grand Ouest) SAS Method for authenticating a program and corresponding integrated circuit
EP3792802B1 (en) * 2019-09-11 2022-11-09 Secure Thingz Limited A processor system with a communication interface

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5937063A (en) * 1996-09-30 1999-08-10 Intel Corporation Secure boot
JP2002287978A (en) * 2000-11-22 2002-10-04 Microsoft Corp Method and system for safely initializing code in computer
JP2002351850A (en) * 2001-03-22 2002-12-06 Sony Computer Entertainment Inc Data processing method on processor and data processing system
WO2003058411A1 (en) * 2002-01-08 2003-07-17 Ntt Docomo, Inc. Content delivery method and content delivery system
US20030163723A1 (en) * 2002-02-25 2003-08-28 Kozuch Michael A. Method and apparatus for loading a trustable operating system
JP2003280989A (en) * 2002-03-20 2003-10-03 Toshiba Corp Internal memory type tamper-resistant processor and secrecy protection method
US20040003321A1 (en) * 2002-06-27 2004-01-01 Glew Andrew F. Initialization of protected system

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379342A (en) * 1993-01-07 1995-01-03 International Business Machines Corp. Method and apparatus for providing enhanced data verification in a computer system
US5491788A (en) * 1993-09-10 1996-02-13 Compaq Computer Corp. Method of booting a multiprocessor computer where execution is transferring from a first processor to a second processor based on the first processor having had a critical error
US5615263A (en) * 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US6185678B1 (en) * 1997-10-02 2001-02-06 Trustees Of The University Of Pennsylvania Secure and reliable bootstrap architecture
US6378072B1 (en) * 1998-02-03 2002-04-23 Compaq Computer Corporation Cryptographic system
US6526491B2 (en) * 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
DE10131575A1 (en) * 2001-07-02 2003-01-16 Bosch Gmbh Robert Method for protecting a microcomputer system against manipulation of data stored in a memory arrangement of the microcomputer system
EP1276033B1 (en) * 2001-07-10 2012-03-14 Trident Microsystems (Far East) Ltd. Memory device with data protection in a processor
US7069442B2 (en) * 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US6715085B2 (en) * 2002-04-18 2004-03-30 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
JP4234380B2 (en) * 2002-09-10 2009-03-04 日鉱金属株式会社 Metal powder for powder metallurgy and iron-based sintered body
US20040064457A1 (en) * 2002-09-27 2004-04-01 Zimmer Vincent J. Mechanism for providing both a secure and attested boot
JP2004227143A (en) * 2003-01-21 2004-08-12 Pioneer Electronic Corp Information processor and information processing method
US7322042B2 (en) * 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
JP2004334789A (en) * 2003-05-12 2004-11-25 Canon Inc Information processor and information processing method
US20050071656A1 (en) * 2003-09-25 2005-03-31 Klein Dean A. Secure processor-based system and method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5937063A (en) * 1996-09-30 1999-08-10 Intel Corporation Secure boot
JP2002287978A (en) * 2000-11-22 2002-10-04 Microsoft Corp Method and system for safely initializing code in computer
JP2002351850A (en) * 2001-03-22 2002-12-06 Sony Computer Entertainment Inc Data processing method on processor and data processing system
WO2003058411A1 (en) * 2002-01-08 2003-07-17 Ntt Docomo, Inc. Content delivery method and content delivery system
US20030163723A1 (en) * 2002-02-25 2003-08-28 Kozuch Michael A. Method and apparatus for loading a trustable operating system
JP2003280989A (en) * 2002-03-20 2003-10-03 Toshiba Corp Internal memory type tamper-resistant processor and secrecy protection method
US20040003321A1 (en) * 2002-06-27 2004-01-01 Glew Andrew F. Initialization of protected system

Also Published As

Publication number Publication date
WO2006082994A3 (en) 2007-02-08
JP2006221631A (en) 2006-08-24
WO2006082994A2 (en) 2006-08-10
US20060179324A1 (en) 2006-08-10

Similar Documents

Publication Publication Date Title
JP4522372B2 (en) Method and apparatus for implementing a secure session between a processor and an external device
JP4606339B2 (en) Method and apparatus for performing secure processor processing migration
JP4489030B2 (en) Method and apparatus for providing a secure boot sequence within a processor
US7308576B2 (en) Authenticated code module
US8656146B2 (en) Computer system comprising a secure boot mechanism
US7921293B2 (en) Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
CN102841994B (en) For performing the system and method for secured environment initialization instruction
KR101263061B1 (en) Execution of a secured environment initialization instruction on a point-to-point interconnect system
JP5532291B2 (en) Method and apparatus for securely processing sensitive content in a processor virtual machine
KR100692348B1 (en) Sleep protection
JP5670578B2 (en) Method and apparatus including architecture for protecting sensitive code and data
US8332635B2 (en) Updateable secure kernel extensions
JP4601557B2 (en) Method and apparatus for secure cooperation of processors in a multiprocessor system
US20030126453A1 (en) Processor supporting execution of an authenticated code instruction
US20030126454A1 (en) Authenticated code method and apparatus
US20140281560A1 (en) Secure zone on a virtual machine for digital communications
US9208292B2 (en) Entering a secured computing environment using multiple authenticated code modules
US8799673B2 (en) Seamlessly encrypting memory regions to protect against hardware-based attacks
JP2006221629A (en) Content control method and device by resource management of processor
Shimizu et al. Cell Broadband Engine™ processor security architecture and digital content protection
EP4256439A2 (en) Digital content management through on-die cryptography and remote attestation
JP2019186848A (en) Information processing system and program execution control method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090910

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4522372

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130604

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

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

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