JP2007020025A - Information processing device, information processing method, and computer program - Google Patents

Information processing device, information processing method, and computer program Download PDF

Info

Publication number
JP2007020025A
JP2007020025A JP2005201165A JP2005201165A JP2007020025A JP 2007020025 A JP2007020025 A JP 2007020025A JP 2005201165 A JP2005201165 A JP 2005201165A JP 2005201165 A JP2005201165 A JP 2005201165A JP 2007020025 A JP2007020025 A JP 2007020025A
Authority
JP
Japan
Prior art keywords
data
node
key
ciphertext
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005201165A
Other languages
Japanese (ja)
Inventor
Tomoyuki Asano
智之 浅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2005201165A priority Critical patent/JP2007020025A/en
Publication of JP2007020025A publication Critical patent/JP2007020025A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a configuration for securely and efficiently using data in common among a specific user group. <P>SOLUTION: In an information distribution configuration to which a hierarchical tree structure is applied, data to be used in common are encrypted by a data key DK. Further a set of encrypted messages which the data key DK is encrypted using a selected node key of the hierarchical tree structure are generated and provided to the users by means of, for example, broadcast. Also edited data of received data can be distributed making the edited data available only to a group S similar to a group S which use the original data in common, by broadcasting data encrypted by the data key DK, the set of encrypted messages included in an original file, and a file which stores a copy of information on the group which use the data in common S. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。さらに、詳細には、階層木構造を適用したブロードキャストエンクリプションシステムに従って配信される暗号データについて、セキュアに効率的にユーザ間で共有し、また編集データなどの再配信を行なうことを可能とした情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。   The present invention relates to an information processing apparatus, an information processing method, and a computer program. Furthermore, in detail, information that makes it possible to securely and efficiently share encrypted data distributed according to a broadcast encryption system using a hierarchical tree structure and redistribute edited data and the like. The present invention relates to a processing device, an information processing method, and a computer program.

昨今、音楽等のオーディオデータ、映画等の画像データ、ゲームプログラム、各種アプリケーションプログラム等、様々なソフトウエアデータ(以下、これらをコンテンツ(Content)と呼ぶ)が、インターネット等のネットワークを介して、あるいはCD(Compact Disc)、DVD(Digital Versatile Disk)、MD(Mini Disk)等の情報記録媒体(メディア)を介して流通している。これらの流通コンテンツは、ユーザの所有するPC(Personal Computer)やプレーヤ、あるいはゲーム機器等、様々な情報処理装置において再生され利用される。   Recently, various software data (hereinafter referred to as content) such as audio data such as music, image data such as movies, game programs, various application programs, etc. are transmitted via a network such as the Internet or It is distributed through information recording media (media) such as CD (Compact Disc), DVD (Digital Versatile Disk), MD (Mini Disk). These distributed contents are reproduced and used in various information processing apparatuses such as PCs (Personal Computers), players, and game machines owned by users.

音楽データ、画像データ等、多くのコンテンツは、一般的にその作成者あるいは販売者に頒布権等が保有されている。従って、これらのコンテンツの配布に際しては、一定の利用制限、すなわち、正規なユーザに対してのみ、コンテンツの利用を許諾し、許可のない複製等が行われないようにする構成をとるのが一般的となっている。   Many contents, such as music data and image data, generally have distribution rights or the like held by the creator or seller. Therefore, when distributing these contents, it is common to adopt a configuration that restricts the use of the contents, that is, permits the use of the contents only to authorized users and prevents unauthorized copying or the like. It is the target.

特に、近年においては、情報をデジタル的に記録する記録装置や記憶媒体が普及しつつある。このようなデジタル記録装置および記憶媒体によれば、例えば画像や音声を劣化させることなく記録、再生を繰り返すことが可能であり、不正コピーコンテンツのインターネットを介した配信や、CD−R等の記録媒体に対する不正コピーという問題が発生している。   In particular, in recent years, recording devices and storage media for digitally recording information are becoming widespread. According to such a digital recording apparatus and storage medium, for example, recording and reproduction can be repeated without degrading images and sound, distribution of illegally copied content via the Internet, recording of CD-R, etc. There is a problem of unauthorized copying of media.

このようなコンテンツの不正利用を防止する1つの方式として、コンテンツあるいは暗号化コンテンツを復号するための鍵を暗号化して配布し、特定の正規ユーザまたは正規デバイスにおいてのみ配布データの復号を可能としたシステムがある。例えばブロードキャストエンクリプション(Broadcast Encryption)方式の一態様である階層型木構造を適用した構成が知られている。   As one method for preventing such unauthorized use of content, a key for decrypting content or encrypted content is encrypted and distributed, and distribution data can be decrypted only by a specific authorized user or authorized device. There is a system. For example, a configuration using a hierarchical tree structure, which is an aspect of the broadcast encryption method, is known.

例えば2分木構造のような階層木の分岐点であるノードと、階層木の最下層に設定されたリーフの各々に異なる暗号鍵を対応付ける。階層木のノードやリーフに対応する暗号鍵を選択的に適用して暗号化情報を生成してブロードキャスト配信することで、リーフ対応のユーザ機器から選択された特定のユーザ機器のみが復号可能な暗号化データを配信することができる。例えば特許文献1は、この階層木構成を適用したブロードキャストエンクリプション方式を適用した暗号化データ配信構成を開示している。   For example, a different encryption key is associated with each node that is a branch point of a hierarchical tree such as a binary tree structure and each leaf set at the lowest layer of the hierarchical tree. Encryption that can be decrypted only by specific user devices selected from leaf-compatible user devices by selectively applying encryption keys corresponding to nodes and leaves of the hierarchical tree to generate encrypted information and broadcast it Data can be distributed. For example, Patent Document 1 discloses an encrypted data distribution configuration to which a broadcast encryption scheme to which this hierarchical tree configuration is applied is applied.

この階層木構成を適用したブロードキャストエンクリプション方式は、ある特定のデータ配信センタから複数のデータ受信先(ユーザ機器)に対してデータ送信する場合には、有効な方法であるが、例えば、ある1つのユーザ機器が受信したデータや編集データを再度、他の特定のユーザ機器に安全に、すなわちデータの漏洩を防止して送信しようとすると、データを送信しようとするユーザ機器は、当初、データ配信センタで生成した暗号化データと同様の暗号化データを生成することが必要となり、複数の鍵を適用したデータ量の多い暗号化データを生成して、送信することが必要となるという問題がある。
特開2001−352322号公報
The broadcast encryption method to which this hierarchical tree configuration is applied is an effective method when data is transmitted from a specific data distribution center to a plurality of data receiving destinations (user devices). When data received or edited by one user device is transmitted again to another specific user device safely, i.e., while preventing data leakage, the user device attempting to transmit the data initially distributes data. There is a problem that it is necessary to generate encrypted data similar to the encrypted data generated at the center, and it is necessary to generate and transmit encrypted data with a large amount of data to which a plurality of keys are applied. .
JP 2001-352322 A

本発明は、このような状況に鑑みてなされたものであり、階層木構造を適用したブロードキャストエンクリプション方式を適用した暗号データの配信構成を適用し、ユーザ間で効率的にかつ安全に情報を共有し、さらに編集データなどの再配信を行なうことを可能とした情報処理装置、および情報処理方法、並びにコンピュータ・プログラムを提供することを目的とする。   The present invention has been made in view of such a situation, and applies a distribution configuration of encrypted data to which a broadcast encryption scheme to which a hierarchical tree structure is applied is applied, so that information can be efficiently and safely transmitted between users. An object of the present invention is to provide an information processing apparatus, an information processing method, and a computer program that can be shared and redistributed edited data and the like.

本発明の第1の側面は、
特定の選択機器においてのみ復号可能とした暗号化データ生成処理を実行する情報処理方法であり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを生成するデータ生成ステップと、
前記データ生成ステップにおいて生成した上記(a)〜(c)の各データを出力するステップと、
を有することを特徴とする情報処理方法にある。
The first aspect of the present invention is:
An information processing method for executing encrypted data generation processing that can be decrypted only by a specific selected device,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
A data generation step for generating each of the data (a) to (c);
Outputting each of the data (a) to (c) generated in the data generation step;
There is an information processing method characterized by comprising:

さらに、本発明の情報処理方法の一実施態様において、前記暗号化データは、共有対象のデータ(Data)を、データキーDKを適用して暗号関数Eによって暗号化した暗号化データE(DK,Data)であり、前記暗号文セットは、前記データキーDKを、前記選択ノードキー(NKn)を適用して暗号関数Eによって暗号化した暗号化データE(NKn,DK)であり、暗号関数E、および暗号関数Eは公開された関数であることを特徴とする。 In the information processing method of the present invention, the encrypted data is shared target data (Data), by applying the data key DK encryption function E D by encrypting encrypted data E D ( DK, a data), the ciphertext set, the data key DK, is said selected node key (NKn) by applying the encryption function E K by encrypting encrypted data E K (NKn, DK), The cryptographic function E D and the cryptographic function E K are public functions.

さらに、本発明の情報処理方法の一実施態様において、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セットの生成に適用するノードキーは、前記階層木構成において、前記データ共有機器からルートに至るノードに設定されたノードキーを含む設定であることを特徴とする。   Furthermore, in one embodiment of the information processing method of the present invention, a node key applied to generate a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device is: In the hierarchical tree configuration, the setting includes a node key set in a node from the data sharing device to a route.

さらに、本発明の第2の側面は、
暗号化データの復号処理を実行する情報処理方法であり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを入力するデータ入力ステップと、
前記(c)暗号文セットから、自己の保持するノードキーによって復号可能な暗号文を選択する暗号文選択ステップと、
前記暗号文選択ステップにおいて選択した暗号文を自己の保持するノードキーを適用して復号し、データキーDKを取得するステップと、
取得したデータキーDKを適用して暗号化データを復号し、平文データを取得する平文データ取得ステップと、
を有することを特徴とする情報処理方法にある。
Furthermore, the second aspect of the present invention provides
An information processing method for executing decryption processing of encrypted data,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
A data input step for inputting each of the data (a) to (c);
(C) a ciphertext selection step of selecting a ciphertext that can be decrypted by a node key held by itself from the ciphertext set;
Decrypting the ciphertext selected in the ciphertext selection step using a node key held by the ciphertext and obtaining a data key DK;
A plaintext data obtaining step of decrypting the encrypted data by applying the obtained data key DK and obtaining plaintext data;
There is an information processing method characterized by comprising:

さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法は、さらに、平文データ取得ステップにおいて取得した平文データ(Data)を編集し、編集データ(Data2)を生成するデータ編集ステップと、前記編集データ(Data2)に、さらに、前記(b),(c)の各データのコピーデータを含むファイルを生成するファイル生成ステップと、前記ファイル生成ステップにおいて生成したファイルを出力するステップとを有することを特徴とする。   Furthermore, in an embodiment of the information processing method of the present invention, the information processing method further includes a data editing step of editing the plaintext data (Data) acquired in the plaintext data acquisition step to generate edit data (Data2). A file generation step for generating a file including copy data of each of the data (b) and (c), and a step for outputting the file generated in the file generation step. It is characterized by having.

さらに、本発明の情報処理方法の一実施態様において、前記暗号文選択ステップは、前記階層木構成において、自己の対応するノードからルートに至るノードに設定されたノードキーによって暗号化された暗号文を選択するステップであることを特徴とする。   Furthermore, in an embodiment of the information processing method of the present invention, the ciphertext selection step includes: encrypting ciphertext encrypted by a node key set in a node from the corresponding node to the root in the hierarchical tree configuration. It is a step to select.

さらに、本発明の第3の側面は、
特定の選択機器においてのみ復号可能とした暗号化データ生成処理を実行する情報処理方法であり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを生成するデータ生成ステップと、
前記データ生成ステップにおいて生成した上記(a)〜(c)の各データを出力するデータ出力ステップと、
を有することを特徴とする情報処理方法にある。
Furthermore, the third aspect of the present invention provides
An information processing method for executing encrypted data generation processing that can be decrypted only by a specific selected device,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
A data generation step for generating each of the data (a) to (c);
A data output step of outputting each of the data (a) to (c) generated in the data generation step;
There is an information processing method characterized by comprising:

さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法において、前記データ生成ステップは、さらに、(d)選択ノードキーに対応するノードの子孫ノードのノード付加変数(salt)、を生成し、前記データ出力ステップは、前記データ生成ステップにおいて生成した上記(a)〜(d)の各データを出力するステップであることを特徴とする。   Furthermore, in one embodiment of the information processing method of the present invention, in the information processing method, the data generation step further generates (d) a node addition variable (salt) of a descendant node of the node corresponding to the selected node key. The data output step is a step of outputting the data (a) to (d) generated in the data generation step.

さらに、本発明の情報処理方法の一実施態様において、前記階層木は、下位ノードのノード対応値に基づくRabin暗号を適用した暗号化処理(順方向演算)によって上位ノードのノード対応値が算出可能であり、上位ノードのノード対応値に基づくRabin暗号を適用した復号処理(逆方向演算)によって下位ノードのノード対応値が算出可能な設定を有する一方向木であることを特徴とする。   Furthermore, in an embodiment of the information processing method of the present invention, the hierarchical tree can calculate the node-corresponding value of the upper node by an encryption process (forward operation) applying a Rabin cipher based on the node-corresponding value of the lower node. It is a one-way tree having a setting in which the node correspondence value of the lower node can be calculated by the decryption process (reverse operation) to which the Rabin encryption based on the node correspondence value of the upper node is applied.

さらに、本発明の情報処理方法の一実施態様において、前記暗号化データは、共有対象のデータ(Data)を、データキーDKを適用して暗号関数Eによって暗号化した暗号化データE(DK,Data)であり、前記暗号文セットは、前記データキーDKを、前記選択ノードキー(NKn)を適用して暗号関数Eによって暗号化した暗号化データE(NKn,DK)であり、暗号関数E、および暗号関数Eは公開された関数であることを特徴とする。 In the information processing method of the present invention, the encrypted data is shared target data (Data), by applying the data key DK encryption function E D by encrypting encrypted data E D ( DK, a data), the ciphertext set, the data key DK, is said selected node key (NKn) by applying the encryption function E K by encrypting encrypted data E K (NKn, DK), The cryptographic function E D and the cryptographic function E K are public functions.

さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法は、さらに、法Mのサイズ|M|を定め、任意サイズの値をサイズ|M|のランダムな値にマッピングするマッピング関数H、および、サイズ|M|の値をサイズCのランダムな値にマッピングするマッピング関数Hc、これらのマッピング関数を定め、公開するステップを有することを特徴とする。   Furthermore, in an embodiment of the information processing method of the present invention, the information processing method further defines a size | M | of the modulus M and maps a value of an arbitrary size to a random value of the size | M | A mapping function Hc that maps values of H and size | M | to random values of size C, and a step of defining and publicizing these mapping functions.

さらに、本発明の情報処理方法の一実施態様において、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セットの生成に適用するノードキーは、前記階層木構成において、前記データ共有機器からルートに至るノードに設定されたノードキーを含む設定であることを特徴とする。   Furthermore, in one embodiment of the information processing method of the present invention, a node key applied to generate a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device is: In the hierarchical tree configuration, the setting includes a node key set in a node from the data sharing device to a route.

さらに、本発明の第4の側面は、
暗号化データの復号処理を実行する情報処理方法であり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを入力するデータ入力ステップと、
前記(c)暗号文セットから、自己の保持する保持データに基づいて生成可能なノードキーによって復号可能な暗号文を選択する暗号文選択ステップと、
前記暗号文選択ステップにおいて選択した暗号文に適用されたノードキーを、自己の保持する保持データに基づいて生成するノードキー生成ステップと、
前記暗号文選択ステップにおいて選択した暗号文を、前記ノードキー生成ステップにおいて生成したノードキーを適用して復号し、データキーDKを取得するステップと、
取得したデータキーDKを適用して暗号化データを復号し、平文データを取得する平文データ取得ステップと、
を有することを特徴とする情報処理方法にある。
Furthermore, the fourth aspect of the present invention provides
An information processing method for executing decryption processing of encrypted data,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
A data input step for inputting each of the data (a) to (c);
(C) a ciphertext selection step of selecting a ciphertext that can be decrypted by a node key that can be generated based on retained data held by itself from the ciphertext set;
A node key generation step of generating a node key applied to the ciphertext selected in the ciphertext selection step based on retained data held by itself;
Decrypting the ciphertext selected in the ciphertext selection step by applying the node key generated in the node key generation step, and obtaining a data key DK;
A plaintext data obtaining step of decrypting the encrypted data by applying the obtained data key DK and obtaining plaintext data;
There is an information processing method characterized by comprising:

さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法において、前記データ入力ステップは、さらに、(d)選択ノードキーに対応するノードの子孫ノードのノード付加変数(salt)、を入力し、前記ノードキー生成ステップは、前記ノード付加変数(salt)を適用して、選択した暗号文に適用されたノードキーを生成するステップであることを特徴とする。   Furthermore, in one embodiment of the information processing method of the present invention, in the information processing method, the data input step further inputs (d) a node addition variable (salt) of a descendant node of the node corresponding to the selected node key. The node key generation step is a step of generating a node key applied to the selected ciphertext by applying the node addition variable (salt).

さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法は、さらに、平文データ取得ステップにおいて取得した平文データ(Data)を編集し、編集データ(Data2)を生成するデータ編集ステップと、前記編集データ(Data2)に、さらに、前記(b),(c),(d)の各データのコピーデータを含むファイルを生成するファイル生成ステップと、前記ファイル生成ステップにおいて生成したファイルを出力するステップと、を有することを特徴とする。   Furthermore, in an embodiment of the information processing method of the present invention, the information processing method further includes a data editing step of editing the plaintext data (Data) acquired in the plaintext data acquisition step to generate edit data (Data2). The file generation step for generating a file including copy data of each of the data (b), (c), and (d) and the file generated in the file generation step are output to the edit data (Data 2). And a step of performing.

さらに、本発明の情報処理方法の一実施態様において、前記暗号文選択ステップは、前記階層木構成において、自己の対応するノードからルートに至るノードに設定されたノードキーによって暗号化された暗号文を選択するステップであることを特徴とする。   Furthermore, in an embodiment of the information processing method of the present invention, the ciphertext selection step includes: encrypting ciphertext encrypted by a node key set in a node from the corresponding node to the root in the hierarchical tree configuration. It is a step to select.

さらに、本発明の第5の側面は、
特定の選択機器においてのみ復号可能とした暗号化データ生成処理を実行する情報処理装置であり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを生成するデータ生成手段と、
前記データ生成手段において生成した上記(a)〜(c)の各データを出力するデータ出力手段と、
を有することを特徴とする情報処理装置にある。
Furthermore, the fifth aspect of the present invention provides
An information processing apparatus that executes encrypted data generation processing that can be decrypted only by a specific selected device,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
Data generating means for generating each of the data (a) to (c);
Data output means for outputting each of the data (a) to (c) generated in the data generation means;
There is an information processing apparatus characterized by having.

さらに、本発明の情報処理装置の一実施態様において、前記データ生成手段の生成する前記暗号化データは、共有対象のデータ(Data)を、データキーDKを適用して暗号関数Eによって暗号化した暗号化データE(DK,Data)であり、前記暗号文セットは、前記データキーDKを、前記選択ノードキー(NKn)を適用して暗号関数Eによって暗号化した暗号化データE(NKn,DK)であり、前記データ生成手段の適用する暗号関数E、および暗号関数Eは公開関数として設定されることを特徴とする。 In the information processing apparatus of the present invention, the encrypted data generated in the data generating means, encrypted by the encryption function E D share target data (Data), by applying the data key DK Encrypted data E D (DK, Data), and the ciphertext set includes encrypted data E K (encrypted by encrypting function E K by applying the selected node key (NKn) to the data key DK. NKn, DK), and the cryptographic function E D and the cryptographic function E K applied by the data generation means are set as public functions.

さらに、本発明の情報処理装置の一実施態様において、前記データ生成手段は、前記階層木構成において、前記データ共有機器からルートに至るノードに設定されたノードキーを選択ノードキーとして適用して前記データキーDKを暗号化して暗号文セットの生成処理を行なう構成であることを特徴とする。   Furthermore, in an embodiment of the information processing apparatus of the present invention, the data generation means applies the node key set to the node from the data sharing device to the root as the selection node key in the hierarchical tree configuration. The present invention is characterized in that the DK is encrypted to generate a ciphertext set.

さらに、本発明の第6の側面は、
暗号化データの復号処理を実行する情報処理装置であり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを入力するデータ入力手段と、
前記(c)暗号文セットから、自己の保持するノードキーによって復号可能な暗号文を選択する暗号文選択手段と、
前記暗号文選択手段において選択した暗号文を自己の保持するノードキーを適用して復号し、データキーDKを取得するデータキー取得手段と、
取得したデータキーDKを適用して暗号化データを復号し、平文データを取得する平文データ取得手段と、
を有することを特徴とする情報処理装置にある。
Furthermore, the sixth aspect of the present invention provides
An information processing device that performs decryption processing of encrypted data,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
Data input means for inputting each of the data (a) to (c);
(C) ciphertext selection means for selecting a ciphertext that can be decrypted by a node key held by itself from the ciphertext set;
A data key acquisition unit that decrypts the ciphertext selected by the ciphertext selection unit by applying a node key held by the ciphertext selection unit, and acquires a data key DK;
Plaintext data acquisition means for decrypting encrypted data by applying the acquired data key DK and acquiring plaintext data;
There is an information processing apparatus characterized by having.

さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、さらに、平文データ取得手段において取得した平文データ(Data)を編集し、編集データ(Data2)を生成するデータ編集手段と、前記編集データ(Data2)に、さらに、前記(b),(c)の各データのコピーデータを含むファイルを生成するファイル生成手段と、前記ファイル生成手段において生成したファイルを出力するデータ出力手段と、を有することを特徴とする。   Furthermore, in an embodiment of the information processing apparatus of the present invention, the information processing apparatus further includes data editing means for editing the plaintext data (Data) acquired by the plaintext data acquisition means and generating edited data (Data2). The file generation means for generating a file including copy data of the data (b) and (c) in addition to the edit data (Data 2), and the data output means for outputting the file generated by the file generation means It is characterized by having.

さらに、本発明の情報処理装置の一実施態様において、前記暗号文選択手段は、前記階層木構成において、自己の対応するノードからルートに至るノードに設定されたノードキーによって暗号化された暗号文を選択する構成であることを特徴とする。   Furthermore, in an embodiment of the information processing apparatus according to the present invention, the ciphertext selection unit is configured to generate a ciphertext encrypted by a node key set in a node from the corresponding node to the root in the hierarchical tree configuration. It is the structure to select.

さらに、本発明の第7の側面は、
特定の選択機器においてのみ復号可能とした暗号化データ生成処理を実行する情報処理装置であり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを生成するデータ生成手段と、
前記データ生成手段において生成した上記(a)〜(c)の各データを出力するデータ出力手段と、
を有することを特徴とする情報処理装置にある。
Furthermore, the seventh aspect of the present invention provides
An information processing apparatus that executes encrypted data generation processing that can be decrypted only by a specific selected device,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
Data generating means for generating each of the data (a) to (c);
Data output means for outputting each of the data (a) to (c) generated in the data generation means;
There is an information processing apparatus characterized by having.

さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置において、前記データ生成手段は、さらに、(d)選択ノードキーに対応するノードの子孫ノードのノード付加変数(salt)、を生成し、前記データ出力手段は、前記データ生成手段において生成した上記(a)〜(d)の各データを出力することを特徴とする。   Furthermore, in one embodiment of the information processing apparatus of the present invention, in the information processing apparatus, the data generation means further generates (d) a node addition variable (salt) of a descendant node of the node corresponding to the selected node key. The data output means outputs the data (a) to (d) generated by the data generation means.

さらに、本発明の情報処理装置の一実施態様において、前記階層木は、下位ノードのノード対応値に基づくRabin暗号を適用した暗号化処理(順方向演算)によって上位ノードのノード対応値が算出可能であり、上位ノードのノード対応値に基づくRabin暗号を適用した復号処理(逆方向演算)によって下位ノードのノード対応値が算出可能な設定を有する一方向木であることを特徴とする。   Furthermore, in one embodiment of the information processing apparatus of the present invention, the hierarchical tree can calculate the node-corresponding value of the upper node by an encryption process (forward operation) applying a Rabin cipher based on the node-corresponding value of the lower node. It is a one-way tree having a setting in which the node correspondence value of the lower node can be calculated by the decryption process (reverse operation) to which the Rabin encryption based on the node correspondence value of the upper node is applied.

さらに、本発明の情報処理装置の一実施態様において、前記データ生成手段の生成する前記暗号化データは、共有対象のデータ(Data)を、データキーDKを適用して暗号関数Eによって暗号化した暗号化データE(DK,Data)であり、前記暗号文セットは、前記データキーDKを、前記選択ノードキー(NKn)を適用して暗号関数Eによって暗号化した暗号化データE(NKn,DK)であり、前記データ生成手段の適用する暗号関数E、および暗号関数Eは公開関数として設定されることを特徴とする。 In the information processing apparatus of the present invention, the encrypted data generated in the data generating means, encrypted by the encryption function E D share target data (Data), by applying the data key DK Encrypted data E D (DK, Data), and the ciphertext set includes encrypted data E K (encrypted by encrypting function E K by applying the selected node key (NKn) to the data key DK. NKn, DK), and the cryptographic function E D and the cryptographic function E K applied by the data generation means are set as public functions.

さらに、本発明の情報処理装置の一実施態様において、前記データ生成手段は、さらに、法Mのサイズ|M|を定め、任意サイズの値をサイズ|M|のランダムな値にマッピングするマッピング関数H、および、サイズ|M|の値をサイズCのランダムな値にマッピングするマッピング関数Hc、これらのマッピング関数を決定する構成であることを特徴とする。   Further, in one embodiment of the information processing apparatus of the present invention, the data generation means further defines a size | M | of the modulus M and maps a value of an arbitrary size to a random value of the size | M | A mapping function Hc that maps values of H and size | M | to random values of size C, and a configuration for determining these mapping functions.

さらに、本発明の情報処理装置の一実施態様において、前記データ生成手段は、前記階層木構成において、前記データ共有機器からルートに至るノードに設定されたノードキーを選択ノードキーとして適用して前記データキーDKを暗号化して暗号文セットの生成処理を行なう構成であることを特徴とする。   Furthermore, in an embodiment of the information processing apparatus of the present invention, the data generation means applies the node key set to the node from the data sharing device to the root as the selection node key in the hierarchical tree configuration. The present invention is characterized in that the DK is encrypted to generate a ciphertext set.

さらに、本発明の第8の側面は、
暗号化データの復号処理を実行する情報処理装置であり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを入力するデータ入力手段と、
前記(c)暗号文セットから、自己の保持する保持データに基づいて生成可能なノードキーによって復号可能な暗号文を選択する暗号文選択手段と、
前記暗号文選択手段において選択した暗号文に適用されたノードキーを、自己の保持する保持データに基づいて生成するノードキー生成手段と、
前記暗号文選択手段において選択した暗号文を、前記ノードキー生成手段において生成したノードキーを適用して復号し、データキーDKを取得するデータキー取得手段と、
取得したデータキーDKを適用して暗号化データを復号し、平文データを取得する平文データ取得手段と、
を有することを特徴とする情報処理装置にある。
Furthermore, the eighth aspect of the present invention provides
An information processing device that performs decryption processing of encrypted data,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
Data input means for inputting each of the data (a) to (c);
(C) ciphertext selection means for selecting a ciphertext that can be decrypted by a node key that can be generated based on retained data held by itself from the ciphertext set;
Node key generation means for generating a node key applied to the ciphertext selected by the ciphertext selection means based on retained data held by itself;
A data key acquisition unit that decrypts the ciphertext selected by the ciphertext selection unit by applying the node key generated by the node key generation unit and acquires a data key DK;
Plaintext data acquisition means for decrypting encrypted data by applying the acquired data key DK and acquiring plaintext data;
There is an information processing apparatus characterized by having.

さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置において、前記データ入力手段は、さらに、(d)選択ノードキーに対応するノードの子孫ノードのノード付加変数(salt)、を入力し、前記ノードキー生成手段は、前記ノード付加変数(salt)を適用して、選択した暗号文に適用されたノードキーを生成することを特徴とする。   Furthermore, in one embodiment of the information processing apparatus of the present invention, in the information processing apparatus, the data input means further inputs (d) a node additional variable (salt) of a descendant node of the node corresponding to the selected node key. The node key generation unit generates the node key applied to the selected ciphertext by applying the node addition variable (salt).

さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、さらに、平文データ取得手段において取得した平文データ(Data)を編集し、編集データ(Data2)を生成するデータ編集手段と、前記編集データ(Data2)に、さらに、前記(b),(c),(d)の各データのコピーデータを含むファイルを生成するファイル生成手段と、前記ファイル生成手段において生成したファイルを出力するデータ出力手段と、を有することを特徴とする。   Furthermore, in an embodiment of the information processing apparatus of the present invention, the information processing apparatus further includes data editing means for editing the plaintext data (Data) acquired by the plaintext data acquisition means and generating edited data (Data2). The file generation means for generating a file including copy data of each of the data (b), (c) and (d), and the file generated by the file generation means are output to the edit data (Data 2). Data output means.

さらに、本発明の情報処理装置の一実施態様において、前記暗号文選択手段は、前記階層木構成において、自己の対応するノードからルートに至るノードに設定されたノードキーによって暗号化された暗号文を選択する構成であることを特徴とする。   Furthermore, in an embodiment of the information processing apparatus according to the present invention, the ciphertext selection unit is configured to generate a ciphertext encrypted by a node key set in a node from the corresponding node to the root in the hierarchical tree configuration. It is the structure to select.

さらに、本発明の第9の側面は、
特定の選択機器においてのみ復号可能とした暗号化データ生成処理をコンピュータ上で実行させるコンピュータ・プログラムであり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを生成するデータ生成ステップと、
前記データ生成ステップにおいて生成した上記(a)〜(c)の各データを出力するステップと、
を有することを特徴とするコンピュータ・プログラムにある。
Furthermore, the ninth aspect of the present invention provides
A computer program that causes a computer to execute encrypted data generation processing that can be decrypted only by a specific selected device,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
A data generation step for generating each of the data (a) to (c);
Outputting each of the data (a) to (c) generated in the data generation step;
There is a computer program characterized by comprising:

さらに、本発明の第10の側面は、
暗号化データの復号処理をコンピュータ上で実行させるコンピュータ・プログラムであり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを入力するデータ入力ステップと、
前記(c)暗号文セットから、自己の保持するノードキーによって復号可能な暗号文を選択する暗号文選択ステップと、
前記暗号文選択ステップにおいて選択した暗号文を自己の保持するノードキーを適用して復号し、データキーDKを取得するステップと、
取得したデータキーDKを適用して暗号化データを復号し、平文データを取得する平文データ取得ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
Furthermore, the tenth aspect of the present invention provides
A computer program for executing decryption processing of encrypted data on a computer,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
A data input step for inputting each of the data (a) to (c);
(C) a ciphertext selection step of selecting a ciphertext that can be decrypted by a node key held by itself from the ciphertext set;
Decrypting the ciphertext selected in the ciphertext selection step using a node key held by the ciphertext and obtaining a data key DK;
A plaintext data obtaining step of decrypting the encrypted data by applying the obtained data key DK and obtaining plaintext data;
There is a computer program characterized by comprising:

さらに、本発明の第11の側面は、
特定の選択機器においてのみ復号可能とした暗号化データ生成処理をコンピュータ上で実行させるコンピュータ・プログラムであり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを生成するデータ生成ステップと、
前記データ生成ステップにおいて生成した上記(a)〜(c)の各データを出力するステップと、
を有することを特徴とするコンピュータ・プログラムにある。
Furthermore, an eleventh aspect of the present invention is
A computer program that causes a computer to execute encrypted data generation processing that can be decrypted only by a specific selected device,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
A data generation step for generating each of the data (a) to (c);
Outputting each of the data (a) to (c) generated in the data generation step;
There is a computer program characterized by comprising:

さらに、本発明のコンピュータ・プログラムの一実施態様において、前記コンピュータ・プログラムおいて、前記データ生成ステップは、さらに、(d)選択ノードキーに対応するノードの子孫ノードのノード付加変数(salt)、を生成し、前記データ出力ステップは、前記データ生成ステップにおいて生成した上記(a)〜(d)の各データを出力するステップであることを特徴とする。   Furthermore, in one embodiment of the computer program of the present invention, in the computer program, the data generation step further includes: (d) a node addition variable (salt) of a descendant node of the node corresponding to the selected node key. The step of generating and outputting the data is a step of outputting each of the data (a) to (d) generated in the data generation step.

さらに、本発明の第12の側面は、
暗号化データの復号処理をコンピュータ上で実行させるコンピュータ・プログラムであり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを入力するデータ入力ステップと、
前記(c)暗号文セットから、自己の保持する保持データに基づいて生成可能なノードキーによって復号可能な暗号文を選択する暗号文選択ステップと、
前記暗号文選択ステップにおいて選択した暗号文に適用されたノードキーを、自己の保持する保持データに基づいて生成するノードキー生成ステップと、
前記暗号文選択ステップにおいて選択した暗号文を、前記ノードキー生成ステップにおいて生成したノードキーを適用して復号し、データキーDKを取得するステップと、
取得したデータキーDKを適用して暗号化データを復号し、平文データを取得する平文データ取得ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
Furthermore, the twelfth aspect of the present invention is
A computer program for executing decryption processing of encrypted data on a computer,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
A data input step for inputting each of the data (a) to (c);
(C) a ciphertext selection step of selecting a ciphertext that can be decrypted by a node key that can be generated based on retained data held by itself from the ciphertext set;
A node key generation step of generating a node key applied to the ciphertext selected in the ciphertext selection step based on retained data held by itself;
Decrypting the ciphertext selected in the ciphertext selection step by applying the node key generated in the node key generation step, and obtaining a data key DK;
A plaintext data obtaining step of decrypting the encrypted data by applying the obtained data key DK and obtaining plaintext data;
There is a computer program characterized by comprising:

さらに、本発明のコンピュータ・プログラムの一実施態様において、前記コンピュータ・プログラムにおいて、前記データ入力ステップは、さらに、(d)選択ノードキーに対応するノードの子孫ノードのノード付加変数(salt)、を入力し、前記ノードキー生成ステップは、前記ノード付加変数(salt)を適用して、選択した暗号文に適用されたノードキーを生成するステップであることを特徴とする。   Furthermore, in an embodiment of the computer program of the present invention, in the computer program, the data input step further inputs (d) a node addition variable (salt) of a descendant node of the node corresponding to the selected node key. The node key generation step is a step of generating a node key applied to the selected ciphertext by applying the node addition variable (salt).

なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。   The computer program of the present invention is, for example, a storage medium or communication medium provided in a computer-readable format to a computer system capable of executing various program codes, such as a CD, FD, or MO. It is a computer program that can be provided by a recording medium or a communication medium such as a network. By providing such a program in a computer-readable format, processing corresponding to the program is realized on the computer system.

本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。   Other objects, features, and advantages of the present invention will become apparent from a more detailed description based on embodiments of the present invention described later and the accompanying drawings. In this specification, the system is a logical set configuration of a plurality of devices, and is not limited to one in which the devices of each configuration are in the same casing.

本発明の構成によれば、ブロードキャストエンクリプション(Broadcast Encryption)方式の一態様である階層型木構造を適用した情報配信構成において、特定の選択されたユーザ(受信機)の集合においてのみ復号可能としたデータを生成し、提供することが可能となり、特定のユーザの集合におけるデータ共有をセキュアに効率的に実行することができる。具体的には、共有対象のデータをデータキーDKによって暗号化し、さらにデータキーDKを階層木構成の選択されたノードキーを利用して暗号化した暗号文セットを生成して、例えばブロードキャストによってユーザに提供する。   According to the configuration of the present invention, in an information distribution configuration to which a hierarchical tree structure that is an aspect of the broadcast encryption method is applied, decoding is possible only in a set of specific selected users (receivers). Data can be generated and provided, and data sharing in a specific set of users can be performed securely and efficiently. Specifically, the ciphertext set is generated by encrypting the data to be shared with the data key DK, and further encrypting the data key DK using the selected node key of the hierarchical tree structure, and for example, by broadcasting to the user provide.

さらに、本発明の構成によれば、共有データを受信した受信機において、データを編集して生成した編集データについても、オリジナルデータの共有集合Sにおいてのみ利用可能とした形態で、再配信することができる。具体的には、編集データをデータキーDKで暗号化した暗号化データを格納したファイルを生成し、オリジナルファイルに含まれるデータキーDKを階層木構成の選択されたノードキーを利用して暗号化した暗号文セットと、データ共有集合Sに関する情報をコピーして、編集データの暗号化データを格納したファイルに格納してこのファイルを、例えばブロードキャストすることで、オリジナルデータの共有集合Sと同様の集合Sにおいてのみ利用可能とした形態で、編集データを再配信することができる。   Furthermore, according to the configuration of the present invention, in the receiver that has received the shared data, the edited data generated by editing the data can be redistributed in a form that can be used only in the shared set S of the original data. Can do. Specifically, a file storing the encrypted data obtained by encrypting the edit data with the data key DK is generated, and the data key DK included in the original file is encrypted using the selected node key of the hierarchical tree configuration. A set similar to the shared set S of the original data is obtained by copying the ciphertext set and the information related to the data shared set S, storing the encrypted data of the edited data in a file storing the data, and broadcasting the file, for example. Editing data can be redistributed in a form that can be used only in S.

以下、図面を参照しながら本発明の情報処理装置、および情報処理方法、並びにコンピュータ・プログラムの詳細について説明する。   Details of the information processing apparatus, information processing method, and computer program of the present invention will be described below with reference to the drawings.

なお、説明は、以下の項目に従って行なう。
1.階層型木構造を適用した暗号データ配信処理の基本構成
2.情報処理装置の構成
3.暗号化データの共有処理
(3.1)セットアップ
(3.2)ファイル生成・配付
(3.3)ファイル利用
4.Rabin Treeを適用した処理構成
(4.1)Rabin Treeの構成について
(4.2)Rabin Treeを適用した暗号化データの共有処理
(4.2.1)セットアップ
(4.2.2)ファイル生成・配付
(4.2.3)ファイル利用
The description will be made according to the following items.
1. 1. Basic configuration of encrypted data distribution processing using a hierarchical tree structure 2. Configuration of information processing apparatus Shared processing of encrypted data (3.1) Setup (3.2) File generation / distribution (3.3) File usage Processing configuration applying Rabin Tree (4.1) About configuration of Rabin Tree (4.2) Encryption data sharing processing applying Rabin Tree (4.2.1) Setup (4.2.2) File generation・ Distribution (4.2.3) File usage

[1.階層型木構造を適用した暗号データ配信処理の基本構成]
まず、階層型木構造を適用した暗号データ配信処理の基本構成について、図を参照して説明する。まず既存の階層型木構造を適用したブロードキャストエンクリプション(Broadcast Encryption)方式として知られているComplete Subtree(CS)方式の概要について説明する。
[1. Basic configuration of encrypted data distribution processing using hierarchical tree structure]
First, a basic configuration of encrypted data distribution processing to which a hierarchical tree structure is applied will be described with reference to the drawings. First, an outline of the Complete Subtree (CS) method known as a broadcast encryption method using an existing hierarchical tree structure will be described.

図1に示す階層型木構造は2分木構造を用いており、その最下層がリーフ(葉)と呼ばれ、頂点、各分岐部およびリーフを含む部分をノードと称する。なお、頂点をルート、あるいはルートノードと呼ぶ。図1に示す2分木階層型木構造において、各リーフに受信機を割り当てる(図1におけるu1〜u16)。図1は、受信機数N=16の例である。また、木の各ノード(節)を用いて、「そのノードを頂点とする部分木のリーフ(葉)に割り当てられた受信機からなる集合」を表す。図1におけるノードi101は、受信機u5とu6からなる集合を表す。   The hierarchical tree structure shown in FIG. 1 uses a binary tree structure, the lowermost layer is called a leaf, and the part including the vertex, each branching part, and the leaf is called a node. The vertex is called a root or a root node. In the binary tree hierarchical tree structure shown in FIG. 1, a receiver is assigned to each leaf (u1 to u16 in FIG. 1). FIG. 1 shows an example in which the number of receivers N = 16. Further, each node (node) of the tree is used to represent “a set of receivers assigned to the leaves of the sub-tree having the node as a vertex”. Node i101 in FIG. 1 represents a set of receivers u5 and u6.

そして、図1に示す2分木の各構成ノードに鍵(ノードキー)が定義される。各受信機には、各受信機が割り当てられているリーフ(葉)から木のルート(頂点)に至るパス上のノードに割り当てられたノードキーが与えられ、受信機はこれらのノードキーを安全なメモリに保持する。木の定義やノードキーの定義、受信機の割り当てやノードキーの配布などは、Trusted Center(TC)と呼ばれる信頼される管理センタが行なう。   A key (node key) is defined for each component node of the binary tree shown in FIG. Each receiver is given a node key assigned to a node on the path from the leaf to which each receiver is assigned to the root (vertex) of the tree, and the receiver stores these node keys in a secure memory. Hold on. A trusted management center called a Trusted Center (TC) performs tree definition, node key definition, receiver assignment, node key distribution, and the like.

図2に示すように、階層木には16台の受信機u1〜u16が割り当てられ、ノードは1〜31の31個、存在する。受信機u4には、ノード1,2,4,9,19に割り当てられた5個のノードキーが与えられる。すなわち、全受信機数をNとした場合には、各受信機はlogN+1個のノードキーを保持することになる。   As shown in FIG. 2, 16 receivers u1 to u16 are assigned to the hierarchical tree, and 31 nodes 31 to 31 exist. The receiver u4 is given five node keys assigned to the nodes 1, 2, 4, 9, and 19. That is, when the total number of receivers is N, each receiver holds logN + 1 node keys.

図3を用いて、このセッティングを用いて秘密情報(たとえば、暗号化されたコンテンツを復号するためのコンテンツキー)をどのようにリボークされない受信機に送信するかについて説明する。ここでは、管理センタ(TC)が秘密情報の送信者になるとする。いま、受信機u2,u11,u12がリボークされる受信機とする。すなわち、受信機u2,u11,u12を不正な機器として排除(リボーク)し、それ以外の受信機においてのみ安全に情報を受領、すなわち同報配信される暗号文に基づく復号を行なうことを可能とする。   With reference to FIG. 3, description will be given of how secret information (for example, a content key for decrypting encrypted content) is transmitted to a non-revoked receiver using this setting. Here, it is assumed that the management center (TC) is a sender of secret information. Now, it is assumed that the receivers u2, u11, u12 are revoked receivers. In other words, the receivers u2, u11, u12 can be excluded (revoked) as unauthorized devices, and information can be safely received only by other receivers, that is, decryption based on ciphertext that is broadcast can be performed. To do.

管理センタ(TC)が秘密情報の送信を行なう場合、リボーク受信機u2,u11,u12が割り当てられているリーフ(葉)から木のルートに至るパス上のノードに割り当てられたノードキーを暗号鍵として使用せず、暗号文のセットを生成して同報送信する。   When the management center (TC) transmits secret information, the node key assigned to the node on the path from the leaf to which the revoke receiver u2, u11, u12 is assigned to the root of the tree is used as the encryption key. Generate and send a set of ciphertext without using it.

リボーク受信機u2,u11,u12が割り当てられているリーフ(葉)から木のルートに至るパス上のリーフまたはノードに割り当てられたノードキーを使用すると、これらは、リボークすべき受信機が持つキーであるため、リボーク機器において秘密情報を入手できてしまう。従って、これらのキーを用いずに暗号文のセットを生成して同報送信する。   When the node keys assigned to the leaves or nodes on the path from the leaf (leave) to which the revoked receivers u2, u11, u12 are assigned to the root of the tree are used, these are the keys of the receiver to be revoked. As a result, confidential information can be obtained in the revoke device. Therefore, a ciphertext set is generated and broadcasted without using these keys.

リボーク受信機u2,u11,u12が割り当てられているリーフ(葉)から木のルートに至るパス上のノードおよびパスを木から除外すると、1つ以上の部分木が残る。例えば、ノード5を頂点とする部分木、あるいはノード12を頂点とする部分木などである。   If nodes and paths on the path from the leaf to which the revoke receiver u2, u11, u12 is assigned to the root of the tree are excluded from the tree, one or more subtrees remain. For example, a partial tree having the node 5 as a vertex or a partial tree having the node 12 as a vertex.

秘密情報の送信者は、それぞれの部分木の頂点に最も近いノード、すなわち、図3に示す例では、ノード5,7,9,12,16に割り当てられたノードキーを用いて秘密情報を暗号化した暗号文のセットを送信する。例えば送信秘密情報を暗号化コンテンツの復号に適用するコンテンツキーKcであるとし、ノード5,7,9,12,16に割り当てられたノードキーをNK5,NK7,NK9,NK12,NK16とすると、秘密情報の送信者は、
E(NK5,Kc),E(NK7,Kc),E(NK9,Kc),E(NK12,Kc),E(NK16,Kc)
の暗号文セットを生成して、ネットワーク配信あるいは記録媒体に格納して提供する。なお、E(A,B)はデータBを鍵Aで暗号化したデータを意味する。
The sender of the secret information encrypts the secret information using the node key assigned to the node closest to the top of each subtree, that is, the nodes 5, 7, 9, 12, and 16 in the example shown in FIG. Send a set of encrypted ciphertexts. For example, if the transmission secret information is a content key Kc applied to decryption of encrypted content, and the node keys assigned to the nodes 5, 7, 9, 12, 16 are NK5, NK7, NK9, NK12, NK16, the secret information The sender of
E (NK5, Kc), E (NK7, Kc), E (NK9, Kc), E (NK12, Kc), E (NK16, Kc)
The ciphertext set is generated and stored in a network distribution or recording medium. E (A, B) means data obtained by encrypting data B with the key A.

上記暗号文セットは、リボーク受信機u2,u11,u12のみが復号することができず、その他の受信機では復号可能である。このような暗号文セットを生成し送信することで、効率的で安全な秘密情報の伝送が行える。   The ciphertext set cannot be decrypted only by the revoke receivers u2, u11, u12, and can be decrypted by other receivers. By generating and transmitting such a ciphertext set, it is possible to transmit secret information efficiently and safely.

受信機は、伝送された暗号文のうち、自分が復号できるもの、すなわち、自身が割り当てられたリーフ(葉)からルートに至るまでのパス上のノードに対応するノードキーを用いて暗号化されたものを復号して秘密情報を得ることができる。上記の例では、受信機u4はノード9のノードキーを保持しているので、これを用いて暗号化された暗号文E(NK9,Kc)を復号することができる。このように、リボークされていない受信機が復号できる暗号文は受信した暗号文セット中に必ずひとつ存在する。   The receiver is encrypted using the node key corresponding to the node on the path from the leaf (leaf) to which the receiver is assigned, that is, the encrypted ciphertext that can be decrypted by the receiver. Secret information can be obtained by decrypting things. In the above example, since the receiver u4 holds the node key of the node 9, the encrypted text E (NK9, Kc) can be decrypted using this. In this way, there is always one ciphertext that can be decrypted by a non-revoked receiver in the received ciphertext set.

[2.情報処理装置の構成]
次に、暗号化データの送信エンティティとしての管理センタ(TC)(送信機)と、暗号化データの受信エンティティであるユーザ(受信機)を構成する情報処理装置の構成例について説明する。図4は、情報処理装置の一例としてのブロック図である。
[2. Configuration of information processing apparatus]
Next, a configuration example of an information processing apparatus constituting a management center (TC) (transmitter) as a transmission entity of encrypted data and a user (receiver) as a reception entity of encrypted data will be described. FIG. 4 is a block diagram as an example of the information processing apparatus.

図4に示す情報処理装置200は、コントローラ201、演算ユニット202、入出力インタフェース203、セキュア記憶部204、メイン記憶部205、ネットワークインタフェース206、メディアインタフェース207を備える。   An information processing apparatus 200 illustrated in FIG. 4 includes a controller 201, an arithmetic unit 202, an input / output interface 203, a secure storage unit 204, a main storage unit 205, a network interface 206, and a media interface 207.

コントローラ201は、情報処理装置200の実行する処理全体をの制御を行なう。例えばコンピュータ・プログラムに従ったデータ処理を実行する制御部としての機能を有するCPUによって構成される。演算ユニット802は、例えば暗号鍵の生成、乱数生成、及び暗号処理のための専用の演算部および暗号処理部として機能する。   The controller 201 controls the entire processing executed by the information processing apparatus 200. For example, it is configured by a CPU having a function as a control unit that executes data processing according to a computer program. The arithmetic unit 802 functions as, for example, a dedicated arithmetic unit and cryptographic processing unit for generating an encryption key, generating a random number, and performing cryptographic processing.

入出力インタフェース203は、キーボード、マウス等の入力手段からのデータ入力や、外部出力装置に対するデータ出力に対応するインタフェースである。   The input / output interface 203 is an interface corresponding to data input from input means such as a keyboard and a mouse and data output to an external output device.

情報処理装置200が暗号文生成処理を実行する情報処理装置である場合、セキュア記憶部204は、例えば後述するセットアップフェイズにおいて生成するノードキー、各種IDなど、安全にまたは秘密に保持すべきデータを保存する。情報処理装置200が受信機としての情報処理装置である場合、セキュア記憶部204にはノードキーなどの暗号鍵などが格納される。   When the information processing apparatus 200 is an information processing apparatus that executes ciphertext generation processing, the secure storage unit 204 stores data that should be held safely or secretly, such as node keys and various IDs that are generated in a setup phase that will be described later, for example. To do. When the information processing apparatus 200 is an information processing apparatus as a receiver, the secure storage unit 204 stores an encryption key such as a node key.

メイン記憶部205は、例えばコントローラ201において実行するデータ処理プログラム、その他、一時記憶処理パラメータ、プログラム実行のためのワーク領域等に使用されるメモリ領域である。セキュア記憶部204及びメイン記憶部205は、例えばRAM、ROM等によって構成されるメモリである。ネットワークインタフェース206は、ネットワークを介したデータ送受信処理に対応するインタフェースである。メディアインタフェース207は、CD、DVD、MD等のメディアに対する読出/書込機能を提供する。   The main storage unit 205 is a memory area used for, for example, a data processing program executed in the controller 201, other temporary storage processing parameters, a work area for program execution, and the like. The secure storage unit 204 and the main storage unit 205 are memories configured with, for example, a RAM, a ROM, and the like. The network interface 206 is an interface corresponding to data transmission / reception processing via a network. The media interface 207 provides a read / write function for media such as a CD, a DVD, and an MD.

[3.暗号化データの共有処理]
次に、暗号化データの送信エンティティとしての管理センタ(TC)(送信機)と、暗号化データの受信エンティティであるユーザ(受信機)とがデータファイルを共有する方法を説明する。データファイルの共有シーケンスは、次の3つの処理フェーズに区分される。
(1)セットアップ
(2)ファイル生成・配付
(3)ファイル利用
以下、これらの3つのフェーズにおける具体的な処理について、順次、説明する。
[3. Encryption data sharing process]
Next, a method of sharing a data file between a management center (TC) (transmitter) as a transmission entity of encrypted data and a user (receiver) as a reception entity of encrypted data will be described. The data file sharing sequence is divided into the following three processing phases.
(1) Setup (2) File generation / distribution (3) File usage Hereinafter, specific processes in these three phases will be described in order.

(3.1.セットアップ)
セットアップ処理は、システムの立ち上げ時に1度だけ行う。これ以降の情報配信および受信と復号の処理は、送信すべき情報が生じるたびに行なわれる。例えば、新しいコンテンツを格納したDVDなどの情報記録媒体が配布される場合、あるいはネットワークを介して新しい情報が配信される場合など毎に実行される。なお、セットアップ処理は、実際に暗号文配信を実行するエンティティとは独立した管理センタ(TC)によって実行してもよいし、また、暗号文配信を実行するエンティティが実行してもよい。ここでは一例として、セットアップ処理を管理センタ(TC)が実行する例として説明する。
(3.1. Setup)
The setup process is performed only once at system startup. Subsequent information distribution and reception and decoding processes are performed each time information to be transmitted is generated. For example, it is executed whenever an information recording medium such as a DVD storing new content is distributed or when new information is distributed via a network. Note that the setup process may be executed by a management center (TC) independent of the entity that actually executes the ciphertext distribution, or may be executed by the entity that executes the ciphertext distribution. Here, as an example, the setup process will be described as an example in which the management center (TC) executes.

a.ステップ1
管理センタ(TC)は、2分木でありN個の葉を持つ木を定義する。木中の各ノードについてk(k=1,2,...,2N−1)と、ノード対応の番号を設定する。ただし2分木における最上位ノードであるルートを1とし、以降を幅優先(breadth first order)で番号設定を行う。すなわち、図2、図3に示す1〜31のようなノード対応番号の設定を行なう。この処理により2分木中の各ノードに1〜2N−1のノード番号が設定される。さらに、受信機um(m=1,2,...,N)を木の各葉(リーフ)に割り当てる。
a. Step 1
The management center (TC) defines a tree that is a binary tree and has N leaves. For each node in the tree, k (k = 1, 2,..., 2N−1) and a node-corresponding number are set. However, the root, which is the highest node in the binary tree, is set to 1, and the subsequent numbers are set with breadth priority (breadth first order). That is, node corresponding numbers such as 1 to 31 shown in FIGS. 2 and 3 are set. By this processing, node numbers 1 to 2N−1 are set to the respective nodes in the binary tree. Further, the receiver um (m = 1, 2,..., N) is assigned to each leaf of the tree.

b.ステップ2
管理センタ(TC)は、
配信データの暗号化に適用するデータ用暗号関数Eと、
暗号鍵の暗号化用に適用する鍵用暗号関数Eと、
を定めて公開する。
なお、データ用暗号関数Eと鍵用暗号関数Eとは同じ関数を適用してもよい。
次に、管理センタ(TC)は、ステップ1において定義した階層木の各ノードiに対応するノードキーNKを定める。具体的には、各ノードiに対応するCビットの乱数を発生し、この乱数Cを各ノードiのノードキーNKとする。なお、ここでCは、暗号関数Eの鍵のサイズである。
b. Step 2
The management center (TC)
A data encryption function E D applied to encryption of the distribution data;
And the key encryption function E K to be applied for encryption of the encryption key,
Determine and publish.
The same function may be applied to the data encryption function E D and the key encryption function E K.
Next, the management center (TC) determines a node key NK i corresponding to each node i defined in step 1. Specifically, a random number C K bits for each node i occurs, and the random number C K and node keys NK i for each node i. Here, C K is the size of a key of the encryption function E K.

c.ステップ3
管理センタ(TC)は、木の末端ノードとしての葉(リーフ)に対応して設定される受信機um(m=1,2,...,N)の各々に対して、受信機が割り当てられたリーフ(葉)からルートに至るパス上のノードに設定されたノードキーNKを与える。各リーフ(葉)に対応して設定される受信機um(m=1,2,...,N)の各々に対して、それぞれlogN+1個のノードキーが与えられる。
c. Step 3
The management center (TC) assigns a receiver to each of the receivers um (m = 1, 2,..., N) set corresponding to the leaves as the end nodes of the tree. The node key NK i set to the node on the path from the leaf to the root is given. LogN + 1 node keys are given to each of the receivers um (m = 1, 2,..., N) set corresponding to each leaf.

例えば、図2に示す構成において、葉であるノード19に割り当てられた受信機u4には、logN+1=log16+1=5個のノードキーとして、ノード19からルートへのパス上のノードのノードキーとしての、
NK19、NK、NK、NK、NK
が与えられる。
受信機は、ノード対応値を漏洩がないように、秘密に保管する。
For example, in the configuration shown in FIG. 2, the receiver u4 assigned to the leaf node 19 has logN + 1 = log16 + 1 = 5 node keys as node keys of nodes on the path from the node 19 to the root.
NK 19 , NK 9 , NK 4 , NK 2 , NK 1 ,
Is given.
The receiver keeps the node correspondence value secret so as not to leak.

上述したセットアップ処理のフローを図5に示す。図5のフローの各ステップについて説明する。まず、ステップS101において、管理センタ(TC)は、N個の葉を持つ2分木を定義する。2分木における最上位ノードであるルートを1とし、以降を幅優先(breadth first order)で番号設定を行う。すなわち、図2、3に示すようなノード対応番号1〜31の設定を行なう。さらに、受信機um(m=1,2,...,N)を木の各葉(リーフ)に割り当てる。   FIG. 5 shows the flow of the setup process described above. Each step of the flow of FIG. 5 will be described. First, in step S101, the management center (TC) defines a binary tree having N leaves. The root, which is the highest node in the binary tree, is set to 1, and the subsequent numbers are set with breadth priority (breadth first order). That is, node correspondence numbers 1 to 31 as shown in FIGS. Further, the receiver um (m = 1, 2,..., N) is assigned to each leaf of the tree.

次にステップS102において、管理センタ(TC)は、
配信データの暗号化に適用するデータ用暗号関数Eと、
暗号鍵の暗号化用に適用する鍵用暗号関数Eと、
を定めて公開する。
さらに、階層木の各ノードiに対応するノードキーNKを定める。
In step S102, the management center (TC)
A data encryption function E D applied to encryption of the distribution data;
And the key encryption function E K to be applied for encryption of the encryption key,
Determine and publish.
Further, a node key NK i corresponding to each node i in the hierarchical tree is determined.

次に、ステップS103において、管理センタ(TC)は、木の末端ノードとしての葉(リーフ)に対応して設定される受信機um(m=1,2,...,N)に対して、受信機が割り当てられたリーフ(葉)からルートに至るパス上のノードに設定されたノードキーNKを与える。各リーフ(葉)に対応して設定される受信機um(m=1,2,...,N)の各々に対して、それぞれlogN+1個のノードキーが与えられる。 Next, in step S103, the management center (TC) receives the receiver um (m = 1, 2,..., N) set corresponding to the leaf as the end node of the tree. The node key NK i set for the node on the path from the leaf to which the receiver is assigned to the root is given. LogN + 1 node keys are given to each of the receivers um (m = 1, 2,..., N) set corresponding to each leaf.

(3.2.ファイル生成・配布)
次に、暗号化データの送信エンティティとしての管理センタ(TC)(送信機)と、暗号化データの受信エンティティであるユーザ(受信機)とがデータファイルを共有するために実行するファイル生成および配布処理の詳細について説明する。この処理は、暗号化データの送信エンティティとしての管理センタ(TC)が実行する。
(3.2. File generation and distribution)
Next, file generation and distribution executed for sharing a data file between a management center (TC) (transmitter) as a transmission entity of encrypted data and a user (receiver) as a reception entity of encrypted data. Details of the processing will be described. This process is executed by a management center (TC) as a transmission entity of encrypted data.

まず、管理センタ(TC)は、情報(データ)共有するユーザ(受信機)の集合S⊆Nを定義する。
管理センタ(TC)は、CビットのランダムなデータキーDKを生成し、これを用いて、ユーザui∈Sと共有したい情報(データ)を暗号化する。例えばあるコンテンツデータを共有する場合、コンテンツは、データキーDKによって暗号化されて提供される。
First, the management center (TC) defines a set S⊆N of users (receivers) that share information (data).
The management center (TC) generates a random data key DK of C D bits, and used to encrypt the information (data) to be shared with users Ui∈S. For example, when certain content data is shared, the content is provided after being encrypted by the data key DK.

なお、本実施例では、ユーザおよびユーザが所有する受信機を共にuiと表す。ここで、Cは、前述したデータ用の暗号関数Eの鍵サイズである。本実施例では、管理センタ(TC)は、暗号化したデータをファイルに格納するものとする。 In this embodiment, the user and the receiver owned by the user are both represented as ui. Here, C D is the key size of the encryption function E D for data described above. In this embodiment, the management center (TC) stores encrypted data in a file.

次に、情報(データ)を共有するユーザ(受信機)の集合S⊆Nに含まれない排他対象のユーザをujとする。ujは、uj∈S\Nである。この排他対象のユーザujをリボークするものと仮定して、適用ノードキーを決定する。なお、ここでは、ノードキーは、上述のデータキーDK、すなわち、共有情報(例えばコンテンツ)の暗号化に適用する鍵であるデータキーDKの暗号化鍵として適用する。   Next, a user to be excluded that is not included in the set S⊆N of users (receivers) sharing information (data) is set as uj. uj is ujεS \ N. Assuming that the user uj to be excluded is revoked, the application node key is determined. Here, the node key is applied as the encryption key of the above-described data key DK, that is, the data key DK that is a key applied to encryption of shared information (for example, content).

たとえば、図3に示したように、u1からu16の16台の受信機(16人のユーザ)から、u1,u11,u12の3台の受信機(3人のユーザ)を除いた13人のユーザが、情報(データ)を共有するユーザ(受信機)の集合Sを構成するのであれば、5,7,9,12,16のノードに対応する5つのノードキー(NK,NK,NK,NK12,NK16
をデータキーDKの暗号化鍵として適用する。
For example, as shown in FIG. 3, 13 receivers excluding three receivers (3 users) u1, u11, u12 from 16 receivers (16 users) u1 to u16. If the user constitutes a set S of users (receivers) sharing information (data), five node keys (NK 5 , NK 7 , NK) corresponding to the nodes 5 , 7 , 9, 12, 16 9, NK 12, NK 16)
Is applied as the encryption key of the data key DK.

そして、暗号化データとして、データキーDKで暗号化したコンテンツ等のデータ(Data)、すなわち、
(a)暗号化データ:E(DK,Data)、
を格納したファイルに、
(b)情報(データ)を共有するユーザ(受信機)の集合Sを指定する情報(本例では、ユーザ(受信機)番号=u1,u3−u10,u13−u16)
(c)選択ノードキー(NK,NK,NK,NK12,NK16)でデータキーDKを暗号化した暗号文、すなわち、
(NK,DK)、E(NK,DK)、E(NK,DK)、E(NK12,DK)、E(NK16,DK)
を追加して格納する。なお、これらの情報は、ファイルのヘッダに格納してもよい。
なお、Ea(X,Y)は、暗号関数Eaを適用してデータYを鍵Xを適用して暗号化したデータであることを示す。
And as encrypted data, data (Data) such as contents encrypted with the data key DK, that is,
(A) Encrypted data: E D (DK, Data),
In the file that stores
(B) Information designating a set S of users (receivers) sharing information (data) (in this example, user (receiver) numbers = u1, u3-u10, u13-u16)
(C) Ciphertext obtained by encrypting the data key DK with the selected node key (NK 5 , NK 7 , NK 9 , NK 12 , NK 16 ), that is,
E K (NK 5, DK) , E K (NK 7, DK), E K (NK 9, DK), E K (NK 12, DK), E K (NK 16, DK)
Add and store. Such information may be stored in the header of the file.
Ea (X, Y) indicates that the data Y is encrypted by applying the encryption function Ea and applying the key X.

また、情報(データ)を共有するユーザ(受信機)の集合Sを指定する情報は、上述のユーザ(受信機)番号=u1,u3−u10,u13−u16ではなく、暗号化に使用したノードキー(NK,NK,NK,NK12,NK16)を指定する情報で置き換えてもよい。この場合、上記例においては、5,7,9,12,16とノードキーの番号を列挙してもよいし、あるいは、表現木を適用した方法などが適用可能である。 Further, the information specifying the set S of users (receivers) sharing the information (data) is not the above-mentioned user (receiver) number = u1, u3-u10, u13-u16, but the node key used for encryption. Information specifying (NK 5 , NK 7 , NK 9 , NK 12 , NK 16 ) may be replaced. In this case, in the above example, 5, 7, 9, 12, 16 and node key numbers may be listed, or a method using an expression tree is applicable.

また、データキーDKを各ノードキーで暗号化した暗号文は、ノードキーの対応するノード番号の若い順に格納する。すなわち、上述の例では、
(NK,DK)、E(NK,DK)、E(NK,DK)、E(NK12,DK)、E(NK16,DK)
の順に格納する。
The ciphertext obtained by encrypting the data key DK with each node key is stored in ascending order of the node number corresponding to the node key. That is, in the above example,
E K (NK 5, DK) , E K (NK 7, DK), E K (NK 9, DK), E K (NK 12, DK), E K (NK 16, DK)
Store in order.

この構成を用いることにより、上述の例では、16人のユーザ(図2、図3のu1〜u16)の中で13人のユーザ(u1,u3〜u10,u13〜u16)と暗号化ファイルを共有しようとする場合に、5個の暗号文、すなわち、
(NK,DK)、E(NK,DK)、E(NK,DK)、E(NK12,DK)、E(NK16,DK)
を、共有するデータの暗号化データ:E(DK,Data)を格納したファイルに格納すればよい。
By using this configuration, in the above example, 13 users (u1, u3 to u10, u13 to u16) and 16 encrypted files among 16 users (u1 to u16 in FIG. 2 and FIG. 3). When trying to share five ciphertexts:
E K (NK 5, DK) , E K (NK 7, DK), E K (NK 9, DK), E K (NK 12, DK), E K (NK 16, DK)
May be stored in a file in which encrypted data of shared data: E D (DK, Data) is stored.

13人の個別鍵を適用してそれぞれの暗号化データを生成すると、13個の暗号化データを生成して配布することが必要であるが、上述の例では5個の暗号文のみで、13の異なるユーザにおいて共有することを可能とした暗号化データファイルを生成することができる。このように、本実施例の構成では、メッセージサイズ(通信量)を減らし,効率的なファイル共有が可能となる。   When each encrypted data is generated by applying 13 individual keys, it is necessary to generate and distribute 13 encrypted data, but in the above example, only 5 ciphertexts are used. It is possible to generate an encrypted data file that can be shared by different users. As described above, in the configuration of this embodiment, the message size (communication amount) is reduced and efficient file sharing is possible.

図6にファイル生成・配布のフローを示す。処理手順について説明する。管理センタ(TC)は、ステップS201において、まずその情報を共有する受信機(ユーザ)を決定する。すなわち、情報(データ)を共有するユーザ(受信機)の集合Sを決定する。   FIG. 6 shows a flow of file generation / distribution. A processing procedure will be described. In step S201, the management center (TC) first determines a receiver (user) that shares the information. That is, a set S of users (receivers) sharing information (data) is determined.

次に、ステップS202において、暗号化データの生成、すなわちデータキーDKを適用して、共有すべきデータ(Data)を暗号化し、暗号化データ:E(DK,Data)を生成する。 Next, in step S202, generation of encrypted data, that is, data key DK is applied to encrypt data (Data) to be shared, and encrypted data: E D (DK, Data) is generated.

次に、ステップS203において、暗号文の生成に適用するノードキー、すなわちデータキーDKをノードキーで暗号化した暗号文セットの生成に適用するノードキーを選択する。情報(データ)を共有するユーザ(受信機)の集合S⊆Nに含まれない排他対象のユーザをuj(uj∈S\N)として、この排他対象のユーザujをリボークするものと仮定して、適用ノードキーを決定する。ノードキーは、共有情報(例えばコンテンツ)の暗号化に適用する鍵であるデータキーDKの暗号化鍵として適用する。   Next, in step S203, a node key to be applied to generation of ciphertext, that is, a node key to be applied to generation of a ciphertext set obtained by encrypting the data key DK with the node key is selected. Assuming that an exclusion target user not included in the set S⊆N of users (receivers) sharing information (data) is uj (ujεS \ N), the exclusion target user uj is revoked. Determine the applicable node key. The node key is applied as an encryption key of a data key DK that is a key applied to encryption of shared information (for example, content).

次に、ステップS204において、暗号文を受信する受信機において、復号可能な暗号文を選択するための索引データとしての使用ノードキー指定情報またはユーザ指定情報を生成する。これは、どのノードキーを選択したかを表すタグ情報や表現コードなどである。   Next, in step S204, use node key designation information or user designation information as index data for selecting a ciphertext that can be decrypted is generated in a receiver that receives the ciphertext. This is tag information or an expression code indicating which node key has been selected.

ステップS205において、暗号化データとして、データキーDKで暗号化したコンテンツ等のデータ(Data)、すなわち、
(a)暗号化データ:E(DK,Data)、
を格納したファイルに、
(b)情報(データ)を共有するユーザ(受信機)の集合Sを指定する情報
(c)選択ノードキーでデータキーDKを暗号化した暗号文、すなわち、
(NK,DK)など、
これらを格納したファイルを生成して、同報通信路を用いて送信する。あるいは情報記録媒体に格納して配布する。
In step S205, as encrypted data, data (Data) such as content encrypted with the data key DK, that is,
(A) Encrypted data: E D (DK, Data),
In the file that stores
(B) Information specifying a set S of users (receivers) sharing information (data) (c) Ciphertext obtained by encrypting the data key DK with the selected node key, that is,
E K (NK 5 , DK), etc.
A file storing these is generated and transmitted using a broadcast channel. Alternatively, it is stored in an information recording medium and distributed.

図7に特定の選択機器においてのみ復号可能とした暗号化データ生成処理を実行する情報処理装置の機能構成を説明するブロック図を示す。セットアップ処理手段310は、先に図5のフローを参照して説明した処理を実行して、各ノードにノードキーを設定するとともに、各受信機に所定のノードキーを付与した階層木構成を構築する。   FIG. 7 is a block diagram illustrating a functional configuration of an information processing apparatus that executes encrypted data generation processing that can be decrypted only by a specific selected device. The setup processing means 310 executes the processing described above with reference to the flow of FIG. 5, sets a node key for each node, and constructs a hierarchical tree structure in which a predetermined node key is assigned to each receiver.

データ生成手段320は、暗号化データ生成手段321、データ共有集合情報生成手段322、暗号文セット生成手段323を有する。
暗号化データ生成手段321は、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
データ共有集合情報生成手段322は、
(b)データ共有機器を識別可能とした集合Sの情報、
暗号文セット生成手段323は、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、データ共有機器に基づいて選択された選択ノードキーを適用してデータキーDKを暗号化して生成した暗号文セット、
これらのデータをそれぞれ生成する。
The data generation unit 320 includes an encrypted data generation unit 321, a data sharing set information generation unit 322, and a ciphertext set generation unit 323.
The encrypted data generation means 321
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
The data sharing set information generation means 322
(B) Information of the set S that makes it possible to identify the data sharing device,
The ciphertext set generation means 323
(C) a ciphertext set generated by encrypting the data key DK by applying the selected node key selected based on the data sharing device based on the hierarchical tree configuration in the broadcast encryption method;
Each of these data is generated.

暗号化データ生成手段321は、共有対象のデータ(Data)を、データキーDKを適用して暗号関数Eによって暗号化した暗号化データE(DK,Data)を生成し、暗号文セット生成手段323は、データキーDKを、データ共有機器に基づいて決定される選択ノードキー(NKn)を適用して暗号関数Eによって暗号化した暗号化データE(NKn,DK)を生成する。すなわち、データ共有機器からルートに至るノードに設定されたノードキーを選択ノードキーとして適用してデータキーDKを暗号化して暗号文セットの生成処理を行なう。データ出力手段330は、データ生成手段320の生成したデータ(a)〜(c)をたとえばブロードキャスト出力する。 The encrypted data generation means 321 generates encrypted data E D (DK, Data) obtained by encrypting the data to be shared (Data) with the encryption function E D using the data key DK, and generates a ciphertext set means 323, the data key DK, to generate an encrypted by the encryption function E K by applying selected is determined based on the data sharing device node key (NKn) encrypted data E K (NKn, DK). That is, the node key set for the node from the data sharing device to the root is applied as the selected node key, and the data key DK is encrypted to generate a ciphertext set. The data output means 330 outputs, for example, the data (a) to (c) generated by the data generation means 320 by broadcast.

(3.3.ファイル利用)
次に、情報を受信したユーザ側の受信機におけるファイルの利用処理について説明する。上述のファイル、すなわち、
(a)暗号化データ:E(DK,Data)、
(b)情報(データ)を共有するユーザ(受信機)の集合Sを指定する情報
(c)選択ノードキーでデータキーDKを暗号化した暗号文、
これらのデータを含むファイルは、同報配信により受信機に提供される。あるいは情報記録媒体に格納されて受信機に提供される。このファイルは、すべての受信機が受領可能であるが、情報(データ)を共有するユーザ(受信機)の集合S以外の受信機、すなわち、情報(データ)を共有するユーザ(受信機)の集合S⊆Nに含まれない排他対象のユーザをuj(uj∈S\N)は、選択ノードキーでデータキーDKを暗号化した暗号文の復号に適用するノードキーを得ることができないのでデータキーDKを得ることができない。
(3.3. File usage)
Next, file use processing in the receiver on the user side that has received the information will be described. The above file, ie
(A) Encrypted data: E D (DK, Data),
(B) Information specifying a set S of users (receivers) sharing information (data) (c) Ciphertext obtained by encrypting the data key DK with the selected node key,
A file containing these data is provided to the receiver by broadcast distribution. Alternatively, it is stored in an information recording medium and provided to the receiver. This file can be received by all receivers, but the receivers other than the set S of users (receivers) sharing information (data), that is, users (receivers) sharing information (data). Since the user to be excluded that is not included in the set S⊆N cannot obtain the node key that is applied to decrypt the ciphertext obtained by encrypting the data key DK with the selected node key, the data key DK Can't get.

送信されたファイルを受信したら、まず、ユーザ(受信機)uiは、自身が集合Sに含まれることを確認する。管理センタ(TC)が配布したファイルにおいて、集合Sが直接指定されていれば、ui∈Sを直接確かめればよいし、ノードキーを指定する情報が格納されていれば、自身が割り当てられた葉もしくはその先祖のノードがそこに含まれることを確認すればよい。自身が、集合Sに含まれていなければ、処理をそこで終了する。   When the transmitted file is received, first, the user (receiver) ui confirms that it is included in the set S. If the set S is directly specified in the file distributed by the management center (TC), it is sufficient to directly check uiεS, and if the information specifying the node key is stored, the leaf to which it is assigned is stored. Or just confirm that its ancestor node is included. If it is not included in the set S, the process ends there.

情報(データ)を共有するユーザ(受信機)の集合Sに含まれることを確認した受信機は、受領した暗号文(選択ノードキーでデータキーDKを暗号化した暗号文)のセットから自己が復号できる暗号文と、使用すべきノードキーを特定する。受領した暗号文のセットに含まれる暗号文の暗号化に用いられているノードキーの中には、自身が直接保持しているノードキーが含まれる。   The receiver that has confirmed that it is included in the set S of users (receivers) that share information (data) decrypts itself from the set of received ciphertext (the ciphertext obtained by encrypting the data key DK with the selected node key). Identify the ciphertext that can be used and the node key to be used. The node key used for encrypting the ciphertext included in the received ciphertext set includes the node key directly held by itself.

ファイルにノードキーを指定する情報が格納されていれば、自身が割り当てられた葉もしくはその先祖のノードでそこに含まれるものが求めるノードキーであり、それに対応する順番の暗号文が復号すべき暗号文となる。集合Sが直接指定されている場合には、その情報から、管理センタ(TC)がどのノードキーを用いて暗号文を作成したかを求め、その情報に基づいて、上述のように、暗号化に利用されかつ自身が所有するノードキーを特定し、対応する暗号文を特定する。そして、そのノードキーで対応する暗号文を復号してデータキーDKを導出する。   If the information specifying the node key is stored in the file, it is the node key that the leaf or ancestor node to which it is assigned and what it contains, and the ciphertext in the corresponding order must be decrypted It becomes. When the set S is directly specified, it is determined from which information the node key used by the management center (TC) to create the ciphertext, and based on the information, as described above, the encryption is performed. The node key used and owned by itself is specified, and the corresponding ciphertext is specified. Then, the ciphertext corresponding to the node key is decrypted to derive the data key DK.

たとえば上記の例における具体的処理例について説明する。受信ファイルには、
(a)暗号化データ:E(DK,Data)、
(b)情報(データ)を共有するユーザ(受信機)の集合Sを指定する情報(本例では、ユーザ(受信機)番号=u1,u3−u10,u13−u16)、
(c)選択ノードキー(NK,NK,NK,NK12,NK16)でデータキーDKを暗号化した暗号文、すなわち、
(NK,DK)、E(NK,DK)、E(NK,DK)、E(NK12,DK)、E(NK16,DK)
これらのデータが含まれる。
For example, a specific processing example in the above example will be described. In the received file,
(A) Encrypted data: E D (DK, Data),
(B) Information designating a set S of users (receivers) sharing information (data) (in this example, user (receiver) numbers = u1, u3-u10, u13-u16),
(C) Ciphertext obtained by encrypting the data key DK with the selected node key (NK 5 , NK 7 , NK 9 , NK 12 , NK 16 ), that is,
E K (NK 5, DK) , E K (NK 7, DK), E K (NK 9, DK), E K (NK 12, DK), E K (NK 16, DK)
These data are included.

集合Sに含まれる一ユーザ(受信機)u9の処理について説明する。ユーザ(受信機)u9は、データキーDKの暗号化に用いられたノードキーNK12と、対応する暗号文E(NK12,DK)を特定し、この暗号文を、このノードキーNK12を用いて復号してデータキーDKを得る。
次に、暗号化データE(DK,Data)を、求めたデータキーDKを用いて復号することにより、平文データ(Data)を得る。
Processing of one user (receiver) u9 included in the set S will be described. User (receiver) u9 includes a node keys NK 12 used to encrypt the data key DK, identifies the corresponding ciphertext E K (NK 12, DK) , the ciphertext, using the node key NK 12 To obtain the data key DK.
Next, the encrypted data E D (DK, Data) is decrypted using the obtained data key DK to obtain plain text data (Data).

なお、上述の処理例は、複数の選択されたユーザの集合Sと、管理センタ(TC)において情報を共有する処理例として説明したが、例えば、集合Sに含まれるユーザuiが復号によって取得したデータ(Data)を編集して、この編集データを集合S内のほかのユーザや管理センタ(TC)と共有したい場合、上述の処理において、管理センタ(TC)が実行したと同様の処理を、ユーザuiが編集データに対して再度実行して、送信することで編集データの共有が可能となる。   The above-described processing example has been described as a processing example in which information is shared in a management center (TC) with a plurality of selected user sets S. For example, a user ui included in the set S has obtained by decoding When editing the data (Data) and wishing to share this edited data with other users or the management center (TC) in the set S, the same processing as that executed by the management center (TC) in the above processing is performed. The user ui executes the editing data again and transmits the editing data, so that the editing data can be shared.

この場合、ユーザが平文データを編集し編集データ(Data2)をデータキーDKで暗号化したデータ、すなわち、
(a)暗号化データE(DK,Data2)を含むファイルを作り、このファイルに、管理センタ(TC)から受信したオリジナルのファイルに含まれる情報、すなわち、
(b)情報(データ)を共有するユーザ(受信機)の集合Sを指定する情報(例えば、ユーザ(受信機)番号=u1,u3−u10,u13−u16)、
(c)選択ノードキーでデータキーDKを暗号化した暗号文、
これらのデータをオリジナルファイルからコピーして、編集データの暗号化データを含むファイルに追加格納し、同報通信路を用いて送信する。
In this case, the user edits the plaintext data and the edit data (Data2) is encrypted with the data key DK, that is,
(A) A file including encrypted data E D (DK, Data2) is created, and information included in the original file received from the management center (TC) is created in this file, that is,
(B) Information designating a set S of users (receivers) sharing information (data) (for example, user (receiver) numbers = u1, u3-u10, u13-u16),
(C) a ciphertext obtained by encrypting the data key DK with the selected node key;
These data are copied from the original file, additionally stored in a file containing the encrypted data of the edited data, and transmitted using the broadcast channel.

この編集データを含むファイルを受信した集合S内のユーザおよび管理センタ(TC)は、上述のユーザuiが行ったのと同様にして選択ノードキーでデータキーDKを暗号化した暗号文を復号してデータキーDKを取得し、取得したデータキーDKを適用して、暗号化データE(DK,Data2)の復号処理を実行して平文編集データ(Data2)を得ることができる。なお、集合Sのユーザまたは管理センタ(TC)は、さらに編集データを、再度編集して、再編集データを同様に暗号化データとして再送信することが可能である。 The user and management center (TC) in the set S that has received the file including the edited data decrypts the ciphertext obtained by encrypting the data key DK with the selected node key in the same manner as the user ui performs. It is possible to acquire the data key DK, apply the acquired data key DK, execute decryption processing of the encrypted data E D (DK, Data2), and obtain plaintext edit data (Data2). Note that the user of the set S or the management center (TC) can edit the edited data again and re-transmit the re-edited data as encrypted data in the same manner.

図8に示すフローチャートを参照して、ファイル利用のシーケンスについて説明する。まず、ステップS301において、ファイルを受信する。ファイルには、
(a)暗号化データ:E(DK,Data)、
(b)情報(データ)を共有するユーザ(受信機)の集合Sを指定する情報(例えば、ユーザ(受信機)番号=u1,u3−u10,u13−u16)、
(c)選択ノードキー(NK,NK,NK,NK12,NK16)でデータキーDKを暗号化した暗号文、例えば、
(NK,DK)、E(NK,DK)、E(NK,DK)、E(NK12,DK)、E(NK16,DK)
これらのデータが含まれる。
A file usage sequence will be described with reference to the flowchart shown in FIG. First, in step S301, a file is received. The file contains
(A) Encrypted data: E D (DK, Data),
(B) Information designating a set S of users (receivers) sharing information (data) (for example, user (receiver) numbers = u1, u3-u10, u13-u16),
(C) a ciphertext obtained by encrypting the data key DK with the selected node key (NK 5 , NK 7 , NK 9 , NK 12 , NK 16 ), for example,
E K (NK 5, DK) , E K (NK 7, DK), E K (NK 9, DK), E K (NK 12, DK), E K (NK 16, DK)
These data are included.

ステップS302において、ユーザ(受信機)uiは、自身が集合Sに含まれることを確認する。管理センタ(TC)が配布したファイルにおいて、集合Sが直接指定されていれば、ui∈Sを直接確かめればよいし、ノードキーを指定する情報が格納されていれば、自身が割り当てられた葉もしくはその先祖のノードがそこに含まれることを確認すればよい。自身が、集合Sに含まれていなければ、処理をそこで終了する。   In step S302, the user (receiver) ui confirms that it is included in the set S. If the set S is directly specified in the file distributed by the management center (TC), it is sufficient to directly check uiεS, and if the information specifying the node key is stored, the leaf to which it is assigned is stored. Or just confirm that its ancestor node is included. If it is not included in the set S, the process ends there.

情報(データ)を共有するユーザ(受信機)の集合Sに含まれることを確認した受信機は、ステップS303において、受領した暗号文(選択ノードキーでデータキーDKを暗号化した暗号文)のセットから自己が復号できる暗号文と、使用すべきノードキーを特定する。   In step S303, the receiver that has confirmed that it is included in the set S of users (receivers) that share information (data) sets the received ciphertext (ciphertext obtained by encrypting the data key DK with the selected node key). Specifies the ciphertext that can be decrypted by itself and the node key to be used.

ステップS304において、所有するノードキーによって、対応する暗号文を復号してデータキーDKを取得する。ステップS305において、暗号化データE(DK,Data)を、求めたデータキーDKを用いて復号することにより、平文データ(Data)を得る。 In step S304, the corresponding ciphertext is decrypted with the owned node key to obtain the data key DK. In step S305, the encrypted data E D (DK, Data) is decrypted using the obtained data key DK to obtain plain text data (Data).

次に、図9に示すフローを参照して、復号して取得したデータ(Data)の編集によってデータ(Data2)を生成して、再送信する処理シーケンスについ手説明する。ステップS321において、復号処理によって取得したデータ(Data)を編集し、データ(Data2)を生成する。   Next, a processing sequence for generating and retransmitting data (Data 2) by editing the data (Data) obtained by decoding will be described with reference to the flow shown in FIG. In step S321, the data (Data) acquired by the decoding process is edited to generate data (Data2).

ステップS322において、データ(Data2)を、データキーDKによって暗号化し、暗号化データ:E(DK,Data2)を生成して、この暗号化データを格納したファイルを生成する。ステップS323において、オリジナルファイル、すなわち、編集前のデータ(Data)の暗号化データを格納したファイルに格納されていた集合Sの定義情報と、選択ノードキーによるデータキーDKの暗号化データである暗号文セットを、オリジナルファイルから取得して、これらをコピーして、編集データ格納ファイルに格納する。 In step S322, the data (Data2) is encrypted with the data key DK to generate encrypted data: E D (DK, Data2), and a file storing the encrypted data is generated. In step S323, the definition information of the set S stored in the original file, that is, the file storing the encrypted data of the data (Data) before editing, and the ciphertext that is the encrypted data of the data key DK by the selected node key The set is acquired from the original file, and these are copied and stored in the edit data storage file.

ステップS324において、生成ファイルを送信する。生成ファイルには、
(a)暗号化データ:E(DK,Data2)、
(b)情報(データ)を共有するユーザ(受信機)の集合Sを指定する情報(例えば、ユーザ(受信機)番号=u1,u3−u10,u13−u16)、
(c)選択ノードキー(NK,NK,NK,NK12,NK16)でデータキーDKを暗号化した暗号文、例えば、
(NK,DK)、E(NK,DK)、E(NK,DK)、E(NK12,DK)、E(NK16,DK)
これらのデータが含まれる。
In step S324, the generated file is transmitted. The generated file contains
(A) Encrypted data: E D (DK, Data2),
(B) Information designating a set S of users (receivers) sharing information (data) (for example, user (receiver) numbers = u1, u3-u10, u13-u16),
(C) a ciphertext obtained by encrypting the data key DK with the selected node key (NK 5 , NK 7 , NK 9 , NK 12 , NK 16 ), for example,
E K (NK 5, DK) , E K (NK 7, DK), E K (NK 9, DK), E K (NK 12, DK), E K (NK 16, DK)
These data are included.

この編集データを含むファイルを受信した集合S内のユーザおよび管理センタ(TC)は、上述のユーザuiが行ったのと同様にして選択ノードキーでデータキーDKを暗号化した暗号文を復号してデータキーDKを取得し、取得したデータキーDKを適用して、暗号化データE(DK,Data2)の復号処理を実行して編集データ(Data2)を得る。 The user and management center (TC) in the set S that has received the file including the edited data decrypts the ciphertext obtained by encrypting the data key DK with the selected node key in the same manner as the user ui performs. The data key DK is acquired, and the acquired data key DK is applied to execute decryption processing of the encrypted data E D (DK, Data2) to obtain edit data (Data2).

図10に、暗号化データの復号処理を実行するユーザ機器としての受信機に相当する情報処理装置の機能構成を説明するブロック図を示す。データ入力手段351は、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを入力する。
FIG. 10 is a block diagram illustrating a functional configuration of an information processing apparatus corresponding to a receiver as a user device that executes a process of decrypting encrypted data. The data input means 351 is
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
The data (a) to (c) are input.

暗号文選択手段352は、上記(c)暗号文セットから、自己のメモリ353に格納されたノードキーによって復号可能な暗号文を選択する。階層木構成において、自己の対応するノードからルートに至るノードに設定されたノードキーによって暗号化された暗号文を選択する。ノードキー取得手段354は、暗号文選択手段352において選択した暗号文の復号に適用するノードキーをメモリ353から取得する。   The ciphertext selection means 352 selects a ciphertext that can be decrypted by the node key stored in its own memory 353 from the ciphertext set (c). In the hierarchical tree structure, the ciphertext encrypted by the node key set in the node from the corresponding node to the root is selected. The node key acquisition unit 354 acquires from the memory 353 a node key that is applied to the decryption of the ciphertext selected by the ciphertext selection unit 352.

データキー取得手段355は、メモリ353に保持されたノードキーを適用して、暗号文選択手段352において選択した暗号文を復号し、データキーDKを取得する。平文データ取得手段356は、取得したデータキーDKを適用して暗号化データを復号し、平文データを取得する。   The data key acquisition unit 355 applies the node key held in the memory 353, decrypts the ciphertext selected by the ciphertext selection unit 352, and acquires the data key DK. The plaintext data acquisition unit 356 applies the acquired data key DK to decrypt the encrypted data and acquires plaintext data.

データ編集手段357は、平文データ取得手段356において取得した平文データ(Data)を編集し、編集データ(Data2)を生成し、ファイル生成手段358は、編集データ(Data2)に、さらに、前述の(b),(c)の各データのコピーデータを含むファイルを生成する。データ出力手段359は、ファイル生成手段358において生成したファイルを出力する。   The data editing unit 357 edits the plaintext data (Data) acquired by the plaintext data acquisition unit 356 to generate editing data (Data2), and the file generation unit 358 further adds the above-described ((2) to the editing data (Data2). A file including copy data of each data of b) and (c) is generated. The data output unit 359 outputs the file generated by the file generation unit 358.

以上、説明したように、本実施例の構成では、ブロードキャストエンクリプション技術を利用して、データキーDKによって暗号化したデータを配信するとともに、木構造に配置したノードキーの中で複数のユーザが共有しているノードキーを用いてデータキーDKを暗号化して配布する構成とした。本構成により、情報を共有する各人の個別鍵を適用してそれぞれの暗号化データを生成して配信する構成に比較して、メッセージサイズ(通信量)を削減した効率のよい暗号化ファイル共有システムが構築される。   As described above, in the configuration of the present embodiment, data encrypted by the data key DK is distributed using the broadcast encryption technology, and shared by a plurality of users among the node keys arranged in the tree structure. The data key DK is encrypted and distributed using the node key. Efficient encrypted file sharing with reduced message size (communication volume) compared to the configuration that generates and distributes each encrypted data by applying the individual key of each person sharing information. A system is built.

具体的には、前述したように、図2、図3の木構造において、u1,u3〜u10,u12〜u16の13人において情報を共有しようとする場合、個別鍵を用いると、13個の暗号化データを生成して配布することが必要であるが、上述の例では5個のデータキーを暗号化した暗号文、すなわち、
(NK,DK)、E(NK,DK)、E(NK,DK)、E(NK12,DK)、E(NK16,DK)
を生成して、配信するのみで、13の異なるユーザにおいて共有することがを可能となる。このように、本実施例の構成では、メッセージサイズ(通信量)を減らし,効率的なファイル共有が可能となる。
Specifically, as described above, in the tree structure of FIG. 2 and FIG. 3, when information is shared among 13 people u1, u3 to u10, u12 to u16, Although it is necessary to generate and distribute encrypted data, in the above example, ciphertext obtained by encrypting five data keys, that is,
E K (NK 5, DK) , E K (NK 7, DK), E K (NK 9, DK), E K (NK 12, DK), E K (NK 16, DK)
Can be shared among 13 different users. As described above, in the configuration of this embodiment, the message size (communication amount) is reduced and efficient file sharing is possible.

さらに情報共有集合Sに含まれるユーザuiが復号して取得したデータを編集した後に,再度同じユーザ集合S内で、編集データを共有するためにファイルを暗号化して送信する場合にも、編集後のデータをデータキーDKで暗号化して、サラニオリジナルファイルに含まれる集合Sの定義情報と、選択ノードキーによるデータキーDKの暗号化データである暗号文セットをコピーして、編集データ格納ファイルに格納して送信することで、編集ファイルについての集合Sのメンバにおける共有も効率的で安全に行なうことができる。   Further, after editing the data obtained by decrypting and acquiring the user ui included in the information sharing set S, it is also possible to send the encrypted data to share the edited data again in the same user set S. Is encrypted with the data key DK, and the definition information of the set S included in the Salani original file and the ciphertext set that is the encrypted data of the data key DK with the selected node key are copied and stored in the edited data storage file Thus, the sharing of the edited file among the members of the set S can be performed efficiently and safely.

[4.Rabin Treeを適用した処理構成]
(4.1)Rabin Treeの構成について
次に、Rabin Treeを適用した処理構成について説明する。Rabin Treeも階層木を用いたデータ配信構成を実現するものである。Rabin Treeは受信機の保持すべき鍵情報の削減を実現した構成である。まず、Rabin Treeの構成の説明の前に、その基礎となるRSA暗号を用いた方式を説明する。この方式は、例えば、「2004年暗号と情報セキュリティシンポジウム予稿集、pp.189−194」、「2004年暗号と情報セキュリティシンポジウム予稿集、pp.195−199」において、野島らおよび尾形らが提案した方式である。
[4. Processing configuration applying Rabin Tree]
(4.1) Configuration of Rabin Tree Next, a processing configuration to which Rabin Tree is applied will be described. Rabin Tree also implements a data distribution configuration using a hierarchical tree. The Rabin Tree has a configuration that realizes reduction of key information to be held by the receiver. First, before the description of the configuration of the Rabin Tree, a system using the RSA encryption as the basis will be described. This method is proposed by Nojima et al. And Ogata et al. In “2004 Cryptography and Information Security Symposium Proceedings, pp.189-194” and “2004 Ciphering and Information Security Symposium Proceedings, pp.195-199”, for example. This is the method.

この方式では、図11に示すように、例えばRSA暗号の順方向置換(f)と逆方向置換(f−1)を用いる。RSA暗号の法をM、公開指数をe、秘密指数をdとすると、法:Mと、公開指数:eとを知っていれば行えるのが順方向置換(f)、秘密指数:dを知らないと実行困難であるのが逆方向置換(f−1)である。 In this method, as shown in FIG. 11, for example, forward substitution (f) and backward substitution (f −1 ) of RSA encryption are used. If the RSA cryptography method is M, the public exponent is e, and the secret exponent is d, then the forward permutation (f) and the secret exponent: d are known if you know the law: M and the public exponent: e. Otherwise, backward substitution (f −1 ) is difficult to execute.

RSA暗号についての詳細は、たとえば、A.J.Menezes,P.C.van Oorschot and S.A.Vanstone著,"Handbook of Applied Cryptography,"CRC Press,1996に紹介されている。   Details of the RSA cipher can be found in, for example, A.1. J. et al. Menezes, P.M. C. van Oorschot and S.V. A. Introduced by Vanstone, "Handbook of Applied Cryptography," CRC Press, 1996.

RSA暗号を用いた方式では、管理センタ(TC)のみが秘密指数:dを秘密に保持し、法:Mと、公開指数:eとは各受信機に公開する。管理センタ(TC)は、
秘密の値:K∈Z
を定め、これをルートの鍵NKとする。すなわち、
NK=Kとする。なお、K∈Z は、Kが、群Z (すなわち,群Z={0,1,...,M−1}の要素中,逆元を持つものからなる群)の元であることを意味する。
In the system using the RSA encryption, only the management center (TC) keeps the secret index: d secret, and the law: M and the public index: e are disclosed to each receiver. The management center (TC)
Secret value: K∈Z * M
An agreement, this is a key NK 1 of the route. That is,
Let NK 1 = K. Note that K∈Z * M is the value of K in the group Z * M (that is, the group consisting of elements of the group Z M = {0, 1,..., M−1} having an inverse element) Means original.

ルート以外のノードl(エル)の鍵は、その親ノードの鍵、

Figure 2007020025
と、そのノードの番号lから、下式、
Figure 2007020025
に従って算出する。
上記式において、Hは任意のサイズの入力をZの要素にマッピングする公開関数である。 The key of node l (el) other than the root is the key of its parent node,
Figure 2007020025
From the node number l,
Figure 2007020025
Calculate according to
In the above formula, H is a public function that maps an input of arbitrary size to an element of Z M.

このように、親ノードの鍵から子ノードの鍵を求めることは、秘密指数:dを知る管理センタ(TC)のみが行えるが、逆に子ノードの鍵NKを知っている受信機は、公開されている法:Mと、公開指数:eと公開関数:Hとを用いて、下式、

Figure 2007020025
により親ノードの鍵(ノードキー)、
Figure 2007020025
を導出することができる。 In this way, the child node key can be obtained from the parent node key only by the management center (TC) that knows the secret index: d, but conversely, the receiver that knows the child node key NK l is Using the published law: M, the public index: e, and the public function: H,
Figure 2007020025
By the key of the parent node (node key),
Figure 2007020025
Can be derived.

次に、一方向木として設定されるRabin Treeについて説明する。なお、「Rabin Tree」とは、一般的な用語ではなく本発明の説明のために用いる言葉である。N個の葉を持つ完全2分木に対し、ルートを1、それ以降のノードを上位、左から2,3,...,2N−1と幅優先で番号付けし、下記の手順に従って、Rabin Treeを構成する。   Next, Rabin Tree set as a one-way tree will be described. “Rabin Tree” is not a general term but a term used to describe the present invention. For a complete binary tree with N leaves, number the root as 1 and the subsequent nodes from the top, 2, 3,..., 2N-1 from the left. Configure the Tree.

前述のRSA暗号を適用した構成と同様、2つの大きな素数の積Mを管理センタ(TC)が定め、公開する。管理センタ(TC)は、
秘密の値:Y∈Z
を定め、これを頂点(ノード1)に対応する値NVとする。なお、Y∈Z は、Yが、群Z の元であることを意味する。
Similar to the configuration using the RSA cipher described above, the management center (TC) determines and publicizes the product M of two large prime numbers. The management center (TC)
Secret value: Y∈Z * M
And set this as the value NV 1 corresponding to the vertex (node 1). YεZ * M means that Y is an element of the group Z * M.

頂点以外のノードl(エル)(l=2,3,・・・,2N−1)に対応する値NVは、そのノードの番号lと親ノードに対応するノード対応値、

Figure 2007020025
を用いてを求める。 A value NV l corresponding to a node 1 (el) (l = 2, 3,..., 2N−1) other than the vertex is a node corresponding value corresponding to the node number l and a parent node,
Figure 2007020025
Use to find out.

まず、下式によって、tmpを定義する。

Figure 2007020025
First, tmp l is defined by the following equation.
Figure 2007020025

上記式によって定義される値tmpが、前述した2つの大きな素数の積Mを法とする平方剰余になるような最小の非負整数saltを見つける。saltは、ノードl(エル)に対応して設定されるノード付加変数である。 Find the smallest non-negative integer salt l such that the value tmp l defined by the above equation is the quadratic residue modulo the product M of the two large prime numbers described above. The salt l is a node addition variable set in correspondence with the node l.

なお、上記式において、l‖saltは、lとsaltとの連結を表し、Hは、任意のサイズの入力を前述した2つの大きな素数の積Mのサイズ|M|にマッピングする公開関数である。このような関数の例として、任意の長さの入力に対し160ビットの出力を出す縮約関数としてのSHA−1ハッシュ関数を用いて、|M|−160ビットの0と、SHA−1にlを入力したときの出力をビット連結した|M|ビットの値をH(l)として用いることが挙げられる。なお、縮約関数としてのSHA−1については、例えば、A.J.Menezes,P.C.van Oorschot and S.A.Vanstone著,"Handbook of Applied Cryptography,"CRC Press,1996に紹介されている。 In the above equation, l‖salt l represents a connection between l and salt l, and H is a public function that maps an input of an arbitrary size to the size | M | of the product M of the two large prime numbers described above. It is. As an example of such a function, using a SHA-1 hash function as a contraction function that outputs 160 bits for an input of an arbitrary length, | M | −160 bits of 0 and SHA-1 The value of | M | bits obtained by bit-concatenating the output when l is input can be used as H (l). Regarding SHA-1 as a contraction function, for example, A.I. J. et al. Menezes, P.M. C. van Oorschot and S.V. A. Introduced by Vanstone, "Handbook of Applied Cryptography," CRC Press, 1996.

ここで、ある数KがMを法とする平方剰余であるということは、下式、
modM=K
が成立する数aが存在することをいい、これを、
K∈QR
として表す。ある数KがK∈QRを満たすかどうかは、Mの素因数p,qを知っていれば、下式、

Figure 2007020025
上記両式を満たすかどうかにより判別できる。なお、上記式において、(a/p)はルジャンドル(Legendre)記号である。
すなわち、上記両式を満たした場合、またその場合のみ、KがK∈QRを満たす。 Here, the fact that a certain number K is a quadratic residue modulo M means that
a 2 mod M = K
That there is a number a that holds,
K ∈ QR M
Represent as Whether a number K satisfies K∈QR M, prime factors p of M, if you know q, following equation,
Figure 2007020025
It can be discriminated by whether or not both the above equations are satisfied. In the above formula, (a / p) is a Legendre symbol.
That is, when met above two equations, also in which case only, K satisfies K∈QR M.

さらに、Mの素因数p,qを知っているものは、
modM=K
なる数aを求めることもできる。その方法は、たとえば、岡本龍明、山本博資著、「現代暗号」、産業図書の114ページに記されている。
Furthermore, what knows prime factors p and q of M is
a 2 mod M = K
The number a can be obtained. The method is described, for example, on page 114 of Tatsuaki Okamoto, Hiroshi Yamamoto, “Contemporary Cryptography”, and Industrial Books.

逆に、
K∈QRであるとき、
modM=K
なる数aを求めることは、Mの素因数p,qを知らないものには困難となる。実際、これはMを素因数分解することと等価であることが証明されている。
vice versa,
When it is K∈QR M,
a 2 mod M = K
It is difficult to obtain a number a that does not know the prime factors p and q of M. In fact, this has proven to be equivalent to factoring M.

上記のようにして、
tmp∈QR
となる最小の非負整数saltを見つけたら、
tmp 1/2modM
を計算し、この解として得られる4つの数のうちのいずれかを、ノードl(エル)に対応する値、すなわち、ノードl(エル)のノード対応値NVとする。
As above,
tmp l ∈ QR M
If we find the smallest non-negative integer salt l such that
tmp l 1/2 modM
It was calculated, any of the four numbers obtained as the solution, the value corresponding to the node l (el), i.e., a node associated value NV l of the node l (el).

このようにして、ルートの値NVから、その子ノード2,3のノード対応値NV,NVを定め、これを繰り返してNV2N−1まですべてのノードの値(ノード対応値)を決定する。 In this way, the node correspondence values NV 2 and NV 3 of the child nodes 2 and 3 are determined from the route value NV 1 , and this is repeated to determine the values of all nodes (node correspondence values) up to NV 2N−1. To do.

このようにして定められた各ノードl(エル)のノード対応値NV(l=2,3,・・・,2N−1)は、下式、

Figure 2007020025
・・・(数式1)
の関係を満たす。すなわち、あるノードの値であるノード対応値NVとノード付加変数saltからその親ノードのノード対応値、
Figure 2007020025
を求めることは、関数:Hおよび、法:Mが公開されているため容易である。 The node-corresponding value NV l (l = 2, 3,..., 2N−1) of each node l (L) thus determined is expressed by the following equation:
Figure 2007020025
... (Formula 1)
Satisfy the relationship. That is, the node correspondence value NV l which is the value of a certain node and the node addition variable salt l from the node correspondence value of its parent node,
Figure 2007020025
Is easy because the function: H and the method: M are disclosed.

葉がN個である2分木のRabin Treeを構成するアルゴリズムの例を下記に示す。このアルゴリズムの入力は、
[入力]
2分木を構成する葉(リーフ)の数:Nと、
法Mのサイズ:|M|
|M|ビット出力のマッピング関数H
であり、このアルゴリズムの出力は、
[出力]
2N−1個の|M|ビットの数(ノード対応値):NV,NV,・・・,NV2N−1と、
2N−2個の数(ノード付加変数):salt,salt,・・・,salt2N−1である。
An example of an algorithm for constructing a Rabin Tree of a binary tree having N leaves is shown below. The input of this algorithm is
[input]
Number of leaves constituting the binary tree: N
Size of method M: | M |
| M | Bit Output Mapping Function H
And the output of this algorithm is
[output]
Number of 2N−1 | M | bits (corresponding to node values): NV 1 , NV 2 ,..., NV 2N−1
2N-2 numbers (node additional variables): salt 2 , salt 3 ,..., Salt 2N−1 .

上記の[入力]に基づいて、上記の[出力]を得るアルゴリズムは以下のようになる。
1.サイズ|M|/2の2つの大きな素数を定め、その積Mを計算する。
2.ルートノードのノード対応値としての値NV∈Z をランダムに選択する。
3.l(エル)をカウンタとして2から2N−1まで1ずつ増加させながら下記a,bの処理を行う。
a.下記式、

Figure 2007020025
・・・(数式2)
が、Mを法とする平方剰余になるような最小の非負整数saltを見つける。
b.tmp 1/2modMを求め、4つの解のうちのいずれかを、ノードl(エル)のノード対応値NVと定める。
4.2N−1個の|M|ビットの数(ノード対応値):NV,NV,・・・,NV2N−1と、2N−2個の数(ノード付加変数):salt,salt,・・・,salt2N−1
を出力して終了する。 Based on the above [input], the algorithm for obtaining the above [output] is as follows.
1. Determine two large prime numbers of size | M | / 2 and calculate their product M.
2. A value NV 1 εZ * M as a node corresponding value of the root node is selected at random.
3. The following processes a and b are performed while incrementing 1 from 2 to 2N-1 by using l as a counter.
a. The following formula,
Figure 2007020025
... (Formula 2)
Find the smallest non-negative integer salt l such that modulo M.
b. tmp l 1/2 modM is obtained, and one of the four solutions is determined as the node corresponding value NV l of the node l .
4.2 Number of | M | bits (node-corresponding values): NV 1 , NV 2 ,..., NV 2N−1 and 2N−2 numbers (node additional variables): salt 2 , salt 3 ,..., salt 2N-1
And exit.

出力値NVがRabin Treeのノードl(エル)のノード対応値となる。なお、葉(リーフ)の数がNの完全2分木のノード総数は2N−1であり、上記出力によって、すべてのノードのノード対応値が出力される。 The output value NV l becomes the node-corresponding value of the node 1 (El) of the Rabin Tree. Note that the total number of nodes of the complete binary tree with N leaves is 2N−1, and the node output values of all nodes are output by the above output.

図12に、上記アルゴリズムのフローを示す。フローの各ステップについて説明する。ステップS401において、2分木を構成する葉(リーフ)の数Nと、法Mのサイズ|M|、および|M|ビット出力のマッピング関数Hを入力する。   FIG. 12 shows the flow of the above algorithm. Each step of the flow will be described. In step S401, the number N of leaves constituting the binary tree, the size | M | of the modulus M, and the mapping function H of | M | -bit output are input.

ステップS402において、サイズ|M|/2の2つの大きな素数を定め、その積Mを計算し、ルートノードのノード対応値としての値NV∈Z をランダムに選択する。ステップS403において、値:lの初期設定として、l=2とする設定を行なう。 In step S402, two large prime numbers of size | M | / 2 are determined, their product M is calculated, and a value NV 1 εZ * M as a node-corresponding value of the root node is randomly selected. In step S403, a setting of l = 2 is made as an initial setting of the value: l.

ステップS404において、上記した数式2において定義されるtmpがMを法とする平方剰余になるような最小の非負整数saltを見つける。これをノード付加変数とする。
ステップS405において、tmp 1/2modMを求め、4つの解のうちのいずれかを、ノードl(エル)のノード対応値NVと定める。
In step S404, the minimum non-negative integer salt l is found such that tmp l defined in Equation 2 is a quadratic residue modulo M. This is a node additional variable.
In step S405, tmp l 1/2 modM is obtained, and one of the four solutions is determined as the node corresponding value NV l of the node l .

ステップS406において、l=2N−1であるか否かを判定し、l=2N−1でない場合は、ステップS407に進み、lを1つインクリメントして、ステップS404,S405の処理を実行する。ステップS407において、l=2N−1と判定されるまで、ステップS404,S405を繰り返し実行して、ステップS407において、l=2N−1と判定されると、ステップS408において、2N−1個の|M|ビットの数(ノード対応値):NV,NV,・・・,NV2N−1と、2N−2個の数(ノード付加変数):salt,salt,・・・,salt2N−1を出力して終了する。 In step S406, it is determined whether or not l = 2N-1. If l = 2N-1, the process proceeds to step S407, where l is incremented by 1, and the processes of steps S404 and S405 are executed. Steps S404 and S405 are repeatedly executed until it is determined in step S407 that l = 2N−1. If it is determined that l = 2N−1 in step S407, 2N−1 | M | Number of bits (node-corresponding values): NV 1 , NV 2 ,..., NV 2N−1 and 2N−2 numbers (node additional variables): salt 2 , salt 3 ,. Output 2N-1 and end.

上記処理によって各ノードのノード対応値NVを定めたRabin Treeの構成を図13に示す。上記の処理によって定めたノード対応値NVにより構成された木は、あるノードのノード対応値NVおよびノード付加変数saltからその親ノードのノード対応値、

Figure 2007020025
を求めることは容易だが、その逆は困難なものとなる。 FIG. 13 shows the configuration of the Rabin Tree in which the node correspondence value NV 1 of each node is determined by the above processing. The tree constituted by the node corresponding value NV l determined by the above processing is obtained by calculating the node corresponding value of the parent node from the node corresponding value NV l of the certain node and the node additional variable salt l ,
Figure 2007020025
Is easy, but the opposite is difficult.

図13において、関数fに沿って示されている直線矢印は、下位ノードのノード対応値NVを入力として関数fを適用することで、上位ノードのノード対応値が求められることを示している。関数fは、順方向演算(modM上の2乗算)Fを用いた演算である。あるノード(子ノード)の親ノードのノード対応値は、子ノードのノード対応値NVおよびsaltからその公開された関数:Hおよび、法:Mを適用して、前述の数式1に従って算出することができる。 13, the straight arrows shown along the function f, by applying the function f as an input node associated value NV l lower node indicates that the node corresponding value of the parent node is determined . The function f is a calculation using a forward calculation (two multiplications on modM) F. The node-corresponding value of the parent node of a certain node (child node) is calculated from the node-corresponding values NV l and salt l of the child node according to the above-described Equation 1 by applying the published function: H and modulus: M. can do.

図13において、関数f−1に沿って示されている直線矢印は、上位ノードのノード対応値を入力として関数f−1を摘用することで、下位ノードのノード対応値が求められることを示している。関数f−1は、逆方向演算(modM上の1/2乗算)F−1を用いた演算である。上位ノードのノード対応値から子ノードのノード対応値を求めるには、秘密情報p,q(Mの素因数)を知ることが必要であり、管理センタ(TC)のみが行える。 In FIG. 13, the straight arrow shown along the function f −1 indicates that the node correspondence value of the lower node can be obtained by adopting the function f −1 with the node correspondence value of the upper node as an input. Show. The function f −1 is a calculation using a backward calculation (½ multiplication on modM) F −1 . In order to obtain the node correspondence value of the child node from the node correspondence value of the upper node, it is necessary to know the secret information p and q (prime factor of M), and only the management center (TC) can perform.

このようにノード対応値NVは下位から上位の一方向については、公開された関数:Hおよび、法:Mを適用して、前述の数式1に従って算出することができるが、逆方向は困難である一方向木が生成される。このような設定を持つノード対応値NVにより構成された一方向木をRabin Treeと呼ぶ。これはRabin暗号が、暗号化(順方向演算)にmodM上の自乗算、復号(逆方向演算)にmodM上のルート(1/2乗)演算を用いているためである。 As described above, the node correspondence value NV can be calculated according to the above-described Equation 1 by applying the published function: H and modulus: M in one direction from the lower to the upper, but the reverse direction is difficult. A one-way tree is generated. A one-way tree constituted by the node correspondence value NV 1 having such a setting is called a Rabin Tree. This is because the Rabin cipher uses a self multiplication on modM for encryption (forward calculation) and a root (1/2 power) calculation on modM for decryption (reverse calculation).

すなわち、一方向木としてのRabin Treeのノードに設定されるノード対応値は以下のような設定を持つ。すなわち、下位ノードのノード対応値に基づくRabin暗号を適用した暗号化処理(順方向演算)によって上位ノードのノード対応値が算出され、上位ノードのノード対応値に基づくRabin暗号を適用した復号処理(逆方向演算)によって下位ノードのノード対応値が算出される構成である。本構成により、下位から上位のノード対応値の算出は公開された関数:Hおよび、法:Mを適用して、前述の数式1に従って算出することができるが、上位から下位のノード対応値の算出は公開された関数:Hおよび、法:Mのみでは算出が困難であり、秘密情報p,q(Mの素因数)を知る管理センタ(TC)のみが算出できる。なお、Rabin暗号については、たとえば上述のA.J.Menezes,P.C.van Oorschot and S.A.Vanstone著,"Handbook of Applied Cryptography,"CRC Press,1996のpp.292−294に詳しい説明がある。   That is, the node correspondence value set for the node of the Rabin Tree as a one-way tree has the following setting. That is, the node-corresponding value of the upper node is calculated by the encryption process (forward calculation) based on the node-corresponding value of the lower node, and the decryption process (Applying the Rabin cipher based on the node-corresponding value of the upper node) In this configuration, the node-corresponding value of the lower node is calculated by the reverse calculation. With this configuration, calculation of the node correspondence values from the lower to the higher can be performed according to the above-described Equation 1 by applying the publicly disclosed function: H and modulus: M. The calculation is difficult only with the publicly disclosed function: H and modulus: M, and only the management center (TC) that knows the secret information p, q (the prime factors of M) can be calculated. As for the Rabin cipher, for example, the A. J. et al. Menezes, P.M. C. van Oorschot and S.V. A. By Vanstone, "Handbook of Applied Cryptography," CRC Press, 1996 pp. There is a detailed description in 292-294.

上記のように構成したRabin Treeにおいて、階層木の各ノードに対しノードキーNKを定めるが、これは上記で定めたノード対応値NVを用いて算出可能な値とする。すなわち、ノードl(エル)のノードキーNKは、
NK=Hc(NV
とする。なお、関数Hcは、サイズ|M|の値を、サイズCのランダムな値にマップするハッシュ関数である。たとえばCが160bitの場合、任意のサイズの入力に対し160bitの値を出力する関数としては上記のSHA−1があり、また、Cが128bitの場合、任意のサイズの入力に対し128bitの値を出力する関数としては、MD5などが知られており、これらの関数を適用することができる。なお、MD5についても、上述のA.J.Menezes,P.C.van Oorschot and S.A.Vanstone著,"Handbook of Applied Cryptography,"CRC Press,1996に詳しい説明がある。
In the Rabin Tree configured as described above, the node key NK l is determined for each node of the hierarchical tree, and this is a value that can be calculated using the node correspondence value NV l defined above. That is, the node key NK l of the node l is
NK l = Hc (NV l )
And The function Hc is a hash function that maps the value of the size | M | to a random value of the size C. For example, when C is 160 bits, there is the above-described SHA-1 as a function that outputs a 160-bit value for an input of an arbitrary size, and when C is 128 bits, a 128-bit value is input for an input of an arbitrary size. MD5 is known as an output function, and these functions can be applied. For MD5, the above A.I. J. et al. Menezes, P.M. C. van Oorschot and S.V. A. A detailed description can be found in Vanstone, "Handbook of Applied Cryptography," CRC Press, 1996.

ノードキーはセッションキーなど受信機に送信すべき情報の暗号化に用いられるため、このサイズCの決め方は、そこに用いる暗号アルゴリズムの鍵のサイズとすればよい。たとえば暗号アルゴリズムとして128bit鍵のAES(Advanced Encryption Standard FIPS197)を用いる場合には、Cを128bitとすればよい。   Since the node key is used to encrypt information to be transmitted to the receiver, such as a session key, the size C can be determined by the size of the encryption algorithm key used there. For example, when using 128-bit AES (Advanced Encryption Standard FIPS197) as an encryption algorithm, C may be set to 128 bits.

また、このRabin TreeのN個の葉を、それぞれ左からleaf,leaf,・・・・,leafと番号づけ(つまり、左端のleafのノード番号はNであるため、leafのノード番号はN−1+iとなる)、leafに受信機uiを割り当てる。受信機uiには、leafの葉(ノード)に対応する値NVN−1+iと、leafからルートへ至るパス上のノードのlogN個のノード付加変数saltを与える。 Also, leaf 1 N leaves of the Rabin Tree, from the left, respectively, leaf 2, · · · ·, leaf N and numbered (i.e., since the node number of the leftmost leaf 1 is N, the leaf i The node number is N-1 + i), and the receiver ui is assigned to leaf i . The receiver ui is given a value NV N-1 + i corresponding to leaf i leaves (nodes) and logN node additional variables salt l of nodes on the path from leaf i to the root.

図14に示したように受信機を割り当てた場合、葉であるノード19に割り当てられた受信機u4には、ノード19のノード対応値NV19と、ノード19からルートへのパス上のノードのノード付加変数であるsalt19,salt,salt,saltを与える。 When the receiver is allocated as shown in FIG. 14, the receiver u4 allocated to the node 19 that is the leaf has the node correspondence value NV 19 of the node 19 and the node on the path from the node 19 to the route. The node addition variables salt 19 , salt 9 , salt 4 , and salt 2 are given.

このような設定とすることにより、受信機u4は与えられたノード対応値:NV19と、ノード19からルートへのパス上のノードのノード付加変数:salt19,salt,salt,saltを用いて、ノード19からルートへのパス上の全てのノードの値、すなわちノード対応値NVを求めることができる。またそれぞれのノードのノードキーNKは、前述したように、ノード対応値NVから算出、すなわち、
NK=Hc(NV
によって算出することができる。
With this setting, the receiver u4 has the given node correspondence value: NV 19 and the node additional variables of the nodes on the path from the node 19 to the route: salt 19 , salt 9 , salt 4 , salt 2. Can be used to determine the values of all nodes on the path from the node 19 to the root, that is, the node corresponding value NV. Further, the node key NK l of each node is calculated from the node corresponding value NV l as described above, that is,
NK l = Hc (NV l )
Can be calculated.

図14に示す受信機割り当て構成において、葉であるノード19に割り当てられた受信機u4には、ノード19のノード対応値NV19と、ノード19からルートへのパス上のノードのノード付加変数であるsalt19,salt,salt,saltが与えられる。受信機u4における上位ノード(ノード番号=1,2,4,9)のノード対応値NVの算出と、ノードキーNKの算出は、以下の処理手順で実行されることになる。 In the receiver assignment configuration shown in FIG. 14, the receiver u4 assigned to the node 19 which is a leaf has a node corresponding value NV 19 of the node 19 and a node additional variable of the node on the path from the node 19 to the route. Some salt 19 , salt 9 , salt 4 , salt 2 are given. The calculation of the node correspondence value NV of the higher order node (node number = 1, 2, 4, 9) and the calculation of the node key NK in the receiver u4 are executed according to the following processing procedure.

(a1)ノード19のノード対応値NV19から上位ノード9のノード対応値NVの算出、
NV=((NV19 XOR H(19||salt19))modM
(a2)ノード9のノード対応値NVから上位ノード4のノード対応値NVの算出、
NV=((NV XOR H(9||salt))modM
(a3)ノード4のノード対応値NVから上位ノード2のノード対応値NVの算出、
NV=((NV XOR H(4||salt))modM
(a4)ノード2のノード対応値NVから上位ノード1のノード対応値NVの算出、
NV=((NV XOR H(2||salt))modM
上記式に基づく演算により、下位ノードのノード対応値から上位ノードのノード対応値を算出する。
(A1) calculating from the node associated value NV 19 of the node 19 of the node associated value NV 9 of the upper node 9,
NV 9 = ((NV 19 ) 2 XOR H (19 || salt 19 )) mod M
(A2) calculating the node associated value NV 4 upper node 4 from the node associated value NV 9 node 9,
NV 4 = ((NV 9 ) 2 XOR H (9 || salt 9 )) mod M
(A3) calculating from the node associated value NV 4 nodes 4 nodes of the parent node 2 corresponding value NV 2,
NV 2 = ((NV 4 ) 2 XOR H (4 || salt 4 )) mod M
(A4) calculating from the node associated value NV second node 2 of the node associated value NV 1 of the upper node 1,
NV 1 = ((NV 2 ) 2 XOR H (2 || salt 2 )) mod M
By the calculation based on the above formula, the node correspondence value of the upper node is calculated from the node correspondence value of the lower node.

さらに、各ノードのノード対応値からノードキーが以下の式によって算出できる。
(b1)ノード19のノード対応値NV19からノード19のノードキーNK19を算出、
NK19=Hc(NV19
(b2)ノード9のノード対応値NVからノード9のノードキーNKを算出、
NK=Hc(NV
(b3)ノード4のノード対応値NVからノード4のノードキーNKを算出、
NK=Hc(NV
(b4)ノード2のノード対応値NVからノード2のノードキーNKを算出、
NK=Hc(NV
(b5)ノード1のノード対応値NVからノード1のノードキーNKを算出、
NK=Hc(NV
Further, the node key can be calculated from the node correspondence value of each node by the following formula.
(B1) The node key NK 19 of the node 19 is calculated from the node corresponding value NV 19 of the node 19;
NK 19 = Hc (NV 19 )
(B2) The node key NK 9 of the node 9 is calculated from the node corresponding value NV 9 of the node 9;
NK 9 = Hc (NV 9 )
(B3) calculating the node key NK 4 nodes 4 from the node associated value NV 4 of node 4,
NK 4 = Hc (NV 4 )
(B4) The node key NK 2 of the node 2 is calculated from the node corresponding value NV 2 of the node 2;
NK 2 = Hc (NV 2 )
(B5) The node key NK 1 of the node 1 is calculated from the node corresponding value NV 1 of the node 1;
NK 1 = Hc (NV 1 )

ところで、受信機u4は、ノード対応値NV19は秘密に保管しておく必要があるが、各ノード付加変数saltは秘密にしておく必要はない。このため,全受信機がすべてのsaltを保持しておくような構成としてもよい. By the way, the receiver u4 needs to keep the node correspondence value NV 19 secret, but it is not necessary to keep each node additional variable salt secret. For this reason, it is good also as a structure where all the receivers hold | maintain all the salt l .

ここで、各ノード付加変数saltのサイズを考える。ある数が法Mの下で平方剰余になる確率は約1/4であるため、saltとして4つの値を試すと、tmpが平方剰余となるようなものが平均1つはあると期待されるので、ノード付加変数saltを表すのに必要なサイズは2ビットであると期待される。 Here, the size of each node additional variable salt is considered. Since the probability that a number will be a quadratic residue under the modulus M is about ¼, if four values of salt l are tried, it is expected that there will be an average of one in which tmp l is a quadratic residue Therefore, the size required to represent the node additional variable salt l is expected to be 2 bits.

一方、4つの値のいずれも平方剰余にならない場合もある。たとえばノード付加変数saltとしてL個の値を試したとき、tmpがいずれも平方剰余でない(平方非剰余である)確率は3/4であるため、L=4の場合には、3/4≒42.2%の確率でいずれのtmpも平方剰余にならない。しかし、ノード付加変数saltとして8ビットの値を考え、256個の数を試したとすれば、いずれのtmpも平方剰余にならない確率は3256/4256≒1.0×10−32と非常に小さくなり、たとえ葉(リーフ)の数Nとして、230≒10や、240≒1012などの大きな数を考えたとしても、いずれかのノードにおいてtmpが平方剰余になるようなノード付加変数saltが見つからない確率は無視できるほど小さいものとなる。 On the other hand, none of the four values may be a quadratic residue. For example, when L values are tried as the node addition variable salt l , the probability that none of tmp l is a quadratic residue (a square non-residue) is 3 L / 4 L. Therefore, when L = 4, 3 4/4 4 ≒ 42.2% of any in the probability tmp l do not even quadratic residue. However, consider the 8-bit value as a node attached variable salt l, if tried 256 number, the probability that any tmp l also not a quadratic residue and 3 256/4 256 ≒ 1.0 × 10 -32 Even if a large number such as 2 30 ≈10 9 or 2 40 ≈10 12 is considered as the number N of leaves, the tmp l becomes a square remainder at any node. The probability that a new node addition variable salt l is not found is small enough to be ignored.

(4.2)Rabin Treeを適用した暗号化データの共有処理
次に、上述した処理によって2分木の各ノードlに対応するノード対応値NVを設定した木構造であるRabin Treeを用いて、データを共有する処理について説明する。ここでは、暗号化データの送信エンティティとしての管理センタ(TC)(送信機)と、暗号化データの受信エンティティであるユーザ(受信機)とがデータファイルを共有する方法を説明する。データファイルの共有シーケンスは、次の3つの処理フェーズに区分される。
(1)セットアップ
(2)ファイル生成・配付
(3)ファイル利用
以下、これらの3つのフェーズにおける具体的な処理について、順次、説明する。
(4.2) Shared processing of encrypted data using Rabin Tree Next, using Rabin Tree, which is a tree structure in which the node corresponding value NV 1 corresponding to each node 1 of the binary tree is set by the above-described processing. A process for sharing data will be described. Here, a method of sharing a data file between a management center (TC) (transmitter) as a transmission entity of encrypted data and a user (receiver) as a reception entity of encrypted data will be described. The data file sharing sequence is divided into the following three processing phases.
(1) Setup (2) File generation / distribution (3) File usage Hereinafter, specific processes in these three phases will be described in order.

(4.2.1)セットアップ
セットアップ処理は、システムの立ち上げ時に1度だけ行う。これ以降の情報配信および受信と復号の処理は、送信すべき情報が生じるたびに行なわれる。例えば、新しいコンテンツを格納したDVDなどの情報記録媒体が配布される場合、あるいはネットワークを介して新しい情報が配信される場合など毎に実行される。なお、セットアップ処理は、実際に暗号文配信を実行するエンティティとは独立した管理センタ(TC)によって実行してもよいし、また、暗号文配信を実行するエンティティが実行してもよい。ここでは一例として、セットアップ処理を管理センタ(TC)が実行する例として説明する。
(4.2.1) Setup Setup process is performed only once at system startup. Subsequent information distribution and reception and decoding processes are performed each time information to be transmitted is generated. For example, it is executed whenever an information recording medium such as a DVD storing new content is distributed or when new information is distributed via a network. Note that the setup process may be executed by a management center (TC) independent of the entity that actually executes the ciphertext distribution, or may be executed by the entity that executes the ciphertext distribution. Here, as an example, the setup process will be described as an example in which the management center (TC) executes.

a.ステップ1
管理センタ(TC)は、2分木でありN個の葉を持つ木を定義する。木中の各ノードについてk(k=1,2,...,2N−1)と、ノード対応の番号を設定する。ただし2分木における最上位ノードであるルートを1とし、以降を幅優先(breadth first order)で番号設定を行う。すなわち、図14に示す1〜31のようなノード対応番号の設定を行なう。この処理により2分木中の各ノードに1〜2N−1のノード番号が設定される。さらに、受信機um(m=1,2,...,N)を木の各葉(リーフ)に割り当てる。
a. Step 1
The management center (TC) defines a tree that is a binary tree and has N leaves. For each node in the tree, k (k = 1, 2,..., 2N−1) and a node-corresponding number are set. However, the root, which is the highest node in the binary tree, is set to 1, and the subsequent numbers are set with breadth priority (breadth first order). That is, node corresponding numbers such as 1 to 31 shown in FIG. 14 are set. By this processing, node numbers 1 to 2N−1 are set to the respective nodes in the binary tree. Further, the receiver um (m = 1, 2,..., N) is assigned to each leaf of the tree.

b.ステップ2
管理センタ(TC)は、
配信データの暗号化に適用するデータ用暗号関数Eと、
暗号鍵の暗号化用に適用する鍵用暗号関数Eと、
を定めて公開する。
なお、データ用暗号関数Eと鍵用暗号関数Eとは同じ関数を適用してもよい。
b. Step 2
The management center (TC)
A data encryption function E D applied to encryption of the distribution data;
And the key encryption function E K to be applied for encryption of the encryption key,
Determine and publish.
The same function may be applied to the data encryption function E D and the key encryption function E K.

さらに、管理センタ(TC)は、
法Mのサイズ|M|を定め、任意サイズの値をサイズ|M|のランダムな値にマッピングするマッピング関数Hを定める。マッピング関数Hは公開する。また、サイズ|M|の値をサイズCのランダムな値にマッピングする関数Hcを定め、公開する。なお、ここでCは、暗号関数Eの鍵のサイズである。
次に、木構造の葉(リーフ)数N、法Mのサイズ|M|、マッピング関数Hを入力として用い、図12のフローを参照して説明したアルゴリズムに従って、N個の葉を持つ2分木のRabin Treeを作成する。すなわち、ノード1からノード2N−1に対応するノード対応値、NV,NV,・・・,NV2N−1と、ノード2からノード2N−1に対応する2N−2個の数(ノード付加変数):salt,salt,・・・,salt2N−1を定める。
管理センタ(TC)は、ステップ1で作成したノードlに対応する鍵、すなわち、木のノードl(エル)のノードキーNKをノード対応値NVからの算出値、すなわち、
NK=Hc(NV
として設定する。
Furthermore, the management center (TC)
A size | M | of the modulus M is determined, and a mapping function H that maps an arbitrary size value to a random value of the size | M | is determined. The mapping function H is disclosed. Further, a function Hc for mapping the value of the size | M | to the random value of the size C is defined and disclosed. Here, C is the size of a key of the encryption function E K.
Next, using a tree-structured leaf number N, modulus M size | M |, and mapping function H as inputs, a binary with N leaves according to the algorithm described with reference to the flow of FIG. Create a tree Rabin Tree. That is, node correspondence values corresponding to node 1 to node 2N-1, NV 1 , NV 2 ,..., NV 2N-1, and 2N−2 numbers corresponding to node 2 to node 2N-1 (node Additional variables): salt 2 , salt 3 ,..., Salt 2N−1 are determined.
The management center (TC) calculates the key corresponding to the node 1 created in step 1, that is, the node key NK l of the node l (L) of the tree from the node corresponding value NV l , that is,
NK l = Hc (NV l )
Set as.

c.ステップ3
管理センタ(TC)は、木の末端ノードとしての葉(リーフ)に対応して設定される受信機um(m=1,2,...,N)に対し、以下のルールに基づいてノードキーを与える。受信機は図14に示すように木の葉(リーフ)、すなわちノード番号16〜31に割り当てられている。図14に示す例では、受信機は、ノード番号16〜31に割り当てられたu1〜u16の16個設定される。
c. Step 3
For the receiver um (m = 1, 2,..., N) set corresponding to the leaf (leaf) as the end node of the tree, the management center (TC) uses the node key based on the following rules: give. As shown in FIG. 14, the receiver is assigned to the leaves of the tree, that is, the node numbers 16 to 31. In the example illustrated in FIG. 14, 16 receivers u1 to u16 assigned to node numbers 16 to 31 are set.

なお、受信機umが割り当てられた葉からルートへのパスをパスm[path−m]と表す。また、パスm[path−m]上のノードの集合をパスノードm[PathNodes−m]と表す。   Note that the path from the leaf to the root to which the receiver um is assigned is represented as a path m [path-m]. A set of nodes on the path m [path-m] is represented as a path node m [PathNodes-m].

図14の例では、
PathNodes−1={1,2,4,8,16}
PathNodes−4={1,2,4,9,19}
PathNodes−11={1,3,6,13,26}
となる。
In the example of FIG.
PathNodes-1 = {1, 2, 4, 8, 16}
PathNodes-4 = {1, 2, 4, 9, 19}
PathNodes-11 = {1, 3, 6, 13, 26}
It becomes.

図14に示すノード1,2,4,8,16を結ぶラインが、受信機u1のパス1[path−1]であり、PathNodes−1={1,2,4,8,16}によって構成される。受信機u4のパス4[path−4]は、図14に示すノード1,2,4,9,19を結ぶラインであり、PathNodes−4={1,2,4,9,19}によって構成される。   The line connecting the nodes 1, 2, 4, 8, and 16 shown in FIG. 14 is the path 1 [path-1] of the receiver u1, and is configured by PathNodes-1 = {1, 2, 4, 8, 16}. Is done. The path 4 [path-4] of the receiver u4 is a line connecting the nodes 1, 2, 4, 9, 19 shown in FIG. 14, and is configured by PathNodes-4 = {1, 2, 4, 9, 19}. Is done.

管理センタ(TC)は、各受信機umに対し、
(a)受信機umの割り当てられた葉ノード(リーフ)のノード対応値NV
(b)受信機umのパス上のルートを除くパスノード対応のsalt値
を付与する。
The management center (TC) for each receiver um
(A) Node correspondence value NV l of the leaf node (leaf) to which the receiver um is assigned
(B) A salt value corresponding to the path node excluding the route on the path of the receiver um is assigned.

図14に示す構成において、葉であるノード19に割り当てられた受信機u4には、ノード19のノード対応値NV19と、ノード19からルートへのパス上のノードのノード付加変数であるsalt19,salt,salt,saltを与える。 In the configuration shown in FIG. 14, the receiver u4 assigned to the node 19 which is a leaf has a node corresponding value NV 19 of the node 19 and a salt additional variable 19 of the node on the path from the node 19 to the route. , Salt 9 , salt 4 , salt 2 are given.

すなわち、受信機uiには、leafの葉(ノード)に対応するノード対応値NVN−1+iと、leafからルートへ至るパス上のノードのlogN個のノード付加変数saltを与える。 That is, the receiver ui is given a node corresponding value NV N-1 + i corresponding to leaf i (node) and log N node additional variables salt l of nodes on the path from leaf i to the root.

受信機は、ノード対応値を漏洩がないように、秘密に保管する。なお、ノード付加変数saltは公開値としてよい値であり、秘密に保持することは必要ではない。   The receiver keeps the node correspondence value secret so as not to leak. Note that the node addition variable salt is a value that may be a public value and does not need to be kept secret.

上述したセットアップ処理のフローを図15に示す。図15のフローの各ステップについて説明する。   FIG. 15 shows the flow of the setup process described above. Each step in the flow of FIG. 15 will be described.

まず、ステップS501において、管理センタ(TC)は、N個の葉を持つ2分木を定義する。2分木における最上位ノードであるルートを1とし、以降を幅優先(breadth first order)で番号設定を行う。すなわち、図13、10に示すようなノード対応番号1〜31の設定を行なう。さらに、受信機um(m=1,2,...,N)を木の各葉(リーフ)に割り当てる。   First, in step S501, the management center (TC) defines a binary tree having N leaves. The root, which is the highest node in the binary tree, is set to 1, and the subsequent numbers are set with breadth priority (breadth first order). That is, node correspondence numbers 1 to 31 as shown in FIGS. Further, the receiver um (m = 1, 2,..., N) is assigned to each leaf of the tree.

次にステップS502において、管理センタ(TC)は、
配信データの暗号化に適用するデータ用暗号関数Eと、
暗号鍵の暗号化用に適用する鍵用暗号関数Eと、
を定めて公開する。
さらに、管理センタ(TC)は、
法Mのサイズ|M|を定め、任意サイズの値をサイズ|M|のランダムな値にマッピングするマッピング関数Hを定める。マッピング関数Hは公開する。また、サイズ|M|の値をサイズCのランダムな値にマッピングする関数Hcを定め、公開する。さらに、木構造の葉(リーフ)数N、法Mのサイズ|M|、マッピング関数Hを入力として用い、図12のフローを参照して説明したアルゴリズムに従って、N個の葉を持つ2分木のRabin Treeを作成する。すなわち、ノード1からノード2N−1に対応するノード対応値、NV,NV,・・・,NV2N−1と、ノード2からノード2N−1に対応する2N−2個の数(ノード付加変数):salt,salt,・・・,salt2N−1を定める。さらに、管理センタ(TC)は、ステップ1で作成したノードlに対応する鍵、すなわち、木のノードl(エル)のノードキーNKをノード対応値NVからの算出値、すなわち、
NK=Hc(NV
として設定する。
In step S502, the management center (TC)
A data encryption function E D applied to encryption of the distribution data;
And the key encryption function E K to be applied for encryption of the encryption key,
Determine and publish.
Furthermore, the management center (TC)
A size | M | of the modulus M is determined, and a mapping function H that maps an arbitrary size value to a random value of the size | M | is determined. The mapping function H is disclosed. Further, a function Hc for mapping the value of the size | M | to the random value of the size C is defined and disclosed. Further, a binary tree having N leaves according to the algorithm described with reference to the flow of FIG. 12 using the number N of leaves (leaf), the size | M | of the modulus M, and the mapping function H as inputs. Create a Rabin Tree. That is, node correspondence values corresponding to node 1 to node 2N-1, NV 1 , NV 2 ,..., NV 2N-1, and 2N−2 numbers corresponding to node 2 to node 2N-1 (node Additional variables): salt 2 , salt 3 ,..., Salt 2N−1 are determined. Further, the management center (TC) calculates the key corresponding to the node 1 created in step 1, that is, the node key NK l of the node l (L) of the tree from the node corresponding value NV l , that is,
NK l = Hc (NV l )
Set as.

次に、ステップS503において、管理センタ(TC)は、木の末端ノードとしての葉(リーフ)に対応して設定される受信機um(m=1,2,...,N)に対し、前述したデータ、すなわち、
(a)受信機umの割り当てられた葉ノード(リーフ)のノード対応値NV
(b)受信機umのパス上のルートを除くパスノード対応のsalt値
を付与する。
Next, in step S503, the management center (TC) receives the receiver um (m = 1, 2,..., N) set corresponding to the leaf (leaf) as the end node of the tree. The data mentioned above, ie
(A) Node correspondence value NV l of the leaf node (leaf) to which the receiver um is assigned
(B) A salt value corresponding to the path node excluding the route on the path of the receiver um is assigned.

なお、上述の
(b)受信機umのパス上のルートを除くパスノード対応のsalt値
についての受信機に対する配付は、このセットアップ処理時ではなく、次のファイル生成、配付処理において実行してもよい。
Note that the distribution to the receiver regarding the salt value corresponding to the path node excluding the route on the path of the receiver um described above may be executed in the next file generation and distribution process, not at the time of this setup process. .

(4.2.2.ファイル生成・配布)
次に、暗号化データの送信エンティティとしての管理センタ(TC)(送信機)と、暗号化データの受信エンティティであるユーザ(受信機)とがデータファイルを共有するために実行するファイル生成および配布処理の詳細について説明する。この処理は、暗号化データの送信エンティティとしての管理センタ(TC)が実行する。
(4.2.2. File generation / distribution)
Next, file generation and distribution executed for sharing a data file between a management center (TC) (transmitter) as a transmission entity of encrypted data and a user (receiver) as a reception entity of encrypted data. Details of the processing will be described. This process is executed by a management center (TC) as a transmission entity of encrypted data.

まず、管理センタ(TC)は、情報(データ)共有するユーザ(受信機)の集合S⊆Nを定義する。
管理センタ(TC)は、CビットのランダムなデータキーDKを生成し、これを用いて、ユーザui∈Sと共有したい情報(データ)を暗号化する。例えばあるコンテンツデータを共有する場合、コンテンツは、データキーDKによって暗号化されて提供される。
First, the management center (TC) defines a set S⊆N of users (receivers) that share information (data).
The management center (TC) generates a random data key DK of C D bits, and used to encrypt the information (data) to be shared with users Ui∈S. For example, when certain content data is shared, the content is provided after being encrypted by the data key DK.

なお、本実施例では、ユーザおよびユーザが所有する受信機を共にuiと表す。ここで、Cは、前述したデータ用の暗号関数Eの鍵サイズである。本実施例では、管理センタ(TC)は、暗号化したデータをファイルに格納するものとする。 In this embodiment, the user and the receiver owned by the user are both represented as ui. Here, C D is the key size of the encryption function E D for data described above. In this embodiment, the management center (TC) stores encrypted data in a file.

次に、情報(データ)を共有するユーザ(受信機)の集合S⊆Nに含まれない排他対象のユーザをujとする。ujは、uj∈S\Nである。この排他対象のユーザujをリボークするものと仮定して、適用ノードキーを決定する。なお、ここでは、ノードキーは、上述のデータキーDK、すなわち、共有情報(例えばコンテンツ)の暗号化に適用する鍵であるデータキーDKの暗号化鍵として適用する。   Next, a user to be excluded that is not included in the set S⊆N of users (receivers) sharing information (data) is set as uj. uj is ujεS \ N. Assuming that the user uj to be excluded is revoked, the application node key is determined. Here, the node key is applied as the encryption key of the above-described data key DK, that is, the data key DK that is a key applied to encryption of shared information (for example, content).

たとえば、図16に示すように、u1からu16の16台の受信機(16人のユーザ)から、u1,u11,u12の3台の受信機(3人のユーザ)を除いた13人のユーザが、情報(データ)を共有するユーザ(受信機)の集合Sを構成するのであれば、5,7,9,12,16のノードに対応する5つのノードキー(NK,NK,NK,NK12,NK16
をデータキーDKの暗号化鍵として適用する。
For example, as shown in FIG. 16, 13 users excluding 3 receivers (3 users) u1, u11, u12 from 16 receivers (16 users) u1 to u16 However, if a set S of users (receivers) sharing information (data) is configured, five node keys (NK 5 , NK 7 , NK 9) corresponding to the nodes 5 , 7 , 9 , 12, 16 , NK 12 , NK 16 )
Is applied as the encryption key of the data key DK.

そして、暗号化データとして、データキーDKで暗号化したコンテンツ等のデータ(Data)、すなわち、
(a)暗号化データ:E(DK,Data)、
を格納したファイルに、
(b)情報(データ)を共有するユーザ(受信機)の集合Sを指定する情報(本例では、ユーザ(受信機)番号=u1,u3−u10,u13−u16)
(c)選択ノードキー(NK,NK,NK,NK12,NK16)でデータキーDKを暗号化した暗号文、すなわち、図16に示す例では、
(NK,DK)、E(NK,DK)、E(NK,DK)、E(NK12,DK)、E(NK16,DK)
(d)選択したノードキーに対応するノードの子孫ノードのノード付加変数(salt)。すなわち、図16に示す例では、(salt10,salt11,salt14,salt15,salt18,salt19,salt20,salt21,salt22,salt23,salt24,salt25,salt28,salt29,salt30,salt31
を追加して格納する。なお、これらの情報は、ファイルのヘッダに格納してもよい。なお、Ea(X,Y)は、暗号関数Eaを適用してデータYを鍵Xを適用して暗号化したデータであることを示す。
And as encrypted data, data (Data) such as contents encrypted with the data key DK, that is,
(A) Encrypted data: E D (DK, Data),
In the file that stores
(B) Information designating a set S of users (receivers) sharing information (data) (in this example, user (receiver) numbers = u1, u3-u10, u13-u16)
(C) In the ciphertext obtained by encrypting the data key DK with the selected node key (NK 5 , NK 7 , NK 9 , NK 12 , NK 16 ), that is, in the example shown in FIG.
E K (NK 5, DK) , E K (NK 7, DK), E K (NK 9, DK), E K (NK 12, DK), E K (NK 16, DK)
(D) A node addition variable (salt) of a descendant node of the node corresponding to the selected node key. That is, in the example shown in FIG. 16, (salt 10 , salt 11 , salt 14 , salt 15 , salt 18 , salt 19 , salt 20 , salt 21 , salt 22 , salt 23 , salt 24 , salt 28 , salt 25 , salt 25 , salt 25 , salt 25 , salt 25 , salt 25 , salt 25 , salt 25 29 , salt 30 , salt 31 )
Add and store. Such information may be stored in the header of the file. Ea (X, Y) indicates that the data Y is encrypted by applying the key X and applying the encryption function Ea.

また、情報(データ)を共有するユーザ(受信機)の集合Sを指定する情報は、上述のユーザ(受信機)番号=u1,u3−u10,u13−u16ではなく、暗号化に使用したノードキー(NK,NK,NK,NK12,NK16)を指定する情報で置き換えてもよい。この場合、上記例においては、5,7,9,12,16とノードキーの番号を列挙してもよいし、あるいは、表現木を適用した方法などが適用可能である。 Further, the information specifying the set S of users (receivers) sharing the information (data) is not the above-mentioned user (receiver) number = u1, u3-u10, u13-u16, but the node key used for encryption. Information specifying (NK 5 , NK 7 , NK 9 , NK 12 , NK 16 ) may be replaced. In this case, in the above example, 5, 7, 9, 12, 16 and node key numbers may be listed, or a method using an expression tree is applicable.

また、データキーDKを各ノードキーで暗号化した暗号文は、ノードキーの対応するノード番号の若い順に格納する。すなわち、上述の例では、
(NK,DK)、E(NK,DK)、E(NK,DK)、E(NK12,DK)、E(NK16,DK)
の順に格納する。
同様に、ノード付加変数(salt)は、対応するノード番号の若い順に格納する。
The ciphertext obtained by encrypting the data key DK with each node key is stored in ascending order of the node number corresponding to the node key. That is, in the above example,
E K (NK 5, DK) , E K (NK 7, DK), E K (NK 9, DK), E K (NK 12, DK), E K (NK 16, DK)
Store in order.
Similarly, node addition variables (salt) are stored in ascending order of corresponding node numbers.

この構成を用いることにより、上述の例では、16人のユーザ(図16のu1〜u16)の中で13人のユーザ(u1,u3〜u10,u13〜u16)と暗号化ファイルを共有しようとする場合に、
5個の暗号文、すなわち、
(NK,DK)、E(NK,DK)、E(NK,DK)、E(NK12,DK)、E(NK16,DK)と、
16個のノード付加変数(salt)、すなわち、
(salt10,salt11,salt14,salt15,salt18,salt19,salt20,salt21,salt22,salt23,salt24,salt25,salt28,salt29,salt30,salt31
を、共有するデータの暗号化データ:E(DK,Data)を格納したファイルに格納すればよい。
By using this configuration, in the above example, an attempt is made to share an encrypted file with 13 users (u1, u3 to u10, u13 to u16) among 16 users (u1 to u16 in FIG. 16). If you want to
5 ciphertexts, ie
E K (NK 5, DK) , E K (NK 7, DK), E K (NK 9, DK), E K (NK 12, DK), and E K (NK 16, DK) ,
16 node additional variables (salt), ie
(Salt 10, salt 11, salt 14, salt 15, salt 18, salt 19, salt 20, salt 21, salt 22, salt 23, salt 24, salt 25, salt 28, salt 29, salt 30, salt 31)
May be stored in a file in which encrypted data of shared data: E D (DK, Data) is stored.

ここで、1つの暗号文のサイズ16バイト、1つのノード付加変数(salt)のサイズを1バイトとすると、5個の暗号文、
(NK,DK)、E(NK,DK)、E(NK,DK)、E(NK12,DK)、E(NK16,DK)と、
16個のノード付加変数(salt)、
(salt10,salt11,salt14,salt15,salt18,salt19,salt20,salt21,salt22,salt23,salt24,salt25,salt28,salt29,salt30,salt31
これら、全体のデータサイズは、96バイトとなる。
Here, if the size of one ciphertext is 16 bytes and the size of one node additional variable (salt) is 1 byte, five ciphertexts,
E K (NK 5, DK) , E K (NK 7, DK), E K (NK 9, DK), E K (NK 12, DK), and E K (NK 16, DK) ,
16 node additional variables (salt),
(Salt 10, salt 11, salt 14, salt 15, salt 18, salt 19, salt 20, salt 21, salt 22, salt 23, salt 24, salt 25, salt 28, salt 29, salt 30, salt 31)
The overall data size is 96 bytes.

一方、13人の個別鍵を適用してそれぞれの暗号化データを生成すると、13個の暗号化データを生成して配布することが必要であるが、1つの暗号文のサイズ16バイトとした場合、
13×16=208バイト
のサイズが必要となり、上述の例で必要とするデータサイズ96バイトに比較して大きなサイズが必要となる。
On the other hand, when the encrypted data is generated by applying the individual keys of 13 persons, it is necessary to generate and distribute the 13 encrypted data, but when the size of one ciphertext is 16 bytes ,
A size of 13 × 16 = 208 bytes is required, which is larger than the data size of 96 bytes required in the above example.

このように、本実施例では、5個の暗号文と16個のノード付加変数のみで、13の異なるユーザにおいて共有することを可能とした暗号化データファイルを生成することができ、本実施例の構成では、メッセージサイズ(通信量)を減らし,効率的なファイル共有が可能となる。   As described above, in this embodiment, it is possible to generate an encrypted data file that can be shared by 13 different users with only 5 ciphertexts and 16 node addition variables. With this configuration, the message size (communication amount) is reduced, and efficient file sharing becomes possible.

図17にファイル生成・配布のフローを示す。処理手順について説明する。管理センタ(TC)は、ステップS601において、まずその情報を共有する受信機(ユーザ)を決定する。すなわち、情報(データ)を共有するユーザ(受信機)の集合Sを決定する。   FIG. 17 shows a flow of file generation / distribution. A processing procedure will be described. In step S601, the management center (TC) first determines a receiver (user) that shares the information. That is, a set S of users (receivers) sharing information (data) is determined.

次に、ステップS602において、暗号化データの生成、すなわちデータキーDKを適用して、共有すべきデータ(Data)を暗号化し、暗号化データ:E(DK,Data)を生成する。 Next, in step S602, the generation of encrypted data, that is, the data key DK is applied to encrypt the data (Data) to be shared to generate encrypted data: E D (DK, Data).

次に、ステップS603において、暗号文の生成に適用するノードキー、すなわちデータキーDKをノードキーで暗号化した暗号文セットの生成に適用するノードキーを選択する。情報(データ)を共有するユーザ(受信機)の集合S⊆Nに含まれない排他対象のユーザをuj(uj∈S\N)として、この排他対象のユーザujをリボークするものと仮定して、適用ノードキーを決定する。ノードキーは、共有情報(例えばコンテンツ)の暗号化に適用する鍵であるデータキーDKの暗号化鍵として適用する。   Next, in step S603, a node key to be applied to generation of ciphertext, that is, a node key to be applied to generation of a ciphertext set obtained by encrypting the data key DK with the node key is selected. Assuming that an exclusion target user not included in the set S⊆N of users (receivers) sharing information (data) is uj (ujεS \ N), the exclusion target user uj is revoked. Determine the applicable node key. The node key is applied as an encryption key of a data key DK that is a key applied to encryption of shared information (for example, content).

次に、ステップS604において、暗号文を受信する受信機において、復号可能な暗号文を選択するための索引データとしての使用ノードキー指定情報またはユーザ指定情報を生成する。これは、どのノードキーを選択したかを表すタグ情報や表現コードなどである。   Next, in step S604, use node key designation information or user designation information as index data for selecting a ciphertext that can be decrypted is generated in a receiver that receives the ciphertext. This is tag information or an expression code indicating which node key has been selected.

ステップS605において、暗号化データとして、データキーDKで暗号化したコンテンツ等のデータ(Data)、すなわち、
(a)暗号化データ:E(DK,Data)、
を格納したファイルに、
(b)情報(データ)を共有するユーザ(受信機)の集合Sを指定する情報
(c)選択ノードキーでデータキーDKを暗号化した暗号文、すなわち、
(NK,DK)など、
(d)さらに、選択したノードキーに対応するノードの子孫ノードのノード付加変数(salt)、
これらを格納したファイルを生成して、同報通信路を用いて送信する。あるいは情報記録媒体に格納して配布する。
In step S605, as encrypted data, data (Data) such as content encrypted with the data key DK, that is,
(A) Encrypted data: E D (DK, Data),
In the file that stores
(B) Information specifying a set S of users (receivers) sharing information (data) (c) Ciphertext obtained by encrypting the data key DK with the selected node key, that is,
E K (NK 5 , DK), etc.
(D) Furthermore, a node addition variable (salt) of a descendant node of the node corresponding to the selected node key,
A file storing these is generated and transmitted using a broadcast channel. Alternatively, it is stored in an information recording medium and distributed.

図18に特定の選択機器においてのみ復号可能とした暗号化データ生成処理を実行する情報処理装置の機能構成を説明するブロック図を示す。セットアップ処理手段410は、先に図15のフローを参照して説明した処理を実行して、各ノードに対応するノード対応値(NV)、およびノード付加変数(salt)を設定するとともに、各受信機に所定のノード対応値、ノード付加変数を付与した階層木構成を構築する。   FIG. 18 is a block diagram illustrating a functional configuration of an information processing apparatus that executes encrypted data generation processing that can be decrypted only by a specific selected device. The setup processing means 410 executes the processing described above with reference to the flow of FIG. 15 to set the node corresponding value (NV) and the node additional variable (salt) corresponding to each node, and each reception A hierarchical tree structure is constructed in which predetermined node-corresponding values and node addition variables are assigned to the machine.

データ生成手段420は、暗号化データ生成手段421、データ共有集合情報生成手段422、暗号文セット生成手段423、ノード付加変数(salt)生成(選択)手段424を有する。
暗号化データ生成手段421は、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
データ共有集合情報生成手段422は、
(b)データ共有機器を識別可能とした集合Sの情報、
暗号文セット生成手段423は、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、データ共有機器に基づいて選択された選択ノードキーを適用してデータキーDKを暗号化して生成した暗号文セット、
(d)選択ノードキーに対応するノードの子孫ノードのノード付加変数(salt)、
これらのデータをそれぞれ生成または選択する。データ出力手段430は、データ生成手段420の生成したデータ(a)〜(d)をたとえばブロードキャスト出力する。
The data generation unit 420 includes an encrypted data generation unit 421, a data sharing set information generation unit 422, a ciphertext set generation unit 423, and a node addition variable (salt) generation (selection) unit 424.
The encrypted data generation means 421
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
The data sharing set information generation means 422
(B) Information of the set S that makes it possible to identify the data sharing device,
The ciphertext set generation means 423
(C) a ciphertext set generated by encrypting the data key DK by applying the selected node key selected based on the data sharing device based on the hierarchical tree configuration in the broadcast encryption method;
(D) a node additional variable (salt) of a descendant node of the node corresponding to the selected node key;
Each of these data is generated or selected. The data output unit 430 broadcasts the data (a) to (d) generated by the data generation unit 420, for example.

なお、ここで利用する階層木は、下位ノードのノード対応値に基づくRabin暗号を適用した暗号化処理(順方向演算)によって上位ノードのノード対応値が算出可能であり、上位ノードのノード対応値に基づくRabin暗号を適用した復号処理(逆方向演算)によって下位ノードのノード対応値が算出可能な設定を有する一方向木である。   Note that the hierarchical tree used here can calculate the node-corresponding value of the upper node by the encryption process (forward calculation) applying the Rabin cipher based on the node-corresponding value of the lower node, and the node-corresponding value of the upper node. Is a one-way tree having a setting in which the node correspondence value of the lower node can be calculated by the decryption process (reverse operation) to which the Rabin cipher based on the above is applied.

また、データ生成手段420の暗号化データ生成手段421の生成する暗号化データは、共有対象のデータ(Data)を、データキーDKを適用して暗号関数Eによって暗号化した暗号化データE(DK,Data)であり、暗号文セット生成手段423の生成する暗号文セットは、データキーDKを、選択ノードキー(NKn)を適用して暗号関数Eによって暗号化した暗号化データE(NKn,DK)である。階層木構成において、データ共有機器からルートに至るノードに設定されたノードキーを選択ノードキーとして適用してデータキーDKを暗号化して暗号文セットの生成処理を行なう。 Further, the encrypted data generated encrypted data generation unit 421 of the data generation means 420, data to be shared with (Data), the encrypted data E D encrypted by the encryption function E D by applying the data key DK (DK, Data), and the ciphertext set generated by the ciphertext set generation means 423 is the encrypted data E K (encrypted with the encryption function E K by applying the selected node key (NKn) to the data key DK). NKn, DK). In the hierarchical tree configuration, the node key set for the node from the data sharing device to the root is applied as the selected node key, and the data key DK is encrypted to generate a ciphertext set.

また、データ生成手段420は、さらに、法Mのサイズ|M|を定め、任意サイズの値をサイズ|M|のランダムな値にマッピングするマッピング関数H、および、サイズ|M|の値をサイズCのランダムな値にマッピングするマッピング関数Hc、これらのマッピング関数を決定する処理も実行する。   Further, the data generation means 420 further determines a size | M | of the modulus M, a mapping function H that maps a value of an arbitrary size to a random value of the size | M |, and a value of the size | M | A mapping function Hc for mapping to a random value of C and a process for determining these mapping functions are also executed.

(4.2.2.ファイル利用)
次に、情報を受信したユーザ側の受信機におけるファイルの利用処理について説明する。上述のファイル、すなわち、
(a)暗号化データ:E(DK,Data)、
(b)情報(データ)を共有するユーザ(受信機)の集合Sを指定する情報
(c)選択ノードキーでデータキーDKを暗号化した暗号文、
(d)さらに、選択したノードキーに対応するノードの子孫ノードのノード付加変数(salt)、
これらのデータを含むファイルは、同報配信により受信機に提供される。あるいは情報記録媒体に格納されて受信機に提供される。このファイルは、すべての受信機が受領可能であるが、情報(データ)を共有するユーザ(受信機)の集合S以外の受信機、すなわち、情報(データ)を共有するユーザ(受信機)の集合S⊆Nに含まれない排他対象のユーザをuj(uj∈S\N)は、選択ノードキーでデータキーDKを暗号化した暗号文の復号に適用するノードキーを得ることができないのでデータキーDKを得ることができない。
(4.2.2. File usage)
Next, file use processing in the receiver on the user side that has received the information will be described. The above file, ie
(A) Encrypted data: E D (DK, Data),
(B) Information specifying a set S of users (receivers) sharing information (data) (c) Ciphertext obtained by encrypting the data key DK with the selected node key,
(D) Furthermore, a node addition variable (salt) of a descendant node of the node corresponding to the selected node key,
A file containing these data is provided to the receiver by broadcast distribution. Alternatively, it is stored in an information recording medium and provided to the receiver. This file can be received by all receivers, but the receivers other than the set S of users (receivers) sharing information (data), that is, users (receivers) sharing information (data). Since the user to be excluded that is not included in the set S⊆N cannot obtain the node key that is applied to decrypt the ciphertext obtained by encrypting the data key DK with the selected node key, the data key DK Can't get.

送信されたファイルを受信したら、まず、ユーザ(受信機)uiは、自身が集合Sに含まれることを確認する。管理センタ(TC)が配布したファイルにおいて、集合Sが直接指定されていれば、ui∈Sを直接確かめればよいし、ノードキーを指定する情報が格納されていれば、自身が割り当てられた葉もしくはその先祖のノードがそこに含まれることを確認すればよい。自身が、集合Sに含まれていなければ、処理をそこで終了する。   When the transmitted file is received, first, the user (receiver) ui confirms that it is included in the set S. If the set S is directly specified in the file distributed by the management center (TC), it is sufficient to directly check uiεS, and if the information specifying the node key is stored, the leaf to which it is assigned is stored. Or just confirm that its ancestor node is included. If it is not included in the set S, the process ends there.

情報(データ)を共有するユーザ(受信機)の集合Sに含まれることを確認した受信機は、受領した暗号文(選択ノードキーでデータキーDKを暗号化した暗号文)のセットから自己が復号できる暗号文と、使用すべきノードキーを特定する。   The receiver that has confirmed that it is included in the set S of users (receivers) that share information (data) decrypts itself from the set of received ciphertext (the ciphertext obtained by encrypting the data key DK with the selected node key). Identify the ciphertext that can be used and the node key to be used.

受領した暗号文のセットに含まれる暗号文の暗号化に用いられているノードキーの中には、自身が直接保持しているノード対応値NVと、保持またはファイルから取得できるsaltから導出できるノードキーが含まれる。情報(データ)を共有するユーザ(受信機)の集合Sに含まれる受信機は、ノード対応値NVと、saltから、暗号化に適用されたノードキーNKに対応するノード対応値NVを導出し、ノード対応値NVからノードキーNKを導出して、導出したノードキーを用いて暗号文を復号すれば秘密情報としてのデータキーDKを得ることができる。受信機が復号すべき暗号文を特定するためには、前述のノードキー指定情報を用いればよい。 Some node keys used in the encryption of the encrypted text included in the set of received ciphertext may itself be derived from a node associated value NV l held directly, it can be obtained from a holding or file salt node key Is included. Information (data) receiver included in the set S of user (receiver) that share includes a node associated value NV l, the salt, the node associated value NV k corresponding to node key NK k applied to encrypt derived derives the node key NK k from the node associated value NV k, the derived node key can be obtained data key DK as secret information if decrypt the ciphertext using. In order to specify the ciphertext to be decrypted by the receiver, the node key designation information described above may be used.

受信機umは、自身が割り当てられた葉l(エル)のノード対応値NVを保持している。もし、特定した復号すべき暗号文に適用されているノードキーが、自身のリーフ(葉)に対応するノードキーであれば、自身が所有するノード対応値(NV)をハッシュ関数HCに適用することで、ノードキーを下式、
NK=Hc(NV
によって算出することができる。
The receiver um holds the node correspondence value NV l of the leaf l to which the receiver um is assigned. If the node key applied to the specified ciphertext to be decrypted is a node key corresponding to its own leaf, the node corresponding value (NV l ) owned by itself is applied to the hash function HC. And the node key is the following formula,
NK l = Hc (NV l )
Can be calculated.

一方、特定した暗号文に適用されたノードキーが、この葉(リーフ)に対応するノードキーでない場合は、保持またはファイルから取得するノード付加変数saltからlの親ノードのノード対応値、

Figure 2007020025
を、下式、
Figure 2007020025
により求め、さらにこれを繰り返すことにより、自己ノードlからルートまでのパス上の任意のノードkのノード対応値NVを導出する。そして、ノードkのノード対応値NVから、ノードkのノードキーNKを、
NK=Hc(NV
により導出する。導出したノードキーを適用して暗号文を復号する。 On the other hand, if the node key applied to the identified ciphertext is not the node key corresponding to this leaf, the node corresponding value of the parent node from the node additional variable salt 1 to 1 obtained from the holding or file,
Figure 2007020025
With the following formula:
Figure 2007020025
Then, by repeating this, the node correspondence value NV k of an arbitrary node k on the path from the self node 1 to the root is derived. Then, the node key NK k of the node k is obtained from the node corresponding value NV k of the node k.
NK k = Hc (NV k )
Derived by The ciphertext is decrypted by applying the derived node key.

具体的な例について図19を参照して説明する。今、受信機u4(ノード番号=19)が、情報(データ)を共有するユーザ(受信機)の集合Sに含まれる受信機であると仮定し、受信機u4の処理について考察する。暗号化に使われたノードキーには、受信機u4からルートに至るノード{1,2,4,9,19}に含まれるノード番号と一致するものが必ず含まれる。   A specific example will be described with reference to FIG. Now, assuming that the receiver u4 (node number = 19) is a receiver included in a set S of users (receivers) sharing information (data), the processing of the receiver u4 will be considered. The node key used for encryption always includes a node key that matches the node number included in the nodes {1, 2, 4, 9, 19} from the receiver u4 to the root.

秘密情報としてのデータキー[DK]とすると、E(NK,DK),E(NK,DK)、E(NK,DK),E(NK,DK),E(NK19,DK)のいずれかを含む暗号文セットが、ネットワーク配信あるいは記録媒体に格納されて提供される。なお、E(A,B)はデータBを鍵Aで暗号化したデータを意味する。受信機u4は、受信暗号文セットから、この受信機u4からルートに至るパスノード={1,2,4,9,19}に含まれるノード番号と一致するものを検出する。 Assuming that the data key [DK] is secret information, E (NK 1 , DK), E (NK 2 , DK), E (NK 4 , DK), E (NK 9 , DK), E (NK 19 , DK) A ciphertext set including any of the above is provided by being stored on a network distribution or recording medium. E (A, B) means data obtained by encrypting data B with the key A. The receiver u4 detects from the received ciphertext set the one that matches the node number included in the path node = {1, 2, 4, 9, 19} from the receiver u4 to the root.

ノードキーNK,NK,NK,NK,NK19のいずれが、暗号文の暗号化に適用されたノードキーであるかを判別した後、受信機u4は、判別されたノードキーを算出するため、自己の保持するノード対応値NVと、ノード付加変数salt、salt、salt、salt19を適用して、上位ノードのノード対応値を算出して、さらに算出したノード対応値からノードキーを算出する。算出手法は、前述したように、
NV=((NV19 XOR H(19||salt19))modM
NV=((NV XOR H(9||salt))modM
NV=((NV XOR H(4||salt))modM
NV=((NV XOR H(2||salt))modM
上記式に基づく演算により、下位ノードのノード対応値から上位ノードのノード対応値を算出する。
After determining which of the node keys NK 1 , NK 2 , NK 4 , NK 9 , NK 19 is a node key applied to ciphertext encryption, the receiver u4 calculates the determined node key. The node correspondence value NV 4 held by itself and the node additional variables salt 2 , salt 4 , salt 9 , and salt 19 are applied to calculate the node correspondence value of the upper node, and the node key is calculated from the calculated node correspondence value. Is calculated. The calculation method is as described above.
NV 9 = ((NV 19 ) 2 XOR H (19 || salt 19 )) mod M
NV 4 = ((NV 9 ) 2 XOR H (9 || salt 9 )) mod M
NV 2 = ((NV 4 ) 2 XOR H (4 || salt 4 )) mod M
NV 1 = ((NV 2 ) 2 XOR H (2 || salt 2 )) mod M
By the calculation based on the above formula, the node correspondence value of the upper node is calculated from the node correspondence value of the lower node.

さらに、各ノードのノード対応値からノードキーを、
NK19=Hc(NV19
NK=Hc(NV
NK=Hc(NV
NK=Hc(NV
NK=Hc(NV
の各式によって算出する。
Furthermore, the node key from the node corresponding value of each node,
NK 19 = Hc (NV 19 )
NK 9 = Hc (NV 9 )
NK 4 = Hc (NV 4 )
NK 2 = Hc (NV 2 )
NK 1 = Hc (NV 1 )
It calculates with each of these formulas.

受信機u4は、受信機u4からルートに至るパスノード={1,2,4,9,19}に含まれるノードのノードキー:NK19,NK,NK,NK,NKのいずれかを適用して、暗号文セットに含まれる暗号文を復号して秘密情報としてのデータキーDKを得ることができる。 The receiver u4 receives one of the node keys of the nodes included in the path node = { 1 , 2 , 4 , 9 , 19 } from the receiver u4 to the route: NK 19 , NK 9 , NK 4 , NK 2 , NK 1 By applying, the ciphertext included in the ciphertext set can be decrypted to obtain the data key DK as secret information.

例えば、上述した例におけるユーザ(受信機)u9の処理例について説明する。ユーザ(受信機)u9は、データキーDKの暗号化に用いられたノードキーNK12と、対応する暗号文E(NK12,DK)を特定する。ユーザ(受信機)u9は、ノード対応値NV24を所持しており、またノード付加変数salt24は、受信したファイルに格納されている。これらを用いて、ユーザ(受信機)u9は、ノードキーNK12を、下式に従って導出する。
NV12=((NV24 XOR H(24||salt24))modM
NK12=Hc(NV12
上記式に従って、ユーザ(受信機)u9は、ノードキーNK12を算出し、算出したノートキーを用いて、暗号文E(NK12,DK)を復号して秘密情報としてのデータキーDKを得ることができる。
For example, a processing example of the user (receiver) u9 in the above-described example will be described. The user (receiver) u9 specifies the node key NK 12 used for encrypting the data key DK and the corresponding ciphertext E K (NK 12 , DK). The user (receiver) u9 possesses a node-corresponding value NV 24 , and the node additional variable salt 24 is stored in the received file. Using these, the user (receiver) u9 are node keys NK 12, derived according to the following equation.
NV 12 = ((NV 24 ) 2 XOR H (24 || salt 24 )) mod M
NK 12 = Hc (NV 12 )
According to the above equation, the user (receiver) u9 calculates the node key NK 12, using the calculated note key, obtain a data key DK as secret information to decrypt the ciphertext E K (NK 12, DK) be able to.

なお、上述の処理例は、複数の選択されたユーザの集合Sと、管理センタ(TC)において情報を共有する処理例として説明したが、例えば、集合Sに含まれるユーザuiが復号によって取得したデータ(Data)を編集して、この編集データを集合S内のほかのユーザや管理センタ(TC)と共有したい場合、上述の処理において、管理センタ(TC)が実行したと同様の処理を、ユーザuiが編集データに対して再度実行して、送信することで編集データの共有が可能となる。   The above-described processing example has been described as a processing example in which information is shared in a management center (TC) with a plurality of selected user sets S. For example, a user ui included in the set S has obtained by decoding When editing the data (Data) and wishing to share this edited data with other users or the management center (TC) in the set S, the same processing as that executed by the management center (TC) in the above processing is performed. The user ui executes the editing data again and transmits the editing data, so that the editing data can be shared.

この場合、ユーザが平文データを編集し編集データ(Data2)をデータキーDKで暗号化したデータ、すなわち、
(a)暗号化データE(DK,Data2)を含むファイルを作り、このファイルに、管理センタ(TC)から受信したオリジナルのファイルに含まれる情報、すなわち、
(b)情報(データ)を共有するユーザ(受信機)の集合Sを指定する情報(例えば、ユーザ(受信機)番号=u1,u3−u10,u13−u16)、
(c)選択ノードキーでデータキーDKを暗号化した暗号文、
(d)さらに、選択したノードキーに対応するノードの子孫ノードのノード付加変数(salt)、
これらのデータをオリジナルファイルからコピーして、編集データの暗号化データを含むファイルに追加格納し、同報通信路を用いて送信する。
In this case, the user edits the plaintext data and the edit data (Data2) is encrypted with the data key DK, that is,
(A) A file including encrypted data E D (DK, Data2) is created, and information included in the original file received from the management center (TC) is created in this file, that is,
(B) Information designating a set S of users (receivers) sharing information (data) (for example, user (receiver) numbers = u1, u3-u10, u13-u16),
(C) a ciphertext obtained by encrypting the data key DK with the selected node key;
(D) Furthermore, a node addition variable (salt) of a descendant node of the node corresponding to the selected node key,
These data are copied from the original file, additionally stored in a file containing the encrypted data of the edited data, and transmitted using the broadcast channel.

この編集データを含むファイルを受信した集合S内のユーザおよび管理センタ(TC)は、上述のユーザuiが行ったのと同様にして選択ノードキーでデータキーDKを暗号化した暗号文を復号してデータキーDKを取得し、取得したデータキーDKを適用して、暗号化データE(DK,Data2)の復号処理を実行して平文編集データ(Data2)を得ることができる。なお、集合Sのユーザまたは管理センタ(TC)は、さらに編集データを、再度編集して、再編集データを同様に暗号化データとして再送信することが可能である。 The user and management center (TC) in the set S that has received the file including the edited data decrypts the ciphertext obtained by encrypting the data key DK with the selected node key in the same manner as the user ui performs. It is possible to acquire the data key DK, apply the acquired data key DK, execute decryption processing of the encrypted data E D (DK, Data2), and obtain plaintext edit data (Data2). Note that the user of the set S or the management center (TC) can edit the edited data again and re-transmit the re-edited data as encrypted data in the same manner.

図20に示すフローチャートを参照して、ファイル利用のシーケンスについて説明する。まず、ステップS701において、ファイルを受信する。ファイルには、
(a)暗号化データ:E(DK,Data)、
(b)情報(データ)を共有するユーザ(受信機)の集合Sを指定する情報(例えば、図16に示す例では、ユーザ(受信機)番号=u1,u3−u10,u13−u16)、
(c)選択ノードキー(NK,NK,NK,NK12,NK16)でデータキーDKを暗号化した暗号文、例えば、図16に示す例では、
(NK,DK)、E(NK,DK)、E(NK,DK)、E(NK12,DK)、E(NK16,DK)
(d)選択したノードキーに対応するノードの子孫ノードのノード付加変数(salt)。すなわち、図16に示す例では、(salt10,salt11,salt14,salt15,salt18,salt19,salt20,salt21,salt22,salt23,salt24,salt25,salt28,salt29,salt30,salt31
これらのデータが含まれる。
The file use sequence will be described with reference to the flowchart shown in FIG. First, in step S701, a file is received. The file contains
(A) Encrypted data: E D (DK, Data),
(B) Information designating a set S of users (receivers) sharing information (data) (for example, in the example shown in FIG. 16, user (receiver) numbers = u1, u3-u10, u13-u16),
(C) Ciphertext obtained by encrypting the data key DK with the selected node key (NK 5 , NK 7 , NK 9 , NK 12 , NK 16 ), for example, in the example shown in FIG.
E K (NK 5, DK) , E K (NK 7, DK), E K (NK 9, DK), E K (NK 12, DK), E K (NK 16, DK)
(D) A node addition variable (salt) of a descendant node of the node corresponding to the selected node key. That is, in the example shown in FIG. 16, (salt 10 , salt 11 , salt 14 , salt 15 , salt 18 , salt 19 , salt 20 , salt 21 , salt 22 , salt 23 , salt 24 , salt 28 , salt 25 , salt 25 , salt 25 , salt 25 , salt 25 , salt 25 , salt 25 , salt 25 29 , salt 30 , salt 31 )
These data are included.

ステップS702において、ユーザ(受信機)uiは、自身が集合Sに含まれることを確認する。管理センタ(TC)が配布したファイルにおいて、集合Sが直接指定されていれば、ui∈Sを直接確かめればよいし、ノードキーを指定する情報が格納されていれば、自身が割り当てられた葉もしくはその先祖のノードがそこに含まれることを確認すればよい。自身が、集合Sに含まれていなければ、処理をそこで終了する。   In step S702, the user (receiver) ui confirms that the user (receiver) ui is included in the set S. If the set S is directly specified in the file distributed by the management center (TC), it is sufficient to directly check uiεS, and if the information specifying the node key is stored, the leaf to which it is assigned is stored. Or just confirm that its ancestor node is included. If it is not included in the set S, the process ends there.

情報(データ)を共有するユーザ(受信機)の集合Sに含まれることを確認した受信機は、ステップS703において、受領した暗号文のセットに含まれる暗号文の暗号化に用いられているノードキーの中から、自身が直接保持しているノード対応値NV、保持またはファイルから取得可能なノード付加変数saltから導出可能なノード対応値に基づいて算出可能なノードキーによって暗号化された暗号文を抽出する。   In step S703, the receiver that has confirmed that it is included in the set S of users (receivers) that share information (data) uses the node key that is used to encrypt the ciphertext included in the received ciphertext set. Extracts the ciphertext encrypted by the node key that can be calculated based on the node correspondence value NV directly held by itself, the node correspondence value that can be derived from the node addition variable salt that can be obtained from the retention or file To do.

ステップS704において、暗号化に使用されたノードキーを、自己が保持するノード対応値NVと、ノード付加変数saltを適用して算出する。この算出は、前述の(数式1)によって上位ノード対応値を算出し、算出したノード対応値に基づいて、下式、
NK=Hc(NV
に従って、必要なノードキーNKを求める処理として実行される。
In step S704, the node key used for encryption is calculated by applying the node correspondence value NV held by itself and the node additional variable salt. This calculation is performed by calculating the upper node corresponding value according to the above-described (Formula 1), and based on the calculated node corresponding value,
NK k = Hc (NV k )
Is executed as a process for obtaining a necessary node key NK k .

暗号化に使われたノードキーが算出されると、ステップS705に進み、算出したノードキーを適用して暗号文を復号し、秘密情報としてのデータキーDKを取得する。次に、ステップS706において、暗号化データE(DK,Data)を、求めたデータキーDKを用いて復号することにより、平文データ(Data)を得る。 When the node key used for encryption is calculated, the process proceeds to step S705, where the calculated node key is applied to decrypt the ciphertext, and the data key DK as secret information is obtained. Next, in step S706, the encrypted data E D (DK, Data) is decrypted using the obtained data key DK to obtain plain text data (Data).

次に、図21に示すフローを参照して、復号して取得したデータ(Data)の編集によってデータ(Data2)を生成して、再送信する処理シーケンスについ手説明する。ステップS721において、復号処理によって取得したデータ(Data)を編集し、データ(Data2)を生成する。   Next, a processing sequence for generating and retransmitting data (Data2) by editing the data (Data) obtained by decoding will be described with reference to the flow shown in FIG. In step S721, the data (Data) acquired by the decryption process is edited to generate data (Data2).

ステップS722において、データ(Data2)を、データキーDKによって暗号化し、暗号化データ:E(DK,Data2)を生成して、この暗号化データを格納したファイルを生成する。ステップS723において、オリジナルファイル、すなわち、編集前のデータ(Data)の暗号化データを格納したファイルに格納されていた集合Sの定義情報と、選択ノードキーによるデータキーDKの暗号化データである暗号文セットと、ノード付加変数(salt)とをオリジナルファイルから取得して、これらをコピーして、編集データ格納ファイルに格納する。 In step S722, the data (Data2) is encrypted with the data key DK to generate encrypted data: E D (DK, Data2), and a file storing the encrypted data is generated. In step S723, the definition information of the set S stored in the original file, that is, the file storing the encrypted data of the data (Data) before editing, and the ciphertext that is the encrypted data of the data key DK by the selected node key The set and the node addition variable (salt) are acquired from the original file, copied, and stored in the edit data storage file.

ステップS724において、生成ファイルを送信する。生成ファイルには、
(a)暗号化データ:E(DK,Data2)、
(b)情報(データ)を共有するユーザ(受信機)の集合Sを指定する情報(例えば、図16に示す例では、ユーザ(受信機)番号=u1,u3−u10,u13−u16)、
(c)選択ノードキー(NK,NK,NK,NK12,NK16)でデータキーDKを暗号化した暗号文、例えば、図16に示す例では、
(NK,DK)、E(NK,DK)、E(NK,DK)、E(NK12,DK)、E(NK16,DK)
(d)選択したノードキーに対応するノードの子孫ノードのノード付加変数(salt)。すなわち、図16に示す例では、(salt10,salt11,salt14,salt15,salt18,salt19,salt20,salt21,salt22,salt23,salt24,salt25,salt28,salt29,salt30,salt31
これらのデータが含まれる。
In step S724, the generated file is transmitted. The generated file contains
(A) Encrypted data: E D (DK, Data2),
(B) Information designating a set S of users (receivers) sharing information (data) (for example, in the example shown in FIG. 16, user (receiver) numbers = u1, u3-u10, u13-u16),
(C) Ciphertext obtained by encrypting the data key DK with the selected node key (NK 5 , NK 7 , NK 9 , NK 12 , NK 16 ), for example, in the example shown in FIG.
E K (NK 5, DK) , E K (NK 7, DK), E K (NK 9, DK), E K (NK 12, DK), E K (NK 16, DK)
(D) A node addition variable (salt) of a descendant node of the node corresponding to the selected node key. That is, in the example shown in FIG. 16, (salt 10 , salt 11 , salt 14 , salt 15 , salt 18 , salt 19 , salt 20 , salt 21 , salt 22 , salt 23 , salt 24 , salt 28 , salt 25 , salt 25 , salt 25 , salt 25 , salt 25 , salt 25 , salt 25 , salt 25 29 , salt 30 , salt 31 )
These data are included.

この編集データを含むファイルを受信した集合S内のユーザおよび管理センタ(TC)は、上述のユーザuiが行ったのと同様にして、ノード対応値(NV)と、ノード付加変数(salt)を適用して生成したノードキー、データキーDKを暗号化した暗号文を復号してデータキーDKを取得し、取得したデータキーDKを適用して、暗号化データE(DK,Data2)の復号処理を実行して編集データ(Data2)を得る。 The user and the management center (TC) in the set S that has received the file including the edited data set the node correspondence value (NV) and the node additional variable (salt) in the same manner as the user ui described above. A decryption process of encrypted data E D (DK, Data2) by applying the acquired data key DK by decrypting a ciphertext obtained by encrypting the node key and data key DK generated by application To obtain edit data (Data 2).

図22に、暗号化データの復号処理を実行するユーザ機器としての受信機に相当する情報処理装置の機能構成を説明するブロック図を示す。
データ入力手段451は、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
(d)選択ノードキーに対応するノードの子孫ノードのノード付加変数(salt)、
上記(a)〜(d)の各データを入力する。
FIG. 22 is a block diagram illustrating a functional configuration of an information processing apparatus corresponding to a receiver as a user device that executes a process for decrypting encrypted data.
The data input means 451
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
(D) a node additional variable (salt) of a descendant node of the node corresponding to the selected node key;
The data (a) to (d) are input.

暗号文選択手段452は、上述の(c)暗号文セットから、自己のメモリ453に保持する保持データに基づいて生成可能なノードキーによって復号可能な暗号文を選択する。自己の対応するノードからルートに至るノードに設定されたノードキーによって暗号化された暗号文を選択する。ノードキー生成手段454は、暗号文選択手段452において選択した暗号文に適用されたノードキーを、自己の保持する保持データに基づいて生成する。データキー取得手段455は、暗号文選択手段452において選択した暗号文を、ノードキー生成手段454において生成したノードキーを適用して復号し、データキーDKを取得する。平文データ取得手段456は、取得したデータキーDKを適用して暗号化データを復号し、平文データを取得する。   The ciphertext selection unit 452 selects a ciphertext that can be decrypted with a node key that can be generated based on the retained data held in its own memory 453 from the above-mentioned (c) ciphertext set. The ciphertext encrypted by the node key set in the node from its corresponding node to the root is selected. The node key generation unit 454 generates a node key applied to the ciphertext selected by the ciphertext selection unit 452 based on the held data held by itself. The data key acquisition unit 455 decrypts the ciphertext selected by the ciphertext selection unit 452 using the node key generated by the node key generation unit 454, and acquires the data key DK. The plaintext data acquisition unit 456 decrypts the encrypted data using the acquired data key DK, and acquires plaintext data.

データ編集手段457は、平文データ取得手段456において取得した平文データ(Data)を編集し、編集データ(Data2)を生成し、ファイル生成手段458は、編集データ(Data2)に、さらに、前述の(b),(c),(d)の各データのコピーデータを含むファイルを生成する。データ出力手段459は、ファイル生成手段458において生成したファイルを出力する。   The data editing unit 457 edits the plaintext data (Data) acquired by the plaintext data acquisition unit 456 to generate editing data (Data2), and the file generation unit 458 further adds the above-described ((2) to the editing data (Data2). A file including copy data of each data of b), (c), and (d) is generated. The data output unit 459 outputs the file generated by the file generation unit 458.

以上、説明したように、本実施例の構成では、ブロードキャストエンクリプション技術を利用して、データキーDKによって暗号化したデータを配信するとともに、木構造に配置したノードキーの中で複数のユーザが共有しているノードキーを用いてデータキーDKを暗号化して配布する構成とした。本構成により、情報を共有する各人の個別鍵を適用してそれぞれの暗号化データを生成して配信する構成に比較して、メッセージサイズ(通信量)を削減した効率のよい暗号化ファイル共有システムが構築される。   As described above, in the configuration of the present embodiment, data encrypted by the data key DK is distributed using the broadcast encryption technology, and shared by a plurality of users among the node keys arranged in the tree structure. The data key DK is encrypted and distributed using the node key. Efficient encrypted file sharing with reduced message size (communication volume) compared to the configuration that generates and distributes each encrypted data by applying the individual key of each person sharing information. A system is built.

さらに情報共有集合Sに含まれるユーザuiが復号して取得したデータを編集した後に,再度同じユーザ集合S内で、編集データを共有するためにファイルを暗号化して送信する場合にも、編集後のデータをデータキーDKで暗号化して、サラニオリジナルファイルに含まれる集合Sの定義情報と、選択ノードキーによるデータキーDKの暗号化データである暗号文セットと、ノード付加変数(salt)をコピーして、編集データ格納ファイルに格納して送信することで、編集ファイルについての集合Sのメンバにおける共有も効率的で安全に行なうことができる。   Further, after editing the data obtained by decrypting and acquiring the user ui included in the information sharing set S, it is also possible to send the encrypted data to share the edited data again in the same user set S. Is encrypted with the data key DK, and the definition information of the set S included in the Salani original file, the ciphertext set that is the encrypted data of the data key DK with the selected node key, and the node additional variable (salt) are copied. Thus, by storing the edited data in the editing data storage file and transmitting it, sharing of the edited file among the members of the set S can be performed efficiently and safely.

以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。   The present invention has been described in detail above with reference to specific embodiments. However, it is obvious that those skilled in the art can make modifications and substitutions of the embodiments without departing from the gist of the present invention. In other words, the present invention has been disclosed in the form of exemplification, and should not be interpreted in a limited manner. In order to determine the gist of the present invention, the claims section described at the beginning should be considered.

なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。   The series of processes described in the specification can be executed by hardware, software, or a combined configuration of both. When executing processing by software, the program recording the processing sequence is installed in a memory in a computer incorporated in dedicated hardware and executed, or the program is executed on a general-purpose computer capable of executing various processing. It can be installed and run.

例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。   For example, the program can be recorded in advance on a hard disk or ROM (Read Only Memory) as a recording medium. Alternatively, the program is temporarily or permanently stored on a removable recording medium such as a flexible disk, a CD-ROM (Compact Disc Read Only Memory), an MO (Magneto optical) disk, a DVD (Digital Versatile Disc), a magnetic disk, or a semiconductor memory. It can be stored (recorded). Such a removable recording medium can be provided as so-called package software.

なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。   The program is installed on the computer from the removable recording medium as described above, or is wirelessly transferred from the download site to the computer, or is wired to the computer via a network such as a LAN (Local Area Network) or the Internet. The computer can receive the program transferred in this manner and install it on a recording medium such as a built-in hard disk.

なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。   Note that the various processes described in the specification are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary. Further, in this specification, the system is a logical set configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same casing.

以上、説明したように、本発明の構成によれば、ブロードキャストエンクリプション(Broadcast Encryption)方式の一態様である階層型木構造を適用した情報配信構成において、特定の選択されたユーザ(受信機)の集合においてのみ復号可能としたデータを生成し、提供することが可能となり、特定のユーザの集合におけるデータ共有をセキュアに効率的に実行することができる。具体的には、共有対象のデータをデータキーDKによって暗号化し、さらにデータキーDKを階層木構成の選択されたノードキーを利用して暗号化した暗号文セットを生成して、例えばブロードキャストによってユーザに提供する。   As described above, according to the configuration of the present invention, a specific selected user (receiver) in an information distribution configuration to which a hierarchical tree structure that is an aspect of a broadcast encryption scheme is applied. It is possible to generate and provide data that can be decrypted only in a set of data, and data sharing in a specific set of users can be executed securely and efficiently. Specifically, the ciphertext set is generated by encrypting the data to be shared with the data key DK, and further encrypting the data key DK using the selected node key of the hierarchical tree structure, and for example, by broadcasting to the user provide.

さらに、本発明の構成によれば、共有データを受信した受信機において、データを編集して生成した編集データについても、オリジナルデータの共有集合Sにおいてのみ利用可能とした形態で、再配信することができる。具体的には、編集データをデータキーDKで暗号化した暗号化データを格納したファイルを生成し、オリジナルファイルに含まれるデータキーDKを階層木構成の選択されたノードキーを利用して暗号化した暗号文セットと、データ共有集合Sに関する情報をコピーして、編集データの暗号化データを格納したファイルに格納してこのファイルを、例えばブロードキャストすることで、オリジナルデータの共有集合Sと同様の集合Sにおいてのみ利用可能とした形態で、編集データを再配信することができる。   Furthermore, according to the configuration of the present invention, in the receiver that has received the shared data, the edited data generated by editing the data can be redistributed in a form that can be used only in the shared set S of the original data. Can do. Specifically, a file storing the encrypted data obtained by encrypting the edit data with the data key DK is generated, and the data key DK included in the original file is encrypted using the selected node key of the hierarchical tree configuration. A set similar to the shared set S of the original data is obtained by copying the ciphertext set and the information related to the data shared set S, storing the encrypted data of the edited data in a file storing the data, and broadcasting the file, for example. Editing data can be redistributed in a form that can be used only in S.

ノードが2つに分岐する階層型木構造を説明する図である。It is a figure explaining the hierarchical tree structure which a node branches in two. 階層型木構造のリーフに対応して設定される受信機の持つノードキーについて説明する図である。It is a figure explaining the node key which the receiver which is set corresponding to the leaf of a hierarchical tree structure has. データ共有受信機のみに選択的にデータを提供する構成について説明する図である。It is a figure explaining the structure which provides data selectively only to a data sharing receiver. データ送信または受信を実行する情報処理装置の構成例について説明する図である。And FIG. 11 is a diagram illustrating a configuration example of an information processing apparatus that performs data transmission or reception. 階層型木構造を適用した暗号データ配信処理におけるセットアップ処理のフローを示す図である。It is a figure which shows the flow of the setup process in the encryption data delivery process to which a hierarchical tree structure is applied. 階層型木構造を適用した暗号データ配信処理情報配信処理の手順について説明するフロー図である。It is a flowchart explaining the procedure of the encryption data delivery process information delivery process to which a hierarchical tree structure is applied. 階層型木構造を適用した暗号データ配信処理を実行する情報処理装置の構成例を説明するブロック図である。FIG. 11 is a block diagram illustrating a configuration example of an information processing apparatus that executes encrypted data distribution processing to which a hierarchical tree structure is applied. 階層型木構造を適用した暗号データ配信処理におけるファイル利用のシーケンスについて説明するフローを示す図である。It is a figure which shows the flow explaining the sequence of the file utilization in the encryption data delivery process to which a hierarchical tree structure is applied. 階層型木構造を適用した暗号データ配信処理における編集データの再配信シーケンスについて説明するフローを示す図である。It is a figure which shows the flow explaining the redistribution sequence of the edit data in the encryption data distribution process to which the hierarchical tree structure is applied. 階層型木構造を適用した暗号データの受信、復号、編修、再配信処理を実行する情報処理装置の構成例を説明するブロック図である。FIG. 11 is a block diagram illustrating an exemplary configuration of an information processing apparatus that performs reception, decryption, editing, and redistribution processing of encrypted data to which a hierarchical tree structure is applied. RSA暗号の順方向置換および逆方向置換を用いて定義される木構造について説明する図である。It is a figure explaining the tree structure defined using the forward substitution and reverse substitution of RSA encryption. 本発明において適用する一方向置換木としてのRabin Treeの生成処理、ノード対応値、ノード付加変数の算出手順を説明するフロー図である。It is a flowchart explaining the production | generation process of the Rabin Tree as a one way permutation tree applied in this invention, a node corresponding value, and the calculation procedure of a node additional variable. 本発明において適用する一方向置換木としてのRabin Treeの木構造について説明する図である。It is a figure explaining the tree structure of Rabin Tree as a one way permutation tree applied in the present invention. Rabin Treeを適用した方式において、受信機に付与するデータを説明する図である。It is a figure explaining the data provided to a receiver in the system to which Rabin Tree is applied. Rabin Treeを適用した方式におけるセットアップ処理のフローを示す図である。It is a figure which shows the flow of the setup process in the system to which Rabin Tree is applied. データ共有受信機のみに選択的にデータを提供する場合の適用ノードキーについて説明する図である。It is a figure explaining the application node key in the case of providing data selectively only to a data sharing receiver. Rabin Treeを適用した方式における情報配信処理の手順について説明するフロー図である。It is a flowchart explaining the procedure of the information delivery process in the system to which Rabin Tree is applied. Rabin Treeを適用した方式において、暗号データ配信処理を実行する情報処理装置の構成例を説明するブロック図である。FIG. 11 is a block diagram illustrating a configuration example of an information processing apparatus that executes encrypted data distribution processing in a system to which Rabin Tree is applied. Rabin Treeを適用した方式において、受信機に付与するデータを説明する図である。It is a figure explaining the data provided to a receiver in the system to which Rabin Tree is applied. Rabin Treeを適用した方式において、受信機における暗号文の復号処理手順を説明するフロー図である。It is a flowchart explaining the decryption process procedure of the ciphertext in a receiver in the system to which Rabin Tree is applied. Rabin Treeを適用した方式において、編集データの再配信シーケンスについて説明するフローを示す図である。It is a figure which shows the flow explaining the redistribution sequence of edit data in the system to which Rabin Tree is applied. Rabin Treeを適用した方式において、暗号データの受信、復号、編修、再配信処理を実行する情報処理装置の構成例を説明するブロック図である。FIG. 11 is a block diagram illustrating a configuration example of an information processing apparatus that performs reception, decryption, editing, and redistribution processing of encrypted data in a method to which Rabin Tree is applied.

符号の説明Explanation of symbols

101 ノード
200 情報処理装置
201 コントローラ
202 演算ユニット
203 入出力インタフェース
204 セキュア記憶部
205 メイン記憶部
206 ネットワークインタフェース
207 メディアインタフェース
310 セットアップ手段
320 データ処理手段
321 暗号化データ生成手段
322 データ共有集合情報生成手段
323 暗号文セット生成手段
330 データ出力手段
351 データ入力手段
352 暗号文選択手段
353 メモリ
354 ノードキー取得手段
355 データキー取得手段
356 平文データ取得手段
357 データ編集手段
358 ファイル生成手段
359 データ出力手段
410 セットアップ手段
420 データ処理手段
421 暗号化データ生成手段
422 データ共有集合情報生成手段
423 暗号文セット生成手段
424 ノード付加変数生成(選択)手段
430 データ出力手段
451 データ入力手段
452 暗号文選択手段
453 メモリ
454 ノードキー生成手段
455 データキー取得手段
456 平文データ取得手段
457 データ編集手段
458 ファイル生成手段
459 データ出力手段
DESCRIPTION OF SYMBOLS 101 Node 200 Information processing apparatus 201 Controller 202 Arithmetic unit 203 Input / output interface 204 Secure storage unit 205 Main storage unit 206 Network interface 207 Media interface 310 Setup unit 320 Data processing unit 321 Encrypted data generation unit 322 Data shared set information generation unit 323 Ciphertext set generation means 330 Data output means 351 Data input means 352 Ciphertext selection means 353 Memory 354 Node key acquisition means 355 Data key acquisition means 356 Plaintext data acquisition means 357 Data editing means 358 File generation means 359 Data output means 410 Setup means 420 Data processing means 421 Encrypted data generation means 422 Data sharing set information generation means 423 Issue set generation means 424 Node addition variable generation (selection) means 430 Data output means 451 Data input means 452 Ciphertext selection means 453 Memory 454 Node key generation means 455 Data key acquisition means 456 Plain text data acquisition means 457 Data editing means 458 File generation Means 459 Data output means

Claims (38)

特定の選択機器においてのみ復号可能とした暗号化データ生成処理を実行する情報処理方法であり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを生成するデータ生成ステップと、
前記データ生成ステップにおいて生成した上記(a)〜(c)の各データを出力するステップと、
を有することを特徴とする情報処理方法。
An information processing method for executing encrypted data generation processing that can be decrypted only by a specific selected device,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
A data generation step for generating each of the data (a) to (c);
Outputting each of the data (a) to (c) generated in the data generation step;
An information processing method characterized by comprising:
前記暗号化データは、共有対象のデータ(Data)を、データキーDKを適用して暗号関数Eによって暗号化した暗号化データE(DK,Data)であり、
前記暗号文セットは、前記データキーDKを、前記選択ノードキー(NKn)を適用して暗号関数Eによって暗号化した暗号化データE(NKn,DK)であり、
暗号関数E、および暗号関数Eは公開された関数であることを特徴とする請求項1に記載の情報処理方法。
The encrypted data is encrypted data E D (DK, Data) obtained by encrypting the data to be shared (Data) with the encryption function E D by applying the data key DK,
The ciphertext set, the data key DK, is said selected node key (NKn) to apply cryptographic function E K by encrypting encrypted data E K (NKn, DK),
The information processing method according to claim 1, wherein the cryptographic function E D and the cryptographic function E K are public functions.
前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セットの生成に適用するノードキーは、前記階層木構成において、前記データ共有機器からルートに至るノードに設定されたノードキーを含む設定であることを特徴とする請求項1に記載の情報処理方法。   The node key applied to the generation of the ciphertext set generated by applying the selected node key selected based on the data sharing device and encrypting the data key DK is the root key from the data sharing device in the hierarchical tree configuration. The information processing method according to claim 1, wherein the information includes a node key set for each node. 暗号化データの復号処理を実行する情報処理方法であり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを入力するデータ入力ステップと、
前記(c)暗号文セットから、自己の保持するノードキーによって復号可能な暗号文を選択する暗号文選択ステップと、
前記暗号文選択ステップにおいて選択した暗号文を自己の保持するノードキーを適用して復号し、データキーDKを取得するステップと、
取得したデータキーDKを適用して暗号化データを復号し、平文データを取得する平文データ取得ステップと、
を有することを特徴とする情報処理方法。
An information processing method for executing decryption processing of encrypted data,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
A data input step for inputting each of the data (a) to (c);
(C) a ciphertext selection step of selecting a ciphertext that can be decrypted by a node key held by itself from the ciphertext set;
Decrypting the ciphertext selected in the ciphertext selection step using a node key held by the ciphertext and obtaining a data key DK;
A plaintext data obtaining step of decrypting the encrypted data by applying the obtained data key DK and obtaining plaintext data;
An information processing method characterized by comprising:
前記情報処理方法は、さらに、
平文データ取得ステップにおいて取得した平文データ(Data)を編集し、編集データ(Data2)を生成するデータ編集ステップと、
前記編集データ(Data2)に、さらに、前記(b),(c)の各データのコピーデータを含むファイルを生成するファイル生成ステップと、
前記ファイル生成ステップにおいて生成したファイルを出力するステップと、
を有することを特徴とする請求項4に記載の情報処理方法。
The information processing method further includes:
A data editing step of editing the plaintext data (Data) acquired in the plaintext data acquisition step, and generating edited data (Data2);
A file generation step of generating a file including copy data of each of the data (b) and (c) in the edit data (Data 2);
Outputting the file generated in the file generation step;
The information processing method according to claim 4, further comprising:
前記暗号文選択ステップは、
前記階層木構成において、自己の対応するノードからルートに至るノードに設定されたノードキーによって暗号化された暗号文を選択するステップであることを特徴とする請求項4に記載の情報処理方法。
The ciphertext selection step includes:
5. The information processing method according to claim 4, wherein in the hierarchical tree configuration, the ciphertext encrypted by a node key set in a node from the corresponding node to the root is selected.
特定の選択機器においてのみ復号可能とした暗号化データ生成処理を実行する情報処理方法であり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを生成するデータ生成ステップと、
前記データ生成ステップにおいて生成した上記(a)〜(c)の各データを出力するデータ出力ステップと、
を有することを特徴とする情報処理方法。
An information processing method for executing encrypted data generation processing that can be decrypted only by a specific selected device,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
A data generation step for generating each of the data (a) to (c);
A data output step of outputting each of the data (a) to (c) generated in the data generation step;
An information processing method characterized by comprising:
前記情報処理方法において、
前記データ生成ステップは、さらに、
(d)選択ノードキーに対応するノードの子孫ノードのノード付加変数(salt)、
を生成し、
前記データ出力ステップは、
前記データ生成ステップにおいて生成した上記(a)〜(d)の各データを出力するステップであることを特徴とする請求項7に記載の情報処理方法。
In the information processing method,
The data generation step further includes:
(D) a node additional variable (salt) of a descendant node of the node corresponding to the selected node key;
Produces
The data output step includes
The information processing method according to claim 7, wherein the information generation method is a step of outputting each of the data (a) to (d) generated in the data generation step.
前記階層木は、下位ノードのノード対応値に基づくRabin暗号を適用した暗号化処理(順方向演算)によって上位ノードのノード対応値が算出可能であり、上位ノードのノード対応値に基づくRabin暗号を適用した復号処理(逆方向演算)によって下位ノードのノード対応値が算出可能な設定を有する一方向木であることを特徴とする請求項7に記載の情報処理方法。   The hierarchical tree can calculate the node-corresponding value of the upper node by an encryption process (forward calculation) applying the Rabin cipher based on the node-corresponding value of the lower node. The information processing method according to claim 7, wherein the information processing method is a one-way tree having a setting in which a node correspondence value of a lower node can be calculated by an applied decoding process (reverse operation). 前記暗号化データは、共有対象のデータ(Data)を、データキーDKを適用して暗号関数Eによって暗号化した暗号化データE(DK,Data)であり、
前記暗号文セットは、前記データキーDKを、前記選択ノードキー(NKn)を適用して暗号関数Eによって暗号化した暗号化データE(NKn,DK)であり、
暗号関数E、および暗号関数Eは公開された関数であることを特徴とする請求項7に記載の情報処理方法。
The encrypted data is encrypted data E D (DK, Data) obtained by encrypting the data to be shared (Data) with the encryption function E D by applying the data key DK,
The ciphertext set, the data key DK, is said selected node key (NKn) to apply cryptographic function E K by encrypting encrypted data E K (NKn, DK),
The information processing method according to claim 7 cryptographic function E D, and encryption functions E K, which is a published function.
前記情報処理方法は、さらに、
法Mのサイズ|M|を定め、任意サイズの値をサイズ|M|のランダムな値にマッピングするマッピング関数H、および、
サイズ|M|の値をサイズCのランダムな値にマッピングするマッピング関数Hc、
これらのマッピング関数を定め、公開するステップを有することを特徴とする請求項7に記載の情報処理方法。
The information processing method further includes:
A mapping function H that defines a size | M | of the modulus M and maps a value of arbitrary size to a random value of size | M |;
A mapping function Hc that maps a value of size | M | to a random value of size C;
The information processing method according to claim 7, further comprising a step of defining and disclosing these mapping functions.
前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セットの生成に適用するノードキーは、前記階層木構成において、前記データ共有機器からルートに至るノードに設定されたノードキーを含む設定であることを特徴とする請求項7に記載の情報処理方法。   The node key applied to the generation of the ciphertext set generated by applying the selected node key selected based on the data sharing device and encrypting the data key DK is the root key from the data sharing device in the hierarchical tree configuration. The information processing method according to claim 7, wherein the setting includes a node key set for each node to be reached. 暗号化データの復号処理を実行する情報処理方法であり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを入力するデータ入力ステップと、
前記(c)暗号文セットから、自己の保持する保持データに基づいて生成可能なノードキーによって復号可能な暗号文を選択する暗号文選択ステップと、
前記暗号文選択ステップにおいて選択した暗号文に適用されたノードキーを、自己の保持する保持データに基づいて生成するノードキー生成ステップと、
前記暗号文選択ステップにおいて選択した暗号文を、前記ノードキー生成ステップにおいて生成したノードキーを適用して復号し、データキーDKを取得するステップと、
取得したデータキーDKを適用して暗号化データを復号し、平文データを取得する平文データ取得ステップと、
を有することを特徴とする情報処理方法。
An information processing method for executing decryption processing of encrypted data,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
A data input step for inputting each of the data (a) to (c);
(C) a ciphertext selection step of selecting a ciphertext that can be decrypted by a node key that can be generated based on retained data held by itself from the ciphertext set;
A node key generation step of generating a node key applied to the ciphertext selected in the ciphertext selection step based on retained data held by itself;
Decrypting the ciphertext selected in the ciphertext selection step by applying the node key generated in the node key generation step, and obtaining a data key DK;
A plaintext data obtaining step of decrypting the encrypted data by applying the obtained data key DK and obtaining plaintext data;
An information processing method characterized by comprising:
前記情報処理方法において、
前記データ入力ステップは、さらに、
(d)選択ノードキーに対応するノードの子孫ノードのノード付加変数(salt)、
を入力し、
前記ノードキー生成ステップは、
前記ノード付加変数(salt)を適用して、選択した暗号文に適用されたノードキーを生成するステップであることを特徴とする請求項13に記載の情報処理方法。
In the information processing method,
The data input step further includes:
(D) a node additional variable (salt) of a descendant node of the node corresponding to the selected node key;
Enter
The node key generation step includes:
14. The information processing method according to claim 13, wherein the node addition variable (salt) is applied to generate a node key applied to the selected ciphertext.
前記情報処理方法は、さらに、
平文データ取得ステップにおいて取得した平文データ(Data)を編集し、編集データ(Data2)を生成するデータ編集ステップと、
前記編集データ(Data2)に、さらに、前記(b),(c),(d)の各データのコピーデータを含むファイルを生成するファイル生成ステップと、
前記ファイル生成ステップにおいて生成したファイルを出力するステップと、
を有することを特徴とする請求項13に記載の情報処理方法。
The information processing method further includes:
A data editing step of editing the plaintext data (Data) acquired in the plaintext data acquisition step, and generating edited data (Data2);
A file generation step of generating a file including copy data of each of the data (b), (c), and (d) in the edit data (Data 2);
Outputting the file generated in the file generation step;
The information processing method according to claim 13, further comprising:
前記暗号文選択ステップは、
前記階層木構成において、自己の対応するノードからルートに至るノードに設定されたノードキーによって暗号化された暗号文を選択するステップであることを特徴とする請求項13に記載の情報処理方法。
The ciphertext selection step includes:
14. The information processing method according to claim 13, wherein in the hierarchical tree configuration, the ciphertext encrypted by a node key set in a node from the corresponding node to the root is selected.
特定の選択機器においてのみ復号可能とした暗号化データ生成処理を実行する情報処理装置であり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを生成するデータ生成手段と、
前記データ生成手段において生成した上記(a)〜(c)の各データを出力するデータ出力手段と、
を有することを特徴とする情報処理装置。
An information processing apparatus that executes encrypted data generation processing that can be decrypted only by a specific selected device,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
Data generating means for generating each of the data (a) to (c);
Data output means for outputting each of the data (a) to (c) generated in the data generation means;
An information processing apparatus comprising:
前記データ生成手段の生成する前記暗号化データは、共有対象のデータ(Data)を、データキーDKを適用して暗号関数Eによって暗号化した暗号化データE(DK,Data)であり、
前記暗号文セットは、前記データキーDKを、前記選択ノードキー(NKn)を適用して暗号関数Eによって暗号化した暗号化データE(NKn,DK)であり、
前記データ生成手段の適用する暗号関数E、および暗号関数Eは公開関数として設定されることを特徴とする請求項17に記載の情報処理装置。
The encrypted data generated by the data generating means is encrypted data E D (DK, Data) obtained by encrypting the data to be shared (Data) with the encryption function E D by applying the data key DK,
The ciphertext set, the data key DK, is said selected node key (NKn) to apply cryptographic function E K by encrypting encrypted data E K (NKn, DK),
18. The information processing apparatus according to claim 17, wherein the cryptographic function E D and the cryptographic function E K applied by the data generation unit are set as public functions.
前記データ生成手段は、
前記階層木構成において、前記データ共有機器からルートに至るノードに設定されたノードキーを選択ノードキーとして適用して前記データキーDKを暗号化して暗号文セットの生成処理を行なう構成であることを特徴とする請求項17に記載の情報処理装置。
The data generation means includes
In the hierarchical tree configuration, the node key set in a node from the data sharing device to the root is applied as a selection node key, and the data key DK is encrypted to generate a ciphertext set. The information processing apparatus according to claim 17.
暗号化データの復号処理を実行する情報処理装置であり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを入力するデータ入力手段と、
前記(c)暗号文セットから、自己の保持するノードキーによって復号可能な暗号文を選択する暗号文選択手段と、
前記暗号文選択手段において選択した暗号文を自己の保持するノードキーを適用して復号し、データキーDKを取得するデータキー取得手段と、
取得したデータキーDKを適用して暗号化データを復号し、平文データを取得する平文データ取得手段と、
を有することを特徴とする情報処理装置。
An information processing device that performs decryption processing of encrypted data,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
Data input means for inputting each of the data (a) to (c);
(C) ciphertext selection means for selecting a ciphertext that can be decrypted by a node key held by itself from the ciphertext set;
A data key acquisition unit that decrypts the ciphertext selected by the ciphertext selection unit by applying a node key held by the ciphertext selection unit, and acquires a data key DK;
Plaintext data acquisition means for decrypting encrypted data by applying the acquired data key DK and acquiring plaintext data;
An information processing apparatus comprising:
前記情報処理装置は、さらに、
平文データ取得手段において取得した平文データ(Data)を編集し、編集データ(Data2)を生成するデータ編集手段と、
前記編集データ(Data2)に、さらに、前記(b),(c)の各データのコピーデータを含むファイルを生成するファイル生成手段と、
前記ファイル生成手段において生成したファイルを出力するデータ出力手段と、
を有することを特徴とする請求項20に記載の情報処理装置。
The information processing apparatus further includes:
Data editing means for editing plaintext data (Data) acquired by the plaintext data acquisition means, and generating edit data (Data2);
File generation means for generating a file including copy data of each of the data (b) and (c) in the edit data (Data 2);
Data output means for outputting the file generated in the file generation means;
The information processing apparatus according to claim 20, further comprising:
前記暗号文選択手段は、
前記階層木構成において、自己の対応するノードからルートに至るノードに設定されたノードキーによって暗号化された暗号文を選択する構成であることを特徴とする請求項20に記載の情報処理装置。
The ciphertext selecting means includes
21. The information processing apparatus according to claim 20, wherein in the hierarchical tree configuration, a ciphertext encrypted by a node key set in a node from a corresponding node to a root is selected.
特定の選択機器においてのみ復号可能とした暗号化データ生成処理を実行する情報処理装置であり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを生成するデータ生成手段と、
前記データ生成手段において生成した上記(a)〜(c)の各データを出力するデータ出力手段と、
を有することを特徴とする情報処理装置。
An information processing apparatus that executes encrypted data generation processing that can be decrypted only by a specific selected device,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
Data generating means for generating each of the data (a) to (c);
Data output means for outputting each of the data (a) to (c) generated in the data generation means;
An information processing apparatus comprising:
前記情報処理装置において、
前記データ生成手段は、さらに、
(d)選択ノードキーに対応するノードの子孫ノードのノード付加変数(salt)、
を生成し、
前記データ出力手段は、
前記データ生成手段において生成した上記(a)〜(d)の各データを出力することを特徴とする請求項23に記載の情報処理装置。
In the information processing apparatus,
The data generation means further includes
(D) a node additional variable (salt) of a descendant node of the node corresponding to the selected node key;
Produces
The data output means includes
The information processing apparatus according to claim 23, wherein each of the data (a) to (d) generated by the data generation means is output.
前記階層木は、下位ノードのノード対応値に基づくRabin暗号を適用した暗号化処理(順方向演算)によって上位ノードのノード対応値が算出可能であり、上位ノードのノード対応値に基づくRabin暗号を適用した復号処理(逆方向演算)によって下位ノードのノード対応値が算出可能な設定を有する一方向木であることを特徴とする請求項23に記載の情報処理装置。   The hierarchical tree can calculate the node-corresponding value of the upper node by an encryption process (forward calculation) applying the Rabin cipher based on the node-corresponding value of the lower node. 24. The information processing apparatus according to claim 23, wherein the information processing apparatus is a one-way tree having a setting in which a node correspondence value of a lower node can be calculated by an applied decoding process (reverse calculation). 前記データ生成手段の生成する前記暗号化データは、共有対象のデータ(Data)を、データキーDKを適用して暗号関数Eによって暗号化した暗号化データE(DK,Data)であり、
前記暗号文セットは、前記データキーDKを、前記選択ノードキー(NKn)を適用して暗号関数Eによって暗号化した暗号化データE(NKn,DK)であり、
前記データ生成手段の適用する暗号関数E、および暗号関数Eは公開関数として設定されることを特徴とする請求項23に記載の情報処理装置。
The encrypted data generated by the data generating means is encrypted data E D (DK, Data) obtained by encrypting the data to be shared (Data) with the encryption function E D by applying the data key DK,
The ciphertext set, the data key DK, is said selected node key (NKn) to apply cryptographic function E K by encrypting encrypted data E K (NKn, DK),
The information processing apparatus according to claim 23, wherein the cryptographic function E D and the cryptographic function E K applied by the data generation unit are set as public functions.
前記データ生成手段は、さらに、
法Mのサイズ|M|を定め、任意サイズの値をサイズ|M|のランダムな値にマッピングするマッピング関数H、および、
サイズ|M|の値をサイズCのランダムな値にマッピングするマッピング関数Hc、
これらのマッピング関数を決定する構成であることを特徴とする請求項23に記載の情報処理装置。
The data generation means further includes
A mapping function H that defines a size | M | of the modulus M and maps a value of arbitrary size to a random value of size | M |;
A mapping function Hc that maps a value of size | M | to a random value of size C;
The information processing apparatus according to claim 23, wherein the mapping function is determined.
前記データ生成手段は、
前記階層木構成において、前記データ共有機器からルートに至るノードに設定されたノードキーを選択ノードキーとして適用して前記データキーDKを暗号化して暗号文セットの生成処理を行なう構成であることを特徴とする請求項23に記載の情報処理装置。
The data generation means includes
In the hierarchical tree configuration, the node key set in a node from the data sharing device to the root is applied as a selection node key, and the data key DK is encrypted to generate a ciphertext set. The information processing apparatus according to claim 23.
暗号化データの復号処理を実行する情報処理装置であり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを入力するデータ入力手段と、
前記(c)暗号文セットから、自己の保持する保持データに基づいて生成可能なノードキーによって復号可能な暗号文を選択する暗号文選択手段と、
前記暗号文選択手段において選択した暗号文に適用されたノードキーを、自己の保持する保持データに基づいて生成するノードキー生成手段と、
前記暗号文選択手段において選択した暗号文を、前記ノードキー生成手段において生成したノードキーを適用して復号し、データキーDKを取得するデータキー取得手段と、
取得したデータキーDKを適用して暗号化データを復号し、平文データを取得する平文データ取得手段と、
を有することを特徴とする情報処理装置。
An information processing device that performs decryption processing of encrypted data,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
Data input means for inputting each of the data (a) to (c);
(C) ciphertext selection means for selecting a ciphertext that can be decrypted by a node key that can be generated based on retained data held by itself from the ciphertext set;
Node key generation means for generating a node key applied to the ciphertext selected by the ciphertext selection means based on retained data held by itself;
A data key acquisition unit that decrypts the ciphertext selected by the ciphertext selection unit by applying the node key generated by the node key generation unit and acquires a data key DK;
Plaintext data acquisition means for decrypting encrypted data by applying the acquired data key DK and acquiring plaintext data;
An information processing apparatus comprising:
前記情報処理装置において、
前記データ入力手段は、さらに、
(d)選択ノードキーに対応するノードの子孫ノードのノード付加変数(salt)、
を入力し、
前記ノードキー生成手段は、
前記ノード付加変数(salt)を適用して、選択した暗号文に適用されたノードキーを生成することを特徴とする請求項29に記載の情報処理装置。
In the information processing apparatus,
The data input means further includes:
(D) a node additional variable (salt) of a descendant node of the node corresponding to the selected node key;
Enter
The node key generation means includes
30. The information processing apparatus according to claim 29, wherein a node key applied to the selected ciphertext is generated by applying the node addition variable (salt).
前記情報処理装置は、さらに、
平文データ取得手段において取得した平文データ(Data)を編集し、編集データ(Data2)を生成するデータ編集手段と、
前記編集データ(Data2)に、さらに、前記(b),(c),(d)の各データのコピーデータを含むファイルを生成するファイル生成手段と、
前記ファイル生成手段において生成したファイルを出力するデータ出力手段と、
を有することを特徴とする請求項29に記載の情報処理装置。
The information processing apparatus further includes:
Data editing means for editing plaintext data (Data) acquired by the plaintext data acquisition means, and generating edit data (Data2);
File generation means for generating a file including copy data of each data of (b), (c), and (d) in addition to the edit data (Data 2);
Data output means for outputting the file generated in the file generation means;
30. The information processing apparatus according to claim 29, comprising:
前記暗号文選択手段は、
前記階層木構成において、自己の対応するノードからルートに至るノードに設定されたノードキーによって暗号化された暗号文を選択する構成であることを特徴とする請求項29に記載の情報処理装置。
The ciphertext selecting means includes
30. The information processing apparatus according to claim 29, wherein in the hierarchical tree configuration, a ciphertext encrypted by a node key set in a node from a corresponding node to a root is selected.
特定の選択機器においてのみ復号可能とした暗号化データ生成処理をコンピュータ上で実行させるコンピュータ・プログラムであり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを生成するデータ生成ステップと、
前記データ生成ステップにおいて生成した上記(a)〜(c)の各データを出力するステップと、
を有することを特徴とするコンピュータ・プログラム。
A computer program that causes a computer to execute encrypted data generation processing that can be decrypted only by a specific selected device,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
A data generation step for generating each of the data (a) to (c);
Outputting each of the data (a) to (c) generated in the data generation step;
A computer program characterized by comprising:
暗号化データの復号処理をコンピュータ上で実行させるコンピュータ・プログラムであり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを入力するデータ入力ステップと、
前記(c)暗号文セットから、自己の保持するノードキーによって復号可能な暗号文を選択する暗号文選択ステップと、
前記暗号文選択ステップにおいて選択した暗号文を自己の保持するノードキーを適用して復号し、データキーDKを取得するステップと、
取得したデータキーDKを適用して暗号化データを復号し、平文データを取得する平文データ取得ステップと、
を有することを特徴とするコンピュータ・プログラム。
A computer program for executing decryption processing of encrypted data on a computer,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
A data input step for inputting each of the data (a) to (c);
(C) a ciphertext selection step of selecting a ciphertext that can be decrypted by a node key held by itself from the ciphertext set;
Decrypting the ciphertext selected in the ciphertext selection step using a node key held by the ciphertext and obtaining a data key DK;
A plaintext data obtaining step of decrypting the encrypted data by applying the obtained data key DK and obtaining plaintext data;
A computer program characterized by comprising:
特定の選択機器においてのみ復号可能とした暗号化データ生成処理をコンピュータ上で実行させるコンピュータ・プログラムであり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを生成するデータ生成ステップと、
前記データ生成ステップにおいて生成した上記(a)〜(c)の各データを出力するステップと、
を有することを特徴とするコンピュータ・プログラム。
A computer program that causes a computer to execute encrypted data generation processing that can be decrypted only by a specific selected device,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
A data generation step for generating each of the data (a) to (c);
Outputting each of the data (a) to (c) generated in the data generation step;
A computer program characterized by comprising:
前記コンピュータ・プログラムおいて、
前記データ生成ステップは、さらに、
(d)選択ノードキーに対応するノードの子孫ノードのノード付加変数(salt)、
を生成し、
前記データ出力ステップは、
前記データ生成ステップにおいて生成した上記(a)〜(d)の各データを出力するステップであることを特徴とする請求項35に記載のコンピュータ・プログラム。
In the computer program,
The data generation step further includes:
(D) a node additional variable (salt) of a descendant node of the node corresponding to the selected node key;
Produces
The data output step includes
36. The computer program according to claim 35, wherein the computer program is a step of outputting each of the data (a) to (d) generated in the data generation step.
暗号化データの復号処理をコンピュータ上で実行させるコンピュータ・プログラムであり、
(a)共有対象のデータ(Data)をデータキーDKで暗号化した暗号化データ、
(b)データ共有機器を識別可能とした集合Sの情報、および、
(c)ブロードキャストエンクリプション方式における階層木構成に基づいて、前記データ共有機器に基づいて選択された選択ノードキーを適用して前記データキーDKを暗号化して生成した暗号文セット、
上記(a)〜(c)の各データを入力するデータ入力ステップと、
前記(c)暗号文セットから、自己の保持する保持データに基づいて生成可能なノードキーによって復号可能な暗号文を選択する暗号文選択ステップと、
前記暗号文選択ステップにおいて選択した暗号文に適用されたノードキーを、自己の保持する保持データに基づいて生成するノードキー生成ステップと、
前記暗号文選択ステップにおいて選択した暗号文を、前記ノードキー生成ステップにおいて生成したノードキーを適用して復号し、データキーDKを取得するステップと、
取得したデータキーDKを適用して暗号化データを復号し、平文データを取得する平文データ取得ステップと、
を有することを特徴とするコンピュータ・プログラム。
A computer program for executing decryption processing of encrypted data on a computer,
(A) Encrypted data obtained by encrypting data to be shared (Data) with the data key DK,
(B) information of the set S that makes the data sharing device identifiable, and
(C) a ciphertext set generated by encrypting the data key DK by applying a selected node key selected based on the data sharing device based on a hierarchical tree configuration in the broadcast encryption scheme;
A data input step for inputting each of the data (a) to (c);
(C) a ciphertext selection step of selecting a ciphertext that can be decrypted by a node key that can be generated based on retained data held by itself from the ciphertext set;
A node key generation step of generating a node key applied to the ciphertext selected in the ciphertext selection step based on retained data held by itself;
Decrypting the ciphertext selected in the ciphertext selection step by applying the node key generated in the node key generation step, and obtaining a data key DK;
A plaintext data obtaining step of decrypting the encrypted data by applying the obtained data key DK and obtaining plaintext data;
A computer program characterized by comprising:
前記コンピュータ・プログラムにおいて、
前記データ入力ステップは、さらに、
(d)選択ノードキーに対応するノードの子孫ノードのノード付加変数(salt)、
を入力し、
前記ノードキー生成ステップは、
前記ノード付加変数(salt)を適用して、選択した暗号文に適用されたノードキーを生成するステップであることを特徴とする請求項37に記載のコンピュータ・プログラム。
In the computer program,
The data input step further includes:
(D) a node additional variable (salt) of a descendant node of the node corresponding to the selected node key;
Enter
The node key generation step includes:
38. The computer program product according to claim 37, wherein the node additional variable (salt) is applied to generate a node key applied to the selected ciphertext.
JP2005201165A 2005-07-11 2005-07-11 Information processing device, information processing method, and computer program Pending JP2007020025A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005201165A JP2007020025A (en) 2005-07-11 2005-07-11 Information processing device, information processing method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005201165A JP2007020025A (en) 2005-07-11 2005-07-11 Information processing device, information processing method, and computer program

Publications (1)

Publication Number Publication Date
JP2007020025A true JP2007020025A (en) 2007-01-25

Family

ID=37756757

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005201165A Pending JP2007020025A (en) 2005-07-11 2005-07-11 Information processing device, information processing method, and computer program

Country Status (1)

Country Link
JP (1) JP2007020025A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010193226A (en) * 2009-02-19 2010-09-02 Mitsubishi Electric Corp Communication equipment, communication method and communication program
KR101516751B1 (en) * 2014-12-10 2015-05-04 주식회사 피앤피시큐어 Decryption protecting method and system editable the cryptogram

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010193226A (en) * 2009-02-19 2010-09-02 Mitsubishi Electric Corp Communication equipment, communication method and communication program
KR101516751B1 (en) * 2014-12-10 2015-05-04 주식회사 피앤피시큐어 Decryption protecting method and system editable the cryptogram

Similar Documents

Publication Publication Date Title
US7340054B2 (en) Information processing method, decrypting method, information processing apparatus, and computer program
US20070133806A1 (en) Information processing method, decryption method, information processing device, and computer program
US8000472B2 (en) Information encryption apparatus and controlling method of the same, computer program and computer readable storage medium
WO2011016401A1 (en) Function cipher application system
JP2016158189A (en) Change direction with key control system and change direction with key control method
Seo et al. Revocable hierarchical identity-based encryption
JP2006115464A (en) Information processing method, decoding method, information processing device, and computer program
JP4561074B2 (en) Information processing apparatus, information processing method, and computer program
JP2010160235A (en) Retrieval system, terminal device, database device, retrieval method, and program
Chang et al. Secret sharing with access structures in a hierarchy
JP2008131072A (en) Information processor, terminal device, information processing method, and key generation method
KR101951545B1 (en) Wildcard identity-based key derivation, encryption and decryption method
JP2007020025A (en) Information processing device, information processing method, and computer program
JP2007189597A (en) Encryption device, encryption method, decoding device, and decoding method
JP7325689B2 (en) Ciphertext conversion system, conversion key generation method, and conversion key generation program
JP4080283B2 (en) Content distribution system
JP2004229128A (en) Encryption data distribution system, information processor and information processing method, and computer program
JP4635459B2 (en) Information processing method, decoding processing method, information processing apparatus, and computer program
JP2005191805A (en) Encryption message distribution method, information processing device, information processing method, and computer program
JP5612494B2 (en) Timed cryptographic system, timed cryptographic method, apparatus, and program using function encryption
JP4576824B2 (en) Information processing apparatus and information processing method
JP5279824B2 (en) Information processing apparatus and program
Parit et al. Ciphertext Policy Attribute Based Encryption
WO2009157050A1 (en) Information processing device and program
Mandal et al. Efficient Adaptively Secure Public-Key Trace and Revoke from Subset Cover Using D e´ jaQ Framework