(57)【要約】【課題】  情報処理装置のＣＰＵで実行される再生プログラムがその実行中にトレースされてコンテンツにかかったスクランブル方式とスクランブル解除の鍵が露見するのを防ぐ。【解決手段】  本発明の計算機処理装置は、従来再生プログラムが行っていたコンテンツのスクランブル解除の処理とスクランブル解除のための鍵を再生プログラムから分離し、また再生プログラムを実行する演算処理装置から切り離し、外部から暗号化された再生プログラムとコンテンツとを受信して各々復号し、平文化された再生プログラムおよびコンテンツを演算処理装置にロードする手段を備える。【選択図】  図１
2005310035.tif 000002
【特許請求の範囲】
【請求項１】
計算機処理装置に内蔵される命令実行制御機構、演算器、レジスタおよびメモリがコンテンツ再生のために専用的に使用されるように設定された領域であり、前記メモリに再生プログラムおよびコンテンツをロードして前記再生プログラムを実行することにより前記コンテンツを再生する保護領域と、
外部から暗号化された前記再生プログラムと前記コンテンツとを受信して各々復号し、前記保護領域の前記メモリにロードする手段を備えるインタフェース機構とを有することを特徴とする計算機処理装置。
【請求項２】
前記インタフェース機構は、さらに証明書が添付された前記再生プログラムを受信し、前記再生プログラムを前記保護領域にロードする前に前記証明書の記載を認証することによって前記再生プログラムが正当なプログラムであるか否か判定する認証手段を有することを特徴とする請求項１記載の計算機処理装置。
【請求項３】
前記インタフェース機構は、さらに転送鍵によって暗号化された前記再生プログラムと前記コンテンツとを受信し、前記転送鍵によって前記再生プログラムと前記コンテンツとを復号する手段を有することを特徴とする請求項１記載の計算機処理装置。
【請求項４】
前記保護領域は、前記再生プログラムをロードして実行する前にセレクタアプリケーションをロードして実行し、前記セレクタアプリケーションが前記インタフェース機構に前記再生プログラムのロード指令を発行し、前記インタフェース機構は、外部から暗号化された前記セレクタアプリケーションを受信して復号し、前記保護領域にロードし、前記ロード指令を受けて外部に前記再生プログラムを要求することを特徴とする請求項１記載の計算機処理装置。
【請求項５】
前記インタフェース機構は、前記ロード指令を受けたとき、前記メモリ中の前記セレクタアプリケーションを消去することを特徴とする請求項４記載の計算機処理装置。
【請求項６】
前記計算機処理装置は、動作モードの切替によって前記保護領域を設定するか設定解除するよう制御することを特徴とする請求項１記載の計算機処理装置。
【請求項７】
前記インタフェース機構は、前記保護領域から前記コンテンツの再生終了を示す信号を受けて前記メモリ中の内容を消去し、前記インタフェース機構内に保持されていた鍵情報を消去することを特徴とする請求項１記載の計算機処理装置。
【請求項８】
請求項１に記載の計算機処理装置を含むコンテンツ再生装置。
【請求項９】
計算機のバス伝送路と、命令実行制御機構、演算器、レジスタおよびメモリを有する演算処理装置との間に介在するインタフェース機構であって、
前記バス伝送路を介して外部から暗号化された再生プログラムおよびコンテンツを受信する受信部と、前記再生プログラムおよび前記コンテンツを復号するための鍵を保持する手段と、前記鍵を用いて前記再生プログラムおよび前記コンテンツを復号して前記演算処理装置にロードする復号器と、前記演算処理装置から指令を受けて前記インタフェース機構の動作を制御する転送制御部とを有することを特徴とするインタフェース機構。
【請求項１０】
前記インタフェース機構は、さらに証明書が添付された前記再生プログラムを受信し、前記再生プログラムを前記演算処理装置にロードする前に前記証明書の記載を認証することによって前記再生プログラムが正当なプログラムであるか否か判定する認証手段を有することを特徴とする請求項９記載のインタフェース機構。
【請求項１１】
前記復号器は、さらに転送鍵によって暗号化された前記再生プログラムと前記コンテンツとを受信し、前記転送鍵によって前記再生プログラムと前記コンテンツとを復号する手段を有することを特徴とする請求項９記載のインタフェース機構。
【請求項１２】
前記インタフェース機構は、前記演算処理装置から前記コンテンツの再生終了を示す信号を受けて前記演算処理装置にロードされた前記再生プログラムおよび前記コンテンツを消去する手段を有することを特徴とする請求項９記載のインタフェース機構。
【請求項１３】
再生プログラムおよびコンテンツが格納されるメモリと、前記メモリに格納される前記再生プログラムに含まれる命令を実行する命令実行制御機構、演算器およびレジスタと、
外部から暗号化された前記再生プログラムおよび前記コンテンツを受信する受信部と、前記再生プログラムおよび前記コンテンツを復号するための鍵を保持する手段と、前記鍵を用いて前記再生プログラムおよび前記コンテンツを復号して前記メモリにロードする復号器と、前記命令実行制御機構から指令を受けて前記復号器の動作を制御する転送制御部とを有することを特徴とする計算機処理装置。
【請求項１４】
前記計算機処理装置は、さらに証明書が添付された前記再生プログラムを受信し、前記再生プログラムを前記メモリにロードする前に前記証明書の記載を認証することによって前記再生プログラムが正当なプログラムであるか否か判定する認証手段を有することを特徴とする請求項１３記載の計算機処理装置。
【請求項１５】
前記復号器は、さらに転送鍵によって暗号化された前記再生プログラムと前記コンテンツとを受信し、前記転送鍵によって前記再生プログラムと前記コンテンツとを復号する手段を有することを特徴とする請求項１３記載の計算機処理装置。
【請求項１６】
前記命令実行制御機構、演算器、レジスタおよびメモリは、前記再生プログラムをロードして実行する前にセレクタアプリケーションをロードして実行し、前記セレクタアプリケーションが前記転送制御部に前記再生プログラムのロード指令を発行し、前記復号器は、外部から暗号化された前記セレクタアプリケーションを受信して復号し、前記メモリにロードし、前記転送制御部は、前記ロード指令を受けて外部に前記再生プログラムを要求することを特徴とする請求項１３記載の計算機処理装置。
【請求項１７】
前記転送制御部は、前記ロード指令を受けたとき、前記メモリ中の前記セレクタアプリケーションを消去する手段を駆動することを特徴とする請求項１６記載の計算機処理装置。
【請求項１８】
前記転送制御部は、前記命令実行制御機構から前記コンテンツの再生終了を示す信号を受けて前記メモリ中の内容を消去する手段を駆動し、前記鍵を消去する手段を駆動することを特徴とする請求項１３記載の計算機処理装置。
【請求項１９】
請求項１３に記載の計算機処理装置を含むコンテンツ再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化されたコンテンツを再生する計算機処理装置、および外部から受信する暗号化されたプログラムやコンテンツを復号するインタフェース機構に関する。
【背景技術】
【０００２】
情報処理装置において著作権保護されたコンテンツ、例えばスクランブルのかかったコンテンツを再生する場合、あらかじめスクランブル解除のアルゴリズムをプログラミングした再生プログラムと、再生プログラムに内包した解除のための鍵、もしくはコンテンツを格納した記録メディアの書き換え不能な領域に書き込まれた解除のための鍵を用いてコンテンツのスクランブルを解除してからコンテンツを再生する。
【０００３】
しかし再生プログラムをトレースすることによってスクランブル解除のアルゴリズムを解析可能であり、スクランブル方式が特定され、また解除のための鍵が露見する可能性があった。
【０００４】
そのため特許文献１の図７に示されるレコーダ（１０１）では、メモリカード４０から読み出された暗号化されたコンテンツがＣＰＵ（１０２）を経由してセキュリティブロック１０３に送られて平文化され、エンコーダ／デコーダ１０７によって伸張される。ＣＰＵ（１０２）は通信路として扱われ、全てをＣＰＵ（１０２）に対して外付けハードウェアで処理することによって、暗号鍵等著作権を保護するための情報が露見するのを防いでいる。
【０００５】
【特許文献１】特開２００１−５９４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記従来技術によれば、従来の情報処理装置では、再生プログラムがその実行中にトレースされることによって、著作権保護されたコンテンツにかかったスクランブル方式ないしスクランブル解除のアルゴリズムと、スクランブル解除のための鍵が露見する可能性があるという問題がある。
【課題を解決するための手段】
【０００７】
本発明の計算機処理装置は、従来再生プログラムが行っていたコンテンツのスクランブル解除の処理とスクランブル解除のための鍵を再生プログラムから分離し、また再生プログラムを実行する演算処理装置から切り離し、外部から暗号化された再生プログラムとコンテンツとを受信して各々復号し、平文化された再生プログラムおよびコンテンツを演算処理装置にロードする手段を備えることによって実現される。
【発明の効果】
【０００８】
本発明によれば、再生プログラムがスクランブル解除のためのアルゴリズムと鍵を扱うことがないので、実行中の再生プログラムからスクランブルを解除するための鍵が露呈することはないし、スクランブルされたコンテンツとスクランブル解除後のコンテンツを比較することもできない。
【発明を実施するための最良の形態】
【０００９】
図１は、実施例の情報処理システムの構成図である。システムは、情報処理装置に含まれるＣＰＵ７、ストレージ／サーバ８、バス１１、ソフトウェアバス１２およびネットワーク１３から構成される。ストレージ／サーバ８は、スクランブルのかかったコンテンツとその暗号化された再生プログラムなどを保持する装置である。ストレージ／サーバ８がストレージの場合には、コンパクトフラッシュ（登録商標）メモリやＭＭＣ／ＳＤ（super density）カードを含む。ストレージ／サーバ８がサーバの場合には、記憶装置を備えるサーバ計算機を有する。ＣＰＵ７は、命令実行制御機構、レジスタ、演算器、キャッシュメモリなどを備える計算機の処理装置であり、ストレージ／サーバ８から受信した再生プログラムを復号して実行し、コンテンツのスクランブルを解除してコンテンツを再生する。
【００１０】
バス１１は、ストレージ／サーバ８とＣＰＵ７とを接続し、両者間に転送される情報の伝送路となる機構であり、例えばＰＣＩ（peripheral component interconnect）バスやＰＣＭＣＩＡ（personal computer memory card international association）規格の伝送路などである。ソフトウェアバス１２は、ストレージ／サーバ８とＣＰＵ７間に転送される通信データを一時的に蓄えるバッファを有する機構であり、例えばＰＣＩバスのバスブリッジやＰＣＭＣＩＡのコンパニオンチップなどを介して接続されるメモリ上の記憶領域である。ストレージ／サーバ８がストレージの場合には、ストレージ／サーバ８は直接バス１１に接続される。ストレージ／サーバ８がサーバの場合には、ネットワーク１３と図示しないネットワークアダプタカードを介してバス１１に接続される。
【００１１】
ＣＰＵ７、バス１１およびソフトウェアバス１２は、コンテンツ再生装置の一部を構成していてもよい。あるいはコンテンツ再生装置に付属する装置であってもよい。
【００１２】
ＣＰＵ７は、バスインタフェース１と保護領域６を備える。保護領域６は、動作モードの切替によってＣＰＵ７に内蔵される命令実行制御機構、演算器、レジスタ、キャッシュメモリなどの機構を本発明のコンテンツ再生のためにのみ使用されるように専用化された領域として設定されたものである。保護領域６は、そのメモリに復号された再生プログラムおよびスクランブルが解除されたコンテンツを格納し、再生プログラムを実行することによってコンテンツを再生する。通常の情報処理装置は、ＣＰＵ７の外部に主メモリを備えるが、この主メモリに格納される他のプログラムから保護領域６内の情報にアクセスすることはできない。
【００１３】
バスインタフェース１は、ソフトウェアバス１２と保護領域６の間に介在し、ストレージ／サーバ８から転送された再生プログラムを復号して保護領域のメモリにロードし、ストレージ／サーバ８から転送されたコンテンツのスクランブルを解除して保護領域６のメモリに転送する。なおＣＰＵ７の全体がコンテンツ再生専用に利用されるのであれば、ＣＰＵ７全体が保護領域なので、ＣＰＵ７は特に保護領域６を設定する必要がない。バスインタフェース１と保護領域６は、１つのＣＰＵチップ上に構成されるのが望ましい。
【００１４】
なお図示していないが、バス１１又は別のネットワークを介してモニタディスプレイやスピーカが接続される。
【００１５】
バスインタフェース１は、ソフトウェアバス１２あるいはバス１１とのインタフェースとなって情報を送受信する機構のほかに、認証部９、鍵保持部３、再生鍵保持部４、復号器２および転送制御部５の各ユニットを備える。認証部９は、ストレージ／サーバ８とＣＰＵ７との間の相互認証の手続きを実行する機構である。鍵保持部３は、再生プログラムを復号するための復号鍵や再生鍵を除くその他関連する鍵を保持する機構である。再生鍵保持部４は、コンテンツを平文化するための再生鍵を保持する機構である。復号器２は、ストレージ／サーバ８から受信した再生プログラムおよびコンテンツを復号して保護領域６のメモリにロードする機構である。転送制御部５は、保護領域６内のプログラムあるいは命令実行制御機構が発行する再生プログラムやコンテンツの転送を要求するための指令を受けて、バスインタフェース１内の他の機構の動作を制御するとともに、要求をストレージ／サーバ８へ転送する機構である。なおバスインタフェース１の呼び名は便宜的なものであり、認証部９、鍵保持部３、再生鍵保持部４および復号器２がソフトウェアバス１２あるいはバス１１とのインタフェース部から分離していてもよい。
【００１６】
ＣＰＵ７は、保護領域６を設定する必要がある装置では、その起動時もしくは必要に応じて保護領域６を設定し、その各機構を初期化する。引き続きＣＰＵ７は、保護領域６のメモリに格納され実行されるプログラムをロードするための指令をバスインタフェース１の転送制御部５へ送信する。転送制御部５は、この要求をストレージ／サーバ８へ送信する。
【００１７】
ストレージ／サーバ８がネットワーク１３を介してＣＰＵ７に接続されているサーバである場合、ＣＰＵ７上の通信プロトコルスタックは、ソフトウェアバス１２のバッファを管理する。バスインタフェース１は、ストレージ／サーバ８へ送信するデータを暗号化し、ソフトウェアバス１２のバッファに蓄える。次にＣＰＵ７で動作する通信プロトコルスタックがその処理を引継ぎ、通信パケットのパケットヘッダを作成し、引き渡されたデータをこの通信パケットのペイロードに組み込んでパケットを完成する。次にＣＰＵ７は、完成したパケットをバス１１およびネットワークアダプタカードを介してネットワーク１３に送出し、ストレージ／サーバ８へ送信する。
【００１８】
ＣＰＵ７がストレージ／サーバ８から受信するパケットは、ソフトウェアバス１２のバッファに格納される。ＣＰＵ７の通信プロトコルスタックは、そのパケットにエラーがないことを確認した後、ペイロードからデータを取り出し、ソフトウェアバス１２のバッファ領域に一時的に蓄える。バスインタフェース１は、このデータを復号して保護領域６のメモリに書き込み、受信動作が完了する。
【００１９】
図２は、認証手続きからコンテンツの転送までＣＰＵ７とストレージ／サーバ８との間の通信手順を示す図である。以下、図２を参照しながらこの通信手順について順を追って説明する。
（１）ストレージ／サーバ８からＣＰＵ７へ送られソフトウェアバス１２のバッファに格納される最初のプログラムには証明書が添付され、証明書もしくは証明書と初期プログラムは暗号化されている。バスインタフェース１の復号器２は、暗号化された証明書もしくは証明書と初期プログラムを復号する。認証部９は、復号化された証明書の記載を認証する。このプログラムが正当なものと判定されると、バスインタフェース１は、この初期プログラムを保護領域６のメモリにロードし、このプログラムが実行される。バスインタフェース１は、ストレージ／サーバ８を認証するのではなく、プログラムになされた署名と添付された証明書に基づいて初期プログラムが信用できるものか否かを判定する。初期プログラムに復号鍵が付加されている場合、バスインタフェース１は、この鍵を鍵保持部３に格納する。初期プログラムは、命令実行制御機構を介して転送制御部５に再生プログラムのロード指令を送る。
（２）認証部９は、ストレージ／サーバ８との間で転送鍵を取り決める。転送鍵としてストレージ／サーバ８で生成された乱数が利用される。この転送鍵はＣＰＵ７とストレージ／サーバ８の間で共有される。
（３）ＣＰＵ７は、この転送鍵を用いてＣＰＵ７とストレージ／サーバ８との間でＶＰＮ（virtual private network）を確立する。ここでＣＰＵ７とストレージ／サーバ８との間にはセキュアな論理チャネルが確立される。バスインタフェース１は、転送鍵を鍵保持部３に格納する。
（４）転送制御部５は、ストレージ／サーバ８へ指令を送り、バスインタフェース１は、暗号化された再生プログラムを受信する。復号器２は、鍵保持部３に格納された復号鍵を用いて再生プログラムを平文化し、保護領域６のメモリにロードする。
（５）ＣＰＵ７は、保護領域６に含まれる命令実行制御機構、演算器およびレジスタを駆動してそのメモリに格納される再生プログラムの命令を実行する。再生プログラムは、転送制御部５を介してストレージ／サーバ８へコンテンツを指定するコンテンツのロード指令を送り、そのコンテンツに付加されている再生鍵を受信する。復号器２は、受信した再生鍵を転送鍵で復号して再生鍵保持部４に格納する。
（６）バスインタフェース１は、暗号化されたコンテンツを受信する。コンテンツには証明書が付加されており、復号器２はこの証明書を転送鍵で復号する。認証部９は、復号された証明書の記載を認証する。このコンテンツが正当なものと判定されると、復号器２は、再生鍵保持部４に格納された再生鍵を用いてコンテンツの復号を行い、平文化されたコンテンツを保護領域６のメモリにロードする。保護領域６の再生プログラムは、受け取ったコンテンツをデコードした後に順次再生する。再生プログラムは、バス１１又は図示しないネットワークを介して接続されるモニタディスプレィやスピーカに対してデータ出力のためのシステムコールあるいは出力命令を発行する。システムコールは、再生プログラム内のサブプログラム、保護領域６のファームウェアなどによって実行される。
【００２０】
コンテンツの再生が終了すると、再生プログラムは、ＣＰＵ７に対して終了命令を発行し、保護領域６の命令実行制御機構は転送制御部５へ終了信号を送る。転送制御部５は、この終了信号を受け取り、再生鍵保持部４の鍵消去手段が保持していた再生鍵を消去する。また再生プログラムの実行が終了すると、バスインタフェース１は、保護領域６中の再生プログラムを消去する。バスインタフェース１の鍵保持部３は、保持していたは転送鍵や復号鍵を消去する。ＣＰＵ７は、再生プログラムの消去に続いて、保護領域６を解除する。これによってバスインタフェース１は、復号器２を用いるようなプログラムやコンテンツのロード要求を不受理とするモードに移行し、鍵保持部３および再生鍵保持部４を初期化する。
【００２１】
上記のように保護領域６には平文化された初期プログラム、再生プログラムおよびコンテンツがロードされる。再生プログラムは、コンテンツを再生処理、例えば動画像のデコード処理と表示を行うことができる。再生処理実行中はもちろん、実行の前後で証明書や復号鍵、転送鍵、再生鍵が保護領域６に出現することはなく、再生プログラムがこれらの鍵や証明書を扱うことはない。
【００２２】
また保護領域６のメモリに格納され実行されるプログラムは、転送制御部５に指示することによって、次に実行する他のプログラムやコンテンツをロードする。プログラムが直接外部にコマンドや保護領域６内のデータを出力しない構成となっているので、バグや誤動作によって保護領域６内からデータが漏洩することはない。
【００２３】
上記のようにバスインタフェース１が鍵の管理および暗号文の復号を行うので、コンテンツを再生する再生プログラムは、相互認証や鍵交換、鍵管理、平文化といった処理を行う必要がなくなり、コンテンツ再生に特化できプログラムを簡単化できる。
【００２４】
ＣＰＵは、認証処理や鍵交換、鍵管理、平文化といった処理を実行することがないので、ＣＰＵの処理量を削減でき、性能改善が期待できる。
【００２５】
バスインタフェース１に保持される鍵もしくは鍵交換で取得した鍵は、ＣＰＵ７のいずれのリソースからも読み出しできないので、鍵が漏洩することはない。
【００２６】
保護領域６内に格納されるプログラムは、暗号文を知ることができないので、暗号文とその平文を比較することができない。従って両者の比較によって復号鍵や再生鍵を算出することはできない。
【００２７】
同様に平文化したプログラムやデータを保護領域６からその外部に出力できないので、保護領域外のプログラムが暗号文と平文を比較することはできず、鍵を算出することはできない。
【００２８】
特に保護領域にロードするプログラムの認証により、保護領域外へ平文化されたデータを故意に出力したり、オール１のデータを暗号化し、その結果の平文を出力する暗号鍵のクラッキング目的のプログラムを排除することができる。
【００２９】
またＣＰＵ７とストレージ／サーバ８は、クライアントサーバモデルに相当し、ＣＰＵ７は、ストレージ／サーバ８の依頼によって一連のプログラムのロードと実行、コンテンツのリードを行っている図式となる。本発明は、この図式においてＣＰＵ７にとって未知の得体の知れないプログラムやコンテンツについてバスインタフェース１が認証を行い、正当なものと認証してから保護領域６にロードするので、個々のプログラムの安全性を確認することができる。
【００３０】
図３及び図４を用いてバスインタフェース１と保護領域６の状態について逐次説明する。バスインタフェース１と保護領域６は、再生プログラムのロードからアンロードまでの間に図３及び図４に示す８つの状態を経由する。
【００３１】
図３の状態２０１において、ＣＰＵ７はリセット直後であり、バスインタフェース１はリセットされ、保護領域６は未設定状態であり実在しない。
【００３２】
状態２０２でＣＰＵ７が必要に応じて動作モードの切替により保護領域を設定すると、保護領域６は空の状態、例えばゼロフィルされた状態になり、同時に鍵保持部３に認証局の公開鍵ＫｐＣＡがロードされる。次の状態２０３で図２の（１）の段階を迎える。
【００３３】
状態２０３でＣＰＵ７が転送制御部５に初期プログラムであるセレクタアプリケーションのロードを指示するとセレクタアプリケーションが保護領域６にロードされる。ロードの際、セレクタアプリケーションは、証明書とセレクタアプリケーションの秘密鍵ＫｓＡＰが付加され、ＫｓＣＡによって暗号化されている。バスインタフェース１の復号器２は、鍵保持部３にセットされるＫｐＣＡで平文化し、証明書の記載と比較し正当なプログラムと判定すると保護領域６にロードし、実行に移る。同時にバスインタフェース１は、セレクタアプリケーションの秘密鍵ＫｓＡＰを鍵保持部３に追加する。
【００３４】
引き続きセレクタアプリケーションは、ストレージ／サーバ８に格納しているコンテンツの再生プログラムであるソフトプレーヤアプリケーションのロードを転送制御部５に指示する。
【００３５】
指示を受けた転送制御部５は、保護領域６のリセットをバスインタフェース１に要求し、バスインタフェース１の図示しないメモリ消去部は、保護領域６のセレクタアプリケーションを消去する。以上の処理を終えると次の状態２０４で図２の（２）の段階を迎える。
【００３６】
状態２０４で認証部９は、転送制御部５を介してストレージ／サーバ８との間で乱数の交換を経て転送鍵ＫＴｒａｎｓを取り決め、転送制御部５はソフトプレーヤアプリケーションの転送を始める。この時点で図２の（２）と（３）の段階を迎える。
【００３７】
状態２０５で保護領域６にロードされたソフトプレーヤアプリケーションが実行される。ソフトプレーヤアプリケーションは、転送制御部５にコンテンツのロードを指示し、図２の（５）の段階を迎える。
【００３８】
本実施例ではロードされるコンテンツに対応したコンテンツの再生鍵がまずロードされる。コンテンツの再生鍵ＫｓＣＮＴにはコンテンツ鍵の証明書が付加されており、バスインタフェース１は、認証部９によりロード時に証明書の記載と比較し正当な再生鍵と判定すると、再生鍵を再生鍵保持部４に格納する。同時に再生鍵保持部４から復号器２に再生鍵ＫｓＣＮＴをセットしコンテンツの到着を待つ。この状態でＣＰＵ７は図２の（６）の段階に移行する。復号器２は、到着したコンテンツをＫｓＣＮＴで復号を行い、保護領域６にロードする。コンテンツのロードが始まるとソフトプレーヤアプリケーションが実行されコンテンツをデコードし再生する。
【００３９】
再生が終了すると図２の（６）の段階を終え、後処理に移る。状態２０５の状態を保つことも可能であるが、本実施例のソフトプレーヤアプリケーションはコンテンツをアンロードする。バスインタフェース１は、鍵保持部３の転送鍵ＫＴｒａｎｓ、再生鍵保持部４の再生鍵ＫｓＣＮＴを消去し状態２０６となる。
【００４０】
ソフトプレーヤアプリケーションの実行が終了すると、バスインタフェース１のメモリ消去部は、保護領域６からソフトプレーヤアプリケーションを消去し状態２０７となる。
【００４１】
ＣＰＵ７は、その動作モードを切り替え、保護領域６を未設定状態にする。これによってバスインタフェース１は、終了信号を受けて鍵保持部３および再生鍵保持部４の内容を消去し、状態２０８になる。
【００４２】
この後、ＣＰＵ７が再度保護領域を設定すると状態２０２に移行し、状態２０３，２０４，２０５を経ることで再度コンテンツの再生が可能である。
【００４３】
以上の説明のとおり、本実施例では保護領域６にただちにソフトプレーヤアプリケーションをロードせず、セレクタアプリケーション、ソフトプレーヤアプリケーションの順でプログラムのロードを行っている。この個別のロード手順により、セレクタアプリケーションの認証とソフトプレーヤアプリケーションの認証に使う鍵をＫｐＣＡ，ＫｓＡＰと使い分けることができる。これによってそれぞれのプログラムを出荷する事業者が個別にプログラムの認証を受けることができる。例えば汎用的なセレクタアプリケーションはＯＳベンダが配信し、ソフトプレーヤアプリケーションはコンテンツを配信するサービスプロバイダが提供するという図式が成り立つのである。
【００４４】
特に各々のプログラムをロードする際、ロードを指示したプログラムが保護領域６から消去されるため、次にロードされるプログラムは、消去されたプログラムの内容や消去されたプログラムがどのリソースを扱ったか等の情報を参照できない。これによって保護領域６内でプログラム間のクラッキングを防ぐことができる。
【００４５】
またＫｐＣＡ，ＫｓＡＰについても、プログラムについて任意に変更が可能であるためコンテンツごとにＫｓＡＰを変更可能であり、例えばＫｓＡＰがクラッキングされ、ＫｓＡＰが露呈した場合の被害範囲も限定できる。
【００４６】
図５および図６を用いて、状態２０３，２０４，２０５の移行過程について説明する。
【００４７】
状態４０１でＣＰＵ７は、セレクタアプリケーション中のＬｏａｄＡｐｌｉコマンドを実行する。実行の結果、転送制御部５にソフトプレーヤアプリケーションのロードが指示される。指示を受けた転送制御部５は、保護領域６のリセットをバスインタフェース１に要求する。バスインタフェース１のメモリ消去部は、保護領域６のセレクタアプリケーションを消去し状態４０２になる。
【００４８】
バスインタフェース１は、認証部９によりストレージ／サーバ８と認証を行い、乱数の交換を経て転送鍵ＫＴｒａｎｓを取り決め、状態４０３になる。
【００４９】
引き続き、バスインタフェース１は、ソフトプレーヤアプリケーションの転送を始める。ソフトプレーヤアプリケーションは、証明書が付加され、秘密鍵ＫｓＡＰで暗号化されている。バスインタフェース１の復号器２は、鍵保持部３にセットされるＫｓＡＰでソフトプレーヤアプリケーションを平文化し、認証部９が証明書の記載と比較し正当なプログラムと判定すると保護領域６にロードし、状態４０４になる。
【００５０】
ソフトプレーヤアプリケーションが実行に移ると、ＣＰＵ７は、ソフトプレーヤアプリケーション中のＲｅａｄＤａｔａコマンドを実行する。その結果、転送制御部５にコンテンツのロードが指示され状態４０５になる。
【００５１】
指示を受けた転送制御部５は、コンテンツのロードを開始するが、コンテンツに対応したコンテンツの再生鍵がまずロードされる。コンテンツの再生鍵ＫｓＣＮＴにはコンテンツ鍵の証明書が付加されており、バスインタフェース１の転送制御部５は、認証部９によりロード時の証明書の記載と比較し正当な再生鍵と判定されると、再生鍵保持部４に格納する。同時に再生鍵保持部４から復号器２に再生鍵ＫｓＣＮＴをセットしコンテンツの到着を待つ。復号器２は、到着したコンテンツをＫｓＣＮＴで復号し、保護領域６にロードする。ロードが始まるとソフトプレーヤアプリケーションが実行されコンテンツをデコードして再生し状態４０６になる。
【００５２】
バスインタフェース１は、ＬｏａｄＡｐｌｉコマンドとＲｅａｄＤａｔａコマンドを判別することによって、保護領域６内のプログラムを消去するか消去しないか判定できる。またバスインタフェース１は、具備する鍵保持部３と再生鍵保持部４を使い分けている。
【００５３】
以上示したＬｏａｄＡｐｌｉとＲｅａｄＤａｔａは、ＣＰＵ７の命令セットで実装されるのが望ましいが、ＯＳのサービスルーチンとして実装し、保護領域６で実行するプログラムがそのサービスルーチンをコールし実行しても構わない。この場合のＯＳとは、システムコールを解釈してバスインタフェース１にＩ／Ｏ命令あるいは指令を発行するだけの処理機能をもてばよいので、アプリケーションプログラム中に内蔵することも可能である。あるいは保護領域６のファームウェアによってＯＳを実現してもよい。
【００５４】
ＬｏａｄＡｐｌｉやＲｅａｄＤａｔａのような複合命令もしくはコマンドを実装し、これら複合命令もしくはコマンドがバスインタフェース１より外側のストレージ／サーバ８に認証手順と暗黙の暗号鍵の保持と利用、平文化したプログラムないしデータの保護領域６への書き込みを行うことによって、セレクタアプリケーションやソフトプレーヤアプリケーションは認証や暗号処理から開放され、コンテンツ再生に特化でき、プログラムを簡単化できる。
【００５５】
また複合命令もしくはコマンドの操作対象や利用するリソースを限定できるため、万一悪意をもったプログラムが保護領域６で実行されても、保護領域外へ平文化されたデータを出力したり、オール１のデータを暗号化してその結果の平文化を出力する等の暗号鍵のクラッキングを排除することができる。
【００５６】
各々のプログラムをロードする際、ロードを指示したプログラムが保護領域６から消去されるため、次にロードされるプログラムは消去されたプログラムや消去されたプログラムがどのリソースを扱ったか等の情報を参照できないので、保護領域６内でプログラム間のクラッキングを防ぐことができる。
【００５７】
プログラムロード中に保護領域６は空であるが、バスインタフェース１が複合命令ないしコマンドＬｏａｄＡｐｌｉの実行を続けることによって、ＣＰＵ７がハングアップしたり異常終了することを防ぐことができる。
【００５８】
図７及び図８を用いて保護領域６を設定した時点で鍵保持部３にセットされる認証局の鍵ＫｐＣＡを変更する手順について説明する。
【００５９】
図７の状態６０１でＣＰＵ７は、セレクタアプリケーション中のＬｏａｄＡｐｌｉコマンドを実行する。実行の結果、転送制御部５に鍵変更アプリケーションのロードが指示される。指示を受けた転送制御部５は、保護領域６のリセットをバスインタフェース１に要求する。バスインタフェース１のメモリ消去部は、保護領域６のセレクタアプリケーションを消去し、同時に鍵保持部３にＣＰＵ７の秘密鍵ＫｓＨｉｄが追加され、状態６０２になる。
【００６０】
転送制御部５は、認証部９によりストレージ／サーバ８との間の認証を行った後、乱数の交換を経て転送鍵ＫＴｒａｎｓを取り決め、状態６０３になる。
【００６１】
引き続き、転送制御部５は、鍵変更アプリケーションの転送を始める。鍵変更アプリケーションは、証明書と新しい認証局の公開鍵ＫｐＣＡ’が付加され、秘密鍵ＫｓＨｉｄで暗号化されている。バスインタフェース１の復号器２は、鍵保持部３がセットしたＫｓＨｉｄで鍵変更アプリケーションを平文化し、認証部９により証明書の記載と比較し正当なプログラムと判定されると保護領域６にロードし、同時に新しい公開鍵ＫｐＣＡ’を鍵保持部３に追加し、状態６０４になる。
【００６２】
認証局の公開鍵ＫｐＣＡ’が追加された後、ＣＰＵ７は、鍵変更アプリケーションのＬｏａｄＡｐｌｉコマンドを実行する。その結果、転送制御部５に鍵テストアプリケーションのロードが指示される。指示を受けた転送制御部５は、保護領域６のリセットをバスインタフェース１に要求する。バスインタフェース１のメモリ消去部は、保護領域６の鍵変更アプリケーションを消去する。
【００６３】
転送制御部５は、ストレージ／サーバ８と認証を行う手順によって、認証部９により認証局もしくそれに準じるサーバと認証を行い、乱数の交換を経て転送鍵ＫＴｒａｎｓ’を取り決め、状態６０５になる。
【００６４】
この後、ＣＰＵ７は、鍵テストアプリケーションのロードを開始する。鍵テストアプリケーションは、証明書が付加され、ＫｓＣＡ’で暗号化されている。バスインタフェース１の復号器２は、鍵保持部３にセットされるＫｐＣＡ’で平文化し、認証部９が証明書の記載と比較し正当なプログラムと判定すると保護領域６にロードし、状態６０６となる。
【００６５】
鍵テストアプリケーションのロードに成功すると、ＣＰＵ７は、鍵テストアプリケーションを実行する。鍵テストアプリケーションは、ＦｉｘＫｅｙコマンドを実行する。その結果、バスインタフェース１は、鍵テストアプリケーションを消去し、同時に鍵保持部３はＫｓＨｉｄ同様内々に保持している認証局の公開鍵ＫｐＣＡをＫｐＣＡ’に置き換え、状態６０８になる。
【００６６】
以上の説明の通り、本実施例では汎用的なセレクタアプリケーション、鍵変更アプリケーション、鍵テストアプリケーションの順でプログラムのロードを行うことによって、順を追って認証、新しい鍵の取得、新しい鍵のテストと交換を分担している。この分担において、各々のプログラムをロードする際、ロードを指示したプログラムが保護領域６から消去されるため、次にロードされるプログラムは、消去されたプログラムの内容や消去されたプログラムがどのリソースを扱ったか等の情報を参照できない。これによって保護領域６内でプログラム間のクラッキングを防ぐことができる。
【００６７】
プログラムロード中に保護領域６は空であるが、バスインタフェース１が複合命令ないしコマンドのＬｏａｄＡｐｌｉの実行を続けることによってＣＰＵ７がハングアップしたり異常終了することを防ぐことができる。
【００６８】
またＫｐＣＡの更新のときＣＰＵ７固有のＫｓＨｉｄを利用するが、ＫｓＨｉｄの存在はＣＰＵ７の製造者と認証局のみの秘匿情報であり、利用手順も非公開である。本実施例は、認証時にＫｓＨｉｄを用いているが、認証局はＣＰＵ７の製造者に問い合わせて入手するためＫｓＨｉｄの利用者を限定できる。またＣＰＵ７は、認証に用いる以外ＫｓＨｉｄを利用できないので、保護領域６内のプログラムがオール１のデータをＫｓＨｉｄで暗号化してその結果の平文を保護領域外に出力する等の暗号鍵のクラッキングを排除することができる。
【００６９】
このＫｓＨｉｄを用いることによって、安全にＫｐＣＡの更新を行うことができる。例えば利用者やコンテンツの配信者の都合でサービスにかかわる認証局が異なる場合でも、バスインタフェース１に保持する認証局のＫｐＣＡの更新により利用する認証局を切り替えることができる。
【００７０】
認証局は秘密鍵ＫｓＨｉｄを利用しているが、公開鍵暗号で対になる公開鍵ＫｐＨｉｄを利用してもＫｐＣＡの更新ができる。
【００７１】
図９にバスインタフェース１に到着する時点において、ストレージ／サーバ８が格納しているプログラムやコンテンツのパッケージ構成を示す。
【００７２】
パッケージ８０１は、セレクタアプリケーションであり、セレクタアプリケーションとその証明書、セレクタアプリケーションの秘密鍵ＫｓＡＰと証明書が認証局の公開鍵ＫｐＣＡで署名されている。
【００７３】
パッケージ８０２は、認証の際に交換される乱数であり、ＫｓＡＰで暗号化されている。
【００７４】
パッケージ８０３は、ＫｓＡＰで暗号化されたソフトプレーヤアプリケーションと、認証局のＫｐＣＡで署名されたソフトプレーヤアプリケーションの証明書であり、転送鍵ＫＴｒａｎｓで暗号化されている。
【００７５】
パッケージ８０４は、認証局の公開鍵ＫｐＣＡで署名されたコンテンツの再生鍵ＫｓＣＮＴと証明書であり、転送鍵ＫＴｒａｎｓで暗号化されている。
【００７６】
パッケージ８０５は、コンテンツの再生鍵ＫｓＣＮＴで暗号化されたコンテンツであり、転送鍵ＫＴｒａｎｓで暗号化されている。
【００７７】
パッケージ８０６は、鍵変更アプリケーションであり、鍵変更アプリケーションと証明書、認証局の公開鍵ＫｐＣＡ’と証明書がＫｓＨｉｄで署名され、転送鍵ＫＴｒａｎｓで暗号化されている。
【００７８】
パッケージ８０７は、鍵テストアプリケーションであり、鍵テストアプリケーションと証明書が認証局のＫｐＣＡ’で署名され、ＫｓＨｉｄで暗号化され、転送鍵ＫＴｒａｎｓで暗号化されている。
【００７９】
以上図９に示したとおり、バスインタフェース１の鍵保持部３および再生鍵保持部４を駆使することにより、セレクタアプリケーション、ソフトプレーヤアプリケーションおよびコンテンツを別々の鍵で保護でき、またこの保護により、どれか一つの鍵が露呈してもその被害範囲を限定することができる。
【００８０】
ストレージ／サーバ８が特にストレージであってＭＭＣ／ＳＤカードのようなリムーバブルな記録媒体であると、本発明によりソフトプレーヤアプリケーションとコンテンツ鍵とコンテンツを一つの記録媒体に格納し配布することが可能となる。
【図面の簡単な説明】
【００８１】
【図１】実施例の情報処理システムの構成図である。
【図２】認証手続きからコンテンツの再生までの実施例の通信手順を示す図である。
【図３】実施例の動作の概要を示す図である。
【図４】実施例の動作の概要を示す図（続き）である。
【図５】実施例のソフトプレイヤアプリケーション実行手順の詳細を示す図である。
【図６】実施例のソフトプレイヤアプリケーション実行手順の詳細を示す図（続き）である。
【図７】実施例の鍵変更アプリケーションの実行手順の詳細を示す図である。
【図８】実施例の鍵変更アプリケーションの実行手順の詳細を示す図（続き）である。
【図９】実施例のプログラムやコンテンツのパッケージ構成を示す図である。
【符号の説明】
【００８２】
１：バスインタフェース、２：復号器、３：鍵保持部、４：再生鍵保持部、５：転送制御部、６：保護領域、８：ストレージ／サーバ、９：認証部、１１：バス
【図１】
2005310035.tif 000003
【図２】
2005310035.tif 000004
【図３】
2005310035.tif 000005
【図４】
2005310035.tif 000006
【図５】
2005310035.tif 000007
【図６】
2005310035.tif 000008
【図７】
2005310035.tif 000009
【図８】
2005310035.tif 000010
【図９】
2005310035.tif 000011