CN111628991A - 一种通用且抗恶意敌手的安全计算方法 - Google Patents

一种通用且抗恶意敌手的安全计算方法 Download PDF

Info

Publication number
CN111628991A
CN111628991A CN202010449393.XA CN202010449393A CN111628991A CN 111628991 A CN111628991 A CN 111628991A CN 202010449393 A CN202010449393 A CN 202010449393A CN 111628991 A CN111628991 A CN 111628991A
Authority
CN
China
Prior art keywords
commitment
encryption circuit
input
data provider
calculator
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.)
Granted
Application number
CN202010449393.XA
Other languages
English (en)
Other versions
CN111628991B (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.)
Anhui University
Original Assignee
Anhui University
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 Anhui University filed Critical Anhui University
Priority to CN202010449393.XA priority Critical patent/CN111628991B/zh
Publication of CN111628991A publication Critical patent/CN111628991A/zh
Application granted granted Critical
Publication of CN111628991B publication Critical patent/CN111628991B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/08Auctions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Development Economics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种通用且抗恶意敌手的安全计算方法,是应用于由n个数据提供者提供计算输入和两个非共谋的计算方执行安全计算所组成的场景中,并包括以下步骤:1、输入承诺;2、承诺构造检查;3、标签一致性检验及标签计算;4、加密电路计算;5、输出验证。本发明能解决当前恶意敌手模型中多个数据提供者(如安全的云资源拍卖)的安全计算问题,从而能对输入和输出进行正确性和一致性的检查和对计算过程的检验,在恶意敌手存在的前提下实现隐私保护。

Description

一种通用且抗恶意敌手的安全计算方法
技术领域
本发明涉及网络与信息安全技术领域,尤其涉及一种通用且抗恶意敌手的安全计算方法。
背景技术
安全多方计算允许多个参与方共同计算一个在各自私有输入上的函数,同时保护每个参与方的输入不泄漏给其他方。由于安全多方计算和云计算技术的迅猛发展,研究者们提出了许多实用的安全计算方案。以拍卖为例,满足不同属性(如真实性、社会福利最大化等)的云资源拍卖机制有很多。然而,云资源拍卖的安全性却很少被考虑。如果没有安全保障,一些敏感信息可能会泄露,可能会造成不可弥补的损失。所以不同的安全拍卖机制得到了广泛的研究,在满足各种经济属性的同时保护拍卖隐私。为了解决拍卖过程中的隐私问题,将安全多方计算技术和拍卖机制结合是大家研究的目标。此类方案中,研究者们使用加密电路、秘密分享、同态加密等技术来保护隐私。然而,当前的安全拍卖方案,尤其是云资源拍卖,只在半诚实的敌手存在的情况下提供安全性。一旦存在恶意方,这些方案都不足以保证拍卖的安全性。
在现实生活中,存在这样一类通用的安全计算场景。在此场景中,多个数据所有者希望联合且安全地分析他们的数据。例如,私有数据由数据所有者持有,为了保护数据的隐私,数据所有者只提供加密后的输入数据。然后,计算方只负责参与计算,也就是说,计算方接收加密的输入数据并执行安全计算。最后,将加密的计算结果返回给数据所有者,而计算方不知道任何的明文结果。在满足上述计算场景的前提下,为了在恶意敌手存在的情况下保护数据的隐私,存在不小的挑战。而目前的方案没有同时满足输入的正确性和一致性,在计算过程中计算方不作假和验证最后的输出。
由此可见,在上述安全计算场景中,应该考虑到信息的隐私保护。也就是说,不仅要保护计算过程的隐私性,而且要对计算之前的输入阶段和计算之后的输出阶段进行检查。
发明内容
本发明为克服现有技术的不足之处,提供一种通用且抗恶意敌手的安全计算方法,以期能解决当前恶意敌手模型中多个数据提供者(如安全的云资源拍卖)的安全计算问题,从而能对输入和输出进行正确性和一致性的检查和对计算过程的检验,在恶意敌手存在的前提下实现隐私保护。
本发明为达到上述发明目的,采用如下技术方案:
本发明一种通用且抗恶意敌手的安全计算方法的特点是应用于由n个数据提供者{d1,d2,...,du,...,dn}持有各自的私有输入数据{x1,x2,...,xu,...,xn},并由两个非共谋的计算方P1和P2接收加密的私有输入数据后在两个加密电路中执行安全计算,从而得到最终输出{y1,y2,...,yu,...,yn}所组成的场景中;其中,du表示第u个数据提供者;xu表示第u个数据提供者du的私有输入数据;yu表示第u个数据提供者du的最终输出;u=1,2,...,n;所述安全计算方法包括以下步骤:
步骤1、输入承诺:
步骤1.1、定义所述私有输入数据xu的位数为l;所述私有输入数据xu的每一位输入对应的承诺集合对的数量为s;
对于第u个数据提供者du的私有输入数据xu的第i位输入,第u个数据提供者du按式(1)和式(2)共同产生s个承诺集合对
Figure BDA0002506974870000021
Figure BDA0002506974870000022
Figure BDA0002506974870000023
式(1)和式(2)中,com表示最佳绑定承诺方案;com(·)表示一个承诺;||表示字符串之间的连接符;b表示第i位的乱序值,且在每个承诺集合对中随机、独立地被选择,b∈{0,1};Wu,i,j和W′u,i,j分别表示第u个数据提供者du的第i位输入的第j个承诺集合对中第一个承诺集合和第二个承诺集合;
Figure BDA0002506974870000024
Figure BDA0002506974870000025
分别表示第u个数据提供者du的第i位输入的第j个承诺集合对在第一个加密电路中分配给0和1的标签;
Figure BDA0002506974870000026
Figure BDA0002506974870000027
分别表示第u个数据提供者du的第i位输入的第j个承诺集合对在第二个加密电路中分配给b和1-b的标签;
Figure BDA0002506974870000028
Figure BDA0002506974870000029
分别表示第u个数据提供者du的第i位输入的第j个承诺集合对在第二个加密电路中分配给0和1的标签;
Figure BDA00025069748700000210
Figure BDA00025069748700000211
分别表示第u个数据提供者du的第i位输入的第j个承诺集合对在第一个加密电路中分配给b和1-b的标签;j=1,...,s;
步骤1.2、第u个数据提供者du为s个承诺集合对
Figure BDA00025069748700000212
产生一个位置集
Figure BDA00025069748700000213
其中,bu,i,j表示第u个数据提供者du的第i位输入的第j个承诺集合对的标志位,且bu,i,j∈{0,1},当bu,i,j=0表示在第j个承诺集合对中输入承诺集为第一个承诺集合Wu,i,j;bu,i,j=1表示在第j个承诺集合对中输入承诺集为第二个承诺集合W′u,i,j
步骤1.3、第u个数据提供者du将所有承诺集合对发送给两个计算方P1和P2
步骤2、承诺构造检查:
步骤2.1、对于第u个数据提供者du的第i位输入,第一计算方P1使用抛硬币协议选择一个长度为s的随机字符串ρ1∈{0,1}s;第二计算方P2使用抛硬币协议选择一个长度为s的随机字符串ρ2∈{0,1}s
步骤2.2、两个计算方P1和P2交换随机字符串,双方都计算出最终的挑战字符串
Figure BDA0002506974870000031
当挑战字符串ρ中的第j位为1时,对应的承诺集合对{Wu,i,j,W′u,i,j}作为检查集;当挑战字符串ρ中的第j位为0时,对应的承诺集合对{Wu,i,j,W′u,i,j}作为评估集;
步骤2.3、对于第u个数据提供者du的第i位输入,第u个数据提供者du打开s个承诺集合对中检查集里的两个承诺集合;同时,第u个数据提供者du打开s个承诺集合对中评估集的位置集得到bu,i,j,当bu,i,j=0表示打开评估集的第一个承诺集合,bu,i,j=1表示打开评估集的第二个承诺集合;
假设被打开的检查集或评估集为承诺集合Wu,i,j或W′u,i,j,则定义承诺集合Wu,i,j或W′u,i,j中包含的两个承诺分别被打开为两个三元组(K1,1,K1,2,K1,3)和(K2,1,K2,2,K2,3),并将两个三元组发送给两个计算方P1和P2;其中,K1,1、K1,2和K1,3分别表示第一个三元组的第一个值、第二个值和第三个值;K2,1、K2,2和K2,3分别表示第二个三元组的第一个值、第二个值和第三个值;
两个计算方P1和P2分别检查两个三元组(K1,1,K1,2,K1,3)和(K2,1,K2,2,K2,3)的前两个值是否满足K1,1≠K1,2,K2,1≠K2,2;同时,两个三元组(K1,1,K1,2,K1,3)和(K2,1,K2,2,K2,3)的第三个值是否满足K1,1=K2,3且K2,1=K1,3或者满足K1,2=K2,3且K2,2=K1,3
若同时满足,则表示通过承诺构造检查,并执行步骤3,否则表示未通过承诺构造检查,且两个计算方P1和P2都输出“错误的输入”并终止执行;
步骤3、标签一致性检验及标签计算:
对于第u个数据提供者du的第i位输入,定义其对应评估集的索引集合为
Figure BDA0002506974870000041
定义对应的输入承诺集为
Figure BDA0002506974870000042
步骤3.1、将输入承诺集
Figure BDA0002506974870000043
中的第一个承诺打开,并将打开后的三元组
Figure BDA0002506974870000044
发送给第一计算方P1
将输入承诺集
Figure BDA0002506974870000045
中的第二个承诺打开,并将打开后的三元组
Figure BDA0002506974870000046
发送给第二计算方P2;其中,
Figure BDA0002506974870000047
Figure BDA0002506974870000048
分别表示打开输入承诺集
Figure BDA0002506974870000049
的第一个三元组的第一个值、第二个值和第三个值;
Figure BDA00025069748700000410
Figure BDA00025069748700000411
分别表示打开输入承诺集
Figure BDA00025069748700000412
的第二个三元组的第一个值、第二个值和第三个值;
步骤3.2、第一计算方P1计算
Figure BDA00025069748700000413
Figure BDA00025069748700000414
其中,
Figure BDA00025069748700000415
表示异或操作;H表示一个抗碰撞的哈希函数;H(·)表示哈希函数值;H1,q表示第一个加密电路的第q个哈希值,C1,q表示第一个加密电路的第q个哈希承诺,q∈{1,2,3};
步骤3.3、第二计算方P2计算
Figure BDA00025069748700000416
Figure BDA00025069748700000417
其中,H2,q表示第二个加密电路的第q个哈希值,C2,q表示第二个加密电路的第q个哈希承诺;
步骤3.4、第一计算方P1对(H1,1,H1,2)进行随机地排序,得到排序后的哈希值对
Figure BDA00025069748700000418
且对应顺序的哈希承诺为
Figure BDA00025069748700000419
第一计算方P1
Figure BDA00025069748700000420
Figure BDA00025069748700000421
发送给第二计算方P2;其中,
Figure BDA00025069748700000422
Figure BDA00025069748700000423
分别表示重新排序后,第一个加密电路的第一个哈希值和第二个哈希值;
Figure BDA00025069748700000424
Figure BDA00025069748700000425
分别表示重新排序后,第一个加密电路的第一个哈希承诺和第二个哈希承诺;
步骤3.5、第二计算方P2对(H2,1,H2,2)进行随机地排序,得到排序后的哈希值对
Figure BDA00025069748700000426
且对应顺序的哈希承诺为
Figure BDA00025069748700000427
第二计算方P2
Figure BDA00025069748700000428
Figure BDA00025069748700000429
发送给第一计算方P1;其中,
Figure BDA00025069748700000430
Figure BDA00025069748700000431
分别表示重新排序后,第二个加密电路的第一个哈希值和第二个哈希值;
Figure BDA00025069748700000432
Figure BDA00025069748700000433
分别表示重新排序后,第二个加密电路的第一个哈希承诺和第二个哈希承诺;
步骤3.6、第一计算方P1检查是否满足
Figure BDA0002506974870000051
如果满足,则执行步骤3.7;否则,所述第一计算方P1输出“输入错误”的信息和第一证据后执行步骤3.8,所述第一证据由
Figure BDA0002506974870000052
Figure BDA0002506974870000053
组成;
步骤3.7、第二计算方P2检查是否满足
Figure BDA0002506974870000054
如果满足,则执行步骤3.9,否则第二计算方P2输出“输入错误”的信息和第二证据后执行步骤3.8,所述第二证据由
Figure BDA0002506974870000055
Figure BDA0002506974870000056
组成;
步骤3.8、所有的数据提供者都能通过检查相应的证据进行验证,若验证通过,则执行步骤3.9,否则终止执行;
步骤3.9、标签计算:
第一计算方P1计算
Figure BDA0002506974870000057
第二计算方P2计算
Figure BDA0002506974870000058
K1,q表示第一个加密电路的第q个最终标签,K2,q表示第二个加密电路的第q个最终标签;
第一计算方P1使用(K1,1,K1,2)作为第一个加密电路的编码,使用K1,3作为第二个加密电路的标签;第二计算方P2使用(K2,1,K2,2)作为第二个加密电路的编码,使用K2,3作为第一个加密电路的标签;
步骤4、加密电路计算:
步骤4.1、第一计算方P1使用
Figure BDA0002506974870000059
作为所有数据提供者的输入的编码,产生第一个加密电路GC1及其输出编码为E1;其中,
Figure BDA00025069748700000510
Figure BDA00025069748700000511
分别表示在第一个加密电路中,对于数据提供者du的第i位输入,分配给0和分配给1的最终标签;
所述第一计算方P1将第一个加密电路GC1发送给第二计算方P2,第一计算方P1自己持有
Figure BDA00025069748700000512
其中,
Figure BDA00025069748700000513
Figure BDA00025069748700000514
分别表示在第一个加密电路中,对于第u个数据提供者du的第i位输出,分配给0和分配给1的标签;l′表示输出位的长度;
步骤4.2、第二计算方P2使用
Figure BDA00025069748700000515
作为所有数据提供者的输入的编码,产生第二个加密电路GC2及其输出编码为E2;其中,
Figure BDA00025069748700000516
Figure BDA00025069748700000517
分别表示在第二个加密电路中,对于第u个数据提供者du的第i位输入,分配给0和分配给1的最终标签;
所述第二计算方P2将第二个加密电路GC2发送给第一计算方P1,第二计算方P2自己持有
Figure BDA0002506974870000061
其中,
Figure BDA0002506974870000062
Figure BDA0002506974870000063
分别表示在第二个加密电路中,对于第u个数据提供者du的第i位输出,分配给0和分配给1的标签;
步骤4.3、第一计算方P1使用
Figure BDA0002506974870000064
作为输入标签计算第二个加密电路GC2,从而获得输出标签
Figure BDA0002506974870000065
其中,xu,i和yu,i分别表示第u个数据提供者du的第i位的输入和输出;u=1,2,...,n;xu,i∈{0,1};yu,i∈{0,1};
步骤4.4、第二计算方P2使用
Figure BDA0002506974870000066
作为输入标签计算第二个加密电路GC1,从而获得输出标签
Figure BDA0002506974870000067
其中,xu,i和yu,i分别表示第u个数据提供者du的第i位的输入和输出;
步骤5、输出验证:
步骤5.1、第一计算方P1通过式(3)计算出第一个加密电路的输出编码的承诺com(E1),并通过式(4)计算出第二个加密电路的输出标签的承诺com(O2):
Figure BDA0002506974870000068
Figure BDA0002506974870000069
式(3)和式(4)中,E1,u表示第u个数据提供者du收到的第一次加密电路的输出编码;O2,u表示第u个数据提供者du收到的第二次加密电路的输出标签;
步骤5.2、第二计算方P2通过式(5)计算出第二个加密电路的输出编码的承诺com(E2),并通过式(6)计算出第一个加密电路的输出标签的承诺com(O1):
Figure BDA00025069748700000610
Figure BDA00025069748700000611
式(5)和式(6)中,E2,u表示第u个数据提供者du收到的第二次加密电路的输出编码;O1,u表示第u个数据提供者du收到的第一次加密电路的输出标签;
步骤5.3、两个计算方P1和P2向所有的数据提供者公布所有的承诺;
步骤5.4、对于第u个数据提供者du,第一计算方P1打开承诺com(E1,u)和com(O2,u);第二计算方P2打开承诺com(E2,u)和com(O1,u);
步骤5.5、第u个数据提供者du通过输出标签O1,u和输出编码E1,u解密得到第一个加密电路的明文结果
Figure BDA0002506974870000071
并通过输出标签O2,u和输出编码E2,u解密得到第二个加密电路的明文结果
Figure BDA0002506974870000072
第u个数据提供者du检查是否满足
Figure BDA0002506974870000073
如果满足,则表示检查成功,第u个数据提供者du接受明文结果
Figure BDA0002506974870000074
Figure BDA0002506974870000075
作为私有输入数据xu的输出结果yu,否则表示检查失败,第u个数据提供者du丢弃明文结果
Figure BDA0002506974870000076
Figure BDA0002506974870000077
并通过公布输出标签O1,u和O2,u以及输出编码E1,u和E2,u来向其他数据提供者证明失败结果。
本发明所述的安全计算方法的特点也在于,所述步骤3.8包括:
假设任意一个数据提供者d0作为验证者收到了一个由
Figure BDA0002506974870000078
Figure BDA0002506974870000079
组成的第二证据,所述第二证据表明对于第u个数据提供者du的第i个输入不满足一致性;所述验证者d0按如下过程进行结果验证:
步骤3.8.1、所述验证者d0请求第一计算方P1打开哈希承诺
Figure BDA00025069748700000710
Figure BDA00025069748700000711
从而得到抗碰撞的哈希函数值
Figure BDA00025069748700000712
Figure BDA00025069748700000713
其中,
Figure BDA00025069748700000714
Figure BDA00025069748700000715
分别为重排序后的哈希承诺
Figure BDA00025069748700000716
Figure BDA00025069748700000717
包含的标签;
所述验证者d0请求第二计算方P2打开哈希承诺C2,3,从而得到抗碰撞的哈希函数值
Figure BDA00025069748700000718
步骤3.8.2、所述验证者d0检查是否满足
Figure BDA00025069748700000719
Figure BDA00025069748700000720
如果都满足,则执行步骤3.8.3;否则所述验证者d0得出有一个计算方欺骗的结论;
步骤3.8.3、对于所有的
Figure BDA00025069748700000721
所述验证者d0检查是否满足
Figure BDA00025069748700000722
或者
Figure BDA0002506974870000081
如果满足则表示验证成功,否则,表示检查失败,验证标签不一致。
与现有技术相比,本发明的有益效果在于:
1、本发明能在恶意敌手存在的情况下为多个数据提供者提供安全计算,并通过只运行两个独立的加密电路(交换计算双方的角色)就实现了恶意敌手模型中的安全性,并且在加密电路计算中消除了无关传输技术的使用;从而带来了在恶意敌手模型中安全计算效率的提升;
2、本发明设计了一个输入一致性检查机制,以确保所有的数据提供者为两个独立的加密电路的计算提供相同的输入值;此外,该机制可以通过提供作弊证据来确定哪些数据提供者正在作弊;从而保证了输入的正确性和一致性,避免了恶意的数据提供者造成的影响;
3、本发明还设计了一个输出验证机制,这样所有的数据提供者都可以公开地验证输出的正确性,而计算双方都不知道输出的任何信息;从而保证了输出的正确性,保护了输出的隐私;
4、本发明提出的面向多数据提供者的安全计算方法针对现实场景,不仅可以保护隐私,而且只要符合此类计算场景都是通用的。
附图说明
图1是本发明方法的应用场景图;
图2是本发明的输入承诺集合图;
图3是本发明的承诺构造检查图;
图4是本发明的标签一致性检验图;
图5是本发明的标签评估图。
具体实施方式
本实施例中,如图1所示,一种通用且抗恶意敌手的安全计算方法,是应用于由n个数据提供者{d1,d2,...,du,...,dn}持有各自的私有输入数据{x1,x2,...,xu,...,xn},并由两个非共谋的计算方P1和P2接收加密的私有输入数据后在两个加密电路中执行安全计算f(x1,x2,...,xu,...,xn),从而得到相应的最终输出{y1,y2,...,yu,...,yn}所组成的场景中;其中,du表示第u个数据提供者;xu表示第u个数据提供者du的私有输入数据;f表示一个基于n个数据提供者的私有输入数据合作计算的函数;yu表示第u个数据提供者du的最终输出;u=1,2,...,n;该安全计算方法包括以下步骤:
步骤1、输入承诺:
步骤1.1、定义私有输入数据xu的位数为l;私有输入数据xu的每一位输入对应的承诺集合对的数量为s;
对于第u个数据提供者du的私有输入数据xu的第i位输入,第u个数据提供者du按式(1)和式(2)共同产生s个承诺集合对
Figure BDA0002506974870000091
Figure BDA0002506974870000092
Figure BDA0002506974870000093
式(1)和式(2)中,com表示最佳绑定承诺方案,此方案参考文献[Foundations ofcryptography:volume 1,basic tools,2007]里的perfectly binding commitmentscheme;com(·)表示一个承诺;
Figure BDA0002506974870000094
Figure BDA0002506974870000095
分别是Wu,i,j里的第一个承诺和第二个承诺;
Figure BDA0002506974870000096
Figure BDA0002506974870000097
分别是W′u,i,j里的第一个承诺和第二个承诺;||表示字符串之间的连接符;b表示第i位的乱序值,且在每个承诺集合对中随机、独立地被选择,b∈{0,1};Wu,i,j和W′u,i,j分别表示第u个数据提供者du的第i位输入的第j个承诺集合对中第一个承诺集合和第二个承诺集合;
Figure BDA0002506974870000098
Figure BDA0002506974870000099
分别表示第u个数据提供者du的第i位输入的第j个承诺集合对在第一个加密电路中分配给0和1的标签;
Figure BDA00025069748700000910
Figure BDA00025069748700000911
分别表示第u个数据提供者du的第i位输入的第j个承诺集合对在第二个加密电路中分配给b和1-b的标签;
Figure BDA00025069748700000912
Figure BDA00025069748700000913
分别表示第u个数据提供者du的第i位输入的第j个承诺集合对在第二个加密电路中分配给0和1的标签;
Figure BDA00025069748700000914
Figure BDA00025069748700000915
分别表示第u个数据提供者du的第i位输入的第j个承诺集合对在第一个加密电路中分配给b和1-b的标签;j=1,...,s;
步骤1.2、第u个数据提供者du为s个承诺集合对
Figure BDA00025069748700000916
产生一个位置集
Figure BDA00025069748700000917
其中,bu,i,j表示第u个数据提供者du的第i位输入的第j个承诺集合对的标志位,且bu,i,j∈{0,1},当bu,i,j=0表示在第j个承诺集合对中输入承诺集为第一个承诺集合Wu,i,j;bu,i,j=1表示在第j个承诺集合对中输入承诺集为第二个承诺集合W′u,i,j
图2左边表示对应于第u个数据提供者du的第一位输入线的所有承诺集合对;右边一列代表第一位输入线的位置集;假设第u个数据提供者du的第一位输入线的位置集为{com(0),com(1),...,com(0)},则代表对应的输入承诺集合分别为Wu,1,1,W′u,1,2,...,Wu,1,s
步骤1.3、第u个数据提供者du将所有承诺集合对发送给两个计算方P1和P2
步骤2、承诺构造检查:
步骤2.1、对于第u个数据提供者du的第i位输入,第一计算方P1使用抛硬币协议选择一个长度为s的随机字符串ρ1∈{0,1}s;第二计算方P2使用抛硬币协议选择一个长度为s的随机字符串ρ2∈{0,1}s
步骤2.2、两个计算方P1和P2交换随机字符串,双方都计算出最终的挑战字符串
Figure BDA0002506974870000101
当挑战字符串ρ中的第j位为1时,对应的承诺集合对{Wu,i,j,W′u,i,j}作为检查集;当挑战字符串ρ中的第j位为0时,对应的承诺集合对{Wu,i,j,W′u,i,j}作为评估集;
步骤2.3、对于第u个数据提供者du的第i位输入,第u个数据提供者du打开s个承诺集合对中检查集里的两个承诺集合;同时,第u个数据提供者du打开s个承诺集合对中评估集的位置集得到bu,i,j,当bu,i,j=0表示打开评估集的第一个承诺集合,bu,i,j=1表示打开评估集的第二个承诺集合;
假设被打开的检查集或评估集为承诺集合Wu,i,j或W′u,i,j,则定义承诺集合Wu,i,j或W′u,i,j中包含的两个承诺分别被打开为两个三元组(K1,1,K1,2,K1,3)和(K2,1,K2,2,K2,3),并将两个三元组发送给两个计算方P1和P2;其中,K1,1、K1,2和K1,3分别表示第一个三元组的第一个值、第二个值和第三个值;K2,1、K2,2和K2,3分别表示第二个三元组的第一个值、第二个值和第三个值;
两个计算方P1和P2分别检查两个三元组(K1,1,K1,2,K1,3)和(K2,1,K2,2,K2,3)的前两个值是否满足K1,1≠K1,2,K2,1≠K2,2;同时,两个三元组(K1,1,K1,2,K1,3)和(K2,1,K2,2,K2,3)的第三个值是否满足K1,1=K2,3且K2,1=K1,3或者满足K1,2=K2,3且K2,2=K1,3
若同时满足,则表示通过承诺构造检查,并执行步骤3,否则表示未通过承诺构造检查,且两个计算方P1和P2都输出“错误的输入”并终止执行;
图3表示对第u个数据提供者du的第一位输入线进行承诺构造检查的例子;在此实施例例中,假设挑战字符串ρ=<1010…0>,这决定了在图3中,被矩形圈出的承诺集合属于检查集,没有被矩形圈出的承诺集合属于评估集,检查集里的承诺全部被打开;第u个数据提供者du的第一位输入线对应的位置集为{com(0),com(1),com(1),com(0)...,com(0)},这决定了在图3的评估集中,被圆圈圈出的输入承诺集被打开;最后,两个计算方P1和P2按步骤2.3方法检查是否所有被打开的检查集都被正确地构造;
步骤3、标签一致性检验及标签计算:
对于第u个数据提供者du的第i位输入,定义其对应评估集的索引集合为
Figure BDA0002506974870000111
定义对应的输入承诺集为
Figure BDA0002506974870000112
步骤3.1、将输入承诺集
Figure BDA0002506974870000113
中的第一个承诺打开,并将打开后的三元组
Figure BDA0002506974870000114
发送给第一计算方P1
将输入承诺集
Figure BDA0002506974870000115
中的第二个承诺打开,并将打开后的三元组
Figure BDA0002506974870000116
发送给第二计算方P2;其中,
Figure BDA0002506974870000117
Figure BDA0002506974870000118
分别表示打开输入承诺集
Figure BDA0002506974870000119
的第一个三元组的第一个值、第二个值和第三个值;
Figure BDA00025069748700001110
Figure BDA00025069748700001111
分别表示打开输入承诺集
Figure BDA00025069748700001112
的第二个三元组的第一个值、第二个值和第三个值;
步骤3.2、第一计算方P1计算
Figure BDA00025069748700001113
Figure BDA00025069748700001114
其中,
Figure BDA00025069748700001115
表示异或操作;H表示一个抗碰撞的哈希函数;H(·)表示一个哈希函数值;
Figure BDA00025069748700001116
表示哈希值
Figure BDA00025069748700001117
之间的异或操作;
Figure BDA00025069748700001118
表示哈希值
Figure BDA00025069748700001119
之间的连接操作;H1,q表示第一个加密电路的第q个哈希值,C1,q表示第一个加密电路的第q个哈希承诺,q∈{1,2,3};
步骤3.3、第二计算方P2计算
Figure BDA00025069748700001120
Figure BDA00025069748700001121
其中,H2,q表示第二个加密电路的第q个哈希值,C2,q表示第二个加密电路的第q个哈希承诺;
步骤3.4、第一计算方P1对(H1,1,H1,2)进行随机地排序,得到排序后的哈希值对
Figure BDA0002506974870000121
且对应顺序的哈希承诺为
Figure BDA0002506974870000122
第一计算方P1
Figure BDA0002506974870000123
Figure BDA0002506974870000124
发送给第二计算方P2;其中,
Figure BDA0002506974870000125
Figure BDA0002506974870000126
分别表示重新排序后,第一个加密电路的第一个哈希值和第二个哈希值;
Figure BDA0002506974870000127
Figure BDA0002506974870000128
分别表示重新排序后,第一个加密电路的第一个哈希承诺和第二个哈希承诺;
步骤3.5、第二计算方P2对(H2,1,H2,2)进行随机地排序,得到排序后的哈希值对
Figure BDA0002506974870000129
且对应顺序的哈希承诺为
Figure BDA00025069748700001210
第二计算方P2
Figure BDA00025069748700001211
Figure BDA00025069748700001212
发送给第一计算方P1;其中,
Figure BDA00025069748700001213
Figure BDA00025069748700001214
分别表示重新排序后,第二个加密电路的第一个哈希值和第二个哈希值;
Figure BDA00025069748700001215
Figure BDA00025069748700001216
分别表示重新排序后,第二个加密电路的第一个哈希承诺和第二个哈希承诺;
步骤3.6、第一计算方P1检查是否满足
Figure BDA00025069748700001217
如果满足,则执行步骤3.7;否则,第一计算方P1输出“输入错误”的信息和第一证据后执行步骤3.8,第一证据由
Figure BDA00025069748700001218
Figure BDA00025069748700001219
组成;
步骤3.7、第二计算方P2检查是否满足
Figure BDA00025069748700001220
如果满足,则执行步骤3.9,否则第二计算方P2输出“输入错误”的信息和第二证据后执行步骤3.8,第二证据由
Figure BDA00025069748700001221
Figure BDA00025069748700001222
组成;
步骤3.8、所有的数据提供者都能通过检查相应的证据进行验证,若验证通过,则执行步骤3.9,否则终止执行;
假设任意一个数据提供者d0作为验证者收到了一个由
Figure BDA00025069748700001223
Figure BDA00025069748700001224
组成的第二证据,第二证据表明对于第u个数据提供者du的第i个输入不满足一致性;验证者d0按如下过程进行结果验证:
步骤3.8.1、验证者d0请求第一计算方P1打开哈希承诺
Figure BDA00025069748700001225
Figure BDA00025069748700001226
从而得到抗碰撞的哈希函数值
Figure BDA00025069748700001227
Figure BDA00025069748700001228
其中,
Figure BDA00025069748700001229
Figure BDA00025069748700001230
分别为重排序后的哈希承诺
Figure BDA00025069748700001231
Figure BDA00025069748700001232
包含的标签;
验证者d0请求第二计算方P2打开哈希承诺C2,3,从而得到抗碰撞的哈希函数值
Figure BDA0002506974870000131
步骤3.8.2、验证者d0检查是否满足
Figure BDA0002506974870000132
Figure BDA0002506974870000133
如果都满足,则执行步骤3.8.3;否则验证者d0得出有一个计算方欺骗的结论;
步骤3.8.3、对于所有的
Figure BDA0002506974870000134
验证者d0检查是否满足
Figure BDA0002506974870000135
或者
Figure BDA0002506974870000136
如果满足则表示验证成功,否则,表示检查失败,验证标签不一致;
图4演示了在图3的例子前提下,如何检查第u个数据提供者du的第一位输入线的标签一致性;对于第一位输入线,在图4中所有的输入承诺集里,相同位置被打开的标签进行哈希后再相互之间进行异或操作,即第一计算方P1计算
Figure BDA0002506974870000137
Figure BDA0002506974870000138
第二计算方P2计算
Figure BDA0002506974870000139
Figure BDA00025069748700001310
其中,
Figure BDA00025069748700001311
Figure BDA00025069748700001312
分别表示第一个加密电路中,对于第u个数据提供者du的第一位输入线,分配给0和1的最终哈希值,
Figure BDA00025069748700001313
Figure BDA00025069748700001314
分别表示第二个加密电路中,对于第u个数据提供者du的第一位输入线,分配给0和1的最终哈希值;第一计算方P1
Figure BDA00025069748700001315
随机排序得到
Figure BDA00025069748700001316
并将
Figure BDA00025069748700001317
发送给第二计算方P2,第二计算方P2检查
Figure BDA00025069748700001318
是否包含在
Figure BDA00025069748700001319
中;其中,
Figure BDA00025069748700001320
Figure BDA00025069748700001321
分别表示重排序后第一个加密电路中,对于第u个数据提供者du的第一位输入线的第一个和第二个最终哈希值;类似地,第二计算方P2
Figure BDA00025069748700001322
随机排序得到
Figure BDA00025069748700001323
并将
Figure BDA00025069748700001324
发送给第一计算方P1,第一计算方P1检查
Figure BDA00025069748700001325
是否包含在
Figure BDA00025069748700001326
中;其中,
Figure BDA00025069748700001327
Figure BDA00025069748700001328
分别表示重排序后第二个加密电路中,对于第u个数据提供者du的第一位输入线的第一个和第二个最终哈希值;如果两个检查都成功,则标签一致性检查成功;如果检查失败,则按步骤3.8进行验证;
步骤3.9、标签计算:
第一计算方P1计算
Figure BDA0002506974870000141
第二计算方P2计算
Figure BDA0002506974870000142
K1,q表示第一个加密电路的第q个最终标签,K2,q表示第二个加密电路的第q个最终标签;
第一计算方P1使用(K1,1,K1,2)作为第一个加密电路的编码,使用K1,3作为第二个加密电路的标签;第二计算方P2使用(K2,1,K2,2)作为第二个加密电路的编码,使用K2,3作为第一个加密电路的标签;
图5显示了在图3的例子的前提下,如何计算第u个数据提供者du的第一位输入线的最终的标签;对于第一位输入线的输入承诺集,相同位置上的所有打开的标签都被执行异或操作以得到最终的标签;具体来说,第一计算方P1计算
Figure BDA0002506974870000143
Figure BDA0002506974870000144
Figure BDA0002506974870000145
第二计算方P2计算
Figure BDA0002506974870000146
Figure BDA0002506974870000147
其中,
Figure BDA0002506974870000148
Figure BDA0002506974870000149
分别表示在第一个加密电路中,对于第u个数据提供者du的第一位输入,分配给0和分配给1的最终标签;
Figure BDA00025069748700001410
Figure BDA00025069748700001411
分别表示在第二个加密电路中,对于第u个数据提供者du的第一位输入,分配给0和分配给1的最终标签;最后,第一计算方P1
Figure BDA00025069748700001412
作为第一个加密电路的编码,使用
Figure BDA00025069748700001413
作为第二个加密电路的标签;类似地,第二计算方P2
Figure BDA00025069748700001414
作为第一个加密电路的编码,使用
Figure BDA00025069748700001415
作为第二个加密电路的标签;
步骤4、加密电路计算:
步骤4.1、第一计算方P1使用
Figure BDA00025069748700001416
作为所有数据提供者的输入的编码,产生第一个加密电路GC1及其输出编码为E1;其中,
Figure BDA00025069748700001417
Figure BDA00025069748700001418
分别表示在第一个加密电路中,对于数据提供者du的第i位输入,分配给0和分配给1的最终标签;
第一计算方P1将第一个加密电路GC1发送给第二计算方P2,第一计算方P1自己持有
Figure BDA00025069748700001419
其中,
Figure BDA00025069748700001420
Figure BDA00025069748700001421
分别表示在第一个加密电路中,对于第u个数据提供者du的第i位输出,分配给0和分配给1的标签;l′表示输出位的长度;
步骤4.2、第二计算方P2使用
Figure BDA0002506974870000151
作为所有数据提供者的输入的编码,产生第二个加密电路GC2及其输出编码为E2;其中,
Figure BDA0002506974870000152
Figure BDA0002506974870000153
分别表示在第二个加密电路中,对于第u个数据提供者du的第i位输入,分配给0和分配给1的最终标签;
第二计算方P2将第二个加密电路GC2发送给第一计算方P1,第二计算方P2自己持有
Figure BDA0002506974870000154
其中,
Figure BDA0002506974870000155
Figure BDA0002506974870000156
分别表示在第二个加密电路中,对于第u个数据提供者du的第i位输出,分配给0和分配给1的标签;
步骤4.3、第一计算方P1使用
Figure BDA0002506974870000157
作为输入标签计算第二个加密电路GC2,从而获得输出标签
Figure BDA0002506974870000158
其中,xu,i和yu,i分别表示第u个数据提供者du的第i位的输入和输出;u=1,2,...,n;xu,i∈{0,1};yu,i∈{0,1};
步骤4.4、第二计算方P2使用
Figure BDA0002506974870000159
作为输入标签计算第二个加密电路GC1,从而获得输出标签
Figure BDA00025069748700001510
其中,xu,i和yu,i分别表示第u个数据提供者du的第i位的输入和输出;
步骤5、输出验证:
步骤5.1、第一计算方P1通过式(3)计算出第一个加密电路的输出编码的承诺com(E1),并通过式(4)计算出第二个加密电路的输出标签的承诺com(O2):
Figure BDA00025069748700001511
Figure BDA00025069748700001512
式(3)和式(4)中,E1,u表示第u个数据提供者du收到的第一次加密电路的输出编码;O2,u表示第u个数据提供者du收到的第二次加密电路的输出标签;
步骤5.2、第二计算方P2通过式(5)计算出第二个加密电路的输出编码的承诺com(E2),并通过式(6)计算出第一个加密电路的输出标签的承诺com(O1):
Figure BDA00025069748700001513
Figure BDA00025069748700001514
式(5)和式(6)中,E2,u表示第u个数据提供者du收到的第二次加密电路的输出编码;O1,u表示第u个数据提供者du收到的第一次加密电路的输出标签;
步骤5.3、两个计算方P1和P2向所有的数据提供者公布所有的承诺;
步骤5.4、对于第u个数据提供者du,第一计算方P1打开承诺com(E1,u)和com(O2,u);第二计算方P2打开承诺com(E2,u)和com(O1,u);
步骤5.5、第u个数据提供者du通过输出标签O1,u和输出编码E1,u解密得到第一个加密电路的明文结果
Figure BDA0002506974870000161
并通过输出标签O2,u和输出编码E2,u解密得到第二个加密电路的明文结果
Figure BDA0002506974870000162
第u个数据提供者du检查是否满足
Figure BDA0002506974870000163
如果满足,则表示检查成功,第u个数据提供者du接受明文结果
Figure BDA0002506974870000164
Figure BDA0002506974870000165
作为私有输入数据xu的输出结果yu,否则表示检查失败,第u个数据提供者du丢弃明文结果
Figure BDA0002506974870000166
Figure BDA0002506974870000167
并通过公布输出标签O1,u和O2,u以及输出编码E1,u和E2,u来向其他数据提供者证明失败结果。

Claims (2)

1.一种通用且抗恶意敌手的安全计算方法,其特征是应用于由n个数据提供者{d1,d2,...,du,...,dn}持有各自的私有输入数据{x1,x2,...,xu,...,xn},并由两个非共谋的计算方P1和P2接收加密的私有输入数据后在两个加密电路中执行安全计算,从而得到最终输出{y1,y2,...,yu,...,yn}所组成的场景中;其中,du表示第u个数据提供者;xu表示第u个数据提供者du的私有输入数据;yu表示第u个数据提供者du的最终输出;u=1,2,...,n;所述安全计算方法包括以下步骤:
步骤1、输入承诺:
步骤1.1、定义所述私有输入数据xu的位数为l;所述私有输入数据xu的每一位输入对应的承诺集合对的数量为s;
对于第u个数据提供者du的私有输入数据xu的第i位输入,第u个数据提供者du按式(1)和式(2)共同产生s个承诺集合对
Figure FDA0002506974860000011
Figure FDA0002506974860000012
Figure FDA0002506974860000013
式(1)和式(2)中,com表示最佳绑定承诺方案;com(·)表示一个承诺;||表示字符串之间的连接符;b表示第i位的乱序值,且在每个承诺集合对中随机、独立地被选择,b∈{0,1};Wu,i,j和W′u,i,j分别表示第u个数据提供者du的第i位输入的第j个承诺集合对中第一个承诺集合和第二个承诺集合;
Figure FDA0002506974860000014
Figure FDA0002506974860000015
分别表示第u个数据提供者du的第i位输入的第j个承诺集合对在第一个加密电路中分配给0和1的标签;
Figure FDA0002506974860000016
Figure FDA0002506974860000017
分别表示第u个数据提供者du的第i位输入的第j个承诺集合对在第二个加密电路中分配给b和1-b的标签;
Figure FDA0002506974860000018
Figure FDA0002506974860000019
分别表示第u个数据提供者du的第i位输入的第j个承诺集合对在第二个加密电路中分配给0和1的标签;
Figure FDA00025069748600000110
Figure FDA00025069748600000111
分别表示第u个数据提供者du的第i位输入的第j个承诺集合对在第一个加密电路中分配给b和1-b的标签;j=1,...,s;
步骤1.2、第u个数据提供者du为s个承诺集合对
Figure FDA00025069748600000112
产生一个位置集
Figure FDA00025069748600000113
其中,bu,i,j表示第u个数据提供者du的第i位输入的第j个承诺集合对的标志位,且bu,i,j∈{0,1},当bu,i,j=0表示在第j个承诺集合对中输入承诺集为第一个承诺集合Wu,i,j;bu,i,j=1表示在第j个承诺集合对中输入承诺集为第二个承诺集合W′u,i,j
步骤1.3、第u个数据提供者du将所有承诺集合对发送给两个计算方P1和P2
步骤2、承诺构造检查:
步骤2.1、对于第u个数据提供者du的第i位输入,第一计算方P1使用抛硬币协议选择一个长度为s的随机字符串ρ1∈{0,1}s;第二计算方P2使用抛硬币协议选择一个长度为s的随机字符串ρ2∈{0,1}s
步骤2.2、两个计算方P1和P2交换随机字符串,双方都计算出最终的挑战字符串
Figure FDA0002506974860000021
当挑战字符串ρ中的第j位为1时,对应的承诺集合对{Wu,i,j,W′u,i,j}作为检查集;当挑战字符串ρ中的第j位为0时,对应的承诺集合对{Wu,i,j,W′u,i,j}作为评估集;
步骤2.3、对于第u个数据提供者du的第i位输入,第u个数据提供者du打开s个承诺集合对中检查集里的两个承诺集合;同时,第u个数据提供者du打开s个承诺集合对中评估集的位置集得到bu,i,j,当bu,i,j=0表示打开评估集的第一个承诺集合,bu,i,j=1表示打开评估集的第二个承诺集合;
假设被打开的检查集或评估集为承诺集合Wu,i,j或W′u,i,j,则定义承诺集合Wu,i,j或W′u,i,j中包含的两个承诺分别被打开为两个三元组(K1,1,K1,2,K1,3)和(K2,1,K2,2,K2,3),并将两个三元组发送给两个计算方P1和P2;其中,K1,1、K1,2和K1,3分别表示第一个三元组的第一个值、第二个值和第三个值;K2,1、K2,2和K2,3分别表示第二个三元组的第一个值、第二个值和第三个值;
两个计算方P1和P2分别检查两个三元组(K1,1,K1,2,K1,3)和(K2,1,K2,2,K2,3)的前两个值是否满足K1,1≠K1,2,K2,1≠K2,2;同时,两个三元组(K1,1,K1,2,K1,3)和(K2,1,K2,2,K2,3)的第三个值是否满足K1,1=K2,3且K2,1=K1,3或者满足K1,2=K2,3且K2,2=K1,3
若同时满足,则表示通过承诺构造检查,并执行步骤3,否则表示未通过承诺构造检查,且两个计算方P1和P2都输出“错误的输入”并终止执行;
步骤3、标签一致性检验及标签计算:
对于第u个数据提供者du的第i位输入,定义其对应评估集的索引集合为
Figure FDA0002506974860000031
定义对应的输入承诺集为
Figure FDA0002506974860000032
步骤3.1、将输入承诺集
Figure FDA0002506974860000033
中的第一个承诺打开,并将打开后的三元组
Figure FDA0002506974860000034
发送给第一计算方P1
将输入承诺集
Figure FDA0002506974860000035
中的第二个承诺打开,并将打开后的三元组
Figure FDA0002506974860000036
发送给第二计算方P2;其中,
Figure FDA0002506974860000037
Figure FDA0002506974860000038
分别表示打开输入承诺集
Figure FDA0002506974860000039
的第一个三元组的第一个值、第二个值和第三个值;
Figure FDA00025069748600000310
Figure FDA00025069748600000311
分别表示打开输入承诺集
Figure FDA00025069748600000312
的第二个三元组的第一个值、第二个值和第三个值;
步骤3.2、第一计算方P1计算
Figure FDA00025069748600000313
Figure FDA00025069748600000314
其中,
Figure FDA00025069748600000315
表示异或操作;H表示一个抗碰撞的哈希函数;H(·)表示哈希函数值;H1,q表示第一个加密电路的第q个哈希值,C1,q表示第一个加密电路的第q个哈希承诺,q∈{1,2,3};
步骤3.3、第二计算方P2计算
Figure FDA00025069748600000316
Figure FDA00025069748600000317
其中,H2,q表示第二个加密电路的第q个哈希值,C2,q表示第二个加密电路的第q个哈希承诺;
步骤3.4、第一计算方P1对(H1,1,H1,2)进行随机地排序,得到排序后的哈希值对
Figure FDA00025069748600000318
且对应顺序的哈希承诺为
Figure FDA00025069748600000319
第一计算方P1
Figure FDA00025069748600000320
Figure FDA00025069748600000321
发送给第二计算方P2;其中,
Figure FDA00025069748600000322
Figure FDA00025069748600000323
分别表示重新排序后,第一个加密电路的第一个哈希值和第二个哈希值;
Figure FDA00025069748600000324
Figure FDA00025069748600000325
分别表示重新排序后,第一个加密电路的第一个哈希承诺和第二个哈希承诺;
步骤3.5、第二计算方P2对(H2,1,H2,2)进行随机地排序,得到排序后的哈希值对
Figure FDA00025069748600000326
且对应顺序的哈希承诺为
Figure FDA00025069748600000327
第二计算方P2
Figure FDA00025069748600000328
Figure FDA00025069748600000329
发送给第一计算方P1;其中,
Figure FDA00025069748600000330
Figure FDA00025069748600000331
分别表示重新排序后,第二个加密电路的第一个哈希值和第二个哈希值;
Figure FDA00025069748600000332
Figure FDA00025069748600000333
分别表示重新排序后,第二个加密电路的第一个哈希承诺和第二个哈希承诺;
步骤3.6、第一计算方P1检查是否满足
Figure FDA00025069748600000334
如果满足,则执行步骤3.7;否则,所述第一计算方P1输出“输入错误”的信息和第一证据后执行步骤3.8,所述第一证据由
Figure FDA0002506974860000041
Figure FDA0002506974860000042
组成;
步骤3.7、第二计算方P2检查是否满足
Figure FDA0002506974860000043
如果满足,则执行步骤3.9,否则第二计算方P2输出“输入错误”的信息和第二证据后执行步骤3.8,所述第二证据由
Figure FDA0002506974860000044
Figure FDA0002506974860000045
组成;
步骤3.8、所有的数据提供者都能通过检查相应的证据进行验证,若验证通过,则执行步骤3.9,否则终止执行;
步骤3.9、标签计算:
第一计算方P1计算
Figure FDA0002506974860000046
第二计算方P2计算
Figure FDA0002506974860000047
K1,q表示第一个加密电路的第q个最终标签,K2,q表示第二个加密电路的第q个最终标签;
第一计算方P1使用(K1,1,K1,2)作为第一个加密电路的编码,使用K1,3作为第二个加密电路的标签;第二计算方P2使用(K2,1,K2,2)作为第二个加密电路的编码,使用K2,3作为第一个加密电路的标签;
步骤4、加密电路计算:
步骤4.1、第一计算方P1使用
Figure FDA0002506974860000048
作为所有数据提供者的输入的编码,产生第一个加密电路GC1及其输出编码为E1;其中,
Figure FDA0002506974860000049
Figure FDA00025069748600000410
分别表示在第一个加密电路中,对于数据提供者du的第i位输入,分配给0和分配给1的最终标签;
所述第一计算方P1将第一个加密电路GC1发送给第二计算方P2,第一计算方P1自己持有
Figure FDA00025069748600000411
其中,
Figure FDA00025069748600000412
Figure FDA00025069748600000413
分别表示在第一个加密电路中,对于第u个数据提供者du的第i位输出,分配给0和分配给1的标签;l′表示输出位的长度;
步骤4.2、第二计算方P2使用
Figure FDA00025069748600000414
作为所有数据提供者的输入的编码,产生第二个加密电路GC2及其输出编码为E2;其中,
Figure FDA00025069748600000415
Figure FDA00025069748600000416
分别表示在第二个加密电路中,对于第u个数据提供者du的第i位输入,分配给0和分配给1的最终标签;
所述第二计算方P2将第二个加密电路GC2发送给第一计算方P1,第二计算方P2自己持有
Figure FDA0002506974860000051
其中,
Figure FDA0002506974860000052
Figure FDA0002506974860000053
分别表示在第二个加密电路中,对于第u个数据提供者du的第i位输出,分配给0和分配给1的标签;
步骤4.3、第一计算方P1使用
Figure FDA0002506974860000054
作为输入标签计算第二个加密电路GC2,从而获得输出标签
Figure FDA0002506974860000055
其中,xu,i和yu,i分别表示第u个数据提供者du的第i位的输入和输出;u=1,2,...,n;xu,i∈{0,1};yu,i∈{0,1};
步骤4.4、第二计算方P2使用
Figure FDA0002506974860000056
作为输入标签计算第二个加密电路GC1,从而获得输出标签
Figure FDA0002506974860000057
其中,xu,i和yu,i分别表示第u个数据提供者du的第i位的输入和输出;
步骤5、输出验证:
步骤5.1、第一计算方P1通过式(3)计算出第一个加密电路的输出编码的承诺com(E1),并通过式(4)计算出第二个加密电路的输出标签的承诺com(O2):
Figure FDA0002506974860000058
Figure FDA0002506974860000059
式(3)和式(4)中,E1,u表示第u个数据提供者du收到的第一次加密电路的输出编码;O2,u表示第u个数据提供者du收到的第二次加密电路的输出标签;
步骤5.2、第二计算方P2通过式(5)计算出第二个加密电路的输出编码的承诺com(E2),并通过式(6)计算出第一个加密电路的输出标签的承诺com(O1):
Figure FDA00025069748600000510
Figure FDA00025069748600000511
式(5)和式(6)中,E2,u表示第u个数据提供者du收到的第二次加密电路的输出编码;O1,u表示第u个数据提供者du收到的第一次加密电路的输出标签;
步骤5.3、两个计算方P1和P2向所有的数据提供者公布所有的承诺;
步骤5.4、对于第u个数据提供者du,第一计算方P1打开承诺com(E1,u)和com(O2,u);第二计算方P2打开承诺com(E2,u)和com(O1,u);
步骤5.5、第u个数据提供者du通过输出标签O1,u和输出编码E1,u解密得到第一个加密电路的明文结果
Figure FDA0002506974860000061
并通过输出标签O2,u和输出编码E2,u解密得到第二个加密电路的明文结果
Figure FDA0002506974860000062
第u个数据提供者du检查是否满足
Figure FDA0002506974860000063
如果满足,则表示检查成功,第u个数据提供者du接受明文结果
Figure FDA0002506974860000064
Figure FDA0002506974860000065
作为私有输入数据xu的输出结果yu,否则表示检查失败,第u个数据提供者du丢弃明文结果
Figure FDA0002506974860000066
Figure FDA0002506974860000067
并通过公布输出标签O1,u和O2,u以及输出编码E1,u和E2,u来向其他数据提供者证明失败结果。
2.根据权利要求1所述的安全计算方法,其特征是,所述步骤3.8包括:
假设任意一个数据提供者d0作为验证者收到了一个由
Figure FDA0002506974860000068
Figure FDA0002506974860000069
组成的第二证据,所述第二证据表明对于第u个数据提供者du的第i个输入不满足一致性;所述验证者d0按如下过程进行结果验证:
步骤3.8.1、所述验证者d0请求第一计算方P1打开哈希承诺
Figure FDA00025069748600000610
Figure FDA00025069748600000611
从而得到抗碰撞的哈希函数值
Figure FDA00025069748600000612
Figure FDA00025069748600000613
其中,
Figure FDA00025069748600000614
Figure FDA00025069748600000615
分别为重排序后的哈希承诺
Figure FDA00025069748600000616
Figure FDA00025069748600000617
包含的标签;
所述验证者d0请求第二计算方P2打开哈希承诺C2,3,从而得到抗碰撞的哈希函数值
Figure FDA00025069748600000618
步骤3.8.2、所述验证者d0检查是否满足
Figure FDA00025069748600000619
Figure FDA00025069748600000620
如果都满足,则执行步骤3.8.3;否则所述验证者d0得出有一个计算方欺骗的结论;
步骤3.8.3、对于所有的
Figure FDA00025069748600000621
所述验证者d0检查是否满足
Figure FDA00025069748600000622
或者
Figure FDA00025069748600000623
如果满足则表示验证成功,否则,表示检查失败,验证标签不一致。
CN202010449393.XA 2020-05-25 2020-05-25 一种通用且抗恶意敌手的安全计算方法 Active CN111628991B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010449393.XA CN111628991B (zh) 2020-05-25 2020-05-25 一种通用且抗恶意敌手的安全计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010449393.XA CN111628991B (zh) 2020-05-25 2020-05-25 一种通用且抗恶意敌手的安全计算方法

Publications (2)

Publication Number Publication Date
CN111628991A true CN111628991A (zh) 2020-09-04
CN111628991B CN111628991B (zh) 2021-12-28

Family

ID=72260689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010449393.XA Active CN111628991B (zh) 2020-05-25 2020-05-25 一种通用且抗恶意敌手的安全计算方法

Country Status (1)

Country Link
CN (1) CN111628991B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240198B1 (en) * 2000-08-08 2007-07-03 Yeda Research & Development Co., Ltd. Honesty preserving negotiation and computation
US20090182667A1 (en) * 2006-05-05 2009-07-16 Parkes David C Practical secrecy-preserving, verifiably correct and trustworthy auctions
CN103248478A (zh) * 2013-05-08 2013-08-14 天津大学 基于多方安全协议的密封式电子拍卖方案与验证方法
US10083310B1 (en) * 2013-03-13 2018-09-25 Hrl Laboratories, Llc System and method for mobile proactive secure multi-party computation (MPMPC) using commitments
CN108683669A (zh) * 2018-05-19 2018-10-19 深圳市图灵奇点智能科技有限公司 数据验证方法和安全多方计算系统
CN108809623A (zh) * 2018-07-10 2018-11-13 矩阵元技术(深圳)有限公司 安全多方计算方法、装置及系统
CN109886687A (zh) * 2019-02-28 2019-06-14 矩阵元技术(深圳)有限公司 一种基于区块链实现安全多方计算的结果验证方法及系统
CN110719159A (zh) * 2019-09-24 2020-01-21 河南师范大学 抗恶意敌手的多方隐私集合交集方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240198B1 (en) * 2000-08-08 2007-07-03 Yeda Research & Development Co., Ltd. Honesty preserving negotiation and computation
US20090182667A1 (en) * 2006-05-05 2009-07-16 Parkes David C Practical secrecy-preserving, verifiably correct and trustworthy auctions
US10083310B1 (en) * 2013-03-13 2018-09-25 Hrl Laboratories, Llc System and method for mobile proactive secure multi-party computation (MPMPC) using commitments
CN103248478A (zh) * 2013-05-08 2013-08-14 天津大学 基于多方安全协议的密封式电子拍卖方案与验证方法
CN108683669A (zh) * 2018-05-19 2018-10-19 深圳市图灵奇点智能科技有限公司 数据验证方法和安全多方计算系统
CN108809623A (zh) * 2018-07-10 2018-11-13 矩阵元技术(深圳)有限公司 安全多方计算方法、装置及系统
CN109886687A (zh) * 2019-02-28 2019-06-14 矩阵元技术(深圳)有限公司 一种基于区块链实现安全多方计算的结果验证方法及系统
CN110719159A (zh) * 2019-09-24 2020-01-21 河南师范大学 抗恶意敌手的多方隐私集合交集方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CHEN, ZHILI.: ""Efficient Three-party Computation: An Information-theoretic Approach from Cut-and-Choose."", 《ARXIV PREPRINT ARXIV:1908.03718》 *
KOLESNIKOV, VLADIMIR ET AL.: ""Improved garbled circuit building blocks and applications to auctions and computing minima."", 《INTERNATIONAL CONFERENCE ON CRYPTOLOGY AND NETWORK SECURITY》 *
KOLESNIKOV, VLADIMIR ET AL.: ""Improved garbled circuit: Free XOR gates and applications."", 《INTERNATIONAL COLLOQUIUM ON AUTOMATA, LANGUAGES, AND PROGRAMMING》 *
叶建伟等: "一种基于带承诺加密电路的移动代码保护协议", 《计算机研究与发展》 *

Also Published As

Publication number Publication date
CN111628991B (zh) 2021-12-28

Similar Documents

Publication Publication Date Title
EP3451578B1 (en) Turn-control rewritable blockchain
US10305875B1 (en) Hybrid blockchain
Huang et al. Efficient secure two-party computation using symmetric cut-and-choose
Asharov et al. Calling out cheaters: Covert security with public verifiability
CN113591146B (zh) 基于合作的高效安全两方计算系统及计算方法
CN117171779B (zh) 基于交集保护的数据处理装置
CN112489283B (zh) 一种基于区块链和安全多方计算的电子投票选举统计方法
CN111628991B (zh) 一种通用且抗恶意敌手的安全计算方法
CN114169888B (zh) 一种通用型支持多重签名的加密货币保管方法
CN116318901A (zh) 一种融合区块链的隐私和可验证物联网数据聚合方法
CN116127429A (zh) 一种基于符号映射编码和区块链的数据确权方法
CN113541963A (zh) 一种基于tee可扩展的安全多方计算方法及系统
Babenko et al. Security analysis of the electronic voting protocol based on blind intermediaries using the spin verifier
Lai et al. Recursive hiding of biometrics-based secret sharing scheme using adversary structure
CN114520728B (zh) 一种分布式匿名阅卷评分方法与系统
CN113222591B (zh) 一种基于区块链的公平两方协商方法及系统
Ma et al. VPFL: Enabling verifiability and privacy in federated learning with zero-knowledge proofs
You et al. A novel key sharing fuzzy vault scheme
Habib et al. CredSec: A Blockchain-based Secure Credential Management System for University Adoption
Sun et al. Improved Voting System Based on Blockchain
CN118013542A (zh) 基于区块链的种子指纹数据加密、解密方法及管理系统
CN118300904A (zh) 一种基于同态的分组可验证联邦学习方法
CN115150050A (zh) 用于联邦学习的安全审计装置、方法、系统以及介质
CN115396148A (zh) 隐私保护的名单查询方法、系统、介质、设备及终端
CN115733651A (zh) 交易隐私保护方法和装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant