秘密随机数合成装置、秘密随机数合成方法以及程序与流程

文档序号:14650480发布日期:2018-06-08 21:41阅读:284来源:国知局
秘密随机数合成装置、秘密随机数合成方法以及程序与流程

本发明涉及加密应用技术,特别涉及不透露输入数据而进行随机数合成的技术。



背景技术:

作为不将被加密的数值复原而得到确定的运算结果的方法,有被称为秘密计算的方法(例如,参照非专利文献1)。在非专利文献1的方法中,进行所谓使数值的片断分散在三个秘密计算装置中的加密,通过三个秘密计算装置进行协调计算,可以不复原数值,而使加减运算、常数加法、乘法、常数倍、逻辑运算(“否”、“与”、“或”,“异或”)、数据形式变换(整数、二进制数)的结果仍保持分散在三个秘密计算装置中的状态、即仍被加密保持。

在秘密计算中进行乘法的情况下,作为可以使用具有c=ab的关系的明文a、b、c的隐匿文高效地进行乘法的方法,有非专利文献2的方法。

现有技术文献

非专利文献

非专利文献1:千田浩司,演田浩气,五十嵐大,高橋克巳,““軽量検証可能3パ一ティ秘匿関数計算の再考””,CSS,2010年

非专利文献2:Ivan Damgard,Marcel Keller,Enrique Larraia,Valerio Pastro,Peter Scholl,and Nigel P.Smart,“Practical covertly secure MPC for dishonest majority-or:Breaking the SPDZ limits”,Computer Security-ESORICS 2013,v0l.8134 of Lecture Notes in Computer Science,pp.1-18,2013.



技术实现要素:

发明要解决的课题

但是,在非专利文献2中记载的现有技术中,为了创建明文a、b、c具有c=ab的关系的隐匿文集,使用计算成本非常大的somewhat同态加密,效率变差。

本发明的目的是,鉴于这样的方面,提供高效地创建具有c=ab的关系的值a、b、c的隐匿文集的技术。

用于解决课题的手段

为了解决上述的课题,本发明的秘密随机数合成装置包含:隐匿文生成单元,对于i=0,...,m,生成满足Xi=f(ki)的xi的隐匿文[xi]和满足yi=g(ki)的yi的隐匿文[yi];片断生成单元,对于i=1,...,m,生成复原了[xi]-[ai]的εi和复原了[yi]-[bi]的ρi,计算[ci]+εi[bi]+ρi[ai]+εiρi,生成隐匿文[z1],...,[zm];以及随机数合成单元,计算下式,生成隐匿文[z0],

其中,

其中,将t设为0以上的整数,设m=2t+1,将i设为1以上m以下的各整数,将[ai]、[bi]、[ci]分别设为m个值ai、bi、ci的隐匿文,将k0,...,km设为m+1个不同的值,将f(x)、g(x)设为随机的t次多项式。

发明的效果

按照本发明的秘密随机数合成技术,可以高效地创建具有c=ab的关系的值a、b、c的隐匿文集。

附图说明

图1是例示秘密随机数合成系统的功能结构的图。

图2是例示秘密随机数合成装置的功能结构的图。

图3是例示秘密随机数合成方法的处理流程的图。

具体实施方式

在说明实施方式之前,说明本说明书中的标记方法以及用语的定义。

<标记方法>

将某个值a因加密或秘密分散等而隐匿化了的值称为a的隐匿文,标记为[a]。而且,将a称为[a]的明文。在隐匿化为秘密分散的情况下,通过[a]参照各方面(party)具有的秘密分散的片断的集合。以[a]i参照隐匿文[a]中的第i方面Pi具有的份额。而且,所谓份额是被秘密分散后的片断,所谓方面是协调进行秘密计算的各参加者。

<复原>

将从隐匿文[a]计算明文a的处理称为复原,如下式那样记述。

a←Reveal([a])

<加法,减法,常数倍>

对于隐匿文的加法、减法的各运算以两个值a、b的隐匿文[a]、[b]作为输入,计算a+b、a-b的计算结果d1、d2的隐匿文[d1]、[d2]。对于隐匿文的常数倍的运算以值a的隐匿文[a]和明文c作为输入,计算ca的计算结果d3的隐匿文[d3]。这些运算的执行分别如下式那样记述。

[d1]←Add([a],[b]),

[d2]←Sub([a],[b]),

[d3]←CMul(c,[a])

而且,在没有带来误解顾虑的情况下,将Add([a],[b])、Sub([a],[b])、CMul(c,[a])分别略记为[a]+[b]、[a]-[b]、c[a]。

<随机的隐匿文的生成>

将生成谁也不知道的随机的值r的隐匿文[r]的处理如下式那样记述。

[r]←Rand()

以下,详细地说明本发明的实施方式。而且,对附图中具有相同的功能的结构单元附加相同的标号,省略重复说明。

[第一实施方式]

如图1中例示的那样,第一实施方式的秘密随机数合成系统包含n(≥2)台秘密随机数合成装置11,...,1n。在本实施方式中,秘密随机数合成装置11,...,1n分别被连接至通信网2。通信网2是以能够分别与秘密随机数合成装置11,...,1n进行通信的方式构成的线路交换方式或者分组交换方式的通信网,例如可以使用因特网或LAN(Local Area Network,局域网),WAN(Wide Area Network,广域网)等。而且,各装置不一定需要能够通过通信网2以在线方式进行通信。例如,也可以构成为将输入至秘密随机数合成装置1i(i∈{1,...,n-1})的信息存储在磁带或USB存储器等可移动型记录介质中,从该可移动型记录介质以在线方式输入。

如图2中例示的那样,秘密随机数合成装置1包含:输入单元11;隐匿文生成单元12;片断生成单元13;随机数合成单元14;以及输出单元15。该秘密随机数合成装置1通过进行图3中例示的各步骤的处理,实现第一实施方式的秘密随机数合成方法。

秘密随机数合成装置1例如是在具有中央运算处理装置(CPU:Central Processing Unit)、主存储装置(RAM:Random Access Memory)等的公知或者专用的计算机中读入特别的程序而构成的特别的装置。秘密随机数合成装置1例如在中央运算处理装置的控制下执行各处理。输入到秘密随机数合成装置1的数据或在各处理中得到的数据例如被存储在主存储装置中,主存储装置中存储的数据根据需要,读出至中央运算处理装置,被用于其它的处理。秘密随机数合成装置1的各处理单元的至少一部分也可以由集成电路等硬件构成。

参照图3,说明第一实施方式的秘密随机数合成方法的处理过程。

步骤S 11中,向输入单元11分别输入m个值ai、bi、ci的隐匿文([ai],[bi],[ci])和m+1个值k0,...,km。这里,m=2t+1,t是0以上的整数,i是1以上m以下的各整数。值k0,...,km是不同的任意的值,被全部的秘密随机数合成装置11,...,1n事先共享。值k0,...,km被送到隐匿文生成单元12。隐匿文([ai],[bi],[ci])被送到片断生成单元13。

在步骤S121中,隐匿文生成单元12将f(x)作为谁也不知道的随机的t次多项式,对于i=0,...,m,生成满足Xi=f(ki)的xi的隐匿文[xi]。随机的t次多项式是指,各项的系数是随机确定的t次多项式。隐匿文[x1],...,[xm]被送到片断生成单元13。隐匿文[x0]被传送到输出单元15。

具体地说,隐匿文生成单元12如下那样生成隐匿文[x0],...,[xm]。首先,对于i=0,...,t,计算式(1),生成隐匿文[x0],...,[xt]。

[xi]←Rand()…(1)

接着,对于i=t+1,...,m,计算式(2),生成隐匿文[xt+1],...,[xm]。

其中,…(2)

在步骤S122中,隐匿文生成单元12将g(x)设为谁都不知道的随机的t次多项式,对于i=0,...,m,生成满足yi=g(ki)的yi的隐匿文[yi]。隐匿文[y0],...,[ym]的生成方法只要与隐匿文[x0],...,[xm]同样地进行即可。隐匿文[y1],...,[ym]被送到片断生成单元13。隐匿文[y0]被传送到输出单元15。

在步骤S131中,片断生成单元13对于i=1,...,m计算式(3),生成值εi

εi←Reveal([xi]-[ai])…(3)

在步骤S132中,片断生成单元13对于i=1,...,m,计算式(4),生成值ρi

ρi←Reveal([yi]-[bi])…(4)

在步骤S133中,片断生成单元13对于i=1,...,m计算式(5),生成隐匿文[zi]。隐匿文[z1],...,[zm]被传送到随机数合成单元14。

[zi]←[ci]+εi[bi]+ρi[ai]+εiρi…(5)

在步骤S14中,随机数合成单元14计算式(6),生成隐匿文[z0]。隐匿文[z0]被传送到输出单元15。

其中,…(6)

在步骤S15中,输出单元15输出隐匿文集([x0],[y0],[z0])。

[第二实施方式]

第二实施方式的秘密随机数合成方法是在通过加法的秘密分散进行了隐匿化的情况下,生成具有c=ab的关系的值a、b、c的隐匿文集的方法。在本实施方式中,被输入的隐匿文[ai],[bi],[ci]和被生成的隐匿文[xi],[yi],[zi]是基于加法的秘密分散的隐匿文。关于加法的秘密分散,例如记载在非专利文献2中。

第二实施方式的隐匿文生成单元12,在步骤S121中,对i=0,...,t输出隐匿文[xi]时,各方面生成随机的值,设为隐匿文[xi]的份额。而且,在步骤S122中,对i=0,...,t生成隐匿文[yi]时,各方面生成随机的值,设为隐匿文[yi]的份额。

通过上述那样构成,按照本发明的秘密随机数合成技术,即使在期望谁也不知道的、满足ci=aibi的随机的m(=2t+1)组的值(ai,bi,ci)的隐匿文([ai],[bi],[ci])中,任意t组的值泄露的情况下,也可以创建谁也不知道的满足z=xy的随机值的组(x,y,z)的隐匿文([x],[y],[z])。

本发明的发明点是,将对于随机的值x0、y0的隐匿文的乘法,分解为2t+1次的乘法来进行。这时,因为利用(t+1,2t+1)阈值秘密分散,将[x]以及[y]分散到2t+1个隐匿文,所以即使2t+1组的隐匿文中的t组的信息泄露,也不能复原x以及y。其结果,可以创建谁也不知道的随机的值的组的隐匿文。

本发明不限定于上述的实施方式,不用说,在不脱离本发明的宗旨的范围内可以进行适当变更。上述实施方式中说明的各种处理,不仅可以按照记载的顺序按时间序列来执行,还可以根据执行处理的装置的处理能力或者需要并行地或者单独地执行。

[程序,记录介质]

在通过计算机实现上述实施方式中说明的各装置中的各种处理功能的情况下,通过程序记述各装置应具有的功能的处理内容。然后,通过计算机执行该程序,在计算机上实现上述各装置中的各种处理功能。

记述了该处理内容的程序可以记录在计算机可读取的记录介质中。作为计算机可读取的记录介质,例如可以是磁记录装置、光盘、光磁记录介质、半导体存储器等什么样的介质都可以。

而且,该程序的流通例如通过销售、转让、出租等记录了该程序的DVD、CD-ROM等可移动型记录介质来进行。进而,也可以是将该程序存储在服务器计算机的存储装置中,通过经由网络,从服务器计算机向其它计算机转发该程序,使该程序流通的结构。

执行这样的程序的计算机,例如,首先,将可移动型记录介质中记录的程序或者从服务器计算机转发的程序暂时存储在自己的存储装置中。然后,在执行处理时,该计算机读取自己的记录介质中存储的程序,执行按照读取的程序的处理。而且,作为该程序的其它执行方式,既可以计算机从可移动型记录介质直接读取程序,执行按照该程序的处理,进而也可以每当从服务器计算机向该计算机转发程序,逐次执行按照接受的程序的处理。而且,也可以是通过不进行从服务器计算机至该计算机的程序的转发,仅通过其执行指示和结果取得来实现处理功能的所谓ASP(Application Service Provider,应用服务提供商)型的服务,执行上述的处理的结构。而且,在本方式中的程序中,设为包含作为供电子计算机处理用的信息的、按照程序看待的数据(虽然不是对于计算机的直接的指令,但是具有规定计算机的处理的性质的数据等)。

而且,在该方式中,通过在计算机上执行规定的程序构成了本装置,但是也可以硬件地实现这些处理内容的至少一部分。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1