WO2023228273A1 - 秘密属性選択システム、秘密属性選択装置、秘密属性選択方法、プログラム - Google Patents
秘密属性選択システム、秘密属性選択装置、秘密属性選択方法、プログラム Download PDFInfo
- Publication number
- WO2023228273A1 WO2023228273A1 PCT/JP2022/021238 JP2022021238W WO2023228273A1 WO 2023228273 A1 WO2023228273 A1 WO 2023228273A1 JP 2022021238 W JP2022021238 W JP 2022021238W WO 2023228273 A1 WO2023228273 A1 WO 2023228273A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- share
- data
- matrix
- attribute
- length
- Prior art date
Links
- 238000010187 selection method Methods 0.000 title claims 2
- 239000013598 vector Substances 0.000 claims abstract description 88
- 239000011159 matrix material Substances 0.000 claims abstract description 75
- 238000004364 calculation method Methods 0.000 claims abstract description 56
- 238000011156 evaluation Methods 0.000 claims abstract description 24
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000000034 method Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
Images
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 present invention relates to secure calculation technology, and particularly to technology for securely calculating attribute selection based on evaluation values.
- Non-Patent Document 1 performs encryption by distributing multiple pieces of information from which numerical values can be restored to three secret computing devices, and performs addition/subtraction, constant sum, multiplication, constant multiplication, It is possible to keep the results of logical operations (negation, logical product, logical sum, exclusive disjunction) and data format conversion (integer, binary number) in three secure computing devices in a distributed state, that is, in an encrypted state. can.
- the number of distributions is not limited to 3, but can be set to W (W is a predetermined constant of 3 or more), and a protocol that realizes secure computation through cooperative computation by W secure computing devices is called a multiparty protocol.
- N data consisting of M attributes grouped into a predetermined number of groups
- the present invention aims to calculate evaluation values from among K attributes randomly selected for each group for N data composed of M attributes grouped into a predetermined number of groups.
- the purpose of this invention is to provide a technique for efficiently and securely calculating the selection of the best attributes.
- N (N is an integer of 1 or more) is the number of data
- M (M is an integer of 1 or more) is the number of attributes that make up the data
- an evaluation value is obtained from among K attributes randomly selected for each group. It becomes possible to perform secret calculation efficiently to select the attribute that gives the best value.
- FIG. 1 is a block diagram showing the configuration of a secret attribute selection system 10.
- FIG. FIG. 2 is a block diagram showing the configuration of a secret attribute selection device 100 i .
- 3 is a flowchart showing the operation of the secret attribute selection system 10.
- 1 is a diagram illustrating an example of a functional configuration of a computer that implements each device in an embodiment of the present invention.
- ⁇ (caret) represents a superscript.
- x y ⁇ z indicates that y z is a superscript to x
- x y ⁇ z indicates that y z is a subscript to x
- _ (underscore) represents a subscript.
- x y_z indicates that y z is a superscript to x
- x y_z indicates that y z is a subscript to x.
- the secure computation in the invention of this application is constructed by a combination of existing secure computation operations.
- [Anonymization] Let [[x]] be the value of x concealed by secret sharing (hereinafter referred to as the share of x). Any method can be used as the secret sharing method. For example, Shamir secret sharing on GF(2 61 -1) and replicated secret sharing on Z 2 can be used.
- Multiple secret sharing methods may be used in combination within one algorithm. In this case, mutual conversion shall be made as appropriate.
- [[ ⁇ x]] is a vector whose n-th element is the share [[x n ]] of the n-th element x n of ⁇ x.
- [[A]] is the (m, n)th element of A
- a m ,n is a matrix whose (m, n)th element is the share [[a m,n ]].
- Non-Patent Document 1 and Reference Non-Patent Document 1 are methods for obtaining [[x]] from x (concealment) and methods for obtaining x from [[x]] (restoration). be.
- Reference non-patent document 1 Shamir, A., “How to share a secret”, Communications of the ACM, Vol.22, No.11, pp.612-613, 1979.
- [Addition, subtraction, multiplication, division] Addition [[x]]+[[y]] by secure calculation takes [[x]], [[y]] as inputs and outputs [[x+y]].
- Subtraction [[x]]-[[y]] by secret calculation takes [[x]], [[y]] as inputs and outputs [[xy]].
- Multiplication [[x]] ⁇ [[y]] (sometimes expressed as mul([[x]], [[y]])) by secure calculation is Takes as input and outputs [[x ⁇ y]].
- the secure division [[x]]/[[y]] (sometimes expressed as div([[x]], [[y]])) divides [[x]], [[y]] into Takes as input and outputs [[x/y]].
- Reference Non-Patent Document 2 Ben-Or, M., Goldwasser, S. and Wigderson, A., “Completeness theorems for non-cryptographic fault-tolerant distributed computation”, Proceedings of the twentieth annual ACM symposium on Theory of computing, ACM, pp. 1-10, 1988.
- Reference Non-Patent Document 3 Gennaro, R., Rabin, M. O.
- [[ ⁇ y]] is a vector obtained by stably sorting shares [[ ⁇ x]] using a permutation ⁇ of ⁇ 1, ..., N ⁇ that stably sorts shares [[ ⁇ k]].
- Reference Non-Patent Document 4 Koji Chida, Koki Hamada, Dai Ikarashi, Ryo Kikuchi, Naoto Kiribuchi, and Benny Pinkas, “An Efficient Secure Three-Party Sorting Protocol with an Honest Majority,” IACR Cryptol. ePrint Arch., 2019.
- FIG. 1 is a block diagram showing the configuration of a secret attribute selection system 10.
- the secret attribute selection system 10 includes W secret attribute selection devices 100 1 , . . . , 100 W (W is a predetermined integer of 3 or more).
- the secret attribute selection devices 100 1 , . . . , 100 W are connected to a network 800 and can communicate with each other.
- the network 800 may be, for example, a communication network such as the Internet or a broadcast channel.
- FIG. 2 is a block diagram showing the configuration of the secret attribute selection device 100 i (1 ⁇ i ⁇ W).
- FIG. 3 is a flowchart showing the operation of the secret attribute selection system 10.
- the secret attribute selection device 100i includes a first matrix calculation section 110i , a second matrix calculation section 120i , a third matrix calculation section 130i , a first vector calculation section 140i , It includes a recording section 190i .
- Each component of the secret attribute selection device 100 i except the recording unit 190 i performs operations necessary for secure calculation, that is, at least concealment, addition, subtraction, multiplication, division, logical operation, comparison operation, secret stable sorting, Among group-wise sum operations, it is configured to be able to execute operations necessary to realize the functions of each component.
- a specific functional configuration for realizing each operation in the present invention is, for example, a configuration that can execute existing algorithms including the algorithms disclosed in Non-Patent Document 1 and Reference Non-Patent Documents 1 to 5. Since these are conventional configurations, a detailed explanation will be omitted. Furthermore, the recording unit 190 i is a component that records information necessary for processing by the secret attribute selection device 100 i .
- the secret attribute selection system 10 realizes secret calculation for attribute selection using a multi-party protocol. Therefore, the first matrix calculation means 110 (not shown) of the secret attribute selection system 10 is composed of first matrix calculation units 110 1 , ..., 110 W , and the second matrix calculation means 120 (not shown)
- the third matrix calculation means 130 (not shown) is composed of the third matrix calculation parts 130 1 , ... , 130 W
- the first vector calculation means 140 is composed of first vector calculation units 140 1 , . . . , 140 W.
- share [[X]] and share [[ ⁇ g]] may be recorded in advance in the recording unit 190 i .
- the t on the right side of a vector or matrix represents transposition, such as the t in ( ⁇ x 1 , ..., ⁇ x N ) t .
- the share [[Y]] of the i-th data for K attributes randomly selected in the group to which x belongs which is a row vector of length K in which the values of x i are arranged in the order of the attribute number, is expressed as the share
- the second matrix calculation means 120 calculates, for example, the M-K+1st to Mth elements of a vector obtained by secret stable sorting of shares [[ ⁇ x i ]] with respect to shares [[ ⁇ e i ]].
- the method described in Reference Non-Patent Document 4 can be used for secret stability sorting.
- the first vector calculation means 140 calculates the share [[ ⁇ z]] from the share [[S]] calculated in S130 using the share [[Y]] and the share [[U]] calculated in S120. Calculate.
- the secret attribute selection system 10 can be used, for example, for machine learning based on random forest.
- N data consisting of M attributes grouped into a predetermined number of groups
- K attributes randomly selected for each group is provided. It becomes possible to efficiently and secretly calculate the selection of the attribute with the best evaluation value from Specifically, while the method described in [Background Art] required calculating evaluation values for all M attributes, according to the embodiment of the present invention, evaluation values can be calculated for K attributes. Since only the calculation is sufficient, it is possible to reduce the number of times the evaluation value is calculated.
- the processing of each part of each device described above may be realized by a computer, and in this case, the processing contents of the functions that each device should have are described by a program. Then, by loading this program into the recording unit 2020 of the computer 2000 shown in FIG. Functions are implemented on a computer.
- the device of the present invention as a single hardware entity, includes an input section capable of inputting a signal from outside the hardware entity, an output section capable of outputting a signal outside the hardware entity, and a communication section external to the hardware entity.
- a communication unit that can be connected to a communication device (for example, a communication cable), a CPU (Central Processing Unit, which may be equipped with cache memory, registers, etc.) that is an arithmetic processing unit, RAM or ROM that is memory, and a hard disk. It has an external storage device, an input section, an output section, a communication section, a CPU, a RAM, a ROM, and a bus that connects the external storage device so that data can be exchanged between them.
- the hardware entity may be provided with a device (drive) that can read and write a recording medium such as a CD-ROM.
- a physical entity with such hardware resources includes a general-purpose computer.
- the external storage device of the hardware entity stores the program required to realize the above-mentioned functions and the data required for processing this program (not limited to the external storage device, for example, when reading the program (It may also be stored in a ROM, which is a dedicated storage device.) Further, data obtained through processing of these programs is appropriately stored in a RAM, an external storage device, or the like.
- each program stored in an external storage device or ROM, etc.
- the data required to process each program are read into memory as necessary, and interpreted and executed and processed by the CPU as appropriate.
- the CPU realizes a predetermined function (each of the components expressed as . . . units, . . . means, etc.). That is, each component in the embodiment of the present invention may be configured by a processing circuit.
- the processing functions of the hardware entity (device of the present invention) described in the above embodiments are realized by a computer, the processing contents of the functions that the hardware entity should have are described by a program. By executing this program on a computer, the processing functions of the hardware entity are realized on the computer.
- a program that describes this processing content can be recorded on a computer-readable recording medium.
- the computer-readable recording medium is, for example, a non-temporary recording medium, specifically a magnetic recording device, an optical disk, or the like.
- this program is performed, for example, by selling, transferring, lending, etc. portable recording media such as DVDs and CD-ROMs on which the program is recorded. Furthermore, this program may be distributed by storing the program in the storage device of the server computer and transferring the program from the server computer to another computer via a network.
- a computer that executes such a program for example, first stores a program recorded on a portable recording medium or a program transferred from a server computer into the auxiliary storage unit 2025, which is its own non-temporary storage device. Store. When executing a process, this computer loads the program stored in the auxiliary storage unit 2025, which is its own non-temporary storage device, into the recording unit 2020, and executes the process according to the read program. Further, as another form of execution of this program, the computer may directly load the program from a portable recording medium into the recording unit 2020 and execute processing according to the program. Each time the received program is transferred, processing may be executed in accordance with the received program.
- ASP Application Service Provider
- the above-mentioned processing is executed by a so-called ASP (Application Service Provider) type service, which does not transfer programs from the server computer to this computer, but only realizes processing functions by issuing execution instructions and obtaining results.
- ASP Application Service Provider
- the present apparatus is configured by executing a predetermined program on a computer, but at least a part of these processing contents may be implemented in hardware.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
所定の数のグループにグループ分けされた、M個の属性で構成されるN個のデータに対して、グループごとにランダムに選択されたK個の属性の中から評価値が最良となる属性の選択を効率的に秘密計算する技術を提供する。N個のデータを表す行列Xのシェア[[X]]とN個のデータをグループ分けしたグループを表す列ベクトル→gのシェア[[→g]]を用いて、各行が所定の条件を満たす行列Eのシェア[[E]]を計算する第1行列計算手段と、各行が所定の条件を満たす行列Yのシェア[[Y]]、行列Uのシェア[[U]]を計算する第2行列計算手段と、各行が所定の条件を満たす行列Sのシェア[[S]]を計算する第3行列計算手段と、i番目のデータが属するグループにおいてランダムに選択されたK個の属性のうち評価値が最良となる属性の番号をi番目の要素とする列ベクトル→zのシェア[[→z]]を計算する第1ベクトル計算手段とを含む。
Description
本発明は、秘密計算技術に関し、特に評価値に基づく属性の選択を秘密計算する技術に関する。
秘密計算とは、暗号化された数値を復元することなく指定された演算の演算結果を得る方法のことである(例えば非特許文献1参照)。非特許文献1の方法では、数値を復元することのできる複数の情報を3つの秘密計算装置に分散するという暗号化を行い、数値を復元することなく、加減算、定数和、乗算、定数倍、論理演算(否定、論理積、論理和、排他的論理和)、データ形式変換(整数、二進数)の結果を3つの秘密計算装置に分散された状態、すなわち暗号化されたまま保持させることができる。一般に、分散数は3に限らずW(Wは3以上の所定の定数)とすることができ、W個の秘密計算装置による協調計算によって秘密計算を実現するプロトコルはマルチパーティプロトコルと呼ばれる。
所定の数のグループにグループ分けされた、M個の属性で構成されるN個のデータに対して、グループごとにランダムに選択されたK個の属性の中から評価値が最良となる属性を選択する秘密計算を考える。この場合、グループごとにM個の属性すべてについて評価値を計算すれば、グループごとにランダムに選択されたK個の属性の中から評価値が最良となる属性を選択することができる。
千田浩司, 濱田浩気, 五十嵐大, 高橋克巳, "軽量検証可能3パーティ秘匿関数計算の再考," In CSS, 2010.
しかし、上記説明した方法は、グループごとにM個の属性すべてについて評価値を計算するため計算量は大きなものとなり、効率的ではない。
そこで本発明は、所定の数のグループにグループ分けされた、M個の属性で構成されるN個のデータに対して、グループごとにランダムに選択されたK個の属性の中から評価値が最良となる属性の選択を効率的に秘密計算する技術を提供することを目的とする。
本発明の一態様は、N(Nは1以上の整数)をデータの数、M(Mは1以上の整数)をデータを構成する属性の数、X=(→x1, …, →xN)t(ただし、→xi(i=1, …, N)はi番目のデータを表す長さMの行ベクトルであり、N個のデータ→x1, …, →xNは所定の数のグループにグループ分けされ、同じグループに属するデータが隣接するように並んでいる)をN個のデータ→x1, …, →xNを表すN行M列の行列、→g=(g1, …, gN)t(ただし、gi(i=1, …, N)はi番目のデータ→xiがあるグループの先頭のデータである場合には1、それ以外の場合には0である)をN個のデータ→x1, …, →xNをグループ分けしたグループを表す長さNの列ベクトルとし、3個以上の秘密属性選択装置で構成され、N個のデータ→x1, …, →xNを表す行列Xのシェア[[X]]とN個のデータ→x1, …, →xNをグループ分けしたグループを表す列ベクトル→gのシェア[[→g]]から、i番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性(Kは1以上M以下の整数)のうち評価値が最良となる属性の番号をi番目の要素ziとする長さNの列ベクトル→z=(z1, …, zN)tのシェア[[→z]]を計算する秘密属性選択システムであって、シェア[[→g]]を用いて、N行M列の行列E=(→e1, …, →eN)t(ただし、→ei(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性を表す長さMの行ベクトルであり、行ベクトル→eiのj番目の要素ei,jはj番目の属性が選択された属性である場合には1、それ以外の場合には0である)のシェア[[E]]を計算する第1行列計算手段と、V=(→v1, …, →vN)t(ただし、→vi(i=1, …, N)はi番目のデータ→xiの属性の番号を属性の番号順に並べた長さMの行ベクトル(1, 2, …, M)である)をN行M列の行列とし、シェア[[E]]を用いて、シェア[[X]]からN行K列の行列Y=(→y1, …, →yN)t(ただし、→yi(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性に対するi番目のデータ→xiの値を属性の番号順に並べた長さKの行ベクトルである)のシェア[[Y]]を、シェア[[V]]からN行K列の行列U=(→u1, …, →uN)t(ただし、→ui(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性の番号を属性の番号順に並べた長さKの行ベクトルである)のシェア[[U]]をそれぞれ計算する第2行列計算手段と、シェア[[Y]]からN行K列の行列S=(→s1, …, →sN)t(ただし、→si(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性に対する当該グループの評価値を属性の番号順に並べた長さKの行ベクトルである)のシェア[[S]]を計算する第3行列計算手段と、シェア[[Y]]とシェア[[U]]を用いて、シェア[[S]]からシェア[[→z]]を計算する第1ベクトル計算手段と、を含む。
本発明によれば、所定の数のグループにグループ分けされた、M個の属性で構成されるN個のデータに対して、グループごとにランダムに選択されたK個の属性の中から評価値が最良となる属性の選択を効率的に秘密計算することが可能となる。
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
各実施形態の説明に先立って、この明細書における表記方法について説明する。
^(キャレット)は上付き添字を表す。例えば、xy^zはyzがxに対する上付き添字であり、xy^zはyzがxに対する下付き添字であることを表す。また、_(アンダースコア)は下付き添字を表す。例えば、xy_zはyzがxに対する上付き添字であり、xy_zはyzがxに対する下付き添字であることを表す。
ある文字xに対する^xや~xのような上付き添え字の”^”や”~”は、本来”x”の真上に記載されるべきであるが、明細書の記載表記の制約上、^xや~xと記載しているものである。
<技術的背景>
<<秘密計算>>
本願の発明における秘密計算は、既存の秘密計算上の演算の組み合わせで構築される。この秘密計算に必要な演算は、秘匿化、加算、減算、乗算、除算、論理演算(否定、論理積、論理和、排他的論理和)、比較演算(=, <, >, ≦, ≧)、秘密安定ソート、Group-wise sum演算である。以下、記法も含めいくつかの演算について説明していく。
[秘匿化]
[[x]]をxを秘密分散で秘匿した値(以下、xのシェアという)とする。秘密分散方法には、任意の方法を用いることができる。例えば、GF(261-1)上のShamir秘密分散、Z2上の複製秘密分散を用いることができる。
<技術的背景>
<<秘密計算>>
本願の発明における秘密計算は、既存の秘密計算上の演算の組み合わせで構築される。この秘密計算に必要な演算は、秘匿化、加算、減算、乗算、除算、論理演算(否定、論理積、論理和、排他的論理和)、比較演算(=, <, >, ≦, ≧)、秘密安定ソート、Group-wise sum演算である。以下、記法も含めいくつかの演算について説明していく。
[秘匿化]
[[x]]をxを秘密分散で秘匿した値(以下、xのシェアという)とする。秘密分散方法には、任意の方法を用いることができる。例えば、GF(261-1)上のShamir秘密分散、Z2上の複製秘密分散を用いることができる。
ある1つのアルゴリズムの中で複数の秘密分散方法を組み合わせて用いてもよい。この場合、適宜相互に変換するものとする。
また、N次元ベクトル→x=(x1, …, xN)に対して、[[→x]]=([[x1]], …, [[xN]])とする。つまり、[[→x]]は、→xの第n要素xnのシェア[[xn]]を第n要素とするベクトルである。同様に、M×N行列A=(am,n)(1≦m≦M, 1≦n≦N)に対しても、[[A]]をAの第(m, n)要素am,nのシェア[[am,n]]を第(m, n)要素とする行列とする。
なお、xを[[x]]の平文という。
xから[[x]]を求める方法(秘匿化)、[[x]]からxを求める方法(復元)として、具体的には、非特許文献1、参考非特許文献1に記載の方法がある。
(参考非特許文献1:Shamir, A., “How to share a secret”, Communications of the ACM, Vol.22, No.11, pp.612-613, 1979.)
[加算、減算、乗算、除算]
秘密計算による加算[[x]]+[[y]]は、[[x]], [[y]]を入力とし、[[x+y]]を出力する。秘密計算による減算[[x]]-[[y]]は、[[x]], [[y]]を入力とし、[[x-y]]を出力する。秘密計算による乗算[[x]]×[[y]](mul([[x]], [[y]])と表すこともある)は、[[x]], [[y]]を入力とし、[[x×y]]を出力する。秘密計算による除算[[x]]/[[y]](div([[x]], [[y]])と表すこともある)は、[[x]], [[y]]を入力とし、[[x/y]]を出力する。
(参考非特許文献1:Shamir, A., “How to share a secret”, Communications of the ACM, Vol.22, No.11, pp.612-613, 1979.)
[加算、減算、乗算、除算]
秘密計算による加算[[x]]+[[y]]は、[[x]], [[y]]を入力とし、[[x+y]]を出力する。秘密計算による減算[[x]]-[[y]]は、[[x]], [[y]]を入力とし、[[x-y]]を出力する。秘密計算による乗算[[x]]×[[y]](mul([[x]], [[y]])と表すこともある)は、[[x]], [[y]]を入力とし、[[x×y]]を出力する。秘密計算による除算[[x]]/[[y]](div([[x]], [[y]])と表すこともある)は、[[x]], [[y]]を入力とし、[[x/y]]を出力する。
加算、減算、乗算、除算の具体的方法として、参考非特許文献2、参考非特許文献3に記載の方法がある。
(参考非特許文献2:Ben-Or, M., Goldwasser, S. and Wigderson, A., “Completeness theorems for non-cryptographic fault-tolerant distributed computation”, Proceedings of the twentieth annual ACM symposium on Theory of computing, ACM, pp. 1-10, 1988.)
(参考非特許文献3:Gennaro, R., Rabin, M. O. and Rabin, T., “Simplied VSS and fast-track multiparty computations with applications to threshold cryptography”, Proceedings of the seventeenth annual ACM symposium on Principles of distributed computing, ACM, pp.101-111, 1998.)
[論理演算]
秘密計算による否定not[[x]]は、[[x]]を入力とし、[[not(x)]]を出力する。秘密計算による論理積and([[x]], [[y]])は、[[x]], [[y]]を入力とし、[[and(x, y)]]を出力する。秘密計算による論理和or([[x]], [[y]])は、[[x]], [[y]]を入力とし、[[or(x, y)]]を出力する。秘密計算による排他的論理和xor([[x]], [[y]])は、[[x]], [[y]]を入力とし、[[xor(x, y)]]を出力する。
(参考非特許文献2:Ben-Or, M., Goldwasser, S. and Wigderson, A., “Completeness theorems for non-cryptographic fault-tolerant distributed computation”, Proceedings of the twentieth annual ACM symposium on Theory of computing, ACM, pp. 1-10, 1988.)
(参考非特許文献3:Gennaro, R., Rabin, M. O. and Rabin, T., “Simplied VSS and fast-track multiparty computations with applications to threshold cryptography”, Proceedings of the seventeenth annual ACM symposium on Principles of distributed computing, ACM, pp.101-111, 1998.)
[論理演算]
秘密計算による否定not[[x]]は、[[x]]を入力とし、[[not(x)]]を出力する。秘密計算による論理積and([[x]], [[y]])は、[[x]], [[y]]を入力とし、[[and(x, y)]]を出力する。秘密計算による論理和or([[x]], [[y]])は、[[x]], [[y]]を入力とし、[[or(x, y)]]を出力する。秘密計算による排他的論理和xor([[x]], [[y]])は、[[x]], [[y]]を入力とし、[[xor(x, y)]]を出力する。
なお、論理演算は加算、減算、乗算、除算を組み合わせることで容易に構成することができる。
[比較演算]
秘密計算による等号判定=([[x]], [[y]]) (equal([[x]], [[y]])と表すこともある)は、[[x]], [[y]]を入力とし、x=yである場合は[[1]]を、それ以外の場合は[[0]]を出力する。秘密計算による比較<([[x]], [[y]])は、[[x]], [[y]]を入力とし、x<yである場合は[[1]]を、それ以外の場合は[[0]]を出力する。秘密計算による比較>([[x]], [[y]])は、[[x]], [[y]]を入力とし、x>yである場合は[[1]]を、それ以外の場合は[[0]]を出力する。秘密計算による比較≦([[x]], [[y]])は、[[x]], [[y]]を入力とし、x≦yである場合は[[1]]を、それ以外の場合は[[0]]を出力する。秘密計算による比較≧([[x]], [[y]])は、[[x]], [[y]]を入力とし、x≧yである場合は[[1]]を、それ以外の場合は[[0]]を出力する。
[比較演算]
秘密計算による等号判定=([[x]], [[y]]) (equal([[x]], [[y]])と表すこともある)は、[[x]], [[y]]を入力とし、x=yである場合は[[1]]を、それ以外の場合は[[0]]を出力する。秘密計算による比較<([[x]], [[y]])は、[[x]], [[y]]を入力とし、x<yである場合は[[1]]を、それ以外の場合は[[0]]を出力する。秘密計算による比較>([[x]], [[y]])は、[[x]], [[y]]を入力とし、x>yである場合は[[1]]を、それ以外の場合は[[0]]を出力する。秘密計算による比較≦([[x]], [[y]])は、[[x]], [[y]]を入力とし、x≦yである場合は[[1]]を、それ以外の場合は[[0]]を出力する。秘密計算による比較≧([[x]], [[y]])は、[[x]], [[y]]を入力とし、x≧yである場合は[[1]]を、それ以外の場合は[[0]]を出力する。
なお、比較演算は論理演算を組み合わせることで容易に構成することができる。
[秘密安定ソート]
秘密安定ソートとは、秘密計算上の安定ソートのことであり、N次元ベクトル→y=(y1, …, yN)のシェア[[→y]]がN次元ベクトル→k=(k1, …, kN)のシェア[[→k]]に関してN次元ベクトル→x=(x1, …, xN)のシェア[[→x]]を秘密安定ソートしたベクトルであるとは、シェア[[→y]]がシェア[[→k]]を安定ソートする{1, …, N}の置換σを用いてシェア[[→x]]を安定ソートしたベクトルとなることをいう。
[秘密安定ソート]
秘密安定ソートとは、秘密計算上の安定ソートのことであり、N次元ベクトル→y=(y1, …, yN)のシェア[[→y]]がN次元ベクトル→k=(k1, …, kN)のシェア[[→k]]に関してN次元ベクトル→x=(x1, …, xN)のシェア[[→x]]を秘密安定ソートしたベクトルであるとは、シェア[[→y]]がシェア[[→k]]を安定ソートする{1, …, N}の置換σを用いてシェア[[→x]]を安定ソートしたベクトルとなることをいう。
秘密安定ソートの具体的方法として、参考非特許文献4に記載の方法がある。
(参考非特許文献4:Koji Chida, Koki Hamada, Dai Ikarashi, Ryo Kikuchi, Naoto Kiribuchi, and Benny Pinkas, “An Efficient Secure Three-Party Sorting Protocol with an Honest Majority,” IACR Cryptol. ePrint Arch., 2019.)
[Group-wise sum演算]
Group-wise sum演算とは、N次元ベクトル→x=(x1, …, xN)(ただし、N個の要素x1, …, xNは所定の数のグループにグループ分けされ、同じグループに属する要素が隣接するように並んでいる)、N次元ベクトル→g=(g1, …, gN)(ただし、gn(n=1, …, N)はn番目の要素xnがあるグループの先頭のデータである場合には1、それ以外の場合には0である)に対して、[[→x]], [[→g]]を入力とし、N次元ベクトル→y=(y1, …, yN)(ただし、yn(n=1, …, N)はn番目の要素xnが属するグループの要素の和である)のシェア[[→y]]を出力する。
(参考非特許文献4:Koji Chida, Koki Hamada, Dai Ikarashi, Ryo Kikuchi, Naoto Kiribuchi, and Benny Pinkas, “An Efficient Secure Three-Party Sorting Protocol with an Honest Majority,” IACR Cryptol. ePrint Arch., 2019.)
[Group-wise sum演算]
Group-wise sum演算とは、N次元ベクトル→x=(x1, …, xN)(ただし、N個の要素x1, …, xNは所定の数のグループにグループ分けされ、同じグループに属する要素が隣接するように並んでいる)、N次元ベクトル→g=(g1, …, gN)(ただし、gn(n=1, …, N)はn番目の要素xnがあるグループの先頭のデータである場合には1、それ以外の場合には0である)に対して、[[→x]], [[→g]]を入力とし、N次元ベクトル→y=(y1, …, yN)(ただし、yn(n=1, …, N)はn番目の要素xnが属するグループの要素の和である)のシェア[[→y]]を出力する。
Group-wise sum演算の具体的方法として、参考非特許文献5に記載の方法がある。
(参考非特許文献5:Koki Hamada, Dai Ikarashi, Ryo Kikuchi, and Koji Chida, “Efficient decision tree training with new data structure for secure multi-party computation,” arXiv:2112.12906 [cs.CR], 2021.)
なお、行ごとまたは列ごとにGroup-wise sum演算を適用することで、行列に対してもGroup-wise sum演算を定義することができる。
<第1実施形態>
以下、図1~図3を参照して秘密属性選択システム10について説明する。図1は、秘密属性選択システム10の構成を示すブロック図である。秘密属性選択システム10は、W個(Wは3以上の所定の整数)の秘密属性選択装置1001、…、100Wを含む。秘密属性選択装置1001、…、100Wは、ネットワーク800に接続しており、相互に通信可能である。ネットワーク800は、例えば、インターネットなどの通信網あるいは同報通信路などでよい。図2は、秘密属性選択装置100i(1≦i≦W)の構成を示すブロック図である。図3は、秘密属性選択システム10の動作を示すフローチャートである。
(参考非特許文献5:Koki Hamada, Dai Ikarashi, Ryo Kikuchi, and Koji Chida, “Efficient decision tree training with new data structure for secure multi-party computation,” arXiv:2112.12906 [cs.CR], 2021.)
なお、行ごとまたは列ごとにGroup-wise sum演算を適用することで、行列に対してもGroup-wise sum演算を定義することができる。
<第1実施形態>
以下、図1~図3を参照して秘密属性選択システム10について説明する。図1は、秘密属性選択システム10の構成を示すブロック図である。秘密属性選択システム10は、W個(Wは3以上の所定の整数)の秘密属性選択装置1001、…、100Wを含む。秘密属性選択装置1001、…、100Wは、ネットワーク800に接続しており、相互に通信可能である。ネットワーク800は、例えば、インターネットなどの通信網あるいは同報通信路などでよい。図2は、秘密属性選択装置100i(1≦i≦W)の構成を示すブロック図である。図3は、秘密属性選択システム10の動作を示すフローチャートである。
図2に示すように秘密属性選択装置100iは、第1行列計算部110iと、第2行列計算部120iと、第3行列計算部130iと、第1ベクトル計算部140iと、記録部190iを含む。記録部190iを除く秘密属性選択装置100iの各構成部は、秘密計算で必要とされる演算、つまり、少なくとも秘匿化、加算、減算、乗算、除算、論理演算、比較演算秘密安定ソート、Group-wise sum演算のうち、各構成部の機能を実現するうえで必要になる演算を実行できるように構成されている。本発明において個々の演算を実現するための具体的な機能構成は、例えば、非特許文献1、参考非特許文献1~5のそれぞれで開示されるアルゴリズムを含む既存のアルゴリズムを実行できるような構成で十分であり、これらは従来的構成であるから詳細な説明については省略する。また、記録部190iは、秘密属性選択装置100iの処理に必要な情報を記録する構成部である。
W個の秘密属性選択装置100iによる協調計算によって、秘密属性選択システム10はマルチパーティプロトコルである属性選択の秘密計算を実現する。よって、秘密属性選択システム10の第1行列計算手段110(図示していない)は第1行列計算部1101、…、110Wで構成され、第2行列計算手段120(図示していない)は第2行列計算部1201、…、120Wで構成され、第3行列計算手段130(図示していない)は第3行列計算部1301、…、130Wで構成され、第1ベクトル計算手段140(図示していない)は第1ベクトル計算部1401、…、140Wで構成される。
秘密属性選択システム10は、N(Nは1以上の整数)をデータの数、M(Mは1以上の整数)をデータを構成する属性の数、X=(→x1, …, →xN)t(ただし、→xi(i=1, …, N)はi番目のデータを表す長さMの行ベクトルであり、N個のデータ→x1, …, →xNは所定の数のグループにグループ分けされ、同じグループに属するデータが隣接するように並んでいる)をN個のデータ→x1, …, →xNを表すN行M列の行列、→g=(g1, …, gN)t(ただし、gi(i=1, …, N)はi番目のデータ→xiがあるグループの先頭のデータである場合には1、それ以外の場合には0である)をN個のデータ→x1, …, →xNをグループ分けしたグループを表す長さNの列ベクトルとし、N個のデータ→x1, …, →xNを表す行列Xのシェア[[X]]とN個のデータ→x1, …, →xNをグループ分けしたグループを表す列ベクトル→gのシェア[[→g]]から、i番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性(Kは1以上M以下の整数)のうち評価値が最良となる属性の番号をi番目の要素ziとする長さNの列ベクトル→z=(z1, …, zN)tのシェア[[→z]]を計算する。なお、シェア[[X]]やシェア[[→g]]は予め記録部190iに記録しておいてもよい。また、例えば(→x1, …, →xN)tのtのように、ベクトルや行列の右肩についたtは転置を表す。
以下、図3に従い秘密属性選択システム10の動作について説明する。
S110において、第1行列計算手段110は、シェア[[→g]]を用いて、N行M列の行列E=(→e1, …, →eN)t(ただし、→ei(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性を表す長さMの行ベクトルであり、行ベクトル→eiのj番目の要素ei,jはj番目の属性が選択された属性である場合には1、それ以外の場合には0である)のシェア[[E]]を計算する。第1行列計算手段110は、例えば、N行M列の行列D=(→d1, …, →dN)t(ただし、→di(i=1, …, N)はM個の要素のうちランダムに選択されたK個の要素が1、それ以外のM-K個の要素が0である長さMの行ベクトルである)のシェア[[D]]を生成し、シェア[[→g]]を用いて、シェア[[D]]からN行M列の行列D’=(→d’1, …, →d’N)t(ただし、→d’i(i=1, …, N)はgi=1である場合には→di、gi=0である場合には→0(ただし、→0はすべての要素が0である長さMの行ベクトル)である)のシェア[[D’]]を計算し、シェア[[→g]]を用いて、シェア[[D’]]からシェア[[E]]を計算する。シェア[[D’]]からシェア[[E]]を計算する際、例えば、Group-wise sum演算を用いることができる。
なお、→ei(i=1, …, N)は、M個の要素のうちK個の要素が1、それ以外のM-K個の要素が0である行ベクトルとなる。また、i番目のデータ→xiとj番目のデータ→xjが同じグループに属する場合は、→ei=→ejとなる。
S120において、第2行列計算手段120は、V=(→v1, …, →vN)t(ただし、→vi(i=1, …, N)はi番目のデータ→xiの属性の番号を属性の番号順に並べた長さMの行ベクトル(1, 2, …, M)である)をN行M列の行列とし、S110で計算したシェア[[E]]を用いて、シェア[[X]]からN行K列の行列Y=(→y1, …, →yN)t(ただし、→yi(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性に対するi番目のデータ→xiの値を属性の番号順に並べた長さKの行ベクトルである)のシェア[[Y]]を、シェア[[V]]からN行K列の行列U=(→u1, …, →uN)t(ただし、→ui(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性の番号を属性の番号順に並べた長さKの行ベクトルである)のシェア[[U]]をそれぞれ計算する。第2行列計算手段120は、例えば、シェア[[→ei]]に関してシェア[[→xi]]を秘密安定ソートすることにより得られるベクトルのM-K+1番目からM番目までの要素を順に並べた長さKの行ベクトルをシェア[[→yi]] (i=1, …, N)とすることにより、シェア[[Y]]を計算し、シェア[[→ei]]に関してシェア[[→vi]]を秘密安定ソートすることにより得られるベクトルのM-K+1番目からM番目までの要素を順に並べた長さKの行ベクトルをシェア[[→ui]](i=1, …, N)とすることにより、シェア[[U]]を計算する。秘密安定ソートには、例えば、参考非特許文献4に記載の方法を用いることができる。なお、シェア[[→ei]] (i=1, …, N)を秘密安定ソートすることにより得られるベクトルは、1番目からM-K番目までの要素が[[0]]、M-K+1番目からM番目までの要素が[[1]]となるベクトルである。
S130において、第3行列計算手段130は、S120で計算したシェア[[Y]]からN行K列の行列S=(→s1, …, →sN)t(ただし、→si(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性に対する当該グループの評価値を属性の番号順に並べた長さKの行ベクトルである)のシェア[[S]]を計算する。シェア[[S]]の計算には、例えば、参考非特許文献5に記載のAttribute-wise test selectionアルゴリズムを用いることができる。
S140において、第1ベクトル計算手段140は、S120で計算したシェア[[Y]]とシェア[[U]]を用いて、S130で計算したシェア[[S]]からシェア[[→z]]を計算する。第1ベクトル計算手段140は、例えば、シェア[[→si]]から長さKの行ベクトル→hi(ただし、→hiは→siの要素の中で評価値が最良となる要素は1、それ以外の要素は0である行ベクトルである)のシェア[[→hi]]を計算し、シェア[[→ui]]とシェア[[→hi]]から→uiと→hiの内積→ui*→hiのシェア[[→ui*→hi]]を計算し、[[zi]]=[[→ui*→hi]] (i=1, …, N)とすることにより、シェア[[→z]]を計算する。
秘密属性選択システム10は、例えば、ランダムフォレストに基づく機械学習に用いることができる。
本発明の実施形態によれば、所定の数のグループにグループ分けされた、M個の属性で構成されるN個のデータに対して、グループごとにランダムに選択されたK個の属性の中から評価値が最良となる属性の選択を効率的に秘密計算することが可能となる。具体的には、[背景技術]で説明した方法ではM個の属性すべてについて評価値を計算する必要があったのに対し、本発明の実施形態によれば、K個の属性について評価値を計算するだけで十分になるため、評価値の計算回数を減らすことが可能となる。
<補記>
上述した各装置の各部の処理をコンピュータにより実現してもよく、この場合は各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムを図4に示すコンピュータ2000の記録部2020に読み込ませ、演算処理部2010、入力部2030、出力部2040、補助記録部2025などを動作させることにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
<補記>
上述した各装置の各部の処理をコンピュータにより実現してもよく、この場合は各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムを図4に示すコンピュータ2000の記録部2020に読み込ませ、演算処理部2010、入力部2030、出力部2040、補助記録部2025などを動作させることにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
本発明の装置は、例えば単一のハードウェアエンティティとして、ハードウェアエンティティの外部から信号を入力可能な入力部、ハードウェアエンティティの外部に信号を出力可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、演算処理部であるCPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD-ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。
ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行、処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成部)を実現する。つまり、本発明の実施形態の各構成部は、処理回路(Processing Circuitry)により構成されてもよい。
既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体は、例えば、非一時的な記録媒体であり、具体的には、磁気記録装置、光ディスク等である。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の非一時的な記憶装置である補助記録部2025に格納する。そして、処理の実行時、このコンピュータは、自己の非一時的な記憶装置である補助記録部2025に格納されたプログラムを記録部2020に読み込み、読み込んだプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを記録部2020に読み込み、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
Claims (7)
- N(Nは1以上の整数)をデータの数、M(Mは1以上の整数)をデータを構成する属性の数、X=(→x1, …, →xN)t(ただし、→xi(i=1, …, N)はi番目のデータを表す長さMの行ベクトルであり、N個のデータ→x1, …, →xNは所定の数のグループにグループ分けされ、同じグループに属するデータが隣接するように並んでいる)をN個のデータ→x1, …, →xNを表すN行M列の行列、→g=(g1, …, gN)t(ただし、gi(i=1, …, N)はi番目のデータ→xiがあるグループの先頭のデータである場合には1、それ以外の場合には0である)をN個のデータ→x1, …, →xNをグループ分けしたグループを表す長さNの列ベクトルとし、
3個以上の秘密属性選択装置で構成され、N個のデータ→x1, …, →xNを表す行列Xのシェア[[X]]とN個のデータ→x1, …, →xNをグループ分けしたグループを表す列ベクトル→gのシェア[[→g]]から、i番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性(Kは1以上M以下の整数)のうち評価値が最良となる属性の番号をi番目の要素ziとする長さNの列ベクトル→z=(z1, …, zN)tのシェア[[→z]]を計算する秘密属性選択システムであって、
シェア[[→g]]を用いて、N行M列の行列E=(→e1, …, →eN)t(ただし、→ei(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性を表す長さMの行ベクトルであり、行ベクトル→eiのj番目の要素ei,jはj番目の属性が選択された属性である場合には1、それ以外の場合には0である)のシェア[[E]]を計算する第1行列計算手段と、
V=(→v1, …, →vN)t(ただし、→vi(i=1, …, N)はi番目のデータ→xiの属性の番号を属性の番号順に並べた長さMの行ベクトル(1, 2, …, M)である)をN行M列の行列とし、
シェア[[E]]を用いて、シェア[[X]]からN行K列の行列Y=(→y1, …, →yN)t(ただし、→yi(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性に対するi番目のデータ→xiの値を属性の番号順に並べた長さKの行ベクトルである)のシェア[[Y]]を、シェア[[V]]からN行K列の行列U=(→u1, …, →uN)t(ただし、→ui(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性の番号を属性の番号順に並べた長さKの行ベクトルである)のシェア[[U]]をそれぞれ計算する第2行列計算手段と、
シェア[[Y]]からN行K列の行列S=(→s1, …, →sN)t(ただし、→si(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性に対する当該グループの評価値を属性の番号順に並べた長さKの行ベクトルである)のシェア[[S]]を計算する第3行列計算手段と、
シェア[[Y]]とシェア[[U]]を用いて、シェア[[S]]からシェア[[→z]]を計算する第1ベクトル計算手段と、
を含む秘密属性選択システム。 - 請求項1に記載の秘密属性選択システムであって、
前記第1行列計算手段は、
N行M列の行列D=(→d1, …, →dN)t(ただし、→di(i=1, …, N)はM個の要素のうちランダムに選択されたK個の要素が1、それ以外のM-K個の要素が0である長さMの行ベクトルである)のシェア[[D]]を生成し、
シェア[[→g]]を用いて、シェア[[D]]からN行M列の行列D’=(→d’1, …, →d’N)t(ただし、→d’i(i=1, …, N)はgi=1である場合には→di、gi=0である場合には→0(ただし、→0はすべての要素が0である長さMの行ベクトル)である)のシェア[[D’]]を計算し、
シェア[[→g]]を用いて、シェア[[D’]]からシェア[[E]]を計算する
ことを特徴とする秘密属性選択システム。 - 請求項1に記載の秘密属性選択システムであって、
前記第2行列計算手段は、
シェア[[→ei]]に関してシェア[[→xi]]を秘密安定ソートすることにより得られるベクトルのM-K+1番目からM番目までの要素を順に並べた長さKの行ベクトルをシェア[[→yi]] (i=1, …, N)とすることにより、シェア[[Y]]を計算し、
シェア[[→ei]]に関してシェア[[→vi]]を秘密安定ソートすることにより得られるベクトルのM-K+1番目からM番目までの要素を順に並べた長さKの行ベクトルをシェア[[→ui]](i=1, …, N)とすることにより、シェア[[U]]を計算する
ことを特徴とする秘密属性選択システム。 - 請求項1に記載の秘密属性選択システムであって、
前記第1ベクトル計算手段は、
シェア[[→si]]から長さKの行ベクトル→hi(ただし、→hiは→siの要素の中で評価値が最良となる要素は1、それ以外の要素は0である行ベクトルである)のシェア[[→hi]]を計算し、シェア[[→ui]]とシェア[[→hi]]から→uiと→hiの内積→ui*→hiのシェア[[→ui*→hi]]を計算し、[[zi]]=[[→ui*→hi]] (i=1, …, N)とすることにより、シェア[[→z]]を計算する
ことを特徴とする秘密属性選択システム。 - N(Nは1以上の整数)をデータの数、M(Mは1以上の整数)をデータを構成する属性の数、X=(→x1, …, →xN)t(ただし、→xi(i=1, …, N)はi番目のデータを表す長さMの行ベクトルであり、N個のデータ→x1, …, →xNは所定の数のグループにグループ分けされ、同じグループに属するデータが隣接するように並んでいる)をN個のデータ→x1, …, →xNを表すN行M列の行列、→g=(g1, …, gN)t(ただし、gi(i=1, …, N)はi番目のデータ→xiがあるグループの先頭のデータである場合には1、それ以外の場合には0である)をN個のデータ→x1, …, →xNをグループ分けしたグループを表す長さNの列ベクトルとし、
N個のデータ→x1, …, →xNを表す行列Xのシェア[[X]]とN個のデータ→x1, …, →xNをグループ分けしたグループを表す列ベクトル→gのシェア[[→g]]から、i番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性(Kは1以上M以下の整数)のうち評価値が最良となる属性の番号をi番目の要素ziとする長さNの列ベクトル→z=(z1, …, zN)tのシェア[[→z]]を計算する、3個以上の秘密属性選択装置で構成される秘密属性選択システムの中の秘密属性選択装置であって、
シェア[[→g]]を用いて、N行M列の行列E=(→e1, …, →eN)t(ただし、→ei(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性を表す長さMの行ベクトルであり、行ベクトル→eiのj番目の要素ei,jはj番目の属性が選択された属性である場合には1、それ以外の場合には0である)のシェア[[E]]を計算する第1行列計算部と、
V=(→v1, …, →vN)t(ただし、→vi(i=1, …, N)はi番目のデータ→xiの属性の番号を属性の番号順に並べた長さMの行ベクトル(1, 2, …, M)である)をN行M列の行列とし、
シェア[[E]]を用いて、シェア[[X]]からN行K列の行列Y=(→y1, …, →yN)t(ただし、→yi(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性に対するi番目のデータ→xiの値を属性の番号順に並べた長さKの行ベクトルである)のシェア[[Y]]を、シェア[[V]]からN行K列の行列U=(→u1, …, →uN)t(ただし、→ui(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性の番号を属性の番号順に並べた長さKの行ベクトルである)のシェア[[U]]をそれぞれ計算する第2行列計算部と、
シェア[[Y]]からN行K列の行列S=(→s1, …, →sN)t(ただし、→si(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性に対する当該グループの評価値を属性の番号順に並べた長さKの行ベクトルである)のシェア[[S]]を計算する第3行列計算部と、
シェア[[Y]]とシェア[[U]]を用いて、シェア[[S]]からシェア[[→z]]を計算する第1ベクトル計算部と、
を含む秘密属性選択装置。 - N(Nは1以上の整数)をデータの数、M(Mは1以上の整数)をデータを構成する属性の数、X=(→x1, …, →xN)t(ただし、→xi(i=1, …, N)はi番目のデータを表す長さMの行ベクトルであり、N個のデータ→x1, …, →xNは所定の数のグループにグループ分けされ、同じグループに属するデータが隣接するように並んでいる)をN個のデータ→x1, …, →xNを表すN行M列の行列、→g=(g1, …, gN)t(ただし、gi(i=1, …, N)はi番目のデータ→xiがあるグループの先頭のデータである場合には1、それ以外の場合には0である)をN個のデータ→x1, …, →xNをグループ分けしたグループを表す長さNの列ベクトルとし、
3個以上の秘密属性選択装置で構成される秘密属性選択システムが、N個のデータ→x1, …, →xNを表す行列Xのシェア[[X]]とN個のデータ→x1, …, →xNをグループ分けしたグループを表す列ベクトル→gのシェア[[→g]]から、i番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性(Kは1以上M以下の整数)のうち評価値が最良となる属性の番号をi番目の要素ziとする長さNの列ベクトル→z=(z1, …, zN)tのシェア[[→z]]を計算する秘密属性選択方法であって、
前記秘密属性選択システムが、シェア[[→g]]を用いて、N行M列の行列E=(→e1, …, →eN)t(ただし、→ei(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性を表す長さMの行ベクトルであり、行ベクトル→eiのj番目の要素ei,jはj番目の属性が選択された属性である場合には1、それ以外の場合には0である)のシェア[[E]]を計算する第1行列計算ステップと、
V=(→v1, …, →vN)t(ただし、→vi(i=1, …, N)はi番目のデータ→xiの属性の番号を属性の番号順に並べた長さMの行ベクトル(1, 2, …, M)である)をN行M列の行列とし、
前記秘密属性選択システムが、シェア[[E]]を用いて、シェア[[X]]からN行K列の行列Y=(→y1, …, →yN)t(ただし、→yi(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性に対するi番目のデータ→xiの値を属性の番号順に並べた長さKの行ベクトルである)のシェア[[Y]]を、シェア[[V]]からN行K列の行列U=(→u1, …, →uN)t(ただし、→ui(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性の番号を属性の番号順に並べた長さKの行ベクトルである)のシェア[[U]]をそれぞれ計算する第2行列計算ステップと、
前記秘密属性選択システムが、シェア[[Y]]からN行K列の行列S=(→s1, …, →sN)t(ただし、→si(i=1, …, N)はi番目のデータ→xiが属するグループにおいてランダムに選択されたK個の属性に対する当該グループの評価値を属性の番号順に並べた長さKの行ベクトルである)のシェア[[S]]を計算する第3行列計算ステップと、
前記秘密属性選択システムが、シェア[[Y]]とシェア[[U]]を用いて、シェア[[S]]からシェア[[→z]]を計算する第1ベクトル計算ステップと、
を含む秘密属性選択方法。 - 請求項5に記載の秘密属性選択装置としてコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2022/021238 WO2023228273A1 (ja) | 2022-05-24 | 2022-05-24 | 秘密属性選択システム、秘密属性選択装置、秘密属性選択方法、プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2022/021238 WO2023228273A1 (ja) | 2022-05-24 | 2022-05-24 | 秘密属性選択システム、秘密属性選択装置、秘密属性選択方法、プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023228273A1 true WO2023228273A1 (ja) | 2023-11-30 |
Family
ID=88918846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2022/021238 WO2023228273A1 (ja) | 2022-05-24 | 2022-05-24 | 秘密属性選択システム、秘密属性選択装置、秘密属性選択方法、プログラム |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2023228273A1 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022079911A1 (ja) * | 2020-10-16 | 2022-04-21 | 日本電信電話株式会社 | 秘密決定木テスト装置、秘密決定木テストシステム、秘密決定木テスト方法、及びプログラム |
-
2022
- 2022-05-24 WO PCT/JP2022/021238 patent/WO2023228273A1/ja unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022079911A1 (ja) * | 2020-10-16 | 2022-04-21 | 日本電信電話株式会社 | 秘密決定木テスト装置、秘密決定木テストシステム、秘密決定木テスト方法、及びプログラム |
Non-Patent Citations (1)
Title |
---|
HAMADA, KOKI: "Improvement of decision tree learning algorithm using secure computation", PROCEEDINGS OF COMPUTER SECURITY SYMPOSIUM 2021; OCTOBER 26-29, 2021, INFORMATION PROCESSING SOCIETY OF JAPAN (IPSJ), JAPAN, vol. 2021, 19 October 2021 (2021-10-19) - 29 October 2021 (2021-10-29), Japan, pages 930 - 937, XP009551089 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6973632B2 (ja) | 秘密集約総和システム、秘密計算装置、秘密集約総和方法、およびプログラム | |
JP6989006B2 (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 | |
JP6973633B2 (ja) | 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム | |
JP6605746B2 (ja) | 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム | |
JPWO2019087317A1 (ja) | 秘密計算装置、システム、方法、プログラム | |
WO2021124520A1 (ja) | 秘密乱数生成システム、秘密計算装置、秘密乱数生成方法、およびプログラム | |
JP2020519968A (ja) | ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム | |
JPWO2019208486A1 (ja) | 秘密集約中央値システム、秘密計算装置、秘密集約中央値方法、およびプログラム | |
WO2023228273A1 (ja) | 秘密属性選択システム、秘密属性選択装置、秘密属性選択方法、プログラム | |
WO2019221108A1 (ja) | 秘密クロス集計システム、秘密計算装置、秘密クロス集計方法、およびプログラム | |
EP3246900B1 (en) | Matrix and key generation device, matrix and key generation system, matrix coupling device, matrix and key generation method, and program | |
Marcelín-Jiménez et al. | On the complexity and performance of the information dispersal algorithm | |
WO2023233569A1 (ja) | 秘密検索システム、秘密検索装置、秘密検索方法、プログラム | |
WO2024013974A1 (ja) | 秘密交差結合システム、秘密交差結合装置、秘密交差結合方法、プログラム | |
WO2024018504A1 (ja) | クライアント装置、秘密テーブル管理システム、レコード登録要求生成方法、レコード登録方法、処理要求実行方法、プログラム | |
WO2023188261A1 (ja) | 秘密グローバルモデル計算装置、ローカルモデル登録方法、プログラム | |
WO2023281694A1 (ja) | 秘密計算システム、装置、方法及びプログラム | |
WO2023281693A1 (ja) | 秘密計算システム、装置、方法及びプログラム | |
JP7533784B2 (ja) | 秘密計算装置、秘密計算システム、秘密計算方法、およびプログラム | |
WO2022259366A1 (ja) | 秘密計算装置、秘密計算システム、秘密計算方法、およびプログラム | |
WO2023135636A1 (ja) | 秘密クラスタ計算システム、秘密クラスタ計算装置、秘密クラスタ計算方法、プログラム | |
WO2023243141A1 (ja) | 連合学習システム及び連合学習方法 | |
WO2023135635A1 (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: 22943678 Country of ref document: EP Kind code of ref document: A1 |