CN103329185B - 隐匿积和计算方法、隐匿积和计算系统、计算装置 - Google Patents

隐匿积和计算方法、隐匿积和计算系统、计算装置 Download PDF

Info

Publication number
CN103329185B
CN103329185B CN201280006168.2A CN201280006168A CN103329185B CN 103329185 B CN103329185 B CN 103329185B CN 201280006168 A CN201280006168 A CN 201280006168A CN 103329185 B CN103329185 B CN 103329185B
Authority
CN
China
Prior art keywords
sub
centerdot
sigma
sent
calculate
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
CN201280006168.2A
Other languages
English (en)
Other versions
CN103329185A (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
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of CN103329185A publication Critical patent/CN103329185A/zh
Application granted granted Critical
Publication of CN103329185B publication Critical patent/CN103329185B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Complex Calculations (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

提供一种在通过三个子装置(计算装置)的协调计算来进行隐匿积和计算时,能够高速地进行计算且容易安装的方法。在子装置X执行子装置X随机数生成步骤、子装置X第1计算步骤以及子装置X第2计算步骤,子装置Y执行子装置Y随机数生成步骤、子装置Y第1计算步骤以及子装置Y第2计算步骤,子装置Z执行子装置Z随机数生成步骤、子装置Z第1计算步骤以及子装置Z第2计算步骤的隐匿计算方法中,对称地构成各个子装置的计算处理。

Description

隐匿积和计算方法、隐匿积和计算系统、计算装置
技术领域
本发明涉及通过秘密分散对数据进行隐匿的同时进行数据处理尤其是进行乘法运算以及积和运算的隐匿积和计算方法、隐匿积和计算系统、计算装置以及它们的程序。
背景技术
在顾客信息或经营信息等所谓的敏感信息的管理和应用中,随着管理信息的多样化和云计算等的信息处理基础的变化,安全性对策和个人隐私的考虑成为更重要的课题。其中,最近通过将信息分散在多个地点来防止信息泄露,推进秘密分散技术的普及。进一步,关于不复原被分散的信息而导出所指定的计算结果的隐匿函数计算(多子装置(party)协议),看准实用化而推进开发。秘密分散技术作为信息的保管时的安全性对策是有效的,但利用时一般需要复原,所以泄露风险高。鉴于这样的泄露风险的存在,隐匿函数计算能够代替原来的输入值而将被分散的信息作为计算的输入,在计算过程中也一概不需要复原原来的输入值,所以被称为在信息的利用时也维持了秘密分散技术的功能的更高的安全性技术。
作为对信息进行隐匿的同时进行乘法运算以及积和运算的现有技术,关于乘法运算,举出非专利文献1的乘法运算协议,且关于积和运算,举出乘法运算协议和加法运算协议的复合利用。这些协议为,不复原被分散的输入值,而是通过3个子装置(3个计算主体)的协调计算来导出算术/逻辑运算的结果的3个子装置隐匿函数计算协议。在3个子装置隐匿函数计算协议中,将数据作为小于某一确定的素数p的自然数来处理。在对数据进行隐匿时,若将该数据设为a,则将a分散为满足以下的条件的三个。
a=a0+a1+a2mod p
实际上生成随机数a0、a1,且设为a2=a-a0-a1。然后,对3个子装置X、Y、Z,对X发送(a0、a1)、对Y发送(a1、a2)、对Z发送(a2、a0)。于是,由于a1、a2为随机数,所以X、Y、Z中的任一个子装置也都不具有a的信息, 但若聚集了任何2个子装置则能够复原a。
由于隐匿为加法性的分散,所以从可换性,加上分散值之后复原与复原之后加上的结果相等。即,加法运算以及常数倍能够以分散的状态无通信地进行。并且,对其进行乘法运算则能够构成逻辑电路,能够执行任何计算。由于该乘法运算需要通信以及随机数生成,所以成为3个子装置隐匿函数计算的瓶颈。
现有技术文献 
非专利文献 
非专利文献1:千田浩司、濱田浩気、五十嵐大、高橋克己、「軽量検証可能3パーティ秘匿関数計算の再考」、CSS2010、2010年
发明内容
发明要解决的课题
在3个子装置隐匿函数计算中,由于乘法运算、积和计算需要通信以及随机数生成,所以成为计算处理中的瓶颈。
具体而言,在现有的乘法运算协议中,需要两回合的通信次数。此外,由于3个子装置的每个的计算量·通信量不对称,所以需要按每个子装置安装不同的程序。因此,安装成本高。此外,计算量·通信量最重的部分成为瓶颈。此外,积和计算一般通信量大。
本发明的目的在于,提供一种能够高速地进行乘法运算、积和计算且能够容易安装的隐匿积和计算方法、隐匿积和计算系统、计算装置以及它们的程序。
用于解决课题的手段
本发明的隐匿积和计算方法在用于通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算来进行数据列A0=(a00,…,a0na0-1)、A1=(a10,…,a1na1-1)以及A2=(a20,…,a2na2-1)与数据列B0=(b00,…,b0nb0-1)、B1=(b10,…,b1nb1-1)以及B2=(b20,…,b2nb2-1)的积和计算
[数1]
Σ i 0 , j 0 ( e 00 i 0 , j 0 · a 0 i 0 · b 0 j 0 ) + Σ i 0 , j 1 ( e 01 i 0 , j 0 · a 0 i 0 · b 1 j 1 ) + Σ i 1 , j 0 ( e 10 i 1 , j 0 · a 1 i 1 · b 0 j 0 )
+ Σ i 1 , j 1 ( e 11 i 1 , j 1 · a 1 i 1 · b 1 j 1 ) + Σ i 1 , j 2 ( e 12 i 1 , j 2 · a 1 i 1 · b 2 j 2 ) + Σ i 2 , j 1 ( e 21 i 2 , j 1 · a 2 i 2 · b 1 j 1 )
+ Σ i 2 , j 2 ( e 22 i 2 , j 2 · a 2 i 2 · b 2 j 2 ) + Σ i 2 , j 0 ( e 20 i 2 , j 0 · a 2 i 2 · b 0 j 0 ) + Σ i 0 , j 2 ( e 02 i 0 , j 2 · a 0 i 0 · b 2 j 2 )
(i0=0,…,na0-1、i1=0,…,na1-1、i2=0,…,na2-1、j0=0,…,nb0-1、j1=0,…,nb1-1、j2=0,…,nb2-1,其中,na0、na1、na2、nb0、nb1、nb2为自然数)中使用,且执行子装置X随机数生成步骤、子装置X第1计算步骤、子装置X第2计算步骤、子装置Y随机数生成步骤、子装置Y第1计算步骤、子装置Y第2计算步骤、子装置Z随机数生成步骤、子装置Z第1计算步骤以及子装置Z第2计算步骤。
在处理时,对子装置X输入数据列A0、A1、B0、B1,对子装置Y输入数据列A1、A2、B1、B2,对子装置Z输入数据列A2、A0、B2、B0
在子装置X随机数生成步骤中,子装置X生成数rX并发送到子装置Y。
在子装置X第1计算步骤中,子装置X通过
[数2]
c X = Σ i 0 , j 1 ( e 01 i 0 , j 1 · a 0 i 0 · b 1 j 1 ) + Σ i 1 , j 0 ( e 10 i 1 , j 0 · a 1 i 1 · b 0 j 0 ) + r X
计算cX(将e01i0,j1和e10i1,j0设为任意的数),并发送到子装置Z。
在子装置X第2计算步骤中,子装置X从子装置Z接收数rZ、从子装置Y接收cY,并将c0和c1分别通过
[数3]
c 0 = Σ i 0 , j 0 ( e 00 i 0 , j 0 · a 0 i 0 · b 0 j 0 ) + c X - r Z
c 1 = Σ i 1 , j 1 ( e 11 i 1 , j 1 · a 1 i 1 · b 1 j 1 ) + c Y - r X
计算并输出(将e00i0,j0和e11i1,j1设为任意的数)。
在子装置Y随机数生成步骤中,子装置Y生成数rY并发送到子装置Z。
在子装置Y第1计算步骤中,子装置Y通过
[数4]
c Y = Σ i 1 , j 2 ( e 12 i 1 , j 2 · a 1 i 1 · b 2 j 2 ) + Σ i 2 , j 1 ( e 21 i 2 , j 1 · a 2 i 2 · b 1 j 1 ) + r Y
计算cY(将e12i1,j2和e21i2,j1设为任意的数),并发送到子装置X。
在子装置Y第2计算步骤中,子装置Y从子装置X接收数rX、从子装置Z接收cZ,并将c1和c2分别通过
[数5]
c 1 = Σ i 1 , j 1 ( e 11 i 1 , j 1 · a 1 i 1 · b 1 j 1 ) + c Y - r X
c 2 = Σ i 2 , j 2 ( e 22 i 2 , j 2 · a 2 i 2 · b 2 j 2 ) + c Z - r Y
计算并输出(将e22i2,j2设为任意的数)。
在子装置Z随机数生成步骤中,子装置Z生成数rZ并发送到子装置X
在子装置Z第1计算步骤中,子装置Z通过
[数6]
c Z = Σ i 2 , j 0 ( e 20 i 2 , j 0 · a 2 i 2 · b 0 j 0 ) + Σ i 0 , j 2 ( e 02 i 0 , j 2 · a 0 i 0 · b 2 j 2 ) + r Z
计算cZ(将e20i2,j0和e02i0,j2设为任意的数),并发送到子装置Y。
在子装置Z第2计算步骤中,子装置Z从子装置Y接收数rY、从子装置X接收cX,并将c0和c2分别通过
[数7]
c 0 = Σ i 0 , j 0 ( e 00 i 0 , j 0 · a 0 i 0 · b 0 j 0 ) + c X - r Z
c 2 = Σ i 2 , j 2 ( e 22 i 2 , j 2 · a 2 i 2 · b 2 j 2 ) + c Z - r Y
计算并输出。 
发明效果
根据本发明的隐匿积和计算方法、隐匿积和计算系统、计算装置以及它们的程序,能够高速地进行乘法运算、积和计算,且因各子装置的处理对称所以能够容易安装程序。
附图说明
图1是表示隐匿积和计算系统100的结构例的图。
图2是表示隐匿积和计算系统100的处理流程例的图。
图3是表示隐匿积和计算系统100、200的各子装置的内部结构例的图。
图4是表示隐匿积和计算系统200的结构例的图。
图5是表示隐匿积和计算系统200的处理流程例的图。
图6是表示隐匿积和计算系统300的结构例的图。
图7是表示隐匿积和计算系统300的处理流程例的图。
图8是表示隐匿积和计算系统300、400、500的各子装置的内部结构例的图。
图9是表示隐匿积和计算系统400、500的结构例的图。
图10是表示隐匿积和计算系统400、500的处理流程例的图。
图11是表示隐匿积和计算系统600的结构例的图。
图12是表示隐匿积和计算系统600的处理流程例的图。
图13是表示隐匿积和计算系统600、700、800的各子装置的内部结构例的图。
图14是表示隐匿积和计算系统700、800的结构例的图。
图15是表示隐匿积和计算系统700、800的处理流程例的图。
图16是表示隐匿积和计算系统900、910、920的结构例的图。
图17是表示隐匿积和计算系统900、910、920的处理流程例的图。
具体实施方式
以下,详细说明本发明的实施方式。
实施例1
图1表示隐匿积和计算系统100的结构例,图2表示其处理流程例。隐匿积和计算系统100包括作为分别进行对称的计算处理的计算装置的子装置(party)X、子装置(party)Y、子装置(party)Z。
本发明的隐匿积和计算通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算,进行数据列A0=(a00,…,a0na0-1)、A1=(a10,…,a1na1-1)以及A2=(a20,…,a2na2-1)与数据列B0=(b00,…,b0nb0-1)、B1=(b10,…,b1nb1-1)以及B2=(b20,…,b2nb2-1)的积和计算。na0、na1、na2、nb0、nb1、nb2分别为自然数。
如图3所示,各子装置包括随机数生成部件101、第1计算部件102以及 第2计算部件103。图3中,将自子装置表示为P、将他子装置表示为P、P+。具体而言,在自子装置为X时,P为子装置Z、P+为子装置Y,在自子装置为Y时,P为子装置X、P+为子装置Z,在自子装置为Z时,P为子装置Y、P+为子装置X。另外,在本说明书中,将这样从哪个子装置看,自子装置P与他子装置P、P+的关系都成为相同的情况称为“对称”。此外,对此时的处理表现为“对称的处理”或者“处理对称”。
以下,具体说明各子装置的协调计算处理的内容。首先,对子装置X输入数据列A0、A1、B0、B1,对子装置Y输入数据列A1、A2、B1、B2,对子装置Z输入数据列A2、A0、B2、B0(S1)。
接着,子装置X进行以下的处理。首先,随机数生成部件101生成随机数rX并发送到子装置Y(S2-1)。接着,第1计算部件102通过
[数8]
c X = Σ i 0 , j 1 ( e 01 i 0 , j 1 · a 0 i 0 · b 1 j 1 ) + Σ i 1 , j 0 ( e 10 i 1 , j 0 · a 1 i 1 · b 0 j 0 ) + r X
计算cX,并发送到子装置Z(S2-2)。这里,i0=0,…,na0-1、i1=0,…,na1-1、j0=0,…,nb0-1、j1=0,…,nb1-1,且e01i0,j1和e10i1,j0为任意的数。然后,第2计算部件103从子装置Z接收随机数rZ、从子装置Y接收cY,并将c0和c1分别通过
[数9]
c 0 = Σ i 0 , j 0 ( e 00 i 0 , j 0 · a 0 i 0 · b 0 j 0 ) + c X - r Z
c 1 = Σ i 1 , j 1 ( e 11 i 1 , j 1 · a 1 i 1 · b 1 j 1 ) + c Y - r X
计算并输出(S3)。这里,e00i0,j0和e11i1,j1为任意的数。
此外,子装置Y进行以下的处理。首先,随机数生成部件101生成随机数rY并发送到子装置Z(S4-1)。接着,第1计算部件102通过
[数10]
c Y = Σ i 1 , j 2 ( e 12 i 1 , j 2 · a 1 i 1 · b 2 j 2 ) + Σ i 2 , j 1 ( e 21 i 2 , j 1 · a 2 i 2 · b 1 j 1 ) + r Y
计算cY,并发送到子装置X(S4-2)。这里,i2=0,…,na2-1、j2=0,…,nb2-1,且e12i1,j2和e21i2,j1为任意的数。然后,第2计算部件103从子装置X接收随机数rX、从子装置Z接收cZ,并将c1和c2分别通过
[数11]
c 1 = Σ i 1 , j 1 ( e 11 i 1 , j 1 · a 1 i 1 · b 1 j 1 ) + c Y - r X
c 2 = Σ i 2 , j 2 ( e 22 i 2 , j 2 · a 2 i 2 · b 2 j 2 ) + c Z - r Y
计算并输出(S5)。这里,e22i2,j2为任意的数。
此外,子装置Z进行以下的处理。首先,随机数生成部件101生成随机数rZ并发送到子装置X(S6-1)。接着,第1计算部件102通过
[数12]
c Z = Σ i 2 , j 0 ( e 20 i 2 , j 0 · a 2 i 2 · b 0 j 0 ) + Σ i 0 , j 2 ( e 02 i 0 , j 2 · a 0 i 0 · b 2 j 2 ) + r Z
计算cZ,并发送到子装置Y(S6-2)。这里,e20i2,j0和e02i0,j2为任意的数。
然后,第2计算部件103从子装置Y接收随机数rY、从子装置X接收cX,并将c0和c2分别通过
[数13]
c 0 = Σ i 0 , j 0 ( e 00 i 0 , j 0 · a 0 i 0 · b 0 j 0 ) + c X - r Z
c 2 = Σ i 2 , j 2 ( e 22 i 2 , j 2 · a 2 i 2 · b 2 j 2 ) + c Z - r Y
计算并输出(S7)。另外,S2-1、2和S4-1、2和S6-1、2可进行并列处理,S3和S5和S7也可进行并列处理。
然后,通过取从子装置X、Y、Z输出的c0、c1、c2的总和,能够获得
[数14]
c o + c 1 + c 2 =
Σ i 0 , j 0 ( e 00 i 0 , j 0 · a 0 i 0 · b 0 j 0 ) + Σ i 0 , j 1 ( e 01 i 0 , j 0 · a 0 i 0 · b 1 j 1 ) + Σ i 1 , j 0 ( e 10 i 1 , j 0 · a 1 i 1 · b 0 j 0 )
+ Σ i 1 , j 1 ( e 11 i 1 , j 1 · a 1 i 1 · b 1 j 1 ) + Σ i 1 , j 2 ( e 12 i 1 , j 2 · a 1 i 1 · b 2 j 2 ) + Σ i 2 , j 1 ( e 21 i 2 , j 1 · a 2 i 2 · b 1 j 1 )
+ Σ i 2 , j 2 ( e 22 i 2 , j 2 · a 2 i 2 · b 2 j 2 ) + Σ i 2 , j 0 ( e 20 i 2 , j 0 · a 2 i 2 · b 0 j 0 ) + Σ i 0 , j 2 ( e 02 i 0 , j 2 · a 0 i 0 · b 2 j 2 )
这样的积和计算结果。另外,在以上的处理中,使用随机数的部分也可以使用散列值等来代替。
比较本发明的方法和非专利文献1的方法的效果。非专利文献1中的计算量的大部分为用于随机数生成的计算量以及用于不能准备物理的安全通道的 情况下的通信的加密·解密的计算量。由于用于加密·解密的计算量与通信量一致,所以只要观察生成的随机数的数目和通信量就能够评价效率。
在重复非专利文献1的乘法运算之后进行加法运算的方法的情况下,生成的随机数的数目、通信量与输入数据列的元素的个数成比例。另一方面,在本发明的方法的情况下,子装置X、Y、Z都可以是生成的随机数为1个、发送到他子装置的数据为2个。此外,由于子装置X、Y、Z的处理成为对称,所以能够对全部子装置安装共同的程序,能够抑制安装成本。
实施例2
实施例2为实施例1的具体例,是na0=na1=na2=nb0=nb1=nb2=n(n为1以上的整数)、e00=e01=e10=e11=e12=e21=e22=e20=e02=1的情况。图4表示本实施例的隐匿积和计算系统200的结构例,图5表示其处理流程例。隐匿积和计算系统200包括子装置X、子装置Y、子装置Z、数据列分解供给部210以及输出部220。与实施例1同样地,如图3所示那样,各子装置包括随机数生成部件101、第1计算部件102以及第2计算部件103。
隐匿积和计算系统200通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算,对由小于素数p的自然数的元素ai、bi(i=0,…,n-1)构成的两个数据列A=(a0,…,an-1)、B=(b0,…,bn-1),隐匿数据列的内容的状态进行积和计算
[数15]
Σ i = 0 n - 1 a i · b i
(在n=1的情况下,a和b的乘法运算)。
具体而言,首先,数据列分解供给部210将被输入的数据列A、B的各元素ai、bi分解为满足ai=a0i+a1i+a2i mod p、bi=b0i+b1i+b2i mod p(a0i、a1i、b0i、b1i为随机数、p为素数)的条件式,对子装置X提供数据列A0=(a00,…,a0n-1)、数据列A1=(a10,…,a1n-1)、数据列B0=(b00,…,b0n-1)以及数据列B1=(b10,…,b1n-1),对子装置Y提供数据列A1、数据列A2=(a20,…,a2n-1)、数据列B1以及数据列B2=(b20,…,b2n-1),对子装置Z提供数据列A2、数据列A0、数据列B2以及数据列B0(S11)。
接着,子装置X进行以下的处理。首先,随机数生成部件101生成随机数rX并发送到子装置Y(S12-1)。接着,第1计算部件102通过
[数16]
c X = Σ i ( a 0 i · b 1 i + a 1 i · b 0 i ) + r X
计算cX,并发送到子装置Z(S12-2)。接着,第2计算部件103从子装置Z接收随机数rz、从子装置Y接收cY,并将c0和c1分别通过
[数17]
c 0 = Σ i ( a 0 i · b 0 i ) + c X - r Z
c 1 = Σ i ( a 1 i · b 1 i ) + c Y - r X
计算并输出(S13)。
此外,子装置Y进行以下的处理。首先,随机数生成部件101生成随机数rY并发送到子装置Z(S14-1)。接着,第1计算部件102通过
[数18]
c Y = Σ i ( a 1 i · b 2 i + a 2 i · b 1 i ) + r Y
计算cY,并发送到子装置X(S14-2)。接着,第2计算部件103从子装置X接收随机数rX、从子装置Z接收cZ,并将c1和c2分别通过
[数19]
c 1 = Σ i ( a 1 i · b 1 i ) + c Y - r X
c 2 = Σ i ( a 2 i · b 2 i ) + c Z - r Y
计算并输出(S15)。
此外,子装置Z进行以下的处理。首先,随机数生成部件101生成随机数rZ并发送到子装置X(S16-1)。接着,第1计算部件102通过
[数20]
c Z = Σ i ( a 2 i · b 0 i + a 0 i · b 2 i ) + r Z
计算cZ,并发送到子装置Y(S16-2)。接着,第2计算部件103从子装置Y接收随机数rY、从子装置X接收cX,并将c0和c2分别通过
[数21]
c 0 = Σ i ( a 0 i · b 0 i ) + c X - r Z
c 2 = Σ i ( a 2 i · b 2 i ) + c Z - r Y
计算并输出(S17)。另外,S12-1、2和S14-1、2和S16-1、2能够进行并列处理,S13和S15和S17也能够进行并列处理。
然后,输出部220计算从子装置X、Y、Z输出的c0、c1、c2的总和(c0+c1+c2)并输出。
由于[数22]
c 0 + c 1 + c 2 = Σ i ( a 0 i · b 0 i + a 0 i · b 1 i + a 1 i · b 0 i )
+ Σ i ( a 1 i · b 1 i + a 1 i · b 2 i + a 2 i · b 1 i )
+ Σ i ( a 2 i · b 2 i + a 2 i · b 0 i + a 0 i · b 2 i )
= Σ i ( a 0 i + a 1 i + a 2 i ) ( b 0 i + b 1 i + b 2 i )
= Σ i a i · b i
,所以可知能够准确地进行积和计算(在i=1的情况下,a和b的乘法运算)。
另外,在以上的处理中,使用随机数的部分也可以使用散列值等来代替。此外,关于数据列分解供给部210、输出部220,既可以与各子装置不同的其他的装置具备,也可以由对应于各子装置的装置中的任一个以上具备。
比较本发明和非专利文献1的方法的效果。关于乘法运算,在非专利文献1的方法中,通信次数为2回合(回合为子装置X、Y、Z的并列处理中等待他子装置的处理的次数),子装置X生成的随机数为1个、发送的数据为4个,子装置Y、Z生成的随机数为0个、发送的数据为1个。另一方面,在本发明中,通信次数为1回合,子装置X、Y、Z生成的随机数都是1个、发送的数据都是2个。即,回合数成为一半。此外,虽然生成的随机数和发送的数据的个数相同,但由于子装置X、Y、Z的处理成为对称,所以可以说瓶颈减小。
关于积和计算,在重复非专利文献1的乘法运算之后进行加法运算的方法的情况下,生成的随机数的数、通信量与输入数据列的元素的个数成比例,但在本发明的方法的情况下,子装置X、Y、Z生成的随机数都为1个、对他子装置发送的数据可以为2个。并且,在任何计算的情况下,子装置X、Y、 Z的处理都对称,所以能够抑制安装成本。
实施例3
实施例3是在进行积和计算的实施例1、2中加入了不当检测功能的结构。图6表示隐匿积和计算系统300的结构例,图7表示其处理流程例。隐匿积和计算系统300包括作为进行分别对称的计算处理的计算装置的子装置X、子装置Y、子装置Z。
本发明的隐匿积和计算通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算来对q=0,…,m-1的共m组(m为1以上的整数)(m为2以上的情况下并列)进行数据列Aq_0=(a0q_0,…,a0q_na0-1)、Aq_1=(a1q_0,…,a1q_na1-1)以及Aq_2=(a2q_0,…,a2q_na2-1)与数据列Bq_0=(b0q_0,…,b0q_nb0-1)、Bq_1=(b1q_0,…,b1q_nb1-1)以及Bq_2=(b2q_0,…,b2q_nb2-1)的积和计算。na0、na1、na2、nb0、nb1、nb2分别为自然数。
如图8所示,各子装置包括第1随机数生成部件301、第1计算部件302、第2计算部件303、第2随机数生成部件304、第3计算部件305、第4计算部件306以及不当检测部件307。在图8中,设为任一个所述计算装置为子装置P时,在子装置P为子装置X的情况下,子装置P对应子装置Z、子装置P+对应子装置Y、符号0p、1p、2p分别对应0、1、2,在子装置P为子装置Y的情况下,子装置P对应子装置X、子装置P+对应子装置Z、符号0p、1p、2p分别对应1、2、0,在子装置P为子装置Z的情况下,子装置P对应子装置Y、子装置P+对应子装置X、符号0p、1p、2p分别对应2、0、1。
以下,具体说明各子装置的协调计算处理的内容。S21~S27为相当于实施例1的积和计算处理,S28~S39为不当检测处理。另外,设为子装置X和Y预先共有随机数sq_Z、子装置Y和Z预先共有随机数sq_X、子装置Z和X预先共有随机数sq_Y。首先,对子装置X输入数据列Aq_0、Aq_1、Bq_0、Bq_1,对子装置Y输入数据列Aq_1、Aq_2、Bq_1、Bq_2,对子装置Z输入数据列Aq_2、Aq_0、Bq_2、Bq_0(S21)。
接着,子装置X进行以下的处理。首先,第1随机数生成部件301生成随机数rq_X并发送到子装置Y(S22-1)。接着,第1计算部件302通过
[数23]
c q _ X = Σ q _ i 0 , q _ j 1 ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 0 ( e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 · b 0 q _ j 1 ) + r q _ X
计算cq_X,并发送到子装置Z(S22-2)。这里,设为i0=0,…,na0-1、i1=0,…,na1-1、j0=0,…,nb0-1、j1=0,…,nb1-1,且e01q_i0,q_j1和e10q_i1,q_j0为任意的数。接着,第2计算部件303从子装置Z接收随机数rq_z、从子装置Y接收cq_Y,并将cq_0和cq_1分别通过
[数24]
c q _ 0 = Σ q _ i 0 , q _ j 0 ( e 00 q _ i 0 , q _ j 0 · a 0 q _ i 0 · b 0 q _ j 0 ) + c q _ X - r q _ Z
c q _ 1 = Σ q _ i 1 , q _ j 1 ( e 11 q _ i 1 , q _ j 1 · a 1 q _ i 1 · b 1 q _ j 1 ) + c q _ Y - r q _ X
计算(S23)。这里,e00q_i0,q_j0、e11q_i1,q_j1为任意的数。
此外,子装置Y进行以下的处理。首先,随机数生成部件301生成随机数rq_Y并发送到子装置Z(S24-1)。接着,第1计算部件302通过
[数25]
c q _ Y = Σ q _ i 1 , q _ j 2 ( e 12 q _ i 1 , q _ j 2 · a 1 q _ i 1 · b 2 q _ j 2 ) + Σ q _ i 2 , q _ j 1 ( e 21 q _ i 2 , q _ j 1 · a 2 q _ i 2 · b 1 q _ j 1 ) + r q _ Y
计算cq_Y,并发送到子装置X(S24-2)。这里,设为i2=0,…,na2-1、j2=0,…,nb2-1,e12q_i1,q_j2和e21q_i2,q_j1为任意的数。接着,第2计算部件303从子装置X接收随机数rq_X、从子装置Z接收cq_Z,并将cq_1和cq_2分别通过
[数26]
c q _ 1 = Σ q _ i 1 , q _ j 1 ( e 11 q _ i 1 , q _ j 1 · a 1 q _ i 1 · b 1 q _ j 1 ) + c q _ Y - r q _ X
c q _ 2 = Σ q _ i 2 , q _ j 2 ( e 22 q _ i 2 , q _ j 2 · a 2 q _ i 2 · b 2 q _ j 2 ) + c q _ Z - r q _ Y
计算(S25)。这里,e22q_i2,q_j2为任意的数。
此外,子装置Z进行以下的处理。首先,随机数生成部件301生成随机数rq_Z并发送到子装置X(S26-1)。接着,第1计算部件302通过
[数27]
c q _ Z = Σ q _ i 2 , q _ j 0 ( e 20 q _ i 2 , q _ j 0 · a 2 q _ i 2 · b 0 q _ j 0 ) + Σ q _ i 0 , q _ j 2 ( e 02 q _ i 0 , q _ j 2 · a 2 q _ i 1 · b 0 q _ i 0 ) + r q _ Z
计算cq_Z,并发送到子装置Y(S26-2)。这里,e20q_i2,q_j0和e02q_i0,q_j2为任意的乘数。接着,第2计算部件303从子装置Y接收随机数rq_Y、从子装置X接收cq_X,并将cq_0和cq_2分别通过
[数28]
c q _ 0 = Σ q _ i 0 , q _ j 0 ( e 00 q _ i 0 , q _ j 0 · a 0 q _ i 0 · b 0 q _ j 0 ) + c q _ X - r q _ Z
c q _ 2 = Σ q _ i 2 , q _ j 2 ( e 22 q _ i 2 , q _ j 2 · a 2 q _ i 2 · b 2 q _ j 2 ) + c q _ Z - r q _ Y
计算(S27)。另外,S22-1、2和S24-1、2和S26-1、2能够进行并列处理,S23和S25和S27也能够进行并列处理。
接着S21~S27的处理,各子装置如下进行不当检测处理。
说明子装置X的处理。首先,第2随机数生成部件304生成随机数列(αY1q_0,…,αY1q_na1-1)以及随机数ρX而发送到子装置Y,生成随机数列(αZ0q_0,…,αZ0q_na0-1)而发送到子装置Z(S28)。接着,第3计算部件305计算(αZ0q_0-sq_Z·a0q_0,…,αZ0q_na0-1-sq_Z·a0q_na0-1)而发送到子装置Y,从子装置Y接收随机数列(αX1q_0,…,αX1q_na1-1)、从子装置Z接收随机数列(αX0q_0,…,αX0q_na0-1),并计算(αY1q_0-sq_Y·a1q_0,…,αY1q_na1-1-sq_Y·a1q_na1-1)以及
[数29]
γ X = Σ i 0 , j 1 , q ( e 01 q _ i 0 , q _ j 1 · αX 0 q _ i 0 · b 1 q _ j 1 ) + Σ i 1 , j 0 , q ( e 10 q _ i 1 , q _ j 0 · αX 1 q _ i 1 · b 0 q _ j 0 ) + ρ X
而发送到子装置Z(S29)。接着,第4计算部件306从子装置Y接收(αZ2q_0-sq_Z·a2q_0,…,αZ2q_na2-1-sq_Z·a2q_na2-1)、从子装置Z接收ρZ,并计算
[数30]
γ Z ′ = Σ i 2 , j 0 , q { e 20 q _ i 2 , q _ j 0 · ( αZ 2 q _ i 2 - s q _ Z · a 2 q _ i 2 ) · b 0 q _ j 0 - s q _ Z · r q _ Z } + ρ Z
而发送到子装置Y(S30)。然后,不当检测部件307从子装置Y接收γY、从子装置Z接收γY′ 和(αY2q_0-sq_Y·a2q_0,…,αY2q_na2-1-sq_Y·a2q_na2-1),并计算
[数31]
Σ i 2 , j 1 , q { e 21 q _ i 2 , q _ j 1 · ( αY 2 q _ i 2 - s q _ Y · a 2 q _ i 2 ) · b 1 q _ j 1 + s q _ Y · c q _ Y } - γ Y + γ Y ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_0和cq_1(S31)。
接着,说明子装置Y的处理。首先,第2随机数生成部件304生成随机 数列(αZ2q_0,…,αZ2q_na2-1)以及随机数ρY而发送到子装置Z,生成随机数列(αX1q_0,…,αX1q_na1-1)而发送到子装置X(S32)。接着,第3计算部件305计算(αX1q_0-sq_X·a1q_0,…,αX1q_na1-1-sq_X·a1q_na1-1)而发送到子装置Z,从子装置X接收随机数列(αY1q_0,…,αY1q_na1-1)、从子装置Z接收随机数列(αY2q_0,…,αY2q_na2-1),并计算(αZ2q_0-sq_Z·a2q_0,…,αZ2q_na2-1-sq_Z·a2q_na2-1)以及
[数32]
γ Y = Σ i 1 , j 2 , q ( e 12 q _ i 1 , q _ j 2 · αY 1 q _ i 1 · b 2 q _ j 2 ) + Σ i 2 , j 1 , q ( e 21 q _ i 2 , q _ j 1 · αY 2 q _ i 2 · b 1 q _ j 1 ) + ρ Y
而发送到子装置X(S33)。接着,第4计算部件306从子装置X接收随机数ρ X、从子装置Z接收(αX0q_0-sq_X·a0q_0,…,αX0q_na0-1-sq_X·a0q_na0-1),并计算
[数33]
γ X ′ = Σ i 0 , j 1 , q { e 01 q _ i 0 , q _ j 1 · ( α X 0 q _ i 0 - s q _ X · a 0 q _ i 0 ) b 1 q _ j 1 - s q _ X · r q _ X } + ρ X
而发送到子装置Z(S34)。然后,不当检测部件307从子装置X接收γZ′和(αZ0q_0-sq_Z·a0q_0,…,αZ0q_na0-1-sq_Z·a0q_na0-1)、从子装置Z接收γ Z,并计算
[数34]
Σ i 2 , j 2 , q { e 02 q _ i 0 , q _ j 2 · ( αZ 0 q _ i 0 - s q _ Z · a 0 q _ i 0 ) · b 2 q _ j 2 + s q _ Z · c q _ Z } - γ Z + γ Z ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_1和cq_2(S35)。
接着,说明子装置Z的处理。首先,第2随机数生成部件304生成随机数列(αX0q_0,…,αX0q_na0-1)以及随机数ρZ而发送到子装置X,生成随机数列(αY2q_0,…,αY2q_na2-1)而发送到子装置Y(S36)。接着,第3计算部件305计算(αY2q_0-sq_Y·a2q_0,…,αY2q_na2-1-sq_Y·a2q_na2-1)而发送到子装置X,从子装置X接收随机数列(αZ0q_0,…,αZ0q_na0-1)、从子装置Y接收随机数列(αZ2q_0,…,αZ2q_na2-1),并计算(αX0q_0-sq_X·a0q_0,…,αX0q_na0-1-sq_X·a0q_na0-1)以及
[数35]
γ Z = Σ i 2 , j 0 , q ( e 20 q _ i 2 , q _ j 0 · αZ 2 q _ i 2 · b 0 q _ j 0 ) + Σ i 0 , j 2 , q ( e 02 q _ i 0 , q _ j 2 · αZ 0 q _ i 0 · b 2 q _ j 2 ) + ρ Z
而发送到子装置Y(S37)。接着,第4计算部件306从子装置X接收(αY1q_0-sq_Y·a1q_0,…,αY1q_na1-1-sq_Y·a1q_na1-1)、从子装置Y接收随机数ρY,并计算
[数36]
γ Y ′ = Σ i 1 , j 2 , q { e 12 q _ i 1 , q _ j 2 · ( α Y 1 q _ i 1 - s q _ Y · a 1 q _ i 1 ) b 2 q _ j 2 - s q _ Y · r q _ Y } + ρ Y
而发送到子装置X(S38)。然后,不当检测部件307从子装置X接收γX、从子装置Y接收γX′和(αX1q_0-sq_X·a1q_0,…,αX1q_na1-1-sq_X·a1q_na1-1),并计算
[数37]
Σ i 1 , j 0 , q { e 10 q _ i 1 , q _ j 0 · ( αX 1 q _ i 1 - s q _ X · a 1 q _ i 1 ) · b 0 q _ j 0 + s q _ X · c q _ X } - γ X + γ X ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_2和cq_0(S39)。
然后,在没有不当检测的情况下,通过取从子装置X、Y、Z输出的cq_0、cq_1、cq_2的总和,从而能够获得
[数38]
c q _ 0 + c q _ 1 + c q _ 2 =
Σ q _ i 0 , q _ j 0 ( e 00 q _ i 0 , q _ j 0 · a 0 q _ i 0 · b 0 q _ j 0 ) + Σ q _ i 0 , q _ j 1 ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · b 1 q _ j 1 )
+ Σ q _ i 1 , q _ j 0 ( e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 · b 0 q _ j 0 ) + Σ q _ i 1 , q _ j 1 ( e 11 q _ i 1 , q _ j 1 · a 1 q _ i 1 · b 1 q _ j 1 )
+ Σ q _ i 1 , q _ j 2 ( e 12 q _ i 1 , q _ j 2 · a 1 q _ i 1 · b 2 q _ j 2 ) + Σ q _ i 2 , q _ j 1 ( e 21 q _ i 2 , q _ j 1 · a 2 q _ i 2 · b 1 q _ j 1 )
+ Σ q _ i 2 , q _ j 2 ( e 22 q _ i 2 , q _ j 2 · a 2 q _ i 2 · b 2 q _ j 2 ) + Σ q _ i 2 , q _ j 0 ( e 20 q _ i 2 , q _ j 0 · a 2 q _ i 2 · b 0 q _ j 0 )
+ Σ q _ i 0 , q _ j 2 ( e 02 q _ i 0 , q _ j 2 · a 2 q _ i 2 · b 0 q _ i 0 )
这样的积和计算结果。另外,在以上的处理中,使用随机数的部分也可以使用散列值等来代替。
本发明的不当检测对1回的乘法运算、积和运算或者并列执行的乘法运算、积和运算进行1回。此外,在不当检测功能中的各P+发送的γP+中包含的αP+0q_i0、αP+1q_i1、αP+2q_i2(其中,q=0,…,m-1)为对各aq_i乘以不同 的随机数的数的断片。因此,若至少有一个不当的值,则成为P+不能预知的随机数。因此,若法为素数p,则在存在不当的情况下与积和计算处理中的不当对得上的概率只是1/(p-1)。
实施例4
实施例4是实施例3的具体例,是na0=na1=na2=nb0=nb1=nb2=n(n为1以上的整数)、e00=e01=e10=e11=e12=e21=e22=e20=e02=1的情况。图9表示本实施例的隐匿积和计算系统400的结构例,图10表示其处理流程例。隐匿积和计算系统400包括子装置X、子装置Y、子装置Z、数据列分解供给部410以及输出部420。与实施例3相同地,各子装置包括第1随机数生成部件301、第1计算部件302、第2计算部件303、第2随机数生成部件304、第3计算部件305、第4计算部件306以及不当检测部件307。
隐匿积和计算系统400通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算,对由作为小于素数p的自然数的元素aq_i、bq_i(i=0,…,n-1(n为1以上的整数))构成的m组的数据列Aq=(aq_0,…,aq_n-1)、Bq=(bq_0,…,bq_n-1)(m为1以上的整数、q=0,…,m-1)进行各组的积和计算
[数39]
Σ i = 0 n - 1 a q _ i · b q _ i
(在n=1的情况下aq和bq的乘法运算)。另外,与实施例3相同地,设为子装置X和Y预先共有随机数sq_Z、子装置Y和Z预先共有随机数sq_X、子装置Z和X预先共有随机数sq_Y
作为具体的处理,首先,数据列分解供给部410将被输入的m组的数据列Aq、Bq的各元素aq_i、bq_i分解为满足aq_i=a0q_i+a1q_i+a2q_i mod p、bq_i=b0q_i+b1q_i+b2q_i mod p(a0q_i、a1q_i、b0q_i、b1q_i为随机数、p为素数)的条件式,并对子装置X提供数据列Aq_0=(a0q_0,…,a0q_n-1)、数据列Aq_1=(a1q_0,…,a1q_n-1)、数据列Bq_0=(b0q_0,…,b0q_n-1)以及数据列Bq_1=(b1q_0,…,b1q_n-1),对子装置Y提供数据列Aq_1、数据列Aq_2=(a2q_0,…,a2q_n-1)、数据列Bq_1以及数据列Bq_2=(b2q_0,…,b2q_n-1),对子装置Z提供数据列Aq_2、数据列Aq_0、数据列Bq_2以及数据列Bq_0(S41)。
接着,子装置X进行以下的处理。首先,第1随机数生成部件301生成随机数rq_X并发送到子装置Y(S42-1)。接着,第1计算部件302通过
[数40]
c q _ X = Σ i ( a 0 q _ i · b 1 q _ i + a 1 q _ i · b 0 q _ i ) + r q _ X
计算cq_X,并发送到子装置Z(S42-2)。接着,第2计算部件303从子装置Z接收随机数rq_z、从子装置Y接收cq_Y,并将cq_0和cq_1分别通过
[数41]
c q _ 0 = Σ i ( a 0 q _ i · b 0 q _ i ) + c q _ X - r q _ Z
c q _ 1 = Σ i ( a 1 q _ i · b 1 q _ i ) + c q _ Y - r q _ X
计算(S43)。
此外,子装置Y进行以下的处理。首先,第1随机数生成部件301生成随机数rq_Y,并发送到子装置Z(44-1)。接着,第1计算部件302通过
[数42]
c q _ Y = Σ i ( a 1 q _ i · b 2 q _ i + a 2 q _ i · b 1 q _ i ) + r q _ Y
计算cq_Y,并发送到子装置X(S44-2)。接着,第2计算部件303从子装置X接收随机数rq_X、从子装置Z接收cq_Z,并将cq_1和cq_2分别通过
[数43]
c q _ 1 = Σ i ( a 1 q _ i · b 1 q _ i ) + c q _ Y - r q _ X
c q - 2 = Σ i ( a 2 q _ i · b 2 q - i ) + c Z - c Y
计算(S45)。
此外,子装置Z进行以下的处理。首先,第1随机数生成部件301生成随机数rq_Z,并发送到子装置X(S46-1)。接着,第1计算部件302通过
[数44]
c q _ Z = Σ i ( a 2 q _ i · b 0 q _ i + a 0 q _ i · b 2 q _ i ) + r q _ Z
计算cq_Z,并发送到子装置Y(S46-2)。接着,第2计算部件303从子装置Y接收随机数rq_Y、从子装置X接收cq_X,并将cq_0和cq_2分别通过
[数45]
c q _ 0 = Σ i ( a 0 q _ i · b 0 q _ i ) + c q _ X - r q _ Z
c q _ 2 = Σ i ( a 2 q _ i · b 2 q _ i ) + c q _ Z - r q _ Y
计算(S47)。另外,S42-1、2和S44-1、2和S46-1、2能够进行并列处理,S43和S45和S47也能够进行并列处理。
接着S41~S47的处理,各子装置如下进行不当检测处理。说明子装置X的处理。首先,第2随机数生成部件304生成随机数列(αY1q_0,…,αY1q_n-1)以及随机数ρX而发送到子装置Y,生成随机数列(αZ0q_0,…,αZ0q_n-1)而发送到子装置Z(S48)。接着,第3计算部件305计算(αZ0q_0-sq_Z·a0q_0,…,αZ0q_n-1-sq_Z·a0q_n-1)而发送到子装置Y,从子装置Y接收随机数列(αX1q_0,…,αX1q_n-1)、从子装置Z接收随机数列(αX0q_0,…,αX0q_n-1),并计算(αY1q_0-sq_Y·a1q_0,…,αY1q_n-1-sq_Y·a1q_n-1)以及
[数46]
γ X = Σ i , q ( αX 0 q _ i · b 1 q _ i + αX 1 q _ i · b 0 q _ i ) + ρ X
而发送到子装置Z(S49)。接着,第4计算部件306从子装置Y接收(αZ2q_0-sq_Z·a2q_0,…,αZ2q_n-1-sq_Z·a2q_n-1)、从子装置Z接收ρZ,并计算
[数47]
γ Z ′ = Σ i , q { ( αZ 2 q _ i - s q _ Z · a 2 q _ i ) · b 0 q _ Z - s q _ Z · r q _ Z } + ρ Z
而发送到子装置Y(S50)。然后,不当检测部件307从子装置Y接收γY、从子装置Z接收γY′和(αY2q_0-sq_Y·a2q_0,…,αY2q_n-1-sq_Y·a2q_n-1),并计算
[数48]
Σ i , q { ( αY 2 q _ i - s q _ Y · a 2 q _ i ) · b 1 q _ i + s q _ Y · c q _ Y } - γ Y + γ Y ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_0和cq_1(S51)。
接着,说明子装置Y的处理。
首先,第2随机数生成部件304生成随机数列(αZ2q_0,…,αZ2q_n-1)以及随机数ρY而发送到子装置Z,生成随机数列(αX1q_0,…,αX1q_n-1)而发送到子装置X(S52)。接着,第3计算部件305计算(αX1q_0-sq_X·a1q_0,…,αX1q_n-1-sq_X·a1q_n-1)而发送到子装置Z,从子装置X接收随机数列(αY1q_0,…,αY1q_n-1)、从子装置Z接收随机数列(αY2q_0,…,αY2q_n-1),并计算(αZ2q_0-sq_Z·a2q_0,…,αZ2q_n-1-sq_Z·a2q_n-1)以及
[数49]
γ Y = Σ i , q ( αY 1 q _ i · b 2 q _ i + αY 2 q _ i · b 1 q _ i ) + ρ Y
而发送到子装置X(S53)。接着,第4计算部件306从子装置X接收随机数ρ X、从子装置Z接收(αX0q_0-sq_X·a0q_0,…,αX0q_n-1-sq_X·a0q_n-1),并计算
[数50]
γ X ′ = Σ i , q { ( αX 0 q _ i - s q _ X · a 0 q _ i ) · b 1 q _ i - s q _ X · r q _ X } + ρ X
而发送到子装置Z(S54)。然后,不当检测部件307从子装置X接收γZ′和(αZ0q_0-sq_Z·a0q_0,…,αZ0q_n-1-sq_Z·a0q_n-1)、从子装置Z接收γZ,并计算
[数51]
Σ i , q { ( αZ 0 q _ i - s q _ Z · a 0 q _ i ) · b 2 q _ i + s q _ Z · c q _ Z } - γ Z + γ Z ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_1和cq_2(S55)。
接着,说明子装置Z的处理。首先,第2随机数生成部件304生成随机数列(αX0q_0,…,αX0q_n-1)以及随机数ρZ而发送到子装置X,生成随机数列(αY2q_0,…,αY2q_n-1)而发送到子装置Y(S56)。接着,第3计算部件305计算(αY2q_0-sq_Y·a2q_0,…,αY2q_n-1-sq_Y·a2q_n-1)而发送到子装置X,从子装置X接收随机数列(αZ0q_0,…,αZ0q_n-1)、从子装置Y接收随机数列(αZ2q_0,…,αZ2q_n-1),并计算(αX0q_0-sq_X·a0q_0,…,αX0q_n-1-sq_X·a0q_n-1)以及
[数52]
γ Z = Σ i , q ( αZ 2 q _ i · b 0 q _ i + αZ 0 q _ i · b 2 q _ i ) + ρ Z
而发送到子装置Y(S57)。接着,第4计算部件306从子装置X接收(αY1q_0-sq_Y·a1q_0,…,αY1q_n-1-sq_Y·a1q_n-1)、从子装置Y接收随机数ρY,并计算
[数53]
γ Y ′ = Σ i , q { ( αY 1 q _ i - s q _ Y · a 1 q _ i ) · b 2 q _ i - s q _ Y · r q _ Y } + ρ Y
而发送到子装置X(S58)。然后,不当检测部件307从子装置X接收γX、从子装置Y接收γX′和(αX1q_0-sq_X·a1q_0,…,αX1q_n-1-sq_X·a1q_n-1),并计算
[数54]
Σ i , q { ( αX 1 q _ i - s q _ X · a 1 q _ i ) · b 0 q _ i + s q _ X · c q _ X } - γ X + γ X ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_2和cq_0(S59)。
然后,输出部420计算从子装置X、Y、Z输出的cq_0、cq_1、cq_2的总和(cq_0+cq_1+cq_2)而输出(S60)。由于
[数55]
c q _ 0 + c q _ 1 + c q _ 2 = Σ i ( a 0 q _ i · b 0 q _ i + a 0 q _ i · b 1 q _ i + a 1 q _ i · b 0 q _ i )
+ Σ i ( a 1 q _ i · b 1 q _ i + a 1 q _ i · b 2 q q _ i + a 2 q _ i · b 1 q _ i )
+ Σ i ( a 2 q _ i · b 2 q _ i + a 2 q _ i · b 0 q q _ i + a 0 q _ i · b 2 q _ i )
= Σ i ( a 0 q _ i + a 1 q _ i + a 2 q _ i ) ( b 0 q _ i + b 1 q _ i + b 2 q _ i )
= Σ i a q _ i · b q _ i
,所以可知能够准确地进行积和计算(只有在i=1的情况下(n=1的情况下)为aq和bq的乘法运算)。另外,在以上的处理中,使用随机数的部分也可以使用散列值等来代替。
此外,关于数据列分解供给部410、输出部420,既可以与各子装置不同 的其他的装置具备,也可以由对应于各子装置的装置中的任一个以上具备。
比较本发明和非专利文献1的方法的效果。在m=1的情况下,在本发明中回合数为2、各子装置发送的数据为10个、生成的随机数为5个。但是,由于若将sP共有一次则能够任意次使用,所以实际上回合数为2、发送的数据为9个、生成的随机数为4个。相对于此,在非专利文献1的方法中,回合数为4、子装置X发送的数据为20个、生成的随机数为12个、子装置Y、Z发送的数据为17个、生成的随机数为9个。因此,本发明大致为2倍的效率。
在m≥2的情况下,更有效。在本发明中,回合数为2、各子装置发送的数据为6m+3个、生成的随机数为3m+1个。相对于此,在非专利文献1的方法中,回合数为4、子装置X发送的数据为20m个、生成的随机数为12m个、子装置Y、Z发送的数据为17m个、生成的随机数为9m个。因此,本发明大致为3倍的效率。
实施例5
实施例4的隐匿积和计算系统400为进行
[数56]
Σ i = 0 n - 1 a q _ i · b q _ i
的积和计算的结构,但实施例5的隐匿积和计算系统500为该乘法运算的单方的值公共的情况下的结构例。即,隐匿积和计算系统500通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算,在由作为小于素数p的自然数的元素aq_i(q=0,…,m-1(m为1以上的整数)、i=0,…,n-1(n为1以上的整数))构成的数据列Aq=(aq_0,…,aq_n-1)(m为1以上的整数、q=0,…,m-1)与作为小于素数p的自然数的b之间进行m个的积和计算
[数57]
Σ i = 0 n - 1 a q _ i · b
。另外,由于功能结构和处理流程与实施例4相同,所以以下,引用它们进行说明(结构图:图9(以及8)、处理流程图:图10)。另外,与实施例4相同地,设为子装置X和Y预先共有随机数sq_Z、子装置Y和Z预先共有随机数 sq_X、子装置Z和X预先共有随机数sq_Y
作为具体的处理,首先,数据列分解供给部410将被输入的数据列Aq的各元素aq_i分解为满足aq_i=a0q_i+a1q_i+a2q_i mod p、将b分解为满足b=b0+b1+b2mod p(a0q_i、a1q_i、b0、b1为随机数、p为素数)的条件式,并对子装置X提供数据列Aq_0=(a0q_0,…,a0q_n-1)、数据列Aq_1=(a1q_0,…,a1q_n-1)、b0以及b1,对子装置Y提供数据列Aq_1、数据列Aq_2=(a2q_0,…,a2q_n-1)、b1以及b2,对子装置Z提供数据列Aq_2、数据列Aq_0、b2以及b0(S41)。
接着,子装置X进行以下的处理。首先,第1随机数生成部件301生成随机数rq_X,并发送到子装置Y(S42-1)。接着,第1计算部件302通过
[数58]
c q _ X = Σ i ( a 0 q _ i · b 1 + a 1 q _ i · b 0 ) + r q _ X
计算cq_X,并发送到子装置Z(S42-2)。接着,第2计算部件303从子装置Z接收随机数rq_Z、从子装置Y接收cq_Y,并将cq_0和cq_1分别通过
[数59]
c q _ 0 = Σ i ( a 0 q _ i · b 0 ) + c q _ X - r q _ Z
c q _ 1 = Σ i ( a 1 q _ i · b 1 ) + c q _ Y - r q _ X
计算(S43)。
此外,子装置Y进行以下的处理。首先,随机数生成部件304生成随机数rq_Y,并发送到子装置Z(44-1)。接着,第1计算部件305通过
[数60]
c q _ Y = Σ i ( a 1 q _ i · b 2 + a 2 q _ i · b 1 ) + r q _ Y
计算cq_Y,并发送到子装置X(S44-2)。接着,第2计算部件306从子装置X接收随机数rq_X、从子装置Z接收cq_Z,并将cq_1和cq_2分别通过
[数61]
c q _ 1 = Σ i ( a 1 q _ i · b 1 ) + c q _ Y - r q _ X
c q _ 2 = Σ i ( a 2 q _ i · b 2 ) + c q _ Z - r q _ Y
计算(S45)。
此外,子装置Z进行以下的处理。首先,第1随机数生成部件301生成随机数rq_Z,并发送到子装置X(S46-1)。接着,第1计算部件302通过
[数62]
c q _ Z = Σ i ( a 2 q _ i · b 0 + a 0 q _ i · b 2 ) + r q _ Z
计算cq_Z,并发送到子装置Y(S46-2)。接着,第2计算部件303从子装置Y接收随机数rq_Y、从子装置X接收cq_X,并将cq_0和cq_2分别通过
[数63]
c q _ 0 = Σ i ( a 0 q _ i · b 0 ) + c q _ X - r q _ Z
c q _ 2 = Σ i ( a 2 q _ i · b 2 ) + c q _ Z - r q _ Y
计算(S47)。另外,S42-1、2和S44-1、2和S46-1、2能够进行并列处理,S43和S45和S47也能够进行并列处理。
接着S41~S47的处理,各子装置如下进行不当检测处理。说明子装置X的处理。首先,第2随机数生成部件304生成随机数αY1以及随机数ρX而发送到子装置Y,生成随机数αZ0而发送到子装置Z(S48)。接着,第3计算部件305计算
[数64]
αZ 0 - Σ i , q ( s q _ Z · a 0 q _ i )
而发送到子装置Y,从子装置Y接收随机数αX1、从子装置Z接收随机数αX0,并计算
[数65]
αY 1 - Σ i , q ( s q _ Y · a 1 q _ i )
以及
[数66]
γX=αX0·b1+αX1·b0+ρX
而发送到子装置Z(S49)。接着,第4计算部件306从子装置Y接收
[数67]
αZ 2 - Σ i , q ( s q _ Z · a 2 q _ i )
、从子装置Z接收ρZ,并计算
[数68]
γ Z ′ = ( αZ 2 - Σ i , q ( s q _ Z · a 2 q _ i ) ) · b 0 - Σ q s q _ Z · r q _ Z + ρ Z
而发送到子装置Y(S50)。然后,不当检测部件307从子装置Y接收γY、从子装置Z接收γY′和
[数69]
αY 2 - Σ i , q ( s q _ Y · a 2 q _ i )
,并计算
[数70]
( αY 2 - Σ i , q ( s q _ Y · a 2 q _ i ) ) · b 1 + Σ q s q _ Y · c q _ Y - γ Y + γ Y ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_0和cq_1(S51)。
接着,说明子装置Y的处理。首先,第2随机数生成部件304生成随机数αZ2以及随机数ρY而发送到子装置Z,生成随机数αX1而发送到子装置X(S52)。接着,第3计算部件305计算
[数71]
αX 1 - Σ i , q ( s q _ X · a 1 q _ i )
而发送到子装置Z,从子装置X接收随机数αY1、从子装置Z接收随机数αY2,并计算
[数72]
αZ 2 - Σ i , q ( s q _ Z · a 2 q _ i )
以及
[数73]
γY=αY1·b2+αY2·b1+ρY
而发送到子装置X(S53)。接着,第4计算部件306从子装置X接收随机数ρ X、从子装置Z接收
[数74]
αX 0 - Σ i , q ( s q _ X · a 0 q _ i )
,并计算
[数75]
γ X ′ = ( αX 0 - Σ i , q ( s q _ X · a 0 q _ i ) ) · b 1 - Σ q s q _ X · r q _ X + ρ X
而发送到子装置Z(S54)。然后,不当检测部件307从子装置X接收γZ′和
[数76]
αZ 0 - Σ i , q ( s q _ Z · a 0 q _ i )
、从子装置Z接收γZ,并计算
[数77]
( αZ 0 - Σ i , q ( s q _ Z · a 0 q _ i ) ) · b 2 + Σ q s q _ Z · c q _ Z - γ Z + γ Z ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_1和cq_2(S55)。
接着,说明子装置Z的处理。首先,第2随机数生成部件304生成随机数αX0以及随机数ρZ而发送到子装置X,生成随机数αY2而发送到子装置Y(S56)。接着,第3计算部件305计算
[数78]
αY 2 - Σ i , q ( s q _ Y · a 2 q _ i )
而发送到子装置X,从子装置X接收随机数αZ0、从子装置Y接收随机数αZ2,并计算
[数79]
αX 0 - Σ i , q ( s q _ X · a 0 q _ i )
以及
[数80]
γZ=αZ2·b0+αZ0·b2+ρZ
而发送到子装置Y(S57)。接着,第4计算部件306从子装置X接收
[数81]
αY 1 - Σ i , q ( s q _ Y · a 1 q _ i )
、从子装置Y接收随机数ρY,并计算
[数82]
γ Y ′ = ( αY 1 - Σ i , q ( s q _ Y · a 1 q _ i ) ) · b 2 - Σ q s q _ Y · r q _ Y + ρ Y
而发送到子装置X(S58)。然后,不当检测部件307从子装置X接收γX、从子装置Y接收γX′和
[数83]
αX 1 - Σ i , q ( s q _ X · a 1 q _ i )
,并计算
[数84]
( αX 1 - Σ i , q ( s q _ X · a 1 q _ i ) ) · b 0 + Σ q s q _ X · c q _ X - γ X + γ X ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_2和cq_0(S59)。
然后,输出部420计算从子装置X、Y、Z输出的cq_0、cq_1、cq_2的总和(cq_0+cq_1+cq_2)而输出(S60)。由于
[数85]
c q _ 0 + c q _ 1 + c q _ 2 = Σ i ( a 0 q _ i · b 0 + a 0 q _ i · b 1 + a 1 q _ i · b 0 )
+ Σ i ( a 1 q _ i · b 1 + a 1 q _ i · b 2 + a 2 q _ i · b 1 )
+ Σ i ( a 2 q _ i · b 2 + a 2 q _ i · b 0 + a 0 q _ i · b 2 )
= Σ i ( a 0 q _ i + a 1 q _ i + a 2 q _ i ) ( b 0 + b 1 + b 2 )
= Σ i a q _ i · b
,所以可知能够准确地进行积和计算。另外,在以上的处理中,使用随机数的部分也可以使用散列值等来代替。此外,关于数据列分解供给部410、输出部420,既可以与各子装置不同的其他的装置具备,也可以由对应于各子装置 的装置中的任一个以上具备。
比较本发明和非专利文献1的方法的效果。在本发明的情况下,回合数为2、各子装置发送的数据为2m个、生成的随机数为3个。因此,与非专利文献1的方法相比,为9倍左右的效率。此外,可知若m增加则生成的随机数的数也增加,但改善成不依赖于m的常数。
实施例6
在实施例3中表示的附带不当检测功能的隐匿积和计算系统300中,在a和b的乘法运算协议中,为了确认a0p·b1p+a1p·b0p的正当性,使用表示sP·a0p的分散值的αP0p、αPP-,比较(αP0p-αPP-)·b1p和sP·a0p·b1p,且使用表示sP·a1p的分散值的αP1p、αPP+,比较(αP1p-αPP+)·b0p和sP·a1p·b0p。但是,隐匿积和计算系统300的乘法运算协议在前者的比较时包括在子装置之间使计算值往返的步骤。具体而言,需要将αZ2q_i2-sq_Z·a2q_i2按照子装置Y→子装置X→子装置Y往返、将αX0q_i0-sq_X·a0q_i0按照子装置Z→子装置Y→子装置Z往返、将αY1q_i1-sq_Y·a1q_i1按照子装置X→子装置Z→子装置X往返。因此,存在这样往返的过程中计算值泄露、在不改变计算结果的范围服务器进行不当(获得应隐匿的数据的信息)的余地。即,可以说实施例3是只有在服务器中没有不当的情况下能够完全隐匿的结构。
实施例6是即使在服务器中有不当也能够完全隐匿的结构。具体而言,是成为不当的原因的计算值的往返不包括在协议内的结构。图11表示实施例6的隐匿积和计算系统600的结构例、图12表示其处理流程例。隐匿积和计算系统600包括子装置X、子装置Y、子装置Z。如图13所示,各子装置除了与隐匿积和计算系统300相同地包括第1随机数生成部件301、第1计算部件302以及第2计算部件303之外,还包括第2随机数生成部件604、第3计算部件605、第4计算部件606以及不当检测部件607。
以下,具体说明,但由于第1随机数生成部件301、第1计算部件302以及第2计算部件303的各功能和作为它们的功能而实现的隐匿积和计算处理(S21~S27)与隐匿积和计算系统300共同,所以省略说明,只说明作为不同点的不当检测处理。
接着S21~S27的处理,各子装置如下进行不当检测处理。另外,与实施例3相同地,设为子装置X和Y预先共有随机数sq_Z、子装置Y和Z预先共有随机数sq_X、子装置Z和X预先共有随机数sq_Y
说明子装置X的处理。首先,第2随机数生成部件604生成随机数ρx而发送到子装置Y,生成随机数列(αZ0q_0,…,αZ0q_na0-1)和随机数列(βZ0q_0,…,βZ0q_nb0-1)而发送到子装置Z(S68)。接着,第3计算部件605计算(αZ0q_0-sq_Z·a0q_0,…,αZ0q_na0-1-sq_Z·a0q_na0-1)和(βZ0q_0-sq_Z·b0q_0,…,βZ0q_nb0-1-sq_Z·b0q_nb0-1)而发送到子装置Y,从子装置Y接收随机数列(αX1q_0,…,αX1q_na1-1)和随机数列(βX1q_0,…,βX1q_nb1-1),并计算
[数86]
γ X = Σ i 1 , j 0 , q ( e 10 q _ i 1 , q _ j 0 · α X 1 q _ i 1 · b 0 q _ j 0 ) + Σ i 0 , j 1 , q ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · β X 1 q _ j 1 ) + ρ X
而发送到子装置Z(S69)。接着,第4计算部件606从子装置Z接收ρZ,并计算
[数87]
γ Z ′ = Σ q ( - s q _ Z · r q _ Z ) + ρ Z
而发送到子装置Y(S70)。然后,不当检测部件607从子装置Y接收γY、从子装置Z接收γY′、(αY2q_0-sq_Y·a2q_0,…,αY2q_na2-1-sq_Y·a2q_na2-1)以及(βY2q_0-sq_Y·b2q_0,…,βY2q_nb2-1-sq_Y·b2q_nb2-1),并计算
[数88]
Σ i 1 , i 2 , j 1 , j 2 , q { e 21 q _ i 2 , q _ j 1 · ( αY 2 q _ i 2 - s q _ Y · a 2 q _ i 2 ) · b 1 q _ j 1
+ e 12 q _ i 1 , q _ j 2 · ( βY 2 q _ j 2 - s q _ Y · b 2 q _ j 2 ) · a 1 q _ i 1 + s q _ Y · c q _ Y } - γ Y + γ Y ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_0和cq_1(S71)。
接着,说明子装置Y的处理。首先,第2随机数生成部件604生成随机数ρY而发送到子装置Z,生成随机数列(αX1q_0,…,αX1q_na1-1)和随机数列(βX1q_0,…,βX1q_nb1-1)而发送到子装置X(S72)。接着,第3计算部件605计算(αX1q_0-sq_X·a1q_0,…,αX1q_na1-1-sq_X·a1q_na1-1)和(βX1q_0-sq_X·b1q_0,…,βX1q_nb1-1-sq_X·b1q_nb1-1)而发送到子装置Z,从子装置Z接收随机数列(αY2q_0,…,αY2q_na2-1)和随机数列(βY2q_0,…,βY2q_nb2-1),并计算
[数89]
γ Y = Σ i 2 , j 1 , q ( e 21 q _ i 2 , q _ j 1 · α Y 2 q _ i 2 · b 1 q _ j 1 ) + Σ i 1 , j 2 , q ( e 12 q _ i 1 , q _ j 2 · a 1 q _ i 1 · β Y 2 q _ j 2 ) + ρ Y
而发送到子装置X(S73)。接着,第4计算部件606从子装置X接收随机数ρ X,并计算
[数90]
γ X ′ = Σ q ( - s q _ X · r q _ X ) + ρ X
而发送到子装置Z(S74)。然后,不当检测部件607从子装置X接收γZ′、(αZ0q_0-sq_Z·a0q_0,…,αZ0q_na0-1-sq_Z·a0q_na0-1)以及(βZ0q_0-sq_Z·b0q_0,…,βZ0q_nb0-1-sq_Z·b0q_nb0-1)、从子装置Z接收γZ,并计算
[数91]
Σ i 0 , i 2 , j 0 , j 2 , q { e 02 q _ i 0 , q _ j 2 · ( αZ 0 q _ i 0 - s q _ Z · a 0 q _ i 0 ) · b 2 q _ j 2
+ e 20 q _ i 2 , q _ j 0 · ( βZ 0 q _ j 0 - s q _ Z · b 0 q _ j 0 ) · a 2 q _ i 2 + s q _ Z · c q _ Z } - γ Z + γ Z ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_1和cq_2(S75)。
接着,说明子装置Z的处理。首先,第2随机数生成部件604生成随机数ρZ而发送到子装置X,生成随机数列(αY2q_0,…,αY2q_na2-1)和随机数列(βY2q_0,…,βY2q_nb2-1)而发送到子装置Y(S76)。接着,第3计算部件605计算(αY2q_0-sq_Y·a2q_0,…,αY2q_na2-1-sq_Y·a2q_na2-1)和(βY2q_0-sq_Y·b2q_0,…,βY2q_nb2-1-sq_Y·b2q_nb2-1)而发送到子装置X,从子装置X接收随机数列(αZ0q_0,…,αZ0q_na0-1)和随机数列(βZ0q_0,…,βZ0q_nb0-1),并计算
[数92]
γ Z = Σ i 0 , j 2 , q ( e 02 q _ i 0 , q _ j 2 · αZ 0 q _ i 0 · b 2 q _ j 0 ) + Σ i 2 , j 0 , q ( e 20 q _ i 2 , q _ j 0 · a 2 q _ i 2 · β Z 0 q _ j 0 ) + ρ Z
而发送到子装置Y(S77)。接着,第4计算部件606从子装置Y接收随机数ρY,并计算
[数93]
γ Y ′ = Σ q ( - s q _ Y · r q _ Y ) + ρ Y
而发送到子装置X(S78)。然后,不当检测部件607从子装置X接收γX、从子装置Y接收γX′、(αX1q_0-sq_X·a1q_0,…,αX1q_na1-1-sq_X·a1q_na1-1)以及(βX1q_0-sq_X·b1q_0,…,βX1q_nb1-1-sq_X·b1q_nb1-1),并计算
[数94]
Σ i 0 , i 1 , j 0 , j 1 , q { e 10 q _ i 1 , q _ j 0 · ( αX 1 q _ i 1 - s q _ X · a 1 q _ i 1 ) · b 0 q _ j 0
+ e 01 q _ i 0 , q _ j 1 · ( βX 1 q _ j 1 - s q _ X · b 1 q _ j 1 ) · a 0 q _ i 0 + s q _ X · c q _ X } - γ X + γ X ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_2和cq_0(S79)。另外,在以上的处理中,使用随机数的部分也可以使用散列值等来代替。
在以上说明的隐匿积和计算系统600中,在a和b的乘法运算协议中,为了确认a0p·b1p+a1p·b0p的正当性,使用表示sP·b1p的分散值的βP1p、βPP+,比较(βP1p+a0p·βPP+)和sP·a1p·b0p,且使用表示sP·a1p的分散值的αP1p、α PP+,比较(αP1p-αPP+)·b0p和sP·a1p·b0p。通过这样构成,由于不需要在协议上在子装置之间使计算值往返,所以能够防止计算值的泄露,因此,服务器不能启动不当。此外,由于处理的步骤数与隐匿积和计算系统300相同,所以能够维持相同程度的效率。
实施例7
实施例7是实施例6的具体例,是na0=na1=na2=nb0=nb1=nb2=n、e00=e01=e10=e11=e12=e21=e22=e20=e02=1的情况。图14表示本实施例的隐匿积和计算系统700的结构例,图15表示其处理流程例。隐匿积和计算系统700包括子装置X、子装置Y、子装置Z、数据列分解供给部410以及输出部420。数据列分解供给部410和输出部420与实施例4的隐匿积和计算系统400相同。如图13所述,各子装置除了包括与隐匿积和计算系统400相同的第1随机数生成部件301、第1计算部件302以及第2计算部件303之外,还包括第2随机数生成部件604、第3计算部件605、第4计算部件606以及不当检测部件607。
与实施例4的隐匿积和计算系统400相同地,隐匿积和计算系统700通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算,对由作为小于素数p的自然数的元素aq_i、bq_i构成的m组的数据列Aq=(aq_0,…,aq_n-1)、 Bq=(bq_0,…,bq_n-1),进行各组的积和计算
[数95]
Σ i = 0 n - 1 a q _ i · b q _ i
(在n=1的情况下aq和bq的乘法运算)。
以下,具体说明,但由于数据列分解供给部410、第1随机数生成部件301、第1计算部件302、第2计算部件303以及输出部420的各功能和作为它们的功能而实现的隐匿积和计算处理(S41~S47、S60)与实施例4的隐匿积和计算系统400相同,所以省略说明,只集中说明作为不同点的不当检测处理。
接着S41~S47的处理,各子装置如下进行不当检测处理。另外,与实施例6相同地,设为子装置X和Y预先共有随机数sq_Z、子装置Y和Z预先共有随机数sq_X、子装置Z和X预先共有随机数sq_Y
说明子装置X的处理。首先,第2随机数生成部件604生成随机数ρX而发送到子装置Y,生成随机数列(αZ0q_0,…,αZ0q_n-1)和随机数列(βZ0q_0,…,βZ0q_n-1)而发送到子装置Z(S88)。接着,第3计算部件605计算(αZ0q_0-sq_Z·a0q_0,…,αZ0q_n-1-sq_Z·a0q_n-1)和(βZ0q_0-sq_Z·b0q_0,…,βZ0q_n-1-sq_Z·b0q_n-1)而发送到子装置Y,从子装置Y接收随机数列(αX1q_0,…,αX1q_n-1)和随机数列(βX1q_0,…,βX1q_n-1),并计算
[数96]
γ X = Σ i , q ( αX 1 q _ i · b 0 q _ i + a 0 q _ i · βX 1 q _ i ) + ρ X
而发送到子装置Z(S89)。接着,第4计算部件606从子装置Z接收ρZ,并计算
[数97]
γ Z ′ = Σ q ( - s q _ Z · r q _ Z ) + ρ Z
而发送到子装置Y(S90)。然后,不当检测部件607从子装置Y接收γY、从子装置Z接收γY′、(αY2q_0-sq_Y·a2q_0,…,αY2q_n-1-sq_Y·a2q_n-1)和(βY2q_0-sq_Y·b2q_0,…,βY2q_n-1-sq_Y·b2q_n-1),并计算
[数98]
Σ i , q { ( αY 2 q _ i - s q _ Y · a 2 q _ i ) · b 1 q _ i + ( βY 2 q _ i - s q _ Y · b 2 q _ i ) · a 1 q _ i + s q _ Y · c q _ Y } - γ Y + γ Y ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_0和cq_1(S91)。
接着,说明子装置Y的处理。首先,第2随机数生成部件604生成随机数ρY而发送到子装置Z,生成随机数列(αX1q_0,…,αX1q_n-1)和随机数列(βX1q_0,…,βX1q_n-1)而发送到子装置X(S92)。接着,第3计算部件605计算(αX1q_0-sq_X·a1q_0,…,αX1q_n-1-sq_X·a1q_n-1)和(βX1q_0-sq_X·b1q_0,…,βX1q_n-1-sq_X·b1q_n-1)而发送到子装置Z,从子装置Z接收随机数列(αY2q_0,…,αY2q_n-1)和随机数列(βY2q_0,…,βY2q_n-1),并计算
[数99]
γ Y = Σ i , q ( αY 2 q _ i · b 1 q _ i + a 1 q _ i · βY 2 q _ i ) + ρ Y
而发送到子装置X(S93)。接着,第4计算部件606从子装置X接收随机数ρ X,并计算
[数100]
γ X ′ = Σ q ( - s q _ X · r q _ X ) + ρ X
而发送到子装置Z(S94)。然后,不当检测部件607从子装置X接收γZ′、(αZ0q_0-sq_Z·a0q_0,…,αZ0q_n-1-sq_Z·a0q_n-1)和(βZ0q_0-sq_Z·b0q_0,…,βZ0q_n-1-sq_Z·b0q_n-1)、从子装置Z接收γZ,并计算
[数101]
Σ i , q { ( αZ 0 q _ i - s q _ Z · a 0 q _ i ) · b 2 q _ i + ( βZ 0 q _ i - s q _ Z · b 0 q _ i ) · a 2 q _ i + s q _ Z · c q _ Z } - γ Z + γ Z ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_1和cq_2(S95)。
接着,说明子装置Z的处理。
首先,第2随机数生成部件604生成随机数ρZ而发送到子装置X,生成随机数列(αY2q_0,…,αY2q_n-1)和随机数列(βY2q_0,…,βY2q_n-1) 而发送到子装置Y(S96)。接着,第3计算部件605计算(αY2q_0-sq_Y·a2q_0,…,αY2q_n-1-sq_Y·a2q_n-1)和(βY2q_0-sq_Y·b2q_0,…,βY2q_n-1-sq_Y·b2q_n-1)而发送到子装置X,从子装置X接收随机数列(αZ0q_0,…,αZ0q_n-1)和随机数列(βZ0q_0,…,βZ0q_n-1),并计算
[数102]
γ Z = Σ i , q ( αZ 0 q _ i · b 2 q _ i + a 2 q _ i · βZ 0 q _ i ) + ρ Z
而发送到子装置Y(S97)。接着,第4计算部件606从子装置Y接收随机数ρY,并计算
[数103]
γ Y ′ = Σ q ( - s q _ Y · r q _ Y ) + ρ Y
而发送到子装置X(S98)。然后,不当检测部件607从子装置X接收γX、从子装置Y接收γX′、(αX1q_0-sq_X·a1q_0,…,αX1q_n-1-sq_X·a1q_n-1)和(βX1q_0-sq_X·b1q_0,…,βX1q_n-1-sq_X·b1q_n-1),并计算
[数104]
Σ i , q { ( αX 1 q _ i - s q _ X · a 1 q _ i ) · b 0 q _ i + ( βX 1 q _ i - s q _ X · b 1 q _ i ) · a 0 q _ i + s q _ X · c q _ X } - γ X + γ X ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_2和cq_0(S99)。另外,在以上的处理中,使用随机数的部分也可以使用散列值等来代替。
实施例8
实施例7的隐匿积和计算系统700为,与实施例4相同地进行 
[数105]
Σ i = 0 n - 1 a q _ i · b q _ i
这样的积和计算,在对于该积和计算的不当检测处理中应用实施例6的方法的结构,但实施例8的隐匿积和计算系统800为在该积和计算中乘法运算的单方的值公共的情况下的实施例。即,隐匿积和计算系统800为,与实施例5的隐匿积和计算系统500相同地通过子装置X、子装置Y、子装置Z的三 个计算装置的协调计算,在由作为小于素数p的自然数的元素aq_i构成的数据列Aq=(aq_0,…,aq_n-1)和作为小于素数p的自然数的b之间进行m个的积和计算
[数106]
Σ i = 0 n - 1 a q _ i · b
,并在对于该积和计算的不当检测处理中应用实施例6的不当检测方法的结构。
以下,具体说明,但由于数据列分解供给部410、第1随机数生成部件301、第1计算部件302、第2计算部件303以及输出部420的各功能和作为它们的功能而实现的隐匿积和计算处理(S41~S47、S60)与实施例5的隐匿积和计算系统500相同,所以省略说明,只集中说明作为不同点的不当检测处理。由于功能结构和处理流程与实施例7相同,所以引用它们进行说明(结构图:图14(以及13)、处理流程图:图15)。
接着S41~S47的处理,各子装置如下进行不当检测处理。另外,与实施例7相同地,设为子装置X和Y预先共有随机数sq_Z、子装置Y和Z预先共有随机数sq_X、子装置Z和X预先共有随机数sq_Y
说明子装置X的处理。首先,第2随机数生成部件604生成随机数ρx而发送到子装置Y,生成随机数αZ0和随机数βZ0q而发送到子装置Z(S88)。接着,第3计算部件605计算
[数107]
αZ 0 - Σ i , q ( s q _ Z · a 0 q _ i )
βZ0q-sq_Z·b0
而发送到子装置Y,从子装置Y接收随机数αX1和βX1q,并计算
[数108]
γ X = αX 1 · b 0 + Σ i , q ( a 0 q _ i · β X 1 q ) + ρ X
而发送到子装置Z(S89)。接着,第4计算部件606从子装置Z接收ρZ,并计算
[数109]
γ Z ′ = - Σ q ( s q _ Z · r q _ Z ) + ρ Z
而发送到子装置Y(S90)。然后,不当检测部件607从子装置Y接收γY、从子装置Z接收γY′和
[数110]
αY 2 - Σ i , q ( s q _ Y · a 2 q _ i )
[数111]
βY2q-sq_Y·b2
,并计算
[数112]
( αY 2 - Σ i , q ( s q _ Y · a 2 q _ i ) ) · b 1 + Σ q { Σ i ( a 1 q _ i ( βY 2 q - s q _ Y · b 2 ) ) + s q _ Y · c q _ Y } - γ Y + γ Y ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_0和cq_1(S91)。
接着,说明子装置Y的处理。首先,第2随机数生成部件604生成随机数ρY而发送到子装置Z,生成随机数αX1和随机数βX1q而发送到子装置X(S92)。接着,第3计算部件605计算
[数113]
αX 1 - Σ i , q ( s q _ X · a 1 q _ i )
βX1q-sq_X·b1
而发送到子装置Z,从子装置Z接收随机数αY2和βY2q,并计算
[数114]
γ Y = αY 2 · b 1 + Σ i , q ( a 1 q _ i · β Y 2 q ) + ρ Y
而发送到子装置X(S93)。接着,第4计算部件606从子装置X接收随机数ρ X,并计算
[数115]
γ X ′ = - Σ q ( s q _ X · r q _ X ) + ρ X
而发送到子装置Z(S94)。然后,不当检测部件607从子装置Z接收γZ、从子装置X接收γZ′和
[数116]
αZ 0 - Σ i , q ( s q _ Z · a 0 q _ i )
[数117]
βZ0q-sq_Z·b0
,并计算
[数118]
( αZ 0 - Σ i , q ( s q _ Z · a 0 q _ i ) ) · b 2 + Σ q { Σ i ( a 2 q _ i ( βZ 0 q - s q _ Z · b 0 ) ) + s q _ Z · c q _ Z } - γ Z + γ Z ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_1和cq_2(S95)。
接着,说明子装置Z的处理。首先,第2随机数生成部件604生成随机数ρZ而发送到子装置X,生成随机数αY2和随机数βY2q而发送到子装置Y(S96)。接着,第3计算部件605计算
[数119]
αY 2 - Σ i , q ( s q _ Y · a 2 q _ i )
βY2q-sq_Y·b2
而发送到子装置X,从子装置X接收随机数αZ0和βZ0q,并计算
[数120]
γ Z = αZ 0 · b 2 + Σ i , q ( a 2 q _ i · β Z 0 q ) + ρ Z
而发送到子装置Y(S97)。接着,第4计算部件606从子装置Y接收随机数ρY,并计算
[数121]
γ Y ′ = - Σ q ( s q _ Y · r q _ Y ) + ρ Y
而发送到子装置X(S98)。然后,不当检测部件607从子装置X接收γX、从子装置Y接收γX′和
[数122]
αX 1 - Σ i , q ( s q _ X · a 1 q _ i )
[数123]
βX1q-sq_X·b1
,并计算
[数124]
( αX 1 - Σ i , q ( s q _ X · a 1 q _ i ) ) · b 0 + Σ q { Σ i ( a 0 q _ i ( βX 1 q - s q _ X · b 1 ) ) + s q _ X · c q _ X } - γ X + γ X ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_2和cq_0(S99)。另外,在以上的处理中,使用随机数的部分也可以使用散列值等来代替。
实施例9
实施例6、7是将两个数据列A=(aq_0,…,aq_n-1)、B=(bq_0,…,bq_n-1)分别分散为满足A=A0+A1+A2mod p、B=B0+B1+B2mod p的条件的三个,并作为隐匿值而对子装置X提供数据列A0=(a0q_0,…,a0q_na0-1)、A1=(a1q_0,…,a1q_na1-1)、B0=(b0q_0,…,b0q_nb0-1)以及B1=(b1q_0,…,b1q_nb1-1)、对子装置Y提供数据列A1、A2=(a2q_0,…,a2q_na2-1)、B1以及B2=(b2q_0,…,b2q_nb2-1)、对子装置Z提供数据列A2、A0、B2、B0,将作为它们的隐匿积和的
[数125]
Σ q _ i 0 , q _ j 0 ( e 00 q _ i 0 , q _ j 0 · a 0 q _ i 0 · b 0 q _ j 0 ) + Σ q _ i 0 , q _ j 1 ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · b 1 q _ j 1 )
+ Σ q _ i 1 , q _ j 0 ( e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 · b 0 q _ j 0 ) + Σ q _ i 1 , q _ j 1 ( e 11 q _ i 1 , q _ j 1 · a 1 q _ i 1 · b 1 q _ j 1 )
+ Σ q _ i 1 , q _ j 2 ( e 12 q _ i 1 , q _ j 2 · a 1 q _ i 1 · b 2 q _ j 2 ) + Σ q _ i 2 , q _ j 1 ( e 21 q _ i 2 , q _ j 1 · a 2 q _ i 2 · b 1 q _ j 1 )
+ Σ q _ i 2 , q _ j 2 ( e 22 q _ i 2 , q _ j 2 · a 2 q _ i 2 · b 2 q _ j 2 ) + Σ q _ i 2 , q _ j 0 ( e 20 q _ i 2 , q _ j 0 · a 2 q _ i 2 · b 0 q _ j 0 )
+ Σ q _ i 0 , q _ j 2 ( e 02 q _ i 0 , q _ j 2 · a 2 q _ i 2 · b 0 q _ j 0 )
通过根据作为在子装置X中的计算结果的cq_0和cq_1、作为在子装置Y中的计算结果的cq_1和cq_2以及作为在子装置Z中的计算结果的cq_2和cq_0求出cq_0+cq_1+cq_2,从而能够安全地进行隐匿积和计算。在该隐匿积和计算中,着眼于上式的Σa0q_i0·b1q_j1、Σa1q_i1·b0q_j0、Σa1q_i1·b2q_j2、Σa2q_i2·b1q_j1、Σa2q_i2·b0q_j0以及Σa0q_i0·b2q_j2的6个项,构成这些项的两个分散值处于某一个子装置具有双方而剩余的子装置仅分别具有不同的一方的关系。例如,关于Σa0q_i0·b1q_j1的a0q_i0和b1q_j1,子装置X具有a0q_i0和b1q_j1的双方但子装置Y仅具有b1q_j1、子装置Z仅具有a0q_i0。关于Σa1q_i1·b0q_j0也是同样的。实施例9的隐匿积和计算系统900是在这样三个子装置中的任一个子装置具有双方的分散值、其他的两个子装置分别具有不同的一方的分散值的情况下,求出这两个分散值的积和的方法,可以说是成为实施例6、7的隐匿积和计算的基础的积和计算方法。
以下,以子装置X具有双方的分散值、子装置Y、Z分别具有不同的一方的分散值的情况为例进行说明,但是子装置Y具有双方的分散值、子装置X、Z分别具有不同的一方的分散值的情况以及子装置Z具有双方的分散值、子装置X、Y分别具有不同的一方的分散值的情况也能够通过同样的方法来计算。
图16表示隐匿积和计算系统900的结构例,图17表示其处理流程例。隐匿积和计算系统900包括作为计算装置的子装置X、子装置Y、子装置Z。子装置X包括子装置X随机数生成部件901和子装置X计算部件903,子装置Y包括子装置Y随机数生成部件902和子装置Y计算部件904,子装置Z包括不当检测部件905。
隐匿积和计算系统900通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算,对q=0,…,m-1的共m组(m为1以上的整数)(m为2以上的情况下并列)进行数据列Aq_0=(a0q_0,…,a0q_na0-1)以及Aq_1=(a1q_0,…,a1q_na1-1)与数据列Bq_0=(b0q_0,…,b0q_nb0-1)以及Bq_1=(b1q_0,…,b1q_nb1-1)的积和计算
[数126]
Σ q _ i 0 , q _ j 1 ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 0 ( e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 · b 0 q _ j 0 )
(i0=0,…,na0-1、i1=0,…,na1-1、j0=0,…,nb0-1、j1=0,…, nb1-1、na0和na1和nb0和nb1为自然数、e01q_i0,q_j1和e10q_i1,q_j0为任意的数)。
在子装置X中被输入数据列Aq_0、Aq_1、Bq_0、Bq_1,在子装置Y中被输入数据列Aq_1、Bq_1,在子装置Z中被输入数据列Aq_0、Bq_0(S101)。
首先,子装置X的子装置X随机数生成部件901生成随机数cq_1、随机数γ1、随机数列(α1q_0,…,α1q_nb0-1)和随机数列(β1q_0,…,β1q_na0-1)而发送到子装置Y(S102)。此外,子装置Y的子装置Y随机数生成部件902生成随机数sq而发送到子装置Z(S103)。
接着,子装置X的子装置X计算部件903通过
[数127]
c q _ 0 = Σ q _ i 0 , q _ j 1 ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 0 ( e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 · b 0 q _ j 0 ) - c q _ 1
γ 0 = Σ i 0 , j 0 , q ( a 0 q _ i 0 · β 1 q _ i 0 + b 0 q _ j 0 · α 1 q _ j 0 · ) - γ 1
计算cq_0和γ0,并发送到子装置Z(S104)。
此外,子装置Y的子装置Y计算部件904从子装置X接收随机数cq_1、随机数γ1、随机数列(α1q_0,…,α1q_nb0-1)和随机数列(β1q_0,…,β1q_na0-1),并将数列(α0q_0,…,α0q_nb0-1)、数列(β0q_0,…,β0q_na0-1)和γ′分别通过
[数128]
α 0 q _ j 0 = Σ q , q _ i 1 s q · e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 - α 1 q _ j 0
β 0 q _ i 0 = Σ q , q _ j 1 s q · e 01 q _ i 0 , q _ j 1 · b 1 q _ j 1 - β 1 q _ i 0
γ ′ = Σ q s q · c q _ 1 - γ 1
计算,并发送到子装置Z(S105)。
接着,子装置Z的不当检测部件905从子装置X接收cq_0和γ0、从子装置Y接收随机数sq、数列(α0q_0,…,α0q_nb0-1)、数列(β0q_0,…,β0q_na0-1)和γ′,并计算
[数129]
Σ q s q · c q _ 0 - γ 0 - Σ i 0 , j 0 , q ( a 0 q _ i 0 · β 0 q _ i 0 + b 0 q _ j 0 · α 0 q _ j 0 ) + γ ′
,若计算结果不为0则输出表示不当检测的数据并结束处理(S106)。
然后,若在不当检测部件905中的计算结果为0,则从子装置X输出cq_0 和cq_1、从子装置Y输出cq_1和0、从子装置Z输出0和cq_0(S107)。另外,在以上的处理中,使用随机数的部分也可以使用散列值等来代替。
实施例10
实施例10是实施例9的具体例,是na0=na1=na2=nb0=nb1=nb2=n、e00=e01=e10=e11=e12=e21=e22=e20=e02=1的情况。结构以及处理流程与实施例9相同(结构例:图16、处理流程例:图17)。实施例10的隐匿积和计算系统910通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算,对q=0,…,m-1的共m组(m为1以上的整数)(m为2以上的情况下并列)进行数据列Aq_0=(a0q_0,…,a0q_n-1)以及Aq_1=(a1q_0,…,a1q_n-1)与数据列Bq_0=(b0q_0,…,b0q_n-1)以及Bq_1=(b1q_0,…,b1q_n-1)的积和计算
[数130]
Σ q _ i a 0 q _ i · b 1 q _ i + Σ q _ i a 1 q _ i · b 0 q _ i
(i=0,…,n-1、n为自然数)。
在子装置X中被输入数据列Aq_0、Aq_1、Bq_0、Bq_1,在子装置Y中被输入数据列Aq_1、Bq_1,在子装置Z中被输入数据列Aq_0、Bq_0(S101)。
首先,子装置X的子装置X随机数生成部件901生成随机数cq_1、随机数γ1、随机数列(α1q_0,…,α1q_n-1)和随机数列(β1q_0,…,β1q_n-1)而发送到子装置Y(S102)。此外,子装置Y的子装置Y随机数生成部件902生成随机数sq而发送到子装置Z(S103)。
接着,子装置X的子装置X计算部件903通过
[数131]
c q _ 0 = Σ q _ i a 0 q _ i · b 1 q _ i + Σ q _ i a 1 q _ i · b 0 q _ i - c q _ 1
γ 0 = Σ i , q ( a 0 q _ i · β 1 q _ i + b 0 q _ i · α 1 q _ i · ) - γ 1
计算cq_0和γ0,并发送到子装置Z(S104)。
此外,子装置Y的子装置Y计算部件904从子装置X接收随机数cq_1、随机数γ1、随机数列(α1q_0,…,α1q_n-1)和随机数列(β1q_0,…,β1q_n-1),并将数列(α0q_0,…,α0q_n-1)、数列(β0q_0,…,β0q_n-1)和γ′ 分别通过
[数132]
α 0 q _ i = s q · a 1 q _ i - α 1 q _ i
β 0 q _ i = s q · b 1 q _ i - β 1 q _ i
γ ′ = Σ q s q · c q _ 1 - γ 1
计算,并发送到子装置Z(S105)。
接着,子装置Z的不当检测部件905从子装置X接收cq_0和γ0、从子装置Y接收随机数sq、数列(α0q_0,…,α0q_n-1)、数列(β0q_0,…,β0q_n-1)和γ′,并计算
[数133]
Σ q s q · c q _ 0 - γ 0 - Σ i , q ( a 0 q _ i · β 0 q _ i + b 0 q _ i · α 0 q _ i ) + γ ′
,若计算结果不为0则输出表示不当检测的数据并结束处理(S106)。
然后,若在不当检测部件905中的计算结果为0,则从子装置X输出cq_0和cq_1、从子装置Y输出cq_1和0、从子装置Z输出0和cq_0(S107)。另外,在以上的处理中,使用随机数的部分也可以使用散列值等来代替。
实施例11
实施例11的隐匿积和计算系统920是关于实施例10的隐匿积和计算系统910中的积和计算 
[数134]
Σ q _ i a 0 q _ i · b 1 q _ i + Σ q _ i a 1 q _ i · b 0 q _ i
,各项的乘法运算的一方不论i、q的值而公共的情况下,即
[数135]
Σ q _ i a 0 · b 1 q _ i + Σ q _ i a 1 · b 0 q _ i
的情况下,能够更有效率且更安全地进行积和计算的系统。
隐匿积和计算系统902的结构以及处理流程与实施例9、10相同(结构例:图16、处理流程例:图17)。其中,在子装置X中被输入数据a0以及a1、数据列Bq_0=(b0q_0,…,b0q_n-1)以及Bq_1=(b1q_0,…,b1q_n-1),在子装置Y中被输入数据a1和数据列Bq_1,在子装置Z中被输入数据a0和数据 列Bq_0(S101)。
首先,子装置X的子装置X随机数生成部件901生成随机数cq_1、随机数γ1、随机数列(α1q_0,…,α1q_n-1)和随机数β1而发送到子装置Y(S102)。
此外,子装置Y的子装置Y随机数生成部件902生成随机数sq而发送到子装置Z(S103)。
接着,子装置X的子装置X计算部件903将cq_0和γ0通过
[数136]
c q _ 0 = Σ q _ i a 0 · b 1 q _ i + Σ q _ i a 1 · b 0 q _ i - c q _ 1
γ 0 = a 0 · β 1 + Σ i , q b 0 q _ i · α 1 q _ i - γ 1
计算,并发送到子装置Z(S104)。
此外,子装置Y的子装置Y计算部件904从子装置X接收随机数cq_1、随机数γ1、随机数列(α1q_0,…,α1q_n-1)和随机数β1,并将数列(α0q_0,…,α0q_n-1)、β0和γ′分别通过
[数137]
α 0 q _ i = Σ q s q · a 1 - α 1 q _ i
β 0 = Σ i , q s q · b 1 q _ i - β 1
γ ′ = Σ q s q · c q _ 1 - γ 1
计算,并发送到子装置Z(S105)。
接着,子装置Z的不当检测部件905从子装置X接收cq_0和γ0、从子装置Y接收随机数sq、数列(α0q_0,…,α0q_n-1)、β0和γ′,并计算
[数138]
Σ q s q · c q _ 0 - γ 0 - a 0 · β 0 - Σ i , q b 0 q _ i · α 0 q _ i + γ ′
,若计算结果不为0则输出表示不当检测的数据并结束处理(S106)。
然后,若在不当检测部件905中的计算结果为0,则从子装置X输出cq_0和cq_1、从子装置Y输出cq_1和0、从子装置Z输出0和cq_0(S107)。另外,在以上的处理中,使用随机数的部分也可以使用散列值等来代替。
以上说明的本发明的隐匿积和计算方法、隐匿积和计算系统中的各处理除了按照记载时序执行之外,也可以根据执行处理的装置的处理能力或者必 要而并列或者单独执行。此外,本发明的隐匿积和计算系统的各结构元素的功能也可以根据需要而合并·分割。除此之外,在不脱离本发明的意旨的范围内可进行适当变更。在通过计算机实现本发明的各实施例的隐匿积和计算系统的情况下,装置以及其各部分具有的功能的处理内容通过程序而描述。该程序例如存储在硬盘装置中,在执行时必要的程序或数据被读入RAM(随机存取存储器)中。通过CPU执行该读入的程序,在计算机上实现各处理内容。

Claims (13)

1.一种隐匿积和计算方法,其在用于通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算来进行数据列A0=(a00,...,a0na0-1)、A1=(a10,...,a1na1-1)以及A2=(a20,...,a2na2-1)与数据列B0=(b00,...,b0nb0-1)、B1=(b10,...,b1nb1-1)以及B2=(b20,...,b2nb2-1)的积和计算
Σ i 0 , j 0 ( e 00 i 0 , j 0 · a 0 i 0 · b 0 j 0 ) + Σ i 0 , j 1 ( e 01 i 0 , j 0 · a 0 i 0 · b 1 j 1 ) + Σ i 1 , j 0 ( e 10 i 1 , j 0 · a 1 i 1 · b 0 j 0 ) + Σ i 1 , j 1 ( e 11 i 1 , j 1 · a 1 i 1 · b 1 j 1 ) + Σ i 1 , j 2 ( e 12 i 1 , j 2 · a 1 i 1 · b 2 j 2 ) + Σ i 2 , j 1 ( e 21 i 2 , j 1 · a 2 i 2 · b 1 j 1 ) + Σ i 2 , j 2 ( e 22 i 2 , j 2 · a 2 i 2 · b 2 j 2 ) + Σ i 2 , j 0 ( e 20 i 2 , j 0 · a 2 i 2 · b 0 j 0 ) + Σ i 0 , j 2 ( e 02 i 0 , j 2 · a 0 i 0 · b 2 j 2 )
中使用,其中,
将na0、na1、na2、nb0、nb1、nb2设为自然数,设为i0=0,...,na0-1、i1=0,...,na1-1、i2=0,...,na2-1、j0=0,...,nb0-1、j1=0,...,nb1-1、j2=0,...,nb2-1,
将e01i0,j1,e10i1,j0,e00i0,j0,e11i1,j1,e12i1,j2,e21i2,j1,e22i2,j2,e20i2,j0,e02i0,j2设为任意的数,
对子装置X输入数据列A0、A1、B0、B1,对子装置Y输入数据列A1、A2、B1、B2,对子装置Z输入数据列A2、A0、B2、B0
所述隐匿积和计算方法执行如下步骤:
子装置X生成数rX并发送到子装置Y的子装置X随机数生成步骤;
子装置X通过
c X = Σ i 0 , j 1 ( e 01 i 0 , j 1 · a 0 i 0 · b 1 j 1 ) + Σ i 1 , j 0 ( e 10 i 1 , j 0 · a 1 i 1 · b 0 j 0 ) + r X
计算cX,并发送到子装置Z的子装置X第1计算步骤;
子装置X从子装置Z接收数rZ、从子装置Y接收cY,并将c0和c1分别通过
c 0 = Σ i 0 , j 0 ( e 00 i 0 , j 0 · a 0 i 0 · b 0 j 0 ) + c X - r Z
c 1 = Σ i 1 , j 1 ( e 11 i 1 , j 1 · a 1 i 1 · b 1 j 1 ) + c Y - r X
计算并输出的子装置X第2计算步骤;
子装置Y生成数rY并发送到子装置Z的子装置Y随机数生成步骤;
子装置Y通过
c Y = Σ i 1 , j 2 ( e 12 i 1 , j 2 · a 1 i 1 · b 2 j 2 ) + Σ i 2 , j 1 ( e 21 i 2 , j 1 · a 2 i 2 · b 1 j 1 ) + r Y
计算cY,并发送到子装置X的子装置Y第1计算步骤;
子装置Y从子装置X接收数rX、从子装置Z接收cZ,并将c1和c2分别通过
c 1 = Σ i 1 , j 1 ( e 11 i 1 , j 1 · a 1 i 1 · b 1 j 1 ) + c Y - r X
c 2 = Σ i 2 , j 2 ( e 22 i 2 , j 2 · a 2 i 2 · b 2 j 2 ) + c Z - r Y
计算并输出的子装置Y第2计算步骤;
子装置Z生成数rZ并发送到子装置X的子装置Z随机数生成步骤;
子装置Z通过
c Z = Σ i 2 , j 0 ( e 20 i 2 , j 0 · a 2 i 2 · b 0 j 0 ) + Σ i 0 , j 2 ( e 02 i 0 , j 2 · a 0 i 0 · b 2 j 2 ) + r Z
计算cZ,并发送到子装置Y的子装置Z第1计算步骤;以及
子装置Z从子装置Y接收数rY、从子装置X接收cX,并将c0和c2分别通过
c 0 = Σ i 0 , j 0 ( e 00 i 0 , j 0 · a 0 i 0 · b 0 j 0 ) + c X - r Z
c 2 = Σ i 2 , j 2 ( e 22 i 2 , j 2 · a 2 i 2 · b 2 j 2 ) + c Z - r Y
计算并输出的子装置Z第2计算步骤。
2.一种隐匿积和计算方法,其在通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算来对q=0,...,m-1的共m组并列进行数据列Aq_0=(a0q_0,...,a0q_na0-1)、Aq_1=(a1q_0,...,a1q_na1-1)以及Aq_2=(a2q_0,...,a2q_na2-1)与数据列Bq_0=(b0q_0,...,b0q_nb0-1)、Bq_1=(b1q_0,...,b1q_nb1 -1)以及Bq_2=(b2q_0,...,b2q_nb2-1)的积和计算
Σ q _ i 0 , q _ j 0 ( e 0 0 q _ i 0 , q _ j 0 · a 0 q _ i 0 · b 0 q _ j 0 ) + Σ q _ i 0 , q _ j 1 ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 0 ( e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 · b 0 q _ j 0 ) + Σ q _ i 1 , q _ j 1 ( e 11 q _ i 1 , q _ j 1 · a 1 q _ i 1 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 2 ( e 12 q _ i 1 , q _ j 2 · a 1 q _ i 1 · b 2 q _ j 2 ) + Σ q _ i 2 , q _ j 1 ( e 21 q _ i 2 , q _ j 1 · a 2 q _ i 2 · b 1 q _ j 1 ) + Σ q _ i 2 , q _ j 2 ( e 22 q _ i 2 , q _ j 2 · a 2 q _ i 2 · b 2 q _ j 2 ) + Σ q _ i 2 , q _ j 0 ( e 20 q _ i 2 , q _ j 0 · a 2 q _ i 2 · b 0 q _ j 0 ) + Σ q _ i 0 , q _ j 2 ( e 02 q _ i 0 , q _ j 2 · a 2 q _ i 2 · b 0 q _ i 0 )
中使用,其中,
将m设为1以上的整数、将na0,na1,na2,nb0,nb1,nb2设为自然数、设为i0=0,...,na0-1、i1=0,...,na1-1、i2=0,...,na2-1、j0=0,...,nb0-1、j1=0,...,nb1-1、j2=0,...,nb2-1,
将e01q_i0,q_j1,e10q_i1,q_j0,e00q_i0,q_j0,e11q_i1,q_j1,e12q_i1,q_j2,e21q_i2,q_j1,e22q_i2,q_j2,e20q_i2,q_j0,e02q_i0,q_j2设为任意的数,
子装置X和Y预先共有数sq_Z、子装置Y和Z预先共有数sq_X、子装置Z和X预先共有数sq_Y
对子装置X输入数据列Aq_0、Aq_1、Bq_0、Bq_1,对子装置Y输入数据列Aq_1、Aq_2、Bq_1、Bq_2,对子装置Z输入数据列Aq_2、Aq_0、Bq_2、Bq_0
所述隐匿积和计算方法执行如下步骤:
子装置X生成数rq_X并发送到子装置Y的子装置X第1随机数生成步骤;
子装置X通过
c q _ X = Σ q _ i 0 , q _ j 1 ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 0 ( e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 · b 0 q _ j 0 ) + r q _ X
计算cq_X,并发送到子装置Z的子装置X第1计算步骤;
子装置X从子装置Z接收数rq_z、从子装置Y接收cq_Y,并将cq_0和cq_1分别通过
c q _ 0 = Σ q _ i 0 , q _ j 0 ( e 00 q _ i 0 , q _ j 0 · a 0 q _ i 0 · b 0 q _ j 0 ) + c q _ X - r q _ Z
c q _ 1 = Σ q _ i 1 , q _ j 1 ( e 11 q _ i 1 , q _ j 1 · a 1 q _ i 1 · b 1 q _ j 1 ) + c q _ Y - r q _ X
计算的子装置X第2计算步骤;
子装置Y生成数rq_Y并发送到子装置Z的子装置Y第1随机数生成步骤;
子装置Y通过
c q _ Y = Σ q _ i 1 , q _ j 2 ( e 12 q _ i 1 , q _ j 2 · a 1 q _ i 1 · b 2 q _ j 2 ) + Σ q _ i 2 , q _ j 1 ( e 21 q _ i 2 , q _ j 1 · a 2 q _ i 2 · b 1 q _ j 1 ) + r q _ Y
计算cq_Y,并发送到子装置X的子装置Y第1计算步骤;
子装置Y从子装置X接收数rq_X、从子装置Z接收cq_Z,并将cq_1和cq_2分别通过
c q _ 1 = Σ q _ i 1 , q _ j 1 ( e 11 q _ i 1 , q _ j 1 · a 1 q _ i 1 · b 1 q _ j 1 ) + c q _ Y - r q _ X
c q _ 2 = Σ q _ i 2 , q _ j 2 ( e 22 q _ i 2 , q _ j 2 · a 2 q _ i 2 · b 2 q _ j 2 ) + c q _ Z - r q _ Y
计算的子装置Y第2计算步骤;
子装置Z生成数rq_Z并发送到子装置X的子装置Z第1随机数生成步骤;
子装置Z通过
c q _ Z = Σ q _ i 2 , q _ j 0 ( e 20 q _ i 2 , q _ j 0 · a 2 q _ i 2 · b 0 q _ j 0 ) + Σ q _ i 0 , q _ j 2 ( e 02 q _ i 0 , q _ j 2 · a 2 q _ i 2 · b 0 q _ i 0 ) + r q _ Z
计算cq_Z,并发送到子装置Y的子装置Z第1计算步骤;
子装置Z从子装置Y接收数rq_Y、从子装置X接收cq_X,并将cq_0和cq_2分别通过
c q _ 0 = Σ q _ i 0 , q _ j 0 ( e 00 q _ i 0 , q _ j 0 · a 0 q _ i 0 · b 0 q _ j 0 ) + c q _ X - r q _ Z
c q _ 2 = Σ q _ i 2 , q _ j 2 ( e 22 q _ i 2 , q _ j 2 · a 2 q _ i 2 · b 2 q _ j 2 ) + c q _ Z - r q _ Y
计算的子装置Z第2计算步骤;
子装置X生成数列(αY1q_0,...,αY1q_na1-1)以及数ρx而发送到子装置Y,生成数列(αZ0q_0,...,αZ0q_na0-1)而发送到子装置Z的子装置X第2随机数生成步骤;
子装置X计算(αZ0q_0-sq_Z·a0q_0,...,αZ0q_na0-1-sq_Z·a0q_na0-1)而发送到子装置Y,从子装置Y接收数列(αX1q_0,...,αX1q_na1-1),从子装置Z接收数列(αX0q_0,...,αX0q_na0-1),并计算(αY1q_0-sq_Y·a1q_0,...,αY1q_na1-1-sq_Y·a1q_na1-1)以及
γ X = Σ i 0 , j 1 , q ( e 01 q _ i 0 , q _ j 1 · α X 0 q _ i 0 · b 1 q _ j 1 ) + Σ i 1 , j 0 , q ( e 10 q _ i 1 , q _ j 0 · αX 1 q _ i 1 · b 0 q _ j 0 ) + ρ X
而发送到子装置Z的子装置X第3计算步骤;
子装置X从子装置Y接收(αZ2q_0-sq_Z·a2q_0,...,αZ2q_na2-1-sq_Z·a2q_na2-1),从子装置Z接收ρZ,并计算
γ Z ′ = Σ i 2 , j 0 , q { e 20 q _ i 2 , q _ j 0 · ( αZ 2 q _ i 2 - s q _ Z · a 2 q _ i 2 ) · b 0 q _ j 0 - s q _ Z · r q _ Z } + ρ Z
而发送到子装置Y的子装置X第4计算步骤;
子装置X从子装置Y接收γY、从子装置Z接收γY′和(αY2q_0-sq_Y·a2q_0,...,αY2q_na2-1-sq_Y·a2q_na2-1),并计算
Σ i 2 , j 1 , q { e 21 q _ i 2 , q _ j 1 · ( αY 2 q _ i 2 - s q - Y · a 2 q _ i 2 ) · b 1 q _ j 1 - s q _ Y · c q _ Y } + γ Y + γ Y ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_0和cq_1的子装置X不当检测步骤;
子装置Y生成数列(αZ2q_0,...,αZ2q_na2-1)以及数ρY而发送到子装置Z,生成数列(αX1q_0,...,αX1qna1-1)而发送到子装置X的子装置Y第2随机数生成步骤;
子装置Y计算(αX1q_0-sq_X·a1q_0,...,αX1q_na1-1-sq_X·a1q_na1-1)而发送到子装置Z,从子装置X接收数列(αY1q_0,...,αY1q_na1-1),从子装置Z接收数列(αY2q_0,...,αY2q_na2-1),并计算(αZ2q_0-sq_Z·a2q_0,...,αZ2q_na2-1-sq_Z·a2q_na2-1)以及
γ Y = Σ i 1 , j 2 , q ( e 12 q _ i 1 , q _ j 2 · α Y 1 q _ i 1 · b 2 q _ j 2 ) + Σ i 2 , j 1 , q ( e 21 q _ i 2 , q _ j 1 · αY 2 q _ i 2 · b 1 q _ j 1 ) + ρ Y
而发送到子装置X的子装置Y第3计算步骤;
子装置Y从子装置X接收数ρX、从子装置Z接收(αX0q_0-sq_X·a0q_0,...,αX0q_na0-1-sq_X·a0q_na0-1),并计算
γ X ′ = Σ i 0 , j 1 , q { e 01 q _ i 0 , q _ j 1 · ( αX 0 q _ i 0 - s q _ X · a 0 q _ i 0 ) · b 1 q _ j 1 - s q _ X · r q _ X } + ρ X
而发送到子装置Z的子装置Y第4计算步骤;
子装置Y从子装置X接收γZ′和(αZ0q_0-sq_Z·a0q_0,...,αZ0q_na0-1-sq_Z·a0q_na0-1),从子装置Z接收γZ,并计算
Σ i 0 , j 2 , q { e 02 q _ i 0 , q _ j 2 · ( αZ 0 q _ i 0 - s q _ Z · a 0 q _ i 0 ) · b 2 q _ j 2 + s q _ Z · c q _ Z } + γ Z + γ Z ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_1和cq_2的子装置Y不当检测步骤;
子装置Z生成数列(αX0q_0,...,αX0q_na0-1)以及数ρZ而发送到子装置X,生成数列(αY2q_0,...,αY2q_na2-1)而发送到子装置Y的子装置Z第2随机数生成步骤;
子装置Z计算(αY2q_0-sq_Y·a2q_0,...,αY2q_na2-1-sq_Y·a2q_na2-1)而发送到子装置X,从子装置X接收数列(αZ0q_0,...,αZ0q_na0-1),从子装置Y接收数列(αZ2q_0,...,αZ2q_na2-1),并计算(αX0q_0-sq_X·a0q_0,...,αX0q_na0-1-sq_X·a0q_na0-1)以及
γ Z = Σ i 2 , j 0 , q ( e 20 q _ i 2 , q _ j 0 · αZ 2 q _ i 2 · b 0 q _ j 0 ) + Σ i 0 , j 2 , q ( e 02 q _ i 0 , q _ j 2 · αZ 0 q _ i 0 · b 2 q _ j 2 ) + ρ Z
而发送到子装置Y的子装置Z第3计算步骤;
子装置Z从子装置X接收(αY1q_0-sq_Y·a1q_0,...,αY1q_na1-1-sq_Y·a1q_na1-1),从子装置Y接收数ρY,并计算
γ Y ′ = Σ i 1 , j 2 , q { e 12 q _ i 1 , q _ j 2 · ( αY 1 q _ i 1 - s q _ Y · a 1 q _ i 1 ) · b 2 q _ j 2 - s q _ Y · r q _ Y } + ρ Y
而发送到子装置X的子装置Z第4计算步骤;以及
子装置Z从子装置X接收γX,从子装置Y接收γX′和(αX1q_0-sq_X·a1q_0,...,αX1q_na1-1-sq_X·a1q_na1-1),并计算
Σ i 1 , j 0 , q { e 10 q _ i 1 , q _ j 0 · ( αX 1 q _ i 1 - s q _ X · a 1 q _ i 1 ) · b 0 q _ j 0 - s q _ X · c q _ X } + γ X + γ X ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_2和cq_0的子装置Z不当检测步骤。
3.一种隐匿积和计算方法,其在用于通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算来对q=0,...,m-1的共m组并列进行数据列Aq_0=(a0q_0,...,a0q_na0-1)、Aq_1=(a1q_0,...,a1q_na1-1)以及Aq_2=(a2q_0,...,a2q_na2-1)与数据列Bq_0=(b0q_0,...,b0q_nb0-1)、Bq_1=(b1q_0,...,b1q_nb1 -1)以及Bq_2=(b2q_0,...,b2q_nb2-1)的积和计算
Σ q _ i 0 , q _ j 0 ( e 00 q _ i 0 , q _ j 0 · a 0 q _ i 0 · b 0 q _ j 0 ) + Σ q _ i 0 , q _ j 1 ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 0 ( e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 · b 0 q _ j 0 ) + Σ q _ i 1 , q _ j 1 ( e 11 q _ i 1 , q _ j 1 · a 1 q _ i 1 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 2 ( e 12 q _ i 1 , q _ j 2 · a 1 q _ i 1 · b 2 q _ j 2 ) + Σ q _ i 2 , q _ j 1 ( e 21 q _ i 2 , q _ j 1 · a 2 q _ i 2 · b 1 q _ j 1 ) + Σ q _ i 2 , q _ j 2 ( e 22 q _ i 2 , q _ j 2 · a 2 q _ i 2 · b 2 q _ j 2 ) + Σ q _ i 2 , q _ j 0 ( e 20 q _ i 2 , q _ j 0 · a 2 q _ i 2 · b 0 q _ j 0 ) + Σ q _ i 0 , q _ j 2 ( e 02 q _ i 0 , q _ j 2 · a 2 q _ i 2 · b 0 q _ i 0 )
中使用,其中,
将m设为1以上的整数,将na0、na1、na2、nb0、nb1、nb2设为自然数,设为i0=0,...,na0-1、i1=0,...,na1-1、i2=0,...,na2-1、j0=0,...,nb0-1、j1=0,...,nb1-1、j2=0,...,nb2-1,
将e01q_i0,q_j1,e10q_i1,q_j0,e00q_i0,q_j0,e11q_i1,q_j1,e12q_i1,q_j2,e21q_i2,q_j1,e22q_i2,q_j2,e20q_i2,q_j0,e02q_i0,q_j2设为任意的数,
子装置X和Y预先共有数sq_Z,子装置Y和Z预先共有数sq_X,子装置Z和X预先共有数sq_Y
对子装置X输入数据列Aq_0、Aq_1、Bq_0、Bq_1,对子装置Y输入数据列Aq_1、Aq_2、Bq_1、Bq_2,对子装置Z输入数据列Aq_2、Aq_0、Bq_2、Bq_0
所述隐匿积和计算方法执行如下步骤:
子装置X生成数rq_X并发送到子装置Y的子装置X第1随机数生成步骤;
子装置X通过
c q _ X = Σ q _ i 0 , q _ j 1 ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 0 ( e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 · b 0 q _ j 0 ) + r q _ X
计算cq_X,并发送到子装置Z的子装置X第1计算步骤;
子装置X从子装置Z接收数rq_z,从子装置Y接收cq_Y,并将cq_0和cq_1分别通过
c q _ 0 = Σ q _ i 0 , q _ j 0 ( e 00 q _ i 0 , q _ j 0 · a 0 q _ i 0 · b 0 q _ j 0 ) + c q _ X - r q _ Z c q _ 1 = Σ q _ i 1 , q _ j 1 ( e 11 q _ i 1 , q _ j 1 · a 1 q _ i 1 · b 1 q _ j 1 ) + c q _ Y - r q _ X
计算的子装置X第2计算步骤;
子装置Y生成数rq_Y并发送到子装置Z的子装置Y第1随机数生成步骤;
子装置Y通过
c q _ Y = Σ q _ i 1 , q _ j 2 ( e 12 q _ i 1 , q _ j 2 · a 1 q _ i 1 · b 2 q _ j 2 ) + Σ q _ i 2 , q _ j 1 ( e 21 q _ i 2 , q _ j 1 · a 2 q _ i 2 · b 1 q _ j 1 ) + r q _ Y
计算cq_Y,并发送到子装置X的子装置Y第1计算步骤;
子装置Y从子装置X接收数rq_X,从子装置Z接收cq_Z,并将cq_1和cq_2分别通过
c q _ 1 = Σ q _ i 1 , q _ j 1 ( e 11 q _ i 1 , q _ j 1 · a 1 q _ i 1 · b 1 q _ j 1 ) + c q _ Y - r q _ X c q _ 2 = Σ q _ i 2 , q _ j 2 ( e 22 q _ i 2 , q _ j 2 · a 2 q _ i 2 · b 2 q _ j 2 ) + c q _ Z - r q _ Y
计算的子装置Y第2计算步骤;
子装置Z生成数rq_Z,并发送到子装置X的子装置Z第1随机数生成步骤;
子装置Z通过
c q _ Z = Σ q _ i 2 , q _ j 0 ( e 20 q _ i 2 , q _ j 0 · a 2 q _ i 2 · b 0 q _ j 0 ) + Σ q _ i 0 , q _ j 2 ( e 02 q _ i 0 , q _ j 2 · a 2 q _ i 2 · b 0 q _ i 0 ) + r q _ Z
计算cq_Z,并发送到子装置Y的子装置Z第1计算步骤;
子装置Z从子装置Y接收数rq_Y、从子装置X接收cq_X,并将cq_0和cq_2分别通过
c q _ 0 = Σ q _ i 0 , q _ j 0 ( e 00 q _ i 0 , q _ j 0 · a 0 q _ i 0 · b 0 q _ j 0 ) + c q _ X - r q _ Z c q _ 2 = Σ q _ i 2 , q _ j 2 ( e 22 q _ i 2 , q _ j 2 · a 2 q _ i 2 · b 2 q _ j 2 ) + c q _ Z - r q _ Y
计算的子装置Z第2计算步骤;
子装置X生成数ρx并发送到子装置Y,生成数列(αZ0q_0,...,αZ0q_na0 -1)和数列(βZ0q_0,...,βZ0q_nb0-1)并发送到子装置Z的子装置X第2随机数生成步骤;
子装置X计算(αZ0q_0-sq_Z·a0q_0,...,αZ0q_na0-1-sq_Z·a0q_na0-1)和(βZ0q_0-sq_Z·b0q_0,...,βZ0q_nb0-1-sq_Z·b0q_nb0-1)而发送到子装置Y,从子装置Y接收数列(αX1q_0,...,αX1q_na1-1)和数列(βX1q_0,...,βX1q_nb1-1),并计算
γ X = Σ i 1 , j 0 , q ( e 10 i 1 , j 0 · α X 1 q _ i 1 · b 0 q _ j 0 ) + Σ i 0 , j 1 , q ( e 01 i 0 , j 1 · a 0 q _ i 0 · β X 1 q _ j 1 ) + ρ X
而发送到子装置Z的子装置X第3计算步骤;
子装置X从子装置Z接收ρZ,并计算
γ Z ′ = Σ q ( - s q _ Z · r q _ Z ) + ρ Z
而发送到子装置Y的子装置X第4计算步骤;
子装置X从子装置Y接收γY、从子装置Z接收γY′、(αY2q_0-Sq_Y·a2q_0,...,αY2q_na2-1-Sq_Y·a2q_na2-1)以及(βY2q_0-Sq_Y·b2q_0,...,βY2q_nb2-1-Sq_Y·b2q_nb2-1),并计算
Σ i 1 , i 2 , j 1 , j 2 , q { e 21 q _ i 2 , q _ j 1 · ( αY q _ i 2 - s q _ Y · a 2 q _ i 2 ) · b 1 q _ j 1 + e 12 q _ i , q _ j 2 · ( βY 2 q _ j 2 - s q _ Y · b 2 q _ j 2 ) · a 1 q _ i 1 + s q _ Y · c q _ Y } - γ Y + γ Y ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_0和cq_1的子装置X不当检测步骤;
子装置Y生成数ρY并发送到子装置Z,生成数列(αX1q_0,...,αX1q_na1 -1)和数列(βX1q_0,...,βX1q_nb1-1)而发送到子装置X的子装置Y第2随机数生成步骤;
子装置Y计算(αX1q_0-Sq_X·a1q_0,...,αX1q_na1-1-Sq_X·a1q_na1-1)和(βX1q_0-Sq_X·b1q_0,...,βX1q_nb1-1-Sq_X·b1q_nb1-1)而发送到子装置Z,从子装置Z接收数列(αY2q_0,...,αY2q_na2-1)和数列(βY2q_0,...,βY2q_nb2-1),并计算
γ Y = Σ i 2 , j 1 , q ( e 21 q _ i 2 , q _ j 1 · αY q _ i 2 · b 1 q _ j 1 ) + Σ i 1 , j 2 , q ( e 12 q _ i 1 , q _ j 2 · a 1 q _ i 1 · βY 2 q _ j 2 ) + ρ Y
而发送到子装置X的子装置Y第3计算步骤;
子装置Y从子装置X接收数ρX,并计算
γ X ′ = Σ q ( - s q _ X · r q _ X ) + ρ X
而发送到子装置Z的子装置Y第4计算步骤;
子装置Y从子装置X接收γZ′、(αZ0q_0-Sq_Z·a0q_0,...,αZ0q_na0-1-Sq_Z·a0q_na0-1)以及(βZ0q_0-Sq_Z·b0q_0,...,βZ0q_nb0-1-Sq_Z·b0q_nb0- 1)、从子装置Z接收γZ,并计算
Σ i 0 , i 2 , j 0 , j 2 , q { e 02 q _ i 0 , q _ j 2 · ( αZ 0 q _ i 0 - s q _ Z · α 0 q _ i 0 ) · b 2 q _ j 2 + e 20 q _ i 2 , q _ j 0 · ( βZ 0 q _ j 0 - s q _ Z · b 0 q _ j 0 ) · a 2 q _ i 2 + s q _ Z · c q _ Z } - γ Z + γ Z ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_1和cq_2的子装置Y不当检测步骤;
子装置Z生成数ρZ并发送到子装置X,生成数列(αY2q_0,...,αY2q_na2 -1)和数列(βY2q_0,...,βY2q_nb2-1)并发送到子装置Y的子装置Z第2随机数生成步骤;
子装置Z计算(αY2q_0-Sq_Y·a2q_0,...,αY2q_na2-1-Sq_Y·a2q_na2-1)和(βY2q_0-Sq_Y·b2q_0,...,βY2q_nb2-1-Sq_Y·b2q_nb2-1)而发送到子装置X,从子装置X接收数列(αZ0q_0,...,αZ0q_na0-1)和数列(βZ0q_0,...,βZ0q_nb0-1),并计算
γ Z = Σ i 0 , j 2 , q ( e 02 q _ i 0 , q _ j 2 · αZ 0 q _ i 0 · b 2 q _ j 0 ) + Σ i 2 , j 0 , q ( e 20 q _ i 2 , q _ j 0 · α 2 q _ i 2 · βZ 0 q _ j 0 ) + ρ Z
而发送到子装置Y的子装置Z第3计算步骤;
子装置Z从子装置Y接收数ρY,并计算
γ Y ′ = Σ q ( - s q _ Y · r q _ Y ) + ρ Y
而发送到子装置X的子装置Z第4计算步骤;以及
子装置Z从子装置X接收γX、从子装置Y接收γX′、(αX1q_0-Sq_X·a1q_0,...,αX1q_na1-1-Sq_X·a1q_na1-1)以及(βX1q_0-Sq_X·b1q_0,...,βX1q_nb1-1-Sq_X·b1q_nb1-1),并计算
Σ i 0 , i 1 , j 0 , j 1 , q { e 10 q _ i 1 , q _ j 0 · ( αX 1 q _ i 1 - s q _ X · a 1 q _ i 1 ) · b 0 q _ j 0 } + e 01 q _ i 0 , q _ j 1 · ( βX 1 q _ j 1 - s q _ X · b 1 q _ j 1 ) · a 0 q _ i 0 + s q _ X · c q _ X } - γ X + γ X ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_2和cq_0的子装置Z不当检测步骤。
4.一种隐匿积和计算方法,其在用于通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算来对q=0,...,m-1的共m组并列进行数据列Aq_0=(a0q_0,...,a0q_na0-1)以及Aq_1=(a1q_0,...,a1x_na1-1)与数据列Bq_0=(b0q_0,...,b0q_nb0-1)以及Bq_1=(b1q_0,...,b1q_nb1-1)的积和计算
Σ q _ i 0 , q _ j 1 ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 0 ( e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 · b 0 q _ j 0 )
中使用,其中,
将m设为1以上的整数,将na0、na1、nb0、nb1设为自然数,设为i0=0,...,na0-1、i1=0,...,na1-1、j0=0,...,nb0-1、j1=0,...,nb1-1,
将e01q_i0,q_j1,e10q_i1,q_j0设为任意的数,
对子装置X输入数据列Aq_0、Aq_1、Bq_0、Bq_1,对子装置Y输入数据列Aq_1、Bq_1,对子装置Z输入数据列Aq_0、Bq_0
所述隐匿积和计算方法执行如下步骤:
子装置X生成数cq_1、数γ1、数列(α1q_0,...,α1q_nb0-1)以及数列(β1q_0,...,β1q_na0-1)而发送到子装置Y的子装置X随机数生成步骤;
子装置Y生成数sq而发送到子装置Z的子装置Y随机数生成步骤;
子装置X将cq_0和γ0通过
c q _ 0 = Σ q _ i 0 , q _ j 1 ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 0 ( e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 · b 0 q _ j 0 ) - c q _ 1
γ 0 = Σ i 0 , j 0 , q ( a 0 q _ i 0 · β 1 q _ i 0 + b 0 q _ j 0 · α 1 q _ j 0 ) - γ 1
计算,并发送到子装置Z的子装置X计算步骤;
子装置Y从子装置X接收数cq_1、数γ1、数列(α1q_0,...,α1q_nb0-1)以及数列(β1q_0,...,β1q_na0-1),并将数列(α0q_0,...,α0q_nb0-1)、数列(β0q_0,...,β0q_na0-1)以及γ′分别通过
α 0 q _ j 0 = Σ q , q _ i 1 s q · e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 - α 1 q _ j 0
β 0 q _ i 0 = Σ q , q _ j 1 s q · e 01 q _ i 0 , q _ j 1 · b 1 q _ j 1 - β 1 q _ i 0
γ ′ = Σ q s q · c q _ 1 - γ 1
计算,并发送到子装置Z的子装置Y计算步骤;以及
子装置Z从子装置X接收cq_0和γ0、从子装置Y接收数sq、数列(α0q_0,...,α0q_nb0-1)、数列(β0q_0,...,β0q_na0-1)以及γ′,并计算
Σ q = s q · c q _ 0 - γ 0 - Σ i 0 , j 0 , q ( a 0 q _ i 0 · β 0 q _ i 0 + b 0 q _ j 0 · α 0 q _ j 0 ) + γ ′
,若计算结果不为0则输出表示不当检测的数据并结束处理的不当检测步骤,
若在不当检测步骤中的计算结果为0,则从子装置X输出cq_0和cq_1、从子装置Y输出cq_1和0、从子装置Z输出0和cq_0
5.一种隐匿积和计算方法,其在用于通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算来对q=0,...,m-1的共m组并列进行数据a0以及a1与数据列Bq_0=(b0q_0,...,b0q_nb0-1)以及Bq_1=(b1q_0,...,b1q_nb1 -1)的积和计算
Σ q _ i a 0 · b 1 q _ i + Σ q _ i a 1 · b 0 q _ i
中使用,其中,
将m设为1以上的整数,将n设为自然数,设为i=0,...,n-1,
对子装置X输入数据a0以及a1与数据列Bq_0以及Bq_1,对子装置Y输入数据a1和数据列Bq_1,对子装置Z输入数据a0和数据列Bq_0
所述隐匿积和计算方法执行如下步骤:
子装置X生成数cq_1、数γ1、数列(α1q_0,...,α1q_n-1)以及数β1而发送到子装置Y的子装置X随机数生成步骤;
子装置Y生成数sq而发送到子装置Z的子装置Y随机数生成步骤;
子装置X将cq_0和γ0通过
c q _ 0 = Σ q _ i a 0 · b 1 q _ i + Σ q _ i a 1 · b 0 q _ i - c q _ 1
γ 0 = a 0 · β 1 + Σ i , q b 0 q _ i · α 1 q _ i - γ 1
计算,并发送到子装置Z的子装置X计算步骤;
子装置Y从子装置X接收数cq_1、数γ1、数列(α1q_0,...,α1q_n-1)以及数β1,并将数列(α0q_0,...,α0q_n-1)、β0以及γ′分别通过
α 0 q _ i = Σ q s q · a 1 - α 1 q _ i
β 0 = Σ i , q s q · b 1 q _ i - β 1
γ ′ = Σ q s q · c q _ 1 - γ 1
计算,并发送到子装置Z的子装置Y计算步骤;以及
子装置Z从子装置X接收cq_0和γ0、从子装置Y接收数sq、数列(α0q_0,...,α0q_n-1)、β0以及γ′,并计算
Σ q s q · c q _ 0 - γ 0 - a 0 · β 0 - Σ i , q b 0 q _ i · α 0 q _ i + γ ′
,若计算结果不为0则输出表示不当检测的数据并结束处理的不当检测步骤,
若在不当检测步骤中的计算结果为0,则从子装置X输出cq_0和cq_1、从子装置Y输出cq_1和0、从子装置Z输出0和cq_0
6.一种隐匿积和计算系统,其在用于通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算来进行数据列A0=(a00,...,a0na0-1)、A1=(a10,...,a1na1-1)以及A2=(a20,...,a2na2-1)与数据列B0=(b00,...,b0nb0-1)、B1=(b10,...,b1nb1-1)以及B2=(b20,...,b2nb2-1)的积和计算
Σ i 0 , j 0 ( e 00 i 0 , j 0 · a 0 i 0 · b 0 j 0 ) + Σ i 0 , j 1 ( e 01 i 0 , j 1 · a 0 i 0 · b 1 j 1 ) + Σ i 1 , j 0 ( e 10 i 1 , j 0 · a 1 i 1 · b 0 j 0 ) + Σ i 1 , j 1 ( e 11 i 1 , j 1 · a 1 i 1 · b 1 j 1 ) + Σ i 1 , j 2 ( e 12 i 1 , j 2 · a 1 i 1 · b 2 j 2 ) + Σ i 2 , j 1 ( e 21 i 2 , j 1 · a 2 i 2 · b 1 j 1 ) + Σ i 2 , j 2 ( e 22 i 2 , j 2 · a 2 i 2 · b 2 j 2 ) + Σ i 2 , j 0 ( e 20 i 2 , j 0 · a 2 i 2 · b 0 j 0 ) + Σ i 0 , j 2 ( e 02 i 0 , j 2 · a 0 i 0 · b 2 j 2 )
中使用,其中,
将na0、na1、na2、nb0、nb1、nb2设为自然数,设为i0=0,...,na0-1、i1=0,...,na1-1、i2=0,...,na2-1、j0=0,...,nb0-1、j 1=0,...,nb1-1、j2=0,...,nb2-1,
将e01i0,j1,e10i1,j0,e00i0,j0,e11i1,j1,e12i1,j2,e21i2,j1,e22i2,j2,e20i2,j0,e02i0,j2设为任意的数,
对子装置X输入数据列A0、A1、B0、B1,对子装置Y输入数据列A1、A2、B1、B2,对子装置Z输入数据列A2、A0、B2、B0
子装置X包括子装置X随机数生成部件、子装置X第1计算部件以及子装置X第2计算部件,子装置X随机数生成部件生成数rX并发送到子装置Y,子装置X第1计算部件通过
c X = Σ i 0 , j 1 ( e 01 i 0 , j 1 · a 0 i 0 · b 1 j 1 ) + Σ i 1 , j 0 ( e 10 i 1 , j 0 · a 1 i 1 b 0 j 0 · ) + r X
计算cX并发送到子装置Z,子装置X第2计算部件从子装置Z接收数rz、从子装置Y接收cY,并将c0和c1分别通过
c 0 = Σ i 0 , j 0 ( e 00 i 0 , j 0 · a 0 i 0 · b 0 j 0 ) + c X - r Z
c 1 = Σ i 1 , j 1 ( e 11 i 1 , j 1 · a 1 i 1 · b 1 j 1 ) + c Y - r Z
计算,
子装置Y包括子装置Y随机数生成部件、子装置Y第1计算部件以及子装置Y第2计算部件,子装置Y随机数生成部件生成数rY并发送到子装置Z,子装置Y第1计算部件通过
c Y = Σ i 1 , j 2 ( e 12 i 1 , j 2 · a 1 i 1 · b 2 j 2 ) + Σ i 2 , j 1 ( e 21 i 2 , j 1 · a 2 i 2 · b 1 j 1 ) + r Y
计算cY并发送到子装置X,子装置Y第2计算部件从子装置X接收数rX、从子装置Z接收cZ,并将c1和c2分别通过
c 1 = Σ i 1 , j 1 ( e 11 i 1 , j 1 · a 1 i 1 · b 1 j 1 ) + c Y - r X
c 2 = Σ i 2 , j 2 ( e 22 i 2 , j 2 · a 2 i 2 · b 2 j 2 ) + c Z - r Y
计算,
子装置Z包括子装置Z随机数生成部件、子装置Z第1计算部件以及子装置Z第2计算部件,子装置Z随机数生成部件生成数rZ并发送到子装置X,子装置Z第1计算部件通过
c Z = Σ i 2 , j 0 ( e 20 i 2 , j 0 · a 2 i 2 · b 0 j 0 ) + Σ i 0 , j 2 ( e 02 i 0 , j 2 · a 0 i 0 · b 2 j 2 ) + r Z
计算cZ并发送到子装置Y,子装置Z第2计算部件从子装置Y接收数rY,从子装置X接收cX,并将c0和c2分别通过
c 0 = Σ i 0 , j 0 ( e 00 i 0 , j 0 · a 0 i 0 · b 0 j 0 ) + c X - r Z
c 2 = Σ i 2 , j 2 ( e 22 i 2 , j 2 · a 2 i 2 · b 2 j 2 ) + c Z - r Y
计算。
7.一种隐匿积和计算系统,其在用于通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算来对q=0,...,m-1的共m组并列进行数据列Aq_0=(a0q_0,...,a0q_na0-1)、Aq_1=(a1q_0,...,a1q_na1-1)以及Aq_2=(a2q_0,...,a2q_na2-1)与数据列Bq_0=(b0q_0,...,b0q_nb0-1)、Bq_1=(b1q_0,...,b1q_nb1 -1)以及Bq_2=(b2q_0,...,b2q_nb2-1)的积和计算
Σ q _ i 0 , q _ j 0 ( e 00 q _ i 0 , q _ j 0 · a 0 q _ i 0 · b 0 q _ j 0 ) + Σ q _ i 0 , q _ j 1 ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 0 ( e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 · b 0 q _ j 0 ) + Σ q _ i 1 , q _ j 1 ( e 11 q _ i 1 , q _ j 1 · a 1 q _ i 1 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 2 ( e 12 q _ i 1 , q _ j 2 · a 1 q _ i 1 · b 2 q _ j 2 ) + Σ q _ i 2 , q _ j 1 ( e 21 q _ i 2 , q _ j 1 · a 2 q _ i 2 · b 1 q _ j 1 ) + Σ q _ i 2 , q _ j 2 ( e 22 q _ i 2 , q _ j 2 · a 2 q _ i 2 · b 2 q _ j 2 ) + Σ q _ i 2 , q _ j 0 ( e 20 q _ i 2 , q _ j 0 · a 2 q _ i 2 · b 0 q _ j 0 ) + Σ q _ i 0 , q _ j 2 ( e 02 q _ i 0 , q _ j 2 · a 2 q _ i 2 · b 0 q _ i 0 )
中使用,其中,
将m设为1以上的整数,将na0、na1、na2、nb0、nb1、nb2设为自然数,设为i0=0,...,na0-1、i1=0,...,na1-1、i2=0,...,na2-1、j0=0,...,nb0-1、j1=0,...,nb1-1、j2=0,...,nb2-1,
将e01q_i0,q_j1,e10q_i1,q_j0,e00q_i0,q_j0,e11q_i1,q_j1,e12q_i1,q_j2,e21q_i2,q_j1,e22q_i2,q_j2,e20q_i2,q_j0,e02q_i0,q_j2设为任意的数,
子装置X和Y预先共有数sq_Z、子装置Y和Z预先共有数sq_X、子装置Z和X预先共有数sq_Y
对子装置X输入数据列Aq_0、Aq_1、Bq_0、Bq_1,对子装置Y输入数据列Aq_1、Aq_2、Bq_1、Bq_2,对子装置Z输入数据列Aq_2、Aq_0、Bq_2、Bq_0
子装置X包括子装置X第1随机数生成部件、子装置X第1计算部件、子装置X第2计算部件、子装置X第2随机数生成部件、子装置X第3计算部件、子装置X第4计算部件以及子装置X不当检测部件,子装置X第1随机数生成部件生成数rq_X而发送到子装置Y,子装置X第1计算部件通过
c q _ X = Σ q _ i 0 , q _ j 1 ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 0 ( e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 · b 0 q _ j 0 ) + r q _ X
计算cq_X并发送到子装置Z,子装置X第2计算部件从子装置Z接收数rq_z、从子装置Y接收cq_Y,并将cq_0和cq_1分别通过
c q _ 0 = Σ q _ i 0 , q _ j 0 ( e 00 q _ i 0 , q _ j 0 · a 0 q _ i 0 · b 0 q _ j 0 ) + c q _ X - r q _ Z
c q _ 1 = Σ q _ i 1 , q _ j 1 ( e 11 q _ i 1 , q _ j 1 · a 1 q _ i 1 · b 1 q _ j 1 ) + c q _ Y - r q _ X
计算,子装置X第2随机数生成部件生成数列(αY1q_0,...,αY1q_na1-1)以及数ρx而发送到子装置Y,生成数列(αZ0q_0,...,αZ0q_na0-1)而发送到子装置Z,子装置X第3计算部件计算(αZ0q_0-sq_Z·a0q_0,...,αZ0q_na0 -1-sq_Z·a0q_na0-1)而发送到子装置Y,从子装置Y接收数列(αX1q_0,...,αX1q_na1-1)、从子装置Z接收数列(αX0q_0,...,αX0q_na0-1),并计算(αY1q_0-sq_Y·a1q_0,...,αY1q_na1-1-sq_Y·a1q_na1-1)以及
γ X = Σ i 0 , j 1 , q ( e 01 q _ i 0 , q _ j 1 · αX 0 q _ i 0 · b 1 q _ j 1 ) + Σ i 1 , j 0 , q ( e 10 q _ i 1 , q _ j 0 · αX 1 q _ i 1 · b 0 q _ j 0 ) + ρ X
而发送到子装置Z,子装置X第4计算部件从子装置Y接收(αZ2q_0-sq_Z·a2q_0,...,αZ2q_na2-1-sq_Z·a2q_na2-1)、从子装置Z接收ρZ,并计算 γ Z ′ = Σ i 2 , j 0 , q { e 20 q _ i 2 , q _ j 0 · ( αZ 2 q _ i 2 - s q _ Z · a 2 q _ i 2 ) · b 0 q _ j 0 - s q _ Z · r q _ Z } + ρ Z
而发送到子装置Y,子装置X不当检测部件从子装置Y接收γY、从子装置Z接收γY′和(αY2q_0-sq_Y·a2q_0,...,αY2q_na2-1-sq_Y·a2q_na2-1),并计算 Σ i 2 , j 1 , q { e 21 q _ i 2 , q _ j 1 · ( αY 2 q _ i 2 - s q _ Y · a 2 q _ i 2 ) · b 1 q _ j 1 + s q _ Y · c q _ Y } - γ Y + γ Y ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_0和cq_1
子装置Y包括子装置Y第1随机数生成部件、子装置Y第1计算部件、子装置Y第2计算部件、子装置Y第2随机数生成部件、子装置Y第3计算部件、子装置Y第4计算部件以及子装置Y不当检测部件,子装置Y第1随机数生成部件生成数rq_Y而发送到子装置Z,子装置Y第1计算部件通过 c q _ Y = Σ q _ i 1 , q _ j 2 ( e 12 q _ i 1 , q _ j 2 · a 1 q _ i 1 · b 2 q _ j 2 ) + Σ q _ i 2 , q _ j 1 ( e 21 q _ i 2 , q _ j 1 · a 2 q _ i 2 · b 1 q _ j 1 ) + r q _ Y
计算cq_Y并发送到子装置X,子装置Y第2计算部件从子装置X接收数rq_X、从子装置Z接收cq_Z,并将cq_1和cq_2分别通过
c q _ 1 = Σ q _ i 1 , q _ j 1 ( e 11 q _ i 1 , q _ j 1 · a 1 q _ i 1 · b 1 q _ j 1 ) + c q _ Y - r q _ X
c q _ 2 = Σ q _ i 2 , q _ j 2 ( e 22 q _ i 2 , q _ j 2 · a 2 q _ i 2 · b 2 q _ j 2 ) + c q _ Z - r q _ Y
计算,子装置Y第2随机数生成部件生成数列(αZ2q_0,...,αZ2q_na2-1)以及数ρY而发送到子装置Z、生成数列(αX1q_0,...,αX1q_na1-1)而发送到子装置X,子装置Y第3计算部件计算(αX1q_0-sq_X·a1q_0,...,αX1q_na1 -1-sq_X·a1q_na1-1)而发送到子装置Z,从子装置X接收数列(αY1q_0,...,αY1q_na1-1)、从子装置Z接收数列(αY2q_0,...,αY2q_na2-1),并计算(αZ2q_0-sq_Z·a2q_0,...,αZ2q_na2-1-sq_Z·a2q_na2-1)以及
γ Y = Σ i 1 , j 2 , q ( e 1 2 q _ i 1 , q _ j 2 · α Y 1 q _ i 1 · b 2 q _ j 2 ) + Σ i 2 , j 1 , q ( e 2 1 q _ i 2 , q _ j 1 · α Y 2 q _ i 2 · b 1 q _ j 1 ) + ρ Y
而发送到子装置X,子装置Y第4计算部件从子装置X接收数ρX、从子装置Z接收(αX0q_0-sq_X·a0q_0,...,αX0q_na0-1-sq_X·a0q_na0-1),并计算 γ X ′ = Σ i 0 , j 1 , q { e 01 q _ i 0 , q _ j 1 · ( α X 0 q _ i 0 - s q _ X · a 0 q _ i 0 ) · b 1 q _ j 1 - s q _ X · r q _ X } + ρ X
而发送到子装置Z,子装置Y不当检测部件从子装置X接收γZ′和(αZ0q_0-sq_Z·a0q_0,...,αZ0q_na0-1-sq_Z·a0q_na0-1)、从子装置Z接收γZ,并计算 Σ i 0 , j 2 , q { e 02 q _ i 0 , q _ j 2 · ( α Z 0 q _ i 0 - s q _ Z · a 0 q _ i 0 ) · b 2 q _ j 2 + s q _ Z · c q _ Z } - γ Z + γ Z ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_1和cq_2
子装置Z包括子装置Z第1随机数生成部件、子装置Z第1计算部件、子装置Z第2计算部件、子装置Z第2随机数生成部件、子装置Z第3计算部件、子装置Z第4计算部件以及子装置Z不当检测部件,子装置Z第1随机数生成部件生成数rq_Z而发送到子装置X,子装置Z第1计算部件通过
c q _ Z = Σ q _ i 2 , q _ j 0 ( e 20 q _ i 2 , q _ j 0 · a 2 q _ i 2 · b 0 q _ j 0 ) + Σ q _ i 0 , q _ j 2 ( e 0 2 q _ i 0 , q _ j 2 · a 2 q _ i 2 · b 0 q _ i 0 ) + r q _ Z
计算cq_Z并发送到子装置Y,子装置Z第2计算部件从子装置Y接收数rq_Y、从子装置X接收cq_X,并将cq_0和cq_2分别通过
c q _ 0 = Σ q _ i 0 , q _ j 0 ( e 0 0 q _ i 0 , q _ j 0 · a 0 q _ i 0 · b 0 q _ j 0 ) + c q _ X - r q _ Z
c q _ 2 = Σ q _ i 2 , q _ j 2 ( e 22 q _ i 2 , q _ j 2 · a 2 q _ i 2 · b 2 q _ j 2 ) + c q _ Z - r q _ Y
计算,子装置Z第2随机数生成部件生成数列(αX0q_0,...,αX0q_na0-1)以及数ρZ而发送到子装置X、生成数列(αY2q_0,...,αY2q_na2-1)而发送到子装置Y,子装置Z第3计算部件计算(αY2q_0-sq_Y·a2q_0,...,αY2q_na2 -1-sq_Y·a2q_na2-1)而发送到子装置X,从子装置X接收数列(αZ0q_0,...,αZ0q_na0-1)、从子装置Y接收数列(αZ2q_0,...,αZ2q_na2-1),并计算(αX0q_0-sq_X·a0q_0,...,αX0q_na0-1-sq_X·a0q_na0-1)以及
γ Z = Σ i 2 , j 0 , q ( e 20 q _ i 2 , q _ j 0 · α Z 2 q _ i 2 · b 0 q _ j 0 ) + Σ i 0 , j 2 , q ( e 02 q _ i 0 , q _ j 2 · α Z 0 q _ i 0 · b 2 q _ j 2 ) + ρ Z
而发送到子装置Y,子装置Z第4计算部件从子装置X接收(αY1q_0-sq_Y·a1q_0,...,αY1q_na1-1-sq_Y·a1q_na1-1)、从子装置Y接收数ρY,并计算
γ Y ′ = Σ i 1 , j 2 , q { ( α Y 1 q _ i 1 - s q _ Y · a 1 q _ i 1 ) · b 2 q _ j 2 - s q _ Y · r q _ Y } + ρ Y
而发送到子装置X,子装置Z不当检测部件从子装置X接收γX、从子装置Y接收γX′和(αX1q_0-sq_X·a1q_0,...,αX1q_na1-1-sq_X·a1q_na1-1),并计算
Σ i 1 , j 0 , q { ( α X 1 q _ i 1 - s q _ X · a 1 q _ i 1 ) · b 0 q _ j 0 + s q _ X · c q _ X } - γ X + γ X ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_2和cq_0
8.一种隐匿积和计算系统,其在用于通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算来对q=0,...,m-1的共m组并列进行数据列Aq_0=(a0q_0,...,a0q_na0-1)、Aq_1=(a1q_0,...,a1q_na1-1)以及Aq_2=(a2q_0,...,a2q_na2-1)与数据列Bq_0=(b0q_0,...,b0q_nb0-1)、Bq_1=(b1q_0,...,b1q_nb1 -1)以及Bq_2=(b2q_0,...,b2q_nb2-1)的积和计算
Σ q _ i 0 , q _ j 0 ( e 00 q _ i 0 , q _ j 0 · a 0 q _ i 0 · b 0 q _ j 0 ) + Σ q _ i 0 , q _ j 1 ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 0 ( e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 · b 0 q _ j 0 ) + Σ q _ i 1 , q _ j 1 ( e 11 q _ j 1 , q _ j 1 · a 1 q _ i 1 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 2 ( e 12 q _ i 1 , q _ j 2 · a 1 q _ i 1 · b 2 q _ j 2 ) + Σ q _ i 2 , q _ j 1 ( e 21 q _ i 2 , q _ j 1 · a 2 q _ i 2 · b 1 q _ j 1 ) + Σ q _ i 2 , q _ j 2 ( e 22 q _ i 2 , q _ j 2 · a 2 q _ i 2 · b 2 q _ j 2 ) + Σ q _ i 2 , q _ j 0 ( e 20 q _ i 2 , q _ j 0 · a 2 q _ i 2 · b 0 q _ j 0 ) + Σ q _ i 0 , q _ j 2 ( e 02 q _ i 0 , q _ j 2 · a 2 q _ i 2 · b 0 q _ i 0 )
中使用,其中,
将m设为1以上的整数,将na0、na1、na2、nb0、nb1、nb2设为自然数,设为i0=0,...,na0-1、i1=0,...,na1-1、i2=0,...,na2-1、j0=0,...,nb0-1、j1=0,...,nb1-1、j2=0,...,nb2-1,
将e01q_i0,q_j1,e10q_i1,q_j0,e00q_i0,q_j0,e11q_i1,q_j1,e12q_i1,q_j2,e21q_i2,q_j1,e22q_i2,q_j2,e20q_i2,q_j0,e02q_i0,q_j2设为任意的数,
子装置X和Y预先共有数sq_Z,子装置Y和Z预先共有数sq_X,子装置Z和X预先共有数sq_Y
对子装置X输入数据列Aq_0、Aq_1、Bq_0、Bq_1,对子装置Y输入数据列Aq_1、Aq_2、Bq_1、Bq_2,对子装置Z输入数据列Aq_2、Aq_0、Bq_2、Bq_0
子装置X包括子装置X第1随机数生成部件、子装置X第1计算部件、子装置X第2计算部件、子装置X第2随机数生成部件、子装置X第3计算部件、子装置X第4计算部件以及子装置X不当检测部件,子装置X第1随机数生成部件生成数rq_X而发送到子装置Y,子装置X第1计算部件通过
c q _ X = Σ q _ i 0 , q _ j 1 ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 0 ( e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 · b 0 q _ j 0 ) + r q _ X
计算Cq_X并发送到子装置Z,子装置X第2计算部件从子装置Z接收数rq_z、从子装置Y接收Cq_Y,并将Cq_0和Cq_1分别通过
c q _ 0 = Σ q _ i 0 , q _ j 0 ( e 00 q _ i 0 , q _ j 0 · a 0 q _ i 0 · b 0 q _ j 0 ) + c q _ X - r q _ Z
c q _ 1 = Σ q _ i 1 , q _ j 1 ( e 11 q _ i 1 , q _ j 1 · a 1 q _ i 1 · b 1 q _ j 1 ) + c q _ Y - r q _ X
计算,子装置X第2随机数生成部件生成数ρx而发送到子装置Y、生成数列(αZ0q_0,...,αZ0q_na0-1)和数列(βZ0q_0,...,βZ0q_nb0-1)而发送到子装置Z,子装置X第3计算部件计算(αZ0q_0-sq_Z·a0q_0,...,αZ0q_na0-1-sq_Z·a0q_na0-1)和(βZ0q_0-sq_Z·b0q_0,...,βZ0q_nb0-1-sq_Z·b0q_nb0-1)而发送到子装置Y,从子装置Y接收数列(αX1q_0,...,αX1q_na1-1)和数列(βX1q_0,...,βX1q_nb1-1),并计算
γ X = Σ i 1 , j 0 , q ( e 10 q _ i 1 , q _ j 0 · α X 1 q _ i 1 · b 0 q _ j 0 ) + Σ i 0 , j 1 , q ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · β X 1 q _ j 1 ) + ρ X
而发送到子装置Z,子装置X第4计算部件从子装置Z接收ρZ,并计算 γ Z ′ = Σ q ( - s q _ Z · r q _ Z ) + ρ Z
而发送到子装置Y,子装置X不当检测部件从子装置Y接收γY、从子装置Z接收γY′、(αY2q_0-sq_Y·a2q_0,...,αY2q_na2-1-sq_Y·a2q_na2-1)以及(βY2q_0-sq_Y·b2q_0,...,βY2q_nb2-1-sq_Y·b2q_nb2-1),并计算
Σ i 1 , i 2 , j 1 , j 2 , q { e 21 q _ i 2 , q _ j 1 · ( α Y 2 q _ i 2 - s q _ Y · a 2 q _ i 2 ) · b 1 q _ j 1 + e 10 q _ i 1 , q _ j 0 · ( βY 2 q _ j 2 - s q _ Y · b 2 q _ j 2 ) · a 1 q _ i 1 + s q _ Y · · c q _ Y } - γ Y + γ Y ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出Cq_0和Cq_1
子装置Y包括子装置Y第1随机数生成部件、子装置Y第1计算部件、子装置Y第2计算部件、子装置Y第2随机数生成部件、子装置Y第3计算部件、子装置Y第4计算部件以及子装置Y不当检测部件,子装置Y第1随机数生成部件生成数rq_Y而发送到子装置Z,子装置Y第1计算部件通过
c q _ Y = Σ q _ i 1 , q _ j 2 ( e 12 q _ i 1 , q _ j 2 · a 1 q _ i 1 · b 2 q _ j 2 ) + Σ q _ i 2 , q _ j 1 ( e 21 q _ i 2 , q _ j 1 · a 2 q _ i 2 · b 1 q _ j 1 ) + r q _ Y
计算Cq_Y而发送到子装置X,子装置Y第2计算部件从子装置X接收数rq_X、从子装置Z接收Cq_Z,并将Cq_1和Cq_2分别通过
c q _ 1 = Σ q _ i 1 , q _ j 1 ( e 11 q _ i 1 , q _ j 1 · a 1 q _ i 1 · b 1 q _ j 1 ) + c q _ Y - r q _ X
c q _ 2 = Σ q _ i 2 , q _ j 2 ( e 22 q _ i 2 , q _ j 2 · a 2 q _ i 2 · b 2 q _ j 2 ) + c q _ Z - r q _ Y
计算,子装置Y第2随机数生成部件生成数ρY而发送到子装置Z、生成数列(αX1q_0,...,αX1q_na1-1)和数列(βX1q_0,...,βX1q_nb1-1)而发送到子装置X,子装置Y第3计算部件计算(αX1q_0-sq_X·a1q_0,...,αX1q_na1- 1-sq_X·a1q_na1-1)和(βX1q_0-sq_X·b1q_0,...,βX1q_nb1-1-sq_X·b1q_nb1- 1)而发送到子装置Z,从子装置Z接收数列(αY2q_0,...,αY2q_na2-1)和数列(βY2q_0,...,βY2q_nb2-1),并计算
γ Y = Σ i 2 , j 1 , q ( e 21 q _ i 2 , q _ j 1 · α Y 2 q _ i 2 · b 1 q _ j 1 ) + Σ i 1 , i 2 , q ( e 12 q _ i 1 , q _ j 2 · a 1 q _ i 1 · β Y 2 q _ j 2 ) + ρ Y
而发送到子装置X,子装置Y第4计算部件从子装置X接收数ρX,并计算 γ X ′ = Σ q ( - s q _ X · r q _ X ) + ρ X
而发送到子装置Z,子装置Y不当检测部件从子装置X接收γZ′、(αZ0q_0-sq_Z·a0q_0,...,αZ0q_na0-1-sq_Z·a0q_na0-1)以及(βZ0q_0-sq_Z·b0q_0,...,βZ0q_nb0-1-sq_Z·b0q_nb0-1)、从子装置Z接收γZ,并计算
Σ i 0 , i 2 , j 0 , j 2 , q { e 02 q _ i 0 , q _ j 2 · ( αZ 0 q _ i 0 - s q _ Z · a 0 q _ i 0 ) · b 2 q _ j 2 + e 20 q _ i 2 , q _ j 0 · ( βZ 0 q _ j 0 - s q _ Z · b 0 q _ j 0 ) · a 2 q _ i 2 + s q _ Z · c q _ Z } - γ Z + γ Z ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_1和cq_2
子装置Z包括子装置Z第1随机数生成部件、子装置Z第1计算部件、子装置Z第2计算部件、子装置Z第2随机数生成部件、子装置Z第3计算部件、子装置Z第4计算部件以及子装置Z不当检测部件,子装置Z第1随机数生成部件生成数rq_Z而发送到子装置X,子装置Z第1计算部件通过
c q _ Z = Σ q _ i 2 , q _ j 0 ( e 20 q _ i 2 , q _ j 0 · a 2 q _ i 2 · b 0 q _ j 0 ) + Σ q _ i 0 , q _ j 2 ( e 02 q _ i 0 , q _ j 2 · a 2 q _ i 2 · b 0 q _ i 0 ) + r q _ Z
计算cq_Z并发送到子装置Y,子装置Z第2计算部件从子装置Y接收数rq_Y、从子装置X接收cq_X,并将cq_0和cq_2分别通过
c q _ 0 = Σ q _ i 0 , q _ j 0 ( e 00 q _ i 0 , q _ j 0 · a 0 q _ i 0 · b 0 q _ j 0 ) + c q _ X - r q _ Z
c q _ 2 = Σ q _ i 2 , q _ j 2 ( e 22 q _ i 2 , q _ j 2 · a 2 q _ i 2 · b 2 q _ j 2 ) + c q _ Z - r q _ Y
计算,子装置Z第2随机数生成部件生成数ρZ而发送到子装置X、生成数列(αY2q_0,...,αY2q_na2-1)和数列(βY2q_0,...,βY2q_nb2-1)而发送到子装置Y,子装置Z第3计算部件计算(αY2q_0-sq_Y·a2q_0,...,αY2q_na2- 1-sq_Y·a2q_na2-1)和(βY2q_0-sq_Y·b2q_0,...,βY2q_nb2-1-sq_Y·b2q_nb2- 1)而发送到子装置X,从子装置X接收数列(αZ0q_0,...,αZ0q_na0-1)和数列(βZ0q_0,...,βZ0q_nb0-1),并计算
γ Z = Σ i 0 , j 2 , q ( e 02 q _ i 0 , q _ j 2 · α Z 0 q _ i 0 · b 2 q _ j 0 ) + Σ i 2 , j 0 , q ( e 20 q _ i 2 , q _ j 0 · a 2 q _ i 2 · βZ 0 q _ j 0 ) + ρ Z
而发送到子装置Y,子装置Z第4计算部件从子装置Y接收数ρY,并计算
γ Y ′ = Σ q ( - s q _ Y · r q _ Y ) + ρ Y
而发送到子装置X,子装置Z不当检测部件从子装置X接收γX、从子装置Y接收γX′、(αX1q_0-sq_X·a1q_0,...,αX1q_na1-1-sq_X·a1q_na1-1)以及(βX1q_0-sq_X·b1q_0,...,βX1q_nb1-1-sq_X·b1q_nb1-1),并计算
Σ i 0 , i 1 , j 0 , j 1 , q { e 10 q _ i 1 , q _ j 0 · ( αX 1 q _ i 1 - s q _ X · a 1 q _ i 1 ) · b 0 q _ j 0 + e 01 q _ i 0 , q _ j 1 · ( βX 1 q _ j 1 - s q _ X · b 1 q _ j 1 ) · a 0 q _ i 0 + s q _ X · c q _ X } - γ X + γ X ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_2和cq_0
9.一种隐匿积和计算系统,其在用于通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算来对q=0,...,m-1的共m组并列进行数据列Aq_0=(a0q_0,...,a0q_na0-1)以及Aq_1=(a1q_0,...,a1q_na1-1)与数据列Bq_0=(b0q_0,...,b0q_nb0-1)以及Bq_1=(b1q_0,...,b1q_nb1-1)的积和计算 Σ q _ i 0 , q _ j 1 ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 0 ( e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 · b 0 q _ j 0 )
中使用,其中,
将m设为1以上的整数,将na0、na1、nb0、nb1设为自然数,设为i0=0,...,na0-1、i1=0,...,na1-1、j0=0,...,nb0-1、j1=0,...,nb1-1,
将e01q_i0,q_j1,e10q_i1,q_j0设为任意的数,
对子装置X输入数据列Aq_0、Aq_1、Bq_0、Bq_1,对子装置Y输入数据列Aq_1、Bq_1,对子装置Z输入数据列Aq_0、Bq_0
子装置X包括子装置X随机数生成部件和子装置X计算部件,子装置X随机数生成部件生成数cq_1、数γ1、数列(α1q_0,...,α1q_nb0-1)以及数列(β1q_0,...,β1q_na0-1)而发送到子装置Y,子装置X计算部件通过
c q _ 0 = Σ q _ i 0 , q _ j 1 ( e 01 q _ i 0 , q _ j 1 · a 0 q _ i 0 · b 1 q _ j 1 ) + Σ q _ i 1 , q _ j 0 ( e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 · b 0 q _ j 0 ) - c q _ 1
γ 0 = Σ i 0 , j 0 , q ( a 0 q _ i 0 · β 1 q _ i 0 + b 0 q _ j 0 · α 1 q _ j 0 ) - γ 1
计算cq_0和γ0并发送到子装置Z,
子装置Y包括子装置Y随机数生成部件和子装置Y计算部件,子装置Y随机数生成部件生成数sq而发送到子装置Z,子装置Y计算部件从子装置X接收数cq_1、数γ1、数列(α1q_0,...,α1q_nb0-1)以及数列(β1q_0,...,β1q_na0-1),并将数列(α0q_0,...,α0q_nb0-1)、数列(β0q_0,...,β0q_na0- 1)以及γ′分别通过
α 0 q _ j 0 = Σ q , q _ i 1 s q · e 10 q _ i 1 , q _ j 0 · a 1 q _ i 1 - α 1 q _ j 0
β 0 q _ i 0 = Σ q , q _ j 1 s q · e 01 q _ i 0 , q _ j 1 · b 1 q _ j 1 - β 1 q _ i 0
γ ′ = Σ q s q · c q - 1 - γ 1
计算并发送到子装置Z,
子装置Z包括不当检测部件,从子装置X接收cq_0和γ0、从子装置Y接收数sq、数列(α0q_0,...,α0q_nb0-1)、数列(β0q_0,...,β0q_na0-1)以及γ′,并计算
Σ q s q · c q _ 0 - γ 0 - Σ i 0 , j 0 , q ( a 0 q _ i 0 · β 0 q _ i 0 + b 0 q _ j 0 · α 0 q _ j 0 ) + γ ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,
若在不当检测部件中的计算结果为0,则从子装置X输出cq_0和cq_1、从子装置Y输出cq_1和0、从子装置Z输出0和cq_0
10.一种隐匿积和计算系统,其在用于通过子装置X、子装置Y、子装置Z的三个计算装置的协调计算来对q=0,...,m-1的共m组并列进行数据a0以及a1与数据列Bq_0=(b0q_0,...,b0q_nb0-1)以及Bq_1=(b1q_0,...,b1q_nb1-1)的积和计算
Σ q _ i a 0 · b 1 q _ i + Σ q _ i a 1 · b 0 q _ i
中使用,其中,
将m设为1以上的整数,将n设为自然数,设为i=0,...,n-1,
对子装置X输入数据a0以及a1和数据列Bq_0以及Bq_1,对子装置Y输入数据a1和数据列Bq_1,对子装置Z输入数据a0和数据列Bq_0
子装置X包括子装置X随机数生成部件和子装置X计算部件,子装置X随机数生成部件生成数cq_1、数γ1、数列(α1q_0,...,α1q_n-1)以及数β1而发送到子装置Y,子装置X计算部件通过
c q _ 0 = Σ q _ i a 0 · b 1 q _ i + Σ q _ i a 1 · b 0 q _ i - c q _ 1
γ 0 = a 0 · β 1 + Σ i , q b 0 q _ i · α 1 q _ i - γ 1
而计算cq_0和γ0而发送到子装置Z,
子装置Y包括子装置Y随机数生成部件和子装置Y计算部件,子装置Y随机数生成部件生成数sq而发送到子装置Z,子装置Y计算部件从子装置X接收数cq_1、数γ1、数列(α1q_0,...,α1q_n-1)以及数β1,并将数列(α0q_0,...,α0q_n-1)、β0以及γ′分别通过
α 0 q _ i = Σ q s q · a 1 - α 1 q _ i
β 0 = Σ i , q s q · b 1 q _ i - β 1
γ ′ = Σ q s q · c q - 1 - γ 1
计算,并发送到子装置Z,
子装置Z包括不当检测部件,从子装置X接收cq_0和γ0、从子装置Y接收数sq、数列(α0q_0,...,α0q_n-1)、β0以及γ′,并计算
Σ q s q · c q _ 0 - γ 0 - a 0 · β 0 - Σ i , q b 0 q _ i · α 0 q _ i + γ ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,
若在不当检测部件中的计算结果为0,则从子装置X输出cq_0和cq_1、从子装置Y输出cq_1和0、从子装置Z输出0和cq_0
11.一种计算装置,其在处理对称的子装置X、子装置Y、子装置Z的三个所述计算装置协调进行积和计算时使用,其中,
在设为任一个所述计算装置为子装置P时,在子装置P为子装置X的情况下,设为子装置Z为子装置P-、子装置Y为子装置P+、符号0p、1p分别为0、1,在子装置P为子装置Y的情况下,设为子装置X为子装置P-、子装置Z为子装置P+、符号0p、1p分别为1、2,在子装置P为子装置Z的情况下,设为子装置Y为子装置P-、子装置X设为子装置P+、符号0p、1p分别为2、0,
将na0p、na1p、nb0p、nb1p设为自然数,设为i0p=0,...,na0p-1、i1p=0,...,na1p-1、j0p=0,...,nb0p-1、j1p=0,...,nb1p-1,
将e0p1pi0p,j1p,e1p0pi1p,j0p,e0p0pi0p,j0p,e1p1pi1p,j1p设为任意的数,
所述子装置P包括:
生成数rP而发送到子装置P+的随机数生成部件;
被输入数据列A0p=(a0p0,...,a0pna0p-1)、数据列A1p=(a1p0,...,a1pna1p-1)、数据列B0p=(b0p0,...,b0pnb0p-1)以及数据列B1p=(b1p0,...,b1pnb1p-1),且通过
c P = Σ o 0 p , j 1 p ( e 0 p 1 p i 0 p , j 1 p · a 0 p i 0 p · b 1 p j 1 p ) + Σ i 1 p , j 0 p ( e 1 p 0 p i 1 p , j 0 p · a 1 p i 1 p · b 0 p j 0 p ) + r p
计算cP并发送到子装置P-的第1计算部件;以及
从子装置P-接收数rP-、从子装置P+接收cP+,并将c0p和c1p分别通过
c 0 p = Σ i 0 p , j 0 p ( e 0 p 0 p i 0 p , j 0 p · a 0 p i 0 p · b 0 p j 0 p ) + c P - r P -
c 1 p = Σ i 1 p , j 1 p ( e 1 p 1 p i 1 p , j 1 p · a 1 p i 1 p · b 1 p j 1 p ) + c P + - r P
计算的第2计算部件。
12.一种计算装置,其在处理对称的子装置X、子装置Y、子装置Z的三个所述计算装置协调进行积和计算时使用,其中,
在设为任一个所述计算装置为子装置P时,在子装置P为子装置X的情况下,子装置Z设为子装置P-、子装置Y设为子装置P+、符号0p、1p、2p分别设为0、1、2,在子装置P为子装置Y的情况下,子装置X设为子装置P-、子装置Z设为子装置P+、符号0p、1p、2p分别设为1、2、0,在子装置P为子装置Z的情况下,子装置Y设为子装置P-、子装置X设为子装置P+、符号0p、1p、2p分别设为2、0、1,
将m设为1以上的整数,将na0p、na1p、na2p、nb0p、nb1p设为自然数,设为q=0,...,m-1、i0p=0,...,na0p-1、i1p=0,...,na1p-1、i2p=0,...,na2p-1、j0p=0,...,nb0p-1、j1p=0,...,nb1p-1,
将e0p1pi0p,i1p、e1p0pi1p,j0p、e0p0pi0p,j0p、e1p1pi1p,j1p设为任意的数,
子装置P-和P预先共有数sq_P+,子装置P和P+预先共有数sq_P-,子装置P+和P-预先共有数sq_P
子装置P包括:
生成数rq_P而发送到子装置P+的第1随机数生成部件;
被输入数据列Aq_0p=(a0pq_0,...,a0pq_na0p-1)、数据列Aq_1p=(a1pq_0,...,a1pq_na1p-1)、数据列Bq_0p=(b0pq_0,...,b0pq_nb0p-1)以及数据列Bq_1p=(b1pq_0,...,b1pq_nb1p-1),且通过
c q _ P = Σ q _ i 0 p , q _ j 1 p ( e 0 p 1 p q _ i 0 p , q _ j 1 p · a 0 p q _ i 0 p · b 1 p q _ j 1 p ) + Σ q _ i 1 p , q _ j 0 p ( e 1 p 0 p q _ i 1 p , q _ j 0 p · alp q _ i 1 p · b 0 p q _ j 0 p ) + r q _ P
计算cq_P并发送到子装置P-的第1计算部件;
从子装置P-接收数rq_P-、从子装置P+接收cq_P+,将cq_0p和cq_1p分别通过
c q _ 0 p = Σ q _ i 0 p , q _ j 0 p ( e 0 p 0 p q _ i 0 p , q _ j 0 p · a 0 p q _ i 0 p · b 0 p q _ j 0 p ) + c q _ P - r q _ P -
c q _ 1 p = Σ q _ i 1 p , q _ j 1 p ( e 1 p 1 p q _ i 1 p , q _ j 1 p · a 1 p q _ i 1 p · b 1 p q _ j 1 p ) + c q _ P + - r q _ P
计算的第2计算部件;
生成数列(αP+1pq_0,...,αP+1Pq_na1p-1)以及数ρP而发送到子装置P+、生成数列(αP-0pq_0,...,αP-0pq_na0p-1)而发送到子装置P-的第2随机数生成部件;
计算(αP-0pq_0-sq_P-·a0pq_0,...,αP-0pq_na0p-1-sq_P-·a0pq_na0p-1)而发送到子装置P+、从子装置P+接收数列(αP1Pq_0,...,αP1pq_na1p-1)、从子装置P-接收数列(αP0pq_0,...,αP0pq_na0p-1),并计算(αP+1pq_0-sq_P+·a1pq_0,...,αP+1Pq_na1p-1-sq_P+·a1pq_na1p-1)以及
γ P = Σ i 0 p , j 1 p , q ( e 0 p 1 p i 0 p , j 1 p · αP 0 p q _ i 0 p · b 1 p q _ j 1 p ) + Σ i 1 p , j 0 p , q ( e 1 p 0 p i 1 p , j 0 p · αP 1 p q _ i 1 p · b 0 p q _ j 0 p ) + ρ P
而发送到子装置P-的第3计算部件;
从子装置P+接收(αP-2pq_0-sq_P-·a2pq_0,...,αP-2pq_na2p-1-sq_p-·a2pq_na2p-1)、从子装置P-接收ρP-,并计算
γ P - ′ = Σ i 2 p , j 0 p , q { ( αP _ 2 p q _ i 2 p - s q _ P - · a 2 p q _ i 2 p ) · b 0 p q _ j 0 p - s q _ P - · r q _ P - } + ρ P -
而发送到子装置P+的第4计算部件;以及
从子装置P+接收γP+、从子装置P-接收γ′P+和(αP+2pq_0-sq_P+·a2pq_0,...,αP+2pq_na2p-1-sq_P+·a2pq_na2p-1),并计算
Σ i 2 p , j 1 p , q { ( αP + 2 p q _ i 2 p - s q _ P + · a 2 p q _ i 2 p ) · b 1 p q _ j 1 p + s q _ P + · c q _ P + } - γ P + + γ P + ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_0p和cq_1p的不当检测部件。
13.一种计算装置,其在处理对称的子装置X、子装置Y、子装置Z的三个所述计算装置协调进行积和计算时使用,其中,
在设为任一个所述计算装置为子装置P时,在子装置P为子装置X的情况下,子装置Z设为子装置P-、子装置Y设为子装置P+、符号0p、1p、2p分别设为0、1、2,在子装置P为子装置Y的情况下,子装置X设为子装置P-、子装置Z设为子装置P+、符号0p、1p、2p分别设为1、2、0,在子装置P为子装置Z的情况下,子装置Y设为子装置P-、子装置X设为子装置P+、符号0p、1p、2p分别设为2、0、1,
将m设为1以上的整数,将na0p、na1p、na2p、nb0p、nb1p、nb2p设为自然数,设为q=0,...,m-1、i0p=0,...,na0p-1、i1p=0,...,na1p-1、i2p=0,...,na2p-1、j0p=0,...,nb0p-1、j1p=0,...,nb1p-1、j2p=0,...,nb2p-1,
将e0p1pi0p,j1p,e1p0pi1p,j0p,e0p0pi0p,j0p,e1p1pi1p,j1p设为任意的数,
子装置P-和P预先共有数sq_P+、子装置P和P+预先共有数sq_P-、子装置P+和P-预先共有数sq_P
子装置P包括:
生成数rq_P而发送到子装置P+的第1随机数生成部件;
被输入数据列Aq_0p=(a0pq_0,...,a0pq_na0p-1)、数据列Aq_1p=(a1pq_0,...,a1pq_na1p-1)、数据列Bq_0p=(b0pq_0,...,b0pq_nb0p-1)以及数据列Bq_1p=(b1pq_0,...,b1pq_nb1p-1),且通过
c q _ P = Σ q _ i 0 p , q _ j 1 p ( e 0 p 1 p q _ i 0 p , q _ j 1 p · a 0 p q _ i 0 p · b 1 p q _ j 1 p ) + Σ q _ i 1 p , q _ j 0 p ( e 1 p 0 p q _ i 1 p . q _ j 0 p · a 1 p q _ i 1 p · b 0 p q _ j 0 p ) + r q _ P
计算cq_P并发送到子装置P-的第1计算部件;
从子装置P-接收数rq_P-、从子装置P+接收cq_P+,将cq_0p和cq_1p分别通过
c q _ 0 p = Σ q _ i 0 p , q _ j 0 p ( e 0 p 0 p q _ i 0 p , q _ j 0 p · a 0 p q _ i 0 p · b 0 p q _ j 0 p ) + c q _ P - r q _ P -
c q _ 1 p = Σ q _ i 1 p , q _ j 1 p ( e 1 p 1 p q _ i 1 p , q _ j 1 p · a 1 p q _ i 1 p · b 1 p q _ j 1 p ) + c q _ P + - r q _ P
计算的第2计算部件;
生成数ρP而发送到子装置P+、生成数列(αP_0pq_0,...,αP_0pq_na0p-1)以及数列(βP_0pq_0,...,βP_0pq_nb0p-1)而发送到子装置P-的第2随机数生成部件;
计算(αP_0pq_0-sq_P-·a0pq_0,...,αP_0pq_na0p-1-sq_P-·a0pq_na0p-1)和(βP_0pq_0—sq_P-·b0pq_0,...,βP_0pq_na0p-1-sq_P-·b0pq_na0p-1)而发送到子装置P+,从子装置P+接收数列(αP1Pq_0,...,αP1pq_na1p-1)和数列(βP1pq_0,...,βP1pq_nb1p-1),并计算
γ P = Σ i 1 p , j 0 p , q ( e 1 p 0 p i 1 p , j 0 p · α P 1 p q _ i 1 p · b 0 p q _ j 0 p ) + Σ i 0 p , j 1 p , q ( e 0 p 1 p i 0 p , j 1 p · a 0 p q _ i 0 p · β P 1 p q _ j 1 p + ρ P )
而发送到子装置P-的第3计算部件;
从子装置P-接收ρP-,并计算
γ P - ′ = Σ q ( - s q _ P - · r q _ P - ) + ρ P -
而发送到子装置P+的第4计算部件;以及
从子装置P+接收γP+、从子装置P-接收γ′P+、(αP+2pq_0—sq_P+·a2pq_0,...,αP+2pq_na2p-1-sq_P+·a2pq_na2p-1)以及(βP+2pq_0—sq_p+·b2pq_0,...,βP+2pq_na2p-1-sq_P+·b2pq_na2p-1),并计算
Σ i 1 p , i 2 p , j 1 p . j 2 p , q { ( αP + 2 p q _ i 2 p - s q _ P + · a 2 p q _ i 2 p ) · b 1 p q _ j 1 p + ( βP + 2 p q _ j 2 p - s q _ P + · b 2 p q _ j 2 p ) · a 1 p q _ i 1 p + s q _ P + · c q _ P + } - γ P + + γ P + ′
,若计算结果不为0则输出表示不当检测的数据并结束处理,若为0则输出cq_0p和cq_1p的不当检测部件。
CN201280006168.2A 2011-01-24 2012-01-20 隐匿积和计算方法、隐匿积和计算系统、计算装置 Active CN103329185B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
JP2011-012126 2011-01-24
JP2011012126 2011-01-24
JP2011-054965 2011-03-14
JP2011054965 2011-03-14
JP2011110635 2011-05-17
JP2011-110635 2011-05-17
PCT/JP2012/051199 WO2012102203A1 (ja) 2011-01-24 2012-01-20 秘匿積和計算方法、秘匿積和計算システム、計算装置、及びそれらのプログラム

Publications (2)

Publication Number Publication Date
CN103329185A CN103329185A (zh) 2013-09-25
CN103329185B true CN103329185B (zh) 2015-07-15

Family

ID=46580772

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280006168.2A Active CN103329185B (zh) 2011-01-24 2012-01-20 隐匿积和计算方法、隐匿积和计算系统、计算装置

Country Status (5)

Country Link
US (1) US9292258B2 (zh)
EP (1) EP2669878B8 (zh)
JP (1) JP5450839B2 (zh)
CN (1) CN103329185B (zh)
WO (1) WO2012102203A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9860058B2 (en) * 2013-01-17 2018-01-02 Nippon Telegraph And Telephone Corporation Secret computation system, arithmetic unit, secret computation method and program
JP5957126B1 (ja) * 2015-06-24 2016-07-27 日本電信電話株式会社 秘密計算装置、秘密計算方法、およびプログラム
JP6006842B1 (ja) * 2015-07-22 2016-10-12 日本電信電話株式会社 秘密計算装置、その方法、およびプログラム
JP6023858B1 (ja) * 2015-08-17 2016-11-09 日本電信電話株式会社 計算システム、計算装置、その方法、およびプログラム
JP6607257B2 (ja) 2015-08-31 2019-11-20 日本電気株式会社 秘密計算システム、秘密計算装置、および、秘密計算方法
WO2017065123A1 (ja) * 2015-10-13 2017-04-20 日本電信電話株式会社 秘密乱数合成装置、秘密乱数合成方法、およびプログラム
US11200346B2 (en) 2016-07-06 2021-12-14 Nippon Telegraph And Telephone Corporation Secure computation for reading multiple elements from a secure text array
CN109478381B (zh) * 2016-07-06 2021-12-14 日本电信电话株式会社 秘密计算系统、秘密计算装置、秘密计算方法以及程序
CN110800034B (zh) * 2017-07-05 2023-05-02 日本电信电话株式会社 秘密计算系统、秘密计算装置、秘密计算方法、程序以及记录介质
US10635398B2 (en) * 2018-03-15 2020-04-28 Macronix International Co., Ltd. Voltage sensing type of matrix multiplication method for neuromorphic computing system
EP3806071B1 (en) * 2018-05-25 2023-03-22 Nippon Telegraph And Telephone Corporation Secret collective approximation system, secret calculation device, secret collective approximation method, and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1245578A (zh) * 1997-01-28 2000-02-23 松下电器产业株式会社 信息复原型署名装置
JP2007124612A (ja) * 2006-06-14 2007-05-17 Chiba Univ 鍵生成プログラム
US20100091986A1 (en) * 2006-11-10 2010-04-15 Laputa, Inc. Information Management System and Encryption System

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2438543A (en) * 2005-01-17 2007-11-28 Seemant Shankar Mathur Method and system for secure authentication and data exchange in client server architecture
US8225106B2 (en) * 2008-04-02 2012-07-17 Protegrity Corporation Differential encryption utilizing trust modes
US8675877B2 (en) * 2008-08-29 2014-03-18 Red Hat, Inc. Sharing a secret via linear interpolation
US8989391B2 (en) * 2010-10-06 2015-03-24 Nippon Telegraph And Telephone Corporation Secret sharing system, secret sharing apparatus, secret sharing method, secret sorting method and secret sharing program
IL210169A0 (en) * 2010-12-22 2011-03-31 Yehuda Binder System and method for routing-based internet security

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1245578A (zh) * 1997-01-28 2000-02-23 松下电器产业株式会社 信息复原型署名装置
JP2007124612A (ja) * 2006-06-14 2007-05-17 Chiba Univ 鍵生成プログラム
US20100091986A1 (en) * 2006-11-10 2010-04-15 Laputa, Inc. Information Management System and Encryption System

Also Published As

Publication number Publication date
JP5450839B2 (ja) 2014-03-26
EP2669878B8 (en) 2015-11-18
US9292258B2 (en) 2016-03-22
EP2669878B1 (en) 2015-09-30
EP2669878A1 (en) 2013-12-04
US20130304780A1 (en) 2013-11-14
EP2669878A4 (en) 2014-10-08
WO2012102203A1 (ja) 2012-08-02
CN103329185A (zh) 2013-09-25
JPWO2012102203A1 (ja) 2014-06-30

Similar Documents

Publication Publication Date Title
CN103329185B (zh) 隐匿积和计算方法、隐匿积和计算系统、计算装置
CN103403781A (zh) 隐匿积和结合系统、计算装置、隐匿积和结合方法、以及其程序
CN102970132B (zh) 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法
CN111538782B (zh) 基于区块链的能源大数据管理系统
JP6973868B2 (ja) 秘密計算方法、装置、およびプログラム
CN108140335B (zh) 秘密随机数合成装置、秘密随机数合成方法以及记录介质
Hu et al. Quantum image encryption scheme based on 2d s ine 2-l ogistic chaotic map
CN106453276A (zh) 一种基于单服务器的安全复合模指数外包计算方法
CN114358782A (zh) 区块链交易审计方法、装置、设备及存储介质
US20100329447A1 (en) Encryption apparatus, decryption apparatus, key generation apparatus, and program
CN106712928A (zh) 基于大数据彩虹表的解密方法和装置
Zarebnia et al. Image encryption algorithm by fractional based chaotic system and framelet transform
Lu et al. Cryptanalysis and Improvement of a Chaotic Map-Control-Based and the Plain Image-Related Cryptosystem.
CN102867286A (zh) 数字水印生成、嵌入、检测方法和装置
Basu A new parallel window-based implementation of the elliptic curve point multiplication in multi-core architectures
Ning et al. Construction of new 5D Hamiltonian conservative hyperchaotic system and its application in image encryption
Sudeepa et al. Generation of maximum length non-binary key sequence and its application for stream cipher based on residue number system
CN109416894A (zh) 秘密计算系统、秘密计算装置、秘密计算方法以及程序
CN115118411B (zh) 链下多方可信计算方法、装置、设备及存储介质
Shakir et al. 3D chaos graph deep learning method to encrypt and decrypt digital image
CN106301756B (zh) 用于sm2签名的大数模幂求逆功耗检测方法及其系统
Shakir et al. Image encryption using lorenz chaotic system
Yoshikawa et al. Security verification simulator for fault analysis attacks
Burtseva et al. Parallel implementation of algorithm for creating and verifying digital signature based on elliptic curves
Chen et al. EVFLR: Efficient Vertical Federated Logistic Regression Based on Batch Operations

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