説明

暗号化データ配信方法及び暗号化データ配信システム

【課題】暗号鍵の秘密性を担保しつつ、既にデータを有する端末装置から、そのデータを要求する他の端末装置へそのデータを送信するようにして、センタ装置の負荷を低減することができる暗号化データ配信方法を提供する。
【解決手段】サーバ11は、第1の端末装置へ送信した暗号化されたデータと同じデータの配信要求が第2の端末装置からあった場合に、第2の端末装置においてデコードできるように、第1の端末装置において配信要求に係るデータを暗号化するエンコードプログラムを、第1の端末装置の暗号鍵を用いて暗号化して前記第1の端末装置へ送信する。第1の端末装置は、外部からのアクセスができない状態において暗号化されたエンコードプログラムを第1の端末装置の暗号鍵を用いてデコードして実行し、第2の端末装置の暗号鍵を用いてエンコードされて暗号化されたデータを第2の端末装置へ送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化データ配信方法及び暗号化データ配信システムに関し、特に、複数の端末装置へ暗号化されたデータを配信する暗号化データ配信方法及び暗号化データ配信システムに関する。
【背景技術】
【0002】
従来より、インターネットを使用した映画、音楽等のデータを配信するサービスが提供されている。配信を適切に行うために、センタ装置は、ユーザの端末装置に対する認証処理を行い、データにプロテクトをかけて、データの配信を行う方法が行われている。
そのような方法の場合、一旦、そのデータのプロテクトが破られてしまうと、誰でもコンテンツの内容を見ることができてしまうという問題がある。また、公開鍵方式によるデータの暗号化を行っても、秘密鍵がコピーされれば、誰でもデータの内容を見ることができてしまう。
【0003】
そこで、ユーザ毎に異なる暗号鍵を用いて暗号化されたデータを配信する技術が提案されている(例えば、特許文献1参照)。その提案によれば、ある特定のユーザのハードウエアのみでデータの復号が可能であり、かつハードウェアプロテクションによって、暗号鍵をユーザが知ることができないため、データをコピーしても他のユーザは復号することができなくなる。
【0004】
しかし、センタ装置は、多くのユーザの端末装置からのデータの配信要求に応じて、データの配信を行わなければならないため、処理負荷が高くなる場合がある。そのような処理負荷が高くなると、全てのユーザに対して、応答性よくデータ配信サービスを提供できなくなる虞がある。例えば、データ配信要求の頻度の高いコンテンツ、例えば人気のある映画、eラーニングの教材、等、については、同じデータを要求のあった全てのユーザの端末に配信しなければならないために、センタ装置の負荷は、そのコンテンツのためだけに、高負荷状態となってしまうことになる。
上述した提案においては、そのような同じコンテンツのデータ配信により、負荷が高くなるという問題については何ら考慮されていない。
【特許文献1】特開2005-80185号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、以上のような問題に鑑みてなされたものであり、暗号鍵の秘密性を担保しつつ、既にデータを有する端末装置から、そのデータを要求する他の端末装置へそのデータを、送信するようにして、センタ装置の負荷を低減することができる暗号化データ配信方法及び暗号化データ配信システムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様によれば、センタ装置から複数の端末装置へデータの配信を行うためにデータの配信を行う方法であって、前記センタ装置へデータの配信要求を送信した第1の端末装置へ、各端末装置の識別情報と暗号鍵の情報を格納する暗号鍵情報格納部に格納された前記第1の端末装置の暗号鍵を直接的又は間接的に用いて前記配信要求に係るデータを暗号化して送信し、前記第1の端末装置へ送信した暗号化されたデータと同じデータの配信要求が第2の端末装置からあった場合に、前記第2の端末装置において前記第2の端末装置の暗号鍵を用いてデコードできるように、前記第1の端末装置において前記配信要求に係るデータを暗号化するエンコードプログラムを、前記第1の端末装置の暗号鍵を用いて暗号化して前記第1の端末装置へ送信し、前記第1の端末装置に設けられたプロセッサに設けられたデータエンコード部によって、暗号化されたエンコードプログラムを受信すると、外部からのアクセスができない状態において前記暗号化されたエンコードプログラムを前記第1の端末装置の暗号鍵を用いてデコードして実行して、前記暗号化されたデータをデコードして、さらに前記第2の端末装置の暗号鍵を用いてエンコードし、前記第1の端末装置に設けられたデータ送信部によって、前記第2の端末装置の暗号鍵を用いてエンコードされて暗号化されたデータを、前記第2の端末装置へ送信する暗号化データ配信方法を提供することができる。
【発明の効果】
【0007】
本発明に係る暗号化データ配信方法及び暗号化データ配信システムによれば、暗号鍵の秘密性を担保しつつ、既にデータを有する端末装置から、そのデータを要求する他の端末装置へそのデータを送信するようにして、センタ装置の負荷を低減することができる。
【発明を実施するための最良の形態】
【0008】
以下、図面を参照して本発明の実施の形態を説明する。
まず図1に基づき、本実施の形態に係わるデータ配信システムの構成を説明する。図1は、本実施の形態に係わるデータ配信システムの構成を示す構成図である。
データ配信システム1は、センタ装置としてのサーバ11と、それぞれがユーザ端末装置としての複数の端末装置(以下単に端末という)12から構成される。サーバ11と、各端末12は、インターネットであるネットワーク13を介して接続され、相互に通信可能となっている。
【0009】
データ配信システム1では、AESなどの共通鍵を用いてデータが暗号化される。データ配信において、配信するデータの全部または一部をユーザ毎に固有に持つハードウエア暗号鍵を直接的にまたは間接的に用いて暗号化した上でデータが配信される。
【0010】
以下、配信されるデータとして映画のコンテンツデータ(以下、単にコンテンツという)が、ユーザからの配信要求に応じて、インターネットを介して、サーバ11から、端末12へ配信される例を説明するが、配信されるデータは、映画のコンテンツだけでなく、音楽のデータ、ゲームプログラム等でもよく、また、ネットワークも、インターネットでなく、WANあるいはLANでも、専用線、公衆回線等の通信線でもよい。
【0011】
また、サーバ11は、通常のサーバ装置でもよいし、規模の大きな大型コンピュータ等でもよい。さらに、端末も、パーソナルコンピュータでもよいし、主たる機能がゲーム装置であるコンピュータでもよい。
【0012】
サーバ11には、記憶装置14が接続されている。記憶装置14には、複数のコンテンツを格納するコンテンツ格納部14aと、各ユーザのすなわち各端末12の、識別子すなわち識別情報(以下、IDという)と、そのIDに対応付けられたユーザ毎の暗号鍵の情報とを含む暗号鍵テーブル14bとが、記憶されている。暗号鍵テーブル14bは、各端末のIDの情報と暗号鍵の情報を格納する暗号鍵情報格納部を構成する。さらに、記憶装置14は、サーバ11から配信したコンテンツの配信記録の情報を記憶する配信記録格納部14cも有する。配信記録の情報は、端末12毎に、配信したコンテンツの情報を記録した情報である。また、各端末12にも、記憶装置15が接続されている。
【0013】
ユーザは、端末12からサーバ11へ、視聴したいコンテンツの配信要求を、所定の手順により送信する。配信要求には、端末12のIDと、コンテンツを特定する情報が含まれる。サーバ11は、暗号鍵テーブル14bを参照して、そのユーザからの配信要求に含まれるIDに基づき暗号鍵を特定し、その暗号鍵を用いて、配信要求のあったコンテンツを暗号化してユーザの端末12へ、暗号化したすなわちエンコードしたコンテンツを送信する。ユーザの端末12では、配信されたコンテンツは記憶装置15に記憶される。
【0014】
そして、暗号化されたコンテンツは、端末12の有する暗号鍵を用いて復号化すなわちデコードされ、ユーザは、端末12に接続されたモニタ及びスピーカにより、映画のコンテンツを視聴することができる。各端末12は、端末毎に予め設定された暗号鍵を有するが、ユーザは、その暗号鍵を読み出すことができないようになっている。暗号鍵が読み出せないようになっている構成については後述する。
【0015】
以上のように、各ユーザは、試聴を希望するコンテンツの配信要求を端末12からサーバ11へインターネットを介して送信すると、サーバ11は、その端末12へ、その端末について予め設定された暗号鍵により暗号化したコンテンツを送信する。
【0016】
図2は、記憶装置14に記憶される暗号鍵テーブル14bの構成例を示す図である。
暗号鍵情報格納部である暗号鍵テーブル14bは、各ユーザ言い換えると各端末12のID毎に対応する暗号鍵の情報を保持するテーブルである。図2は、IDがAである端末12には、暗号鍵αが対応し、IDがBである端末12には、暗号鍵βが対応し、IDがCである端末12には、暗号鍵γが対応していることを示している。
よって、サーバ11は、配信要求のコマンドに含まれる端末12のIDに基づいて、暗号鍵テーブル14bから暗号鍵を抽出することができる。
【0017】
各端末は、固有のIDおよび暗号鍵を有し、IDと暗号鍵の対応情報は、サーバ11を管理するシステムベンダーのみが管理する。後述するように、ハードウェア的な保護により、ユーザはIDの情報を得ることができても、暗号鍵そのものを知ることはできない。
【0018】
図3は、各端末12の構成例を示す構成図である。端末12は、中央処理装置(以下、CPUという)21と、ROM22と、RAM23と、表示装置としての液晶表示装置(以下、LCDという)24と、キーボード、マウス等の入力装置25とを含む。また、端末12は、ハードディスク装置(以下、HDDという)等の記憶装置15と接続するためのインターフェース回路(以下、I/Fと略す)15aを有する。さらに、端末12はネットワーク13に接続するための通信用のI/F13aも有している。CPU21と、ROM22と、RAM23と、LCD24と、入力装置25と、記憶装置15と、ネットワーク13とは、互いにシステムバス26を介して接続されている。また、LCD24と、入力装置25と、記憶装置15と、ネットワーク13は、それぞれ、インターフェース回路(以下、I/Fと略す)24a,25a,15a、13aを介して、システムバス26に接続されている。
ユーザは、入力装置25を操作して、サーバ11へアクセスし、試聴を希望するコンテンツを特定し、そのコンテンツの配信要求を送信することができる。
なお、配信要求の送信は、サーバ11から送信される画面を用いて行うようにしてもよいし、ROM22等に予め記憶されているプログラムを用いて行うようにしてもよい。
【0019】
そして、端末12は、サーバ11からI/F13aを介して受信したコンテンツを記憶装置15に一旦記憶する。端末12のCPU21が、記憶装置15から読み出したコンテンツ、すなわち暗号化されているコンテンツをデコードして、LCD24及びスピーカ(図示せず)によりユーザが試聴できるようにする。
【0020】
例えば、IDがAである端末12(以下、端末12Aという)からサーバ11へ配信要求が送信されると、サーバ11は、暗号鍵テーブル14bを参照して、端末12Aの暗号鍵はαであることが認識することができる。サーバ11は、配信要求のあったコンテンツXを端末12Aに対する暗号鍵αで暗号化して、暗号化されたコンテンツ[X]αを、配信要求のあった端末12へ送信する。
【0021】
端末12は、I/F13aを介して受信した、暗号化されたコンテンツ[X]αを、記憶装置15に記憶する。CPU21は、記憶装置15に記憶された、暗号化されたコンテンツ[X]αを、暗号鍵αでデコードして、コンテンツXを生成することによって、LCD24及びスピーカ(図示せず)により、ユーザが試聴可能となる。
【0022】
また、後述するように、端末12Aは、サーバ11からの指示の下で、IDがBである端末12(以下、端末12Bという)に、端末12Bのために暗号化されたコンテンツ[X]βを送信することができる。
【0023】
図4は、CPU21の構成を示すブロック図である。
CPU21は、PROM(Programmable Read Only Memory)コントローラ31と、PROM32と、信号処理プロセッサ(DSP: Digital Signal Processor、以下、DSPと略す)33と、シーケンサ回路(以下、シーケンサという)34と、コアCPU35と、I/F36を含む。DSP33と、シーケンサ34と、コアCPU35と、I/F36とは、それぞれローカルバス37に接続され、互いにデータの送受信ができるようになっている。
【0024】
DSP33は、演算部40と、暗号鍵を記憶するための記憶領域41と、DSP33内部における処理に用いる作業用記憶領域としてのローカルメモリ42と、暗号鍵を用いて渡されたプログラムやデータの認証ならびにデコードを行う、デコード処理ブロック43を有して構成されている信号処理プロセッサである。記憶領域41とローカルメモリ42は、RAMの記憶領域を有するDSP33の記憶部であり、デコード処理部としてのデコード処理ブロック43は、上述した認証及びデコードの処理を行う実行部である。
【0025】
シーケンサ34は、内部にIDを記憶するための記憶領域44を有する。記憶領域44は、RAMの記憶領域である。
【0026】
PROM32は、一回だけ所定のデータを書き込むことが可能な、不揮発性メモリである。PROMコントローラ31は、PROM32に、その所定のデータを書き込むための制御回路である。
【0027】
PROMコントローラ31によってPROM32に書き込まれる所定のデータは、本実施の形態では、そのCPU21(あるいはCPU21が搭載される端末12)について予め決められたIDと暗号鍵32aである。IDは、各端末12を識別するためのデータであり、暗号鍵は、暗号化されたコンテンツを復号するために必要な、各端末12について予め決められたキーデータである。
【0028】
IDと暗号鍵32aは、例えば、CPU21の製造時あるいは出荷時に、PROMコントローラ31によって、PROM32に書き込まれる。
PROM32中のIDと暗号鍵32aは、CPU21のリセット時に、記憶領域44と記憶領域41にそれぞれコピーされる。端末12の電源が落とされると、各RAM中のデータである暗号鍵とIDは消去される。
【0029】
PROMコントローラ31は、PROM32に対して、データを書き込む処理を行うだけであり、PROM32に書かれたデータは読み出すことができないように構成されている。例えば、外部からのスキャン信号をPROM32中のある値により制御されるようにして、PROM32に書かれたデータを、外部からのスキャン信号によっても読み出すことができないようにすることができる。具体的には、IDと暗号鍵32aをPROM32に書き込んだ後に、初期値ではスキャン可能にし、それ以降のスキャンは、PROM32によって制御して、PROM32に書かれたデータを読み出すことができないようにすることができる。PROM32は、CPU21の内部回路であるコアCPU35等からも、さらに外部からもアクセスできず、読み出すことはできない。
【0030】
また、記憶領域44に書き込まれたIDは、コアCPU35等によってアクセスでき、読み出すことはできるが、記憶領域41に書き込まれた暗号鍵は、コアCPU35等によってもアクセスできず、読み出すことはできない。記憶領域41に書き込まれた暗号鍵のデータについても、上述したような手法、あるいはその他の手法により、コアCPU35等からのアクセスを制限することができる。
【0031】
DSP33は、独立した信号処理プロセッサであり、所定の演算処理を実行することができる。なお、図4では、DSP33は一つしか示していないが、複数あってもよい。
また、DSP33は、少なくとも2つの動作モードでプログラムの実行が可能である。動作モードの設定は、コアCPU35からのコマンドによって設定可能である。1つは、通常のモードであり、他の一つは、アイソレートモードである。DSP33がアイソレートモードに設定されると、RAM42の一部の記憶領域42bはDSP33の外部からは全くアクセスできないアイソレート領域になるようハードウェアでコントロールされ、この記憶領域42bを使用してデコード処理ブロック43が指定されたDSP33外部のメモリ上のデータに対して、記憶領域41の暗号鍵を用いて認証ならびにデコードを行う。データが正しく認証されると、そのデータはプログラムとして実行可能となる。アイソレートモード時に外部とのデータのやりとりを行うために、記憶部であるローカルメモリ42の中に、アイソレートモード時にもコアCPU35等からもアクセスしてデータを読み出せる記憶領域42aを有する。
デコード処理部としてのデコード処理ブロック43は、アイソレートモードにおいて、記憶領域41から暗号鍵を読み出し、暗号化されたデータをその読み出した暗号鍵を用いて認証ならびにデコードする。そして、アイソレートモードでは、DSP33の外部から、例えば、コアCPU35からは、暗号鍵を読み出すことができない。デコード処理ブロック43は、後述するような手順により、DSP33の外部から暗号鍵を読み出せない状態において、デコード処理を行い、暗号化されたデータを認証し、デコードすることができる。
【0032】
コアCPU35は、システムバス26からのコマンドに応じて、種々のプログラムを実行することができる。さらに、コアCPU35は、所定のコマンドに応じて、暗号化されたコンテンツをデコード処理するように、DSP33をアイソレートモードに設定して、デコード処理をデコード処理ブロック43に実行させることができる。
【0033】
暗号化されたコンテンツをデコードするためのデコードプログラムDECは、サーバ11から端末12に送信され、記憶装置15に記憶される。デコードプログラムDECも暗号化されて端末12へ送信される。ユーザがコンテンツを視聴するために配信要求をサーバ11へ送信し、端末12が暗号化されたコンテンツを受信すると、コアCPU35は、DSP33をアイソレートモードに設定し、所定のコマンドをDSP33に供給する。その結果、DSP33は、所定のコマンドに基づいて、デコード処理ブロック43を動作させデコードプログラムDECのデコード処理を実行し、デコードされたデコードプログラムDECにより、受信したコンテンツはデコードされる。
【0034】
なお、デコードプログラムDECは、サーバ11から予め提供されて、記憶装置15に記憶されていてもよいし、コンテンツの配信時に併せて配信されてもよい。
【0035】
(端末12Aにおけるコンテンツのデコード処理)
図5は、端末12Aからのコンテンツの配信要求があったときのデータの流れを説明するための図である。
【0036】
コンテンツXの配信要求が、端末12Aからあったとき、サーバ11は、記憶装置14のコンテンツ格納部14aに記憶されているコンテンツXを、端末12Aの暗号鍵αを用いて、エンコードプログラムENCによりエンコードして、暗号化されたコンテンツ[X]αを生成する。図5では、データを、端末12Aの暗号鍵αを用いて暗号化するエンコードプログラムは、ENC(α)で示されている。
【0037】
さらに、サーバ11は、端末12Aに、暗号化されたコンテンツ[X]αをデコードするためのデコードプログラムDECを、端末12Aの暗号鍵αを用いて暗号化して、暗号化されたデコードプログラム[DEC]αを生成する。
【0038】
それぞれ暗号化されたコンテンツ[X]αとデコードプログラム[DEC]αは、サーバ11から端末12Aへ送信され、記憶装置15に記憶される。以下、暗号鍵αで暗号化されたコンテンツXとデコードプログラムDECは、それぞれコンテンツ[X]αとデコードプログラム[DEC]αと表記する。
【0039】
暗号化されたコンテンツ[X]αを受信すると、端末12Aでは、コアCPU35が、DSP33をアイソレートモードに設定し、DSP33にデコード処理を実行させる。
【0040】
さらに、図6及び図7を用いて、デコード処理ブロック43により、暗号化されたコンテンツ[X]αが、暗号鍵αを用いてデコードされる手順を説明する。図6は、デコード処理ブロック43の処理手順を説明するための図である。図7は、デコード処理ブロック43の処理の流れの例を示すフローチャートである。
【0041】
はじめに、コアCPU35は、それぞれが暗号化されたコンテンツ[X]αとデコードプログラム[DEC]αとを、記憶装置15から読み出して、オープン領域42aに書き込む。もしくはコアCPU35は暗号化されたコンテンツが置かれているDSP33外部のアドレスをDSP33に通知し、DSP33にオープン領域42aにそれぞれが暗号化されたコンテンツ[X]αとデコードプログラム[DEC]αとを、記憶装置15から読み出させて、オープン領域42aに書き込ませる(ステップS1)。
【0042】
そして、DSP33は、アイソレートモードにおいて、デコード処理ブロック43はアイソレート領域42bを使用して、デコード処理を実行する。
【0043】
デコード処理ブロック43は、まず、オープン領域42aに記憶されたデコードプログラム[DEC]αをアイソレート領域42bにコピーする(ステップS2)。
【0044】
デコード処理ブロック43は、暗号鍵αを記憶領域41から読み出し、その読み出した暗号鍵αを用いて、暗号化されたデコードプログラム[DEC]αをデコードして、デコードプログラムDECを生成し、アイソレート領域42bに記憶する(ステップS3)。
【0045】
次に、デコード処理ブロック43は、アイソレート領域42bに記憶されたデコードプログラムDECを実行して、オープン領域42aに記憶されたコンテンツ[X]αをデコードしてコンテンツXを生成し、その生成したコンテンツXをオープン領域42aに記憶する(ステップS4)。図5では、デコードプログラムDECが暗号鍵αを用いてデコードするプログラムをDEC(α)で示している。
【0046】
オープン領域42aに記憶されたコンテンツXは、コアCPU35によって読み出されて、RAM23等へ出力されることによって、コンテンツは、ユーザにより視聴可能となる。通常は、オープン領域にはHDCP(High-bandwidth Digital Content Protection)で保護された上でデコードされたコンテンツデータが置かれる。
【0047】
なお、暗号化されたコンテンツ[X]αは、データ量が多いため、先頭から順番に所定のデータ分だけ読み出されて、その読み出されたデータに対して、上述したステップS1からS4の処理が行われる。
【0048】
なお、本実施の形態ではデコードプログラムとコンテンツは両方とも暗号鍵αによって暗号化されている場合を想定しているが、コンテンツは暗号鍵αとは別の暗号鍵α’でエンコードされていても良い。その場合には、デコードプログラムの中に鍵となる暗号鍵α’が埋め込まれていて、デコードプログラムがその暗号鍵α’を使用してコンテンツをデコードする。
【0049】
なお、端末12Aのユーザは、購入等したコンテンツを自分のハードディスク等の記憶装置15に蓄えておくことができ、必要なときに見ることができるが、蓄えられているデータがコピーされて他のユーザに渡されたとしても、端末12Aの中にハードウエア的に隠された暗号鍵を知らなければ、復号できない。デコードプログラムが別の暗号鍵α’を使用する場合でも、デコードプログラムはハードウエア的に隠された暗号鍵αを使用して復号され、かつ実行はハードウエア的にアイソレートされたメモリ上で行われるため、暗号鍵α’をユーザが知ることはできない。
【0050】
(他の端末から同じコンテンツの配信要求があった場合の処理)
端末12A以外の他の端末、例えば、端末12Bから、コンテンツXの配信要求があった場合、サーバ11は、上述したような手順により、それぞれが暗号化されたコンテンツ[X]βとデコードプログラム[DEC]βを、端末12Bへ送信してもよい。コンテンツ[X]βとデコードプログラム[DEC]βは、それぞれ暗号鍵βを用いて暗号化されたデータを示す。しかし、サーバ11の負荷が低くなく、かつ端末12Aからコンテンツ[X]βを送信することが可能であるとき、端末12Aから端末12Bへコンテンツ[X]βを送信することができれば、サーバ11の負荷は低減される。そこで、本実施の形態のデータ配信システム1では、端末12Aから端末12Bにコンテンツを送れるように構成されている。
【0051】
次に、図8及び図9を用いて、端末12Aへコンテンツ[X]αを送信済みで、既に端末12Aがコンテンツ[X]αを有している場合、端末12Bから同じコンテンツXの配信要求があった場合におけるサーバ11の処理の流れの例を説明する。図8は、端末からコンテンツの配信要求があった場合におけるサーバ11の処理の流れの例を示すフローチャートである。図9は、端末12Bからのコンテンツの配信要求があったときのデータの流れを説明するための図である。
サーバ11は、端末12からの配信要求を受信すると、まず配信要求に係るコンテンツと同じコンテンツを有している他のユーザすなわち他の端末があるか否かを判断する(ステップS11)。他のユーザすなわち他の端末が、配信要求に係るコンテンツと同じコンテンツを有しているか否かの判断は、配信記録格納部14cを参照することによって行われる。
【0052】
ここでは、端末12BからコンテンツXについての配信要求であり、他のユーザである端末12Aが同じコンテンツXを有しているので、ステップS11でYESとなる。端末12Aは、コンテンツX(正確には、暗号化されたコンテンツ[X]α)を、有している。そこで、サーバ11は、以下の処理により、端末12Aに、端末12BへコンテンツXを送信させるが、送信されるコンテンツは、端末12Bにおいて暗号鍵βを用いてデコードできるコンテンツ[X]βである。
【0053】
なお、サーバ11は、端末12Aが端末12Bへコンテンツを送信するのに必要な種々の情報の交換を、通信により行い、端末12Aがコンテンツを送信できる状態にあるのかの確認処理、及び送信先である端末12Bの送信先アドレス等の情報の提供処理が事前に行われる。
【0054】
ステップS11でYESとなると、サーバ11は、配信要求先である端末12Bにおいて暗号化されたコンテンツをデコードできるようにするエンコードプログラムを、生成する(ステップS12)。
ステップS12において生成されるエンコードプログラムは、端末12Aから受信したコンテンツを端末12Bにおいて暗号鍵βを用いてデコードできるように、コンテンツXを暗号化するエンコードプログラムENC(β)である。より具体的には、エンコードプログラムENC(β)は、端末12Aにおいて、暗号化されたコンテンツ(X)αを暗号鍵αを用いてデコードしてコンテンツXを生成する第1の生成処理と、そのコンテンツXを端末12Bにおいて端末12Bの暗号鍵βを用いてデコードできるように、暗号鍵βを用いて暗号化したコンテンツ[X]βを生成する第2の生成処理を行うプログラムである。
【0055】
次に、サーバ11は、コンテンツXを有している端末12Aの暗号鍵αを用いて、そのエンコードプログラムENC(β)を暗号化し、暗号化されたエンコードプログラム[ENC(β)]αを生成する(ステップS13)。これにより、エンコードプログラムENC(β)の秘密性は保たれる。
【0056】
そして、サーバ11は、暗号化したエンコードプログラム[ENC(β)]αを端末12Aへ送信すると共に、エンコードプログラムENC(β)の実行により得られた暗号化されたコンテンツ(X)βを、端末12Bへ送信を指示する所定のコマンドも端末12Aへ送信する(ステップS14)。
【0057】
すなわち、ステップS13とS14が、端末12Aへ送信した暗号化されたデータと同じデータの配信要求が端末12Bからあった場合に、端末12Bにおいて端末12Bの暗号鍵を用いてデコードできるように、端末12Aにおいて配信要求に係るデータを暗号化するエンコードプログラムを、端末12Aの暗号鍵を用いて暗号化して端末12Aへ送信するエンコードプログラム送信部を構成する。
【0058】
なお、ステップS11においてNOの場合、すなわち他の端末が同じコンテンツを有していない場合は、サーバ11は、コンテンツXを配信要求の端末12Bの暗号鍵βを用いて暗号化し(ステップS15)、暗号化したコンテンツ[X]βを端末12Bへ送信する(ステップS16)。ステップS15とS16が、サーバ11から端末12へ暗号化したデータ、ここではコンテンツを送信するデータ送信部を構成する。
【0059】
次に、ステップS14において送信された上述した所定のコマンドを受信した端末12Aにおける処理について説明する。
図10は、端末12AにおけるCPU21の処理の流れの例を示すフローチャートである。図11は、デコード処理ブロック43の処理手順を説明するための図である。
【0060】
所定のコマンドを受信すると、CPU21のコアCPU35は、暗号化されたエンコードプログラム[ENC(β)]αと、暗号化されたデコードプログラム[DEC]αと、暗号化されたコンテンツ[X]αとを、記憶装置15から読み出して、オープン領域42aに書き込み、DSP33の動作モードをアイソレートモードに設定し、暗号化されたエンコードプログラム[ENC(β)]αを、暗号鍵αを用いてデコードする処理をDSP33に実行させる(ステップS21)。
【0061】
このとき、暗号化されたエンコードプログラム[ENC(β)]αは、アイソレート領域42bにコピーされて書き込まれ、デコード処理ブロック43により暗号鍵αを用いてデコードされてエンコードプログラムENC(β)が生成されてアイソレート領域42bに書き込まれる。
【0062】
次に、コアCPU35は、デコードされたエンコードプログラムENC(β)をDSP33に実行させる(ステップS22)。上述したように、エンコードプログラムENC(β)は、暗号化されたコンテンツ[X]αを、暗号鍵αを用いてデコードしてコンテンツXを生成する第1の生成処理と、生成されたコンテンツXを、暗号鍵βを用いて暗号化して、コンテンツ[X]βを生成する第2の生成処理を含む。
【0063】
エンコードプログラムENC(β)は、まず、デコード処理ブロック43を利用して、上述した第1の生成処理を実行する。第1の生成処理は、端末12Aにおいて暗号化されたコンテンツ[X]αをデコードしてコンテンツXを生成するときの上述した処理と同様である。
【0064】
図11では、アイソレート領域42bのエンコードプログラムENC(β)における、暗号化されたコンテンツ[X]αを、暗号鍵αを用いてデコードしてコンテンツXを生成する第1の生成処理を実行する部分は、点線で示されている。
【0065】
次に、ステップS22において、エンコードプログラムENC(β)は、そのコンテンツXを端末12Bにおいて端末12Bの暗号鍵βを用いてデコードできるように、コンテンツXを、暗号鍵βを用いて暗号化して、コンテンツ[X]βを生成する第2の生成処理を実行する。エンコードプログラムENC(β)は、アイソレートモードで、DSP33内において実行されるので、端末12Aにおいても暗号鍵βの秘密性は保たれる。
【0066】
ステップS21とS22が、暗号化されたエンコードプログラム[ENC(β)]αを受信すると、外部からのアクセスができない状態において暗号化されたエンコードプログラム[ENC(β)]αを端末12Aの暗号鍵αを用いてデコードして実行することによって、暗号化されたコンテンツ[X]αをデコードして、さらに端末12Bの暗号鍵βを用いてエンコードして暗号化されたコンテンツ[X]βを生成するデータエンコード部を構成する。
【0067】
なお、上述したように、コンテンツ[X]αのデータ量は、通常大きいため、ステップS22において、コンテンツ[X]αのデコード処理が行われながら、コンテンツ[X]βの生成処理が実行される。
暗号化されたコンテンツ[X]βが生成されて、オープン領域42aに書き込まれる。
【0068】
コアCPU35は、暗号化されたコンテンツ[X]βを、端末12Bへ送信する(ステップS23)。ステップS23が、端末12Bの暗号鍵βを用いてエンコードされて暗号化されたコンテンツ[X]βを、端末12Bへ送信するデータ送信部を構成する。
【0069】
図9に示すように、端末12Bは、端末12Aから、暗号化されたコンテンツ[X]βを受信する。端末12Bは、暗号化されたデコードプログラム[DEC]βを既に有しており、受信した暗号化されたコンテンツ[X]βを、デコードプログラム[DEC]βによりデコードすることにより、コンテンツXをユーザは視聴することができる。暗号化されたコンテンツ[X]βから、デコードプログラム[DEC]βによりコンテンツXをデコードする処理は、上述した端末12Aにおいて、暗号化されたコンテンツ[X]αをデコードしてコンテンツXを生成するときの上述した処理と同様である。
【0070】
また、端末12Bのユーザも、購入等したコンテンツを自分のハードディスク等の記憶装置15に蓄えておくことができ、必要なときに見ることができるが、蓄えられているデータがコピーされて他のユーザに渡されたとしても、端末12Bの中にハードウエア的に隠された暗号鍵を知らなければ、復号できない。
【0071】
以上のように、上述したデータ配信システムでは、同じデータを配信する場合でも、ユーザによって異なる暗号鍵を使って暗号化されたデータが送られるため、送られたデータをコピーしたとしても他のユーザが復号することができず、データを違法にコピーして使用することができなくなる。
【0072】
さらに、サーバはデータをユーザ毎に違った暗号鍵を使用して暗号化しながらデータを配信しなければならないため、サーバの負荷は大きくなる。しかし、上述したように、配信要求に係るデータを既に持っているユーザすなわち端末装置に、他のユーザのための暗号化プログラムを暗号化して送付して実行するようにしたので、サーバの暗号化の負荷ならびにデータ転送のための負荷を分散させることができるようになる。その結果、サーバの負荷を低減することができる。
【0073】
以上のように、上述した本実施の形態に係るデータ配信システムによれば、配信要求に係るデータを既に有している端末から、そのデータの配信を要求する他の端末へ、暗号鍵の秘密性を担保しつつ、送信するようにして、サーバ11の負荷を低減することができる。
【0074】
なお、上述した例では、エンコードプログラムENC(β)は、暗号化されたコンテンツ(X)αをデコードする処理も含まれているが、暗号化されたコンテンツ(X)αをデコードする処理をエンコードプログラムENC(β)に含めずに、端末12Aが、エンコードプログラムENC(β)を実行する前に、端末12Aの有するデコードプログラムDEC(α)によりコンテンツ(X)αをデコードさせてもよい。
【0075】
また、上述した例では、配信要求に係るコンテンツを一つの端末から、配信要求を出した端末へ送信しているが、配信要求に係るコンテンツを複数の端末が有している場合は、サーバは、コンテンツを分割して、各端末に割り当て、割り当てられたコンテンツの部分を配信要求を出した端末へ送信させるようにしてもよい。
【0076】
また、上述した例のシステムでは、データは全て暗号化されて配信されているが、データの全てではなく、一部を暗号化して配信する場合にも、上述したシステムは適用可能である。
【0077】
なお、本明細書における各「部」は、実施の形態の各機能に対応する概念的なもので、必ずしも特定のハードウエアやソフトウエア・ルーチンに1対1には対応しない。従って、本明細書では、以下、実施の形態の各機能を有する仮想的回路ブロック(部)を想定して実施の形態を説明した。また、本実施の形態における各手順の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、あるいは実行毎に異なった順序で実行してもよい。
【0078】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【0079】
【図1】本発明の実施の形態に係わるデータ配信システムの構成を示す構成図である。
【図2】本発明の実施の形態に係わる暗号鍵テーブルの構成例を示す図である。
【図3】本発明の実施の形態に係わる各端末の構成例を示す構成図である。
【図4】本発明の実施の形態に係わるCPUの構成を示すブロック図である。
【図5】本発明の実施の形態に係わる、端末からのコンテンツの配信要求があったときのデータの流れを説明するための図である。
【図6】本発明の実施の形態に係わる、デコード処理ブロックの処理手順を説明するための図である。
【図7】本発明の実施の形態に係わる、デコード処理ブロックの処理の流れの例を示すフローチャートである。
【図8】本発明の実施の形態に係わる、端末からコンテンツの配信要求があった場合におけるサーバの処理の流れの例を示すフローチャートである。
【図9】本発明の実施の形態に係わる、端末からのコンテンツの配信要求があったときのデータの流れを説明するための図である。
【図10】本発明の実施の形態に係わる、端末におけるCPUの処理の流れの例を示すフローチャートである。
【図11】本発明の実施の形態に係わる、デコード処理ブロックの処理手順を説明するための図である。
【符号の説明】
【0080】
1 データ配信システム、11 サーバ、12 端末装置、13 ネットワーク、14、15 記憶装置、14a コンテンツ格納部、14b 暗号鍵テーブル、14c 配信記録格納部、21 CPU、34 シーケンサ

【特許請求の範囲】
【請求項1】
センタ装置から複数の端末装置へデータの配信を行うためにデータの配信を行う方法であって、
前記センタ装置へデータの配信要求を送信した第1の端末装置へ、各端末装置の識別情報と暗号鍵の情報を格納する暗号鍵情報格納部に格納された前記第1の端末装置の暗号鍵を直接的又は間接的に用いて前記配信要求に係るデータを暗号化して送信し、
前記第1の端末装置へ送信した暗号化されたデータと同じデータの配信要求が第2の端末装置からあった場合に、前記第2の端末装置において前記第2の端末装置の暗号鍵を用いてデコードできるように、前記第1の端末装置において前記配信要求に係るデータを暗号化するエンコードプログラムを、前記第1の端末装置の暗号鍵を用いて暗号化して前記第1の端末装置へ送信し、
前記第1の端末装置に設けられたプロセッサに設けられたデータエンコード部によって、暗号化されたエンコードプログラムを受信すると、外部からのアクセスができない状態において前記暗号化されたエンコードプログラムを前記第1の端末装置の暗号鍵を用いてデコードして実行して、前記暗号化されたデータをデコードして、さらに前記第2の端末装置の暗号鍵を用いてエンコードし、
前記第1の端末装置に設けられたデータ送信部によって、前記第2の端末装置の暗号鍵を用いてエンコードされて暗号化されたデータを、前記第2の端末装置へ送信する、
ことを特徴とする暗号化データ配信方法。
【請求項2】
前記プロセッサは、記憶部を含み、前記記憶部の第1の所定の領域を前記外部からアクセスができない状態にして、前記暗号化されたエンコードプログラムを前記第1の端末装置の暗号鍵を用いて前記第1の所定の領域においてデコードすることを特徴とする請求項1に記載の暗号化データ配信方法。
【請求項3】
前記暗号化されたデータは、前記第1の端末装置に接続された記憶装置に記憶され、
前記プロセッサは、前記暗号化されたデータを前記第1の端末装置の暗号鍵を用いてデコードするデコード処理部を有し、
前記プロセッサは、前記記憶装置から読み出した前記暗号化されたデータを前記記憶部の前記第2の所定の領域に書き込み、前記デコード処理部により前記暗号化されたデータをデコードすることを特徴とする請求項2に記載の暗号化データ配信方法。
【請求項4】
前記暗号化されたエンコードプログラムは、前記第1の端末装置に接続された前記記憶装置に記憶され、
前記プロセッサは、前記記憶装置から読み出した前記暗号化されたエンコードプログラムを前記記憶部の第2の所定の領域に書き込み、前記デコード処理部により、前記暗号化されたエンコードプログラムをデコードすることを特徴とする請求項3に記載の暗号化データ配信方法。
【請求項5】
センタ装置と複数の端末装置とを含むシステムであって、
各端末装置の識別情報と暗号鍵の情報を格納する暗号鍵情報格納部と、
前記センタ装置へデータの配信要求を送信した第1の端末装置へ、前記暗号鍵情報格納部に格納された前記第1の端末装置の暗号鍵を直接的又は間接的に用いて前記配信要求に係るデータを暗号化して送信する第1のデータ送信部と、
前記第1の端末装置へ送信した暗号化されたデータと同じデータの配信要求が第2の端末装置からあった場合に、前記第2の端末装置において前記第2の端末装置の暗号鍵を用いてデコードできるように、前記第1の端末装置において前記配信要求に係るデータを暗号化するエンコードプログラムを、前記第1の端末装置の暗号鍵を用いて暗号化して前記第1の端末装置へ送信するエンコードプログラム送信部と、
前記第1の端末装置に設けられたプロセッサに設けられ、暗号化されたエンコードプログラムを受信すると、外部からのアクセスができない状態において前記暗号化されたエンコードプログラムを前記第1の端末装置の暗号鍵を用いてデコードして実行して、前記暗号化されたデータをデコードして、さらに前記第2の端末装置の暗号鍵を用いてエンコードするデータエンコード部と、
前記第1の端末装置に設けられ、前記第2の端末装置の暗号鍵を用いてエンコードされて暗号化されたデータを、前記第2の端末装置へ送信する第2のデータ送信部と、
を有することを特徴とする暗号化データ配信システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2009−194462(P2009−194462A)
【公開日】平成21年8月27日(2009.8.27)
【国際特許分類】
【出願番号】特願2008−30766(P2008−30766)
【出願日】平成20年2月12日(2008.2.12)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】