[go: up one dir, main page]

JP2010124071A - Communication device, communication method, and program - Google Patents

Communication device, communication method, and program Download PDF

Info

Publication number
JP2010124071A
JP2010124071A JP2008293778A JP2008293778A JP2010124071A JP 2010124071 A JP2010124071 A JP 2010124071A JP 2008293778 A JP2008293778 A JP 2008293778A JP 2008293778 A JP2008293778 A JP 2008293778A JP 2010124071 A JP2010124071 A JP 2010124071A
Authority
JP
Japan
Prior art keywords
key
encrypted
information
communication device
decryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008293778A
Other languages
Japanese (ja)
Inventor
Tatsuyuki Matsushita
達之 松下
Ryuichi Koike
竜一 小池
Hideki Matsumoto
英樹 松本
Shinji Yamanaka
晋爾 山中
Kentaro Umezawa
健太郎 梅澤
Hiroshi Kato
拓 加藤
Haruhiko Toyama
春彦 外山
Tatsu Kamibayashi
達 上林
Satoshi Ito
聡 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008293778A priority Critical patent/JP2010124071A/en
Publication of JP2010124071A publication Critical patent/JP2010124071A/en
Pending legal-status Critical Current

Links

Images

Abstract

【課題】コンテンツ配信システムにおいて、不正な通信装置の無効化を簡単に行うことを可能にする通信技術を提供する。
【解決手段】リーチャ50Aは、販売サーバ54からTorrent Fileを受信し、当該Torrent Fileに基づいて、トラッカ51にアクセスしてノード情報を取得し、ノード情報に基づいて、シーダ52A〜52Cやリーチャ50Bの少なくとも1つにアクセスして各暗号化ピースを受信して、各ピースに各々対応する全ての暗号化ピースを取得する。そして、リーチャ50Aは、各暗号化ピースを復号するための復号情報を鍵サーバ53に要求し、鍵サーバ53は、各暗号化ピースを復号するための各復号鍵を暗号化した暗号化復号鍵と、当該各復号鍵の暗号化に用いたシード情報とを含む復号情報をリーチャ50に送信する。
【選択図】 図1
Provided is a communication technique that enables an invalid communication device to be easily invalidated in a content distribution system.
A leecher 50A receives a torrent file from a sales server 54, accesses a tracker 51 based on the torrent file, acquires node information, and based on the node information, seeders 52A to 52C and a leecher 50B. And receiving each encrypted piece to obtain all encrypted pieces respectively corresponding to each piece. The leecher 50A requests the key server 53 for decryption information for decrypting each encrypted piece, and the key server 53 encrypts each decryption key for decrypting each encrypted piece. And the decryption information including the seed information used for encrypting each decryption key is transmitted to the leecher 50.
[Selection] Figure 1

Description

本発明は、通信装置、通信方法及びプログラムに関する。   The present invention relates to a communication device, a communication method, and a program.

一般に、コンテンツを配信するシステムには、「単一サーバ型」と「分散サーバ型」とがある。単一サーバ型のシステムでは、例えば、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 ]を復号することにより、コンテンツを利用することができる。   In general, there are a “single server type” and a “distributed server type” as systems for distributing contents. In a single server type system, for example, one content server, a license server, and a client are connected via a network, and content is distributed from the content server to each client. The content to be distributed is encrypted, and the license server has key information related to the encryption. In the content server, the content is held as E (KT) [C]. However, KT is a key called a title key, and C is plaintext content. E (KT) [C] indicates that C is encrypted with KT. The key information includes KT. The client B obtains the key information from the license server, encrypts the key information using a key KB unique to the client (client B), and receives the content E (KT) [C received from the content server. ] And keep it associated with it. The client B can use the content by decrypting the key information using the key KB, extracting the title key KT, and decrypting E (KT) [C] using the title key KT. it can.

このような構成において、クライアント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 ] ]とは異なる個別のデータとなる。このように同一のコンテンツを暗号鍵の相違により個別化することにより、コンテンツの不正使用を抑制することができる。   In such a configuration, when the client B downloads the content E (KT) [C] from the content server, the client B performs authentication and key exchange with each other. As a result, the client B shares the temporary key KtmpB. The content server encrypts the content E (KT) [C] using the temporary key KtmpB, and transmits the content E (KtmpB) [E (KT) [C]] to the client B. The client B decrypts the content E (KtmpB) [E (KT) [C]] using the temporary key KtmpB shared with the content server by the above-described authentication and key exchange, and E (KT) [C] Take out. In such a configuration, even if the encrypted content E (KtmpB) [E (KT) [C]] is illegally read on the network path, the illegally read content is the temporary key KtmpB. Without it, it cannot be decrypted. In other words, by encrypting content using a different temporary key for each client, the same content can be individualized for each client, thereby preventing unauthorized use of the content. For example, by making the temporary key KtmpA for the client A different from the temporary key KtmpB for the client B, the content E (KtmpA) [E (KT) [C]] distributed to the client A and the client B are distributed. Content E (KtmpB) [E (KT) [C]] is different data. In this way, the same content is individualized by the difference in the encryption key, so that unauthorized use of the content can be suppressed.

しかし、単一サーバ型のシステムでは、クライアントとコンテンツサーバとの1対1での通信となるため、多くのクライアントがコンテンツサーバからコンテンツの配信を受けようとすると、配信効率が悪くなるという問題がある。   However, in a single server type system, since the communication between the client and the content server is one-to-one, when many clients try to receive the content from the content server, the distribution efficiency deteriorates. is there.

一方、分散サーバ型のシステムには、例えば、P2PによるBitTorrentというコンテンツ配信システムがある(例えば、非特許文献1参照)。このようなシステムにおいては、コンテンツ毎に異なるトラッカと、シーダと、リーチャとがP2Pで各々接続される。また、配信されるコンテンツは、複数のピースに分割されている。シーダは、コンテンツの配信(アップロード)を目的として、コンテンツを構成するピースを配信するノードである。リーチャは、コンテンツの受信(ダウンロード)を目的として、コンテンツを構成する各ピースの受信とコンテンツを構成するピースの配信とを行うノードである。即ち、リーチャはコンテンツを構成するピースをある程度取得するとシーダになる場合がある。このように、シーダには、コンテンツを構成する全部のピース又は一部のピースを受信したリーチャがシーダへ変化したものと、システム側で(予め又は配信の途中に)用意される(最初からシーダである)ものとがある。後者を初期シーダと呼ぶ。初期シーダは、あるひとつのコンテンツを構成し得る全てのピース又は一部のピースを保持している。以降、特に断りのない限り、シーダとはシーダ又は初期シーダを意味するものとし、ノードとはリーチャ、シーダ、又は初期シーダを意味するものとする。トラッカは、各ノードに関するノード情報を保持しており、リーチャからアクセスがあった場合、ノード情報をリーチャに提供する。   On the other hand, as a distributed server type system, for example, there is a content distribution system called BitTorrent based on P2P (for example, see Non-Patent Document 1). In such a system, different trackers, seeders, and leechers are connected to each other by P2P. In addition, the content to be distributed is divided into a plurality of pieces. The seeder is a node that distributes pieces constituting the content for the purpose of distributing (uploading) the content. The leecher is a node that receives each piece constituting the content and distributes the pieces constituting the content for the purpose of receiving (downloading) the content. In other words, the leecher may become a seeder when pieces of content are obtained to some extent. In this way, the seeder is prepared with the leecher that has received all or some of the pieces constituting the content changed to the seeder, and on the system side (in advance or in the middle of distribution) (seeder from the beginning). There is a thing. The latter is called the initial seeder. The initial seeder holds all pieces or some pieces that can constitute a certain content. Hereinafter, unless otherwise specified, a seeder means a seeder or an initial seeder, and a node means a leecher, seeder, or initial seeder. The tracker holds node information regarding each node, and provides node information to the leecher when accessed from the leecher.

このような構成において、あるリーチャがコンテンツの配信を受ける場合、まず、Torrent Fileと呼ばれる情報を取得する。Torrent Fileは、例えば、コンテンツプロバイダ又はユーザにコンテンツを販売するサービスを運用するサーバ(販売サーバと呼ぶ)から、他ノード又は販売サーバへ与えられ、さらに他ノード又は販売サーバからリーチャへ与えられる。この他に、例えばCD−ROMなどの記憶媒体に記録されたTorrent Fileをオフラインでリーチャへ配布される場合もある。Torrent Fileには、コンテンツに関するトラッカ情報と、当該コンテンツのファイル情報とが格納されている。トラッカ情報はトラッカの接続先を含んでいる。ファイル情報は、例えば、コンテンツを構成する各ピースのハッシュ情報を含んでいる。ハッシュ情報は、ピースの完全性を確認するために用いられる。即ち、ハッシュ情報は、リーチャがダウンロードしたピースのハッシュを計算し、当該ピースのハッシュ値と照合して、受信したピースが改竄されていないことを確認するのに用いられる。   In such a configuration, when a leecher receives content distribution, first, information called a torrent file is acquired. The torrent file is given from, for example, a server operating a service for selling content to a content provider or user (referred to as a sales server) to another node or sales server, and further given from another node or sales server to a leecher. In addition, a torrent file recorded on a storage medium such as a CD-ROM may be distributed to a leecher offline. The Torrent File stores tracker information about content and file information of the content. The tracker information includes the connection destination of the tracker. The file information includes, for example, hash information of each piece constituting the content. The hash information is used to confirm the integrity of the piece. That is, the hash information is used to calculate a hash of a piece downloaded by the leecher and check the received piece against the hash value of the piece to confirm that the received piece has not been tampered with.

リーチャは、このようなTorrent Fileを取得すると、トラッカ情報に基づいてトラッカに接続する。トラッカは、リーチャに上述のノード情報を送信する。ノード情報は単数又は複数のノードの接続先のリストを含んでいる。リーチャはノード情報に基づいて、複数のノードに接続する。各ノードが配信するピースは、ノード毎に異なっている場合が多い。リーチャは、複数のノードから異なるピースを受信することができるので、コンテンツの高速な受信が可能である。   When the leecher acquires such a torrent file, it connects to the tracker based on the tracker information. The tracker transmits the above node information to the leecher. The node information includes a list of connection destinations of one or more nodes. The leecher connects to a plurality of nodes based on the node information. The pieces delivered by each node often differ from node to node. Since the leecher can receive different pieces from a plurality of nodes, the leecher can receive the content at high speed.

このように、P2Pによるコンテンツ配信システムでは、コンテンツは複数のノードに分散して保持されている。従って、このようなシステムにおいては、コンテンツの配信を受けるノードが多くても、P2Pにより複数の他のノードからコンテンツの配信を受けることができるため、単一サーバ型のシステムに比べて配信効率が良い。   As described above, in the content distribution system based on P2P, content is distributed and held in a plurality of nodes. Therefore, in such a system, even if there are many nodes that receive content distribution, it is possible to receive content distribution from a plurality of other nodes by P2P. good.

尚、このように、複数のノードからコンテンツを配信し得るコンテンツ配信システムにおいても、コンテンツの不正使用を抑制するためには、配信するコンテンツを暗号化によって保護することが望ましい。しかし、このようなコンテンツ配信システムでは、単一サーバ型のシステムとは異なり、各リーチャがシーダから受信する同一のコンテンツは、暗号化された状態であっても同一でなければならず、リーチャ毎に個別に暗号化したコンテンツを配信することは難しかった。このため、暗号化されたコンテンツを復号するための鍵が1つ曝露されてしまうと、ネットワーク上に多数存在するコンテンツが全て復号可能になってしまうという恐れがあった。   In this way, even in a content distribution system that can distribute content from a plurality of nodes, it is desirable to protect the content to be distributed by encryption in order to prevent unauthorized use of the content. However, in such a content distribution system, unlike a single server type system, the same content that each leecher receives from a seeder must be the same even in an encrypted state, It was difficult to distribute individually encrypted contents. For this reason, if one key for decrypting the encrypted content is exposed, there is a risk that all the content existing on the network can be decrypted.

ところで、特許文献1には、コンテンツを複数のピースに分割し、それら複数のピースをそれぞれ1つの平文として、複数の暗号鍵を用いて各々暗号化して暗号文(暗号化ピースという)を生成するコンテンツ配信方法が開示されている。   By the way, in Patent Document 1, a content is divided into a plurality of pieces, and each of the plurality of pieces is converted into a single plaintext and encrypted using a plurality of encryption keys to generate a ciphertext (referred to as an encrypted piece). A content distribution method is disclosed.

Bittorrent Protocol Specification v1.0Bittorrent Protocol Specification v1.0 特許第3917395号公報Japanese Patent No. 3917395

特許文献1において開示されているコンテンツ配信方法を始め、複数の暗号鍵を用いてピースを各々暗号化して暗号化ピースを生成するコンテンツ配信方法を用いれば、上述の恐れをなくすことができる。しかし、さらに、不正リーチャ(例えば、ハックされてしまったリーチャや、不正コピーなどの不正行為に加担しているリーチャ)を検出した場合には、当該不正リーチャの無効化を行えることが望ましい。不正リーチャの無効化を行うための素朴な解決策として、例えば以下のものが考えられる。鍵サーバから暗号化ピースの復号鍵をリーチャへ与えることとし、さらに、鍵サーバが不正リーチャのリスト(ブラックリスト)を管理し、リーチャから鍵サーバへ暗号化ピースの復号鍵の送信要求があった際に、鍵サーバがブラックリストに当該リーチャが載っているか否かを照合する処理を行い、当該リーチャがブラックリストに載っていない場合のみ、鍵サーバから当該リーチャへ暗号化ピースの復号鍵を送信するという解決策である。しかし、ブラックリストの管理やその照合の処理は煩雑であるため、この解決策は望ましくない。   Using the content distribution method disclosed in Patent Document 1, including a content distribution method that generates encrypted pieces by encrypting pieces using a plurality of encryption keys, the above-described fear can be eliminated. However, when an illegal reacher (for example, a leecher that has been hacked or a reacher that participates in an illegal act such as an illegal copy) is detected, it is desirable that the illegal reacher can be invalidated. As simple solutions for invalidating illegal leeches, for example, the following can be considered. The key server gives the decryption key of the encrypted piece to the leecher, and the key server manages the list of illegal leeches (black list), and there is a request for transmission of the decryption key of the encrypted piece from the leecher to the key server. In this case, the key server checks whether or not the leecher is on the black list, and transmits the decryption key of the encrypted piece from the key server to the leecher only when the leecher is not on the black list. It is a solution to do. However, this solution is not desirable because the management of the blacklist and the process of its collation are complicated.

本発明は、上記に鑑みてなされたものであって、コンテンツ配信システムにおいて、不正な通信装置の無効化を簡単に行うことを可能にする通信装置、通信方法及びプログラムを提供することを目的とする。   The present invention has been made in view of the above, and an object of the present invention is to provide a communication device, a communication method, and a program that can easily invalidate an unauthorized communication device in a content distribution system. To do.

上述した課題を解決し、本発明は、コンテンツの一部が暗号化された暗号化ピースを受信する通信装置であって、第1通信装置から、複数の前記暗号化ピースを受信する第1受信手段と、第2通信装置に、受信した各前記暗号化ピースを復号するための情報を要求する要求手段と、自通信装置に割り当られた第1鍵を記憶する第1記憶手段と、受信した各前記暗号化ピースを復号するための復号鍵であって暗号化された前記復号鍵を前記第2通信装置又は第3通信装置から受信し、当該復号鍵の暗号化に用いられた一時情報を前記第2通信装置から受信する第2受信手段と、前記一時情報と、前記第1鍵と、前記第1鍵を用いて復号可能に暗号化された第2鍵とを用いて、暗号化された前記各復号鍵を復号する鍵復号手段とを備えることを特徴とする。   In order to solve the above-described problem, the present invention is a communication device that receives an encrypted piece in which a part of content is encrypted, and receives a plurality of the encrypted pieces from the first communication device. Means, request means for requesting information to decrypt each received encrypted piece from the second communication device, first storage means for storing a first key assigned to the own communication device, and reception Temporary information used to encrypt the decryption key received from the second communication device or the third communication device, the decryption key being a decryption key for decrypting each encrypted piece Encrypted from the second receiving device, the temporary information, the first key, and the second key encrypted using the first key so as to be decryptable. And a key decryption means for decrypting each decrypted key. To.

また、本発明は、コンテンツの一部が暗号化された暗号化ピースを受信する他の通信装置と通信する通信装置であって、複数の前記暗号化ピースを復号するための情報を要求する要求メッセージを前記他の通信装置から受信する受信手段と、前記暗号化ピースを復号するための復号鍵の暗号化に用いる一時情報を生成する生成手段と、前記要求メッセージに従って、前記一時情報を前記他の通信装置に送信する送信手段とを備えることを特徴とする。   Further, the present invention provides a communication device that communicates with another communication device that receives an encrypted piece in which a part of content is encrypted, and requests for requesting information for decrypting a plurality of the encrypted pieces Receiving means for receiving a message from the other communication device; generating means for generating temporary information used for encrypting a decryption key for decrypting the encrypted piece; and receiving the temporary information according to the request message. Transmission means for transmitting to the communication device.

また、本発明は、コンテンツの一部が暗号化された暗号化ピースを受信する通信装置で実行される通信方法であって、前記通信装置は、第1受信手段と、送信手段と、鍵復号手段と、自通信装置に割り当られた第1鍵を記憶する記憶手段とを備え、前記第1受信手段が、第1通信装置から、複数の前記暗号化ピースを受信する第1受信ステップと、前記要求手段が、第2通信装置に、受信した各前記暗号化ピースを復号するための情報を要求する要求ステップと、前記第2受信手段が、受信した各前記暗号化ピースを復号するための復号鍵であって暗号化された前記復号鍵を前記第2通信装置又は第3通信装置から受信し、当該復号鍵の暗号化に用いられた一時情報を前記第2通信装置から受信する第2受信ステップと、前記鍵復号手段が、前記一時情報と、前記第1鍵と、前記第1鍵を用いて復号可能に暗号化された第2鍵とを用いて、暗号化された前記各復号鍵を復号する鍵復号ステップとを含むことを特徴とする。   In addition, the present invention is a communication method executed by a communication device that receives an encrypted piece in which a part of content is encrypted. The communication device includes a first reception unit, a transmission unit, and a key decryption. First receiving step of receiving a plurality of the encrypted pieces from the first communication device, and a storage means for storing a first key assigned to the communication device. The request means requests the second communication device for information for decrypting each received encrypted piece, and the second receiving means decrypts each received encrypted piece. The decryption key encrypted with the decryption key is received from the second communication device or the third communication device, and the temporary information used for encrypting the decryption key is received from the second communication device. 2 receiving step and the key decryption means, A key decryption step of decrypting each of the encrypted decryption keys using the temporary information, the first key, and a second key encrypted so as to be decryptable using the first key. It is characterized by that.

また、本発明は、コンテンツの一部が暗号化された暗号化ピースを受信する通信装置の有するコンピュータを実行させるためのプログラムであって、第1通信装置から、複数の前記暗号化ピースを受信する第1受信ステップと、第2通信装置に、受信した各前記暗号化ピースを復号するための情報を要求する要求ステップと、受信した各前記暗号化ピースを復号するための復号鍵であって暗号化された前記復号鍵を前記第2通信装置又は第3通信装置から受信し、当該復号鍵の暗号化に用いられた一時情報を前記第2通信装置から受信する第2受信ステップと、前記一時情報と、前記第1鍵と、前記第1鍵を用いて復号可能に暗号化された第2鍵とを用いて、暗号化された前記各復号鍵を復号する鍵復号ステップとをコンピュータに実行させる。   The present invention also provides a program for executing a computer included in a communication device that receives an encrypted piece in which a part of content is encrypted, and receives a plurality of the encrypted pieces from the first communication device. A requesting step for requesting information for decrypting each received encrypted piece to the second communication device, and a decryption key for decrypting each received encrypted piece. A second receiving step of receiving the encrypted decryption key from the second communication device or the third communication device and receiving temporary information used for encrypting the decryption key from the second communication device; A key decryption step for decrypting each decryption key encrypted using the temporary information, the first key, and a second key encrypted using the first key. Let it run .

また、本発明は、コンテンツの一部が暗号化された暗号化ピースを受信する他の通信装置の有するコンピュータを実行させるためのプログラムであって、複数の前記暗号化ピースを復号するための情報を要求する要求メッセージを前記他の通信装置から受信する受信ステップと、前記暗号化ピースを復号するための復号鍵の暗号化に用いる一時情報を生成する生成ステップと、前記要求メッセージに従って、前記一時情報を前記他の通信装置に送信する送信ステップとをコンピュータに実行させる。   In addition, the present invention is a program for causing a computer included in another communication apparatus that receives an encrypted piece in which a part of content is encrypted, to decode a plurality of the encrypted pieces Receiving a request message for requesting from another communication device; generating a temporary information used for encrypting a decryption key for decrypting the encrypted piece; and according to the request message, the temporary message Causing the computer to execute a transmission step of transmitting information to the other communication device.

本発明によれば、コンテンツ配信システムにおいて、不正な通信装置の無効化を簡単に行うことが可能になる。   According to the present invention, an invalid communication device can be easily invalidated in a content distribution system.

以下に添付図面を参照して、この発明にかかる通信装置、通信方法及びプログラムの最良な実施の形態を詳細に説明する。   Exemplary embodiments of a communication device, a communication method, and a program according to the present invention will be explained below in detail with reference to the accompanying drawings.

[実施の形態]
(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を保持している。
[Embodiment]
(1) Configuration <Configuration of content distribution system>
First, the basic configuration of the content distribution system according to the present embodiment will be described. FIG. 1 is a diagram showing a configuration of a content distribution system according to the present embodiment. In the content distribution system according to the present embodiment, the leechers 50A to 50B, the tracker 51, the seeders 52A to 52C, and the sales server 54 are connected to each other via the P2P network NT. The leechers 50A to 50B and the key server 53 are connected to each other via a network such as the Internet (not shown). Here, the nodes are leechers 50A to 50B and seeders 52A to 52C. The seeders 52 </ b> A to 52 </ b> C hold encrypted pieces obtained by encrypting each piece with a different encryption key for content divided into a plurality of pieces. Hereinafter, content composed of such encrypted pieces is referred to as encrypted content. Details of such encrypted content will be described later. Of the seeders 52A to 52C, the seeder 52A functions as the initial seeder described above. The seeder 52A holds all of the encrypted pieces generated by encrypting each piece constituting one content by using a plurality of encryption keys for the same piece and the torrent file. The tracker 51 holds node information for accessing each node. Note that node identification information is assigned to each node. The node identification information is identification information that can uniquely identify each node, for example, the IP address of each node. The key server 53 holds a decryption key for decrypting each encrypted piece. The sales server 54 holds a torrent file.

リーチャ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と記載する。   The leecher 50A receives the torrent file from the sales server 54, accesses the tracker 51 based on the torrent file, acquires node information, and based on the node information, at least one of the seeders 52A to 52C and the leecher 50B. To receive each encrypted piece and obtain all encrypted pieces corresponding to each piece. The leecher 50A requests the key server 53 for decryption information for decrypting each encrypted piece, and the key server 53 encrypts each decryption key for decrypting each encrypted piece. Is sent to the leecher 50. As a method for encrypting each decryption key, an MKB (Media Key Block) method is applied. Details of the MKB system and decoding information will be described later. The same applies to the leecher 50B. Hereinafter, when it is not necessary to distinguish each of the leechers 50 </ b> A to 50 </ b> B, they are simply referred to as the leecher 50. When it is not necessary to distinguish the seeders 52A to 52C, they are simply referred to as seeders 52.

ここで、コンテンツの構成について説明する。コンテンツとは、種々のデジタルデータ、例えば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個の暗号化ピースから構成される暗号化コンテンツ全体を個別化することができる。   Here, the content configuration will be described. Content refers to various digital data, for example, moving image data such as MPEG2 and MPEG4, audio data, text data, still image data, and the like, and content in which these digital data are encrypted is also referred to as content. . For example, content obtained by encrypting HD DVD Prepared Video Content in accordance with the AACS (Advanced Access Content System) specification is also content. Here, the entire content is represented as C. C may be plain text or encrypted. FIG. 2 is a diagram schematically showing a state in which the content is divided into a plurality of pieces. For example, content C is divided into one piece of content into N (N> 1) pieces C1 to CN. The data lengths of the pieces C1, C2,... CN may all be the same or not. Each of these N pieces C1 to CN is encrypted with a different encryption key. At this time, a piece of N pieces is encrypted with m different encryption keys for the same piece. The remaining (N−a) pieces are encrypted with one encryption key for the same piece. That is, for each of a pieces, the same piece is encrypted with m different encryption keys, and m different pieces (encrypted pieces) are generated. Each (N−a) pieces are encrypted with one encryption key, and one encrypted piece is generated for one piece. FIG. 3 is a diagram schematically showing each encrypted piece. An encryption composed of N encrypted pieces by changing the combination of encrypted pieces selected from each of m encrypted pieces corresponding to each of the a pieces. The entire content can be individualized.

尚、コンテンツの各ピースへの分割や、各ピースの暗号化は、トラッカ51や、鍵サーバ53や、コンテンツ製作者が用意したサーバのいずれが行っても良い。尚、以降、これらのうち少なくとも1つを行う装置をピース処理装置という。また、各暗号化ピースは、例えば、トラッカ51、鍵サーバ53又は信頼できる第三者(例えば、コンテンツ製作者が用意したサーバ)からシーダ52A(初期シーダ)へ与えられるものとする。   The content can be divided into pieces and the pieces can be encrypted by any of the tracker 51, the key server 53, and a server prepared by the content producer. Hereinafter, an apparatus that performs at least one of these is referred to as a piece processing apparatus. Each encrypted piece is given to the seeder 52A (initial seeder) from, for example, the tracker 51, the key server 53, or a trusted third party (for example, a server prepared by a content producer).

次に、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号公報
Next, the MKB method will be described. The MKB system is generally applied in a situation where there are a sender that encrypts and transmits data and a plurality of receivers that receive and decrypt the encrypted data (referred to as encrypted data). In such a situation, each recipient is assigned one or more decryption keys in advance. The sender uses the encryption key or keys assigned to the recipient so that the recipient to be revoked cannot compute plaintext and the non-revoked recipient can compute plaintext The plaintext is encrypted. A non-invalidated recipient computes the plaintext by decrypting the encrypted plaintext using one of the assigned decryption keys. MKB is data including one or a plurality of ciphertexts each encrypted so that the plaintext can be decrypted using a device key (first key), and includes key management including other data necessary for decryption by the receiver Information. In the case where identification information is assigned to each ciphertext, this identification information is an example of other data necessary for decryption by the receiver. The device key is data including one or more pieces of key information, and includes other data necessary for decryption by the receiver. Since device key identification information is assigned to each device key, other data necessary for decryption by the recipient is, for example, the device key identification information. The above-described plaintext is obtained by MKB processing described later using this device key and MKB. This plaintext is hereinafter referred to as a plaintext key (second key) for convenience of explanation. The plaintext key encrypted so that it can be decrypted using at least each device key is called an encrypted plaintext key. In general, when the data length of the data to be encrypted is large, the sender encrypts the data to be encrypted by using the plaintext key as a decryption key and the encryption key corresponding to the plaintext key. Encrypted data (encrypted data) is transmitted from the sender and received by the receiver. FIG. 4 is a diagram conceptually showing a basic processing flow performed by the receiver in the MKB system according to the present embodiment. As shown in the figure, in the present embodiment, the receiver uses the device key assigned to himself / herself to decrypt the encrypted plaintext key included in the MKB to obtain the plaintext key, and then The received encrypted data is decrypted using the plaintext key. An example of the MKB method is the MKB method disclosed in the following references 1 and 2.
(Reference 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.
(Reference 2) Japanese Patent No. 3917507

参考文献1において開示されているMKB方式は、共通鍵暗号に基づいたMKB方式である。共通鍵暗号に基づいたMKB方式においては、MKBに含まれる暗号化平文鍵を生成する際に用いられた暗号化鍵と、当該暗号化平文鍵を復号するための復号鍵(デバイス鍵)とは同一である。一方、参考文献2において開示されているMKB方式は、公開鍵暗号に基づいたMKB方式である。公開鍵暗号に基づいたMKB方式においては、MKBに含まれる暗号化平文鍵を生成する際に用いられた暗号化鍵(公開鍵)と、当該暗号文を復号するための復号鍵(デバイス鍵)とは異なとは異なり、暗号化鍵を(公開鍵として)公開することができる。   The MKB system disclosed in Reference 1 is an MKB system based on common key cryptography. In the MKB system based on the common key encryption, the encryption key used when generating the encrypted plaintext key included in the MKB and the decryption key (device key) for decrypting the encrypted plaintext key are Are the same. On the other hand, the MKB system disclosed in Reference 2 is an MKB system based on public key cryptography. In the MKB system based on public key cryptography, an encryption key (public key) used to generate an encrypted plaintext key included in the MKB and a decryption key (device key) for decrypting the ciphertext Unlike, the encryption key can be made public (as a public key).

このようなMKB方式を適用して、あるリーチャ50を無効化する場合、当該リーチャ50に割り当てられたデバイス鍵を用いて復号されても正しい平文鍵が得られないように生成された暗号化平文鍵を含むMKBを生成する。即ち、無効化されていないリーチャ50に割り当てられたデバイス鍵を用いて暗号化平文鍵を復号して得られる平文鍵と、無効化されたリーチャ50に割り当てられたデバイス鍵を用いて暗号化平文鍵を復号して得られる平文鍵とが異なるような暗号化平文鍵を含むMKBを生成する。このような構成によれば、無効化されたリーチャ50が、デバイス鍵記憶部504に記憶されたデバイス鍵を用いてMKBに含まれている暗号化平文鍵を復号しても、正しい平文鍵を得ることができないことになる。   When such a MKB method is applied to invalidate a certain leecher 50, an encrypted plaintext generated so that a correct plaintext key cannot be obtained even if the device key assigned to the leecher 50 is decrypted. Generate an MKB containing the key. That is, the plaintext key obtained by decrypting the encrypted plaintext key using the device key assigned to the non-invalidated leecher 50 and the encrypted plaintext using the device key assigned to the invalidated leecher 50 An MKB including an encrypted plaintext key that is different from the plaintext key obtained by decrypting the key is generated. According to such a configuration, even if the invalidated leecher 50 decrypts the encrypted plaintext key included in the MKB using the device key stored in the device key storage unit 504, the correct plaintext key is obtained. You can't get it.

次に、リーチャ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)とが有線又は無線により接続される。   Next, the hardware configuration of each device including the leecher 50, the tracker 51, the seeder 52, and the key server 53 will be described. Each device is a control device such as a CPU (Central Processing Unit) that controls the entire device, a storage device such as a ROM (Read Only Memory) or a RAM (Random Access Memory) that stores various data and various programs, and a variety of devices. It has an external storage device such as an HDD (Hard Disk Drive) or CD (Compact Disk) drive device that stores data and various programs, and a bus that connects them, and has a hardware configuration that uses a normal computer. ing. Each device includes a display device that displays information, an input device such as a keyboard and a mouse that accepts user instruction input, and a communication I / F (interface) that controls communication with an external device. Connected by

<シーダ52の構成>
次に、上述したハードウェア構成において、シーダ52のCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。シーダ52は、コンテンツCを構成する複数のピースC1〜CNが各々暗号化された各暗号化ピースを、各ピースC1〜CNを各々復号するための各復号鍵のインデックス(添え字)と対応付けて記憶している。尚、各復号鍵は、各暗号鍵と同一であっても良いし、各暗号鍵と異なるものであっても良い。いずれにしろ、各ピースC1〜CNは各々暗号鍵で暗号化されているため、これらの各暗号化ピースを復号するための復号鍵のそれぞれについて、各復号鍵のインデックスを用いて、各暗号化ピースを特定することができる。また、各暗号化ピースには、コンテンツを識別可能なコンテンツ識別情報が各々割り当てられている。このような各暗号化ピースは例えば外部記憶装置に記憶される。
<Configuration of seeder 52>
Next, in the hardware configuration described above, various functions realized when the CPU of the seeder 52 executes various programs stored in the storage device or the external storage device will be described. The seeder 52 associates each encrypted piece obtained by encrypting a plurality of pieces C1 to CN constituting the content C with an index (subscript) of each decryption key for decrypting each piece C1 to CN. I remember. Each decryption key may be the same as each encryption key, or may be different from each encryption key. In any case, since each piece C1 to CN is encrypted with an encryption key, each decryption key for decrypting each encrypted piece is encrypted using an index of each decryption key. Pieces can be identified. Each encrypted piece is assigned content identification information that can identify the content. Each such encrypted piece is stored in, for example, an external storage device.

以下簡単のため、暗号鍵と復号鍵が同一の場合で説明する。復号鍵のインデックスを、( 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’)であってもよい。)
Hereinafter, for the sake of simplicity, description will be made on the case where the encryption key and the decryption key are the same. If the index of the decryption key is represented by (i, j) and the decryption key is represented by K (i, j), each encrypted piece is represented as follows, for example.
E (K (i, j)) [Cj]
(Where i, j are integers, 1 ≦ i ≦ m, 1 ≦ j ≦ N (m> 1), different indexes (i, j), (i ′, j ′) ((i, j) ≠ ( i ′, j ′)) may be 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)
The encrypted content composed of such encrypted pieces is represented as follows, for example.
{E (K (i1, 1)) [C1], E (K (i2, 2)) [C2],…, E (K (iN, N)) [CN]}
(However, 1 ≦ i1,…, iN ≦ m)

このような暗号化コンテンツにおける各暗号化ピースのシーケンスは、各暗号化ピースのインデックスの組み合わせにより表され、例えば以下のように表される。ここでは、各ピースC1〜CNに各々対応するインデックスが左から順に配列されて表されている。
{ ( i1, 1 ), ( i2, 2 ), …, ( iN, N) }
(ただし、1≦i1, …, iN≦m)
The sequence of each encrypted piece in such encrypted content is represented by a combination of indexes of each encrypted piece, and is represented as follows, for example. Here, indexes corresponding to the pieces C1 to CN are arranged and represented in order from the left.
{(i1, 1), (i2, 2),…, (iN, N)}
(However, 1 ≦ i1,…, iN ≦ m)

従って、シーダ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)
Therefore, what the seeder 52 stores in association with each encrypted piece and the index is expressed as follows, for example.
{(E (K (i1, 1)) [C1], (i1, 1)), (E (K (i2, 2)) [C2], (i2, 2)),…, (E (K ( iN, N)) [CN], (iN, N))}
(However, 1 ≦ i1,…, iN ≦ m)

更に、初期シーダであるシーダ52Aは、コンテンツを構成する各ピースに各々対応する各暗号化ピースについて、同一のピースに対して複数の暗号鍵により各々暗号化されて生成された暗号化ピースの全てを記憶している。図5は、シーダ52Aが記憶している各暗号化ピースを例示する図である。同図においては、N個のうちa個(1<a<N)のピースについて、同一のピースに対して複数の異なる暗号鍵で各々暗号化されていることが示されている。同図においては、同一のピースの暗号化に用いられる暗号鍵の個数は、ピース毎に異なっている。ピースC1に対する暗号鍵の個数はm個であり、ピースC3に対する暗号鍵の個数は2個である。但し、本実施の形態においては、同一のピースの暗号化に用いられる暗号鍵の個数はピース毎に同じであっても良い。ピース処理装置では、このように、N個のうちa個(1<a<N)のピースについて、同一のピースに対して複数の異なる暗号鍵で各々暗号化することにより、例えば、重要度の高いほど暗号鍵の数を増やすようにすることができる。   Further, the seeder 52A as the initial seeder, for each encrypted piece corresponding to each piece constituting the content, all encrypted pieces generated by encrypting the same piece with a plurality of encryption keys. Is remembered. FIG. 5 is a diagram illustrating each encrypted piece stored in the seeder 52A. In the figure, it is shown that a piece out of N pieces (1 <a <N) is encrypted with a plurality of different encryption keys for the same piece. In the figure, the number of encryption keys used for encrypting the same piece varies from piece to piece. The number of encryption keys for piece C1 is m, and the number of encryption keys for piece C3 is two. However, in the present embodiment, the number of encryption keys used for encryption of the same piece may be the same for each piece. In this way, the piece processing apparatus encrypts the same piece with a plurality of different encryption keys for each of a (N <1 <a <N) pieces out of N pieces. It is possible to increase the number of encryption keys as the value increases.

尚、本実施の形態においては、これに限らず、例えば、図6に示されるように、「a=N」の場合、即ち、N個全てのピースについて、同一のピースに対してm個の異なる暗号鍵で各々暗号化されていても良い。このような構成によれば、暗号化ピースのシーケンスのバリエーションを多くすることができる。また、図7に示されるように、「a=1」の場合、即ち、N個のうち1個のピースのみ、m個の異なる暗号鍵で暗号化されていても良い。このような構成によれば、配信効率を向上させることができる。   In the present embodiment, not limited to this, for example, as shown in FIG. 6, in the case of “a = N”, that is, for all N pieces, m pieces of the same piece Each may be encrypted with a different encryption key. According to such a structure, the variation of the sequence of an encryption piece can be increased. Also, as shown in FIG. 7, in the case of “a = 1”, that is, only one piece out of N pieces may be encrypted with m different encryption keys. According to such a configuration, distribution efficiency can be improved.

このような構成において、シーダ52は、リーチャ50からのアクセスにより、当該シーダ52が記憶している暗号化ピースのシーケンスを示すピース情報をリーチャ50に送信する。図8は、ピース情報のデータ構成を例示する図である。同図においては、ピースC1に対応する暗号化ピースについては、復号鍵K(1, 1 )により復号されることが示され、ピースC2に対応する暗号化ピースについては、復号鍵K(3, 2 ) により復号されることが示されている。即ち、ピース情報によって、各暗号化ピースと各暗号化ピースの復号化のための復号鍵の対応関係とが示される。シーダ52は、当該ピース情報に基づいて暗号化ピースを要求するピース要求をリーチャ50から受信すると、要求された暗号化ピースを保持しているか否かを判断し、当該判断結果が肯定的である場合に、当該暗号化ピースをリーチャ50に送信する。   In such a configuration, the seeder 52 transmits piece information indicating a sequence of encrypted pieces stored in the seeder 52 to the leecher 50 by access from the leecher 50. FIG. 8 is a diagram illustrating a data configuration of piece information. In the figure, it is shown that the encrypted piece corresponding to the piece C1 is decrypted with the decryption key K (1, 1), and the encrypted piece corresponding to the piece C2 is decrypted with the decryption key K (3, It is shown that it is decrypted by 2). That is, the piece information indicates the correspondence between each encrypted piece and the decryption key for decrypting each encrypted piece. When receiving a piece request for requesting an encrypted piece from the leecher 50 based on the piece information, the seeder 52 determines whether or not the requested encrypted piece is held, and the determination result is affirmative. In this case, the encrypted piece is transmitted to the leecher 50.

<リーチャ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などの外部記憶装置に記憶されている。
<Configuration of leecher 50>
Next, in the hardware configuration described above, various functions realized when the CPU of the leecher 50 executes various programs stored in a storage device or an external storage device will be described. FIG. 9 is a diagram illustrating a functional configuration of the leecher 50. The leecher 50 includes a content acquisition unit 500, a decryption information request unit 501, a decryption information acquisition unit 502, a content decryption unit 503, a device key storage unit 504, an MKB storage unit 505, and an MKB processing unit 506. Unit 507 and key ring decrypting unit 508. The content acquisition unit 500, the decryption information request unit 501, the decryption information acquisition unit 502, the content decryption unit 503, the MKB processing unit 506, the conversion unit 507, and the key ring decryption unit 508 are executed by a CPU program. Sometimes generated on a storage device such as a RAM. The device key storage unit 504 and the MKB storage unit 505 are stored in an external storage device such as an HDD. It is assumed that leecher identification information that can identify the leecher 50 is assigned to the leecher 50. The leecher identification information is stored in an external storage device such as an HDD.

コンテンツ取得部500は、P2PネットワークNTを介して、暗号化コンテンツを構成する各暗号化ピースをシーダ52の少なくとも1つから受信する。具体的には、コンテンツ取得部500は、まず、販売サーバ54からTorrent Fileを受信する。Torrent Fileは、トラッカ51に接続するためのトラッカ接続先情報を含むトラッカ情報と、暗号化コンテンツを構成する各暗号化ピースとしてどのようなものがあるかを示すファイル情報とを含んでいる。図10は、Torrent Fileを例示する図である。同図においては、ファイル情報として、各暗号化ピースを特定するための情報として、各暗号化ピースに対応するインデックスが各々示されている。トラッカ接続先情報は、例えば、トラッカ51のIPアドレスや、URLなどである。   The content acquisition unit 500 receives each encrypted piece constituting the encrypted content from at least one of the seeders 52 via the P2P network NT. Specifically, the content acquisition unit 500 first receives a torrent file from the sales server 54. The Torrent File includes tracker information including tracker connection destination information for connecting to the tracker 51, and file information indicating what kind of encrypted pieces are included in the encrypted content. FIG. 10 is a diagram illustrating a torrent file. In the figure, as file information, an index corresponding to each encrypted piece is shown as information for specifying each encrypted piece. The tracker connection destination information is, for example, the IP address or URL of the tracker 51.

コンテンツ取得部500は、Torrent Fileに基づいて、P2PネットワークNTを介してトラッカ51にアクセスして、P2PネットワークNTに接続されているノード(シーダ52、他のリーチャ50)にアクセスするためのノード情報を当該トラッカ51から受信する。ノード情報の詳細については後述する。そして、コンテンツ取得部500は、ノード情報に基づいて、ノードの少なくとも1つにアクセスして、当該ノードが記憶している自身の保持する暗号化ピースのシーケンスを示すピース情報を取得する。そして、コンテンツ取得部500は、ピース情報に基づいて、暗号化コンテンツを構成する各暗号化ピースを要求するピース要求をノードの少なくとも1つに送信し、当該ピース要求に応じて送信される暗号化ピースを受信することにより、暗号化コンテンツを構成する全ての暗号化ピース(ピースシーケンス)を取得する。例えば、図3に示した各暗号化ピースのうち、網掛けされた全ての暗号化ピースをピースシーケンスとしてコンテンツ取得部500は取得する。取得した暗号化ピースをコンテンツ取得部500は例えば外部記憶装置に記憶する。   Based on the torrent file, the content acquisition unit 500 accesses the tracker 51 via the P2P network NT, and node information for accessing a node (seeder 52, other leecher 50) connected to the P2P network NT. Is received from the tracker 51. Details of the node information will be described later. Then, the content acquisition unit 500 accesses at least one of the nodes based on the node information, and acquires piece information indicating a sequence of encrypted pieces held by the node and stored in the content acquisition unit 500. Then, the content acquisition unit 500 transmits a piece request for requesting each encrypted piece constituting the encrypted content to at least one of the nodes based on the piece information, and is transmitted in response to the piece request. By receiving the pieces, all the encrypted pieces (piece sequences) constituting the encrypted content are acquired. For example, among the encrypted pieces illustrated in FIG. 3, the content acquisition unit 500 acquires all the shaded encrypted pieces as a piece sequence. The content acquisition unit 500 stores the acquired encrypted piece in, for example, an external storage device.

デバイス鍵記憶部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に含めなくても良い。   The device key storage unit 504 stores the device key assigned to the leecher 50 in association with the device key identification information assigned to the device key. The number of device keys stored in the device key storage unit 504 may be one or plural. The MKB storage unit 505 stores an MKB including an encrypted plaintext key that is a plaintext key encrypted in such a manner that it can be decrypted with each device key assigned to each of a plurality of different leechers 50. MKB identification information that can identify the MKB is assigned to the MKB. The MKB identification information is, for example, an MKB serial number. FIG. 11 is a diagram illustrating the data structure of the MKB. As shown in the figure, the MKB includes MKB identification information, a plaintext key verification record, and a plurality of encrypted plaintext keys. The plaintext key verification record is used to verify the MKB. Specifically, the plaintext key verification record is obtained by encrypting fixed data (for example, a sequence of numbers such as “01234XXX”) with the plaintext key Km. The fixed data is separately stored in advance in an external storage device such as an HDD of the leecher 50. The encrypted plaintext key includes one record for each device key identification information or group of device key identification information, and is included in the MKB. For example, one encrypted plaintext key corresponding to device key identification information '1' and one encrypted plaintext key corresponding to device key identification information '100' to '199' are included as separate records. Since each device key identification information corresponds to the device key as described above, each encrypted plaintext key can be decrypted by one of the key information included in the device key corresponding to the device key identification information. In FIG. 11, the MKB data configuration in the case where the plaintext key is encrypted (using the common key encryption method) using the device key is illustrated. May be. In this case, the encrypted plaintext key included in the MKB is, for example, an encrypted plaintext key obtained by encrypting the plaintext key using a public key corresponding to the device key corresponding to the device key identification information “1”. (The same applies to device key identification information other than “1”.) In addition, one encrypted plaintext key may be included in the MKB. In this case, the device key identification information may not be included in the MKB. Depending on the MKB method used (for example, when the MKB method based on the public key encryption disclosed in Reference 2 is used), the device key identification information may not be included in the MKB.

復号情報要求部501は、ピースシーケンスを復号するための復号情報を要求する要求メッセージを鍵サーバ53へ送信する。要求メッセージは、ピースシーケンスに含まれる暗号化ピースに対応付けられているコンテンツ識別情報及び当該リーチャ50に割り当てられたリーチャ識別情報を含む。復号情報とは、ピースシーケンスを復号するための各復号鍵が暗号化された各暗号化復号鍵を含む暗号化鍵束と、シード情報と、暗号化鍵束の復号に用いるMKBを識別可能なMKB識別情報とを含む。復号鍵の詳細については後述する。要求メッセージは、更に、各復号鍵のシーケンスを指定する情報として、ピースシーケンスにおける各暗号化ピースのインデックスの組み合わせ(シーケンス)を示すインデックス情報を含む。このようなシーケンスは、例えば、以下のように表される。
{ ( i1, 1 ), ( i2, 2 ), …, ( iN, N) }
(ただし、1≦i1, …, iN≦m)
The decryption information request unit 501 transmits a request message for requesting decryption information for decrypting the piece sequence to the key server 53. The request message includes content identification information associated with the encrypted piece included in the piece sequence and reacher identification information assigned to the leecher 50. The decryption information can identify the encryption key bundle including each encryption decryption key in which each decryption key for decrypting the piece sequence is encrypted, the seed information, and the MKB used for decryption of the encryption key bundle. And MKB identification information. Details of the decryption key will be described later. The request message further includes index information indicating a combination (sequence) of indexes of each encrypted piece in the piece sequence as information designating each decryption key sequence. Such a sequence is represented as follows, for example.
{(i1, 1), (i2, 2),…, (iN, N)}
(However, 1 ≦ i1,…, iN ≦ m)

復号情報取得部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に記憶されたデバイス鍵で復号可能な暗号平文鍵を復号して、平文鍵を得る。   The decryption information acquisition unit 502 receives the decryption information transmitted from the key server 53 according to the request message. The seed information is information used to encrypt a key ring for decrypting each encrypted piece held by the leecher 50, and is a temporary information used to decrypt an encrypted key ring (encrypted key ring). Information. When the MKB identification information included in the decryption information acquired by the decryption information acquisition unit 502 and the MKB identification information allocated to the MKB stored in the MKB storage unit 505 are the same, the MKB processing unit 506 The encrypted plaintext key included in the MKB is decrypted with the device key stored in the device key storage unit 504 to obtain a plaintext key. Further, the MKB processing unit 506, when the MKB identification information included in the decryption information acquired by the decryption information acquisition unit 502 and the MKB identification information assigned to the MKB stored in the MKB storage unit 505 are not the same, The former MKB identification information is assigned, and the MKB is acquired from a communication device other than the key server 53 such as a tracker 51, a sales server 54, or a server prepared by a content producer. Then, the MKB processing unit 506 decrypts an encrypted plaintext key that can be decrypted with the device key stored in the device key storage unit 504 among the encrypted plaintext keys included in the acquired MKB, and obtains a plaintext key.

変換部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)
The conversion unit 507 converts the plaintext key obtained by the MKB processing unit 506 using the seed information included in the decryption information acquired by the decryption information acquisition unit 502 according to the following Equation 1, and obtains a converted plaintext key. The converted plaintext key becomes a key bundle decryption key for decrypting the encrypted key bundle included in the decryption information acquired by the decryption information acquisition unit 502. Km ′ represents a converted plaintext key. Km represents a plaintext key. S represents seed information. F represents a function. As the function F, for example, 'F (x, y) = E (x) [y] Ay' may be used, or 'F (x, y) = D (x) [y] Ay' may be used. Then, 'F (x, y) = H (x || y)' may be used. A represents an exclusive OR for each bit. D represents a decryption function, and D (Key) [X] represents that X is decrypted with Key. That is, 'C = D (Key) [E (Key) [C]]'. H represents a hash function. || represents concatenation of data.
Km '= F (Km, S) (Formula 1)

鍵束復号部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)
The key ring decryption unit 508 uses the converted plaintext key converted by the conversion unit 507 to decrypt the encrypted key ring acquired by the decryption information acquisition unit 502 according to the following Expression 2, and the content acquisition unit 500 acquires Each decryption key for decrypting each encrypted piece is obtained. Z represents a key ring. K (i1,1), K (i2,2),..., K (iN, N) (where 1 ≦ i1,..., IN ≦ m) are decryption keys respectively corresponding to the pieces C1 to CN. Represents each decryption key included in the key ring.
K (i1,1) || K (i2,2) || ... || K (iN, N) = D (Km ') [Z] (Formula 2)

コンテンツ復号部503は、コンテンツ取得部500が取得した各暗号化ピースを、鍵束復号部508が得た各復号鍵を用いて各々復号して、復号した各ピースから構成されるコンテンツを取得する。   The content decrypting unit 503 decrypts each encrypted piece obtained by the content obtaining unit 500 using each decryption key obtained by the key bundle decrypting unit 508, and obtains content composed of the decrypted pieces. .

尚、リーチャ50は、上述したように、シーダとして機能する場合もあるが、その機能的構成については、シーダ52の構成において説明したため、ここでは、その説明を省略する。   Although the leecher 50 may function as a seeder as described above, the functional configuration thereof has been described in the configuration of the seeder 52, and thus the description thereof is omitted here.

<鍵サーバ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とは、例えば、外部記憶装置に記憶されるものである。
<Configuration of Key Server 53>
Next, various functions realized when the CPU of the key server 53 executes various programs stored in the storage device or the external storage device will be described. FIG. 12 is a diagram illustrating a functional configuration of the key server 53. The key server 53 includes a control unit 530, a packet processing unit 531, a network interface unit 532, a plaintext key storage unit 533, a content decryption key storage unit 534, a sequence information storage unit 536, and a sequence information verification unit 535. , An encryption key supply unit 537, a seed information generation unit 538, and an encryption unit 539. The entities of the control unit 530, the sequence information collation unit 535, the network interface unit 532, the packet processing unit 531, the encryption key supply unit 537, the seed information generation unit 538, and the encryption unit 539 are determined by the CPU. It is generated on a storage device such as a RAM when the program is executed. The content decryption key storage unit 534 and the plaintext key storage unit 533 are stored in, for example, an external storage device.

制御部530は、鍵サーバ53全体を制御し、ネットワークインターフェース部532を介して、リーチャ50から要求メッセージを受信したり、シーケンス情報照合部535から暗号化鍵供給部537への指示を仲介したりする。パケット処理部531は、リーチャ50などの外部装置に送信する各種データをパケット化してネットワークインターフェース部532に受け渡したり、ネットワークインターフェース部532から受け渡されたパケットを基にデータを取得したりする。ネットワークインターフェース部532は、外部装置との通信を制御し、パケット処理部531から受け渡されたパケット化されたデータを送信したり、外部装置から受信したパケットをパケット処理部531に受け渡したりする。   The control unit 530 controls the entire key server 53, receives a request message from the leecher 50 via the network interface unit 532, and mediates an instruction from the sequence information verification unit 535 to the encryption key supply unit 537. To do. The packet processing unit 531 packetizes various data to be transmitted to an external device such as the leecher 50 and transfers it to the network interface unit 532 or acquires data based on the packet transferred from the network interface unit 532. The network interface unit 532 controls communication with the external device, transmits packetized data transferred from the packet processing unit 531, and transfers packets received from the external device to the packet processing unit 531.

平文鍵記憶部533は、平文鍵を、当該平文鍵が暗号化された暗号化平文鍵を含むMKBに対応付けられているMKB識別情報及びコンテンツ識別情報と対応付けて記憶している。   The plaintext key storage unit 533 stores the plaintext key in association with the MKB identification information and the content identification information associated with the MKB including the encrypted plaintext key obtained by encrypting the plaintext key.

コンテンツ復号鍵記憶部534は、例えば、HDDなどの外部記憶装置において構成され、各暗号化ピースを各々復号するための各復号鍵を各々記憶する。各復号鍵は、上述したように、例えばK ( i, j )として表される。   The content decryption key storage unit 534 is configured, for example, in an external storage device such as an HDD, and stores each decryption key for decrypting each encrypted piece. Each decryption key is represented as, for example, K (i, j) as described above.

シーケンス情報記憶部536は、例えばHDDなどの外部記憶装置において構成され、リーチャ50に過去に送信した全ての鍵束に各々対応するシーケンスを示すシーケンス情報をコンテンツ識別情報及びリーチャ識別情報と対応付けて記憶する。鍵束に各々対応するシーケンスは、上述したインデックス情報に示されるシーケンスと同様に、例えば以下のように表される。
{(i1,1),(i2,2),…,(iN,N)}
(ただし、1≦i1,…,iN≦m)
The sequence information storage unit 536 is configured in an external storage device such as an HDD, for example, and associates sequence information indicating sequences corresponding to all key bundles transmitted to the leecher 50 in the past with content identification information and leecher identification information. Remember. The sequence corresponding to each key ring is expressed as follows, for example, similarly to the sequence shown in the index information described above.
{(i1,1), (i2,2),…, (iN, N)}
(However, 1 ≦ i1,…, iN ≦ m)

シーケンス情報照合部535は、シーケンス情報記憶部536に記憶されたシーケンス情報と、リーチャ50から受信したインデックス情報とを照合することにより、インデックス情報によって示されるシーケンスに対応する鍵束を送信するか否かを決定する。具体的には、シーケンス情報照合部535は、インデックス情報に示されるシーケンスと同一のシーケンスを示すシーケンス情報がシーケンス情報記憶部536に記憶されていない場合、インデックス情報によって示されるシーケンスに対応する鍵束を送信することを決定する。鍵束は、例えば、以下のように表される。ここでは、各ピースC1〜CNに各々対応する復号鍵が左から順に配列されて表されている。
{K(i1,1), K(i2,2), …, K(iN,N)}
(ただし、1≦i1, …,iN≦m)
Whether the sequence information collation unit 535 collates the sequence information stored in the sequence information storage unit 536 with the index information received from the leecher 50, thereby transmitting a key bundle corresponding to the sequence indicated by the index information. To decide. Specifically, the sequence information matching unit 535, when the sequence information indicating the same sequence as the sequence indicated by the index information is not stored in the sequence information storage unit 536, the key bundle corresponding to the sequence indicated by the index information Decide to send. The key ring is expressed as follows, for example. Here, the decryption keys corresponding to the pieces C1 to CN are arranged and represented in order from the left.
{K (i1,1), K (i2,2),…, K (iN, N)}
(However, 1 ≦ i1,…, iN ≦ m)

そして、シーケンス情報照合部535は、鍵束を送信することを決定した場合、制御部530を介して、当該鍵束の暗号化に用いるシード情報を生成することをシード情報生成部538に指示する。また、シーケンス情報照合部535は、鍵束を送信しないことを決定した場合、制御部530を介して、当該鍵束の当該リーチャ50への送信禁止を暗号化鍵供給部537に指示する。   If the sequence information matching unit 535 determines to transmit the key ring, the sequence information matching unit 535 instructs the seed information generation unit 538 to generate seed information used for encryption of the key ring via the control unit 530. . In addition, when the sequence information collation unit 535 determines not to transmit the key bundle, the sequence information collation unit 535 instructs the encryption key supply unit 537 to prohibit transmission of the key bundle to the leecher 50 via the control unit 530.

シード情報生成部538は、リーチャ50から受信した要求メッセージに含まれるコンテンツ識別情報及びリーチャ識別情報と、秘密情報とを用いて、以下の式3によりシード情報を計算することにより、シード情報を生成する。秘密情報とは、リーチャ50に対して公開されていない情報であり、鍵サーバ53が例えばHDDなどの外部記憶装置に記憶している情報である。Kは、秘密情報を表す。Sは、シード情報を表す。CIDは、コンテンツ識別情報を表す。LIDは、リーチャ識別情報を表す。
S=H(K || CID || LID)・・・(式3)
The seed information generation unit 538 generates seed information by calculating seed information according to the following Equation 3 using the content identification information and the leecher identification information included in the request message received from the leecher 50 and the secret information. To do. The secret information is information that is not disclosed to the leecher 50 and is information that the key server 53 stores in an external storage device such as an HDD. K represents secret information. S represents seed information. CID represents content identification information. LID represents leecher identification information.
S = H (K || CID || LID) (Formula 3)

暗号化部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)
The encryption unit 539 encrypts the key bundle that the sequence information matching unit 535 has decided to transmit. Specifically, the encryption unit 539 reads out the decryption keys corresponding to the key bundle sequence determined to be transmitted by the sequence information matching unit 535 from the content decryption key storage unit 534 and receives the request message received from the leecher 50. The plaintext key associated with the content identification information included in is read from the plaintext key storage unit 533. Then, the encryption unit 539 uses the plaintext key and the seed information generated by the seed information generation unit 538 to encrypt the key bundle including each decryption key according to the following Equation 4, and encrypts each decryption key An encryption key ring containing is obtained. Z represents an encryption key ring. K (i1,1), K (i2,2),..., K (iN, N) represents each decryption key as described above. E represents the encryption function as described above.
Z = E (F (Km, S)) [K (i1,1) || K (i2,2) || ... || K (iN, N)] (Formula 4)

暗号化鍵供給部537は、暗号化部539が鍵束を暗号化して得た暗号化鍵束、鍵束の暗号化に用いたシード情報及びリーチャ50が用いるべきMKBのMKB識別情報を含む復号情報を、ネットワークインターフェース部532を介してリーチャ50に送信する。リーチャ50が用いるべきMKBのMKB識別情報とは、暗号化部539が鍵束の暗号化に用いた平文鍵に対応付けられているMKB識別情報である。   The encryption key supply unit 537 includes a decryption including the encryption key bundle obtained by encrypting the key bundle by the encryption section 539, seed information used for encryption of the key bundle, and MKB identification information of the MKB to be used by the leecher 50. Information is transmitted to the leecher 50 via the network interface unit 532. The MKB identification information of the MKB to be used by the leecher 50 is MKB identification information associated with the plaintext key used by the encryption unit 539 to encrypt the key ring.

<トラッカ51の構成>
次に、トラッカ51の構成について説明する。トラッカ51は、リーチャ50からアクセスされると、P2PネットワークNTに接続されているノードにアクセスするための接続先情報としてノード情報を当該リーチャ50に対して送信する。ノード情報は、IPアドレスとポート番号との組を含んでいる。図13は、ノード情報のデータ構成を例示する図である。同図においては、ノードA〜Bは各々、リーチャ50A〜50B、シーダ52A〜52Cのいずれかであり、当該各ノードのIPアドレスとポート番号との組が示されている。
<Configuration of tracker 51>
Next, the configuration of the tracker 51 will be described. When accessed from the leecher 50, the tracker 51 transmits node information to the leecher 50 as connection destination information for accessing a node connected to the P2P network NT. The node information includes a set of an IP address and a port number. FIG. 13 is a diagram illustrating a data configuration of node information. In the figure, the nodes A to B are each one of the reachers 50A to 50B and the seeders 52A to 52C, and a set of an IP address and a port number of each node is shown.

ここで、トラッカ51がノード情報をどのように生成するかについて説明する。例えば、複数のトラッカ51が存在しえる場合、そのうちの1つのトラッカ51に接続するためのトラッカ接続先情報を含むTorrent Fileをあるノードが保持しており、また、暗号化ピースを保持しているとする。当該ノードは、Torrent Fileのトラッカ接続先情報を参照し、当該ノードを一意に識別するためのノード識別情報をトラッカ51に送信する。ノード識別情報とは、例えば、当該ノードのIPアドレスとポート番号とである。トラッカ51は、当該ノード識別情報を受信するとこれを用いて図13に示されるようなノード情報を生成する。   Here, how the tracker 51 generates node information will be described. For example, when a plurality of trackers 51 can exist, a certain node holds a torrent file including tracker connection destination information for connecting to one of the trackers 51, and holds an encrypted piece. And The node refers to the tracker connection destination information of the Torrent File, and transmits node identification information for uniquely identifying the node to the tracker 51. The node identification information is, for example, the IP address and port number of the node. When receiving the node identification information, the tracker 51 uses this to generate node information as shown in FIG.

(2)動作
次に、本実施の形態にかかるコンテンツ配信システムで行うコンテンツ配信処理の手順について図14を用いて説明する。尚、リーチャ50は、暗号化ピースを他のリーチャ50からも受信可能であるが、ここでは、説明の便宜上、暗号化ピースをシーダ52A〜52Cからの少なくとも1つから受信するものとする。
(2) Operation Next, a procedure of content distribution processing performed by the content distribution system according to the present embodiment will be described with reference to FIG. The leecher 50 can receive the encrypted piece from other leechers 50, but here, for convenience of explanation, it is assumed that the encrypted piece is received from at least one of the seeders 52A to 52C.

リーチャ50は、まず、販売サーバ54にアクセスして、Torrent Fileを取得する(ステップS1)。そして、リーチャ50は、Torrent Fileに含まれるトラッカ情報に含まれるトラッカ接続先情報を用いてトラッカ51にアクセスすると(ステップS2)、トラッカ51はリーチャ50に対して、ノード情報を送信する(ステップS3)。リーチャ50は、ノード情報を受信すると(ステップS4)、ノード情報を用いて、例えばシーダ52A〜52Cの少なくとも1つにアクセスする(ステップS5)。シーダ52は、リーチャ50からアクセスされると、自身の保持する暗号化ピースのシーケンスを示すピース情報をリーチャ50へ送信する(ステップS6)。   The leecher 50 first accesses the sales server 54 and acquires a torrent file (step S1). When the leecher 50 accesses the tracker 51 using the tracker connection destination information included in the tracker information included in the torrent file (step S2), the tracker 51 transmits node information to the leecher 50 (step S3). ). When the leecher 50 receives the node information (step S4), the leecher 50 accesses, for example, at least one of the seeders 52A to 52C using the node information (step S5). When accessed from the leecher 50, the seeder 52 transmits piece information indicating the sequence of encrypted pieces held by the seeder 52 to the leecher 50 (step S6).

リーチャ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 ]}を得る。   When receiving the piece information (step S7), the leecher 50 accesses at least one seeder 52 using the piece information (step S8). The leecher 50 transmits to the seeder 52 a piece request for requesting at least one of a plurality of encrypted pieces corresponding to each of the pieces C1 to CN, and receives each encrypted piece. . In response to the piece request from the leecher 50, the seeder 52 transmits the encrypted piece held by the seeder 52 to the leecher 50 (step S9). Specifically, the leecher 50 uses, for example, piece information received by accessing the seeder 52B to encrypt an encrypted piece E (K (i1, 1)) [C1] (i1 is an encrypted piece). For example, it is determined whether or not the seeder 52B holds an encrypted piece of “i1 = 1” in the case of an integer of 1 ≦ i1 ≦ m). The encrypted piece E (K (1, 1)) [C1] is received from the seeder 52B. If the seeder 52B does not actually hold the encrypted piece E (K (1, 1)) [C1], the leecher 50 then accesses another seeder 52 (for example, the seeder 52C). Then, piece information is acquired from the other seeder 52C. The leecher 50 uses the piece information in the same manner as described above to determine whether the seeder 52C holds the encrypted piece. If the determination result is affirmative, Access and attempt to obtain the encrypted piece. The leecher 50 repeats such a process to generate encrypted contents {E (K (i1, 1)) [C1], E (K (i2,2)) [C2], ..., E (K (iN, N)) [CN]}.

なお、リーチャ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 )}は、任意のものとなる。   Note that which of the encrypted pieces that the leecher 50 can exist corresponding to the piece Cj (1 ≦ j ≦ N) is the acquisition target, that is, E (K (i1, j)) ) [Cj] (i1 is an integer satisfying 1 ≦ i1 ≦ m), i1 is arbitrarily set from “1” to “m”. Therefore, the sequence {(i1, 1), (i2, 2),..., (IN, N)} is arbitrary for the encrypted pieces acquired by the leecher 50 corresponding to the pieces C1 to CN, respectively. Become.

また、ステップS9で送信される暗号化ピースを完全には受信することができないと判断されたとき、リーチャ50は、ステップS9よりも前のいずれかのステップに戻って処理をやり直すことができる。完全には受信することはできないと判断される場合とは、例えば、暗号化ピースや特定の暗号化ピースの一部を受信していたとしても、それらの取得を試みて失敗した回数や、取得を開始してからの時間が所定の閾値以上となる場合などである。   Further, when it is determined that the encrypted piece transmitted in step S9 cannot be completely received, the leecher 50 can return to any step before step S9 and start the process again. For example, when it is determined that it cannot be completely received, for example, even if an encrypted piece or a part of a specific encrypted piece is received, the number of failed attempts to acquire them, This is a case where the time from the start of the process becomes a predetermined threshold value or more.

リーチャ50は、コンテンツを構成する各ピースに各々対応する暗号化ピースであって暗号化コンテンツを構成する全ての暗号化ピースを取得すると、各暗号化ピースを各々復号するため復号情報を要求する要求メッセージを鍵サーバ53に送信する(ステップS10)。この要求メッセージには、各復号鍵に対応するシーケンスを示すインデックス情報{( i1, 1 ),…, ( iN, N)}と、コンテンツ識別情報及びリーチャ識別情報とが含まれる。   When the leecher 50 obtains all the encrypted pieces constituting the encrypted content, each of which is an encrypted piece corresponding to each piece constituting the content, the leecher 50 requests decryption information to decrypt each encrypted piece. A message is transmitted to the key server 53 (step S10). This request message includes index information {(i1, 1),..., (IN, N)} indicating a sequence corresponding to each decryption key, content identification information, and reacher identification information.

鍵サーバ53の制御部530は、ネットワークインターフェース部532を介して、当該要求メッセージを受信すると(ステップS11)、シーケンス情報照合部535は、ステップS11で受信された要求メッセージに含まれるインデックス情報を用いて、照合処理を行う(ステップS12)。図15は、照合処理の手順を示すフローチャートである。照合処理では、シーケンス情報照合部535は、ステップS11で受信された要求メッセージに含まれるインデックス情報と、シーケンス情報記憶部536に記憶されているシーケンス情報とを照合し(ステップS140)、インデックス情報に示されるシーケンスと同一のシーケンスを示すシーケンス情報がシーケンス情報記憶部536に記憶されているか否かを判断する(ステップS141)。即ち、リーチャ50から要求されている鍵束が過去にリーチャ50のいずれかに送信されたか否かが判断される。   When the control unit 530 of the key server 53 receives the request message via the network interface unit 532 (step S11), the sequence information matching unit 535 uses the index information included in the request message received in step S11. Thus, a collation process is performed (step S12). FIG. 15 is a flowchart showing the procedure of the collation process. In the collation process, the sequence information collation unit 535 collates the index information included in the request message received in step S11 with the sequence information stored in the sequence information storage unit 536 (step S140), and uses the index information. It is determined whether or not sequence information indicating the same sequence as the sequence shown is stored in sequence information storage unit 536 (step S141). That is, it is determined whether the key ring requested from the leecher 50 has been transmitted to any of the leechers 50 in the past.

当該判断結果が否定的である場合(ステップS141:NO)、シーケンス情報照合部535は、インデックス情報に示されるシーケンスに対応する鍵束{K( i1, 1 ), K( i2, 2 ), …, K( iN, N )}を送信することを決定する。そして、シーケンス情報照合部535は、当該シーケンスを示すシーケンス情報をシーケンス情報記憶部536に記憶させる(ステップS142)。次いで、シーケンス情報照合部535は、制御部530を介して、シード情報を生成するようシード情報生成部538に指示する。尚、ステップS141の判断結果が肯定的である場合、シーケンス情報照合部535は、当該鍵束を送信しないことを決定し、制御部530を介して、当該鍵束の当該リーチャ50への送信禁止を暗号化鍵供給部537に指示する(ステップS144)。   If the determination result is negative (step S141: NO), the sequence information matching unit 535 generates a key bundle {K (i1, 1), K (i2, 2),... Corresponding to the sequence indicated by the index information. , K (iN, N)}. Then, the sequence information matching unit 535 stores sequence information indicating the sequence in the sequence information storage unit 536 (step S142). Next, the sequence information matching unit 535 instructs the seed information generation unit 538 to generate seed information via the control unit 530. If the determination result in step S141 is affirmative, the sequence information matching unit 535 determines not to transmit the key bundle, and prohibits transmission of the key bundle to the leecher 50 via the control unit 530. Is sent to the encryption key supply unit 537 (step S144).

ここでは、シード情報生成部538は、制御部530を介してシーケンス情報照合部535からシード情報の生成が指示されるとする。図14に戻り、この場合、シード情報生成部538は、上述の式3によりシード情報を計算することにより、シード情報を生成する。次いで、暗号化部539は、シーケンス情報照合部535が送信することを決定した鍵束のシーケンスに応じた復号鍵をコンテンツ復号鍵記憶部534から各々読み出し、リーチャ50から受信した要求メッセージに含まれるコンテンツ識別情報に対応付けられた平文鍵を平文鍵記憶部533から読み出す。そして、暗号化部539は、平文鍵記憶部533から読み出した平文鍵及びシード情報生成部538が生成したシード情報を用いて、上述の式4により、鍵束を暗号化して、暗号化鍵束を得る(ステップS13)。その後、暗号化鍵供給部537は、ステップS13で得られた暗号化鍵束、鍵束の暗号化に用いたシード情報及びリーチャ50が用いるべきMKBのMKB識別情報を含む復号情報を、ネットワークインターフェース部532を介してリーチャ50に送信する(ステップS14)。   Here, it is assumed that seed information generation unit 538 is instructed to generate seed information from sequence information collation unit 535 via control unit 530. Returning to FIG. 14, in this case, the seed information generation unit 538 generates seed information by calculating the seed information according to the above-described Expression 3. Next, the encryption unit 539 reads out the decryption keys corresponding to the key bundle sequence determined to be transmitted by the sequence information matching unit 535 from the content decryption key storage unit 534, and is included in the request message received from the leecher 50. The plaintext key associated with the content identification information is read from the plaintext key storage unit 533. Then, the encryption unit 539 encrypts the key bundle using the plaintext key read from the plaintext key storage unit 533 and the seed information generated by the seed information generation unit 538 according to the above-described equation 4, and the encrypted key bundle Is obtained (step S13). Thereafter, the encryption key supply unit 537 receives the decryption information including the encryption key bundle obtained in step S13, the seed information used for encrypting the key bundle, and the MKB identification information of the MKB to be used by the leecher 50, as a network interface. It transmits to the leecher 50 via the part 532 (step S14).

一方、リーチャ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)。   On the other hand, when the leecher 50 receives the decryption information from the key server 53 (step S15: YES), the MKB processing unit 506 performs the MKB process (step S16). FIG. 16 is a flowchart illustrating the procedure of the MKB process performed by the MKB processing unit 506. The MKB process shown in the figure is based on the MKB system disclosed in the above-mentioned Reference Document 2, for example. The MKB processing unit 506 acquires the MKB to be used by the leecher 50 using the MKB identification information included in the decryption information (step S151). When the MKB identification information included in the decryption information and the MKB identification information associated with the MKB stored in the MKB storage unit 505 are the same, the MKB processing unit 506 reads the MKB storage unit 505 from the MKB. Is read. When the MKB identification information included in the decryption information is not the same as the MKB identification information associated with the MKB stored in the MKB storage unit 505, the MKB processing unit 506 is included in the decryption information. The MKB associated with the MKB identification information is requested to and received from a communication device other than the key server 53, such as a tracker 51, a sales server 54, or a server prepared by a content producer. Then, among the encrypted plaintext keys included in the MKB acquired in this way, a pair of the encrypted plaintext key and the device key that can be decrypted with the device key stored in the device key storage unit 504 is subjected to MKB processing. The unit 506 searches (step S152). That is, the MKB processing unit 506 determines which device key should be used to decrypt which encrypted plaintext key. This search is performed by the MKB processing unit 506 using, for example, device key identification information assigned to each device key. When identification information is assigned to each encrypted plaintext key, the MKB processing unit 506 may perform a search using this identification information as well. Then, the MKB processing unit 506 decrypts the encrypted plaintext key using the device key in the set obtained as a result of the search, and obtains a plaintext key (step S153).

図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を得る。   Returning to FIG. 14, the conversion unit 507 of the leecher 50 converts the plaintext key obtained in step S16 using the seed information included in the decryption information received in step S15 according to the above-described equation 1, and converts the converted plaintext. Get the key. The key ring decryption unit 508 of the leecher 50 uses the converted plaintext key converted by the conversion unit 507 to decrypt the encrypted key bundle included in the decryption information received in step S15 according to the above-described equation 2 to obtain the content Each decryption key for decrypting each encrypted piece obtained by the obtaining unit 500 is obtained (step S17). Then, the content decryption unit 503 uses each decryption key to create each encrypted piece E (K (i1,1)) [C1], E (K (i2,2)) [C2],..., E (K (iN, N) [CN]) is respectively decrypted, and the decrypted pieces C1 to CN are obtained, and content C composed of these pieces is obtained (step S18). That is, the leecher 50 decrypts E (K (i1, 1)) [C1] using the decryption key K (i1, 1) to obtain the piece C1, and uses the decryption key K (i2, 2). E (K (i2,2)) [C2] is obtained to obtain piece C2, and E (K (iN, N)) [CN] is decrypted using the decryption key K (iN, N). Thus, by obtaining piece CN and obtaining other pieces in the same manner, content C composed of pieces C1 to CN is obtained.

尚、リーチャ50が無効化されている場合、ステップS16で得られた平文鍵を用いて暗号化鍵束を復号しても、正しい復号鍵を得ることができない。従って、このような復号鍵を用いて各暗号化ピースを復号したとしても、正しく復号することができない。即ち、無効化されているリーチャ50は、コンテンツを正しく復号することができず、コンテンツを利用できないことになる。   If the leecher 50 is invalidated, the correct decryption key cannot be obtained even if the encrypted key bundle is decrypted using the plaintext key obtained in step S16. Therefore, even if each encrypted piece is decrypted using such a decryption key, it cannot be decrypted correctly. That is, the invalidated leecher 50 cannot correctly decrypt the content and cannot use the content.

以上のように、P2Pネットワークを介して、同一のコンテンツを複数のリーチャ50に配信する場合、暗号化ピースのシーケンスを用いて、鍵サーバ53が鍵束の送信の可否を決定する。そして鍵サーバ53が送信すると決定した鍵束をMKB方式を適用して暗号化することにより、暗号化した鍵束をリーチャ50が復号するために平文鍵を必要とする構成にする。このような構成によれば、不正なリーチャ50がいずれかであるかを示すブラックリストなどの情報を鍵サーバ53が管理する必要がなく、不正なリーチャ50を無効化して不正なリーチャ50がコンテンツを利用することを阻止することができる。また、暗号化鍵束を復号するために必要な情報としてシード情報をリーチャ50が鍵サーバ53から送信する構成とすることにより、復号情報が要求される毎にシード情報を異ならせることができる。このため、リーチャ50がコンテンツを利用するために鍵サーバ53へアクセスすることを強制することができる。これは、万が一デバイス鍵が漏洩してしまった場合でも、リーチャ50が鍵サーバ53へアクセスすることなしに、漏洩したデバイス鍵のみを用いて暗号化鍵束を復号することができないことを意味する。即ち、デバイス鍵漏洩の被害を抑えることができる。また以上のような構成によれば、鍵サーバ53において、例えば同一のリーチャ識別情報及びコンテンツ識別情報を利用して復号情報を要求する要求メッセージを監視することによって、不正なリーチャ50の検出を行うことも可能になる。   As described above, when the same content is distributed to a plurality of leechers 50 via the P2P network, the key server 53 determines whether the key ring can be transmitted using the sequence of encrypted pieces. Then, the key bundle determined to be transmitted by the key server 53 is encrypted by applying the MKB method, so that a plaintext key is required for the leecher 50 to decrypt the encrypted key bundle. According to such a configuration, it is not necessary for the key server 53 to manage information such as a black list indicating whether the illegal leecher 50 is one, and the illegal leecher 50 is invalidated by invalidating the illegal leecher 50. Can be prevented. In addition, by configuring the leecher 50 to transmit seed information from the key server 53 as information necessary for decrypting the encrypted key bundle, the seed information can be made different each time decryption information is requested. For this reason, it is possible to force the leecher 50 to access the key server 53 in order to use the content. This means that even if the device key is leaked, the encryption key ring cannot be decrypted using only the leaked device key without the leecher 50 accessing the key server 53. . That is, it is possible to suppress damage due to device key leakage. According to the above configuration, the key server 53 detects an illegal leecher 50 by monitoring a request message for requesting decryption information using the same leecher identification information and content identification information, for example. It becomes possible.

[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
[Modification]
Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. Moreover, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, constituent elements over different embodiments may be appropriately combined. Further, various modifications as exemplified below are possible.

<変形例1>
上述した実施の形態において、リーチャ50で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また当該各種プログラムを、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記憶媒体に記録して提供するように構成しても良い。この場合には、プログラムは、リーチャ50において上記記憶媒体から読み出して実行することによりRAMなどの記憶装置上にロードされ、上記機能的構成において説明した各部が記憶装置上に生成される。鍵サーバ53で実行される各種プログラムについても同様である。
<Modification 1>
In the above-described embodiment, various programs executed by the leecher 50 may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. The various programs are recorded in a computer-readable storage medium such as a CD-ROM, a flexible disk (FD), a CD-R, a DVD (Digital Versatile Disk), etc. in a file in an installable or executable format. May be configured to be provided. In this case, the program is read from the storage medium by the leecher 50 and executed by the leecher 50, so that the program is loaded onto a storage device such as a RAM, and each unit described in the functional configuration is generated on the storage device. The same applies to various programs executed by the key server 53.

<変形例2>
上述の実施の形態においては、鍵サーバ53はシーケンス情報照合部535及びシーケンス情報記憶部536を備えるように構成し、リーチャ50は、ステップS10で鍵サーバ53へ送信する要求メッセージにインデックス情報を含め、鍵サーバ53は、ステップS12でインデックス情報を用いて照合処理を行って、鍵束をリーチャ50に送信するか否かを決定するようにした。しかし、鍵サーバ53はシーケンス情報照合部535及びシーケンス情報記憶部536を備えず、リーチャ50はステップS10で鍵サーバ53へ送信する要求メッセージにインデックス情報を含めず、鍵サーバ53はステップS12の照合処理を行わずに、ステップS11の後ステップS13以降の処理を行うようにしても良い。
<Modification 2>
In the above embodiment, the key server 53 is configured to include the sequence information matching unit 535 and the sequence information storage unit 536, and the leecher 50 includes the index information in the request message transmitted to the key server 53 in step S10. In step S12, the key server 53 performs collation processing using the index information, and determines whether or not to transmit the key bundle to the leecher 50. However, the key server 53 does not include the sequence information collation unit 535 and the sequence information storage unit 536, the leecher 50 does not include the index information in the request message transmitted to the key server 53 in step S10, and the key server 53 performs the collation in step S12. You may be made to perform the process after step S13 after step S11, without performing a process.

また、上述の実施の形態において、図3に示したように、N個のうちa個のピースについては、同一のピースに対して、各々異なるm個の暗号鍵で暗号化されるようにした。しかし、a個のピースについては、複数の暗号鍵ではなく1つの暗号鍵で暗号化されるが、(N−a)個のピースが暗号化される暗号鍵とは異なる暗号鍵で暗号化されるようにしても良い。また、N個の全てのピースが同一の暗号鍵で各々暗号化されるようにしても良い。   In the above embodiment, as shown in FIG. 3, a piece out of N pieces is encrypted with m different encryption keys for the same piece. . However, a pieces are encrypted with one encryption key instead of a plurality of encryption keys, but (N−a) pieces are encrypted with an encryption key different from the encryption key to be encrypted. You may make it. Further, all N pieces may be encrypted with the same encryption key.

また、上述の実施の形態においては、コンテンツを構成する各ピースに対しては、1回の暗号化を施して、1つの復号鍵で復号可能であるように構成したが、少なくとも1つのピースに対して多重に暗号化を施し、当該ピースの復号に2つ以上の復号鍵が必要であるように構成しても良い。   In the above-described embodiment, each piece constituting the content is encrypted once and can be decrypted with one decryption key. However, at least one piece is included. Alternatively, multiple encryptions may be performed, and two or more decryption keys may be required for decrypting the piece.

ピースを複数の暗号化鍵で多重に暗号化する場合、各リーチャ50には装置秘密情報が与えられており、リーチャ50は、当該装置秘密情報を暗号鍵として、シーダ52や他のリーチャ50などの他のノードから受信した暗号化ピースを暗号化して、暗号化した当該暗号化ピースをその他のリーチャ50に送信する。このように、暗号化ピースが各ノードから送信される度に暗号化が施されるようにする。例えば、暗号化を行ったリーチャ50(例えばリーチャ50Aとする)は、自身のリーチャ識別情報も暗号化ピースの送信先のその他のリーチャ50(例えばリーチャ50Bとする)に送信する。リーチャ50Bは、暗号化ピースに更なる暗号化を行ってその他のリーチャ50(例えばリーチャ50Cとする)に送信する場合、暗号化ピースを受信元であるリーチャ50Aのリーチャ識別情報と自身のリーチャ識別情報とをあわせてリーチャ50Cへ送信する。   When multiple pieces are encrypted with a plurality of encryption keys, device secret information is given to each leecher 50, and the leecher 50 uses the device secret information as an encryption key to set a seeder 52, another leecher 50, or the like. The encrypted piece received from the other node is encrypted, and the encrypted piece is transmitted to the other leecher 50. In this way, encryption is performed every time an encrypted piece is transmitted from each node. For example, the leecher 50 that has performed encryption (for example, leecher 50A) also transmits its own leecher identification information to another leecher 50 (for example, leecher 50B) that is the transmission destination of the encrypted piece. When the leecher 50B further encrypts the encrypted piece and transmits the encrypted piece to another leecher 50 (for example, the leecher 50C), the leecher 50B and the reacher identification information of the leecher 50A that is the reception source and its own leecher identification Together with the information, it is transmitted to the leecher 50C.

尚、リーチャ50に与えられた装置秘密情報SA自体を、暗号化ピースを暗号化するための暗号化鍵として用いる必要は必ずしもなく、例えば、リーチャ50が生成した乱数RAを用いて、ハッシュ値H(SA || RA)を計算してこれを暗号化鍵としても良いし、関数により暗号化鍵F(SA, RA)を計算しても良い。この場合、リーチャ50(リーチャ50A)は、暗号化鍵の計算に用いた乱数RAもその他のリーチャ50(リーチャ50B)に送信する。リーチャ50Bは、その他のリーチャ50(リーチャ50C)に暗号化ピースを送信する場合、リーチャ50Aから送信された乱数と自身が生成した乱数とをあわせてリーチャ50Cに送信する。   Note that it is not always necessary to use the device secret information SA itself given to the leecher 50 as an encryption key for encrypting the encrypted piece. For example, using the random number RA generated by the leecher 50, the hash value H (SA || RA) may be calculated and used as an encryption key, or an encryption key F (SA, RA) may be calculated using a function. In this case, the leecher 50 (the leecher 50A) also transmits the random number RA used for calculating the encryption key to the other leecher 50 (the leecher 50B). When transmitting the encrypted piece to the other leecher 50 (the leecher 50C), the leecher 50B transmits the random number transmitted from the leecher 50A and the random number generated by itself to the leecher 50C.

また、リーチャ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’に上書きする。   The leecher 50 does not necessarily need to encrypt the entire encrypted piece, and may encrypt only a part of the encrypted piece. In this case, the leecher 50 (Leacher 50A) has encrypted information about which part of the encrypted piece is encrypted (for example, 32 bytes of data from the beginning (the 0th data) of the encrypted piece). In this case, (0, 31)) is transmitted to the other leecher 50 (leecher 50B). When the leecher 50B transmits the encrypted piece to the other leecher 50 (Leacher 50C), information about which part of the encrypted piece the leecher 50A has encrypted and which part of the encrypted piece itself is encrypted. The information regarding this is also transmitted to the leecher 50C. At this time, in order to know the order of the leechers 50 that have encrypted the encrypted pieces, for example, which part of the encrypted piece is encrypted so that the leecher 50B is encrypted after the leecher 50A. The information about or is arranged in order. Here, for example, assuming that the length of the piece is 128 bytes, the initial seeder 52A encrypts the whole piece (for example, 128 bytes of data), and then the leecher 50A that receives the encrypted piece receives 16 bytes of data from the beginning. The leecher 50B that receives the encrypted piece from the leecher 50C encrypts the next 16-byte data skipped by 16 bytes from the head, and so on. It may be determined in advance whether or not to convert. In this case, information regarding how many nodes (the leecher 50 and the seeder 52) the encrypted piece has passed may be used instead of the information regarding which part of the encrypted piece has been encrypted. This information is “0” when the node on which the leecher 50 receives the encrypted piece is, for example, the initial seeder 52A, “1” when it is the leecher 50A, and “2” when it is the leecher 50B. For example, when the leecher 50B receives the encrypted piece from the leecher 50A, it overwrites this information from “1” to “2”.

また、ピースを複数の暗号化鍵で多重に暗号化する場合、リーチャ50が鍵サーバ53へ送信する上述の要求メッセージには、暗号化ピースが経由してきた全てのノードのノード識別情報を含ませる。また、上述のように暗号化鍵の生成に乱数を用いる場合、上述の要求メッセージには暗号化ピースが経由してきた全てのノードの乱数を含ませる。同様に、暗号化ピースのどの部分を暗号化したかに関する情報が含まれていても良いし、暗号化ピースがいくつのノードを経由してきたかに関する情報を含んでいても良い。   Further, when multiple pieces are encrypted with a plurality of encryption keys, the above-mentioned request message transmitted from the leecher 50 to the key server 53 includes the node identification information of all nodes through which the encrypted pieces have passed. . When random numbers are used for generating an encryption key as described above, the above request message includes random numbers of all nodes that have passed through the encrypted piece. Similarly, information regarding which part of the encrypted piece has been encrypted may be included, and information regarding how many nodes the encrypted piece has passed may be included.

なお、上述の実施の形態におけるコンテンツ配信システムでは、‘1≦i1, …, iN≦m’であったが、以上のようにピースを複数の暗号化鍵で多重に暗号化する場合、‘m=1’としても良い。この場合、インデックス情報としてi1, …, iNを含めなくても良い。   In the content distribution system in the above-described embodiment, “1 ≦ i1,..., IN ≦ m”. However, when multiple pieces are encrypted with a plurality of encryption keys as described above, = 1 '. In this case, i1,..., IN may not be included as index information.

一方、ピースを複数の暗号化鍵で多重に暗号化する場合の鍵サーバ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に与えられた装置秘密情報を計算することができる。   On the other hand, the key server 53 when multiple pieces are encrypted with a plurality of encryption keys is as follows. The key server 53 holds device secret information given to each leecher 50. When the key server 53 receives the request message from the leecher 50, the key server 53 searches the device identification information given to each node through which the encrypted piece has passed, from the node identification information of all the nodes through which the encrypted piece has passed, These are acquired as a key ring. As described above, when a random number is used to generate an encryption key, the key server 53 uses the device secret information given to each node through which the encrypted piece has passed and the decryption key using the random number of the corresponding node. (H (SA || RA) or F (SA, RA) in the above example) and the calculation result is obtained as a key bundle. The key server 53 does not necessarily have to hold the device secret information given to each leecher 50. For example, the device secret information given to the leecher 50 (the value of the leecher identification information is LIDA) is' SA. = H (Kmaster || LIDA) or SA = F (Kmaster, LIDA) ', the key server 53 only needs to know the Kmaster value and the algorithm of the function H or F. The device secret information given to the leecher 50 corresponding to the identification information can be calculated from the included LID.

また、ピースの暗号化は、ノードから送信される度にではなく、暗号化ピースが経由してきた全てのノードのうち少なくとも2つ以上により行われるようにしても良い。   Also, piece encryption may be performed by at least two or more of all nodes that have passed through the encrypted piece, instead of being transmitted from each node.

このように、暗号化ピースを復号するための復号鍵又はその復号鍵を得るために必要な情報をリーチャ50が鍵サーバ53から受信するコンテンツ配信システムであれば、本実施の形態にかかるMKB方式による鍵束の暗号化を、種々のコンテンツ配信システムに適用することができる。   As described above, if the content delivery system in which the leecher 50 receives the decryption key for decrypting the encrypted piece or the information necessary for obtaining the decryption key from the key server 53, the MKB system according to the present embodiment. The key ring encryption according to can be applied to various content distribution systems.

<変形例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)などのアクセス情報である。
<Modification 3>
In the embodiment described above, the key server 53 may check whether or not the leecher 50 holds an appropriate MKB when receiving a request message from the leecher 50. In this case, the content composed of each encrypted piece includes, in addition to the content identification information, the MKB assigned to the MKB used for encrypting the key ring for decrypting each encrypted piece and for decrypting the encrypted key ring. Identification information is associated. For example, the key server 53 stores the correspondence between the content identification information and the MKB identification information in advance. The leecher 50 includes the MKB identification information associated with the MKB held by the leecher 50 in the request message and transmits the request message to the key server 53. When receiving the request message, the key server 53 uses the content identification information included in the request message as a search key, the plaintext key associated with the content identification information and stored in the plaintext key storage unit 533, and the plaintext key A pair with the MKB identification information associated with is searched. Then, the key server 53 is used as a search key and is associated with the content identification information and stored in the plaintext key storage unit 533, and the key server 53 is associated with the content identification information. It is determined whether or not the MKB identification information stored in advance is the same as the MKB identification information included in the request message received from the leecher 50. If it is determined that the MKB identification information is the same, the key server 53 continues the process and performs the collation process in step S14 of FIG. The subsequent steps are the same as in the above embodiment. On the other hand, if it is determined that the MKB identification information is not the same, the key server 53 notifies the leecher 50 to that effect and ends the processing. At this time, the key server 53 may transmit to the leecher 50 information related to the acquisition destination of the MKB that the leecher 50 should acquire. The information regarding the MKB acquisition destination is, for example, access information such as a URL (Uniform Resource Locator) for accessing a server holding the MKB.

以上のような構成によれば、リーチャ50が適切なMKBを保持していない場合には、照合処理や鍵束を暗号化して送信する処理を行わないため、不正なリーチャ50のコンテンツの利用を抑制することができると共に、鍵サーバ53の処理負担を軽減することができる。   According to the above configuration, when the leecher 50 does not hold an appropriate MKB, the verification process and the process of encrypting and transmitting the key ring are not performed. While being able to suppress, the processing load of the key server 53 can be reduced.

<変形例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が生成したシード情報とを用いて、鍵束を暗号化して暗号化鍵束を得る。
<Modification 4>
In the embodiment described above, the key server 53 includes the plaintext key storage unit 533 and is configured to store the plaintext key. However, the present invention is not limited to this, and the key server 53 may store the MKB and the device key and calculate the plaintext key using these instead of storing the plaintext key. FIG. 17 is a diagram illustrating the configuration of the key server 53 according to the present modification. The key server 53 includes an MKB storage unit 541 that stores an MKB, a device key storage unit 542 that stores a device key, and further includes an MKB processing unit 540 instead of the plaintext key storage unit 533. The MKB processing unit 540 decrypts an encrypted plaintext key that can be decrypted with the device key stored in the device key storage unit 542, out of the encrypted plaintext keys included in the MKB stored in the MKB storage unit 541. Get the key. The encryption unit 539 uses the plaintext key obtained by the MKB processing unit 540 and the seed information generated by the above-described seed information generation unit 538 to encrypt the key bundle to obtain an encrypted key bundle.

また、この場合、鍵サーバ53は、MKBをMKB記憶部505に予め記憶するのではなく、MKBをリーチャ50から取得するようにしても良い。この場合、リーチャ50は、復号情報を要求する要求メッセージに、リーチャ50が有するMKBのMKB識別情報ではなく、MKB自体を含ませて鍵サーバ53に送信するようにすれば良い。   In this case, the key server 53 may acquire the MKB from the leecher 50 instead of storing the MKB in the MKB storage unit 505 in advance. In this case, the leecher 50 may transmit the request message requesting the decryption information to the key server 53 by including the MKB itself instead of the MKB identification information of the MKB included in the leecher 50.

<変形例5>
上述した実施の形態において、鍵サーバ53は、復号情報をリーチャ50に送信する際に、リーチャ50が用いるべきMKBのMKB識別情報の代わりに、当該MKB自体を送信しても良い。この場合、リーチャ50は鍵サーバ53から受信したMKBを用いて上述のMKB処理を行えば良い。このような構成によれば、リーチャ50はMKBを予め記憶しておく必要がないため、リーチャ50のメモリリソースを節約することができる。
<Modification 5>
In the above-described embodiment, when transmitting the decryption information to the leecher 50, the key server 53 may transmit the MKB itself instead of the MKB identification information of the MKB to be used by the leecher 50. In this case, the leecher 50 may perform the above-described MKB process using the MKB received from the key server 53. According to such a configuration, since the leecher 50 does not need to store the MKB in advance, the memory resources of the leecher 50 can be saved.

また、この場合、鍵サーバ53は、MKB全体をリーチャ50に送信するのではなく、MKBに含まれる情報のうち、リーチャ50が暗号化鍵束を復号するために必要な情報のみをリーチャ50に送信するようにしても良い。リーチャ50が暗号化鍵束を復号するために必要な情報とは、例えば、MKBに含まれる暗号化平文鍵のうち、リーチャ50の有するデバイス鍵に割り当てられたデバイス鍵識別情報に対応してMKBに含まれている暗号化平文鍵である。このような構成によれば、鍵サーバ53がリーチャ50にMKBを送信する場合であっても、送信するデータ量を低減することができる。   In this case, the key server 53 does not transmit the entire MKB to the leecher 50, but only information necessary for the leecher 50 to decrypt the encrypted key ring is included in the leecher 50 among the information included in the MKB. You may make it transmit. The information necessary for the leecher 50 to decrypt the encryption key ring is, for example, the MKB corresponding to the device key identification information assigned to the device key of the leecher 50 among the encrypted plaintext keys included in the MKB. Is the encrypted plaintext key included in According to such a configuration, even when the key server 53 transmits MKB to the leecher 50, the amount of data to be transmitted can be reduced.

また、この場合、鍵サーバ53は、鍵束の暗号化には、MKBに含まれる各暗号化平文鍵自体ではなく、平文鍵を式1により変換した変換平文鍵(同式においてはKm’)を用いても良い。この場合、リーチャ50の変換部507は、MKB処理部506により得た平文鍵を式1により変換し、鍵束復号部508が、変換された平文鍵(変換平文鍵)を用いて暗号化鍵束を復号して鍵束を得る。   Also, in this case, the key server 53 does not use the encrypted plaintext keys included in the MKB, but the converted plaintext key obtained by converting the plaintext key according to Formula 1 (Km ′ in the formula) for encryption of the key bundle. May be used. In this case, the conversion unit 507 of the leecher 50 converts the plaintext key obtained by the MKB processing unit 506 using Equation 1, and the key bundle decryption unit 508 uses the converted plaintext key (converted plaintext key) to encrypt the key. Decrypt the bundle to obtain the key bundle.

<変形例6>
上述した実施の形態において、MKB識別情報は、MKBの通し番号であるとしたが、これに限らず、例えば、数字やアルファベット等を組み合わせた識別子であっても良いし、MKBのハッシュ値であっても良いし、MKBのバージョン情報であっても良いし、MKBに対するディジタル署名であっても良いし、MKBのファイル名であっても良い。図11では、MKBにMKB識別情報が含まれる場合のMKBのデータ構成を例示したが、これに限らず、例えば、MKBのハッシュ値をMKB識別情報とする場合など、MKB自体から各MKBを識別可能な場合、MKB識別情報をMKBに含ませなくても良い。
<Modification 6>
In the above-described embodiment, the MKB identification information is an MKB serial number. However, the MKB identification information is not limited to this, and may be an identifier combining numbers, alphabets, or the like, or an MKB hash value. Alternatively, it may be MKB version information, a digital signature for the MKB, or an MKB file name. FIG. 11 illustrates the MKB data configuration when the MKB includes the MKB identification information. However, the present invention is not limited to this. For example, when the hash value of the MKB is used as the MKB identification information, each MKB is identified from the MKB itself. If possible, the MKB identification information may not be included in the MKB.

<変形例7>
上述した実施の形態において、鍵サーバ53は、異なる複数の各リーチャ50に各々割り当てられたデバイス鍵を記憶し、鍵サーバ53がMKBを生成するようにしても良い。鍵サーバ53は、以下の式5によりデバイス鍵を変換して(変換デバイス鍵という)、変換デバイス鍵を用いて平文鍵を暗号化した暗号化平文鍵を含むMKBを生成する。Kd’は、変換デバイス鍵を表す。Kdは、リーチャ50に割り当てられたデバイス鍵を表す。Fは、関数を表す。
Kd’=F(Kd, S)・・・(式5)
<Modification 7>
In the embodiment described above, the key server 53 may store device keys assigned to a plurality of different leechers 50, and the key server 53 may generate the MKB. The key server 53 converts the device key according to the following Expression 5 (referred to as a conversion device key), and generates an MKB including an encrypted plaintext key obtained by encrypting the plaintext key using the conversion device key. Kd ′ represents a conversion device key. Kd represents a device key assigned to the leecher 50. F represents a function.
Kd '= F (Kd, S) (Formula 5)

そして、鍵サーバ53は、例えば、自身が生成したMKBに含まれる各暗号化平文鍵が変換デバイス鍵を用いて復号される結果である平文鍵を用いて鍵束を暗号化する。そして、鍵サーバ53は、自身が生成したMKB、鍵束を暗号化した暗号化鍵束及びシード情報を含む復号情報をリーチャ50へ送信する。一方、リーチャ50では、復号情報取得部502が復号情報を受信すると、変換部507が、デバイス鍵記憶部504に記憶されたデバイス鍵と、復号情報に含まれるシード情報とを用いて、上述の式5により変換デバイス鍵を計算する。そして、MKB処理部506が、復号情報に含まれるMKBに含まれる暗号化平文鍵のうち、計算された変換デバイス鍵を用いて復号可能な暗号化平文鍵を復号して、平文鍵を得る。そして、鍵束復号部508が、得られた平文鍵を用いて暗号化鍵束を復号して鍵束を得る。尚、鍵サーバ53は、鍵束の暗号化には、自身が生成したMKBに含まれる各暗号化平文鍵自体ではなく、平文鍵を式1により変換した変換平文鍵(同式においてはKm’)を用いても良い。この場合、リーチャ50の変換部507は、MKB処理部506により得た平文鍵を式1により変換し、鍵束復号部508が、変換された平文鍵(変換平文鍵)を用いて暗号化鍵束を復号して鍵束を得る。   Then, the key server 53 encrypts the key bundle using, for example, a plaintext key that is a result of decrypting each encrypted plaintext key included in the MKB generated by itself using the conversion device key. Then, the key server 53 transmits to the leecher 50 the MKB generated by itself, the encrypted key bundle obtained by encrypting the key bundle, and the decryption information including the seed information. On the other hand, in the leecher 50, when the decryption information acquisition unit 502 receives the decryption information, the conversion unit 507 uses the device key stored in the device key storage unit 504 and the seed information included in the decryption information to The conversion device key is calculated according to Equation 5. Then, the MKB processing unit 506 decrypts an encrypted plaintext key that can be decrypted using the calculated conversion device key among the encrypted plaintext keys included in the MKB included in the decryption information to obtain a plaintext key. Then, the key ring decryption unit 508 decrypts the encrypted key ring using the obtained plaintext key to obtain a key ring. Note that the key server 53 does not use the encrypted plaintext key itself included in the MKB generated by itself to encrypt the key ring, but converts the plaintext key obtained by converting the plaintext key according to Equation 1 (in the equation, Km ′ ) May be used. In this case, the conversion unit 507 of the leecher 50 converts the plaintext key obtained by the MKB processing unit 506 using Equation 1, and the key bundle decryption unit 508 uses the converted plaintext key (converted plaintext key) to encrypt the key. Decrypt the bundle to obtain the key bundle.

尚、鍵サーバ53は、デバイス鍵を変換せずに、当該デバイス鍵を用いて平文鍵を暗号化した暗号化平文鍵を含むMKBを生成するようにしても良い。そして、鍵サーバ53は、平文鍵を式1により変換した変換平文鍵を用いて鍵束を暗号化するようにしても良い。   The key server 53 may generate an MKB including an encrypted plaintext key obtained by encrypting a plaintext key using the device key without converting the device key. Then, the key server 53 may encrypt the key bundle using the converted plaintext key obtained by converting the plaintext key according to Equation 1.

<変形例8>
上述した実施の形態において、鍵サーバ53は、MKBをMKB記憶部505に予め記憶している場合であっても、上述した式5によりデバイス鍵を変換した変換デバイス鍵を用いて平文鍵を暗号化しても良い。そして、鍵サーバ53は、平文鍵を用いて鍵束を暗号化するようにしても良いし、平文鍵を式1により変換した変換平文鍵を用いて鍵束を暗号化するようにしても良い。
<Modification 8>
In the embodiment described above, the key server 53 encrypts the plaintext key using the converted device key obtained by converting the device key according to the above-described equation 5 even when the MKB is stored in the MKB storage unit 505 in advance. May be used. Then, the key server 53 may encrypt the key bundle using the plaintext key, or may encrypt the key bundle using the converted plaintext key obtained by converting the plaintext key according to Equation 1. .

<変形例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をオフラインで取得するようにしても良い。
<Modification 9>
In the above-described embodiment, when the MKB processing unit 506 of the leecher 50 does not have the same MKB identification information included in the decoded information and the MKB identification information associated with the MKB stored in the MKB storage unit 505 In addition, for example, the MKB is acquired from a communication device other than the key server 53, such as a tracker 51, a sales server 54, or a server prepared by a content producer. However, the other device is not limited to this, and may be the key server 53. In this case, for example, the key server 53 may transmit the MKB when transmitting the decryption information to the leecher 50. Further, the MKB may be included in the torrent file. In this case, the leecher 50 acquires the MKB from a communication device such as a sales server that provides a torrent file to the leecher 50. Further, the URL of the MKB acquisition destination may be included in the torrent file. In this case, the leecher 50 acquires the MKB from another communication device that can be accessed using the URL. Further, the MKB itself may be transmitted / received through the P2P network NT as one of the encrypted pieces. Further, the leecher 50 may acquire the MKB recorded on a storage medium such as a CD-ROM offline, for example, instead of acquiring the MKB from another communication device.

<変形例10>
上述した実施の形態において、シード情報はリーチャ50毎及びコンテンツ毎に異なる値となるように計算したが、これに限らない。例えばリーチャ50をグループ分けした場合、同一グループのリーチャ50には同一のシード情報を割り当てるようにしても良い。
<Modification 10>
In the embodiment described above, the seed information is calculated so as to have a different value for each leecher 50 and for each content, but the present invention is not limited to this. For example, when the leechers 50 are grouped, the same seed information may be assigned to the leechers 50 in the same group.

<変形例11> <Modification 11>

上述した実施の形態において、鍵サーバ53のシード情報生成部538は、上述の式3によりシード情報を計算したが、以下の式6によりシード情報を計算しても良い。Fは、関数を表す。
S=F( F(K, CID), LID)・・・(式6)
In the above-described embodiment, the seed information generation unit 538 of the key server 53 calculates the seed information according to the above-described Expression 3. However, the seed information may be calculated according to the following Expression 6. F represents a function.
S = F (F (K, CID), LID) (Formula 6)

また、上述した実施の形態において、暗号化部539は関数Eを用いて、鍵束を暗号化したが、鍵束のデータ長が大きい場合は、例えば関数Eを共通鍵暗号としてCBCモードを用いれば良い。この場合、リーチャ50の鍵束復号部508が、暗号化鍵束を復号する際に用いる関数Dについても、同一の共通鍵暗号のCBCモードを用いれば良い。   In the above-described embodiment, the encryption unit 539 uses the function E to encrypt the key ring. If the data length of the key ring is large, for example, the function E is used as the common key encryption and the CBC mode is used. It ’s fine. In this case, the same common key encryption CBC mode may be used for the function D used when the key ring decrypting unit 508 of the leecher 50 decrypts the encrypted key ring.

<変形例12>
上述した実施の形態において、鍵サーバ53の暗号化部539は、リーチャ50から要求メッセージを受信した後に鍵束を暗号化して暗号化鍵を得たが、これに限らず、鍵束を予め暗号化して暗号化鍵束を予め記憶しておくようにしても良い。
<Modification 12>
In the above-described embodiment, the encryption unit 539 of the key server 53 receives the request message from the leecher 50 and then encrypts the key bundle to obtain the encryption key. The encryption key bundle may be stored in advance.

<変形例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を介してシード情報を当該他の通信装置に送信すれば良い。
<Modification 13>
In the embodiment described above, the key server 53 transmits the decryption information including the encrypted key bundle obtained by encrypting the key bundle and the seed information to the leecher 50. However, the key server 53 may transmit the seed information as decryption information to the leecher 50 without transmitting the encrypted key bundle to the leecher 50. In this case, the leecher 50 is acquired by receiving an encryption key bundle from a communication device other than the key server 53, such as a tracker 51, a sales server 54, or a server prepared by a content producer. In this case, when the key server 53 receives the above request message from the leecher 50, the key server 53 transmits seed information to the leecher 50 and sends a transmission request message requesting to transmit the encryption key bundle to the leecher 50. You may make it transmit to the other communication apparatus. Alternatively, the key server 53 may transmit to the leecher 50 decryption information including seed information and information regarding the acquisition destination of the encrypted key bundle. The information related to the acquisition destination of the encryption key ring is access information such as a URL (Uniform Resource Locator) for accessing the acquisition destination server, for example. The key server 53 may generate the encryption key ring, and the key server 53 may pass the generated encryption key ring to the other communication device, or the other communication device itself may have the encryption key. A bundle may be generated. When the other communication device itself generates the encryption key ring, the key server 53 may not store each decryption key for decrypting each encrypted piece, and the other communication device Each decryption key is stored, and the key server 53 may generate seed information and transmit it to the other communication device. That is, in this case, the key server 53 may be configured not to include the plaintext key storage unit 533, the content decryption key storage unit 534, the encryption key supply unit 537, and the encryption unit 539 shown in FIG. The generation unit 538 may transmit seed information to the other communication device via the packet processing unit 531 and the network interface unit 532.

<変形例14>
上述した実施の形態において、リーチャ50がステップS16で行うMKB処理は、参考文献2に記載されているMKB方式に則るものとしたが、これに限らず、例えば、参考文献2において開示されているMKB方式に則るようにしても良い。この場合、図16に示したステップS152の処理が不要で、リーチャ50は、ステップS151の後ステップS153で、デバイス鍵を用いて暗号化平文鍵を復号して平文鍵を得る。
<Modification 14>
In the above-described embodiment, the MKB process performed by the leecher 50 in step S16 is based on the MKB method described in Reference Document 2, but is not limited thereto, and is disclosed in Reference Document 2, for example. You may make it follow the existing MKB system. In this case, the processing in step S152 shown in FIG. 16 is unnecessary, and the leecher 50 obtains a plaintext key by decrypting the encrypted plaintext key using the device key in step S153 after step S151.

また、上述した実施の形態において、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)
In the above-described embodiment, the MKB data configuration shown in FIG. 11 is used. However, the present invention is not limited to this. For example, although the data configuration when the MKB method disclosed in the above-mentioned Reference 1 is applied is disclosed in Reference 3 below, this data configuration may be used.
(Reference 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)

<変形例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に含ませなくても良い。
<Modification 15>
In the embodiment described above, after the MKB process in step S16 of FIG. 14, the leecher 50 determines whether or not the plaintext key obtained in step S16 has been revoked (or whether or not a correct plaintext key has been obtained). May be determined. In this case, for example, a plaintext key verification record is included in the MKB. The plaintext key verification record is obtained, for example, by encrypting fixed data (for example, a sequence of numbers such as “01234XXX”) with the plaintext key Km. Fixed data is stored in advance in the leecher 50 separately. FIG. 18 is a flowchart showing a procedure of a portion different from the above-described embodiment with respect to the procedure of the content distribution process according to this modification. After step S16, in step S20, the leecher 50 determines whether the plaintext key obtained in step S16 has been revoked. Specifically, the leecher 50 uses the plaintext key to decrypt the plaintext key verification record included in the MKB used to obtain the plaintext key, and obtain fixed data. Then, the leecher 50 determines whether or not this matches the previously stored fixed data. If the former and the latter do not match, it is determined that the plaintext key has been revoked. This means that the leecher 50 is disabled. If the former and the latter match, it is determined that the plaintext key has not been revoked. This means that the leecher 50 has not been invalidated. If it is determined that the plaintext key has been revoked (step S20: YES), the leecher 50 displays on the display device that the leecher 50 has been revoked and ends the process (step S21). Alternatively, the leecher 50 may display on the display device that the device key is to be updated. On the other hand, when it is determined that the plaintext key has not been revoked (step S20: NO), the leecher 50 performs the processing after step S17 in the same manner as described above. Depending on the MKB system, the invalidated leecher may perform invalidation by not including data (for example, encrypted plaintext key) necessary for calculating the plaintext key in the MKB. In other words, the invalidated leecher cannot calculate the plaintext key. In this case, the leecher 50 that has not been revoked may use the above-described plaintext key verification record to determine whether a correct plaintext key has been obtained without any data reading error or calculation error. . FIG. 11 illustrates the data structure of the MKB when the plaintext key verification record is included in the MKB. However, the present invention is not limited to this, and when the above determination process is not performed, the plaintext key verification record is not included in the MKB. May be.

このような構成によれば、平文鍵が無効化されている場合、暗号化鍵束を復号する処理を行わないため、リーチャ50の処理負担を軽減することができる。それと共に、リーチャ50が無効化されている旨をユーザに報知することができるため、不正なリーチャ50の検出をスムーズに行うことができる。   According to such a configuration, when the plaintext key is invalidated, the process of decrypting the encrypted key bundle is not performed, so that the processing load on the leecher 50 can be reduced. At the same time, since it is possible to notify the user that the leecher 50 has been invalidated, the illegal leecher 50 can be detected smoothly.

<変形例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 )を計算することができる。
<Modification 16>
In the embodiment described above, the example in which the key server 53 stores each decryption key for decrypting each encrypted piece in the content decryption key storage unit 534 has been described. A configuration of the key server 53 without the unit 534 is also possible. Hereinafter, an example of a method for obtaining each decryption key by calculation without storing each decryption key (for example, expressed as K (i, j)) will be described. For example, 'K (i, j) = H (Kmaster' || CID || i || j) '. Here, Kmaster ′ is secret information held by the key server 53, and CID is content identification information included in the request message from the leecher 50. In this case, the key server 53 has only to store the value of Kmaster ′ in the content decryption key storage unit 534, and the decryption key K (i, j) to be given to the leecher 50 from the CID included in the request message. Can be calculated. The calculation method of K (i, j) is not limited to the above-described method. For example, secret information held by the key server 53 is prepared for each content (that is, for each CID) (represented as Kmaster CID ), and 'K (i, j, j) = F (Kmaster CID , i || j) '. In this case, the key server 53 obtains may by storing the value of Kmaster CID to the content decryption key storage unit 534, a Kmaster CID to be used from the CID included in the request message from the content decryption key storage unit 534 The decryption key K (i, j) to be given to the leecher 50 can be calculated.

このような構成によれば、鍵サーバ53はコンテンツ復号鍵記憶部534に各暗号化ピースを各々復号するための各復号鍵を各々記憶する必要がなく、マスター鍵のみを記憶しておけばよいため、コンテンツ復号鍵記憶部534のメモリ容量が小さくて済み、製品コストを削減できる。   According to such a configuration, the key server 53 does not need to store each decryption key for decrypting each encrypted piece in the content decryption key storage unit 534, and only stores the master key. Therefore, the memory capacity of the content decryption key storage unit 534 can be small, and the product cost can be reduced.

<変形例17>
上述した実施の形態において、鍵サーバ53は暗号化鍵束Zを式4により計算する例を示したが、Eとして公開鍵暗号を用いることもできる。この場合、鍵サーバ53は、F(Km, S)を秘密鍵として、これに対応する公開鍵を計算し、計算した公開鍵を用いて鍵束を暗号化すれば良い。K(i1,1)||K(i2,2)|| ... ||K(iN,N)のデータサイズが大きい場合、公開鍵暗号処理を複数回行っても良い。
<Modification 17>
In the above-described embodiment, the example in which the key server 53 calculates the encryption key bundle Z by Expression 4 is shown, but public key cryptography can also be used as E. In this case, the key server 53 may calculate a public key corresponding to F (Km, S) as a secret key and encrypt the key bundle using the calculated public key. When the data size of K (i1,1) || K (i2,2) || ... || K (iN, N) is large, the public key encryption process may be performed a plurality of times.

<変形例18>
上述した実施の形態におけるデバイス鍵について、以下の式7により定義される多項式f(x)にリーチャ識別情報LIDを代入した値f(LID)を(リーチャ識別情報がLIDであるリーチャの)デバイス鍵としても良い。
<Modification 18>
For the device key in the above-described embodiment, the value f (LID) obtained by substituting the leecher identification information LID into the polynomial f (x) defined by the following equation 7 is the device key (for the leecher whose leecher identification information is LID). It is also good.

Figure 2010124071
Figure 2010124071

ここで、qは素数である。tは整数である。aiはゼロ以上q未満の整数である。以下の式8により定義される多項式g(x) にリーチャ識別情報LIDを代入した値g(LID)を(リーチャ識別情報がLIDであるリーチャが受信する)シード情報Sとしても良い。 Here, q is a prime number. t is an integer. a i is an integer greater than or equal to zero and less than q. A value g (LID) obtained by substituting leecher identification information LID into a polynomial g (x) defined by the following equation 8 may be used as seed information S (received by a leecher whose leecher identification information is LID).

Figure 2010124071
Figure 2010124071

ここで、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)の各係数と(シード情報を用いて変換する前のデバイス鍵に対応する)公開鍵を用いて(シード情報を用いて変換した後のデバイス鍵に対応する)公開鍵を計算し、その計算した公開鍵を用いて、各暗号化ピースを復号するための鍵束又は暗号化鍵束を復号するための復号鍵を暗号化する。 Here, q is a prime number. u is an integer. b i is an integer greater than or equal to zero and less than q. The value of b i may be changed for each content identification information. The device key after conversion using the seed information (for the reacher whose reacher identification information is LID) may be defined as f (LID) + g (LID) mod q. This modification can be applied, for example, when the MKB system of Reference 2 is used. When the device key after conversion using the seed information is defined as f (x) + g (x) mod q, and when the MKB method of Reference 2 is used, the key server 53 uses f (x) + g Using each coefficient of (x) or each coefficient of g (x) and the public key (corresponding to the device key before conversion using seed information) (to the device key after conversion using seed information) (Corresponding) A public key is calculated, and the calculated public key is used to encrypt a key bundle for decrypting each encrypted piece or a decryption key for decrypting the encrypted key bundle.

一実施の形態にかかるコンテンツ配信システムの構成を示すブロック図である。It is a block diagram which shows the structure of the content delivery system concerning one Embodiment. 同実施の形態にかかるコンテンツが複数のピースに分割された状態を模式的に示す図である。It is a figure which shows typically the state by which the content concerning the embodiment was divided | segmented into several pieces. 同実施の形態にかかる各暗号化ピースを模式的に示す図である。It is a figure which shows typically each encryption piece concerning the embodiment. 同実施の形態にかかるMKB方式において受信者が行う基本的な処理の流れを概念的に示す図である。It is a figure which shows notionally the flow of the basic process which a receiver performs in the MKB system concerning the embodiment. 同実施の形態にかかるシーダ52Aが記憶している各暗号化ピースを例示する図である。It is a figure which illustrates each encryption piece which the seeder 52A concerning the embodiment has memorize | stored. 同実施の形態にかかるシーダ52Aが記憶している各暗号化ピースを例示する図である。It is a figure which illustrates each encryption piece which the seeder 52A concerning the embodiment has memorize | stored. 同実施の形態にかかるシーダ52Aが記憶している各暗号化ピースを例示する図である。It is a figure which illustrates each encryption piece which the seeder 52A concerning the embodiment has memorize | stored. 同実施の形態にかかるピース情報のデータ構成を例示する図である。It is a figure which illustrates the data structure of piece information concerning the embodiment. 同実施の形態にかかるリーチャ50の機能的構成を例示する図である。It is a figure which illustrates the functional structure of the leecher 50 concerning the embodiment. 同実施の形態にかかるTorrent Fileを例示する図である。It is a figure which illustrates Torrent File concerning the embodiment. 同実施の形態にかかるMKBのデータ構成を例示する図である。It is a figure which illustrates the data structure of MKB concerning the embodiment. 同実施の形態にかかる鍵サーバ53の機能的構成を例示する図である。It is a figure which illustrates the functional structure of the key server 53 concerning the embodiment. 同実施の形態にかかるノード情報のデータ構成を例示する図である。It is a figure which illustrates the data structure of the node information concerning the embodiment. 同実施の形態にかかるコンテンツ配信処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the content delivery process concerning the embodiment. 同実施の形態にかかる照合処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the collation process concerning the embodiment. 同実施の形態にかかるMKB処理部506が行うMKB処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the MKB process which the MKB process part 506 concerning the embodiment performs. 同実施の形態の一変形例にかかる鍵サーバ53の構成を例示する図である。It is a figure which illustrates the structure of the key server 53 concerning the modification of the embodiment. 同実施の形態の一変形例にかかるコンテンツ配信処理の手順について同実施の形態と異なる部分の手順を示すフローチャートである。It is a flowchart which shows the procedure of a different part from the embodiment about the procedure of the content delivery process concerning the modification of the embodiment.

符号の説明Explanation of symbols

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ネットワーク
50, 50A, 50B leecher (communication equipment)
51 Tracker (Management server)
52, 52A, 52B, 52C Seeder (communication device)
53 Key server 54 Sales server 500 Content acquisition unit 501 Decryption information request unit 502 Decryption information acquisition unit 503 Content decryption unit 504 Device key storage unit 505 MKB storage unit 506 MKB processing unit 507 Conversion unit 508 Key bundle decryption unit 530 Control unit 531 Packet Processing unit 532 Network interface unit 533 Plain text key storage unit 534 Content decryption key storage unit 535 Sequence information collation unit 536 Sequence information storage unit 537 Encryption key supply unit 538 Seed information generation unit 539 Encryption unit 540 MKB processing unit 541 MKB storage unit 542 Device Key Storage Unit NT P2P Network

Claims (24)

コンテンツの一部が暗号化された暗号化ピースを受信する通信装置であって、
第1通信装置から、複数の前記暗号化ピースを受信する第1受信手段と、
第2通信装置に、受信した各前記暗号化ピースを復号するための情報を要求する要求手段と、
自通信装置に割り当られた第1鍵を記憶する第1記憶手段と、
受信した各前記暗号化ピースを復号するための復号鍵であって暗号化された前記復号鍵を前記第2通信装置又は第3通信装置から受信し、当該復号鍵の暗号化に用いられた一時情報を前記第2通信装置から受信する第2受信手段と、
前記一時情報と、前記第1鍵と、前記第1鍵を用いて復号可能に暗号化された第2鍵とを用いて、暗号化された前記各復号鍵を復号する鍵復号手段とを備える
ことを特徴とする通信装置。
A communication device that receives an encrypted piece in which a part of content is encrypted,
First receiving means for receiving a plurality of the encrypted pieces from the first communication device;
Request means for requesting the second communication device for information for decrypting each received encrypted piece;
First storage means for storing a first key assigned to the communication device;
The decryption key that is a decryption key for decrypting each received encrypted piece is received from the second communication device or the third communication device, and is temporarily used to encrypt the decryption key Second receiving means for receiving information from the second communication device;
Key decryption means for decrypting each of the encrypted decryption keys using the temporary information, the first key, and a second key encrypted so as to be decryptable using the first key. A communication device.
前記鍵復号手段は、
暗号化された前記第2鍵を、前記第1鍵を用いて復号するMKB処理手段と、
前記第2鍵と前記一時情報とを用いて、暗号化された前記各復号鍵を復号するための第3鍵を計算する計算手段と、
前記第3鍵を用いて、暗号化された前記各復号鍵を復号する復号手段とを有する
ことを特徴とする請求項1に記載の通信装置。
The key decryption means includes
MKB processing means for decrypting the encrypted second key using the first key;
Calculation means for calculating a third key for decrypting each of the encrypted decryption keys using the second key and the temporary information;
The communication apparatus according to claim 1, further comprising: a decrypting unit configured to decrypt each of the encrypted decryption keys using the third key.
前記第2受信手段は、前記一時情報を用いて変換された前記第1鍵を用いて復号可能に暗号化された前記第2鍵を前記第2通信装置から更に受信し、
前記鍵復号手段は、
前記第1鍵と前記一時情報とを用いて計算を行うことにより、当該第1鍵を変換する計算手段と、
暗号化された前記第2鍵を、変換された前記第1鍵を用いて復号するMKB処理手段と、
前記第2鍵を用いて、暗号化された前記各復号鍵を復号する復号手段とを有する
ことを特徴とする請求項1又は2に記載の通信装置。
The second receiving means further receives from the second communication device the second key encrypted in a decryptable manner using the first key converted using the temporary information;
The key decryption means includes
A calculation means for converting the first key by calculating using the first key and the temporary information;
MKB processing means for decrypting the encrypted second key using the converted first key;
The communication apparatus according to claim 1, further comprising: a decrypting unit that decrypts each encrypted decryption key using the second key.
前記第2受信手段は、前記一時情報を用いて変換された前記第1鍵を用いて復号可能に暗号化された前記第2鍵を前記第2通信装置から更に受信し、
前記鍵復号手段は、
前記第1鍵と前記一時情報とを用いて計算を行うことにより、当該第1鍵を変換する計算手段と、
暗号化された前記第2鍵を、変換された前記第1鍵を用いて復号するMKB処理手段と、
前記第2鍵と前記一時情報とを用いて、暗号化された前記各復号鍵を復号するための第3鍵を計算する計算手段と、
前記第3鍵を用いて、暗号化された前記各復号鍵を復号する復号手段とを有する
ことを特徴とする請求項1又は2に記載の通信装置。
The second receiving means further receives from the second communication device the second key encrypted in a decryptable manner using the first key converted using the temporary information;
The key decryption means includes
A calculation means for converting the first key by calculating using the first key and the temporary information;
MKB processing means for decrypting the encrypted second key using the converted first key;
Calculation means for calculating a third key for decrypting each of the encrypted decryption keys using the second key and the temporary information;
The communication apparatus according to claim 1, further comprising: a decrypting unit that decrypts each decrypted key encrypted using the third key.
前記第1鍵を用いて復号可能に暗号化された前記第2鍵を含み当該鍵管理情報を識別可能な第1鍵管理識別情報が割り当てられた鍵管理情報を記憶する第2記憶手段を更に備え、
前記第2受信手段は、当該通信装置が用いるべき前記鍵管理情報に割り当てられた第2の前記鍵管理識別情報を前記第2通信装置から更に受信し、
前記鍵復号手段は、前記第1鍵管理識別情報と前記第2鍵管理識別情報とが同一である場合、前記第2記憶手段に記憶された前記鍵管理情報と、前記一時情報と、前記第1鍵とを用いて、暗号化された前記各復号鍵を復号し、前記第1鍵管理識別情報と前記第2鍵管理識別情報とが同一でない場合、前記第2鍵管理識別情報が対応付けられた前記鍵管理情報を前記第3通信装置又は記憶媒体から取得して、取得した前記鍵管理情報と、前記一時情報と、前記第1鍵とを用いて、暗号化された前記各復号鍵を復号する
ことを特徴とする請求項1乃至4のいずれか一項に記載の通信装置。
Second storage means for storing key management information to which the first key management identification information that can identify the key management information including the second key encrypted so as to be decryptable using the first key is further stored. Prepared,
The second receiving means further receives, from the second communication device, second key management identification information assigned to the key management information to be used by the communication device,
The key decryption means, when the first key management identification information and the second key management identification information are the same, the key management information stored in the second storage means, the temporary information, and the second information When each of the encrypted decryption keys is decrypted using one key, and the first key management identification information and the second key management identification information are not the same, the second key management identification information is associated with each other The obtained key management information is obtained from the third communication device or the storage medium, and each of the decryption keys encrypted using the obtained key management information, the temporary information, and the first key The communication device according to claim 1, wherein the communication device is decoded.
前記第2受信手段は、前記第1鍵を用いて復号可能に暗号化された前記第2鍵を含む鍵管理情報を前記第2通信装置から更に受信し、
前記鍵復号手段は、受信された前記鍵管理情報と、前記一時情報と、前記第1鍵とを用いて、暗号化された前記各復号鍵を復号する
ことを特徴とする請求項1乃至4のいずれか一項に記載の通信装置。
The second receiving means further receives from the second communication device key management information including the second key encrypted in a decryptable manner using the first key;
5. The key decryption unit decrypts each encrypted decryption key by using the received key management information, the temporary information, and the first key. The communication device according to any one of the above.
前記要求手段は、前記情報を要求するとき、自通信装置を識別可能な通信装置識別情報と、前記コンテンツを識別可能なコンテンツ識別情報とを前記第2通信装置に送信し、
前記第2受信手段は、暗号化された前記復号鍵を前記第2通信装置又は第3通信装置から受信し、前記一時情報を前記第2通信装置から受信する
ことを特徴とする請求項1乃至6のいずれか一項に記載の通信装置。
The request means, when requesting the information, transmits communication device identification information capable of identifying the own communication device and content identification information capable of identifying the content to the second communication device,
2. The second reception unit receives the encrypted decryption key from the second communication device or the third communication device, and receives the temporary information from the second communication device. The communication device according to claim 6.
復号された前記各復号鍵を用いて、前記暗号化ピースを復号するピース復号手段を更に備える
ことを特徴とする請求項1乃至7のいずれか一項に記載の通信装置。
The communication apparatus according to claim 1, further comprising a piece decrypting unit that decrypts the encrypted piece using each decrypted decryption key.
コンテンツの一部が暗号化された暗号化ピースを受信する他の通信装置と通信する通信装置であって、
複数の前記暗号化ピースを復号するための情報を要求する要求メッセージを前記他の通信装置から受信する受信手段と、
前記暗号化ピースを復号するための復号鍵の暗号化に用いる一時情報を生成する生成手段と、
前記要求メッセージに従って、前記一時情報を前記他の通信装置に送信する送信手段とを備える
ことを特徴とする通信装置。
A communication device that communicates with another communication device that receives an encrypted piece in which a part of content is encrypted,
Receiving means for receiving a request message for requesting information for decrypting a plurality of the encrypted pieces from the other communication device;
Generating means for generating temporary information used for encrypting a decryption key for decrypting the encrypted piece;
A communication apparatus comprising: a transmission unit configured to transmit the temporary information to the other communication apparatus according to the request message.
複数の前記暗号化ピースの各前記復号鍵又は各前記復号鍵を計算するための鍵計算情報を記憶する第1記憶手段と、
第1鍵を記憶する第2記憶手段と、
前記一時情報と前記第1鍵とを用いて復号可能に前記復号鍵を暗号化する鍵暗号化手段とを更に備え、
前記送信手段は、前記一時情報と、暗号化された前記復号鍵とを前記他の通信装置に送信する
ことを特徴とする請求項9に記載の通信装置。
First storage means for storing each of the decryption keys of the plurality of encrypted pieces or key calculation information for calculating each of the decryption keys;
Second storage means for storing the first key;
Key encryption means for encrypting the decryption key so as to be decryptable using the temporary information and the first key;
The communication device according to claim 9, wherein the transmission unit transmits the temporary information and the encrypted decryption key to the other communication device.
前記送信手段は、前記復号鍵又は暗号化された前記復号鍵を保持するその他の通信装置へアクセスするためのアクセス情報を更に前記他の通信装置に送信する
ことを特徴とする請求項9に記載の通信装置。
The transmission means further transmits access information for accessing the other communication device that holds the decryption key or the encrypted decryption key to the other communication device. Communication equipment.
前記他の通信装置に対して公開されていない秘密情報を記憶する第3記憶手段を更に備え、
前記コンテンツには、当該コンテンツを識別可能なコンテンツ識別情報が割り当てられており、
前記他の通信装置には、当該他の通信装置を識別可能な通信装置識別情報が割り当てられており、
前記受信手段は、前記通信装置識別情報と、前記コンテンツ識別情報とを含む前記要求メッセージを受信し、
前記生成手段は、前記秘密情報と前記通信装置識別情報と前記コンテンツ識別情報とを用いて前記一時情報を生成する
ことを特徴とする請求項9乃至11のいずれか一項に記載の通信装置。
A third storage means for storing secret information that is not disclosed to the other communication device;
Content identification information that can identify the content is assigned to the content,
The other communication device is assigned communication device identification information capable of identifying the other communication device,
The receiving means receives the request message including the communication device identification information and the content identification information;
The communication device according to claim 9, wherein the generation unit generates the temporary information using the secret information, the communication device identification information, and the content identification information.
前記鍵暗号化手段は、
前記一時情報を用いて関数により前記第1鍵を変換する変換手段と、
変換された前記第1鍵を用いて復号可能に前記各復号鍵を暗号化する暗号化手段とを有する
ことを特徴とする請求項10に記載の通信装置。
The key encryption means includes
Conversion means for converting the first key by a function using the temporary information;
The communication apparatus according to claim 10, further comprising: an encryption unit that encrypts each of the decryption keys so as to be decryptable using the converted first key.
前記第2記憶手段は、前記第1鍵と、前記他の通信装置に割り当てられた第2鍵を用いて復号可能に暗号化された前記第1鍵を含み当該鍵管理情報を識別可能な鍵管理識別情報が割り当てられた鍵管理識別情報と、前記コンテンツ識別情報とを対応付けて記憶し、
前記受信手段は、前記通信装置識別情報と、前記コンテンツ識別情報と、前記鍵管理識別情報とを含む前記要求メッセージを前記他の通信装置から受信し、
前記鍵暗号化手段は、前記要求メッセージに含まれる前記コンテンツ識別情報に対応付けられて記憶されている前記第1鍵に対応付けられている前記鍵管理識別情報と、前記要求メッセージに含まれる前記鍵管理識別情報とが同一であるか否かを判断する判断手段と、
前者の前記鍵管理識別情報と、後者の前記鍵管理識別情報とが同一でない場合、その旨を示すエラーメッセージを前記他の通信装置に送信するエラー送信手段とを更に有し、
前記変換手段は、前者の前記鍵管理識別情報と、後者の前記鍵管理識別情報とが同一である場合、前記一時情報を用いて関数により前記第2鍵を変換する
ことを特徴とする請求項13に記載の通信装置。
The second storage means includes the first key and the first key encrypted in a decryptable manner using the second key assigned to the other communication device, and can identify the key management information. Storing the key management identification information to which the management identification information is assigned and the content identification information in association with each other;
The receiving means receives the request message including the communication device identification information, the content identification information, and the key management identification information from the other communication device,
The key encryption means includes the key management identification information associated with the first key stored in association with the content identification information included in the request message, and the key management identification information included in the request message. Determining means for determining whether or not the key management identification information is the same;
If the former key management identification information and the latter key management identification information are not the same, the error management means further transmits an error message indicating that to the other communication device,
The said conversion means converts the said 2nd key with a function using the said temporary information, when the said key management identification information of the former and the said key management identification information of the latter are the same. 13. The communication device according to 13.
前記送信手段は、前記一時情報と、前記他の通信装置に割り当てられた第2鍵を用いて復号可能に暗号化された第1鍵を含む鍵管理情報とを前記他の通信装置に送信する
ことを特徴とする請求項9乃至14のいずれか一項に記載の通信装置。
The transmitting means transmits the temporary information and key management information including a first key encrypted in a decryptable manner using a second key assigned to the other communication device to the other communication device. The communication device according to claim 9, wherein the communication device is a device.
前記他の通信装置に割り当られた第2鍵を記憶する第4記憶手段を更に備え、
前記鍵暗号化手段は、
前記一時情報を用いて、前記第2鍵を関数により変換する変換手段と、
変換された前記第2鍵を用いて復号可能に暗号化した前記第1鍵を含む前記鍵管理情報を生成する生成手段と、
前記第1鍵を用いて前記各復号鍵を暗号化する暗号化手段とを有し、
前記送信手段は、前記一時情報と、暗号化された前記復号鍵と、前記鍵管理情報とを前記他の通信装置に送信する
ことを特徴とする請求項10に記載の通信装置。
A fourth storage means for storing a second key assigned to the other communication device;
The key encryption means includes
Conversion means for converting the second key by a function using the temporary information;
Generating means for generating the key management information including the first key encrypted in a decryptable manner using the converted second key;
Encryption means for encrypting each decryption key using the first key,
The communication device according to claim 10, wherein the transmission unit transmits the temporary information, the encrypted decryption key, and the key management information to the other communication device.
前記他の通信装置に割り当られた第2鍵を記憶する第4記憶手段を更に備え、
前記鍵暗号化手段は、
前記一時情報を用いて、前記第2鍵を関数により変換する変換手段と、
変換された前記第2鍵を用いて復号可能に暗号化した前記第1鍵を含む前記鍵管理情報を生成する生成手段と、
前記第1鍵と前記一時情報とを用いて前記各復号鍵を暗号化する暗号化手段とを有し、
前記送信手段は、前記一時情報と、暗号化された前記復号鍵と、前記鍵管理情報とを前記他の通信装置に送信する
ことを特徴とする請求項10に記載の通信装置。
A fourth storage means for storing a second key assigned to the other communication device;
The key encryption means includes
Conversion means for converting the second key by a function using the temporary information;
Generating means for generating the key management information including the first key encrypted in a decryptable manner using the converted second key;
Encryption means for encrypting each decryption key using the first key and the temporary information;
The communication device according to claim 10, wherein the transmission unit transmits the temporary information, the encrypted decryption key, and the key management information to the other communication device.
自通信装置に割り当てられた前記第2鍵を記憶する第4記憶手段と、
前記第2鍵を用いて復号可能に暗号化された第1鍵を含む前記鍵管理情報を記憶する第5記憶手段とを更に備え、
前記鍵暗号化手段は、
前記鍵管理情報に含まれる、暗号化された前記第1鍵を、前記第2鍵を用いて復号するMKB処理手段と、
前記第1鍵と前記一時情報とを用いて前記各復号鍵を暗号化する暗号化手段とを有する
ことを特徴とする請求項10に記載の通信装置。
Fourth storage means for storing the second key assigned to the communication device;
A fifth storage means for storing the key management information including the first key encrypted in a decryptable manner using the second key;
The key encryption means includes
MKB processing means for decrypting the encrypted first key included in the key management information using the second key;
The communication apparatus according to claim 10, further comprising an encryption unit configured to encrypt each decryption key using the first key and the temporary information.
前記他の通信装置に割り当られた第2鍵を記憶する第4記憶手段を更に備え、
前記受信手段は、前記第2鍵を用いて復号可能に暗号化された前記第1鍵を含む前記鍵管理情報を更に受信し、
前記鍵暗号化手段は、
前記鍵管理情報に含まれる、暗号化された前記第1鍵を、前記第2鍵を用いて復号するMKB処理手段と、
前記第1鍵と前記一時情報とを用いて前記各復号鍵を暗号化する暗号化手段とを有する
ことを特徴とする請求項10に記載の通信装置。
A fourth storage means for storing a second key assigned to the other communication device;
The receiving means further receives the key management information including the first key encrypted in a decryptable manner using the second key;
The key encryption means includes
MKB processing means for decrypting the encrypted first key included in the key management information using the second key;
The communication apparatus according to claim 10, further comprising an encryption unit configured to encrypt each decryption key using the first key and the temporary information.
前記送信手段は、前記一時情報と、前記他の通信装置に割り当てられた第2鍵を用いて復号可能に暗号化された前記第1鍵を含む鍵管理情報に割り当てられた前記鍵管理識別情報とを前記他の通信装置に送信する
ことを特徴とする請求項9乃至14のいずれか一項に記載の通信装置。
The transmission means includes the key management identification information assigned to the key management information including the temporary information and the first key encrypted in a decryptable manner using the second key assigned to the other communication device. The communication device according to claim 9, wherein the communication device is transmitted to the other communication device.
前記鍵暗号化手段は、
前記要求メッセージによって要求された各前記復号鍵の組み合わせに基づいて、当該各復号鍵を送信するか否かを決定する決定手段と、
前記決定手段の決定結果が肯定的である場合、前記要求メッセージによって要求された前記組み合わせにおける各前記復号鍵又は各前記復号鍵を計算するための鍵計算情報を前記第1記憶手段から各々読み出し、前記一時情報と、前記第1鍵とを用いて当該各復号鍵を暗号化する暗号化手段とを有する
ことを特徴とする請求項10に記載の通信装置。
The key encryption means includes
Determining means for determining whether to transmit each decryption key based on a combination of each decryption key requested by the request message;
If the determination result of the determination means is affirmative, each decryption key in the combination requested by the request message or key calculation information for calculating each decryption key is read from the first storage means, The communication apparatus according to claim 10, further comprising an encryption unit that encrypts each decryption key using the temporary information and the first key.
コンテンツの一部が暗号化された暗号化ピースを受信する通信装置で実行される通信方法であって、
前記通信装置は、第1受信手段と、送信手段と、鍵復号手段と、自通信装置に割り当られた第1鍵を記憶する記憶手段とを備え、
前記第1受信手段が、第1通信装置から、複数の前記暗号化ピースを受信する第1受信ステップと、
前記要求手段が、第2通信装置に、受信した各前記暗号化ピースを復号するための情報を要求する要求ステップと、
前記第2受信手段が、受信した各前記暗号化ピースを復号するための復号鍵であって暗号化された前記復号鍵を前記第2通信装置又は第3通信装置から受信し、当該復号鍵の暗号化に用いられた一時情報を前記第2通信装置から受信する第2受信ステップと、
前記鍵復号手段が、前記一時情報と、前記第1鍵と、前記第1鍵を用いて復号可能に暗号化された第2鍵とを用いて、暗号化された前記各復号鍵を復号する鍵復号ステップとを含む
ことを特徴とする通信方法。
A communication method executed by a communication device that receives an encrypted piece in which a part of content is encrypted,
The communication device includes a first reception unit, a transmission unit, a key decryption unit, and a storage unit that stores a first key assigned to the communication device,
A first receiving step in which the first receiving means receives a plurality of the encrypted pieces from a first communication device;
The requesting unit requests the second communication device to request information for decrypting each received encrypted piece;
The second receiving means receives the decryption key, which is a decryption key for decrypting each received encrypted piece, from the second communication device or the third communication device, and receives the decryption key A second receiving step of receiving temporary information used for encryption from the second communication device;
The key decryption means decrypts each decryption key encrypted using the temporary information, the first key, and a second key encrypted using the first key so as to be decryptable. And a key decryption step.
コンテンツの一部が暗号化された暗号化ピースを受信する通信装置の有するコンピュータを実行させるためのプログラムであって、
第1通信装置から、複数の前記暗号化ピースを受信する第1受信ステップと、
第2通信装置に、受信した各前記暗号化ピースを復号するための情報を要求する要求ステップと、
受信した各前記暗号化ピースを復号するための復号鍵であって暗号化された前記復号鍵を前記第2通信装置又は第3通信装置から受信し、当該復号鍵の暗号化に用いられた一時情報を前記第2通信装置から受信する第2受信ステップと、
前記一時情報と、自通信装置に割り当られた第1鍵と、前記第1鍵を用いて復号可能に暗号化された第2鍵とを用いて、暗号化された前記各復号鍵を復号する鍵復号ステップとをコンピュータに実行させるためのプログラム。
A program for causing a computer included in a communication device to receive an encrypted piece in which a part of content is encrypted,
A first receiving step of receiving a plurality of the encrypted pieces from a first communication device;
A requesting step for requesting information for decrypting each received encrypted piece to the second communication device;
The decryption key that is a decryption key for decrypting each received encrypted piece is received from the second communication device or the third communication device, and is temporarily used to encrypt the decryption key A second receiving step of receiving information from the second communication device;
Decrypting each encrypted decryption key using the temporary information, the first key assigned to the communication device, and the second key encrypted using the first key so that decryption is possible A program for causing a computer to execute a key decryption step.
コンテンツの一部が暗号化された暗号化ピースを受信する他の通信装置の有するコンピュータを実行させるためのプログラムであって、
複数の前記暗号化ピースを復号するための情報を要求する要求メッセージを前記他の通信装置から受信する受信ステップと、
前記暗号化ピースを復号するための復号鍵の暗号化に用いる一時情報を生成する生成ステップと、
前記要求メッセージに従って、前記一時情報を前記他の通信装置に送信する送信ステップとをコンピュータに実行させるためのプログラム。
A program for executing a computer of another communication device that receives an encrypted piece in which a part of content is encrypted,
Receiving a request message requesting information for decrypting a plurality of the encrypted pieces from the other communication device; and
Generating step for generating temporary information used for encryption of a decryption key for decrypting the encrypted piece;
A program for causing a computer to execute a transmission step of transmitting the temporary information to the other communication device according to the request message.
JP2008293778A 2008-11-17 2008-11-17 Communication device, communication method, and program Pending JP2010124071A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008293778A JP2010124071A (en) 2008-11-17 2008-11-17 Communication device, communication method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008293778A JP2010124071A (en) 2008-11-17 2008-11-17 Communication device, communication method, and program

Publications (1)

Publication Number Publication Date
JP2010124071A true JP2010124071A (en) 2010-06-03

Family

ID=42325034

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008293778A Pending JP2010124071A (en) 2008-11-17 2008-11-17 Communication device, communication method, and program

Country Status (1)

Country Link
JP (1) JP2010124071A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012165130A (en) * 2011-02-04 2012-08-30 Toshiba Corp Communication apparatus and key calculation apparatus
JP2018509855A (en) * 2015-03-27 2018-04-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Media key block-based broadcast encryption method
JP2020167744A (en) * 2013-02-12 2020-10-08 アマゾン テクノロジーズ インコーポレイテッド Federated key management
CN112953902A (en) * 2021-01-26 2021-06-11 湖南北斗微芯数据科技有限公司 Industrial Internet of things data encryption communication system and method
US11323479B2 (en) 2013-07-01 2022-05-03 Amazon Technologies, Inc. Data loss prevention techniques
US11368300B2 (en) 2014-06-27 2022-06-21 Amazon Technologies, Inc. Supporting a fixed transaction rate with a variably-backed logical cryptographic key
US11372993B2 (en) 2013-02-12 2022-06-28 Amazon Technologies, Inc. Automatic key rotation

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012165130A (en) * 2011-02-04 2012-08-30 Toshiba Corp Communication apparatus and key calculation apparatus
JP2020167744A (en) * 2013-02-12 2020-10-08 アマゾン テクノロジーズ インコーポレイテッド Federated key management
US11372993B2 (en) 2013-02-12 2022-06-28 Amazon Technologies, Inc. Automatic key rotation
JP7295068B2 (en) 2013-02-12 2023-06-20 アマゾン テクノロジーズ インコーポレイテッド Federated key management
US11695555B2 (en) 2013-02-12 2023-07-04 Amazon Technologies, Inc. Federated key management
US11323479B2 (en) 2013-07-01 2022-05-03 Amazon Technologies, Inc. Data loss prevention techniques
US11368300B2 (en) 2014-06-27 2022-06-21 Amazon Technologies, Inc. Supporting a fixed transaction rate with a variably-backed logical cryptographic key
JP2018509855A (en) * 2015-03-27 2018-04-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Media key block-based broadcast encryption method
CN112953902A (en) * 2021-01-26 2021-06-11 湖南北斗微芯数据科技有限公司 Industrial Internet of things data encryption communication system and method
CN112953902B (en) * 2021-01-26 2023-03-24 湖南北斗微芯产业发展有限公司 Industrial Internet of things data encryption communication system and method

Similar Documents

Publication Publication Date Title
JP2010021888A (en) Communication apparatus, key server, and management server
JP5395372B2 (en) Communication device, key server and data
JP5670272B2 (en) Information processing apparatus, server apparatus, and program
JP2009505506A5 (en)
JP2001036517A (en) Method for transmitting program to limit access to end user and method for decoding encrypted program
JP2014535199A (en) Secure distribution of content
JP5492007B2 (en) Content server, content receiving apparatus, attribute key issuing server, user key issuing server, access control system, content distribution program, and content receiving program
JP2010124071A (en) Communication device, communication method, and program
JP2009272927A (en) Communication apparatus, server, and program
WO2010067660A1 (en) Communication apparatus, communication method and program
JP4843511B2 (en) Broadcast encryption method, information decryption method, apparatus thereof, program thereof, and recording medium thereof
CN112954388B (en) A method, device, terminal device and storage medium for obtaining data files
Lei et al. Towards efficient re-encryption for secure client-side deduplication in public clouds
JP5512559B2 (en) ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION SYSTEM, ENCRYPTION METHOD, PROGRAM
JP4561074B2 (en) Information processing apparatus, information processing method, and computer program
JP2019121999A (en) Data sharing method, data sharing system, communication terminal, data sharing server, and program
KR100803596B1 (en) Decryption method and apparatus using external device or service on discard mechanism, decryption support method and apparatus for same
JP2004229128A (en) Encrypted data distribution system, information processing device, information processing method, and computer program
JP5367023B2 (en) Information encryption method, information encryption apparatus, program, and recording medium
WO2010067797A1 (en) Communication apparatus, server apparatus and communication program
JP2009153091A (en) Communication device, key server, management server, communication server, communication method, and program
JP2009171384A (en) ENCRYPTION INFORMATION GENERATION DEVICE AND ITS PROGRAM, PRIVATE KEY GENERATION DEVICE AND ITS PROGRAM, CONTENT DECRYPTION DEVICE AND ITS PROGRAM
WO2010067650A1 (en) Communication device, server, communication method, program
JP2007189597A (en) ENCRYPTION DEVICE, ENCRYPTION METHOD, DECRYPTION DEVICE, AND DECRYPTION METHOD
JP2009171016A (en) ENCRYPTION INFORMATION GENERATION DEVICE AND ITS PROGRAM, DISTRIBUTION CONTENT GENERATION DEVICE AND ITS PROGRAM, AND CONTENT DECRYPTION DEVICE AND ITS PROGRAM