WO2020036126A1 - 秘密結合システム、この方法、秘密計算装置及びプログラム - Google Patents
秘密結合システム、この方法、秘密計算装置及びプログラム Download PDFInfo
- Publication number
- WO2020036126A1 WO2020036126A1 PCT/JP2019/031476 JP2019031476W WO2020036126A1 WO 2020036126 A1 WO2020036126 A1 WO 2020036126A1 JP 2019031476 W JP2019031476 W JP 2019031476W WO 2020036126 A1 WO2020036126 A1 WO 2020036126A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- vector
- share
- units
- elements
- permutation
- Prior art date
Links
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
- G06F7/726—Inversion; Reciprocal calculation; Division of elements of a finite field
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/766—Generation of all possible permutations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/768—Data position reversal, e.g. bit reversal, byte swapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/78—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
-
- 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 a secret calculation technique.
- the present invention particularly relates to a technique for joining two tables while maintaining confidentiality.
- Non-Patent Document 1 As a technique for joining two tables while maintaining confidentiality, a technique described in Non-Patent Document 1 is known.
- the object of the present invention is to provide a secret coupling system capable of performing external coupling, this method, a secret computing device, and a program.
- a secret combination system is a secret combination system including a plurality of secret calculation devices, wherein F, F k , and F v are any rings, and ⁇ is an arbitrary vector or permutation [ ⁇ ].
- F, F k , and F v are any rings
- ⁇ is an arbitrary vector or permutation [ ⁇ ].
- a share ⁇ is secret sharing
- m is 1 or more predetermined integer
- u is a predetermined value
- r ⁇ F k m is a vector of a key of the first table
- D ⁇ F v m is a vector of attributes of the first table, it is assumed that there is no key duplication in the first table
- x ⁇ F k n is a vector of keys of the second table
- a plurality of secret computing devices are vectors Using the share [r] of r, the share [x] of the vector x, the share [d] of the vector d, and u, each element of the vector r is defined as a domain
- a plurality of second permutation application units that generate a share [ ⁇ (g)] of the vector ⁇ (g) obtained by applying the permutation ⁇ to the vector g using the share [ ⁇ ] of the permutation ⁇ ; ],
- the share [ ⁇ (g ′) of the vector ⁇ (g ′) where each element is the sum of the elements up to and including the element corresponding to that element of the vector ⁇ (g) Apply the inverse permutation ⁇ -1 of the permutation ⁇ to the vector ⁇ (g ') using the multiple third vector generation units that generate the')] and the share [ ⁇ (g ')] and the share [g'].
- a plurality of third permutation application units that generate a share [ ⁇ (e)] of a vector ⁇ (e) obtained by applying a permutation ⁇ to a vector e, using a share [ ⁇ (e)] , Each element is its vector ⁇ (e)
- a plurality of fourth vector generation units that generate a share [ ⁇ (e ′)] of a vector ⁇ (e ′) that is a sum of elements including an element corresponding to each element up to an element corresponding to each element;
- And the share [e ′′] of the vector e ′′ obtained by applying the inverse permutation ⁇ ⁇ 1 of the substitution ⁇ to the vector ⁇ (e ′′) using the share [ ⁇ (e ′′)] and the share [ ⁇ ].
- An inverting unit a plurality of third vector extracting units that generate a share [f ′] of a vector f ′ by extracting m elements from the left of the vector f using the share [f], and i of the vector f ′ the th element and f 'i, the i-th element of the vector r and r i
- a joining table Using a one-table joining unit, a joining table, and shares [f1 '] and [f'], a plurality of units that generate a post-shape joining table in which records of which the elements of the vector f1 'and the vector f' are 1 are extracted from the joining table And a first table shaping unit.
- a secret combination system is a secret combination system including a plurality of secret calculation devices, wherein F, F k , and F v are any rings, and ⁇ is an arbitrary vector or permutation [ ⁇ ].
- F, F k , and F v are any rings
- ⁇ is an arbitrary vector or permutation [ ⁇ ].
- a share ⁇ is secret sharing
- m is 1 or more predetermined integer
- u is a predetermined value
- r ⁇ F k m is a vector of a key of the first table
- D ⁇ F v m is a vector of attributes of the first table, it is assumed that there is no key duplication in the first table
- x ⁇ F k n is a vector of keys of the second table
- a plurality of secret computing devices are vectors Using the share [r] of r, the share [x] of the vector x, the share [d] of the vector d, and u, each element of the vector r is defined as a domain
- a plurality of second permutation application units that generate a share [ ⁇ (g)] of the vector ⁇ (g) obtained by applying the permutation ⁇ to the vector g using the share [ ⁇ ] of the permutation ⁇ ; ],
- the share [ ⁇ (g ′) of the vector ⁇ (g ′) where each element is the sum of the elements up to and including the element corresponding to that element of the vector ⁇ (g) Apply the inverse permutation ⁇ -1 of the permutation ⁇ to the vector ⁇ (g ') using the multiple third vector generation units that generate the')] and the share [ ⁇ (g ')] and the share [g'].
- a plurality of third permutation application units that generate a share [ ⁇ (e)] of a vector ⁇ (e) obtained by applying a permutation ⁇ to a vector e, using a share [ ⁇ (e)] , Each element is its vector ⁇ (e)
- a plurality of fourth vector generation units that generate a share [ ⁇ (e ′)] of a vector ⁇ (e ′) that is a sum of elements including an element corresponding to each element up to an element corresponding to each element;
- And the share [e ′′] of the vector e ′′ obtained by applying the inverse permutation ⁇ ⁇ 1 of the substitution ⁇ to the vector ⁇ (e ′′) using the share [ ⁇ (e ′′)] and the share [ ⁇ ].
- An inverting unit a plurality of third vector extracting units that generate a share [f ′] of a vector f ′ by extracting m elements from the left of the vector f using the share [f], and i of the vector f ′ the th element and f 'i, the i-th element of the vector r and r i
- a secret combination system is a secret combination system including a plurality of secret calculation devices, wherein F, F k , and F v are any rings, and ⁇ is an arbitrary vector or permutation [ ⁇ ].
- F, F k , and F v are any rings
- ⁇ is an arbitrary vector or permutation [ ⁇ ].
- a share ⁇ is secret sharing
- m is 1 or more predetermined integer
- u is a predetermined value
- r ⁇ F k m is a vector of a key of the first table
- D ⁇ F v m is a vector of attributes of the first table, it is assumed that there is no key duplication in the first table
- x ⁇ F k n is a vector of keys of the second table
- a plurality of secret computing devices are vectors Using the share [r] of r, the share [x] of the vector x, the share [d] of the vector d, and u, each element of the vector r is defined as a domain
- a secret combination system is a secret combination system including a plurality of secret calculation devices, wherein F, F k , and F v are any rings, and ⁇ is an arbitrary vector or permutation [ ⁇ ].
- F, F k , and F v are any rings
- ⁇ is an arbitrary vector or permutation [ ⁇ ].
- a share ⁇ is secret sharing
- m is 1 or more predetermined integer
- u is a predetermined value
- r ⁇ F k m is a vector of a key of the first table
- D ⁇ F v m is a vector of attributes of the first table, it is assumed that there is no key duplication in the first table
- x ⁇ F k n is a vector of keys of the second table
- a plurality of secret computing devices are vectors Using the share [r] of r, the share [x] of the vector x, the share [d] of the vector d, and u, each element of the vector r is defined as a domain
- each element is represented by a vector ⁇ (e)
- a plurality of fourth vectors generating a share [ ⁇ (e ')] of a vector ⁇ (e') that is a sum of elements up to and including an element corresponding to each element of And the share [ ⁇ (e ′′)] of the vector ⁇ (e ′′) obtained by shifting each element of the vector ⁇ (e) one by one using the torque generation unit and the share [ ⁇ (e ′)].
- a vector e ′′ obtained by applying the inverse permutation ⁇ ⁇ 1 of the permutation ⁇ to the vector ⁇ (e ′′)
- a plurality of third inverse permutation applying units that generate a share [e ′′] and a share [f] of a vector f obtained by inverting 0 and 1 of elements of the vector e ′′ using the share [e ′′]
- a plurality of third vector extraction units that generate a share [f ′] of a vector f ′ obtained by extracting m elements from the left of the vector f using the share [f].
- the i-th element of the vector f ′ is f ′ i
- the i-th element of the vector r is r i
- u k , u v1 and u v2 are predetermined values
- the i th element of the key one table and u k, a table of i-th element of the attributes of the first table and the u v1, and a vector for the u v2 and elements as a vector corresponding to the attribute of the second table
- a plurality of modified first table combining units that generate a modified first table obtained by combining the above, and extracting the record with the element of the vector f ′ from the modified first table using the modified first table and the share [f ′]
- a secret combination system is a secret combination system including a plurality of secret calculation devices, wherein F, F k , and F v are any rings, and ⁇ is an arbitrary vector or permutation [ ⁇ ].
- F, F k , and F v are any rings
- ⁇ is an arbitrary vector or permutation [ ⁇ ].
- a share ⁇ is secret sharing
- m is 1 or more predetermined integer
- u is a predetermined value
- r ⁇ F k m is a vector of a key of the first table
- D ⁇ F v m is a vector of attributes of the first table, it is assumed that there is no key duplication in the first table
- x ⁇ F k n is a vector of keys of the second table
- a plurality of secret computing devices are vectors Using the share [r] of r, the share [x] of the vector x, the share [d] of the vector d, and u, each element of the vector r is defined as a domain
- each element is represented by a vector ⁇ (e)
- a plurality of fourth vectors generating a share [ ⁇ (e ')] of a vector ⁇ (e') that is a sum of elements up to and including an element corresponding to each element of And the share [ ⁇ (e ′′)] of the vector ⁇ (e ′′) obtained by shifting each element of the vector ⁇ (e) one by one using the torque generation unit and the share [ ⁇ (e ′)].
- a vector e ′′ obtained by applying the inverse permutation ⁇ ⁇ 1 of the permutation ⁇ to the vector ⁇ (e ′′)
- a plurality of third inverse permutation applying units that generate a share [e ′′] and a share [f] of a vector f obtained by inverting 0 and 1 of elements of the vector e ′′ using the share [e ′′]
- a plurality of third vector extraction units that generate a share [f ′] of a vector f ′ obtained by extracting m elements from the left of the vector f using the share [f].
- the i-th element of the vector f ′ is f ′ i
- the i-th element of the vector r is r i
- u k , u v1 and u v2 are predetermined values
- a modified first table combining unit that generates a modified first table by combining the above, a modified second table, and a table in which the table excluding the vector f ′ part in the modified first table is generated. And a plurality of second table connecting portions.
- FIG. 1 is a diagram exemplifying a functional configuration of a secret strong map calculation system and a secret combination system.
- FIG. 2 is a diagram illustrating a functional configuration of a secret calculation device for calculating a strong secret mapping.
- FIG. 3 is a diagram exemplifying a processing procedure of the secret strong mapping calculation method.
- FIG. 4 is a diagram exemplifying a functional configuration of a secret calculation device of a secret connection system that performs left outer connection.
- FIG. 5 is a diagram illustrating a processing procedure of a secret combining method for performing left outer combining.
- FIG. 6 is a diagram exemplifying a functional configuration of a secret calculation device of a secret combination system that performs right-left outer coupling.
- FIG. 1 is a diagram exemplifying a functional configuration of a secret strong map calculation system and a secret combination system.
- FIG. 2 is a diagram illustrating a functional configuration of a secret calculation device for calculating a strong secret
- FIG. 7 is a diagram illustrating a processing procedure of a secret combining method for performing right outer combining.
- FIG. 8 is a diagram exemplifying a functional configuration of a secret calculation device of a secret connection system that performs a complete outer connection.
- FIG. 9 is a diagram exemplifying a processing procedure of a secret combining method for performing complete outer combining.
- the secret strong mapping calculation system includes N ( ⁇ 2) secret calculation devices 1 1 ,..., 1 N.
- each of the secure computing devices 1 1 ,..., 1 N is connected to the communication network 2.
- the communication network 2 is a circuit-switched or packet-switched communication network configured so that connected devices can communicate with each other.
- the Internet for example, the Internet, a LAN (Local Area Network), and a WAN (Wide Area Network) And so on. Note that each device does not necessarily need to be able to communicate online via the communication network 2.
- secure computing apparatus 1 1, ..., and stores information to be input to the 1 N in a portable recording medium such as a magnetic tape or a USB memory, secure computing apparatus 1 1 from the portable recording medium, ..., offline to 1 N May be configured to be input.
- a portable recording medium such as a magnetic tape or a USB memory
- the secret calculation device 1 n of the secret strong mapping calculation system includes a first vector combination unit 11 n , a first permutation calculation unit 12 n , a first vector generation unit 13 n , and a second vector combination. It has a unit 14 n , a first replacement application unit 15 n , a second vector generation unit 16 n , a first reverse replacement application unit 17 n , and a first vector extraction unit 18 n .
- the secret strong map calculation method of the embodiment is realized.
- the processing of each step is performed by secret calculation. That is, the secret computing device 1 n performs the processing of each step without restoring the share, in other words, without knowing the contents of the share.
- Secure computing apparatus 1 n for example, a central processing unit (CPU: Central Processing Unit), a main memory (RAM: Random Access Memory) special program known or special purpose computer having like are configured read and It is a special device.
- the secret computing device 1 n executes each process under the control of the central processing unit, for example.
- the data input to the secure computing device 1 n and the data obtained in each process are stored in, for example, a main storage device, and the data stored in the main storage device is read out to a central processing unit as needed. Used for other processing.
- At least a part of each component of the secure computing device 1n may be configured by hardware such as an integrated circuit.
- ⁇ is an arbitrary vector or an arbitrary permutation
- [ ⁇ ] is a share in which ⁇ is secretly shared.
- the vector y (2, -1,1, -1,5) is obtained.
- Step S1> The share [r] of the vector r and the share [x] of the vector x are input to the first vector combining units 11 1 ,..., 11 N.
- the first vector combining units 11 1 ,..., 11 N generate a share [k] of the vector k ⁇ [F k ] 2m + n obtained by combining the vector r, the vector x, and the same vector as the vector r (step S1). ).
- the generated share [k] is output to the first permutation calculators 12 1 ,..., 12 N.
- vector k (1,3,2,1,0,2,5,3,1,3,2).
- Step S2> The share [k] is input to the first permutation calculators 12 1 ,..., 12 N.
- the first permutation calculators 12 1 ,..., 12 N use the share [k] to generate a share [ ⁇ ] of the permutation ⁇ that stably sorts the vector k (step S2).
- the share [ ⁇ ] is output to the first vector generation units 13 1 ,..., 13 N.
- the replacement ⁇ (4,0,3,8,2,5, 10,1,7,9,6).
- the generation of the share [ ⁇ ] of the replacement ⁇ for performing the stable sorting can be realized by, for example, the method of Reference 1.
- Reference 1 Dai Igarashi, Hiroki Hamada, Ryo Kikuchi, Koji Senda, "Design and Implementation of Ultra-Fast Secret Computing Sort: The Day Secret Computing Arranges in Script Language", CSS2017, 2017
- Step S3> The share [d] and u of the vector d are input to the first vector generation units 13 1 ,..., 13 N.
- the first vector generation units 13 1 ,..., 13 N generate shares [d ′] of a vector d ′ which is a vector obtained by subtracting u from each element of the vector d using the shares [d] and u. (Step S3).
- the second vector coupling units 14 1 ,..., 14 N are vectors obtained by inverting the sign of the vector d ′, the zero vector having n elements, and the elements of the vector d ′ using the share [d ′].
- a share [v] of a vector v ⁇ [F v ] 2m + n obtained by combining a certain vector -d ′ is generated (step S4).
- the share [v] is output to the first replacement application units 15 1 ,..., 15 N.
- Step S5> The share [v] and the share [ ⁇ ] are input to the first replacement application units 15 1 ,..., 15 N.
- First substitution applying section 15 1, ..., 15 N generates, share [v] and using the Share [sigma], the share of the vector sigma applying the substitution sigma vector v (v) [ ⁇ (v )] (Step S5).
- the share [ ⁇ (v)] is output to the second vector generation units 16 1 ,..., 16 N.
- the second vector generation units 16 1 ,..., 16 N use the share [ ⁇ (v)], and each element corresponds to each element including the element corresponding to that element of the vector ⁇ (v).
- a share [ ⁇ (y)] of the vector ⁇ (y) that is the sum of the elements up to the element and u is generated (step S6).
- the second vector generation units 16 1 ,..., 16 N calculate the prefix-sum of the vector ⁇ (v) with the initial value u, and set it as ⁇ (y).
- the share [ ⁇ (y)] is output to the first reverse replacement application units 17 1 ,..., 17 N.
- the vector ⁇ (v) (0,3,0, -3,2,0, -2,6,0, -6,0)
- the vector ⁇ (y) (-1, 2,2, -1,1,1, -1,5,5, -1, -1).
- Step S7 First inverse permutation application unit 17 1, ..., a 17 N, Share [ ⁇ (y)] and shares [sigma] is input.
- the first inverse replacement application units 17 1 ,..., 17 N use the share [ ⁇ (y)] and the share [ ⁇ ] to apply the vector ⁇ (y) to the inverse ⁇ ⁇ 1 of the replacement ⁇ . -1 ( ⁇ (y)) share of [ ⁇ -1 ( ⁇ (y) )] to produce a (step S7).
- the share [ ⁇ ⁇ 1 ( ⁇ (y))] is output to the first vector extraction units 18 1 ,..., 18 N.
- the first vector extraction units 18 1 ,..., 18 N use the share [ ⁇ ⁇ 1 ( ⁇ (y))] to calculate the m + 1-th to m + n-th vectors of the vector ⁇ ⁇ 1 ( ⁇ (y)). Then, a share [y] of the vector y from which the element is extracted is obtained (step S8).
- the first vector combining unit 11 n the first replacement calculating unit 12 n , the first vector generating unit 13 n , the second vector combining unit 14 n , the first replacement applying unit 15 n , the second vector generating unit 16 n ,
- the plurality of strong strong map calculation units include a share [r] of the vector r, a share [x] of the vector x, Using the shares [d] and u of the vector d, each element of the vector r is defined as a domain, each element of the vector d is defined as a range, and the value of each element of the vector r is copied to the value of the corresponding element of the vector d. It can be said that the share [y] of the vector y, which is the output when the strong mapping that maps the value not present in each element of the vector r to u, is applied to the vector
- the mapping can be calculated while detecting the abnormal value.
- the secret combination system includes N ( ⁇ 2) secret calculation devices 1 1 ,..., 1 N , similarly to the strong secret map calculation system.
- each of the secure computing devices 1 1 ,..., 1 N is connected to the communication network 2.
- the communication network 2 is a circuit-switched or packet-switched communication network configured so that connected devices can communicate with each other.
- the Internet a LAN (Local Area Network), and a WAN (Wide Area Network) And so on. Note that each device does not necessarily need to be able to communicate online via the communication network 2.
- secure computing apparatus 1 1, ..., and stores information to be input to the 1 N in a portable recording medium such as a magnetic tape or a USB memory, secure computing apparatus 1 1 from the portable recording medium, ..., offline to 1 N May be configured to be input.
- a portable recording medium such as a magnetic tape or a USB memory
- the secret calculation device 1 n of the secret combination system includes a first vector combination unit 11 n , a first permutation calculation unit 12 n , a first vector generation unit 13 n , and a second vector combination unit 14.
- the second inverse permutation application unit 111 n , the second vector extraction unit 112 n , the modified second table generation unit 113 n , the third permutation application unit 114 n , the fourth vector generation unit 115 n , the shift unit 116 n , and the third It includes an inverse replacement applying unit 117 n , a bit inverting unit 118 n , a third vector extracting unit 119 n , a modified first table generating unit 120 n , a first table combining unit 121 n , and a first table shaping unit 122 n .
- the first vector combination portion 11 n in the secure computing apparatus 1 n, first substitution calculator 12 n, first vector generating unit 13 n, the second vector combination portion 14 n, first The replacement application unit 15 n , the second vector generation unit 16 n , the first inverse replacement application unit 17 n , and the first vector extraction unit 18 n can be said to be parts corresponding to the secret strong mapping calculation system.
- the secret combining method according to the embodiment is realized by performing the processing of each step.
- the processing of each step is performed by secret calculation. That is, the secret computing device 1 n performs the processing of each step without restoring the share, in other words, without knowing the contents of the share.
- Secure computing apparatus 1 n for example, a central processing unit (CPU: Central Processing Unit), a main memory (RAM: Random Access Memory) special program known or special purpose computer having like are configured read and It is a special device.
- the secret computing device 1 n executes each process under the control of the central processing unit, for example.
- the data input to the secure computing device 1 n and the data obtained in each process are stored in, for example, a main storage device, and the data stored in the main storage device is read out to a central processing unit as needed. Used for other processing.
- At least a part of each component of the secure computing device 1n may be configured by hardware such as an integrated circuit.
- the secret join system described below joins the first table and the second table to the left outside.
- the secret combining system described below combines records common to the first table and the second table and records existing only in the first table while maintaining confidentiality.
- m, n, L 1 and L 2 are integers of 1 or more. m, n, L 1 and L 2 may have the same value or different values.
- the first table has m records. Each of the m records has a single key, and the attribute value of one attribute L. k 1 ⁇ F k m is assumed to be a vector of keys of the first table. Assume that there are no duplicate keys in the first table.
- the second table has n records. Each of the n records has one key and attribute values of L 2 attributes. Let k 2 ⁇ F k n be the vector of keys in the second table. It is assumed that there may be duplicate keys in the second table.
- v 1 can be a vector obtained by connecting the attribute values of a plurality of attributes.
- the first table has two records and includes attribute values of two attributes.
- v 2 may be a vector obtained by connecting the attribute values of a plurality of attributes.
- a vector having a ring as an element is also a ring
- data in which the values of the attributes included in a certain record are arranged can be regarded as a vector, that is, a ring.
- the second replacement application units 19 1 ,..., 19 N include m elements with each element being 1, n elements with each element being 0, and m elements with each element being ⁇ 1. Generate a share [ ⁇ (g)] of the vector ⁇ (g) obtained by applying the substitution ⁇ to the vector g using the share [g] and the share [ ⁇ ] of the vector g ⁇ [F] 2m + n obtained by combining (Step S9).
- the share [ ⁇ (g)] is output to the third vector generation units 110 1 ,..., 110 N.
- each column (i, j) T of the replacement ⁇ means that the i-th element of the vector to which the replacement is applied is moved to the j-th element.
- the third vector generation units 110 1 ,..., 110 N use the share [ ⁇ (g)], and each element corresponds to each element of the vector ⁇ (g), including the element corresponding to that element.
- the third vector generation units 110 1 ,..., 110 N calculate the prefix-sum of ⁇ (g) and set it as ⁇ (g ′).
- the share [ ⁇ (g ′)] is output to the second reverse permutation application units 111 1 ,..., 111 N.
- ⁇ (g) (1,0, -1,1, -1,0,1,0,0, -1)
- ⁇ (g ′) (1,1,0, 1,0,0,1,1,1,0).
- the share [g '] is output to the second vector extraction units 112 1 ,..., 112 N.
- ⁇ (g ′) (1,1,0,1,0,0,1,1,1,0)
- g ′ (1,1,1,1,1,0 , 1,1,0,0,0).
- Step S12> The second vector extraction unit 112 1, ..., to 112 N, share [g '] is input.
- the second vector extraction units 112 1 ,..., 112 N use the share [g ′] to obtain the share [f1 ′] of the vector f1 ′ obtained by extracting the m + 1-th to m + n-th elements of the vector g ′. Is generated (step S12).
- the share [f1 '] is output to the modified second table generators 113 1 ,..., 113 N.
- f1 ′ (1,0, 1,1).
- Step S13> Modified second table generating unit 113 1, ..., to 113 N, share [f1 '] and shares [y] is input.
- a modified second table is generated by combining the table in which the i-th element of the attribute of the second table is u v2 and the vector y (step S13).
- u v2 is a predetermined value.
- the modified second table is output to the first table combining units 121 1 ,..., 121 N.
- v 2 water, mix ole, drug, water
- f1 ' (1,0,1,1) and the vector is (100, -1,85,85)
- the modified second table is as shown below.
- i 1,..., N
- Step S14> Third substituted applying unit 114 1, ..., to 114 N, and m elements each element is 1, and n elements each element is 0, and m elements each element is -1 And the share [e] and the share [ ⁇ ] of the vector e ⁇ [F] 2m + n are input.
- the third permutation application units 114 1 ,..., 114 N use the share [e] and the share [ ⁇ ] of the vector e ⁇ [F] 2m + n to obtain a vector ⁇ (e) obtained by applying the substitution ⁇ to the vector e. Is generated (step S14).
- the share [ ⁇ (e)] is output to the fourth vector generation units 115 1 ,..., 115 N.
- Step S15 Fourth vector generation unit 115 1, ..., to 115 N, Share [ ⁇ (e)] is input.
- the fourth vector generation units 115 1 ,..., 115 N use the share [ ⁇ (e)], and each element corresponds to each element including the element corresponding to that element of the vector ⁇ (e).
- the fourth vector generation units 115 1 ,..., 115 N calculate the prefix-sum of ⁇ (e) and set it as ⁇ (e ′).
- the share [ ⁇ (e ')] is output to the shift units 116 1 ,..., 116 N.
- ⁇ (e) (1,0, -1,1, -1,0,1,0,0, -1)
- ⁇ (e ′) (1,1,0, 1,0,0,1,1,1,0).
- the shift units 116 1 ,..., 116 N use the share [ ⁇ (e ′)] to shift the elements of the vector ⁇ (e) one by one. e '')] is generated (step S16).
- the last element (rightmost element) of the vector ⁇ (e ′′) is For example, 0.
- the first element (the leftmost element) of the vector ⁇ (e ′′) Is, for example, 0.
- the share [ ⁇ (e ′′)] is output to the third reverse permutation application units 117 1 ,..., 117 N.
- the third inverse permutation applying unit 117 1 ,..., 117 N uses the share [ ⁇ (e ′′)] and the share [ ⁇ ] to add the inverse permutation ⁇ ⁇ 1 of the substitution ⁇ to the vector ⁇ (e ′′).
- a share [e ′′] of the applied vector e ′′ is generated (step S17).
- the share [e ′′] is output to the bit inverters 118 1 ,..., 118 N.
- the vector ⁇ (e ′′) (1,0,1,0,0,1,1,1,0,0), and the replacement ⁇ is ⁇ defined by the above equation (1).
- the vector e ′′ (1,0,1,0,1,1,0,1,0,0,0).
- the bit inverting units 118 1 ,..., 118 N use the share [e ′′] to generate the share [f] of the vector f obtained by inverting the elements 0 and 1 of the vector e ′′ (step S18). .
- the share [f] is output to the third vector extraction units 119 1 ,..., 119 N.
- the vector f (0,1,0,1,0,0, 1,0,1,1).
- the third vector extracting unit 119 1 ,..., 119 N generates a share [f ′] of the vector f ′ by extracting m elements from the left of the vector f using the share [f] (step S19). .
- the share [f '] is output to the modified first table generation units 120 1 ,..., 120 N.
- the vector f (0,1,0,1,0,0,1,0,1,1)
- the vector f ′ (0,1,0).
- the vector f ' represents the position of a record in only the first table.
- the vector f ′ (0,1,0) indicates that the second record of the first table exists only in the first table and does not exist in the second table.
- the modified first table is output to the first table combining units 121 1 ,..., 121 N.
- u k , uv 1 ⁇ 1
- the vector f ′ (0,1,0)
- the first table has three records
- the table is as follows.
- Step S21> The first table coupling unit 121 1, ..., to 121 N, the modified second table and the modified first table is input.
- the first table combining units 121 1 ,..., 121 N generate a combined table obtained by combining the modified second table and the modified first table (step S21).
- the joining table is as shown below.
- a vector obtained by connecting the flag vectors f1 ′ and f ′ is denoted by f ′′.
- the first table shaping units 122 1 ,..., 122 N use the join table, the shares [f1 ′] and [f ′] to extract the elements of the vector f1 ′ and the vector f ′ (in other words, the vector f1 ′) from the join table.
- An element of the vector f ′′ obtained by connecting the vector and the vector f ′) is extracted to generate a post-shape connection table (step S22).
- the joined table after shaping is the following table.
- the first table shaping units 122 1 ,..., 122 N extract the records in which the element of the vector f ′′ is 1 after sorting by the vector f ′′ obtained by combining the vector f1 ′ and the vector f ′.
- a post-shaping join table may be generated.
- the share [f ′′] of the vector f ′′ may be made public.
- This post-shaping join table is a table in which the first table and the second table are left-outer joined.
- the first table combining units 122 1 ,..., 122 N correspond to tables composed of portions other than the vector f1 ′ and the vector f ′ (in other words, portions other than the vector f ′′) in the combining table. May be output. As a result, it is possible to perform an outer join without losing the number of output records. In this case, the secret combination system does not need to include the first table shaping units 122 1 ,..., 122 N , and the processing in step S22 may not be performed.
- join table is the join table of (C) above
- table composed of portions other than the vector f1 ′ and the vector f ′ in the join table is as follows.
- the secret coupling system and method performs a so-called right outer coupling.
- the secret combining system combines records common to the first table and the second table and records existing only in the second table while maintaining confidentiality.
- the secret combination system that performs the right outer join includes a second replacement application unit 19 n , a third vector extraction unit 110 n , a second reverse replacement application unit 111 n , a second vector extraction unit 112 n , and a modified second table generation unit 113 n , third permutation application unit 114 n , fourth vector generation unit 115 n , shift unit 116 n , third inverse permutation application unit 117 n , bit inversion unit 118 n , third vector extraction unit 119 n , modified first table A secret for performing left outer join except that a modified second table generating unit 123 n is provided instead of not including the generating unit 120 n , the first table combining unit 121 n , and the first table shaping unit 122 n. Similar to the coupling system.
- the secret combining method for performing the right outer join is the same as the secret combining method for performing the left outer join except that the processing from step S9 to step S22 is not performed, but the processing in step S23 is performed.
- the secret calculation device 1 n of the secret combination system includes a first vector combination unit 11 n , a first permutation calculation unit 12 n , a first vector generation unit 13 n , and a second vector combination unit 14. n , a first replacement application unit 15 n , a second vector generation unit 16 n , a first inverse replacement application unit 17 n , a first vector extraction unit 18 n , and a modified second table generation unit 123 n .
- the first vector combination portion 11 n in the secure computing apparatus 1 n can be said to be parts corresponding to the secret strong mapping calculation system.
- the modified second table generating units 123 1 ,..., 122 N generate a modified second table combining the second table and the vector y using the share [y] (step S23).
- This modified second table is a table in which the first table and the second table are joined to the right.
- the secret coupling system and method performs a so-called perfect outer coupling.
- this secret combination system joins a record common to the first table and the second table, a record existing only in the first table, and a record existing only in the second table while maintaining confidentiality. .
- the secret combining system that performs the complete outer join does not include the first table combining unit 121 n and the first table shaping unit 122 n, but includes a second table shaping unit 124 n and a second table combining unit 125 n. Except for this point, it is the same as the secret coupling system performing left outer coupling and the secret coupling system performing right outer coupling.
- the secret combining method of performing a complete outer join is based on the secret join method of performing a left outer join and the right outer join, except that the processes of steps S21 and S22 are not performed. This is the same as the secret combining method performed.
- the secret calculation device 1 n of the secret combination system includes a first vector combination unit 11 n , a first permutation calculation unit 12 n , a first vector generation unit 13 n , and a second vector combination unit 14.
- a first replacement application unit 15 n a second vector generation unit 16 n , a first inverse replacement application unit 17 n , a first vector extraction unit 18 n , a second replacement application unit 19 n , and a third vector extraction unit 110 n
- the second inverse permutation application unit 111 n the second vector extraction unit 112 n , the modified second table generation unit 113 n , the third permutation application unit 114 n , the fourth vector generation unit 115 n , the shift unit 116 n , and the third Inverse permutation application section 117 n , bit inversion section 118 n , third vector extraction section 119 n , modified first table generation section 120 n , first table combining section 121 n , first table shaping section 122 n , modified second table generator 123 n, a Table shaping unit 124 n, and a second table coupling part 125 n.
- the first vector combination portion 11 n in the secure computing apparatus 1 n can be said to be parts corresponding to the secret strong mapping calculation system.
- the processing from ⁇ Step S1> to ⁇ Step S8> is performed.
- the processing from ⁇ Step S1> to ⁇ Step S8> is the same as the processing from ⁇ Step S1> to ⁇ Step S8> described in the section of [Secret Strong Mapping Calculation System and Method], and thus redundant description is omitted here. I do.
- ⁇ Step S23> is performed.
- the process of ⁇ Step S23> is the same as the process of ⁇ Step S23> described in the section of [Secret Combination System and Method for Performing Right Outer Combination], and thus, redundant description is omitted here.
- the processing from ⁇ Step S9> to ⁇ Step S20> is the same as the processing from ⁇ Step S9> to ⁇ Step S20> described in the section of [Secret Combination System and Method for Performing Left Outer Combination]. Description is omitted.
- the second table shaping units 124 1 ,..., 124 N use the deformed first table, the share [f ′], to extract the deformed first deformed first record in which the element of the vector f ′ is 1 from the deformed first table.
- a table is generated (Step S24).
- the first modified table is output to the second table combining units 125 1 ,..., 125 N.
- the first modified table is the table of (B) above, the first modified table will be the following table.
- Step S25> The second table coupling unit 125 1, ..., to 125 N, deformation second table and shaping after deformation the first table is input.
- the second table coupling unit 125 1, ..., 125 N produces a binding table that combines the modified second table and shaping after deformation first table (step S25).
- the joining table is as follows.
- This table is a table in which the first table and the second table are completely connected.
- the second table combining units 125 1 ,..., 125 N may generate a table in which the modified second table is combined with the table in the modified first table excluding the vector f ′. (Step S25). As a result, it is possible to perform an outer join without losing the number of output records. In this case, the secret combination system does not need to include the second table shaping units 124 1 ,..., 124 N , and the processing in step S24 may not be performed. In this case, instead of the post-shaping deformation first table, the deformation first table generated by the deformation first table generation units 120 1 ,..., 120 N in step S20 is replaced by the second table connection units 125 1 ,. 125 N.
- the modified second table is the table of (D) and the first modified table is the table of (B)
- the modified second table and the portion of the vector f ′ in the first modified table are used.
- the table obtained by combining the tables excluding the above is as follows.
- z may be a positive integer of 2 or more, and the key attribute may be a composite key of z attributes.
- the process of step S1 may be performed as follows.
- each element of k 0 can be represented by 2 bits.
- (k 0 ) 0 is the lower bit when k 0 is bit-decomposed
- each row of this matrix is regarded as a bit representation of the key of one record, (1,2,3,1,3,4,5,1,2,3)
- a vector of the bit representation of the key is obtained. This vector may be used as k used in step S2 and subsequent steps. In this way, a composite key can be processed.
- the key duplication is whether or not the key is duplicated in terms of a combination of values of all key attributes. It is assumed that the duplication of the value of each attribute is not regarded as a duplicate. For example, the combinations (1,0) and (1,1) are not overlapping.
- a program describing this processing content can be recorded on a computer-readable recording medium.
- a computer-readable recording medium for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.
- the distribution of the program is performed by selling, transferring, lending, or the like, a portable recording medium such as a DVD or a CD-ROM on which the program is recorded.
- the program may be stored in a storage device of a server computer, and the program may be distributed by transferring the program from the server computer to another computer via a network.
- the computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. Then, when executing the processing, the computer reads the program stored in its own storage device and executes the processing according to the read program. As another execution form of the program, the computer may directly read the program from the portable recording medium and execute processing according to the program, and further, the program may be transferred from the server computer to the computer. Each time, the processing according to the received program may be sequentially executed.
- ASP Application ⁇ Service ⁇ Provider
- the program in the present embodiment includes information used for processing by the computer and which is similar to the program (data that is not a direct command to the computer but has characteristics that define the processing of the computer).
- the present apparatus is configured by executing a predetermined program on a computer, but at least a part of the processing contents may be realized by hardware.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Complex Calculations (AREA)
- Storage Device Security (AREA)
Abstract
Description
図1を参照して、実施形態の秘密強写像計算システムの構成例を説明する。秘密強写像計算システムは、N(≧2)台の秘密計算装置11,…,1Nを含む。本形態では、秘密計算装置11, …, 1Nはそれぞれ通信網2へ接続されている。通信網2は、接続される各装置が相互に通信可能なように構成された回線交換方式もしくはパケット交換方式の通信網であり、例えばインターネットやLAN(Local Area Network)、WAN(Wide Area Network)などである。なお、各装置は必ずしも通信網2を介してオンラインで通信可能である必要はない。例えば、秘密計算装置11, …, 1Nへ入力する情報を磁気テープやUSBメモリなどの可搬型記録媒体に記憶し、その可搬型記録媒体から秘密計算装置11, …,1Nへオフラインで入力するように構成してもよい。
第一ベクトル結合部111,…,11Nに、ベクトルrのシェア[r]及びベクトルxのシェア[x]が入力される。
第一置換計算部121,…,12Nに、シェア[k]が入力される。
〔参考文献1〕五十嵐大、濱田浩気、菊池亮、千田浩司、「超高速秘密計算ソートの設計と実装:秘密計算がスクリプト言語に並ぶ日」、CSS2017、2017
第一ベクトル生成部131,…,13Nに、ベクトルdのシェア[d]とuとが入力される。
第二ベクトル結合部141,…,14Nに、シェア[d']が入力される。
第一置換適用部151,…,15Nに、シェア[v]及びシェア[σ]が入力される。
第二ベクトル生成部161,…,16Nに、シェア[σ(v)]が入力される。
第一逆置換適用部171,…,17Nに、シェア[σ(y)]及びシェア[σ]が入力される。
第一ベクトル抽出部181,…,18Nに、シェア[σ-1(σ(y))]が入力される。
図1、図4及び図5を参照して、実施形態の秘密結合システムの構成例を説明する。この秘密結合システム及び方法は、いわゆる左外部結合を行うものである。左外部結合については後述する。
第二置換適用部191,…,19Nに、各要素が1であるm個の要素と、各要素が0であるn個の要素と、各要素が-1であるm個の要素とを結合したベクトルg∈[F]2m+nのシェア[g]及びシェア[σ]が入力される。ここで、Fは任意の環である。
第三ベクトル生成部1101,…,110Nに、シェア[σ(g)]が入力される。
第二逆置換適用部1111,…,111Nに、シェア[σ(g')]及びシェア[g']が入力される。
第二ベクトル抽出部1121,…,112Nに、シェア[g']が入力される。
変形第二テーブル生成部1131,…,113Nに、シェア[f1']及びシェア[y]が入力される。
第三置換適用部1141,…,114Nに、各要素が1であるm個の要素と、各要素が0であるn個の要素と、各要素が-1であるm個の要素とを結合したベクトルe∈[F]2m+nのシェア[e]及びシェア[σ]が入力される。
第四ベクトル生成部1151,…,115Nに、シェア[σ(e)]が入力される。
シフト部1161,…,116Nに、シェア[σ(e')]が入力される。
第三逆置換適用部1171,…,117Nに、シェア[σ(e'')]及びシェア[σ]が入力される。
ビット反転部1181,…,118Nに、シェア[e'']が入力される。
第三ベクトル抽出部1191,…,119Nに、シェア[f]が入力される。
変形第一テーブル生成部1201,…,120Nに、シェア[f']、シェア[r]及びシェア[d]が入力される。
第一テーブル結合部1211,…,121Nに、変形第二テーブルと変形第一テーブルとが入力される。
第一テーブル整形部1221,…,122Nに、シェア[f1']及び[f']が入力される。
図1、図6及び図7を参照して、実施形態の秘密結合システムの構成例を説明する。この秘密結合システム及び方法は、いわゆる右外部結合を行うものである。言い換えれば、この秘密結合システムは、秘匿性を保ちつつ、第一テーブル及び第二テーブルに共通するレコードと、第二テーブルのみに存在するレコードとを結合する。
変形第二テーブル生成部1231,…,122Nに、シェア[y]が入力される。
図1、図8及び図9を参照して、実施形態の秘密結合システムの構成例を説明する。この秘密結合システム及び方法は、いわゆる完全外部結合を行うものである。言い換えれば、この秘密結合システムは、秘匿性を保ちつつ、第一テーブル及び第二テーブルに共通するレコードと、第一テーブルのみに存在するレコードと、第二テーブルのみに存在するレコードとを結合する。
第二テーブル整形部1241,…,124Nに、シェア[f']が入力される。
第二テーブル結合部1251,…,125Nに、変形第二テーブル及び整形後変形第一テーブルが入力される。
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。
上記説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
Claims (12)
- 複数の秘密計算装置を含む秘密結合システムであって、
F,Fk,Fvは任意の環であり、αを任意のベクトル又は置換として[α]はαが秘密分散されたシェアであり、m,nは1以上の所定の整数であり、uは所定の値であり、r∈Fk mは第一テーブルのキーのベクトルであり、d∈Fv mは第一テーブルの属性のベクトルであり、上記第一テーブルにはキーの重複がないとし、x∈Fk nは第二テーブルのキーのベクトルであり、
上記複数の秘密計算装置は、
上記ベクトルrのシェア[r]、上記ベクトルxのシェア[x]、上記ベクトルdのシェア[d]及び上記uを用いて、上記ベクトルrの各要素を定義域とし、上記ベクトルdの各要素を値域とし、上記ベクトルrの各要素の値を上記ベクトルdの対応する要素の値に写し、上記ベクトルrの各要素にない値を上記uに写す強写像を、上記ベクトルxに適用したときの出力となるベクトルyのシェア[y]を計算する複数の秘密強写像計算部と、
各要素が1であるm個の要素と、各要素が0であるn個の要素と、各要素が-1であるm個の要素とを結合したベクトルg∈[F]2m+nのシェア[g]及び上記ベクトルxと上記ベクトルrと同じベクトルとを結合したベクトルkを安定ソートする置換σのシェア[σ]を用いて、上記ベクトルgに上記置換σを適用したベクトルσ(g)のシェア[σ(g)]を生成する複数の第二置換適用部と、
上記シェア[σ(g)]を用いて、各要素が、上記ベクトルσ(g)のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルσ(g')のシェア[σ(g')]を生成する複数の第三ベクトル生成部と、
上記シェア[σ(g')]及び上記シェア[g']を用いて、上記ベクトルσ(g')に上記置換σの逆置換σ-1を適用したベクトルg'のシェア[g']を生成する複数の第二逆置換適用部と、
上記シェア[g']を用いて、上記ベクトルg'のm+1番目からm+n番目の要素を抜き出したベクトルf1'のシェア[f1']を生成する複数の第二ベクトル抽出部と、
uv2を所定の値として、上記シェア[f1']及び上記シェア[y]を用いて、上記ベクトルf1'と、i=1,…,nとして、f1'i=0である場合には、上記第二テーブルの属性のi番目の要素をuv2としたテーブルと、上記ベクトルyとを結合した変形第二テーブルを生成する複数の変形第二テーブル生成部と、
各要素が1であるm個の要素と、各要素が0であるn個の要素と、各要素が-1であるm個の要素とを結合したベクトルe∈[F]2m+nのシェア[e]及び上記シェア[σ]を用いて、上記ベクトルeに上記置換σを適用したベクトルσ(e)のシェア[σ(e)]を生成する複数の第三置換適用部と、
上記シェア[σ(e)]を用いて、各要素が、上記ベクトルσ(e)のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルσ(e')のシェア[σ(e')]を生成する複数の第四ベクトル生成部と、
上記シェア[σ(e')]を用いて、上記ベクトルσ(e)の各要素を1個ずつシフトさせたベクトルσ(e'')のシェア[σ(e'')]を生成する複数のシフト部と、
上記シェア[σ(e'')]及び上記シェア[σ]を用いて、上記ベクトルσ(e'')に上記置換σの逆置換σ-1を適用したベクトルe''のシェア[e'']を生成する複数の第三逆置換適用部と、
上記シェア[e'']を用いて、上記ベクトルe''の要素の0,1を反転させたベクトルfのシェア[f]を生成する複数のビット反転部と、
上記シェア[f]を用いて、上記ベクトルfの左からm個の要素を抜き出したベクトルf'のシェア[f']を生成する複数の第三ベクトル抽出部と、
上記ベクトルf'のi番目の要素をf'iとし、上記ベクトルrのi番目の要素をriとし、uk,uv1,uv2を所定の値として、上記シェア[f']、上記シェア[r]及び上記シェア[d]を用いて、上記ベクトルf'と、i=1,…,mとして、f'i=0である場合には、上記第一テーブルのキーのi番目の要素をukとし、上記第一テーブルの属性のi番目の要素をuv1としたテーブルと、上記第二テーブルの属性に対応するベクトルとしてuv2を要素とするベクトルとを結合した変形第一テーブルを生成する複数の変形第一テーブル結合部と、
上記変形第二テーブルと上記変形第一テーブルとを結合した結合テーブルを生成する複数の第一テーブル結合部と、
上記結合テーブル、シェア[f1']及び[f']を用いて、上記結合テーブルからベクトルf1'及びベクトルf'の要素が1のレコードを抜き出した整形後結合テーブルを生成する複数の第一テーブル整形部と、
を含む秘密結合システム。 - 複数の秘密計算装置を含む秘密結合システムであって、
F,Fk,Fvは任意の環であり、αを任意のベクトル又は置換として[α]はαが秘密分散されたシェアであり、m,nは1以上の所定の整数であり、uは所定の値であり、r∈Fk mは第一テーブルのキーのベクトルであり、d∈Fv mは第一テーブルの属性のベクトルであり、上記第一テーブルにはキーの重複がないとし、x∈Fk nは第二テーブルのキーのベクトルであり、
上記複数の秘密計算装置は、
上記ベクトルrのシェア[r]、上記ベクトルxのシェア[x]、上記ベクトルdのシェア[d]及び上記uを用いて、上記ベクトルrの各要素を定義域とし、上記ベクトルdの各要素を値域とし、上記ベクトルrの各要素の値を上記ベクトルdの対応する要素の値に写し、上記ベクトルrの各要素にない値を上記uに写す強写像を、上記ベクトルxに適用したときの出力となるベクトルyのシェア[y]を計算する複数の秘密強写像計算部と、
各要素が1であるm個の要素と、各要素が0であるn個の要素と、各要素が-1であるm個の要素とを結合したベクトルg∈[F]2m+nのシェア[g]及び上記ベクトルxと上記ベクトルrと同じベクトルとを結合したベクトルkを安定ソートする置換σのシェア[σ]を用いて、上記ベクトルgに上記置換σを適用したベクトルσ(g)のシェア[σ(g)]を生成する複数の第二置換適用部と、
上記シェア[σ(g)]を用いて、各要素が、上記ベクトルσ(g)のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルσ(g')のシェア[σ(g')]を生成する複数の第三ベクトル生成部と、
上記シェア[σ(g')]及び上記シェア[g']を用いて、上記ベクトルσ(g')に上記置換σの逆置換σ-1を適用したベクトルg'のシェア[g']を生成する複数の第二逆置換適用部と、
上記シェア[g']を用いて、上記ベクトルg'のm+1番目からm+n番目の要素を抜き出したベクトルf1'のシェア[f1']を生成する複数の第二ベクトル抽出部と、
uv2を所定の値として、上記シェア[f1']及び上記シェア[y]を用いて、上記ベクトルf1'と、i=1,…,nとして、f1'i=0である場合には、上記第二テーブルの属性のi番目の要素をuv2としたテーブルと、上記ベクトルyとを結合した変形第二テーブルを生成する複数の変形第二テーブル生成部と、
各要素が1であるm個の要素と、各要素が0であるn個の要素と、各要素が-1であるm個の要素とを結合したベクトルe∈[F]2m+nのシェア[e]及び上記シェア[σ]を用いて、上記ベクトルeに上記置換σを適用したベクトルσ(e)のシェア[σ(e)]を生成する複数の第三置換適用部と、
上記シェア[σ(e)]を用いて、各要素が、上記ベクトルσ(e)のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルσ(e')のシェア[σ(e')]を生成する複数の第四ベクトル生成部と、
上記シェア[σ(e')]を用いて、上記ベクトルσ(e)の各要素を1個ずつシフトさせたベクトルσ(e'')のシェア[σ(e'')]を生成する複数のシフト部と、
上記シェア[σ(e'')]及び上記シェア[σ]を用いて、上記ベクトルσ(e'')に上記置換σの逆置換σ-1を適用したベクトルe''のシェア[e'']を生成する複数の第三逆置換適用部と、
上記シェア[e'']を用いて、上記ベクトルe''の要素の0,1を反転させたベクトルfのシェア[f]を生成する複数のビット反転部と、
上記シェア[f]を用いて、上記ベクトルfの左からm個の要素を抜き出したベクトルf'のシェア[f']を生成する複数の第三ベクトル抽出部と、
上記ベクトルf'のi番目の要素をf'iとし、上記ベクトルrのi番目の要素をriとし、uk,uv1,uv2を所定の値として、上記シェア[f']、上記シェア[r]及び上記シェア[d]を用いて、上記ベクトルf'と、i=1,…,mとして、f'i=0である場合には、上記第一テーブルのキーのi番目の要素をukとし、上記第一テーブルの属性のi番目の要素をuv1としたテーブルと、上記第二テーブルの属性に対応するベクトルとしてuv2を要素とするベクトルとを結合した変形第一テーブルを生成する複数の変形第一テーブル結合部と、
上記変形第二テーブルと上記変形第一テーブルとを結合した結合テーブルを生成し、上記結合テーブルの中の、上記ベクトルf1'及び上記ベクトルf'以外の部分から構成されるテーブルを出力する複数の第一テーブル結合部と、
を含む秘密結合システム。 - 複数の秘密計算装置を含む秘密結合システムであって、
Fk,Fvは任意の環であり、αを任意のベクトル又は置換として[α]はαが秘密分散されたシェアであり、m,nは1以上の所定の整数であり、uは所定の値であり、r∈Fk mは第一テーブルのキーのベクトルであり、d∈Fv mは第一テーブルの属性のベクトルであり、上記第一テーブルにはキーの重複がないとし、x∈Fk nは第二テーブルのキーのベクトルであり、
上記複数の秘密計算装置は、
上記ベクトルrのシェア[r]、上記ベクトルxのシェア[x]、上記ベクトルdのシェア[d]及び上記uを用いて、上記ベクトルrの各要素を定義域とし、上記ベクトルdの各要素を値域とし、上記ベクトルrの各要素の値を上記ベクトルdの対応する要素の値に写し、上記ベクトルrの各要素にない値を上記uに写す強写像を、上記ベクトルxに適用したときの出力となるベクトルyのシェア[y]を計算する複数の秘密強写像計算部と、
上記シェア[y]を用いて、上記第二テーブルと、上記ベクトルyとを結合した変形第二テーブルを生成する複数の変形第二テーブル生成部と、
を含む秘密結合システム。 - 複数の秘密計算装置を含む秘密結合システムであって、
F,Fk,Fvは任意の環であり、αを任意のベクトル又は置換として[α]はαが秘密分散されたシェアであり、m,nは1以上の所定の整数であり、uは所定の値であり、r∈Fk mは第一テーブルのキーのベクトルであり、d∈Fv mは第一テーブルの属性のベクトルであり、上記第一テーブルにはキーの重複がないとし、x∈Fk nは第二テーブルのキーのベクトルであり、
上記複数の秘密計算装置は、
上記ベクトルrのシェア[r]、上記ベクトルxのシェア[x]、上記ベクトルdのシェア[d]及び上記uを用いて、上記ベクトルrの各要素を定義域とし、上記ベクトルdの各要素を値域とし、上記ベクトルrの各要素の値を上記ベクトルdの対応する要素の値に写し、上記ベクトルrの各要素にない値を上記uに写す強写像を、上記ベクトルxに適用したときの出力となるベクトルyのシェア[y]を計算する複数の秘密強写像計算部と、
上記シェア[y]を用いて、上記第二テーブルと、上記ベクトルyとを結合した変形第二テーブルを生成する複数の変形第二テーブル生成部と、
各要素が1であるm個の要素と、各要素が0であるn個の要素と、各要素が-1であるm個の要素とを結合したベクトルe∈[F]2m+nのシェア[e]及び上記ベクトルxと上記ベクトルrと同じベクトルとを結合したベクトルkを安定ソートする置換σのシェア[σ]を用いて、上記ベクトルeに上記置換σを適用したベクトルσ(e)のシェア[σ(e)]を生成する複数の第三置換適用部と、
上記シェア[σ(e)]を用いて、各要素が、上記ベクトルσ(e)のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルσ(e')のシェア[σ(e')]を生成する複数の第四ベクトル生成部と、
上記シェア[σ(e')]を用いて、上記ベクトルσ(e)の各要素を1個ずつシフトさせたベクトルσ(e'')のシェア[σ(e'')]を生成する複数のシフト部と、
上記シェア[σ(e'')]及び上記シェア[σ]を用いて、上記ベクトルσ(e'')に上記置換σの逆置換σ-1を適用したベクトルe''のシェア[e'']を生成する複数の第三逆置換適用部と、
上記シェア[e'']を用いて、上記ベクトルe''の要素の0,1を反転させたベクトルfのシェア[f]を生成する複数のビット反転部と、
上記シェア[f]を用いて、上記ベクトルfの左からm個の要素を抜き出したベクトルf'のシェア[f']を生成する複数の第三ベクトル抽出部と、
上記ベクトルf'のi番目の要素をf'iとし、上記ベクトルrのi番目の要素をriとし、uk,uv1,uv2を所定の値として、上記シェア[f']、上記シェア[r]及び上記シェア[d]を用いて、上記ベクトルf'と、i=1,…,mとして、f'i=0である場合には、上記第一テーブルのキーのi番目の要素をukとし、上記第一テーブルの属性のi番目の要素をuv1としたテーブルと、上記第二テーブルの属性に対応するベクトルとしてuv2を要素とするベクトルとを結合した変形第一テーブルを生成する複数の変形第一テーブル結合部と、
上記変形第一テーブル、シェア[f']を用いて、上記変形第一テーブルからベクトルf'の要素が1のレコードを抜き出した整形後変形第一テーブルを生成する複数の第二テーブル整形部と、
上記変形第二テーブルと上記整形後変形第一テーブルとを結合した結合テーブルを生成する複数の第二テーブル結合部と、
を含む秘密結合システム。 - 複数の秘密計算装置を含む秘密結合システムであって、
F,Fk,Fvは任意の環であり、αを任意のベクトル又は置換として[α]はαが秘密分散されたシェアであり、m,nは1以上の所定の整数であり、uは所定の値であり、r∈Fk mは第一テーブルのキーのベクトルであり、d∈Fv mは第一テーブルの属性のベクトルであり、上記第一テーブルにはキーの重複がないとし、x∈Fk nは第二テーブルのキーのベクトルであり、
上記複数の秘密計算装置は、
上記ベクトルrのシェア[r]、上記ベクトルxのシェア[x]、上記ベクトルdのシェア[d]及び上記uを用いて、上記ベクトルrの各要素を定義域とし、上記ベクトルdの各要素を値域とし、上記ベクトルrの各要素の値を上記ベクトルdの対応する要素の値に写し、上記ベクトルrの各要素にない値を上記uに写す強写像を、上記ベクトルxに適用したときの出力となるベクトルyのシェア[y]を計算する複数の秘密強写像計算部と、
上記シェア[y]を用いて、上記第二テーブルと、上記ベクトルyとを結合した変形第二テーブルを生成する複数の変形第二テーブル生成部と、
各要素が1であるm個の要素と、各要素が0であるn個の要素と、各要素が-1であるm個の要素とを結合したベクトルe∈[F]2m+nのシェア[e]及び上記ベクトルxと上記ベクトルrと同じベクトルとを結合したベクトルkを安定ソートする置換σのシェア[σ]を用いて、上記ベクトルeに上記置換σを適用したベクトルσ(e)のシェア[σ(e)]を生成する複数の第三置換適用部と、
上記シェア[σ(e)]を用いて、各要素が、上記ベクトルσ(e)のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルσ(e')のシェア[σ(e')]を生成する複数の第四ベクトル生成部と、
上記シェア[σ(e')]を用いて、上記ベクトルσ(e)の各要素を1個ずつシフトさせたベクトルσ(e'')のシェア[σ(e'')]を生成する複数のシフト部と、
上記シェア[σ(e'')]及び上記シェア[σ]を用いて、上記ベクトルσ(e'')に上記置換σの逆置換σ-1を適用したベクトルe''のシェア[e'']を生成する複数の第三逆置換適用部と、
上記シェア[e'']を用いて、上記ベクトルe''の要素の0,1を反転させたベクトルfのシェア[f]を生成する複数のビット反転部と、
上記シェア[f]を用いて、上記ベクトルfの左からm個の要素を抜き出したベクトルf'のシェア[f']を生成する複数の第三ベクトル抽出部と、
上記ベクトルf'のi番目の要素をf'iとし、上記ベクトルrのi番目の要素をriとし、uk,uv1,uv2を所定の値として、上記シェア[f']、上記シェア[r]及び上記シェア[d]を用いて、上記ベクトルf'と、i=1,…,mとして、f'i=0である場合には、上記第一テーブルのキーのi番目の要素をukとし、上記第一テーブルの属性のi番目の要素をuv1としたテーブルと、上記第二テーブルの属性に対応するベクトルとしてuv2を要素とするベクトルとを結合した変形第一テーブルを生成する複数の変形第一テーブル結合部と、
上記変形第二テーブルと、上記変形第一テーブルの中の、ベクトルf'の部分を除いたテーブルとを結合したテーブルを生成する複数の第二テーブル結合部と、
を含む秘密結合システム。 - 複数の秘密計算装置を含む秘密結合方法であって、
F,Fk,Fvは任意の環であり、αを任意のベクトル又は置換として[α]はαが秘密分散されたシェアであり、m,nは1以上の所定の整数であり、uは所定の値であり、r∈Fk mは第一テーブルのキーのベクトルであり、d∈Fv mは第一テーブルの属性のベクトルであり、上記第一テーブルにはキーの重複がないとし、x∈Fk nは第二テーブルのキーのベクトルであり、
複数の秘密強写像計算部が、上記ベクトルrのシェア[r]、上記ベクトルxのシェア[x]、上記ベクトルdのシェア[d]及び上記uを用いて、上記ベクトルrの各要素を定義域とし、上記ベクトルdの各要素を値域とし、上記ベクトルrの各要素の値を上記ベクトルdの対応する要素の値に写し、上記ベクトルrの各要素にない値を上記uに写す強写像を、上記ベクトルxに適用したときの出力となるベクトルyのシェア[y]を計算する秘密強写像計算ステップと、
複数の第二置換適用部が、各要素が1であるm個の要素と、各要素が0であるn個の要素と、各要素が-1であるm個の要素とを結合したベクトルg∈[F]2m+nのシェア[g]及び上記ベクトルxと上記ベクトルrと同じベクトルとを結合したベクトルkを安定ソートする置換σのシェア[σ]を用いて、上記ベクトルgに上記置換σを適用したベクトルσ(g)のシェア[σ(g)]を生成する第二置換適用ステップと、
複数の第三ベクトル生成部が、上記シェア[σ(g)]を用いて、各要素が、上記ベクトルσ(g)のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルσ(g')のシェア[σ(g')]を生成する第三ベクトル生成ステップと、
複数の第二逆置換適用部が、上記シェア[σ(g')]及び上記シェア[g']を用いて、上記ベクトルσ(g')に上記置換σの逆置換σ-1を適用したベクトルg'のシェア[g']を生成する第二逆置換適用ステップと、
第二ベクトル抽出部が、上記シェア[g']を用いて、上記ベクトルg'のm+1番目からm+n番目の要素を抜き出したベクトルf1'のシェア[f1']を生成する第二ベクトル抽出ステップと、
変形第二テーブル生成部が、uv2を所定の値として、上記シェア[f1']及び上記シェア[y]を用いて、上記ベクトルf1'と、i=1,…,nとして、f1'i=0である場合には、上記第二テーブルの属性のi番目の要素をuv2としたテーブルと、上記ベクトルyとを結合した変形第二テーブルを生成する変形第二テーブル生成ステップと、
複数の第三置換適用部が、各要素が1であるm個の要素と、各要素が0であるn個の要素と、各要素が-1であるm個の要素とを結合したベクトルe∈[F]2m+nのシェア[e]及び上記シェア[σ]を用いて、上記ベクトルeに上記置換σを適用したベクトルσ(e)のシェア[σ(e)]を生成する第三置換適用ステップと、
複数の第四ベクトル生成部が、上記シェア[σ(e)]を用いて、各要素が、上記ベクトルσ(e)のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルσ(e')のシェア[σ(e')]を生成する第四ベクトル生成ステップと、
複数のシフト部が、上記シェア[σ(e')]を用いて、上記ベクトルσ(e)の各要素を1個ずつシフトさせたベクトルσ(e'')のシェア[σ(e'')]を生成するシフトステップと、
複数の第三逆置換適用部が、上記シェア[σ(e'')]及び上記シェア[σ]を用いて、上記ベクトルσ(e'')に上記置換σの逆置換σ-1を適用したベクトルe''のシェア[e'']を生成する第三逆置換適用ステップと、
複数のビット反転部が、上記シェア[e'']を用いて、上記ベクトルe''の要素の0,1を反転させたベクトルfのシェア[f]を生成するビット反転ステップと、
複数の第三ベクトル抽出部が、上記シェア[f]を用いて、上記ベクトルfの左からm個の要素を抜き出したベクトルf'のシェア[f']を生成する第三ベクトル抽出ステップと、
複数の変形第一テーブル結合部が、上記ベクトルf'のi番目の要素をf'iとし、上記ベクトルrのi番目の要素をriとし、uk,uv1uv2を所定の値として、上記シェア[f']、上記シェア[r]及び上記シェア[d]を用いて、上記ベクトルf'と、i=1,…,mとして、f'i=0である場合には、上記第一テーブルのキーのi番目の要素をukとし、上記第一テーブルの属性のi番目の要素をuv1としたテーブルと、上記第二テーブルの属性に対応するベクトルとしてuv2を要素とするベクトルとを結合した変形第一テーブルを生成する変形第一テーブル結合ステップと、
複数の第一テーブル結合部が、上記変形第二テーブルと上記変形第一テーブルとを結合した結合テーブルを生成する第一テーブル整形ステップと、
複数の第一テーブル整形部が、上記結合テーブル、シェア[f1']及び[f']を用いて、上記結合テーブルからベクトルf1'及びベクトルf'の要素が1のレコードを抜き出した整形後結合テーブルを生成する第一テーブル整形ステップと、
を含む秘密結合方法。 - 複数の秘密計算装置を含む秘密結合方法であって、
F,Fk,Fvは任意の環であり、αを任意のベクトル又は置換として[α]はαが秘密分散されたシェアであり、m,nは1以上の所定の整数であり、uは所定の値であり、r∈Fk mは第一テーブルのキーのベクトルであり、d∈Fv mは第一テーブルの属性のベクトルであり、上記第一テーブルにはキーの重複がないとし、x∈Fk nは第二テーブルのキーのベクトルであり、
複数の秘密強写像計算部が、上記ベクトルrのシェア[r]、上記ベクトルxのシェア[x]、上記ベクトルdのシェア[d]及び上記uを用いて、上記ベクトルrの各要素を定義域とし、上記ベクトルdの各要素を値域とし、上記ベクトルrの各要素の値を上記ベクトルdの対応する要素の値に写し、上記ベクトルrの各要素にない値を上記uに写す強写像を、上記ベクトルxに適用したときの出力となるベクトルyのシェア[y]を計算する秘密強写像計算ステップと、
複数の第二置換適用部が、各要素が1であるm個の要素と、各要素が0であるn個の要素と、各要素が-1であるm個の要素とを結合したベクトルg∈[F]2m+nのシェア[g]及び上記ベクトルxと上記ベクトルrと同じベクトルとを結合したベクトルkを安定ソートする置換σのシェア[σ]を用いて、上記ベクトルgに上記置換σを適用したベクトルσ(g)のシェア[σ(g)]を生成する第二置換適用ステップと、
複数の第三ベクトル生成部が、上記シェア[σ(g)]を用いて、各要素が、上記ベクトルσ(g)のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルσ(g')のシェア[σ(g')]を生成する第三ベクトル生成ステップと、
複数の第二逆置換適用部が、上記シェア[σ(g')]及び上記シェア[g']を用いて、上記ベクトルσ(g')に上記置換σの逆置換σ-1を適用したベクトルg'のシェア[g']を生成する第二逆置換適用ステップと、
第二ベクトル抽出部が、上記シェア[g']を用いて、上記ベクトルg'のm+1番目からm+n番目の要素を抜き出したベクトルf1'のシェア[f1']を生成する第二ベクトル抽出ステップと、
変形第二テーブル生成部が、uv2を所定の値として、上記シェア[f1']及び上記シェア[y]を用いて、上記ベクトルf1'と、i=1,…,nとして、f1'i=0である場合には、上記第二テーブルの属性のi番目の要素をuv2としたテーブルと、上記ベクトルyとを結合した変形第二テーブルを生成する変形第二テーブル生成ステップと、
複数の第三置換適用部が、各要素が1であるm個の要素と、各要素が0であるn個の要素と、各要素が-1であるm個の要素とを結合したベクトルe∈[F]2m+nのシェア[e]及び上記シェア[σ]を用いて、上記ベクトルeに上記置換σを適用したベクトルσ(e)のシェア[σ(e)]を生成する第三置換適用ステップと、
複数の第四ベクトル生成部が、上記シェア[σ(e)]を用いて、各要素が、上記ベクトルσ(e)のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルσ(e')のシェア[σ(e')]を生成する第四ベクトル生成ステップと、
複数のシフト部が、上記シェア[σ(e')]を用いて、上記ベクトルσ(e)の各要素を1個ずつシフトさせたベクトルσ(e'')のシェア[σ(e'')]を生成するシフトステップと、
複数の第三逆置換適用部が、上記シェア[σ(e'')]及び上記シェア[σ]を用いて、上記ベクトルσ(e'')に上記置換σの逆置換σ-1を適用したベクトルe''のシェア[e'']を生成する第三逆置換適用ステップと、
複数のビット反転部が、上記シェア[e'']を用いて、上記ベクトルe''の要素の0,1を反転させたベクトルfのシェア[f]を生成するビット反転ステップと、
複数の第三ベクトル抽出部が、上記シェア[f]を用いて、上記ベクトルfの左からm個の要素を抜き出したベクトルf'のシェア[f']を生成する第三ベクトル抽出ステップと、
複数の変形第一テーブル結合部が、上記ベクトルf'のi番目の要素をf'iとし、上記ベクトルrのi番目の要素をriとし、uk,uv1uv2を所定の値として、上記シェア[f']、上記シェア[r]及び上記シェア[d]を用いて、上記ベクトルf'と、i=1,…,mとして、f'i=0である場合には、上記第一テーブルのキーのi番目の要素をukとし、上記第一テーブルの属性のi番目の要素をuv1としたテーブルと、上記第二テーブルの属性に対応するベクトルとしてuv2を要素とするベクトルとを結合した変形第一テーブルを生成する変形第一テーブル結合ステップと、
複数の第一テーブル結合部が、上記変形第二テーブルと上記変形第一テーブルとを結合した結合テーブルを生成し、上記結合テーブルの中の、上記ベクトルf1'及び上記ベクトルf'以外の部分から構成されるテーブルを出力する第一テーブル整形ステップと、
を含む秘密結合方法。 - Fk,Fvは任意の環であり、αを任意のベクトル又は置換として[α]はαが秘密分散されたシェアであり、m,nは1以上の所定の整数であり、uは所定の値であり、r∈Fk mは第一テーブルのキーのベクトルであり、d∈Fv mは第一テーブルの属性のベクトルであり、上記第一テーブルにはキーの重複がないとし、x∈Fk nは第二テーブルのキーのベクトルであり、
複数の秘密強写像計算部が、上記ベクトルrのシェア[r]、上記ベクトルxのシェア[x]、上記ベクトルdのシェア[d]及び上記uを用いて、上記ベクトルrの各要素を定義域とし、上記ベクトルdの各要素を値域とし、上記ベクトルrの各要素の値を上記ベクトルdの対応する要素の値に写し、上記ベクトルrの各要素にない値を上記uに写す強写像を、上記ベクトルxに適用したときの出力となるベクトルyのシェア[y]を計算する秘密強写像計算ステップと、
複数の変形第二テーブル生成部が、上記シェア[y]を用いて、上記第二テーブルと、上記ベクトルyとを結合した変形第二テーブルを生成する変形第二テーブル生成ステップと、
を含む秘密結合方法。 - F,Fk,Fvは任意の環であり、αを任意のベクトル又は置換として[α]はαが秘密分散されたシェアであり、m,nは1以上の所定の整数であり、uは所定の値であり、r∈Fk mは第一テーブルのキーのベクトルであり、d∈Fv mは第一テーブルの属性のベクトルであり、上記第一テーブルにはキーの重複がないとし、x∈Fk nは第二テーブルのキーのベクトルであり、
複数の秘密強写像計算部が、上記ベクトルrのシェア[r]、上記ベクトルxのシェア[x]、上記ベクトルdのシェア[d]及び上記uを用いて、上記ベクトルrの各要素を定義域とし、上記ベクトルdの各要素を値域とし、上記ベクトルrの各要素の値を上記ベクトルdの対応する要素の値に写し、上記ベクトルrの各要素にない値を上記uに写す強写像を、上記ベクトルxに適用したときの出力となるベクトルyのシェア[y]を計算する秘密強写像計算ステップと、
複数の変形第二テーブル生成部が、上記シェア[y]を用いて、上記第二テーブルと、上記ベクトルyとを結合した変形第二テーブルを生成する変形第二テーブル生成ステップと、
複数の第三置換適用部が、各要素が1であるm個の要素と、各要素が0であるn個の要素と、各要素が-1であるm個の要素とを結合したベクトルe∈[F]2m+nのシェア[e]及び上記ベクトルxと上記ベクトルrと同じベクトルとを結合したベクトルkを安定ソートする置換σのシェア[σ]を用いて、上記ベクトルeに上記置換σを適用したベクトルσ(e)のシェア[σ(e)]を生成する第三置換適用ステップと、
複数の第四ベクトル生成部が、上記シェア[σ(e)]を用いて、各要素が、上記ベクトルσ(e)のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルσ(e')のシェア[σ(e')]を生成する第四ベクトル生成ステップと、
複数のシフト部が、上記シェア[σ(e')]を用いて、上記ベクトルσ(e)の各要素を1個ずつシフトさせたベクトルσ(e'')のシェア[σ(e'')]を生成するシフトステップと、
複数の第三逆置換適用部が、上記シェア[σ(e'')]及び上記シェア[σ]を用いて、上記ベクトルσ(e'')に上記置換σの逆置換σ-1を適用したベクトルe''のシェア[e'']を生成する第三逆置換適用ステップと、
複数のビット反転部が、上記シェア[e'']を用いて、上記ベクトルe''の要素の0,1を反転させたベクトルfのシェア[f]を生成するビット反転ステップと、
複数の第三ベクトル抽出部が、上記シェア[f]を用いて、上記ベクトルfの左からm個の要素を抜き出したベクトルf'のシェア[f']を生成する第三ベクトル抽出ステップと、
複数の変形第一テーブル結合部が、上記ベクトルf'のi番目の要素をf'iとし、上記ベクトルrのi番目の要素をriとし、uk,uv1,uv2を所定の値として、上記シェア[f']、上記シェア[r]及び上記シェア[d]を用いて、上記ベクトルf'と、i=1,…,mとして、f'i=0である場合には、上記第一テーブルのキーのi番目の要素をukとし、上記第一テーブルの属性のi番目の要素をuv1としたテーブルと、上記第二テーブルの属性に対応するベクトルとしてuv2を要素とするベクトルとを結合した変形第一テーブルを生成する変形第一テーブル結合ステップと、
複数の第二テーブル整形部が、上記変形第一テーブル、シェア[f']を用いて、上記変形第一テーブルからベクトルf'の要素が1のレコードを抜き出した整形後変形第一テーブルを生成する第二テーブル整形ステップと、
複数の第二テーブル結合部が、上記変形第二テーブルと上記整形後変形第一テーブルとを結合した結合テーブルを生成する第二テーブル結合ステップと、
を含む秘密結合方法。 - F,Fk,Fvは任意の環であり、αを任意のベクトル又は置換として[α]はαが秘密分散されたシェアであり、m,nは1以上の所定の整数であり、uは所定の値であり、r∈Fk mは第一テーブルのキーのベクトルであり、d∈Fv mは第一テーブルの属性のベクトルであり、上記第一テーブルにはキーの重複がないとし、x∈Fk nは第二テーブルのキーのベクトルであり、
複数の秘密強写像計算部が、上記ベクトルrのシェア[r]、上記ベクトルxのシェア[x]、上記ベクトルdのシェア[d]及び上記uを用いて、上記ベクトルrの各要素を定義域とし、上記ベクトルdの各要素を値域とし、上記ベクトルrの各要素の値を上記ベクトルdの対応する要素の値に写し、上記ベクトルrの各要素にない値を上記uに写す強写像を、上記ベクトルxに適用したときの出力となるベクトルyのシェア[y]を計算する秘密強写像計算ステップと、
複数の変形第二テーブル生成部が、上記シェア[y]を用いて、上記第二テーブルと、上記ベクトルyとを結合した変形第二テーブルを生成する変形第二テーブル生成ステップと、
複数の第三置換適用部が、各要素が1であるm個の要素と、各要素が0であるn個の要素と、各要素が-1であるm個の要素とを結合したベクトルe∈[F]2m+nのシェア[e]及び上記ベクトルxと上記ベクトルrと同じベクトルとを結合したベクトルkを安定ソートする置換σのシェア[σ]を用いて、上記ベクトルeに上記置換σを適用したベクトルσ(e)のシェア[σ(e)]を生成する第三置換適用ステップと、
複数の第四ベクトル生成部が、上記シェア[σ(e)]を用いて、各要素が、上記ベクトルσ(e)のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルσ(e')のシェア[σ(e')]を生成する第四ベクトル生成ステップと、
複数のシフト部が、上記シェア[σ(e')]を用いて、上記ベクトルσ(e)の各要素を1個ずつシフトさせたベクトルσ(e'')のシェア[σ(e'')]を生成するシフトステップと、
複数の第三逆置換適用部が、上記シェア[σ(e'')]及び上記シェア[σ]を用いて、上記ベクトルσ(e'')に上記置換σの逆置換σ-1を適用したベクトルe''のシェア[e'']を生成する第三逆置換適用ステップと、
複数のビット反転部が、上記シェア[e'']を用いて、上記ベクトルe''の要素の0,1を反転させたベクトルfのシェア[f]を生成するビット反転ステップと、
複数の第三ベクトル抽出部が、上記シェア[f]を用いて、上記ベクトルfの左からm個の要素を抜き出したベクトルf'のシェア[f']を生成する第三ベクトル抽出ステップと、
複数の変形第一テーブル結合部が、上記ベクトルf'のi番目の要素をf'iとし、上記ベクトルrのi番目の要素をriとし、uk,uv1,uv2を所定の値として、上記シェア[f']、上記シェア[r]及び上記シェア[d]を用いて、上記ベクトルf'と、i=1,…,mとして、f'i=0である場合には、上記第一テーブルのキーのi番目の要素をukとし、上記第一テーブルの属性のi番目の要素をuv1としたテーブルと、上記第二テーブルの属性に対応するベクトルとしてuv2を要素とするベクトルとを結合した変形第一テーブルを生成する変形第一テーブル結合ステップと、
複数の第二テーブル結合部が、上記変形第二テーブルと、上記変形第一テーブルの中の、ベクトルf'の部分を除いたテーブルとを結合したテーブルを生成する第二テーブル結合ステップと、
を含む秘密結合方法。 - 請求項1から5の秘密結合システムの秘密計算装置。
- 請求項11の秘密計算装置の各部としてコンピュータを機能させるためのプログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19849488.2A EP3839922B1 (en) | 2018-08-13 | 2019-08-08 | Secure joining system, method, secure computing apparatus and program |
JP2020537440A JP7067625B2 (ja) | 2018-08-13 | 2019-08-08 | 秘密結合システム、この方法、秘密計算装置及びプログラム |
US17/267,837 US11888973B2 (en) | 2018-08-13 | 2019-08-08 | Secure joining system, method, secure computing apparatus and program |
CN201980053645.2A CN112602135B (zh) | 2018-08-13 | 2019-08-08 | 秘密联接***、该方法、秘密计算装置以及记录介质 |
AU2019322590A AU2019322590B2 (en) | 2018-08-13 | 2019-08-08 | Secure joining system, method, secure computing apparatus and program |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018152412 | 2018-08-13 | ||
JP2018-152412 | 2018-08-13 | ||
JP2018190869 | 2018-10-09 | ||
JP2018-190869 | 2018-10-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020036126A1 true WO2020036126A1 (ja) | 2020-02-20 |
Family
ID=69525511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/031476 WO2020036126A1 (ja) | 2018-08-13 | 2019-08-08 | 秘密結合システム、この方法、秘密計算装置及びプログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US11888973B2 (ja) |
EP (1) | EP3839922B1 (ja) |
JP (1) | JP7067625B2 (ja) |
CN (1) | CN112602135B (ja) |
AU (1) | AU2019322590B2 (ja) |
WO (1) | WO2020036126A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112567442B (zh) * | 2018-08-13 | 2024-04-09 | 日本电信电话株式会社 | 秘密强映射计算***、它们的方法、秘密计算装置以及记录介质 |
WO2020084751A1 (ja) * | 2018-10-26 | 2020-04-30 | 日本電気株式会社 | 秘密計算サーバ、システム、秘密計算方法及びプログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012150379A (ja) * | 2011-01-21 | 2012-08-09 | Nippon Telegr & Teleph Corp <Ntt> | マッチングシステム、マッチングシステムの方法、結合装置及びプログラム |
JP2013157652A (ja) * | 2012-01-26 | 2013-08-15 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算システム、暗号化装置、秘密計算装置及びその方法、プログラム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724427A (en) * | 1995-08-17 | 1998-03-03 | Lucent Technologies Inc. | Method and apparatus for autokey rotor encryption |
JP3401207B2 (ja) * | 1999-01-25 | 2003-04-28 | 日本電信電話株式会社 | 換字置換装置及びそのプログラム記録媒体 |
JP5448863B2 (ja) * | 2010-01-15 | 2014-03-19 | 日本電信電話株式会社 | 鍵生成装置、鍵生成方法、プログラム及び記録媒体 |
JP5331028B2 (ja) * | 2010-02-22 | 2013-10-30 | 日本電信電話株式会社 | 署名・検証システム、署名・検証方法、署名装置、検証装置、プログラム、記録媒体 |
JP5486520B2 (ja) * | 2011-01-21 | 2014-05-07 | 日本電信電話株式会社 | セキュア集合関数システム、秘密集合関数装置、セキュア集合関数処理方法、セキュア集合関数プログラム |
JP5650630B2 (ja) * | 2011-11-22 | 2015-01-07 | 日本電信電話株式会社 | 鍵交換システム、鍵交換装置、鍵交換方法、鍵交換プログラム |
US9432188B2 (en) * | 2012-07-05 | 2016-08-30 | Nippon Telegraph And Telephone Corporation | Secret sharing system, data distribution apparatus, distributed data transform apparatus, secret sharing method and program |
US11836273B2 (en) * | 2017-12-22 | 2023-12-05 | Koninklijke Philips N.V. | Computer-implemented method of applying a first function to each data element in a data set, and a worker node for implementing the same |
-
2019
- 2019-08-08 US US17/267,837 patent/US11888973B2/en active Active
- 2019-08-08 CN CN201980053645.2A patent/CN112602135B/zh active Active
- 2019-08-08 JP JP2020537440A patent/JP7067625B2/ja active Active
- 2019-08-08 WO PCT/JP2019/031476 patent/WO2020036126A1/ja unknown
- 2019-08-08 AU AU2019322590A patent/AU2019322590B2/en active Active
- 2019-08-08 EP EP19849488.2A patent/EP3839922B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012150379A (ja) * | 2011-01-21 | 2012-08-09 | Nippon Telegr & Teleph Corp <Ntt> | マッチングシステム、マッチングシステムの方法、結合装置及びプログラム |
JP2013157652A (ja) * | 2012-01-26 | 2013-08-15 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算システム、暗号化装置、秘密計算装置及びその方法、プログラム |
Non-Patent Citations (3)
Title |
---|
IGARASHI, DAI; HAMADA, KOKI; KIKUCHI, RYO: "We have not realized the most important thing - Designs and implementations of secure outer-join protocols", PROCEEDINGS OF COMPUTER SECURITY SYMPOSIUM 2018 (CSS2018), 22-25 OCTOBER 2018, 15 October 2018 (2018-10-15), pages 1221 - 1228, XP009525699 * |
See also references of EP3839922A4 * |
SHIMURA, MASANORI ET AL: "Relational Algebra in Multi-party Protocol to Enable Structual Operationin Secret Shared Databases", TRANSACTIONS OF INFORMATION PROCESSING SOCIETY OF JAPAN, vol. 51, no. 9, 15 September 2010 (2010-09-15), pages 1563 - 1578, XP055350216 * |
Also Published As
Publication number | Publication date |
---|---|
CN112602135B (zh) | 2024-05-24 |
EP3839922A4 (en) | 2022-03-23 |
CN112602135A (zh) | 2021-04-02 |
EP3839922A1 (en) | 2021-06-23 |
AU2019322590B2 (en) | 2021-12-16 |
JP7067625B2 (ja) | 2022-05-16 |
US11888973B2 (en) | 2024-01-30 |
US20210314145A1 (en) | 2021-10-07 |
EP3839922B1 (en) | 2023-06-14 |
AU2019322590A1 (en) | 2021-03-11 |
JPWO2020036126A1 (ja) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11003646B2 (en) | Data isolation in a blockchain network | |
WO2019208484A1 (ja) | 秘密集約総和システム、秘密計算装置、秘密集約総和方法、およびプログラム | |
CN112000632B (zh) | 密文的分享方法、介质、分享客户端及*** | |
WO2020036126A1 (ja) | 秘密結合システム、この方法、秘密計算装置及びプログラム | |
JP6973633B2 (ja) | 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム | |
Tug | On the Characterization of Some Classes of Four‐Dimensional Matrices and Almost B‐Summable Double Sequences | |
WO2020036125A1 (ja) | 秘密強写像計算システム、これらの方法、秘密計算装置及びプログラム | |
EP3246900B1 (en) | Matrix and key generation device, matrix and key generation system, matrix coupling device, matrix and key generation method, and program | |
WO2020036127A1 (ja) | 秘密結合情報生成システム、秘密結合システム、これらの方法、秘密計算装置及びプログラム | |
JP7081663B2 (ja) | 秘密結合システム、方法、秘密計算装置及びプログラム | |
Ochieng et al. | Pythagorean Triples with Common Sides | |
JP7513820B1 (ja) | 機械学習用データの生成方法、機械学習用データ生成装置 | |
WO2019188320A1 (ja) | 秘密重複排除フィルタ生成システム、秘密重複排除システム、これらの方法、秘密計算装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19849488 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2020537440 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2019322590 Country of ref document: AU Date of ref document: 20190808 Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 2019849488 Country of ref document: EP Effective date: 20210315 |