秘密计算系统的制作方法

文档序号:2405983阅读:212来源:国知局
专利名称:秘密计算系统的制作方法
技术领域
本发明涉及密文应用技术,特别涉及在隐藏了输入值的前提下获得对于该输入值 的运算结果的技术。
背景技术
在非专利文献1中公开了在隐藏了输入值的前提下获得运算结果的技术。图1是 表示使用了非专利文献1中公开的技术的秘密计算系统的结构的方框图。参照图1,秘密计 算系统具有秘密计算装置81A和秘密计算装置81B。秘密计算装置81A拥有逻辑电路函数f (X,y)和成为χ的输入的比特串mA。秘密 计算装置81B同样拥有逻辑电路函数f(x,y)和成为y的输入的比特串mB。通过秘密计算装置81A和秘密计算装置81B相互进行通信,秘密计算装置81A、81B 的任一方或者双方获得逻辑电路函数f(x,y)的运算结果f(mA,mB),而不是秘密计算装置 81A获得能够容易恢复mB的数据,也不是秘密计算装置81B获得能够容易恢复mA的数据。另外,逻辑电路函数f(x,y)可以由一个或者多个逻辑门电路g的组合来实现。逻 辑门电路g对所输入的一个或者两个比特进行规定的逻辑运算,并输出表示其结果的一个 比特。逻辑门电路的例子是AND门(“与”门)、0R门(“或”门)等。此外,将各逻辑门电 路g的输入输出序列称为引线,将输入侧的引线称为输入引线,将输出侧的引线称为输出 引线。概述非专利文献1所公开的方法。以下,作为一例,举出秘密计算装置81A用于获 得f(mA,mB)的处理步骤。[步骤Cl-I]拥有逻辑电路函数f (x,y)和成为y的输入的比特串mB的秘密计算装置B,通过隐 藏构成逻辑电路函数f(x,y)的各逻辑门电路的真值表,从而隐藏逻辑电路函数f(x,y)。逻辑门电路的真值表如下。另外,在“与”门的例子中,g(0,0) =g(0,l) =g(l, 0) = 0,g(l,l) = 1。输入引线输出引线0,0 g(0,0)
0,1 g(0,l)1,0g(l,0)1,1g(l,l)在隐藏逻辑门电路时,秘密计算装置B对各输入引线和输出引线分别对应与各引 线的值对应的固定长度的随机数、和与各引线的值对应的随机比特的组。并且,使用相对应 的(固定长度的随机数,随机比特)再次构成真值表,从而隐藏真值表。但是,仅凭此,即使 是不知道各引线的值与(固定长度的随机数,随机比特)的对应的人,也能够根据与输出引 线对应的(固定长度的随机数,随机比特)的组合来推测出逻辑门电路的内容。因此,使用 伪随机函数进行进一步隐藏。由此,能够隐藏逻辑门电路。并且,通过对构成逻辑电路函数f (X,mB)的各逻辑门电路执行同样的隐藏,从而能够隐藏逻辑电路函·改 f (x, mB) ο
具体地说,秘密计算装置B通过执行以下的(a) (山,隐丨藏逻辑电路函数f(x,mB)。
m(a)秘密计算装置81B对逻辑电路函数f(x,mB)的各引线i生成固定长度的随机效
[数1]
Wi0, Wi1
,并使其分别与0、1对应。
(b)接_:,秘密计算装置81B生成随机比特Ci e {0,1}。Ci作为随机化的标签来使用。
(c)进而,秘密计算装置8IB使
[数2]
({w,0,4{w};Cl))
与引线i.对应。这里,设
[数3]
c = l-c
。另外,< α,β >表示α对应于β 。
(d)接_:,秘密计算装置81Β对于以i、j作为输入引线,以k作为输出引线的逻辑
门电路g,生成4个附标签数据[数4]C,,C,:(町_,g(0,0)十。十々(。) &),c 'cj (Wkgi0'l), g(0,i) Θ c,) Θ Fw (c;) Θ Fwj (ct),C^cj: (r/(1-0), g(l,0) Θ c,) Θ Fw! (Cj) Θ Fwl (c,),C1,cJ : (Wkg{l'l\g(U) Θ Ci) Φ Fwl (C;) θ Fw] (Ct),并且生成将这些附标签数据排列成随机的顺序的数据Tg。这里,将冒号的左侧设 为标签,将右侧设为数据,Fw(X)是以X、W作为输入,对X、W输出唯一确定的固定长度的随 机数的函数(伪随机函数)。此外,[数5]α十β表示α和β的“异或”。此外,[数6](α,β)θγ表示α和β的比特联结值α I β与Y的“异或”。此外,与逻辑电路函数f的最后级的门电路g对应的Tg的Ck设定为0。上述这样的Tg对构成逻辑电路函数f(x,mB)的各门电路生成,所生成的Tg的集合 T作为逻辑电路函数f (X,mB)的隐藏数据被发送到秘密计算装置81A。[步骤 C1-2]
拥有成为χ的输入的比特串mA的秘密计算装置81A与秘密计算装置81B执行 l-out-of-2不经意传输协议。由此,秘密计算装置81A获得对应于以mA的比特b e {0,1} 作为输入的引线的数据[数7]〈%*,6Θ .〉。[步骤 C1-3]接着,秘密计算装置8IA使用从秘密计算装置8IB接收到的数据Tg和[数 8](W^b C^i,计算逻辑电路函数f的最后级的逻辑门电路g的引线的输出[数9]〈Ocfc〉。[步骤 C1-4]进而,秘密计算装置8IA根据[数 10]{W^b ^CkxJ获得运算结果f (mA, mB)的比特[数 11]6。[步骤C1-3的细节]在上述处理步骤中的步骤C1-3中,秘密计算装置81A在被提供了与输入引线i、 j、输出引线k的门电路对应的数据Tg和[数 12](i/e{0,l})(1)时,首先根据数据Tg取出与标签[数13]{b^c^dQCj)对应的数据[数14]十 )十厂—办十…(2 )。并且,秘密计算装置81A计算[数15]十。) 々ΟΘ _)(3)。秘密计算装置81Α进行式⑵和式(3)的“异或”,获得与输出引线对应的数据[数 16]
9
(fT/(M),g(U)十 Ci)(4)。然后,秘密计算装置81A例如将与输出引线对应的数据作为其他逻辑门电路的 输入引线的一个数据,并对其他逻辑门电路也进行同样的处理,最终获得f的最后级的逻 辑门电路g的引线的输出。[步骤C1-4的细节]通过将与逻辑电路函数f的最后级的门电路g对应的Tg的Ck设定为0,成为[数17](Wk' ,b ck) = (Wk' j Θ 0〉=〈时,巧,因此,秘密计算装置81Α在步骤C1-4中,能够获得[数 18]b 。如以上说明的那样,在非专利文献1的方法中,需要在第2步骤中秘密计算装置 8IA和秘密计算装置8IB执行l-out-of-2不经意传输协议。l-out-of-2不经意传输协议 是具有以下特征的协议,在秘密计算装置81B拥有数据dQ、Cl1,秘密计算装置81A拥有比特 b时,秘密计算装置81A能够获得db,但不能获得[数 19]d-b,并且秘密计算装置81B不能获得b。通过使用这样的协议,能够防止从秘密计算 装置81A对秘密计算装置81B泄漏mA的比特b,并且能够防止Tg中所隐藏的逻辑电路函数 f(x,mB)的信息泄漏给秘密计算装置81A。另外,该协议的细节在非专利文献2中有说明。在非专利文献3中公开了隐藏输入值的前提下获得运算结果的其他技术。图2是 表示使用非专利文献3所公开的技术的秘密计算系统的结构的方框图。参照图2,秘密计算 系统具有多个变换装置QO1 90n和秘密计算装置91A、91B。通过两个秘密计算装置91A、 91B构成秘密计算装置组91。由秘密计算装置91A、91B构成的秘密计算装置组91使用各变换装置QO1 90N所 拥有的数据mn(l彡η彡N),求逻辑电路函数f (Xl,. . . , χΝ)的运算结果f On1,. . .,mN),而不 获得能够容易恢复输入值mn的数据。以下,概述该处理步骤。[步骤 C2-1]首先,秘密计算装置91B通过执行以下的(a) (d),隐藏逻辑电路函数f。然后, 秘密计算装置91B将与逻辑电路函数f对应的数据Tg作为逻辑电路函数f (Xl,. . .,xN)的 隐藏数据发送到秘密计算装置91A。(a)秘密计算装置91B对于逻辑电路函数f(Xl,. . .,xN)的各引线i,生成固定长 度的随机数[数 20]Wi0, Wi1,并使其分别与0、1对应。(b)接着,秘密计算装置9IB生成随机比特Ci e {0,1}。
(C)进而,秘密计算装置9IB使[数 21]((^0,c,),(^15Ci))与引线i对应。这里,设[数 22]Z = I-C。(d)进而,秘密计算装置91B对于以i、j作为输入引线,以k作为输出引线的逻辑 门电路g,生成4个附标签数据[数 23]C1,Cj :(^(°’°)4(0,0)Θ。Θ々(。)Θ ( ),c,.,cy (Wkg^,g(0,l) ck) Φ Fwf {cj) Φ Fwj (ct),二,〒(炉/(1’o),g(l,0)十q)十 (。十尸^(二),CliCj (fF/(U),g(l,\)Φ ck)Φ Fwl {Cj)Θ Fwj (Ci),并且生成将这些附标签数据排列成随机的顺序的数据Tg。数据Tg的集合T作为 逻辑电路函数f (Xl,...,%)的隐藏数据发送到秘密计算装置91A。[步骤 C2-2]各变换装置90i 90n与秘密计算装置91A、9IB —同执行代理l-out-of-2不经意 传输协议,从而秘密计算装置91A获得与m的各比特b的输入引线i对应的数据[数24](Wi^bQci)a[步骤 C2-3]接着,秘密计算装置9IA使用数据Tg和[数 25](Wi^beci),获得逻辑电路函数f的最后级的逻辑门电路g的引线的输出[数 26]〈0 〉。[步骤 C2-4]进而,秘密计算装置9IA根据[数 27]〈Oq〉获得运算结果f Oii1, . . .,mN)的比特[数 28]6。在上述处理步骤的步骤C2-2中,使用代理1-out-of不经意传输协议。该协议是
11扩展了 1-out-of不经意传输协议的协议。根据该协议,无需将有关变换装置QO1 90n 所拥有的数据的信息即比特b告知秘密计算装置91A,秘密计算装置91A就能够代替变换装 置90: 9(^而计算出[数 29]〈%\6 十 C,.〉。非专利文献 1 :Α· C. Yao, How to generate and exchange secrets, Proc. of FOCS,86,pp.162-167,IEEE Press,1986.非专利文献2 :S. Even, 0. Goldreich and A. Lempe 1, A randomized protocol for signing contracts, Communications of the ACM, Vol. 28, No. 6,pp.637-647,1985.非专利文献 3 :M. Naor, B. Pinkas, and R. Sumner, Privacy Preserving auctions and mechanism design,Proc. of ACM EC,99, pp. 129-139,ACM Press,1999.

发明内容
发明要解决的课题如上所述,在非专利文献1所公开的方法中,秘密计算装置81A、81B需要执行 l-out-of-2不经意传输协议。此外,在专利文献3所公开的方法中,变换装置90i 90n以 及秘密计算装置91A、91B需要执行代理l-out-of-2不经意传输协议。根据 D. Malkhi,N. Nisan,B. Pinkas,and Y. Sella,Fairplay-a secure two-party computation system, Proc. of USENIX Security Symposium, pp. 287-302, USENIX,2004. 这一文献,报告了在实际装配上,用于执行l-out-of-2不经意传输协议的计算量占据秘密 计算系统整体的计算量的大部分。此外,执行扩展了 l-out-of-2不经意传输协议的代理l-out-of-2不经意传输协 议时所需的计算量与l-out-of-2不经意传输协议为相同程度。因此,如果在实际装配上能够削减与这些协议相关联的处理量,则能够减少秘密 计算系统的负担。用于解决课题的方案本发明的第1方式由第1秘密计算装置、存储了逻辑电路函数f的第2秘密计算 装置、以及第3秘密计算装置执行。第3秘密计算装置生成与对于第1输入值mA以及运算符*满足mA = s*t的片断 t的各比特b对应的各数据Wb、和与各比特b的各反向比特(1-b)对应的各数据w(l-b)。 第3秘密计算装置将数据Wb发送到第1秘密计算装置,并且不特别指定比特b以及反向比 特(1-b)与数据Wb以及数据W (1-b)的对应,将包含数据Wb以及数据W (1-b)的数据W发 送到第2秘密计算装置。第2秘密计算装置使用满足mA = s*t的片断s和逻辑电路函数f以及数据W,生 成隐藏了片断s嵌入到逻辑电路函数f的逻辑电路函数f (s*X)的数据T,根据该数据T和 数据Wb能够求出运算结果f (mA)。第2秘密计算装置将数据T发送到第1秘密计算装置。第1秘密计算装置中输入数据T和数据Wb,使用数据T和数据Wb计算运算结果 f (HlA)。本发明的第2方式由存储了逻辑电路函数f(x)的第1秘密计算装置、以及第2秘密计算装置执行。在第1秘密计算装置中,在从输入值m分割的片断A和片断B中输入片断B。第1 秘密计算装置使用逻辑电路函数f(x)和片断B,生成隐藏了逻辑电路函数f(x)的数据T, 根据该数据T和片断A能够求出运算结果f (m)。在第2秘密计算装置中输入片断A和数据T,使用片断A和数据T计算运算结果
f (m) ο发明效果根据本发明,逻辑电路函数f的输入值的信息被分割为两个片断,所分割的两个 片断分别被输入到不同的秘密计算装置进行处理。结果,能够减轻有关l-out-of-2不经意 传输协议或代理l-out-of-2不经意传输协议的处理负担,能够大幅减少秘密计算装置的 负担。


图1是表示使用了非专利文献1所公开的技术的秘密计算系统的结构的方框图。图2是表示使用了非专利文献3所公开的技术的秘密计算系统的结构的方框图。图3是表示第1实施方式的秘密计算系统的结构的方框图。图4(A)、(B)、(C)是表示第1实施方式的秘密计算系统包含的秘密计算装置IlA 的结构的方框图。图5是表示第1实施方式的秘密计算系统的动作的具体例子的时序图。图6是表示第2实施方式的秘密计算系统的结构的方框图。图7 (A)、(B)、(C)是表示第2实施方式的秘密计算系统包含的秘密计算装置的结 构的方框图。图8是表示秘密计算系统包含的秘密计算装置的结构的方框图。图9是表示第2实施方式的秘密计算系统的动作的具体例子的时序图。图10是表示第3实施方式的秘密计算系统的结构的方框图。图11 (A)、(B)是表示第3实施方式的秘密计算系统包含的秘密计算装置的结构的 方框图。图12是表示第3实施方式的秘密计算系统的动作的具体例子的时序图。图13是表示第4实施方式的秘密计算系统的结构的方框图。图14(A)、(B)是表示秘密计算系统包含的秘密计算装置的结构的方框图。图15是表示秘密计算系统包含的变换装置的结构的方框图。图16是表示第4实施方式的秘密计算系统的动作的具体例子的时序图。标号说明1 4秘密计算系统
具体实施例方式参照附图详细说明本发明的实施方式[第1实施方式]本实施方式的秘密计算系统由3个秘密计算装置构成。构成该秘密计算系统的两个秘密计算装置分别保持相互独立的输入值。本实施方式的秘密计算系统在由秘密计算装 置所拥有的输入值不被其他秘密计算装置知晓的情况下,计算逻辑电路函数f对于该输入 值的运算结果。〈结构〉图3是表示第1实施方式的秘密计算系统1的结构的方框图。此外,图4(A)、(B)、 (C)是表示秘密计算系统1包含的秘密计算装置11A、11B、11C的结构的方框图。如图3所示,秘密计算系统1具有秘密计算装置11A、11B、11C(第1、第2、第3秘 密计算装置)。如图4㈧所示,秘密计算装置IlA具有存储单元11AA、输入单元11AB、输出单元 11AC、分割单元11AD、比特隐藏单元IlAE以及秘密计算单元11AF。此外,如图4(B)所示, 秘密计算装置IlB具有存储单元11BA、输入单元11BB、输出单元11BC、比特隐藏单元IlBD 以及函数隐藏单元11BF。此外,如图4(C)所示,秘密计算装置IlC具有存储单元11CA、输 入单元11CB、输出单元11CC、比特隐藏单元11⑶以及选择单元11CE。另外,秘密计算装置11A、1 IBUlC的例子是,由CPU (中央处理单元)、RAM (随机存 储存储器)、R0M(只读存储器)、通信装置、输入接口、输出接口等组成的公知的计算机读取 规定的程序而构成的装置。此外,秘密计算装置11A、11B、11C也可以包含集成电路。〈处理〉本实施方式的处理是前述的本发明的第1方式的一例。在本实施方式中,通过预 处理,在秘密计算装置IlA的存储单元IlAA中存储输入值mA,在秘密计算装置IlB的存储 单元IlBA中存储输入值叫和逻辑电路函数f (x,y)。本实施方式的秘密计算系统1在由秘 密计算装置IlA拥有的输入值mA没有被秘密计算装置知晓,并且,由秘密计算装置IlB拥 有的输入值mB没有被秘密计算装置知晓的情况下,计算逻辑电路函数f(x,y)的运算结果 f (mA, mB)。首先,秘密计算装置IlA将输入值%分割为对于运算符*满足mA = s*t的片断 s和片断t的两个,并将片断s发送到秘密计算装置11B,将片断t发送到秘密计算装置 IlC(步骤 E1-1)。秘密计算装置IlC生成与输入的片断t的各比特b对应的各数据Wb和与各比特b 的各反向比特(1-b)对应的各数据w(l-b)。然后,秘密计算装置IlC不特别指定比特b以 及反向比特(1-b)与数据Wb以及数据W (1-b)的对应,将包含数据Wb以及数据W (1-b)的 数据W发送到秘密计算装置11B,将数据Wb发送到秘密计算装置IlA (步骤E1-2)。秘密计算装置IlB使用片断s和逻辑电路函数f(x,y)和数据W以及输入值mB,生 成隐藏了逻辑电路函数f(s*X,mB)的数据T,该逻辑电路函数f(s*X,mB)是在逻辑电路函 数f (x,y)中嵌入了片断s和输入值叫的函数,根据该数据T和数据Wb能够求出逻辑电路 函数f(x,y)对于输入值%和输入值叫的运算结果f(mA,mB)。秘密计算装置IlB将数据T 发送到秘密计算装置IlA (步骤E1-3)。在秘密计算装置IlA中被输入数据T和数据Wb。秘密计算装置IlA使用数据T和 数据Wb计算运算结果f (mA,mB)(步骤El-4、5)。以下,表示本实施方式的秘密计算系统1的动作的具体例子。图5是表示第1实施方式的秘密计算系统1的动作的具体例的时序图。
14
[步骤E1-1]在该例子中,作为运算符*使用X0R( “异或”运算符)。秘密计算装置IlA的分割 单元IlAD将存储单元IlAA中存储的输入值&分割为满足[数 30]mA =s t的随机的片断s、t (步骤S101)。然后,秘密计算装置IlA的输出单元IlAC将片断 s发送到秘密计算装置IlB(步骤S102),将片断t发送到秘密计算装置IlC(步骤S103)。[步骤E1-2]秘密计算装置IlC的比特隐藏单元11⑶对与逻辑电路函数f (s*X,mB)的% = s*X 的X对应的输入引线i的每一个,生成由固定长度的随机数即数据Witl和随机比特Ci的组、 以及固定长度的随机数即Wi1和随机比特Ci的反向比特的组构成的[数31]K=(〈KV,_〉,〈W,孓〉)(“数据W”的具体例子)。此外,选择单元IlCE从上述那样生成的Wi中,分别选择与实际的t的各比特b’对 应的组[数32]〈O Θ 〉(步骤S104)。另外,b’表示对输入引线i的输入为片断t的低位第w个比特时 的片断t的低位第w个比特。此外,[数 33]〈O q〉是“数据Wb”的具体例子。然后,秘密计算装置IlC的输出单元IlCC将Wi发送到秘密计算装置IlB(步骤 S105),将[数34]I^V,"',b'θ c)发送到秘密计算装置IlA (步骤S106)。[步骤Ε1-3]通过秘密计算装置IlB执行以下的(a) (d),隐藏在逻辑电路函数f (x,y)中嵌 入了片断s和输入值mB的逻辑电路函数f (s*X,mB)。另外,该例子的逻辑电路函数f(x,y) 中嵌入了片断s和输入值mB的逻辑电路函数f (s*X,mB)是,包含以片断X = t作为输入而 恢复% = s*X的函数mA= s*X和在逻辑电路函数f(x,y)中嵌入了输入值mB的逻辑电路 函数f(x,mB),在逻辑电路函数f(x,mB)中输入函数% = s*X的输出值%而输出f(mA,mB) 的函数。以下,隐藏用于构成这样的逻辑电路函数f(x,mB)的各逻辑门电路。(a)秘密计算装置IlB的比特隐藏单元IlBD对f(s*X,mB)的各引线i生成固定长 度的随机数
[数35]Wi0, Wi1,并使其分别与0、1对应。其中,在构成函数mA= s*X的逻辑门电路中,对于被输 入X = t的比特的输入引线,对应从秘密计算装置IlC接受的[数36]Wi0jWi1O(b)接着,秘密计算装置IlB的比特隐藏单元IlBD生成随机比特Ci。其中,在构 成函数% = s*X的逻辑门电路中,对于被输入X = t的比特的输入引线,使用从秘密计算 装置IlC接受的Ci,因此对于被输入X = t的比特的输入引线不生成新的随机比特Ci。(c)进而,秘密计算装置IlB的比特隐藏单元IlBD使[数37]((^0, C,), (^15 C,))与引线i对应。其中,与片断s的低位第w个比特对应的引线i对应至[数 38]((w^bec^lw'^b ^)。这里,b是片段s的低位第w个比特。(d)接着,秘密计算装置IlB的函数隐藏单元IlBF对于以i、j作为输入引线,以k 作为输出引线的各逻辑门电路g,生成4个附标签数据[数 39]c,.,Cy ⑨产。),^^) ) 。…》 ;^^),(Wkg^, g(0,l) θ cj θ Fk (C7) Θ Fwlj (ct),ChCj :g(l,0) θ c,) θ Fw, (C7) θ Fwf (Ci),c c, : (Wf'l),g(l,l) θ c,) Θ Fwl (c;) Θ Fw] (c,),并且生成将这些附标签数据排列成随机的顺序的数据Tg。该Tg的集合T成为隐 藏了逻辑电路函数f(s*X,mB)的数据(步骤S107)。另外,与逻辑电路函数f(s*X,mB)的最 后级的门电路g对应的Tg的Ck设定为0。秘密计算装置IlB的输出单元IlBC将Tg的集合T作为逻辑电路函数f (s*X,mB) 的隐藏数据而发送到秘密计算装置IlA(步骤S108)。[步骤E1-4]秘密计算装置IlA的输入单元IlAB中被输入数据Tg的集合T和[数40]〈O'Θ C,〉。秘密计算装置IlA的秘密计算单元IlAF使用数据Tg和[数41]〈O'Θ C,〉
16
,获得逻辑电路函数f的最后级的逻辑门电路g的引线的输出[数42][步骤El-5]秘密计算装置1IA的秘密计算单元1IAF根据[数43](W^,b c}j,获得运算结果f(mA,mB)的比特[数44]b(步骤 SlO9)。[步骤E1-4的细节]在上述处理步骤的步骤E1-4中,秘密计算装置IlA的秘密计算单元IlAF中被提 供了与输入引线i、j,输出引线k的门电路g对应的Tg和[数45](Wi"',b' Ci),(WfiCi^Cj) (Je{0,l})(5)时,秘密计算单元IlAF首先从Tg取出将标签[数46]对应于标签的数据[数47](『/(明,容⑦‘,句十^①厂时如十^^十厂—办‘十…(6 )。并且,秘密计算单元IlAF计算[数48]Fw,(d Cj) Fwf(b' Ci)(7)。秘密计算单元IlAF进行式(6)和式(7)的“异或”,获得与输出引线对应的数据[数49](8)。然后,秘密计算单元IlAF例如将与输出引线对应的数据作为其他门电路的输入 引线的一个数据,并对其他门电路也进行同样的处理,最终获得逻辑电路函数f的最后级 的逻辑门电路g的引线的输出。[步骤E1-5的细节]通过将与逻辑电路函数f (s*X,mB)的最后级的门电路g对应的Tg的Ck设定为0, 成为[数 50] ,因此,秘密计算装置IlA的秘密计算单元IlAF能够获得[数51]b 。如以上说明的那样,根据本实施方式,秘密计算装置11A、11B、11C的任一个都不 需要执行在使用了非专利文献1的技术的秘密计算系统中,占据整体的计算量的大部分的 l-out-of-2不经意传输协议,因此能够大幅降低秘密计算装置11A、11B、11C的负担。另外,由于对在本实施方式中追加的秘密计算装置IlC仅提供输入值mA的片断t, 因此输入值%、mB的隐秘性不会因秘密计算装置IlC而受损。此外,在本实施方式中,示出了将XOR用作运算符*的例子,但本发明不限于此。例 如,也可以将加法运算、乘法运算、其他任何运算符作为运算符*。[第2实施方式]第2实施方式是第1实施方式的变形例。第2实施方式与第1实施方式的主要的 差别如下。·在第1实施方式中,由3个秘密计算装置构成秘密计算系统。在第2实施方式 中,由N个(N是正整数)变换装置和3个秘密计算装置构成秘密计算系统。·在第1实施方式中,两个秘密计算装置分别拥有输入值,一个秘密计算装置将输 入值分割成了两个片断。在第2实施方式中,各变换装置分别拥有相互独立的输入值,各变 换装置将输入值分割为两个片断。< 结构 >图6是表示第2实施方式的秘密计算系统2的结构的方框图。此外,图7 (A)、⑶、 (C)是表示秘密计算系统2包含的秘密计算装置21A、21B、21C的结构的方框图。此外,图8 是表示秘密计算系统2包含的变换装置20的结构的方框图。另外,将变换装置20i 20n 统称为变换装置20。如图6所示,秘密计算系统2具有秘密计算装置21A、21B、21C(第1、第2、第3秘
密计算装置)。如图7(A)所示,秘密计算装置21A具有存储单元21AA、输入单元21AB、输出单元 21AC、比特隐藏单元21AE以及秘密计算单元21AF。此外,如图7⑶所示,秘密计算装置21B 具有存储单元21BA、输入单元21BB、输出单元21BC、比特隐藏单元21BD、选择单元21BE以 及函数隐藏单元21BF。此外,如图7(C)所示,秘密计算装置21C具有存储单元21CA、输入 单元21CB、输出单元21CC、比特隐藏单元21⑶以及选择单元21CE。此外,如图8所示,变换 装置20分别具有存储单元20A、输入单元20B、输出单元20C以及分割单元20D。另外,秘密计算装置11A、11B、11C、变换装置20的例子是,由CPU、RAM、ROM、通信装 置、输入接口、输出接口等组成的公知的计算机读取规定的程序而构成的装置。此外,秘密 计算装置21A、21B、21C、变换装置20也可以包含集成电路。< 处理 >本实施方式的处理是前述的本发明的第1方式的一例。在本实施方式中,通过预处理,在各变换装置20i 20n的存储单元20A中分别存
18储输入值Hi1 mN,秘密计算装置21B的存储单元21BA中存储逻辑电路函数f (X1,. . .,xN)。 本实施方式的秘密计算系统2在由各变换装置20i 20n所拥有的输入值Hi1 mN不被其他 装置知晓的情况下,计算以输入值mn(l彡η彡N)作为输入的逻辑电路函数f(Xl,...,xN) 的运算结果fOV...,mN)。这时,各秘密计算装置21A、21B、21C不恢复输入值mn,也不获得 能够容易恢复输入值mn的数据的情况下,求出运算结果f Ον . . .,mN)。首先,变换装置20i将输入值Hi1分割为对于运算符*满足Hi1 = S1^t1的片断S1和 片断、的两个,将片断S1发送到秘密计算装置21B,将片断、发送到秘密计算装置21C。其 他变换装置202 20n的动作也与变换装置20i相同(步骤E2-1)。秘密计算装置21C生成与从变换装置20i 20N发送的片断tn的各比特b对应的 各数据Wb和与各比特b的各反向比特(1-b)对应的各数据w(l-b)。然后,秘密计算装置 21C的输出单元21CC不特别指定比特b以及反向比特(1-b)与数据Wb以及数据W(l-b)的 对应,将包含数据Wb以及数据W(l-b)的数据W发送到秘密计算装置21B,将数据Wb发送到 秘密计算装置2IA (步骤E2-2)。秘密计算装置21B使用从变换装置20i 20N发送的片断Sn和逻辑电路函数 f(Xl,...,xN)和数据W,生成隐藏了在逻辑电路函数f(Xl,...,xN)中嵌入了片断sn的逻 辑电路函数f (Sl*X1; . . .,%*ΧΝ)的数据T,根据该数据T和数据Wb能够求出逻辑电路函数 f(Xl,. · ·,xN)对于输入值Hi1 mN的运算结果f Oii1, ···,!%)。秘密计算装置21B将数据T 发送到秘密计算装置2IA (步骤E2-3)。在秘密计算装置21A中被输入数据T和数据Wb。秘密计算装置21A使用数据T和 数据Wb计算运算结果f Ον ···,!%)(步骤E2-4、5)。以下,表示本实施方式的秘密计算系统2的动作的具体例子。图9是表示第2实施方式的秘密计算系统2的动作的具体例的时序图。[步骤 E2_l]在该例子中,作为运算符*使用XOR( “异或”运算符)。各变换装置20i 20N的 分割单元20D将各自的存储单元21A中存储的输入值mn分割为满足[数 52]mn =sn tn的随机的片断sn、tn(步骤S201)。然后,各变换装置20i 20N的输出单元20C将 片断Sn发送到秘密计算装置21B (步骤S202),将片断tn发送到秘密计算装置21C(步骤 S203)。[步骤 E2-2]秘密计算装置21C的比特隐藏单元21⑶对与逻辑电路函数f (Sl*X1;. . .,sN*XN)的 mn= SjXnWX1^i应的输入引线i的每一个,生成由固定长度的随机数即数据Witl和随机比 特Ci的组、以及固定长度的随机数即Wi1和随机比特Ci的反向比特的组构成的[数53]WiCi),(Wl^ci))(“数据W”的具体例子)。此外,选择单元21CE从上述那样生成的Wi中,分别选择与实际的tn的各比特b’ 对应的组
19
[数54]W ,b’ C、(步骤S204)。另外,b’表示对输入引线i的输入为片断&的低位第w个比特时 的片断&的低位第w个比特。此外,[数 55]〈O' Ci)是“数据Wb”的具体例子。然后,秘密计算装置21C的输出单元21CC将Wi发送到秘密计算装置21B (步骤 S205),将[数56]〈O )发送到秘密计算装置2IA (步骤S206)。[步骤 Ε2-3]通过秘密计算装置21Β执行以下的(a) (d),隐藏在逻辑电路函数f (X1,..., XN)中嵌入了片断8 的逻辑电路函数f(Sl*X1; ...,SN*XN)。另外,该例子的逻辑电路函数 f(Xl,... , xN)中嵌入了片断Sn的逻辑电路函数f(Sl*X1;... , SN*XN)是,包含以片断X = tn 作为输入而恢复% = sn*Xn的函数mn = SjX1^P逻辑电路函数f (X1,. . .,xN),并且在逻辑电 路函数f (X1, ...,xN)中输入各函数mn= sn*Xn的输出值mn而输出f(mi,.··,!%)的函数。 以下,隐藏用于构成这样的逻辑电路函数Ms^X1, . . .,sN*XN)的各逻辑门电路。(a)秘密计算装置21B的比特隐藏单元21BD对逻辑电路函数f (S1^X1,... , sN*XN) 的各引线i生成固定长度的随机数[数57]Wi0, Wi1,并使其分别与0、1对应。其中,在构成函数mn=sn*Xn的逻辑门电路中,对于被 输入Xn = tn的比特的输入引线,对应从秘密计算装置21C接受的[数 58]W10, Wi1O(b)接着,秘密计算装置21B的比特隐藏单元IlBD生成随机比特Ci。其中,在构 成函数mn = sn*Xn的逻辑门电路中,对于被输入Xn = tn的比特的输入引线,使用从秘密计 算装置IlC接受的Ci,因此对于被输入Xn = tn的比特的输入引线不生成新的随机比特Ci。(c)进而,秘密计算装置21B的比特隐藏单元21BD使[数 59]{{W^,C),{W! ,C,))
与引线i对应。其中,与sn的低位第w个比特对应的引线i对应至 [数 60]
。这里,b是Sn的低位第W个比特。
(d)进而,秘密计算装置21B的函数隐藏单元21BF对于以i、j作为输入引线,以k 作为输出引线的逻辑门电路g,生成4个附标签数据[数 61]C1,Cj ,。), g(0,0)十 Ct)十々(Cj )十々(C,),c;,C, (r/(0']),g(0,l)θ C,)θ Fk (Cj)Φ Fw] (Ci),[,〒(『/(⑶乂丄劝十^^十^^》 。),CijC7: (^/^^^(Ι,Ι) Θ C,) Θ Fwl (C7) Θ Fw] {α),并且生成将这些附标签数据排列成随机的顺序的数据Tg。Tg的集合T成为隐藏了 逻辑电路函数f (S1^X1,. . .,sN*XN)的数据(步骤S207)。秘密计算装置21B的输出单元21BC将Tg的集合T作为f (S1^X1, ... , sN*XN)的隐 藏数据而发送到秘密计算装置21A (步骤S208)。[步骤 E2_4]秘密计算装置21A的输入单元21AB中被输入数据Tg的集合T和[数 62]^W!'',b' C^j。秘密计算装置21A的秘密计算单元21AF使用数据Tg和[数 63]〈O Θ C,.〉,获得逻辑电路函数f的最后级的逻辑门电路g的引线的输出[数64]θCi^ ο[步骤 Ε2-5]秘密计算装置2IA的秘密计算单元2IAF根据[数 65],获得运算结果fOn1,...,mN)的比特[数 66]b(步骤 S209)。如以上说明的那样,根据本实施方式,秘密计算装置21A、21B、21C的任一个都不 需要执行在使用了非专利文献3的技术的秘密计算系统中,占据整体的计算量的大部分的 代理l-out-of-2不经意传输协议,因此能够大幅降低秘密计算装置21A、21B、21C的负担。另外,由于对在本实施方式中追加的秘密计算装置21C仅提供输入值mn的片断tn, 因此输入值mn的隐秘性不会因秘密计算装置21C而受损。此外,在本实施方式中,示出了将XOR用作运算符*的例子,但本发明不限于此。例 如,也可以将加法运算、乘法运算、其他任何运算符作为运算符*。
21
此外,在本实施方式中,由各变换装置20i 20,所分割的各片断tn被发送到秘密 计算装置21C(步骤S203)。但是,也可以是由各变换装置20i 20,所分割的各片断tn首 先被发送到秘密计算装置21A,并从那里被转发到秘密计算装置21C。此外,也可以是由各 变换装置20i 20n所分割的各片断tn被发送到秘密计算装置21A,并由秘密计算装置21A 执行本实施方式的步骤S204、S205的处理。即使是在这些情况下,片断tn和片断Sn也不会 在没有隐藏的情况下被输入到同一秘密计算装置中,因此输入值mn的隐秘性不会受损。此外,在本实施方式中,输入了片断tn的秘密计算装置21C生成数据Wi,并且将生 成的数据Wi发送到秘密计算装置21B。但是,也可以是秘密计算装置21B生成数据Wi,并且 将生成的数据Wi发送到秘密计算装置21C。[第3实施方式]本实施方式的秘密计算系统由N个(N是正整数)变换装置和两个秘密计算装置 构成。各变换装置分别拥有相互独立的输入值。本实施方式的秘密计算系统在由各变换装 置拥有的输入值不被其他装置知晓的情况下,计算逻辑电路函数f对于这些输入值的运算结果。< 结构 >图10是表示第3实施方式的秘密计算系统3的结构的方框图。此外,图11 (A)、 (B)是表示秘密计算系统3包含的秘密计算装置31A、31B的结构的方框图。如图10所示,秘密计算系统3具有变换装置20i 20N以及秘密计算装置31A、 31B(第1、第2秘密计算装置)。如图Il(A)所示,秘密计算装置31A具有存储单元31AA、 输入单元31AB、输出单元31AC、比特隐藏单元31AD、选择单元31AE、函数隐藏单元31AF以 及l-out-of-2不经意传输协议(OT)执行单元31AG。此外,如图Il(B)所示,秘密计算装置 31B具有存储单元31BA、输入单元31BB、输出单元31BC以及秘密计算单元31BF。秘密计算 单元31BF包含l-out-of-2不经意传输协议执行单元31BFA。另外,变换装置 20N的 结构与在第2实施方式中说明的相同(图8)。另外,秘密计算装置31A、31B的例子是,由CPU、RAM、ROM、通信装置、输入接口、输 出接口等组成的公知的计算机读取规定的程序而构成的装置。此外,秘密计算装置31A、31B 也可以包含集成电路。< 处理 >本实施方式的处理是前述的本发明的第2方式的一例。在本实施方式中,通过预 处理,在各变换装置20i 20n的存储单元20A中分别存储输入值Hi1 mN,秘密计算装置3IA 的存储单元31AA中存储逻辑电路函数f (Xl,. . .,xN)。本实施方式的秘密计算系统3在由 各变换装置20i 20n所拥有的输入值Hi1 mN不被其他装置知晓的情况下,计算以输入值 mn(l ^n ^N)作为输入的逻辑电路函数f(Xl,. . . , xN)的运算结果f On1, . . .,mN)。这时, 各秘密计算装置31A、31B不恢复输入值mn,也不获得能够容易恢复输入值mn的数据的情况 下,求出运算结果fOv...,mN)。首先,变换装置20i将输入值Hi1分割为对于运算符*满足Hi1 = S1^t1的片断S1和 片断、的两个,将片断、发送到秘密计算装置31A,将片断S1发送到秘密计算装置31B。其 他变换装置202 20n的动作也与变换装置20i相同(步骤E3-1)。秘密计算装置31A使用逻辑电路函数f (χ)和从变换装置20i 20N发送的片断
22tn,生成隐藏了在逻辑电路函数f (X)中嵌入了片断tn的逻辑电路函数f (X1^1,· · ·,XN*tN) 的数据T,根据该数据T和片断Sn能够求出运算结果f (m” . . .,mN)。秘密计算装置31A将 数据T发送到秘密计算装置3IB (步骤E3-2)。在秘密计算装置3IB中被输入片断Sn和数据T。秘密计算装置3IB使用片断Sn和 数据T计算运算结果f Oii1,. . .,mN)。秘密计算装置IlB以片断Sn作为输入,在实际不恢复 输入值mn的情况下,根据数据Tg计算运算结果f On1, ...,mN)(步骤E3-3、4、5)。以下,表示本实施方式的秘密计算系统3的动作的具体例子。图12是表示第3实施方式的秘密计算系统3的动作的具体例的时序图。[步骤 E3-I]各变换装置20i 20n的分割单元20D将各自的存储单元21A中存储的输入值mn 分割为满足[数67]m =sn tn的随机的片断sn、tn(步骤S301)。然后,各变换装置20i 20N的输出单元20C将 片断Sn发送到秘密计算装置31B (步骤S302),将片断tn发送到秘密计算装置31A(步骤 S303)。[步骤 E3-2]通过秘密计算装置31A执行以下的(a) (d),隐藏在逻辑电路函数f (X1,..., XN)中嵌入了片断tn的逻辑电路函数f^*、,XN*tN)。另外,该例子的逻辑电路函数 f(Xl,...,xN)中嵌入了片断‘的逻辑电路函数^&衬^…,乂一、)是,包含以片断X= Sn 作为输入而恢复% = Xn*tn的函数mn =逻辑电路函数f (Xl,. . .,xN),并且在逻辑电 路函数f (X1, ...,xN)中输入各函数mn = Xn*tn的输出值mn而输出f(mi,.··,!%)的函数。 以下,隐藏用于构成这样的逻辑电路函数f (X1^1, XN*tN)的各逻辑门电路。(a)秘密计算装置31A的比特隐藏单元31AD对构成逻辑电路函数f (S1^X1,..., sN*XN)的各逻辑门电路的各引线i生成固定长度的随机数[数 68]Wi0, Wi1,并使其分别与0、1对应。(b)秘密计算装置31A的比特隐藏单元31AD生成随机比特Ci e {0,1}。(c)秘密计算装置31A的比特隐藏单元31AD使[数 69]((Wi0,Ci),(Wi^ci))与引线i对应。其中,与片断tn的低位第w个比特对应的输入引线i对应至[数 70](〈<A 4〈—Uc,〉)。这里,bw是片段&的低位第w个比特。(d)秘密计算装置31A的函数隐藏单元31AF对于以i、j作为输入引线,以k作为 输出引线的逻辑门电路g,生成4个附标签数据
[数71], Cy (^/(0-0), g(0,0) θ C4 ) θ Fk {Cj ) θ Fwj (Ci),CliCj :,g(0,l) θ C,) θ Fr (Cj) Φ Fwtj (Ci),丨.-(rZ^uao)十十々( ) ([),H (Wf'l), g(l,l) θ c, ) θ Fwl (cJ) θ Fwl (c,),并且生成将这些附标签数据排列成随机的顺序的数据Tg。Tg的集合T成为隐藏了 逻辑电路函数MX1^t1,· · ·,XN*tN)的数据(步骤S304)。秘密计算装置31A的输出单元31A(^fTg的集合T作为逻辑电路函数fd*、,..., XN*tN)的隐藏数据而发送到秘密计算装置31B (步骤S305。[步骤 E3-3]秘密计算装置31B的输入单元31BB中被输入从各变换装置 20N发送的片断 sn0秘密计算装置31B的秘密计算单元31BD使用这些片段sn,求与片断Sn的各比特b对应 的[数 72](Wi^bBci)。但是,Wi13和Ci是在秘密计算装置31A中设定的,仅凭秘密计算装置31B无法设 定与片断sn的各比特b对应的Wi13和Ci。另一方面,若为了从秘密计算装置31A获得与片 断Sn的各比特b对应的Wi13和Ci而对秘密计算装置31A提供片断Sn的各比特b的信息,则 输入值mn将会被秘密计算装置31A恢复。因此,秘密计算装置31B的秘密计算单元31BD所 具有的l-out-of-2不经意传输协议执行单元3IBDA在与秘密计算装置3IA的l-out-of-2 不经意传输协议执行单元31AG之间执行l-out-of-2不经意传输协议,在不会对秘密计算 装置31A提供片断Sn的各比特b的信息的情况下,从秘密计算装置31A取得与片断Sn的各 比特b对应的Wi13和Ci。以下,示出该处理的例子。[l-out-of-2不经意传输协议的例子]《参数设定》l-out-of-2不经意传输协议执行单元3IBDA和l-out-of-2不经意传输协议执行 单元31AG合作生成质数p,求满足『二 l(mod ρ)的2以上且小于ρ的整数h以及最小的 自然数q。此外,另外选择2以上且小于ρ的整数ζ。这样设定的质数P、自然数q、整数h、 整数ζ例如被存储在秘密计算装置31A的存储单元31AA和秘密计算装置31B的存储单元 3IBA 中。《秘密密钥设定》l-out-of-2不经意传输协议执行单元31BDA随机选择小于q的自然数U。该自然 数u为秘密密钥。《公开密钥设定》l-out-of-2不经意传输协议执行单元31BDA随机选择小于q的自然数U。该自然 数u为秘密密钥。计算PKb = hu mod ρ。该PKb是公开密钥,通过秘密密钥u加密的密文可 通过PKb正确地解密。
《公开密钥的改变》如果b = 1,则l-out-of-2不经意传输协议执行单元3IBDA计算 《公开密钥的发送》秘密计算装置31Β的输出单元31BC将PKtl发送到秘密计算装置31Α。另外,如果 b = 0则PKtl是与自然数u对应的正确的公开密钥。另一方面,如果b = 1则PKtl不是与自 然数u对应的正确的公开密钥,并且通过PK1 = z/PK0mod ρ获得的PK1成为与自然数u对 应的正确的公开密钥。《加密》 秘密计算装置31A的l-out-of-2不经意传输协议执行单元31AG使用所发送的PKtl 计算了 PK1 = z/PK0 mod P之后,计算[数74]Z0 = EPKo, C1〉)),Z1 = EPK] (C(〈^, c,〉))。秘密计算装置31Α的输出单元31AC将所得到的密文Zc^Z1发送到秘密计算装置 31Β。这里,设Epk(X)是使用了未加密文χ的公开密钥PK的加密函数,假设该密文可通过解 密密钥u解密。此外,C是能够识别未加密文是否被正确恢复的函数。另外,秘密计算装置 31Α无法知道PKtl以及PK1中的哪一个是与自然数u对应的正确的公开密钥。因此,秘密计 算装置31Α无法知道秘密计算装置31Α是想要取得与比特b = 0对应的数据,还是想要取 得与比特b=1对应的数据。《解密》秘密计算装置31B的l-out-of-2不经意传输协议执行单元31BDA使用解密密钥 u对Zp Z1进行解密,并获得由C识别为被正确恢复的解密结果[数75][Wi^b Ci)。g卩,如果b = 0则PKtl是与自然数u对应的正确的公开密钥,因此只有Ztl被正确 恢复,如果b = 1则PK1是与自然数u对应的正确的公开密钥,因此只有Z1被正确恢复(步 骤 S306)。[步骤 E3_4]秘密计算装置31B的输入单元31BB中被输入数据Tg的集合T和[数冗]IyW^b Φ C1)。秘密计算装置3IB的秘密计算单元3IBD使用Tg和[数打],获得逻辑电路函数f的最后级的逻辑门电路g的引线的输出[数川]
25
〈—, _〉。[步骤 E3-5]秘密计算装置3IB的秘密计算单元3IBD根据[数 79]〈O C,〉,获得运算结果fOn1,...,mN)的比特[数 80]b(步骤S307)。根据本实施方式,变换装置20i 20n将拥有的数据mn分割为Sn和tn,将Sn送到 秘密计算装置31B,将tn送到秘密计算装置31A即可,不需要执行代理l-out-of-2不经意 传输协议。因此,与需要此的非专利文献3所公开的方法相比,变换装置20i 20n的负担 被减轻。另外,在本实施方式中,示出了秘密计算装置31B在步骤S306中,作为与片断\的 各比特b对应的数据而取得各比特b的隐藏数据[数 81](Wl^beci)的例子。但是,秘密计算装置31B作为与片断Sn的各比特b对应的数据,也可以取得与输 入值mn= sn*tj々各比特r对应的隐藏数据。这样的结构例如运算符*为X0R,则可以通过 使用以下的4、Z1来代替上述的Zp Z1来实现。另外,ν表示片断tn的比特。[数 82]Z,=EPKa{C{{w^,v c))) , Zx=EPKx{C(J^;,v c)))这是基于如果片断Sn的比特b为0,则与其相同位的输入值mn = sn*tn的比特r和 与其相同位的片断tn的比特ν相等,如果片断Sn的比特b为1,则与其相同位的输入值叫 =sn*tn的比特r成为与其相同位的片断tn的比特ν的反向比特。这时,秘密计算装置31B 取得[数 83](^V,v c,.) (b = 0)[W;, ν @ C^ (b = 1)的其中一个。如果设定有与其对应的数据Tg的集合T,则可根据此来获得运算结 果 f (Iii1, . . . , mN)。此外,在本实施方式中,示出了使用XOR作为运算符*的例子,但本发明不限于此。 例如,也可以将加法运算、乘法运算、其他任何运算符作为运算符*。[第4实施方式]本实施方式的秘密计算系统由N个(N为正整数)变换装置和两个秘密计算装置构成。各变换装置分别拥有相互独立的输入值。本实施方式的秘密计算系统在由各变换装 置拥有的输入值不被其他装置知晓的情况下,计算逻辑电路函数f对于这些输入值的运算 结果。其中,在本实施方式中不使用l-out-of-2不经意传输协议。< 结构 >图13是表示第4实施方式的秘密计算系统4的结构的方框图。此外,图14(A)、 (B)是表示秘密计算系统4包含的秘密计算装置41A、41B的结构的方框图。此外,图15是 表示秘密计算系统4包含的变换装置40i 40n的结构的方框图。另外,将变换装置40i 4(^统称为变换装置40。如图13所示,秘密计算系统4具有变换装置40i 40N以及秘密计算装置41A、 41B(第1、第2秘密计算装置)。如图14(A)所示,秘密计算装置41A具有存储单元41AA、 输入单元41AB、输出单元41AC、比特隐藏单元41AD以及函数隐藏单元41AF。此外,如图 14 (B)所示,秘密计算装置41B具有存储单元41BA、输入单元41BB、输出单元41BC以及秘密 计算单元41BF。此外,如图15所示,变换装置40具有存储单元40A、输入单元40B、输出单 元40C、比特隐藏单元40D以及选择单元40E。另外,秘密计算装置41A、41B以及变换装置40的例子是,由CPU、RAM、ROM、通信装 置、输入接口、输出接口等组成的公知的计算机读取规定的程序而构成的装置。此外,秘密 计算装置31A、31B以及变换装置40也可以包含集成电路。< 处理 >本实施方式的处理是前述的本发明的第2方式的一例。在本实施方式中,通过预 处理,在各变换装置40i 40n的存储单元40A中分别存储输入值Hi1 mN,秘密计算装置41A 的存储单元41AA中存储逻辑电路函数f (Xl,. . .,xN)。本实施方式的秘密计算系统4在由 各变换装置40i 40n所拥有的输入值Hi1 mN不被其他装置知晓的情况下,计算以输入值 mn(l ^n ^N)作为输入的逻辑电路函数f(Xl,. . . , xN)的运算结果f On1, . . .,mN)。这时, 各秘密计算装置41A、41B不恢复输入值mn,也不获得能够容易恢复输入值mn的数据的情况 下,求出运算结果f (IV . . .,mN)。此外,在这些处理的过程中不需要执行l-out-of-2不经 意传输协议。首先,变换装置40i 40n生成与各输入值Hi1 mN的各比特b对应的数据Wb和与 各比特b的反向比特(1-b)对应的数据w(l-b)。然后,变换装置AO1N^dt为将各输入值 Hi1 mN分割的一个片断而将数据Wb发送到秘密计算装置41B。此外,变换装置40i 40N 将包含数据Wb以及与各比特b的反向比特(1-b)对应的各数据W(l-b)的数据W作为另一 个片断而发送到秘密计算装置41A,其中在数据W中不特别指定数据Wb以及数据W(l-b与 b以及(1-b)的对应(步骤E4-1)。秘密计算装置41A使用数据W,生成隐藏了逻辑电路函数f的数据T,根据该数据 T和数据Wb能够求出运算结果f (m)。秘密计算装置41A将生成的数据T发送到秘密计算 装置41B (步骤E4-2)。在秘密计算装置IlA中被输入数据T和数据Wb。秘密计算装置IlA使用数据T和 数据Wb计算运算结果f (m)(步骤E4-3、4、5)。以下,表示本实施方式的秘密计算系统4的动作的具体例子。图16是表示第4实施方式的秘密计算系统4的动作的具体例的时序图。
27
[步骤E4-1]各变换装置40i 40n的比特隐藏单元40D对构成逻辑电路函数f (X1,. . .,xN)的 各逻辑门电路中、输入各输入值Hi1 mN的比特b的各输入引线i,生成随机比特Ci和固定 长度的随机数[数84]Wi0, Wi1。然后,各变换装置40n的隐藏单元40D生成Wn= (Ci5Wi0, WiOn(数据W的例子/步骤S401),各变换装置40n的选择单元40E生成与各比特b对 应的[数 85](数据Wb的例子/步骤S402)。各变换装置40n的输出单元40C将Wn发送到秘密 计算装置41B (步骤S403),将[数 86](^ft5Z) Θ Ci)^发送到秘密计算装置41Α (步骤S404)。[步骤 Ε4-2]秘密计算装置41Α的函数隐藏单元41AF与上述的步骤Ε3-2同样地,通过执行 (a) (山,生成隐藏了构成逻辑电路函数^^,...,。的各逻辑门电路的Tg的集合T。其 中,使输入值Hi1 mN的各比特的输入引线与[数 87][(Wi0^(WlKci))相对应(步骤S405)。秘密计算装置41A的输出单元41AC将Tg的集合T作为逻辑电路函数f (X1,..., xN)的隐藏数据而发送到秘密计算装置41B (步骤S406)。[步骤 E4-3]秘密计算装置41B的输入单元41BF中被输入数据Tg的集合T和[数 88](Wl^bBci)n。秘密计算装置4IB的秘密计算单元4IBF使用Tg和数89](Wlb^eci)n,获得逻辑电路函数f的最后级的逻辑门电路g的引线的输出[数 90](W,J> C^)。
28
[步骤 E4-5]秘密计算装置41B的秘密计算单元41BD根据[数 91],获得运算结果fOni,...,mN)的比特[数 92]b(步骤S407)。根据该例子,由于不需要执行l-out-of-2不经意传输协议,因此与第3实施方式 相比,秘密计算装置41A、41B的处理减轻。此外,从各变换装置40n发送到秘密计算装置41A的Wn= (Ci5Wi0, WiOn中,不包含有关输入值mn的信息。此外,从各变换装置40n发送到秘密计算装置 41B的[数93](W^b C^n中输入值%的比特b被随机比特Ci屏蔽,因此,不能成为与输入值mn有关的有意 的信息。因此,秘密计算装置41A、41B仅凭自身接收到的信息,无法获得与输入值mn有关 的有意的信息,输入值mn的隐秘性被确保。[变形例等]另外,本发明不限于上述的实施方式。例如,隐藏了输入值和片断的逻辑电路函数 的构成方法不限于上述情况。此外,上述的各种处理不仅可以按照记载以时间序列方式执 行,也可以根据执行处理的装置的处理能力或者需要而以并行方式或单独执行。此外,在本 说明书中,系统是多个装置的逻辑集合结构。此外,各装置的构成不限于在同一壳体内。此 外,在不脱离本发明的宗旨的范围内能够进行适当变更是不言而喻的。此外,在通过计算机来实现上述构成时,各装置应具有的功能的处理内容通过程 序来记述。并且,通过由计算机来执行该程序,从而在计算机上实现上述处理功能。记述了该处理内容的程序可以事先记录在计算机能够读取的记录介质中。作为计 算机可读取的记录介质,例如可以是磁记录装置、光盘、光磁记录介质、半导体存储器等任 何介质。此外,该程序的流通例如通过对记录了该程序的DVD、⑶-ROM等可移动型记录介 质进行销售、转让、出借等方式来进行。进而,也可以将该程序事先存储到服务器计算机的 存储装置中,并经由网络将该程序从服务器计算机转发到其它计算机中,从而使该程序流
ο执行这样的程序的计算机例如首先将可移动型记录介质中记录的程序或者从服 务器计算机转发的程序暂时存储在自身的存储装置中。然后,在执行处理时,读取在该自身 的存储介质中存储的程序,并按照读取的程序执行处理。此外,作为该程序的其他执行方 式,也可以是计算机直接从可移动型记录介质读取程序,并按照该程序执行处理,进而也可以是每当从服务器计算机对该计算机转发了程序时,依次按照接受的程序执行处理。此外, 也可以通过从服务器计算机不对该计算机转发程序、仅由该执行指示和结果取得来实现处 理功能的所谓的ASP (Application Service Provider ;应用服务提供商)型的服务来执行 上述的处理。工业上的可利用性本发明例如可以应用于一边保护个人秘密(privacy) —边灵活运用个人的信息 的各种系统中。例如,本发明能够在包含拍卖(auction)的任意的信息合计系统中利用。 这时,在不泄漏各用户拥有的数据的情况下,能够将拍卖结果和由多数表决产生的意思决 定的结果等作为运算结果来获得。此外,本发明的其他应用例子例如是,在将各用户拥有的 数据不告知其他人的情况下进行合计,并根据这些数据进行各种统计处理和开采处理的系 统。作为又一其他例子,也可以将本发明利用到生物体认证系统中。这时,在隐藏了各用户 的生物体信息的情况下,能够判定生物体信息是否正当。
权利要求
一种秘密计算系统,在第1输入值mA被隐藏的前提下,计算逻辑电路函数f对于该第1输入值mA的运算结果f(mA),该秘密计算系统包括第1秘密计算装置、存储了所述逻辑电路函数f的第2秘密计算装置、以及第3秘密计算装置,所述第3秘密计算装置包括生成与对于所述第1输入值mA以及运算符*满足mA=s*t的片断t的各比特b对应的各数据Wb、和与所述各比特b的各反向比特(1 b)对应的各数据W(1 b)的部件;将所述数据Wb发送到所述第1秘密计算装置的部件;以及不特别指定所述比特b以及反向比特(1 b)与所述数据Wb以及所述数据W(1 b)的对应,将包含所述数据Wb以及所述数据W(1 b)的数据W发送到所述第2秘密计算装置的部件,所述第2秘密计算装置包括使用满足mA=s*t的片断s和所述逻辑电路函数f以及所述数据W,生成隐藏了所述片断s嵌入到所述逻辑电路函数f的逻辑电路函数f(s*X)的数据T的部件,根据该数据T和所述数据Wb能够求出所述运算结果f(mA);以及将所述数据T发送到所述第1秘密计算装置的部件,所述第1秘密计算装置包括输入所述数据T和所述数据Wb的部件;以及使用所述数据T和所述数据Wb计算所述运算结果f(mA)的部件。
2.如权利要求1所述的秘密计算系统, 所述第1秘密计算装置还包括存储所述第1输入值mA的部件;将所述第1输入值mA分割为满足mA = s*t的所述片断s、t的部件; 将所述片断s发送到所述第2秘密计算装置的部件;以及 将所述片断t发送到所述第3秘密计算装置的部件。
3.如权利要求1或2所述的秘密计算系统,所述逻辑电路函数f是以两个输入值作为输入的逻辑电路函数f(x,y), 所述第2秘密计算装置包括存储第2输入值mB的部件,生成所述数据T的部件包括使用所述片断s和所述逻辑电路函数f(x,y)和所述数据 W以及所述输入值mB,生成隐藏了逻辑电路函数f (s*X,mB)的数据T的部件,该逻辑电路函 数f(s*X,mB)是在所述逻辑电路函数f(x,y)中嵌入了所述片断s和所述输入值mB的函 数,根据该隐藏了逻辑电路函数f(s*X,mB)的数据T和所述数据Wb能够求出所述逻辑电路 函数f (X,y)对于所述第1输入值mA和所述第2输入值mB的运算结果f (mA,mB), 计算所述运算结果f(mA)的部件包括使用所述隐藏了逻辑电路函数f (s*X,mB)的数据T和所述数据Wb计算所述运算结果 f(mA,mB)的部件。
4.如权利要求1所述的秘密计算系统,还包括 变换装置,其包括将所述第1输入值mA分割为满足mA = s*t的所述片断s、t的部件;将所述片断s发送到所述第2秘密计算装置的部件;以及 将所述片断t发送到所述第3秘密计算装置的部件。
5.一种秘密计算装置,其包括输入对于一个输入值HlA以及运算符*满足HlA = s*t的片断t的部件; 生成与所述片断t的各比特b对应的各数据Wb、和与所述各比特b的各反向比特(1-b) 对应的各数据W(l-b)的部件;将所述数据Wb发送到计算逻辑电路函数f对于所述第1输入值mA的运算结果f (mA) 的其他秘密计算装置的部件;以及不特别指定所述比特b以及反向比特(1-b)与所述数据Wb以及所述数据W(l-b)的对 应,将包含所述数据Wb以及所述数据W(l-b)的数据W发送到输入了满足mA = s*t的片断 s的其他秘密计算装置的部件。
6.一种秘密计算装置,其包括输入对于一个输入值mA以及运算符*满足HlA = S*t的片断S的部件; 使用所述片断S和逻辑电路函数f以及数据W,生成隐藏了所述片断s嵌入到该逻辑电 路函数f的逻辑电路函数f (s*x)的数据T的部件,根据该数据T和所述数据Wb能够求出 所述逻辑电路函数f对于所述第1输入值mA的运算结果f (mA);以及将所述数据T发送到计算所述运算结果f(mA)的其他秘密计算装置的部件。
7.—种秘密计算方法,使用第1、第2以及第3秘密计算装置,在第1输入值mA被隐藏 的前提下,计算逻辑电路函数f对于该第1输入值mA的运算结果f (mA),该秘密计算方法包 括(A)在所述第3秘密计算装置中,生成与对于所述第1输入值mA以及运算符*满足mA =s*t的片断t的各比特b对应的各数据Wb、和与所述各比特b的各反向比特(1-b)对应 的各数据W (1-b)的步骤;(B)在所述第3秘密计算装置中,将所述数据Wb发送到所述第1秘密计算装置的步骤;(C)在所述第3秘密计算装置中,不特别指定所述比特b以及反向比特(1-b)与所述数 据Wb以及所述数据W (1-b)的对应,将包含所述数据Wb以及所述数据W (1-b)的数据W发 送到所述第2秘密计算装置的步骤;(D)在所述第2秘密计算装置中,使用满足mA= s*t的片断s和在该第2秘密计算装 置中存储的所述逻辑电路函数f以及所述数据W,生成隐藏了所述片断s嵌入到所述逻辑电 路函数f的逻辑电路函数f (s*X)的数据T的步骤,根据该数据T和所述数据Wb能够求出 所述运算结果f(mA);(E)在所述第2秘密计算装置中,将所述数据T发送到所述第1秘密计算装置的步骤;(F)对所述第1秘密计算装置输入所述数据T和所述数据Wb的步骤;以及(G)在所述第1秘密计算装置中,使用所述数据T和所述数据Wb计算所述运算结果 f(mA)的步骤。
8.如权利要求7所述的秘密计算方法,还包括在所述第1秘密计算装置中,将该第1秘密计算装置所存储的所述第1输入值mA分割 为满足mA = s*t的所述片断s、t的步骤;将所述片断s发送到所述第2秘密计算装置的步骤;以及将所述片断t发送到所述第3秘密计算装置的步骤。
9.如权利要求7或8所述的秘密计算方法,所述逻辑电路函数f是以两个输入值作为输入的逻辑电路函数f(x,y), 所述第2秘密计算装置中存储了第2输入值mB,所述步骤(D)包括使用所述片断s和所述逻辑电路函数f(x,y)和所述数据W以及所述 输入值mB,生成隐藏了逻辑电路函数f(s*X,mB)的数据T的步骤,该逻辑电路函数f (s*X, mB)是在所述逻辑电路函数f中嵌入了所述片断s和所述输入值mB的函数,根据该隐藏了 逻辑电路函数f(s*X,mB)的数据T和所述数据Wb能够求出所述逻辑电路函数f(x,y)对于 所述第1输入值mA和所述第2输入值mB的运算结果f (mA, mB),所述步骤(G)包括在所述第1秘密计算装置中,使用所述隐藏了逻辑电路函数f(s*X, mB)的数据T和所述数据Wb计算所述运算结果f (mA,mB)的步骤。
10.一种秘密计算系统,在输入值m被隐藏的前提下,计算逻辑电路函数f(x)对于该输 入值m的运算结果f(m),该秘密计算系统包括存储了所述逻辑电路函数f(x)的第1秘密计算装置、以及第2秘 密计算装置,所述第1秘密计算装置包括在从所述输入值m分割的片断A和片断B中输入片断B的部件;以及 使用所述逻辑电路函数f(x)和所述片断B,生成隐藏了所述逻辑电路函数f(x)的数据 T的部件,根据该数据T和所述片断A能够求出所述运算结果f (m), 所述第2秘密计算装置包括 输入所述片断A和所述数据T的部件;以及 使用所述片断A和所述数据T计算所述运算结果f(m)的部件。
11.如权利要求10所述的秘密计算系统,所述片断A、B是对于运算符*满足mA = s*t的片断s、t,生成所述数据T的部件包括使用所述逻辑电路函数f(x)和所述片断t,生成隐藏了所 述片断t嵌入到所述逻辑电路函数f(x)的逻辑电路函数f(X*t)的数据T的部件,根据该 隐藏了逻辑电路函数f (X*t)的数据T和所述片断s能够求出所述运算结果f(m),使用所述片断A和所述数据T计算所述运算结果f (m)的部件包括使用所述片断s和 所述隐藏了逻辑电路函数f(X*t)的数据T计算所述运算结果f(m)的部件。
12.如权利要求11所述的秘密计算系统,使用所述片断A和所述数据T计算所述运算结果f(m)的部件包括不恢复所述输入值 m而使用所述片断s和所述隐藏了逻辑电路函数f(X*t)的数据T计算所述运算结果f(m) 的部件。
13.如权利要求12所述的秘密计算系统,使用所述片断A和所述数据T计算所述运算结果f(m)的部件包括 在与所述第1秘密计算装置之间执行l-out-of-2不经意传输协议,不对所述第1秘密 计算装置通知所述片断s,而取得在所述第1秘密计算装置中设定的与所述片断s对应的隐 藏数据的部件;以及使用所述隐藏数据和所述隐藏了逻辑电路函数f(X*t)的数据T计算所述运算结果f(m)的部件。
14.如权利要求11所述的秘密计算系统,使用所述片断A和所述数据T计算所述运算结果f(m)的部件包括在与所述第1秘密计算装置之间执行l-out-of-2不经意传输协议,不对所述第1秘密 计算装置通知所述片断s,而取得在所述第1秘密计算装置中设定的与所述片断s对应的隐 藏数据的部件;以及使用所述隐藏数据和所述隐藏了逻辑电路函数f(X*t)的数据T计算所述运算结果 f(m)的部件。
15.如权利要求11至14的任一项所述的秘密计算系统,其包括变换装置,其包括将所述输入值m分割为满足m = s*t的所述片断s、t的部件;将所述片断t发送到所述第1秘密计算装置的部件;以及将所述片断s发送到所述第2秘密计算装置的部件。
16.如权利要求10所述的秘密计算系统,所述片断A是与所述输入值m的各比特b对应的各数据Wb,所述片断B是包含所述数据Wb和与所述各比特b的反向比特(1-b)对应的各数据 W(l-b)的数据W,在该数据W中不特别指定所述数据Wb以及所述数据W(l-b)与b以及 (1-b)的对应,生成所述数据T的部件包括使用所述数据W生成隐藏了逻辑电路函数f的数据T的部 件,根据该隐藏了逻辑电路函数f的数据T和所述数据Wb能够求出所述运算结果f (m),使用所述片断A和所述数据T计算所述运算结果f (m)的部件包括使用所述数据Wb和 所述隐藏了逻辑电路函数f的数据T计算所述运算结果f (m)的部件。
17.—种秘密计算装置,其包括在从输入值m分割的片断A和片断B中输入片断B的部件;使用逻辑电路函数f(x)和所述片断B,生成隐藏了所述逻辑电路函数f(x)的数据T的 部件,根据该数据T和所述片断A能够求出运算结果f(m);以及将所述数据T发送到输入了所述片断A的其他秘密计算装置的部件。
18.—种秘密计算方法,在输入值m被隐藏的前提下,计算逻辑电路函数f(x)对于该输 入值m的运算结果f (m),该秘密计算方法包括(A)在从所述输入值m分割的片断A和片断B中对所述第1秘密计算装置输入片断B 的步骤;以及(B)在所述第1秘密计算装置中,使用该第1秘密计算装置存储的所述逻辑电路函数 f(x)和所述片断B,生成隐藏了所述逻辑电路函数f(x)的数据T的步骤,根据该数据T和 所述片断A能够求出所述运算结果f(m);(C)对所述第2秘密计算装置输入所述片断A和所述数据T的步骤;以及(D)在所述第2秘密计算装置中,使用所述片断A和所述数据T计算所述运算结果f(m) 的部件的步骤。
19.如权利要求18所述的秘密计算方法,所述片断A、B是对于运算符*满足mA = s*t的片断s、t,所述步骤(B)包括使用所述逻辑电路函数f(x)和所述片断t,生成隐藏了所述片断t 嵌入到所述逻辑电路函数f(x)的逻辑电路函数f(X*t)的数据T的步骤,根据该隐藏了逻 辑电路函数f (X*t)的数据T和所述片断s能够求出所述运算结果f(m),所述步骤(D)包括使用所述片断s和所述隐藏了逻辑电路函数f(X*t)的数据T计算 所述运算结果f(m)的步骤。
20.如权利要求18所述的秘密计算方法,所述步骤(D)包括不恢复所述输入值m而使用所述片断s和所述隐藏了逻辑电路函数 f(X*t)的数据T计算所述运算结果f(m)的步骤。
21.如权利要求20所述的秘密计算方法, 所述步骤(D)包括(D-I)所述第2秘密计算装置与所述第1秘密计算装置之间执行l-out-of-2不经意传 输协议,不对所述第1秘密计算装置通知所述片断s,而取得在所述第1秘密计算装置中设 定的与所述片断s对应的隐藏数据的步骤;以及(D-2)使用所述隐藏数据和所述隐藏了逻辑电路函数f(X*t)的数据T计算所述运算结 果f(m)的步骤。
22.如权利要求19所述的秘密计算方法, 所述步骤(D)包括(D-I)所述第2秘密计算装置与所述第1秘密计算装置之间执行l-out-of-2不经意传 输协议,不对所述第1秘密计算装置通知所述片断s,而取得在所述第1秘密计算装置中设 定的与所述片断s对应的隐藏数据的步骤;以及(D-2)使用所述隐藏数据和所述隐藏了逻辑电路函数f(X*t)的数据T计算所述运算结 果f(m)的步骤。
23.如权利要求19至22的任一项所述的秘密计算方法,还包括在变换装置中将所述输入值m分割为满足m = s*t的所述片断s、t的步骤; 在所述变换装置中将所述片断t发送到所述第1秘密计算装置的步骤;以及 在所述变换装置中将所述片断s发送到所述第2秘密计算装置的步骤。
24.如权利要求19所述的秘密计算方法,所述片断A是与所述输入值m的各比特b对应的各数据Wb,所述片断B是包含所述数据Wb和与所述各比特b的反向比特(1-b)对应的各数据 W(l-b)的数据W,在该数据W中不特别指定所述数据Wb以及所述数据W(l-b)与b以及 (1-b)的对应,所述步骤(B)包括使用所述数据W生成隐藏了逻辑电路函数f的数据T的步骤,根据 该隐藏了逻辑电路函数f的数据T和所述数据Wb能够求出所述运算结果f (m),所述步骤(D)包括使用所述数据Wb和所述隐藏了逻辑电路函数f的数据T计算所述 运算结果f(m)的步骤。
25.一种程序,使计算机作为权利要求5、6、17的任一项所述的秘密计算装置而发挥作
全文摘要
第3秘密计算装置生成与对于第1输入值mA以及运算符*满足mA=s*t的片断t的各比特b对应的各数据Wb、和与各比特b的各反向比特(1-b)对应的各数据W(1-b),并且将数据Wb发送到第1秘密计算装置,将包含数据Wb以及数据W(1-b)的数据W发送到第2秘密计算装置。第2秘密计算装置使用满足mA=s*t的片断s和逻辑电路函数f以及数据W,生成隐藏了片断s嵌入到逻辑电路函数f的逻辑电路函数f(s*X)的数据T,根据该数据T和数据Wb能够求出运算结果f(mA),将数据T发送到第1秘密计算装置。第1秘密计算装置使用数据T和数据Wb计算运算结果f(mA)。
文档编号G09C1/00GK101911153SQ20098010219
公开日2010年12月8日 申请日期2009年1月21日 优先权日2008年1月21日
发明者千田浩司 申请人:日本电信电话株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1