CN112861166B - 一种高效率安全多方计算方法 - Google Patents

一种高效率安全多方计算方法 Download PDF

Info

Publication number
CN112861166B
CN112861166B CN202110443101.6A CN202110443101A CN112861166B CN 112861166 B CN112861166 B CN 112861166B CN 202110443101 A CN202110443101 A CN 202110443101A CN 112861166 B CN112861166 B CN 112861166B
Authority
CN
China
Prior art keywords
participant
label
participants
gate
encrypted
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
CN202110443101.6A
Other languages
English (en)
Other versions
CN112861166A (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.)
Zhejiang Shuqin Technology Co Ltd
Original Assignee
Zhejiang Shuqin Technology Co Ltd
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 Zhejiang Shuqin Technology Co Ltd filed Critical Zhejiang Shuqin Technology Co Ltd
Priority to CN202110443101.6A priority Critical patent/CN112861166B/zh
Publication of CN112861166A publication Critical patent/CN112861166A/zh
Application granted granted Critical
Publication of CN112861166B publication Critical patent/CN112861166B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及信息安全技术领域,具体涉及一种高效率安全多方计算方法,包括以下步骤:步骤A)第一参与方将待计算函数转换为布尔电路,第一参与方将布尔电路的门分派给各个参与方;步骤B)第一参与方生成映射表,记为真值表;步骤C)参与方向第一参与方通过OT传输获得输入标签,通过查真值表获得门的输出标签;步骤D)全部门均得出输出标签后,布尔电路将输出结果标签,第一参与方将结果标签转换为结果真值,结果真值即为多方计算的结果。本发明的实质性效果是:将布尔电路的门转换为真值表,并分派给不同参与方进行计算,分散了计算任务,能够缩短安全多方计算所需要的时间,提高安全多方计算的效率。

Description

一种高效率安全多方计算方法
技术领域
本发明涉及信息安全技术领域,具体涉及一种高效率安全多方计算方法。
背景技术
安全多方计算是针对无可信第三方的情况下,如何安全地计算一个约定函数的问题。安全多方计算中,各个参与方无需向对方或第三方透露其原数据,即可完成需要多个参与方原数据才能完成的约定函数的计算。使得安全多方计算具有输入隐私性、计算正确性以及去中心化特征,能使数据既保持隐私又能被使用,从而释放隐私数据分享,隐私数据分析,隐私数据挖掘的巨大价值。安全多方计算是电子选举、门限签名以及电子拍卖等诸多应用得以实施的密码学基础。数据公开共享是区块链采用的分布式账本技术的特征之一,使得数据隐私在区块链上面临考验。结合安全多方计算,使得区块链领域能够即保证数据的隐私性,又能够保证计算的正确可信。因而在隐私智能合约、密钥管理、随机数生成等技术中发挥着重要作用。但目前的安全多方计算方法存在效率较低的技术问题。
如中国专利CN109446828A,公开日2019年3月8日,一种安全多方计算方法,包括:确定为完成目标计算任务所需要提交的输入值;随机产生秘密值,用秘密值对输入值加密,并在系统中广播加密输入值;生成其他参与方对应的加密集合,并向其他参与方发送;接收其他参与方广播的加密输入值和加密集合;基于加密输入值及加密集合,计算得到反馈值;以其他参与方的公钥对反馈值加密,并向该参与方发送加密后反馈值;接收其他参与方发送的加密后反馈值,并基于加密后反馈值和系统中每个参与方的ID,完成目标计算任务。其多次进行广播加密集合且使用了同态加密技术,导致运算量较大,降低了计算效率。
发明内容
本发明要解决的技术问题是:目前的安全多方计算存在效率较低的技术问题,提出了一种高效率安全多方计算方法。
为解决上述技术问题,本发明所采取的技术方案为:一种高效率安全多方计算方 法,用于具有发起方和多个参与方的多方计算,其特征在于,包括以下步骤:所述发起方将 待计算函数转换为布尔电路,而后将布尔电路的门作为门计算任务,分派给多个参与方,参 与方将收到其门计算任务;由所述发起方生成输入输出标签映射表,所述输入输出标签映 射表记为真值表,布尔电路由此转化为多张真值表,多张所述真值表根据门计算任务分派 情况,发送给多个参与方;每个所述参与方分别与所述发起方通过OT传输获得其数据输入 相应的标签,若被分派的门计算任务的输入数据包含其他参与方的标签,则向对应参与方 索要标签,参与方通过查真值表获得门计算任务的输出标签;布尔电路全部门均得出输出 标签后,布尔电路将输出结果标签,所述发起方将所述结果标签转换为真值,即为多方计算 的结果。理论上,任何函数都可以转换为布尔电路,即布尔电路能够实现复杂函数的计算。 将布尔电路
Figure 681949DEST_PATH_IMAGE001
的门转换为真值表,并分派给不同参与方进行计算,分散了计算任务,能够缩 短安全多方计算所需要的时间,提高安全多方计算的效率。
作为优选,将门计算任务分派给多个参与方的方法包括以下步骤:首先,将仅使用参与方输入标签的门计算任务分派给对应的参与方;而后,对于使用发起方和第二参与方输入标签的门计算任务,比较发起方和第二参与方的已分派的门计算任务数量,将门计算任务分派给已分派门计算任务数量较少的参与方,若发起方和第二参与方已被分派的门计算任务数量相等,则分派给发起方;最后,对于使用已分派给发起方和第二参与方的门计算任务的输出标签的门计算任务,比较发起方和第二参与方的已分派的门计算任务数量,将门计算任务分派给已分派门计算任务数量较少的参与方,若发起方和第二参与方已被分派的门计算任务数量相等,则分派给发起方。
作为优选,将门计算任务分派给多个参与方的方法包括以下步骤:首先,将仅使用参与方输入标签的门计算任务分派给对应的参与方;而后,对于使用发起方和第二参与方输入标签的门计算任务,将门计算任务分派给已分派门计算任务数量较少的参与方,若发起方和第二参与方已被分派的门计算任务数量相等,则发起方和第二参与方已被分派的门计算任务的并行指数,所述并行指数计算方法为:统计已被分派的门计算任务中的次级门计算任务,所述次级门计算任务指输入中包括其他门计算任务的输出的门计算任务,将已被分派的门计算任务的数量与次级门计算任务的数量的商作为并行指数。
作为优选,将门计算任务分派给多个参与方的方法包括以下步骤:排序后遍历参与方,将使用当前被遍历参与方以及排序在所述被遍历参与方前的参与方标签的门计算任务分配给所述被遍历参与方,即完成门计算任务分派。本优选方案能够均衡每个参与方被分派到的计算量,有助于提高安全多方计算的效率。
作为优选,由所述发起方生成输入输出标签映射表的方法包括:将布尔电路的门计算任务排序并编号,依照排序对每个门计算任务执行以下步骤:列举门计算任务的输入及输出的可取值,将每个可取值使用预设长度的随机码代替;穷举门计算任务的输入组合,获得每个所述输入组合对应的输出,将所述输出用相应的随机码表示,将表示输入组合的随机码组合以及表示输出的随机码分别作为输入输出标签映射表的第一列和第二列,所述输入输出标签映射表即真值表,真值表的标识同相应的门计算任务的编号。本优选技术方案能够通过门的编号标识快速索引每张真值表,方便参与方之间进行标签传输。
作为优选,参与方通过OT传输获得其数据输入相应的标签的方法包括以下步骤:参与方将真值表标识发送给发起方并声明请求获取标签;所述发起方列举所述参与方发送的真值表标识对应的真值表中输入的全部可取值及其标签,所述发起方为每个可取值生成一个标示随机数,将标示随机数和可取值关联后发送给所述参与方;所述参与方生成隐码,所述隐码为随机数,所述参与方获得与其数据输入相等的可取值对应的标示随机数,使用标示随机数对隐码进行对称加密,获得加密隐码,所述参与方将加密隐码发送给所述发起方;所述发起方收到加密隐码后,使用全部可取值对应的标示随机数进行解密,获得与可取值数量相等的解密后的复原隐码,复原隐码中将存在且仅存在一个与原始的隐码相同,分别使用复原隐码对称加密标签,获得加密标签,将全部加密标签发送给所述参与方;所述参与方尝试使用隐码解密每个加密标签,将能且仅能成功解密一个加密标签,获得的标签即为其数据输入相应的标签。本方案提供的OT传输方法能够在两个参与方之间完成,不需要广播数据,减少了通信量需求。参与方不能存储加密隐码,当参与方将加密隐码发送给发起方后,参与方应销毁加密隐码。
作为优选,使用标示随机数对隐码进行对称加密的加密方法为:按位读取标示随机数,若被读取的标示随机数的位值为1,则按位取出隐码的位值作为加密隐码的位值,若隐码的位值被取完,则将填补数作为加密隐码的位值,所述填补数由隐码的最后一位取反获得,若被读取的标示随机数的位值为0,则随机生成0或1作为加密隐码的位值,直到遍历标示随机数,其中,所述发起方运行有检查机制,确保标示随机数中具有多于隐码长度的位值1;相应的,在所述发起方收到加密隐码后,使用全部标示随机数进行解密的方法为:对每个标示随机数按位读取,若被读取的标示随机数的位值为1,则将加密隐码中相应位置的位值保留,若被读取的标示随机数的位值为0,则将加密隐码中相应位置的位删除,按位读取完标示随机数后,加密隐码保留下来的位值将是复原隐码以及填补数,找到与所述填补数不同的最后一位即为复原隐码的最后一位,即获得复原隐码。隐码的位数不需要提前约定,即减少了通信次数,也提高了加密的安全性,本方案提供的加密方案具有计算不复杂,计算快速的优点,能够进一步提高安全多方计算的效率。
作为优选,使用复原隐码加密标签的方法为:按位读取复原隐码,若被读取的复原隐码的位值为1,则按位取出标签的位值作为加密标签的位值,若标签的位值被取完,则将填补数作为加密标签的位值,所述填补数由标签的最后一位取反获得,若被读取的复原隐码的位值为0,则随机生成0或1作为加密标签的位值,直到遍历复原隐码;相应的,所述参与方使用隐码解密加密标签的方法为:按位读取隐码,若被读取的隐码的位值为1,则将加密标签中相应位置的位值保留,若被读取的隐码的位值为0,则将加密标签中相应位置的位删除,按位读取完隐码后,加密标签保留下来的位值将是标签及填补数,找到与填补数不同的最后一位即为标签的最后一位,只有长度与约定值相同的标签为正确标签,若未得到长度正确标签或长度正确标签数量多于1个,则通知发起方,并更换标示随机数和隐码后重新尝试获取标签。标签的位数为全部参与方均知晓的约定值。
作为优选,向对应参与方索要标签的方法包括:所述参与方向发起方发送对应真值表的标识,所述发起方根据真值表的分派结果向对应参与方索要相应的输出,当所述的对应参与方返回所述输出时,所述发起方将所述输出复原为真值,将复原得到的所述真值在所述参与方发送的真值表标识对应的真值表的标签发送给所述参与方。
本发明的实质性效果是:1)将布尔电路的门转换为真值表,并分派给不同参与方进行计算,分散了计算任务,能够缩短安全多方计算所需要的时间,提高安全多方计算的效率;2)通过OT传输在参与方和发起方之间传递标签,能够有效保护参与方输入数据的隐私,保证各个参与方的数据安全;3)通过使用标示随机数和隐码进行对称加密传递标签,避免使用复杂的加密算法,能够提高标签传递的效率。
附图说明
图1为实施例一安全多方计算方法流程示意图;
图2为实施例一分派给各个参与方流程示意图;
图3为实施例一建立标签映射表方法流程示意图;
图4为实施例一获得输入标签的方法流程示意图;
图5为实施例一对随机数加密的方法流程示意图;
图6为实施例一对标签加密的方法流程示意图。
具体实施方式
下面通过具体实施例,并结合附图,对本发明的具体实施方式作进一步具体说明。
实施例一:
一种高效率安全多方计算方法,用于具有N个参与方的多方计算,发起安全多方计算的参与方为发起方,发起方将其余参与方排序,请参阅附图1,本实施例包括以下步骤:
步骤A)发起方将待计算函数
Figure 519455DEST_PATH_IMAGE002
转换为布尔电路
Figure 616724DEST_PATH_IMAGE001
Figure 59338DEST_PATH_IMAGE003
表示参与 方
Figure 216650DEST_PATH_IMAGE004
的输入,发起方将布尔电路
Figure 744715DEST_PATH_IMAGE001
的每个门分派给各个参与方。
理论上,任何函数都可以转换为布尔电路,即布尔电路能够实现复杂函数的计算。 比如将电子选举的规则函数,即待计算函数,转换为布尔电路
Figure 816314DEST_PATH_IMAGE001
,则各参与方将是否投票给 候选人的布尔值输入布尔电路
Figure 503647DEST_PATH_IMAGE001
,最终布尔电路
Figure 707226DEST_PATH_IMAGE001
将输出当前候选人是否成功被选上的结 果布尔值。也可以将求和函数转换为布尔电路,各参与方将自身的销售额转换为标签输入 布尔电路
Figure 847220DEST_PATH_IMAGE001
后,布尔电路
Figure 896079DEST_PATH_IMAGE001
最终会得出代表行业销售总额的标签组合,即布尔值组合,也即 一个二进制数。用于不记名电子拍卖时,各参与方将自己的出价输入,布尔电路
Figure 437919DEST_PATH_IMAGE001
将比较各 参与方出价的大小,并输出出价最高的参与方,即为拍卖中标方。
步骤B)发起方生成布尔电路
Figure 812400DEST_PATH_IMAGE001
每个门的输入输出标签映射表,记为真值表
Figure 439690DEST_PATH_IMAGE005
Figure 844302DEST_PATH_IMAGE006
表示真值表
Figure 850436DEST_PATH_IMAGE007
的输入,
Figure 520451DEST_PATH_IMAGE008
表示门的输入端数量,
Figure 510404DEST_PATH_IMAGE009
表示真值表
Figure 228961DEST_PATH_IMAGE007
的 输出,布尔电路
Figure 214235DEST_PATH_IMAGE001
被表示为M张真值表,M为布尔电路
Figure 225791DEST_PATH_IMAGE001
中门的数量。使用输入输出标签映射 表,即真值表,各参与方将不需要暴露自己的输入数据,当用于求行业销售总额时,各参与 方不需要暴露自己的销售额。同时,也使得各参与方无法操控每个门的输出,因为参与方无 法知晓真值表中每个标签的真实含义,如强行作恶,可能会得出对自己不利的结果标签,因 而不会作恶。
步骤C)每个参与方
Figure 30936DEST_PATH_IMAGE004
均根据被分派的门对应的真值表,向发起方通过OT传输获得 输入
Figure 287605DEST_PATH_IMAGE010
相应的标签,若被分派的门的输入包含其他参与方的标签,则向对应参与方索要标 签,参与方
Figure 533910DEST_PATH_IMAGE004
获得被分派的门的输入标签后,通过查真值表获得门的输出标签。向对应参与 方索要输出标签的方法为:参与方
Figure 545728DEST_PATH_IMAGE004
向发起方索要
Figure 510273DEST_PATH_IMAGE006
,发起方根据真值表
Figure 632950DEST_PATH_IMAGE007
的分派结果向 对应参与方
Figure 235226DEST_PATH_IMAGE011
索要相应的输出
Figure 683525DEST_PATH_IMAGE012
Figure 869787DEST_PATH_IMAGE013
表示输出与
Figure 796154DEST_PATH_IMAGE006
连接的真值表下标,当参与方
Figure 17051DEST_PATH_IMAGE011
返回输出
Figure 105093DEST_PATH_IMAGE012
时,发起方将
Figure 778651DEST_PATH_IMAGE012
复原为真值,将复原得到的真值对应的标签发送给参与方
Figure 508709DEST_PATH_IMAGE004
表1 本实施例中真值表T21
Figure 82648DEST_PATH_IMAGE014
若参与方
Figure 607170DEST_PATH_IMAGE004
具有真值表T21所对应的与门的两个输入,请参阅表1,该门为一个“与” 门,比如若参与方
Figure 768024DEST_PATH_IMAGE004
具有的原始数据为
Figure 36195DEST_PATH_IMAGE015
,但参与方
Figure 966104DEST_PATH_IMAGE004
并不知晓真值表T21对应 的门为“与”门,也不知晓
Figure 927107DEST_PATH_IMAGE016
对应真值表T21中的哪个输入标签,因而无法直接获得门的 输出。请参阅表2,表2为方便理解本技术方案而列出的表格,在实际应用中并不会有这样表 被传递。
表2 本实施例中真值表T21的标签值含义
标签 标签含义 标签值
E1 门的第一个输入的第一个可取值,即0 01011101
E2 门的第一个输入的第二个可取值,即1 01000101
F1 门的第二个输入的第一个可取值,即0 01011001
F2 门的第二个输入的第二个可取值,即1 11110010
G1 门的第一个可能输出值,即0 11010101
G2 门的第一个可能输出值,即1 01010100
若参与方
Figure 575257DEST_PATH_IMAGE004
只能通过OT传输从发起方获得输入
Figure 381539DEST_PATH_IMAGE017
的值取0时的标签,即
Figure 933000DEST_PATH_IMAGE018
,而后再次通过OT传输从发起方获得输入
Figure 799325DEST_PATH_IMAGE019
的值取1时的标签,即
Figure 934771DEST_PATH_IMAGE020
,查表1所示的真值表,可得输入对应为第三行,第三行的输出为11010101, 参与方
Figure 544744DEST_PATH_IMAGE004
不知晓11010101的含义,因而不能知晓结果,使得参与方
Figure 449246DEST_PATH_IMAGE004
无法操纵门的结果,避免 其作恶。因为真值表T21的第5行和第6行,为两个干扰行,无论参与方
Figure 424155DEST_PATH_IMAGE004
的输入是什么,发起 方永远都不会返回第5行和第6行所表示的组合,使得参与方
Figure 905952DEST_PATH_IMAGE004
不知晓
Figure 693517DEST_PATH_IMAGE016
以外的输入,对 应的标签是什么,保护了真值表的隐秘性,进一步避免参与方
Figure 577160DEST_PATH_IMAGE004
操纵真值表作恶。
步骤D)当布尔电路
Figure 926232DEST_PATH_IMAGE001
的全部门均得出输出标签后,布尔电路
Figure 895325DEST_PATH_IMAGE001
将输出结果标签,发 起方将结果标签转换为结果真值,结果真值即为多方计算的结果。将布尔电路
Figure 722467DEST_PATH_IMAGE001
的门转换 为真值表,并分派给不同参与方进行计算,分散了计算任务,能够缩短安全多方计算所需要 的时间,提高安全多方计算的效率。
将布尔电路
Figure 726195DEST_PATH_IMAGE001
的每个门分派给各个参与方的方法请参与附图2,具体包括:步骤 A1)首先将仅使用参与方
Figure 246169DEST_PATH_IMAGE021
输入标签即可计算的门分派给参与方
Figure 702559DEST_PATH_IMAGE021
。步骤A2)使用参与方
Figure 569277DEST_PATH_IMAGE022
和参与方
Figure 161932DEST_PATH_IMAGE021
的输入标签可计算的门记为
Figure 852808DEST_PATH_IMAGE023
,比较参与方
Figure 796493DEST_PATH_IMAGE022
和参与方
Figure 231016DEST_PATH_IMAGE021
已被分派的门的数 量,将门
Figure 943757DEST_PATH_IMAGE023
分派给已分派门数量较少的参与方,若参与方
Figure 539955DEST_PATH_IMAGE022
和参与方
Figure 141575DEST_PATH_IMAGE021
已被分派门的数量 相等,则分派给参与方
Figure 238844DEST_PATH_IMAGE021
,其中
Figure 947037DEST_PATH_IMAGE024
。步骤A3)使用已分派给参与方
Figure 838770DEST_PATH_IMAGE022
和参与方
Figure 632414DEST_PATH_IMAGE021
的门的输 出标签可计算的门记为
Figure 533374DEST_PATH_IMAGE025
,比较参与方
Figure 830494DEST_PATH_IMAGE022
和参与方
Figure 158707DEST_PATH_IMAGE021
已被分派的门的数量,将门
Figure 421672DEST_PATH_IMAGE025
分派给 已分派门数量较少的参与方,若参与方
Figure 391902DEST_PATH_IMAGE022
和参与方
Figure 809108DEST_PATH_IMAGE021
已被分派门的数量相等,则分派给参 与方
Figure 308222DEST_PATH_IMAGE021
,其中
Figure 810879DEST_PATH_IMAGE024
发起方生成布尔电路
Figure 53642DEST_PATH_IMAGE001
每个门的输入输出标签映射表的方法请参阅附图3,具体 包括:步骤B1)将布尔电路
Figure 59775DEST_PATH_IMAGE001
的门排序并编号,依照排序对每个门执行步骤B2)至步骤B3); 步骤B2)列举门的输入及输出的可取值,将每个可取值使用预设长度的随机码代替;步骤 B3)穷举门的输入组合及相对应的输出,用相应的随机码表示,分别作为真值表的第一列和 第二列,将真值表关联门的编号。能够通过门的编号标识快速索引每张真值表,方便参与方 之间进行标签传输。
参与方
Figure 729791DEST_PATH_IMAGE004
根据真值表通过OT传输获得输入
Figure 218278DEST_PATH_IMAGE010
相应的标签的方法请参阅附图4,具体 包括:步骤C1)参与方
Figure 999153DEST_PATH_IMAGE004
将真值表标识发送给发起方并请求获取标签;步骤C2)发起方列举真 值表中输入
Figure 390951DEST_PATH_IMAGE010
的全部可取值
Figure 231868DEST_PATH_IMAGE026
及其标签
Figure 709117DEST_PATH_IMAGE027
Figure 965786DEST_PATH_IMAGE028
为可取值的下标,发起方为每个可取值
Figure 539987DEST_PATH_IMAGE026
生 成一个标示随机数
Figure 725374DEST_PATH_IMAGE029
,将标示随机数
Figure 548973DEST_PATH_IMAGE029
Figure 812595DEST_PATH_IMAGE026
关联后发送给参与方
Figure 38040DEST_PATH_IMAGE004
;步骤C3)参与方
Figure 96126DEST_PATH_IMAGE004
收到 标示随机数
Figure 672601DEST_PATH_IMAGE029
及关联的
Figure 474335DEST_PATH_IMAGE026
后,生成隐码
Figure 554286DEST_PATH_IMAGE030
,获得与
Figure 547388DEST_PATH_IMAGE010
相等的
Figure 345580DEST_PATH_IMAGE026
对应的标示随机数
Figure 951005DEST_PATH_IMAGE031
, 使用标示随机数
Figure 619883DEST_PATH_IMAGE031
对隐码
Figure 285351DEST_PATH_IMAGE030
进行加密,获得加密隐码
Figure 570839DEST_PATH_IMAGE032
,参与方
Figure 714375DEST_PATH_IMAGE004
将加密隐码
Figure 768919DEST_PATH_IMAGE032
发送 给发起方;步骤C4)发起方收到加密隐码
Figure 106753DEST_PATH_IMAGE032
后,使用全部可取值
Figure 613957DEST_PATH_IMAGE026
对应的标示随机数
Figure 561185DEST_PATH_IMAGE029
进 行解密,获得与可取值
Figure 735814DEST_PATH_IMAGE026
数量相等的解密后的复原隐码
Figure 477505DEST_PATH_IMAGE033
,复原隐码
Figure 409689DEST_PATH_IMAGE033
中有且仅有一个 与隐码
Figure 19662DEST_PATH_IMAGE030
相同,分别使用复原隐码
Figure 422699DEST_PATH_IMAGE033
加密
Figure 459926DEST_PATH_IMAGE026
对应的标签
Figure 82668DEST_PATH_IMAGE027
,获得加密标签
Figure 496332DEST_PATH_IMAGE034
,将全部加 密标签
Figure 255340DEST_PATH_IMAGE034
发送给参与方
Figure 729047DEST_PATH_IMAGE004
;步骤C5)参与方
Figure 573506DEST_PATH_IMAGE004
尝试使用隐码
Figure 525282DEST_PATH_IMAGE030
解密每个加密标签
Figure 640262DEST_PATH_IMAGE034
,将能且 仅能成功解密一个标签
Figure 19290DEST_PATH_IMAGE027
,即与
Figure 351046DEST_PATH_IMAGE010
相等的
Figure 106512DEST_PATH_IMAGE026
对应的标签
Figure 840113DEST_PATH_IMAGE027
,即标签
Figure 327726DEST_PATH_IMAGE035
。本方案提供的OT 传输方法能够在两个参与方之间完成,不需要广播数据,减少了通信量需求。参与方
Figure 271411DEST_PATH_IMAGE004
不能 存储加密隐码
Figure 938891DEST_PATH_IMAGE032
,当参与方
Figure 651632DEST_PATH_IMAGE004
将加密隐码
Figure 513409DEST_PATH_IMAGE032
发送给发起方后,参与方
Figure 944390DEST_PATH_IMAGE004
应销毁加密隐码
Figure 917025DEST_PATH_IMAGE032
使用标示随机数
Figure 484273DEST_PATH_IMAGE031
对隐码
Figure 516951DEST_PATH_IMAGE030
进行加密的方法请参阅附图5,具体为:步骤 C31)按位读取标示随机数
Figure 435228DEST_PATH_IMAGE031
,若标示随机数
Figure 435721DEST_PATH_IMAGE031
位值为1,则步骤C32)按位取出隐 码
Figure 123054DEST_PATH_IMAGE030
的位值作为加密隐码
Figure 326634DEST_PATH_IMAGE032
的位值,若隐码
Figure 466628DEST_PATH_IMAGE030
的位值被取完,则将填补数作为加密隐码
Figure 781066DEST_PATH_IMAGE032
的 位值,填补数由隐码
Figure 588485DEST_PATH_IMAGE030
的最后一位取反获得,若标示随机数
Figure 697386DEST_PATH_IMAGE031
位值为0,则步骤C33)随 机生成0或1作为加密隐码
Figure 324677DEST_PATH_IMAGE032
的位值,直到遍历标示随机数
Figure 675761DEST_PATH_IMAGE031
,其中,发起方运行有检 查机制,确保标示随机数
Figure 337687DEST_PATH_IMAGE031
中具有多于隐码
Figure 679807DEST_PATH_IMAGE030
长度的位值1;步骤C4)中,发起方收到 加密隐码
Figure 669759DEST_PATH_IMAGE032
后,使用全部可取值
Figure 450634DEST_PATH_IMAGE026
对应的标示随机数
Figure 842432DEST_PATH_IMAGE029
进行解密的方法为:步骤C41)对每 个标示随机数
Figure 417770DEST_PATH_IMAGE029
按位读取,若标示随机数数
Figure 396483DEST_PATH_IMAGE029
的位值为1,则步骤C42)将加密隐码
Figure 981048DEST_PATH_IMAGE032
中相 应位置的位值保留,若标示随机数
Figure 227353DEST_PATH_IMAGE029
的位值为0,则步骤C43)将加密隐码
Figure 239171DEST_PATH_IMAGE032
中相应位置的 位删除,步骤C44)按位读取完标示随机数
Figure 938137DEST_PATH_IMAGE029
后,加密隐码
Figure 326393DEST_PATH_IMAGE032
保留下来的位值将是隐码
Figure 427204DEST_PATH_IMAGE030
及 若干个填补数,找到与填补数不同的最后一位即为隐码
Figure 780563DEST_PATH_IMAGE030
的最后一位。表3记载了本实施例 中,获取真值表T21的第一个输入E取值为0时的标签过程中,发起方和参与方i执行的操作 和生成的变量的值。其中,为避免错误解密值bn’中的取值为1的位值数量不足,应当使标签
Figure 357038DEST_PATH_IMAGE027
具有较多的位数,本实施例中标签
Figure 158772DEST_PATH_IMAGE027
具有25位,若使用具有255位长度的标签
Figure 238723DEST_PATH_IMAGE027
则效 果更佳。
表3 获得输入标签过程中参与方执行及传递的内容
Figure 733290DEST_PATH_IMAGE037
使用复原隐码
Figure 531481DEST_PATH_IMAGE033
加密
Figure 871327DEST_PATH_IMAGE026
对应的标签
Figure 71364DEST_PATH_IMAGE027
的方法请参阅附图6,具体为:按位读取 复原隐码
Figure 972717DEST_PATH_IMAGE033
,若复原隐码
Figure 992626DEST_PATH_IMAGE033
位值为1,则按位取出标签
Figure 401742DEST_PATH_IMAGE027
的位值作为加密标签
Figure 456285DEST_PATH_IMAGE034
的位 值,若标签
Figure 27075DEST_PATH_IMAGE027
的位值被取完,则将填补数作为加密标签
Figure 799859DEST_PATH_IMAGE034
的位值,填补数由标签
Figure 747087DEST_PATH_IMAGE027
的最 后一位取反获得,若复原隐码
Figure 826776DEST_PATH_IMAGE033
位值为0,则随机生成0或1作为加密标签
Figure 958680DEST_PATH_IMAGE034
的位值,直到 遍历复原隐码
Figure 828547DEST_PATH_IMAGE033
;参与方
Figure 704099DEST_PATH_IMAGE004
尝试使用隐码
Figure 608601DEST_PATH_IMAGE030
解密加密标签
Figure 645827DEST_PATH_IMAGE034
的方法为:按位读取隐码
Figure 268570DEST_PATH_IMAGE030
, 若隐码
Figure 682233DEST_PATH_IMAGE030
的位值为1,则将加密标签
Figure 677128DEST_PATH_IMAGE034
中相应位置的位值保留,若隐码
Figure 885255DEST_PATH_IMAGE030
的位值为0,则将加 密标签
Figure 729714DEST_PATH_IMAGE034
中相应位置的位删除,按位读取完隐码
Figure 947069DEST_PATH_IMAGE030
后,加密标签
Figure 560584DEST_PATH_IMAGE034
保留下来的位值将是标 签
Figure 205192DEST_PATH_IMAGE027
及若干个填补数,找到与填补数不同的最后一位即为标签
Figure 333685DEST_PATH_IMAGE027
的最后一位,只有长度 与约定值相同的标签
Figure 463053DEST_PATH_IMAGE027
为正确标签,若得到的正确标签数量为0或者大于1,则通知第一约 定方,并从步骤C1)重新尝试获取标签。其中,参与方
Figure 321287DEST_PATH_IMAGE004
运行有检查机制,使加密隐码
Figure 12163DEST_PATH_IMAGE032
经任 一标示随机数
Figure 690269DEST_PATH_IMAGE029
解密后,所具有的位值1数量大于标签
Figure 859213DEST_PATH_IMAGE027
的位数,标签
Figure 571954DEST_PATH_IMAGE027
的位数为全部 参与方均知晓的约定值。
实施例二:
一种高效率安全多方计算方法,本实施例相对于实施例一,进行了进一步的改进, 实施例一中,需要对参与方
Figure 433731DEST_PATH_IMAGE004
进行可信合约限制,使其在生成并传递加密隐码
Figure 864712DEST_PATH_IMAGE032
后,将加密 隐码
Figure 350531DEST_PATH_IMAGE032
删除。本实施例中,则采用了另外的实施方式,提高了确保参与方
Figure 917779DEST_PATH_IMAGE004
不保存加密隐码
Figure 747194DEST_PATH_IMAGE032
的可信度。本实施例中,参与方
Figure 275259DEST_PATH_IMAGE004
生成加密隐码
Figure 176219DEST_PATH_IMAGE032
后,将加密隐码
Figure 738918DEST_PATH_IMAGE032
以及对应的标示随机 数
Figure 801552DEST_PATH_IMAGE029
发送给参与方
Figure 315448DEST_PATH_IMAGE011
,参与方
Figure 754519DEST_PATH_IMAGE011
根据标示随机数
Figure 171725DEST_PATH_IMAGE029
,将标示随机数
Figure 670840DEST_PATH_IMAGE029
中位值取0对应的加 密隐码
Figure 173497DEST_PATH_IMAGE032
位值进行随机改动,而对标示随机数
Figure 416259DEST_PATH_IMAGE029
中位值取1对应的加密隐码
Figure 953551DEST_PATH_IMAGE032
位值不做操 作,将改动后的加密隐码
Figure 623567DEST_PATH_IMAGE032
发送给发起方。由于参与方
Figure 646143DEST_PATH_IMAGE011
并不知道更多信息,因而无法得知 任何有用信息,且仅对标示随机数
Figure 567962DEST_PATH_IMAGE029
中位值取0对应的加密隐码
Figure 84394DEST_PATH_IMAGE032
位值进行随机改动,不 会影响后续步骤的解密。改动不需要针对每个取值为0的位值,随机改动若干个即可,如表4 中所示意的改动。为实现事后验证,参与方
Figure 800677DEST_PATH_IMAGE004
生成加密隐码
Figure 136981DEST_PATH_IMAGE032
后,将加密隐码
Figure 596912DEST_PATH_IMAGE032
以及对应的 标示随机数
Figure 967851DEST_PATH_IMAGE029
加密后上链存储,发起方收到改动后的加密隐码
Figure 353570DEST_PATH_IMAGE032
后,将所收到的加密隐码
Figure 177170DEST_PATH_IMAGE032
加密后上链存储,上链存储前的加密采用各自的私钥进行加密。
表4 对隐码b加密过程参与方执行的操作和具体变量的值
Figure 175213DEST_PATH_IMAGE038
同时本实施例对步骤A)中,将布尔电路
Figure 666237DEST_PATH_IMAGE001
的每个门分派给各个参与方的方法提供 了不同的技术方案,具体为:N个参与方的排序记为;从
Figure 724323DEST_PATH_IMAGE039
开始,将使用参与方
Figure 35219DEST_PATH_IMAGE022
的输入 标签以及参与方
Figure 633690DEST_PATH_IMAGE021
的输入和输出标签能够计算的门分配给参与方
Figure 182483DEST_PATH_IMAGE022
,其中
Figure 709673DEST_PATH_IMAGE024
,当
Figure 383231DEST_PATH_IMAGE039
时,不考虑参与方
Figure 113289DEST_PATH_IMAGE021
Figure 188693DEST_PATH_IMAGE004
循环自加1,直到布尔电路
Figure 713215DEST_PATH_IMAGE001
的全部门被分派。
以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。

Claims (6)

1.一种高效率安全多方计算方法,用于具有发起方和多个参与方的多方计算,其特征在于,包括以下步骤:
所述发起方将待计算函数转换为布尔电路,而后将布尔电路的门作为门计算任务,分派给多个参与方,参与方将收到其门计算任务;
由所述发起方生成输入输出标签映射表,所述输入输出标签映射表记为真值表,布尔电路由此转化为多张真值表,多张所述真值表根据门计算任务分派情况,发送给多个参与方;
每个所述参与方分别与所述发起方通过OT传输获得其数据输入相应的标签,若被分派的门计算任务的输入数据包含其他参与方的标签,则向对应参与方索要标签,参与方通过查真值表获得门计算任务的输出标签;
布尔电路全部门均得出输出标签后,布尔电路将输出结果标签,所述发起方将所述结果标签转换为真值,即为多方计算的结果;
参与方通过OT传输获得其数据输入相应的标签的方法包括以下步骤:
参与方将真值表标识发送给发起方并声明请求获取标签;
所述发起方列举所述参与方发送的真值表标识对应的真值表中输入的全部可取值及其标签,所述发起方为每个可取值生成一个标示随机数,将标示随机数和可取值关联后发送给所述参与方;
所述参与方生成隐码,所述隐码为随机数,所述参与方获得与其数据输入相等的可取值对应的标示随机数,使用标示随机数对隐码进行对称加密,获得加密隐码,所述参与方将加密隐码发送给所述发起方;
所述发起方收到加密隐码后,使用全部可取值对应的标示随机数进行解密,获得与可取值数量相等的解密后的复原隐码,复原隐码中将存在且仅存在一个与原始的隐码相同,分别使用复原隐码对称加密标签,获得加密标签,将全部加密标签发送给所述参与方;
所述参与方尝试使用隐码解密每个加密标签,将能且仅能成功解密一个加密标签,获得的标签即为其数据输入相应的标签。
2.根据权利要求1所述的一种高效率安全多方计算方法,其特征在于,
将门计算任务分派给多个参与方的方法包括以下步骤:
首先,将仅使用参与方输入标签的门计算任务分派给对应的参与方;
而后,对于使用第一参与方和第二参与方输入标签的门计算任务,比较第一参与方和第二参与方的已分派的门计算任务数量,将门计算任务分派给已分派门计算任务数量较少的参与方,若第一参与方和第二参与方已被分派的门计算任务数量相等,则分派给第一参与方;
最后,对于使用已分派给第一参与方和第二参与方的门计算任务的输出标签的门计算任务,比较第一参与方和第二参与方的已分派的门计算任务数量,将门计算任务分派给已分派门计算任务数量较少的参与方,若第一参与方和第二参与方已被分派的门计算任务数量相等,则分派给第一参与方。
3.根据权利要求1所述的一种高效率安全多方计算方法,其特征在于,
将门计算任务分派给多个参与方的方法包括以下步骤:
排序后遍历参与方,将使用当前被遍历参与方以及排序在所述被遍历参与方前的参与方标签的门计算任务分配给所述被遍历参与方,即完成门计算任务分派;
由所述发起方生成输入输出标签映射表的方法包括:
将布尔电路的门计算任务排序并编号,依照排序对每个门计算任务执行以下步骤:
列举门计算任务的输入及输出的可取值,将每个可取值使用预设长度的随机码代替;
穷举门计算任务的输入组合,获得每个所述输入组合对应的输出,将所述输出用相应的随机码表示,将表示输入组合的随机码组合以及表示输出的随机码分别作为输入输出标签映射表的第一列和第二列,所述输入输出标签映射表即真值表,真值表的标识同相应的门计算任务的编号。
4.根据权利要求1所述的一种高效率安全多方计算方法,其特征在于,
使用标示随机数对隐码进行对称加密的加密方法为:
按位读取标示随机数,若被读取的标示随机数的位值为1,则按位取出隐码的位值作为加密隐码的位值,若隐码的位值被取完,则将填补数作为加密隐码的位值,所述填补数由隐码的最后一位取反获得,若被读取的标示随机数的位值为0,则随机生成0或1作为加密隐码的位值,直到遍历标示随机数,其中,所述发起方运行有检查机制,确保标示随机数中具有多于隐码长度的位值1;
相应的,在所述发起方收到加密隐码后,使用全部标示随机数进行解密的方法为:对每个标示随机数按位读取,若被读取的标示随机数的位值为1,则将加密隐码中相应位置的位值保留,若被读取的标示随机数的位值为0,则将加密隐码中相应位置的位删除,按位读取完标示随机数后,加密隐码保留下来的位值将是复原隐码以及填补数,找到与所述填补数不同的最后一位即为复原隐码的最后一位,即获得复原隐码。
5.根据权利要求1所述的一种高效率安全多方计算方法,其特征在于,
使用复原隐码加密标签的方法为:
按位读取复原隐码,若被读取的复原隐码的位值为1,则按位取出标签的位值作为加密标签的位值,若标签的位值被取完,则将填补数作为加密标签的位值,所述填补数由标签的最后一位取反获得,若被读取的复原隐码的位值为0,则随机生成0或1作为加密标签的位值,直到遍历复原隐码;
相应的,所述参与方使用隐码解密加密标签的方法为:
按位读取隐码,若被读取的隐码的位值为1,则将加密标签中相应位置的位值保留,若被读取的隐码的位值为0,则将加密标签中相应位置的位删除,按位读取完隐码后,加密标签保留下来的位值将是标签及填补数,找到与填补数不同的最后一位即为标签的最后一位,只有长度与约定值相同的标签为正确标签,若未得到长度正确标签或长度正确标签数量多于1个,则通知发起方,并更换标示随机数和隐码后重新尝试获取标签。
6.根据权利要求1至3任一项所述的一种高效率安全多方计算方法,其特征在于,
若被分派的门计算任务的输入数据包含其他参与方的标签,则向对应参与方索要标签,参与方通过查真值表获得门计算任务的输出标签,具体包括:
所述参与方向发起方发送对应真值表的标识,所述发起方根据真值表的分派结果向对应参与方索要相应的输出,当所述的对应参与方返回所述输出时,所述发起方将所述输出复原为真值,将复原得到的所述真值在所述参与方发送的真值表标识对应的真值表的标签发送给所述参与方。
CN202110443101.6A 2021-04-23 2021-04-23 一种高效率安全多方计算方法 Active CN112861166B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110443101.6A CN112861166B (zh) 2021-04-23 2021-04-23 一种高效率安全多方计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110443101.6A CN112861166B (zh) 2021-04-23 2021-04-23 一种高效率安全多方计算方法

Publications (2)

Publication Number Publication Date
CN112861166A CN112861166A (zh) 2021-05-28
CN112861166B true CN112861166B (zh) 2021-07-27

Family

ID=75992715

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110443101.6A Active CN112861166B (zh) 2021-04-23 2021-04-23 一种高效率安全多方计算方法

Country Status (1)

Country Link
CN (1) CN112861166B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114024674B (zh) * 2021-11-23 2024-05-31 支付宝(杭州)信息技术有限公司 两方安全比较的方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109886687B (zh) * 2019-02-28 2023-12-05 矩阵元技术(深圳)有限公司 一种基于区块链实现安全多方计算的结果验证方法及系统
CN110166446B (zh) * 2019-05-13 2021-10-22 矩阵元技术(深圳)有限公司 一种基于安全多方计算的地理加权平均中心的实现方法
CN111008256B (zh) * 2019-10-29 2022-03-15 矩阵元技术(深圳)有限公司 一种基于安全多方计算的空间数据分布模式分析方法

Also Published As

Publication number Publication date
CN112861166A (zh) 2021-05-28

Similar Documents

Publication Publication Date Title
CN109040057B (zh) 一种基于区块链的多密钥分级保护隐私系统及方法
Kolesnikov et al. Improved garbled circuit building blocks and applications to auctions and computing minima
US9401804B2 (en) Leakage resilient garbled circuit generation using reduced memory hardware token
CN111510281B (zh) 一种同态加密方法及装置
CN113591146B (zh) 基于合作的高效安全两方计算系统及计算方法
US6772339B1 (en) Mix and match: a new approach to secure multiparty computation
Brandt How to obtain full privacy in auctions
CN113111373B (zh) Vbft共识机制的随机数生成方法和共识机制系统
US8533487B2 (en) Secure logical vector clocks
CN108712409B (zh) 一种基于私有区块链的电子账单交易系统
US20090083190A1 (en) System and Method for Electronic Bidding
CN116204912B (zh) 基于全同态加密的数据处理方法和装置
CN112995221B (zh) 一种联盟链安全多方计算方法
US10790972B2 (en) Quantum tokens
JP2021515271A (ja) コンピュータにより実施される投票処理およびシステム
US10887092B2 (en) Anonymous allocation and majority voting in a compromised environment
CN112861166B (zh) 一种高效率安全多方计算方法
Ahmad et al. A secure network communication protocol based on text to barcode encryption algorithm
Shoukat et al. A survey about latest trends and research issues of cryptographic elements
CN114239018A (zh) 保护隐私数据的共有数据数目确定方法和系统
CN114065242A (zh) 一种基于区块链技术的隐私数据保护方法
CN112948883A (zh) 保护隐私数据的多方联合建模的方法、装置和系统
Majumdar et al. DNA based cloud storage security framework using fuzzy decision making technique
CN116032639A (zh) 基于隐私计算的消息推送方法及装置
Nguyen et al. Efficient two-party integer comparison with block vectorization mechanism

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