JP2012154990A - 秘密ソートシステム、秘密ソート装置、秘密ソート方法、秘密ソートプログラム - Google Patents
秘密ソートシステム、秘密ソート装置、秘密ソート方法、秘密ソートプログラム Download PDFInfo
- Publication number
- JP2012154990A JP2012154990A JP2011011753A JP2011011753A JP2012154990A JP 2012154990 A JP2012154990 A JP 2012154990A JP 2011011753 A JP2011011753 A JP 2011011753A JP 2011011753 A JP2011011753 A JP 2011011753A JP 2012154990 A JP2012154990 A JP 2012154990A
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- secret
- information
- calculation
- sort
- 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.)
- Granted
Links
Images
Abstract
【解決手段】本発明の秘密ソートシステムは、3個以上の秘密ソート装置で構成され、M個のレコードからなる表Xの各要素が秘密分散された表[X]から、表Xのレコードを並び替えた表に対応する秘密分散された表を求める。本発明の秘密ソートシステムは、少なくともランダム置換手段、復号手段、ソート手段を備える。ランダム置換手段は、情報[c]と表[X]が入力され、情報[c]のM個の要素と表[X]のM個のレコードとの対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された情報[cR]と表[XR]を求める。復号手段は、情報[cR]を復号し、情報cRを求める。ソート手段は、情報cRが示す順番に表[XR]の各レコードを並べなおし、表[XS]を求める。
【選択図】図1
Description
変形例1では、実施例1の定義の他に、k、Dは整数、dは1以上D以下の整数、mは1以上M以下の整数、x1,…,xMは表Xのレコード、y1,…,yDはソートしたい順序y1<…<yDが定義されたD種類の値、xm(k)はレコードxmのk番目のデータでありy1,…,yDのいずれかの値、amはxm(k)の値とする。そして、表[X]をレコードxmのk番目のデータの値に基づいて昇順となるようにソートするための情報[c]を求める処理を含めて説明する。
ただし、[∨]は排他的論理和(XOR)を示す記号、∨は論理和(OR)を示す記号、ambは2ビット展開したときのamの下からbビット目の値、ydbは2ビット展開したときのydの下からbビット目の値、Bは2ビット展開したときのamとydの桁数とする。式(1)では、C=1ならばam=yd(真)、C=0ならばam≠yd(偽)である。また、式(1)の個々の演算は後述の秘密計算の例に示されているので、式(1)の演算は秘密計算で実行でき、秘密分散された[C]が求められる。したがって、確認後の分岐も秘密にするのであれば、[C]を用いた秘密計算をさらに組合せればよい。なお、後述する秘密計算は、数値の秘密分散、秘密分散された断片の復号、秘密分散された数値の四則計算、秘密分散されたビットごとの論理演算の基本的な計算方法を網羅して示している。したがって、従来技術として蓄積された論理回路の技術を用いれば、上述の等しいことを確認する方法のように、所望の演算を後述する秘密計算の方法の組合せで実行できる。
h=(0,0,0,1,0,0,1,0,0,1,1,0,1,0,0)T (2)
となる。この例の場合、列ベクトル変換手段350は、式(2)の列ベクトルhの各要素を秘密分散した列ベクトル[h]を求める。
u=(0,0,0,1,1,1,2,2,2,3,4,4,5,5,5)T (3)
となる。この例の場合、列ベクトル計算手段360は、式(3)の列ベクトルuの各要素を秘密分散した列ベクトル[u]を求める。
c=(4,2,5,1,3)T (6)
となる。この例の場合、ソート情報計算手段390は、式(6)の情報cの各要素を秘密分散した情報[c]を求める。
変形例2では、実施例1の定義の他に、k、B、Dは整数、bは1以上B以下の整数、dは1以上D以下の整数、mは1以上M以下の整数、x1,…,xMは表Xのレコード、xm(k)はレコードxmのk番目のデータでありB桁のD進数の値、abmはxm(k)の下位からb桁目の値とする。そして、表[X]をレコードxmの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.)などに示されている方法を用いればよい。
yd=d−1
と設定した場合に相当する。
変形例3では、実施例1の定義の他に、Bは整数、k1,…,kBとD1,…,DBは整数、bは1以上B以下の整数、dbは1以上Db以下の整数、mは1以上M以下の整数、x1,…,xMは表Xのレコード、yb(1),…,yb(Db)はソートしたい順序yb(1)<…<yb(Db)が定義されたDb種類の値、xm(kb)はレコードxmのkb番目のデータでありyb(1),…,yb(Db)のいずれかの値、abmはxm(kb)の値とする。そして、表[X]をレコードxmのk1番目からkB番目のデータの値に基づいて、かつBが大きい方を優先して昇順となるようにソートするための情報[c]を求める処理を含めて説明する。
上述の説明では、秘密計算については1つの方法に限定しないことを前提としており、具体例は示さなかった。以下の説明では、秘密ソート装置101,…,10Nが実行するランダム置換とその他の秘密計算について説明する。なお、以下の秘密計算に関する説明は、1つの例でありこれに限定されるものではない。本発明の秘密ソートシステムでは他の秘密計算を用いてもよい。
図5に本発明に利用できる秘密分散装置100nの機能構成例を詳しく示した秘密ソートシステムを示す。図6にランダム置換の1つ目の処理フロー例を示す。この例では、秘密ソートシステムは選択手段105も備える。ここで、A1,…,AKを各秘密ソート装置10nが断片を分散して記録するK個の数値(Kは2以上の整数)、数値Akをk番目の数値(kは1以上K以下の整数)、aknを秘密ソート装置10nが記録するk番目の断片とする。なお、数値A1,…,AKが、秘匿化したい数値群であって、例えば、ソートの対象となる数値群である。ソートの対象となる数値群としては、例えば、数値Akが各々の人の年収を示すような数値群が考えられる。選択手段105は、いずれかの秘密ソート装置の内部に配置されてもよいし、単独の装置であってもよい。
次のランダム置換のための秘密ソートシステムの秘密分散装置100nを詳細に示した機能構成例も図5に示す。図7にランダム置換の2つ目の処理フロー例を示す。この例でも、秘密ソートシステムは選択手段105も備える。ここで、A1,…,AKを各秘密ソート装置10nが断片を分散して記録するK個の数値(Kは2以上の整数)、数値Akをk番目の数値(kは1以上K以下の整数)、aknを秘密ソート装置10nが記録する数値Akの断片とする。
ここでは、秘密ソートシステムが3個の秘密ソート装置で構成された場合の秘密計算の例を示す。また、秘密ソート装置101,102,103の番号を固定する必要はないので、秘密ソート装置10α,10β,10γと表現することにする。つまり、(α,β,γ)は、(1,2,3)、(2,3,1)、(3,1,2)のいずれかである。
(1)乱数aαβ,aβγを生成する。
(2)aγα=A−aαβ−aβγを計算し、断片を(aγα,aαβ)、(aαβ,aβγ)、(aβγ,aγα)とし、秘密ソート装置10α,10β,10γに分散して記録する。
(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を復元する。
(1)秘密ソート装置10αは(cγα,cαβ)=(aγα+bγα,aαβ+bαβ)を計算して記録し、秘密ソート装置10βは(cαβ,cβγ)=(aαβ+bαβ,aβγ+bβγ)を計算して記録し、秘密ソート装置10γは(cβγ,cγα)=(aβγ+bβγ,aγα+bγα)を計算して記録する。
(1)秘密ソート装置10αは(cγα,cαβ)=(aγα−bγα,aαβ−bαβ)を計算して記録し、秘密ソート装置10βは(cαβ,cβγ)=(aαβ−bαβ,aβγ−bβγ)を計算して記録し、秘密ソート装置10γは(cβγ,cγα)=(aβγ−bβγ,aγα−bγα)を計算して記録する。
(1)秘密ソート装置10αは(cγα,cαβ)=(aγα+S,aαβ)を計算して記録し、秘密ソート装置10γは(cβγ,cγα)=(aβγ,aγα+S)を計算して記録する。秘密ソート装置10βの処理はない。
(1)秘密ソート装置10αは(cγα,cαβ)=(aγαS,aαβS)を計算して記録し、秘密ソート装置10βは(cαβ,cβγ)=(aαβS,aβγS)を計算して記録し、秘密ソート装置10γは(cβγ,cγα)=(aβγS,aγαS)を計算して記録する。
(1)秘密ソート装置10αは、乱数r1,r2,cγαを生成し、cαβ=(aγα+aαβ)(bγα+bαβ)−r1−r2−cγαを計算する。そして、秘密ソート装置10αは、秘密ソート装置10βに(r1,cαβ)を、秘密ソート装置10γに(r2,cγα)を送信する。
(2)秘密ソート装置10βは、y=aαβbβγ+aβγbαβ+r1を計算し、秘密ソート装置10γに送信する。
(3)秘密ソート装置10γは、z=aβγbγα+aγαbβγ+r2を計算し、秘密ソート装置10αに送信する。
(4)秘密ソート装置10βと秘密ソート装置10γは、それぞれcβγ=y+z+aβγbβγを計算する。
(5)秘密ソート装置10αは(cγα,cαβ)を記録し、秘密ソート装置10βは(cαβ,cβγ)を記録し、秘密ソート装置10γは(cβγ,cγα)を記録する。
秘密ソート装置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γα)
を計算して記録する。
秘密ソート装置10α,10β,10γは、整数の乗算(C=AB mod W)の秘密計算と同じ処理を行う。
(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γα)を記録する。
(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γα)を記録する。
ビットA(n)の整数変換とは、
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)dn=b(n)+(aγα)(n)−2b(n)(aγα)(n)
の秘密計算を実行し、dnの断片を分散して記録する。
(2−2)a(n)=dn+cn−2dncn
の秘密計算を実行し、a(n)の断片を分散して記録する。
(2−3)n<N−1であれば、
cn+1=b(n)(aγα)(n)+dncn−b(n)(aγα)(n)dncn
の秘密計算を実行し、cn+1の断片を分散して記録する。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
105 選択手段 1101,…,110N 断片置換部
1201,…,120N 再分散部 1301,…,130N 初期情報分散部
1401,…,140N 初期乗算部 1501,…,150N 確認分散部
1601,…,160N 確認乗算部 1701,…,170N 改ざん検出部
1901,…,190N 記録部 3001,…,300N ソート制御部
310 ランダム置換手段 3101,…,310N ランダム置換部
320 復号手段 3201,…,320N 復号部
330 ソート手段 3301,…,330N ソート部
340 行列生成手段 3401,…,340N 行列生成部
350 列ベクトル変換手段 3501,…,350N 列ベクトル変換部
360 列ベクトル計算手段 3601,…,360N 列ベクトル計算部
370 行列変換手段 3701,…,370N 行列変換部
380 行列計算手段 3801,…,380N 行列計算部
390 ソート情報計算手段 3901,…,390N ソート情報計算部
1000 ネットワーク
Claims (10)
- 3個以上の秘密ソート装置で構成され、M個のレコードからなる表Xの各要素が秘密分散された表[X]から、表Xのレコードを並び替えた表に対応する秘密分散された表を求める秘密ソートシステムであって、
Mは2以上の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、cは異なるM個の値を並べたものでレコード間をランダム置換してもソート後に何番目になるかを一意に決定できる情報とし、
情報[c]のM個の要素と表[X]のM個のレコードとの対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された情報[cR]と表[XR]を求めるランダム置換手段と、
情報[cR]を復号し、情報cRを求める復号手段と、
情報cRが示す順番に表[XR]の各レコードを並べなおし、表[XS]を求めるソート手段と
を備える秘密ソートシステム。 - 請求項1記載の秘密ソートシステムであって、
k、Dは整数、dは1以上D以下の整数、mは1以上M以下の整数、x1,…,xMは表Xのレコード、y1,…,yDはソートしたい順序y1<…<yDが定義されたD種類の値、xm(k)はレコードxmのk番目のデータでありy1,…,yDのいずれかの値、amはxm(k)の値、表[X]はレコードxmのk番目のデータの値に基づいて昇順となるようにソートされるとし、
さらに、
am=ydならばHmd=1、am≠ydならば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]とするソート情報計算手段と、
を備える秘密ソートシステム。 - 請求項1記載の秘密ソートシステムであって、
k、B、Dは整数、bは1以上B以下の整数、dは1以上D以下の整数、mは1以上M以下の整数、x1,…,xMは表Xのレコード、xm(k)はレコードxmのk番目のデータでありB桁のD進数の値、abmはxm(k)の下位からb桁目の値、表[X]はレコードxmのk番目のデータの値に基づいて昇順となるようにソートされるとし、
さらに、
abm=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]とするソート情報計算手段と、
を備え、
前記行列生成手段、前記列ベクトル変換手段、前記列ベクトル計算手段、前記行列変換手段、前記行列計算手段、前記ソート情報計算手段、前記ランダム置換手段、前記復号手段、前記ソート手段の処理を、前記ソート手段が求めた表[XS]を次のソートの対象の表[X]としながら、b=1からb=Bまで繰り返す
ことを特徴とする秘密ソートシステム。 - 請求項1記載の秘密ソートシステムであって、
Bは整数、k1,…,kBとD1,…,DBは整数、bは1以上B以下の整数、dbは1以上Db以下の整数、mは1以上M以下の整数、x1,…,xMは表Xのレコード、yb(1),…,yb(Db)はソートしたい順序yb(1)<…<yb(Db)が定義されたDb種類の値、xm(kb)はレコードxmのkb番目のデータでありyb(1),…,yb(Db)のいずれかの値、abmはxm(kb)の値、表[X]はBが大きい方を優先してレコードxmのk1番目からkB番目のデータの値に基づいて昇順となるようにソートされるとし、
さらに、
abm=yb(db)ならばm行db列の要素を1、abm≠yb(db)ならばm行db列の要素を0とするM行Db列の行列[H]を生成する行列生成手段と、
行列[H]の各列を左の列から順に上から下に縦につなげて要素数MDbの列ベクトル[h]を求める列ベクトル変換手段と、
i番目の要素が、列ベクトル[h]の1番目の要素からi番目の要素までの和である列ベクトル[u]を、秘密計算で求める列ベクトル計算手段と、
列ベクトル[u]をM要素ごとに分割してD個の列ベクトルを左から順に並べたM行Db列の行列[G]を生成する行列変換手段と、
行列[G]と行列[H]の要素ごとの積を要素とするM行Db列の行列[E]を、秘密計算で求める行列計算手段と、
行列[E]の行ごとの要素の総和を秘密計算で求め、前記総和を要素として行の順番に並べた情報を前記情報[c]とするソート情報計算手段と、
を備え、
前記行列生成手段、前記列ベクトル変換手段、前記列ベクトル計算手段、前記行列変換手段、前記行列計算手段、前記ソート情報計算手段、前記ランダム置換手段、前記復号手段、前記ソート手段の処理を、前記ソート手段が求めた表[XS]を次のソートの対象の表[X]としながら、b=1からb=Bまで繰り返す
ことを特徴とする秘密ソートシステム。 - M個のレコードからなる表Xの各要素が秘密分散された表[X]から、表Xのレコードを並び替えた表に対応する秘密分散された表を求める3個以上の秘密ソート装置で構成される秘密ソートシステムの中の秘密ソート装置であって、
Mは2以上の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、cは異なるM個の値を並べたものでレコード間をランダム置換してもソート後に何番目になるかを一意に決定できる情報とし、
情報[c]のM個の要素と表[X]のM個のレコードとの対応を維持したまま秘密計算でレコード間をランダム置換し、ランダム置換された情報[cR]と表[XR]を求めるためのランダム置換部と、
情報[cR]を復号し、情報cRを求めるための復号部と、
情報cRが示す順番に表[XR]の各レコードを並べなおし、表[XS]を求めるためのソート部と
を備える秘密ソート装置。 - 3個以上の秘密ソート装置を用いて、M個のレコードからなる表Xの各要素が秘密分散された表[X]から、表Xのレコードを並び替えた表に対応する秘密分散された表を求める秘密ソート方法であって、
Mは2以上の整数、[]はカッコ内の情報が要素ごとに秘密分散された情報を示す記号、cは異なるM個の値を並べたものでレコード間をランダム置換してもソート後に何番目になるかを一意に決定できる情報とし、
情報[c]のM個の要素と表[X]のM個のレコードとの対応を維持したまま秘密計算でレコード間のランダム置換し、ランダム置換された情報[cR]と表[XR]を求めるランダム置換ステップと、
情報[cR]を復号し、情報cRを求める復号ステップと、
情報cRが示す順番に表[XR]の各レコードを並べなおし、表[XS]を求めるソートステップと
を有する秘密ソート方法。 - 請求項6記載の秘密ソート方法であって、
k、Dは整数、dは1以上D以下の整数、mは1以上M以下の整数、x1,…,xMは表Xのレコード、y1,…,yDはソートしたい順序y1<…<yDが定義されたD種類の値、xm(k)はレコードxmのk番目のデータでありy1,…,yDのいずれかの値、amはxm(k)の値、表[X]はレコードxmのk番目のデータの値に基づいて昇順となるようにソートされるとし、
さらに、
am=ydならばHmd=1、am≠ydならば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]とするソート情報計算ステップと、
を有する秘密ソート方法。 - 請求項6記載の秘密ソート方法であって、
k、B、Dは整数、bは1以上B以下の整数、dは1以上D以下の整数、mは1以上M以下の整数、x1,…,xMは表Xのレコード、xm(k)はレコードxmのk番目のデータでありB桁のD進数の値、abmはxm(k)の下位からb桁目の値、表[X]はレコードxmのk番目のデータの値に基づいて昇順となるようにソートされるとし、
さらに、
abm=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]とするソート情報計算ステップと、
を有し、
前記行列生成ステップ、前記列ベクトル変換ステップ、前記列ベクトル計算ステップ、前記行列変換ステップ、前記行列計算ステップ、前記ソート情報計算ステップ、前記ランダム置換ステップ、前記復号ステップ、前記ソートステップを、前記ソートステップが求めた表[XS]を次のソートの対象の表[X]としながら、b=1からb=Bまで繰り返す
ことを特徴とする秘密ソート方法。 - 請求項6記載の秘密ソート方法であって、
Bは整数、k1,…,kBとD1,…,DBは整数、bは1以上B以下の整数、dbは1以上Db以下の整数、mは1以上M以下の整数、x1,…,xMは表Xのレコード、yb(1),…,yb(Db)はソートしたい順序yb(1)<…<yb(Db)が定義されたDb種類の値、xm(kb)はレコードxmのkb番目のデータでありyb(1),…,yb(Db)のいずれかの値、abmはxm(kb)の値、表[X]はBが大きい方を優先してレコードxmのk1番目からkB番目のデータの値に基づいて昇順となるようにソートされるとし、
さらに、
abm=yb(db)ならばm行db列の要素を1、abm≠yb(db)ならばm行db列の要素を0とするM行Db列の行列[H]を生成する行列生成ステップと、
行列[H]の各列を左の列から順に上から下に縦につなげて要素数MDbの列ベクトル[h]を求める列ベクトル変換ステップと、
i番目の要素が、列ベクトル[h]の1番目の要素からi番目の要素までの和である列ベクトル[u]を、秘密計算で求める列ベクトル計算ステップと、
列ベクトル[u]をM要素ごとに分割してD個の列ベクトルを左から順に並べたM行Db列の行列[G]を生成する行列変換ステップと、
行列[G]と行列[H]の要素ごとの積を要素とするM行Db列の行列[E]を、秘密計算で求める行列計算ステップと、
行列[E]の行ごとの要素の総和を秘密計算で求め、前記総和を要素として行の順番に並べた情報を前記情報[c]とするソート情報計算ステップと、
を有し、
前記行列生成ステップ、前記列ベクトル変換ステップ、前記列ベクトル計算ステップ、前記行列変換ステップ、前記行列計算ステップ、前記ソート情報計算ステップ、前記ランダム置換ステップ、前記復号ステップ、前記ソートステップを、前記ソートステップが求めた表[XS]を次のソートの対象の表[X]としながら、b=1からb=Bまで繰り返す
ことを特徴とする秘密ソート方法。 - 請求項1から4のいずれかに記載の秘密ソートシステムの各秘密ソート装置としてコンピュータを機能させるための秘密ソートプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011011753A JP5480828B2 (ja) | 2011-01-24 | 2011-01-24 | 秘密ソートシステム、秘密ソート装置、秘密ソート方法、秘密ソートプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011011753A JP5480828B2 (ja) | 2011-01-24 | 2011-01-24 | 秘密ソートシステム、秘密ソート装置、秘密ソート方法、秘密ソートプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012154990A true JP2012154990A (ja) | 2012-08-16 |
JP5480828B2 JP5480828B2 (ja) | 2014-04-23 |
Family
ID=46836806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011011753A Active JP5480828B2 (ja) | 2011-01-24 | 2011-01-24 | 秘密ソートシステム、秘密ソート装置、秘密ソート方法、秘密ソートプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5480828B2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014164144A (ja) * | 2013-02-26 | 2014-09-08 | Nippon Telegr & Teleph Corp <Ntt> | 秘密表除算装置及び方法 |
WO2015107951A1 (ja) * | 2014-01-17 | 2015-07-23 | 日本電信電話株式会社 | 秘密計算方法、秘密計算システム、ソート装置及びプログラム |
CN107735830A (zh) * | 2015-06-24 | 2018-02-23 | 日本电信电话株式会社 | 秘密计算装置、秘密计算方法和程序 |
CN112005287A (zh) * | 2018-04-20 | 2020-11-27 | 日本电信电话株式会社 | 秘密聚合排名系统、秘密计算装置、秘密聚合排名方法、以及程序 |
CN112567443A (zh) * | 2018-08-13 | 2021-03-26 | 日本电信电话株式会社 | 秘密联接信息生成系统、秘密联接系统、它们的方法、秘密计算装置以及程序 |
US12143420B2 (en) | 2019-11-28 | 2024-11-12 | Nec Corporation | Shuffling shares among nodes to detect incorrectness or frauds |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1835657A1 (en) * | 2006-03-16 | 2007-09-19 | Sap Ag | Methods and systems for multi-party sorting of private values |
-
2011
- 2011-01-24 JP JP2011011753A patent/JP5480828B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1835657A1 (en) * | 2006-03-16 | 2007-09-19 | Sap Ag | Methods and systems for multi-party sorting of private values |
Non-Patent Citations (2)
Title |
---|
CSNG201001087017; 濱田浩気他: '3パーティ秘匿関数計算上のランダム置換プロトコル' コンピュータセキュリティシンポジウム2010論文集 第二分冊, 20101012, p.561-566 * |
JPN6013059514; 濱田浩気他: '3パーティ秘匿関数計算上のランダム置換プロトコル' コンピュータセキュリティシンポジウム2010論文集 第二分冊, 20101012, p.561-566 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014164144A (ja) * | 2013-02-26 | 2014-09-08 | Nippon Telegr & Teleph Corp <Ntt> | 秘密表除算装置及び方法 |
WO2015107951A1 (ja) * | 2014-01-17 | 2015-07-23 | 日本電信電話株式会社 | 秘密計算方法、秘密計算システム、ソート装置及びプログラム |
CN105900164A (zh) * | 2014-01-17 | 2016-08-24 | 日本电信电话株式会社 | 秘密计算方法、秘密计算系统、拣选装置以及程序 |
JP6009697B2 (ja) * | 2014-01-17 | 2016-10-19 | 日本電信電話株式会社 | 秘密計算方法、秘密計算システム、ソート装置及びプログラム |
CN105900164B (zh) * | 2014-01-17 | 2019-03-08 | 日本电信电话株式会社 | 秘密计算方法、秘密计算系统、拣选装置以及记录介质 |
CN107735830A (zh) * | 2015-06-24 | 2018-02-23 | 日本电信电话株式会社 | 秘密计算装置、秘密计算方法和程序 |
CN112005287A (zh) * | 2018-04-20 | 2020-11-27 | 日本电信电话株式会社 | 秘密聚合排名系统、秘密计算装置、秘密聚合排名方法、以及程序 |
CN112005287B (zh) * | 2018-04-20 | 2023-08-18 | 日本电信电话株式会社 | 秘密聚合排名系统、秘密计算装置、秘密聚合排名方法、以及记录介质 |
CN112567443A (zh) * | 2018-08-13 | 2021-03-26 | 日本电信电话株式会社 | 秘密联接信息生成系统、秘密联接系统、它们的方法、秘密计算装置以及程序 |
CN112567443B (zh) * | 2018-08-13 | 2024-05-14 | 日本电信电话株式会社 | 秘密联接信息生成系统及方法、秘密联接系统及方法、秘密计算装置、记录介质 |
US12143420B2 (en) | 2019-11-28 | 2024-11-12 | Nec Corporation | Shuffling shares among nodes to detect incorrectness or frauds |
Also Published As
Publication number | Publication date |
---|---|
JP5480828B2 (ja) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6009697B2 (ja) | 秘密計算方法、秘密計算システム、ソート装置及びプログラム | |
JP5486520B2 (ja) | セキュア集合関数システム、秘密集合関数装置、セキュア集合関数処理方法、セキュア集合関数プログラム | |
JP5957120B1 (ja) | 秘密分散方法、秘密分散システム、分散装置、およびプログラム | |
Hanis et al. | Double image compression and encryption scheme using logistic mapped convolution and cellular automata | |
US8306217B2 (en) | Cryptographic processing apparatus and cryptographic processing method, and computer program | |
CN103444124B (zh) | 加密处理装置、加密处理方法 | |
JP2020074039A (ja) | データを暗号化する方法およびシステム | |
JP7031682B2 (ja) | 秘密計算装置、システム、方法、プログラム | |
JP5480828B2 (ja) | 秘密ソートシステム、秘密ソート装置、秘密ソート方法、秘密ソートプログラム | |
CN110784307B (zh) | 轻量级密码算法scenery实现方法、装置及存储介质 | |
US20240022395A1 (en) | Encryption processing device and encryption processing method | |
US8812866B2 (en) | Method and apparatus for storing data | |
US11599681B2 (en) | Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program | |
CN112287333B (zh) | 一种轻量级可调分组密码实现方法、系统、电子设备以及可读存储介质 | |
JP5498406B2 (ja) | マッチングシステム、マッチングシステムの方法 | |
Deryabin et al. | Secure verifiable secret short sharing scheme for multi-cloud storage | |
JP5689845B2 (ja) | 秘密計算装置、秘密計算方法、およびプログラム | |
JP5391212B2 (ja) | セキュア検索システム、秘密検索装置、セキュア検索方法、セキュア検索プログラム | |
JP5506705B2 (ja) | 秘密マッチングシステム、秘密マッチング装置、秘密マッチング方法、秘密マッチングプログラム | |
US9246681B2 (en) | Use of 32-bit random numbers to produce cipher key stream for 8-bit data stream | |
Jeon | One-way hash function based on cellular automata | |
CN111052206B (zh) | 秘密计算装置、秘密计算方法以及记录介质 | |
WO2023281693A1 (ja) | 秘密計算システム、装置、方法及びプログラム | |
WO2023281694A1 (ja) | 秘密計算システム、装置、方法及びプログラム | |
Berlin et al. | An Approach to Achieve Modern Cryptographic Encryption System for Preserving Secrets using Number System Generator |
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 |