WO2023276142A1 - 秘密等結合装置、秘密等結合方法、およびプログラム - Google Patents
秘密等結合装置、秘密等結合方法、およびプログラム Download PDFInfo
- Publication number
- WO2023276142A1 WO2023276142A1 PCT/JP2021/025131 JP2021025131W WO2023276142A1 WO 2023276142 A1 WO2023276142 A1 WO 2023276142A1 JP 2021025131 W JP2021025131 W JP 2021025131W WO 2023276142 A1 WO2023276142 A1 WO 2023276142A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- key
- subkey
- secret
- keys
- column
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 37
- 238000010168 coupling process Methods 0.000 claims description 36
- 238000005859 coupling reaction Methods 0.000 claims description 35
- 238000004364 calculation method Methods 0.000 claims description 34
- 230000008878 coupling Effects 0.000 claims description 25
- 230000003362 replicative effect Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 29
- 230000000873 masking effect Effects 0.000 description 17
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 16
- 229910052782 aluminium Inorganic materials 0.000 description 16
- 238000010586 diagram Methods 0.000 description 16
- 230000015654 memory Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 235000013361 beverage Nutrition 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 235000015123 black coffee Nutrition 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 229910052500 inorganic mineral Inorganic materials 0.000 description 1
- 239000011707 mineral Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 235000015205 orange juice Nutrition 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Definitions
- the present invention relates to secure computation technology, and more particularly to secure equijoin technology for equijoining two tables while keeping the information in the tables confidential.
- Japanese Patent Application Laid-Open No. 2002-200000 discloses a technique for equijoining two tables by using a selected element (key) of a key column as a key attribute while keeping the information of the tables confidential.
- Patent Document 1 can also be applied when the key column of one of the two tables to be equijoined includes multiple keys (key attributes) that have the same value.
- the other table is divided into KL tables that do not contain keys with mutually identical key columns.
- KL maximum number of identical keys included in the key column of one table
- the other table is divided into KL tables that do not contain keys with mutually identical key columns.
- the key column of one of the two tables to be equijoined includes multiple keys with the same value
- the key column of the other table also includes multiple keys with the same value
- a first masking table that is confidential information of a first table including a first key column having a plurality of first keys and a first arbitrary element column having a plurality of first arbitrary elements; and a plurality of second
- the following processing is performed on the second anonymization table, which is the confidential information of the second table including a second key string having a key and a second arbitrary element string having a plurality of second arbitrary elements.
- the first subkey column addition unit obtains the first anonymized addition table, which is the confidential information of the first additional table in which the first subkey column is added to the first table, by secret calculation using the first anonymization table.
- the first subkey string has a plurality of first subkeys, and each first key is associated with one of the first subkeys.
- the maximum value of the number of mutually equivalent first keys included in the first key string is KL, and KL is an integer of 2 or more.
- First keys having the same value are associated with first subkeys having different values.
- a second subkey column addition unit obtains a second anonymized addition table, which is confidential information of the second addition table in which the second subkey column is added to the third table, by secret calculation using the second anonymization table.
- the third table is a table in which a plurality of replicated records obtained by replicating each record of the second table K times (where K ⁇ KL) are added to the second table.
- Each record of the second table includes each second key and each second optional element.
- a third table has a third key column with a plurality of third keys containing the second key and duplicates of the second key, and a plurality of third optional elements containing second optional elements and duplicates of the second optional element. and a third optional element column.
- the second subkey column has a plurality of second subkeys.
- Each of the third keys is associated with one of the second subkeys.
- the third key string includes a third key representing the same common value as any first key
- at least part of the third key representing the common value has the first key associated with the first key representing the common value.
- a second subkey having the same value as the first subkey is associated.
- the secret equivalence joining unit sets the combination of the first key and the first subkey as the key attribute of the first addition table by secret calculation using the first concealment addition table and the second concealment addition table, and the third key and the second subkey as the key attribute of the second additional table, to obtain a concealed join table which is confidential information of the join table in which the first additional table and the second additional table are equally joined.
- FIG. 1 is a block diagram illustrating the configuration of the secret equi-coupling system of the embodiment.
- FIG. 2 is a block diagram illustrating the configuration of the secret coupling device of the embodiment.
- FIG. 3 is a flow diagram for illustrating the secret equijoin method of an embodiment.
- FIG. 4A is a diagram for exemplifying the table 110 (first table) to be equijoined.
- FIG. 4B is a diagram for exemplifying the table 120 (second table) to be equijoined.
- FIG. 5A is a diagram for illustrating an additional table 130 (first additional table) obtained by adding a subkey column (first subkey column) to the table 110 (first table).
- FIG. 1 is a block diagram illustrating the configuration of the secret equi-coupling system of the embodiment.
- FIG. 2 is a block diagram illustrating the configuration of the secret coupling device of the embodiment.
- FIG. 3 is a flow diagram for illustrating the secret equijo
- FIG. 5B is a diagram for exemplifying a table 140 (third table) in which a plurality of duplicate records obtained by duplicating each record of the table 120 (second table) are added to the table 120.
- FIG. FIG. 6 is a diagram for illustrating an additional table 150 (second additional table) in which the subkey column 151 (second subkey column) is added to the table 140 (third table).
- 7A to 7C are diagrams for exemplifying equi-join target tables.
- FIG. 7D is a diagram illustrating a table obtained by equijoining the tables of FIGS. 7A to 7C.
- FIG. 8 is a diagram for illustrating an equijoin.
- FIG. 9A is a diagram for illustrating a table (first additional table) obtained by adding a sequence number (SeqNo) column (first subkey column) to the table (first table) of FIG. 7B.
- FIG. 9B is a table (second FIG. 10 is a diagram for illustrating an additional table);
- FIG. 10 shows a table in which the table (first additional table) in FIG. 9A and the table (second additional table) in FIG.
- FIG. 4 is a diagram for illustration;
- FIG. 11 is a block diagram illustrating the hardware configuration of the secret coupling device of the embodiment.
- TX A row X in table T is denoted as TX.
- the jth record of table T is denoted by Tj.
- j is an integer greater than or equal to 0.
- the value of row (column) X of the j-th record of table T is denoted by TX j .
- a cross-join also called a cross join, is a table that associates records TL j of table TL with records TL p of table TR for combinations of all records of two input tables TL and table TR. It is a table join method to get TLR.
- j is an integer greater than or equal to
- p is an integer greater than or equal to
- LRN is It is a positive integer representing the number of records in table TL
- RRN is a positive integer representing the number of records in table TR.
- the cross-join result table TLR is a Cartesian product of the records of table TL and table TR (TL 0 ,...,TL LRN-1 and TR 0 ,...,TR RRN-1 ).
- the number of records in table TLR resulting from cross-joining table TL and table TR is LRN*RRN.
- "*" is an operator representing a product. In an actual usage scene, only records satisfying certain conditions are often extracted from this table TRL and used.
- Each record (that is, each field) of [TX] stores an encrypted value.
- Each column (that is, each field) of [T j ] stores an encrypted value.
- the secure equi-coupling system 1 of this embodiment includes N secure equi-coupling devices 10-0, . . . , 10-(N-1). , 10-(N-1) of this embodiment are communicably connected via a network.
- a concealment table (first concealment table) [TL] and a concealment table (second concealment table) [TR] to be combined with secrets, etc. are prepared for each secrets combining device 10-n (FIG. 2). is input to the input unit 11-n and stored in the storage unit 12-n.
- FIG. 4A illustrates an anonymization table [TL].
- Anonymization table [TL] is the confidential information of table TL (first table, left table).
- Table TL has a key column TL.Key (first key column) with multiple (LRN) keys TL.Key 0 ,...,TL.Key LRN-1 (first key) and multiple ( LRN) arbitrary elements TL.V(v) 0 ,...,TL.V(v) and an arbitrary element sequence TL.V(v) with LRN-1 (the first arbitrary element).
- v 0,...,LVN-1, and LVN is a positive integer representing the number of arbitrary element sequences.
- the j-th record TL j of the table TL contains a key TL.Key j and LVN arbitrary elements TL.V(0) j ,...,TL.V(LVN-1) j .
- the number of records in the table TL is LRN, and LRN is an integer of 2 or more in this embodiment.
- the anonymization table [TL] exemplified in this embodiment has a plurality of (LRN) anonymization keys [TL.Key 0 ],...,[TL.Key LRN-1 ]. Any masking key sequence [TL.Key] and multiple (LRN) masking optional elements [TL.V(v) 0 ],...,[TL.V(v) LRN-1 ] and the element sequence [TL.V(v)].
- a masking record [TL j ] consists of a masking key [TL.Key j ] and LVN masking optional elements [TL.V(0) j ],...,[TL.V(LVN-1) j ] (Fig. 4A).
- the anonymization table [TL] of this embodiment is sorted based on the key string TL.Key of the anonymization key string [TL.Key]. This sorting may be performed before anonymization, or may be performed by secure calculation after anonymization.
- a sorting method based on secure computation is known, and is disclosed in Reference 2, for example.
- Reference 2 Dai Igarashi, Koki Hamada, Ryo Kikuchi, Koji Senda, “Design and implementation of ultra-high-speed secure computation sorting: The day when secure computation becomes a script language,” CSS, 2017.
- the key string TL.Key (first key string) of the table TL includes 2 or more and KL or less mutually equivalent keys (first keys). That is, the key string TL.Key includes a plurality of keys with duplicate values, and the maximum number of duplications (maximum number of mutually identical first keys included in the first key string) is KL. KL is an integer of 2 or more. The value of this KL is also stored in the storage unit 12-n in association with the anonymization table [TL].
- FIG. 4B illustrates an anonymization table [TR].
- Anonymization table [TR] is the confidential information of table TR (second table, right table).
- Table TR has a key string TR.Key (second key string) with multiple (RRN) keys TR.Key 0 ,...,TR.Key RRN-1 (second key) and multiple ( RRN) arbitrary elements TR.V(w) 0 ,...,TR.V(w) RRN-1 (second arbitrary element) and an arbitrary element sequence TR.V(w).
- w 0,...,RVN-1, and RVN is a positive integer representing the number of arbitrary element sequences.
- the p-th record TR p of the table TR includes a key TR.Key p and RVN arbitrary elements TR.V(0) p ,...,TR.V(RVN-1) p .
- the number of records in table TR is RRN, and RRN is an integer of 2 or more in this embodiment.
- the anonymization table [TR] exemplified in this embodiment has a plurality of (RRN) anonymization keys [TR.Key 0 ],...,[TR.Key RRN-1 ]. Any masking key sequence [TR.Key] and multiple (RRN) masking optional elements [TR.V(w) 0 ],...,[TR.V(w) RRN-1 ] and the element sequence [TR.V(w)].
- a ciphering record [TR p ] consists of a ciphering key [TR.Key p ] and RVN ciphering optional elements [TR.V(0) p ],...,[TR.V(RVN-1) p ] and (FIG. 4B).
- the anonymization table [TR] of this embodiment is sorted based on the key string TR.Key of the anonymization key string [TR.Key]. This sorting may be performed before anonymization, or may be performed by secure calculation after anonymization.
- the key string TR.Key (second key string) of the table TR includes two or more and KR or less mutually equivalent keys (second keys). That is, the key string TR.Key includes a plurality of keys with duplicate values, and the maximum number of duplications (the maximum number of second keys having the same value contained in the second key string) is KR. KR is an integer of 2 or more. This KR value is also stored in the storage unit 12-n in association with the anonymization table [TR].
- Step S13-n The secret equijoining method of this embodiment will be described with reference to FIG. ⁇ Processing of Subkey Column Adding Unit 13-n (Step S13-n)>>>
- the subkey string addition unit 13-n (first subkey string addition unit) of each secret coupling device 10-n (FIG. 2) reads out an anonymization table (first anonymization table) [TL ] to create a masked additional table [TLs ] (first anonymization addition table) is obtained and output (FIG. 5A).
- the arbitrary element string TLs.V(v) of the additional table TLs is the arbitrary element string TL.V(v) of the table TL (Fig.
- the subkey column TLs.S has multiple (LRN) subkeys TLs.S 0 ,...,TLs.S LRN-1 (first subkey). .
- Each of the keys TL.Key 0 ,...,TL.Key LRN-1 (first key) has one of the subkeys TLs.S 0 ,...,TLs.S LRN-1 (first subkey) are associated.
- a key TL.Key j is associated with a subkey TLs.S j .
- an anonymization key [TL.Key j ] has an anonymization subkey [TLs.S j ]. are associated with each other.
- the key string TL.Key (first key string) includes two to KL mutually equivalent keys (first keys).
- first keys Among the keys TL.Key 0 , .
- the anonymization keys having the same restoration value (decryption value) have different values.
- Anonymization subkey [TLs.S j ] which is confidential information of subkey TLs.S j , is associated.
- Reference 3 Koki Hamada, Dai Igarashi, Koji Senda, “Aggregate function median calculation algorithm for secure computation”, In CSS, 2012.
- the secret grouping operation is a method of grouping by the value of the column [Key] while keeping the table [T] secret, and obtaining the median value for each group.
- Reference 3 describes a method of assigning a secret value of an increment value starting from 0 to the secret value [Key j ] of the same Key j in the table [T] that is secretly sorted based on the Key column. (calculation of stairs +).
- Step S14-n ⁇ Processing of Subkey Column Adding Unit 14-n (Step S14-n)>>>>>
- the subkey string addition unit 14-n (second subkey string addition unit) of each secret coupling device 10-n uses the anonymization table (second anonymization table) [TR] read from the storage unit 12-n.
- Anonymized additional table [TRs] (second Anonymization addition table) is obtained and output (FIGS. 5B and 6).
- the value of KL is read from the storage unit 12-n and used.
- each record TR p in table TR (second table) has a key TR.Key p (second key) and optional elements TR.V(0) p ,...,TR.V(RVN-1) p (second optional element).
- each [TR p ] of [TR] contains [TR.Key p ] and [TR.V(0) p ],...,[TR.V(RVN-1) p ].
- the optional element string TRs.V(v) of the additional table TRs is the optional element string TRc.V(v) (third arbitrary element string) of the table TRc (FIG.
- Subkey column TRs.S (second subkey column) of additional table TRs has multiple (RRN*K) subkeys TRs.S 0 ,...,TRs.S RRN*K-1 ( second subkey).
- the keys TRs.Key 0 .
- the ciphering keys [TRs.Key 0 ],..., [TRs.Key RRN*K-1 ] are associated with anonymized subkeys [TRs.S i ], which are secret information of subkeys TRs.S i with different values.
- the key column TRs.Key (third key column, TRc.Key) of the additional table TRs (second additional table) (FIG. 6) is any key TLs.Key of the additional table TLs (FIG. 5A). If TRs.Key i (third key, TR.Key i ) representing the same value (common value) as j (first key, TL.Key j ) is included, TRs.Key i (third Key, TR.Key i ) has a subkey TLs.S j (first subkey) corresponding to key TLs.Key j (first key, TL.Key j ) representing the common value. is associated with the subkey TRs.S i (second subkey).
- a key TLs.Key j ( [TRs.S i ], which is the confidential information of the subkey TRs.S i (second subkey) with the same value as the subkey TLs.S j (first subkey) associated with the first key, TL.Key j ), is associated be done.
- the key column TRs.Key (third key column, TRc.Key) of the additional table TRs (second additional table) (FIG. 6) represents the common value TRs.Key i (third key, TR.Key i ), then the value of any subkey TLs.S j (first subkey) associated with the key TLs.Key j (first key, TL.Key j ) representing the common value (FIG.
- subkeys TRs.S 0 ,...,TRs.S RRN*K ⁇ 1 (second subkey) associated with TRs.Key i (third key, TR.Key i ) representing the common value is equivalent to either
- any masking subkey [ TLs
- Subkey TRs.S that is the decrypted value (decrypted value) of the ciphered subkeys [TRs.S 0 ],...,[TRs.S RRN*K-1 ] associated with a certain [TRs.Key i ] Equivalent to any of 0 ,...,TRs.S RRN*K-1 (second subkey).
- (c-1) can be realized by duplicating the anonymization record [TR idk ] of the anonymization table [TR] as [TRs i ].
- the subkey column addition unit 14-n performs anonymization by secret calculation using the anonymization table [TR] (FIG. 4B). It is only necessary to obtain the additional table [TRs] (FIG. 6), and it is not necessary to obtain the anonymized table [TRc] (FIG. 5B) obtained by anonymizing the table TRc. That is, the subkey string adding unit 14-n may directly obtain [TRs] from [TR], obtain [TRc] from [TR], and further obtain [TRs] from [TRc].
- the secret combining unit 15-n of each secret combining device 10-n uses the concealment addition table [TLs] (first concealment addition table) (FIG. 5A) obtained as described above and the concealment addition table [ TRs ] (second masking additional table) (Fig.
- an encrypted join table [ETRL] which is confidential information of the join table ETRL obtained by equi-joining the additional table TLs (first additional table) and the additional table TRs (second additional table), is obtained and output.
- the value of the set (TRs.Key i , TRs.S i ), which is the key attribute of the additional table TRs (second additional table), does not uniquely identify each record TRs j .
- the pairs of additional table TRs (TRs.Key 0 , TRs.S 0 ), ..., (TRs.Key RRN*K-1 , TRs.S RRN*K-1 ) contain mutually equivalent pairs (both tuples with overlapping elements) exist. In this way, when there is no duplication in the key attributes of one of the two tables to be equijoined and only the key attributes of the other table are duplicated, a method of performing an equijoin by secure calculation is disclosed in the patent document 1.
- the secret joiner 15-n performs secret calculation using the anonymization addition table [TLs] and the anonymization addition table [TRs]. Get [ETRL] and output it.
- Function join: [ETRL] join(([TLs.Key],[TLs.S],[TLs.V(0)],...,[TLs.V(LVN-1)]), ([TRs.Key],[TRs.S],[TRs.V(0)],...,[TRs.V(RVN-1)]), ([TLs.Key],[TLs.S]), ([TRs.Key],[TRs.S]))
- the obtained anonymized connection table [ETRL] may be used for other processing (for example, secret equal sign processing and restoration processing) in the secret equal sign device 10-n, or may be output from the output unit 16-n. may be used for processing in other devices.
- the anonymization table in FIG. 7A is confidential information of a beverage product name table having "ID" as a key column and "beverage product name” as an optional element column (hereinafter referred to as "anonymized beverage product name table").
- the anonymization table in FIG. 7C is anonymization information of a container type table with ID as a key column and "container” as an optional element column (hereinafter referred to as “anonymization container type table”).
- It has "PET bottle”, “aluminum can”, and "aluminum can” as elements.
- the key columns corresponding to the anonymized beverage product name table in FIG. 7A do not have elements (keys) with the same value.
- the key columns corresponding to the anonymization capacity table of FIG. 7B have the same value element "1000”
- the key columns corresponding to the anonymization container type table of FIG. 7C have the same value elements "1000" and "4050". have. Therefore, as exemplified in FIG. 8, (1) first, using the method of the present embodiment, a secret, etc. join is performed between the anonymization capacity table of FIG. 7B and the anonymization container type table of FIG. 7C to create an anonymization connection table. Next, (2) the anonymization connection table and the anonymization drink product name table in FIG. 7A are joined together for confidentiality, etc.
- an anonymized additional table (anonymized “capacity + sequence number” table) [TLs] illustrated in FIG. 9A is can get.
- an anonymization addition table (anonymized “capacity type + sequence number” table) [TRs ] is obtained.
- the subkey column addition unit 13-n performs a secret calculation using an anonymization table (first anonymization table) [TL] to obtain a subkey column TLs.S (first subkey column) is added to the table TL (first table) to obtain an anonymization additional table [TLs] (first anonymization addition table), which is confidential information of the additional table TLs (first additional table) (step S13-n). Also, the subkey column adding unit 14-n duplicates the record of TR with the subkey column TRs.S (second subkey column) by secret calculation using the masking table (second masking table) [TR].
- An anonymization addition table [TRs] (second anonymization addition table), which is confidential information of the additional table TRs (second addition table) added to the obtained table TRc (third table), is obtained (step S14-n). Then, the secret combination unit 15-n performs secret calculation using the anonymization addition table [TLs] (first anonymization addition table) and the anonymization addition table [TRs] (second anonymization addition table),
- the confidential combination unit 15-n creates an encrypted combination table [ETRL ] can be obtained. In this case, it is not necessary to divide the table before the secret join and join the tables after the secret join, so that the two tables can be joined at high speed while keeping the table information confidential.
- the maximum value KR of the number of mutually equivalent keys (second keys) contained in the key column TR.Key (second key column) of the table TR (second table, right table) is the table TL (first table , left table), the number of mutually equivalent keys contained in the key string TL.Key (first key string) is equal to or less than the maximum value KL (KR ⁇ KL), processing can be performed at a higher speed. Therefore, the anonymization table (first anonymization table) [TL] and the anonymization table (second anonymization table) [TR] are stored in the storage unit 12-n so that KR ⁇ KL. preferable.
- the values of KL and KR are stored in the storage unit 12-n, but if at least one of them is known, the known value is not stored in the storage unit 12-n.
- the anonymization table (first anonymization table) [TL] and the anonymization table (second anonymization table) [TR] are stored in the storage unit 12-n so that KR ⁇ KL. You can process it faster. In an environment in which such a situation is not guaranteed, processing may be performed to replace the anonymization table so that KR ⁇ KL.
- the description will focus on the differences from the first embodiment, and the same reference numbers will be used for the items that have already been described to simplify the description.
- the secret equi-coupling system 2 of this embodiment includes N secret equi-coupling devices 20-0, . . . , 20-(N-1).
- the secret equijoining method of this embodiment will be described with reference to FIG. ⁇ Process of table resetting unit 221-n (step S221-n)>>
- the table resetting unit 221-n stores KR (maximum number of second keys with the same value included in the second key string) and KL (the number of second keys with the same value included in the first key string) from the storage unit 12-n. (maximum number of 1 keys), and if KR is greater than KL, anonymization table [TL] (first anonymization table) and anonymization table [TR] stored in storage unit 12-n. (second anonymization table) and stored in the storage unit 12-n.
- TL.Key (first key string) having multiple (LRN) keys TL.Key 0 ,...,TL.Key LRN-1 (first key) and multiple (LRN ) arbitrary elements TL.V(v) 0 ,...,TL.V(v) LRN-1 (first arbitrary element) and an arbitrary element sequence TL.V(v) with 1 table, left table) and a key string TR.Key (second key string) with multiple (RRN) keys TR.Key 0 ,...,TR.Key RRN-1 (second key) and an arbitrary element string TR.V(w) having multiple (RRN) arbitrary elements TR.V(w) 0 ,...,TR.V(w) RRN-1 (second arbitrary element) and each of which has a plurality of (RRN) keys TR.Key 0 ,...,TR.Key RRN-1 (second key) as a key column TR.
- Optional element string with Key (second key string) and multiple (RRN) arbitrary elements TR.V(w) 0 ,...,TR.V(w) RRN-1 (second arbitrary element)
- Table TR (second table, right table) containing TR.V(w) and multiple (LRN) keys TL.Key 0 ,...,TL.Key LRN-1 (first key) a key string TL.Key (first key string) and multiple (LRN) arbitrary elements TL.V(v) 0 ,...,TL.V(v) LRN-1 (first arbitrary element ) as a table TL (first table, left table) containing an optional element string TL.V(v).
- the table resetting unit 221-n does not replace the anonymization tables [TL] and [TR].
- step S221-n the processes of steps S13-n, S14-n, and S15-n described in the first embodiment are executed.
- This embodiment can also obtain the same effect as the first embodiment. Furthermore, even if [TL] and [TR] that satisfy the relationship KR ⁇ KL are not stored in the storage unit 12-n, [TL] and [TR] that satisfy the relationship KR ⁇ KL are replaced by [TL] and [TR]. can be reset to As a result, the secret equijoin can be performed at a higher speed.
- the secret coupling devices 10-n and 20-n in each embodiment are, for example, processors (hardware processors) such as CPUs (central processing units), RAMs (random-access memories) and ROMs (read-only memories). It is a device configured by executing a predetermined program on a general-purpose or special-purpose computer having a memory such as . That is, the secret equicombining devices 10-n and 20-n in each embodiment, for example, have processing circuitry configured to implement each unit they have.
- This computer may have a single processor and memory, or may have multiple processors and memories.
- This program may be installed in the computer, or may be recorded in ROM or the like in advance.
- processing units may be configured using an electronic circuit that independently realizes processing functions, instead of an electronic circuit that realizes a functional configuration by reading a program like a CPU.
- an electronic circuit that constitutes one device may include a plurality of CPUs.
- FIG. 11 is a block diagram illustrating the hardware configuration of the secret coupling devices 10-n and 20-n in each embodiment.
- the secret coupling devices 10-n and 20-n of this example include a CPU (Central Processing Unit) 10a, an input unit 10b, an output unit 10c, a RAM (Random Access Memory) 10d, a ROM ( (Read Only Memory) 10e, an auxiliary storage device 10f and a bus 10g.
- the CPU 10a of this example has a control section 10aa, an arithmetic section 10ab, and a register 10ac, and executes various arithmetic processing according to various programs read into the register 10ac.
- the input unit 10b is an input terminal for data input, a keyboard, a mouse, a touch panel, and the like.
- the output unit 10c is an output terminal for outputting data, a display, a LAN card controlled by the CPU 10a having read a predetermined program, and the like.
- the RAM 10d is SRAM (Static Random Access Memory), DRAM (Dynamic Random Access Memory), or the like, and has a program area 10da in which a predetermined program is stored and a data area 10db in which various data are stored.
- the auxiliary storage device 10f is, for example, a hard disk, an MO (Magneto-Optical disc), a semiconductor memory, or the like, and has a program area 10fa in which a predetermined program is stored and a data area 10fb in which various data are stored.
- the bus 10g connects the CPU 10a, the input section 10b, the output section 10c, the RAM 10d, the ROM 10e, and the auxiliary storage device 10f so that information can be exchanged.
- the CPU 10a writes the program stored in the program area 10fa of the auxiliary storage device 10f to the program area 10da of the RAM 10d according to the read OS (Operating System) program.
- the CPU 10a writes various data stored in the data area 10fb of the auxiliary storage device 10f to the data area 10db of the RAM 10d. Then, the address on the RAM 10d where the program and data are written is stored in the register 10ac of the CPU 10a.
- the control unit 10aa of the CPU 10a sequentially reads these addresses stored in the register 10ac, reads the program and data from the area on the RAM 10d indicated by the read address, and causes the calculation unit 10ab to sequentially execute the calculation indicated by the program, The calculation result is stored in the register 10ac.
- Such a configuration realizes the functional configuration of the secret coupling devices 10-n and 20-n.
- the above program can be recorded on a computer-readable recording medium.
- a computer-readable recording medium is a non-transitory recording medium. Examples of such recording media are magnetic recording devices, optical discs, magneto-optical recording media, semiconductor memories, and the like.
- the distribution of this program is carried out, for example, by selling, assigning, lending, etc. portable recording media such as DVDs and CD-ROMs on which the program is recorded. Further, the 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 other computers via the network.
- a computer that executes such a program for example, first stores the program recorded on a portable recording medium or transferred from a server computer in its own storage device. When executing the process, this computer reads the program stored in its own storage device and executes the process according to the read program. Also, as another execution form of this program, the computer may read the program directly from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to this computer.
- the processing according to the received program may be executed sequentially.
- the above-mentioned processing is executed by a so-called ASP (Application Service Provider) type service, which does not transfer the program from the server computer to this computer, and realizes the processing function only by its execution instruction and result acquisition.
- ASP Application Service Provider
- the program in this embodiment includes information that is used for processing by a computer and that conforms to the program (data that is not a direct instruction to the computer but has the property of prescribing the processing of the computer, etc.).
- the device is configured by executing a predetermined program on a computer, but at least part of these processing contents may be implemented by hardware.
- the present invention is not limited to the above-described embodiments.
- the secret coupling devices 10-0, . . . , 10-(N-1) (or 20-0, . may be performed.
- sequence numbers such as 0, 1, 2, 3, .
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
Abstract
Description
[用語および記号の定義]
以下、本実施形態で使用する用語および記号を定義する。
テーブル(表)の表記に以下の記号を用いる。
T.X:テーブルTのある列XをT.Xと表記する。
テーブルTのj番目のレコードをTjと表記する。jは0以上の整数である。
テーブルTのj番目のレコードの列(カラム)Xの値をT.Xjと表記する。
[a]:aの秘匿情報を[a]と表記する。例えば、a∈Znである。aを秘密計算が可能なように秘密分散して得られるシェアが[a]であってもよいし(例えば、参考文献1等参照)、aを秘密計算が可能なように暗号化して得られる暗号文(準同型暗号の暗号文)が[a]であってもよい。aをN個(Nは1以上の整数)のパーティに秘密分散した場合、aに対してN種類のシェア[a]0,...[a]N-1が得られ、シェア[a]0,...[a]N-1のそれぞれについて秘密計算が行われる。しかしながら、これらの秘密計算のアルゴリズムは全シェアについて共通であるため、[a]0,...[a]N-1の添え字を省略して[a]と表記することにする。
参考文献1:千田浩司,濱田浩気,五十嵐大,高橋克巳,“軽量検証可能3パーティ秘匿関数計算の再考(A Three-Party Secure Function Evaluation with Lightweight Verifiability Revisited)”,In CSS,2010.
Zn:Znは0からn-1までの整数の集合(nは1以上の整数)からなる有限環を表す。
[T]:あるテーブルTの秘匿情報を[T]と表記する。
[T.X]:列T.Xの秘匿情報を[T.X]と表記する。[T.X]の各レコード(すなわち、各フィールド)には秘匿化された値が格納されている。
[Tj]:レコードTjの秘匿情報を[Tj]と表記する。[Tj]の各列(すなわち、各フィールド)には秘匿化された値が格納されている。
[T.Xj]:テーブルTのj番目のレコードの列(カラム)Xの値T.Xjの秘匿情報を[T.Xj]と表記する。すなわち、[T]の各フィールドにはテーブルTの各フィールドの値の秘匿情報が格納されている。
本発明の第1実施形態を説明する。
<構成>
図1に例示するように、本実施形態の秘密等結合システム1は、N個の秘密等結合装置10-0,…,10-(N-1)を含む。本実施形態の秘密等結合装置10-0,…,10-(N-1)は、ネットワークを通じて通信可能に接続されている。ここで、秘密分散に基づく秘密計算が行われる場合にはNは2以上の整数であり(例えば、N=3)、準同型暗号に基づく秘密計算が行われる場合にはNは1以上の整数である(例えば、N=1)。
事前処理として、秘密等結合対象の秘匿化テーブル(第1秘匿化テーブル)[TL]および秘匿化テーブル(第2秘匿化テーブル)[TR]が、各秘密等結合装置10-n(図2)の入力部11-nに入力され、記憶部12-nに格納される。
参考文献2:五十嵐大,濱田浩気,菊池亮,千田浩司,“超高速秘密計算ソートの設計と実装:秘密計算がスクリプト言語に並ぶ日,” CSS, 2017.
図3を用いて本実施形態の秘密等結合方法を説明する。
≪サブキー列追加部13-nの処理(ステップS13-n)≫
各秘密等結合装置10-n(図2)のサブキー列追加部13-n(第1サブキー列追加部)は、記憶部12-nから読み出した秘匿化テーブル(第1秘匿化テーブル)[TL]を用いた秘密計算によって、サブキー列TLs.S(第1サブキー列)をテーブルTL(第1テーブル)に追加した追加テーブルTLs(第1追加テーブル)の秘匿情報である秘匿化追加テーブル[TLs](第1秘匿化追加テーブル)を得て出力する(図5A)。
(b-1)j=0のときTLs.Sj=0
(b-2)j>0かつTL.Keyj≠TL.Keyj-1であればTLs.Sj=0
(b-3)j>0かつTL.Keyj=TL.Keyj-1であればTLs.Sj=TLs.Sj-1+1
ここで(b-1)は最初のキーTL.Key0にはサブキーTLs.Sj=0が対応付けられることを意味する。(b-2)は2番目以降のキーTL.Keyjが直前のキーTL.Keyj-1と異なる値である場合、当該キーTL.KeyjにはサブキーTLs.Sj=0が対応付けられることを意味する。(b-3)は2番目以降のキーTL.Keyjが直前のキーTL.Keyj-1と同値である場合、当該キーTL.KeyjにはサブキーTLs.Sj=TLs.Sj-1+1が対応付けられることを意味する。秘匿化テーブル[TL]は秘匿化キー列[TL.Key]のキー列TL.Keyを基準としてソートされたものであるため、(b-1)(b-2)(b-3)により、キーTL.Key0,...,TL.KeyLRN-1のうち互いに同値のキーに互いに異なる値(0,1,2,3...と1ずつ増加する値)のサブキーTLs.Sjが対応付けられる。ただし、これは一例であって本発明を限定するものではない。サブキー列追加部13-nが、秘匿化テーブル[TL]を用いた秘密計算によって、各値を秘匿化したまま、(b-1)(b-2)(b-3)を実行するためには、秘匿化された[TL.Key]より秘匿化された[TLs.S]を計算する必要がある。この計算には、例えば、参考文献3の秘密グループ化計算で用いられている方法を用いることができる。
参考文献3:濱田浩気, 五十嵐大, 千田浩司, “秘匿計算上の集約関数中央値計算アルゴリズム”, In CSS, 2012.
秘密グループ化演算は、表[T]を秘匿したまま、列[Key]の値でグループ化を行い、グループごとの中央値などを求める方法である。参考文献3では、Key列を基準として秘密ソートした表[T]が有する同一値のKeyjの秘匿値[Keyj]に対し、0から始まるインクリメント値の秘匿値を付与する方法が説明されている(階段+の計算)。この演算を行う関数をgroupbyと表現すると、サブキー列追加部13-nは以下のように、[TL.Key]から[TLs.S]を求めることができる。
関数groupby:
[TLs.S]=groupby([TL.Key])
入力:[TL.Key]
出力:[TLs.S]
各秘密等結合装置10-nのサブキー列追加部14-n(第2サブキー列追加部)は、記憶部12-nから読み出した秘匿化テーブル(第2秘匿化テーブル)[TR]を用いた秘密計算によって、サブキー列TRs.S(第2サブキー列)をテーブルTRc(第3テーブル)に追加した追加テーブルTRs(第2追加テーブル)の秘匿情報である秘匿化追加テーブル[TRs](第2秘匿化追加テーブル)を得て出力する(図5Bおよび図6)。
i=0,…,RRN・K-1について、iをKで割った商がidk(すなわち、idk=i div K)であり、imk=i-idk*Kであるとする。テーブルTR(第2テーブル)(図4B)のidk番目のレコードがTRidkであり、テーブルTRc(第3テーブル)(図5B)のi番目のレコードがTRciであり、追加テーブルTRs(第2追加テーブル)(図6)のサブキー列TRs.S(第2サブキー列)のi番目のサブキー(第2サブキー)がTRs.Siである。この場合、TRsi=TRci=TRidkであり、TRs.Si=imkである。
i=0,…,RRN・K-1について、iをKで割った商をidkとし、imk=i-idk*Kとし、以下の処理を行う。
(c-1) [TRsi]=[TRci]=[TRidk]
(c-2) [TRs.Si]=[imk]
ここで(c-1)は、秘匿化テーブル[TR]の秘匿化レコード[TRidk]を[TRsi]として複製することで実現できる。(c-2)は、imkを秘匿化(例えば、秘密分散)して[TRs.Si]=[imk]とすることで実現できる。
各秘密等結合装置10-nの秘密等結合部15-nは、上述のように得られた秘匿化追加テーブル[TLs](第1秘匿化追加テーブル)(図5A)と秘匿化追加テーブル[TRs](第2秘匿化追加テーブル)(図6)とを用いた秘密計算によって、テーブルTLsのTLs.Keyj(第1キー)とサブキーTLs.Sj(第1サブキー)との組(TLs.Keyj, TLs.Sj)(j=0,...,LRN-1)を追加テーブルTLs(第1追加テーブル)のキー属性とし、追加テーブルTRsのキーTRs.Keyi(第3キー)とサブキーTRs.Si(第2サブキー)との組(TRs.Keyi, TRs.Si)(i=0,…,RRN*K-1)を追加テーブルTRs(第2追加テーブル)のキー属性として、追加テーブルTLs(第1追加テーブル)と追加テーブルTRs(第2追加テーブル)とを等結合した結合テーブルETRLの秘匿情報である秘匿化結合テーブル[ETRL]を得て出力する。前述したように、結合テーブルTLRは、追加テーブルTLsと追加テーブルTRsとの交差結合結果のテーブルTRLから、等号(TLs.Keyj, TLs.Sj)=(TRs.Keyi, TRs.Si)が成り立つレコードだけを抜き出したテーブルである。
関数join:
[ETRL]=join(([TLs.Key],[TLs.S],[TLs.V(0)],...,[TLs.V(LVN-1)]),
([TRs.Key],[TRs.S],[TRs.V(0)],...,[TRs.V(RVN-1)]),
([TLs.Key],[TLs.S]),
([TRs.Key],[TRs.S]))
入力:([TLs.Key],[TLs.S],[TLs.V(0)],...,[TLs.V(LVN-1)]),([TRs.Key],[TRs.S],[TRs.V(0)],...,[TRs.V(RVN-1)])
出力:[ETRL]=([TLs.Key],[TLs.S],[TLs.V(0)],...,[TLs.V(LVN-1)],[TRs.Key],[TRs.S],[TRs.V(0)],...,[TRs.V(RVN-1)])
ただし、joinは以下のような秘密等結合を関数である。
[テーブル1と2を等結合したテーブル]=join([テーブル1],[テーブル2],[テーブル1のキー属性],[テーブル2のキー属性])
次に、本実施形態を具体例を用いて説明する。
この具体例では、図7Aから図7Cに例示する秘匿化テーブルを秘密等結合し、図7Dに例示する秘匿化結合テーブルを得る例を示す。図7Aの秘匿化テーブルは、"ID"をキー列とし、"飲料商品名"を任意要素列とする飲料商品名テーブルの秘匿情報である(以下、「秘匿化飲料商品名テーブル」)。飲料商品名テーブルのキー列はID="1000","4050","3210"を要素に持ち、任意要素列は飲料商品名="ミネラル水A","ブラックコーヒーB","オレンジジュースC"を要素に持つ。図7Bの秘匿化テーブルは、"ID"をキー列とし、"容量"を任意要素列とする容量テーブルの秘匿情報である(以下、「秘匿化容量テーブル」)。容量テーブルのキー列はID="1000","1000","1000","4050","3210"を要素に持ち、任意要素列は容量="200","500","1000","200","500"を要素に持つ。図7Cの秘匿化テーブルは、IDをキー列とし、"容器"を任意要素列とする容器種類テーブルの秘匿情報である(以下、「秘匿化容器種類テーブル」)。容器種類テーブルのキー列はID="1000","1000","4050","4050","3210"を要素に持ち、任意要素列は容器="ペットボトル","アルミ缶","ペットボトル","アルミ缶","アルミ缶"を要素に持つ。
以上のように、本実施形態では、サブキー列追加部13-nが、秘匿化テーブル(第1秘匿化テーブル)[TL]を用いた秘密計算によって、サブキー列TLs.S(第1サブキー列)をテーブルTL(第1テーブル)に追加した追加テーブルTLs(第1追加テーブル)の秘匿情報である秘匿化追加テーブル[TLs](第1秘匿化追加テーブル)を得る(ステップS13-n)。また、サブキー列追加部14-nが、秘匿化テーブル(第2秘匿化テーブル)[TR]を用いた秘密計算によって、サブキー列TRs.S(第2サブキー列)をTRのレコードを複製して得られるテーブルTRc(第3テーブル)に追加した追加テーブルTRs(第2追加テーブル)の秘匿情報である秘匿化追加テーブル[TRs](第2秘匿化追加テーブル)を得る(ステップS14-n)。そして、秘密等結合部15-nが、秘匿化追加テーブル[TLs](第1秘匿化追加テーブル)と秘匿化追加テーブル[TRs](第2秘匿化追加テーブル)とを用いた秘密計算によって、テーブルTLsのTLs.Keyj(第1キー)とサブキーTLs.Sj(第1サブキー)との組(TLs.Keyj, TLs.Sj)(j=0,...,LRN-1)を追加テーブルTLs(第1追加テーブル)のキー属性とし、追加テーブルTRsのキーTRs.Keyi(第3キー)とサブキーTRs.Si(第2サブキー)との組(TRs.Keyi, TRs.Si)(i=0,…,RRN*K-1)を追加テーブルTRs(第2追加テーブル)のキー属性として、追加テーブルTLs(第1追加テーブル)と追加テーブルTRs(第2追加テーブル)とを等結合した結合テーブルETRLの秘匿情報である秘匿化結合テーブル[ETRL]を得て出力する(ステップS15-n)。ここで、追加テーブルTLs(第1追加テーブル)のキーTLs.Key0=TL.Key0,...,TLs.KeyLRN-1=TL.KeyLRN-1のうち互いに同値のキーには、互いに異なる値のサブキーTLs.Sjが対応付けられている。そのため、追加テーブルTLsのキー属性である組(TLs.Key0,TLs.S0),...,(TLs.KeyLRN-1,TLs.SLRN-1)には、互いに同値の組(両要素が重複する組)は存在しない。秘密等結合部15-nは、例えば、特許文献1に開示された方法に従い、秘匿化追加テーブル[TLs]と秘匿化追加テーブル[TRs]とを用いた秘密計算によって、秘匿化結合テーブル[ETRL]を得ることができる。この場合、秘密等結合前のテーブルの分割、秘密等結合後のテーブルの結合といった処理が不要となるため、テーブルの情報を秘匿したまま、高速に2つのテーブルを等結合できる。
上述のように、KR≦KLとなるように、秘匿化テーブル(第1秘匿化テーブル)[TL]および秘匿化テーブル(第2秘匿化テーブル)[TR]が記憶部12-nに格納されていることでより高速に処理を行うことができる。このようなことが保証されない環境の場合、KR≦KLとなるように秘匿化テーブルを入れ替える処理が行われてもよい。以下では、第1実施形態との相違点を中心に説明を行い、説明済みの事項については同じ参照番号を流用して説明を簡略化する。
図1に例示するように、本実施形態の秘密等結合システム2は、N個の秘密等結合装置20-0,…,20-(N-1)を含む。本実施形態の秘密等結合装置20-0,…,20-(N-1)は、ネットワークを通じて通信可能に接続されている。
第1実施形態と同じである。
図3を用いて本実施形態の秘密等結合方法を説明する。
《テーブル再設定部221-nの処理(ステップS221-n)》
テーブル再設定部221-nは、記憶部12-nからKR(第2キー列に含まれる互いに同値の第2キーの個数の最大値)およびKL(第1キー列に含まれる互いに同値の第1キーの個数の最大値)の値を読み出し、KRがKLよりも大きい場合、記憶部12-nに格納された秘匿化テーブル[TL](第1秘匿化テーブル)と秘匿化テーブル[TR](第2秘匿化テーブル)とを入れ替えて記憶部12-nに格納する。これにより、複数個(LRN個)のキーTL.Key0,...,TL.KeyLRN-1(第1キー)を持つキー列TL.Key(第1キー列)と、複数個(LRN個)の任意要素TL.V(v)0,...,TL.V(v)LRN-1(第1任意要素)を持つ任意要素列TL.V(v)とを含むテーブルTL(第1テーブル,左テーブル)、および、複数個(RRN個)のキーTR.Key0,...,TR.KeyRRN-1(第2キー)を持つキー列TR.Key(第2キー列)と、複数個(RRN個)の任意要素TR.V(w)0,...,TR.V(w)RRN-1(第2任意要素)を持つ任意要素列TR.V(w)とを含むテーブルTR(第2テーブル,右テーブル)を、それぞれ、複数個(RRN個)のキーTR.Key0,...,TR.KeyRRN-1(第2キー)を持つキー列TR.Key(第2キー列)と、複数個(RRN個)の任意要素TR.V(w)0,...,TR.V(w)RRN-1(第2任意要素)を持つ任意要素列TR.V(w)とを含むテーブルTR(第2テーブル,右テーブル)、および、複数個(LRN個)のキーTL.Key0,...,TL.KeyLRN-1(第1キー)を持つキー列TL.Key(第1キー列)と、複数個(LRN個)の任意要素TL.V(v)0,...,TL.V(v)LRN-1(第1任意要素)を持つ任意要素列TL.V(v)とを含むテーブルTL(第1テーブル,左テーブル)として再設定する。このように再設定された秘匿化テーブル[TL](第1秘匿化テーブル)と秘匿化テーブル[TR](第2秘匿化テーブル)は、KR≦KLの関係を満たす。一方、KRおよびKLがKR≦KLの関係を満たしている場合、テーブル再設定部221-nは秘匿化テーブル[TL]および[TR]の入れ替えを行わない。
本実施形態でも第1実施形態と同様な効果を得ることができる。さらに、記憶部12-nにKR≦KLの関係を満たす[TL]および[TR]が格納されていなかったとしても、それらを入れ替えることでKR≦KLの関係を満たす[TL]および[TR]に再設定できる。これにより、より高速に秘密等結合を行うことができる。
各実施形態における秘密等結合装置10-n,20-nは、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)やRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される装置である。すなわち、各実施形態における秘密等結合装置10-n,20-nは、例えば、それぞれが有する各部を実装するように構成された処理回路(processing circuitry)を有する。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、単独で処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
10-n,20-n 秘密等結合装置
13-n,14-n サブキー追加部
15-n 秘密等結合部
221-n テーブル再設定部
Claims (8)
- (a)記憶部と、(b)第1サブキー列追加部と、(c)第2サブキー列追加部と、(d)秘密等結合部と、を有し、
(a)前記記憶部は、複数個の第1キーを持つ第1キー列と複数個の第1任意要素を持つ第1任意要素列とを含む第1テーブルの秘匿情報である第1秘匿化テーブルと、
複数個の第2キーを持つ第2キー列と複数個の第2任意要素を持つ第2任意要素列とを含む第2テーブルの秘匿情報である第2秘匿化テーブルと
を格納し、
(b)前記第1サブキー列追加部は、前記第1秘匿化テーブルを用いた秘密計算によって、第1サブキー列を前記第1テーブルに追加した第1追加テーブルの秘匿情報である第1秘匿化追加テーブルを得、
前記第1サブキー列は複数個の第1サブキーを持ち、
前記第1キーのそれぞれには、前記第1サブキーの何れかが対応付けられており、
前記第1キー列に含まれる互いに同値の前記第1キーの個数の最大値がKLであり、KLは2以上の整数であり、
互いに同値の前記第1キーには、互いに異なる値の前記第1サブキーが対応付けられており、
(c)前記第2サブキー列追加部は、前記第2秘匿化テーブルを用いた秘密計算によって、第2サブキー列を第3テーブルに追加した第2追加テーブルの秘匿情報である第2秘匿化追加テーブルを得、
前記第2テーブルの各レコードは、各前記第2キーと各前記第2任意要素とを含み、
前記第3テーブルは、前記第2テーブルの各前記レコードをK回ずつ複製して得られる複数の複製レコードを前記第2テーブルに追加したテーブルであり、K≧KLであり、
前記第3テーブルは、前記第2キー及び前記第2キーの複製を含む複数の第3キーを持つ第3キー列と、前記第2任意要素及び前記第2任意要素の複製を含む複数の第3任意要素を持つ第3任意要素列とを含み、
前記第2サブキー列は複数個の第2サブキーを持ち、
前記第3キーのそれぞれには、前記第2サブキーの何れかが対応付けられており、
前記第3キー列が何れかの前記第1キーと同じ共通値を表す前記第3キーを含む場合、前記共通値を表す前記第3キーの少なくとも一部には、前記共通値を表す前記第1キーに対応付けられる前記第1サブキーと同値の前記第2サブキーが対応付けられ、
(d)前記秘密等結合部は、前記第1秘匿化追加テーブルと前記第2秘匿化追加テーブルとを用いた秘密計算によって、前記第1キーと前記第1サブキーとの組を前記第1追加テーブルのキー属性とし、前記第3キーと前記第2サブキーとの組を前記第2追加テーブルのキー属性として、前記第1追加テーブルと前記第2追加テーブルとを等結合した結合テーブルの秘匿情報である秘匿化結合テーブルを得る、
秘密等結合装置。 - 請求項1の秘密等結合装置であって、
前記第3キー列が前記共通値を表す前記第3キーを含む場合、前記共通値を表す前記第1キーに対応付けられている何れの前記第1サブキーの値も、前記共通値を表す前記第3キーに対応付けられている前記第2サブキーの何れかと同値である、秘密等結合装置。 - 請求項1または2の秘密等結合装置であって、
K=KLである、秘密等結合装置。 - 請求項1から3の何れかの秘密等結合装置であって、
前記第2キー列に含まれる互いに同値の前記第2キーの個数の最大値は、前記第1キー列に含まれる互いに同値の前記第1キーの個数の最大値以下である、秘密等結合装置。 - 請求項1から3の何れかの秘密等結合装置であって、
(e)前記第2キー列に含まれる互いに同値の前記第2キーの個数の最大値が、前記第1キー列に含まれる互いに同値の前記第1キーの個数の最大値よりも大きい場合、前記第1秘匿化テーブルと前記第2秘匿化テーブルとを入れ替え、
前記第1キーを持つ前記第1キー列と前記第1任意要素を持つ前記第1任意要素列とを含む前記第1テーブル、および、前記第2キーを持つ前記第2キー列と前記第2任意要素を持つ前記第2任意要素列とを含む前記第2テーブルを、それぞれ、前記第2キーを持つ前記第2キー列と前記第2任意要素を持つ前記第2任意要素列とを含む前記第2テーブル、および、前記第1キーを持つ前記第1キー列と前記第1任意要素を持つ前記第1任意要素列とを含む前記第1テーブルとして再設定するテーブル再設定部をさらに有する、秘密等結合装置。 - 請求項1から5の何れかの秘密等結合装置であって、
前記第1テーブルのレコード数がLRNであり、前記第2テーブルのレコード数がRRNであり、LRNおよびRRNは2以上の整数であり、
(b)j=0,…,LRN-1であり、
前記第1キー列のj番目の前記第1キーがTL.Keyjであり、
前記第1サブキー列のj番目の前記第1サブキーがTLs.Sjであり、
j=0のときTLs.Sj=0であり、
j>0かつTL.Keyj≠TL.Keyj-1であればTLs.Sj=0であり、
j>0かつTL.Keyj=TL.Keyj-1であればTLs.Sj=TLs.Sj-1+1であり、
(c)i=0,…,RRN*K-1であり、
iをKで割った商がidkであり、
imk=i-idk*Kであり、
前記第2テーブルのidk番目のレコードがTRidkであり、
前記第3テーブルのi番目のレコードがTRciであり、
TRci=TRidkであり、
前記第2サブキー列のi番目の前記第2サブキーがTRs.Siであり、
TRs.Si=imkである、秘密等結合装置。 - 秘密等結合装置の秘密等結合方法であって、
(a)記憶ステップと、(b)第1サブキー列追加ステップと、(c)第2サブキー列追加ステップと、(d)秘密等結合ステップと、を有し、
(a)記憶ステップは、複数個の第1キーを持つ第1キー列と複数個の第1任意要素を持つ第1任意要素列とを含む第1テーブルの秘匿情報である第1秘匿化テーブルと、
複数個の第2キーを持つ第2キー列と複数個の第2任意要素を持つ第2任意要素列とを含む第2テーブルの秘匿情報である第2秘匿化テーブルと
を記憶部に格納するステップであり、
(b)前記第1サブキー列追加ステップは、第1サブキー列追加部が、前記第1秘匿化テーブルを用いた秘密計算によって、第1サブキー列を前記第1テーブルに追加した第1追加テーブルの秘匿情報である第1秘匿化追加テーブルを得るステップであり、
前記第1サブキー列は複数個の第1サブキーを持ち、
前記第1キーのそれぞれには、前記第1サブキーの何れかが対応付けられており、
前記第1キー列に含まれる互いに同値の前記第1キーの個数の最大値がKLであり、KLは2以上の整数であり、
互いに同値の前記第1キーには、互いに異なる値の前記第1サブキーが対応付けられており、
(c)前記第2サブキー列追加ステップは、第2サブキー列追加部が、前記第2秘匿化テーブルを用いた秘密計算によって、第2サブキー列を第3テーブルに追加した第2追加テーブルの秘匿情報である第2秘匿化追加テーブルを得るステップであり、
前記第2テーブルの各レコードは、各前記第2キーと各前記第2任意要素とを含み、
前記第3テーブルは、前記第2テーブルの各前記レコードをK回ずつ複製して得られる複数の複製レコードを前記第2テーブルに追加したテーブルであり、K≧KLであり、
前記第3テーブルは、前記第2キー及び前記第2キーの複製を含む複数の第3キーを持つ第3キー列と、前記第2任意要素及び前記第2任意要素の複製を含む複数の第3任意要素を持つ第3任意要素列とを含み、
前記第2サブキー列は複数個の第2サブキーを持ち、
前記第3キーのそれぞれには、前記第2サブキーの何れかが対応付けられており、
前記第3キー列が何れかの前記第1キーと同じ共通値を表す前記第3キーを含む場合、前記共通値を表す前記第3キーの少なくとも一部には、前記共通値を表す前記第1キーに対応付けられる前記第1サブキーと同値の前記第2サブキーが対応付けられ、
(d)前記秘密等結合ステップは、前記秘密等結合部が、前記第1秘匿化追加テーブルと前記第2秘匿化追加テーブルとを用いた秘密計算によって、前記第1キーと前記第1サブキーとの組を前記第1追加テーブルのキー属性とし、前記第3キーと前記第2サブキーとの組を前記第2追加テーブルのキー属性として、前記第1追加テーブルと前記第2追加テーブルとを等結合した結合テーブルの秘匿情報である秘匿化結合テーブルを得るステップである、
秘密等結合方法。 - 請求項1から6の何れかの秘密等結合装置としてコンピュータを機能させるためのプログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21948446.6A EP4365877A1 (en) | 2021-07-02 | 2021-07-02 | Secret equijoin device, secret equijoin method, and program |
US18/572,808 US20240289335A1 (en) | 2021-07-02 | 2021-07-02 | Secure equi-join apparatus, secure equi-join method, and program |
PCT/JP2021/025131 WO2023276142A1 (ja) | 2021-07-02 | 2021-07-02 | 秘密等結合装置、秘密等結合方法、およびプログラム |
CN202180099886.8A CN117561557A (zh) | 2021-07-02 | 2021-07-02 | 秘密等结合装置、秘密等结合方法、以及程序 |
JP2023531319A JPWO2023276142A1 (ja) | 2021-07-02 | 2021-07-02 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/025131 WO2023276142A1 (ja) | 2021-07-02 | 2021-07-02 | 秘密等結合装置、秘密等結合方法、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023276142A1 true WO2023276142A1 (ja) | 2023-01-05 |
Family
ID=84690781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/025131 WO2023276142A1 (ja) | 2021-07-02 | 2021-07-02 | 秘密等結合装置、秘密等結合方法、およびプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US20240289335A1 (ja) |
EP (1) | EP4365877A1 (ja) |
JP (1) | JPWO2023276142A1 (ja) |
CN (1) | CN117561557A (ja) |
WO (1) | WO2023276142A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014139640A (ja) * | 2013-01-21 | 2014-07-31 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算による表の等結合システム、方法 |
WO2018061800A1 (ja) | 2016-09-27 | 2018-04-05 | 日本電信電話株式会社 | 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム |
-
2021
- 2021-07-02 EP EP21948446.6A patent/EP4365877A1/en active Pending
- 2021-07-02 US US18/572,808 patent/US20240289335A1/en active Pending
- 2021-07-02 JP JP2023531319A patent/JPWO2023276142A1/ja active Pending
- 2021-07-02 CN CN202180099886.8A patent/CN117561557A/zh active Pending
- 2021-07-02 WO PCT/JP2021/025131 patent/WO2023276142A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014139640A (ja) * | 2013-01-21 | 2014-07-31 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算による表の等結合システム、方法 |
WO2018061800A1 (ja) | 2016-09-27 | 2018-04-05 | 日本電信電話株式会社 | 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム |
Non-Patent Citations (1)
Title |
---|
KOJI MIYAUCHI, JUN FURUKAWA: "Hitoku Keisan System Data o Angoka shitamama Shori Kano ni shite, RDB kara no Joho Roei o Boshi suru = [Possibility to encrypt the confidential computation system data and prevent it from leaking information from RDB]", BIJINESU KOMYUNIKESHON - BUSINESS COMMUNICATION, KIKAKU SENTA, TOKYO, JP, vol. 51, no. 3, 1 March 2014 (2014-03-01), JP , pages 82 - 83, XP009511771, ISSN: 0385-695X * |
Also Published As
Publication number | Publication date |
---|---|
CN117561557A (zh) | 2024-02-13 |
EP4365877A1 (en) | 2024-05-08 |
US20240289335A1 (en) | 2024-08-29 |
JPWO2023276142A1 (ja) | 2023-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Viswanath et al. | Hybrid encryption framework for securing big data storage in multi-cloud environment | |
JP7061042B2 (ja) | 暗号化データベースに対する解析を支援するシステムおよびアーキテクチャ | |
US11381381B2 (en) | Privacy preserving oracle | |
JP6971926B2 (ja) | 暗号化データベースに関する解析のためのシステムおよびアーキテクチャ | |
WO2022035909A1 (en) | Methods for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger technology | |
JP7159717B2 (ja) | 秘密統計処理システム、方法、統計処理装置及びプログラム | |
EP3522137B1 (en) | Secure equijoin system, secure equijoin device, secure equijoin method, and program | |
WO2020145340A1 (ja) | 秘密配列アクセス装置、秘密配列アクセス方法、およびプログラム | |
US11886617B1 (en) | Protecting membership and data in a secure multi-party computation and/or communication | |
WO2018008547A1 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム | |
WO2023276142A1 (ja) | 秘密等結合装置、秘密等結合方法、およびプログラム | |
Pallas et al. | Three tales of disillusion: Benchmarking property preserving encryption schemes | |
He et al. | PrivC—A framework for efficient secure two-party computation | |
JP7500771B2 (ja) | サービス提供システム | |
EP3246900B1 (en) | Matrix and key generation device, matrix and key generation system, matrix coupling device, matrix and key generation method, and program | |
Mishra et al. | Efficient collusion resistant multi-secret image sharing | |
WO2024018504A1 (ja) | クライアント装置、秘密テーブル管理システム、レコード登録要求生成方法、レコード登録方法、処理要求実行方法、プログラム | |
WO2022259366A1 (ja) | 秘密計算装置、秘密計算システム、秘密計算方法、およびプログラム | |
Kanade et al. | Improving cloud security using data partitioning and encryption technique | |
WO2024013974A1 (ja) | 秘密交差結合システム、秘密交差結合装置、秘密交差結合方法、プログラム | |
WO2023281694A1 (ja) | 秘密計算システム、装置、方法及びプログラム | |
WO2023228273A1 (ja) | 秘密属性選択システム、秘密属性選択装置、秘密属性選択方法、プログラム | |
Bhat et al. | A novel tamper evident single database information-theoretic private information retrieval for user privacy applications | |
WO2022254691A1 (ja) | 秘密計算装置、秘密計算システム、秘密計算方法、およびプログラム | |
Satyanarayana Murty et al. | A Hybrid Intelligent Cryptography Algorithm for Distributed Big Data Storage in Cloud Computing Security |
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: 21948446 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2023531319 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 18572808 Country of ref document: US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202180099886.8 Country of ref document: CN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2021948446 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2021948446 Country of ref document: EP Effective date: 20240202 |