情報処理装置
【課題】ネットワーク経由で配信されるコンテンツを汎用的な情報処理装置で再生する場合に、コンテンツの不正利用を効果的に防止する。
【解決手段】耐タンパ性を備えるセキュアモジュール11内に、復号鍵を記憶する鍵記憶部11a、復号部11bおよび暗号化部11cを設ける。受信手段12は、ネットワーク3経由で配信される配信データを受信し、復号部11bに転送する。復号部11bは、配信データを復号鍵でコンテンツに復号する。暗号化部11cは、コンテンツを複数の部分コンテンツに分割して一時暗号鍵で暗号化する。また、一時暗号鍵を変更する毎に一時復号鍵の情報を出力する。再生手段13は、暗号化された部分コンテンツを一時復号鍵で復号し、複数の部分コンテンツを結合して再生する。
【解決手段】耐タンパ性を備えるセキュアモジュール11内に、復号鍵を記憶する鍵記憶部11a、復号部11bおよび暗号化部11cを設ける。受信手段12は、ネットワーク3経由で配信される配信データを受信し、復号部11bに転送する。復号部11bは、配信データを復号鍵でコンテンツに復号する。暗号化部11cは、コンテンツを複数の部分コンテンツに分割して一時暗号鍵で暗号化する。また、一時暗号鍵を変更する毎に一時復号鍵の情報を出力する。再生手段13は、暗号化された部分コンテンツを一時復号鍵で復号し、複数の部分コンテンツを結合して再生する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はコンテンツを再生可能な情報処理装置に関し、特にネットワーク経由で配信されるコンテンツを再生可能な情報処理装置に関する。
【背景技術】
【0002】
近年、デジタル方式で符号化されたコンテンツを放送するデジタル放送が普及し始めている。デジタル方式はアナログ方式に比べて通信効率が高く、限られた通信帯域でも高品質なコンテンツを配信できる。また、コンテンツに対して多様な情報処理を行うことが容易である。
【0003】
一方、デジタル方式のコンテンツは複製を行っても品質が劣化しないため、アナログ方式以上にコンテンツの保護が重要となる。この点、デジタル方式のコンテンツには、暗号化処理が施されていることが多い。従って、デジタル放送を視聴可能なテレビには、復号処理を行う回路が組み込まれている。また、デジタル放送を視聴可能なパーソナルコンピュータ(PC:Personal Computer)には、テレビチューナと復号処理を行う回路とを備えるハードウェアが搭載されている(例えば、特許文献1参照)。
【0004】
ところで、コンテンツ視聴の利便性や柔軟性という観点から、放送だけでなくネットワーク経由でもコンテンツが配信されることが期待される。ネットワーク経由による配信では、利用者の好きな時間にコンテンツを視聴できるようにすること(オンデマンド配信)が容易である。また、利用者に応じて異なるコンテンツが配信されるようにすることも容易である(例えば、特許文献2参照)。
【0005】
しかし、ネットワーク経由によるコンテンツ配信は、放送と比べて未だ広く普及しているとはいえない。ネットワーク経由で配信されたコンテンツを再生する装置として一般的なPCでは、現在、コンテンツの保護と利用者の利便性との両立が困難なためである。すなわち、PCは汎用的な情報処理装置であるため、改竄されたソフトウェアによって、許可された範囲を超えて不正にコンテンツが利用される可能性を排除できない。一方、専用のハードウェアをPCに追加してコンテンツを再生する方法では(例えば、特許文献3参照)、さまざまな種類のコンテンツに柔軟に対応できず、PCのもつ汎用性を生かすことができない。
【0006】
そこで、現在、最小限のハードウェアをPCに追加するだけで、コンテンツ保護に配慮しつつソフトウェアでコンテンツを再生可能にする技術の開発が進められている。例えば、コンテンツを再生しているソフトウェアが、配信者が配布した正規のソフトウェアであるか否かをハードウェアで継続的に検査する技術が知られている(例えば、特許文献4参照)。このハードウェアとしては、内部に格納された情報に対して外部から参照や更新ができないという性質(耐タンパ性)を備えるものを用いる。これにより、改竄されたソフトウェアによってコンテンツが不正利用されることを防止でき、コンテンツの保護と利用者の利便性を両立できる。
【特許文献1】特開2003−198527号公報
【特許文献2】特開2004−54913号公報
【特許文献3】特開2003−158514号公報
【特許文献4】特開2004−129227号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかし、上記特許文献4記載の技術では、改竄されたソフトウェアによるコンテンツの不正利用を防止できるが、暗号化されたコンテンツを再生する処理内容自体が解析される可能性を排除できないという問題がある。すなわち、コンテンツを再生するソフトウェアのプログラムは再生時にメモリ上に展開されているため、利用者が作成したプログラムによってその挙動が監視され、処理内容が解析される可能性がある。ここで、コンテンツを復号するための復号鍵や復号アルゴリズムが解析されると、利用者によって自由に復号処理が行われてコンテンツが利用されてしまう。
【0008】
本発明はこのような点に鑑みてなされたものであり、暗号化されたコンテンツを復号するための復号鍵や復号アルゴリズムが解析されることを防止することで、ネットワーク経由で配信されるコンテンツの不正利用を効果的に防止する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明では上記課題を解決するために、図1に示すような情報処理装置10が提供される。情報処理装置10は、ネットワーク3経由で配信されるコンテンツを再生するものである。情報処理装置10は、セキュアモジュール11、受信手段12および再生手段13を有している。セキュアモジュール11は、耐タンパ性を備えており、内部に鍵記憶部11a、復号部11bおよび暗号化部11cを有している。鍵記憶部11aは、暗号化されたコンテンツである配信データを復号するための復号鍵を記憶する。復号部11bは、配信データが入力されると、鍵記憶部11aが記憶する復号鍵を用いて、配信データをコンテンツに復号する。暗号化部11cは、復号部11bが復号したコンテンツを複数の部分コンテンツに分割し、個々の部分コンテンツを所定の時間間隔で変更する一時暗号鍵で暗号化して内部伝送データとして出力すると共に、一時暗号鍵を変更する毎に内部伝送データを復号するための一時復号鍵の情報を出力する。受信手段12は、ネットワーク3経由で配信される配信データを受信し、セキュアモジュール11内の復号部11bに配信データを転送する。再生手段13は、セキュアモジュール11内の暗号化部11cが出力する内部伝送データと一時復号鍵の情報とを取得し、一時復号鍵を用いて内部伝送データを部分コンテンツに復号し、復号した複数の部分コンテンツを結合してコンテンツを再生する。
【0010】
このような情報処理装置10によれば、受信手段12により、ネットワーク3経由で配信される配信データが受信され、復号部11bに転送される。復号部11bにより、配信データが復号鍵でコンテンツに復号される。暗号化部11cにより、コンテンツが複数の部分コンテンツに分割され、個々の部分コンテンツが一時暗号鍵で暗号化される。また、暗号化部11cにより、一時暗号鍵が変更される毎に一時復号鍵の情報が出力される。そして、再生手段13により、暗号化された部分コンテンツが一時復号鍵で復号され、復号された複数の部分コンテンツが結合されて再生される。
【0011】
また、上記課題を解決するために、ネットワーク経由で配信されるコンテンツを再生可能な情報処理装置において、耐タンパ性を備えており、暗号化されたコンテンツである配信データを復号するための復号鍵を記憶する鍵記憶部と、配信データが入力されると、配信データを複数の部分配信データに分割する分割部と、分割部が分割した個々の部分配信データを、所定の時間間隔で変更する一時暗号鍵で暗号化して内部伝送データとして出力すると共に、一時暗号鍵を変更する毎に、鍵記憶部が記憶する復号鍵を一時暗号鍵で暗号化して鍵データとし、内部伝送データを復号するための一時復号鍵の情報と鍵データの情報とを出力する暗号化部と、を有するセキュアモジュールと、ネットワーク経由で配信される配信データを受信し、セキュアモジュール内の分割部に配信データを転送する受信手段と、セキュアモジュール内の暗号化部が出力する内部伝送データと一時復号鍵の情報および鍵データの情報とを取得し、一時復号鍵を用いて内部伝送データを部分配信データに復号し、復号した複数の部分配信データを結合して配信データとすると共に、一時復号鍵を用いて鍵データを復号鍵に復号し、復号鍵を用いて配信データをコンテンツに復号して再生する再生手段と、を有することを特徴とする情報処理装置が提供される。
【0012】
このような情報処理装置によれば、受信手段により、ネットワーク経由で配信される配信データが受信され、分割部に転送される。分割部により、配信データが複数の部分配信データに分割される。暗号化部により、個々の部分配信データが一時暗号鍵で暗号化される。また、暗号化部により、一時暗号鍵が変更される毎に、一時復号鍵の情報と復号鍵を一時暗号鍵で暗号化した鍵データの情報とが出力される。そして、再生手段により、暗号化された部分配信データが一時復号鍵で復号され、復号された複数の部分配信データが結合されると共に、暗号化された復号鍵が一時復号鍵で復号され、配信データが復号鍵でコンテンツに復号されて再生される。
【発明の効果】
【0013】
本発明では、耐タンパ性を備えるセキュアモジュール内に配信データに対する復号鍵を格納することとした。これにより、情報処理装置のメモリの内容を解析しても配信データの復号鍵を取得することができない。また、耐タンパ性を備えるセキュアモジュール内で、コンテンツを複数に分割して一時暗号鍵で再暗号化することとした。これにより、情報処理装置のメモリの内容を解析しても再暗号化のアルゴリズムを知ることができず、また、仮に一時復号鍵が知られた場合でもその影響範囲を最小限に抑えることができる。
【0014】
更に、セキュアモジュール内ではコンテンツ自体を蓄積する必要がないため、最小限の記憶領域を備えればよく、セキュアモジュールの回路規模を抑制できる。
特に、セキュアモジュール内でコンテンツの復号処理を行うようにすることで、再生処理の仕組みが解析されることをより確実に防止できる。一方、コンテンツの復号処理をソフトウェアに委ねるようにすることで、セキュアモジュールの復号処理の能力を超えるコンテンツを受信する場合でも、情報処理装置がもつ演算装置の処理能力を活用して、コンテンツを正常に再生できる。また、より多様な暗号化アルゴリズムに対応して、復号処理を行うことができる。
【発明を実施するための最良の形態】
【0015】
以下、本発明の実施の形態を図面を参照して詳細に説明する。まず、本実施の形態の概要について説明し、その後、本実施の形態の具体的な内容を説明する。
図1は、本実施の形態の概要を示す図である。図1に示す情報処理装置10は、配信装置2が配信する配信データをネットワーク3経由で受信し、コンテンツに復号して表示装置4に表示するものである。情報処理装置10は、セキュアモジュール11、受信手段12および再生手段13を有する。セキュアモジュール11は、耐タンパ性を備えており、内部に鍵記憶部11a、復号部11bおよび暗号化部11cを有する。
【0016】
鍵記憶部11aは、配信データを復号するための復号鍵を記憶する。配信データは、配信装置2によってコンテンツが暗号化されたものである。鍵記憶部11aには、配信装置2がコンテンツの暗号化に用いる暗号鍵に対応する復号鍵が予め格納される。なお、暗号化処理に共通鍵暗号方式が採用された場合、復号鍵は暗号鍵と同一となる。
【0017】
復号部11bは、セキュアモジュール11の外部から配信データが入力されると、鍵記憶部11aに記憶された復号鍵を用いて、配信データをコンテンツに復号する。復号部11bが実行する復号処理の手順は、配信装置2が実行する暗号化処理の手順に対応するように予め設定しておく。
【0018】
暗号化部11cは、復号部11bが復号したコンテンツを複数の部分コンテンツに分割する。その後、暗号化部11cは、個々の部分コンテンツを一時暗号鍵で暗号化し、内部伝送データとしてセキュアモジュール11の外部に出力する。ここで、一時暗号鍵は、所定の時間間隔で変更される一時的な暗号鍵である。暗号化部11cは、部分コンテンツの暗号化に用いる一時暗号鍵を変更すると、対応する一時復号鍵の情報も、セキュアモジュール11の外部に出力する。
【0019】
受信手段12は、配信装置2からネットワーク3経由で配信データを受信する。そして、受信手段12は、受信した配信データを、セキュアモジュール11内の復号部11bに転送する。
【0020】
再生手段13は、セキュアモジュール11内の暗号化部11cが出力する内部伝送データを取得する。また、暗号化部11cが所定の時間間隔で出力する一時復号鍵の情報も取得する。そして、再生手段13は、最新の一時復号鍵を用いて内部伝送データを部分コンテンツに順次復号し、複数の部分コンテンツを結合してコンテンツを再現する。その後、再生手段13は、再現したコンテンツを再生して表示装置4に表示する。
【0021】
なお、図1では、再生手段13は表示装置4に対して出力を行っているが、再生するコンテンツに音声部分が含まれる場合、再生手段13は図示しない音声出力装置に対しても出力を行う。また、音声のみのコンテンツを再生する場合も、同様の処理で実現できる。
【0022】
このような情報処理装置10によれば、受信手段12により、配信装置2からネットワーク3経由で配信される配信データが受信され、復号部11bに転送される。次に、復号部11bにより、セキュアモジュール11内で、配信データが復号鍵でコンテンツに復号される。そして、暗号化部11cにより、セキュアモジュール11内で、コンテンツが複数の部分コンテンツに分割され、個々の部分コンテンツが一時暗号鍵で暗号化される。また、一時暗号鍵が変更される毎に一時復号鍵の情報が出力される。その後、再生手段13により、暗号化された部分コンテンツが一時復号鍵で復号され、復号された複数の部分コンテンツが結合されて再生される。
【0023】
これにより、利用者がコンテンツの再生中に情報処理装置10のメモリの内容を解析しても、復号鍵や復号アルゴリズム、再暗号化のアルゴリズムを知ることができない。また、仮に利用者に一時復号鍵が知られた場合でも、所定の時間間隔で変更されるため、その影響範囲を最小限に抑えることができる。更に、セキュアモジュール11内にコンテンツを蓄積する必要がないため、セキュアモジュール11は最小限の記憶領域を備えればよく、回路規模を抑制できる。
【0024】
なお、セキュアモジュール11が復号処理のための十分な処理能力を備えていない場合、復号処理を再生手段13に委ねることもできる。すなわち、復号部11bが復号処理を行わず、暗号化部11cが二重に暗号化された状態の内部伝送データを出力し、再生手段13が一時復号鍵と復号鍵とを用いて復号処理を行うようにすることもできる。この場合、情報処理装置10は、セキュアモジュール11の処理能力を超えるコンテンツを受信して再生することができる。また、より多様な暗号化アルゴリムに対応することができる。
【0025】
[第1の実施の形態]
最初に、第1の実施の形態を図面を参照して詳細に説明する。
図2は、コンテンツ配信システムのシステム構成を示す図である。第1の実施の形態に係るコンテンツ配信システムは、利用者がネットワーク経由で配信されるコンテンツをPCを用いて視聴できるようにするシステムである。図2に示すコンテンツ配信システムはコンテンツ視聴PC100,100a,100b、コンテンツ配信サーバ200およびネットワーク50で構成される。コンテンツ視聴PC100,100a,100bは、ネットワーク50を介してコンテンツ配信サーバ200と接続されている。
【0026】
コンテンツ視聴PC100,100a,100bは、利用者が操作するPCである。コンテンツ視聴PC100,100a,100bには、通常のPCに搭載されているハードウェアおよびソフトウェアに加えて、ネットワーク経由で配信されるコンテンツを視聴するためのハードウェアおよびソフトウェアが搭載されている。
【0027】
利用者は、コンテンツ視聴PC100,100a,100bを、通常のPCとしての用途とコンテンツを視聴する用途との両方に使用することができる。コンテンツ視聴PC100,100a,100bは、利用者からコンテンツの視聴を開始する指示が入力されると、ネットワーク50を介してコンテンツ配信サーバ200に視聴要求を送信する。
【0028】
コンテンツ配信サーバ200は、コンテンツ視聴PC100,100a,100bから視聴要求を受信すると、保持しているコンテンツから要求されたコンテンツを検索する。そして、コンテンツ配信サーバ200は、ネットワーク50を介してコンテンツを視聴要求の要求元に配信する。なお、コンテンツ配信サーバ200は、コンテンツの不正利用を防止するため、コンテンツを暗号化して配信する。また、必要に応じて、利用者がコンテンツを視聴する権利を有するか否かの認証を行う。
【0029】
次に、コンテンツ視聴PC100,100a,100bおよびコンテンツ配信サーバ200のハードウェア構成について説明する。
図3は、コンテンツ視聴PCのハードウェア構成を示す図である。コンテンツ視聴PC100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、通信インタフェース106およびセキュアLSI(Large Scale Integration)107が接続されている。
【0030】
RAM102には、CPU101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSプログラムやアプリケーションプログラムが格納される。
【0031】
グラフィック処理装置104には、モニタ61が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ61の画面に表示させる。入力インタフェース105には、キーボード62とマウス63とが接続されている。入力インタフェース105は、キーボード62やマウス63から送られてくる信号を、バス108を介してCPU101に送信する。通信インタフェース106は、ネットワーク50に接続されている。
【0032】
セキュアLSI107には、耐タンパ性を備えるセキュア領域が設けられている。セキュア領域には、不正なプログラムから保護される必要がある情報が格納される。また、セキュア領域では、解析されることを防止する必要がある処理が実行される。セキュアLSI107は、RAM102に格納されたプログラムやデータを読み出すことができる。また、セキュアLSI107は、RAM102にデータを書き込むことができる。
【0033】
なお、コンテンツ視聴PC100a,100bおよびコンテンツ配信サーバ200も、コンテンツ視聴PC100と同様のハードウェア構成によって実現できる。ただし、コンテンツ配信サーバ200には、セキュアLSIを搭載する必要はない。以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
【0034】
次に、コンテンツ視聴PC100,100a,100bおよびコンテンツ配信サーバ200のモジュール構成について説明する。
図4は、第1の実施の形態のコンテンツ視聴PCの機能を示すブロック図である。コンテンツ視聴PC100は、セキュア記憶部110、セキュア処理部120、共有記憶部130、利用者情報記憶部140、監視部150、受信部160および再生部170を有する。受信部160は、ネットワーク50を介してコンテンツ配信サーバ200と通信を行うことができる。再生部170は、モニタ61の画面に再生中のコンテンツを表示することができる。
【0035】
セキュア記憶部110、セキュア処理部120および共有記憶部130は、セキュアLSI107によって実現される。特に、セキュア記憶部110およびセキュア処理部120は、耐タンパ性を備えるセキュア領域内で実現される。利用者情報記憶部140は、HDD103によって実現される。監視部150、受信部160および再生部170は、CPU101によって実現される。
【0036】
セキュア記憶部110には、コンテンツ配信サーバ200から配信される配信データを復号するために必要な情報が格納される。また、利用者情報や監視部150および再生部170の処理機能が改竄されていないか検査するための情報も格納される。セキュア記憶部110に格納された情報は、セキュア領域内にあるため、CPU101などから直接参照することができない。
【0037】
セキュア処理部120は、受信部160から配信データを取得すると、セキュア記憶部110に格納された情報を参照して復号処理を行い、復号したコンテンツを所定のデータ長の部分コンテンツに分割する。その後、セキュア処理部120は、定期的に変更する一時暗号鍵を用いて、部分コンテンツを再暗号化し、内部伝送データとして再生部170に出力する。このとき、セキュア処理部120は、内部伝送データを復号するための一時復号鍵を、共有記憶部130に格納する。
【0038】
また、セキュア処理部120は、セキュア記憶部110に格納された情報を参照して、利用者情報の管理や、監視部150および再生部170の処理機能が改竄されていないかの検査を行う。セキュア処理部120の処理機能は、セキュア領域内にあるため、CPU101などによって処理の具体的な手順が解析されることがない。
【0039】
共有記憶部130には、セキュア処理部120によって暗号化された内部伝送データを復号するための一時復号鍵が格納される。共有記憶部130に格納された情報は、セキュア処理部120と再生部170とから共通に参照および更新を行うことができる。
【0040】
利用者情報記憶部140には、利用者情報が格納される。利用者情報には、予めコンテンツ提供者から割り当てられた利用者ID、コンテンツ視聴PC100に搭載されているハードウェアおよびソフトウェアに関する情報、コンテンツの視聴履歴の情報が含まれる。利用者情報は、暗号化された状態で利用者情報記憶部140に格納される。
【0041】
監視部150は、コンテンツ視聴PC100における処理の実行状況を継続的に監視する。具体的には、監視部150は、コンテンツ視聴PC100で実行されているプロセス、利用者による操作入力、他のコンピュータとの間の通信を監視する。ここで、コンテンツの再生に無関係な処理が検出されると、監視部150はセキュア処理部120にその旨を通知し、復号処理の停止を要求する。
【0042】
また、監視部150は、利用者の操作入力やコンテンツの再生状況に応じて、利用者情報の更新をセキュア処理部120に指示する。また、監視部150は、セキュア処理部120からの要求に応じて、暗号化された状態の利用者情報を、セキュア処理部120と利用者情報記憶部140との間で中継する。
【0043】
受信部160は、利用者からコンテンツの視聴が指示されると、コンテンツ配信サーバ200に対してコンテンツの配信要求を送信する。そして、受信部160は、コンテンツ配信サーバ200から、暗号化された状態のコンテンツである配信データを受信すると、受信した配信データをセキュア処理部120に転送する。また、受信部160は、コンテンツ配信サーバ200から利用者認証を要求されると、セキュア処理部120を介して利用者情報を取得し、取得した利用者情報を用いて利用者認証の処理を行う。
【0044】
再生部170は、セキュア処理部120が出力する内部伝送データを取得すると、共有記憶部130から一時復号鍵を取得し、内部伝送データを部分コンテンツに復号する。そして、再生部170は、複数の部分コンテンツを結合してコンテンツを再現し、再現したコンテンツを再生してモニタ61に表示する。
【0045】
なお、コンテンツ視聴PC100およびコンテンツ配信サーバ200は、暗号化方式として共通暗号方式を用いることとする。従って、暗号鍵と復号鍵、一時暗号鍵と一時復号鍵とは、それぞれ同一のデータである。それぞれの鍵は、例えば、128ビットの固定長のビット列である。
【0046】
図5は、第1の実施の形態のセキュアLSIの機能を示すブロック図である。図5は、セキュアLSI107内で実現されるセキュア記憶部110、セキュア処理部120および共有記憶部130の機能の詳細を示している。
【0047】
セキュア記憶部110は、検査情報記憶部111、識別情報記憶部112、初期情報記憶部113、復号鍵記憶部114および位置決定情報記憶部115を有する。
検査情報記憶部111には、監視部150および再生部170の処理機能が改竄されていないか検査するための検査情報が予め格納される。具体的には、検査情報記憶部111には、監視部150および再生部170の処理機能を実現するためのプログラムが実行される際に、RAM102に展開されるメモリイメージの少なくとも一部から計算される値が格納される。ここで計算される値は、プログラムの一部が改竄されると異なる値になるようにする。
【0048】
識別情報記憶部112には、セキュアLSI107を一意に識別するLSI固有番号が予め格納される。格納されたLSI固有番号は、その後に変更されることはない。また、識別情報記憶部112には、最新の利用者情報から計算されるハッシュ値が格納される。ここで計算されるハッシュ値は、利用者情報の一部が改竄されると異なる値になるようにする。
【0049】
初期情報記憶部113には、配信データを復号するための復号鍵を変更する際に、新しい復号鍵を生成するために用いられる初期情報が予め格納される。格納された初期情報は、コンテンツ配信サーバ200がもつ初期情報と同一のものであり、その後に変更されることはない。
【0050】
復号鍵記憶部114には、配信データを復号するための復号鍵が格納される。格納された復号鍵は、コンテンツ配信サーバ200が配信データの暗号化に用いる暗号鍵を変更するのに併せて、適宜変更される。
【0051】
位置決定情報記憶部115には、共有記憶部130がもつ記憶領域の中から一時復号鍵を格納する位置を決定するための位置決定プログラム情報が予め格納される。位置決定プログラム情報は、予め複数用意されている。また、位置決定情報記憶部115には、個々の位置決定プログラム情報に対応して、一時復号鍵が格納された位置を解読するための位置解読プログラム情報が予め格納されている。位置決定プログラム情報および位置解読プログラム情報は、プログラムの断片であり、上記処理の具体的な手順が記載されている。
【0052】
セキュア処理部120は、改竄検査部121、命令受付部122、利用者管理部123、鍵生成部124、復号部125および再暗号化部126を有する。
改竄検査部121は、監視部150および再生部170が起動されると、これらの処理機能が改竄されていないか継続的に検査を行う。すなわち、改竄検査部121は、監視部150および再生部170に対応するメモリイメージをRAM102から取得し、取得したメモリイメージから所定の計算方法で値を計算して、検査情報記憶部111に格納された検査情報と照合する。ここで、両者の値が一致しない場合、改竄検査部121は、復号部125に配信データの復号処理を停止するよう指示する。両者の値が一致した場合、改竄検査部121は改竄検査を継続する。
【0053】
命令受付部122は、セキュア処理部120の外部からの命令を受け付け、命令の種類に応じて、利用者管理部123、鍵生成部124もしくは復号部125を呼び出す。具体的には、命令受付部122は、利用者情報の取得命令を受け付けた場合、利用者管理部123に利用者情報の取得を指示する。利用者情報の更新命令を受け付けた場合、利用者管理部123に更新データを渡して利用者情報の更新を指示する。復号鍵の変更命令を受け付けた場合、鍵生成部124に復号鍵の生成に用いられる変更鍵を渡して復号鍵の変更を指示する。復号処理の停止命令を受け付けた場合、復号部125に復号処理の停止を指示する。
【0054】
利用者管理部123は、命令受付部122から利用者情報の取得が指示されると、監視部150を介して、利用者情報記憶部140に格納された暗号化データを取得する。そして、取得した暗号化データを所定の方法で利用者情報に復号する。ここで、利用者管理部123は、復号した利用者情報からハッシュ値を計算し、識別情報記憶部112に格納されたハッシュ値と照合する。両者の値が一致しない場合、利用者管理部123は、利用者情報が改竄されている旨を要求元に応答する。両者の値が一致した場合、利用者管理部123は、識別情報記憶部112に格納されたLSI固有番号を利用者情報に追加して要求元に出力する。
【0055】
また、利用者管理部123は、命令受付部122から利用者情報の更新が指示されると、上記と同様の方法で利用者情報を取得し、更新データに基づいて利用者情報を更新する。ここで、利用者管理部123は、更新後の利用者情報からハッシュ値を計算して、識別情報記憶部112に格納する。その後、利用者管理部123は、更新後の利用者情報を暗号化し、監視部150を介して利用者情報記憶部140に暗号化データを格納する。
【0056】
鍵生成部124は、命令受付部122から復号鍵の変更が指示されると、初期情報記憶部113に格納された初期情報と、命令受付部122から受け取った変更鍵とから、復号鍵を生成する。具体的には、例えば、初期情報と変更鍵との排他的論理和を復号鍵とする。そして、鍵生成部124は、生成した復号鍵を復号鍵記憶部114に格納する。
【0057】
復号部125は、受信部160から配信データを取得すると、復号鍵記憶部114に格納された復号鍵を用いて、配信データをコンテンツに復号する。そして、復号部125は、復号したコンテンツを再暗号化部126に出力する。なお、復号部125は、改竄検査部121もしくは命令受付部122から復号処理の停止が指示された場合は、取得した配信データを破棄して復号処理を行わない。
【0058】
再暗号化部126は、復号部125から取得したコンテンツを所定のデータ長の部分コンテンツに分割する。そして、再暗号化部126は、個々の部分コンテンツを一時暗号鍵で暗号化し、内部伝送データとして再生部170に出力する。一時暗号鍵は再暗号化部126が所定の時間間隔で変更する一時的な暗号鍵である。
【0059】
ここで、再暗号化部126は、一時暗号鍵を変更する毎に、それに対応する一時復号鍵(実際には、一時暗号鍵と同一の鍵)を一時復号鍵記憶部131に格納する。このとき、再暗号化部126は、位置決定情報記憶部115に格納された位置決定プログラム情報の中から1つを選択し、選択した位置決定プログラム情報に記述された処理を実行することで、一時復号鍵を格納する位置を決定する。そして、再暗号化部126は、選択した位置決定プログラム情報に対応する位置解読プログラム情報を、位置決定情報記憶部115から取得し、再生部170に通知する。
【0060】
共有記憶部130は、一時復号鍵記憶部131を有する。一時復号鍵記憶部131には、再暗号化部126が出力する一時復号鍵が格納される。格納された一時復号鍵は、再生部170によって読み出される。
【0061】
以上、コンテンツ視聴PC100のモジュール構成について説明したが、コンテンツ視聴PC100a,100bも、コンテンツ視聴PC100と同様のモジュール構成によって実現できる。
【0062】
図6は、コンテンツ配信サーバの機能を示すブロック図である。コンテンツ配信サーバ200は、コンテンツ記憶部210、認証情報記憶部220、送信部230、利用者認証部240、初期情報記憶部250、鍵生成部260、暗号鍵記憶部270および暗号化部280を有する。送信部230は、ネットワーク50を介してコンテンツ視聴PC100,100a,100bと通信を行うことができる。
【0063】
コンテンツ記憶部210には、個々のコンテンツがファイルとして予め格納される。また、必要に応じて、コンテンツについての書誌情報であるメタ情報も格納される。コンテンツには、動画コンテンツ、静止画コンテンツ、音声コンテンツが含まれる。ただし、本実施の形態では、主に動画コンテンツの配信を想定する。
【0064】
認証情報記憶部220には、利用者がコンテンツを視聴する権利を有しているか認証するための認証情報が格納される。認証情報には、契約時に個々の利用者に付与された利用者ID、セキュアLSIを識別するLSI固有番号、契約内容に応じた視聴可能なコンテンツに関する情報が含まれる。
【0065】
送信部230は、コンテンツ視聴PC100,100a,100bからコンテンツの視聴要求を受信すると、視聴要求の要求元に要求して利用者情報を取得する。そして、送信部230は、利用者認証部240に利用者認証を指示する。利用者認証に成功した場合、送信部230は、暗号化部280に要求されたコンテンツの暗号化を指示し、暗号化された状態のコンテンツを配信データとして順次要求元に送信する。利用者認証に失敗した場合、送信部230は、その旨を要求元に応答する。
【0066】
また、送信部230は、鍵生成部260から暗号鍵の変更(すなわち、復号鍵の変更)に用いる変更鍵を受け取ると、コンテンツ視聴PC100,100a,100bに変更鍵を送信する。なお、変更鍵を受け取った時点で通信が確立していないコンテンツ視聴PCに対しては、その後、通信が確立した直後に変更鍵を送信する。
【0067】
利用者認証部240は、送信部230から利用者認証が指示されると、取得した情報と認証情報記憶部220に格納された認証情報とを照合して、利用者認証を行う。例えば、利用者認証部240は、要求元の利用者が契約をしている正規の利用者であるか、正規のセキュアLSIが使用されているかを確認する。また、利用者認証部240は、要求されたコンテンツの視聴が制限されていないか確認する。そして、利用者認証部240は、利用者認証の結果を送信部230に通知する。
【0068】
初期情報記憶部250には、暗号鍵を変更する際に、新しい暗号鍵を生成するために用いられる初期情報が予め格納される。格納された初期情報は、コンテンツ視聴PC100,100a,100bがもつ初期情報と同一のものであり、その後に変更されることはない。
【0069】
鍵生成部260は、所定の時間間隔で、コンテンツを暗号化するための暗号鍵を変更する。具体的には、鍵生成部260は、まず変更鍵をランダムに生成する。そして、初期情報記憶部250に格納された初期情報と生成した変更鍵とから暗号鍵を生成する。例えば、鍵生成部260は、初期情報と変更鍵との排他的論理和を暗号鍵とする。その後、鍵生成部260は、生成した暗号鍵を暗号鍵記憶部270に格納する。また、鍵生成部260は、送信部230に変更鍵を通知する。
【0070】
暗号鍵記憶部270には、鍵生成部260によって生成された最新の暗号鍵が格納される。また、格納された暗号鍵は、暗号化部280によって取得される。
暗号化部280は、送信部230からコンテンツの暗号化が指示されると、コンテンツ記憶部210を検索して指示されたコンテンツを取得する。そして、暗号化部280は、暗号鍵記憶部270に格納された暗号鍵を用いて、取得したコンテンツを先頭から順次暗号化し、送信部230に出力する。
【0071】
次に、以上のような構成およびデータ構造のシステムにおいて実行される処理の詳細を説明する。なお、以下の説明では、利用者がコンテンツ視聴PC100を使用してコンテンツを視聴する場合について述べる。コンテンツ視聴PC100a,100bを使用する場合も、同様の処理が実行される。
【0072】
最初にPC起動処理の流れについて説明する。コンテンツ視聴PC100の起動後、OSはその用途に応じてPCの環境設定を行う。
図7は、PC起動処理の手順を示すフローチャートである。以下、図7に示す処理をステップ番号に沿って説明する。
【0073】
[ステップS11]CPU101は、HDD103に格納されているOSプログラムを実行してOSを起動する。OSは利用者にログインIDの入力を促し、入力されたログインIDを取得する。
【0074】
[ステップS12]OSは、入力されたログインIDがコンテンツ視聴用IDか否か判断する。ここで、コンテンツ視聴用IDとは、コンテンツ視聴PC100をコンテンツを視聴する用途で使用するための専用のログインIDである。コンテンツ視聴用IDは、予めOSに設定されている。ログインIDがコンテンツ視聴用IDの場合、処理がステップS13に進められる。コンテンツ視聴用IDでない場合、処理がステップS19に進められる。
【0075】
[ステップS13]OSは、監視部150の処理機能を実現するプログラムをRAM102に展開して監視部150を起動する。なお、コンテンツ視聴用IDでログインした場合、最初に監視部150が起動されることが、予めOSに設定されている。
【0076】
[ステップS14]監視部150は、コンテンツ視聴PC100で使用可能なメモリ領域のうち、起動した時点で未使用のメモリ領域を全て確保する。
[ステップS15]監視部150は、ステップS14で確保したメモリ領域の中から受信部160のためのメモリ領域を割り当て、受信部160を起動する。同様に、監視部150は、再生部170のためのメモリ領域を割り当て、再生部170を起動する。なお、再生部170は、その後メモリ領域が不足した場合、監視部150に依頼して追加のメモリ領域を割り当ててもらう。
【0077】
[ステップS16]改竄検査部121は、ステップS15で受信部160および再生部170が起動されると、改竄の有無を検査する。すなわち、改竄検査部121は、RAM102に展開されたメモリイメージから計算される値と、検査情報記憶部111に格納された検査情報とを照合する。
【0078】
[ステップS17]改竄検査部121は、ステップS16の照合の結果、2つの値が一致するか、すなわち、改竄がないか判断する。改竄がない場合には、PC起動処理が終了する。改竄がある場合には、処理がステップS18に進められる。
【0079】
[ステップS18]改竄検査部121は、コンテンツの再生が既に開始されているときは、復号部125に復号処理の停止を指示する。
[ステップS19]OSは、通常の設定情報を適用して、コンテンツ視聴PC100を通常のPCとして使用するための環境設定を行う。
【0080】
なお、コンテンツ視聴用IDでログインが行われた場合、その後、上記ステップS16〜S18の処理が、改竄検査部121によって定期的に実行される。
このようにして、OSは、コンテンツ視聴用IDでログインが行われると、最初に監視部150を起動する。監視部150は、未使用のメモリ領域を全て確保する。そして、監視部150は、受信部160および再生部170を起動する。これにより、監視部150が許可しないプロセスの実行を阻止することができる。その後、改竄検査部121は、監視部150および再生部170の改竄の有無を検査し、改竄が検出されると、コンテンツの復号を停止してログオフを行う。一方、OSは、通常のログインIDでログインが行われると、通常の設定情報に従って環境設定を行う。
【0081】
次に、PC監視処理の流れについて説明する。OSによって監視部150が起動されると、監視部150はコンテンツ視聴PC100で不正な処理が行われていないか継続的に監視する。
【0082】
図8は、PC監視処理の手順を示すフローチャートである。以下、図8に示す処理をステップ番号に沿って説明する。
[ステップS21]監視部150は、プロセスの実行状況を検査する。コンテンツ視聴PC100で実行されているプロセスの情報は、例えば、OSから取得する。
【0083】
[ステップS22]監視部150は、ステップS21の検査の結果から、コンテンツの再生に無関係なプロセスが実行されているか判断する。コンテンツの再生に無関係なプロセスとは、監視部150、受信部160、再生部170およびOSに関するプロセス以外のものである。無関係なプロセスが実行されている場合には、処理がステップS27に進められる。無関係なプロセスが実行されていない場合には、処理がステップS23に進められる。
【0084】
[ステップS23]監視部150は、利用者による操作入力を検査する。すなわち、監視部150は、キーボード62およびマウス63からの入力内容を検査する。
[ステップS24]監視部150は、ステップS23の検査の結果から、コンテンツの再生に無関係な操作入力が行われたか判断する。コンテンツの再生に無関係な操作入力とは、再生部170に対する正規の操作入力以外のものである。無関係な操作入力があった場合には、処理がステップS27に進められる。無関係な操作入力がない場合には、処理がステップS25に進められる。
【0085】
[ステップS25]監視部150は、通信インタフェース106による通信の状況を検査する。
[ステップS26]監視部150は、ステップS25の検査の結果から、コンテンツの再生に無関係な通信が行われたか判断する。コンテンツの再生に無関係な通信とは、コンテンツ配信サーバ200との間の通信以外のものである。無関係な通信があった場合には、処理がステップS27に進められる。無関係な通信がない場合には、処理がステップS21に進められる。
【0086】
[ステップS27]監視部150は、命令受付部122に対して復号処理の停止命令を出力する。命令受付部122は、復号部125に復号処理の停止を指示する。復号部125は、復号処理を停止し、その後に取得した配信データを破棄する。
【0087】
[ステップS28]監視部150は、OSにログオフを指示する。OSは、監視部150、受信部160および再生部170に対応するプロセスを終了させ、ログオフを行う。
このようにして、監視部150は、不正なプロセスが実行された場合、不正な操作入力があった場合および不正な通信があった場合は、即座に復号処理を停止し、ログオフが行われるようにする。これにより、コンテンツ視聴PC100で不正な処理、すなわち、コンテンツの複製を試みる処理が確実に防止される。
【0088】
次に、利用者情報更新処理の流れについて説明する。監視部150は、利用者が入力した情報やコンテンツの視聴履歴の情報を、適宜、利用者情報に反映させる。
図9は、利用者情報更新処理の手順を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。
【0089】
[ステップS31]監視部150は、利用者情報の更新データを取得する。具体的には、監視部150は、利用者の操作によって入力された情報を取得する。また、監視部150は、コンテンツ視聴PC100に搭載されたハードウェアおよびソフトウェアの構成が変更されると、その構成情報をOSから取得する。また、監視部150は、再生部170でコンテンツの再生が行われると、視聴履歴の情報を取得する。そして、監視部150は、利用者情報の更新データと併せて更新命令を命令受付部122に出力する。
【0090】
[ステップS32]命令受付部122は、利用者管理部123に利用者情報の更新を指示する。利用者管理部123は、監視部150を介して利用者情報記憶部140に格納されている最新の暗号化データを取得し、利用者情報に復号する。そして、利用者管理部123は、利用者情報に更新データを適用して、更新後の利用者情報を生成する。
【0091】
[ステップS33]利用者管理部123は、ステップS32で生成した利用者情報に対して所定のハッシュ関数を適用し、ハッシュ値を計算する。
[ステップS34]利用者管理部123は、ステップS32で生成した利用者情報を所定の方法で暗号化する。
【0092】
[ステップS35]利用者管理部123は、識別情報記憶部112に格納されているハッシュ値を、ステップS33で計算したハッシュ値に置き換える。
[ステップS36]利用者管理部123は、ステップS34で生成された暗号化データを、監視部150に出力する。監視部150は、取得した暗号化データを利用者情報記憶部140に格納する。
【0093】
このようにして、監視部150は、利用者情報に追加すべき情報を取得すると、利用者管理部123に利用者情報の更新を依頼する。利用者管理部123は、更新後の利用者情報を暗号化し、利用者情報記憶部140に格納する。また、利用者管理部123は、更新後の利用者情報からハッシュ値を計算し、識別情報記憶部112に格納する。
【0094】
次に、利用者認証処理の流れについて説明する。コンテンツ配信サーバ200は、コンテンツの配信時にコンテンツ視聴PC100から利用者情報を取得し利用者認証を行う。
図10は、利用者認証処理の手順を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
【0095】
[ステップS41]コンテンツ配信サーバ200の送信部230は、コンテンツ視聴PC100からコンテンツの視聴要求があると、利用者情報の取得要求をコンテンツ視聴PC100に送信する。
【0096】
[ステップS42]コンテンツ視聴PC100の受信部160は、命令受付部122に、利用者情報の取得命令を出力する。
[ステップS43]命令受付部122は、利用者管理部123に利用者情報の取得を指示する。利用者管理部123は、監視部150を介して、利用者情報記憶部140に格納された最新の暗号化データを取得する。
【0097】
[ステップS44]利用者管理部123は、ステップS43で取得した暗号化データを、所定の方法で利用者情報に復号する。
[ステップS45]利用者管理部123は、ステップS44で復号した利用者情報に所定のハッシュ関数を適用して、ハッシュ値を計算する。そして、利用者管理部123は、計算したハッシュ値と、識別情報記憶部112に格納されたハッシュ値とを照合する。
【0098】
[ステップS46]利用者管理部123は、ステップS45の照合の結果、2つのハッシュ値が一致するか、すなわち、利用者情報に改竄がないか判断する。改竄がない場合、処理がステップS47に進められる。改竄がある場合、処理がステップS48に進められる。
【0099】
[ステップS47]利用者管理部123は、ステップS44で復号した利用者情報に、識別情報記憶部112に格納されたLSI固有番号を付加し、受信部160に出力する。
[ステップS48]利用者管理部123は、受信部160に利用者情報が改竄されている旨の応答を行う。
【0100】
[ステップS49]受信部160は、ステップS47で取得した利用者情報、または、利用者情報の取得に失敗した旨をコンテンツ配信サーバ200に送信する。
[ステップS50]送信部230は、コンテンツ視聴PC100から利用者情報を取得できた場合、利用者認証部240に利用者認証の処理を実行させ、認証の成否に応じて配信の可否を判断する。コンテンツ視聴PC100から利用者情報を取得できなかった場合、配信を拒否する。
【0101】
このようにして、受信部160は、コンテンツ配信サーバ200から利用者情報の取得要求がなされると、利用者管理部123に利用者情報の取得を依頼する。利用者管理部123は、暗号化されている利用者情報を取得して復号する。また、利用者管理部123は、利用者情報のハッシュ値を検査することで、改竄の有無を検査する。利用者管理部123は、改竄されてないことを確認できた場合のみ、利用者情報を出力する。
【0102】
図11は、利用者情報の更新および取得の流れを示す模式図である。
利用者情報を更新する場合、まずセキュア処理部120内で更新後の利用者情報が作成される。利用者情報には、環境情報と履歴情報とが含まれる。環境情報には、利用者IDと、ハードウェアおよびソフトウェアの構成情報であるPC情報とが含まれる。履歴情報には、コンテンツの視聴日時、コンテンツIDおよび課金状況の情報が含まれる。また、利用者情報には、利用者情報のバージョンを示すバージョン番号が付与される。バージョン番号は、利用者情報が更新される毎に1ずつ加算される。
【0103】
そして、セキュア処理部120内で、利用者情報に対するハッシュ値が計算される。計算されたハッシュ値は、セキュア記憶部110内に格納される。また、最新の利用者情報のバージョン番号も、セキュア記憶部110内に格納される(ステップST11)。その後、利用者情報が暗号化され、暗号化データが利用者情報記憶部140内に格納される(ステップST12)。ここで、利用者情報記憶部140には、最新バージョンの暗号化データだけでなく、以前のバージョンの暗号化データも保持しておく。これは、利用者情報の更新状況を後に確認できるようにするためである。
【0104】
次に、利用者情報を取得する場合、利用者情報記憶部140に格納された最新の暗号化データが、セキュア処理部120内に複製され復号される(ステップST13)。そして、更新時と同様にハッシュ値が計算される。計算されたハッシュ値は、セキュア記憶部110内に格納されたハッシュ値と比較されて、改竄の有無が判断される(ステップST14)。
【0105】
このように、利用者情報をHDD103に格納するようにしたので、セキュア記憶部110には最小限の情報を格納すればよい。また、利用者情報は暗号化して格納すると共に、復号時にハッシュ値を用いて改竄の有無を検査するようにしたので、利用者情報が改竄されて利用者認証が不正に行われることを防止できる。
【0106】
次に、復号鍵変更処理の流れについて説明する。コンテンツ配信サーバ200は、コンテンツを暗号化する暗号鍵を定期的に変更すると共に、コンテンツ視聴PC100に復号鍵の変更を指示する。
【0107】
図12は、復号鍵変更処理の手順を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS51]コンテンツ配信サーバ200の鍵生成部260は、前回暗号鍵を変更してから所定時間経過すると、新たな暗号鍵を生成するための変更鍵をランダムに生成する。例えば、鍵生成部260は、1時間毎に変更鍵を生成する。
【0108】
[ステップS52]鍵生成部260は、初期情報記憶部250に格納された初期情報と、ステップS51で生成した変更鍵とから、暗号鍵を生成する。例えば、鍵生成部260は、初期情報と変更鍵との排他的論理和を暗号鍵とする。そして、鍵生成部260は、暗号鍵記憶部270に生成した暗号鍵を格納する。
【0109】
[ステップS53]鍵生成部260は、変更鍵を送信部230に通知する。送信部230は、受け取った変更鍵をコンテンツ視聴PC100に送信する。
[ステップS54]コンテンツ視聴PC100の受信部160は、受信した変更鍵と併せて、復号鍵の変更命令を命令受付部122に出力する。
【0110】
[ステップS55]命令受付部122は、鍵生成部124に復号鍵の生成を指示する。鍵生成部124は、初期情報記憶部113に格納された初期情報と取得した変更鍵とから、復号鍵を生成する。実際には暗号鍵と復号鍵とは同一であるため、例えば、鍵生成部124は、初期情報と変更鍵との排他的論理和を復号鍵とする。そして、鍵生成部124は、生成した復号鍵を復号鍵記憶部114に格納する。
【0111】
[ステップS56]受信部160は、復号鍵の変更が完了した旨の応答をコンテンツ配信サーバ200に送信する。
[ステップS57]送信部230は、コンテンツを暗号化する暗号鍵の変更を暗号化部280に指示する。暗号化部280は、暗号鍵記憶部270から変更後の暗号鍵を取得し、以降、取得した暗号鍵でコンテンツを暗号化する。
【0112】
このようにして、コンテンツ配信サーバ200の鍵生成部260は、初期情報と変更鍵とから暗号鍵を生成すると共に、復号鍵の変更をコンテンツ視聴PC100に指示する。コンテンツ視聴PC100の鍵生成部124は、同様に、初期情報と変更鍵とから復号鍵を生成する。
【0113】
次に、コンテンツの再生処理の流れについて説明する。コンテンツ視聴PC100は、コンテンツ配信サーバ200から配信データを受信すると、配信データをコンテンツに復号して再生する。
【0114】
図13は、第1の実施の形態の再生処理の手順を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップS61]受信部160は、ネットワーク50を介してコンテンツ配信サーバ200から配信データを受信する。そして、受信部160は、受信した配信データを復号部125に転送する。
【0115】
[ステップS62]復号部125は、取得した配信データを、復号鍵記憶部114に格納された復号鍵を用いて復号する。そして、復号部125は、復号したコンテンツを再暗号化部126に出力する。
【0116】
[ステップS63]再暗号化部126は、取得したコンテンツを所定のデータ長の部分コンテンツに分割する。
[ステップS64]再暗号化部126は、ステップS63で分割した個々の部分コンテンツを一時暗号鍵で暗号化し、内部伝送データとして再生部170に出力する。ここで、一時暗号鍵は、所定の時間間隔で再暗号化部126がランダムに生成する一時的な暗号鍵である。例えば、再暗号化部126は、2秒毎に一時暗号鍵を切り替える。
【0117】
[ステップS65]再暗号化部126は、ステップS64の暗号化処理で、一時暗号鍵を前回用いたものから変更したか否か判断する。変更した場合には、処理がステップS66に進められる。変更していない場合には、処理がステップS69に進められる。
【0118】
[ステップS66]再暗号化部126は、位置決定情報記憶部115に格納された複数の位置決定プログラム情報の中から1つ選択する。そして、再暗号化部126は、選択した位置決定プログラム情報に記述された処理手順に従って、一時復号鍵を格納する位置を計算する。また、格納位置を解読するために必要な位置鍵を生成する。その後、再暗号化部126は、一時復号鍵記憶部131の中の計算した位置に、一時暗号鍵を格納する。
【0119】
[ステップS67]再暗号化部126は、位置決定情報記憶部115から、ステップS66で選択した位置決定プログラム情報に対応する位置解読プログラム情報を取得する。そして、再暗号化部126は、ステップS66で生成した位置鍵を再生部170に通知すると共に、位置解読プログラム情報を再生部170を実現するためのプログラムが展開されているメモリ領域の中の特定の位置に配置する。
【0120】
[ステップS68]再生部170は、ステップS67で配置された位置解読プログラム情報と通知された位置鍵とから、一時復号鍵の配置位置を計算する。そして、再生部170は、一時復号鍵記憶部131の中の計算した位置から、一時復号鍵を取得する。
【0121】
[ステップS69]再生部170は、再暗号化部126から取得した内部伝送データを、一時復号鍵を用いて部分コンテンツに復号する。
[ステップS70]再生部170は、ステップS69で復号した複数の部分コンテンツを結合して、コンテンツを再現する。そして、再生部170は、再現したコンテンツを再生し、モニタ61に表示する。
【0122】
このようにして、復号部125は、コンテンツ配信サーバ200から配信された配信データを、復号鍵で復号する。再暗号化部126は、復号されたコンテンツを部分コンテンツに分割し、一時暗号鍵で暗号化して内部伝送データとする。ここで、一時暗号鍵が変更されると、再暗号化部126は、一時復号鍵記憶部131に新たな一時復号鍵を格納する。再生部170は、一時復号鍵記憶部131に格納された一時復号鍵を用いて、内部伝送データを部分コンテンツに復号する。そして、再生部170は、部分コンテンツを結合してコンテンツを再生する。
【0123】
図14は、一時復号鍵の取得の流れを示す模式図である。
まず、セキュア記憶部110内に格納された位置決定プログラム情報の中から1つが選択され、セキュア処理部120内に読み込まれる(ステップST21)。セキュア処理部120内では、読み込まれた位置決定プログラム情報に従って、共有記憶部130内の特定の位置が計算されると共に、その位置を解読するために必要な位置鍵が生成される。
【0124】
そして、計算された位置に、一時復号鍵が格納される(ステップST22)。なお、一時復号鍵が格納される際に、格納位置が解析されるのを防止するため、他の領域にもダミーのデータが書き込まれる。
【0125】
次に、セキュア記憶部110内に格納された位置解読プログラム情報の中から、ステップST21で選択された位置決定プログラムに対応するものが選択され、セキュア処理部120内に読み込まれる。また、他の1つ以上の位置解読プログラム情報もランダムに選択されて読み込まれる(ステップST23)。
【0126】
そして、ステップST23で選択された位置解読プログラム情報が、再生部170内に配置される(ステップST24)。なお、格納位置の解読に必要ない位置解読プログラム情報も配置するのは、RAM102が解析されて、位置解読プログラム情報が特定されるのを防ぐためである。また、位置決定プログラム情報に従って生成された位置鍵も、再生部170内に通知される(ステップST25)。
【0127】
再生部170では、通知された位置鍵に基づいて、複数の位置解読プログラム情報の中から使用すべきものが1つ特定される。次に、特定された位置解読プログラム情報と位置鍵とに基づいて、一時復号鍵の格納位置が計算される。その後、共有記憶部130内の計算された位置にある一時復号鍵が、再生部170内に読み込まれる(ステップST26)。
【0128】
このようなコンテンツ視聴PC100を用いることで、コンテンツの再生中にRAM102に展開されたメモリイメージが解析されて復号鍵や復号アルゴリズムが知られることを確実に防止できる。また、内部伝送データを復号するための一時復号鍵を解析することも困難となる。また、仮に一時復号鍵が知られた場合であっても、所定の時間間隔で変更されるため、その影響範囲を最小限に抑えることができる。
【0129】
更に、セキュアLSI107は最小限の記憶領域を備えればよいため、回路規模を抑制できる。また、耐タンパ性を備えるLSIの製造は高コストになりやすいため、回路規模を抑制は、製造コストの低減にも寄与する。
【0130】
[第2の実施の形態]
次に、第2の実施の形態を図面を参照して詳細に説明する。前述の第1の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。
【0131】
第2の実施の形態に係るコンテンツ配信システムは、図2に示した第1の実施の形態のシステム構成と同様の構成で実現できる。ただし、ネットワーク50に、コンテンツ視聴PC100cが接続されているものとする。コンテンツ視聴PC100cのハードウェア構成は、図3に示したコンテンツ視聴PC100のハードウェア構成と同様の構成で実現できる。
【0132】
次に、コンテンツ視聴PC100cのモジュール構成について説明する。
図15は、第2の実施の形態のコンテンツ視聴PCの機能を示すブロック図である。コンテンツ視聴PC100cは、セキュア記憶部110、セキュア処理部120c、共有記憶部130c、利用者情報記憶部140、監視部150、受信部160および復号再生部170cを有する。受信部160は、ネットワーク50を介してコンテンツ配信サーバ200と通信を行うことができる。復号再生部170cは、モニタ61の画面に再生中のコンテンツを表示することができる。
【0133】
セキュア記憶部110、利用者情報記憶部140、監視部150および受信部160の処理機能は、図4に示した第1の実施の形態のものと同様である。
セキュア処理部120cは、受信部160から配信データを取得すると、復号処理を行わずに、配信データを所定のデータ長の部分配信データに分割する。その後、セキュア処理部120cは、定期的に変更する一時暗号鍵を用いて、部分配信データを更に暗号化し、内部伝送データとして復号再生部170cに出力する。このとき、セキュア処理部120cは、一時暗号鍵に対応する一時復号鍵と、復号鍵を一時暗号鍵で暗号化した鍵データとを、共有記憶部130cに格納する。その他のセキュア処理部120cの処理機能は、第1の実施の形態のセキュア処理部120のものと同様である。
【0134】
共有記憶部130cには、一時暗号鍵に対応する一時復号鍵と、復号鍵を一時暗号鍵で暗号化した鍵データとが格納される。共有記憶部130cに格納された情報は、セキュア処理部120cと復号再生部170cとから共通に参照および更新を行うことができる。
【0135】
復号再生部170cは、セキュア処理部120cが出力する内部伝送データを取得すると、共有記憶部130cから一時復号鍵と鍵データとを取得する。次に、復号再生部170cは、一時復号鍵を用いて、内部伝送データを部分配信データに復号すると共に、鍵データを復号鍵に復号する。そして、復号再生部170cは、複数の部分配信データを結合して配信データを再現し、復号した復号鍵を用いてコンテンツに復号する。その後、復号再生部170cは、復号したコンテンツを再生してモニタ61に表示する。
【0136】
なお、一時暗号鍵と鍵データとを、セキュア処理部120cが共有記憶部130cに格納する方法、および、復号再生部170cが共有記憶部130cから取得する方法は、第1の実施の形態と同様の方法で実現できる。
【0137】
図16は、第2の実施の形態のセキュアLSIの機能を示すブロック図である。セキュア記憶部110のモジュール構成は、第1の実施の形態のものと同様である。
セキュア処理部120cは、改竄検査部121、命令受付部122、利用者管理部123、鍵生成部124、分割部125cおよび暗号化部126cを有する。改竄検査部121、命令受付部122、利用者管理部123および鍵生成部124の処理機能は、第1の実施の形態のものと同様である。
【0138】
分割部125cは、受信部160から配信データを取得すると、配信データを所定のデータ長の部分配信データに分割する。そして、部分配信データを、暗号化部126cに出力する。
【0139】
暗号化部126cは、分割部125cから取得した個々の部分配信データを、一時暗号鍵で暗号化し、内部伝送データとして復号再生部170cに出力する。ここで、暗号化部126cは、一時暗号鍵を変更する毎に、それに対応する一時復号鍵を一時復号鍵記憶部131に格納する。また、暗号化部126cは、復号鍵記憶部114に格納された復号鍵を一時暗号鍵で暗号化した鍵データを、復号鍵記憶部132に格納する。
【0140】
このとき暗号化部126cは、位置決定情報記憶部115に格納された位置決定プログラム情報の中から1つを選択し、選択した位置決定プログラム情報に記述された処理を実行することで、一時復号鍵および鍵データを格納する位置を決定する。そして、暗号化部126cは、選択した位置決定プログラム情報に対応する位置解読プログラム情報を、位置決定情報記憶部115から取得し、復号再生部170cに通知する。
【0141】
共有記憶部130cは、一時復号鍵記憶部131および復号鍵記憶部132を有する。一時復号鍵記憶部131には、暗号化部126cが出力する一時復号鍵が格納される。復号鍵記憶部132には、暗号化部126cが出力する鍵データが格納される。格納された一時復号鍵および鍵データは、復号再生部170cによって読み出される。
【0142】
図17は、第2の実施の形態の再生処理の手順を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
[ステップS71]受信部160は、ネットワーク50を介してコンテンツ配信サーバ200から配信データを受信する。そして、受信部160は、受信した配信データを分割部125cに転送する。
【0143】
[ステップS72]分割部125cは、取得した配信データを、所定のデータ長の部分配信データに分割する。そして、分割部125cは、部分配信データを暗号化部126cに出力する。
【0144】
[ステップS73]暗号化部126cは、取得した個々の部分配信データを一時暗号鍵で暗号化し、内部伝送データとして復号再生部170cに出力する。
[ステップS74]暗号化部126cは、ステップS73の暗号化処理で、一時暗号鍵を前回用いたものから変更したか否か判断する。変更した場合には、処理がステップS75に進められる。変更していない場合には、処理がステップS78に進められる。
【0145】
[ステップS75]暗号化部126cは、位置決定情報記憶部115に格納された複数の位置決定プログラム情報の中から1つ選択する。そして、暗号化部126cは、選択した位置決定プログラム情報に記述された処理手順に従って、一時復号鍵および暗号化した復号鍵である復号データを格納する位置を計算する。また、格納位置を解読するために必要な位置鍵を生成する。その後、暗号化部126cは、一時復号鍵記憶部131の中の計算した位置に一時暗号鍵を格納する。また、暗号化部126cは、復号鍵記憶部114に格納された復号鍵を一時暗号鍵で暗号化して鍵データを生成し、復号鍵記憶部132の中の計算した位置に鍵データを格納する。
【0146】
[ステップS76]暗号化部126cは、位置決定情報記憶部115から、ステップS75で選択した位置決定プログラム情報に対応する位置解読プログラム情報を取得する。そして、暗号化部126cは、ステップS75で生成した位置鍵と位置解読プログラム情報とを、復号再生部170cを実現するためのプログラムが展開されているメモリ領域の中の特定の位置に配置する。
【0147】
[ステップS77]復号再生部170cは、ステップS76で配置された位置解読プログラム情報と位置鍵とから、一時復号鍵および鍵データの配置位置を計算する。そして、復号再生部170cは、一時復号鍵記憶部131の中の計算した位置から一時復号鍵を取得する。また、復号鍵記憶部132の中の計算した位置から鍵データを取得する。
【0148】
[ステップS78]復号再生部170cは、暗号化部126cから取得した内部伝送データを、一時復号鍵を用いて部分配信データに復号する。また、復号再生部170cは、鍵データを、一時復号鍵を用いて復号鍵に復号する。
【0149】
[ステップS79]復号再生部170cは、ステップS78で復号した複数の部分配信データを結合して、配信データを再現する。そして、復号再生部170cは、再現した配信データを、ステップS78で復号した復号鍵でコンテンツに復号する。
【0150】
[ステップS80]復号再生部170cは、ステップS79で復号したコンテンツを再生し、モニタ61に表示する。
このようにして、分割部125cは、コンテンツ配信サーバ200から配信された配信データを、部分配信データに分割する。暗号化部126cは、個々の部分配信データを一時暗号鍵で暗号化して、内部伝送データとする。ここで、一時暗号鍵が変更されると、暗号化部126cは、一時復号鍵記憶部131に新たな一時復号鍵を格納し、復号鍵記憶部132に復号鍵を一時暗号鍵で暗号化した鍵データを格納する。復号再生部170cは、一時復号鍵記憶部131に格納された一時復号鍵を用いて、内部伝送データを部分配信データに復号し、鍵データを復号鍵に復号する。そして、復号再生部170cは、部分配信データを結合して配信データを再現し、復号鍵でコンテンツに復号して再生する。
【0151】
このようなコンテンツ視聴PC100cを用いることで、コンテンツの再生中にRAM102に展開されたメモリイメージが解析されて復号鍵や復号アルゴリズムが知られることを防止できる。また、内部伝送データを復号するための一時復号鍵を解析することも困難となる。また、仮に一時復号鍵が知られた場合であっても、所定の時間間隔で変更されるため、その影響範囲を最小限に抑えることができる。
【0152】
特に、CPU101などの拡張容易なハードウェアで復号処理を行うため、セキュアモジュールが復号処理のための十分な処理能力を備えていない場合でも、円滑に復号処理を行うことが可能となる。また、より多様な暗号化アルゴリムに対応することができる。
【0153】
更に、セキュアLSIは最小限の記憶領域を備えればよいため、回路規模を抑制できる。また、耐タンパ性を備えるLSIの製造は高コストになりやすいため、回路規模の抑制は、製造コストの低減にも寄与する。
【0154】
以上、本発明の情報処理装置を図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に他の任意の構成物や工程が付加されていてもよい。また、本発明は、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【0155】
なお、コンテンツ視聴PC100,100cが備える処理機能の一部をソフトウェアで実現する場合、その機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0156】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどが挙げられる。磁気記録装置としては、例えば、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどが挙げられる。光ディスクとしては、例えば、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などが挙げられる。光磁気記録媒体としては、例えば、MO(Magneto-Optical disk)などが挙げられる。
【0157】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0158】
上記プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【図面の簡単な説明】
【0159】
【図1】本実施の形態の概要を示す図である。
【図2】コンテンツ配信システムのシステム構成を示す図である。
【図3】コンテンツ視聴PCのハードウェア構成を示す図である。
【図4】第1の実施の形態のコンテンツ視聴PCの機能を示すブロック図である。
【図5】第1の実施の形態のセキュアLSIの機能を示すブロック図である。
【図6】コンテンツ配信サーバの機能を示すブロック図である。
【図7】PC起動処理の手順を示すフローチャートである。
【図8】PC監視処理の手順を示すフローチャートである。
【図9】利用者情報更新処理の手順を示すフローチャートである。
【図10】利用者認証処理の手順を示すフローチャートである。
【図11】利用者情報の更新および取得の流れを示す模式図である。
【図12】復号鍵変更処理の手順を示すフローチャートである。
【図13】第1の実施の形態の再生処理の手順を示すフローチャートである。
【図14】一時復号鍵の取得の流れを示す模式図である。
【図15】第2の実施の形態のコンテンツ視聴PCの機能を示すブロック図である。
【図16】第2の実施の形態のセキュアLSIの機能を示すブロック図である。
【図17】第2の実施の形態の再生処理の手順を示すフローチャートである。
【符号の説明】
【0160】
2 配信装置
3 ネットワーク
4 表示装置
10 情報処理装置
11 セキュアモジュール
11a 鍵記憶部
11b 復号部
11c 暗号化部
12 受信手段
13 再生手段
【技術分野】
【0001】
本発明はコンテンツを再生可能な情報処理装置に関し、特にネットワーク経由で配信されるコンテンツを再生可能な情報処理装置に関する。
【背景技術】
【0002】
近年、デジタル方式で符号化されたコンテンツを放送するデジタル放送が普及し始めている。デジタル方式はアナログ方式に比べて通信効率が高く、限られた通信帯域でも高品質なコンテンツを配信できる。また、コンテンツに対して多様な情報処理を行うことが容易である。
【0003】
一方、デジタル方式のコンテンツは複製を行っても品質が劣化しないため、アナログ方式以上にコンテンツの保護が重要となる。この点、デジタル方式のコンテンツには、暗号化処理が施されていることが多い。従って、デジタル放送を視聴可能なテレビには、復号処理を行う回路が組み込まれている。また、デジタル放送を視聴可能なパーソナルコンピュータ(PC:Personal Computer)には、テレビチューナと復号処理を行う回路とを備えるハードウェアが搭載されている(例えば、特許文献1参照)。
【0004】
ところで、コンテンツ視聴の利便性や柔軟性という観点から、放送だけでなくネットワーク経由でもコンテンツが配信されることが期待される。ネットワーク経由による配信では、利用者の好きな時間にコンテンツを視聴できるようにすること(オンデマンド配信)が容易である。また、利用者に応じて異なるコンテンツが配信されるようにすることも容易である(例えば、特許文献2参照)。
【0005】
しかし、ネットワーク経由によるコンテンツ配信は、放送と比べて未だ広く普及しているとはいえない。ネットワーク経由で配信されたコンテンツを再生する装置として一般的なPCでは、現在、コンテンツの保護と利用者の利便性との両立が困難なためである。すなわち、PCは汎用的な情報処理装置であるため、改竄されたソフトウェアによって、許可された範囲を超えて不正にコンテンツが利用される可能性を排除できない。一方、専用のハードウェアをPCに追加してコンテンツを再生する方法では(例えば、特許文献3参照)、さまざまな種類のコンテンツに柔軟に対応できず、PCのもつ汎用性を生かすことができない。
【0006】
そこで、現在、最小限のハードウェアをPCに追加するだけで、コンテンツ保護に配慮しつつソフトウェアでコンテンツを再生可能にする技術の開発が進められている。例えば、コンテンツを再生しているソフトウェアが、配信者が配布した正規のソフトウェアであるか否かをハードウェアで継続的に検査する技術が知られている(例えば、特許文献4参照)。このハードウェアとしては、内部に格納された情報に対して外部から参照や更新ができないという性質(耐タンパ性)を備えるものを用いる。これにより、改竄されたソフトウェアによってコンテンツが不正利用されることを防止でき、コンテンツの保護と利用者の利便性を両立できる。
【特許文献1】特開2003−198527号公報
【特許文献2】特開2004−54913号公報
【特許文献3】特開2003−158514号公報
【特許文献4】特開2004−129227号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかし、上記特許文献4記載の技術では、改竄されたソフトウェアによるコンテンツの不正利用を防止できるが、暗号化されたコンテンツを再生する処理内容自体が解析される可能性を排除できないという問題がある。すなわち、コンテンツを再生するソフトウェアのプログラムは再生時にメモリ上に展開されているため、利用者が作成したプログラムによってその挙動が監視され、処理内容が解析される可能性がある。ここで、コンテンツを復号するための復号鍵や復号アルゴリズムが解析されると、利用者によって自由に復号処理が行われてコンテンツが利用されてしまう。
【0008】
本発明はこのような点に鑑みてなされたものであり、暗号化されたコンテンツを復号するための復号鍵や復号アルゴリズムが解析されることを防止することで、ネットワーク経由で配信されるコンテンツの不正利用を効果的に防止する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明では上記課題を解決するために、図1に示すような情報処理装置10が提供される。情報処理装置10は、ネットワーク3経由で配信されるコンテンツを再生するものである。情報処理装置10は、セキュアモジュール11、受信手段12および再生手段13を有している。セキュアモジュール11は、耐タンパ性を備えており、内部に鍵記憶部11a、復号部11bおよび暗号化部11cを有している。鍵記憶部11aは、暗号化されたコンテンツである配信データを復号するための復号鍵を記憶する。復号部11bは、配信データが入力されると、鍵記憶部11aが記憶する復号鍵を用いて、配信データをコンテンツに復号する。暗号化部11cは、復号部11bが復号したコンテンツを複数の部分コンテンツに分割し、個々の部分コンテンツを所定の時間間隔で変更する一時暗号鍵で暗号化して内部伝送データとして出力すると共に、一時暗号鍵を変更する毎に内部伝送データを復号するための一時復号鍵の情報を出力する。受信手段12は、ネットワーク3経由で配信される配信データを受信し、セキュアモジュール11内の復号部11bに配信データを転送する。再生手段13は、セキュアモジュール11内の暗号化部11cが出力する内部伝送データと一時復号鍵の情報とを取得し、一時復号鍵を用いて内部伝送データを部分コンテンツに復号し、復号した複数の部分コンテンツを結合してコンテンツを再生する。
【0010】
このような情報処理装置10によれば、受信手段12により、ネットワーク3経由で配信される配信データが受信され、復号部11bに転送される。復号部11bにより、配信データが復号鍵でコンテンツに復号される。暗号化部11cにより、コンテンツが複数の部分コンテンツに分割され、個々の部分コンテンツが一時暗号鍵で暗号化される。また、暗号化部11cにより、一時暗号鍵が変更される毎に一時復号鍵の情報が出力される。そして、再生手段13により、暗号化された部分コンテンツが一時復号鍵で復号され、復号された複数の部分コンテンツが結合されて再生される。
【0011】
また、上記課題を解決するために、ネットワーク経由で配信されるコンテンツを再生可能な情報処理装置において、耐タンパ性を備えており、暗号化されたコンテンツである配信データを復号するための復号鍵を記憶する鍵記憶部と、配信データが入力されると、配信データを複数の部分配信データに分割する分割部と、分割部が分割した個々の部分配信データを、所定の時間間隔で変更する一時暗号鍵で暗号化して内部伝送データとして出力すると共に、一時暗号鍵を変更する毎に、鍵記憶部が記憶する復号鍵を一時暗号鍵で暗号化して鍵データとし、内部伝送データを復号するための一時復号鍵の情報と鍵データの情報とを出力する暗号化部と、を有するセキュアモジュールと、ネットワーク経由で配信される配信データを受信し、セキュアモジュール内の分割部に配信データを転送する受信手段と、セキュアモジュール内の暗号化部が出力する内部伝送データと一時復号鍵の情報および鍵データの情報とを取得し、一時復号鍵を用いて内部伝送データを部分配信データに復号し、復号した複数の部分配信データを結合して配信データとすると共に、一時復号鍵を用いて鍵データを復号鍵に復号し、復号鍵を用いて配信データをコンテンツに復号して再生する再生手段と、を有することを特徴とする情報処理装置が提供される。
【0012】
このような情報処理装置によれば、受信手段により、ネットワーク経由で配信される配信データが受信され、分割部に転送される。分割部により、配信データが複数の部分配信データに分割される。暗号化部により、個々の部分配信データが一時暗号鍵で暗号化される。また、暗号化部により、一時暗号鍵が変更される毎に、一時復号鍵の情報と復号鍵を一時暗号鍵で暗号化した鍵データの情報とが出力される。そして、再生手段により、暗号化された部分配信データが一時復号鍵で復号され、復号された複数の部分配信データが結合されると共に、暗号化された復号鍵が一時復号鍵で復号され、配信データが復号鍵でコンテンツに復号されて再生される。
【発明の効果】
【0013】
本発明では、耐タンパ性を備えるセキュアモジュール内に配信データに対する復号鍵を格納することとした。これにより、情報処理装置のメモリの内容を解析しても配信データの復号鍵を取得することができない。また、耐タンパ性を備えるセキュアモジュール内で、コンテンツを複数に分割して一時暗号鍵で再暗号化することとした。これにより、情報処理装置のメモリの内容を解析しても再暗号化のアルゴリズムを知ることができず、また、仮に一時復号鍵が知られた場合でもその影響範囲を最小限に抑えることができる。
【0014】
更に、セキュアモジュール内ではコンテンツ自体を蓄積する必要がないため、最小限の記憶領域を備えればよく、セキュアモジュールの回路規模を抑制できる。
特に、セキュアモジュール内でコンテンツの復号処理を行うようにすることで、再生処理の仕組みが解析されることをより確実に防止できる。一方、コンテンツの復号処理をソフトウェアに委ねるようにすることで、セキュアモジュールの復号処理の能力を超えるコンテンツを受信する場合でも、情報処理装置がもつ演算装置の処理能力を活用して、コンテンツを正常に再生できる。また、より多様な暗号化アルゴリズムに対応して、復号処理を行うことができる。
【発明を実施するための最良の形態】
【0015】
以下、本発明の実施の形態を図面を参照して詳細に説明する。まず、本実施の形態の概要について説明し、その後、本実施の形態の具体的な内容を説明する。
図1は、本実施の形態の概要を示す図である。図1に示す情報処理装置10は、配信装置2が配信する配信データをネットワーク3経由で受信し、コンテンツに復号して表示装置4に表示するものである。情報処理装置10は、セキュアモジュール11、受信手段12および再生手段13を有する。セキュアモジュール11は、耐タンパ性を備えており、内部に鍵記憶部11a、復号部11bおよび暗号化部11cを有する。
【0016】
鍵記憶部11aは、配信データを復号するための復号鍵を記憶する。配信データは、配信装置2によってコンテンツが暗号化されたものである。鍵記憶部11aには、配信装置2がコンテンツの暗号化に用いる暗号鍵に対応する復号鍵が予め格納される。なお、暗号化処理に共通鍵暗号方式が採用された場合、復号鍵は暗号鍵と同一となる。
【0017】
復号部11bは、セキュアモジュール11の外部から配信データが入力されると、鍵記憶部11aに記憶された復号鍵を用いて、配信データをコンテンツに復号する。復号部11bが実行する復号処理の手順は、配信装置2が実行する暗号化処理の手順に対応するように予め設定しておく。
【0018】
暗号化部11cは、復号部11bが復号したコンテンツを複数の部分コンテンツに分割する。その後、暗号化部11cは、個々の部分コンテンツを一時暗号鍵で暗号化し、内部伝送データとしてセキュアモジュール11の外部に出力する。ここで、一時暗号鍵は、所定の時間間隔で変更される一時的な暗号鍵である。暗号化部11cは、部分コンテンツの暗号化に用いる一時暗号鍵を変更すると、対応する一時復号鍵の情報も、セキュアモジュール11の外部に出力する。
【0019】
受信手段12は、配信装置2からネットワーク3経由で配信データを受信する。そして、受信手段12は、受信した配信データを、セキュアモジュール11内の復号部11bに転送する。
【0020】
再生手段13は、セキュアモジュール11内の暗号化部11cが出力する内部伝送データを取得する。また、暗号化部11cが所定の時間間隔で出力する一時復号鍵の情報も取得する。そして、再生手段13は、最新の一時復号鍵を用いて内部伝送データを部分コンテンツに順次復号し、複数の部分コンテンツを結合してコンテンツを再現する。その後、再生手段13は、再現したコンテンツを再生して表示装置4に表示する。
【0021】
なお、図1では、再生手段13は表示装置4に対して出力を行っているが、再生するコンテンツに音声部分が含まれる場合、再生手段13は図示しない音声出力装置に対しても出力を行う。また、音声のみのコンテンツを再生する場合も、同様の処理で実現できる。
【0022】
このような情報処理装置10によれば、受信手段12により、配信装置2からネットワーク3経由で配信される配信データが受信され、復号部11bに転送される。次に、復号部11bにより、セキュアモジュール11内で、配信データが復号鍵でコンテンツに復号される。そして、暗号化部11cにより、セキュアモジュール11内で、コンテンツが複数の部分コンテンツに分割され、個々の部分コンテンツが一時暗号鍵で暗号化される。また、一時暗号鍵が変更される毎に一時復号鍵の情報が出力される。その後、再生手段13により、暗号化された部分コンテンツが一時復号鍵で復号され、復号された複数の部分コンテンツが結合されて再生される。
【0023】
これにより、利用者がコンテンツの再生中に情報処理装置10のメモリの内容を解析しても、復号鍵や復号アルゴリズム、再暗号化のアルゴリズムを知ることができない。また、仮に利用者に一時復号鍵が知られた場合でも、所定の時間間隔で変更されるため、その影響範囲を最小限に抑えることができる。更に、セキュアモジュール11内にコンテンツを蓄積する必要がないため、セキュアモジュール11は最小限の記憶領域を備えればよく、回路規模を抑制できる。
【0024】
なお、セキュアモジュール11が復号処理のための十分な処理能力を備えていない場合、復号処理を再生手段13に委ねることもできる。すなわち、復号部11bが復号処理を行わず、暗号化部11cが二重に暗号化された状態の内部伝送データを出力し、再生手段13が一時復号鍵と復号鍵とを用いて復号処理を行うようにすることもできる。この場合、情報処理装置10は、セキュアモジュール11の処理能力を超えるコンテンツを受信して再生することができる。また、より多様な暗号化アルゴリムに対応することができる。
【0025】
[第1の実施の形態]
最初に、第1の実施の形態を図面を参照して詳細に説明する。
図2は、コンテンツ配信システムのシステム構成を示す図である。第1の実施の形態に係るコンテンツ配信システムは、利用者がネットワーク経由で配信されるコンテンツをPCを用いて視聴できるようにするシステムである。図2に示すコンテンツ配信システムはコンテンツ視聴PC100,100a,100b、コンテンツ配信サーバ200およびネットワーク50で構成される。コンテンツ視聴PC100,100a,100bは、ネットワーク50を介してコンテンツ配信サーバ200と接続されている。
【0026】
コンテンツ視聴PC100,100a,100bは、利用者が操作するPCである。コンテンツ視聴PC100,100a,100bには、通常のPCに搭載されているハードウェアおよびソフトウェアに加えて、ネットワーク経由で配信されるコンテンツを視聴するためのハードウェアおよびソフトウェアが搭載されている。
【0027】
利用者は、コンテンツ視聴PC100,100a,100bを、通常のPCとしての用途とコンテンツを視聴する用途との両方に使用することができる。コンテンツ視聴PC100,100a,100bは、利用者からコンテンツの視聴を開始する指示が入力されると、ネットワーク50を介してコンテンツ配信サーバ200に視聴要求を送信する。
【0028】
コンテンツ配信サーバ200は、コンテンツ視聴PC100,100a,100bから視聴要求を受信すると、保持しているコンテンツから要求されたコンテンツを検索する。そして、コンテンツ配信サーバ200は、ネットワーク50を介してコンテンツを視聴要求の要求元に配信する。なお、コンテンツ配信サーバ200は、コンテンツの不正利用を防止するため、コンテンツを暗号化して配信する。また、必要に応じて、利用者がコンテンツを視聴する権利を有するか否かの認証を行う。
【0029】
次に、コンテンツ視聴PC100,100a,100bおよびコンテンツ配信サーバ200のハードウェア構成について説明する。
図3は、コンテンツ視聴PCのハードウェア構成を示す図である。コンテンツ視聴PC100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、通信インタフェース106およびセキュアLSI(Large Scale Integration)107が接続されている。
【0030】
RAM102には、CPU101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSプログラムやアプリケーションプログラムが格納される。
【0031】
グラフィック処理装置104には、モニタ61が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ61の画面に表示させる。入力インタフェース105には、キーボード62とマウス63とが接続されている。入力インタフェース105は、キーボード62やマウス63から送られてくる信号を、バス108を介してCPU101に送信する。通信インタフェース106は、ネットワーク50に接続されている。
【0032】
セキュアLSI107には、耐タンパ性を備えるセキュア領域が設けられている。セキュア領域には、不正なプログラムから保護される必要がある情報が格納される。また、セキュア領域では、解析されることを防止する必要がある処理が実行される。セキュアLSI107は、RAM102に格納されたプログラムやデータを読み出すことができる。また、セキュアLSI107は、RAM102にデータを書き込むことができる。
【0033】
なお、コンテンツ視聴PC100a,100bおよびコンテンツ配信サーバ200も、コンテンツ視聴PC100と同様のハードウェア構成によって実現できる。ただし、コンテンツ配信サーバ200には、セキュアLSIを搭載する必要はない。以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
【0034】
次に、コンテンツ視聴PC100,100a,100bおよびコンテンツ配信サーバ200のモジュール構成について説明する。
図4は、第1の実施の形態のコンテンツ視聴PCの機能を示すブロック図である。コンテンツ視聴PC100は、セキュア記憶部110、セキュア処理部120、共有記憶部130、利用者情報記憶部140、監視部150、受信部160および再生部170を有する。受信部160は、ネットワーク50を介してコンテンツ配信サーバ200と通信を行うことができる。再生部170は、モニタ61の画面に再生中のコンテンツを表示することができる。
【0035】
セキュア記憶部110、セキュア処理部120および共有記憶部130は、セキュアLSI107によって実現される。特に、セキュア記憶部110およびセキュア処理部120は、耐タンパ性を備えるセキュア領域内で実現される。利用者情報記憶部140は、HDD103によって実現される。監視部150、受信部160および再生部170は、CPU101によって実現される。
【0036】
セキュア記憶部110には、コンテンツ配信サーバ200から配信される配信データを復号するために必要な情報が格納される。また、利用者情報や監視部150および再生部170の処理機能が改竄されていないか検査するための情報も格納される。セキュア記憶部110に格納された情報は、セキュア領域内にあるため、CPU101などから直接参照することができない。
【0037】
セキュア処理部120は、受信部160から配信データを取得すると、セキュア記憶部110に格納された情報を参照して復号処理を行い、復号したコンテンツを所定のデータ長の部分コンテンツに分割する。その後、セキュア処理部120は、定期的に変更する一時暗号鍵を用いて、部分コンテンツを再暗号化し、内部伝送データとして再生部170に出力する。このとき、セキュア処理部120は、内部伝送データを復号するための一時復号鍵を、共有記憶部130に格納する。
【0038】
また、セキュア処理部120は、セキュア記憶部110に格納された情報を参照して、利用者情報の管理や、監視部150および再生部170の処理機能が改竄されていないかの検査を行う。セキュア処理部120の処理機能は、セキュア領域内にあるため、CPU101などによって処理の具体的な手順が解析されることがない。
【0039】
共有記憶部130には、セキュア処理部120によって暗号化された内部伝送データを復号するための一時復号鍵が格納される。共有記憶部130に格納された情報は、セキュア処理部120と再生部170とから共通に参照および更新を行うことができる。
【0040】
利用者情報記憶部140には、利用者情報が格納される。利用者情報には、予めコンテンツ提供者から割り当てられた利用者ID、コンテンツ視聴PC100に搭載されているハードウェアおよびソフトウェアに関する情報、コンテンツの視聴履歴の情報が含まれる。利用者情報は、暗号化された状態で利用者情報記憶部140に格納される。
【0041】
監視部150は、コンテンツ視聴PC100における処理の実行状況を継続的に監視する。具体的には、監視部150は、コンテンツ視聴PC100で実行されているプロセス、利用者による操作入力、他のコンピュータとの間の通信を監視する。ここで、コンテンツの再生に無関係な処理が検出されると、監視部150はセキュア処理部120にその旨を通知し、復号処理の停止を要求する。
【0042】
また、監視部150は、利用者の操作入力やコンテンツの再生状況に応じて、利用者情報の更新をセキュア処理部120に指示する。また、監視部150は、セキュア処理部120からの要求に応じて、暗号化された状態の利用者情報を、セキュア処理部120と利用者情報記憶部140との間で中継する。
【0043】
受信部160は、利用者からコンテンツの視聴が指示されると、コンテンツ配信サーバ200に対してコンテンツの配信要求を送信する。そして、受信部160は、コンテンツ配信サーバ200から、暗号化された状態のコンテンツである配信データを受信すると、受信した配信データをセキュア処理部120に転送する。また、受信部160は、コンテンツ配信サーバ200から利用者認証を要求されると、セキュア処理部120を介して利用者情報を取得し、取得した利用者情報を用いて利用者認証の処理を行う。
【0044】
再生部170は、セキュア処理部120が出力する内部伝送データを取得すると、共有記憶部130から一時復号鍵を取得し、内部伝送データを部分コンテンツに復号する。そして、再生部170は、複数の部分コンテンツを結合してコンテンツを再現し、再現したコンテンツを再生してモニタ61に表示する。
【0045】
なお、コンテンツ視聴PC100およびコンテンツ配信サーバ200は、暗号化方式として共通暗号方式を用いることとする。従って、暗号鍵と復号鍵、一時暗号鍵と一時復号鍵とは、それぞれ同一のデータである。それぞれの鍵は、例えば、128ビットの固定長のビット列である。
【0046】
図5は、第1の実施の形態のセキュアLSIの機能を示すブロック図である。図5は、セキュアLSI107内で実現されるセキュア記憶部110、セキュア処理部120および共有記憶部130の機能の詳細を示している。
【0047】
セキュア記憶部110は、検査情報記憶部111、識別情報記憶部112、初期情報記憶部113、復号鍵記憶部114および位置決定情報記憶部115を有する。
検査情報記憶部111には、監視部150および再生部170の処理機能が改竄されていないか検査するための検査情報が予め格納される。具体的には、検査情報記憶部111には、監視部150および再生部170の処理機能を実現するためのプログラムが実行される際に、RAM102に展開されるメモリイメージの少なくとも一部から計算される値が格納される。ここで計算される値は、プログラムの一部が改竄されると異なる値になるようにする。
【0048】
識別情報記憶部112には、セキュアLSI107を一意に識別するLSI固有番号が予め格納される。格納されたLSI固有番号は、その後に変更されることはない。また、識別情報記憶部112には、最新の利用者情報から計算されるハッシュ値が格納される。ここで計算されるハッシュ値は、利用者情報の一部が改竄されると異なる値になるようにする。
【0049】
初期情報記憶部113には、配信データを復号するための復号鍵を変更する際に、新しい復号鍵を生成するために用いられる初期情報が予め格納される。格納された初期情報は、コンテンツ配信サーバ200がもつ初期情報と同一のものであり、その後に変更されることはない。
【0050】
復号鍵記憶部114には、配信データを復号するための復号鍵が格納される。格納された復号鍵は、コンテンツ配信サーバ200が配信データの暗号化に用いる暗号鍵を変更するのに併せて、適宜変更される。
【0051】
位置決定情報記憶部115には、共有記憶部130がもつ記憶領域の中から一時復号鍵を格納する位置を決定するための位置決定プログラム情報が予め格納される。位置決定プログラム情報は、予め複数用意されている。また、位置決定情報記憶部115には、個々の位置決定プログラム情報に対応して、一時復号鍵が格納された位置を解読するための位置解読プログラム情報が予め格納されている。位置決定プログラム情報および位置解読プログラム情報は、プログラムの断片であり、上記処理の具体的な手順が記載されている。
【0052】
セキュア処理部120は、改竄検査部121、命令受付部122、利用者管理部123、鍵生成部124、復号部125および再暗号化部126を有する。
改竄検査部121は、監視部150および再生部170が起動されると、これらの処理機能が改竄されていないか継続的に検査を行う。すなわち、改竄検査部121は、監視部150および再生部170に対応するメモリイメージをRAM102から取得し、取得したメモリイメージから所定の計算方法で値を計算して、検査情報記憶部111に格納された検査情報と照合する。ここで、両者の値が一致しない場合、改竄検査部121は、復号部125に配信データの復号処理を停止するよう指示する。両者の値が一致した場合、改竄検査部121は改竄検査を継続する。
【0053】
命令受付部122は、セキュア処理部120の外部からの命令を受け付け、命令の種類に応じて、利用者管理部123、鍵生成部124もしくは復号部125を呼び出す。具体的には、命令受付部122は、利用者情報の取得命令を受け付けた場合、利用者管理部123に利用者情報の取得を指示する。利用者情報の更新命令を受け付けた場合、利用者管理部123に更新データを渡して利用者情報の更新を指示する。復号鍵の変更命令を受け付けた場合、鍵生成部124に復号鍵の生成に用いられる変更鍵を渡して復号鍵の変更を指示する。復号処理の停止命令を受け付けた場合、復号部125に復号処理の停止を指示する。
【0054】
利用者管理部123は、命令受付部122から利用者情報の取得が指示されると、監視部150を介して、利用者情報記憶部140に格納された暗号化データを取得する。そして、取得した暗号化データを所定の方法で利用者情報に復号する。ここで、利用者管理部123は、復号した利用者情報からハッシュ値を計算し、識別情報記憶部112に格納されたハッシュ値と照合する。両者の値が一致しない場合、利用者管理部123は、利用者情報が改竄されている旨を要求元に応答する。両者の値が一致した場合、利用者管理部123は、識別情報記憶部112に格納されたLSI固有番号を利用者情報に追加して要求元に出力する。
【0055】
また、利用者管理部123は、命令受付部122から利用者情報の更新が指示されると、上記と同様の方法で利用者情報を取得し、更新データに基づいて利用者情報を更新する。ここで、利用者管理部123は、更新後の利用者情報からハッシュ値を計算して、識別情報記憶部112に格納する。その後、利用者管理部123は、更新後の利用者情報を暗号化し、監視部150を介して利用者情報記憶部140に暗号化データを格納する。
【0056】
鍵生成部124は、命令受付部122から復号鍵の変更が指示されると、初期情報記憶部113に格納された初期情報と、命令受付部122から受け取った変更鍵とから、復号鍵を生成する。具体的には、例えば、初期情報と変更鍵との排他的論理和を復号鍵とする。そして、鍵生成部124は、生成した復号鍵を復号鍵記憶部114に格納する。
【0057】
復号部125は、受信部160から配信データを取得すると、復号鍵記憶部114に格納された復号鍵を用いて、配信データをコンテンツに復号する。そして、復号部125は、復号したコンテンツを再暗号化部126に出力する。なお、復号部125は、改竄検査部121もしくは命令受付部122から復号処理の停止が指示された場合は、取得した配信データを破棄して復号処理を行わない。
【0058】
再暗号化部126は、復号部125から取得したコンテンツを所定のデータ長の部分コンテンツに分割する。そして、再暗号化部126は、個々の部分コンテンツを一時暗号鍵で暗号化し、内部伝送データとして再生部170に出力する。一時暗号鍵は再暗号化部126が所定の時間間隔で変更する一時的な暗号鍵である。
【0059】
ここで、再暗号化部126は、一時暗号鍵を変更する毎に、それに対応する一時復号鍵(実際には、一時暗号鍵と同一の鍵)を一時復号鍵記憶部131に格納する。このとき、再暗号化部126は、位置決定情報記憶部115に格納された位置決定プログラム情報の中から1つを選択し、選択した位置決定プログラム情報に記述された処理を実行することで、一時復号鍵を格納する位置を決定する。そして、再暗号化部126は、選択した位置決定プログラム情報に対応する位置解読プログラム情報を、位置決定情報記憶部115から取得し、再生部170に通知する。
【0060】
共有記憶部130は、一時復号鍵記憶部131を有する。一時復号鍵記憶部131には、再暗号化部126が出力する一時復号鍵が格納される。格納された一時復号鍵は、再生部170によって読み出される。
【0061】
以上、コンテンツ視聴PC100のモジュール構成について説明したが、コンテンツ視聴PC100a,100bも、コンテンツ視聴PC100と同様のモジュール構成によって実現できる。
【0062】
図6は、コンテンツ配信サーバの機能を示すブロック図である。コンテンツ配信サーバ200は、コンテンツ記憶部210、認証情報記憶部220、送信部230、利用者認証部240、初期情報記憶部250、鍵生成部260、暗号鍵記憶部270および暗号化部280を有する。送信部230は、ネットワーク50を介してコンテンツ視聴PC100,100a,100bと通信を行うことができる。
【0063】
コンテンツ記憶部210には、個々のコンテンツがファイルとして予め格納される。また、必要に応じて、コンテンツについての書誌情報であるメタ情報も格納される。コンテンツには、動画コンテンツ、静止画コンテンツ、音声コンテンツが含まれる。ただし、本実施の形態では、主に動画コンテンツの配信を想定する。
【0064】
認証情報記憶部220には、利用者がコンテンツを視聴する権利を有しているか認証するための認証情報が格納される。認証情報には、契約時に個々の利用者に付与された利用者ID、セキュアLSIを識別するLSI固有番号、契約内容に応じた視聴可能なコンテンツに関する情報が含まれる。
【0065】
送信部230は、コンテンツ視聴PC100,100a,100bからコンテンツの視聴要求を受信すると、視聴要求の要求元に要求して利用者情報を取得する。そして、送信部230は、利用者認証部240に利用者認証を指示する。利用者認証に成功した場合、送信部230は、暗号化部280に要求されたコンテンツの暗号化を指示し、暗号化された状態のコンテンツを配信データとして順次要求元に送信する。利用者認証に失敗した場合、送信部230は、その旨を要求元に応答する。
【0066】
また、送信部230は、鍵生成部260から暗号鍵の変更(すなわち、復号鍵の変更)に用いる変更鍵を受け取ると、コンテンツ視聴PC100,100a,100bに変更鍵を送信する。なお、変更鍵を受け取った時点で通信が確立していないコンテンツ視聴PCに対しては、その後、通信が確立した直後に変更鍵を送信する。
【0067】
利用者認証部240は、送信部230から利用者認証が指示されると、取得した情報と認証情報記憶部220に格納された認証情報とを照合して、利用者認証を行う。例えば、利用者認証部240は、要求元の利用者が契約をしている正規の利用者であるか、正規のセキュアLSIが使用されているかを確認する。また、利用者認証部240は、要求されたコンテンツの視聴が制限されていないか確認する。そして、利用者認証部240は、利用者認証の結果を送信部230に通知する。
【0068】
初期情報記憶部250には、暗号鍵を変更する際に、新しい暗号鍵を生成するために用いられる初期情報が予め格納される。格納された初期情報は、コンテンツ視聴PC100,100a,100bがもつ初期情報と同一のものであり、その後に変更されることはない。
【0069】
鍵生成部260は、所定の時間間隔で、コンテンツを暗号化するための暗号鍵を変更する。具体的には、鍵生成部260は、まず変更鍵をランダムに生成する。そして、初期情報記憶部250に格納された初期情報と生成した変更鍵とから暗号鍵を生成する。例えば、鍵生成部260は、初期情報と変更鍵との排他的論理和を暗号鍵とする。その後、鍵生成部260は、生成した暗号鍵を暗号鍵記憶部270に格納する。また、鍵生成部260は、送信部230に変更鍵を通知する。
【0070】
暗号鍵記憶部270には、鍵生成部260によって生成された最新の暗号鍵が格納される。また、格納された暗号鍵は、暗号化部280によって取得される。
暗号化部280は、送信部230からコンテンツの暗号化が指示されると、コンテンツ記憶部210を検索して指示されたコンテンツを取得する。そして、暗号化部280は、暗号鍵記憶部270に格納された暗号鍵を用いて、取得したコンテンツを先頭から順次暗号化し、送信部230に出力する。
【0071】
次に、以上のような構成およびデータ構造のシステムにおいて実行される処理の詳細を説明する。なお、以下の説明では、利用者がコンテンツ視聴PC100を使用してコンテンツを視聴する場合について述べる。コンテンツ視聴PC100a,100bを使用する場合も、同様の処理が実行される。
【0072】
最初にPC起動処理の流れについて説明する。コンテンツ視聴PC100の起動後、OSはその用途に応じてPCの環境設定を行う。
図7は、PC起動処理の手順を示すフローチャートである。以下、図7に示す処理をステップ番号に沿って説明する。
【0073】
[ステップS11]CPU101は、HDD103に格納されているOSプログラムを実行してOSを起動する。OSは利用者にログインIDの入力を促し、入力されたログインIDを取得する。
【0074】
[ステップS12]OSは、入力されたログインIDがコンテンツ視聴用IDか否か判断する。ここで、コンテンツ視聴用IDとは、コンテンツ視聴PC100をコンテンツを視聴する用途で使用するための専用のログインIDである。コンテンツ視聴用IDは、予めOSに設定されている。ログインIDがコンテンツ視聴用IDの場合、処理がステップS13に進められる。コンテンツ視聴用IDでない場合、処理がステップS19に進められる。
【0075】
[ステップS13]OSは、監視部150の処理機能を実現するプログラムをRAM102に展開して監視部150を起動する。なお、コンテンツ視聴用IDでログインした場合、最初に監視部150が起動されることが、予めOSに設定されている。
【0076】
[ステップS14]監視部150は、コンテンツ視聴PC100で使用可能なメモリ領域のうち、起動した時点で未使用のメモリ領域を全て確保する。
[ステップS15]監視部150は、ステップS14で確保したメモリ領域の中から受信部160のためのメモリ領域を割り当て、受信部160を起動する。同様に、監視部150は、再生部170のためのメモリ領域を割り当て、再生部170を起動する。なお、再生部170は、その後メモリ領域が不足した場合、監視部150に依頼して追加のメモリ領域を割り当ててもらう。
【0077】
[ステップS16]改竄検査部121は、ステップS15で受信部160および再生部170が起動されると、改竄の有無を検査する。すなわち、改竄検査部121は、RAM102に展開されたメモリイメージから計算される値と、検査情報記憶部111に格納された検査情報とを照合する。
【0078】
[ステップS17]改竄検査部121は、ステップS16の照合の結果、2つの値が一致するか、すなわち、改竄がないか判断する。改竄がない場合には、PC起動処理が終了する。改竄がある場合には、処理がステップS18に進められる。
【0079】
[ステップS18]改竄検査部121は、コンテンツの再生が既に開始されているときは、復号部125に復号処理の停止を指示する。
[ステップS19]OSは、通常の設定情報を適用して、コンテンツ視聴PC100を通常のPCとして使用するための環境設定を行う。
【0080】
なお、コンテンツ視聴用IDでログインが行われた場合、その後、上記ステップS16〜S18の処理が、改竄検査部121によって定期的に実行される。
このようにして、OSは、コンテンツ視聴用IDでログインが行われると、最初に監視部150を起動する。監視部150は、未使用のメモリ領域を全て確保する。そして、監視部150は、受信部160および再生部170を起動する。これにより、監視部150が許可しないプロセスの実行を阻止することができる。その後、改竄検査部121は、監視部150および再生部170の改竄の有無を検査し、改竄が検出されると、コンテンツの復号を停止してログオフを行う。一方、OSは、通常のログインIDでログインが行われると、通常の設定情報に従って環境設定を行う。
【0081】
次に、PC監視処理の流れについて説明する。OSによって監視部150が起動されると、監視部150はコンテンツ視聴PC100で不正な処理が行われていないか継続的に監視する。
【0082】
図8は、PC監視処理の手順を示すフローチャートである。以下、図8に示す処理をステップ番号に沿って説明する。
[ステップS21]監視部150は、プロセスの実行状況を検査する。コンテンツ視聴PC100で実行されているプロセスの情報は、例えば、OSから取得する。
【0083】
[ステップS22]監視部150は、ステップS21の検査の結果から、コンテンツの再生に無関係なプロセスが実行されているか判断する。コンテンツの再生に無関係なプロセスとは、監視部150、受信部160、再生部170およびOSに関するプロセス以外のものである。無関係なプロセスが実行されている場合には、処理がステップS27に進められる。無関係なプロセスが実行されていない場合には、処理がステップS23に進められる。
【0084】
[ステップS23]監視部150は、利用者による操作入力を検査する。すなわち、監視部150は、キーボード62およびマウス63からの入力内容を検査する。
[ステップS24]監視部150は、ステップS23の検査の結果から、コンテンツの再生に無関係な操作入力が行われたか判断する。コンテンツの再生に無関係な操作入力とは、再生部170に対する正規の操作入力以外のものである。無関係な操作入力があった場合には、処理がステップS27に進められる。無関係な操作入力がない場合には、処理がステップS25に進められる。
【0085】
[ステップS25]監視部150は、通信インタフェース106による通信の状況を検査する。
[ステップS26]監視部150は、ステップS25の検査の結果から、コンテンツの再生に無関係な通信が行われたか判断する。コンテンツの再生に無関係な通信とは、コンテンツ配信サーバ200との間の通信以外のものである。無関係な通信があった場合には、処理がステップS27に進められる。無関係な通信がない場合には、処理がステップS21に進められる。
【0086】
[ステップS27]監視部150は、命令受付部122に対して復号処理の停止命令を出力する。命令受付部122は、復号部125に復号処理の停止を指示する。復号部125は、復号処理を停止し、その後に取得した配信データを破棄する。
【0087】
[ステップS28]監視部150は、OSにログオフを指示する。OSは、監視部150、受信部160および再生部170に対応するプロセスを終了させ、ログオフを行う。
このようにして、監視部150は、不正なプロセスが実行された場合、不正な操作入力があった場合および不正な通信があった場合は、即座に復号処理を停止し、ログオフが行われるようにする。これにより、コンテンツ視聴PC100で不正な処理、すなわち、コンテンツの複製を試みる処理が確実に防止される。
【0088】
次に、利用者情報更新処理の流れについて説明する。監視部150は、利用者が入力した情報やコンテンツの視聴履歴の情報を、適宜、利用者情報に反映させる。
図9は、利用者情報更新処理の手順を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。
【0089】
[ステップS31]監視部150は、利用者情報の更新データを取得する。具体的には、監視部150は、利用者の操作によって入力された情報を取得する。また、監視部150は、コンテンツ視聴PC100に搭載されたハードウェアおよびソフトウェアの構成が変更されると、その構成情報をOSから取得する。また、監視部150は、再生部170でコンテンツの再生が行われると、視聴履歴の情報を取得する。そして、監視部150は、利用者情報の更新データと併せて更新命令を命令受付部122に出力する。
【0090】
[ステップS32]命令受付部122は、利用者管理部123に利用者情報の更新を指示する。利用者管理部123は、監視部150を介して利用者情報記憶部140に格納されている最新の暗号化データを取得し、利用者情報に復号する。そして、利用者管理部123は、利用者情報に更新データを適用して、更新後の利用者情報を生成する。
【0091】
[ステップS33]利用者管理部123は、ステップS32で生成した利用者情報に対して所定のハッシュ関数を適用し、ハッシュ値を計算する。
[ステップS34]利用者管理部123は、ステップS32で生成した利用者情報を所定の方法で暗号化する。
【0092】
[ステップS35]利用者管理部123は、識別情報記憶部112に格納されているハッシュ値を、ステップS33で計算したハッシュ値に置き換える。
[ステップS36]利用者管理部123は、ステップS34で生成された暗号化データを、監視部150に出力する。監視部150は、取得した暗号化データを利用者情報記憶部140に格納する。
【0093】
このようにして、監視部150は、利用者情報に追加すべき情報を取得すると、利用者管理部123に利用者情報の更新を依頼する。利用者管理部123は、更新後の利用者情報を暗号化し、利用者情報記憶部140に格納する。また、利用者管理部123は、更新後の利用者情報からハッシュ値を計算し、識別情報記憶部112に格納する。
【0094】
次に、利用者認証処理の流れについて説明する。コンテンツ配信サーバ200は、コンテンツの配信時にコンテンツ視聴PC100から利用者情報を取得し利用者認証を行う。
図10は、利用者認証処理の手順を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
【0095】
[ステップS41]コンテンツ配信サーバ200の送信部230は、コンテンツ視聴PC100からコンテンツの視聴要求があると、利用者情報の取得要求をコンテンツ視聴PC100に送信する。
【0096】
[ステップS42]コンテンツ視聴PC100の受信部160は、命令受付部122に、利用者情報の取得命令を出力する。
[ステップS43]命令受付部122は、利用者管理部123に利用者情報の取得を指示する。利用者管理部123は、監視部150を介して、利用者情報記憶部140に格納された最新の暗号化データを取得する。
【0097】
[ステップS44]利用者管理部123は、ステップS43で取得した暗号化データを、所定の方法で利用者情報に復号する。
[ステップS45]利用者管理部123は、ステップS44で復号した利用者情報に所定のハッシュ関数を適用して、ハッシュ値を計算する。そして、利用者管理部123は、計算したハッシュ値と、識別情報記憶部112に格納されたハッシュ値とを照合する。
【0098】
[ステップS46]利用者管理部123は、ステップS45の照合の結果、2つのハッシュ値が一致するか、すなわち、利用者情報に改竄がないか判断する。改竄がない場合、処理がステップS47に進められる。改竄がある場合、処理がステップS48に進められる。
【0099】
[ステップS47]利用者管理部123は、ステップS44で復号した利用者情報に、識別情報記憶部112に格納されたLSI固有番号を付加し、受信部160に出力する。
[ステップS48]利用者管理部123は、受信部160に利用者情報が改竄されている旨の応答を行う。
【0100】
[ステップS49]受信部160は、ステップS47で取得した利用者情報、または、利用者情報の取得に失敗した旨をコンテンツ配信サーバ200に送信する。
[ステップS50]送信部230は、コンテンツ視聴PC100から利用者情報を取得できた場合、利用者認証部240に利用者認証の処理を実行させ、認証の成否に応じて配信の可否を判断する。コンテンツ視聴PC100から利用者情報を取得できなかった場合、配信を拒否する。
【0101】
このようにして、受信部160は、コンテンツ配信サーバ200から利用者情報の取得要求がなされると、利用者管理部123に利用者情報の取得を依頼する。利用者管理部123は、暗号化されている利用者情報を取得して復号する。また、利用者管理部123は、利用者情報のハッシュ値を検査することで、改竄の有無を検査する。利用者管理部123は、改竄されてないことを確認できた場合のみ、利用者情報を出力する。
【0102】
図11は、利用者情報の更新および取得の流れを示す模式図である。
利用者情報を更新する場合、まずセキュア処理部120内で更新後の利用者情報が作成される。利用者情報には、環境情報と履歴情報とが含まれる。環境情報には、利用者IDと、ハードウェアおよびソフトウェアの構成情報であるPC情報とが含まれる。履歴情報には、コンテンツの視聴日時、コンテンツIDおよび課金状況の情報が含まれる。また、利用者情報には、利用者情報のバージョンを示すバージョン番号が付与される。バージョン番号は、利用者情報が更新される毎に1ずつ加算される。
【0103】
そして、セキュア処理部120内で、利用者情報に対するハッシュ値が計算される。計算されたハッシュ値は、セキュア記憶部110内に格納される。また、最新の利用者情報のバージョン番号も、セキュア記憶部110内に格納される(ステップST11)。その後、利用者情報が暗号化され、暗号化データが利用者情報記憶部140内に格納される(ステップST12)。ここで、利用者情報記憶部140には、最新バージョンの暗号化データだけでなく、以前のバージョンの暗号化データも保持しておく。これは、利用者情報の更新状況を後に確認できるようにするためである。
【0104】
次に、利用者情報を取得する場合、利用者情報記憶部140に格納された最新の暗号化データが、セキュア処理部120内に複製され復号される(ステップST13)。そして、更新時と同様にハッシュ値が計算される。計算されたハッシュ値は、セキュア記憶部110内に格納されたハッシュ値と比較されて、改竄の有無が判断される(ステップST14)。
【0105】
このように、利用者情報をHDD103に格納するようにしたので、セキュア記憶部110には最小限の情報を格納すればよい。また、利用者情報は暗号化して格納すると共に、復号時にハッシュ値を用いて改竄の有無を検査するようにしたので、利用者情報が改竄されて利用者認証が不正に行われることを防止できる。
【0106】
次に、復号鍵変更処理の流れについて説明する。コンテンツ配信サーバ200は、コンテンツを暗号化する暗号鍵を定期的に変更すると共に、コンテンツ視聴PC100に復号鍵の変更を指示する。
【0107】
図12は、復号鍵変更処理の手順を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS51]コンテンツ配信サーバ200の鍵生成部260は、前回暗号鍵を変更してから所定時間経過すると、新たな暗号鍵を生成するための変更鍵をランダムに生成する。例えば、鍵生成部260は、1時間毎に変更鍵を生成する。
【0108】
[ステップS52]鍵生成部260は、初期情報記憶部250に格納された初期情報と、ステップS51で生成した変更鍵とから、暗号鍵を生成する。例えば、鍵生成部260は、初期情報と変更鍵との排他的論理和を暗号鍵とする。そして、鍵生成部260は、暗号鍵記憶部270に生成した暗号鍵を格納する。
【0109】
[ステップS53]鍵生成部260は、変更鍵を送信部230に通知する。送信部230は、受け取った変更鍵をコンテンツ視聴PC100に送信する。
[ステップS54]コンテンツ視聴PC100の受信部160は、受信した変更鍵と併せて、復号鍵の変更命令を命令受付部122に出力する。
【0110】
[ステップS55]命令受付部122は、鍵生成部124に復号鍵の生成を指示する。鍵生成部124は、初期情報記憶部113に格納された初期情報と取得した変更鍵とから、復号鍵を生成する。実際には暗号鍵と復号鍵とは同一であるため、例えば、鍵生成部124は、初期情報と変更鍵との排他的論理和を復号鍵とする。そして、鍵生成部124は、生成した復号鍵を復号鍵記憶部114に格納する。
【0111】
[ステップS56]受信部160は、復号鍵の変更が完了した旨の応答をコンテンツ配信サーバ200に送信する。
[ステップS57]送信部230は、コンテンツを暗号化する暗号鍵の変更を暗号化部280に指示する。暗号化部280は、暗号鍵記憶部270から変更後の暗号鍵を取得し、以降、取得した暗号鍵でコンテンツを暗号化する。
【0112】
このようにして、コンテンツ配信サーバ200の鍵生成部260は、初期情報と変更鍵とから暗号鍵を生成すると共に、復号鍵の変更をコンテンツ視聴PC100に指示する。コンテンツ視聴PC100の鍵生成部124は、同様に、初期情報と変更鍵とから復号鍵を生成する。
【0113】
次に、コンテンツの再生処理の流れについて説明する。コンテンツ視聴PC100は、コンテンツ配信サーバ200から配信データを受信すると、配信データをコンテンツに復号して再生する。
【0114】
図13は、第1の実施の形態の再生処理の手順を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップS61]受信部160は、ネットワーク50を介してコンテンツ配信サーバ200から配信データを受信する。そして、受信部160は、受信した配信データを復号部125に転送する。
【0115】
[ステップS62]復号部125は、取得した配信データを、復号鍵記憶部114に格納された復号鍵を用いて復号する。そして、復号部125は、復号したコンテンツを再暗号化部126に出力する。
【0116】
[ステップS63]再暗号化部126は、取得したコンテンツを所定のデータ長の部分コンテンツに分割する。
[ステップS64]再暗号化部126は、ステップS63で分割した個々の部分コンテンツを一時暗号鍵で暗号化し、内部伝送データとして再生部170に出力する。ここで、一時暗号鍵は、所定の時間間隔で再暗号化部126がランダムに生成する一時的な暗号鍵である。例えば、再暗号化部126は、2秒毎に一時暗号鍵を切り替える。
【0117】
[ステップS65]再暗号化部126は、ステップS64の暗号化処理で、一時暗号鍵を前回用いたものから変更したか否か判断する。変更した場合には、処理がステップS66に進められる。変更していない場合には、処理がステップS69に進められる。
【0118】
[ステップS66]再暗号化部126は、位置決定情報記憶部115に格納された複数の位置決定プログラム情報の中から1つ選択する。そして、再暗号化部126は、選択した位置決定プログラム情報に記述された処理手順に従って、一時復号鍵を格納する位置を計算する。また、格納位置を解読するために必要な位置鍵を生成する。その後、再暗号化部126は、一時復号鍵記憶部131の中の計算した位置に、一時暗号鍵を格納する。
【0119】
[ステップS67]再暗号化部126は、位置決定情報記憶部115から、ステップS66で選択した位置決定プログラム情報に対応する位置解読プログラム情報を取得する。そして、再暗号化部126は、ステップS66で生成した位置鍵を再生部170に通知すると共に、位置解読プログラム情報を再生部170を実現するためのプログラムが展開されているメモリ領域の中の特定の位置に配置する。
【0120】
[ステップS68]再生部170は、ステップS67で配置された位置解読プログラム情報と通知された位置鍵とから、一時復号鍵の配置位置を計算する。そして、再生部170は、一時復号鍵記憶部131の中の計算した位置から、一時復号鍵を取得する。
【0121】
[ステップS69]再生部170は、再暗号化部126から取得した内部伝送データを、一時復号鍵を用いて部分コンテンツに復号する。
[ステップS70]再生部170は、ステップS69で復号した複数の部分コンテンツを結合して、コンテンツを再現する。そして、再生部170は、再現したコンテンツを再生し、モニタ61に表示する。
【0122】
このようにして、復号部125は、コンテンツ配信サーバ200から配信された配信データを、復号鍵で復号する。再暗号化部126は、復号されたコンテンツを部分コンテンツに分割し、一時暗号鍵で暗号化して内部伝送データとする。ここで、一時暗号鍵が変更されると、再暗号化部126は、一時復号鍵記憶部131に新たな一時復号鍵を格納する。再生部170は、一時復号鍵記憶部131に格納された一時復号鍵を用いて、内部伝送データを部分コンテンツに復号する。そして、再生部170は、部分コンテンツを結合してコンテンツを再生する。
【0123】
図14は、一時復号鍵の取得の流れを示す模式図である。
まず、セキュア記憶部110内に格納された位置決定プログラム情報の中から1つが選択され、セキュア処理部120内に読み込まれる(ステップST21)。セキュア処理部120内では、読み込まれた位置決定プログラム情報に従って、共有記憶部130内の特定の位置が計算されると共に、その位置を解読するために必要な位置鍵が生成される。
【0124】
そして、計算された位置に、一時復号鍵が格納される(ステップST22)。なお、一時復号鍵が格納される際に、格納位置が解析されるのを防止するため、他の領域にもダミーのデータが書き込まれる。
【0125】
次に、セキュア記憶部110内に格納された位置解読プログラム情報の中から、ステップST21で選択された位置決定プログラムに対応するものが選択され、セキュア処理部120内に読み込まれる。また、他の1つ以上の位置解読プログラム情報もランダムに選択されて読み込まれる(ステップST23)。
【0126】
そして、ステップST23で選択された位置解読プログラム情報が、再生部170内に配置される(ステップST24)。なお、格納位置の解読に必要ない位置解読プログラム情報も配置するのは、RAM102が解析されて、位置解読プログラム情報が特定されるのを防ぐためである。また、位置決定プログラム情報に従って生成された位置鍵も、再生部170内に通知される(ステップST25)。
【0127】
再生部170では、通知された位置鍵に基づいて、複数の位置解読プログラム情報の中から使用すべきものが1つ特定される。次に、特定された位置解読プログラム情報と位置鍵とに基づいて、一時復号鍵の格納位置が計算される。その後、共有記憶部130内の計算された位置にある一時復号鍵が、再生部170内に読み込まれる(ステップST26)。
【0128】
このようなコンテンツ視聴PC100を用いることで、コンテンツの再生中にRAM102に展開されたメモリイメージが解析されて復号鍵や復号アルゴリズムが知られることを確実に防止できる。また、内部伝送データを復号するための一時復号鍵を解析することも困難となる。また、仮に一時復号鍵が知られた場合であっても、所定の時間間隔で変更されるため、その影響範囲を最小限に抑えることができる。
【0129】
更に、セキュアLSI107は最小限の記憶領域を備えればよいため、回路規模を抑制できる。また、耐タンパ性を備えるLSIの製造は高コストになりやすいため、回路規模を抑制は、製造コストの低減にも寄与する。
【0130】
[第2の実施の形態]
次に、第2の実施の形態を図面を参照して詳細に説明する。前述の第1の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。
【0131】
第2の実施の形態に係るコンテンツ配信システムは、図2に示した第1の実施の形態のシステム構成と同様の構成で実現できる。ただし、ネットワーク50に、コンテンツ視聴PC100cが接続されているものとする。コンテンツ視聴PC100cのハードウェア構成は、図3に示したコンテンツ視聴PC100のハードウェア構成と同様の構成で実現できる。
【0132】
次に、コンテンツ視聴PC100cのモジュール構成について説明する。
図15は、第2の実施の形態のコンテンツ視聴PCの機能を示すブロック図である。コンテンツ視聴PC100cは、セキュア記憶部110、セキュア処理部120c、共有記憶部130c、利用者情報記憶部140、監視部150、受信部160および復号再生部170cを有する。受信部160は、ネットワーク50を介してコンテンツ配信サーバ200と通信を行うことができる。復号再生部170cは、モニタ61の画面に再生中のコンテンツを表示することができる。
【0133】
セキュア記憶部110、利用者情報記憶部140、監視部150および受信部160の処理機能は、図4に示した第1の実施の形態のものと同様である。
セキュア処理部120cは、受信部160から配信データを取得すると、復号処理を行わずに、配信データを所定のデータ長の部分配信データに分割する。その後、セキュア処理部120cは、定期的に変更する一時暗号鍵を用いて、部分配信データを更に暗号化し、内部伝送データとして復号再生部170cに出力する。このとき、セキュア処理部120cは、一時暗号鍵に対応する一時復号鍵と、復号鍵を一時暗号鍵で暗号化した鍵データとを、共有記憶部130cに格納する。その他のセキュア処理部120cの処理機能は、第1の実施の形態のセキュア処理部120のものと同様である。
【0134】
共有記憶部130cには、一時暗号鍵に対応する一時復号鍵と、復号鍵を一時暗号鍵で暗号化した鍵データとが格納される。共有記憶部130cに格納された情報は、セキュア処理部120cと復号再生部170cとから共通に参照および更新を行うことができる。
【0135】
復号再生部170cは、セキュア処理部120cが出力する内部伝送データを取得すると、共有記憶部130cから一時復号鍵と鍵データとを取得する。次に、復号再生部170cは、一時復号鍵を用いて、内部伝送データを部分配信データに復号すると共に、鍵データを復号鍵に復号する。そして、復号再生部170cは、複数の部分配信データを結合して配信データを再現し、復号した復号鍵を用いてコンテンツに復号する。その後、復号再生部170cは、復号したコンテンツを再生してモニタ61に表示する。
【0136】
なお、一時暗号鍵と鍵データとを、セキュア処理部120cが共有記憶部130cに格納する方法、および、復号再生部170cが共有記憶部130cから取得する方法は、第1の実施の形態と同様の方法で実現できる。
【0137】
図16は、第2の実施の形態のセキュアLSIの機能を示すブロック図である。セキュア記憶部110のモジュール構成は、第1の実施の形態のものと同様である。
セキュア処理部120cは、改竄検査部121、命令受付部122、利用者管理部123、鍵生成部124、分割部125cおよび暗号化部126cを有する。改竄検査部121、命令受付部122、利用者管理部123および鍵生成部124の処理機能は、第1の実施の形態のものと同様である。
【0138】
分割部125cは、受信部160から配信データを取得すると、配信データを所定のデータ長の部分配信データに分割する。そして、部分配信データを、暗号化部126cに出力する。
【0139】
暗号化部126cは、分割部125cから取得した個々の部分配信データを、一時暗号鍵で暗号化し、内部伝送データとして復号再生部170cに出力する。ここで、暗号化部126cは、一時暗号鍵を変更する毎に、それに対応する一時復号鍵を一時復号鍵記憶部131に格納する。また、暗号化部126cは、復号鍵記憶部114に格納された復号鍵を一時暗号鍵で暗号化した鍵データを、復号鍵記憶部132に格納する。
【0140】
このとき暗号化部126cは、位置決定情報記憶部115に格納された位置決定プログラム情報の中から1つを選択し、選択した位置決定プログラム情報に記述された処理を実行することで、一時復号鍵および鍵データを格納する位置を決定する。そして、暗号化部126cは、選択した位置決定プログラム情報に対応する位置解読プログラム情報を、位置決定情報記憶部115から取得し、復号再生部170cに通知する。
【0141】
共有記憶部130cは、一時復号鍵記憶部131および復号鍵記憶部132を有する。一時復号鍵記憶部131には、暗号化部126cが出力する一時復号鍵が格納される。復号鍵記憶部132には、暗号化部126cが出力する鍵データが格納される。格納された一時復号鍵および鍵データは、復号再生部170cによって読み出される。
【0142】
図17は、第2の実施の形態の再生処理の手順を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
[ステップS71]受信部160は、ネットワーク50を介してコンテンツ配信サーバ200から配信データを受信する。そして、受信部160は、受信した配信データを分割部125cに転送する。
【0143】
[ステップS72]分割部125cは、取得した配信データを、所定のデータ長の部分配信データに分割する。そして、分割部125cは、部分配信データを暗号化部126cに出力する。
【0144】
[ステップS73]暗号化部126cは、取得した個々の部分配信データを一時暗号鍵で暗号化し、内部伝送データとして復号再生部170cに出力する。
[ステップS74]暗号化部126cは、ステップS73の暗号化処理で、一時暗号鍵を前回用いたものから変更したか否か判断する。変更した場合には、処理がステップS75に進められる。変更していない場合には、処理がステップS78に進められる。
【0145】
[ステップS75]暗号化部126cは、位置決定情報記憶部115に格納された複数の位置決定プログラム情報の中から1つ選択する。そして、暗号化部126cは、選択した位置決定プログラム情報に記述された処理手順に従って、一時復号鍵および暗号化した復号鍵である復号データを格納する位置を計算する。また、格納位置を解読するために必要な位置鍵を生成する。その後、暗号化部126cは、一時復号鍵記憶部131の中の計算した位置に一時暗号鍵を格納する。また、暗号化部126cは、復号鍵記憶部114に格納された復号鍵を一時暗号鍵で暗号化して鍵データを生成し、復号鍵記憶部132の中の計算した位置に鍵データを格納する。
【0146】
[ステップS76]暗号化部126cは、位置決定情報記憶部115から、ステップS75で選択した位置決定プログラム情報に対応する位置解読プログラム情報を取得する。そして、暗号化部126cは、ステップS75で生成した位置鍵と位置解読プログラム情報とを、復号再生部170cを実現するためのプログラムが展開されているメモリ領域の中の特定の位置に配置する。
【0147】
[ステップS77]復号再生部170cは、ステップS76で配置された位置解読プログラム情報と位置鍵とから、一時復号鍵および鍵データの配置位置を計算する。そして、復号再生部170cは、一時復号鍵記憶部131の中の計算した位置から一時復号鍵を取得する。また、復号鍵記憶部132の中の計算した位置から鍵データを取得する。
【0148】
[ステップS78]復号再生部170cは、暗号化部126cから取得した内部伝送データを、一時復号鍵を用いて部分配信データに復号する。また、復号再生部170cは、鍵データを、一時復号鍵を用いて復号鍵に復号する。
【0149】
[ステップS79]復号再生部170cは、ステップS78で復号した複数の部分配信データを結合して、配信データを再現する。そして、復号再生部170cは、再現した配信データを、ステップS78で復号した復号鍵でコンテンツに復号する。
【0150】
[ステップS80]復号再生部170cは、ステップS79で復号したコンテンツを再生し、モニタ61に表示する。
このようにして、分割部125cは、コンテンツ配信サーバ200から配信された配信データを、部分配信データに分割する。暗号化部126cは、個々の部分配信データを一時暗号鍵で暗号化して、内部伝送データとする。ここで、一時暗号鍵が変更されると、暗号化部126cは、一時復号鍵記憶部131に新たな一時復号鍵を格納し、復号鍵記憶部132に復号鍵を一時暗号鍵で暗号化した鍵データを格納する。復号再生部170cは、一時復号鍵記憶部131に格納された一時復号鍵を用いて、内部伝送データを部分配信データに復号し、鍵データを復号鍵に復号する。そして、復号再生部170cは、部分配信データを結合して配信データを再現し、復号鍵でコンテンツに復号して再生する。
【0151】
このようなコンテンツ視聴PC100cを用いることで、コンテンツの再生中にRAM102に展開されたメモリイメージが解析されて復号鍵や復号アルゴリズムが知られることを防止できる。また、内部伝送データを復号するための一時復号鍵を解析することも困難となる。また、仮に一時復号鍵が知られた場合であっても、所定の時間間隔で変更されるため、その影響範囲を最小限に抑えることができる。
【0152】
特に、CPU101などの拡張容易なハードウェアで復号処理を行うため、セキュアモジュールが復号処理のための十分な処理能力を備えていない場合でも、円滑に復号処理を行うことが可能となる。また、より多様な暗号化アルゴリムに対応することができる。
【0153】
更に、セキュアLSIは最小限の記憶領域を備えればよいため、回路規模を抑制できる。また、耐タンパ性を備えるLSIの製造は高コストになりやすいため、回路規模の抑制は、製造コストの低減にも寄与する。
【0154】
以上、本発明の情報処理装置を図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に他の任意の構成物や工程が付加されていてもよい。また、本発明は、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【0155】
なお、コンテンツ視聴PC100,100cが備える処理機能の一部をソフトウェアで実現する場合、その機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0156】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどが挙げられる。磁気記録装置としては、例えば、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどが挙げられる。光ディスクとしては、例えば、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などが挙げられる。光磁気記録媒体としては、例えば、MO(Magneto-Optical disk)などが挙げられる。
【0157】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0158】
上記プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【図面の簡単な説明】
【0159】
【図1】本実施の形態の概要を示す図である。
【図2】コンテンツ配信システムのシステム構成を示す図である。
【図3】コンテンツ視聴PCのハードウェア構成を示す図である。
【図4】第1の実施の形態のコンテンツ視聴PCの機能を示すブロック図である。
【図5】第1の実施の形態のセキュアLSIの機能を示すブロック図である。
【図6】コンテンツ配信サーバの機能を示すブロック図である。
【図7】PC起動処理の手順を示すフローチャートである。
【図8】PC監視処理の手順を示すフローチャートである。
【図9】利用者情報更新処理の手順を示すフローチャートである。
【図10】利用者認証処理の手順を示すフローチャートである。
【図11】利用者情報の更新および取得の流れを示す模式図である。
【図12】復号鍵変更処理の手順を示すフローチャートである。
【図13】第1の実施の形態の再生処理の手順を示すフローチャートである。
【図14】一時復号鍵の取得の流れを示す模式図である。
【図15】第2の実施の形態のコンテンツ視聴PCの機能を示すブロック図である。
【図16】第2の実施の形態のセキュアLSIの機能を示すブロック図である。
【図17】第2の実施の形態の再生処理の手順を示すフローチャートである。
【符号の説明】
【0160】
2 配信装置
3 ネットワーク
4 表示装置
10 情報処理装置
11 セキュアモジュール
11a 鍵記憶部
11b 復号部
11c 暗号化部
12 受信手段
13 再生手段
【特許請求の範囲】
【請求項1】
ネットワーク経由で配信されるコンテンツを再生可能な情報処理装置において、
耐タンパ性を備えており、
暗号化された前記コンテンツである配信データを復号するための復号鍵を記憶する鍵記憶部と、
前記配信データが入力されると、前記鍵記憶部が記憶する前記復号鍵を用いて、前記配信データを前記コンテンツに復号する復号部と、
前記復号部が復号した前記コンテンツを複数の部分コンテンツに分割し、個々の前記部分コンテンツを所定の時間間隔で変更する一時暗号鍵で暗号化して内部伝送データとして出力すると共に、前記一時暗号鍵を変更する毎に前記内部伝送データを復号するための一時復号鍵の情報を出力する暗号化部と、
を有するセキュアモジュールと、
前記ネットワーク経由で配信される前記配信データを受信し、前記セキュアモジュール内の前記復号部に前記配信データを転送する受信手段と、
前記セキュアモジュール内の前記暗号化部が出力する前記内部伝送データと前記一時復号鍵の情報とを取得し、前記一時復号鍵を用いて前記内部伝送データを前記部分コンテンツに復号し、復号した複数の前記部分コンテンツを結合して前記コンテンツを再生する再生手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記セキュアモジュール内の前記暗号化部と前記再生手段とから共通にアクセス可能な共有記憶手段を更に有し、
前記暗号化部は、前記一時暗号鍵を変更する毎に、前記一時復号鍵を前記共有記憶手段内の任意の位置に格納すると共に、前記一時復号鍵の格納位置を示す位置情報を出力し、
前記再生手段は、前記暗号化部が出力する前記位置情報に基づいて前記共有記憶手段から前記一時復号鍵を取得する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記セキュアモジュールは、
前記復号鍵の生成に必要な初期情報が予め記憶された初期情報記憶部と、
前記復号鍵の変更を指示する鍵変更情報が入力されると、前記初期情報記憶部が記憶する前記初期情報と前記鍵変更情報とから前記復号鍵を生成して、前記鍵記憶部に記憶する鍵生成部と、
を更に有し、
前記受信手段は、前記鍵変更情報を受信すると、前記セキュアモジュール内の前記鍵生成部に前記鍵変更情報を転送する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項4】
前記セキュアモジュールは、復号停止の命令が入力されると前記復号部による処理を停止させる命令受付部を更に有し、
前記情報処理装置内のプロセスの実行状況を継続的に監視し、前記コンテンツの再生に必要でないプロセスを検出すると、前記セキュアモジュール内の前記命令受付部に復号停止の命令を出力する監視手段を更に有する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項5】
前記セキュアモジュールは、復号停止の命令が入力されると前記復号部による処理を停止させる命令受付部を更に有し、
利用者の操作入力を継続的に監視し、前記コンテンツの再生に必要でない操作入力を検出すると、前記セキュアモジュール内の前記命令受付部に復号停止の命令を出力する監視手段を更に有する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項6】
前記セキュアモジュールは、復号停止の命令が入力されると前記復号部による処理を停止させる命令受付部を更に有し、
前記ネットワークを介した通信の状況を継続的に監視し、前記コンテンツの再生に必要でない通信を検出すると、前記セキュアモジュール内の前記命令受付部に復号停止の命令を出力する監視手段を更に有する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項7】
オペレーティングシステムの起動直後に、前記情報処理装置がもつ未使用のメモリ領域を全て確保すると共に、前記コンテンツの再生に必要なプロセスからメモリ取得要求がなされると、要求元のプロセスにメモリ領域を割り当て、前記コンテンツの再生に必要でないプロセスから前記メモリ取得要求がなされると要求を拒否する監視手段を更に有し、
前記再生手段は、前記コンテンツの再生のために追加のメモリ領域が必要になると、前記監視手段に前記メモリ取得要求を出力する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項8】
前記セキュアモジュールは、
利用者情報を記憶する利用者情報記憶部と、
前記利用者情報の取得命令が入力されると、前記利用者情報記憶部が記憶する前記利用者情報を命令の入力元に出力する利用者管理部と、
を更に有し、
前記受信手段は、前記コンテンツの配信元との間で利用者認証が必要になると、前記セキュアモジュール内の前記利用者管理部に前記利用者情報の取得命令を出力し、取得した前記利用者情報を用いて認証処理を行う、
ことを特徴とする請求項1記載の情報処理装置。
【請求項9】
利用者情報を記憶する利用者情報記憶手段を更に有し、
前記セキュアモジュールは、
前記利用者情報に対応する改竄検査情報を記憶する識別情報記憶部と、
前記利用者情報の取得命令が入力されると、前記利用者情報記憶手段から前記利用者情報を取得し、前記利用者情報と前記識別情報記憶部が記憶する前記改竄検査情報とを照合し、改竄が検出された場合は命令の入力元に拒否応答を行い、改竄が検出されなかった場合は命令の入力元に前記利用者情報を出力する利用者管理部と、
を更に有し、
前記受信手段は、前記コンテンツの配信元との間で利用者認証が必要になると、前記セキュアモジュール内の前記利用者管理部に前記利用者情報の取得命令を出力し、前記利用者情報を取得した場合は前記利用者情報を用いて認証処理を行い、前記利用者情報を取得できない場合は前記コンテンツの受信に関する処理を停止する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項10】
ネットワーク経由で配信されるコンテンツを再生可能な情報処理装置において、
耐タンパ性を備えており、
暗号化された前記コンテンツである配信データを復号するための復号鍵を記憶する鍵記憶部と、
前記配信データが入力されると、前記配信データを複数の部分配信データに分割する分割部と、
前記分割部が分割した個々の前記部分配信データを、所定の時間間隔で変更する一時暗号鍵で暗号化して内部伝送データとして出力すると共に、前記一時暗号鍵を変更する毎に、前記鍵記憶部が記憶する前記復号鍵を前記一時暗号鍵で暗号化して鍵データとし、前記内部伝送データを復号するための一時復号鍵の情報と前記鍵データの情報とを出力する暗号化部と、
を有するセキュアモジュールと、
前記ネットワーク経由で配信される前記配信データを受信し、前記セキュアモジュール内の前記分割部に前記配信データを転送する受信手段と、
前記セキュアモジュール内の前記暗号化部が出力する前記内部伝送データと前記一時復号鍵の情報および前記鍵データの情報とを取得し、前記一時復号鍵を用いて前記内部伝送データを前記部分配信データに復号し、復号した複数の前記部分配信データを結合して前記配信データとすると共に、前記一時復号鍵を用いて前記鍵データを前記復号鍵に復号し、前記復号鍵を用いて前記配信データを前記コンテンツに復号して再生する再生手段と、
を有することを特徴とする情報処理装置。
【請求項1】
ネットワーク経由で配信されるコンテンツを再生可能な情報処理装置において、
耐タンパ性を備えており、
暗号化された前記コンテンツである配信データを復号するための復号鍵を記憶する鍵記憶部と、
前記配信データが入力されると、前記鍵記憶部が記憶する前記復号鍵を用いて、前記配信データを前記コンテンツに復号する復号部と、
前記復号部が復号した前記コンテンツを複数の部分コンテンツに分割し、個々の前記部分コンテンツを所定の時間間隔で変更する一時暗号鍵で暗号化して内部伝送データとして出力すると共に、前記一時暗号鍵を変更する毎に前記内部伝送データを復号するための一時復号鍵の情報を出力する暗号化部と、
を有するセキュアモジュールと、
前記ネットワーク経由で配信される前記配信データを受信し、前記セキュアモジュール内の前記復号部に前記配信データを転送する受信手段と、
前記セキュアモジュール内の前記暗号化部が出力する前記内部伝送データと前記一時復号鍵の情報とを取得し、前記一時復号鍵を用いて前記内部伝送データを前記部分コンテンツに復号し、復号した複数の前記部分コンテンツを結合して前記コンテンツを再生する再生手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記セキュアモジュール内の前記暗号化部と前記再生手段とから共通にアクセス可能な共有記憶手段を更に有し、
前記暗号化部は、前記一時暗号鍵を変更する毎に、前記一時復号鍵を前記共有記憶手段内の任意の位置に格納すると共に、前記一時復号鍵の格納位置を示す位置情報を出力し、
前記再生手段は、前記暗号化部が出力する前記位置情報に基づいて前記共有記憶手段から前記一時復号鍵を取得する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記セキュアモジュールは、
前記復号鍵の生成に必要な初期情報が予め記憶された初期情報記憶部と、
前記復号鍵の変更を指示する鍵変更情報が入力されると、前記初期情報記憶部が記憶する前記初期情報と前記鍵変更情報とから前記復号鍵を生成して、前記鍵記憶部に記憶する鍵生成部と、
を更に有し、
前記受信手段は、前記鍵変更情報を受信すると、前記セキュアモジュール内の前記鍵生成部に前記鍵変更情報を転送する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項4】
前記セキュアモジュールは、復号停止の命令が入力されると前記復号部による処理を停止させる命令受付部を更に有し、
前記情報処理装置内のプロセスの実行状況を継続的に監視し、前記コンテンツの再生に必要でないプロセスを検出すると、前記セキュアモジュール内の前記命令受付部に復号停止の命令を出力する監視手段を更に有する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項5】
前記セキュアモジュールは、復号停止の命令が入力されると前記復号部による処理を停止させる命令受付部を更に有し、
利用者の操作入力を継続的に監視し、前記コンテンツの再生に必要でない操作入力を検出すると、前記セキュアモジュール内の前記命令受付部に復号停止の命令を出力する監視手段を更に有する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項6】
前記セキュアモジュールは、復号停止の命令が入力されると前記復号部による処理を停止させる命令受付部を更に有し、
前記ネットワークを介した通信の状況を継続的に監視し、前記コンテンツの再生に必要でない通信を検出すると、前記セキュアモジュール内の前記命令受付部に復号停止の命令を出力する監視手段を更に有する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項7】
オペレーティングシステムの起動直後に、前記情報処理装置がもつ未使用のメモリ領域を全て確保すると共に、前記コンテンツの再生に必要なプロセスからメモリ取得要求がなされると、要求元のプロセスにメモリ領域を割り当て、前記コンテンツの再生に必要でないプロセスから前記メモリ取得要求がなされると要求を拒否する監視手段を更に有し、
前記再生手段は、前記コンテンツの再生のために追加のメモリ領域が必要になると、前記監視手段に前記メモリ取得要求を出力する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項8】
前記セキュアモジュールは、
利用者情報を記憶する利用者情報記憶部と、
前記利用者情報の取得命令が入力されると、前記利用者情報記憶部が記憶する前記利用者情報を命令の入力元に出力する利用者管理部と、
を更に有し、
前記受信手段は、前記コンテンツの配信元との間で利用者認証が必要になると、前記セキュアモジュール内の前記利用者管理部に前記利用者情報の取得命令を出力し、取得した前記利用者情報を用いて認証処理を行う、
ことを特徴とする請求項1記載の情報処理装置。
【請求項9】
利用者情報を記憶する利用者情報記憶手段を更に有し、
前記セキュアモジュールは、
前記利用者情報に対応する改竄検査情報を記憶する識別情報記憶部と、
前記利用者情報の取得命令が入力されると、前記利用者情報記憶手段から前記利用者情報を取得し、前記利用者情報と前記識別情報記憶部が記憶する前記改竄検査情報とを照合し、改竄が検出された場合は命令の入力元に拒否応答を行い、改竄が検出されなかった場合は命令の入力元に前記利用者情報を出力する利用者管理部と、
を更に有し、
前記受信手段は、前記コンテンツの配信元との間で利用者認証が必要になると、前記セキュアモジュール内の前記利用者管理部に前記利用者情報の取得命令を出力し、前記利用者情報を取得した場合は前記利用者情報を用いて認証処理を行い、前記利用者情報を取得できない場合は前記コンテンツの受信に関する処理を停止する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項10】
ネットワーク経由で配信されるコンテンツを再生可能な情報処理装置において、
耐タンパ性を備えており、
暗号化された前記コンテンツである配信データを復号するための復号鍵を記憶する鍵記憶部と、
前記配信データが入力されると、前記配信データを複数の部分配信データに分割する分割部と、
前記分割部が分割した個々の前記部分配信データを、所定の時間間隔で変更する一時暗号鍵で暗号化して内部伝送データとして出力すると共に、前記一時暗号鍵を変更する毎に、前記鍵記憶部が記憶する前記復号鍵を前記一時暗号鍵で暗号化して鍵データとし、前記内部伝送データを復号するための一時復号鍵の情報と前記鍵データの情報とを出力する暗号化部と、
を有するセキュアモジュールと、
前記ネットワーク経由で配信される前記配信データを受信し、前記セキュアモジュール内の前記分割部に前記配信データを転送する受信手段と、
前記セキュアモジュール内の前記暗号化部が出力する前記内部伝送データと前記一時復号鍵の情報および前記鍵データの情報とを取得し、前記一時復号鍵を用いて前記内部伝送データを前記部分配信データに復号し、復号した複数の前記部分配信データを結合して前記配信データとすると共に、前記一時復号鍵を用いて前記鍵データを前記復号鍵に復号し、前記復号鍵を用いて前記配信データを前記コンテンツに復号して再生する再生手段と、
を有することを特徴とする情報処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2008−118265(P2008−118265A)
【公開日】平成20年5月22日(2008.5.22)
【国際特許分類】
【出願番号】特願2006−297666(P2006−297666)
【出願日】平成18年11月1日(2006.11.1)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成20年5月22日(2008.5.22)
【国際特許分類】
【出願日】平成18年11月1日(2006.11.1)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]