WO2024013974A1 - 秘密交差結合システム、秘密交差結合装置、秘密交差結合方法、プログラム - Google Patents
秘密交差結合システム、秘密交差結合装置、秘密交差結合方法、プログラム Download PDFInfo
- Publication number
- WO2024013974A1 WO2024013974A1 PCT/JP2022/027822 JP2022027822W WO2024013974A1 WO 2024013974 A1 WO2024013974 A1 WO 2024013974A1 JP 2022027822 W JP2022027822 W JP 2022027822W WO 2024013974 A1 WO2024013974 A1 WO 2024013974A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- key
- attribute
- column
- secret
- cross
- Prior art date
Links
- 238000004132 cross linking Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 title claims description 35
- 238000005304 joining Methods 0.000 claims description 17
- 238000006880 cross-coupling reaction Methods 0.000 claims description 14
- 239000004971 Cross linker Substances 0.000 claims 1
- 239000000284 extract Substances 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 4
- PRKWNRUVAZZHPH-UHFFFAOYSA-N 2-(4-chlorophenyl)sulfonyl-6-methoxy-3-nitropyridine Chemical compound COC1=CC=C([N+]([O-])=O)C(S(=O)(=O)C=2C=CC(Cl)=CC=2)=N1 PRKWNRUVAZZHPH-UHFFFAOYSA-N 0.000 abstract 1
- 238000004364 calculation method Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 17
- 238000003860 storage Methods 0.000 description 12
- 239000013598 vector Substances 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 235000013361 beverage Nutrition 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
Definitions
- the present invention relates to secure computation technology, and particularly to technology for cross-coupling two tables while keeping them confidential.
- Secure calculation is a method of obtaining the result of a specified operation without restoring the encrypted numerical value (see, for example, Reference Non-Patent Document 1, Non-Patent Document 1, and Patent Document 1).
- the method in Reference Non-Patent Document 1 performs encryption by distributing multiple pieces of information from which numerical values can be restored to three secret computing devices, and performs addition/subtraction, constant sum, multiplication, and constant multiplication without restoring numerical values.
- the results of logical operations (negation, logical product, logical sum, exclusive disjunction) and data format conversion (integer, binary number) are kept in a distributed state, that is, encrypted, in three secret computing devices. I can do it.
- the number of distributions is not limited to 3, but can be set to W (W is a predetermined constant of 3 or more), and a protocol that realizes secure computation through cooperative computation by W secure computing devices is called a multiparty protocol.
- W is a predetermined constant of 3 or more
- a protocol that realizes secure computation through cooperative computation by W secure computing devices is called a multiparty protocol.
- Non-Patent Document 2 and Patent Document 2 perform a secure join when only one of the two tables to be joined has a duplicate key attribute value. If there are duplicates in the values of the key attributes, a secret cross-join cannot be performed on the key attributes.
- cross-joining two tables with respect to key attributes means obtaining a table in which only records with matching key attribute values of the two tables are extracted from the table obtained by cross-joining the two tables.
- an object of the present invention is to provide a technology that can perform a secure cross-join of two tables regarding key attributes even when there is an overlap in the values of the key attributes of the two tables to be joined. .
- TL is a table composed of key attributes Key and attributes B 1 , ..., B M (M is an integer of 1 or more), and TR is a table composed of key attributes Key and attributes C 1 , ..., CN ( N is an integer greater than or equal to 1)), TA is a column of values of attribute A that constitutes table T, and TA j (j is an integer greater than or equal to 1) is the j-th element of column TA.
- table TL is sorted with respect to the key attribute Key
- ⁇ is the maximum number of elements with the same value included in column TL.Key
- L is the number of records included in table TR
- 3 or more A table obtained by cross-joining table TL and table TR with respect to the key attribute Key from table [TL] in which table TL is concealed and table [TR] in which table TR is concealed.
- a secret cross-join system that calculates a table [TC] that conceals TC, and supports shares of different values between 0 and ⁇ -1 for elements with the same value included in the column [TL.Key].
- the table [TC 0 ], ..., table [TC ⁇ -1 ] is secretly row-joined with the third table generating means to perform the row-joining of the table TC 0 , ..., table TC ⁇ -1. and fourth table generation means for generating a table [TC] in which the table TC is concealed.
- FIG. 3 is a diagram illustrating an example of tables to be combined.
- FIG. 3 is a diagram illustrating an example of a cross-linked table regarding key attributes.
- FIG. 3 is a diagram illustrating a procedure for generating a cross-linked table regarding key attributes.
- FIG. 3 is a diagram illustrating a procedure for generating a cross-linked table regarding key attributes.
- FIG. 3 is a diagram illustrating a procedure for generating a cross-linked table regarding key attributes.
- FIG. 3 is a diagram illustrating a procedure for generating a cross-linked table regarding key attributes.
- 1 is a block diagram showing the configuration of a secret cross-coupling system 10.
- FIG. FIG. 2 is a block diagram showing the configuration of a secret cross-coupling device 100i .
- 3 is a flowchart showing the operation of the secret cross-linking system 10.
- FIG. 1 is a diagram illustrating an example of a functional configuration of a computer that implements each device in an embodiment of the present invention.
- ⁇ (caret) represents a superscript.
- x y ⁇ z indicates that y z is a superscript to x
- x y ⁇ z indicates that y z is a subscript to x
- _ (underscore) represents a subscript.
- x y_z indicates that y z is a superscript to x
- x y_z indicates that y z is a subscript to x.
- FIG. 1 is a diagram showing an example of tables to be combined.
- (A), (B), and (C) in FIG. 1 are a table regarding beverage product names, a table regarding capacity of beverage product containers, and a table regarding types of beverage product containers, respectively.
- the two tables in C) are the tables to be joined.
- FIG. 2 is a diagram illustrating an example of a cross-linked table regarding key attributes.
- the table in FIG. 2 is a table obtained by cross-linking the two tables in FIG. 1 (B) and (C) with respect to the key attribute, using the key attribute as the ID.
- (B) of Figure 1 there are three records with a key attribute ID value of 1000
- (C) of Figure 1 there are two records each with a key attribute ID value of 1000 and 4500. , note that there is an overlap in the values of the key attributes of the two tables to be joined.
- TL and TR the two tables (B) and (C) in FIG. 1
- ⁇ is the maximum number of elements with the same value included in the key attribute ID of table TL
- ⁇ 3.
- L the number of records included in table TR
- TA be a column of values of attribute A that constitutes table T
- TA j be the j-th element of column TA.
- table TL is sorted with respect to key attribute ID.
- Step 1 A column generated by associating different values from 0 to ⁇ -1 to elements with the same value included in the key attribute ID of table TL is created as a value column of attribute ID' in table TL. Generate table TL' by adding.
- FIG. 3 is a diagram showing table TL' obtained by executing step 1.
- Step 2 By adding a column of values of attribute ID' to table TR, ⁇ tables TR 0 , ..., TR ⁇ -1 are generated.
- FIG. 5 is a diagram showing the table TC 0 , ..., TC ⁇ -1 obtained by executing step 3.
- a table TC is generated by combining rows of tables TC 0 , . . . , table TC ⁇ -1 .
- FIG. 6 is a diagram showing the table TC obtained by executing step 4.
- the secure computation in the invention of this application is constructed by a combination of existing secure computation operations.
- [Anonymization] Let [x] be the value of x concealed by secret sharing (hereinafter referred to as the share of x). Any method can be used as the secret sharing method. For example, Shamir secret sharing on GF(2 61 -1) and replicated secret sharing on Z 2 can be used.
- Multiple secret sharing methods may be used in combination within one algorithm. In this case, mutual conversion shall be made as appropriate.
- [ ⁇ x] ([x 1 ], ..., [x N ]).
- [ ⁇ x] is a vector whose n-th element is the share [x n ] of the n-th element x n of ⁇ x.
- [A] is the (m, n)th element of A, a m,n Let be a matrix whose (m, n)th element is the share [a m,n ] of
- Reference Non-Patent Document 1 Reference Non-Patent Document 2
- Reference Non-Patent Document 2 Shamir, A., “How to share a secret”, Communications of the ACM, Vol.22, No.11, pp.612-613, 1979.
- [Addition, subtraction, multiplication, division] Addition [x]+[y] by secure calculation takes [x] and [y] as inputs and outputs [x+y].
- Subtraction [x]-[y] by secret calculation takes [x] and [y] as inputs and outputs [xy].
- Multiplication [x] ⁇ [y] (sometimes expressed as mul([x], [y])) by secure calculation takes [x], [y] as inputs and outputs [x ⁇ y].
- Division [x]/[y] (sometimes expressed as div([x], [y]) by secure calculation takes [x], [y] as inputs and outputs [x/y].
- Reference Non-Patent Document 3 Ben-Or, M., Goldwasser, S. and Wigderson, A., “Completeness theorems for non-cryptographic fault-tolerant distributed computation”, Proceedings of the twentieth annual ACM symposium on Theory of computing, ACM, pp. 1-10, 1988.
- Reference Non-Patent Document 4 Gennaro, R., Rabin, M. O.
- Comparison by secure calculation ⁇ ([x], [y]) takes [x], [y] as input, and outputs [1] if x ⁇ y, otherwise outputs [0]. . Comparison by secure calculation ⁇ ([x], [y]) takes [x], [y] as input, and outputs [1] if x ⁇ y, otherwise outputs [0]. .
- comparison operation can be easily configured by combining logical operations.
- the same values x i , x i+1 , ..., x i+k-1 (k is an integer greater than or equal to 1, provided that x i-1 ⁇ x i , x i+k-1 ⁇ x i+ k ) is one group
- group-by((1000, 1000, 1000, 3210, 4050)) (0, 1, 2, 0, 0).
- TL is a table consisting of key attribute Key and attributes B 1 , ..., B M (M is an integer greater than or equal to 1)
- TR is a table consisting of key attribute Key and attributes C 1 , ..., C N (N is an integer greater than or equal to 1)
- table TC obtained by equijoining table TL and table TR with respect to key attribute Key is: key attribute Key and attribute B 1 , ..., B M , key attribute Key and attribute C 1 , ..., C N (See Figures 3 to 5).
- Equijoins can be similarly defined for concealed tables [TL] and [TR].
- a table [TL] which is made secret of table TL consisting of key attribute Key and attributes B 1 , ..., B M , and table TR made up of key attribute Key and attributes C 1 , ..., C N are made secret.
- the table [TC] obtained by secretly joining table [TL] and table [TR] with respect to the key attribute Key for the table [TR] is the key attribute Key and the attribute B 1 , ..., B M
- This is a table that conceals the table TC, which is composed of key attributes Key and attributes C 1 , ..., CN .
- [TC] join([TL], [TR]).
- FIG. 7 is a block diagram showing the configuration of the secret cross-coupling system 10.
- the secret cross-coupling system 10 includes W (W is a predetermined integer of 3 or more) secret cross-coupling devices 100 1 , . . . , 100 W.
- the secret cross-coupling devices 100 1 , . . . , 100 W are connected to the network 800 and can communicate with each other.
- the network 800 may be, for example, a communication network such as the Internet or a broadcast channel.
- FIG. 8 is a block diagram showing the configuration of the secret cross-coupling device 100 i (1 ⁇ i ⁇ W).
- FIG. 9 is a flowchart showing the operation of the secret cross-linking system 10.
- the secure cross-joining device 100i includes a first table generation section 110i , a second table generation section 120i , a third table generation section 130i , a fourth table generation section 140i , It includes a recording section 190i .
- Each component of the secure cross-coupling device 100 i except the recording unit 190 i performs operations necessary for secure calculation, that is, at least concealment, addition, subtraction, multiplication, division, logical operation, comparison operation, and group-by operation. , is configured to be able to execute calculations necessary to realize the functions of each component among the secret equijoining.
- the specific functional configuration for realizing each operation in the present invention is, for example, one that can execute existing algorithms including the algorithms disclosed in Patent Documents 1 to 2 and Reference Non-Patent Documents 1 to 4, respectively.
- the configurations are sufficient, and since these are conventional configurations, detailed explanations will be omitted.
- the recording unit 190 i is a component that records information necessary for processing by the secret cross-coupling device 100 i .
- the secret cross-joining system 10 realizes the secret computation of cross-joining on key attributes, which is a multi-party protocol. Therefore, the first table generation means 110 (not shown) of the secure cross-joining system 10 is composed of first table generation units 110 1 , . . . , 110 W , and the second table generation means 120 (not shown) is composed of The third table generation means 130 (not shown) is composed of the third table generation parts 130 1 , ..., 130 W , and the fourth table generation means 140 (not shown) is composed of fourth table generation units 140 1 , . . . , 140 W.
- TL is a table consisting of key attribute Key and attributes B 1 , ..., B M (M is an integer greater than or equal to 1)
- TR is a table consisting of key attribute Key and attributes C 1 , ..., C N (N is an integer greater than or equal to 1)
- TA represent a column of values of attribute A that constitutes table T
- TA j (j is an integer greater than or equal to 1) represent the j-th element of column TA.
- the table TL is sorted with respect to the key attribute Key
- ⁇ is the maximum number of elements with the same value included in the column TL.Key
- L is the number of records included in the table TR.
- the secret cross-join system 10 generates a table TC obtained by cross-joining the table TL and the table TR with respect to the key attribute Key from a table [TL] in which the table TL is concealed and a table [TR] in which the table TR is concealed. Compute the concealed table [TC]. Note that the table [TL] and table [TR] may be recorded in advance in the recording unit 190i .
- the first table generation means 110 generates a column in which shares of different values from 0 to ⁇ -1 are associated with elements of the same value included in the column [TL.Key], as an attribute Key.
- a table [TL'] that conceals the table TL' consisting of the key attribute Key and the attributes Key', B 1 , ..., B M. generate.
- the first table generation means 110 can generate a column of shares of the values of the attribute Key' by group-by ([TL.Key]), for example, and generate the table [TL'].
- the third table generating means 130 connects table [TL'] and table [TR i ] with respect to key attribute Key and attribute Key' in a secure manner, thereby converting table TL and table TR i into key attribute Key.
- the fourth table generating means 140 performs a row join on the tables TC 0 , . . . , and the table TC ⁇ - 1 by performing a secret row join on the tables TC 0 , .
- a table [TC] is generated by concealing the table TC obtained by .
- the fourth table generating means 140 can generate the table [TC] by, for example, a method similar to row join in plain text.
- ⁇ be the maximum number of elements with the same value included in the column TR.Key.
- the secret cross-join system 10 executes the secret cross-join faster when ⁇ than when ⁇ . I can do it. Therefore, when ⁇ , processing may be performed to replace table TL and table TR in advance, and secret cross-joining may be performed.
- An embodiment of the present invention executes a secure equijoin between a table [TL'] containing the same number of records as the table [TL] and a table [TR i ] containing the same number of records as the table [TR] to secure the secret. Achieve cross-linking.
- This method performs a secret equijoin on ⁇ tables [TL i ] and table [TR], which are obtained by dividing table [TL] so that there is no duplication of key attribute values.
- the method according to the embodiment of the present invention can reduce the memory size required for calculation compared to conventional methods. Specifically, if K is the number of records included in table TL, then in the conventional method, it is necessary to perform a column join between the table with the number of records K ⁇ ⁇ and the table with the number of records L. However, in the method of the embodiment of the present invention, column joins between a table with K codes and a table with L records are only executed ⁇ times, and the memory size can be significantly reduced.
- the device of the present invention as a single hardware entity, includes an input section capable of inputting a signal from outside the hardware entity, an output section capable of outputting a signal outside the hardware entity, and a communication section external to the hardware entity.
- a communication unit that can be connected to a communication device (for example, a communication cable), a CPU (Central Processing Unit, which may be equipped with cache memory, registers, etc.) that is an arithmetic processing unit, RAM or ROM that is memory, and a hard disk. It has an external storage device, an input section, an output section, a communication section, a CPU, a RAM, a ROM, and a bus that connects the external storage device so that data can be exchanged therebetween.
- the hardware entity may be provided with a device (drive) that can read and write a recording medium such as a CD-ROM.
- a physical entity with such hardware resources includes a general-purpose computer.
- the external storage device of the hardware entity stores the program required to realize the above-mentioned functions and the data required for processing this program (not limited to the external storage device, for example, when reading the program (It may also be stored in a ROM, which is a dedicated storage device.) Further, data obtained through processing of these programs is appropriately stored in a RAM, an external storage device, or the like.
- each program stored in an external storage device or ROM, etc.
- the data required to process each program are read into memory as necessary, and interpreted and executed and processed by the CPU as appropriate.
- the CPU realizes a predetermined function (each of the components expressed as . . . section, . . . means, etc.). That is, each component in the embodiment of the present invention may be configured by a processing circuit.
- the processing functions of the hardware entity (device of the present invention) described in the above embodiments are realized by a computer, the processing contents of the functions that the hardware entity should have are described by a program. By executing this program on a computer, the processing functions of the hardware entity are realized on the computer.
- a program that describes this processing content can be recorded on a computer-readable recording medium.
- the computer-readable recording medium is, for example, a non-temporary recording medium, specifically a magnetic recording device, an optical disk, or the like.
- this program is performed, for example, by selling, transferring, lending, etc. portable recording media such as DVDs and CD-ROMs on which the program is recorded. Furthermore, this program may be distributed by storing the program in the storage device of the server computer and transferring the program from the server computer to another computer via a network.
- a computer that executes such a program for example, first stores a program recorded on a portable recording medium or a program transferred from a server computer into the auxiliary storage unit 2025, which is its own non-temporary storage device. Store. When executing a process, this computer loads the program stored in the auxiliary storage unit 2025, which is its own non-temporary storage device, into the recording unit 2020, and executes the process according to the read program. Further, as another form of execution of this program, the computer may directly load the program from a portable recording medium into the recording unit 2020 and execute processing according to the program. Each time the received program is transferred, processing may be executed in accordance with the received program.
- ASP Application Service Provider
- the above-mentioned processing is executed by a so-called ASP (Application Service Provider) type service, which does not transfer programs from the server computer to this computer, but only realizes processing functions by issuing execution instructions and obtaining results.
- ASP Application Service Provider
- the present apparatus is configured by executing a predetermined program on a computer, but at least a part of these processing contents may be implemented in hardware.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
結合対象となる2つのテーブルのキー属性の値に重複がある場合であっても2つのテーブルをキー属性に関して秘密交差結合することができる技術を提供する。[TL.Key]に含まれる同一の値の要素に対して0以上α-1以下の異なる値のシェアを対応させる形で生成した列を属性Key'の値のシェアの列として[TL]に追加することにより[TL']を生成し、属性Key'の値のシェアの列を[TR]に追加することにより[TRi](TR0.Key'jは0以上α-1以下の値であり、TRi.Key'j(i=1, …, α-1)はTRi.Key'j=(TRi-1.Key'j+1) mod αを満たす)を生成し、[TL']と[TRi]とをキー属性Keyと属性Key'に関して秘密等結合することにより[TCi]を生成し、[TC0]、…、[TCα-1]を秘密行結合することにより[TC]を生成する。
Description
本発明は、秘密計算技術に関し、特に2つのテーブルを秘匿化したまま交差結合する技術に関する。
秘密計算とは、暗号化された数値を復元することなく指定された演算の演算結果を得る方法のことである(例えば参考非特許文献1、非特許文献1、特許文献1を参照)。参考非特許文献1の方法では、数値を復元することのできる複数の情報を3つの秘密計算装置に分散するという暗号化を行い、数値を復元することなく、加減算、定数和、乗算、定数倍、論理演算(否定、論理積、論理和、排他的論理和)、データ形式変換(整数、二進数)の結果を3つの秘密計算装置に分散された状態、すなわち暗号化されたまま保持させることができる。一般に、分散数は3に限らずW(Wは3以上の所定の定数)とすることができ、W個の秘密計算装置による協調計算によって秘密計算を実現するプロトコルはマルチパーティプロトコルと呼ばれる。
(参考非特許文献1:千田浩司, 濱田浩気, 五十嵐大, 高橋克巳, “軽量検証可能3パーティ秘匿関数計算の再考,” In CSS, 2010.)
2つのテーブルを秘匿化したままキー属性に関して結合する技術として、非特許文献2や特許文献2に記載の技術がある。
(参考非特許文献1:千田浩司, 濱田浩気, 五十嵐大, 高橋克巳, “軽量検証可能3パーティ秘匿関数計算の再考,” In CSS, 2010.)
2つのテーブルを秘匿化したままキー属性に関して結合する技術として、非特許文献2や特許文献2に記載の技術がある。
千田浩司, 五十嵐大, 濱田浩気, 高橋克巳, "エラー検出可能な軽量3パーティ秘匿関数計算の提案と実装評価," 情報処理学会論文誌, Vol.52, No.9, pp.2674-2685, 2011.
濱田浩気, 桐淵直人, 五十嵐大, "キーに重複がある場合の秘密計算向け結合アルゴリズム," 暗号と情報セキュリティシンポジウム(SCIS)2015, 電子情報通信学会, 2015.
しかし、非特許文献2や特許文献2の方法は、結合対象となる2つのテーブルのうち、1つのテーブルのキー属性の値のみに重複がある場合に秘密等結合するものであり、2つのテーブルのキー属性の値に重複がある場合、キー属性に関して秘密交差結合することができない。ここで、2つのテーブルをキー属性に関して交差結合するとは、2つのテーブルを交差結合して得られるテーブルから2つのテーブルのキー属性の値が一致するレコードのみを抽出したテーブルを得ることをいう。
そこで本発明は、結合対象となる2つのテーブルのキー属性の値に重複がある場合であっても、2つのテーブルをキー属性に関して秘密交差結合することができる技術を提供することを目的とする。
本発明の一態様は、TLをキー属性Keyと属性B1, …, BM(Mは1以上の整数)で構成されるテーブル、TRをキー属性Keyと属性C1, …, CN(Nは1以上の整数)で構成されるテーブルとし、T.AをテーブルTを構成する属性Aの値の列、T.Aj(jは1以上の整数)を列T.Aのj番目の要素を表すものとし、テーブルTLはキー属性Keyに関してソートされているものとし、αを列TL.Keyに含まれる同一の値の要素の数の最大値、LをテーブルTRに含まれるレコードの数とし、3個以上の秘密交差結合装置で構成され、テーブルTLを秘匿化したテーブル[TL]とテーブルTRを秘匿化したテーブル[TR]とからテーブルTLとテーブルTRをキー属性Keyに関して交差結合することにより得られるテーブルTCを秘匿化したテーブル[TC]を計算する秘密交差結合システムであって、列[TL.Key]に含まれる同一の値の要素に対して0以上α-1以下の異なる値のシェアを対応させる形で生成した列を属性Key’の値のシェアの列としてテーブル[TL]に追加することにより、キー属性Keyと属性Key’, B1, …, BMで構成されるテーブルTL’を秘匿化したテーブル[TL’]を生成する第1テーブル生成手段と、属性Key’の値のシェアの列をテーブル[TR]に追加することにより、キー属性Keyと属性Key’, C1, …, CNで構成されるテーブルTRi(i=0, …, α-1、ただし、1≦j≦Lを満たすjに対して、TR0.Key’jは0以上α-1以下の値であり、TRi.Key’j(i=1, …, α-1)はTRi.Key’j=(TRi-1.Key’j+1) mod αを満たす)を秘匿化したテーブル[TRi](i=0, …, α-1)を生成する第2テーブル生成手段と、テーブル[TL’]とテーブル[TRi]とをキー属性Keyと属性Key’に関して秘密等結合することにより、テーブルTLとテーブルTRiをキー属性Keyと属性Key’に関して等結合することにより得られるテーブルTCiを秘匿化したテーブル[TCi](i=0, …, α-1)を生成する第3テーブル生成手段と、テーブル[TC0]、…、テーブル[TCα-1]を秘密行結合することにより、テーブルTC0、…、テーブルTCα-1を行結合することにより得られるテーブルTCを秘匿化したテーブル[TC]を生成する第4テーブル生成手段と、を含む。
本発明によれば、結合対象となる2つのテーブルのキー属性の値に重複がある場合であっても、2つのテーブルをキー属性に関して秘密交差結合することが可能となる。
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
各実施形態の説明に先立って、この明細書における表記方法について説明する。
^(キャレット)は上付き添字を表す。例えば、xy^zはyzがxに対する上付き添字であり、xy^zはyzがxに対する下付き添字であることを表す。また、_(アンダースコア)は下付き添字を表す。例えば、xy_zはyzがxに対する上付き添字であり、xy_zはyzがxに対する下付き添字であることを表す。
ある文字xに対する→x、^xや~xのような上付き添え字の”→”、”^”や”~”は、本来”x”の真上に記載されるべきであるが、明細書の記載表記の制約上、→x、^xや~xと記載しているものである。
<技術的背景>
<<交差結合>>
ここでは、キー属性に関する交差結合について例を用いて説明する。図1は、結合対象となるテーブルの一例を示す図である。図1の(A)、(B)、(C)はそれぞれ飲料商品名に関するテーブル、飲料商品の容器の容量に関するテーブル、飲料商品の容器の種類に関するテーブルであり、図1の(B)、(C)の2つのテーブルが結合対象となるテーブルである。図2は、キー属性に関して交差結合したテーブルの一例を示す図である。図2のテーブルは、キー属性をIDとして、図1の(B)、(C)の2つのテーブルをキー属性に関して交差結合したテーブルである。ここで、図1の(B)にはキー属性IDの値が1000であるレコードが3つ、図1の(C)にはキー属性IDの値が1000, 4500であるレコードがそれぞれ2つあり、結合対象となる2つのテーブルのキー属性の値に重複があることに留意する。
<技術的背景>
<<交差結合>>
ここでは、キー属性に関する交差結合について例を用いて説明する。図1は、結合対象となるテーブルの一例を示す図である。図1の(A)、(B)、(C)はそれぞれ飲料商品名に関するテーブル、飲料商品の容器の容量に関するテーブル、飲料商品の容器の種類に関するテーブルであり、図1の(B)、(C)の2つのテーブルが結合対象となるテーブルである。図2は、キー属性に関して交差結合したテーブルの一例を示す図である。図2のテーブルは、キー属性をIDとして、図1の(B)、(C)の2つのテーブルをキー属性に関して交差結合したテーブルである。ここで、図1の(B)にはキー属性IDの値が1000であるレコードが3つ、図1の(C)にはキー属性IDの値が1000, 4500であるレコードがそれぞれ2つあり、結合対象となる2つのテーブルのキー属性の値に重複があることに留意する。
次に、キー属性に関して交差結合したテーブルの生成手順について説明する。以下、図1の(B)、(C)の2つのテーブルをそれぞれTL, TRとする。αをテーブルTLのキー属性IDに含まれる同一の値の要素の数の最大値とすると、α=3となる。また、LをテーブルTRに含まれるレコードの数とすると、L=5となる。T.AをテーブルTを構成する属性Aの値の列、T.Ajを列T.Aのj番目の要素を表すものとする。なお、テーブルTLはキー属性IDに関してソートされていることに留意する。
(ステップ1)テーブルTLのキー属性IDに含まれる同一の値の要素に対して0以上α-1以下の異なる値を対応させる形で生成した列を属性ID’の値の列としてテーブルTLに追加することにより、テーブルTL’を生成する。図3は、ステップ1を実行することにより得られるテーブルTL’を示す図である。
(ステップ2)属性ID’の値の列をテーブルTRに追加することにより、α個のテーブルTR0, …, TRα-1を生成する。ただし、1≦j≦Lを満たすjに対して、TR0.ID’jは0以上α-1以下の値であり、TRi.ID’j(i=1, …, α-1)はTRi.ID’j=(TRi-1.Key’j+1) mod αを満たす。図4は、ステップ2を実行することにより得られるテーブルTR0, …, TRα-1を示す図である。
(ステップ3)テーブルTLとテーブルTRiをキー属性IDと属性ID’に関して等結合することにより、テーブルTCi(i=0, …, α-1)を生成する。図5は、ステップ3を実行することにより得られるテーブルTC0, …, TCα-1を示す図である。
(ステップ4)テーブルTC0、…、テーブルTCα-1を行結合することにより、テーブルTCを生成する。図6は、ステップ4を実行することにより得られるテーブルTCを示す図である。
<<秘密計算>>
本願の発明における秘密計算は、既存の秘密計算上の演算の組み合わせで構築される。この秘密計算に必要な演算は、例えば、秘匿化、加算、減算、乗算、除算、論理演算(否定、論理積、論理和、排他的論理和)、比較演算(=, <, >, ≦, ≧)、グループバイ演算、秘密等結合である。以下、記法も含めいくつかの演算について説明していく。
(ステップ1)テーブルTLのキー属性IDに含まれる同一の値の要素に対して0以上α-1以下の異なる値を対応させる形で生成した列を属性ID’の値の列としてテーブルTLに追加することにより、テーブルTL’を生成する。図3は、ステップ1を実行することにより得られるテーブルTL’を示す図である。
(ステップ2)属性ID’の値の列をテーブルTRに追加することにより、α個のテーブルTR0, …, TRα-1を生成する。ただし、1≦j≦Lを満たすjに対して、TR0.ID’jは0以上α-1以下の値であり、TRi.ID’j(i=1, …, α-1)はTRi.ID’j=(TRi-1.Key’j+1) mod αを満たす。図4は、ステップ2を実行することにより得られるテーブルTR0, …, TRα-1を示す図である。
(ステップ3)テーブルTLとテーブルTRiをキー属性IDと属性ID’に関して等結合することにより、テーブルTCi(i=0, …, α-1)を生成する。図5は、ステップ3を実行することにより得られるテーブルTC0, …, TCα-1を示す図である。
(ステップ4)テーブルTC0、…、テーブルTCα-1を行結合することにより、テーブルTCを生成する。図6は、ステップ4を実行することにより得られるテーブルTCを示す図である。
<<秘密計算>>
本願の発明における秘密計算は、既存の秘密計算上の演算の組み合わせで構築される。この秘密計算に必要な演算は、例えば、秘匿化、加算、減算、乗算、除算、論理演算(否定、論理積、論理和、排他的論理和)、比較演算(=, <, >, ≦, ≧)、グループバイ演算、秘密等結合である。以下、記法も含めいくつかの演算について説明していく。
なお、テーブルに関する秘密計算は、テーブルを行列、テーブルの属性の値の列を列ベクトル、テーブルのレコードを行ベクトルとみなすことにより、実現することができる。
[秘匿化]
[x]をxを秘密分散で秘匿した値(以下、xのシェアという)とする。秘密分散方法には、任意の方法を用いることができる。例えば、GF(261-1)上のShamir秘密分散、Z2上の複製秘密分散を用いることができる。
[秘匿化]
[x]をxを秘密分散で秘匿した値(以下、xのシェアという)とする。秘密分散方法には、任意の方法を用いることができる。例えば、GF(261-1)上のShamir秘密分散、Z2上の複製秘密分散を用いることができる。
ある1つのアルゴリズムの中で複数の秘密分散方法を組み合わせて用いてもよい。この場合、適宜相互に変換するものとする。
また、N次元ベクトル→x=(x1, …, xN)に対して、[→x]=([x1], …, [xN])とする。つまり、[→x]は、→xの第n要素xnのシェア[xn]を第n要素とするベクトルである。同様に、M×N行列A=(am,n)(1≦m≦M, 1≦n≦N)に対しても、[A]をAの第(m, n)要素am,nのシェア[am,n]を第(m, n)要素とする行列とする。
なお、xを[x]の平文という。
xから[x]を求める方法(秘匿化)、[x]からxを求める方法(復元)として、具体的には、参考非特許文献1、参考非特許文献2に記載の方法がある。
(参考非特許文献2:Shamir, A., “How to share a secret”, Communications of the ACM, Vol.22, No.11, pp.612-613, 1979.)
[加算、減算、乗算、除算]
秘密計算による加算[x]+[y]は、[x], [y]を入力とし、[x+y]を出力する。秘密計算による減算[x]-[y]は、[x], [y]を入力とし、[x-y]を出力する。秘密計算による乗算[x]×[y](mul([x], [y])と表すこともある)は、[x], [y]を入力とし、[x×y]を出力する。秘密計算による除算[x]/[y](div([x], [y])と表すこともある)は、[x], [y]を入力とし、[x/y]を出力する。
(参考非特許文献2:Shamir, A., “How to share a secret”, Communications of the ACM, Vol.22, No.11, pp.612-613, 1979.)
[加算、減算、乗算、除算]
秘密計算による加算[x]+[y]は、[x], [y]を入力とし、[x+y]を出力する。秘密計算による減算[x]-[y]は、[x], [y]を入力とし、[x-y]を出力する。秘密計算による乗算[x]×[y](mul([x], [y])と表すこともある)は、[x], [y]を入力とし、[x×y]を出力する。秘密計算による除算[x]/[y](div([x], [y])と表すこともある)は、[x], [y]を入力とし、[x/y]を出力する。
加算、減算、乗算、除算の具体的方法として、参考非特許文献3、参考非特許文献4に記載の方法がある。
(参考非特許文献3:Ben-Or, M., Goldwasser, S. and Wigderson, A., “Completeness theorems for non-cryptographic fault-tolerant distributed computation”, Proceedings of the twentieth annual ACM symposium on Theory of computing, ACM, pp. 1-10, 1988.)
(参考非特許文献4:Gennaro, R., Rabin, M. O. and Rabin, T., “Simplied VSS and fast-track multiparty computations with applications to threshold cryptography”, Proceedings of the seventeenth annual ACM symposium on Principles of distributed computing, ACM, pp.101-111, 1998.)
[論理演算]
秘密計算による否定not[x]は、[x]を入力とし、[not(x)]を出力する。秘密計算による論理積and([x], [y])は、[x], [y]を入力とし、[and(x, y)]を出力する。秘密計算による論理和or([x], [y])は、[x], [y]を入力とし、[or(x, y)]を出力する。秘密計算による排他的論理和xor([x], [y])は、[x], [y]を入力とし、[xor(x, y)]を出力する。
(参考非特許文献3:Ben-Or, M., Goldwasser, S. and Wigderson, A., “Completeness theorems for non-cryptographic fault-tolerant distributed computation”, Proceedings of the twentieth annual ACM symposium on Theory of computing, ACM, pp. 1-10, 1988.)
(参考非特許文献4:Gennaro, R., Rabin, M. O. and Rabin, T., “Simplied VSS and fast-track multiparty computations with applications to threshold cryptography”, Proceedings of the seventeenth annual ACM symposium on Principles of distributed computing, ACM, pp.101-111, 1998.)
[論理演算]
秘密計算による否定not[x]は、[x]を入力とし、[not(x)]を出力する。秘密計算による論理積and([x], [y])は、[x], [y]を入力とし、[and(x, y)]を出力する。秘密計算による論理和or([x], [y])は、[x], [y]を入力とし、[or(x, y)]を出力する。秘密計算による排他的論理和xor([x], [y])は、[x], [y]を入力とし、[xor(x, y)]を出力する。
なお、論理演算は加算、減算、乗算、除算を組み合わせることで容易に構成することができる。
[比較演算]
秘密計算による等号判定=([x], [y]) (equal([x], [y])と表すこともある)は、[x], [y]を入力とし、x=yである場合は[1]を、それ以外の場合は[0]を出力する。秘密計算による比較<([x], [y])は、[x], [y]を入力とし、x<yである場合は[1]を、それ以外の場合は[0]を出力する。秘密計算による比較>([x], [y])は、[x], [y]を入力とし、x>yである場合は[1]を、それ以外の場合は[0]を出力する。秘密計算による比較≦([x], [y])は、[x], [y]を入力とし、x≦yである場合は[1]を、それ以外の場合は[0]を出力する。秘密計算による比較≧([x], [y])は、[x], [y]を入力とし、x≧yである場合は[1]を、それ以外の場合は[0]を出力する。
[比較演算]
秘密計算による等号判定=([x], [y]) (equal([x], [y])と表すこともある)は、[x], [y]を入力とし、x=yである場合は[1]を、それ以外の場合は[0]を出力する。秘密計算による比較<([x], [y])は、[x], [y]を入力とし、x<yである場合は[1]を、それ以外の場合は[0]を出力する。秘密計算による比較>([x], [y])は、[x], [y]を入力とし、x>yである場合は[1]を、それ以外の場合は[0]を出力する。秘密計算による比較≦([x], [y])は、[x], [y]を入力とし、x≦yである場合は[1]を、それ以外の場合は[0]を出力する。秘密計算による比較≧([x], [y])は、[x], [y]を入力とし、x≧yである場合は[1]を、それ以外の場合は[0]を出力する。
なお、比較演算は論理演算を組み合わせることで容易に構成することができる。
[グループバイ演算]
N次元ベクトル→x=(x1, …, xN)はソートされているものとする。つまり、x1, …, xNは、x1≦…≦xNまたはx1≧…≧xNを満たす。このとき、同じ値のxi, xi+1, …, xi+k-1(kは1以上の整数、ただし、xi-1≠xi, xi+k-1≠xi+k)を1つのグループとして、xi, …, xi+k-1に対して0, …, k-1を対応させることにより得られるベクトル→y=(y1, …, yN)を→y=group-by(→x)と表し、ベクトル→xからベクトル→yを得る演算のことをグループバイ演算という。例えば、ベクトル(1000, 1000, 1000, 3210, 4050)に対して、group-by((1000, 1000, 1000, 3210, 4050))=(0, 1, 2, 0, 0)となる。
[グループバイ演算]
N次元ベクトル→x=(x1, …, xN)はソートされているものとする。つまり、x1, …, xNは、x1≦…≦xNまたはx1≧…≧xNを満たす。このとき、同じ値のxi, xi+1, …, xi+k-1(kは1以上の整数、ただし、xi-1≠xi, xi+k-1≠xi+k)を1つのグループとして、xi, …, xi+k-1に対して0, …, k-1を対応させることにより得られるベクトル→y=(y1, …, yN)を→y=group-by(→x)と表し、ベクトル→xからベクトル→yを得る演算のことをグループバイ演算という。例えば、ベクトル(1000, 1000, 1000, 3210, 4050)に対して、group-by((1000, 1000, 1000, 3210, 4050))=(0, 1, 2, 0, 0)となる。
秘匿化したベクトル[→x]=([x1], …, [xN])に対しても同様にグループバイ演算を定義することができる。すなわち、N次元ベクトル→x=(x1, …, xN)(ただし、x1, …, xNは、x1≦…≦xNまたはx1≧…≧xNを満たす)のシェア[→x]に対して、N次元ベクトル→y=(y1, …, yN)(ただし、→yは、同じ値のxi, xi+1, …, xi+k-1(kは1以上の整数、ただし、xi-1≠xi, xi+k-1≠xi+k)を1つのグループとして、xi, …, xi+k-1に対して0, …, k-1を対応させることにより得られるベクトルである)のシェア[→y]を[→y]=group-by([→x])とする。
グループバイ演算の具体的方法として、特許文献1に記載の方法がある。
[秘密等結合]
TLをキー属性Keyと属性B1, …, BM(Mは1以上の整数)で構成されるテーブル、TRをキー属性Keyと属性C1, …, CN(Nは1以上の整数)で構成されるテーブルとする。このとき、テーブルTLとテーブルTRをキー属性Keyに関して等結合することにより得られるテーブルTCとは、キー属性Keyと属性B1, …, BMとキー属性Keyと属性C1, …, CNで構成されるテーブルのことである(図3~5参照)。
[秘密等結合]
TLをキー属性Keyと属性B1, …, BM(Mは1以上の整数)で構成されるテーブル、TRをキー属性Keyと属性C1, …, CN(Nは1以上の整数)で構成されるテーブルとする。このとき、テーブルTLとテーブルTRをキー属性Keyに関して等結合することにより得られるテーブルTCとは、キー属性Keyと属性B1, …, BMとキー属性Keyと属性C1, …, CNで構成されるテーブルのことである(図3~5参照)。
秘匿化したテーブル[TL], [TR]に対しても同様に等結合を定義することができる。すなわち、キー属性Keyと属性B1, …, BMで構成されるテーブルTLを秘匿化したテーブル[TL]とキー属性Keyと属性C1, …, CNで構成されるテーブルTRを秘匿化したテーブル[TR]に対して、テーブル[TL]とテーブル[TR]をキー属性Keyに関して秘密等結合することにより得られるテーブル[TC]とは、キー属性Keyと属性B1, …, BMとキー属性Keyと属性C1, …, CNで構成されるテーブルTCを秘匿化したテーブルのことである。ここで、[TC]=join([TL], [TR])と表す。
秘密等結合の具体的方法として、特許文献2に記載の方法がある。特許文献2に記載の方法は、テーブルTRのキー属性Keyの値が重複することを許容する方法である。
<第1実施形態>
以下、図7~図9を参照して秘密交差結合システム10について説明する。図7は、秘密交差結合システム10の構成を示すブロック図である。秘密交差結合システム10は、W個(Wは3以上の所定の整数)の秘密交差結合装置1001、…、100Wを含む。秘密交差結合装置1001、…、100Wは、ネットワーク800に接続しており、相互に通信可能である。ネットワーク800は、例えば、インターネットなどの通信網あるいは同報通信路などでよい。図8は、秘密交差結合装置100i(1≦i≦W)の構成を示すブロック図である。図9は、秘密交差結合システム10の動作を示すフローチャートである。
<第1実施形態>
以下、図7~図9を参照して秘密交差結合システム10について説明する。図7は、秘密交差結合システム10の構成を示すブロック図である。秘密交差結合システム10は、W個(Wは3以上の所定の整数)の秘密交差結合装置1001、…、100Wを含む。秘密交差結合装置1001、…、100Wは、ネットワーク800に接続しており、相互に通信可能である。ネットワーク800は、例えば、インターネットなどの通信網あるいは同報通信路などでよい。図8は、秘密交差結合装置100i(1≦i≦W)の構成を示すブロック図である。図9は、秘密交差結合システム10の動作を示すフローチャートである。
図8に示すように秘密交差結合装置100iは、第1テーブル生成部110iと、第2テーブル生成部120iと、第3テーブル生成部130iと、第4テーブル生成部140iと、記録部190iを含む。記録部190iを除く秘密交差結合装置100iの各構成部は、秘密計算で必要とされる演算、つまり、少なくとも秘匿化、加算、減算、乗算、除算、論理演算、比較演算、グループバイ演算、秘密等結合のうち、各構成部の機能を実現するうえで必要になる演算を実行できるように構成されている。本発明において個々の演算を実現するための具体的な機能構成は、例えば、特許文献1~2、参考非特許文献1~4のそれぞれで開示されるアルゴリズムを含む既存のアルゴリズムを実行できるような構成で十分であり、これらは従来的構成であるから詳細な説明については省略する。また、記録部190iは、秘密交差結合装置100iの処理に必要な情報を記録する構成部である。
W個の秘密交差結合装置100iによる協調計算によって、秘密交差結合システム10はマルチパーティプロトコルであるキー属性に関する交差結合の秘密計算を実現する。よって、秘密交差結合システム10の第1テーブル生成手段110(図示していない)は第1テーブル生成部1101、…、110Wで構成され、第2テーブル生成手段120(図示していない)は第2テーブル生成部1201、…、120Wで構成され、第3テーブル生成手段130(図示していない)は第3テーブル生成部1301、…、130Wで構成され、第4テーブル生成手段140(図示していない)は第4テーブル生成部1401、…、140Wで構成される。
TLをキー属性Keyと属性B1, …, BM(Mは1以上の整数)で構成されるテーブル、TRをキー属性Keyと属性C1, …, CN(Nは1以上の整数)で構成されるテーブルとする。また、T.AをテーブルTを構成する属性Aの値の列、T.Aj(jは1以上の整数)を列T.Aのj番目の要素を表すものとする。さらに、テーブルTLはキー属性Keyに関してソートされているものとし、αを列TL.Keyに含まれる同一の値の要素の数の最大値、LをテーブルTRに含まれるレコードの数とする。
秘密交差結合システム10は、テーブルTLを秘匿化したテーブル[TL]とテーブルTRを秘匿化したテーブル[TR]とからテーブルTLとテーブルTRをキー属性Keyに関して交差結合することにより得られるテーブルTCを秘匿化したテーブル[TC]を計算する。なお、テーブル[TL]やテーブル[TR]は予め記録部190iに記録しておいてもよい。
以下、図9に従い秘密交差結合システム10の動作について説明する。
S110において、第1テーブル生成手段110は、列[TL.Key]に含まれる同一の値の要素に対して0以上α-1以下の異なる値のシェアを対応させる形で生成した列を属性Key’の値のシェアの列としてテーブル[TL]に追加することにより、キー属性Keyと属性Key’, B1, …, BMで構成されるテーブルTL’を秘匿化したテーブル[TL’]を生成する。第1テーブル生成手段110は、例えば、group-by([TL.Key])により属性Key’の値のシェアの列を生成し、テーブル[TL’]を生成することができる。
S120において、第2テーブル生成手段120は、属性Key’の値のシェアの列をテーブル[TR]に追加することにより、キー属性Keyと属性Key’, C1, …, CNで構成されるテーブルTRi(i=0, …, α-1、ただし、1≦j≦Lを満たすjに対して、TR0.Key’jは0以上α-1以下の値であり、TRi.Key’j(i=1, …, α-1)はTRi.Key’j=(TRi-1.Key’j+1) mod αを満たす)を秘匿化したテーブル[TRi](i=0, …, α-1)を生成する。第2テーブル生成手段120は、例えば、乱数rjのシェア[rj]を生成し、[TR0.Key’j]= [rj] mod α, [TRi.Key’j]=([TRi-1.Key’j]+[1]) mod αとすることにより、テーブル[TRi](i=0, …, α-1)を生成することができる。なお、秘密計算におけるmodは計算コストがかかるため、例えば、以下のように減算を用いて計算するとよい。
[TRi.Key’j]=[TRi-1.Key’j]+[1]
if ([TRi.Key’j]==[α]) then [TRi.Key’j]=[0]
ここで、=は代入、==等しいか否かの条件判定を表す。
[TRi.Key’j]=[TRi-1.Key’j]+[1]
if ([TRi.Key’j]==[α]) then [TRi.Key’j]=[0]
ここで、=は代入、==等しいか否かの条件判定を表す。
S130において、第3テーブル生成手段130は、テーブル[TL’]とテーブル[TRi]とをキー属性Keyと属性Key’に関して秘密等結合することにより、テーブルTLとテーブルTRiをキー属性Keyと属性Key’に関して等結合することにより得られるテーブルTCiを秘匿化したテーブル[TCi](i=0, …, α-1)を生成する。第3テーブル生成手段130は、例えば、[TCi]=join([TL’], [TRi])により、テーブル[TCi](i=0, …, α-1)を生成することができる。
S140において、第4テーブル生成手段140は、テーブル[TC0]、…、テーブル[TCα-1]を秘密行結合することにより、テーブルTC0、…、テーブルTCα-1を行結合することにより得られるテーブルTCを秘匿化したテーブル[TC]を生成する。第4テーブル生成手段140は、例えば、平文での行結合と同様の方法により、テーブル[TC]を生成することができる。
ここで、βを列TR.Keyに含まれる同一の値の要素の数の最大値とする。テーブルTL、テーブルTRがキー属性Keyに関してソートされている場合、秘密交差結合システム10は、α≧βとなる場合の方がα<βとなる場合よりもより高速に秘密交差結合を実行することができる。そこで、α<βとなる場合には、予めテーブルTLとテーブルTRを入れ替える処理を行い、秘密交差結合を実行するようにしてもよい。
本発明の実施形態によれば、結合対象となる2つのテーブルのキー属性の値に重複がある場合であっても、2つのテーブルをキー属性に関して秘密交差結合することが可能となる。本発明の実施形態は、テーブル[TL]と同数のレコードを含むテーブル[TL’]とテーブル[TR]と同数のレコードを含むテーブル[TRi]とに対して秘密等結合を実行して秘密交差結合を実現する。この方法は、テーブル[TL]をキー属性の値に重複がないように分割して得られるα個のテーブル[TLi]とテーブル[TR]とに対して秘密等結合を実行して秘密交差結合を実現する方法(以下、従来の方法という)で生じる情報漏洩に関する問題を解決したものとなっている。また、本発明の実施形態の方法は、従来の方法に比べて計算に必要となるメモリサイズを削減することができる。具体的には、KをテーブルTLに含まれるレコードの数とすると、従来の方法では、レコード数がK×βであるテーブルとレコード数がLであるテーブルとの列結合を実行する必要があるが、本発明の実施形態の方法では、コード数がKであるテーブルとレコード数がLであるテーブルとの列結合をα回実行するだけであり、メモリサイズを大幅に削減することができる。
<補記>
上述した各装置の各部の処理をコンピュータにより実現してもよく、この場合は各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムを図10に示すコンピュータ2000の記録部2020に読み込ませ、演算処理部2010、入力部2030、出力部2040、補助記録部2025などを動作させることにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
<補記>
上述した各装置の各部の処理をコンピュータにより実現してもよく、この場合は各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムを図10に示すコンピュータ2000の記録部2020に読み込ませ、演算処理部2010、入力部2030、出力部2040、補助記録部2025などを動作させることにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
本発明の装置は、例えば単一のハードウェアエンティティとして、ハードウェアエンティティの外部から信号を入力可能な入力部、ハードウェアエンティティの外部に信号を出力可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、演算処理部であるCPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD-ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。
ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行、処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成部)を実現する。つまり、本発明の実施形態の各構成部は、処理回路(Processing Circuitry)により構成されてもよい。
既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体は、例えば、非一時的な記録媒体であり、具体的には、磁気記録装置、光ディスク等である。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の非一時的な記憶装置である補助記録部2025に格納する。そして、処理の実行時、このコンピュータは、自己の非一時的な記憶装置である補助記録部2025に格納されたプログラムを記録部2020に読み込み、読み込んだプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを記録部2020に読み込み、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
Claims (4)
- TLをキー属性Keyと属性B1, …, BM(Mは1以上の整数)で構成されるテーブル、TRをキー属性Keyと属性C1, …, CN(Nは1以上の整数)で構成されるテーブルとし、
T.AをテーブルTを構成する属性Aの値の列、T.Aj(jは1以上の整数)を列T.Aのj番目の要素を表すものとし、
テーブルTLはキー属性Keyに関してソートされているものとし、
αを列TL.Keyに含まれる同一の値の要素の数の最大値、LをテーブルTRに含まれるレコードの数とし、
3個以上の秘密交差結合装置で構成され、テーブルTLを秘匿化したテーブル[TL]とテーブルTRを秘匿化したテーブル[TR]とからテーブルTLとテーブルTRをキー属性Keyに関して交差結合することにより得られるテーブルTCを秘匿化したテーブル[TC]を計算する秘密交差結合システムであって、
列[TL.Key]に含まれる同一の値の要素に対して0以上α-1以下の異なる値のシェアを対応させる形で生成した列を属性Key’の値のシェアの列としてテーブル[TL]に追加することにより、キー属性Keyと属性Key’, B1, …, BMで構成されるテーブルTL’を秘匿化したテーブル[TL’]を生成する第1テーブル生成手段と、
属性Key’の値のシェアの列をテーブル[TR]に追加することにより、キー属性Keyと属性Key’, C1, …, CNで構成されるテーブルTRi(i=0, …, α-1、ただし、1≦j≦Lを満たすjに対して、TR0.Key’jは0以上α-1以下の値であり、TRi.Key’j(i=1, …, α-1)はTRi.Key’j=(TRi-1.Key’j+1) mod αを満たす)を秘匿化したテーブル[TRi](i=0, …, α-1)を生成する第2テーブル生成手段と、
テーブル[TL’]とテーブル[TRi]とをキー属性Keyと属性Key’に関して秘密等結合することにより、テーブルTLとテーブルTRiをキー属性Keyと属性Key’に関して等結合することにより得られるテーブルTCiを秘匿化したテーブル[TCi](i=0, …, α-1)を生成する第3テーブル生成手段と、
テーブル[TC0]、…、テーブル[TCα-1]を秘密行結合することにより、テーブルTC0、…、テーブルTCα-1を行結合することにより得られるテーブルTCを秘匿化したテーブル[TC]を生成する第4テーブル生成手段と、
を含む秘密交差結合システム。 - TLをキー属性Keyと属性B1, …, BM(Mは1以上の整数)で構成されるテーブル、TRをキー属性Keyと属性C1, …, CN(Nは1以上の整数)で構成されるテーブルとし、
T.AをテーブルTを構成する属性Aの値の列、T.Aj(jは1以上の整数)を列T.Aのj番目の要素を表すものとし、
テーブルTLはキー属性Keyに関してソートされているものとし、
αを列TL.Keyに含まれる同一の値の要素の数の最大値、LをテーブルTRに含まれるレコードの数とし、
3個以上の秘密交差結合装置で構成され、テーブルTLを秘匿化したテーブル[TL]とテーブルTRを秘匿化したテーブル[TR]とからテーブルTLとテーブルTRをキー属性Keyに関して交差結合することにより得られるテーブルTCを秘匿化したテーブル[TC]を計算する秘密交差結合システムの中の秘密交差結合装置であって、
列[TL.Key]に含まれる同一の値の要素に対して0以上α-1以下の異なる値のシェアを対応させる形で生成した列を属性Key’の値のシェアの列としてテーブル[TL]に追加することにより、キー属性Keyと属性Key’, B1, …, BMで構成されるテーブルTL’を秘匿化したテーブル[TL’]を生成する第1テーブル生成部と、
属性Key’の値のシェアの列をテーブル[TR]に追加することにより、キー属性Keyと属性Key’, C1, …, CNで構成されるテーブルTRi(i=0, …, α-1、ただし、1≦j≦Lを満たすjに対して、TR0.Key’jは0以上α-1以下の値であり、TRi.Key’j(i=1, …, α-1)はTRi.Key’j=(TRi-1.Key’j+1) mod αを満たす)を秘匿化したテーブル[TRi](i=0, …, α-1)を生成する第2テーブル生成部と、
テーブル[TL’]とテーブル[TRi]とをキー属性Keyと属性Key’に関して秘密等結合することにより、テーブルTLとテーブルTRiをキー属性Keyと属性Key’に関して等結合することにより得られるテーブルTCiを秘匿化したテーブル[TCi](i=0, …, α-1)を生成する第3テーブル生成部と、
テーブル[TC0]、…、テーブル[TCα-1]を秘密行結合することにより、テーブルTC0、…、テーブルTCα-1を行結合することにより得られるテーブルTCを秘匿化したテーブル[TC]を生成する第4テーブル生成部と、
を含む秘密交差結合装置。 - TLをキー属性Keyと属性B1, …, BM(Mは1以上の整数)で構成されるテーブル、TRをキー属性Keyと属性C1, …, CN(Nは1以上の整数)で構成されるテーブルとし、
T.AをテーブルTを構成する属性Aの値の列、T.Aj(jは1以上の整数)を列T.Aのj番目の要素を表すものとし、
テーブルTLはキー属性Keyに関してソートされているものとし、
αを列TL.Keyに含まれる同一の値の要素の数の最大値、LをテーブルTRに含まれるレコードの数とし、
3個以上の秘密交差結合装置で構成される秘密交差結合システムが、テーブルTLを秘匿化したテーブル[TL]とテーブルTRを秘匿化したテーブル[TR]とからテーブルTLとテーブルTRをキー属性Keyに関して交差結合することにより得られるテーブルTCを秘匿化したテーブル[TC]を計算する秘密交差結合方法であって、
前記秘密交差結合システムが、列[TL.Key]に含まれる同一の値の要素に対して0以上α-1以下の異なる値のシェアを対応させる形で生成した列を属性Key’の値のシェアの列としてテーブル[TL]に追加することにより、キー属性Keyと属性Key’, B1, …, BMで構成されるテーブルTL’を秘匿化したテーブル[TL’]を生成する第1テーブル生成ステップと、
前記秘密交差結合システムが、属性Key’の値のシェアの列をテーブル[TR]に追加することにより、キー属性Keyと属性Key’, C1, …, CNで構成されるテーブルTRi(i=0, …, α-1、ただし、1≦j≦Lを満たすjに対して、TR0.Key’jは0以上α-1以下の値であり、TRi.Key’j(i=1, …, α-1)はTRi.Key’j=(TRi-1.Key’j+1) mod αを満たす)を秘匿化したテーブル[TRi](i=0, …, α-1)を生成する第2テーブル生成ステップと、
前記秘密交差結合システムが、テーブル[TL’]とテーブル[TRi]とをキー属性Keyと属性Key’に関して秘密等結合することにより、テーブルTLとテーブルTRiをキー属性Keyと属性Key’に関して等結合することにより得られるテーブルTCiを秘匿化したテーブル[TCi](i=0, …, α-1)を生成する第3テーブル生成ステップと、
前記秘密交差結合システムが、テーブル[TC0]、…、テーブル[TCα-1]を秘密行結合することにより、テーブルTC0、…、テーブルTCα-1を行結合することにより得られるテーブルTCを秘匿化したテーブル[TC]を生成する第4テーブル生成ステップと、
を含む秘密交差結合方法。 - 請求項2に記載の秘密交差結合装置としてコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2022/027822 WO2024013974A1 (ja) | 2022-07-15 | 2022-07-15 | 秘密交差結合システム、秘密交差結合装置、秘密交差結合方法、プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2022/027822 WO2024013974A1 (ja) | 2022-07-15 | 2022-07-15 | 秘密交差結合システム、秘密交差結合装置、秘密交差結合方法、プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024013974A1 true WO2024013974A1 (ja) | 2024-01-18 |
Family
ID=89536321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2022/027822 WO2024013974A1 (ja) | 2022-07-15 | 2022-07-15 | 秘密交差結合システム、秘密交差結合装置、秘密交差結合方法、プログラム |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024013974A1 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014211679A (ja) * | 2013-04-17 | 2014-11-13 | 株式会社東芝 | データベースシステム |
-
2022
- 2022-07-15 WO PCT/JP2022/027822 patent/WO2024013974A1/ja unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014211679A (ja) * | 2013-04-17 | 2014-11-13 | 株式会社東芝 | データベースシステム |
Non-Patent Citations (1)
Title |
---|
IKARASHI, DAI; HAMADA, KOKI; KIKUCHI, RYO: "We haven't Found the Most Important Thing: -Designs and Implementations of Secure Outer-join Protocols-", PROCEEDINGS OF COMPUTER SECURITY SYMPOSIUM 2018; OCTOBER 22-25, 2018, vol. 2018, 15 October 2018 (2018-10-15), pages 1221 - 1228, XP009552668 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fu et al. | DIPOR: An IDA-based dynamic proof of retrievability scheme for cloud storage systems | |
CN111226209B (zh) | 在基于区块链的系统中执行映射迭代 | |
Macedo et al. | A practical framework for privacy-preserving NoSQL databases | |
JP2023508088A (ja) | ブロックチェーンオーバーレイネットワークへの鍵のマッピング | |
JP6605746B2 (ja) | 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム | |
Gopal et al. | Evaluating RC-interconnect using moment-matching approximations | |
Yang et al. | Assure deletion supporting dynamic insertion for outsourced data in cloud computing | |
US9460302B2 (en) | Method and system for shielding data in transit and data in memory | |
US20220413807A1 (en) | Secure random number generation system, secure computation apparatus, secure random number generation method, and program | |
Kaci et al. | Toward a big data approach for indexing encrypted data in cloud computing | |
WO2024013974A1 (ja) | 秘密交差結合システム、秘密交差結合装置、秘密交差結合方法、プログラム | |
Marcelín-Jiménez et al. | On the complexity and performance of the information dispersal algorithm | |
Kumar et al. | Data security and encryption technique for cloud storage | |
Tahmasebi et al. | Private function computation | |
JP6321216B2 (ja) | 行列・キー生成装置、行列・キー生成システム、行列結合装置、行列・キー生成方法、プログラム | |
WO2024018504A1 (ja) | クライアント装置、秘密テーブル管理システム、レコード登録要求生成方法、レコード登録方法、処理要求実行方法、プログラム | |
WO2023233569A1 (ja) | 秘密検索システム、秘密検索装置、秘密検索方法、プログラム | |
Duan et al. | Practical distributed privacy-preserving data analysis at large scale | |
WO2023228273A1 (ja) | 秘密属性選択システム、秘密属性選択装置、秘密属性選択方法、プログラム | |
WO2023188261A1 (ja) | 秘密グローバルモデル計算装置、ローカルモデル登録方法、プログラム | |
Bean et al. | PUF-based Digital Money with Propagation-of-Provenance and Offline Transfers between Two Parties | |
WO2023188259A1 (ja) | 秘密グローバルモデル計算装置、秘密グローバルモデル計算システム構成方法、プログラム | |
Li et al. | An enterprise composite blockchain construction method for business environment | |
WO2023276142A1 (ja) | 秘密等結合装置、秘密等結合方法、およびプログラム | |
Mouktonglang et al. | Convergence analysis of two parallel methods for common variational inclusion problems involving demicontractive mappings |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22951183 Country of ref document: EP Kind code of ref document: A1 |