(57)【要約】      （修正有）【課題】マイクロプロセッサにおいて、暗号化されたコンテンツを復号するための特別プログラムが漏洩することを防止する。【解決手段】密封された状態でアクセス識別制限回路付きメモリ１５を形成し、復号化特別プログラムを特別命令キャッシュ領域ＣＳと特別データキャッシュ領域ＤＳに記憶させる。この特別プログラムによってのみ、暗号化コンテンツを元のコンテンツに復号して再生する。また、特別プログラムの属性情報ＴＧを記憶する属性タグメモリ１５ｄを備え、特別命令キャッシュ領域ＣＳと特別データキャッシュ領域ＤＳがアクセスされた際、アクセス識別制限回路ユニット１５ｂがそのアクセスと同時に供給されるプログラムの属性情報ＴＤと属性タグメモリ１５ｄ中の属性情報ＴＧとを比較し一致しないときは、特別命令キャッシュ領域ＣＳと特別データキャッシュ領域ＤＳに対するアクセスを禁止することで、特別プログラムが外部に漏洩するのを防止する。【選択図】図２
2008010007.tif 000002
【特許請求の範囲】
【請求項１】
プログラム及びデータを記憶するための記憶手段と、
前記記憶手段に記憶されたプログラムが実行されていない場合には、前記記憶手段へのアクセスを拒否する許否手段と、
を備えることを特徴とするマイクロプロセッサ。
【請求項２】
前記記憶手段に記憶された前記プログラムを実行させるプログラム実行手段と、
前記プログラム実行手段が前記記憶手段にアクセスする際に、前記プログラムの属性データを供給する供給手段と、
前記供給手段によって供給される属性データに基づいて、実行されている前記プログラムによって前記記憶手段にアクセスされているか否かを識別する識別手段と、を備え、
前記許否手段は、前記識別手段が、前記記憶手段へのアクセスが実行されている前記プログラムによるものではないと識別した場合には、前記記憶手段へのアクセスを拒否すること、
を特徴とする請求項１に記載のマイクロプロセッサ。
【請求項３】
前記プログラムが記録された前記記憶手段を特別モードに設定する設定手段を有し、
前記許否手段は、前記特別モードに設定された前記記憶手段へのアクセスが、実行されている前記プログラムによるものではない場合には、前記記憶手段へのアクセスを拒否すること、
を特徴とする請求項２に記載のマイクロプロセッサ。
【請求項４】
半導体チップに一体形成された構造になっていること、
を特徴とする請求項１乃至３に記載のマイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばビデオデータ、オーディオデータ、コンピュータプログラム等の暗号化されたコンテンツを復号するための信号処理技術に関し、特に、コンテンツに対する不正処理行為を防止することが可能な信号処理技術に関するものである。
【背景技術】
【０００２】
例えば、ＣＤ（Compact Disc）やＤＶＤ（Digital Video Disc又はDigital Versatile Disc）等の情報記録媒体に記録されているコンテンツを第三者が不正な目的で使用するのを防止するため、情報記録媒体にはコンテンツが予め暗号化されて記録されている。
【０００３】
従来、この暗号化されたコンテンツ（以下、暗号化コンテンツという）を元のコンテンツ（いわゆる平文のコンテンツ）に復号して再生するには、復号処理のための特定用途集積回路装置（以下、特定用途ＩＣという）を搭載した再生専用基板（以下、再生ボードという）を備えたパーソナルコンピュータ等で再生する必要があり、これにより、第三者の不正処理行為を防止することとしていた。
【０００４】
つまり、特定用途ＩＣには、暗号化コンテンツを復号するための復号鍵と復号アルゴリズムがデータとして内蔵されており、この特定用途ＩＣは外部から見えないように物理的にパッケージングされているので、不正な行為者（攻撃者）が復号鍵と復号アルゴリズムを入手することができず、よって、コンテンツの保護が可能になるとされていた。
【０００５】
また、パーソナルコンピュータの普及に伴い、上記のような再生ボードを設けなくとも、情報再生用プログラムを実行することによって、ソフトウェア的に暗号化コンテンツを元のコンテンツに復号できるようにもなっている。この場合には、上記の特定用途ＩＣに内蔵されている復号鍵及び復号アルゴリズムと同じ機能を有する再生用プログラムをパーソナルコンピュータ内に設定（インストール）しておき、この再生用プログラムを実行することで、情報記録媒体中の暗号化コンテンツを復号して再生するようになっていた。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上記の再生ボードを備えたパーソナルコンピュータは、図９（ａ）に示すように、マザーボードである電気回路基板１上に、少なくとも、マイクロプロセッサ（ＣＰＵ）２と、システムコントロール用のメモリ／バスコントローラ３、主記憶メモリ（ＤＲＡＭ）４、特定用途ＩＣを搭載した再生ボード５、ＣＤプレーヤやＤＶＤプレーヤ等の情報記録媒体再生装置７を接続するための入出力ポート６が備えられた構成となっている。主記憶メモリ４は、電気回路基板１上にパターン配線されたバスを介してメモリ／バスコントローラ３に接続され、再生ボード５と入出力ポート６は、ＰＣＩバス等を介してメモリ／バスコントローラ３に接続されている。
【０００７】
そして、情報記録媒体再生装置７に記憶されている暗号化コンテンツの再生を開始させると、マイクロプロセッサ２は、特定用途ＩＣ中に記憶されている復号鍵と復号アルゴリズムを読み出して主記憶メモリ４に記憶させた後、情報記録媒体再生装置７から供給される暗号化コンテンツを、この主記憶メモリ４に記憶された復号鍵と復号アルゴリズムに基づいて復号処理すると共に、復号化されたコンテンツを伸張処理することにより、元のコンテンツを再生するようになっている。
【０００８】
ここで、不正な行為者は、特定用途ＩＣ中に格納されている復号鍵と復号アルゴリズムを直接入手することはできないが、暗号化コンテンツの再生時に、これら復号鍵と復号アルゴリズムを実行するためには、予め主記憶メモリ４に転送されて記憶されるので、主記憶メモリ４に転送・記憶された復号鍵と復号アルゴリズムをデータとして簡単な読取りプログラムで読み取ることができるという問題があった。
【０００９】
すなわち、主記憶メモリ４は、外部に対して開放された状態で設けられており、マイクロプロセッサ２が任意のプログラムを実行する際に通常のメモリアクセスが行われるものであることから、不正な行為者は、既存の読取りプログラムや不正な読取りプログラムを実行させて主記憶メモリ４をメモリアクセスするだけで、容易に復号鍵と復号アルゴリズムを入手することができ、これらの復号鍵と復号アルゴリズムを解析することで、暗号化コンテンツを不正に処理することが可能となるという問題があった。
【００１０】
一方、図９（ｂ）に示すように上記の再生ボードが備えられていないパーソナルコンピュータで暗号化コンテンツを再生する場合や、再生ボードを使用しないで暗号化コンテンツを再生するような場合には、再生処理の開始に先立って、情報再生用プログラムが情報記録媒体再生装置７から主記憶メモリ４へ転送されて記憶される。そして、マイクロプロセッサ２が、主記憶メモリ４に記憶された情報再生用プログラムの中の復号鍵と復号アルゴリズム及び伸張処理用プログラムを実行し、情報記録媒体再生装置７から供給される暗号化コンテンツの復号及び伸張処理を行うことで、元のコンテンツを再生する。
【００１１】
したがって、情報再生用プログラムによって暗号化コンテンツをソフトウェア的に再生する場合にも、不正な行為者は、主記憶メモリ４に記憶されている復号鍵と復号アルゴリズムをデータとして容易に読み取ることができ、その入手した復号鍵と復号アルゴリズムを解析することで、暗号化コンテンツを不正に処理することが可能となるという問題があった。
【００１２】
本発明は、上記従来技術の問題点に鑑みてなされたものであり、暗号化されたコンテンツを不正処理することを防止する信号処理技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
請求項１に記載の発明は、プログラム及びデータを記憶するための記憶手段と、前記記憶手段に記憶されたプログラムが実行されていない場合には、前記記憶手段へのアクセスを拒否する許否手段と、を備えることを特徴とするマイクロプロセッサである。
【００１４】
請求項２に記載の発明は、請求項１に記載のマイクロプロセッサにおいて、前記記憶手段に記憶された前記プログラムを実行させるプログラム実行手段と、前記プログラム実行手段が前記記憶手段にアクセスする際に、前記プログラムの属性データを供給する供給手段と、前記供給手段によって供給される属性データに基づいて、実行されている前記プログラムによって前記記憶手段にアクセスされているか否かを識別する識別手段と、を備え、前記許否手段は、前記識別手段が、前記記憶手段へのアクセスが実行されている前記プログラムによるものではないと識別した場合には、前記記憶手段へのアクセスを拒否すること、を特徴とする。
【００１５】
請求項３に記載の発明は、請求項２に記載のマイクロプロセッサにおいて、前記プログラムが記録された前記記憶手段を特別モードに設定する設定手段を有し、前記許否手段は、前記特別モードに設定された前記記憶手段へのアクセスが、実行されている前記プログラムによるものではない場合には、前記記憶手段へのアクセスを拒否すること、を特徴とする。
【００１６】
請求項４に記載の発明は、請求項１乃至３に記載のマイクロプロセッサにおいて、半導体チップに一体形成された構造になっていること、を特徴とする。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図面を参照して説明する。図１は、本実施形態に係るマイクロプロセッサの構成を示すブロック図、図２は、マイクロプロセッサ内に形成されているアクセス識別制限回路付きメモリの構成を示すブロック図である。
【００１８】
図１において、マイクロプロセッサ（以下、データプロセッサという）８は、それぞれ暗号化されたビデオデータやオーディオデータ、テキストデータ、プログラム等の暗号化されたコンテンツを復号して再生することが可能な集積回路装置であり、半導体製造技術によって同一の半導体チップ（ダイ）に一体成形された所謂サーキットオンアチップ（Circuit on a chip）構造となっている。更に、データプロセッサ８は、ダイが樹脂モールド等によって封止され、外部からは見ることができない構造となっている。
【００１９】
データプロセッサ８には、主要回路として、実行ユニット９、ロード／ストアユニット１０、シーケンサー１１、データキャッシュユニット１２、命令キャッシュユニット１３、外部バスインタフェースユニット１４及びアクセス識別制限回路付きメモリ１５が形成されている。更に、これらの主要回路間でデータ転送を行うための内部バスＢＵＳ１と内部メモリバスＢＵＳ２及びその他のデータ転送用バスＢＵＳ３，ＢＵＳ４が形成されている。
【００２０】
内部バスＢＵＳ１には、実行ユニット９、ロード／ストアユニット１０、シーケンサー１１及びアクセス識別制限回路付きメモリ１５が接続されている。内部メモリバスＢＵＳ２には、ロード／ストアユニット１０、シーケンサー１１、データキャッシュユニット１２、命令キャッシュユニット１３、アクセス識別制限回路付きメモリ１５が接続されている。また、データキャッシュユニット１２と命令キャッシュユニット１３は、データ転送用バスＢＵＳ３を介して外部バスインタフェースユニット１４に接続され、外部バスインタフェースユニット１４に接続されているデータ転送用バスＢＵＳ４は、後述する電気回路基板１６に形成された外部バスＢＵＳ５に接続されるようになっている。
【００２１】
実行ユニット９は、所謂マイクロプロセッサ（ＣＰＵ）と同様に、コンピュータプログラムを実行するための命令制御部と演算制御部等の機能部ユニット回路を備えて形成されている。尚、実行ユニット９の機能については、各種文献に開示された所謂マイクロプロセッサ（ＣＰＵ）と同様であるのでその詳細な説明は割愛するが、上記の命令制御部は、命令（instruction）の読み出しと解読、その命令のオペランドアドレス（operand adress）の生成を行い、データプロセッサ８全体の制御を行う。演算制御部は、上記命令制御部によって解読されたオペレーション（operation）に従って、加減剰余、論理演算等の実行の制御を行う。
【００２２】
ロード／ストアユニット１０、シーケンサー１１、データキャッシュユニット１２、命令キャッシュユニット１３、外部バスインタフェースユニット１４及びアクセス識別制限回路付きメモリ１５は、実行ユニット９が実行する命令（instruction）又はデータの転送の制御を行うＲＩＳＣ型の記憶制御部を構成している。そして、実行ユニット９中の上記命令制御部で生成されるオペランドアドレス等を論理アドレス（仮想アドレス）から実アドレス（物理アドレス）に変換し、データキャッシュユニット１２と命令キャッシュユニット１３及びアクセス識別制限回路付きメモリ１５内に命令（instruction）又はデータが格納されているかどうかを調べ、格納されていればそれらの命令又はデータを読み出して実行ユニット９へ供給する等の制御を行う。
【００２３】
一方、データキャッシュユニット１２と命令キャッシュユニット１３及びアクセス識別制限回路付きメモリ１５内に命令（instruction）又はデータが格納されていない場合は、外部バスインタフェースユニット１４を介して主記憶メモリ１７をメモリアクセスし、主記憶メモリ１７内の命令（instruction）又はデータを読み出して、データキャッシュユニット１２と命令キャッシュユニット１３、アクセス識別制限回路付きメモリ１５へ転送した後、それらの命令（instruction）又はデータを実行ユニット９へ供給する等の制御を行う。
【００２４】
より具体的には、命令キャッシュユニット１３には、何度も頻繁に実行されるプログラムの一部を主記憶メモリ１７から読み出して格納しておくためのキャッシュメモリ領域（以下、通常命令キャッシュ領域という）が設けられ、データキャッシュユニット１２には、使用頻度の高いデータを主記憶メモリ１７から読み出して格納しておくためのキャッシュメモリ領域（以下、通常データキャッシュ領域という）が設けられ、これら通常命令キャッシュ領域と通常データキャッシュ領域は、主記憶メモリ１７より高速なメモリ素子で形成されている。
【００２５】
ただし、命令キャッシュユニット１３とデータキャッシュユニット１２には、暗号化されたコンテンツを復号するための特別なプログラムとデータは格納されず、後述するように、これらの特別なプログラムとデータは、アクセス識別制限回路付きメモリ１５に設けられている内蔵キャッシュメモリ１５ｃに格納される。
【００２６】
アクセス識別制限回路付きメモリ１５には、暗号化されたコンテンツを復号するためのプログラムを主記憶メモリ１７から読み出して格納しておくためのキャッシュメモリ領域（以下、特別命令キャッシュ領域という）ＣＳと、暗号化の際にデータを格納するためのキャッシュメモリ領域（以下、特別データキャッシュ領域という）ＤＳが設けられ、これら特別命令キャッシュ領域ＣＳと特別データキャッシュ領域ＤＳは、主記憶メモリ１７より高速なメモリ素子で形成されている。
【００２７】
ロード／ストアユニット１０は、実行ユニット９がデータ転送命令を実行する際に上記通常データキャッシュ領域又は特別データキャッシュ領域ＤＳに対しメモリアクセスを行ってデータ転送を行う。
シーケンサー１１は、上記の実アドレスに対応する通常命令キャッシュ領域又は特別命令キャッシュ領域ＣＳに対しメモリアクセスを行って命令実行の制御を行う。
外部バスインタフェースユニット１４は、データプロセッサ８と主記憶メモリ１７及び入出力ポート１８に接続された情報記録媒体再生装置１９との間でのプログラム及びデータの転送制御を行う。
【００２８】
ここで、上記アクセス識別制限回路付きメモリ１５は、図２に示すように、メモリ管理ユニット１５ａ、アクセス識別制限回路ユニット１５ｂ、内蔵キャッシュメモリ１５ｃ、属性タグメモリ１５ｄを備えて構成されている。
【００２９】
メモリ管理ユニット１５ａは、ロード／ストアユニット１０を介して供給される論理アドレスを実アドレスに変換し、アクセス識別制限回路ユニット１５ｂに供給する。内蔵キャッシュメモリ１５ｃは、上記の特別命令キャッシュ領域ＣＳと特別データキャッシュ領域ＤＳを備えて構成されている。属性タグメモリ１５ｄは、主記憶メモリ１７のアドレスを識別するためのタグデータが記憶されている。
【００３０】
アクセス識別制限回路ユニット１５ｂは、内部メモリバスＢＵＳ２を介してロード／ストアユニット１０から供給されるアクセス制御命令を受けると、メモリ管理ユニット１５ａからの上記実アドレスの所定ビットをデコードし、そのデコードデータに基づいて属性タグメモリ１５ｄをメモリアクセスすることにより、属性タグメモリ１５ｄに記憶されているタグデータＴＧを読み取る。
【００３１】
更に、アクセス識別制限回路ユニット１５ｂは、読み取ったタグデータＴＧと内部バスＢＵＳ１を介して実行ユニット９から供給されるプログラム属性データＴＤとを比較し、これらのデータＴＧ，ＴＤが一致した場合には、上記デコードデータに対応する特別命令キャッシュ領域ＣＳ内のプログラムコード又は特別データキャッシュ領域ＤＳ内のデータをシーケンサー１１又はロード／ストアユニット１０を介して実行ユニット９へ転送する。データＴＧ，ＴＤが一致しなかった場合には、特別命令キャッシュ領域ＣＳ内のプログラムコード及び特別データキャッシュ領域ＤＳ内のデータを実行ユニット９へ転送しない。
【００３２】
すなわち、アクセス識別制限回路ユニット１５ｂは、タグデータＴＧとプログラム属性データＴＤとが一致した場合に限り、実行ユニット９と内蔵キャッシュメモリ１５ｃとの間でのプログラムコード又はデータの転送を許可する。タグデータＴＧとプログラム属性データＴＤとが不一致の場合には、上記プログラムコード及びデータの転送を禁止し、これによって、内蔵キャッシメモリ１５ｃに対するアクセス要求を受け付けないようになっている。
【００３３】
次に、かかる構成を有するデータプロセッサ８の動作を図３ないし図６に示すフローチャートを参照して説明する。尚、主記憶メモリ１７には、所謂アプリケーションプログラムである復号鍵や復号アルゴリズム等の特別なプログラムを実行するためのオペレーティングシステム（operating system：ＯＳ）が予め記憶されており、このオペレーティングシステムの下で、ＣＤプレーヤやＤＶＤプレーヤ等の情報記録媒体再生装置１９で再生されるコンテンツ（暗号化コンテンツ）を復号して再生する。
【００３４】
まず、情報記録媒体再生装置１９で再生されるＣＤやＤＶＤ等の情報記録媒体には、データ圧縮及び暗号化が施された暗号化コンテンツの他、再生用の特別なプログラム、すなわち、暗号化コンテンツを復号するための復号鍵及び復号アルゴリズムと、必要に応じて復号後のコンテンツをデータ伸張するための伸張プログラムと、これらデータ圧縮及び暗号化が施された暗号化コンテンツと復号鍵と復号アルゴリズム及び伸張プログラムをデータプロセッサ８内に入力するためのローダープログラム等が記録されている。
【００３５】
更に、少なくとも復号鍵と復号アルゴリズムは断片化されて記録されており、再生処理に寄与しないダミープログラムと共に、解析が困難な状態（例えばランダムな状態）で記録されている。
【００３６】
図３において、ユーザーがデータ圧縮及び暗号化が施されたコンテンツの再生を行うために、再生処理の準備を指令すると、実行ユニット９が情報記録媒体再生装置１９を起動させ、情報記録媒体に記録されている上記特別なプログラムを主記憶メモリ１７に転送させて記憶させる（ステップ１００）。ただし、復号鍵と復号アルゴリズムは断片化されたままの状態で主記憶メモリ１７に記憶されるため、これら断片化された復号鍵と復号アルゴリズムを主記憶メモリ１７から読み取られたとしても、本来の復号鍵と復号アルゴリズムを復元することは極めて困難である。
【００３７】
次に、実行ユニット９が、主記憶メモリ１７に記憶された上記特別なプログラムのうちのローダープログラムを実行し、復号鍵と復号アルゴリズム及び伸張プログラムをアクセス識別制限回路ユニット１５ｂ中の内蔵キャッシュメモリ１５ｃに記憶させる（ステップ１０２，１０４，１０６）。
【００３８】
ここで、実行ユニット９がアクセス識別制限回路ユニット１５ｂに対し最初にアクセス制御すると、アクセス識別制限回路ユニット１５ｂは、内蔵キャッシュメモリ１５ｃを特別モードに設定し、特別命令キャッシュ領域ＣＳと特別データキャッシュ領域ＤＳをクリアさせる（ステップ１０２）。
【００３９】
次に、そのクリア処理の完了後、特別命令キャッシュ領域ＣＳと特別データキャッシュ領域ＤＳに復号鍵と復号アルゴリズム及び伸張プログラムを転送し（ステップ１０４）、アクセスチェックを行って記憶させる（ステップ１０６）。更に、ローダープログラムは、断片化されている復号鍵と復号アルゴリズムを連続した復号鍵と復号アルゴリズムに復元化するキャッシュ初期化命令コードを有しており、これにより、復元化された復号鍵と復号アルゴリズム及び伸張プログラムを特別命令キャッシュ領域ＣＳと特別データキャッシュ領域ＤＳに記憶させると共に、特別命令キャッシュ領域ＣＳと特別データキャッシュ領域ＤＳの各インデックスアドレスに対応付けてタグデータＴＧを属性タグメモリ１５ｄに記憶させる（ステップ１０４，１０６）。そして、復号鍵と復号アルゴリズム及び伸張プログラムが正常に記憶されると、暗号化コンテンツの再生を行うための準備が完了する。尚、ステップ１０６においてアクセスエラーが発生すると、復号鍵と復号アルゴリズム及び伸張プログラムの記憶が行われず、実行ユニット９によるエラーチェックのための割り込み処理が行われることになる。
【００４０】
このように復号鍵と復号アルゴリズム及び伸張プログラムが復元されてキャッシュメモリ１５ｃに記憶された後、ユーザーが再生開始の指令を行うと、実行ユニット９が、特別命令キャッシュ領域ＣＳと特別データキャッシュ領域ＤＳに記憶された復号鍵と復号アルゴリズム及び伸張プログラムを実行し、情報記録媒体再生装置１９から供給される暗号化コンテンツを復号及び伸張処理することにより、元の（いわゆる平文の）コンテンツに再生して主記憶メモリ１７へ転送し記憶させる。そして、主記憶メモリ１７に記憶されたコンテンツを外部バスＢＵＳ４を介してディスプレイやオーディオシステム（図示省略）へ転送することにより、画像再生やオーディオ再生が行われる。
【００４１】
ここで、実行ユニット９が特別命令キャッシュ領域ＣＳと特別データキャッシュ領域ＤＳ中に記憶された復号鍵と復号アルゴリズム及び伸張プログラムを実行する際、プログラムコードの読み出しは図４に示すフローチャート、データの読み出しは図５に示すフローチャート、データの書き込みは図６に示すフローチャートに従って行われる。
【００４２】
図４において、実行ユニット９がアクセス識別制限回路付きユニット１５対しプログラムコード（operation code）の読み出しアクセスを行うと（ステップ２００）、メモリ管理ユニット１５ａが論理アドレスを実アドレスに変換し（ステップ２０２）、アクセス識別制限回路ユニット１５ｂがその実アドレスをチェックすることにより、内蔵キャッシュメモリ１５ｃに対するアクセスか否かチェックする（ステップ２０４，２０６）。
【００４３】
ここで、内蔵キャッシュメモリ１５ｃ又は上記通常命令キャッシュ領域に対するアクセスでない場合には、実行ユニット９はステップ２０８の処理に移行し、主記憶メモリ１７に記憶されているプログラムコードを読み出して、内蔵キャッシュメモリ１５ｃ又は上記通常命令キャッシュ領域に格納し、更に、内蔵キャッシュメモリ１５ｃに格納した場合には、ステップ２１２において、その格納したプログラムコードを読み出して、プログラムコードの読み出し処理を完了する。
【００４４】
一方、ステップ２０６において上記通常命令キャッシュ領域に対するアクセスの場合には、ステップ２１２において、通常命令キャッシュ領域に格納されているプログラムコードを読み出して、プログラムコードの読み出し処理を完了する。
また、ステップ２０６において内蔵キャッシュメモリ１５ｃに対するアクセスの場合には、ステップ２１０に移行し、アクセス識別制限回路ユニット１５ｂが、アクセス要求と同時に実行ユニット９から供給された特別属性データＴＤと属性タグメモリ１５ｄ中のタグデータＴＧを比較する（ステップ２１０）。そして、これらのデータＴＤ，ＴＧが一致している場合には、ステップ２１２に移行し、内蔵キャッシュメモリ１５ｃの特別命令キャッシュ領域ＣＳからプログラムコードを読み出して実行ユニット９へ転送することにより、プログラムコードの読み出しを完了し、実行ユニット９が転送されたプログラムコードを実行することで、復号鍵と復号アルゴリズムに基づいて暗号化コンテンツの復号化が行われる。
【００４５】
また、ステップ２１０において、データＴＤ，ＴＧが一致していない場合には、実行ユニット９によるエラーチェックのための割り込み処理が行われることになる。
【００４６】
このように、プログラムコードの読み出しアクセスの際、アクセス識別制限回路ユニット１５ｂが、特別属性データＴＤと属性タグメモリ１５ｄ中のタグデータＴＧとの一致又は不一致の確認を行い、不一致の場合には内蔵キャッシュメモリ１５ｃへのアクセスを拒否し、一致した場合に限り、内蔵キャッシュメモリ１５ｃへのアクセスを許可するようにしたので、不正なアクセスを排除することができる。
【００４７】
次に、図５において、実行ユニット９がアクセス識別制限回路付きユニット１５対しデータの読み出しアクセスを行うと（ステップ３００）、メモリ管理ユニット１５ａが論理アドレスを実アドレスに変換し（ステップ３０２）、アクセス識別制限回路ユニット１５ｂがその実アドレスをチェックすることにより、内蔵キャッシュメモリ１５ｃに対するアクセスか否かチェックする（ステップ３０４，３０６）。
【００４８】
ここで、内蔵キャッシュメモリ１５ｃ又は上記通常命令キャッシュ領域に対するアクセスでない場合には、実行ユニット９はステップ３０８の処理に移行し、主記憶メモリ１７に記憶されているデータを読み出して、内蔵キャッシュメモリ１５ｃ又は上記通常命令キャッシュ領域に格納する。更に、内蔵キャッシュメモリ１５ｃにデータを格納した場合には、ステップ３１２において、その格納したデータを読み出して、データの読み出し処理を完了する。
【００４９】
一方、ステップ３０６において上記通常命令キャッシュ領域に対するアクセスの場合には、ステップ３１２において、通常命令キャッシュ領域に格納されているデータを読み出して、データの読み出し処理を完了する。
【００５０】
また、ステップ３０６において内蔵キャッシュメモリ１５ｃに対するアクセスの場合には、ステップ３１０の処理に移行し、アクセス識別制限回路ユニット１５ｂが、アクセス要求と同時に実行ユニット９から供給された特別属性データＴＤと属性タグメモリ１５ｄ中のタグデータＴＧを比較する。そして、これらのデータＴＤ，ＴＧが一致している場合には、ステップ３１２に移行し、内蔵キャッシュメモリ１５ｃの特別データキャッシュ領域ＤＳからデータを読み出して実行ユニット９へ転送することにより、データの読み出しを完了し、実行ユニット９が転送されたデータを処理することで、復号鍵と復号アルゴリズムに基づいて暗号化コンテンツの復号化が行われる。
また、ステップ３１０において、データＴＤ，ＴＧが一致していない場合には、実行ユニット９によるエラーチェックのための割り込み処理が行われることになる。
【００５１】
このように、データの読み出しアクセスの際、アクセス識別制限回路ユニット１５ｂが、特別属性データＴＤと属性タグメモリ１５ｄ中のタグデータＴＧとの一致又は不一致の確認を行い、不一致の場合には内蔵キャッシュメモリ１５ｃへのアクセスを拒否し、一致した場合に限り、内蔵キャッシュメモリ１５ｃへのアクセスを許可するようにしたので、不正なアクセスを排除することができる。
【００５２】
次に、図６において、実行ユニット９がアクセス識別制限回路付きユニット１５対しデータ書き込みのアクセスを行うと（ステップ４００）、メモリ管理ユニット１５ａが論理アドレスを実アドレスに変換し（ステップ４０２）、アクセス識別制限回路ユニット１５ｂがその実アドレスをチェックすることにより、内蔵キャッシュメモリ１５ｃに対するアクセスか否かチェックする（ステップ４０４，４０６）。
【００５３】
ここで、内蔵キャッシュメモリ１５ｃ又は上記通常命令キャッシュ領域に対するアクセスでない場合には、実行ユニット９はステップ４０８の処理に移行し、データを主記憶メモリ１７に記憶させ、データの書き込み処理を完了する。
【００５４】
一方、ステップ４０６において上記通常命令キャッシュ領域に対するアクセスの場合には、ステップ４１２において、通常命令キャッシュ領域にデータを書き込んで、データの書き込み処理を完了する。
【００５５】
また、ステップ４０６において内蔵キャッシュメモリ１５ｃに対するアクセスの場合には、ステップ４１０の処理に移行し、アクセス識別制限回路ユニット１５ｂが、アクセス要求と同時に実行ユニット９から供給された特別属性データＴＤと属性タグメモリ１５ｄ中のタグデータＴＧを比較する。そして、これらのデータＴＤ，ＴＧが一致している場合には、ステップ４１２に移行し、内蔵キャッシュメモリ１５ｃの特別データキャッシュ領域ＤＳへデータを書き込むことにより、データの書き込み処理を完了する。
また、ステップ４１０において、データＴＤ，ＴＧが一致していない場合には、実行ユニット９によるエラーチェックのための割り込み処理が行われることになる。
【００５６】
このように、アクセス識別制限回路ユニット１５ｂが、特別属性データＴＤと属性タグメモリ１５ｄの一致又は不一致の確認を行うことにより、復号鍵と復号アルゴリズムのデータが適正にアクセスされたか否か判断されるので、不正なアクセスを排除することができる。
【００５７】
以上説明したように、本実施形態のデータプロセッサ８によれば、復号鍵や復号アルゴリズム等の特別なプログラムをアクセス識別制限回路付きメモリ１５に記憶させ、アクセス識別制限回路付きメモリ１５に記憶したこれらの特別なプログラムを実行することによってのみ、暗号化コンテンツを元のコンテンツに復号して再生するようにしたので、復号鍵や復号アルゴリズム等の特別なプログラムが外部に漏洩するのを防止し、ひいてはコンテンツの保護が可能となる。
【００５８】
すなわち、アクセス識別制限回路付きメモリ１５に記憶した上記特別なプログラムを、外部から密閉されたデータプロセッサ８の内部においてのみ実行することで、暗号化コンテンツの復号と再生が行われる。よって、ユーザーや不正な行為者に対しては、データプロセッサ８に対し供給される暗号化コンテンツと、その復号及び再生がなされたコンテンツを入手することができるが、その間になされた復号化処理のプロセスを確認することができないようになっている。このため、復号鍵や復号アルゴリズム等の特別なプログラムが外部に漏洩するのを防止することができる。
【００５９】
更に、図４及び図５に示したように、特別属性データＴＤと属性タグメモリ１５ｄ中のタグデータＴＧとの一致又は不一致の確認を行い、不一致の場合には、特別命令キャッシュ領域ＣＳ及び特別データキャッシュ領域ＤＳに対するアクセスを禁止するようにしたので、不正な行為者に復号鍵と復号アルゴリズムが取得されることを防止することができる。
【００６０】
更に、図３に示したように、ロードプログラムによって復号鍵と復号アルゴリズムを特別命令キャッシュ領域ＣＳ及び特別データキャッシュ領域ＤＳ内に記憶させる際に、特別命令キャッシュ領域ＣＳ及び特別データキャッシュ領域ＤＳ中の旧いプログラム及びデータを必ずクリアしてから記憶させるようにしたので、再生処理を行う度に、ロードプログラムによって復号鍵と復号アルゴリズムを特別命令キャッシュ領域ＣＳ及び特別データキャッシュ領域ＤＳ内に記憶させるようになっている。このため、不正な行為者によって復号鍵と復号アルゴリズムが取得されることを防止することができる。
【００６１】
尚、以上の説明では、信号処理専用のデータプロセッサ８について説明したが、本発明は、一般に市販されているマイクロプロセッサ（ＣＰＵ）で再生用プログラムを実行させてソフトウェア的に暗号化コンテンツを復号及び再生させる場合にも、復号鍵と復号アルゴリズム等の特別なプログラムを漏洩から防止することができる。
【００６２】
例えば、図７はペンティアム系のマイクロプロセッサ（インテル社製）２０を用いた一般的な回路構成を示している。マイクロプロセッサ２０は、マザーボードと呼ばれる電気回路基板２１に搭載されている。マイクロプロセッサ２０内に形成されているシステムバスインタフェースユニット２２が電気回路基板２１上に形成されている外部バスＢＵＳ６と接続され、外部バスＢＵＳ６には、主記憶メモリ２３が接続されると共に、入出力ポート２４を介して情報記録媒体再生装置２５が接続されている。
【００６３】
マイクロプロセッサ２０内には、主要回路として、上記のシステムバスインタフェースユニット２２の他、実行ユニット２６、命令フェッチユニット２７、命令デコーダ２８、レジスタアロケーションテーブル２９、リオーダーバッファ３０、命令キャッシュユニット３１、データキャッシュユニット３２が形成されており、システムバスインタフェースユニット２２と命令キャッシュユニット３１及びデータキャッシュユニット３２間でのプログラム及びデータの授受が内部バスＢＵＳ７を介して行われるようになっている。
【００６４】
これら主要回路の機能については各種文献に開示されているので、詳細な説明は割愛する。但し、本実施形態の主要な点として、命令キャッシュユニット３１に形成されている命令キャッシュメモリは、通常の命令キャッシュ領域３１ａ、すなわちレベル１（Ｌ１）の命令キャッシュ領域３１ａの他、復号鍵や復号アルゴリズムに関する特別なプログラムコードを記憶するための特別ＣＳ用キャッシュ領域３１ｂが形成されている。データキャッシュユニット３２に形成されているデータキャッシュメモリも、通常のデータキャッシュ領域３２ａ、すなわちレベル１（Ｌ１）のデータキャッシュ領域３２ａの他、復号鍵や復号アルゴリズムに関する特別なデータを記憶するための特別ＤＳ用キャッシュ領域３２ｂが形成されている。
【００６５】
より具体的には、図８に示すように、命令キャッシュユニット３１とデータキャッシュユニット３２には内蔵キャッシュメモリが形成され、この内蔵キャッシュユニットは、通常の命令キャッシュ領域３１ａとデータキャッシュ領域３２ａの他、特別なプログラムコードとデータを記憶するための特別ＣＳ用キャッシュ領域３２ｂと特別ＤＳ用キャッシュ領域３２ｂが設けられている。更に、実行ユニット２６と命令フェッチユニット２７及び内部バスＢＵＳ７に接続するキャッシュ制御回路３３と、タグメモリ３４が備えられている。
【００６６】
タグメモリ３４は、特別ＣＳ用キャッシュ領域３１ｂのインデックスアドレスに対応するタグデータ（特別ＣＳ専用タグという）ＴＧＣを記憶するタグ記憶領域３４ａと、特別ＤＳ用キャッシュ領域３２ｂのインデックスアドレスに対応するタグデータ（特別ＤＳ専用タグという）ＴＧＤを記憶するタグ記憶領域３４ｂと、通常の命令キャッシュ領域３１ａ及びデータキャッシュ領域３２ａのインデックスアドレスに対応するタグデータ（通常タグという）を記憶するタグ記憶領域３４ｃが設けられている。
【００６７】
かかる構成において、ユーザーが暗号化コンテンツの再生を行うために、再生処理の準備を指令すると、図３に示したフローチャートと同様の処理が行われることにより、情報記録媒体に記録されている復号鍵、復号アルゴリズム、ローダープログラム、伸張プログラム等の特別なプログラムが情報記録媒体再生装置２５から主記録メモリ２３に転送されて記憶された後、主記録メモリ２３に記憶された上記ローダープログラムが実行される。
【００６８】
尚、復号鍵と復号アルゴリズムは断片化されたままの状態で主記憶メモリ２３に記憶されるため、これら断片化された復号鍵と復号アルゴリズムを主記憶メモリ２３から読み取られたとしても、本来の復号鍵と復号アルゴリズムを復元することは極めて困難である。
【００６９】
ローダープログラムが実行されると、先ず特別ＣＳ用キャッシュ領域３１ｂと特別ＤＳ用キャッシュ領域３２ｂがクリアされた後、主記録メモリ２３に記憶されている復号鍵と復号アルゴリズム及び伸張プログラムが復元され、特別ＣＳ用キャッシュ領域３１ｂと特別ＤＳ用キャッシュ領域３２ｂに転送されて記憶され、更に、タグメモリ３４のタグ記憶領域３４ａに、特別ＣＳ用キャッシュ領域３１ｂのインデックスアドレスに対応付けて特別なタグデータＴＧＣが記憶され、タグ記憶領域３４ｂに、特別ＤＳ用キャッシュ領域３２ｂのインデックスアドレスに対応付けて特別なタグデータＴＧＤがそれぞれ記憶される。
【００７０】
次に、マイクロプロセッサ２０が、特別ＣＳ用キャッシュ領域３１ｂと特別ＤＳ用キャッシュ領域３２ｂに記憶された復号鍵と復号アルゴリズム及び伸張プログラムを実行し、情報記録媒体再生装置２５から転送される暗号化コンテンツの再生処理を開始すると、図４〜図６に示したフローチャートの処理と同様に、プログラムコードの読み出しは図４に示すフローチャート、データの読み出しは図５に示すフローチャート、データの書き込みは図６に示すフローチャートに従って行われる。
【００７１】
すなわち、プログラムコードの読み出し時には、キャッシュ制御回路３３が、命令フェッチユニット２７からのアクセス要求と同時に供給される特別属性データＴＤとタグ記憶領域３４ａ中のタグデータＴＧＣとを比較し、これらのデータＴＤ，ＴＧＣが一致している場合に限って、特別ＣＳ用キャッシュ領域３１ｂ中のプログラムコードを読み出して命令デコーダ２８側へ転送する。
【００７２】
データの読み出し時には、キャッシュ制御回路３３が、実行ユニット２６中のメモリオーダバッファからのアクセス要求と同時に供給される特別属性データＴＤとタグ記憶領域３４ｂ中のタグデータＴＧＤとを比較し、これらのデータＴＤ，ＴＧＤが一致している場合に限って、特別ＤＳ用キャッシュ領域３２ｂ中のデータを読み出してリオーダーバッファ３０側へ転送する。
【００７３】
また、データの書き込み時においても、実行ユニット２６中のメモリオーダバッファからのアクセス要求と同時に供給される特別属性データＴＤとタグ記憶領域３４ｂ中のタグデータＴＧＤとを比較し、これらのデータＴＤ，ＴＧＤが一致している場合に限って、特別ＤＳ用キャッシュ領域３２ｂへのデータ書き込みが行われる。
【００７４】
したがって、一般に市販されているマイクロプロセッサ２０で再生用プログラムを実行させてソフトウェア的に暗号化コンテンツを復号及び再生させる場合においても、復号鍵、復号アルゴリズム等の外部ヘの漏洩を防止する必要のある特別なプログラムはマイクロプロセッサ２０内においてのみ実行され、更に、マイクロプロセッサ２０内において暗号化コンテンツを元のコンテンツに復号及び伸張するための処理過程も外部からは分からないので、復号鍵や復号アルゴリズム等の特別なプログラムが外部に漏洩するのを防止し、ひいてはコンテンツの保護が可能となる。
【図面の簡単な説明】
【００７５】
【図１】本実施形態に係るデータプロセッサの構成を示すブロック図である。
【図２】データプロセッサに内蔵されているアクセス識別制限回路付きメモリの構成を示すブロック図である。
【図３】アクセス識別制限回路付きメモリに再生用の特別なプログラムを格納する際の動作を示すフローチャートである。
【図４】アクセス識別制限回路付きメモリに記憶されている特別なプログラムを不正に読み出すことを禁止する動作を示すフローチャートである。
【図５】アクセス識別制限回路付きメモリに記憶されている特別なデータを不正に読み出すことを禁止する動作を示すフローチャートである。
【図６】アクセス識別制限回路付きメモリに不正にデータを書き込むことを禁止する動作を示すフローチャートである。
【図７】一般的なマイクロプロセッサに本発明を適用した場合のマイクロプロセッサの構成を示すブロック図である。
【図８】一般的なマイクロプロセッサに本発明を適用した場合の内蔵キャッシュユニットの構成を示すブロック図である。
【図９】従来のパーソナルコンピュータにおける問題点を説明するための図である。
【符号の説明】
【００７６】
８…データプロセッサ
９…実行ユニット
１０…ロード／ストアユニット
１１…シーケンサー
１２…データキャッシュユニット
１３…命令キャシュユニット
１４…外部バスインタフェースユニット
１５…アクセス識別制限回路付きメモリ
１５ａ…メモリ管理ユニット
１５ｂ…アクセス識別制限回路ユニット
１５ｃ…内蔵キャッシュメモリ
１５ｄ…属性タグメモリ
１６…電気回路基板
１７…主記憶メモリ
１８…入出力ポート
１９…情報記録媒体再生装置
ＣＳ…特別命令キャシュ領域
ＤＳ…特別データキャッシュ領域
ＢＵＳ１…内部バス
ＢＵＳ２…内部メモリバス
ＢＵＳ３，ＢＵＳ４…データ転送用バス
ＢＵＳ５…外部バス
２０…マイクロプロセッサ
２１…電気回路基板
２２…システムバスインタフェース
２３…主記憶メモリ
２４…入出力ポート
２５…情報記録媒体再生装置
２６…実行ユニット
２７…命令フェッチユニット
２８…命令デコーダ
２９…レジスタアロケーションテーブル
３０…リオーダーバッファ
３１…命令キャッシュユニット
３１ａ…通常の命令キャッシュ領域
３１ｂ…特別ＣＳ用キャッシュ領域
３２…データキャッシュユニット
３２ａ…通常のデータキャッシュ領域
３２ｂ…特別ＤＳ用キャッシュ領域
３３…キャッシュ制御回路
３４…タグメモリ
３４ａ，３４ｂ，３４ｃ…タグ記憶領域
【図１】
2008010007.tif 000003
【図２】
2008010007.tif 000004
【図３】
2008010007.tif 000005
【図４】
2008010007.tif 000006
【図５】
2008010007.tif 000007
【図６】
2008010007.tif 000008
【図７】
2008010007.tif 000009
【図８】
2008010007.tif 000010
【図９】
2008010007.tif 000011