WO2010067660A1 - 通信装置、通信方法及びプログラム - Google Patents

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

Info

Publication number
WO2010067660A1
WO2010067660A1 PCT/JP2009/067810 JP2009067810W WO2010067660A1 WO 2010067660 A1 WO2010067660 A1 WO 2010067660A1 JP 2009067810 W JP2009067810 W JP 2009067810W WO 2010067660 A1 WO2010067660 A1 WO 2010067660A1
Authority
WO
WIPO (PCT)
Prior art keywords
encrypted
piece
information
node
temporary
Prior art date
Application number
PCT/JP2009/067810
Other languages
English (en)
French (fr)
Inventor
竜一 小池
達之 松下
松本 英樹
晋爾 山中
健太郎 梅澤
加藤 拓
外山 春彦
上林 達
伊藤 聡
Original Assignee
株式会社東芝
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 株式会社東芝 filed Critical 株式会社東芝
Publication of WO2010067660A1 publication Critical patent/WO2010067660A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/033Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation

Definitions

  • the present invention relates to a communication apparatus, a communication method, and a program.
  • a delivery method for delivering data using P2P does not require a data delivery server having a huge storage and a large communication bandwidth, and is a delivery method with a large cost advantage. is there.
  • P2P data delivery has a great merit, but on the other hand, there is concern about security from the viewpoint of data security such as copyright protection.
  • the following is assumed as a general premise when considering data security such as copyright protection. It means that not all terminal equipment or nodes are hacked. If this premise is denied, the terminal device can not hold the data to be kept confidential or can not perform the process to be kept confidential, and most security techniques and devices for securing security can not be established.
  • P2P distribution there is a content distribution system in which encrypted data is distributed, and a node receiving the distribution of data acquires a decryption key for decrypting the data (referred to as distribution data).
  • distribution data A major problem in data security in P2P delivery of such a system is that the combination of the delivery data and the decryption key for decrypting the delivery data is single or small in number. In this case, it is assumed that a node is hacked and the decryption key is revealed. In this case, this decryption key can be used to decrypt most of the distribution data.
  • One way to solve this problem is to personalize the distribution data for each node.
  • the method of Marking shown in Patent Document 1 is known.
  • the distribution data is divided into pieces, and encryption is performed using a key matrix to generate encrypted pieces.
  • a piece group of encrypted pieces encrypted in a matrix form is generated.
  • Such pieces are distributed via the P2P network.
  • One node connected to the P2P network will obtain one encrypted piece from among a plurality of encrypted pieces encrypted in a matrix for each piece.
  • it is expected that the combination of encrypted pieces in which each piece constituting the delivery data is encrypted is statistically unique for each node.
  • the present invention has been made in view of the above, and it is possible to make the combination of each encrypted piece distributed in the content distribution system unique for each communication device, and to provide a degree of freedom in system construction. It is an object of the present invention to provide an improved communication device, communication method and program.
  • the present invention solves the above-mentioned problems, and the present invention is a communication device that encrypts and transmits a piece that is a part of data, the first encrypted piece being a piece encrypted by another communication device;
  • Receiving means for receiving the first device identification information assigned to the other communication device and the first temporary information generated when the other communication device encrypts, the first encrypted piece, the first encrypted piece, 1) A first storage unit that stores device identification information and the first temporary information in association with each other, and a second storage unit that stores second device identification information assigned to the communication device
  • the first generation means for generating the second temporary information to be obtained, the second generation means for generating the temporary symmetric key using the second temporary information, and the first portion to be encrypted among the first encrypted pieces are determined Means for determining the temporary symmetric key, and Encryption means for further encrypting the first portion and outputting a second encrypted piece, the second encrypted piece, the first device identification information, the second device identification information, and the second device identification information It is characterized by comprising: transmission
  • the present invention is a communication device for receiving a piece that is a part of data, the encrypted piece being a piece encrypted by another communication device, and a device assigned to the other communication device.
  • First receiving means for receiving identification information and temporary information generated when the other communication device encrypts a piece, and associating the received encrypted piece, the device identification information, and the temporary information And requesting a decryption key for decrypting the encrypted piece, and a key request including the device identification information and the temporary information stored in association with the encrypted piece.
  • the combination of encrypted pieces to be distributed in the content distribution system can be made unique for each communication device, and the degree of freedom in system construction can be improved.
  • FIG. 1 is a diagram showing a configuration of a data delivery system according to a first embodiment.
  • FIG. 6 is a diagram illustrating a functional configuration of a node 50.
  • FIG. 6 is a diagram illustrating a functional configuration of a node 51.
  • FIG. 7 schematically shows information transmitted from the node 50 to the node 51A. The figure which shows typically the information transmitted to node 51 B from node 51A.
  • FIG. 10 schematically shows information transmitted from the node 51B to the key server 53. The figure which shows typically the information transmitted to the node 51B from the key server 53.
  • FIG. The figure which illustrates the functional composition of the key server 53. 6 is a flowchart showing a procedure of distribution processing performed by the node 50 which is a distribution start node.
  • FIG. 14 is a flowchart showing a detailed procedure of processing in which the node 51 performs reversible conversion in step S27 of FIG. 13; FIG. The figure which shows typically the information which a node transmits.
  • FIG. 18 is a flowchart showing a detailed procedure of processing in which a node 51 decrypts an encrypted piece in step S53 of FIG. 17;
  • 5 is a flowchart showing a procedure of key transmission processing in which a key server 53 transmits a decryption key in response to a key request from a node 51;
  • FIG. 1 is a diagram showing the configuration of a data delivery system according to the present embodiment.
  • a plurality of nodes 50, 51A to 51B are connected via a P2P network NT.
  • other nodes may also be connected via the P2P network NT.
  • Each of the nodes 50 and 51A to 51B is connected to the key server 53.
  • Each of the nodes 50 and 51A to 51B holds device identification information uniquely assigned to each node, and a secret key as assignment information uniquely assigned to each node.
  • 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, such as a node ID.
  • the node IDs assigned to the nodes 50 and 51A to 51B are ID # 0, ID # 1 and ID # 2, respectively, and the secret keys are s_0, s_1 and s_2.
  • the node 50 is a distribution start node which is a base point of data distribution, and holds data to be distributed (referred to as distribution data).
  • the distribution data may be either plaintext or already encrypted ciphertext.
  • the delivery data may be video data protected by some digital right management (DRM) system as encryption.
  • DRM digital right management
  • the key server 53 holds a secret key assigned to each of the nodes 50 and 51A to 51B.
  • the nodes 51A to 51B are simply referred to as the node 51 when it is not necessary to distinguish them.
  • Each device includes a control device such as a central processing unit (CPU) that controls the entire device, a storage device such as a read only memory (ROM) or a random access memory (RAM) that stores various data and various programs, and various 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 these, resulting in a hardware configuration that uses a normal computer. ing.
  • a display device for displaying information
  • an input device such as a keyboard and a mouse for receiving user's instruction input
  • a communication I / F interface
  • FIG. 2 is a diagram illustrating the functional configuration of node 50.
  • the node 50 includes a unique information storage unit 500, a random number generation unit 501, a temporary symmetric key generation unit 502, a piece encryption unit 503, a fragmentation unit 504, a data transmission unit 505, and a transmission request reception unit 506.
  • the unique information storage unit 500 is secured as a storage area in an external storage device such as the HDD of the node 50, for example.
  • the entity of the random number generation unit 501, the temporary symmetric key generation unit 502, the fragmentation unit 504, the piece encryption unit 503, the data transmission unit 505, and the transmission request reception unit 506 is the program execution of the CPU of the node 50. Sometimes it is generated on a storage device such as a RAM. In the external storage device of the node 50, distribution data is stored in advance.
  • the unique information storage unit 500 stores the node ID and the secret key assigned to the node 50.
  • the fragmentation unit 504 divides the distribution data into a plurality of pieces. Although the data size at the time of dividing
  • the transmission request receiving unit 506 receives, from another node 51, a piece request for requesting a piece divided by the fragmentation unit 504. When the transmission request receiving unit 506 receives a piece request, the random number generation unit 501 generates a random number, which is temporary information that may differ for each occurrence.
  • the temporary information may be a value that can be different each time it is generated by a node, and is, for example, a random number or a time stamp, a communication sequence number, a value of a node-specific counter, or a Time Variant Parameter.
  • the Time Variant Parameter is described, for example, in the document ISO9798-1.
  • the function F is a one-way function or a common key encryption or a pseudo random number generator, and even if it knows a secret key or random number which is an input value, it can not deduce a temporary symmetric key which is an output value from them. is there.
  • the temporary symmetric key is the function F, and the relationship between the input value and the output value of the function F may be uniquely determined.
  • it may be a hash function such as SHA-1 or SHA256, AES, Hierocrypt Or a pseudo-random number generator such as Mersenne twister.
  • a value obtained by combining the random number and the secret key may be input to the hash function.
  • a random number may be encrypted with a secret key, or a secret key may be encrypted with a random number.
  • the random number may be decrypted by the secret key, or the secret key may be decrypted by the random number.
  • a value obtained by combining a random number and a secret key may be input to the pseudo random number generator.
  • the piece encryption unit 503 encrypts the piece using the temporary symmetric key generated by the temporary symmetric key generation unit 502, and outputs an encrypted piece.
  • the temporary symmetric key is also an encryption key used for encryption, and also serves as a decryption key for decrypting encryption performed on an encrypted piece.
  • the data transmission unit 505 outputs the node ID stored in the unique information storage unit 500, the random number generated by the random number generation unit 501, and the piece encryption unit 503 to the other node 51 that has transmitted the piece request. Send the encrypted piece.
  • 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 temporary symmetric key generation unit 512, a piece encryption unit 513, a data reception unit 514, a data transmission unit 515, and a transmission request reception unit 516.
  • the unique information storage unit 510 and the data storage unit 517 are secured as storage areas in an external storage device such as an HDD of the node 51, for example.
  • the substance of 520 and the encryption part determination unit 521 is generated on a storage device such as a RAM when the CPU of the node 51 executes a program.
  • the unique information storage unit 510 stores the node ID and the secret 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 of the node 50 described above.
  • the transmission request transmission unit 518 transmits a piece request requesting a piece to the node 50 or another node 51.
  • the data reception unit 514 mediates the transmission of the encrypted piece whose piece is encrypted and the transmission of the encrypted piece from the node 50 or other node 51 which is the other party to which the transmission request transmission unit 518 has transmitted the piece request.
  • a node ID sequence including each node ID assigned to one other node 50, 51 and a random number sequence including each random number generated by the other node 50, 51 are received.
  • the data storage unit 517 associates and stores the node ID sequence, the random number sequence, and the encrypted piece received by the data reception unit 514.
  • the random number generation unit 511 generates a random number.
  • the temporary symmetric key generation unit 512 generates a temporary symmetric key by the above-described function F using the random number generated by the random number generation unit 511 and the secret key stored in the unique information storage unit 510.
  • the encryption part determination unit 521 determines a part to be encrypted (referred to as an encryption part) among the encryption pieces to be transmitted.
  • the encryption part is any part obtained by dividing the encryption piece to be transmitted into a plurality of pieces by the piece encryption unit 513 described below.
  • the encryption part determination unit 521 determines the number of times of encryption performed on all or part of the encryption pieces to be transmitted (referred to as the number of times of encryption), and determines the number of times of encryption and the number of times of encryption.
  • the encryption part is determined according to the number of divisions.
  • the number of times of encryption is the same as the number of node IDs included in the node ID sequence stored in the data storage unit 517 in association with the encrypted piece to be transmitted, the number is calculated by calculating this number.
  • the piece encryption unit 513 divides the encrypted piece to be transmitted into a plurality of pieces, and uses the temporary symmetric key generated by the temporary symmetric key generation unit 512 to determine the encrypted portion determination unit 521 among the encrypted pieces to be transmitted. Further encrypts the encrypted part determined by the unit and, based on the number of times of encryption, performs a reversible conversion on a part of the encrypted piece to be transmitted other than the encrypted part, to obtain a new encrypted piece Output
  • the data transmission unit 515 transmits the following data to the other node 51 that has transmitted the piece request received by the transmission request reception unit 516.
  • the data is added to the new node ID sequence including the node ID stored in the unique information storage unit 510 in addition to the node ID sequence stored in the data storage unit 517 in association with the encrypted piece, and the encrypted piece A new random number sequence including the random number generated by the random number generation unit 511 in addition to the random number sequence stored in the data storage unit 517 in association with one another and a new encrypted piece output from the piece encryption unit 513. If the encrypted piece is not stored in the data storage unit 517, the piece encryption unit 513 does not output the encrypted piece even if the transmission request reception unit 516 receives the piece request, and the data transmission unit 515 does not send the encrypted piece.
  • the node ID sequence, the random number sequence, and the encrypted piece transmitted from the nodes 50 and 51 will be specifically described. Although one node ID and one random number transmitted together with one encrypted piece from the node 50 are respectively one, for convenience of description, these may be described as a node sequence and a random number sequence here. .
  • the case where the encrypted piece is transmitted from the node 50 to the node 51A and further from the node 51A to the node 51B as a distribution path of the encrypted piece and the key request is transmitted from the node 51B to the key server 53 will be described.
  • FIG. 4 is a diagram schematically showing information transmitted from the node 50 to the node 51A.
  • the node 51A stores the node ID ID # 0, the random number r_0, and the encrypted piece E (k_0) P in the data storage unit 517 in association with each other.
  • the data storage unit 517 stores each node ID sequence and each random number sequence in a state in which the correspondence between the node ID and the random number generated by the node to which the node ID is generated is held and the distributed order is held.
  • the node 51A transmits an encrypted piece for the piece P in response to a piece request from the node 51B
  • the node 51A generates a random number r_1, and generates a temporary symmetric key k_1 using this and a secret key s_1
  • E (k_1) E (k_0) P denotes a temporary symmetric key k_0, k_1 in which all or a part of the piece P is multiplexed and encrypted in order.
  • the node 51A is allocated to the node 51B, in addition to the node ID ID # 0 stored in the data storage unit 517 and allocated to the node 50, stored in the unique information storage unit 510.
  • the random number r_0 stored in the data storage unit 517, the random number r_1 generated by itself and the encrypted piece E (k_1) E (k_0) P are transmitted.
  • FIG. 5 is a diagram schematically showing information transmitted from the node 51A to the node 51B.
  • the node 51B associates the node ID string ID # 0, ID # 1, the random number sequence r_0, r_1 and the encrypted piece E (k_1) E (k_0) P and stores them in the data storage unit 517.
  • 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.
  • the key request transmission unit 519 includes the node ID sequence and the random number sequence stored in the data storage unit 517 corresponding to the encrypted piece in the key request and transmits the key request to the key server 53.
  • FIG. 6 schematically shows information transmitted from the node 51B to the key server 53.
  • the node 51 serving as the distribution start node is taken as a base point to indicate the delivery path of the encrypted piece.
  • the key server 53 is sent a node ID sequence including each node ID of each of the nodes 50 and 51 that mediates distribution of the encrypted piece and a random number sequence including each random number generated by each of the nodes 50 and 51.
  • the key request transmission unit 519 transmits in a state where the correspondence between each node ID and the random number generated by the node to which each node ID is assigned is held.
  • the piece decryption unit 520 receives the temporary symmetric key transmitted from the key server 53 as a decryption key in response to the key request transmitted by the key request transmission unit 519, and decrypts the encrypted piece using the temporary symmetric key.
  • the node 51B receives the temporary symmetric keys k_0 and k_1 transmitted from the key server 53 in response to the key request including the node ID sequence and the random number sequence shown in FIG. FIG. 7 schematically shows information transmitted from the key server 53 to the node 51B.
  • the temporary symmetric key k_0 shown in the figure is used when the node 50 encrypts a piece, and the temporary symmetric key k_1 causes the node 51 to encrypt the encrypted part of the encrypted piece.
  • the piece decrypting unit 520 decrypts the encrypted portion using the temporary symmetric key k_1, and decrypts the entire encrypted piece using the temporary symmetric key k_0. Details of this decoding will be described later. Also, how the key server 53 generates a temporary symmetric key will be described later.
  • each of the plurality of pieces of the node 51 is encrypted.
  • Each encrypted piece is acquired from the other nodes 50 and 51 by a piece request.
  • the node 51 receives each temporary symmetric key from the key server 53 by key request for each encrypted piece, and obtains the above-mentioned distribution data by decrypting each encrypted piece.
  • FIG. 8 is a diagram illustrating a functional configuration of the key server 53.
  • the key server 53 has a secret key storage unit 530, a data reception unit 531, a temporary symmetric key generation unit 533, 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 data reception unit 531, the temporary symmetric key generation unit 533, and the data transmission unit 534 are generated on a storage device such as a RAM when the CPU of the key server 53 executes a program.
  • the secret key storage unit 530 stores the secret key assigned to each of the nodes 50 and 51 in association with the node ID assigned to each of the nodes 50 and 51.
  • the data receiving unit 531 requests a decryption key for decrypting the encrypted piece, and receives from the node 51 a key request including the above-described node ID sequence and random number sequence.
  • the temporary symmetric key generation unit 533 reads out the secret key stored in the secret key storage unit 530 in association with each node ID included in the node ID sequence included in the key request received by the data reception unit 531.
  • the decryption key is generated by the function F using each random number included in the random number sequence included in the key request.
  • each node ID included in the node ID string is ID # 0,..., ID # (j), and r_m, s_m correspond to each node ID ID # m (0 ⁇ m ⁇ j), respectively.
  • the decryption key k_m is represented by the following equation.
  • k_m F (s_m, r_m)
  • the function F is the same as that used when the above-mentioned node 51 generates a temporary symmetric key. Therefore, here, the temporary symmetric key is restored as the decryption key by the function F using the temporary information and the secret key.
  • the data transmission unit 534 transmits the temporary symmetric key generated as the decryption key by the temporary symmetric key generation unit 533 to the node 51 that has transmitted the key request received by the data reception unit 531.
  • the key server 53 responds to the key request including the node ID sequence and the random number sequence shown in FIG. 6 and, as shown in FIG. Obtain k_0 and k_1 and send it to the node 51B.
  • each temporary symmetric key for decrypting each of all the encryptions performed on all or part of one piece is transmitted to the node 51B so that the node 51B can The encryption of the encrypted piece can be completely decrypted.
  • the node 50 divides the distribution data into a plurality of pieces (step S1). Then, upon receiving a piece request for requesting pieces from another node 51 (step S2: YES), the node 50 generates a random number r_0 (step S3). Next, the node 50 generates a symmetric key k_0 with the function F using the random number r_0 and the secret key s_0 stored in the unique information storage unit 500 (step S4). Then, using the symmetric key generated in step S4, the node 50 encrypts the piece P to be transmitted, and outputs the encrypted piece E (k_0) P (step S5). There is no particular limitation on how to determine the piece to be sent.
  • FIG. 10 conceptually shows a piece and an encrypted piece obtained by the node 50 encrypting the piece.
  • the piece encryption unit 503 encrypts the whole piece P and outputs an encrypted piece E (k_0) P.
  • step S2 the node 50 stores the node ID ID # 0 stored in the unique information storage unit 500,
  • the random number r_0 generated in step S4 and the encrypted piece E (k_0) P output in step S5 are transmitted (step S6). Thereafter, the process returns to step S2, and the node 50 waits for reception of a new piece request.
  • the piece request received in step S2 is not limited to the same node 51, and the pieces P required by the piece request are not necessarily the same piece. Also, the random numbers generated in step S3 basically differ in each process of step S3.
  • the node 51 transmits a piece request requesting a piece to the node 50 or another node 51 (step S10).
  • the node 51 receives the node ID sequence, the random number sequence, and the encrypted piece from the node 50 or another node 51 which is the other party that transmitted the piece request in step S10 (step S11).
  • the node 51 stores the node ID string, the random number string, and the encrypted piece received in step S11 in association with each other (step S12).
  • step S11 When the node 51 transmits a piece request to the node 50, in step S11, the node ID sequence, the random number sequence, and the encrypted piece shown in FIG. 4 for the piece P are received.
  • a node connected to the P2P network NT where f is an integer of 1 or more, will be generalized and described as a node that receives the piece P at the f-th position.
  • the node ID of the node be ID # f. From the node to which the node ID ID # f is assigned, from the node to which the (f-1) -th node ID ID # (f-1) is assigned, as shown in FIG.
  • the node to which the node ID #f is assigned receives an encrypted piece which has been subjected to (f-1) times of encryption for a part of the node, and the node performs the encryption by itself. For f, it means transmitting encrypted pieces that have been encrypted for f times. Note that since the node ID string ID # 0,..., ID # (f-1) specifies by which node the encrypted piece has been encrypted and transmitted, the distribution path of the encrypted piece is indicated. become.
  • the node 51 When receiving a piece request for requesting a certain piece P from another node 51 (step S21: YES), the node 51 first generates a random number (step S22). Next, the node 51 generates a temporary symmetric key with the function F using the random number generated in step S22 and the secret key stored in the unique information storage unit 510 (step S23). Next, the node 51 divides the encrypted piece recorded in the data storage unit 517 into a plurality of pieces (step S24).
  • FIG. 14 conceptually shows an encrypted piece and a process performed on the encrypted piece.
  • the encrypted piece EP shown in the first row of the figure is divided into n pieces (n: an integer of 2 or more), and as shown in the second row, a plurality of parts SP # 1, SP # 2,. , SP # n are obtained.
  • n an integer of 2 or more
  • SP # 1, SP # 2,. , SP # n are obtained.
  • these be subpieces
  • the numbers 1, 2, ..., n assigned to them be subpiece numbers.
  • the node 51 determines the number of times of encryption using the number of node IDs included in the node ID string stored in the data storage unit 517 in association with the encrypted piece to be transmitted. Assuming that the node 51 is the node 51 to which the above-described node ID ID # f is assigned, and the node IDs included in the node ID string are ID # 0, ..., ID # (f-1), the node ID The number of encryptions is “f ⁇ 1”, so the encryption count is “f ⁇ 1”. In this case, the node 51 determines whether or not the number of times of encryption “f ⁇ 1” is equal to or less than the number of divisions n obtained by dividing the encrypted piece (step S 25).
  • step S25 If the number of times of encryption "f-1" is less than or equal to the number of divisions n (step S25: YES), although the whole piece is encrypted by the node 50 which is the distribution start node, it is larger than "f-1"
  • Each sub-piece SP # f, ..., SP # n of the sub-piece number means that it has not been encrypted even once by the node 51 or another node 51.
  • the node 51 adds “1” to the number of times of encryption “f ⁇ 1”, and determines the sub-piece SP # f of the sub-piece number f corresponding to the value f as the encryption part (step S26).
  • node 51 is a reversible conversion for each subpiece SP # (f + 1),..., SP # n of subpiece numbers (f + 1),. (Step S27).
  • step S27 a detailed procedure of processing in which the node 51 performs reversible conversion in step S27 will be described with reference to FIG.
  • the node 51 performs an XOR (exclusive OR) operation as a reversible conversion.
  • the node 51 sets the sub-piece SP # f determined as the encryption part in step S25 as the first input of the XOR operation (step S40), and sets the index l for setting the sub-piece as the second input to “f + 1”. It sets (step S41).
  • step S42 determines whether or not the index l is equal to or less than the division number n (step S42).
  • step S42 If the index l is equal to or less than the division number n (step S42: YES), subpiece SP # as the second input (f + 1) is set, and an XOR operation of the second input and the sub-piece SP # f which is the first input is performed (step S43). Then, the node 51 adds “1” to the index l (step S44), and returns to step S42. By repeating the processing of steps S43 to S44 until the index l becomes larger than the division number n (step S42: NO), the node 51 selects each of the sub-pieces SP # ⁇ f + 1 ⁇ ,. The two inputs are set, and an XOR operation of the second input and the first input is performed.
  • step S27 using the temporary symmetric key generated in step S23, node 51 encrypts sub-piece SP # f determined as the encryption part in step S25, and outputs a new encrypted piece (step S28). ).
  • step S28 uses a temporary symmetric key generated in step S23, encrypted sub-piece E (k_f) SP # f is obtained as shown in the fourth row of FIG. Is obtained.
  • any one of encryption and lossless conversion is performed on sub-pieces SP # 1 to SP # ⁇ f-1 ⁇ of sub-pieces 1 to ⁇ f-1 ⁇ smaller than sub-piece number f of sub-piece SP # f. Not even done.
  • each sub-piece SP # 1, ..., SP # ⁇ f-1 ⁇ is determined by the node 51 or another node 51. It means that it has already been encrypted once or more.
  • the node 51 determines the sub-piece SP # ⁇ f mod n ⁇ of the sub-piece number having the same value as “f mod n” which is the remainder obtained by dividing the number of times of encryption f by the number of divisions n S30).
  • node 51 encrypts sub-piece SP # ⁇ f mod n ⁇ determined as the encryption part in step S28, and outputs a new encrypted piece (step S31).
  • sub-pieces other than sub-piece SP # ⁇ f mod n ⁇ are encrypted nor invertible conversion, and here sub-pieces other than sub-piece SP # ⁇ f mod n ⁇ and encrypted sub-piece E ( k_f)
  • the one including SP # ⁇ f mod n ⁇ is output as a new encrypted piece. Thereafter, the process proceeds to step S29.
  • step S29 the node 51 stores the node ID stored in the data storage unit 517 in association with the encrypted piece to be transmitted with respect to the other node 51 that has transmitted the piece request received in step S21.
  • the random number generated in step S22 is included.
  • a new random number sequence and the new encrypted piece output in step S27 or S29 are transmitted.
  • the node 51 to which the node ID ID #f is assigned is the (f + 1) th node ID ID For the node 51 to which # (f + 1) is assigned, as shown in FIG. 16, node ID string ID # 0,..., ID # (f-1), ID # f for piece P, The random number sequence r_0, ..., r_f and the encrypted piece E (k_f) ... E (k_0) P are transmitted.
  • the node 51 determines and encrypts the encrypted part according to the number of times of encryption and the number of divisions, and performs encrypted conversion on a portion other than the encrypted part. Send.
  • the node 51 determines and encrypts the encrypted part according to the number of times of encryption and the number of divisions, and performs encrypted conversion on a portion other than the encrypted part. Send.
  • the node 51 determines and encrypts the encrypted part according to the number of times of encryption and the number of divisions, and performs encrypted conversion on a portion other than the encrypted part.
  • the node 51 or the other The reversible conversion is performed on the sub-pieces for which the partial encryption has not been performed by the node 51 of FIG.
  • the number of times of encryption is n or more, each time encryption is performed in the distribution process, encryption is sequentially repeated for each sub-piece for which partial encryption has already been performed. It will be done.
  • the node 51 reads the node ID string and the random number string associated with the encrypted piece stored in the data storage unit 517 (step S50), and requests a decryption key for decrypting the encrypted piece.
  • a key request including the node ID sequence and the random number sequence is transmitted to the key server 53 (step S51).
  • the node 51 receives the temporary symmetric key transmitted from the key server 53 as a decryption key in response to the key request transmitted in step S30 (step S52), and decrypts the encrypted piece using the temporary symmetric key. (Step S53).
  • the node 51 is a node to which the node ID ID # (f + 1) is assigned, and for the key server 53, as shown in FIG. It is assumed that 0, ..., ID # (f-1), ID # f, and a random number sequence r_0, ..., r_ ⁇ f-1 ⁇ , r_f are transmitted. Then, it is assumed that the node 51 receives temporary symmetric keys k_0,..., K_f for the piece P from the key server 53, as shown in FIG.
  • the node 51 determines the correspondence between each received temporary symmetric key and an encrypted portion that can be decrypted using each temporary symmetric key of the encrypted pieces, and decrypts each encrypted portion. In other words, in order to determine and decrypt which encrypted portion of the encrypted pieces to be decrypted can be decrypted using each temporary symmetric key, the following processing is performed.
  • the node 51 divides the encryption piece to be decrypted into n sub-pieces as described above, sets the index l for setting the sub-piece to be decrypted to “f” to decrypt each sub-piece respectively ( Step S60) It is determined whether the index l is less than or equal to the number of divisions n (step S61).
  • step S61 If the index l is less than or equal to the number of divisions n (step S61: YES), the node 51 selects an encrypted portion that can be decrypted using the temporary symmetric key k_l among the temporary symmetric keys received in step S32 in subpiece SP # l. It is determined that the sub piece SP # 1 is decrypted using the temporary symmetric key k_l (step S62).
  • step S61 when the index l is larger than the division number n (step S61: NO), the node 51 is configured to use the temporary symmetric key k_l among the temporary symmetric keys received in step S32 to encrypt the subpart SP # It is determined that l mod n), and the sub-piece SP # (l mod n) is decrypted using the temporary symmetric key k_l (step S63).
  • step S64 the node 51 subtracts “1” from the value of the index l ′ (step S64), and determines whether the value of the index l ′ is “1” or more (step S65), and the index l ′ If the value of is greater than or equal to "1" (step S65: YES), the process returns to step S61.
  • the node 51 repeats such a process of step S62 or S63 until the value of the index l is smaller than "1".
  • step S65 If the value of index l becomes smaller than "1" (step S65: NO), node 51 sets index l 'for setting the subpiece to be subjected to the XOR operation to "0" (step S66)
  • the first input of the XOR operation is set to the sub-piece SP # l '(step S67). Note that the encryption for the sub-piece SP # l 'has already been decrypted at step S62 or S63.
  • the node 51 sets the first input of the XOR operation to the subpieces SP # (l ′ + 1),..., SP # n, and performs the XOR operation of each second input and the first input Step S68).
  • the node 51 adds "1" to the value of the index l '(step S69), and determines whether the value of the index l' is less than or equal to "n-1" (step S70). If the value of 'is equal to or less than "n-1" (step S70: YES), the process returns to step S67. The node 51 repeats such processing of steps S67 to S69 until the value of the index l ′ becomes larger than “n ⁇ 1”. Thus, the node 51 performs inverse conversion of the conversion performed in step S27. Then, when the value of the index l ′ becomes larger than “n ⁇ 1” (step S70: NO), the node 51 decrypts the entire encrypted piece using the temporary symmetric key k_0. As a result, as shown in the second row of FIG. 14, a piece is obtained in which each sub-piece is respectively decrypted and the encryption performed first for the whole is decrypted.
  • the node 51 uses the temporary symmetric key k_0 among the temporary symmetric keys received in step S32 to decrypt the encryption performed by the node 50 which is the distribution start node for the entire encrypted piece, in step S60.
  • the resulting encrypted piece of ⁇ 70 is decrypted to obtain a piece (step S71).
  • each node 51 can decrypt the encryption performed for each piece by obtaining all of the temporary symmetric keys for decrypting the encryption performed for each piece, and reverse conversion It is possible to completely restore the encrypted piece. Therefore, each node 51 receives each temporary symmetric key from the key server 53 by key request for each encrypted piece in which each of a plurality of pieces is encrypted, and restores each encrypted piece, thereby performing the above-mentioned distribution. You can get data.
  • step S80 YES
  • the key server 53 requests the decryption key for decrypting the encrypted piece and receives the key request including the node ID sequence and the random number sequence from the node 51 (step S80: YES)
  • the key server 53 is included in the received key request.
  • the secret key stored in the secret key storage unit 530 in association with each node ID included in the node ID string is read out for each node ID (step S81).
  • the key server 53 generates a temporary symmetric key as a decryption key by the function F for each node ID using random numbers for all node IDs and the secret key read in step S81 (step S82).
  • the key server 53 transmits the temporary symmetric key generated as the decryption key in step S82 to the node 51 that has transmitted the key request received in step S80 (step S83).
  • the key server 53 responds to the key request including the node ID sequence and the random number sequence as shown in FIG. 19 for the piece P, for the node to which the above-described node ID ID # (f + 1) is assigned. , Transmit temporary symmetric keys k_0,..., K_f as shown in FIG.
  • the combination of encrypted pieces acquired by a certain node is unique to the distribution route and the distribution timing, and can be surely unique.
  • the uniqueness of each node can be surely improved for the combination of each encrypted piece acquired by each node without any special devising on the delivery method in P2P delivery, and the security Can be improved. Furthermore, it becomes possible to maintain the independence between the data protection and the data delivery method, and it is possible to improve the freedom in system construction.
  • each node 51 has acquired all encrypted pieces in which each of a plurality of pieces is encrypted.
  • the delivery path of each encrypted piece is various. Therefore, if the encrypted pieces are different, the distribution paths are likely to be different, and therefore, the combination of the node IDs associated with the respective encrypted pieces is likely to be different. Also, if the delivery paths of different encrypted pieces are the same, the combination of node IDs associated with each encrypted piece will be the same, but the random numbers corresponding to each node will be different.
  • the distribution data is divided into N (N: an integer of 2 or more) of P1 to PN.
  • N an integer of 2 or more
  • the node to which the above-described node ID ID # f is assigned stores the following data in association with the piece P1.
  • Node ID column ID # 0, ID # 1, ..., ID # (f-1) Random number sequence: r_0, r_1, ..., r_ ⁇ f-1 ⁇
  • Encryption piece E (k_t) ... E (k_0) P1
  • Node ID column ID # 0, ID '# 1, ..., ID'# (i-1)
  • Random number sequence r_0, r _ _1, ..., r _ _ _ ⁇ i-1 ⁇
  • Encrypted piece E ( ⁇ k '_ (i-1) ⁇ ) ... E (k'_1) E (k_0)
  • P2 ID '# 1,..., ID'# (i-1) are a series of node IDs different from ID # 1,..., ID # (j-1).
  • r_0, r'_1, ..., r '_ ⁇ i-1 ⁇ are random numbers generated by each node to which each node ID of ID'# 1, ..., ID '# (i-1) is assigned. Yes, each one is different each time.
  • k_0 is a temporary symmetric key generated by the node 50
  • k'_1,..., K '_ (i-1) are assigned node IDs ID # 1,..., ID # (i-1). It is a temporary symmetric key generated by each node.
  • the temporary symmetric keys required to decrypt the encrypted piece are different for each piece.
  • nodes are different, even if they are the same piece, temporary symmetric keys required to decrypt each encrypted piece are different. Therefore, different nodes have different combinations of encrypted pieces for each of a plurality of pieces. That is, the combination of encrypted pieces in which each of all pieces constituting the delivery data is encrypted can be surely different for each node. Therefore, according to the present embodiment, the uniqueness of each node can be surely enhanced for the combination of each encrypted piece acquired by each node.
  • the processing burden on decrypting the encrypted piece is reduced by encrypting not a whole but a part of the encrypted piece.
  • the effect is remarkable when reproducing moving image content in real time.
  • the present invention is not limited to the above embodiment as it is, and at the implementation stage, the constituent elements can be modified and embodied without departing from the scope of the invention.
  • various inventions can be formed by appropriate combinations of a plurality of constituent elements disclosed in the embodiments. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, components in different embodiments may be combined as appropriate. In addition, various modifications as exemplified below are possible.
  • various programs executed by 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.
  • 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) or the like in an installable or executable file format. It may be configured to be provided.
  • the program is loaded from the storage medium at each node 50 and executed by being loaded onto the main storage (for example, RAM), and the units described in the functional configuration are generated on the main storage. Ru. The same applies to various programs executed by the key server 53.
  • 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 units described in the functional configuration of the key server 53.
  • the node ID may be any information that can uniquely identify each node, and may be, for example, the IP address, MAC address, or URL of each node.
  • the number of distribution start nodes may be plural. Also, the number of other nodes connected to the P2P network NT is not particularly limited.
  • a plurality of pieces may be required by one piece request.
  • the nodes 50 and 51 may transmit the set of the encrypted piece, the node ID sequence and the random number sequence to the other node 51 that has transmitted the piece request as described above for each of the plurality of pieces.
  • the nodes 50 and 51 transmit the encrypted piece in response to the piece request.
  • the present invention is not limited to this configuration.
  • the ID node sequence and the random number sequence may be transmitted together with the encrypted piece.
  • the node 51 when encrypted pieces are obtained for all pieces constituting the distribution data and stored in the data storage unit 517, the node 51 requests a key request for decrypting each encrypted piece. It may be transmitted to the key server 53. Alternatively, the node 51 can use the key server as a key server for decrypting the encrypted piece stored in the data storage unit 517 even if the encrypted piece has not been acquired for all the pieces constituting the distribution data. You may make it transmit to 53. Also, the node 51 may request a decryption key for decrypting one encrypted piece by one key request, or may request each decryption key for decrypting a plurality of encrypted pieces. You may do so.
  • the temporary symmetric key which is also an encryption key and a decryption key for decrypting the encryption, is used to encrypt the piece.
  • the encryption key used to encrypt the piece and the decryption key for decrypting the encryption performed on the encrypted piece may be different.
  • a public key may be used as an encryption key.
  • the nodes 50 and 51 when transmitting the encrypted pieces stored in the data storage unit 517 to another node 51, the nodes 50 and 51 generate random numbers each time.
  • the nodes 50 and 51 may not generate random numbers each time, but may generate them, for example, according to the number of transmissions of the encrypted piece.
  • the nodes 50 and 51 may generate new random numbers each time transmission of an encrypted piece is performed a predetermined number of times (for example, five times).
  • the timing at which the nodes 50 and 51 generate random numbers may be when the piece request is received from another node 51, or may be every predetermined time.
  • the node ID sequence and the random number sequence transmitted by the node 51 to the other nodes 51 together with the encrypted pieces are not limited to the forms shown in FIGS.
  • (ID # 0, r_0), (ID # 1, r_1)... (ID # f, r_f), etc. a form indicating a set of a node ID and a random number corresponding to the node ID for each node ID It may be
  • the secret key is uniquely assigned to each of the nodes 50 and 51.
  • the present invention is not limited to this.
  • the same secret key may be assigned to some of the nodes 50 and 51.
  • the sub-piece to be the encryption part is sequentially encrypted from the left each time the encryption piece is encrypted in the distribution process, but the present invention is limited thereto.
  • encryption may be performed in the order or random order from the right.
  • the node 51 when encrypting the encrypted piece, divides the encrypted piece into a plurality of sub-pieces, but the division method may be equal.
  • the division number n may not be fixed but may be variable.
  • each node 51 may select a part of the data range of the data of the encrypted piece as the encrypted part and encrypt it without dividing the encrypted piece.
  • the node 51 when the node 51 encrypts a part of the encrypted piece stored in the data storage unit 517 and transmits it to another node 51, the node 51 encrypts the encrypted piece. Although the part does not overlap the node 51 transmitted to the node 51 with the encrypted part encrypted, the part may overlap.
  • each node 51 determines the number of times of encryption using the number of node IDs included in the node ID sequence, and determines an encrypted portion according to the number of times of encryption.
  • the invention is not limited to this.
  • the node 50 or 51 (referred to as a transmission source node) that transmits an encrypted piece should encrypt the node 51 (referred to as a transmission destination node) that receives the encrypted piece
  • the designation of the encryption part may be, for example, the subpiece number when the encryption piece is divided into n subpieces as described above, or the data range of part of the data of the encryption piece It may be.
  • the designation information for designating the encrypted portion is transmitted from the source node to the destination node together with the node ID sequence, the random number sequence and the encrypted piece. Then, the destination node stores the designation information together with the node ID sequence, the random number sequence, and the encrypted piece.
  • the encrypted portion specified by the specification information is encrypted with the above-mentioned temporary symmetric key, and then the destination node to be the next destination is encrypted.
  • the designation information received from the transmission source node is, for the new transmission destination node, information for designating an encrypted portion of the encrypted piece that has already been encrypted.
  • the node acquires the temporary symmetric key from the key server 53 in the same manner as described above, and uses each temporary symmetric key for each encrypted portion designated by each designation information. Use to decrypt. Since the part that the node 50 which is the distribution start node encrypts is the whole piece as described above, the node 51 does not use the designation information, but uses the temporary symmetric key corresponding to the node 50 to encrypt the piece The whole can be decoded. Also with the above-described configuration, it is possible to restore the pieces correctly while reducing the processing load for decoding.
  • the designation information for example, a VM code in which an encryption procedure itself to be performed on an encrypted piece to be transmitted is described, or a procedure to determine an encrypted portion among the encrypted pieces to be transmitted It may be procedure information such as VM code in which it is described.
  • the node 51 determines the encrypted portion in accordance with the procedure indicated in the procedure information stored in association with the encrypted piece, The new encrypted piece after the conversion may be sent to another node 51 by adding procedure information together with the above-mentioned node ID sequence and random number sequence.
  • the node 51 uses the procedure indicated in the procedure information stored in association with the encrypted piece, and receives each temporary symmetric key received from the key server 53, and Of the encrypted pieces, the corresponding relationship with the decryptable encrypted portion may be determined using the respective temporary symmetric keys to decrypt each encrypted portion.
  • an XOR operation using the encrypted portion as the first input as a reversible conversion to be performed on a part other than the encrypted part among the encrypted pieces to be transmitted according to the number of times of encryption was done.
  • the present invention is not limited to this, and the encrypted portion may not be used as the first input, and the method of conversion is a reversible conversion that can be restored by performing inverse conversion on the conversion performed. It does not have to be an XOR operation.
  • the reversible conversion may not be performed on a part of the encrypted piece to be transmitted other than the encrypted part.
  • the encrypted piece, the node ID sequence and the random number sequence may be distributed in the form of package data packaged.
  • the package data may be recorded on a computer readable recording medium and provided to the node, or may be configured to be downloaded to the node via the server.
  • the node that has acquired the package data is, in the same way as in the above embodiment, an encrypted piece obtained by encrypting the encrypted piece included in the package data, and the package data.
  • the contained node ID and its own node ID, and the random number sequence contained in the package data and the generated random number may be transmitted to other nodes.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

 データの一部であるピースを暗号化して送信する通信装置は、他の通信装置によって暗号化されたピースである第1暗号化ピースと、当該他の通信装置に割り当てられた第1装置識別情報と、当該他の通信装置が暗号化する際に生成した第1一時情報とを受信し、第1暗号化ピースと、第1装置識別情報と、第1一時情報とを対応付けて記憶すると共に、 当該通信装置に割り当てられた第2装置識別情報を記憶する。通信装置は、その生成毎に異なり得る第2一時情報を生成し、第2一時情報を用いて一時対称鍵を生成し、第1暗号化ピースのうち暗号化する第1部分を決定し、一時対称鍵を用いて第1部分を更に暗号化して、第2暗号化ピースを出力し、当該第2暗号化ピースと、第1装置識別情報と、第2装置識別情報と、第1一時情報と、第2一時情報とを送信する。

Description

通信装置、通信方法及びプログラム
 本発明は、通信装置、通信方法及びプログラムに関する。
 例えば、P2P(peer to peer)を利用してデータを配信する配信方式(P2P配信という)は、巨大なストレージと大きな通信帯域とを有するデータ配信サーバを必要とせず、コストメリットの大きい配信方式である。また、データの配信を受けるノードにおいては、複数のノードからのデータの供給が期待されるため、ダウンロードやアップロードにおける帯域幅を活かした高速なデータ取得が期待される。このようにP2Pデータ配信には大きなメリットがあるが、一方で、著作権保護などデータセキュリティの観点から安全性に不安があった。P2P配信に限らず、著作権保護などのデータセキュリティを考える上で一般的な前提として次のことを仮定する。全ての端末機器又はノードがハッキングされることはないということである。この前提を否定した場合、端末機器は秘密とすべきデータを保持したり、秘密とすべき処理を行ったりすることができなくなり、殆どのセキュリティ技術やセキュリティ確保の為の工夫が成立しない。
 さて、P2P配信において、暗号化されたデータを配信し、データの配信を受けるノードが当該データ(配信データという)を復号するための復号鍵を取得するコンテンツ配信システムがある。このようなシステムのP2P配信においてデータセキュリティ上の大きな問題点は、配信データと当該配信データを復号するための復号鍵との組み合わせが単一であったり数が少なかったりすることである。この場合、あるノードがハッキングされ、復号鍵が暴露されたとする。この場合、この復号鍵は殆どの配信データを復号するために使用できることになる。この問題を解決する一つの方法は、配信データをノード毎に個別化することである。
 P2P配信において配信データをノード毎に個別化する技術としては、例えば、特許文献1に示されるMarkingの方式が知られている。この方式では、配信データをピースに分割した上で、鍵の行列で暗号化を施して暗号化ピースを生成する。その結果として、行列状に暗号化された暗号化ピースからなるピース群が生成される。そしてこのようなピース群はP2Pネットワークを介して配信される。当該P2Pネットワークに接続される1つのノードは、各ピースについて行列状に暗号化された複数の暗号化ピースの中から1つの暗号化ピースを取得することになる。結果として、配信データを構成する各ピースが各々暗号化された暗号化ピースの組み合わせは、ノード毎に統計的に一意になることが期待される。
USP 7165050
 しかし、上述の特許文献1の技術においては、各暗号化ピースの組み合わせがノード毎に一意であることはあくまで統計的に期待されるだけである。各暗号化ピースの組み合わせをノード毎に一意にすることを実現するには、例えば、以下の2つの方法が考えられる。1つは、暗号化ピースの配信方法に工夫を施すという方法である。また、1つは、各暗号化ピースを復号するための復号鍵を保持する鍵サーバが復号鍵の配信を制限するという方法である。例えば、配信されたピース群をノードは復号するために、各暗号化ピースの組み合わせを鍵サーバに申告して復号鍵を取得するシステムがある。このシステムにおいて、復号鍵の再配信によるリプレイアタックを阻止するためには、既に取得された復号鍵と重複が多い暗号化ピースの組み合わせを、鍵サーバがリジェクトするという方法がある。しかしいずれの方法であっても、暗号化ピースの配信効率を時として著しく低下させ、P2Pネットワークの利点を十分活かすことができなくなる恐れがある。また、前者の方法では、データの保護とデータの配信方法との独立性が損なわれ、そのことがシステム構築上の大きな制約となる恐れがある。
 本発明は、上記に鑑みてなされたものであって、コンテンツ配信システムにおいて配信される各暗号化ピースの組み合わせを通信装置毎に一意にすることが可能になると共に、システム構築上の自由度を向上可能な通信装置、通信方法及びプログラムを提供することを目的とする。
 上述した課題を解決し、本発明は、データの一部であるピースを暗号化して送信する通信装置であって、他の通信装置によって暗号化されたピースである第1暗号化ピースと、当該他の通信装置に割り当てられた第1装置識別情報と、当該他の通信装置が暗号化する際に生成した第1一時情報とを受信する受信手段と、前記第1暗号化ピースと、前記第1装置識別情報と、前記第1一時情報とを対応付けて記憶する第1記憶手段と、当該通信装置に割り当てられた第2装置識別情報を記憶する第2記憶手段と、その生成毎に異なり得る第2一時情報を生成する第1生成手段と、前記第2一時情報を用いて一時対称鍵を生成する第2生成手段と、前記第1暗号化ピースのうち暗号化する第1部分を決定する第1決定手段と、前記一時対称鍵を用いて前記第1部分を更に暗号化して、第2暗号化ピースを出力する暗号化手段と、前記第2暗号化ピースと、前記第1装置識別情報と、前記第2装置識別情報と、前記第1一時情報と、前記第2一時情報とを送信する送信手段とを備えることを特徴とする。
 また、本発明は、データの一部であるピースを受信する通信装置であって、他の通信装置によって暗号化されたピースである暗号化ピースと、当該他の通信装置に割り当てられている装置識別情報と、当該他の通信装置がピースを暗号化する際に生成した一時情報とを受信する第1受信手段と、受信された前記暗号化ピース、前記装置識別情報及び前記一時情報を対応付けて記憶する記憶手段と、前記暗号化ピースを復号するための復号鍵を要求すると共に、当該暗号化ピースと対応付けられて記憶された前記装置識別情報及び前記一時情報を対応付けて含む鍵要求を鍵サーバへ送信する送信手段と、前記鍵要求に応じて前記鍵サーバから、前記ピースについて行われた暗号化を復号するための各復号鍵を受信する第2受信手段と、受信された各前記復号鍵と、前記暗号化ピースのうち当該各復号鍵を用いて復号可能な各第1部分との対応関係を判別する判別手段と、前記判定手段の判定の結果に応じて、各前記復号鍵を用いて前記暗号化ピースの各第1部分を復号する復号手段とを備えることを特徴とする。
 本発明によれば、コンテンツ配信システムにおいて配信される各暗号化ピースの組み合わせを通信装置毎に一意にすることが可能になると共に、システム構築上の自由度を向上させることが可能になる。
第1の実施の形態にかかるデータ配信システムの構成を示す図。 ノード50の機能的構成を例示する図。 ノード51の機能的構成を例示する図。 ノード50からノード51Aに送信される情報を模式的に示す図。 ノード51Aからノード51Bに送信される情報を模式的に示す図。 ノード51Bから鍵サーバ53に送信される情報を模式的に示す図。 鍵サーバ53からノード51Bに送信される情報を模式的に示す図。 鍵サーバ53の機能的構成を例示する図。 配信開始ノードであるノード50が行う配信処理の手順を示すフローチャート。 ピースとこれをノード50が暗号化した暗号化ピースとを概念的に表した図。 ノード51がノード50又は他のノード51から暗号化ピースを受信する受信処理の手順を示すフローチャート。 ノードに受信される情報を模式的に示す図。 配信開始ノード以外のノード51が行う配信処理の手順を示すフローチャート。 暗号化ピースと、当該暗号化ピースに対して行なわれる処理を概念的に表した図。 図13のステップS27でノード51が可逆な変換を行う処理の詳細な手順を示すフローチャート。 ノードが送信する情報を模式的に示す図。 ノード51が鍵サーバ53から復号鍵を取得しこれを用いて暗号化ピースを復号する復号処理の手順を示すフローチャート。 図17のステップS53でノード51が暗号化ピースを復号する処理の詳細な手順を示すフローチャート。 ノードが送信する情報を模式的に示す図。 ノードが受信する対称鍵を模式的に示す図。 鍵サーバ53がノード51からの鍵要求に応じて復号鍵を送信する鍵送信処理の手順を示すフローチャート。
 以下に添付図面を参照して、この発明にかかる通信装置、通信方法及びプログラムの一実施の形態を詳細に説明する。
 図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とし、秘密鍵を各々s_0,s_1,s_2とする。尚、各ノード50,51A~51Bのうちノード50は、データの配信の基点となる配信開始ノードであり、配信対象のデータ(配信データという)を保持している。配信データは、平文である場合も既に暗号化された暗号文である場合もある。例えば、当該配信データは、暗号化として何らかのDRM (Digital Right Management) Systemによって保護されたビデオデータであっても良い。鍵サーバ53は、各ノード50,51A~51Bに各々割り当てられた秘密鍵を保持している。尚、以降、ノード51A~51Bを各々区別する必要がない場合、単にノード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)とが有線又は無線により接続される。
 次に、上述したハードウェア構成において、配信開始ノードであるノード50のCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図2は、ノード50の機能的構成を例示する図である。ノード50は、固有情報格納部500と、乱数生成部501と、一時対称鍵生成部502と、ピース暗号化部503と、ピース化部504と、データ送信部505と、送信要求受付部506とを有する。尚、固有情報格納部500は、例えばノード50のHDDなどの外部記憶装置に記憶領域として確保されるものである。乱数生成部501と、一時対称鍵生成部502と、ピース化部504と、ピース暗号化部503と、データ送信部505と、送信要求受付部506との実体は、ノード50のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。尚、ノード50の外部記憶装置には、配信データが予め記憶されている。
 固有情報格納部500は、当該ノード50に割り当てられたノードID及び秘密鍵を記憶する。ピース化部504は、配信データを複数のピースに分割する。分割する際のデータサイズは特に限定されないが、予め定められているものとする。送信要求受付部506は、ピース化部504が分割したピースを要求するピース要求を他のノード51から受信する。乱数生成部501は、送信要求受付部506がピース要求を受信した場合、その発生毎に異なり得る一時情報である乱数を生成する。一時情報とは、ノードで生成される度に異なり得る値となれば良く、例えば、乱数やタイムスタンプ、通信のシーケンス番号、ノードに固有のカウンタの値、Time Variant Parameterである。Time Variant Parameterについては、例えば文献ISO9798-1に記載されている。
 一時対称鍵生成部502は、乱数生成部501が生成した乱数と、固有情報格納部500に記憶された秘密鍵とを用いて関数Fにより一時対称鍵を生成する。これを式により表すと以下のように表される。
k_0=F(s_0,r_0)
 尚、関数Fは一方向性関数あるいは共通鍵暗号あるいは擬似乱数生成器であり、入力値である秘密鍵や乱数を知るものであってもこれらから出力値である一時対称鍵を推測できないものである。一時対称鍵とは、関数Fであって、関数Fの入力値と出力値との関係が一意に定められば良く、例えば、SHA-1やSHA256といったハッシュ関数であっても良く、AES、Hierocryptといった共通鍵暗号方式であっても良く、Mersenne twisterといった疑似乱数生成器であっても良い。ハッシュ関数には、乱数と秘密鍵を結合した値が入力されても良い。共通鍵暗号方式では、乱数を秘密鍵で暗号化しても良く、秘密鍵を乱数で暗号化しても良い。共通鍵暗号方式では、乱数を秘密鍵で復号しても良く、秘密鍵を乱数で復号しても良い。擬似乱数生成器には、乱数と秘密鍵を結合した値が入力されても良い。
 ピース暗号化部503は、一時対称鍵生成部502が生成した一時対称鍵を用いてピースを暗号化して、暗号化ピースを出力する。尚、一時対称鍵は暗号化に用いられる暗号鍵でもあり、暗号化ピースに対して行われている暗号化を復号するための復号鍵にもなる。
 データ送信部505は、ピース要求を送信した他のノード51に対して、固有情報格納部500に記憶されているノードIDと、乱数生成部501が生成した乱数と、ピース暗号化部503が出力した暗号化ピースとを送信する。
 次に、配信開始ノード以外であるノード51のCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図3は、ノード51の機能的構成を例示する図である。ノード51は、固有情報格納部510と、乱数生成部511と、一時対称鍵生成部512と、ピース暗号化部513と、データ受信部514と、データ送信部515と、送信要求受付部516と、データ格納部517と、送信要求送信部518と、鍵要求送信部519と、ピース復号部520と、暗号化部分決定部521とを有する。尚、固有情報格納部510とデータ格納部517とは、例えばノード51のHDDなどの外部記憶装置に記憶領域として確保されるものである。乱数生成部511と、一時対称鍵生成部512と、ピース暗号化部513と、データ送信部515と、送信要求受付部516と、データ受信部514と、鍵要求送信部519と、ピース復号部520と、暗号化部分決定部521との実体は、ノード51のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。
 固有情報格納部510は、当該ノード51に割り当てられたノードID及び秘密鍵を記憶する。送信要求受付部516の構成は上述のノード50の有する送信要求受付部506の構成と同様である。送信要求送信部518は、ピースを要求するピース要求をノード50又は他のノード51に対して送信する。データ受信部514は、送信要求送信部518がピース要求を送信した相手であるノード50又は他のノード51から、ピースが暗号化された暗号化ピースと、当該暗号化ピースの送信を仲介した少なくとも1つの他のノード50,51に割り当てられた各ノードIDを含むノードID列と、当該他のノード50,51が生成した各乱数を含む乱数列とを受信する。データ格納部517は、データ受信部514が受信したノードID列、乱数列及び暗号化ピースを対応付けて記憶する。乱数生成部511は、乱数を生成する。一時対称鍵生成部512は、乱数生成部511が生成した乱数と、固有情報格納部510に記憶された秘密鍵とを用いて上述した関数Fにより一時対称鍵を生成する。
 暗号化部分決定部521は、送信対象の暗号化ピースのうち暗号化する部分(暗号化部分という)を決定する。ここでは、暗号化部分は、次に説明するピース暗号化部513が、送信対象の暗号化ピースを複数に分割したいずれかの部分となる。具体的には、暗号化部分決定部521は、送信対象の暗号化ピースの全部又は一部に対して行なわれた暗号化の回数(暗号化回数という)を判定して、当該暗号化回数及び分割数に応じて、暗号化部分を決定する。ここでは、暗号化回数は、送信対象の暗号化ピースと対応付けられてデータ格納部517に記憶されたノードID列に含まれるノードIDの個数と同じであるため、この個数を算出することで求められる。ピース暗号化部513は、送信対象の暗号化ピースを複数に分割して、一時対称鍵生成部512が生成した一時対称鍵を用いて、送信対象の暗号化ピースのうち暗号化部分決定部521が決定した暗号化部分を更に暗号化すると共に、暗号化回数に応じて、送信対象の暗号化ピースのうち暗号化部分以外の一部に対して可逆な変換を行って、新たな暗号化ピースを出力する。
 データ送信部515は、送信要求受付部516が受信したピース要求を送信した他のノード51に対して以下のデータを送信する。データは、当該暗号化ピースに対応付けられてデータ格納部517に記憶されたノードID列に加え固有情報格納部510に記憶されたノードIDを含む新たなノードID列と、当該暗号化ピースに対応付けられてデータ格納部517に記憶された乱数列に加え乱数生成部511が生成した乱数を含む新たな乱数列と、ピース暗号化部513が出力した新たな暗号化ピースとである。尚、データ格納部517に暗号化ピースが記憶されていない場合には、送信要求受付部516がピース要求を受信したとしても、ピース暗号化部513は暗号化ピースを出力せず、データ送信部515は暗号化ピースを送信しない。
 ここで、ノード50,51から送信されるノードID列、乱数列及び暗号化ピースについて具体的に説明する。尚、ノード50から1つの暗号化ピースに対してこれと共に送信されるノードID及び乱数は各々1つであるが、ここでは説明の便宜上、これらをノード列及び乱数列と各々記載する場合がある。暗号化ピースの配信経路としてここではノード50からノード51A、更にノード51Aからノード51Bに暗号化ピースを送信し、ノード51Bから鍵サーバ53に鍵要求を送信する場合について説明する。例えば、あるピースPについてノード51Aからのピース要求に応じて、ノード50が、乱数r_0と秘密鍵s_0とを用いて一時対称鍵k_0を生成し、これを用いてピースPを暗号化して暗号化ピースE(k_0)Pを出力したとする。そして、ノード50が、当該暗号化ピースE(k_0)PをノードIDID#0及び乱数r_0と共にノード51Aに送信したとする。図4は、ノード50からノード51Aに送信される情報を模式的に示す図である。当該ノード51Aは、これらのノードIDID#0、乱数r_0及び暗号化ピースE(k_0)Pを対応付けてデータ格納部517に記憶することになる。尚、データ格納部517は、ノードIDと当該ノードIDが割り当てられたノードが生成した乱数との対応関係を保持した状態及び配信された順序が保持された状態で各ノードID列及び各乱数列を記憶する。
 そして、当該ノード51Aが、ノード51Bからのピース要求に応じてピースPに対する暗号化ピースを送信する場合、乱数r_1を生成し、これと秘密鍵s_1とを用いて一時対称鍵k_1を生成し、これを用いて暗号化ピースE(k_0)Pの一部である暗号化部分を更に暗号化して新たな暗号化ピースを出力したとする。E(k_1)E(k_0)Pは、順に一時対称鍵k_0,k_1でピースPの全部又は一部を多重に暗号化したものを示すものとする。このとき、ノード51Aは、ノード51Bに対して、データ格納部517に記憶されている、ノード50に割り当てられたノードIDID#0に加え固有情報格納部510に記憶されている、自身に割り当てられたノードIDID#1と、データ格納部517に記憶されている乱数r_0に加え自身が生成した乱数r_1と、暗号化ピースE(k_1)E(k_0)Pとを送信する。図5は、ノード51Aからノード51Bに送信される情報を模式的に示す図である。ノード51Bは、これらのノードID列ID #0,ID #1、乱数列r_0,r_1及び暗号化ピースE(k_1)E(k_0)Pを対応付けてデータ格納部517に記憶する。
 図3の説明に戻る。鍵要求送信部519は、データ格納部517に記憶された暗号化ピースを復号するための復号鍵を要求する鍵要求を鍵サーバ53に送信する。ここで鍵要求送信部519は、当該暗号化ピースに対応してデータ格納部517に記憶されているノードID列及び乱数列を鍵要求に含めて鍵サーバ53に送信する。例えば、ノード51Bが、ノード51Aが暗号化を行った場合に出力された図5に示した暗号化ピースE(k_1)E(k_0)Pを復号するための復号鍵を要求する鍵要求を鍵サーバ53に送信する場合、ノード51Bの鍵要求送信部519は、ノードID列ID#0,ID#1と、乱数列r_0,r_1とを含む鍵要求を送信する。図6は、ノード51Bから鍵サーバ53に送信される情報を模式的に示す図である。このように、ノード51は、暗号化ピースを復号するための復号鍵を鍵サーバ53に要求する際に、当該暗号化ピースの配信経路を示すものとして、配信開始ノードであるノード50を基点として当該暗号化ピースの配信を仲介する各ノード50,51の各ノードIDを含むノードID列及び当該各ノード50,51が生成した各乱数を含む乱数列を鍵サーバ53に送信する。尚、これらの送信に際し、鍵要求送信部519は、各ノードIDと当該各ノードIDが割り当てられたノードが生成した乱数との対応関係を保持した状態で送信する。
 ピース復号部520は、鍵要求送信部519が送信した鍵要求に応じて鍵サーバ53から送信された一時対称鍵を復号鍵として受信し、当該一時対称鍵を用いて暗号化ピースを復号する。ノード51Bは、図6に示したノードID列及び乱数列を含む鍵要求に応じて鍵サーバ53から送信された一時対称鍵k_0,k_1を受信する。図7は、鍵サーバ53からノード51Bに送信される情報を模式的に示す図である。同図に示される一時対称鍵k_0は、ノード50がピースを暗号化する際に用いられたものであり、一時対称鍵k_1は、ノード51が、暗号化ピースのうち暗号化部分を暗号化する際に用いられたものである。このため、ピース復号部520は、一時対称鍵k_1を用いて当該暗号化部分を復号し、一時対称鍵k_0を用いて、暗号化ピース全体を復号する。この復号の詳細については後述する。また鍵サーバ53がどのように一時対称鍵を生成するのかも後述する。
 尚、ノード51が、複数のピースのそれぞれについてどのような順番やタイミングでどのノードから取得するかは特に限定されないが、以上のようにして、ノード51は、複数のピースのそれぞれが暗号化された各暗号化ピースをピース要求によって他のノード50,51から取得する。また、ノード51は、各暗号化ピースについて鍵要求によって各一時対称鍵を鍵サーバ53から受信し、各暗号化ピースを復号することにより、上述の配信データを得る。
 次に、鍵サーバ53のCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図8は、鍵サーバ53の機能的構成を例示する図である。鍵サーバ53は、秘密鍵格納部530と、データ受信部531と、一時対称鍵生成部533と、データ送信部534とを有する。尚、秘密鍵格納部530は、例えば鍵サーバ53のHDDなどの外部記憶装置に記憶領域として確保されるものである。データ受信部531と、一時対称鍵生成部533と、データ送信部534との実体は、鍵サーバ53のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。
 秘密鍵格納部530は、各ノード50,51に割り当てられた秘密鍵を、各ノード50,51に割り当てられたノードIDと対応付けて記憶する。データ受信部531は、暗号化ピースを復号するための復号鍵を要求すると共に、上述したノードID列及び乱数列を含む鍵要求をノード51から受信する。
 一時対称鍵生成部533は、データ受信部531が受信した鍵要求に含まれるノードID列に含まれる各ノードIDに対応付けられて秘密鍵格納部530に記憶されている秘密鍵を読み出しこれと、当該鍵要求に含まれる乱数列に含まれる各乱数とを用いて、関数Fにより復号鍵を生成する。例えば、ノードID列に含まれる各ノードIDがID#0,…,ID#(j)であり、各ノードIDID#m(0≦m≦j)にr_m,s_mが各々対応しているものとする。この場合、mについて、復号鍵k_mを式により表すと以下のように表される。
k_m=F(s_m,r_m)
尚、関数Fは上述のノード51が一時対称鍵を生成する際に用いたものと同じである。従って、ここでは、一時情報と秘密鍵とを用いて当該関数Fにより一時対称鍵が復号鍵として復元されることになる。
 データ送信部534は、一時対称鍵生成部533が復号鍵として生成した一時対称鍵を、データ受信部531が受信した鍵要求を送信したノード51に対して送信する。例えば、上述の例では、鍵サーバ53は、図6に示されるノードID列及び乱数列を含む鍵要求に応じて、図7に示されるように、各乱数r_0,r_1に対して一時対称鍵k_0,k_1を得て、これをノード51Bに対して送信する。このように、1つのピースについてその全部又は一部に対して行われた全ての暗号化のそれぞれを復号するための各一時対称鍵がノード51Bに対して送信されることにより、ノード51Bは当該暗号化ピースの暗号化を完全に復号することができる。
 次に、本実施の形態にかかるデータ配信システムで行われる処理の手順について説明する。まず、配信開始ノードであるノード50が行う配信処理の手順について図9を用いて説明する。ノード50は、配信データを複数のピースに分割する(ステップS1)。そして、ノード50は、ピースを要求するピース要求を他のノード51から受信すると(ステップS2:YES)、乱数r_0を生成する(ステップS3)。次いで、ノード50は、乱数r_0と固有情報格納部500に記憶された秘密鍵s_0とを用いて関数Fにより対称鍵k_0を生成する(ステップS4)。そして、ノード50は、ステップS4で生成した対称鍵を用いて、送信対象となるピースPを暗号化して、暗号化ピースE(k_0)Pを出力する(ステップS5)。尚、送信対象となるピースをどのように決定するかは特に限定されない。
 図10は、ピースとこれをノード50が暗号化した暗号化ピースとを概念的に表した図である。同図に示されるように、ピース暗号化部503はピースP全体を暗号化して暗号化ピースE(k_0)Pを出力する。
 そして、ノード50は、ステップS2で受信されたピース要求を送信した他のノード51に対して、例えば図4に示されるように、固有情報格納部500に記憶されているノードIDID#0と、ステップS4で生成した乱数r_0と、ステップS5で出力した暗号化ピースE(k_0)Pとを送信する(ステップS6)。その後ステップS2に戻り、ノード50は、新たなピース要求の受信を待機する。尚、ステップS2で受信されるピース要求は、同一のノード51であるとは限らず、当該ピース要求によって要求されるピースPは、同一のピースであるとは限らない。また、ステップS3で生成する乱数は基本的にステップS3の処理毎に異なる。
 次に、ノード51がノード50又は他のノード51から暗号化ピースを受信する受信処理の手順について図11を用いて説明する。ノード51は、ピースを要求するピース要求をノード50又は他のノード51に対して送信する(ステップS10)。次いで、ノード51は、ステップS10でピース要求を送信した相手であるノード50又は他のノード51から、ノードID列と、乱数列と、暗号化ピースとを受信する(ステップS11)。そして、ノード51は、ステップS11で受信したノードID列、乱数列及び暗号化ピースを対応付けて記憶する(ステップS12)。
 尚、ノード51がノード50にピース要求を送信した場合は、ステップS11ではピースPについて図4に示されるノードID列と、乱数列と、暗号化ピースとを受信する。ここで、図示はしないが、P2PネットワークNTに接続されるノードであって、fを1以上の整数として、f番目にピースPを受信するノードについて一般化して説明する。説明の便宜上、当該ノードのノードIDをID#fとする。ノードIDID#fが割り当てられたノードは、(f-1)番目のノードIDID#(f-1)が割り当てられたノードから、図12に示されるように、ピースPについて、ノードID列ID#0,…,ID#(f-1)と、乱数r_0,…,r_{f-1}と、暗号化ピースE(k_{f-1})…E(k_0)Pとを受信する。これは即ち、ノードID#fが割り当てられたノードは、その一部について(f-1)回の暗号化が施された暗号化ピースを受信し、自身が暗号化を行なうことによりその一部についてf回の暗号化が施された暗号化ピースを送信することを意味する。なお、ノードID列ID#0,…,ID#(f-1)によって、暗号化ピースがどのノードによって暗号化されて送信されたかが各々特定されるため、暗号化ピースの配信経路が示されることになる。
 次に、配信開始ノード以外のノード51が行う配信処理の手順について図13を用いて説明する。ノード51は、あるピースPを要求するピース要求を他のノード51から受信すると(ステップS21:YES)、まずは乱数を生成する(ステップS22)。次いでノード51は、ステップS22で生成した乱数と、固有情報格納部510に記憶された秘密鍵とを用いて関数Fにより一時対称鍵を生成する(ステップS23)。次に、ノード51は、データ格納部517に記録されている暗号化ピースを複数に分割する(ステップS24)。
 図14は、暗号化ピースと、当該暗号化ピースに対して行なわれる処理を概念的に表した図である。同図の1段目に示される暗号化ピースEPが、n個(n:2以上の整数)に分割されて、2段目に示されるように複数の部分SP#1,SP#2,…,SP#nが得られる。説明の便宜上、これらをサブピースとし、これらに割り当てる番号1,2,…,nをサブピース番号とする。
 次に、ノード51は、送信対象の暗号化ピースと対応付けられてデータ格納部517に記憶されたノードID列に含まれるノードIDの個数を用いて暗号化回数を判定する。当該ノード51が、上述のノードIDID#fが割り当てられたノード51であるとし、当該ノードID列に含まれるノードIDがID#0,…,ID#(f-1)であるとき、ノードIDの個数は「f-1」であるため、暗号化回数は「f-1」である。この場合、ノード51は、当該暗号化回数「f-1」が、暗号化ピースを分割した分割数n以下であるか否かを判定する(ステップS25)。暗号化回数「f-1」が分割数n以下である場合(ステップS25:YES)、配信開始ノードであるノード50によりピース全体としての暗号化はされているものの、「f-1」より大きいサブピース番号の各サブピースSP#f,…,SP#nについては、当該ノード51又は他のノード51により1回も暗号化されていないということである。この場合、ノード51は、暗号化回数「f-1」に「1」を加え、その値fに相当するサブピース番号fのサブピースSP#fを暗号化部分として決定する(ステップS26)。更に、ノード51は、サブピースSP#fのサブピース番号fより大きいサブピース番号(f+1),…,nの各サブピースSP#(f+1),…,SP#nに対して各々可逆な変換を行う(ステップS27)。
 ここで、ステップS27でノード51が可逆な変換を行う処理の詳細な手順について図15を用いて説明する。尚、ここでは、ノード51は、可逆な変換として、XOR(排他的論理和)演算を行なうものとする。ノード51は、ステップS25で暗号化部分として決定したサブピースSP#fをXOR演算の第1入力とし(ステップS40)、第2入力とするサブピースを設定するためのインデックスlを「f+1」に設定する(ステップS41)。次いで、ノード51は、インデックスlが分割数n以下であるか否かを判定し(ステップS42)、インデックスlが分割数n以下である場合(ステップS42:YES)、第2入力としてサブピースSP#(f+1)を設定し、当該第2入力と第1入力であるサブピースSP#fとのXOR演算を行う(ステップS43)。そして、ノード51は、インデックスlに「1」を加えて(ステップS44)、ステップS42に戻る。インデックスlが分割数nより大きくなるまで(ステップS42:NO)、ステップS43~S44の処理を繰り返すことにより、ノード51は、各サブピースSP#{f+1},…,SP#nを各々第2入力として設定して当該第2入力と第1入力とのXOR演算を各々行なう。各サブピースSP#{f+1},…,SP#nに対してサブピースSP#fを用いてXOR演算が行なわれた結果、図14の3段目に示されるように、サブピースSP#{f+1} XOR SP#f,…,SP#n XOR SP#fが得られる。
 図13の説明に戻る。ステップS27の後、ノード51は、ステップS23で生成した一時対称鍵を用いて、ステップS25で暗号化部分として決定したサブピースSP#fを暗号化して、新たな暗号化ピースを出力する(ステップS28)。サブピースSP#fに対して一時対称鍵(k_fとする)を用いて暗号化が行なわれた結果、図14の4段目に示されるように、暗号化されたサブピースE(k_f)SP#fが得られる。尚、サブピースSP#fのサブピース番号fより小さいサブピース番号1,…,{f-1}の各サブピースSP#1,…,SP#{f-1}に対して暗号化及び可逆な変換のいずれも行われない。ここでは、これらのSP#1,…,SP#{f-1}と、暗号化されたサブピースE(k_f)SP#fと、可逆に変換されたサブピースSP#{f+1} XOR SP#f,…,SP#n XOR SP#fとを含むものが、新たな暗号化ピースとして出力される。その後ステップS29に進む。
 一方、ステップS25で、暗号化回数fが分割数nより大きい場合(ステップS25:NO)、各サブピースSP#1,…,SP#{f-1}は、当該ノード51又は他のノード51により既に1回以上暗号化されているということである。この場合、ノード51は、暗号化回数fを分割数nで割った余りである「f mod n」と同じ値のサブピース番号のサブピースSP#{f mod n}を暗号化部分として決定する(ステップS30)。そして、ノード51は、ステップS23で生成した一時対称鍵を用いて、ステップS28で暗号化部分として決定したサブピースSP#{f mod n}を暗号化して、新たな暗号化ピースを出力する(ステップS31)。サブピースSP#{f mod n}以外のサブピースに対しては暗号化及び可逆な変換のいずれも行われず、ここでは、サブピースSP#{f mod n}以外のサブピースと、暗号化されたサブピースE(k_f)SP#{f mod n}とを含むものが新たな暗号化ピースとして出力される。その後ステップS29に進む。
 ステップS29では、ノード51は、ステップS21で受信されたピース要求を送信した他のノード51に対して、送信対象である暗号化ピースに対応付けられてデータ格納部517に記憶されたノードIDに加え固有情報格納部510に記憶されたノードIDを含む新たなノードID列と、当該暗号化ピースに対応付けられてデータ格納部517に記憶された乱数列に加えステップS22で生成した乱数を含む新たな乱数列と、ステップS27又はS29で出力した新たな暗号化ピースとを送信する。
 ステップS28又はS31で出力された新たな暗号化ピースをE(k_f)…E(k_0)Pで表すと、ノードIDID#fが割り当てられたノード51は、(f+1)番目となるノードIDID#(f+1)が割り当てられたノード51に対して、図16に示されるように、ピースPについて、ノードID列ID#0,…,ID#(f-1),ID#fと、乱数列r_0,…,r_fと、暗号化ピースE(k_f)…E(k_0)Pとを送信する。
 以上のようにして、ノード51は、暗号化回数及び分割数に応じて、暗号化部分を決定して暗号化し、暗号化部分以外の一部に対して可逆な変換を行った暗号化ピースを送信する。これにより、暗号化ピースは、暗号化回数がn回に到達するまでは、配信の過程で暗号化が行われる毎に、n個に分割されたサブピースが順に暗号化され、当該ノード51又は他のノード51によって部分的な暗号化が行なわれていないサブピースに対して可逆な変換が行われた状態となる。また、暗号化回数がn回以上になると、暗号化ピースは、配信の過程で暗号化が行われる毎に、部分的な暗号化が既に行なわれた各サブピースに対して順に暗号化が重ねて行なわれた状態となる。
 次に、ノード51が鍵サーバ53から復号鍵を取得しこれを用いて暗号化ピースを復号する復号処理の手順について図17を用いて説明する。ノード51は、データ格納部517に記憶された暗号化ピースに対応付けられているノードID列及び乱数列を読み出し(ステップS50)、当該暗号化ピースを復号するための復号鍵を要求すると共に、当該ノードID列及び乱数列を含む鍵要求を鍵サーバ53に送信する(ステップS51)。次いで、ノード51は、ステップS30で送信された鍵要求に応じて鍵サーバ53から送信された一時対称鍵を復号鍵として受信し(ステップS52)、当該一時対称鍵を用いて暗号化ピースを復号する(ステップS53)。
 ここで、ステップS53でノード51が暗号化ピースを復号する処理の詳細な手順について図18を用いて説明する。尚、ここでは、ノード51は、ノードIDID#(f+1)が割り当てられたノードであるとし、鍵サーバ53に対して、図19に示されるように、ピースPについて、ノードID列ID#0,…,ID#(f-1),ID#fと、乱数列r_0,…,r_{f-1},r_fとを送信するものとする。そして、当該ノード51は、鍵サーバ53から、図20に示されるように、ピースPについて、一時対称鍵k_0,…,k_fを受信しているとする。まず、ノード51は、受信された各一時対称鍵と、暗号化ピースのうち当該各一時対称鍵を用いて復号可能な暗号化部分との対応関係を判別して各暗号化部分を復号するために、即ち、各一時対称鍵を用いて復号対象の暗号化ピースのうちいずれの暗号化部分を復号可能かを各々判別して復号するために、以下の処理を行う。ノード51は、復号対象の暗号化ピースを上述のようにn個のサブピースに分割し、各サブピースを各々復号すべく、復号対象のサブピースを設定するためのインデックスlを「f」に設定し(ステップS60)、インデックスlが分割数n以下であるか否かを判定する(ステップS61)。インデックスlが分割数n以下である場合(ステップS61:YES)、ノード51は、ステップS32で受信した一時対称鍵のうち一時対称鍵k_lを用いて復号可能な暗号化部分がサブピースSP#lであると判定して、当該一時対称鍵k_lを用いてサブピースSP#lを復号する(ステップS62)。一方、インデックスlが分割数nより大きい場合(ステップS61:NO)、ノード51は、ステップS32で受信した一時対称鍵のうち一時対称鍵k_lを用いて復号可能な暗号化部分がサブピースSP#(l mod n)であると判定して、当該一時対称鍵k_lを用いてサブピースSP#(l mod n)を復号する(ステップS63)。その後、ノード51は、インデックスl´の値から「1」を引いて(ステップS64)、インデックスl´の値が「1」以上であるか否かを判定して(ステップS65)、インデックスl´の値が「1」以上である場合(ステップS65:YES)、ステップS61に戻る。ノード51はこのようなステップS62又はS63の処理を、インデックスlの値が「1」より小さくなるまで繰り返す。
 インデックスlの値が「1」より小さくなった場合(ステップS65:NO)、ノード51は、XOR演算の対象となるサブピースを設定するためのインデックスl´を「0」に設定し(ステップS66)、XOR演算の第1入力をサブピースSP#l´に設定する(ステップS67)。尚、サブピースSP#l´に対する暗号化はステップS62又はS63で既に解かれている。そして、ノード51は、XOR演算の第1入力をサブピースSP#(l´+1),…,SP#nに各々設定して、各第2入力と第1入力とのXOR演算を各々行なう(ステップS68)。その後、ノード51は、インデックスl´の値に「1」を加え(ステップS69)、インデックスl´の値が「n-1」以下であるか否かを判定して(ステップS70)、インデックスl´の値が「n-1」以下である場合(ステップS70:YES)、ステップS67に戻る。ノード51はこのようなステップS67~S69の処理を、インデックスl´の値が「n-1」より大きくなるまで繰り返す。これにより、ノード51は、ステップS27で行なった変換の逆変換を行う。そして、インデックスl´の値が「n-1」より大きくなった場合(ステップS70:NO)、ノード51は、一時対称鍵k_0を用いて暗号化ピース全体を復号する。この結果、図14の2段目に示されるように、各サブピースが各々復号されると共にその全体に対して最初に行なわれた暗号化が解かれた状態のピースが得られる。
 その後、ノード51は、暗号化ピース全体に対して配信開始ノードであるノード50が行なった暗号化を解くために、ステップS32で受信した一時対称鍵のうち一時対称鍵k_0を用いて、ステップS60~70の結果得られた暗号化ピースを復号して、ピースを得る(ステップS71)。このようにして、各ノード51は、各ピースについて行われている暗号化を復号するための一時対称鍵を全て得ることにより、各ピースについて行われている暗号化を解くことができると共に逆変換を行うことができ、当該暗号化ピースを完全に復元することが可能になる。従って、各ノード51は、複数のピースのそれぞれが暗号化された各暗号化ピースについて鍵要求によって各一時対称鍵を鍵サーバ53から受信し、各暗号化ピースを復元することにより、上述の配信データを得ることができる。
 次に、鍵サーバ53がノード51からの鍵要求に応じて復号鍵を送信する鍵送信処理の手順について図21を用いて説明する。鍵サーバ53は、暗号化ピースを復号するための復号鍵を要求すると共に、ノードID列及び乱数列を含む鍵要求をノード51から受信すると(ステップS80:YES)、受信した鍵要求に含まれるノードID列に含まれる各ノードIDに対応付けられて秘密鍵格納部530に記憶されている秘密鍵をノードID毎に読み出す(ステップS81)。そして鍵サーバ53は、全てのノードIDに対する乱数と、ステップS81で読み出した秘密鍵とを用いてノードID毎に関数Fにより一時対称鍵を復号鍵として生成する(ステップS82)。次いで、鍵サーバ53は、ステップS82で復号鍵として生成した一時対称鍵を、ステップS80で受信した鍵要求を送信したノード51に対して送信する(ステップS83)。
 例えば、鍵サーバ53は、上述したノードIDID#(f+1)が割り当てられたノードに対して、ピースPについて、図19に示されるようなノードID列及び乱数列を含む鍵要求に応じて、図20に示されるような一時対称鍵k_0,…,k_fを送信する。
 以上のような構成によれば、あるノードが取得する暗号化ピースの組み合わせは配信経路と配信時期とに固有のものとなり、確実に一意となり得る。このような構成によれば、P2P配信において配信方法に関する特別な工夫をしなくても、各ノードが取得する各暗号化ピースの組み合わせについてノード毎の一意性を確実に高めることができ、安全性を向上させることができる。更に、データの保護とデータの配信方法との独立性を維持することが可能になり、システム構築上の自由度を向上させることが可能になる。
 例えば、各ノード51が複数のピースのそれぞれが暗号化された暗号化ピースを全て取得したとする。各暗号化ピースの配信経路は様々である。従って、暗号化ピースが異なれば、配信経路が異なる可能性が高いため、各暗号化ピースに対応付けられるノードIDの組み合わせは異なっている可能性が高い。また、異なる暗号化ピースの配信経路が同じ場合、各暗号化ピースに対応付けられるノードIDの組み合わせは同じになるが、各ノードに対応する乱数は異なる。
 例えば、配信データがP1~PNのN個(N:2以上の整数)に分割されているものとする。このとき、上述したノードIDID#fが割り当てられたノードは、例えば、ピースP1について、以下のデータを対応付けて記憶しているものとする。
ノードID列:ID#0,ID#1,…,ID#(f-1)
乱数列:r_0,r_1,…,r_{f-1}
暗号化ピース:E(k_t)…E(k_0)P1
 また、当該ノードは、別のピースP2について、f番目ではなくi番目に暗号化ピースを受信するものとして、以下のデータを対応付けて記憶しているものとする。
ノードID列:ID#0,ID’#1,…,ID’#(i-1)
乱数列:r_0,r´_1,…,r´_{i-1}
暗号化ピース:E({k´_(i-1)})…E(k´_1)E(k_0)P2
尚、ID’#1,…,ID’#(i-1)はID#1,…,ID#(j-1)とは異なったノードIDの系列である。また、r_0,r´_1,…,r´_{i-1}は、ID’#1,…,ID’#(i-1)の各ノードIDが割り当てられた各ノードが生成した乱数であり、各々その都度異なるものである。また、k_0はノード50が生成した一時対称鍵であり、k´_1,…,k´_(i-1)は、各ノードIDID#1,…,ID#(i-1)が割り当てられた各ノードにより生成された一時対称鍵である。
 このように、同一のノードにおいても、ピース毎に、暗号化ピースを復号するために必要な一時対称鍵は各々異なる。また、ノードが異なれば、同一のピースであっても、各暗号化ピースを復号するために必要な一時対称鍵は各々異なる。従って、ノードが異なれば、複数のピースのそれぞれついて、その暗号化ピースの組み合わせは各々異なる。つまり、配信データを構成する全てのピースのそれぞれが暗号化された暗号化ピースの組み合わせは、ノード毎に確実に異なりえる。故に、本実施の形態によれば、各ノードが取得する各暗号化ピースの組み合わせについてノード毎の一意性を確実に高めることができるのである。
 更に、ノード51が他のノード51に暗号化ピースを送信する際に、暗号化ピースの全部ではなく一部を暗号化することで、暗号化ピースを復号する際にかかる処理負担を軽減することができる。例えば、動画コンテンツをリアルタイムで再生する場合にはその効果が顕著である。
[変形例]
 なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
 上述した実施の形態において、各ノード50で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また当該プログラムを、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)、CD-R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。この場合には、プログラムは、各ノード50において上記記録媒体から読み出して実行することにより主記憶装置(例えばRAM)上にロードされ、上記機能的構成において説明した各部が主記憶装置上に生成される。鍵サーバ53で実行される各種プログラムについても同様である。
 また、上述した実施の形態において、各ノード50の機能的構成において説明した各部のうち全部又は一部をハードウェアにより構成しても良い。鍵サーバ53の機能的構成において説明した各部のうち全部又は一部についても同様である。
 上述した実施の形態において、ノードIDは、各ノードを一意に識別可能な情報であれば良く、例えば、各ノードのIPアドレスや、MACアドレスや、URLなどであっても良い。
 上述した実施の形態のデータ配信システムにおいては、配信開始ノードの数は複数であっても良い。また、P2PネットワークNTに接続されるこの他のノードの数も特に限定されない。
 上述の実施の形態においては、1つのピース要求によって複数のピースが要求されるようにしても良い。この場合、ノード50,51は、複数のピースのそれぞれについて上述したように暗号化ピース、ノードID列及び乱数列の組を、ピース要求を送信した他のノード51に送信すれば良い。
 また、上述の実施の形態においては、ノード50,51は、ピース要求に応じて暗号化ピースを送信する構成としたが、これに限らず、ピース要求を受信しなくとも、他のノード51に暗号化ピースと共にIDノード列及び乱数列を送信するようにしても良い。
 上述の実施の形態においては、ノード51は、配布データを構成する全てのピースについて暗号化ピースが取得されデータ格納部517に記憶された場合に、各暗号化ピースを復号するための鍵要求を鍵サーバ53に送信するようにしても良い。又は、ノード51は、配布データを構成する全てのピースについて暗号化ピースが取得されていない場合であっても、データ格納部517に記憶された暗号化ピースを復号するための鍵要求を鍵サーバ53に送信するようにしても良い。また、ノード51は、1つの鍵要求によって、1つの暗号化ピースを復号するための復号鍵を要求するようにしても良いし、複数の暗号化ピースを復号するための各復号鍵を要求するようにしても良い。
 上述の実施の形態においては、ピースの暗号化には、暗号鍵でもあり、暗号化を復号するための復号鍵でもある一時対称鍵を用いた。しかし、ピースの暗号化に用いる暗号鍵と、暗号化ピースに対して行われている暗号化を復号するための復号鍵とは各々別であるとしても良い。例えば公開鍵を暗号鍵として用いても良い。
 また、上述の実施の形態においては、ノード50,51は、データ格納部517に記憶された暗号化ピースを他のノード51に送信する場合、その都度、乱数を生成するようにした。しかし、ノード50,51は、乱数をその都度生成するのではなく、例えば、暗号化ピースの送信回数に応じて発生させるようにしても良い。例えば、ノード50,51は、暗号化ピースの送信を所定の回数(例えば5回)行う毎に新たな乱数を生成するようにしても良い。また、ノード50,51が乱数を生成するタイミングは、他のノード51からピース要求を受信したときであっても良いし、所定の時間毎であっても良い。
 上述の実施の形態においては、ノード51が他のノード51に暗号化ピースと共に送信するノードID列及び乱数列は、図4~5,12,16に示される形態に限らない。例えば、(ID#0,r_0),(ID#1,r_1)…(ID#f,r_f)などのように、ノードIDと当該ノードIDに対応する乱数との組をノードID毎に示す形態であっても良い。
 上述の実施の形態においては、各ノード50,51に一意に割当られた秘密情報として秘密鍵を用いたが、これに限らない。
 また、上述の実施の形態においては、秘密鍵は、各ノード50,51に一意に割当られているとしたが、これに限らない。例えば、各ノード50,51のうち一部のノードに同一の秘密鍵が割り当てられるようにしても良い。
 上述の実施の形態においては、暗号化ピースに対して、配信の過程で暗号化が行われる毎に、暗号化部分となるサブピースが左から順に暗号化されるように構成したが、これに限らず、右から順やランダムな順番で暗号化されるようにしても良い。
 また、上述の実施の形態においては、ノード51は、暗号化ピースを暗号化する際に、当該暗号化ピースを複数のサブピースに分割していたが、分割の仕方は等分であっても良いし、等分でなくても良いし、分割数nは固定ではなく可変であっても良い。また、各ノード51は、当該暗号化ピースを分割せずに、暗号化ピースのデータのうちの一部のデータ範囲を暗号化部分として選択してこれを暗号化するようにしても良い。
 また、上述の実施の形態においては、ノード51は、データ格納部517に記憶された暗号化ピースの一部を暗号化して他のノード51に送信する場合、当該ノード51が暗号化する暗号化部分が、当該ノード51に送信したノード51が暗号化した暗号化部分と重複しないようにしたが、重複するようにしても良い。
 上述の実施の形態においては、各ノード51は、ノードID列に含まれるノードIDの個数を用いて暗号化回数を判定し、当該暗号化回数に応じて暗号化部分を決定した。しかし、これに限らず、例えば、暗号化ピースを送信するノード50,51(送信元ノードという)が、当該暗号化ピースを受信するノード51(送信先ノードという)に対して、暗号化すべき暗号化部分を指定するようにしても良い。暗号化部分の指定は、例えば、上述のように暗号化ピースがn個のサブピースに分割される際のサブピース番号であっても良いし、暗号化ピースのうちの一部のデータのデータ範囲であっても良い。このように暗号化部分を指定する指定情報を、ノードID列、乱数列及び暗号化ピースと共に送信元ノードから送信先ノードに送信する。そして、送信先ノードは、当該指定情報をノードID列、乱数列及び暗号化ピースと共に記憶する。当該暗号化ピースを新たな送信先ノードに送信する際には、指定情報によって指定された暗号化部分を上述の一時対称鍵で暗号化した後、次に送信先となる送信先ノードが暗号化すべき暗号化部分を決定して、当該暗号化部分を指定する指定情報を生成し、当該指定情報及び送信元ノードから受信した指定情報(指定情報列という)を、自身のノードIDを含むノードID列、自身が生成した乱数を含む乱数列及び新たな暗号化ピースと共に新たな送信先ノードに送信する。尚、送信元ノードから受信した指定情報については、当該新たな送信先ノードにとっては、暗号化ピースのうち既に暗号化された暗号化部分を指定する情報となる。新たな送信先ノードは、指定情報列、ノードID列、乱数列及び新たな暗号化ピースを受信するとこれらを対応付けて記憶する。そして当該ノードは、当該暗号化ピースの復号を行う際は、上述と同様にして鍵サーバ53から一時対称鍵を取得し、各指定情報によって指定された各暗号化部分を、各一時対称鍵を用いて復号する。尚、配信開始ノードであるノード50が暗号化する部分は上述のようにピース全体であるから、ノード51は、指定情報を用いることなく、ノード50に対応する一時対称鍵を用いて暗号化ピース全体を復号することができる。以上のような構成によっても、ピースを正しく復元することができつつ、復号にかかる処理負担を軽減することができる。
 また、指定情報としては、例えば、送信対象の暗号化ピースに対して行う暗号化の手順そのものが記述されているようなVMコードや、送信対象の暗号化ピースのうち暗号化部分を決定する手順そのものが記述されているようなVMコードなどの手順情報でも良い。この場合、ノード51は、暗号化ピースを他のノード51に送信する際には、当該暗号化ピースと対応付けられて記憶された手順情報に示される手順に従って、暗号化部分を決定し、暗号化した後の新たな暗号化ピースを、上述のノードID列及び乱数列と共に手順情報を加えて他のノード51に送信すれば良い。また、ノード51は、暗号化ピースを復号する際には、当該暗号化ピースと対応付けられて記憶された手順情報に示される手順を用いて、鍵サーバ53から受信した各一時対称鍵と、暗号化ピースのうち当該各一時対称鍵を用いて復号可能な暗号化部分との対応関係を判別して各暗号化部分を復号すれば良い。
上述の実施の形態においては、暗号化回数に応じて、送信対象の暗号化ピースのうち暗号化部分以外の一部に対して行なう可逆な変換として、暗号化部分を第1入力としたXOR演算を行なうようにした。しかし、これに限らず、第1入力として暗号化部分を用いなくても良いし、変換の方法は、行なった変換に対して逆変換を行うことにより復元が可能である可逆な変換であれば、XOR演算ではなくても良い。
 又は、送信対象の暗号化ピースのうち暗号化部分以外の一部に対して可逆な変換を行わないようにしても良い。
 上述の実施の形態においては、上述した暗号化ピース、ノードID列及び乱数列をパッケージ化したパッケージデータの形態で配布されるように構成しても良い。この場合、パッケージデータはコンピュータで読み取り可能な記録媒体に記録されてノードに提供されるようにしても良いし、サーバを介してノードにダウンロードされるように構成しても良い。当該パッケージデータを取得したノードは、ピース要求に応じて、上述の実施の形態と同様にして、当該パッケージデータに含まれる暗号化ピースに対して暗号化を行った暗号化ピースと、パッケージデータに含まれるノードID及び自身のノードIDと、パッケージデータに含まれる乱数列及び自身が生成した乱数とを他のノードに送信すれば良い。
50,51,51A,51B ノード
53 鍵サーバ
500 固有情報格納部
501 乱数生成部
502 一時対称鍵生成部
503 ピース暗号化部
504 ピース化部
505 データ送信部
506 送信要求受付部
510 固有情報格納部
511 乱数生成部
512 一時対称鍵生成部
513 ピース暗号化部
514 データ受信部
515 データ送信部
516 送信要求受付部
517 データ格納部
518 送信要求送信部
519 鍵要求送信部
520 ピース復号部
521 暗号化部分決定部
530 秘密鍵格納部
531 データ受信部
533 一時対称鍵生成部
534 データ送信部
NT P2Pネットワーク

Claims (24)

  1.  データの一部であるピースを暗号化して送信する通信装置であって、
     他の通信装置によって暗号化されたピースである第1暗号化ピースと、当該他の通信装置に割り当てられた第1装置識別情報と、当該他の通信装置が暗号化する際に生成した第1一時情報とを受信する受信手段と、
     前記第1暗号化ピースと、前記第1装置識別情報と、前記第1一時情報とを対応付けて記憶する第1記憶手段と、
     当該通信装置に割り当てられた第2装置識別情報を記憶する第2記憶手段と、
     その生成毎に異なり得る第2一時情報を生成する第1生成手段と、
     前記第2一時情報を用いて一時対称鍵を生成する第2生成手段と、
     前記第1暗号化ピースのうち暗号化する第1部分を決定する第1決定手段と、
     前記一時対称鍵を用いて前記第1部分を更に暗号化して、第2暗号化ピースを出力する暗号化手段と、
     前記第2暗号化ピースと、前記第1装置識別情報と、前記第2装置識別情報と、前記第1一時情報と、前記第2一時情報とを送信する送信手段とを備える
    ことを特徴とする通信装置。
  2.  前記第1暗号化ピースを複数に分割する分割手段を更に備え、
     前記第1決定手段は、分割された前記第1暗号化ピースのうちいずれかの部分である前記第1部分を決定する
    ことを特徴とする請求項1に記載の通信装置。
  3.  前記第1決定手段は、前記第1暗号化ピースと対応付けられて記憶された前記第1装置識別情報の個数及び前記第1暗号化ピースが分割された数に応じて、前記第1部分を決定する
    ことを特徴とする請求項2に記載の通信装置。
  4.  前記受信手段は、前記第1暗号化ピースと、前記第1装置識別情報と、前記第1一時情報と、当該第1暗号化ピースのうち暗号化する前記第1部分を指定する第1指定情報とを受信し、
     前記第1決定手段は、前記第1指定情報によって指定された前記第1部分を判別することにより、前記第1部分を決定し、
     前記送信手段は、前記第2暗号化ピースと、前記第1装置識別情報と、前記第2装置識別情報と、前記第1一時情報と、前記第2一時情報と、前記第1指定情報と、前記第2暗号化ピースのうち次に暗号化する第2部分を指定する第2指定情報とを送信する
    ことを特徴とする請求項1に記載の通信装置。
  5.  前記第2暗号化ピースのうち次に暗号化する第2部分を決定する第2決定手段と、
     前記第2部分を指定する第2指定情報を生成する生成手段とを更に備える
    ことを特徴とする請求項4に記載の通信装置。
  6.  前記受信手段は、前記第1暗号化ピースと、前記第1装置識別情報と、前記第1一時情報と、前記第1部分を決定する手順又は前記第1暗号化ピースに対して行なう暗号化の手順を示す手順情報とを受信し、
     前記第1決定手段は、前記手順情報によって指定された前記手順に従って、前記第1部分を決定し、
     前記送信手段は、前記第2暗号化ピースと、前記第1装置識別情報と、前記第2装置識別情報と、前記第1一時情報と、前記第2一時情報と、前記手順情報とを送信する
    ことを特徴とする請求項1に記載の通信装置。
  7.  前記暗号化手段は、
     前記一時対称鍵を用いて前記第1部分を更に暗号化する部分暗号化手段と、
     前記第1暗号化ピースのうち前記第1部分以外の全部又は一部である第3部分に対して可逆な変換を行う変換手段と、
     暗号化された前記第1部分及び可逆な変換が行なわれた前記第3部分を含む第2暗号化ピースを出力する出力手段とを有する
    ことを特徴とする請求項1に記載の通信装置。
  8.  前記変換手段は、前記第1暗号化ピースのうち前記第1部分以外であって、当該第3部分自体に対する暗号化は行なわれていない第3部分に対して可逆な変換を行う
    ことを特徴とする請求項7に記載の通信装置。
  9.  前記変換手段は、前記第3部分に対して前記第1部分を用いて可逆な変換を行う
    ことを特徴とする請求項7に記載の通信装置。
  10.  前記第2記憶手段は、当該通信装置に割り当てられている秘密情報を更に記憶し、
     前記第2生成手段は、前記第2一時情報と前記秘密情報とを用いて前記一時対称鍵を生成する
    ことを特徴とする請求項1に記載の通信装置。
  11.  前記第2生成手段は、前記第2一時情報と前記秘密情報とを用いて一方向性関数、共通鍵暗号、あるいは擬似乱数生成器により前記一時対称鍵を生成する
    ことを特徴とする請求項10に記載の通信装置。
  12.  前記ピースを要求するピース要求を受信する要求受信手段を更に備え、
     前記第1生成手段は、前記ピース要求が受信された場合に、前記第2一時情報を生成する
    ことを特徴とする請求項1に記載の通信装置。
  13.  データの一部であるピースを受信する通信装置であって、
     他の通信装置によって暗号化されたピースである暗号化ピースと、当該他の通信装置に割り当てられている装置識別情報と、当該他の通信装置がピースを暗号化する際に生成した一時情報とを受信する第1受信手段と、
     受信された前記暗号化ピース、前記装置識別情報及び前記一時情報を対応付けて記憶する記憶手段と、
     前記暗号化ピースを復号するための復号鍵を要求すると共に、当該暗号化ピースと対応付けられて記憶された前記装置識別情報及び前記一時情報を対応付けて含む鍵要求を鍵サーバへ送信する送信手段と、
     前記鍵要求に応じて前記鍵サーバから、前記ピースについて行われた暗号化を復号するための各復号鍵を受信する第2受信手段と、
     受信された各前記復号鍵と、前記暗号化ピースのうち当該各復号鍵を用いて復号可能な各第1部分との対応関係を判別する判別手段と、
     前記判定手段の判定の結果に応じて、各前記復号鍵を用いて前記暗号化ピースの各第1部分を復号する復号手段とを備える
    ことを特徴とする通信装置。
  14.  前記暗号化ピースは、前記他の通信装置が各前記一時情報を少なくとも用いて生成した一時対称鍵によって各々暗号化されており、
     前記第2受信手段は、前記一時対称鍵である前記復号鍵を前記鍵サーバから受信し、
     前記復号手段は、前記判定手段の判定の結果に応じて、各前記一時対称鍵である各前記復号鍵を用いて前記暗号化ピースの各第1部分を復号する
    ことを特徴とする請求項13に記載の通信装置。
  15.  前記装置識別情報は、前記一時情報と共に順序付けられて前記記憶手段に記憶されており、
     前記第2受信手段は、前記装置識別情報に各々対応する前記復号鍵を受信し、
     前記判定手段は、
     前記暗号化ピースを複数に分割する分割手段と、
     前記装置識別情報の順序及び前記暗号化ピースが分割された数に応じて、前記復号鍵を用いて復号可能な各前記第1部分を判別し、
     前記復号手段は、前記判定手段の判定の結果に応じて、各前記復号鍵を用いて各前記第1部分を復号する
    ことを特徴とする請求項13に記載の通信装置。
  16.  前記第1受信手段は、前記暗号化ピースと、前記装置識別情報と、前記一時情報と、前記暗号化ピースのうち暗号化された部分を指定する指定情報とを受信し、
     前記記憶手段は、前記暗号化ピース、前記装置識別情報、前記一時情報及び前記指定情報を対応付けて記憶し、
     前記判別手段は、前記指定情報を用いて、各前記復号鍵と、前記暗号化ピースのうち当該各復号鍵を用いて復号可能な各前記第1部分との対応関係を判別する
    ことを特徴とする請求項13に記載の通信装置。
  17.  前記第1受信手段は、前記暗号化ピースと、前記装置識別情報と、前記一時情報と、前記第1暗号化ピースのうち暗号化する前記第1部分を決定する手順又は前記第1暗号化ピースに対して行なう暗号化の手順を示す手順情報とを受信し、
     前記記憶手段は、受信された前記暗号化ピース、前記装置識別情報、前記一時情報及び前記指定情報を対応付けて記憶し、
     前記判別手段は、前記手順情報を用いて、各前記復号鍵と、前記暗号化ピースのうち当該各復号鍵を用いて復号可能な各前記第1部分との対応関係を判別する
    ことを特徴とする請求項13に記載の通信装置。
  18.  前記暗号化ピースは、前記暗号化ピースのうち前記第1部分に対する暗号化と共に当該第1部分以外の全部又は一部である第2部分に対して可逆な変換が行われており、
     前記復号手段は、
     前記判定手段の判定の結果に応じて、各前記復号鍵を用いて各前記第1部分を復号する部分復号手段と、
     前記第1部分に対する暗号化と共に共に可逆な変換が行なわれた前記第2部分に対して逆変換を行う逆変換手段とを有する
    ことを特徴とする請求項13に記載の通信装置。
  19.  前記暗号化ピースは、前記暗号化ピースのうち前記第1部分に対する暗号化と共に当該第1部分以外の全部又は一部である第2部分に対して前記第1部分を用いて可逆な変換が行われており、
     前記逆変換手段は、復号された前記第1部分を用いて前記第2部分に対して逆変換を行う
    ことを特徴とする請求項18に記載の通信装置。
  20.  前記暗号化ピースは、前記ピースの全部が暗号化された後に、各前記第1部分が各々暗号化されており、
     前記復号手段は、前記判定手段の判定の結果に応じて、各前記復号鍵を用いて、各前記第1部分及び前記暗号化ピースの全部を復号する
    ことを特徴とする請求項13に記載の通信装置。
  21.  前記暗号化ピースは、前記他の通信装置が前記一時情報及び当該他の通信装置に割り当てられた秘密情報を用いて生成した一時対称鍵により暗号化されており、
     前記第2受信手段は、前記一時対称鍵である復号鍵を前記鍵サーバから受信する
    ことを特徴とする請求項14に記載の通信装置。
  22.  データの一部であるピースを暗号化して送信する通信装置で実行される通信方法であって、
     前記通信装置は、受信手段と、記憶制御手段と、第1生成手段と、第2生成手段と、第1決定手段と、暗号化手段と、送信手段とを備え、
     前記受信手段が、他の通信装置によって暗号化されたピースである第1暗号化ピースと、当該他の通信装置に割り当てられた第1装置識別情報と、当該他の通信装置が暗号化する際に生成した第1一時情報とを受信する受信ステップと、
     前記記憶制御手段が、前記第1暗号化ピースと、前記第1装置識別情報と、前記第1一時情報とを対応付けて記憶手段に記憶させる記憶制御ステップと、
     前記第1生成手段が、その生成毎に異なり得る第2一時情報を生成する第1生成ステップと、
     前記第2生成手段が、前記第2一時情報を用いて一時対称鍵を生成する第2生成ステップと、
     前記第1決定手段が、前記第1暗号化ピースのうち暗号化する第1部分を決定する第1決定ステップと、
     前記暗号化手段が、前記一時対称鍵を用いて前記第1部分を更に暗号化して、第2暗号化ピースを出力する暗号化ステップと、
     前記送信手段が、前記第2暗号化ピースと、前記第1装置識別情報と、当該通信装置に割り当てられた第2装置識別情報と、前記第1一時情報と、前記第2一時情報とを送信する送信ステップとを含む
    ことを特徴とする通信方法。
  23.  データの一部である複数のピースを暗号化して送信する通信装置の有するコンピュータを、
    他の通信装置によって暗号化されたピースである第1暗号化ピースと、当該他の通信装置に割り当てられた第1装置識別情報と、当該他の通信装置が暗号化する際に生成した第1一時情報とを受信する受信手段と、
     前記第1暗号化ピースと、前記第1装置識別情報と、前記第1一時情報とを対応付けて記憶手段に記憶させる記憶制御手段と、
     その生成毎に異なり得る第2一時情報を生成する第1生成手段と、
     前記第2一時情報を用いて一時対称鍵を生成する第2生成手段と、
     前記第1暗号化ピースのうち暗号化する第1部分を決定する第1決定手段と、
     前記一時対称鍵を用いて前記第1部分を更に暗号化して、第2暗号化ピースを出力する暗号化手段と、
     前記第2暗号化ピースと、前記第1装置識別情報と、当該通信装置に割り当てられた第2装置識別情報と、前記第1一時情報と、前記第2一時情報とを送信する送信手段として機能させるためのプログラム。
  24.  データの一部であるピースを受信する通信装置の有するコンピュータを、
     他の通信装置によって暗号化されたピースである暗号化ピースと、当該他の通信装置に割り当てられている装置識別情報と、当該他の通信装置がピースを暗号化する際に生成した一時情報とを受信する第1受信手段と、
     受信された前記暗号化ピース、前記装置識別情報及び前記一時情報を対応付けて記憶手段に記憶させる記憶制御手段と、
     前記暗号化ピースを復号するための復号鍵を要求すると共に、当該暗号化ピースと対応付けられて記憶された前記装置識別情報及び前記一時情報を対応付けて含む鍵要求を鍵サーバへ送信する送信手段と、
     前記鍵要求に応じて前記鍵サーバから、前記ピースについて行われた暗号化を復号するための各復号鍵を受信する第2受信手段と、
     受信された各前記復号鍵と、前記暗号化ピースのうち当該各復号鍵を用いて復号可能な各第1部分との対応関係を判別する判別手段と、
     前記判定手段の判定の結果に応じて、各前記復号鍵を用いて前記暗号化ピースの各第1部分を復号する復号手段として機能させるためのプログラム。
PCT/JP2009/067810 2008-12-11 2009-10-14 通信装置、通信方法及びプログラム WO2010067660A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-315611 2008-12-11
JP2008315611A JP2010141567A (ja) 2008-12-11 2008-12-11 通信装置、通信方法及びプログラム

Publications (1)

Publication Number Publication Date
WO2010067660A1 true WO2010067660A1 (ja) 2010-06-17

Family

ID=42242652

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/067810 WO2010067660A1 (ja) 2008-12-11 2009-10-14 通信装置、通信方法及びプログラム

Country Status (2)

Country Link
JP (1) JP2010141567A (ja)
WO (1) WO2010067660A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010004269A (ja) * 2008-06-19 2010-01-07 Toshiba Corp 通信装置、鍵サーバ及びデータ
CN103916842A (zh) * 2012-12-30 2014-07-09 北京握奇数据系统有限公司 一种用户id和外接设备进行绑定和校验的方法
CN115242815A (zh) * 2022-07-14 2022-10-25 山石网科通信技术股份有限公司 一种数据云存储方法、装置,管理服务器及用户终端

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5713693B2 (ja) * 2011-01-17 2015-05-07 Kddi株式会社 ストレージ装置、ストレージ方法およびプログラム
JP2012151849A (ja) * 2011-01-19 2012-08-09 Nhn Business Platform Corp P2p基盤のストリーミングサービスのデータストリームをパケット化するシステムおよび方法
US9584402B2 (en) * 2014-01-27 2017-02-28 Fasetto, Llc Systems and methods for peer to peer communication

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002185448A (ja) * 2000-12-15 2002-06-28 Cognitive Research Laboratories Inc データセキュリティを強化したデータ配信システム
JP2006222674A (ja) * 2005-02-09 2006-08-24 Ntt Comware Corp コンテンツ配信システム、コンテンツ配信方法、およびプログラム
JP2008140050A (ja) * 2006-11-30 2008-06-19 Brother Ind Ltd ネットワークシステム、配信制御装置並びに配信方法及び配信制御用プログラム
JP2008192129A (ja) * 2007-01-09 2008-08-21 Docomo Technology Inc ネットワークデータ分散共有システム
JP2008271476A (ja) * 2007-04-25 2008-11-06 Konica Minolta Holdings Inc 暗号通信処理方法及び暗号通信処理装置
JP2009153091A (ja) * 2007-11-26 2009-07-09 Toshiba Corp 通信装置、鍵サーバ、管理サーバ、通信サーバ、通信方法及びプログラム
JP2009232393A (ja) * 2008-03-25 2009-10-08 Toshiba Corp 通信装置、システム、送信方法及びプログラム
JP2009272927A (ja) * 2008-05-08 2009-11-19 Toshiba Corp 通信装置、サーバ、及びプログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002185448A (ja) * 2000-12-15 2002-06-28 Cognitive Research Laboratories Inc データセキュリティを強化したデータ配信システム
JP2006222674A (ja) * 2005-02-09 2006-08-24 Ntt Comware Corp コンテンツ配信システム、コンテンツ配信方法、およびプログラム
JP2008140050A (ja) * 2006-11-30 2008-06-19 Brother Ind Ltd ネットワークシステム、配信制御装置並びに配信方法及び配信制御用プログラム
JP2008192129A (ja) * 2007-01-09 2008-08-21 Docomo Technology Inc ネットワークデータ分散共有システム
JP2008271476A (ja) * 2007-04-25 2008-11-06 Konica Minolta Holdings Inc 暗号通信処理方法及び暗号通信処理装置
JP2009153091A (ja) * 2007-11-26 2009-07-09 Toshiba Corp 通信装置、鍵サーバ、管理サーバ、通信サーバ、通信方法及びプログラム
JP2009232393A (ja) * 2008-03-25 2009-10-08 Toshiba Corp 通信装置、システム、送信方法及びプログラム
JP2009272927A (ja) * 2008-05-08 2009-11-19 Toshiba Corp 通信装置、サーバ、及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SATORU KUROKAWA: "Study on the Distributed Data Sharing Mechanism with a Mutual Authentication", IEICE TECHNICAL REPORT, vol. 106, no. 578, 1 March 2007 (2007-03-01), pages 203 - 206 *
SATORU KUROKAWA: "Study on the Distributed Data Sharing Mechanism with a Mutual Authentication", PROCEEDINGS OF THE 2007 IEICE GENERAL CONFERENCE, - 7 March 2007 (2007-03-07), pages S-35 - S-36 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010004269A (ja) * 2008-06-19 2010-01-07 Toshiba Corp 通信装置、鍵サーバ及びデータ
US8548169B2 (en) 2008-06-19 2013-10-01 Kabushiki Kaisha Toshiba Communication apparatus, key server, and data
CN103916842A (zh) * 2012-12-30 2014-07-09 北京握奇数据系统有限公司 一种用户id和外接设备进行绑定和校验的方法
CN103916842B (zh) * 2012-12-30 2017-11-24 北京握奇数据系统有限公司 一种用户id和外接设备进行绑定和校验的方法
CN115242815A (zh) * 2022-07-14 2022-10-25 山石网科通信技术股份有限公司 一种数据云存储方法、装置,管理服务器及用户终端

Also Published As

Publication number Publication date
JP2010141567A (ja) 2010-06-24

Similar Documents

Publication Publication Date Title
JP5395372B2 (ja) 通信装置、鍵サーバ及びデータ
JP4596256B2 (ja) 送受信システムおよび方法、送信装置および方法、受信装置および方法、並びにプログラム
JP3901909B2 (ja) 暗号化装置およびプログラムを記録した記録媒体
US8184807B2 (en) Content distribution/browsing system, content distribution apparatus, content browsing apparatus and program
CN102611549B (zh) 数据加密设备和存储卡
RU2005105304A (ru) Способ шифрования и дешифрования и устройство для его осуществления
WO2010067660A1 (ja) 通信装置、通信方法及びプログラム
CN102187617A (zh) 密码系统
JP2007142591A (ja) 暗号管理方法
JP7318490B2 (ja) 暗号処理システム及び暗号処理方法
JP2010004390A (ja) 通信装置、鍵サーバ及びデータ
JP2010124071A (ja) 通信装置、通信方法及びプログラム
JP2006311383A (ja) データ管理方法、データ管理システムおよびデータ管理装置
JP2009272927A (ja) 通信装置、サーバ、及びプログラム
JP2013243441A (ja) 秘密分散システム、データ分散装置、データ復元装置、秘密分散方法、およびプログラム
CN109923829A (zh) 对秘密值达成一致
JP5512559B2 (ja) 暗号化装置、復号装置、暗号化システム、暗号化方法、プログラム
JP2007041756A (ja) 情報処理装置および方法、プログラム、並びに、セキュリティチップ
WO2019220900A1 (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム
Lei et al. Towards efficient re-encryption for secure client-side deduplication in public clouds
WO2010067650A1 (ja) 通信装置、サーバ、通信方法及びプログラム
JP2007189597A (ja) 暗号化装置および暗号化方法、並びに復号化装置および復号化方法
JP5586758B1 (ja) 動的暗号化鍵生成システム
CN112954388A (zh) 一种数据文件的获取方法、装置、终端设备和存储介质
WO2010067797A1 (ja) 通信装置、サーバ装置及び通信プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09831766

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09831766

Country of ref document: EP

Kind code of ref document: A1