(57)【要約】【課題】パーソナルコンピュータ等のオープンアーキテクチャを有する装置に対して、最低限のハードウェアを付加することで、安全なソフトウェア処理を実行させること。【解決手段】内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュール１５０と、外部から参照することが可能なメインメモリを備え、セキュアモジュール１５０は、いずれの手段も介さずに直接アクセスによりメインメモリに格納されたセキュアソフトウェア１８０のコード等を読み出し、このコード等と予め格納された情報との比較結果に基づいて、セキュアソフトウェア１８０の改ざんをチェックする。【選択図】　　　図３
2004129227.tif 000002
【特許請求の範囲】
【請求項１】
情報を再生する情報再生装置において、
内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールと、
外部から参照することが可能なメモリと、
前記セキュアモジュールに実装され、いずれの手段も介さずに直接アクセスにより前記メモリに格納されたメモリ格納情報を読み出し、該メモリ格納情報と、前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック手段と、
を備えたことを特徴とする情報再生装置。
【請求項２】
前記セキュアモジュールに実装され、いずれの手段も介さずに直接アクセスにより前記メモリに格納されたメモリ格納情報を書き換える書き換え手段を備え、前記改ざんチェック手段は、書き換え後のメモリ格納情報と前記セキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックすることを特徴とする請求項１に記載の情報再生装置。
【請求項３】
前記セキュアモジュールに実装され、原情報に変更をかけ、変更後の情報をメモリ格納情報として前記メモリに格納する格納制御手段を備えたことを特徴とする請求項１または２に記載の情報再生装置。
【請求項４】
前記格納制御手段は、前記メモリ格納情報を更新した場合に、更新前のメモリ格納情報から更新後のメモリ格納情報への引継を行わせることを特徴とする請求項３に記載の情報再生装置。
【請求項５】
前記格納制御手段は、前記セキュアモジュール内のみに存在する鍵を用いて前記原情報を暗号化し、暗号化された原情報を前記メモリ格納情報として前記メモリに格納することを特徴とする請求項３または４に記載の情報再生装置。
【請求項６】
前記セキュアモジュールに実装されており、前記メモリ格納情報の暗号化または復号化に用いられる鍵を保持し、前記改ざんチェック手段により改ざんが検知されない場合、鍵を外部へ供給する鍵管理手段を備えたことを特徴とする請求項１〜５のいずれか一つに記載の情報再生装置。
【請求項７】
前記鍵管理手段は、前記改ざんチェック手段により改ざんが検知された場合、前記鍵の供給を停止することを特徴とする請求項６に記載の情報再生装置。
【請求項８】
前記セキュアモジュールに実装され、直接アクセスにより、前記セキュアモジュール内の秘密情報を前記メモリに書き込む書込手段を備え、前記改ざんチェック手段は、書き込まれた前記秘密情報に対応する応答情報に基づいて前記メモリ格納情報の改ざんをチェックすることを特徴とする請求項１〜７のいずれか一つに記載の情報再生装置。
【請求項９】
情報再生装置に実装され、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールにおいて、
外部から参照することが可能であって前記情報再生装置に実装されたメモリに格納されたメモリ格納情報をいずれの手段も介さずに直接アクセスにより読み出す読み出し手段と、
読み出された前記メモリ格納情報と前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック手段と、
を備えたことを特徴とするセキュアモジュール。
【請求項１０】
内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュール内で実行され、いずれの手段も介さずに直接アクセスにより外部から参照することが可能なメモリに格納されたメモリ格納情報を読み出す読み出し工程と、
読み出された前記メモリ格納情報と前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック工程と、
を含むことを特徴とする情報再生方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、インターネットを介してダウンロードされた情報または記録媒体に格納されている情報を再生するための情報再生装置、セキュアモジュールおよび情報再生方法に関するものであり、特に、パーソナルコンピュータ等のオープンアーキテクチャを有する装置に対して、最低限のハードウェアを付加することで、安全なソフトウェア処理を実行することができる情報再生装置、セキュアモジュールおよび情報再生方法に関するものである。
【０００２】
【従来の技術】
近年、ブロードバンドインターネットやディジタル放送が普及しつつあり、配信されたコンテンツ（主に、ディジタルＡＶ（Ａｕｄｉｏ　Ｖｉｄｅｏ）の安全性を保障する権利保護技術がクローズアップされている。
【０００３】
この中でも特にパーソナルコンピュータ（ＰＣ：Ｐｅｒｓｏｎａｌ　Ｃｏｍｐｕｔｅｒ）は、オープンアーキテクチャであり、基本的に覗き見が出来るため、安全性の実現が困難とされている。
【０００４】
しかしながら、一方でパーソナルコンピュータは、ブロードバンドインターネットの主要な出入り口として機能している。従って、パーソナルコンピュータ（出入り口）で安全性が保障される場合には、インターネット全体でのディジタルＡＶコンテンツの配信が可能になり意義が大きい。
【０００５】
従来より、パーソナルコンピュータのソフトウェアによる権利保護については、安全性を保障するアルゴリズムの解析を困難にする難読化による手法が主流であった。
【０００６】
しかしながら、パーソナルコンピュータ上のソフトウェアにおいては、一旦、メインメモリ上に実装してしまえば、コピーすることが容易であり、コピーした結果を時間をかけて解析することで、権利保護アルゴリズムが解析できる。
【０００７】
従って、難読化による権利保護のシステムは、安全性が低いシステムであると考えられ、放送等恒常性が高いシステムで一度解析されたことによる被害を想定すると、採用が困難である。
【０００８】
図７は、パーソナルコンピュータ５０を用いた従来のシステムの構成例を示すブロック図である。この図に示したように、従来のシステムは、パーソナルコンピュータ５０、ネットワーク５１、スピーカ５２、表示装置５３および入力装置５４によって構成されている。
【０００９】
パーソナルコンピュータ５０は、情報再生装置としての機能を備えており、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）５０ａ、ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）５０ｂ、ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）５０ｃ、ハードディスクドライブ５０ｄ、ＭＢ（Ｍｕｌｔｉｍｅｄｉａ　Ｂｏａｒｄ）５０ｅ、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）５０ｆ、Ｉ／Ｆ５０ｇ、バス５０ｈによって構成され、ネットワーク５１を介してダウンロードされた暗号化情報やハードディスクドライブ５０ｄに格納された暗号化情報を復号してスピーカ５２および表示装置５３へ出力する。
【００１０】
ＣＰＵ５０ａは、ハードディスクドライブ５０ｄに格納されているプログラムに従って各種演算処理を実行するとともに、装置の各部を制御する。ＲＯＭ５０ｂは、ＣＰＵ５０ａが実行する基本的なプログラムやデータを格納している。ＲＡＭ５０ｃは、ＣＰＵ５０ａが各種演算処理を実行する際に、実行対象となるプログラムやデータを一時的に格納する。
【００１１】
ハードディスクドライブ５０ｄは、ＣＰＵ５０ａが実行するプログラムやデータ等を格納している。ＭＢ５０ｅは、ＣＰＵ５０ａから供給され、暗号化された音声データや画像データを復号し、元の音声信号や画像信号を生成した後、これらをスピーカ５２および表示装置５３へ出力する。
【００１２】
Ｉ／Ｆ５０ｆは、ネットワーク５１を介して情報を送受信する際のインタフェースであり、プロトコル変換やデータのフォーマット変換を実行する。Ｉ／Ｆ５０ｇは、入力装置５４より入力されたデータを、パーソナルコンピュータ５０の内部形式のデータに変換する。
【００１３】
バス５０ｈは、ＣＰＵ５０ａ、ＲＯＭ５０ｂ、ＲＡＭ５０ｃ、ハードディスクドライブ５０ｄ、ＭＢ５０ｅ、Ｉ／Ｆ５０ｆおよびＩ／Ｆ５０ｇを相互に接続し、これらの間で情報の授受を可能にする。
【００１４】
ネットワーク５１は、例えば、インターネットにより構成されている。スピーカ５２は、ＭＢ５０ｅから供給された音声信号を音声に変換して出力する。表示装置５３は、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ　Ｒａｙ　Ｔｕｂｅ）モニタや液晶モニタによって構成されており、ＭＢ５０ｅから供給された画像信号を画像として表示する。入力装置５４は、例えば、マウスやキーボードによって構成されている。
【００１５】
図８は、図７に示したパーソナルコンピュータ５０における情報の流れを示す図である。同図に示したように、ハードディスクドライブ５０ｄには、基本ソフトウェア、暗号解読鍵群および暗号化コンテンツが格納されている。
【００１６】
ここで、基本ソフトウェアは、暗号化コンテンツの暗号を解読するための処理を等を行うためのソフトウェアであり、悪意あるユーザに解読されるのを防止することを目的として、難読化されている。この難読化とは、以下のような処理が施されていることをいう。
【００１７】
2004129227.tif 000003
【００１８】
すなわち、上記のように、難読化の前後で演算結果が同じであるが、難読化後は、アルゴリズムを解読するのが難しくなっている。
【００１９】
ハードディスクドライブ５０ｄにおける暗号解読鍵群は、暗号化コンテンツに施されている暗号を解読するための複数の鍵であり、悪意あるユーザに容易に取得されないようにすることを目的として、秘密のスクランブルが施された状態で秘密の場所に格納されている。
【００２０】
暗号化コンテンツは、暗号化処理が施されたコンテンツであり、例えば、画像、音声、コンピュータデータ等から構成されている。
【００２１】
暗号化コンテンツの再生が開始されると、以下の処理が実行される。
（１）ハードディスクドライブ５０ｄから難読化された基本ソフトウェアが読み出され、ＲＡＭ５０ｃ上に実装される。
【００２２】
（２）読み出された基本ソフトウェアは、必要に応じて秘密の場所に格納され、秘密のスクランブルがかかった暗号解読鍵がハードディスクドライブ５０ｄから読み出される。暗号解読鍵は、例えば、３〜５箇所に分けて秘密の場所に格納され、秘密の演算等を施さないと目的の鍵が得られないように処理されている。
【００２３】
（３）ハードディスクドライブ５０ｄから暗号化コンテンツが読み出され、暗号解読鍵で暗号が解読される。
【００２４】
（４）暗号解読されたコンテンツが圧縮されている場合には、伸張処理（ビデオコンテンツの場合は、ＭＰＥＧ（Ｍｏｔｉｏｎ　Ｐｉｃｔｕｒｅ　Ｅｘｐｅｒｔｓ　Ｇｒｏｕｐ）伸張処理等）が実行され、得られたコンテンツがＲＡＭ５０ｃ上のバッファに格納された後、ＭＢ５０ｅへ出力される。
【００２５】
（５）ＭＢ５０ｅは、入力されたコンテンツに対してＤ／Ａ（Ｄｉｇｔａｌ／Ａｎａｌｏｇ）変換処理および描画処理を施し、得られた音声信号をスピーカ５２（図７参照）へ出力するとともに、画像信号を表示装置５３へ出力する。これにより、コンテンツが再生される。
【００２６】
【発明が解決しようとする課題】
ところで、前述したように、従来においては、基本ソフトウェアがパーソナルコンピュータ５０のＲＡＭ５０ｃに実装されるため、悪意のあるユーザによって解読されたり、コピーされたりするという危険性を伴う。
【００２７】
仮に、ハードディスクドライブ５０ｄに格納されている基本ソフトウェアやその他を全て暗号化したとしても、その暗号を解くための暗号解読ソフトウェアがパーソナルコンピュータ５０のどこかに存在すれば、その暗号解読ソフトウェアを解析して暗号解読鍵の格納場所が特定されると、やはり基本ソフトウェアが解析され、権利保護アルゴリズムが判明してしまう。
【００２８】
特に、放送等、公共性が高いネットワークでは、権利保護アルゴリズムが判明しても容易にコンテンツの解読ができない処理法が望まれる。現行のハードウェア主体のディジタルテレビ受信機では、ＭＵＬＴＩ２、ＤＥＳ（Ｄａｔａ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）などの暗号化が行われている。これらは、アルゴリズムは公知であるが、暗号解読鍵が判明しない限り、コンテンツの暗号を解読することが極めて困難である。
【００２９】
しかしながら、ディジタルテレビ受信機では、暗号解読鍵がハードウェアに内蔵され、ソフトウェア上には読み出すことができないような構成が採られている。
【００３０】
さらに、ディジタルテレビ受信機では、暗号解読回路やコンテンツ処理回路（ＭＰＥＧビデオ伸張回路やＭＰＥＧオーディオ伸張回路）もハードウェアで構成されているため、処理の内容を覗き見することは極めて困難とされている。
【００３１】
このようなディジタルテレビ受信機は、実際に商用化が進んでいる。日本のパーフェクＴＶ（商標）や米国のＤｉｒｅｃＴＶ（商標）などは、かかるディジタルテレビ受信機の好例である。
【００３２】
これに対して、ソフトウェア処理では、暗号解読鍵、暗号解読回路、コンテンツ処理回路が基本ソフトウェアで実現されており、このような基本ソフト自体、さらには途中の演算結果も容易に読み取り可能なパーソナルコンピュータ５０上のＲＡＭ５０ｃに実装されるため、解析、覗き見が容易に行われてしまうという問題があった。
【００３３】
本発明は、上記に鑑みてなされたもので、パーソナルコンピュータ等のオープンアーキテクチャを有する装置に対して、最低限のハードウェアを付加することで、安全なソフトウェア処理を実行することができる情報再生装置、セキュアモジュールおよび情報再生方法を提供することを目的とする。
【００３４】
【課題を解決するための手段】
上記目的を達成するために、本発明は、情報を再生する情報再生装置において、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールと、外部から参照することが可能なメモリと、前記セキュアモジュールに実装され、いずれの手段も介さずに直接アクセスにより前記メモリに格納されたメモリ格納情報を読み出し、該メモリ格納情報と、前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック手段と、を備えたことを特徴とする。
【００３５】
本発明は、情報再生装置に実装され、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールにおいて、外部から参照することが可能であって前記情報再生装置に実装されたメモリに格納されたメモリ格納情報をいずれの手段も介さずに直接アクセスにより読み出す読み出し手段と、読み出された前記メモリ格納情報と前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック手段と、を備えたことを特徴とする。
【００３６】
また、本発明は、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュール内で実行され、いずれの手段も介さずに直接アクセスにより外部から参照することが可能なメモリに格納されたメモリ格納情報を読み出す読み出し工程と、読み出された前記メモリ格納情報と前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック工程と、を含むことを特徴とする。
【００３７】
この発明によれば、いずれの手段も介さずに直接アクセスによりメモリに格納されたメモリ格納情報を読み出し、該メモリ格納情報とセキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、メモリ格納情報の改ざんをチェックすることとしたので、パーソナルコンピュータ等のオープンアーキテクチャを有する装置に対して、最低限のハードウェア（セキュアモジュール）を付加することで、安全なソフトウェア処理を実行することができる。
【００３８】
【発明の実施の形態】
以下、図面を参照して本発明にかかる情報再生装置、セキュアモジュールおよび情報再生方法の一実施の形態について詳細に説明する。
【００３９】
図１は、本発明にかかる一実施の形態の構成を示すブロック図である。同図に示したシステムは、パーソナルコンピュータ１００、ネットワーク２００および表示装置３００や、図示しない入力装置、スピーカ等によって構成されており、セキュアな環境で暗号化された情報（コンテンツ）を復号し、再生するためのものである。
【００４０】
パーソナルコンピュータ１００は、情報再生装置としての機能を備えており、ＰＣメインプロセッサ１０１、ハードディスクドライブ１０２、入出力インタフェース１０３、サウスブリッジ１０４、ノースブリッジ１０５、メインメモリ１０６、画像ＬＳＩ（Ｌａｒｇｅ　Ｓｃａｌｅ　Ｉｎｔｅｇｒａｔｅｄ　Ｃｉｒｃｕｉｔ）１０７、画像メモリ１０８、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ　Ｃｏｍｐｏｎｅｎｔ　Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス１０９およびセキュアモジュール１５０によって構成されている。
【００４１】
また、パーソナルコンピュータ１００は、ネットワーク２００を介してダウンロードされた暗号化情報（コンテンツ）やハードディスクドライブ１０２に格納された暗号化情報（コンテンツ）を復号して表示装置３００およびスピーカ（図示略）へ出力する。
【００４２】
ＰＣメインプロセッサ１０１は、ハードディスクドライブ１０２に格納されているセキュアソフトウェアや、その他のソフトウェアに従って各種演算処理を実行するとともに、装置の各部を制御する。
【００４３】
ここで、上記セキュアソフトウェアは、後述する図２〜図５に示したセキュアソフトウェア１８０に対応しており、情報再生に際してセキュアな環境を提供するためのものであり、メインメモリ１０６に実装される。
【００４４】
ハードディスクドライブ１０２は、ディスクを有する大容量記憶装置であり、ＰＣメインプロセッサ１０１が実行するセキュアソフトウェア１８０（図２参照）やその他のソフトウェアを格納している。
【００４５】
入出力インタフェース１０３は、ネットワーク２００を介して情報（コンテンツ）を送受信する際のインタフェースであり、プロトコル変換やデータのフォーマット変換を実行する。
【００４６】
サウスブリッジ１０４は、入出力インタフェース１０３とＰＣＩバス１０９とを相互接続する機能を備えており、ブリッジ回路を内蔵している。ノースブリッジ１０５は、ＰＣメインプロセッサ１０１とメインメモリ１０６、画像ＬＳＩ１０７を相互に接続してデータの橋渡しを行う機能を備えている。なお、サウスブリッジ１０４とノースブリッジ１０５とは、高速バスにより相互接続されている。
【００４７】
メインメモリ１０６は、例えば、ＲＡＭによって構成されており、図２〜図５に示したセキュアソフトウェア１８０や、その他ソフトウェアが実装されている。セキュアソフトウェア１８０がＰＣメインプロセッサ１０１により実行されることにより、図２〜図５に示したセキュアソフトウェア１８０内の各ブロックの機能が実現される。
【００４８】
セキュアソフトウェア１８０は、メインメモリ１０６に実装され、ＰＣメインプロセッサ１０１により実行されることにより、セキュアモジュール１５０と協調して、セキュアな環境で暗号化されたＭＰＥＧデータをデコードする機能等を提供する。
【００４９】
画像ＬＳＩ１０７は、デコード済みの画像情報を画像メモリ１０８に格納させたり、表示装置３００に画像として表示させる機能を備えている。画像メモリ１０８は、画像ＬＳＩ１０７の制御により、画像情報を格納する。
【００５０】
ＰＣＩバス１０９は、ハードディスクドライブ１０２、サウスブリッジ１０４および後述するセキュアモジュール１５０のＰＣＩインタフェース１５５との間を相互接続するバスである。
【００５１】
セキュアモジュール１５０は、ＴＲＭ（Ｔａｍｐｅｒ　Ｒｅｓｉｓｔａｎｔ　Ｍｏｄｕｌｅ）構造を有しており、外部からの覗き見を防止するとともに、内部のデータが改ざんされることを防止するハードウェアである。
【００５２】
ＴＲＭ構造は、半導体チップ（この場合、セキュアモジュール１５０）などの内部解析や改ざんを物理的および論理的に防衛するための構造をいう。具体的には、セキュアモジュール１５０においては、内部に強固で粘着力が高いコーティングが施され、その表面が剥がされると内部の回路が完全に破壊されたり、ダミーの配線が配されている。
【００５３】
セキュアモジュール１５０は、ハードディスクドライブ１０２からセキュアソフトウェア１８０（図２〜図５参照）等を読み出す機能、メインメモリ１０６に実装されたセキュアソフトウェア１８０を不定期に書き換える機能、メインメモリ１０６に設定された各種バッファの位置を不定期に変更する機能、暗号化機能、復号化機能等を備えている。
【００５４】
セキュアモジュール１５０は、セキュアモジュールプロセッサ１５１、ＲＡＭ１５２、ＲＯＭ１５３、暗号復号エンジン１５４およびＰＣＩインタフェース１５５、内部バス１５６から構成されている。セキュアモジュールプロセッサ１５１は、ＲＯＭ１５３に格納されたファームウェアを実行することにより、上述したセキュアモジュール１５０の各種機能を実現する。
【００５５】
ＲＡＭ１５２は、セキュアモジュールプロセッサ１５１が各種演算処理を実行する際に、実行対象となるプログラムやデータを一時的に格納する。また、ＲＡＭ１５２には、暗号鍵等が格納されている。ＲＯＭ１５３は、セキュアモジュールプロセッサ１５１が実行する基本的なファームウェアやデータを格納している。
【００５６】
暗号復号エンジン１５４は、暗号化機能、復号化機能を実現する。ＰＣＩインタフェース１５５は、ＰＣＩバス１０９を介して各部とのインタフェースをとる。内部バス１５６は、セキュアモジュールプロセッサ１５１、ＲＡＭ１５２、ＲＯＭ１５３、暗号復号エンジン１５４およびＰＣＩインタフェース１５５の各部を相互接続するバスである。
【００５７】
図２〜図５には、上述したセキュアソフトウェア１８０や各種ソフトウェアによって実現される機能（初期化／ロード部１６０、ドライバ１７０、入力バッファ１８１〜ＭＰＥＧ出力部１８８）のブロックが図示されている。これらの図において、図１の各部に対応する部分には同一の符号を付ける。
【００５８】
図２に示した初期化／ロード部１６０は、メインメモリ１０６（図１参照）に存在し、メインメモリ１０６上の空き領域を探し、ソフトウェアを当該空きメモリ領域にロード（実装）する機能を備えている。なお、実際には、初期化／ロード部１６０は、ＰＣメインプロセッサ１０１でソフトウェアが実行されることにより上記機能を実現する。
【００５９】
また、初期化／ロード部１６０は、パーソナルコンピュータ１００の他のアプリケーションソフトウェア（図示略）と連動する必要がある場合、ソフトウェア同士のリンクを設定する機能を備えている。
【００６０】
ここで、パーソナルコンピュータ１００において、オペレーティングシステム（図示略）の支配下で他のアプリケーションソフトウェアとセキュアソフトウェア１８０とがマルチタスク環境で同時に動作する場合には、オペレーティングシステムが各ソフトウェアが動作する時間を割り当てる機能を持つ。
【００６１】
初期化／ロード部１６０は、セキュアソフトウェア１８０が実装されたメモリ領域などの情報をオペレーティングシステムへ通知し、セキュアソフトウェア１８０が動作する時間の割り当てを行うための制御を行う。
【００６２】
これにより、オペレーティングシステムは、例えば、セキュアソフトウェア１８０が１００ミリセカンド動作したら、その後、別のソフトウェアが１００ミリセカンド動作するなどのソフトウェア実行に関するスケジューリングを行う。
【００６３】
また、初期化／ロード部１６がオペレーティングシステムと連携を採る理由は、オペレーティングシステムの配下の複数のタスク（プログラム）の一つとしてセキュアソフトウェア１８０を動かすには、プロセス間の調整を行うオペレーティングシステムの助けが必要だからである。
【００６４】
ドライバ１７０は、オペレーティングシステムの配下で動作する通常のドライバ用のソフトウェアに対応している。セキュアモジュール１５０とセキュアソフトウェア１８０（入力バッファ１８１）との間においては、ドライバ１７０を経由して、大容量の情報（暗号化ＭＰＥＧストリーム等）が授受される。
【００６５】
つまり、ドライバ１７０を利用することにより、オペレーティングシステムにおけるドライバ制御用の各種機能が流用可能となる。
【００６６】
なお、セキュアモジュール１５０とセキュアソフトウェア１８０との間において、上記暗号化ＭＰＥＧストリーム以外の情報は、ＤＭＡ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ）などの直接アクセスにより授受されることが大前提とされる。つまり、セキュアモジュール１５０とセキュアソフトウェア１８０とは、ドライバ１７０を経由せずに直接アクセスすることになる。
【００６７】
このように、直接アクセスを大前提とした場合には、オペレーティングシステムがドライバ１７０へ提供するさまざまなサービスの利用ができなくなるというデメリットが生じる。
【００６８】
しかしながら、この場合には、オペレーティングシステムの配下の外となり、オペレーティングシステムが関知しない環境で情報の授受が行えるため、安全性が増大するというセキュリティ上の大きなメリットが生じるのである。
【００６９】
例えば、セキュアモジュール１５０とセキュアソフトウェア１８０との間でドライバ１７０を経由して情報が授受された場合には、常に、オペレーティングシステムに対し割り込みが発生し、この割り込みに基づいて、他のソフトウェアが情報を逐次「覗き見」することが可能となり、セキュリティが低くなる。ここで、数あるドライバの中には、情報を他ソフトウェアに転送するという機能がついたドライバも存在する。
【００７０】
一方、セキュアモジュール１５０とセキュアソフトウェア１８０との間でドライバ１７０を経由せずに直接アクセスにより情報を授受した場合には、オペレーティングシステムに対し割り込みが発生しない。
【００７１】
従って、他のソフトウェアが「覗き見」をする場合には、ポーリングなどにより常にセキュアソフトウェア１８０の状態（メインメモリ１０６上のバッファの位置を解析し、バッファ内の情報が更新されたかチェックし、更新された場合に「覗き見」する）を監視する必要がある。
【００７２】
しかしながら、直接アクセスの場合には、セキュアモジュール１５０からセキュアソフトウェア１８０へ情報がいつ到達するかが分からないので、ポーリングするのが実質的に不可能となる。なお、仮にポーリングで一部の情報の「覗き見」ができたとしても、全部のデータの「覗き見」は不可能である。
【００７３】
また、本一実施の形態において、暗号化ＭＰＥＧストリームをドライバ１７０経由としたのは、ＭＰＥＧストリームが暗号化されていて、たとえ盗まれても安全と判断し、ドライバ１７０の機能を流用し、効率良く暗号化ＭＰＥＧストリームをセキュアソフトウェア１８０に到達させることを優先させたためである。
【００７４】
入力バッファ１８１は、メインメモリ１０６上に領域設定されたバッファであり、暗号化ＭＰＥＧストリームを格納する。ＴＳデコーダ１８２は、暗号復号部１８４の要求を受け、バッファ１８１から暗号化ＭＰＥＧストリーム（正確に言うとＭＰＥＧ−ＴＳストリーム）を読み出し、ＴＳデコード処理した後にビデオバッファ１８３に暗号化ＭＰＥＧビデオ情報を格納する。
【００７５】
ＴＳデコード処理は、暗号化ＭＰＥＧストリームから、圧縮された暗号化ＭＰＥＧビデオ情報を抽出する処理である。暗号化ＭＰＥＧストリームには、時分割多重された形で（１）暗号化ＭＰＥＧビデオ情報、（２）暗号化ＭＰＥＧオーディオ情報、（３）暗号化ＭＰＥＧビデオ情報と暗号化ＭＰＥＧオーディオ情報により構成される番組情報（番組の名称、放送時期、番組のあらすじ、番組の料金など）が含まれている。
【００７６】
なお、実際のセキュアソフトウェアでは、暗号化ＭＰＥＧビデオ情報に加えて、暗号化ＭＰＥＧオーディオ情報もデコードする必要がある。その場合の暗号化ＭＰＥＧオーディオ情報のデコードについては、暗号化ＭＰＥＧビデオ情報のデコードと同種のプログラムが必要になることは言うまでもない。
【００７７】
また、ＴＳデコーダ１８２は、入力バッファ１８１の容量を常に監視し、それが一定水準以下になると、セキュアソフトウェア１８０へ入力バッファ１８１の補給を依頼する。
【００７８】
ビデオバッファ１８３は、メインメモリ１０６上に領域設定されたバッファであり、上述した暗号化ＭＰＥＧビデオ情報を格納する。このビデオバッファ１８３は、ＭＰＥＧビデオの国際規格で定められたＶＢＶバッファに相当するバッファである。
【００７９】
暗号復号部１８４は、ＭＰＥＧビデオデコーダ１８６の要求を受け、ビデオバッファ１８３から暗号化ＭＰＥＧビデオ情報を読み出し、小バッファ１８５が一杯になるまで暗号化ＭＰＥＧビデオ情報を復号する。また、暗号復号部１８４は、復号済みの圧縮ＭＰＥＧビデオ情報を小バッファ１８５へ格納する。
【００８０】
小バッファ１８５は、メインメモリ１０６上に領域設定されたバッファであり、上述した圧縮ＭＰＥＧビデオ情報を格納する。ＭＰＥＧビデオデコーダ１８６は、後段のＭＰＥＧ出力部１８８が画像情報を出力したことを認識する。
【００８１】
ここで、ＭＰＥＧ画像メモリ１８７に出力した画像情報分の空き領域ができるため、ＭＰＥＧビデオデコーダ１８６は、小バッファ１８５から次の１枚分の圧縮ＭＰＥＧビデオ情報を読み出し、伸張処理（デコード）を行った後、画像情報をＭＰＥＧ画像メモリ１８７に格納する。
【００８２】
また、小バッファ１８５は、少量（画像１枚未満）の圧縮ＭＰＥＧビデオ情報しか格納できないように設定されている。これは、復号済みの圧縮ＭＰＥＧビデオ情報をメインメモリ１０６上に存在させることがセキュリティ上非常に危険であり、この危険を回避するためのである。
【００８３】
従って、小バッファ１８５は、画像１枚分の圧縮ＭＰＥＧビデオ情報を保持することはなく、ＭＰＥＧビデオデコーダ１８６でデコードが開始されてから間もなく「空」になる。
【００８４】
また、ＭＰＥＧビデオデコーダ１８６は、小バッファ１８５が「空」になるか、または小バッファ１８５内の情報量が、予め設定されたしきい値より小さくなった時点で、暗号復号部１８４に対して復号要求を出し、小バッファ１８５に圧縮ＭＰＥＧビデオ情報を格納させる。
【００８５】
ＭＰＥＧ画像メモリ１８７は、例えば、４フレーム分、即ち３０分の４秒分（約１３３ミリセカンド）に対応する画像情報を格納する。ＭＰＥＧ出力部１８８は、ＭＰＥＧ画像メモリ１８７から伸張（デコード）済みの画像情報（１枚分または１フレーム分）を読み出し、これを画像ＬＳＩ１０７へＤＭＡ転送する。ここで、ＤＭＡ（直接アクセス）を使うのは、ＭＰＥＧ出力部１８８から画像ＬＳＩ１０７への転送を高速に行うためである。
【００８６】
一実施の形態では、メインメモリ１０６に設定されたビデオバッファ１８３に暗号化された暗号化ＭＰＥＧビデオ情報を格納する点と、ビデオバッファ１８３に格納された暗号化ＭＰＥＧビデオ情報を少しずつ復号化し、小バッファ１８５に格納しながらＭＰＥＧビデオデコードを実行する点に特徴がある。
【００８７】
図３に示したセキュアモジュール１５０において、メモリ空間１５２Ａは、ＲＡＭ１５２（図１参照）に設定されており、セキュアモジュール１５０とＴＳデコーダ１８２との間で実行される第１の秘密番号通信で用いられる。
【００８８】
セキュアモジュール１５０（セキュアモジュールプロセッサ１５１）は、メモリ空間１５２Ａについて１度目は正規の値、２度目は違う値が読み出されるように、制御する。
【００８９】
メモリ空間１５２Ｂは、ＲＡＭ１５２（図１参照）に設定されており、セキュアモジュール１５０と暗号復号部１８４との間で実行される第２の秘密番号通信で用いられる。
【００９０】
セキュアモジュール１５０（セキュアモジュールプロセッサ１５１）は、メモリ空間１５２Ａと同様にして、メモリ空間１５２Ｂについて１度目は正規の値、２度目は違う値が読み出されるように、制御する。
【００９１】
（電源投入時のセキュア機能）
つぎに、図２を参照して、図１に示したパーソナルコンピュータ１００における電源投入時のセキュア機能について説明する。
【００９２】
図２には、パーソナルコンピュータ１００の電源投入時に、初期化／ロード部１６０がセキュアモジュール１５０からセキュアソフトウェア１８０をメインメモリ１０６にロードする場合について図示されている。
【００９３】
同図において、パーソナルコンピュータ１００に電源が投入されると、オペレーティングシステムが起動され、デスクトップ（図示略）に起動すべきソフトウェア（プログラム、アプリケーション）のリストが表示される。
【００９４】
これにより、ユーザは、上記リストを見て所望のソフトウェアとして、例えば、セキュアソフトウェア１８０を起動させる。具体的には、ユーザにより、デスクトップに表示されたセキュアソフトウェア１８０に対応するアイコンがクリックされると、セキュアソフトウェア１８０が起動される。
【００９５】
つまり、初期化／ロード部１６０は、セキュアモジュール１５０に対して、セキュアソフトウェア１８０のロードを要求する。なお、一般の初期化／ロード部は、ハードディスクドライブ１０２からソフトウェアを直接ロードするが、一実施の形態では、セキュアモジュール１５０を経由している。
【００９６】
セキュアモジュール１５０（セキュアモジュールプロセッサ１５１）は、ハードディスクドライブ１０２からセキュアソフトウェア１８０を読み出した後、このセキュアソフトウェア１８０の特定部分（例えば、秘密の番号が記述された部分）を変更する。つぎに、セキュアモジュール１５０は、変更後のセキュアソフトウェア１８０を初期化／ロード部１６０へ渡す。
【００９７】
初期化／ロード部１６０は、メインメモリ１０６上の空き領域を探し、当該空き領域に変更後のセキュアソフトウェア１８０をロード（実装）する。
【００９８】
ここで、パーソナルコンピュータ１００上のメモリ空間は、セキュアモジュール１５０からＤＭＡなど直接アクセスできることが前提とされており、例えば、メインメモリ１０６上のスワップ不可能領域である必要がある。スワップ不可能領域の獲得は、オペレーティングシステムの機能を利用すればよい。
【００９９】
仮に、スワップ可能領域にセキュアソフトウェア１８０が実装された場合、セキュアソフトウェア１８０は、メインメモリ１０６上からハードディスクドライブ１０２のメモリ空間などにオペレーティングシステムの機能で自動的にスワップされる可能性がある。
【０１００】
スワップされるのは、同時に複数のソフトウェアが動作し、パーソナルコンピュータ１００上のメインメモリ１０６に全部のソフトウェアが搭載出来なくなるためである。
【０１０１】
しかしながら、かかる場合には、セキュアソフトウェア１８０がメインメモリ１０６上に存在しない可能性があり、セキュアモジュール１５０からＤＭＡなどで直接アクセスできなくなるという問題が発生する。
【０１０２】
そこで、一実施の形態では、ロード時にセキュアモジュール１５０をスワップ不可能領域に実装し、セキュアモジュール１５０から常にセキュアソフトウェア１８０の実装位置が分かるようにしている。以上が、電源投入から、セキュアソフトウェア１８０がメインメモリ１０６にロードされるまでの動作例である。
【０１０３】
また、上述のように、電源投入時に初期化／ロード部１６０を介した場合には、オペレーティングシステムとリンクを貼ることができるので（１）プログラムのバッファ領域、（２）全体のプログラムコード、（３）プログラムの存在するメモリ領域などを全面的に変更することが可能となる。
【０１０４】
（通常動作時のセキュア機能）
つぎに、図３を参照して、図１に示したパーソナルコンピュータ１００における電源投入後の通常動作時のセキュア機能について説明する。
【０１０５】
図３においては、パーソナルコンピュータ１００のメインメモリ１０６にセキュアソフトウェア１８０がロード（実装）されている。
【０１０６】
この場合、セキュアソフトウェア１８０は、例えば以下のような動作を行う。同図においては、最終的に画像情報を消費しているのが表示装置３００であり、画像ＬＳＩ１０７と連動していると考える。
【０１０７】
まず、画像ＬＳＩ１０７が表示装置３００にある画像を表示し終えると、次の画像を表示するための準備をセキュアソフトウェア１８０に依頼する。これにより、ＭＰＥＧ出力部１８８は、ＭＰＥＧ画像メモリ１８７から画像情報（１枚分）を読み出し、これを画像ＬＳＩ１０７へＤＭＡ転送する。
【０１０８】
暗号復号部１８４は、ＭＰＥＧビデオデコーダ１８６の要求を受け、ビデオバッファ１８３から暗号化ＭＰＥＧビデオ情報を取り出し、小バッファ１８５が一杯になるまで暗号化ＭＰＥＧビデオ情報を復号する。復号時、暗号復号部１８４は、セキュアモジュール１５０から復号鍵を授受する。
【０１０９】
復号鍵は、ある限られた時間（例えば数秒間）しか有効でなく、それ以降は、新規に復号鍵をセキュアモジュール１５０から授受する必要がる。セキュアモジュール１５０から復号鍵を授受するアルゴリズムは、例えば、後述する第２の秘密番号通信に含まれてもよい。
【０１１０】
これにより、セキュアモジュール１５０は、セキュアソフトウェア１８０が秘密の番号を知っていることを確認しつつ、復号鍵を安心してセキュアソフトウェア１８０へ提供することが可能となる。
【０１１１】
また、暗号復号部１８４は、ビデオバッファ１８３の暗号化ＭＰＥＧビデオ情報の残存量を常に監視しており、これが一定量以下となったら、ＴＳデコーダ１８２に暗号化ＭＰＥＧビデオ情報の補給を依頼する。
【０１１２】
つぎに、ＴＳデコーダ１８２は、暗号復号部１８４からの上記依頼を受け、入力バッファ１８１から暗号化ＭＰＥＧストリームを読み出し、ＴＳデコード処理を施す。つぎに、ＴＳデコーダ１８２は、暗号化ＭＰＥＧビデオ情報をビデオバッファ１８３へ格納する。
【０１１３】
また、ＴＳデコーダ１８２は、入力バッファ１８１の容量を常に監視し、それが一定水準以下になると、セキュアモジュール１５０へ暗号化ＭＰＥＧストリームの補給を依頼する。
【０１１４】
これにより、セキュアモジュール１５０は、ハードディスクドライブ１０２より暗号化された暗号化ＭＰＥＧストリームを読み出す。つぎに、セキュアモジュール１５０の暗号復号エンジン１５４は、一旦、暗号化ＭＰＥＧストリームを復号した後、別の暗号鍵で再暗号化する。この再暗号化された暗号化ＭＰＥＧストリームがセキュアモジュール１５０からセキュアソフトウェア１８０へ提供される。
【０１１５】
ここで、再暗号化するのは、ハードディスクドライブ１０２から読み出された暗号化ＭＰＥＧストリームをそのままセキュアソフトウェア１８０へ提供した場合、パーソナルコンピュータ１００で最もセキュリティーが低いセキュアソフトウェア１８０に復号鍵を渡すことになり、危険だからである。
【０１１６】
これに対して、セキュアモジュール１５０において再暗号化した場合には、ハードディスクドライブ１０２に格納された暗号化ＭＰＥＧストリームではなく、そのときのセキュアソフトウェア１８０用に再暗号化した、そのときのセキュアソフトウェア１８０でしか使えない暗号化ＭＰＥＧストリームがセキュアソフトウェア１８０へ提供される。
【０１１７】
従って、いついかなるときでも読み出せるハードディスクドライブ１０２内の暗号化ＭＰＥＧストリームよりも、再暗号化した暗号化ＭＰＥＧストリームのほうが危険が少ない。
【０１１８】
また、図３においては、上述した動作に並行して、セキュアソフトウェア１８０の安全性を確認するための動作が実行される。この動作においては、次の（１）〜（４）に示した処理が実行され、セキュアモジュール１５０がセキュアソフトウェア１８０に様々な作用を及ぼし、応答等が授受される。
【０１１９】
（１）スキャン認証処理
（２）プログラムを不定期に書き換える処理
（３）バッファの位置を不定期に書き換える処理
（４）秘密の番号通信処理
【０１２０】
ここで、（１）〜（４）において、（１）〜（３）は、セキュアモジュール１５０により実行される。（４）は、セキュアモジュール１５０およびセキュアソフトウェア１８０により実行される。
【０１２１】
以下では、（１）〜（４）の処理について順次説明する。はじめに、（１）スキャン認証処理について説明する。
【０１２２】
スキャン認証処理において、セキュアモジュール１５０は、動作中のセキュアソフトウェア１８０が実装されているメインメモリ１０６の一部領域または全領域にＤＭＡなどで直接アクセスし、セキュアソフトウェア１８０のデータの一部または全部を読み出す。
【０１２３】
つぎに、セキュアモジュール１５０は、読み出したデータと、ＲＡＭ１５２（図１参照）等に予め格納されたデータとを比較し、一致するか否かにより認証を行う。例えば、悪意のあるユーザによりセキュアソフトウェア１８０が改ざんされている場合には、プログラムが書き換えられているため、上記比較結果が不一致とされ、認証ＮＧとされる。
【０１２４】
一方、セキュアソフトウェア１８０が改ざんされていない場合には、上記比較結果が一致とされ、認証ＯＫとされる。
【０１２５】
具体的な実現方法としては、セキュアモジュール１５０のＲＡＭ１５２に、セキュアソフトウェア１８０と同内容を格納し、メインメモリ１０６からセキュアソフトウェア１８０をＤＭＡなどで直接に読み出し、その結果とＲＡＭ１５２に格納されている内容と逐一比較する方法がある。
【０１２６】
また、一実施の形態では、セキュアモジュール１５０のＲＡＭ１５２のメモリ容量が小さくセキュアソフトウェア１８０の全てを格納できない場合には、チェックサムのような方法によりスキャン認証処理を行ってもよい。
【０１２７】
すなわち、この場合には、セキュアソフトウェア１８０のコードを全部加算した結果だけをＲＡＭ１５２に格納しておき、メインメモリ１０６からセキュアソフトウェア１８０をＤＭＡで読み出した後、コードを加算した結果とＲＡＭ１５２に格納された内容とを比較し、比較結果が一致した場合は、セキュアソフトウェア１８０が改ざんされていないと判断される（認証結果＝ＯＫ）。
【０１２８】
また、スキャン認証による改ざんの検出は、セキュアモジュール１５０がセキュアソフトウェア１８０と関係なく単独でセキュアソフトウェア１８０が実装されているメインメモリ１０６に直接アクセスすることにより行われる。
【０１２９】
また、スキャン認証処理は、オペレーティングシステムを一切経由しないのでオペレーティングシステムの機能などを流用した改ざんや覗き見に対しても安全性が強い。
【０１３０】
これに対して、オペレーティングシステムを経由した場合には、例えば、「いつスキャン認証処理が実行されているか」をオペレーティングシステムへ通知される割り込み情報などで悪意のユーザに簡単に知られてしまう可能性が高いのである。
【０１３１】
次に、（２）プログラムを不定期に書き換える処理について説明する。プログラムを不定期に書き換える処理において、セキュアモジュール１５０（セキュアモジュールプロセッサ１５１）は、セキュアソフトウェア１８０が動作中に、セキュアソフトウェア１８０が実装されたメモリ領域（メインメモリ１０６）に対して、直接にＤＭＡ転送などで書き込みをリアルタイムで行う。
【０１３２】
ここで、前述した（１）スキャン認証処理が読み出し動作であるのに対して、（２）プログラムを不定期に書き換える処理では、書き込み動作を行う。具体的には、オペレーティングシステムにわからないように、セキュアモジュール１５０がオペレーティングシステムを介さずセキュアソフトウェア１８０のプログラムなどの一部を書き換える。
【０１３３】
これにより、後にスキャン認証処理を実行した場合に、セキュアソフトウェア１８０が動作している最中でも、認証結果がリアルタイムで変化し、スキャン認証処理における安全度が向上する。
【０１３４】
ここで、スキャン認証とプログラムの不定期の書き換えとの相乗効果について説明する。図２においては、例えば、セキュアソフトウェア１８０の中の「秘密の番号通信を行うためのプログラム」を書き換える。
【０１３５】
この場合には、リアルタイムで書き換え、その後、その書き換えたプログラムのコードに対し、スキャン認証処理を実行するため安全度が向上する。悪意のあるユーザ（ハッカー）が如何に有能であっても、リアルタイムに変化するプログラムをハッキングすることが困難であることは、容易に想像される。
【０１３６】
また、一実施の形態では、書き換えたプログラムの実動作を確認することで、本当に実動作中のプログラムが書き換わっていることを確認することもできる。これは、以下の攻撃に対して有効である。
【０１３７】
すなわち、悪意のあるユーザは、スキャン認証を誤魔化すため、スキャン認証用（誤魔化し用）の「セキュアソフトウェアａ」と、実際に動作する「セキュアソフトウェアｂ」というのセキュアソフトウェアをパーソナルコンピュータ１００のメインメモリ１０６に並列的に実装し、「セキュアソフトウェアａ」を対象としてスキャン認証処理を実行させ、実動作は「セキュアソフトウェアｂ」が行うような攻撃が考えられる。
【０１３８】
スキャン認証の目的は、プログラムの書き換えを不可能にすることである。しかしながら、偽の「セキュアソフトウェアａ」を作ることで、悪意のあるユーザによって、「セキュアソフトウェアｂ」を自由に書き換えられ、スキャン認証が誤魔化される。
【０１３９】
また、初期化／ロード部１６０がセキュアソフトウェア１８０をロードする場合には、セキュアモジュール１５０に対してロード先のメモリ領域を通知している。
【０１４０】
しかしながら、その時、初期化／ロード部１６０がセキュアモジュール１５０に偽のメモリ領域としてセキュアソフトウェアａのメモリ領域を通知することにより、上述した攻撃が可能となる。
【０１４１】
これに対して、一実施の形態では、リアルタイムでセキュアソフトウェア１８０の一部（または全部）を書き換え、その書き換えた結果で、セキュアソフトウェア１８０の実動作を変化させ、その変化をセキュアモジュール１５０が検知することでセキュアソフトウェア１８０の安全性をさらに向上させることができる。
【０１４２】
一実施の形態において変更されるのは、例えば、「秘密の番号通信プログラム」である。この「秘密の番号通信プログラム」は、セキュアソフトウェア１８０の中に、セキュアモジュール１５０とセキュアソフトウェア１８０との間で「秘密の番号」を通信し、セキュアモジュール１５０がセキュアソフトウェア１８０の安全性を確認するためのプログラムである。
【０１４３】
例えば、セキュアモジュール１５０から秘密の番号をセキュアソフトウェア１８０へ通知した後、セキュアソフトウェア１８０がセキュアモジュール１５０へ正規の秘密の番号を返信する。
【０１４４】
ここで、正規の秘密の番号以外の番号がセキュアモジュール１５０へ返信された場合、セキュアモジュール１５０は、セキュアソフトウェア１８０が改ざんされたと判断する。秘密の番号は、複数の番号からなる番号シーケンスであっても良い。
【０１４５】
このように、一実施の形態では、セキュアモジュール１５０が、ＤＭＡなどの方法で直接にセキュアソフトウェア１８０に対してスキャン認証処理を実行し、コードの一部をリアルタイムで書き換え、そのコードが動作していることを確認することにより、上述した攻撃を防ぐことができる。
【０１４６】
以上では、「成り済まし」プログラムを検出する構成例について説明した。「成り済まし」を発見したら、セキュアモジュール１５０は、セキュアソフトウェア１８０の暗号復号部１８４への復号鍵の提供を中止する。
【０１４７】
セキュアモジュール１５０では、複数の復号鍵が存在し、各復号鍵が、例えば、数秒間しか有効でない。従って、復号鍵の提供が停止されると、数秒後には、セキュアソフトウェア１８０で、暗号化ＭＰＥＧストリームにかかる一連の処理を続行できなくなる。
【０１４８】
つぎに、（３）バッファの位置を不定期に書き換える処理について説明する。（３）の処理では、前述した（１）および（２）の処理によりセキュアソフトウェア１８０の安全性を確認しつつ、さらにセキュアソフトウェア１８０が使うバッファ（データ領域）をリアルタイムで変更することで「覗き見」攻撃に対処する。
【０１４９】
ここで、「覗き見」とは、セキュアソフトウェア１８０の中のデータ領域を本プログラムと同時に（時分割に）動作する他のプログラムが「覗き見」し、情報を盗むことである。
【０１５０】
本来、パーソナルコンピュータ１００におけるメモリ空間は、時分割に動作するどのプログラムからも「覗き見」が可能である。これは、現状のプロセッサがどのメモリ領域もアクセスできるように設計されていて、プログラムごとにメモリ空間のアクセスを制御する機構がないためである。
【０１５１】
最近では、オペレーティングシステムレベルでプログラムごとにアクセスできるメモリ空間を制御できるものも散見されるが、決して十分でない。悪意のあるユーザがその気になれば、簡単に他のメモリ空間の「覗き見」が可能であり、セキュアソフトウェア１８０の構造を解析し、どこに肝心なデータがあるかを見つけ出して「覗き見」によりデータを盗むことが可能である。
【０１５２】
例えば、図３に示したセキュアソフトウェア１８０では、入力バッファ１８１、ビデオバッファ１８３、小バッファ１８５、ＭＰＥＧ画像メモリ１８７（総称してバッファという）の位置が特定されれば、そのメモリ空間を「覗き見」することで、ＭＰＥＧストリーム情報などを盗むことが可能である。
【０１５３】
特に、復号済みの生の圧縮ＭＰＥＧビデオ情報が格納された小バッファ１８５は、扱い易く、悪意のあるユーザの攻撃の標的になり易い。ＭＰＥＧ画像メモリ１８７は、例え位置が特定されても、デコード済みの大容量の画像情報が格納されている。
【０１５４】
従って、上記画像情報をハードディスクドライブ１０２に蓄積し盗むことは、ハードディスクドライブ１０２のデータ転送スピード、ハードディスクドライブ１０２に繋がるＰＣＩバス１０９などの転送スピードを考慮すると困難である。
【０１５５】
そこで、一実施の形態では、バッファの位置を不定期に書き換える、すなわち、バッファの開始番地などをＤＭＡでプログラムコードを書き換えることにより、「覗き見」による情報の盗難を困難にしている。
【０１５６】
つぎに、（４）秘密の番号通信処理について説明する。秘密の番号通信処理では、図３に示したセキュアモジュール１５０は、セキュアソフトウェア１８０のある領域にデータ（最初の秘密番号など）を書き込む（第１および第２の秘密番号通信）。
【０１５７】
つぎに、このデータをセキュアソフトウェア１８０が確認し、適当な番号を返すことで、セキュアモジュール１５０は、セキュアソフトウェア１８０の安全性を確認する。
【０１５８】
秘密の番号は、単独の番号の他に、シーケンス番号であったり、テキスト情報であってもよい。当然ながら、この秘密の番号は、セキュアモジュール１５０とセキュアソフトウェア１８０しか知らない情報である。従って、先ほどの「覗き見」解析などでこの番号が解析されないため、秘密の番号は、毎回、セキュアモジュール１５０により変更される。
【０１５９】
また、秘密の番号通信処理においては、セキュアモジュール１５０からセキュアソフトウェア１８０のメモリ領域にデータが書き込まれた場合には、それを「覗き見」される危険がある。
【０１６０】
そこで、一実施の形態では、上記危険を回避するために、セキュアモジュール１５０内に１度読み出すと正規の値が読めるが、２度目は違う値（例えば、「０」）が読み出されるメモリ空間１５２Ａおよび１５２Ｂを設けて、これらのメモリ空間１５２Ａおよび１５２Ｂを介してデータのやり取りが行われる。
【０１６１】
また、一実施の形態では、１度読み出すと正規の値で２度目は「０」が出るメモリ空間１５２Ｂ等を利用して、セキュアモジュール１５０とセキュアソフトウェア１８０との間で復号鍵や暗号鍵などの情報が授受される。なお、メモリ空間１５２Ａおよび１５２Ｂは、当然のことながら、暗号鍵以外の情報の伝達にも使用可能である。
【０１６２】
（全切替時のセキュア機能）
つぎに、図４を参照して、図１に示したパーソナルコンピュータ１００における全切替時のセキュア機能について説明する。
【０１６３】
図４には、パーソナルコンピュータ１００のメインメモリ１０６にロード（実装）されたセキュアソフトウェア１８０の通常動作中に初期化／ロード部１６０を用いて、セキュアソフトウェア１８０の全てを別のセキュアソフトウェア１８０’（ＴＳデコーダ１８２’、暗号復号部１８４’、ＭＰＥＧビデオデコーダ１８６’、ＭＰＥＧ出力部１８８’等）に切り替える場合が図示されている。
【０１６４】
全切替時において、メインメモリ１０６上には、変更前のセキュアソフトウェア１８０と変更後のセキュアソフトウェア１８０’とが、一時期、並列的に存在する。
【０１６５】
これは、動作中にセキュアソフトウェア１８０を停止させると、例えば、ＭＰＥＧの画像再生が途中で停止したりする可能性があり、これを避けるための処置である。
【０１６６】
ここで、セキュアソフトウェア１８０をメインメモリ１０６から削除した後に、セキュアソフトウェア１８０’を初期化／ロード部１６０よりロードした場合には、時間がかかり、ＭＰＥＧの画像再生が停止するという事態が発生する。
【０１６７】
一実施の形態では、上記事態を回避するために、初期化／ロード部１６０により、セキュアソフトウェア１８０を削除する前に、セキュアソフトウェア１８０’を予めメインメモリ１０６にロードする。これにより、セキュアソフトウェア１８０からセキュアソフトウェア１８０’への移行時間が短縮される。
【０１６８】
また、セキュアソフトウェア１８０からセキュアソフトウェア１８０’へ切替を行う場合には、セキュアソフトウェア１８０が使っていたバッファ領域の引継ぎも必要である。
【０１６９】
例えば、図２および図３においては、ビデオバッファ１８３に数秒分の暗号化ＭＰＥＧビデオ情報が格納されている可能性があり、ＭＰＥＧ画像メモリ１８７に例えば４フレーム分、即ち３０分の４秒分（約１３３ミリセカンド）の画像情報が格納されている可能性がある。
【０１７０】
しかも、ビデオバッファ１８３に何秒分の暗号化ＭＰＥＧビデオ情報が格納されているかは、ＭＰＥＧビデオのデコード処理を実行しないと分からない。
【０１７１】
これは、ＭＰＥＧの圧縮率が画像に依存し、圧縮容易な画像の場合、たくさんの画像を蓄積できるが、圧縮効率の悪い画像（動画成分が多く、いちいち更新しなくてはならない画像）の場合は、少ししかビデオバッファ１８３に格納できないためである。このため、一実施の形態では、処理途中のバッファ情報をセキュアソフトウェア１８０’がセキュアソフトウェア１８０から引き継ぐ必要がある。
【０１７２】
通常、セキュアソフトウェアを初期化／ロード部１６０を使用し切り替える（変更する）のは、以下の理由による。セキュアソフトウェアは、セキュアモジュール１５０による直接の書き込み（ＤＭＡ）でリアルタイムに変更されている。
【０１７３】
しかしながら、この変更では、セキュアソフトウェアの一部を変更するだけで、セキュアソフトウェア全体を変更するのが困難である。セキュアソフトウェアを全体的に変更するには、やはり初期化／ロード部１６０を経由し、抜本的にやる必要がある。このため、一実施の形態では、初期化／ロード部１６０による変更も可能な構成としている。
【０１７４】
具体的には、セキュアモジュール１５０は、初期化／ロード部１６０に対して、セキュアソフトウェアの切替要求を出す。これにより、初期化／ロード部１６０は、セキュアモジュール１５０へロード要求を出す。セキュアモジュール１５０は、初期化／ロード部１６０の要求に応えて、前述した動作と同様にして、「変更されたセキュアソフトウェア１８０’を初期化／ロード部１６０へ渡す。
【０１７５】
ここで、セキュアモジュール１５０が、最初の切替え要求を初期化／ロード部１６０へ出す理由は、セキュアモジュール１５０から出した方が、オペレーティングシステムに近い初期化／ロード部１６０から出すより安全であり、オペレーティングシステムから何時セキュアソフトウェアの切り替えが行われたかをわからなくするためである。
【０１７６】
次に、初期化／ロード部１６０は、パーソナルコンピュータ１００上のスワップ不可能空きメモリ領域を見つけてメインメモリ１０６にセキュアソフトウェア１８０’をロードする。
【０１７７】
そして、セキュアモジュール１５０は、切替の制御を行う。例えば、セキュアモジュール１５０は、セキュアソフトウェア内のあるメモリ空間に特別の番号を書き込むことで切替の制御を行う。
【０１７８】
次に、セキュアソフトウェア１８０からセキュアソフトウェア１８０’へ制御が移行される。但し、制御を移行する際には、セキュアソフトウェア１８０が使っていたバッファメモリ空間の制御をセキュアソフトウェア１８０’へ移行させる必要がある。
【０１７９】
このため、以下のような具体的な制御が実行される。
【０１８０】
（１）セキュアモジュール１５０が切り替え要求信号を初期化／ロード部１６０に渡す。
【０１８１】
（２）初期化／ロード部１６０がセキュアモジュール１５０にセキュアソフトウェア１８０’を要求する。
【０１８２】
（３）セキュアモジュール１５０は、セキュアソフトウェア１８０’を初期化／ロード部１６０へ渡す。
【０１８３】
（４）初期化／ロード部１６０は、セキュアソフトウェア１８０’をメインメモリ１０６上のスワップ不可能領域にロードする。
【０１８４】
（５）これで、セキュアソフトウェア１８０とセキュアソフトウェア１８０’とがメインメモリ１０６上に並列的に存在することになる。
【０１８５】
（６）セキュアモジュール１５０がセキュアソフトウェア１８０へセキュアソフトウェア切替指示を出す。
【０１８６】
（７）セキュアソフトウェア切替指示を受けたセキュアソフトウェア１８０は、ＭＰＥＧ処理の切りのいい所で制御を、セキュアソフトウェア１８０’に移行させるため、画像ＬＳＩ１０７からの画像表示終了信号の入力を待ち、画像表示終了信号が入力されたところで、以下の処置を講ずる。
【０１８７】
（ａ）セキュアソフトウェア１８０は、ＭＰＥＧ画像メモリ１８７の開始番地と関連情報をセキュアソフトウェア１８０’へ通知する。関連情報は、例えば、ＭＰＥＧ画像メモリ１８７が４フレーム構造の場合、各ＭＰＥＧフレームの種類（Ｉピクチャ、Ｐピクチャ、Ｂピクチャ）や、更新可能なフレーム、次のフレームに表示すべき画像等に関する情報である。
【０１８８】
（ｂ）セキュアソフトウェア１８０は、小バッファ１８５のメモリ開始番地とデータ残存量に関する情報をセキュアソフトウェア１８０’へ通知する。
【０１８９】
（ｃ）セキュアソフトウェア１８０は、ビデオバッファ１８３のメモリ開始番地とデータ残存量に関する情報をセキュアソフトウェア１８０’へ通知する。
【０１９０】
（ｄ）セキュアソフトウェア１８０は、入力バッファ１８１のメモリ開始番地とメモリ残存量に関する情報をセキュアソフトウェア１８０’に通知する。
【０１９１】
（ｅ）セキュアソフトウェア１８０は、使用中の暗号鍵や復号鍵の情報をセキュアソフトウェア１８０’へ通知する。
【０１９２】
（８）セキュアソフトウェア１８０は、セキュアソフトウェア１８０’に制御を移行させる。
【０１９３】
（一部切替時のセキュア機能）
つぎに、図５を参照して、図１に示したパーソナルコンピュータ１００における一部切替時のセキュア機能について説明する。
【０１９４】
図５には、パーソナルコンピュータ１００のメインメモリ１０６にロード（実装）されたセキュアソフトウェア１８０の通常動作中に初期化／ロード部１６０を用いて、セキュアソフトウェア１８０の一部（例えば、ＭＰＥＧビデオデコーダ１８６）を、別のＭＰＥＧビデオデコーダ１８６’に切り替える場合が図示されている。
【０１９５】
ここで、前述した図４においては、セキュアソフトウェア１８０の全部をセキュアソフトウェア１８０’に切り替える場合について説明したが、一部を切り替える図５の場合が実際的である。図５の場合には、セキュアソフトウェア１８０の一部しか切り換えないため、バッファも一部しか、引き継がない。
【０１９６】
全切替時の（１）〜（５）の動作を経て、以下の動作が行われる。
【０１９７】
（６’）セキュアモジュール１５０がセキュアソフトウェア１８０へセキュアソフトウェア切替指示を出す。
【０１９８】
（７’）セキュアソフトウェア切替指示を受けたセキュアソフトウェア１８０は、ＭＰＥＧ処理の切りのいい所で制御を、ＭＰＥＧビデオデコーダ１８６をＭＰＥＧビデオデコーダ１８６’に移行させるため、画像ＬＳＩ１０７からの画像表示終了信号の入力を待ち、画像表示終了信号が入力されたところで、以下の処置を講ずる。
【０１９９】
（ａ’）セキュアソフトウェア１８０は、ＭＰＥＧ画像メモリ１８７の開始番地と関連情報をＭＰＥＧビデオデコーダ１８６’へ通知する。関連情報は、例えば、ＭＰＥＧ画像メモリ１８７が４フレーム構造の場合、各ＭＰＥＧフレームの種類（Ｉピクチャ、Ｐピクチャ、Ｂピクチャ）や、更新可能なフレーム、次のフレームに表示すべき画像等に関する情報である。
【０２００】
（ｂ’）セキュアソフトウェア１８０は、小バッファ１８５のメモリ開始番地とデータ残存量に関する情報をＭＰＥＧビデオデコーダ１８６’へ通知する。
【０２０１】
（８’）セキュアソフトウェア１８０は、ＭＰＥＧビデオデコーダ１８６に換えて、ＭＰＥＧビデオデコーダ１８６’を正式のＭＰＥＧビデオデコーダとして組み込み、処理を開始する。
【０２０２】
なお、ビデオバッファ１８３や、入力バッファ１８１は、ＭＰＥＧビデオデコーダ１８６と直接の関連がないため切り替える必要はない。
【０２０３】
以上説明したように、一実施の形態によれば、図３に示したセキュアモジュール１５０を設け、セキュアモジュール１５０からセキュアソフトウェア１８０が格納されたメインメモリ１０６へ直接アクセスすることにより、プログラムの書き換え、バッファ位置の変更、スキャン認証等を実行するようにしたので、パーソナルコンピュータ１００等のオープンアーキテクチャを有する装置に対して、最低限のハードウェア（セキュアモジュール１５０）を付加することで、安全なソフトウェア処理を実行することができる。
【０２０４】
また、一実施の形態によれば、一度目で正規の情報が読み出され２度目で違う情報が読み出されるように制御されるメモリ空間に秘密情報を格納することとしたので、さらにセキュア環境を提供することができる。
【０２０５】
以上本発明にかかる一実施の形態について図面を参照して詳述してきたが、具体的な構成例はこの一実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
【０２０６】
例えば、前述した一実施の形態においては、前述したセキュア機能を実現するためのプログラムを図６に示したコンピュータ読み取り可能な記録媒体５００に記録して、この記録媒体５００に記録されたプログラムを同図に示したコンピュータ４００に読み込ませ、実行することにより各機能を実現してもよい。
【０２０７】
同図に示したコンピュータ４００は、上記プログラムを実行するＣＰＵ４１０と、キーボード、マウス等の入力装置４２０と、各種データを記憶するＲＯＭ４３０と、演算パラメータ等を記憶するＲＡＭ４４０と、記録媒体５００からプログラムを読み取る読取装置４５０と、ディスプレイ、プリンタ等の出力装置４６０と、装置各部を接続するバス４７０とから構成されている。
【０２０８】
ＣＰＵ４１０は、読取装置４５０を経由して記録媒体５００に記録されているプログラムを読み込んだ後、プログラムを実行することにより、前述した機能を実現する。なお、記録媒体５００としては、光ディスク、フレキシブルディスク、ハードディスク等が挙げられる。
【０２０９】
（付記１）情報を再生する情報再生装置において、
内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールと、
外部から参照することが可能なメモリと、
前記セキュアモジュールに実装され、いずれの手段も介さずに直接アクセスにより前記メモリに格納されたメモリ格納情報を読み出し、該メモリ格納情報と、前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック手段と、
を備えたことを特徴とする情報再生装置。
【０２１０】
（付記２）前記改ざんチェック手段は、前記メモリ格納情報の全てを読み出すことを特徴とする付記１に記載の情報再生装置。
【０２１１】
（付記３）前記改ざんチェック手段は、前記メモリ格納情報の一部を読み出すことを特徴とする付記１に記載の情報再生装置。
【０２１２】
（付記４）前記改ざんチェック手段は、チェックサムにより前記メモリ格納情報と前記セキュアモジュール格納情報との比較を行うことを特徴とする付記１〜３のいずれか一つに記載の情報再生装置。
【０２１３】
（付記５）前記メモリ格納情報は、ソフトウェアであることを特徴とする付記１〜４のいずれか一つに記載の情報再生装置。
【０２１４】
（付記６）前記改ざんチェック手段は、不定期に前記メモリからの読み出しを行うことを特徴とする付記１〜５のいずれか一つに記載の情報再生装置。
【０２１５】
（付記７）前記セキュアモジュールに実装され、いずれの手段も介さずに直接アクセスにより前記メモリに格納されたメモリ格納情報を書き換える書き換え手段を備え、前記改ざんチェック手段は、書き換え後のメモリ格納情報と前記セキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックすることを特徴とする付記１〜６のいずれか一つに記載の情報再生装置。
【０２１６】
（付記８）前記書き換え手段は、不定期に前記メモリ格納情報の書き換えを行うことを特徴とする付記７に記載の情報再生装置。
【０２１７】
（付記９）前記書き換え手段は、前記メモリ格納情報の一部を書き換えることを特徴とする付記７または８に記載の情報再生装置。
【０２１８】
（付記１０）前記セキュアモジュールに実装され、原情報に変更をかけ、変更後の情報をメモリ格納情報として前記メモリに格納する格納制御手段を備えたことを特徴とする付記１〜９のいずれか一つに記載の情報再生装置。
【０２１９】
（付記１１）前記格納制御手段は、前記メモリ格納情報を更新した場合に、更新前のメモリ格納情報から更新後のメモリ格納情報への引継を行わせることを特徴とする付記１０に記載の情報再生装置。
【０２２０】
（付記１２）前記格納制御手段は、前記セキュアモジュール内のみに存在する鍵を用いて前記原情報を暗号化し、暗号化された原情報を前記メモリ格納情報として前記メモリに格納することを特徴とする付記１０または１１に記載の情報再生装置。
【０２２１】
（付記１３）前記セキュアモジュールに実装されており、前記メモリ格納情報の暗号化または復号化に用いられる鍵を保持し、前記改ざんチェック手段により改ざんが検知されない場合、鍵を外部へ供給する鍵管理手段を備えたことを特徴とする付記１〜１２のいずれか一つに記載の情報再生装置。
【０２２２】
（付記１４）前記鍵管理手段は、有効時間が設定された前記鍵を供給することを特徴とする付記１３に記載の情報再生装置。
【０２２３】
（付記１５）前記鍵管理手段は、供給の度に鍵を変更することを特徴とする付記１３または１４に記載の情報再生装置。
【０２２４】
（付記１６）前記鍵管理手段は、前記改ざんチェック手段により改ざんが検知された場合、前記鍵の供給を停止することを特徴とする付記１３〜１５のいずれか一つに記載の情報再生装置。
【０２２５】
（付記１７）前記セキュアモジュールに実装され、直接アクセスにより、前記セキュアモジュール内の秘密情報を前記メモリに書き込む書込手段を備え、前記改ざんチェック手段は、書き込まれた前記秘密情報に対応する応答情報に基づいて前記メモリ格納情報の改ざんをチェックすることを特徴とする付記１〜１６のいずれか一つに記載の情報再生装置。
【０２２６】
（付記１８）前記秘密情報は、１度目で正規の情報が読み出され２度目で違う情報が読み出されるように制御されるメモリ空間に格納されていることを特徴とする付記１７に記載の情報再生装置。
【０２２７】
（付記１９）前記メモリ格納情報は暗号化されたＭＰＥＧデータであることを特徴とする付記１〜１８のいずれか一つに記載の情報再生装置。
【０２２８】
（付記２０）内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュール内で実行され、いずれの手段も介さずに直接アクセスにより外部から参照することが可能なメモリに格納されたメモリ格納情報を読み出す読み出し工程と、
読み出された前記メモリ格納情報と前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック工程と、
を含むことを特徴とする情報再生方法。
【０２２９】
（付記２１）情報再生装置に実装され、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールにおいて、
外部から参照することが可能であって前記情報再生装置に実装されたメモリに格納されたメモリ格納情報をいずれの手段も介さずに直接アクセスにより読み出す読み出し手段と、
読み出された前記メモリ格納情報と前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック手段と、
を備えたことを特徴とするセキュアモジュール。
【０２３０】
（付記２２）前記読み出し手段は、前記メモリ格納情報の全てを読み出すことを特徴とする付記２１に記載のセキュアモジュール。
【０２３１】
（付記２３）前記読み出し手段は、前記メモリ格納情報の一部を読み出すことを特徴とする付記２１に記載のセキュアモジュール。
【０２３２】
（付記２４）前記改ざんチェック手段は、チェックサムにより前記メモリ格納情報と前記セキュアモジュール格納情報との比較を行うことを特徴とする付記２１〜２３のいずれか一つに記載のセキュアモジュール。
【０２３３】
（付記２５）前記メモリ格納情報は、ソフトウェアであることを特徴とする付記２１〜２４のいずれか一つに記載のセキュアモジュール。
【０２３４】
（付記２６）前記読み出し手段は、不定期に前記メモリからの読み出しを行うことを特徴とする付記２１〜２５のいずれか一つに記載のセキュアモジュール。
【０２３５】
（付記２７）いずれの手段も介さずに直接アクセスにより前記メモリに格納されたメモリ格納情報を書き換える書き換え手段を備え、前記改ざんチェック手段は、書き換え後のメモリ格納情報と前記セキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックすることを特徴とする付記２１〜２６のいずれか一つに記載のセキュアモジュール。
【０２３６】
（付記２８）前記書き換え手段は、不定期に前記メモリ格納情報の書き換えを行うことを特徴とする付記２７に記載のセキュアモジュール。
【０２３７】
（付記２９）前記書き換え手段は、前記メモリ格納情報の一部を書き換えることを特徴とする付記２７または２８に記載のセキュアモジュール。
【０２３８】
（付記３０）原情報に変更をかけ、変更後の情報をメモリ格納情報として前記メモリに格納する格納制御手段を備えたことを特徴とする付記２１〜２９のいずれか一つに記載のセキュアモジュール。
【０２３９】
（付記３１）前記格納制御手段は、前記メモリ格納情報を更新した場合に、更新前のメモリ格納情報から更新後のメモリ格納情報への引継を行わせることを特徴とする付記３０に記載のセキュアモジュール。
【０２４０】
（付記３２）前記格納制御手段は、前記セキュアモジュール内のみに存在する鍵を用いて前記原情報を暗号化し、暗号化された原情報を前記メモリ格納情報として前記メモリに格納することを特徴とする付記３０または３１に記載のセキュアモジュール。
【０２４１】
（付記３３）前記メモリ格納情報の暗号化または復号化に用いられる鍵を保持し、前記改ざんチェック手段により改ざんが検知されない場合、鍵を外部へ供給する鍵管理手段を備えたことを特徴とする付記２１〜３２のいずれか一つに記載のセキュアモジュール。
【０２４２】
（付記３４）前記鍵管理手段は、有効時間が設定された前記鍵を供給することを特徴とする付記３３に記載のセキュアモジュール。
【０２４３】
（付記３５）前記鍵管理手段は、供給の度に鍵を変更することを特徴とする付記３３または３４に記載のセキュアモジュール。
【０２４４】
（付記３６）前記鍵管理手段は、前記改ざんチェック手段により改ざんが検知された場合、前記鍵の供給を停止することを特徴とする付記３３〜３５のいずれか一つに記載のセキュアモジュール。
【０２４５】
（付記３７）直接アクセスにより、前記セキュアモジュール内の秘密情報を前記メモリに書き込む書込手段を備え、前記改ざんチェック手段は、書き込まれた前記秘密情報に対応する応答情報に基づいて前記メモリ格納情報の改ざんをチェックすることを特徴とする付記２１〜３６のいずれか一つに記載のセキュアモジュール。
【０２４６】
（付記３８）前記秘密情報は、１度目で正規の情報が読み出され２度目で違う情報が読み出されるように制御されるメモリ空間に格納されていることを特徴とする付記３７に記載のセキュアモジュール。
【０２４７】
（付記３９）前記メモリ格納情報は暗号化されたＭＰＥＧデータであることを特徴とする付記２１〜３８のいずれか一つに記載のセキュアモジュール。
【０２４８】
（付記４０）情報再生装置に実装され、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールに実行させるためのプログラムを格納した記録媒体において、
外部から参照することが可能であって前記情報再生装置に実装されたメモリに格納されたメモリ格納情報をいずれの手段も介さずに直接アクセスにより読み出す読み出し工程手段と、
読み出された前記メモリ格納情報と前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック工程と、
を実行させるためのプログラムを格納したことを特徴とする記録媒体。
【０２４９】
【発明の効果】
以上説明したように、本発明によれば、いずれの手段も介さずに直接アクセスによりメモリに格納されたメモリ格納情報を読み出し、該メモリ格納情報とセキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、メモリ格納情報の改ざんをチェックすることとしたので、パーソナルコンピュータ等のオープンアーキテクチャを有する装置に対して、最低限のハードウェア（セキュアモジュール）を付加することで、安全なソフトウェア処理を実行することができるという効果を奏する。
【０２５０】
また、本発明によれば、セキュアモジュールに実装され、いずれの手段も介さずに直接アクセスによりメモリに格納されたメモリ格納情報を書き換える書き換え手段を設け、書き換え後のメモリ格納情報とセキュアモジュール格納情報との比較結果に基づいて、メモリ格納情報の改ざんをチェックすることとしたので、パーソナルコンピュータ等のオープンアーキテクチャを有する装置に対して、最低限のハードウェア（セキュアモジュール）を付加することで、安全なソフトウェア処理を実行することができるという効果を奏する。
【０２５１】
また、本発明によれば、セキュアモジュールに実装され、原情報に変更をかけ、変更後の情報をメモリ格納情報としてメモリに格納することとしたので、さらに安全なセキュア環境を提供することができるという効果を奏する。
【０２５２】
また、本発明によれば、メモリ格納情報を更新した場合に、更新前のメモリ格納情報から更新後のメモリ格納情報への引継を行わせることとしたので、更新に伴う処理停止を回避することができるという効果を奏する。
【０２５３】
また、本発明によれば、セキュアモジュール内のみに存在する鍵を用いて原情報を暗号化し、暗号化された原情報をメモリ格納情報としてメモリに格納することしたので、さらに安全なセキュア環境を提供することができるという効果を奏する。
【０２５４】
また、本発明によれば、メモリ格納情報の暗号化または復号化に用いられる鍵を保持し、改ざんチェック手段により改ざんが検知されない場合、鍵を外部へ供給することとしたので、安全性が高い状態で暗号化または復号化を行うことができるという効果を奏する。
【０２５５】
また、本発明によれば、改ざんチェック手段により改ざんが検知された場合、鍵の供給を停止することとしたので、改ざんによる損害を最小限にとどめることができるという効果を奏する。
【０２５６】
また、本発明によれば、直接アクセスにより、セキュアモジュール内の秘密情報をメモリに書き込む書込手段を備え、書き込まれた秘密情報に対応する応答情報に基づいてメモリ格納情報の改ざんをチェックすることとしたので、さらに安全なセキュア環境を提供することができるという効果を奏する。
【図面の簡単な説明】
【図１】本発明にかかる一実施の形態の構成を示すブロック図である。
【図２】図１に示したパーソナルコンピュータ１００における電源投入時のセキュア機能を説明するブロック図である。
【図３】図１に示したパーソナルコンピュータ１００における通常動作時のセキュア機能を説明するブロック図である。
【図４】図１に示したパーソナルコンピュータ１００における全切替時のセキュア機能を説明するブロック図である。
【図５】図１に示したパーソナルコンピュータ１００における一部切替時のセキュア機能を説明するブロック図である。
【図６】同一実施の形態の変形例の構成を示すブロック図である。
【図７】パーソナルコンピュータ５０を用いた従来のシステムの構成例を示すブロック図である。
【図８】図７に示したパーソナルコンピュータ５０における情報の流れを説明する図である。
【符号の説明】
１００　パーソナルコンピュータ
１０１　ＰＣメインプロセッサ
１０２　ハードディスクドライブ
１０６　メインメモリ
１０７　画像ＬＳＩ
１０８　画像メモリ
１０９　ＰＣＩバス
１５０　セキュアモジュール
１５１　セキュアモジュールプロセッサ
１５２　ＲＡＭ
１５３　ＲＯＭ
１５４　暗号復号エンジン
１５５　ＰＣＩインタフェース
２００　ネットワーク
３００　表示装置
１６０　初期化／ロード部
１７０　ドライバ
１８０　セキュアソフトウェア
１８０’　セキュアソフトウェア
１８１　入力バッファ
１８２　ＴＳデコーダ
１８３　ビデオバッファ
１８４　暗号復号部
１８５　小バッファ
１８６　ＭＰＥＧビデオデコーダ
１８７　ＭＰＥＧ画像メモリ
１８８　ＭＰＥＧ出力部
【図１】
2004129227.tif 000004
【図２】
2004129227.tif 000005
【図３】
2004129227.tif 000006
【図４】
2004129227.tif 000007
【図５】
2004129227.tif 000008
【図６】
2004129227.tif 000009
【図７】
2004129227.tif 000010
【図８】
2004129227.tif 000011