JP2006091967A - Information processor and debugging device - Google Patents
Information processor and debugging device Download PDFInfo
- Publication number
- JP2006091967A JP2006091967A JP2004273056A JP2004273056A JP2006091967A JP 2006091967 A JP2006091967 A JP 2006091967A JP 2004273056 A JP2004273056 A JP 2004273056A JP 2004273056 A JP2004273056 A JP 2004273056A JP 2006091967 A JP2006091967 A JP 2006091967A
- Authority
- JP
- Japan
- Prior art keywords
- program
- unit
- common key
- encrypted
- task
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、情報処理装置およびデバッグ装置に関し、特に、暗号化されたプログラムを他のプログラムから秘匿しながら実行するマイクロプロセッサ、および、そのマイクロプロセッサのプログラム開発時のデバッグ装置に関する。 The present invention relates to an information processing apparatus and a debugging apparatus, and more particularly, to a microprocessor that executes an encrypted program while keeping it secret from other programs, and a debugging apparatus during program development of the microprocessor.
従来のマイクロプロセッサは、暗号化されたプログラムの暗号鍵を、暗号化されたプログラムのアドレス情報と関連づけ、アドレス変換装置に、その暗号鍵に関する情報をアドレスと関連づけて保持し、マイクロプロセッサが該プログラムを実行する際の命令フェッチ時に、そのプログラムのアドレスに関連づけられた暗号鍵を用いて、暗号化されたプログラムを復号している(例えば、特許文献1参照)。
また、暗号化されたプログラムを復号して実行するマイクロプロセッサのデバッグ装置としては、デバッグ通信路上に復号されたプログラムが流れるのを防ぐために、デバッグ対象のプログラムをデバッグのために暗号化し、デバッグ装置において復号する方法がある。(例えば、特許文献2参照)。
In addition, as a debugging device for a microprocessor that decrypts and executes an encrypted program, the debugging target device is encrypted for debugging in order to prevent the decrypted program from flowing on the debugging communication path. There is a method for decoding. (For example, refer to Patent Document 2).
しかしながら、上記従来の情報処理装置の構成では、プログラムのアドレスに関連づけた暗号鍵を用いて暗号化されたプログラムを復号して実行するため、アドレス変換装置にアドレス変換情報の他に暗号鍵情報を記憶させ、マイクロプロセッサがフェッチする命令のアドレスに対応する暗号鍵を用いてプログラムを復号させる必要があるので、アドレス変換手段を必要とし、コストを増加してしまうという課題がある。 However, in the configuration of the conventional information processing apparatus, since the encrypted program is decrypted and executed using the encryption key associated with the program address, the encryption key information is transmitted to the address conversion apparatus in addition to the address conversion information. Since it is necessary to decrypt the program by using the encryption key corresponding to the address of the instruction to be stored and fetched by the microprocessor, there is a problem that the address conversion means is required and the cost is increased.
また、上記従来のデバッグ装置の構成でも、デバッグ対象のプログラムをデバッグのためにデバッグ用の暗号手段を用いて暗号化しているため、同様にコストを増加してしまうという課題がある。 Further, even in the configuration of the above-described conventional debugging device, the program to be debugged is encrypted by using the encryption means for debugging for debugging, so that there is a problem that the cost similarly increases.
本発明は、上記のような従来の問題点を解決するためになされたもので、復号のためのアドレス変換手段、デバッグのための暗号手段を必要とせずに、タスク毎に異なる暗号鍵を用いて複数の暗号化されたプログラムを実行することのできる、ローコストの情報処理装置、及びデバッグ装置を提供することを目的とする。 The present invention has been made to solve the conventional problems as described above, and uses different encryption keys for each task without requiring address conversion means for decryption and encryption means for debugging. Another object of the present invention is to provide a low-cost information processing apparatus and debugging apparatus that can execute a plurality of encrypted programs.
上記の課題を解決するために、本発明は、マイクロプロセッサが実行するタスクに関連づけた暗号鍵情報を記憶し、タスクの切替え時に、その暗号鍵情報をタスク切替えプログラムにより書き換えることによって、暗号化されたプログラムを復号して実行する構成としている。 In order to solve the above problems, the present invention stores encryption key information associated with a task executed by a microprocessor, and is encrypted by rewriting the encryption key information by a task switching program at the time of task switching. The program is decrypted and executed.
具体的には、本発明の請求項1に記載の情報処理装置は、秘密鍵を保持する秘密鍵保持部と、上記秘密鍵に対応する公開鍵によって暗号化された共通鍵を少なくとも一つのタスクに対応して保持する暗号化共通鍵保持部と、上記暗号化共通鍵保持部に保持された暗号化された共通鍵を入力とし、上記秘密鍵によって復号する共通鍵復号部と、命令フェッチを行なうタスクに対応する上記共通鍵が上記暗号化共通鍵保持部に保持されている場合に、上記復号された共通鍵を用いて該タスクのプログラムを復号する命令復号部と、上記命令復号部から上記タスクのプログラムをフェッチして実行する命令実行部とを備えたことを特徴とするものである。
これにより、タスク毎に異なる暗号鍵を用いて暗号化されたプログラムを実行することができる。
Specifically, the information processing apparatus according to
This makes it possible to execute a program encrypted using a different encryption key for each task.
また、本発明の請求項2に記載の情報処理装置は、請求項1に記載の情報処理装置において、少なくとも上記命令実行部がタスク切替えを行なうプログラムを実行するスーパーバイザ状態を有し、上記スーパーバイザ状態であるときには、上記復号部は、上記プログラムの復号を行わないことを特徴とするものである。
これにより、通常タスク切替を行なうプログラムを実行するスーパーバイザモードではプログラムを暗号化せずに実行することができる。
An information processing apparatus according to
As a result, in the supervisor mode for executing the program for performing normal task switching, the program can be executed without being encrypted.
本発明の請求項3に記載の情報処理装置は、請求項1又は請求項2に記載の情報処理装置において、複数のタスクの共通鍵をそれぞれに保持する複数の上記暗号化共通鍵保持部と、実行するタスクのタスク番号を保持する第1のタスク識別部と、を備え、上記第1のタスク識別部は、上記タスク番号を基に上記複数の暗号化共通鍵保持部から一つの暗号化共通鍵保持部を選択し、上記共通鍵復号部は、上記選択された暗号化共通鍵保持部に保持されている共通鍵を入力とし、上記秘密鍵によって復号することを特徴とするものである。
これにより、タスク番号を用いて対応する暗号化共通鍵保持部に保持されている共通鍵を用いることができるので、タスク切替時に暗号化共通鍵保持部に共通鍵を再設定する必要がなくなる。
The information processing device according to
As a result, since the common key held in the corresponding encrypted common key holding unit using the task number can be used, there is no need to reset the common key in the encrypted common key holding unit at the time of task switching.
本発明の請求項4に記載の情報処理装置は、請求項3に記載の情報処理装置において、上記複数のタスクのプロセッサ状態情報を保持する複数のコンテキストと、実行中のタスクのタスク番号を上記第1のタスク識別部に設定するコンテキスト切替え部とを備え、上記複数の暗号化共通鍵保持部は、上記複数のタスクのそれぞれのコンテキストであり、上記複数のタスクは、上記コンテキストを上記コンテキスト切替え部により切替えながら実行することを特徴とするものである。
これにより、暗号化共通鍵保持部に共通鍵を再設定せずに、複数の暗号化されたプログラムを切替えながら復号し、実行することができる。
The information processing apparatus according to
Accordingly, a plurality of encrypted programs can be decrypted and executed while switching without resetting the common key in the encrypted common key holding unit.
本発明の請求項5に記載の情報処理装置は、請求項3に記載の情報処理装置において、上記命令復号部によって復号されたプログラムを格納するプログラム記憶部と、上記プログラム記憶部へのプログラムの転送を制御するプログラム転送部と、上記プログラム転送部によってプログラムを転送する場合、該プログラムに対応するタスク番号を保持して上記複数の暗号化共通鍵保持部から一つの共通鍵を選択する第2のタスク識別部とを備え、上記命令実行部は、上記プログラム記憶部からプログラムをフェッチして実行することを特徴とするものである。
これにより、1つのタスクを実行しながら他のタスクの暗号化されたプログラムを復号転送することができる。
An information processing apparatus according to
This makes it possible to decrypt and transfer an encrypted program of another task while executing one task.
本発明の請求項6に記載の情報処理装置は、請求項3に記載の情報処理装置において、上記命令復号部によって復号されたプログラムを格納するキャッシュメモリと、上記キャッシュメモリへのプログラムの転送を制御するキャッシュコントローラとからなる命令キャッシュを備え、上記命令実行部は、上記命令キャッシュからプログラムをフェッチして実行することを特徴とするものである。
これにより、プログラム記憶部として命令キャッシュを用いて、暗号化されたプログラムを命令キャッシュにフェッチする際に復号することができるため、1つのタスクを実行しながら他のタスクの暗号化されたプログラムを復号転送することができる。
An information processing apparatus according to a sixth aspect of the present invention is the information processing apparatus according to the third aspect, wherein a cache memory storing the program decoded by the instruction decoding unit and a transfer of the program to the cache memory are performed. An instruction cache including a cache controller to be controlled is provided, and the instruction execution unit fetches and executes a program from the instruction cache.
As a result, the instruction cache is used as the program storage unit, and the encrypted program can be decrypted when fetched into the instruction cache. Therefore, the encrypted program of the other task is executed while executing one task. Decryption transfer is possible.
本発明の請求項7に記載の情報処理装置は、請求項5に記載の情報処理装置において、上記プログラム転送部によってプログラムを上記プログラム記憶部に転送する際に上記共通鍵復号部に入力する共通鍵を格納する別途の暗号化共通鍵格納部をさらに備え、上記プログラム記憶部は、上記暗号化されたプログラムのアドレス空間と別のアドレス空間に配置され、上記プログラム転送部は、プログラム転送命令によって明示的に起動されることを特徴とするものである。
これにより、外部メモリから、メモリのアドレスが異なる内蔵メモリへのプログラム転送の場合においても、1つのタスクを実行しながら他のタスクの暗号化されたプログラムを復号転送することができる。
The information processing apparatus according to
As a result, even in the case of program transfer from the external memory to the built-in memory having a different memory address, the encrypted program of the other task can be decrypted and transferred while executing one task.
また、本発明の請求項8に記載のデバッグ装置は、請求項1に記載の情報処理装置と組み合わせて用いられるデバッグ装置であって、上記暗号化されたプログラムの格納アドレス情報と、対応する上記共通鍵とを格納するデバッグ情報保持部と、上記暗号化されたプログラムの格納アドレス情報、及び対応する上記復号された共通鍵を用いて、上記情報処理装置から読み出した暗号化プログラムを復号して命令表示を行なう命令表示部とを備えたことを特徴とするものである。
これにより、暗号化されたプログラムの開発においてデバッグを行なうことができる。
A debugging device according to an eighth aspect of the present invention is a debugging device used in combination with the information processing device according to the first aspect, wherein the encrypted program storage address information corresponds to the above-mentioned information. Using the debug information holding unit for storing the common key, the storage address information of the encrypted program, and the corresponding decrypted common key, the encrypted program read from the information processing apparatus is decrypted. An instruction display unit for displaying an instruction is provided.
Thereby, debugging can be performed in the development of the encrypted program.
本発明の請求項9に記載のデバッグ装置は、請求項8に記載のデバッグ装置において、上記復号されたプログラムにブレイクポイント命令を埋め込み、上記共通鍵によって暗号化を行ない、該暗号化されたプログラムを上記情報処理装置の該プログラムが格納されていた場所に書き込む暗号部を備えたことを特徴とするものである。
これにより、ブレイクポイントを簡単に設定し又は増やして暗号化されたプログラムのデバッグを行なうことができる。
The debugging device according to claim 9 of the present invention is the debugging device according to
As a result, the encrypted program can be debugged by simply setting or increasing breakpoints.
本発明の請求項1に係る情報処理装置によれば、実行するタスクに関連づけた共通鍵を暗号化共通鍵保持部に記憶し、タスクの切替え時に、その共通鍵を書き換えるようにしたので、タスク毎の暗号鍵を用いて暗号化されたプログラムを実行することができるという効果がある。 According to the information processing apparatus of the first aspect of the present invention, the common key associated with the task to be executed is stored in the encryption common key holding unit, and the common key is rewritten when the task is switched. There is an effect that an encrypted program can be executed using each encryption key.
本発明の請求項2に係る情報処理装置によれば、スーパーバイザモードを設定して該モードでは復号を行わないようにしたので、スーパーバイザモードでタスク切替を行なうプログラムを暗号化せずに、それ以外のタスクとして、暗号化されたプログラムを実行することにより、タスク毎の暗号鍵の設定を、スーパーバイザモードで動作するプログラムにより簡単に行うことができるという効果がある。
According to the information processing apparatus according to
本発明の請求項3に係る情報処理装置によれば、複数の暗号化共通鍵保持部と、実行するタスク番号により上記暗号化共通鍵保持部を選択するタスク識別部とを備えるようにしたので、複数のタスクに対する暗号鍵を再設定せずに切替えることが可能となるので、切替えにかかる時間を短縮できるという効果がある。
According to the information processing apparatus according to
本発明の請求項4に係る情報処理装置によれば、複数のタスクのコンテキストを切替えながら実行する情報処理装置においても、複数のタスクに対する暗号鍵を再設定せずに切替えることが可能となるので、切替えにかかる時間を短縮でき、さらに低コストで暗号化されたプログラムを実行することができるという効果がある。
According to the information processing apparatus according to
本発明の請求項5に係る情報処理装置によれば、内蔵メモリを用いた情報処理装置においても、復号されたプログラムを内蔵のプログラム記憶部に保持することにより、タスク毎に異なる暗号鍵を用いて暗号化されたプログラムを実行することができる以外に、命令実行の時間を短縮することができるという効果がある。
According to the information processing apparatus according to
本発明の請求項6に係る情報処理装置によれば、命令キャッシュを用いた情報処理装置においても、復号されたプログラムをキャッシュメモリに保持することにより、タスク毎に異なる暗号鍵を用いて暗号化されたプログラムを実行することができる以外に、命令実行の時間を短縮することができるという効果がある。
According to the information processing apparatus according to
本発明の請求項7に係る情報処理装置によれば、外部メモリから、メモリのアドレスが異なる内蔵メモリへのプログラム転送の場合においても、命令実行の時間を短縮しながら少ないコストで暗号化されたプログラムを実行することができるという効果がある。 According to the information processing apparatus of the seventh aspect of the present invention, even in the case of program transfer from an external memory to a built-in memory having a different memory address, encryption is performed at a low cost while shortening the instruction execution time. There is an effect that the program can be executed.
本発明の請求項8に係るデバッグ装置によれば、暗号化されたプログラムの格納アドレス情報と、対応する上記共通鍵とを格納するデバッグ情報保持部と、上記暗号化されたプログラムの格納アドレス情報、及び対応する上記復号された共通鍵を用いて、上記情報処理装置から読み出した暗号化プログラムを復号して命令表示を行なう命令表示部とを備えるようにしたので、タスク毎に異なる暗号鍵を用いて暗号化されたプログラムを実行する際に、暗号化されたプログラムの命令表示を行なうことによりプログラムのデバッグを少ないコストで行なうことができるという効果がある。 According to the debugging apparatus of the eighth aspect of the present invention, the debug information holding unit that stores the storage address information of the encrypted program and the corresponding common key, and the storage address information of the encrypted program And a command display unit that displays the command by decrypting the encrypted program read from the information processing apparatus using the corresponding decrypted common key, and therefore, a different encryption key for each task. When an encrypted program is executed, the program can be debugged at a low cost by displaying the instructions of the encrypted program.
本発明の請求項9に係るデバッグ装置によれば、暗号化されているプログラムにブレイクポイント命令を埋め込む暗号部を備えるようにしたので、暗号化されたプログラムにブレイクポイント命令を挿入して、プログラムにブレイクポイントを設定することにより、コストの高いハードウェアによるブレイクポイントの設定を必要とせずにプログラムのデバッグを行なうことができるという効果がある。 According to the debugging apparatus of the ninth aspect of the present invention, since the encryption unit for embedding the breakpoint instruction in the encrypted program is provided, the breakpoint instruction is inserted into the encrypted program, and the program By setting breakpoints in the program, it is possible to debug a program without requiring breakpoints to be set by expensive hardware.
以下、本発明の実施の形態を図面を用いて説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
(実施の形態1)
図1は、本発明の実施の形態1に係る情報処理装置の概略構成を示すブロック図である。同図に示すように、本実施の形態1による情報処理装置は、命令を実行する命令実行部1と、命令を読み出して命令実行部1に供給する命令フェッチ部2と、共通鍵を保持する暗号化共通鍵保持部3と、秘密鍵保持部5に保持されている秘密鍵を用いて暗号化共通鍵保持部3が保持する共通鍵を復号する共通鍵復号部4と、秘密鍵を保持する秘密鍵保持部5と、命令フェッチを行なうタスクに対応する共通鍵が暗号化共通鍵保持部3に保持されている場合に、上記復号された共通鍵を用いて該命令を復号し命令フェッチ部2に転送する命令復号部6と、命令およびデータを記憶する記憶部7とによって構成される。
(Embodiment 1)
FIG. 1 is a block diagram showing a schematic configuration of the information processing apparatus according to
ここで、秘密鍵保持部5は、あらかじめ決まった秘密鍵を保持する。暗号化共通鍵保持部3は、共通鍵を保持する他に、共通鍵を保持しているか否かという情報を、命令実行部1の命令実行によって設定される。また、暗号化共通鍵保持部3は、リセットによって共通鍵を保持していない状態に設定される。さらに、共通鍵が設定されていないときは、命令復号部6は、復号処理を行わずに記憶部7から読み出された命令をそのまま命令フェッチ部2に転送する。
Here, the secret
記憶部7には、ブートプログラムと、タスク毎のプログラムが格納されている。各タスクに対応するプログラムは、それぞれの共通鍵によって暗号化されている。また、ブートプログラムは、タスクに対応するプログラムの格納アドレスと、そのプログラムが暗号化されているか否か、暗号化されている場合の共通鍵をタスク毎に保持している。ここで、共通鍵は、秘密鍵保持部5に保持されている秘密鍵に対応する公開鍵を用いて暗号化したものである。
The
次に、上記のように構成されている本実施の形態1に係る情報処理装置の動作を、図2のフローチャートを参照しながら説明する。 Next, the operation of the information processing apparatus according to the first embodiment configured as described above will be described with reference to the flowchart of FIG.
ステップS1では、命令実行部1は、リセットを行った後、ブートプログラムを実行する。
ステップS2では、まず、記憶部7からブートプログラムを読み出す。この時は、リセット後であって、暗号化共通鍵保持部3は、共通鍵を保持していない状態に初期化されているため、ブートプログラムは、復号処理されずに、そのまま実行される。
具体的には、ブートプログラムは、ステップS3〜S6の手順でタスクを実行する。
In step S1, the
In step S <b> 2, first, the boot program is read from the
Specifically, the boot program executes a task in the procedure of steps S3 to S6.
ステップS3では、命令実行部のリクエストに基づいてブートプログラムの保持した内容より実行するタスクを決定する。
ステップS4では、実行するタスクのプログラムが暗号化されているか否かを調べる。暗号化されている場合はステップS5へ、されていない場合はステップS6へ進む。
In step S3, a task to be executed is determined from the contents held in the boot program based on the request from the instruction execution unit.
In step S4, it is checked whether or not the program of the task to be executed is encrypted. If it is encrypted, the process proceeds to step S5. If not, the process proceeds to step S6.
ステップS5では:ブートプログラムに保持されている該実行するタスクの共通鍵を、暗号化共通鍵保持部3に設定し、暗号化共通鍵保持部3が共通鍵を保持している状態に設定し、その後ステップS6へ進む。
ステップS6では、タスクの開始アドレスへプログラム制御を移す。
In step S5: the common key of the task to be executed held in the boot program is set in the encrypted common
In step S6, program control is transferred to the task start address.
このように、本実施の形態1による情報処理装置では、秘密鍵を保持する秘密鍵保持部と、秘密鍵に対応する公開鍵によって暗号化された共通鍵をタスクに対応して保持する暗号化共通鍵保持部と、暗号化共通鍵保持部に保持された暗号化された共通鍵を秘密鍵によって復号する共通鍵復号部と、命令フェッチを行なうタスクに対する共通鍵が暗号化共通鍵保持部に保持されている場合に、復号された共通鍵によってプログラムを復号する命令復号部とを備え、命令復号部によって復号されたプログラムを実行することにより、タスク毎に異なる暗号鍵を用いて暗号化されたプログラムを実行することができる。 As described above, in the information processing apparatus according to the first embodiment, the secret key holding unit that holds the secret key, and the encryption that holds the common key encrypted by the public key corresponding to the secret key corresponding to the task. The common key holding unit, the common key decrypting unit that decrypts the encrypted common key held in the encrypted common key holding unit with the secret key, and the common key for the task performing the instruction fetch are in the encrypted common key holding unit And a command decryption unit that decrypts the program using the decrypted common key, and is encrypted using a different encryption key for each task by executing the program decrypted by the command decryption unit. Program can be executed.
(実施の形態2)
本発明の実施の形態2による情報処理装置は、上記実施の形態1による情報処理装置における、異なるタスクを実行する場合はリセットから始まる必要があるという課題を改善したものであり、以下、図面を用いて説明する。
(Embodiment 2)
The information processing apparatus according to the second embodiment of the present invention improves the problem that the information processing apparatus according to the first embodiment needs to start from a reset when performing different tasks. It explains using.
図3は、本発明の実施の形態2による情報処理装置の概略構成を示すブロック図である。図3に示すように、本実施の形態2による情報処理装置は、上記実施の形態1とは、少なくとも命令実行部1の実行状態が、タスク切替えを行なうプログラムを実行するスーパーバイザ状態であることを示すスーパーバイザ状態表示部101が追加されている点においてのみ異なっており、その他の構成要素は、上記実施の形態1の情報処理装置(図1)と同様で、同一符号を付しており、その説明を省略する。
FIG. 3 is a block diagram showing a schematic configuration of the information processing apparatus according to the second embodiment of the present invention. As shown in FIG. 3, the information processing apparatus according to the second embodiment is different from the first embodiment in that at least the execution state of the
ここでは、スーパーバイザ状態表示部101はその状態情報を、暗号化共通鍵保持部3に入力し、暗号化共通鍵保持部3は、スーパーバイザ状態表示部101がスーパーバイザ状態を示している時には共通鍵を保持していない状態と等価な動作を行なうように構成されている。
Here, the supervisor
次に、上記のように構成されている本実施の形態2による情報処理装置の動作を、図4のフローチャートを参照しながら説明する。
ステップS1では、命令実行部1は、リセットを行った後、ブートプログラムを実行する。同時に、命令実行部1の実行状態は、スーパーバイザ状態に遷移する。
Next, the operation of the information processing apparatus according to the second embodiment configured as described above will be described with reference to the flowchart of FIG.
In step S1, the
ステップS2では、まず、記憶部7からブートプログラムを読み出す。この時は、リセット後であって、スーパーバイザ状態表示部101は、スーパーバイザ状態であることを示し、暗号化共通鍵保持部3は、共通鍵を保持していない状態と等価な動作をするので、ブートプログラムは、復号処理されずに、そのまま実行される。
具体的には、ブートプログラムは、ステップS3〜S6の手順でタスクを実行する。
In step S <b> 2, first, the boot program is read from the
Specifically, the boot program executes a task in the procedure of steps S3 to S6.
ステップS3では、命令実行部のリクエストに基づいてブートプログラムの保持した内容より実行するタスクを決定する。
ステップS4では、実行するタスクのプログラムが暗号化されているか否かを調べる。暗号化されている場合はステップS5へ、されていない場合はステップS6へ進む。
ステップS5では:ブートプログラムに保持されている該実行するタスクの共通鍵を、暗号化共通鍵保持部3に設定し、暗号化共通鍵保持部3が共通鍵を保持している状態に設定し、その後ステップS6へ進む。
In step S3, a task to be executed is determined from the contents held in the boot program based on the request from the instruction execution unit.
In step S4, it is checked whether or not the program of the task to be executed is encrypted. If it is encrypted, the process proceeds to step S5. If not, the process proceeds to step S6.
In step S5: the common key of the task to be executed held in the boot program is set in the encrypted common
ステップS6では、タスクの開始アドレスへプログラム制御を移す。それと同時に、命令実行部1の実行状態は、スーパーバイザ状態から非スーパーバイザ状態へ遷移する。
In step S6, program control is transferred to the task start address. At the same time, the execution state of the
また、非スーパバイザ状態でプログラムを実行中に、割り込みを受け付けると、スーパバイザ状態へ遷移し、ブートプログラム内の割り込みベクタへ制御を移す。割り込み処理から、再度割り込まれたタスクへ制御を移す場合は、割り込みによって中断されたアドレスに制御を移すとともに非スーパバイザ状態へ遷移するよう制御する。これは、一般に行なわれる割り込み処理と同等である。ただし、タスク切替を行なって割り込み処理から復帰する場合は、タスクを起動する上述の手順により暗号化共通鍵保持部3にタスクの共通鍵を再設定する必要がある。
If an interrupt is accepted while the program is being executed in the non-supervisor state, the state is changed to the supervisor state, and control is transferred to the interrupt vector in the boot program. When the control is transferred from the interrupt process to the interrupted task again, the control is transferred to the address interrupted by the interrupt and the control is shifted to the non-supervisor state. This is equivalent to a commonly performed interrupt process. However, when task switching is performed to return from interrupt processing, it is necessary to reset the task common key in the encrypted common
なお、ここでは、タスクの開始アドレスは、タスク起動時においては、タスクのエントリアドレスであるが、タスクの復帰時には、割り込み時に退避された復帰アドレスである。 Here, the task start address is the entry address of the task when the task is activated, but is the return address saved at the time of interruption when the task is returned.
このように、本実施の形態2による情報処理装置では、上記実施の形態1による情報処理装置のCPU100にスーパーバイザ状態表示部101を追加するようにしたので、上記実施の形態1と同様な効果を得られるほか、スーパーバイザ状態表示部101がスーパーバイザ状態を示している時に、暗号化共通鍵保持部3に共通鍵が保持されていない時と同じ動作を行うことにより、タスク毎の暗号鍵の設定を、スーパーバイザモードで動作するプログラムとして簡単に実行することができ、リセットすることなしにタスク毎に異なる共通鍵を用いて暗号化されたプログラムを実行することができる。
As described above, in the information processing apparatus according to the second embodiment, the supervisor
(実施の形態3)
本発明の実施の形態3による情報処理装置は、上記実施の形態2による情報処理装置での、タスク切替の際に暗号化共通鍵保持部の内容を更新する必要があるため、暗号化共通鍵保持部の情報量が大きい場合はタスク切替の時間がかかるという課題を改善したものであり、以下、図面を用いて説明する。
(Embodiment 3)
The information processing apparatus according to the third embodiment of the present invention needs to update the contents of the encrypted common key holding unit at the time of task switching in the information processing apparatus according to the second embodiment. This is an improvement of the problem that it takes time for task switching when the amount of information in the holding unit is large, and will be described below with reference to the drawings.
図5は、本発明の実施の形態3による情報処理装置の概略構成を示すブロック図であり、図において図3と同一符号は同一又は相当部分である。図5に示すように、本実施の形態3による情報処理装置は、複数の暗号化共通鍵保持部31、32、33と、命令実行部1で実行中のタスクの識別番号を保持する第1のタスク識別部102とを備え、第1のタスク識別部102の内容により複数の暗号化共通鍵保持部31、32、33から一つの共通鍵が選択され共通鍵復号部4に入力されるように構成されている。その他の構成は、上記の実施の形態2による情報処理装置(図3)と同様で、同一又は相当部分に同一符号を付して、その説明を省略する。
FIG. 5 is a block diagram showing a schematic configuration of the information processing apparatus according to
次に、上記のように構成されている本実施の形態3による情報処理装置の動作を、図6のフローチャートを参照しながら説明する。
ステップS1では、命令実行部1は、リセットを行った後、ブートプログラムを実行する。同時に、命令実行部1の実行状態は、スーパーバイザ状態に遷移する。
Next, the operation of the information processing apparatus according to the third embodiment configured as described above will be described with reference to the flowchart of FIG.
In step S1, the
ステップS2では、まず、記憶部7からブートプログラムを読み出す。この時は、リセット後であって、スーパーバイザ状態表示部101は、スーパーバイザ状態であることを示し、暗号化共通鍵保持部3は、共通鍵を保持していない状態と等価な動作をするので、ブートプログラムは、復号処理されずに、そのまま実行される。
具体的には、ブートプログラムは、ステップS3〜S7の手順でタスクを実行する。
In step S <b> 2, first, the boot program is read from the
Specifically, the boot program executes a task in the procedure of steps S3 to S7.
ステップS3では、命令実行部のリクエストに基づいてブートプログラムの保持した内容より実行しようとする複数のタスク、及びそれぞれのタスクに対して、タスク番号を決定する。 In step S3, a task number is determined for a plurality of tasks to be executed from the contents held in the boot program based on the request of the instruction execution unit, and for each task.
ステップS4では、上記複数のタスクのプログラムが暗号化されているか否かを調べる。暗号化されている場合はそれぞれのタスクの共通鍵を、暗号化共通鍵保持部31、32、33の中からステップS3で決定したタスク番号に対応するものに設定する。さらに、対応する暗号化共通鍵部を、共通鍵を保持している状態に設定する。
In step S4, it is checked whether the programs of the plurality of tasks are encrypted. If it is encrypted, the common key of each task is set to the one corresponding to the task number determined in step S3 from among the encrypted common
ステップS5、S6では、複数のタスクの中から実行するタスクを決定し、そのタスク番号をタスク識別部102に設定する。
ステップS7では、タスクの開始アドレスへプログラム制御を移す。それと同時に、命令実行部1の実行状態は、スーパーバイザ状態から非スーパーバイザ状態へ遷移する。
In steps S5 and S6, a task to be executed is determined from a plurality of tasks, and the task number is set in the
In step S7, program control is transferred to the task start address. At the same time, the execution state of the
但し、タスク切替時には、タスクの共通鍵が複数の暗号化共通鍵保持部31、32、33の中に設定されている場合は、その暗号化共通鍵保持部を選択するタスク番号をタスク識別手段102に再設定し、そのタスクの開始アドレスに制御を移すよう制御する。
However, at the time of task switching, if the task common key is set in the plurality of encrypted common
このように、本実施の形態3による情報処理装置では、上記の実施の形態2の情報処理装置の構成に、複数の暗号化共通鍵保持部31、32、33と、命令実行部1で実行中のタスクの識別番号を保持する第1のタスク識別部102とを追加するようにしたので、上記実施の形態2と同様な効果を得られる以外に、第1のタスク識別部102の内容により複数の暗号化共通鍵保持部31、32、33から一つの共通鍵を選択して共通鍵復号部4に入力することにより、共通鍵の情報量が大きい場合、暗号化共通鍵保持部に共通鍵を更新することなく、タスク番号のみを更新することでタスク切替の際タスク毎に異なる共通鍵を用いて暗号化されたプログラムを実行することができ、タスク切替えの時間を短縮できるという効果を得ることができる。
Thus, in the information processing apparatus according to the third embodiment, the configuration of the information processing apparatus according to the second embodiment is executed by the plurality of encrypted common
(実施の形態4)
本発明の実施の形態4による情報処理装置は、上記実施の形態3による情報処理装置における、タスク切替の際に、コンテキストの退避、復帰を行なう必要があるためにタスク切替の時間がかかるという課題を改善したものであり、以下、図面を用いて説明する。
(Embodiment 4)
The information processing apparatus according to the fourth embodiment of the present invention has a problem that it takes time for task switching because it is necessary to save and restore context when switching tasks in the information processing apparatus according to the third embodiment. This will be described below with reference to the drawings.
図7は、本発明の実施の形態4による情報処理装置の概略構成を示すブロック図であり、図において図5と同一の符号は同一又は相当部分である。図7に示すように、本実施の形態4による情報処理装置は、CPU100に複数のタスクのそれぞれに対応する複数のレジスタ11、つまり複数のコンテキストと、実行中のタスクのタスク番号を第1のタスク識別部102に設定するコンテキスト切替え部12とを備え、コンテキスト切替え部12により複数のコンテキストを切替えながら複数のコンテキストを実行するように構成されている。その他の構成は、上記の実施の形態3の情報処理装置(図5)と同様で、同一又は相当部分には同一符号を付して、その説明を省略する。
FIG. 7 is a block diagram showing a schematic configuration of the information processing apparatus according to
次に、上記のように構成されている本実施の形態4による情報処理装置の動作を説明する。
本実施の形態4による情報処理装置では、プロセッサをある状態に復帰する際に用いられるプロセッサ状態情報をレジスタ11に保持し、タスク切替の時に、コンテキスト切替え部12により、第1のタスク識別部102に保持されているタスク番号を実行中のタスク番号に切替えることによって、複数のレジスタ、及び複数のタスクのコンテキストでもある複数の暗号化共通鍵保持部を切替える。これにより、その実行中のタスクに対応する共通鍵が複数の暗号化共通鍵保持部31、32、33から選択され、共通鍵復号部4によって復号される。なお、本実施の形態4による情報処理装置のその他の動作は、上記の実施の形態3の情報処理装置と同様であり、ここでは省略する。
Next, the operation of the information processing apparatus according to the fourth embodiment configured as described above will be described.
In the information processing apparatus according to the fourth embodiment, the processor state information used when returning the processor to a certain state is held in the
このように、本実施の形態4による情報処理装置では、上記の実施の形態3の情報処理装置の構成に、複数のタスクにそれぞれ対応する複数のレジスタ11と、実行中のタスクの番号を第1のタスク識別部102に設定するコンテキスト切替え部12とをCPU100に追加し、コンテキスト切替え部により複数のレジスタ、暗号化共通鍵保持部を切替えながら複数のタスクを実行するようにしたので、上記の実施の形態3と同様に暗号化共通鍵保持部の共通鍵を更新することなく、タスク番号のみを更新することでタスク切替の際タスク毎に異なる共通鍵を用いて暗号化されたプログラムを実行することができ、さらに、タスク切替の際に、コンテキストの退避、復帰を行わずに済むため、タスク切替えにかかる時間を一層短縮することができる。
As described above, in the information processing apparatus according to the fourth embodiment, the configuration of the information processing apparatus according to the third embodiment is configured such that the plurality of
(実施の形態5)
本発明の実施の形態5による情報処理装置は、上記実施の形態3による情報処理装置における、命令フェッチが、記憶部7に対して行なわれ、さらに命令復号部6による復号処理に時間がかかるという課題を改善したものであり、以下、図面を用いて説明する。
(Embodiment 5)
In the information processing apparatus according to the fifth embodiment of the present invention, the instruction fetch is performed on the
図8は、本発明の実施の形態5による情報処理装置の概略構成を示すブロック図であり、図において図5と同一符号は同一又は相当部分である。図8に示すように、本実施の形態5による情報処理装置は、記憶部7から読み出され、命令復号部6により復号されたプログラムを格納するプログラム記憶部8と、記憶部7からプログラム記憶部8への命令復号部6を経由するプログラムの転送を制御するプログラム転送部9と、プログラム転送部9によってプログラムを転送する時に複数の暗号化共通鍵保持部31、32、33から一つの共通鍵を選択するための第2のタスク識別部103とを新たに備えている。その他の構成は、上記の実施の形態3の情報処理装置(図5)と同様で、同一又は相当部分には同一符号を付して、その説明を省略する。
FIG. 8 is a block diagram showing a schematic configuration of the information processing apparatus according to
次に、上記のように構成されている本実施の形態5による情報処理装置の動作を説明する。なお、ここでは、上記実施の形態3による情報処理装置の動作と異なる部分を中心に説明する。
本実施の形態5では、命令フェッチ部2がプログラム記憶部8を経由せずに記憶部7からプログラムを読み出す場合は、複数の暗号化共通鍵保持部31、32、33は、スーパーバイザ状態101および第1のタスク識別部102を選択し入力として動作する。つまり、上記実施の形態3の情報処理装置と同様の動作を行なう。
Next, the operation of the information processing apparatus according to the fifth embodiment configured as described above will be described. Here, the description will focus on parts that differ from the operation of the information processing apparatus according to the third embodiment.
In the fifth embodiment, when the instruction fetch
命令フェッチ部2がプログラム記憶部8からプログラムを読み出す場合は、装置の動作は2段階に分かれて行われる。第1段階では、プログラム転送部9は、記憶部7から命令復号部6を通してプログラム記憶部8へプログラムの転送を行ない、その際、複数の暗号化共通部31、32、33は、第2のタスク識別部103を選択し入力として動作する。第2段階では、命令フェッチ部2は、プログラム記憶部8からプログラムを読み出して実行し、その際、プログラムは、既に命令復号部6によって復号されているので、復号せずに直接実行する。このため、CPU100が実行中のタスクと異なるタスクのプログラムの転送を行なうことが可能となる。
When the instruction fetch
なお、命令フェッチ部2が記憶部7から命令の読み出しを行なうか、プログラム記憶部8から命令の読み出しを行なうかは、例えばプログラムのアドレスにより区別することができる。
Whether the instruction fetch
また、第2のタスク識別部103の設定と、プログラム転送部9の設定および起動は、CPU100のプログラム実行によって行なうことができるが、本発明はこれを限定するものではなく、外部のホストCPUがこれらの設定および起動を行なっても良い。
The setting of the second
また、プログラム転送部9によってプログラムをプログラム記憶部8に転送する際に共通鍵を格納する別途の暗号化共通鍵格納部を備え、プログラム記憶部8を記憶部7のアドレス空間とは別のアドレス空間に配置し、プログラム転送部9をプログラム転送命令によって明示的に起動するように構成する場合、外部メモリから、メモリのアドレスが異なる内蔵メモリへのプログラム転送であっても、同様な効果を得られ、少ないコストで暗号化されたプログラムを実行することができる。
The program transfer unit 9 includes a separate encrypted common key storage unit that stores a common key when the program is transferred to the
また、図9に示すように、命令フェッチ部2が記憶部7から読み出したプログラムを命令復号部6によって復号し、そのプログラムを命令キャッシュ400のキャッシュメモリに格納する構成とすることも可能である。
Further, as shown in FIG. 9, it is possible to adopt a configuration in which the instruction fetch
さらに、図9に示す命令キャッシュ400を用いた構成と、図8に示すプログラム記憶部8を用いた構成を組み合わせた構成をとることも可能である。
Furthermore, it is possible to adopt a configuration in which the configuration using the
なお、プログラム格納部8および命令キャッシュ400は、命令フェッチ部2からの読み出しのみに対して許可するものなので、暗号化プログラムの秘密性が堅牢であることは明かである。
Since the
このように、本実施の形態5による情報処理装置では、復号されたプログラムを格納するプログラム記憶部8と、上記復号されたプログラムの転送を制御するプログラム転送部9と、上記転送を行う際複数の暗号化共通鍵保持部より1つの共通鍵を選択する第2のタスク識別部103とを備え、命令が暗号化されている場合、予め復号してプログラム記憶部8に格納することにより、命令を実行する際、CPU100は、復号されたプログラムをプログラム記憶部8から読み出して即座に実行できるので、プログラムの実行が速くなるという効果がある。
As described above, in the information processing apparatus according to the fifth embodiment, the
また、命令キャッシュ400を備え、復号されたプログラムをキャッシュメモリに保持させる構成とするようにしても、同様に、命令が暗号化されている場合、予め復号してキャッシュメモリに格納することにより、命令を実行する際、CPU100は、復号されたプログラムをキャッシュメモリから読み出して即座に実行できるので、プログラムの実行が速くなるという効果がある。
Further, even if the
(実施の形態6)
図10は、本実施の形態6によるデバッグ装置の概略構成を示すブロック図である。
図10において、情報処理装置200は、上述の実施の形態1で説明した動作を行なうものである。さらに、301は、情報処理装置200から読み出した、プログラムデバッグのために停止したプログラムアドレス、302は、情報処理装置200の中の暗号化されたプログラムを保持する記憶部からの読み出し、303は、デバッグする対象のプログラムを表示する命令表示部、304は、デバッグするプログラムの格納アドレス情報と、そのプログラムの格納アドレスに格納されているプログラムの共通鍵情報を含むデバッグ情報保持部である。
(Embodiment 6)
FIG. 10 is a block diagram showing a schematic configuration of the debugging device according to the sixth embodiment.
In FIG. 10, the
次に、上記のように構成されている本実施の形態6によるデバッグ装置の動作を説明する。
命令表示部303は、デバッグのために停止したプログラムの停止アドレス301を入力とし、停止アドレス301が、デバッグ情報保持部304に格納されているプログラムの格納アドレスの示す範囲内にあるかどうかを判定する。
Next, the operation of the debugging device according to the sixth embodiment configured as described above will be described.
The
上記範囲内に、該当するプログラム格納アドレス情報がない場合は、命令表示部303は、情報処理装置200から停止アドレス301、およびその周辺のプログラムを含む読み出し302を新たに読み出して保持し、必要に応じて逆アセンブルなどの処理を行なって表示する。また、該当するプログラム格納アドレス情報がある場合は、情報処理装置200からの停止アドレス301、およびその周辺のプログラムを含む読み出し302を該命令表示部303の中より取り出し、該当の格納アドレス情報に対応する共通鍵情報を用いて、暗号化された上記の停止アドレス301周辺のプログラムを復号し、必要に応じて逆アセンブルなどの処理を行なって表示する。
If there is no corresponding program storage address information within the above range, the
このように、本実施の形態6によるデバッグ装置では、デバッグする対象のプログラムを表示する命令表示部303と、デバッグするプログラムの格納アドレス情報、及びその格納アドレスに格納されているプログラムの共通鍵情報を保持するデバッグ情報保持部304とを備え、暗号化されたプログラムの格納アドレス、及びその対応する共通鍵情報を予めデバッグ装置のデバッグ情報保持部304に設定するようにしたので、暗号化されたプログラムを復号化することが可能となり、これにより、プログラムを正しく表示し、プログラムをデバッグすることができる。
As described above, in the debugging device according to the sixth embodiment, the
(実施の形態7)
本発明の実施の形態7によるデバッグ装置は、上記実施の形態6によるデバッグ装置に対して、暗号化されたプログラムに対してブレイクポイント命令を埋め込めるようにしたものであり、以下、図面を用いて説明する。
(Embodiment 7)
The debugging device according to the seventh embodiment of the present invention is such that a breakpoint instruction can be embedded in an encrypted program with respect to the debugging device according to the sixth embodiment. I will explain.
図11は、本実施の形態7によるデバッグ装置の概略構成を示すブロック図である。
図11に示すように、本実施の形態7によるデバッグ装置は、上記実施の形態6とは、情報処理装置200の中のプログラム格納部にプログラムを書き込む暗号部305を新たに備えた点において異なり、その他の構成要素は、上記実施の形態6にかかるデバッグ装置(図10)と同様で、同一符号を付しており、その説明を省略する。
FIG. 11 is a block diagram showing a schematic configuration of the debugging device according to the seventh embodiment.
As shown in FIG. 11, the debugging device according to the seventh embodiment is different from the sixth embodiment in that an
次に、上記のように構成されている本実施の形態7によるデバッグ装置の動作を説明する。なお、ここでは、上記実施の形態6によるデバッグ装置の動作と異なる部分を中心に説明を行う。 Next, the operation of the debugging device according to the seventh embodiment configured as described above will be described. Here, the description will focus on parts that are different from the operation of the debugging device according to the sixth embodiment.
デバッグのためにブレイクポイント命令を埋め込むアドレスが、デバッグ情報保持部304に格納されているプログラムの格納アドレスの示す範囲内にあるかどうかを判定する。
It is determined whether the address at which the breakpoint instruction is embedded for debugging is within the range indicated by the storage address of the program stored in the debug
該当するプログラム格納アドレス情報がない場合は、暗号部305は出力線306を介して、情報処理装置の中のプログラム格納部に対しそのアドレスにブレイクポイント命令を書き込む。また、該当するプログラム格納アドレス情報がある場合は、該当の格納アドレス情報に対応する共通鍵情報を用いてブレイクポイント命令を暗号化し、出力線306を介して上記プログラム格納部に対しそのアドレスに書き込む。
If there is no corresponding program storage address information, the
このように、本実施の形態7によるデバッグ装置では、上記実施の形態6のデバッグ装置の構成に、ブレイクポイント命令を情報処理装置の中のプログラム格納部に埋め込む暗号部305を追加するようにしたので、暗号化されたプログラムの格納アドレスと、その共通鍵情報がデバッグ装置に設定してある場合は、正しくブレイクポイント命令を書き込むことが可能となり、高価なハードウェアによるブレイクポイント部なしにプログラムのデバッグを可能にすることができる。
As described above, in the debugging device according to the seventh embodiment, the
本発明にかかる情報処理装置は、タスク毎の暗号鍵を用いて複数の暗号化されたプログラムを実行する機能を有し、著作権保護の必要なディジタル情報の処理装置として有用である。 The information processing apparatus according to the present invention has a function of executing a plurality of encrypted programs using an encryption key for each task, and is useful as a digital information processing apparatus that requires copyright protection.
1 命令実行部
2 命令フェッチ部
3、31、32、33、300 暗号化共通鍵保持部
4 共通鍵復号部
5 秘密鍵保持部
6 命令復号部
7 記憶部
8 プログラム記憶部
11 レジスタ
12 コンテキスト切替部
100 CPU
101 スーパーバイザ状態
102 第1のタスク識別部
103 第2のタスク識別部
303 命令表示部
304 デバッグ情報保持部
305 暗号部
400 命令キャッシュ
DESCRIPTION OF
101
Claims (9)
上記秘密鍵に対応する公開鍵によって暗号化された共通鍵を少なくとも一つのタスクに対応して保持する暗号化共通鍵保持部と、
上記暗号化共通鍵保持部に保持された暗号化された共通鍵を入力とし、上記秘密鍵によって復号する共通鍵復号部と、
命令フェッチを行なうタスクに対応する上記共通鍵が上記暗号化共通鍵保持部に保持されている場合に、上記復号された共通鍵を用いて該タスクのプログラムを復号する命令復号部と、
上記命令復号部から上記タスクのプログラムをフェッチして実行する命令実行部と、を備えた、
ことを特徴とする情報処理装置。 A secret key holding unit for holding a secret key;
An encrypted common key holding unit that holds a common key encrypted with a public key corresponding to the secret key, corresponding to at least one task;
A common key decryption unit that receives an encrypted common key held in the encrypted common key holding unit as input and decrypts it with the secret key;
An instruction decryption unit that decrypts a program of the task using the decrypted common key when the common key corresponding to the task performing the instruction fetch is held in the encrypted common key holding unit;
An instruction execution unit that fetches and executes the program of the task from the instruction decoding unit,
An information processing apparatus characterized by that.
少なくとも上記命令実行部がタスク切替えを行なうプログラムを実行するスーパーバイザ状態を有し、
上記スーパーバイザ状態であるときには、上記復号部は、上記プログラムの復号を行わない、
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
At least the instruction execution unit has a supervisor state for executing a program for switching tasks,
When in the supervisor state, the decoding unit does not decode the program.
An information processing apparatus characterized by that.
複数のタスクの共通鍵をそれぞれに保持する複数の上記暗号化共通鍵保持部と、
実行するタスクのタスク番号を保持する第1のタスク識別部と、を備え、
上記第1のタスク識別部は、上記タスク番号を基に上記複数の暗号化共通鍵保持部から一つの暗号化共通鍵保持部を選択し、
上記共通鍵復号部は、上記選択された暗号化共通鍵保持部に保持されている共通鍵を入力とし、上記秘密鍵によって復号する、
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 1 or 2,
A plurality of the above-mentioned encrypted common key holding units each holding a common key of a plurality of tasks;
A first task identification unit that holds a task number of a task to be executed,
The first task identification unit selects one encrypted common key holding unit from the plurality of encrypted common key holding units based on the task number,
The common key decryption unit receives the common key held in the selected encrypted common key holding unit, and decrypts with the secret key.
An information processing apparatus characterized by that.
上記複数のタスクのプロセッサ状態情報を保持する複数のコンテキストと、
実行中のタスクのタスク番号を上記第1のタスク識別部に設定するコンテキスト切替え部と、を備え、
上記複数の暗号化共通鍵保持部は、上記複数のタスクのそれぞれのコンテキストであり、
上記複数のタスクは、上記コンテキストを上記コンテキスト切替え部により切替えながら実行する、
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 3.
A plurality of contexts holding processor state information of the plurality of tasks;
A context switching unit that sets the task number of the task being executed in the first task identification unit,
The plurality of encrypted common key holding units are contexts of the plurality of tasks,
The plurality of tasks are executed while the context is switched by the context switching unit.
An information processing apparatus characterized by that.
上記命令復号部によって復号されたプログラムを格納するプログラム記憶部と、
上記プログラム記憶部へのプログラムの転送を制御するプログラム転送部と、
上記プログラム転送部によってプログラムを転送する場合、該プログラムに対応するタスク番号を保持して上記複数の暗号化共通鍵保持部から一つの共通鍵を選択する第2のタスク識別部と、を備え、
上記命令実行部は、上記プログラム記憶部からプログラムをフェッチして実行する、
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 3.
A program storage unit for storing the program decoded by the instruction decoding unit;
A program transfer unit for controlling transfer of the program to the program storage unit;
A second task identification unit that holds a task number corresponding to the program and selects one common key from the plurality of encrypted common key holding units when transferring the program by the program transfer unit;
The instruction execution unit fetches and executes a program from the program storage unit.
An information processing apparatus characterized by that.
上記命令復号部によって復号されたプログラムを格納するキャッシュメモリと、上記キャッシュメモリへのプログラムの転送を制御するキャッシュコントローラとからなる命令キャッシュを備え、
上記命令実行部は、上記命令キャッシュからプログラムをフェッチして実行する、
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 3.
An instruction cache comprising a cache memory for storing a program decoded by the instruction decoding unit, and a cache controller for controlling transfer of the program to the cache memory;
The instruction execution unit fetches and executes a program from the instruction cache;
An information processing apparatus characterized by that.
上記プログラム転送部によってプログラムを上記プログラム記憶部に転送する際に上記共通鍵復号部に入力する共通鍵を格納する別途の暗号化共通鍵格納部をさらに備え、
上記プログラム記憶部は、上記暗号化されたプログラムのアドレス空間と別のアドレス空間に配置され、
上記プログラム転送部は、プログラム転送命令によって明示的に起動される、
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 5,
A separate encrypted common key storage unit that stores a common key to be input to the common key decryption unit when the program transfer unit transfers the program to the program storage unit;
The program storage unit is arranged in an address space different from the address space of the encrypted program,
The program transfer unit is explicitly activated by a program transfer instruction.
An information processing apparatus characterized by that.
上記暗号化されたプログラムの格納アドレス情報と、対応する上記共通鍵とを格納するデバッグ情報保持部と、
上記暗号化されたプログラムの格納アドレス情報、及び対応する上記復号された共通鍵を用いて、上記情報処理装置から読み出した暗号化プログラムを復号して命令表示を行なう命令表示部と、を備えた、
ことを特徴とするデバッグ装置。 A debugging device used in combination with the information processing device according to claim 1,
A debug information holding unit for storing the storage address information of the encrypted program and the corresponding common key;
A command display unit that decrypts the encrypted program read from the information processing device and displays a command using the storage address information of the encrypted program and the corresponding decrypted common key. ,
A debugging device characterized by that.
上記復号されたプログラムにブレイクポイント命令を埋め込み、上記共通鍵によって暗号化を行ない、該暗号化されたプログラムを上記情報処理装置の該プログラムが格納されていた場所に書き込む暗号部を備えた、
ことを特徴とするデバッグ装置。 The debugging device according to claim 8, wherein
An encryption unit that embeds a breakpoint instruction in the decrypted program, performs encryption with the common key, and writes the encrypted program to the location where the program of the information processing apparatus was stored;
A debugging device characterized by that.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004273056A JP2006091967A (en) | 2004-09-21 | 2004-09-21 | Information processor and debugging device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004273056A JP2006091967A (en) | 2004-09-21 | 2004-09-21 | Information processor and debugging device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006091967A true JP2006091967A (en) | 2006-04-06 |
Family
ID=36232922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004273056A Pending JP2006091967A (en) | 2004-09-21 | 2004-09-21 | Information processor and debugging device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006091967A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010528511A (en) * | 2007-05-23 | 2010-08-19 | シーメンス アクチエンゲゼルシヤフト | Software encryption method, software decryption method, software encryption device, and software decryption device |
KR101785540B1 (en) | 2016-03-09 | 2017-11-15 | 한양대학교 산학협력단 | Emulation method and apparatus for processing request for non-deterministic hardware interrupt |
-
2004
- 2004-09-21 JP JP2004273056A patent/JP2006091967A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010528511A (en) * | 2007-05-23 | 2010-08-19 | シーメンス アクチエンゲゼルシヤフト | Software encryption method, software decryption method, software encryption device, and software decryption device |
KR101785540B1 (en) | 2016-03-09 | 2017-11-15 | 한양대학교 산학협력단 | Emulation method and apparatus for processing request for non-deterministic hardware interrupt |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3682362B1 (en) | Call path dependent authentication | |
US7065215B2 (en) | Microprocessor with program and data protection function under multi-task environment | |
TWI531968B (en) | Encryption method and microprocessor with a decryption capability and microprocessor operating method and computer program product | |
KR100550593B1 (en) | A microprocessor | |
JPWO2006126686A1 (en) | Data processing device | |
JP4680876B2 (en) | Information processing apparatus and instruction fetch control method | |
JP2013542498A (en) | Debugging data processing equipment | |
JP2009163741A (en) | Data processing apparatus including data processor processing data in secure mode and non-secure mode, and data processing method | |
US9116741B2 (en) | Computer program product, and information processing apparatus and method | |
EP2270707B1 (en) | Loading secure code into a memory | |
CN105843776A (en) | Microprocessor and method for safely executing instruction therein | |
JPH08185361A (en) | Semiconductor integrated circuit device | |
JP2006091967A (en) | Information processor and debugging device | |
JP3642533B2 (en) | Program card and computer using the same | |
JP6672341B2 (en) | Protection of virtual machine state information | |
JP4309726B2 (en) | Microprocessor | |
JP2008140124A (en) | Data processor | |
JP2011150457A (en) | Information processing apparatus and memory access control method | |
JP2014119953A (en) | Computer and interrupt service routine execution method | |
JP2002229776A (en) | Data processor for executing multiple sets of instructions | |
JP2011081429A (en) | System and method for concealing program | |
JP2007122547A (en) | Program implementation method and shared memory type multicore processor | |
JP2005122723A (en) | Program card and computer using the same | |
JPS6029846A (en) | Execution state control system of information processor | |
JP2020525957A (en) | Contextual data management |