(57)【要約】      （修正有）【課題】コンテンツ配信システムにおいて、暗号化されたコンテンツを復号するための各復号鍵を含む鍵束が曝露されても、暗号化されたコンテンツが不正に復号されることを抑制可能な通信技術を提供する。【解決手段】コンテンツ取得部５００は、暗号化コンテンツを構成する各暗号化ピースをシーダの少なくとも１つから受信する。また、コンテンツ取得部５００は、無効ピースリスト取得部５０４が取得した無効ピースリストを参照して、取得した暗号化ピースが無効暗号化ピースであるか否かを判断する。そして、コンテンツ取得部５００は、取得した暗号化ピースが無効暗号化ピースであると判断した場合は、当該暗号化ピースを削除して、当該暗号化ピースの代替暗号化ピースを取得する。無効ピースリスト取得部５０４は、無効ピースリストをトラッカから取得する。【選択図】図８
2009272927.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツの一部である複数のピースのそれぞれについて、異なる暗号鍵で暗号化された複数の暗号化ピースを、少なくとも１つの他の通信装置から受信する受信手段と、
前記複数の暗号化ピースを復号するための各復号鍵の全部又は一部を取得する鍵取得手段と、
既に無効化されている復号鍵により復号される暗号化ピースの識別子が記載された無効ピースリストを取得する取得手段と、
前記複数の暗号化ピースのうち少なくとも１つが、前記無効ピースリストに該当する場合、前記暗号化ピースの取得状況あるいは前記復号鍵の取得状況に応じて、当該少なくとも１つの暗号化ピースを削除する削除手段とを備える
ことを特徴とする通信装置。
【請求項２】
前記削除手段は、前記複数の暗号化ピースのうち少なくとも１つが、前記無効ピースリストに該当する場合、当該少なくとも１つの暗号化ピースを削除する
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記削除手段は、
前記複数の暗号化ピースのうち少なくとも１つが、前記無効ピースリストに該当する場合、前記暗号化ピースとして受信されたピースの前記複数のピースに対する割合に基づいて、当該少なくとも１つの暗号化ピースを削除するか否かを決定する決定手段と、
前記決定手段の決定結果に応じて、前記少なくとも１つの暗号化ピースを削除するピース削除手段とを有する
ことを特徴とする請求項１に記載の通信装置。
【請求項４】
前記削除手段は、
前記複数の暗号化ピースのうち少なくとも１つが、前記無効ピースリストに該当する場合、各前記復号鍵の全部又は一部が取得されているか否かに応じて、当該少なくとも１つの暗号化ピースを削除するか否かを決定する決定手段と、
前記決定手段の決定結果に応じて、前記少なくとも１つの暗号化ピースを削除するピース削除手段とを有する
ことを特徴とする請求項１に記載の通信装置。
【請求項５】
前記コンテンツ受信手段は、前記少なくとも１つの暗号化ピースが削除された場合、当該前記少なくとも１つの暗号化ピースとは異なる復号鍵で同一のピースが各々復号される暗号化ピースを、少なくとも１つの他の通信装置から受信する
ことを特徴とする請求項１乃至４のいずれか一項に記載の通信装置。
【請求項６】
前記リスト取得手段は、前記無効ピースリストを、前記少なくとも１つの他の通信装置及び前記少なくとも１つの他の通信装置にアクセスするための接続先情報を記憶しこれを当該通信装置に送信する管理サーバのうち少なくとも一方から受信することにより、前記無効ピースリストを取得する
ことを特徴とする請求項１乃至５のいずれか一項に記載の通信装置。
【請求項７】
前記リスト取得手段は、既に無効化されている復号鍵により復号される暗号化ピースをを用いて算出されるハッシュ値を示す無効ピースリストを取得し、
前記判断手段は、
受信された前記暗号化ピースを用いてハッシュ値を算出する算出手段と、
算出された前記ハッシュ値が前記無効ピースリストに示されているか否かに応じて、受信された前記暗号化ピースが、既に無効化されている復号鍵により復号される暗号化ピースであるか否かを判断する判断手段とを有する
ことを特徴とする請求項１乃至６のいずれか一項に記載の通信装置。
【請求項８】
各対応暗号化ピースを復号するための各復号鍵を要求する要求メッセージを、当該各復号鍵を記憶する鍵サーバに送信する送信手段を更に備え、
前記鍵取得手段は、前記要求メッセージに従い前記鍵サーバが送信することを決定した前記各復号鍵の全部又は一部を当該鍵サーバから受信する
ことを特徴とする請求項１乃至７のいずれか一項に記載の通信装置。
【請求項９】
コンテンツの一部である複数のピースのそれぞれについて、異なる暗号鍵で暗号化された複数の暗号化ピースを、少なくとも１つの他の通信装置から受信する受信手段と、
前記複数の暗号化ピースを復号するための各復号鍵の全部又は一部を取得する鍵取得手段と、
既に無効化されている復号鍵により復号される暗号化ピースの識別子が記載された無効ピースリストを取得するリスト取得手段とを備え、
前記受信手段は、前記無効ピースリストに該当しない前記暗号化ピースを前記少なくとも１つの他の通信装置に要求して、当該暗号化ピースを当該少なくとも１つの他の通信装置から受信する
ことを特徴とする通信装置。
【請求項１０】
コンテンツの一部である複数のピースのそれぞれについて、異なる暗号鍵で暗号化された複数の暗号化ピースを、少なくとも１つの他の通信装置から受信する通信装置から、前記複数の暗号化ピースを復号するための各復号鍵を要求する要求メッセージを受信する受信手段と、
前記各復号鍵を記憶する第１記憶手段と、
既に無効化されている復号鍵により復号される暗号化ピースの識別子が記載された無効ピースリストを取得するリスト取得手段と、
前記要求メッセージによって要求された各前記復号鍵により復号される各前記暗号化ピースのうち、前記無効ピースリストに該当する暗号化ピースがあるか否かに応じて、前記各復号鍵を送信するか否かを決定する決定手段と、
前記各復号鍵を送信すると決定された場合、前記要求メッセージによって要求された前記各復号鍵を前記第１記憶手段から読み出してこれらを前記通信装置に送信する鍵送信手段とを備える
ことを特徴とするサーバ。
【請求項１１】
前記各復号鍵を送信しないと決定された場合、前記無効ピースリストに該当する前記暗号化ピースとは異なる復号鍵で同一のピースが復号される暗号化ピースを復号するための復号鍵を決定する置換決定手段を更に備え、
前記鍵送信手段は、前記各復号鍵を送信しないと決定された場合、決定された各前記復号鍵を特定する置換インデックス情報を前記通信装置に送信する
ことを特徴とする請求項１０に記載のサーバ。
【請求項１２】
各前記暗号化ピースを記憶する第２記憶手段を更に備え、
前記鍵送信手段は、前記各復号鍵を送信しないと決定された場合、第２記憶手段に記憶された前記暗号化ピースのうち、前記無効ピースリストに該当する前記暗号化ピースとは異なる復号鍵で同一のピースが復号される暗号化ピースを、前記置換インデックス情報と共に前記通信装置に送信する
ことを特徴とする請求項１１に記載のサーバ。
【請求項１３】
前記決定手段は、前記要求メッセージによって要求された前記各復号鍵の組み合わせに基づいて、当該各復号鍵を送信するか否かを決定する
ことを特徴とする請求項１０乃至１２のいずれか一項に記載のサーバ。
【請求項１４】
コンピュータを、
コンテンツの一部である複数のピースのそれぞれについて、異なる暗号鍵で暗号化された複数の暗号化ピースを、少なくとも１つの他の通信装置から受信する受信手段と、
前記複数の暗号化ピースを復号するための各復号鍵の全部又は一部を取得する鍵取得手段と、
既に無効化されている復号鍵により復号される暗号化ピースの識別子が記載された無効ピースリストを取得する取得手段と、
前記複数の暗号化ピースのうち少なくとも１つが、前記無効ピースリストに該当する場合、前記暗号化ピースの取得状況あるいは前記復号鍵の取得状況に応じて、当該少なくとも１つの暗号化ピースを削除する削除手段として機能させるプログラム。
【請求項１５】
コンピュータを、
コンテンツの一部である複数のピースのそれぞれについて、異なる暗号鍵で暗号化された複数の暗号化ピースを、少なくとも１つの他の通信装置から受信する通信装置から、前記複数の暗号化ピースを復号するための各復号鍵を要求する要求メッセージを受信する受信手段と、
前記各復号鍵を記憶する第１記憶手段と、
既に無効化されている復号鍵により復号される暗号化ピースの識別子が記載された無効ピースリストを取得する取得手段と、
前記要求メッセージによって要求された各前記復号鍵により復号される各前記暗号化ピースのうち、前記無効ピースリストに該当する暗号化ピースがあるか否かに応じて、前記各復号鍵を送信するか否かを決定する決定手段と、
前記各復号鍵を送信すると決定された場合、前記要求メッセージによって要求された各前記復号鍵を前記第１記憶手段から読み出してこれらを前記通信装置に送信する鍵送信手段として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号鍵を用いて暗号化された暗号化コンテンツを他の通信装置から受信する通信装置、暗号化コンテンツを復号するための復号鍵を送信するサーバ、及びプログラムに関する。
【背景技術】
【０００２】
一般に、コンテンツを配信するシステムには、「単一サーバ型」と「分散サーバ型」とがある。単一サーバ型のシステムでは、例えば、１つのコンテンツサーバと、ライセンスサーバと、クライアントとがネットワークを介して接続され、コンテンツサーバからコンテンツが各クライアントに配信される。配信されるコンテンツは暗号化されており、この暗号化に係る鍵情報をライセンスサーバが有している。コンテンツサーバでは、コンテンツはE( KT )[ C ]として保持される。ただし、KTはタイトル鍵と呼ばれる鍵であり、Cは平文のコンテンツである。E( KT )[ C ]はCがKTで暗号化されていることを示す。鍵情報にはKTが含まれている。クライアントＢは、鍵情報をライセンスサーバから取得し、当該鍵情報を、当該クライアント（クライアントＢとする）固有の鍵KBを用いて暗号化し、これをコンテンツサーバから受信したコンテンツE( KT )[ C ]と関連づけて保持する。そして、クライアントＢは、鍵KBを用いて鍵情報を復号して、タイトル鍵KTを取り出し、当該タイトル鍵KTを用いてE( KT )[ C ]を復号することにより、コンテンツを利用することができる。
【０００３】
このような構成において、クライアントＢは、コンテンツサーバからコンテンツE( KT )[ C ]をダウンロードする際、認証及び鍵交換を互いに行う。この結果、クライアントＢは、一時鍵KtmpBを共有する。コンテンツサーバは、一時鍵KtmpBを用いてコンテンツE( KT )[ C ]を暗号化し、コンテンツE( KtmpB )[ E( KT )[ C ]をクライアントＢに送信する。クライアントＢは、上述の認証及び鍵交換によってコンテンツサーバと共有している一時鍵KtmpBを用いてコンテンツE( KtmpB )[ E( KT )[ C ]]を復号して、E( KT )[ C ]を取り出す。このような構成においては、ネットワークの経路上で、暗号化されたコンテンツE( KtmpB )[ E( KT )[ C ] ]が不正に読み取られたとしても、不正に読み取られたものは一時鍵KtmpBがなければ復号することができない。即ち、クライアント毎に異なる一時鍵を用いてコンテンツを暗号化することにより、同一のコンテンツをクライアント毎に個別化し、これにより、コンテンツの不正使用を抑制することができる。例えば、クライアントＡに対する一時鍵KtmpAとクライアントＢに対する一時鍵KtmpBとを異ならせることにより、クライアントＡに配信されるコンテンツE( KtmpA )[ E( KT )[ C ] ]と、クライアントＢに配信されるコンテンツE( KtmpB )[ E( KT )[ C ] ]とは異なる個別のデータとなる。このように同一のコンテンツを暗号鍵の相違により個別化することにより、コンテンツの不正使用を抑制することができる。
【０００４】
しかし、単一サーバ型のシステムでは、クライアントとコンテンツサーバとの１対１での通信となるため、多くのクライアントがコンテンツサーバからコンテンツの配信を受けようとすると、配信効率が悪くなるという問題がある。
【０００５】
一方、分散サーバ型のシステムには、例えば、Ｐ２ＰによるBitTorrentというコンテンツ配信システムがある（例えば、非特許文献１参照）。このようなシステムにおいては、コンテンツ毎に異なるトラッカと、シーダと、リーチャとがＰ２Ｐで各々接続される。また、配信されるコンテンツは、複数のピースに分割されている。シーダは、コンテンツの配信（アップロード）を目的として、コンテンツを構成するピースを配信するノードである。リーチャは、コンテンツの受信（ダウンロード）を目的として、コンテンツを構成する各ピースの受信とコンテンツを構成するピースの配信とを行うノードである。即ち、リーチャはコンテンツを構成するピースをある程度取得するとシーダになる場合がある。このように、シーダには、コンテンツを構成する全部のピース又は一部のピースを受信したリーチャがシーダへ変化したものと、システム側で（予め又は配信の途中に）用意される（最初からシーダである）ものとがある。後者を初期シーダと呼ぶ。初期シーダは、あるひとつのコンテンツを構成し得る全てのピース又は一部のピースを保持している。以降、特に断りのない限り、シーダとはシーダ又は初期シーダを意味するものとし、ノードとはリーチャ、シーダ、又は初期シーダを意味するものとする。トラッカは、各ノードに関するノード情報を保持しており、リーチャからアクセスがあった場合、ノード情報をリーチャに提供する。
【０００６】
このような構成において、あるリーチャがコンテンツの配信を受ける場合、まず、Torrent Fileと呼ばれる情報を取得する。Torrent Fileは、例えば、コンテンツプロバイダ又はユーザにコンテンツを販売するサービスを運用するサーバ（販売サーバと呼ぶ））から、他ノード又は販売サーバへ与えられ、さらに他ノード又は販売サーバからリーチャへ与えられる。この他に、例えばＣＤ−ＲＯＭなどの記録媒体に記録されたTorrent Fileをオフラインでリーチャへ配布される場合もある。Torrent Fileには、コンテンツに関するトラッカ情報と、当該コンテンツのファイル情報とが格納されている。トラッカ情報はトラッカの接続先を含んでいる。ファイル情報は、例えば、コンテンツを構成する各ピースのハッシュ情報を含んでいる。ハッシュ情報は、ピースの完全性を確認するために用いられる。即ち、ハッシュ情報は、リーチャがダウンロードしたピースのハッシュを計算し、当該ピースのハッシュ値と照合して、受信したピースが改竄されていないことを確認するのに用いられる。
【０００７】
リーチャは、このようなTorrent Fileを取得すると、トラッカ情報に基づいてトラッカに接続する。トラッカは、リーチャに上述のノード情報を送信する。ノード情報は単数または複数のノードの接続先のリストを含んでいる。リーチャはノード情報に基づいて、複数のノードに接続する。各ノードが配信するピースは、ノード毎に異なっている場合が多い。リーチャは、複数のノードから異なるピースを受信することができるので、コンテンツの高速な受信が可能である。
【０００８】
このように、Ｐ２Ｐによるコンテンツ配信システムでは、コンテンツは複数のノードに分散して保持されている。従って、このようなシステムにおいては、コンテンツの配信を受けるノードが多くても、Ｐ２Ｐにより複数の他のノードからコンテンツの配信を受けることができるため、単一サーバ型のシステムに比べて配信効率が良い。
【０００９】
尚、このように、複数のノードからコンテンツを配信し得るコンテンツ配信システムにおいても、コンテンツの不正使用を抑制するためには、配信するコンテンツを暗号化によって保護することが望ましい。しかし、このようなコンテンツ配信システムでは、単一サーバ型のシステムとは異なり、各リーチャがシーダから受信する同一のコンテンツは、暗号化された状態であっても同一でなければならず、リーチャ毎に個別に暗号化したコンテンツを配信することは難しかった。このため、暗号化されたコンテンツを復号するための鍵が１つ曝露されてしまうと、ネットワーク上に多数存在するコンテンツが全て復号可能になってしまうという恐れがあった。
【００１０】
一方、特許文献１においては、コンテンツを複数のピースに分割し、それら複数のピースのそれぞれについて、複数の暗号鍵を用いて暗号化して複数の暗号化ピースを生成するコンテンツ配信方法が開示されている。
【００１１】
【非特許文献１】Bittorrent Protocol Specification v1.0
【特許文献１】特許第３９１７３９５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
特許文献１に記載のコンテンツ配信方法では、コンテンツの配信を受ける各ユーザが全ての暗号化ピースを取得する必要がある。このため、このコンテンツ配信方法をＰ２Ｐによるコンテンツ配信システムへそのまま応用した場合、配信効率が悪くなる恐れがある。更に、暗号化されたコンテンツを復号するための鍵が複数であっても、それらが曝露されてしまった場合、復号鍵を正規に取得することなしにコンテンツが復号可能になってしまうという恐れがある。
【００１３】
本発明は、上記に鑑みてなされたものであって、コンテンツ配信システムにおいて、暗号化されたコンテンツを復号するための各復号鍵を含む鍵束が曝露されても、暗号化されたコンテンツが不正に復号されることを抑制可能な通信装置、サーバ、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するために、本発明は、通信装置であって、コンテンツの一部である複数のピースのそれぞれについて、異なる暗号鍵で暗号化された複数の暗号化ピースを、少なくとも１つの他の通信装置から受信する受信手段と、前記複数の暗号化ピースを復号するための各復号鍵の全部又は一部を取得する鍵取得手段と、既に無効化されている復号鍵により復号される暗号化ピースの識別子が記載された無効ピースリストを取得するリスト取得手段と、前記複数の暗号化ピースのうち少なくとも１つが、前記無効ピースリストに該当する場合、前記暗号化ピースの取得状況あるいは前記復号鍵の取得状況に応じて、当該少なくとも１つの暗号化ピースを削除する削除手段とを備えることを特徴とする。
【００１５】
また、本発明は、通信装置であって、コンテンツの一部である複数のピースのそれぞれについて、異なる暗号鍵で暗号化された複数の暗号化ピースを、少なくとも１つの他の通信装置から受信する受信手段と、前記複数の暗号化ピースを復号するための各復号鍵の全部又は一部を取得する鍵取得手段と、既に無効化されている復号鍵により復号される暗号化ピースの識別子が記載された無効ピースリストを取得するリスト取得手段とを備え、前記受信手段は、前記無効ピースリストに該当しない前記暗号化ピースを前記少なくとも１つの他の通信装置に要求して、当該暗号化ピースを当該少なくとも１つの他の通信装置から受信することを特徴とする。
【００１６】
また、本発明は、サーバであって、コンテンツの一部である複数のピースのそれぞれについて、異なる暗号鍵で暗号化された複数の暗号化ピースを、少なくとも１つの他の通信装置から受信する通信装置から、前記複数の暗号化ピースを復号するための各復号鍵を要求する要求メッセージを受信する受信手段と、前記各復号鍵を記憶する第１記憶手段と、既に無効化されている復号鍵により復号される暗号化ピースの識別子が記載された無効ピースリストを取得するリスト取得手段と、前記要求メッセージによって要求された各前記復号鍵により復号される各前記暗号化ピースのうち、前記無効ピースリストに該当する暗号化ピースがあるか否かに応じて、前記各復号鍵を送信するか否かを決定する決定手段と、前記各復号鍵を送信すると決定された場合、前記要求メッセージによって要求された前記各復号鍵を前記第１記憶手段から読み出してこれらを前記通信装置に送信する鍵送信手段とを備えることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、コンテンツ配信システムにおいて、暗号化されたコンテンツを復号するための各復号鍵を含む鍵束が曝露されても、暗号化されたコンテンツが不正に復号されることを抑制することができる。
【発明を実施するための最良の形態】
【００１８】
以下に添付図面を参照して、この発明にかかる通信装置、サーバ、及びプログラムの最良な実施の形態を詳細に説明する。
【００１９】
（１）構成
＜コンテンツ配信システムの構成＞
図１は、本実施の形態にかかるコンテンツ配信システムの構成を示すブロック図である。本実施の形態にかかるコンテンツ配信システムにおいては、リーチャ５０Ａ〜５０Ｂと、トラッカ５１と、シーダ５２Ａ〜５２Ｃと、販売サーバ５４とが各々Ｐ２ＰネットワークＮＴを介して接続されている。リーチャ５０Ａ〜５０Ｂと、鍵サーバ５３とは各々、図示しないインターネットなどのネットワークを介して接続される。ここでノードとは、リーチャ５０Ａ〜５０Ｂと、シーダ５２Ａ〜５２Ｃとである。シーダ５２Ａ〜５２Ｃは、複数のピースに分割されたコンテンツについて、各ピースが各々異なる暗号鍵で暗号化された各暗号化ピースを保持している。尚、以降、このような暗号化ピースから構成されるコンテンツを暗号化コンテンツという。このような暗号化コンテンツの詳細については後述する。シーダ５２Ａ〜５２Ｃのうち、シーダ５２Ａは、上述した初期シーダとして機能する。シーダ５２Ａは、一つのコンテンツを構成する各ピースについて、同一のピースに対して複数の暗号鍵を用いて各々暗号化されて生成された暗号化ピースの全てを保持している。トラッカ５１は、各ノードにアクセスするためのノード情報を保持している。鍵サーバ５３は、各暗号化ピースを復号するための復号鍵を保持している。販売サーバ５４は、Torrent Fileを保持している。
【００２０】
リーチャ５０Ａは、販売サーバ５４からTorrent Fileを受信し、当該Torrent Fileに基づいて、トラッカ５１にアクセスしてノード情報を取得し、ノード情報に基づいて、シーダ５２Ａ〜５２Ｃやリーチャ５０Ｂの少なくとも１つにアクセスして各暗号化ピースを受信して、各ピースに各々対応する全ての暗号化ピースを取得し、各暗号化ピースを各々復号するための各復号鍵を含む鍵束を鍵サーバ５３から受信する。リーチャ５０Ｂについても同様である。尚、以降、リーチャ５０Ａ〜５０Ｂを各々区別する必要がない場合、単にリーチャ５０と記載する。シーダ５２Ａ〜５２Ｃを各々区別する必要がない場合も、単にシーダ５２と記載する。
【００２１】
ここで、コンテンツの構成について説明する。コンテンツとは、種々のデジタルデータ、例えばMPEG2やMPEG4等の動画データや音声データの他、テキストデータや静止画データ等を指し、また、これらのデジタルデータが暗号化されているものもコンテンツと呼ぶ。例えば、HD DVD Prepared Video ContentをAACS(Advanced Access Content System)仕様に従って暗号化したものもコンテンツである。ここでは、コンテンツ全体をＣと表すものとする。Ｃは平文であっても暗号化されていても構わない。図２は、コンテンツが複数のピースに分割された状態を模式的に示す図である。例えば、コンテンツＣは、ある１つのコンテンツをＮ（N＞１）個のピースＣ１〜ＣＮに分割される。各ピースＣ１，Ｃ２，・・・ＣＮのデータ長は全て同一であっても良いし、そうでなくても良い。これらのＮ個の各ピースＣ１〜ＣＮについては、各々異なる暗号鍵で暗号化される。このとき、Ｎ個のうちａ個のピースについては、同一のピースに対して、各々異なるｍ個の暗号鍵で暗号化される。残りの（Ｎ-ａ）個のピースについては、同一のピースに対して１つの暗号鍵で暗号化される。即ち、ａ個の各ピースについては、同一のピースがｍ個の異なる暗号鍵で各々暗号化されてｍ個の異なるピース（暗号化ピース）が生成される。（Ｎ-ａ）個の各ピースについては、各々１つの暗号鍵で暗号化して、１つのピースに対して１つの暗号化ピースが生成される。図３は、各暗号化ピースを模式的に示す図である。このａ個の各ピースに各々対応して、ｍ個の暗号化ピースの中から各々１つ選択される暗号化ピースの組み合わせを異ならせることにより、Ｎ個の暗号化ピースから構成される暗号化コンテンツ全体を個別化することができる。
【００２２】
次に、リーチャ５０と、トラッカ５１と、シーダ５２と、鍵サーバ５３との各装置のハードウェア構成について説明する。各装置は各々、装置全体を制御するＣＰＵ（Central Processing Unit）等の制御装置と、各種データや各種プログラムを記憶するＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）等の記憶装置と、各種データや各種プログラムを記憶するＨＤＤ（Hard Disk Drive）やＣＤ（Compact Disk）ドライブ装置等の外部記憶装置と、これらを接続するバスとを備えており、通常のコンピュータを利用したハードウェア構成となっている。また、各装置には各々、情報を表示する表示装置と、ユーザの指示入力を受け付けるキーボードやマウス等の入力装置と、外部装置の通信を制御する通信Ｉ／Ｆ（interface）とが有線又は無線により接続される。
【００２３】
＜シーダ５２の構成＞
次に、シーダ５２の機能的構成について説明する。シーダ５２は、コンテンツＣを構成する複数のピースＣ１〜ＣＮが各々暗号化された各暗号化ピースを、各ピースＣ１〜ＣＮを各々復号するための各復号鍵のインデックス（添え字）と対応付けて記憶している。尚、各復号鍵は、各暗号鍵と同一であっても良いし、各暗号鍵と異なるものであっても良い。いずれにしろ、各ピースＣ１〜ＣＮは各々暗号鍵で暗号化されているため、これらの各暗号化ピースを復号するための復号鍵のそれぞれについて、各復号鍵のインデックスを用いて、各暗号化ピースを特定することができる。このような各暗号化ピースは例えば外部記憶装置に記憶される。
【００２４】
以下簡単のため、暗号鍵と復号鍵が同一の場合で説明する。復号鍵のインデックスを、( 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’)であってもよい。）
【００２５】
このような各暗号化ピースから構成される暗号化コンテンツは、例えば、以下のように表される。
{ E( K( i1, 1 ) )[ C1 ], E( K( i2, 2 ) )[ C2 ], …, E( K( iN, N ))[ CN ]} 
（ただし、1≦i1, …, iN≦m）
【００２６】
このような暗号化コンテンツにおける各暗号化ピースのシーケンスは、各暗号化ピースのインデックスの組み合わせにより表され、例えば以下のように表される。ここでは、各ピースＣ１〜ＣＮに各々対応するインデックスが左から順に配列されて表されている。
{ ( i1, 1 ), ( i2, 2 ), …, ( iN, N) }
（ただし、1≦i1, …, iN≦m）
【００２７】
従って、シーダ５２が各暗号化ピースとインデックスとを対応付けて記憶するものは、例えば、以下のように表される。
{ ( 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）
【００２８】
更に、初期シーダであるシーダ５２Ａは、コンテンツを構成する各ピースに各々対応する各暗号化ピースについて、同一のピースに対して複数の暗号鍵により各々暗号化されて生成された暗号化ピースの全てを記憶している。図４は、シーダ５２Ａが記憶している各暗号化ピースを例示する図である。同図においては、Ｎ個のうちa個（1<a<N）のピースについて、同一のピースに対して複数の異なる暗号鍵で各々暗号化されていることが示されている。同図においては、同一のピースの暗号化に用いられる暗号鍵の個数は、ピース毎に異なっている。ピースＣ１に対する暗号鍵の個数はｍ個であり、ピースＣ３に対する暗号鍵の個数は２個である。但し、本実施の形態においては、同一のピースの暗号化に用いられる暗号鍵の個数はピース毎に同じであっても良い。ピース処理装置では、このように、Ｎ個のうちa個（1<a<N）のピースについて、同一のピースに対して複数の異なる暗号鍵で各々暗号化することにより、例えば、重要度の高いほど暗号鍵の数を増やすようにすることができる。
【００２９】
尚、本実施の形態においては、これに限らず、例えば、図５に示されるように、「a=N」の場合、即ち、Ｎ個全てのピースについて、同一のピースに対してｍ個の異なる暗号鍵で各々暗号化されていても良い。このような構成によれば、暗号化ピースのシーケンスのバリエーションを多くすることができる。また、図６に示されるように、「a=1」の場合、即ち、Ｎ個のうち1個のピースのみ、ｍ個の異なる暗号鍵で暗号化されていても良い。このような構成によれば、配信効率を向上させることができる。
【００３０】
このような構成において、シーダ５２は、リーチャ５０からのアクセスにより、当該シーダ５２が記憶している暗号化ピースのシーケンスを示すピース情報をリーチャ５０に送信する。図７は、ピース情報のデータ構成を例示する図である。同図においては、ピースＣ１に対応する暗号化ピースについては、復号鍵K(1, 1 )により復号されることが示され、ピースＣ１に対応する暗号化ピースについては、復号鍵K(3, 2 ) により復号されることが示されている。即ち、ピース情報によって、各暗号化ピースと各暗号化ピースの復号化のための復号鍵の対応関係とが示される。シーダ５２は、当該ピース情報に基づいて暗号化ピースの配信がリーチャ５０から要求されると、要求された暗号化ピースを保持しているか否かを判断し、当該判断結果が肯定的である場合に、当該暗号化ピースをリーチャ５０に送信する。
【００３１】
＜リーチャ５０の構成＞
次に、上述したハードウェア構成において、リーチャ５０のＣＰＵが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図８は、リーチャ５０の機能的構成を例示する図である。リーチャ５０は、コンテンツ取得部５００と、鍵束要求部５０１と、鍵束取得部５０２と、コンテンツ復号部５０３と、無効化ピースリスト取得部５０４とを有する。これら各部の実体は、ＣＰＵのプログラム実行時にＲＡＭなどの記憶装置上に生成されるものである。
【００３２】
コンテンツ取得部５００は、Ｐ２ＰネットワークＮＴを介して、暗号化コンテンツを構成する各暗号化ピースをシーダ５２の少なくとも１つから受信して、ＲＡＭなどの記憶装置や外部記憶装置に記憶する。具体的には、コンテンツ取得部５００は、まず、販売サーバ５４からTorrent Fileを受信する。Torrent Fileは、トラッカ５１に接続するためのトラッカ接続先情報を含むトラッカ情報と、暗号化コンテンツを構成する各暗号化ピースとしてどのようなものがあるかを示すファイル情報とを含んでいる。図９は、Torrent Fileを例示する図である。同図においては、ファイル情報として、各暗号化ピースを特定するための情報として、各暗号化ピースに対応するインデックスが各々示されている。
【００３３】
コンテンツ取得部５００は、Torrent Fileに基づいて、Ｐ２ＰネットワークＮＴを介してトラッカ５１にアクセスして、Ｐ２ＰネットワークＮＴに接続されているノード（シーダ５２、他のリーチャ５０）にアクセスするためのノード情報を当該トラッカ５１から受信する。ノード情報の詳細については後述する。そして、コンテンツ取得部５００は、ノード情報に基づいて、ノードの少なくとも１つにアクセスして、当該ノードが記憶している自身の保持する暗号化ピースのシーケンスを示すピース情報を取得する。そして、コンテンツ取得部５００は、ピース情報に基づいて、暗号化コンテンツを構成する各暗号化ピースをノードの少なくとも１つから受信し、暗号化コンテンツを構成する全ての暗号化ピース（ピースシーケンス）を取得する。例えば、図３に示した各暗号化ピースのうち、網掛けされた全ての暗号化ピースをピースシーケンスとしてコンテンツ取得部５００は取得する。
【００３４】
また、コンテンツ取得部５００は、以下で説明する無効ピースリスト取得部５０４が取得した無効ピースリストを参照して、取得した暗号化ピースが無効な暗号化ピース（無効暗号化ピースという）であるか否かを判断する。そして、コンテンツ取得部５００は、取得した暗号化ピースが無効暗号化ピースであると判断した場合は、当該暗号化ピースを記憶装置や外部記憶装置から削除して、当該暗号化ピースの代替となる暗号化ピース（代替暗号化ピース）を取得する。代替暗号化ピースとは、具体的には、無効暗号化ピースであると判断された暗号化ピースとは異なる復号鍵で同一のピースが復号される暗号化ピースである。
【００３５】
無効ピースリスト取得部５０４は、無効ピースリストをトラッカ５１から取得する。無効ピースリストは、曝露されて既に無効化されている復号鍵により復号される暗号化ピースの識別子が記載されたものである。尚、説明の便宜上、無効ピースリストに記載された暗号化ピースを無効暗号化ピースという。無効ピースリストに記載される暗号化ピースの識別子は、暗号化ピースを識別できるものであれば良く、例えば、暗号化ピースのハッシュ値である。具体的には例えば、無効ピースリストは、既に無効化されている復号鍵により復号される暗号化ピースごとに、ピースのインデックスと、暗号化ピースのハッシュ値とが記載されたものである。暗号化ピースのハッシュ値は、例えば以下のように表される。
{ hash( E( K( i, j ) )[ Cj ] ) }
（ただし、1≦i≦m、1≦j≦N）
このハッシュ値が無効ピースリストに示される暗号化ピースが、無効暗号化ピースであると判断されることになる。
【００３６】
鍵束要求部５０１は、ピースシーケンスを復号するための鍵束を要求する要求メッセージを鍵サーバ５３へ送信する。鍵束とは、ピースシーケンスの各暗号化ピースを各々復号するための各復号鍵を、各暗号化ピースのシーケンスに合わせて含むものである。尚、鍵束及び復号鍵の詳細については後述する。要求メッセージは、この鍵束に含ませる各復号鍵のシーケンスを指定する情報として、ピースシーケンスにおける各暗号化ピースのインデックスの組み合わせ（シーケンス）を示すインデックス情報を含む。このようなシーケンスは、例えば、以下のように表される。
{ ( i1, 1 ), ( i2, 2 ), …, ( iN, N) }
（ただし、1≦i1, …, iN≦m）
【００３７】
鍵束取得部５０２は、要求メッセージに応じて鍵サーバ５３から送信された鍵束を受信する。コンテンツ復号部５０３は、コンテンツ取得部５００が取得した各暗号化ピースを、鍵束取得部５０２が取得した鍵束に含まれ各暗号化ピースに各々対応する復号鍵を用いて各々復号して、復号した各ピースから構成されるコンテンツを取得する。
【００３８】
尚、リーチャ５０は、上述したように、シーダとして機能する場合もあるが、その機能的構成については、シーダ５２の構成において説明したため、ここでは、その説明を省略する。
【００３９】
＜鍵サーバ５３の構成＞
次に、鍵サーバ５３のＣＰＵが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図１０は、鍵サーバ５３の機能的構成を例示する図である。鍵サーバ５３は、制御部５３０と、パケット処理部５３１と、ネットワークインターフェース部５３２と、認証・鍵交換処理部５３３と、鍵記憶部５３４と、シーケンス情報記憶部５３６と、シーケンス情報照合部５３５と、鍵供給部５３７とを有する。制御部５３０と、シーケンス情報照合部５３５と、ネットワークインターフェース部５３２と、パケット処理部５３１と、認証・鍵交換処理部５３３と、鍵供給部５３７との実体は、ＣＰＵのプログラム実行時にＲＡＭなどの記憶装置上に生成されるものである。鍵記憶部５３４は、例えば、外部記憶装置に記憶されるものである。
【００４０】
制御部５３０は、鍵サーバ５３全体を制御し、シーケンス情報照合部５３５から鍵供給部５３７への指示を仲介したりする。パケット処理部５３１は、リーチャ５０などの外部装置に送信する各種データをパケット化してネットワークインターフェース部５３２に受け渡したり、ネットワークインターフェース部５３２から受け渡されたパケットを基にデータを取得したりする。ネットワークインターフェース部５３２は、外部装置との通信を制御し、パケット処理部５３１から受け渡されたパケット化されたデータを送信したり、外部装置から受信したパケットをパケット処理部５３１に受け渡したりする。
【００４１】
認証・鍵交換処理部５３３は、ネットワークインターフェース部５３２を介して、リーチャ５０と相互認証を行い、認証後、インデックス情報をリーチャ５０から受信する。
【００４２】
鍵記憶部５３４は、例えば、ＨＤＤなどの外部記憶装置において構成され、各暗号化ピースを各々復号するための各復号鍵を各々記憶する。各復号鍵は、上述したように、例えばK ( i, j )として表される。
【００４３】
シーケンス情報記憶部５３６は、例えばＨＤＤなどの外部記憶装置において構成され、リーチャ５０に過去に送信した全ての鍵束に各々対応するシーケンスを示すシーケンス情報を記憶する。鍵束に各々対応するシーケンスは、上述したインデックス情報に示されるシーケンスと同様に、例えば以下のように表される。
{ ( i1, 1 ), ( i2, 2 ), …, ( iN, N) }
（ただし、1≦i1, …, iN≦m）
【００４４】
シーケンス情報照合部５３５は、シーケンス情報記憶部５３６に記憶されたシーケンス情報と、リーチャ５０から受信したインデックス情報とを照合することにより、インデックス情報によって示されるシーケンスに対応する鍵束を送信するか否かを決定する。具体的には、シーケンス情報照合部５３５は、インデックス情報に示されるシーケンスと同一のシーケンスを示すシーケンス情報がシーケンス情報記憶部５３６に記憶されていない場合、インデックス情報によって示されるシーケンスに対応する鍵束を送信することを決定する。鍵束は、例えば、以下のように表される。ここでは、各ピースＣ１〜ＣＮに各々対応する復号鍵が左から順に配列されて表されている。
｛K( i1, 1 ), K( i2, 2 ), …, K( iN, N )｝
（ただし、1≦i1, …, iN≦m）
【００４５】
そして、シーケンス情報照合部５３５は、鍵束を送信することを決定した場合、制御部５３０を介して、当該鍵束を当該リーチャ５０へ送信するよう鍵供給部５３７に指示する。また、シーケンス情報照合部５３５は、鍵束を送信しないことを決定した場合、制御部５３０を介して、当該鍵束の当該リーチャ５０への送信禁止を鍵供給部５３７に指示する。
【００４６】
鍵供給部５３７は、制御部５３０を介してシーケンス情報照合部５３５から鍵束の送信を指示されると、当該鍵束のシーケンスに応じた復号鍵を鍵記憶部５３４から各々読み出し、読み出した各復号鍵を含む鍵束を、ネットワークインターフェース部５３２を介してリーチャ５０に送信する。
【００４７】
＜トラッカ５１の構成＞
次に、トラッカ５１の構成について説明する。トラッカ５１は、リーチャ５０からアクセスされると、Ｐ２ＰネットワークＮＴに接続されているノードにアクセスするためのノード情報を当該リーチャ５０に対して送信する。ノード情報は、各ノードのＩＰアドレスとポート番号との組を含んでいる。図１１は、ノード情報のデータ構成を例示する図である。同図においては、ノードＡ〜Ｂは各々、リーチャ５０Ａ〜５０Ｂ、シーダ５２Ａ〜５２Ｃのいずれかであり、当該各ノードのＩＰアドレスとポート番号との組が示されている。また、トラッカ５１は、上述した無効ピースリストをリーチャ５０に対して送信する。
【００４８】
（２）動作
次に、本実施の形態にかかるコンテンツ配信システムで行うコンテンツ配信処理の手順について図１２を用いて説明する。尚、リーチャ５０は、暗号化ピースを他のリーチャ５０からも受信可能であるが、ここでは、説明の便宜上、暗号化ピースをシーダ５２Ａ〜５２Ｃからの少なくとも１つから受信するものとする。
【００４９】
リーチャ５０は、まず、販売サーバ５４にアクセスして、Torrent Fileを取得する（ステップＳ１）。そして、リーチャ５０は、Torrent Fileに含まれるトラッカ情報に含まれるトラッカ接続先情報を用いてトラッカ５１にアクセスすると（ステップＳ２）、トラッカ５１はリーチャ５０に対して、ノード情報及び無効ピースリストを送信する（ステップＳ３）。リーチャ５０は、ノード情報及び無効ピースリストを受信すると（ステップＳ４）、ノード情報を用いて、例えばシーダ５２Ａ〜５２Ｃの少なくとも１つにアクセスする（ステップＳ５）。シーダ５２は、リーチャ５０からアクセスされると、自身の保持する暗号化ピースのシーケンスを示すピース情報をリーチャ５０へ送信する（ステップＳ６）。
【００５０】
リーチャ５０は、ピース情報を受信すると（ステップＳ７）、当該ピース情報を用いて、少なくとも１つのシーダ５２にアクセスして(ステップＳ８)、各ピースＣ１〜ＣＮに各々対応して複数存在しえる暗号化ピースのうち少なくとも１つを当該シーダ５２に要求して、各暗号化ピースを受信する。シーダ５２は、リーチャ５０からの要求に応じて、自身の保持する暗号化ピースをリーチャ５０に送信する（ステップＳ９）。具体的には、リーチャ５０は、例えば、シーダ５２Ｂにアクセスして受信したピース情報を用いて、ピースＣ１が暗号化された暗号化ピースE( K( i1, 1 ) )[ C1 ]（i1は1≦i1≦mの整数）のうち例えば「i1=1」の暗号化ピースをシーダ５２Ｂが保持しているか否かを判断し、当該判断結果が肯定的である場合、当該シーダ５２Ｂにアクセスして、当該暗号化ピースE( K( 1, 1 ) )[ C1 ]をシーダ５２Ｂから受信することによりこれを取得する。尚、シーダ５２Ｂが当該暗号化ピースE( K( 1, 1 ) )[ C1 ]を実際には保持していなかった場合、リーチャ５０は、次いで、他のシーダ５２（例えばシーダ５２Ｃ）にアクセスして、当該他のシーダ５２Ｃからピース情報を取得する。そして、リーチャ５０は、上述と同様にして、ピース情報を用いて、当該暗号化ピースをシーダ５２Ｃが保持しているか否かを判断して、当該判断結果が肯定的である場合、シーダ５２にアクセスして、当該暗号化ピースの取得を試みる。
【００５１】
リーチャ５０のコンテンツ取得部５００は、シーダ５２から暗号化ピースを取得すると、当該暗号化ピースが、ステップＳ４で取得した無効ピースリストにより無効暗号化ピースであるか否かを判断する（ステップＳ９．１）。具体的には、コンテンツ取得部５００は、取得した暗号化ピースのハッシュ値を算出し、当該ハッシュ値が無効ピースリストに示されているか否かを判断する。当該ハッシュ値が無効ピースリストに示されている場合は、コンテンツ取得部５００は、ステップＳ４で取得した無効ピースリストにより無効暗号化ピースであると判断する。この場合（ステップＳ９．１：ＹＥＳ）、コンテンツ取得部５００は、無効暗号化ピース削除及び代替暗号化ピース取得処理を行う。具体的には、コンテンツ取得部５００は、ステップＳ７で取得した暗号化ピースを削除した後、当該暗号化ピースとは異なる復号鍵で同一のピースが復号される代替暗号化ピースをシーダ５２に要求する（ステップＳ９．２）。シーダ５２は、リーチャ５０からの要求に応じて、自身の保持する暗号化ピースのうち該当する暗号化ピースをリーチャ５０に送信する。一方、ステップＳ９．１で、シーダ５２から取得した暗号化ピースが無効暗号化ピースでないと判断した場合は（ステップＳ９．１：ＹＥＳ）、コンテンツ取得部５００は、ステップＳ９．２の処理を行わない。
【００５２】
このようなステップＳ８〜Ｓ９．２の処理をリーチャ５０は繰り返して、コンテンツを構成する各ピースに各々対応する暗号化ピースであって暗号化コンテンツを構成する全ての暗号化ピース｛E( K( i1, 1 ) )[ C1 ], E( K( i2, 2 ) )[ C2 ], …, E( K( iN, N ))[ CN ]｝を取得する。そして、リーチャ５０の鍵束要求部５０１は、各暗号化ピースを各々復号するための各復号鍵を含む鍵束を要求する要求メッセージを鍵サーバ５３に送信する（ステップＳ１０）。この要求メッセージには、各復号鍵に対応するシーケンスを示すインデックス情報｛( i1, 1 ),…, ( iN, N)｝が含まれる。
【００５３】
鍵サーバ５３の認証・鍵交換処理部５３３は、ネットワークインターフェース部５３２を介して、当該要求メッセージを受信すると（ステップＳ１１）、当該リーチャ５０と相互認証を行い、認証成功の場合、要求を受理する旨の受理メッセージをリーチャ５０に送信する（ステップＳ１２）。リーチャ５０は、鍵サーバ５３から受理メッセージを受信すると（ステップＳ１３）、鍵サーバ５３からの鍵束の送信を待機する。
【００５４】
一方、鍵サーバ５３のシーケンス情報照合部５３５は、ステップＳ１１で受信された要求メッセージに含まれるインデックス情報を用いて、照合処理を行う（ステップＳ１４）。図１３は、照合処理の手順を示すフローチャートである。照合処理では、シーケンス情報照合部５３５は、ステップＳ１１で受信された要求メッセージに含まれるインデックス情報と、シーケンス情報記憶部５３６に記憶されているシーケンス情報とを照合し（ステップＳ１４０）、インデックス情報に示されるシーケンスと同一のシーケンスを示すシーケンス情報がシーケンス情報記憶部５３６に記憶されている否かを判断する（ステップＳ１４１）。即ち、リーチャ５０から要求されている鍵束が過去にリーチャ５０のいずれかに送信されたか否かが判断される。
【００５５】
当該判断結果が否定的である場合（ステップＳ１４１：ＮＯ）、シーケンス情報照合部５３５は、インデックス情報に示されるシーケンスに対応する鍵束｛K( i1, 1 ), K( i2, 2 ), …, K( iN, N )｝を送信することを決定する。そして、シーケンス情報照合部５３５は、制御部５３０を介して、当該鍵束を当該リーチャ５０へ送信するよう鍵供給部５３７に指示する。また、シーケンス情報照合部５３５は、当該シーケンスを示すシーケンス情報をシーケンス情報記憶部５３６に記憶させる（ステップＳ１４２）。鍵供給部５３７は、制御部５３０を介してシーケンス情報照合部５３５から送信を指示された鍵束を、鍵記憶部５３４から読み出しこれをネットワークインターフェース部５３２を介してリーチャ５０に送信する（ステップＳ１４３）。尚、ステップＳ１４１の判断結果が肯定的である場合、シーケンス情報照合部５３５は、当該鍵束を送信しないことを決定し、制御部５３０を介して、当該鍵束の当該リーチャ５０への送信禁止を鍵供給部５３７に指示する（ステップＳ１４４）。
【００５６】
図１２に戻り、リーチャ５０は、鍵束K( i1, 1 ), K( i2, 2 ), …, K( iN, N )を鍵サーバ５３から受信した場合（ステップＳ１５：ＹＥＳ）、鍵束に含まれる各復号鍵を用いて、各暗号化ピースE( K( i1, 1 ) )[ C1 ], E( K( i2, 2 ) )[ C2 ], …, E( K( iN, N )[ CN ])をそれぞれ復号し(ステップＳ１６)、復号した各ピースＣ１〜ＣＮを得て、これらから構成されるコンテンツＣを得る。即ち、リーチャ５０は、復号鍵K( i1, 1 )を用いてE( K( i1, 1 ) )[ C1 ]を復号して、ピースＣ１を得て、復号鍵K( i2, 2 )を用いてE( K( i2, 2 ) )[ C2 ]を復号して、ピースＣ２を得て、復号鍵K( iN, N )を用いてE( K( iN, N )[ CN ]を復号して、ピースＣＮを得て、他のピースについても同様にして得ることにより、各ピースＣ１〜ＣＮから構成されるコンテンツＣを得る。
【００５７】
尚、リーチャ５０は、ステップＳ１５で鍵束を受信することなく、図１３のステップＳ１４３で鍵サーバ５３から送信されたエラーメッセージを受信した場合、ステップＳ１０で取得した各ピースを復号することができず、従って、コンテンツを利用できない。この場合、ステップＳ５に戻り、リーチャ５０は、ステップＳ１０で取得したシーケンスとは異なるシーケンスで各暗号化ピースを取得した後に、ステップＳ１０以降の処理を再度行う(ステップＳ１５：ＮＯ)。
【００５８】
以上のように、Ｐ２ＰネットワークＮＴを介して、同一のコンテンツを複数のリーチャ５０に配信する場合、暗号化ピースのシーケンスを用いて、鍵サーバ５３が鍵束の送信の可否を決定する。ここで、鍵サーバ５３が、既に使用されたシーケンスの再使用を回避することにより、コンテンツをリーチャ５０毎に個別化することができる。従って、例えば、１つの鍵束が漏洩したとしても、この鍵束に対応する暗号化コンテンツのみしか復号することができないので、コンテンツの不正使用を抑制することができる。また、予め定められたシーケンスではなく、リーチャ５０が任意に取得した暗号化ピースにより定まるシーケンスを用いることにより、Ｐ２ＰネットワークＮＴの環境に応じたフレキシブルなコンテンツ配信を実現することができる。
【００５９】
このような構成において、リーチャ５０は、無効ピースリストに基づいて、取得した暗号化ピースのうち無効暗号化ピースであると判断した暗号化ピースを削除し、代替暗号化ピースを取得する。このような構成によれば、暗号化ピースを復号するための復号鍵が漏洩したとしても、当該暗号化ピースを無効暗号化ピースとして特定することができこれを削除することができる。このため、復号鍵の漏洩の影響を抑制することができる。また、無効暗号化ピースの代替となる代替暗号化ピースを取得することにより、リーチャ５０におけるコンテンツの使用に対する影響を抑制することができる。このため、ユーザの利便性を損ねることを回避することができる。
【００６０】
[変形例]
なお、本発明は前記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
【００６１】
＜変形例１＞
上述した実施の形態において、リーチャ５０で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また当該各種プログラムを、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。鍵サーバ５３で実行される各種プログラムについても同様である。
【００６２】
＜変形例２＞
上述した実施の形態において、トラッカ５１が無効ピースリストを送信するのは、ノード情報を送信するタイミングと同じであるとしたが、これに限らず、任意のタイミングであっても良い。
【００６３】
また、無効ピースリストをリーチャ５０に送信するのは、トラッカ５１であるとしたが、これに限らず、例えば、初期シーダ５２Ａなどのシーダ５２であっても良い。この場合、シーダ５２は、例えば、ステップＳ６でリーチャ５０にピース情報と共に無効ピースリストを送信するようにしても良いし、任意のタイミングで無効ピースリストを送信するようにしても良い。
【００６４】
＜変形例３＞
上述した実施の形態において、リーチャ５０は、ステップＳ９．１でシーダ５２から暗号化ピースを取得した後、無効ピースリストを参照して、当該暗号化ピースが無効暗号化ピースであるか否かを判断した。しかし、これに限らず、リーチャ５０は、例えば、ステップＳ８で暗号化ピースをシーダ５２に要求する際に、無効暗号化ピース以外の暗号化ピースをシーダ５２に要求するようにしても良い。具体的には、リーチャ５０は、ステップＳ７で取得したピース情報を用いて、取得候補の暗号化ピースを決定し、当該暗号化ピースのハッシュ値を算出し、当該ハッシュ値が、ステップＳ３で取得した無効ピースリストに示されているか否かを判断する。即ち、リーチャ５０は、無効ピースリストを参照して、取得候補の暗号化ピースが無効暗号化ピースであるか否かを判断する。そして、リーチャ５０は、当該暗号化ピースが無効暗号化ピースでないと判断した場合、シーダ５２Ｂにアクセスして、当該暗号化ピースをシーダ５２Ｂから取得する。一方、リーチャ５０は、当該暗号化ピースが無効暗号化ピースであると判断した場合、当該暗号化ピースとは異なる復号鍵で同一のピースが復号される暗号化ピースについて、同様に、シーダ５２Ｂが保持しているか否かを判断し、当該判断結果に応じて、当該暗号化ピースが無効暗号化ピースであるか否かを判断し、当該判断結果に応じて、シーダ５２Ｂにアクセスして、無効暗号化ピース以外で代替となる暗号化ピースを取得する。
【００６５】
このような構成によっても、復号鍵の漏洩の影響を抑制すると共に、ユーザの利便性を損ねることを回避することができる。
【００６６】
＜変形例４＞
上述した実施の形態において、ステップＳ９で送信される暗号化ピースを完全には受信することができないと判断されたとき、リーチャ５０は、ステップＳ９よりも前のいずれかのステップに戻って処理をやり直すことができるようにしても良い。完全には受信することはできないと判断される場合とは、例えば、暗号化ピースや特定の暗号化ピースの一部を受信していたとしても、それらの取得を試みて失敗した回数や、取得を開始してからの時間が所定の閾値以上となる場合などである。
【００６７】
＜変形例５＞
上述した実施の形態において、リーチャ５０は、ステップＳ８において、シーダ５２Ｂにアクセスして受信したピース情報を用いて、所望の暗号化ピースをシーダ５２が保持しているか否かを判断してから、当該暗号化ピースE( K( 1, 1 ) )[ C1 ]をシーダ５２Ｂから受信した。即ち、リーチャ５０は、ピースＣ１が暗号化された暗号化ピースE( K( i1, 1 ) )[ C1 ]（i1は1≦i1≦mの整数）のうち例えば「i1=1」の暗号化ピースをシーダ５２Ｂが保持しているか否かを判断し、当該判断結果が肯定的である場合、当該シーダ５２Ｂにアクセスして、当該暗号化ピースE( K( 1, 1 ) )[ C1 ]をシーダ５２Ｂから受信した。しかし、ここで、リーチャ５０は、「i1=1」という指定をせず、ピースＣ１が複数の暗号鍵で暗号化された暗号化ピースのうちのいずれかをシーダ５２Ｂから取得するとしても良い。このとき、リーチャ５０は、シーダ５２Ｂから取得した暗号化ピースが無効暗号化ピースであるか否かを無効ピースリストを参照して判断し、無効暗号化ピースであると判断した場合は、取得した暗号化ピースを削除した後、代替暗号化ピースをシーダ５２Ｂから取得すれば良い。
【００６８】
このような構成によっても、復号鍵の漏洩の影響を抑制すると共に、ユーザの利便性を損ねることを回避することができる。
【００６９】
＜変形例６＞
上述した実施の形態において、リーチャ５０は、ステップＳ９．２の無効暗号化ピース削除及び代替暗号化ピース取得処理において、取得した暗号化ピースが無効暗号化ピースであると判断した場合、これを削除するようにした。しかし、リーチャ５０は、無効暗号化ピースであると判断した暗号化ピースを削除するか否かを、暗号化ピースの取得状況又は鍵束の取得状況に応じて決定しても良い。図１４は、本変形例にかかる無効暗号化ピース削除及び代替暗号化ピース取得処理の手順を示すフローチャートである。リーチャ５０のコンテンツ取得部５００は、Torrent Fileを参照して、取得済みである暗号化ピースの取得率を算出する（ステップＳ５０）。取得率は例えば以下のように算出される。コンテンツがピースＣ１〜ＣＮから構成されていることがTorrent Fileには示されており、コンテンツ取得部５００は、Torrent Fileを参照することによりコンテンツを構成する全てのピースの個数を判断することができる。コンテンツ取得部５００は、コンテンツを構成するピースＣ１〜ＣＮのうち暗号化ピースとして受信されたピースの個数の、ピースＣ１〜ＣＮの総数（ここではＮ個である）に対する割合を取得率として算出する。
【００７０】
次に、コンテンツ取得部５００は、ステップＳ５０で算出した取得率を参照して、各ピースＣ１〜ＣＮに対応する暗号化ピースの全てを取得済みであるか否かを判断する（ステップ５１）。全ての暗号化ピースを取得済みでない場合（ステップＳ５１:ＮＯ）、コンテンツ取得部５００は、ステップＳ５０で算出した取得率が予め定められた閾値以下であるか否かを判断する（ステップＳ５２）。取得率が閾値以下でない場合（ステップＳ５２:ＮＯ）、コンテンツ取得部５００は、ステップＳ９．１でシーダ５２から取得した暗号化ピースを削除しない。一方、取得率が閾値以下である場合（ステップＳ５２：ＹＥＳ）、コンテンツ取得部５００は、ステップＳ９．１でシーダ５２から取得した暗号化ピースとは異なる復号鍵で同一のピースが復号される代替暗号化ピースを取得した後（ステップＳ５３）、ステップＳ９．１でシーダ５２から取得した暗号化ピースを削除する（ステップ５４）。これにより、代替暗号化ピースの取得を、暗号化ピースの取得率が閾値より低いときだけに限定することができる。
【００７１】
一方、ステップ５１で、各ピースＣ１〜ＣＮに対応する暗号化ピースの全てを取得済みである場合（ステップＳ５１：ＹＥＳ）、コンテンツ取得部５００は、各暗号化ピースを各々復号するための各復号鍵を含む鍵束を鍵束取得部５０２が取得済みであるか否かを判断する（ステップＳ５５）。鍵束を取得済みでない場合は（ステップＳ５５：ＮＯ）、コンテンツ取得部５００は、ステップＳ５３以降の処理を行う。一方、鍵束を取得済みである場合には（ステップＳ５５：ＹＥＳ）、コンテンツ取得部５００は、ステップＳ９．１でシーダ５２から取得した暗号化ピースを削除しない。これにより、鍵束を取得済みである場合は、無効暗号化ピースである特定される暗号化ピースの削除及び代替暗号化ピースの取得を避けて、ユーザの利便性を優先することができる。
【００７２】
＜変形例７＞
上述の実施の形態においては、リーチャ５０は、暗号化ピースをシーダ５２から取得するようにしたが、これに限らず、他のリーチャ５０から暗号化ピースを取得するようにしても良い。
【００７３】
また、リーチャ５０は、各ピースＣ１〜ＣＮに各々対応する暗号化ピースにつき、同一のピースに対応する異なる暗号化ピースを複数取得しておくようにしても良い。例えば、ピースＣ１に対して、暗号化ピースE( K( i1, 1 ) )[ C1 ]及びE( K( i1’, 1 ) )[ C1 ]（但し、i1≠i1’， 1≦i1≦m，1≦i1’≦m）をリーチャ５０は取得しておいても良い。このような構成によれば、リーチャ５０は上述のステップＳ９．２で、ステップＳ９．１で取得した暗号化ピースが無効暗号化ピースであると判断した場合、当該暗号化ピースを削除した後、以下の場合に代替暗号化ピースの取得を省略することができる。当該暗号化ピースの代替となる代替暗号化ピースを取得済みである場合である。更に、このような構成によれば、リーチャ５０が鍵束を鍵サーバ５３に要求する際に、仮にインデックス( i1, 1 ) )を含むシーケンスが既に使用されている場合、当該シーケンスに対応する鍵束を取得することはできないが、インデックス( i1’, 1 ) を含むシーケンスが使用可能である場合には、シーダ５２へ再びアクセスすることなく当該シーケンスに対応する鍵束を鍵サーバ５３から取得することができる。このように、暗号化ピースを予め余分に取得しておくことにより、シーケンスの候補を予め複数用意することができるため、リーチャ５０がシーダ５２に再びアクセスする煩雑さを回避することができる。
【００７４】
＜変形例８：鍵サーバ＞
上述した実施の形態において、リーチャ５０が、無効ピースリストを参照して、取得した暗号化ピースが無効暗号化ピースであるか否かを判断した。しかし、これに限らず、鍵サーバ５３が、リーチャ５０の取得した暗号化ピースが無効暗号化ピースであるか否かを判断するようにしても良い。具体的には例えば、図１３のステップＳ１４０における照合処理において、鍵サーバ５３のシーケンス情報照合部５３５は、リーチャ５０から要求された鍵束に含まれる各復号鍵によって復号される各暗号化ピースが無効暗号化ピースであるか否かを判断する。この場合、例えば、無効ピースリストは、無効暗号化ピースとして特定される暗号化ピースのインデックスを示す。このような無効ピースリストを鍵サーバ５３のシーケンス情報照合部５３５はトラッカ５１やシーダ５２から受信したり、管理者の操作により記憶媒体から読み出したりすることにより予め取得しておく。図１５は、本変形例にかかる照合処理の手順を示すフローチャートである。鍵サーバ５３のシーケンス情報照合部５３５は、図１２のステップＳ１１で受信した要求メッセージに含まれるインデックス情報と無効ピースリストとを照合し（ステップＳ１４０−１）、インデックス情報によって示されるシーケンスを構成するインデックスのうち、無効ピースリストに示されるインデックスがあるか否かを判断する（ステップＳ１４０−２）。当該判断結果が肯定的である場合、リーチャ５０から復号鍵が要求されている暗号化ピースに無効暗号化ピースが含まれているということである。この場合（ステップＳ１４０−２：ＹＥＳ）、シーケンス情報照合部５３５は、当該暗号化ピースの復号鍵を含む鍵束を送信しないことを決定し、ステップＳ１４４に進む。そして、シーケンス情報照合部５３５は、上述と同様にして、ステップＳ１１で受信した要求メッセージによって要求された鍵束のリーチャ５０への送信禁止を鍵供給部５３７に指示する。一方、ステップＳ１４０−２の判断結果が否定的である場合（ステップＳ１４０−２：ＮＯ）、即ち、リーチャ５０から復号鍵が要求されている暗号化ピースに無効暗号化ピースが含まれていない場合、シーケンス情報照合部５３５は、上述と同様のステップＳ１４０以降の処理を行い、シーケンスの照合結果に応じて、鍵束を送信するか否か決定し、決定結果に応じて、鍵束をリーチャ５０に送信する。
【００７５】
このような構成によれば、リーチャ５０に処理負担を掛けることなく、復号鍵の漏洩の影響を抑制することができる。
【００７６】
尚、リーチャ５０から復号鍵が要求されている暗号化ピースに無効暗号化ピースが含まれていない場合、シーケンス情報照合部５３５は、ステップＳ１４０〜Ｓ１４１の処理を行わずに、ステップＳ１１で受信した要求メッセージによって要求された鍵束のリーチャ５０への送信を鍵供給部５３７に指示するようにしても良い。即ち、リーチャ５０が取得した暗号化ピースが全て無効暗号化ピースでなければ、鍵サーバ５３は、リーチャ５０から要求メッセージによって要求された鍵束をリーチャ５０に送信するようにしても良い。
【００７７】
また、ステップＳ１４０−２で、リーチャ５０から復号鍵が要求されている暗号化ピースに無効暗号化ピースが含まれていると判断した場合、鍵サーバ５３は、当該復号鍵を含む鍵束をリーチャ５０へ送信しないようにした。しかし、これに限らず、鍵サーバ５３は、無効暗号化ピースの代替となる代替暗号化ピース（有効暗号化ピースという）とこれを復号するための復号鍵を含む鍵束とをリーチャ５０に送信するようにしても良い。この場合、鍵サーバ５３は、初期シーダ５２Ａと同様に、コンテンツを構成する各ピースに各々対応する各暗号化ピースについて、同一のピースに対して複数の暗号鍵により各々暗号化されて生成された暗号化ピースの全てを記憶しているものとする。そして、ステップＳ１４０−２の判断結果が肯定的である場合には、鍵サーバ５３は、無効暗号化ピースのインデックスを含まず且つシーケンス情報記憶部５３６に記憶されていない他のシーケンス｛( i1’, 1 ), ( i2, 2 ), …, ( iN, N )｝を生成する。即ち、鍵サーバ５３は、無効暗号化ピースとは異なる復号鍵で同一のピースが復号される代替暗号化ピースを復号するための復号鍵を決定し、更に、そのインデックスを含み且つシーケンス情報記憶部５３６に記憶されていない、各インデックスの組み合わせを示すシーケンスを決定する。そして、鍵サーバ５３は、有効暗号化ピース（例えば、E( K( i1’, 1 ) )[ C1 ]）と共にそのインデックス（この例では( i1’, 1 )）を置換インデックス情報としてリーチャ５０へ送信する。加えて、鍵サーバ５３は当該シーケンス｛( i1’, 1 ), ( i2, 2 ), …, ( iN, N )｝に各々対応する各復号鍵を含む鍵束をリーチャ５０へ送信する。
【００７８】
このような構成によれば、リーチャ５０に処理負担を掛けることなく、復号鍵の漏洩の影響を抑制することができる。更に、鍵サーバ５３が有効暗号化ピース及び当該有効暗号化ピースを復号するための復号鍵を含む鍵束をリーチャ５０に送信することで、リーチャ５０がシーダ５２及び鍵サーバ５３に再びアクセスする煩雑さを回避することができる。
【００７９】
尚、置換インデックス情報は、無効ピースリストによって無効暗号化ピースとして特定される暗号化ピースとは異なる復号鍵で同一のピースが復号される代替暗号化ピースを復号するための復号鍵を特定するものであれば、上述のインデックスに限らない。
【００８０】
＜変形例９＞
上述した実施の形態において、リーチャ５０が、無効ピースリストを参照して、取得した暗号化ピースが無効暗号化ピースであるか否かを判断した。しかし、これに限らず、シーダ５２が、無効ピースリストを参照して、無効暗号化ピースである暗号化ピースをリーチャ５０に送信しないようにしても良い。このような構成によれば、リーチャ５０に処理負担を掛けることなく、復号鍵の漏洩の影響を抑制することができる。
【００８１】
＜変形例１０＞
上述した実施の形態において、リーチャ５０は、シーダ５２から取得した暗号化ピースが無効暗号化ピースであると判断した場合、これを削除した後、代替暗号化ピースを取得するようにしたが、代替暗号化ピースを取得しないようにしても良い。このような構成によれば、コンテンツを構成する少なくとも１つのピースについて無効暗号化ピースが存在する場合、当該コンテンツ自体の利用を抑制することが可能になり、復号鍵の漏洩の影響をより強力に抑制することができる。
【００８２】
＜変形例１１＞
上述した実施の形態において、図４に例示した暗号化ピースについて、Ｎ個のうちa個（1<a<N）のピースについて、同一のピースに対して複数の異なる暗号鍵で各々暗号化されているようにした。しかし、同一のピースに対しては各々１つのみの暗号鍵で暗号化されるようにしても良い。即ち、同一のピースに対する各暗号化ピースは各々１つのみ存在するように構成しても良い。
【図面の簡単な説明】
【００８３】
【図１】実施の形態にかかるコンテンツ配信システムの構成を示すブロック図である。
【図２】コンテンツが複数のピースに分割された状態を模式的に示す図である。
【図３】各暗号化ピースを模式的に示す図である。
【図４】シーダ５２Ａが記憶している各暗号化ピースを例示する図である。
【図５】シーダ５２Ａが記憶している各暗号化ピースを例示する図である。
【図６】シーダ５２Ａが記憶している各暗号化ピースを例示する図である。
【図７】ピース情報のデータ構成を例示する図である。
【図８】リーチャ５０の機能的構成を例示する図である。
【図９】Torrent Fileを例示する図である。
【図１０】鍵サーバ５３の機能的構成を例示する図である。
【図１１】ノード情報のデータ構成を例示する図である。
【図１２】コンテンツ配信処理の手順を示すフローチャートである。
【図１３】照合処理の手順を示すフローチャートである。
【図１４】一変形例にかかる無効暗号化ピース削除及び代替暗号化ピース取得処理の手順を示すフローチャートである。
【図１５】一変形例にかかる照合処理の手順を示すフローチャートである。
【符号の説明】
【００８４】
５０，５０Ａ，５０Ｂ  リーチャ（通信装置）
５１  トラッカ
５２，５２Ａ，５２Ｂ，５３Ｃ  シーダ（通信装置）
５３  鍵サーバ
５４  販売サーバ
５００  コンテンツ取得部（コンテンツ受信手段、判断手段、削除手段）
５０１  鍵束要求部（送信手段）
５０２  鍵束取得部（鍵受信手段）
５０３  コンテンツ復号部
５０４  無効ピースリスト取得部（リスト取得手段）
５３０  制御部
５３１  パケット処理部
５３２  ネットワークインターフェース部（受信手段、送信手段）
５３３  認証・鍵交換処理部
５３４  鍵記憶部（第１記憶手段）
５３５  シーケンス情報照合部（決定手段、リスト取得手段）
５３６  シーケンス情報記憶部
５３７  鍵供給部（送信手段）
ＮＴ  Ｐ２Ｐネットワーク
【図１】
2009272927.tif 000003
【図２】
2009272927.tif 000004
【図３】
2009272927.tif 000005
【図４】
2009272927.tif 000006
【図５】
2009272927.tif 000007
【図６】
2009272927.tif 000008
【図７】
2009272927.tif 000009
【図８】
2009272927.tif 000010
【図９】
2009272927.tif 000011
【図１０】
2009272927.tif 000012
【図１１】
2009272927.tif 000013
【図１２】
2009272927.tif 000014
【図１３】
2009272927.tif 000015
【図１４】
2009272927.tif 000016
【図１５】
2009272927.tif 000017