WO2016114309A1 - 行列・キー生成装置、行列・キー生成システム、行列結合装置、行列・キー生成方法、プログラム - Google Patents

行列・キー生成装置、行列・キー生成システム、行列結合装置、行列・キー生成方法、プログラム Download PDF

Info

Publication number
WO2016114309A1
WO2016114309A1 PCT/JP2016/050850 JP2016050850W WO2016114309A1 WO 2016114309 A1 WO2016114309 A1 WO 2016114309A1 JP 2016050850 W JP2016050850 W JP 2016050850W WO 2016114309 A1 WO2016114309 A1 WO 2016114309A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
vector
elements
generation unit
key generation
Prior art date
Application number
PCT/JP2016/050850
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 EP16737380.2A priority Critical patent/EP3246900B1/en
Priority to CN201680005567.5A priority patent/CN107210005B/zh
Priority to JP2016569483A priority patent/JP6321216B2/ja
Priority to US15/537,567 priority patent/US10469257B2/en
Publication of WO2016114309A1 publication Critical patent/WO2016114309A1/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/46Secure multiparty computation, e.g. millionaire problem

Definitions

  • the present invention relates to a matrix / key generation apparatus, matrix / key generation system, matrix combination apparatus, matrix / key generation method, and program for processing data composed of rows and columns such as tables.
  • Non-Patent Document 1 for a matrix having a concealed element and a vector having a concealed element corresponding to each row of the matrix, the row order of the matrix and the order of the vector elements are: A technique for sorting according to vector elements while keeping the elements concealed by a secret calculation is shown.
  • Non-Patent Document 2 a calculation for counting the number of times the same element appears (the number of overlapping elements) (hereinafter referred to as “staircase calculation”) is performed while keeping the element concealed, and the result of concealment is shown.
  • the output technology is shown.
  • FIG. 1 is a diagram for explaining the outline of the staircase calculation. Note that ⁇ is a symbol indicating that it has been concealed.
  • the first element of input ⁇ 1 ⁇ is the first appearance
  • the first element of output is ⁇ 1 ⁇ .
  • the second element of input ⁇ 2 ⁇ is the first appearance
  • the second element of output is ⁇ 1 ⁇ .
  • the second element of the input is ⁇ 2 ⁇
  • the third element of the output is ⁇ 2 ⁇ .
  • the sixth element of the input is ⁇ 3 ⁇ because ⁇ 3 ⁇ of the sixth element of the input is the third appearance. In this way, when the staircase calculation is performed, the number of times the same element appears (the number of overlapping elements) is counted, and the result is output.
  • Non-Patent Document 3 discloses a technique for combining a plurality of matrices whose elements are concealed based on the concealed elements of a vector corresponding to each matrix with a small amount of communication.
  • Non-Patent Document 4 describes a technique for concealing data (distributed processing), a technique for restoring concealed data (restoration processing), addition, multiplication, and verification in a state where the concealed data is concealed (2 Technology that verifies whether two concealed data are equal) and obtains the concealed result is shown.
  • Non-Patent Document 3 The technique for combining matrices shown in Non-Patent Document 3 is based on the premise that there is no overlap in the vector elements that are the key of the combination, and the matrix combination is realized by a secret calculation with a small amount of communication. However, there is a problem that the vector element cannot be used when there is an overlap. In order to be able to use the technique of combining the matrices of Non-Patent Document 3, it is necessary to convert a vector having overlapping elements and a matrix to be combined into a vector having no overlapping elements and a matrix corresponding to the vector. There is.
  • an object of the present invention is to provide a technique for converting a vector having overlapping elements and a matrix to be combined into a vector having no overlapping elements and a matrix corresponding to the vector.
  • an integer of 1 or more N, n 0 or more N-1 an integer, K n an integer of 1 or more integer i and j, the matrix of K n rows T n, the number of the k n elements K n pieces of vectors, and the upper limit number row j of T n [j] matrix T n, the j-th element of the k n [j] the vector k n, the m n element of the vector k n overlap .
  • the j-th element of the vector k n to the corresponding element and the row j of the matrix T n.
  • the first invention of the present invention is a technique that can be combined with the matrix combination shown in Non-Patent Document 3, which is limited to the secret calculation.
  • the symbol indicating the concealed data to ⁇ , ⁇ 1 ⁇ the M n, ..., and set to based on ⁇ m n ⁇ .
  • the matrix / key generation apparatus according to the first aspect of the present invention constitutes a matrix / key generation system with three or more matrix / key generation apparatuses connected via a network.
  • the matrix / key generation system can perform a secret calculation while performing data communication between the matrix / key generation devices.
  • the matrix / key generation device includes a sorting unit, a vector generation unit, a set generation unit, a matrix generation unit, and a key generation unit.
  • the element corresponding to the same row as T n [j] of the matrix T n ′ corresponds to the combination of k n [j] and the elements of the set B n, j and the same row as T n [j]
  • the elements of the set B n, j are generated so as to be different from each other.
  • the second invention of the present invention is a technique for converting a vector having overlapping elements and a matrix to be combined into a vector having no overlapping elements and a matrix corresponding to the vector without performing a secret calculation.
  • the set consisting of mutually different m n number of elements to M n, the M n [i] and the i-th original set M n.
  • a matrix / key generation apparatus includes a vector generation unit, a set generation unit, a matrix generation unit, and a key generation unit.
  • Key generation unit, n 0, ..., for each of N-1, vector k 'of the matrix T n' n of T n [j] corresponding to the same line as the element k n [j]
  • a set B n, j corresponding to a combination of elements and a plurality of rows identical to T n [j] are generated such that the elements of the set B n, j are different from each other.
  • a vector having overlapping elements and a matrix to be combined can be converted into a vector having no overlapping elements and a matrix corresponding to the vector.
  • FIG. 1 is a diagram illustrating a configuration example of a matrix / key generation system according to Embodiment 1.
  • FIG. FIG. 6 is a diagram illustrating a processing flow of the matrix / key generation system according to the first embodiment and the matrix / key generation apparatus according to the second embodiment.
  • Element shows a vector x 0, x 1, x 2 that is the result of stairs computed for the vector k 0, k 1, k 2 shown in FIG. 2 in a state of being concealed.
  • FIG. 8 is a diagram showing a matrix obtained by combining the matrix T 0 ′ and the matrix T 1 ′ shown in FIG. 7.
  • N is an integer of 1 or more
  • n is an integer of 0 to N ⁇ 1
  • K n is an integer of 1 or more
  • i and j are integers
  • T n is a matrix of K n rows
  • k n the number of elements K n pieces of vectors
  • the m n element of the vector k n duplicate the upper limit number of 1 to M n, ..., set to based on m n, and the symbol indicating the concealed data and ⁇ .
  • J-th element of the vector k n is the element corresponding to the j-th row of the matrix T n.
  • the upper limit number m n may be set to the maximum value that may not be a number that is actually overlapping the element of the vector k n well overlap.
  • a matrix representing a table, a column vector representing a key of each row of the matrix, and a matrix combination will be described.
  • the binding matrix, vector k 0, ..., k if there is an element common to all N-1 is the matrix T 0 corresponding to the common elements, ..., T N-1 rows and bonded to one Line.
  • FIG. 2 shows a specific example of matrix combination.
  • the matrices T 0 , T 1 , T 2 are the matrices to be combined.
  • Vectors k 0 , k 1 and k 2 are column vectors indicating keys.
  • the first and fourth elements of the vector k 0 indicating the key of the matrix T 0 and the first and second elements of the vector k 1 indicating the key of the matrix T 1 are “1” and are common. That is, the keys of the first row and the fourth row of the matrix T 0 and the keys of the first row and the second row of the matrix T 1 are “1” and are common. Further, the key of the third row of the matrix T 0 (the third element of the vector k 0 ), the key of the third row and the fourth row of the matrix T 1 (the third and fourth elements of the vector k 1 ) are “ 3 ”, which is common.
  • the matrix obtained by coupling the matrix T 0 and matrix T 1 the first row and the first first row the results of combining rows of matrix T 1 of the matrix T 0, the first row of the matrix T 0 matrix T
  • the result of combining the second row of 1 is the second row
  • the result of combining the fourth row of the matrix T 0 and the first row of the matrix T 1 is the third row
  • the fourth row of the matrix T 0 and the matrix T 1 The result of combining the second row is the fourth row
  • the result of combining the third row of the matrix T 0 and the third row of the matrix T 1 is the fifth row
  • the third row of the matrix T 0 and the fourth row of the matrix T 1 The result of combining the rows is the sixth row.
  • the elements of the vector k 0 , the element of the vector k 1 , and the element of the vector k 2 indicating the key are common because the first and fourth elements of the vector k 0 having the element “1”, the vector k 1 first and second elements, which is the first element of the vector k 2. That is, the key is common to the first row and the fourth row of the matrix T 0 with the key “1”, the first row and the second row of the matrix T 1 , and the first row of the matrix T 2 .
  • the result of combining the first row of the matrix T 0 , the first row of the matrix T 1 , and the first row of the matrix T 2 is The result of combining one row, the first row of the matrix T 0, the second row of the matrix T 1 and the first row of the matrix T 2 is the second row, the fourth row of the matrix T 0 and the first row of the matrix T 1 .
  • the result of combining the row and the first row of the matrix T 2 is the third row, the result of combining the fourth row of the matrix T 0 , the second row of the matrix T 1 and the first row of the matrix T 2 is the fourth result.
  • a line As a line.
  • FIG. 3 shows a configuration example of the matrix / key generation system
  • FIG. 4 shows a processing flow of the matrix / key generation system.
  • the matrix / key generation system includes three or more matrix / key generation apparatuses 160 connected by a network 800, and can perform a secret calculation between the matrix / key generation apparatuses 160.
  • Each matrix / key generation device 160 includes a sorting unit 110, a vector generation unit 120, a set generation unit 130, a matrix generation unit 140, a key generation unit 150, and a recording unit 190.
  • the number of rows and columns of the matrix T n which is information the number of elements of the vector k n, the value m n is not concealed, each element of the matrix T n, the vector k n elements
  • Each piece of information is concealed between the matrix / key generation device 160. That is, each element of the matrix T n, each piece of the elements of the vector k n is recorded is distributed in the recording unit 190 of the plurality of matrix-key generating apparatus.
  • “fragment” is data that can restore the original value if a predetermined number of fragments are known, and is referred to as “distributed data” in Non-Patent Document 4.
  • FIG. 5 shows a state in which the order of the rows of the matrix T 0 and the order of the elements of the vector k 0 shown in FIG. 2 are sorted according to the elements of the vector k 0 while maintaining the correspondence in the secret calculation. In this example, it has become the key value is less fast turn about (the elements of the vector k 0) (above).
  • Non-Patent Document 4 A technique for concealing the value is disclosed in Non-Patent Document 4 and the like. 6, the sort unit 110, the vector k 0, k 1, k 2 after the elements sorting the vector k 0, k 1, k 2 shown in FIG. 2 in a state of being concealed, vector generation unit Reference numeral 120 denotes vectors x 0 , x 1 , and x 2 that are the results of performing staircase calculations on the sorted vectors k 0 , k 1 , and k 2 .
  • a set B n, j in which each of the elements is concealed is represented by N ⁇ 1 elements selected by the elements M 0 ,..., M N ⁇ 1 other than the set M n and x ⁇ 1
  • a value that is deterministically calculated from the combination (a value corresponding to the combination in a one-to-one relationship, in other words, a value that is always calculated to be different for a different combination) may be used.
  • corresponding to a combination is an expression for indicating that not only the combination itself but also a value deterministically calculated from the combination is included.
  • the processing of the set generation unit 130 will be described using the vector k 0 , the vector k 1 , and the vector k 2 illustrated in FIG.
  • the upper limit number m 1 of duplicate elements in vector k 1 is 2
  • the same may be done for other combinations.
  • processing for combining the matrix T 0 , the matrix T 1, and the matrix T 2 there are three combinations.
  • x 0 [1] ⁇ 1 ⁇
  • set M 1 ⁇ 1 ⁇ , ⁇ 2 ⁇
  • set M 2 ⁇ 1 ⁇ , ⁇ 2 ⁇ , ⁇ 3 ⁇ , so x 0 [1] and the set
  • the combination of the elements of M 1 and the elements of set M 2 is ( ⁇ 1 ⁇ , ⁇ 1 ⁇ , ⁇ 1 ⁇ ), ( ⁇ 1 ⁇ , ⁇ 1 ⁇ , ⁇ 2 ⁇ ), ( ⁇ 1 ⁇ , ⁇ 1 ⁇ . , 3 ⁇ ), ( ⁇ 1 ⁇ , 2 ⁇ , ⁇ 1 ⁇ ), ( ⁇ 1 ⁇ , ⁇ 2 ⁇ , ⁇ 2 ⁇ ), ( ⁇ 1 ⁇ , ⁇ 2 ⁇ , ⁇ 3 ⁇ ).
  • the set B 0,1 ⁇ ( ⁇ 1 ⁇ , ⁇ 1 ⁇ , ⁇ 1 ⁇ ), ( ⁇ 1 ⁇ , ⁇ 1 ⁇ , ⁇ 2 ⁇ ), ( ⁇ 1 ⁇ , ⁇ 1 ⁇ , ⁇ 3 ⁇ ), ( ⁇ 1 ⁇ , ⁇ 2 ⁇ , ⁇ 1 ⁇ ), ( ⁇ 1 ⁇ , ⁇ 2 ⁇ , ⁇ 2 ⁇ ), ( ⁇ 1 ⁇ , ⁇ 2 ⁇ , ⁇ 3 ⁇ ) ⁇ .
  • the matrix T 0 ′ is a 10-row matrix in which two identical rows exist.
  • the matrix T 1 ′ is also an 8-row matrix with two identical rows.
  • T 0 ′ [1] and T 0 ′ [2] are both T 0 [1]
  • k 0 ′ [1] is (one element of k 0 [1], B 0,1 )
  • k 0 ′ [ 2] becomes (k 0 [1], another element of B 0,1 ).
  • k 0 '[1] ( ⁇ 1 ⁇ , ( ⁇ 1 ⁇ , ⁇ 1 ⁇ )
  • k 0 ' [2] ( ⁇ 1 ⁇ , ( ⁇ 1 ⁇ , ⁇ 2 ⁇ )). ing.
  • elements (k 0 ′ [1] and k 0 ′ [2]) corresponding to the same row as T 0 [1] of the matrix T 0 ′ are k 0 [1] and elements of the set B 0,1 . It corresponds to the combination of. Furthermore, since there are a plurality of rows identical to T 0 [1], the elements of the set B 0,1 are selected to be different from each other.
  • corresponding to a combination in the description of the key generation unit 150 includes not only the combination itself but also a value deterministically calculated from the combination (a value corresponding to the combination in a one-to-one relationship). It is an expression for.
  • k 0 ′ [1] ⁇ f ( ⁇ 1 ⁇ , ( ⁇ 1 ⁇ , ⁇ 1 ⁇ )) ⁇ may be used as a function for calculating f deterministically from the combination.
  • f is a function which can perform a secret calculation.
  • a vector having overlapping elements and a matrix to be combined can be converted into a vector having no overlapping elements and a matrix corresponding to the vector.
  • FIG. 8 shows a configuration example of the matrix connection system
  • FIG. 9 shows a processing flow of the matrix connection system.
  • the matrix combination system includes three or more matrix combination apparatuses 100 connected by a network 800 and can perform a secret calculation between the matrix combination apparatuses 100.
  • the matrix combination apparatus 100 includes a matrix / key generation apparatus 160 and a combination unit 170.
  • the matrix / key generation device 160 and the matrix / key generation step S160 are the same as those described in the first embodiment.
  • the combining unit 170 responds to each common element.
  • This processing may be performed using the matrix combination technique described in Non-Patent Document 3.
  • FIG. 10 shows a matrix obtained by combining the matrix T 0 ′ and the matrix T 1 ′ shown in FIG. It can be seen that the matrix shown in FIG.
  • each element of the matrix obtained by combining the matrix T 0 and the matrix T 1 shown in FIG. 2 is concealed.
  • the matrix T 0 ', ..., T N -1' and vector k 0 ', ..., k N -1' by the processing up to obtaining a it is likely that known the line spacing of the correspondence, confidentiality If the rows are randomly replaced at the time of matrix combination in the calculation, the correspondence between the rows can be lost.
  • the communication amount is O (Q ⁇ logQ) where Q is the sum of the number of records in the input table (sum of the number of rows when expressed in matrix format).
  • Q is the sum of the number of records in the input table (sum of the number of rows when expressed in matrix format).
  • the traffic can be O (PQ ⁇ logQ).
  • the processing generally increases in the order of the square of P, but in the case of the present invention, the order of the power of P is the order, so that the amount of communication in Non-Patent Document 3 can be reduced. You can save it.
  • the idea of the present invention can be used without being limited to the secret calculation. It is not necessary to use a plurality of matrix / key generation devices unless it is a secret calculation.
  • a single matrix / key generation device can convert a vector indicating a key having an overlapping element and a matrix to be combined into a vector indicating a key having no overlapping element and a matrix corresponding to the vector. Therefore, in the second embodiment, a case where the information is not concealed will be described.
  • N is an integer greater than or equal to 1
  • n is an integer greater than or equal to 0 and less than or equal to N ⁇ 1
  • K n is an integer greater than or equal to 1
  • i and j are integers
  • T n is a matrix of K n rows
  • k n is an element the upper limit number K n-number of vectors
  • row j of T n [j] matrix T n row j of T n [j] matrix T n
  • the m n element of the vector k n overlap of the number, the matrix T 0, ..., T N- 1 and the vector k 0, ..., and inputs the k N-1.
  • FIG. 11 shows a configuration example of the matrix / key generation apparatus according to the second embodiment
  • FIG. 4 shows an example of a processing flow of the matrix / key generation apparatus according to the second embodiment.
  • the matrix / key generation device 260 includes a sorting unit 210, a vector generation unit 220, a set generation unit 230, a matrix generation unit 240, and a key generation unit 250.
  • Sorting unit 210, n 0, ..., for each of N-1, the order of the rows in the order and the vector k n elements of the matrix T n, while keeping the correspondence in accordance with the elements of the vector k n Sorting Then, the matrix T 0 ,..., T N-1 and the vector k 0 ,..., K N ⁇ 1 are updated with the sorted matrix and vector (S210).
  • Vector generation unit 220, a set generator 230, the matrix generation unit 240, the key generating unit 250, a matrix T 0 to the sort unit 210 is updated, ..., T N-1 and the vector k 0, ..., with respect to k N-1 Process.
  • the elements are generated to include all combinations of elements (S230).
  • the key generation unit 250 sets the vector k n ′ to elements k n [j corresponding to the same row as T n [j] of the matrix T n ′. ] And the elements of the set B n, j and there are a plurality of rows identical to T n [j], the elements of the set B n, j are generated so as to be different from each other (S250).
  • each process is different from the first embodiment in that it is not a secret calculation
  • the output matrix T 0 ′, T 1 ′ and vectors k 0 ′, k 1 ′ are a matrix and a vector in which each element in FIG. 7 is not concealed. Therefore, according to the matrix / key generation apparatus of the second embodiment, a vector having overlapping elements and a matrix to be combined can be converted into a vector having no overlapping elements and a matrix corresponding to the vector.
  • Example 2 the superordinate concept of Example 2 is derived.
  • the sorting unit 210 is omitted, and the vector generation unit 220 is changed to a vector generation unit 220 ′.
  • the M n in the set of M n [i] i, the set consisting of mutually different m n number of elements to M n, i-th set M n a M n [i] Of the original.
  • the functional configuration of the matrix / key generation apparatus of this modification is shown in FIG. 11, and the processing flow is shown in FIG.
  • the vector generation unit 220 ′, the set generation unit 230, the matrix generation unit 240, and the key generation unit 250 are configured so that the input matrices T 0 ,..., T N ⁇ 1 and the vectors k 0 ,. 1 is processed (the sort step S210 is not performed).
  • a vector having overlapping elements and a matrix to be combined can be converted into a vector having no overlapping elements and a matrix corresponding to the vector.
  • the program describing the processing contents 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.
  • this program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
  • a computer that executes such a program first stores a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device.
  • the computer reads a program stored in its own recording medium and executes a process according to the read program.
  • the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer.
  • the processing according to the received program may be executed sequentially.
  • the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes a processing function only by an execution instruction and result acquisition. It is good.
  • the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).
  • the present apparatus is configured by executing a predetermined program on a computer.
  • a predetermined program on a computer.
  • at least a part of these processing contents may be realized by hardware.
  • the present invention can be used for statistical data processing and analysis using a computer.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

 要素に重複があるベクトルと結合対象の行列を、重複がないベクトルとそのベクトルに対応した行列に変換する。行列・キー生成装置は、ベクトル生成部、集合生成部、行列生成部、キー生成部を備える。ベクトル生成部は、ベクトルxをi≠jのときにk[i]=k[j]ならばx[i]≠x[j]となるように生成する。集合生成部は、集合Bn,jを集合M以外の集合M,…,MN-1から1つずつ選んだN-1個の元とx[j]の組合せに対応し、すべての組合せ分の元を含むように生成する。行列生成部は、行列T'をT[j]と同一の行を集合Bn,jの元の数だけ有するように生成する。キー生成部は、ベクトルk'を行列T'のT[j]と同一の行に対応する要素がk[j]と集合Bn,jの元との組合せに対応し、かつT[j]と同一の行が複数ある場合は集合Bn,jの元は互いに異なるように生成する。

Description

行列・キー生成装置、行列・キー生成システム、行列結合装置、行列・キー生成方法、プログラム
 本発明は、表などの行と列で構成されたデータを処理するための行列・キー生成装置、行列・キー生成システム、行列結合装置、行列・キー生成方法、プログラムに関する。
 非特許文献1には、要素が秘匿化された行列と、その行列の行ごとに対応している秘匿化された要素を持つベクトルに対し、行列の行の順番とベクトルの要素の順番を、秘匿計算によって要素を秘匿化したままで、ベクトルの要素にしたがってソートする技術が示されている。非特許文献2には、同じ要素が出現した回数(重複している個数)をカウントする計算(以下、「階段計算」と呼ぶ)を、要素を秘匿化したままで行い、秘匿化した結果を出力する技術が示されている。図1は階段計算の概要を説明するための図である。なお、∥∥は秘匿化されたことを示す記号である。入力の第1の要素の∥1∥は1回目の出現なので、出力の第1の要素は∥1∥である。入力の第2の要素の∥2∥は1回目の出現なので、出力の第2の要素は∥1∥である。入力の第3の要素の∥2∥は2回目の出現なので、出力の第3の要素は∥2∥である。入力の第6の要素の∥3∥は3回目の出現なので、出力の第6の要素は∥3∥である。このように、階段計算を行うと同じ要素が出現した回数(重複している個数)をカウントし、その結果が出力される。非特許文献3には、要素が秘匿化された複数の行列を、少ない通信量で、それぞれの行列に対応するベクトルの秘匿化された要素に基づいて結合する技術が示されている。非特許文献4には、データを秘匿化する技術(分散処理)、秘匿化されたデータを復元する技術(復元処理)、秘匿化されたデータを秘匿化した状態で加算,乗算,検証(2つの秘匿化したデータが等しいかの検証)を行い、秘匿化された結果を得る技術などが示されている。
Koki Hamada, Dai Ikarashi, Koji Chida, and Katsumi Takahashi, "Oblivious radix sort: An efficient sorting algorithm for practical secure multi-party computation", IACR Cryptology ePrint Archive, Vol. 2014, p. 121, 2014. 濱田浩気, 五十嵐大, 千田浩司, "秘匿計算上の集約関数中央値計算アルゴリズム", In CSS, 2012. 濱田浩気, 菊池亮, 五十嵐大, 千田浩司, "秘匿計算上の結合アルゴリズム",人工知能学会全国大会(第26 回) 論文集, June 2012. 千田浩司, 濱田浩気, 五十嵐大, 高橋克巳, "軽量検証可能3 パーティ秘匿関数計算の再考", In CSS, 2010.
 非特許文献3に示された行列を結合する技術は、結合のキーとなるベクトルの要素に重複がないことを前提にし、少ない通信量で秘匿計算によって行列の結合を実現している。しかし、ベクトルの要素に重複がある場合には利用できないという課題がある。非特許文献3の行列を結合する技術を利用できるようにするためには、要素に重複があるベクトルと結合対象の行列を、要素に重複がないベクトルとそのベクトルに対応した行列に変換する必要がある。
 そこで本発明は、要素に重複があるベクトルと結合対象の行列を、要素に重複がないベクトルとそのベクトルに対応した行列に変換する技術を提供することを目的とする。
 まず、Nを1以上の整数、nを0以上N-1以下の整数、Kを1以上の整数、iとjを整数、TをK行の行列、kを要素の数がK個のベクトル、T[j]を行列Tの第j行、k[j]をベクトルkのj番目の要素、mをベクトルkの要素が重複する上限数とする。ベクトルkのj番目の要素は行列Tの第j行と対応する要素とする。
 本発明の第1の発明は、秘匿計算に限定し、非特許文献3に示された行列結合と組み合わせることができる技術である。第1の発明では、∥∥を秘匿化されたデータであることを示す記号、Mを∥1∥,…,∥m∥を元とする集合とする。第1の発明の行列・キー生成装置は、ネットワークで接続された3つ以上の行列・キー生成装置で行列・キー生成システムを構成する。行列・キー生成システムは、行列・キー生成装置間でデータ通信を行いながら秘匿計算ができる。また、行列Tの行と列の数、ベクトルkの要素の数、値mは秘匿化されていない情報であり、行列Tの要素のそれぞれ、ベクトルkの要素のそれぞれは行列・キー生成装置の間で秘匿化された情報である。行列・キー生成装置は、ソート部、ベクトル生成部、集合生成部、行列生成部、キー生成部を備える。
 ソート部は、他の行列・キー生成装置のソート部との秘匿計算によって、n=0,…,N-1のそれぞれに対して、行列Tの行の順番とベクトルkの要素の順番を、ベクトルkの要素にしたがって対応を維持したままソートし、ソート後の行列とベクトルで、行列T,…,TN-1とベクトルk,…,kN-1を更新する。ベクトル生成部、集合生成部、行列生成部、キー生成部は、ソート部が更新した行列T,…,TN-1とベクトルk,…,kN-1に対して処理を行う。ベクトル生成部は、他の行列・キー生成装置のベクトル生成部との秘匿計算によって、n=0,…,N-1のそれぞれに対して、要素の数がK個であり要素のそれぞれを秘匿化したベクトルxを、x[1]=∥1∥とし、2≦i≦Kに対してk[i-1]=k[i]ならばx[i]=∥x[i-1]+1∥、k[i-1]≠k[i]ならばx[i]=∥1∥のように生成する。集合生成部は、他の行列・キー生成装置の集合生成部との秘匿計算によって、n=0,…,N-1のそれぞれ、かつj=1,…,Kのそれぞれに対して、元のそれぞれを秘匿化した集合Bn,jを、それぞれの元が、集合M以外の集合M,…,MN-1から1つずつ選んだN-1個の元とx[j]の組合せに対応し、すべての組合せ分の元を含むように生成する。行列生成部は、他の行列・キー生成装置の行列生成部との秘匿計算によって、n=0,…,N-1のそれぞれに対して、要素のそれぞれを秘匿化した行列T’を、j=1,…,KのすべてについてT[j]と同一の行を集合Bn,jの元の数だけ有するように生成する。キー生成部は、他の行列・キー生成装置のキー生成部との秘匿計算によって、n=0,…,N-1のそれぞれに対して、要素のそれぞれを秘匿化したベクトルk’を、行列T’のT[j]と同一の行に対応する要素がk[j]と集合Bn,jの元との組合せに対応し、かつT[j]と同一の行が複数ある場合は集合Bn,jの元は互いに異なるように生成する。
 本発明の第2の発明は、秘匿計算は行わないで、要素に重複があるベクトルと結合対象の行列を、要素に重複がないベクトルとそのベクトルに対応した行列に変換する技術である。第2の発明では、Mを互いに異なるm個の元からなる集合、M[i]を集合Mのi番目の元とする。また、行列T,…,TN-1とベクトルk,…,kN-1を入力とする。第2の発明の行列・キー生成装置は、ベクトル生成部、集合生成部、行列生成部、キー生成部を備える。ベクトル生成部は、n=0,…,N-1のそれぞれに対して、要素の数がK個であり、各要素が集合Mの元であるベクトルxを、i≠jのときにk[i]=k[j]ならばx[i]≠x[j]となるように生成する。集合生成部は、n=0,…,N-1のそれぞれ、かつj=1,…,Kのそれぞれに対して、集合Bn,jを、それぞれの元が、集合M以外の集合M,…,MN-1から1つずつ選んだN-1個の元とx[j]の組合せに対応し、すべての組合せ分の元を含むように生成する。行列生成部は、n=0,…,N-1のそれぞれに対して、行列T’を、j=1,…,KのすべてについてT[j]と同一の行を集合Bn,jの元の数だけ有するように生成する。キー生成部は、n=0,…,N-1のそれぞれに対して、ベクトルk’を、行列T’のT[j]と同一の行に対応する要素がk[j]と集合Bn,jの元との組合せに対応し、かつT[j]と同一の行が複数ある場合は集合Bn,jの元は互いに異なるように生成する。
 本発明の行列・キー生成システム、行列・キー生成装置によれば、要素に重複があるベクトルと結合対象の行列を、要素に重複がないベクトルとそのベクトルに対応した行列に変換することができる。
階段計算の概要を説明するための図。 行列の結合の具体例を示す図。 実施例1の行列・キー生成システムの構成例を示す図。 実施例1の行列・キー生成システム、および実施例2の行列・キー生成装置の処理フローを示す図。 秘匿計算で図2に示した行列Tの行の順番とベクトルkの要素の順番を、ベクトルkの要素にしたがって対応を維持したままソートした様子を示す図。 要素が秘匿化された状態の図2に示したベクトルk,k,kに対して階段計算を行った結果であるベクトルx,x,xを示す図。 要素が秘匿化された状態の図2に示した行列Tと行列Tとを結合する場合の行列T’,ベクトルk’と行列T’,ベクトルk’の例を示す図。 実施例1変形例の行列結合システムの構成例を示す図。 実施例1変形例の行列結合システムの処理フローを示す図。 図7に示した行列T’と行列T’とを結合して得られる行列を示す図。 実施例2、実施例2変形例の行列・キー生成装置の構成例を示す図。
 以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
 実施例1の説明では、Nを1以上の整数、nを0以上N-1以下の整数、Kを1以上の整数、iとjを整数、TをK行の行列、kを要素の数がK個のベクトル、T[j]を行列Tの第j行、k[j]をベクトルkのj番目の要素、mをベクトルkの要素が重複する上限数、Mを1,…,mを元とする集合、∥∥を秘匿化されたデータであることを示す記号とする。ベクトルkのj番目の要素は行列Tの第j行と対応する要素である。なお、上限数mは、ベクトルkの要素が実際に重複している数でなくてもよく、重複する可能性がある最大値に設定すればよい。
<行列の結合>
 まず、表を表現する行列とその行列の各行のキーを表現する列ベクトル、および行列の結合について説明する。行列の結合では、ベクトルk,…,kN-1のすべてに共通する要素がある場合は、共通する要素に対応する行列T,…,TN-1の行を結合して1つの行とする。図2に、行列の結合の具体例を示す。行列T,T,Tが結合の対象となる行列である。ベクトルk,k,kがキーを示す列ベクトルである。なお、本明細書では、「行列」とは表を表現する形式、「ベクトル」とはキーを表現する形式を意味しているので、行列Tとベクトルkの各要素は1つの数値に限る必要はなく、数値の組合せ、文字列などでも構わない。
 ここで、行列Tと行列Tとの結合を考える。行列Tのキーを示すベクトルkの1番目と4番目の要素と、行列Tのキーを示すベクトルkの1番目と2番目の要素が「1」であり、共通している。つまり、行列Tの第1行と第4行のキー、行列Tの第1行と第2行のキーが「1」であり、共通している。また、行列Tの第3行のキー(ベクトルkの3番目の要素)、行列Tの第3行と第4行のキー(ベクトルkの3番目と4番目の要素)が「3」であり、共通している。したがって、行列Tと行列Tとを結合した行列では、行列Tの第1行と行列Tの第1行を結合した結果を第1行、行列Tの第1行と行列Tの第2行を結合した結果を第2行、行列Tの第4行と行列Tの第1行を結合した結果を第3行、行列Tの第4行と行列Tの第2行を結合した結果を第4行、行列Tの第3行と行列Tの第3行を結合した結果を第5行、行列Tの第3行と行列Tの第4行を結合した結果を第6行としている。
 次に、行列Tと行列Tと行列Tとの結合を考える。キーを示しているベクトルkの要素、ベクトルkの要素、ベクトルkの要素が共通するのは、要素が「1」のベクトルkの1番目と4番目の要素、ベクトルkの1番目と2番目の要素、ベクトルkの1番目の要素である。つまり、キーが共通するのは、キーが「1」の行列Tの第1行と第4行、行列Tの第1行と第2行、行列Tの第1行である。したがって、行列Tと行列Tと行列Tとを結合した行列では、行列Tの第1行と行列Tの第1行と行列Tの第1行とを結合した結果を第1行、行列Tの第1行と行列Tの第2行と行列Tの第1行とを結合した結果を第2行、行列Tの第4行と行列Tの第1行と行列Tの第1行とを結合した結果を第3行、行列Tの第4行と行列Tの第2行と行列Tの第1行とを結合した結果を第4行としている。
<構成とアルゴリズム>
 図3に行列・キー生成システムの構成例を、図4に行列・キー生成システムの処理フローを示す。行列・キー生成システムは、ネットワーク800で接続された3つ以上の行列・キー生成装置160を有し、行列・キー生成装置160間で秘匿計算ができる。それぞれの行列・キー生成装置160は、ソート部110、ベクトル生成部120、集合生成部130、行列生成部140、キー生成部150、記録部190を備える。本実施例では、行列Tの行と列の数、ベクトルkの要素の数、値mは秘匿化されていない情報であり、行列Tの要素のそれぞれ、ベクトルkの要素のそれぞれは行列・キー生成装置160の間で秘匿化された情報である。つまり、行列Tの要素のそれぞれ、ベクトルkの要素のそれぞれの断片が、複数の行列・キー生成装置の記録部190に分散されて記録されている。なお、「断片」とは、所定の数の断片が分かれば元の値を復元できるデータであり、非特許文献4では「分散データ」と呼ばれている。
 ソート部110は、他の行列・キー生成装置160のソート部110との秘匿計算によって、n=0,…,N-1のそれぞれに対して、行列Tの行の順番とベクトルkの要素の順番を、ベクトルkの要素にしたがって対応を維持したままソートし、ソート後の行列とベクトルで、行列T,…,TN-1とベクトルk,…,kN-1を更新する(S110)。なお、秘匿計算でソート処理を行う方法については非特許文献1に、具体的に示されている。また、ソートは昇順でも降順でもよい。図5に、秘匿計算で図2に示した行列Tの行の順番とベクトルkの要素の順番を、ベクトルkの要素にしたがって対応を維持したままソートした様子を示す。この例では、値が小さいキー(ベクトルkの要素)ほど早い順番(上)になっている。ベクトル生成部120、集合生成部130、行列生成部140、キー生成部150は、ソート部110が更新した行列T,…,TN-1とベクトルk,…,kN-1に対して処理を行う。
 ベクトル生成部120は、他の行列・キー生成装置160のベクトル生成部120との秘匿計算によって、n=0,…,N-1のそれぞれに対して、要素の数がK個であり要素のそれぞれを秘匿化したベクトルxを、x[1]=∥1∥とし、2≦i≦Kに対してk[i-1]=k[i]ならばx[i]=∥x[i-1]+1∥、k[i-1]≠k[i]ならばx[i]=∥1∥のように生成する(S120)。この処理は、非特許文献2に示された階段計算と同じである。また、値を秘匿化する技術は非特許文献4などに示されている。図6に、ソート部110が、要素が秘匿化された状態の図2に示したベクトルk,k,kをソートした後のベクトルk,k,kと、ベクトル生成部120が、ソート後のベクトルk,k,kに対して階段計算を行った結果であるベクトルx,x,xを示す。
 集合生成部130は、他の行列・キー生成装置160の集合生成部130との秘匿計算によって、n=0,…,N-1のそれぞれ、かつj=1,…,Kのそれぞれに対して、元のそれぞれを秘匿化した集合Bn,jを、それぞれの元が、集合M以外の集合M,…,MN-1から1つずつ選んだN-1個の元とx[j]の組合せに対応し、すべての組合せ分の元を含むように生成する(S130)。例えば、組合せを(Mの元,…,Mn-1の元,x[j],Mn+1の元,…,MN-1の元)のように作り、1つの元とすればよい。また、組合せから決定的に計算される値(組合せと1対1に対応している値、言い換えると異なる組合せのときには必ず異なる計算値となるように求められた値)を元としてもよい。上記の「組合せに対応」とは、組合せ自体だけでなく、組合せから決定的に計算される値を含むことを示すための表現である。
 例えば、図6に示したベクトルk、ベクトルk、ベクトルkを用いて集合生成部130の処理を説明する。ベクトルkでは要素に∥1∥が2つあり、他の要素はそれぞれ1つずつなので、ベクトルkで要素が重複する上限数mは2である。同様に要素が重複する上限数を調べると、ベクトルkで要素が重複する上限数mは2、ベクトルkで要素が重複する上限数mは3である。よって、集合M={∥1∥,∥2∥}、集合M={∥1∥,∥2∥}、集合M={∥1∥,∥2∥,∥3∥}である。まず、行列Tと行列Tとを結合する処理の例を示す。x[1]=∥1∥、集合M={∥1∥,∥2∥}なので、x[1]と集合Mの元の組合せは、(∥1∥,∥1∥)と(∥1∥,∥2∥)となる。よって、集合B0,1={(∥1∥,∥1∥),(∥1∥,∥2∥)}となる。また、例えば、x[2]=∥2∥、集合M={∥1∥,∥2∥}なので、x[2]と集合Mの元の組合せは、(∥2∥,∥1∥)と(∥2∥,∥2∥)であり、集合Mの元とx[4]の組合せは、(∥1∥,∥2∥)と(∥2∥,∥2∥)である。他の組合せについても同様に行えばよい。行列Tと行列Tと行列Tとを結合する処理の場合は、3つの組合せになる。x[1]=∥1∥、集合M={∥1∥,∥2∥}、集合M={∥1∥,∥2∥,∥3∥}なので、x[1]と集合Mの元と集合Mの元の組合せは、(∥1∥,∥1∥,∥1∥),(∥1∥,∥1∥,∥2∥),(∥1∥,∥1∥,∥3∥),(∥1∥,∥2∥,∥1∥),(∥1∥,∥2∥,∥2∥),(∥1∥,∥2∥,∥3∥)となる。よって、集合B0,1={{(∥1∥,∥1∥,∥1∥),(∥1∥,∥1∥,∥2∥),(∥1∥,∥1∥,∥3∥),(∥1∥,∥2∥,∥1∥),(∥1∥,∥2∥,∥2∥),(∥1∥,∥2∥,∥3∥)}}となる。
 行列生成部140は、他の行列・キー生成装置160の行列生成部140との秘匿計算によって、n=0,…,N-1のそれぞれに対して、要素のそれぞれを秘匿化した行列T’を、j=1,…,KのすべてについてT[j]と同一の行を集合Bn,jの元の数だけ有するように生成する(S140)。図7に要素が秘匿化された状態の図2に示した行列Tと行列Tとを結合する場合の行列T’,ベクトルk’と行列T’,ベクトルk’の例を示す。行列Tと行列Tとを結合する処理の場合、集合B0,1の元の数は2なのでT[1]と同一の行を2行作る。同様に、集合B0,2,B0,3,B0,4,B0,5の元の数も2なので、それぞれ同じ行を2つずつ作る。したがって、行列T’は同じ行が2つずつ存在する10行の行列になる。また、行列T’も同じ行が2つずつ存在する8行の行列になる。
 キー生成部150は、他の行列・キー生成装置160のキー生成部150との秘匿計算によって、n=0,…,N-1のそれぞれに対して、要素のそれぞれを秘匿化したベクトルk’を、行列T’のT[j]と同一の行に対応する要素がk[j]と集合Bn,jの元との組合せに対応し、かつT[j]と同一の行が複数ある場合は集合Bn,jの元は互いに異なるように生成する(S150)。行列T’が10行、行列T’が8行なので、ベクトルk’の要素は10個、ベクトルk’の要素は8個である。T’[1]とT’[2]はともにT[1]なので、k’[1]は(k[1],B0,1の1つの元)、k’[2]は(k[1],B0,1の別の元)となる。図7ではk’[1]=(∥1∥,(∥1∥,∥1∥))、k’[2]=(∥1∥,(∥1∥,∥2∥))となっている。つまり、行列T’のT[1]と同一の行に対応する要素(k’[1]とk’[2])がk[1]と集合B0,1の元との組合せに対応している。さらに、T[1]と同一の行が複数あるので、集合B0,1の元は互いに異なるように選ばれている。
 なお、キー生成部150の説明中の「組合せに対応」も、組合せ自体だけでなく、組合せから決定的に計算される値(組合せと1対1に対応している値)を含むことを示すための表現である。例えば、fを組合せから決定的に値を計算する関数として、k’[1]=∥f(∥1∥,(∥1∥,∥1∥))∥としてもよい。ただし、fは秘匿計算が可能な関数である。
 図7から分かるように、ベクトルk’にもベクトルk’にも、ベクトル内で要素の重複がない。したがって、実施例1の行列・キー生成装置によれば、要素に重複があるベクトルと結合対象の行列を、要素に重複がないベクトルとそのベクトルに対応した行列に変換することができる。
[変形例]
 図8に行列結合システムの構成例を、図9に行列結合システムの処理フローを示す。行列結合システムは、ネットワーク800で接続された3つ以上の行列結合装置100を有し、行列結合装置100同士の間で秘匿計算ができる。行列結合装置100は、行列・キー生成装置160と結合部170を備えている。行列・キー生成装置160及び行列・キー生成ステップS160は、実施例1で説明した内容と同じである。
 結合部170は、他の行列結合装置100の結合部170との秘匿計算によって、ベクトルk’,…,kN-1’のすべてに共通する要素がある場合は、共通する要素ごとに対応する行列T’,…,TN-1’の行を結合して1つの行とし、要素のそれぞれを秘匿化した行列を生成する(S170)。この処理は、非特許文献3に記載された行列結合の技術を用いればよい。図10に、図7に示した行列T’と行列T’とを結合して得られる行列を示す。図10に示された行列は、図2に示した行列Tと行列Tとを結合した行列の各要素を秘匿化した行列になっていることが分かる。なお、行列T’,…,TN-1’とベクトルk’,…,kN-1’を求めるまでの処理では、行間の対応関係を知られてしまう可能性があるが、秘匿計算での行列の結合のときに行をランダムに置換すれば、行間の対応関係を分からなくできる。
 非特許文献3の行列結合の技術は、入力の表のレコード数の総和(行列形式で表現した場合は行数の総和)をQとすると、通信量がO(Q・logQ)である。本発明の行列・行列結合システムの場合、行数の総和をQ、重複数の上限をPとすると、通信量をO(PQ・logQ)にできる。キーに重複がある場合、一般的には処理はPの2乗のオーダーで増加するが、本発明の場合はPの1乗のオーダーなので、非特許文献3の通信量を少なくできるという長所を生かすことができる。
 実施例1では秘匿計算の場合を検討したが、本発明の考え方は秘匿計算に限定しなくても利用できる。秘匿計算でなければ複数の行列・キー生成装置を使う必要はない。1台の行列・キー生成装置で、要素に重複があるキーを示すベクトルと結合対象の行列を、要素に重複がないキーを示すベクトルとそのベクトルに対応した行列に変換できる。そこで、実施例2では秘匿化しない場合を説明する。
 実施例2では、Nを1以上の整数、nを0以上N-1以下の整数、Kを1以上の整数、iとjを整数、TをK行の行列、kを要素の数がK個のベクトル、T[j]を行列Tの第j行、k[j]をベクトルkのj番目の要素、mをベクトルkの要素が重複する上限数、行列T,…,TN-1とベクトルk,…,kN-1を入力とする。また、MをM[i]=iであるm個の元からなる集合とする。
 図11に実施例2の行列・キー生成装置の構成例を、図4に実施例2の行列・キー生成装置の処理フローの例を示す。行列・キー生成装置260は、ソート部210、ベクトル生成部220、集合生成部230、行列生成部240、キー生成部250を備える。ソート部210は、n=0,…,N-1のそれぞれに対して、行列Tの行の順番とベクトルkの要素の順番を、ベクトルkの要素にしたがって対応を維持したままソートし、ソート後の行列とベクトルで、行列T,…,TN-1とベクトルk,…,kN-1を更新する(S210)。ベクトル生成部220、集合生成部230、行列生成部240、キー生成部250は、ソート部210が更新した行列T,…,TN-1とベクトルk,…,kN-1に対して処理を行う。
 ベクトル生成部220は、n=0,…,N-1のそれぞれに対して、ベクトルxを、x[i]=1とし、2≦i≦Kに対してk[i-1]=k[i]ならばx[i]=x[i-1]+1、k[i-1]≠k[i]ならばx[i]=1のように生成する(S220)。集合生成部230は、n=0,…,N-1のそれぞれ、かつj=1,…,Kのそれぞれに対して、集合Bn,jを、それぞれの元が、集合M以外の集合M,…,MN-1から1つずつ選んだN-1個の元とx[j]の組合せに対応し、すべての組合せ分の元を含むように生成する(S230)。行列生成部240は、n=0,…,N-1のそれぞれに対して、行列T’を、j=1,…,KのすべてについてT[j]と同一の行を集合Bn,jの元の数だけ有するように生成する(S240)。キー生成部250は、n=0,…,N-1のそれぞれに対して、ベクトルk’を、行列T’のT[j]と同一の行に対応する要素がk[j]と集合Bn,jの元との組合せに対応し、かつT[j]と同一の行が複数ある場合は集合Bn,jの元は互いに異なるように生成する(S250)。
 それぞれの処理は、秘匿計算ではないという点が実施例1と異なるだけなので、図2に示された行列T,Tとベクトルk,kが入力された場合、出力される行列T’,T’とベクトルk’,k’は図7の各要素が秘匿化されていない行列とベクトルになる。したがって、実施例2の行列・キー生成装置によれば、要素に重複があるベクトルと結合対象の行列を、要素に重複がないベクトルとそのベクトルに対応した行列に変換することができる。
[変形例]
 本変形例では、実施例2の上位概念を導く。本変形例では、ソート部210を省略し、ベクトル生成部220をベクトル生成部220’に変更する。また、本変形例では、MをM[i]=iの集合に限定しないで、Mを互いに異なるm個の元からなる集合、M[i]を集合Mのi番目の元とする。本変形例の行列・キー生成装置の機能構成は図11、処理フローは図4に示す。本変形例では、ベクトル生成部220’、集合生成部230、行列生成部240、キー生成部250は、入力された行列T,…,TN-1とベクトルk,…,kN-1に対して処理を行う(ソートステップS210は行わない)。
 ベクトル生成部220’は、n=0,…,N-1のそれぞれに対して、要素の数がK個であり、各要素が集合Mの元であるベクトルxを、i≠jのときにk[i]=k[j]ならばx[i]≠x[j]となるように生成する。変形例2のベクトル生成部220の処理は、ベクトルkがあらかじめソートされている場合に利用できるベクトル生成部220’の処理の条件を満たす1つの処理である。よって、本変形例の発明は、実施例2の発明の上位概念である。
 このようにベクトルxを生成すれば、集合生成部230、行列生成部240、キー生成部250の処理はソートされているか否かによる違いはないので、本変形例の行列・キー生成装置も、要素に重複があるベクトルと結合対象の行列を、要素に重複がないベクトルとそのベクトルに対応した行列に変換することができる。
[プログラム、記録媒体]
 上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
 また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
 この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
 また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
 このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
 また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
 本発明は、コンピュータを利用した統計的なデータの処理や分析に利用することができる。
100 行列結合装置           110,210 ソート部
120,220 ベクトル生成部      130,230 集合生成部
140,240 行列生成部        150,250 キー生成部
160,260 行列・キー生成装置    170 結合部
190 記録部              800 ネットワーク

Claims (8)

  1.  Nを1以上の整数、nを0以上N-1以下の整数、Kを1以上の整数、iとjを整数、TをK行の行列、kを要素の数がK個のベクトル、T[j]を行列Tの第j行、k[j]をベクトルkのj番目の要素、mをベクトルkの要素が重複する上限数、Mを互いに異なるm個の元からなる集合、M[i]を集合Mのi番目の元とし、
     ベクトルkのj番目の要素は行列Tの第j行と対応する要素であり、
     行列T,…,TN-1とベクトルk,…,kN-1を入力とし、
     n=0,…,N-1のそれぞれに対して、要素の数がK個であり、各要素が集合Mの元であるベクトルxを、i≠jのときにk[i]=k[j]ならばx[i]≠x[j]となるように生成するベクトル生成部と、
     n=0,…,N-1のそれぞれ、かつj=1,…,Kのそれぞれに対して、集合Bn,jを、それぞれの元が、集合M以外の集合M,…,MN-1から1つずつ選んだN-1個の元とx[j]の組合せに対応し、すべての組合せ分の元を含むように生成する集合生成部と、
     n=0,…,N-1のそれぞれに対して、行列T’を、j=1,…,KのすべてについてT[j]と同一の行を集合Bn,jの元の数だけ有するように生成する行列生成部と、
     n=0,…,N-1のそれぞれに対して、ベクトルk’を、行列T’のT[j]と同一の行に対応する要素がk[j]と集合Bn,jの元との組合せに対応し、かつT[j]と同一の行が複数ある場合は集合Bn,jの元は互いに異なるように生成するキー生成部と
     を備える行列・キー生成装置。
  2.  請求項1記載の行列・キー生成装置であって、
     M[i]=iであり、
     n=0,…,N-1のそれぞれに対して、行列Tの行の順番とベクトルkの要素の順番を、ベクトルkの要素にしたがって対応を維持したままソートし、ソート後の行列とベクトルで、行列T,…,TN-1とベクトルk,…,kN-1を更新するソート部
     も備え、
     前記ベクトル生成部、前記集合生成部、前記行列生成部、前記キー生成部は、前記ソート部が更新した行列T,…,TN-1とベクトルk,…,kN-1に対して処理を行い、
     前記ベクトル生成部は、n=0,…,N-1のそれぞれに対して、ベクトルxを、x[i]=1とし、2≦i≦Kに対してk[i-1]=k[i]ならばx[i]=x[i-1]+1、k[i-1]≠k[i]ならばx[i]=1のように生成する
     ことを特徴とする行列・キー生成装置。
  3.  ネットワークで接続された3つ以上の行列・キー生成装置で秘匿計算を行う行列・キー生成システムを構成する行列・キー生成装置であって、
     Nを1以上の整数、nを0以上N-1以下の整数、Kを1以上の整数、iとjを整数、TをK行の行列、kを要素の数がK個のベクトル、T[j]を行列Tの第j行、k[j]をベクトルkのj番目の要素、mをベクトルkの要素が重複する上限数、Mを1,…,mを元とする集合、∥∥を秘匿化されたデータであることを示す記号とし、
     ベクトルkのj番目の要素は行列Tの第j行と対応する要素であり、
     行列Tの行と列の数、ベクトルkの要素の数、値mは秘匿化されていない情報であり、
     行列Tの要素のそれぞれ、ベクトルkの要素のそれぞれは前記行列・キー生成装置の間で秘匿化されており、
     当該行列・キー生成装置は、ソート部、ベクトル生成部、集合生成部、行列生成部、キー生成部を備え、
     前記ソート部は、他の行列・キー生成装置のソート部との秘匿計算によって、n=0,…,N-1のそれぞれに対して、行列Tの行の順番とベクトルkの要素の順番を、ベクトルkの要素にしたがって対応を維持したままソートし、ソート後の行列とベクトルで、行列T,…,TN-1とベクトルk,…,kN-1を更新し、
     前記ベクトル生成部、前記集合生成部、前記行列生成部、前記キー生成部は、前記ソート部が更新した行列T,…,TN-1とベクトルk,…,kN-1に対して処理を行うものであり、
     前記ベクトル生成部は、他の行列・キー生成装置のベクトル生成部との秘匿計算によって、n=0,…,N-1のそれぞれに対して、要素の数がK個であり要素のそれぞれを秘匿化したベクトルxを、x[1]=∥1∥とし、2≦i≦Kに対してk[i-1]=k[i]ならばx[i]=∥x[i-1]+1∥、k[i-1]≠k[i]ならばx[i]=∥1∥のように生成し、
     前記集合生成部は、他の行列・キー生成装置の集合生成部との秘匿計算によって、n=0,…,N-1のそれぞれ、かつj=1,…,Kのそれぞれに対して、元のそれぞれを秘匿化した集合Bn,jを、それぞれの元が、集合M以外の集合M,…,MN-1から1つずつ選んだN-1個の元とx[j]の組合せに対応し、すべての組合せ分の元を含むように生成し、
     前記行列生成部は、他の行列・キー生成装置の行列生成部との秘匿計算によって、n=0,…,N-1のそれぞれに対して、要素のそれぞれを秘匿化した行列T’を、j=1,…,KのすべてについてT[j]と同一の行を集合Bn,jの元の数だけ有するように生成し、
     前記キー生成部は、他の行列・キー生成装置のキー生成部との秘匿計算によって、n=0,…,N-1のそれぞれに対して、要素のそれぞれを秘匿化したベクトルk’を、行列T’のT[j]と同一の行に対応する要素がk[j]と集合Bn,jの元との組合せに対応し、かつT[j]と同一の行が複数ある場合は集合Bn,jの元は互いに異なるように生成する
     ことを特徴とする行列・キー生成装置。
  4.  ネットワークで接続された3つ以上の行列結合装置で秘匿計算を行う行列結合システムを構成する行列結合装置であって、
     当該行列結合装置は、
     請求項3記載の行列・キー生成装置と結合部を備えており、
     前記結合部は、他の行列結合装置の結合部との秘匿計算によって、ベクトルk’,…,kN-1’のすべてに共通する要素がある場合は、共通する要素ごとに対応する行列T’,…,TN-1’の行を結合して1つの行とし、要素のそれぞれを秘匿化した行列を生成する
     ことを特徴とする行列結合装置。
  5.  請求項3記載の行列・キー生成装置を3つ以上有する行列・キー生成システム。
  6.  ベクトル生成部、集合生成部、行列生成部、キー生成部を備える行列・キー生成装置に処理を実行させる行列・キー生成方法であって、
     Nを1以上の整数、nを0以上N-1以下の整数、Kを1以上の整数、iとjを整数、TをK行の行列、kを要素の数がK個のベクトル、T[j]を行列Tの第j行、k[j]をベクトルkのj番目の要素、mをベクトルkの要素が重複する上限数、Mを互いに異なるm個の元からなる集合、M[i]を集合Mのi番目の元とし、
     ベクトルkのj番目の要素は行列Tの第j行と対応する要素であり、
     行列T,…,TN-1とベクトルk,…,kN-1を入力とし、
     前記ベクトル生成部が、n=0,…,N-1のそれぞれに対して、要素の数がK個であり、各要素が集合Mの元であるベクトルxを、i≠jのときにk[i]=k[j]ならばx[i]≠x[j]となるように生成するベクトル生成ステップと、
     前記集合生成部が、n=0,…,N-1のそれぞれ、かつj=1,…,Kのそれぞれに対して、集合Bn,jを、それぞれの元が、集合M以外の集合M,…,MN-1から1つずつ選んだN-1個の元とx[j]の組合せに対応し、すべての組合せ分の元を含むように生成する集合生成ステップと、
     前記行列生成部が、n=0,…,N-1のそれぞれに対して、行列T’を、j=1,…,KのすべてについてT[j]と同一の行を集合Bn,jの元の数だけ有するように生成する行列生成ステップと、
     前記キー生成部が、n=0,…,N-1のそれぞれに対して、ベクトルk’を、行列T’のT[j]と同一の行に対応する要素がk[j]と集合Bn,jの元との組合せに対応し、かつT[j]と同一の行が複数ある場合は集合Bn,jの元は互いに異なるように生成するキー生成ステップと
     を実行する行列・キー生成方法。
  7.  ネットワークで接続された3つ以上の行列・キー生成装置を有し、行列・キー生成装置間で秘匿計算ができる行列・キー生成システムに処理を実行させる行列・キー生成方法であって、
     Nを1以上の整数、nを0以上N-1以下の整数、Kを1以上の整数、iとjを整数、TをK行の行列、kを要素の数がK個のベクトル、T[j]を行列Tの第j行、k[j]をベクトルkのj番目の要素、mをベクトルkの要素が重複する上限数、Mを1,…,mを元とする集合、∥∥を秘匿化されたデータであることを示す記号とし、
     ベクトルkのj番目の要素は行列Tの第j行と対応する要素であり、
     行列Tの行と列の数、ベクトルkの要素の数、値mは秘匿化されていない情報であり、
     行列Tの要素のそれぞれ、ベクトルkの要素のそれぞれは前記行列・キー生成装置の間で秘匿化されており、
     それぞれの行列・キー生成装置は、ソート部、ベクトル生成部、集合生成部、行列生成部、キー生成部を備え、
     前記ソート部が、他の行列・キー生成装置のソート部との秘匿計算によって、n=0,…,N-1のそれぞれに対して、行列Tの行の順番とベクトルkの要素の順番を、ベクトルkの要素にしたがって対応を維持したままソートし、ソート後の行列とベクトルで、行列T,…,TN-1とベクトルk,…,kN-1を更新するソートステップと、
     前記ベクトル生成部、前記集合生成部、前記行列生成部、前記キー生成部は、前記ソートステップで更新した行列T,…,TN-1とベクトルk,…,kN-1に対して処理を行うものであり、
     それぞれの前記ベクトル生成部が、他の行列・キー生成装置のベクトル生成部との秘匿計算によって、n=0,…,N-1のそれぞれに対して、要素の数がK個であり要素のそれぞれを秘匿化したベクトルxを、x[1]=∥1∥とし、2≦i≦Kに対してk[i-1]=k[i]ならばx[i]=∥x[i-1]+1∥、k[i-1]≠k[i]ならばx[i]=∥1∥のように生成するベクトル生成ステップと、
     それぞれの前記集合生成部が、他の行列・キー生成装置の集合生成部との秘匿計算によって、n=0,…,N-1のそれぞれ、かつj=1,…,Kのそれぞれに対して、元のそれぞれを秘匿化した集合Bn,jを、それぞれの元が、集合M以外の集合M,…,MN-1から1つずつ選んだN-1個の元とx[j]の組合せに対応し、すべての組合せ分の元を含むように生成する集合生成ステップと、
     それぞれの前記行列生成部が、他の行列・キー生成装置の行列生成部との秘匿計算によって、n=0,…,N-1のそれぞれに対して、要素のそれぞれを秘匿化した行列T’を、j=1,…,KのすべてについてT[j]と同一の行を集合Bn,jの元の数だけ有するように生成する行列生成ステップと、
     それぞれの前記キー生成部が、他の行列・キー生成装置のキー生成部との秘匿計算によって、n=0,…,N-1のそれぞれに対して、要素のそれぞれを秘匿化したベクトルk’を、行列T’のT[j]と同一の行に対応する要素がk[j]と集合Bn,jの元との組合せに対応し、かつT[j]と同一の行が複数ある場合は集合Bn,jの元は互いに異なるように生成するキー生成ステップと
     を実行する行列・キー生成方法。
  8.  請求項1から3のいずれかに記載の行列・キー生成装置としてコンピュータを機能させるためのプログラム。
PCT/JP2016/050850 2015-01-15 2016-01-13 行列・キー生成装置、行列・キー生成システム、行列結合装置、行列・キー生成方法、プログラム WO2016114309A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP16737380.2A EP3246900B1 (en) 2015-01-15 2016-01-13 Matrix and key generation device, matrix and key generation system, matrix coupling device, matrix and key generation method, and program
CN201680005567.5A CN107210005B (zh) 2015-01-15 2016-01-13 矩阵/密钥生成装置、矩阵/密钥生成系统、矩阵结合装置、矩阵/密钥生成方法、程序
JP2016569483A JP6321216B2 (ja) 2015-01-15 2016-01-13 行列・キー生成装置、行列・キー生成システム、行列結合装置、行列・キー生成方法、プログラム
US15/537,567 US10469257B2 (en) 2015-01-15 2016-01-13 Matrix and key generation device, matrix and key generation system, matrix coupling device, matrix and key generation method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015005998 2015-01-15
JP2015-005998 2015-01-15

Publications (1)

Publication Number Publication Date
WO2016114309A1 true WO2016114309A1 (ja) 2016-07-21

Family

ID=56405850

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/050850 WO2016114309A1 (ja) 2015-01-15 2016-01-13 行列・キー生成装置、行列・キー生成システム、行列結合装置、行列・キー生成方法、プログラム

Country Status (5)

Country Link
US (1) US10469257B2 (ja)
EP (1) EP3246900B1 (ja)
JP (1) JP6321216B2 (ja)
CN (1) CN107210005B (ja)
WO (1) WO2016114309A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018061800A1 (ja) * 2016-09-27 2018-04-05 日本電信電話株式会社 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115580857B (zh) * 2022-12-07 2023-03-14 杭州雅观科技有限公司 地下停车场蓝牙模块离线配网方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013200461A (ja) * 2012-03-26 2013-10-03 Nippon Telegr & Teleph Corp <Ntt> 秘密計算装置および秘密計算方法
JP2014081475A (ja) * 2012-10-16 2014-05-08 Nippon Telegr & Teleph Corp <Ntt> 秘密計算システム、集約関数装置、秘密計算方法、およびプログラム
JP2014139640A (ja) * 2013-01-21 2014-07-31 Nippon Telegr & Teleph Corp <Ntt> 秘密計算による表の等結合システム、方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481610A (en) * 1994-02-28 1996-01-02 Ericsson Inc. Digital radio transceiver with encrypted key storage
US5721779A (en) * 1995-08-28 1998-02-24 Funk Software, Inc. Apparatus and methods for verifying the identity of a party
JP3517663B2 (ja) * 1998-07-27 2004-04-12 村田機械株式会社 暗号通信方法及び暗号通信システム
US6895421B1 (en) * 2000-10-06 2005-05-17 Intel Corporation Method and apparatus for effectively performing linear transformations
US6950937B2 (en) * 2001-05-30 2005-09-27 Lucent Technologies Inc. Secure distributed computation in cryptographic applications
US7117366B2 (en) * 2002-01-08 2006-10-03 International Business Machines Corporation Public key based authentication method for transaction delegation in service-based computing environments
JP3833545B2 (ja) * 2002-02-13 2006-10-11 三菱電機株式会社 通信システム、受信機、送信機および通信方法
CN1661958B (zh) * 2004-03-15 2010-04-28 威盛电子股份有限公司 区块密码功能的微处理器及方法
US7590518B2 (en) * 2004-09-02 2009-09-15 Cadence Design Systems, Inc. Circuit analysis utilizing rank revealing factorization
US8601283B2 (en) * 2004-12-21 2013-12-03 Sandisk Technologies Inc. Method for versatile content control with partitioning
US7747922B2 (en) * 2005-06-01 2010-06-29 Telecommunications Research Laboratories Adaptive hybrid ARQ systems with BCJR decoding
US8760994B2 (en) * 2005-10-28 2014-06-24 Qualcomm Incorporated Unitary precoding based on randomized FFT matrices
KR100997310B1 (ko) * 2006-02-01 2010-11-29 닛본 덴끼 가부시끼가이샤 등화 장치 및 등화 방법
US8266711B2 (en) * 2006-07-07 2012-09-11 Sandisk Technologies Inc. Method for controlling information supplied from memory device
US8005868B2 (en) * 2008-03-07 2011-08-23 International Business Machines Corporation System and method for multiple distinct aggregate queries
US9147079B2 (en) * 2010-09-28 2015-09-29 Nec Corporation Encrypted database system, client terminal, encrypted database server, natural joining method, and program
JP5833146B2 (ja) * 2012-02-09 2015-12-16 株式会社日立製作所 機密データ漏えい防止装置および方法
JP6083234B2 (ja) * 2012-12-27 2017-02-22 富士通株式会社 暗号処理装置
JP6017336B2 (ja) * 2013-02-12 2016-10-26 株式会社東芝 データ管理装置および電力使用量計算システム
US9602280B2 (en) * 2013-03-13 2017-03-21 Futurewei Technologies, Inc. System and method for content encryption in a key/value store
US20140280375A1 (en) * 2013-03-15 2014-09-18 Ryan Rawson Systems and methods for implementing distributed databases using many-core processors
US9436672B2 (en) * 2013-12-11 2016-09-06 Power Modes Pty. Ltd. Representing and manipulating hierarchical data
JP6362262B2 (ja) * 2014-10-09 2018-07-25 株式会社デンソーテン 角度推定装置および角度推定方法
US10248711B2 (en) * 2015-01-27 2019-04-02 International Business Machines Corporation Representation of time-sensitive and space-sensitive profile information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013200461A (ja) * 2012-03-26 2013-10-03 Nippon Telegr & Teleph Corp <Ntt> 秘密計算装置および秘密計算方法
JP2014081475A (ja) * 2012-10-16 2014-05-08 Nippon Telegr & Teleph Corp <Ntt> 秘密計算システム、集約関数装置、秘密計算方法、およびプログラム
JP2014139640A (ja) * 2013-01-21 2014-07-31 Nippon Telegr & Teleph Corp <Ntt> 秘密計算による表の等結合システム、方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SVEN LAUR ET AL.: "From oblivious AES to efficient and secure database join in the multiparty setting", 2013, pages 1 - 22, XP061007472, Retrieved from the Internet <URL:https://eprint.iacr.org/2013/203.pdf> [retrieved on 20160329] *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018061800A1 (ja) * 2016-09-27 2018-04-05 日本電信電話株式会社 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム
CN109791741A (zh) * 2016-09-27 2019-05-21 日本电信电话株式会社 秘密等值连接系统、秘密等值连接装置、秘密等值连接方法、程序
JPWO2018061800A1 (ja) * 2016-09-27 2019-06-24 日本電信電話株式会社 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム
AU2017338060B2 (en) * 2016-09-27 2020-06-25 Nippon Telegraph And Telephone Corporation Secure equijoin system, secure equijoin device, secure equijoin method, and program
CN109791741B (zh) * 2016-09-27 2022-01-18 日本电信电话株式会社 秘密等值连接系统、连接装置、连接方法、记录介质

Also Published As

Publication number Publication date
US20180270056A1 (en) 2018-09-20
EP3246900B1 (en) 2019-07-31
US10469257B2 (en) 2019-11-05
CN107210005B (zh) 2020-07-10
JP6321216B2 (ja) 2018-05-09
EP3246900A4 (en) 2018-09-12
JPWO2016114309A1 (ja) 2017-09-21
EP3246900A1 (en) 2017-11-22
CN107210005A (zh) 2017-09-26

Similar Documents

Publication Publication Date Title
JP4334582B2 (ja) 秘密分散装置、方法及びプログラム
WO2016208437A1 (ja) 秘密計算装置、秘密計算方法、およびプログラム
JP6973632B2 (ja) 秘密集約総和システム、秘密計算装置、秘密集約総和方法、およびプログラム
JP7031682B2 (ja) 秘密計算装置、システム、方法、プログラム
JP6989006B2 (ja) 秘密集約関数計算システム、秘密計算装置、秘密集約関数計算方法、およびプログラム
JP6973633B2 (ja) 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム
JP5872085B1 (ja) 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム
JP5860378B2 (ja) 秘密計算システム、集約関数装置、秘密計算方法、およびプログラム
JP5864004B1 (ja) 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム
EP4016506B1 (en) Softmax function secret calculation system, softmax function secret calculation device, softmax function secret calculation method, neural network secret calculation system, neural network secret learning system, and program
CN108028751B (zh) 用于移动主动秘密共享的系统、计算机可读介质和方法
JP6844897B2 (ja) ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム
JPWO2018061800A1 (ja) 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム
JP6321216B2 (ja) 行列・キー生成装置、行列・キー生成システム、行列結合装置、行列・キー生成方法、プログラム
WO2019203262A1 (ja) 秘密集約順位システム、秘密計算装置、秘密集約順位方法、およびプログラム
WO2019208486A1 (ja) 秘密集約中央値システム、秘密計算装置、秘密集約中央値方法、およびプログラム
JP6337133B2 (ja) 非減少列判定装置、非減少列判定方法及びプログラム
WO2019221108A1 (ja) 秘密クロス集計システム、秘密計算装置、秘密クロス集計方法、およびプログラム
CN112602135A (zh) 秘密联接系统、该方法、秘密计算装置以及程序
JP5689845B2 (ja) 秘密計算装置、秘密計算方法、およびプログラム
WO2023228273A1 (ja) 秘密属性選択システム、秘密属性選択装置、秘密属性選択方法、プログラム
JP7081663B2 (ja) 秘密結合システム、方法、秘密計算装置及びプログラム
WO2024013974A1 (ja) 秘密交差結合システム、秘密交差結合装置、秘密交差結合方法、プログラム
JP7380843B2 (ja) 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム
WO2022153383A1 (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: 16737380

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016569483

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15537567

Country of ref document: US

REEP Request for entry into the european phase

Ref document number: 2016737380

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE