JP5480828B2 - Secret sort system, secret sort device, secret sort method, secret sort program - Google Patents

Secret sort system, secret sort device, secret sort method, secret sort program Download PDF

Info

Publication number
JP5480828B2
JP5480828B2 JP2011011753A JP2011011753A JP5480828B2 JP 5480828 B2 JP5480828 B2 JP 5480828B2 JP 2011011753 A JP2011011753 A JP 2011011753A JP 2011011753 A JP2011011753 A JP 2011011753A JP 5480828 B2 JP5480828 B2 JP 5480828B2
Authority
JP
Japan
Prior art keywords
matrix
secret
sort
column vector
calculation
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.)
Active
Application number
JP2011011753A
Other languages
Japanese (ja)
Other versions
JP2012154990A (en
Inventor
浩気 濱田
浩司 千田
大 五十嵐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2011011753A priority Critical patent/JP5480828B2/en
Publication of JP2012154990A publication Critical patent/JP2012154990A/en
Application granted granted Critical
Publication of JP5480828B2 publication Critical patent/JP5480828B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、暗号応用技術に関するものであり、特に入力データを明かすことなく関数計算を行う秘密ソートシステム、秘密ソート装置、秘密ソート方法、秘密ソートプログラムに関する。   The present invention relates to a cryptographic application technique, and more particularly to a secret sort system, a secret sort device, a secret sort method, and a secret sort program that perform function calculation without revealing input data.

暗号化された数値を復元すること無く特定の演算結果を得る方法として、例えば非特許文献1の秘密計算と呼ばれる方法がある。非特許文献1の方法では、3つの秘密計算装置に数値の断片を分散させるという暗号化を行い、数値を復元すること無く、加減算、定数和、乗算、定数倍、論理演算(否定,論理積,論理和,排他的論理和)、データ形式変換(整数,二進数)の結果を3つの秘密計算装置に分散された状態、すなわち暗号化されたまま保持させることができる。非特許文献2では、ソートの前後の値の対応を誰にも知られないように計算することを特徴とし、暗号化された複数のデータに対し、平文から計算される値でソートを行った結果の暗号文を計算する秘密ソート方法が提案されている。非特許文献2では、クイックソートなどの任意の比較ソートを、比較回数を増やすことなく秘密計算上で実現している。   As a method of obtaining a specific calculation result without restoring the encrypted numerical value, for example, there is a method called secret calculation in Non-Patent Document 1. In the method of Non-Patent Document 1, encryption is performed such that numerical fragments are distributed to three secret computing devices, and addition / subtraction, constant sum, multiplication, constant multiplication, logical operation (negative, logical product) are performed without restoring the numerical values. , Logical sum, exclusive logical sum), and data format conversion (integer, binary number) can be held in a state of being distributed to the three secret computing devices, that is, encrypted. Non-Patent Document 2 is characterized in that the correspondence between values before and after sorting is calculated so that no one knows, and a plurality of encrypted data are sorted by values calculated from plaintext. A secret sorting method for calculating the resulting ciphertext has been proposed. In Non-Patent Document 2, an arbitrary comparison sort such as a quick sort is realized on a secret calculation without increasing the number of comparisons.

千田浩司, 濱田浩気, 五十嵐大, 高橋克巳, “軽量検証可能3パーティ秘匿関数計算の再考”, In CSS, 2010.Koji Senda, Hiroki Hamada, Igarashi Univ., Katsumi Takahashi, “Reconsideration of Lightweight Verifiable 3-Party Secret Function Calculation”, In CSS, 2010. 濱田浩気, 五十嵐大, 千田浩司, 高橋克巳, “3パーティ秘匿関数計算上のランダム置換プロトコル”, In CSS, 2010.Hiroki Hirota, Dai Igarashi, Koji Senda, Katsumi Takahashi, “Random replacement protocol for computing three-party secret functions”, In CSS, 2010.

しかしながら、従来技術は暗号化されたままデータ同士の比較を行った結果に応じて振る舞いが決まるアルゴリズムであり、比較に基づくソーティングアルゴリズムにしか適用できない。このため、入力データの個数をnとすると、計算時間をO(n log n)よりもよくすることはできないという課題がある。本発明は、比較に基づかないソーティングアルゴリズムを秘密計算上で実現することを目的とする。   However, the prior art is an algorithm whose behavior is determined according to the result of comparing data while being encrypted, and can be applied only to a sorting algorithm based on the comparison. For this reason, when the number of input data is n, there is a problem that the calculation time cannot be made better than O (n log n). An object of the present invention is to realize a sorting algorithm that is not based on comparison on a secret calculation.

本発明の秘密ソートシステムは、3個以上の秘密ソート装置で構成され、M個のレコードからなる表Xの各要素が秘密分散された表[X]から、表Xのレコードを並び替えた表に対応する秘密分散された表を求める。ここで、Mは2以上の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、cは異なるM個の値を並べたものでレコード間をランダム置換してもソート後に何番目になるかを一意に決定できる情報とする。例えば、cは1からMの異なる値がソート後の順番にしたがって並んだM個の要素を有する情報としてもよい。   The secret sort system of the present invention is composed of three or more secret sort devices, and is a table in which the records of Table X are rearranged from Table [X] in which each element of Table X consisting of M records is secretly distributed. Find the secret-distributed table corresponding to. Here, M is an integer of 2 or more, [] is a symbol indicating information in which information in parentheses is secretly distributed for each element, and c is a sequence of different M values. It is information that can uniquely determine the number after sorting. For example, c may be information having M elements in which different values from 1 to M are arranged according to the order after sorting.

本発明の秘密ソートシステムは、少なくともランダム置換手段、復号手段、ソート手段を備える。ランダム置換手段は、情報[c]と表[X]が入力され、情報[c]のM個の要素と表[X]のM個のレコードとの対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された情報[c]と表[X]を求める。復号手段は、情報[c]を復号し、情報cを求める。ソート手段は、情報cが示す順番に表[X]の各レコードを並べなおし、表[X]を求める。 The secret sort system of the present invention includes at least random replacement means, decryption means, and sort means. The random replacement means receives the information [c] and the table [X], and maintains the correspondence between the M elements of the information [c] and the M records of the table [X]. Random substitution is performed, and information [c R ] and a table [X R ] after random substitution are obtained. The decoding means decodes information [c R ] to obtain information c R. The sorting means rearranges the records in the table [X R ] in the order indicated by the information c R to obtain the table [X S ].

本発明の秘密ソートシステムによれば、並び替え後の位置の値は正しいままレコード間のランダム置換を行うことができる。その一方で、先にレコード間のランダム置換を行うことでランダム置換前後の対応がわからなくなるため、ランダム置換によってレコードの追跡ができなくなる。したがって、情報を漏らすことなく、並び替え後の位置を復号することができる。よって、その後は復号したソート後の順番に各レコードを移動させるだけでよい。つまり、比較に基づかないソーティングアルゴリズムを秘密計算上で実現できる。   According to the secret sort system of the present invention, it is possible to perform random replacement between records while the rearranged position values are correct. On the other hand, since the correspondence before and after random replacement is not known by performing random replacement between records first, it becomes impossible to track records by random replacement. Therefore, the rearranged position can be decoded without leaking information. Therefore, after that, it is only necessary to move the records in the order after the sorted sort. That is, a sorting algorithm that is not based on comparison can be realized on the secret calculation.

本発明の秘密ソートシステムの機能構成例を示す図。The figure which shows the function structural example of the secret sort system of this invention. 本発明の秘密ソートシステムの処理フローを示す図。The figure which shows the processing flow of the secret sort system of this invention. 変形例1の秘密ソートシステムの処理フローを示す図。The figure which shows the processing flow of the secret sort system of the modification 1. 変形例2と変形例3の秘密ソートシステムの処理フローを示す図。The figure which shows the processing flow of the secret sort system of the modification 2 and the modification 3. 本発明の秘密ソートシステムに利用できる秘密分散装置100の機能構成例を示す図。It shows an exemplary functional configuration of a secret sharing apparatus 100 n available for private sorting system of the present invention. ランダム置換の1つ目の処理フロー例を示す図。The figure which shows the example of the 1st process flow of random substitution. ランダム置換の2つ目の処理フロー例を示す図。The figure which shows the 2nd processing flow example of random substitution.

以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。   Hereinafter, embodiments of the present invention will be described in detail. In addition, the same number is attached | subjected to the structure part which has the same function, and duplication description is abbreviate | omitted.

図1に実施例1の秘密ソートシステムの機能構成例を示す。図2に実施例1の秘密ソートシステムの処理フローを示す。実施例1の秘密ソートシステムは、少なくともネットワーク1000で接続されたN個の秘密ソート装置10,…,10で構成され、M個のレコードからなる表Xの各要素が秘密分散された表[X]から、表Xのレコードを並び替えた表に対応する秘密分散された表を求める。なお、Mは2以上の整数、Nは3以上の整数、mは1以上M以下の整数、nは1以上N以下の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、上付きのTは転置を示す記号、cは異なるM個の値を並べたもので、レコード間をランダム置換してもソート後に何番目になるかを一意に決定できる情報とする。例えば、cは1からMの異なる値がソート後の順番にしたがって並んだM個の要素を有する情報としてもよい。 FIG. 1 shows a functional configuration example of the secret sort system according to the first embodiment. FIG. 2 shows a processing flow of the secret sort system according to the first embodiment. The secret sort system according to the first embodiment is composed of at least N secret sort apparatuses 10 1 ,..., 10 N connected by a network 1000, and each element of the table X composed of M records is secretly distributed. From [X], a secret-distributed table corresponding to the table in which the records of Table X are rearranged is obtained. M is an integer greater than or equal to 2, N is an integer greater than or equal to 3, m is an integer greater than or equal to 1 and less than or equal to M, n is an integer greater than or equal to 1 and less than or equal to N, and [] is information in which information in parentheses is secretly distributed element by element , Superscript T is a transposition symbol, c is a sequence of different M values, and information that can uniquely determine the number after sorting even if random replacement between records is performed. . For example, c may be information having M elements in which different values from 1 to M are arranged according to the order after sorting.

秘密ソート装置10は、ソート制御部300、秘密分散装置100、記録部190を備える。秘密分散装置100は、ソート制御部300の指示にしたがって実施例1の処理に必要な個々の秘密計算を行う。本発明の処理に必要な個々の秘密計算としては、秘密分散、復号、限定シャッフルなどがある。ただし、本発明は、これらの秘密計算を利用して効率よくソートを行うものであり、秘密計算自体に特徴がある発明ではない。そこで、秘密計算については、例を後述することとし、本発明のポイントを理解しやすくするためにここでの説明は省略する。なお、後述する秘密計算の方法は、1つの例であり、実施例1が利用できる秘密計算を限定するものではない。記録部190は、秘密ソート装置10の処理に必要な情報を記録する構成部である。図1に示した選択手段105は後述する秘密計算では利用するが、利用する秘密計算によっては備えなくてもよい。 The secret sort device 10 n includes a sort control unit 300 n , a secret sharing device 100 n , and a recording unit 190 n . The secret sharing apparatus 100 n performs individual secret calculations necessary for the processing of the first embodiment in accordance with instructions from the sort control unit 300 n . Individual secret calculations required for the processing of the present invention include secret sharing, decryption, and limited shuffle. However, the present invention efficiently sorts using these secret calculations, and is not an invention characterized by the secret calculation itself. Therefore, an example of the secret calculation will be described later, and a description thereof will be omitted to facilitate understanding of the points of the present invention. Note that the secret calculation method to be described later is one example, and does not limit the secret calculation that can be used in the first embodiment. The recording unit 190 n is a component that records information necessary for processing of the secret sort device 10 n . The selection means 105 shown in FIG. 1 is used in the secret calculation described later, but may not be provided depending on the secret calculation to be used.

実施例1では、ソート後の順番が秘密分散された状態で与えられた後の処理を説明する。つまり、上述の情報cが秘密分散された状態(情報[c])で与えられ、情報[c]に示された順番にレコードを並び替える。例えば、c=(4,2,5,1,3)の場合、1番目のレコードは4番目に移動し、2番目のレコードは2番目のまま、3番目のレコードは5番目に移動し、4番目のレコードは1番目に移動し、5番目のレコードは3番目に移動することを示している。 In the first embodiment, processing after the order after sorting is given in a secret-distributed state will be described. That is, the information c described above is given in a secret-distributed state (information [c]), and the records are rearranged in the order indicated by the information [c]. For example, if c = (4, 2, 5, 1, 3) T , the first record moves to the fourth, the second record moves to the second, and the third record moves to the fifth. The fourth record moves to the first, and the fifth record moves to the third.

各秘密ソート装置10のソート制御部300は、ランダム置換部310、復号部320、ソート部330を備える。そして、秘密ソートシステムのランダム置換手段310(図示していない)はランダム置換部310,…,310で構成され、復号手段320(図示していない)は復号部320,…,320で構成され、ソート手段330(図示していない)はソート部330,…,330で構成される。 The sort control unit 300 n of each secret sort device 10 n includes a random replacement unit 310 n , a decryption unit 320 n , and a sort unit 330 n . The random permutation unit 310 (not shown) is random permutation unit 310 1 of the secret sorting systems, ..., is composed of 310 N, the decoding unit 320 (not shown) decoding unit 320 1, ..., 320 N The sorting means 330 (not shown) is composed of sorting units 330 1 ,..., 330 N.

ランダム置換手段310は、情報[c]のM個の要素と表[X]のM個のレコードとの対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された情報[c]と表[X]を求める(S310)。具体的には、ランダム置換部310,…,310(ランダム置換手段310)が、秘密分散された情報[c]と秘密分散された表[X]に対して同一の全単射によるランダム置換を秘密分散装置100,…,100に実行させる。 The random replacement means 310 randomly replaces records by secret calculation while maintaining the correspondence between the M elements of the information [c] and the M records of the table [X], and randomly replaces the information [c R ] And table [X R ] are obtained (S310). Specifically, the random replacement units 310 1 ,..., 310 N (random replacement means 310) are randomized by the same bijection to the secret-distributed information [c] and the secret-distributed table [X]. The replacement is executed by the secret sharing apparatus 100 1 ,..., 100 N.

復号手段320は、情報[c]を復号し、情報cを求める(S320)。より具体的には、復号部320,…,320(復号手段320)が、秘密分散された情報[c]の復号を秘密分散装置100,…,100に実行させ、情報cを得る。 The decoding unit 320 decodes the information [c R ] to obtain the information c R (S320). More specifically, the decryption units 320 1 ,..., 320 N (decryption means 320) cause the secret sharing apparatuses 100 1 ,..., 100 N to decrypt the secret-distributed information [c R ], and the information c Get R.

ソート手段330は、情報cが示す順番に表[X]の各レコードを並べなおし、表[X]を求める。より具体的には、ソート部330,…,330(ソート手段330)が、情報cが示す順番に表[X]の各レコードを並べなおし、表[X]を求める。 The sorting unit 330 rearranges the records in the table [X R ] in the order indicated by the information c R to obtain the table [X S ]. More specifically, the sorting units 330 1 ,..., 330 N (sorting unit 330) rearrange the records in the table [X R ] in the order indicated by the information c R to obtain the table [X S ].

実施例1の秘密ソートシステムによれば、並び替え後の位置の値は正しいまま、並び替えの前にレコード間をランダム置換する。また、先にレコード間のランダム置換を行うことでランダム置換前後の対応がわからなくなるので、レコードの追跡ができなくなる。したがって、情報を漏らすことなく、並び替え後の位置を復号することができる。つまり、計算の途中では、cのみが復号されるが、cは異なるM個の値を並べたもので、レコード間をランダム置換してもソート後に何番目になるかを一意に決定できるだけの情報(例えば、1からMの整数をランダムに並べ替えた値)であるため、復号される値からは有意な情報は得られない。よって、その後は復号したソート後の順番に各レコードを移動させるだけでよい。つまり、比較に基づかないソーティングアルゴリズムを秘密計算上で実現できる。   According to the secret sort system of the first embodiment, the values of the positions after the rearrangement are kept correct, and the records are randomly replaced before the rearrangement. In addition, by performing random replacement between records first, it becomes impossible to know the correspondence before and after random replacement, making it impossible to track records. Therefore, the rearranged position can be decoded without leaking information. In other words, only c is decoded in the middle of the calculation, but c is a list of different M values, and information that can uniquely determine the number after sorting even if random replacement between records is performed. Since it is a value (for example, a value obtained by randomly rearranging integers from 1 to M), significant information cannot be obtained from the decoded value. Therefore, after that, it is only necessary to move the records in the order after the sorted sort. That is, a sorting algorithm that is not based on comparison can be realized on the secret calculation.

[変形例1]
変形例1では、実施例1の定義の他に、k、Dは整数、dは1以上D以下の整数、mは1以上M以下の整数、x,…,xは表Xのレコード、y,…,yはソートしたい順序y<…<yが定義されたD種類の値、x(k)はレコードxのk番目のデータでありy,…,yのいずれかの値、aはx(k)の値とする。そして、表[X]をレコードxのk番目のデータの値に基づいて昇順となるようにソートするための情報[c]を求める処理を含めて説明する。
[Modification 1]
In the first modification, in addition to the definition of the first embodiment, k and D are integers, d is an integer between 1 and D, m is an integer between 1 and M, x 1 ,..., X M is a record in Table X , Y 1 ,..., Y D are the sorts of orders y 1 <... <Y D in which D is defined, x m (k) is the kth data of the record x m , y 1 ,. one of the values of D, a m is the value of x m (k). Then, it will be described including the process of obtaining the table [X] the k-th information for sorting such that ascending order based on the values of the data record x m [c].

本変形例の秘密ソートシステムの構成も図1に示す。本変形例の秘密ソートシステムの処理フローは図3に示す。本変形例では、各秘密ソート装置10のソート制御部300は、ランダム置換部310、復号部320、ソート部330、行列生成部340、列ベクトル変換部350、列ベクトル計算部360、行列変換部370、行列計算部380、ソート情報計算部390を備える。そして、秘密ソートシステムの行列生成手段340(図示していない)は行列生成部340,…,340で構成され、列ベクトル変換手段350(図示していない)は列ベクトル変換部350,…,350で構成され、列ベクトル計算手段360(図示していない)は列ベクトル計算部360,…,360で構成され、行列変換手段370(図示していない)は行列変換部370,…,370で構成され、行列計算手段380(図示していない)は行列計算部380,…,380で構成され、ソート情報計算手段390(図示していない)はソート情報計算部390,…,390で構成される。 The configuration of the secret sort system of this modification is also shown in FIG. The processing flow of the secret sort system of this modification is shown in FIG. In this modification, the sort control unit 300 n of each secret sort device 10 n includes a random replacement unit 310 n , a decryption unit 320 n , a sort unit 330 n , a matrix generation unit 340 n , a column vector conversion unit 350 n , a column vector. A calculation unit 360 n , a matrix conversion unit 370 n , a matrix calculation unit 380 n , and a sort information calculation unit 390 n are provided. The matrix generation means 340 (not shown) of the secret sort system is composed of matrix generation units 340 1 ,..., 340 N , and the column vector conversion means 350 (not shown) is a column vector conversion unit 350 1 , , 350 N , column vector calculation means 360 (not shown) is constituted by column vector calculation sections 360 1 ,..., 360 N , and matrix conversion means 370 (not shown) is matrix conversion section 370. 1 ,..., 370 N , matrix calculation means 380 (not shown) is constituted by matrix calculation units 380 1 ,..., 380 N , and sort information calculation means 390 (not shown) is sort information calculation. part 390 1, ..., composed of 390 N.

行列生成手段340は、a=yかを秘密計算で確認し、a=yならばHmd=1、a≠yならばHmd=0であるHmdをm行d列の要素とするM行D列の行列[H]を生成する(S340)。より具体的には、行列生成部340,…,340(行列生成手段340)が、秘密分散装置100,…,100にa=yかを秘密計算で確認させ、a=yならばHmd=1、a≠yならばHmd=0であるHmdをm行d列の要素とするM行D列の行列[H]を生成させる。例えば、M=5、D=3、y=0,y=1,y=2であり、x(k)=2,x(k)=1,x(k)=2,x(k)=0,x(k)=1の場合、a=y,a=y,a=y,a=y,a=yなので、 Matrix generation unit 340, a m = y d or was confirmed by secure computing, a m = y d if H md = 1, a m ≠ y d if H md = a 0 H md m rows d A matrix [H] of M rows and D columns as column elements is generated (S340). More specifically, the matrix generation units 340 1 ,..., 340 N (matrix generation means 340) cause the secret sharing apparatuses 100 1 ,..., 100 N to check whether a m = y d by secret calculation, and a m If y = d , H md = 1, and if a m ≠ y d , a matrix [H] of M rows and D columns, with H md being H md = 0 and having m md = d elements, is generated. For example, M = 5, D = 3, y 1 = 0, y 2 = 1, y 3 = 2, x 1 (k) = 2, x 2 (k) = 1, x 3 (k) = 2 , X 4 (k) = 0, x 5 (k) = 1, a 1 = y 3 , a 2 = y 2 , a 3 = y 3 , a 4 = y 1 , a 5 = y 2 ,

Figure 0005480828
Figure 0005480828

となる。この例の場合、行列生成手段340は、式(1)の行列Hの各要素を秘密分散した行列[H]を求める。 It becomes. In the case of this example, the matrix generation means 340 obtains a matrix [H] obtained by secretly sharing each element of the matrix H of Expression (1).

また、D=2,y=0,y=1の場合であれば、[a]=0かどうかは[a]の否定で得られ、[a]=1かどうかは[a]の値そのままで得られる。したがって、ステップS340では、a=yかを秘密計算で確認する必要はなく、[Hm1]=[1−a]、[Hm2]=[a]とすればよい。このように、Dやy,…,yの値の選び方によっては、a=yかを秘密計算で確認する必要がない場合もある。 If D = 2, y 1 = 0, y 2 = 1, whether [a m ] = 0 is obtained by negating [a m ], and whether [a m ] = 1 is [ a m ] is obtained as it is. Therefore, in step S340, it is not necessary to confirm whether a m = y d by a secret calculation, and [H m1 ] = [1-a m ], [H m2 ] = [a m ] may be set. Thus, depending on how the values of D and y 1 ,..., Y D are selected, it may not be necessary to confirm whether a m = y d by a secret calculation.

なお、a=yかを秘密計算で確認する場合には、従来技術として蓄積された論理回路の技術を用いれば、実現できる。例えば、2ビット展開した各ビットの排他的論理和の論理和の否定によって次のように確認してもよい。 In addition, when confirming whether a m = y d by a secret calculation, it is realizable if the technique of the logic circuit accumulated as a prior art is used. For example, the following may be confirmed by negating the logical sum of the exclusive OR of each bit expanded by 2 bits.

C=1−{(amB[∨]ydB)∨・・・∨(am1[∨]yd1)} (1)
ただし、[∨]は排他的論理和(XOR)を示す記号、∨は論理和(OR)を示す記号、ambは2ビット展開したときのaの下からbビット目の値、ydbは2ビット展開したときのyの下からbビット目の値、Bは2ビット展開したときのaとyの桁数とする。式(1)では、C=1ならばa=y(真)、C=0ならばa≠y(偽)である。また、式(1)の個々の演算は後述の秘密計算の例に示されているので、式(1)の演算は秘密計算で実行でき、秘密分散された[C]が求められる。したがって、確認後の分岐も秘密にするのであれば、[C]を用いた秘密計算をさらに組合せればよい。なお、後述する秘密計算は、数値の秘密分散、秘密分散された断片の復号、秘密分散された数値の四則計算、秘密分散されたビットごとの論理演算の基本的な計算方法を網羅して示している。したがって、従来技術として蓄積された論理回路の技術を用いれば、上述の等しいことを確認する方法のように、所望の演算を後述する秘密計算の方法の組合せで実行できる。
C = 1-{(a mB [∨] y dB ) ∨ ... ∨ (a m1 [∨] y d1 )} (1)
However, [∨] is a symbol indicating an exclusive OR (XOR), ∨ symbols indicating the logical sum (OR), a mb is b-th bit value from the bottom of a m when the two-bit expansion, y db the b-th bit value from the bottom of y d when the 2-bit expansion, B is the number of digits a m and y d when the 2-bit expansion. In the formula (1), if C = 1, a m = y d (true), and if C = 0, a m ≠ y d (false). In addition, since each calculation of Expression (1) is shown in an example of secret calculation described later, the calculation of Expression (1) can be executed by secret calculation, and secret-distributed [C] is obtained. Therefore, if the branch after confirmation is also kept secret, the secret calculation using [C] may be further combined. Note that the secret calculation described later covers the basic calculation methods for secret sharing of numerical values, decryption of secret-distributed fragments, four arithmetic operations of secret-distributed numerical values, and logical operations for each secret-distributed bit. ing. Therefore, if the logic circuit technique accumulated as the conventional technique is used, a desired calculation can be executed by a combination of secret calculation methods to be described later, like the above-described method of confirming equality.

列ベクトル変換手段350は、行列[H]の各列を左の列から順に上から下に縦につなげて要素数MDの列ベクトル[h]を求める(S350)。より具体的には、列ベクトル変換部350,…,350(列ベクトル変換手段350)が、秘密分散された状態を維持したまま行列[H]を列ベクトル[h]に変換する。例えば、式(1)の行列Hの場合であれば、
h=(0,0,0,1,0,0,1,0,0,1,1,0,1,0,0) (2)
となる。この例の場合、列ベクトル変換手段350は、式(2)の列ベクトルhの各要素を秘密分散した列ベクトル[h]を求める。
The column vector conversion means 350 obtains a column vector [h] of the number of elements MD by connecting each column of the matrix [H] vertically from top to bottom in order from the left column (S350). More specifically, the column vector conversion unit 350 1 ,..., 350 N (column vector conversion means 350) converts the matrix [H] into the column vector [h] while maintaining the secret sharing state. For example, in the case of the matrix H in equation (1),
h = (0,0,0,1,0,0,1,0,0,1,1,0,1,0,0) T (2)
It becomes. In this example, the column vector conversion unit 350 obtains a column vector [h] obtained by secretly sharing each element of the column vector h in Expression (2).

列ベクトル計算手段360は、i番目の要素が、列ベクトル[h]の1番目の要素からi番目の要素までの和である列ベクトル[u]を、秘密計算で求める(S360)。より具体的には、列ベクトル計算部360,…,360(列ベクトル計算手段360)が、秘密分散装置100,…,100に、i番目の要素が、列ベクトル[h]の1番目の要素からi番目の要素までの和である列ベクトル[u]を秘密計算で求めさせる。例えば、式(2)の列ベクトルhの場合であれば、
u=(0,0,0,1,1,1,2,2,2,3,4,4,5,5,5) (3)
となる。この例の場合、列ベクトル計算手段360は、式(3)の列ベクトルuの各要素を秘密分散した列ベクトル[u]を求める。
The column vector calculation means 360 obtains a column vector [u] whose i-th element is the sum from the first element to the i-th element of the column vector [h] by secret calculation (S360). More specifically, the column vector calculation unit 360 1 ,..., 360 N (column vector calculation means 360) includes the secret sharing apparatus 100 1 ,..., 100 N and the i-th element is the column vector [h]. A column vector [u] that is the sum from the first element to the i-th element is obtained by a secret calculation. For example, in the case of the column vector h in equation (2),
u = (0,0,0,1,1,1,2,2,2,3,4,4,5,5,5) T (3)
It becomes. In this example, the column vector calculation unit 360 obtains a column vector [u] obtained by secretly sharing each element of the column vector u in Expression (3).

行列変換手段370は、列ベクトル[u]をM要素ごとに分割してD個の列ベクトルを左から順に並べたM行D列の行列[G]を生成する(S370)。より具体的には、行列変換部370,…,370(行列変換手段370)が、秘密分散された状態を維持したまま列ベクトル[u]を行列[G]に変換する。例えば、式(3)の列ベクトルuの場合であれば、 The matrix conversion unit 370 generates a matrix [G] of M rows and D columns by dividing the column vector [u] into M elements and arranging D column vectors in order from the left (S370). More specifically, the matrix conversion units 370 1 ,..., 370 N (matrix conversion unit 370) convert the column vector [u] into the matrix [G] while maintaining the secret sharing state. For example, in the case of the column vector u in equation (3),

Figure 0005480828
Figure 0005480828

となる。この例の場合、行列変換手段370は、式(4)の行列Gの各要素を秘密分散した行列[G]を求める。 It becomes. In the case of this example, the matrix conversion unit 370 obtains a matrix [G] obtained by secretly sharing each element of the matrix G in Expression (4).

行列計算手段380は、行列[G]と行列[H]の要素ごとの積を要素とするM行D列の行列[E]を、秘密計算で求める(S380)。より具体的には、行列計算部380,…,380が、秘密分散装置100,…,100に、行列[G]と行列[H]の要素ごとの積を要素とするM行D列の行列[E]を、秘密計算で求めさせる。例えば、式(4)の行列Gと式(1)の行列Hの場合であれば、 The matrix calculation means 380 obtains a matrix [E] of M rows and D columns having a product of each element of the matrix [G] and the matrix [H] as an element by secret calculation (S380). M rows More specifically, the matrix calculator 380 1, ..., is 380 N, the secret sharing apparatus 100 1, ..., to 100 N, to the product of each element elements of the matrix [G] and the matrix [H] The matrix [E] of D columns is obtained by secret calculation. For example, in the case of the matrix G of Equation (4) and the matrix H of Equation (1),

Figure 0005480828
Figure 0005480828

となる。この例の場合、行列計算手段380は、式(5)の行列Eの各要素を秘密分散した行列[E]を求める。 It becomes. In the case of this example, the matrix calculation means 380 obtains a matrix [E] obtained by secretly sharing each element of the matrix E in Expression (5).

ソート情報計算手段390は、行列[E]の行ごとの要素の総和を秘密計算で求め、それぞれの総和を要素として行の順番に並べた情報を情報[c]とする。より具体的には、ソート情報計算部390,…,390(ソート情報計算手段390)が、秘密分散装置100,…,100に、行列[E]の行ごとの要素の総和を秘密計算で求めさせ、それぞれの総和を要素として行の順番に並べた情報を情報[c]を求めさせる。このようにして求めた情報[c]が実施例1の与えられた情報[c]に相当する。例えば、式(5)の行列Eの場合であれば、
c=(4,2,5,1,3) (6)
となる。この例の場合、ソート情報計算手段390は、式(6)の情報cの各要素を秘密分散した情報[c]を求める。
The sort information calculation means 390 obtains the sum of elements for each row of the matrix [E] by secret calculation, and sets information [c] as information arranged in the order of rows using the respective sums as elements. More specifically, the sorting information calculation unit 390 1, ..., 390 N (sorting information calculating unit 390) is, secret sharing apparatus 100 1, ..., to 100 N, the sum of the elements of each row of the matrix [E] Information [c] is obtained from information arranged in the order of rows with each sum as an element. The information [c] obtained in this way corresponds to the information [c] given in the first embodiment. For example, in the case of the matrix E in Equation (5),
c = (4, 2, 5, 1, 3) T (6)
It becomes. In this example, the sort information calculation unit 390 obtains information [c] obtained by secretly sharing each element of the information c in Expression (6).

ランダム置換手段310、復号手段320、ソート手段330は実施例1と同じであり、ステップS310,S320,S330も実施例1と同じである。つまり、本変形例の秘密ソートシステムも、ソートに関しては実施例1と同様の効果が得られる。   The random replacement means 310, the decoding means 320, and the sorting means 330 are the same as in the first embodiment, and steps S310, S320, and S330 are also the same as in the first embodiment. That is, the secret sort system according to the present modification can achieve the same effect as the first embodiment with respect to sorting.

次にソートに要する計算時間を評価する。各[a]の計算をMによらない時間で、Hの計算をO(M)時間で、M個のランダム置換をO(M)時間で、乗算と加算をMによらない時間でできれば、全体の計算時間はO(M)である。例えば、非特許文献1の秘匿関数計算で非特許文献2のランダム置換を用い、D=2とすれば、[a]=0かどうかは[a]の否定で得られ、[a]=1かどうかは[a]の値そのままで得られる。したがって、[H]は[a]とその否定で計算でき、ランダム置換も線形時間O(M)であるので、全体も線形時間O(M)で実現できる。つまり、実施例1の秘密ソートシステムが、比較に基づかないソーティングアルゴリズムを秘密計算上で実現できるので、本変形例のように情報[c]を求めれば、O(n)の計算時間でソーティングを行う秘密計算上のアルゴリズムを提供できる。 Next, the calculation time required for sorting is evaluated. If each [a m ] can be calculated in M-independent time, H in O (M) time, M random permutations in O (M) time, and multiplication and addition in M-independent time The total calculation time is O (M). For example, if the random replacement of Non-Patent Document 2 is used in the secret function calculation of Non-Patent Document 1 and D = 2, whether [a m ] = 0 is obtained by negating [a m ], and [a m ] = 1 is obtained with the value of [a m ] as it is. Therefore, [H] can be calculated by [a m ] and its negation, and random replacement is also in linear time O (M), so that the whole can be realized in linear time O (M). That is, since the secret sorting system of the first embodiment can realize a sorting algorithm that is not based on comparison on the secret calculation, if the information [c] is obtained as in this modification, the sorting is performed in the calculation time of O (n). It is possible to provide a secret calculation algorithm to be performed.

[変形例2]
変形例2では、実施例1の定義の他に、k、B、Dは整数、bは1以上B以下の整数、dは1以上D以下の整数、mは1以上M以下の整数、x,…,xは表Xのレコード、x(k)はレコードxのk番目のデータでありB桁のD進数の値、abmはx(k)の下位からb桁目の値とする。そして、表[X]をレコードxのk番目のデータの値に基づいて昇順となるようにソートするための情報[c]を求める処理を含めて説明する。なお、秘密計算によるD進数への分解は、参考文献1(Chao Ning, Qiuliang Xu, “Multiparty Computation for Modulo Reduction without Bit-Decomposition and a Generalization to Bit-Decomposition”, ASIACRYPT 2010, pp483-500.)などに示されている方法を用いればよい。
[Modification 2]
In the second modification, in addition to the definition of the first embodiment, k, B, and D are integers, b is an integer of 1 to B, d is an integer of 1 to D, m is an integer of 1 to M, x 1 ,..., X M is a record in Table X, x m (k) is the k-th data of record x m and is a B-digit D-ary value, and a bm is the b-th digit from the lower order of x m (k) The value of Then, it will be described including the process of obtaining the table [X] the k-th information for sorting such that ascending order based on the values of the data record x m [c]. In addition, decomposition to D-adic numbers by secret calculation is shown in Reference 1 (Chao Ning, Qiuliang Xu, “Multiparty Computation for Modulo Reduction without Bit-Decomposition and a Generalization to Bit-Decomposition”, ASIACRYPT 2010, pp483-500.) The method shown in FIG.

本変形例の秘密ソートシステムの構成も図1に示す。本変形例の秘密ソートシステムの処理フローは図4に示す。本変形例では、各秘密ソート装置10のソート制御部300は、ランダム置換部310、復号部320、ソート部330、行列生成部340、列ベクトル変換部350、列ベクトル計算部360、行列変換部370、行列計算部380、ソート情報計算部390を備える。そして、秘密ソートシステムの行列生成手段340(図示していない)は行列生成部340,…,340で構成され、列ベクトル変換手段350(図示していない)は列ベクトル変換部350,…,350で構成され、列ベクトル計算手段360(図示していない)は列ベクトル計算部360,…,360で構成され、行列変換手段370(図示していない)は行列変換部370,…,370で構成され、行列計算手段380(図示していない)は行列計算部380,…,380で構成され、ソート情報計算手段390(図示していない)はソート情報計算部390,…,390で構成される。 The configuration of the secret sort system of this modification is also shown in FIG. The processing flow of the secret sort system of this modification is shown in FIG. In this modification, the sort control unit 300 n of each secret sort device 10 n includes a random replacement unit 310 n , a decryption unit 320 n , a sort unit 330 n , a matrix generation unit 340 n , a column vector conversion unit 350 n , a column vector. A calculation unit 360 n , a matrix conversion unit 370 n , a matrix calculation unit 380 n , and a sort information calculation unit 390 n are provided. The matrix generation means 340 (not shown) of the secret sort system is composed of matrix generation units 340 1 ,..., 340 N , and the column vector conversion means 350 (not shown) is a column vector conversion unit 350 1 , , 350 N , column vector calculation means 360 (not shown) is constituted by column vector calculation sections 360 1 ,..., 360 N , and matrix conversion means 370 (not shown) is matrix conversion section 370. 1 ,..., 370 N , matrix calculation means 380 (not shown) is constituted by matrix calculation units 380 1 ,..., 380 N , and sort information calculation means 390 (not shown) is sort information calculation. part 390 1, ..., composed of 390 N.

まず、ソート制御部300,…,300は、b=1に初期設定する(S301)。 First, the sort control units 300 1 ,..., 300 N initially set b = 1 (S301).

行列生成手段340は、abm=d−1かを秘密計算で確認し、abm=d−1ならばHmd=1、abm≠d−1ならばHmd=0であるHmdをm行d列の要素とするM行D列の行列[H]を生成する(S340)。より具体的には、行列生成部340,…,340(行列生成手段340)が、秘密分散装置100,…,100にabm=d−1かを秘密計算で確認させ、abm=d−1ならばHmd=1、abm≠d−1ならばHmd=0であるHmdをm行d列の要素とするM行D列の行列[H]を生成させる。本変形例は、変形例1のy
=d−1
と設定した場合に相当する。
Matrix generation unit 340, the a bm = d-1 or was confirmed by secure computing, a bm = d-1 if H md = 1, a bm ≠ d-1 if H md = 0 a is H md A matrix [H] of M rows and D columns as elements of m rows and d columns is generated (S340). More specifically, the matrix generation units 340 1 ,..., 340 N (matrix generation means 340) cause the secret sharing apparatuses 100 1 ,..., 100 N to check whether a bm = d−1 by secret calculation, and a If bm = d−1, then H md = 1, and if a bm ≠ d−1, a matrix [H] of M rows and D columns with H md being H md = 0 and m rows and d columns as elements is generated. In this modification, y d of modification 1 is changed to y d = d−1.
This corresponds to the setting.

また、特にD=2であれば、[abm]=0かどうかは[abm]の否定で得られ、[abm]=1かどうかは[abm]の値そのままで得られる。したがって、ステップS340では、a=d−1かを秘密計算で確認する必要はなく、[Hm1]=[1−a]、[Hm2]=[a]とすればよい。このように、Dの値によっては、a=d−1かを秘密計算で確認する必要がない場合もある。 In particular, when D = 2, whether [a bm ] = 0 is obtained by negating [a bm ], and whether [a bm ] = 1 is obtained as it is with the value of [a bm ]. Therefore, in step S340, it is not necessary to confirm whether a m = d-1 by secret calculation, and [H m1 ] = [1-a m ] and [H m2 ] = [a m ] may be set. As described above, depending on the value of D, it may not be necessary to confirm whether a m = d−1 by secret calculation.

列ベクトル変換手段350は、行列[H]の各列を左の列から順に上から下に縦につなげて要素数MDの列ベクトル[h]を求める(S350)。より具体的には、列ベクトル変換部350,…,350(列ベクトル変換手段350)が、秘密分散された状態を維持したまま行列[H]を列ベクトル[h]に変換する。 The column vector conversion means 350 obtains a column vector [h] of the number of elements MD by connecting each column of the matrix [H] vertically from top to bottom in order from the left column (S350). More specifically, the column vector conversion unit 350 1 ,..., 350 N (column vector conversion means 350) converts the matrix [H] into the column vector [h] while maintaining the secret sharing state.

列ベクトル計算手段360は、i番目の要素が、列ベクトル[h]の1番目の要素からi番目の要素までの和である列ベクトル[u]を、秘密計算で求める(S360)。より具体的には、列ベクトル計算部360,…,360(列ベクトル計算手段360)が、秘密分散装置100,…,100に、i番目の要素が、列ベクトル[h]の1番目の要素からi番目の要素までの和である列ベクトル[u]を秘密計算で求めさせる。 The column vector calculation means 360 obtains a column vector [u] whose i-th element is the sum from the first element to the i-th element of the column vector [h] by secret calculation (S360). More specifically, the column vector calculation unit 360 1 ,..., 360 N (column vector calculation means 360) includes the secret sharing apparatus 100 1 ,..., 100 N and the i-th element is the column vector [h]. A column vector [u] that is the sum from the first element to the i-th element is obtained by a secret calculation.

行列変換手段370は、列ベクトル[u]をM要素ごとに分割してD個の列ベクトルを左から順に並べたM行D列の行列[G]を生成する(S370)。より具体的には、行列変換部370,…,370(行列変換手段370)が、秘密分散された状態を維持したまま列ベクトル[u]を行列[G]に変換する。 The matrix conversion unit 370 generates a matrix [G] of M rows and D columns by dividing the column vector [u] into M elements and arranging D column vectors in order from the left (S370). More specifically, the matrix conversion units 370 1 ,..., 370 N (matrix conversion unit 370) convert the column vector [u] into the matrix [G] while maintaining the secret sharing state.

行列計算手段380は、行列[G]と行列[H]の要素ごとの積を要素とするM行D列の行列[E]を、秘密計算で求める(S380)。より具体的には、行列計算部380,…,380が、秘密分散装置100,…,100に、行列[G]と行列[H]の要素ごとの積を要素とするM行D列の行列[E]を、秘密計算で求めさせる。 The matrix calculation means 380 obtains a matrix [E] of M rows and D columns having a product of each element of the matrix [G] and the matrix [H] as an element by secret calculation (S380). M rows More specifically, the matrix calculator 380 1, ..., is 380 N, the secret sharing apparatus 100 1, ..., to 100 N, to the product of each element elements of the matrix [G] and the matrix [H] The matrix [E] of D columns is obtained by secret calculation.

ソート情報計算手段390は、行列[E]の行ごとの要素の総和を秘密計算で求め、それぞれの総和を要素として行の順番に並べた情報を情報[c]とする。より具体的には、ソート情報計算部390,…,390(ソート情報計算手段390)が、秘密分散装置100,…,100に、行列[E]の行ごとの要素の総和を秘密計算で求めさせ、それぞれの総和を要素として行の順番に並べた情報を情報[c]を求めさせる。このようにして求めた情報[c]が実施例1の与えられた情報[c]に相当する。 The sort information calculation means 390 obtains the sum of elements for each row of the matrix [E] by secret calculation, and sets information [c] as information arranged in the order of rows using the respective sums as elements. More specifically, the sorting information calculation unit 390. 1, ..., 390 N (sorting information calculating unit 390) is, secret sharing apparatus 100 1, ..., to 100 N, the sum of the elements of each row of the matrix [E] Information [c] is obtained from information arranged in the order of rows with each sum as an element. The information [c] obtained in this way corresponds to the information [c] given in the first embodiment.

ランダム置換手段310、復号手段320、ソート手段330は実施例1と同じであり、ステップS310,S320,S330も実施例1と同じである。   The random replacement means 310, the decoding means 320, and the sorting means 330 are the same as in the first embodiment, and steps S310, S320, and S330 are also the same as in the first embodiment.

次にソート制御部300,…,300は、繰返しの条件を満たすかを確認する(S302)。具体的には、b=Bかを確認する。ステップS302がYesの場合は、処理を終了する。また、ステップS302がNoの場合は、bにb+1を代入し(S302)、ソート手段330が求めた表[X]を次のソートの対象の表[X]として、ステップS340に戻る。このようにして、下位の桁から上位の桁にソートの対象を変更しながらB桁分のソートを繰り返せば、B桁のD進数の値を対象としたソートを行うことができる。 Next, the sort control units 300 1 ,..., 300 N confirm whether the repetition condition is satisfied (S302). Specifically, it is confirmed whether b = B. If step S302 is Yes, the process ends. If step S302 is No, b + 1 is substituted for b (S302), and the table [X S ] obtained by the sorting means 330 is set as the table [X] to be sorted next, and the process returns to step S340. In this way, if the sorting for B digits is repeated while changing the sorting target from the lower digit to the upper digit, the sorting for the B-digit D-ary value can be performed.

このような方法でソートが実行されるので、本変形例の秘密ソートシステムによれば、変形例1と同じ効果が得られる。   Since sorting is performed by such a method, according to the secret sorting system of this modification, the same effect as that of Modification 1 can be obtained.

[変形例3]
変形例3では、実施例1の定義の他に、Bは整数、k,…,kとD,…,Dは整数、bは1以上B以下の整数、dは1以上D以下の整数、mは1以上M以下の整数、x,…,xは表Xのレコード、y(1),…,y(D)はソートしたい順序y(1)<…<y(D)が定義されたD種類の値、x(k)はレコードxのk番目のデータでありy(1),…,y(D)のいずれかの値、abmはx(k)の値とする。そして、表[X]をレコードxのk番目からk番目のデータの値に基づいて、かつBが大きい方を優先して昇順となるようにソートするための情報[c]を求める処理を含めて説明する。
[Modification 3]
In Modification 3, in addition to the definition in Example 1, B is an integer, k 1, ..., k B and D 1, ..., D B is an integer, b is 1 or more B an integer, d b is 1 or more D b or less, m is an integer from 1 to M, x 1 ,..., X M is a record in Table X, y b (1),..., Y b (D b ) is the order y b (1 ) <... <Y b (D b ) defined D b type value, x m (k b ) is the k b th data of record x m and y b (1),..., Y b (D Any value of b ), a bm is the value of x m (k b ). Then, information [c] for sorting the table [X] on the basis of the values of the k 1st to k B Bth data of the record x m so as to be in ascending order with priority on the larger B is obtained. A description will be given including the processing.

本変形例の秘密ソートシステムの構成も図1に示す。本変形例の秘密ソートシステムの処理フローは図4に示す。本変形例では、各秘密ソート装置10のソート制御部300は、ランダム置換部310、復号部320、ソート部330、行列生成部340、列ベクトル変換部350、列ベクトル計算部360、行列変換部370、行列計算部380、ソート情報計算部390を備える。そして、秘密ソートシステムの行列生成手段340(図示していない)は行列生成部340,…,340で構成され、列ベクトル変換手段350(図示していない)は列ベクトル変換部350,…,350で構成され、列ベクトル計算手段360(図示していない)は列ベクトル計算部360,…,360で構成され、行列変換手段370(図示していない)は行列変換部370,…,370で構成され、行列計算手段380(図示していない)は行列計算部380,…,380で構成され、ソート情報計算手段390(図示していない)はソート情報計算部390,…,390で構成される。 The configuration of the secret sort system of this modification is also shown in FIG. The processing flow of the secret sort system of this modification is shown in FIG. In this modification, the sort control unit 300 n of each secret sort device 10 n includes a random replacement unit 310 n , a decryption unit 320 n , a sort unit 330 n , a matrix generation unit 340 n , a column vector conversion unit 350 n , a column vector. A calculation unit 360 n , a matrix conversion unit 370 n , a matrix calculation unit 380 n , and a sort information calculation unit 390 n are provided. The matrix generation means 340 (not shown) of the secret sort system is composed of matrix generation units 340 1 ,..., 340 N , and the column vector conversion means 350 (not shown) is a column vector conversion unit 350 1 , , 350 N , column vector calculation means 360 (not shown) is constituted by column vector calculation sections 360 1 ,..., 360 N , and matrix conversion means 370 (not shown) is matrix conversion section 370. 1 ,..., 370 N , matrix calculation means 380 (not shown) is constituted by matrix calculation units 380 1 ,..., 380 N , and sort information calculation means 390 (not shown) is sort information calculation. part 390 1, ..., composed of 390 N.

まず、ソート制御部300,…,300は、b=1に初期設定する(S301)。 First, the sort control units 300 1 ,..., 300 N initially set b = 1 (S301).

行列生成手段340は、abm=y(d)かを秘密計算で確認し、abm=y(d)ならばHmd=1、abm≠y(d)ならばHmd=0であるHmdをm行d列の要素とするM行D列の行列[H]を生成する(S340)。より具体的には、行列生成部340,…,340(行列生成手段340)が、秘密分散装置100,…,100にabm=y(d)かを秘密計算で確認させ、abm=y(d)ならばHmd=1、abm≠y(d)ならばHmd=0であるHmdをm行d列の要素とするM行D列の行列[H]を生成させる。 The matrix generation means 340 confirms whether a bm = y b (d b ) by a secret calculation. If a bm = y b (d b ), then H md = 1 and a bm ≠ y b (d b ). matrix of M rows D columns of the H md = 0 a is H md an element of m rows d column to produce the [H] (S340). More specifically, the matrix generation unit 340 1 ,..., 340 N (matrix generation means 340) confirms by secret calculation whether the secret sharing apparatus 100 1 ,..., 100 N is a bm = y b (d b ). is allowed, M rows row D to a bm = y b (d b ) If H md = 1, a bm ≠ y b (d b) if the H md is H md = 0 for m rows d column element Matrix [H] is generated.

また、D=2,y(1)=0,y(2)=1の場合であれば、[abm]=0かどうかは[abm]の否定で得られ、[abm]=1かどうかは[abm]の値そのままで得られる。したがって、ステップS340では、abm=y(d)かを秘密計算で確認する必要はなく、[Hm1]=[1−a]、[Hm2]=[a]とすればよい。このように、Dやy(1),…,y(D)の値の選び方によっては、abm=y(d)かを秘密計算で確認する必要がない場合もある。 If D b = 2 and y b (1) = 0, y b (2) = 1, whether or not [a bm ] = 0 is obtained by negating [a bm ], and [a bm ] = 1 is obtained with the value of [a bm ] as it is. Therefore, in step S340, it is not necessary to confirm whether a bm = y b (d b ) by a secret calculation. If [H m1 ] = [1-a m ] and [H m2 ] = [a m ], Good. Thus, depending on how the values of D b and y b (1),..., Y b (D b ) are selected, it may not be necessary to check whether a bm = y b (d b ) by secret calculation. .

列ベクトル変換手段350は、行列[H]の各列を左の列から順に上から下に縦につなげて要素数MDの列ベクトル[h]を求める(S350)。より具体的には、列ベクトル変換部350,…,350(列ベクトル変換手段350)が、秘密分散された状態を維持したまま行列[H]を列ベクトル[h]に変換する。 The column vector conversion means 350 obtains a column vector [h] of the number of elements MD by connecting each column of the matrix [H] vertically from top to bottom in order from the left column (S350). More specifically, the column vector conversion unit 350 1 ,..., 350 N (column vector conversion means 350) converts the matrix [H] into the column vector [h] while maintaining the secret sharing state.

列ベクトル計算手段360は、i番目の要素が、列ベクトル[h]の1番目の要素からi番目の要素までの和である列ベクトル[u]を、秘密計算で求める(S360)。より具体的には、列ベクトル計算部360,…,360(列ベクトル計算手段360)が、秘密分散装置100,…,100に、i番目の要素が、列ベクトル[h]の1番目の要素からi番目の要素までの和である列ベクトル[u]を秘密計算で求めさせる。 The column vector calculation means 360 obtains a column vector [u] whose i-th element is the sum from the first element to the i-th element of the column vector [h] by secret calculation (S360). More specifically, the column vector calculation unit 360 1 ,..., 360 N (column vector calculation means 360) includes the secret sharing apparatus 100 1 ,..., 100 N and the i-th element is the column vector [h]. A column vector [u] that is the sum from the first element to the i-th element is obtained by a secret calculation.

行列変換手段370は、列ベクトル[u]をM要素ごとに分割してD個の列ベクトルを左から順に並べたM行D列の行列[G]を生成する(S370)。より具体的には、行列変換部370,…,370(行列変換手段370)が、秘密分散された状態を維持したまま列ベクトル[u]を行列[G]に変換する。 The matrix conversion unit 370 generates a matrix [G] of M rows and D columns by dividing the column vector [u] into M elements and arranging D column vectors in order from the left (S370). More specifically, the matrix conversion units 370 1 ,..., 370 N (matrix conversion unit 370) convert the column vector [u] into the matrix [G] while maintaining the secret sharing state.

行列計算手段380は、行列[G]と行列[H]の要素ごとの積を要素とするM行D列の行列[E]を、秘密計算で求める(S380)。より具体的には、行列計算部380,…,380が、秘密分散装置100,…,100に、行列[G]と行列[H]の要素ごとの積を要素とするM行D列の行列[E]を、秘密計算で求めさせる。 The matrix calculation means 380 obtains a matrix [E] of M rows and D columns having a product of each element of the matrix [G] and the matrix [H] as an element by secret calculation (S380). M rows More specifically, the matrix calculator 380 1, ..., is 380 N, the secret sharing apparatus 100 1, ..., to 100 N, to the product of each element elements of the matrix [G] and the matrix [H] The matrix [E] of D columns is obtained by secret calculation.

ソート情報計算手段390は、行列[E]の行ごとの要素の総和を秘密計算で求め、それぞれの総和を要素として行の順番に並べた情報を情報[c]とする。より具体的には、ソート情報計算部390,…,390(ソート情報計算手段390)が、秘密分散装置100,…,100に、行列[E]の行ごとの要素の総和を秘密計算で求めさせ、それぞれの総和を要素として行の順番に並べた情報を情報[c]を求めさせる。このようにして求めた情報[c]が実施例1の与えられた情報[c]に相当する。 The sort information calculation means 390 obtains the sum of elements for each row of the matrix [E] by secret calculation, and sets information [c] as information arranged in the order of rows using the respective sums as elements. More specifically, the sorting information calculation unit 390 1, ..., 390 N (sorting information calculating unit 390) is, secret sharing apparatus 100 1, ..., to 100 N, the sum of the elements of each row of the matrix [E] Information [c] is obtained from information arranged in the order of rows with each sum as an element. The information [c] obtained in this way corresponds to the information [c] given in the first embodiment.

ランダム置換手段310、復号手段320、ソート手段330は実施例1と同じであり、ステップS310,S320,S330も実施例1と同じである。   The random replacement means 310, the decoding means 320, and the sorting means 330 are the same as in the first embodiment, and steps S310, S320, and S330 are also the same as in the first embodiment.

次にソート制御部300,…,300は、繰返しの条件を満たすかを確認する(S302)。具体的には、b=Bかを確認する。ステップS302がYesの場合は、処理を終了する。また、ステップS302がNoの場合は、bにb+1を代入し(S302)、ソート手段330が求めた表[X]を次のソートの対象の表[X]として、ステップS340に戻る。このようにして、優先順位の低いk番目のデータから優先順位の高いk番目のデータにソートの対象を変更しながらソートを繰り返せば、k番目からk番目のデータの値に基づいて、かつBが大きい方を優先してソートを行うことができる。 Next, the sort control units 300 1 ,..., 300 N confirm whether the repetition condition is satisfied (S302). Specifically, it is confirmed whether b = B. If step S302 is Yes, the process ends. If step S302 is No, b + 1 is substituted for b (S302), and the table [X S ] obtained by the sorting means 330 is set as the table [X] to be sorted next, and the process returns to step S340. In this way, repeating the sort while changing the target sorting from lower priority k 1 th data higher priority k B th data, based from the first k on the value of k B-th data In addition, sorting can be performed with priority given to the larger B.

このような方法でソートが実行されるので、本変形例の秘密ソートシステムによれば、変形例2と同じ効果が得られる。   Since sorting is performed by such a method, according to the secret sorting system of this modification, the same effect as that of Modification 2 can be obtained.

[秘密計算]
上述の説明では、秘密計算については1つの方法に限定しないことを前提としており、具体例は示さなかった。以下の説明では、秘密ソート装置10,…,10が実行するランダム置換とその他の秘密計算について説明する。なお、以下の秘密計算に関する説明は、1つの例でありこれに限定されるものではない。本発明の秘密ソートシステムでは他の秘密計算を用いてもよい。
[Secret calculation]
In the above description, it is assumed that the secret calculation is not limited to one method, and no specific example is shown. In the following description, random replacement performed by the secret sort devices 10 1 ,..., 10 N and other secret calculations will be described. In addition, the description regarding the following secret calculation is an example, and is not limited thereto. Other secret computations may be used in the secret sort system of the present invention.

ランダム置換1
図5に本発明に利用できる秘密分散装置100の機能構成例を詳しく示した秘密ソートシステムを示す。図6にランダム置換の1つ目の処理フロー例を示す。この例では、秘密ソートシステムは選択手段105も備える。ここで、A,…,Aを各秘密ソート装置10が断片を分散して記録するK個の数値(Kは2以上の整数)、数値Aをk番目の数値(kは1以上K以下の整数)、aknを秘密ソート装置10が記録するk番目の断片とする。なお、数値A,…,Aが、秘匿化したい数値群であって、例えば、ソートの対象となる数値群である。ソートの対象となる数値群としては、例えば、数値Aが各々の人の年収を示すような数値群が考えられる。選択手段105は、いずれかの秘密ソート装置の内部に配置されてもよいし、単独の装置であってもよい。
Random replacement 1
FIG. 5 shows a secret sort system showing in detail a functional configuration example of a secret sharing apparatus 100 n that can be used in the present invention. FIG. 6 shows a first processing flow example of random replacement. In this example, the secret sort system also includes a selection unit 105. Here, A 1, ..., K-number of numerical values recorded by dispersing the secret sorter 10 n fragments of A K (K is an integer of 2 or more), number A k the k-th numerical (k is 1 An integer of K or less), a kn is a k-th fragment recorded by the secret sort device 10 n . Note that the numerical values A 1 ,..., AK are numerical values to be concealed, for example, numerical values to be sorted. The numerical value group as the sorting subject, for example, numerical A k are considered numeric group shown an annual income of each person. The selection unit 105 may be disposed inside any one of the secret sort devices, or may be a single device.

秘密ソートシステムは、選択手段と断片置換手段と再分散手段を備える。また、秘密分散装置100は、少なくとも断片置換部110と再分散部120と記録部190を備える。記録部190は断片a1n,…,aKnなどを記録する。また、記録部190は、自身が記録している断片aknが数値Aの何番目の断片なのかに関する情報も記録する。 The secret sort system includes selection means, fragment replacement means, and redistribution means. The secret sharing apparatus 100 n includes at least a fragment replacement unit 110 n , a re-distribution unit 120 n, and a recording unit 190 n . The recording unit 190 n records fragments a 1n ,..., A Kn, etc. The recording unit 190 n also records information on the number a fragment of the numerical value A k that the fragment a kn recorded by itself is.

選択手段105は、N未満の数の秘密ソート装置10を選択する(S105)。例えば、N個の断片のうちN’個を集めれば数値を復元できる秘密分散であれば、断片置換手段がN’個以上N未満の秘密ソート装置を選べばよい。 The selection unit 105 selects a secret sort device 10 n having a number less than N (S105). For example, in the case of secret sharing in which a numerical value can be restored by collecting N ′ pieces out of N pieces, a secret sort device having N ′ pieces or more and less than N pieces may be selected.

断片置換手段は、少なくとも断片置換部110,…,110を含んで構成される。そして、選択手段105に選択された秘密ソート装置10(ただし、iは選択された秘密ソート装置を示す番号)の断片置換部110間で{1,…,K}→{1,…,K}の全単射πを作成し、選択された秘密ソート装置10の記録部190が記録する断片aπ(k)iをk番目の断片にする(S110)。全単射πは、1〜Kを単にランダムに並べ替えたものであってもよい。なお、全単射πは、望ましくは一様にランダムに並び替えられたものであり、例えばFisher-Yates shuffle(参考文献1:Richard Durstenfeld, “Algorithm 235: Random permutation”, Communications of the ACM archive, Volume 7, Issue 7, 1964.)などを用いて作成すればよい。また、全単射πは選択された秘密ソート装置10間で生成してもよいし、選択された秘密ソート装置10のうちの1つの秘密ソート装置が生成して、選択された秘密ソート装置10間で共有してもよい。 The fragment replacement means includes at least the fragment replacement units 110 1 ,..., 110 N. Then, {1,..., K} → {1,..., Between the fragment replacement units 110 i of the secret sort device 10 i selected by the selection means 105 (where i is a number indicating the selected secret sort device). A bijection π of K} is created, and the fragment a π (k) i recorded by the recording unit 190 i of the selected secret sort device 10 i is set as the kth fragment (S110). The bijection π may be obtained by simply rearranging 1 to K at random. Note that the bijection π is preferably rearranged uniformly and randomly. For example, Fisher-Yates shuffle (Reference 1: Richard Durstenfeld, “Algorithm 235: Random permutation”, Communications of the ACM archive, Volume 7, Issue 7, 1964.) etc. The bijection π may be generated between the selected secret sort devices 10 i , or may be generated by one secret sort device among the selected secret sort devices 10 i to select the selected secret sort device. You may share between apparatus 10 i .

再分散手段は、少なくとも再分散部120,…,120を含んで構成される。再分散手段は、断片置換手段によって置換された数値Aπ(k)に対応する断片aπ(k)i(k番目に置換されている)を用いて再分散化して新しい断片bk1,…,bkNを求め、数値Bの断片とする(S120)。つまり、Aπ(k)=Bの関係が成り立つが、選ばれなかった秘密ソート装置は全単射πを知らないので、Aπ(k)=Bであることを知らない。なお、各秘密ソート装置10の記録部190は、断片bknを記録するだけでなく、自身が記録しているk番目の断片である断片bknが数値Bの断片であるという情報も記録する。また、数値B,…,Bを新しい数値A,…,Aとし、選択手段で選択する秘密ソート装置の組み合わせを変更すれば、この処理を繰り返すことができる(S111,S112)。 Redispersion means, at least re-dispersing section 120 1, ..., configured to include a 120 N. The re-distribution means re-distributes using the fragment a π (k) i (replaced k-th ) corresponding to the numerical value A π (k) replaced by the fragment replacement means, and performs a new fragment b k1,. , B kN are obtained and set as a fragment of the numerical value B k (S120). That is, the relationship of A π (k) = B k holds, but the secret sort apparatus that was not selected does not know bijection π, and therefore does not know that A π (k) = B k . The information that each secret sorter 10 n recording unit 190 n of not only recording the fragment b kn, a fragment of fragment b kn numerical B k is the k-th fragment itself is recorded Also record. In addition, if the numerical values B 1 ,..., BK are changed to new numerical values A 1 ,..., AK and the combination of the secret sort devices selected by the selection means is changed, this process can be repeated (S111, S112).

本発明の秘密ソートシステムによれば、限定された秘密ソート装置間で断片をシャッフルする。したがって、選ばれなかった秘密ソート装置は、全単射πを知らないので、数値A,…,Aと数値B,…,Bとの対応が分からない。つまり、特定の秘密ソート装置からは数値A,…,Aと数値B,…,Bとの対応が分からない状態にしたいのであれば、その秘密ソート装置を選択手段105で選ばないように、選択する秘密ソート装置をあらかじめ定めればよい。また、選択手段105が選ぶ秘密ソート装置を変更しながらこの処理を繰り返し、全ての秘密ソート装置が選ばれなかったことがある状態にすれば、全ての秘密ソート装置が数値A,…,Aと対応つけることができない数値B,…,Bを得ることができる。 According to the secret sort system of the present invention, fragments are shuffled between limited secret sort devices. Therefore, the secret sort equipment that has not been chosen, because it does not know the BC π, numerical value A 1, ..., A K and the numerical value B 1, ..., do not know the correspondence between the B K. That is, numerical values A 1 from a specific secret sorter, ..., A K and number B 1, ..., If you wish to state that corresponds is not known with B K, choose a secret sort apparatus selecting means 105 Thus, the secret sort device to be selected may be determined in advance. Further, if this process is repeated while changing the secret sort device selected by the selection means 105 and all secret sort devices have not been selected, all the secret sort devices have numerical values A 1 ,. numerical B 1 that can not be assigned corresponding to the K, ..., can be obtained B K.

ランダム置換2
次のランダム置換のための秘密ソートシステムの秘密分散装置100を詳細に示した機能構成例も図5に示す。図7にランダム置換の2つ目の処理フロー例を示す。この例でも、秘密ソートシステムは選択手段105も備える。ここで、A,…,Aを各秘密ソート装置10が断片を分散して記録するK個の数値(Kは2以上の整数)、数値Aをk番目の数値(kは1以上K以下の整数)、aknを秘密ソート装置10が記録する数値Aの断片とする。
Random replacement 2
FIG. 5 also shows a functional configuration example showing in detail the secret sharing apparatus 100 n of the secret sort system for the next random replacement. FIG. 7 shows a second processing flow example of random replacement. Also in this example, the secret sort system also includes a selection unit 105. Here, A 1, ..., K-number of numerical values recorded by dispersing the secret sorter 10 n fragments of A K (K is an integer of 2 or more), number A k the k-th numerical (k is 1 An integer of K or less), and a kn is a fragment of the numerical value A k recorded by the secret sort device 10 n .

本発明の秘密ソートシステムは、選択手段105、初期情報分散手段、初期乗算手段、断片置換手段、再分散手段、確認分散手段、確認乗算手段、改ざん検出手段を備える。また、秘密分散装置100は、初期情報分散部130、初期乗算部140、断片置換部110、再分散部120、確認分散部150、確認乗算部160、改ざん検出部170を備える。記録部190は断片a1n,…,aKnなどを記録する。また、記録部190は、自身が記録している断片aknが数値Aの何番目の断片なのかに関する情報も記録する。 The secret sort system of the present invention includes a selection unit 105, an initial information distribution unit, an initial multiplication unit, a fragment replacement unit, a redistribution unit, a confirmation distribution unit, a confirmation multiplication unit, and a falsification detection unit. The secret sharing apparatus 100 n includes an initial information distribution unit 130 n , an initial multiplication unit 140 n , a fragment replacement unit 110 n , a redistribution unit 120 n , a confirmation distribution unit 150 n , a confirmation multiplication unit 160 n , and a tampering detection unit 170. n . The recording unit 190 n records fragments a 1n ,..., A Kn, etc. The recording unit 190 n also records information on the number a fragment of the numerical value A k that the fragment a kn recorded by itself is.

選択手段105はランダム置換1と同じである。初期情報分散手段は、初期情報分散部130,…,130で構成される。そして、選択手段105に選択された秘密ソート装置10の初期情報分散部130は、秘密ソート装置10,…,10のどれも知らないK個の数値P,…,Pそれぞれの断片p1n,…,pKnを秘密計算によって求め、記録部190に記録する(S130)。具体的には、選択手段105に選択された秘密ソート装置から、2つ以上の秘密ソート装置を選定する。そして、選定された秘密ソート装置が作った値に基づいて、どの装置も知らない値の断片を作ればよい。例えば、2つの秘密ソート装置10,10を選定し(ただし、i≠j)、秘密ソート装置10が生成した数値の断片と、秘密ソート装置10が生成した数値の断片を分散して記録する。そして、その2つの数値の和を秘密計算によって求め、結果が分からないように断片を分散して記録すれば、全ての秘密ソート装置が知らない数値の断片を分散して記録できる。この例では、選定した秘密計算装置を2つとしたが、2つ以上でもかまわない。 The selection means 105 is the same as the random replacement 1. Initial information distribution means, the initial information distribution unit 130 1, ..., and a 130 N. The initial information distribution unit 130 i of the secret sorting apparatus 10 i selected by the selecting means 105, the secret sorting device 10 1, ..., 10 K pieces of numerical P 1 does not know any of N, ..., P K respectively Fragments p 1n ,..., P Kn are obtained by secret calculation and recorded in the recording unit 190 n (S130). Specifically, two or more secret sort devices are selected from the secret sort devices selected by the selection unit 105. Then, based on the value created by the selected secret sort device, a fragment of a value unknown to any device may be created. For example, two secret sort devices 10 i and 10 j are selected (where i ≠ j), and the numerical fragments generated by the secret sort device 10 i and the numerical fragments generated by the secret sort device 10 j are distributed. Record. Then, if the sum of the two numerical values is obtained by secret calculation and the fragments are distributed and recorded so that the result is not known, the fragments of numerical values that are not known by all the secret sort devices can be distributed and recorded. In this example, the number of selected secret computing devices is two, but two or more may be used.

初期乗算手段は、初期乗算部140,…,140で構成される。初期乗算部140,…,140は、S=P×Aである数値Sの断片sk1,…,skNを秘密計算によって求め、記録部190,…,190に分散して記録する(S140)。 The initial multiplication means, the initial multiplier 140 1, ..., and a 140 N. The initial multiplication unit 140 1, ..., 140 N is, S k = P k × A k is a numerical value S k fragment s k1 of, ..., determined by the s kN secure computing, recording unit 190 1, ..., to 190 N Distributed and recorded (S140).

断片置換手段と再分散手段は、ランダム置換1と同じである。確認分散手段は、確認分散部150,…,150で構成される。確認分散部150,…,150は、k=1〜Kについて、Q=Pπ(k)である数値Qの断片qk1,…,qkNを秘密計算によって生成し、記録部190,…,190に分散して記録する(S150)。具体的には、ステップS130で選定された秘密ソート装置が作った値に基づいて、どの装置も知らない値の別の断片を作ればよい。例えば、ステップS130で選定された秘密ソート装置10が数値Pπ(k)用に生成した数値の別の断片(新しい断片)と、ステップS130で選定された秘密ソート装置10が数値Pπ(k)用に生成した数値の別の断片(新しい断片)を分散して記録する。そして、その2つの数値の和を秘密計算によって求め、結果が分からないように断片を分散して記録すれば、Q=Pπ(k)であり、かつ、全ての秘密ソート装置が知らない数値の断片を分散して記録できる。この例では、選定した秘密ソート装置を2つとしたが、ステップS130と同じように2つ以上でもかまわない。 Fragment replacement means and redispersion means are the same as random replacement 1. The confirmation dispersion means is composed of confirmation dispersion units 150 1 ,..., 150 N. The confirmation dispersion unit 150 1 ,..., 150 N generates a fragment q k1 ,..., Q kN of the numerical value Q k with Q k = Pπ (k) for k = 1 to K by a secret calculation, and a recording unit 190 1, ..., distributed and recorded in 190 N (S150). Specifically, another fragment having a value unknown to any device may be created based on the value created by the secret sort device selected in step S130. For example, the secret sort device 10 i selected in step S130 generates another numerical value (new fragment) generated for the numerical value P π (k) , and the secret sort device 10 j selected in step S130 has the numerical value P π. (K) Another piece of the numerical value generated for (a new piece) is distributed and recorded. Then, if the sum of the two numerical values is obtained by secret calculation and the fragments are distributed and recorded so that the result is not known, Q k = P π (k) and all the secret sort devices do not know Numeric fragments can be distributed and recorded. In this example, two secret sort devices are selected, but two or more secret sort devices may be used as in step S130.

確認乗算手段は、確認乗算部160,…,160で構成される。確認乗算部160,…,160は、T=Q×Bである数値Tの断片tk1,…,tkNを秘密計算によって求め、記録部190,…,190に分散して記録する(S160)。 Check multiplying means, check multiplying unit 160 1, ..., and a 160 N. Check multiplying unit 160 1, ..., 160 N is, T k = Q k × B k is a numerical value T k fragment t k1 of, ..., determined by the t kN secure computing, recording unit 190 1, ..., to 190 N Distributed and recorded (S160).

改ざん検出手段は、改ざん検出部170,…,170で構成される。改ざん検出部170,…,170は、k=1〜Kについて、T=Sπ(k)であることを確認する(S170)。tkn≠sπ(k)nの場合には、改ざんがあったとして異常終了する。また、数値B,…,Bを新しい数値A,…,Aとし、選択手段で選択する秘密ソート装置の組み合わせを変更すれば、この処理を繰り返すことができる(S111,S112)。 Tampering detection means, the falsification detection unit 170 1, ..., and a 170 N. The tampering detection units 170 1 ,..., 170 N confirm that T k = S π (k) for k = 1 to K (S 170). In the case of t kn ≠ s π (k) n , it is terminated abnormally because tampering has occurred. In addition, if the numerical values B 1 ,..., BK are changed to new numerical values A 1 ,..., AK and the combination of the secret sort devices selected by the selection means is changed, this process can be repeated (S111, S112).

[その他の秘密計算]
ここでは、秘密ソートシステムが3個の秘密ソート装置で構成された場合の秘密計算の例を示す。また、秘密ソート装置10,10,10の番号を固定する必要はないので、秘密ソート装置10α,10β,10γと表現することにする。つまり、(α,β,γ)は、(1,2,3)、(2,3,1)、(3,1,2)のいずれかである。
[Other secret calculations]
Here, an example of secret calculation in the case where the secret sort system is composed of three secret sort devices is shown. Further, since it is not necessary to fix the numbers of the secret sort devices 10 1 , 10 2 , and 10 3 , the secret sort devices 10 α , 10 β , and 10 γ are expressed. That is, (α, β, γ) is any one of (1, 2, 3), (2, 3, 1), and (3, 1, 2).

以下の秘密計算では、秘密ソート装置10α,10β,10γが分散して記録する数値Aの断片を(aγα,aαβ)、(aαβ,aβγ)、(aβγ,aγα)、数値Bの断片を(bγα,bαβ)、(bαβ,bβγ)、(bβγ,bγα)、数値Cの断片を(cγα,cαβ)、(cαβ,cβγ)、(cβγ,cγα)とする。なお、以下の説明では、Wを2以上のあらかじめ定めた整数とし、計算結果はWで除した余りである。言い換えると、以下の説明の計算式では“mod W”を省略している。 In the following secret calculation, fragments of the numerical value A recorded by the secret sorting devices 10 α , 10 β , 10 γ are recorded as (a γα , a αβ ), (a αβ , a βγ ), (a βγ , a γα. ), The fragments of the numerical value B are (b γα , b αβ ), (b αβ , b βγ ), (b βγ , b γα ), the fragments of the numerical value C are (c γα , c αβ ), (c αβ , c βγ). ), (C βγ , c γα ). In the following description, W is a predetermined integer of 2 or more, and the calculation result is a remainder obtained by dividing by W. In other words, “mod W” is omitted in the calculation formula described below.

数値Aの秘密分散
(1)乱数aαβ,aβγを生成する。
(2)aγα=A−aαβ−aβγを計算し、断片を(aγα,aαβ)、(aαβ,aβγ)、(aβγ,aγα)とし、秘密ソート装置10α,10β,10γに分散して記録する。
Secret sharing of numerical value A (1) Random numbers a αβ and a βγ are generated.
(2) a γα = computes the A-a αβ -a βγ, the fragment (a γα, a αβ), (a αβ, a βγ), and (a βγ, a γα), the secret sorting device 10 alpha, Record in a dispersed manner at 10 β and 10 γ .

数値Aの復元
(1)秘密ソート装置10αは秘密ソート装置10βにaγαを送信し、秘密ソート装置10γにaαβを送信する。秘密ソート装置10βは秘密ソート装置10γにaαβを送信し、秘密ソート装置10αにaβγを送信する。秘密ソート装置10γは秘密ソート装置10αにaβγを送信し、秘密ソート装置10βにaγαを送信する。
(2)秘密ソート装置10αは秘密ソート装置10βから受信したaβγと秘密ソート装置10γから受信したaβγとが一致していれば、aαβ+aβγ+aγαを計算して数値Aを復元する。秘密ソート装置10βは秘密ソート装置10γから受信したaγαと秘密ソート装置10αから受信したaγαとが一致していれば、aαβ+aβγ+aγαを計算して数値Aを復元する。秘密ソート装置10γは秘密ソート装置10αから受信したaαβと秘密ソート装置10βから受信したaαβとが一致していれば、aαβ+aβγ+aγαを計算して数値Aを復元する。
Restoring numbers A (1) Secret sorting device 10 alpha sends a Ganmaarufa secret sorting device 10 beta, and transmits the a .alpha..beta secret sorting apparatus 10 gamma. The secret sort device 10 β transmits a αβ to the secret sort device 10 γ , and transmits a βγ to the secret sort device 10 α . The secret sort device 10 γ transmits a βγ to the secret sort device 10 α , and transmits a γα to the secret sort device 10 β .
(2) If the secret sorter 10 alpha they match and the a [beta] [gamma] received a [beta] [gamma] and from a secret sorter 10 gamma received from the secret sorter 10 beta, numerical by calculating a αβ + a βγ + a γα A To restore. The secret sorter 10 beta they match and the a Ganmaarufa received a Ganmaarufa and from a secret sorter 10 alpha received from the secret sorter 10 gamma, restores the numeric A by calculating a αβ + a βγ + a γα . The secret sorter 10 gamma they match and the a .alpha..beta received a .alpha..beta and from a secret sorter 10 beta received from the secret sorter 10 alpha, restores the numeric A by calculating a αβ + a βγ + a γα .

C=A+Bの秘密計算
(1)秘密ソート装置10αは(cγα,cαβ)=(aγα+bγα,aαβ+bαβ)を計算して記録し、秘密ソート装置10βは(cαβ,cβγ)=(aαβ+bαβ,aβγ+bβγ)を計算して記録し、秘密ソート装置10γは(cβγ,cγα)=(aβγ+bβγ,aγα+bγα)を計算して記録する。
C = A + B secret calculation (1) The secret sort device 10 α calculates and records (c γα , c αβ ) = (a γα + b γα , a αβ + b αβ ), and the secret sort device 10 β (c αβ , C βγ ) = (a αβ + b αβ , a βγ + b βγ ), and the secret sort apparatus 10 γ calculates (c βγ , c γα ) = (a βγ + b βγ , a γα + b γα ). And record.

C=A−Bの秘密計算
(1)秘密ソート装置10αは(cγα,cαβ)=(aγα−bγα,aαβ−bαβ)を計算して記録し、秘密ソート装置10βは(cαβ,cβγ)=(aαβ−bαβ,aβγ−bβγ)を計算して記録し、秘密ソート装置10γは(cβγ,cγα)=(aβγ−bβγ,aγα−bγα)を計算して記録する。
C = A−B secret calculation (1) The secret sort device 10 α calculates and records (c γα , c αβ ) = (a γα -b γα , a αβ -b αβ ), and the secret sort device 10 β (C αβ , c βγ ) = (a αβ −b αβ , a βγ −b βγ ) is calculated and recorded, and the secret sort device 10 γ is (c βγ , c γα ) = (a βγ −b βγ , aγα− bγα ) is calculated and recorded.

C=A+Sの秘密計算(ただし、Sは既知の定数)
(1)秘密ソート装置10αは(cγα,cαβ)=(aγα+S,aαβ)を計算して記録し、秘密ソート装置10γは(cβγ,cγα)=(aβγ,aγα+S)を計算して記録する。秘密ソート装置10βの処理はない。
Secret calculation of C = A + S (where S is a known constant)
(1) The secret sort device 10 α calculates and records (c γα , c αβ ) = (a γα + S, a αβ ), and the secret sort device 10 γ has (c βγ , c γα ) = (a βγ , a γα + S) is calculated and recorded. There is no processing of the secret sort device 10β .

C=ASの秘密計算(ただし、Sは既知の定数)
(1)秘密ソート装置10αは(cγα,cαβ)=(aγαS,aαβS)を計算して記録し、秘密ソート装置10βは(cαβ,cβγ)=(aαβS,aβγS)を計算して記録し、秘密ソート装置10γは(cβγ,cγα)=(aβγS,aγαS)を計算して記録する。
C = AS secret calculation (where S is a known constant)
(1) The secret sort device 10 α calculates and records (c γα , c αβ ) = (a γα S, a αβ S), and the secret sort device 10 β has (c αβ , c βγ ) = (a αβ S, a βγ S) is calculated and recorded, and the secret sort apparatus 10 γ calculates and records (c βγ , c γα ) = (a βγ S, a γα S).

C=ABの秘密計算
(1)秘密ソート装置10αは、乱数r,r,cγαを生成し、cαβ=(aγα+aαβ)(bγα+bαβ)−r−r−cγαを計算する。そして、秘密ソート装置10αは、秘密ソート装置10βに(r,cαβ)を、秘密ソート装置10γに(r,cγα)を送信する。
(2)秘密ソート装置10βは、y=aαββγ+aβγαβ+rを計算し、秘密ソート装置10γに送信する。
(3)秘密ソート装置10γは、z=aβγγα+aγαβγ+rを計算し、秘密ソート装置10αに送信する。
(4)秘密ソート装置10βと秘密ソート装置10γは、それぞれcβγ=y+z+aβγβγを計算する。
(5)秘密ソート装置10αは(cγα,cαβ)を記録し、秘密ソート装置10βは(cαβ,cβγ)を記録し、秘密ソート装置10γは(cβγ,cγα)を記録する。
C = AB Secret Calculation (1) The secret sort device 10 α generates random numbers r 1 , r 2 , c γα , and c αβ = (a γα + a αβ ) (b γα + b αβ ) −r 1 −r 2 -C Calculate γα . Then, the secret sorting device 10 alpha is the secret sorting apparatus 10 beta a (r 1, c αβ), and transmits the secret sorting apparatus 10 gamma a (r 2, c γα).
(2) The secret sort device 10 β calculates y = a αβ b βγ + a βγ b αβ + r 1 and transmits it to the secret sort device 10 γ .
(3) The secret sort device 10 γ calculates z = a βγ b γα + a γα b βγ + r 2 and transmits it to the secret sort device 10 α .
(4) The secret sort device 10 β and the secret sort device 10 γ calculate c βγ = y + z + a βγ b βγ , respectively.
(5) The secret sort device 10 α records (c γα , c αβ ), the secret sort device 10 β records (c αβ , c βγ ), and the secret sort device 10 γ is (c βγ , c γα ). Record.

ビットAの否定(C=1−A)の秘密計算
秘密ソート装置10α
(cγα,cαβ)=(1−aγα,−aαβ mod W)
を計算して記録し、秘密ソート装置10β
(cαβ,cβγ)=(−aαβ mod W,−aβγ mod W)
を計算して記録し、秘密ソート装置10γ
(cβγ,cγα)=(−aβγ mod W,1−aγα
を計算して記録する。
Secret calculation of negation of bit A (C = 1−A) The secret sort device 10 α is (c γα , c αβ ) = (1−a γα , −a αβ mod W).
Is calculated and recorded, and the secret sort device 10 β is (c αβ , c βγ ) = (− a αβ mod W, −a βγ mod W)
Is calculated and recorded, and the secret sort device 10 γ is (c βγ , c γα ) = (− a βγ mod W, 1−a γα ).
Calculate and record.

ビットの論理積(C=A∧B=AB)の秘密計算
秘密ソート装置10α,10β,10γは、整数の乗算(C=AB mod W)の秘密計算と同じ処理を行う。
Secure computing <br/> secret sorter 10-bit logical product (C = A∧B = AB) α , 10 β, is 10 gamma, the same processing as secure computing integer multiplication (C = AB mod W) Do.

ビットの論理和(C=A∨B=A+B−AB)の秘密計算
(1)秘密ソート装置10α,10β,10γは、整数の加算(C=A+B mod W)の秘密計算と同じ処理を行い、C’=A+Bの結果として、秘密ソート装置10αが断片(cγα’,cαβ’)を、秘密ソート装置10βが断片(cαβ’,cβγ’)を、秘密ソート装置10γが断片(cβγ’,cγα’)を記録する。また、秘密ソート装置10α,10β,10γは、整数の乗算(C=AB mod W)の秘密計算と同じ処理を行い、C”=ABの結果として、秘密ソート装置10αが断片(cγα”,cαβ”)を、秘密ソート装置10βが断片(cαβ”,cβγ”)を、秘密ソート装置10γが断片(cβγ”,cγα”)を記録する。
(2)秘密ソート装置10α,10β,10γは、S=−1として整数の乗算(C=AS mod W)の秘密計算(ただし、Sは既知の定数)と同じ処理を行い、C’’’=−C”の結果として、秘密ソート装置10αが断片(cγα’’’,cαβ’’’)を、秘密ソート装置10βが断片(cαβ’’’,cβγ’’’)を、秘密ソート装置10γが断片(cβγ’’’,cγα’’’)を記録する。
(3)秘密ソート装置10α,10β,10γは、整数の加算(C=A+B mod W)の秘密計算と同じ処理を行い、C=C’+C’’’の結果として、秘密ソート装置10αが断片(cγα,cαβ)を、秘密ソート装置10βが断片(cαβ,cβγ)を、秘密ソート装置10γが断片(cβγ,cγα)を記録する。
Secret calculation of logical OR of bits (C = A∨B = A + B−AB) (1) The secret sort devices 10 α , 10 β , 10 γ are the same processing as the secret calculation of integer addition (C = A + B mod W) As a result of C ′ = A + B, the secret sort device 10 α uses the fragment (c γα ′, c αβ ′), the secret sort device 10 β uses the fragment (c αβ ′, c βγ ′), and the secret sort device 10 γ records the fragment (c βγ ′, c γα ′). The secret sort devices 10 α , 10 β , 10 γ perform the same processing as the secret calculation of integer multiplication (C = AB mod W), and as a result of C ″ = AB, the secret sort device 10 α is a fragment ( c γα ″, c αβ ″), the secret sort device 10 β records the fragment (c αβ ″, c βγ ″), and the secret sort device 10 γ records the fragment (c βγ ″, c γα ″).
(2) The secret sort devices 10 α , 10 β , 10 γ perform the same processing as the secret calculation (where S is a known constant) of integer multiplication (C = AS mod W) with S = -1. As a result of '''=-C'', the secret sort device 10 α is a fragment (c γα ''', c αβ '''), and the secret sort device 10 β is a fragment (c αβ ''', c βγ '''), The secret sort device 10 γ records the fragments (c βγ ′ ″, c γα ′ ″).
(3) The secret sort devices 10 α , 10 β , 10 γ perform the same process as the secret calculation of addition of integers (C = A + B mod W), and as a result of C = C ′ + C ′ ″, the secret sort device 10 α records the fragment (c γα , c αβ ), the secret sort device 10 β records the fragment (c αβ , c βγ ), and the secret sort device 10 γ records the fragment (c βγ , c γα ).

ビットの排他的論理和(C=A[∨]B=A+B−2AB)の秘密計算
(1)秘密ソート装置10α,10β,10γは、整数の加算(C=A+B mod W)の秘密計算と同じ処理を行い、C’=A+Bの結果として、秘密ソート装置10αが断片(cγα’,cαβ’)を、秘密ソート装置10βが断片(cαβ’,cβγ’)を、秘密ソート装置10γが断片(cβγ’,cγα’)を記録する。また、秘密ソート装置10α,10β,10γは、整数の乗算(C=AB mod W)の秘密計算と同じ処理を行い、C”=ABの結果として、秘密ソート装置10αが断片(cγα”,cαβ”)を、秘密ソート装置10βが断片(cαβ”,cβγ”)を、秘密ソート装置10γが断片(cβγ”,cγα”)を記録する。
(2)秘密ソート装置10α,10β,10γは、S=−2として整数の乗算(C=AS mod W)の秘密計算(ただし、Sは既知の定数)の秘密計算と同じ処理を行い、C’’’=−2C”の結果として、秘密ソート装置10αが断片(cγα’’’,cαβ’’’)を、秘密ソート装置10βが断片(cαβ’’’,cβγ’’’)を、秘密ソート装置10γが断片(cβγ’’’,cγα’’’)を記録する。
(3)秘密ソート装置10α,10β,10γは、整数の加算(C=A+B mod W)の秘密計算と同じ処理を行い、C=C’+C’’’の結果として、秘密ソート装置10αが断片(cγα,cαβ)を、秘密ソート装置10βが断片(cαβ,cβγ)を、秘密ソート装置10γが断片(cβγ,cγα)を記録する。
Secret calculation of exclusive OR of bits (C = A [∨] B = A + B−2AB) (1) Secret sort devices 10 α , 10 β , 10 γ are secrets of integer addition (C = A + B mod W) The same processing as the calculation is performed, and as a result of C ′ = A + B, the secret sort device 10 α uses the fragment (c γα ′, c αβ ′), and the secret sort device 10 β uses the fragment (c αβ ′, c βγ ′). The secret sort device 10 γ records the fragment (c βγ ′, c γα ′). The secret sort devices 10 α , 10 β , 10 γ perform the same processing as the secret calculation of integer multiplication (C = AB mod W), and as a result of C ″ = AB, the secret sort device 10 α is a fragment ( c γα ″, c αβ ″), the secret sort device 10 β records the fragment (c αβ ″, c βγ ″), and the secret sort device 10 γ records the fragment (c βγ ″, c γα ″).
(2) The secret sort devices 10 α , 10 β , and 10 γ perform the same processing as the secret calculation of an integer multiplication (C = AS mod W) with S = -2 (where S is a known constant). As a result of C ″ ′ = − 2C ″, the secret sort device 10 α is a fragment (c γα ′ ″, c αβ ′ ″), and the secret sort device 10 β is a fragment (c αβ ′ ″, c βγ ′ ″), and the secret sort device 10 γ records the fragments (c βγ ′ ″, c γα ′ ″).
(3) The secret sort devices 10 α , 10 β , 10 γ perform the same process as the secret calculation of addition of integers (C = A + B mod W), and as a result of C = C ′ + C ′ ″, the secret sort device 10 α records the fragment (c γα , c αβ ), the secret sort device 10 β records the fragment (c αβ , c βγ ), and the secret sort device 10 γ records the fragment (c βγ , c γα ).

ビットA(n),n=0,…,N−1の整数変換の秘密計算
ビットA(n)の整数変換とは、
Secret calculation of integer conversion of bits A (n), n = 0,..., N−1 Integer conversion of bits A (n) is

Figure 0005480828
Figure 0005480828

を求めることである。また、秘密ソート装置10α,10β,10γが分散して記録するビットA(n)の断片を(a(n)γα,a(n)αβ)、(a(n)αβ,a(n)βγ)、(a(n)βγ,a(n)γα)とする。秘密ソート装置10αは、 Is to seek. Further, the fragments of the bits A (n) recorded by the secret sort devices 10 α , 10 β , 10 γ in a distributed manner are represented as (a (n) γα , a (n) αβ ), (a (n) αβ , a ( n) βγ ), (a (n) βγ , a (n) γα ). The secret sort device 10 α

Figure 0005480828
Figure 0005480828

を計算して記録し、秘密ソート装置10βThe secret sort device 10 β is calculated and recorded

Figure 0005480828
Figure 0005480828

を計算して記録し、秘密ソート装置10γThe secret sort device 10 γ is calculated and recorded as

Figure 0005480828
Figure 0005480828

を計算して記録する。 Calculate and record.

Nビットの整数Aの二進数変換の秘密計算
x(n)は、xの下位n+1番目のビットを示すものとする。
(1)n=0からN−1について、秘密ソート装置10βが(aαβ+aβγ mod W)(n)を秘密分散し、秘密ソート装置10α,10β,10γが(aαβ+aβγ mod W)(n)の断片(b(n)γα,b(n)αβ)、(b(n)αβ,b(n)βγ)、(b(n)βγ,b(n)γα)を分散して記録する。n=0からN−1について、秘密ソート装置10γが(aγα)(n)を秘密分散し、秘密ソート装置10α,10β,10γが(aγα)(n)の断片((aγα)(n)γα,(aγα)(n)αβ)、((aγα)(n)αβ,(aγα)(n)βγ)、((aγα)(n)βγ,(aγα)(n)γα)を分散して記録する。
(2)cγα=0とし、n=0からN−1について(2−1)から(2−3)の処理を繰返し実行する。
(2−1)d=b(n)+(aγα)(n)−2b(n)(aγα)(n)
の秘密計算を実行し、dの断片を分散して記録する。
(2−2)a(n)=d+c−2d
の秘密計算を実行し、a(n)の断片を分散して記録する。
(2−3)n<N−1であれば、
n+1=b(n)(aγα)(n)+d−b(n)(aγα)(n)d
の秘密計算を実行し、cn+1の断片を分散して記録する。
The secret calculation x (n) of the binary conversion of the N-bit integer A shall indicate the lower n + 1th bit of x.
(1) For n = 0 to N−1, the secret sort device 10 β secretly distributes (a αβ + a βγ mod W) (n), and the secret sort devices 10 α , 10 β , 10 γ are (a αβ + a βγ mod W) (n) fragments (b (n) γα , b (n) αβ ), (b (n) αβ , b (n) βγ ), (b (n) βγ , b (n) γα ) Are distributed and recorded. For n = 0 to N−1, the secret sort device 10 γ secretly distributes (a γα ) (n), and the secret sort devices 10 α , 10 β , 10 γ are fragments of (a γα ) (n) (( aγα ) (n) γα , ( aγα ) (n) αβ ), (( aγα ) (n) αβ , ( aγα ) (n) βγ ), (( aγα ) (n) βγ , (a γα ) (n) γα ) are dispersed and recorded.
(2) c γα = 0, and the processes from (2-1) to (2-3) are repeatedly executed for n = 0 to N-1.
(2-1) d n = b (n) + (a γα ) (n) -2b (n) (a γα ) (n)
And dn fragments are distributed and recorded.
(2-2) a (n) = d n + c n -2d n c n
The secret calculation is performed and the pieces of a (n) are distributed and recorded.
(2-3) If n <N-1,
c n + 1 = b (n ) (a γα) (n) + d n c n -b (n) (a γα) (n) d n c n
And cn + 1 fragments are distributed and recorded.

[プログラム、記録媒体]
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
[Program, recording medium]
The various processes described above are not only executed in time series according to the description, but may also be executed in parallel or individually as required by the processing capability of the apparatus that executes the processes. Needless to say, other modifications are possible without departing from the spirit of the present invention.

また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。   Further, when the above-described configuration is realized by a computer, processing contents of functions that each device should have are described by a program. The processing functions are realized on the computer by executing the program on the computer.

この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。   The program describing the processing contents can be recorded on a computer-readable recording medium. As the computer-readable recording medium, for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.

また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。   The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.

このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。   A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, the computer reads a program stored in its own recording medium and executes a process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good. Note that the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).

また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。   In this embodiment, the present apparatus is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.

10,…,10 秘密ソート装置 100,…,100 秘密分散装置
105 選択手段 110,…,110 断片置換部
120,…,120 再分散部 130,…,130 初期情報分散部
140,…,140 初期乗算部 150,…,150 確認分散部
160,…,160 確認乗算部 170,…,170 改ざん検出部
190,…,190 記録部 300,…,300 ソート制御部
310 ランダム置換手段 310,…,310 ランダム置換部
320 復号手段 320,…,320 復号部
330 ソート手段 330,…,330 ソート部
340 行列生成手段 340,…,340 行列生成部
350 列ベクトル変換手段 350,…,350 列ベクトル変換部
360 列ベクトル計算手段 360,…,360 列ベクトル計算部
370 行列変換手段 370,…,370 行列変換部
380 行列計算手段 380,…,380 行列計算部
390 ソート情報計算手段 390,…,390 ソート情報計算部
1000 ネットワーク
10 1, ..., 10 N secret sorting apparatus 100 1, ..., 100 N secret sharing device 105 selecting unit 110 1, ..., 110 N fragment replacement unit 120 1, ..., 120 N redispersion unit 130 1, ..., 130 N The initial information distribution unit 140 1, ..., 140 N initial multiplier unit 0.99 1, ..., 0.99 N confirmation dispersion unit 160 1, ..., 160 N confirmation multiplying unit 170 1, ..., 170 N falsification detecting unit 190 1, ..., 190 N recording unit 300 1, ..., 300 N sort controller 310 randomly substituted means 310 1, ..., 310 N random replacement unit 320 decoding unit 320 1, ..., 320 N decoding unit 330 sorting unit 330 1, ..., 330 N sorting part 340 matrix generation unit 340 1, ..., 340 N matrix generator 350 column vector converting unit 350 1, ..., 350 N column vector Section 360 column vector calculating means 360 1, ..., 360 N column vector calculation section 370 matrix transformation means 370 1, ..., 370 N matrix conversion unit 380 matrix calculation unit 380 1, ..., 380 N matrix calculating unit 390 sorts information calculation Means 390 1 ,..., 390 N sort information calculation unit 1000 network

Claims (10)

3個以上の秘密ソート装置で構成され、M個のレコードからなる表Xの各要素が秘密分散された表[X]から、表Xのレコードを並び替えた表に対応する秘密分散された表を求める秘密ソートシステムであって、
Mは2以上の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、cは異なるM個の値を並べたものでレコード間をランダム置換してもソート後に何番目になるかを一意に決定できる情報とし、
情報[c]のM個の要素と表[X]のM個のレコードとの対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された情報[c]と表[X]を求めるランダム置換手段と、
情報[c]を復号し、情報cを求める復号手段と、
情報cが示す順番に表[X]の各レコードを並べなおし、表[X]を求めるソート手段と
を備える秘密ソートシステム。
A secret-distributed table corresponding to a table in which the records of Table X are rearranged from the table [X] that is composed of three or more secret sort devices and each element of Table X consisting of M records is secret-distributed A secret sorting system for
M is an integer of 2 or more, [] is a symbol indicating information in which information in parentheses is secretly distributed for each element, c is a sequence of different M values, and what is after sorting even if random replacement is performed between records Information that can uniquely determine whether
While maintaining the correspondence between the M elements of the information [c] and the M records of the table [X], the records are randomly replaced by secret calculation, and the randomly replaced information [c R ] and the table [X R A random replacement means for obtaining
Decoding means for decoding information [c R ] and obtaining information c R ;
A secret sorting system comprising: sorting means for rearranging the records of the table [X R ] in the order indicated by the information c R and obtaining the table [X S ].
請求項1記載の秘密ソートシステムであって、
k、Dは整数、dは1以上D以下の整数、mは1以上M以下の整数、x,…,xは表Xのレコード、y,…,yはソートしたい順序y<…<yが定義されたD種類の値、x(k)はレコードxのk番目のデータでありy,…,yのいずれかの値、aはx(k)の値、表[X]はレコードxのk番目のデータの値に基づいて昇順となるようにソートされるとし、
さらに、
=yならばHmd=1、a≠yならばHmd=0であるHmdをm行d列の要素とするM行D列の行列[H]を生成する行列生成手段と、
行列[H]の各列を左の列から順に上から下に縦につなげて要素数MDの列ベクトル[h]を求める列ベクトル変換手段と、
i番目の要素が、列ベクトル[h]の1番目の要素からi番目の要素までの和である列ベクトル[u]を、秘密計算で求める列ベクトル計算手段と、
列ベクトル[u]をM要素ごとに分割してD個の列ベクトルを左から順に並べたM行D列の行列[G]を生成する行列変換手段と、
行列[G]と行列[H]の要素ごとの積を要素とするM行D列の行列[E]を、秘密計算で求める行列計算手段と、
行列[E]の行ごとの要素の総和を秘密計算で求め、前記総和を要素として行の順番に並べた情報を前記情報[c]とするソート情報計算手段と、
を備える秘密ソートシステム。
The secret sorting system according to claim 1,
k, D is an integer, d is 1 or more D an integer, m is an integer of 1 to M, x 1, ..., x M Table X records, y 1, ..., y D is the sequence y 1 to be sorted <... <D type D value in which D is defined, x m (k) is the k-th data of the record x m , and any value of y 1 ,..., Y D , a m is x m (k value of) the table [X] is to be sorted so that the ascending order based on the value of the k-th data record x m,
further,
a m = y d if H md = 1, a m ≠ y matrix of M rows D column the d if H md = 0 a is H md the elements of m rows d column matrix generating for generating a [H] Means,
Column vector conversion means for determining the column vector [h] of the number of elements MD by connecting the columns of the matrix [H] vertically from top to bottom in order from the left column;
column vector calculation means for obtaining a column vector [u] in which the i-th element is the sum from the first element to the i-th element of the column vector [h] by secret calculation;
Matrix conversion means for dividing the column vector [u] into M elements and generating a matrix [G] of M rows and D columns in which D column vectors are arranged in order from the left;
Matrix calculation means for obtaining a matrix [E] of M rows and D columns having a product of each element of the matrix [G] and the matrix [H] as an element by secret calculation;
Sort information calculation means that obtains the sum of elements for each row of the matrix [E] by secret calculation, and sets the information [c] as information arranged in the order of rows using the sum as an element;
Secret sorting system with
請求項1記載の秘密ソートシステムであって、
k、B、Dは整数、bは1以上B以下の整数、dは1以上D以下の整数、mは1以上M以下の整数、x,…,xは表Xのレコード、x(k)はレコードxのk番目のデータでありB桁のD進数の値、abmはx(k)の下位からb桁目の値、表[X]はレコードxのk番目のデータの値に基づいて昇順となるようにソートされるとし、
さらに、
bm=d−1ならばHmd=1、abm≠d−1ならばHmd=0であるHmdをm行d列の要素とするM行D列の行列[H]を生成する行列生成手段と、
行列[H]の各列を左の列から順に上から下に縦につなげて要素数MDの列ベクトル[h]を求める列ベクトル変換手段と、
i番目の要素が、列ベクトル[h]の1番目の要素からi番目の要素までの和である列ベクトル[u]を、秘密計算で求める列ベクトル計算手段と、
列ベクトル[u]をM要素ごとに分割してD個の列ベクトルを左から順に並べたM行D列の行列[G]を生成する行列変換手段と、
行列[G]と行列[H]の要素ごとの積を要素とするM行D列の行列[E]を、秘密計算で求める行列計算手段と、
行列[E]の行ごとの要素の総和を秘密計算で求め、前記総和を要素として行の順番に並べた情報を前記情報[c]とするソート情報計算手段と、
を備え、
前記行列生成手段、前記列ベクトル変換手段、前記列ベクトル計算手段、前記行列変換手段、前記行列計算手段、前記ソート情報計算手段、前記ランダム置換手段、前記復号手段、前記ソート手段の処理を、前記ソート手段が求めた表[X]を次のソートの対象の表[X]としながら、b=1からb=Bまで繰り返す
ことを特徴とする秘密ソートシステム。
The secret sorting system according to claim 1,
k, B, D are integers, b is an integer from 1 to B, d is an integer from 1 to D, m is an integer from 1 to M, x 1 ,..., x M is a record in Table X, x m (K) is the k-th data of the record x m and is the B-digit D-ary value, a bm is the value of the b-th digit from the lower order of x m (k), and the table [X] is the k-th value of the record x m Sorted in ascending order based on the data value of,
further,
If a bm = d−1, H md = 1, and if a bm ≠ d−1, then H md = 0. Generate an M row D column matrix [H] with H md as an element of m rows d columns. Matrix generating means;
Column vector conversion means for determining the column vector [h] of the number of elements MD by connecting the columns of the matrix [H] vertically from top to bottom in order from the left column;
column vector calculation means for obtaining a column vector [u] in which the i-th element is the sum from the first element to the i-th element of the column vector [h] by secret calculation;
Matrix conversion means for dividing the column vector [u] into M elements and generating a matrix [G] of M rows and D columns in which D column vectors are arranged in order from the left;
Matrix calculation means for obtaining a matrix [E] of M rows and D columns having a product of each element of the matrix [G] and the matrix [H] as an element by secret calculation;
Sort information calculation means that obtains the sum of elements for each row of the matrix [E] by secret calculation, and sets the information [c] as information arranged in the order of rows using the sum as an element;
With
Processing of the matrix generation means, the column vector conversion means, the column vector calculation means, the matrix conversion means, the matrix calculation means, the sort information calculation means, the random replacement means, the decoding means, and the sort means, The secret sort system characterized by repeating from b = 1 to b = B while using the table [X S ] obtained by the sorting means as the next sort target table [X].
請求項1記載の秘密ソートシステムであって、
Bは整数、k,…,kとD,…,Dは整数、bは1以上B以下の整数、dは1以上D以下の整数、mは1以上M以下の整数、x,…,xは表Xのレコード、y(1),…,y(D)はソートしたい順序y(1)<…<y(D)が定義されたD種類の値、x(k)はレコードxのk番目のデータでありy(1),…,y(D)のいずれかの値、abmはx(k)の値、表[X]はBが大きい方を優先してレコードxのk番目からk番目のデータの値に基づいて昇順となるようにソートされるとし、
さらに、
bm=y(d)ならばm行d列の要素を1、abm≠y(d)ならばm行d列の要素を0とするM行D列の行列[H]を生成する行列生成手段と、
行列[H]の各列を左の列から順に上から下に縦につなげて要素数MDの列ベクトル[h]を求める列ベクトル変換手段と、
i番目の要素が、列ベクトル[h]の1番目の要素からi番目の要素までの和である列ベクトル[u]を、秘密計算で求める列ベクトル計算手段と、
列ベクトル[u]をM要素ごとに分割してD個の列ベクトルを左から順に並べたM行D列の行列[G]を生成する行列変換手段と、
行列[G]と行列[H]の要素ごとの積を要素とするM行D列の行列[E]を、秘密計算で求める行列計算手段と、
行列[E]の行ごとの要素の総和を秘密計算で求め、前記総和を要素として行の順番に並べた情報を前記情報[c]とするソート情報計算手段と、
を備え、
前記行列生成手段、前記列ベクトル変換手段、前記列ベクトル計算手段、前記行列変換手段、前記行列計算手段、前記ソート情報計算手段、前記ランダム置換手段、前記復号手段、前記ソート手段の処理を、前記ソート手段が求めた表[X]を次のソートの対象の表[X]としながら、b=1からb=Bまで繰り返す
ことを特徴とする秘密ソートシステム。
The secret sorting system according to claim 1,
B is an integer, k 1, ..., k B and D 1, ..., D B is an integer, b is 1 or more B an integer, d b is 1 or more D b an integer, m is an integer of 1 to M , x 1, ..., x M Table X records, y b (1), ... , y b (D b) the order y b (1) to be sorted <... <y b (D b ) is defined The value of D b type, x m (k b ) is the k b th data of record x m and is one of y b (1),..., Y b (D b ), a bm is x m ( The value of k b ), table [X] is sorted in ascending order based on the values of the k 1 th to k B th data of the record x m giving priority to the larger B,
further,
A matrix of M rows and D b columns where the element of m rows and d b columns is 1 if a bm = y b (d b ), and the elements of m rows and d b columns are 0 if a bm ≠ y b (d b ). Matrix generating means for generating [H];
And a column vector conversion means for obtaining a column vector of concatenated longitudinally number of elements MD b [h] from top to bottom of each column from the left column in the order of the matrix [H],
column vector calculation means for obtaining a column vector [u] in which the i-th element is the sum from the first element to the i-th element of the column vector [h] by secret calculation;
Matrix conversion means for dividing the column vector [u] into M elements and generating a matrix [G] of M rows and D b columns in which D column vectors are arranged in order from the left;
Matrix calculation means for obtaining a matrix [E] of M rows and D b columns having a product of each element of the matrix [G] and the matrix [H] as an element by secret calculation;
Sort information calculation means that obtains the sum of elements for each row of the matrix [E] by secret calculation, and sets the information [c] as information arranged in the order of rows using the sum as an element;
With
Processing of the matrix generation means, the column vector conversion means, the column vector calculation means, the matrix conversion means, the matrix calculation means, the sort information calculation means, the random replacement means, the decoding means, and the sort means, The secret sort system characterized by repeating from b = 1 to b = B while using the table [X S ] obtained by the sorting means as the next sort target table [X].
M個のレコードからなる表Xの各要素が秘密分散された表[X]から、表Xのレコードを並び替えた表に対応する秘密分散された表を求める3個以上の秘密ソート装置で構成される秘密ソートシステムの中の秘密ソート装置であって、
Mは2以上の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、cは異なるM個の値を並べたものでレコード間をランダム置換してもソート後に何番目になるかを一意に決定できる情報とし、
情報[c]のM個の要素と表[X]のM個のレコードとの対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された情報[c]と表[X]を求めるためのランダム置換部と、
情報[c]を復号し、情報cを求めるための復号部と、
情報cが示す順番に表[X]の各レコードを並べなおし、表[X]を求めるためのソート部と
を備える秘密ソート装置。
Consists of three or more secret sort devices for obtaining a secret-distributed table corresponding to a table in which the records of Table X are rearranged from a table [X] in which each element of Table X consisting of M records is secretly distributed A secret sorting device in a secret sorting system,
M is an integer of 2 or more, [] is a symbol indicating information in which information in parentheses is secretly distributed for each element, c is a sequence of different M values, and what is after sorting even if random replacement is performed between records Information that can uniquely determine whether
While maintaining the correspondence between the M elements of the information [c] and the M records of the table [X], the records are randomly replaced by secret calculation, and the randomly replaced information [c R ] and the table [X R A random replacement part for obtaining
A decoding unit for decoding information [c R ] and obtaining information c R ;
A secret sort device comprising: a sort unit for rearranging the records of the table [X R ] in the order indicated by the information c R and obtaining the table [X S ].
3個以上の秘密ソート装置で構成され、ランダム置換手段と復号手段とソート手段とを有する秘密ソートシステムを用いて、M個のレコードからなる表Xの各要素が秘密分散された表[X]から、表Xのレコードを並び替えた表に対応する秘密分散された表を求める秘密ソート方法であって、
Mは2以上の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、cは異なるM個の値を並べたものでレコード間をランダム置換してもソート後に何番目になるかを一意に決定できる情報とし、
前記ランダム置換手段が、情報[c]のM個の要素と表[X]のM個のレコードとの対応を維持したまま秘密計算でレコード間のランダム置換し、ランダム置換された情報[c]と表[X]を求めるランダム置換ステップと、
前記復号手段が、情報[c]を復号し、情報cを求める復号ステップと、
前記ソート手段が、情報cが示す順番に表[X]の各レコードを並べなおし、表[X]を求めるソートステップと
を有する秘密ソート方法。
A table [X] in which each element of the table X composed of M records is secretly distributed using a secret sort system including three or more secret sort devices and having random replacement means, decryption means, and sort means . A secret sorting method for obtaining a secret-distributed table corresponding to a table in which the records of Table X are rearranged,
M is an integer of 2 or more, [] is a symbol indicating information in which information in parentheses is secretly distributed for each element, c is a sequence of different M values, and what is after sorting even if random replacement is performed between records Information that can uniquely determine whether
The random replacement means performs random replacement between records by secret calculation while maintaining the correspondence between the M elements of the information [c] and the M records of the table [X], and randomly replaces the information [c R And a table [X R ] to obtain a random replacement step;
A decoding step in which the decoding means decodes information [c R ] to obtain information c R ;
A sorting method in which the sorting means has a sorting step of rearranging the records of the table [X R ] in the order indicated by the information c R to obtain the table [X S ].
請求項6記載の秘密ソート方法であって、
k、Dは整数、dは1以上D以下の整数、mは1以上M以下の整数、x,…,xは表Xのレコード、y,…,yはソートしたい順序y<…<yが定義されたD種類の値、x(k)はレコードxのk番目のデータでありy,…,yのいずれかの値、aはx(k)の値、表[X]はレコードxのk番目のデータの値に基づいて昇順となるようにソートされるとし、
前記秘密ソートシステムはさらに、行列生成手段と列ベクトル変換手段と列ベクトル計算手段と行列変換手段と行列計算手段とソート情報計算手段とを有し、
前記行列生成手段が、=yならばHmd=1、a≠yならばHmd=0であるHmdをm行d列の要素とするM行D列の行列[H]を生成する行列生成ステップと、
前記列ベクトル変換手段が、行列[H]の各列を左の列から順に上から下に縦につなげて要素数MDの列ベクトル[h]を求める列ベクトル変換ステップと、
前記列ベクトル計算手段が、i番目の要素が、列ベクトル[h]の1番目の要素からi番目の要素までの和である列ベクトル[u]を、秘密計算で求める列ベクトル計算ステップと、
前記行列変換手段が、列ベクトル[u]をM要素ごとに分割してD個の列ベクトルを左から順に並べたM行D列の行列[G]を生成する行列変換ステップと、
前記行列計算手段が、行列[G]と行列[H]の要素ごとの積を要素とするM行D列の行列[E]を、秘密計算で求める行列計算ステップと、
前記ソート情報計算手段が、行列[E]の行ごとの要素の総和を秘密計算で求め、前記総和を要素として行の順番に並べた情報を前記情報[c]とするソート情報計算ステップと、
を有する秘密ソート方法。
The secret sorting method according to claim 6,
k, D is an integer, d is 1 or more D an integer, m is an integer of 1 to M, x 1, ..., x M Table X records, y 1, ..., y D is the sequence y 1 to be sorted <... <D type D value in which D is defined, x m (k) is the k-th data of the record x m , and any value of y 1 ,..., Y D , a m is x m (k value of) the table [X] is to be sorted so that the ascending order based on the value of the k-th data record x m,
The secret sort system further includes matrix generation means, column vector conversion means, column vector calculation means, matrix conversion means, matrix calculation means, and sort information calculation means,
The matrix generation unit, a m = y d if H md = 1, a m ≠ y d if H md = 0 a is H md a matrix of M rows D columns having elements of m rows d column [H A matrix generation step for generating
The column vector conversion means, and a column vector conversion step of obtaining a column vector [h] of connecting longitudinally number of elements MD from top to bottom in this order from the column to the left column of the matrix [H],
A column vector calculating step in which the column vector calculating means obtains a column vector [u] whose i-th element is a sum from the first element to the i-th element of the column vector [h] by secret calculation;
It said matrix transformation means, and a matrix conversion step of generating a column vector [u] a matrix of M rows D columns the D column vectors by dividing arranged from left to right for each M elements [G],
The matrix calculation means, the matrix [G] and the matrix a matrix of M rows row D to the product of each element of [H] Elements [E], and matrix calculation step of obtaining a secret computation,
A sort information calculation step in which the sort information calculation means obtains a sum of elements for each row of the matrix [E] by secret calculation, and sets the information [c] as information arranged in the order of rows using the sum as an element;
A secret sorting method.
請求項6記載の秘密ソート方法であって、
k、B、Dは整数、bは1以上B以下の整数、dは1以上D以下の整数、mは1以上M以下の整数、x,…,xは表Xのレコード、x(k)はレコードxのk番目のデータでありB桁のD進数の値、abmはx(k)の下位からb桁目の値、表[X]はレコードxのk番目のデータの値に基づいて昇順となるようにソートされるとし、
前記秘密ソートシステムはさらに、行列生成手段と列ベクトル変換手段と列ベクトル計算手段と行列変換手段と行列計算手段とソート情報計算手段とを有し、
前記行列生成手段が、bm=d−1ならばHmd=1、abm≠d−1ならばHmd=0であるHmdをm行d列の要素とするM行D列の行列[H]を生成する行列生成ステップと、
前記列ベクトル変換手段が、行列[H]の各列を左の列から順に上から下に縦につなげて要素数MDの列ベクトル[h]を求める列ベクトル変換ステップと、
前記列ベクトル計算手段が、i番目の要素が、列ベクトル[h]の1番目の要素からi番目の要素までの和である列ベクトル[u]を、秘密計算で求める列ベクトル計算ステップと、
前記行列変換手段が、列ベクトル[u]をM要素ごとに分割してD個の列ベクトルを左から順に並べたM行D列の行列[G]を生成する行列変換ステップと、
前記行列計算手段が、行列[G]と行列[H]の要素ごとの積を要素とするM行D列の行列[E]を、秘密計算で求める行列計算ステップと、
前記ソート情報計算手段が、行列[E]の行ごとの要素の総和を秘密計算で求め、前記総和を要素として行の順番に並べた情報を前記情報[c]とするソート情報計算ステップと、
を有し、
前記行列生成ステップ、前記列ベクトル変換ステップ、前記列ベクトル計算ステップ、前記行列変換ステップ、前記行列計算ステップ、前記ソート情報計算ステップ、前記ランダム置換ステップ、前記復号ステップ、前記ソートステップを、前記ソートステップが求めた表[X]を次のソートの対象の表[X]としながら、b=1からb=Bまで繰り返す
ことを特徴とする秘密ソート方法。
The secret sorting method according to claim 6,
k, B, D are integers, b is an integer from 1 to B, d is an integer from 1 to D, m is an integer from 1 to M, x 1 ,..., x M is a record in Table X, x m (K) is the k-th data of the record x m and is the B-digit D-ary value, a bm is the value of the b-th digit from the lower order of x m (k), and the table [X] is the k-th value of the record x m Sorted in ascending order based on the data value of,
The secret sort system further includes matrix generation means, column vector conversion means, column vector calculation means, matrix conversion means, matrix calculation means, and sort information calculation means,
The matrix generation means, the matrix of M rows row D to a bm = d-1 if H md = 1, a bm ≠ d-1 if H md = 0 at which the H md of m rows d column element A matrix generation step of generating [H];
The column vector conversion means, and a column vector conversion step of obtaining a column vector [h] of connecting longitudinally number of elements MD from top to bottom in this order from the column to the left column of the matrix [H],
A column vector calculating step in which the column vector calculating means obtains a column vector [u] whose i-th element is a sum from the first element to the i-th element of the column vector [h] by secret calculation;
It said matrix transformation means, and a matrix conversion step of generating a column vector [u] a matrix of M rows D columns the D column vectors by dividing arranged from left to right for each M elements [G],
The matrix calculation means, the matrix [G] and the matrix a matrix of M rows row D to the product of each element of [H] Elements [E], and matrix calculation step of obtaining a secret computation,
A sort information calculation step in which the sort information calculation means obtains a sum of elements for each row of the matrix [E] by secret calculation, and sets the information [c] as information arranged in the order of rows using the sum as an element;
Have
The matrix generation step, the column vector conversion step, the column vector calculation step, the matrix conversion step, the matrix calculation step, the sort information calculation step, the random replacement step, the decoding step, the sort step, the sort step, The secret sorting method is characterized by repeating from b = 1 to b = B while using the table [X S ] obtained by the above as the table [X] to be sorted next.
請求項6記載の秘密ソート方法であって、
Bは整数、k,…,kとD,…,Dは整数、bは1以上B以下の整数、dは1以上D以下の整数、mは1以上M以下の整数、x,…,xは表Xのレコード、y(1),…,y(D)はソートしたい順序y(1)<…<y(D)が定義されたD種類の値、x(k)はレコードxのk番目のデータでありy(1),…,y(D)のいずれかの値、abmはx(k)の値、表[X]はBが大きい方を優先してレコードxのk番目からk番目のデータの値に基づいて昇順となるようにソートされるとし、
前記秘密ソートシステムはさらに、行列生成手段と列ベクトル変換手段と列ベクトル計算手段と行列変換手段と行列計算手段とソート情報計算手段とを有し、
前記行列生成手段が、bm=y(d)ならばm行d列の要素を1、abm≠y(d)ならばm行d列の要素を0とするM行D列の行列[H]を生成する行列生成ステップと、
前記列ベクトル変換手段が、行列[H]の各列を左の列から順に上から下に縦につなげて要素数MDの列ベクトル[h]を求める列ベクトル変換ステップと、
前記列ベクトル計算手段が、i番目の要素が、列ベクトル[h]の1番目の要素からi番目の要素までの和である列ベクトル[u]を、秘密計算で求める列ベクトル計算ステップと、
前記行列変換手段が、列ベクトル[u]をM要素ごとに分割してD個の列ベクトルを左から順に並べたM行D列の行列[G]を生成する行列変換ステップと、
前記行列計算手段が、行列[G]と行列[H]の要素ごとの積を要素とするM行D列の行列[E]を、秘密計算で求める行列計算ステップと、
前記ソート情報計算手段が、行列[E]の行ごとの要素の総和を秘密計算で求め、前記総和を要素として行の順番に並べた情報を前記情報[c]とするソート情報計算ステップと、
を有し、
前記行列生成ステップ、前記列ベクトル変換ステップ、前記列ベクトル計算ステップ、前記行列変換ステップ、前記行列計算ステップ、前記ソート情報計算ステップ、前記ランダム置換ステップ、前記復号ステップ、前記ソートステップを、前記ソートステップが求めた表[X]を次のソートの対象の表[X]としながら、b=1からb=Bまで繰り返す
ことを特徴とする秘密ソート方法。
The secret sorting method according to claim 6,
B is an integer, k 1, ..., k B and D 1, ..., D B is an integer, b is 1 or more B an integer, d b is 1 or more D b an integer, m is an integer of 1 to M , x 1, ..., x M Table X records, y b (1), ... , y b (D b) the order y b (1) to be sorted <... <y b (D b ) is defined The value of D b type, x m (k b ) is the k b th data of record x m and is one of y b (1),..., Y b (D b ), a bm is x m ( The value of k b ), table [X] is sorted in ascending order based on the values of the k 1 th to k B th data of the record x m giving priority to the larger B,
The secret sort system further includes matrix generation means, column vector conversion means, column vector calculation means, matrix conversion means, matrix calculation means, and sort information calculation means,
M the matrix generation means, to a bm = y b (d b ) if m rows d b elements of columns 1, a bm ≠ y b ( d b) if m rows d b elements of column 0 A matrix generation step of generating a matrix [H] of row D b column;
The column vector conversion means, a matrix and a column vector conversion step of obtaining a column vector [h] of the number of elements MD b by connecting vertically down each column from top left column in order of [H],
A column vector calculating step in which the column vector calculating means obtains a column vector [u] whose i-th element is a sum from the first element to the i-th element of the column vector [h] by secret calculation;
It said matrix transformation means, and a matrix conversion step of generating a matrix of M rows D b columned D column vectors from the left by dividing the column vector [u] for each M elements [G],
The matrix calculation means, a matrix a matrix of M rows D b columns to the product of each element of [G] and the matrix [H] Elements [E], and matrix calculation step of obtaining a secret computation,
A sort information calculation step in which the sort information calculation means obtains a sum of elements for each row of the matrix [E] by secret calculation, and sets the information [c] as information arranged in the order of rows using the sum as an element;
Have
The matrix generation step, the column vector conversion step, the column vector calculation step, the matrix conversion step, the matrix calculation step, the sort information calculation step, the random replacement step, the decoding step, the sort step, the sort step, The secret sorting method is characterized by repeating from b = 1 to b = B while using the table [X S ] obtained by the above as the table [X] to be sorted next.
請求項1から4のいずれかに記載の秘密ソートシステムの各秘密ソート装置としてコンピュータを機能させるための秘密ソートプログラム。   The secret sort program for functioning a computer as each secret sort apparatus of the secret sort system in any one of Claim 1 to 4.
JP2011011753A 2011-01-24 2011-01-24 Secret sort system, secret sort device, secret sort method, secret sort program Active JP5480828B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011011753A JP5480828B2 (en) 2011-01-24 2011-01-24 Secret sort system, secret sort device, secret sort method, secret sort program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011011753A JP5480828B2 (en) 2011-01-24 2011-01-24 Secret sort system, secret sort device, secret sort method, secret sort program

Publications (2)

Publication Number Publication Date
JP2012154990A JP2012154990A (en) 2012-08-16
JP5480828B2 true JP5480828B2 (en) 2014-04-23

Family

ID=46836806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011011753A Active JP5480828B2 (en) 2011-01-24 2011-01-24 Secret sort system, secret sort device, secret sort method, secret sort program

Country Status (1)

Country Link
JP (1) JP5480828B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5961571B2 (en) * 2013-02-26 2016-08-02 日本電信電話株式会社 Secret table division apparatus and method
CN105900164B (en) * 2014-01-17 2019-03-08 日本电信电话株式会社 Secret calculation method, secure computing system, sorting plant and recording medium
JP5957126B1 (en) * 2015-06-24 2016-07-27 日本電信電話株式会社 Secret calculation device, secret calculation method, and program
JP6973629B2 (en) * 2018-04-20 2021-12-01 日本電信電話株式会社 Secret aggregation ordering system, secret computing device, secret aggregation ordering method, and program
AU2019322591B2 (en) * 2018-08-13 2021-12-23 Nippon Telegraph And Telephone Corporation Secure joining information generation system, secure joining system, methods therefor, secure computing apparatus and program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1835657B1 (en) * 2006-03-16 2014-11-12 Sap Se Methods and systems for multi-party sorting of private values

Also Published As

Publication number Publication date
JP2012154990A (en) 2012-08-16

Similar Documents

Publication Publication Date Title
JP6009697B2 (en) Secret calculation method, secret calculation system, sort device, and program
JP5957120B1 (en) Secret sharing method, secret sharing system, distribution apparatus, and program
JP5486520B2 (en) Secure set function system, secret set function device, secure set function processing method, secure set function program
US8306217B2 (en) Cryptographic processing apparatus and cryptographic processing method, and computer program
Hanis et al. Double image compression and encryption scheme using logistic mapped convolution and cellular automata
JP6095792B2 (en) Secret bit decomposition apparatus, secret modulus conversion apparatus, secret bit decomposition method, secret modulus conversion method, program
JP2020074039A (en) Method and system for encrypting data
RU2598327C2 (en) Device for cryptographic data processing, method of cryptographic data processing and program
JP5480828B2 (en) Secret sort system, secret sort device, secret sort method, secret sort program
CN110784307B (en) Lightweight cryptographic algorithm SCENERY implementation method, device and storage medium
JP7031682B2 (en) Secret calculator, system, method, program
US8812866B2 (en) Method and apparatus for storing data
CN112287333B (en) Lightweight adjustable block cipher realization method, system, electronic equipment and readable storage medium
JP6844897B2 (en) Bit decomposition secret calculator, bit join secret calculator, method and program
JP5498406B2 (en) Matching system, matching system method
Deryabin et al. Secure verifiable secret short sharing scheme for multi-cloud storage
JP5689845B2 (en) Secret calculation device, secret calculation method, and program
JP5391212B2 (en) Secure search system, secret search device, secure search method, secure search program
JP5506705B2 (en) Secret matching system, secret matching device, secret matching method, secret matching program
Jeon One-way hash function based on cellular automata
EP2651070A1 (en) Code processing device, code processing method, and program
WO2023281693A1 (en) Secure computing system, device, method, and program
WO2023281694A1 (en) Secure computation system, device, method, and program
CN111052206B (en) Secret calculation device, secret calculation method, and recording medium
KR101940553B1 (en) Present based encryption apparatus and method using substitution table with permutation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140214

R150 Certificate of patent or registration of utility model

Ref document number: 5480828

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150