秘密结合系统、方法、秘密计算装置以及程序与流程

文档序号:23802810发布日期:2021-02-03 06:44阅读:95来源:国知局
秘密结合系统、方法、秘密计算装置以及程序与流程

[0001]
本发明涉及秘密计算技术。本发明尤其涉及在保持隐匿性的状态下将2个表格结合的技术。


背景技术:

[0002]
在秘密计算技术领域中,寻求在保持隐匿性的状态下将2个表格结合的技术。
[0003]
作为在保持隐匿性的状态下将2个表格结合的技术,已知例如非专利文献1所记载的技术。在非专利文献1中实现了存在键(key)重复的情况下的等结合(equal combination)。
[0004]
现有技术文献
[0005]
非专利文献
[0006]
非专利文献1:桐淵直人,五十嵐大,諸橋玄武,濱田浩気,“属性情報

履歴情報

秘匿統合分析


けた
秘密計算
による
高速

等結合
アルゴリズムとその
実装”,css2016,2016


技术实现要素:

[0007]
发明要解决的课题
[0008]
本发明提供在不存在键重复的情况下比非专利文献1的技术更高速地在保持隐匿性的状态下将2个表格结合的秘密结合系统、方法、秘密计算装置以及程序。
[0009]
用于解决课题的手段
[0010]
基于本发明的一方式的秘密结合系统是包含多个秘密计算装置的秘密结合系统,f是任意的环,将α设为任意的向量,[α]是α被进行秘密分散后的份额,将β设为任意的置换,{{β}}是β被进行秘密分散后的份额,m0,m1,l0,l1是1以上的整数,k0∈f
m0
是第一表格的键的向量,k1∈f
m1
是第二表格的键的向量,设为p=0,

,l
0-1,v
0,p
∈f
m0
是第一表格的属性p的属性值的向量,设为q=0,

,l
1-1,v
1,q
∈f
m1
是第二表格的属性q的属性值的向量,π0,π1分别是长度m0,m1的规定的置换,多个秘密计算装置包含:多个向量结合部,使用向量k0的份额[k0]以及向量k1的份额[k1],生成将向量k0以及向量k1结合后的向量k'∈[f]
m0+m1
的份额[k'];多个第一置换计算部,使用份额[k'],生成将向量k'按升序进行稳定排序的置换σ的份额{{σ}};多个第一置换应用部,使用份额[k']以及份额{{σ}},生成对向量k'应用了置换σ的向量σ(k')的份额[σ(k')];多个第一向量生成部,使用份额[σ(k')],生成在向量σ(k')的某个要素和该要素的下一个要素相同的情况下具有1、不同的情况下具有0作为与该要素对应的要素的向量e的份额[e];多个第二向量生成部,使用份额[e],生成在向量e的某个要素和该要素的前一个要素的一方为1的情况下具有1、除此以外的情况下具有0作为与该要素对应的要素的向量e'的份额[e'];多个比特反转部,使用份额[e'],生成使向量e'的各要素比特反转后的向量e”的份额[e”];多个第二置换计算部,使用份额[e”],生成将向量e”按升序进行稳定排序的置换σ'的份额{{σ'}};多个第二置换应用部,使用份额[e”]以及份额
{{σ'}},生成对向量e”应用了置换σ'的向量σ'(e”)的份额[σ'(e”)];多个第三向量生成部,使用份额[σ'(e”)],生成在向量σ'(e”)的某个要素i为0的情况下具有

i/2

、非0的情况下具有0作为与该要素i对应的要素的向量x的份额[x];多个逆置换应用部,使用份额[x]、份额{{σ}}以及份额{{σ'}},生成对向量x应用了置换σ'的逆置换σ'-1
以及置换σ的逆置换σ-1
后的向量σ-1
(σ'-1
(x))的份额[σ-1
(σ'-1
(x))];多个向量分离部,使用份额[σ-1
(σ'-1
(x))],生成由从向量σ-1
(σ'-1
(x))的开头起m0个要素构成的向量s0的份额[s0]、以及由向量σ-1
(σ'-1
(x))的剩余的m1个要素构成的向量s1的份额[s1];多个第三置换应用部,使用份额[s0]、份额[s1]以及置换π0,π1,生成对向量s0应用了置换π0后的向量τ0:=π0(s0)的份额[π0(s0)]、以及对向量s1应用了置换π1后的向量τ1:=π1(s1)的份额[π1(s1)],公开τ0:=π0(s0)以及τ1:=π1(s1);多个属性值置换部,使用置换π0的份额{{π0}}、置换π1的份额{{π1}}、向量v
0,p
的份额[v
0,p
]以及向量v
1,q
的份额[v
1,q
],生成将第一表格的各属性p的属性值的向量v
0,p
以置换π0进行置换后的向量v'
0,p
的份额[v'
0,p
]、以及将第二表格的各属性q的属性值的向量v
1,q
以置换π1进行置换后的向量v'
1,q
的份额[v'
1,q
];以及多个第四向量生成部,使用向量τ0、向量τ1、份额[v'
0,p
]以及份额[v'
1,q
],生成在向量τ0的第i'个要素非0的情况下具有向量v'
0,p
的第i'个要素作为第i'-1个要素的向量v”0,p
的份额[v”0,p
]、以及在向量τ1的第i'个要素非0的情况下具有向量v'
1,q
的第i'个要素作为第i'-1个要素的向量v”1,q
的份额[v”1,q
]。
[0011]
发明效果
[0012]
通过使用逆置换,在不存在键重复的情况下能够比非专利文献1的技术更高速地在保持隐匿性的状态下将2个表格结合。
附图说明
[0013]
图1是例示秘密结合系统的功能结构的图。
[0014]
图2是例示秘密计算装置的功能结构的图。
[0015]
图3是例示秘密结合方法的处理过程的图。
[0016]
图4是表示计算机的功能结构例的图。
具体实施方式
[0017]
以下,对本发明的实施方式进行详细说明。另外,对附图中具有相同的功能的结构部附加相同的编号,省略重复说明。
[0018]
参照图1,对实施方式的秘密结合系统的结构例进行说明。秘密结合系统包含n(≥2)台秘密计算装置11,

,1
n
。在本方式中,秘密计算装置11,

,1
n
分别连接到通信网络2。通信网络2是构成为所连接的各装置相互能够通信的线路交换方式或者分组(packet)交换方式的通信网络,例如是互联网(internet)或lan(局域网(local area network))、wan(广域网(wide area network))等。另外,各装置不需要必定得经由通信网络2能够在线(online)通信。例如,也可以构成为,将要输入给秘密计算装置11,

,1
n
的信息存储在磁带或usb存储器等便携式记录介质中,从该便携式记录介质离线(offline)输入给秘密计算装置11,

,1
n

[0019]
参照图2,对秘密结合系统所包含的秘密计算装置1
n
(n=1,

,n)的结构例进行说明。例如如图2所示,秘密结合系统的秘密计算装置1
n
包括向量结合部11
n
、第一置换计算部
12
n
、第一置换应用部13
n
、第一向量生成部14
n
、第二向量生成部15
n
、比特反转部16
n
、第二置换计算部17
n
、第二置换应用部18
n
、第三向量生成部19
n
、逆置换应用部110
n
、向量分离部111
n
、第三置换应用部112
n
、属性值置换部113
n
以及第四向量生成部114
n

[0020]
通过秘密计算装置1
n
(1≤n≤n)的各结构部与其他秘密计算装置1
n'
(n'=1,

,n,其中n≠n')的各结构部协作并进行后述的各步骤的处理,实施方式的秘密结合方法得以实现。
[0021]
另外,各步骤的处理通过秘密计算来进行。即,秘密计算装置1
n
不将份额(share)恢复、换言之不知道份额的内容,而进行各步骤的处理。
[0022]
秘密计算装置1
n
例如是在具有中央运算处理装置(中央处理单元(cpu:central processing unit))、主存储装置(随机存取存储器(ram:random access memory))等的公知或者专用的计算机中读入特别的程序而被构成的特别的装置。秘密计算装置1
n
例如基于中央运算处理装置的控制而执行各处理。输入给秘密计算装置1
n
的数据或在各处理中得到的数据例如被储存于主存储装置,储存于主存储装置的数据根据需要被读出到中央运算处理装置而在其他处理中被利用。秘密计算装置1
n
的各处理部的至少一部分也可以通过集成电路等硬件而被构成。
[0023]
在以下的说明中,设α为任意的向量而[α]是α被进行秘密分散后的份额,设β为任意的置换而{{β}}是β被进行秘密分散后的份额。
[0024]
参照图3,对实施方式的秘密结合系统所执行的秘密结合方法的处理过程进行说明。
[0025]
以下说明的秘密结合系统将第一表格和第二表格秘密垂直结合。换言之,以下说明的秘密结合系统保持隐匿性、且得到关于第一表格以及第二表格的共同的键的、第一表格的属性值以及第二表格的属性值。
[0026]
设m0,m1,l0,l1是1以上的整数。m0,m1,l0,l1可以是相同的值,也可以是不同的值。
[0027]
第一表格具有m0个记录(record)。m0个记录各自具有1个键、以及l0个属性的属性值。设k0∈f
m0
是第一表格的键的向量。设为p=0,

,l
0-1,设v
0,p
∈f
m0
是第一表格的属性p的属性值的向量。设在第一表格之中不存在重复的键。
[0028]
[f]
m0
的上标字符中的m0意思是“m
0”。这样,在上标字符中,有省略更多的上标字符以及下标字符的表现的情况。同样,在下标字符中,有省略更多的上标字符以及下标字符的表现的情况。
[0029]
第二表格有m1个记录。m1个记录各自具有1个键、以及l1个属性的属性值。设k1∈f
m1
是第二表格的键的向量。设为q=0,

,l
1-1,设v
1,q
∈f
m1
是上述第二表格的属性q的属性值的向量。设在第二表格中不存在重复的键。
[0030]
例如,设第一表格的记录数为3,由键的向量k0=(1,2,3)
t
、以及1个属性z1的属性值的向量v
0,1
=(5,10,1)
t
构成。
[0031]
此外,设第二表格的记录数为4,由键的向量k1=(1,3,4,5)
t
、以及1个属性z1'的属性值的向量v
1,1
=(2,4,9,8)
t
构成。
[0032]
<步骤s1>
[0033]
向量k0的份额[k0]以及向量k1的份额[k1]被输入向量结合部111,

,11
n

[0034]
向量结合部111,

,11
n
将[k0]和[k1]结合而得到[k']∈[f]
m0+m1

[0035]
更详细而言,向量结合部111,

,11
n
使用向量k0的份额[k0]以及向量k1的份额[k1],生成将向量k0以及向量k1结合后的向量k'∈[f]
m0+m1
的份额[k'](步骤s1)。
[0036]
所生成的份额[k']被输出给第一置换计算部121,

,12
n
以及第一置换应用部131,

,13
n

[0037]
例如,设向量k0=(1,2,3)
t
,向量k1=(1,3,4,5)
t
。在该情况下,成为向量k'=(1,2,3,1,3,4,5)
t

[0038]
<步骤s2>
[0039]
份额[k']被输入给第一置换计算部121,

,12
n

[0040]
第一置换计算部121,

,12
n
得到[k']的排序(sort){{σ}}。
[0041]
更详细而言,第一置换计算部121,

,12
n
使用份额[k'],生成将向量k'按升序进行稳定排序的置换σ的份额{{σ}}(步骤s2)。
[0042]
稳定排序是指同等的数据的排序前的顺序在排序后也被保存的情况。进行稳定排序的置换σ的份额{{σ}}的生成例如能够通过参考文献1的方法来实现。
[0043]
〔参考文献1〕五十嵐大、濱田浩気、菊池亮、千田浩司、「超高速秘密計算
ソートの
設計

実装:秘密計算
がスクリプト
言語



日」、css2017、2017
[0044]
所生成的份额{{σ}}被输出给第一置换应用部131,

,13
n
以及逆置换应用部1101,

,110
n

[0045]
例如,设向量k'=(1,2,3,1,3,4,5)
t
。在该情况下,置换σ成为以下的算式(1)那样。例如,设为编号始于1而被标记,置换σ的各列(i,j)
t
意思是将应用了置换的向量的第i个要素移动到第j个的情况。
[0046]
[算式1]
[0047][0048]
另外,向量k'的各要素也可以是被进行比特分解后的要素。即,对于向量k'的各要素而言,该各要素也可以是用0,1的比特来表现的要素。
[0049]
<步骤s3>
[0050]
份额[k']以及份额{{σ}}被输入给第一置换应用部131,

,13
n

[0051]
第一置换应用部131,

,13
n
对[k']应用{{σ}}而得到[σ(k')]。
[0052]
更详细而言,第一置换应用部131,

,13
n
使用份额[k']以及份额{{σ}},生成对向量k'应用了置换σ的向量σ(k')的份额[σ(k')](步骤s3)。
[0053]
所生成的份额[σ(k')]被输出给第一向量生成部141,

,14
n

[0054]
例如,设向量k'=(1,2,3,1,3,4,5)
t
,置换σ是上述的算式(1)所表示的置换。在该情况下,成为向量σ(k')=(1,1,2,3,3,4,5)
t

[0055]
<步骤s4>
[0056]
份额[σ(k')]被输入给第一向量生成部141,

,14
n

[0057]
第一向量生成部141,

,14
n
得到[e
i
]:=[σ(k')
i
=σ(k')
i+1
]、其中[e
m0+m1-1
]:=[0]的[e]。将i设为0以上的整数,e
i
意思是向量e的第i个要素,σ(k')
i
意思是向量σ(k')的第i个要素。这样,将i设为0以上的整数,向量的下标i意思是该向量的第i个要素。":="意思是在":="左边的变量中代入":="右边的值。例如,a:=b意思是在变量a中代入b的值。
[0058]
另外,设若将向量的要素数设为m,则将向量的最先的要素称为第0个要素,将向量的下一个要素称为第1个要素,将向量的最后的要素称为第m-1个要素。
[0059]
更详细而言,第一向量生成部141,

,14
n
使用份额[σ(k')],生成在向量σ(k')的某个要素与该要素的下一个要素相同的情况下具有1、不同的情况下具有0作为与该要素对应的要素的向量e的份额[e](步骤s4)。其中,设向量e的最后的要素为0。
[0060]
所生成的份额[e]被输出给第二向量生成部151,

,15
n

[0061]
例如,设向量σ(k')=(1,1,2,3,3,4,5)
t
。在该情况下,成为向量e=(1,0,0,1,0,0,0)
t

[0062]
<步骤s5>
[0063]
份额[e]被输入给第二向量生成部151,

,15
n

[0064]
第二向量生成部151,

,15
n
得到[e'
i
]=[e
i
(+)e
i-1
]、其中[e'0]=[e0]的[e']。(+)是逻辑异或或者加法运算。
[0065]
更详细而言,第二向量生成部151,

,15
n
使用份额[e],生成在向量e的某个要素和该要素的前一个要素的一方为1的情况下具有1、在除此以外的情况下具有0作为与该要素对应的要素的向量e'的份额[e'](步骤s5)。其中,设向量e'的最先的要素与向量e的最先的要素相同。
[0066]
所生成的份额[e']被输出给比特反转部161,

,16
n

[0067]
例如,设向量e=(1,0,0,1,0,0,0)
t
。在该情况下,成为向量e'=(1,1,0,1,1,0,0)
t

[0068]
<步骤s6>
[0069]
份额[e']被输入给比特反转部161,

,16
n

[0070]
比特反转部161,

,16
n
得到[e']的比特反转[e”]。
[0071]
更详细而言,比特反转部161,

,16
n
使用份额[e'],生成使向量e'的各要素比特反转后的向量e”的份额[e”](步骤s6)。
[0072]
所生成的份额[e”]被输出给第二置换计算部171,

,17
n
以及第二置换应用部181,

,18
n

[0073]
例如,设e'=(1,1,0,1,1,0,0)
t
。在该情况下,成为向量e”=(0,0,1,0,0,1,1)
t

[0074]
另外,在向量k'的各要素是被进行比特分解后的要素的情况下,e”的环也可以通过例如mod p变换而被变更。p是3以上的质数。mod p变换例如能够通过参考文献1的scheme 5所记载的方法实现。
[0075]
<步骤s7>
[0076]
份额[e”]被输入给第二置换计算部171,

,17
n

[0077]
第二置换计算部171,

,17
n
得到[e”]的排序{{σ'}}。
[0078]
更详细而言,第二置换计算部171,

,17
n
使用份额[e”],生成将向量e”按升序进行稳定排序的置换σ'的份额{{σ'}}(步骤s7)。
[0079]
所生成的份额{{σ'}}被输出给第二置换应用部181,

,18
n
以及逆置换应用部1101,

,110
n

[0080]
例如,设向量e”=(0,0,1,0,0,1,1)
t
。在该情况下,置换σ'成为以下的算式(2)那样。
[0081]
[算式2]
[0082][0083]
<步骤s8>
[0084]
份额[e”]以及份额{{σ'}}被输入给第二置换应用部181,

,18
n

[0085]
第二置换应用部181,

,18
n
对[e”]应用{{σ'}}而得到[σ'(e”)]。
[0086]
更详细而言,第二置换应用部181,

,18
n
使用份额[e”]以及份额{{σ'}},生成对向量e”应用置换σ'后的向量σ'(e”)的份额[σ'(e”)](步骤s8)。
[0087]
所生成的份额[σ'(e”)]被输出给第三向量生成部191,

,19
n

[0088]
例如,设向量e”=(0,0,1,0,0,1,1)
t
,置换σ'是上述的算式(2)所表示的置换。在该情况下,成为向量σ'(e”)=(0,0,0,0,1,1,1)
t

[0089]
<步骤s9>
[0090]
份额[σ'(e”)]被输入给第三向量生成部191,

,19
n

[0091]
第三向量生成部191,

,19
n
得到[x]:=[σ'(e”)
i
?0:

i/2

+1]。
[0092]
更详细而言,第三向量生成部191,

,19
n
使用份额[σ'(e”)],生成在向量σ'(e”)的某个要素i为0的情况下具有

i/2

、非0的情况下具有0作为与该要素i对应的要素的向量x的份额[x](步骤s9)。
[0093]
这里,i=0,

,m0+m
1-1,

i/2

意思是i/2以下的最大整数。
[0094]
所生成的份额[x]被输出给逆置换应用部1101,

,110
n

[0095]
例如,设向量σ'(e”)=(0,0,0,0,1,1,1)
t
。在该情况下,成为向量x=(1,1,2,2,0,0,0)
t

[0096]
<步骤s10>
[0097]
份额[x]、份额{{σ}}以及份额{{σ'}}被输入给逆置换应用部1101,

,110
n

[0098]
逆置换应用部1101,

,110
n
对[x]逆应用{{σ'}}和{{σ}}而得到[σ-1
(σ'-1
(x))]。
[0099]
更详细而言,逆置换应用部1101,

,110
n
使用份额[x]、份额{{σ}}以及份额{{σ'}},生成对向量x应用置换σ'的逆置换σ'-1
以及置换σ的逆置换σ-1
后的向量σ-1
(σ'-1
(x))的份额[σ-1
(σ'-1
(x))](步骤s10)。
[0100]
所生成的份额[σ-1
(σ'-1
(x))]被输出给向量分离部1111,

,111
n

[0101]
例如,设向量x=(1,1,2,2,0,0,0)
t
,置换σ是上述的算式(1)所表示的置换,置换σ'是上述的算式(2)所表示的置换。在该情况下,成为向量σ-1
(σ'-1
(x))=(1,0,2,1,2,0,0)
t

[0102]
<步骤s111>
[0103]
份额[σ-1
(σ'-1
(x))]被输入给向量分离部1111,

,111
n

[0104]
向量分离部1111,

,111
n
将[σ-1
(σ'-1
(x))]分离为从开头起m0个要素[s0]以及剩余的m1个要素[s1]。
[0105]
更详细而言,向量分离部1111,

,111
n
使用份额[σ-1
(σ'-1
(x))],生成由从向量σ-1
(σ'-1
(x))的开头起m0个要素构成的向量s0的份额[s0]、以及由向量σ-1
(σ'-1
(x))的剩余的m1个要素构成的向量s1的份额[s1](步骤s11)。
[0106]
所生成的份额[s0]以及份额[s1]被输出给第三置换应用部1121,

,112
n

[0107]
例如,设向量σ-1
(σ'-1
(x))=(1,0,2,1,2,0,0)
t
。在该情况下,成为向量s0=(1,0,
2)
t
、向量s1=(1,2,0,0)
t

[0108]
向量s0,s1表示在第一表格和第二表格中重复的键的位置。例如,设第一表格的键的向量为k0=(1,2,3)
t
,第二表格的键的向量为k1=(1,3,4,5)
t
。在该情况下,成为向量s0=(1,0,2)
t
、向量s1=(1,2,0,0)
t
。在第一表格和第二表格中重复的键是“1”、“3”。向量s0=(1,0,2)
t
以及向量s1=(1,2,0,0)
t
分别表示向量k0=(1,2,3)
t
以及k1=(1,3,4,5)
t
之中的“1”、“3”的位置。
[0109]
<步骤s12>
[0110]
份额[s0]以及份额[s1]被输入给第三置换应用部1121,

,112
n

[0111]
第三置换应用部1121,

,112
n
得到[π0(s0)],[π1(s1)],公开τ0:=π0(s0),τ1:=π1(s1)。
[0112]
更详细而言,第三置换应用部1121,

,112
n
使用份额[s0]、份额[s1]以及置换π0,π1,生成对向量s0应用置换π0后的向量τ0:=π0(s0)的份额[π0(s0)]、以及对向量s1应用置换π1后的向量τ1:=π1(s1)的份额[π1(s1)],公开向量τ0以及向量τ1(步骤s12)。向量τ0以及向量τ1被公开给秘密计算装置1
n
(1≤n≤n)。
[0113]
置换π0,π1是规定的置换,例如是随机置换。置换π0,π1可以是预先规定的置换,也可以在进行步骤s12的处理时被生成。置换π0,π1以及它们的份额{{π0}},{{π1}}例如能够通过参考文献1的4.1节所记载的方法生成。设秘密计算装置1
n
(1≤n≤n)具有关于置换π0,π1以及它们的份额{{π0}},{{π1}}的信息,能够使用置换π0,π1以及它们的份额{{π0}},{{π1}}进行计算。
[0114]
所生成的份额[π0(s0)]以及份额[π1(s1)]被输出给属性值置换部1131,

,113
n

[0115]
例如,设向量s0=(1,0,2)
t
,向量s1=(1,2,0,0)
t
,π0是以下的算式(3)所表示的置换,π1是以下的算式(4)所表示的置换。
[0116]
[算式3]
[0117][0118][0119]
在该情况下,成为向量τ0=(0,2,1)
t
、向量τ1=(0,1,0,2)
t

[0120]
<步骤s13>
[0121]
份额[v
0,p
]以及份额[v
1,q
]被输入给属性值置换部1131,

,113
n

[0122]
属性值置换部1131,

,113
n
通过{{π0}}对第一表格的各属性值进行置换,通过{{π1}}对第二表格的各属性值进行置换。
[0123]
更详细而言,属性值置换部1131,

,113
n
使用置换π0的份额{{π0}}、置换π1的份额{{π1}}、向量v
0,p
的份额[v
0,p
]以及向量v
1,q
的份额[v
1,q
],生成通过置换π0将第一表格的各属性p(p=0,

,m
0-1)的属性值的向量v
0,p
进行置换后的向量v'
0,p
的份额[v'
0,p
]、以及通过置换π1将第二表格的各属性q(q=0,

,m
1-1)的属性值的向量v
1,q
进行置换后的向量v'
1,q
的份额[v'
1,q
](步骤s13)。
[0124]
所生成的份额[v'
0,p
]以及份额[v'
1,q
]被输出给第四向量生成部1141,

,114
n

[0125]
例如,设第一表格的属性z1的向量v
0,1
=(5,10,1)
t
,第二表格的属性z1'的向量v
1,1
=(2,4,9,8)
t
,π0是通过的算式(3)所表示的置换,π1是上述的算式(4)所表示的置换。在该情况下,成为向量v'
0,1
=(10,1,5)
t
、向量v'
1,1
=(9,2,8,4)
t

[0126]
<步骤s14>
[0127]
向量τ0、向量τ1、份额[v'
0,p
]以及份额[v'
1,q
]被输入给第四向量生成部1141,

,114
n

[0128]
第四向量生成部1141,

,114
n
设为i=1,2而关于进行置换后的各属性值[v'
i,j
]得到在(τ
i
)
i'
≠0时设为[(v”i,j
)
(τi)i'-1]:=[(v'
i,j
)
i'
]的[(v”i,j
)]。
[0129]
更详细而言,第四向量生成部1141,

,114
n
使用向量τ0、向量τ1、份额[v'
0,p
]以及份额[v'
1,q
],生成在向量τ0的第i'个要素非0的情况下具有向量v'
0,p
的第i'个要素作为第i'-1个要素的向量v”0,p
的份额[v”0,p
]、以及在向量τ1的第i'个要素非0的情况下具有向量v'
1,q
的第i'个要素作为第i'-1个要素的向量v”1,q
的份额[v”1,q
](步骤s14)。第四向量生成部1141,

,114
n
对各p(p=0,

,l
0-1)以及各q(q=0,

,l
1-1)进行该处理。
[0130]
例如,设向量τ0=(0,2,1)
t
、向量v'
0,1
=(10,1,5)
t
、向量τ1=(0,1,0,2)
t
、向量v'
1,1
=(9,2,8,4)
t
。在该情况下,成为向量v”0,1
=(5,1)
t
、向量v”1,1
=(2,4)
t

[0131]
由于向量s0,s1表示在第一表格和第二表格中重复的键的位置,所以将向量s0,s1分别通过置换π0,π1进行置换后的向量τ0,τ1表示在基于置换π0,π1的置换后的第一表格和第二表格中重复的键的位置。
[0132]
在上述的例子中,向量τ0=(0,2,1)
t
的第2个要素“1”表示基于置换π0的置换后的第一表格的键“1”的位置,向量τ0=(0,2,1)
t
的第1个要素“2”表示基于置换π0的置换后的第一表格的键“3”的位置。
[0133]
同样,在上述的例子中,向量τ1=(0,1,0,2)
t
的第1个要素“1”表示基于置换π1的置换后的第二表格的键“1”的位置,向量τ1=(0,1,0,2)
t
的第3个要素“2”表示基于置换π1的置换后的第二表格的键“3”的位置。
[0134]
因此,通过在(τ
i
)
i'
≠0时设为[(v”i,j
)
(τi)i'-1]
:=[(v'
i,j
)
i'
],能够将第一表格的键“1”的记录的属性z1的属性值“5”作为向量v”0,1
=(5,1)
t
的第0个要素,将第一表格的键“3”的记录的属性z1的属性值“1”作为向量v”0,1
=(5,1)
t
的第1个要素。
[0135]
此外,能够将第二表格的键“1”的记录的属性z1'的属性值“2”作为向量v”1,1
=(2,4)
t
的第0个要素,将第二表格的键“3”的记录的属性z1'的属性值“4”作为向量v”1,1
=(2,4)
t
的第1个要素。
[0136]
换言之,向量v”0,1
=(5,1)
t
的第0个要素“5”是第一表格的键“1”的记录的属性z1的属性值,向量v”0,1
=(5,1)
t
的第1个要素“1”是第一表格的键“3”的记录的属性z1的属性值。
[0137]
此外,向量v”1,1
=(2,4)
t
的第0个要素“2”是第二表格的键“1”的记录的属性z1'的属性值,向量v”1,1
=(2,4)
t
的第1个要素“4”是第二表格的键“3”的记录的属性z1'的属性值。
[0138]
这样,可以说,向量v”0,1
=(5,1)
t
、向量v”1,1
=(2,4)
t
表示关于第一表格以及第二表格的共同的键“1”、“3”的、第一表格的属性值以及第二表格的属性值。
[0139]
根据该实施方式,能够在保持隐匿性的状态下得到关于第一表格以及第二表格的
共同的键的、第一表格的属性值以及第二表格的属性值。
[0140]
[变形例]
[0141]
另外,也可以将x设为2以上的正整数,键的属性是x个属性的复合键。在该情况下,例如也可以如以下那样进行步骤s1的处理。
[0142]
设第一表格的键为k
0,0
,

,k
0,x-1
。设第二表格的键为k
1,0
,

,k
1,x-1

[0143]
在该情况下,在步骤s1的处理中,对于各i(其中,i=0,

,x-1)将k
0,i
和k
1,i
结合而得到k'
i
。然后,将各k'
i
进行比特分解而设为比特表现,横向进行结合。例如在k'0=(1,2,3,1,3,0,1)
t
,k'1=(0,0,0,0,0,1,1)
t
时,若将k'0比特分解,则成为(k'0)0=(1,0,1,1,1,0,1)
t
,(k'0)1=(0,1,1,0,1,0,0)
t

[0144]
这里,由于k'0取从1到3的值,所以k'0的各要素能够用2比特来表现。(k'0)0是将k'0进行比特分解时的低位比特,(k'0)1是将k'0进行比特分解时的高位比特。在本例中由于k'1原本是1比特数所以不需要进行分解,所以设k'1=(k'1)0。若将(k'0)0,(k'0)1,(k'1)0横向进行结合,则成为
[0145]
[算式4]
[0146][0147]
若将这样排列后的表现视为矩阵,将该矩阵的各行视为1记录的键的比特表现,则得到(1,2,3,1,3,4,5)这样的键的比特表现的向量。也可以将该向量用作在步骤s2以后使用的k'。这样,在复合键的情况下也能够进行处理。
[0148]
就复合键而言,设键的重复是指从全部键属性的值的组合的角度来看是否重复,若只是各个属性的值重复则不视为重复。例如,组合(1,0)和(1,1)不重复。
[0149]
以上,对本发明的实施方式进行了说明,但是不言而喻,具体的结构不限于这些实施方式,即使在不脱离本发明的宗旨的范围内存在适当设计的变更等,也包含于本发明。
[0150]
在实施方式中说明过的各种处理不仅可以基于记载的顺序按时间序列执行,也可以根据执行处理的装置的处理能力或者根据需要来并行地或者单独地执行。
[0151]
[程序、记录介质]
[0152]
上述的各种处理能够通过在图4所示的计算机的记录部2020中读入使上述方法的各步骤执行的程序,使控制部2010、输入部2030、输出部2040等进行操作来实施。
[0153]
记述了该处理内容的程序能够预先记录在计算机可读取的记录介质中。作为计算机可读取的记录介质,例如也可以是磁记录装置、光盘、光磁记录介质、半导体存储器等任意的记录介质。
[0154]
此外,该程序的流通例如通过销售、转让、出租等记录了该程序的dvd、cd-rom等便携式记录介质来进行。进一步,也可以设为下述结构:将该程序预先储存在服务器计算机的存储装置中,经由网络从服务器计算机向其他计算机转发该程序,从而使该程序流通。
[0155]
执行这样的程序的计算机例如首先将记录在便携式记录介质中的程序或者从服务器计算机转发的程序暂时储存在自身的存储装置中。然后,在执行处理时,该计算机读取自身的存储装置所储存的程序,执行基于所读取的程序的处理。此外,作为该程序的其他执
行方式,也可以是,计算机从便携式记录介质直接读取程序,执行基于该程序的处理,进一步,还可以是,每当该计算机被从服务器计算机转发程序时,依次执行基于所接受的程序的处理。此外,也可以设为通过不进行从服务器计算机向该计算机的程序的转发而仅通过其执行指示和结果获取来实现处理功能的、所谓asp(应用服务提供商(application service provider))型的服务而执行上述的处理的结构。另外,设在本方式中的程序中包含用于基于电子计算机的处理的信息且近似等效于程序的信息(不是对于计算机的直接的指令,但是是具有对计算机的处理进行规定的性质的数据等)。
[0156]
此外,在该方式中,设为通过在计算机上执行规定的程序来构成本装置,但是也可以设为通过硬件方式来实现这些处理内容的至少一部分。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1