CN107851403B - 秘密计算装置、其方法及记录介质 - Google Patents
秘密计算装置、其方法及记录介质 Download PDFInfo
- Publication number
- CN107851403B CN107851403B CN201680039625.6A CN201680039625A CN107851403B CN 107851403 B CN107851403 B CN 107851403B CN 201680039625 A CN201680039625 A CN 201680039625A CN 107851403 B CN107851403 B CN 107851403B
- Authority
- CN
- China
- Prior art keywords
- value
- meta
- information
- shares
- sub
- 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
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种秘密计算装置,其储存以多个子份额为要素的子份额集合的真子集即分配份额、及表示与子份额集合的要素相对应的值或者表示要素是隐匿值的元信息,在从元信息得不到与提供对应值相对应的值的情况下,将从分配份额的子集得到的与提供对应值相对应的提供值输出,所述提供对应值与分配份额的子集相对应,在从元信息得不到与取得对应值相对应的值的情况下,接受与取得对应值相对应的取得值的输入,所述取得对应值与子份额集合的真子集即外部分配份额的子集相对应,在输入了取得值的情况下,至少使用取得值,得到秘密分散值。
Description
技术领域
本发明涉及秘密计算的技术领域。
背景技术
已知有基于复制型秘密分散进行秘密计算的技术(例如,参照非专利文献1等)。
现有技术文献
非专利文献
非专利文献1:五十嵐大,千田浩司,濱田浩気,高橋克巳,“軽量検証可能3パーティ秘匿関数計算の効率化及びこれを用いたセキュアなデータベース処理,”InSCIS2011,2011.
发明所要解决的课题
有如下方式,即,在多个秘密计算装置间进行值的交接,各秘密计算装置使用从其他秘密计算装置接收到的值进行秘密计算。在这种方式中,各秘密计算装置有时能够预先取得从其他秘密计算装置接受的值的一部分。在这种情况下,由于在秘密计算装置间交接的是全部值,因此效率较差。
发明内容
本发明的课题在于,提供一种秘密计算装置,其可提高各秘密计算装置使用从其他秘密计算装置接收到的值进行秘密计算的方式的效率。
用于解决课题的技术方案
秘密计算装置为了得到与多个子份额的函数值即输入值相对应的运算结果的秘密分散值,储存以多个子份额为要素的子份额集合的真子集即分配份额、及表示与子份额集合的要素相对应的值或表示要素是隐匿值的元信息,在从元信息得不到与提供对应值相对应的值的情况下,输出从分配份额的子集得到的与提供对应值相对应的提供值,所述提供对应值与分配份额的子集相对应,在从元信息得不到与取得对应值相对应的值的情况下,接受与取得对应值相对应的取得值的输入,所述取得对应值与子份额集合的真子集即外部分配份额的子集相对应,在输入了取得值的情况下,至少使用取得值,得到秘密分散值。
发明效果
由此,能够提高各秘密计算装置使用从其他秘密计算装置接收到的值进行秘密计算的方式的效率。
附图说明
图1是例示实施方式的秘密计算系统的功能结构的方框图;
图2是例示实施方式的秘密计算装置的功能结构的方框图;
图3是用于例示实施方式的秘密计算方法的概念图;
图4是用于例示实施方式的秘密计算方法的流程图;
图5是用于例示实施方式的秘密计算方法的流程图;
图6是用于例示实施方式的秘密计算方法的流程图;
图7是用于例示实施方式的秘密计算方法的流程图;
图8是用于例示实施方式的秘密计算方法的概念图;
图9是用于例示实施方式的秘密计算方法的流程图;
图10是用于例示实施方式的秘密计算方法的流程图;
图11是用于例示实施方式的秘密计算方法的流程图;
图12是用于例示实施方式的秘密计算方法的流程图。
具体实施方式
下面,对本发明的实施方式进行说明。
[概要]
在实施方式的秘密计算中,多个秘密计算装置得到与“输入值”相对应的运算结果的秘密分散值。这里,“输入值”被按照复制型秘密分散方式进行秘密分散。即,将以“输入值”为多个子份额的函数值(例如:加法运算值、加减法运算值等),并将以该多个子份额为要素的“子份额集合”的真子集作为份额(“输入值”的秘密分散值)而分配给各秘密分散装置。但是,与一部分子份额相对应的值对于各秘密分散装置来说有时是已知的。例如,这种情况是通过过去进行的秘密计算而已经取得与一部分子份额相对应的值的情况、与一部分子份额相对应的值为公开信息的情况等。此外,“与α相对应的值”可以是α自身,也可以是α的函数值。“与α相对应的值”例如是对应于α的值。“与输入值相对应的运算结果”可以是输入值自身,也可以是输入值的函数值。根据这种状况,设定表示与“子份额集合”的要素相对应的值或表示要素是隐匿值的“元信息”。用“元信息”表示“与要素相对应的值”的要素可从该“元信息”确定。用“元信息”表示“是隐匿值”的要素不能从该“元信息”确定。在各秘密计算装置中储存这些“分配份额”及“元信息”。秘密计算装置在从“元信息”得不到与“提供对应值”相对应的值的情况下,将与从“分配份额”的子集得到的“提供对应值”相对应的“提供值”输出到其他秘密计算装置,该“提供对应值”与“分配份额”的子集相对应。此外,“与子集相对应的提供对应值”可以是子集自身,也可以是子集的函数值。“与提供对应值相对应的提供值”可以是提供对应值自身,也可以是提供对应值的函数值。另一方面,在从“元信息”可得到与该“提供对应值”相对应的值的情况下,秘密计算装置不需要将“提供值”输出到其他秘密计算装置。另外,在从“元信息”得不到与“取得对应值”相对应的值的情况下,将与“取得对应值”相对应的“取得值”输入到秘密计算装置,该“取得对应值”与“子份额集合”的真子集即“外部分配份额”的子集相对应。此外,“外部分配份额”指的是分配给其他秘密计算装置的份额。“与子集相对应的取得对应值”可以是子集自身,也可以是子集的函数值。“与取得对应值相对应的取得值”可以是取得对应值自身,也可以是取得对应值的函数值。另一方面,在从“元信息”可得到与该“取得对应值”相对应的值的情况下,不需要向秘密计算装置输入“取得值”。秘密计算装置在输入了“取得值”的情况下,至少使用“取得值”,来得到“与输入值相对应的运算结果的秘密分散值”。由此,能够削减秘密计算装置间的值的交接次数,能够提高效率。
例如,在可得到与“输入值”及“第二输入值”相对应的运算结果秘密分散值的情况下,成为如下那样的处理。在这种情况下,与“输入值”同样,“第二输入值”也被按照复制型秘密分散方式进行秘密分散。即,将以“第二输入值”为多个第二子份额的函数值,并且将以该多个第二子份额为要素的“第二子份额集合”的真子集作为第二份额(“第二输入值”的秘密分散值)而分配给各秘密分散装置。其中,与一部分第二子份额相对应的值有时对于各秘密计算装置来说是已知的。根据这种状况,设定表示与“第二子份额集合”的要素相对应的值或表示要素是隐匿值的“第二元信息”。用“第二元信息”表示“与要素相对应的值”的要素可从该“第二元信息”确定。用“第二元信息”表示“是隐匿值”的要素不能从该“第二元信息”确定。在各秘密计算装置储存这些“第二分配份额”及“第二元信息”。秘密计算装置在从“元信息”和“第二元信息”得不到与“提供对应值”相对应的值的情况下,将与从“分配份额”的子集和“第二分配份额”的子集得到的“提供对应值”相对应的“提供值”输出到其他秘密计算装置,该“提供对应值”与“分配份额”的子集和“第二分配份额”的子集相对应。在从“元信息”和“第二元信息”得不到与“取得对应值”相对应的值的情况下,将与“取得对应值”相对应的“取得值”输入到秘密计算装置,该“取得对应值”与“子份额集合”的真子集即“外部分配份额”的子集、和“第二子份额集合”的真子集即“第二外部分配份额”的子集相对应。另外,秘密计算装置在输入了“取得值”的情况下,至少使用“取得值”,来得到“与输入值和第2输入值相对应的运算结果秘密分散值”。
在将上述方式应用于乘法运算的情况下,“运算结果”是输入值a和第二输入值b的乘法运算ab,用三个秘密计算装置进行乘法运算结果ab的秘密计算。输入值a关于子份额a0P、a1P、a2P,满足a=a0P+a1P+a2P,第二输入值b 关于第二子份额b0P、b1P、b2P,满足b=b0P+b1P+b2P。秘密计算装置储存:子份额集合(a0P、a1P、a2P)的真子集即分配份额(a0P、a1P)、表示与子份额集合(a0P、a1P、a2P)的要素相对应的值或表示要素是隐匿值的元信息A、第二子份额集合(b0P、b1P、b2P)的真子集即第二分配份额(b0P、b1P)、及表示与第二子份额集合(b0P、b1P、b2P)的要素相对应的值或表示要素是隐匿值的第二元信息B。秘密计算装置在从元信息A、B得不到与提供对应值a0Pb1P+ a1Pb0P相对应的值的情况下,在与外部的秘密计算装置(第一秘密计算装置) 之间进行用于共享第一任意值rP的交换。在不是那样的情况下,不需要进行用于共享第一任意值rP的交换。秘密计算装置在从元信息A、B得不到与a2Pb0P +a0Pb2P相对应的值的情况下,在与外部的秘密计算装置(第二秘密计算装置) 之间进行用于共享第二任意值rP-的交换。在不是那样的情况下,不需要进行用于共享第二任意值rP-的交换。此外,下标的“P”对应于该秘密计算装置,下标的“P+”对应于第一秘密计算装置,下标的“P-”对应于第二秘密计算装置。秘密计算装置在从元信息A、B得不到与提供对应值a0Pb1P+a1Pb0P相对应的值的情况下,输出提供值cP:=a0Pb1P+a1Pb0P+rP,在从元信息A、B得不到与取得对应值a1Pb2P+a2Pb1P相对应的值的情况下,接受取得值cP+的输入。其中,cP+:=a1Pb2P+a2Pb1P+rP+。在不是那样的情况下,不需要这些交换。“α:=β”是定义α为β(即,将α设为β值)的意思。秘密计算装置在从元信息A、 B得不到与提供对应值a0Pb1P+a1Pb0P相对应的值的情况下,设为c’P:=cP,在不设为c’P:=cP的情况下,设为c’P:=0,在从元信息A、B得不到与取得对应值a1Pb2P+a2Pb1P相对应的值的情况下,设为c’P+:=cP+,在不设为c’P+:=cP+的情况下,设为c’P+:=0。另外,秘密计算装置在从元信息A、B 得不到与提供对应值a0Pb1P+a1Pb0P相对应的值的情况下,设为r’P:=rP,在不设为r’P:=rP的情况下,设为r’P:=0,在从元信息A、B得不到与a2Pb0P +a0Pb2P相对应的值的情况下,设为r’P-:=rP-,在不设为r’P-:=rP-的情况下,设为r’P-:=0。进而,秘密计算装置在从元信息A、B得不到与a2Pb0P +a0Pb2P相对应的值或者得不到与a0Pb0P+a0Pb1P+a1Pb0P相对应的值的情况下,得到c0P:=a’0Pb’1P+c’P-r’P-,在从元信息A、B得不到与a0Pb1P+a1Pb0P相对应的值或者得不到与a1Pb1P+a1Pb2P+a2Pb1P相对应的值的情况下,得到c1P:=a’1Pb’1P+c’P+-r’P。这里,a’0P、a’1P、b’0P、b’1P分别是与a0P、a1P、b0P、b1P相对应的值。另外,c0P及c1P是乘法运算结果ab的秘密分散值。其中,在从元信息A、B可得到与a2Pb0P+a0Pb2P及a0Pb0P+a0Pb1P+a1Pb0P相对应的值的情况下,即使无c0P,也能够进行运算结果ab的恢复。在这种情况下,c0P的运算也可省略。另外,在从元信息A、B可得到与a0Pb1P+a1Pb0P及a1Pb1P+a1Pb2P +a2Pb1P相对应的值的情况下,即使无c1P,也能够进行运算结果ab的恢复。在这种情况下,c1P的运算也可省略。
更具体地说,秘密计算装置例如在从元信息A、B得不到与a0Pb0P+a0Pb1P +a1Pb0P相对应的值的情况下,设为C0P:=⊥,在从元信息A、B可得到与 a0Pb0P+a0Pb1P+a1Pb0P相对应的值的情况下,从元信息A、B得到与a0Pb0P+ a0Pb1P+a1Pb0P相对应的值,并设为C0P。另外,秘密计算装置例如在从元信息 A、B得不到与a1Pb1P+a1Pb2P+a2Pb1P相对应的值的情况下,设为C1P:=⊥,在从元信息A、B可得到与a1Pb1P+a1Pb2P+a2Pb1P相对应的值的情况下,从元信息A、B得到与a1Pb1P+a1Pb2P+a2Pb1P相对应的值,并设为C1P。进而,秘密计算装置例如在从元信息A、B得不到与a2Pb2P+a2Pb0P+a0Pb2P相对应的值的情况下,设为C2P:=⊥,在可得到与a2Pb2P+a2Pb0P+a0Pb2P相对应的值的情况下,从元信息A、B得到与a2Pb2P+a2Pb0P+a0Pb2P相对应的值,并设为C2P。在这种情况下,C0P、C1P、C2P是乘法运算结果ab的秘密分散值的元信息,在C0P:=⊥的情况下,乘法运算结果ab的秘密分散值包含c0P,在C1P:=⊥的情况下,乘法运算结果ab的秘密分散值包含c1P。如上所述,能够削减秘密计算装置间的值的交接次数、及恢复时的秘密分散值的交接次数,能够提高效率。进而,在省略了c0P、c1P的运算的情况下,也能够削减秘密计算装置的运算量。
另外,例如,在元信息A表示与a0P相对应的值的情况下,a’0P是用元信息A表示的值,在元信息A表示与a1P相对应的值的情况下,a’1P是用元信息 A表示的值,在元信息B表示与b0P相对应的值的情况下,b’0P是用元信息B 表示的值,在元信息B表示与b1P相对应的值的情况下,b’1P是用元信息B表示的值。这里,在满足用元信息A表示的与a0P相对应的值的数据量比a0P的数据量小(条件1-1)、和/或用元信息A表示的与a1P相对应的值的数据量比 a1P的数据量小(条件1-2)、和/或用元信息B表示的与b0P相对应的值的数据量比b0P的数据量小(条件1-3)、和/或用元信息B表示的与b1P相对应的值的数据量比b1P的数据量小(条件1-4)这样的条件的情况下,与使用份额的情况相比,能够削减运算量。
在将上述方式应用于积和运算的情况下,“运算结果”是输入值{a(0)、…、 a(N-1)}和第二输入值{b(0)、…、b(N-1)}的运算结果Σn∈{0、…、N-1} a(n)b(n)(其中,n∈{0、…、N-1},N≧1),用三个秘密计算装置进行运算Σn∈{0、…、N-1}a(n)b(n)的秘密计算。a(n)关于子份额a0P(n)、 a1P(n)、a2P(n),满足a(n)=a0P(n)+a1P(n)+a2P(n),b(n)关于第二子份额b0P(n)、b1P(n)、b2P(n),满足b(n)=b0P(n)+b1P(n)+b2P (n)。此外,“Σn∈{0、…、N-1}α(n)”表示“α(0)+…+α(N-1)”。即,“Σn∈{0、…、N-1}α(n)”表示
秘密计算装置储存:子份额集合(a0P(n)、a1P(n)、a2P(n))的真子集即分配份额(a0P(n)、a1P(n))、表示与子份额集合(a0P(n)、a1P(n)、a2P (n))的要素相对应的值或表示要素是隐匿值的元信息A、第二子份额集合 (b0P(n)、b1P(n)、b2P(n))的真子集即第二分配份额(b0P(n)、b1P(n))、及表示与第二子份额集合(b0P(n)、b1P(n)、b2P(n))的要素相对应的值或表示要素是隐匿值的第二元信息B。秘密计算装置在从元信息A、B得不到与提供对应值Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,在与外部的秘密计算装置(第一秘密计算装置)之间进行用于共享第一任意值rP的交换。在不是那样的情况下,不需要进行用于共享第一任意值rP的交换。秘密计算装置在从元信息A、B得不到与Σn∈{0、…、N-1}{a2P (n)b0P(n)+a0P(n)b2P(n)}相对应的值的情况下,在与外部的秘密计算装置(第二秘密计算装置)之间进行用于共享第二任意值rP-的交换。在不是那样的情况下,不需要进行用于共享第二任意值rP-的交换。秘密计算装置在从元信息A、B得不到与提供对应值Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P (n)b0P(n)}相对应的值的情况下,输出提供值cP:=Σn∈{0、…、N-1}{a0P(n) b1P(n)+a1P(n)b0P(n)}+rP,在从元信息A、B得不到与取得对应值Σn∈{0、…、N-1}{a1P(n)b2P(n)+a2P(n)b1P(n)}相对应的值的情况下,接受取得值cP+的输入。其中,cP+:=Σn∈{0、…、N-1}{a1Pb2P+a2Pb1P}+rP+。在不是那样的情况下,不需要进行这些交换。秘密计算装置在从元信息A、B得不到与提供对应值Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,设为c’P:=cP,在不设为c’P:=cP的情况下,设为c’P:=0,在从元信息A、B得不到与取得对应值Σn∈{0、…、N-1}{a1P(n)b2P(n) +a2P(n)b1P(n)}相对应的值的情况下,设为c’P+:=cP+,在不设为c’P+:=cP+的情况下,设为c’P+:=0。另外,秘密计算装置在从元信息A、B得不到与提供对应值Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,设为r’P:=rP,在不设为r’P:=rP的情况下,设为r’P:=0,在从元信息A、B得不到与Σn∈{0、…、N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)} 相对应的值的情况下,设为r’P-:=rP-,在不设为r’P-:=rP-的情况下,设为r’P-:=0。进而,秘密计算装置在从元信息A、B得不到与Σn∈{0、…、N-1} {a2P(n)b0P(n)+a0P(n)b2P(n)}相对应的值、或者得不到与Σn∈{0、…、N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,可得到c0P:=Σn∈{0、…、N-1}a’0P(n)b’1P(n)+c’P-r’P-。秘密计算装置在从元信息A、B得不到与Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n) b0P(n)}相对应的值、或者得不到与Σn∈{0、…、N-1}{a1P(n)b1P(n)+a1P(n) b2P(n)+a2P(n)b1P(n)}相对应的值的情况下,可得到c1P:=Σn∈{0、…、N-1}a’1P(n)b’1P(n)+c’P+-r’P。这里,a’0P(n)、a’1P(n)、b’0P(n)、b’1P (n)分别是与a0P(n)、a1P(n)、b0P(n)、b1P(n)相对应的值。另外,c0P及c1P是乘法运算结果Σn∈{0、…、N-1}a(n)b(n)的秘密分散值。其中,在从元信息A、B可得到与Σn∈{0、…、N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}及Σn∈{0、…、N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,即使无c0P,也能够进行运算结果Σn∈{0、…、N-1}a(n)b(n) 的恢复。在这种情况下,c0P的运算也可省略。另外,在从元信息A、B可得到与Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}及Σn∈{0、…、N-1}{a1P (n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}相对应的值的情况下,即使无c1P,也能够进行运算结果Σn∈{0、…、N-1}a(n)b(n)的恢复。在这种情况下,c1P的运算也可省略。
更具体地说,秘密计算装置例如在从元信息A、B得不到与Σn∈{0、…、N-1} {a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,设为C0P:=⊥。秘密计算装置例如在从元信息A、B可得到与Σn∈{0、…、N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,从元信息A、B得到与Σn∈{0、…、N-1}{a0P(n)b0P(n)+a0P(n)b1P (n)+a1P(n)b0P(n)}相对应的值,并设为C0P。秘密计算装置例如在从元信息A、B得不到与Σn∈{0、…、N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+ a2P(n)b1P(n)}相对应的值的情况下,设为C1P:=⊥。秘密计算装置例如在从元信息A、B可得到与Σn∈{0、…、N-1}{a1P(n)b1P(n)+a1P(n)b2P(n) +a2P(n)b1P(n)}相对应的值的情况下,从元信息A、B得到与Σn∈{0、…、N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}相对应的值,并设为C1P。秘密计算装置例如在从元信息A、B得不到与Σn∈{0、…、N-1}{a2P(n) b2P(n)+a2P(n)b0P(n)+a0P(n)b2P(n)}相对应的值的情况下,设为 C2P:=⊥。秘密计算装置例如在可得到与Σn∈{0、…、N-1}{a2P(n)b2P(n)+ a2P(n)b0P(n)+a0P(n)b2P(n)}相对应的值的情况下,从元信息A、B得到与Σn∈{0、…、N-1}{a2P(n)b2P(n)+a2P(n)b0P(n)+a0P(n)b2P(n)} 相对应的值,并设为C2P。C0P、C1P、C2P是运算结果Σn∈{0、…、N-1}a(n)b(n) 的秘密分散值的元信息,在C0P:=⊥的情况下,运算结果Σn∈{0、…、N-1}a(n) b(n)的秘密分散值包含c0P,在C1P:=⊥的情况下,运算结果Σn∈{0、…、N-1} a(n)b(n)的秘密分散值包含c1P。如上所述,能够削减秘密计算装置间的值的交接次数、及恢复时的秘密分散值的交接量,能够提高效率。进而,在省略了c0P、c1P的运算的情况下,也能够削减秘密计算装置的运算量。
另外,例如,在元信息A表示与a0P(n)相对应的值的情况下,a’0P(n) 是用元信息A表示的值,在元信息A表示与a1P(n)相对应的值的情况下, a’1P(n)是用元信息A表示的值,在元信息B表示与b0P(n)相对应的值的情况下,b’0P(n)是用元信息B表示的值,在元信息B表示与b1P(n)相对应的值的情况下,b’1P(n)是用元信息B表示的值。这里,在满足:用元信息A表示的与a0P(n)相对应的值的数据量比a0P(n)的数据量小(条件2 -1)、和/或用元信息A表示的与a1P(n)相对应的值的数据量比a1P(n)的数据量小(条件2-2)、和/或用元信息B表示的与b0P(n)相对应的值的数据量比b0P(n)的数据量小(条件2-3)、和/或用元信息B表示的与b1P(n) 相对应的值的数据量比b1P(n)的数据量小(条件2-4)这样的条件的情况下,与使用份额的情况相比,能够削减运算量。
[第一实施方式]
在第一实施方式中,对将上述方式应用于乘法运算的例子进行说明。
<结构>
如图1所示,本方式的秘密计算系统1具有三个秘密计算装置11-0、11 -1、11-2,它们构成为可通过互联网等网络进行通信。如图2所示,本方式的秘密计算装置11-P(其中,P=0、1、2)具有存储单元111-P、运算单元112-P、控制单元113-P、共享单元114-P、及通信单元115-P。运算单元112-P具有处理单元1120-P~112A-P。秘密计算装置11-P例如通过具备CPU(central processing unit)等处理器(硬件、处理器)及RAM (random-access memory)、ROM(read-only memory)等存储器等的通用或专用的计算机执行规定的程序而构成。该计算机可以具备一个处理器、存储器,也可以具备多个处理器、存储器。该程序可以安装于计算机,也可以预先记录于ROM等。另外,也可以构成一部分或所有的处理单元,所述一部分或所有的处理单元使用的不是如CPU那样通过读入程序来实现功能构成的电子电路(circuitry),而是使用的是不使用程序就可实现处理功能的电子电路。另外,构成一个秘密计算装置11-m的电子电路也可以包含多个CPU。此外,由秘密计算装置11-P执行的各处理在控制单元113-P的控制下执行,由各处理得到的信息暂时储存于存储器(未图示)。暂时储存于存储器的信息根据需要而读出来使用。
<处理的前提>
在本方式中,进行的是输入值a和输入值b的乘法运算ab的秘密计算。输入值a分割为满足a=a1+a2+a3的三个子份额a1、a2、a3,输入值b分割为满足b=b1+b2+b3的三个子份额b1、b2、b3。即,输入值a是子份额a1、a2、 a3的函数值,输入值b是子份额b1、b2、b3的函数值。向各秘密计算装置11 -P(其中,P=0、1、2)分配以三个子份额a0P、a1P、a2P为要素的子份额集合(a0P、a1P、a2P)的真子集即份额(a0P、a1P)(分配份额)。其中,a0P=a1(P-1mod3),且a1P=a0(P+1mod3)。将子份额集合(a0P、a1P、a2P)的其他真子集(a0P、 a2P)及(a1P、a2P)称为“外部分配份额”。另外,在各秘密计算装置11-P(其中,P=0、1、2)分配有以三个子份额b0P、b1P、b2P为要素的子份额集合(b0P、 b1P、b2P)的真子集即份额(b0P、b1P)(分配份额)。其中,b0P=b1(P-1mod3),且b1P=b0(P+1mod3)。将子份额集合(b0P、b1P、b2P)的其他真子集(b0P、b2P) 及(b1P、b2P)称为“外部分配份额”。即,在秘密计算装置11-0内分配有份额(a00、a10)=(a2、a0)及(b00、b10)=(b2、b0),在秘密计算装置11- 1内分配有份额(a01、a11)=(a0、a1)及(b01、b11)=(b0、b1),在秘密计算装置11-2内分配有份额(a02、a12)=(a1、a2)、(b02、b12)=(b1、b2)。对于秘密计算装置11-P来说,未分配给自己的份额是“外部分配份额”。在各秘密计算装置11-P(图2)的存储单元111-P储存有份额(a0P、a1P)及 (b0P、b1P)(分配份额)(图3)。这些子份额明确地满足a=a0P+a1P+a2P及b =b0P+b1P+b2P的关系。
设定表示与子份额集合(a0P、a1P、a2P)的要素相对应的值或者表示要素是隐匿值的元信息A、及表示与子份额集合(b0P、b1P、b2P)的要素相对应的值或者表示要素是隐匿值的元信息B。“表示与要素aJP相对应的值的元信息A”可以表示值AJP(即,AJP:=aJP),该值AJP(即,AJP:=aJP)表示的是要素 aJP(其中,J=0、1、2)自身,也可以表示值AJP,该值AJP关于唯一地确定要素aJP的函数f而满足aJP=f(AJP)。在前者的情况下,AJP是以由输入值a 取得的值为要素的集合R的元素,在后者的情况下,AJP是基于函数f的值域属于集合R的定义域R’的元素。函数f例如是同态函数。定义域R’的元素的数据量也可以比集合R的元素的数据量小。“表示要素aJP是隐匿值的元信息 A”表示的是值AJP=⊥,所述AJP=⊥是表示要素aJP(其中,J=0、1、2)是隐匿值的值。在AJP=⊥的情况下,仅从元信息A不能得到要素aJP的值。如果是表示这种值A0P、A1P、A2P的信息,则什么样的信息都可以作为元信息A。例如,以值A0P、A1P、A2P为要素的集合(A0P、A1P、A2P)可以作为元信息A,表示集合(A0P、A1P、A2P)的一个值也可以作为元信息A,表示由集合(A0P、 A1P、A2P)的多个要素构成的子集的值的集合也可以作为元信息A。以上方面关于元信息B也是同样的,只要是表示值B0P、B1P、B2P的信息,则什么样的信息都可以作为元信息B。其中,BJP:=bJP或者bJP=f(BJP)或者BJP:=⊥。在A0P、A1P、A2P、B0P、B1P、B2P中的至少一个不是“⊥”的情况下,能够削减秘密计算装置11-P间的值的交接次数。元信息A及B被储存于所有秘密计算装置11-P(其中,P=0、1、2)的存储单元111-P。
<秘密计算处理>
接着,利用图3~图7对本方式的秘密计算的处理内容进行说明。秘密计算装置11-P(其中,P=0、1、2)分别执行下面的处理。
秘密计算装置11-P的共享单元114-P根据与储存于存储单元111-P 的元信息A、B对应的x01是真(T)还是假(F)进行处理。其中,xJK:= [AJPBKP+AKPBJP=⊥]∈{T、F}(其中,(J、K)=(0、1)、(1、2)、(2、 0)),[AJPBKP+AKPBJP=⊥]表示真假值,该真假值表示“是AJPBKP+AKPBJP=⊥”这种命题是真(T)还是假(F)。“是AJPBKP+AKPBJP=⊥”指的是从元信息A、B得不到与aJPbKP+aKPbJP相对应的值的意思。在从元信息A、B得不到与aJPbKP相对应的值的情况(AJPBKP=⊥)下,或者在从元信息A、B得不到与aKPbJP相对应的值的情况(AKPBJP=⊥)下,从元信息A、B得不到与 aJPbKP+aKPbJP相对应的值(AJPBKP+AKPBJP=⊥)。换句话说,AJPBKP+AKPBJP=⊥指的是(AJPBKP=⊥)∨(AKPBJP=⊥)的意思。例如,(1)在AJP、BKP∈R 或者AJP、BKP∈R’的情况下,为AJPBKP≠⊥,在AKP、BJP∈R或者AKP、BJP∈R’的情况下,为AKPBJP≠⊥。(2)在AJP=0的情况下,不管BKP如何,都为AJPBKP=0,且AJPBKP≠⊥。在BKP=0的情况下,不管AJP如何,都为AJPBKP=0,且AJPBKP≠⊥。在AKP=0的情况下,不管BJP如何,都为AKPBJP=0,且AKPBJP≠⊥。在BJP=0的情况下,不管AKP如何,都为AKPBJP=0,且AKPBJP≠⊥。(3)在 AJP≠0且BKP=⊥的情况下,或者在AJP=⊥≠0且BKP≠0的情况下,为AJPBKP=⊥。在AKP≠0且BJP=⊥的情况下,或者在AKP=⊥≠0且BJP≠0的情况下,为AKPBJP=⊥(步骤S101)。
在x01为真(x01=T)的情况(从元信息A、B得不到与提供对应值a0Pb1P +a1Pb0P相对应的值的情况)下,共享单元114-P在与外部的秘密计算装置 11-(P+1mod3)之间进行用于共享任意值rP的交换。任意值rP可以是随机数,也可以是伪随机数,还可以是常数。例如,共享单元114-P将生成或选择到的任意值rP储存于存储单元111-P,并且发送到通信单元115-P,通信单元115-P将任意值rP发送到秘密计算装置11-(P+1mod3)。任意值 rP被输入到秘密计算装置11-(P+1mod3)的通信单元115-(P+1 mod3),且被储存于存储单元111-(P+1mod3)(步骤S102)。其后,进入步骤S103。另一方面,在x01为假(x01=F)的情况下,不执行步骤S102,进入步骤S103。
在步骤S103中,共享单元114-P根据与储存于存储单元111-P的元信息A、B对应的x20是真(T)还是假(F)进行处理(步骤S103)。在x20为真(x20=T)的情况(从元信息A、B得不到与提供对应值a2Pb0P+a0Pb2P相对应的值的情况)下,共享单元114-P在与外部的秘密计算装置11-(P-1 mod3)之间进行用于共享任意值rP-:=r(P-1mod3)的交换。任意值rP-可以是随机数,也可以是伪随机数,还可以是常数。例如,秘密计算装置11-(P -1mod3)的共享单元114-(P-1mod3)将生成或选择的任意值rP-储存于存储单元111-(P-1mod3),并且发送到通信单元115-(P-1 mod3),通信单元115-(P-1mod3)将任意值rP-发送到秘密计算装置11 -P。任意值rP-被输入到共享单元114-P,共享单元114-P将任意值rP-储存于存储单元111-P(步骤S104)。其后,进入步骤S105。另一方面,在x20为假(x20=F)的情况下,不执行步骤S104,进入步骤S105。
在步骤S105中,运算单元112-P的处理单元1120-P根据与储存于存储单元111-P的元信息A、B对应的x01是真(T)还是假(F)进行处理(步骤S105)。在x01为真(x01=T)的情况(从元信息A、B得不到与提供对应值a0Pb1P+a1Pb0P相对应的值的情况)下,处理单元1120-P从存储单元111 -P读入份额(a0P、a1P)、(b0P、b1P)及任意值rP,得到提供值cP:=a0Pb1P +a1Pb0P+rP而输出(步骤S106)。提供值cP被从通信单元115-P发送到外部的秘密计算装置11-(P-1mod3)。提供值cP被输入到秘密计算装置11- (P-1mod3)的通信单元115-(P-1mod3),储存于存储单元111-(P -1mod3)(步骤S107)。其后,进入步骤S110。另一方面,在x01为假(x01=F)的情况下,不执行步骤S106、S107,进入步骤S110。
在步骤S110中,运算单元112-P的处理单元1127-P从储存于存储单元111-P的元信息A、B得到C0P:=A0PB0P+A0PB1P+A1PB0P,并将C0P输出(步骤S110)。这里,在从元信息A、B得不到与a0Pb0P+a0Pb1P+a1Pb0P相对应的值的情况(A0PB0P+A0PB1P+A1PB0P=⊥的情况)下,成为C0P:=⊥。此外,在A0PB0P=⊥或者A0PB1P=⊥或者A1PB0P=⊥的情况下,成为A0PB0P +A0PB1P+A1PB0P=⊥。另一方面,在从元信息A、B可得到与a0Pb0P+a0Pb1P +a1Pb0P相对应的值的情况下,C0P成为与a0Pb0P+a0Pb1P+a1Pb0P相对应的值。
接着,运算单元112-P的处理单元1128-P从储存于存储单元111-P 的元信息A、B得到C1P:=A1PB1P+A1PB2P+A2PB1P,并将C1P输出(步骤S113)。这里,在从元信息A、B得不到与a1Pb1P+a1Pb2P+a2Pb1P相对应的值的情况 (A1PB1P+A1PB2P+A2PB1P=⊥的情况)下,成为C1P:=⊥。另一方面,在从元信息A、B可得到与a1Pb1P+a1Pb2P+a2Pb1P相对应的值的情况下,C1P成为与a1Pb1P+a1Pb2P+a2Pb1P相对应的值。
接着,运算单元112-P的处理单元1128-P从储存于存储单元111-P 的元信息A、B得到C2P:=A2PB2P+A2PB0P+A0PB2P,并将C2P输出(步骤S116)。这里,在从元信息A、B得不到与a2Pb2P+a2Pb0P+a0Pb2P相对应的值的情况 (A2PB2P+A2PB0P+A0PB2P=⊥)下,成为C2P:=⊥。另一方面,在从元信息A、B可得到与a2Pb2P+a2Pb0P+a0Pb2P相对应的值的情况下,C2P成为与a2Pb2P +a2Pb0P+a0Pb2P相对应的值。
接着,运算单元112-P的处理单元112A-P根据与储存于存储单元111 -P的元信息A对应的A0P是真(T)还是假(F)进行处理(步骤S117)。处理单元112A-P在A0P为真(A0P=T)的情况下,设为a’0P:=a0P(步骤S118),在A0P为假(A0P=F)的情况下,设为a’0P:=A0P(步骤S119)。即,在元信息A表示与a0P相对应的值的情况下,a’0P成为用元信息A表示的值。
另外,处理单元112A-P根据与储存于存储单元111-P的元信息A对应的A1P是真(T)还是假(F)进行处理(步骤S120)。处理单元112A-P 在A1P为真(A1P=T)的情况下,设为a’1P:=a1P(步骤S121),在A1P为假 (A1P=F)的情况下,设为a’1P:=A1P,且将a’1P输出(步骤S122)。即,在元信息A表示与a1P相对应的值的情况下,a’1P成为用元信息A表示的值。
另外,处理单元112A-P根据与储存于存储单元111-P的元信息B对应的B0P是真(T)还是假(F)进行处理(步骤S123)。处理单元112A-P 在B0P为真(B0P=T)的情况下,设为b’0P:=b0P(步骤S124),在B0P为假 (B0P=F)的情况下,设为b’0P:=B0P,且将b’0P输出(步骤S125)。即,在元信息B表示与b0P相对应的值的情况下,b’0P成为用元信息B表示的值。
接着,处理单元112A-P根据与储存于存储单元111-P的元信息B对应的B1P是真(T)还是假(F)进行处理(步骤S126)。处理单元112A-P 在B1P为真(B1P=T)的情况下,设为b’1P:=b1P(步骤S127),在B1P为假 (B1P=F)的情况下,设为b’1P:=B1P,且将b’1P输出(步骤S128)。即,在元信息B表示与b1P相对应的值的情况下,b’1P成为用元信息B表示的值。
运算单元112-P的处理单元1121-P根据与储存于存储单元111-P的元信息A、B对应的x10是真(T)还是假(F)进行处理(步骤S129)。处理单元1121-P在x10为真(x10=T)的情况(从元信息A、B得不到与提供对应值a0Pb1P+a1Pb0P相对应的值的情况)下,设为c’P:=cP(步骤S130),在不是那样的情况(不设为c’P:=cP的情况)下,设为c’P:=0(步骤S131),且将c’P输出。
运算单元112-P的处理单元1122-P根据与储存于存储单元111-P的元信息A、B对应的x12是真(T)还是假(F)进行处理(步骤S132)。在x12为真(T)的情况(从元信息A、B得不到与取得对应值a1Pb2P+a2Pb1P相对应的值的情况)下,通过上述的步骤S107,从秘密计算装置11-(P+1mod3) 发送取得值cP+:=c(P+1mod3)。该取得值cP+被输入到处理单元1122-P(步骤S133)。处理单元1122-P设为c’P+:=cP+而输出(步骤S134)。另一方面,在x12为假(F)的情况(不设为c’P+:=cP+的情况)下,处理单元1122 -P设为c’P+:=0而输出(步骤S135)。
运算单元112-P的处理单元1123-P根据与储存于存储单元111-P的元信息A、B对应的x01是真(T)还是假(F)进行处理(步骤S136)。处理单元1122-P在x01为真(T)的情况(从元信息A、B得不到与提供对应值 a0Pb1P+a1Pb0P相对应的值的情况)下,设为r’P:=rP(步骤S137),在不是那样的情况(不设为r’P:=rP的情况)下,设为r’P:=0(步骤S138),且将r’P输出。
运算单元112-P的处理单元1124-P根据与储存于存储单元111-P的元信息A、B对应的x20是真(T)还是假(F)进行处理(步骤S139)。处理单元1124-P在x20为真(T)的情况(从元信息A、B得不到与a2Pb0P+a0Pb2P相对应的值的情况)下,设为r’P-:=rP-(步骤S140),在不是那样的情况(不设为r’P-:=rP-的情况)下,设为r’P-:=0(步骤S141),且将r’P-输出。
运算单元112-P的处理单元1125-P根据是否为C0P=⊥进行处理(步骤S142)。如果是C0P=⊥,则处理单元1125-P可得到c0P:=a’0Pb’1P+c’P-r’P-(步骤S143),运算单元112-P将c0P输出(步骤S144),进入步骤S145。此外,成为C0P=⊥的是从元信息A、B得不到与a2Pb0P+a0Pb2P相对应的值、或者得不到与a0Pb0P+a0Pb1P+a1Pb0P相对应的值的情况。另一方面,如果不是 C0P=⊥,则不执行步骤S143及S144,进入步骤S145。
在步骤S145中,运算单元112-P的处理单元1126-P根据是否为C1P=⊥进行处理(步骤S145)。如果是C1P=⊥,则处理单元1126-P可得到c1P:=a’1Pb’1P+c’P+-r’P(步骤S146),运算单元112-P将c1P输出(步骤S147)。另一方面,如果不是C1P=⊥,则不执行步骤S146及S147,进入步骤S148。
在步骤S148中,运算单元112-P将C0P、C1P、C2P输出。这里,C0P、 C1P、C2P是运算结果ab的秘密分散值的元信息。c0P及c1P是运算结果ab的秘密分散值。其中,c0P只要仅在C0P:=⊥的情况下被输出即可,c1P只要仅在 C1P:=⊥的情况下被输出即可。
<本方式的特征>
在本方式中,根据元信息A、B表示的值,能够削减秘密计算装置11-P 间的值的收发次数。另外,在可省略无需进行收发的值的运算的情况下,也能够削减运算量。进而,在使用元信息的运算量比使用份额的运算量小的情况下,也能够削减运算量。
[第二实施方式]
在第二实施方式中,对将上述方式应用于积和运算的例子进行说明。
<结构>
如图1所示,本方式的秘密计算系统2具有三个秘密计算装置21-0、21 -1、21-2,它们构成为可通过互联网等网络而通信。如图2所示,本方式的秘密计算装置21-P(其中,P=0、1、2)具有:存储单元211-P、运算单元212-P、控制单元213-P、共享单元214-P、及通信单元215-P。运算单元212-P具有处理单元2120-P~212A-P。秘密计算装置21-P例如通过上述的计算机执行规定的程序而构成。此外,由秘密计算装置21-P执行的各处理在控制单元213-P的控制下执行,由各处理得到的信息暂时储存于存储器(未图示)。暂时储存于存储器的信息根据需要而读出来使用。
<处理的前提>
在本方式中,进行的是输入值{a(0)、…、a(N-1)}和输入值{b(0)、…、 b(N-1)}的积和运算Σn∈{0、…、N-1}a(n)b(n)的秘密计算。虽然N≧1,但在N=1的情况下,成为与第一实施方式相同的处理。本方式实质上指的是 N≧2的情况。各a(n)(其中,n=0、…、N-1)分割为满足a(n)=a1(n) +a2(n)+a3(n)的三个子份额a1(n)、a2(n)、a3(n),b(n)分割为满足b(n)=b1(n)+b2(n)+b3(n)的三个子份额b1(n)、b2(n)、b3(n)。即,a(n)是子份额a1(n)、a2(n)、a3(n)的函数值,b(n)是子份额b1 (n)、b2(n)、b3(n)的函数值。在各秘密计算装置21-P(其中,P=0、1、 2)分配有以三个子份额a0P(n)、a1P(n)、a2P(n)为要素的子份额集合(a0P (n)、a1P(n)、a2P(n))的真子集即份额(a0P(n)、a1P(n))(分配份额)。其中,a0P(n)=a1(n)(P-1mod3),且a1P(n)=a0(n)(P+1mod3)。另外,在各秘密计算装置21-P(其中,P=0、1、2)分配有以三个子份额b0P(n)、b1P(n)、 b2P(n)为要素的子份额集合(b0P(n)、b1P(n)、b2P(n))的真子集即份额 (b0P(n)、b1P(n))(分配份额)。其中,b0P(n)=b1(n)(P-1mod3),且b1P (n)=b0(n)(P+1mod3)。即,在秘密计算装置21-0分配有份额(a00(n)、 a10(n))=(a2(n)、a0(n))及(b00(n)、b10(n))=(b2(n)、b0(n)),在秘密计算装置21-1分配有份额(a01(n)、a11(n))=(a0(n)、a1(n)) 及(b01(n)、b11(n))=(b0(n)、b1(n)),在秘密计算装置21-2分配有份额(a02(n)、a12(n))=(a1(n)、a2(n))、(b02(n)、b12(n))=(b1 (n)、b2(n))。对于秘密计算装置21-P来说,未分配给自己的份额是“外部分配份额”。在各秘密计算装置21-P(图2)的存储单元211-P储存有份额(a0P(n)、a1P(n))及(b0P(n)、b1P(n))(分配份额)(图8)。这些子份额明确地满足a(n)=a0P(n)+a1P(n)+a2P(n)及b(n)=b0P(n) +b1P(n)+b2P(n)的关系。
设定表示与子份额集合(a0P(n)、a1P(n)、a2P(n))的要素相对应的值或者表示要素是隐匿值的元信息A、及表示与子份额集合(b0P(n)、b1P(n)、 b2P(n))的要素相对应的值或者表示要素是隐匿值的元信息B。“表示与要素 aJP(n)相对应的值的元信息A”可以表示值AJP(n)(即,AJP(n):=aJP(n)),该值AJP(n)(即,AJP(n):=aJP(n))表示的是要素aJP(n)(其中,J=0、1、2)自身,也可以表示值AJP(n),该值AJP(n)关于唯一地确定要素aJP (n)的函数f而满足aJP(n)=f(AJP(n))。函数f例如是同态函数。在前者的情况下,AJP(n)是以由输入值a(n)可取的值为要素的集合R的元素,在后者的情况下,是基于函数f的值域属于集合R的定义域R’的元素。“表示要素aJP(n)是隐匿值的元信息A”表示值AJP(n)=⊥,该值AJP(n)=⊥表示的是要素aJP(n)(其中,J=0、1、2)是隐匿值。在AJP(n)=⊥的情况下,仅从元信息A不能得到要素aJP(n)的值。只要是表示这种值A0P(n)、 A1P(n)、A2P(n)的信息,则什么样的信息都可以作为元信息A。例如,以值A0P(n)、A1P(n)、A2P(n)为要素的集合(A0P(n)、A1P(n)、A2P(n)) (其中,n=0、…N-1)可以作为元信息A,表示集合(A0P(n)、A1P(n)、 A2P(n))的一个值也可以作为元信息A,表示由集合(A0P(n)、A1P(n)、 A2P(n))的多个要素构成的子集的值的集合也可以作为元信息A。以上方面关于元信息B也是同样的,只要是表示值B0P(n)、B1P(n)、B2P(n)的信息,则什么样的信息都可以作为元信息B。其中,BJP(n):=bJP(n),或者 bJP(n)=f(BJP(n)),或者BJP(n):=⊥。在本方式中,在A0P(n)、A1P (n)、A2P(n)、B0P(n)、B1P(n)、B2P(n)中的至少一个不是“⊥”时,能够削减秘密计算装置21-P间的值的交接次数。元信息A及B储存于所有秘密计算装置21-P(其中,P=0、1、2)的存储单元211-P。
<秘密计算处理>
接着,利用图8~图12对本方式的秘密计算的处理内容进行说明。秘密计算装置21-P(其中,P=0、1、2)分别执行下面的处理。
秘密计算装置21-P的共享单元214-P根据与储存于存储单元211-P 的元信息A、B对应的x01是真(T)还是假(F)进行处理。其中,xJK:= [Σn∈{0、…、N-1}{AJP(n)BKP(n)+AKP(n)BJP(n)}=⊥]∈{T、F}(其中,(J、K)=(0、1)、(1、2)、(2、0)、n=0、…、N-1)。[Σn∈{0、…、N-1}{AJP(n)BKP(n)+AKP(n)BJP(n)}=⊥]表示的是“是Σn∈{0、…、N-1} {AJP(n)BKP(n)+AKP(n)BJP(n)}=⊥”这种命题是真(T)还是假(F) 的真假值。“是Σn∈{0、…、N-1}{AJP(n)BKP(n)+AKP(n)BJP(n)}=⊥”指的是从元信息A、B得不到与Σn∈{0、…、N-1}{aJP(n)bKP(n)+aKP(n) bJP(n)}相对应的值的意思(步骤S201)。
在x01为真(x01=T)的情况(从元信息A、B得不到与提供对应值Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况)下,共享单元 214-P在与外部的秘密计算装置21-(P+1mod3)之间进行用于共享任意值rP的交换。例如,共享单元214-P将生成或选择到的任意值rP储存于存储单元211-P,并且发送到通信单元215-P,通信单元215-P将任意值rP发送到秘密计算装置21-(P+1mod3)。任意值rP被输入到秘密计算装置 21-(P+1mod3)的通信单元215-(P+1mod3),储存于存储单元211 -(P+1mod3)(步骤S202)。其后,进入步骤S203。另一方面,在x01为假(x01=F)的情况下,不执行步骤S202,进入步骤S203。
在步骤S203中,共享单元214-P根据与储存于存储单元211-P的元信息A、B对应的x20是真(T)还是假(F)进行处理(步骤S203)。在x20为真(x20=T)的情况(从元信息A、B得不到与Σn∈{0、…、N-1}{a2P(n)b0P(n) +a0P(n)b2P(n)}相对应的值的情况)下,共享单元214-P在与外部的秘密计算装置21-(P-1mod3)之间进行用于共享任意值rP-:=r(P-1mod3)的交换。任意值rP-可以是随机数,也可以是伪随机数,还可以是常数。例如,秘密计算装置21-(P-1mod3)的共享单元214-(P-1mod3)将生成或选择到的任意值rP-储存于存储单元211-(P-1mod3),并且发送到通信单元215-(P-1mod3),通信单元215-(P-1mod3)将任意值rP-发送到秘密计算装置21-P。任意值rP-被输入到共享单元214-P,共享单元 214-P将任意值rP-储存于存储单元211-P(步骤S204)。其后,进入步骤 S205。另一方面,在x20为假(x20=F)的情况下,不执行步骤S204,进入步骤S205。
在步骤S205中,运算单元212-P的处理单元2120-P根据与储存于存储单元211-P的元信息A、B对应的x01是真(T)还是假(F)进行处理(步骤S205)。在x01为真(x01=T)的情况(从元信息A、B得不到与提供对应值Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况) 下,处理单元2120-P从存储单元211-P读入份额(a0P(n)、a1P(n))、(b0P (n)、b1P(n))及任意值rP,得到提供值cP:=Σn∈{0、…、N-1}{a0P(n)b1P (n)+a1P(n)b0P(n)}+rP而输出(步骤S206)。提供值cP被从通信单元 215-P发送到外部的秘密计算装置21-(P-1mod3)。提供值cP被输入到秘密计算装置21-(P-1mod3)的通信单元215-(P-1mod3),储存于存储单元211-(P-1mod3)(步骤S207)。其后,进入步骤S210。另一方面,在x01为假(x01=F)的情况下,不执行步骤S206、S207,进入步骤 S210。
在步骤S210中,运算单元212-P的处理单元2127-P从储存于存储单元211-P的元信息A、B得到C0P:=Σn∈{0、…、N-1}{A0P(n)B0P(n)+A0P (n)B1P(n)+A1P(n)B0P(n)},并将C0P输出(步骤S210)。这里,在从元信息A、B得不到与Σn∈{0、…、N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+ a1P(n)b0P(n)}相对应的值的情况(Σn∈{0、…、N-1}{A0P(n)B0P(n)+A0P (n)B1P(n)+A1P(n)B0P(n)}=⊥的情况)下,成为C0P:=⊥。另一方面,在从元信息A、B可得到与Σn∈{0、…、N-1}{a0P(n)b0P(n)+a0P(n) b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,C0P从元信息A、B成为与Σn∈{0、…、N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值。
接着,运算单元212-P的处理单元2128-P从储存于存储单元211-P 的元信息A、B得到C1P:=Σn∈{0、…、N-1}{A1P(n)B1P(n)+A1P(n)B2P (n)+A2P(n)B1P(n)},并将C1P输出(步骤S213)。这里,在从元信息A、 B得不到与Σn∈{0、…、N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}相对应的值的情况(Σn∈{0、…、N-1}{A1P(n)B1P(n)+A1P(n)B2P (n)+A2P(n)B1P(n)}=⊥)下,成为C1P:=⊥。另一方面,在从元信息A、B可得到与Σn∈{0、…、N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n) b1P(n)}相对应的值的情况下,C1P成为与Σn∈{0、…、N-1}{a1P(n)b1P(n)+ a1P(n)b2P(n)+a2P(n)b1P(n)}相对应的值。
接着,运算单元212-P的处理单元2128-P从储存于存储单元211-P 的元信息A、B得到C2P:=Σn∈{0、…、N-1}{A2P(n)B2P(n)+A2P(n)B0P (n)+A0P(n)B2P(n)},并将C2P输出(步骤S216)。这里,在从元信息A、 B得不到与Σn∈{0、…、N-1}{a2P(n)b2P(n)+a2P(n)b0P(n)+a0P(n)b2P(n)}相对应的值的情况(Σn∈{0、…、N-1}{A2P(n)B2P(n)+A2P(n)B0P (n)+A0P(n)B2P(n)}=⊥)下,成为C2P:=⊥。另一方面,在从元信息A、B可得到与Σn∈{0、…、N-1}{a2P(n)b2P(n)+a2P(n)b0P(n)+a0P(n) b2P(n)}相对应的值的情况下,C2P成为与Σn∈{0、…、N-1}{a2P(n)b2P(n)+ a2P(n)b0P(n)+a0P(n)b2P(n)}相对应的值。
控制单元213-P初始化为n:=0(步骤S2151)。接着,运算单元212 -P的处理单元212A-P根据与储存于存储单元211-P的元信息A对应的 A0P(n)是真(T)还是假(F)进行处理(步骤S217)。处理单元212A-P 在A0P(n)为真(A0P(n)=T)的情况下,设为a’0P(n):=a0P(n)(步骤 S218),在A0P(n)为假(A0P(n)=F)的情况下,设为a’0P(n):=A0P(n) (步骤S219)。即,在元信息A表示与a0P(n)相对应的值的情况下,a’0P(n) 成为用元信息A表示的值。
另外,处理单元212A-P根据与储存于存储单元211-P的元信息A对应的A1P(n)是真(T)还是假(F)进行处理(步骤S220)。处理单元212A -P在A1P(n)为真(A1P(n)=T)的情况下,设为a’1P(n):=a1P(n)(步骤S221),在A1P(n)为假(A1P(n)=F)的情况下,设为a’1P(n):=A1P (n),将a’1P(n)输出(步骤S222)。即,在元信息A表示与a1P(n)相对应的值的情况下,a’1P(n)成为用元信息A表示的值。
另外,处理单元212A-P根据与储存于存储单元211-P的元信息B对应的B0P(n)是真(T)还是假(F)进行处理(步骤S223)。处理单元212A -P在B0P(n)为真(B0P(n)=T)的情况下,设为b’0P(n):=b0P(n)(步骤S224),在B0P(n)为假(B0P(n)=F)的情况下,设为b’0P(n):=B0P (n),将b’0P(n)输出(步骤S225)。即,在元信息B表示与b0P(n)相对应的值的情况下,b’0P(n)成为用元信息B表示的值。
接着,处理单元212A-P根据与储存于存储单元211-P的元信息B对应的B1P(n)是真(T)还是假(F)进行处理(步骤S226)。处理单元212A -P在B1P(n)为真(B1P(n)=T)的情况下,设为b’1P(n):=b1P(n)(步骤S227),在B1P(n)为假(B1P(n)=F)的情况下,设为b’1P(n):=B1P (n),将b’1P(n)输出(步骤S228)。即,在元信息B表示与b1P(n)相对应的值的情况下,b’1P(n)成为用元信息B表示的值。
控制单元213-P判定是否为n=N-1(步骤S2152)。这里,如果不是n =N-1,则控制单元213-P设为n:=n+1(步骤S2153),返回到步骤S217。如果是n=N-1,则运算单元212-P的处理单元2121-P根据与储存于存储单元211-P的元信息A、B对应的x10是真(T)还是假(F)进行处理(步骤S229)。处理单元2121-P在x10为真(x10=T)的情况(从元信息A、B得不到与提供对应值Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况)下,设为c’P:=cP(步骤S230),在不是那样的情况(不设为c’P:=cP的情况)下,设为c’P:=0(步骤S231),将c’P输出。
运算单元212-P的处理单元2122-P根据与储存于存储单元211-P的元信息A、B对应的x12是真(T)还是假(F)进行处理(步骤S232)。在x12为真(T)的情况(从元信息A、B得不到与取得对应值Σn∈{0、…、N-1}{a1P(n) b2P(n)+a2P(n)b1P(n)}相对应的值的情况)下,通过上述的步骤S207,从秘密计算装置21-(P+1mod3)发送取得值cP+:=c(P+1mod3)。该取得值cP+被输入到处理单元2122-P(步骤S233)。处理单元2122-P设为c’P+:=cP+而输出(步骤S234)。另一方面,在x12为假(F)的情况(不设为c’P+:=cP+的情况)下,处理单元2122-P设为c’P+:=0而输出(步骤S235)。
运算单元212-P的处理单元2123-P根据与储存于存储单元211-P的元信息A、B对应的x01是真(T)还是假(F)进行处理(步骤S236)。处理单元2122-P在x01为真(T)的情况(从元信息A、B得不到与提供对应值Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况)下,设为r’P:=rP(步骤S237),在不是那样的情况(不设为r’P:=rP的情况) 下,设为r’P:=0(步骤S238),将r’P输出。
运算单元212-P的处理单元2124-P根据与储存于存储单元211-P的元信息A、B对应的x20是真(T)还是假(F)进行处理(步骤S239)。处理单元2124-P在x20为真(T)的情况(从元信息A、B得不到与Σn∈{0、…、N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}相对应的值的情况)下,设为r’P-:=rP-(步骤S240),在不是那样的情况(不设为r’P-:=rP-的情况)下,设为r’P-:=0(步骤S241),将r’P-输出。
运算单元212-P的处理单元2125-P根据是否为C0P=⊥进行处理(步骤S242)。如果是C0P=⊥,则处理单元2125-P可得到c0P:=Σn∈{0、…、N-1} a’0P(n)b’1P(n)+c’P-r’P-(步骤S243),运算单元212-P将c0P输出(步骤S244),进入步骤S245。此外,成为C0P=⊥的是从元信息A、B得不到与Σn∈{0、…、N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}相对应的值、或者得不到与Σn∈{0、…、N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况。另一方面,如果不是C0P=⊥,则不执行步骤S243及S244,进入步骤S245。
在步骤S245中,运算单元212-P的处理单元2126-P根据是否为C1P=⊥进行处理(步骤S245)。如果是C1P=⊥,则处理单元2126-P可得到c1P:=Σn∈{0、…、N-1}a’1P(n)b’1P(n)+c’P+-r’P(步骤S246),运算单元212-P 将c1P输出(步骤S247)。另一方面,如果不是C1P=⊥,则不执行步骤S246 及S247,进入步骤S248。
在步骤S248中,运算单元212-P将C0P、C1P、C2P输出。这里,C0P、 C1P、C2P是运算结果Σn∈{0、…、N-1}a(n)b(n)的秘密分散值的元信息。c0P及c1P是运算结果Σn∈{0、…、N-1}a(n)b(n)的秘密分散值。其中,c0P只要是仅在C0P:=⊥的情况下输出即可,c1P只要是仅在C1P:=⊥的情况下输出即可。
<本方式的特征>
在本方式中,根据元信息A、B表示的值,能够削减秘密计算装置21-P 间的值的收发次数。另外,在可省略无需进行收发的值的运算的情况下,也能够削减运算量。进而,在使用元信息的运算量比使用份额的运算量小的情况下,也能够削减运算量。
[变形例等]
此外,本发明不局限于上述实施方式。例如,在上述实施方式中,例示的是利用秘密计算进行乘法运算或积和运算的情况。但是,如果是在多个秘密计算装置间进行值的交接,且各秘密计算装置使用从其他秘密计算装置接收到的值进行秘密计算的方式,则什么样的方式都可以应用本发明。另外,上述的各运算可以为有限体上的运算,也可以为扩大体上的运算,还可以为环上的运算,还可以为其他代数系上的运算。
上述的各种处理不仅可以按照记载的顺序而时序地执行,也可以根据执行处理的装置的处理能力或根据需要而并行或单独执行。另外,秘密计算装置也可以不经由网络进行值的交接,而是经由可移动存储介质进行值的交接。另外,在不脱离本发明的宗旨的范围内,可适当变更,这是不言而喻的。
在通过计算机实现上述构成的情况下,各装置应具有的功能的处理内容通过程序来记述。通过由计算机执行该程序,上述处理功能在计算机上来实现。记述有该处理内容的程序能够记录在可由计算机读取的记录介质中。可由计算机读取的记录介质的例子是非暂存性的(non-transitory)记录介质。这种记录介质的例子是磁记录装置、光盘、光磁记录介质、半导体存储器等。
该程序的流通例如通过对记录有其程序的DVD、CD-ROM等可移动记录介质进行销售、转让、借出等来进行。进而,也可以采用将该程序储存在服务器计算机的存储装置中,经由网络,从服务器计算机向其他计算机转发其程序,而使该程序流通的结构。
执行这种程序的计算机例如首先将记录于可移动记录介质的程序或者从服务器计算机转发的程序暂时储存在自己的存储装置中。在执行处理时,该计算机读取在自己的存储装置中储存的程序,按照读取到的程序执行处理。作为该程序的其他执行方式,也可以采用计算机从可移动记录介质直接读取程序,然后按照其程序执行处理的方式,进而,也可以采用在每次从服务器计算机向该计算机转发程序时,都逐次按照所接收到的程序执行处理的方式。也可以采用不是通过进行从服务器计算机向该计算机的程序的转发,而是通过仅利用其执行指示和结果取得而实现处理功能的所谓ASP(Application ServiceProvider)型的服务,来执行上述处理的结构。
在上述实施方式中,在计算机上执行规定的程序而实现本装置的处理功能,但也可以用硬件来实现这些处理功能中的至少一部分。
标记说明
11-0~11-2、21-0~21-2 秘密计算装置
1、2 秘密计算系统
Claims (7)
1.一种秘密计算装置,其得到与输入值相对应的运算结果秘密分散值,其中,
所述输入值是多个子份额的函数值,
所述秘密计算装置具有:
存储单元,储存:分配份额及元信息,所述分配份额是以所述多个子份额为要素的子份额集合的真子集,所述元信息表示与所述子份额集合的要素相对应的值或表示要素是隐匿值;
输出部,在从所述元信息得不到与提供对应值相对应的值的情况下,将与从所述分配份额的子集得到的所述提供对应值相对应的提供值输出,所述提供对应值与所述分配份额的子集相对应;
输入部,在从所述元信息得不到与取得对应值相对应的值的情况下,被输入与所述取得对应值相对应的取得值,所述取得对应值与外部分配份额的子集相对应,所述外部分配份额是所述子份额集合的真子集;
运算单元,在所述取得值被输入到所述输入部的情况下,至少使用所述取得值,得到所述秘密分散值,
所述运算结果是所述输入值a和第二输入值b的乘法运算结果,
所述输入值a关于所述子份额a0P、a1P、a2P,满足a=a0P+a1P+a2P,
所述第二输入值b关于第二子份额b0P、b1P、b2P,满足b=b0P+b1P+b2P,
a’0P、a’1P、b’0P、b’1P分别是与a0P、a1P、b0P、b1P相对应的值,
所述存储单元储存:分配份额(a0P、a1P)、元信息A、第二分配份额(b0P、b1P)、以及第二元信息B,所述分配份额(a0P、a1P)是子份额集合(a0P、a1P、a2P)的真子集,所述元信息A表示与所述子份额集合(a0P、a1P、a2P)的要素相对应的值或表示要素是隐匿值,所述第二分配份额(b0P、b1P)是第二子份额集合(b0P、b1P、b2P)的真子集,第二元信息B表示与所述第二子份额集合(b0P、b1P、b2P)的要素相对应的值或表示要素是隐匿值,
且具有:
第一共享单元,在从所述元信息A、B得不到与所述提供对应值a0Pb1P+a1Pb0P相对应的值的情况下,在与外部的第一秘密计算装置之间进行用于共享第一任意值rP的交换;
第二共享单元,在从所述元信息A、B得不到与a2Pb0P+a0Pb2P相对应的值的情况下,在与外部的第二秘密计算装置之间进行用于共享第二任意值rP-的交换,
所述输出部在从所述元信息A、B得不到与所述提供对应值a0Pb1P+a1Pb0P相对应的值的情况下,将所述提供值cP:=a0Pb1P+a1Pb0P+rP输出,
在从所述元信息A、B得不到与所述取得对应值a1Pb2P+a2Pb1P相对应的值的情况下,将所述取得值cP+输入所述输入部,
所述运算单元包含:
第一处理单元,在从所述元信息A、B得不到与所述提供对应值a0Pb1P+a1Pb0P相对应的值的情况下,设为c’P:=cP,在不设为c’P:=cP的情况下,设为c’P:=0;
第二处理单元,在从所述元信息A、B得不到与所述取得对应值a1Pb2P+a2Pb1P相对应的值的情况下,设为c’P+:=cP+,在不设为c’P+:=cP+的情况下,设为c’P+:=0;
第三处理单元,在从所述元信息A、B得不到与所述提供对应值a0Pb1P+a1Pb0P相对应的值的情况下,设为r’P:=rP,在不设为r’P:=rP的情况下,设为r’P:=0;
第四处理单元,在从所述元信息A、B得不到与a2Pb0P+a0Pb2P相对应的值的情况下,设为r’P-:=rP-,在不设为r’P-:=rP-的情况下,设为r’P-:=0;
第五处理单元,在从所述元信息A、B得不到与a2Pb0P+a0Pb2P相对应的值、或者得不到与a0Pb0P+a0Pb1P+a1Pb0P相对应的值的情况下,得到c0P:=a’0Pb’1P+c’P-r’P-;
第六处理单元,在从所述元信息A、B得不到与a0Pb1P+a1Pb0P相对应的值、或者得不到与a1Pb1P+a1Pb2P+a2Pb1P相对应的值的情况下,得到c1P:=a’1Pb’1P+c’P+-r’P。
2.如权利要求1所述的秘密计算装置,其中,
所述运算单元包含:
第七处理单元,在从所述元信息A、B得不到与a0Pb0P+a0Pb1P+a1Pb0P相对应的值的情况下,设为C0P:=⊥,在从所述元信息A、B可得到与a0Pb0P+a0Pb1P+a1Pb0P相对应的值的情况下,从所述元信息A、B得到与a0Pb0P+a0Pb1P+a1Pb0P相对应的值,并设为C0P;
第八处理单元,在从所述元信息A、B得不到与a1Pb1P+a1Pb2P+a2Pb1P相对应的值的情况下,设为C1P:=⊥,在从所述元信息A、B可得到与a1Pb1P+a1Pb2P+a2Pb1P相对应的值的情况下,从所述元信息A、B得到与a1Pb1P+a1Pb2P+a2Pb1P相对应的值,并设为C1P;
第九处理单元,在从所述元信息A、B得不到与a2Pb2P+a2Pb0P+a0Pb2P相对应的值的情况下,设为C2P:=⊥,在可得到与a2Pb2P+a2Pb0P+a0Pb2P相对应的值的情况下,从所述元信息A、B得到与a2Pb2P+a2Pb0P+a0Pb2P相对应的值,并设为C2P,
C0P、C1P、C2P是所述秘密分散值的元信息,在C0P:=⊥的情况下,所述秘密分散值含有c0P,在C1P:=⊥的情况下,所述秘密分散值含有c1P。
3.一种秘密计算装置,其得到与输入值相对应的运算结果秘密分散值,其中,
所述输入值是多个子份额的函数值,
所述秘密计算装置具有:
存储单元,储存分配份额及元信息,所述分配份额是以所述多个子份额为要素的子份额集合的真子集,所述元信息表示与所述子份额集合的要素相对应的值或表示要素是隐匿值;
输出部,在从所述元信息得不到与提供对应值相对应的值的情况下,将与从所述分配份额的子集得到的所述提供对应值相对应的提供值输出,所述提供对应值与所述分配份额的子集相对应;
输入部,在从所述元信息得不到与取得对应值相对应的值的情况下,被输入与所述取得对应值相对应的取得值,所述取得对应值与外部分配份额的子集相对应,所述外部分配份额是所述子份额集合的真子集;
运算单元,在所述取得值被输入到所述输入部的情况下,至少使用所述取得值,得到所述秘密分散值,
所述运算结果是所述输入值{a(0)、…、a(N-1)}和第二输入值{b(0)、…、b(N-1)}的运算结果Σn∈{0、…、N-1}a(n)b(n),N≧1,n=0、…、N-1,
a(n)关于所述子份额a0P(n)、a1P(n)、a2P(n),满足a(n)=a0P(n)+a1P(n)+a2P(n),
b(n)关于第二子份额b0P(n)、b1P(n)、b2P(n),满足b(n)=b0P(n)+b1P(n)+b2P(n),
a’0P(n)、a’1P(n)、b’0P(n)、b’1P(n)分别是与a0P(n)、a1P(n)、b0P(n)、b1P(n)相对应的值,
所述存储单元储存分配份额(a0P(n)、a1P(n))、元信息A、第二分配份额(b0P(n)、b1P(n))、及第二元信息B:所述分配份额(a0P(n)、a1P(n))是子份额集合(a0P(n)、a1P(n)、a2P(n))的真子集,所述元信息A表示与所述子份额集合(a0P(n)、a1P(n)、a2P(n))的要素相对应的值或表示要素是隐匿值,所述第二分配份额(b0P(n)、b1P(n))是第二子份额集合(b0P(n)、b1P(n)、b2P(n))的真子集,所述第二元信息B表示与所述第二子份额集合(b0P(n)、b1P(n)、b2P(n))的要素相对应的值或表示要素是隐匿值,具有:
第一共享单元,在从所述元信息A、B得不到与所述提供对应值Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,在与外部的第一秘密计算装置之间进行用于共享第一任意值rP的交换;
第二共享单元,在从所述元信息A、B得不到与Σn∈{0、…、N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}相对应的值的情况下,在与外部的第二秘密计算装置之间进行用于共享第二任意值rP-的交换,
所述输出部在从所述元信息A、B得不到与所述提供对应值Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,将所述提供值cP:=Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}+rP输出,
在从所述元信息A、B得不到与所述取得对应值Σn∈{0、…、N-1}{a1P(n)b2P(n)+a2P(n)b1P(n)}相对应的值的情况下,向所述输入部输入所述取得值cP+,
所述运算单元包含:
第一处理单元,在从所述元信息A、B得不到与所述提供对应值Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,设为c’P:=cP,在不设为c’P:=cP的情况下,设为c’P:=0;
第二处理单元,在从所述元信息A、B得不到与所述取得对应值Σn∈{0、…、N-1}{a1P(n)b2P(n)+a2P(n)b1P(n)}相对应的值的情况下,设为c’P+:=cP+,在不设为c’P+:=cP+的情况下,设为c’P+:=0;
第三处理单元,在从所述元信息A、B得不到与所述提供对应值Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,设为r’P:=rP,在不设为r’P:=rP的情况下,设为r’P:=0;
第四处理单元,在从所述元信息A、B得不到与Σn∈{0、…、N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}相对应的值的情况下,设为r’P-:=rP-,在不设为r’P-:=rP-的情况下,设为r’P-:=0;
第五处理单元,在从所述元信息A、B得不到与Σn∈{0、…、N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}相对应的值、或者得不到与Σn∈{0、…、N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,得到c0P:=Σn∈{0、…、N-1}a’0P(n)b’1P(n)+c’P-r’P-;
第六处理单元,在从所述元信息A、B得不到与Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值、或者得不到与Σn∈{0、…、N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}相对应的值的情况下,得到c1P:=Σn∈{0、…、N-1}a’1P(n)b’1P(n)+c’P+-r’P。
4.如权利要求3所述的秘密计算装置,其中,
所述运算单元包含:
第七处理单元,在从所述元信息A、B得不到与Σn∈{0、…、N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,设为C0P:=⊥,在从所述元信息A、B可得到与Σn∈{0、…、N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,从所述元信息A、B得到与Σn∈{0、…、N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值,并设为C0P;
第八处理单元,在从所述元信息A、B得不到与Σn∈{0、…、N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}相对应的值的情况下,设为C1P:=⊥,在从所述元信息A、B可得到与Σn∈{0、…、N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}相对应的值的情况下,从所述元信息A、B得到与Σn∈{0、…、N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}相对应的值,并设为C1P;
第九处理单元,在从所述元信息A、B得不到与Σn∈{0、…、N-1}{a2P(n)b2P(n)+a2P(n)b0P(n)+a0P(n)b2P(n)}相对应的值的情况下,设为C2P:=⊥,在可得到与Σn∈{0、…、N-1}{a2P(n)b2P(n)+a2P(n)b0P(n)+a0P(n)b2P(n)}相对应的值的情况下,从所述元信息A、B得到与Σn∈{0、…、N-1}{a2P(n)b2P(n)+a2P(n)b0P(n)+a0P(n)b2P(n)}相对应的值,并设为C2P,
C0P、C1P、C2P是所述秘密分散值的元信息,在C0P:=⊥的情况下,所述秘密分散值含有c0P,在C1P:=⊥的情况下,所述秘密分散值含有c1P。
5.一种秘密计算方法,其得到与输入值相对应的运算结果秘密分散值,其中,
所述输入值是多个子份额的函数值,
所述秘密计算方法具有如下步骤:
将分配份额及元信息储存在存储单元,所述分配份额是以所述多个子份额为要素的子份额集合的真子集,所述元信息表示与所述子份额集合的要素相对应的值或者表示要素是隐匿值,
输出步骤,在从所述元信息得不到与提供对应值相对应的值的情况下,输出部将与从所述分配份额的子集得到的所述提供对应值相对应的提供值输出,所述提供对应值与所述分配份额的子集相对应;
输入步骤,在从所述元信息得不到与取得对应值相对应的值的情况下,将与所述取得对应值相对应的取得值输入到输入部,所述取得对应值与外部分配份额的子集相对应,所述外部分配份额是所述子份额集合的真子集;
运算步骤,在所述取得值被输入到所述输入部的情况下,运算单元至少使用所述取得值来得到所述秘密分散值,
所述运算结果是所述输入值a和第二输入值b的乘法运算结果,
所述输入值a关于所述子份额a0P、a1P、a2P,满足a=a0P+a1P+a2P,
所述第二输入值b关于第二子份额b0P、b1P、b2P,满足b=b0P+b1P+b2P,
a’0P、a’1P、b’0P、b’1P分别是与a0P、a1P、b0P、b1P相对应的值,
所述存储单元储存分配份额(a0P、a1P)、元信息A、第二分配份额(b0P、b1P)、及第二元信息B,所述分配份额(a0P、a1P)是子份额集合(a0P、a1P、a2P)的真子集,所述元信息A表示与所述子份额集合(a0P、a1P、a2P)的要素相对应的值或表示要素是隐匿值,所述第二分配份额(b0P、b1P)是第二子份额集合(b0P、b1P、b2P)的真子集,所述第二元信息B表示与所述第二子份额集合(b0P、b1P、b2P)的要素相对应的值或表示要素是隐匿值,
且所述秘密计算方法具有:
第一共享单元,在从所述元信息A、B得不到与所述提供对应值a0Pb1P+a1Pb0P相对应的值的情况下,在与外部的第一秘密计算装置之间进行用于共享第一任意值rP的交换;
第二共享单元,在从所述元信息A、B得不到与a2Pb0P+a0Pb2P相对应的值的情况下,在与外部的第二秘密计算装置之间进行用于共享第二任意值rP-的交换,
所述输出部在从所述元信息A、B得不到与所述提供对应值a0Pb1P+a1Pb0P相对应的值的情况下,将所述提供值cP:=a0Pb1P+a1Pb0P+rP输出,
在从所述元信息A、B得不到与所述取得对应值a1Pb2P+a2Pb1P相对应的值的情况下,将所述取得值cP+输入所述输入部,
所述运算单元包含:
第一处理单元,在从所述元信息A、B得不到与所述提供对应值a0Pb1P+a1Pb0P相对应的值的情况下,设为c’P:=cP,在不设为c’P:=cP的情况下,设为c’P:=0;
第二处理单元,在从所述元信息A、B得不到与所述取得对应值a1Pb2P+a2Pb1P相对应的值的情况下,设为c’P+:=cP+,在不设为c’P+:=cP+的情况下,设为c’P+:=0;
第三处理单元,在从所述元信息A、B得不到与所述提供对应值a0Pb1P+a1Pb0P相对应的值的情况下,设为r’P:=rP,在不设为r’P:=rP的情况下,设为r’P:=0;
第四处理单元,在从所述元信息A、B得不到与a2Pb0P+a0Pb2P相对应的值的情况下,设为r’P-:=rP-,在不设为r’P-:=rP-的情况下,设为r’P-:=0;
第五处理单元,在从所述元信息A、B得不到与a2Pb0P+a0Pb2P相对应的值、或者得不到与a0Pb0P+a0Pb1P+a1Pb0P相对应的值的情况下,得到c0P:=a’0Pb’1P+c’P-r’P-;
第六处理单元,在从所述元信息A、B得不到与a0Pb1P+a1Pb0P相对应的值、或者得不到与a1Pb1P+a1Pb2P+a2Pb1P相对应的值的情况下,得到c1P:=a’1Pb’1P+c’P+-r’P。
6.一种秘密计算方法,其得到与输入值相对应的运算结果秘密分散值,其中,
所述输入值是多个子份额的函数值,
所述秘密计算方法具有如下步骤:
将分配份额及元信息储存在存储单元,所述分配份额是以所述多个子份额为要素的子份额集合的真子集,所述元信息表示与所述子份额集合的要素相对应的值或者表示要素是隐匿值,
输出步骤,在从所述元信息得不到与提供对应值相对应的值的情况下,输出部将与从所述分配份额的子集得到的所述提供对应值相对应的提供值输出,所述提供对应值与所述分配份额的子集相对应;
输入步骤,在从所述元信息得不到与取得对应值相对应的值的情况下,将与所述取得对应值相对应的取得值输入到输入部,所述取得对应值与外部分配份额的子集相对应,所述外部分配份额是所述子份额集合的真子集;
运算步骤,在所述取得值被输入到所述输入部的情况下,运算单元至少使用所述取得值来得到所述秘密分散值,
所述运算结果是所述输入值{a(0)、…、a(N-1)}和第二输入值{b(0)、…、b(N-1)}的运算结果Σn∈{0、…、N-1}a(n)b(n),N≧1,n=0、…、N-1,
a(n)关于所述子份额a0P(n)、a1P(n)、a2P(n),满足a(n)=a0P(n)+a1P(n)+a2P(n),
b(n)关于第二子份额b0P(n)、b1P(n)、b2P(n),满足b(n)=b0P(n)+b1P(n)+b2P(n),
a’0P(n)、a’1P(n)、b’0P(n)、b’1P(n)分别是与a0P(n)、a1P(n)、b0P(n)、b1P(n)相对应的值,
所述存储单元储存分配份额(a0P(n)、a1P(n))、元信息A、第二分配份额(b0P(n)、b1P(n))、及第二元信息B,所述分配份额(a0P(n)、a1P(n))是子份额集合(a0P(n)、a1P(n)、a2P(n))的真子集,所述元信息A表示与所述子份额集合(a0P(n)、a1P(n)、a2P(n))的要素相对应的值或表示要素是隐匿值,所述第二分配份额(b0P(n)、b1P(n))是第二子份额集合(b0P(n)、b1P(n)、b2P(n))的真子集,所述第二元信息B表示与所述第二子份额集合(b0P(n)、b1P(n)、b2P(n))的要素相对应的值或表示要素是隐匿值,
具有:
第一共享单元,在从所述元信息A、B得不到与所述提供对应值Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,在与外部的第一秘密计算装置之间进行用于共享第一任意值rP的交换;
第二共享单元,在从所述元信息A、B得不到与Σn∈{0、…、N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}相对应的值的情况下,在与外部的第二秘密计算装置之间进行用于共享第二任意值rP-的交换,
所述输出部在从所述元信息A、B得不到与所述提供对应值Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,将所述提供值cP:=Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}+rP输出,
在从所述元信息A、B得不到与所述取得对应值Σn∈{0、…、N-1}{a1P(n)b2P(n)+a2P(n)b1P(n)}相对应的值的情况下,向所述输入部输入所述取得值cP+,
所述运算单元包含:
第一处理单元,在从所述元信息A、B得不到与所述提供对应值Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,设为c’P:=cP,在不设为c’P:=cP的情况下,设为c’P:=0;
第二处理单元,在从所述元信息A、B得不到与所述取得对应值Σn∈{0、…、N-1}{a1P(n)b2P(n)+a2P(n)b1P(n)}相对应的值的情况下,设为c’P+:=cP+,在不设为c’P+:=cP+的情况下,设为c’P+:=0;
第三处理单元,在从所述元信息A、B得不到与所述提供对应值Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,设为r’P:=rP,在不设为r’P:=rP的情况下,设为r’P:=0;
第四处理单元,在从所述元信息A、B得不到与Σn∈{0、…、N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}相对应的值的情况下,设为r’P-:=rP-,在不设为r’P-:=rP-的情况下,设为r’P-:=0;
第五处理单元,在从所述元信息A、B得不到与Σn∈{0、…、N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}相对应的值、或者得不到与Σn∈{0、…、N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值的情况下,得到c0P:=Σn∈{0、…、N-1}a’0P(n)b’1P(n)+c’P-r’P-;
第六处理单元,在从所述元信息A、B得不到与Σn∈{0、…、N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}相对应的值、或者得不到与Σn∈{0、…、N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}相对应的值的情况下,得到c1P:=Σn∈{0、…、N-1}a’1P(n)b’1P(n)+c’P+-r’P。
7.一种计算机可读取的记录介质,存储了用于使计算机作为权利要求1~4中任一项所述的秘密计算装置发挥功能的程序。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015-144550 | 2015-07-22 | ||
JP2015144550A JP6006842B1 (ja) | 2015-07-22 | 2015-07-22 | 秘密計算装置、その方法、およびプログラム |
PCT/JP2016/071214 WO2017014224A1 (ja) | 2015-07-22 | 2016-07-20 | 秘密計算装置、その方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107851403A CN107851403A (zh) | 2018-03-27 |
CN107851403B true CN107851403B (zh) | 2021-05-07 |
Family
ID=57123215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680039625.6A Active CN107851403B (zh) | 2015-07-22 | 2016-07-20 | 秘密计算装置、其方法及记录介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10748454B2 (zh) |
EP (1) | EP3327702B1 (zh) |
JP (1) | JP6006842B1 (zh) |
CN (1) | CN107851403B (zh) |
WO (1) | WO2017014224A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11042358B2 (en) * | 2016-08-18 | 2021-06-22 | Nec Corporation | Secure computation system, secure computation method, secure computation apparatus, distribution information generation apparatus, and methods and programs therefor |
AU2018295722B2 (en) * | 2017-07-05 | 2020-11-19 | Nippon Telegraph And Telephone Corporation | Secure computation system, secure computation apparatus, secure computation method, program, and recording medium |
EP3484093A1 (en) * | 2017-11-10 | 2019-05-15 | Koninklijke Philips N.V. | A computation device and method |
CN112805768B (zh) * | 2018-10-04 | 2023-08-04 | 日本电信电话株式会社 | 秘密s型函数计算系统及其方法、秘密逻辑回归计算系统及其方法、秘密s型函数计算装置、秘密逻辑回归计算装置、程序 |
CN110457936B (zh) * | 2019-07-01 | 2020-08-14 | 阿里巴巴集团控股有限公司 | 数据交互方法、装置和电子设备 |
AU2020472388B2 (en) * | 2020-10-16 | 2024-02-15 | Nippon Telegraph And Telephone Corporation | Secure computation system, secure computation apparatus, secure computation method, and program |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009093603A1 (ja) * | 2008-01-21 | 2009-07-30 | Nippon Telegraph And Telephone Corporation | 秘密計算システム |
WO2012102203A1 (ja) * | 2011-01-24 | 2012-08-02 | 日本電信電話株式会社 | 秘匿積和計算方法、秘匿積和計算システム、計算装置、及びそれらのプログラム |
JP5492241B2 (ja) * | 2012-03-28 | 2014-05-14 | 株式会社東芝 | 秘匿計算システム、集計装置及び集計結果復号プログラム |
EP2966802A1 (en) * | 2014-07-07 | 2016-01-13 | Thomson Licensing | Method for ciphering and deciphering digital data, based on an identity, in a multi-authorities context |
US10490107B2 (en) * | 2014-09-19 | 2019-11-26 | Nec Corporation | Secret calculation device, method, recording medium, and secret calculation system |
EP3218800B1 (en) * | 2014-11-12 | 2023-06-07 | David CEREZO SANCHEZ | Secure multiparty computation on spreadsheets |
CN107454975B (zh) * | 2015-04-07 | 2020-11-27 | 三菱电机株式会社 | 加密系统和密钥生成装置 |
JP6493522B2 (ja) * | 2015-05-07 | 2019-04-03 | 日本電気株式会社 | 秘密計算データ利用システムと方法と装置並びにプログラム |
-
2015
- 2015-07-22 JP JP2015144550A patent/JP6006842B1/ja active Active
-
2016
- 2016-07-20 EP EP16827784.6A patent/EP3327702B1/en active Active
- 2016-07-20 WO PCT/JP2016/071214 patent/WO2017014224A1/ja active Application Filing
- 2016-07-20 US US15/745,278 patent/US10748454B2/en active Active
- 2016-07-20 CN CN201680039625.6A patent/CN107851403B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017026788A (ja) | 2017-02-02 |
WO2017014224A1 (ja) | 2017-01-26 |
JP6006842B1 (ja) | 2016-10-12 |
CN107851403A (zh) | 2018-03-27 |
US10748454B2 (en) | 2020-08-18 |
US20180218650A1 (en) | 2018-08-02 |
EP3327702A1 (en) | 2018-05-30 |
EP3327702A4 (en) | 2019-03-20 |
EP3327702B1 (en) | 2021-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107851403B (zh) | 秘密计算装置、其方法及记录介质 | |
Pan et al. | Predicting missing links and identifying spurious links via likelihood analysis | |
Chauvet et al. | A fast algorithm for balanced sampling | |
Abdo et al. | On nonlinear pantograph fractional differential equations with Atangana–Baleanu–Caputo derivative | |
US10127275B2 (en) | Mapping query operations in database systems to hardware based query accelerators | |
Dwork et al. | Toward practicing privacy | |
Myers et al. | On the sequencing and assembly of the human genome | |
Denega et al. | Estimates of products of inner radii of non-overlapping domains in the complex plane | |
Zhang | Boundedness in chemotaxis systems with rotational flux terms | |
Chen et al. | Pediatric sarcoma data forms a unique cluster measured via the earth mover’s distance | |
Hadjila et al. | Estimation and simulation of conditional hazard function in the quasi-associated framework when the observations are linked via a functional single-index structure | |
Ali et al. | Two new iteration methods with optimal parameters for solving absolute value equations | |
Wu et al. | Numerical solution of nonlinear stochastic Itô–Volterra integral equations based on Haar wavelets | |
Götze et al. | Concentration inequalities for bounded functionals via log-Sobolev-type inequalities | |
Wang et al. | FINET: Fast Inferring NETwork | |
Alcalde Cuesta et al. | Exploring the topological sources of robustness against invasion in biological and technological networks | |
Le Hoang et al. | A comparative study of the some methods used in constructing coresets for clustering large datasets | |
Yager | Level sets and the representation theorem for intuitionistic fuzzy sets | |
Tang et al. | Several inertial methods for solving split convex feasibilities and related problems | |
Miyabe | Characterization of Kurtz randomness by a differentiation theorem | |
Hossain et al. | A novel weighted likelihood estimation with empirical Bayes flavor | |
Benrabah et al. | A kernel mode estimate under random left truncation and time series model: asymptotic normality | |
Dads et al. | On the differential equations with piecewise constant argument | |
Molnár et al. | An extension of the Rådström cancellation theorem to cornets | |
Deng et al. | A discretized Tikhonov regularization method for a fractional backward heat conduction problem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |