WO2023276142A1 - 秘密等結合装置、秘密等結合方法、およびプログラム - Google Patents

秘密等結合装置、秘密等結合方法、およびプログラム Download PDF

Info

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
Application number
PCT/JP2021/025131
Other languages
English (en)
French (fr)
Inventor
順子 橋本
大 五十嵐
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to EP21948446.6A priority Critical patent/EP4365877A1/en
Priority to US18/572,808 priority patent/US20240289335A1/en
Priority to PCT/JP2021/025131 priority patent/WO2023276142A1/ja
Priority to CN202180099886.8A priority patent/CN117561557A/zh
Priority to JP2023531319A priority patent/JPWO2023276142A1/ja
Publication of WO2023276142A1 publication Critical patent/WO2023276142A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6227Protecting 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure 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

秘密等結合装置は、複数個のキーを持つ第1テーブルの秘匿情報である第1秘匿化テーブルと複数個のキーを持つ第2テーブルの秘匿情報である第2秘匿化テーブルを入力とし、秘密計算によって、第1テーブルにサブキー列を追加した第1追加テーブルの秘匿情報である第1秘匿化追加テーブルを得、第2テーブルの各レコードを複数回複製して追加した第3テーブルにさらにサブキー列を追加した第2追加テーブルの秘匿情報である第2秘匿化追加テーブルを得、キーとサブキーとの組をキー属性とし、第1追加テーブルと第2追加テーブルとを等結合した結合テーブルの秘匿情報である秘匿化結合テーブルを得る。

Description

秘密等結合装置、秘密等結合方法、およびプログラム
 本発明は、秘密計算技術において、特に、テーブルの情報を秘匿したまま、2つのテーブルを等結合する秘密等結合技術に関する。
 一般的な暗号方式では、秘匿したいデータを秘匿化(暗号化)し、サーバに格納しても、その値を用いて計算を行う際には、復元(復号)を行ってから計算を行う。しかし、データを秘匿化したまま計算を行うことができる技術として、秘密計算技術がある。秘密計算技術では、数値を秘匿化された複数のシェアに変換し、複数個の秘密計算装置が各々シェアを持ち、各自自身のシェアの情報は漏らさずに、加算、乗算、論理演算などを行う(マルチパーティプロトコル)。
 また、データベースに格納されたテーブルを用いて計算を行う場合、1つのテーブルでは計算に必要な情報が揃っておらず、複数のテーブルから情報を集めて計算することがある。このような、複数のテーブルを結合する前処理が必要となる。特許文献1には、テーブルの情報を秘匿したまま、選択されたキー列の要素(キー)をキー属性として、2つのテーブルを等結合する技術が開示されている。
国際公開第2018/061800号
 特許文献1の技術は、等結合対象の2つのテーブルのうち、一方のテーブルのキー列が互いに同値の複数のキー(キー属性)を含む場合にも適用できる。
 しかしながら、一方のテーブルのキー列が互いに同値の複数のキーを含み、かつ、他方のテーブルのキー列も同値の複数のキーを含む場合には、特許文献1の技術を直接適用することはできない。
 ここで、一方のテーブルのキー列が含む同値のキーの最大数(最大重複数)をKLとした場合に、当該一方のテーブルをキー列が互いに同値のキーを含まないKL個のテーブルに分割し、特許文献1の技術を用い、KL回の秘密等結合を行い、結果として出力されたKL個のテーブルを結合することで、出力を得ることもできる。
 しかし、値を秘匿したままテーブルを分割することは難しく、テーブルを分割する過程で、分割した各テーブルに関する情報(例えば、分割前のテーブルに含まれる互いに同値のキーの個数に関する情報)が漏洩してしまう。また、この方法では、秘密等結合以外に、秘密等結合前のテーブルの分割、秘密等結合後のテーブルの結合の処理時間がかかる。特にテーブルの結合処理は並列化できないため、処理性能のボトルネックとなる。
 本発明では、等結合対象の2つのテーブルのうち、一方のテーブルのキー列が互いに同値の複数のキーを含み、かつ、他方のテーブルのキー列も同値の複数のキーを含む場合であっても、テーブルの情報を秘匿したまま、高速に2つのテーブルを等結合できる技術を提供する。
 複数個の第1キーを持つ第1キー列と複数個の第1任意要素を持つ第1任意要素列とを含む第1テーブルの秘匿情報である第1秘匿化テーブルと、複数個の第2キーを持つ第2キー列と複数個の第2任意要素を持つ第2任意要素列とを含む第2テーブルの秘匿情報である第2秘匿化テーブルとに対し、以下の処理を行う。
 第1サブキー列追加部が、第1秘匿化テーブルを用いた秘密計算によって、第1サブキー列を第1テーブルに追加した第1追加テーブルの秘匿情報である第1秘匿化追加テーブルを得る。ただし、第1サブキー列は複数個の第1サブキーを持ち、第1キーのそれぞれには、第1サブキーの何れかが対応付けられている。前記第1キー列に含まれる互いに同値の前記第1キーの個数の最大値がKLであり、KLは2以上の整数である。互いに同値の第1キーには、互いに異なる値の第1サブキーが対応付けられている。
 第2サブキー列追加部が、第2秘匿化テーブルを用いた秘密計算によって、第2サブキー列を第3テーブルに追加した第2追加テーブルの秘匿情報である第2秘匿化追加テーブルを得る。ただし、第3テーブルは、第2テーブルの各レコードをK回(ただし、K≧KL)ずつ複製して得られる複数の複製レコードを第2テーブルに追加したテーブルである。第2テーブルの各レコードは、各第2キーと各第2任意要素とを含む。第3テーブルは、第2キー及び第2キーの複製を含む複数の第3キーを持つ第3キー列と、第2任意要素及び第2任意要素の複製を含む複数の第3任意要素を持つ第3任意要素列とを含む。第2サブキー列は複数個の第2サブキーを持つ。第3キーのそれぞれには、第2サブキーの何れかが対応付けられている。第3キー列が何れかの第1キーと同じ共通値を表す第3キーを含む場合、共通値を表す第3キーの少なくとも一部には、共通値を表す第1キーに対応付けられる第1サブキーと同値の第2サブキーが対応付けられている。
 秘密等結合部は、第1秘匿化追加テーブルと第2秘匿化追加テーブルとを用いた秘密計算によって、第1キーと第1サブキーとの組を第1追加テーブルのキー属性とし、第3キーと第2サブキーとの組を第2追加テーブルのキー属性として、第1追加テーブルと第2追加テーブルとを等結合した結合テーブルの秘匿情報である秘匿化結合テーブルを得る。
 これにより、等結合対象の2つのテーブルのうち、一方のテーブルのキー列が互いに同値の複数のキーを含み、かつ、他方のテーブルのキー列も同値の複数のキーを含む場合であっても、テーブルの情報を秘匿したまま、高速に2つのテーブルを等結合できる。
図1は、実施形態の秘密等結合システムの構成を例示するためのブロック図である。 図2は、実施形態の秘密等結合装置の構成を例示するためのブロック図である。 図3は、実施形態の秘密等結合方法を例示するためのフロー図である。 図4Aは等結合対象のテーブル110(第1テーブル)を例示するための図である。図4Bは等結合対象のテーブル120(第2テーブル)を例示するための図である。 図5Aは、テーブル110(第1テーブル)にサブキー列(第1サブキー列)を追加した追加テーブル130(第1追加テーブル)を例示するための図である。図5Bは、テーブル120(第2テーブル)の各レコードを複製して得られる複数の複製レコードをテーブル120に追加したテーブル140(第3テーブル)を例示するための図である。 図6は、サブキー列151(第2サブキー列)をテーブル140(第3テーブル)に追加した追加テーブル150(第2追加テーブル)を例示するための図である。 図7Aから図7Cは等結合対象のテーブルを例示するための図である。図7Dは、図7Aから図7Cのテーブルを等結合したテーブルを例示するための図である。 図8は、等結合を例示するための図である。 図9Aは、図7Bのテーブル(第1テーブル)にシーケンス番号(SeqNo)列(第1サブキー列)を追加したテーブル(第1追加テーブル)を例示するための図である。図9Bは、図7Cのテーブル(第2テーブル)の各レコードを複製して得られる複数の複製レコードを当該テーブルに追加し、さらにシーケンス番号列(第2サブキー列)を追加したテーブル(第2追加テーブル)を例示するための図である。 図10は、識別子(ID)とシーケンス番号(SeqNo)との組をキー属性として、図9Aのテーブル(第1追加テーブル)と図9Bのテーブル(第2追加テーブル)とを等結合したテーブルを例示するための図である。 図11は、実施形態の秘密等結合装置のハードウェア構成を例示したブロック図である。
 以下、図面を参照して本発明の実施形態を説明する。
 [用語および記号の定義]
 以下、本実施形態で使用する用語および記号を定義する。
 テーブル(表)の表記に以下の記号を用いる。
 T.X:テーブルTのある列XをT.Xと表記する。
 テーブルTのj番目のレコードをTjと表記する。jは0以上の整数である。
 テーブルTのj番目のレコードの列(カラム)Xの値をT.Xjと表記する。
 交差結合:交差結合は、クロスジョインとも呼ばれ、入力された2つのテーブルTLおよびテーブルTRのすべてのレコードの組み合わせについて、テーブルTLのレコードTLjとテーブルTRのレコードTLpとを対応付けたテーブルTLRを得るテーブル結合方法である。ただし、jは0以上の整数であり、pは0以上の整数であり、j=0,...,LRN-1であり、p=0,...,RRN-1であり、LRNはテーブルTLのレコード数を表す正整数であり、RRNはテーブルTRのレコード数を表す正整数である。すなわち、交差結合結果のテーブルTLRは、テーブルTLとテーブルTRとのレコード(TL0,...,TLLRN-1およびTR0,...,TRRRN-1)についての直積である。テーブルTLとテーブルTRとの交差結合結果のテーブルTLRのレコード数はLRN*RRNとなる。ただし、「*」は積を表す演算子である。実際の利用シーンでは、このテーブルTRLから、ある条件を満たすレコードだけを抜き出して利用することが多い。
 等結合:等結合は、等化結合や内部結合とも呼ばれ、入力された2つのテーブルTLおよびテーブルTRの交差結合結果のテーブルTRLから、テーブルTLから選択された属性(キー属性TL.Keyj)とテーブルTRから選択された属性(キー属性TR.Keyp)とについて等号(TL.Keyj=TR.Keyp)が成り立つレコードだけを抜き出したテーブルETRLを得るテーブル結合方法である。なお、キー属性は選択された列(カラム)の要素である。すなわち、等結合は、入力された2つのテーブルTLおよびテーブルTRのレコードのうち、TL.Keyj=TR.Keypを満たす全レコードの組み合わせについて、テーブルTLのレコードTLjとテーブルTRのレコードTLpとを対応付けたテーブルETLRを得るテーブル結合方法である。
 秘匿情報の表記には以下の記法を用いる。
 [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に例示するように、本実施形態の秘密等結合システム1は、N個の秘密等結合装置10-0,…,10-(N-1)を含む。本実施形態の秘密等結合装置10-0,…,10-(N-1)は、ネットワークを通じて通信可能に接続されている。ここで、秘密分散に基づく秘密計算が行われる場合にはNは2以上の整数であり(例えば、N=3)、準同型暗号に基づく秘密計算が行われる場合にはNは1以上の整数である(例えば、N=1)。
 図2に例示するように、各秘密等結合装置10-n(ただし、n=0,…,N-1)は、入力部11-n、記憶部12-n、サブキー列追加部13-n(第1サブキー列追加部)、サブキー列追加部14-n(第2サブキー列追加部)、秘密等結合部15-n、出力部16-n、制御部17-n、およびメモリ18-nを有する。以下では説明を省略するが、各秘密等結合装置10-nは、制御部17-nに基づいて各処理を実行し、入力されたデータおよび各処理で得られたデータをメモリ18-nに格納し、必要に応じて読み出して使用する。
 <事前処理>
 事前処理として、秘密等結合対象の秘匿化テーブル(第1秘匿化テーブル)[TL]および秘匿化テーブル(第2秘匿化テーブル)[TR]が、各秘密等結合装置10-n(図2)の入力部11-nに入力され、記憶部12-nに格納される。
 図4Aに秘匿化テーブル[TL]を例示する。秘匿化テーブル[TL]は、テーブルTL(第1テーブル,左テーブル)の秘匿情報である。テーブルTLは、複数個(LRN個)のキーTL.Key0,...,TL.KeyLRN-1(第1キー)を持つキー列TL.Key(第1キー列)と、複数個(LRN個)の任意要素TL.V(v)0,...,TL.V(v)LRN-1(第1任意要素)を持つ任意要素列TL.V(v)とを含む。ただし、v=0,...,LVN-1であり、LVNは任意要素列の数を表す正整数である。テーブルTLのj番目のレコードTLjは、キーTL.KeyjとLVN個の任意要素TL.V(0),...,TL.V(LVN-1)jとを含む。テーブルTLのレコード数はLRNであり、本実施形態ではLRNは2以上の整数である。
 具体的には、本実施形態で例示する秘匿化テーブル[TL]は、複数個(LRN個)の秘匿化キー[TL.Key0],...,[TL.KeyLRN-1]を持つ秘匿化キー列[TL.Key]と、複数個(LRN個)の秘匿化任意要素[TL.V(v)0],...,[TL.V(v)LRN-1]を持つ任意要素列[TL.V(v)]とを含む。秘匿化レコード[TLj]は、秘匿化キー[TL.Keyj]と、LVN個の秘匿化任意要素[TL.V(0)],...,[TL.V(LVN-1)j]とを含む(図4A)。
 本実施形態の秘匿化テーブル[TL]は、秘匿化キー列[TL.Key]のキー列TL.Keyを基準としてソートされたものである。このソートは秘匿化前に行われていてもよいし、秘匿化後に秘密計算によって行われていてもよい。秘密計算によるソート方法は公知であり、例えば、参考文献2等に開示されている。
 参考文献2:五十嵐大,濱田浩気,菊池亮,千田浩司,“超高速秘密計算ソートの設計と実装:秘密計算がスクリプト言語に並ぶ日,” CSS, 2017.
 また、テーブルTLのキー列TL.Key(第1キー列)は、2個以上KL個以下の互いに同値のキー(第1キー)を含む。すなわち、キー列TL.Keyは値が重複する複数のキーを含み、その重複数の最大値(第1キー列に含まれる互いに同値の第1キーの個数の最大値)はKLである。KLは2以上の整数である。このKLの値も秘匿化テーブル[TL]に対応付けて記憶部12-nに格納される。
 図4Bに秘匿化テーブル[TR]を例示する。秘匿化テーブル[TR]は、テーブルTR(第2テーブル,右テーブル)の秘匿情報である。テーブルTRは、複数個(RRN個)のキーTR.Key0,...,TR.KeyRRN-1(第2キー)を持つキー列TR.Key(第2キー列)と、複数個(RRN個)の任意要素TR.V(w)0,...,TR.V(w)RRN-1(第2任意要素)を持つ任意要素列TR.V(w)とを含む。ただし、w=0,...,RVN-1であり、RVNは任意要素列の数を表す正整数である。テーブルTRのp番目のレコードTRpは、キーTR.KeypとRVN個の任意要素TR.V(0)p,...,TR.V(RVN-1)pとを含む。テーブルTRのレコード数はRRNであり、本実施形態ではRRNは2以上の整数である。
 具体的には、本実施形態で例示する秘匿化テーブル[TR]は、複数個(RRN個)の秘匿化キー[TR.Key0],...,[TR.KeyRRN-1]を持つ秘匿化キー列[TR.Key]と、複数個(RRN個)の秘匿化任意要素[TR.V(w)0],...,[TR.V(w)RRN-1]を持つ任意要素列[TR.V(w)]とを含む。秘匿化レコード[TRp]は、秘匿化キー[TR.Keyp]とRVN個の秘匿化任意要素[TR.V(0)p],...,[TR.V(RVN-1)p]とを含む(図4B)。
 本実施形態の秘匿化テーブル[TR]は、秘匿化キー列[TR.Key]のキー列TR.Keyを基準としてソートされたものである。このソートは秘匿化前に行われていてもよいし、秘匿化後に秘密計算によって行われていてもよい。
 また、テーブルTRのキー列TR.Key(第2キー列)は、2個以上KR個以下の互いに同値のキー(第2キー)を含む。すなわち、キー列TR.Keyは値が重複する複数のキーを含み、その重複数の最大値(第2キー列に含まれる互いに同値の第2キーの個数の最大値)はKRである。KRは2以上の整数である。このKRの値も秘匿化テーブル[TR]に対応付けて記憶部12-nに格納される。
 <処理>
 図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)。
 図5Aに例示するように、追加テーブルTLsのキー列TLs.KeyはテーブルTL(図4A)のキー列TL.Key(第1キー列)であり、キー列TLs.KeyのキーTLs.Key0,...,TLs.KeyLRN-1はTLs.Key0=TL.Key0,...,TLs.KeyLRN-1=TL.KeyLRN-1(第1キー)である。追加テーブルTLsの任意要素列TLs.V(v)はテーブルTL(図4A)の任意要素列TL.V(v)であり、任意要素列TLs.V(v)の任意要素TLs.V(v)0,...,TLs.V(v)LRN-1はTLs.V(v)0=TL.V(v)0,...,TLs.V(v)LRN-1=TL.V(v)LRN-11(第1任意要素)である。
 図5Aに例示するように、サブキー列TLs.S(第1サブキー列)は複数個(LRN個)のサブキーTLs.S0,...,TLs.SLRN-1(第1サブキー)を持つ。キーTL.Key0,...,TL.KeyLRN-1(第1キー)のそれぞれには、サブキーTLs.S0,...,TLs.SLRN-1(第1サブキー)の何れかが対応付けられている。図5Aの例では、キーTL.KeyjにサブキーTLs.Sjがそれぞれ対応付けられており、具体的には、秘匿化キー[TL.Keyj]に秘匿化サブキー[TLs.Sj]がそれぞれ対応付けられている。
 前述のように、キー列TL.Key(第1キー列)は、2個以上KL個以下の互いに同値のキー(第1キー)を含む。キーTL.Key0,...,TL.KeyLRN-1のうち互いに同値のキー(第1キー)には、互いに異なる値のサブキーTLs.Sj(第1サブキー)が対応付けられる。図5Aの例では、秘匿化キー[TL.Key0],...,[TL.KeyLRN-1]のうち復元値(復号値)が互いに同値の秘匿化キーには、互いに異なる値のサブキーTLs.Sjの秘匿情報である秘匿化サブキー[TLs.Sj]が対応付けられている。
 j=0,…,LRN-1について、キーTL.KeyjおよびサブキーTLs.Sjの関係を例示すると以下のようになる。
(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]
 ≪サブキー列追加部14-nの処理(ステップS14-n)≫
 各秘密等結合装置10-nのサブキー列追加部14-n(第2サブキー列追加部)は、記憶部12-nから読み出した秘匿化テーブル(第2秘匿化テーブル)[TR]を用いた秘密計算によって、サブキー列TRs.S(第2サブキー列)をテーブルTRc(第3テーブル)に追加した追加テーブルTRs(第2追加テーブル)の秘匿情報である秘匿化追加テーブル[TRs](第2秘匿化追加テーブル)を得て出力する(図5Bおよび図6)。
 テーブルTRc(第3テーブル)は、テーブルTR(第2テーブル)(図4B)の各レコードTRp(ただし、p=0,...,RRN-1)をK回ずつ複製して得られる複数の複製レコードをテーブルTR(第2テーブル)に追加したテーブルである(図5B)。ただし、K≧KLであり、好ましくはK=KLである。本実施形態では、KLの値は記憶部12-nから読みだされて使用される。前述のようにテーブルTR(第2テーブル)の各レコードTRpはキーTR.Keyp(第2キー)と任意要素TR.V(0)p,...,TR.V(RVN-1)p(第2任意要素)とを含む。例えば、図5Bに例示する[TRc]は、[TR]の各[TRp](ただし、p=0,...,RRN-1)をK回ずつ複製して得られる複数の秘匿化複製レコードを[TR]に追加したテーブルである。例えば、[TR]の各[TRp]は[TR.Keyp]と[TR.V(0)p],...,[TR.V(RVN-1)p]とを含む。
 図5Bに例示するように、テーブルTRc(第3テーブル)のキー列TRc.Key(第3キー列)は、RRN*K個のキーTRc.Key0=TR.Key0,...,TRc.KeyK-1=TR.Key0,TRc.KeyK=TR.Key1,...,TRc.Key2K-1=TR.Key1,...,TRc.KeyRRN*K-1=TR.KeyRRN-1(第2キー及び第2キーの複製を含む複数の第3キー)を含む。テーブルTRcの任意要素列TRc.V(v)(第3任意要素列)は、TRc.V(v)0=TR.V(v)0,...,TRc.V(v)K-1=TR.V(v)0,TRc.V(v)K=TR.V(v)1,...,TRc.V(v)2K-1=TR.V(v)1,...,TRc.V(v)RRN*K-1=TR.V(v)RRN-1(第2任意要素及び第2任意要素の複製を含む複数の第3任意要素)を含む。
 図6に例示するように、追加テーブルTRsのキー列TRs.KeyはテーブルTRc(図5B)のキー列TRc.Key(第3キー列)であり、RRN*K個のキーTRs.Key0=TR.Key0,...,TRs.KeyK-1=TR.Key0,TRs.KeyK=TR.Key1,...,TRs.Key2K-1=TR.Key1,...,TRs.KeyRRN*K-1=TR.KeyRRN-1(第2キー及び第2キーの複製を含む複数の第3キー)を含む。追加テーブルTRsの任意要素列TRs.V(v)はテーブルTRc(図5B)の任意要素列TRc.V(v)(第3任意要素列)であり、TRs.V(v)0=TR.V(v)0,...,TRs.V(v)K-1=TR.V(v)0,TRs.V(v)K=TR.V(v)1,...,TRs.V(v)2K-1=TR.V(v)1,...,TRs.V(v)RRN*K-1=TR.V(v)RRN-1(第2任意要素及び第2任意要素の複製を含む複数の第3任意要素)を含む。
 追加テーブルTRs(第2追加テーブル)のサブキー列TRs.S(第2サブキー列)は複数個(RRN*K個)のサブキーTRs.S0,...,TRs.SRRN*K-1(第2サブキー)を持つ。追加テーブルTRsのキーTRs.Key0=TR.Key0,...,TRs.KeyK-1=TR.Key0,TRs.KeyK=TR.Key1,...,TRs.Key2K-1=TR.Key1,...,TRs.KeyRRN*K-1=TR.KeyRRN-1(第3キー)のそれぞれには、サブキーTRs.S0,...,TRs.SRRN*K-1(第2サブキー)の何れかが対応付けられている。本実施形態では、キーTRs.KeyiにサブキーTRs.Si(ただし、i=0,...,RRN*K-1)が対応付けられている。例えば、キーTRs.Key0,...,TRs.KeyRRN*K-1のうち互いに同値のキーには、互いに異なる値のサブキーTRs.Siが対応付けられている。図6の例では、秘匿化キー[TRs.Key0],..., [TRs.KeyRRN*K-1]のうち、それらの復元値(復号値)が互いに同値の秘匿化キーには、互いに異なる値のサブキーTRs.Siの秘匿情報である秘匿化サブキー[TRs.Si]が対応付けられている。
 また、例えば、追加テーブルTRs(第2追加テーブル)のキー列TRs.Key(第3キー列, TRc.Key)(図6)が、追加テーブルTLs(図5A)の何れかのキーTLs.Keyj(第1キー, TL.Keyj)と同じ値(共通値)を表すTRs.Keyi(第3キー, TR.Keyi)を含む場合、当該共通値を表すTRs.Keyi(第3キー, TR.Keyi)の少なくとも一部には、当該共通値を表すキーTLs.Keyj(第1キー, TL.Keyj)に対応付けられるサブキーTLs.Sj(第1サブキー)と同値のサブキーTRs.Si(第2サブキー)が対応付けられる。例えば、当該共通値を表すTRs.Keyi(第3キー, TR.Keyi)の秘匿情報である[TRs.Keyi]の少なくとも一部には、当該共通値を表すキーTLs.Keyj(第1キー, TL.Keyj)に対応付けられるサブキーTLs.Sj(第1サブキー)と同値のサブキーTRs.Si(第2サブキー)の秘匿情報である[TRs.Si]が対応付けられる。好ましくは、追加テーブルTRs(第2追加テーブル)(図6)のキー列TRs.Key(第3キー列, TRc.Key)が当該共通値を表すTRs.Keyi(第3キー, TR.Keyi)を含む場合、当該共通値を表すキーTLs.Keyj(第1キー, TL.Keyj)(図5A)に対応付けられている何れのサブキーTLs.Sj(第1サブキー)の値も、当該共通値を表すTRs.Keyi(第3キー, TR.Keyi)に対応付けられているサブキーTRs.S0,...,TRs.SRRN*K-1(第2サブキー)の何れかと同値である。例えば、当該共通値を表すキーTLs.Keyj(第1キー, TL.Keyj)の秘匿情報である[TLs.Keyj](図5A)に対応付けられている何れの秘匿化サブキー[TLs.Sj]の復元値(復号値)であるサブキーTLs.Sj(第1サブキー)の値も、当該共通値を表すTRs.Keyi(第3キー, TR.Keyi)の秘匿情報である[TRs.Keyi]に対応付けられている秘匿化サブキー[TRs.S0],...,[TRs.SRRN*K-1]の復元値(復号値)であるサブキーTRs.S0,...,TRs.SRRN*K-1(第2サブキー)の何れかと同値である。
 以下に[TR]と[TRc]と[TRs]との関係を例示する。
  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である。
 したがって、サブキー列追加部14-nは、以下のように、秘匿化テーブル[TR]から秘匿化追加テーブル[TRs]を得ることができる。
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]とすることで実現できる。
 なお、ここでは説明のためにテーブルTRcおよび秘匿化テーブル[TRc]を示したが、サブキー列追加部14-nは、秘匿化テーブル[TR](図4B)を用いた秘密計算によって、秘匿化追加テーブル[TRs](図6)を得ればよく、必ずしもテーブルTRcを秘匿化した秘匿化テーブル[TRc](図5B)を得る必要はない。すなわち、サブキー列追加部14-nは、[TR]から[TRs]を直接得てもよいし、[TR]から[TRc]を得、さらに[TRc]から[TRs]を得てもよい。
 ≪秘密等結合部15-nの処理(ステップS15-n)≫
 各秘密等結合装置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)が成り立つレコードだけを抜き出したテーブルである。
 ここで、追加テーブルTLs(第1追加テーブル)のキーTLs.Key0=TL.Key0,...,TLs.KeyLRN-1=TL.KeyLRN-1のうち互いに同値のキーには、互いに異なる値のサブキーTLs.Sjが対応付けられている。そのため、追加テーブルTLsのキー属性である組(TLs.Keyj,TLs.Sj)の値は各レコードTLsjを一義的に特定する。言い換えると、追加テーブルTLsの組(TLs.Key0,TLs.S0),...,(TLs.KeyLRN-1,TLs.SLRN-1)には、互いに同値の組(両要素が重複する組)は存在しない。一方、追加テーブルTRs(第2追加テーブル)のキー属性である組(TRs.Keyi,TRs.Si)の値は各レコードTRsjを一義的に特定しない。言い換えると、追加テーブルTRsの組(TRs.Key0,TRs.S0),…,(TRs.KeyRRN*K-1,TRs.SRRN*K-1)には、互いに同値の組(両要素が重複する組)が存在する。このように、等結合対象の2つのテーブルのうち、一方のテーブルのキー属性に重複がなく、他方のテーブルのキー属性のみに重複がある場合に、秘密計算によって等結合を行う方法は特許文献1に開示されている。したがって、秘密等結合部15-nは、例えば、特許文献1に開示された方法に従い、秘匿化追加テーブル[TLs]と秘匿化追加テーブル[TRs]とを用いた秘密計算によって、秘匿化結合テーブル[ETRL]を得て出力する。この処理は以下のように記述される。
関数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のキー属性])
 得られた秘匿化結合テーブル[ETRL]は、秘密等号装置10-nにおいて他の処理(例えば、秘密等号処理や復元処理)に用いられてもよいし、出力部16-nから出力されて他の装置での処理に用いられてもよい。
 <実施例>
 次に、本実施形態を具体例を用いて説明する。
 この具体例では、図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"を要素に持ち、任意要素列は容器="ペットボトル","アルミ缶","ペットボトル","アルミ缶","アルミ缶"を要素に持つ。
 ここで、図7Aの秘匿化飲料商品名テーブルに対応するキー列は互いに同値の要素(キー)を持たない。一方、図7Bの秘匿化容量テーブルに対応するキー列は互いに同値の要素"1000"を持ち、図7Cの秘匿化容器種類テーブルに対応するキー列は互いに同値の要素"1000"及び"4050"を持つ。そこで、図8に例示するように、(1)まず本実施形態の方法を用い、図7Bの秘匿化容量テーブルと図7Cの秘匿化容器種類テーブルとの秘密等結合を行って秘匿化結合テーブル得、次に(2)当該秘匿化結合テーブルと図7Aの秘匿化飲料商品名テーブルとの秘密等結合を行って、図7Dに例示する最終的な秘匿化結合テーブルを得る。ここでは、秘匿化容量テーブルを[TL]とし、LRN=5,LVN=1,[TL.Key]=[ID],[TL.Key0]=[1000],[TL.Key1]=[1000],[TL.Key2]=[1000],[TL.Key3]=[4050],[TL.Key4]=[3210],[TL.V(0)0]=[200],[TL.V(0)1]=[500],[TL.V(0)2]=[1000],[TL.V(0)3]=[200],[TL.V(0)4]=[500]とする。また、秘匿化容器種類テーブルを[TR]とし、RRN=5,RVN=1,[TR.Key]=[ID],[TR.Key0]=[1000],[TR.Key1]=[1000],[TR.Key2]=[4050],[TR.Key3]=[4050],[TR.Key4]=[3210],[TR.V(0)0]=[ペットボトル],[TR.V(0)1]=[アルミ缶],[TR.V(0)2]=[ペットボトル],[TR.V(0)3]=[アルミ缶],[TR.V(0)4]=[アルミ缶]とする。
 秘匿化容量テーブル[TL]に対してステップS13-nの処理が実行されると、例えば、図9Aに例示する秘匿化追加テーブル(秘匿化された「容量+シーケンス番号」テーブル)[TLs]が得られる。この秘匿化追加テーブル[TLs]では、LRN=5,LVN=1,[TLs.Key]=[ID],[TLs.Key0]=[1000],[TLs.Key1]=[1000],[TLs.Key2]=[1000],[TLs.Key3]=[4050],[TLs.Key4]=[3210],[TLs.S]=[SeqNo],[TLs.S0]=[0],[TLs.S1]=[1],[TLs.S2]=[2],[TLs.S3]=[0],[TLs.S4]=[0],[TLs.V(0)0]=[200],[TLs.V(0)1]=[500],[TLs.V(0)2]=[1000],[TLs.V(0)3]=[200],[TLs.V(0)4]=[500]となる。
 秘匿化容器種類テーブル[TR]に対してステップS14-nの処理が実行されると、例えば、図9Bに例示する秘匿化追加テーブル(秘匿化された「容量種類+シーケンス番号」テーブル)[TRs]が得られる。この秘匿化追加テーブル[TRs]では、K=5,RRN=5,RVN=1,[TRs.Key]=[ID],[TRs.Key0]=[1000],[TRs.Key1]=[1000],[TRs.Key2]=[1000],[TRs.Key3]=[1000],[TRs.Key4]=[1000],[TRs.Key5]=[1000],[TRs.Key6]=[4050],[TRs.Key7]=[4050],[TRs.Key8]=[4050],[TRs.Key9]=[4050],[TRs.Key10]=[4050],[TRs.Key11]=[4050],[TRs.Key12]=[3210],[TRs.Key13]=[3210],[TRs.Key14]=[3210],[TRs.S]=[SeqNo],[TRs.S0]=[0],[TRs.S1]=[1],[TRs.S2]=[2],[TRs.S3]=[0],[TRs.S4]=[1],[TRs.S5]=[2],[TRs.S6]=[0],[TRs.S7]=[1],[TRs.S8]=[2],[TRs.S9]=[0],[TRs.S10]=[1],[TRs.S11]=[2],[TRs.S12]=[0],[TRs.S13]=[1],[TRs.S14]=[2],[TRs.V(0)0]=[ペットボトル],[TRs.V(0)1]=[ペットボトル],[TRs.V(0)2]=[ペットボトル],[TRs.V(0)3]=[アルミ缶],[TRs.V(0)4]=[アルミ缶],[TRs.V(0)5]=[アルミ缶],[TRs.V(0)6]=[ペットボトル],[TRs.V(0)7]=[ペットボトル],[TRs.V(0)8]=[ペットボトル],[TRs.V(0)8]=[アルミ缶],[TRs.V(0)9]=[アルミ缶],[TRs.V(0)10]=[アルミ缶],[TRs.V(0)11]=[アルミ缶],[TRs.V(0)12]=[アルミ缶],[TRs.V(0)13]=[アルミ缶],[TRs.V(0)14]=[アルミ缶]となる。
 このような秘匿化追加テーブル[TLs]と秘匿化追加テーブル[TRs]とに対してステップS15-nの処理が実行されると、例えば、図10に例示する秘匿化結合テーブル[ETRL]=([TLs.Key],[TLs.S],[TLs.V(0)],...,[TLs.V(LVN-1)],[TRs.Key],[TRs.S],[TRs.V(0)],...,[TRs.V(RVN-1)])=([ID],[SeqNo],[容量],[ID],[SeqNo],[容器])が得られる。
 <本実施形態の特徴>
 以上のように、本実施形態では、サブキー列追加部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つのテーブルを等結合できる。
 特に、テーブルTRc(第3テーブル)(図5B)は、テーブルTR(第2テーブル)(図4B)の各レコードTRp(ただし、p=0,...,RRN-1)をK回ずつ複製して得られる複数の複製レコードをテーブルTR(第2テーブル)に追加したテーブルであるが、K=KLの場合に最も高速に処理を行うことができる。
 さらに、テーブルTR(第2テーブル,右テーブル)のキー列TR.Key(第2キー列)に含まれる互いに同値のキー(第2キー)の個数の最大値KRが、テーブルTL(第1テーブル,左テーブル)のキー列TL.Key(第1キー列)に含まれる互いに同値のキーの個数の最大値KL以下である場合(KR≦KL)、より高速に処理を行うことができる。そのため、KR≦KLとなるように、秘匿化テーブル(第1秘匿化テーブル)[TL]および秘匿化テーブル(第2秘匿化テーブル)[TR]が記憶部12-nに格納されていることが好ましい。
 なお、本実施形態では、KLおよびKRの値が記憶部12-nに格納されていたが、これらの少なくとも一方が既知であるならば、その既知の値が記憶部12-nに格納されなくてもよい。
 [第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)は、ネットワークを通じて通信可能に接続されている。
 図2に例示するように、各秘密等結合装置20-n(ただし、n=0,…,N-1)は、テーブル再設定部221-n、入力部11-n、記憶部12-n、サブキー列追加部13-n(第1サブキー列追加部)、サブキー列追加部14-n(第2サブキー列追加部)、秘密等結合部15-n、出力部16-n、制御部17-n、およびメモリ18-nを有する。以下では説明を省略するが、各秘密等結合装置20-nは、制御部17-nに基づいて各処理を実行し、入力されたデータおよび各処理で得られたデータをメモリ18-nに格納し、必要に応じて読み出して使用する。
 <事前処理>
 第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]の入れ替えを行わない。
 ステップS221-nの後、第1実施形態で説明したステップS13-n,S14-n,およびS15-nの処理が実行される。
 <本実施形態の特徴>
 本実施形態でも第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を含んでいてもよい。
 図11は、各実施形態における秘密等結合装置10-n,20-nのハードウェア構成を例示したブロック図である。図11に例示するように、この例の秘密等結合装置10-n,20-nは、CPU(Central Processing Unit)10a、入力部10b、出力部10c、RAM(Random Access Memory)10d、ROM(Read Only Memory)10e、補助記憶装置10f及びバス10gを有している。この例のCPU10aは、制御部10aa、演算部10ab及びレジスタ10acを有し、レジスタ10acに読み込まれた各種プログラムに従って様々な演算処理を実行する。また、入力部10bは、データが入力される入力端子、キーボード、マウス、タッチパネル等である。また、出力部10cは、データが出力される出力端子、ディスプレイ、所定のプログラムを読み込んだCPU10aによって制御されるLANカード等である。また、RAM10dは、SRAM (Static Random Access Memory)、DRAM (Dynamic Random Access Memory)等であり、所定のプログラムが格納されるプログラム領域10da及び各種データが格納されるデータ領域10dbを有している。また、補助記憶装置10fは、例えば、ハードディスク、MO(Magneto-Optical disc)、半導体メモリ等であり、所定のプログラムが格納されるプログラム領域10fa及び各種データが格納されるデータ領域10fbを有している。また、バス10gは、CPU10a、入力部10b、出力部10c、RAM10d、ROM10e及び補助記憶装置10fを、情報のやり取りが可能なように接続する。CPU10aは、読み込まれたOS(Operating System)プログラムに従い、補助記憶装置10fのプログラム領域10faに格納されているプログラムをRAM10dのプログラム領域10daに書き込む。同様にCPU10aは、補助記憶装置10fのデータ領域10fbに格納されている各種データを、RAM10dのデータ領域10dbに書き込む。そして、このプログラムやデータが書き込まれたRAM10d上のアドレスがCPU10aのレジスタ10acに格納される。CPU10aの制御部10aaは、レジスタ10acに格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM10d上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部10abに順次実行させ、その演算結果をレジスタ10acに格納していく。このような構成により、秘密等結合装置10-n,20-nの機能構成が実現される。
 上述のプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
 このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。上述のように、このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
 各実施形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
 なお、本発明は上述の実施形態に限定されるものではない。例えば、秘密等結合装置10-0,…,10-(N-1)(または20-0,…,20-(N-1))がネットワークではなく、可搬型記録媒体を介してデータの受け渡しを行ってもよい。また、上述の実施形態では、サブキーとして0,1,2,3...と1ずつ増加する値のようなシーケンス番号を例示したが、その他の番号や記号をサブキーとしてもよい。
 また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
1,2 秘密等結合システム
10-n,20-n 秘密等結合装置
13-n,14-n サブキー追加部
15-n 秘密等結合部
221-n テーブル再設定部

Claims (8)

  1.  (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追加テーブルとを等結合した結合テーブルの秘匿情報である秘匿化結合テーブルを得る、
    秘密等結合装置。
  2.  請求項1の秘密等結合装置であって、
     前記第3キー列が前記共通値を表す前記第3キーを含む場合、前記共通値を表す前記第1キーに対応付けられている何れの前記第1サブキーの値も、前記共通値を表す前記第3キーに対応付けられている前記第2サブキーの何れかと同値である、秘密等結合装置。
  3.  請求項1または2の秘密等結合装置であって、
     K=KLである、秘密等結合装置。
  4.  請求項1から3の何れかの秘密等結合装置であって、
     前記第2キー列に含まれる互いに同値の前記第2キーの個数の最大値は、前記第1キー列に含まれる互いに同値の前記第1キーの個数の最大値以下である、秘密等結合装置。
  5.  請求項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テーブルとして再設定するテーブル再設定部をさらに有する、秘密等結合装置。
  6.  請求項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である、秘密等結合装置。
  7.  秘密等結合装置の秘密等結合方法であって、
     (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追加テーブルとを等結合した結合テーブルの秘匿情報である秘匿化結合テーブルを得るステップである、
    秘密等結合方法。
  8.  請求項1から6の何れかの秘密等結合装置としてコンピュータを機能させるためのプログラム。
PCT/JP2021/025131 2021-07-02 2021-07-02 秘密等結合装置、秘密等結合方法、およびプログラム WO2023276142A1 (ja)

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)

* Cited by examiner, † Cited by third party
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 日本電信電話株式会社 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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