一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

秘密最大值计算装置、方法及程序与流程

2022-08-28 05:39:34 来源:中国专利 TAG:


1.本发明涉及密码应用技术,特别涉及不公开输入或输出而计算最大值和最大值的标志(flag)的方法。


背景技术:

2.作为不复原被加密的数值而得到特定的运算结果的方法,有被称为秘密计算的方法(例如参照非专利文献1。)。在非专利文献1的方法中,进行使数值的片断分散到3个秘密计算装置中这样的加密,3个秘密计算装置进行协作计算,由此,能够不复原数值,使加减运算、常数加法运算、乘法运算、常数倍、逻辑运算(“非”、“与”、“或”、“异或”)以及数据形式变换(整数、二进制)的结果保持为被分散到3个秘密计算装置中的状态、即保持被加密的状态。在通过秘密计算来计算被加密后的n个值的最大值和最大值的标志的情况下,存在如下方法:将当前的最大值和作为最大值的元素的编号作为密文保持,依次与n个密文进行比较,不断更新最大值和作为最大值的元素的编号,最后根据编号来计算标志(例如参照非专利文献2。)。
3.现有技术文献
4.非专利文献
5.非专利文献1:千田浩司,濱田浩気,五十嵐大,高橋克巳,軽量検証可能3
パーティ
秘匿関数計算

再考,in css,2010.
6.非专利文献2:sameer wagh,divya gupta,and nishanth chandran.securenn:3-party secure computation for neural network training.proceedings on privacy enhancing technologies,vol.1,p.24,2019.


技术实现要素:

7.发明要解决的课题
8.但是,在现有的方法中,虽然计算最大值时的比较的总次数为θ(n),但比较的级数为θ(n)这样大。
9.本发明的目的在于,提供一种减少了处理时间的秘密最大值计算装置、方法以及程序。
10.用于解决课题的手段
11.本发明的一方式的秘密最大值计算装置,设集合x={[[x1]],[[x2]],...,[[xn]]},该装置包括:输出部,在n=1的情况下,输出[[x1]]以及[[1]]分别作为最大的隐匿值[[y]]以及标志[[z(x1)]];比较部,针对x的元素的组)]];比较部,针对x的元素的组的每一个,计算关于规定的顺序而哪一个大的比较结果;标志计算部,针对各[[xi]],计算与各[[xi]]有关的所有的比较结果是否为“大”,将该计算出的值设为标志[[z(xi)]];以及最大值计算部,使用[[z(xi)]],计算最大值[[y]]。
[0012]
发明的效果
[0013]
能够减少处理时间。
附图说明
[0014]
图1是表示第一实施方式的秘密最大值计算装置的功能结构的例子的图。
[0015]
图2是表示第一实施方式的秘密最大值计算方法的处理过程的例子的图。
[0016]
图3是表示第二实施方式的秘密最大值计算装置的功能结构的例子的图。
[0017]
图4是表示第二实施方式的秘密最大值计算方法的处理过程的例子的图。
[0018]
图5是表示第三实施方式的秘密最大值计算装置的功能结构的例子的图。
[0019]
图6是表示第三实施方式的秘密最大值计算方法的处理过程的例子的图。
[0020]
图7是表示计算机的功能结构例的图。
具体实施方式
[0021]
以下,对本发明的实施方式进行详细说明。另外,在附图中对具有相同功能的结构部标注相同的标号,省略重复说明。
[0022]
[记法]
[0023]
称为将某值a通过加密或秘密分散等而隐匿化而得到的值a的隐匿值,写作[[a]]。在隐匿化是秘密分散的情况下,通过[[a]]来参照各秘密计算装置具有的秘密分散的片断的集合。
[0024]
《解码》
[0025]
将a的隐匿值[[a]]作为输入,并针对成为c=a的值c进行计算的处理,记述为c

open([[a]])。
[0026]
《算术运算》
[0027]
加法运算、减法运算、乘法运算的各运算将2个值即a、b的隐匿值[[a]]、[[b]]作为输入,分别计算a b、a-b、ab的计算结果c1、c2、c3的隐匿值[[c1]]、[[c2]]、[[c3]]。将这些运算的执行分别记述为:
[0028]
[[c1]]

add([[a]],[[b]])
[0029]
[[c2]]

sub([[a]],[[b]])
[0030]
[[c3]]

mul([[a]],[[b]])。在不存在导致误解的担忧的情况下,将add([[a]],[[b]])、sub([[a]],[[b]])、mul([[a]],[[b]])分别简称为[[a]] [[b]]、[[a]]-[[b]]、[[a]]
×
[[b]]。
[0031]
《比较》
[0032]
关于比较的运算,将2个值即a、b的隐匿值[[a]]、[[b]]作为输入,计算a=b、a≤b、a《b的真假值c∈{0,1}的隐匿值[[c1]]、[[c2]]、[[c3]]。关于真假值,在真时设为1、在假时设为0。将该运算的执行记述为:
[0033]
[[c0]]

eq([[a]],[[b]])
[0034]
[[c1]]

le([[a]],[[b]])
[0035]
[[c2]]

lt([[a]],[[b]])。另外,eq、le、lt的输入的至少一方也可以不是隐匿值。
[0036]
《选择》
[0037]
关于选择的运算,以真假值c∈{0,1}的隐匿值[[c]]和2个值即a、b的隐匿值[[a]]、[[b]]作为输入,计算满足下式的d的秘密值[[d]]。
[0038]
【数学式1】
[0039][0040]
将该运算的执行记述为:
[0041]
[[d]]

ifelse([[c]],[[a]],[[b]])。该运算可通过下式而实现:
[0042]
[[d]]

[[c]]
×
([[a]]-[[b]]) [[b]]。
[0043]
[第一实施方式]
[0044]
第一实施方式的秘密最大值计算装置及方法是如下的装置及方法,即根据秘密值的集合x={[[x1]],[[x2]],...,[[xn]]},计算关于预先确定的顺序而最大的隐匿值[[y]]、以及表示各隐匿值是否最大的标志的隐匿值[[z(xi)]]。
[0045]
表示第一实施方式的秘密最大值计算装置及方法的输入、输出及处理的记法,能够如下这样进行记述。
[0046]
输入:x={[[x1]],...,[[xn]]}
[0047]
输出:[[y]],[[z(x1)]],...,[[z(xn)]]
[0048]
记法:[[y]],[[z(x1)]],...,[[z(xn)]]

f0([[x1]],...,[[xn]])
[0049]
如图1所示,第一实施方式的秘密最大值计算装置例如具备输出部1、比较部2、标志计算部3以及最大值计算部4。
[0050]
关于秘密最大值计算方法,例如通过由秘密最大值计算装置的各结构部进行以下说明的、图2所示的步骤s1至步骤s4的处理来实现。
[0051]
以下,说明秘密最大值计算装置的各结构部。
[0052]
《输出部1》
[0053]
输出部1中被输入集合x={[[x1]],[[x2]],...,[[xn]]}。n是规定的正整数。
[0054]
在n=1的情况下,输出部1分别输出[[x1]]以及[[1]],作为最大的隐匿值[[y]]以及标志[[z(x1)]](步骤s1)。
[0055]
在不是n=1的情况下,进行以下的步骤s2以后的处理。
[0056]
《比较部2》
[0057]
比较部2中被输入集合x={[[x1]],[[x2]],...,[[xn]]}。
[0058]
比较部2针对x的元素的组的每一个,计算关于规定的顺序而哪一个大的比较结果(步骤s2)。
[0059]
计算出的比较结果被输出到标志计算部3。
[0060]
例如,比较部2针对各1≤i《j≤n,进行[[c
i,j
]]

le([[xi]],[[xj]])的计算。换而言之,比较部2针对各(i,j)(i,j∈[1,n],i《j),进行le(xi,xj)的计算,并将该计算结果[[c
i,j
]]设为比较结果。
[0061]
在此,le(xi,xj)是在xi≤xj的情况下输出[[1]],在不是那样的情况下输出[[0]]的函数。
[0062]
《标志计算部3》
[0063]
标志计算部3中被输入由比较部2计算出的比较结果。
[0064]
标志计算部3针对各[[xi]],计算与各[[xi]]有关的所有比较结果是否是“大”,并将该计算出的值设为标志[[z(xi)]](步骤s3)。
[0065]
计算出的标志[[z(xi)]]被输出到最大值计算部4。
[0066]
例如,标志计算部3针对各(i,j)(i,j∈[1,n],i》j)而进行1-[[c
j,i
]]的计算,将该计算结果设为[[c
i,j
]],并针对各i而进行π
i≠j
[[c
i,j
]]的计算,将该计算结果设为标志[[z(xi)]]。
[0067]
另外,标志计算部3也可以针对各(i,j)(i,j∈[1,n],i》j)而进行1-[[c
j,i
]]的计算,将该计算结果设为[[c
i,j
]],并针对各i而进行[[z(xi)]]

eq(σ
i≠j
[[c
i,j
]],n-1)的计算,并将该计算结果设为标志[[z(xi)]]。另外,通过函数eq而比较的n-1也可以是隐匿值。即,标志计算部3也可以针对各i而进行[[z(xi)]]

eq(σ
i≠j
[[c
i,j
]],[[n-1]])的计算,将该计算结果设为标志[[z(xi)]]。
[0068]
这里,eq([[a]],[[b]])是如下函数即在a=b的情况下输出[[1]]、在不是那样的情况下输出[[0]]的函数。
[0069]
《最大值计算部4》
[0070]
在最大值计算部4中被输入由标志计算部3计算出的标志[[z(xi)]]。
[0071]
最大值计算部4使用[[z(xi)]]来计算最大值[[y]](步骤s4)。
[0072]
例如,最大值计算部4计算σ
i∈[1,n]
([[xi]]
×
[[z(xi)]]),将该计算结果设为最大值[[y]]。
[0073]
在以往的方法中,由于一边保持最大值一边从隐匿值的集合依次更新最大值,所以比较的级数成为θ(n)。与此相对,根据第一实施方式,通过一次进行比较从而能够使比较的级数为1级。由此,能够减少根据大小为n的隐匿值的集合而计算最大值的隐匿值和是否是最大值的标志的隐匿值的处理时间。
[0074]
[第二实施方式]
[0075]
第二实施方式的秘密最大值计算装置及方法是如下的装置及方法,即,以比较的级数为2级,根据隐匿值的集合x={[[x1]],[[x2]],...,[[xn]]},来进行关于预先确定的顺序而最大的隐匿值[[y]]的计算、和表示各隐匿值是否最大的标志的隐匿值[[z(xi)]]的计算。
[0076]
表示第二实施方式的秘密最大值计算装置及方法的输入、输出及处理的记法,能够如下这样进行记述。
[0077]
输入:x={[[x1]],...,[[xn]]}
[0078]
输出:[[y]],[[z(x1)]],...,[[z(xn)]]
[0079]
记法:[[y]],[[z(x1)]],...,[[z(xn)]]

f1([[x1]],...,[[xn]])
[0080]
如图3所示,第二实施方式的秘密最大值计算装置例如具有输出部1、分割部5、秘密最大值计算装置6以及标志计算部3。
[0081]
关于秘密最大值计算方法,例如通过由秘密最大值计算装置的各结构部进行以下说明的、图4所示的步骤s1至步骤s3的处理来实现。
[0082]
以下,说明秘密最大值计算装置的各结构部。
[0083]
《输出部1》
[0084]
输出部1中被输入集合x={[[x1]],[[x2]],...,[[xn]]}。n是规定的正整数。
[0085]
在n=1的情况下,输出部1分别输出[[x1]]以及[[1]],作为最大的隐匿值[[y]]以及标志[[z(x1)]](步骤s1)。
[0086]
在不是n=1的情况下,进行以下的步骤s5以后的处理。
[0087]
《分割部5》
[0088]
分割部5中被输入集合x={[[x1]],[[x2]],...,[[xn]]}。
[0089]
分割部5将x分割为2个以上的部分集合(步骤s5)。
[0090]
得到的2个以上的部分集合被输出到秘密最大值计算装置6。
[0091]
例如,分割部5将x分割为元素数为相同程度的θ(n
2/3
)个的部分集合。更详细地说,分割部5将x分割为个的部分集合x1,...,x
l
。是n
2/3
以上的最小的整数。这里,(|xi|≥1(i∈[1,l]),∪
i∈[1,l]
xi=x,例如,分割部5针对成为1=s0《s1《
···
《s
l
=n 1这样的si(i∈[0,l]),设为xi={[[x
s_(i-1)
]],...,[[x
s_i-1
]]}(i∈[1,l])。这里,x的下标s_(i-1)意味着s
i-1
。另外,x的下标s_i-1意味着s
i-1。
[0092]
《秘密最大值计算装置6》
[0093]
秘密最大值计算装置6中被输入通过分割部5而得到的2个以上的部分集合。
[0094]
秘密最大值计算装置6针对2个以上的部分集合的每一个执行处理,计算与各部分集合对应的最大值的隐匿值以及标志,并且针对与各部分集合对应的最大值的集合进行处理,计算最大值[[y]]和每个部分集合的标志(步骤s6)。
[0095]
秘密最大值计算装置6是第一实施方式的秘密最大值计算装置。如果使用第一实施方式的秘密最大值计算装置的记法,则秘密最大值计算装置6的处理能够如下这样进行记述。
[0096]
[[yi]],[[z(x
s_(i-1)
)]],...,[[z(x
s_i-1
)]]

f0([[x
s_(i-1)
]],...,[[x
s_i-1
]])(i∈[1,l])
[0097]
[[y]],[[z(y1)]],...,[[z(y
l
)]]

f0([[y1]],...,[[y
l
]])
[0098]
即,秘密最大值计算装置6针对i∈[1,l],进行将x=[[x
s_(i-1)
]],...,[[x
s_i-1
]]作为输入而输出[[yi]],[[z(x
s_(i-1)
)]],...,[[z(x
s_i-1
)]]的处理,另外,进行将[[y1]],...,[[y
l
]]作为输入而输出[[y]],[[z(y1)]],...,[[z(y
l
)]]的处理。
[0099]
计算出的与各部分集合i对应的最大值的隐匿值[[yi]]以及标志[[z(x
s_(i-1)
)]],...,[[z(x
s_i-1
)]]、和计算出的最大值[[y]]以及每个部分集合的标志[[z(y1)]],...,[[z(y
l
)]]被输出到标志计算部3。
[0100]
《标志计算部3》
[0101]
在标志计算部3中被输入由秘密最大值计算装置6计算出的标志[[z(x
s_(i-1)
)]],...,[[z(x
s_i-1
)]]以及标志[[z(y1)]],...,[[z(y
l
)]]。
[0102]
标志计算部3计算出:对所计算出的标志乘以每个部分集合的标志而得到的标志(步骤s3)。
[0103]
例如,标志计算部3针对各i∈[1,l],进行[[z(xj)]]

[[z(xj)]]
×
[[z(yi)]](j∈[s
i-1
,s
i-1])这样的处理。
[0104]
根据第二实施方式的秘密最大值计算装置及方法,比较的级数为2级,但能够将整
体的比较次数设为θ(n
4/3
)次。由此,能够减少根据大小为n的隐匿值的集合来计算最大值的隐匿值和是否是最大值的标志的隐匿值的处理时间。
[0105]
[第三实施方式]
[0106]
第三实施方式的秘密最大值计算装置以及方法是如下这样的装置以及方法,即以比较的级数为k 1级,根据隐匿值的集合x={[[x1]],[[x2]],...,[[xn]]},来进行关于预先确定的顺序而最大的隐匿值[[y]]的计算、和表示各隐匿值是否最大的标志的隐匿值[[z(xi)]]的计算。
[0107]
表示第三实施方式的秘密最大值计算装置及方法的输入、输出及处理的记法可以如下这样进行记述。在k=1的情况下,与第二实施方式的记述一致。
[0108]
输入:x={[[x1]],...,[[xn]]}
[0109]
输出:[[y]],[[z(x1)]],...,[[z(xn)]]
[0110]
记法:[[y]],[[z(x1)]],...,[[z(xn)]]
←fk
([[x1]],...,[[xn]])
[0111]
如图5所示,第三实施方式的秘密最大值计算装置例如具有输出部1、分割部5、秘密最大值计算装置6、秘密最大值计算装置7以及标志计算部3。
[0112]
关于秘密最大值计算方法,例如通过由秘密最大值计算装置的各结构部进行以下说明的、图6所示的步骤s1至步骤s3的处理来实现。
[0113]
以下,说明秘密最大值计算装置的各结构部。
[0114]
《输出部1》
[0115]
输出部1中被输入集合x={[[x1]],[[x2]],...,[[xn]]}。n是规定的正整数。
[0116]
在n=1的情况下,输出部1分别输出[[x1]]以及[[1]],作为最大的秘密值[[y]]以及标志[[z(x1)]](步骤s1)。
[0117]
在不是n=1的情况下,进行以下的步骤s5以后的处理。
[0118]
《分割部5》
[0119]
分割部5中被输入集合x={[[x1]],[[x2]],...,[[xn]]}。
[0120]
分割部5将x分割为2个以上的部分集合(步骤s5)。
[0121]
得到的2个以上的部分集合被输出到秘密最大值计算装置6。
[0122]
例如,将x分割为个的部分集合x1,...,x
l
。。为n^(2k/(2
k 1-1)以上的最小的整数。这里,(|xi|≥1(i∈[1,l]),∪
i∈[1,l]
xi=x,例如,分割部5针对成为1=s0《s1《
···
《s
l
=n 1这样的si(i∈[0,l]),设为xi={[[x
s_(i-1)
]],...,[[x
s_i-1
]]}(i∈[1,l])。这里,x的下标的s_(i-1)意味着s
i-1
。另外,x的下标的s_i-1意味着s
i-1。
[0123]
由此,在第m次的递归中,x被分割为元素数为相同程度的n^(2
k 1-m
/(2
k 2-m-1)个的部分集合。
[0124]
《秘密最大值计算装置6》
[0125]
秘密最大值计算装置6中被输入由分割部5得到的2个以上的部分集合。
[0126]
秘密最大值计算装置6针对2个以上的部分集合的每一个,进行处理,计算与各部分集合对应的最大值的隐匿值以及标志(步骤s6)。
[0127]
秘密最大值计算装置6是第三实施方式的秘密最大值计算装置。如果使用第三实
施方式的秘密最大值计算装置的记法,则秘密最大值计算装置6的处理能够如下这样记述。这样,第三实施方式的秘密最大值计算装置递归地进行处理。
[0128]
[[yi]],[[z(x
s_(i-1)
)]],...,[[z(x
s_i-1
)]]
←fk-1
([[x
s_(i-1)
]],...,[[x
s_i-1
]])(i∈[1,l])
[0129]
即,秘密最大值计算装置6针对i∈[1,l],进行将x=[[x
s_(i-1)
]],...,[[x
s_i-1
]]作为输入而输出[[yi]],[[z(x
s_(i-1)
)]],...,[[z(x
s_i-1
)]]的处理。
[0130]
计算出的与各部分集合i对应的最大值的隐匿值[[yi]]以及标志[[z(x
s_(i-1)
)]],...,[[z(x
s_i-1
)]],被输出到秘密最大值计算装置7。
[0131]
《秘密最大值计算装置7》
[0132]
在秘密最大值计算装置7中,被输入由秘密最大值计算装置6计算出的与各部分集合i对应的最大值的隐匿值[[yi]]以及标志[[z(x
s_(i-1)
)]],...,[[z(x
s_i-1
)]]。
[0133]
秘密最大值计算装置7针对与各部分集合对应的最大值的集合进行处理,计算最大值[[y]]以及每个部分集合的标志(步骤s7)。
[0134]
秘密最大值计算装置7是第一实施方式的秘密最大值计算装置。如果使用第一实施方式的秘密最大值计算装置的记法,则秘密最大值计算装置7的处理能够如下这样记述。
[0135]
[[y]],[[z(y1)]],...,[[z(y
l
)]]

f0([[y1]],...,[[y
l
]])
[0136]
即,秘密最大值计算装置7进行将[[y1]],...,[[y
l
]]作为输入而输出[[y]],[[z(y1)]],...,[[z(y
l
)]]的处理。
[0137]
计算出的每个部分集合的标志[[z(y1)]],...,[[z(y
l
)]]被输出到标志计算部3。
[0138]
《标志计算部3》
[0139]
在标志计算部3中,被输入由秘密最大值计算装置6计算出的标志[[z(x
s_(i-1)
)]],...,[[z(x
s_i-1
)]]、由秘密最大值计算装置7计算出的标志[[z(y1)]],...,[[z(y
l
)]]。
[0140]
标志计算部3计算出将所计算出的标志乘以每个部分集合的标志而得到的标志(步骤s3)。
[0141]
例如,标志计算部3针对各i∈[1,l],进行[[z(xj)]]

[[z(xj)]]
×
[[z(yi)]](j∈[s
i-1
,s
i-1])这样的处理。
[0142]
根据第三实施方式的秘密最大值计算装置及方法,比较的级数成为k 1级,但能够将整体的比较次数设为θ(n^(1 1/(2
k 1-1)))次。由此,能够减少根据大小为n的隐匿值的集合来计算最大值的隐匿值和是否是最大值的标志的隐匿值的处理时间。
[0143]
[变形例]
[0144]
以上,对本发明的实施方式进行了说明,但具体的结构不限于这些实施方式,在不脱离本发明的主旨的范围内,即使有适当的设计变更等,当然也包含在本发明中。
[0145]
在实施方式中说明的各种处理不仅可以按照记载的顺序而以时序执行,也可以根据执行处理的装置的处理能力或需要并行或单独执行。
[0146]
例如,秘密最大值计算装置的结构部之间的数据的交换可以直接进行,也可以经由未图示的存储部进行。
[0147]
[程序、记录介质]
[0148]
在通过计算机实现上述说明的各装置中的各种处理功能的情况下,各装置应具有
的功能的处理内容通过程序来记述。并且,通过由计算机执行该程序,在计算机上实现上述各装置中的各种处理功能。例如,上述各种处理能够通过使要执行的程序读入到图7所示的计算机的记录部2020,使控制部2010、输入部2030,输出部2040等动作来实施。
[0149]
记述了该处理内容的程序能够记录在计算机可读取的记录介质中。作为计算机可读取的记录介质,例如也可以是磁记录装置、光盘、光磁记录介质、半导体存储器等任意的介质。
[0150]
此外,该程序的流通例如通过销售、转让、出借记录了该程序的dvd、cd-rom等便携式记录介质来进行。进而,也可以构成为将该程序保存在服务器计算机的存储装置中,通过网络,从服务器计算机向其他计算机转发该程序,从而使该程序流通。
[0151]
执行这种程序的计算机例如首先将存储在便携式记录介质中的程序或从服务器计算机转发的程序暂时保存在自己的存储装置中。然后,在执行处理时,该计算机读取保存在自己的存储装置中的程序,并按照读取的程序执行处理。另外,作为该程序的另一执行方式,计算机也可以从便携式存储介质直接读取程序,执行按照该程序的处理,并且,每当程序从服务器计算机转发到该计算机时也可以依次按照所接收的程序执行处理。此外,也可以构成为,不从服务器计算机向该计算机转发程序,而仅通过该执行指示和结果取得来实现处理功能,即通过所谓的asp(application service provider,应用服务提供商)型的服务来执行上述处理。另外,在本方式的程序中,设为包含作为供电子计算机的处理使用的信息的、遵照程序的信息(不是对计算机的直接指令,但具有规定计算机的处理的性质的数据等)。
[0152]
此外,在该方式中,设为通过在计算机上执行规定的程序来构成本装置,但是也可以设为仅在硬件上实现这些处理内容的至少一部分。
[0153]
标号说明
[0154]
1 输出部
[0155]
2 比较部
[0156]
3 标志计算部
[0157]
4 最大值计算部
[0158]
5 分割部
[0159]
6 秘密最大值计算装置
[0160]
7 秘密最大值计算装置。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献