(57)【要約】  セキュア領域（１００）は、このセキュア領域（１００）内で動作するＣＰＵ（１１０）と、小容量のメモリ（１４０）を有する。ＣＰＵ（１１０）は、秘密の入力路ＩＦ（１７０）から秘密値を含む第１情報と、各種プログラムやマスター鍵等を含む第２情報を暗号化された状態で取得する。ＣＰＵ（１１０）は、第１情報および第２情報を復号して、第１情報をメモリ（１４０）に格納する。ＣＰＵ（１１０）は、第１情報を基にした固有暗号鍵を生成し、固有暗号鍵で、第２情報を暗号化し、暗号化した第２情報を外部に存在するＮＶＲＡＭ（６０）に格納することを、外部のメインＣＰＵ（５１）に依頼する。
2016088273.tif 000002
【特許請求の範囲】
【請求項１】
セキュア領域内にプロセッサと記憶容量が所定容量未満となる第１メモリとを有するセキュリティ装置であって、
前記プロセッサは、秘密の入力路から暗号化された第１情報および暗号化された第２情報が入力されると、前記第１情報および前記第２情報を復号して前記第１メモリに前記第１情報を格納し、
前記プロセッサは、復号した前記第１情報を基にした暗号鍵を用いて、復号した前記第２情報を暗号化し、暗号化した第２情報を、前記セキュア領域の外部に存在する第２メモリに格納することを依頼する
ことを特徴とするセキュリティ装置。
【請求項２】
前記第１情報は固有情報を含み、前記第２情報は前記プロセッサに所定の処理を実行させるためのプログラム情報を含み、前記プロセッサは、前記第１メモリに格納された前記第１情報の固有情報を基にして、前記暗号鍵を生成し、生成した前記暗号鍵を用いて、復号した前記第２情報を暗号化することを特徴とする請求項１に記載のセキュリティ装置。
【請求項３】
前記プロセッサは、前記第１メモリに格納された固有情報を前記第２情報に追加した後に、前記暗号鍵を用いて前記第２情報を暗号化して、前記第２メモリに格納することを依頼し、
前記プロセッサは、前記第２メモリに格納された第２情報を取得した場合に、取得した第２情報を、前記暗号鍵を用いて復号し、復号した第２情報に前記固有情報が含まれている場合に、前記セキュア領域内の特定部分が動作することを許容することを特徴とする請求項２に記載のセキュリティ装置。
【請求項４】
前記プロセッサは、前記第２メモリに格納された第２情報を取得した場合に、取得した第２情報を、前記暗号鍵を用いて復号し、復号した第２情報に前記固有情報が含まれている場合に、前記第２情報に含まれるプログラムを実行することを許容することを特徴とする請求項３に記載のセキュリティ装置。
【請求項５】
前記セキュリティ領域内には前記第１メモリに対する書き込みを許容するか否かの情報を格納する第３メモリを更に有し、前記プロセッサは、前記第１情報を前記第１メモリに書き込んだ後に、前記第３メモリに、前記第１メモリに対する書き込みを許容しない旨の情報を格納することを特徴とする請求項１に記載のセキュリティ装置。
【請求項６】
前記第１メモリは、一度書き込まれた情報の更新を許容しないOne  Time  Romであり、前記プロセッサは、前記第１メモリに対する書き込みを許容する旨の情報が前記第３メモリに格納されている場合に、前記セキュリティ領域の外部から取得した情報を、前記第１メモリに追記することを特徴とする請求項５に記載のセキュリティ装置。
【請求項７】
前記第３メモリは、一度書き込まれた情報の更新を許容しないOne  Time  Romであることを特徴とする請求項５に記載のセキュリティ装置。
【請求項８】
前記第１メモリおよび前記第３メモリは、一度書き込まれた情報の更新を許容しないOne  Time  Romであることを特徴とする請求項５に記載のセキュリティ装置。
【請求項９】
前記プロセッサは、前記第１メモリに対する書き込みを許容する旨の情報が前記第３メモリに格納されている場合には、前記秘密の入力路から情報を取得し、前記第１メモリに対する書き込みを許容しない旨の情報が前記第３メモリに格納されている場合には、前記秘密の入力路以外の入力路から情報を取得し、取得した情報に応じた処理を実行することを特徴とする請求項５に記載のセキュリティ装置。
【請求項１０】
前記第１情報は、唯一無二の情報であることを特徴とする請求項１に記載のセキュリティ装置。
【請求項１１】
セキュア領域内のプロセッサが実行する制御方法であって、
前記プロセッサは、秘密の入力路から暗号化された第１情報および暗号化された第２情報が入力されると、前記第１情報および前記第２情報を復号し、
前記プロセッサは、記憶容量が所定容量未満となる第１メモリに、復号した第１情報を格納し、
前記プロセッサは、復号した前記第１情報を基にした暗号鍵を用いて、復号した前記第２情報を暗号化し、暗号化した第２情報を、前記セキュア領域の外部に存在する第２メモリに格納することを依頼する
処理を実行することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティ装置等に関する。
【背景技術】
【０００２】
従来、暗号化されたデジタルＡＶ（Audio  and  Visual）情報を復号するセキュア領域は、ＣＡＳ（Conditional  Access  System）またはＤＲＭ（Digital  Rights  Management）と呼ばれる。ＣＡＳの場合には、セキュア領域をカード形態にて実装する。ＤＲＭの場合には、端末のホストＣＰＵが処理するソフトウェアの一部にセキュアな部分を作成し実装する。【０００３】
ＣＡＳおよびＤＲＭは、基本的に暗号化されたデジタルＡＶ情報を復号する復号鍵を放送或いは通信経由で秘密に受信し、受信端末でデジタルＡＶ情報を復号できるようにする。【０００４】
図２０は、ＣＡＳ方式による処理の一例を説明するための図である。放送局５は、元のデジタルＡＶ情報をスクランブル鍵Ｋｓで暗号化し、放送デジタル・ストリームに重畳する。放送局５は、スクランブル鍵Ｋｓをワーク鍵Ｋｗで暗号化し、ＥＣＭと呼ばれるパケットに暗号化したスクランブル鍵Ｋｓを挿入し、ＥＣＭを放送デジタル・ストリームに時分割多重する。また、放送局５は、マスター鍵Ｋｍでワーク鍵Ｋｗを暗号化し、ＥＭＭと呼ばれるパケットに暗号化したワーク鍵Ｋｗを挿入し、ＥＭＭを放送デジタル・ストリームに時分割多重する。ここで、マスター鍵Ｋｗは、放送局５と個別の視聴者しか知らない鍵である。【０００５】
受信端末１０は、放送局５から放送デジタル・ストリームを受信すると、放送デジタル・ストリームに含まれるＥＣＭおよびＥＭＭをスマートカード３０に入力する。スマートカード３０は、ＥＭＭを、スマートカード３０に格納されたマスター鍵Ｋｍで復号することで、ワーク鍵Ｋｗを取得し、スマートカード３０に保存する。スマートカード３０は、ワーク鍵Ｋｗを用いて、ＥＣＭを復号することで、スクランブル鍵Ｋｓを取得する。スマートカード３０は、スクランブル鍵Ｋｓを、受信端末１０の本体に出力する。受信端末１０は、スクランブル鍵Ｋｓを用いて、暗号化されたデジタルＡＶ情報を復号する。【０００６】
図２０を用いて説明したマスター鍵、ワーク鍵、スクランブル鍵によるＣＡＳ方式は、３重鍵方式と呼ばれる。マスター鍵は、固有鍵、すなわち個別の視聴者に与えられた唯一無二の鍵であり、このマスター鍵により個別の視聴者に番組視聴の権利が与えられる。すなわち、放送局５は、視聴者しか保持しないマスター鍵で暗号化したワーク鍵を送ることで視聴者毎にワーク鍵という権利を与える。【０００７】
ワーク鍵の使い方は限定されないが、一般的に所定のチャンネルに対する視聴権を与える場合に用いられる。例えば、放送局５は、有料放送チャンネルの視聴権を契約視聴者に付与するため、マスター鍵で暗号化したワーク鍵を受信端末１０に送信する。【０００８】
スクランブル鍵は、チャンネルのデジタルＡＶ情報を暗号化するために使われる。例えば、視聴者が、有料放送チャンネルを視聴する場合には、有料放送チャンネルに関連するワーク鍵で、スクランブル鍵を復号し、復号したスクランブル鍵を用いて、暗号化されたデジタルＡＶ情報を復号する。【０００９】
続いて、受信端末の構成について説明する。図２１は、従来の受信端末の構成を示す図である。図２１に示すように、この受信端末１０は、システムＬＳＩ（Large-Scale  Integrated  circuit）１１を有する。システムＬＳＩ１１は、メインＣＰＵ（Central  Processing  Unit）１２、ＲＡＭ（Random  Access  Memory）１３、ＮＶＲＡＭ（Non-Volatile  Memory）１４、Ｔｕｎｅｒ１５、暗号復号回路１６、伸長処理回路１７、グラフィック回路１８を有する。また、受信端末１０は、表示装置６およびスマートカード（Smart  Card）３０に接続される。各装置１２〜１８は、バス１９に接続される。【００１０】
メインＣＰＵ１２は、受信端末１０全体を制御する装置である。メインＣＰＵ１２は、ＲＡＭ１３に格納された各種処理プログラムを実行することで、各種の処理および制御を行う。ＮＶＲＡＭ１４は、不揮発性メモリであり、受信端末１０の電源を落としても情報が保持される領域である。【００１１】
メインＣＰＵ１２が処理する特定のプログラムの指示に従い、受信端末１０に含まれる各装置は、下記の処理を実行する。Ｔｕｎｅｒ１５は、放送局５から電波に乗って暗号化されたデジタルＡＶ情報を受信する。Ｔｕｎｅｒ１５は、暗号化されたデジタルＡＶ情報に含まれるＥＣＭおよびＥＭＭの情報を、スマートカード３０に出力する。【００１２】
スマートカード３０は、ＥＭＭを受信した場合には、スマートカード３０内のマスター鍵Ｋｍを用いて、ＥＭＭを復号し、ワーク鍵Ｋｗを取り出す。スマートカード３０は、取り出したワーク鍵Ｋｗを、スマートカード３０内の小領域不揮発性メモリに格納する。【００１３】
スマートカード３０は、ＥＣＭを受信した場合には、小領域不揮発性メモリに格納されたワーク鍵Ｋｗを用いて、ＥＣＭを復号し、スクランブル鍵Ｋｓを取り出す。スマートカード３０は、取り出したスクランブル鍵Ｋｓを、メインＣＰＵ１２に出力する。【００１４】
メインＣＰＵ１２は、スマートカード３０から受け付けたスクランブル鍵Ｋｓを暗号復号回路１６に入力する。暗号復号回路１６は、暗号化されたデジタルＡＶ情報を復号し、復号したデジタルＡＶ情報を、伸長処理回路１７に出力する。復号されたデジタルＡＶ情報は、例えば、ＭＰＥＧ（Moving  Picture  Experts  Group）圧縮されている。【００１５】
伸長処理回路１７は、ＭＰＥＧ圧縮されたデジタルＡＶ情報を伸長する。例えば、デジタルＡＶ情報は伸長されることで、デジタルＲＧＢ（Red-Green-Blue）信号およびデジタルオーディオ信号となる。デジタルＲＧＢ信号は、グラフィック回路１８に入力される。グラフィック回路１８は、デジタルＲＧＢ信号に対応する画像情報を、表示装置６に表示させる。【００１６】
ここで、例えば、メインＣＰＵ１２上で動作するソフトウェアがハッキングされた場合には、マスター鍵Ｋｍ、ワーク鍵Ｋｗが盗難される恐れがある。ソフトウェアがハッキングされると、ソフトウェアを無断で改竄され、スマートカード３０内のマスター鍵Ｋｍやワーク鍵Ｋｗが無断でコピーされる。そうすると、マスター鍵Ｋｍやワーク鍵Ｋｗがインターネット上で公開される恐れがあり、無断で誰もが有料放送チャンネルを視聴できる場合がある。【００１７】
スマートカード３０は、メインＣＰＵ１２から容易に覗き見や改竄ができないように、専用の不揮発性メモリにマスター鍵Ｋｍを格納する。これによって、メインＣＰＵ１２上で動作するソフトウェアがハッキングされても、マスター鍵Ｋｍや、マスター鍵Ｋｍで復号されるワーク鍵Ｋｗが外部に漏洩することを抑止できる。【００１８】
続いて、スマートカード３０の構成の一例について説明する。図２２は、従来のスマートカードの構成を示す図である。図２２に示すように、このスマートカード３０は、ＣＰＵ３１と、ＢｏｏｔＲＯＭ３２と、ＲＯＭ３３と、ＮＶＲＡＭ３４と、ＲＡＭ３５と、暗号回路３６と、Ｃｌｏｃｋ３７と、シリアルＩＦ３８を有する。シリアルＩＦ３８は、シリアルＩＦ３９を介して、バス１９に接続する。スマートカード３０は、外部からの覗き見や改竄を困難にするカードで覆われる。【００１９】
ＣＰＵ３１は、スマートカード３０全体を制御する装置である。ＢｏｏｔＲＯＭ３２には、ＣＰＵ３１が起動した場合の初期命令の情報が格納される。ＲＯＭ３３には、例えば、Ｂ−ＣＡＳプログラムや、シリアルＩＦ処理プログラムが格納される。ＮＶＲＡＭ３４には、マスター鍵Ｋｍ、ワーク鍵Ｋｗ、契約番組情報等が格納される。ＲＡＭ３５は、ＣＰＵ３１が各種プログラムを実行する場合に利用する作業領域となる。【００２０】
スマートカード３０に電源が入力されると、ＣＰＵ３１は、ＢｏｏｔＲＯＭ３２から初期命令を入手し、この初期命令に応じた処理を実行する。例えば、ＣＰＵ３１は、ＲＯＭ３３に格納されたＢ−ＣＡＳプログラムおよびシリアルＩＦ処理プログラムをＲＡＭ３５にコピーし、このＢ−ＣＡＳプログラムおよびシリアルＩＦ処理プログラムを実行できるようにする。例えば、Ｂ−ＣＡＳプログラムは、後述するＥＭＭ処理、ＥＣＭ処理を実行するプログラムである。シリアルＩＦ処理プログラムは、シリアルＩＦ３８を介して外部と情報をやり取りする処理を実行するプログラムである。【００２１】
ＣＰＵ３１は、シリアルＩＦ３８からパケットが入力されると、シリアルＩＦ処理プログラムを起動させる。シリアルＩＦ３８から入力されるパケットは、シリアルな情報であるため、ＣＰＵ３１は、このシリアルな情報をパラレルな情報に変換し、パケットの識別を行う。【００２２】
ＣＰＵ３１は、パケットがＥＭＭである場合には、下記のＥＭＭ処理を実行する。ＣＰＵ３１は、マスター鍵Ｋｍを、ＮＶＲＡＭ３４から取り出し、暗号回路３６に設定し、ＥＭＭを暗号回路３６に入力することで、ワーク鍵Ｋｗを復号する。ＣＰＵ３１は、復号したワーク鍵ＫｗをＮＶＲＡＭ３４に格納する。【００２３】
一般的に、ワーク鍵Ｋｗは、チャンネル毎に異なる。ＥＭＭには、チャンネル情報とワーク鍵Ｋｗの整理番号が含まれる。ＣＰＵ３１は、ＥＭＭに含まれるチャンネル情報と、整理番号と、ワーク鍵Ｋｗとを対応付けて、ＮＶＲＡＭ３４に格納する。【００２４】
ＣＰＵ３１は、パケットがＥＣＭである場合には、下記のＥＣＭ処理を実行する。ＥＣＭには、暗号化されたスクランブル鍵Ｋｓと、ワーク鍵Ｋｗの整理番号が含まれる。ＣＰＵ３１は、ＥＣＭの整理番号に対応するワーク鍵ＫｗをＮＶＲＡＭ３４から取り出す。ＣＰＵ３１は、取り出したワーク鍵Ｋｗを暗号回路３６に設定し、ＥＣＭを暗号回路３６に入力することで、スクランブル鍵Ｋｓを復号する。【００２５】
ＣＰＵ３１は、スクランブル鍵Ｋｓを復号した後に、スクランブル鍵Ｋｓの情報をシリアル変換して、シリアルＩＦ３８から出力する。スクランブル鍵Ｋｓは、シリアルＩＦ３９、バス１９を介して、受信端末１０のメインＣＰＵ１２に到達する。
【先行技術文献】
【特許文献】
【００２６】
【特許文献１】特開２０１０−２３３２２２号公報
【発明の概要】
【発明が解決しようとする課題】
【００２７】
しかしながら、上述した従来技術では、セキュア領域内の不揮発性メモリの記憶容量が小さく、複数のプログラムを実装することできないという問題がある。【００２８】
例えば、図２２に示したＮＶＲＡＭ３４の記憶容量が小さいため、後々のプログラムの増大に対応することが難しい。【００２９】
１つの側面では、セキュア領域内の不揮発性メモリの記憶容量が小さい場合でも、複数のプログラムを実装することができるセキュリティ装置を提供することを目的とする。
【課題を解決するための手段】
【００３０】
第１の案では、セキュリティ装置は、セキュア領域内にプロセッサと記憶容量が所定容量未満となる第１メモリを有する。プロセッサは、秘密の入力路から暗号化された第１情報および暗号化された第２情報が入力されると、第１情報および第２情報を復号して第１メモリに第１情報を格納する。プロセッサは、復号した第１情報を基にした暗号鍵を用いて、復号した第２情報を暗号化し、暗号化した第２情報を、セキュア領域の外部に存在する第２メモリに格納することを依頼する。
【発明の効果】
【００３１】
本発明の１実施態様によれば、セキュア領域内の不揮発性メモリの記憶容量が小さい場合でも、複数のプログラムを実装することができる。
【図面の簡単な説明】
【００３２】
【図１】図１は、本実施例１に係るシステムＬＳＩの一例を示す図である。
【図２】図２は、変換回路群の処理を説明するための図である。
【図３】図３は、イネーブル回路の一例を示す図である。
【図４】図４は、本実施例１に係るシステムＬＳＩの処理手順を示すフローチャートである。
【図５】図５は、本実施例１に係るセキュア領域の処理手順を示すフローチャートである。
【図６】図６は、本実施例１に係るセキュア領域の初期化処理手順を示すフローチャートである。
【図７】図７は、初期設定を行うプロセスの一例を示す図（１）である。
【図８】図８は、初期設定を行うプロセスの一例を示す図（２）である。
【図９】図９は、本実施例２に係るシステムＬＳＩの一例を示す図である。
【図１０】図１０は、本実施例２に係るセキュア領域の初期化処理手順を示すフローチャートである。
【図１１】図１１は、初期設定を行うプロセスの一例を示す図（３）である。
【図１２】図１２は、初期設定を行うプロセスの一例を示す図（４）である。
【図１３】図１３は、本実施例３に係るシステムＬＳＩの一例を示す図である。
【図１４】図１４は、ＣＰＵがプログラムの指定領域にユニーク値を挿入する処理を説明するための図である。
【図１５】図１５は、本実施例３に係るセキュア領域の初期化処理手順を示すフローチャートである。
【図１６】図１６は、本実施例３に係るセキュア領域の処理手順を示すフローチャートである。
【図１７】図１７は、本実施例４に係るシステムＬＳＩの一例を示す図である。
【図１８】図１８は、ＥＣＭのデータ構造の一例を示す図である。
【図１９】図１９は、その他のシステム構成例を示す図である。
【図２０】図２０は、ＣＡＳ方式による処理の一例を説明するための図である。
【図２１】図２１は、従来の受信端末の構成を示す図である。
【図２２】図２２は、従来のスマートカードの構成を示す図である。
【発明を実施するための形態】
【００３３】
以下に、本発明にかかるセキュリティ装置および制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００３４】
本実施例１に係るシステムＬＳＩの構成について説明する。図１は、本実施例１に係るシステムＬＳＩの一例を示す図である。図１に示すように、このシステムＬＳＩ５０ａは、メインＣＰＵ５１、ＩＦ５２ａ，５２ｂ，５２ｃ、ＢｏｏｔＲＯＭ５３、ＲＡＭ５４、イーサネット（商標登録、以下省略）ＩＦ５５、Ｔｕｎｅｒ５６、伸長処理回路５７、グラフィック回路５８、セキュア領域１００を有する。システムＬＳＩ５０ａは、ＮＶＲＡＭ６０に接続される。【００３５】
例えば、メインＣＰＵ５１、ＢｏｏｔＲＯＭ５３、イーサネットＩＦ５５、Ｔｕｎｅｒ５６、伸長処理回路５７、グラフィック回路５８は、バス５９に接続される。ＲＡＭ５４は、ＩＦ５２ｂを介して、バス５９に接続される。セキュア領域１００は、ＩＦ５２ａを介して、バス５９に接続される。本実施例１では、ＲＡＭ５４が、ＩＦ５２ｂを介してシステムＬＳＩ５０ａの外部に接続される例を示すが、これに限定されるものではなく、システムＬＳＩ５０ａの内部にＲＡＭ５４を設置してもよい。【００３６】
メインＣＰＵ５１は、システムＬＳＩ５０ａ全体を制御する装置である。メインＣＰＵ５１は、電源が投入されると、ＢｏｏｔＲＯＭの初期命令をＲＡＭ５４に読み出し、初期命令に応じた処理を実行する。例えば、メインＣＰＵ５１は、初期命令に従って、ＮＶＲＡＭに格納されたメインＣＰＵ用のプログラム群を、ＲＡＭ５４に書き込む。メインＣＰＵ用のプログラム群には、ＯＳ（Operating  System）のプログラムが含まれる。【００３７】
メインＣＰＵ５１は、ＯＳのプログラムをＲＡＭ５４に書き込むと、ＯＳに基づく処理に移行する。例えば、メインＣＰＵ５１は、イーサネットＩＦ５５、Ｔｕｎｅｒ５６、伸長処理回路５７、グラフィック回路５８、セキュア領域１００を起動する。メインＣＰＵ５１に起動された各装置は、例えば、下記の処理を実行する。【００３８】
イーサネットＩＦ５５は、インターネット（Internet）接続を行い、サーバ等の外部装置と情報をやり取りする。【００３９】
Ｔｕｎｅｒ５６は、放送電波から多重化ＭＰＥＧストリームを取得し、取得した多重化ＭＰＥＧストリームから圧縮ビデオストリームを抽出する。圧縮ビデオストリームが暗号化されていない場合には、Ｔｕｎｅｒ５６は、圧縮ビデオストリームを、伸長処理回路５７に出力する。【００４０】
伸長処理回路５７は、圧縮ビデオストリームを伸長する。例えば、圧縮ビデオストリームは伸長されることで、デジタルＲＧＢ信号およびデジタルオーディオ信号となる。伸長処理回路５７は、デジタルＲＧＢ信号をグラフィック回路５８に出力し、オーディオ信号を図示しないオーディオ回路に出力する。【００４１】
グラフィック回路５８は、デジタルＲＧＢ信号にグラフィック情報を付加し、映像を出力する。グラフィック情報は、例えば、チャンネル情報や字幕情報に対応する。【００４２】
一方、圧縮ビデオストリームが暗号化されている場合には、メインＣＰＵ５１がＥＭＭやＥＣＭをセキュア領域１００に入力する。セキュア領域１００は、ＥＭＭやＥＣＭが入力されると、スクランブル鍵Ｋｓを復号し、メインＣＰＵ５１にスクランブル鍵Ｋｓを出力する。【００４３】
メインＣＰＵ５１は、伸長処理回路５７に含まれる暗号回路にスクランブル鍵Ｋｓを設定し、暗号回路は、スクランブル鍵Ｋｓを用いて、圧縮ビデオストリームを復号する。伸長処理回路５７は、復号した圧縮ビデオストリームを伸長する処理を行う。【００４４】
続いて、セキュア領域１００の構成について説明する。図１に示すように、セキュア領域１００は、ＣＰＵ１１０、ＢｏｏｔＲＯＭ１２０、ＲＡＭ１３０、メモリ１４０、変換回路群１５０、暗号回路群１６０、秘密の入力路ＩＦ１７０を有する。【００４５】
ＣＰＵ１１０は、セキュア領域１００全体を制御する装置である。例えば、ＣＰＵ１１０は、管理プログラムを実行して、管理プログラムの処理手順に従い、セキュア領域１００全体を制御する。ＢｏｏｔＲＯＭ１２０は、ＣＰＵ１１０が起動した場合に読み出される初期命令の情報を格納する。ＲＡＭ１３０は、ＣＰＵ１１０が各種プログラムを実行する場合に利用する作業領域となる。【００４６】
メモリ１４０は、小容量の不揮発性メモリである。メモリ１４０は、秘密値「ｘｘｘ」と、複数の識別子と格納する。メモリ１４０の記憶容量は、係る秘密値と複数の識別子を記憶できる程度のものでよい。秘密値および識別子は、セキュア領域１００の初期化時にメモリ１４０に格納される。秘密値と識別子とのペアにより、システムＬＳＩ５０ａの識別、セキュア領域１００の識別、受信端末メーカの識別を行うことが可能となる。【００４７】
例えば、メモリ１４０には、秘密値「ｘｘｘ」と、識別子「ｗｗｗ」、「ｙｙｙ」、「ｂｂｂ」が格納されているものとする。秘密値「ｘｘｘ」と識別子「ｗｗｗ」とのペアは、システムＬＳＩ５０ａを一意に識別する情報となる。秘密値「ｘｘｘ」と識別子「ｙｙｙ」とのペアは、セキュア領域１００を一意に識別する情報となる。秘密値「ｘｘｘ」と識別子「ｂｂｂ」とのペアは、受信端末メーカを一意に識別する情報となる。ここでは、一例として、３種類の識別子を示したが、その他の識別子が存在してもよい。【００４８】
メモリ１４０に格納される秘密値は門外不出の情報である。これに対して、ＣＰＵ１１０は、メインＣＰＵ５１から識別子の開示依頼を受け付けた場合には、識別子をメインＣＰＵ５１に開示してもよい。また、仮に、メモリ１４０の秘密値および識別子が漏洩した場合には、秘密値と識別子とのペアに基づき、漏洩元を特定することが可能となる。【００４９】
変換回路群１５０は、メモリ１４０に格納された秘密値に基づき固有暗号鍵を生成する回路群である。図２は、変換回路群の処理を説明するための図である。図２に示す例では、変換回路群１５０は、暗号回路１５０ａ，１５０ｂ，１５０ｃを有する。固有暗号鍵を生成する場合には、ＣＰＵ１１０が、メモリ１４０に格納された秘密値「ｘｘｘ」を、暗号回路１５０ａ，１５０ｂ，１５０ｃに入力する。また、ＣＰＵ１１０は、暗号鍵「ｙｙｙ」を暗号回路１５０ａに入力し、暗号鍵「ｚｚｚ」を暗号回路１５０ｂに入力し、暗号鍵「ｗｗｗ」を暗号回路１５０ｃに入力する。ここで、暗号鍵「ｙｙｙ」、「ｚｚｚ」、「ｗｗｗ」は、セキュア領域１００内に予め設定された情報である。暗号鍵「ｙｙｙ」、「ｚｚｚ」、「ｗｗｗ」は、セキュア領域１００毎に固有の情報でなくてもよい。【００５０】
暗号回路１５０ａは、秘密値「ｘｘｘ」および暗号鍵「ｙｙｙ」の入力を受け付けると、秘密値「ｘｘｘ」および暗号鍵「ｙｙｙ」を基にして、固有暗号鍵７０ａを出力する。暗号回路１５０ｂは、秘密値「ｘｘｘ」および暗号鍵「ｚｚｚ」の入力を受け付けると、秘密値「ｘｘｘ」および暗号鍵「ｚｚｚ」を基にして、固有暗号鍵７０ｂを出力する。暗号回路１５０ｃは、秘密値「ｘｘｘ」および暗号鍵「ｗｗｗ」の入力を受け付けると、秘密値「ｘｘｘ」および暗号鍵「ｗｗｗ」を基にして、固有暗号鍵７０ｃを出力する。【００５１】
暗号回路群１６０は、各種情報の暗号化、復号を行う回路群である。暗号回路群１６０が暗号化、復号を行う処理の説明は後述する。【００５２】
秘密の入力路ＩＦ１７０は、予め管理者等により取り決められた秘密の入力信号を受け付けると、秘密の入力路ＩＦ１７０を介した情報の入力を許容するインターフェースである。例えば、初期設定時に、秘密の入力路ＩＦ１７０を介して、上記の秘密値や識別子、マスター鍵Ｋｓ、各種プログラムが入力される。【００５３】
秘密の入力路ＩＦ１７０は、イネーブル回路を用いて、情報の入力を許容するか否かを判定する。図３は、イネーブル回路の一例を示す図である。図３に示すように、イネーブル回路８０は、一次記憶部８０ａおよび比較器８０ｂを有する。一次記憶部８０ａは、クロックと同期して、イネーブル入力信号を一時的に格納する装置である。比較器８０ｂは、ラッチ信号に基づき、一次記憶部８０ａに格納されたイネーブル入力信号を取り込み、取り込んだイネーブル入力信号が、予め設定されていた信号と一致した場合に、イネーブル信号を、秘密の入力路ＩＦ１７０に出力する。秘密の入力路ＩＦ１７０は、イネーブル回路８０からイネーブル信号を受け付けると、外部からの入力情報の入力を許容する。【００５４】
セキュア領域１００の初期設定時の処理について説明する。ＣＰＵ１１０は、秘密の入力ＩＦ路１７０から入力情報を受け付ける。入力情報には、メモリ１４０に格納する第１入力情報と、セキュア領域１００の外部のＮＶＲＡＭ６０に格納する第２入力情報とが含まれる。第１入力情報および第２入力情報は、暗号化されている。【００５５】
例えば、第１入力情報には、上述した秘密値と、複数の識別子が含まれる。ＣＰＵ１１０は、暗号化された第１入力情報を受け付けると、セキュア領域１００内に設定された暗号鍵「ｓｓｓ」と、暗号化された第１入力情報とを暗号回路群１６０に入力して、第１入力情報を復号する。【００５６】
ＣＰＵ１１０は、メモリ１４０に対応する書き込み禁止フラグを基にして、復号した第１入力情報を、メモリ１４０に格納するか否かを判定する。この書き込み禁止フラグは、図示しないメモリに格納される。ＣＰＵ１１０は、書き込み禁止フラグが「ＯＦＦ」である場合には、第１入力情報を、メモリ１４０に格納し、書き込み禁止フラグを「ＯＮ」に設定する。これに対して、ＣＰＵ１１０は、書き込み禁止フラグが「ＯＮ」である場合には、第１入力情報を、メモリ１４０に格納する処理を抑止する。【００５７】
例えば、第２入力情報には、管理プログラム、Ｂ−ＣＡＳプログラム、マスター鍵Ｋｍ、ＩＦプログラム、ＤＲＭプログラム、関連機密情報等が含まれる。また、第２入力情報は、複数のワーク鍵Ｋｗを有していてもよい。ＣＰＵ１１０は、暗号化された第２入力情報を受け付けると、セキュア領域１００内に設定された暗号鍵「ｓｓｓ」と、暗号化された第２入力情報とを暗号回路群１６０に入力して、第２入力情報を復号する。【００５８】
更に、ＣＰＵ１１０は、復号した第２入力情報と、変換回路群１５０により生成された固有暗号鍵とを暗号回路群１６０に入力して、第２入力情報を暗号化する。ＣＰＵ１１０は、第２入力情報を暗号化する場合に、共通の固有暗号鍵で暗号化してもよいし、複数の固有暗号鍵を用いて、暗号化してもよい。以下の説明において、固有暗号鍵によって暗号化した第２入力情報を、「固有暗号化情報」と表記する。【００５９】
ＣＰＵ１１０は、ＩＦプログラムをＲＡＭ１３０に展開して実行することで、下記の処理を実行する。ＣＰＵ１１０は、ＩＦ５２ａを介して、固有暗号化情報をメインＣＰＵ５１に出力し、固有暗号化情報をＮＶＲＡＭ６０に格納することを依頼する。メインＣＰＵ５１は、セキュア領域１００内から固有暗号化情報を取得すると、固有暗号化情報を、ＮＶＲＡＭ６０に格納する。【００６０】
ＣＰＵ１１０は、第２入力情報を暗号化する場合に、第２入力情報のハッシュ値を算出し、算出したハッシュ値を固有暗号化情報に付加してもよい。ハッシュ値を固有暗号化情報に付加することで、ＮＶＲＡＭ６０に格納された固有暗号化情報が改竄されたか否かを検出することができる。【００６１】
例えば、ＣＰＵ１１０は、メインＣＰＵ５１にＮＶＲＡＭ６０に格納された固有暗号化情報の読み出しを依頼し、固有暗号化情報を取得すると、固有暗号鍵と、固有暗号化情報と暗号回路群１６０に入力することで、第２入力情報を取り出す。ＣＰＵ１１０は、第２入力情報から算出されるハッシュ値と、固有暗号化情報に付加されたハッシュ値が一致するか否かにより、改竄されたか否かを判定する。【００６２】
また、ＣＰＵ１１０は、ＮＶＲＡＭ６０に固有暗号化情報が正しく書き込まれたか否かを確認することを目的とした処理を行ってもよい。ＣＰＵ１１０は、メインＣＰＵ５１に固有暗号化情報を格納することを依頼した直後に、メインＣＰＵ５１に対して、ＮＶＲＡＭ６０に格納された固有暗号化情報の読み出しを要求する。例えば、ＣＰＵ１１０は、固有暗号化情報を、一時的にＲＡＭ１３０に残しておき、ＲＡＭ１３０の固有暗号化情報と、ＮＶＲＡＭ６０から読み出された固有暗号化情報とを比較して、固有暗号化情報が正しく書き込まれているか否かを判定する。【００６３】
ＣＰＵ１１０は、ＮＶＲＡＭ６０に固有暗号化情報が正しく書き込まれていない場合には、再度、固有暗号化情報をメインＣＰＵ５１に出力し、固有暗号化情報をＮＶＲＡＭ６０に格納することを依頼する。【００６４】
上述した初期化設定完了後に、セキュア領域１００がメインＣＰＵ５１の指示により起動した場合の処理について説明する。ＣＰＵ１１０は、メインＣＰＵ５１から起動指示を受けると、ＢｏｏｔＲＡＭ１２０に格納された初期命令を実行することで、下記の処理を実行する。【００６５】
ＣＰＵ１１０は、メモリ１４０に格納された秘密値「ｘｘｘ」と暗号鍵とを読み出して、変換回路群１５０に入力して、固有暗号鍵を生成する。固有暗号鍵を生成する処理は、図２で説明した処理に対応する。【００６６】
ＣＰＵ１１０は、メインＣＰＵ５１に対して、ＮＶＲＡＭ６０から固有暗号化情報の読み出しを依頼する。ＣＰＵ１１０は、固有暗号化情報を取得すると、固有暗号化情報と、固有暗号鍵とを暗号回路群１６０に入力して、固有暗号化情報を復号し、第２入力情報を取り出す。ＣＰＵ１１０は、第２入力情報をＲＡＭ１３０に格納し、Ｂ−ＣＡＳプログラム、ＩＦプログラム、ＤＲＭプログラム等を実行できるようにする。例えば、Ｂ−ＣＡＳプログラムは、ＥＭＭ処理、ＥＣＭ処理を実行するプログラムである。ＩＦプログラムは、ＩＦ５２ａを介して外部のメインＣＰＵ５１と情報をやり取りする処理を実行するプログラムである。ＤＲＭプログラムは、各種のデジタルデータとして表現されたコンテンツの著作権を保護するために、デジタルデータを用いた処理を制限・制御するプログラムである。【００６７】
ＣＰＵ１１０は、ＩＦ５２ａからパケットを取得すると、パケットの識別を行う。ＣＰＵ１１０は、パケットがＥＭＭである場合には、下記のＥＭＭ処理を実行する。ＣＰＵ１１０は、マスター鍵ＫｍをＲＡＭ１３０から取り出し、暗号回路群１６０に設定し、ＥＭＭを暗号回路群１６０に入力することで、ワーク鍵Ｋｗと識別番号とを復号する。ＣＰＵ１１０は、復号したワーク鍵Ｋｗと識別番号と対応付けてＲＡＭ１３０に格納する。【００６８】
ＣＰＵ１１０は、パケットがＥＣＭである場合には、下記のＥＣＭ処理を実行する。ＥＣＭには、暗号化されたスクランブル鍵Ｋｓと、ワーク鍵Ｋｗの整理番号が含まれる。ＣＰＵ１１０は、ＥＣＭの整理番号に対応するワーク鍵ＫｗをＲＡＭ１３０から取り出す。ＣＰＵ１１０は、取り出したワーク鍵Ｋｗを暗号回路群１６０に設定し、ＥＣＭを暗号回路群１６０に入力することで、スクランブル鍵Ｋｓを復号する。【００６９】
ＣＰＵ１１０は、スクランブル鍵Ｋｓを復号した後に、スクランブル鍵Ｋｓの情報を、ＩＦ５２ａを介して、メインＣＰＵ５１に出力する。【００７０】
次に、本実施例１に係るシステムＬＳＩ５０ａの処理手順の一例について説明する。図４は、本実施例１に係るシステムＬＳＩの処理手順を示すフローチャートである。図４に示すように、システムＬＳＩ５０ａは、電源が投入されると（ステップＳ１０１）、メインＣＰＵ５１がＢｏｏｔＲＯＭ５３の初期命令をＲＡＭ５４に書き込む（ステップＳ１０２）。【００７１】
メインＣＰＵ５１は、初期命令に従い、ＮＶＲＡＭ６０に格納されたメインＣＰＵ用プログラム群の情報をＲＡＭ５４に書き込む（ステップＳ１０３）。メインＣＰＵ５１は、ＯＳに基づく処理に移行する（ステップＳ１０４）。【００７２】
メインＣＰＵ５１は、セキュア領域１００および他装置を起動する（ステップＳ１０５）。Ｔｕｎｅｒ５６が放送電波から多重化ＭＰＥＧストリームを取得し、圧縮ビデオストリームを抽出する（ステップＳ１０６）。メインＣＰＵ５１は、圧縮ビデオストリームが暗号化されているか否かを判定する（ステップＳ１０７）。圧縮ビデオストリームが暗号化されていない場合には（ステップＳ１０７，Ｎｏ）、伸長処理回路５７が圧縮ビデオストリームをデジタルＲＧＢ信号に伸長する（ステップＳ１０８）。グラフィック回路５８は、デジタルＲＧＢ信号を基にして映像を出力する（ステップＳ１０９）。【００７３】
ステップＳ１０７の説明に戻る。メインＣＰＵ５１は、圧縮ビデオストリームが暗号化されている場合には（ステップＳ１０７，Ｙｅｓ）、ＥＭＭおよびＥＣＭをセキュア領域１００に出力する（ステップＳ１１０）。セキュア領域１００のＣＰＵ１１０は、スクランブル鍵Ｋｓを復号して、メインＣＰＵ５１に通知する（ステップＳ１１１）。メインＣＰＵ５１は、スクランブル鍵Ｋｓと圧縮ビデオストリームを伸長処理回路５７に含まれる暗号回路に設定して、圧縮ビデオストリームを復号し（ステップＳ１１２）、ステップＳ１０８に移行する。【００７４】
次に、図４のステップＳ１０５で示したセキュア領域１００を起動した場合のセキュア領域１００の処理手順について説明する。図５は、本実施例１に係るセキュア領域の処理手順を示すフローチャートである。図５に示すように、セキュア領域１００が起動すると（ステップＳ２０１）、ＣＰＵ１１０は、ＢｏｏｔＲＯＭ１２０の初期命令を実行する（ステップＳ２０２）。【００７５】
ＣＰＵ１１０は、メモリ１４０に格納された秘密値「ｘｘｘ」と、暗号鍵を変換回路群１５０に入力して固有暗号鍵を生成する（ステップＳ２０３）。ＣＰＵ１１０は、メインＣＰＵ５１に対して、ＮＶＲＡＭ６０から固有暗号化情報の読み出しを依頼する（ステップＳ２０４）。【００７６】
ＣＰＵ１１０は、外部からＩＦ５２ａを介して固有暗号化情報を取得する（ステップＳ２０５）。ＣＰＵ１１０は、固有暗号化情報を、固有暗号鍵を用いて復号することで、第２入力情報を取り出す（ステップＳ２０６）。ＣＰＵ１１０は、第２入力情報を、ＲＡＭ１３０に格納する（ステップＳ２０７）。【００７７】
次に、本実施例１のセキュア領域の初期化処理の一例について説明する。この初期化処理は、図４および図５に示した処理手順よりも前に実行される。図６は、本実施例１に係るセキュア領域の初期化処理手順を示すフローチャートである。図６に示すように、セキュア領域１００の秘密の入力路ＩＦ１７０は、入力情報を受け付け（ステップＳ３０１）、イネーブル回路からイネーブル信号が出力されたか否かを判定する（ステップＳ３０２）。【００７８】
セキュア領域１００は、イネーブル回路からイネーブル信号が出力されない場合には（ステップＳ３０２，Ｎｏ）、処理を終了する。一方、イネーブル回路からイネーブル信号が出力された場合には（ステップＳ３０２，Ｙｅｓ）、ＣＰＵ１１０は、書き込み禁止フラグが「ＯＮ」であるか否かを判定する（ステップＳ３０３）。【００７９】
ＣＰＵ１１０は、書き込み禁止フラグが「ＯＮ」である場合には（ステップＳ３０３，Ｙｅｓ）、処理を終了する。一方、ＣＰＵ１１０は、書き込み禁止フラグが「ＯＮ」でない場合には（ステップＳ３０３，Ｎｏ）、暗号鍵「ｓｓｓ」を用いて、入力情報を復号する（ステップＳ３０４）。例えば、入力情報には、第１入力情報と第２入力情報が含まれる。【００８０】
ＣＰＵ１１０は、第１入力情報をメモリ１４０に格納し（ステップＳ３０５）、書き込み禁止フラグを「ＯＮ」にセットする（ステップＳ３０６）。ＣＰＵ１１０は、第１入力情報に含まれる秘密値「ｘｘｘ」と暗号鍵とを変換回路群１５０に入力することで、固有暗号鍵を生成する（ステップＳ３０７）。【００８１】
ＣＰＵ１１０は、固有暗号鍵を用いて、第２入力情報を暗号化することで、固有暗号化情報を生成する（ステップＳ３０８）。ＣＰＵ１１０は、メインＣＰＵ５１に固有暗号化情報を出力し、ＮＶＲＡＭ６０への格納を依頼する（ステップＳ３０９）。【００８２】
次に、実施例１に係るセキュア領域の各種の初期設定プロセスの一例について説明する。まず、受信機工場出荷段階でのセキュア領域１００の初期設定を行うプロセスについて説明する。一例として、「管理団体」が存在し、管理団体は、セキュア領域１００に書き込むべき情報を管理しているものとする。管理団体から暗号化された状態で、セキュア領域１００用の機密情報が受信機工場に届く。この機密情報には、上記の第１入力情報および第２入力情報が含まれる。なお、第１入力情報に含まれる秘密値と識別子とは、ペアでなくてもよいが、この場合には、秘密値を識別することが困難になる。【００８３】
図７は、初期設定を行うプロセスの一例を示す図（１）である。受信機工場の作業員は、管理団体から機密情報を取得する（ステップＳ１０）。例えば、機密情報は暗号化されており、小容量のメモリ１４０用の第１入力情報と、外付けのＮＶＲＡＭ６０用の第２入力情報が含まれる。【００８４】
受信機工場の作業員は、秘密の入力路ＩＦ１７０を介して、小容量のメモリ１４０に第１入力情報を書き込む（ステップＳ１１）。例えば、第１入力情報には、システムＬＳＩに対応する秘密値と識別子とのペア、セキュア領域１００に対応する秘密値と識別子とのペア、受信機メーカに対応する秘密値と識別子とのペアが含まれる。【００８５】
受信機工場の作業員は、秘密の入力路ＩＦ１７０を介して、外付けのＮＶＲＡＭ６０に固有暗号化情報を書き込む（ステップＳ１２）。図６の初期化処理で説明したように、秘密の入力路ＩＦ１７０を介して入力された第２入力情報は、固有暗号鍵によって暗号化されて、固有暗号化情報となり、ＮＶＲＡＭ６０に書き込まれる。【００８６】
例えば、第２入力情報のうち、セキュア関連情報は、セキュア領域１００に対応する秘密値と識別子とのペアから生成される固有暗号鍵を用いて暗号化される。第２入力情報のうち、システムＬＳＩ関連情報は、システムＬＳＩに対応する秘密値と識別子とのペアから生成される固有暗号鍵を用いて暗号化される。第２入力情報のうち、受信機関連情報は、受信機メーカに対応する秘密値と識別子とのペアから生成される固有暗号鍵を用いて暗号化される。【００８７】
ここで、小容量のメモリ１４０に第１入力情報を書き込み、外付けのＮＶＲＡＭ６０に固有暗号化情報を書き込んだ後に、受信機工場の作業員は、受信機の動作試験などを行ってもよい。工場出荷の最終段階において、受信機工場の作業員は、書き込み禁止フラグをＯＮにする（ステップＳ１３）。【００８８】
次に、ＬＳＩ工場と受信機工場が分担して初期設定を行うプロセスについて説明する。例えば、ＬＳＩ工場および受信機工場に、管理団体から暗号化された状態で、機密情報が届く。例えば、ＬＳＩ工場に届く機密情報には、第１入力情報が含まれる。受信機工場に届く機密情報には、第２入力情報が含まれる。【００８９】
図８は、初期設定を行うプロセスの一例を示す図（２）である。例えば、図８において、ステップＳ２０およびステップＳ２１のプロセスは、ＬＳＩ工場で行われる。ステップＳ２２のプロセスは、受信機工場で行われる。ＬＳＩ工場の作業員および受信機工場の作業員は、管理団体から機密情報を取得する。【００９０】
ＬＳＩ工場の作業員は、秘密の入力路ＩＦ１７０を介して、小容量のメモリ１４０に第１入力情報を書き込む（ステップＳ２０）。例えば、第１入力情報には、システムＬＳＩに対応する秘密値と識別子とのペア、セキュア領域１００に対応する秘密値と識別子とのペア、受信機メーカに対応する秘密値と識別子とのペアが含まれる。【００９１】
ＬＳＩ工場の作業員は、小容量のメモリ１４０に第１入力情報を書き込んだ後に、小容量のメモリ１４０に対する書き込み禁止フラグをＯＮにする（ステップＳ２１）。【００９２】
受信機工場の作業員は、秘密の入力路ＩＦ１７０を介して、外付けのＮＶＲＡＭ６０に固有暗号化情報を書き込む（ステップＳ２２）。図６の初期化処理で説明したように、秘密の入力路１７０を介して入力された第２入力情報は、固有暗号鍵によって暗号化されて、固有暗号化情報となり、ＮＶＲＡＭ６０に書き込まれる。【００９３】
次に、本実施例１に係るセキュア領域１００の効果について説明する。セキュア領域１００は、このセキュア領域１００内で動作するＣＰＵ１１０が、秘密の入力路ＩＦ１７０から秘密値を含む第１入力情報と、各種プログラムやマスター鍵等を含む第２入力情報を暗号化された状態で取得する。ＣＰＵ１１０は、第１入力情報および第２入力情報を復号して、第１入力情報をメモリ１４０に格納する。ＣＰＵ１１０は、第１入力情報を基にした固有暗号鍵を生成し、固有暗号鍵で、第２入力情報を暗号化し、暗号化した第２入力情報を外部に存在するＮＶＲＡＭ６０に格納することを、外部のメインＣＰＵ５１に依頼する。これによって、セキュア領域内のメモリ１４０の記憶容量が小さい場合でも、外付けのＮＶＲＡＭ６０を利用して複数のプログラムを実装することができる。【００９４】
また、外付けのＮＶＲＡＭ６０は、セキュア領域内の秘密値「ｘｘｘ」から生成される固有暗号鍵によって暗号化されているため、固有暗号化情報が漏洩することを防止することができる。【００９５】
ところで、第１入力情報を格納するメモリ１４０および書き込み禁止フラグを格納するメモリを、一度書き込まれた情報の更新を許容しないＯＴＲ（One  Time  Rom）としてもよい。また、メモリ１４０をＯＴＲとし、書き込み禁止フラグを格納するメモリをＮＶＲＡＭとしてもよい。また、メモリ１４０をＮＶＲＡＭとし、書き込み禁止フラグを格納するメモリをＯＴＲとしてもよい。また、メモリ１４０および書き込み禁止フラグを格納するメモリをＮＶＲＡＭとしてもよい。また、メモリ１４０の一部の領域に、書き込み禁止フラグを設定する領域を設けてもよい。【００９６】
なお、上述した実施例１について、メモリ１４０は、第１メモリの一例である。ＮＶＲＡＭ６０は、第２メモリの一例である。書き込み禁止フラグを格納するメモリは、第３メモリの一例である。書き込み禁止フラグを格納するメモリの図示を省略する。
【実施例２】
【００９７】
本実施例２に係るシステムＬＳＩの構成について説明する。図９は、本実施例２に係るシステムＬＳＩの一例を示す図である。図９に示すように、このシステムＬＳＩ５０ｂは、メインＣＰＵ５１、ＩＦ５２ａ，５２ｂ，５２ｃ、ＢｏｏｔＲＯＭ５３、ＲＡＭ５４、イーサネットＩＦ５５、Ｔｕｎｅｒ５６、伸長処理回路５７、グラフィック回路５８、セキュア領域２００を有する。システムＬＳＩ５０ｂは、ＮＶＲＡＭ６０に接続される。【００９８】
このうち、メインＣＰＵ５１、ＩＦ５２ａ，５２ｂ，５２ｃ、ＢｏｏｔＲＯＭ５３、ＲＡＭ５４、イーサネットＩＦ５５、Ｔｕｎｅｒ５６、伸長処理回路５７、グラフィック回路５８に関する説明は、実施例１のものと同様である。【００９９】
ＮＶＲＡＭ６０は、メインＣＰＵ用プログラム群と、共通暗号化情報とを有する。共通暗号化情報は、各セキュア領域で共通の共通鍵により暗号化された第２入力情報である。第２入力情報に関する説明は、実施例１のものと同様である。かかる共通暗号化情報は、セキュア領域２００に入力され復号された後、セキュア領域２００の固有暗号鍵で暗号化され、固有暗号化情報として、ＮＶＲＡＭ６０に格納される。例えば、共通暗号化情報は、セキュア領域２００に入力された段階で、ＮＶＲＡＭ６０から削除される。【０１００】
セキュア領域２００の構成について説明する。図９に示すように、セキュア領域２００は、ＣＰＵ２１０、ＢｏｏｔＲＯＭ２２０、ＲＡＭ２３０、メモリ２４０、変換回路群２５０、暗号回路群２６０、秘密の入力路ＩＦ２７０を有する。【０１０１】
ＣＰＵ２１０は、セキュア領域２００全体を制御する装置である。ＢｏｏｔＲＯＭ２２０は、ＣＰＵ２１０が起動した場合に読み出される初期命令の情報を格納する。ＲＡＭ２３０は、ＣＰＵ２１０が各種プログラムを実行する場合に利用する作業領域となる。【０１０２】
メモリ２４０は、小容量の不揮発性メモリである。メモリ２４０は、秘密値「ｘｘｘ」と、複数の識別子と格納する。メモリ２４０の記憶容量は、係る秘密値と複数の識別子を記憶できる程度のものでよい。秘密値および識別子は、セキュア領域２００の初期化時にメモリ２４０に格納される。秘密値および識別子をメモリ２４０に格納する処理は、実施例１のセキュア領域１００と同様にして、秘密の入力路ＩＦ２７０を介して実行される。【０１０３】
変換回路群２５０は、メモリ２４０に格納された秘密値に基づき固有暗号鍵を生成する回路群である。変換回路群２５０に関する説明は、実施例１の変換回路群１５０に関する説明と同様である。【０１０４】
暗号回路群２６０は、各種情報の暗号化、復号を行う回路群である。暗号回路群２６０が暗号化、復号を行う処理は、実施例１の暗号回路群１６０に関する説明と同様である。【０１０５】
秘密の入力路ＩＦ２７０は、予め管理者等により取り決められた秘密の入力信号を受け付けると、秘密の入力路ＩＦ２７０を介した情報の入力を許容するインターフェースである。秘密の入力路ＩＦ２７０に関する説明は、実施例１の秘密の入力路ＩＦ１７０に関する説明と同様である。本実施例２に係るセキュア領域２００は、秘密の入力路ＩＦ２７０を介して、暗号化された第１入力情報を取得する。なお、セキュア領域２００は、第２入力情報を、共通暗号化情報として、ＩＦ５２ａから取得する。【０１０６】
セキュア領域２００の初期設定時の処理について説明する。ＣＰＵ２１０は、秘密の入力路ＩＦ２７０から第１入力情報を受け付ける。第１入力情報は、暗号化されている。【０１０７】
例えば、第１入力情報には、秘密値と、複数の識別子が含まれる。ＣＰＵ２１０は、暗号化された第１入力情報を受け付けると、セキュア領域２００内に設定された暗号鍵「ｓｓｓ」と、暗号化された第１入力情報とを暗号回路群２６０に入力して、第１入力情報を復号する。【０１０８】
ＣＰＵ２１０は、メモリ２４０に対応する書き込み禁止フラグを基にして、復号した第１入力情報を、メモリ２４０に格納するか否かを判定する。この書き込み禁止フラグは、図示しないメモリに格納される。ＣＰＵ２１０は、書き込み禁止フラグが「ＯＦＦ」である場合には、第１入力情報を、メモリ２４０に格納し、書き込み禁止フラグを「ＯＮ」に設定する。これに対して、ＣＰＵ２１０は、書き込み禁止グラフが「ＯＮ」である場合には、第１入力情報を、メモリ２４０に格納する処理を抑止する。【０１０９】
ＣＰＵ２１０は、メインＣＰＵ５１から初期化命令を受け付けた場合に、メインＣＰＵ５１に対して、ＮＶＲＡＭ６０に格納された共通暗号化情報を要求する。メインＣＰＵ５１は、ＣＰＵ２１０から要求に対応して、ＮＶＲＡＭ６０から共通暗号化情報を読み出し、セキュア領域２００に入力する。また、メインＣＰＵ５１は、共通暗号化情報をセキュア領域２００に入力した後に、ＮＶＲＡＭ６０から共通暗号化情報を削除する。【０１１０】
ＣＰＵ２１０は、メインＣＰＵ５１から共通暗号化情報を取得すると、セキュア領域２００内に設定された共通鍵と、共通暗号化情報とを暗号回路群２６０に入力して、共通暗号化情報を復号し、第２入力情報を取り出す。【０１１１】
ＣＰＵ２１０は、復号した第２入力情報と、変換回路群２５０により生成された固有暗号鍵とを暗号回路群２６０に入力して、第２入力情報を暗号化する。ＣＰＵ２１０は、第２入力情報を暗号化する場合に、共通の固有暗号鍵で暗号化してもよいし、複数の固有暗号鍵を用いて、暗号化してもよい。固有暗号鍵を用いて暗号化した第２入力情報を、固有暗号化情報と表記する。【０１１２】
ＣＰＵ２１０は、ＩＦプログラムをＲＡＭ２３０に展開して実行することで、下記の処理を実行する。ＣＰＵ２１０は、ＩＦ５２ａを介して、固有暗号化情報をメインＣＰＵ５１に出力し、固有暗号化情報をＮＶＲＡＭ６０に格納することを依頼する。メインＣＰＵ５１は、セキュア領域２００内から固有暗号化情報を取得すると、固有暗号化情報を、ＮＶＲＡＭ６０に格納する。【０１１３】
次に、本実施例２のセキュア領域の初期化処理の一例について説明する。図１０は、本実施例２に係るセキュア領域の初期化処理手順を示すフローチャートである。図１０に示すように、セキュア領域２００のＣＰＵ２１０は、秘密の入力路ＩＦ２７０から暗号化された第１入力情報を受け付け、メモリ２４０に格納する（ステップＳ４０１）。ステップＳ４０１に示す処理は、実施例１で説明した図６のステップＳ３０１〜Ｓ３０５に示した処理と同様である。【０１１４】
メインＣＰＵ５１は、共通暗号化情報をＮＶＲＡＭ６０に格納する（ステップＳ４０２）。ＣＰＵ２１０は、メインＣＰＵ５１から共通暗号化情報を受け付ける（ステップＳ４０３）。メインＣＰＵ５１は、ＮＶＲＡＭ６０から共通暗号化情報を削除する（ステップＳ４０４）。【０１１５】
ＣＰＵ２１０は、セキュア領域２００内の共通鍵を用いて、共通暗号化情報を復号して第２入力情報を取り出す（ステップＳ４０５）。ＣＰＵ２１０は、第１情報に含まれる秘密値「ｘｘｘ」と暗号鍵とを変換回路群２５０に入力することで、固有暗号鍵を生成する（ステップＳ４０６）。【０１１６】
ＣＰＵ２１０は、固有暗号鍵を用いて、第２入力情報を暗号化することで、固有暗号化情報を生成する（ステップＳ４０７）。ＣＰＵ２１０は、メインＣＰＵ５１に固有暗号化情報を出力し、ＮＶＲＡＭ６０への格納を依頼する（ステップＳ４０８）。【０１１７】
次に、実施例２に係るセキュア領域の各種の初期設定プロセスの一例について説明する。まず、ＬＳＩ工場と、受信機工場と、視聴者宅で分担して初期設定を行うプロセスについて説明する。例えば、ＬＳＩ工場および受信機工場に、管理団体から暗号化された状態で、機密情報が届く。例えば、ＬＳＩ工場に届く機密情報には、第１入力情報が含まれる。受信機工場に届く機密情報には、第２入力情報が含まれる。【０１１８】
図１１は、初期設定を行うプロセスの一例を示す図（３）である。例えば、図１１において、ステップＳ３０，Ｓ３１のプロセスは、ＬＳＩ工場で行われる。ステップＳ３２のプロセスは、受信機工場で行われる。ステップＳ３３のプロセスは、視聴者宅で受信機の購入時に行われる。【０１１９】
ＬＳＩ工場の作業員は、秘密の入力路ＩＦ２７０を介して、小容量のメモリ２４０に第１入力情報を書き込む（ステップＳ３０）。例えば、第１入力情報には、システムＬＳＩに対応する秘密値と識別子とのペア、セキュア領域２００に対応する秘密値と識別子とのペア、受信機メーカに対応する秘密値と識別子とのペアが含まれる。なお、セキュア領域２００のＣＰＵ２１０は、第１入力情報をメモリ２４０に格納した後に、秘密値と識別子とのペアを用いて、マスター鍵Ｋｍおよび視聴者識別番号を生成してもよい。また、ＣＰＵ２１０は、複数のＣＡＳ方式が存在する場合には、秘密値と識別子とのペアを用いて、ＣＡＳ方式毎に、マスター鍵Ｋｍおよび視聴者識別番号を生成してもよい。【０１２０】
ＬＳＩ工場の作業員は、小容量のメモリ２４０に第１入力情報を書き込んだ後に、小容量のメモリ２４０に対する書き込み禁止フラグをＯＮにする（ステップＳ３１）。【０１２１】
受信機工場の作業員は、第２入力情報を共通鍵で暗号化した共通暗号化情報を、システムＬＳＩ５０ｂに入力し、メインＣＰＵ５１は、共通暗号化情報を外付けのＮＶＲＡＭ６０に格納する（ステップＳ３２）。ここで、ステップＳ３０に示したように、セキュア領域２００内で、マスター鍵Ｋｍや視聴者識別情報を個別に生成する場合には、第２入力情報には、各セキュア領域２００で共通して利用する各種プログラムのみを含め、マスター鍵Ｋｍや視聴者識別情報を第２入力情報に含めなくてもよい。【０１２２】
視聴者宅の視聴者が購入した受信機に電源を投入すると、セキュア領域２００のＣＰＵ２１０は、共通暗号化情報をメインＣＰＵ５１に依頼して取得し、共通鍵によって、共通暗号化情報から第２入力情報を取り出す。そして、ＣＰＵ２１０は、第２入力情報を固有暗号鍵で暗号化して、ＮＶＲＡＭ６０に格納することを、メインＣＰＵ５１に依頼する（ステップＳ３３）。なお、ＮＶＲＡＭ６０に格納された共通暗号化情報は、メインＣＰＵ５１により削除される。【０１２３】
図１２は、初期設定を行うプロセスの一例を示す図（４）である。例えば、図１２において、ステップＳ４０，Ｓ４１のプロセスは、ＬＳＩ工場で行われる。ステップＳ４２のプロセスは、受信機工場で行われる。ステップＳ４３のプロセスは、視聴者宅で受信機の購入時に行われる。【０１２４】
ＬＳＩ工場の作業員は、秘密の入力路ＩＦ２７０を介して、小容量のメモリ２４０に第１入力情報を書き込む（ステップＳ４０）。例えば、第１入力情報には、システムＬＳＩに対応する秘密値と識別子とのペア、セキュア領域２００に対応する秘密値と識別子とのペア、受信機メーカに対応する秘密値と識別子とのペアが含まれる。また、第１入力情報には、固有情報の一部を含ませてもよい。例えば、固有情報には、Ｂ−ＣＡＳプログラムで用いるマスター鍵Ｋｍ、ＤＲＭプログラムで利用する公開鍵、秘密鍵、証明書が含まれる。係る固有情報の内、一部の情報を、第１入力情報に含ませる。【０１２５】
ＬＳＩ工場の作業員は、小容量のメモリ２４０に第１入力情報を書き込んだ後に、小容量のメモリ２４０に対する書き込み禁止フラグをＯＮにする（ステップＳ４１）。【０１２６】
受信機工場の作業員は、第２入力情報を共通鍵で暗号化した共通暗号化情報を、システムＬＳＩ５０ｂに入力し、メインＣＰＵ５１は、共通暗号化情報をＮＶＲＡＭ６０に格納する（ステップＳ４２）。なお、第２入力情報には、固有情報のうち、第１入力情報に含めなかった残りの固有情報が含まれる。【０１２７】
視聴者宅の視聴者が購入した受信機に電源を投入すると、セキュア領域２００のＣＰＵ２１０は、共通暗号化情報をメインＣＰＵ５１に依頼して取得し、共通鍵によって、共通暗号化情報から第２入力情報を取り出す。そして、ＣＰＵ２１０は、第２入力情報を固有暗号鍵で暗号化して、ＮＶＲＡＭ６０に格納することを、メインＣＰＵ５１に依頼する（ステップＳ４３）。なお、ＮＶＲＡＭ６０に格納された共通暗号化情報は、メインＣＰＵ５１により削除される。【０１２８】
次に、本実施例２に係るセキュア領域２００の効果について説明する。セキュア領域２００は、セキュア領域１００と同様にして、第１入力情報を取得し、メモリ２４０に格納する。なお、第２入力情報は、各受信機共通の共通鍵で暗号化された状態で、ＮＶＲＡＭ６０に格納される。セキュア領域２００は、共通暗号化情報を取得し、セキュア領域２００内の共通鍵で復号し、第１入力情報から生成される固有暗号鍵により、復号した第２入力情報を暗号化して、ＮＶＲＡＭ６０に格納することをメインＣＰＵ５１に依頼する。これによって、セキュア領域内のメモリ２４０の記憶容量が小さい場合でも、外付けのＮＶＲＡＭ６０を利用して複数のプログラムを実装することができる。【０１２９】
また、各受信機で共通の共通鍵で暗号化された共通暗号化情報をＮＶＲＡＭ６０に格納しておけば、セキュア領域２００は、初期設定時に固有暗号鍵により暗号化し直して、ＮＶＲＡＭ６０に格納する。このため、小容量のメモリ２４０に情報を格納する作業と、ＮＶＲＡＭ６０に情報を格納する作業を分担して実行することができる。【０１３０】
また、ＮＶＲＡＭ６０に格納された共通暗号化情報は、固有暗号化情報を作成する時点で削除されるため、共通暗号化情報が外部に漏洩することを防止することができる。
【実施例３】
【０１３１】
本実施例３に係るシステムＬＳＩの構成について説明する。図１３は、本実施例３に係るシステムＬＳＩの一例を示す図である。図１３に示すように、このシステムＬＳＩ５０ｃは、メインＣＰＵ５１、ＩＦ５２ａ，５２ｂ，５２ｃ、ＢｏｏｔＲＯＭ５３、ＲＡＭ５４、セキュア領域３００を有する。実施例３では、イーサネットＩＦ、Ｔｕｎｅｒ、伸長処理回路、グラフィック回路の図示を省略する。システムＬＳＩ５０ｃは、ＮＶＲＡＭ６０に接続される。【０１３２】
メインＣＰＵ５１、ＩＦ５２ａ，５２ｂ，５２ｃ、ＢｏｏｔＲＯＭ５３、ＲＡＭ５４に関する説明は、実施例１のものと同様である。【０１３３】
セキュア領域３００の構成について説明する。図１３に示すように、セキュア領域３００は、ＣＰＵ３１０、ＢｏｏｔＲＯＭ３２０、ＲＡＭ３３０、メモリ３４０、変換回路群３５０、暗号回路群３６０、秘密の入力路ＩＦ３７０、イネーブル回路３８０を有する。【０１３４】
ＣＰＵ３１０は、セキュア領域３００全体を制御する装置である。ＢｏｏｔＲＯＭ３２０は、ＣＰＵ３１０が起動した場合に読み出される初期命令の情報を格納する。ＲＡＭ３３０は、ＣＰＵ３１０が各種プログラムを実行する場合に利用する作業領域となる。【０１３５】
メモリ３４０は、小容量の不揮発性メモリである。メモリ３４０は、秘密値「ｘｘｘ」と、複数の識別子と格納する。メモリ３４０の記憶容量は、係る秘密値と複数の識別子を記憶できる程度のものでよい。秘密値および識別子は、セキュア領域３００の初期化時にメモリ３４０に格納される。秘密値および識別子をメモリ３４０に格納する処理は、実施例１のセキュア領域１００と同様にして、秘密の入力路ＩＦ３７０を介して実行される。【０１３６】
変換回路群３５０は、メモリ３４０に格納された秘密値に基づき固有暗号鍵を生成する回路群である。変換回路群３５０に関する説明は、実施例１の変換回路群１５０に関する説明と同様である。【０１３７】
暗号回路群３６０は、各種情報の暗号化、復号を行う回路群である。暗号回路群３６０が暗号化、復号を行う処理は、実施例１の暗号回路群１６０に関する説明と同様である。暗号回路群３６０は、ＣＰＵ３１０からの指示により、活性化または非活性化状態となる。暗号化回路群３６０は、活性化状態の場合に、入力された情報を暗号化する。【０１３８】
秘密の入力路ＩＦ３７０は、予め管理者等により取り決められた秘密の入力信号を受け付けると、秘密の入力路ＩＦ３７０を介した情報の入力を許容するインターフェースである。秘密の入力路ＩＦ３７０に関する説明は、実施例１の秘密の入力路ＩＦ１７０に関する説明と同様である。【０１３９】
イネーブル回路３８０は、ＣＰＵ３１０に予め設定されるユニーク値と、プログラム上の指定領域の値とが一致するか否かを判定し、一致する場合には、イネーブル信号を出力する装置である。ユニーク値および指定領域に関する説明は後述する。【０１４０】
セキュア領域３００の初期設定時の処理について説明する。ＣＰＵ３１０は、秘密の入力路ＩＦ３７０から第１入力情報および第２入力情報を受け付ける。第１入力情報および第２入力情報は、暗号化されている。【０１４１】
例えば、第１入力情報には、秘密値と、複数の識別子が含まれる。ＣＰＵ３１０は、暗号化された第１入力情報を受け付けると、セキュア領域３００内に設定された暗号鍵「ｓｓｓ」と、暗号化された第１入力情報とを暗号回路群３６０に入力して、第１入力情報を復号する。【０１４２】
ＣＰＵ３１０は、メモリ３４０に対応する書き込み禁止フラグを基にして、復号した第１入力情報を、メモリ３４０に格納するか否かを判定する。この書き込み禁止フラグは、図示しないメモリに格納される。ＣＰＵ３１０は、書き込み禁止フラグが「ＯＦＦ」である場合には、第１入力情報を、メモリ３４０に格納し、書き込み禁止フラグを「ＯＮ」に設定する。これに対して、ＣＰＵ３１０は、書き込み禁止グラフが「ＯＮ」である場合には、第１入力情報を、メモリ３４０に格納する処理を抑止する。【０１４３】
さらに、ＣＰＵ３１０は、第１入力情報の秘密値を、変換回路群３５０に入力して、ユニーク値を生成する。ＣＰＵ３１０は、生成したユニーク値を、イネーブル回路３８０に設定する。【０１４４】
第２入力情報には、管理プログラム、Ｂ−ＣＡＳプログラム、マスター鍵Ｋｍ、ＩＦプログラム、ＤＲＭプログラム、関連機密情報等が含まれる。なお、ＣＰＵ３１０は、秘密値と識別子情報との組から、マスター鍵Ｋｍや視聴者識別情報を生成してもよい。【０１４５】
ＣＰＵ３１０は、暗号化された第２入力情報を受け付けると、セキュア領域３００内に設定された暗号鍵「ｓｓｓ」と、暗号化された第２入力情報とを暗号回路群３６０に入力して、第２入力情報を復号する。【０１４６】
ＣＰＵ３１０は、第２入力情報を復号した後に、ユニーク値を、各プログラムの指定領域に挿入することで、第２入力情報を更新する。各プログラムの指定領域は、管理団体等により予め取り決められている。【０１４７】
図１４は、ＣＰＵがプログラムの指定領域にユニーク値を挿入する処理を説明するための図である。例えば、ユニーク値を「ＸＸＸＸ」とする。ＣＰＵ３１０は、あるプログラムの指定領域３に、ユニーク値「ＸＸＸＸ」を挿入する。ＣＰＵ３１０は、他のプログラムに対しても、指定領域３にユニーク値を挿入する。また、ＣＰＵ３１０は、ユニーク値「ＸＸＸＸ」をイネーブル回路３８０に設定する。【０１４８】
ＣＰＵ３１０は、復号し、更新した第２入力情報と、変換回路群３５０により生成された固有暗号鍵とを暗号回路群３６０に入力して、第２入力情報を暗号化することで、固有暗号化情報を生成する。ＣＰＵ３１０は、第２入力情報を暗号化する場合に、共通の固有暗号鍵で暗号化してもよいし、複数の固有暗号鍵を用いて、暗号化してもよい。【０１４９】
ＣＰＵ３１０は、ＩＦプログラムをＲＡＭ３３０に展開して実行することで、下記の処理を実行する。ＣＰＵ３１０は、ＩＦ５２ａを介して、固有暗号化情報をメインＣＰＵ５１に出力し、固有暗号化情報をＮＶＲＡＭ６０に格納することを依頼する。メインＣＰＵ５１は、セキュア領域３００内から固有暗号化情報を取得すると、固有暗号化情報を、ＮＶＲＡＭ６０に格納する。【０１５０】
上述した初期化設定後に、セキュア領域３００がメインＣＰＵ５１の指示により起動した場合の処理について説明する。ＣＰＵ３１０は、メインＣＰＵ５１から起動指示を受けると、ＢｏｏｔＲＡＭ３２０に格納された初期命令を実行することで、下記の処理を実行する。【０１５１】
ＣＰＵ３１０は、メモリ３４０に格納された秘密値「ｘｘｘ」と暗号鍵とを読み出して、変換回路群３５０に入力して、固有暗号鍵を生成する。固有暗号鍵を生成する処理は、図２で説明した処理に対応する。【０１５２】
ＣＰＵ３１０は、メインＣＰＵ５１に対して、ＮＶＲＡＭ６０から固有暗号化情報の読み出しを依頼する。ＣＰＵ３１０は、固有暗号化情報を取得すると、固有暗号化情報と、固有暗号鍵とを暗号回路群３６０に入力して、固有暗号化情報を復号し、第２入力情報を取り出す。【０１５３】
ＣＰＵ３１０は、第２入力情報をＲＡＭ３３０に格納し、管理プログラム、Ｂ−ＣＡＳプログラム、ＩＦプログラム、ＤＲＭプログラム等をイネーブル回路３８０に入力する。ＣＰＵ３１０は、各プログラムについて、イネーブル回路３８０からイネーブル信号が出力された場合には、管理プログラム、Ｂ−ＣＡＳプログラム、ＩＦプログラム、ＤＲＭプログラム等を実行できるようにする。【０１５４】
例えば、管理プログラムは、ＣＰＵ３１０がセキュア領域３００全体を制御するための手順が定義されたプログラムである。Ｂ−ＣＡＳプログラムは、ＥＭＭ処理、ＥＣＭ処理を実行するプログラムである。ＩＦプログラムは、ＩＦ５２ａを介して外部のメインＣＰＵ５１と情報をやり取りする処理を実行するプログラムである。ＤＲＭプログラムは、各種のデジタルデータとして表現されたコンテンツの著作権を保護するために、デジタルデータを用いた処理を制限・制御するプログラムである。【０１５５】
ＣＰＵ３１０が、各プログラムを読み出して、ＥＭＭ処理、ＥＣＭ処理等を実行する処理は、実施例１のＣＰＵ１１０と同じであるため、説明を省略する。【０１５６】
これに対して、ＣＰＵ３１０は、イネーブル回路３８０からイネーブル信号が出力されないプログラムが存在する場合には、セキュア領域３００内のいずれかの回路を非活性化する。例えば、ＣＰＵ３１０は、暗号回路群３６０を非活性化する。イネーブル信号が出力されないプログラムは、ＮＶＲＡＭ６０に格納されている間に、改竄された恐れがあるため、セキュア領域３００内のいずれかの回路を非活性化することで、プログラムを実行できない状態にし、情報漏洩等を未然に防止する。【０１５７】
次に、本実施例３のセキュア領域の初期化処理の一例について説明する。図１５は、本実施例３に係るセキュア領域の初期化処理手順を示すフローチャートである。図１５に示すように、セキュア領域３００の秘密の入力路ＩＦ３７０は、入力情報を受け付け（ステップＳ５０１）、秘密の入力路ＩＦ３７０のイネーブル回路からイネーブル信号が出力されたか否かを判定する（ステップＳ５０２）。【０１５８】
セキュア領域３００は、イネーブル回路からイネーブル信号が出力されない場合には（ステップＳ５０２，Ｎｏ）、処理を終了する。一方、イネーブル回路からイネーブル信号が出力された場合には（ステップＳ５０２，Ｙｅｓ）、ＣＰＵ３１０は、書き込み禁止フラグが「ＯＮ」であるか否かを判定する（ステップＳ５０３）。【０１５９】
ＣＰＵ３１０は、書き込み禁止フラグが「ＯＮ」である場合には（ステップＳ５０３，Ｙｅｓ）、処理を終了する。一方、ＣＰＵ３１０は、書き込み禁止フラグが「ＯＮ」でない場合には（ステップＳ５０３，Ｎｏ）、暗号鍵「ｓｓｓ」を用いて、入力情報を復号する（ステップＳ５０４）。例えば、入力情報には、第１入力情報と第２入力情報が含まれる。【０１６０】
ＣＰＵ３１０は、第１入力情報をメモリ３４０に格納し（ステップＳ５０５）、書き込み禁止フラグを「ＯＮ」にセットする（ステップＳ５０６）。ＣＰＵ１１０は、第１入力情報に含まれる秘密値「ｘｘｘ」と暗号鍵とを変換回路群３５０に入力することで、固有暗号鍵を生成する（ステップＳ５０７）。【０１６１】
ＣＰＵ３１０は、第１入力情報を変換してユニーク値を生成し、各プログラムの指定領域にユニーク値を設定することで、第２入力情報を更新する（ステップＳ５０８）。ＣＰＵ３１０は、固有暗号鍵を用いて、第２入力情報を暗号化することで、固有暗号化情報を生成する（ステップＳ５０９）。ＣＰＵ３１０は、メインＣＰＵ５１に固有暗号化情報を出力し、ＮＶＲＡＭ６０への格納を依頼する（ステップＳ５１０）。【０１６２】
次に、セキュア領域３００を起動した場合のセキュア領域３００の処理手順について説明する。図１６は、本実施例３に係るセキュア領域の処理手順を示すフローチャートである。図１６に示すように、セキュア領域３００が起動すると（ステップＳ６０１）、ＣＰＵ３１０は、ＢｏｏｔＲＯＭ３２０の初期命令を実行する（ステップＳ６０２）。【０１６３】
ＣＰＵ３１０は、メモリ３４０に格納された秘密値「ｘｘｘ」と、暗号鍵を変換回路群３５０に入力して固有暗号鍵を生成する（ステップＳ６０３）。ＣＰＵ３１０は、メインＣＰＵ５１に対して、ＮＶＲＡＭ６０から固有暗号化情報の読み出しを依頼する（ステップＳ６０４）。【０１６４】
ＣＰＵ３１０は、外部からＩＦ５２ａを介して固有暗号化情報を取得する（ステップＳ６０５）。ＣＰＵ３１０は、固有暗号化情報を、固有暗号鍵を用いて復号することで、第２入力情報を取り出す（ステップＳ６０６）。ＣＰＵ３１０は、第２入力情報を、ＲＡＭＵ３３０に格納する（ステップＳ６０７）。ＣＰＵ３１０は、各関連プログラムの指定領域に含まれるユニーク値が、イネーブル回路３８０のユニーク値と一致する場合に、所定の回路を活性化する（ステップＳ６０８）。【０１６５】
次に、本実施例３に係るセキュア領域３００の効果について説明する。セキュア領域３００のＣＰＵは、第１入力情報の秘密値を変換したユニーク値を生成し、生成したユニーク値を、第２入力情報の各プログラムの指定領域に設定すると共に、ユニーク値をイネーブル回路３８０に設定する。ＣＰＵ３１０は、ＮＶＲＡＭ６０から取得した固有暗号化情報を復号して実行する場合に、各プログラムをイネーブル回路３８０に入力して、各プログラムの指定領域にユニーク値が含まれている場合に限り、所定の回路を活性化して処理を実行する。このため、例えば、ＮＶＲＡＭ６０に格納された固有暗号化情報が改竄された場合には、各プログラムの指定領域にユニーク値が含まれなくなるため、セキュア領域３００に柔軟性を持たせつつ、安全性を向上できる。
【実施例４】
【０１６６】
本実施例４に係るシステムＬＳＩの構成について説明する。図１７は、本実施例４に係るシステムＬＳＩの一例を示す図である。図１７に示すように、このシステムＬＳＩ５０ｄは、メインＣＰＵ５１、ＩＦ５２ａ，５２ｂ，５２ｃ、ＢｏｏｔＲＯＭ５３、ＲＡＭ５４、イーサネットＩＦ５５、Ｔｕｎｅｒ５６、リモコンＩＦ６１、セキュア領域４００を有する。実施例４では、伸長処理回路、グラフィック回路の図示を省略する。システムＬＳＩ５０ｄは、ＮＶＲＡＭ６０に接続される。また、システムＬＳＩ５０ｄは、イーサネットＩＦ５５を介して、サーバ７０に接続される。【０１６７】
メインＣＰＵ５１、ＩＦ５２ａ，５２ｂ，５２ｃ、ＢｏｏｔＲＯＭ５３、ＲＡＭ５４、イーサネットＩＦ５５、Ｔｕｎｅｒ５６に関する説明は、実施例１のものと同様である。リモコンＩＦ６１は、視聴者等が操作するリモコンからの命令を受信するＩＦである。【０１６８】
ＮＶＲＡＭ６０は、メインＣＰＵプログラム群と、固有暗号化情報とを格納する。固有暗号化情報は、固有暗号鍵によって暗号化された第２入力情報である。本実施例４に係る第２入力情報は、実施例１に示した情報に加えて、視聴率調査プログラムが含まれる。【０１６９】
本実施例４では、セキュア領域４００が、係る視聴率調査プログラムを実行する場合の処理について説明する。その他のセキュア領域４００の処理は、上述した実施例１のセキュア領域１００の処理と同様の処理を行う。【０１７０】
セキュア領域４００の構成について説明する。図１７に示すように、セキュア領域４００は、ＣＰＵ４１０、ＢｏｏｔＲＯＭ４２０、ＲＡＭ４３０、メモリ４４０、変換回路群４５０、暗号回路群４６０、秘密の入力路ＩＦ４７０を有する。【０１７１】
ＣＰＵ４１０、ＢｏｏｔＲＯＭ４２０、ＲＡＭ４３０、メモリ４４０、変換回路群４５０、暗号回路群４６０、秘密の入力路ＩＦ４７０が実行する基本的な処理は、実施例１に示した各装置の処理と同様である。以下では、固有暗号化情報に含まれる視聴率調査プログラムを実行するセキュア領域４００の処理の一例について説明する。【０１７２】
ＣＰＵ４１０は、固有暗号化情報を取得し、固有暗号化情報と、固有暗号鍵を暗号回路群４６０に入力することで、固有暗号化情報を復号し、第２入力情報を取り出す。例えば、第２入力情報には、管理プログラム、Ｂ−ＣＡＳプログラム、視聴率調査プログラム、ＴＬＳ（Transport  Layer  Security）プログラム、ＩＦプログラム等が含まれる。ＣＰＵ４１０は、管理プログラム、視聴率調査プログラム、ＴＬＳプログラム、ＩＦプログラムをＲＡＭ４３０に展開して実行する。【０１７３】
視聴率調査プログラムを実行するＣＰＵ４１０の動作の一例について説明する。ＣＰＵ４１０は、ＥＣＭの中に含まれる日時情報、ワーク鍵Ｋｗの識別番号、チャンネル識別番号を利用する。例えば、ＣＰＵ４１０は、Ｂ−ＣＡＳプログラムを実行して、ＥＣＭ処理を実行し、日時情報、ワーク鍵Ｋｗの識別番号、チャンネル識別番号を取得し、ＲＡＭ４３０に順次蓄積していく。【０１７４】
ＣＰＵ４１０は、メモリ４４０に格納された秘密値「ｘｘｘ」と暗号鍵とを基にして生成した固有暗号鍵を用いて、ＲＡＭ４３０に蓄積された日時情報、ワーク鍵Ｋｗの識別番号、チャンネル識別番号を暗号化することで、固有暗号化視聴率情報を生成する。ＣＰＵ４１０は、固有暗号化視聴率情報を、ＮＶＲＡＭ６０に格納するように、メインＣＰＵ５１に依頼する。ＣＰＵ４１０は、係る処理を繰り返し実行することで、視聴者がどのような番組を視聴しているのかを記録することができる。なお、ＣＰＵ４１０は、固有暗号化視聴率情報に、セキュア領域を一意に識別する情報、受信機を一意に識別する情報等、視聴者を特定する何らかの情報を付加してもよい。【０１７５】
ＮＶＲＡＭ６０に格納された固有暗号化視聴率情報は、セキュア領域４００を経由して、外部のサーバ７０に通知されることが望ましい。例えば、ＣＰＵ４１０は、ＴＬＳプログラムを実行し、ＴＬＳプロトコルに従い、固有暗号化視聴率情報および固有暗号鍵の情報を、サーバ７０に通知してもよい。ＴＬＳプロトコルに準じてセキュア化された固有暗号化視聴率情報は、ＣＰＵ４１０により、メインＣＰＵ５１に通知される。メインＣＰＵ５１は、固有暗号化視聴率情報および固有暗号鍵をインターネット形式の情報に変換し、変換した情報を、イーサネットＩＦ５５を経由して、サーバ７０に通知する。なお、セキュア領域４００は、ＴＬＳ以外の安全な通信プロトコルを用いて、サーバ７０とデータ通信を実行してもよい。【０１７６】
ところで、セキュア領域４００内のＣＰＵ４１０が視聴率調査プログラムを実行して、上記処理を繰り返し実行し、固有暗号化視聴率情報をＮＶＲＡＭ６０に蓄積していくと、固有暗号化視聴率情報のデータ量が大量になる。このため、ＣＰＵ４１０は、ＥＣＭを取得する度に、固有暗号化視聴率情報を生成しなくてもよい。例えば、ＣＰＵ４１０は、所定回数ＥＣＭを取得する度に、固有暗号化視聴率情報を生成してもよい。または、ＣＰＵ４１０は、チャンネル識別番号およびワーク鍵Ｋｗの識別番号が、前回のチャンネル識別番号およびワーク鍵Ｋｗの識別番号と比較して変化した場合に、固有暗号化視聴率情報を生成してもよい。ＣＰＵ４１０が、このような処理を実行することで、固有暗号化視聴率情報のデータ量が大容量になることを抑止することができる。【０１７７】
続いて、秘密の入力路ＩＦ４７０以外の経路で、ＮＶＲＡＭ６０の内容を追加更新する処理手順について説明する。例えば、ＣＰＵ４１０は、書き込み禁止フラグがＯＮになっている場合に、秘密の入力路ＩＦ４７０以外の経路から情報を取得する。【０１７８】
サーバ７０は、セキュア領域４００で用いる追加のプログラムを用意する。以下の説明では、サーバ７０が用意するセキュア領域４００で用いるプログラムを、適宜、追加プログラムと表記する。サーバ７０は、追加プログラムを、ＴＬＳプロトコルに準じてセキュア化し、インターネットを介して、受信機のシステムＬＳＩ５０ｄに伝送する。【０１７９】
セキュア領域４００のＣＰＵ４１０は、管理プログラムを実行し、係る管理プログラムの支配下で、ＴＬＳプログラム、復号プログラム、暗号プログラム、ＩＦプログラムを動作させる。【０１８０】
メインＣＰＵ５１は、サーバ７０からセキュア化された追加プログラムを受信した場合に、係る追加プログラムを、セキュア領域４００に入力する。ＣＰＵ４１０は、セキュア化された追加プログラムを受け付けると、ＣＰＵ４１０は、復号プログラムを実行して、追加プログラムを復号する。追加プログラムを復号する場合に利用する復号鍵は、セキュア領域４００と、サーバ７０との間で予め共通化されていてもよい。【０１８１】
ＣＰＵ４１０は、追加プログラムを復号した後に、暗号プログラムを実行して、追加プログラムを固有暗号鍵により暗号化する。ＣＰＵ４１０は、固有暗号鍵で暗号化した追加プログラムの情報をＮＶＲＡＭ６０に格納するように、メインＣＰＵ５１に依頼する。なお、ＣＰＵ４１０は、追加プログラムを復号した場合に、追加プログラムの指定領域にユニーク値を挿入してもよい。追加プログラムの指定領域にユニーク値を挿入する処理は、実施例３で説明した処理と同様である。【０１８２】
次に、上述したＥＣＭのデータ構造の一例について説明する。図１８は、ＥＣＭのデータ構造の一例を示す図である。図１８に示すように、このＥＣＭは、ＥＣＭセクションヘッダと、ＥＣＭ本体と、セクションＣＲＣとを有する。ＥＣＭ本体は、固定部と、可変部と改竄検出とを有する。固定部は、プロトコル番号、事業体識別、ワーク鍵識別、スクランブル鍵（Ｏｄｄ）、スクランブル鍵（Ｅｖｅｎ）、判定タイプ、日時、録画制御を有する。【０１８３】
次に、その他のシステム構成例について説明する。上述した実施例１〜４では、システムＬＳＩがセキュア領域を包含し、ＮＶＲＡＭをシステムＬＳＩとセキュア領域とが共通していたが、これに限定されるものではない。図１９は、その他のシステム構成例を示す図である。例えば、システム例７５に示すように、セキュア領域に対応するセキュアＬＳＩ７５ａが、システムＬＳＩ７５ｂの外部に存在し、セキュアＬＳＩ７５ａは、システムＬＳＩ７５ｂを介して、ＮＶＲＡＭ７５ｃから各種のデータを取得してもよい。【０１８４】
また、システム例７６に示すように、セキュア領域に対応するセキュアＬＳＩ７６ａが、システムＬＳＩ７６ｂの外部に存在する。そして、セキュアＬＳＩ７６ａはＮＶＲＡＭ７６ｃに接続され、システムＬＳＩ７６ｂはＮＶＲＡＭ７６ｄに接続されてもよい。
【符号の説明】
【０１８５】
５０ａ，５０ｂ，５０ｃ，５０ｄ  システムＬＳＩ
６０  ＮＶＲＡＭ
１００，２００，３００，４００  セキュア領域
【図１】
2016088273.tif 000003
【図２】
2016088273.tif 000004
【図３】
2016088273.tif 000005
【図４】
2016088273.tif 000006
【図５】
2016088273.tif 000007
【図６】
2016088273.tif 000008
【図７】
2016088273.tif 000009
【図８】
2016088273.tif 000010
【図９】
2016088273.tif 000011
【図１０】
2016088273.tif 000012
【図１１】
2016088273.tif 000013
【図１２】
2016088273.tif 000014
【図１３】
2016088273.tif 000015
【図１４】
2016088273.tif 000016
【図１５】
2016088273.tif 000017
【図１６】
2016088273.tif 000018
【図１７】
2016088273.tif 000019
【図１８】
2016088273.tif 000020
【図１９】
2016088273.tif 000021
【図２０】
2016088273.tif 000022
【図２１】
2016088273.tif 000023
【図２２】
2016088273.tif 000024
【国際調査報告】
2016088273.tif 000025
2016088273.tif 000026
2016088273.tif 000027
2016088273.tif 000028
2016088273.tif 000029
2016088273.tif 000030