JP2010141620A - Communications apparatus, server apparatus, communications method, and communications program - Google Patents

Communications apparatus, server apparatus, communications method, and communications program Download PDF

Info

Publication number
JP2010141620A
JP2010141620A JP2008316308A JP2008316308A JP2010141620A JP 2010141620 A JP2010141620 A JP 2010141620A JP 2008316308 A JP2008316308 A JP 2008316308A JP 2008316308 A JP2008316308 A JP 2008316308A JP 2010141620 A JP2010141620 A JP 2010141620A
Authority
JP
Japan
Prior art keywords
key
encrypted
piece
encryption
node
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
JP2008316308A
Other languages
Japanese (ja)
Inventor
Tatsuyuki Matsushita
達之 松下
Masaaki Cho
方明 趙
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 JP2008316308A priority Critical patent/JP2010141620A/en
Publication of JP2010141620A publication Critical patent/JP2010141620A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a communications technique by which a combination of each encryption piece distributed in a content distribution system becomes unique every for a communications apparatus, and which is capable of improving degree of freedom when structuring the system. <P>SOLUTION: A communications apparatus has: a piece receiving section that receives a first encryption piece which is a piece encrypted by a first encryption key allocated to the other nodes 50 and 51, and first apparatus identification information for identifying the other nodes 50 and 51; a unique information storage that stores an allocated second encryption key; a piece encryption section that generates a second encryption piece obtained by further encrypting the first encryption piece using the second encryption key; and a data transmitter that transmits the second encryption piece, the first apparatus identification information, and second apparatus identification information for identifying the self apparatus. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

この発明は、通信装置、サーバ装置、通信方法、および通信プログラムに関する。   The present invention relates to a communication device, a server device, a communication method, and a communication program.

例えば、P2P(peer to peer)を利用してデータを配信する配信方式(P2P配信という)は、巨大なストレージと大きな通信帯域とを有するデータ配信サーバを必要とせず、コストメリットの大きい配信方式である。また、データの配信を受けるノードにおいては、複数のノードからのデータの供給が期待されるため、ダウンロードやアップロードにおける帯域幅を活かした高速なデータ取得が期待される。このようにP2Pデータ配信には大きなメリットがあるが、一方で、著作権保護などデータセキュリティの観点から安全性に不安があった。P2P配信に限らず、著作権保護などのデータセキュリティを考える上で一般的な前提として次のことを仮定する。全ての端末機器又はノードがハッキングされることはないということである。この前提を否定した場合、端末機器は秘密とすべきデータを保持したり、秘密とすべき処理を行ったりすることができなくなり、殆どのセキュリティ技術やセキュリティ確保の為の工夫が成立しない。   For example, a distribution method that distributes data using P2P (peer to peer) (referred to as P2P distribution) does not require a data distribution server having a huge storage and a large communication band, and is a distribution method with a large cost merit. is there. Further, since a node receiving data distribution is expected to supply data from a plurality of nodes, high-speed data acquisition utilizing the bandwidth in download and upload is expected. As described above, the P2P data distribution has a great merit, but on the other hand, there is anxiety in safety from the viewpoint of data security such as copyright protection. The following is assumed as a general premise in considering data security such as copyright protection as well as P2P distribution. All terminal devices or nodes are not hacked. If this premise is denied, the terminal device cannot hold data that should be kept secret or perform processing that should be kept secret, and most security techniques and devices for ensuring security cannot be established.

さて、P2P配信において、暗号化されたデータを配信し、データの配信を受けるノードが当該データ(配信データという)を復号するための復号鍵を取得するコンテンツ配信システムがある。このようなシステムのP2P配信においてデータセキュリティ上の大きな問題点は、配信データと当該配信データを復号するための復号鍵との組み合わせが単一であったり数が少なかったりすることである。この場合、あるノードがハッキングされ、復号鍵が暴露されたとする。この場合、この復号鍵は殆どの配信データを復号するために使用できることになる。この問題を解決する一つの方法は、配信データをノード毎に個別化することである。   In P2P distribution, there is a content distribution system that distributes encrypted data, and a node that receives the data distribution acquires a decryption key for decrypting the data (distributed data). A major problem in data security in P2P distribution of such a system is that the combination of distribution data and a decryption key for decrypting the distribution data is single or small in number. In this case, it is assumed that a certain node is hacked and the decryption key is exposed. In this case, this decryption key can be used to decrypt most distribution data. One method for solving this problem is to individualize distribution data for each node.

P2P配信において配信データをノード毎に個別化する技術としては、例えば、特許文献1に示されるMarkingの方式が知られている。この方式では、配信データをピースに分割した上で、鍵の行列で暗号化を施して暗号化ピースを生成する。その結果として、行列状に暗号化された暗号化ピースからなるピース群が生成される。そしてこのようなピース群はP2Pネットワークを介して配信される。当該P2Pネットワークに接続される1つのノードは、各ピースについて行列状に暗号化された複数の暗号化ピースの中から1つの暗号化ピースを取得することになる。結果として、配信データを構成する各ピースが各々暗号化された暗号化ピースの組み合わせは、ノード毎に統計的に一意になることが期待される。   As a technique for individualizing distribution data for each node in P2P distribution, for example, a Marking method disclosed in Patent Document 1 is known. In this method, distribution data is divided into pieces, and encrypted with a key matrix to generate an encrypted piece. As a result, a piece group consisting of encrypted pieces encrypted in a matrix is generated. And such a piece group is distributed via a P2P network. One node connected to the P2P network acquires one encrypted piece from among a plurality of encrypted pieces encrypted in a matrix for each piece. As a result, it is expected that the combination of encrypted pieces obtained by encrypting each piece constituting the distribution data is statistically unique for each node.

USP 7165050USP 7165050

しかし、上述の特許文献1の技術においては、各暗号化ピースの組み合わせがノード毎に一意であることはあくまで統計的に期待されるだけである。各暗号化ピースの組み合わせをノード毎に一意にすることを実現するには、例えば、以下の2つの方法が考えられる。1つは、暗号化ピースの配信方法に工夫を施すという方法である。また、1つは、各暗号化ピースを復号するための復号鍵を保持する鍵サーバが復号鍵の配信を制限するという方法である。例えば、配信されたピース群を復号するために、ノードが各暗号化ピースの組み合わせを鍵サーバに申告して復号鍵を取得するシステムがある。このシステムにおいて、復号鍵の再配信によるリプレイアタックを阻止するためには、既に取得された復号鍵と重複が多い暗号化ピースの組み合わせを、鍵サーバがリジェクトするという方法がある。しかしいずれの方法であっても、暗号化ピースの配信効率を時として著しく低下させ、P2Pネットワークの利点を十分活かすことができなくなる恐れがある。また、前者の方法では、データの保護とデータの配信方法との独立性が損なわれ、そのことがシステム構築上の大きな制約となる恐れがある。また、各暗号化ピースの組み合わせを鍵サーバに申告するかしないかに関わらず、ノードが鍵サーバから復号鍵を取得するシステムにおいては、鍵サーバから送信されるデータ量は小さい方が効率的であり、望ましい。   However, in the technique of the above-mentioned Patent Document 1, it is only statistically expected that the combination of encrypted pieces is unique for each node. In order to realize the unique combination of the encrypted pieces for each node, for example, the following two methods are conceivable. One method is to devise a method for distributing encrypted pieces. One is a method in which a key server holding a decryption key for decrypting each encrypted piece restricts delivery of the decryption key. For example, in order to decrypt a distributed piece group, there is a system in which a node reports a combination of encrypted pieces to a key server and obtains a decryption key. In this system, in order to prevent a replay attack due to redistribution of the decryption key, there is a method in which the key server rejects a combination of the already obtained decryption key and an encrypted piece with many duplicates. However, either method may significantly reduce the distribution efficiency of the encrypted piece from time to time, and may not be able to take full advantage of the P2P network. In the former method, the independence of the data protection and the data distribution method is lost, which may be a major limitation in system construction. In addition, in a system in which a node obtains a decryption key from a key server regardless of whether or not each encryption piece combination is reported to the key server, it is more efficient that the amount of data transmitted from the key server is smaller. Yes, desirable.

本発明は、上記に鑑みてなされたものであって、コンテンツ配信システムにおいて配信される各暗号化ピースの組み合わせを通信装置毎に一意にすることが可能になると共に、システム構築上の自由度を向上可能な通信装置、サーバ装置、通信方法、および通信プログラムを提供することを目的とする。   The present invention has been made in view of the above, and it is possible to make each combination of encrypted pieces distributed in the content distribution system unique for each communication device, and to increase the degree of freedom in system construction. An object is to provide a communication device, a server device, a communication method, and a communication program that can be improved.

上述した課題を解決し、目的を達成するために、本発明の一実施形態は、データの一部であるピースを暗号化して送信する通信装置であって、他の通信装置に割り当てられた第1暗号鍵によって暗号化されたピースである第1暗号化ピースと、前記他の通信装置を識別する第1装置識別情報と、を受信する受信手段と、前記通信装置に割り当てられた第2暗号鍵を記憶する記憶手段と、前記第2暗号鍵を用いて前記第1暗号化ピースを更に暗号化した第2暗号化ピースを生成する暗号化手段と、前記第2暗号化ピースと、前記第1装置識別情報と、前記通信装置を識別する第2装置識別情報と、を送信する送信手段と、を備えることを特徴とする。   In order to solve the above-described problems and achieve the object, an embodiment of the present invention is a communication device that encrypts and transmits a piece that is a part of data, and is a communication device that is assigned to another communication device. Receiving means for receiving a first encrypted piece encrypted with one encryption key; first device identification information for identifying the other communication device; and a second cipher assigned to the communication device Storage means for storing a key; encryption means for generating a second encrypted piece obtained by further encrypting the first encrypted piece using the second encryption key; the second encrypted piece; Transmission means for transmitting one device identification information and second device identification information for identifying the communication device.

また、本発明の一実施形態は、上記装置で実行することができる方法およびプログラムである。   Moreover, one Embodiment of this invention is the method and program which can be performed with the said apparatus.

また、本発明の一実施形態は、暗号化されたピースである暗号化ピースを復号するための復号鍵を要求する鍵要求であって、前記暗号化ピースの配信を仲介した前記通信装置の前記装置識別情報を含む前記鍵要求を前記通信装置から受信する受信手段と、前記鍵要求に含まれる各前記装置識別情報を用いて前記復号鍵を生成する鍵生成手段と、生成された前記復号鍵を、前記鍵要求を送信した前記通信装置に送信する送信手段と、を備えることを特徴とする。   Further, an embodiment of the present invention is a key request for requesting a decryption key for decrypting an encrypted piece that is an encrypted piece, wherein the communication device mediates delivery of the encrypted piece. Receiving means for receiving the key request including apparatus identification information from the communication apparatus; key generating means for generating the decryption key using each of the apparatus identification information included in the key request; and the generated decryption key Transmitting means for transmitting to the communication device that transmitted the key request.

また、本発明の一実施形態は、上記装置で実行することができるプログラムである。   Moreover, one Embodiment of this invention is a program which can be performed with the said apparatus.

本発明によれば、コンテンツ配信システムにおいて配信される各暗号化ピースの組み合わせを通信装置毎に一意にすることが可能になると共に、システム構築上の自由度を向上可能な通信装置、サーバ装置、通信方法、および通信プログラムを提供することができるという効果を奏する。   ADVANTAGE OF THE INVENTION According to this invention, it becomes possible to make the combination of each encryption piece delivered in a content delivery system unique for every communication apparatus, and the communication apparatus which can improve the freedom degree in system construction, a server apparatus, The communication method and the communication program can be provided.

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

[第1の実施の形態]
(1)構成
<コンテンツ配信システムの構成>
図1は、本実施の形態にかかるデータ配信システムの構成を示す図である。本実施の形態にかかるデータ配信システムにおいては、複数のノード50,51A〜51BがP2PネットワークNTを介して接続されている。図示しないがこの他のノードもP2PネットワークNTを介して接続され得る。また、各ノード50,51A〜51Bは鍵サーバ53と接続されている。各ノード50,51A〜51Bは、各ノードに一意に割り当てられた装置識別情報であるノードIDと、各ノードに一意に割り当てられた割当情報として公開鍵とを保持している。各ノード50,51A〜51Bに割り当てられたノードIDを各々ID#0、ID#1、ID#2とし、公開鍵を各々y0、y1、y2とする。尚、各ノード50,51A〜51Bのうちノード50は、データの配信の基点となる配信開始ノードであり、配信対象のデータ(配信データという)を保持している。配信データは、平文である場合もあるし、既に暗号化された暗号文である場合もある。例えば、当該配信データは、暗号化として何らかのDRM (Digital Right Management) Systemによって保護されたビデオデータであっても良い。鍵サーバ53は、秘密情報として、各ノード50,51A〜51Bに各々割り当てられた公開鍵にそれぞれ対応する秘密鍵x0、x1、x2を保持している。尚、以降、ノード51A〜51Bを各々区別する必要がない場合、単にノード51と記載する。
[First embodiment]
(1) Configuration <Configuration of content distribution system>
FIG. 1 is a diagram showing a configuration of a data distribution system according to the present embodiment. In the data distribution system according to the present embodiment, a plurality of nodes 50, 51A to 51B are connected via a P2P network NT. Although not shown, other nodes can also be connected via the P2P network NT. Each node 50, 51 </ b> A to 51 </ b> B is connected to the key server 53. Each node 50, 51A to 51B holds a node ID, which is device identification information uniquely assigned to each node, and a public key as assignment information uniquely assigned to each node. The node ID assigned to each node 50,51A~51B each as ID # 0, ID # 1, ID # 2, each public key and y 0, y 1, y 2 . Of the nodes 50 and 51A to 51B, the node 50 is a distribution start node serving as a data distribution base, and holds data to be distributed (referred to as distribution data). The distribution data may be plain text or may be already encrypted cipher text. For example, the distribution data may be video data protected by some DRM (Digital Right Management) System as encryption. The key server 53 holds secret keys x 0 , x 1 , and x 2 corresponding to the public keys respectively assigned to the nodes 50 and 51A to 51B as secret information. Hereinafter, when it is not necessary to distinguish the nodes 51A to 51B, they are simply referred to as the node 51.

ここで、各ノード50,51と、鍵サーバ53との各装置のハードウェア構成について説明する。各装置は各々、装置全体を制御するCPU(Central Processing Unit)等の制御装置と、各種データや各種プログラムを記憶するROM(Read Only Memory)やRAM(Random Access Memory)等の記憶装置と、各種データや各種プログラムを記憶するHDD(Hard Disk Drive)やCD(Compact Disk)ドライブ装置等の外部記憶装置と、これらを接続するバスとを備えており、通常のコンピュータを利用したハードウェア構成となっている。また、各装置には各々、情報を表示する表示装置と、ユーザの指示入力を受け付けるキーボードやマウス等の入力装置と、外部装置の通信を制御する通信I/F(interface)とが有線又は無線により接続される。   Here, the hardware configuration of each device including the nodes 50 and 51 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

なお、装置識別情報とは、データ配信システムにおける各ノードに割り当てられた情報であって、各ノードを識別できればどのような情報であっても良く、例えば、ノードID(例えば、当該装置のMAC(Media Access Control)アドレス、IPアドレス、メールアドレス)、ノードに割り当てられる公開鍵、公開鍵証明書、有料データ配信などの配信サービスにおける加入者IDである。   The device identification information is information assigned to each node in the data distribution system, and may be any information as long as each node can be identified. For example, a node ID (for example, the MAC ( Media Access Control) address, IP address, mail address), public key assigned to the node, public key certificate, subscriber ID in distribution service such as paid data distribution.

また、秘密情報とは、鍵サーバ53が秘密裏に記憶する情報であって、各ノードにより暗号化された暗号化ピースを復号するため情報であり、例えば、公開鍵yiに対応する秘密鍵xi、装置識別情報から秘密鍵xiを導出するアルゴリズム及び当該アルゴリズムにおけるパラメーター(例えば、入力の一部など)である。秘密情報は、鍵サーバ53のみでなく(例えばサービス事業者など)信頼できる第三者が保持していても良い。 The secret information is information stored secretly by the key server 53, and is information for decrypting the encrypted piece encrypted by each node. For example, the secret information corresponding to the public key y i x i is an algorithm for deriving the secret key x i from the device identification information, and parameters (for example, a part of the input) in the algorithm. The secret information may be held not only by the key server 53 but also by a reliable third party (for example, a service provider).

<配信開始ノードの構成>
次に、上述したハードウェア構成において、配信開始ノードであるノード50のCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図2は、ノード50の機能的構成を例示する図である。ノード50は、固有情報格納部500と、乱数生成部501と、ピース暗号化部503と、ピース化部504と、データ送信部505と、送信要求受付部506とを有する。尚、固有情報格納部500は、例えばノード50のHDDなどの外部記憶装置に記憶領域として確保されるものである。乱数生成部501と、ピース化部504と、ピース暗号化部503と、データ送信部505と、送信要求受付部506との実体は、ノード50のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。尚、ノード50の外部記憶装置には、配信データが予め記憶されている。
<Configuration of distribution start node>
Next, in the hardware configuration described above, various functions realized when the CPU of the node 50 that is the distribution start node executes various programs stored in the storage device or the external storage device will be described. FIG. 2 is a diagram illustrating a functional configuration of the node 50. The node 50 includes a unique information storage unit 500, a random number generation unit 501, a piece encryption unit 503, a piece conversion unit 504, a data transmission unit 505, and a transmission request reception unit 506. The unique information storage unit 500 is reserved as a storage area in an external storage device such as an HDD of the node 50, for example. The entity of the random number generation unit 501, the piece unit 504, the piece encryption unit 503, the data transmission unit 505, and the transmission request reception unit 506 is stored on a storage device such as a RAM when the CPU program of the node 50 is executed. Is generated. Note that distribution data is stored in advance in the external storage device of the node 50.

固有情報格納部500は、当該ノード50に割り当てられたノードID及び公開鍵を記憶する。ピース化部504は、配信データを複数のピースに分割する。分割する際のデータサイズは特に限定されないが、予め定められているものとする。送信要求受付部506は、ピース化部504が分割したピースを要求するピース要求を他のノード51から受信する。乱数生成部501は、送信要求受付部506がピース要求を受信した場合、その発生毎に異なり得る一時情報である乱数を生成する。一時情報とは、ノードで生成される度に異なり得る値となれば良く、乱数の他、例えば、タイムスタンプ、通信のシーケンス番号、ノードに固有のカウンタの値、Time Variant Parameterである。Time Variant Parameterについては、例えば文献ISO9798-1に記載されている。   The unique information storage unit 500 stores the node ID and public key assigned to the node 50. The piece unit 504 divides the distribution data into a plurality of pieces. The data size at the time of division is not particularly limited, but is assumed to be predetermined. The transmission request receiving unit 506 receives a piece request for requesting the piece divided by the piece forming unit 504 from the other node 51. When the transmission request reception unit 506 receives a piece request, the random number generation unit 501 generates a random number that is temporary information that can be different for each occurrence. The temporary information only needs to be a value that can be different every time it is generated at a node, and includes, for example, a random number, a time stamp, a communication sequence number, a counter value unique to the node, and a time variant parameter. The Time Variant Parameter is described in, for example, the document ISO9798-1.

ピース暗号化部503は、乱数生成部501が生成した乱数と固有情報格納部500に記憶されている公開鍵とを用いてピースを暗号化して、暗号化ピースを含む暗号化データ(詳細は後述)を出力する。データ送信部505は、ピース要求を送信した他のノード51に対して、固有情報格納部500に記憶されているノードIDと、ピース暗号化部503が出力した暗号化データとを送信する。   The piece encryption unit 503 encrypts the piece using the random number generated by the random number generation unit 501 and the public key stored in the unique information storage unit 500, and includes encrypted data including an encrypted piece (details will be described later) ) Is output. The data transmission unit 505 transmits the node ID stored in the unique information storage unit 500 and the encrypted data output by the piece encryption unit 503 to the other node 51 that has transmitted the piece request.

<配信開始ノード以外のノードの構成>
次に、配信開始ノード以外であるノード51のCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図3は、ノード51の機能的構成を例示する図である。ノード51は、固有情報格納部510と、乱数生成部511と、ピース暗号化部513と、データ受信部514と、データ送信部515と、送信要求受付部516と、データ格納部517と、送信要求送信部518と、鍵要求送信部519と、ピース復号部520とを有する。尚、固有情報格納部510とデータ格納部517とは、例えばノード51のHDDなどの外部記憶装置に記憶領域として確保されるものである。乱数生成部511と、ピース暗号化部513と、データ受信部514と、データ送信部515と、送信要求受付部516と、送信要求送信部518と、鍵要求送信部519と、ピース復号部520との実体は、ノード51のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。
<Configuration of nodes other than the distribution start node>
Next, various functions realized when the CPU of the node 51 other than the distribution start node executes various programs stored in the storage device or the external storage device will be described. FIG. 3 is a diagram illustrating a functional configuration of the node 51. The node 51 includes a unique information storage unit 510, a random number generation unit 511, a piece encryption unit 513, a data reception unit 514, a data transmission unit 515, a transmission request reception unit 516, a data storage unit 517, a transmission A request transmission unit 518, a key request transmission unit 519, and a piece decryption unit 520 are included. The unique information storage unit 510 and the data storage unit 517 are reserved as storage areas in an external storage device such as an HDD of the node 51, for example. Random number generation unit 511, piece encryption unit 513, data reception unit 514, data transmission unit 515, transmission request reception unit 516, transmission request transmission unit 518, key request transmission unit 519, piece decryption unit 520 Is generated on a storage device such as a RAM when the CPU of the node 51 executes the program.

固有情報格納部510は、当該ノード51に割り当てられたノードID及び公開鍵を記憶する。送信要求受付部516の構成は上述のノード50の有する送信要求受付部506の構成と同様である。送信要求送信部518は、ピースを要求するピース要求をノード50又は他のノード51に対して送信する。データ受信部514は、送信要求送信部518がピース要求を送信した相手であるノード50又は他のノード51から、ピースが暗号化された暗号化ピースを含む暗号化データと、当該暗号化ピースの送信を仲介した少なくとも1つの他のノード50,51に割り当てられた各ノードIDを含むノードID列とを受信する。データ格納部517は、データ受信部514が受信したノードID列と暗号化データとを対応付けて記憶する。暗号化データとは、暗号化ピースと算出情報列とを含むデータを指す。なお、算出情報とは、乱数(一時情報)に応じて変更される情報であって、例えば、後述するC1,iが算出情報に相当する。 The unique information storage unit 510 stores the node ID and public key assigned to the node 51. The configuration of the transmission request receiving unit 516 is the same as the configuration of the transmission request receiving unit 506 included in the node 50 described above. The transmission request transmission unit 518 transmits a piece request for requesting a piece to the node 50 or another node 51. The data receiving unit 514 sends encrypted data including the encrypted piece in which the piece is encrypted from the node 50 or another node 51 to which the transmission request transmitting unit 518 has transmitted the piece request, and the encrypted piece of the encrypted piece. A node ID string including each node ID assigned to at least one other node 50, 51 that mediates transmission is received. The data storage unit 517 stores the node ID string received by the data reception unit 514 and the encrypted data in association with each other. Encrypted data refers to data including an encrypted piece and a calculation information sequence. The calculation information is information that is changed according to a random number (temporary information), and for example, C 1, i described later corresponds to the calculation information.

乱数生成部511は、送信対象の暗号化ピースを暗号化するとき、又は予め乱数を生成する。ピース暗号化部513は、乱数生成部511が生成した乱数と固有情報格納部510に記憶されている公開鍵とを用いて、データ格納部517に記憶されている1つの暗号化ピースを更に暗号化して、新たな暗号化ピースを生成し、新たな暗号化ピースを含む暗号化データを出力する。   The random number generation unit 511 generates a random number in advance when encrypting the encrypted piece to be transmitted. The piece encryption unit 513 further encrypts one encrypted piece stored in the data storage unit 517 using the random number generated by the random number generation unit 511 and the public key stored in the unique information storage unit 510. To generate a new encrypted piece, and output encrypted data including the new encrypted piece.

データ送信部515は、送信要求受付部516が受信したピース要求を送信した他のノード51に対して、送信対象の暗号化ピースに対応付けられてデータ格納部517に記憶されたノードID列に加え固有情報格納部510に記憶されたノードIDを含む新たなノードID列と、(ピース暗号化部513において送信対象の暗号化ピースを暗号化し)ピース暗号化部513が出力した新たな暗号化ピースを含む暗号化データとを送信する。尚、データ格納部517に暗号化ピースが記憶されていない場合には、送信要求受付部516がピース要求を受信したとしても、ピース暗号化部513は暗号化ピースを含む暗号化データを出力せず、データ送信部515は暗号化ピースを含む暗号化データを送信しない。   The data transmission unit 515 transmits the node ID string stored in the data storage unit 517 in association with the encrypted piece to be transmitted to the other node 51 that has transmitted the piece request received by the transmission request reception unit 516. In addition, a new node ID string including the node ID stored in the unique information storage unit 510, and a new encryption output by the piece encryption unit 513 (encrypt the encrypted piece to be transmitted in the piece encryption unit 513) The encrypted data including the piece is transmitted. If the encrypted piece is not stored in the data storage unit 517, even if the transmission request receiving unit 516 receives the piece request, the piece encryption unit 513 cannot output the encrypted data including the encrypted piece. The data transmission unit 515 does not transmit the encrypted data including the encrypted piece.

ここで、ノード50,51から送信されるノードID列と、暗号化ピースを含む暗号化データとについて具体的に説明する。尚、ノード50から1つの暗号化ピースに対してこれと共に送信されるノードIDは1つであるが、ここでは説明の便宜上、これをノード列と記載する場合がある。暗号化ピースの配信経路としてここではノード50からノード51A、更にノード51Aからノード51Bに暗号化ピースを送信し、ノード51Bから鍵サーバ53に鍵要求を送信する場合について説明する。例えば、あるピースPについてノード51Aからのピース要求に応じて、ノード50が、乱数r0と公開鍵y0とを用いてピースPを暗号化して暗号化ピースを含む暗号化データC1,0、C2,0、Y0を出力したとする。なお、C1,i、C2,i、Yiとは、配信経路上でi番目に暗号化データの配信を仲介したノード51で計算される暗号化データを意味する。そして、i=0のときの暗号化データC1,0、C2,0、Y0は、配信開始ノードであるノード50で計算される暗号化データを意味する。 Here, the node ID string transmitted from the nodes 50 and 51 and the encrypted data including the encrypted piece will be specifically described. Note that one node ID is transmitted from the node 50 to one encrypted piece together with this, but here, for convenience of explanation, this may be described as a node string. Here, a case will be described in which the encrypted piece is transmitted from the node 50 to the node 51A, the encrypted piece is transmitted from the node 51A to the node 51B, and the key request is transmitted from the node 51B to the key server 53. For example, in response to a piece request from the node 51A for a certain piece P, the node 50 encrypts the piece P by using the random number r 0 and the public key y 0 and encrypts the encrypted data C 1,0 including the encrypted piece. , C 2,0 and Y 0 are output. Note that C 1, i , C 2, i , and Y i mean encrypted data calculated by the node 51 that mediates the distribution of encrypted data i-th on the distribution path. The encrypted data C 1,0 , C 2,0 , and Y 0 when i = 0 means encrypted data calculated by the node 50 that is the distribution start node.

ここで、図4に示されるように、ピースPの一部(又は全部)をmと表記し、m以外の残りの部分をRと表記する。ノード50が、当該暗号化データをノードID「ID#0」と共にノード51Aに送信したとする。図5は、ノード50からノード51Aに送信される情報を模式的に示す図である。ここで、暗号化データC1,0、C2,0、Y0の計算方法について説明する。始めにパラメータを定義する。p,qを素数とし、qはp−1を割り切るとする。Zq={0,1,…,q−1}とする。Zp*={1,…,p−1}とする。gを、Zp*上の1のq乗根とする。Gqを、Zp*の部分群であり、かつ、位数がqである乗法群とする。各ノードは、p,q,gの値を知らされている。以下、特に断りの無い限り、計算はZp*上で行われるとする。ノードIDが「ID#i」であるノードに割り当てられる公開鍵yiは以下の(1)式で表される。

Figure 2010141620
Here, as shown in FIG. 4, a part (or all) of the piece P is expressed as m, and the remaining part other than m is expressed as R. Assume that the node 50 transmits the encrypted data together with the node ID “ID # 0” to the node 51A. FIG. 5 is a diagram schematically showing information transmitted from the node 50 to the node 51A. Here, a method of calculating the encrypted data C 1,0 , C 2,0 , Y 0 will be described. First, define the parameters. Let p and q be prime numbers, and q be divisible by p-1. Let Zq = {0, 1,..., Q−1}. Let Zp * = {1,..., P−1}. Let g be the q root of 1 on Zp *. Let Gq be a multiplicative group that is a subgroup of Zp * and whose order is q. Each node is informed of the values of p, q, and g. Hereinafter, it is assumed that the calculation is performed on Zp * unless otherwise specified. The public key y i assigned to the node whose node ID is “ID # i” is expressed by the following equation (1).
Figure 2010141620

ここで、xiは公開鍵yiに対応する秘密鍵であるが、鍵サーバのみが各xiを保持し、各ノードは公開鍵のみを保持する。ノード50は、乱数r0と公開鍵y0を用いて、以下の(2)式〜(5)式により暗号化データC1,0、C2,0、Y0を計算する。

Figure 2010141620
Here, x i is a secret key corresponding to the public key y i , but only the key server holds each x i , and each node holds only the public key. The node 50 uses the random number r 0 and the public key y 0 to calculate the encrypted data C 1,0 , C 2,0 , Y 0 according to the following formulas (2) to (5).
Figure 2010141620

1,0は乱数r0によってその値が変わる情報である。すなわち、C1,0は乱数r0に応じた値を有する。ここで、Hはハッシュ関数を表す。関数KXOR(K,R)の定義は以下である。KXORの入力は鍵KとデータRであり、RはR=R1||R2||…||Rnと表せるとする。||はデータ連結を表す。1≦i≦nについて、以下の(6)式によりRi’を計算し、出力をR1’||R2’||…||Rn’とする。尚、例えばm=Pとする場合など、Rに相当するデータが存在しない場合やRにKXOR処理を施さない場合は、上記Y0、K0の計算は行わず、暗号化データはC1,0、C2,0となる。

Figure 2010141620
C 1,0 is information whose value changes depending on the random number r 0 . That is, C 1,0 has a value corresponding to the random number r 0 . Here, H represents a hash function. The definition of the function KXOR (K, R) is as follows. Input of KXOR are key K and the data R, R is the expressed as R = R 1 || R 2 || ... || R n. || represents data concatenation. For 1 ≦ i ≦ n, 'calculated and the output R 1' R i by the following equation (6) and || R 2 '|| ... || R n'. When there is no data corresponding to R, such as when m = P, or when KXOR processing is not performed on R, the calculation of Y 0 and K 0 is not performed, and the encrypted data is C 1, 0 , C 2,0 .
Figure 2010141620

(3)式のC2の計算において、mをGqの元に写像することが必要となる。そのような写像Fの定義は以下の(7)式である。p=2q+1とする。
F:Zq→QRp:F(a)=a2 mod p ・・・(7)
In the calculation of C 2 in equation (3), it is necessary to map m to Gq. The definition of such a map F is the following equation (7). Let p = 2q + 1.
F: Zq → QRp: F (a) = a 2 mod p (7)

ここで、QRp={12 mod p, 22 mod p,・・・, q2mod p}である。mをGq(この例ではQRp)の元に写像するためにはF(m)を計算し、上式のmをF(m)に置き換えてC2を計算すれば良い。また、Fの逆写像F−1の定義は以下で(8)式である。
-1:QRp→Zq:F-1(b)=min(b(p+1)/4, −b(p+1)/4) ・・・(8)
Here, QRp = {1 2 mod p, 2 2 mod p,..., Q 2 mod p}. The m by calculating the F (m) is to map the original Gq (QRp in this example) may be replaced with m in the above equation for F (m) calculating a C 2. Further, the definition of the inverse map F −1 of F is the following equation (8).
F −1 : QRp → Zq: F −1 (b) = min (b (p + 1) / 4 , −b (p + 1) / 4 ) (8)

ここで、min(x,y)はxとyの内でより小さい方を表す。例えば、x<yの場合はmin(x,y)=xである(x=yの場合はmin(x,y)=xとする)。F(m)からmを求める場合には、F-1(F(m))を計算すれば良い。以下、上述の写像、逆写像を計算する処理の記載を省略する。尚、上述したKXOR処理を行わず、Rのままにしておいても良い。 Here, min (x, y) represents the smaller of x and y. For example, when x <y, min (x, y) = x (when x = y, min (x, y) = x). When m is obtained from F (m), F −1 (F (m)) may be calculated. Hereinafter, description of the process for calculating the above-described mapping and inverse mapping is omitted. Note that R may be left without performing the above-described KXOR processing.

ノード51Aは、これらのノードID「ID#0」と、暗号化データC1,0、C2,0、Y0とを対応付けてデータ格納部517に記憶することになる。 The node 51A stores these node IDs “ID # 0” and the encrypted data C 1,0 , C 2,0 , Y 0 in the data storage unit 517 in association with each other.

そして、当該ノード51Aが、ノード51Bからのピース要求に応じてピースPに対する暗号化ピースを含む暗号化データを送信する場合、乱数r1を生成し、これと公開鍵y1とを用いて暗号化ピースC2、Y0を以下の(9)式〜(12)式により更に暗号化して暗号化データC1,1、C2,1、Y1を計算する。

Figure 2010141620
When the node 51A transmits encrypted data including the encrypted piece for the piece P in response to the piece request from the node 51B, the node 51A generates a random number r 1 and encrypts it using the public key y 1. The encrypted pieces C 2 and Y 0 are further encrypted by the following equations (9) to (12) to calculate the encrypted data C 1,1 , C 2,1 and Y 1 .
Figure 2010141620

1,1は乱数r1によってその値が変わる情報(算出情報)である。このとき、ノード51Aは、ノード51Bに対して、データ格納部517に記憶されている、ノード50に割り当てられたノードID「ID#0」に加え固有情報格納部510に記憶されている、自身に割り当てられたノードID「ID#1」と、データ格納部517に記憶されている算出情報C1,0と、上式において計算した算出情報C1,1、及び暗号化ピースC2,1、Y1とを送信する。図6は、ノード51Aからノード51Bに送信される情報を模式的に示す図である。ノード51Bは、これらのノードID列「ID#0,ID#1」、算出情報列C1,0, C1,1、及び暗号化ピースC2,1、Y1を対応付けてデータ格納部517に記憶する。 C 1,1 is information (calculation information) whose value changes according to the random number r 1 . At this time, the node 51A stores itself in the unique information storage unit 510 in addition to the node ID “ID # 0” assigned to the node 50, which is stored in the data storage unit 517 with respect to the node 51B. Node ID “ID # 1” assigned to, calculated information C 1,0 stored in the data storage unit 517, calculated information C 1,1 calculated in the above equation, and encrypted piece C 2,1 , Y 1 are transmitted. FIG. 6 is a diagram schematically illustrating information transmitted from the node 51A to the node 51B. The node 51B associates the node ID string “ID # 0, ID # 1”, the calculation information string C 1,0 , C 1,1 , and the encrypted pieces C 2,1 , Y 1 with the data storage unit. Store in 517.

図3の説明に戻る。鍵要求送信部519は、データ格納部517に記憶された暗号化ピースを復号するための復号鍵を要求する鍵要求を鍵サーバ53に送信する。ここで鍵要求送信部519は、当該暗号化ピースに対応してデータ格納部517に記憶されているノードID列及び算出情報列を鍵要求に含めて鍵サーバ53に送信する。例えば、ノード51Bが、ノード51Aが暗号化を行った場合に出力された図6に示した暗号化ピースC2,1、Y1を復号するための復号鍵を要求する鍵要求を鍵サーバ53に送信する場合、ノード51Bの鍵要求送信部519は、ノードID列「ID#0,ID#1」と、算出情報列C1,0、1,1とを含む鍵要求を送信する。図7は、ノード51Bから鍵サーバ53に送信される情報を模式的に示す図である。このように、ノード51は、暗号化ピースを復号するための復号鍵を鍵サーバ53に要求する際に、当該暗号化ピースの配信経路を示すものとして、配信開始ノードであるノード50を基点として当該暗号化ピースの配信を仲介する各ノード50,51の各ノードIDを含むノードID列及び当該各ノード50,51が生成した各乱数から算出される算出情報列を鍵サーバ53に送信する。 Returning to the description of FIG. The key request transmission unit 519 transmits to the key server 53 a key request for requesting a decryption key for decrypting the encrypted piece stored in the data storage unit 517. Here, the key request transmission unit 519 transmits the node ID string and the calculation information string stored in the data storage unit 517 corresponding to the encrypted piece to the key server 53 by including them in the key request. For example, the key server 53 sends a key request for requesting a decryption key for decrypting the encrypted pieces C 2,1 and Y 1 shown in FIG. 6 that is output when the node 51B performs encryption. , The key request transmission unit 519 of the node 51B transmits a key request including the node ID string “ID # 0, ID # 1” and the calculation information strings C1,0, C1,1 . FIG. 7 is a diagram schematically showing information transmitted from the node 51B to the key server 53. As shown in FIG. As described above, when the node 51 requests the key server 53 for a decryption key for decrypting the encrypted piece, the node 51 indicates the distribution path of the encrypted piece, with the node 50 that is the distribution start node as a base point. The node ID string including the node IDs of the nodes 50 and 51 that mediate the distribution of the encrypted pieces and the calculation information string calculated from the random numbers generated by the nodes 50 and 51 are transmitted to the key server 53.

ピース復号部520は、鍵要求送信部519が送信した鍵要求に応じて鍵サーバ53から送信されたデータ(後述するD、D’)を復号鍵として受信し、当該復号鍵を用いて暗号化ピースを復号する。尚、ピース復号部520がどのようにピースPを復号するのかは後述する。図8は、鍵サーバ53からノード51Bに送信される情報を模式的に示す図である。同図に示される復号鍵によりピースPが復号される。尚、鍵サーバ53がどのように復号鍵を生成するのかは後述する。   The piece decryption unit 520 receives, as a decryption key, data (D and D ′ described later) transmitted from the key server 53 in response to the key request transmitted by the key request transmission unit 519, and encrypts using the decryption key Decode the piece. Note that how the piece decoding unit 520 decodes the piece P will be described later. FIG. 8 is a diagram schematically showing information transmitted from the key server 53 to the node 51B. Piece P is decrypted with the decryption key shown in FIG. Note that how the key server 53 generates the decryption key will be described later.

尚、ノード51が、複数のピースのそれぞれについてどのような順番やタイミングでどのノードから取得するかは特に限定されないが、以上のようにして、ノード51は、複数のピースのそれぞれが暗号化された各暗号化ピースをピース要求によって他のノード50,51から取得する。また、ノード51は、各暗号化ピースについて鍵要求によって各復号鍵を鍵サーバ53から受信し、各暗号化ピースを復号することにより、上述の配信データを得る。   Note that the order in which the node 51 obtains each of the plurality of pieces from which node and from which node is not particularly limited, but as described above, the node 51 encrypts each of the plurality of pieces. Each encrypted piece is acquired from the other nodes 50 and 51 by a piece request. Further, the node 51 receives each decryption key from the key server 53 by a key request for each encrypted piece, and obtains the above-described distribution data by decrypting each encrypted piece.

<鍵サーバの構成>
次に、鍵サーバ53のCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図9は、鍵サーバ53の機能的構成を例示する図である。鍵サーバ53は、秘密鍵格納部530と、復号鍵計算部532と、データ受信部531と、データ送信部534とを有する。尚、秘密鍵格納部530は、例えば鍵サーバ53のHDDなどの外部記憶装置に記憶領域として確保されるものである。復号鍵計算部532と、データ受信部531と、データ送信部534との実体は、鍵サーバ53のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。
<Key server configuration>
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. 9 is a diagram illustrating a functional configuration of the key server 53. The key server 53 includes a secret key storage unit 530, a decryption key calculation unit 532, a data reception unit 531, and a data transmission unit 534. The secret key storage unit 530 is secured as a storage area in an external storage device such as an HDD of the key server 53, for example. The entities of the decryption key calculation unit 532, the data reception unit 531, and the data transmission unit 534 are generated on a storage device such as a RAM when the CPU program of the key server 53 is executed.

秘密鍵格納部530は、各ノード50,51に割り当てられた公開鍵にそれぞれ対応する秘密鍵を、各ノード50,51に割り当てられたノードIDと対応付けて記憶する。データ受信部531は、上述したノードID列及び算出情報列を含む鍵要求をノード51から受信すると共に、暗号化ピースを復号するための復号鍵を要求する。   The secret key storage unit 530 stores the secret keys corresponding to the public keys assigned to the nodes 50 and 51 in association with the node IDs assigned to the nodes 50 and 51, respectively. The data reception unit 531 receives a key request including the above-described node ID string and calculation information string from the node 51 and requests a decryption key for decrypting the encrypted piece.

復号鍵計算部532における処理を上述の例(ノード50からノード51Aへ、さらにノード51Aからノード51Bへ暗号化ピースが配信され、ノード51Bが鍵サーバ53へ鍵要求する例)を用いて説明する。ID#0、ID#1、C1,0、C1,1を受信した鍵サーバ53は、ノード50に割り当てられた公開鍵に対応する秘密鍵x0とノード51Aに割り当てられた公開鍵に対応する秘密鍵x1とを用いて、以下の(13)式、(14)式によりD、D’を計算する。

Figure 2010141620
Processing in the decryption key calculation unit 532 will be described using the above-described example (an example in which an encrypted piece is distributed from the node 50 to the node 51A and further from the node 51A to the node 51B, and the node 51B requests a key to the key server 53). . ID # 0, ID # 1, C 1,0, the key server 53 that has received the C 1, 1 is a public key assigned to the private key x 0 and the node 51A corresponding to the public key assigned to the node 50 corresponding with the private key x 1, the following equation (13), calculates the D, D 'by (14).
Figure 2010141620

ここで、ノード51Bでの復号処理について説明する。ノード51Bは、上式のD、D’と暗号化ピースC2,1、Y1とを用いて、以下の(15)式、(16)式によりピースPを得る。

Figure 2010141620
Here, the decoding process in the node 51B will be described. The node 51B uses the above formulas D and D ′ and the encrypted pieces C 2,1 and Y 1 to obtain a piece P according to the following formulas (15) and (16).
Figure 2010141620

上述した暗号方式は、ElGamal暗号方式に基づいている。本暗号方式では、ElGamal暗号方式が有する準同型性を利用し、ピースの暗号化に用いられた、ノード50、ノード51Aの公開鍵y0、y1にそれぞれ対応する秘密鍵x0、x1を1つの復号鍵Dに集約している。これにより、暗号化ピースが経由するノード数が大きくなっても復号鍵サイズを一定に保つことが可能となる。従って、鍵サーバから送信されるデータ量を削減することが可能となる。なお、適用可能な暗号方式は、ElGamal暗号方式に限られるものではない。また、集約する復号鍵の個数も1つに限られるものではない。すなわち、各ノードの公開鍵にそれぞれ対応する秘密鍵を、予め定められた個数の復号鍵に集約可能な暗号方式であればあらゆる方式を適用しうる。 The above-described encryption method is based on the ElGamal encryption method. In this encryption method, the secret keys x 0 and x 1 corresponding to the public keys y 0 and y 1 of the node 50 and the node 51A, respectively, which are used for piece encryption, utilizing the homomorphism of the ElGamal encryption method. Are combined into one decryption key D. As a result, the decryption key size can be kept constant even when the number of nodes through which the encrypted piece passes increases. Therefore, the amount of data transmitted from the key server can be reduced. The applicable encryption method is not limited to the ElGamal encryption method. Further, the number of decryption keys to be aggregated is not limited to one. In other words, any scheme can be applied as long as the secret key corresponding to each node's public key can be aggregated into a predetermined number of decryption keys.

データ送信部534は、復号鍵計算部532が計算した復号鍵を、データ受信部531が受信した鍵要求を送信したノード51に対して送信する。例えば、上述の例では、ノード51Aが暗号化を行っていた場合には、鍵サーバ53は、図7に示されるノードID列及び算出情報列を含む鍵要求に応じて、図8に示されるように、D、D’をノード51Bに対して送信する。当該ピースについて行われた全ての暗号化のそれぞれを復号するための復号鍵がノード51Bに対して送信されることにより、ノード51Bは当該暗号化ピースの暗号化を完全に復号することができる。   The data transmission unit 534 transmits the decryption key calculated by the decryption key calculation unit 532 to the node 51 that transmitted the key request received by the data reception unit 531. For example, in the above example, when the node 51A performs encryption, the key server 53 is shown in FIG. 8 in response to the key request including the node ID string and the calculation information string shown in FIG. Thus, D and D ′ are transmitted to the node 51B. By transmitting a decryption key for decrypting each encryption performed on the piece to the node 51B, the node 51B can completely decrypt the encryption of the encrypted piece.

(2)動作
<配信開始ノード:配信処理>
次に、本実施の形態にかかるデータ配信システムで行われる処理の手順について説明する。まず、配信開始ノードであるノード50が行う配信処理の手順について図10を用いて説明する。ノード50は、配信データを複数のピースに分割する(ステップS1)。そして、ノード50は、ピースを要求するピース要求を他のノード51から受信すると(ステップS2:YES)、乱数r0を生成する(ステップS3)。次いで、ノード50は、乱数r0と固有情報格納部500に記憶された公開鍵y0とを用いて、送信対象となるピースPを暗号化して、暗号化ピースを含む暗号化データを出力する(ステップS4)。尚、送信対象となるピースをどのように決定するかは特に限定されない。そして、ノード50は、ステップS2で受信されたピース要求を送信した他のノード51に対して、例えば図5に示されるように、固有情報格納部500に記憶されているノードID「ID#0」と、ステップS3で生成した乱数r0と、ステップS4で出力した暗号化データとを送信する(ステップS5)。その後ステップS2に戻り、ノード50は、新たなピース要求の受信を待機する。尚、ステップS2で受信されるピース要求は、同一のノード51であるとは限らず、当該ピース要求によって要求されるピースPは、同一のピースであるとは限らない。また、ステップS3で生成する乱数は基本的にステップS3の処理毎に異なる。
(2) Operation <Distribution start node: distribution processing>
Next, a procedure of processing performed in the data distribution system according to the present embodiment will be described. First, the procedure of the distribution process performed by the node 50 that is the distribution start node will be described with reference to FIG. The node 50 divides the distribution data into a plurality of pieces (step S1). Then, the node 50 receives a piece request for requesting the piece from another node 51 (step S2: YES), generates a random number r 0 (step S3). Next, the node 50 encrypts the piece P to be transmitted using the random number r 0 and the public key y 0 stored in the unique information storage unit 500, and outputs encrypted data including the encrypted piece. (Step S4). In addition, how to determine the piece to be transmitted is not particularly limited. Then, the node 50 transmits the node ID “ID # 0” stored in the unique information storage unit 500 to the other node 51 that has transmitted the piece request received in step S2, for example, as shown in FIG. ”, The random number r 0 generated in step S3, and the encrypted data output in step S4 (step S5). Thereafter, the process returns to step S2, and the node 50 waits for reception of a new piece request. Note that the piece requests received in step S2 are not necessarily the same node 51, and the pieces P requested by the piece requests are not necessarily the same piece. Further, the random number generated in step S3 basically differs for each process in step S3.

<受信処理>
次に、ノード51がノード50又は他のノード51から暗号化ピースを受信する受信処理の手順について図11を用いて説明する。ノード51は、ピースを要求するピース要求をノード50又は他のノード51に対して送信する(ステップS10)。次いで、ノード51は、ステップS10でピース要求を送信した相手であるノード50又は他のノード51から、ノードID列と暗号化データとを受信する(ステップS11)。そして、ノード51は、ステップS11で受信したノードID列及び暗号化データを対応付けて記憶する(ステップS12)。
<Reception processing>
Next, a reception processing procedure in which the node 51 receives an encrypted piece from the node 50 or another node 51 will be described with reference to FIG. The node 51 transmits a piece request for requesting a piece to the node 50 or another node 51 (step S10). Next, the node 51 receives the node ID string and the encrypted data from the node 50 or the other node 51 that is the partner that transmitted the piece request in step S10 (step S11). Then, the node 51 stores the node ID string received in step S11 and the encrypted data in association with each other (step S12).

<配信開始ノード以外のノード:配信処理>
次に、配信開始ノード以外のノード51が行う配信処理の手順について図12を用いて説明する。ノード51は、ピースを要求するピース要求を他のノード51から受信すると(ステップS20:YES)、乱数を生成する(ステップS21)。次いでノード51は、ステップS21で生成した乱数と、固有情報格納部510に記憶された公開鍵とを用いて、あるピースPが暗号化された暗号化ピースであってデータ格納部517に記憶されている暗号化ピースを更に暗号化して、新たな暗号化ピースを出力する(ステップS22)。その後ノード51は、ステップS20で受信されたピース要求を送信した他のノード51に対して、送信対象である暗号化ピースに対応付けられてデータ格納部517に記憶されたノードIDに加え固有情報格納部510に記憶されたノードIDを含む新たなノードID列と、送信対象である暗号化ピースに対応付けられてデータ格納部517に記憶された算出情報に加えステップS22の暗号化の際に生成した算出情報を含む新たな算出情報列と、ステップS22で出力した新たな暗号化ピースとを送信する(ステップS23)。
<Nodes other than the distribution start node: distribution processing>
Next, the procedure of the distribution process performed by the nodes 51 other than the distribution start node will be described with reference to FIG. When the node 51 receives a piece request for requesting a piece from another node 51 (step S20: YES), the node 51 generates a random number (step S21). Next, the node 51 is an encrypted piece obtained by encrypting a piece P using the random number generated in step S21 and the public key stored in the unique information storage unit 510, and is stored in the data storage unit 517. The encrypted piece is further encrypted, and a new encrypted piece is output (step S22). Thereafter, the node 51 transmits the unique information in addition to the node ID stored in the data storage unit 517 in association with the encrypted piece to be transmitted to the other node 51 that has transmitted the piece request received in step S20. In addition to the new node ID string including the node ID stored in the storage unit 510 and the calculated information stored in the data storage unit 517 in association with the encrypted piece to be transmitted, at the time of encryption in step S22 A new calculation information sequence including the generated calculation information and the new encrypted piece output in step S22 are transmitted (step S23).

<復号処理>
次に、ノード51が鍵サーバ53から復号鍵を取得しこれを用いて暗号化ピースを復号する復号処理の手順について図13を用いて説明する。ノード51は、データ格納部517に記憶された暗号化ピースに対応付けられているノードID列及び算出情報列を読み出し(ステップS30)、当該暗号化ピースを復号するための復号鍵を要求すると共に、当該ノードID列及び算出情報列を含む鍵要求を鍵サーバ53に送信する(ステップS31)。次いで、ノード51は、ステップS30で送信された鍵要求に応じて鍵サーバ53から送信された復号鍵を受信し(ステップS32)、当該復号鍵を用いて暗号化ピースを復号する(ステップS33)。このようにして、各ノード51は、複数のピースのそれぞれが暗号化された各暗号化ピースについて鍵要求によって各復号鍵を鍵サーバ53から受信し、各暗号化ピースを復号することにより、上述の配信データを得ることができる。
<Decryption process>
Next, a procedure of decryption processing in which the node 51 obtains a decryption key from the key server 53 and decrypts the encrypted piece using the decryption key will be described with reference to FIG. The node 51 reads the node ID string and the calculation information string associated with the encrypted piece stored in the data storage unit 517 (step S30), and requests a decryption key for decrypting the encrypted piece. Then, a key request including the node ID string and the calculation information string is transmitted to the key server 53 (step S31). Next, the node 51 receives the decryption key transmitted from the key server 53 in response to the key request transmitted in step S30 (step S32), and decrypts the encrypted piece using the decryption key (step S33). . Thus, each node 51 receives each decryption key from the key server 53 by a key request for each encrypted piece in which each of the plurality of pieces is encrypted, and decrypts each encrypted piece, thereby Distribution data can be obtained.

<鍵サーバ:鍵送信処理>
次に、鍵サーバ53がノード51からの鍵要求に応じて復号鍵を送信する鍵送信処理の手順について図14を用いて説明する。鍵サーバ53は、ノードID列及び算出情報列を含む鍵要求(暗号化ピースを復号するための復号鍵の要求)をノード51から受信すると(ステップS40:YES)、受信した鍵要求に含まれるノードID列に含まれる各ノードIDに対応付けられて秘密鍵格納部530に記憶されている秘密鍵をノードID毎に読み出す(ステップS41)。そして、鍵サーバ53は、ステップS41において読み出した秘密鍵と、ステップS40において受信した算出情報を用いて復号鍵を計算する(ステップS42)。次いで、鍵サーバ53は、ステップS42で生成した復号鍵を、ステップS40で受信した鍵要求を送信したノード51に対して送信する(ステップS43)。
<Key server: Key transmission processing>
Next, a key transmission process procedure in which the key server 53 transmits a decryption key in response to a key request from the node 51 will be described with reference to FIG. When the key server 53 receives a key request (a request for a decryption key for decrypting an encrypted piece) including the node ID string and the calculation information string from the node 51 (step S40: YES), the key server 53 is included in the received key request. The secret key associated with each node ID included in the node ID string and stored in the secret key storage unit 530 is read for each node ID (step S41). Then, the key server 53 calculates a decryption key using the secret key read in step S41 and the calculation information received in step S40 (step S42). Next, the key server 53 transmits the decryption key generated in step S42 to the node 51 that transmitted the key request received in step S40 (step S43).

以上のような構成によれば、あるノードが取得する暗号化ピースの組み合わせは配信経路と配信時期とに固有のものとなり、確実に一意となり得る。このような構成によれば、P2P配信において配信方法に関する特別な工夫をしなくても、各ノードが取得する各暗号化ピースの組み合わせについてノード毎の一意性を確実に高めることができ、安全性を向上させることができる。更に、データの保護とデータの配信方法との独立性を維持することが可能になり、システム構築上の自由度を向上させることが可能になる。また、上述したように、複数のノードによる暗号化で用いられた複数の公開鍵にそれぞれ対応する複数の秘密鍵を1つの復号鍵に集約して復号に用いることができるため、暗号化ピースが経由するノード数が大きくなっても復号鍵サイズを一定に保ち、鍵サーバから送信されるデータ量を削減することが可能となる。   According to the above configuration, a combination of encrypted pieces acquired by a certain node is unique to the distribution route and the distribution time, and can be surely unique. According to such a configuration, the uniqueness of each node can be reliably increased for each combination of encrypted pieces acquired by each node without special measures regarding the distribution method in P2P distribution. Can be improved. Furthermore, it becomes possible to maintain the independence between the data protection and the data distribution method, and the degree of freedom in system construction can be improved. In addition, as described above, since a plurality of secret keys respectively corresponding to a plurality of public keys used in encryption by a plurality of nodes can be aggregated into one decryption key and used for decryption, Even when the number of nodes passing through increases, the size of the decryption key can be kept constant, and the amount of data transmitted from the key server can be reduced.

[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
[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 in each node 50 may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. In addition, the program is recorded in a computer-readable recording medium such as a CD-ROM, a flexible disk (FD), a CD-R, a DVD (Digital Versatile Disk) in a file in an installable or executable format. You may comprise so that it may provide. In this case, the program is loaded onto the main storage device (for example, RAM) by being read from the recording medium at each node 50 and executed, and each unit described in the functional configuration is generated on the main storage device. The The same applies to various programs executed by the key server 53.

また、上述した実施の形態において、各ノード50の機能的構成において説明した各部のうち全部又は一部をハードウェアにより構成しても良い。鍵サーバ53の機能的構成において説明した各部のうち全部又は一部についても同様である。   In the above-described embodiment, all or part of the units described in the functional configuration of each node 50 may be configured by hardware. The same applies to all or some of the components described in the functional configuration of the key server 53.

<変形例2>
第1の実施の形態では、暗号化ピースが各ノードにおいてさらに暗号化される例を説明したが、これに限らず、受信した暗号化ピースをそのまま他のノードに転送しても良い。また、配信開始ノードのみが暗号化を行っても良い。以下、配信開始ノードのみが暗号化を行う例を説明する。以下、第1の実施の形態と異なる点のみを記載し、第1の実施の形態と同様の処理を行う場合はその記載を省略する。(後述のその他の変形例についても同様である。)
<Modification 2>
In the first embodiment, the example in which the encrypted piece is further encrypted in each node has been described. However, the present invention is not limited to this, and the received encrypted piece may be transferred to another node as it is. Further, only the distribution start node may perform encryption. Hereinafter, an example in which only the distribution start node performs encryption will be described. Hereinafter, only the points different from the first embodiment will be described, and the description thereof will be omitted when the same processing as that of the first embodiment is performed. (The same applies to other modifications described later.)

各ノードは予め秘密鍵xi’を与えられている。鍵サーバ53は以下の(17)式を満たすz及び各xiを保持している。

Figure 2010141620
Each node is given a secret key x i 'in advance. The key server 53 holds z and each x i that satisfy the following expression (17).
Figure 2010141620

ノード50は、乱数rを生成し、以下の(18)式、(19)式により暗号化データを計算する。

Figure 2010141620
The node 50 generates a random number r and calculates encrypted data by the following equations (18) and (19).
Figure 2010141620

各ノードは、P2Pネットワークを介して、暗号化データC1、C2を配信する。ノード51Bは、以下の(20)式で表されるEを含む復号鍵要求メッセージを鍵サーバ53へ送信する。鍵サーバ53は、以下の(21)式によりDを計算し、ノード51Bへ送信する。

Figure 2010141620
Each node distributes the encrypted data C 1 and C 2 via the P2P network. The node 51B transmits a decryption key request message including E represented by the following equation (20) to the key server 53. The key server 53 calculates D by the following equation (21) and transmits it to the node 51B.
Figure 2010141620

Dを受信したノード51Bは、以下の(22)式により暗号化ピースを復号する。

Figure 2010141620
The node 51B that receives D decrypts the encrypted piece according to the following equation (22).
Figure 2010141620

<変形例3>
第1の実施の形態では、鍵サーバ53は、復号鍵Dをそのまま送信する例を説明したが、Dを暗号化した上で送信しても良い。これにより、復号鍵を盗聴から守ることができる。ノード51Bは、乱数t2を生成し、ノードID列、C1,0、C1,1に加えて以下の(23)式で表されるEを含む復号鍵要求メッセージを鍵サーバ53へ送信する。

Figure 2010141620
<Modification 3>
In the first embodiment, the example has been described in which the key server 53 transmits the decryption key D as it is. However, the key server 53 may transmit the data after encrypting D. Thereby, the decryption key can be protected from eavesdropping. The node 51B generates a random number t 2 and transmits a decryption key request message including E represented by the following expression (23) to the key server 53 in addition to the node ID string C 1,0 and C 1,1. To do.
Figure 2010141620

鍵サーバ53は、第1の実施の形態と同様に復号鍵Dを計算し、以下の(24)式によりDeを計算し、Deをノード51Bへ送信する。

Figure 2010141620
The key server 53, the decryption key D as with the first embodiment calculates, calculates the D e in the following (24), and transmits the D e to node 51B.
Figure 2010141620

eを受信したノード51Bは、以下の(25)式により暗号化ピースを復号する。

Figure 2010141620
Node 51B which receives the D e decrypts the encrypted piece by the following equation (25).
Figure 2010141620

尚、Deの生成方法として、共通鍵暗号方式を用いても良い。つまり、g^tを共通鍵としてDを暗号化したものをDeとしても良い。 As the method of generating the D e, it may be used a common key cryptosystem. That is, D e may be obtained by encrypting D using g ^ t 2 as a common key.

<変形例4>
第1の実施の形態では、暗号化を有限体の乗法群上で行う例を説明したが、これに限らず、暗号化を楕円曲線上の点から成る加法群上で行っても良い。以下、暗号化を楕円曲線上の点から成る加法群上で行う例を説明する。Gを楕円曲線上のベースポイントとする。各ノードに与えられる公開鍵yiはyi=xiGと表される。ノード50は、以下の(26)〜(29)式により暗号化処理を行う。

Figure 2010141620
<Modification 4>
In the first embodiment, the example in which the encryption is performed on the multiplicative group of the finite field has been described. However, the present invention is not limited to this, and the encryption may be performed on the additive group including points on the elliptic curve. An example in which encryption is performed on an additive group consisting of points on an elliptic curve will be described below. Let G be the base point on the elliptic curve. The public key y i given to each node is expressed as y i = x i G. The node 50 performs encryption processing according to the following equations (26) to (29).
Figure 2010141620

こで、[A]xは楕円曲線上の点Aのx座標を表す。ノード51Aは、以下の(30)式〜(33)式により暗号化処理を行う。

Figure 2010141620
Here, [A] x represents the x coordinate of the point A on the elliptic curve. The node 51A performs encryption processing according to the following equations (30) to (33).
Figure 2010141620

鍵サーバ53は、以下の(34)式、(35)式により復号鍵D、D’を計算し、ノード51Bへ送信する。

Figure 2010141620
The key server 53 calculates the decryption keys D and D ′ by the following equations (34) and (35), and transmits them to the node 51B.
Figure 2010141620

<変形例5>
変形例4では、mをスカラーとして扱う例を説明したが、これに限らず、mを楕円曲線上の点Mに変換して暗号化を行っても良い。以下、mを楕円曲線上の点Mに変換して暗号化を行う例を説明する。変形例4との相違点のみを記載する。関数Plus、関数Minusを以下のように定義する。定義1、定義2のいずれを採用しても良い。
(定義1)Plus(A,B)は、点Aと点Bとの、mod p(pは素数)上の長さ2のベクトルの加算を表す。この場合、Minus(A,B)はmod p上の長さ2のベクトルの減算を表す。
(定義2)Plus(A,B)はAとBとの点加算を表す。この場合、Minus(A,B)はBの逆元−BとAとの点加算を表す。
<Modification 5>
In the fourth modification, an example in which m is treated as a scalar has been described. However, the present invention is not limited to this, and encryption may be performed by converting m into a point M on an elliptic curve. Hereinafter, an example of performing encryption by converting m to a point M on the elliptic curve will be described. Only differences from Modification 4 are described. The function Plus and the function Minus are defined as follows. Either Definition 1 or Definition 2 may be adopted.
(Definition 1) Plus (A, B) represents addition of a vector of length 2 on point p and point B on mod p (p is a prime number). In this case, Minus (A, B) represents the subtraction of a vector of length 2 on mod p.
(Definition 2) Plus (A, B) represents point addition of A and B. In this case, Minus (A, B) represents the point addition of the inverse element B of B and A.

ノード50は、mを点Mへ変換し、以下の(36)式〜(39)式により暗号化処理を行う。

Figure 2010141620
The node 50 converts m into a point M, and performs encryption processing according to the following equations (36) to (39).
Figure 2010141620

尚、mを点Mへ、又は点Mをmへ変換する方法は、例えば、「Standards for Efficient Cryptography, SEC 1: Elliptic Curve Cryptography, Version 1.0, September 20, 2000. (http://www.secg.org/download/aid-385/sec1_final.pdf)」において開示されている。   The method of converting m to point M or converting point M to m is, for example, “Standards for Efficient Cryptography, SEC 1: Elliptic Curve Cryptography, Version 1.0, September 20, 2000. (http: //www.secg .org / download / aid-385 / sec1_final.pdf) ".

ノード51Aは、以下の(40)式〜(43)式により暗号化処理を行う。

Figure 2010141620
The node 51A performs encryption processing according to the following equations (40) to (43).
Figure 2010141620

鍵サーバ53は、以下の(44)式、(45)式により復号鍵D、D’を計算し、ノード51Bへ送信する。ノード51Bは、以下の(46)式により点Mを計算し、点Mをmへ変換する。

Figure 2010141620
The key server 53 calculates the decryption keys D and D ′ by the following equations (44) and (45), and transmits them to the node 51B. The node 51B calculates the point M according to the following equation (46), and converts the point M to m.
Figure 2010141620

<変形例6>
変形例4では、暗号化を楕円曲線上の点から成る加法群上で行う例を説明した。これは変形例2に適用しても良い。以下、変形例2において、暗号化を楕円曲線上の点から成る加法群上で行う例を説明する。変形例4との相違点のみを記載する。
<Modification 6>
In the fourth modification, an example in which encryption is performed on an additive group consisting of points on an elliptic curve has been described. This may be applied to the second modification. Hereinafter, an example in which encryption is performed on an additive group composed of points on an elliptic curve in Modification 2 will be described. Only differences from Modification 4 are described.

ノード50は、乱数rを生成し、mを点Mに変換し、以下の(47)式、(48)式により暗号化データを計算する。

Figure 2010141620
The node 50 generates a random number r, converts m into a point M, and calculates encrypted data according to the following equations (47) and (48).
Figure 2010141620

各ノードは、P2Pネットワークを介して、暗号化データC1、C2を配信する。ノード51Bは、以下の(49)式で表されるEを含む復号鍵要求メッセージを鍵サーバ53へ送信する。

Figure 2010141620
Each node distributes the encrypted data C 1 and C 2 via the P2P network. The node 51B transmits a decryption key request message including E expressed by the following equation (49) to the key server 53.
Figure 2010141620

鍵サーバ53は、以下の(50)式によりDを計算し、ノード51Bへ送信する。

Figure 2010141620
The key server 53 calculates D by the following equation (50) and transmits it to the node 51B.
Figure 2010141620

Dを受信したノード51Bは、以下の(51)式により点Mを計算し、点Mをmへ変換する。

Figure 2010141620
The node 51B that receives D calculates the point M by the following equation (51), and converts the point M to m.
Figure 2010141620

<変形例7>
変形例4では、暗号化を楕円曲線上の点から成る加法群上で行う例を説明した。これは変形例3に適用しても良い。以下、変形例3において、暗号化を楕円曲線上の点から成る加法群上で行う例を説明する。変形例4との相違点のみを記載する。ノード51Bは、乱数t2を生成し、ノードID列、C1,0、C1,1に加えて以下の(52)式で表されるEを含む復号鍵要求メッセージを鍵サーバ53へ送信する。

Figure 2010141620
<Modification 7>
In the fourth modification, an example in which encryption is performed on an additive group consisting of points on an elliptic curve has been described. This may be applied to the third modification. Hereinafter, an example in which the encryption is performed on an additive group composed of points on an elliptic curve in Modification 3 will be described. Only differences from Modification 4 are described. The node 51B generates a random number t 2 and transmits a decryption key request message including E represented by the following expression (52) to the key server 53 in addition to the node ID string C 1,0 and C 1,1. To do.
Figure 2010141620

鍵サーバ53は、以下の(53)式により復号鍵Dを計算し、さらに(54)式によりDeを計算する。そしてDeをノード51Bへ送信する。

Figure 2010141620
The key server 53, the decryption key D is calculated by the following equation (53), further (54) calculating a D e by formula. And sends D e to node 51B.
Figure 2010141620

eを受信したノード51Bは、以下の(55)式によりDを計算する。

Figure 2010141620
Node 51B which receives the D e calculates the D by the following equation (55).
Figure 2010141620

ノード51Bは、以下の(56)式によりMを計算し、Mをmに変換する。

Figure 2010141620
The node 51B calculates M by the following equation (56) and converts M to m.
Figure 2010141620

尚、Deの生成方法として、共通鍵暗号方式を用いても良い。つまり、t2Gを共通鍵としてDを暗号化したものをDeとしても良い。 As the method of generating the D e, it may be used a common key cryptosystem. That is, D e may be obtained by encrypting D using t 2 G as a common key.

<変形例8>
各ノードに上述したKXOR処理を行うか行わないかの選択をさせても良い。この場合、鍵サーバ53においてどのノードがKXOR処理を行ったかが識別できるように、各ノードは、上述のノードID列とは別に、KXOR処理を行ったノードのノードID列を送信するようにすれば良い。
<Modification 8>
Each node may be selected to perform the KXOR process described above. In this case, in order to identify which node has performed the KXOR process in the key server 53, each node should transmit the node ID string of the node that has performed the KXOR process separately from the above-described node ID string. good.

また、上述の関数KXORに代えて、以下に定義する関数KXOR’関数を用いても良い。KXOR’の入力は鍵KとデータRであり、RはR=R1||R2||…||Rnと表せるとする。1≦i≦nについて、Zi=s*Zi-1+t、Z0=K、および以下の(57)式によりRi’を計算し、出力をR1’||R2’||…||Rn’とする。本変形例において、「*」および「+」はそれぞれ拡大体上での乗算および加算を表す。s,tは定数であるが、s,tともにシステム固定であっても良いし、sは配信データ毎に変えても良いし、tは配信データ毎、ノード毎、又は配信データ毎かつノード毎に変えても良い。

Figure 2010141620
Further, instead of the function KXOR described above, a function KXOR ′ function defined below may be used. Input KXOR 'are key K and the data R, R is the expressed as R = R 1 || R 2 || ... || R n. For 1 ≦ i ≦ n, R i ′ is calculated by Z i = s * Z i−1 + t, Z 0 = K, and the following equation (57), and the output is R 1 '|| R 2 ' || ... || R n '. In this modification, “*” and “+” represent multiplication and addition on the extension field, respectively. Although s and t are constants, both s and t may be fixed to the system, s may be changed for each distribution data, and t is for each distribution data, for each node, or for each distribution data and for each node. It may be changed to
Figure 2010141620

<変形例9>
ピースPとその一部分のデータであるmとの関係について、図4に示した例のみに限らず、図15に示すようにP=mとしても良い。この場合、Yi、Kiの計算は行わない。また、図16に示すように、P=m1||m2||…||mNとしても良い。この場合、各miについて、(Yi、Kiの計算は行わずに)暗号化データをそれぞれ計算する。この場合、各ノードは必ずしも全てのmiを暗号化しなくても良い。
<Modification 9>
The relationship between the piece P and m, which is part of the data, is not limited to the example shown in FIG. 4, but may be P = m as shown in FIG. In this case, Y i and K i are not calculated. Further, as shown in FIG. 16, P = m 1 || m 2 || ... may || m N. In this case, the encrypted data is calculated for each m i (without calculating Y i and K i ). In this case, each node may not be encrypted necessarily all m i.

ここで、図17に示すように、P=m1||m2||…||mN||Rとする場合の、ノード51Bが鍵サーバ53から受信する復号鍵の(ノード51Bにおける)格納形式について説明する。第1の実施の形態のノード51Bは、復号鍵を格納するための復号鍵格納部を有していても良い。図18は、このように構成した本変形例のノード1851の機能的構成を例示する図である。同図に示すように、ノード1851は、復号鍵格納部18521をさらに備えている。また、この復号鍵格納部18521は、SDメモリカードやSDHCメモリカード等の着脱可能な記録媒体によって実現されていても良い。特に、SDメモリカードやSDHCメモリカード等の着脱可能な記録媒体の秘匿領域に復号鍵を格納することが望ましい。miを復号するための復号鍵をDiとし、Rを復号するための復号鍵をD’’とする。Diの計算方法は上記(13)式と同様である。D’’の計算方法は上記(14)式と同様である。 Here, as shown in FIG. 17, at which a P = m 1 || m 2 || ... || m N || R, ( at node 51B) of the decryption key node 51B receives from the key server 53 The storage format will be described. The node 51B of the first embodiment may have a decryption key storage unit for storing a decryption key. FIG. 18 is a diagram illustrating a functional configuration of the node 1851 of the present modification configured as described above. As shown in the figure, the node 1851 further includes a decryption key storage unit 18521. The decryption key storage unit 18521 may be realized by a removable recording medium such as an SD memory card or an SDHC memory card. In particular, it is desirable to store the decryption key in a secret area of a removable recording medium such as an SD memory card or an SDHC memory card. Let D i be the decryption key for decrypting m i , and D ″ be the decryption key for decrypting R. The calculation method of D i is the same as the above equation (13). The calculation method of D ″ is the same as the above equation (14).

復号鍵格納部18521への復号鍵D1、D2、・・・,、DN、D’’の格納形式の一例を図19に示す。ノード51Bは、鍵サーバ53から受信した復号鍵を復号鍵格納部18521に格納する。そして、ノード51Bは、復号鍵格納部18521より復号鍵を読み出し、上記(15)式、(16)式と同様の計算を行い、暗号化ピースを復号する。 An example of the storage format of the decryption keys D 1 , D 2 ,..., D N , D ″ in the decryption key storage unit 18521 is shown in FIG. The node 51B stores the decryption key received from the key server 53 in the decryption key storage unit 18521. Then, the node 51B reads the decryption key from the decryption key storage unit 18521, performs the same calculation as the above formulas (15) and (16), and decrypts the encrypted piece.

<変形例10>
第1の実施の形態におけるピース暗号化方式は、ElGamal暗号方式が応用されているとみなすことができるが、これに限らず、「R. Cramer and V. Shoup, “A Practical Public Key Cryptosystem Provably Secure against Adaptive Chosen Ciphertext Attack,” Proc. CRYPTO'98, LNCS 1462, Springer-Verlag, pp.13-25, 1998」において開示されているCramer-Shoup暗号方式をピース暗号化方式に応用しても良い。
<Modification 10>
The piece encryption method in the first embodiment can be regarded as an application of the ElGamal encryption method, but is not limited to this, and is not limited to “R. Cramer and V. Shoup,“ A Practical Public Key Cryptosystem Provably Secure. The Cramer-Shoup encryption method disclosed in “Adaptive Chosen Ciphertext Attack,” Proc. CRYPTO '98, LNCS 1462, Springer-Verlag, pp. 13-25, 1998 ”may be applied to the piece encryption method.

始めに、Cramer-Shoup暗号方式の概要を説明する。
(鍵生成)第1の実施の形態と同様に、素数p,qを生成する。Gqのランダムな要素g1、g2を選択し、秘密鍵x1、x2、y1、y2、z(全てZqの要素)を生成する。この秘密鍵に対応する公開鍵g1、g2、c、d、hを生成する。ここで、c、d、hは以下の(58)式〜(60)式により定義される。

Figure 2010141620
First, an overview of the Cramer-Shoup cryptosystem will be described.
(Key generation) As in the first embodiment, prime numbers p and q are generated. Random elements g 1 and g 2 of Gq are selected, and secret keys x 1 , x 2 , y 1 , y 2 and z (all elements of Zq) are generated. Public keys g 1 , g 2 , c, d, h corresponding to the secret key are generated. Here, c, d, and h are defined by the following equations (58) to (60).
Figure 2010141620

(暗号化)Zqの要素をランダムに選択し、選択した要素をrとする。Gqの要素である平文mを以下の(61)式〜(65)式により暗号化し、暗号文u1、u2、e、vを得る。ここでHはハッシュ関数である。

Figure 2010141620
(Encryption) Select an element of Zq at random, and let the selected element be r. The plaintext m that is an element of Gq is encrypted by the following formulas (61) to (65) to obtain ciphertexts u 1 , u 2 , e, and v. Here, H is a hash function.
Figure 2010141620

(復号)以下の(66)式によりaを計算する。

Figure 2010141620
(Decoding) a is calculated by the following equation (66).
Figure 2010141620

次に、秘密鍵を用いて以下の(67)式が成立するか検査する。

Figure 2010141620
Next, it is checked whether the following expression (67) is satisfied using the secret key.
Figure 2010141620

検査に合格したら、秘密鍵を用いて以下の(68)式により平文mを計算する。検査に不合格の場合、暗号文が無効である旨のメッセージを出して終了する。

Figure 2010141620
If the inspection passes, the plaintext m is calculated by the following equation (68) using the secret key. If the inspection fails, a message indicating that the ciphertext is invalid is issued and the processing is terminated.
Figure 2010141620

次に、第1の実施の形態(ノード50からノード51A、ノード51Bへと暗号化ピースが配信され、ノード51Bが鍵サーバ53へ復号鍵を要求する例)にこれを当てはめた場合について説明する。鍵サーバ53は、各ノードの公開鍵g1、g2、ci、di、hi(=g1 zi)にそれぞれ対応する秘密鍵x1,i、x2,i、y1,i、y2,i、ziを知っている。ここで、ci、di、hiは以下の(69)式〜(71)式により表される。

Figure 2010141620
Next, a case where this is applied to the first embodiment (an example in which an encrypted piece is distributed from the node 50 to the node 51A and the node 51B and the node 51B requests the decryption key from the key server 53) will be described. . The key server 53 includes secret keys x 1, i , x 2, i , y 1, i corresponding to the public keys g 1 , g 2 , c i , d i , h i (= g 1 zi ) of each node, respectively. , Y 2, i , know z i . Here, c i , d i , and h i are expressed by the following formulas (69) to (71).
Figure 2010141620

各ノードには公開鍵g1、g2、ci、di、hiに加え、秘密鍵x1,i、x2,i、y1,i、y2,iもそれぞれ与えられる。暗号文u1、u2、e、vの中で、上記(2)式のC1,0がu1、u2、vに、上記(3)式のC2,0がeに対応するとみなすことができる。ノード51Aの公開鍵をg1、g2、c1、d1、h1と表記する。配信開始ノード50は、乱数r0を生成し、以下の(72)式〜(78)式により暗号化を行う。

Figure 2010141620
In addition to the public keys g 1 , g 2 , c i , d i , h i , each node is also given a secret key x 1, i , x 2, i , y 1, i , y 2, i, respectively. In the ciphertexts u 1 , u 2 , e, v, C 1,0 in the above equation (2) corresponds to u 1 , u 2 , v, and C 2,0 in the above equation (3) corresponds to e. Can be considered. The public key of the node 51A is expressed as g 1 , g 2 , c 1 , d 1 , h 1 . The distribution start node 50 generates a random number r 0 and performs encryption according to the following formulas (72) to (78).
Figure 2010141620

ここで、u1,i、u2,i、ai、vi、ei、Yi、Kiとは、配信経路上でi番目に暗号化データの配信を仲介したノード51で計算されるデータを意味する。そして、i=0のときのデータu1,0、u2,0、a0、v0、e0、Y0、K0は、配信開始ノードであるノード50で計算されるデータを意味する。 Here, u 1, i , u 2, i , a i , v i , e i , Y i , and K i are calculated by the node 51 that mediates the distribution of the encrypted data i-th on the distribution path. Data. The data u 1,0 , u 2,0 , a 0 , v 0 , e 0 , Y 0 , K 0 when i = 0 means data calculated by the node 50 that is the distribution start node. .

尚、ノード50は、暗号化データをノード51Aに送信する際、自身のノードIDをノード51Aに送信しなくても良い。ノード51Bの公開鍵をg1、g2、c2、d2、h2と表記する。ノード51Aは、受信した暗号化データと自身の秘密鍵を用いて上記(67)式の検証を行う。検査に合格したら、乱数r1を生成し、以下の(79)式〜(85)式により暗号化を行う。検査に不合格の場合、暗号化データが無効である旨のメッセージを出して終了する。

Figure 2010141620
The node 50 does not have to transmit its node ID to the node 51A when transmitting the encrypted data to the node 51A. The public key of the node 51B is expressed as g 1 , g 2 , c 2 , d 2 , h 2 . The node 51A verifies the above equation (67) using the received encrypted data and its own private key. If the inspection is passed, a random number r 1 is generated, and encryption is performed according to the following equations (79) to (85). If the inspection fails, a message indicating that the encrypted data is invalid is issued and the process ends.
Figure 2010141620

ノード51Aは、暗号化データをノード51Bに送信する際、自身のノードIDをノード51Bに送信する。ノード51Bは、復号鍵要求メッセージを鍵サーバ53に送信する際、ノード51AのノードIDと自身のノードIDとをノードID列として鍵サーバ53に送信する。ノード51Bからu1,0、u1,1及びノードID列を受信した鍵サーバ53は、以下の(86)式、(87)式により復号鍵を計算し、復号鍵D、D’をノード51Bへ送信する。

Figure 2010141620
When the node 51A transmits the encrypted data to the node 51B, the node 51A transmits its own node ID to the node 51B. When the node 51B transmits the decryption key request message to the key server 53, the node 51B transmits the node ID of the node 51A and its own node ID as a node ID string to the key server 53. The key server 53 that has received u 1,0 , u 1,1 and the node ID string from the node 51B calculates the decryption key according to the following equations (86) and (87), and uses the decryption keys D and D ′ as the nodes. To 51B.
Figure 2010141620

ノード51Bは、u1,0、u1,1及びノードID列に加えてu2,1、e1、v1を鍵サーバ53に送信しても良い。この場合、鍵サーバ53においても上記(67)式の検証を行う。すなわち、鍵サーバ53は、受信した暗号化データとノード51Bの秘密鍵を用いて(67)式の検証を行う。検査に合格したら、復号鍵D、D’をノード51Bへ送信する。検査に不合格の場合、暗号化データが無効である旨のメッセージを出して終了する。ノード51Bにおける復号は以下の(88)式、(89)式により行われる。

Figure 2010141620
The node 51B may transmit u 2,1 , e 1 , v 1 to the key server 53 in addition to u 1,0 , u 1,1 and the node ID string. In this case, the key server 53 also verifies the above equation (67). That is, the key server 53 performs verification of the expression (67) using the received encrypted data and the secret key of the node 51B. If the inspection passes, the decryption keys D and D ′ are transmitted to the node 51B. If the inspection fails, a message indicating that the encrypted data is invalid is issued and the process ends. Decoding in the node 51B is performed by the following equations (88) and (89).
Figure 2010141620

<変形例11>
第1の実施の形態におけるピース暗号化方式は、ElGamal暗号方式が応用されているとみなすことができるが、これに限らず、RSA暗号方式をピース暗号化方式に応用しても良い。
<Modification 11>
The piece encryption method in the first embodiment can be regarded as applying the ElGamal encryption method. However, the present invention is not limited to this, and the RSA encryption method may be applied to the piece encryption method.

始めに、RSA暗号方式の概要を説明する。
(鍵生成)素数p,qを生成し、N=pqを計算する。次に、(p−1)(q−1)との最大公約数が1となるeをランダムに選択する。そして、edo1(mod (p−1)(q−1))となるdを計算する。ここで、aob(mod N)とは、整数a,bの差a−bが0または正整数Nの倍数であることを表す。公開鍵は(e,N)であり、それに対応する秘密鍵はdである。
First, an outline of the RSA encryption method will be described.
(Key generation) Generate prime numbers p and q, and calculate N = pq. Next, e in which the greatest common divisor with (p-1) (q-1) is 1 is selected at random. Then, d which becomes edo1 (mod (p-1) (q-1)) is calculated. Here, aob (mod N) represents that the difference a−b between the integers a and b is 0 or a multiple of the positive integer N. The public key is (e, N) and the corresponding private key is d.

(暗号化)公開鍵を用いて、平文m(mは0≦m≦N−1を満たす整数)を以下の(90)式により暗号化し、暗号文Cを得る。

Figure 2010141620
(Encryption) Using the public key, plaintext m (m is an integer satisfying 0 ≦ m ≦ N−1) is encrypted by the following equation (90) to obtain ciphertext C.
Figure 2010141620

(復号)秘密鍵dを用いて以下の(91)式により平文mを計算する。

Figure 2010141620
(Decryption) The plaintext m is calculated by the following equation (91) using the secret key d.
Figure 2010141620

次に、第1の実施の形態(ノード50からノード51A、ノード51Bへと暗号化ピースが配信され、ノード51Bが鍵サーバ53へ復号鍵を要求する例)にこれを当てはめた場合について説明する。各ノードに与えられえる公開鍵を(ei,N)とする。鍵サーバ53は、各ノードに与えられえる公開鍵に対応する秘密鍵di(eiio1(mod (p−1)(q−1)))を全て保持している。また、鍵サーバ53は、p,qの値を知っている。配信開始ノード50は、公開鍵e0を用いて、以下の(92)式によりmを暗号化する。ここで、Ciとは、配信経路上でi番目に暗号化データの配信を仲介したノード51で計算される暗号化ピースを意味する。そして、i=0のときの暗号化ピースC0は、配信開始ノードであるノード50で計算される暗号化ピースを意味する。

Figure 2010141620
Next, a case where this is applied to the first embodiment (an example in which an encrypted piece is distributed from the node 50 to the node 51A and the node 51B and the node 51B requests the decryption key from the key server 53) will be described. . The public key that can be given to each node is (e i, N). The key server 53 holds all the secret keys d i (e i d i o1 (mod (p−1) (q−1))) corresponding to the public keys that can be given to each node. The key server 53 knows the values of p and q. The distribution start node 50 encrypts m by the following equation (92) using the public key e 0 . Here, C i means an encrypted piece calculated by the node 51 that mediates the distribution of encrypted data i-th on the distribution path. The encrypted piece C 0 when i = 0 means an encrypted piece calculated by the node 50 that is the distribution start node.
Figure 2010141620

ノード50は、自身のノードID「ID#0」と暗号化ピースC0とをノード51Aに送信する。ノード51Aは、公開鍵e1を用いて、以下の(93)式によりC0をさらに暗号化する。

Figure 2010141620
The node 50 transmits its node ID “ID # 0” and the encrypted piece C 0 to the node 51A. The node 51A further encrypts C 0 by the following equation (93) using the public key e 1 .
Figure 2010141620

ノード51Aは、ノードID列「ID#0,ID#1」と暗号化ピースC1とをノード51Bに送信する。ノード51Bは、ノード51Aから受信したノードID列「ID#0,ID#1」を含む復号鍵要求メッセージを鍵サーバ53へ送信する。鍵サーバ53は、以下の(94)式により復号鍵Dを計算する。

Figure 2010141620
Node 51A transmits the node ID column "ID # 0, ID # 1" and the encrypted piece C 1 to node 51B. The node 51B transmits a decryption key request message including the node ID string “ID # 0, ID # 1” received from the node 51A to the key server 53. The key server 53 calculates the decryption key D by the following equation (94).
Figure 2010141620

ノード51Bにおける復号は以下の(95)式により行われる。

Figure 2010141620
Decoding at the node 51B is performed by the following equation (95).
Figure 2010141620

<変形例12>
第1の実施の形態においては、鍵サーバ53が各ノードの公開鍵に対応する秘密鍵xiをそれぞれ保持する例を挙げたが、これに限らず、各ノードのノードID「ID#i」から秘密鍵xiを導出するようにして、導出アルゴリズム(例えば以下の(96)式で表される関数F)のみ記憶しておいても良い。
i=F(ID#i, Kmaster) ・・・(96)
<Modification 12>
In the first embodiment, the key server 53 holds the secret key x i corresponding to the public key of each node. However, the present invention is not limited to this, and the node ID “ID # i” of each node is used. Only the derivation algorithm (for example, the function F represented by the following equation (96)) may be stored so that the secret key x i is derived from.
x i = F (ID # i, Kmaster) (96)

関数Fとしては、例えば、以下の(97)式、(98)式、及び(99)式のいずれを用いてもよい。上記(97)式、(98)式、及び(99)式では、xに「ID#i」が代入され、yに鍵サーバ53の秘密鍵「Kmaster」が代入される。

Figure 2010141620
F(x,y)=H(x || y) ・・・(99) As the function F, for example, any of the following expressions (97), (98), and (99) may be used. In the above equations (97), (98), and (99), “ID # i” is substituted for x, and the secret key “Kmaster” of the key server 53 is substituted for y.
Figure 2010141620
F (x, y) = H (x || y) (99)

(97)式のEは、暗号化関数を表し、E(Key)[X]は、XがKeyで暗号化されていることを表す。(98)式のDは、復号関数を表し、D(Key)[X]は、XがKeyで復号されていることを表す。つまり、‘C=D(Key)[E(Key)[C]]’である。(99)式のHは、ハッシュ関数を表し、||は、データの連結を表す。このようにすれば、鍵サーバ53において各ノードの公開鍵に対応する秘密鍵を記憶しておく必要がなくなり、鍵サーバ53での記憶容量を節約できる。   In Expression (97), E represents an encryption function, and E (Key) [X] represents that X is encrypted with Key. In Expression (98), D represents a decryption function, and D (Key) [X] represents that X is decrypted with Key. That is, 'C = D (Key) [E (Key) [C]]'. In Expression (99), H represents a hash function, and || represents data concatenation. In this way, it is not necessary to store the secret key corresponding to the public key of each node in the key server 53, and the storage capacity in the key server 53 can be saved.

第1の実施の形態にかかるデータ配信システムの構成を示す図である。It is a figure which shows the structure of the data delivery system concerning 1st Embodiment. 同実施の形態にかかるノード50の機能的構成を例示する図である。It is a figure which illustrates the functional structure of the node 50 concerning the embodiment. 同実施の形態にかかるノード51の機能的構成を例示する図である。It is a figure which illustrates the functional structure of the node 51 concerning the embodiment. 同実施の形態にかかるノード50からノード51Aに送信される情報を模式的に示す図である。It is a figure which shows typically the information transmitted to the node 51A from the node 50 concerning the embodiment. 同実施の形態にかかるピースを模式的に示す図である。It is a figure which shows typically the piece concerning the embodiment. 同実施の形態にかかるノード51Aからノード51Bに送信される情報を模式的に示す図である。It is a figure which shows typically the information transmitted to the node 51B from the node 51A concerning the embodiment. 同実施の形態にかかるノード51Bから鍵サーバに送信される情報を模式的に示す図である。It is a figure which shows typically the information transmitted to the key server from the node 51B concerning the embodiment. 同実施の形態にかかる鍵サーバからノード51Bに送信される情報を模式的に示す図である。It is a figure which shows typically the information transmitted to the node 51B from the key server concerning the embodiment. 同実施の形態にかかる鍵サーバの機能的構成を例示する図である。It is a figure which illustrates the functional structure of the key server concerning the embodiment. 同実施の形態にかかる配信開始ノードであるノード50が行う配信処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the delivery process which the node 50 which is a delivery start node concerning the embodiment performs. 同実施の形態にかかるノード51がノード50又は他のノード51から暗号化ピースを受信する受信処理の手順を示すフローチャートである。4 is a flowchart showing a procedure of a reception process in which a node 51 according to the embodiment receives an encrypted piece from a node 50 or another node 51. 同実施の形態にかかる配信開始ノード以外のノード51が行う配信処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the delivery process which nodes 51 other than the delivery start node concerning the embodiment perform. 同実施の形態にかかるノード51が鍵サーバから復号鍵を取得しこれを用いて暗号化ピースを復号する復号処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the decoding process which the node 51 concerning the embodiment acquires a decoding key from a key server, and decodes an encryption piece using this. 同実施の形態にかかる鍵サーバがノード51からの鍵要求に応じて復号鍵を送信する鍵送信処理の手順を示すフローチャートである。4 is a flowchart showing a procedure of key transmission processing in which the key server according to the embodiment transmits a decryption key in response to a key request from a node 51. 同実施の形態にかかるピースを模式的に示す図である。It is a figure which shows typically the piece concerning the embodiment. 同実施の形態にかかるピースを模式的に示す図である。It is a figure which shows typically the piece concerning the embodiment. 同実施の形態にかかるピースを模式的に示す図である。It is a figure which shows typically the piece concerning the embodiment. 同実施の形態にかかるノード1851の機能的構成を例示する図である。It is a figure which illustrates the functional structure of the node 1851 concerning the embodiment. 同実施の形態にかかる復号鍵の格納形式を例示する図である。It is a figure which illustrates the storage format of the decryption key concerning the embodiment.

符号の説明Explanation of symbols

50,51,51A,51B ノード
53 鍵サーバ
500 固有情報格納部
501 乱数生成部
503 ピース暗号化部
504 ピース化部
505 データ送信部
506 送信要求受付部
510 固有情報格納部
511 乱数生成部
513 ピース暗号化部
514 データ受信部
515 データ送信部
516 送信要求受付部
517 データ格納部
518 送信要求送信部
519 鍵要求送信部
520 ピース復号部
530 秘密鍵格納部
531 データ受信部
532 復号鍵計算部
534 データ送信部
18521 復号鍵計算部
NT P2Pネットワーク
50, 51, 51A, 51B Node 53 Key server 500 Unique information storage unit 501 Random number generation unit 503 Piece encryption unit 504 Piece generation unit 505 Data transmission unit 506 Transmission request reception unit 510 Unique information storage unit 511 Random number generation unit 513 Piece encryption Generating unit 514 data receiving unit 515 data transmitting unit 516 transmission request receiving unit 517 data storing unit 518 transmission request transmitting unit 519 key request transmitting unit 520 piece decrypting unit 530 secret key storing unit 531 data receiving unit 532 decrypting key calculating unit 534 data transmission Part 18521 Decryption Key Calculation Part NT P2P Network

Claims (18)

データの一部であるピースを暗号化して送信する通信装置であって、
他の通信装置に割り当てられた第1暗号鍵によって暗号化されたピースである第1暗号化ピースと、前記他の通信装置を識別する第1装置識別情報と、を受信する受信手段と、
前記通信装置に割り当てられた第2暗号鍵を記憶する記憶手段と、
前記第2暗号鍵を用いて前記第1暗号化ピースを更に暗号化した第2暗号化ピースを生成する暗号化手段と、
前記第2暗号化ピースと、前記第1装置識別情報と、前記通信装置を識別する第2装置識別情報と、を送信する送信手段と、
を備えることを特徴とする通信装置。
A communication device that encrypts and transmits a piece that is part of data,
Receiving means for receiving a first encrypted piece which is a piece encrypted with a first encryption key assigned to another communication device, and first device identification information for identifying the other communication device;
Storage means for storing a second encryption key assigned to the communication device;
Encryption means for generating a second encrypted piece obtained by further encrypting the first encrypted piece using the second encryption key;
Transmitting means for transmitting the second encrypted piece, the first device identification information, and the second device identification information for identifying the communication device;
A communication apparatus comprising:
前記第1暗号化ピースは、複数の暗号鍵で暗号化されたピースを、暗号化に用いた複数の前記暗号鍵それぞれに対応する複数の秘密情報に基づいて算出される予め定められた個数の復号鍵で復号可能な暗号方式で定められた前記第1暗号鍵によって暗号化されており、
前記記憶手段は、前記暗号方式で定められた前記第2暗号鍵を記憶すること、
を特徴とする請求項1に記載の通信装置。
The first encrypted piece is a predetermined number of pieces calculated based on a plurality of pieces of secret information corresponding to each of the plurality of encryption keys used for encryption. Encrypted with the first encryption key determined by an encryption method that can be decrypted with a decryption key;
The storage means stores the second encryption key determined by the encryption method;
The communication apparatus according to claim 1.
前記受信手段は、前記第1暗号化ピースと、前記第1装置識別情報と、前記第1暗号化ピースを暗号化する際に当該他の通信装置によって算出された第1算出情報とを受信し、
その生成毎に異なり得る一時情報を生成し、前記一時情報に応じた値を有する第2算出情報を算出する算出手段をさらに備え、
前記暗号化手段は、前記一時情報と前記第2暗号鍵とを用いて前記第1暗号化ピースを更に暗号化した第2暗号化ピースを生成し、
前記送信手段は、前記第2暗号化ピースと、前記第1装置識別情報と、前記第2装置識別情報と、前記第1算出情報と、前記第2算出情報とを送信すること、
を特徴とする請求項1に記載の通信装置。
The receiving means receives the first encrypted piece, the first device identification information, and the first calculation information calculated by the other communication device when encrypting the first encrypted piece. ,
Further comprising: a calculation means for generating temporary information that can be different for each generation, and calculating second calculation information having a value corresponding to the temporary information;
The encryption means generates a second encrypted piece obtained by further encrypting the first encrypted piece using the temporary information and the second encryption key,
The transmission means transmits the second encrypted piece, the first device identification information, the second device identification information, the first calculation information, and the second calculation information;
The communication apparatus according to claim 1.
前記受信手段は、i個(iは1以上の自然数)の前記他の通信装置に割り当てられた前記第1暗号鍵y(0≦j≦i−1)で暗号化された前記第1暗号化ピースC2,i-1と、前記第1装置識別情報と、前記第1算出情報C1,i-1と、を受信し、
前記記憶手段は、前記暗号方式で定められた前記第2暗号鍵yiを記憶し、
前記算出手段は、前記一時情報riを生成し、前記一時情報riに応じた値を有する前記第2算出情報C1,iを以下の(1)式により算出し、
前記暗号化手段は、前記一時情報riと前記第2暗号鍵yiとを用いて前記第1暗号化ピースC2,i-1を更に暗号化した前記第2暗号化ピースC2,iを以下の(2)式により生成すること、
を特徴とする請求項3に記載の通信装置。
Figure 2010141620
(ただし、gは、Zp*={1,…,p−1}上の1のq乗根、p,qは素数、qはp−1を割り切る)
The receiving means includes the first cipher encrypted with the first cipher key y j (0 ≦ j ≦ i−1) assigned to i (i is a natural number of 1 or more) the other communication devices. Receiving the control piece C 2, i-1 , the first device identification information, and the first calculation information C 1, i-1 .
The storage means stores the second encryption key y i determined by the encryption method,
The calculating means, the generating the temporary information r i, the second calculation information C 1, i is calculated by the following formula (1) having a value corresponding to the temporary information r i,
Said encryption means, the temporary information r i and the second encryption key y i and the second encrypted piece C 2, which was further encrypting the first encrypted piece C 2, i-1 with i Is generated by the following equation (2):
The communication device according to claim 3.
Figure 2010141620
(Where g is the qth root of 1 on Zp * = {1,..., P−1}, p and q are prime numbers, and q is divisible by p−1)
前記受信手段は、i個(iは1以上の自然数)の前記他の通信装置に割り当てられた前記第1暗号鍵y(0≦j≦i−1)で暗号化された前記第1暗号化ピースC2,i-1と、前記第1装置識別情報と、前記第1算出情報C1,i-1と、を受信し、
前記記憶手段は、前記暗号方式で定められた前記第2暗号鍵yiを記憶し、
前記算出手段は、前記一時情報riを生成し、前記一時情報riに応じた値を有する前記第2算出情報C1,iを以下の(3)式により算出し、
前記暗号化手段は、前記一時情報riと前記第2暗号鍵yiとを用いて前記第1暗号化ピースC2,i-1を更に暗号化した前記第2暗号化ピースC2,iを以下の(4)式により生成すること、
を特徴とする請求項3に記載の通信装置。
Figure 2010141620
(ただし、Gは楕円曲線上のベースポイント、[A]xは楕円曲線上の点Aのx座標を表す)
The receiving means includes the first cipher encrypted with the first cipher key y j (0 ≦ j ≦ i−1) assigned to i (i is a natural number of 1 or more) the other communication devices. Receiving the control piece C 2, i-1 , the first device identification information, and the first calculation information C 1, i-1 .
The storage means stores the second encryption key y i determined by the encryption method,
The calculating means, the generating the temporary information r i, the second calculation information C 1, i is calculated by the following equation (3) having a value corresponding to the temporary information r i,
Said encryption means, the temporary information r i and the second encryption key y i and the second encrypted piece C 2, which was further encrypting the first encrypted piece C 2, i-1 with i Is generated by the following equation (4):
The communication device according to claim 3.
Figure 2010141620
(Where G is the base point on the elliptic curve, [A] x is the x coordinate of point A on the elliptic curve)
前記受信手段は、i個(iは1以上の自然数)の前記他の通信装置に割り当てられた前記第1暗号鍵y(0≦j≦i−1)で暗号化された前記第1暗号化ピースC2,i-1と、前記第1装置識別情報と、前記第1算出情報C1,i-1と、を受信し、
前記記憶手段は、前記暗号方式で定められた前記第2暗号鍵yiを記憶し、
前記算出手段は、前記一時情報riを生成し、前記一時情報riに応じた値を有する前記第2算出情報C1,iを以下の(1)式により算出し、
前記暗号化手段は、前記一時情報riと前記第2暗号鍵yiとを用いて前記第1暗号化ピースC2,i-1を更に暗号化した前記第2暗号化ピースC2,iを以下の(2)式により生成すること、
を特徴とする請求項3に記載の通信装置。
Figure 2010141620
(ただし、Plus(A, B)は、楕円曲線上の点Aと点Bとの、mod p(pは素数)上の長さ2のベクトルの加算、または、楕円曲線上の点Aと点Bとの点加算を表す)
The receiving means includes the first cipher encrypted with the first cipher key y j (0 ≦ j ≦ i−1) assigned to i (i is a natural number of 1 or more) the other communication devices. Receiving the control piece C 2, i-1 , the first device identification information, and the first calculation information C 1, i-1 .
The storage means stores the second encryption key y i determined by the encryption method,
The calculating means, the generating the temporary information r i, the second calculation information C 1, i is calculated by the following formula (1) having a value corresponding to the temporary information r i,
Said encryption means, the temporary information r i and the second encryption key y i and the second encrypted piece C 2, which was further encrypting the first encrypted piece C 2, i-1 with i Is generated by the following equation (2):
The communication device according to claim 3.
Figure 2010141620
(However, Plus (A, B) is the addition of a vector of length 2 on mod p (p is a prime number) between point A and point B on the elliptic curve, or point A and point on the elliptic curve. (Represents point addition with B)
前記受信手段は、i個(iは1以上の自然数)の前記他の通信装置に割り当てられた前記第1暗号鍵(g1,2,j,j,j)(0≦j≦i−1)で暗号化された前記第1暗号化ピースei-1と、前記第1装置識別情報と、前記第1算出情報(u1,i-1,2,i-1,vi-1)と、を受信し、
前記記憶手段は、前記暗号方式で定められた前記第2暗号鍵(g1,2,i,i,i)を記憶し、
前記暗号化手段は、前記一時情報riと前記第2暗号鍵(g1,2,i,i,i)とを用いて前記第1暗号化ピースei-1を更に暗号化した前記第2暗号化ピースeiを以下の(7)式により生成し、
前記算出手段は、前記一時情報riを生成し、前記一時情報riに応じた値を有する前記第2算出情報(u1,i,2,i,vi)を以下の(8)式〜(11)式により算出すること、
を特徴とする請求項3に記載の通信装置。
Figure 2010141620
(ただし、Hは予め定められたハッシュ関数を表す)
The receiving means includes the first encryption keys (g 1, g 2, c j, d j, h j ) (0 ≦ j) assigned to i (i is a natural number of 1 or more) the other communication devices. ≦ i−1), the first encrypted piece e i−1 , the first device identification information, and the first calculation information (u 1, i−1, u 2, i−1, v i-1 ), and receive
It said storage means, said second encryption key defined by the encryption method (g 1, g 2, c i, d i, h i) stores,
The encryption means further encrypts the first encrypted piece e i-1 using the temporary information r i and the second encryption key (g 1, g 2, c i, d i, h i ). The encrypted second encrypted piece e i is generated by the following equation (7):
The calculation means generates the temporary information r i and uses the second calculation information (u 1, i, u 2, i, v i ) having a value corresponding to the temporary information r i as the following (8): Calculating by the equation (11),
The communication device according to claim 3.
Figure 2010141620
(Where H represents a predetermined hash function)
前記受信手段は、i個(iは1以上の自然数)の前記他の通信装置に割り当てられた前記第1暗号鍵ejおよびN(0≦j≦i−1)で暗号化された前記第1暗号化ピースCi-1と、前記第1装置識別情報と、を受信し、
前記記憶手段は、前記暗号方式で定められた前記第2暗号鍵eiおよびNを記憶し、
前記暗号化手段は、前記第2暗号鍵eiおよびNを用いて前記第1暗号化ピースCi-1を更に暗号化した前記第2暗号化ピースCiを以下の(12)式により生成すること、
を特徴とする請求項1に記載の通信装置。
Figure 2010141620
(ただし、N=pq(p、qは素数)
The reception means, i pieces (i is a natural number of 1 or more) said encrypted with the first said assigned to other communication device encryption key e j and N (0 ≦ j ≦ i- 1) a 1 encrypted piece C i-1 and the first device identification information are received,
The storage means stores the second encryption keys e i and N determined by the encryption method,
Said encryption means is generated by the second encryption key e i and the first encrypted using the N pieces C i-1 further encrypted follows the second encrypted piece C i (12) Formula To do,
The communication apparatus according to claim 1.
Figure 2010141620
(However, N = pq (p and q are prime numbers)
前記受信手段は、前記第1暗号鍵によって一部が暗号化された前記第1暗号化ピースと、前記第1装置識別情報と、を受信し、
前記暗号化手段は、前記第2暗号鍵を用いて、前記第1暗号化ピースのうち前記第1暗号鍵によって暗号化された部分を更に暗号化した前記第2暗号化ピースを生成すること、
を特徴とする請求項1に記載の通信装置。
The receiving means receives the first encrypted piece partially encrypted with the first encryption key and the first device identification information;
The encryption means generates the second encrypted piece obtained by further encrypting a portion of the first encrypted piece encrypted by the first encryption key, using the second encryption key;
The communication apparatus according to claim 1.
前記受信手段は、前記第1暗号鍵によって暗号化された部分以外の部分が、前記暗号方式と異なる他の暗号方式によって暗号化された前記第1暗号化ピースと、前記第1装置識別情報と、を受信し、
前記暗号化手段は、前記第2暗号鍵を用いて、前記第1暗号化ピースのうち前記第1暗号鍵によって暗号化された部分を更に暗号化し、前記第1暗号化ピースのうち前記第1暗号鍵によって暗号化された部分以外の部分を前記他の暗号方式により更に暗号化した前記第2暗号化ピースを生成すること、
を特徴とする請求項9に記載の通信装置。
The receiving means includes the first encrypted piece in which a portion other than the portion encrypted by the first encryption key is encrypted by another encryption method different from the encryption method, the first device identification information, Receive,
The encryption means further encrypts a portion of the first encrypted piece encrypted by the first encryption key using the second encryption key, and the first encrypted piece includes the first encrypted piece. Generating the second encrypted piece obtained by further encrypting a part other than the part encrypted by the encryption key by the other encryption method;
The communication device according to claim 9.
前記送信手段は、さらに、前記第1暗号化ピースを復号するための復号鍵を要求する、前記第1装置識別情報を含む鍵要求をサーバ装置へ送信し、
前記受信手段は、さらに、前記第1暗号化ピースを復号するための復号鍵を前記サーバ装置から受信し、
受信された前記復号鍵を用いて前記第1暗号化ピースを復号する復号手段をさらに備えたこと、
を特徴とする請求項1に記載の通信装置。
The transmitting means further transmits a key request including the first device identification information to request a decryption key for decrypting the first encrypted piece to the server device,
The receiving means further receives a decryption key for decrypting the first encrypted piece from the server device,
Further comprising decryption means for decrypting the first encrypted piece using the received decryption key;
The communication apparatus according to claim 1.
暗号化されたピースである暗号化ピースを復号するための復号鍵を要求する鍵要求であって、前記暗号化ピースの配信を仲介した前記通信装置の前記装置識別情報を含む前記鍵要求を前記通信装置から受信する受信手段と、
前記鍵要求に含まれる各前記装置識別情報を用いて前記復号鍵を生成する鍵生成手段と、
生成された前記復号鍵を、前記鍵要求を送信した前記通信装置に送信する送信手段と、
を備えることを特徴とするサーバ装置。
A key request for requesting a decryption key for decrypting an encrypted piece that is an encrypted piece, the key request including the device identification information of the communication device mediating delivery of the encrypted piece Receiving means for receiving from the communication device;
Key generation means for generating the decryption key using each device identification information included in the key request;
Transmitting means for transmitting the generated decryption key to the communication device that transmitted the key request;
A server device comprising:
データの一部であるピースを暗号化して送信する複数の通信装置のそれぞれに割り当てられた秘密情報と、前記通信装置それぞれに割り当てられた装置識別情報とを各々対応付けて記憶する記憶手段をさらに備え、
前記鍵生成手段は、前記鍵要求に含まれる各前記装置識別情報に対応付けられて記憶されている前記秘密情報を用いて前記復号鍵を生成すること、
を特徴とする請求項12に記載のサーバ装置。
Storage means for storing secret information assigned to each of a plurality of communication devices that encrypt and transmit a piece that is a part of data and device identification information assigned to each of the communication devices in association with each other Prepared,
The key generation means generates the decryption key using the secret information stored in association with each device identification information included in the key request;
The server device according to claim 12.
前記暗号化ピースは、複数の暗号鍵で暗号化されたピースを、暗号化に用いた複数の暗号鍵それぞれに対応する複数の前記秘密情報に基づいて算出される予め定められた個数の前記復号鍵で復号可能な暗号方式で定められた暗号鍵によって暗号化されており、
前記鍵生成手段は、前記鍵要求に含まれる前記装置識別情報それぞれに対応付けられて記憶されている前記秘密情報を用いて前記個数の前記復号鍵を生成すること、
を特徴とする請求項12又は13に記載のサーバ装置。
The encrypted piece is a predetermined number of pieces of decryption calculated based on a plurality of pieces of secret information corresponding to a plurality of encryption keys used for encryption of pieces encrypted with a plurality of encryption keys. It is encrypted with an encryption key defined by an encryption method that can be decrypted with a key,
The key generation means generates the number of the decryption keys using the secret information stored in association with each of the device identification information included in the key request;
The server device according to claim 12 or 13, characterized in that:
前記受信手段は、その生成毎に異なり得る一時情報と前記通信装置に割り当てられた暗号鍵とに基づいて算出される算出情報をさらに含む前記鍵要求を前記通信装置から受信し、
前記鍵生成手段は、前記鍵要求に含まれる各前記装置識別情報に対応付けられて記憶されている前記秘密情報を用いて生成した前記復号鍵を、前記算出情報を用いて暗号化し、
前記送信手段は、暗号化した前記復号鍵を前記鍵要求を送信した前記通信装置に送信すること、
を特徴とする請求項12又は13に記載のサーバ装置。
The receiving means receives from the communication device the key request further including calculation information calculated based on temporary information that may be different for each generation and an encryption key assigned to the communication device;
The key generation means encrypts the decryption key generated using the secret information stored in association with each device identification information included in the key request, using the calculation information,
The transmitting means transmits the encrypted decryption key to the communication device that transmitted the key request;
The server device according to claim 12 or 13, characterized in that:
データの一部であるピースを暗号化して送信する通信装置で実行される通信方法であって、
受信手段が、他の通信装置に割り当てられた第1暗号鍵によって暗号化されたピースである第1暗号化ピースと、前記他の通信装置を識別する第1装置識別情報と、を受信する受信ステップと、
暗号化手段が、記憶手段に記憶された、前記通信装置に割り当てられた第2暗号鍵を用いて前記第1暗号化ピースを更に暗号化した第2暗号化ピースを生成する暗号化ステップと、
送信手段が、前記第2暗号化ピースと、前記第1装置識別情報と、前記通信装置を識別する第2装置識別情報と、を送信する送信ステップと、
を備えることを特徴とする通信方法。
A communication method executed by a communication device that encrypts and transmits a piece that is a part of data,
Reception in which the receiving means receives a first encrypted piece that is a piece encrypted with a first encryption key assigned to another communication device, and first device identification information for identifying the other communication device. Steps,
An encryption step for generating a second encrypted piece obtained by further encrypting the first encrypted piece by using a second encryption key assigned to the communication device stored in the storage unit;
A transmission step of transmitting the second encrypted piece, the first device identification information, and the second device identification information for identifying the communication device;
A communication method comprising:
データの一部であるピースを暗号化して送信する通信装置を、
他の通信装置に割り当てられた第1暗号鍵によって暗号化されたピースである第1暗号化ピースと、前記他の通信装置を識別する第1装置識別情報と、を受信する受信手段と、
前記通信装置に割り当てられた第2暗号鍵を記憶する記憶手段と、
前記第2暗号鍵を用いて前記第1暗号化ピースを更に暗号化した第2暗号化ピースを生成する暗号化手段と、
前記第2暗号化ピースと、前記第1装置識別情報と、前記通信装置を識別する第2装置識別情報と、を送信する送信手段と、
として機能させるための通信プログラム。
A communication device that encrypts and transmits a piece that is a part of data,
Receiving means for receiving a first encrypted piece which is a piece encrypted with a first encryption key assigned to another communication device, and first device identification information for identifying the other communication device;
Storage means for storing a second encryption key assigned to the communication device;
Encryption means for generating a second encrypted piece obtained by further encrypting the first encrypted piece using the second encryption key;
Transmitting means for transmitting the second encrypted piece, the first device identification information, and the second device identification information for identifying the communication device;
Communication program to function as
コンピュータを、
暗号化されたピースである暗号化ピースを復号するための復号鍵を要求する鍵要求であって、前記暗号化ピースの配信を仲介した前記通信装置の前記装置識別情報を含む前記鍵要求を前記通信装置から受信する受信手段と、
前記鍵要求に含まれる各前記装置識別情報を用いて前記復号鍵を生成する鍵生成手段と、
生成された前記復号鍵を、前記鍵要求を送信した前記通信装置に送信する送信手段と、
として機能させるための通信プログラム。
Computer
A key request for requesting a decryption key for decrypting an encrypted piece that is an encrypted piece, the key request including the device identification information of the communication device mediating delivery of the encrypted piece Receiving means for receiving from the communication device;
Key generation means for generating the decryption key using each device identification information included in the key request;
Transmitting means for transmitting the generated decryption key to the communication device that transmitted the key request;
Communication program to function as
JP2008316308A 2008-12-11 2008-12-11 Communications apparatus, server apparatus, communications method, and communications program Pending JP2010141620A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008316308A JP2010141620A (en) 2008-12-11 2008-12-11 Communications apparatus, server apparatus, communications method, and communications program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008316308A JP2010141620A (en) 2008-12-11 2008-12-11 Communications apparatus, server apparatus, communications method, and communications program

Publications (1)

Publication Number Publication Date
JP2010141620A true JP2010141620A (en) 2010-06-24

Family

ID=42351348

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008316308A Pending JP2010141620A (en) 2008-12-11 2008-12-11 Communications apparatus, server apparatus, communications method, and communications program

Country Status (1)

Country Link
JP (1) JP2010141620A (en)

Similar Documents

Publication Publication Date Title
US8429408B2 (en) Masking the output of random number generators in key generation protocols
JP5422053B2 (en) Encryption system, encryption communication method, encryption device, key generation device, decryption device, content server device, program, storage medium
JP2010161826A (en) Certificate-based encryption, and public key infrastructure
WO2013145796A1 (en) Re-encrypted text verification program, re-encryption device, and re-encryption system
US9813386B2 (en) Cooperation service providing system and server apparatus
CN111953479B (en) Data processing method and device
JP2006109107A (en) Signature formation method, signature verification method, public key distribution method, and information processing apparatus
JP2023101776A (en) Computer-implemented system and method for advanced security, fast encryption and transmission of data
US20200235915A1 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
JP2010124071A (en) Communication device, communication method, and program
WO2010067660A1 (en) Communication apparatus, communication method and program
KR101533950B1 (en) Broadcast encryption method and system
JP6294882B2 (en) Key storage device, key storage method, and program thereof
JP2009302861A (en) System of transferring authority for decoding encrypted text
JP4758110B2 (en) Communication system, encryption apparatus, key generation apparatus, key generation method, restoration apparatus, communication method, encryption method, encryption restoration method
CA2742530C (en) Masking the output of random number generators in key generation protocols
JP2023505629A (en) Method and system for verifiable identity-based encryption (VIBE) using certificateless authentication encryption (CLAE)
JP4485122B2 (en) Public key cryptosystem, signature system, cryptographic communication system, secret key generator, public key generator, and computer program
JP5097102B2 (en) Hierarchical ID-based encryption device and decryption device, method thereof, program, and recording medium
JP4213975B2 (en) Personal information protection method, product ordering terminal, product order receiving server, personal information transmission program, and personal information reception program
JP2010113181A (en) Key management method, key generation method, encryption processing method, decryption processing method, access control method, communication network system
JP4612027B2 (en) Signature system
JP2010272899A (en) Key generating system, key generating method, blind server device, and program
JP2010141620A (en) Communications apparatus, server apparatus, communications method, and communications program
JP4875481B2 (en) Encrypted information generating device and program thereof, secret key generating device and program thereof, distribution content generating device and program thereof, and content decrypting device and program thereof