(57)【要約】【課題】データ記憶部の保護エリアに格納された情報が不正に取得されることを防止し、ひいては、コンテンツの不正取得を防止し得るようにしたプロセッサ、プロセッサ制御方法及び情報処理装置を提供すること。【解決手段】実施の形態によれば、プロセッサは、アクセス手段と取得手段と制御手段とを備える。アクセス手段は、セキュアモードとノンセキュアモードとに選択的に切り替えられ、それぞれのモードで所定のデータ処理を行なうプロセッサ部からのアクセス要求に基づいて、記憶部にアクセスを行なう。取得手段は、プロセッサ部が出力する自己のモードを示す通知を取得する。制御手段は、取得手段で取得した通知に基づいて、プロセッサ部がセキュアモードである場合にのみ、アクセス手段が記憶部の保護エリアにアクセスすることを許可する。【選択図】    図２
2014089644.tif 000002
【特許請求の範囲】
【請求項１】
セキュアモードとノンセキュアモードとに選択的に切り替えられ、それぞれのモードで所定のデータ処理を行なうプロセッサ部から自己のモードを示す状態情報を取得する状態取得手段と、
前記プロセッサ部からの要求に基づいて、プロテクテッドエリアとユーザエリアの領域を備えた記憶部からデータの入出力アクセスを行なうデータアクセス手段と、
前記記憶部は前記プロテクテッドエリアへのアクセスを制限するための鍵を管理する鍵管理手段と、前記鍵を使い認証が成功した場合のみ前記プロテクテッドエリアへのアクセスを許可する制限を行なう認証手段を備え、
前記プロセッサ部からの要求に基づいて、前記記憶部と認証を行なうためのデータの送受信を行ない、前記プロテクテッドエリアにアクセスする第１データアクセス手段と、
前記プロセッサ部からの要求に基づいて、前記記憶部の前記ユーザエリアにアクセスする第２データアクセス手段と、
前記プロセッサ部からの要求に基づいて、前記記憶部へのアクセスを許可するか否かの判断を行なうアクセス制御手段と、
前記状態取得手段で取得した前記状態情報に基づいて、前記プロセッサ部がセキュアモードである場合にのみ、前記アクセス制御手段が第１データアクセス手段で前記記憶部にアクセスすることを許可するアクセス判断手段とを具備するプロセッサ。
【請求項２】
前記アクセス判断手段は、前記状態取得手段で取得した状態情報に基づいて、前記プロセッサ部がノンセキュアモードである場合にのみ、前記アクセス制御手段が第２データアクセス手段で前記記憶部にアクセスし、前記記憶部のユーザエリアに記録された暗号化コンテンツの取得を許可する請求項１記載のプロセッサ。
【請求項３】
前記第１データアクセス手段で前記記憶部のプロテクテッドエリアへのアクセスに先立ち、前記プロセッサ部から前記記憶部への認証要求を受信する認証要求受信手段と、
前記プロセッサ部からの要求に基づき、前記記憶部のプロテクテッドエリアから前記コンテンツデータを復号するための鍵データを読み出し、前記プロセッサ部に送信する送信手段と、
前記アクセス制御手段は、前記状態取得手段で取得した状態情報に基づいて、前記プロセッサ部がセキュアモードである場合にのみ、前記鍵データを前記プロセッサ部に送信するよう制限する前記アクセス制御手段を具備する請求項１記載のプロセッサ。
【請求項４】
前記プロセッサ部と相互認証を行なうための鍵を管理する鍵管理手段と、
前記状態取得手段で取得する前記状態情報を保護するために、前記第１データアクセス手段で前記記憶部のプロテクテッドエリアへのアクセスに先立ち、前記鍵管理手段で管理されている鍵を用いて前記プロセッサ部と相互認証を行なう認証手段と、
前記認証手段により、前記プロセッサ部と認証が成功した場合にのみ、前記第１アクセス手段で前記記憶部にアクセスすることを許可する第２制御手段を具備する請求項１記載のプロセッサ。
【請求項５】
前記プロセッサ部から非圧縮コンテンツデータを受信する受信手段と、
前記プロセッサ部がノンセキュアモードである場合に、前記プロセッサ部から非圧縮コンテンツデータを取得する送信要求を受信した場合に、前記送信要求を拒否する第３制御手段とを具備する請求項１記載のプロセッサ。
【請求項６】
前記プロセッサ部から非圧縮コンテンツデータを受信して映像処理を施す映像処理手段を具備する請求項１記載のプロセッサ。
【請求項７】
セキュアモードとノンセキュアモードとに選択的に切り替えられ、それぞれのモードで所定のデータ処理を行なうもので、自己のモードを示す状態情報を外部に通知する第１プロセッサ部と、
記憶エリアの中にプロテクテッドエリアとユーザエリアを有する記憶部と、
前記記憶部は前記プロテクテッドエリアへのアクセスを制限するための鍵を管理する鍵管理手段と、前記鍵を使い認証が成功した場合のみ前記プロテクテッドエリアへのアクセスを許可する制限を行なう認証手段と、
前記第１プロセッサ部からの要求に基づいて前記記憶部にアクセスする第２プロセッサ部とを具備し、
前記第２プロセッサ部は、
前記第１プロセッサ部からの要求に基づいて、前記記憶部と認証を行なうためのデータの送受信を行ない、前記記憶部のプロテクテッドエリアにアクセスする第１データアクセス手段と、
前記第１プロセッサ部からの要求に基づいて、前記記憶部のユーザエリアにアクセスする第２データアクセス手段と、
前記状態情報に基づいて、前記プロセッサ部がセキュアモードである場合にのみ、前記アクセス制御手段が第１データアクセス手段で前記記憶部にアクセスすることを許可するアクセス判断手段とを具備する情報処理装置。
【請求項８】
ワーキングメモリとして動作するメモリ部と、
前記メモリ部の中に、前記第１プロセッサ部がセキュアモードで動作するための第１プログラムと、前記第１プロセッサ部でセキュアモードとノンセキュアモードの切り替えを行なうための第２プログラムが格納されるセキュアエリアと、コンテンツデータが格納される共有エリアと、前記第１プロセッサ部をノンセキュアモードで動作するための第３プログラムが格納されるノンセキュアエリアとを設定するメモリ制御部と、
前記第２プログラムは、前記情報処理装置が第３プログラムを起動するに先立ち、前記第１プロセッサ部がセキュアモードである場合に前記第１プロセッサ部が前記メモリ部に設定された全てのエリアにアクセスすることを許可し、前記第１プロセッサ部がノンセキュアモードである場合に前記第１プロセッサ部が前記メモリ部に設定された共有エリアとノンセキュアエリアとにアクセスすることを許可するように前記メモリ制御部を設定するメモリエリア設定部を具備する請求項７記載の情報処理装置。
【請求項９】
前記メモリ部の共有エリアは、暗号化コンテンツが格納される第１エリアと、前記映像処理手段に使用される第２エリアとを有し、
前記第２エリアは、前記第１プロセッサ部がノンセキュアモードである場合に、前記第１プロセッサ部からの読み込みを禁止するようにメモリ制御部を設定するメモリエリア設定部を具備する請求項８記載の情報処理装置。
【請求項１０】
前記第３プログラムは、
前記ユーザエリアに格納された暗号化コンテンツを取得する暗号化コンテンツ取得手段と、
暗号化コンテンツを前記共有エリアに書き出すコンテンツ転送手段とを具備し、
前記第１プログラムは、
前記記憶部と相互認証を行ない、コンテンツを復号するためのコンテンツ鍵を取得する鍵取得手段と、
共有エリアに書き出された前記暗号化コンテンツを前記コンテンツ鍵を使って平文コンテンツに復号する復号手段とを具備し、
前記第２プログラムは、前記第１プログラムによるコンテンツの復号に先立ち、前記第１プロセッサの状態をセキュアモードに切り替える切り替え手段を具備し、
前記情報処理装置は、前記平文コンテンツをデコードするデコード手段を具備する請求項７記載の情報処理装置。
【請求項１１】
前記第２プロセッサ部は、前記第１プロセッサ部から非圧縮コンテンツデータを受信して映像処理を施す映像処理手段を具備する請求項７記載の情報処理装置。
【請求項１２】
セキュアモードとノンセキュアモードとに選択的に切り替えられ、それぞれのモードで所定のデータ処理を行なうプロセッサ部から自己のモードを示す状態情報を取得する状態取得工程と、
前記プロセッサ部からの要求に基づいて、プロテクテッドエリアとユーザエリアの領域を備えた記憶部からデータの入出力アクセスを行なうデータアクセス工程と、
前記記憶部は前記プロテクテッドエリアへのアクセスを制限するための鍵を管理する鍵管理工程と、前記鍵を使い認証が成功した場合のみ前記プロテクテッドエリアへのアクセスを許可する制限を行なう認証工程を備え、
前記プロセッサ部からの要求に基づいて、前記記憶部と認証を行なうためのデータの送受信を行ない、前記プロテクテッドエリアにアクセスする第１データアクセス工程と、
前記プロセッサ部からの要求に基づいて、前記記憶部の前記ユーザエリアにアクセスする第２データアクセス工程と、
前記プロセッサ部からの要求に基づいて、前記記憶部へのアクセスを許可するか否かの判断を行なうアクセス制御工程と、
前記状態取得工程で取得した前記状態情報に基づいて、前記プロセッサ部がセキュアモードである場合にのみ、前記アクセス制御工程が第１データアクセス工程で前記記憶部にアクセスすることを許可するアクセス判断工程とを有するプロセッサ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明の実施の形態は、保護エリアを備えたデータ記憶部へのアクセスを制御するプロセッサ、プロセッサ制御方法及びこのアクセス制御装置を含む情報処理装置に関する。
【背景技術】
【０００２】
周知のように、現在では、コンテンツ配信業者が映像や音声等を含むコンテンツを配信する際、コンテンツの著作権を保護するために暗号化して配信し、その暗号化コンテンツを、コンテンツ配信業者からコンテンツ鍵が与えられた正当な情報処理装置で受信し復号することにより、コンテンツの不正取得を防止し得るようにしたデジタル著作権管理［ＤＲＭ（digital rights management）］機能付きコンテンツ配信システムが普及している。
【０００３】
具体的に言えば、コンテンツ鍵は、例えばＳＤ（secure digital）メモリカードのようなデータ記憶部の保護エリアに格納されている。そして、このデータ記憶部は、相互認証が成功した情報処理装置からの要求によって、保護エリアに格納されたコンテンツ鍵を暗号化して送信する。
【０００４】
これにより、この情報処理装置では、自己の動作用ソフトウェアであるＯＳ（operation system）上で動作するアプリケーションソフトウェアに含まれる認証用鍵に基づいて、データ記憶部から取得した暗号化コンテンツ鍵を復号するための鍵を生成し、この鍵により復号したコンテンツ鍵を用いて暗号化コンテンツを復号している。
【０００５】
ところで、このような現状のコンテンツ配信システムでは、鍵計算処理が情報処理装置のアプリケーションソフトによって行なわれる。このため、コンテンツを不正に入手しようとする解析者によって、暗号化コンテンツ鍵を復号するための鍵計算処理が解析され、コンテンツ鍵の値を入手されてしまうと、その鍵によって暗号化コンテンツが復号されてしまうため、コンテンツの不正取得が行なわれることになる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１９８６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
データ記憶部の保護エリアに格納された情報が不正に取得されることを防止し、ひいては、コンテンツの不正取得を防止し得るようにしたプロセッサ、プロセッサ制御方法及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施の形態によれば、プロセッサは、状態取得手段と、データアクセス手段と、第１データアクセス手段と、第２データアクセス手段と、アクセス制御手段と、アクセス判断手段とを備える。状態取得手段は、セキュアモードとノンセキュアモードとに選択的に切り替えられ、それぞれのモードで所定のデータ処理を行なうプロセッサ部から自己のモードを示す状態情報を取得する。データアクセス手段は、プロセッサ部からの要求に基づいて、プロテクテッドエリアとユーザエリアの領域を備えた記憶部からデータの入出力アクセスを行なう。記憶部は、プロテクテッドエリアへのアクセスを制限するための鍵を管理する鍵管理手段と、鍵を使い認証が成功した場合のみプロテクテッドエリアへのアクセスを許可する制限を行なう認証手段を備える。第１データアクセス手段は、プロセッサ部からの要求に基づいて、記憶部と認証を行なうためのデータの送受信を行ない、プロテクテッドエリアにアクセスする。第２データアクセス手段は、プロセッサ部からの要求に基づいて、記憶部のユーザエリアにアクセスする。アクセス制御手段は、プロセッサ部からの要求に基づいて、記憶部へのアクセスを許可するか否かの判断を行なう。アクセス判断手段は、状態取得手段で取得した状態情報に基づいて、プロセッサ部がセキュアモードである場合にのみ、アクセス制御手段が第１データアクセス手段で記憶部にアクセスすることを許可する。
【図面の簡単な説明】
【０００９】
【図１】第１の実施の形態としての情報処理装置の信号処理系の一例を概略的に説明するために示すブロック構成図。
【図２】同第１の実施の形態における情報処理装置を構成する第１及び第２プロセッサ部の一例を説明するために示すブロック構成図。
【図３】同第１の実施の形態における第１プロセッサ部を動作させるためのソフトウェアの一例を説明するために示す図。
【図４】同第１の実施の形態における情報処理装置を構成するメモリ部に対するエリア分けの一例を説明するために示す図。
【図５】同第１の実施の形態におけるメモリ部の各エリアに対するアクセス制御の一例を説明するために示す図。
【図６】同第１の実施の形態における第１プロセッサ部の初期化処理時における処理動作の一例を説明するために示すフローチャート。
【図７】同第１の実施の形態における第１プロセッサ部の初期化処理時における処理動作の他の例の一部を説明するために示すフローチャート。
【図８】同第１の実施の形態における第１プロセッサ部の初期化処理時における処理動作の他の例の残部を説明するために示すフローチャート。
【図９】同第１の実施の形態における情報処理装置を構成するデータ記憶部の一例を説明するために示すブロック構成図。
【図１０】同第１の実施の形態における第１プロセッサ部が暗号化コンテンツを復号する処理動作の一例の一部を説明するために示すフローチャート。
【図１１】同第１の実施の形態における第１プロセッサ部が暗号化コンテンツを復号する処理動作の一例の残部を説明するために示すフローチャート。
【図１２】同第１の実施の形態における第１プロセッサ部が暗号化コンテンツを復号する処理動作の他の例を説明するために示すフローチャート。
【図１３】同第１の実施の形態における第１プロセッサ部が保護エリアからコンテンツ鍵を取得する処理動作の一例の一部を説明するために示すフローチャート。
【図１４】同第１の実施の形態における第１プロセッサ部が保護エリアからコンテンツ鍵を取得する処理動作の一例の残部を説明するために示すフローチャート。
【図１５】同第１の実施の形態における第２プロセッサ部の他の例を説明するために示すブロック構成図。
【図１６】同第１の実施の形態における第１プロセッサ部がユーザエリアから暗号化コンテンツを取得する処理動作の一例を説明するために示すフローチャート。
【図１７】同第１の実施の形態におけるメモリ部に対するエリア分けの他の例を説明するために示す図。
【図１８】同第１の実施の形態におけるメモリ部の各エリアに対するアクセス制御の他の例を説明するために示す図。
【図１９】第２の実施の形態としての情報処理装置の信号処理系の一例を概略的に説明するために示すブロック構成図。
【図２０】同第２の実施の形態における情報処理装置を構成する第１及び第２プロセッサ部の一例を説明するために示すブロック構成図。
【図２１】同第２の実施の形態における第１プロセッサ部がプログラムをロードし検証する処理動作の一例を説明するために示すフローチャート。
【図２２】同第２の実施の形態における情報処理装置を構成するデータ記憶部の一例を説明するために示すブロック構成図。
【図２３】同第２の実施の形態における第１プロセッサ部を動作させるためのソフトウェアの一例を説明するために示す図。
【図２４】同第２の実施の形態における第１プロセッサ部のセキュアＯＳを含むブート時における処理動作の一例の一部を説明するために示すフローチャート。
【図２５】同第２の実施の形態における第１プロセッサ部のセキュアＯＳを含むブート時における処理動作の一例の残部を説明するために示すフローチャート。
【図２６】同第２の実施の形態における第１プロセッサ部が保護エリアからセキュアＯＳ復号鍵を取得する処理動作の一例の一部を説明するために示すフローチャート。
【図２７】同第２の実施の形態における第１プロセッサ部が保護エリアからセキュアＯＳ復号鍵を取得する処理動作の一例の残部を説明するために示すフローチャート。
【図２８】同第２の実施の形態における第１及び第２プロセッサ部の他の例を説明するために示すブロック構成図。
【図２９】同第２の実施の形態における第１及び第２プロセッサが相互認証を行なう処理動作の一例を説明するために示すフローチャート。
【図３０】同第２の実施の形態におけるデータ記憶部の他の例を説明するために示すブロック構成図。
【図３１】同第２の実施の形態における第１プロセッサ部のセキュアＯＳを含むブート時における処理動作の他の例の一部を説明するために示すフローチャート。
【図３２】同第２の実施の形態における第１プロセッサ部のセキュアＯＳを含むブート時における処理動作の他の例の残部を説明するために示すフローチャート。
【図３３】上記第１の実施の形態における第１プロセッサ部が暗号化コンテンツを復号する処理動作のさらに他の例を説明するために示すフローチャート。
【図３４】上記第２の実施の形態における第１及び第２プロセッサが相互認証を行なう処理動作の一例を説明するために示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、実施の形態について図面を参照して詳細に説明する。図１は、第１の実施の形態で説明する情報処理装置１１の信号処理系を概略的に示している。この情報処理装置１１としては、例えばデジタルテレビジョン放送受信装置やＳＴＢ（set top box）等を想定している。
【００１１】
そして、この情報処理装置１１は、ネットワークインターフェース部１２、放送チューナ部１３、第１プロセッサ部１４、第２プロセッサ部１５、データ記憶部１６、映像出力部１７、メモリ制御部１８及びメモリ部１９等を備えている。
【００１２】
このうち、ネットワークインターフェース部１２は、外部のコンテンツ配信サーバ２０から送信される映像や音声等を含むコンテンツを、ＩＰ（internet protocol）ネットワーク経由で取得し、第１プロセッサ部１４に出力している。
【００１３】
また、放送チューナ部１３は、外部の放送送信設備２１から送信される放送波を受信して選局及び復調することにより、映像や音声等を含むコンテンツを取得し、第１プロセッサ部１４に出力している。
【００１４】
この場合、ネットワークインターフェース部１２及び放送チューナ部１３としては、例えば水平方向に３８４０画素を備え垂直方向に２１６０画素を備えた、４Ｋ２Ｋと称されるＨＤＴＶ（high-definition television）の４倍の解像度を有する映像コンテンツ、または、それ以上の解像度を有する映像コンテンツを取得する機能を持つものを想定するが、映像コンテンツとしてＳＤ（standard-definition）やＨＤの解像度を有するものを取得する機能を有していても良いものである。
【００１５】
そして、第１プロセッサ部１４は、ネットワークインターフェース部１２及び放送チューナ部１３から選択的に供給されたコンテンツにデコード処理を施し、デコード処理後のコンテンツを第２プロセッサ部１５に出力している。
【００１６】
また、第１プロセッサ部１４は、ネットワークインターフェース部１２及び放送チューナ部１３から選択的に供給されたコンテンツが暗号化されている場合、第２プロセッサ部１５を経由して、データ記憶部１６の保護エリアに格納されているコンテンツ鍵を取得する。そして、第１プロセッサ部１４は、取得したコンテンツ鍵を用いて暗号化コンテンツを復号した後、その復号したコンテンツをデコード処理して第２プロセッサ部１５に出力している。
【００１７】
なお、コンテンツ配信サーバ２０は、情報処理装置１１に暗号化コンテンツを配信するに当たって、情報処理装置１１のデータ記憶部１６に正規な鍵が格納されているか否かを確認するために認証処理を実行したり、情報処理装置１１の第１プロセッサ部１４で動作するソフトウェア（アプリケーション）が正規の鍵を有しているか否かを確認したりするために、例えばＣＰＲＭ（content protection for recordable media）規格を利用した認証処理を行なうようにしても良い。この認証方式として、ＩＳＯ／ＩＥＣ９７９８−３やＩＳＯ／ＩＥＣ９７９８−２のような公知の手法を用いても良く、特にその手段は限定されるものではない。
【００１８】
また、第１プロセッサ部１４は、例えばＡＲＭプロセッサのセキュリティ機能であるTrustZone機能を備えており、詳細は後述するが、セキュアモードとノンセキュアモードとの２つのモードを選択的に切り替えながらプログラムを実行する。
【００１９】
この場合、第１プロセッサ部１４は、データ記憶部１６との認証処理、データ記憶部１６の保護エリアへのアクセス処理、著作権保護管理（ＤＲＭ）機能に基づくコンテンツ鍵の生成処理、コンテンツ鍵を用いた暗号化コンテンツの復号処理等、秘匿性や完全性が必要とされる処理をセキュアモードで実行する。
【００２０】
また、第１プロセッサ部１４は、コンテンツ配信サーバ２０と通信して取得したＨＴＭＬやJava（登録商標）Script等から構成されるウェブアプリケーションを実行するブラウザ処理や、ウェブアプリケーションの実行結果としてコンテンツリスト等のＧＵＩ（graphical user interface）を生成する処理や、赤外線リモコン等の外部機器からの入力を受け付けてチューナ切り替えやブラウザを操作する処理等のセキュリティを必要としない処理をノンセキュアモードで実行するというように、それぞれの処理に応じてモードを切り替えられる。
【００２１】
そして、第２プロセッサ部１５は、第１プロセッサ部１４から供給されたデコード処理後の映像コンテンツに対して、例えば超解像処理や画像認識処理等の所定の映像信号処理を施して映像出力部１７に出力している。この映像出力部１７は、映像信号処理後の映像コンテンツを、図示しない内蔵ディスプレイ等の映像表示部に供給して映像表示に供したり、例えばＨＤＭＩ（high-definition multimedia interface）等の所定の伝送規格に準拠した伝送路を介して外部に送信したりしている。
【００２２】
なお、第１プロセッサ部１４から出力されるデコード処理後の音声コンテンツについては、図示しない音声処理部で所定の音声信号処理が施された後、スピーカでの音声再生や外部への伝送等に供される。
【００２３】
ここで、上記データ記憶部１６は、例えばＣＰＲＭ規格対応のＳＤメモリカード等を想定しており、第１プロセッサ部１４との認証処理や、第１プロセッサ１４からのコンテンツ鍵取得要求を受けて、保護エリアに格納されたコンテンツ鍵を暗号化して第１プロセッサ１４に出力する処理等、第１プロセッサ１４とのデータ伝送を第２プロセッサ１５を介して行なうように構成されている。
【００２４】
なお、データ記憶部１６としては、情報処理装置１１に対して着脱可能になされたものであっても良いし、情報処理装置１１に内蔵され取り外しできないものであっても良いことはもちろんである。
【００２５】
また、上記メモリ部１９は、ワーキングメモリであって、例えばＤＲＡＭ（dynamic random access memory）を想定し、メモリ制御部１８はＤＲＡＭコントローラを想定しており、第１プロセッサ部１４及び第２プロセッサ部１５からの指示を受けるメモリ制御部１８の制御に基づいて、メモリエリアが用途別に区分けされ、各種データの書き込み及び読み出し等が行なわれる。
【００２６】
図２は、上記第１プロセッサ部１４及び第２プロセッサ部１５の一例を示している。すなわち、第１プロセッサ部１４は、ストリーム受信部２２、ストリーム判別部２３、デコーダ部２４、コンテンツ復号処理部２５、鍵受信部２６、鍵計算処理部２７、ホスト認証処理部２８、ホスト鍵管理部２９、プロセッサ状態切り替え部３０及びプロセッサ状態通知部３１等を備えている。
【００２７】
このうち、ストリーム受信部２２は、上記ネットワークインターフェース部１２及び放送チューナ部１３から選択的に供給されるコンテンツ、つまり、暗号化されていない平文コンテンツまたは暗号化コンテンツを受信して、ストリーム判別部２３に出力する。このストリーム判別部２３は、ストリーム受信部２２から供給されたコンテンツが平文コンテンツであるか暗号化コンテンツであるかを判別し、平文コンテンツをデコーダ部２４に出力し、暗号化コンテンツをコンテンツ復号処理部２５に出力している。
【００２８】
そして、デコーダ部２４は、入力された平文コンテンツをデコード処理して第２プロセッサ部１５の映像処理部３２に出力している。また、コンテンツ復号処理部２５は、入力された暗号化コンテンツを、鍵計算処理部２７で生成されたコンテンツ鍵に基づいて復号し、デコーダ部２４に出力している。これにより、復号されて平文になったコンテンツがデコード処理されて第２プロセッサ部１５に出力される。
【００２９】
この場合、鍵計算処理部２７は、鍵受信部２６が第２プロセッサ部１５を介してデータ記憶部１６から取得した暗号化コンテンツ鍵を復号してコンテンツ鍵を生成している。すなわち、ホスト認証処理部２８は、ホスト鍵管理部２９に格納された認証用の公開鍵と秘密鍵とを用いて、第２プロセッサ部１５経由でデータ記憶部１６との相互認証を行なっており、その認証処理によって生成され、ホスト認証処理部２８とデータ記憶部１６とが共有した鍵（セッション鍵）を利用して、鍵計算処理部２７が暗号化コンテンツ鍵を復号している。この復号に用いる暗号アルゴリズムとしては、ＤＥＳやＡＥＳ等の公知の手法を用いれば良く、特にその手法は限定されるものではない。
【００３０】
ここで、上記プロセッサ状態切り替え部３０は、第１プロセッサ部１４の動作状態を、セキュアモードとノンセキュアモードとに選択的に切り替える。すなわち、第１プロセッサ部１４の動作用ソフトウェアは、必要に応じてセキュアモードとノンセキュアモードとを交互に切り替えながら処理を実行する。
【００３１】
また、上記プロセッサ状態通知部３１は、第１プロセッサ部１４の状態、つまり、セキュアモードであるかノンセキュアモードであるかを、第１プロセッサ部１４と接続された第２プロセッサ部１５とメモリ制御部１８を含む各種ペリフェラルとに信号として通知している。この通知は、常時信号を通知しても良いし、セキュアモードからノンセキュアモード、または、ノンセキュアモードからセキュアモードに状態が切り替わるときに通知しても良いが、セキュリティの観点からすると常時通知することが好ましい。
【００３２】
一方、第２プロセッサ部１５は、映像処理部３２、データアクセス部３３、鍵取得部３４、鍵送信部３５、プロセッサ状態管理部３６及び鍵取得判断部３７等を備えている。このうち、映像処理部３２は、第１プロセッサ部１４から供給されるデコード処理後の映像コンテンツに所定の映像信号処理を施して、映像出力部１７に出力している。
【００３３】
また、データアクセス部３３は、第１プロセッサ部１４からの要求に基づいて、データ記憶部１６へのアクセスを実行する。鍵取得部３４は、データアクセス部３３によるデータ記憶部１６へのアクセスの結果、データ記憶部１６から暗号化されたコンテンツ鍵を取得する。鍵送信部３５は、鍵取得部３４で取得した暗号化コンテンツ鍵を、第１プロセッサ部１４の鍵受信部２６に送信する。
【００３４】
ここで、プロセッサ状態管理部３６は、第１プロセッサ部１４のプロセッサ状態通知部３１からの通知を受信し、鍵取得判断部３７に出力している。この鍵取得判断部３７は、プロセッサ状態通知部３１からの通知により、第１プロセッサ部１４がセキュアモードであるかノンセキュアモードであるかを判別し、セキュアモードであるときのみ、鍵取得部３４に対して、データ記憶部１６からの暗号化コンテンツ鍵の取得を許可している。すなわち、第２プロセッサ部１５は、第１プロセッサ部１４がセキュアモードであるときにのみ、データ記憶部１６の保護エリアにアクセスしてコンテンツ鍵を取得し、第１プロセッサ部１４に送信することを許可している。
【００３５】
図３は、上記第１プロセッサ部１４を動作させるためのソフトウェアの一例を示している。すなわち、このソフトウェアは、第１プロセッサ部１４をセキュアモードで動作させるためのセキュアＯＳ部３８と、第１プロセッサ部１４をノンセキュアモードで動作させるためのノンセキュアＯＳ部３９と、セキュアモードとノンセキュアモードとを切り替えを制御するためのセキュアモニタ部４０とに大別される。
【００３６】
そして、各部３８，３９，４０に、それぞれ、必要な処理が記載されている。なお、これらの各処理は、ＯＳ上で実行させるアプリケーションを意図しており、ＯＳ内で実行されるわけではなく、厳密に言えば、ＯＳ内とＯＳ上アプリケーションの処理との協調で実現される。
【００３７】
すなわち、セキュアＯＳ部３８では、上記ホスト認証処理部２８の処理を行なうためのホスト認証処理部３８ａ、上記鍵受信部２６の処理を行なうための鍵受信処理部３８ｂ、上記ホスト鍵管理部２９の処理を行なうためのホスト鍵取得処理部３８ｃ、上記鍵計算処理部２７の処理を行なうための鍵計算処理部３８ｄ、上記コンテンツ復号処理部２５の処理を行なうためのコンテンツ復号処理部３８ｅ、上記デコーダ部２４に圧縮形式のコンテンツのデコード処理を依頼するためのデコード依頼部３８ｆ、上記プロセッサ状態切り替え部３０に第１プロセッサ部１４をセキュアモードからノンセキュアモードに切り替える命令の実行を依頼する処理を行なうための状態切り替え命令実行部３８ｇ等のアプリケーションが実行される。なお、第１プロセッサ部１４のデコーダ部２４は、ソフトウェアで実装されていても良いし、ハードウェアで実装されていても良い。ソフトウェアで実装されている場合、デコード処理はセキュアモード、つまり、セキュアＯＳ部３８のアプリケーションとして処理される。
【００３８】
また、ノンセキュアＯＳ部３９では、ネットワークインターフェース部１２や放送チューナ部１３からデータを取得するデータ取得部３９ｇ、デバイス初期化処理部３９ａ、ネットワークインターフェース部１２との通信処理を行なうための通信処理部３９ｂ、上記ストリーム受信部２２の処理を行なうためのストリーム受信処理部３９ｃ、上記ストリーム判別部２３の処理を行なうためのストリーム判別処理部３９ｄ、上記デコーダ部２４に圧縮形式の平文コンテンツのデコード処理を依頼するためのデコード依頼部３９ｅ、上記プロセッサ状態切り替え部３０に第１プロセッサ部１４をノンセキュアモードからセキュアモードに切り替える命令の実行を依頼する処理を行なうための状態切り替え命令実行部３９ｆ、データ記憶部１６と認証処理を開始するホスト認証開始処理部３９ｈ等のアプリケーションが実行される。なお、第１プロセッサ部１４のデコーダ部２４は、ソフトウェアで実装されていても良いし、ハードウェアで実装されていても良い。ソフトウェアで実装されている場合、デコード処理はセキュアモード、つまり、ノンセキュアＯＳ部３９のアプリケーションとして処理される。
【００３９】
さらに、セキュアモニタ部４０では、第１プロセッサ部１４でプロセッサの状態を切り替える命令が実行されたときのハンドラである状態切り替えハンドラ部４０ａ、第１プロセッサ部１４の状態がセキュアモードの場合にはノンセキュアモードに切り替え、ノンセキュアモードの場合にはセキュアモードに切り替える処理を行なうプロセッサ状態切り替え部４０ｂ、上記メモリ部１９のメモリエリアを区分けし、後述する各エリアに格納されるアクセス制御情報を設定するためのメモリエリア設定部４０ｃ等のアプリケーションが実行される。
【００４０】
図４は、上記メモリエリア設定部４０ｃがメモリ部１９のメモリエリアを区分けした一例を示している。この区分けの設定は、メモリエリア設定部４０ｃによって機器起動時の処理の一部としてなされる。すなわち、メモリ部１９のメモリエリアには、セキュアエリアと共有エリアとノンセキュアエリアとが設定される。
【００４１】
そして、セキュアエリアには、セキュアＯＳ実行コード、セキュアＯＳデータ、メモリエリア設定レジスタ、セキュアモニタコード及びセキュアモニタデータ等が格納される。また、共有エリアには、暗号化コンテンツが格納される。さらに、ノンセキュアエリアには、ノンセキュアＯＳ実行コード及びノンセキュアＯＳデータ等が格納される。
【００４２】
図５は、メモリ部１９の各メモリエリアに対するアクセスの可否を示している。このアクセス制御の設定は、メモリエリア設定部４０ｃによって機器起動時の処理の一部としてなされる。すなわち、第１プロセッサ部１４は、セキュアモードにある場合、第１プロセッサ部１４で動作するソフトウェアがメモリ部１９のセキュアエリア、共有エリア及びノンセキュアエリアに全てアクセスが可能である。つまり、セキュアＯＳ部３８は、メモリ部１９のセキュアエリア、共有エリア及びノンセキュアエリアに全てアクセスが可能である。
【００４３】
また、第１プロセッサ部１４は、ノンセキュアモードにある場合、メモリ部１９のセキュアエリアにアクセスが不可であり、共有エリア及びノンセキュアエリアにはアクセスが可能である。つまり、ノンセキュアＯＳ部３９は、メモリ部１９のセキュアエリアにアクセスが不可であり、共有エリア及びノンセキュアエリアにはアクセスが可能である。なお、アクセスとは、メモリ部１９に対して書き込みや読み出しを行なうことである。
【００４４】
このようなメモリ部１９に対するアクセス制御は、上記メモリ制御部１８が第１プロセッサ部１４のプロセッサ状態通知部３１から第１プロセッサ部１４がセキュアモードであるかノンセキュアモードであるかを示す信号を受信し、その信号から第１プロセッサ部１４の状態をメモリ制御部１８が把握して、第１プロセッサ部１４からメモリ部１９にアクセスがあった場合、どのメモリエリアにアクセスが可能であるかを判別することにより実現される。
【００４５】
図６は、第１プロセッサ部１４の初期化処理時における処理動作の一例をまとめたフローチャートを示している。すなわち、第１プロセッサ部１４は、起動（ステップＳ６ａ）されると、ステップＳ６ｂで、図示しないプログラム格納部からセキュアモニタコード及びセキュアモニタデータを読み出し、ステップＳ６ｃで、セキュアモニタ部４０を起動させる。
【００４６】
そして、第１プロセッサ部１４で動作するセキュアモニタ部４０は、ステップＳ６ｄで、メモリエリア設定部４０ｃでメモリ部１９に対するメモリエリアの区分けや、メモリエリアに対するアクセス制御を設定する。その後、第１プロセッサ部１４は、ステップＳ６ｅで、図示しないプログラム格納部からセキュアＯＳ実行コード及びセキュアＯＳデータを読み出し、ステップＳ６ｆで、セキュアＯＳ部３８を起動させる。
【００４７】
次に、第１プロセッサ部１４は、ステップＳ６ｇで、セキュアＯＳ部３８上の必要なアプリケーションをロードし、ステップＳ６ｈで、そのアプリケーションを起動させる。これにより、第１プロセッサ部１４は、必要な処理をセキュアモードで実行することができる。このステップＳ６ｇ及びＳ６ｈの処理は、必要なアプリケーションの起動が完了し、ノンセキュアモードへの状態切り替え命令を実行するまで繰り返し実行される。
【００４８】
そして、第１プロセッサ部１４で動作するセキュアＯＳ部３８の状態切り替え命令実行部３８ｇは、ステップＳ６ｉで、状態切り替え命令を実行する。状態切り替え命令が実行されると、第１プロセッサ部１４はこの命令を検出し、セキュアモニタ部４０の状態切り替えハンドラ部４０ａに処理を遷移させ（ステップＳ６ｊ）、ステップＳ６ｋで、状態切り替えハンドラ部４０ａはセキュアモニタ部４０のプロセッサ状態切り替え部４０ｂを実行させる。これにより、第１プロセッサ部１４は、セキュアモードからノンセキュアモードに状態が変化する。プロセッサ状態切り替え部４０ｂは、その後、セキュアＯＳ部３８の状態（コンテキスト）をメモリ部１９のセキュアエリアに退避させ、ステップＳ６ｌで、図示しないプログラム格納部からノンセキュアＯＳ実行コード及びノンセキュアＯＳデータを読み出し、ステップＳ６ｍで、ノンセキュアＯＳ部３９を起動させる。
【００４９】
その後、第１プロセッサ部１４は、ステップＳ６ｎで、ノンセキュアＯＳ部３９上の必要なアプリケーションをロードし、ステップＳ６ｏで、そのアプリケーションを起動させる。これにより、第１プロセッサ部１４は、必要な処理をノンセキュアモードで実行することができる。このステップＳ６ｎ及びＳ６ｏの処理は、セキュアモードへの状態切り替え命令が来るまで繰り返し実行される。
【００５０】
ここで、セキュアモードとノンセキュアモードとの間の遷移は、ＯＳのコンテキストスイッチのように行なわれる。すなわち、セキュアモニタ部４０のプロセッサ状態切り替え部４０ｂでは、実行に必要な現在の状態（コンテキスト）を保持（ストア）して別の状態に遷移し、遷移先でストアしてあった実行に必要な状態（コンテキスト）を復帰（ロード）して実行する。
【００５１】
なお、上記ではセキュアモニタ部４０のプロセッサ状態切り替え部４０ｂが、図示しないプログラム格納部からノンセキュアＯＳ実行コード及びノンセキュアＯＳデータを読み出す構成について説明したが、セキュアモニタの実行に先立つブートローダがプログラム格納部からノンセキュアＯＳ実行コード及びノンセキュアＯＳデータを読み出し、メモリ部１９のノンセキュアエリアにロードする処理を行なっても良いし、セキュアＯＳ部３８がノンセキュアＯＳ実行コード及びノンセキュアＯＳデータを読み出し、メモリ部１９のノンセキュアエリアにロードする処理を行なっても良い。
【００５２】
図７及び図８は、第１プロセッサ部１４の初期化処理時における処理動作の他の例をまとめたフローチャートを示している。すなわち、第１プロセッサ部１４は、セキュアモードで起動（ステップＳ７ａ）されると、ステップＳ７ｂで、図示しないプログラム格納部からセキュアモニタコード及びセキュアモニタデータを読み出し、ステップＳ７ｃで、セキュアモニタ部４０を起動させる。
【００５３】
そして、第１プロセッサ部１４は、ステップＳ７ｄで、メモリエリア設定部４０ｃによりメモリ部１９に対するメモリエリアの区分けや、メモリエリアに対するアクセス制御を設定する。その後、第１プロセッサ部１４は、ステップＳ７ｅで、図示しないプログラム格納部からセキュアＯＳ実行コード及びセキュアＯＳデータを読み出し、ステップＳ７ｆで、セキュアＯＳ部３８を起動させる。
【００５４】
その後、第１プロセッサ部１４で動作するセキュアＯＳ部３８の状態切り替え命令実行部３８ｇは、ステップＳ７ｇで、状態切り替え命令を実行すると、第１プロセッサ部１４はこの命令を検出し、セキュアモニタ部４０の状態切り替えハンドラ部４０ａに処理を遷移させ（ステップＳ７ｈ）、ステップＳ７ｉで、状態切り替えハンドラ部４０ａはセキュアモニタ部４０のプロセッサ状態切り替え部４０ｂを実行させる。これにより、第１プロセッサ部１４は、セキュアモードからノンセキュアモードに状態が変化する。プロセッサ状態切り替え部４０ｂは、その後、セキュアＯＳ部３８の状態（コンテキスト）をメモリ部１９のセキュアエリアに退避させ、ステップＳ７ｊで、図示しないプログラム格納部からノンセキュアＯＳ実行コード及びノンセキュアＯＳデータを読み出し、ステップＳ７ｋで、ノンセキュアＯＳ部３９を起動させる。
【００５５】
そして、第１プロセッサ部１４は、ステップＳ７ｌで、ノンセキュアＯＳ部３９上の必要なアプリケーションをロードし、ステップＳ７ｍで、そのアプリケーションを起動させる。これにより、第１プロセッサ部１４は、必要な処理をノンセキュアモードで実行することができる。このステップＳ７ｌ及びＳ７ｍの処理は、ノンセキュアＯＳ部３９の状態切り替え命令実行部３９ｆがセキュアモードへの状態切り替え命令を実行するまで繰り返し実行される。
【００５６】
その後、第１プロセッサ部１４の状態切り替え命令実行部３９ｆが、ステップＳ８ａで、状態切り替え命令を実行すると、第１プロセッサ部１４はこの命令を検出し、セキュアモニタ部４０の状態切り替えハンドラ部４０ａに処理を遷移させ（ステップＳ８ｂ）、状態切り替えハンドラ部４０ａはステップＳ８ｃで、セキュアモニタ部４０のプロセッサ状態切り替え部４０ｂを実行させる。これにより、第１プロセッサ部１４は、ノンセキュアモードからセキュアモードに状態が変化する。プロセッサ状態切り替え部４０ｂは、その後、ノンセキュアＯＳ部３９の状態（コンテキスト）をメモリ部１９のノンセキュアエリアに退避させ、セキュアエリアに保存してあったセキュアＯＳ部３８の状態（コンテキスト）を復帰させ、セキュアＯＳ部３８を再開させる。その後、ステップＳ８ｄで、セキュアＯＳ部３８上の必要なアプリケーションをロードし、ステップＳ８ｅで、そのアプリケーションを起動させることができる。このため、第１プロセッサ部１４は、必要な処理をセキュアモードで実行することができる。このステップＳ８ｄ及びＳ８ｅの処理は、セキュアＯＳ部３８の状態切り替え命令実行部３８ｇがノンセキュアモードへの状態切り替え命令を実行するまで繰り返し実行される。
【００５７】
そして、第１プロセッサ部１４の状態切り替え命令実行部３８ｇは、ステップＳ８ｆで、状態切り替え命令を実行すると、第１プロセッサ部１４はこの命令を検出し、セキュアモニタ部４０の状態切り替えハンドラ部４０ａに処理を遷移させ（ステップＳ８ｇ）、状態切り替えハンドラ部４０ａはステップＳ８ｈで、セキュアモニタ部４０のプロセッサ状態切り替え部４０ｂを実行させる。これにより、第１プロセッサ部１４は、セキュアモードからノンセキュアモードに状態が変化する。プロセッサ状態切り替え部４０ｂは、その後、セキュアＯＳ部３８の状態（コンテキスト）をメモリ部１９のセキュアエリアに退避させ、ノンセキュアエリアに保存してあったノンセキュアＯＳ部３９の状態（コンテキスト）を復帰させ、ノンセキュアＯＳ部３９を再開させる。その後、ステップＳ８ｉで、前のノンセキュアモードでの処理、つまり、ステップＳ７ｌ及びＳ７ｍで行なっていた処理を継続して実行することができる。
【００５８】
この図７及び図８に示した処理動作によれば、ステップＳ７ｆでセキュアＯＳ部３８を起動させた後、図４に示したように、セキュアＯＳ部３８上のアプリケーションをロードして起動することなく、ノンセキュアＯＳ部３９を高速にブートすることができるという利点がある。
【００５９】
図９は、上記データ記憶部１６の一例を示している。すなわち、データ記憶部１６は、ユーザエリア部４１、プロテクテッドエリア部４２及びコントローラ部４３等を備えている。このうち、ユーザエリア部４１は、データ記憶部１６の外部からアクセス制限なく自由にアクセスしてデータの書き込みや読み出しを行なうことができるエリアであり、例えば暗号化コンテンツ等が記録される。
【００６０】
また、プロテクテッドエリア部４２は、データ記憶部１６内における保護エリアであって、データ記憶部１６との相互認証が成功した機器からしかアクセスできないエリアである。このプロテクテッドエリア部４２は、平文のコンテンツ鍵を格納するコンテンツ鍵格納部４２ａを有している。
【００６１】
さらに、コントローラ部４３は、命令種別判別部４３ａ、アクセス制御部４３ｂ、カード認証処理部４３ｃ、認証用鍵格納部４３ｄ及び鍵暗号化部４３ｅ等を備えている。このうち、命令種別判別部４３ａは、外部機器（この場合、第２プロセッサ部１５のデータアクセス部３３）から供給されるアクセス命令を判別し、ユーザエリア部４１に対するアクセスであればそのまま許可し、プロテクテッドエリア部４２に対するアクセスであれば、相互認証処理を実行させるように機能する。
【００６２】
また、カード認証処理部４３ｃは、認証用鍵格納部４３ｄに格納された認証用の公開鍵と秘密鍵とを用いて、第２プロセッサ部１５経由で第１プロセッサ部１４との相互認証を行なっており、アクセス制御部４３ｂは、認証が成功した場合にのみプロテクテッドエリア部４２へのアクセスを許可している。
【００６３】
認証が成功し、プロテクテッドエリア部４２へのアクセスが許可された場合、鍵暗号化部４３ｅは、プロテクテッドエリア部４２のコンテンツ鍵格納部４２ａからコンテンツ鍵を読み出し、そのコンテンツ鍵を認証処理によって生成され、第１プロセッサ部１４とカード認証処理部４３ｃとが共有した鍵（セッション鍵）を用いて暗号化する。そして、この暗号化コンテンツ鍵は、第２プロセッサ部１５の鍵取得部３４に出力され取得される。
【００６４】
図１０及び図１１は、第１プロセッサ部１４が、データ記憶部１６のユーザエリア部４１に格納されている暗号化コンテンツを、データ記憶部１６のコンテンツ鍵格納部４２ａに格納されているコンテンツ鍵で復号する処理動作の一例をまとめたフローチャートを示している。
【００６５】
この処理は、第１プロセッサ部１４がノンセキュアモードにある状態で、ユーザが所望のコンテンツを選択することにより開始（ステップＳ１０ａ）される。このコンテンツの選択は、例えば第１プロセッサ部１４で動作するブラウザ上等で行なうことができる。ブラウザにセキュリティ上の脆弱性があったとしても、以下のように、認証処理はセキュアモードで行なうため、認証に用いる鍵の漏えいや認証処理の書き換え等が防止される。
【００６６】
コンテンツ鍵を計算する処理は、第１プロセッサ部１４がセキュアモードにある状態で実行する必要があるため、第１プロセッサ部１４のホスト認証開始処理部３９ｈは、ステップＳ１０ｂで、ブラウザ等のソフトウェアからデータ記憶部１６との認証処理の開始命令を受け、第１プロセッサ部１４の状態を切り替えるために、ステップＳ１０ｃで、状態切り替え命令実行部３９ｆを使って状態切り替え命令を実行する。このため、先に述べたように、第１プロセッサ部１４はこの命令を検出し、ステップＳ１０ｄで、セキュアモニタ部４０の状態切り替えハンドラ部４０ａに処理を遷移させ、ステップＳ１０ｅで、状態切り替えハンドラ部４０ａはセキュアモニタ部４０のプロセッサ状態切り替え部４０ｂを実行させる。
【００６７】
これにより、第１プロセッサ部１４は、セキュアモードに遷移し、このセキュアモードにおいて、セキュアＯＳ部３８はステップＳ１０ｆで、データ記憶部１６との認証処理を実行する。なお、この認証処理の詳細については、後述する。
【００６８】
そして、第１プロセッサ部１４のホスト認証処理部３８ａは、ステップＳ１０ｇで、認証が成功か否かを判別し、失敗であると判断された場合、以降、データ記憶部１６から暗号化コンテンツ鍵を取得する処理は行なわず、ステップＳ１０ｈで、状態切り替え命令実行部３８ｇを使って状態切り替え命令を実行し、ステップＳ１０ｉで、セキュアモニタ部４０の状態切り替えハンドラ部４０ａに処理を遷移させ、ステップＳ１０ｊで、状態切り替えハンドラ部４０ａはセキュアモニタ部４０のプロセッサ状態切り替え部４０ｂを実行させてノンセキュアモードに遷移した後、ステップＳ１０ｋでエラー処理を実行する。
【００６９】
また、上記ステップＳ１０ｇで認証が成功であると判断された場合、第１プロセッサ部１４は、ステップＳ１０ｌで、データ記憶部１６に暗号化コンテンツ鍵の取得要求を、第２プロセッサ部１５を介して送信する。そして、第１プロセッサ部１４は、ステップＳ１０ｍで、データ記憶部１６から送信される暗号化コンテンツ鍵を、第２プロセッサ部１５を介して取得する。
【００７０】
その後、第１プロセッサ部１４は、ステップＳ１０ｎで、認証処理によって生成されたセッション鍵を用いて暗号化コンテンツ鍵を復号し、平文のコンテンツ鍵を取得する。そして、第１プロセッサ部１４は、ステップＳ１１ａで、状態切り替え命令実行部３８ｇを使って状態切り替え命令を実行し、ステップＳ１１ｂで、セキュアモニタ部４０の状態切り替えハンドラ部４０ａに処理を遷移させ、ステップＳ１１ｃで、状態切り替えハンドラ部４０ａはセキュアモニタ部４０のプロセッサ状態切り替え部４０ｂを実行させてノンセキュアモードに遷移する。
【００７１】
このノンセキュアモードにおいて、第１プロセッサ部１４のデータ取得部３９ｇは、ステップＳ１１ｄで、データ記憶部１６のユーザエリア部４１に格納されている暗号化コンテンツを、第２プロセッサ部１５を介して取得し、ステップＳ１１ｅで、その取得した暗号化コンテンツをメモリ部１９の共有エリアに格納する。
【００７２】
その後、第１プロセッサ部１４は、ステップＳ１１ｆで、状態切り替え命令実行部３９ｆを使って状態切り替え命令を実行し、ステップＳ１１ｇで、セキュアモニタ部４０の状態切り替えハンドラ部４０ａに処理を遷移させ、ステップＳ１１ｈで、状態切り替えハンドラ部４０ａはセキュアモニタ部４０のプロセッサ状態切り替え部４０ｂを実行させてセキュアモードに遷移する。
【００７３】
このセキュアモードにおいて、第１プロセッサ部１４は、ステップＳ１１ｉで、メモリ部１９の共有エリアから暗号化コンテンツを取得し、ステップＳ１１ｊで、その取得した暗号化コンテンツを、先に復号したコンテンツ鍵を用いて復号し、ステップＳ１１ｋで、その復号したコンテンツについてのデコード依頼をデコード依頼部３８ｆに実行させる。デコーダ部２４は、このデコード依頼に基づき復号したコンテンツをデコード処理して第２プロセッサ部１５の映像処理部３２に出力する。
【００７４】
その後、第１プロセッサ部１４は、ステップＳ１１ｌで、状態切り替え命令実行部３８ｇを使って状態切り替え命令を実行し、ステップＳ１１ｍで、セキュアモニタ部４０の状態切り替えハンドラ部４０ａに処理を遷移させ、ステップＳ１１ｎで、状態切り替えハンドラ部４０ａはセキュアモニタ部４０のプロセッサ状態切り替え部４０ｂを実行させてノンセキュアモードに遷移する。
【００７５】
このノンセキュアモードにおいて、第１プロセッサ部１４は、ステップＳ１１ｏで、復号すべき暗号化コンテンツがまだ存在するか否かを判別し、存在すると判断された場合にステップＳ１１ｄの処理に移行し、存在しないと判断された場合に処理を終了（ステップＳ１１ｐ）する。
【００７６】
図１２は、第１プロセッサ部１４が暗号化コンテンツをコンテンツ鍵で復号する処理動作の他の例をまとめたフローチャートを示している。この例では、復号すべき暗号化コンテンツが上記コンテンツ配信サーバ２０から取得されることを想定している。
【００７７】
すなわち、図１０に示したステップＳ１０ｎで暗号化コンテンツ鍵が復号され、平文のコンテンツ鍵が取得された後、第１プロセッサ部１４は、ステップＳ１２ａで、状態切り替え命令実行部３８ｇを使って状態切り替え命令を実行し、ステップＳ１２ｂで、セキュアモニタ部４０の状態切り替えハンドラ部４０ａに処理を遷移させ、ステップＳ１２ｃで、状態切り替えハンドラ部４０ａはセキュアモニタ部４０のプロセッサ状態切り替え部４０ｂを実行させてノンセキュアモードに遷移する。
【００７８】
このノンセキュアモードにおいて、第１プロセッサ部１４は、ステップＳ１２ｄで、上記ネットワークインターフェース部１２を介してコンテンツ配信サーバ２０とコネクションを確立し、ステップＳ１２ｅで、コンテンツ配信サーバ２０から暗号化コンテンツを取得し、ステップＳ１２ｆで、その取得した暗号化コンテンツをメモリ部１９の共有エリアに格納する。
【００７９】
その後、第１プロセッサ部１４は、ステップＳ１２ｇで、状態切り替え命令実行部３９ｆを使って状態切り替え命令を実行し、ステップＳ１２ｈで、セキュアモニタ部４０の状態切り替えハンドラ部４０ａに処理を遷移させ、ステップＳ１２ｉで、状態切り替えハンドラ部４０ａはセキュアモニタ部４０のプロセッサ状態切り替え部４０ｂを実行させてセキュアモードに遷移する。
【００８０】
このセキュアモードにおいて、第１プロセッサ部１４は、ステップＳ１１２ｊで、メモリ部１９の共有エリアから暗号化コンテンツを取得し、ステップＳ１２ｋで、その取得した暗号化コンテンツを、先に復号したコンテンツ鍵を用いて復号し、ステップＳ１２ｌで、その復号したコンテンツについてのデコード依頼をデコード依頼部３８ｆに実行させる。デコーダ部２４は、このデコード依頼に基づき復号したコンテンツをデコード処理して第２プロセッサ部１５の映像処理部３２に出力する。
【００８１】
その後、第１プロセッサ部１４は、ステップＳ１２ｍで、状態切り替え命令実行部３８ｇを使って状態切り替え命令を実行し、ステップＳ１２ｎで、セキュアモニタ部４０の状態切り替えハンドラ部４０ａに処理を遷移させ、ステップＳ１２ｏで、状態切り替えハンドラ部４０ａはセキュアモニタ部４０のプロセッサ状態切り替え部４０ｂを実行させてノンセキュアモードに遷移する。
【００８２】
このノンセキュアモードにおいて、第１プロセッサ部１４は、ステップＳ１２ｐで、復号すべき暗号化コンテンツがまだ存在するか否かを判別し、存在すると判断された場合にステップＳ１２ｅの処理に移行し、存在しないと判断された場合に処理を終了（ステップＳ１２ｑ）する。
【００８３】
なお、上記では暗号化コンテンツの復号処理と、平文コンテンツのデコード処理とをセキュアモードで行なう場合について説明したが、コンテンツの復号処理のみセキュアモードで行ない、コンテンツのデコード処理はノンセキュアモードで行なうようにしても良い。図３３はその場合の処理動作の一例をまとめたフローチャートを示している。
【００８４】
ステップＳ３３ｂまでは、図１１のステップＳ１１ｊまでと同様の処理で良い。すなわち、暗号化コンテンツを復号すると、その復号した平文コンテンツをメモリ部１９の共有エリアに格納する（ステップＳ３３ｃ）。
【００８５】
その後、第１プロセッサ部１４は、ステップＳ３３ｄで、状態切り替え命令実行部３８ｇを使って状態切り替え命令を実行し、ステップＳ３３ｅで、セキュアモニタ部４０の状態切り替えハンドラ部４０ａに処理を遷移させ、ステップＳ３３ｆで、状態切り替えハンドラ部４０ａはセキュアモニタ部４０のプロセッサ状態切り替え部４０ｂを実行させてノンセキュアモードに遷移する。
【００８６】
このノンセキュアモードにおいて、第１プロセッサ部１４は、ステップＳ３３ｇで、メモリ部１９の共有エリアから平文コンテンツを取得し、ステップＳ３３ｈで、平文コンテンツについてのデコード依頼をデコード依頼部３８ｆに実行させる。デコーダ部２４は、このデコード依頼に基づき復号したコンテンツをデコード処理して第２プロセッサ部１５の映像処理部３２に出力する。
【００８７】
第１プロセッサ部１４は、ステップＳ３３ｉで、復号すべき暗号化コンテンツがまだ存在するか否かを判別し、存在すると判断された場合にステップＳ１１ｄの処理に移行し、存在しないと判断された場合に処理を終了（ステップＳ３３ｊ）する。
【００８８】
もちろん同様の処理を図１２に適用してもよい。
【００８９】
情報処理装置１１は、ネットワークまたは放送波またはストレージから入力された著作権の保護が不要な平文コンテンツをデコードする必要があることから、ノンセキュアＯＳ部３９はデコード依頼部３９ｅを備えている。この構成ではセキュアモードでデコード依頼処理を行なわないため、デコード依頼の処理をノンセキュアＯＳ部３９に統一することができる。これにより、セキュアＯＳ部３８のデコード依頼部３８ｆは不要となり、セキュアＯＳ部３８の構成を簡単にすることができる。
【００９０】
図１３及び図１４は、第１プロセッサ部１４がデータ記憶部１６と認証を行ない、データ記憶部１６のプロテクテッドエリア部４２に格納されたコンテンツ鍵を取得する処理動作の一例をまとめたフローチャートを示している。
【００９１】
すなわち、この処理動作は、第１プロセッサ部１４が、ステップＳ１３ａで、第２プロセッサ部１５に認証を要求することで開始される。認証要求に対する応答として、第２プロセッサ部から要求受付応答が返ってくると、第１プロセッサ部１４は、ステップＳ１３ｂで、ホスト認証処理部２８がホスト鍵管理部２９に格納された認証用の公開鍵の読み込みを実行する。認証要求に対する応答として、エラー応答を受信すると、以降の処理は行なわない。
【００９２】
一方、第２プロセッサ部１５は、ステップＳ１３ｃで、プロセッサ状態管理部３６が取得した第１プロセッサ部１４の状態に基づいて、ステップＳ１３ｄで、第１プロセッサ部１４がセキュアモードであるかノンセキュアモードであるかを判別し、ノンセキュアモードであると判断された場合、つまり、第１プロセッサ部１４上でノンセキュアＯＳ部３９が動作している場合、ステップＳ１３ｅで、エラー処理（例えばデータ記憶部１６に対するセッションの切断等）を実行する。
【００９３】
また、上記ステップＳ１３ｄで第１プロセッサ部１４がセキュアモードであると判断された場合、つまり、第１プロセッサ部１４上でセキュアＯＳ部３８が動作している場合、第２プロセッサ部１５は、ステップＳ１３ｆで、データ記憶部１６に対して認証を要求する。すると、データ記憶部１６は、ステップＳ１３ｇで、カード認証処理部４３ｃが認証用鍵格納部４３ｄに格納された認証用の公開鍵の読み込みを実行する。
【００９４】
このため、第１プロセッサ部１４は、ステップＳ１３ｈで、データ記憶部１６は、ステップＳ１３ｉで、第２プロセッサ部１５を経由して相互認証を実行する。認証に用いるアルゴリズムとしては、ＲＳＡや楕円曲線暗号等のよく知られた公開鍵アルゴリズムが用いられる。そして、相互認証が成功すると、第１プロセッサ部１４は、ステップＳ１３ｊで、認証処理に基づいてセッション鍵を生成し、第２プロセッサ部１５は、ステップＳ１３ｋで、認証処理に基づいてセッション鍵を生成する。
【００９５】
その後、第２プロセッサ部１５は、ステップＳ１３ｌで、プロテクテッドエリア部４２のコンテンツ鍵格納部４２ａから平文のコンテンツ鍵を読み出し、ステップＳ１４ａで、平文コンテンツ鍵をセッション鍵で暗号化し、ステップＳ１４ｂで、暗号化されたコンテンツ鍵を第２プロセッサ部１５に送信する。この第２プロセッサ部１５に送信された暗号化コンテンツ鍵は、鍵取得部３４に取得される。
【００９６】
すると、第２プロセッサ部１５は、ステップＳ１４ｃで、プロセッサ状態管理部３６が取得した第１プロセッサ部１４の状態に基づいて、ステップＳ１４ｄで、第１プロセッサ部１４がセキュアモードであるかノンセキュアモードであるかを判別し、ノンセキュアモードであると判断された場合、つまり、第１プロセッサ部１４上でノンセキュアＯＳ部３９が動作している場合、ステップＳ１４ｅで、エラー処理（例えばデータ記憶部１６に対するセッションの切断等）を実行する。
【００９７】
また、上記ステップＳ１４ｄで第１プロセッサ部１４がセキュアモードであると判断された場合、つまり、第１プロセッサ部１４上でセキュアＯＳ部３８が動作している場合、第２プロセッサ部１５は、ステップＳ１４ｆで、鍵取得部３４に取得された暗号化コンテンツ鍵を、鍵送信部３５を介して第１プロセッサ部１４に送信する。
【００９８】
すると、第１プロセッサ部１４は、ステップＳ１４ｇで、第２プロセッサ部１５から供給された暗号化コンテンツ鍵を鍵受信部２６で受信し、ステップＳ１４ｈで、鍵計算処理部２７により暗号化コンテンツ鍵をセッション鍵で復号する。これにより、第１プロセッサ部１４が、データ記憶部１６のプロテクテッドエリア部４２に格納されたコンテンツ鍵を取得することができる。
【００９９】
なお、上述の例では、第２プロセッサ部１５が第１プロセッサ部１４から認証要求を受信したときと、第１プロセッサ部１４に暗号化コンテンツ鍵を送信するときに、第１プロセッサ部１４の状態を確認する処理を行なっているが、第２プロセッサ部１５は第１プロセッサ部１４の状態を常に監視しており、第１プロセッサ部１４のプロセッサ状態通知部３１の出力する信号がノンセキュアモードとなった場合、つまり、第１プロセッサ部１４のプロセッサの状態がノンセキュアモードであると第２プロセッサ部１５のプロセッサ状態管理部３６が検出した場合に、以降の認証処理と暗号化コンテンツ鍵を送信する処理を中断するように構成しても良い。
【０１００】
上記した第１の実施の形態によれば、第１プロセッサ部１４とデータ記憶部１６との間のデータ伝送が、第２プロセッサ部１５を経由して行なわれるようにし、第２プロセッサ部１５により、第１プロセッサ部１４がセキュアモードであるときにのみ、第１プロセッサ部１４がデータ記憶部１６のプロテクテッドエリア部４２にアクセスすることが許可されるようにしている。つまり、データ記憶部１６のプロテクテッドエリア部４２にアクセスすることが許可されるソフトウェアは、セキュアＯＳ部３８乃至セキュアＯＳ部３８の上で動作するアプリケーションに限定することができ、ノンセキュアＯＳ部３９乃至ノンセキュアＯＳ部３９の上で動作するアプリケーションがプロテクテッドエリア部４２にアクセスすることを禁止できる。これにより、データ記憶部１６のプロテクテッドエリア部４２に格納されたコンテンツ鍵が信頼できないソフトウェアに取得されることを防止し、ひいては、コンテンツの不正取得を防止することができるようになる。
【０１０１】
また、第１プロセッサ部１４の鍵計算処理部２７では、コンテンツ鍵という秘密情報を取り扱うだけでなく、ＭＡＣ（message authentication code）等の検証処理、つまり、秘密情報は扱わないが、処理のスキップ等の改ざんされてはいけない処理も含まれるが、このＭＡＣ検証処理はセキュアモード、つまり、セキュアＯＳ部３８上で処理が行なわれる。上述のようにセキュアＯＳ部３８とノンセキュアＯＳ部３９のメモリエリアはメモリ制御部１８によって分離されており、仮にノンセキュアＯＳ部３９のアプリケーションまたはＯＳ自体に脆弱性が存在して任意の処理が実行可能になったり任意のメモリエリアにアクセスされてしまったとしても、セキュアＯＳ部３８が管理するメモリエリアにアクセスすることは禁止されているため、ＭＡＣ検証処理をスキップされたり、ＭＡＣの計算結果を改ざんしたりされることはなく、十分に保護することができる。
【０１０２】
さらに、第２プロセッサ部１５は、第１プロセッサ部１４が認証を要求したときだけでなく、暗号化コンテンツ鍵を第１プロセッサ１４に送信する際にも、第１プロセッサ部１４がセキュアモードであることを確認している。これにより、コンテンツ鍵がノンセキュアＯＳ部３９またはノンセキュアＯＳ部３９上で動作するアプリケーションに不正に取得されることを防止することができる。
【０１０３】
図１５は、上記第２プロセッサ部１５の変形例を示している。図１５において、図２と同一部分には同一符号を付して説明すると、データアクセス判断部４４が新たに追加された点が、図２と異なっている。このデータアクセス判断部４４は、プロセッサ状態管理部３６が受信したプロセッサ状態通知部３１からの通知により、第１プロセッサ部１４がセキュアモードであるかノンセキュアモードであるかを判別し、ノンセキュアモードであるときのみ、データアクセス部３３に対して、データ記憶部１６のユーザエリア部４１からの暗号化コンテンツの取得を許可している。
【０１０４】
図１６は、第１プロセッサ部１４がデータ記憶部１６のユーザエリア部４１に格納された暗号化コンテンツを取得する処理動作の一例をまとめたフローチャートを示している。すなわち、この処理動作は、第１プロセッサ部１４が、ステップＳ１６ａで、第２プロセッサ部１５に暗号化コンテンツの取得を要求することで開始される。
【０１０５】
すると、第２プロセッサ部１５は、ステップＳ１６ｂで、プロセッサ状態管理部３６が取得した第１プロセッサ部１４の状態に基づいて、ステップＳ１６ｃで、第１プロセッサ部１４がセキュアモードであるかノンセキュアモードであるかを判別し、セキュアモードであると判断された場合、ステップＳ１６ｄで、エラー処理（例えばデータ記憶部１６からのデータ転送拒否等）を実行する。
【０１０６】
また、上記ステップＳ１６ｃで第１プロセッサ部１４がノンセキュアモードであると判断された場合、第２プロセッサ部１５は、ステップＳ１６ｅで、データ記憶部１６に対して暗号化コンテンツの取得を要求する。すると、データ記憶部１６は、ステップＳ１６ｆで、ユーザエリア部４１から暗号化コンテンツを読み出し、ステップＳ１６ｇで、暗号化コンテンツを第２プロセッサ部１５に送信する。この第２プロセッサ部１５に送信された暗号化コンテンツは、データアクセス部３３に取得される。
【０１０７】
そして、第２プロセッサ部１５は、ステップＳ１６ｈで、暗号化コンテンツを第１プロセッサ１４に送信する。これにより、第１プロセッサ部１４が、データ記憶部１６のユーザエリア部４１に格納された暗号化コンテンツを取得することができる。
【０１０８】
すなわち、第２プロセッサ部１５は、第１プロセッサ部１４がノンセキュアモードであるときにのみ、データ記憶部１６のユーザエリア部４１にアクセスして暗号化コンテンツを取得し、第１プロセッサ部１４に送信することを許可している。これにより、第１プロセッサ部１４が行なう全ての処理をセキュアＯＳ部３８で構築することを防止することができる。
【０１０９】
つまり、第１プロセッサ部１４が行なう全ての処理をセキュアＯＳ部３８で構築してしまうと、ソフトウェアのサイズが大きくなり、それに伴い脆弱性も増える危険性がある。このため、本来、秘密情報を扱わない処理や、改ざんの検証を行なう必要がない処理等については、ノンセキュアＯＳ部３９で構築することにより、セキュアＯＳ部３８で処理するソフトウェアサイズの増大や脆弱性の増加を防ぐことができる。
【０１１０】
一方、ノンセキュアＯＳ部３９では、ネットワーク通信処理、ブラウザ処理、データ取得処理等のノンセキュアＯＳ部３９が行なう処理以外の処理を構築するためソフトウェアのサイズが大きくなり、それに伴ない脆弱性も増える危険性がある。しかし、仮にノンセキュアＯＳ部３９またはノンセキュアＯＳ部３９上で処理されるアプリケーションに脆弱性が存在し、任意の処理が実行可能になったり任意のメモリエリアにアクセスされてしまったりしたとしても、セキュアＯＳ部３８が扱うデータや処理を改変することができないため、安全にシステムを構築することができる。
【０１１１】
また、暗号化コンテンツを取得するために、第１プロセッサ部１４をノンセキュアモードで動作させる必要性を持たせることにより、第１プロセッサ部１４の動作用ソフトウェアが、第１プロセッサ部１４をセキュアモードで動作させる部分とノンセキュアモード動作させる部分とに分離して記述されていることの確認を、暗号化コンテンツ鍵を送信する第２プロセッサ部１５が容易に行なうことができる。
【０１１２】
なお、第２プロセッサ部１５が、データ記憶部１６のユーザエリア部４１のうち、暗号化コンテンツが格納されているエリアと、それ以外のコンテンツが格納されているエリアとを把握しておき、暗号化コンテンツの取得要求があったときのみ、第１プロセッサ部１４がノンセキュアモードであるか否かを判別するようにしても良いものである。
【０１１３】
図１７は、上記メモリ部１９のメモリエリアを区分けした他の例を示している。すなわち、メモリ部１９のメモリエリアには、セキュアエリアと共有エリア１と共有エリア２とノンセキュアエリアとが設定される。
【０１１４】
そして、セキュアエリアには、セキュアＯＳ実行コード、セキュアＯＳデータ及びメモリエリア設定レジスタ等が格納される。また、共有エリア１には、暗号化コンテンツが格納され、共有エリア２には、映像処理部３２へのメモリマップがなされる。さらに、ノンセキュアエリアには、ノンセキュアＯＳ実行コード及びノンセキュアＯＳデータ等が格納される。なお、映像処理部３２へのメモリマップとは、デコーダ部２４から映像処理部３２にベースバンドの映像信号を伝送する際、高速にデータが伝送できるように映像処理部３２への入力をメモリとして見せ、そのメモリにベースバンド映像信号を張り付ける（writeする）際のメモリマップである。
【０１１５】
図１８は、図１７に示したメモリ部１９の各メモリエリアに対するアクセスの可否を示している。すなわち、第１プロセッサ部１４は、セキュアモードにある場合、メモリ部１９のセキュアエリア、共有エリア１，２及びノンセキュアエリアに全てアクセスが可能である。
【０１１６】
また、第１プロセッサ部１４は、ノンセキュアモードにある場合、メモリ部１９のセキュアエリア及び共有エリア２に対する読み出し（read）のアクセスが不可であり、共有エリア１及びノンセキュアエリアに対する読み出しのアクセスが可能である。
【０１１７】
さらに、第１プロセッサ部１４は、ノンセキュアモードにある場合、メモリ部１９のセキュアエリアに対する書き込み（write）のアクセスが不可であり、共有エリア１，２及びノンセキュアエリアに対する書き込みのアクセスが可能である。
【０１１８】
共有エリア１については、読み出し及び書き込みの両方のアクセスを許可している。すなわち、ノンセキュアモードで取得した暗号化コンテンツをメモリ部１９の共有エリア１に格納するため、書き込みのアクセスは必須であり、暗号化コンテンツなので読まれても問題ないので読み出しも許可している。
【０１１９】
一方、共有エリア２については、ノンセキュアモードにおいて、書き込みのアクセスを許可し、読み出しのアクセスを不可としている。すなわち、デコード処理後のベースバンドの映像信号が映像処理部３２に書かれ、また、平文で取得したコンテンツがノンセキュアモードでデコードされて映像処理部３２に書かれることもあるため、ノンセキュアモードでの書き込みのアクセスは許可される必要がある。しかしながら、暗号化された保護対象のコンテンツがノンセキュアモードで復号されデコードされて映像処理部３２に書かれた場合、セキュアモードで書かれたコンテンツはもともと暗号化されていて保護対象のコンテンツであったため、ノンセキュアモードで読まれてしまうと問題であるため、ノンセキュアモードでの読み出しのアクセスは禁止している。
【０１２０】
次に、第２の実施の形態について説明する。図１９は、第２の実施の形態で説明する情報処理装置１１の信号処理系を概略的に示している。図１９において、図１と同一部分には同一符号を付して説明すると、第１プログラム格納部４５及び第２プログラム格納部４６等が新たに追加された点が、図１と異なっている。
【０１２１】
このうち、第１プログラム格納部４５は、第１プロセッサ部１４に対するブート時のプログラム（ブートローダ）を格納しており、例えばflashメモリまたはＲＯＭ（read only memory）等が想定される。また、第２プログラム格納部４６は、第１プロセッサ部１４で実行するノンセキュアＯＳ部３９と、このノンセキュアＯＳ部３９上で実行するプログラムを格納しており、例えばflashメモリ等が想定される。第１プログラム格納部４５に格納されている第１プログラム（ブートローダ）には、第１プログラムのハッシュ値に対して秘密鍵で署名された証明書が添付されている。第２プログラム格納部４６に格納されている第２プログラム（ノンセキュアＯＳ部３９）も同様に、第２プログラムのハッシュ値に対して秘密鍵で署名された証明書が添付されている。第１プログラムと第２プログラムの署名計算に用いる秘密鍵は同じものであっても良いし、異なるものであっても良い。以下は異なるものとして説明する。ハッシュ値のアルゴリズムとしては、ＭＤ５やＳＨＡ１等のよく知られたハッシュアルゴリズムが用いられる。署名アルゴリズムとしては、ＲＳＡや楕円曲線暗号等のよく知られた公開鍵アルゴリズムが用いられる。
【０１２２】
図２０は、第１プロセッサ部１４の一例を示している。図２０において、図２と同一部分には同一符号を付して説明すると、プログラム検証部４７、検証部用鍵管理部４８及びプログラム実行部４９等が新たに追加された点が、図２と異なっている。
【０１２３】
このうち、プログラム検証部４７は、検証部用鍵管理部４８に格納された検証鍵を用いて、第１プログラム格納部４５からロードした第１プログラム（ブートローダ）が改ざんされていないかを検査するために検証処理を行なう。そして、プログラム実行部４９は、検証の成功した第１プログラムを実行する。このとき、第１プログラムによって、第２プログラム格納部４６から第２プログラムがロードされる。そして、プログラム検証部４７は、検証の成功した第１プログラムに含まれる検証鍵を用いて、第２プログラム格納部４６からロードした第２プログラムが改ざんされていないかを検査するために検証処理を行なう。その後、プログラム実行部４９は、検証の成功した第２プログラムを実行する。
【０１２４】
図２１は、第１プロセッサ部１４が第１及び第２プログラム格納部４５，４６から第１及び第２プログラムをロードし検証して実行する処理動作の一例をまとめたフローチャートを示している。すなわち、起動（ステップＳ２１ａ）されると、第１プロセッサ部１４は、ステップＳ２１ｂで、第１プログラム格納部４５から第１プログラムをロードする。
【０１２５】
その後、第１プロセッサ部１４は、ステップＳ２１ｃで、検証部用鍵管理部４８に格納された検証鍵（公開鍵）をロードする。そして、第１プロセッサ部１４は、ステップＳ２１ｄで、第１プログラムを検証鍵で検証した後、ステップＳ２１ｅで、検証処理が成功であるか否かを判別し、失敗であると判断された場合、ステップＳ２１ｆで、エラー処理を実行する。具体的には、第１プログラムのハッシュ値を計算し、第１プログラムに添付された証明書に含まれるハッシュ値と、計算したハッシュ値とが一致するか否かと、証明書に含まれる署名を検証鍵で正しく検証できるかを確認する。この確認が成功した場合に検証成功とみなす。
【０１２６】
なお、ここでは第１プログラムに証明書が添付されている例を示したが、第１プログラム格納部４５がＲＯＭで構成されており、第１プログラムの内容が物理的に上書き不可能な場合には、第１プログラムの内容が不正に改変される恐れはないため、第１プロセッサ部１４は、第１プログラムの検証処理を行なう必要はなく、第１プログラムに証明書を添付する必要もない。もちろん、第１プログラムの内容を誤ってＲＯＭに書き込んでしまった場合に備えて、第１プログラムのハッシュ値を第１プログラムに添付し、ブート時にハッシュ値が一致するかの検査処理を行なっても良い。
【０１２７】
また、上記ステップＳ２１ｅで検証処理が成功であると判断された場合、第１プロセッサ部１４は、ステップＳ２１ｇで、第１プログラムを実行し、ステップＳ２１ｈで、第１プログラムに基づいて第２プログラム格納部４６から第２プログラムをロードする。
【０１２８】
そして、第１プロセッサ部１４は、ステップＳ２１ｉで、第２プログラムを第１プログラムに含まれる検証鍵（公開鍵）で検証した後、ステップＳ２１ｊで、検証処理が成功であるか否かを判別し、失敗であると判断された場合、ステップＳ２１ｆで、エラー処理を実行し、成功であると判断された場合、ステップＳ２１ｋで、第２プログラムを実行する。なお、第２プログラムを検証するための検証鍵は、第１プログラムに含ませるだけでなく、検証部用鍵管理部４８に格納してあっても良いことはもちろんである。
【０１２９】
さて、上記構成は第１プログラム格納部４５にブートローダが格納されており、第２プログラム格納部４６に第１プロセッサ部１４で実行するノンセキュアＯＳ部３９と、このノンセキュアＯＳ部３９で実行するプログラムが格納されている場合の構成を示した。以下の説明は、第１プログラム格納部４５にブートローダを含むセキュアモニタ部４０が格納されており、第２プログラム格納部４６に第１プロセッサ部１４で実行するノンセキュアＯＳ部３９と、このノンセキュアＯＳ部３９で実行するプログラムが格納されており、データ記憶部１６にセキュアＯＳ部３８と、このセキュアＯＳ部３８で実行するプログラムが格納されており、ブートローダ、モニタプログラム、セキュアＯＳ部３８、ノンセキュアＯＳ部３９の順でブートする場合について説明する。
【０１３０】
図２２は、データ記憶部１６の一例を示している。図２２において、図９と同一部分には同一符号を付して説明すると、ユーザエリア部４１に暗号化コンテンツ４１ａ、平文コンテンツ４１ｂ及び上記セキュアＯＳ部３８を暗号化した暗号化セキュアＯＳ４１ｃ等が格納されており、プロテクテッドエリア部４２に暗号化セキュアＯＳ４１ｃを復号するためのセキュアＯＳ復号鍵が格納されたセキュアＯＳ復号鍵格納部４２ｂを有している点が、図９と異なっている。
【０１３１】
図２３は、上記第１プロセッサ部１４を動作させるためのソフトウェアの一例を示している。図２３において、図３と同一部分には同一符号を付して説明すると、セキュアモニタ部４０に、データ記憶部１６との認証処理を行なうためのホスト認証処理部４０ｄ、データ記憶部１６との認証処理に必要な鍵を格納するためのホスト鍵取得部４０ｅ、上記プムグラム検証部４７の処理を行なうためのプログラム検証処理部４０ｆを有している点が、図３と異なっている。
【０１３２】
なお、上記メモリ部１９のメモリエリアの区分けについては、先に図４に示した通りであり、メモリ部１９の各メモリエリアに対するアクセスの可否についても、先に図５に示した通りである。
【０１３３】
図２４及び図２５は、第１プロセッサ部１４のセキュアＯＳを含む上記ブート時における処理動作の一例をまとめたフローチャートを示している。
【０１３４】
すなわち、第１プロセッサ部１４は、起動（ステップＳ２４ａ）されると、ステップＳ２４ｂで、第１プログラム格納部４５からセキュアモニタ部４０をロードし、ステップＳ２４ｃで、検証部用鍵管理部４８に格納された検証鍵をロードする。そして、第１プロセッサ部１４は、ステップＳ２４ｄで、セキュアモニタ部４０を検証鍵で検証した後、ステップＳ２４ｅで、検証処理が成功であるか否かを判別し、失敗であると判断された場合、ステップＳ２４ｆで、エラー処理を実行する。
【０１３５】
また、上記ステップＳ２４ｅで検証処理が成功であると判断された場合、第１プロセッサ部１４は、ステップＳ２４ｇで、セキュアモニタ部４０の処理を実行し、ステップＳ２４ｈで、メモリエリア設定部４０ｃによりメモリ部１９に対するメモリエリアの区分け処理や、メモリエリアに対するアクセス制御を設定する。
【０１３６】
そして、第１プロセッサ部１４は、ステップＳ２４ｉで、ホスト認証処理部４０ｄによりホスト鍵取得部４０ｅに格納された鍵を用いて、データ記憶部１６との認証処理を実行し、ステップＳ２４ｊで、認証処理が成功であるか否かを判別し、失敗であると判断された場合、ステップＳ２４ｋで、エラー処理を実行する。
【０１３７】
また、上記ステップＳ２４ｊで認証処理が成功であると判断された場合、第１プロセッサ部１４は、ステップＳ２５ａで、データ記憶部１６に対してセキュアＯＳ復号鍵の取得を要求して、ステップＳ２５ｂで、データ記憶部１６からセキュアＯＳ復号鍵を受信する。そして、第１プロセッサ部１４は、ステップＳ２５ｃで、データ記憶部１６から暗号化セキュアＯＳ４１ｃを取得し、ステップＳ２５ｄで、暗号化セキュアＯＳ４１ｃをセキュアＯＳ復号鍵で復号してセキュアＯＳ部３８を生成する。
【０１３８】
その後、第１プロセッサ部１４は、ステップＳ２５ｅで、セキュアＯＳ部３８をロードし、ステップＳ２５ｆで、セキュアＯＳ部３８を起動させる。そして、第１プロセッサ部１４は、ステップＳ２５ｇで、セキュアＯＳ部３８上の必要なアプリケーションをロードし、ステップＳ２５ｈで、そのアプリケーションを起動させる。これにより、第１プロセッサ部１４は、必要な処理をセキュアモードで実行することができる。このステップＳ２５ｇ及びＳ２５ｈの処理は、必要なアプリケーションの起動が完了し、ノンセキュアモードへの状態切り替え命令を実行するまで繰り返し実行される。
【０１３９】
そして、第１プロセッサ部１４で動作するセキュアＯＳ部３８の状態切り替え命令実行部３８ｇは、ステップＳ２５ｉで、状態切り替え命令を実行する。状態切り替え命令が実行されると、第１プロセッサ部１４はこの命令を検出し、セキュアモニタ部４０の状態切り替えハンドラ部４０ａに処理を遷移させ（ステップＳ２５ｊ）、ステップＳ２５ｋで、状態切り替えハンドラ部４０ａはセキュアモニタ部４０のプロセッサ状態切り替え部４０ｂを実行させる。これにより、第１プロセッサ部１４は、セキュアモードからノンセキュアモードに状態が変化する。ステップＳ２５ｌで、第２プログラム格納部４６からノンセキュアＯＳ部３９をロードし、ステップＳ２５ｍで、ノンセキュアＯＳ部３９を起動させる。
【０１４０】
その後、第１プロセッサ部１４は、ステップＳ２５ｎで、ノンセキュアＯＳ部３９上の必要なアプリケーションをロードし、ステップＳ２５ｏで、そのアプリケーションを起動させる。これにより、第１プロセッサ部１４は、必要な処理をノンセキュアモードで実行することができる。暗号化コンテンツの復号処理等の、秘密情報を扱ったり処理のスキップの改ざんを防止したりするような処理を行なう際に、ノンセキュアＯＳ部３９の状態切り替え命令実行部３９ｆがセキュアモードへの状態切り替え命令を実行するまで、このステップＳ２５ｎ及びＳ２５ｏの処理は繰り返し実行される。
【０１４１】
なお、セキュアＯＳ部３８は、その内容全てが暗号化されている必要はなく、一部分のみ暗号化されており、残りの部分は平文となっていても良い。その場合、暗号化されている部分に対してのみ、ステップＳ２５ｄの処理を行なう。セキュアＯＳ部３８を部分的に暗号化することにより、復号に要する時間を削減することができるため、結果として、セキュアＯＳ部３８のロードに要する時間を削減することができる。
【０１４２】
また、上述の例では、セキュアＯＳ部３８が暗号化されており、セキュアＯＳ復号鍵を使ってセキュアＯＳ部３８を復号し、正しく復号できたことをもってセキュアＯＳ部３８の検証が完了するとしていた。それ以外の方法として、さらに、暗号化した状態でのセキュアＯＳ部３８または平文のセキュアＯＳ部３８のハッシュ値に対して秘密鍵で署名された証明書を添付してユーザエリア部４１に格納し、ステップＳ２５ｃで証明書を検証することで、セキュアＯＳ部３８の検証を行なっても良い。さらに、それ以外の方法として、平文のセキュアＯＳ部３８のハッシュ値に対して秘密鍵で署名された証明書を添付してユーザエリア部４１に格納し、ステップＳ２５ｃでセキュアＯＳを取得する際に、そのハッシュ値を検証し、証明書に格納されているハッシュ値と計算したハッシュ値が一致するか否かと、証明書に含まれる署名を検証鍵で正しく検証できるか否かとを確認する。この確認が成功した場合に検証成功とみなすようにしても良い。
【０１４３】
図２６及び図２７は、第１プロセッサ部１４がデータ記憶部１６と認証を行ない、データ記憶部１６のプロテクテッドエリア部４２に格納されたセキュアＯＳ復号鍵を取得する処理動作の一例をまとめたフローチャートを示している。
【０１４４】
すなわち、この処理動作は、第１プロセッサ部１４が、ステップＳ２６ａで、第２プロセッサ部１５に認証を要求することで開始される。認証要求に対する応答として、第２プロセッサ部から要求受付応答が返ってくると、第１プロセッサ部１４は、ステップＳ２６ｂで、ホスト認証処理部２８がホスト鍵管理部２９に格納された認証用の公開鍵の読み込みを実行する。認証要求に対する応答として、エラー応答を受信すると、以降の処理は行なわない。
【０１４５】
一方、第２プロセッサ部１５は、ステップＳ２６ｃで、プロセッサ状態管理部３６が取得した第１プロセッサ部１４の状態に基づいて、ステップＳ２６ｄで、第１プロセッサ部１４がセキュアモードであるかノンセキュアモードであるかを判別し、ノンセキュアモードであると判断された場合、つまり、第１プロセッサ部１４上でノンセキュアＯＳ部３９が動作している場合、ステップＳ２６ｅで、エラー処理（例えばデータ記憶部１６に対するセッションの切断等）を実行する。
【０１４６】
また、上記ステップＳ２６ｄで第１プロセッサ部１４がセキュアモードであると判断された場合、つまり、第１プロセッサ部１４上でセキュアＯＳ部３８が動作している場合、第２プロセッサ部１５は、ステップＳ２６ｆで、データ記憶部１６に対して認証を要求する。すると、データ記憶部１６は、ステップＳ２６ｇで、カード認証処理部４３ｃが認証用鍵格納部４３ｄに格納された認証用の公開鍵の読み込みを実行する。
【０１４７】
このため、第１プロセッサ部１４は、ステップＳ２６ｈで、データ記憶部１６は、ステップＳ２６ｉで、第２プロセッサ部１５を経由して相互認証を実行する。認証に用いるアルゴリズムとしては、ＲＳＡや楕円曲線暗号等のよく知られた公開鍵アルゴリズムが用いられる。そして、相互認証が成功すると、第１プロセッサ部１４は、ステップＳ２６ｊで、認証処理に基づいてセッション鍵を生成し、第２プロセッサ部１５は、ステップＳ２６ｋで、認証処理に基づいてセッション鍵を生成する。
【０１４８】
その後、第２プロセッサ部１５は、ステップＳ２６ｌで、プロテクテッドエリア部４２のセキュアＯＳ復号鍵格納部４２ｂから平文のセキュアＯＳ復号鍵を読み出し、ステップＳ２７ａで、平文セキュアＯＳ復号鍵をセッション鍵で暗号化し、ステップＳ２７ｂで、暗号化されたセキュアＯＳ復号鍵を第２プロセッサ部１５に送信する。この第２プロセッサ部１５に送信された暗号化セキュアＯＳ復号鍵は、鍵取得部３４に取得される。
【０１４９】
すると、第２プロセッサ部１５は、ステップＳ２７ｃで、プロセッサ状態管理部３６が取得した第１プロセッサ部１４の状態に基づいて、ステップＳ２７ｄで、第１プロセッサ部１４がセキュアモードであるかノンセキュアモードであるかを判別し、ノンセキュアモードであると判断された場合、つまり、第１プロセッサ部１４上でノンセキュアＯＳ部３９が動作している場合、ステップＳ２７ｅで、エラー処理（例えばデータ記憶部１６に対するセッションの切断等）を実行する。
【０１５０】
また、上記ステップＳ２７ｄで第１プロセッサ部１４がセキュアモードであると判断された場合、つまり、第１プロセッサ部１４上でセキュアＯＳ部３８が動作している場合、第２プロセッサ部１５は、ステップＳ２７ｆで、鍵取得部３４に取得された暗号化セキュアＯＳ復号鍵を、鍵送信部３５を介して第１プロセッサ部１４に送信する。
【０１５１】
すると、第１プロセッサ部１４は、ステップＳ２７ｇで、第２プロセッサ部１５から供給された暗号化セキュアＯＳ復号鍵を鍵受信部２６で受信し、ステップＳ２７ｈで、鍵計算処理部２７により暗号化セキュアＯＳ復号鍵をセッション鍵で復号する。これにより、第１プロセッサ部１４が、データ記憶部１６のプロテクテッドエリア部４２に格納されたセキュアＯＳ復号鍵を取得することができる。
【０１５２】
なお、上述の例では第２プロセッサ部１５が第１プロセッサ部１４から認証要求を受信したときと、第１プロセッサ部１４に暗号化コンテンツ鍵を送信するときに、第１プロセッサ部１４の状態を確認する処理を行なっているが、第２プロセッサ部１５は第１プロセッサ部１４の状態を常に監視しており、第１プロセッサ部１４のプロセッサ状態通知部３１の出力する信号がノンセキュアモードとなった場合、つまり、第１プロセッサ部１４のプロセッサの状態がノンセキュアモードであると第２プロセッサ部１５のプロセッサ状態管理部３６が検出した場合に、以降の認証処理と暗号化コンテンツ鍵を送信する処理とを中断するように構成しても良い。
【０１５３】
上記した第２の実施の形態によれば、第１プロセッサ部１４は、第１プログラム格納部４５に格納されたブートローダを含むセキュアモニタ部４０と、データ記憶部１６に格納されたセキュアＯＳ部３８とをそれぞれ検証してから実行するようにしたので、仮にセキュアＯＳ部３８が改ざんされたとしても、ブートの段階で改ざんを検出することができ、セキュアモードで不正なプログラムが実行されることを防止することができるようになり、検証済みのセキュアモードではセキュアＯＳ部３８のみ実行することが実現できる。その結果として、データ記憶部１６に格納された暗号化コンテンツが不正に取得されることをより一層防止することができるようになる。
【０１５４】
また、セキュアＯＳ復号鍵をデータ記憶部１６のプロテクテッドエリア部４２に格納しておき、第１プロセッサ部１４では、セキュアモニタ部４０のホスト認証処理部４０ｄがデータ記憶部１６との相互認証を行なって、セキュアＯＳ復号鍵を取得し、暗号化セキュアＯＳを復号するようにしている。このため、セキュアＯＳ部３８の内容が外部に対して見えにくくなり、秘密情報の保護を行なうことができる。
【０１５５】
図２８は、第１プロセッサ部１４及び第２プロセッサ部１５の他の例を示している。図２８において、図２０と同一部分には同一符号を付して説明すると、第１プロセッサ部１４に認証処理部５０及び鍵管理部５１が新たに追加され、第２プロセッサ部１５に認証処理部５２及び鍵管理部５３が新たに追加された点が、図２０と異なっている。
【０１５６】
そして、第１プロセッサ部１４の認証処理部５０と第２プロセッサ部１５の認証処理部５２とは、それぞれ、鍵管理部５１，５３に格納された認証鍵を用いて、第１プロセッサ部１４と第２プロセッサ１５とに対してのプロセッサ相互認証を実行することにより、プロセッサ状態通知部３１からプロセッサ状態管理部３６に通知される内容の信頼性を高めるようにしている。
【０１５７】
図３４は、第１プロセッサ部１４と第２プロセッサ部１５とがプロセッサ相互認証を行なう処理動作の一例をまとめたフローチャートを示している。すなわち、この処理動作は、第１プロセッサ部１４が、ステップＳ３４ａで、第２プロセッサ部１５にプロセッサ相互認証を要求することで開始される。
【０１５８】
すると、第２プロセッサ部１５は、ステップＳ３４ｂで、プロセッサ認証処理を開始し、これにより、第１プロセッサ部１４は、ステップＳ３４ｃで、第２プロセッサ部１５は、ステップＳ３４ｄで、プロセッサ相互認証を実行する。第２プロセッサ部１５の認証処理部５２はプロセッサ相互認証の成否の結果を記憶しておく。
【０１５９】
その後、第２プロセッサ部１５は、ステップＳ３４ｅで、第１プロセッサ部１４からデータ記憶部１６に対するホスト認証要求を受信する。このとき、第２プロセッサ部１５の認証処理部５２はプロセッサ相互認証が成功しているか否かを判別し（ステップＳ３４ｆ）、成功していれば、第１プロセッサ部１４の状態を取得し（ステップＳ３４ｈ）、失敗していればステップＳ３４ｇでエラー処理（例えばデータ記憶部１６に対するセッションの切断や認証要求に対する応答として、エラー応答を送信等）を行なう。
【０１６０】
その後の処理はステップＳ１３ｃと同等である。すなわち、認証処理部５２は、プロセッサ相互認証が成功しているか否かを判別し、成功している場合に限りデータ記憶部１６のプロテクテッドエリア部４２にアクセスすることを許可する処理を行なう。
【０１６１】
第２プロセッサ部１５と相互認証が失敗する場合、つまり、第１プロセッサ部１４の鍵管理部５１に正当な鍵を有していない場合、第１プロセッサ部１４は、データ記憶部１６と認証処理に成功せず、データ記憶部１６のプロテクテッドエリア部４２にアクセスすることができない。このため、第１プロセッサ部１４は、プロテクテッドエリア部４２に格納された暗号化コンテンツ鍵やセキュアＯＳ復号鍵を取得することができず、結果として暗号化コンテンツを復号することができない。すなわち、第２プロセッサ部１５は正当な鍵を持つ第１プロセッサ部１４にのみコンテンツの復号を許可することを実現できる。
【０１６２】
図２９は、図３４の変形例を示している。ステップＳ２９ｄまでは図３４と同等である。その後、第２プロセッサ部１５は、ステップＳ２９ｅで、プロセッサ状態管理部３６が第１プロセッサ部１４からの通知を受信して第１プロセッサ部１４の状態を取得し、ステップＳ２９ｆで、通知内容の検証を実行する。この通知内容の検証とは、例えば、プロセッサ相互認証によって共有した秘密の値をセッション鍵として、プロセッサ状態通知部３１が第１プロセッサ部１４の状態を暗号化して第２プロセッサ部１５に通知し、第２プロセッサ部１５が復号する手法と、プロセッサ相互認証によって共有した秘密の値をセッション鍵として、プロセッサ状態通知部３１が第１プロセッサ部１４の状態を示す値とともに、第１プロセッサ部１４の状態に対する鍵付きハッシュの値を計算し、第２プロセッサ部１５がその鍵付きハッシュの値を検証する手法とがあるが、どちらの手法でも良いものである。
【０１６３】
そして、第２プロセッサ部１５は、ステップＳ２９ｇで、第１プロセッサ部１４がセキュアモードであるかノンセキュアモードであるかを判別し、ノンセキュアモードであると判断された場合、ステップＳ２９ｈで、エラー処理（例えばデータ記憶部１６に対するセッションの切断等）を実行する。
【０１６４】
また、上記ステップＳ２９ｇで第１プロセッサ部１４がセキュアモードであると判断された場合、第２プロセッサ部１５は、ステップＳ２９ｉで、データ記憶部１６に対して認証を要求する。以後、第１プロセッサ部１４と第２プロセッサ部１５との間で相互認証が行なわれて、例えば図２６及び図２７で説明した処理が行なわれることになる。
【０１６５】
なお、第１プロセッサ部１４と第２プロセッサ１５との間でプロセッサ相互認証を行なって、プロセッサ状態通知部３１からプロセッサ状態管理部３６に通知される内容の信頼性を高めることは、図２に示した第１実施の形態において行なっても良いことは言うまでもないことである。
【０１６６】
図３０は、データ記憶部１６の他の例を示している。図２８において、図２２と同一部分には同一符号を付して説明すると、暗号化セキュアＯＳ４１ｃをユーザエリア部４１に格納せず、第２プログラム格納部４６に格納するようにした点が、図２２と異なる部分である。
【０１６７】
このようにすれば、先に、図１５及び図１６を用いて説明したように、第２プロセッサ部１５は、第１プロセッサ部１４がノンセキュアモードであるときにのみ、データ記憶部１６のユーザエリア部４１にアクセスすることが可能となり、これにより、第１プロセッサ部１４が行なう全ての処理をセキュアＯＳ部３８で構築することを防止することができる。
【０１６８】
第２プロセッサ部１５としては、図１５に示したように、プロセッサ状態管理部３６が受信した第１プロセッサ部１４の状態に基づいて、第１プロセッサ部１４がノンセキュアモードであるときにのみ、データアクセス部３３に対してデータ記憶部１６のユーザエリア部４１へのアクセスを許可するデータアクセス判断部４４を設ける構成となる。
【０１６９】
図３１及び図３２は、第１プロセッサ部１４のセキュアＯＳを含む上記ブート時における処理動作の他の例をまとめたフローチャートを示している。すなわち、図２４に示したステップＳ２４ｊで認証処理が成功であると判断された場合、第１プロセッサ部１４は、ステップＳ３１ａで、データ記憶部１６に対してセキュアＯＳ復号鍵の取得を要求して、ステップＳ３１ｂで、データ記憶部１６からセキュアＯＳ復号鍵を受信する。
【０１７０】
そして、第１プロセッサ部１４で動作するセキュアＯＳ部３８の状態切り替え命令実行部３８ｇは、ステップＳ３１ｃで、状態切り替え命令を実行する。状態切り替え命令が実行されると、第１プロセッサ部１４はこの命令を検出し、セキュアモニタ部４０の状態切り替えハンドラ部４０ａに処理を遷移させ（ステップＳ３１ｄ）、ステップＳ３１ｅで、状態切り替えハンドラ部４０ａはセキュアモニタ部４０のプロセッサ状態切り替え部４０ｂを実行させてノンセキュアモードに遷移する。
【０１７１】
このノンセキュアモードにおいて、第１プロセッサ部１４は、ステップＳ３１ｆで、第２プログラム格納部４６に格納されている暗号化セキュアＯＳ４１ｃを取得し、ステップＳ３１ｇで、その取得した暗号化セキュアＯＳ４１ｃをメモリ部１９の共有エリアに格納する。
【０１７２】
その後、第１プロセッサ部１４は、ステップＳ３１ｈで、状態切り替え命令実行部３９ｆを使って状態切り替え命令を実行し、ステップＳ３１ｉで、セキュアモニタ部４０の状態切り替えハンドラ部４０ａに処理を遷移させ、ステップＳ３１ｊで、状態切り替えハンドラ部４０ａはセキュアモニタ部４０のプロセッサ状態切り替え部４０ｂを実行させてセキュアモードに遷移する。
【０１７３】
このセキュアモードにおいて、第１プロセッサ部１４は、ステップＳ３１ｋで、メモリ部１９の共有エリアから暗号化セキュアＯＳ４１ｃを取得し、ステップＳ３１ｌで、その取得した暗号化セキュアＯＳ４１ｃを、先に取得したセキュアＯＳ復号鍵を用いて復号する。
【０１７４】
その後、第１プロセッサ部１４は、ステップＳ３２ａで、先に復号したセキュアＯＳ部３８をロードし、ステップＳ３２ｂで、セキュアＯＳ部３８を起動させる。そして、第１プロセッサ部１４は、ステップＳ３２ｃで、セキュアＯＳ部３８上の必要なアプリケーションをロードし、ステップＳ３２ｄで、そのアプリケーションを起動させる。これにより、第１プロセッサ部１４は、必要な処理をセキュアモードで実行することができる。このステップＳ３２ｃ及びＳ３２ｄの処理は、ノンセキュアモードへの状態切り替え命令が来るまで繰り返し実行される。
【０１７５】
そして、第１プロセッサ部１４は、ステップＳ３２ｅで、状態切り替え命令実行部３８ｇを使って状態切り替え命令が実行されると、ステップＳ３２ｆで、セキュアモニタ部４０の状態切り替えハンドラ部４０ａに処理を遷移させ、ステップＳ３２ｇで、状態切り替えハンドラ部４０ａはセキュアモニタ部４０のプロセッサ状態切り替え部４０ｂを実行させる。これにより、第１プロセッサ部１４は、ステップＳ３２ｈで、第２プログラム格納部４６からノンセキュアＯＳ部３９をロードし、ステップＳ３２ｉで、ノンセキュアＯＳ部３９を起動させる。
【０１７６】
その後、第１プロセッサ部１４は、ステップＳ３２ｊで、ノンセキュアＯＳ部３９上の必要なアプリケーションをロードし、ステップＳ３２ｋで、そのアプリケーションを起動させる。これにより、第１プロセッサ部１４は、必要な処理をノンセキュアモードで実行することができる。このステップＳ３２ｊ及びＳ３２ｋの処理は、ノンセキュアＯＳ部３９上のアプリケーションの起動が完了するまで繰り返し実行される。
【０１７７】
この構成では、暗号化セキュアＯＳ４１ｃを第２プログラム格納部４６に格納することにより、暗号化セキュアＯＳ４１ｃをノンセキュアモードで取得することが可能になる。これにより、第１プロセッサ部１４がノンセキュアモードであるときにのみ、データ記憶部１６のユーザエリア部４１へのアクセスを許可することができるようになる。これにより、第１プロセッサ部１４が行なう全ての処理をセキュアＯＳ部３８で構築することを防止することができる。つまり、第１プロセッサ部１４が行なう全ての処理をセキュアＯＳ部３８で構築してしまうと、ソフトウェアのサイズが大きくなり、それに伴ない脆弱性も増える危険性がある。このため、本来、秘密情報を扱わない処理や、改ざんの検証を行なう必要がない処理等については、ノンセキュアＯＳ部３９で構築することにより、セキュアＯＳ部３８で処理するソフトウェアサイズの増大や脆弱性の増加を防ぐことができる。
【０１７８】
なお、この発明は上記した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を種々変形して具体化することができる。また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係る構成要素を適宜組み合わせても良いものである。
【符号の説明】
【０１７９】
１１…情報処理装置、１２…ネットワークインターフェース部、１３…放送チューナ部、１４…第１プロセッサ部、１５…第２プロセッサ部、１６…データ記憶部、１７…映像出力部、１８…メモリ制御部、１９…メモリ部、２０…コンテンツ配信サーバ、２１…放送送信設備、２２…ストリーム受信部、２３…ストリーム判別部、２４…デコーダ部、２５…コンテンツ復号処理部、２６…鍵受信部、２７…鍵計算処理部、２８…ホスト認証処理部、２９…ホスト鍵管理部、３０…プロセッサ状態切り替え部、３１…プロセッサ状態通知部、３２…映像処理部、３３…データアクセス部、３４…鍵取得部、３５…鍵送信部、３６…プロセッサ状態管理部、３７…鍵取得判断部、３８…セキュアＯＳ部、３８ａ…ホスト認証処理部、３８ｂ…鍵受信処理部、３８ｃ…ホスト鍵取得処理部、３８ｄ…鍵計算処理部、３８ｅ…コンテンツ復号処理部、３８ｆ…デコード依頼部、３８ｇ…状態切り替え命令実行部、３９…ノンセキュアＯＳ部、３９ａ…デバイス初期化処理部、３９ｂ…通信処理部、３９ｃ…ストリーム受信処理部、３９ｄ…ストリーム判別処理部、３９ｅ…デコード依頼部、３９ｆ…状態切り替え命令実行部、３９ｇ…データ取得部、３０ｈ…ホスト認証開始処理部、４０…セキュアモニタ部、４０ａ…状態切り替えハンドラ部、４０ｂ…プロセッサ状態切り替え部、４０ｃ…メモリエリア設定部、４０ｄ…ホスト認証処理部、４０ｅ…ホスト鍵取得部、４０ｆ…プログラム検証処理部、４１…ユーザエリア部、４１ａ…暗号化コンテンツ、４１ｂ…平文コンテンツ、４１ｃ…暗号化セキュアＯＳ、４２…プロテクテッドエリア部、４２ａ…コンテンツ鍵格納部、４２ｂ…セキュアＯＳ復号鍵格納部、４３…コントローラ部、４３ａ…命令種別判別部、４３ｂ…アクセス制御部、４３ｃ…カード認証処理部、４３ｄ…認証用鍵格納部、４３ｅ…鍵暗号化部、４４…データアクセス判断部、４５…第１プログラム格納部、４６…第２プログラム格納部、４７…プログラム検証部、４８…検証部用鍵管理部、４９…プログラム実行部、５０…認証処理部、５１…鍵管理部、５２…認証処理部、５３…鍵管理部。
【図１】
2014089644.tif 000003
【図２】
2014089644.tif 000004
【図３】
2014089644.tif 000005
【図４】
2014089644.tif 000006
【図５】
2014089644.tif 000007
【図６】
2014089644.tif 000008
【図７】
2014089644.tif 000009
【図８】
2014089644.tif 000010
【図９】
2014089644.tif 000011
【図１０】
2014089644.tif 000012
【図１１】
2014089644.tif 000013
【図１２】
2014089644.tif 000014
【図１３】
2014089644.tif 000015
【図１４】
2014089644.tif 000016
【図１５】
2014089644.tif 000017
【図１６】
2014089644.tif 000018
【図１７】
2014089644.tif 000019
【図１８】
2014089644.tif 000020
【図１９】
2014089644.tif 000021
【図２０】
2014089644.tif 000022
【図２１】
2014089644.tif 000023
【図２２】
2014089644.tif 000024
【図２３】
2014089644.tif 000025
【図２４】
2014089644.tif 000026
【図２５】
2014089644.tif 000027
【図２６】
2014089644.tif 000028
【図２７】
2014089644.tif 000029
【図２８】
2014089644.tif 000030
【図２９】
2014089644.tif 000031
【図３０】
2014089644.tif 000032
【図３１】
2014089644.tif 000033
【図３２】
2014089644.tif 000034
【図３３】
2014089644.tif 000035
【図３４】
2014089644.tif 000036