安全多方计算协议的输入获取方法和装置
技术领域
本说明书实施例涉及密码学技术领域,更具体地,涉及获取安全多方计算协议的输入的方法和装置。
背景技术
一个实体(个人或企业、组织)在进行申请贷款、申请签证、报税等业务时,通常需要提供自身的隐私数据(年龄、存款、性别、收入)给另一实体(或多个实体甚至公众),以供另一实体(或多个实体甚至公众)计算/评估。前一实体可称为证明方,后一实体可称为校验方。证明方提供数据时可能撒谎,因此需要一个或多个实体(背书方)提供证明,如银行背书方提供的存款证明、政府背书方提供的身份证/营业执照等。
证明方在将其隐私数据交给校验方计算/评估时,证明方会担忧隐私泄露。而如果采用另一方式,把计算/评估方法交给证明方,证明方只向校验方提供计算结果,则存在证明方造假的可能,证明方可能使用虚假的数据来进行计算,可能没有忠实按照提供的计算方法进行计算。
为解决上述数据隐私与数据可信的矛盾,现有技术结合使用了零知识证明、哈希、数字签名和区块链技术。背书方在存证证明方数据时,在区块链账本中记录数据的哈希值和其对该哈希值的数字签名。为防止数据取值空间太小带来的穷举攻击,哈希时使用了随机数。背书方给证明方发送的存证凭证包含哈希值、哈希时所用的随机数、记录在区块链账本中的位置,可选还包括哈希值的数字签名。证明方给校验方发送的存证凭证包含哈希值、记录在区块链账本中的位置,可选还包括哈希值的数字签名。然后,通过零知识证明技术,校验方可以校验证明方在计算函数f过程中使用的数据与存证凭证中的哈希值匹配,且证明方在计算中没有用其他函数来替代f,忠实执行了f函数。从而校验方最终获得可信的计算结果。该过程需要强功能的零知识证明技术,需要的计算和存储资源较多。
因此,需要一种更有效的获取安全多方计算协议的输入的方案。
发明内容
本说明书实施例旨在提供更有效的获取安全多方计算协议的输入的方法和装置,以解决现有技术中的不足。
为实现上述目的,本说明书一个方面提供一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端,所述方法在所述第二服务器端执行,包括:
从所述第一服务器端接收关于所述第一数据的数据请求;
基于所述数据请求,通过预先从所述第一服务器端接收的公钥对所述第一数据进行同态加密,以生成第一密文,其中,所述公钥为所述第一对象的同态加密公钥;
基于所述第一密文获取验证数据,所述验证数据用于验证待验证密文是否与所述第一数据对应;以及
将所述验证数据发送给所述第一服务器端。
本说明书另一方面提供一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端,所述方法在所述第一服务器端执行,包括:
向所述第二服务器端发送关于所述第一数据的数据请求;
获取与所述第一数据对应的第二密文,其中,所述第二密文是通过预先生成的所述第一对象的公钥获取的同态加密密文;
从所述第二服务器端接收根据通过根据上述任一项获取安全多方计算协议的输入的方法获取的验证数据;以及
将所述第二密文和所述验证数据发送给所述第三服务器端。
本说明书另一方面提供一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端,所述方法在所述第一服务器端执行,包括:
向所述第二服务器端发送关于所述第一数据的数据请求;
从所述第二服务器端接收存储所述第一密文和所述权威机构对所述第一密文的数字签名的所述账本位置;以及
将所述账本位置发送给所述第三服务器端。
本说明书另一方面提供一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在所述第一服务器端中,所述方法在所述第一服务器端执行,包括:
通过使用预先生成的所述第一对象的公钥对所述第一数据进行同态加密,获取与所述第一数据对应的密文;
通过在区块链中对所述密文进行存证,获取区块链中存证所述密文的账本位置;以及
将所述密文和所述账本位置发送给所述第三服务器端。
本说明书另一方面提供一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在所述第一服务器端中,所述方法在所述第一服务器端执行,包括:
通过使用预先生成的所述第一对象的公钥对所述第一数据进行同态加密,获取与所述第一数据对应的密文;
通过在区块链中存入所述密文、和所述第一对象对所述密文的数字签名,获取区块链中存储所述密文和所述数字签名的账本位置,其中所述数字签名由所述第一服务器端生成;以及
将所述账本位置发送给所述第三服务器端。
本说明书另一方面提供一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端,所述方法在所述第三服务器端执行,包括:
从所述第一服务器端接收通过根据上述在第一服务器端执行的方法获取的所述第二密文和所述验证数据;
使用所述验证数据验证所述第二密文,以确定所述第二密文是否与所述第一数据对应;以及
在确定所述第二密文与所述第一数据对应的情况中,确定以所述第二密文作为所述安全多方计算协议的输入。
本说明书另一方面提供一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端,所述方法在所述第三服务器端执行,包括:
从所述第一服务器端接收存储所述第一密文和所述权威机构对所述第一密文的数字签名的所述账本位置;以及
从所述账本位置获取所述第一密文,以作为所述安全多方计算协议的输入。
本说明书另一方面提供一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在所述第一服务器端中,所述方法在所述第三服务器端执行,包括:
从所述第一服务器端接收通过根据上述在第一服务器端执行的方法获取的所述密文和所述账本位置;
使用所述账本位置验证所述密文,以确定所述密文是否与所述第一数据对应;以及
在确定所述密文与所述第一数据对应的情况中,确定以所述密文作为所述安全多方计算协议的输入。
本说明书另一方面提供一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第一服务器端中,所述方法在所述第三服务器端执行,包括:
从所述第一服务器端接收通过根据在第一服务器端执行的方法获取的所述账本位置;以及
从所述账本位置获取所述密文,以作为所述安全多方计算协议的输入。
本说明书另一方面提供一种获取安全多方计算协议的输入的装置,所述安全多方计算协议的参与方包括第一服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端,所述装置在所述第二服务器端实施,包括:
接收单元,配置为,从所述第一服务器端接收关于所述第一数据的数据请求;
生成单元,配置为,基于所述数据请求,通过预先从所述第一服务器端接收的公钥对所述第一数据进行同态加密,以生成第一密文,其中,所述公钥为所述第一对象的同态加密公钥;
获取单元,配置为,基于所述第一密文获取验证数据,所述验证数据用于验证待验证密文是否与所述第一数据对应;以及
发送单元,配置为,将所述验证数据发送给所述第一服务器端。
在一个实施例中,在所述获取安全多方计算协议的输入的装置中,所述数据请求中包括用于对所述第一数据进行同态加密的随机数,其中所述生成单元还配置为,通过预先从所述第一服务器端接收的公钥和所述随机数对所述第一数据进行同态加密,以生成第一密文。
在一个实施例中,在所述获取安全多方计算协议的输入的装置中,所述发送单元还配置为,将所述验证数据和所述第一密文发送给所述第一服务器端。
在一个实施例中,在所述获取安全多方计算协议的输入的装置中,所述获取单元还配置为,通过在区块链中对所述第一密文进行存证,获取区块链中存证所述第一密文的账本位置作为所述验证数据。
本说明书另一方面提供一种获取安全多方计算协议的输入的装置,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端,所述装置在所述第一服务器端实施,包括:
第一发送单元,配置为,向所述第二服务器端发送关于所述第一数据的数据请求;
获取单元,配置为,获取与所述第一数据对应的第二密文,其中,所述第二密文是通过预先生成的所述第一对象的公钥获取的同态加密密文;
接收单元,配置为,从所述第二服务器端接收根据通过根据上述在第二服务器端执行的任一项方法获取的验证数据;以及
第二发送单元,配置为,将所述第二密文和所述验证数据发送给所述第三服务器端。
在一个实施例中,在所述获取安全多方计算协议的输入的装置中,所述获取单元还配置为,从所述第二服务器端接收通过上述在第二服务器端执行的方法生成的所述第一密文作为所述第二密文。
在一个实施例中,在所述获取安全多方计算协议的输入的装置中,所述第一服务器端存储有所述第一数据,以及,其中,所述获取单元还配置为,在本地通过所述公钥和本地生成的随机数对所述第一数据进行同态加密,以获取所述第二密文,其中,在关于所述第一数据的数据请求中包括所述随机数。
本说明书另一方面提供一种获取安全多方计算协议的输入的装置,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端,所述装置在所述第一服务器端执行,包括:
第一发送单元,配置为,向所述第二服务器端发送关于所述第一数据的数据请求;
接收单元,配置为,从所述第二服务器端接收通过存储所述第一密文和所述权威机构对所述第一密文的数字签名的所述账本位置;以及
第二发送单元,配置为,将所述账本位置发送给所述第三服务器端。
本说明书另一方面提供一种获取安全多方计算协议的输入的装置,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在所述第一服务器端中,所述装置在所述第一服务器端执行,包括:
加密单元,配置为,通过使用预先生成的所述第一对象的公钥对所述第一数据进行同态加密,获取与所述第一数据对应的密文;
存证单元,配置为,通过在区块链中对所述密文进行存证,获取区块链中存证所述密文的账本位置;以及
发送单元,配置为,将所述密文和所述账本位置发送给所述第三服务器端。
本说明书另一方面提供一种获取安全多方计算协议的输入的装置,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在所述第一服务器端中,所述装置在所述第一服务器端实施,包括:
加密单元,配置为,通过使用预先生成的所述第一对象的公钥对所述第一数据进行同态加密,获取与所述第一数据对应的密文;
存入单元,配置为,通过在区块链中存入所述密文、和所述第一对象对所述密文的数字签名,获取区块链中存储所述密文和所述数字签名的账本位置,其中所述数字签名由所述第一服务器端生成;以及
发送单元,配置为,将所述账本位置发送给所述第三服务器端。
本说明书另一方面提供一种获取安全多方计算协议的输入的装置,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端,所述装置在所述第三服务器端实施,包括:
接收单元,配置为,从所述第一服务器端接收通过根据上述在第一服务器端执行的方法获取的所述第二密文和所述验证数据;
验证单元,配置为,使用所述验证数据验证所述第二密文,以确定所述第二密文是否与所述第一数据对应;以及
确定单元,配置为,在确定所述第二密文与所述第一数据对应的情况中,确定以所述第二密文作为所述安全多方计算协议的输入。
在一个实施例中,在所述获取安全多方计算协议的输入的装置中,所述验证数据为通过存储所述第一密文和所述权威机构对所述第一密文的数字签名的所述账本位置,其中,在所述账本位置存储有通过在第二服务器端执行的方法获取的所述第一密文,
其中,所述验证单元还包括:
获取子单元,配置为,通过所述账本位置,获取所述第一密文;以及
确定子单元,配置为,确定所述第二密文与所述第一密文是否相同。
在一个实施例中,在所述获取安全多方计算协议的输入的装置中,所述验证数据为通过存储所述第一密文的哈希值、和所述权威机构对所述第一密文的哈希值的数字签名的所述账本位置,在所述账本位置存储有通过第二服务器端基于所述密文生成的所述第一密文的哈希值,
其中,所述验证单元包括:
通获取子单元,配置为,过所述账本位置,获取所述第一密文的哈希值;以及
确定子单元,配置为,确定所述第二密文与所述哈希值是否匹配。
在一个实施例中,在所述获取安全多方计算协议的输入的装置中,所述验证数据为所述权威机构对所述第一密文的数字签名,
其中,所述验证单元还包括:
确定子单元,配置为,确定所述第二密文与所述数字签名是否匹配。
本说明书另一方面提供一种获取安全多方计算协议的输入的装置,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端,所述装置在所述第三服务器端实施,包括:
接收单元,配置为,从所述第一服务器端接收存储所述第一密文和所述权威机构对所述第一密文的数字签名的所述账本位置;以及
获取单元,配置为,从所述账本位置获取所述第一密文,以作为所述安全多方计算协议的输入。
本说明书另一方面提供一种获取安全多方计算协议的输入的装置,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在所述第一服务器端中,所述装置在所述第三服务器端实施,包括:
接收单元,配置为,从所述第一服务器端接收通过在第一服务器端执行的方法获取的所述密文和所述账本位置;
验证单元,配置为,使用所述账本位置验证所述密文,以确定所述密文是否与所述第一数据对应;以及
确定单元,配置为,在确定所述密文与所述第一数据对应的情况中,确定以所述密文作为所述安全多方计算协议的输入。
本说明书另一方面提供一种获取安全多方计算协议的输入的装置,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第一服务器端中,所述装置在所述第三服务器端实施,包括:
接收单元,配置为,从所述第一服务器端接收通过在第一服务器端执行的方法获取的所述账本位置;以及
获取单元,配置为,从所述账本位置获取所述密文,以作为所述安全多方计算协议的输入。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项获取安全多方计算协议的输入的方法。
本方案中通过对同态加密密文的背书,结合使用多方安全计算协议,解决了数据隐私和数据可信的矛盾,且避免使用了功能强大的零知识证明技术,避免了零知识证明技术带来的昂贵计算和存储消耗。另外,本发明能解决使用多证明方数据进行评估的数据造假问题。
附图说明
通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚:
图1示出了根据本说明书实施例的安全多方计算的场景示意图;
图2示出了根据本说明书实施例一种获取安全多方计算协议的输入的方法的流程图;
图3示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法的流程图;
图4示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法的流程图;
图5示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法的流程图;
图6示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法的流程图;
图7示出了根据说明书另一实施例的获取安全多方计算协议的输入的方法;
图8示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法;
图9示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法;
图10示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法;
图11示出了根据本说明书实施例的方法时序图;
图12示出了根据本说明书实施例的一种获取安全多方计算协议的输入的装置1200;
图13示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1300;
图14示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1400;
图15示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1500;
图16示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1600;
图17示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1700;
图18示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1800;
图19示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置1900;以及
图20示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的装置2000。
具体实施方式
下面将结合附图描述本说明书实施例。
图1示出了根据本说明书实施例的安全多方计算的场景示意图。如图1所示,安全多方计算的参与方包括第一服务器端11和第三服务器端13,第一服务器端11为证明方服务器端,证明方例如为个人、企业、组织等,第三服务器端13为校验方服务器端,校验方可以为对证明方提供服务的个人、企业、组织等。该场景中还包括第二服务器端12,其例如为银行、税务局等权威机构的服务器端,其中存储有所述证明方的数据。在第一服务器端11与第三服务器端13执行安全多方计算协议(MPC协议)之前,首先,第一服务器端11向第二服务器端12发送数据请求,该数据请求包括对证明方特定数据的密文的请求、对证明方特定数据的背书证明的请求等。第二服务器端在接收到上述数据请求之后,使用证明方预先提供的证明方同态加密公钥对所述特定数据加密,以生成同态加密密文,并基于该同态加密密文生成验证数据,所述验证数据用于证明待验证的密文与所述特定数据是否对应。然后,第二服务器端将所述密文和验证数据发送给第一服务器端。
第一服务器端11将接收的密文和验证数据发送给第三服务器端13。第三服务器端13用所述验证数据验证所述密文,当确定所述密文与所述特定数据对应时,确定该密文为安全多方计算协议的输入,当确定密文与所述特定数据不对应时,则终止所述MPC协议。
图1所示的安全多方计算的场景只是示意性的,本说明书实施例的场景不限于图1所示。例如,第一服务器端11可自己生成第一数据的密文,而不需要从第二服务器端接收密文。又例如,第三服务器端可自己从区块链下载可信密文,而不用从第一服务器端接收密文。另外,安全多方计算不限于两方,而可以包括任意数目的参与方。证明方也可以从多个背书方获取背书证明。另外,证明方可以自身为背书方,即,自己为自己背书,证明方也同时可以是校验方。
图2示出了根据本说明书实施例一种获取安全多方计算协议的输入的方法。所述安全多方计算协议的参与方包括第一服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端。所述方法在所述第二服务器端执行,包括:
在步骤S202,从所述第一服务器端接收关于所述第一数据的数据请求;
在步骤S204,基于所述数据请求,通过预先从所述第一服务器端接收的公钥对所述第一数据进行同态加密,以生成第一密文,其中,所述公钥为所述第一对象的同态加密公钥;
在步骤S206,基于所述第一密文获取验证数据,所述验证数据用于验证待验证密文是否与所述第一数据对应;以及
在步骤S208,将所述验证数据发送给所述第一服务器端。
首先,在步骤S202,从所述第一服务器端接收关于所述第一数据的数据请求。例如,第一服务器端为个人或企业的服务器端,其例如如图1所示与第三服务器端执行PMC协议,其中,第三服务器端例如为评估机构、贷款机构、保险公司等。第一服务器端与第三服务器端通过执行MPC协议,使得第三服务器端获得对第一对象(所述个人或企业)的评估结果,同时相对于第三服务器端保护所述第一对象的隐私数据。第二服务器端例如为银行的服务器端,其中存储有所述第一对象的数据,如年龄、性别、存款、收入等等。所述数据请求指定了将要处理的数据(即所述第一数据)。例如,所述第一数据为第一对象的存款,第一服务器端在数据请求中对该存款数据进行指定。所述数据请求还可以包括对数据的加密处理方式的指定,即,指定通过第一对象的公钥对该数据进行同态加密。另外,所述数据请求还可以包括对第二服务器端应发回的内容的指定,例如,指定发回所述数据的密文和所述密文的验证数据,或者所述密文的验证数据等等。
在步骤S204,基于所述数据请求,通过预先从所述第一服务器端接收的公钥对所述第一数据进行同态加密,以生成第一密文,其中,所述公钥为所述第一对象的同态加密公钥。在根据数据请求确定对第一数据的进行特定加密之后,第二服务器端从自身存储单元中获取第一数据和第一对象的公钥,使用第一对象的公钥对第一数据进行同态加密,从而获取第一密文。这里,通过第一服务器端预先生成了第一对象的同态加密公钥、私钥对,并且第一服务器端在生成所述公私钥对之后,将其中的公钥发送给第二服务器端,以用于实施根据本说明书实施例的方法。
在一个实施例中,所述第一服务器端也存储有所述第一数据。第一服务器通过自身的同态加密公钥、所述第一数据、以及本地生成的随机数对第一数据进行同态加密,以获得第二密文。从而,第一服务器端在向第二服务器端发送所述数据请求时,在所述数据请求中包括所述随机数。从而第二服务器端可通过预先从所述第一服务器端接收的公钥和所述随机数对所述第一数据进行同态加密,以生成第一密文。即,通过发送所述随机数,以保证在第二服务器端生成的第一密文与在第一服务器端生成的第二密文是一致的,以用于执行后续的方法。
在步骤S206,基于所述第一密文获取验证数据,所述验证数据用于验证待验证密文是否与所述第一数据对应。
在一个实施例中,所述验证数据为区块链中由所述权威机构存证所述第一密文的账本位置。例如,第二服务器端在生成所述第一密文之后,生成权威机构对第一密文的数字签名,并将所述第一密文和所述数字签名存入到区块链中。具体是,第二服务器端使用权威机构的私钥对所述第一密文进行计算,以生成加密数据,作为权威机构对该第一密文的数字签名。通过权威机构的数字签名,即示出了权威机构对如下内容的背书证明:第一密文是通过第一服务器端的公钥对第一数据进行同态加密所获取的密文。另外,通过区块链中其它节点以所述权威机构的公钥对权威机构的数字签名进行验证达成共识,并将该第一密文与数字签名存入到区块链中,保证了第一密文的不被篡改和完整性,同时,保证了数字签名的真实性。因此,通过获取所述账本位置,可从该位置获取所述第一密文,通过将该第一密文与待验证的密文进行比对,从而可判断待验证的密文是否与所述第一数据对应。即,该账本位置可以作为验证数据,用于验证待验证的密文是否与第一数据对应。
其中,所述第二服务器端还可以将第一密文的哈希值、和所述权威机构对所述哈希值的数字签名存入区块链中,从而获取区块链中存储所述哈希值的账本位置。同样地,权威机构通过其数字签名对该哈希值进行了背书证明,也即,对其对应的第一密文进行了背书证明。从而,通过获取所述账本位置,可从该位置获取第一密文的哈希值,通过将待验证密文的哈希值与该第一密文的哈希值进行比对,从而可判断待验证密文是否与第一数据对应。
在一个实施例中,所述验证数据为通过所述第二服务器端生成的所述权威机构对所述第一密文的数字签名。具体地,第二服务器端在如上所述生成所述第一密文之后,使用权威机构的私钥对所述第一密文进行计算,从而生成加密数据作为该权威机构对该第一密文的数字签名。该数字签名可通过所述权威机构的公钥进行验证,并且可保证第一密文的不可篡改和完整性,体现了权威机构对第一密文的背书证明。从而,通过获取该数字签名,使用权威机构的公钥,验证待验证密文与该数字签名是否匹配,从而可确定待验证密文是否与第一数据对应。
在步骤S208,将所述验证数据发送给所述第一服务器端。
在一个实施例中,例如如上述对步骤S204中的描述,第一服务器端在本地自己生成了第二密文,从而第二服务器端只需要将所述验证数据发送给所述第一服务器端,以用于后续的方法。在另一个实施例中,在第二服务器端生成第一密文之后,将第二服务器端生成的随机数发送给第一服务器端,从而第一服务器端可利用该随机数和本地存储的第一数据,在本地生成与第一数据对应的第一密文,即,第二服务器端需要将所述验证数据和用于生成所述第一密文的随机数发送给所述第一服务器端。在另一个实施例中,第二服务器端将所述第一密文和所述验证数据发送给所述第一服务器端,以用于后续的方法。
图3示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法的流程图。所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端。所述方法在所述第一服务器端执行,包括以下步骤S302-S306。
在步骤S302,向所述第二服务器端发送关于所述第一数据的数据请求。该步骤中的数据请求的具体描述可参考上述对图2中步骤S202的描述,在此不再赘述。
在步骤S304,获取与所述第一数据对应的第二密文,其中,所述第二密文是通过预先生成的所述第一对象的公钥获取的同态加密密文。
在第一服务器端,预先生成第一对象的一对用于对数据进行同态加密的公私钥对。并且,第一服务器端预先将其中的公钥发送给第二服务器端,以用于本实施例方法的实施。
在一个实施例中,从所述第二服务器端接收上述第一密文作为该第二密文。其中所述第一密文由所述第二服务器端通过预先从所述第一服务器端接收的所述公钥对所述第一数据进行同态加密而生成。
在一个实施例中,所述第一服务器端本地存储有所述第一数据。所述第一服务器端在本地通过所述公钥和随机数对所述第一数据进行同态加密,以获取所述第二密文。在该情况中,在上述关于所述第一数据的数据请求中包括所述随机数,以使得第二服务器端可根据所述公钥和该随机数生成所述第一密文。从而使得第一密文与第二密文是相同的密文。
在另一个实施例中,所述第一服务器端本地存储有所述第一数据。第二服务器端在通过第一对象的公钥和第二服务器端本地生成的第二随机数生成所述第一密文之后,将该第二随机数发送给第一服务器端。从而第一服务器使用所述公钥和所述第二随机数在本地生成所述第二密文。
在步骤S306,从所述第二服务器端接收通过图2所示的方法获取的验证数据。如上文所述,通过上述在第二服务器端执行的方法获取的验证数据包括:区块链中对所述第一密文进行存证的账本位置、以及所述权威机构对所述第一密文的数字签名。
在步骤S308,将所述第二密文和所述验证数据发送给所述第三服务器端。通过将第二密文和验证数据发送给第三服务器端,第三服务器端可使用验证数据如上所述对第二密文进行验证,以确定所述第二密文是否与第一数据对应。从而,在所述第二密文与第一数据对应的情况中,可确定以该第二密文作为所述MPC协议的输入。即该第二密文是可信的输入,对应于第一对象的真实数据。
图4示出了根据本说明书另一个实施例的一种获取安全多方计算协议的输入的方法的流程图。所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端。所述方法在所述第一服务器端执行,包括以下步骤S402-S406。
在步骤S402,向所述第二服务器端发送关于所述第一数据的数据请求。该步骤中的数据请求的具体描述可参考上述对图2中步骤S202的描述,在此不再赘述。
在步骤S404,从所述第二服务器端获取通过图2所示的方法获取的区块链中的账本位置,其中,在所述账本位置存储有与所述第一数据对应的第一密文、和所述权威机构对所述第一密文的数字签名。参考上文对图2步骤S206的描述,通过由第二服务器端对本地的第一数据进行加密以获取第一密文,对该第一密文生成数字签名,并将第一密文和数字签名存入区块链中,即第二服务器端对该第一密文进行了背书证明,所述账本位置存储的第一密文是与第一数据对应的可信密文。
在步骤S406,将所述账本位置发送给所述第三服务器端。通过将所述账本位置发送给所述第三服务器端,第三服务器端从该账本位置可直接下载与第一数据对应的可信密文,从而可将其作为MPC协议的输入。
图5示出了根据本说明书另一个实施例的一种获取安全多方计算协议的输入的方法的流程图。所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算。其中,所述第一数据被存储在所述第一服务器端中。该实施例与前述实施例不同在于,所述第一对象既是待评估对象,也是权威机构,其为自己背书。例如,第一服务器端是银行的服务器端,即第一服务器端同时也是第二服务器端。所述方法在所述第一服务器端执行,包括以下步骤S502-S506。
在步骤S502,通过使用预先生成的所述第一对象的公钥对所述第一数据进行同态加密,获取与所述第一数据对应的密文。即,第一服务器端使用第一对象的同态加密公钥对本地的第一数据进行同态加密,从而在本地生成与所述第一数据对应的密文。
在步骤S504,通过在区块链中对所述密文进行存证,获取区块链中存证所述密文的账本位置。这里,与上文对图2中的步骤S206的相应描述类似,这里的账本位置即为上述步骤S206中验证数据的一种情况。所不同的是,在
图2所示实施例中,由第二服务器端进行在区块链中对所述密文进行存证。在该实施例中,由于第一对象既是待评估对象,又是权威机构,即,第一服务器端同时充当第二服务器端。因此,在该实施例中,由第一服务器端进行对所述密文的存证。对存证的具体过程的描述可参考上文对步骤S206的描述,在此不再赘述。
在步骤S506,将所述密文和所述账本位置发送给所述第三服务器端。该步骤的具体实施可参考上文对图3中步骤S308的描述,在此不再赘述。
在该实施例中,通过由第一服务器端将密文存证到区块链中,从而进行第一对象对自身的背书。其中,可通过区块链中的共识对第一对象的数据密文进行共识验证,并保证该密文的不可篡改性,从而增加了所述密文的可信度。
图6示出了根据本说明书另一个实施例的一种获取安全多方计算协议的输入的方法。所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在所述第一服务器端中。该实施例与图5所示实施例类似,即,所述第一对象既是待评估对象,也是权威机构,即第一服务器端同时也是第二服务器端。不同的是,在该实施例中,与图3所示实施例类似地,第三服务器端通过从所述账本位置获取密文。所述方法在所述第一服务器端执行,包括以下步骤S602-S606。
在步骤S602,通过使用预先生成的所述第一对象的公钥对所述第一数据进行同态加密,获取与所述第一数据对应的密文。该步骤的具体实施可参考上文对图5步骤S502的描述,在此不再赘述。
在步骤S604,通过在区块链中存储所述密文、和所述第一对象对所述密文的数字签名,获取区块链中存储所述密文和所述数字签名的账本位置,其中所述数字签名由所述第一服务器端生成。这里,第一服务器端通过将所述密文及第一对象对该密文的数字签名存入到区块链中,使得在区块链中对该密文及其数字签名进行了共识验证,并保证了该密文的不可篡改性。
在步骤S606,将所述账本位置发送给所述第三服务器端。通过将所述账本位置发送给第三服务器端,第三服务器端可从区块链中下载所述经过共识的密文,从而,确保了密文的可信性。
图7示出了根据说明书另一个实施例的获取安全多方计算协议的输入的方法。所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端。所述方法在所述第三服务器端执行,包括以下步骤S702-S706。
首先,在步骤S702,从所述第一服务器端接收通过图3所示的方法获取的第二密文和验证数据。这里,对第二密文和验证数据的具体描述可参考上述对图3中步骤S304和S306的描述,在此不再赘述。
在步骤S704,使用所述验证数据验证所述第二密文,以确定所述第二密文是否与所述第一数据对应。
在一个实施例中,所述验证数据为存储上述第一密文的账本位置。在该情况中,使用所述验证数据验证所述第二密文包括:通过所述账本位置,获取所述第一密文;以及确定所述第二密文与所述第一密文是否相同。在第二密文与第一密文相同的情况中,可确定第二密文与所述第一数据对应。
在一个实施例中,所述验证数据为存储上述第一密文的哈希值的账本位置。在该情况中,使用所述验证数据验证所述第二密文包括:通过所述账本位置,获取所述第一密文的哈希值;以及确定所述第二密文与所述哈希值是否匹配,即确定第二密文的哈希值是否与所述第一密文的哈希值相同。在第二密文与所述哈希值匹配的情况中,可确定第二密文与所述第一数据对应。
在一个实施例中,所述验证数据为上述权威机构对所述第一密文的数字签名,在该情况中,使用所述验证数据验证所述第二密文包括:确定所述第二密文与所述数字签名是否匹配。具体是,第三服务器端使用预先从第二服务器端获取的权威机构的公钥对所述数字签名进行解密获得第一报文摘要,使用预先从第二服务器端获取的哈希函数从所述第二密文计算出第二报文摘要。如果第二报文摘要与所述第一报文摘要相同,可确定第二密文与所述数字签名匹配,即,可确定第二密文与所述第一数据对应。
在步骤S706,在确定所述第二密文与所述第一数据对应的情况中,确定以所述第二密文作为所述安全多方计算协议的输入。在确定第二密文与第一数据对应的情况中,也就是确定了第二密文是通过第一对象的公钥对第一数据进行同态加密所获取的密文,因此可用于MPC协议,并确保通过MPC协议获取真实可信的结果。
图8示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端。所述方法在所述第三服务器端执行,包括以下步骤S802-S804。
首先,在步骤S802,从所述第一服务器端接收上述区块链中存储所述第一密文的所述账本位置。
在步骤S804,从所述账本位置获取所述第一密文,以作为所述安全多方计算协议的输入。
该实施例与图7所示实施例不同在于,在该实施例中,直接从区块链账本位置下载获取所述第一密文作为图7所示实施例中第二密文,从而不需要从第一服务器端接收所述第二密文。由于第一密文为经权威机构背书证明的与所述第一数据对应的密文,并且是通过第一对象的公钥进行同态加密所获取的密文,因此可用于第一服务器端与第三服务器端之间的MPC协议,并且可确保获取真实可信的计算结果。
图9示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法。所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在所述第一服务器端中。所述方法在所述第三服务器端执行,包括以下步骤S902-S906。
首先,在步骤S902,从所述第一服务器端接收通过图5所示方法获取的所述密文、和区块链中存证所述密文的账本位置。对所述密文和所述账本位置的具体描述可参考上述对图5中步骤S502和S504的描述,在此不再赘述。
在步骤S904,使用所述账本位置验证所述密文,以确定所述密文是否与所述第一数据对应。该步骤的具体实施可参考上文对图7中步骤S704的描述中的相应描述,在此不再赘述。
在步骤S906,确定所述密文与所述第一数据对应的情况中,确定以所述密文作为所述安全多方计算协议的输入。该步骤的具体实施可参考上文对图7中步骤S706的描述,在此不再赘述。
该实施例所示方法与图7所示方法不同在于,在该实施例中,通过由第一服务器端将密文存证到区块链中,从而进行第一对象对自身的背书。其中,可通过区块链中的共识对第一对象的数据密文进行共识验证,并保证该密文的不可篡改性,从而增加了所述密文的可信度。
图10示出了根据本说明书另一实施例的一种获取安全多方计算协议的输入的方法。所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第一服务器端中。所述方法在所述第三服务器端执行,包括以下步骤S1002-S1004。
首先,在步骤S1002,从所述第一服务器端接收通过图6所示的方法获取的区块链中存储所述密文的账本位置。
在步骤S1004,从所述账本位置获取所述密文,以作为所述安全多方计算协议的输入。
该实施例与图9所示实施例不同在于,在该实施例中,直接从区块链账本位置下载获取所述密文,从而不需要从第一服务器端接收所述密文。由于所述密文为经权威机构背书证明的与所述第一数据对应的密文,并且是通过第一对象的公钥进行同态加密所获取的密文,因此可用于第一服务器端与第三服务器端之间的MPC协议,并且可确保获取真实可信的计算结果。
图11示出了根据本说明书实施例的方法时序图。图11包括第I部分和第II部分,其中第I部分对应于第一服务器端从权威机构的第二服务器端获取验证数据的情况,第II部分对应于第一服务器端自己准备验证数据(即不需要权威机构的第二服务器端)的情况。在第I部分,首先,第一服务器端向第二服务器端发送数据请求,第二服务器端根据数据请求准备第一密文及验证数据,并将验证数据发送给第一服务器端,可选地,将第一密文也发送给第一服务器端。然后,第一服务器端将第二密文(可选)和验证数据发送给第三服务器端。从而第三服务器端通过以所述验证数据验证所述第二密文,以确定是否以第二密文作为所述MPC协议的输入。这里第二密文可以是从第二服务器端获取的第一密文,也可以是通过本地的公钥和第一数据在本地生成的密文。可选地,第一服务器端仅将验证数据发送给第三服务器端,该验证数据为权威机构在区块链中存证所述第一密文的账本位置,从而,第三服务器端可直接从所述账本位置下载所述第一密文,以用于MPC协议。
在第II部分,第一服务器端在本地生成第一数据的同态加密密文,并将该密文存入区块链中,以获取区块链中存储所述密文的账本位置作为所述验证数据。然后,第一服务器端将密文(可选)和所述账本位置发送给第三服务器端。从而,第三服务器端通过所述账本位置验证所述密文,以确定是否以所述密文作为MPC协议的输入。可选地,第一服务器端仅将所述账本位置发送给第三服务器端,从而所述第三服务器端可直接从所述账本位置下载所述密文作为所述MPC协议的输入。
在上述多个实施例中,示出了在第一服务器端、第二服务器端和第三服务器端之间、或者在第一服务器端与第三服务器端之间进行的获取MPC协议的输入的方法,其中MPC协议的参与方包括第一服务器端和第三服务器端。然而,上述实施例并不限定本发明的范围。
在一个实施例中,第一服务器端可从两个以上的权威机构(例如银行和税务局)的服务器端获取验证数据和密文(可选),在该情况中,第一服务器端可与每个权威机构的服务器端执行例如图3所示的方法,以分别获取MPC协议的输入。
在一个实施例中,第一服务器端与第三服务器端执行的方法可互换,即第一服务器端的证明方也可以是校验方,第三服务器端的校验方也可以是证明方,例如合作的两方互相对对方进行评估,因此,在其之间将执行两次根据上述实施例的方法,一次由一方作为证明方,另一方作为校验方,另一次双方互换角色。两次方法的执行可同时进行,也可顺序进行。两次执行的方法可以相同,也可以不同(例如一次执行图3所示的方法,一次执行图4所示的方法)。
在一个实施例中,第三服务器端(校验方)对两个以上的证明方服务器端进行密文的验证,以分别获取来自各个证明方的对MPC协议的输入。在该情况中,第三服务器端与每个所述证明方服务器端分别执行例如图3所示的方法,以分别获取MPC协议的输入。
在一个实施例中,第一服务器端(证明方)向多个校验方服务器端提供第一数据的密文及其验证数据。在该情况中,第一服务器端可将通过上述实施例所示的方法获取的密文及其验证数据发送给各个校验方服务器端,以分别获取各个校验方服务器端对应的MPC协议的输入。
图12示出了根据本说明书实施例的一种获取安全多方计算协议的输入的装置1200,所述安全多方计算协议的参与方包括第一服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端,所述装置在所述第二服务器端实施,包括:
接收单元121,配置为,从所述第一服务器端接收关于所述第一数据的数据请求;
生成单元122,配置为,基于所述数据请求,通过预先从所述第一服务器端接收的公钥对所述第一数据进行同态加密,以生成第一密文,其中,所述公钥为所述第一对象的同态加密公钥;
获取单元123,配置为,基于所述第一密文获取验证数据,所述验证数据用于验证待验证密文是否与所述第一数据对应;以及
发送单元124,配置为,将所述验证数据发送给所述第一服务器端。
在一个实施例中,在所述获取安全多方计算协议的输入的装置中,所述数据请求中包括用于对所述第一数据进行同态加密的随机数,其中所述生成单元还配置为,通过预先从所述第一服务器端接收的公钥和所述随机数对所述第一数据进行同态加密,以生成第一密文。
在一个实施例中,在所述获取安全多方计算协议的输入的装置中,所述发送单元还配置为,将所述验证数据和所述第一密文发送给所述第一服务器端。
在一个实施例中,在所述获取安全多方计算协议的输入的装置中,所述获取单元还配置为,通过在区块链中对所述第一密文进行存证,获取区块链中存证所述第一密文的账本位置作为所述验证数据。
图13示出了根据本说明书实施例的一种获取安全多方计算协议的输入的装置1300,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端,所述装置在所述第一服务器端实施,包括:
第一发送单元131,配置为,向所述第二服务器端发送关于所述第一数据的数据请求;
获取单元132,配置为,获取与所述第一数据对应的第二密文,其中,所述第二密文是通过预先生成的所述第一对象的公钥获取的同态加密密文;
接收单元133,配置为,从所述第二服务器端接收根据通过图2所示方法获取的验证数据;以及
第二发送单元134,配置为,将所述第二密文和所述验证数据发送给所述第三服务器端。
在一个实施例中,在所述获取安全多方计算协议的输入的装置中,所述获取单元还配置为,从所述第二服务器端接收通过图2所示方法生成的所述第一密文作为所述第二密文。
在一个实施例中,在所述获取安全多方计算协议的输入的装置中,所述第一服务器端存储有所述第一数据,以及,其中,所述获取单元还配置为,在本地通过所述公钥和本地生成的随机数对所述第一数据进行同态加密,以获取所述第二密文,其中,在关于所述第一数据的数据请求中包括所述随机数。
图14示出了根据本说明书实施例的一种获取安全多方计算协议的输入的装置1400,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端,所述装置在所述第一服务器端执行,包括:
第一发送单元141,配置为,向所述第二服务器端发送关于所述第一数据的数据请求;
接收单元142,配置为,从所述第二服务器端接收存储所述第一密文和所述权威机构对所述第一密文的数字签名的所述账本位置;以及
第二发送单元143,配置为,将所述账本位置发送给所述第三服务器端。
图15示出了根据本说明书实施例的一种获取安全多方计算协议的输入的装置1500,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在所述第一服务器端中,所述装置在所述第一服务器端执行,包括:
加密单元151,配置为,通过使用预先生成的所述第一对象的公钥对所述第一数据进行同态加密,获取与所述第一数据对应的密文;
存证单元152,配置为,通过在区块链中对所述密文进行存证,获取区块链中存证所述密文的账本位置;以及
发送单元153,配置为,将所述密文和所述账本位置发送给所述第三服务器端。
图16示出了根据本说明书实施例的一种获取安全多方计算协议的输入的装置1600,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在所述第一服务器端中,所述装置在所述第一服务器端实施,包括:
加密单元161,配置为,通过使用预先生成的所述第一对象的公钥对所述第一数据进行同态加密,获取与所述第一数据对应的密文;
存入单元162,配置为,通过在区块链中存入所述密文、和所述第一对象对所述密文的数字签名,获取区块链中存储所述密文和所述数字签名的账本位置,其中所述数字签名由所述第一服务器端生成;以及
发送单元163,配置为,将所述账本位置发送给所述第三服务器端。
图17示出了根据本说明书实施例的一种获取安全多方计算协议的输入的装置1700,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端,所述装置在所述第三服务器端实施,包括:
接收单元171,配置为,从所述第一服务器端接收通过图3所示方法获取的所述第二密文和所述验证数据;
验证单元172,配置为,使用所述验证数据验证所述第二密文,以确定所述第二密文是否与所述第一数据对应;以及
确定单元173,配置为,在确定所述第二密文与所述第一数据对应的情况中,确定以所述第二密文作为所述安全多方计算协议的输入。
在一个实施例中,在所述获取安全多方计算协议的输入的装置中,所述验证数据为存储所述第一密文和所述权威机构对所述第一密文的数字签名的所述账本位置,其中,在所述账本位置存储有通过图2所示方法获取的所述第一密文,
其中,所述验证单元包括:
第一获取子单元1721,配置为,通过所述账本位置,获取所述第一密文;以及
第一确定子单元1722,配置为,确定所述第二密文与所述第一密文是否相同。
在一个实施例中,在所述获取安全多方计算协议的输入的装置中,所述验证数据为存储所述第一密文的哈希值、和所述权威机构对所述第一密文的哈希值的数字签名的所述账本位置,
其中,所述验证单元还包括:
第二获取子单元1723,配置为,过所述账本位置,获取所述第一密文的哈希值;以及
第二确定子单元1724,配置为,确定所述第二密文与所述哈希值是否匹配。
在一个实施例中,在所述获取安全多方计算协议的输入的装置中,所述验证数据为所述权威机构对所述第一密文的数字签名,
其中,所述验证单元还包括:
第三确定子单元1725,配置为,确定所述第二密文与所述数字签名是否匹配。
图18示出了根据本说明书实施例的一种获取安全多方计算协议的输入的装置1800,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第二服务器端中,所述第二服务器端是权威机构的服务器端,所述装置在所述第三服务器端实施,包括:
接收单元181,配置为,从所述第一服务器端接收存储所述第一密文和所述权威机构对所述第一密文的数字签名的所述账本位置;以及
获取单元182,配置为,从所述账本位置获取所述第一密文,以作为所述安全多方计算协议的输入。
图19示出了根据本说明书实施例的一种获取安全多方计算协议的输入的装置1900,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在所述第一服务器端中,所述装置在所述第三服务器端实施,包括:
接收单元191,配置为,从所述第一服务器端接收通过图5所示方法获取的所述密文和所述账本位置;
验证单元192,配置为,使用所述账本位置验证所述密文,以确定所述密文是否与所述第一数据对应;以及
确定单元193,配置为,在确定所述密文与所述第一数据对应的情况中,确定以所述密文作为所述安全多方计算协议的输入。
图20示出了根据本说明书实施例的一种获取安全多方计算协议的输入的装置2000,所述安全多方计算协议的参与方包括第一服务器端和第三服务器端,所述第一服务器端为第一对象的服务器端,所述安全多方计算协议基于所述第一对象的第一数据进行计算,其中,所述第一数据被存储在第一服务器端中,所述装置在所述第三服务器端实施,包括:
接收单元201,配置为,从所述第一服务器端接收通过图6所示方法获取的所述账本位置;以及
获取单元202,配置为,从所述账本位置获取所述密文,以作为所述安全多方计算协议的输入。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项获取安全多方计算协议的输入的方法。
本方案中通过对同态加密密文的背书,结合使用多方安全计算协议,解决了数据隐私和数据可信的矛盾,且避免使用了功能强大的零知识证明技术,避免了零知识证明技术带来的昂贵计算和存储消耗。另外,本发明能解决使用多证明方数据进行评估的数据造假问题。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。