CN101911153B - 秘密计算系统、秘密计算方法、秘密计算装置 - Google Patents

秘密计算系统、秘密计算方法、秘密计算装置 Download PDF

Info

Publication number
CN101911153B
CN101911153B CN200980102192.4A CN200980102192A CN101911153B CN 101911153 B CN101911153 B CN 101911153B CN 200980102192 A CN200980102192 A CN 200980102192A CN 101911153 B CN101911153 B CN 101911153B
Authority
CN
China
Prior art keywords
data
calculation element
segment
secret calculation
circuit function
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
Application number
CN200980102192.4A
Other languages
English (en)
Other versions
CN101911153A (zh
Inventor
千田浩司
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from JP2008010928A external-priority patent/JP5078632B2/ja
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of CN101911153A publication Critical patent/CN101911153A/zh
Application granted granted Critical
Publication of CN101911153B publication Critical patent/CN101911153B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • H04L9/3221Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/50Oblivious transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Logic Circuits (AREA)
  • Storage Device Security (AREA)

Abstract

第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)。

Description

秘密计算系统、秘密计算方法、秘密计算装置
技术领域
本发明涉及密文应用技术,特别涉及在隐藏了输入值的前提下获得对于该输入值的运算结果的技术。
背景技术
在非专利文献1中公开了在隐藏了输入值的前提下获得运算结果的技术。图1是表示使用了非专利文献1中公开的技术的秘密计算系统的结构的方框图。参照图1,秘密计算系统具有秘密计算装置81A和秘密计算装置81B。
秘密计算装置81A拥有逻辑电路函数f(x,y)和成为x的输入的比特串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门(“与”门)、OR门(“或”门)等。此外,将各逻辑门电路g的输入输出序列称为引线,将输入侧的引线称为输入引线,将输出侧的引线称为输出引线。
概述非专利文献1所公开的方法。以下,作为一例,举出秘密计算装置81A用于获得f(mA,mB)的处理步骤。
[步骤C1-1]
拥有逻辑电路函数f(x,y)和成为y的输入的比特串mB的秘密计算装置81B,通过隐藏构成逻辑电路函数f(x,y)的各逻辑门电路的真值表,从而隐藏逻辑电路函数f(x,y)。
逻辑门电路的真值表如下。另外,在“与”门的例子中,g(0,0)=g(0,1)=g(1,0)=0,g(1,1)=1。
在隐藏逻辑门电路时,秘密计算装置81B对各输入引线和输出引线分别对应与各引线的值对应的固定长度的随机数、和与各引线的值对应的随机比特的组。并且,使用相对应的(固定长度的随机数,随机比特)再次构成真值表,从而隐藏真值表。但是,仅凭此,即使是不知道各引线的值与(固定长度的随机数,随机比特)的对应的人,也能够根据与输出引线对应的(固定长度的随机数,随机比特)的组合来推测出逻辑门电路的内容。因此,使用伪随机函数进行进一步隐藏。由此,能够隐藏逻辑门电路。并且,通过对构成逻辑电路函数f(x,mB)的各逻辑门电路执行同样的隐藏,从而能够隐藏逻辑电路函数f(x,mB)。
具体地说,秘密计算装置81B通过执行以下的(a)~(d),隐藏逻辑电路函数f(x,mB)。
(a)秘密计算装置81B对逻辑电路函数f(x,mB)的各引线i生成固定长度的随机数
[数1]
Wi 0,Wi 1
,并使其分别与0、1对应。
(b)接着,秘密计算装置81B生成随机比特ci∈{0,1}。ci作为随机化的标签来使用。
(c)进而,秘密计算装置81B使
[数2]
( < W i 0 , c i > , < W i 1 , c &OverBar; i > )
与引线i对应。这里,设
[数3]
c &OverBar; = 1 - c
。另外,<α,β>表示α对应于β。
(d)接着,秘密计算装置81B对于以i、j作为输入引线,以k作为输出引线的逻辑门电路g,生成4个附标签数据
[数4]
c i , c j : ( W k g ( 0,0 ) , g ( 0,0 ) &CirclePlus; c k ) &CirclePlus; F W i 0 ( c j ) &CirclePlus; F W j 0 ( c i ) ,
c i , c &OverBar; j : ( W k g ( 0,1 ) , g ( 0,1 ) &CirclePlus; c k ) &CirclePlus; F W i 0 ( c &OverBar; j ) &CirclePlus; F W j 1 ( c i ) ,
c &OverBar; i , c j : ( W k g ( 0,1 ) , g ( 1,0 ) &CirclePlus; c k ) &CirclePlus; F W i 1 ( c j ) &CirclePlus; F W j 0 ( c &OverBar; i ) ,
c &OverBar; i , c &OverBar; j : ( W k g ( 1,1 ) , g ( 1,1 ) &CirclePlus; c k ) &CirclePlus; F W i 1 ( c &OverBar; j ) &CirclePlus; F W j 1 ( c &OverBar; i ) ,
并且生成将这些附标签数据排列成随机的顺序的数据Tg。这里,将冒号的左侧设为标签,将右侧设为数据,FW(x)是以x、W作为输入,对x、W输出唯一确定的固定长度的随机数的函数(伪随机函数)。此外,
[数5]
&alpha; &CirclePlus; &beta;
表示α和β的“异或”。此外,
[数6]
( &alpha; , &beta; ) &CirclePlus; &gamma;
表示α和β的比特联结值α|β与γ的“异或”。
此外,与逻辑电路函数f的最后级的门电路g对应的Tg的ck设定为0。
上述这样的Tg对构成逻辑电路函数f(x,mB)的各门电路生成,所生成的Tg的集合T作为逻辑电路函数f(x,mB)的隐藏数据被发送到秘密计算装置81A。
[步骤C1-2]
拥有成为x的输入的比特串mA的秘密计算装置81A与秘密计算装置81B执行1-out-of-2不经意传输协议。由此,秘密计算装置81A获得对应于以mA的比特b∈{0,1}作为输入的引线的数据
[数7]
< W i b , b &CirclePlus; c i > .
[步骤C1-3]
接着,秘密计算装置81A使用从秘密计算装置81B接收到的数据Tg
[数8]
< W i b , b &CirclePlus; c i >
,计算逻辑电路函数f的最后级的逻辑门电路g的引线的输出
[数9]
< W k b ^ , b ^ &CirclePlus; c k > .
[步骤C1-4]
进而,秘密计算装置81A根据
[数10]
< W k b ^ , b ^ &CirclePlus; c k >
获得运算结果f(mA,mB)的比特
[数11]
b ^ .
[步骤C1-3的细节]
在上述处理步骤中的步骤C1-3中,秘密计算装置81A在被提供了与输入引线i、j、输出引线k的门电路对应的数据Tg
[数12]
< W i b , b &CirclePlus; c i > , < W j d , d &CirclePlus; c j > ( d &Element; { 0,1 } ) - - - ( 1 )
时,首先根据数据Tg取出与标签
[数13]
( b &CirclePlus; c i , d &CirclePlus; c j )
对应的数据
[数14]
( W k g ( b , d ) , g ( b , d ) &CirclePlus; c k ) &CirclePlus; F W i b ( d &CirclePlus; c j ) &CirclePlus; F W j d ( b &CirclePlus; c i ) - - - ( 2 )
。并且,秘密计算装置81A计算
[数15]
F W i b ( d &CirclePlus; c j ) &CirclePlus; F W j d ( b &CirclePlus; c i ) - - - ( 3 )
。秘密计算装置81A进行式(2)和式(3)的“异或”,获得与输出引线对应的数据
[数16]
( W k g ( b , d ) , g ( b , d ) &CirclePlus; c k ) - - - ( 4 )
。然后,秘密计算装置81A例如将与输出引线对应的数据作为其他逻辑门电路的输入引线的一个数据,并对其他逻辑门电路也进行同样的处理,最终获得f的最后级的逻辑门电路g的引线的输出。
[步骤C1-4的细节]
通过将与逻辑电路函数f的最后级的逻辑门电路g对应的Tg的ck设定为0,成为
[数17]
< W k b ^ , b ^ &CirclePlus; c k > = < W k b ^ , b ^ &CirclePlus; 0 > = < W k b ^ , b ^ >
,因此,秘密计算装置81A在步骤C1-4中,能够获得
[数18]
b ^ .
如以上说明的那样,在非专利文献1的方法中,需要在第2步骤中秘密计算装置81A和秘密计算装置81B执行1-out-of-2不经意传输协议。1-out-of-2不经意传输协议是具有以下特征的协议,在秘密计算装置81B拥有数据d0、d1,秘密计算装置81A拥有比特b时,秘密计算装置81A能够获得db,但不能获得
[数19]
d b &OverBar;
,并且秘密计算装置81B不能获得b。通过使用这样的协议,能够防止从秘密计算装置81A对秘密计算装置81B泄漏mA的比特b,并且能够防止Tg中所隐藏的逻辑电路函数f(x,mB)的信息泄漏给秘密计算装置81A。另外,该协议的细节在非专利文献2中有说明。
在非专利文献3中公开了隐藏输入值的前提下获得运算结果的其他技术。图2是表示使用非专利文献3所公开的技术的秘密计算系统的结构的方框图。参照图2,秘密计算系统具有多个变换装置901~90N和秘密计算装置91A、91B。通过两个秘密计算装置91A、91B构成秘密计算装置组91。
由秘密计算装置91A、91B构成的秘密计算装置组91使用各变换装置901~90N所拥有的数据mn(1≤n≤N),求逻辑电路函数f(x1,...,xN)的运算结果f(m1,...,mN),而不获得能够容易恢复输入值mn的数据。
以下,概述该处理步骤。
[步骤C2-1]
首先,秘密计算装置91B通过执行以下的(a)~(d),隐藏逻辑电路函数f。然后,秘密计算装置91B将与逻辑电路函数f对应的数据Tg作为逻辑电路函数f(x1,...,xN)的隐藏数据发送到秘密计算装置91A。
(a)秘密计算装置91B对于逻辑电路函数f(x1,...,xN)的各引线i,生成固定长度的随机数
[数20]
Wi 0,Wi 1
,并使其分别与0、1对应。
(b)接着,秘密计算装置91B生成随机比特ci∈{0,1}。
(c)进而,秘密计算装置91B使
[数21]
( < W i 0 , c i > , < W i 1 , c &OverBar; i > )
与引线i对应。这里,设
[数22]
c &OverBar; = 1 - c .
(d)进而,秘密计算装置91B对于以i、j作为输入引线,以k作为输出引线的逻辑门电路g,生成4个附标签数据
[数23]
c i , c j : ( W k g ( 0,0 ) , g ( 0,0 ) &CirclePlus; c k ) &CirclePlus; F W i 0 ( c j ) &CirclePlus; F W j 0 ( c i ) ,
c i , c &OverBar; j : ( W k g ( 0,1 ) , g ( 0,1 ) &CirclePlus; c k ) &CirclePlus; F W i 0 ( c &OverBar; j ) &CirclePlus; F W j 1 ( c i ) ,
c &OverBar; i , c j : ( W k g ( 0,1 ) , g ( 1,0 ) &CirclePlus; c k ) &CirclePlus; F W i 1 ( c j ) &CirclePlus; F W j 0 ( c &OverBar; i ) ,
c &OverBar; i , c &OverBar; j : ( W k g ( 1,1 ) , g ( 1,1 ) &CirclePlus; c k ) &CirclePlus; F W i 1 ( c &OverBar; j ) &CirclePlus; F W j 1 ( c &OverBar; i ) ,
并且生成将这些附标签数据排列成随机的顺序的数据Tg。数据Tg的集合T作为逻辑电路函数f(x1,...,xN)的隐藏数据发送到秘密计算装置91A。
[步骤C2-2]
各变换装置901~90N与秘密计算装置91A、91B一同执行代理1-out-of-2不经意传输协议,从而秘密计算装置91A获得与m的各比特b的输入引线i对应的数据
[数24]
< W i b , b &CirclePlus; c i > .
[步骤C2-3]
接着,秘密计算装置91A使用数据Tg
[数25]
< W i b , b &CirclePlus; c i >
,获得逻辑电路函数f的最后级的逻辑门电路g的引线的输出
[数26]
< W k b ^ , b ^ &CirclePlus; c k > .
[步骤C2-4]
进而,秘密计算装置91A根据
[数27]
< W k b ^ , b ^ &CirclePlus; c k >
获得运算结果f(m1,...,mN)的比特
[数28]
b ^ .
在上述处理步骤的步骤C2-2中,使用代理1-out-of不经意传输协议。该协议是扩展了1-out-of不经意传输协议的协议。根据该协议,无需将有关变换装置901~~90N所拥有的数据的信息即比特b告知秘密计算装置91A,秘密计算装置91A就能够代替变换装置901~90N而计算出
[数29]
< W i b , b &CirclePlus; c i > .
非专利文献1:A.C.Yao,How to generate and exchange secrets,Proc.ofFOCS’86,pp.162-167,IEEE Press,1986.
非专利文献2:S.Even,O.Goldreich and A.Lempel,A randomized protocolfor signing contracts,Communications of the ACM,Vol.28,No.6,pp.637-647,1985.
非专利文献3:M.Naor,B.Pinkas,and R.Sumner,Privacy Preserving auctionsand mechanism design,Proc.of ACM EC’99,pp.129-139,ACM Press,1999.
发明内容
发明要解决的课题
如上所述,在非专利文献1所公开的方法中,秘密计算装置81A、81B需要执行1-out-of-2不经意传输协议。此外,在非专利文献3所公开的方法中,变换装置901~90N以及秘密计算装置91A、91B需要执行代理1-out-of-2不经意传输协议。
根据D.Malkhi,N.Nisan,B.Pinkas,and Y.Sella,Fairplay-a secure two-partycomputation system,Proc.of USENIX Security Symposium,pp.287-302,USENIX,2004.这一文献,报告了在实际装配上,用于执行1-out-of-2不经意传输协议的计算量占据秘密计算系统整体的计算量的大部分。
此外,执行扩展了1-out-of-2不经意传输协议的代理1-out-of-2不经意传输协议时所需的计算量与1-out-of-2不经意传输协议为相同程度。
因此,如果在实际装配上能够削减与这些协议相关联的处理量,则能够减少秘密计算系统的负担。
用于解决课题的方案
本发明的第1方式由第1秘密计算装置、存储了逻辑电路函数f的第2秘密计算装置、以及第3秘密计算装置执行。
第3秘密计算装置生成与对于第1输入值mA以及运算符*满足mA=s*t的片断t的各比特b对应的各数据Wb、和与各比特b的各反向比特(1-b)对应的各数据W(1-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(mA)。
本发明的第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的输入值的信息被分割为两个片断,所分割的两个片断分别被输入到不同的秘密计算装置进行处理。结果,能够减轻有关1-out-of-2不经意传输协议或代理1-out-of-2不经意传输协议的处理负担,能够大幅减少秘密计算装置的负担。
附图说明
图1是表示使用了非专利文献1所公开的技术的秘密计算系统的结构的方框图。
图2是表示使用了非专利文献3所公开的技术的秘密计算系统的结构的方框图。
图3是表示第1实施方式的秘密计算系统的结构的方框图。
图4A、B、C是表示第1实施方式的秘密计算系统包含的秘密计算装置的结构的方框图。
图5是表示第1实施方式的秘密计算系统的动作的具体例子的时序图。
图6是表示第2实施方式的秘密计算系统的结构的方框图。
图7A、B、C是表示第2实施方式的秘密计算系统包含的秘密计算装置的结构的方框图。
图8是表示秘密计算系统包含的秘密计算装置的结构的方框图。
图9是表示第2实施方式的秘密计算系统的动作的具体例子的时序图。
图10是表示第3实施方式的秘密计算系统的结构的方框图。
图11A、B是表示第3实施方式的秘密计算系统包含的秘密计算装置的结构的方框图。
图12是表示第3实施方式的秘密计算系统的动作的具体例子的时序图。
图13是表示第4实施方式的秘密计算系统的结构的方框图。
图14A、B是表示秘密计算系统包含的秘密计算装置的结构的方框图。
图15是表示秘密计算系统包含的变换装置的结构的方框图。
图16是表示第4实施方式的秘密计算系统的动作的具体例子的时序图。
标号说明
1~4秘密计算系统
具体实施方式
参照附图详细说明本发明的实施方式
[第1实施方式]
本实施方式的秘密计算系统由3个秘密计算装置构成。构成该秘密计算系统的两个秘密计算装置分别保持相互独立的输入值。本实施方式的秘密计算系统在由秘密计算装置所拥有的输入值不被其他秘密计算装置知晓的情况下,计算逻辑电路函数f对于该输入值的运算结果。
<结构>
图3是表示第1实施方式的秘密计算系统1的结构的方框图。此外,图4A、B、C是表示秘密计算系统1包含的秘密计算装置11A、11B、11C的结构的方框图。
如图3所示,秘密计算系统1具有秘密计算装置11A、11B、11C(第1、第2、第3秘密计算装置)。
如图4A所示,秘密计算装置11A具有存储单元11AA、输入单元11AB、输出单元11AC、分割单元11AD、比特隐藏单元11AE以及秘密计算单元11AF。此外,如图4B所示,秘密计算装置11B具有存储单元11BA、输入单元11BB、输出单元11BC、比特隐藏单元11BD以及函数隐藏单元11BF。此外,如图4C所示,秘密计算装置11C具有存储单元11CA、输入单元11CB、输出单元11CC、比特隐藏单元11CD以及选择单元11CE。
另外,秘密计算装置11A、11B、11C的例子是,由CPU(中央处理单元)、RAM(随机存储存储器)、ROM(只读存储器)、通信装置、输入接口、输出接口等组成的公知的计算机读取规定的程序而构成的装置。此外,秘密计算装置11A、11B、11C也可以包含集成电路。
<处理>
本实施方式的处理是前述的本发明的第1方式的一例。在本实施方式中,通过预处理,在秘密计算装置11A的存储单元11AA中存储输入值mA,在秘密计算装置11B的存储单元11BA中存储输入值mB和逻辑电路函数f(x,y)。本实施方式的秘密计算系统1在由秘密计算装置11A拥有的输入值mA没有被秘密计算装置知晓,并且,由秘密计算装置11B拥有的输入值mB没有被秘密计算装置知晓的情况下,计算逻辑电路函数f(x,y)的运算结果f(mA,mB)。
首先,秘密计算装置11A将输入值mA分割为对于运算符*满足mA=s*t的片断s和片断t的两个,并将片断s发送到秘密计算装置11B,将片断t发送到秘密计算装置11C(步骤E1-1)。
秘密计算装置11C生成与输入的片断t的各比特b对应的各数据Wb和与各比特b的各反向比特(1-b)对应的各数据W(1-b)。然后,秘密计算装置11C不特别指定比特b以及反向比特(1-b)与数据Wb以及数据W(1-b)的对应,将包含数据Wb以及数据W(1-b)的数据W发送到秘密计算装置11B,将数据Wb发送到秘密计算装置11A(步骤E1-2)。
秘密计算装置11B使用片断s和逻辑电路函数f(x,y)和数据W以及输入值mB,生成隐藏了逻辑电路函数f(s*X,mB)的数据T,该逻辑电路函数f(s*X,mB)是在逻辑电路函数f(x,y)中嵌入了片断s和输入值mB的函数,根据该数据T和数据Wb能够求出逻辑电路函数f(x,y)对于输入值mA和输入值mB的运算结果f(mA,mB)。秘密计算装置11B将数据T发送到秘密计算装置11A(步骤E1-3)。
在秘密计算装置11A中被输入数据T和数据Wb。秘密计算装置11A使用数据T和数据Wb计算运算结果f(mA,mB)(步骤E1-4、5)。
以下,表示本实施方式的秘密计算系统1的动作的具体例子。
图5是表示第1实施方式的秘密计算系统1的动作的具体例的时序图。
[步骤E1-1]
在该例子中,作为运算符*使用XOR(“异或”运算符)。秘密计算装置11A的分割单元11AD将存储单元11AA中存储的输入值mA分割为满足
[数30]
m A = s &CirclePlus; t
的随机的片断s、t(步骤S101)。然后,秘密计算装置11A的输出单元11AC将片断s发送到秘密计算装置11B(步骤S102),将片断t发送到秘密计算装置11C(步骤S103)。
[步骤E1-2]
秘密计算装置11C的比特隐藏单元11CD对与逻辑电路函数f(s*X,mB)的mA=s*X的X对应的输入引线i的每一个,生成由固定长度的随机数即数据Wi 0和随机比特ci的组、以及固定长度的随机数即Wi 1和随机比特ci的反向比特的组构成的
[数31]
W i = ( < W i 0 , c i > , < W i 1 , c &OverBar; i > )
(“数据W”的具体例子)。
此外,选择单元11CE从上述那样生成的Wi中,分别选择与实际的t的各比特b’对应的组
[数32]
< W i b &prime; , b &prime; &CirclePlus; c i >
(步骤S104)。另外,b’表示对输入引线i的输入为片断t的低位第w个比特时的片断t的低位第w个比特。此外,
[数33]
< W i b &prime; , b &prime; &CirclePlus; c i >
是“数据Wb”的具体例子。
然后,秘密计算装置11C的输出单元11CC将Wi发送到秘密计算装置11B(步骤S105),将
[数34]
< W i b &prime; , b &prime; &CirclePlus; c i >
发送到秘密计算装置11A(步骤S106)。
[步骤E1-3]
通过秘密计算装置11B执行以下的(a)~(d),隐藏在逻辑电路函数f(x,y)中嵌入了片断s和输入值mB的逻辑电路函数f(s*X,mB)。另外,该例子的逻辑电路函数f(x,y)中嵌入了片断s和输入值mB的逻辑电路函数f(s*X,mB)是,包含以片断X=t作为输入而恢复mA=s*X的函数mA=s*X和在逻辑电路函数f(x,y)中嵌入了输入值mB的逻辑电路函数f(x,mB),在逻辑电路函数f(x,mB)中输入函数mA=s*X的输出值mA而输出f(mA,mB)的函数。以下,隐藏用于构成这样的逻辑电路函数f(x,mB)的各逻辑门电路。
(a)秘密计算装置11B的比特隐藏单元11BD对f(s*X,mB)的各引线i生成固定长度的随机数
[数35]
Wi 0,Wi 1
,并使其分别与0、1对应。其中,在构成函数mA=s*X的逻辑门电路中,对于被输入X=t的比特的输入引线,对应从秘密计算装置11C接受的
[数36]
Wi 0,Wi 1
(b)接着,秘密计算装置11B的比特隐藏单元11BD生成随机比特ci。其中,在构成函数mA=s*X的逻辑门电路中,对于被输入X=t的比特的输入引线,使用从秘密计算装置11C接受的ci,因此对于被输入X=t的比特的输入引线不生成新的随机比特ci
(c)进而,秘密计算装置11B的比特隐藏单元11BD使
[数37]
( < W i 0 , c i > , < W i 1 , c &OverBar; i > )
与引线i对应。其中,与片断s的低位第w个比特对应的引线i对应至
[数38]
( < W i b , b &CirclePlus; c i > , < W i b &OverBar; , b &OverBar; &CirclePlus; c i > )
。这里,b是片段s的低位第w个比特。
(d)接着,秘密计算装置11B的函数隐藏单元11BF对于以i、j作为输入引线,以k作为输出引线的各逻辑门电路g,生成4个附标签数据
[数39]
c i , c j : ( W k g ( 0,0 ) , g ( 0,0 ) &CirclePlus; c k ) &CirclePlus; F W i 0 ( c j ) &CirclePlus; F W j 0 ( c i ) ,
c i , c &OverBar; j : ( W k g ( 0,1 ) , g ( 0,1 ) &CirclePlus; c k ) &CirclePlus; F W i 0 ( c &OverBar; j ) &CirclePlus; F W j 1 ( c i ) ,
c &OverBar; i , c j : ( W k g ( 0,1 ) , g ( 1,0 ) &CirclePlus; c k ) &CirclePlus; F W i 1 ( c j ) &CirclePlus; F W j 0 ( c &OverBar; i ) ,
c &OverBar; i , c &OverBar; j : ( W k g ( 1,1 ) , g ( 1,1 ) &CirclePlus; c k ) &CirclePlus; F W i 1 ( c &OverBar; j ) &CirclePlus; F W j 1 ( c &OverBar; i ) ,
并且生成将这些附标签数据排列成随机的顺序的数据Tg。该Tg的集合T成为隐藏了逻辑电路函数f(s*X,mB)的数据(步骤S107)。另外,与逻辑电路函数f(s*X,mB)的最后级的门电路g对应的Tg的ck设定为0。
秘密计算装置11B的输出单元11BC将Tg的集合T作为逻辑电路函数f(s*X,mB)的隐藏数据而发送到秘密计算装置11A(步骤S108)。
[步骤E1-4]
秘密计算装置11A的输入单元11AB中被输入数据Tg的集合T和
[数40]
< W i b &prime; , b &prime; &CirclePlus; c i >
。秘密计算装置11A的秘密计算单元11AF使用数据Tg
[数41]
< W i b &prime; , b &prime; &CirclePlus; c i >
,获得逻辑电路函数f的最后级的逻辑门电路g的引线的输出
[数42]
< W i b ^ , b ^ &CirclePlus; c i > .
[步骤E1-5]
秘密计算装置11A的秘密计算单元11AF根据
[数43]
< W i b ^ , b ^ &CirclePlus; c i >
,获得运算结果f(mA,mB)的比特
[数44]
b ^
(步骤S109)。
[步骤E1-4的细节]
在上述处理步骤的步骤E1-4中,秘密计算装置11A的秘密计算单元11AF中被提供了与输入引线i、j,输出引线k的门电路g对应的Tg
[数45]
< W i b &prime; , b &prime; &CirclePlus; c i > , < W j d , d &CirclePlus; c j > ( d &Element; { 0,1 } ) - - - ( 5 )
时,秘密计算单元11AF首先从Tg取出标签
[数46]
( b &prime; &CirclePlus; c i , d &CirclePlus; c j )
和对应于标签的数据
[数47]
( W k g ( b &prime; , d ) , g ( b &prime; , d ) &CirclePlus; c k ) &CirclePlus; F W i b &prime; ( d &CirclePlus; c j ) &CirclePlus; F W j d ( b &prime; &CirclePlus; c i ) - - - ( 6 )
。并且,秘密计算单元11AF计算
[数48]
F W i b &piv; ( d &CirclePlus; c j ) &CirclePlus; F W j d ( b &prime; &CirclePlus; c i ) - - - ( 7 )
。秘密计算单元11AF进行式(6)和式(7)的“异或”,获得与输出引线对应的数据
[数49]
( W k g ( b &prime; , d ) , g ( b &prime; , d ) &CirclePlus; c k ) - - - ( 8 )
。然后,秘密计算单元11AF例如将与输出引线对应的数据作为其他门电路的输入引线的一个数据,并对其他门电路也进行同样的处理,最终获得逻辑电路函数f的最后级的逻辑门电路g的引线的输出。
[步骤E1-5的细节]
通过将与逻辑电路函数f(s*X,mB)的最后级的门电路g对应的Tg的ck设定为0,成为
[数50]
< W k b ^ , b ^ &CirclePlus; c k > = < W k b ^ , b ^ &CirclePlus; 0 > = < W k b ^ , b ^ >
,因此,秘密计算装置11A的秘密计算单元11AF能够获得
[数51]
b ^ .
如以上说明的那样,根据本实施方式,秘密计算装置11A、11B、11C的任一个都不需要执行在使用了非专利文献1的技术的秘密计算系统中,占据整体的计算量的大部分的1-out-of-2不经意传输协议,因此能够大幅降低秘密计算装置11A、11B、11C的负担。
另外,由于对在本实施方式中追加的秘密计算装置11C仅提供输入值mA的片断t,因此输入值mA、mB的隐秘性不会因秘密计算装置11C而受损。
此外,在本实施方式中,示出了将XOR用作运算符*的例子,但本发明不限于此。例如,也可以将加法运算、乘法运算、其他任何运算符作为运算符*。
[第2实施方式]
第2实施方式是第1实施方式的变形例。第2实施方式与第1实施方式的主要的差别如下。
·在第1实施方式中,由3个秘密计算装置构成秘密计算系统。在第2实施方式中,由N个(N是正整数)变换装置和3个秘密计算装置构成秘密计算系统。
·在第1实施方式中,两个秘密计算装置分别拥有输入值,一个秘密计算装置将输入值分割成了两个片断。在第2实施方式中,各变换装置分别拥有相互独立的输入值,各变换装置将输入值分割为两个片断。
<结构>
图6是表示第2实施方式的秘密计算系统2的结构的方框图。此外,图7A、B、C是表示秘密计算系统2包含的秘密计算装置21A、21B、21C的结构的方框图。此外,图8是表示秘密计算系统2包含的变换装置20的结构的方框图。另外,将变换装置201~20N统称为变换装置20。
如图6所示,秘密计算系统2具有秘密计算装置21A、21B、21C(第1、第2、第3秘密计算装置)。
如图7A所示,秘密计算装置21A具有存储单元21AA、输入单元21AB、输出单元21AC、比特隐藏单元21AE以及秘密计算单元21AF。此外,如图7B所示,秘密计算装置21B具有存储单元21BA、输入单元21BB、输出单元21BC、比特隐藏单元21BD、选择单元21BE以及函数隐藏单元21BF。此外,如图7C所示,秘密计算装置21C具有存储单元21CA、输入单元21CB、输出单元21CC、比特隐藏单元21CD以及选择单元21CE。此外,如图8所示,变换装置20分别具有存储单元20A、输入单元20B、输出单元20C以及分割单元20D。
另外,秘密计算装置21A、21B、21C、变换装置20的例子是,由CPU、RAM、ROM、通信装置、输入接口、输出接口等组成的公知的计算机读取规定的程序而构成的装置。此外,秘密计算装置21A、21B、21C、变换装置20也可以包含集成电路。
<处理>
本实施方式的处理是前述的本发明的第1方式的一例。
在本实施方式中,通过预处理,在各变换装置201~20N的存储单元20A中分别存储输入值m1~mN,秘密计算装置21B的存储单元21BA中存储逻辑电路函数f(x1,...,xN)。本实施方式的秘密计算系统2在由各变换装置201~20N所拥有的输入值m1~mN不被其他装置知晓的情况下,计算以输入值mn(1≤n≤N)作为输入的逻辑电路函数f(x1,...,xN)的运算结果f(m1,...,mN)。这时,各秘密计算装置21A、21B、21C不恢复输入值mn,也不获得能够容易恢复输入值mn的数据的情况下,求出运算结果f(m1,...,mN)。
首先,变换装置201将输入值m1分割为对于运算符*满足m1=s1*t1的片断s1和片断t1的两个,将片断s1发送到秘密计算装置21B,将片断t1发送到秘密计算装置21C。其他变换装置202~20N的动作也与变换装置201相同(步骤E2-1)。
秘密计算装置21C生成与从变换装置201~20N发送的片断tn的各比特b对应的各数据Wb和与各比特b的各反向比特(1-b)对应的各数据W(1-b)。然后,秘密计算装置21C的输出单元21CC不特别指定比特b以及反向比特(1-b)与数据Wb以及数据W(1-b)的对应,将包含数据Wb以及数据W(1-b)的数据W发送到秘密计算装置21B,将数据Wb发送到秘密计算装置21A(步骤E2-2)。
秘密计算装置21B使用从变换装置201~20N发送的片断sn和逻辑电路函数f(x1,...,xN)和数据W,生成隐藏了在逻辑电路函数f(x1,...,xN)中嵌入了片断sn的逻辑电路函数f(s1*X1,...,sN*XN)的数据T,根据该数据T和数据Wb能够求出逻辑电路函数f(x1,...,xN)对于输入值m1~mN的运算结果f(m1,...,mN)。秘密计算装置21B将数据T发送到秘密计算装置21A(步骤E2-3)。
在秘密计算装置21A中被输入数据T和数据Wb。秘密计算装置21A使用数据T和数据Wb计算运算结果f(m1,...,mN)(步骤E2-4、5)。
以下,表示本实施方式的秘密计算系统2的动作的具体例子。
图9是表示第2实施方式的秘密计算系统2的动作的具体例的时序图。
[步骤E2-1]
在该例子中,作为运算符*使用XOR(“异或”运算符)。各变换装置201~20N的分割单元20D将各自的存储单元20A中存储的输入值mn分割为满足
[数52]
m n = s n &CirclePlus; t n
的随机的片断sn、tn(步骤S201)。然后,各变换装置201~20N的输出单元20C将片断sn发送到秘密计算装置21B(步骤S202),将片断tn发送到秘密计算装置21C(步骤S203)。
[步骤E2-2]
秘密计算装置21C的比特隐藏单元21CD对与逻辑电路函数f(s1*X1,...,sN*XN)的mn=sn*Xn的Xn对应的输入引线i的每一个,生成由固定长度的随机数即数据Wi 0和随机比特ci的组、以及固定长度的随机数即Wi 1和随机比特ci的反向比特的组构成的
[数53]
( < W i 0 , c i > , < W i 1 , c &OverBar; i > )
(“数据W”的具体例子)。
此外,选择单元21CE从上述那样生成的Wi中,分别选择与实际的tn的各比特b’对应的组
[数54]
< W i b &prime; , b &prime; &CirclePlus; c i >
(步骤S204)。另外,b’表示对输入引线i的输入为片断tn的低位第w个比特时的片断tn的低位第w个比特。此外,
[数55]
< W i b &prime; , b &prime; &CirclePlus; c i >
是“数据Wb”的具体例子。
然后,秘密计算装置21C的输出单元21CC将Wi发送到秘密计算装置21B(步骤S205),将
[数56]
< W i b &prime; , b &prime; &CirclePlus; c i >
发送到秘密计算装置21A(步骤S206)。
[步骤E2-3]
通过秘密计算装置21B执行以下的(a)~(d),隐藏在逻辑电路函数f(x1,...,xN)中嵌入了片断sn的逻辑电路函数f(s1*X1,...,sN*XN)。另外,该例子的逻辑电路函数f(x1,...,xN)中嵌入了片断sn的逻辑电路函数f(s1*X1,...,sN*XN)是,包含以片断X=tn作为输入而恢复mn=sn*Xn的函数mn=sn*Xn和逻辑电路函数f(x1,...,xN),并且在逻辑电路函数f(x1,...,xN)中输入各函数mn=sn*Xn的输出值mn而输出f(m1,...,mN)的函数。以下,隐藏用于构成这样的逻辑电路函数f(s1*X1,...,sN*XN)的各逻辑门电路。
(a)秘密计算装置21B的比特隐藏单元21BD对逻辑电路函数f(s1*X1,...,sN*XN)的各引线i生成固定长度的随机数
[数57]
Wi 0,Wi 1
,并使其分别与0、1对应。其中,在构成函数mn=sn*Xn的逻辑门电路中,对于被输入Xn=tn的比特的输入引线,对应从秘密计算装置21C接受的
[数58]
Wi 0,Wi 1
(b)接着,秘密计算装置21B的比特隐藏单元21BD生成随机比特ci。其中,在构成函数mn=sn*Xn的逻辑门电路中,对于被输入Xn=tn的比特的输入引线,使用从秘密计算装置21C接受的ci,因此对于被输入Xn=tn的比特的输入引线不生成新的随机比特ci
(c)进而,秘密计算装置21B的比特隐藏单元21BD使
[数59]
( < W i 0 , c i > , < W i 1 , c &OverBar; i > )
与引线i对应。其中,与sn的低位第w个比特对应的引线i对应至
[数60]
( < W i b , b &CirclePlus; c i > , < W i b &OverBar; , b &OverBar; &CirclePlus; c i > )
。这里,b是sn的低位第w个比特。
(d)进而,秘密计算装置21B的函数隐藏单元21BF对于以i、j作为输入引线,以k作为输出引线的逻辑门电路g,生成4个附标签数据
[数61]
c i , c j : ( W k g ( 0,0 ) , g ( 0,0 ) &CirclePlus; c k ) &CirclePlus; F W i 0 ( c j ) &CirclePlus; F W j 0 ( c i ) ,
c i , c &OverBar; j : ( W k g ( 0,1 ) , g ( 0,1 ) &CirclePlus; c k ) &CirclePlus; F W i 0 ( c &OverBar; j ) &CirclePlus; F W j 1 ( c i ) ,
c &OverBar; i , c j : ( W k g ( 0,1 ) , g ( 1,0 ) &CirclePlus; c k ) &CirclePlus; F W i 1 ( c j ) &CirclePlus; F W j 0 ( c &OverBar; i ) ,
c &OverBar; i , c &OverBar; j : ( W k g ( 1,1 ) , g ( 1,1 ) &CirclePlus; c k ) &CirclePlus; F W i 1 ( c &OverBar; j ) &CirclePlus; F W j 1 ( c &OverBar; i ) ,
并且生成将这些附标签数据排列成随机的顺序的数据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 i b &prime; , b &prime; &CirclePlus; c i >
。秘密计算装置21A的秘密计算单元21AF使用数据Tg
[数63]
< W i b &prime; , b &prime; &CirclePlus; c i >
,获得逻辑电路函数f的最后级的逻辑门电路g的引线的输出
[数64]
< W k b ^ , b ^ &CirclePlus; c i > .
[步骤E2-5]
秘密计算装置21A的秘密计算单元21AF根据
[数65]
< W k b ^ , b ^ &CirclePlus; c i >
,获得运算结果f(m1,...,mN)的比特
[数66]
b ^
(步骤S209)。
如以上说明的那样,根据本实施方式,秘密计算装置21A、21B、21C的任一个都不需要执行在使用了非专利文献3的技术的秘密计算系统中,占据整体的计算量的大部分的代理1-out-of-2不经意传输协议,因此能够大幅降低秘密计算装置21A、21B、21C的负担。
另外,由于对在本实施方式中追加的秘密计算装置21C仅提供输入值mn的片断tn,因此输入值mn的隐秘性不会因秘密计算装置21C而受损。
此外,在本实施方式中,示出了将XOR用作运算符*的例子,但本发明不限于此。例如,也可以将加法运算、乘法运算、其他任何运算符作为运算符*。
此外,在本实施方式中,由各变换装置201~20N所分割的各片断tn被发送到秘密计算装置21C(步骤S203)。但是,也可以是由各变换装置201~20N所分割的各片断tn首先被发送到秘密计算装置21A,并从那里被转发到秘密计算装置21C。此外,也可以是由各变换装置201~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的结构的方框图。此外,图11A、B是表示秘密计算系统3包含的秘密计算装置31A、31B的结构的方框图。
如图10所示,秘密计算系统3具有变换装置201~20N以及秘密计算装置31A、31B(第1、第2秘密计算装置)。如图11A所示,秘密计算装置31A具有存储单元31AA、输入单元31AB、输出单元31AC、比特隐藏单元31AD、选择单元31AE、函数隐藏单元31AF以及1-out-of-2不经意传输协议(OT)执行单元31AG。此外,如图11B所示,秘密计算装置31B具有存储单元31BA、输入单元31BB、输出单元31BC以及秘密计算单元31BD。秘密计算单元31BD包含1-out-of-2不经意传输协议执行单元31BDA。另外,变换装置201~20N的结构与在第2实施方式中说明的相同(图8)。
另外,秘密计算装置31A、31B的例子是,由CPU、RAM、ROM、通信装置、输入接口、输出接口等组成的公知的计算机读取规定的程序而构成的装置。此外,秘密计算装置31A、31B也可以包含集成电路。
<处理>
本实施方式的处理是前述的本发明的第2方式的一例。在本实施方式中,通过预处理,在各变换装置201~20N的存储单元20A中分别存储输入值m1~mN,秘密计算装置31A的存储单元31AA中存储逻辑电路函数f(x1,...,xN)。本实施方式的秘密计算系统3在由各变换装置201~20N所拥有的输入值m1~mN不被其他装置知晓的情况下,计算以输入值mn(1≤n≤N)作为输入的逻辑电路函数f(x1,...,xN)的运算结果f(m1,...,mN)。这时,各秘密计算装置31A、31B不恢复输入值mn,也不获得能够容易恢复输入值mn的数据的情况下,求出运算结果f(m1,...,mN)。
首先,变换装置201将输入值m1分割为对于运算符*满足m1=s1*t1的片断s1和片断t1的两个,将片断t1发送到秘密计算装置31A,将片断s1发送到秘密计算装置31B。其他变换装置202~20N的动作也与变换装置201相同(步骤E3-1)。
秘密计算装置31A使用逻辑电路函数f(x)和从变换装置201~20N发送的片断tn,生成隐藏了在逻辑电路函数f(x)中嵌入了片断tn的逻辑电路函数f(X1*t1,...,XN*tN)的数据T,根据该数据T和片断sn能够求出运算结果f(m1,...,mN)。秘密计算装置31A将数据T发送到秘密计算装置31B(步骤E3-2)。
在秘密计算装置31B中被输入片断sn和数据T。秘密计算装置31B使用片断sn和数据T计算运算结果f(m1,...,mN)。秘密计算装置31B以片断sn作为输入,在实际不恢复输入值mn的情况下,根据数据Tg计算运算结果f(m1,...,mN)(步骤E3-3、4、5)。
以下,表示本实施方式的秘密计算系统3的动作的具体例子。
图12是表示第3实施方式的秘密计算系统3的动作的具体例的时序图。
[步骤E3-1]
各变换装置201~20N的分割单元20D将各自的存储单元21A中存储的输入值mn分割为满足
[数67]
m n = s n &CirclePlus; t n
的随机的片断sn、tn(步骤S301)。然后,各变换装置201~20N的输出单元20C将片断sn发送到秘密计算装置31B(步骤S302),将片断tn发送到秘密计算装置31A(步骤S303)。
[步骤E3-2]
通过秘密计算装置31A执行以下的(a)~(d),隐藏在逻辑电路函数f(x1,...,xN)中嵌入了片断tn的逻辑电路函数f(X1*t1,...,XN*tN)。另外,该例子的逻辑电路函数f(x1,...,xN)中嵌入了片断tn的逻辑电路函数f(X1*t1,...,XN*tN)是,包含以片断X=sn作为输入而恢复mn=Xn*tn的函数mn=Xn*tn和逻辑电路函数f(x1,...,xN),并且在逻辑电路函数f(x1,...,xN)中输入各函数mn=Xn*tn的输出值mn而输出f(m1,...,mN)的函数。以下,隐藏用于构成这样的逻辑电路函数f(X1*t1,...,XN*tN)的各逻辑门电路。
(a)秘密计算装置31A的比特隐藏单元31AD对构成逻辑电路函数f(X1*t1,...,XN*tN)的各逻辑门电路的各引线i生成固定长度的随机数
[数68]
Wi 0,Wi 1
,并使其分别与0、1对应。
(b)秘密计算装置31A的比特隐藏单元31AD生成随机比特ci∈{0,1}。
(c)秘密计算装置31A的比特隐藏单元31AD使
[数69]
( < W i 0 , c i > , < W i 1 , c &OverBar; i > )
与引线i对应。其中,与片断tn的低位第w个比特对应的输入引线i对应至
[数70]
( < W i b , b w &CirclePlus; c i > , < W i b &OverBar; w , b w &CirclePlus; c i > )
。这里,bw是片段tn的低位第w个比特。
(d)秘密计算装置31A的函数隐藏单元31AF对于以i、j作为输入引线,以k作为输出引线的逻辑门电路g,生成4个附标签数据
[数71]
c i , c j : ( W k g ( 0,0 ) , g ( 0,0 ) &CirclePlus; c k ) &CirclePlus; F W i 0 ( c j ) &CirclePlus; F W j 0 ( c i ) ,
c i , c &OverBar; j : ( W k g ( 0,1 ) , g ( 0,1 ) &CirclePlus; c k ) &CirclePlus; F W i 0 ( c &OverBar; j ) &CirclePlus; F W j 1 ( c i ) ,
c &OverBar; i , c j : ( W k g ( 0,1 ) , g ( 1,0 ) &CirclePlus; c k ) &CirclePlus; F W i 1 ( c j ) &CirclePlus; F W j 0 ( c &OverBar; i ) ,
c &OverBar; i , c &OverBar; j : ( W k g ( 1,1 ) , g ( 1,1 ) &CirclePlus; c k ) &CirclePlus; F W i 1 ( c &OverBar; j ) &CirclePlus; F W j 1 ( c &OverBar; i ) ,
并且生成将这些附标签数据排列成随机的顺序的数据Tg。Tg的集合T成为隐藏了逻辑电路函数f(X1*t1,...,XN*tN)的数据(步骤S304)。
秘密计算装置31A的输出单元31AC将Tg的集合T作为逻辑电路函数f(X1*t1,...,XN*tN)的隐藏数据而发送到秘密计算装置31B(步骤S305)。
[步骤E3-3]
秘密计算装置31B的输入单元31BB中被输入从各变换装置201~20N发送的片断sn。秘密计算装置31B的秘密计算单元31BD使用这些片段sn,求与片断sn的各比特b对应的
[数72]
< W i b , b &CirclePlus; c i >
。但是,Wi b和ci是在秘密计算装置31A中设定的,仅凭秘密计算装置31B无法设定与片断sn的各比特b对应的Wi b和ci。另一方面,若为了从秘密计算装置31A获得与片断sn的各比特b对应的Wi b和ci而对秘密计算装置31A提供片断sn的各比特b的信息,则输入值mn将会被秘密计算装置31A恢复。因此,秘密计算装置31B的秘密计算单元31BD所具有的1-out-of-2不经意传输协议执行单元31BDA在与秘密计算装置31A的1-out-of-2不经意传输协议执行单元31AG之间执行1-out-of-2不经意传输协议,在不会对秘密计算装置31A提供片断sn的各比特b的信息的情况下,从秘密计算装置31A取得与片断sn的各比特b对应的Wi b和ci。以下,示出该处理的例子。
[1-out-of-2不经意传输协议的例子]
《参数设定》
1-out-of-2不经意传输协议执行单元31BDA和1-out-of-2不经意传输协议执行单元31AG合作生成质数p,求满足hq≡1(mod p)的2以上且小于p的整数h以及最小的自然数q。此外,另外选择2以上且小于p的整数z。这样设定的质数p、自然数q、整数h、整数z例如被存储在秘密计算装置31A的存储单元31AA和秘密计算装置31B的存储单元31BA中。
《秘密密钥设定》
1-out-of-2不经意传输协议执行单元31BDA随机选择小于q的自然数u。该自然数u为秘密密钥。
《公开密钥设定》
1-out-of-2不经意传输协议执行单元31BDA随机选择小于q的自然数u。该自然数u为秘密密钥。计算PKb=hu mod p。该PKb是公开密钥,通过秘密密钥u加密的密文可通过PKb正确地解密。
《公开密钥的改变》
如果b=1,则1-out-of-2不经意传输协议执行单元31BDA计算
[数73]
PK b &OverBar; = z / PK b mod p .
《公开密钥的发送》
秘密计算装置31B的输出单元31BC将PK0发送到秘密计算装置31A。另外,如果b=0则PK0是与自然数u对应的正确的公开密钥。另一方面,如果b=1则PK0不是与自然数u对应的正确的公开密钥,并且通过PK1=z/PK0mod p获得的PK1成为与自然数u对应的正确的公开密钥。
《加密》
秘密计算装置31A的1-out-of-2不经意传输协议执行单元31AG使用所发送的PK0计算了PK1=z/PK0mod p之后,计算
[数74]
Z 0 = E PK 0 ( C ( < W i 0 , c i > ) ) , Z 1 = E PK 1 ( C ( < W i 1 , c &OverBar; i > ) )
。秘密计算装置31A的输出单元31AC将所得到的密文Z0、Z1发送到秘密计算装置31B。这里,设EPK(x)是使用了未加密文x的公开密钥PK的加密函数,假设该密文可通过解密密钥u解密。此外,C是能够识别未加密文是否被正确恢复的函数。另外,秘密计算装置31A无法知道PK0以及PK1中的哪一个是与自然数u对应的正确的公开密钥。因此,秘密计算装置31A无法知道秘密计算装置31A是想要取得与比特b=0对应的数据,还是想要取得与比特b=1对应的数据。
《解密》
秘密计算装置31B的1-out-of-2不经意传输协议执行单元31BDA使用解密密钥u对Z0、Z1进行解密,并获得由C识别为被正确恢复的解密结果
[数75]
< W i b , b &CirclePlus; c i >
。即,如果b=0则PK0是与自然数u对应的正确的公开密钥,因此只有Z0被正确恢复,如果b=1则PK1是与自然数u对应的正确的公开密钥,因此只有Z1被正确恢复(步骤S306)。
[步骤E3-4]
秘密计算装置31B的输入单元31BB中被输入数据Tg的集合T和
[数76]
< W i b , b &CirclePlus; c i >
。秘密计算装置31B的秘密计算单元31BD使用Tg
[数77]
< W i b , b &CirclePlus; c i >
,获得逻辑电路函数f的最后级的逻辑门电路g的引线的输出
[数78]
< W i b ^ , b ^ &CirclePlus; c i > .
[步骤E3-5]
秘密计算装置31B的秘密计算单元31BD根据
[数79]
< W i b ^ , b ^ &CirclePlus; c i >
,获得运算结果f(m1,...,mN)的比特
[数80]
b ^
(步骤S307)。
根据本实施方式,变换装置201~20N将拥有的数据mn分割为sn和tn,将sn送到秘密计算装置31B,将tn送到秘密计算装置31A即可,不需要执行代理1-out-of-2不经意传输协议。因此,与需要此的非专利文献3所公开的方法相比,变换装置201~20N的负担被减轻。
另外,在本实施方式中,示出了秘密计算装置31B在步骤S306中,作为与片断sn的各比特b对应的数据而取得各比特b的隐藏数据
[数81]
< W i b , b &CirclePlus; c i >
的例子。
但是,秘密计算装置31B作为与片断sn的各比特b对应的数据,也可以取得与输入值mn=sn*tn的各比特r对应的隐藏数据。这样的结构例如运算符*为XOR,则可以通过使用以下的Z0、Z1来代替上述的Z0、Z1来实现。另外,v表示片断tn的比特。
[数82]
Z 0 = E PK 0 ( C ( < W i v , v &CirclePlus; c i > ) ) , Z 1 = E PK 1 ( C ( < W i v &OverBar; , v &OverBar; &CirclePlus; c i > ) )
这是基于如果片断sn的比特b为0,则与其相同位的输入值mn=sn*tn的比特r和与其相同位的片断tn的比特v相等,如果片断sn的比特b为1,则与其相同位的输入值mn=sn*tn的比特r成为与其相同位的片断tn的比特v的反向比特。这时,秘密计算装置31B取得
[数83]
< W i v , v &CirclePlus; c i > ( b = 0 )
< W i v &OverBar; , v &OverBar; &CirclePlus; c i > ( b = 1 )
的其中一个。如果设定有与其对应的数据Tg的集合T,则可根据此来获得运算结果f(m1,...,mN)。
此外,在本实施方式中,示出了使用XOR作为运算符*的例子,但本发明不限于此。例如,也可以将加法运算、乘法运算、其他任何运算符作为运算符*。
[第4实施方式]
本实施方式的秘密计算系统由N个(N为正整数)变换装置和两个秘密计算装置构成。各变换装置分别拥有相互独立的输入值。本实施方式的秘密计算系统在由各变换装置拥有的输入值不被其他装置知晓的情况下,计算逻辑电路函数f对于这些输入值的运算结果。其中,在本实施方式中不使用1-out-of-2不经意传输协议。
<结构>
图13是表示第4实施方式的秘密计算系统4的结构的方框图。此外,图14A、B是表示秘密计算系统4包含的秘密计算装置41A、41B的结构的方框图。此外,图15是表示秘密计算系统4包含的变换装置401~40N的结构的方框图。另外,将变换装置401~40N统称为变换装置40。
如图13所示,秘密计算系统4具有变换装置401~40N以及秘密计算装置41A、41B(第1、第2秘密计算装置)。如图14A所示,秘密计算装置41A具有存储单元41AA、输入单元41AB、输出单元41AC、比特隐藏单元41AD以及函数隐藏单元41AF。此外,如图14B所示,秘密计算装置41B具有存储单元41BA、输入单元41BB、输出单元41BC以及秘密计算单元41BF。此外,如图15所示,变换装置40具有存储单元40A、输入单元40B、输出单元40C、比特隐藏单元40D以及选择单元40E。
另外,秘密计算装置41A、41B以及变换装置40的例子是,由CPU、RAM、ROM、通信装置、输入接口、输出接口等组成的公知的计算机读取规定的程序而构成的装置。此外,秘密计算装置41A、41B以及变换装置40也可以包含集成电路。
<处理>
本实施方式的处理是前述的本发明的第2方式的一例。在本实施方式中,通过预处理,在各变换装置401~40N的存储单元40A中分别存储输入值m1~mN,秘密计算装置41A的存储单元41AA中存储逻辑电路函数f(x1,...,xN)。本实施方式的秘密计算系统4在由各变换装置401~40N所拥有的输入值m1~mN不被其他装置知晓的情况下,计算以输入值mn(1≤n≤N)作为输入的逻辑电路函数f(x1,...,xN)的运算结果f(m1,...,mN)。这时,各秘密计算装置41A、41B不恢复输入值mn,也不获得能够容易恢复输入值mn的数据的情况下,求出运算结果f(m1,...,mN)。此外,在这些处理的过程中不需要执行1-out-of-2不经意传输协议。
首先,变换装置401~40N生成与各输入值m1~mN的各比特b对应的数据Wb和与各比特b的反向比特(1-b)对应的数据W(1-b)。然后,变换装置401~40N作为将各输入值m1~mN分割的一个片断而将数据Wb发送到秘密计算装置41B。此外,变换装置401~40N将包含数据Wb以及与各比特b的反向比特(1-b)对应的各数据W(1-b)的数据W作为另一个片断而发送到秘密计算装置41A,其中在数据W中不特别指定数据Wb以及数据W(1-b)与b以及(1-b)的对应(步骤E4-1)。
秘密计算装置41A使用数据W,生成隐藏了逻辑电路函数f的数据T,根据该数据T和数据Wb能够求出运算结果f(m)。秘密计算装置41A将生成的数据T发送到秘密计算装置41B(步骤E4-2)。
在秘密计算装置41A中被输入数据T和数据Wb。秘密计算装置41A使用数据T和数据Wb计算运算结果f(m)(步骤E4-3、4、5)。
以下,表示本实施方式的秘密计算系统4的动作的具体例子。
图16是表示第4实施方式的秘密计算系统4的动作的具体例的时序图。
[步骤E4-1]
各变换装置401~40N的比特隐藏单元40D对构成逻辑电路函数f(x1,...,xN)的各逻辑门电路中、输入各输入值m1~mN的比特b的各输入引线i,生成随机比特ci和固定长度的随机数
[数84]
Wi 0,Wi 1
。然后,各变换装置40n的隐藏单元40D生成
Wn=(ci,Wi 0,Wi 1)n
(数据W的例子/步骤S401),各变换装置40n的选择单元40E生成与各比特b对应的
[数85]
< W i b , b &CirclePlus; c i > n
(数据Wb的例子/步骤S402)。各变换装置40n的输出单元40C将Wn发送到秘密计算装置41B(步骤S403),将
[数86]
< W i b , b &CirclePlus; c i > n
发送到秘密计算装置41A(步骤S404)。
[步骤E4-2]
秘密计算装置41A的函数隐藏单元41AF与上述的步骤E3-2同样地,通过执行(a)~(d),生成隐藏了构成逻辑电路函数f(x1,...,xN)的各逻辑门电路的Tg的集合T。其中,使输入值m1~mN的各比特的输入引线与
[数87]
( < W i 0 , c i > , < W i 1 , c &OverBar; i > )
相对应(步骤S405)。
秘密计算装置41A的输出单元41AC将Tg的集合T作为逻辑电路函数f(x1,...,xN)的隐藏数据而发送到秘密计算装置41B(步骤S406)。
[步骤E4-3]
秘密计算装置41B的输入单元41BF中被输入数据Tg的集合T和
[数88]
< W i b , b &CirclePlus; c i > n
。秘密计算装置41B的秘密计算单元41BF使用Tg
[数89]
< W i b , b &CirclePlus; c i > n
,获得逻辑电路函数f的最后级的逻辑门电路g的引线的输出
[数90]
< W i b ^ , b ^ &CirclePlus; c i > .
[步骤E4-5]
秘密计算装置41B的秘密计算单元41BD根据
[数91]
< W i b ^ , b ^ &CirclePlus; c i >
,获得运算结果f(m1,...,mN)的比特
[数92]
b ^
(步骤S407)。
根据该例子,由于不需要执行1-out-of-2不经意传输协议,因此与第3实施方式相比,秘密计算装置41A、41B的处理减轻。
此外,从各变换装置40n发送到秘密计算装置41A的
Wn=(ci,Wi 0,Wi 1)n
中,不包含有关输入值mn的信息。此外,从各变换装置40n发送到秘密计算装置41B的
[数93]
< W i b , b &CirclePlus; c i > n
中输入值mn的比特b被随机比特ci屏蔽,因此,不能成为与输入值mn有关的有意的信息。因此,秘密计算装置41A、41B仅凭自身接收到的信息,无法获得与输入值mn有关的有意的信息,输入值mn的隐秘性被确保。
[变形例等]
另外,本发明不限于上述的实施方式。例如,隐藏了输入值和片断的逻辑电路函数的构成方法不限于上述情况。此外,上述的各种处理不仅可以按照记载以时间序列方式执行,也可以根据执行处理的装置的处理能力或者需要而以并行方式或单独执行。此外,在本说明书中,系统是多个装置的逻辑集合结构。此外,各装置的构成不限于在同一壳体内。此外,在不脱离本发明的宗旨的范围内能够进行适当变更是不言而喻的。
此外,在通过计算机来实现上述构成时,各装置应具有的功能的处理内容通过程序来记述。并且,通过由计算机来执行该程序,从而在计算机上实现上述处理功能。
记述了该处理内容的程序可以事先记录在计算机能够读取的记录介质中。作为计算机可读取的记录介质,例如可以是磁记录装置、光盘、光磁记录介质、半导体存储器等任何介质。
此外,该程序的流通例如通过对记录了该程序的DVD、CD-ROM等可移动型记录介质进行销售、转让、出借等方式来进行。进而,也可以将该程序事先存储到服务器计算机的存储装置中,并经由网络将该程序从服务器计算机转发到其它计算机中,从而使该程序流通。
执行这样的程序的计算机例如首先将可移动型记录介质中记录的程序或者从服务器计算机转发的程序暂时存储在自身的存储装置中。然后,在执行处理时,读取在该自身的存储介质中存储的程序,并按照读取的程序执行处理。此外,作为该程序的其他执行方式,也可以是计算机直接从可移动型记录介质读取程序,并按照该程序执行处理,进而也可以是每当从服务器计算机对该计算机转发了程序时,依次按照接受的程序执行处理。此外,也可以通过从服务器计算机不对该计算机转发程序、仅由该执行指示和结果取得来实现处理功能的所谓的ASP(Application Service Provider;应用服务提供商)型的服务来执行上述的处理。
工业上的可利用性
本发明例如可以应用于一边保护个人秘密(privacy)一边灵活运用个人的信息的各种系统中。例如,本发明能够在包含拍卖(auction)的任意的信息合计系统中利用。这时,在不泄漏各用户拥有的数据的情况下,能够将拍卖结果和由多数表决产生的意思决定的结果等作为运算结果来获得。此外,本发明的其他应用例子例如是,在将各用户拥有的数据不告知其他人的情况下进行合计,并根据这些数据进行各种统计处理和开采处理的系统。作为又一其他例子,也可以将本发明利用到生物体认证系统中。这时,在隐藏了各用户的生物体信息的情况下,能够判定生物体信息是否正当。

Claims (23)

1.一种秘密计算系统,在第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.一种秘密计算装置,其包括: 
输入对于第1输入值mA以及运算符*满足mA=s*t的片断t的部件; 
生成与所述片断t的各比特b对应的各数据Wb、和与所述各比特b的各反向比特(1-b)对应的各数据W(1-b)的部件; 
将所述数据Wb发送到计算逻辑电路函数f对于所述第1输入值mA的运算结果f(mA)的其他秘密计算装置的部件;以及 
不特别指定所述比特b以及反向比特(1-b)与所述数据Wb以及所述数据W(1-b)的对应,将包含所述数据Wb以及所述数据W(1-b)的数据W发送到输入了满足mA=s*t的片断s的其他秘密计算装置的部件。 
6.一种秘密计算装置,其包括: 
输入对于第1输入值mA以及运算符*满足mA=s*t的片断s的部件; 
使用所述片断s和逻辑电路函数f以及包含与片断t的各比特b对应的各数据Wb、和与所述各比特b的各反向比特(1-b)对应的各数据W(1-b)的数据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秘密计算装置之间执行1-out-of-2不经意传输协议,不对所述第1秘密计算装置通知所述片断s,而取得在所述第1秘密计算装置中设定的与所述片断s对应的隐藏数据的部件;以及 
使用所述隐藏数据和所述隐藏了逻辑电路函数f(X*t)的数据T计算所述运算结果f(m)的部件。 
14.如权利要求11所述的秘密计算系统, 
使用所述片断A和所述数据T计算所述运算结果f(m)的部件包括: 
在与所述第1秘密计算装置之间执行1-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(1-b)的数据W,在该数据W中不特别指定所述数据Wb以及所述数据W(1-b)与b以及(1-b)的对应, 
生成所述数据T的部件包括使用所述数据W生成隐藏了逻辑电路函数f的数据T的部件,根据该隐藏了逻辑电路函数f的数据T和所述数据Wb能够求出所述运算结果f(m), 
使用所述片断A和所述数据T计算所述运算结果f(m)的部件包括使用 所述数据Wb和所述隐藏了逻辑电路函数f的数据T计算所述运算结果f(m)的部件。 
17.一种秘密计算方法,在输入值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)的步骤。 
18.如权利要求17所述的秘密计算方法, 
所述片断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)的步骤。 
19.如权利要求17所述的秘密计算方法, 
所述步骤(D)包括不恢复所述输入值m而使用所述片断s和所述隐藏了逻辑电路函数f(X*t)的数据T计算所述运算结果f(m)的步骤。 
20.如权利要求19所述的秘密计算方法, 
所述步骤(D)包括: 
(D-1)所述第2秘密计算装置与所述第1秘密计算装置之间执行1-out-of-2不经意传输协议,不对所述第1秘密计算装置通知所述片断s,而取得在所述第1秘密计算装置中设定的与所述片断s对应的隐藏数据的步骤;以及 
(D-2)使用所述隐藏数据和所述隐藏了逻辑电路函数f(X*t)的数据T 计算所述运算结果f(m)的步骤。 
21.如权利要求18所述的秘密计算方法, 
所述步骤(D)包括: 
(D-1)所述第2秘密计算装置与所述第1秘密计算装置之间执行1-out-of-2不经意传输协议,不对所述第1秘密计算装置通知所述片断s,而取得在所述第1秘密计算装置中设定的与所述片断s对应的隐藏数据的步骤;以及 
(D-2)使用所述隐藏数据和所述隐藏了逻辑电路函数f(X*t)的数据T计算所述运算结果f(m)的步骤。 
22.如权利要求18至21的任一项所述的秘密计算方法,还包括: 
在变换装置中将所述输入值m分割为满足m=s*t的所述片断s、t的步骤; 
在所述变换装置中将所述片断t发送到所述第1秘密计算装置的步骤;以及 
在所述变换装置中将所述片断s发送到所述第2秘密计算装置的步骤。 
23.如权利要求18所述的秘密计算方法, 
所述片断A是与所述输入值m的各比特b对应的各数据Wb, 
所述片断B是包含所述数据Wb和与所述各比特b的反向比特(1-b)对应的各数据W(1-b)的数据W,在该数据W中不特别指定所述数据Wb以及所述数据W(1-b)与b以及(1-b)的对应, 
所述步骤(B)包括使用所述数据W生成隐藏了逻辑电路函数f的数据T的步骤,根据该隐藏了逻辑电路函数f的数据T和所述数据Wb能够求出所述运算结果f(m), 
所述步骤(D)包括使用所述数据Wb和所述隐藏了逻辑电路函数f的数据T计算所述运算结果f(m)的步骤。 
CN200980102192.4A 2008-01-21 2009-01-21 秘密计算系统、秘密计算方法、秘密计算装置 Active CN101911153B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2008010929 2008-01-21
JP010928/08 2008-01-21
JP010929/08 2008-01-21
JP2008010928A JP5078632B2 (ja) 2008-01-21 2008-01-21 秘密計算システム、秘密計算方法、および秘密計算プログラム
PCT/JP2009/050857 WO2009093603A1 (ja) 2008-01-21 2009-01-21 秘密計算システム

Publications (2)

Publication Number Publication Date
CN101911153A CN101911153A (zh) 2010-12-08
CN101911153B true CN101911153B (zh) 2014-08-20

Family

ID=40901111

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980102192.4A Active CN101911153B (zh) 2008-01-21 2009-01-21 秘密计算系统、秘密计算方法、秘密计算装置

Country Status (4)

Country Link
US (1) US9300469B2 (zh)
EP (1) EP2242032B1 (zh)
CN (1) CN101911153B (zh)
WO (1) WO2009093603A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107851403A (zh) * 2015-07-22 2018-03-27 日本电信电话株式会社 秘密计算装置、其方法及程序

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5047198B2 (ja) * 2008-01-21 2012-10-10 日本電信電話株式会社 秘密計算システム、秘密計算方法、秘密計算装置、検証装置、およびプログラム
JP5526284B2 (ja) * 2011-03-04 2014-06-18 日本電信電話株式会社 代理計算システム、方法、依頼装置及びプログラム
JP2015108807A (ja) * 2013-10-23 2015-06-11 株式会社インテック データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法
JP6034927B1 (ja) * 2015-07-27 2016-11-30 日本電信電話株式会社 秘密計算システム、秘密計算装置、およびプログラム
WO2017038761A1 (ja) * 2015-08-31 2017-03-09 日本電気株式会社 秘密計算システム、秘密計算装置、および、秘密計算方法
CN112805769B (zh) * 2018-10-04 2023-11-07 日本电信电话株式会社 秘密s型函数计算系统、装置、方法及记录介质
CN109766705B (zh) * 2018-12-10 2021-03-19 北京链化未来科技有限公司 一种基于电路的数据验证方法、装置及电子设备

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4656633A (en) * 1985-03-15 1987-04-07 Dolby Laboratories Licensing Corporation Error concealment system
US5295188A (en) * 1991-04-04 1994-03-15 Wilson William J Public key encryption and decryption circuitry and method
DE19921122C1 (de) * 1999-05-07 2001-01-25 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Verschleiern eines Fehlers in einem codierten Audiosignal und Verfahren und Vorrichtung zum Decodieren eines codierten Audiosignals
US6834272B1 (en) * 1999-08-10 2004-12-21 Yeda Research And Development Company Ltd. Privacy preserving negotiation and computation
US6990468B1 (en) * 2000-06-19 2006-01-24 Xerox Corporation System, method and article of manufacture for cryptoserver-based auction
US7181017B1 (en) * 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7844496B2 (en) * 2003-05-05 2010-11-30 International Business Machines Corporation Method and system for processing a request of a customer
US7290150B2 (en) * 2003-06-09 2007-10-30 International Business Machines Corporation Information integration across autonomous enterprises
JP4006403B2 (ja) * 2004-01-21 2007-11-14 キヤノン株式会社 ディジタル署名発行装置
US7434898B2 (en) * 2004-03-31 2008-10-14 Matsushita Electric Industrial Co., Ltd. Computer system, computer program, and addition method
JP4666943B2 (ja) * 2004-04-23 2011-04-06 株式会社エヌ・ティ・ティ・ドコモ Idタグ、タグリーダ、idタグセキュリティシステム及びidタグ送信復元方法
US8132006B2 (en) * 2005-05-03 2012-03-06 Ntt Docomo, Inc. Cryptographic authentication and/or establishment of shared cryptographic keys, including, but not limited to, password authenticated key exchange (PAKE)
JP4818651B2 (ja) * 2005-07-13 2011-11-16 ルネサスエレクトロニクス株式会社 暗号化・復号化回路
WO2008048713A2 (en) * 2006-05-05 2008-04-24 President And Fellows Of Harvard College Practical secrecy-preserving, verifiably correct and trustworthy auctions
US7685115B2 (en) * 2006-07-21 2010-03-23 Mitsubishi Electronic Research Laboratories, Inc. Method for classifying private data using secure classifiers
US8526621B2 (en) * 2006-12-01 2013-09-03 President And Fellows Of Harvard College Method and apparatus for time-lapse cryptography
US8752032B2 (en) * 2007-02-23 2014-06-10 Irdeto Canada Corporation System and method of interlocking to protect software-mediated program and device behaviours
US8271796B2 (en) * 2008-05-12 2012-09-18 Telecommunications Research Laboratory Apparatus for secure computation of string comparators
US20100150349A1 (en) * 2008-12-12 2010-06-17 Electronics And Telecommunications Research Institute Method and system for performing quantum bit commitment protocol
EP2423904B1 (en) * 2009-04-24 2015-01-07 Nippon Telegraph And Telephone Corporation Secret sharing system, sharing apparatus, share management apparatus, acquisition apparatus, processing methods therefore, secret sharing method, program, and recording medium
US8311213B2 (en) * 2009-12-07 2012-11-13 Mitsubishi Electric Research Laboratories, Inc. Method for determining functions applied to signals
US8416955B2 (en) * 2009-12-07 2013-04-09 Mitsubishi Electric Research Laboratories, Inc. Method for determining functions applied to signals
US8539220B2 (en) * 2010-02-26 2013-09-17 Microsoft Corporation Secure computation using a server module

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CLAUDE CREPEAU等.Committed Oblivious Transfer and Private Multi-Party Computation.《LECTURE NOTES IN COMPUTER SCIENCE》.1995,第963卷第110-123页. *
HOSSEIN GHODOSI等.Comments on the "m out of n oblivious transfer".《INFORMATION PROCESSING LETTERS》.2006,第97卷(第4期),第153-155页. *
URARA SHINMYO等.Bunsan Server ni Motozuku Oblivious Transfer o Mochiita Denshi Shimon Gijutsu.《Proceedings of the 28th Symposium on Information Theory and Its Applications》.2005,第II卷705-708. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107851403A (zh) * 2015-07-22 2018-03-27 日本电信电话株式会社 秘密计算装置、其方法及程序

Also Published As

Publication number Publication date
EP2242032B1 (en) 2013-10-02
US9300469B2 (en) 2016-03-29
CN101911153A (zh) 2010-12-08
WO2009093603A1 (ja) 2009-07-30
EP2242032A4 (en) 2012-03-21
US20110040963A1 (en) 2011-02-17
EP2242032A1 (en) 2010-10-20

Similar Documents

Publication Publication Date Title
CN101911153B (zh) 秘密计算系统、秘密计算方法、秘密计算装置
JP5338668B2 (ja) 秘密情報分散システム、方法及びプログラム並びに伝送システム
JP4938766B2 (ja) プログラム難読化システム、プログラム難読化装置及びプログラム難読化方法
KR20020025630A (ko) 비밀 정보의 처리 장치, 프로그램 또는 시스템
CN110391900A (zh) 基于sm2算法的私钥处理方法、终端及密钥中心
EP2858006A1 (en) Memory device and memory system
CN110312054B (zh) 图像的加解密方法、及相关装置、存储介质
US11997075B1 (en) Signcrypted envelope message
CN107292134A (zh) 一种防止Android应用被反编译的应用加固方法及系统
US11431489B2 (en) Encryption processing system and encryption processing method
US20240097894A1 (en) Threshold key exchange
EP1914924A1 (en) Time apparatus, encrypting apparatus, decrypting apparatus, and encrypting/decrypting system
Vegh et al. Enhancing security in cyber-physical systems through cryptographic and steganographic techniques
CN109643504B (zh) 加密系统、加密方法以及计算机可读的存储介质
JPWO2011077819A1 (ja) 検証装置、秘密情報復元装置、検証方法、プログラム、及び秘密分散システム
KR101553986B1 (ko) 분산 데이터 저장, 복원 시스템 및 방법
CN105339995A (zh) 解密装置、解密能力提供装置、其方法、以及程序
CN111984985A (zh) 一种基于fpga硬件系统的hdl源码加密方法
Deshmukh et al. High capacity reversible data hiding in encrypted images using multi-MSB data hiding mechanism with elliptic curve cryptography
Adebayo et al. Data Privacy System Using Steganography and Cryptography
Lee Guideline for implementing cryptography in the federal government
CN113190859A (zh) 基于区块链的数据分级加密方法
JP7466791B2 (ja) 暗号化装置、復号装置、復号可能検証装置、暗号システム、暗号化方法、及び暗号化プログラム
US20240163093A1 (en) General access structure secret sharing using authentic garbled circuits
Singh et al. Security of Data with 3DES & Watermarking Algorithm

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant