(57)【要約】【課題】ファームウエアが格納される不揮発性メモリの寿命の向上を図ると共に、アップデータの作成の手間を軽減すること。【解決手段】データを転送するためのバスと、バスに接続された増設機器と、前記増設機器に設けられ、ファームウエアが格納された不揮発性メモリと、前記増設機器に設けられ、前記ファームウエアを実行するためのコントローラと、複数のブロックを有し、前記不揮発性メモリに保存されたファームウエアを更新するための第２のファームウエアに対応する更新データを格納可能な記憶装置と、前記更新データを前記ブロック毎に前記バスを介して前記増設機器に順次転送する処理を実行し得る演算装置と、前記増設機器に設けられ、転送されたブロックから得られるデータと、前記得られたデータを書き込むべき前記不揮発性メモリ上の領域のデータとが異なる場合に、前記不揮発性メモリ上の領域を前記得られたデータによって書き換える更新手段とを具備する。【選択図】      図８
2007257119.tif 000002
【特許請求の範囲】
【請求項１】
データを転送するためのバスと、
バスに接続された増設機器と、
前記増設機器に設けられ、ファームウエアが格納された不揮発性メモリと、
前記増設機器に設けられ、前記ファームウエアを実行するためのコントローラと、
複数のブロックを有し、前記不揮発性メモリに保存されたファームウエアを更新するための第２のファームウエアに対応する更新データを格納可能な記憶装置と、
前記更新データを前記ブロック毎に前記バスを介して前記増設機器に順次転送する処理を実行し得る演算装置と、
前記増設機器に設けられ、転送されたブロックから得られるデータと、前記得られたデータを書き込むべき前記不揮発性メモリ上の領域のデータとが異なる場合に、前記不揮発性メモリ上の領域を前記得られたデータによって書き換える更新手段とを具備することを特徴とする情報処理装置。
【請求項２】
前記記憶装置は、各ブロックついて前記不揮発性メモリを書き換えるか否かを示す情報を格納可能であり、
前記演算装置は、前記ブロックを転送する度に前記バスを介して前記増設器に前記転送したブロックを用いて前記不揮発性メモリを書き換えるか否かを示す情報を転送する処理を実行可能であり、
前記更新手段は、前記情報が書き換えることを示している場合に前記前記不揮発性メモリの領域を書き換える手段とを具備することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記更新データは、第２のファームウエアをブロック暗号方式によって暗号処理したデータであって、
前記増設機器は、前記ブロック暗号方式によって暗号処理されたデータを復号する復号器を有することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記更新データを構成する前記複数のブロックは、前記ブロック暗号方式が暗号処理した単位であることを特徴とする請求項３記載の情報処理装置。
【請求項５】
情報処理装置の増設スロットに接続可能な増設機器であって、
ファームウエアを格納する不揮発性メモリと、
前記ファームウエアを実行するためのコントローラと、
第２のファームウエアに対応した複数のブロックを有する更新データを用いて、前記不揮発性メモリ上のファームウエアを更新する更新手段であって、前記情報処理装置から前記更新データを前記ブロック毎に順次取得し、転送されたブロックから得られるデータと、前記得られたデータを書き込むべき前記不揮発性メモリ上の領域のデータとが異なる場合に、前記不揮発性メモリ上の領域を前記得られたデータによって書き換える更新手段とを具備することを特徴とする増設機器。
【請求項６】
前記更新手段は、前記ブロックを取得する度に、各ブロックついて前記不揮発性メモリを書き換えるか否かを示す情報を取得し、前記情報が書き換えることを示している場合に前記前記不揮発性メモリの領域を書き換えることを特徴とする請求項５記載の増設機器。
【請求項７】
前記更新データは、第２のファームウエアをブロック暗号方式によって暗号処理したデータであって、
前記ブロック暗号方式によって暗号処理されたデータを復号する復号器を更に具備することを特徴とする請求項６記載の増設機器。
【請求項８】
前記更新データを構成する前記複数のブロックは、前記ブロック暗号方式が暗号処理した単位であることを特徴とする請求項６記載の増設機器。
【請求項９】
コントローラと、前記コントローラによって実行され、所定の処理を行うためのファームウエアが格納された不揮発性メモリとを有し、情報処理装置のバスに接続された増設機器のファームウエアを更新するファームウエアの更新方法であって、
前記不揮発性メモリに保存されたファームウエアを更新するための第２のファームウエアに対応した複数のブロックを有する更新データとを用意し、
前記情報処理装置は、前記更新データを前記ブロック毎に前記バスを介して前記増設機器に転送し、
前記増設機器は、転送されたブロックから得られるデータと、前記得られたデータを書き込むべき前記不揮発性メモリ上の領域のデータとが異なる場合に、前記不揮発性メモリ上の領域を前記得られたデータによって書き換えることを特徴とするファームウエアの更新方法。
【請求項１０】
前記情報処理装置は、前記ブロックを転送する度に前記バスを介して前記増設器に前記転送したブロックを用いて前記不揮発性メモリを書き換えるか否かを示す情報を転送し、
前記増設機器は、前記情報が書き換えることを示している場合に前記前記不揮発性メモリの領域を書き換えることを特徴とする請求項９記載のファームウエアの更新方法。
【請求項１１】
前記更新データは、第２のファームウエアをブロック暗号方式によって暗号処理したデータであることを特徴とする請求項９記載のファームウエアの更新方法。
【請求項１２】
前記更新データを構成する前記複数のブロックは、前記ブロック暗号方式が暗号処理した単位であることを特徴とする請求項１１記載のファームウエアの更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリに格納されたファームウエアを更新する情報処理装置に関する。
【背景技術】
【０００２】
情報処理装置を制御するためのファームウエアを不揮発性メモリに格納していることがある。機能の向上やバグを除くために、新しいファームウエアに対応するアップデータをユーザに提供し、不揮発性メモリに格納されたファームウエアを更新することが行われる。
【特許文献１】特開２００３−１７３２６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ファームウエア全体を含むアップデータを提供して、不揮発性メモリ全体を書き換えると、書き換え不要な領域も書き換えることになるので、わずかな領域を更新する場合でも全部書き換えることになるので、アップデート処理に余計な時間がかかる。また、書き換え回数の増加により不揮発性メモリの寿命が短くなる。
【０００４】
新しいファームウエアの更新対象領域の数だけ別々にファイルとし、複数のファイルを含むアップデータを提供し、更新対象の不揮発性メモリの領域のみを書き換えると、不揮発性メモリに格納されている可能性があるファームウエアのヴァージョンに応じて、複数のアップデータを用意する必要がある。
【０００５】
本発明の目的は、ファームウエアが格納される不揮発性メモリの寿命の向上を図ると共に、アップデータの作成の手間を軽減し得る情報処理装置を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一例に係わる情報処理装置は、データを転送するためのバスと、バスに接続された増設機器と、前記増設機器に設けられ、ファームウエアが格納された不揮発性メモリと、前記増設機器に設けられ、前記ファームウエアを実行するためのコントローラと、複数のブロックを有し、前記不揮発性メモリに保存されたファームウエアを更新するための第２のファームウエアに対応する更新データを格納可能な記憶装置と、前記更新データを前記ブロック毎に前記バスを介して前記増設機器に順次転送する処理を実行し得る演算装置と、前記増設機器に設けられ、転送されたブロックから得られるデータと、前記得られたデータを書き込むべき前記不揮発性メモリ上の領域のデータとが異なる場合に、前記不揮発性メモリ上の領域を前記得られたデータによって書き換える更新手段とを具備することを特徴とする。
【発明の効果】
【０００７】
ファームウエアが格納される不揮発性メモリの寿命の向上を図ると共に、アップデータの作成の手間を軽減することが可能になる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照して、本発明の実施形態を説明する。  
まず、図１および図２を参照して、本発明の一実施形態に係る情報処理装置の構成について説明する。この情報処理装置は、例えば、ノートブック型パーソナルコンピュータ１０として実現されている。
【０００９】
図１はノートブック型パーソナルコンピュータ１０のディスプレイユニットを開いた状態における斜視図である。本コンピュータ１０は、コンピュータ本体１１と、ディスプレイユニット１２とから構成されている。ディスプレイユニット１２には、ＴＦＴ−ＬＣＤ（Thin Film Transistor Liquid Crystal Display）１７から構成される表示装置が組み込まれており、そのＬＣＤ１７の表示画面はディスプレイユニット１２のほぼ中央に位置されている。
【００１０】
ディスプレイユニット１２は、コンピュータ本体１１に対して開放位置と閉塞位置との間を回動自在に取り付けられている。コンピュータ本体１１は薄い箱形の筐体を有しており、その上面にはキーボード１３、本コンピュータ１０をパワーオン／パワーオフするためのパワーボタン１４、入力操作パネル１５、タッチパッド１６、およびスピーカ１８Ａ，１８Ｂなどが配置されている。
【００１１】
入力操作パネル１５は、押されたボタンに対応するイベントを入力する入力装置であり、複数の機能をそれぞれ起動するための複数のボタンを備えている。これらボタン群には、ＴＶ起動ボタン１５Ａ、ＤＶＤ／ＣＤ起動ボタン１５Ｂも含まれている。ＴＶ起動ボタン１５Ａは、ＴＶ放送番組データの再生及び記録を行うためのＴＶ機能を起動するためのボタンである。ＴＶ起動ボタン１５Ａがユーザによって押下された時、ＴＶ機能を実行するためのＴＶアプリケーションプログラムが起動される。
【００１２】
本コンピュータ１０においては、汎用の主オペレーティングシステムの他に、ＡＶ（オーディオ・ビデオ）データを処理するための専用の副オペレーティングシステムがインストールされている。ＴＶアプリケーションプログラムは、副オペレーティングシステム上で動作するプログラムである。
【００１３】
パワーボタン１４がユーザによって押下された時、主オペレーティングシステムが起動される。一方、ＴＶ起動ボタン１５Ａがユーザによって押下された時は、主オペレーティングシステムではなく、副オペレーティングシステムが起動され、そしてＴＶアプリケーションプログラムが自動的に実行される。副オペレーティングシステムはＡＶ機能を実行するための最小限の機能のみを有している。このため、副オペレーティングシステムのブートアップに要する時間は、主オペレーティングシステムのブートアップに要する時間に比べて遙かに短い。よって、ユーザは、ＴＶ起動ボタン１５Ａを押すだけで、ＴＶ視聴／録画を即座に行うことが出来る。
【００１４】
本コンピュータ１０は、地上波デジタルＴＶ放送および地上波アナログＴＶ放送の両方のＴＶ放送を受信、再生することができる。コンピュータ本体１１の右側面には、地上波デジタルＴＶ放送用のアンテナ端子１９、および地上波アナログＴＶ放送用のアンテナ端子２０が設けられている。地上波デジタルＴＶ放送においては、放送番組データのコンテンツはスクランブル（暗号化）されている。このスクランブルされた放送番組データを扱うために、コンピュータ本体１１には、デバイス識別情報が予め格納された記憶部が内蔵されている。この記憶部は、デジタル放送番組データの著作権保護のための専用ＬＳＩ内に含まれている。デバイス識別情報は、スクランブルされた放送番組データをデスクランブルするために必要なデバイス鍵（Ｋｄ）として使用される。デバイス識別情報は、本コンピュータ１０を識別するためのＩＤであり、本コンピュータ１０の機種を識別する情報または本コンピュータ１０の製造メーカを識別する情報から構成されている。具体的には、デバイス識別情報は、本コンピュータ１０の機種を識別する機種ＩＤとその機種ＩＤに対応するデバイス鍵Ｋｄとのペア、または本コンピュータ１０の製造メーカを識別する製造メーカＩＤとその製造メーカＩＤに対応するデバイス鍵Ｋｄとのペアから構成されている。以下では、機種ＩＤ、製造メーカＩＤを、デバイスＩＤと称することとする。
【００１５】
地上波デジタルＴＶ放送においては、複数の放送番組データを多重化したストリームが放送波によって放送される。このストリームは、スクランブル鍵（Ｋｓ）によって暗号化（スクランブル）された番組コンテンツと、Ｋｓをワークキー（Ｋｗ：第２暗号化鍵）によって暗号化することによって得られる共通情報（ＥＣＭ：Ｅｎｔｉｔｌｅｍｅｎｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ）と、Ｋｗを正当な個々の受信機に対応するデバイス識別情報（擬態的にはデバイス鍵（Ｋｄ））によって暗号化することによって得られる幾つかの個別情報（ＥＭＭ：Ｅｎｔｉｔｌｅｍｅｎｔ  Ｍａｎａｇｅｍｅｎｔ  Ｍｅｓｓａｇｅ）とを含む。各ＥＭＭには、対応するデバイスＩＤも含まれている。
【００１６】
本コンピュータ１０は、放送番組データに含まれるＥＣＭおよびＥＭＭと、コンピュータ本体１１に内蔵されたデバイス鍵（Ｋｄ）とを用いることにより、スクランブルされた番組コンテンツをデスクランブル（復号）するためのスクランブル鍵（Ｋｓ）を生成する。この場合、デバイス鍵（Ｋｄ）は、本コンピュータ１０のデバイスＩＤを含むＥＭＭを復号してＫｗを生成するために用いられる。生成されたＫｗはＥＣＭを復号してＫｓを生成するために用いられる。
【００１７】
上述したように、本コンピュータ１０においては、デバイス鍵（Ｋｄ）は本コンピュータ１０に内蔵された専用ＬＳＩ内の記憶部に格納されている。専用ＬＳＩは外部からアクセスすることはできない。このため、特別な耐タンパー性（tamper resistant）技術を用いずとも、デバイス鍵（Ｋｄ）の漏洩を容易に防止することができる。よって、Ｂ−ＣＡＳ（ＢＳ  Ｃｏｎｄｉｔｉｏｎａｌ  Ａｃｃｅｓｓ  Ｓｙｓｔｅｍ）カードのような専用のＩＣカードを用いることなく、放送番組データの著作権保護を実現することができる。
【００１８】
ＤＶＤ／ＣＤ起動ボタン１５Ｂは、ＤＶＤまたはＣＤに記録されたビデオコンテンツを再生するためのボタンである。ＤＶＤ／ＣＤ起動ボタン１５Ｂがユーザによって押下された時、ビデオコンテンツを再生するためのビデオ再生アプリケーションプログラムが起動される。このビデオ再生アプリケーションプログラムも、副オペレーティングシステム上で動作するアプリケーションプログラムである。ＤＶＤ／ＣＤ起動ボタン１５Ｂがユーザによって押下された時は、主オペレーティングシステムではなく、副オペレーティングシステムが起動され、そしてビデオ再生アプリケーションプログラムが自動的に実行される。
【００１９】
次に、図２を参照して、本コンピュータ１０のシステム構成について説明する。
【００２０】
本コンピュータ１０は、図２に示されているように、ＣＰＵ１０１、ノースブリッジ１０２、主メモリ１０３、サウスブリッジ１０４、グラフィクスコントローラ１０５、サウンドコントローラ１０６、ＴＭＤＳ（Transition Minimized Differential Signaling）回路１０７、ビデオプロセッサ１０８、ＢＩＯＳ−ＲＯＭ１０９、ＬＡＮコントローラ１１０、ハードディスクドライブ（ＨＤＤ）１１１、ＤＶＤドライブ１１２、カードコントローラ１１３、無線ＬＡＮコントローラ１１４、IEEE 1394コントローラ１１５、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１１６、デジタルＴＶ放送受信処理部１１７、およびアナログＴＶ放送受信処理部１１８を備えている。
【００２１】
ＣＰＵ１０１は本コンピュータ１０の動作を制御するプロセッサであり、ハードディスクドライブ（ＨＤＤ）１１１から主メモリ１０３にロードされる、主オペレーティングシステム／副オペレーティングシステム、およびＴＶアプリケーションプログラムのような各種アプリケーションプログラムを実行する。また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０９に格納されたシステムＢＩＯＳ（Basic Input Output System）も実行する。システムＢＩＯＳはハードウェア制御のためのプログラムである。
【００２２】
ノースブリッジ１１２はＣＰＵ１０１のローカルバスとサウスブリッジ１０４との間を接続するブリッジデバイスである。ノースブリッジ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ１０２は、ＡＧＰ（Accelerated Graphics Port）バス、ＰＣＩ  ｅｘｐｒｅｓｓ規格のシリアルバスなどを介してグラフィクスコントローラ１０５との通信を実行する機能も有している。
【００２３】
グラフィクスコントローラ１０５は本コンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７を制御する表示コントローラである。このグラフィクスコントローラ１０５によって生成される映像データはＴＭＤＳ回路１０７を介してビデオプロセッサ１０８に送られる。ビデオプロセッサ１０８は、グラフィクスコントローラ１０５からの映像データを高画質化するための映像処理（画質調整処理）を実行する。ビデオプロセッサ１０８によって高画質化された映像データはＬＣＤ１７に送られる。また、ビデオプロセッサ１０８によって高画質化された映像データを、コンピュータ本体１１に設けられたインタフェース３、４をそれぞれ介して外部のＴＶ１、外部のＨＤＭＩモニタに送出することもできる。
【００２４】
サウスブリッジ１０４は、ＬＰＣ（Low Pin Count）バス上の各デバイス、およびデータを転送するためのＰＣＩ（Peripheral Component Interconnect）バス上の各デバイスを制御する。また、サウスブリッジ１０４は、ＨＤＤ１１１、ＤＶＤドライブ１１２を制御するためのＩＤＥ（Integrated Drive Electronics）コントローラを内蔵している。さらに、サウスブリッジ１０４は、サウンドコントローラ１０６との通信を実行する機能も有している。
【００２５】
サウンドコントローラ１０６は音源デバイスであり、再生対象のオーディオデータをスピーカ１８Ａ，１８Ｂ、または外部の５．１チャンネルスピーカシステムに出力する。
【００２６】
カードコントローラ１１３は、ＰＣカード、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）カードのようなカードを制御する。無線ＬＡＮコントローラ１１４は、たとえばIEEE 802.11規格の無線通信を実行する無線通信デバイスである。IEEE 1394コントローラ１１５は、IEEE 1394規格のシリアルバスを介して外部機器との通信を実行する。エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１１６は、電力管理のためのエンベデッドコントローラと、キーボード（ＫＢ）１３およびタッチパッド１６を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。このエンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１１６は、ユーザによるパワーボタン１４の操作に応じて本コンピュータ１０をパワーオン／パワーオフする機能を有している。さらに、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１１６は、ユーザによるＴＶ起動ボタン１５Ａ、ＤＶＤ／ＣＤ起動ボタン１５Ｂの操作に応じて、本コンピュータ１０をパワーオンすることもできる。
【００２７】
デジタルＴＶ放送受信処理部１１７は地上波デジタルＴＶ放送のようなデジタル放送番組を受信する装置であり、アンテナ端子１９に接続されている。このデジタルＴＶ放送受信処理部１１７は、図示のように、デジタルＴＶチューナ２０１、ＯＦＤＭ（Orthogonal Frequency Division Multiplexing）復調器２０２、および著作権保護ＬＳＩ２０３を備えている。デジタルＴＶチューナ２０１およびＯＦＤＭ復調器２０２は、地上波デジタルＴＶ放送の放送番組データを受信するチューナモジュールとして機能する。地上波デジタルＴＶ放送においては、各放送番組データ（ビデオ、オーディオ）に対する圧縮符号化方式としてＭＰＥＧ２が利用されている。また、映像フォーマットとしては、標準解像度のＳＤ（Ｓｔａｎｄａｒｄ  Ｄｅｆｉｎｉｔｉｏｎ）と高解像度のＨＤ（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ）を使用することができる。
【００２８】
デジタルＴＶチューナ２０１およびＯＦＤＭ２０２から構成されるチューナモジュールは、アンテナ端子１９から入力されるＴＶ放送信号の中から特定チャネルの放送信号を受信し、その受信したＴＶ放送信号からトランスポートストリーム（ＴＳ）を取り出す。トランスポートストリームは、圧縮符号化された複数の放送番組データを多重化したストリームである。地上波デジタルＴＶ放送においては、チャネル（物理チャネル）毎に複数の番組が多重化されている。
【００２９】
トランスポートストリームには、スクランブル鍵（Ｋｓ）によってスクランブルされた放送コンテンツの他、ＥＭＭ、ＥＣＭ等が含まれている。トランスポートストリームは、連続する複数のＴＳパケット群から構成されている。各ＴＳパケットは、図３に示すように、１８８バイトの固定長パケットである。ＴＳパケットは、ヘッダとペイロードから構成される。ヘッダのサイズは４バイトの固定長である。ヘッダには、１３ビット長のパケットＩＤ（ＰＩＤ）が含まれている。ＰＩＤは、対応するＴＳパケットを識別するためのパケット識別子である。このＰＩＤは、対応するＴＳパケットのペイロードに含まれる情報を識別するために用いられる。具体的には、番組の識別、コンテンツタイプ（オーディオ／ビデオ）の識別、ＥＭＭ／ＥＣＭの識別、番組表のような制御情報の識別のために用いられる。同一放送番組に属するＴＳパケット群それぞれは、その放送番組に対するＰＩＤテーブルによって指定されるＰＩＤを有する。
【００３０】
著作権保護ＬＳＩ２０３は放送コンテンツの著作権保護（ＲＭＰ：Ｒｉｇｈｔｓ  Ｍａｎａｇｅｍｅｎｔ  ａｎｄ  Ｐｒｏｔｅｃｔｉｏｎ）を実現するための専用ＬＳＩである。著作権保護ＬＳＩ２０３には、本コンピュータ１０に対応するデバイスＩＤおよびデバイス鍵Ｋｄが予め記憶されている。著作権保護ＬＳＩ２０３は、トランスポートストリームに含まれるＥＣＭおよびＥＭＭと、デバイス鍵（Ｋｄ）とを用いて、スクランブル鍵（Ｋｓ）を生成する。そして、著作権保護ＬＳＩ２０３は、スクランブル鍵（Ｋｓ）によって放送コンテンツをデスクランブル（復号）して、放送コンテンツの暗号化を解除する。
【００３１】
また、著作権保護ＬＳＩ２０３は、デスクランブルされたトランスポートストリームから目的の放送番組に対応するＰＩＤを含むＴＳパケット群を抽出するＰＩＤフィルタリング機能を有している。このＰＩＤフィルタリング機能により、視聴／記録対象の放送番組に対応するＴＳパケット群のみをＴＶアプリケーションプログラムに送ることができる。これにより、ＴＶアプリケーションプログラム側ではＰＩＤフィルタリング処理を行う必要が無くなるので、ＴＶアプリケーションプログラムの負荷を低減することができる。また、ＰＩＤフィルタリング処理を著作権保護ＬＳＩ２０３によって行うことにより、ＰＣＩバスに流れるデータ量を大幅に削減することもできる。
【００３２】
また、著作権保護ＬＳＩ２０３は、ＰＩＤフィルタリング機能によって抽出されたＴＳパケット群を再度暗号化する機能を有している。この暗号化は、著作権保護ＬＳＩ２０３およびＴＶアプリケーションプログラムが共通鍵としてそれぞれ保有している暗号鍵を用いて実行される。この暗号鍵は、スクランブル鍵とは異なる鍵である。この暗号化により、暗号化された番組コンテンツをＰＣＩバスを介して主メモリ１０３に転送することができる。よって、たとえＰＣＩバス経由で番組コンテンツが不正に取り出されても、その取り出された番組コンテンツが再生されることを防止することができる。
【００３３】
アナログＴＶ放送受信処理部１１８は地上波アナログＴＶ放送のようなアナログ放送番組を受信する装置であり、アンテナ端子２０に接続されている。このアナログＴＶ放送受信処理部１１８は、図示のように、アナログＴＶチューナ３０１およびＭＰＥＧ２エンコーダ３０２を含んでいる。アナログＴＶチューナ３０１はアナログ放送番組を受信するチューナモジュールであり、アンテナ端子２０から入力されるＴＶ放送信号の中から特定チャネルの放送信号を受信する。アナログＴＶチューナ３０１によって受信された放送番組データはＭＰＥＧ２エンコーダ３０２に送られる。ＭＰＥＧ２エンコーダ３０２は、放送番組データをＭＰＥＧ２規格の符号化方式で圧縮符号化して、圧縮符号化されたビデオデータおよび圧縮符号化されたオーディオが多重化されたプログラムストリーム（ＰＳ）を生成する。
【００３４】
次に、図４を参照して、放送コンテンツのスクランブル／デスクランブルの仕組みについて説明する。
【００３５】
放送局においては、スクランブル処理部４０１、暗号化部４０２，４０３が設けられている。また、放送局においては、正当な受信機の機種または製造メーカ毎に、デバイスＩＤとデバイス鍵Ｋｄとが管理されている。スクランブル処理部４０１は、放送番組データ（番組コンテンツ）をスクランブル鍵Ｋｓによって暗号化（スクランブル）する。暗号化部４０２は、スクランブル鍵Ｋｓをワーク鍵Ｋｗによって暗号化して、暗号化されたスクランブル鍵Ｋｓを含むＥＣＭを生成する。暗号化部４０３は、ワーク鍵Ｋｗを複数のデバイスＩＤそれぞれに対応する複数のデバイス鍵Ｋｄによってそれぞれ暗号化して、暗号化された複数のワーク鍵Ｋｗをそれぞれ含む複数のＥＭＭを生成する。この場合、各ＥＭＭには、対応するデバイスＩＤが付加される。スクランブル鍵Ｋｓの暗号化およびワーク鍵Ｋｗの暗号化は、例えばＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）を用いて実行される。
【００３６】
本コンピュータ１０の著作権保護ＬＳＩ２０３は、ＥＭＭ復号部４１１、ＥＣＭ復号部４１２、およびデスクランブル部４１３を含む。ＥＭＭ復号部４１１は、著作権保護ＬＳＩ２０３内に格納されたデバイス鍵ＫｄによってＥＭＭを復号して、ワーク鍵Ｋｗを生成する。この場合、ＥＭＭ復号部４１１は、複数のＥＭＭの中から本コンピュータ１０のデバイスＩＤに対応するＥＭＭを識別し、その識別されたＥＭＭをデバイス鍵Ｋｄによって復号する。ＥＣＭ復号部４１２は、生成されたワーク鍵ＫｗによってＥＣＭを復号して、スクランブル鍵Ｋｓを生成する。デスクランブル部４１３は、生成されたスクランブル鍵Ｋｓによって番組コンテンツを復号（デスクランブル）する。
【００３７】
次に、図５を参照して、著作権保護ＬＳＩ２０３の具体的な構成の例を説明する。
【００３８】
著作権保護ＬＳＩ２０３は、図示のように、ＲＭＰコントローラ５０１、フラッシュＥＥＰＲＯＭ５０２、ＲＡＭ５０３、デスクランブラ５０４、タイムスタンプ付加部５０５、ＰＩＤフィルタ部５０６、暗号化部５０７、およびＰＣＩインタフェース部５０８から構成されている。
【００３９】
ＲＭＰコントローラ５０１は著作権保護ＬＳＩ２０３の動作を制御するマイクロコンピュータであり、スクランブル鍵Ｋｓを生成するための処理を実行する。
【００４０】
フラッシュＥＥＰＲＯＭ５０２は、デバイス鍵ＫｄをデバイスＩＤと一緒に格納すると共に、ＲＭＰコントローラ５０１を動作させるためのファームウエアを格納した不揮発性メモリである。
【００４１】
ＲＡＭ５０３は、ＲＭＰコントローラ５０１の作業メモリとして用いられる。
【００４２】
デスクランブラ５０４は、スクランブルされた各トランスポートストリーム（ＴＳ）パケットをＲＭＰコントローラ５０１によって生成されたスクランブル鍵Ｋｓによってデスクランブルする。デスクランブルされたＴＳパケットはタイムスタンプ付加部５０５に送られる。タイムスタンプ付加部５０５は、デスクランブルされた１８８バイト長のＴＳパケットの先頭に４バイト長のタイムスタンプを付加して、１９２バイト長のパケットを生成する。タイムスタンプは、ＴＳパケット間の時間的な順番を示す。タイムスタンプ付加部５０５によってＴＳパケットをタイムスタンプ付きの１９２バイト長のパケットに変換することにより、後述する暗号化部５０７による暗号化処理を効率よく実行することが可能となる。
【００４３】
ＰＩＤフィルタ部５０６は、ＴＳパケットのＰＩＤを監視することによって、視聴対象の番組の再生に必要なＴＳパケット群のみを抽出するフィルタ回路である。すなわち、ＰＩＤフィルタ部５０６は、デスクランブルされたトランスポートストリームに含まれるＴＳパケット群それぞれのＰＩＤに基づいて、トランスポートストリームに含まれるＴＳパケット群の中から視聴対象の放送番組データに対応するＴＳパケット群を抽出する。視聴対象の番組はＣＰＵ１０１によって指示される。ＰＩＤフィルタ部５０６によって抽出された各パケットは暗号化部５０７に送られる。
【００４４】
暗号化部５０７は１９２バイト長のパケット毎に暗号化処理を実行する。この暗号化は、ＥＣＭ，ＥＭＭの暗号化と同じＡＥＳ方式を用いて実行される。暗号化部５０７は、ブロックサイズ１２８ｂｉｔの暗号鍵を用いて、１２８ｂｉｔ長のブロック毎に１９２バイト長のパケットを暗号化する。すなわち、１９２バイト長のパケットは、各々が１２８ｂｉｔ長の１２個のブロックに分割され、それらブロック毎に暗号化される。暗号化された各タイムスタンプ付きＴＳパケットは、ＰＣＩインタフェース部５０８に送られる。
【００４５】
また、ＡＥＳ方式に対応する暗号化部５０７の演算回路は、ＥＣＭ，ＥＭＭの復号のための演算にも利用される。すなわち、ＲＭＰコントローラ５０１は、ＰＩＤフィルタ部５０６からＥＭＭを受け取る。そして、ＲＭＰコントローラ５０１は、ＥＭＭとデバイス鍵Ｋｄとを暗号化部５０７に入力して、暗号化部５０７にＥＭＭの復号処理を実行させる。これにより、ＲＭＰコントローラ５０１は、ワーク鍵Ｋｗを暗号化部５０７から取得することができる。また、ＲＭＰコントローラ５０１は、ＰＩＤフィルタ部５０６からＥＣＭを受け取る。そして、ＲＭＰコントローラ５０１は、ＥＣＭとワーク鍵Ｋｗとを暗号化部５０７に入力して、暗号化部５０７にＥＣＭの復号処理を実行させる。これにより、ＲＭＰコントローラ５０１は、スクランブル鍵Ｋｓを暗号化部５０７から取得することができる。
【００４６】
このように、ＲＭＰコントローラ５０１は、ＥＭＭ、ＥＣＭを復号するための処理を暗号化部５０７を用いて実行する。これにより、ＲＭＰコントローラ５０１内にＡＥＳ暗号のための演算回路を実装する必要がなくなり、回路を簡素化することができる。
【００４７】
ところで、著作権保護ＬＳＩ２０３内のＲＭＰコントローラ５０１によって実行され、所定の処理を行うためのファームウエアは、機能の向上等の理由により新しいヴァージョンが用意されることがある。以下に、ファームウエアのアップデートについて説明する。
【００４８】
先ず、アップデータの作成について図６を参照して説明する。実際にフラッシュＥＥＰＲＯＭ５０２に書き込まれる新しいヴァージョンのファームウエアを作成する。次ぎに、新たなファームウエアコードを暗号化したバイナリファイルを作成する。
【００４９】
ファームウエアは、例えばＡＥＳ（Advanced Encryption Standard）のＣＢＣ（Cipher Block Chain）モードのようなブロック暗号で暗号化する。ブロック暗号では、ブロックと呼ばれる固定長のデータを単位として暗号化／復号を行う。ＡＥＳでは、ブロック長１２８ビットのブロックを単位として暗号化/復号を行う。ＡＥＳは鍵長を１２８，１９２，２５６ビットの３つの中から選択する事ができる。
【００５０】
ＣＢＣモードでは、前の平文ブロックを暗号化した結果を次の平文にＸＯＲ演算によって重ね合わせ、その結果に対して共通鍵を用いて暗号化処理を行う。最初のブロックを暗号化する場合は、前の暗号文の最後のブロックを利用するか、または外部から与えた初期ベクトル（initial vector）を利用する。復号に際しては、ブロックを復号して得られたデータに前の暗号ブロックを用いて平分ブロックを得る。
【００５１】
次ぎに、ブロック暗号化のブロック単位で古いヴァージョンとの異なっているかを判定する。異なっている場合、フラッシュＥＥＰＲＯＭ５０２を書き換える必要が有る。全ての領域に調べた後、各ブロックについて書き換えるか否かをまとめたテーブルを作成する。なお、書き換える必要があるブロックについては、ブロックを用いて書き換えるフラッシュＥＥＰＲＯＭ５０２上のアドレス情報も付加する。この書き換えテーブルの例を図７に示す。
【００５２】
そして、バイナリファイルと、アップデートモジュールと、ヘッダファイルとを自己解凍ｅｘｅ形式で圧縮することによって結合し、アップデータを作成する。ヘッダファイルをファームウエアのヴァージョン情報、バイナリファイルを復号するための鍵情報、書き換えテーブルを含む。
【００５３】
ユーザが、ファームウエアをアップデートするためには、インターネットを介してＷｅｂサーバからアップデータをダウンロードし一端ハードディスクドライブ１０４に格納し、ダウンロードしたアップデータを実行する必要がある。
【００５４】
次ぎに、実際のアップデート処理について図８のブロック図、および図９のフローチャートを参照して説明する。
【００５５】
ユーザがハードディスクドライブ１０３に格納されたアップデータ６００を実行すると、解凍され主メモリ１０３上にＦＷアップデートプログラム６０１、バイナリファイル６０２、書き換えテーブル６０３、ヴァージョン情報６０４が展開される。そして、ＦＷアップデートプログラム６０１がＣＰＵ１０１によって自動的に実行される。また、著作権保護ＬＳＩ２０３内でのファームウエアの更新作業はＲＡＭ５０３上に展開されたアップデートモジュール６１２によって行われる。
【００５６】
ＣＰＵ１０１は、ＰＣＩバスを介してＲＭＰコントローラ５０１に対してファームウエアのヴァージョン情報を転送するよう要求する（ステップＳ１１）。ＲＭＰコントローラ５０１は、ヴァージョン情報の転送要求を取得すると（ステップＳ３１）、ＣＰＵ１０１に対して、フラッシュＥＥＰＲＯＭ５０２に格納されたファームウエア６１１のヴァージョン情報を転送する（ステップＳ３２）。
【００５７】
ＣＰＵ１０１は、ヴァージョン情報を取得すると（ステップＳ１２）、更新用ファイルのヴァージョン情報６０４と取得したヴァージョン情報とを比較し、更新用ファイルのヴァージョンがフラッシュＥＥＰＲＯＭ５０２に格納されたファームウエアより新しいか否かを判定する(ステップＳ１３)。ヴァージョンが同じ、若しくは古くて、更新用ファイルのヴァージョンが新しくない場合(ステップＳ１３のＮｏ）、更新処理を終了する（ステップＳ２４）。
【００５８】
更新用ファイルのヴァージョンが新しい場合（ステップＳ１３のＹｅｓ）、ＣＰＵ１０１は、チャレンジレスポンス方式などにより、ＲＭＰコントローラ５０１に対し、ＰＣＩバスを介して、ヘッダファイルに含まれているバイナリデータを復号するための鍵情報６０５を転送する（ステップＳ１２）。ＲＭＰコントローラ５０１は、プログラムが転送した鍵情報を取得する（ステップＳ３３）。
【００５９】
ＣＰＵ１０１は、バイナリファイル６０２のまだ読み出していない領域の先頭からブロック暗号処理の際のブロック長サイズのデータを読み出す（ステップＳ１５）。ＣＰＵ１０１は読み出したデータをバイナリデータとしてＰＣＩバスを介してＲＭＰコントローラ５０１に転送する（ステップＳ１６）。
【００６０】
ＲＭＰコントローラ５０１は、ＣＰＵ１０１が転送したバイナリデータを取得し、ＲＡＭ５０３に記憶させる（ステップＳ３４）。そして、ＲＭＰコントローラ５０１は、バイナリデータを、ステップＳ３３で取得した鍵情報、並びに初期ベクトル若しくは前のブロックのバイナリデータを用いて復号する（ステップＳ３５）。復号は、暗号化部５０７を用いて行われる。
【００６１】
ＣＰＵ１０１は、ヘッダファイルに含まれる書き換えテーブル６０３を参照し、ＲＭＰコントローラ５０１に転送したバイナリデータを復号したデータがフラッシュＥＥＰＲＯＭ５０２を書き換える書き換え対象であるか否かを判定する（ステップＳ１７）。この時、フラッシュＥＥＰロム５０２に格納されたファームウエアのヴァージョンに応じて異なることがあるので、ステップＳ１２で取得されたファームウエアのヴァージョンに応じて、書き換える書き換え対象であるか否かを判定する。
【００６２】
書き換え対象の場合（ステップＳ１７のＹｅｓ）、書換フラグ（イネーブル）およびフラッシュメモリ上のアドレスを含む書換情報をＲＭＰコントローラ５０１に転送する。
【００６３】
書き換え対象ではない場合（ステップＳ１７のＮｏ）、書換フラグ（ディスイネーブル）を含む書換情報をＲＭＰコントローラ５０１に転送する。
【００６４】
ＲＭＰコントローラ５０１は、書換情報を取得する（ステップＳ３６）。ＲＭＰコントローラ５０１は、書換フラグがイネーブルであるか否かを判定する（ステップＳ３７）。書換フラグがイネーブルの場合（ステップＳ３７のＹｅｓ）、ＲＭＰコントローラ５０１は、転送されたアドレス領域のフラッシュＥＥＰＲＯＭ５０２を復号したデータによって書き換える（ステップＳ３８）。
【００６５】
ステップＳ３８の処理の後或いは、書換フラグがイネーブルではない場合（ステップＳ３７のＮｏ）、ＲＭＰコントローラ５０１は、書換終了信号を転送し、書換が終了した旨をＣＰＵ１０１に通知する（ステップＳ３９）。ここで、書換フラグがイネーブルではない、即ち書換フラグがディスイネーブルの場合、フラッシュＥＥＰＲＯＭ５０２の書き換えを行わずに、書換終了信号を転送している。
【００６６】
ＣＰＵ１０１は、書換終了信号を取得すると（ステップＳ２０）、転送したバイナリデータがバイナリファイル６０２の最終ブロックであるか否かを判定する（ステップＳ２１）。
【００６７】
最終ブロックでは無かった場合（ステップＳ２１のＮｏ）、ＣＰＵ１０１は、次ブロック転送信号をＲＭＰコントローラ５０１に転送する（ステップＳ２２）。その後、ステップＳ１５〜ステップＳ２１の処理を順次行う。最終ブロックの場合（ステップＳ２１のＹｅｓ）、リセット信号をＲＭＰコントローラ５０１に転送する（ステップＳ２３）し、処理を終了する（ステップＳ２４）。
【００６８】
ＲＭＰコントローラ５０１は信号を取得すると（ステップＳ４０）、取得した信号がリセット信号であるか否かを判定する（ステップＳ４１）。取得した信号がリセット信号ではない場合（ステップＳ４１のＮｏ）、ＲＭＰコントローラ５０１は次のブロックのデータが転送されるのを待つ。取得した信号がリセット信号の場合（ステップＳ４１のＹｅｓ）、ＲＭＰコントローラ５０１は更新されたファームウエアをメモリに転送して起動し、ＦＷアップデートが完了する。
【００６９】
上述したように、書き換え不要の領域は著作権保護ＬＳＩ２０３側で、復号のみを実行しフラッシュＥＥＰＲＯＭ５０２への書き込みをスキップすることで、一つの暗号化されたバイナリファイルで、書き換え対象の領域のみ書き換えることでファームウエアのアップデートを可能にする。
【００７０】
ファームウエア全体を一つのファイルとして暗号化し、フラッシュＥＥＰＲＯＭ５０２全体を書き換えると、書き換え不要な領域も書き換えることになるので、わずかな領域を更新する場合でも全部書き換えることになるので、アップデート処理に余計な時間がかかる。また、書き換え回数の増加によりフラッシュＥＥＰＲＯＭ５０２の寿命が短くなる。ところが、上述したように、書き換え不要の領域は書き込みをスキップ書き換え対象の領域のみ書き換えることで、アップデート処理にかかる時間を短くすると共に、フラッシュＥＥＰＲＯＭ５０２の寿命を延ばすことができる。
【００７１】
更新対象領域のFWを更新対象領域の数だけ別々にファイルとして暗号化し、更新対象のフラッシュＥＥＰＲＯＭ５０２のみを書き換えると、フラッシュＥＥＰＲＯＭ５０２に格納されている可能性があるファームウエアのバージョンに応じて、複数のバイナリファイルを用意する必要があり、更新対象の領域が分散していればしているほどバイナリファイル作成の手間がかかる。ところが、上述したように、用意するバイナリファイルは一つなので、バイナリファイル作成の手間を軽減することができる。
【００７２】
ところで、フラッシュＥＥＰＲＯＭの領域にチェックサムや更新日時など、バイナリファイル内に埋め込むことが容易でないデータを書き換える場合も上述した実施形態を応用することにより、容易にファームウエアのアップデートで書き換えることができる(チェックサムの値は、バイナリファイル作成、チェックサム計算、バイナリファイル再作成という手順を経れば、バイナリファイル内に埋め込むことは可能だが、バイナリファイルを二回作成する必要があり手間がかかる)。
【００７３】
例えば、ファームウエアアップデートによりバイナリデータに加えて、チェックサムの値を書き換える場合、次の手順で書き換える。
【００７４】
準備として、バイナリファイル内にチェックサム部分をダミーデータとして用意し、バイナリファイルの暗号化を行う。また、バイナリファイル作成後にチェックサムを計算し、チェックサムの値をFWアップデートプログラム内に保持する。
【００７５】
ＦＷアップデートでフラッシュＥＥＰＲＯＭの領域を書き換える際、チェックサム部分は、前述の実施例同様、復号のみ行い書き換えをスキップする。バイナリファイルをフラッシュＥＥＰＲＯＭへ書き込んだ後で、チェックサムの値を書き換えればよい。
【００７６】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００７７】
【図１】本発明の一実施形態に係るコンピュータの概観を示す斜視図。
【図２】図１のコンピュータのシステム構成を示すブロック図。
【図３】図１のコンピュータによって受信される放送番組データを構成するＴＳパケットの構造を示す図。
【図４】図１のコンピュータにおいて実行される放送コンテンツのデスクランブル処理を説明するための図。
【図５】図１のコンピュータに設けられた著作権保護ＬＳＩの構成を示すブロック図。
【図６】著作権保護ＬＳＩのフラッシュＥＥＰＲＯＭに格納されたファームウエアを更新するためのアップデータの作成方法を示す図。
【図７】アップデータに含まれる書き換えテーブルの一例を示す図。
【図８】ファームウエアを更新するための構成を示すブロック図。
【図９】ファームウエアの更新方法の一例を示すフローチャート。
【符号の説明】
【００７８】
１０…コンピュータ、１０１…ＣＰＵ、１１７…デジタルＴＶ放送受信処理部、１１８…アナログＴＶ放送受信処理部、２０３…著作権保護ＬＳＩ、５０１…ＲＭＰコントローラ、５０２…フラッシュＥＥＰＲＯＭ、５０４…デスクランブラ、５０５…タイムスタンプ付加部、５０６…ＰＩＤフィルタ部、５０７…暗号化部、６００…アップデータ、６０１…ＦＷアップデートプログラム、６０２…バイナリファイル、６０３…書き換えテーブル、６０４…ヴァージョン情報、６０５…鍵情報、６１１…ファームウエア、６１２…アップデートモジュール。
【図１】
2007257119.tif 000003
【図２】
2007257119.tif 000004
【図３】
2007257119.tif 000005
【図４】
2007257119.tif 000006
【図５】
2007257119.tif 000007
【図６】
2007257119.tif 000008
【図７】
2007257119.tif 000009
【図８】
2007257119.tif 000010
【図９】
2007257119.tif 000011