WO2023233622A1 - 秘密計算装置、秘密計算方法、プログラム - Google Patents

秘密計算装置、秘密計算方法、プログラム Download PDF

Info

Publication number
WO2023233622A1
WO2023233622A1 PCT/JP2022/022486 JP2022022486W WO2023233622A1 WO 2023233622 A1 WO2023233622 A1 WO 2023233622A1 JP 2022022486 W JP2022022486 W JP 2022022486W WO 2023233622 A1 WO2023233622 A1 WO 2023233622A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
flag
missing
data
string
Prior art date
Application number
PCT/JP2022/022486
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 PCT/JP2022/022486 priority Critical patent/WO2023233622A1/ja
Publication of WO2023233622A1 publication Critical patent/WO2023233622A1/ja

Links

Images

Classifications

    • 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

Definitions

  • the present invention relates to a secure computing device, a secure computing method, and a program for calculating a representative value of data excluding missing values while keeping input data including missing values secret.
  • Non-Patent Document 1 There is a method called secure calculation as a method of obtaining a specific calculation result without restoring the encrypted numerical value (for example, see Non-Patent Document 1 and Non-Patent Document 2).
  • encryption is performed by distributing numerical fragments to three secure computing devices, and the three secure computing devices perform cooperative calculations to perform additions and subtractions without restoring the numerical values.
  • constant addition, multiplication, constant multiplication, logical operations (negation, AND, logical OR, exclusive OR), and data format conversion (integer, binary) are distributed among three secret computing devices, i.e. It can be kept encrypted.
  • Non-Patent Document 2 specifically shows functions that can be executed by secure calculation. In recent years, proposals have been made to perform machine learning on secure computation.
  • Non-Patent Document 3 it is common to use the mean, median, or mode of data excluding missing values.
  • the secure computing device of the present invention is a secure computing device that performs calculations while keeping input data including encrypted value strings including missing values secret, and includes a flag string generating section and a true data number calculating section.
  • the flag string generation unit generates a flag string, which is a flag string that is a value obtained by encrypting 0 when the corresponding value is a missing value, and a value obtained by encrypting 1 when the corresponding value is not a missing value. generate.
  • the true data number calculation unit calculates the number of true data excluding missing values by summing the values of the flags in the flag string.
  • data transformation is realized for data including missing values in order to calculate a representative value while keeping the number and location of missing values secret.
  • FIG. 2 is a block diagram illustrating secret sharing processing by a plurality of secure computing devices connected to a network.
  • 1 is a block diagram showing the functional configuration of a secure computing device according to a first embodiment
  • FIG. 2 is a flowchart showing the operation of the secure computing device of the first embodiment.
  • FIG. 3 is a block diagram showing the functional configuration of an average value calculation section of Example 1.
  • FIG. 5 is a flowchart showing the operation of the average value calculation section of the first embodiment.
  • FIG. 7 is a diagram illustrating an example of data processed by the correction value sequence generation unit of the average value calculation unit of the first embodiment.
  • FIG. 2 is a block diagram showing the functional configuration of a median calculation unit according to the first embodiment.
  • FIG. 5 is a flowchart showing the operation of the median calculation unit of the first embodiment.
  • FIG. 3 is a diagram illustrating an example of data processed by the missing value overwriting unit of the median calculation unit of the first embodiment.
  • FIG. 3 is a diagram illustrating an example of data processed by the ascending value sorting unit and the index flag string generation unit of the median calculation unit of the first embodiment.
  • 6 is a diagram illustrating an example of data processed by an odd flag string generation section and an even flag string generation section of the median calculation section of the first embodiment.
  • FIG. FIG. 3 is a block diagram showing the functional configuration of a mode calculation unit of the first embodiment.
  • 5 is a flowchart showing the operation of the mode calculation unit of the first embodiment.
  • FIG. 3 is a diagram illustrating an example of data processed by the missing value overwriting unit, ascending value sorting unit, and boundary flag string generation unit of the mode calculation unit of the first embodiment.
  • FIG. 3 is a diagram illustrating an example of data processed by a value vector generation unit, a frequency vector generation unit, and a mode output unit of the mode calculation unit of the first embodiment.
  • FIG. 1 is a diagram showing an example of a functional configuration of a computer.
  • the data handled by the secure computing device of the present invention needs to be encrypted by some method and computed while being encrypted, it is not necessarily necessary to encrypt it by secret sharing. .
  • the secure calculation device 1 which is a device that performs calculations while keeping input data including missing values and encrypted value strings secret, will be explained.
  • the secure computing device 1 of this embodiment includes a flag string generation section 11, a true data number calculation section 12, an average value calculation section 13, a median value calculation section 14, and a mode value calculation section. Contains 15. The operation of each component will be described below with reference to FIG.
  • the flag string generation unit 11 generates a flag that is a value obtained by encrypting 0 when the corresponding value is a missing value (NA), and a value obtained by encrypting 1 when the corresponding value is not a missing value (NA).
  • flag column which is a column of is generated (S11).
  • the method proposed in Reference Patent Document 1 can be used to check for missing values.
  • the average value calculation unit 13 calculates the average value of the value string based on the value string, the flag string, and the true number m of data (S13). Details will be described later.
  • the median calculation unit 14 calculates the median value of the value string based on the value string, the flag string, and the true number m of data (S14). Details will be described later.
  • the mode calculation unit 15 calculates the mode of the value string using an aggregation sum calculation based on the value string, the flag string, and the true number m of data (S15). Details will be described later.
  • an aggregate function is an operation that obtains statistical values that are grouped based on the value of the key attribute when a table has a key attribute and a value attribute. This is an operation for summing up the total sum of desired value attributes for each group when grouping is performed based on the value of a key attribute.
  • the method proposed in Reference Patent Document 2 can be used.
  • Reference Patent Document 2 Patent No. 6973632
  • the secret aggregation summation system of Reference Patent Document 2 is: - A vector of value attributes when sorted based on the value of a key attribute - When grouped based on the value of a key attribute, the last element of each group is true, other Input a vector in which the flag, number of groups, and key attribute values whose elements are false are elements without duplication, ⁇ Output a vector representing the sum of value attributes for each group.
  • the average value calculation unit 13 of this embodiment includes a correction value sequence generation unit 131 and an average value calculation unit 132. The operation of each component will be described below with reference to FIG.
  • FIG. 6 shows an example of the operation of the correction value sequence generation unit 131. Referring to the table before processing on the left of the figure and the table after processing on the right of the figure, it can be seen that NA has been converted to 0.
  • the average value calculation unit 132 divides the total sum of correction values by the true number of data, that is, is calculated to calculate the average value (mean) of the input data (S132).
  • the median calculation unit 14 of this embodiment includes a missing value overwriting unit 141, an ascending value sorting unit 142, an index flag string generation unit 143, a median index calculation unit 144, and an odd flag string. It includes a generation section 145, an even flag sequence generation section 146, and a median calculation section 147. The operation of each component will be described below with reference to FIG.
  • the missing value overwriting unit 141 performs descending sorting on data that is a pair (v i , f i ) of each value of v and f that are associated by index, based on f.
  • the sorting process including stable sorting
  • the sorting described in Reference Non-Patent Document 1 can be used.
  • the missing value overwriting unit 141 overwrites the missing value with a value larger than the maximum value of the value in the true data (S141).
  • the table on the right side of FIG. 9 shows the state after the overwriting process by the missing value overwriting unit 141.
  • step S141 is a process performed to correctly perform ascending sorting, which is the process that follows, so although it is necessary to replace the missing value with a value larger than the maximum value of the true data, it is not always necessary. There is no need to replace NA with a value where all bits are 1 (0b1...1). However, as mentioned above, all values in the value column are encrypted, so in order to reliably convert NA to a large value without knowing the values in the value column, convert NA to a value where all bits are 1. (0b1...1) is considered to be the simplest method.
  • the value ascending order sorting unit 142 sorts the data consisting of the value column v' and the flag column in ascending order based on the value v' (S142). Let the sorting result be expressed as v''.
  • the table on the left side of FIG. 10 shows the state before the ascending sorting process by the value ascending sorting unit 142, and the table in the center of the figure shows the state after the ascending sorting process by the value ascending sorting unit 142.
  • the table on the right side of FIG. 10 shows the state after the flag string generation process by the index flag string generation unit 143.
  • the median index calculation unit 144 sets the true number of data to m, and calculates the value obtained by truncating the decimal point of (m-1)/2 as the median index I med , that is, is calculated (S144). Note that the parentheses shown in the above formula mean an operation that truncates the decimal part.
  • ⁇ Even number flag string generation unit 146>> If the value of the index flag and the value obtained by adding 1 to the median index are not equal (I med +1 ⁇ j i ,1 ⁇ i ⁇ n), the even flag string generation unit 146 generates an encrypted value of 0. If the value of the index flag and the value of the median index plus 1 are equal (I med +1 j i ,1 ⁇ i ⁇ n), then the value is the encrypted value 1, and the value of the odd flag is An even flag sequence f even is a sequence of even flags whose corresponding value is 1 when the value is 1, that is, is generated (S146). Note that or indicates a process of performing a general logical sum. The table in FIG. 11 shows the state after the generation of odd flag columns and even flag columns.
  • the median calculation unit 147 calculates the sum of the products of the value v'' and the odd flag f odd as the median value when the true number m of data is an odd number, and calculates the sum of the products of the value v'' and the odd flag f odd as the median value, and calculates the value v' when the true number m of data is an even number. ' and the even flag f even divided by 2, i.e. is calculated as the median (S147).
  • the mode calculation unit 15 of this embodiment includes a missing value overwriting unit 151, a value ascending sorting unit 152, a boundary flag string generation unit 153, a group number calculation unit 154, and a value vector generation unit 152. 155, a frequency vector calculation section 156, and a mode output section 157.
  • the missing value overwriting unit 151 overwrites the missing value with a value larger than the maximum value of the true data (S151).
  • the table on the left side of FIG. 14 shows the state after the missing value overwriting process by the missing value overwriting unit 151.
  • the value ascending order sorting unit 152 sorts the data (v i , f i ) consisting of a value column and a flag column in ascending order based on the value v (S152). Let the sorted results be v' and f', respectively.
  • the table in the center of FIG. 14 shows the state after the ascending order sorting process by the value ascending order sorting unit 152.
  • the value corresponding to is the encrypted value of 0, and if the value of a given value and the value of the next value are not equal (v i ' ⁇ v i+1 ', 1 ⁇ i ⁇ n-1) , the value corresponding to the predetermined value v i ' is the encrypted value of 1, and the value corresponding to the value v n ' located in the bottom row of the value column is the encrypted value of 1.
  • Boundary flag The boundary flag column is a column of , i.e. is generated (S153).
  • the table on the right side of FIG. 14 shows the state after the flag string generation process by the boundary flag string generation unit 153. Through this process, it is possible to derive a boundary flag e such that the index of the last element of each value included in the key attribute v' is 1.
  • the value vector k is a vector whose elements are the values of key attributes without duplication.
  • the second table from the left in FIG. 15 shows an example of a value vector generated by the value vector generation unit 155.
  • the third table from the left in FIG. 15 shows an example of the frequency vector generated by the frequency vector calculation unit 156.
  • the rightmost table in FIG. 15 shows the state after the descending sorting process by the mode value output unit 157.
  • the representative value of values other than missing values can be calculated by secure computing for data including missing values while keeping the number of missing values and the index with missing values secret. I can do it.
  • the device of the present invention includes, as a single hardware entity, an input section to which a keyboard or the like can be connected, an output section to which a liquid crystal display or the like can be connected, and a communication device (for example, a communication cable) capable of communicating with the outside of the hardware entity.
  • a communication unit that can be connected to a CPU (Central Processing Unit, which may include cache memory, registers, etc.), RAM and ROM that are memories, external storage devices that are hard disks, and their input units, output units, and communication units. , CPU, RAM, ROM, and an external storage device.
  • 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 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 necessary for processing each program are read into memory as necessary, and are interpreted and executed and processed by the CPU as appropriate.
  • the CPU realizes predetermined functions (each of the constituent elements expressed as . . . units, . . . means, etc.).
  • 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 may be of any type, such as a magnetic recording device, an optical disk, a magneto-optical recording medium, or a semiconductor memory.
  • magnetic recording devices include hard disk drives, flexible disks, magnetic tapes, etc.
  • optical disks include DVDs (Digital Versatile Discs), DVD-RAMs (Random Access Memory), and CD-ROMs (Compact Discs Read Only). Memory), CD-R (Recordable)/RW (ReWritable), etc. as magneto-optical recording media, MO (Magneto-Optical disc), etc. as semiconductor memory, EEP-ROM (Electrically Erasable and Programmable-Read Only Memory), etc. can be used.
  • 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 in its own storage device. When executing a process, this computer reads a program stored in its own recording medium and executes a process according to the read program. In addition, as another form of execution of this program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and furthermore, the program may be transferred to this computer from the server computer. The process may be executed in accordance with the received program each time.
  • ASP Application Service Provider
  • the above-mentioned processing is executed by a so-called ASP (Application Service Provider) 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 hardware entity 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

欠損値を含み暗号化されたバリュー列を含む入力データを秘匿したまま計算する秘密計算装置であって、対応するバリューが欠損値である場合に0を暗号化した値であり、対応するバリューが欠損値でない場合に1を暗号化した値であるフラグの列であるフラグ列を生成するフラグ列生成部と、フラグ列のフラグの値を総和して欠損値を除く真のデータの数を計算する真データ数計算部を含む。

Description

秘密計算装置、秘密計算方法、プログラム
 本発明は、欠損値が含まれる入力データを秘匿したまま、欠損値を除くデータの代表値を計算する秘密計算装置、秘密計算方法、プログラムに関する。
 暗号化された数値を復元することなく特定の演算結果を得る方法として、秘密計算と呼ばれる方法がある(例えば、非特許文献1、非特許文献2参照)。非特許文献1に記載された方法では、3つの秘密計算装置に数値の断片を分散させるという暗号化を行い、3つの秘密計算装置が協調計算を行うことにより、数値を復元することなく、加減算、定数加算、乗算、定数倍、論理演算(否定、論理積、論理和、排他的論理和)、データ形式変換(整数、二進数)の結果を3つの秘密計算装置に分散された状態、すなわち暗号化したまま保持することができる。また非特許文献2では秘密計算で実行可能な関数が具体的に示されている。近年は、秘密計算上で機械学習を行う提案もなされている。
千田浩司,濱田浩気,五十嵐大,高橋克巳,"軽量検証可能3パーティ秘匿関数計算の再考",In CSS,2010. 桐淵直人,五十嵐大,濱田浩気,菊池亮,"プログラマブルな秘密計算ライブラリMEVAL3",In SCIS,2018 the pandas development team、"pandas.DataFrame.fillna"、[online]、[令和 4年 5月 27日検索]、インターネット〈 URL:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.fillna.html〉
 データにはしばしば欠損が存在する。例えば、アンケート調査において、回答者が回答をしなかったり、またデータがセンサーによって取得されるときに何らかの理由でセンサーがデータを取得できなかったりした場合などに該当のデータは欠損となる。こういったデータの欠損は欠損値と呼ばれる。欠損値以外に欠測値、空値、NA(Not Available)などと表現される場合もある。データに欠損値が含まれる場合、多くの機械学習モデルは当該データを学習データとして扱うことができない。このような場合、欠損値をそのデータを表す代表値に置換する処理が一般的によく行われる(非特許文献3)。代表値として、欠損値を除いたデータの平均値や中央値、最頻値を使うことが一般的である。
 しかし、秘密計算において欠損値が含まれるデータの代表値を算出する方法は自明ではないため、従来技術を秘密計算上の機械学習に適用して、欠損値を補完することはできない。
 そこで本発明では、欠損値が含まれるデータについて、欠損値の件数や場所を秘匿したまま代表値を算出するためのデータ変形を実現する秘密計算装置を提供することを目的とする。
 本発明の秘密計算装置は、欠損値を含み暗号化されたバリュー列を含む入力データを秘匿したまま計算する秘密計算装置であって、フラグ列生成部と、真データ数計算部を含む。
 フラグ列生成部は、対応するバリューが欠損値である場合に0を暗号化した値であり、対応するバリューが欠損値でない場合に1を暗号化した値であるフラグの列であるフラグ列を生成する。真データ数計算部は、フラグ列のフラグの値を総和して欠損値を除く真のデータの数を計算する。
 本発明の秘密計算装置によれば、欠損値が含まれるデータについて、欠損値の件数や場所を秘匿したまま代表値を算出するためのデータ変形を実現する。
ネットワークに接続された複数の秘密計算装置による秘密分散処理を説明するブロック図。 実施例1の秘密計算装置の機能構成を示すブロック図。 実施例1の秘密計算装置の動作を示すフローチャート。 実施例1の平均値演算部の機能構成を示すブロック図。 実施例1の平均値演算部の動作を示すフローチャート。 実施例1の平均値演算部の補正バリュー列生成部により処理されるデータの例を示す図。 実施例1の中央値演算部の機能構成を示すブロック図。 実施例1の中央値演算部の動作を示すフローチャート。 実施例1の中央値演算部の欠損値上書き部により処理されるデータの例を示す図。 実施例1の中央値演算部のバリュー昇順ソート部、インデックスフラグ列生成部により処理されるデータの例を示す図。 実施例1の中央値演算部の奇数フラグ列生成部、偶数フラグ列生成部により処理されるデータの例を示す図。 実施例1の最頻値演算部の機能構成を示すブロック図。 実施例1の最頻値演算部の動作を示すフローチャート。 実施例1の最頻値演算部の欠損値上書き部、バリュー昇順ソート部、境界フラグ列生成部により処理されるデータの例を示す図。 実施例1の最頻値演算部のバリューベクトル生成部、頻度ベクトル生成部、最頻値出力部により処理されるデータの例を示す図。 コンピュータの機能構成例を示す図。
 以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
 図1を参照して、ネットワーク9に接続された実施例1の複数の秘密計算装置1-1,…1-p,…1-P(Pは2以上の整数、p=1,…,P)による秘密分散処理を説明する。同図に示すように本実施例の秘密計算装置1-1,…1-p,…1-Pは、相互に通信可能にネットワーク9に接続されている。P台の秘密計算装置1-1,…1-p,…1-Pは何れも同じ機能を有しており、総称する場合には秘密計算装置1と呼称する。秘密計算装置1が取り扱うデータは、同図に示す構成により、秘密分散により暗号化されており、暗号化されたまま計算されるものとする。
 なお、本発明の秘密計算装置が取り扱うデータは、何らかの方法で暗号化され、暗号化されたまま計算されることが必要であるものの、必ずしも秘密分散により暗号化されることが必要というわけではない。
 図2を参照して、欠損値を含み暗号化されたバリュー列を含む入力データを秘匿したまま計算する装置である秘密計算装置1の機能構成を説明する。同図に示すように本実施例の秘密計算装置1は、フラグ列生成部11と、真データ数計算部12と、平均値演算部13と、中央値演算部14と、最頻値演算部15を含む。以下、図3を参照して、各構成要件の動作を説明する。
<フラグ列生成部11>
 欠損値を含み暗号化されたバリュー列をn≧2個の値からなるv = v1, ..., vnとし、任意のバリューの値をインデックスiを使ってviと表記する。vについて、欠損値を検査した結果をフラグ列f = f1, ..., fnで表記し、また欠損値をNAで表記することとする。
 フラグ列生成部11は、対応するバリューが欠損値(NA)である場合に0を暗号化した値であり、対応するバリューが欠損値(NA)でない場合に1を暗号化した値であるフラグの列であるフラグ列
Figure JPOXMLDOC01-appb-M000001

を生成する(S11)。ここで欠損値の検査は参考特許文献1で提案されている方法を用いることができる。
(参考特許文献1:特許第5957126号公報)
<真データ数計算部12>
真データ数計算部12は、フラグ列のフラグの値を総和(Σn i=1 fi)して欠損値を除く真のデータの数mを計算する(S12)。従って、真データ数計算部12は、m = Σn i=1 fiにより、真のデータの数mを計算する。
<平均値演算部13>
 平均値演算部13は、バリュー列とフラグ列と真のデータ数mに基づいて、バリュー列の平均値を演算する(S13)。詳細については後述する。
<中央値演算部14>
 中央値演算部14は、バリュー列とフラグ列と真のデータ数mに基づいて、バリュー列の中央値を演算する(S14)。詳細については後述する。
<最頻値演算部15>
 最頻値演算部15は、バリュー列とフラグ列と真のデータ数mに基づいて、集約総和演算を用いてバリュー列の最頻値を演算する(S15)。詳細については後述する。
 なお、集約関数は、テーブルにキー属性とバリュー属性があるときに、キー属性の値に基づいてグループ分けした統計値を得る演算であり、集約総和は、集約関数の一つであり、テーブルをキー属性の値に基づいてグループ分けしたときに、グループごとに所望のバリュー属性の総和を集計する演算である。集約総和演算は例えば参考特許文献2で提案されている方法を用いることができる。
(参考特許文献2:特許6973632号公報)
 参考特許文献2の秘密集約総和システムは
・キー属性の値に基づいてソートしたときのバリュー属性のベクトル
・キー属性の値に基づいてグループ分けしたときに各グループの最後の要素が真、その他の要素が偽であるフラグ
・グループ数
・キー属性の値が重複なく要素になっているベクトル
を入力とし、
・グループごとのバリュー属性の総和を表すベクトル
を出力する。
<平均値演算部13の詳細な機能構成>
 以下、図4を参照して、平均値演算部13の詳細な機能構成を説明する。同図に示すように本実施例の平均値演算部13は、補正バリュー列生成部131と、平均値計算部132を含む。以下、図5を参照して、各構成要件の動作を説明する。
≪補正バリュー列生成部131≫
 補正バリュー列生成部131は、バリューと対応するフラグの積、すなわちv' = v×fを補正バリューとし、補正バリュー列v'を生成する(S131)。なお、欠損値(NA)と0との乗算結果は0になるものとする。よって、補正バリュー列v'は欠損値以外の値についてはバリュー列vにおける値と変わらず、欠損値は0に変換される。補正バリュー列生成部131の動作例を図6に示す。同図左の処理前のテーブル、同図右の処理後のテーブルを参照すると、NAが0に変換されていることが分かる。
≪平均値計算部132≫
 平均値計算部132は、補正バリューの総和を真のデータ数で除算、すなわち、
Figure JPOXMLDOC01-appb-M000002

を計算して、入力データの平均値(mean)を計算する(S132)。
<中央値演算部14の詳細な機能構成>
 以下、図7を参照して、中央値演算部14の詳細な機能構成を説明する。同図に示すように本実施例の中央値演算部14は、欠損値上書き部141と、バリュー昇順ソート部142と、インデックスフラグ列生成部143と、中央値インデックス計算部144と、奇数フラグ列生成部145と、偶数フラグ列生成部146と、中央値計算部147を含む。以下、図8を参照して、各構成要件の動作を説明する。
≪欠損値上書き部141≫
 欠損値上書き部141は、インデックスで対応付けられるvとfの各値の組(vi, fi)であるデータに対し、fに基づいて降順ソートを行う。ソート処理(安定ソートを含む)は、例えば、参考非特許文献1に記載されたソートを用いることができる。
(参考非特許文献1:五十嵐大,濱田浩気,菊池亮,千田浩司,“超高速秘密計算ソートの設計と実装:秘密計算がスクリプト言語に並ぶ日”,CSS2017)
 ソート後のvとfをv'とf'と表記する。これにより、欠損値は後方に移動する。図9の左のテーブルに欠損値上書き部141によるソート処理前の状態、同図の中央のテーブルに欠損値上書き部141によるソート処理後の状態を示す。なお、このソート処理は必須ではなく、適宜省略することができる。
 次に、欠損値上書き部141は、欠損値を真のデータにおけるバリューの最大値より大きな値に上書きする(S141)。図9の右のテーブルに欠損値上書き部141による上書き処理後の状態を示す。
 例えば欠損値上書き部141は欠損値を、その処理系で表現できる最大値で上書きすればよい。値が符号なし整数型で保存されているのであれば最大値は、すべてのビットが1である値(0b1...1)になる。これは1≦i≦nについて、fi' = 0のとき、vi'を最大の値で上書きする処理である。
 なお、ステップS141は、この後の処理である昇順ソートを正しく行うために行われる処理であるため、欠損値を真のデータにおけるバリューの最大値より大きな値に置き換えることは必要であるものの、必ずしもNAをすべてのビットが1である値(0b1...1)に置き換える必要はない。ただ前述したようにバリュー列の値は全て暗号化されているため、バリュー列の値を知らない状態でNAを大きな値に確実に変換するためには、NAをすべてのビットが1である値(0b1...1)に上書きするのが最も簡易な方法であると考えられる。
≪バリュー昇順ソート部142≫
 バリュー昇順ソート部142は、バリューv'に基づき、バリュー列v'とフラグ列からなるデータを昇順にソートする(S142)。ソート結果をv''と表記するものとする。図10の左のテーブルにバリュー昇順ソート部142による昇順ソート処理前の状態、同図の中央のテーブルにバリュー昇順ソート部142による昇順ソート処理後の状態を示す。
≪インデックスフラグ列生成部143≫
 インデックスフラグ列生成部143は、データの最初の行に対応する値は0(j1 = 0)を暗号化した値であり、それ以外の行に対応する値は1つ前の行に対応する値に1を加えた値(j2 = 1, j3 = 2, ... ,jn = n-1)を暗号化した値であるインデックスフラグの列であるインデックスフラグ列jを生成する(S143)。図10の右のテーブルにインデックスフラグ列生成部143によるフラグ列生成処理後の状態を示す。
≪中央値インデックス計算部144≫
 中央値インデックス計算部144は、真のデータ数をmとし、(m-1)/2の小数点を切り捨てた値を中央値インデックスImed,すなわち、
Figure JPOXMLDOC01-appb-M000003

を計算する(S144)。なお、上式に示した括弧は小数部分を切り捨てる演算を意味する。
≪奇数フラグ列生成部145≫
 奇数フラグ列生成部145は、インデックスフラグの値と中央値インデックスの値が等しくない場合(Imed≠ji,1≦i≦n)に値0を暗号化した値であり、インデックスフラグの値と中央値インデックスの値が等しい場合(Imed = ji, 1≦i≦n)に値1を暗号化した値である奇数フラグの列である奇数フラグ列fodd,すなわち、
Figure JPOXMLDOC01-appb-M000004

を生成する(S145)。
≪偶数フラグ列生成部146≫
 偶数フラグ列生成部146は、インデックスフラグの値と中央値インデックスに1を足した値が等しくない場合(Imed+1≠ji,1≦i≦n)に値0を暗号化した値であり、インデックスフラグの値と中央値インデックスに1を足した値が等しい場合(Imed+1 = ji,1≦i≦n)に値1を暗号化した値であり、奇数フラグの値が1となる場合に対応する値が1である偶数フラグの列である偶数フラグ列feven,すなわち、
Figure JPOXMLDOC01-appb-M000005

を生成する(S146)。なお、orは一般的な論理和を行う処理を示す。図11のテーブルに奇数フラグ列、偶数フラグ列生成後の状態を示す。
≪中央値計算部147≫
 中央値計算部147は、真のデータ数mが奇数の場合にバリューv''と奇数フラグfoddの積の総和を中央値として計算し、真のデータ数mが偶数の場合にバリューv''と偶数フラグfevenの積の総和を2で除算した値、すなわち
Figure JPOXMLDOC01-appb-M000006

を中央値(median)として計算する(S147)。
<最頻値演算部15の詳細な機能構成>
 以下、図12を参照して、最頻値演算部15の詳細な機能構成を説明する。同図に示すように本実施例の最頻値演算部15は、欠損値上書き部151と、バリュー昇順ソート部152と、境界フラグ列生成部153と、グループ数計算部154と、バリューベクトル生成部155と、頻度ベクトル計算部156と、最頻値出力部157を含む。
 以下、図13を参照して、各構成要件の動作を説明する。
≪欠損値上書き部151≫
 欠損値上書き部151は、欠損値を真のデータにおけるバリューの最大値より大きな値に上書きする(S151)。図14の左のテーブルに欠損値上書き部151による欠損値上書き処理後の状態を示す。
≪バリュー昇順ソート部152≫
 バリュー昇順ソート部152は、バリューvに基づき、バリュー列とフラグ列からなるデータ(vi, fi)を昇順にソートする(S152)。ソートした結果をそれぞれv', f'とする。
 図14の中央のテーブルにバリュー昇順ソート部152による昇順ソート処理後の状態を示す。
≪境界フラグ列生成部153≫
 境界フラグ列生成部153は、所定のバリューの値とその次のバリューの値が等しい場合(vi'=vi+1', 1≦i≦n-1)に、所定のバリューvi'に対応する値は0を暗号化した値であり、所定のバリューの値とその次のバリューの値が等しくない場合(vi'≠vi+1', 1≦i≦n-1)に、所定のバリューvi'に対応する値は1を暗号化した値であり、バリュー列の最も下の行に位置するバリューvn'に対応する値は1を暗号化した値である境界フラグの列である境界フラグ列、すなわち、
Figure JPOXMLDOC01-appb-M000007

を生成する(S153)。図14の右のテーブルに境界フラグ列生成部153によるフラグ列生成処理後の状態を示す。この処理によりキー属性v'に含まれる各値の最後の要素のインデックスが1となる境界フラグeを導出することができる。
≪グループ数計算部154≫
 グループ数計算部154は、境界フラグ列の総和をグループ数gとして、グループ数g = Σn i=1 eiを計算する(S154)。
≪バリューベクトル生成部155≫
 バリューベクトル生成部155は、境界フラグの値1に対応するバリューの値をそれぞれ要素に持つバリューベクトルk、すなわち、1≦i≦n, 1≦j≦gについて先頭からei = 1のときkj = vi'として、バリューベクトルkを生成する(S155)。バリューベクトルkは、キー属性の値が重複なく要素になっているベクトルである。図15の左から2番目のテーブルにバリューベクトル生成部155により生成されたバリューベクトルの例を示す。
≪頻度ベクトル計算部156≫
 頻度ベクトル計算部156は、境界フラグの値1に基づいて区切られる各グループ内のフラグの値(バリュー属性)の総和である頻度ベクトルs = s1, ... ,sgを計算する(S156)。図15の左から3番目のテーブルに頻度ベクトル計算部156により生成された頻度ベクトルの例を示す。
≪最頻値出力部157≫
 最頻値出力部157は、バリューベクトルkと頻度ベクトルsの各要素の組からなるデータ(ki, si)を、頻度ベクトルsをキーとして降順ソートし、先頭のバリューベクトルの要素を最頻値(mode = k1')として出力する(S157)。図15の最も右のテーブルに最頻値出力部157による降順ソート処理後の状態を示す。
<実施例1の秘密計算装置1の効果>
 実施例1の秘密計算装置1によれば、秘密計算によって、欠損値が含まれるデータに対し欠損値の件数や欠損値があるインデックスを秘匿したまま欠損値以外の値の代表値を算出することができる。
<補記>
 本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD-ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
 ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。
 ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成要件)を実現する。
 本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
 既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
 上述の各種の処理は、図16に示すコンピュータ10000の記録部10020に、上記方法の各ステップを実行させるプログラムを読み込ませ、制御部10010、入力部10030、出力部10040などに動作させることで実施できる。
 この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD-RAM(Random Access Memory)、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP-ROM(Electrically Erasable and Programmable-Read Only Memory)等を用いることができる。
 また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
 このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
 また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (6)

  1.  欠損値を含み暗号化されたバリュー列を含む入力データを秘匿したまま計算する秘密計算装置であって、
     対応するバリューが欠損値である場合に0を暗号化した値であり、対応するバリューが欠損値でない場合に1を暗号化した値であるフラグの列であるフラグ列を生成するフラグ列生成部と、
     前記フラグ列のフラグの値を総和して欠損値を除く真のデータの数を計算する真データ数計算部を含む
     秘密計算装置。
  2.  請求項1に記載の秘密計算装置であって、
     前記バリューと対応するフラグの積を補正バリューとし、補正バリュー列を生成する補正バリュー列生成部と、
     前記補正バリューの総和を前記真のデータ数で除算して、前記入力データの平均値を計算する平均値計算部を含む
     秘密計算装置。
  3.  請求項1に記載の秘密計算装置であって、
     前記欠損値を前記真のデータにおけるバリューの最大値より大きな値に上書きする欠損値上書き部と、
     前記バリューに基づき、前記バリュー列と前記フラグ列からなるデータを昇順にソートするバリュー昇順ソート部と、
     前記データの最初の行に対応する値は0を暗号化した値であり、それ以外の行に対応する値は1つ前の行に対応する値に1を加えた値を暗号化した値であるインデックスフラグの列であるインデックスフラグ列を生成するインデックスフラグ列生成部と、
     前記真のデータ数をmとし、(m-1)/2の小数点を切り捨てた値を中央値インデックスとして計算する中央値インデックス計算部と、
     前記インデックスフラグの値と前記中央値インデックスの値が等しくない場合に値0を暗号化した値であり、前記インデックスフラグの値と前記中央値インデックスの値が等しい場合に値1を暗号化した値である奇数フラグの列である奇数フラグ列を生成する奇数フラグ列生成部と、
     前記インデックスフラグの値と前記中央値インデックスに1を足した値が等しくない場合に値0を暗号化した値であり、前記インデックスフラグの値と前記中央値インデックスに1を足した値が等しい場合に値1を暗号化した値であり、前記奇数フラグの値が1となる場合に対応する値が1である偶数フラグの列である偶数フラグ列を生成する偶数フラグ列生成部と、
     前記真のデータ数が奇数の場合に前記バリューと前記奇数フラグの積の総和を中央値として計算し、前記真のデータ数が偶数の場合に前記バリューと前記偶数フラグの積の総和を2で除算した値を中央値として計算する中央値計算部を含む
     秘密計算装置。
  4.  請求項1に記載の秘密計算装置であって、
     前記欠損値を前記真のデータにおけるバリューの最大値より大きな値に上書きする欠損値上書き部と、
     前記バリューに基づき、前記バリュー列と前記フラグ列からなるデータを昇順にソートするバリュー昇順ソート部と、
     所定のバリューの値とその次のバリューの値が等しい場合に、所定のバリューに対応する値は0を暗号化した値であり、所定のバリューの値とその次のバリューの値が等しくない場合に、所定のバリューに対応する値は1を暗号化した値であり、前記バリュー列の最も下の行に位置するバリューに対応する値は1を暗号化した値である境界フラグの列である境界フラグ列を生成する境界フラグ列生成部と、
     前記境界フラグの値1に対応するバリューの値をそれぞれ要素に持つバリューベクトルを生成するバリューベクトル生成部と、
     前記境界フラグの値1に基づいて区切られる各グループ内の前記フラグの値の総和である頻度ベクトルを計算する頻度ベクトル計算部と、
     前記バリューベクトルと前記頻度ベクトルの各要素の組からなるデータを、前記頻度ベクトルをキーとして降順ソートし、先頭のバリューベクトルの要素を最頻値として出力する最頻値出力部を含む
     秘密計算装置。
  5.  欠損値を含み暗号化されたバリュー列を含む入力データを秘匿したまま計算する秘密計算装置が実行する秘密計算方法であって、
     対応するバリューが欠損値である場合に0を暗号化した値であり、対応するバリューが欠損値でない場合に1を暗号化した値であるフラグの列であるフラグ列を生成するフラグ列生成部と、
     前記フラグ列のフラグの値を総和して欠損値を除く真のデータの数を計算する真データ数計算部を含む
     秘密計算方法。
  6.  コンピュータを請求項1から4の何れかに記載の秘密計算装置として機能させるプログラム。
PCT/JP2022/022486 2022-06-02 2022-06-02 秘密計算装置、秘密計算方法、プログラム WO2023233622A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/022486 WO2023233622A1 (ja) 2022-06-02 2022-06-02 秘密計算装置、秘密計算方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/022486 WO2023233622A1 (ja) 2022-06-02 2022-06-02 秘密計算装置、秘密計算方法、プログラム

Publications (1)

Publication Number Publication Date
WO2023233622A1 true WO2023233622A1 (ja) 2023-12-07

Family

ID=89026182

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/022486 WO2023233622A1 (ja) 2022-06-02 2022-06-02 秘密計算装置、秘密計算方法、プログラム

Country Status (1)

Country Link
WO (1) WO2023233622A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013196609A (ja) * 2012-03-22 2013-09-30 Toshiba Corp データ分析支援装置およびデータ分析支援処理プログラム
JP5957126B1 (ja) * 2015-06-24 2016-07-27 日本電信電話株式会社 秘密計算装置、秘密計算方法、およびプログラム
WO2019039383A1 (ja) * 2017-08-22 2019-02-28 日本電信電話株式会社 シェア生成装置、復元装置、秘密計算システム、シェア生成方法、復元方法、プログラム、および記録媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013196609A (ja) * 2012-03-22 2013-09-30 Toshiba Corp データ分析支援装置およびデータ分析支援処理プログラム
JP5957126B1 (ja) * 2015-06-24 2016-07-27 日本電信電話株式会社 秘密計算装置、秘密計算方法、およびプログラム
WO2019039383A1 (ja) * 2017-08-22 2019-02-28 日本電信電話株式会社 シェア生成装置、復元装置、秘密計算システム、シェア生成方法、復元方法、プログラム、および記録媒体

Similar Documents

Publication Publication Date Title
US10296709B2 (en) Privacy-preserving genomic prediction
JP5957126B1 (ja) 秘密計算装置、秘密計算方法、およびプログラム
US20210241166A1 (en) Method and system for adaptively reducing feature bit-size for homomorphically encrypted data sets used to train machine learning models
JP6989006B2 (ja) 秘密集約関数計算システム、秘密計算装置、秘密集約関数計算方法、およびプログラム
JP6766182B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、プログラム
WO2020071187A1 (ja) 秘密シグモイド関数計算システム、秘密ロジスティック回帰計算システム、秘密シグモイド関数計算装置、秘密ロジスティック回帰計算装置、秘密シグモイド関数計算方法、秘密ロジスティック回帰計算方法、プログラム
JPWO2018135563A1 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、プログラム
JP7226562B2 (ja) 秘密ソフトマックス関数計算システム、秘密ソフトマックス関数計算装置、秘密ソフトマックス関数計算方法、秘密ニューラルネットワーク計算システム、秘密ニューラルネットワーク学習システム、プログラム
JP2023512338A (ja) コンテキスト駆動型データプロファイリング
JP6605746B2 (ja) 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム
JP7327510B2 (ja) 秘密乱数生成システム、秘密計算装置、秘密乱数生成方法、およびプログラム
WO2023233622A1 (ja) 秘密計算装置、秘密計算方法、プログラム
WO2018008547A1 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
Lapworth Parallel encryption of input and output data for HPC applications
Kamphorst et al. Accurate training of the Cox proportional hazards model on vertically-partitioned data while preserving privacy
JP7205623B2 (ja) 秘密共役勾配法計算システム、秘密計算装置、共役勾配法計算装置、秘密共役勾配法計算方法、共役勾配法計算方法、およびプログラム
JP5411715B2 (ja) 疑似データ生成装置、疑似データ生成方法、プログラム及び記録媒体
JP7243846B2 (ja) 秘密生存時間データ処理システム、秘密生存時間データ処理装置、秘密生存時間データ処理方法、プログラム
JP7290169B2 (ja) 識別推定リスク評価装置、識別推定リスク評価方法、プログラム
WO2023135635A1 (ja) 秘密乱数計算システム、秘密乱数計算装置、秘密乱数計算方法、秘密クラスタ計算システム、秘密クラスタ計算装置、秘密クラスタ計算方法、プログラム
WO2023157117A1 (ja) 秘密計算装置、秘密計算方法、プログラム
WO2023233516A1 (ja) 秘密計算装置、秘密計算方法、プログラム
JP7173328B2 (ja) 秘密除算システム、秘密計算装置、秘密除算方法、およびプログラム
WO2024018504A1 (ja) クライアント装置、秘密テーブル管理システム、レコード登録要求生成方法、レコード登録方法、処理要求実行方法、プログラム
EP3933634B1 (en) Anonymity evaluation device, anonymity evaluation method, and program

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: 22944903

Country of ref document: EP

Kind code of ref document: A1