(57)【要約】【課題】暗号鍵の秘密性を担保しつつ、既にデータを有する端末装置から、そのデータを要求する他の端末装置へそのデータを送信するようにして、センタ装置の負荷を低減することができる暗号化データ配信方法を提供する。【解決手段】サーバ１１は、第１の端末装置へ送信した暗号化されたデータと同じデータの配信要求が第２の端末装置からあった場合に、第２の端末装置においてデコードできるように、第１の端末装置において配信要求に係るデータを暗号化するエンコードプログラムを、第１の端末装置の暗号鍵を用いて暗号化して前記第１の端末装置へ送信する。第１の端末装置は、外部からのアクセスができない状態において暗号化されたエンコードプログラムを第１の端末装置の暗号鍵を用いてデコードして実行し、第２の端末装置の暗号鍵を用いてエンコードされて暗号化されたデータを第２の端末装置へ送信する。【選択図】図９
2009194462.tif 000002
【特許請求の範囲】
【請求項１】
センタ装置から複数の端末装置へデータの配信を行うためにデータの配信を行う方法であって、
前記センタ装置へデータの配信要求を送信した第１の端末装置へ、各端末装置の識別情報と暗号鍵の情報を格納する暗号鍵情報格納部に格納された前記第１の端末装置の暗号鍵を直接的又は間接的に用いて前記配信要求に係るデータを暗号化して送信し、
前記第１の端末装置へ送信した暗号化されたデータと同じデータの配信要求が第２の端末装置からあった場合に、前記第２の端末装置において前記第２の端末装置の暗号鍵を用いてデコードできるように、前記第１の端末装置において前記配信要求に係るデータを暗号化するエンコードプログラムを、前記第１の端末装置の暗号鍵を用いて暗号化して前記第１の端末装置へ送信し、
前記第１の端末装置に設けられたプロセッサに設けられたデータエンコード部によって、暗号化されたエンコードプログラムを受信すると、外部からのアクセスができない状態において前記暗号化されたエンコードプログラムを前記第１の端末装置の暗号鍵を用いてデコードして実行して、前記暗号化されたデータをデコードして、さらに前記第２の端末装置の暗号鍵を用いてエンコードし、
前記第１の端末装置に設けられたデータ送信部によって、前記第２の端末装置の暗号鍵を用いてエンコードされて暗号化されたデータを、前記第２の端末装置へ送信する、
ことを特徴とする暗号化データ配信方法。
【請求項２】
前記プロセッサは、記憶部を含み、前記記憶部の第１の所定の領域を前記外部からアクセスができない状態にして、前記暗号化されたエンコードプログラムを前記第１の端末装置の暗号鍵を用いて前記第１の所定の領域においてデコードすることを特徴とする請求項１に記載の暗号化データ配信方法。
【請求項３】
前記暗号化されたデータは、前記第１の端末装置に接続された記憶装置に記憶され、
前記プロセッサは、前記暗号化されたデータを前記第１の端末装置の暗号鍵を用いてデコードするデコード処理部を有し、
前記プロセッサは、前記記憶装置から読み出した前記暗号化されたデータを前記記憶部の前記第２の所定の領域に書き込み、前記デコード処理部により前記暗号化されたデータをデコードすることを特徴とする請求項２に記載の暗号化データ配信方法。
【請求項４】
前記暗号化されたエンコードプログラムは、前記第１の端末装置に接続された前記記憶装置に記憶され、
前記プロセッサは、前記記憶装置から読み出した前記暗号化されたエンコードプログラムを前記記憶部の第２の所定の領域に書き込み、前記デコード処理部により、前記暗号化されたエンコードプログラムをデコードすることを特徴とする請求項３に記載の暗号化データ配信方法。
【請求項５】
センタ装置と複数の端末装置とを含むシステムであって、
各端末装置の識別情報と暗号鍵の情報を格納する暗号鍵情報格納部と、
前記センタ装置へデータの配信要求を送信した第１の端末装置へ、前記暗号鍵情報格納部に格納された前記第１の端末装置の暗号鍵を直接的又は間接的に用いて前記配信要求に係るデータを暗号化して送信する第１のデータ送信部と、
前記第１の端末装置へ送信した暗号化されたデータと同じデータの配信要求が第２の端末装置からあった場合に、前記第２の端末装置において前記第２の端末装置の暗号鍵を用いてデコードできるように、前記第１の端末装置において前記配信要求に係るデータを暗号化するエンコードプログラムを、前記第１の端末装置の暗号鍵を用いて暗号化して前記第１の端末装置へ送信するエンコードプログラム送信部と、
前記第１の端末装置に設けられたプロセッサに設けられ、暗号化されたエンコードプログラムを受信すると、外部からのアクセスができない状態において前記暗号化されたエンコードプログラムを前記第１の端末装置の暗号鍵を用いてデコードして実行して、前記暗号化されたデータをデコードして、さらに前記第２の端末装置の暗号鍵を用いてエンコードするデータエンコード部と、
前記第１の端末装置に設けられ、前記第２の端末装置の暗号鍵を用いてエンコードされて暗号化されたデータを、前記第２の端末装置へ送信する第２のデータ送信部と、
を有することを特徴とする暗号化データ配信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化データ配信方法及び暗号化データ配信システムに関し、特に、複数の端末装置へ暗号化されたデータを配信する暗号化データ配信方法及び暗号化データ配信システムに関する。
【背景技術】
【０００２】
従来より、インターネットを使用した映画、音楽等のデータを配信するサービスが提供されている。配信を適切に行うために、センタ装置は、ユーザの端末装置に対する認証処理を行い、データにプロテクトをかけて、データの配信を行う方法が行われている。  
そのような方法の場合、一旦、そのデータのプロテクトが破られてしまうと、誰でもコンテンツの内容を見ることができてしまうという問題がある。また、公開鍵方式によるデータの暗号化を行っても、秘密鍵がコピーされれば、誰でもデータの内容を見ることができてしまう。
【０００３】
そこで、ユーザ毎に異なる暗号鍵を用いて暗号化されたデータを配信する技術が提案されている（例えば、特許文献１参照）。その提案によれば、ある特定のユーザのハードウエアのみでデータの復号が可能であり、かつハードウェアプロテクションによって、暗号鍵をユーザが知ることができないため、データをコピーしても他のユーザは復号することができなくなる。
【０００４】
しかし、センタ装置は、多くのユーザの端末装置からのデータの配信要求に応じて、データの配信を行わなければならないため、処理負荷が高くなる場合がある。そのような処理負荷が高くなると、全てのユーザに対して、応答性よくデータ配信サービスを提供できなくなる虞がある。例えば、データ配信要求の頻度の高いコンテンツ、例えば人気のある映画、ｅラーニングの教材、等、については、同じデータを要求のあった全てのユーザの端末に配信しなければならないために、センタ装置の負荷は、そのコンテンツのためだけに、高負荷状態となってしまうことになる。  
上述した提案においては、そのような同じコンテンツのデータ配信により、負荷が高くなるという問題については何ら考慮されていない。
【特許文献１】特開2005-80185号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、以上のような問題に鑑みてなされたものであり、暗号鍵の秘密性を担保しつつ、既にデータを有する端末装置から、そのデータを要求する他の端末装置へそのデータを、送信するようにして、センタ装置の負荷を低減することができる暗号化データ配信方法及び暗号化データ配信システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、センタ装置から複数の端末装置へデータの配信を行うためにデータの配信を行う方法であって、前記センタ装置へデータの配信要求を送信した第１の端末装置へ、各端末装置の識別情報と暗号鍵の情報を格納する暗号鍵情報格納部に格納された前記第１の端末装置の暗号鍵を直接的又は間接的に用いて前記配信要求に係るデータを暗号化して送信し、前記第１の端末装置へ送信した暗号化されたデータと同じデータの配信要求が第２の端末装置からあった場合に、前記第２の端末装置において前記第２の端末装置の暗号鍵を用いてデコードできるように、前記第１の端末装置において前記配信要求に係るデータを暗号化するエンコードプログラムを、前記第１の端末装置の暗号鍵を用いて暗号化して前記第１の端末装置へ送信し、前記第１の端末装置に設けられたプロセッサに設けられたデータエンコード部によって、暗号化されたエンコードプログラムを受信すると、外部からのアクセスができない状態において前記暗号化されたエンコードプログラムを前記第１の端末装置の暗号鍵を用いてデコードして実行して、前記暗号化されたデータをデコードして、さらに前記第２の端末装置の暗号鍵を用いてエンコードし、前記第１の端末装置に設けられたデータ送信部によって、前記第２の端末装置の暗号鍵を用いてエンコードされて暗号化されたデータを、前記第２の端末装置へ送信する暗号化データ配信方法を提供することができる。
【発明の効果】
【０００７】
本発明に係る暗号化データ配信方法及び暗号化データ配信システムによれば、暗号鍵の秘密性を担保しつつ、既にデータを有する端末装置から、そのデータを要求する他の端末装置へそのデータを送信するようにして、センタ装置の負荷を低減することができる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照して本発明の実施の形態を説明する。  
まず図１に基づき、本実施の形態に係わるデータ配信システムの構成を説明する。図１は、本実施の形態に係わるデータ配信システムの構成を示す構成図である。  
データ配信システム１は、センタ装置としてのサーバ１１と、それぞれがユーザ端末装置としての複数の端末装置（以下単に端末という）１２から構成される。サーバ１１と、各端末１２は、インターネットであるネットワーク１３を介して接続され、相互に通信可能となっている。
【０００９】
データ配信システム１では、AESなどの共通鍵を用いてデータが暗号化される。データ配信において、配信するデータの全部または一部をユーザ毎に固有に持つハードウエア暗号鍵を直接的にまたは間接的に用いて暗号化した上でデータが配信される。
【００１０】
以下、配信されるデータとして映画のコンテンツデータ（以下、単にコンテンツという）が、ユーザからの配信要求に応じて、インターネットを介して、サーバ１１から、端末１２へ配信される例を説明するが、配信されるデータは、映画のコンテンツだけでなく、音楽のデータ、ゲームプログラム等でもよく、また、ネットワークも、インターネットでなく、WANあるいはLANでも、専用線、公衆回線等の通信線でもよい。
【００１１】
また、サーバ１１は、通常のサーバ装置でもよいし、規模の大きな大型コンピュータ等でもよい。さらに、端末も、パーソナルコンピュータでもよいし、主たる機能がゲーム装置であるコンピュータでもよい。
【００１２】
サーバ１１には、記憶装置１４が接続されている。記憶装置１４には、複数のコンテンツを格納するコンテンツ格納部１４ａと、各ユーザのすなわち各端末１２の、識別子すなわち識別情報（以下、IDという）と、そのIDに対応付けられたユーザ毎の暗号鍵の情報とを含む暗号鍵テーブル１４ｂとが、記憶されている。暗号鍵テーブル１４ｂは、各端末のIDの情報と暗号鍵の情報を格納する暗号鍵情報格納部を構成する。さらに、記憶装置１４は、サーバ１１から配信したコンテンツの配信記録の情報を記憶する配信記録格納部１４ｃも有する。配信記録の情報は、端末１２毎に、配信したコンテンツの情報を記録した情報である。また、各端末１２にも、記憶装置１５が接続されている。
【００１３】
ユーザは、端末１２からサーバ１１へ、視聴したいコンテンツの配信要求を、所定の手順により送信する。配信要求には、端末１２のIDと、コンテンツを特定する情報が含まれる。サーバ１１は、暗号鍵テーブル１４ｂを参照して、そのユーザからの配信要求に含まれるIDに基づき暗号鍵を特定し、その暗号鍵を用いて、配信要求のあったコンテンツを暗号化してユーザの端末１２へ、暗号化したすなわちエンコードしたコンテンツを送信する。ユーザの端末１２では、配信されたコンテンツは記憶装置１５に記憶される。
【００１４】
そして、暗号化されたコンテンツは、端末１２の有する暗号鍵を用いて復号化すなわちデコードされ、ユーザは、端末１２に接続されたモニタ及びスピーカにより、映画のコンテンツを視聴することができる。各端末１２は、端末毎に予め設定された暗号鍵を有するが、ユーザは、その暗号鍵を読み出すことができないようになっている。暗号鍵が読み出せないようになっている構成については後述する。
【００１５】
以上のように、各ユーザは、試聴を希望するコンテンツの配信要求を端末１２からサーバ１１へインターネットを介して送信すると、サーバ１１は、その端末１２へ、その端末について予め設定された暗号鍵により暗号化したコンテンツを送信する。
【００１６】
図２は、記憶装置１４に記憶される暗号鍵テーブル１４ｂの構成例を示す図である。  
暗号鍵情報格納部である暗号鍵テーブル１４ｂは、各ユーザ言い換えると各端末１２のID毎に対応する暗号鍵の情報を保持するテーブルである。図２は、IDがAである端末１２には、暗号鍵αが対応し、IDがBである端末１２には、暗号鍵βが対応し、IDがCである端末１２には、暗号鍵γが対応していることを示している。  
よって、サーバ１１は、配信要求のコマンドに含まれる端末１２のIDに基づいて、暗号鍵テーブル１４ｂから暗号鍵を抽出することができる。
【００１７】
各端末は、固有のIDおよび暗号鍵を有し、IDと暗号鍵の対応情報は、サーバ１１を管理するシステムベンダーのみが管理する。後述するように、ハードウェア的な保護により、ユーザはIDの情報を得ることができても、暗号鍵そのものを知ることはできない。
【００１８】
図３は、各端末１２の構成例を示す構成図である。端末１２は、中央処理装置（以下、CPUという）２１と、ROM２２と、RAM２３と、表示装置としての液晶表示装置（以下、LCDという）２４と、キーボード、マウス等の入力装置２５とを含む。また、端末１２は、ハードディスク装置（以下、HDDという）等の記憶装置１５と接続するためのインターフェース回路（以下、I/Fと略す）１５ａを有する。さらに、端末１２はネットワーク１３に接続するための通信用のI/F１３ａも有している。CPU２１と、ROM２２と、RAM２３と、LCD２４と、入力装置２５と、記憶装置１５と、ネットワーク１３とは、互いにシステムバス２６を介して接続されている。また、LCD２４と、入力装置２５と、記憶装置１５と、ネットワーク１３は、それぞれ、インターフェース回路（以下、I/Fと略す）２４ａ，２５ａ，１５ａ、１３ａを介して、システムバス２６に接続されている。  
ユーザは、入力装置２５を操作して、サーバ１１へアクセスし、試聴を希望するコンテンツを特定し、そのコンテンツの配信要求を送信することができる。  
なお、配信要求の送信は、サーバ１１から送信される画面を用いて行うようにしてもよいし、ROM２２等に予め記憶されているプログラムを用いて行うようにしてもよい。
【００１９】
そして、端末１２は、サーバ１１からI/F１３ａを介して受信したコンテンツを記憶装置１５に一旦記憶する。端末１２のCPU２１が、記憶装置１５から読み出したコンテンツ、すなわち暗号化されているコンテンツをデコードして、LCD２４及びスピーカ（図示せず）によりユーザが試聴できるようにする。
【００２０】
例えば、IDがAである端末１２（以下、端末１２Aという）からサーバ１１へ配信要求が送信されると、サーバ１１は、暗号鍵テーブル１４ｂを参照して、端末１２Aの暗号鍵はαであることが認識することができる。サーバ１１は、配信要求のあったコンテンツXを端末１２Aに対する暗号鍵αで暗号化して、暗号化されたコンテンツ［X］αを、配信要求のあった端末１２へ送信する。
【００２１】
端末１２は、I/F１３ａを介して受信した、暗号化されたコンテンツ［X］αを、記憶装置１５に記憶する。CPU２１は、記憶装置１５に記憶された、暗号化されたコンテンツ［X］αを、暗号鍵αでデコードして、コンテンツXを生成することによって、LCD２４及びスピーカ（図示せず）により、ユーザが試聴可能となる。
【００２２】
また、後述するように、端末１２Aは、サーバ１１からの指示の下で、IDがBである端末１２（以下、端末１２Bという）に、端末１２Bのために暗号化されたコンテンツ［X］βを送信することができる。
【００２３】
図４は、CPU２１の構成を示すブロック図である。  
CPU２１は、PROM（Programmable Read Only Memory）コントローラ３１と、PROM３２と、信号処理プロセッサ（DSP: Digital Signal Processor、以下、DSPと略す）３３と、シーケンサ回路（以下、シーケンサという）３４と、コアCPU３５と、I/F３６を含む。DSP３３と、シーケンサ３４と、コアCPU３５と、I/F３６とは、それぞれローカルバス３７に接続され、互いにデータの送受信ができるようになっている。
【００２４】
DSP３３は、演算部４０と、暗号鍵を記憶するための記憶領域４１と、DSP３３内部における処理に用いる作業用記憶領域としてのローカルメモリ４２と、暗号鍵を用いて渡されたプログラムやデータの認証ならびにデコードを行う、デコード処理ブロック４３を有して構成されている信号処理プロセッサである。記憶領域４１とローカルメモリ４２は、RAMの記憶領域を有するDSP３３の記憶部であり、デコード処理部としてのデコード処理ブロック４３は、上述した認証及びデコードの処理を行う実行部である。
【００２５】
シーケンサ３４は、内部にIDを記憶するための記憶領域４４を有する。記憶領域４４は、RAMの記憶領域である。
【００２６】
PROM３２は、一回だけ所定のデータを書き込むことが可能な、不揮発性メモリである。PROMコントローラ３１は、PROM３２に、その所定のデータを書き込むための制御回路である。
【００２７】
PROMコントローラ３１によってPROM３２に書き込まれる所定のデータは、本実施の形態では、そのCPU２１（あるいはCPU２１が搭載される端末１２）について予め決められたIDと暗号鍵３２ａである。IDは、各端末１２を識別するためのデータであり、暗号鍵は、暗号化されたコンテンツを復号するために必要な、各端末１２について予め決められたキーデータである。
【００２８】
IDと暗号鍵３２ａは、例えば、CPU２１の製造時あるいは出荷時に、PROMコントローラ３１によって、PROM３２に書き込まれる。  
PROM３２中のIDと暗号鍵３２ａは、CPU２１のリセット時に、記憶領域４４と記憶領域４１にそれぞれコピーされる。端末１２の電源が落とされると、各RAM中のデータである暗号鍵とIDは消去される。
【００２９】
PROMコントローラ３１は、PROM３２に対して、データを書き込む処理を行うだけであり、PROM３２に書かれたデータは読み出すことができないように構成されている。例えば、外部からのスキャン信号をPROM３２中のある値により制御されるようにして、PROM３２に書かれたデータを、外部からのスキャン信号によっても読み出すことができないようにすることができる。具体的には、IDと暗号鍵３２ａをPROM３２に書き込んだ後に、初期値ではスキャン可能にし、それ以降のスキャンは、PROM３２によって制御して、PROM３２に書かれたデータを読み出すことができないようにすることができる。PROM３２は、CPU２１の内部回路であるコアCPU３５等からも、さらに外部からもアクセスできず、読み出すことはできない。
【００３０】
また、記憶領域４４に書き込まれたIDは、コアCPU３５等によってアクセスでき、読み出すことはできるが、記憶領域４１に書き込まれた暗号鍵は、コアCPU３５等によってもアクセスできず、読み出すことはできない。記憶領域４１に書き込まれた暗号鍵のデータについても、上述したような手法、あるいはその他の手法により、コアCPU３５等からのアクセスを制限することができる。
【００３１】
DSP３３は、独立した信号処理プロセッサであり、所定の演算処理を実行することができる。なお、図４では、DSP３３は一つしか示していないが、複数あってもよい。  
また、DSP３３は、少なくとも２つの動作モードでプログラムの実行が可能である。動作モードの設定は、コアCPU３５からのコマンドによって設定可能である。１つは、通常のモードであり、他の一つは、アイソレートモードである。DSP３３がアイソレートモードに設定されると、RAM４２の一部の記憶領域４２bはDSP３３の外部からは全くアクセスできないアイソレート領域になるようハードウェアでコントロールされ、この記憶領域４２bを使用してデコード処理ブロック４３が指定されたDSP３３外部のメモリ上のデータに対して、記憶領域４１の暗号鍵を用いて認証ならびにデコードを行う。データが正しく認証されると、そのデータはプログラムとして実行可能となる。アイソレートモード時に外部とのデータのやりとりを行うために、記憶部であるローカルメモリ４２の中に、アイソレートモード時にもコアCPU３５等からもアクセスしてデータを読み出せる記憶領域４２ａを有する。  
デコード処理部としてのデコード処理ブロック４３は、アイソレートモードにおいて、記憶領域４１から暗号鍵を読み出し、暗号化されたデータをその読み出した暗号鍵を用いて認証ならびにデコードする。そして、アイソレートモードでは、DSP３３の外部から、例えば、コアCPU３５からは、暗号鍵を読み出すことができない。デコード処理ブロック４３は、後述するような手順により、DSP３３の外部から暗号鍵を読み出せない状態において、デコード処理を行い、暗号化されたデータを認証し、デコードすることができる。
【００３２】
コアCPU３５は、システムバス２６からのコマンドに応じて、種々のプログラムを実行することができる。さらに、コアCPU３５は、所定のコマンドに応じて、暗号化されたコンテンツをデコード処理するように、DSP３３をアイソレートモードに設定して、デコード処理をデコード処理ブロック４３に実行させることができる。
【００３３】
暗号化されたコンテンツをデコードするためのデコードプログラムDECは、サーバ１１から端末１２に送信され、記憶装置１５に記憶される。デコードプログラムDECも暗号化されて端末１２へ送信される。ユーザがコンテンツを視聴するために配信要求をサーバ１１へ送信し、端末１２が暗号化されたコンテンツを受信すると、コアCPU３５は、DSP３３をアイソレートモードに設定し、所定のコマンドをDSP３３に供給する。その結果、DSP３３は、所定のコマンドに基づいて、デコード処理ブロック４３を動作させデコードプログラムDECのデコード処理を実行し、デコードされたデコードプログラムDECにより、受信したコンテンツはデコードされる。
【００３４】
なお、デコードプログラムDECは、サーバ１１から予め提供されて、記憶装置１５に記憶されていてもよいし、コンテンツの配信時に併せて配信されてもよい。
【００３５】
（端末１２Aにおけるコンテンツのデコード処理）
図５は、端末１２Aからのコンテンツの配信要求があったときのデータの流れを説明するための図である。
【００３６】
コンテンツＸの配信要求が、端末１２Aからあったとき、サーバ１１は、記憶装置１４のコンテンツ格納部１４ａに記憶されているコンテンツXを、端末１２Aの暗号鍵αを用いて、エンコードプログラムENCによりエンコードして、暗号化されたコンテンツ［X］αを生成する。図５では、データを、端末１２Aの暗号鍵αを用いて暗号化するエンコードプログラムは、ENC(α)で示されている。
【００３７】
さらに、サーバ１１は、端末１２Aに、暗号化されたコンテンツ［X］αをデコードするためのデコードプログラムDECを、端末１２Aの暗号鍵αを用いて暗号化して、暗号化されたデコードプログラム［DEC］αを生成する。
【００３８】
それぞれ暗号化されたコンテンツ［X］αとデコードプログラム［DEC］αは、サーバ１１から端末１２Aへ送信され、記憶装置１５に記憶される。以下、暗号鍵αで暗号化されたコンテンツXとデコードプログラムDECは、それぞれコンテンツ［X］αとデコードプログラム［DEC］αと表記する。
【００３９】
暗号化されたコンテンツ［X］αを受信すると、端末１２Aでは、コアCPU３５が、DSP３３をアイソレートモードに設定し、DSP３３にデコード処理を実行させる。
【００４０】
さらに、図６及び図７を用いて、デコード処理ブロック４３により、暗号化されたコンテンツ［X］αが、暗号鍵αを用いてデコードされる手順を説明する。図６は、デコード処理ブロック４３の処理手順を説明するための図である。図７は、デコード処理ブロック４３の処理の流れの例を示すフローチャートである。
【００４１】
はじめに、コアCPU３５は、それぞれが暗号化されたコンテンツ［X］αとデコードプログラム［DEC］αとを、記憶装置１５から読み出して、オープン領域４２ａに書き込む。もしくはコアCPU３５は暗号化されたコンテンツが置かれているDSP３３外部のアドレスをDSP３３に通知し、DSP３３にオープン領域４２aにそれぞれが暗号化されたコンテンツ［X］αとデコードプログラム［DEC］αとを、記憶装置１５から読み出させて、オープン領域４２ａに書き込ませる（ステップS1）。
【００４２】
そして、DSP３３は、アイソレートモードにおいて、デコード処理ブロック４３はアイソレート領域４２ｂを使用して、デコード処理を実行する。
【００４３】
デコード処理ブロック４３は、まず、オープン領域４２ａに記憶されたデコードプログラム［DEC］αをアイソレート領域４２ｂにコピーする（ステップS2）。
【００４４】
デコード処理ブロック４３は、暗号鍵αを記憶領域４１から読み出し、その読み出した暗号鍵αを用いて、暗号化されたデコードプログラム［DEC］αをデコードして、デコードプログラムDECを生成し、アイソレート領域４２ｂに記憶する（ステップS3）。
【００４５】
次に、デコード処理ブロック４３は、アイソレート領域４２ｂに記憶されたデコードプログラムDECを実行して、オープン領域４２ａに記憶されたコンテンツ［X］αをデコードしてコンテンツＸを生成し、その生成したコンテンツＸをオープン領域４２ａに記憶する（ステップS4）。図５では、デコードプログラムDECが暗号鍵αを用いてデコードするプログラムをDEC（α）で示している。
【００４６】
オープン領域４２ａに記憶されたコンテンツＸは、コアCPU３５によって読み出されて、RAM２３等へ出力されることによって、コンテンツは、ユーザにより視聴可能となる。通常は、オープン領域にはHDCP(High-bandwidth Digital Content Protection)で保護された上でデコードされたコンテンツデータが置かれる。
【００４７】
なお、暗号化されたコンテンツ［X］αは、データ量が多いため、先頭から順番に所定のデータ分だけ読み出されて、その読み出されたデータに対して、上述したステップS1からS4の処理が行われる。
【００４８】
なお、本実施の形態ではデコードプログラムとコンテンツは両方とも暗号鍵αによって暗号化されている場合を想定しているが、コンテンツは暗号鍵αとは別の暗号鍵α’でエンコードされていても良い。その場合には、デコードプログラムの中に鍵となる暗号鍵α’が埋め込まれていて、デコードプログラムがその暗号鍵α’を使用してコンテンツをデコードする。
【００４９】
なお、端末１２Aのユーザは、購入等したコンテンツを自分のハードディスク等の記憶装置１５に蓄えておくことができ、必要なときに見ることができるが、蓄えられているデータがコピーされて他のユーザに渡されたとしても、端末１２Aの中にハードウエア的に隠された暗号鍵を知らなければ、復号できない。デコードプログラムが別の暗号鍵α’を使用する場合でも、デコードプログラムはハードウエア的に隠された暗号鍵αを使用して復号され、かつ実行はハードウエア的にアイソレートされたメモリ上で行われるため、暗号鍵α’をユーザが知ることはできない。
【００５０】
（他の端末から同じコンテンツの配信要求があった場合の処理）
端末１２A以外の他の端末、例えば、端末１２Bから、コンテンツXの配信要求があった場合、サーバ１１は、上述したような手順により、それぞれが暗号化されたコンテンツ［X］βとデコードプログラム［DEC］βを、端末１２Bへ送信してもよい。コンテンツ［X］βとデコードプログラム［DEC］βは、それぞれ暗号鍵βを用いて暗号化されたデータを示す。しかし、サーバ１１の負荷が低くなく、かつ端末１２Aからコンテンツ［X］βを送信することが可能であるとき、端末１２Aから端末１２Bへコンテンツ［X］βを送信することができれば、サーバ１１の負荷は低減される。そこで、本実施の形態のデータ配信システム１では、端末１２Aから端末１２Bにコンテンツを送れるように構成されている。
【００５１】
次に、図８及び図９を用いて、端末１２Aへコンテンツ［X］αを送信済みで、既に端末１２Aがコンテンツ［X］αを有している場合、端末１２Bから同じコンテンツXの配信要求があった場合におけるサーバ１１の処理の流れの例を説明する。図８は、端末からコンテンツの配信要求があった場合におけるサーバ１１の処理の流れの例を示すフローチャートである。図９は、端末１２Bからのコンテンツの配信要求があったときのデータの流れを説明するための図である。  
サーバ１１は、端末１２からの配信要求を受信すると、まず配信要求に係るコンテンツと同じコンテンツを有している他のユーザすなわち他の端末があるか否かを判断する（ステップS11）。他のユーザすなわち他の端末が、配信要求に係るコンテンツと同じコンテンツを有しているか否かの判断は、配信記録格納部１４ｃを参照することによって行われる。
【００５２】
ここでは、端末１２BからコンテンツＸについての配信要求であり、他のユーザである端末１２Aが同じコンテンツXを有しているので、ステップS11でYESとなる。端末１２Aは、コンテンツX（正確には、暗号化されたコンテンツ［Ｘ］α）を、有している。そこで、サーバ１１は、以下の処理により、端末１２Aに、端末１２BへコンテンツXを送信させるが、送信されるコンテンツは、端末１２Bにおいて暗号鍵βを用いてデコードできるコンテンツ［X］βである。
【００５３】
なお、サーバ１１は、端末１２Aが端末１２Bへコンテンツを送信するのに必要な種々の情報の交換を、通信により行い、端末１２Aがコンテンツを送信できる状態にあるのかの確認処理、及び送信先である端末１２Bの送信先アドレス等の情報の提供処理が事前に行われる。
【００５４】
ステップS11でYESとなると、サーバ１１は、配信要求先である端末１２Bにおいて暗号化されたコンテンツをデコードできるようにするエンコードプログラムを、生成する(ステップS12)。  
ステップS12において生成されるエンコードプログラムは、端末１２Aから受信したコンテンツを端末１２Bにおいて暗号鍵βを用いてデコードできるように、コンテンツXを暗号化するエンコードプログラムENC（β）である。より具体的には、エンコードプログラムENC（β）は、端末１２Aにおいて、暗号化されたコンテンツ（X）αを暗号鍵αを用いてデコードしてコンテンツXを生成する第１の生成処理と、そのコンテンツXを端末１２Bにおいて端末１２Bの暗号鍵βを用いてデコードできるように、暗号鍵βを用いて暗号化したコンテンツ［X］βを生成する第２の生成処理を行うプログラムである。
【００５５】
次に、サーバ１１は、コンテンツXを有している端末１２Aの暗号鍵αを用いて、そのエンコードプログラムENC（β）を暗号化し、暗号化されたエンコードプログラム［ENC（β）］αを生成する（ステップS13）。これにより、エンコードプログラムENC（β）の秘密性は保たれる。
【００５６】
そして、サーバ１１は、暗号化したエンコードプログラム［ENC（β）］αを端末１２Aへ送信すると共に、エンコードプログラムENC（β）の実行により得られた暗号化されたコンテンツ（X）βを、端末１２Bへ送信を指示する所定のコマンドも端末１２Aへ送信する（ステップS14）。
【００５７】
すなわち、ステップS13とS14が、端末１２Aへ送信した暗号化されたデータと同じデータの配信要求が端末１２Bからあった場合に、端末１２Bにおいて端末１２Bの暗号鍵を用いてデコードできるように、端末１２Aにおいて配信要求に係るデータを暗号化するエンコードプログラムを、端末１２Aの暗号鍵を用いて暗号化して端末１２Aへ送信するエンコードプログラム送信部を構成する。
【００５８】
なお、ステップS11においてNOの場合、すなわち他の端末が同じコンテンツを有していない場合は、サーバ１１は、コンテンツXを配信要求の端末１２Bの暗号鍵βを用いて暗号化し（ステップS15）、暗号化したコンテンツ［X］βを端末１２Bへ送信する（ステップS16）。ステップS15とS16が、サーバ１１から端末１２へ暗号化したデータ、ここではコンテンツを送信するデータ送信部を構成する。
【００５９】
次に、ステップS14において送信された上述した所定のコマンドを受信した端末１２Aにおける処理について説明する。  
図１０は、端末１２AにおけるCPU２１の処理の流れの例を示すフローチャートである。図１１は、デコード処理ブロック４３の処理手順を説明するための図である。
【００６０】
所定のコマンドを受信すると、CPU２１のコアCPU３５は、暗号化されたエンコードプログラム［ENC（β）］αと、暗号化されたデコードプログラム［DEC］αと、暗号化されたコンテンツ［X］αとを、記憶装置１５から読み出して、オープン領域４２ａに書き込み、DSP３３の動作モードをアイソレートモードに設定し、暗号化されたエンコードプログラム［ENC（β）］αを、暗号鍵αを用いてデコードする処理をDSP３３に実行させる（ステップS21）。
【００６１】
このとき、暗号化されたエンコードプログラム［ENC（β）］αは、アイソレート領域４２ｂにコピーされて書き込まれ、デコード処理ブロック４３により暗号鍵αを用いてデコードされてエンコードプログラムENC（β）が生成されてアイソレート領域４２ｂに書き込まれる。
【００６２】
次に、コアCPU３５は、デコードされたエンコードプログラムENC（β）をDSP３３に実行させる（ステップS22）。上述したように、エンコードプログラムENC（β）は、暗号化されたコンテンツ［X］αを、暗号鍵αを用いてデコードしてコンテンツXを生成する第１の生成処理と、生成されたコンテンツXを、暗号鍵βを用いて暗号化して、コンテンツ［X］βを生成する第２の生成処理を含む。
【００６３】
エンコードプログラムENC（β）は、まず、デコード処理ブロック４３を利用して、上述した第１の生成処理を実行する。第１の生成処理は、端末１２Aにおいて暗号化されたコンテンツ［X］αをデコードしてコンテンツXを生成するときの上述した処理と同様である。
【００６４】
図１１では、アイソレート領域４２ｂのエンコードプログラムENC（β）における、暗号化されたコンテンツ［X］αを、暗号鍵αを用いてデコードしてコンテンツXを生成する第１の生成処理を実行する部分は、点線で示されている。
【００６５】
次に、ステップS22において、エンコードプログラムENC（β）は、そのコンテンツXを端末１２Bにおいて端末１２Bの暗号鍵βを用いてデコードできるように、コンテンツXを、暗号鍵βを用いて暗号化して、コンテンツ［X］βを生成する第２の生成処理を実行する。エンコードプログラムENC（β）は、アイソレートモードで、DSP３３内において実行されるので、端末１２Aにおいても暗号鍵βの秘密性は保たれる。
【００６６】
ステップS21とS22が、暗号化されたエンコードプログラム［ENC（β）］αを受信すると、外部からのアクセスができない状態において暗号化されたエンコードプログラム［ENC（β）］αを端末１２Aの暗号鍵αを用いてデコードして実行することによって、暗号化されたコンテンツ［X］αをデコードして、さらに端末１２Bの暗号鍵βを用いてエンコードして暗号化されたコンテンツ［X］βを生成するデータエンコード部を構成する。
【００６７】
なお、上述したように、コンテンツ［X］αのデータ量は、通常大きいため、ステップS22において、コンテンツ［X］αのデコード処理が行われながら、コンテンツ［X］βの生成処理が実行される。  
暗号化されたコンテンツ［X］βが生成されて、オープン領域４２ａに書き込まれる。
【００６８】
コアCPU３５は、暗号化されたコンテンツ［X］βを、端末１２Bへ送信する（ステップS23）。ステップS23が、端末１２Bの暗号鍵βを用いてエンコードされて暗号化されたコンテンツ［X］βを、端末１２Bへ送信するデータ送信部を構成する。
【００６９】
図９に示すように、端末１２Bは、端末１２Aから、暗号化されたコンテンツ［X］βを受信する。端末１２Bは、暗号化されたデコードプログラム［DEC］βを既に有しており、受信した暗号化されたコンテンツ［X］βを、デコードプログラム［DEC］βによりデコードすることにより、コンテンツXをユーザは視聴することができる。暗号化されたコンテンツ［X］βから、デコードプログラム［DEC］βによりコンテンツXをデコードする処理は、上述した端末１２Aにおいて、暗号化されたコンテンツ［X］αをデコードしてコンテンツXを生成するときの上述した処理と同様である。
【００７０】
また、端末１２Bのユーザも、購入等したコンテンツを自分のハードディスク等の記憶装置１５に蓄えておくことができ、必要なときに見ることができるが、蓄えられているデータがコピーされて他のユーザに渡されたとしても、端末１２Bの中にハードウエア的に隠された暗号鍵を知らなければ、復号できない。
【００７１】
以上のように、上述したデータ配信システムでは、同じデータを配信する場合でも、ユーザによって異なる暗号鍵を使って暗号化されたデータが送られるため、送られたデータをコピーしたとしても他のユーザが復号することができず、データを違法にコピーして使用することができなくなる。
【００７２】
さらに、サーバはデータをユーザ毎に違った暗号鍵を使用して暗号化しながらデータを配信しなければならないため、サーバの負荷は大きくなる。しかし、上述したように、配信要求に係るデータを既に持っているユーザすなわち端末装置に、他のユーザのための暗号化プログラムを暗号化して送付して実行するようにしたので、サーバの暗号化の負荷ならびにデータ転送のための負荷を分散させることができるようになる。その結果、サーバの負荷を低減することができる。
【００７３】
以上のように、上述した本実施の形態に係るデータ配信システムによれば、配信要求に係るデータを既に有している端末から、そのデータの配信を要求する他の端末へ、暗号鍵の秘密性を担保しつつ、送信するようにして、サーバ１１の負荷を低減することができる。
【００７４】
なお、上述した例では、エンコードプログラムENC（β）は、暗号化されたコンテンツ（X）αをデコードする処理も含まれているが、暗号化されたコンテンツ（X）αをデコードする処理をエンコードプログラムENC（β）に含めずに、端末１２Aが、エンコードプログラムENC（β）を実行する前に、端末１２Aの有するデコードプログラムDEC（α）によりコンテンツ（X）αをデコードさせてもよい。
【００７５】
また、上述した例では、配信要求に係るコンテンツを一つの端末から、配信要求を出した端末へ送信しているが、配信要求に係るコンテンツを複数の端末が有している場合は、サーバは、コンテンツを分割して、各端末に割り当て、割り当てられたコンテンツの部分を配信要求を出した端末へ送信させるようにしてもよい。
【００７６】
また、上述した例のシステムでは、データは全て暗号化されて配信されているが、データの全てではなく、一部を暗号化して配信する場合にも、上述したシステムは適用可能である。
【００７７】
なお、本明細書における各「部」は、実施の形態の各機能に対応する概念的なもので、必ずしも特定のハードウエアやソフトウエア・ルーチンに１対１には対応しない。従って、本明細書では、以下、実施の形態の各機能を有する仮想的回路ブロック（部）を想定して実施の形態を説明した。また、本実施の形態における各手順の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、あるいは実行毎に異なった順序で実行してもよい。
【００７８】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【００７９】
【図１】本発明の実施の形態に係わるデータ配信システムの構成を示す構成図である。
【図２】本発明の実施の形態に係わる暗号鍵テーブルの構成例を示す図である。
【図３】本発明の実施の形態に係わる各端末の構成例を示す構成図である。
【図４】本発明の実施の形態に係わるCPUの構成を示すブロック図である。
【図５】本発明の実施の形態に係わる、端末からのコンテンツの配信要求があったときのデータの流れを説明するための図である。
【図６】本発明の実施の形態に係わる、デコード処理ブロックの処理手順を説明するための図である。
【図７】本発明の実施の形態に係わる、デコード処理ブロックの処理の流れの例を示すフローチャートである。
【図８】本発明の実施の形態に係わる、端末からコンテンツの配信要求があった場合におけるサーバの処理の流れの例を示すフローチャートである。
【図９】本発明の実施の形態に係わる、端末からのコンテンツの配信要求があったときのデータの流れを説明するための図である。
【図１０】本発明の実施の形態に係わる、端末におけるCPUの処理の流れの例を示すフローチャートである。
【図１１】本発明の実施の形態に係わる、デコード処理ブロックの処理手順を説明するための図である。
【符号の説明】
【００８０】
１  データ配信システム、１１  サーバ、１２  端末装置、１３  ネットワーク、１４、１５  記憶装置、１４ａ  コンテンツ格納部、１４ｂ  暗号鍵テーブル、１４ｃ  配信記録格納部、２１  ＣＰＵ、３４  シーケンサ
【図１】
2009194462.tif 000003
【図２】
2009194462.tif 000004
【図３】
2009194462.tif 000005
【図４】
2009194462.tif 000006
【図５】
2009194462.tif 000007
【図６】
2009194462.tif 000008
【図７】
2009194462.tif 000009
【図８】
2009194462.tif 000010
【図９】
2009194462.tif 000011
【図１０】
2009194462.tif 000012
【図１１】
2009194462.tif 000013