安全多方计算协议的输入获取方法和装置
技术领域
本说明书实施例涉及密码学技术领域,更具体地,涉及获取安全多方计算协议的输入的方法和装置。
背景技术
服务提供商(如信用评估机构、贷款机构、保险公司)在为一个对象(个人或企业、组织)提供服务时,经常会对对象进行评估(如信用、喜好等)。个人或企业在与一个对象开展业务(如商业合作),经常也需要对该对象进行评估(如信用、资产等)。评估需要用户的可信数据,而用户的数据分散在各个数据源(如银行、税务局、房产局等)中。为了保护对象的隐私和评估方法的隐私,评估者和一个或多个数据源间会运行安全多方计算协议,以使得评估者得到评估结果。现有技术方案大致流程为:评估方向各数据源提供评估对象的ID;得到评估对象ID后,各数据源使用评估对象的数据与评估者一起执行一个安全多方计算协议,协议的执行结果是让评估者得到评估结果,且各数据源的对象数据在协议执行中不会泄露。在安全多方计算过程中(通常是最初阶段),每个数据源需要将根据评估对象数据生成的同态加密密文、秘密分割密文、混淆电路的混淆值中的一种或多种发送给其他一方或多方。然而,在上述现有技术方案中,暴露评估对象ID也存在泄漏评估对象的隐私的风险。
因此,需要一种更有效的获取安全多方计算协议的输入的方案。
发明内容
本说明书实施例旨在提供一种更有效的获取安全多方计算协议的输入的方案,以解决现有技术中的不足。
为实现上述目的,本说明书一个方面提供一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端和第二服务器端,所述方法在所述第一服务器端执行,包括:
获取多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识,并且,在所述第二服务器端中存储有与所述多个对象标识分别对应的多个数据;
向所述第二服务器端发送所述多个对象标识;以及
与所述第二服务器端执行不经意传输协议或私有信息检索协议,以从由所述第二服务器端生成的多个密文中获取与所述目标对象标识对应的密文,作为本地对所述安全多方计算协议的输入,并使得对所述第二服务器端隐藏所述目标对象标识,其中所述多个密文包括由所述第二服务器端使用所述多个数据生成的与所述多个对象标识分别对应的多个密文。
本说明书另一方面提供一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端、第二服务器端和第三服务器端,所述方法在所述第一服务器端执行,包括:
获取多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识,并且,在所述第二服务器端中存储有与所述多个对象标识分别对应的多个数据;
向所述第二服务器端发送所述多个对象标识;
与所述第二服务器端执行不经意传输协议或私有信息检索协议,以从由所述第二服务器端生成的多个密文中获取与所述目标对象标识对应的密文,并使得对所述第二服务器端隐藏所述目标对象标识,其中所述多个密文包括由所述第二服务器端使用所述多个数据生成的与所述多个对象标识分别对应的多个密文;以及
将与所述目标对象标识对应的密文发送所述第三服务器端。
在一个实施例中,在所述获取安全多方计算协议的输入的方法中,所述多个密文为以下密文中的一种:同态加密密文、秘密分割的份额密文、混淆电路的混淆值密文。
在一个实施例中,在所述获取安全多方计算协议的输入的方法中,与所述目标对象标识对应的密文为通过所述第三服务器端的第一密钥对初始密文进行再次加密而获取的密文,所述初始密文为对与所述目标标识对应的数据进行如下一种加密所获取的密文:同态加密、秘密分割方法、混淆电路方法。
本说明书另一方面提供一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端和第二服务器端,所述方法在所述第一服务器端执行,包括:
获取多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识,并且,在所述第二服务器端中存储有与所述多个对象标识分别对应的多个数据;
向所述第二服务器端发送所述多个对象标识;
从所述第二服务器端接收多个密文,并获知所述多个密文各自对应的对象标识,其中所述多个密文包括由所述第二服务器端通过同态加密方法使用所述多个数据生成的与所述多个对象标识分别对应的多个密文;以及
基于所述多个密文各自对应的对象标识,从所述多个密文中获取与所述目标对象标识对应的密文,作为本地对所述安全多方计算协议的输入。
本说明书另一方面提供一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端、第二服务器端和第三服务器端,所述方法在所述第一服务器端执行,包括:
获取多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识,并且,在所述第二服务器端中存储有与所述多个对象标识分别对应的多个数据;
向所述第二服务器端发送所述多个对象标识;
从所述第二服务器端接收多个密文,并获知所述多个密文各自对应的对象标识,其中所述多个密文包括由所述第二服务器端通过同态加密方法使用所述多个数据生成的与所述多个对象标识分别对应的多个密文;
基于所述多个密文各自对应的对象标识,从所述多个密文中获取与所述目标对象标识对应的密文;以及
将与所述目标对象标识对应的密文发送给所述第三服务器端,作为在所述第三服务器端处对所述安全多方计算协议的输入。
在一个实施例中,在所述获取安全多方计算协议的输入的方法中,从所述第二服务器端接收多个密文、并获知所述多个密文各自对应的对象标识包括,从所述第二服务器端接收多个密文和所述多个密文各自对应的对象标识。
在一个实施例中,在所述获取安全多方计算协议的输入的方法中,从所述第二服务器端接收多个密文、并获知所述多个密文各自对应的对象标识包括,从所述第二服务器端接收顺序排列的多个密文,并基于所述顺序排列的多个密文获知所述多个密文各自对应的对象标识。
本说明书另一方面提供一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端和第二服务器端,所述方法在所述第二服务器端执行,包括:
从所述第一服务器端接收多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识;
使用本地存储的与所述多个对象标识分别对应的多个数据生成与所述多个对象标识分别对应的多个密文;以及
与所述第一服务器端执行不经意传输协议或私有信息检索协议,以使得所述第一服务器端从所述多个密文中获取与所述目标对象标识对应的密文,并使得对本地隐藏所述目标对象标识。
本说明书另一方面提供一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端和第二服务器端,所述方法在所述第二服务器端执行,包括:
从所述第一服务器端接收多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识;
通过同态加密方法,使用本地存储的与所述多个对象标识分别对应的多个数据生成与所述多个对象标识分别对应的多个密文;以及
将所述多个密文发送给所述第一服务器端,并使得所述第一服务器端获知所述多个密文各自对应的对象标识。
本说明书另一方面提供一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端、第二服务器端和第三服务器端,所述方法在所述第三服务器端执行,包括:
从所述第一服务器端接收通过根据上述方法获取的与所述目标对象标识对应的密文,作为本地对所述安全多方计算协议的输入。
本说明书另一方面提供一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端、第二服务器端和第三服务器端,所述方法在所述第三服务器端执行,包括:
从所述第一服务器端接收通过根据上述方法获取的与所述目标对象标识对应的密文;以及
使用本地的第二密钥对与所述目标对象标识对应的密文解密,以获取所述初始密文,作为本地所述安全多方计算协议的输入。
本说明书另一方面提供一种获取安全多方计算协议的输入的装置,所述安全多方计算协议的参与方包括第一服务器端和第二服务器端,所述装置在所述第一服务器端实施,包括:
获取单元,配置为,获取多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识,并且,在所述第二服务器端中存储有与所述多个对象标识分别对应的多个数据;
发送单元,配置为,向所述第二服务器端发送所述多个对象标识;以及
执行单元,配置为,与所述第二服务器端执行不经意传输协议或私有信息检索协议,以从由所述第二服务器端生成的多个密文中获取与所述目标对象标识对应的密文,作为本地对所述安全多方计算协议的输入,并使得对所述第二服务器端隐藏所述目标对象标识,其中所述多个密文包括由所述第二服务器端使用所述多个数据生成的与所述多个对象标识分别对应的多个密文。
本说明书另一方面提供一种获取安全多方计算协议的输入的装置,所述安全多方计算协议的参与方包括第一服务器端、第二服务器端和第三服务器端,所述装置在所述第一服务器端实施,包括:
获取单元,配置为,获取多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识,并且,在所述第二服务器端中存储有与所述多个对象标识分别对应的多个数据;
第一发送单元,配置为,向所述第二服务器端发送所述多个对象标识;
执行单元,配置为,与所述第二服务器端执行不经意传输协议或私有信息检索协议,以从由所述第二服务器端生成的多个密文中获取与所述目标对象标识对应的密文,并使得对所述第二服务器端隐藏所述目标对象标识,其中所述多个密文包括由所述第二服务器端使用所述多个数据生成的与所述多个对象标识分别对应的多个密文;以及
第二发送单元,配置为,将与所述目标对象标识对应的密文发送所述第三服务器端。
本说明书另一方面提供一种获取安全多方计算协议的输入的装置,所述安全多方计算协议的参与方包括第一服务器端和第二服务器端,所述装置在所述第一服务器端实施,包括:
第一获取单元,配置为,获取多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识,并且,在所述第二服务器端中存储有与所述多个对象标识分别对应的多个数据;
发送单元,配置为,向所述第二服务器端发送所述多个对象标识;
接收单元,配置为,从所述第二服务器端接收多个密文,并获知所述多个密文各自对应的对象标识,其中所述多个密文包括由所述第二服务器端通过同态加密方法使用所述多个数据生成的与所述多个对象标识分别对应的多个密文;以及
第二获取单元,配置为,基于所述多个密文各自对应的对象标识,从所述多个密文中获取与所述目标对象标识对应的密文,作为本地对所述安全多方计算协议的输入。
本说明书另一方面提供一种获取安全多方计算协议的输入的装置,所述安全多方计算协议的参与方包括第一服务器端、第二服务器端和第三服务器端,所述装置在所述第一服务器端实施,包括:
第一获取单元,配置为,获取多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识,并且,在所述第二服务器端中存储有与所述多个对象标识分别对应的多个数据;
第一发送单元,配置为,向所述第二服务器端发送所述多个对象标识;
接收单元,配置为,从所述第二服务器端接收多个密文,并获知所述多个密文各自对应的对象标识,其中所述多个密文包括由所述第二服务器端通过同态加密方法使用所述多个数据生成的与所述多个对象标识分别对应的多个密文;
第二获取单元,配置为,基于所述多个密文各自对应的对象标识,从所述多个密文中获取与所述目标对象标识对应的密文;以及
第二发送单元,配置为,将与所述目标对象标识对应的密文发送给所述第三服务器端,作为在所述第三服务器端处对所述安全多方计算协议的输入。
本说明书另一方面提供一种获取安全多方计算协议的输入的装置,所述安全多方计算协议的参与方包括第一服务器端和第二服务器端,所述装置在所述第二服务器端实施,包括:
接收单元,配置为,从所述第一服务器端接收多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识;
生成单元,配置为,使用本地存储的与所述多个对象标识分别对应的多个数据生成与所述多个对象标识分别对应的多个密文;以及
执行单元,配置为,与所述第一服务器端执行不经意传输协议或私有信息检索协议,以使得所述第一服务器端从所述多个密文中获取与所述目标对象标识对应的密文,并使得对本地隐藏所述目标对象标识。
本说明书另一方面提供一种获取安全多方计算协议的输入的装置,所述安全多方计算协议的参与方包括第一服务器端和第二服务器端,所述装置在所述第二服务器端实施,包括:
接收单元,配置为,从所述第一服务器端接收多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识;
生成单元,配置为。通过同态加密方法,使用本地存储的与所述多个对象标识分别对应的多个数据生成与所述多个对象标识分别对应的多个密文;以及
发送单元,配置为,将所述多个密文发送给所述第一服务器端,并使得所述第一服务器端获知所述多个密文各自对应的对象标识。
本说明书另一方面提供一种获取安全多方计算协议的输入的装置,所述安全多方计算协议的参与方包括第一服务器端、第二服务器端和第三服务器端,所述装置在所述第三服务器端实施,包括:
接收单元,配置为,从所述第一服务器端接收通过上述获取安全多方计算协议的输入的方法获取的与所述目标对象标识对应的密文,作为本地对所述安全多方计算协议的输入。
本说明书另一方面提供一种获取安全多方计算协议的输入的装置,所述安全多方计算协议的参与方包括第一服务器端、第二服务器端和第三服务器端,所述装置在所述第三服务器端实施,包括:
接收单元,配置为,从所述第一服务器端接收通过上述获取安全多方计算协议的输入的方法获取的与所述目标对象标识对应的密文;以及
解密单元,配置为,使用本地的第二密钥对与所述目标对象标识对应的密文解密,以获取所述初始密文,作为本地所述安全多方计算协议的输入。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
通过根据本说明书实施例的安全多方计算方案,进一步保护了目标对象的隐私,完善了多方安全计算的安全性。
附图说明
通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚:
图1示出了根据本说明书实施例的安全多方计算示意图;
图2示出了根据本说明书实施例的一种获取安全多方计算协议的输入的方法流程图;
图3示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法流程图;
图4示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法流程图;
图5示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法流程图;
图6示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法流程图;
图7示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法流程图;
图8示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法流程图;
图9示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法流程图;
图10示出了根据本说明书实施例的安全多方计算方法的时序图;
图11示出根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1100;
图12示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1200;
图13示出根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1300;
图14示出根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1400;
图15示出根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1500;
图16示出根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1600;
图17示出根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1700;以及
图18示出根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1800。
具体实施方式
下面将结合附图描述本说明书实施例。
图1示出了根据本说明书实施例的安全多方计算示意图。如图1所示,在该安全多方计算中,包括第一服务器端11、第二服务器端12、第三服务器端13三方。第一服务器端11可以为例如评估机构、贷款机构、保险公司等的评估方的服务器端,所述评估方在对个人或企业提供服务时,通常会对该个人或企业的信用、喜好等特征进行评估。第二服务器端12和13可以是例如银行、税务局、房产局等的数据源方的服务器端,其包括个人或企业的历史数据。
具体地,如图1所示,在一个实施例中,第一服务器端11与第二服务器端12两方执行安全多方协议。在该情况中,第一服务器端11向第二服务器端12发送多个对象标识(第多个ID),该组对象标识中包括第一服务器端11将要评估的目标对象的标识。第二服务器端12使用其包括的与该多个对象标识分别对应的数据生成多个密文。从而第一服务器端11基于该多个密文获取目标对象标识(目标id)的密文,同时对第二服务器端12隐藏所述目标id。
在一个实施例中,所述第二服务器端12在生成多个密文之后,与第一服务器端11执行OT协议(不经意传输协议)或PIR协议(私有信息检索协议)。通过执行该OT协议或PIR协议,第一服务器端11可获取所述多个密文中与目标对象标识对应的密文,同时第二服务器端12不能获取该目标对象标识,即对第二服务器端12隐藏了目标对象标识,从而防止泄露隐私。第一服务器端11在获取目标对象的密文之后,可将该密文作为安全多方计算协议的输入。
在一个实施例中,第二服务器端12生成与所述多个id对应的多个同态加密密文,并将该组密文及其各自对应的id发送给第一服务器端,从而第一服务器端根据所述id,获取与目标id对应的密文。
在另一个实施例中,第一服务器端11、第二服务器端12和第三服务器端13参与安全多方计算。在该情况中,第一服务器端11向第二服务器端发送多个对象标识(多个ID),该多个ID中包括第一服务器端11将要评估的目标对象的标识(目标ID)。然后,第一服务器端11与第二服务器端12执行OT协议(或PIR协议),以从第二服务器端12获取目标对象的密文,并将该目标对象的密文发送给第三服务器端13,以在第三服务器端13处用作安全多方计算协议的输入。同样地,在该过程中,对第二服务器端12和第三服务器端13都隐藏了目标对象标识。
图1所示的用于计算的三方只是示意性的,在该实施例中,安全多方计算可包括参与计算的两方、或者更多方。其中,第一服务器端不限定为评估方服务器端、第二服务器端、第三服务器端不限定为数据源方服务器端,例如,第一服务器端可以同时是评估方和数据源方的服务器端。另外,所述安全多方计算协议可以输入执行单次OT协议获取的密文,也可以输入执行多次OT协议获取的多个密文,其中,该多次OT协议可以是第一服务器端11与同一个数据源服务器端多次执行的,也可以是第一服务器端11与多个数据源服务器端之间多次执行的。
图2示出了根据本说明书实施例的一种获取安全多方计算协议的输入的方法的流程图,所述安全多方计算的参与方包括第一服务器端和第二服务器端,所述方法在所述第一服务器端执行,包括以下步骤:
在步骤S202,获取多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识,并且,在所述第二服务器端中存储有与所述多个对象标识分别对应的多个数据;
在步骤S204,向所述第二服务器端发送所述多个对象标识;
在步骤S206,与所述第二服务器端执行不经意传输协议或私有信息检索协议,以从由所述第二服务器端生成的多个密文中获取与所述目标对象标识对应的密文,作为本地对所述安全多方计算协议的输入,并使得对所述第二服务器端隐藏所述目标对象标识,其中所述多个密文包括由所述第二服务器端使用所述多个数据生成的与所述多个对象标识分别对应的多个密文。
图2所示的方法在第一服务器端进行,其中的安全多方计算例如可以是图1中的第一服务器端11与第二服务器端12之间的两方计算。但是这里的两方计算只是示意性的,该实施例中的安全多方计算可以包括任意数目的参与方,例如,该安全多方计算可以是第一服务器端、第二服务器端、第三服务器端之间的三方安全计算,其中第一服务器端与第二服务器端之间实施图2所示的安全多方计算方法,第一服务器端与第三服务器端之间类似地实施图2所示的安全多方计算方法。所述第一服务器端例如为评估方服务器,该评估方例如为评估机构、贷款机构、保险公司等,其在为一个对象(个人或企业、组织等)提供服务时,例如,提供贷款,经常会对该对象进行评估(如信用、喜欢等)。第二服务器端为具有待评估对象(即目标对象)的可信数据的机构,如银行、税务局、房产局等。
首先,在步骤S202,获取多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识,并且,在所述第二服务器端中存储有与所述多个对象标识分别对应的多个数据。其中,在目标对象为个人的情况下,所述对象标识例如可以是个人的证件号码,如身份证号码、护照号码等,也可以是第二服务器端对包括所述目标对象的多个对象设定的编码标识。在目标对象为企业、组织的情况下,所述对象标识例如可以是企业名称、企业营业执照注册号、社会信用代码等,也可以是第二服务器端设定的编码标识等。该多个对象标识可以是数值分离的多个ID,也可以数值连续的多个ID。
在此,对该组对象标识的数目不特别限定,其可由第一服务器端根据对安全性的要求来设定,例如,可以为10个、20个等等。例如,第一服务器端准备好包括目标对象的例如10个对象标识,并将其发送给第二服务器端。在发送该10个对象标识(ID)之后,可由第二服务器端确定是否包括这10个ID的数据,如果没有,可换10个ID(其中包括目标ID),直到第二服务器端确定包括全部10个ID的数据为止。或者,第一服务器端可根据由第二服务器端提供的ID数据表中获取例如包括目标ID的10个ID。
所述多个数据为所述多个ID各自的特征数据,例如存款额、月收入、纳税额、月支出、月还款额等等。所述数据可以是单个数值的形式,也可以是数值矩阵的形式。所述数据的形式和内容可由第一服务器端在发送所述多个ID时进行指定,或者可由所述第一服务器端与所述第二服务器端预先约定。
在步骤S204,向所述第二服务器端发送所述多个对象标识。第一服务器端将例如包括目标ID的10个ID发送给第二服务器端,从而通过该10个ID对第二服务器端隐藏了目标ID,从而避免了泄漏目标ID的隐私。第一服务器端可以将多个对象标识罗列地发送给第二服务器端。在该多个对象标识是连续数值的情况下,向所述第二服务器端发送所述多个对象标识可以包括,向所述第二服务器端发送所述多个对象标识的上下限。
第二服务器端在接收到例如上述10个ID后,利用其中包括的该10个ID的各自的数据,准备与该10个ID分别对应的密文。该密文例如可以是同态加密密文、混淆电路的混淆值、或者秘密分割密文,但是所述密文不限定为上述三种密文,其可以是通过其它加密方法获得的密文,只要该密文可用于安全多方计算协议并使得评估方获得最终评估结果即可。在一个实施例中,可由第一服务器端与第二服务器端预先约定好对数据的加密方法,或者由第一服务器端在向第二服务器端发送多个ID时指定对数据的加密方法。
在步骤S206,与所述第二服务器端执行不经意传输协议或私有信息检索协议,以从由所述第二服务器端生成的多个密文中获取与所述目标对象标识对应的密文,作为本地对所述安全多方计算协议的输入,并使得对所述第二服务器端隐藏所述目标对象标识,其中所述多个密文包括由所述第二服务器端使用所述多个数据生成的与所述多个对象标识分别对应的多个密文。在第二服务器端准备好10个ID各自的密文之后,第一服务器端与第二服务器端开始执行所述OT协议或PIR协议。在一个实施例中,第一服务器端(即评估方)仅具有获取目标对象数据密文的权限,而不能获取其它ID的数据密文。而第一服务器端希望不向第二服务器端泄漏目标ID而获取该目标ID的数据密文。因此,第一服务器端与第二服务器端执行例如OT协议。这里的OT协议可包括多种OT协议,例如,基于计算性假设的OT协议、基于量子理论的OT协议、基于有噪声信道的OT协议、基于存储受限模型的OT协议等等。通过在第一服务器端与第二服务器端执行OT协议,使得第一服务器端从上述与10个ID分别对应的密文中仅能获取目标ID的密文,同时,第二服务器端不能得知第一服务器端获取的是哪个ID的密文,即对第二服务器端隐藏了目标ID。
第一服务器端在获取目标ID的密文之后,将该密文用作本地对所述安全多方计算协议的输入。
在一个实施例中,所述安全多方计算可对通过第一服务器端与第二服务器端执行一次或多次OT协议(或PIR协议)所获得的一个或多个密文进行运算,或者也可以对所述一个或多个密文、以及第一服务器端本地数据进行运算。上述一个或多个密文可以各自为同态加密密文、秘密分割的份额密文、混淆电路的混淆值等等中的任一种。第一服务器端与第二服务器端可多次执行OT协议,以获取目标ID的不同数据的密文。例如通过一次OT协议获取目标ID的存款额的密文,通过另一次OT协议获取目标ID的月收入的密文等等。通过不同次OT协议获取的密文可以是相同加密形式的,例如都是同态加密密文,也可以是不同加密形式的,例如一部分密文是同态加密密文,一部分密文是秘密分割的份额密文。其中,根据将要参与的运算确定数据的加密形式,例如,对于将参与矩阵运算的数据通过秘密分割的方法获得份额密文,对于将参与比较运算的数据通过混淆电路的方法获得密文。在所述安全多方计算中,当要进行不同形式的密文相互间的运算时,将其转换成相同的形式,以进行统一运算。
在一个实施例中,如前文所述,图2所示的多方安全计算方法可包括任意数目的参与方,例如,还包括例如第三服务器端。在该情况中,第三服务器端可与第二服务器端类似地参与计算。即,第一服务器端与第三服务器端执行OT协议(或PIR协议),以从第三服务器端获取与目标ID对应的密文。从而,在第一服务器端本地还对所述安全多方计算协议输入所述从第三服务器端获取的密文。
图3示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法流程图,所述安全多方计算的参与方包括第一服务器端、第二服务器端和第三服务器端,所述方法在所述第一服务器端执行,其中的安全多方计算可以是图1中的第一服务器端11与第二服务器端12和第三服务器端13之间的三方计算。所述第一服务器端例如为评估方服务器,该评估方例如为评估机构、贷款机构、保险公司等,第二服务器端例如为银行服务器,第三服务器端例如为税务局服务器。所述方法包括以下步骤S302-S308。
在步骤S302,获取多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识,并且,在所述第二服务器端中存储有与所述多个对象标识分别对应的多个数据。该步骤的具体实施与上文对图2中步骤S202的描述基本一致,在此不再赘述。
在步骤S304,向所述第二服务器端发送所述多个对象标识。该步骤的具体实施可参考上文对图2中步骤S204的描述,在此不再赘述。
在步骤S306,与所述第二服务器端执行不经意传输协议或私有信息检索协议,以从由所述第二服务器端生成的多个密文中获取与所述目标对象标识对应的密文,并使得对所述第二服务器端隐藏所述目标对象标识,其中所述多个密文包括由所述第二服务器端使用所述多个数据生成的与所述多个对象标识分别对应的多个密文。
在一个实施例中,与上文对图2中步骤S206的描述类似,由所述第二服务器端使用所述多个数据生成与所述多个对象标识分别对应的多个密文,该多个密文例如为以下密文中的一种:同态加密密文、秘密分割的份额密文、混淆电路的混淆值密文。
在一个实施例中,在由所述第二服务器端使用所述多个数据生成与所述多个对象标识分别对应的多个初始密文之后,所述第二服务器端还使用第三服务器端的第一密钥对各个初始密文进行再次加密,以生成所述多个密文。其中,所述多个初始密文例如为以下密文中的一种:同态加密密文、秘密分割的份额密文、混淆电路的混淆值密文。所述第一密钥例如是对称钥,或者是用于加密的公钥。第二服务器端例如可通过第一服务器端的中转从第三服务器端获取所述第一密钥,或者可直接从第三服务器端获取所述第一密钥。
在步骤S308,将与所述目标对象标识对应的密文发送所述第三服务器端。
在一个实施例中,所述密文为同态加密密文、混淆电路的混淆值、或者秘密分割密文中的一种。在第三服务器端的所述安全多方计算可对通过第一服务器端与第二服务器端执行一次或多次OT协议(或PIR协议)所获得的一个或多个密文进行运算。上述一个或多个密文可以各自为同态加密密文、秘密分割的份额密文、混淆电路的混淆值等中的任一种。不同次OT协议获取的密文可以是相同形式的,例如都是同态加密密文,也可以是不同形式的,例如一部分密文是同态加密密文,一部分密文是秘密分割的份额密文。
在一个实施例中,所述密文如上文所述是通过第三服务器端的第一密钥对初始密文进行再次加密所获取的密文。在该情况中,第三服务器端在从第一服务器端接收所述密文之后,使用其第二密钥对所述密文进行解密,以获取所述初始密文,并将初始密文输入第三服务器端的安全多方计算。其中第三服务器端的第二密钥例如为对称钥(即与第一密钥相同),或者例如为用于解密的私钥。
在上述对图3所示的方法的描述中,所述安全多方计算的参与方包括第一服务器端、第二服务器端和第三服务器端。然而,这只是示例性的,所述安全多方计算可包括任意数目的参与方。例如,所述安全多方计算还可以包括第四服务器端,该第四服务器端与第二服务器端类似地参与计算,即通过与第一服务器执行OT协议,使得第一服务器端获取用于中转给第三服务器端的密文。从而在第三服务器端处还将该来自于第四服务器端的密文输入所述安全多方计算。
图4示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法流程图。所述安全多方计算协议的参与方包括第一服务器端和第二服务器端,所述方法在所述第一服务器端执行,包括以下步骤S402-408。
在步骤S402,获取多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识,并且,在所述第二服务器端中存储有与所述多个对象标识分别对应的多个数据。
在步骤S404,向所述第二服务器端发送所述多个对象标识。
步骤S402和步骤S404的具体实施可参考上文对图2中步骤S202和步骤S204的描述,在此不再赘述。
在步骤S406,从所述第二服务器端接收多个密文,并获知所述多个密文各自对应的对象标识,其中所述多个密文包括由所述第二服务器端通过同态加密方法使用所述多个数据生成的与所述多个对象标识分别对应的多个密文。
在一个实施例中,由所述第二服务器端通过同态加密方法使用所述多个数据生成与所述多个对象标识分别对应的多个密文,即,该多个密文为同态加密密文。第二服务器端在生成多个ID中各个ID的同态密文时,对于不同的ID,可以使用不同的随机数生成同态密文。从而,根据各个ID的同态密文,不可逆推出各个ID的真实数据之间的相关性。也就是说,由第二服务器端将该组密文及其对应的ID发送给第一服务器端是安全的,不会泄露各ID的隐私。
在一个实施例中,第一服务器端从第二服务器端接收所述多个密文各自对应的ID,从而可基于接收的各ID,获取与目标ID对应的密文。在一个实施例中,第二服务器端将所述多个密文以其各自对应的ID数值大小顺序排列地发送给第一服务器端,从而第一服务器端可从所述多个密文的排列顺序获知所述多个密文各自对应的ID。
在步骤S408,基于所述多个密文中每个密文对应的对象标识,从所述多个密文中获取与所述目标对象标识对应的密文,作为本地对所述安全多方计算协议的输入。第一服务器端在获知上述多个密文各自对应的ID之后,可根据ID找到目标ID及与目标ID对应的密文,从而将该与目标ID对应的密文作为本地对安全多方协议的输入。
与上述图2所示实施例类似地,该实施例中的安全多方计算协议可以输入通过多次执行图4所示的方法获取的与目标ID对应的多个同态加密密文,也可以输入从其它服务器端(例如第三服务器端)发送给第一服务器端的与目标ID对应的同态加密密文,其中,其它服务器端与第二服务器端类似地向第一服务器端发送与多个ID分别对应的多个同态加密密文,并且所述ID中包括所述目标ID。
图5示出根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法流程图。所述安全多方计算协议的参与方包括第一服务器端、第二服务器端和第三服务器端,所述方法在所述第一服务器端执行,包括以下步骤S502-S510。
在步骤S502,获取多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识,并且,在所述第二服务器端中存储有与所述多个对象标识分别对应的多个数据。
在步骤S504,向所述第二服务器端发送所述多个对象标识。
在步骤S506,从所述第二服务器端接收多个密文,并获知所述多个密文各自对应的对象标识,其中所述多个密文包括由所述第二服务器端通过同态加密方法使用所述多个数据生成的与所述多个对象标识分别对应的多个密文。
步骤S502-S506的具体实施可参考上文对图4中步骤S402-S406的描述,在此不再赘述。
在步骤S508,基于所述多个密文各自对应的对象标识,从所述多个密文中获取与所述目标对象标识对应的密文。第一服务器端在获知多个密文各自对应的ID之后,可根据ID找到目标ID及与目标ID对应的密文
在步骤S510,将与所述目标对象标识对应的密文发送给所述第三服务器端。在该实施例中,与上述图3所示实施例类似,第一服务器端在获取与目标ID对应的密文之后,将该密文中转给第三服务器端,以在第三服务器端处将该密文输入所述安全多方计算协议。
与上述图3所示实施例类似地,该实施例中的安全多方计算协议可以输入通过多次执行图3所示的方法获取的与目标ID对应的多个同态加密密文,也可以输入从其它服务器端(例如第四服务器端)发送给第一服务器端、并通过第一服务器端中转给所述第三服务器端的与目标ID对应的同态加密密文,其中,其它服务端与第二服务器端类似地向第一服务器端发送与多个ID分别对应的多个同态加密密文,并且所述ID中包括所述目标ID。
图6示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法流程图。所述安全多方计算的参与方包括第一服务器端和第二服务器端,所述方法在所述第二服务器端执行,包括以下步骤S602-S606
在步骤S602,从所述第一服务器端接收多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识;
在步骤S604,使用本地的与所述多个对象标识分别对应的多个数据生成与所述多个对象标识分别对应的多个密文;以及
在步骤S606,与所述第一服务器端执行不经意传输协议或私有信息检索协议,以使得所述第一服务器端从所述多个密文中获取与所述目标对象标识对应的密文,并使得对本地隐藏所述目标对象标识。
图6所示的方法与图2(或图3)所示的方法是分别在第二服务器端和第一服务器端实施的同一过程。其中,对应于图2所示的方法,在步骤S606,在使得所述第一服务器端从所述多个密文中获取与所述目标对象标识对应的密文之后,所述第一服务器端将与所述目标对象标识对应的密文用作在第一服务器端处对所述安全多方计算协议的输入。对应于图3所示的方法,所述安全多方计算协议的参与方还包括第三服务器端,并且,在步骤S606,在使得所述第一服务器端从所述多个密文中获取与所述目标对象标识对应的密文之后,所述第一服务器端将与所述目标对象标识对应的密文发送给第三服务器端,以用作在第三服务器端处对所述安全多方计算协议的输入。步骤S602-步骤S606的具体实施可参考上述对图2中步骤S202-S206的相应描述,在此不再赘述。
图7示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法流程图,所述安全多方计算协议的参与方包括第一服务器端和第二服务器端,所述方法在所述第二服务器端执行,包括以下步骤S702-S706。
在步骤S702,从所述第一服务器端接收多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识。
在步骤S704,通过同态加密方法,使用本地存储的与所述多个对象标识分别对应的多个数据生成与所述多个对象标识分别对应的多个密文。
在步骤S706,将所述多个密文发送给所述第一服务器端,并使得所述第一服务器端获知所述多个密文各自对应的对象标识。
图7所示的方法与图4(或图5)所示的方法是分别在第二服务器端和第一服务器端实施的同一过程。其中,对应于图4所示的方法,在步骤S706,在使得所述第一服务器端接收所述多个密文及所述多个密文各自对应的对象标识之后,所述第一服务器端将与所述目标对象标识对应的密文用作在第一服务器端处对所述安全多方计算协议的输入。对应于图5所示的方法,所述安全多方计算协议的参与方还包括第三服务器端,并且,在步骤S706,在所述第一服务器端接收所述多个密文、并获知所述多个密文各自对应的对象标识之后,所述第一服务器端将与所述目标对象标识对应的密文发送给第三服务器端,以用作在第三服务器端处对所述安全多方计算协议的输入。步骤S702-步骤S706的具体实施可参考上述对图4中步骤S402-S408的相应描述,在此不再赘述。
图8示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法流程图,所述安全多方计算协议的参与方包括第一服务器端、第二服务器端和第三服务器端,所述方法在所述第三服务器端执行,包括:
步骤S802,从所述第一服务器端接收通过根据图3或图5所示的方法获取的与所述目标对象标识对应的密文,作为本地对所述安全多方计算协议的输入。其中,通过根据图3所示的方法获取的与所述目标对象标识对应的密文为以下一种密文:同态加密密文、秘密分割的份额密文、混淆电路的混淆值密文。
图8所示的方法与图3(或图5)所示的方法是分别在第三服务器端和第一服务器端实施的同一过程,因此,步骤S802的具体实施可参考上述对图3中步骤S308的相应描述,在此不再赘述。
图9示出根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法流程图,所述安全多方计算协议的参与方包括第一服务器端、第二服务器端和第三服务器端,所述方法在所述第三服务器端执行,包括以下步骤S902-S904。
在步骤S902,从所述第一服务器端接收通过根据图3所示的方法获取的与所述目标对象标识对应的密文。
在步骤S904,使用本地的第二密钥对与所述目标对象标识对应的密文解密,以获取所述初始密文,作为本地所述安全多方计算协议的输入。
其中,从所述第一服务器端接收通过根据图3所示的方法获取的与所述目标对象标识对应的密文为使用第三服务器端的第一密钥对初始密文进行再次加密所获取的密文,所述初始密文是对与目标对象标识对应的数据进行以下一种加密方法所获取的密文:同态加密方法、秘密分割方法、混淆电路方法。步骤S902和步骤S904的具体实施可参考上述对图3中步骤S308的相应描述,在此不再赘述。
图10示出了根据本说明书实施例的安全多方计算方法的时序图。如图10中所示,图中用虚线分割为两部分I和II。其中,第I部分对应于图2或图4所示的方法流程。例如,在第I部分,第一服务器端在获取多个ID之后向第二服务器端发送该多个ID;第二服务器端生成与多个ID对应的多个密文。然后,在图2所示的方法中,通过第一服务器端与第二服务器端执行例如OT协议,使得第一服务器端获取目标ID的密文以用作本地对安全多方计算协议的输入。在图4所示的方法中,通过由第二服务器端向第一服务器端发送所述多个密文,并使得第一服务器端获知多个密文各自对应的ID,从而使得第一服务器端获取与目标ID对应的密文,以用作本地对安全多方计算协议的输入。
第II部分对应于图3或图5所示的方法流程。首先,第一服务器端在获取多个ID之后向第二服务器端发送该多个ID;第二服务器端生成与多个ID对应的多个密文。然后,与上述第I部分中类似地,第一服务器端获取与目标ID对应的密文。之后,第一服务器端将与目标ID对应的密文发送给第三服务器端,以用作第三服务器端对安全多方计算协议的输入。在所述安全多方计算中,可以包括上述第I和II部分中至少一部分的至少一次的输入密文,所述第I和II部分中的流程可同时进行,可以先后连续进行,也可以间隔地进行,并且也可以多次进行。
图10所示的第一服务器端、第二服务器端和第三服务器端只是示意性地,根据本说明书实施例的安全多方计算的参与方可以包括任意数目的服务器端,例如,还可以包括第四服务器端,其可以与第二服务器端或第三服务器端类似地参与计算。从而,所述安全多方计算协议的输入可包括其它服务器端(例如第四服务器端)通过与第一服务器端至少一次执行根据上述实施例的方法所获取的至少一个输入。
图11示出根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1100。所述安全多方计算协议的参与方包括第一服务器端和第二服务器端。所述装置在所述第一服务器端实施,包括:
获取单元111,配置为,获取多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识,并且,在所述第二服务器端中存储有与所述多个对象标识分别对应的多个数据;
发送单元112,配置为,向所述第二服务器端发送所述多个对象标识;以及
执行单元113,配置为,与所述第二服务器端执行不经意传输协议或私有信息检索协议,以从由所述第二服务器端生成的多个密文中获取与所述目标对象标识对应的密文,作为本地对所述安全多方计算协议的输入,并使得对所述第二服务器端隐藏所述目标对象标识,其中所述多个密文包括由所述第二服务器端使用所述多个数据生成的与所述多个对象标识分别对应的多个密文。
图12示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1200。所述安全多方计算协议的参与方包括第一服务器端、第二服务器端和第三服务器端。所述装置在所述第一服务器端实施,包括:
获取单元121,配置为,获取多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识,并且,在所述第二服务器端中存储有与所述多个对象标识分别对应的多个数据;
第一发送单元122,配置为,向所述第二服务器端发送所述多个对象标识;
执行单元123,配置为,与所述第二服务器端执行不经意传输协议或私有信息检索协议,以从由所述第二服务器端生成的多个密文中获取与所述目标对象标识对应的密文,并使得对所述第二服务器端隐藏所述目标对象标识,其中所述多个密文包括由所述第二服务器端使用所述多个数据生成的与所述多个对象标识分别对应的多个密文;以及
第二发送单元124,配置为,将与所述目标对象标识对应的密文发送所述第三服务器端。
图13示出根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1300。所述安全多方计算协议的参与方包括第一服务器端和第二服务器端。所述装置在所述第一服务器端实施,包括:
第一获取单元131,配置为,获取多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识,并且,在所述第二服务器端中存储有与所述多个对象标识分别对应的多个数据;
发送单元132,配置为,向所述第二服务器端发送所述多个对象标识;
接收单元133,配置为,从所述第二服务器端接收多个密文,并获知所述多个密文各自对应的对象标识,其中所述多个密文包括由所述第二服务器端通过同态加密方法使用所述多个数据生成的与所述多个对象标识分别对应的多个密文;以及
第二获取单元134,配置为,基于所述多个密文各自对应的对象标识,从所述多个密文中获取与所述目标对象标识对应的密文,作为本地对所述安全多方计算协议的输入。
图14示出根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1400。所述安全多方计算协议的参与方包括第一服务器端、第二服务器端和第三服务器端。所述装置在所述第一服务器端实施,包括:
第一获取单元141,配置为,获取多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识,并且,在所述第二服务器端中存储有与所述多个对象标识分别对应的多个数据;
第一发送单元142,配置为,向所述第二服务器端发送所述多个对象标识;
接收单元143,配置为,从所述第二服务器端接收多个密文,并获知所述多个密文各自对应的对象标识,其中所述多个密文包括由所述第二服务器端通过同态加密方法使用所述多个数据生成的与所述多个对象标识分别对应的多个密文;
第二获取单元144,配置为,基于所述多个密文各自对应的对象标识,从所述多个密文中获取与所述目标对象标识对应的密文;以及
第二发送单元145,配置为,将与所述目标对象标识对应的密文发送给所述第三服务器端。
图15示出根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1500。所述安全多方计算协议的参与方包括第一服务器端和第二服务器端。所述装置在所述第二服务器端实施,包括:
接收单元151,配置为,从所述第一服务器端接收多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识;
生成单元152,配置为,使用本地存储的与所述多个对象标识分别对应的多个数据生成与所述多个对象标识分别对应的多个密文;以及
执行单元153,配置为,与所述第一服务器端执行不经意传输协议或私有信息检索协议,以使得所述第一服务器端从所述多个密文中获取与所述目标对象标识对应的密文,并使得对本地隐藏所述目标对象标识。
图16示出根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1600。所述安全多方计算协议的参与方包括第一服务器端和第二服务器端。所述装置在所述第二服务器端实施,包括:
接收单元161,配置为,从所述第一服务器端接收多个对象标识,其中,所述多个对象标识中包括所述第一服务器端的目标对象标识;
生成单元162,配置为。通过同态加密方法,使用本地存储的与所述多个对象标识分别对应的多个数据生成与所述多个对象标识分别对应的多个密文;以及
发送单元163,配置为,将所述多个密文发送给所述第一服务器端,并使得所述第一服务器端获知所述多个密文各自对应的对象标识。
图17示出根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1700。所述安全多方计算协议的参与方包括第一服务器端、第二服务器端和第三服务器端。所述装置在所述第三服务器端实施,包括:
接收单元171,配置为,从所述第一服务器端接收通过根据图3或图5所示的方法获取的与所述目标对象标识对应的密文,作为本地对所述安全多方计算协议的输入。
图18示出根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1800。所述安全多方计算协议的参与方包括第一服务器端、第二服务器端和第三服务器端,所述装置在所述第三服务器端实施,包括:
接收单元181,配置为,从所述第一服务器端接收通过根据图3所示的方法获取的与所述目标对象标识对应的密文;以及
解密单元182,配置为,使用本地的第二密钥对与所述目标对象标识对应的密文解密,以获取所述初始密文,作为本地所述安全多方计算协议的输入。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
通过根据本说明书实施例的安全多方计算方案,第一服务器端(评估方)将待评估对象(目标对象)隐藏在多个对象中发送给第二服务器端(数据源1);第二服务器端为多个对象中的每个对象准备多方安全计算的输入;第一服务器端通过OT协议、PIR协议或同态加密方法获取目标对象的密文,以作为本地多方安全计算的输入,或中转给其它服务器端(数据源2),同时所述第二服务器端无法得知所述目标对象。从而进一步保护了目标对象的隐私,完善了多方安全计算的安全性。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。