JP4612461B2 - マイクロプロセッサ - Google Patents

マイクロプロセッサ Download PDF

Info

Publication number
JP4612461B2
JP4612461B2 JP2005124116A JP2005124116A JP4612461B2 JP 4612461 B2 JP4612461 B2 JP 4612461B2 JP 2005124116 A JP2005124116 A JP 2005124116A JP 2005124116 A JP2005124116 A JP 2005124116A JP 4612461 B2 JP4612461 B2 JP 4612461B2
Authority
JP
Japan
Prior art keywords
information
access
key
protection
plaintext
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
JP2005124116A
Other languages
English (en)
Other versions
JP2006072963A (ja
Inventor
洋美 春木
幹生 橋本
健 川端
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2005124116A priority Critical patent/JP4612461B2/ja
Priority to US11/159,230 priority patent/US7707645B2/en
Publication of JP2006072963A publication Critical patent/JP2006072963A/ja
Application granted granted Critical
Publication of JP4612461B2 publication Critical patent/JP4612461B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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

Landscapes

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

Description

本発明は、プロセッサコアを備えたマイクロプロセッサに関するものである。
近年、マイクロプロセッサ内部にデバッガインタフェースを内蔵し、それとデバッガを接続することによって、プロセッサ内部の状態を解析して、ソフトウェア開発時のデバッグを容易にする方法が知られている。
この方法を利用することにより、デバッガからプロセッサに内蔵されたデバッグインタフェースを経由して、プロセッサ内部のレジスタやメモリ等のリソースにアクセスすることができる。また、プロセッサで動作しているプログラムのステップ実行をすることができるなどの利点がある。
しかし、デバッガインタフェースを内蔵することにより、ソフトウェア開発者がプログラムの動作を検証しやすくなる一方で、他のソフトウェア開発者やユーザがソフトウェアを解析しやすくなるといった問題がある。
例えば、開発したソフトウェアに機密情報が含まれる場合には、ソフトウェアユーザだけでなく、他のソフトウェア開発者からの解析も防ぐ必要がある。
そのための技術として、復号化の際に選択した鍵に基づいて、デバッグ機能を禁止する方法や、プロセッサ内部のメモリに格納された保護対象のプログラムがデバッグ対象として選択された場合に、デバッグ機能の動作を禁止する方法が提案されている(例えば、特許文献1参照)。
特開2002−244757号公報
しかしながら、保護対象のプログラムと非保護対象のプログラムが混在する場合がある。この場合には、保護対象のプログラムに対してのみデバッガからのアクセスを禁止する必要がある。このように、より適切なプログラムの保護が可能なマイクロプロセッサの提供が望まれている。
本発明は、上記に鑑みてなされたものであって、外部からのアクセスを効果的に禁止することのできるマイクロプロセッサを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、プロセッサコアを備えたマイクロプロセッサであって、前記プロセッサコアが利用する情報を外部から取得する情報取得手段と、前記情報取得手段が取得した情報が暗号化された暗号化情報である場合に、当該暗号化情報を復号化し、平文情報を得る復号化手段と、前記復号化手段によって復号化された前記平文情報を保持する平文情報保持手段と、前記復号化手段による復号化が施されたか否かに基づいて、前記平文情報に対し保護又は非保護を示す保護属性を付与する保護属性付与手段と、前記平文情報保持手段に保持されている前記平文情報へアクセスすることを要求するアクセス要求を取得するアクセス要求取得手段と、前記アクセス要求取得手段が取得した前記アクセス要求が、前記プロセッサコアからの要求か否かを表す要求種別を特定する要求種別特定手段と、前記要求種別特定手段が特定した前記要求種別が、前記プロセッサコアからの要求を表す特定要求種別以外の要求種別である場合に、保護を示す保護属性が付与された前記平文情報へのアクセスを制限するアクセス制御手段とを備えたことを特徴とする。
また、本発明の他の形態としては、プロセッサコアを備えたマイクロプロセッサであって、前記プロセッサコアが利用する情報を外部から取得する情報取得手段と、前記情報取得手段が取得した情報が暗号化された暗号化情報である場合に、当該暗号化情報を復号化し、平文情報を得る復号化手段と、前記復号化手段によって復号化された前記平文情報を保持する平文情報保持手段と、前記復号化手段が復号化を行うときに利用する復号鍵を保持する復号鍵保持手段と、前記平文情報に対し、前記復号鍵保持手段が保持している前記復号鍵を識別する鍵識別情報を付与する鍵識別情報付与手段と、前記鍵識別情報付与手段が付与した前記鍵識別情報を保持する鍵識別情報保持手段と、前記平文情報保持手段に保持されている前記平文情報へアクセスすることを要求するアクセス要求を取得するアクセス要求取得手段と、前記アクセス要求取得手段が取得した前記アクセス要求が、前記プロセッサコアからの要求か否かを表す要求種別を特定する要求種別特定手段と、前記要求種別特定手段が特定した前記要求種別が、前記プロセッサコアからの要求を表す特定要求種別以外の要求種別である場合に、保護を示す保護属性を表す前記鍵識別情報が付与された前記平文情報へのアクセスを制限するアクセス制御手段とを備えたことを特徴とする。
本発明にかかるマイクロプロセッサにおいては、情報取得手段が、プロセッサコアが利用する情報を外部から取得し、復号化手段が、情報取得手段が取得した情報が暗号化された暗号化情報である場合に、当該暗号化情報を復号化し、平文情報を得て、平文情報保持手段が、復号化手段によって復号化された平文情報を保持し、保護属性付与手段が、復号化手段による復号化が施されたか否かに基づいて、平文情報に対し保護又は非保護を示す保護属性を付与し、アクセス要求取得手段が、平文情報保持手段に保持されている平文情報へのアクセス要求を取得し、要求種別特定手段が、アクセス要求取得手段が取得したアクセス要求の種別を特定し、アクセス制御手段が、要求種別特定手段が特定した要求種別および保護属性付与手段が付与した保護属性に基づいて平文情報へのアクセスを制御する。すなわち、保護属性付与手段は外部から取得した情報を復号化したか否かに基づいて、当該情報に保護属性を付与し、アクセス要求を取得すると、保護属性およびアクセス要求の要求種別に基づいて情報へのアクセスを制御するので、外部からの情報への不正なアクセスを効率的に禁止することができるという効果を奏する。
また、本発明の他の形態にかかるマイクロプロセッサにおいては、情報取得手段が、プロセッサコアが利用する情報を外部から取得し、復号化手段が、情報取得手段が取得した情報が暗号化された暗号化情報である場合に、当該暗号化情報を復号化し、平文情報を得て、平文情報保持手段が、復号化手段によって復号化された平文情報を保持し、復号鍵保持手段が、復号化手段が復号化を行うときに利用する復号鍵を保持し、鍵識別情報付与手段が、平文情報に対し、復号鍵保持手段が保持している復号鍵を識別する鍵識別情報を付与し、鍵識別情報保持手段が、鍵識別情報付与手段が付与した鍵識別情報を保持し、アクセス要求取得手段が、平文情報保持手段に保持されている平文情報へのアクセス要求を取得し、要求種別特定手段が、アクセス要求取得手段が取得したアクセス要求の要求種別を特定し、アクセス制御手段が、要求種別特定手段が特定した要求種別および鍵識別情報保持手段が保持した鍵識別情報に基づいて平文情報へのアクセスを制御するので、外部からの情報への不正なアクセスを効率的に禁止することができるという効果を奏する。
また、本発明の他の形態にかかるマイクロプロセッサにおいては、保護属性保持手段が、パイプラインの各ステージが実行しているプログラムに対する保護属性を、各ステージに対応付けて保持し、デバッグ要求取得手段が、デバッガからのデバッグ要求を取得し、
デバッグ割込制御手段が、デバッグ要求取得手段がデバッグ要求を取得したときに保護属性保持手段が保持している保護属性がすべて保護を示す保護属性である場合に、デバッガからのアクセスを許可するので、デバッガによる不正なアクセスを禁止することができるという効果を奏する。
また、本発明の他の形態にかかるマイクロプロセッサにおいては、保護属性保持手段が、プロセッサコアが実行しているプログラムに対する保護属性を保持し、トレース情報出力制御手段が、保護属性保持手段が保持している保護属性が非保護を示す保護属性である場合に、マイクロプロセッサから得られたトレース情報の出力を許可するので、出力されたトレース情報が不正に読み取られるのを防ぐことができるという効果を奏する。
以下に、本発明にかかるマイクロプロセッサの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
(実施の形態1)
図1は、本発明にかかるマイクロプロセッサを備えたシステム10の全体構成を示す図である。システム10は、プロセッサ100と外部メモリ200と、ユーザインターフェース300と、外部バス400とを備えている。プロセッサ100は、プロセッサコア110と、内部メモリ120と、ダイレクトメモリアクセスコントローラ(DMAコントローラ)130と、デバッガインターフェース140と、バスインターフェースユニット(BIU)150とを有している。
外部メモリ200は、プロセッサコア110の実行対象となるプログラムを保持している。なお、外部メモリ200は、暗号化の施された暗号化プログラムと、暗号化の施されていない平文プログラムとを保持している。
DMAコントローラ130は、外部メモリ200と内部メモリ120の間のデータの転送を行う。DMAコントローラ130は、暗号化プログラムを取得した場合には、復号化し、平文プログラムとして内部メモリ120に保持させる。また、平文プログラムを取得した場合には、そのまま内部メモリ120に保持させる。
プロセッサコア110は、内部メモリ120、キャッシュコントローラ(図示せず)、外部メモリ200に保持されているプログラムを読み出し、実行する。BIU150は、外部との入出力を行うインターフェースであって、プロセッサコア110やキャッシュコントローラ(図示せず)からの要求により、外部メモリ200に保持されているデータを読み書きする。
デバッガインターフェース140は、外部でデバッガ500に接続されている。そして、デバッガ500からの要求に対して、プロセッサコア110、内部メモリ120、DMAコントローラ130等へ要求を振り分ける。また、各部からの要求に対応した実行結果を受け取ると、実行結果をデバッガ500に返す。
DMAコントローラ130は、鍵IDレジスタ132と、鍵テーブル133と、暗号復号器134と、保護属性付与部135とを有している。
鍵IDレジスタ132には、外部メモリ200から読み出したプログラムを復号化するときに利用する暗号復号鍵を識別する鍵IDが設定される。ここで、鍵IDの値は、ユーザインターフェース300を介し、ユーザによって設定される。また、外部メモリ200から読み出すプログラムが暗号化されていない平文プログラムである場合には、鍵IDレジスタ132に「0」が設定される。なお、他の例としては、鍵IDの値は、プログラムの実行により自動的に設定されてもよい。
鍵テーブル133は、鍵IDと暗号復号鍵とを対応付けて保持している。図2は、鍵テーブル133のデータ構成を模式的に示している。鍵テーブル133は、暗号復号化に利用する暗号復号鍵を識別する鍵IDと、暗号復号鍵とを対応付けて保持している。なお、鍵テーブル133に保持される鍵IDは、「0」以外の値である。
これにより、鍵IDレジスタ132に設定されている値が「0」か否かによって、復号化が行われた否か、すなわちプログラムを暗号化された状態で取得したか否かを特定することができる。
鍵IDレジスタ132に「0」以外が設定されている場合には、外部メモリ200から取得したプログラムは暗号化されたプログラムであるので、暗号復号器134は、鍵テーブル133を利用して鍵IDレジスタ132に設定された鍵IDに対応する暗号復号鍵を特定する。そして、特定した暗号復号鍵を利用して、暗号化プログラムを復号化して、平文プログラムを得る。暗号復号器134はまた、鍵IDレジスタ132に「0」がセットされている場合には、平文プログラムであるので復号化を行わない。
保護属性付与部135は、外部メモリ200から取得したプログラムの保護属性を付与する。図3は、保護属性付与部135が保護属性を付与するときに利用する保護属性決定テーブル136を示している。
図3に示すように保護属性付与部135は、鍵IDレジスタ132に「0」がセットされている場合は、対応するプログラムに対して非保護を示す保護属性「0」を付与する。また、鍵IDレジスタ132に「0」以外の値がセットされている場合は、対応する平文プログラムに対して保護を示す保護属性「1」を付与する。すなわち、暗号化プログラムとして外部から取得したプログラムに対しては、保護を示す保護属性を付与し、平文プログラムとして外部から取得したプログラムに対しては、非保護を示す保護属性を付与する。
これにより、暗号化プログラムとして取得したプログラムのみを保護対象とすることができる。
なお、実施の形態1においては、保護属性として「0」、「1」を利用したが、保護および非保護を特定できればよく、これに限定されるものではない。例えば、保護属性として、鍵IDレジスタ132に設定される値を利用してもよく、また例えば暗号復号鍵の値を保護属性として利用してもよい。
保護属性付与部135は、平文プログラムに対して付与した保護属性を、当該平文プログラムに対応付けて内部メモリ120に保持させる。
内部メモリ120は、プログラムを保持する命令メモリ部121と、データを保持するデータメモリ部125とを有している。さらに、命令メモリ部121は、保護属性メモリ122と、命令メモリ123と、命令メモリアクセス制御部124とを有している。
命令メモリ123は、暗号復号器134から取得した平文プログラムを保持する。保護属性メモリ122は、命令メモリ123に保持されている平文プログラムに対して付与された保護属性を保持する。命令メモリアクセス制御部124は、外部から命令メモリ123へのアクセスを制御する。
図4は、命令メモリアクセス制御部124のアクセス制御のルールを模式的に示している。図4に示すように、プロセッサコア110による命令フェッチであって、かつ要求されているプログラムに保護を示す保護属性が付与されている場合には、アクセスを許可する。また、プロセッサコア110による命令フェッチ以外のアクセス要求であって、かつ要求されているプログラムに保護を示す保護属性が付与されている場合には、アクセスを制限する。すなわち、エラーを出力する。また、要求されているプログラムに非保護を示す保護属性が付与されている場合には、要求種別に関わらずアクセスを許可する。
このように、特定の要求種別以外の要求種別によるアクセスを制限することにより、第三者が不正に平文プログラムを読み出すのを防止することができる。また、このように、保護を示す保護属性が付与されたプログラムへのアクセスを制限することにより、所定の平文プログラムが不正に読み出されるのを防止することができる。
図5は、外部メモリ200に保持されているプログラムをDMAコントローラ130を介して内部メモリ120に書き込む処理を示すフローチャートである。
まず、ユーザは、プロセッサコア110に実行させるべきプログラムを外部メモリ200に格納する。ここで、プログラムを外部メモリ200上のアドレスX〜Yに格納するとする。また、プログラム実行前に、DMAコントローラ130の鍵IDレジスタ132に、鍵IDを設定する(ステップS100,ステップS102)。ここで、暗号復号鍵の設定は、ユーザインターフェース300を介してユーザからの指示により行われる。
プロセッサコア110は、DMA転送要求をDMAコントローラ130へ送る(ステップS104)。ここで、DMA転送要求は、外部メモリ200上のアドレスX〜Yのデータを内部メモリに転送することを要求する情報である。
DMAコントローラ130は外部メモリ200からアドレスX〜Yに対応するプログラムE2[C(X〜Y)]を読み出す(ステップS106)。このとき鍵IDレジスタ132に設定されている値が「0」以外である場合は(ステップS108,No)、暗号復号器134は、鍵テーブル133から得られた鍵で読み出した暗号化プログラムE2[C(X〜Y)]に対して復号化処理を施し、平文プログラムC(X〜Y)を得る(ステップS110)。
このように、鍵IDレジスタ132に「0」以外の値が設定されている場合には、対象となるプログラムは暗号化されているので、復号化により平文プログラムを得る。
一方、鍵IDレジスタ132に設定されている値が「0」である場合は(ステップS108,Yes)、復号化処理を行わず、後述のステップS112へ進む。
このように、鍵IDレジスタ132に「0」が設定されている場合には、対象となるプログラムは、平文であるので、復号化は行う必要がない。
次に、保護属性付与部135は、鍵IDレジスタ132の値に基づいて、内部メモリ120に保持させるべき平文プログラムに保護属性を付与する(ステップS112)。具体的には、保護属性付与部135は、鍵IDレジスタ132に設定されている値が「0」である場合、すなわち対象とするプログラムを平文として取得した場合には、非保護を示す保護属性「0」を付与する。
また、鍵IDレジスタ132に設定されている値が「0」以外である場合、すなわち対象とするプログラムを暗号化した状態で取得した場合には、保護を示す保護属性「1」を付与する。
そして、暗号復号器134は、平文プログラムを内部メモリ120に送る(ステップS114)。さらに、保護属性付与部135は、平文プログラムに付与された保護属性を内部メモリ120に送る(ステップS116)。
内部メモリ120は、DMAコントローラ130から送られてきた復号結果である、平文プログラムC(X〜Y)を命令メモリ123に保持させる(ステップS120)。また、内部メモリ120は、保護属性を保護属性メモリ122に保持させる(ステップS122)。
そして、DMAコントローラ130から内部メモリ120への平文プログラムの転送が完了すると、プロセッサコア110に対して、DMA転送が完了したことを通知する(ステップS124)。
次に、プロセッサコア110は、命令フェッチにより、平文プログラムの読み出しを要求する(ステップS126)。内部メモリ120は、読出要求を取得すると、要求された平文プログラムをプロセッサコア110に出力する(ステップS128)。
以上の処理により、内部メモリ120にプログラムが保存され、プロセッサコア110がプログラムを実行可能な状態となる。
図6は、図5を参照しつつ説明した処理によって内部メモリ120に保持されたプログラムを読み出す場合の読出処理を説明するためのフローチャートである。
内部メモリ120の命令メモリアクセス制御部124は、命令メモリ123に保存されているプログラムの読み出しを示す読出要求を取得すると(ステップS200)、読出要求を出力した要求種別がプロセッサコア110による命令フェッチか否かを特定する。具体的には、例えば、物理的な配線によって要求種別を特定してもよい。要求種別がプロセッサコア110による命令フェッチである場合には(ステップS202,Yes)、命令メモリアクセス制御部124は、命令メモリ123に保存されている平文プログラムをプロセッサコア110に出力する(ステップS212)。
要求種別がプロセッサコア110による命令フェッチ以外である場合には(ステップS202,No)、暗号復号器134は、要求されている平文プログラムの保護属性を特定する(ステップS204)。
要求されている平文プログラムに保護を示す保護属性が付与されている場合には(ステップS206,Yes)、エラーを出力する(ステップS210)。一方、要求されている平文プログラムに非保護を示す保護属性が付与されている場合には(ステップS206,No)、平文プログラムを出力する(ステップS212)。以上で読出処理が完了する。
ここで、プロセッサコア110が命令フェッチによって内部メモリ120の読出要求を行った場合について具体的に説明する。内部メモリ120にある命令メモリアクセス制御部124は、プロセッサコア110による命令フェッチであると判断すると、図4を参照しつつ説明したルールにしたがい、命令メモリ123から読み出した平文プログラムC(X〜Y)をプロセッサコア110に送る(ステップS202,Yes、ステップS212)。そして、プロセッサコア110は、取得した平文プログラムを実行する。
要求種別がプロセッサコア110による命令フェッチ以外であって(ステップS202,No)、かつ保護属性が非保護を示す「0」である場合には、(ステップS206,No)、平文プログラムを出力する(ステップS212)。
要求種別がプロセッサコア110による命令フェッチ以外であって(ステップS202,No)、かつ保護属性が保護を示す「1」である場合には(ステップS206,Yes)、エラーを出力する(ステップS210)。
このように、内部メモリ120の命令メモリアクセス制御部124は、プロセッサコア110による命令フェッチ以外の要求種別に対しては、平文プログラムの読み出しを制限するので、第三者によって不正に平文プログラムが読み出されるのを防止することができる。
また、外部メモリ200に暗号化プログラムとして保持されていたプログラムは、秘匿性が高いプログラムである可能性が高い。そこで、暗号化プログラムとして保持されていたプログラムのみに保護を示す保護属性を付与し、アクセス制御の対象とすることにより、所定のプログラムについてのみ、アクセス制御を行うことができる。
このように、外部メモリから複数のプログラムを読み込む場合には、アクセスを制御すべき保護プログラムと、アクセスを制限しない非保護プログラムとが内部メモリ120等に混在する場合がある。保護プログラムと非保護プログラムとが混在する場合であっても、保護プログラムへのアクセスのみを効率的に制限することができる。
なお、保護プログラムと非保護プログラムとが混在する場合としては、空間的な混在や時間的な混在がある。例えば、ある時刻には、保護プログラムが内部メモリ120に保持されているが、他の時刻には、非保護プログラムが内部メモリ120に保持されている場合がある。
また例えば、命令メモリ123の1000番地には、保護プログラムが保持されているが、命令メモリ123の5000番地には、非保護プログラムが保持されている場合がある。
デバッガ500によってソフトウェアを解析する方法の1つとして、デバッガ500からデバッガインターフェース140を介して内部メモリ120に保持されている平文プログラムの読出要求を行う方法が考えられる。
しかしこの場合、要求種別がプロセッサコア110による命令フェッチ以外であることから、図6において説明した読出処理にしたがい、保護を示す保護属性が付与された平文プログラムの読み出しを制限する。すなわち、命令メモリアクセス制御部124は、デバッガインターフェース140に対してエラーを出力する。したがって、デバッガ500を介して平文プログラムが読み出されるのを防止することができる。
また他の方法としては、DMAコントローラ130を介して第三者が不正に平文プログラムを読み出す方法が考えられる。例えば、デバッガ500が、DMAコントローラ130に対して、鍵ID0を指定して内部メモリ120から外部メモリ200へのDMA転送要求を行うことにより実現できる。このDMA転送要求は、内部メモリ120に保持されているプログラムを、内部メモリ120内の領域から外部メモリ200の適当な領域への転送要求である。
この場合、DMAコントローラ130は、デバッガ500からのDMA転送要求に対し、内部メモリ120からの転送を行う。具体的には、内部メモリ120の命令メモリ123から読み出し、外部メモリ200へ書き込みを行う。
しかしこの場合、要求種別がプロセッサコア110による命令フェッチ以外であることから、図6において説明した読出処理に従い、保護を示す保護属性が付与されたプログラムの読み出しを制限する。すなわち、エラーを出力する。
このように、デバッガ500は、デバッガインターフェース140を介したアクセスだけでなく、DMAコントローラ130や、BIU150を介してアクセスすることができる。しかし、この場合であっても、第三者に不正にプログラムが読み出されるのを防止することができる。
図7は、命令メモリ123に既に平文プログラムが保持された状態において、保護を示す保護属性が付与されているときに、新たに平文プログラムの書き込み、すなわち上書きが指示された場合の書込処理を示すフローチャートである。
内部メモリ120は、書込要求を取得すると(ステップS300)、既に保持されている平文プログラムに付与された保護属性を特定する(ステップS302)。平文プログラムに保護を示す保護属性「1」が付与されている場合には(ステップS304,Yes)、既にプログラムが保持されている命令メモリ123の内容を総てクリアする(ステップS306)。次に、書込要求が示すプログラムを命令メモリ123に書き込む(ステップS308)。
一方、平文プログラムに非保護を示す保護属性「0」が付与されている場合には(ステップS304,No)、ステップS308に進む。すなわち、命令メモリ123の内容をクリアすることなく、新たな平文プログラムを命令メモリ123に書き込む(ステップS308)。以上で、書込処理が完了する。なお、ステップS308における書込処理は、図5を参照しつつ説明した書込処理と同様である。
プログラムが既に書き込まれた状態で、プログラムの一部の上書きを許可した場合には、それ以外の既にプログラムが格納されている領域へのアクセスが可能となるため、既に保持されているプログラムを読み出すことが可能である。これを利用して、第三者が不正に平文プログラムを読み出すことが考えられる。
しかし、図7を参照しつつ説明したように、保護を示す保護属性が付与されたプログラムが既に保持されている場合には、命令メモリ123にプログラムを書き込む処理が開始する前に、命令メモリ123に既に保持されているプログラムを総てクリアし、その後で新たな平文プログラムを書き込むので、既に保持されているプログラムが不正に読み出されるのを防ぐことができる。
本発明を実施の形態を用いて説明したが、上記実施の形態に多様な変更または改良を加えることができる。
そうした第1の変更例としては、命令メモリ123は、複数の平文プログラムを同時に保持し、平文プログラム単位でアクセスを制限してもよい。図8は、この場合の保護属性メモリ122のデータ構成を模式的に示している。図8に示すように保護属性メモリ122は、平文プログラムを識別するプログラムIDと保護属性とを対応付けて保持している。
そして、第1の変更例においては、命令メモリアクセス制御部124は、保護属性メモリ122における対応関係に基づいて、各平文プログラムが保持されている領域単位で命令メモリ123へのアクセスを制限する。
例えば、プログラムID「0001」に対応する領域に対する読出要求を取得したとする。図8に示すようにプログラムID「0001」で識別される平文プログラムには保護を示す保護属性が付与されている。そこで、命令メモリ123は、プログラムID「0001」で識別される平文プログラムへのアクセスを制限する。また、プログラムID「0002」で識別される保護プログラムへのアクセスについては制限を行わない。
具体的には、プログラムID「0001」の読出要求を取得した場合には、プログラムID「0001」で識別される平文プログラムには、保護を示す保護属性が付与されているので、図6に示す読出処理にしたがい、平文プログラムを出力するか、エラーを出力するかを決定する。
一方、プログラムID「0002」の読出要求を取得した場合には、プログラムID「0002」で識別される平文プログラムには、非保護を示す保護属性が付与されているので、図6に示す読出処理にしたがい、平文プログラムを出力する。
またプログラムID「0001」の書込要求を取得した場合には、プログラムID「0001」で識別される平文プログラムには、保護を示す保護属性が付与されているので、図7に示す書込処理にしたがい、平文プログラムが既に保持されている領域に新たにプログラムを書き込む前に、既に保持されている平文プログラムをクリアする。
一方、プログラムID「0002」の書込要求を取得した場合には、プログラムID「0002」で識別される平文プログラムには、非保護を示す保護属性が付与されているので、図7に示す書込処理にしたがい、既に保持されている平文プログラムをクリアせずに、平文プログラムが既に保持されている領域に新たにプログラムを書き込む。
このように、保護を示す保護属性を付与された平文プログラムと、非保護を示す保護属性を付与された平文プログラムとを同時に保持している場合であっても、保護を示す保護属性が付与された平文プログラムへのアクセスのみを制限することができるので、所定の平文プログラムが第三者に不正に読み出されるのを防止することができる。
第2の変更例としては、第1の変更例においては、保護属性メモリ122は、プログラムIDと保護属性とを対応付けて保持していたが、これにかえて保護属性メモリ122は、命令メモリ123におけるバンク位置と保護属性とを対応付けて保持してもよい。
図9は、この場合の保護属性メモリ122のデータ構成を模式的に示している。図9に示すように、保護属性メモリ122は、命令メモリ123におけるバンク位置と各バンク位置に保持されている平文プログラムに付与された保護属性とを対応付けて保持している。第2の変更例においては、命令メモリアクセス制御部124は、バンク位置と保護属性との対応関係に基づいて各プログラムが保持されている領域単位で命令メモリ123へのアクセスを制御する。
例えば、バンク1と保護を示す保護属性とが対応付けられており、かつバンク1にプログラムID「0001」で識別される平文プログラムが保持されている場合には、プログラムID「0001」で識別される平文プログラムへのアクセスを制限する。また、バンク2と非保護を示す保護属性とが対応付けられており、かつバンク2にプログラムID「0002」で識別される平文プログラムが保持されている場合には、プログラムID「0002」で識別される平文プログラムへのアクセスを許可する。
このように、第2の変更例によれば、命令メモリ123が複数のプログラムを同時に保持している場合であっても、バンク単位で、第三者が平文プログラムを不正に読み出すのを防止することができる。
第3の変更例としては、実施の形態1においては、プログラムに対するアクセス制御について説明したが、これにかえてデータに対するアクセス制御を行ってもよい。図10は、第3の変更例にかかるシステム10の全体構成を示す図である。データメモリ部125は、命令メモリ部121と同様に、保護属性メモリ126と、データメモリ127と、データメモリアクセス制御部128とを有する。
なお、保護属性メモリ126の構成および処理は、保護属性メモリ122の構成および処理と同様である。また、データメモリ127の構成および処理は、命令メモリ123の構成および処理と同様である。また、データメモリアクセス制御部128の構成および処理は、命令メモリアクセス制御部124の構成および処理と同様である。
また、他の例としては、プログラムに対するアクセス制御とデータに対するアクセス制御とをともに行ってもよい。このように、アクセス制御の対象は、実施の形態に限定されるものではない。
第4の変更例としては、第3の変更例のようにデータに対するアクセス制御を行う場合、図7に示すように書込処理においては、データに付与された保護属性に基づいて、データを書き込む前に既に保持されているデータをクリアするか否かを決定したが、他の例としては、保護属性に加えて、要求元に応じてデータをクリアするか否かを決定してもよい。
図11は、第4の変更例にかかる書込処理を示すフローチャートである。図11に示すように、第4の変更例にかかる書込処理においては、取得した書込要求の要求種別がプロセッサコアからの書込要求である場合には(ステップS320,Yes)、ステップS308へ進む。すなわち、要求種別がプロセッサコア110からの書込要求である場合にはクリア処理を行わずに新たな平文プログラムの書き込みを行う。
このように、要求種別に基づいてアクセスを制御することにより、他の要求種別からのアクセスを制御することなく、所定の要求種別からのアクセスのみを効率的に制御することができる。
第5の変更例としては、実施の形態1においては、保護を示す保護属性が付与された平文プログラムに対する読出要求を取得した場合のアクセス制御として、読み出しを禁止することとしたが、これにかえて、暗号化した状態でプログラムを要求元に提供することとしてもよい。これにより、アクセス制御を行う場合には、プログラムが平文の状態で読み出されることがないので、第三者が不正に平文プログラムを読み出すのを防止することができる。
第6の変更例としては、実施の形態1においては、既に平文プログラムが保持されている領域にプログラムを上書きする場合には、プログラムの保護属性に応じて上書き処理の前に既に保持されているプログラムをクリアするか否かを決定したが、さらにユーザからの指示によって、プログラムをクリアするか否かを決定してもよい。
具体的には、既に保持されている平文プログラムに対するアクセス制御を行う場合には、保護を示す属性が付与された領域に対する上書きは禁止し、ユーザインターフェース300を介してユーザから既に保持されている平文プログラムをクリアする旨の指示を受け付けた場合にのみ平文プログラムをクリアし、これ以外の場合には、エラーを出力してもよい。これにより、ユーザがクリアをしない限り書き込みが出来ず、平文プログラムを保護できる。
(実施の形態2)
次に、実施の形態2にかかるシステム10について説明する。実施の形態2にかかるシステム10は、プロセッサコア110に保持されているレジスタ等へのアクセスを制御する。この点で、実施の形態1にかかるシステム10と異なっている。
図12は、実施の形態2にかかるシステム10の全体構成を示す図である。実施の形態2にかかるシステム10のプロセッサコア110は、実行ユニット112と、カレント保護属性レジスタ114およびコアアクセス制御部116を有している。
実行ユニット112は、プログラムを実行する。カレント保護属性レジスタ114は、実行ユニット112が実行中のプログラムの保護属性を保持する。コアアクセス制御部116は、プロセッサコア110が実行中のプログラムへのアクセスを制御する。
図13は、実施の形態2にかかるシステム10のプロセッサコア110がプログラムを実行するときの処理を示すフローチャートである。図13を参照しつつ、ユーザがプログラムを実行するときに行う処理について説明する。なお、外部メモリ200に保持されているプログラムを内部メモリ120の命令メモリ123に保持させるまでの処理は、実施の形態1において図5を参照しつつ説明した処理(ステップS100〜ステップS124)と同様である。
実行ユニット112が命令メモリ123に保持されているプログラムを実行する場合、まずプロセッサコア110は、命令フェッチにより内部メモリ120からプログラムの読出要求を行う(ステップS400)。
内部メモリ120の命令メモリアクセス制御部124は、読出要求の要求種別を特定する。要求種別がプロセッサコア110による命令フェッチである場合には(ステップS402,Yes)、命令メモリアクセス制御部124はプログラムを読み出す(ステップS404)。さらに、保護属性メモリ122からプログラムに付与されている保護属性を読み出す(ステップS406)。
次に、命令メモリアクセス制御部124は、プログラムおよび保護属性をプロセッサコア110に送る(ステップS408)。次に、プロセッサコア110は、内部メモリ120から取得したプログラムを実行ユニット112に渡す(ステップS410)。さらに、内部メモリ120から取得した保護属性をカレント保護属性レジスタ114に保持する(ステップS412)。なお、ステップS402において、要求種別がプロセッサコア110による命令フェッチ以外である場合には(ステップS402,No)、命令メモリ123は、エラーを出力する(ステップS414)。
以上で、実行ユニット112がプログラムを実行できる状態となり、実行ユニット112は、プログラムの実行を開始する。
コアアクセス制御部116は、カレント保護属性レジスタ114が保持している保護属性に応じて、実行ユニット112が実行しているプログラムに関するレジスタの値に対するデバッガインターフェース140からのアクセスを制御する。
以下、図14を参照しつつ、ソフトウェアの動作を解析する場合の処理を例に、アクセス制御にかかる処理を具体的に説明する。コアアクセス制御部116は、外部からプロセッサコア110のカレント保護属性レジスタ114の値の読出要求を取得する(ステップS420)。次に、コアアクセス制御部116は、カレント保護属性レジスタ114に保持されている保護属性を特定する(ステップS422)。
カレント保護属性レジスタ114が保護を示す保護属性を保持している場合には(ステップS424,Yes)、デバッガに対してエラーを出力する(ステップS432)。一方、カレント保護属性レジスタ114が非保護を示す保護属性を保持している場合には(ステップS424,No)、実行ユニット112が実行中のプログラムに関連するレジスタの値を出力する(ステップS430)。以上で、アクセス制御処理が完了する。
このように、デバッガインターフェース140がカレント保護属性レジスタ114の読出要求を行った場合には、コアアクセス制御部116は、アクセス制御処理にしたがい、デバッガインターフェース140に対して、エラーを出力する。したがって、デバッガインターフェース140に不正にプログラムが読み出されるのを防止することができる。
なお、実施の形態2にかかるシステム10のこれ以外の構成および処理は、実施の形態1にかかるシステム10の構成および処理と同様である。
図15は、実施の形態2の変更例にかかる読出処理を示すフローチャートである。図15に示すように、変更例にかかる読出処理においては、取得した読出要求の要求種別がデバッガインターフェース140以外によるアクセスである場合には(ステップS440,No)、ステップS430へ進む。すなわち、要求種別がデバッガインターフェース140によるアクセス以外である場合には、実行中のプログラムに関するレジスタの値を出力する。このように、要求種別に基づいてアクセスを制御することにより、他の要求種別からのアクセスを制御することなく、所定の要求種別を効率的に制御することができる。
(実施の形態3)
図16は、実施の形態3にかかるシステム10の全体構成を示す図である。実施の形態3にかかるシステム10のプロセッサコア110は、パイプライン600と、OR回路620と、コアアクセス制御部116とを有している。
実施の形態3にかかるプロセッサコア110は、パイプラインのステージごとに実行ユニットとカレント保護属性レジスタを有している。そして、各カレント保護属性レジスタ611〜614は、対応する実行ユニット601〜604において実行されているプログラムの保護属性を保持している。また、OR回路620は、各カレント保護属性レジスタ611〜614が保持している複数の保護属性に対してOR演算を行う。
そして、コアアクセス制御部116は、各カレント保護属性レジスタ611〜614が保持している保護属性に基づいて、外部からのアクセスを制限する。具体的には、4つのカレント保護属性レジスタ611〜614それぞれに保持されている複数の保護属性のうち少なくとも1つが保護を示す保護属性である場合に、外部からのアクセスを制限する。
このように、パイプラインにおいて複数のプログラムが同時に実行されている場合には、実行対象のプログラムのうち少なくとも1つのプログラムに保護を示す保護属性が付与されている場合には、外部からのアクセスを制限する。これにより、パイプライン処理においても、第三者が平文プログラムを不正に読み出すのを防ぐことができる。
なお、実施の形態3にかかるシステム10のこれ以外の構成および処理は、実施の形態1にかかるシステム10の構成および処理と同様である。
実施の形態3にかかるシステム10の第1の変更例としては、ステージ単位でアクセスを制御してもよい。この場合、実施の形態1における第1の変更例または第2の変更例において説明したのと同様に、ステージ単位でアクセス制御すればよい。これにより、非保護を示す保護属性が付与されているプログラムを実行しているステージへのアクセスを制御することなく、保護を示す保護属性が付与されているプログラムを保持しているステージへのアクセスのみを制御することができる。
第2の変更例としては、本実施の形態におけるパイプラインは4つのステージを有したが、ステージの数は実施の形態に限定されるものではなく、4つより多くてもよく、また少なくてもよい。
(実施の形態4)
次に、実施の形態4にかかるシステム10について説明する。実施の形態4にかかるシステム10においては、鍵IDに基づいて命令メモリ123へのアクセスを制御する。この点で他の実施の形態にかかるシステム10と異なっている。
図17は、実施の形態4にかかるシステム10の全体構成を示す図である。実施の形態4にかかるシステム10のDMAコントローラ130は、保護属性付与部135と保護属性決定テーブル136とにかえて、鍵ID付与部139を有している。
鍵ID付与部139は、外部メモリ200から取得したプログラムに対し、鍵IDレジスタ132に設定されている鍵IDを付与する。鍵ID付与部139はまた、付与した鍵IDを当該プログラムに対応付けて内部メモリ120に保持させる。なお、ここで、鍵IDは、保護または非保護を示す保護属性を示す情報でもある。具体的には、鍵ID「0」は、非保護の保護属性に対応する。また、「0」以外の鍵IDは、保護の保護属性に対応する。したがって、鍵IDに基づいて保護属性を特定することができる。
命令メモリ部121は、命令メモリ123と、命令メモリアクセス制御部124と、命令鍵IDメモリ160と、状態メモリ162と、命令メモリ初期化部164とを有している。
命令鍵IDメモリ160は、命令メモリ123に保持されている平文プログラムに対して付与された鍵IDを保持する。
状態メモリ162は、命令メモリ123に保持されている平文プログラムの状態を保持する。図18は、平文プログラムの状態の遷移を示す状態遷移図である。図18に示すように、プロセッサ100の起動時、すなわちリセット時には保護状態となる。特殊命令により初期化が指示されると初期化状態に遷移する。初期化状態のときに、鍵ID「0」、すなわち非保護の保護属性を示すプログラムに対する処理が行われると、非保護状態に遷移する。一方、初期化状態のときに、「0」以外の鍵ID、すなわち保護の保護属性に対応するプログラムに対する処理が行われると、保護状態に遷移する。
保護対象のプログラムが内部メモリ120に保持された状態でプロセッサ100がリセットされた場合には、内部メモリ120の状態メモリ162には、保護状態が保持される。そして、初期化しない限り保護の保護属性を示すプログラムの読み出しおよび書き込みは行うことができない。したがって、悪意の第三者が不正にアクセスするのを防止することができる。
また、保護状態から非保護状態への直接の遷移が許可されていない。したがって、悪意の第三者が、保護対象のプログラムを部分的に上書きし、不正に書き込むのを防止することができる。さらに、非保護状態から保護状態への直接の遷移も許可されていない。したがって、悪意の第三者が、保護対象でないプログラムの一部に保護対象のプログラムを上書きして不正に実行するのを防止することができる。
再び説明を図17に戻す。命令メモリ初期化部164は、外部からの特殊命令により命令メモリ123を初期化する。また、命令鍵IDメモリ160が保持している鍵IDに「0」をセットする。また、状態メモリ162が保持している保護状態を初期化状態にする。
図19は、命令メモリアクセス制御部124における、データの読み出しに対するアクセス制御のルールを模式的に示している。図19に示すように、プロセッサコア110による命令フェッチであって、かつ要求されているプログラムに「0」以外の鍵IDが付与されている場合には、読み出しを許可する。このときのプログラムの状態は、保護状態である。
また、プロセッサコア110による命令フェッチ以外の読み出しアクセス要求であって、かつ要求されているプログラムに「0」以外の鍵IDが付与されている場合には、読み出しを制限する。すなわち、エラーを出力する。このときのプログラムの状態は、保護状態である。
また、要求されているプログラムに鍵ID「0」が付与されている場合には、要求種別にかかわらず読み出しを許可する。なお、このときの保護状態は、初期化状態または非保護状態のいずれかの状態である。また、これ以外の場合には、エラーを出力する。
このように、実施の形態4にかかるシステム10においては、鍵IDに基づいて命令メモリ123からのデータの読み出しを制御することができる。さらに、鍵IDにより保護属性を特定することができるので、実施の形態1にかかるシステム10と同様に、保護を示す保護属性が付与されたプログラムへのアクセスを制御することができる。すなわち、所定の平文プログラムが不正に読み出されるのを防止することができる。
また、特定の要求種別以外の要求種別によるアクセスを制限することにより、第三者が不正に平文プログラムを読み出すのを防止することができる。
図20は、命令メモリアクセス制御部124における、データの書き込みに対するアクセス制御のルールを模式的に示している。図20に示すように、プログラムの状態が初期化状態であり、かつ鍵IDが「0」である場合には、アクセス要求元から取得した鍵IDの値によらず書き込みを許可する。要求されているプログラムに鍵ID「0」が付与されており、プログラムの状態が非保護状態であり、かつアクセス要求元から取得した鍵IDが「0」である場合には、書き込みを許可する。要求されているプログラムに鍵ID「0」が付与されており、プログラムの状態が非保護状態であり、かつアクセス要求元から取得した鍵IDが「0」以外である場合には、書き込みを制限する。すなわちエラーを出力する。
要求されているプログラムに「0」以外の鍵IDが付与されており、かつアクセス要求元から取得した鍵IDが「0」である場合には、エラーを出力する。要求されているプログラムに「0」以外の鍵IDが付与されており、かつ付与された鍵IDとアクセス要求元から取得した鍵IDが同じ値である場合には、書き込みを許可する。要求されているプログラムに「0」以外の鍵IDが付与されており、かつ付与された鍵IDとアクセス要求元から取得した鍵IDが異なる値である場合には、エラーを出力する。これ以外の組み合わせの場合には、エラーを出力する。
このように、アクセス要求されているプログラムに付与された鍵IDと、アクセス要求元から取得した鍵IDとが一致しない場合には、アクセスを制限することにより、第三者が不正に平文プログラムの一部を上書きし、改ざんするのを防止することができる。さらに、プログラムの部分転送を行うことができる。また、保護の保護属性を示すプログラムへのアクセスを制限することにより、所定の平文プログラムが不正に上書きされたり、改ざんされるのを防止することができる。
また、付与された鍵IDが「0」以外である場合には、さらに要求元から取得した鍵IDと命令鍵IDメモリ160が保持している鍵IDとが一致する場合にのみ書き込みを許可するので、第三者が不正に平文プログラムを上書きし、改ざんすることを防止することができる。
図21は、特殊命令による初期化における処理を説明するためのフローチャートである。ユーザより初期化が指示されると、プロセッサコア110は、内部メモリ120に対し、命令メモリ初期化要求を送る(ステップS500)。内部メモリ120は、命令メモリ初期化要求を取得すると、内部メモリ120を初期化する。具体的には、命令メモリ123を初期化する(ステップS502)。また、命令鍵IDメモリ160に保持されている鍵IDの値を「0」に変更する(ステップS504)。また、状態メモリ162に保持されている状態を初期化状態に変更する(ステップS506)。以上が完了すると、内部メモリ120は、プロセッサコア110に完了通知を送る(ステップS508)。以上で、初期化処理が完了する。
初期化処理により、保護状態または非保護状態にある内部メモリ120を初期化状態に戻すことができる。初期化状態においては、命令鍵IDメモリ160に保持されている鍵IDの値は「0」である。すなわち、初期化状態においては、非保護の保護属性を示す。
図22は、外部メモリ200に保持されているプログラムをDMAコントローラ130を介して内部メモリ120に書き込む書込処理を示すフローチャートである。ここでは、プログラムを外部メモリ200上のアドレスX〜Yに格納するとする。ステップS100からステップS110までの処理は実施の形態1にかかるシステム10におけるステップS100からステップS110までの処理と同様である。
本実施の形態にかかるシステム10においては、復号化処理(ステップS110)の後、プログラム、および鍵IDを出力する(ステップS114、ステップS140)。次にプログラム保持処理(ステップS150)を行う。なお、書込処理におけるこれ以外の処理は、実施の形態1にかかる書込処理と同様である。
図23は、プログラム保持処理(ステップS150)における内部メモリ120の詳細な処理を示すフローチャートである。ステップS114、ステップS140により、平文プログラムと鍵IDを取得すると、命令メモリアクセス制御部124は、命令鍵IDメモリ160に保持されている鍵IDを特定する(ステップS1502)。また状態メモリ162に保持されている状態を特定する(ステップS1504)。さらに、アクセス要求元から取得した鍵IDを特定する(ステップS1506)。
以下、図20のルールにしたがい、書き込みが許可される条件の場合にのみプログラムを命令メモリ123に保持させる(ステップS1512)。さらに、鍵IDを命令鍵IDメモリ160に保持させる(ステップS1514)。
具体的には、命令鍵IDメモリ160の鍵IDが「0」であって、かつ初期化状態の場合(ステップS1508,Yes、ステップS1510,Yes)と、命令鍵IDメモリ160の鍵IDが「0」であって、非保護状態であって、かつアクセス要求元から取得した鍵IDが「0」である場合(ステップS1508,Yes、ステップS1510,No、ステップS1516,Yes)と、命令鍵IDメモリ160の鍵IDが「0」以外であって、アクセス要求元から取得した鍵IDが「0」であって、かつ取得した鍵IDと命令鍵IDメモリ160に保持されている鍵IDとが同じ値である場合(ステップS1508,No、ステップS1520,No、ステップS1522,Yes)にプログラムが保持される。
これ以外の場合、すなわち、命令鍵IDメモリ160の鍵IDが「0」であって、非保護状態であって、かつアクセス要求元から取得した鍵IDが「0」以外である場合(ステップS1508,Yes、ステップS1510,No、ステップS1516,No)と、命令鍵IDメモリ160の鍵IDが「0」以外であって、アクセス要求元から取得した鍵IDが「0」である場合(ステップS1508,No、ステップS1520,Yes)と、命令鍵IDメモリ160の鍵IDが「0」以外であって、アクセス要求元から取得した鍵IDが「0」以外であって、かつ取得した鍵IDが命令鍵IDメモリ160の鍵IDと異なる値である場合(ステップS1508,No、ステップS1520,No、ステップS1522,No)には、エラーが出力される。
図24は、内部メモリ120に保持されたプログラムを読み出す場合の読出処理を説明するためのフローチャートである。平文プログラムの読み出し要求を取得すると(ステップS200)、命令鍵IDメモリ160の鍵IDおよびプログラムの状態を特定する(ステップS220)。次に、図19を参照しつつ説明したルールにしたがい、読み出しが許可される条件の場合にのみプログラムを読み出す(ステップS226)。さらに、鍵IDと状態を読み出す(ステップS228)。
具体的には、特定したID、すなわち命令鍵IDメモリ160の鍵IDが「0」であって、かつ初期化状態または非保護状態である場合には(ステップS222,Yes、ステップS224,Yes)、命令メモリアクセス制御部124は、命令メモリ123に保持されている平文プログラムを出力する(ステップS226)。さらに、鍵IDを出力する(ステップS228)。
また、命令鍵IDメモリ160の鍵IDが「0」以外であって、保護状態であって、かつ要求種別がプロセッサコア110からの命令フェッチである場合にも(ステップS222,No、ステップS240,Yes、ステップS242,Yes)、命令メモリアクセス制御部124は、平文プログラムと鍵IDを出力する。
これ以外の組み合わせについては、エラーを出力する。例えば、命令鍵IDメモリ160の鍵IDが「0」であって、かつ保護状態である場合(ステップS222,Yes、ステップS224,No)、命令鍵IDメモリ160の鍵IDが「0」以外であって、かつ保護状態以外の状態である場合(ステップS222,No、ステップS240,No)、および命令鍵IDメモリ160の鍵IDが「0」以外であって、保護状態以外の状態であって、かつプロセッサコア110からの命令フェッチ以外である場合(ステップS222,No、ステップS240,Yes、ステップS242,No)に、エラーを出力する(ステップS230,ステップS244)。
実施の形態4にかかるシステム10においては、鍵IDから保護属性を特定することができるので、他の実施の形態にかかるシステム10と同様に、保護属性および要求種別に基づいて、プログラムの読み出しを制限することができる。これにより、第三者による不正なアクセスを防止することができる。
実施の形態4にかかるシステム10のこれ以外の構成および処理は、他の実施の形態にかかるシステム10の構成および処理と同様である。
なお、実施の形態4にかかるシステム10においては、保護属性を特定する情報として、鍵IDを利用したが、保護属性を特定でき、かつプログラムを特定できる情報であればよく、例えば、暗号復号鍵の値を利用してもよい。
(実施の形態5)
次に、実施の形態5にかかるシステム10について説明する。実施の形態4にかかるシステム10は、プロセッサコア110へのデバッグ割り込みを制限する。また、プロセッサコア110からのトレース情報の出力を制限する。この点で、他の実施の形態にかかるシステム10とは異なる。
図25は、実施の形態5にかかるシステム10の全体構成を示す図である。実施の形態5にかかるシステム10は、パイプライン600と、デバッグ割込制御部662と、トレース情報出力制御部664とを有している。
プロセッサコア110は、パイプラインのステージ641〜645毎に鍵IDレジスタ651〜655を有している。各鍵IDレジスタ651〜655は、対応するステージ651〜655において実行される命令で利用された鍵IDを保持している。
デバッグ割込制御部662は、各鍵IDレジスタ651〜655が保持している鍵IDに基づいて、外部からのデバッガ割り込みを制限する。本実施の形態にかかるデバッグ割込制御部662は、特許請求の範囲に記載のデバッグ要求取得手段とデバッグ割込制御手段とに対応する。トレース情報出力制御部664は、実行ユニット(EXU)643の鍵IDレジスタ653が保持している鍵IDに基づいて、デバッガインターフェース140へのトレース情報出力を制限する。本実施の形態にかかる実行ユニットは、特許請求の範囲に記載の実行手段に対応する。
デバッガインターフェース140は、外部でデバッガ500に接続されている。そして、デバッガ500からの要求に対して、プロセッサコア110、内部メモリ120、DMAコントローラ130等へ要求を振り分ける。また、各部からの要求に対応した実行結果や、各部からのトレース情報等を受け取ると、実行結果をデバッガ500に返す。
図26は、実施の形態5にかかるシステム10のプロセッサコア110がプログラムを実行するときの処理を示すフローチャートである。図26を参照しつつ、ユーザがプログラムを実行するときに行う処理について説明する。
命令メモリ123に保持されているプログラムを実行する場合、まずパイプライン600にある命令フェッチユニット(IFU)641は、命令フェッチにより内部メモリ120からプログラムの読み出し要求を行う(ステップS600)。
内部メモリ120の命令メモリアクセス制御部124は、プログラムの読み出し要求を受け取ると、読み出し要求の要求種別を特定する。要求種別がプロセッサコア110による命令フェッチである場合には(ステップS602,Yes)、命令メモリアクセス制御部124は、プログラムを読み出す(ステップS604)。さらに、命令鍵IDメモリ160からプログラムに付与されている鍵IDを読み出す(ステップS606)。
次に、命令メモリアクセス制御部124は、プログラムおよび鍵IDをパイプライン600のIFU641に送る(ステップS608)。要求種別がプロセッサコア110による命令フェッチ以外である場合には(ステップS602,No)、エラーを出力する(ステップS610)。
IFU641は、内部メモリ120からプログラムおよび鍵IDを取得すると、取得した鍵IDを鍵IDレジスタ651に保持する(ステップS612)。さらに、IFU641は、取得したプログラムと鍵IDレジスタ651の値をデコードユニット(DEC)642に送る(ステップS614)。
DEC642は、IFU641から取得した鍵IDを鍵IDレジスタ652に保持する(ステップS616)。さらに、DEC642は、デコード(ステップS618)をした後、デコード結果と鍵IDレジスタ652の値を実行ユニット(EXU)643に送る(ステップS620)。
EXU643は、DEC642から取得した鍵IDを鍵IDレジスタ653に保持する(ステップS622)。EXU643は、デコード結果から命令を実行し(ステップS624)、その後、実行結果と鍵IDレジスタ653の値をメモリアクセスユニット(MEM)644に送る(ステップS626)。
MEM644は、EXU643から取得した鍵IDを鍵IDレジスタ654に保持する(ステップS628)。MEM644は、結果にしたがって内部メモリ120にアクセスし(ステップS630)、その後、結果とMEM644の値をレジスタ書込部(WEU)645に送る(ステップS632)。
WEU645は、MEM644から取得した鍵IDを鍵IDレジスタ655に保持する(ステップS634)。WEU645は、メモリアクセスの結果にしたがってレジスタへの書き込みを行う(ステップS636)。以上で、プログラムの実行が完了する。
図27は、プロセッサコア110に対してデバッグ割り込みが行われるときのデバッガ割込処理を示すフローチャートである。デバッグ割込制御部662は、デバッガ500からの割り込み要求であるデバッガ割込要求を取得すると(ステップS700)、パイプライン600の各ステージの鍵IDレジスタ651〜655に保持されている鍵IDを特定する(ステップS702)。各ステージの鍵IDがすべて「0」の場合、すなわちすべてのステージが非保護の保護属性を示す場合には(ステップS704,Yes)、デバッガ割込要求を受け付けてデバッグモードに移行する(ステップS706)。これにより、プロセッサコア110をデバッグモードで動作させ、ステップ実行やブレークポイントを設定したデバッグが可能となる。
一方で、ステップS702において特定した各ステージの鍵IDのうち少なくとも1つが「0」以外の値である場合、すなわち少なくとも1つのステージが保護の保護属性を示す場合には(ステップS704,No)、デバッガ割込要求を無視し、エラーを出力する(ステップS708)。以上で、デバッガ割込処理が完了する。
このように、全てのステージが非保護の保護属性を示す場合にのみデバッガ割り込みを許可することにより、第三者が不正にアクセスするのを防止することができる。
図28は、プロセッサコア110からトレース情報を出力するトレース情報出力処理を説明するためのフローチャートである。トレース情報出力制御部664は、EXU643からトレース情報を取得すると(ステップS720)、鍵IDレジスタ653に保持されている鍵IDを特定する(ステップS722)。特定した鍵IDが「0」の場合、すなわち非保護の保護属性を示す場合には(ステップS724,Yes)、トレース情報を出力する(ステップS726)。
一方、特定した鍵IDが保護を示す鍵ID「0」以外の値である場合、すなわち保護の保護属性を示す場合には(ステップS724,No)、トレース情報の出力を停止し、ダミー情報を出力する(ステップS728)。以上で、トレース情報出力処理が完了する。このように、トレース情報の出力を制限することができる。なお、他の例としてはエラーを出力してもよい。
このように、EXU643の鍵IDレジスタに保持されている鍵IDにより特定された保護属性が保護を示す場合には、トレース情報の出力を制限することができる。これにより、第三者が不正にアクセスするのを防止することができる。
実施の形態5にかかるシステム10のこれ以外の構成および処理は、他の実施の形態にかかるシステム10の構成および処理と同様である。
(実施の形態6)
次に、実施の形態6にかかるシステム10について説明する。実施の形態6にかかるシステム10は、データメモリへのアクセスを制限する。この点で、実施の形態4にかかるシステム10と異なる。
図29は、実施の形態6にかかるシステム10の全体構成を示す図である。実施の形態6にかかるシステム10のデータメモリ部125は、データメモリ127と、それに対応するデータ鍵IDメモリ172と、状態メモリ174と、データメモリアクセス制御部128と、データメモリ初期化部176とを有している。
データメモリ127は、暗号復号器134から取得した平文データや、プロセッサコア110やデバッガ500からの平文データを保持する。データ鍵IDメモリ172は、データメモリ128に保持されている平文データに対して付与された鍵IDを保持する。データメモリアクセス制御部128は、外部からデータメモリ127へのアクセスを制御する。状態メモリ174は、実施の形態4にかかる状態メモリ162と同様、データの状態を保持する。
データメモリ初期化部176は、外部からの特殊命令によりデータメモリ127を初期化する。また、データ鍵IDメモリ172が保持している鍵IDに「0」をセットする。また、状態メモリ174が保持している保護状態を初期化状態にする。
図30は、データメモリアクセス制御部128における、データの読み出しアクセス制御ルールを模擬的に示している。図30に示すように、要求されているプログラムの状態が初期化状態または非保護状態であり、かつ鍵IDが「0」である場合には、付与された鍵IDの値によらず読み出しを許可する。
要求されているプログラムに「0」以外の鍵IDが付与されており、プログラムの状態が保護状態であり、かつ付与された鍵IDとアクセス要求元から取得した鍵IDが同じ値である場合には、読み出しを許可する。
要求されているプログラムに「0」以外の鍵IDが付与されており、かつ付与された鍵IDとアクセス要求元から取得した鍵IDが異なる値である場合には、エラーを出力する。これ以外の組み合わせの場合には、エラーを出力する。
このように、保護を示す鍵IDが付与されたデータへのアクセスを制限することにより、所定の平文データが不正に読み出されるのを防止することができる。さらに鍵IDが一致しないデータへのアクセスを制限することにより、第三者が不正に平文データを読み出すのを防止することができる。
図31は、データメモリアクセス制御部128における、データの書き込みアクセス制御ルールを模式的に示している。図31に示すように、データの状態が初期化状態であり、かつ鍵IDが「0」である場合には、付与された鍵IDの値によらず書き込みを許可する。要求されているデータに鍵ID「0」が付与されており、データの状態が非保護状態であり、かつアクセス要求元から取得した鍵IDが「0」である場合には、書き込みを許可する。
要求されているデータに「0」以外の鍵IDが付与されており、データの状態が保護状態であり、かつ付与された鍵IDとアクセス要求元から取得した鍵IDが同じ値である場合には、書き込みを許可する。要求されているデータに「0」以外の鍵IDが付与されており、かつ付与された鍵IDとアクセス要求元から取得した鍵IDが異なる値である場合には、エラーを出力する。これ以外の組み合わせの場合には、エラーを出力する。
このように、アクセス要求されているデータに付与された鍵IDと、送られてきた鍵IDが一致しない場合にアクセスを制限することにより、第三者が不正に平文データの一部を上書きし、改ざんすることを防止することができる。また、データの部分転送ができる。また、保護を示す鍵IDが付与されたデータへのアクセスを制限することにより、所定の平文データが不正に上書き、改ざんされるのを防止することができる。
図32は、外部メモリ200に保持されているデータをDMAコントローラ130を介して内部メモリ120に書き込む書込処理を示すフローチャートである。ここでは、データを外部メモリ200上のアドレスP〜Qに格納するとする。
プロセッサコア110は、鍵IDの設定要求をDMAコントローラ130に送った後、DMA転送要求をDMAコントローラ130に送る(ステップS160)。ここで、DMA転送要求は、外部メモリ200上のアドレスP〜Qのデータを内部メモリ120に転送することを要求する情報である。
DMAコントローラ130は、外部メモリ200からアドレスP〜Qに対応するデータE3[C(P〜Q)]を読み出す(ステップS162)。このとき、鍵IDレジスタ132に設定されている値が「0」以外である場合は(ステップS108,No)、暗号復号器134は、鍵テーブル133から得られた鍵で読み出した暗号化データE3[C(P〜Q)]に対して復号処理を施し、平文データC(P〜Q)を得る(ステップS110)。
次に、データ、および鍵IDを出力する(ステップS164、ステップS166)。次にデータ保持処理(ステップS170)を行う。また、プロセッサコア110が命令フェッチにより平文データの読み出しを要求すると(ステップS126)、内部メモリ120は、要求された平文データをプロセッサコア110に出力する(ステップS172)。書込処理におけるこれ以外の処理は、実施の形態1にかかる書込処理と同様である。
図33は、データ保持処理(ステップS170)における内部メモリ120の詳細な処理を示すフローチャートである。ステップS164、ステップS166により、平文データと鍵IDを取得すると、データメモリアクセス制御部128は、データ鍵IDメモリ172に保持されている鍵IDを特定する(ステップS1702)。また状態メモリ162に保持されている状態を特定する(ステップS1704)。さらに、アクセス要求元から取得した鍵IDを特定する(ステップS1706)。
以下、図31のルールにしたがい、書き込みが許可される条件の場合にのみデータをデータメモリ128に保持させる(ステップS1712)。さらに、鍵IDをデータ鍵IDメモリ172に保持させる(ステップS1714)。
具体的には、データ鍵IDメモリ172の鍵IDが「0」であって、かつ初期化状態の場合(ステップS1708,Yes、ステップS1710,Yes)と、データ鍵IDメモリ172の鍵IDが「0」であって、非保護状態であって、かつアクセス要求元から取得した鍵IDが「0」である場合(ステップS1708,Yes、ステップS1710,No、ステップS1716,Yes)と、データ鍵IDメモリ172の鍵IDが「0」以外であって、アクセス要求元から取得した鍵IDとデータ鍵IDメモリ172の鍵IDとが同じ値である場合(ステップS1708,No、ステップS1720,Yes)にデータが保持される。
これ以外の場合、すなわち、データ鍵IDメモリ172の鍵IDが「0」であって、非保護状態であって、かつアクセス要求元から取得した鍵IDが「0」でない場合(ステップS1708,Yes、ステップS1710,No、ステップS1716,No)と、データ鍵IDメモリ172の鍵IDが「0」以外であって、かつ取得した鍵IDがデータ鍵IDメモリ172の鍵IDと異なる値である場合(ステップS1708,No、ステップS1720,No)には、エラーが出力される。
ソフトウェアで利用されるデータに対して、プロセッサコア110を用いた上書き要求を行う場合が考えられる。この場合、パイプラインのMEMは、内部メモリ120に対して平文データの書込要求を行う。このとき、同時にMEMの鍵IDレジスタが保持している鍵IDを送る。
本実施の形態にかかるシステム10においては、MEMから取得した鍵IDとデータ鍵IDメモリ172の鍵IDの値に基づいてデータへのアクセスを制御することができる。すなわち、同じ鍵IDで関連付けられているプログラムは、データメモリ178にデータを保持させることができる。一方、異なる鍵IDのプログラムからのアクセスは制限される。すなわち、異なる鍵IDのプログラムは、データメモリ127にデータを保持させようとした場合にはエラーが返される。
このように、第三者が、ストア命令等を利用してデータメモリにアクセスする際に、不正にデータを書き込まれるのを防止することができる。
また、ソフトウェアを改ざんする方法の1つとして、デバッガ500を用いてデバッガインターフェース140を介して内部メモリ120に保持されている平文データの書込要求を行う方法が考えられる。
しかしこの場合、データ鍵IDメモリ172に保持されている鍵IDが、非保護を示す「0」でなく、デバッガ500から送られてくる鍵IDと一致しないことから、図33を参照しつつ説明した、データ保持処理、すなわちデータ書込処理にしたがい、保護の保護属性を示すデータメモリ127への書き込みを制限する。すなわち、データメモリアクセス制御部128は、デバッガインターフェース140を介して平文データが上書きされるのを防止することができる。
また他の方法として、DMAコントローラ130を介して第三者が不正に平文データを書き込む方法が考えられる。たとえば、デバッガ500が、DMAコントローラ130に対して、鍵ID「0」を指定して外部メモリ200から内部メモリ120へのDMA転送要求を行うことにより実現できる。このDMA転送要求は、外部メモリ120に保持されているデータを、外部メモリ200の適当な領域から内部メモリ120内の領域への転送要求である。
この場合、DMAコントローラ130は、デバッガ500からのDMA転送要求に対して、内部メモリ120への転送を行う。具体的には、外部メモリ200から読み出し、内部メモリ120のデータメモリ127へ書き込みを行う。
しかしこの場合、データ鍵IDメモリ172に保持されている鍵IDが、非保護を示す「0」でなく、デバッガ500を介してDMAコントローラ130から送られてくる鍵ID「0」と一致しないことから、図33において説明した書込処理にしたがい、保護を示す鍵IDが付与されたデータの上書きを制限する。
このように、デバッガ500は、デバッガインターフェースを介したアクセスだけでなく、DMAコントローラ130やBIU150を介してアクセスすることができる。しかし、この場合であっても、第三者に不正に上書きされるのを防止することができる。
図34は、内部メモリ120に保持されたデータを読み出す場合の読出処理を説明するためのフローチャートである。内部メモリ120のデータメモリアクセス制御部128は、データメモリ128に保持されているデータの読み出しを示す読出要求を取得すると(ステップS250)、要求されているデータに対応する鍵IDとしてデータ鍵IDメモリ172に保持されている鍵IDを特定し、対応する状態として状態メモリ174に保持されている状態を特定する(ステップS252)。
特定したID、すなわちデータ鍵IDメモリ172の鍵IDが「0」であって、かつ初期化状態または非保護状態である場合には(ステップS254,Yes、ステップS256,Yes)、データメモリアクセス制御部128は、データメモリ127に保持されている平文データと鍵IDを出力する(ステップS258,ステップS260)。
また、データ鍵IDメモリ172の鍵IDが「0」以外であって、保護状態であって、かつデータ鍵IDメモリ172の鍵IDとアクセス要求元から取得した鍵IDとが一致する場合にも(ステップS254,No、ステップS270,Yes、ステップS272,Yes)、データメモリアクセス制御部128は、データメモリ127に保持されている平文データと鍵IDを出力する(ステップS258,ステップS260)。
これ以外の組み合わせについては、エラーを出力する。例えば、命令鍵IDメモリ160の鍵IDが「0」であって、かつ保護状態である場合(ステップS254,Yes、ステップS256,No)、命令鍵IDメモリ160の鍵IDが「0」以外であって、かつ保護状態以外の状態である場合(ステップS254,No、ステップS270,No)、および命令鍵IDメモリ160の鍵IDが「0」以外であって、保護状態以外の状態であって、かつプロセッサコア110からの命令フェッチ以外である場合(ステップS254,No、ステップS270,Yes、ステップS272,No)に、エラーを出力する(ステップS262,ステップS274)。
実施の形態6にかかるシステム10においては、鍵IDから保護属性を特定することができるので、他の実施の形態にかかるシステム10と同様に、保護属性および要求種別に基づいて、データの読み出しを制限することができる。これにより、第三者による不正なアクセスを防止することができる。
なお、実施の形態6にかかるシステム10のこれ以外の構成および処理は、実施の形態4にかかるシステム10の構成および処理と同様である。
システム10の全体構成を示す図である。 鍵テーブル133のデータ構成を模式的に示す図である。 保護属性付与部135が保護属性を付与するときに利用する保護属性決定テーブル136を示す図である。 命令メモリアクセス制御部124のアクセス制御のルールを模式的に示す図である。 外部メモリ200に保持されているプログラムをDMAコントローラ130を介して内部メモリ120に書き込む読込処理を示すフローチャートである。 図5を参照しつつ説明した処理によって内部メモリ120に保持されたプログラムを読み出す場合の読出処理を説明するためのフローチャートである。 命令メモリ123に既に平文プログラムが保持された状態において、デバッガモードに設定されているときに、新たに平文プログラムの書き込み、すなわち上書きが指示された場合の書込処理を示すフローチャートである。 実施の形態1の第1の変更例にかかる保護属性メモリ122のデータ構成を模式的に示す図である。 実施の形態1の第2の変更例にかかる保護属性メモリ122のデータ構成を模式的に示す図である。 実施の形態1の第3の変更例にかかるシステム10の全体構成を示す図である。 実施の形態1の第4の変更例にかかる書込処理を示すフローチャートである。 実施の形態2にかかるシステム10の全体構成を示す図である。 実施の形態2にかかるシステム10のプロセッサコア110がプログラムを実行するときの処理を示すフローチャートである。 ソフトウェアの動作を解析する場合の処理を示すフローチャートである。 実施の形態2の変更例にかかる読出処理を示すフローチャートである。 実施の形態3にかかるシステム10の全体構成を示す図である。 実施の形態4にかかるシステム10の全体構成を示す図である。 平文プログラムの状態の遷移を示す状態遷移図である。 命令メモリアクセス制御部124における、データの読み出しに対するアクセス制御のルールを模式的に示す図である。 命令メモリアクセス制御部124における、データの書き込みに対するアクセス制御のルールを模式的に示す図である。 特殊命令による初期化における処理を説明するためのフローチャートである。 外部メモリ200に保持されているプログラムをDMAコントローラ130を介して内部メモリ120に書き込む書込処理を示すフローチャートである。 プログラム保持処理(ステップS150)における内部メモリ120の詳細な処理を示すフローチャートである。 内部メモリ120に保持されたプログラムを読み出す場合の読み出し処理を説明するためのフローチャートである。 実施の形態5にかかるシステム10の全体構成を示す図である。 実施の形態5にかかるシステム10のプロセッサコア110がプログラムを実行するときの処理を示すフローチャートである。 プロセッサコア110に対してデバッグ割り込みが行われるときのデバッガ割込処理を示すフローチャートである。 プロセッサコア110からトレース情報を出力するトレース情報出力処理を説明するためのフローチャートである。 実施の形態6にかかるシステム10の全体構成を示す図である。 データメモリアクセス制御部128における、データの読み出しアクセス制御ルールを模擬的に示す図である。 データメモリアクセス制御部128における、データの書き込みアクセス制御ルールを模式的に示す図である。 外部メモリ200に保持されているデータをDMAコントローラ130を介して内部メモリ120に書き込む書込処理を示すフローチャートである。 データ保持処理(ステップS170)における内部メモリ120の詳細な処理を示すフローチャートである。 内部メモリ120に保持されたデータを読み出す場合の読出処理を説明するためのフローチャートである。
符号の説明
10 システム
100 プロセッサ
110 プロセッサコア
112 実行ユニット
114 カレント保護属性レジスタ
116 コアアクセス制御部
120 内部メモリ
121 命令メモリ部
122 保護属性メモリ
123 命令メモリ
124 命令メモリアクセス制御部
125 データメモリ部
126 保護属性メモリ
127 データメモリ
128 データメモリアクセス制御部
130 DMAコントローラ
132 鍵IDレジスタ
133 鍵テーブル
134 暗号復号器
135 保護属性付与部
136 保護属性決定テーブル
139 鍵ID付与部
140 デバッガインターフェース
150 BIU
160 命令鍵IDメモリ
162 状態メモリ
164 命令メモリ初期化部
172 データ鍵IDメモリ
174 状態メモリ
176 データメモリ初期化部
200 外部メモリ
300 ユーザインターフェース
400 外部バス
500 デバッガ
600 パイプライン
601〜604 実行ユニット
611〜614 カレント保護属性レジスタ
620 OR回路
641〜645 ステージ
651〜655 鍵IDレジスタ
662 デバッグ割込制御部
664 トレース情報出力制御部

Claims (32)

  1. プロセッサコアを備えたマイクロプロセッサであって、
    前記プロセッサコアが利用する情報を外部から取得する情報取得手段と、
    前記情報取得手段が取得した情報が暗号化された暗号化情報である場合に、当該暗号化情報を復号化し、平文情報を得る復号化手段と、
    前記復号化手段によって復号化された前記平文情報を保持する平文情報保持手段と、
    前記復号化手段による復号化が施されたか否かに基づいて、前記平文情報に対し保護又は非保護を示す保護属性を付与する保護属性付与手段と、
    前記平文情報保持手段に保持されている前記平文情報へアクセスすることを要求するアクセス要求を取得するアクセス要求取得手段と、
    前記アクセス要求取得手段が取得した前記アクセス要求が、前記プロセッサコアからの要求か否かを表す要求種別を特定する要求種別特定手段と、
    前記要求種別特定手段が特定した前記要求種別が、前記プロセッサコアからの要求を表す特定要求種別以外の要求種別である場合に、保護を示す保護属性が付与された前記平文情報へのアクセスを制限するアクセス制御手段と
    を備えたことを特徴とするマイクロプロセッサ。
  2. 前記保護属性付与手段は、前記復号化手段によって復号化された前記平文情報に対して、保護を示す保護属性を付与することを特徴とする請求項1に記載のマイクロプロセッサ。
  3. 前記平文情報保持手段は、前記情報取得手段が取得した情報が暗号化されていない平文情報である場合に、当該平文情報を保持し、
    前記保護属性付与手段は、前記復号化手段によって復号化されていない前記平文情報に対し非保護を示す保護属性を付与し、
    前記アクセス制御手段は、非保護を示す保護属性が付与された前記平文情報へのアクセスを許可することを特徴とする請求項1または2に記載のマイクロプロセッサ。
  4. 前記アクセス制御手段は、前記要求種別特定手段が特定した前記要求種別が、前記特定要求種別である場合に、前記平文情報へのアクセスを許可することを特徴とする請求項1からのいずれか一項に記載のマイクロプロセッサ。
  5. 前記アクセス制御手段は、前記要求種別および前記保護属性に基づいて、前記平文情報を出力するか、前記平文情報を暗号化した暗号化情報を出力するかを決定することを特徴とする請求項1からのいずれか一項に記載のマイクロプロセッサ。
  6. 前記アクセス制御手段は、前記要求種別および前記保護属性に基づいて、前記平文情報への上書きを制限することを特徴とする請求項1からのいずれか一項に記載のマイクロプロセッサ。
  7. 前記平文情報保持手段が保持している平文情報の上書きを許可するか否かを示す上書き命令を取得する上書き命令取得手段をさらに備え、
    前記アクセス制御手段は、前記上書き命令取得手段が前記上書きを許可する旨を示す上書き命令を取得した場合に、前記平文情報への上書きを許可することを特徴とする請求項に記載のマイクロプロセッサ。
  8. 前記アクセス制御手段は、前記要求種別および前記保護属性に基づいて、前記平文情報への上書きの前に、既に保持されている前記平文情報を消去するか否かを決定することを特徴とする請求項1からのいずれか一項に記載のマイクロプロセッサ。
  9. 前記復号化手段が復号化を行うときに利用する複数の復号鍵を保持する復号鍵保持手段と、
    前記復号鍵保持手段が保持している前記復号鍵を識別する鍵識別情報と、前記保護属性とを対応付けて保持する保護属性テーブルと
    をさらに備え、
    前記保護属性付与手段は、前記保護属性テーブルにおいて、前記復号化手段が利用した前記復号鍵に対応付けられている保護属性を前記平文情報の保護属性として付与することを特徴とする請求項1からのいずれか一項に記載のマイクロプロセッサ。
  10. 前記復号化手段が復号化を行うときに利用すべき前記復号鍵の指定をユーザから受け付ける復号鍵指定手段をさらに備え、
    前記復号化手段は、前記復号鍵指定手段によって設定された前記復号鍵を利用して前記暗号化情報を復号化することを特徴とする請求項に記載のマイクロプロセッサ。
  11. 前記平文情報保持手段は、複数の前記平文情報と、各平文情報の保護属性とを対応付けて保持し、
    前記アクセス制御手段は、前記平文情報保持手段に保持されている各平文情報に対応付けられている保護属性および要求種別に基づいて、平文情報ごとにアクセスを制御することを特徴とする請求項1から10のいずれか一項に記載のマイクロプロセッサ。
  12. 前記特定要求種別、前記プロセッサコアによる命令フェッチを表し
    前記アクセス制御手段は、前記要求種別特定手段が特定した前記要求種別が前記プロセッサコアによる命令フェッチ以外である場合にアクセスを制限することを特徴とする請求項1に記載のマイクロプロセッサ。
  13. 前記アクセス制御手段は、前記要求種別が前記特定要求種別以外の要求種別である場合に、保護を示す保護属性が付与され、前記プロセッサコアがプログラムの実行に利用する前記平文情報へのアクセスを制限することを特徴とする請求項1に記載のマイクロプロセッサ。
  14. 前記プロセッサコアは、前記平文情報保持手段が保持する前記平文情報をパイプラインにより実行し、
    前記アクセス制御手段は、前記要求種別および前記プロセッサコアの各ユニットが実行している各平文情報に付与された各保護属性に基づいて、前記プロセッサコアが実行している前記平文情報へのアクセスを制限することを特徴とする請求項13に記載のマイクロプロセッサ。
  15. 前記パイプラインの各ステージが実行している前記平文情報に対する保護属性を保持する保護属性保持手段を前記ステージ毎に複数備え、
    前記アクセス制御手段は、複数の前記保護属性保持手段が保持している各保護属性に基づいて、前記プロセッサコアがプログラムの実行に利用している前記平文情報へのアクセスを制限することを特徴とする請求項14に記載のマイクロプロセッサ。
  16. 前記アクセス制御手段は、前記プロセッサコアの複数のステージのうち、少なくとも1つのステージが実行している前記平文情報に前記保護を示す保護属性が付与されている場合に、前記プロセッサコアがプログラムの実行に利用している前記平文情報へのアクセスを制限することを特徴とする請求項14または15に記載のマイクロプロセッサ。
  17. プロセッサコアを備えたマイクロプロセッサであって、
    前記プロセッサコアが利用する情報を外部から取得する情報取得手段と、
    前記情報取得手段が取得した情報が暗号化された暗号化情報である場合に、当該暗号化情報を復号化し、平文情報を得る復号化手段と、
    前記復号化手段によって復号化された前記平文情報を保持する平文情報保持手段と、
    前記復号化手段が復号化を行うときに利用する復号鍵を保持する復号鍵保持手段と、
    前記平文情報に対し、前記復号鍵保持手段が保持している前記復号鍵を識別する鍵識別情報を付与する鍵識別情報付与手段と、
    前記鍵識別情報付与手段が付与した前記鍵識別情報を保持する鍵識別情報保持手段と、
    前記平文情報保持手段に保持されている前記平文情報へアクセスすることを要求するアクセス要求を取得するアクセス要求取得手段と、
    前記アクセス要求取得手段が取得した前記アクセス要求が、前記プロセッサコアからの要求か否かを表す要求種別を特定する要求種別特定手段と、
    前記要求種別特定手段が特定した前記要求種別が、前記プロセッサコアからの要求を表す特定要求種別以外の要求種別である場合に、保護を示す保護属性を表す前記鍵識別情報が付与された前記平文情報へのアクセスを制限するアクセス制御手段と
    を備えたことを特徴とするマイクロプロセッサ。
  18. 前記アクセス制御手段は、前記鍵識別情報が示す保護属性が非保護である場合に前記平文情報へのアクセスを許可することを特徴とする請求項17に記載のマイクロプロセッサ。
  19. 前記アクセス制御手段は、前記要求種別特定手段が特定した前記要求種別が前記特定要求種別である場合に、前記平文情報へのアクセスを許可することを特徴とする請求項17に記載のマイクロプロセッサ。
  20. 前記平文情報保持手段の初期化を指示する初期化命令を取得する初期化命令取得手段と、
    前記初期化命令取得手段が前記初期化命令を取得した場合に、前記保護属性が非保護であることを示す鍵識別情報を前記鍵識別情報保持手段に保持させる初期化手段と
    をさらに備えたことを特徴とする請求項18に記載のマイクロプロセッサ。
  21. 前記初期化手段により前記鍵識別情報保持手段が初期化された初期化状態であるか否かを示す状態情報を保持する状態保持手段をさらに備え、
    前記アクセス制御手段は、前記状態保持手段が初期化状態であることを示す前記状態情報を保持している場合に、前記平文情報へのアクセスを許可することを特徴とする請求項20に記載のマイクロプロセッサ。
  22. 前記アクセス要求取得手段が取得する前記アクセス要求は、前記鍵識別情報を含み、
    前記アクセス制御手段は、さらに前記アクセス要求に含まれる前記鍵識別情報と前記鍵識別情報保持手段が保持している前記鍵識別情報とに基づいて、前記平文情報へのアクセスを制御することを特徴とする請求項17に記載のマイクロプロセッサ。
  23. 前記アクセス制御手段は、前記アクセス要求に含まれる前記鍵識別情報と前記鍵識別情報保持手段が保持している前記鍵識別情報とが一致する場合に、前記平文情報へのアクセスを許可することを特徴とする請求項22に記載のマイクロプロセッサ。
  24. 前記アクセス制御手段は、前記要求種別および前記鍵識別情報に基づいて、前記平文情報を出力するか、前記平文情報を暗号化した暗号化情報を出力するかを決定することを特徴とする請求項20から23のいずれか一項に記載のマイクロプロセッサ。
  25. 前記アクセス制御手段は、前記要求種別が前記特定要求種別以外の要求種別である場合に、保護を示す保護属性を表す前記鍵識別情報が付与された、前記プロセッサコアがプログラムの実行に利用する前記平文情報へのアクセスを制限することを特徴とする請求項17に記載のマイクロプロセッサ。
  26. 前記プロセッサコアは、前記平文情報保持手段が保持する前記平文情報をパイプラインにより実行し、
    前記アクセス制御手段は、前記要求種別および前記プロセッサコアの各ユニットが実行している各平文情報に付与された各鍵識別情報に基づいて、前記プロセッサコアがプログラムの実行に利用している前記平文情報へのアクセスを制限することを特徴とする請求項25に記載のマイクロプロセッサ。
  27. 前記パイプラインの各ステージが実行している前記平文情報に対する鍵識別情報を保持する鍵識別情報保持手段を前記ステージ毎に複数備え、
    前記アクセス制御手段は、複数の前記鍵識別情報保持手段が保持している各鍵識別情報に基づいて、前記プロセッサコアがプログラムの実行に利用している前記平文情報へのアクセスを制限することを特徴とする請求項26に記載のマイクロプロセッサ。
  28. 前記鍵識別情報は、対応する平文情報の保護属性が保護であるか非保護であるかをさらに示す情報であって、
    前記アクセス制御手段は、前記プロセッサコアの複数のステージのうち、少なくとも1つのステージが実行している前記平文情報に対する前記鍵識別情報の保護属性が保護を示す場合に、前記プロセッサコアが実行している前記平文情報へのアクセスを制限することを特徴とする請求項26または27に記載のマイクロプロセッサ。
  29. 前記パイプラインの各ステージが実行しているプログラムに対する保護属性を、各ステージに対応付けて保持する保護属性保持手段と、
    デバッガからのデバッグ要求を取得するデバッグ要求取得手段と、をさらに備え、
    前記アクセス制御手段は、前記デバッグ要求取得手段が前記デバッグ要求を取得したときに前記保護属性保持手段が保持している前記保護属性がすべて非保護を示す保護属性である場合に、前記デバッガからのアクセスを許可すること
    を特徴とする請求項1に記載のマイクロプロセッサ。
  30. 前記アクセス制御手段は、前記デバッグ要求取得手段が前記デバッグ要求を取得したときに前記保護属性保持手段が保持している前記保護属性のうち少なくとも1つが保護を示す保護属性である場合に、前記デバッガからのアクセスを制限することを特徴とする請求項29に記載のマイクロプロセッサ。
  31. 前記プロセッサコアが実行しているプログラムに対する保護属性を保持する保護属性保持手段をさらに備え、
    前記アクセス制御手段は、前記保護属性保持手段が保持している前記保護属性が非保護を示す保護属性である場合に、前記マイクロプロセッサから得られたトレース情報の出力を許可すること
    を特徴とする請求項1に記載のマイクロプロセッサ。
  32. 前記アクセス制御手段は、前記保護属性保持手段が保持している前記保護属性が保護を示す保護属性である場合に、前記トレース情報の出力を制限することを特徴とする請求項31に記載のマイクロプロセッサ。
JP2005124116A 2004-06-24 2005-04-21 マイクロプロセッサ Expired - Fee Related JP4612461B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005124116A JP4612461B2 (ja) 2004-06-24 2005-04-21 マイクロプロセッサ
US11/159,230 US7707645B2 (en) 2004-06-24 2005-06-23 Microprocessor

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004186910 2004-06-24
JP2004226886 2004-08-03
JP2005124116A JP4612461B2 (ja) 2004-06-24 2005-04-21 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JP2006072963A JP2006072963A (ja) 2006-03-16
JP4612461B2 true JP4612461B2 (ja) 2011-01-12

Family

ID=35515569

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005124116A Expired - Fee Related JP4612461B2 (ja) 2004-06-24 2005-04-21 マイクロプロセッサ

Country Status (2)

Country Link
US (1) US7707645B2 (ja)
JP (1) JP4612461B2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4204522B2 (ja) * 2004-07-07 2009-01-07 株式会社東芝 マイクロプロセッサ
CN100424611C (zh) 2005-07-28 2008-10-08 国际商业机器公司 用于处理加密软件的方法和中央处理单元
JP2007058588A (ja) * 2005-08-24 2007-03-08 Toshiba Corp プログラム保護機能を持つプロセッサ
JP2008033457A (ja) * 2006-07-26 2008-02-14 Internatl Business Mach Corp <Ibm> 暗号化ソフトウェアを処理する方法及び中央処理装置
JP2008191788A (ja) * 2007-02-01 2008-08-21 Ricoh Co Ltd 情報処理装置
JP2008197707A (ja) * 2007-02-08 2008-08-28 Denso Corp マイクロコンピュータ
GB2450505A (en) * 2007-06-26 2008-12-31 Symbian Software Ltd Authorised debugging
JP4976991B2 (ja) * 2007-11-22 2012-07-18 株式会社東芝 情報処理装置、プログラム検証方法及びプログラム
JP4916487B2 (ja) * 2008-06-18 2012-04-11 コニカミノルタビジネステクノロジーズ株式会社 情報処理装置及びプログラム
JP5322620B2 (ja) 2008-12-18 2013-10-23 株式会社東芝 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム
US20190108366A1 (en) * 2010-01-28 2019-04-11 International Business Machines Corporation Secure data transmission utilizing distributed storage
US8649521B2 (en) 2010-01-28 2014-02-11 Cleversafe, Inc. Obfuscation of sequenced encoded data slices
JP5225412B2 (ja) * 2011-03-03 2013-07-03 株式会社東芝 通信装置および通信方法
US9053233B2 (en) * 2011-08-15 2015-06-09 Freescale Semiconductor, Inc. Method and device for controlling debug event resources
US8751800B1 (en) 2011-12-12 2014-06-10 Google Inc. DRM provider interoperability
US8774410B1 (en) * 2011-12-23 2014-07-08 Emc Corporation Secret sharing in cryptographic devices via controlled release of plaintext information
US11237828B2 (en) * 2016-04-26 2022-02-01 Onnivation, LLC Secure matrix space with partitions for concurrent use
CN105930721B (zh) * 2016-04-28 2018-11-23 北京小米移动软件有限公司 一种管理应用程序的方法和装置
US10721067B2 (en) * 2016-08-10 2020-07-21 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Secure processor for multi-tenant cloud workloads
US10417433B2 (en) 2017-01-24 2019-09-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Encryption and decryption of data owned by a guest operating system
CN115151908A (zh) * 2020-02-21 2022-10-04 惠普发展公司, 有限责任合伙企业 用于数据的加密和解密的计算设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182984A (ja) * 2000-12-15 2002-06-28 Toshiba Corp データ処理装置
JP2003280989A (ja) * 2002-03-20 2003-10-03 Toshiba Corp 内部メモリ型耐タンパプロセッサおよび秘密保護方法

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4847902A (en) * 1984-02-10 1989-07-11 Prime Computer, Inc. Digital computer system for executing encrypted programs
JP3507594B2 (ja) * 1995-07-31 2004-03-15 株式会社東芝 コンピュータ
US6052780A (en) * 1996-09-12 2000-04-18 Open Security Solutions, Llc Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information
US6708274B2 (en) * 1998-04-30 2004-03-16 Intel Corporation Cryptographically protected paging subsystem
US5963642A (en) * 1996-12-30 1999-10-05 Goldstein; Benjamin D. Method and apparatus for secure storage of data
DE19708616C2 (de) * 1997-03-03 1999-09-02 Siemens Ag Elektronische Datenverarbeitungseinrichtung und -system
US6173403B1 (en) * 1997-04-30 2001-01-09 Achates Reference Publishing, Inc. Method and apparatus for distributing information products
JP3274393B2 (ja) * 1997-09-22 2002-04-15 株式会社ディジタル・ビジョン・ラボラトリーズ ネットワークシステム、データ配信方法、および、配信用データが記録されたコンピュータ読み取り可能な記録媒体
US6003117A (en) * 1997-10-08 1999-12-14 Vlsi Technology, Inc. Secure memory management unit which utilizes a system processor to perform page swapping
US6345359B1 (en) * 1997-11-14 2002-02-05 Raytheon Company In-line decryption for protecting embedded software
US6202152B1 (en) * 1998-01-27 2001-03-13 Philips Semiconductors, Inc. System and method for accessing information decrypted in multiple-byte blocks
US20010044901A1 (en) * 1998-03-24 2001-11-22 Symantec Corporation Bubble-protected system for automatic decryption of file data on a per-use basis and automatic re-encryption
US6523118B1 (en) * 1998-06-29 2003-02-18 Koninklijke Philips Electronics N.V. Secure cache for instruction and data protection
FI981902A (fi) * 1998-09-04 2000-03-05 Sonera Oyj Turvamoduuli, turvajärjestelmä ja matkaviestin
US6499106B1 (en) * 1999-01-15 2002-12-24 Sony Corporation Method and apparatus for secure distribution of information recorded of fixed media
US6832318B1 (en) * 1999-01-15 2004-12-14 Sony Corporation Method and apparatus for secure distribution of information recorded on fixed media
US6678803B2 (en) * 1999-11-03 2004-01-13 Micron Technology, Inc. Method and device to use memory access request tags
US7080359B2 (en) * 2002-01-16 2006-07-18 International Business Machines Corporation Stack unique signatures for program procedures and methods
US7296163B2 (en) * 2000-02-08 2007-11-13 The Trustees Of Dartmouth College System and methods for encrypted execution of computer programs
US7270193B2 (en) * 2000-02-14 2007-09-18 Kabushiki Kaisha Toshiba Method and system for distributing programs using tamper resistant processor
US6895506B1 (en) * 2000-05-16 2005-05-17 Loay Abu-Husein Secure storage and execution of processor control programs by encryption and a program loader/decryption mechanism
JP4409056B2 (ja) * 2000-06-30 2010-02-03 富士通株式会社 Lsi,lsiを搭載した電子装置、デバッグ方法、lsiのデバッグ装置
US7134137B2 (en) * 2000-07-10 2006-11-07 Oracle International Corporation Providing data to applications from an access system
JP2002032265A (ja) * 2000-07-14 2002-01-31 Hitachi Ltd キャッシュ・アクセス制御方式およびデータ処理システム
JP4892167B2 (ja) * 2000-07-18 2012-03-07 シンプレックス メジャー センドリアン ベルハッド ディジタル・データ保護構成
JP4067757B2 (ja) * 2000-10-31 2008-03-26 株式会社東芝 プログラム配布システム
JP4153653B2 (ja) * 2000-10-31 2008-09-24 株式会社東芝 マイクロプロセッサおよびデータ保護方法
JP4074057B2 (ja) * 2000-12-28 2008-04-09 株式会社東芝 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法
JP4098478B2 (ja) * 2001-01-31 2008-06-11 株式会社東芝 マイクロプロセッサ
US7051332B2 (en) * 2001-05-21 2006-05-23 Cyberscan Technology, Inc. Controller having a restart engine configured to initiate a controller restart cycle upon receipt of a timeout signal from a watchdog timer
FR2826531B1 (fr) * 2001-06-26 2003-10-24 France Telecom Procede cryptographique pour la protection d'une puce electronique contre la fraude
US7444476B2 (en) * 2001-07-24 2008-10-28 Texas Instruments Incorporated System and method for code and data security in a semiconductor device
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
US20030079133A1 (en) * 2001-10-18 2003-04-24 International Business Machines Corporation Method and system for digital rights management in content distribution application
JP4128348B2 (ja) * 2001-10-25 2008-07-30 富士通株式会社 データ管理システム
US7260217B1 (en) * 2002-03-01 2007-08-21 Cavium Networks, Inc. Speculative execution for data ciphering operations
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
US7089419B2 (en) * 2002-04-18 2006-08-08 International Business Machines Corporation Control function with multiple security states for facilitating secure operation of an integrated system
US7350081B1 (en) * 2002-04-29 2008-03-25 Best Robert M Secure execution of downloaded software
JP2003330365A (ja) * 2002-05-09 2003-11-19 Toshiba Corp コンテンツ配布/受信方法
JP2004013987A (ja) * 2002-06-06 2004-01-15 Toshiba Corp 半導体記憶装置
US7203844B1 (en) * 2002-06-20 2007-04-10 Oxford William V Method and system for a recursive security protocol for digital copyright control
JP4115759B2 (ja) * 2002-07-01 2008-07-09 株式会社東芝 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム
US7930537B2 (en) * 2002-08-13 2011-04-19 Nokia Corporation Architecture for encrypted application installation
US7152942B2 (en) * 2002-12-02 2006-12-26 Silverbrook Research Pty Ltd Fixative compensation
JP3880933B2 (ja) * 2003-01-21 2007-02-14 株式会社東芝 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法
FR2850479B1 (fr) * 2003-01-24 2005-04-29 France Telecom Procede cryptographique a cle publique pour la protection d'une puce contre la fraude
JP2004287590A (ja) * 2003-03-19 2004-10-14 Matsushita Electric Ind Co Ltd デバッグシステム、マイクロプロセッサ及びデバッガ
JP4263976B2 (ja) * 2003-09-24 2009-05-13 株式会社東芝 オンチップマルチコア型耐タンパプロセッサ
JP4307964B2 (ja) * 2003-11-26 2009-08-05 株式会社日立製作所 アクセス制限情報設定方法および装置
JP4282472B2 (ja) * 2003-12-26 2009-06-24 株式会社東芝 マイクロプロセッサ
US7348887B1 (en) * 2004-06-15 2008-03-25 Eigent Technologies, Llc RFIDs embedded into semiconductors
JP4447977B2 (ja) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US20060059369A1 (en) * 2004-09-10 2006-03-16 International Business Machines Corporation Circuit chip for cryptographic processing having a secure interface to an external memory
US20060059368A1 (en) * 2004-09-10 2006-03-16 International Business Machines Corporation System and method for processing by distinct entities securely configurable circuit chips
US7987356B2 (en) * 2004-11-29 2011-07-26 Broadcom Corporation Programmable security platform

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182984A (ja) * 2000-12-15 2002-06-28 Toshiba Corp データ処理装置
JP2003280989A (ja) * 2002-03-20 2003-10-03 Toshiba Corp 内部メモリ型耐タンパプロセッサおよび秘密保護方法

Also Published As

Publication number Publication date
US20060005260A1 (en) 2006-01-05
JP2006072963A (ja) 2006-03-16
US7707645B2 (en) 2010-04-27

Similar Documents

Publication Publication Date Title
JP4612461B2 (ja) マイクロプロセッサ
JP4559794B2 (ja) マイクロプロセッサ
JP4886682B2 (ja) データ処理装置
JP4989543B2 (ja) メモリドメインを基にしたデータ処理システム内のセキュリティ制御
US7673152B2 (en) Microprocessor with program and data protection function under multi-task environment
CA2333613C (en) Method of controlling usage of software components
JP5249399B2 (ja) 安全なメモリ区分を使用した安全な実行のための方法および装置
US7107459B2 (en) Secure CPU and memory management unit with cryptographic extensions
JP5000573B2 (ja) 保護された関数呼び出し
JP4601557B2 (ja) マルチプロセッサシステムにおいてプロセッサのセキュアな連携を行う方法および装置
US7523279B2 (en) Information processing apparatus for accessing memory spaces including a user memory space and a secure memory space
JP2004096666A (ja) 暗号化部を有する半導体装置、外部インターフェースを有する半導体装置、およびコンテンツ再生方法
US20040255199A1 (en) Debug system, microprocessor, and debugger
JP4591163B2 (ja) バスアクセス制御装置
JP2723231B2 (ja) ソフトウェア権利管理制御方法
JP2007310601A (ja) マイクロコンピュータおよびそのソフトウェア保護方法
JP2007109053A (ja) バスアクセス制御装置
CN100354787C (zh) 微处理器
JP3642533B2 (ja) プログラムカード及びこれを用いた計算機
JP2005172866A (ja) 暗号化/復号化システム
US8812872B2 (en) Memory managment method
CN100353276C (zh) 微处理器
JP4336690B2 (ja) 外部インターフェースを有する半導体装置
US20050210274A1 (en) Apparatus and method for intellectual property protection using the microprocessor serial number
JP2009301571A (ja) 半導体装置およびそのブート方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100823

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

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

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

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4612461

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees