JP5907902B2 - 秘密計算による表の等結合システム、方法 - Google Patents
秘密計算による表の等結合システム、方法 Download PDFInfo
- Publication number
- JP5907902B2 JP5907902B2 JP2013008704A JP2013008704A JP5907902B2 JP 5907902 B2 JP5907902 B2 JP 5907902B2 JP 2013008704 A JP2013008704 A JP 2013008704A JP 2013008704 A JP2013008704 A JP 2013008704A JP 5907902 B2 JP5907902 B2 JP 5907902B2
- Authority
- JP
- Japan
- Prior art keywords
- secret
- vector
- value
- records
- create
- 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
Links
Images
Description
複数の秘密計算装置による協調計算によって、q個の行列表示された表S,T1,…,Tq-1(ただし、Sはm0×n0行列、Tiはmi×ni行列(1≦i<q)とする)の秘匿文[[S]],[[T1]],…,[[Tq-1]]に対して、S,T1,…,Tq-1を等結合してダミーの行(以下、行をレコードといい、ダミーの行を空レコードという)を加えた表R(ただし、m∩をm∩=min(m0,…,mq-1)、nをn=Σi=0 q-1 niとして、Rはm∩×n行列である)の秘匿文[[R]]と、表Rの空レコードの位置を特定するためのベクトルg→(以下、空フラグという)の秘匿文[[g→]]を出力する等結合技術であり、複数の秘密計算装置の協調計算によって、各整数i∈[1,q)について、[[S]]と[[Ti]]とに共通の属性については、その属性値として[[S]]の値を用い、[[S]]と[[Ti]]とに共通しない属性については、その属性値として任意の秘匿値を用いることによって、レコード数が[[S]]と同じで、[[S]]と[[Ti]]に共通の属性を含む秘匿化された表[[Si']]を[[Ti]]に接続した表[[Ti']]を作成し、[[S]],[[T1']],…,[[Tq-1']]に対して、対応する表のレコード数と同じ要素数を持ち、対応する表に含まれるレコードを識別するための任意の値を要素に持つベクトルを秘匿化およびランダム置換したタグベクトル[[t→ S]],[[t→ T1']],…,[[t→ Tq-1']]を作成し、各整数i∈[1,q)について、
(a) [[t→]]:=[[t→ S]]||[[t→ Ti']]、[[s→]]:=[[1]]m0||[[0]]mi+m0、[[s→']]:=[[0]]m0+mi||[[1]]m0、[[S]]と[[Ti']]のキー属性を連結したベクトル[[k→]]を作成し、
(b) ([[t→]],[[s→]],[[s→']])を[[k→]]に従って安定ソートし、
(c) [[u→]]を、
として定め、
(d) [[u→]],[[t→]],[[s→']]を並べた([[u→]],[[t→]],[[s→']])をランダム置換し、
(e) [[u→]]を復元してu→を得て、
(f) u→[j]≠0を満たす各jについて、[[t→]][j]を復元して並べたベクトルt→ i、u→[j]を並べたベクトルu→ i、[[s→']][j]を並べたベクトル[[f→ i]]を作成し、各([[S]],[[t→ S]]),([[T1']],[[t→ T1']]),…,([[Tq-1']],[[t→ Tq-1']])をそれぞれランダム置換してから、[[tS]],[[t→ T1']],…,[[t→ Tq-1']]を復元してタグベクトルの平文tS,t→ T1',…,t→ Tq-1'を得て、[[R]]の第j行(1≦j≦m0)である[[R]][j]を、[[R]][j]=[[S]][j]||[[T1']][wj,1]||…||[[Tq-1']][wj,q-1]で計算することによって出力の表[[R]]を作成し(ただし、ここでの記号||は行ベクトルの列方向の連結を表す。また、wj,iは、ti[hj,i]=TTi'[wj,i]を満たす値であり、hj,iは、tS[j]=ui[hj,i]を満たす値である)、[[g→]]の第j要素である[[g→]][j]を、[[g→]][j]=[[f→ 1]][y1,j]∨…∨[[f→ q-1]][yq-1,j]で計算することによって出力の空フラグ[[g→]]を作成する(ただし、yi,jは、tS[j]=ui[y1,j]を満たす値である)。
各整数i∈[1,q)について、
(a) [[t→]]:=[[t→ S]]||[[t→ Ti']]、[[s→]]:=[[1]]m0||[[0]]mi+m0、[[s→']]:=[[0]]m0+mi||[[1]]m0、[[t→']]:=[[*]]m0+mi||[[t→ S]]、[[S]]と[[Ti']]のキー属性値を連結したベクトル[[k→]]、[[S]]と[[Ti]]と[[Si']]の空フラグを連結したベクトル[[z→]]を作成し(ただし、[[*]]は任意の秘匿文である)、
(b) ([[t→]],[[s→]],[[s→']],[[z→]],[[t→']])を([[z→]],[[k→]])に従って安定ソートし(ただし、([[z→]],[[k→]])は、[[z→]][j]||[[k→]][j]をj番目の要素とする(m0+mi+m0)行1列の列ベクトルである)、
(c) [[u→]]を
として定め、
(d) [[u→]],[[t→]],[[s→']]を並べた([[u→]],[[t→]],[[s→']])をランダム置換し、
(e) [[u→]]を復元してu→を得て、
(f) u→[j]≠0を満たす各jについて、[[t→]][j]を復元して並べたベクトルt→ i、u→[j]を並べたベクトルu→ i、[[s→']][j]∨[[z→]][j]を計算して並べたベクトル[[f→ i]]を作成し、各([[S]],[[t→ S]]),([[T1']],[[t→ T1']]),…,([[Tq-1']],[[t→ Tq-1']])をそれぞれランダム置換してから、[[tS]],[[t→ T1']],…,[[t→ Tq-1']]を復元してタグベクトルの平文tS,t→ T1',…,t→ Tq-1'を得て、[[R]]の第j行(1≦j≦m0)である[[R]][j]を、[[R]][j]=[[S]][j]||[[T1']][wj,1]||…||[[Tq-1']][wj,q-1]で計算することによって出力の表[[R]]を作成し(ただし、ここでの記号||は行ベクトルの列方向の連結を表す。また、wj,iは、ti[hj,i]=TTi'[wj,i]を満たす値であり、hj,iは、tS[j]=ui[hj,i]を満たす値である)、[[g→]]の第j要素である[[g→]][j]を、[[g→]][j]=[[f→ 1]][y1,j]∨…∨[[f→ q-1]][yq-1,j]で計算することによって出力の空フラグ[[g→]]を作成する(ただし、yi,jは、tS[j]=ui[y1,j]を満たす値である)。
後述する等結合アルゴリズムは、既存の秘密計算上の演算の組み合わせで構築される。この等結合アルゴリズムが必要とする演算は、秘匿化、復元、加算、減算、乗算、ランダム置換、安定ソートである。秘匿化、復元、加算、減算、乗算は例えば上記非特許文献1を、ランダム置換は例えば参考文献1を、安定ソートは例えば参考文献2に従えばよい。
(参考文献1)Sven Laur, Jan Willemson, and Bingsheng Zhang. "Round-efficient oblivious database manipulation" In Xuejia Lai, Jianying Zhou, and Hui Li, editors, ISC, Vol. 7001 of LNCS, pp. 262-277. Springer, 2011.
(参考文献2)濱田浩気、五十嵐大、千田浩司、高橋克巳、“秘匿関数計算上の線形時間ソート”、In SCIS、pp.1-7、2011.
以下、値はすべて有限環ZN上の値とする。ベクトルa→とベクトルb→を連結したベクトルをa→||b→と書く。すなわち、a→=(a1,…,am)T、b→=(b1,…,bn)Tのとき、a→||b→=(a1,…,am,b1,…,bn)Tである。Tは転置の記号である。特に断りがない限り、(a→ 1,…,a→ Z)は、a→ i=(a1,i,…,am,i)T(i=1,…,Z)とすると、m行Z列の行列を表す。行列Mのi行目の行ベクトルをM[i]と表記する。ベクトルv→のj番目の要素をv→[j]と表記する。
a∈ZNを暗号化や秘密分散などの手段で秘匿化して得られた情報を[[a]]と表記する。ここで、P個の秘密計算装置による秘密計算を前提とすると、a∈ZNは複数(例えばP1個)の秘密値に分散されており、[[a]]は複数の秘密値ai(i∈{1,2,…,P1})の集合を表している。各秘密計算装置は、各装置に割り当てられた秘密値ai(i∈{1,2,…,P1})の一部を保有しているが、秘密値ai(i∈{1,2,…,P1})の全部を保有していないものとする。[[a]]をaの秘匿文などと呼称し、aを秘匿文[[a]]の平文などと呼称する。ベクトルv→=(v1,…,vn)の各要素を秘匿化したベクトル([[v1]],…,[[vn]])を[[v→]]と表記する。ベクトル[[u→]]=([[u1]],…,[[um]])とベクトル[[v→]]=([[v1]],…,[[vn]])を結合したベクトル([[u1]],…,[[um]],[[v1]],…,[[vn]])を[[u→]]||[[v→]]と書く。aの秘匿文[[a]]をn個並べた秘匿文のベクトル([[a]],…,[[a]])を[[a]]nと略記する。行列Aの各要素を秘匿化した行列を[[A]]と表記する。
加算、減算、乗算の各演算は2つの値a,b∈ZNの秘匿文[[a]],[[b]]を入力とし、それぞれa+b、a-b、abの計算結果cの秘匿文[[c]]を計算する。これらの演算の実行をそれぞれ
[[c]] ← Add([[a]],[[b]]),
[[c]] ← Sub([[a]],[[b]]),
[[c]] ← Mul([[a]],[[b]])
と記述する。誤解を招く恐れのない場合は、Add([[a]],[[b]])、Sub([[a]],[[b]])、Mul([[a]],[[b]])をそれぞれ[[a]]+[[b]]、[[a]]-[[b]]、[[a]]×[[b]]と略記する。
論理和の演算は2つの値a,b∈{0,1}の秘匿文[[a]],[[b]]を入力とし、aとbの論理和cの秘匿文[[c]]を計算する。この演算の実行を
[[c]] ← [[a]] OR [[b]]
と記述し、ここでは
[[c]] ← [[a]]+[[b]]-[[a]]×[[b]]
の計算によって実現する。
ランダム置換はベクトルの要素をランダムな順序で並べ替えたベクトルを出力する演算である。ここで扱う秘密計算でのランダム置換演算は、複数の秘匿化されたベクトルに対して同一のランダム置換を施す。すなわち、k個(1≦k)の大きさnのベクトルa→(1),…,a→(k)∈ZN nの秘匿文[[a→(1)]],…,[[a→(k)]]を入力とし、等結合システムに含まれるいずれの装置(全ての秘密計算装置を含む)も知ることのできないランダムな全単射πr:{1,…,n}→{1,…,n}についてb(i) πr(j)=a(i) j(1≦i≦k;1≦j≦n)を満たすベクトルb→(1),…,b→(k)∈ZN nの秘匿文[[b→(1)]],…,[[b→(k)]]を計算する。
ソートはベクトルの要素を昇順に並べ替えたベクトルを出力する演算である。入力のベクトルk→=(k1,…,kn)に対して出力されるベクトルh→=(h1,…,hn)はh1≦…≦hnを満たすk→の要素を並べ替えたベクトルである。安定ソートは、ソート演算で同じ値が存在した場合に同じ値の要素同士の順序を保存する演算である。k→とh→の各要素はある全単射πs:{1,…,n}→{1,…,n}についてhπs(i)=ki(1≦i≦n)を満たしており、安定ソートでは
πs(i)<πs(j) ⇔ (ki<kj) ∨ (ki=kj ∧ i<j)
が成り立つ。
ここで扱う秘密計算上の安定ソート演算は、複数のベクトルを入力とし、キーとするベクトルの要素の並べ替えに従って他のベクトルの要素の並べ替えを行う。すなわち、安定ソートのキーとする大きさnのベクトルk→∈ZN nとg個(1≦g)の大きさnのベクトルa→(1),…,a→(g)∈ZN nの秘匿文[[k→]],[[a→(1)]],…,[[a→(g)]]を入力とし、ベクトルk→を安定ソートしたときの並べ替えに従って各ベクトルa→(1),…,a→(g)の要素を並べ替えたベクトルb→(1),…,b→(g)∈ZN nの秘匿文[[b→(1)]],…,[[b→(g)]]を計算する。
次に、表の大きさを秘密にする方法を説明する。ここで、表の大きさは表に含まれる行の数、つまり、レコード数である。表の大きさの秘匿は、本来の表に余分な偽物(ダミー)のレコード(空レコードと呼称する)を追加することによって実現する。表の真の大きさを推測できないようにするためには、表の大きさが本来の表が取り得る最大のレコード数以上となるように空レコードを追加すればよい。等結合は入力の表T0,…,Tq-1を等結合して得られる出力の表Rが|R|≦min(|T0|,…,|Tq-1|)を満たすので、出力の表の大きさがmin(|T0|,…,|Tq-1|)となるように空レコードを追加することで本来の出力の表の大きさを秘匿できる。
実施形態1の等結合処理の入力はそれぞれ行列として与えられたq個の表T0,…,Tq-1の秘匿文[[T0]],…,[[Tq-1]]である。一般性を失うことなく、T0をレコード数が最小の表、各表の1列目を各表に共通のキー属性(例えばID)を表す列とする。実施形態1では、これら入力の表は大きさが秘匿されていない表である。
入力はq個の表T0,…,Tq-1の秘匿文[[T0]],…,[[Tq-1]]であり、特にT0をSと表記することにする。出力はT0,…,Tq-1を等結合して空レコードを加えた表Rの秘匿文[[R]]と、表Rの空フラグを表す列ベクトルg→の秘匿文[[g→]]である。
各整数i∈[1,q)について、レコード数が[[S]]のレコード数と同じで、[[S]]と[[Ti]]とに共通の属性を含む秘匿化された表[[Si']]を作成する。表[[Si']]は、[[S]]と[[Ti]]とに共通の属性については、その属性値として[[S]]の値をそのまま用い、[[S]]と[[Ti]]とに共通しない属性については、その属性値として任意の秘匿値を用いることによって、作られる。この結果、[[Si']]の属性の数は[[Ti]]の属性の数と等しくなる。[[Ti]]と[[Si']]を縦に並べて接続した表を[[Ti']]とする。
[[S]],[[T1']],…,[[Tq-1']]に対してランダム置換済みの秘匿化されたベクトル[[t→ S]],[[t→ T1']],…,[[t→ Tq-1']]を作成する。具体的には、まず、表[[S]],[[T1']],…,[[Tq-1']]のそれぞれに対して対応する表の各レコードに対応する要素を持つ任意のベクトルt→ S,t→ T1',…,t→ Tq-1'を定め、これらのベクトルt→ S,t→ T1',…,t→ Tq-1'を秘匿化して[[t→ S]],[[t→ T1']],…,[[t→ Tq-1']]を得て、次いで、[[t→ S]],[[t→ T1']],…,[[t→ Tq-1']]をそれぞれランダム置換して、ランダム置換後のベクトル[[t→ S]],[[t→ T1']],…,[[t→ Tq-1']]を得る。これらベクトル[[t→ S]],[[t→ T1']],…,[[t→ Tq-1']]をタグベクトルと呼称する。各タグベクトルは対応する表のレコード数と同じ要素数のベクトルの秘匿文である。各タグベクトルの平文の要素(タグ)は同じ値を含まない。また、第1実施形態では、各タグベクトルの平文の要素は、後に説明するステップS3(c)の処理で、j≠0のときに[[u→]][j]の平文が0にならないような値とする。ここで説明する例であれば、各タグベクトルの平文の要素はゼロを含まないようにすればよい。
各整数i∈[1,q)について、以下を実行する。
(a) [[t→]]:=[[t→ S]]||[[t→ Ti']]、[[s→]]:=[[1]]m0||[[0]]mi+m0、[[s→']]:=[[0]]m0+mi||[[1]]m0、[[S]]と[[Ti']]のキー属性値を連結したベクトル[[k→]]を作成する。
(b) ([[t→]],[[s→]],[[s→']])を[[k→]]に従って安定ソートする。
(c) 以下のように定めた[[u→]]を作成する。
(d) [[u→]],[[t→]],[[s→']]を列方向に並べた([[u→]],[[t→]],[[s→']])をランダム置換する。
(e) [[u→]]を復元してu→を得る。
(f) u→[j]≠0を満たす各jについて、[[t→]][j]を復元して並べたベクトルt→ i、u→[j]を並べたベクトルu→ i、[[s→']][j]を並べたベクトル[[f→ i]]を作成する。
各([[S]],[[t→ S]]),([[T1']],[[t→ T1']]),…,([[Tq-1']],[[t→ Tq-1']])をそれぞれランダム置換し、タグベクトル[[tS]],[[t→ T1']],…,[[t→ Tq-1']]を復元してタグベクトルの平文tS,t→ T1',…,t→ Tq-1'を得る。
[[R]]の第j行(1≦j≦m0)である[[R]][j]を、
[[R]][j]=[[S]][j]||[[T1']][wj,1]||…||[[Tq-1']][wj,q-1]
で計算することによって出力の表[[R]]を作成する。ただし、ここでの記号||は行ベクトルの列方向の連結を表す。また、wj,iは、t→ i[hj,i]=t→ Ti'[wj,i]を満たす値であり、hj,iは、t→ S[j]=u→ i[hj,i]を満たす値である。この処理の具体的な手順としては、最初にjを定め、次いで、t→ S[j]=u→ i[hj,i]を満たす値hj,iをステップS3(f)の処理で得られたu→ iから探し出し、次いで、t→ i[hj,i]=t→ Ti'[wj,i]を満たす値wj,iをステップS3(f)の処理で得られたt→ iとステップS4の処理で得られたt→ Ti'とを用いて探し出し、[[Ti']][wj,i]を特定する。
また、[[g→]]の第j要素である[[g→]][j]を、
[[g→]][j]=[[f→ 1]][y1,j]∨…∨[[f→ q-1]][yq-1,j]で計算することによって出力の空フラグ[[g→]]を作成する。ただし、yi,jは、t→ S[j]=u→ i[y1,j]を満たす値である。この処理の具体的な手順としては、最初にjを定め、次いで、t→ S[j]=u→ i[y1,j]を満たす値yi,jをステップS3(f)の処理で得られたu→ iから探し出し、[[f→ i]][yi,j]を特定する。
秘匿化された表[[S]]と[[Ti']]に対する処理の結果、Sのレコードの各タグに対して対応するTi'のレコードの異なるタグが計算され、さらにTiに含まれないTi'のレコードに限って対応するベクトルf→ iの要素が1となっていることを確認する。
キー属性値はS、Ti、Si'の各表で重複がないため、キー属性値はどの値も高々3回しか現れず、さらに、ステップS3(b)での安定ソート後には、ソートの安定性から、ベクトルk→にて同じキー属性値はSのキー属性値、Tiのキー属性値、Si'のキー属性値の順で連続出現する。具体的には、Sに含まれるキー属性値aがTiに含まれる場合、キー属性値aはステップS3(b)での安定ソート後にはベクトルk→にてSのキー属性値a、Tiのキー属性値a、Si'のキー属性値aの順で連続出現し、Sに含まれるキー属性値aがTiに含まれない場合、キー属性値aはステップS3(b)での安定ソート後にはベクトルk→にてSのキー属性値a、Si'のキー属性値aの順で連続出現する。よって、安定ソート直後の列ベクトルk→においてSのキー属性値の一つ下のキー属性値に対応するタグベクトルt→ iの要素(タグ)で指定されるレコードは、元々TiまたはSi'に含まれていたレコードである(復元されるu→ iはSに含まれるレコードに対応する全てのタグを要素に持つタグベクトルであり、復元されるt→ iはTi'に含まれるレコードに対応するタグの全部または一部を要素に持つベクトルであり、u→[j]≠0を満たす各jについて、u→ i[j]とt→ i[j]の対はSの各タグと対応するTi'の異なるタグの対になっている)。さらに、f→ iの各要素の値はs→'の対応する要素の値と一致するため、Tiに含まれないTi'のレコードに限って対応するベクトルf→ iの要素が1となる。
上記の等結合アルゴリズムが用いたプロトコルはすべてsemi-honestな攻撃者に対して安全である。従って、等結合アルゴリズムの安全性を確認するには、等結合アルゴリズム中で開示される値から情報が漏れていないことを確認すれば十分である。等結合アルゴリズム中で開示されるのは、ステップS3(e)のu→、ステップS3(f)のt→ i、ステップS4のタグである。u→はu→ iと0のみからなり、既述のように、u→ i[j]とt→ i[j]の対はSの各タグと対応するTi'の異なるタグの対になっている。タグの値は表のデータ(属性値)との相関性が無い。また、ステップS4で復元されるタグベクトルも、タグベクトルをランダム置換してから復元したものである。これらの値はタグの対応と順序を一様ランダムに決めたものと区別ができない。従って、等結合アルゴリズム中で開示される値から情報が漏れておらず、この等結合アルゴリズムはsemi-honestな攻撃者に対して安全である。
既述の秘密計算の場合を例にして計算コストの評価を行う。多くのデータベース処理では属性数がレコード数に比べて非常に小さい表を対象とするため、表の属性数すなわち行列の列数は定数とみなす。また、属性値を環ZNの要素として扱うため、環ZNはレコード数の総和mに対してm<Nとなるように決められているとする。参考文献3による比較プロトコルを単位とすると、秘匿化、復元、加算、減算、乗算の通信量は比較プロトコル換算で定数である。要素数nのランダム置換の通信量は比較プロトコル換算でO(n)、要素数nの安定ソートの通信量は比較プロトコル換算でO(n log n)である。従って、実施形態1の等結合アルゴリズムの通信量は比較プロトコル換算でO(m log m)である。
実施形態2では、大きさが秘匿された表が入力された場合にも対応できるように実施形態1を拡張する。入力の表の大きさを秘匿する方法は、前述の表の大きさを秘匿する方法と同じである。すなわち、入力の各表[[Ti]]は、行に空レコードを含み、列に属性として空フラグを含んでいるとする。実施形態1からの変更点は、入力の表が大きさの秘匿された表であることとステップS3の処理である(ステップS1、ステップS2、ステップS4、ステップS5の各処理は実施形態1と同じである)。
ステップS3
各整数i∈[1,q)について、以下を実行する。
(a) [[t→]]:=[[t→ S]]||[[t→ Ti']]、[[s→]]:=[[1]]m0||[[0]]mi+m0、[[s→']]:=[[0]]m0+mi||[[1]]m0、[[t→']]:=[[*]]m0+mi||[[t→ S]]、[[S]]と[[Ti']]のキー属性値を連結したベクトル[[k→]]、[[S]]と[[Ti]]と[[Si']]の空フラグを連結したベクトル[[z→]]を作成する。ただし、[[*]]は任意の秘匿文である。
(b) ([[t→]],[[s→]],[[s→']],[[z→]],[[t→']])を([[z→]],[[k→]])に従って安定ソートする。ただし、([[z→]],[[k→]])は、[[z→]][j]||[[k→]][j]をj番目の要素とする(m0+mi+m0)行1列の列ベクトルである。
(c) 以下のように定めた[[u→]]を作成する。
(d) [[u→]],[[t→]],[[s→']]を列方向に並べた([[u→]],[[t→]],[[s→']])をランダム置換する。
(e) [[u→]]を復元してu→を得る。
(f) u→[j]≠0を満たす各jについて、[[t→]][j]を復元して並べたベクトルt→ i、u→[j]を並べたベクトルu→ i、[[s→']][j]∨[[z→]][j]を計算して並べたベクトル[[f→ i]]を作成する。
実施形態2の等結合アルゴリズムの正当性と秘匿性は実施形態1と同様に確認できる。
実施形態1からの変更点はステップS3の処理である。この変更によって、秘匿された値の個数が定数倍、[[u→]]の計算は定数倍、ソート対象データが定数倍、ランダム置換対象データが定数倍、それぞれ増加しており、[[f→ i]]の計算には新たに入力の表のレコード数の総和に比例する論理和の計算が追加されている。従って、実施形態2の等結合アルゴリズムも実施形態1の等結合アルゴリズムと同様に、入力の表のレコード数の総和をmとすると通信量は比較プロトコル換算でO(m log m)である。
実施形態の等結合システムは、P個(Pは3以上の所定の整数)の秘密計算装置を含む。これらの各秘密計算装置は、例えば、インターネットなどの通信網あるいは同報通信路などを経由して、相互に通信可能とされている。
各秘密計算装置は、等結合アルゴリズムで必要とされる演算、つまり、少なくとも秘匿化、復元、加算、減算、乗算、ランダム置換、安定ソートを実行できるように構成されている。本発明において個々の演算を実現するための具体的な機能構成は、例えば上記非特許文献1、上記参考文献1、上記参考文献2のそれぞれで開示されるアルゴリズムを実行できるような構成で十分であり、これらは従来的構成であるから説明を省略する。
等結合システムに含まれうるハードウェアエンティティ(秘密計算装置)は、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit)〔キャッシュメモリやレジスタなどを備えていてもよい〕、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD−ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
また、この点に関する文献として、参考文献Aを挙げることができる。
(参考文献A)H. Cohen, "A Course in Computational Algebraic Number Theory", GTM 138, Springer-Verlag, 1993.
Claims (4)
- 複数の秘密計算装置を含み、当該秘密計算装置は通信部を用いて相互に通信可能となるよう通信網または同報通信路に接続し、これら秘密計算装置間で通信を行いながら実行される協調計算によって、q個の行列表示された表S,T1,…,Tq-1(ただし、Sはm0×n0行列、Tiはmi×ni行列(1≦i<q)とする)の秘匿文[[S]],[[T1]],…,[[Tq-1]]に対して、S,T1,…,Tq-1を等結合してダミーの行(以下、行をレコードといい、ダミーの行を空レコードという)を加えた表R(ただし、m∩をm∩=min(m0,…,mq-1)、nをn=Σi=0 q-1 niとして、Rはm∩×n行列である)の秘匿文[[R]]と、表Rの空レコードの位置を特定するためのベクトルg→(以下、空フラグという)の秘匿文[[g→]]を出力する等結合システムであって、
上記等結合システムでは、上記複数の秘密計算装置間で通信を行いながら実行される協調計算によって、
各整数i∈[1,q)について、[[S]]と[[Ti]]とに共通の属性については、その属性値として[[S]]の値を用い、[[S]]と[[Ti]]とに共通しない属性については、その属性値として任意の秘匿値を用いることによって、レコード数が[[S]]と同じで、[[S]]と[[Ti]]に共通の属性を含む秘匿化された表[[Si']]を[[Ti]]に接続した表[[Ti']]を作成し、
[[S]],[[T1']],…,[[Tq-1']]に対して、対応する表のレコード数と同じ要素数を持ち、対応する表に含まれるレコードを識別するための任意の値を要素に持つベクトルを秘匿化およびランダム置換したタグベクトル[[t→ S]],[[t→ T1']],…,[[t→ Tq-1']]を作成し、
各整数i∈[1,q)について、
(a) [[t→]]:=[[t→ S]]||[[t→ Ti']]、[[s→]]:=[[1]]m0||[[0]]mi+m0、[[s→']]:=[[0]]m0+mi||[[1]]m0、[[S]]と[[Ti']]のキー属性を連結したベクトル[[k→]]を作成し、
(b) ([[t→]],[[s→]],[[s→']])を[[k→]]に従って安定ソートし、
(c) [[u→]]を、
として定め、
(d) [[u→]],[[t→]],[[s→']]を並べた([[u→]],[[t→]],[[s→']])をランダム置換し、
(e) [[u→]]を復元してu→を得て、
(f) u→[j]≠0を満たす各jについて、[[t→]][j]を復元して並べたベクトルt→ i、u→[j]を並べたベクトルu→ i、[[s→']][j]を並べたベクトル[[f→ i]]を作成し、
各([[S]],[[t→ S]]),([[T1']],[[t→ T1']]),…,([[Tq-1']],[[t→ Tq-1']])をそれぞれランダム置換してから、[[tS]],[[t→ T1']],…,[[t→ Tq-1']]を復元してタグベクトルの平文tS,t→ T1',…,t→ Tq-1'を得て、
[[R]]の第j行(1≦j≦m0)である[[R]][j]を、[[R]][j]=[[S]][j]||[[T1']][wj,1]||…||[[Tq-1']][wj,q-1]で計算することによって出力の表[[R]]を作成し(ただし、ここでの記号||は行ベクトルの列方向の連結を表す。また、wj,iは、ti[hj,i]=TTi'[wj,i]を満たす値であり、hj,iは、tS[j]=ui[hj,i]を満たす値である)、[[g→]]の第j要素である[[g→]][j]を、[[g→]][j]=[[f→ 1]][y1,j]∨…∨[[f→ q-1]][yq-1,j]で計算することによって出力の空フラグ[[g→]]を作成する(ただし、yi,jは、tS[j]=ui[y1,j]を満たす値である)ことを特徴とし、
上記各秘密計算装置は、上記秘密計算を計算するための手段を備えている等結合システム。 - 複数の秘密計算装置を含み、当該秘密計算装置は通信部を用いて相互に通信可能となるよう通信網または同報通信路に接続し、これら秘密計算装置間で通信を行いながら実行される協調計算によって、大きさが秘匿されたq個の行列表示された表S,T1,…,Tq-1(ただし、Sはm0×n0行列、Tiはmi×ni行列(1≦i<q)とし、各表は、行にダミーの行(以下、ダミーの行を空レコードという)を含み、列に空レコードの位置を特定するための列ベクトルである空フラグを含んでいるとする)の秘匿文[[S]],[[T1]],…,[[Tq-1]]に対して、S,T1,…,Tq-1を等結合してダミーの行(以下、行をレコードという)を加えた表R(ただし、m∩をm∩=min(m0,…,mq-1)、nをn=Σi=0 q-1 niとして、Rはm∩×n行列である)の秘匿文[[R]]と、表Rの空レコードの位置を特定するための空フラグg→の秘匿文[[g→]]を出力する等結合システムであって、
上記等結合システムでは、上記複数の秘密計算装置間で通信を行いながら実行される協調計算によって、
各整数i∈[1,q)について、[[S]]と[[Ti]]とに共通の属性については、その属性値として[[S]]の値を用い、[[S]]と[[Ti]]とに共通しない属性については、その属性値として任意の秘匿値を用いることによって、レコード数が[[S]]と同じで、[[S]]と[[Ti]]に共通の属性を含む秘匿化された表[[Si']]を[[Ti]]に接続した表[[Ti']]を作成し、
[[S]],[[T1']],…,[[Tq-1']]に対して、対応する表のレコード数と同じ要素数を持ち、対応する表に含まれるレコードを識別するための任意の値を要素に持つベクトルを秘匿化およびランダム置換したタグベクトル[[t→ S]],[[t→ T1']],…,[[t→ Tq-1']]を作成し、
各整数i∈[1,q)について、
(a) [[t→]]:=[[t→ S]]||[[t→ Ti']]、[[s→]]:=[[1]]m0||[[0]]mi+m0、[[s→']]:=[[0]]m0+mi||[[1]]m0、[[t→']]:=[[*]]m0+mi||[[t→ S]]、[[S]]と[[Ti']]のキー属性値を連結したベクトル[[k→]]、[[S]]と[[Ti]]と[[Si']]の空フラグを連結したベクトル[[z→]]を作成し(ただし、[[*]]は任意の秘匿文である)、
(b) ([[t→]],[[s→]],[[s→']],[[z→]],[[t→']])を([[z→]],[[k→]])に従って安定ソートし(ただし、([[z→]],[[k→]])は、[[z→]][j]||[[k→]][j]をj番目の要素とする(m0+mi+m0)行1列の列ベクトルである)、
(c) [[u→]]を
として定め、
(d) [[u→]],[[t→]],[[s→']]を並べた([[u→]],[[t→]],[[s→']])をランダム置換し、
(e) [[u→]]を復元してu→を得て、
(f) u→[j]≠0を満たす各jについて、[[t→]][j]を復元して並べたベクトルt→ i、u→[j]を並べたベクトルu→ i、[[s→']][j]∨[[z→]][j]を計算して並べたベクトル[[f→ i]]を作成し、
各([[S]],[[t→ S]]),([[T1']],[[t→ T1']]),…,([[Tq-1']],[[t→ Tq-1']])をそれぞれランダム置換してから、[[tS]],[[t→ T1']],…,[[t→ Tq-1']]を復元してタグベクトルの平文tS,t→ T1',…,t→ Tq-1'を得て、
[[R]]の第j行(1≦j≦m0)である[[R]][j]を、[[R]][j]=[[S]][j]|| [[T1']][wj,1]||…||[[Tq-1']][wj,q-1]で計算することによって出力の表[[R]]を作成し(ただし、ここでの記号||は行ベクトルの列方向の連結を表す。また、wj,iは、ti[hj,i]=TTi'[wj,i]を満たす値であり、hj,iは、tS[j]=ui[hj,i]を満たす値である)、[[g→]]の第j要素である[[g→]][j]を、[[g→]][j]=[[f→ 1]][y1,j]∨…∨[[f→ q-1]][yq-1,j]で計算することによって出力の空フラグ[[g→]]を作成する(ただし、yi,jは、tS[j]=ui[y1,j]を満たす値である)ことを特徴とし、
上記各秘密計算装置は、上記秘密計算を計算するための手段を備えている等結合システム。 - 複数の秘密計算装置を含み、当該秘密計算装置は通信部を用いて相互に通信可能となるよう通信網または同報通信路に接続した等結合システムにおいて、これら秘密計算装置間で通信を行いながら実行される協調計算によって、q個の行列表示された表S,T1,…,Tq-1(ただし、Sはm0×n0行列、Tiはmi×ni行列(1≦i<q)とする)の秘匿文[[S]],[[T1]],…,[[Tq-1]]に対して、S,T1,…,Tq-1を等結合してダミーの行(以下、行をレコードといい、ダミーの行を空レコードという)を加えた表R(ただし、m∩をm∩=min(m0,…,mq-1)、nをn=Σi=0 q-1 niとして、Rはm∩×n行列である)の秘匿文[[R]]と、表Rの空レコードの位置を特定するためのベクトルg→(以下、空フラグという)の秘匿文[[g→]]を出力する等結合方法であって、
上記複数の秘密計算装置間で通信を行いながら実行される協調計算によって、
各整数i∈[1,q)について、[[S]]と[[Ti]]とに共通の属性については、その属性値として[[S]]の値を用い、[[S]]と[[Ti]]とに共通しない属性については、その属性値として任意の秘匿値を用いることによって、レコード数が[[S]]と同じで、[[S]]と[[Ti]]に共通の属性を含む秘匿化された表[[Si']]を[[Ti]]に接続した表[[Ti']]を作成するステップと、
[[S]],[[T1']],…,[[Tq-1']]に対して、対応する表のレコード数と同じ要素数を持ち、対応する表に含まれるレコードを識別するための任意の値を要素に持つベクトルを秘匿化およびランダム置換したタグベクトル[[t→ S]],[[t→ T1']],…,[[t→ Tq-1']]を作成するステップと、
各整数i∈[1,q)について、
(a) [[t→]]:=[[t→ S]]||[[t→ Ti']]、[[s→]]:=[[1]]m0||[[0]]mi+m0、[[s→']]:=[[0]]m0+mi||[[1]]m0、[[S]]と[[Ti']]のキー属性を連結したベクトル[[k→]]を作成し、
(b) ([[t→]],[[s→]],[[s→']])を[[k→]]に従って安定ソートし、
(c) [[u→]]を、
として定め、
(d) [[u→]],[[t→]],[[s→']]を並べた([[u→]],[[t→]],[[s→']])をランダム置換し、
(e) [[u→]]を復元してu→を得て、
(f) u→[j]≠0を満たす各jについて、[[t→]][j]を復元して並べたベクトルt→ i、u→[j]を並べたベクトルu→ i、[[s→']][j]を並べたベクトル[[f→ i]]を作成するステップと、
各([[S]],[[t→ S]]),([[T1']],[[t→ T1']]),…,([[Tq-1']],[[t→ Tq-1']])をそれぞれランダム置換してから、[[tS]],[[t→ T1']],…,[[t→ Tq-1']]を復元してタグベクトルの平文tS,t→ T1',…,t→ Tq-1'を得るステップと、
[[R]]の第j行(1≦j≦m0)である[[R]][j]を、[[R]][j]=[[S]][j]|| [[T1']][wj,1]||…||[[Tq-1']][wj,q-1]で計算することによって出力の表[[R]]を作成し(ただし、ここでの記号||は行ベクトルの列方向の連結を表す。また、wj,iは、ti[hj,i]=TTi'[wj,i]を満たす値であり、hj,iは、tS[j]=ui[hj,i]を満たす値である)、[[g→]]の第j要素である[[g→]][j]を、[[g→]][j]= [[f→ 1]][y1,j]∨…∨[[f→ q-1]][yq-1,j]]で計算することによって出力の空フラグ[[g→]]を作成する(ただし、yi,jは、tS[j]=ui[y1,j]を満たす値である)ステップと
を有する等結合方法。 - 複数の秘密計算装置を含み、当該秘密計算装置は通信部を用いて相互に通信可能となるよう通信網または同報通信路に接続した等結合システムにおいて、これら秘密計算装置間で通信を行いながら実行される協調計算によって、大きさが秘匿されたq個の行列表示された表S,T1,…,Tq-1(ただし、Sはm0×n0行列、Tiはmi×ni行列(1≦i<q)とし、各表は、行にダミーの行(以下、ダミーの行を空レコードという)を含み、列に空レコードの位置を特定するための列ベクトルである空フラグを含んでいるとする)の秘匿文[[S]],[[T1]],…,[[Tq-1]]に対して、S,T1,…,Tq-1を等結合してダミーの行(以下、行をレコードという)を加えた表R(ただし、m∩をm∩=min(m0,…,mq-1)、nをn=Σi=0 q-1 niとして、Rはm∩×n行列である)の秘匿文[[R]]と、表Rの空レコードの位置を特定するための空フラグg→の秘匿文[[g→]]を出力する等結合方法であって、
上記複数の秘密計算装置間で通信を行いながら実行される協調計算によって、
各整数i∈[1,q)について、[[S]]と[[Ti]]とに共通の属性については、その属性値として[[S]]の値を用い、[[S]]と[[Ti]]とに共通しない属性については、その属性値として任意の秘匿値を用いることによって、レコード数が[[S]]と同じで、[[S]]と[[Ti]]に共通の属性を含む秘匿化された表[[Si']]を[[Ti]]に接続した表[[Ti']]を作成するステップと、
[[S]],[[T1']],…,[[Tq-1']]に対して、対応する表のレコード数と同じ要素数を持ち、対応する表に含まれるレコードを識別するための任意の値を要素に持つベクトルを秘匿化およびランダム置換したタグベクトル[[t→ S]],[[t→ T1']],…,[[t→ Tq-1']]を作成するステップと、
各整数i∈[1,q)について、
(a)[[t→]]:=[[t→ S]]||[[t→ Ti']]、[[s→]]:=[[1]]m0||[[0]]mi+m0、[[s→']]:=[[0]]m0+mi||[[1]]m0、[[t→']]:=[[*]]m0+mi||[[t→ S]]、[[S]]と[[Ti']]のキー属性値を連結したベクトル[[k→]]、[[S]]と[[Ti]]と[[Si']]の空フラグを連結したベクトル[[z→]]を作成し(ただし、[[*]]は任意の秘匿文である)、
(b) ([[t→]],[[s→]],[[s→']],[[z→]],[[t→']])を([[z→]],[[k→]])に従って安定ソートし(ただし、([[z→]],[[k→]])は、[[z→]][j]||[[k→]][j]をj番目の要素とする(m0+mi+m0)行1列の列ベクトルである)、
(c) [[u→]]を
として定め、
(d) [[u→]],[[t→]],[[s→']]を並べた([[u→]],[[t→]],[[s→']])をランダム置換し、
(e) [[u→]]を復元してu→を得て、
(f) u→[j]≠0を満たす各jについて、[[t→]][j]を復元して並べたベクトルt→ i、u→[j]を並べたベクトルu→ i、[[s→']][j]∨[[z→]][j]を計算して並べたベクトル[[f→ i]]を作成するステップと、
各([[S]],[[t→ S]]),([[T1']],[[t→ T1']]),…,([[Tq-1']],[[t→ Tq-1']])をそれぞれランダム置換してから、[[tS]],[[t→ T1']],…,[[t→ Tq-1']]を復元してタグベクトルの平文tS,t→ T1',…,t→ Tq-1'を得るステップと、
[[R]]の第j行(1≦j≦m0)である[[R]][j]を、[[R]][j]=[[S]][j]|| [[T1']][wj,1]||…||[[Tq-1']][wj,q-1]で計算することによって出力の表[[R]]を作成し(ただし、ここでの記号||は行ベクトルの列方向の連結を表す。また、wj,iは、ti[hj,i]=TTi'[wj,i]を満たす値であり、hj,iは、tS[j]=ui[hj,i]を満たす値である)、[[g→]]の第j要素である[[g→]][j]を、[[g→]][j]= [[f→ 1]][y1,j]∨…∨[[f→ q-1]][yq-1,j]で計算することによって出力の空フラグ[[g→]]を作成する(ただし、yi,jは、tS[j]=ui[y1,j]を満たす値である)ステップと
を有する等結合方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013008704A JP5907902B2 (ja) | 2013-01-21 | 2013-01-21 | 秘密計算による表の等結合システム、方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013008704A JP5907902B2 (ja) | 2013-01-21 | 2013-01-21 | 秘密計算による表の等結合システム、方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014139640A JP2014139640A (ja) | 2014-07-31 |
JP5907902B2 true JP5907902B2 (ja) | 2016-04-26 |
Family
ID=51416370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013008704A Active JP5907902B2 (ja) | 2013-01-21 | 2013-01-21 | 秘密計算による表の等結合システム、方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5907902B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10333697B2 (en) * | 2014-10-08 | 2019-06-25 | Nippon Telegraph And Telephone Corporation | Nondecreasing sequence determining device, method and program |
JP6321216B2 (ja) * | 2015-01-15 | 2018-05-09 | 日本電信電話株式会社 | 行列・キー生成装置、行列・キー生成システム、行列結合装置、行列・キー生成方法、プログラム |
JP6534778B2 (ja) * | 2016-07-06 | 2019-06-26 | 日本電信電話株式会社 | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム |
JP6605746B2 (ja) * | 2016-09-27 | 2019-11-13 | 日本電信電話株式会社 | 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム |
US11157612B2 (en) * | 2017-05-25 | 2021-10-26 | Nippon Telegraph And Telephone Corporation | Secret tampering detection system, secret tampering detection apparatus, secret tampering detection method, and program |
WO2019225401A1 (ja) * | 2018-05-25 | 2019-11-28 | 日本電信電話株式会社 | 秘密集約関数計算システム、秘密計算装置、秘密集約関数計算方法、およびプログラム |
US11797540B2 (en) | 2018-06-20 | 2023-10-24 | Nippon Telegraph And Telephone Corporation | Secret joining system, method, secret calculation apparatus and program |
CN112567443B (zh) * | 2018-08-13 | 2024-05-14 | 日本电信电话株式会社 | 秘密联接信息生成系统及方法、秘密联接系统及方法、秘密计算装置、记录介质 |
WO2020246018A1 (ja) * | 2019-06-07 | 2020-12-10 | 日本電信電話株式会社 | 秘密共役勾配法計算システム、秘密計算装置、共役勾配法計算装置、秘密共役勾配法計算方法、共役勾配法計算方法、およびプログラム |
CN117561557A (zh) * | 2021-07-02 | 2024-02-13 | 日本电信电话株式会社 | 秘密等结合装置、秘密等结合方法、以及程序 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002169808A (ja) * | 2000-11-30 | 2002-06-14 | Hitachi Ltd | セキュアマルチデータベースシステム |
US9147079B2 (en) * | 2010-09-28 | 2015-09-29 | Nec Corporation | Encrypted database system, client terminal, encrypted database server, natural joining method, and program |
JP5727258B2 (ja) * | 2011-02-25 | 2015-06-03 | ウイングアーク1st株式会社 | 分散型データベースシステム |
-
2013
- 2013-01-21 JP JP2013008704A patent/JP5907902B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014139640A (ja) | 2014-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5907902B2 (ja) | 秘密計算による表の等結合システム、方法 | |
CN111784001B (zh) | 一种模型训练方法、设备及计算机可读存储介质 | |
US9875370B2 (en) | Database server and client for query processing on encrypted data | |
Lueks et al. | Sublinear scaling for multi-client private information retrieval | |
Cheon et al. | Search-and-compute on encrypted data | |
JP5878462B2 (ja) | 難読化された値の生成 | |
EP3096309B1 (en) | Secret calculation method, secret calculation system, sorting device, and program | |
CN107409040A (zh) | 用于推荐数据加密而不影响程序语义的代码分析工具 | |
JP6971926B2 (ja) | 暗号化データベースに関する解析のためのシステムおよびアーキテクチャ | |
Knapp et al. | Toric Methods in F‐Theory Model Building | |
WO2018102861A1 (en) | Secure text analytics | |
WO2016181904A1 (ja) | データベースシステム、データベース処理方法 | |
US11250004B2 (en) | Secure equijoin system, secure equijoin device, secure equijoin method, and program | |
JP2014164145A (ja) | 秘密集合演算装置及び方法 | |
JP5969716B1 (ja) | データ管理システム、データ管理プログラム、通信端末及びデータ管理サーバ | |
JP5961571B2 (ja) | 秘密表除算装置及び方法 | |
JP7060115B2 (ja) | 秘密配列アクセス装置、秘密配列アクセス方法、およびプログラム | |
Gouveia et al. | Reverse multistar inequalities and vehicle routing problems with a lower bound on the number of customers per route | |
WO2018008547A1 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム | |
US20210314145A1 (en) | Secure joining system, method, secure computing apparatus and program | |
WO2016056502A1 (ja) | 非減少列判定装置、非減少列判定方法及びプログラム | |
Kadak et al. | On the Classical Paranormed Sequence Spaces and Related Duals over the Non‐Newtonian Complex Field | |
CN105917400A (zh) | 元素复制装置、元素复制方法、以及程序 | |
JP5689845B2 (ja) | 秘密計算装置、秘密計算方法、およびプログラム | |
US20180270056A1 (en) | Matrix and key generation device, matrix and key generation system, matrix coupling device, matrix and key generation method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150213 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151109 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151117 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151217 |
|
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: 20160315 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160322 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Ref document number: 5907902 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |