WO2025215701A1 - 統計量計算方法、システム、装置及びプログラム - Google Patents
統計量計算方法、システム、装置及びプログラムInfo
- Publication number
- WO2025215701A1 WO2025215701A1 PCT/JP2024/014261 JP2024014261W WO2025215701A1 WO 2025215701 A1 WO2025215701 A1 WO 2025215701A1 JP 2024014261 W JP2024014261 W JP 2024014261W WO 2025215701 A1 WO2025215701 A1 WO 2025215701A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- random number
- number sequence
- sequence
- database
- key set
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
Definitions
- the disclosed technology relates to a technique for combining two databases while keeping them confidential, and calculating statistics from the combined database.
- Non-Patent Document 1 The technology described in Non-Patent Document 1 is known as a technique for combining two databases while keeping them confidential and calculating statistics from the combined database.
- Non-Patent Document 1 a one-way commutative function is used to convert the IDs held by the two parties to generate a combined key. Then, one of the two parties encrypts the attribute values associated with the IDs using homomorphic encryption. The combined key and encrypted attribute values are then passed to the other party. As a result, the technology described in Non-Patent Document 1 makes it possible to calculate statistics without revealing the IDs and attribute values to the other party.
- the disclosed technology aims to provide a statistical calculation method, system, device, and program that combines two databases while keeping them confidential, and calculates statistics from the combined databases, without using a one-way commutative function.
- a statistical calculation method that is one aspect of the disclosed technology includes the steps of: a first device having a first database; a first key set; a second device having a second database; a second key set; a second key set; and a permutation; the first and second devices using the first and second key sets as inputs to execute a PC (Permuted Characteristic) protocol, whereby the first device obtains a feature vector indicating whether the ⁇ (i)th key of the second key set is included in the first key set; the first and second devices using the first key set as inputs to execute an OPRF (Oblivious Pseudo Random Function) protocol, whereby the first device obtains a first random number sequence that is a sequence of random numbers related to the first key set; the second device using a pseudorandom function determined by the OPRF protocol executed to obtain the first random number sequence to obtain a second random number sequence that is a sequence of random numbers related to the second key set; and the first and second devices using the second random number sequence and a set of
- the first device executes an OT (Oblivious Transfer) protocol to obtain a third random number sequence consisting of random numbers included in the second random number sequence that are included in the number set; the first device and the second device execute an OPRF protocol using the second random number sequence as input, to obtain a fourth random number sequence that is a sequence of random numbers related to the second random number sequence; and the first device generates a fourth random number sequence that is a sequence of random numbers obtained by perturbing the random numbers included in the first random number sequence and the random numbers included in the third random number sequence using a pseudo-random function determined by the OPRF protocol executed to obtain the fourth random number sequence.
- OT Opblivious Transfer
- the method includes a step in which a first device obtains five random number sequences; a step in which the first device transmits to a second device an element sequence in which elements are rearranged, the element sequence including each random number included in the fifth random number sequence and a secret value obtained by encrypting a value included in the set of attribute values in the first database corresponding to each random number using homomorphic encryption, or a predetermined value corresponding to each random number; a step in which the second device uses the fourth random number sequence and the element sequence to generate a combined database in which values included in the set of attribute values in the second database correspond to the secret values or predetermined values of elements included in the element sequence; and a step in which the second device obtains statistics from the combined database.
- the disclosed technology makes it possible to combine two databases while keeping them confidential, without using a one-way commutative function, and calculate statistics from the combined database.
- FIG. 1 is a diagram illustrating an example of the functional configuration of a statistics calculation system.
- FIG. 2 is a diagram showing an example of a processing procedure of the statistical quantity calculation method.
- FIG. 3 is a diagram for explaining an example of a statistical calculation process.
- FIG. 4 is a diagram for explaining an example of the process of calculating statistics.
- FIG. 5 is a diagram for explaining an example of the process of calculating statistics.
- FIG. 6 is a diagram for explaining an example of the process of calculating statistics.
- FIG. 7 is a diagram for explaining an example of the process of calculating statistics.
- FIG. 8 is a diagram for explaining an example of the statistical calculation process.
- FIG. 9 is a diagram for explaining an example of the statistical calculation process.
- FIG. 10 is a diagram for explaining an example of the process of calculating statistics.
- FIG. 11 is a diagram illustrating an example of the functional configuration of a computer.
- the statistics calculation system includes, for example, a first device A and a second device B.
- Each of the first device A and the second device B is also a statistics calculation device.
- the first device A includes, for example, a feature vector generation unit A1, a first random number sequence generation unit A2, a third random number sequence generation unit A3, a fifth random number sequence generation unit A4, an encryption unit A5, a decryption unit A6, and a transmission unit A7.
- the second device B includes, for example, a second random number sequence generation unit B1, a fourth random number sequence generation unit B2, a combination unit B3, a statistics acquisition unit B4, a noise addition unit B5, and a transmission unit B6.
- the statistical calculation method is realized, for example, by first device A and second device B performing the processes of steps S1 to S13 shown in Figure 2.
- the database held by first device A is referred to as the first database.
- the first database is composed of keys and at least one attribute value corresponding to each key.
- the set of keys in the first database is referred to as the first key set.
- the database held by the second device B is referred to as the second database.
- the second database is composed of each key and at least one attribute value corresponding to each key.
- the set of keys in the second database is referred to as the second key set.
- ⁇ is a permutation.
- ⁇ is a random permutation.
- ⁇ (i) is the value obtained by replacing i with the permutation ⁇ .
- step S1 The processing of step S1 is carried out between the feature vector generation unit A1 of the first device A and the second device B. As a result, the feature vector generation unit A1 of the first device A obtains the feature vector e.
- the first key set ID A ⁇ 1,3,5,7 ⁇
- the second key set ID B ⁇ 3,4,6,7 ⁇
- the feature vector e ⁇ 0,1,1,0 ⁇ .
- the dashed-dotted box BB1 in Figure 3 indicates that the correspondence is not visible.
- Step S2> The first device A and the second device B execute an OPRF (Oblivious Pseudo Random Function) protocol using the first key set as input, and the first device A obtains a first random number sequence that is a sequence of random numbers related to the first key set (step S2).
- the process of step S1 is carried out between the first random number sequence generation unit A2 of the first device A and the second device B.
- the first random number sequence generation unit A2 of the first device A obtains the first random number sequence.
- H1 is a pseudorandom function f determined by SK B obtained as output by the second device B, which is the sender in the definition of the OPRF protocol above.
- H1 is, for example, a hash function.
- Step S3> The second device B obtains a second random number sequence, which is a sequence of random numbers related to the second key set, using a pseudorandom function determined by the OPRF protocol executed to obtain the first random number sequence (step S3).
- step S3 is performed by the second random number sequence generation unit B1 of the second device B.
- the second random number sequence generation unit B1 of the second device B obtains the second random number sequence.
- the second random number sequence H 1 ( ⁇ ID B ) ⁇ H 1 (4), H 1 (7), H 1 (3), H 1 (6) ⁇ as in the example of Figure 4.
- H 1 is calculated for ⁇ ID B , which is obtained by permuting ID B with the permutation ⁇ .
- the second random number sequence may be obtained by further using the permutation ⁇ .
- the second random number sequence generation unit B1 of the second device B calculates H1 using the pseudorandom function f determined by the SK B obtained in step S2.
- Step S4> The first device A and the second device B execute an OT (Oblivious Transfer) protocol using as input the second random number sequence and a set of numbers of elements in the feature vector e that represent elements that are not included as keys in the first database, and the first device A obtains a third random number sequence composed of random numbers included in the number set from among the random numbers included in the second random number sequence (step S4).
- OT Opblivious Transfer
- step S4 is carried out between the third random number sequence generation unit A3 of the first device A and the second device B. As a result, the third random number sequence generation unit A3 of the first device A obtains the third random number sequence.
- the third random number sequence H1 ( ⁇ IDB ) ⁇ H1 (4), ⁇ , ⁇ , H1 (6) ⁇ .
- ⁇ is a predetermined dummy value.
- the dummy value is, for example, a random value.
- Step S5 The first device A and the second device B execute the OPRF protocol using the second random number sequence as input, and the second device obtains a fourth random number sequence, which is a sequence of random numbers related to the second random number sequence (step S5).
- step S5 is carried out between the fourth random number sequence generation unit B2 of the second device B and the first device A.
- the fourth random number sequence generation unit B2 of the second device B obtains a fourth random number sequence.
- H2 is a pseudorandom function f determined by SK A obtained as output by the first device A, which is the sender in the definition of the OPRF protocol.
- H2 is, for example, a hash function.
- the first device A obtains a fifth random number sequence, which is a sequence of random numbers obtained by perturbing the random numbers contained in the first random number sequence and the random numbers contained in the third random number sequence using a pseudorandom function determined by the OPRF protocol executed to obtain the fourth random number sequence (step S6).
- step S6 is performed by the fifth random number sequence generation unit A4 of the first device A.
- the fifth random number sequence generation unit A4 of the first device A obtains the fifth random number sequence.
- the dummy value ⁇ in the third random number sequence H1 ( ⁇ IDB ) does not need to be randomized or inserted into the fifth random number sequence.
- An example of randomization performed by the fifth random number sequence generation unit A4 of the first device A is the calculation of H2 .
- the first device A transmits to the second device B a sequence of elements that are rearranged, including each random number included in the fifth random number sequence and a secret value obtained by encrypting a value included in the set of attribute values of the first database corresponding to each random number using homomorphic encryption, or a predetermined value corresponding to each random number (step S7).
- This step S7 is performed by the encryption unit A5 of the first device A.
- the sorting is done randomly, for example.
- attribute a is a categorical attribute, and its attribute value is one of ⁇ , ⁇ , and ⁇ . Furthermore, the attribute value of attribute a corresponding to H 2 (H 1 (1)) is ⁇ , ..., the attribute value of attribute a corresponding to H 2 (H 1 (7)) is ⁇ .
- the encryption unit A5 sets the attribute value of attribute a corresponding to H 2 (H 1 (1)) to (E(0), E(0), E(1)), ..., the attribute value of attribute a corresponding to H 2 (H 1 (7)) to (E(0), E(1), E(0)). In this way, the encryption unit A5 may convert each attribute value into a one-hot vector and then encrypt each element of the converted one-hot vector.
- E indicates encryption using homomorphic encryption. Since H2 ( H1 (4)) and H2 ( H1 (6)) are derived from the second database, the encryption unit A5 assigns predetermined values (E(0), E( 0 ), E(0)) to H2 (H1(4)) and H2 ( H1 (6)), respectively.
- the element sequence transmitted to the second device B will be, for example, as shown in SE1 in FIG. 7.
- SE1 the portion of the fifth random number sequence H2 ( H1 (ID U ) sandwiched between H2 ( H1 (1)) and H2 ( H1 (7)) has been rearranged.
- the encryption unit A5 may directly encrypt the numerical attribute value using homomorphic encryption.
- Step S8> The second device B uses the fourth random number sequence and the element sequence to generate a combined database that associates values included in the set of attribute values of the second database with secret values or predetermined values of elements included in the element sequence (step S8).
- step S8 is performed by the combining unit B3 of the second device B.
- the combined database is generated using the fourth random number sequence and the random number H2 ( H1 (ID)) included in the element sequence as a combining key.
- attribute b is a categorical attribute and takes on either a # or a $ as its attribute value.
- the attribute value of attribute b corresponding to H2 ( H1 (4)) is #
- the attribute value of attribute b corresponding to H2 ( H1 (7)) is $
- the attribute value of attribute b corresponding to H2 ( H1 (3)) is #
- the attribute value of attribute b corresponding to H2 ( H1 (6)) is $.
- the combined database generated by combining unit B3 may look like DB1 in Figure 7, for example.
- Step S9 The second device B obtains statistics from the combined database (step S9).
- step S9 is performed by the statistics acquisition unit B4 of the second device B. Because the attribute value of attribute a is encrypted using homomorphic encryption, the statistics acquisition unit B4 can obtain statistics for the attribute value of attribute a in its encrypted state without decrypting it.
- statistics are the mean, median, mode, variance, and standard deviation calculated from attribute values. Of course, other specified statistics may also be calculated.
- the statistics may be the results of aggregation.
- the statistics acquisition unit B4 may perform aggregation from the combined database.
- the statistics acquisition unit B4 tallies the frequencies of the attribute values of attribute a and attribute b. As a result, the summary table SS1 in Figure 8 is obtained.
- Step S10 The second device B adds noise to the calculated statistics (step S10).
- step S10 is performed by the noise adding unit B5 of the second device B.
- noise addition is what is known as privacy noise addition.
- noise can be added using existing methods described in References 1 and 2.
- Step S11 The second device B transmits the noise-added statistics to the first device A (step S11).
- step S11 is performed by the transmitter B6 of the second device B.
- Step S12 The first device A decodes the noise-added statistics received from the second device B (step S12).
- This step S12 is performed by the decryption unit A6 of the first device A.
- the decryption unit A6 performs decryption using, for example, a decryption key corresponding to the homomorphic encryption used in the processing of step S7.
- Step S13 The first device A transmits the decoded statistics to the second device B (step S13).
- step S13 is performed by the transmitter A7 of first device A.
- a one-way commutative function is not used to generate the join key ( H2 ( H1 (ID)) in the above example), but an obscured pseudorandom function (OPRF).
- An OPRF is a one-way function that allows one party to obtain the output value of a function while keeping the function it holds secret from the other party, and the input value it holds secret from the other party. By performing this twice with the roles swapped, the ID can be converted into a join key without revealing it to the other party.
- OPRF does not involve power operations and most of the work can be performed using lightweight matrix operations, the computational costs of generating a join database and calculating statistics can be reduced compared to conventional methods.
- step S1 the order of the processing in step S1 and the processing in step S2 may be reversed.
- step S10 to step S13 may not be performed.
- the first device A may not have at least one of the decoding unit A6 and the transmission unit A7.
- the second device B may not have at least one of the statistics acquisition unit B4, the noise addition unit B5, and the transmission unit B6.
- Data exchange between the components of the first device A and the second device B may be performed directly, or via a storage unit (not shown).
- a device (terminal) for using the device, system, or method of the present invention via a network (telecommunications line) may also be provided.
- the “device (terminal) for use” may be equipped with the functions necessary to obtain the effects of implementing the device, system, or method of the present invention (e.g., control functions, decoding functions, restoration functions, input/output functions, etc.).
- circuitry or processing circuitry including general-purpose processors, application-specific processors, integrated circuits, ASICs (Application Specific Integrated Circuits), a CPU (a Central Processing Unit), conventional circuits, and/or combinations thereof, programmed to perform the described functions.
- a processor includes transistors and other circuits and is considered to be circuitry or processing circuitry.
- a processor may also be a programmed processor that executes programs stored in memory.
- a circuit, unit, or means refers to hardware that is programmed to realize or executes the described functions.
- the hardware may be any hardware disclosed in this specification or any hardware known to be programmed to realize or execute the described functions.
- the hardware is a processor, which is considered to be a type of circuitry
- the circuitry, means, or unit is the combination of the hardware and the software used to configure the hardware and/or processor.
- the program describing this processing can be recorded on a computer-readable recording medium.
- Examples of computer-readable recording media include magnetic recording devices, optical disks, magneto-optical recording media, and semiconductor memory.
- this program may be distributed, for example, by selling, transferring, or lending portable recording media such as DVDs or CD-ROMs on which the program is recorded.
- the program may be stored in a storage device on a server computer, and then transferred from the server computer to other computers via a network, thereby distributing the program.
- a computer that executes such a program for example, first stores the program recorded on a portable recording medium or transferred from a server computer in its own storage device. Then, when executing processing, the computer reads the program stored on its own recording medium and executes processing in accordance with the read program. As another form of execution of this program, the computer may read the program directly from the portable recording medium and execute processing in accordance with that program, or it may execute processing in accordance with the received program each time a program is transferred to this computer from the server computer. Alternatively, the server computer may not transfer the program to this computer, but rather executes processing using a so-called ASP (Application Service Provider) type service, which realizes processing functions simply by issuing execution instructions and obtaining results.
- ASP Application Service Provider
- the computer may be configured to execute terminal processing using a so-called SaaS (Software as a Service) type service, which allows users to use part of a server computer along with the program.
- the program includes information used for processing by an electronic computer that is equivalent to a program (such as data that is not a direct command to a computer but has properties that dictate computer processing).
- the device is configured by executing a specific program on a computer, but at least part of the processing may also be implemented in hardware.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
統計量計算方法では、紛失擬似ランダム関数(OPRF)を用いて作成された結合キーを用いて、データベースを結合し、結合されたデータベースから統計量が計算される。OPRFは、べき乗演算が無く、大半が軽量な行列演算で実行可能なため、結合データベースの生成及び統計量の計算の計算コストを削減することができる。
Description
開示の技術は、2個のデータベースを秘匿にした状態のままで結合し、結合したデータベースから統計量を計算する技術に関する。
2個のデータベースを秘匿にした状態のままで結合し、結合したデータベースから統計量を計算する技術として、非特許文献1に記載された技術が知られている。
非特許文献1に記載された技術では、一方向可換関数を用いて二者が持つIDを変換して結合キーが生成される。そして、二者のうち一方により、IDに紐づく属性値が準同型暗号によって暗号化される。そして、結合キーと暗号化された属性値が、他方に渡される。これにより、非特許文献1に記載された技術では、相手にIDと属性値を明かさずに統計量の計算が可能になっている。
野澤一真、外8名、"組織横断的なパーソナルデータの結合に適したデータ連携手法の提案と評価"、CSS2022
しかし、一方向可換関数を用いると、結合キーからIDを逆算できないよう膨大なべき乗演算が必要となり計算コストがかかる。
開示の技術は、一方向可換関数を用いずに、2個のデータベースを秘匿にした状態のままで結合し、結合したデータベースから統計量を計算する統計量計算方法、システム、装置及びプログラムを提供することを目的とする。
開示の技術の一態様である統計量計算方法は、第一装置が持つデータベースは第一データベースであり、第一データベースのキー集合は第一キー集合であり、第二装置が持つデータベースは第二データベースであり、第二データベースのキー集合は第二キー集合であり、πは置換であり、第一装置及び第二装置が、第一キー集合と第二キー集合とを入力として、PC(PermutedCharacteristic)プロトコルを実行し、第二キー集合のπ(i)番目のキーが第一キー集合に含まれるか否かを表す特徴ベクトルを第一装置が得るステップと、第一装置及び第二装置が、第一キー集合を入力として、OPRF(ObliviousPseudoRandomFunction)プロトコルを実行し、第一キー集合に関する乱数の列である第一乱数列を第一装置が得るステップと、第二装置が、第一乱数列を得るために実行されたOPRFプロトコルにより定まる疑似ランダム関数を用いて、第二キー集合に関する乱数の列である第二乱数列を得るステップと、第一装置及び第二装置が、第二乱数列と特徴ベクトルの中で第一データベースのキーとして含まれないことを表す要素の番号集合とを入力として、OT(ObliviousTransfer)プロトコルを実行し、第二乱数列に含まれる乱数のうち、番号集合に含まれる番号の乱数で構成される第三乱数列を第一装置が得るステップと、第一装置及び第二装置が、第二乱数列を入力として、OPRFプロトコルを実行し、第二乱数列に関する乱数の列である第四乱数列を第二装置が得るステップと、第一装置が、第一乱数列に含まれる乱数と第三乱数列に含まれる乱数とを第四乱数列を得るために実行されたOPRFプロトコルにより定まる疑似ランダム関数を用いてかく乱した乱数の列である第五乱数列を第一装置が得るステップと、第一装置が、第五乱数列に含まれる各乱数と、各乱数に対応する第一データベースの属性値の集合に含まれる値を準同型暗号で暗号化した秘密値又は各乱数に対応する所定の値とを含む要素を並び替えた要素列を第二装置に送信するステップと、第二装置が、第四乱数列と要素列とを用いて、第二データベースの属性値の集合に含まれる値と要素列に含まれる要素の秘密値又は所定の値とを対応付けた結合データベースを生成するステップと、第二装置が、結合データベースから統計量を得るステップと、を備えている。
開示の技術によれば、一方向可換関数を用いずに、2個のデータベースを秘匿にした状態のままで結合し、結合したデータベースから統計量を計算することができる。
以下、図面を参照して開示の技術の実施形態を説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
[統計量計算システム及び方法]
統計量計算システムは、図1に示すように、第一装置A及び第二装置Bを例えば備えている。第一装置A及び第二装置Bのそれぞれは、統計量計算装置でもある。
統計量計算システムは、図1に示すように、第一装置A及び第二装置Bを例えば備えている。第一装置A及び第二装置Bのそれぞれは、統計量計算装置でもある。
第一装置Aは、特徴ベクトル生成部A1、第一乱数列生成部A2、第三乱数列生成部A3、第五乱数列生成部A4、暗号化部A5、復号部A6及び送信部A7を例えば備えている。
第二装置Bは、第二乱数列生成部B1、第四乱数列生成部B2、結合部B3、統計量取得部B4、ノイズ付与部B5及び送信部B6を例えば備えている。
統計量計算方法は、第一装置A及び第二装置Bが、図2に示すステップS1からステップS13の処理を行うことにより例えば実現される。
第一装置Aが持つデータベースは、第一データベースであるとする。第一データベースは、各キーとその各キーに対応する少なくとも1つの属性値とから構成されている。第一データベースのキー集合は、第一キー集合であるとする。
同様に、第二装置Bが持つデータベースは、第二データベースであるとする。第二データベースは、各キーとその各キーに対応する少なくとも1つの属性値とから構成されている。第二データベースのキー集合は、第二キー集合であるとする。
以下では、説明の簡略化のために、各キーに対応する属性値が1個である場合を例に挙げて説明する。
文中で使用する記号「~」は、本来直後の文字の真上に記載されるべきものであるが、テキスト記法の制限により、当該文字の直前に記載する。図面においてはこれらの記号は本来の位置、すなわち文字の真上に記載している。例えば、文中の「~X」は、図面では以下のように記載される。
<ステップS1>
第一装置A及び第二装置Bが、第一キー集合と第二キー集合とを入力として、PC(Permuted Characteristic)プロトコルを実行し、第二キー集合のπ(i)番目のキーが第一キー集合に含まれるか否かを表す特徴ベクトルeを第一装置Aが得る(ステップS1)。
第一装置A及び第二装置Bが、第一キー集合と第二キー集合とを入力として、PC(Permuted Characteristic)プロトコルを実行し、第二キー集合のπ(i)番目のキーが第一キー集合に含まれるか否かを表す特徴ベクトルeを第一装置Aが得る(ステップS1)。
πは、置換である。例えば、πは、ランダム置換である。π(i)は、iを置換πで置換した値である。
このステップS1の処理は、第一装置Aの特徴ベクトル生成部A1と、第二装置Bとの間で行われる。これにより、第一装置Aの特徴ベクトル生成部A1が、特徴ベクトルeを得る。
PCプロトコルは、集合X={x1,・・・,xn}を持っている送信者と集合Y={y1,・・・,yn}を持っている受信者とがお互いの入力を隠したまま、送信者が置換π、受信者が特徴ベクトルe=(e1,・・・,en)(ただし、i∈{1,・・・,n}に対して、xπ(i)がYに含まれるときはei=1、xπ(i)がYに含まれないときはei=0)をそれぞれ出力として計算するプロトコルのことである。
図3の例のように、第一キー集合IDA={1,3,5,7}であり、第二キー集合IDB={3,4,6,7}であり、第二キー集合IDBのi番目の要素をπ(i)番目に配置した集合を~IDB={4,7,3,6}とする。この場合、例えば、特徴ベクトルe={0,1,1,0}となる。なお、図3の一点鎖線の箱BB1は、対応関係が見えないことを示す。
<ステップS2>
第一装置A及び第二装置Bが、第一キー集合を入力として、OPRF(Oblivious PseudoRandom Function)プロトコルを実行し、第一キー集合に関する乱数の列である第一乱数列を第一装置Aが得る(ステップS2)
このステップS1の処理は、第一装置Aの第一乱数列生成部A2と、第二装置Bとの間で行われる。これにより、第一装置Aの第一乱数列生成部A2が、第一乱数列を得る。
第一装置A及び第二装置Bが、第一キー集合を入力として、OPRF(Oblivious PseudoRandom Function)プロトコルを実行し、第一キー集合に関する乱数の列である第一乱数列を第一装置Aが得る(ステップS2)
このステップS1の処理は、第一装置Aの第一乱数列生成部A2と、第二装置Bとの間で行われる。これにより、第一装置Aの第一乱数列生成部A2が、第一乱数列を得る。
OPRFプロトコルは、入力のない送信者と集合Y={y1,・・・,yn}を持っている受信者とがお互いの入力を隠したまま、送信者がランダムな疑似ランダム関数fの鍵SKを出力として計算し、受信者が疑似ランダム関数値f(SK,y1),・・・,f(SK,yn)を出力として計算するプロトコルのことである。
図4の例のように、第一キー集合IDA={1,3,5,7}であるとする。この場合、例えば、第一乱数列H1(IDA)={H1(1),H1(3),H1(5),H1(7)}となる。H1は、上記のOPRFプロトコルの定義における送信者である第二装置Bが出力として得るSKBにより定まる疑似ランダム関数fである。H1は、例えばハッシュ関数である。
<ステップS3>
第二装置Bが、第一乱数列を得るために実行されたOPRFプロトコルにより定まる疑似ランダム関数を用いて、第二キー集合に関する乱数の列である第二乱数列を得る(ステップS3)。
第二装置Bが、第一乱数列を得るために実行されたOPRFプロトコルにより定まる疑似ランダム関数を用いて、第二キー集合に関する乱数の列である第二乱数列を得る(ステップS3)。
このステップS3の処理は、第二装置Bの第二乱数列生成部B1により行われる。すなわち、第二装置Bの第二乱数列生成部B1が、第二乱数列を得る。
IDB={3,4,6,7}である場合には、図4の例のように、第二乱数列H1(~IDB)={H1(4),H1(7),H1(3),H1(6)}となる。この例では、IDBを置換πで置換した~IDBに対して、H1の計算が行われている。この例のように、置換πを更に用いて、第二乱数列が得られてもよい。
例えば、第二装置Bの第二乱数列生成部B1は、ステップS2で得られたSKBにより定まる疑似ランダム関数fを用いて、H1の計算を行う。
<ステップS4>
第一装置A及び第二装置Bが、第二乱数列と特徴ベクトルeの中で第一データベースのキーとして含まれないことを表す要素の番号集合とを入力として、OT(Oblivious Transfer)プロトコルを実行し、第二乱数列に含まれる乱数のうち、番号集合に含まれる番号の乱数で構成される第三乱数列を第一装置Aが得る(ステップS4)。
第一装置A及び第二装置Bが、第二乱数列と特徴ベクトルeの中で第一データベースのキーとして含まれないことを表す要素の番号集合とを入力として、OT(Oblivious Transfer)プロトコルを実行し、第二乱数列に含まれる乱数のうち、番号集合に含まれる番号の乱数で構成される第三乱数列を第一装置Aが得る(ステップS4)。
このステップS4の処理は、第一装置Aの第三乱数列生成部A3と、第二装置Bとの間で行われる。これにより、第一装置Aの第三乱数列生成部A3が、第三乱数列を得る。
例えば、特徴ベクトルe={0,1,1,0}である場合には、番号集合は{1,4}となる。この場合、図5の例のように、第三乱数列H1(~IDB)={H1(4),⊥,⊥,H1(6)}となる。⊥は、所定のダミー値である。ダミー値は、例えばランダムな値である。
OTプロトコルは、集合X={x1,・・・,xn}を持っている送信者と集合S⊆{1,・・・,n}を持っている受信者とがお互いの入力を隠したまま、送信者は何も情報を得ず、受信者が{xi}i∈Sを出力として計算するプロトコルのことである。
<ステップS5>
第一装置A及び第二装置Bが、第二乱数列を入力として、OPRFプロトコルを実行し、第二乱数列に関する乱数の列である第四乱数列を第二装置が得る(ステップS5)。
第一装置A及び第二装置Bが、第二乱数列を入力として、OPRFプロトコルを実行し、第二乱数列に関する乱数の列である第四乱数列を第二装置が得る(ステップS5)。
このステップS5の処理は、第二装置Bの第四乱数列生成部B2と、第一装置Aとの間で行われる。これにより、第二装置Bの第四乱数列生成部B2が、第四乱数列を得る。
第二乱数列H1(~IDB)={H1(4),H1(7),H1(3),H1(6)}である場合には、図6の例のように、第四乱数列H2(H1(~IDB))={H2(H1(4)),H2(H1(7)),H2(H1(3)),H2(H1(6))}となる。H2は、OPRFプロトコルの定義における送信者である第一装置Aが出力として得るSKAにより定まる疑似ランダム関数fである。H2は、例えばハッシュ関数である。
<ステップS6>
第一装置Aが、第一乱数列に含まれる乱数と第三乱数列に含まれる乱数とを第四乱数列を得るために実行されたOPRFプロトコルにより定まる疑似ランダム関数を用いてかく乱した乱数の列である第五乱数列を第一装置Aが得る(ステップS6)。
第一装置Aが、第一乱数列に含まれる乱数と第三乱数列に含まれる乱数とを第四乱数列を得るために実行されたOPRFプロトコルにより定まる疑似ランダム関数を用いてかく乱した乱数の列である第五乱数列を第一装置Aが得る(ステップS6)。
このステップS6の処理は、第一装置Aの第五乱数列生成部A4により行われる。すなわち、第一装置Aの第五乱数列生成部A4が、第五乱数列を得る。
第一乱数列H1(IDA)={H1(1),H1(3),H1(5),H1(7)}であり、第三乱数列H1(~IDB)={H1(4),⊥,⊥,H1(6)}である場合には、図6の例のように、第五乱数列H2(H1(IDU)={H2(H1(1)),・・・,H2(H1(7)),H2(H1(4)),H2(H1(6))}となる。この例のように、第三乱数列H1(~IDB)の中のダミー値⊥については、かく乱及び第五乱数列への挿入は行われなくてもよい。例えば、第一装置Aの第五乱数列生成部A4は、ステップS5で得られたSKAにより定まる疑似ランダム関数fを用いて、H2の計算を行う。第一装置Aの第五乱数列生成部A4で行われるかく乱の一例が、H2の計算である。
<ステップS7>
第一装置Aが、第五乱数列に含まれる各乱数と、各乱数に対応する第一データベースの属性値の集合に含まれる値を準同型暗号で暗号化した秘密値又は各乱数に対応する所定の値とを含む要素を並び替えた要素列を第二装置Bに送信する(ステップS7)。
第一装置Aが、第五乱数列に含まれる各乱数と、各乱数に対応する第一データベースの属性値の集合に含まれる値を準同型暗号で暗号化した秘密値又は各乱数に対応する所定の値とを含む要素を並び替えた要素列を第二装置Bに送信する(ステップS7)。
このステップS7の処理は、第一装置Aの暗号化部A5により行われる。
並び替えは、例えばランダムに行われる。
図7の例では、属性aは、カテゴリ属性であり、属性値としてα,β,γの何れかの値を取るとする。また、H2(H1(1))に対応する属性aの属性値がγであり、・・・、H2(H1(7))に対応する属性aの属性値がβであるとする。この場合、暗号化部A5は、H2(H1(1))に対応する属性aの属性値を(E(0),E(0),E(1))とし、・・・、H2(H1(7))に対応する属性aの属性値を(E(0),E(1),E(0))とする。このように、暗号化部A5は、各属性値をワンホットベクトルに変換した上で、変換されたワンホットベクトルの各要素を暗号化してもよい。Eは、準同型暗号による暗号化を示す。H2(H1(4)),H2(H1(6))は第二データベースに由来するものであるため、暗号化部A5は、H2(H1(4)),H2(H1(6))のそれぞれに所定の値として(E(0),E(0),E(0))を割り当てている。この場合、第二装置Bに送信される要素列は、例えば図7のSE1のようになる。要素列SE1では、第五乱数列H2(H1(IDU)の中のH2(H1(1))とH2(H1(7))とに挟まれる部分が並び替えられている。
なお、属性がカテゴリ属性ではなく数値属性である場合には、暗号化部A5は属性値である数値をそのまま準同型暗号で暗号化してもよい。
<ステップS8>
第二装置Bが、第四乱数列と要素列とを用いて、第二データベースの属性値の集合に含まれる値と要素列に含まれる要素の秘密値又は所定の値とを対応付けた結合データベースを生成する(ステップS8)。
第二装置Bが、第四乱数列と要素列とを用いて、第二データベースの属性値の集合に含まれる値と要素列に含まれる要素の秘密値又は所定の値とを対応付けた結合データベースを生成する(ステップS8)。
このステップS8の処理は、第二装置Bの結合部B3により行われる。例えば、結合データベースの生成は、例えば、第四乱数列と要素列に含まれる乱数H2(H1(ID))を結合キーとして行われる。
図7の例では、属性bは、カテゴリ属性であり、属性値として#,$の何れかの値を取るとする。また、第二データベースにおいて、H2(H1(4))に対応する属性bの属性値が#であり、H2(H1(7))に対応する属性bの属性値が$であり、H2(H1(3))に対応する属性bの属性値が#であり、H2(H1(6))に対応する属性bの属性値が$であるとする。この場合、結合部B3により生成される結合データベースは、例えば図7のDB1のようになる。
<ステップS9>
第二装置Bが、結合データベースから統計量を得る(ステップS9)。
第二装置Bが、結合データベースから統計量を得る(ステップS9)。
このステップS9の処理は、第二装置Bの統計量取得部B4により行われる。属性aの属性値は準同型暗号で暗号化されているため、統計量取得部B4は、属性aの属性値を復号することなく暗号化されたままの状態で統計量を得ることができる。
統計量の例は、属性値から計算される平均、中央値、最頻値、分散、標準偏差である。もちろん、統計量として、これら以外の所定の統計量が計算されてもよい。
統計量は、集計結果であってもよい。言い換えれば、統計量取得部B4は、結合データベースから集計を行ってもよい。
図8の例では、統計量取得部B4は、属性aの属性値及び属性bの属性値に関する頻度が集計されている。これにより、図8では、集計表SS1が得られている。
<ステップS10>
第二装置Bが、計算された統計量にノイズを付与する(ステップS10)。
第二装置Bが、計算された統計量にノイズを付与する(ステップS10)。
このステップS10の処理は、第二装置Bのノイズ付与部B5により行われる。
ノイズの付与は、いわゆるプライバシノイズの付与である。例えば参考文献1及び2に記載された既存の手法でノイズの付与を行うことができる。
〔参考文献1〕紀伊真昇, ”小さいテーブルを用いる差分プライバシーのためのセキュアサンプリング”,CSS2022
〔参考文献2〕紀伊真昇,市川敦謙,千田浩司,濱田浩気, “差分プライベートな秘密計算のための暗号化された離散乱数を生成する非対話型二者間プロトコル”, 第186回マルチメディア通信と分散処理・第92回コンピュータセキュリティ合同研究発表会, (2021)
ステップS9の処理で図8の集計表SS1が統計量として得られている場合、ノイズ付与部B5の処理により、図9に示すように、ノイズ付与後の集計表SS2が統計量として得られる。
〔参考文献2〕紀伊真昇,市川敦謙,千田浩司,濱田浩気, “差分プライベートな秘密計算のための暗号化された離散乱数を生成する非対話型二者間プロトコル”, 第186回マルチメディア通信と分散処理・第92回コンピュータセキュリティ合同研究発表会, (2021)
ステップS9の処理で図8の集計表SS1が統計量として得られている場合、ノイズ付与部B5の処理により、図9に示すように、ノイズ付与後の集計表SS2が統計量として得られる。
<ステップS11>
第二装置Bが、ノイズが付与された統計量を第一装置Aに送信する(ステップS11)。
第二装置Bが、ノイズが付与された統計量を第一装置Aに送信する(ステップS11)。
このステップS11の処理は、第二装置Bの送信部B6により行われる。
<ステップS12>
第一装置Aが、第二装置Bから受信した、ノイズが付与された統計量を復号する(ステップS12)。
第一装置Aが、第二装置Bから受信した、ノイズが付与された統計量を復号する(ステップS12)。
このステップS12の処理は、第一装置Aの復号部A6により行われる。
復号部A6は、例えば、ステップS7の処理で用いた準同型暗号に対応する復号鍵を用いて復号を行う。
ステップS11の処理で図9の集計表SS2がノイズが付与された統計量として得られている場合、復号部A6の処理により、図10に示すように、復号された集計表SS3が得られる。
<ステップS13>
第一装置Aが、復号された統計量を第二装置Bに送信する(ステップS13)。
第一装置Aが、復号された統計量を第二装置Bに送信する(ステップS13)。
このステップS13の処理は、第一装置Aの送信部A7により行われる。
これにより、第二装置Bも、第一装置Aと同じ統計量を得ることができる。
このように、結合キー(上記の例では、H2(H1(ID)))の生成に一方向可換関数を用いず、紛失擬似ランダム関数(OPRF)を用いる。OPRFは、一方が持つ関数を相手に秘匿した状態で、他方が持つ入力値を相手に秘匿したまま関数の出力値を得られる一方向の関数である。これを役割を入れ替えて2回実施することで、IDを相手に明かさぬまま結合キーに変換できる。また、OPRFは、べき乗演算が無く、大半が軽量な行列演算で実行可能なため、従来よりも、結合データベースの生成及び統計量の計算の計算コストを削減できる。
[変形例]
以上、開示の技術の実施形態の具体的な構成は、これまで説明した構成に限られるものではない。開示の技術の実施形態の具体的な構成は、開示の技術の実施形態の趣旨を逸脱しない範囲で適宜設計の変更等が可能である。
以上、開示の技術の実施形態の具体的な構成は、これまで説明した構成に限られるものではない。開示の技術の実施形態の具体的な構成は、開示の技術の実施形態の趣旨を逸脱しない範囲で適宜設計の変更等が可能である。
開示の技術の実施形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
例えば、ステップS1の処理及びステップS2の処理は、順序を入れ替えて行われてもよい。
また、ステップS10からステップS13の処理の少なくとも1つは、行われなくてもよい。この場合、第一装置Aは、復号部A6及び送信部A7の少なくとも1つを備えていなくてもよい。また、第二装置Bは、統計量取得部B4、ノイズ付与部B5、送信部B6の少なくとも1つを備えていなくてもよい。
第一装置A及び第二装置Bの構成部間のデータのやり取りは直接行われてもよいし、図示していない記憶部を介して行われてもよい。
さらに、本発明の装置、本発明のシステムもしくは本発明の方法を、ネットワーク(電気通信回線)を介して使用するための装置(端末)も有してもよい。「使用するための装置(端末)」には、本発明の装置、本発明のシステムもしくは本発明の方法の実施による効果を得るために必要な機能(例えば、制御機能、復号機能、復元機能、入出力機能など)を備えさせてもよい。
その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
本明細書に記載された全ての文献、特許出願、及び技術規格は、個々の文献、特許出願、及び技術規格が参照により取り込まれることが具体的かつ個々に記載された場合と同程度に、本明細書中に参照により取り込まれる。
[プログラム、記録媒体]
本明細書中に記載されている構成要素により実現される機能は、当該記載された機能を実現するようにプログラムされた、汎用プロセッサ、特定用途プロセッサ、集積回路、ASICs(Application Specific Integrated Circuits)、CPU(a Central Processing Unit)、従来型の回路、および/又はそれらの組合せを含む、circuitry又はprocessing circuitryにおいて実装されてもよい。プロセッサは、トランジスタやその他の回路を含み、 circuitry又はprocessing circuitryとみなされる。プロセッサは、メモリに格納されたプログラムを実行する、programmed processorであってもよい。
本明細書中に記載されている構成要素により実現される機能は、当該記載された機能を実現するようにプログラムされた、汎用プロセッサ、特定用途プロセッサ、集積回路、ASICs(Application Specific Integrated Circuits)、CPU(a Central Processing Unit)、従来型の回路、および/又はそれらの組合せを含む、circuitry又はprocessing circuitryにおいて実装されてもよい。プロセッサは、トランジスタやその他の回路を含み、 circuitry又はprocessing circuitryとみなされる。プロセッサは、メモリに格納されたプログラムを実行する、programmed processorであってもよい。
本明細書において、circuitry、ユニット、手段は、記載された機能を実現するようにプログラムされたハードウェア、又は実行するハードウェアである。当該ハードウェアは、本明細書に開示されているあらゆるハードウェア、又は、当該記載された機能を実現するようにプログラムされた、又は、実行するものとして知られているあらゆるハードウェアであってもよい。
当該ハードウェアがcircuitryのタイプであるとみなされるプロセッサである場合、当該circuitry、手段、又はユニットは、ハードウェアと、当該ハードウェア及び又はプロセッサを構成する為に用いられるソフトウェアの組合せである。
上述の各種の処理は、図11に示すコンピュータ2000の記録部2020に、上記方法の各ステップを実行させるプログラムを読み込ませ、制御部2010、入力部2030、出力部2040、表示部2050などに動作させることで実施できる。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって処理を実行する構成としてもよい。さらには、サーバコンピュータの一部をプログラムと共にユーザに使用させる、いわゆるSaaS(Software as a Service)型のサービスを利用して、端末の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
Claims (7)
- 第一装置が持つデータベースは第一データベースであり、前記第一データベースのキー集合は第一キー集合であり、第二装置が持つデータベースは第二データベースであり、前記第二データベースのキー集合は第二キー集合であり、
πは置換であり、前記第一装置及び前記第二装置が、前記第一キー集合と前記第二キー集合とを入力として、PC(Permuted Characteristic)プロトコルを実行し、前記第二キー集合のπ(i)番目のキーが前記第一キー集合に含まれるか否かを表す特徴ベクトルを前記第一装置が得るステップと、
前記第一装置及び前記第二装置が、前記第一キー集合を入力として、OPRF(Oblivious PseudoRandom Function)プロトコルを実行し、前記第一キー集合に関する乱数の列である第一乱数列を前記第一装置が得るステップと、
前記第二装置が、前記第一乱数列を得るために実行されたOPRFプロトコルにより定まる疑似ランダム関数を用いて、前記第二キー集合に関する乱数の列である第二乱数列を得るステップと、
前記第一装置及び前記第二装置が、前記第二乱数列と前記特徴ベクトルの中で前記第一データベースのキーとして含まれないことを表す要素の番号集合とを入力として、OT(Oblivious Transfer)プロトコルを実行し、前記第二乱数列に含まれる乱数のうち、前記番号集合に含まれる番号の乱数で構成される第三乱数列を前記第一装置が得るステップと、
前記第一装置及び前記第二装置が、前記第二乱数列を入力として、OPRFプロトコルを実行し、前記第二乱数列に関する乱数の列である第四乱数列を前記第二装置が得るステップと、
前記第一装置が、第一乱数列に含まれる乱数と第三乱数列に含まれる乱数とを前記第四乱数列を得るために実行されたOPRFプロトコルにより定まる疑似ランダム関数を用いてかく乱した乱数の列である第五乱数列を前記第一装置が得るステップと、
前記第一装置が、前記第五乱数列に含まれる各乱数と、前記各乱数に対応する前記第一データベースの属性値の集合に含まれる値を準同型暗号で暗号化した秘密値又は各乱数に対応する所定の値とを含む要素を並び替えた要素列を前記第二装置に送信するステップと、
前記第二装置が、前記第四乱数列と前記要素列とを用いて、前記第二データベースの属性値の集合に含まれる値と前記要素列に含まれる要素の秘密値又は所定の値とを対応付けた結合データベースを生成するステップと、
前記第二装置が、前記結合データベースから統計量を得るステップと、
を含む統計量計算方法。 - 請求項1の統計量計算方法であって、
前記第二装置が、前記計算された統計量にノイズを付与するステップ、
を更に含む統計量計算方法。 - 請求項1の統計量計算方法であって、
前記第二装置が、前記ノイズが付与された統計量を前記第一装置に送信するステップと、
前記第一装置が、前記ノイズが付与された統計量を復号するステップと、
を更に含む統計量計算方法。 - 第一装置と第二装置とを含む統計量計算システムであって、
前記第一装置が持つデータベースは第一データベースであり、前記第一データベースのキー集合は第一キー集合であり、前記第二装置が持つデータベースは第二データベースであり、前記第二データベースのキー集合は第二キー集合であり、
πは置換であり、前記第一装置及び前記第二装置が、前記第一キー集合と前記第二キー集合とを入力として、PC(Permuted Characteristic)プロトコルを実行し、前記第二キー集合のπ(i)番目のキーが前記第一キー集合に含まれるか否かを表す特徴ベクトルを前記第一装置が得て、
前記第一装置及び前記第二装置が、前記第一キー集合を入力として、OPRF(Oblivious PseudoRandom Function)プロトコルを実行し、前記第一キー集合に関する乱数の列である第一乱数列を前記第一装置が得て、
前記第二装置が、前記第一乱数列を得るために実行されたOPRFプロトコルにより定まる疑似ランダム関数を用いて、前記第二キー集合に関する乱数の列である第二乱数列を得て、
前記第一装置及び前記第二装置が、前記第二乱数列と前記特徴ベクトルの中で前記第一データベースのキーとして含まれないことを表す要素の番号集合とを入力として、OT(Oblivious Transfer)プロトコルを実行し、前記第二乱数列に含まれる乱数のうち、前記番号集合に含まれる番号の乱数で構成される第三乱数列を前記第一装置が得て、
前記第一装置及び前記第二装置が、前記第二乱数列を入力として、OPRFプロトコルを実行し、前記第二乱数列に関する乱数の列である第四乱数列を前記第二装置が得て、
前記第一装置が、第一乱数列に含まれる乱数と第三乱数列に含まれる乱数とを前記第四乱数列を得るために実行されたOPRFプロトコルにより定まる疑似ランダム関数を用いてかく乱した乱数の列である第五乱数列を前記第一装置が得て、
前記第一装置が、前記第五乱数列に含まれる各乱数と、前記各乱数に対応する前記第一データベースの属性値の集合に含まれる値を準同型暗号で暗号化した秘密値又は各乱数に対応する所定の値とを含む要素を並び替えた要素列を前記第二装置に送信するステップと、
前記第二装置が、前記第四乱数列と前記要素列とを用いて、前記第二データベースの属性値の集合に含まれる値と前記要素列に含まれる要素の秘密値又は所定の値とを対応付けた結合データベースを生成して、
前記第二装置が、前記結合データベースから統計量を得る、
統計量計算システム。 - 第一装置が持つデータベースは第一データベースであり、前記第一データベースのキー集合は第一キー集合であり、第二装置が持つデータベースは第二データベースであり、前記第二データベースのキー集合は第二キー集合であり、
πは置換であり、前記第一装置及び前記第二装置が、前記第一キー集合と前記第二キー集合とを入力として、PC(Permuted Characteristic)プロトコルを実行することで得られる、前記第二キー集合のπ(i)番目のキーが前記第一キー集合に含まれるか否かを表すベクトルは、特徴ベクトルであり、
前記第一装置及び前記第二装置が、前記第一キー集合を入力として、OPRF(Oblivious PseudoRandom Function)プロトコルを実行することで得られる、前記第一キー集合に関する乱数の列は、第一乱数列であり、
前記第一乱数列を得るために実行されたOPRFプロトコルにより定まる疑似ランダム関数を用いて、前記第二キー集合に関する乱数の列である第二乱数列を得る第二乱数列生成部と、
前記第一装置及び前記第二装置が、前記第二乱数列と前記特徴ベクトルの中で前記第一データベースのキーとして含まれないことを表す要素の番号集合とを入力として、OT(Oblivious Transfer)プロトコルを実行することで得られる、前記第二乱数列に含まれる乱数のうち、前記番号集合に含まれる番号の乱数で構成される乱数の列は、第三乱数列であり、
前記第二乱数列を入力として、OPRFプロトコルを前記第一装置と共に実行し、前記第二乱数列に関する乱数の列である第四乱数列を得る第四乱数列生成部と、
前記第一装置が、第一乱数列に含まれる乱数と第三乱数列に含まれる乱数とを前記第四乱数列を得るために実行されたOPRFプロトコルにより定まる疑似ランダム関数を用いてかく乱した乱数の列は、第五乱数列であり、
前記第一装置が、前記第五乱数列に含まれる各乱数と、前記各乱数に対応する前記第一データベースの属性値の集合に含まれる値を準同型暗号で暗号化した秘密値又は各乱数に対応する所定の値とを含む要素を並び替えた要素列を前記第二装置に送信し、
前記第四乱数列と前記要素列とを用いて、前記第二データベースの属性値の集合に含まれる値と前記要素列に含まれる要素の秘密値又は所定の値とを対応付けた結合データベースを生成する結合部と、
前記結合データベースから統計量を得る統計量取得部と、
を含む前記第二装置である統計量計算装置。 - 第一装置が持つデータベースは第一データベースであり、前記第一データベースのキー集合は第一キー集合であり、第二装置が持つデータベースは第二データベースであり、前記第二データベースのキー集合は第二キー集合であり、
πは置換であり、前記第一装置及び前記第二装置が、前記第一キー集合と前記第二キー集合とを入力として、PC(Permuted Characteristic)プロトコルを実行することで得られる、前記第二キー集合のπ(i)番目のキーが前記第一キー集合に含まれるか否かを表すベクトルは、特徴ベクトルであり、
前記第一装置及び前記第二装置が、前記第一キー集合を入力として、OPRF(Oblivious PseudoRandom Function)プロトコルを実行することで得られる、前記第一キー集合に関する乱数の列は、第一乱数列であり、
前記第一乱数列を得るために実行されたOPRFプロトコルにより定まる疑似ランダム関数を用いて、前記第二キー集合に関する乱数の列である第二乱数列を得る第二乱数生成ステップと、
前記第一装置及び前記第二装置が、前記第二乱数列と前記特徴ベクトルの中で前記第一データベースのキーとして含まれないことを表す要素の番号集合とを入力として、OT(Oblivious Transfer)プロトコルを実行することで得られる、前記第二乱数列に含まれる乱数のうち、前記番号集合に含まれる番号の乱数で構成される乱数の列は、第三乱数列であり、
前記第二乱数列を入力として、OPRFプロトコルを前記第一装置と共に実行し、前記第二乱数列に関する乱数の列である第四乱数列を得る第四乱数生成ステップと、
前記第一装置が、第一乱数列に含まれる乱数と第三乱数列に含まれる乱数とを前記第四乱数列を得るために実行されたOPRFプロトコルにより定まる疑似ランダム関数を用いてかく乱した乱数の列は、第五乱数列であり、
前記第一装置が、前記第五乱数列に含まれる各乱数と、前記各乱数に対応する前記第一データベースの属性値の集合に含まれる値を準同型暗号で暗号化した秘密値又は各乱数に対応する所定の値とを含む要素を並び替えた要素列を前記第二装置に送信し、
前記第四乱数列と前記要素列とを用いて、前記第二データベースの属性値の集合に含まれる値と前記要素列に含まれる要素の秘密値又は所定の値とを対応付けた結合データベースを生成する結合ステップと、
前記結合データベースから統計量を得る統計量取得ステップと、
を含む統計量計算方法。 - 請求項6の統計量取得方法の各ステップをコンピュータに実行させるためのプログラム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2024/014261 WO2025215701A1 (ja) | 2024-04-08 | 2024-04-08 | 統計量計算方法、システム、装置及びプログラム |
| PCT/JP2025/013815 WO2025216202A1 (ja) | 2024-04-08 | 2025-04-04 | 統計量計算方法、システム、装置及びプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2024/014261 WO2025215701A1 (ja) | 2024-04-08 | 2024-04-08 | 統計量計算方法、システム、装置及びプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025215701A1 true WO2025215701A1 (ja) | 2025-10-16 |
Family
ID=97349934
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2024/014261 Pending WO2025215701A1 (ja) | 2024-04-08 | 2024-04-08 | 統計量計算方法、システム、装置及びプログラム |
| PCT/JP2025/013815 Pending WO2025216202A1 (ja) | 2024-04-08 | 2025-04-04 | 統計量計算方法、システム、装置及びプログラム |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2025/013815 Pending WO2025216202A1 (ja) | 2024-04-08 | 2025-04-04 | 統計量計算方法、システム、装置及びプログラム |
Country Status (1)
| Country | Link |
|---|---|
| WO (2) | WO2025215701A1 (ja) |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7547768B2 (ja) * | 2020-04-21 | 2024-09-10 | 日本電信電話株式会社 | 学習装置、学習方法及びプログラム |
-
2024
- 2024-04-08 WO PCT/JP2024/014261 patent/WO2025215701A1/ja active Pending
-
2025
- 2025-04-04 WO PCT/JP2025/013815 patent/WO2025216202A1/ja active Pending
Non-Patent Citations (3)
| Title |
|---|
| GARIMELLA GAYATHRI, MOHASSEL PAYMAN, ROSULEK MIKE, SADEGHIAN SAEED, SINGH JASPAL: "Private Set Operations from Oblivious Switching", HTTPS://EPRINT.IACR.ORG, 1 March 2021 (2021-03-01), pages 1 - 27, XP093363775, Retrieved from the Internet <URL:https://eprint.iacr.org/2021/243> DOI: 10.1007/978-3-030-75248-4_21 * |
| KATAYAMA GENTARO, YOSHIURA HIROSHI: "Performance Comparison of Two-Party Secure Anonymized Cross Tabulation Protocol with Fully Homomorphic Encryption", TRANSACTIONS OF INFORMATION PROCESSING SOCIETY OF JAPAN, vol. 61, no. 6, 15 June 2020 (2020-06-15), JP , pages 1175 - 1189, XP093364407, ISSN: 1882-7764 * |
| NOZAWA KAZUMA, HASEGWA KEITA, KII MASANOBU, ICHIKAWA ATSUNORI, NAKAGAWA TOMOHIRO, OCHIAI KEIICHI, SASAKI KAZUYA, CHIDA KOJI, TERAD: "Proposal and evaluation of Data Aggregation for Cross-Organizational Join of Personal Data", COMPUTER SECURITY SYMPOSIUM 2022, 17 October 2022 (2022-10-17) - 2022-10-27, JP, pages 333 - 340, XP093364411 * |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2025216202A1 (ja) | 2025-10-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20230361986A1 (en) | Simd interactive comparison using garbled circuits and interactive bootstrapping for homomorphic encryption | |
| US6189095B1 (en) | Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks | |
| US20170147835A1 (en) | Efficient two party oblivious transfer using a leveled fully homomorphic encryption | |
| CN111510281A (zh) | 一种同态加密方法及装置 | |
| CN111917533B (zh) | 具有减少泄漏的区间统计量的隐私保护基准分析 | |
| US11323240B2 (en) | Interactive techniques for accelerating homomorphic linear operations on encrypted data | |
| Tu et al. | Fast unbalanced private set union from fully homomorphic encryption | |
| WO2014007296A1 (ja) | 順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム | |
| Babu | Modification affine ciphers algorithm for cryptography password | |
| Wang et al. | Mueoc: Efficient SGX-based multi-key homomorphic outsourcing computation for E-health system | |
| Joseph et al. | A Novel Algorithm for secured data sharing in cloud using GWOA-DNA cryptography | |
| Sujithra et al. | ID based adaptive-key signcryption for data security in cloud environment | |
| Rentería-Mejía et al. | Lattice-based cryptoprocessor for CCA-secure identity-based encryption | |
| WO2023002525A1 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、及びプログラム | |
| CN117708881B (zh) | 基于可重用混淆电路的跨机构黑名单共享方法及系统 | |
| US12231563B2 (en) | Secure computation and communication | |
| US11811920B1 (en) | Secure computation and communication | |
| Adebayo et al. | Data privacy system using steganography and cryptography | |
| WO2025216202A1 (ja) | 統計量計算方法、システム、装置及びプログラム | |
| US11907392B2 (en) | System and method utilizing function secret sharing with conditional disclosure of secrets | |
| Abdul Hussien | An Integrated Cryptographic Approach Using Elliptic Curve Cryptography, Triple Data Encryption Standard and Hash-based Message Authentication Code. | |
| WO2025262813A1 (ja) | 統計量計算方法、装置及びプログラム | |
| Rajashree et al. | Homomorphic encryption approach for string concatenation | |
| Hegde et al. | Privacy Preserving Student Feedback System using Homomorphic Encryption | |
| Shaik et al. | A compatible hexadecimal encryption-booster algorithm for augmenting security in the advanced encryption standard |
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: 24935082 Country of ref document: EP Kind code of ref document: A1 |