説明

通信装置、通信方法及びプログラム

【課題】コンテンツ配信システムにおいて、不正な通信装置の無効化を簡単に行うことを可能にする通信技術を提供する。
【解決手段】リーチャ50Aは、販売サーバ54からTorrent Fileを受信し、当該Torrent Fileに基づいて、トラッカ51にアクセスしてノード情報を取得し、ノード情報に基づいて、シーダ52A〜52Cやリーチャ50Bの少なくとも1つにアクセスして各暗号化ピースを受信して、各ピースに各々対応する全ての暗号化ピースを取得する。そして、リーチャ50Aは、各暗号化ピースを復号するための復号情報を鍵サーバ53に要求し、鍵サーバ53は、各暗号化ピースを復号するための各復号鍵を暗号化した暗号化復号鍵と、当該各復号鍵の暗号化に用いたシード情報とを含む復号情報をリーチャ50に送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置、通信方法及びプログラムに関する。
【背景技術】
【0002】
一般に、コンテンツを配信するシステムには、「単一サーバ型」と「分散サーバ型」とがある。単一サーバ型のシステムでは、例えば、1つのコンテンツサーバと、ライセンスサーバと、クライアントとがネットワークを介して接続され、コンテンツサーバからコンテンツが各クライアントに配信される。配信されるコンテンツは暗号化されており、この暗号化に係る鍵情報をライセンスサーバが有している。コンテンツサーバでは、コンテンツはE( KT )[ C ]として保持される。ただし、KTはタイトル鍵と呼ばれる鍵であり、Cは平文のコンテンツである。E( KT )[ C ]はCがKTで暗号化されていることを示す。鍵情報にはKTが含まれている。クライアントBは、鍵情報をライセンスサーバから取得し、当該鍵情報を、当該クライアント(クライアントBとする)固有の鍵KBを用いて暗号化し、これをコンテンツサーバから受信したコンテンツE( KT )[ C ]と関連づけて保持する。そして、クライアントBは、鍵KBを用いて鍵情報を復号して、タイトル鍵KTを取り出し、当該タイトル鍵KTを用いてE( KT )[ C ]を復号することにより、コンテンツを利用することができる。
【0003】
このような構成において、クライアントBは、コンテンツサーバからコンテンツE( KT )[ C ]をダウンロードする際、認証及び鍵交換を互いに行う。この結果、クライアントBは、一時鍵KtmpBを共有する。コンテンツサーバは、一時鍵KtmpBを用いてコンテンツE( KT )[ C ]を暗号化し、コンテンツE( KtmpB )[ E( KT )[ C ] ]をクライアントBに送信する。クライアントBは、上述の認証及び鍵交換によってコンテンツサーバと共有している一時鍵KtmpBを用いてコンテンツE( KtmpB )[ E( KT )[ C ]]を復号して、E( KT )[ C ]を取り出す。このような構成においては、ネットワークの経路上で、暗号化されたコンテンツE( KtmpB )[ E( KT )[ C ] ]が不正に読み取られたとしても、不正に読み取られたものは一時鍵KtmpBがなければ復号することができない。即ち、クライアント毎に異なる一時鍵を用いてコンテンツを暗号化することにより、同一のコンテンツをクライアント毎に個別化し、これにより、コンテンツの不正使用を抑制することができる。例えば、クライアントAに対する一時鍵KtmpAとクライアントBに対する一時鍵KtmpBとを異ならせることにより、クライアントAに配信されるコンテンツE( KtmpA )[ E( KT )[ C ] ]と、クライアントBに配信されるコンテンツE( KtmpB )[ E( KT )[ C ] ]とは異なる個別のデータとなる。このように同一のコンテンツを暗号鍵の相違により個別化することにより、コンテンツの不正使用を抑制することができる。
【0004】
しかし、単一サーバ型のシステムでは、クライアントとコンテンツサーバとの1対1での通信となるため、多くのクライアントがコンテンツサーバからコンテンツの配信を受けようとすると、配信効率が悪くなるという問題がある。
【0005】
一方、分散サーバ型のシステムには、例えば、P2PによるBitTorrentというコンテンツ配信システムがある(例えば、非特許文献1参照)。このようなシステムにおいては、コンテンツ毎に異なるトラッカと、シーダと、リーチャとがP2Pで各々接続される。また、配信されるコンテンツは、複数のピースに分割されている。シーダは、コンテンツの配信(アップロード)を目的として、コンテンツを構成するピースを配信するノードである。リーチャは、コンテンツの受信(ダウンロード)を目的として、コンテンツを構成する各ピースの受信とコンテンツを構成するピースの配信とを行うノードである。即ち、リーチャはコンテンツを構成するピースをある程度取得するとシーダになる場合がある。このように、シーダには、コンテンツを構成する全部のピース又は一部のピースを受信したリーチャがシーダへ変化したものと、システム側で(予め又は配信の途中に)用意される(最初からシーダである)ものとがある。後者を初期シーダと呼ぶ。初期シーダは、あるひとつのコンテンツを構成し得る全てのピース又は一部のピースを保持している。以降、特に断りのない限り、シーダとはシーダ又は初期シーダを意味するものとし、ノードとはリーチャ、シーダ、又は初期シーダを意味するものとする。トラッカは、各ノードに関するノード情報を保持しており、リーチャからアクセスがあった場合、ノード情報をリーチャに提供する。
【0006】
このような構成において、あるリーチャがコンテンツの配信を受ける場合、まず、Torrent Fileと呼ばれる情報を取得する。Torrent Fileは、例えば、コンテンツプロバイダ又はユーザにコンテンツを販売するサービスを運用するサーバ(販売サーバと呼ぶ)から、他ノード又は販売サーバへ与えられ、さらに他ノード又は販売サーバからリーチャへ与えられる。この他に、例えばCD−ROMなどの記憶媒体に記録されたTorrent Fileをオフラインでリーチャへ配布される場合もある。Torrent Fileには、コンテンツに関するトラッカ情報と、当該コンテンツのファイル情報とが格納されている。トラッカ情報はトラッカの接続先を含んでいる。ファイル情報は、例えば、コンテンツを構成する各ピースのハッシュ情報を含んでいる。ハッシュ情報は、ピースの完全性を確認するために用いられる。即ち、ハッシュ情報は、リーチャがダウンロードしたピースのハッシュを計算し、当該ピースのハッシュ値と照合して、受信したピースが改竄されていないことを確認するのに用いられる。
【0007】
リーチャは、このようなTorrent Fileを取得すると、トラッカ情報に基づいてトラッカに接続する。トラッカは、リーチャに上述のノード情報を送信する。ノード情報は単数又は複数のノードの接続先のリストを含んでいる。リーチャはノード情報に基づいて、複数のノードに接続する。各ノードが配信するピースは、ノード毎に異なっている場合が多い。リーチャは、複数のノードから異なるピースを受信することができるので、コンテンツの高速な受信が可能である。
【0008】
このように、P2Pによるコンテンツ配信システムでは、コンテンツは複数のノードに分散して保持されている。従って、このようなシステムにおいては、コンテンツの配信を受けるノードが多くても、P2Pにより複数の他のノードからコンテンツの配信を受けることができるため、単一サーバ型のシステムに比べて配信効率が良い。
【0009】
尚、このように、複数のノードからコンテンツを配信し得るコンテンツ配信システムにおいても、コンテンツの不正使用を抑制するためには、配信するコンテンツを暗号化によって保護することが望ましい。しかし、このようなコンテンツ配信システムでは、単一サーバ型のシステムとは異なり、各リーチャがシーダから受信する同一のコンテンツは、暗号化された状態であっても同一でなければならず、リーチャ毎に個別に暗号化したコンテンツを配信することは難しかった。このため、暗号化されたコンテンツを復号するための鍵が1つ曝露されてしまうと、ネットワーク上に多数存在するコンテンツが全て復号可能になってしまうという恐れがあった。
【0010】
ところで、特許文献1には、コンテンツを複数のピースに分割し、それら複数のピースをそれぞれ1つの平文として、複数の暗号鍵を用いて各々暗号化して暗号文(暗号化ピースという)を生成するコンテンツ配信方法が開示されている。
【0011】
【非特許文献1】Bittorrent Protocol Specification v1.0
【特許文献1】特許第3917395号公報
【発明の開示】
【発明が解決しようとする課題】
【0012】
特許文献1において開示されているコンテンツ配信方法を始め、複数の暗号鍵を用いてピースを各々暗号化して暗号化ピースを生成するコンテンツ配信方法を用いれば、上述の恐れをなくすことができる。しかし、さらに、不正リーチャ(例えば、ハックされてしまったリーチャや、不正コピーなどの不正行為に加担しているリーチャ)を検出した場合には、当該不正リーチャの無効化を行えることが望ましい。不正リーチャの無効化を行うための素朴な解決策として、例えば以下のものが考えられる。鍵サーバから暗号化ピースの復号鍵をリーチャへ与えることとし、さらに、鍵サーバが不正リーチャのリスト(ブラックリスト)を管理し、リーチャから鍵サーバへ暗号化ピースの復号鍵の送信要求があった際に、鍵サーバがブラックリストに当該リーチャが載っているか否かを照合する処理を行い、当該リーチャがブラックリストに載っていない場合のみ、鍵サーバから当該リーチャへ暗号化ピースの復号鍵を送信するという解決策である。しかし、ブラックリストの管理やその照合の処理は煩雑であるため、この解決策は望ましくない。
【0013】
本発明は、上記に鑑みてなされたものであって、コンテンツ配信システムにおいて、不正な通信装置の無効化を簡単に行うことを可能にする通信装置、通信方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0014】
上述した課題を解決し、本発明は、コンテンツの一部が暗号化された暗号化ピースを受信する通信装置であって、第1通信装置から、複数の前記暗号化ピースを受信する第1受信手段と、第2通信装置に、受信した各前記暗号化ピースを復号するための情報を要求する要求手段と、自通信装置に割り当られた第1鍵を記憶する第1記憶手段と、受信した各前記暗号化ピースを復号するための復号鍵であって暗号化された前記復号鍵を前記第2通信装置又は第3通信装置から受信し、当該復号鍵の暗号化に用いられた一時情報を前記第2通信装置から受信する第2受信手段と、前記一時情報と、前記第1鍵と、前記第1鍵を用いて復号可能に暗号化された第2鍵とを用いて、暗号化された前記各復号鍵を復号する鍵復号手段とを備えることを特徴とする。
【0015】
また、本発明は、コンテンツの一部が暗号化された暗号化ピースを受信する他の通信装置と通信する通信装置であって、複数の前記暗号化ピースを復号するための情報を要求する要求メッセージを前記他の通信装置から受信する受信手段と、前記暗号化ピースを復号するための復号鍵の暗号化に用いる一時情報を生成する生成手段と、前記要求メッセージに従って、前記一時情報を前記他の通信装置に送信する送信手段とを備えることを特徴とする。
【0016】
また、本発明は、コンテンツの一部が暗号化された暗号化ピースを受信する通信装置で実行される通信方法であって、前記通信装置は、第1受信手段と、送信手段と、鍵復号手段と、自通信装置に割り当られた第1鍵を記憶する記憶手段とを備え、前記第1受信手段が、第1通信装置から、複数の前記暗号化ピースを受信する第1受信ステップと、前記要求手段が、第2通信装置に、受信した各前記暗号化ピースを復号するための情報を要求する要求ステップと、前記第2受信手段が、受信した各前記暗号化ピースを復号するための復号鍵であって暗号化された前記復号鍵を前記第2通信装置又は第3通信装置から受信し、当該復号鍵の暗号化に用いられた一時情報を前記第2通信装置から受信する第2受信ステップと、前記鍵復号手段が、前記一時情報と、前記第1鍵と、前記第1鍵を用いて復号可能に暗号化された第2鍵とを用いて、暗号化された前記各復号鍵を復号する鍵復号ステップとを含むことを特徴とする。
【0017】
また、本発明は、コンテンツの一部が暗号化された暗号化ピースを受信する通信装置の有するコンピュータを実行させるためのプログラムであって、第1通信装置から、複数の前記暗号化ピースを受信する第1受信ステップと、第2通信装置に、受信した各前記暗号化ピースを復号するための情報を要求する要求ステップと、受信した各前記暗号化ピースを復号するための復号鍵であって暗号化された前記復号鍵を前記第2通信装置又は第3通信装置から受信し、当該復号鍵の暗号化に用いられた一時情報を前記第2通信装置から受信する第2受信ステップと、前記一時情報と、前記第1鍵と、前記第1鍵を用いて復号可能に暗号化された第2鍵とを用いて、暗号化された前記各復号鍵を復号する鍵復号ステップとをコンピュータに実行させる。
【0018】
また、本発明は、コンテンツの一部が暗号化された暗号化ピースを受信する他の通信装置の有するコンピュータを実行させるためのプログラムであって、複数の前記暗号化ピースを復号するための情報を要求する要求メッセージを前記他の通信装置から受信する受信ステップと、前記暗号化ピースを復号するための復号鍵の暗号化に用いる一時情報を生成する生成ステップと、前記要求メッセージに従って、前記一時情報を前記他の通信装置に送信する送信ステップとをコンピュータに実行させる。
【発明の効果】
【0019】
本発明によれば、コンテンツ配信システムにおいて、不正な通信装置の無効化を簡単に行うことが可能になる。
【発明を実施するための最良の形態】
【0020】
以下に添付図面を参照して、この発明にかかる通信装置、通信方法及びプログラムの最良な実施の形態を詳細に説明する。
【0021】
[実施の形態]
(1)構成
<コンテンツ配信システムの構成>
まず、本実施の形態にかかるコンテンツ配信システムの基本的な構成について説明する。図1は、本実施の形態にかかるコンテンツ配信システムの構成を示す図である。本実施の形態にかかるコンテンツ配信システムにおいては、リーチャ50A〜50Bと、トラッカ51と、シーダ52A〜52Cと、販売サーバ54とが各々P2PネットワークNTを介して接続されている。リーチャ50A〜50Bと、鍵サーバ53とは各々、図示しないインターネットなどのネットワークを介して接続される。ここでノードとは、リーチャ50A〜50Bと、シーダ52A〜52Cとである。シーダ52A〜52Cは、複数のピースに分割されたコンテンツについて、各ピースが各々異なる暗号鍵で暗号化された各暗号化ピースを保持している。尚、以降、このような暗号化ピースから構成されるコンテンツを暗号化コンテンツという。このような暗号化コンテンツの詳細については後述する。シーダ52A〜52Cのうち、シーダ52Aは、上述した初期シーダとして機能する。シーダ52Aは、1つのコンテンツを構成する各ピースについて、同一のピースに対して複数の暗号鍵を用いて各々暗号化されて生成された暗号化ピースの全てとTorrent Fileとを保持している。トラッカ51は、各ノードにアクセスするためのノード情報を保持している。尚、各ノードには各々、ノード識別情報が付与されているものとする。ノード識別情報とは、各ノードを一意に識別可能な識別情報であり、例えば、各ノードのIPアドレスである。鍵サーバ53は、各暗号化ピースを復号するための復号鍵を保持している。販売サーバ54は、Torrent Fileを保持している。
【0022】
リーチャ50Aは、販売サーバ54からTorrent Fileを受信し、当該Torrent Fileに基づいて、トラッカ51にアクセスしてノード情報を取得し、ノード情報に基づいて、シーダ52A〜52Cやリーチャ50Bの少なくとも1つにアクセスして各暗号化ピースを受信して、各ピースに各々対応する全ての暗号化ピースを取得する。そして、リーチャ50Aは、各暗号化ピースを復号するための復号情報を鍵サーバ53に要求し、鍵サーバ53は、各暗号化ピースを復号するための各復号鍵を暗号化した暗号化復号鍵を含む復号情報をリーチャ50に送信する。各復号鍵を暗号化する方式としてはMKB(Media Key Block)方式を適用する。このMKB方式及び復号情報の詳細については後述する。リーチャ50Bについても同様である。尚、以降、リーチャ50A〜50Bを各々区別する必要がない場合、単にリーチャ50と記載する。シーダ52A〜52Cを各々区別する必要がない場合も、単にシーダ52と記載する。
【0023】
ここで、コンテンツの構成について説明する。コンテンツとは、種々のデジタルデータ、例えばMPEG2やMPEG4等の動画データや音声データの他、テキストデータや静止画データ等を指し、また、これらのデジタルデータが暗号化されているものもコンテンツと呼ぶ。例えば、HD DVD Prepared Video ContentをAACS(Advanced Access Content System)仕様に従って暗号化したものもコンテンツである。ここでは、コンテンツ全体をCと表すものとする。Cは平文であっても暗号化されていても構わない。図2は、コンテンツが複数のピースに分割された状態を模式的に示す図である。例えば、コンテンツCは、ある1つのコンテンツをN(N>1)個のピースC1〜CNに分割される。各ピースC1,C2,・・・CNのデータ長は全て同一であっても良いし、そうでなくても良い。これらのN個の各ピースC1〜CNについては、各々異なる暗号鍵で暗号化される。このとき、N個のうちa個のピースについては、同一のピースに対して、各々異なるm個の暗号鍵で暗号化される。残りの(N-a)個のピースについては、同一のピースに対して1つの暗号鍵で暗号化される。即ち、a個の各ピースについては、同一のピースがm個の異なる暗号鍵で各々暗号化されてm個の異なるピース(暗号化ピース)が生成される。(N-a)個の各ピースについては、各々1つの暗号鍵で暗号化して、1つのピースに対して1つの暗号化ピースが生成される。図3は、各暗号化ピースを模式的に示す図である。このa個の各ピースに各々対応して、m個の暗号化ピースの中から各々1つ選択される暗号化ピースの組み合わせを異ならせることにより、N個の暗号化ピースから構成される暗号化コンテンツ全体を個別化することができる。
【0024】
尚、コンテンツの各ピースへの分割や、各ピースの暗号化は、トラッカ51や、鍵サーバ53や、コンテンツ製作者が用意したサーバのいずれが行っても良い。尚、以降、これらのうち少なくとも1つを行う装置をピース処理装置という。また、各暗号化ピースは、例えば、トラッカ51、鍵サーバ53又は信頼できる第三者(例えば、コンテンツ製作者が用意したサーバ)からシーダ52A(初期シーダ)へ与えられるものとする。
【0025】
次に、MKB方式について説明する。MKB方式とは、一般的にデータを暗号化して送信する送信者と、暗号化されたデータ(暗号化データという)を受信して復号する複数の受信者とが存在する状況において適用される。このような状況において、各受信者には、予め1つ又は複数の復号鍵がそれぞれ割り当てられている。送信者は、受信者に割り当てられた1つ又は複数の暗号化鍵を用いて、無効化される対象の受信者は平文を計算できないように且つ無効化されない受信者は平文を計算できるように、当該平文をそれぞれ暗号化する。無効化されない受信者は、割り当てられた復号鍵のうちの1つを用いて、暗号化された平文を復号することにより、平文を計算する。MKBとは、平文をデバイス鍵(第1鍵)を用いて復号可能に各々暗号化した1つ又は複数の暗号文を含むデータであり、受信者による復号に必要な他のデータも含む鍵管理情報である。各暗号文に識別情報が割り当てられている場合、受信者による復号に必要な他のデータとしては例えばこの識別情報が挙げられる。デバイス鍵とは、1つ又は複数の鍵情報を含むデータであり、受信者による復号に必要な他のデータも含む。各デバイス鍵にはデバイス鍵識別情報が各々割り当てられているため、受信者による復号に必要な他のデータとしては例えばこのデバイス鍵識別情報が挙げられる。上述の平文は、このデバイス鍵とMKBとを用いて後述するMKB処理により得られる。この平文を説明の便宜上以降平文鍵(第2鍵)という。この平文鍵が、各デバイス鍵を少なくとも用いて復号可能に暗号化されたものを暗号化平文鍵という。一般的には、暗号化対象のデータのデータ長が大きい場合、送信者は、平文鍵を復号鍵として、平文鍵に対応する暗号化鍵を用いて暗号化対象のデータを暗号化する。暗号化されたデータ(暗号化データ)が送信者から送信されて受信者に受信される。図4は、本実施の形態に係るMKB方式において受信者が行う基本的な処理の流れを概念的に示す図である。同図に示されるように、本実施の形態においては、受信者は、自身に割り当てられたデバイス鍵を用いて、MKBに含まれる暗号化平文鍵を復号して平文鍵を得て、次に、平文鍵を用いて、受信した暗号化データを復号する。尚、MKB方式の例として、以下の参考文献1〜2において開示されているMKB方式がある。
(参考文献1) D. Naor, M. Naor, and J. Lotspiech, “Revocation and Tracing Schemes for Stateless Receivers,” In Proc. of CRYPTO 2001, LNCS 2139, Springer-Verlag, pp.41-62, 2001.
(参考文献2) 特許第3917507号公報
【0026】
参考文献1において開示されているMKB方式は、共通鍵暗号に基づいたMKB方式である。共通鍵暗号に基づいたMKB方式においては、MKBに含まれる暗号化平文鍵を生成する際に用いられた暗号化鍵と、当該暗号化平文鍵を復号するための復号鍵(デバイス鍵)とは同一である。一方、参考文献2において開示されているMKB方式は、公開鍵暗号に基づいたMKB方式である。公開鍵暗号に基づいたMKB方式においては、MKBに含まれる暗号化平文鍵を生成する際に用いられた暗号化鍵(公開鍵)と、当該暗号文を復号するための復号鍵(デバイス鍵)とは異なとは異なり、暗号化鍵を(公開鍵として)公開することができる。
【0027】
このようなMKB方式を適用して、あるリーチャ50を無効化する場合、当該リーチャ50に割り当てられたデバイス鍵を用いて復号されても正しい平文鍵が得られないように生成された暗号化平文鍵を含むMKBを生成する。即ち、無効化されていないリーチャ50に割り当てられたデバイス鍵を用いて暗号化平文鍵を復号して得られる平文鍵と、無効化されたリーチャ50に割り当てられたデバイス鍵を用いて暗号化平文鍵を復号して得られる平文鍵とが異なるような暗号化平文鍵を含むMKBを生成する。このような構成によれば、無効化されたリーチャ50が、デバイス鍵記憶部504に記憶されたデバイス鍵を用いてMKBに含まれている暗号化平文鍵を復号しても、正しい平文鍵を得ることができないことになる。
【0028】
次に、リーチャ50と、トラッカ51と、シーダ52と、鍵サーバ53との各装置のハードウェア構成について説明する。各装置は各々、装置全体を制御するCPU(Central Processing Unit)等の制御装置と、各種データや各種プログラムを記憶するROM(Read Only Memory)やRAM(Random Access Memory)等の記憶装置と、各種データや各種プログラムを記憶するHDD(Hard Disk Drive)やCD(Compact Disk)ドライブ装置等の外部記憶装置と、これらを接続するバスとを備えており、通常のコンピュータを利用したハードウェア構成となっている。また、各装置には各々、情報を表示する表示装置と、ユーザの指示入力を受け付けるキーボードやマウス等の入力装置と、外部装置の通信を制御する通信I/F(interface)とが有線又は無線により接続される。
【0029】
<シーダ52の構成>
次に、上述したハードウェア構成において、シーダ52のCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。シーダ52は、コンテンツCを構成する複数のピースC1〜CNが各々暗号化された各暗号化ピースを、各ピースC1〜CNを各々復号するための各復号鍵のインデックス(添え字)と対応付けて記憶している。尚、各復号鍵は、各暗号鍵と同一であっても良いし、各暗号鍵と異なるものであっても良い。いずれにしろ、各ピースC1〜CNは各々暗号鍵で暗号化されているため、これらの各暗号化ピースを復号するための復号鍵のそれぞれについて、各復号鍵のインデックスを用いて、各暗号化ピースを特定することができる。また、各暗号化ピースには、コンテンツを識別可能なコンテンツ識別情報が各々割り当てられている。このような各暗号化ピースは例えば外部記憶装置に記憶される。
【0030】
以下簡単のため、暗号鍵と復号鍵が同一の場合で説明する。復号鍵のインデックスを、( i, j )で表し、復号鍵を、K ( i, j )で表すとすると、各暗号化ピースは、例えば、以下のように表される。
E( K( i, j) )[ Cj ]
(ただし、i, jは整数、1≦i≦m、1≦j≦N(m>1)、相異なるインデックス( i, j)、( i’, j’) (( i, j)≠( i’, j’))についてK( i, j)= K( i’, j’)であってもよい。)
【0031】
このような各暗号化ピースから構成される暗号化コンテンツは、例えば、以下のように表される。
{ E( K( i1, 1 ) )[ C1 ], E( K( i2, 2 ) )[ C2 ], …, E( K( iN, N ))[ CN ]}
(ただし、1≦i1, …, iN≦m)
【0032】
このような暗号化コンテンツにおける各暗号化ピースのシーケンスは、各暗号化ピースのインデックスの組み合わせにより表され、例えば以下のように表される。ここでは、各ピースC1〜CNに各々対応するインデックスが左から順に配列されて表されている。
{ ( i1, 1 ), ( i2, 2 ), …, ( iN, N) }
(ただし、1≦i1, …, iN≦m)
【0033】
従って、シーダ52が各暗号化ピースとインデックスとを対応付けて記憶するものは、例えば、以下のように表される。
{ ( E( K( i1, 1) )[ C1 ], ( i1, 1 ) ), ( E( K( i2, 2) )[ C2 ], ( i2, 2 ) ), …,( E( K( iN, N) )[ CN ], ( iN, N ) ) }
(ただし、1≦i1, …, iN≦m)
【0034】
更に、初期シーダであるシーダ52Aは、コンテンツを構成する各ピースに各々対応する各暗号化ピースについて、同一のピースに対して複数の暗号鍵により各々暗号化されて生成された暗号化ピースの全てを記憶している。図5は、シーダ52Aが記憶している各暗号化ピースを例示する図である。同図においては、N個のうちa個(1<a<N)のピースについて、同一のピースに対して複数の異なる暗号鍵で各々暗号化されていることが示されている。同図においては、同一のピースの暗号化に用いられる暗号鍵の個数は、ピース毎に異なっている。ピースC1に対する暗号鍵の個数はm個であり、ピースC3に対する暗号鍵の個数は2個である。但し、本実施の形態においては、同一のピースの暗号化に用いられる暗号鍵の個数はピース毎に同じであっても良い。ピース処理装置では、このように、N個のうちa個(1<a<N)のピースについて、同一のピースに対して複数の異なる暗号鍵で各々暗号化することにより、例えば、重要度の高いほど暗号鍵の数を増やすようにすることができる。
【0035】
尚、本実施の形態においては、これに限らず、例えば、図6に示されるように、「a=N」の場合、即ち、N個全てのピースについて、同一のピースに対してm個の異なる暗号鍵で各々暗号化されていても良い。このような構成によれば、暗号化ピースのシーケンスのバリエーションを多くすることができる。また、図7に示されるように、「a=1」の場合、即ち、N個のうち1個のピースのみ、m個の異なる暗号鍵で暗号化されていても良い。このような構成によれば、配信効率を向上させることができる。
【0036】
このような構成において、シーダ52は、リーチャ50からのアクセスにより、当該シーダ52が記憶している暗号化ピースのシーケンスを示すピース情報をリーチャ50に送信する。図8は、ピース情報のデータ構成を例示する図である。同図においては、ピースC1に対応する暗号化ピースについては、復号鍵K(1, 1 )により復号されることが示され、ピースC2に対応する暗号化ピースについては、復号鍵K(3, 2 ) により復号されることが示されている。即ち、ピース情報によって、各暗号化ピースと各暗号化ピースの復号化のための復号鍵の対応関係とが示される。シーダ52は、当該ピース情報に基づいて暗号化ピースを要求するピース要求をリーチャ50から受信すると、要求された暗号化ピースを保持しているか否かを判断し、当該判断結果が肯定的である場合に、当該暗号化ピースをリーチャ50に送信する。
【0037】
<リーチャ50の構成>
次に、上述したハードウェア構成において、リーチャ50のCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図9は、リーチャ50の機能的構成を例示する図である。リーチャ50は、コンテンツ取得部500と、復号情報要求部501と、復号情報取得部502と、コンテンツ復号部503と、デバイス鍵記憶部504と、MKB記憶部505と、MKB処理部506と、変換部507と、鍵束復号部508とを有する。コンテンツ取得部500と、復号情報要求部501と、復号情報取得部502と、コンテンツ復号部503と、MKB処理部506と、変換部507と、鍵束復号部508の実体は、CPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。デバイス鍵記憶部504と、MKB記憶部505とは、例えばHDDなどの外部記憶装置に記憶されている。尚、リーチャ50には、当該リーチャ50を識別可能なリーチャ識別情報が割り当てられているものとする。リーチャ識別情報は例えばHDDなどの外部記憶装置に記憶されている。
【0038】
コンテンツ取得部500は、P2PネットワークNTを介して、暗号化コンテンツを構成する各暗号化ピースをシーダ52の少なくとも1つから受信する。具体的には、コンテンツ取得部500は、まず、販売サーバ54からTorrent Fileを受信する。Torrent Fileは、トラッカ51に接続するためのトラッカ接続先情報を含むトラッカ情報と、暗号化コンテンツを構成する各暗号化ピースとしてどのようなものがあるかを示すファイル情報とを含んでいる。図10は、Torrent Fileを例示する図である。同図においては、ファイル情報として、各暗号化ピースを特定するための情報として、各暗号化ピースに対応するインデックスが各々示されている。トラッカ接続先情報は、例えば、トラッカ51のIPアドレスや、URLなどである。
【0039】
コンテンツ取得部500は、Torrent Fileに基づいて、P2PネットワークNTを介してトラッカ51にアクセスして、P2PネットワークNTに接続されているノード(シーダ52、他のリーチャ50)にアクセスするためのノード情報を当該トラッカ51から受信する。ノード情報の詳細については後述する。そして、コンテンツ取得部500は、ノード情報に基づいて、ノードの少なくとも1つにアクセスして、当該ノードが記憶している自身の保持する暗号化ピースのシーケンスを示すピース情報を取得する。そして、コンテンツ取得部500は、ピース情報に基づいて、暗号化コンテンツを構成する各暗号化ピースを要求するピース要求をノードの少なくとも1つに送信し、当該ピース要求に応じて送信される暗号化ピースを受信することにより、暗号化コンテンツを構成する全ての暗号化ピース(ピースシーケンス)を取得する。例えば、図3に示した各暗号化ピースのうち、網掛けされた全ての暗号化ピースをピースシーケンスとしてコンテンツ取得部500は取得する。取得した暗号化ピースをコンテンツ取得部500は例えば外部記憶装置に記憶する。
【0040】
デバイス鍵記憶部504は、リーチャ50に割り当てられたデバイス鍵を、当該デバイス鍵に割り当てられたデバイス鍵識別情報と対応付けて記憶する。デバイス鍵記憶部504に記憶されるデバイス鍵の数は、1つの場合もあるし、複数の場合もある。MKB記憶部505は、異なる複数の各リーチャ50にそれぞれ割り当てられたデバイス鍵のそれぞれで復号可能に暗号化された平文鍵である暗号化平文鍵を含むMKBを記憶する。このMKBには、MKBを識別可能なMKB識別情報が割り当てられている。MKB識別情報は、例えば、MKBの通し番号である。図11は、MKBのデータ構成を例示する図である。同図に示されるように、MKBは、MKB識別情報と、平文鍵検証用レコードと、複数の暗号化平文鍵とを含む。平文鍵検証用レコードは、MKBを検証するために用いられる。具体的には、平文鍵検証用レコードは、固定データ(例えば、‘01234XXX’などの数列)を平文鍵Kmで暗号化したものである。固定データはリーチャ50の例えばHDDなどの外部記憶装置に別途予め記憶される。暗号化平文鍵は、1つのデバイス鍵識別情報又はデバイス鍵識別情報のグループ毎に、1つずつレコードが分かれてMKBに含まれる。例えば、デバイス鍵識別情報‘1’に対応する1つの暗号化平文鍵と、デバイス鍵識別情報‘100’〜‘199’に対応する1つの暗号化平文鍵とが別々のレコードとして含まれる。各デバイス鍵識別情報には上述したようにデバイス鍵が対応しているから、各暗号化平文鍵は、デバイス鍵識別情報に対応するデバイス鍵に含まれる鍵情報の1つによって復号可能である。なお、図11では、デバイス鍵を用いて平文鍵を(共通鍵暗号方式により)暗号化する場合のMKBのデータ構成を例示したが、これに限らず、この暗号化を公開鍵暗号方式により行っても良い。この場合、MKBに含まれる暗号化平文鍵は、例えば、デバイス鍵識別情報‘1’に対応するデバイス鍵に対応する公開鍵を用いて平文鍵を暗号化した暗号化平文鍵である。(‘1’以外のデバイス鍵識別情報についても同様である。)また、MKBに含まれる暗号化平文鍵は1つであっても良い。この場合、デバイス鍵識別情報をMKBに含めなくても良い。また、用いるMKB方式によっては(例えば、参考文献2において開示されている公開鍵暗号に基づいたMKB方式を用いる場合)、デバイス鍵識別情報をMKBに含めなくても良い。
【0041】
復号情報要求部501は、ピースシーケンスを復号するための復号情報を要求する要求メッセージを鍵サーバ53へ送信する。要求メッセージは、ピースシーケンスに含まれる暗号化ピースに対応付けられているコンテンツ識別情報及び当該リーチャ50に割り当てられたリーチャ識別情報を含む。復号情報とは、ピースシーケンスを復号するための各復号鍵が暗号化された各暗号化復号鍵を含む暗号化鍵束と、シード情報と、暗号化鍵束の復号に用いるMKBを識別可能なMKB識別情報とを含む。復号鍵の詳細については後述する。要求メッセージは、更に、各復号鍵のシーケンスを指定する情報として、ピースシーケンスにおける各暗号化ピースのインデックスの組み合わせ(シーケンス)を示すインデックス情報を含む。このようなシーケンスは、例えば、以下のように表される。
{ ( i1, 1 ), ( i2, 2 ), …, ( iN, N) }
(ただし、1≦i1, …, iN≦m)
【0042】
復号情報取得部502は、要求メッセージに従って鍵サーバ53から送信された復号情報を受信する。シード情報とは、リーチャ50が保持する各暗号化ピースを復号するための鍵束の暗号化に用いられた情報であり、暗号化された鍵束(暗号化鍵束)の復号に用いられる一時情報である。MKB処理部506は、復号情報取得部502が取得した復号情報に含まれるMKB識別情報と、MKB記憶部505に記憶されているMKBに割り当てられているMKB識別情報とが同一である場合、後者のMKBに含まれる暗号化平文鍵のうち、デバイス鍵記憶部504に記憶されたデバイス鍵で復号可能な暗号平文鍵を復号して、平文鍵を得る。また、MKB処理部506は、復号情報取得部502が取得した復号情報に含まれるMKB識別情報と、MKB記憶部505に記憶されているMKBに割り当てられているMKB識別情報とが同一でない場合、前者のMKB識別情報が割り当てられてMKBを例えばトラッカ51、販売サーバ54又はコンテンツ製作者が用意したサーバなど鍵サーバ53以外の他の通信装置から取得する。そして、MKB処理部506は、取得したMKBに含まれる暗号化平文鍵のうち、デバイス鍵記憶部504に記憶されたデバイス鍵で復号可能な暗号平文鍵を復号して、平文鍵を得る。
【0043】
変換部507は、復号情報取得部502が取得した復号情報に含まれるシード情報を用いてMKB処理部506が得た平文鍵を以下の式1により変換して、変換平文鍵を得る。変換平文鍵は、復号情報取得部502が取得した復号情報に含まれる暗号化鍵束を復号するための鍵束復号鍵となる。Km’は変換平文鍵を表す。Kmは、平文鍵を表す。Sはシード情報を表す。Fは関数を表す。関数Fとして、例えば、‘F(x,y) =E( x )[ y ] A y’としても良いし、‘F(x,y) =D( x )[ y ] A y’としても良いし、‘F(x,y) =H( x || y)’としても良い。Aは、ビット毎の排他的論理和を表す。Dは、復号関数を表し、D( Key )[ X ]はXがKeyで復号されていることを表す。つまり、‘C=D( Key )[ E( Key )[ C ] ]’である。Hは、ハッシュ関数を表す。||は、データの連結を表す。
Km’=F(Km, S)・・・(式1)
【0044】
鍵束復号部508は、変換部507が変換した変換平文鍵を用いて、以下の式2により、復号情報取得部502が取得した暗号化鍵束を復号して、コンテンツ取得部500が取得した各暗号化ピースを復号するための各復号鍵を得る。Zは、鍵束を表す。K(i1,1),K(i2,2), …,K(iN,N)(ただし、1≦i1, …, iN≦m)は、各ピースC1〜CNに各々対応する復号鍵であって鍵束に含まれる各復号鍵を表す。
K(i1,1)||K(i2,2)|| ... ||K(iN,N)=D( Km’)[Z]・・・(式2)
【0045】
コンテンツ復号部503は、コンテンツ取得部500が取得した各暗号化ピースを、鍵束復号部508が得た各復号鍵を用いて各々復号して、復号した各ピースから構成されるコンテンツを取得する。
【0046】
尚、リーチャ50は、上述したように、シーダとして機能する場合もあるが、その機能的構成については、シーダ52の構成において説明したため、ここでは、その説明を省略する。
【0047】
<鍵サーバ53の構成>
次に、鍵サーバ53のCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図12は、鍵サーバ53の機能的構成を例示する図である。鍵サーバ53は、制御部530と、パケット処理部531と、ネットワークインターフェース部532と、平文鍵記憶部533と、コンテンツ復号鍵記憶部534と、シーケンス情報記憶部536と、シーケンス情報照合部535と、暗号化鍵供給部537と、シード情報生成部538と、暗号化部539とを有する。制御部530と、シーケンス情報照合部535と、ネットワークインターフェース部532と、パケット処理部531と、暗号化鍵供給部537と、シード情報生成部538と、暗号化部539との実体は、CPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。コンテンツ復号鍵記憶部534と平文鍵記憶部533とは、例えば、外部記憶装置に記憶されるものである。
【0048】
制御部530は、鍵サーバ53全体を制御し、ネットワークインターフェース部532を介して、リーチャ50から要求メッセージを受信したり、シーケンス情報照合部535から暗号化鍵供給部537への指示を仲介したりする。パケット処理部531は、リーチャ50などの外部装置に送信する各種データをパケット化してネットワークインターフェース部532に受け渡したり、ネットワークインターフェース部532から受け渡されたパケットを基にデータを取得したりする。ネットワークインターフェース部532は、外部装置との通信を制御し、パケット処理部531から受け渡されたパケット化されたデータを送信したり、外部装置から受信したパケットをパケット処理部531に受け渡したりする。
【0049】
平文鍵記憶部533は、平文鍵を、当該平文鍵が暗号化された暗号化平文鍵を含むMKBに対応付けられているMKB識別情報及びコンテンツ識別情報と対応付けて記憶している。
【0050】
コンテンツ復号鍵記憶部534は、例えば、HDDなどの外部記憶装置において構成され、各暗号化ピースを各々復号するための各復号鍵を各々記憶する。各復号鍵は、上述したように、例えばK ( i, j )として表される。
【0051】
シーケンス情報記憶部536は、例えばHDDなどの外部記憶装置において構成され、リーチャ50に過去に送信した全ての鍵束に各々対応するシーケンスを示すシーケンス情報をコンテンツ識別情報及びリーチャ識別情報と対応付けて記憶する。鍵束に各々対応するシーケンスは、上述したインデックス情報に示されるシーケンスと同様に、例えば以下のように表される。
{(i1,1),(i2,2),…,(iN,N)}
(ただし、1≦i1,…,iN≦m)
【0052】
シーケンス情報照合部535は、シーケンス情報記憶部536に記憶されたシーケンス情報と、リーチャ50から受信したインデックス情報とを照合することにより、インデックス情報によって示されるシーケンスに対応する鍵束を送信するか否かを決定する。具体的には、シーケンス情報照合部535は、インデックス情報に示されるシーケンスと同一のシーケンスを示すシーケンス情報がシーケンス情報記憶部536に記憶されていない場合、インデックス情報によって示されるシーケンスに対応する鍵束を送信することを決定する。鍵束は、例えば、以下のように表される。ここでは、各ピースC1〜CNに各々対応する復号鍵が左から順に配列されて表されている。
{K(i1,1), K(i2,2), …, K(iN,N)}
(ただし、1≦i1, …,iN≦m)
【0053】
そして、シーケンス情報照合部535は、鍵束を送信することを決定した場合、制御部530を介して、当該鍵束の暗号化に用いるシード情報を生成することをシード情報生成部538に指示する。また、シーケンス情報照合部535は、鍵束を送信しないことを決定した場合、制御部530を介して、当該鍵束の当該リーチャ50への送信禁止を暗号化鍵供給部537に指示する。
【0054】
シード情報生成部538は、リーチャ50から受信した要求メッセージに含まれるコンテンツ識別情報及びリーチャ識別情報と、秘密情報とを用いて、以下の式3によりシード情報を計算することにより、シード情報を生成する。秘密情報とは、リーチャ50に対して公開されていない情報であり、鍵サーバ53が例えばHDDなどの外部記憶装置に記憶している情報である。Kは、秘密情報を表す。Sは、シード情報を表す。CIDは、コンテンツ識別情報を表す。LIDは、リーチャ識別情報を表す。
S=H(K || CID || LID)・・・(式3)
【0055】
暗号化部539は、シーケンス情報照合部535が送信することを決定した鍵束を暗号化する。具体的には、暗号化部539は、シーケンス情報照合部535が送信することを決定した鍵束のシーケンスに応じた復号鍵をコンテンツ復号鍵記憶部534から各々読み出し、リーチャ50から受信した要求メッセージに含まれるコンテンツ識別情報に対応付けられた平文鍵を平文鍵記憶部533から読み出す。そして、暗号化部539は、平文鍵及びシード情報生成部538が生成したシード情報を用いて、以下の式4により、各復号鍵を含む鍵束を暗号化して、暗号化された各復号鍵を含む暗号化鍵束を得る。Zは、暗号化鍵束を表す。K(i1,1),K(i2,2), …,K(iN,N)は、上述したように、各復号鍵を表す。Eは、上述したように暗号化関数を表す。
Z=E( F(Km, S) )[K(i1,1)||K(i2,2)|| ... ||K(iN,N)]・・・(式4)
【0056】
暗号化鍵供給部537は、暗号化部539が鍵束を暗号化して得た暗号化鍵束、鍵束の暗号化に用いたシード情報及びリーチャ50が用いるべきMKBのMKB識別情報を含む復号情報を、ネットワークインターフェース部532を介してリーチャ50に送信する。リーチャ50が用いるべきMKBのMKB識別情報とは、暗号化部539が鍵束の暗号化に用いた平文鍵に対応付けられているMKB識別情報である。
【0057】
<トラッカ51の構成>
次に、トラッカ51の構成について説明する。トラッカ51は、リーチャ50からアクセスされると、P2PネットワークNTに接続されているノードにアクセスするための接続先情報としてノード情報を当該リーチャ50に対して送信する。ノード情報は、IPアドレスとポート番号との組を含んでいる。図13は、ノード情報のデータ構成を例示する図である。同図においては、ノードA〜Bは各々、リーチャ50A〜50B、シーダ52A〜52Cのいずれかであり、当該各ノードのIPアドレスとポート番号との組が示されている。
【0058】
ここで、トラッカ51がノード情報をどのように生成するかについて説明する。例えば、複数のトラッカ51が存在しえる場合、そのうちの1つのトラッカ51に接続するためのトラッカ接続先情報を含むTorrent Fileをあるノードが保持しており、また、暗号化ピースを保持しているとする。当該ノードは、Torrent Fileのトラッカ接続先情報を参照し、当該ノードを一意に識別するためのノード識別情報をトラッカ51に送信する。ノード識別情報とは、例えば、当該ノードのIPアドレスとポート番号とである。トラッカ51は、当該ノード識別情報を受信するとこれを用いて図13に示されるようなノード情報を生成する。
【0059】
(2)動作
次に、本実施の形態にかかるコンテンツ配信システムで行うコンテンツ配信処理の手順について図14を用いて説明する。尚、リーチャ50は、暗号化ピースを他のリーチャ50からも受信可能であるが、ここでは、説明の便宜上、暗号化ピースをシーダ52A〜52Cからの少なくとも1つから受信するものとする。
【0060】
リーチャ50は、まず、販売サーバ54にアクセスして、Torrent Fileを取得する(ステップS1)。そして、リーチャ50は、Torrent Fileに含まれるトラッカ情報に含まれるトラッカ接続先情報を用いてトラッカ51にアクセスすると(ステップS2)、トラッカ51はリーチャ50に対して、ノード情報を送信する(ステップS3)。リーチャ50は、ノード情報を受信すると(ステップS4)、ノード情報を用いて、例えばシーダ52A〜52Cの少なくとも1つにアクセスする(ステップS5)。シーダ52は、リーチャ50からアクセスされると、自身の保持する暗号化ピースのシーケンスを示すピース情報をリーチャ50へ送信する(ステップS6)。
【0061】
リーチャ50は、ピース情報を受信すると(ステップS7)、当該ピース情報を用いて、少なくとも1つのシーダ52にアクセスする(ステップS8)。そして当該シーダ52に対して、各ピースC1〜CNに各々対応して複数存在しえる暗号化ピースのうち少なくとも1つを要求するピース要求をリーチャ50は送信して、各暗号化ピースを受信する。シーダ52は、リーチャ50からのピース要求に応じて、自身の保持する暗号化ピースをリーチャ50に送信する(ステップS9)。具体的には、リーチャ50は、例えば、シーダ52Bにアクセスして受信したピース情報を用いて、ピースC1が暗号化された暗号化ピースE( K( i1, 1 ) )[ C1 ](i1は1≦i1≦mの整数)のうち例えば「i1=1」の暗号化ピースをシーダ52Bが保持しているか否かを判断し、当該判断結果が肯定的である場合、当該シーダ52Bにアクセスして、当該暗号化ピースE( K( 1, 1 ) )[ C1 ]をシーダ52Bから受信することによりこれを取得する。尚、シーダ52Bが当該暗号化ピースE( K( 1, 1 ) )[ C1 ]を実際には保持していなかった場合、リーチャ50は、次いで、他のシーダ52(例えばシーダ52C)にアクセスして、当該他のシーダ52Cからピース情報を取得する。そして、リーチャ50は、上述と同様にして、ピース情報を用いて、当該暗号化ピースをシーダ52Cが保持しているか否かを判断して、当該判断結果が肯定的である場合、シーダ52にアクセスして、当該暗号化ピースの取得を試みる。リーチャ50は、このような処理を繰り返して、各暗号化ピースから構成される暗号化コンテンツ{E( K( i1, 1 ) )[ C1 ], E( K( i2, 2 ) )[ C2 ], …, E( K( iN, N ))[ CN ]}を得る。
【0062】
なお、リーチャ50が、ピースCj(1≦j≦N)に対応して複数存在しえる暗号化ピースのうちいずれの暗号化ピースを取得対象とするか、即ち、E( K( i1, j ) )[ Cj ](i1は1≦i1≦mの整数)につきi1を「1」から「m」のうちいずれの値にするかについては、任意である。従って、リーチャ50が、各ピースC1〜CNに対応して各々取得した暗号化ピースにシーケンス{( i1, 1 ), ( i2, 2 ), …,(iN, N )}は、任意のものとなる。
【0063】
また、ステップS9で送信される暗号化ピースを完全には受信することができないと判断されたとき、リーチャ50は、ステップS9よりも前のいずれかのステップに戻って処理をやり直すことができる。完全には受信することはできないと判断される場合とは、例えば、暗号化ピースや特定の暗号化ピースの一部を受信していたとしても、それらの取得を試みて失敗した回数や、取得を開始してからの時間が所定の閾値以上となる場合などである。
【0064】
リーチャ50は、コンテンツを構成する各ピースに各々対応する暗号化ピースであって暗号化コンテンツを構成する全ての暗号化ピースを取得すると、各暗号化ピースを各々復号するため復号情報を要求する要求メッセージを鍵サーバ53に送信する(ステップS10)。この要求メッセージには、各復号鍵に対応するシーケンスを示すインデックス情報{( i1, 1 ),…, ( iN, N)}と、コンテンツ識別情報及びリーチャ識別情報とが含まれる。
【0065】
鍵サーバ53の制御部530は、ネットワークインターフェース部532を介して、当該要求メッセージを受信すると(ステップS11)、シーケンス情報照合部535は、ステップS11で受信された要求メッセージに含まれるインデックス情報を用いて、照合処理を行う(ステップS12)。図15は、照合処理の手順を示すフローチャートである。照合処理では、シーケンス情報照合部535は、ステップS11で受信された要求メッセージに含まれるインデックス情報と、シーケンス情報記憶部536に記憶されているシーケンス情報とを照合し(ステップS140)、インデックス情報に示されるシーケンスと同一のシーケンスを示すシーケンス情報がシーケンス情報記憶部536に記憶されているか否かを判断する(ステップS141)。即ち、リーチャ50から要求されている鍵束が過去にリーチャ50のいずれかに送信されたか否かが判断される。
【0066】
当該判断結果が否定的である場合(ステップS141:NO)、シーケンス情報照合部535は、インデックス情報に示されるシーケンスに対応する鍵束{K( i1, 1 ), K( i2, 2 ), …, K( iN, N )}を送信することを決定する。そして、シーケンス情報照合部535は、当該シーケンスを示すシーケンス情報をシーケンス情報記憶部536に記憶させる(ステップS142)。次いで、シーケンス情報照合部535は、制御部530を介して、シード情報を生成するようシード情報生成部538に指示する。尚、ステップS141の判断結果が肯定的である場合、シーケンス情報照合部535は、当該鍵束を送信しないことを決定し、制御部530を介して、当該鍵束の当該リーチャ50への送信禁止を暗号化鍵供給部537に指示する(ステップS144)。
【0067】
ここでは、シード情報生成部538は、制御部530を介してシーケンス情報照合部535からシード情報の生成が指示されるとする。図14に戻り、この場合、シード情報生成部538は、上述の式3によりシード情報を計算することにより、シード情報を生成する。次いで、暗号化部539は、シーケンス情報照合部535が送信することを決定した鍵束のシーケンスに応じた復号鍵をコンテンツ復号鍵記憶部534から各々読み出し、リーチャ50から受信した要求メッセージに含まれるコンテンツ識別情報に対応付けられた平文鍵を平文鍵記憶部533から読み出す。そして、暗号化部539は、平文鍵記憶部533から読み出した平文鍵及びシード情報生成部538が生成したシード情報を用いて、上述の式4により、鍵束を暗号化して、暗号化鍵束を得る(ステップS13)。その後、暗号化鍵供給部537は、ステップS13で得られた暗号化鍵束、鍵束の暗号化に用いたシード情報及びリーチャ50が用いるべきMKBのMKB識別情報を含む復号情報を、ネットワークインターフェース部532を介してリーチャ50に送信する(ステップS14)。
【0068】
一方、リーチャ50は、復号情報を鍵サーバ53から受信した場合(ステップS15:YES)、MKB処理部506がMKB処理を行う(ステップS16)。図16は、MKB処理部506が行うMKB処理の手順を示すフローチャートである。同図に示されるMKB処理は、例えば上述の参考文献2において開示されているMKB方式に則っている。MKB処理部506は、復号情報に含まれるMKB識別情報を用いて、当該リーチャ50が用いるべきMKBを取得する(ステップS151)。復号情報に含まれるMKB識別情報と、MKB記憶部505に記憶されているMKBに対応付けられているMKB識別情報とが同一である場合には、MKB処理部506は、MKB記憶部505からMKBを読み出す。また、復号情報に含まれるMKB識別情報と、MKB記憶部505に記憶されているMKBに対応付けられているMKB識別情報とが同一でない場合には、MKB処理部506は、復号情報に含まれるMKB識別情報が対応付けられたMKBを例えばトラッカ51、販売サーバ54又はコンテンツ製作者が用意したサーバなど鍵サーバ53以外の他の通信装置に要求してこれを受信する。そして、このようにして取得したMKBに含まれている暗号化平文鍵のうち、デバイス鍵記憶部504に記憶されているデバイス鍵で復号可能な暗号化平文鍵とデバイス鍵との組をMKB処理部506は検索する(ステップS152)。つまり、MKB処理部506は、どのデバイス鍵を用いてどの暗号化平文鍵を復号すればよいかを決定する。この検索は、例えば、各デバイス鍵に割り当てられたデバイス鍵識別情報を用いてMKB処理部506は行う。尚、各暗号化平文鍵に識別情報が割り当てられている場合にはMKB処理部506はこの識別情報も用いて検索を行えば良い。そしてMKB処理部506は、検索の結果得られた組におけるデバイス鍵を用いて暗号化平文鍵を復号して、平文鍵を得る(ステップS153)。
【0069】
図14に戻り、リーチャ50の変換部507は、ステップS15で受信された復号情報に含まれるシード情報を用いて、ステップS16で得られた平文鍵を上述の式1により変換して、変換平文鍵を得る。リーチャ50の鍵束復号部508は、変換部507が変換した変換平文鍵を用いて、上述の式2により、ステップS15で受信された復号情報に含まれる暗号化鍵束を復号して、コンテンツ取得部500が取得した各暗号化ピースを復号するための各復号鍵を得る(ステップS17)。そして、コンテンツ復号部503は、各復号鍵を用いて、各暗号化ピースE( K( i1, 1 ) )[ C1 ], E( K( i2, 2 ) )[ C2 ], …, E( K( iN, N )[ CN ])をそれぞれ復号し、復号した各ピースC1〜CNを得て、これらから構成されるコンテンツCを得る(ステップS18)。即ち、リーチャ50は、復号鍵K( i1, 1 )を用いてE( K( i1, 1 ) )[ C1 ]を復号して、ピースC1を得て、復号鍵K( i2, 2 )を用いてE( K( i2, 2 ) )[ C2 ]を復号して、ピースC2を得て、復号鍵K( iN, N )を用いてE( K( iN, N ))[ CN ]を復号して、ピースCNを得て、他のピースについても同様にして得ることにより、各ピースC1〜CNから構成されるコンテンツCを得る。
【0070】
尚、リーチャ50が無効化されている場合、ステップS16で得られた平文鍵を用いて暗号化鍵束を復号しても、正しい復号鍵を得ることができない。従って、このような復号鍵を用いて各暗号化ピースを復号したとしても、正しく復号することができない。即ち、無効化されているリーチャ50は、コンテンツを正しく復号することができず、コンテンツを利用できないことになる。
【0071】
以上のように、P2Pネットワークを介して、同一のコンテンツを複数のリーチャ50に配信する場合、暗号化ピースのシーケンスを用いて、鍵サーバ53が鍵束の送信の可否を決定する。そして鍵サーバ53が送信すると決定した鍵束をMKB方式を適用して暗号化することにより、暗号化した鍵束をリーチャ50が復号するために平文鍵を必要とする構成にする。このような構成によれば、不正なリーチャ50がいずれかであるかを示すブラックリストなどの情報を鍵サーバ53が管理する必要がなく、不正なリーチャ50を無効化して不正なリーチャ50がコンテンツを利用することを阻止することができる。また、暗号化鍵束を復号するために必要な情報としてシード情報をリーチャ50が鍵サーバ53から送信する構成とすることにより、復号情報が要求される毎にシード情報を異ならせることができる。このため、リーチャ50がコンテンツを利用するために鍵サーバ53へアクセスすることを強制することができる。これは、万が一デバイス鍵が漏洩してしまった場合でも、リーチャ50が鍵サーバ53へアクセスすることなしに、漏洩したデバイス鍵のみを用いて暗号化鍵束を復号することができないことを意味する。即ち、デバイス鍵漏洩の被害を抑えることができる。また以上のような構成によれば、鍵サーバ53において、例えば同一のリーチャ識別情報及びコンテンツ識別情報を利用して復号情報を要求する要求メッセージを監視することによって、不正なリーチャ50の検出を行うことも可能になる。
【0072】
[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
【0073】
<変形例1>
上述した実施の形態において、リーチャ50で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また当該各種プログラムを、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記憶媒体に記録して提供するように構成しても良い。この場合には、プログラムは、リーチャ50において上記記憶媒体から読み出して実行することによりRAMなどの記憶装置上にロードされ、上記機能的構成において説明した各部が記憶装置上に生成される。鍵サーバ53で実行される各種プログラムについても同様である。
【0074】
<変形例2>
上述の実施の形態においては、鍵サーバ53はシーケンス情報照合部535及びシーケンス情報記憶部536を備えるように構成し、リーチャ50は、ステップS10で鍵サーバ53へ送信する要求メッセージにインデックス情報を含め、鍵サーバ53は、ステップS12でインデックス情報を用いて照合処理を行って、鍵束をリーチャ50に送信するか否かを決定するようにした。しかし、鍵サーバ53はシーケンス情報照合部535及びシーケンス情報記憶部536を備えず、リーチャ50はステップS10で鍵サーバ53へ送信する要求メッセージにインデックス情報を含めず、鍵サーバ53はステップS12の照合処理を行わずに、ステップS11の後ステップS13以降の処理を行うようにしても良い。
【0075】
また、上述の実施の形態において、図3に示したように、N個のうちa個のピースについては、同一のピースに対して、各々異なるm個の暗号鍵で暗号化されるようにした。しかし、a個のピースについては、複数の暗号鍵ではなく1つの暗号鍵で暗号化されるが、(N−a)個のピースが暗号化される暗号鍵とは異なる暗号鍵で暗号化されるようにしても良い。また、N個の全てのピースが同一の暗号鍵で各々暗号化されるようにしても良い。
【0076】
また、上述の実施の形態においては、コンテンツを構成する各ピースに対しては、1回の暗号化を施して、1つの復号鍵で復号可能であるように構成したが、少なくとも1つのピースに対して多重に暗号化を施し、当該ピースの復号に2つ以上の復号鍵が必要であるように構成しても良い。
【0077】
ピースを複数の暗号化鍵で多重に暗号化する場合、各リーチャ50には装置秘密情報が与えられており、リーチャ50は、当該装置秘密情報を暗号鍵として、シーダ52や他のリーチャ50などの他のノードから受信した暗号化ピースを暗号化して、暗号化した当該暗号化ピースをその他のリーチャ50に送信する。このように、暗号化ピースが各ノードから送信される度に暗号化が施されるようにする。例えば、暗号化を行ったリーチャ50(例えばリーチャ50Aとする)は、自身のリーチャ識別情報も暗号化ピースの送信先のその他のリーチャ50(例えばリーチャ50Bとする)に送信する。リーチャ50Bは、暗号化ピースに更なる暗号化を行ってその他のリーチャ50(例えばリーチャ50Cとする)に送信する場合、暗号化ピースを受信元であるリーチャ50Aのリーチャ識別情報と自身のリーチャ識別情報とをあわせてリーチャ50Cへ送信する。
【0078】
尚、リーチャ50に与えられた装置秘密情報SA自体を、暗号化ピースを暗号化するための暗号化鍵として用いる必要は必ずしもなく、例えば、リーチャ50が生成した乱数RAを用いて、ハッシュ値H(SA || RA)を計算してこれを暗号化鍵としても良いし、関数により暗号化鍵F(SA, RA)を計算しても良い。この場合、リーチャ50(リーチャ50A)は、暗号化鍵の計算に用いた乱数RAもその他のリーチャ50(リーチャ50B)に送信する。リーチャ50Bは、その他のリーチャ50(リーチャ50C)に暗号化ピースを送信する場合、リーチャ50Aから送信された乱数と自身が生成した乱数とをあわせてリーチャ50Cに送信する。
【0079】
また、リーチャ50は暗号化ピース全体を暗号化する必要は必ずしもなく、暗号化ピースの一部分のみを暗号化しても良い。この場合、リーチャ50(リーチャ50A)は、暗号化ピースのどの部分を暗号化したかに関する情報(例えば、暗号化ピースの先頭(0番目のデータとする)から32バイト分のデータを暗号化した場合には(0,31))をその他のリーチャ50(リーチャ50B)に送信する。リーチャ50Bは、その他のリーチャ50(リーチャ50C)に暗号化ピースを送信する場合、リーチャ50Aが暗号化ピースのどの部分を暗号化したかに関する情報と自身が暗号化ピースのどの部分を暗号化したかに関する情報をあわせてリーチャ50Cに送信する。この際、暗号化ピースに暗号化を行ったリーチャ50の順番が分かるように、例えば、リーチャ50Aの次にリーチャ50Bが暗号化したことが分かるように、暗号化ピースのどの部分を暗号化したかに関する情報を順番に並べていく。ここで、例えば、ピースの長さを128バイトとして、初期シーダ52Aはピース全体(例えば128バイト分のデータ)を暗号化し、次に暗号化ピースを受信したリーチャ50Aは先頭から16バイト分のデータを暗号化し、リーチャ50Cから暗号化ピースを受信したリーチャ50Bは先頭から16バイト飛ばした次の16バイトのデータを暗号化する、というように暗号化ピースを受信した順番によってデータのどの部分を暗号化するかを予め定めるようにしても良い。この場合、暗号化ピースのどの部分を暗号化したかに関する情報に代えて、暗号化ピースがいくつのノード(リーチャ50、シーダ52)を経由してきたかに関する情報を用いれば良い。この情報は、リーチャ50が暗号化ピースを受信したノードが、例えば初期シーダ52Aである場合’0‘であり、リーチャ50Aである場合’1‘、リーチャ50Bである場合’2‘である。例えば、リーチャ50Bは、リーチャ50Aから暗号化ピースを受信すると、この情報を‘1’から‘2’に上書きする。
【0080】
また、ピースを複数の暗号化鍵で多重に暗号化する場合、リーチャ50が鍵サーバ53へ送信する上述の要求メッセージには、暗号化ピースが経由してきた全てのノードのノード識別情報を含ませる。また、上述のように暗号化鍵の生成に乱数を用いる場合、上述の要求メッセージには暗号化ピースが経由してきた全てのノードの乱数を含ませる。同様に、暗号化ピースのどの部分を暗号化したかに関する情報が含まれていても良いし、暗号化ピースがいくつのノードを経由してきたかに関する情報を含んでいても良い。
【0081】
なお、上述の実施の形態におけるコンテンツ配信システムでは、‘1≦i1, …, iN≦m’であったが、以上のようにピースを複数の暗号化鍵で多重に暗号化する場合、‘m=1’としても良い。この場合、インデックス情報としてi1, …, iNを含めなくても良い。
【0082】
一方、ピースを複数の暗号化鍵で多重に暗号化する場合の鍵サーバ53は以下の通りである。鍵サーバ53は、各リーチャ50に与えられた装置秘密情報を保持している。鍵サーバ53は、リーチャ50から要求メッセージを受信すると、暗号化ピースが経由してきた全てのノードのノード識別情報から、暗号化ピースが経由してきた各ノードに与えられた装置秘密情報を検索し、これらを鍵束として取得する。上述のように暗号化鍵の生成に乱数を用いる場合、鍵サーバ53は、暗号化ピースが経由してきた各ノードに与えられた装置秘密情報と、それに対応するノードの乱数とを用いて復号鍵を各々計算し(上述の例においてはH(SA || RA)又はF(SA, RA)である)、計算結果を鍵束として取得する。尚、鍵サーバ53が各リーチャ50に与えられた装置秘密情報を保持している必要は必ずしもなく、例えば、リーチャ50(リーチャ識別情報の値をLIDAとする)に与えられる装置秘密情報が‘SA=H(Kmaster || LIDA)又はSA=F(Kmaster, LIDA)’と定められている場合、鍵サーバ53はKmasterの値と関数H又はFのアルゴリズムのみを知っていれば良く、要求メッセージに含まれているLIDからその識別情報の対応するリーチャ50に与えられた装置秘密情報を計算することができる。
【0083】
また、ピースの暗号化は、ノードから送信される度にではなく、暗号化ピースが経由してきた全てのノードのうち少なくとも2つ以上により行われるようにしても良い。
【0084】
このように、暗号化ピースを復号するための復号鍵又はその復号鍵を得るために必要な情報をリーチャ50が鍵サーバ53から受信するコンテンツ配信システムであれば、本実施の形態にかかるMKB方式による鍵束の暗号化を、種々のコンテンツ配信システムに適用することができる。
【0085】
<変形例3>
上述した実施の形態において、鍵サーバ53は、リーチャ50から要求メッセージを受信した際に、リーチャ50が適切なMKBを保持しているか否かをチェックするようにしても良い。この場合、各暗号化ピースから構成されるコンテンツには、コンテンツ識別情報の他、各暗号化ピースを復号するための鍵束の暗号化及び暗号化鍵束の復号に用いるMKBに割り当てられたMKB識別情報が対応付けられている。このコンテンツ識別情報とMKB識別情報との対応関係を例えば鍵サーバ53が予め記憶している。リーチャ50は、自身の保持するMKBに対応付けられているMKB識別情報を要求メッセージに含めて鍵サーバ53に送信する。鍵サーバ53は、要求メッセージを受信すると、当該要求メッセージに含まれるコンテンツ識別情報を検索キーとして、当該コンテンツ識別情報に対応付けられて平文鍵記憶部533に記憶された平文鍵と、当該平文鍵に対応付けられているMKB識別情報との組を検索する。そして、鍵サーバ53は、検索キーとして用いてコンテンツ識別情報に対応付けられて平文鍵記憶部533に記憶された対応付けられたMKB識別情報と、当該コンテンツ識別情報に対応付けられて鍵サーバ53に予め記憶されたMKB識別情報と、リーチャ50から受信した要求メッセージに含まれるMKB識別情報とが同一であるか否かを判定する。これらのMKB識別情報が同一であると判定した場合、鍵サーバ53は処理を続行し、図14のステップS14の照合処理を行う。以降は上述の実施の形態と同様である。一方、これらのMKB識別情報が同一でないと判定した場合、その旨を鍵サーバ53はリーチャ50へ通知して、処理を終了する。このとき、鍵サーバ53は、リーチャ50が取得すべきMKBの取得先に関する情報をリーチャ50へ送信しても良い。MKBの取得先に関する情報とは、例えば、MKBを保持するサーバへアクセスするためのURL(Uniform Resource Locator)などのアクセス情報である。
【0086】
以上のような構成によれば、リーチャ50が適切なMKBを保持していない場合には、照合処理や鍵束を暗号化して送信する処理を行わないため、不正なリーチャ50のコンテンツの利用を抑制することができると共に、鍵サーバ53の処理負担を軽減することができる。
【0087】
<変形例4>
上述した実施の形態において、鍵サーバ53は、平文鍵記憶部533を有し、平文鍵を記憶するように構成した。しかし、これに限らず、鍵サーバ53は、平文鍵を記憶するのでなく、MKBとデバイス鍵とを記憶してこれらを用いて平文鍵を計算するようにしても良い。図17は、本変形例にかかる鍵サーバ53の構成を例示する図である。鍵サーバ53は、平文鍵記憶部533の代わりに、MKBを記憶するMKB記憶部541と、デバイス鍵を記憶するデバイス鍵記憶部542とを有し、更にMKB処理部540を有する。MKB処理部540は、MKB記憶部541に記憶されたMKBに含まれる暗号化平文鍵のうち、デバイス鍵記憶部542に記憶されたデバイス鍵で復号可能な暗号化平文鍵を復号して、平文鍵を得る。暗号化部539は、MKB処理部540が得た平文鍵と、上述のシード情報生成部538が生成したシード情報とを用いて、鍵束を暗号化して暗号化鍵束を得る。
【0088】
また、この場合、鍵サーバ53は、MKBをMKB記憶部505に予め記憶するのではなく、MKBをリーチャ50から取得するようにしても良い。この場合、リーチャ50は、復号情報を要求する要求メッセージに、リーチャ50が有するMKBのMKB識別情報ではなく、MKB自体を含ませて鍵サーバ53に送信するようにすれば良い。
【0089】
<変形例5>
上述した実施の形態において、鍵サーバ53は、復号情報をリーチャ50に送信する際に、リーチャ50が用いるべきMKBのMKB識別情報の代わりに、当該MKB自体を送信しても良い。この場合、リーチャ50は鍵サーバ53から受信したMKBを用いて上述のMKB処理を行えば良い。このような構成によれば、リーチャ50はMKBを予め記憶しておく必要がないため、リーチャ50のメモリリソースを節約することができる。
【0090】
また、この場合、鍵サーバ53は、MKB全体をリーチャ50に送信するのではなく、MKBに含まれる情報のうち、リーチャ50が暗号化鍵束を復号するために必要な情報のみをリーチャ50に送信するようにしても良い。リーチャ50が暗号化鍵束を復号するために必要な情報とは、例えば、MKBに含まれる暗号化平文鍵のうち、リーチャ50の有するデバイス鍵に割り当てられたデバイス鍵識別情報に対応してMKBに含まれている暗号化平文鍵である。このような構成によれば、鍵サーバ53がリーチャ50にMKBを送信する場合であっても、送信するデータ量を低減することができる。
【0091】
また、この場合、鍵サーバ53は、鍵束の暗号化には、MKBに含まれる各暗号化平文鍵自体ではなく、平文鍵を式1により変換した変換平文鍵(同式においてはKm’)を用いても良い。この場合、リーチャ50の変換部507は、MKB処理部506により得た平文鍵を式1により変換し、鍵束復号部508が、変換された平文鍵(変換平文鍵)を用いて暗号化鍵束を復号して鍵束を得る。
【0092】
<変形例6>
上述した実施の形態において、MKB識別情報は、MKBの通し番号であるとしたが、これに限らず、例えば、数字やアルファベット等を組み合わせた識別子であっても良いし、MKBのハッシュ値であっても良いし、MKBのバージョン情報であっても良いし、MKBに対するディジタル署名であっても良いし、MKBのファイル名であっても良い。図11では、MKBにMKB識別情報が含まれる場合のMKBのデータ構成を例示したが、これに限らず、例えば、MKBのハッシュ値をMKB識別情報とする場合など、MKB自体から各MKBを識別可能な場合、MKB識別情報をMKBに含ませなくても良い。
【0093】
<変形例7>
上述した実施の形態において、鍵サーバ53は、異なる複数の各リーチャ50に各々割り当てられたデバイス鍵を記憶し、鍵サーバ53がMKBを生成するようにしても良い。鍵サーバ53は、以下の式5によりデバイス鍵を変換して(変換デバイス鍵という)、変換デバイス鍵を用いて平文鍵を暗号化した暗号化平文鍵を含むMKBを生成する。Kd’は、変換デバイス鍵を表す。Kdは、リーチャ50に割り当てられたデバイス鍵を表す。Fは、関数を表す。
Kd’=F(Kd, S)・・・(式5)
【0094】
そして、鍵サーバ53は、例えば、自身が生成したMKBに含まれる各暗号化平文鍵が変換デバイス鍵を用いて復号される結果である平文鍵を用いて鍵束を暗号化する。そして、鍵サーバ53は、自身が生成したMKB、鍵束を暗号化した暗号化鍵束及びシード情報を含む復号情報をリーチャ50へ送信する。一方、リーチャ50では、復号情報取得部502が復号情報を受信すると、変換部507が、デバイス鍵記憶部504に記憶されたデバイス鍵と、復号情報に含まれるシード情報とを用いて、上述の式5により変換デバイス鍵を計算する。そして、MKB処理部506が、復号情報に含まれるMKBに含まれる暗号化平文鍵のうち、計算された変換デバイス鍵を用いて復号可能な暗号化平文鍵を復号して、平文鍵を得る。そして、鍵束復号部508が、得られた平文鍵を用いて暗号化鍵束を復号して鍵束を得る。尚、鍵サーバ53は、鍵束の暗号化には、自身が生成したMKBに含まれる各暗号化平文鍵自体ではなく、平文鍵を式1により変換した変換平文鍵(同式においてはKm’)を用いても良い。この場合、リーチャ50の変換部507は、MKB処理部506により得た平文鍵を式1により変換し、鍵束復号部508が、変換された平文鍵(変換平文鍵)を用いて暗号化鍵束を復号して鍵束を得る。
【0095】
尚、鍵サーバ53は、デバイス鍵を変換せずに、当該デバイス鍵を用いて平文鍵を暗号化した暗号化平文鍵を含むMKBを生成するようにしても良い。そして、鍵サーバ53は、平文鍵を式1により変換した変換平文鍵を用いて鍵束を暗号化するようにしても良い。
【0096】
<変形例8>
上述した実施の形態において、鍵サーバ53は、MKBをMKB記憶部505に予め記憶している場合であっても、上述した式5によりデバイス鍵を変換した変換デバイス鍵を用いて平文鍵を暗号化しても良い。そして、鍵サーバ53は、平文鍵を用いて鍵束を暗号化するようにしても良いし、平文鍵を式1により変換した変換平文鍵を用いて鍵束を暗号化するようにしても良い。
【0097】
<変形例9>
上述した実施の形態において、リーチャ50のMKB処理部506は、復号情報に含まれるMKB識別情報と、MKB記憶部505に記憶されているMKBに対応付けられているMKB識別情報とが同一でない場合に、例えばトラッカ51、販売サーバ54又はコンテンツ製作者が用意したサーバなど鍵サーバ53以外の他の通信装置からMKBを取得するようにした。しかし、他の装置は、これに限らず、鍵サーバ53であっても良い。この場合、鍵サーバ53は、例えば、復号情報をリーチャ50へ送信する際にMKBも共に送信すれば良い。また、MKBがTorrent Fileに含まれるようにしても良い。この場合、リーチャ50に対してTorrent Fileを与える販売サーバなどの通信装置からリーチャ50はMKBを取得することになる。また、Torrent FileにMKBの取得先のURLを含めても良い。この場合、リーチャ50は、当該URLを用いてアクセス可能な他の通信装置からMKBを取得する。また、MKB自体も暗号化ピースのひとつとしてP2PネットワークNTで送受信されるようにしても良い。また、リーチャ50は、他の通信装置からMKBを取得するのではなく、例えばCD−ROMなどの記憶媒体に記録されたMKBをオフラインで取得するようにしても良い。
【0098】
<変形例10>
上述した実施の形態において、シード情報はリーチャ50毎及びコンテンツ毎に異なる値となるように計算したが、これに限らない。例えばリーチャ50をグループ分けした場合、同一グループのリーチャ50には同一のシード情報を割り当てるようにしても良い。
【0099】
<変形例11>
【0100】
上述した実施の形態において、鍵サーバ53のシード情報生成部538は、上述の式3によりシード情報を計算したが、以下の式6によりシード情報を計算しても良い。Fは、関数を表す。
S=F( F(K, CID), LID)・・・(式6)
【0101】
また、上述した実施の形態において、暗号化部539は関数Eを用いて、鍵束を暗号化したが、鍵束のデータ長が大きい場合は、例えば関数Eを共通鍵暗号としてCBCモードを用いれば良い。この場合、リーチャ50の鍵束復号部508が、暗号化鍵束を復号する際に用いる関数Dについても、同一の共通鍵暗号のCBCモードを用いれば良い。
【0102】
<変形例12>
上述した実施の形態において、鍵サーバ53の暗号化部539は、リーチャ50から要求メッセージを受信した後に鍵束を暗号化して暗号化鍵を得たが、これに限らず、鍵束を予め暗号化して暗号化鍵束を予め記憶しておくようにしても良い。
【0103】
<変形例13>
上述した実施の形態において、鍵サーバ53は、鍵束を暗号化した暗号化鍵束と、シード情報とを含む復号情報をリーチャ50に送信するようにした。しかし、鍵サーバ53は、暗号化鍵束をリーチャ50に送信せず、シード情報を復号情報としてリーチャ50へ送信しても良い。この場合、リーチャ50は、例えばトラッカ51、販売サーバ54又はコンテンツ製作者が用意したサーバなど鍵サーバ53以外の他の通信装置から暗号化鍵束を受信することにより取得する。この場合、鍵サーバ53は、上述の要求メッセージをリーチャ50から受信すると、シード情報をリーチャ50に送信すると共に、暗号化鍵束を当該リーチャ50へ送信することを要求する送信依頼メッセージを当該他の通信装置に送信するようにしても良い。又は、鍵サーバ53は、シード情報と、暗号化鍵束の取得先に関する情報とを含む復号情報をリーチャ50へ送信しても良い。暗号化鍵束の取得先に関する情報とは、例えば、取得先のサーバへアクセスするためのURL(Uniform Resource Locator)などのアクセス情報である。暗号化鍵束の生成については、鍵サーバ53が行い、生成した暗号化鍵束を鍵サーバ53が当該他の通信装置へ渡すようにしても良いし、当該他の通信装置自体が暗号化鍵束の生成を行うようにしても良い。他の通信装置自体が暗号化鍵束の生成を行う場合には、鍵サーバ53は、各暗号化ピースを復号するための各復号鍵を記憶していなくても良く、当該他の通信装置が各復号鍵を記憶し、鍵サーバ53はシード情報を生成してこれを当該他の通信装置に送信すれば良い。即ちこの場合、鍵サーバ53は、図12に示した平文鍵記憶部533,コンテンツ復号鍵記憶部534,暗号化鍵供給部537及び暗号化部539を備えない構成であっても良く、シード情報生成部538は、パケット処理部531及びネットワークインターフェース部532を介してシード情報を当該他の通信装置に送信すれば良い。
【0104】
<変形例14>
上述した実施の形態において、リーチャ50がステップS16で行うMKB処理は、参考文献2に記載されているMKB方式に則るものとしたが、これに限らず、例えば、参考文献2において開示されているMKB方式に則るようにしても良い。この場合、図16に示したステップS152の処理が不要で、リーチャ50は、ステップS151の後ステップS153で、デバイス鍵を用いて暗号化平文鍵を復号して平文鍵を得る。
【0105】
また、上述した実施の形態において、MKBのデータ構成として図11に示したものを用いたが、これに限らない。例えば、上述の参考文献1において開示されているMKB方式を適用した場合のデータ構成が以下の参考文献3において開示されているが、このデータ構成を用いても良い。
(参考文献3)Advanced Access Content System (AACS), Introduction and Common Cryptographic Elements Revision 0.91, February 17, 2006.(http://www.aacsla.com/specifications/specs091/AACS_Spec_Common_0.91.pdf)
【0106】
<変形例15>
上述した実施の形態において、図14のステップS16のMKB処理の後、リーチャ50は、ステップS16で得られた平文鍵が無効化されているか否か(又は正しい平文鍵が得られたか否か)を判定するようにしても良い。この場合、例えば、MKBに平文鍵検証用レコードを含ませる。平文鍵検証用レコードとは、例えば、固定データ(例えば、‘01234XXX’などの数列)を平文鍵Kmで暗号化したものである。固定データはリーチャ50に別途予め記憶させておく。図18は、本変形例にかかるコンテンツ配信処理の手順について上述の実施の形態と異なる部分の手順を示すフローチャートである。ステップS16の後、ステップS20では、リーチャ50は、ステップS16で得られた平文鍵が無効化されているかを判定する。具体的には、リーチャ50は、当該平文鍵を用いて、当該平文鍵を得るために用いたMKBに含まれる平文鍵検証用レコードを復号して、固定データを得る。そして、リーチャ50は、これと、予め記憶された固定データとが一致するか否かを判定する。前者と後者とが一致しない場合、平文鍵が無効化されていると判定する。これは即ち、リーチャ50が無効化されているということである。前者と後者とが一致する場合、平文鍵が無効化されていないと判定する。これは即ち、リーチャ50は無効化されていないということである。そして、平文鍵が無効化されていると判定した場合(ステップS20:YES)、リーチャ50は、リーチャ50が無効化されている旨を表示装置に表示して処理を終了する(ステップS21)。又は、リーチャ50は、デバイス鍵の更新を促す旨を表示装置に表示するようにしても良い。一方、平文鍵が無効化されていないと判定した場合(ステップS20:NO)、リーチャ50は、上述と同様にしてステップS17以降の処理を行う。MKB方式によっては、無効化されるリーチャが平文鍵の計算に必要なデータ(例えば、暗号化平文鍵)をMKBに含ませないことにより無効化を行う場合もある。つまり、無効化されたリーチャは平文鍵を計算することができない。この場合、無効化されていないリーチャ50は、上述の平文鍵検証用レコードを用いて、データの読み取りエラーや計算間違いなど無く、正しい平文鍵が得られたか否かを判定するようにしても良い。図11では、MKBに平文鍵検証用レコードが含まれる場合のMKBのデータ構成を例示したが、これに限らず、上述の判定処理を行わない場合、平文鍵検証用レコードをMKBに含ませなくても良い。
【0107】
このような構成によれば、平文鍵が無効化されている場合、暗号化鍵束を復号する処理を行わないため、リーチャ50の処理負担を軽減することができる。それと共に、リーチャ50が無効化されている旨をユーザに報知することができるため、不正なリーチャ50の検出をスムーズに行うことができる。
【0108】
<変形例16>
上述した実施の形態において、鍵サーバ53はコンテンツ復号鍵記憶部534に各暗号化ピースを各々復号するための各復号鍵を各々記憶する例を説明したが、これに限らず、コンテンツ復号鍵記憶部534を持たない鍵サーバ53の構成も可能である。以下、各復号鍵(例えばK ( i, j )として表される)を記憶せず、計算によって各復号鍵を求める方法の例を説明する。例えば、‘K ( i, j )=H(Kmaster’ || CID || i || j)’と定める。ここで、Kmaster’は鍵サーバ53が保持する秘密情報であり、CIDはリーチャ50からの要求メッセージに含まれているコンテンツ識別情報である。この場合、鍵サーバ53は、Kmaster’の値をコンテンツ復号鍵記憶部534に記憶しておけば良く、要求メッセージに含まれているCIDからリーチャ50に与えるべき復号鍵K ( i, j )を計算することができる。K ( i, j )の計算方法は上述の方法に限らず、例えば、鍵サーバ53が保持する秘密情報をコンテンツ毎(つまりCID毎)に用意(KmasterCIDと表す)し、‘K ( i, j )=F(KmasterCID, i || j)’と定めても良い。この場合、鍵サーバ53は、KmasterCIDの値をコンテンツ復号鍵記憶部534に記憶しておけば良く、要求メッセージに含まれているCIDから用いるべきKmasterCIDをコンテンツ復号鍵記憶部534から取得し、リーチャ50に与えるべき復号鍵K ( i, j )を計算することができる。
【0109】
このような構成によれば、鍵サーバ53はコンテンツ復号鍵記憶部534に各暗号化ピースを各々復号するための各復号鍵を各々記憶する必要がなく、マスター鍵のみを記憶しておけばよいため、コンテンツ復号鍵記憶部534のメモリ容量が小さくて済み、製品コストを削減できる。
【0110】
<変形例17>
上述した実施の形態において、鍵サーバ53は暗号化鍵束Zを式4により計算する例を示したが、Eとして公開鍵暗号を用いることもできる。この場合、鍵サーバ53は、F(Km, S)を秘密鍵として、これに対応する公開鍵を計算し、計算した公開鍵を用いて鍵束を暗号化すれば良い。K(i1,1)||K(i2,2)|| ... ||K(iN,N)のデータサイズが大きい場合、公開鍵暗号処理を複数回行っても良い。
【0111】
<変形例18>
上述した実施の形態におけるデバイス鍵について、以下の式7により定義される多項式f(x)にリーチャ識別情報LIDを代入した値f(LID)を(リーチャ識別情報がLIDであるリーチャの)デバイス鍵としても良い。
【0112】
【数1】

【0113】
ここで、qは素数である。tは整数である。aiはゼロ以上q未満の整数である。以下の式8により定義される多項式g(x) にリーチャ識別情報LIDを代入した値g(LID)を(リーチャ識別情報がLIDであるリーチャが受信する)シード情報Sとしても良い。
【0114】
【数2】

【0115】
ここで、qは素数である。uは整数である。biはゼロ以上q未満の整数である。biの値は、コンテンツ識別情報毎に変えても良い。シード情報を用いて変換した後の(リーチャ識別情報がLIDであるリーチャの)デバイス鍵は、f(LID)+g(LID) mod qと定めても良い。本変形例は、例えば、参考文献2のMKB方式を用いるときに適用することができる。シード情報を用いて変換した後のデバイス鍵をf(x)+g(x) mod qと定める場合、かつ、参考文献2のMKB方式を用いる場合、鍵サーバ53は、f(x)+g(x)の各係数、又はg(x)の各係数と(シード情報を用いて変換する前のデバイス鍵に対応する)公開鍵を用いて(シード情報を用いて変換した後のデバイス鍵に対応する)公開鍵を計算し、その計算した公開鍵を用いて、各暗号化ピースを復号するための鍵束又は暗号化鍵束を復号するための復号鍵を暗号化する。
【図面の簡単な説明】
【0116】
【図1】一実施の形態にかかるコンテンツ配信システムの構成を示すブロック図である。
【図2】同実施の形態にかかるコンテンツが複数のピースに分割された状態を模式的に示す図である。
【図3】同実施の形態にかかる各暗号化ピースを模式的に示す図である。
【図4】同実施の形態にかかるMKB方式において受信者が行う基本的な処理の流れを概念的に示す図である。
【図5】同実施の形態にかかるシーダ52Aが記憶している各暗号化ピースを例示する図である。
【図6】同実施の形態にかかるシーダ52Aが記憶している各暗号化ピースを例示する図である。
【図7】同実施の形態にかかるシーダ52Aが記憶している各暗号化ピースを例示する図である。
【図8】同実施の形態にかかるピース情報のデータ構成を例示する図である。
【図9】同実施の形態にかかるリーチャ50の機能的構成を例示する図である。
【図10】同実施の形態にかかるTorrent Fileを例示する図である。
【図11】同実施の形態にかかるMKBのデータ構成を例示する図である。
【図12】同実施の形態にかかる鍵サーバ53の機能的構成を例示する図である。
【図13】同実施の形態にかかるノード情報のデータ構成を例示する図である。
【図14】同実施の形態にかかるコンテンツ配信処理の手順を示すフローチャートである。
【図15】同実施の形態にかかる照合処理の手順を示すフローチャートである。
【図16】同実施の形態にかかるMKB処理部506が行うMKB処理の手順を示すフローチャートである。
【図17】同実施の形態の一変形例にかかる鍵サーバ53の構成を例示する図である。
【図18】同実施の形態の一変形例にかかるコンテンツ配信処理の手順について同実施の形態と異なる部分の手順を示すフローチャートである。
【符号の説明】
【0117】
50,50A,50B リーチャ(通信装置)
51 トラッカ(管理サーバ)
52,52A,52B,52C シーダ(通信装置)
53 鍵サーバ
54 販売サーバ
500 コンテンツ取得部
501 復号情報要求部
502 復号情報取得部
503 コンテンツ復号部
504 デバイス鍵記憶部
505 MKB記憶部
506 MKB処理部
507 変換部
508 鍵束復号部
530 制御部
531 パケット処理部
532 ネットワークインターフェース部
533 平文鍵記憶部
534 コンテンツ復号鍵記憶部
535 シーケンス情報照合部
536 シーケンス情報記憶部
537 暗号化鍵供給部
538 シード情報生成部
539 暗号化部
540 MKB処理部
541 MKB記憶部
542 デバイス鍵記憶部
NT P2Pネットワーク

【特許請求の範囲】
【請求項1】
コンテンツの一部が暗号化された暗号化ピースを受信する通信装置であって、
第1通信装置から、複数の前記暗号化ピースを受信する第1受信手段と、
第2通信装置に、受信した各前記暗号化ピースを復号するための情報を要求する要求手段と、
自通信装置に割り当られた第1鍵を記憶する第1記憶手段と、
受信した各前記暗号化ピースを復号するための復号鍵であって暗号化された前記復号鍵を前記第2通信装置又は第3通信装置から受信し、当該復号鍵の暗号化に用いられた一時情報を前記第2通信装置から受信する第2受信手段と、
前記一時情報と、前記第1鍵と、前記第1鍵を用いて復号可能に暗号化された第2鍵とを用いて、暗号化された前記各復号鍵を復号する鍵復号手段とを備える
ことを特徴とする通信装置。
【請求項2】
前記鍵復号手段は、
暗号化された前記第2鍵を、前記第1鍵を用いて復号するMKB処理手段と、
前記第2鍵と前記一時情報とを用いて、暗号化された前記各復号鍵を復号するための第3鍵を計算する計算手段と、
前記第3鍵を用いて、暗号化された前記各復号鍵を復号する復号手段とを有する
ことを特徴とする請求項1に記載の通信装置。
【請求項3】
前記第2受信手段は、前記一時情報を用いて変換された前記第1鍵を用いて復号可能に暗号化された前記第2鍵を前記第2通信装置から更に受信し、
前記鍵復号手段は、
前記第1鍵と前記一時情報とを用いて計算を行うことにより、当該第1鍵を変換する計算手段と、
暗号化された前記第2鍵を、変換された前記第1鍵を用いて復号するMKB処理手段と、
前記第2鍵を用いて、暗号化された前記各復号鍵を復号する復号手段とを有する
ことを特徴とする請求項1又は2に記載の通信装置。
【請求項4】
前記第2受信手段は、前記一時情報を用いて変換された前記第1鍵を用いて復号可能に暗号化された前記第2鍵を前記第2通信装置から更に受信し、
前記鍵復号手段は、
前記第1鍵と前記一時情報とを用いて計算を行うことにより、当該第1鍵を変換する計算手段と、
暗号化された前記第2鍵を、変換された前記第1鍵を用いて復号するMKB処理手段と、
前記第2鍵と前記一時情報とを用いて、暗号化された前記各復号鍵を復号するための第3鍵を計算する計算手段と、
前記第3鍵を用いて、暗号化された前記各復号鍵を復号する復号手段とを有する
ことを特徴とする請求項1又は2に記載の通信装置。
【請求項5】
前記第1鍵を用いて復号可能に暗号化された前記第2鍵を含み当該鍵管理情報を識別可能な第1鍵管理識別情報が割り当てられた鍵管理情報を記憶する第2記憶手段を更に備え、
前記第2受信手段は、当該通信装置が用いるべき前記鍵管理情報に割り当てられた第2の前記鍵管理識別情報を前記第2通信装置から更に受信し、
前記鍵復号手段は、前記第1鍵管理識別情報と前記第2鍵管理識別情報とが同一である場合、前記第2記憶手段に記憶された前記鍵管理情報と、前記一時情報と、前記第1鍵とを用いて、暗号化された前記各復号鍵を復号し、前記第1鍵管理識別情報と前記第2鍵管理識別情報とが同一でない場合、前記第2鍵管理識別情報が対応付けられた前記鍵管理情報を前記第3通信装置又は記憶媒体から取得して、取得した前記鍵管理情報と、前記一時情報と、前記第1鍵とを用いて、暗号化された前記各復号鍵を復号する
ことを特徴とする請求項1乃至4のいずれか一項に記載の通信装置。
【請求項6】
前記第2受信手段は、前記第1鍵を用いて復号可能に暗号化された前記第2鍵を含む鍵管理情報を前記第2通信装置から更に受信し、
前記鍵復号手段は、受信された前記鍵管理情報と、前記一時情報と、前記第1鍵とを用いて、暗号化された前記各復号鍵を復号する
ことを特徴とする請求項1乃至4のいずれか一項に記載の通信装置。
【請求項7】
前記要求手段は、前記情報を要求するとき、自通信装置を識別可能な通信装置識別情報と、前記コンテンツを識別可能なコンテンツ識別情報とを前記第2通信装置に送信し、
前記第2受信手段は、暗号化された前記復号鍵を前記第2通信装置又は第3通信装置から受信し、前記一時情報を前記第2通信装置から受信する
ことを特徴とする請求項1乃至6のいずれか一項に記載の通信装置。
【請求項8】
復号された前記各復号鍵を用いて、前記暗号化ピースを復号するピース復号手段を更に備える
ことを特徴とする請求項1乃至7のいずれか一項に記載の通信装置。
【請求項9】
コンテンツの一部が暗号化された暗号化ピースを受信する他の通信装置と通信する通信装置であって、
複数の前記暗号化ピースを復号するための情報を要求する要求メッセージを前記他の通信装置から受信する受信手段と、
前記暗号化ピースを復号するための復号鍵の暗号化に用いる一時情報を生成する生成手段と、
前記要求メッセージに従って、前記一時情報を前記他の通信装置に送信する送信手段とを備える
ことを特徴とする通信装置。
【請求項10】
複数の前記暗号化ピースの各前記復号鍵又は各前記復号鍵を計算するための鍵計算情報を記憶する第1記憶手段と、
第1鍵を記憶する第2記憶手段と、
前記一時情報と前記第1鍵とを用いて復号可能に前記復号鍵を暗号化する鍵暗号化手段とを更に備え、
前記送信手段は、前記一時情報と、暗号化された前記復号鍵とを前記他の通信装置に送信する
ことを特徴とする請求項9に記載の通信装置。
【請求項11】
前記送信手段は、前記復号鍵又は暗号化された前記復号鍵を保持するその他の通信装置へアクセスするためのアクセス情報を更に前記他の通信装置に送信する
ことを特徴とする請求項9に記載の通信装置。
【請求項12】
前記他の通信装置に対して公開されていない秘密情報を記憶する第3記憶手段を更に備え、
前記コンテンツには、当該コンテンツを識別可能なコンテンツ識別情報が割り当てられており、
前記他の通信装置には、当該他の通信装置を識別可能な通信装置識別情報が割り当てられており、
前記受信手段は、前記通信装置識別情報と、前記コンテンツ識別情報とを含む前記要求メッセージを受信し、
前記生成手段は、前記秘密情報と前記通信装置識別情報と前記コンテンツ識別情報とを用いて前記一時情報を生成する
ことを特徴とする請求項9乃至11のいずれか一項に記載の通信装置。
【請求項13】
前記鍵暗号化手段は、
前記一時情報を用いて関数により前記第1鍵を変換する変換手段と、
変換された前記第1鍵を用いて復号可能に前記各復号鍵を暗号化する暗号化手段とを有する
ことを特徴とする請求項10に記載の通信装置。
【請求項14】
前記第2記憶手段は、前記第1鍵と、前記他の通信装置に割り当てられた第2鍵を用いて復号可能に暗号化された前記第1鍵を含み当該鍵管理情報を識別可能な鍵管理識別情報が割り当てられた鍵管理識別情報と、前記コンテンツ識別情報とを対応付けて記憶し、
前記受信手段は、前記通信装置識別情報と、前記コンテンツ識別情報と、前記鍵管理識別情報とを含む前記要求メッセージを前記他の通信装置から受信し、
前記鍵暗号化手段は、前記要求メッセージに含まれる前記コンテンツ識別情報に対応付けられて記憶されている前記第1鍵に対応付けられている前記鍵管理識別情報と、前記要求メッセージに含まれる前記鍵管理識別情報とが同一であるか否かを判断する判断手段と、
前者の前記鍵管理識別情報と、後者の前記鍵管理識別情報とが同一でない場合、その旨を示すエラーメッセージを前記他の通信装置に送信するエラー送信手段とを更に有し、
前記変換手段は、前者の前記鍵管理識別情報と、後者の前記鍵管理識別情報とが同一である場合、前記一時情報を用いて関数により前記第2鍵を変換する
ことを特徴とする請求項13に記載の通信装置。
【請求項15】
前記送信手段は、前記一時情報と、前記他の通信装置に割り当てられた第2鍵を用いて復号可能に暗号化された第1鍵を含む鍵管理情報とを前記他の通信装置に送信する
ことを特徴とする請求項9乃至14のいずれか一項に記載の通信装置。
【請求項16】
前記他の通信装置に割り当られた第2鍵を記憶する第4記憶手段を更に備え、
前記鍵暗号化手段は、
前記一時情報を用いて、前記第2鍵を関数により変換する変換手段と、
変換された前記第2鍵を用いて復号可能に暗号化した前記第1鍵を含む前記鍵管理情報を生成する生成手段と、
前記第1鍵を用いて前記各復号鍵を暗号化する暗号化手段とを有し、
前記送信手段は、前記一時情報と、暗号化された前記復号鍵と、前記鍵管理情報とを前記他の通信装置に送信する
ことを特徴とする請求項10に記載の通信装置。
【請求項17】
前記他の通信装置に割り当られた第2鍵を記憶する第4記憶手段を更に備え、
前記鍵暗号化手段は、
前記一時情報を用いて、前記第2鍵を関数により変換する変換手段と、
変換された前記第2鍵を用いて復号可能に暗号化した前記第1鍵を含む前記鍵管理情報を生成する生成手段と、
前記第1鍵と前記一時情報とを用いて前記各復号鍵を暗号化する暗号化手段とを有し、
前記送信手段は、前記一時情報と、暗号化された前記復号鍵と、前記鍵管理情報とを前記他の通信装置に送信する
ことを特徴とする請求項10に記載の通信装置。
【請求項18】
自通信装置に割り当てられた前記第2鍵を記憶する第4記憶手段と、
前記第2鍵を用いて復号可能に暗号化された第1鍵を含む前記鍵管理情報を記憶する第5記憶手段とを更に備え、
前記鍵暗号化手段は、
前記鍵管理情報に含まれる、暗号化された前記第1鍵を、前記第2鍵を用いて復号するMKB処理手段と、
前記第1鍵と前記一時情報とを用いて前記各復号鍵を暗号化する暗号化手段とを有する
ことを特徴とする請求項10に記載の通信装置。
【請求項19】
前記他の通信装置に割り当られた第2鍵を記憶する第4記憶手段を更に備え、
前記受信手段は、前記第2鍵を用いて復号可能に暗号化された前記第1鍵を含む前記鍵管理情報を更に受信し、
前記鍵暗号化手段は、
前記鍵管理情報に含まれる、暗号化された前記第1鍵を、前記第2鍵を用いて復号するMKB処理手段と、
前記第1鍵と前記一時情報とを用いて前記各復号鍵を暗号化する暗号化手段とを有する
ことを特徴とする請求項10に記載の通信装置。
【請求項20】
前記送信手段は、前記一時情報と、前記他の通信装置に割り当てられた第2鍵を用いて復号可能に暗号化された前記第1鍵を含む鍵管理情報に割り当てられた前記鍵管理識別情報とを前記他の通信装置に送信する
ことを特徴とする請求項9乃至14のいずれか一項に記載の通信装置。
【請求項21】
前記鍵暗号化手段は、
前記要求メッセージによって要求された各前記復号鍵の組み合わせに基づいて、当該各復号鍵を送信するか否かを決定する決定手段と、
前記決定手段の決定結果が肯定的である場合、前記要求メッセージによって要求された前記組み合わせにおける各前記復号鍵又は各前記復号鍵を計算するための鍵計算情報を前記第1記憶手段から各々読み出し、前記一時情報と、前記第1鍵とを用いて当該各復号鍵を暗号化する暗号化手段とを有する
ことを特徴とする請求項10に記載の通信装置。
【請求項22】
コンテンツの一部が暗号化された暗号化ピースを受信する通信装置で実行される通信方法であって、
前記通信装置は、第1受信手段と、送信手段と、鍵復号手段と、自通信装置に割り当られた第1鍵を記憶する記憶手段とを備え、
前記第1受信手段が、第1通信装置から、複数の前記暗号化ピースを受信する第1受信ステップと、
前記要求手段が、第2通信装置に、受信した各前記暗号化ピースを復号するための情報を要求する要求ステップと、
前記第2受信手段が、受信した各前記暗号化ピースを復号するための復号鍵であって暗号化された前記復号鍵を前記第2通信装置又は第3通信装置から受信し、当該復号鍵の暗号化に用いられた一時情報を前記第2通信装置から受信する第2受信ステップと、
前記鍵復号手段が、前記一時情報と、前記第1鍵と、前記第1鍵を用いて復号可能に暗号化された第2鍵とを用いて、暗号化された前記各復号鍵を復号する鍵復号ステップとを含む
ことを特徴とする通信方法。
【請求項23】
コンテンツの一部が暗号化された暗号化ピースを受信する通信装置の有するコンピュータを実行させるためのプログラムであって、
第1通信装置から、複数の前記暗号化ピースを受信する第1受信ステップと、
第2通信装置に、受信した各前記暗号化ピースを復号するための情報を要求する要求ステップと、
受信した各前記暗号化ピースを復号するための復号鍵であって暗号化された前記復号鍵を前記第2通信装置又は第3通信装置から受信し、当該復号鍵の暗号化に用いられた一時情報を前記第2通信装置から受信する第2受信ステップと、
前記一時情報と、自通信装置に割り当られた第1鍵と、前記第1鍵を用いて復号可能に暗号化された第2鍵とを用いて、暗号化された前記各復号鍵を復号する鍵復号ステップとをコンピュータに実行させるためのプログラム。
【請求項24】
コンテンツの一部が暗号化された暗号化ピースを受信する他の通信装置の有するコンピュータを実行させるためのプログラムであって、
複数の前記暗号化ピースを復号するための情報を要求する要求メッセージを前記他の通信装置から受信する受信ステップと、
前記暗号化ピースを復号するための復号鍵の暗号化に用いる一時情報を生成する生成ステップと、
前記要求メッセージに従って、前記一時情報を前記他の通信装置に送信する送信ステップとをコンピュータに実行させるためのプログラム。

【図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

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2010−124071(P2010−124071A)
【公開日】平成22年6月3日(2010.6.3)
【国際特許分類】
【出願番号】特願2008−293778(P2008−293778)
【出願日】平成20年11月17日(2008.11.17)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】