多方安全计算方法及装置、电子设备转让专利

申请号 : CN201810925182.1

文献号 : CN109359470B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李漓春殷山王华忠林文珍

申请人 : 阿里巴巴集团控股有限公司

摘要 :

一种多方安全计算方法,应用于分布式网络中部署的任一计算节点;其中,所述分布式网络部署了多个计算节点,所述多个计算节点基于各自持有的隐私数据共同参与多方安全计算,所述方法包括:基于多方安全计算算法生成与持有的隐私数据相关的计算参数;将所述计算参数发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算;以及,创建对应于所述计算参数的审计日志;其中,所述审计日志记录了与所述计算参数相关的描述信息。

权利要求 :

1.一种多方安全计算方法,应用于分布式网络中部署的任一计算节点;其中,所述分布式网络部署了多个计算节点,所述多个计算节点基于各自持有的隐私数据共同参与多方安全计算,所述方法包括:基于多方安全计算算法生成与持有的隐私数据相关的计算参数;所述计算参数,包括:参与多方安全计算的随机数;和/或,参与多方安全计算的密文数据;

将所述计算参数发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算;并收集参与多方安全计算的其它各计算节点发送的计算参数,以及,创建对应于参与多方安全计算的计算参数的审计日志;其中,所述审计日志记录了与所述参与多方安全计算的计算参数相关的描述信息;所述描述信息包括:与参与多方安全计算的随机数对应的随机数生成规则;和/或,与参与多方安全计算的密文数据对应的密钥;

基于所述审计日志对参与多方安全计算的计算节点发送的计算参数进行隐私审计,确认所述计算节点发送的计算参数是否存在隐私泄露风险;

其中,所述基于所述审计日志对参与多方安全计算的计算节点发送的计算参数进行隐私审计,确认所述计算节点发送的计算参数是否存在隐私泄露风险,包括:基于所述审计日志中记录的所述随机数生成规则,校验所述随机数是否为基于计算节点持有的隐私数据构建的随机数;如果是,确认所述计算节点发送的计算参数存在隐私泄露风险;

和/或基于所述审计日志中记录的所述密钥,校验所述密钥是否为其它各计算节点持有的已知密钥;如果是,确认所述计算节点发送的计算参数存在隐私泄露风险。

2.根据权利要求1所述的方法,还包括:

基于收集到的由其它各计算节点发送的计算参数执行多方安全计算。

3.一种多方安全计算装置,应用于分布式网络中部署的任一计算节点;其中,所述分布式网络部署了多个计算节点,所述多个计算节点基于各自持有的隐私数据共同参与多方安全计算,所述装置包括:生成模块,基于多方安全计算算法生成与持有的隐私数据相关的计算参数;所述计算参数,包括:参与多方安全计算的随机数;和/或,参与多方安全计算的密文数据;

发送模块,将所述计算参数发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算;

收集模块,收集参与多方安全计算的其它各计算节点发送的计算参数;

创建模块,创建对应于参与多方安全计算的计算参数的审计日志;其中,所述审计日志记录了与所述参与多方安全计算的计算参数相关的描述信息;所述描述信息包括:与参与多方安全计算的随机数对应的随机数生成规则;和/或,与参与多方安全计算的密文数据对应的密钥;

审计模块,基于所述审计日志对参与多方安全计算的计算节点发送的计算参数进行隐私审计,确认所述计算节点发送的计算参数是否存在隐私泄露风险;

其中,所述审计模块进一步用于:

基于所述审计日志中记录的所述随机数生成规则,校验所述随机数是否为基于计算节点持有的隐私数据构建的随机数;如果是,确认所述计算节点发送的计算参数存在隐私泄露风险;

和/或基于所述审计日志中记录的所述密钥,校验所述密钥是否为其它各计算节点持有的已知密钥;如果是,确认所述计算节点发送的计算参数存在隐私泄露风险。

4.根据权利要求3所述的装置,还包括:

收集模块,基于收集到的由其它各计算节点发送的计算参数执行多方安全计算。

5.一种电子设备,包括:

处理器;

用于存储机器可执行指令的存储器;

其中,通过读取并执行所述存储器存储的与多方安全计算的控制逻辑对应的机器可执行指令,所述处理器被促使:基于多方安全计算算法生成与持有的隐私数据相关的计算参数;所述计算参数,包括:参与多方安全计算的随机数;和/或,参与多方安全计算的密文数据;

将所述计算参数发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算;并收集参与多方安全计算的其它各计算节点发送的计算参数,以及,创建对应于参与多方安全计算的计算参数的审计日志;其中,所述审计日志记录了与所述参与多方安全计算的计算参数相关的描述信息;所述描述信息包括:与参与多方安全计算的随机数对应的随机数生成规则;和/或,与参与多方安全计算的密文数据对应的密钥;

基于所述审计日志对参与多方安全计算的计算节点发送的计算参数进行隐私审计,确认所述计算节点发送的计算参数是否存在隐私泄露风险;

其中,所述基于所述审计日志对参与多方安全计算的计算节点发送的计算参数进行隐私审计,确认所述计算节点发送的计算参数是否存在隐私泄露风险,包括:基于所述审计日志中记录的所述随机数生成规则,校验所述随机数是否为基于计算节点持有的隐私数据构建的随机数;如果是,确认所述计算节点发送的计算参数存在隐私泄露风险;

和/或基于所述审计日志中记录的所述密钥,校验所述密钥是否为其它各计算节点持有的已知密钥;如果是,确认所述计算节点发送的计算参数存在隐私泄露风险。

说明书 :

多方安全计算方法及装置、电子设备

技术领域

[0001] 本说明书一个或多个实施例涉及分布式计算领域,尤其涉及一种多方安全计算方法及装置、电子设备。

背景技术

[0002] 多方安全计算是一种密码学技术,参与计算的多方可以通过执行一个多方安全计算算法,基于各自持有的输入数据来共同进行安全计算,得到出一个计算结果,而不向其它各方泄露持有的输入数据。
[0003] 多方安全计算算法,虽然能保护隐私数据,但不正确甚至恶意的算法实现,仍然可能会泄露隐私数据。最理想情况下,各方可以自行开发自己的多方安全计算软件,并各自利用各自开发的多方安全计算软件来参与多方安全计算。然而,在实际应用中,各方通常使用的可能是一个提供商提供的多方安全计算软件;因此,对于提供商而言,则需要证明其提供的多方安全计算软件是可信的,没有泄露隐私数据。

发明内容

[0004] 本说明书提出一种多方安全计算方法,应用于分布式网络中部署的任一计算节点;其中,所述分布式网络部署了多个计算节点,所述多个计算节点基于各自持有的隐私数据共同参与多方安全计算,所述方法包括:
[0005] 基于多方安全计算算法生成与持有的隐私数据相关的计算参数;
[0006] 将所述计算参数发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算;以及,
[0007] 创建对应于所述计算参数的审计日志;其中,所述审计日志记录了与所述计算参数相关的描述信息。
[0008] 可选的,还包括:
[0009] 收集参与多方安全计算的其它各计算节点发送的计算参数,基于收集到的由其它各计算节点发送的计算参数执行多方安全计算;以及,
[0010] 创建对应于由所述其它各计算节点发送的计算参数的审计日志,并存储所述审计日志;其中,所述审计日志记录了与所述计算参数相关的描述信息。
[0011] 可选的,所述计算参数,包括:
[0012] 参与多方安全计算的随机数;和/或,
[0013] 参与多方安全计算的密文数据。
[0014] 可选的,与所述计算参数相关的描述信息,包括:
[0015] 与参与多方安全计算的随机数对应的随机数生成规则;和/或,
[0016] 与参与多方安全计算的密文数据对应的密钥。
[0017] 可选的,还包括:
[0018] 基于所述审计日志对参与多方安全计算的计算节点发送的计算参数进行隐私审计,确认所述计算节点发送的计算参数是否存在隐私泄露风险;或者,将所述审计日志发送至第三方的审计节点,以由所述审计节点对参与多方安全计算的计算节点发送的计算参数进行隐私审计,确认所述计算节点发送的计算参数是否存在隐私泄露风险。
[0019] 可选的,所述基于所述审计日志对参与多方安全计算的计算节点发送的计算参数进行隐私审计,确认所述计算节点发送的计算参数是否存在隐私泄露风险,包括:
[0020] 基于所述审计日志中记录的,与参与多方安全计算的计算节点发送的随机数对应的随机数生成规则,校验所述随机数是否为基于其它各计算节点持有的隐私数据构建的随机数;
[0021] 如果是,确认所述计算节点发送的计算参数存在隐私泄露风险;
[0022] 如果否,确认所述计算节点发送的计算参数不存在隐私泄露风险。
[0023] 可选的,所述基于所述审计日志对参与多方安全计算的计算节点发送的计算参数进行隐私审计,确认所述计算节点发送的计算参数是否存在隐私泄露风险,包括:
[0024] 基于所述审计日志中记录的,参与多方安全计算的计算节点发送的密文数据对应的密钥,校验所述所述密钥是否为其它各计算节点持有的已知密钥;
[0025] 如果是,确认所述计算节点发送的计算参数存在隐私泄露风险;
[0026] 如果否,确认所述计算节点发送的计算参数不存在隐私泄露风险。
[0027] 本说明书还提出一种多方安全计算装置,应用于分布式网络中部署的任一计算节点;其中,所述分布式网络部署了多个计算节点,所述多个计算节点基于各自持有的隐私数据共同参与多方安全计算,所述装置包括:
[0028] 生成模块,基于多方安全计算算法生成与持有的隐私数据相关的计算参数;
[0029] 发送模块,将所述计算参数发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算;
[0030] 创建模块,创建对应于所述计算参数的审计日志;其中,所述审计日志记录了与所述计算参数相关的描述信息。
[0031] 可选的,还包括:
[0032] 收集模块,收集参与多方安全计算的其它各计算节点发送的计算参数,基于收集到的由其它各计算节点发送的计算参数执行多方安全计算;
[0033] 所述创建模块进一步:
[0034] 创建对应于由所述其它各计算节点发送的计算参数的审计日志,并存储所述审计日志;其中,所述审计日志记录了与所述计算参数相关的描述信息。
[0035] 可选的,所述计算参数,包括:
[0036] 参与多方安全计算的随机数;和/或,
[0037] 参与多方安全计算的密文数据。
[0038] 可选的,与所述计算参数相关的描述信息,包括:
[0039] 与参与多方安全计算的随机数对应的随机数生成规则;和/或,
[0040] 与参与多方安全计算的密文数据对应的密钥。
[0041] 可选的,还包括:
[0042] 审计模块,基于所述审计日志对参与多方安全计算的计算节点发送的计算参数进行隐私审计,确认所述计算节点发送的计算参数是否存在隐私泄露风险;或者,将所述审计日志发送至第三方的审计节点,以由所述审计节点对参与多方安全计算的计算节点发送的计算参数进行隐私审计,确认所述计算节点发送的计算参数是否存在隐私泄露风险。
[0043] 可选的,所述审计模块进一步:
[0044] 基于所述审计日志中记录的,与参与多方安全计算的计算节点发送的随机数对应的随机数生成规则,校验所述随机数是否为基于其它各计算节点持有的隐私数据构建的随机数;
[0045] 如果是,确认所述计算节点发送的计算参数存在隐私泄露风险;
[0046] 如果否,确认所述计算节点发送的计算参数不存在隐私泄露风险。
[0047] 可选的,所述审计模块进一步:
[0048] 基于所述审计日志中记录的,参与多方安全计算的计算节点发送的密文数据对应的密钥,校验所述所述密钥是否为其它各计算节点持有的已知密钥;
[0049] 如果是,确认所述计算节点发送的计算参数存在隐私泄露风险;
[0050] 如果否,确认所述计算节点发送的计算参数不存在隐私泄露风险。
[0051] 本说明书还提出一种电子设备,应用于分布式网络;其中,所述分布式网络部署了多个计算节点,所述多个计算节点基于各自持有的隐私数据共同参与多方安全计算,包括:
[0052] 处理器;
[0053] 用于存储机器可执行指令的存储器;
[0054] 其中,通过读取并执行所述存储器存储的与多方安全计算的控制逻辑对应的机器可执行指令,所述处理器被促使:
[0055] 基于多方安全计算算法生成与持有的隐私数据相关的计算参数;
[0056] 将所述计算参数发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算;以及,
[0057] 创建对应于所述计算参数的审计日志;其中,所述审计日志记录了与所述计算参数相关的描述信息。
[0058] 通过以上技术方案,由于参与多方安全计算的各计算节点,在基于搭载的多方安全计算算法生成了计算参数之后,还可以创建并存储与计算参数对应的审计日志,并在审计日志中记录与所述计算参数相关的描述信息,使得各计算节点的管理用户可以通过查看审计日志,就可以了解到多方安全计算算法生成的计算参数的详细信息,因此对于多方安全计算算法的使用方而言,可以获得更加便于对算法进行审计的审计信息;而对于多方安全计算算法的提供方而言,可以在不公开多方安全计算算法的源代码的前提下,使得上述多方安全计算算法变得透明可审计。

附图说明

[0059] 图1是一示例性实施例提供的一种多方安全计算方法的流程图。
[0060] 图2是一示例性实施例提供的一种电子设备的结构示意图。
[0061] 图3是一示例性实施例提供的一种多方安全计算装置的框图。

具体实施方式

[0062] 在实际应用中,出于隐私保护的目的,多方安全计算算法通常均为黑盒算法,搭载多方安全计算算法的各个计算节点之间的数据传输行为很不透明;
[0063] 例如,对于搭载诸如秘密分享、同态加密、混淆电路等多方安全计算算法的计算节点之间,通常传输携带大量的密文和/或随机数的交互消息,即便对于多方安全计算算法的使用者而言,也很难理解以上交互消息中携带的密文和/或随机数的具体含义。
[0064] 因此,对于多方安全计算算法的提供方而言,为证明其所提供的多方安全计算算法透明可信,则不得不需要将其所提供的多方安全计算算法的源代码向使用者或者中立机构进行公开,以完成针对算法的审计。
[0065] 基于此,本说明书中则旨在提出一种,多方安全计算算法的提供方可以在不公开算法的源代码的前提下,向算法使用者提供更加便于对算法进行审计的审计信息的技术方案。
[0066] 在实现时,分布式网络中的计算节点,可以基于搭载的多方安全计算算法生成与持有的隐私数据相关的计算参数;例如,在实际应用中,生成的计算参数可以包括,参与多方安全计算的随机数;和/或,参与多方安全计算的密文数据。
[0067] 一方面,当生成了上述计算参数后,上述计算节点可以将生成的计算参数,发送至分布式网络中参与多方安全计算的其它各计算节点,由其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数来执行多方安全计算。
[0068] 另一方面,上述计算节点还可以创建对应于上述计算参数的审计日志,在审计日志中记录与上述计算参数相关的描述信息,并存储创建完成的审计日志;
[0069] 例如,生成的计算参数包括,参与多方安全计算的随机数;和/或,参与多方安全计算的密文数据为例,与上述计算参数相关的描述信息,则可以包括与参与多方安全计算的随机数对应的随机数生成规则;和/或,与参与多方安全计算的密文数据对应的密钥信息。
[0070] 通过以上技术方案,由于参与多方安全计算的各计算节点,在基于搭载的多方安全计算算法生成了计算参数之后,还可以创建并存储与计算参数对应的审计日志,并在审计日志中记录与所述计算参数相关的描述信息,使得各计算节点的管理用户可以通过查看审计日志,就可以了解到多方安全计算算法生成的计算参数的详细信息,因此对于多方安全计算算法的使用方而言,可以获得更加便于对算法进行审计的审计信息;而对于多方安全计算算法的提供方而言,可以在不公开多方安全计算算法的源代码的前提下,使得上述多方安全计算算法变得透明可审计。
[0071] 下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
[0072] 请参考图1,图1是本说明书一实施例提供的一种多方安全计算方法,应用于分布式网络中部署的任一计算节点;其中,上述分布式网络部署了多个计算节点,上述多个计算节点基于各自持有的隐私数据共同参与多方安全计;所述多方安全计算方法执行以下步骤:
[0073] 步骤102,基于多方安全计算算法生成与持有的隐私数据相关的计算参数;
[0074] 步骤104,将所述计算参数发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算;
[0075] 步骤106,创建对应于所述计算参数的审计日志;其中,所述审计日志记录了与所述计算参数相关的描述信息。
[0076] 上述分布式网络,可以包括能够支撑多方安全计算,且采用了分布式架构的任意形态的数据网络;
[0077] 例如,在一种场景下,上述分布式网络可以是由若干台计算设备组成的设备集群(比如服务器集群)搭建的多方安全计算平台;
[0078] 又如,在另一种场景下,上述分布式网络也可以是由若干台节点设备组成的区块链网络;在该区块链网络中可以部署需要由多台节点设备基于持有的隐私数据共同参与多方安全计算,且需要保证持有的隐私数据不公开给其它节点设备的在线业务。其中,上述在线业务的具体类型,在本说明书中不进行特别限定。
[0079] 上述计算节点,具体可以包括上述分布式网络中,能够搭载上述多方安全计算算法的节点设备。
[0080] 上述多方安全计算算法,具体可以包括由各计算节点独立开发,或者由提供方统一提供的多方安全计算算法;比如,在实际应用中,上述多方安全计算算法,具体可以对应由各计算节点独立开发,或者由提供方统一提供的多方安全计算软件。
[0081] 上述计算参数,具体是指由参与多方安全计算的各计算节点,基于搭载的多方安全计算算法生成的,与各计算节点持有的隐私数据相关计算参数;各计算节点需要计算节点之间通过交互消息互相传输生成的计算参数,并基于收集到的各计算节点生成的计算参数来执行多方安全计算。
[0082] 在实际应用中,上述计算参数通常可以包括:需要参与多方安全计算的随机数;和/或,需要参与多方安全计算的密文数据。
[0083] 其中,需要说明的是,在实际应用中,上述多方安全计算算法,通常包括诸如秘密分享、同态加密、混淆电路等多方安全计算算法。而上述计算参数所包含的具体内容,通常取决于各计算节点所搭载的多方安全计算算法的具体算法类型。当各节点设备搭载以上列举出的不同算法时,上述计算参数所包含的内容,也会存在一定的差异。
[0084] 例如,基于秘密分享算法,上述计算参数,通常包括各计算节点将持有的隐私数据拆分出的N个随机数;其中,上述N个随机数包括N-1个独立生成的随机数、和将上述N-1个随机数与持有的隐私数据一起进行运算得到的运算结果(即第N个随机数)。
[0085] 基于同态加密算法,上述计算参数,通常包括基于持有的密钥对隐私数据进行加密后得到的密文数据。
[0086] 基于混淆电路算法,上述计算参数,通常包括用于对混淆电路的输入值(即参与计算的输入数据)和输出值分别进行替换的随机数(也称之为输入值和输出值的混淆值),以及将输入值的混淆值作为密钥,对输出数据的混淆值进行加密后得到的密文数据。
[0087] 在本说明书中,可以在分布式网络中,部署多个计算节点,各个计算节点作为多方安全计算的参与方,可以通过共同搭载同一种多方安全计算算法,在不泄露各自持有的隐私数据的前提下,来参与多方安全计算。
[0088] 例如,各个计算节点可以共同搭载由多方安全计算算法的提供商提供的多方安全计算软件,通过该多方安全计算软件进行消息交互,在各个计算节点之间传输参与多方安全计算的随机数,和/或密文数据,来参与多方安全计算。
[0089] 上述分布式网络中部署的各个计算节点,除了需要共同搭载上同一种多方安全计算算法以外,还可以分别部署独立的数据源,结果存储系统、以及日志存储系统。
[0090] 其中,上述数据源,用于存储和维护各个数据节点持有的隐私数据。
[0091] 上述结果存储系统,用于存储和维护各个数据节点参与多方安全计算最终得到的计算结果。
[0092] 需要说明的是,在一些仅有少量数据参与的安全多方计算中,各个节点设备也可以不需要部署独立的数据源和结果存储系统。在这种情况下,各个计算节点,可以直接获取用户通过操作界面输入的数据作为数据源,并将最终的多方安全计算的计算结果,通过该操作界面向用户输出即可。上述日志存储系统,用于存储和维护由各个数据节点创建的与计算参数相关的审计日志。
[0093] 需要说明的是,对于创建的审计日志,也可以存储在第三方的存储设备或者存储系统中,在这种情况下,各个计算节点本地则可以不需要部署独立的日志存储系统;也即,在实际应用中,审计日志的生成节点和存储节点,可以相同也可以不同,在本说明书中不进行特别限定。
[0094] 对于参与多方安全计算的任一目标计算节点而言,在与其它各计算节点共同完成多方安全计算时,首先可以从部署的数据源中读取需要参与多方安全计算的隐私数据;
[0095] 然后,可以基于搭载的多方安全计算算法,对读取到的隐私数据进行计算,生成与持有的隐私数据相关的随机数、和/或密文数据。
[0096] 进一步,上述目标计算节点可以基于搭载的多方安全计算算法现有的消息交互机制,来构建交互消息,将生成的随机数、和/或密文数据作为计算参数,发送至参与多方安全计算的其它计算节点。
[0097] 而其它计算节点可以收集由参与多方安全计算的各计算节点通过交互消息发送的计算参数,并基于收集到的计算参数,来执行多方安全计算,然后将计算结果在本地部署的上述结果存储系统中进行存储。
[0098] 相应的,上述目标计算节点也可以收集由参与多方安全计算的各计算节点,通过交互消息发送的计算参数,并基于收集到的计算参数,来执行多方安全计算,然后将计算结果在本地部署的上述结果存储系统中进行存储。
[0099] 其中,需要说明的是,参与多方安全计算的各计算节点,在基于收集到的计算参数执行多方安全计算的计算过程,通常取决于各计算节点所搭载的多方安全计算算法的具体算法类型,不同类型的多方安全计算算法所涉及的计算过程通常会存在一定的差异。
[0100] 以下分别以各计算节点搭载的多方安全计算算法为秘密分享算法、同态加密算法、混淆电路算法为例,对以上列举出的各种算法的算法逻辑进行简要描述。
[0101] 1)秘密分享(secret sharing)算法
[0102] 秘密分享(secret sharing)算法也称为秘密分割算法、秘密共享算法。它的基本原理是将秘密(比如密钥)拆分成多个分片(share),分别交给不同人保管。只有收集到的share的数量超过门限数量时,才能恢复秘密;而如果收集到的share的数量少于门限数量,则基于share无法恢复秘密的任何信息。其中,秘密分享算法应用在多方安全计算中时,上述门限数量通常与分布式网络中部署的需要参与多方计算的计算节点的数量相同。
[0103] 当秘密分享算法用于多方安全计算时,各计算节点会将输入数据分别拆分成share,并互相交换share;然后,各计算节点会分别对本地收集到的多个share进行运算,得到与多方安全计算最终的计算结果对应的share(即最终运算结果的一个分片);最后,各计算节点合并生成的所有与最终的计算结果对应的share,得到最终的计算结果,完成多方安全计算。
[0104] 如果上述分布式网络中部署的各计算节点,所搭载的多方安全计算算法为秘密分享算法,上述目标计算节点在从部署的数据源中读取到需要参与多方安全计算的隐私数据S之后,首先可以按照秘密分享算法,将上述隐私数据分割为d个share(随机数)。
[0105] 具体地,基于秘密分享算法,可以在预设的随机数取值空间P中,采用随机抽取的方式,生成d-1个独立的随机数作为前d-1个share,记为S1,S2,S3,…Sd-1。
[0106] 例如,若隐私数据S是一个64bit的整型数据,则P=264;最终生成的d-1个独立的随机数,则均为从[0,264-1]的取值空间中随机抽取的一个取值。
[0107] 进一步的,可以将上述d-1个随机数与隐私数据S一起进行运算,并将运算得到的运算结果,作为第d个share,记为Sd。
[0108] 其中,将上述d-1个随机数与隐私数据S一起进行运算的运算规则,通常取决于具体的秘密分享算法;
[0109] 例如,以秘密分享算法中最常用的trivial additive secret sharing算法为例,通常要求对隐私数据分割得到的d个share要满足以下表达时:
[0110] S=S1+S2+S3+…+Sd%P
[0111] 其中,%为取模运算符。
[0112] 基于以上表达式,Sd=S-(S1+S2+S3+…+Sd-1)%P。在这种算法下,可以通过将隐私数据S,与前d-1个share的和与取值空间P的取模计算结果进行相减得到Sd。
[0113] 当基于秘密分享算法完成对隐私数据S的数据分割后,上述目标计算节点可以在本地保留一个share,然后基于秘密分享算法现有的消息交互机制,来构建交互消息,将剩下的share,分别发送给其它参与多方安全计算的各计算节点。
[0114] 其中,上述目标计算节点可以在本地保留第N个share,也可以保留前d-1个share中的任意一个;也即,当上述目标计算节点在本地保留第N个share时,最终仅会将作为前d-1个share的随机作为计算参数;而如果在本地保留前d-1个share中的任意一个,最终会将作为前d-1个share的剩余随机,和上述N-1个随机数与隐私数据S的预算结果作为计算参数。
[0115] 一方面,其它各计算节点,可以收集各计算节点发送的share,按照各计算节点约定好的运算逻辑对收集到的share进行计算,得到一个与最终的计算结果对应的share,并将计算结果向其它各计算节点进行广播;而上述目标计算节点可以收集其它各计算节点广播的计算结果,再按照约定好的运算逻辑对收集到的计算结果再次进行计算,得到对各个计算节点各自持有的隐私数据进行多方安全计算的最终计算结果,然后将上述最终计算结果在本地部署的结果存储系统中进行存储;
[0116] 另一方面,上述目标计算节点,也可以收集其它各计算节点发送的share,按照约定好的运算逻辑对收集到的share进行计算,得到一个与最终的计算结果对应的share,并将计算结果向其它各计算节点进行广播;而其它各计算结果可以收集各计算节点广播的计算结果,再按照约定好的运算逻辑对收集到的计算结果再次进行计算,得到对持有的隐私数据S进行多方安全计算的最终结果;
[0117] 其中,各计算节点约定好的运算逻辑,通常取决于实际的多方安全计算需求,在本说明书中不进行特别限定。
[0118] 2)同态加密算法
[0119] 同态加密(homomorphic encryption)算法,是一类能在密文状态下进行数据运算的加密算法。在不解密也不需使用解密密钥情况下,对密文进行计算,也可以得到基于明文进行计算得到的计算结果的密文。
[0120] 例如,对a的同态加密密文E(a)和b的同态加密密文E(b)进行运算,可以得到a+b的密文E(a+b),且操作过程中不会泄露a、b或a+b,也不需要使用解密的密钥对密文进行解密。
[0121] 如果上述分布式网络中部署的各计算节点,所搭载的多方安全计算算法为同态加密算法,上述目标计算节点在从部署的数据源中读取到需要参与多方安全计算的隐私数据S之后,首先可以按照同态加密算法,生成一对同态加密的加密密钥PK和解密密钥SK,并基于生成的加密密钥PK对上述隐私数据进行加密生成密文数据,然后基于同态加密算法现有的消息交互机制,来构建交互消息,将生成的上述密文数据,分别发送给其它参与多方安全计算的各计算节点。
[0122] 一方面,其它各计算节点,也可以采用相同的方式,按照同态加密算法,生成一对同态加密的加密密钥PK和解密密钥SK,基于加密密钥PK对从本地部署的数据源中读取的隐私数据进行加密得到密文数据,并收集各计算节点发送的对各自持有的隐私数据进行加密后得到的密文数据,然后将收集到的由其它各计算节点发送的密文数据,和本地生成的密文数据一起按照约定好的运算逻辑进行计算,得到对各个计算节点各自持有的隐私数据进行多方安全计算的最终计算结果对应的密文数据(上述其它各计算节点无法在其本地解密该密文数据)。
[0123] 当得到与最终计算结果对应的密文数据后,其它各计算节点可以将与最终计算结果对应的密文数据,向各节点设备进行广播。而当上述目标计算节点在收到与最终计算结果对应的密文数据后,可以基于上述解密密钥SK对收到的与最终计算结果对应的密文数据进行解密,得到最终计算结果的明文数据,然后将上述最终计算结果的明文数据在本地部署的结果存储系统中进行存储。
[0124] 另一方面,上述目标计算节点,也可以收集其它各计算节点发送的对各自持有的隐私数据进行加密后得到的密文数据,然后将收集到的由其它各计算节点发送的密文数据,和本地生成的密文数据一起按照约定好的运算逻辑进行计算,得到对各个计算节点各自持有的隐私数据进行多方安全计算的最终计算结果对应的密文数据(上述目标计算节点无法在其本地解密该密文数据)。
[0125] 当得到与最终计算结果对应的密文数据后,上述目标计算节点可以将与最终计算结果对应的密文数据,向其它各计算节点进行广播。而当其它各计算节点在收到与最终计算结果对应的密文数据后,可以基于上述解密密钥SK对收到的与最终计算结果对应的密文数据进行解密,得到最终计算结果的明文数据,然后将上述最终计算结果的明文数据在本地部署的结果存储系统中进行存储。
[0126] 其中,需要说明的是,各计算节点约定好的运算逻辑,仍然取决于实际的多方安全计算需求,在本说明书中不进行特别限定。但基于同态加密算法,任何运算逻辑,都可以分解为加法同态加密、乘法同态加密等基础的运算。
[0127] 3)混淆电路算法
[0128] 混淆电路算法,原理是通过用计算机模拟ASIC集成电路,来实现多方安全计算。任何多方安全计算任务,都可以用为其设计的ASIC集成电路来实现。即可以按照多方安全计算任务对应的运算逻辑,利用多个运算门(与门、异或门等基础运算门)连接起来,模拟出与上述运算逻辑对应的门电路,然后使用门电路来进行运算。
[0129] 基于混淆电路算法,通常将多方安全计算任务对应的运算逻辑表示为门电路,并对上述门电路的每条运算线路进行加密,加密后的上述门电路称为混淆电路。最终通过用计算机来执行混淆电路的运算,来实现多方安全计算。
[0130] 在基于混淆电路算法来实现多方安全计算时,参与多方安全计算的计算节点,通常会被划分为混淆电路生成方,和混淆电路的执行方两种角色。
[0131] 例如,在一个由K个计算节点参与的多方安全计算中,通常会由其中的K-1个计算节点作为电路生成方,来生成混淆电路,而剩余的一个计算节点作为混淆电路的执行方,来执行混淆电路的运算,来得到最终的计算结果。
[0132] 如果上述分布式网络中部署的各计算节点,所搭载的多方安全计算算法为混淆电路算法,首先可以将与多方安全计算任务对应的运算逻辑,表示为门电路;
[0133] 其中,由于该运算逻辑需要由多个计算节点基于各自持有的隐私数据来共同参数,对于每一个计算节点而言,可能仅能够对应上述门电路中的一个或者其中几个运算门,其持有的隐私数据可能仅能够作为上述门电路中的一个或者其中几个运算门的输入数据。
[0134] 进一步的,上述目标计算节点在从部署的数据源中读取到需要参与多方安全计算的隐私数据S之后,可以将读取到的隐私数据S,作为该目标计算节点在上述门电路中对应的运算门的输入值,在上述运算门中进行运算,得到上述运算门的输出值。
[0135] 其中,在实际应用中,上述门电路中每个运算门的运算逻辑,都可以用真值表来表示和执行。一张真值表用于记录该运算门的输入线路取任何输入值时,输出线路得到的输出值。真值表中的每一行对应输入线路的一种输入值组合。而为了在门电路的运算中隐藏该运算门中各运算线路的真实值:
[0136] 一方面,上述目标计算节点,可以基于混淆电路算法搭载的随机函数生成随机数,对上述运算门的真值表中的输入值和输出值分别进行替换;其中,替换后的随机数称之为混淆值。
[0137] 另一方面,上述目标计算节点,还可以将上述运算门的输入值对应的混淆值作为密钥,对上述运算门的真值表中的输出值的混淆值进行加密得到密文数据,并基于该密文数据对原来真值表中的输出值的混淆值进行替换,得到一张混淆真值表;或者,也可以基于该密文数据单独创建一张混淆真值表(即混淆真值表中仅包括该密文数据)。
[0138] 第三方面,上述目标计算节点,还可以打乱上述混淆真值表中的每一行的顺序。
[0139] 当上述目标计算节点完成以上三方面的针对上述门电路中对应的运算门的真值表的混淆替换后,此时上述混淆电路生成完毕,上述目标计算节点可以基于混淆电路现有的消息交互机制,来构建交互消息,上述目标计算节点在上述门电路中对应的运算门的输入值对应的混淆值,以及将上述运算门的输入值对应的混淆值作为密钥,对上述运算门的真值表中的输出值的混淆值进行加密得到的密文数据作为计算参数,发送给作为混淆电路执行方的计算节点。
[0140] 例如,在实际应用中,在基于混淆电路算法来实现多方安全计算时,通常会将混淆电路算法与不经意传输技术进行结合,上述目标计算节点在向作为作为混淆电路执行方的计算节点发送计算参数时,一方面,可以通常可以将上述混淆真值表采用明文发送的形式,直接发送给作为混淆电路执行方的计算节点;另一方面,可以采用不经意传输技术,将上述目标计算节点在上述门电路中对应的运算门的输入值对应的混淆值,通过模糊化的传送方式,发送给作为混淆电路执行方的计算节点;其中,基于不经意传输技术向作为混淆电路执行方的计算节点传输数据的具体实施过程,在本说明书中不再进行详述,本领域技术人员在将本说明书的技术方案付诸实现时,可以参考相关技术中的记载。
[0141] 而作为混淆电路执行方的计算节点,在收到各计算节点发送的计算参数后,可以根据各计算节点在上述门电路中对应的运算门的输入值对应的混淆值,对与各计算节点在上述门电路中对应的运算门的混淆真值表中记录的密文数据进行解密,得到各计算节点在上述门电路中对应的运算门的输出值的混淆值。
[0142] 最后,作为混淆电路执行方的计算节点,可以基于最终解密出的上述门电路中的各个运算门的输出值的混淆值后,可以逐级进行运算,得到上述门电路最终的输出值对应的混淆值,然后可以将该混淆值作为最终的计算结果,发送给其它的各计算节点。
[0143] 上述目标计算计算在收到与门电路最终的输出值对应的混淆值后,可以查询真值表,基于混淆值与真正的输出值之间的对应关系,得到与该混淆值对应的输出值,并将该输出值作为多方安全计算的最终计算结果的原始值,在本地部署的结果存储系统中进行存储。
[0144] 对于上述分布式网络中部署的各计算节点而言,当完成了以上示出的多方安全计算过程,还可以将存储在上述结果存储系统中的计算结果,向计算节点的管理用户进行可视化输出。
[0145] 在本说明书中,对于搭载诸如秘密分享、同态加密、混淆电路等多方安全计算算法的计算节点之间,通常传输携带大量的密文和/或随机数的交互消息,而即便对于多方安全计算算法的使用者而言,通常也很难理解以上交互消息中携带的密文和/或随机数的具体含义
[0146] 基于此,在本说明书中,当上述目标节点设备在基于搭载的多方安全计算算法的现有的消息交互机制,通过构建交互消息,将生成的计算参数发送给参与多方安全计算的各计算节点时,还可以在本地创建与发送的计算参数相关的审计日志,并将创建的审计日志,在本地部署的日志存储系统中进行存储。
[0147] 其中,上述审计日志,具体可以用于记录向参与多方安全计算的各计算节点发送的计算参数相关的描述信息;
[0148] 在示出的一种实施方式中,计算节点需要向其它参与多方安全计算的计算节点发送的计算参数,通常是携带在该计算节点所构建的交互消息中的消息字段中,因此可以在审计日志中记录计算节点所构建的交互消息中,每一个字段的具体含义,以及与每一个字段相关的描述信息,以供审计使用。
[0149] 相应的,当上述目标节点设备在接收到由其它各计算节点通过构建的交互消息发送的计算参数时,也可以在本地创建与其它各计算节点发送的计算参数相关的审计日志,并将创建的审计日志,在本地部署的日志存储系统中进行存储。
[0150] 例如,对于部署在上述分布式网络中的各计算节点而言,通常搭载了同一多方安全计算算法,因此各计算节点构建的交互消息通常遵循相同的消息格式;因此,上述目标计算节点在收到其它各计算节点发送的交互消息后,可以按照标准的消息格式对该交互消息进行解析,生成相应的审计日志,并在审计日志中记录该交互消息中的每一个字段的具体含义。
[0151] 在本说明书中,上述审计日志中记录的与上述计算参数相关的描述信息,可以与上述计算参数所包含的内容相对应。
[0152] 各计算节点通过交互消息向其它计算节点发送的计算参数,通常包括参与多方安全计算的随机数;和/或,参与多方安全计算的密文数据;相应的,最终生成的审计日志中记录的与上述计算参数相关的描述信息,则可以包括与参与多方安全计算的随机数对应的描述信息;和/或,与参与多方安全计算的密文数据对应的描述信息。
[0153] 其中,上述描述信息的具体内容,在本说明书中不进行特别限定;在实际应用中,可以基于计算节点的管理用户对计算节点搭载的多方安全计算算法的具体审计需求。
[0154] 在示出的一种实施方式中,最终生成的审计日志中记录的与上述计算参数相关的描述信息,可以包括与参与多方安全计算的随机数对应的随机数生成规则;和/或,与参与多方安全计算的密文数据对应的密钥;
[0155] 其中,上述随机数生成规则,具体可以涵盖与上述随机数的生成方式相关的任意形式的描述信息;
[0156] 例如,上述随机数在计算节点本地随机生成、由计算节点将本地生成的随机数和其它数据通过某运算得到、从其它计算节点或者可信的随机源接收到的随机数、从其它计算节点或者可信的随机源接收到的随机数和其它数据通过某运算得到、由计算节点将在本地生成的随机数和接收到的随机数通过某运算得到,等等,在本说明书中不再进行一一列举。
[0157] 而与参与多方安全计算的密文数据对应的密钥,具体可以包括对该密文数据进行加密时所使用的加密密钥;
[0158] 其中,在一些场景下,除了加密密钥以外,还可以携带对上述密文数据进行解密的解密密钥;甚至,在上述审计日志中,还可以携带上述密文数据的明文数据。
[0159] 例如,在一种实现方式中,计算节点创建的与本地发送给其它各计算节点的计算参数相关的审计日志,和计算节点创建的与接收到的其它各计算节点发送的计算参数相关的审计日志,所记录的与计算参数相关的描述信息,可以存在一定的差异。
[0160] 由于多方安全计算节点,各个计算节点采用的输入数据,通常需要向其它参与多方安全计算的计算节点严格保密;因此,计算节点创建的与它各计算节点发送的计算参数相关的审计日志中,如果需要记录与密文数据对应的密钥时,可以仅记录与该密文数据相关的加密密钥。而对于计算节点创建的与本地发送给其它各计算节点的计算参数相关的审计日志中,则除了可以记录该密文数据的加密密钥,还可以记录该密文数据的解密密钥,以及该密文数据的明文数据。
[0161] 通过这种方式,使得计算节点的管理用户,可以基于审计日志记录的解密密钥,对该计算节点在本地生成的作为计算参数的密文数据进行解密后,来进一步校验解密后的计算参数的明文数据,与审计日志中记录的计算参数的明文数据是否一致,来审计该算节点搭载的多方安全计算算法,是否在用户不知情的情况下,在传输的计算参数中恶意添加了隐私数据,以此来提升算法的可审计性。
[0162] 在本说明书中,对于上述分布式网络中部署的各计算节点而言,可能共同使用由多方安全计算算法的提供方所提供的多方安全算法,虽然多方安全算法本身是用于保护隐私数据的算法,但不正确甚至恶意的算法实现,仍然可能会存在隐私数据泄露的风险。
[0163] 例如,在一种场景下,恶意的多方安全计算算法,可能并不会按照算法设计使用随机生成的随机数作为密钥,来加密需要向其它各计算节点传输的隐私数据,而是会在使用用户不知情的情况下,选择使用其它参与方已知的密钥来加密需要向其它各计算节点传输的隐私数据,使得接收方可以通过已知的密钥解密数据,获得其它计算节点持有的隐私数据;
[0164] 又如,在另一种场景下,恶意的多方安全计算算法,可能会在使用用户不知情的情况下,基于计算节点持有的隐私数据来构造假随机数,然后利用假随机数向其它计算节点发送隐私数据。
[0165] 在本说明书中,对于上述分布式网络中部署的各计算节点而言,可以基于上述日志存储系统中存储的审计日志,对各计算节点搭载的多方安全算法进行隐私审计(也可以仅对本节点搭载的多方安全算法,或者各计算节点中某一指定的计算节点搭载的多方安全算法进行隐私审计),来确定各计算节点发送的计算参数,是否存在隐私泄露的风险。
[0166] 当然,在实际应用中,对各计算节点搭载的多方安全算法进行隐私审计,也可以由第三方的审计节点来完成;在这种情况下,上述分布式网络中部署的各计算节点,可以将上述日志存储系统中所述审计日志,发送给上述审计节点(比如可以主动发送审计日志,也可以由审计节点来主动调用审计日志),由上述第三方的审计节点基于接收到的审计日志,对各计算节点搭载的多方安全算法进行隐私审计,来确定各计算节点发送的计算参数,是否存在隐私泄露的风险。
[0167] 例如,在一种场景下,各计算节点搭载由提供商提供的多方安全计算算法,并由各计算节点的运营方,来独立的部署审计节点,用于对提供商提供的多方安全计算算法进行隐私审计。
[0168] 其中,对各计算节点搭载的多方安全算法进行隐私审计的审计逻辑,取决于上述审计日志中记录的与计算参数相关的描述信息的具体内容;
[0169] 在示出的一种实施方式中,以上述计算参数为参与多方安全计算的随机数;以及,与所述计算参数相关的描述信息为,与参与多方安全计算的随机数对应的随机数生成规则为例:
[0170] 在这种场景下,计算节点可以从本地部署的日志存储系统中,读取参与多方安全计算的各计算节点发送的作为计算参数的随机数对应的审计日志,并基于读取到的审计日志中记录的,与上述随机数对应的随机数生成规则,来校验该随机数是否为基于其它各计算节点持有的隐私数据构建的随机数;
[0171] 例如,在实际应用中,可以计算上述随机数生成规则中记录的,在生成上述随机数时所使用的数据的摘要值(比如hash值),将计算得到的摘要与其它各计算节点持有的隐私数据的摘要值进行比较,来确定上述随机数是否为基于其它各计算节点持有的隐私数据构建的假随机数。
[0172] 如果经过校验确认,上述随机数为基于其它各计算节点持有的隐私数据构建的随机数,作为计算参数的该随机数则存在隐私泄露的风险;反之,如果经过校验确认,生成上述随机数的数据源为合法数据源,上述随机数并不是基于其它各计算节点持有的隐私数据构建的随机数,作为计算参数的该随机数则并不存在隐私泄露的风险。
[0173] 通过这种方式,使得计算节点通过对本地部署的日志存储系统中的审计日志进行简易的审计,就可以确认作为计算参数的随机数是否为基于其它各计算节点持有的隐私数据构建的假随机数,从而可以及时发现隐私泄露的风险。
[0174] 在示出的另一种实施方式中,以上述计算参数为参与多方安全计算的密文数据;以及,与所述计算参数相关的描述信息为,与参与多方安全计算的密文数据对应的密钥为例:
[0175] 在这种场景下,计算节点可以从本地部署的日志存储系统中,读取参与多方安全计算的各计算节点发送的作为计算参数的密文数据对应的审计日志,并基于读取到的审计日志中记录的,与上述密文数据对应的密钥,来校验该密钥是否为其它各计算节点持有的已知密钥;
[0176] 例如,在实际应用中,可以将上述审计日志中记录的与上述密文数据对应的密钥,与其它各计算节点持有的已知密钥进行比较,来确定上述密文数据对应的密钥是否为其它各计算节点持有的已知密钥。
[0177] 如果经过校验确认,上述密文数据对应的密钥为其它各计算节点持有的已知密钥,作为计算参数的该随机数则存在隐私泄露的风险;反之,如果经过校验确认,上述密文数据对应的密钥并不匹配其它各计算节点持有的已知密钥,作为计算参数的该随机数则并不存在隐私泄露的风险。
[0178] 通过这种方式,使得计算节点通过对本地部署的日志存储系统中的审计日志进行简易的审计,就可以确认作为计算参数的密文数据对应的密钥,是否为其它各计算节点持有的已知密钥,从而可以及时发现隐私泄露的风险。
[0179] 当然,在一些场景下,如果上述审计日志中,除了携带加密密钥以外,还携带了对上述密文数据进行解密的解密密钥,以及上述密文数据的明文数据,此时计算节点还可以基于读取到的审计日志中记录的,与上述密文数据对应的解密密钥,以及上述密文数据的明文数据,进一步对上述密文数据进行安全校验,来确认上述密文数据是否被搭载的多方安全计算算法,恶意添加了隐私数据;
[0180] 例如,在实际应用中,可以基于审计日志记录的解密密钥,对该计算节点在本地生成的作为计算参数的密文数据进行解密后,来进一步校验解密后的计算参数的明文数据,是否与审计日志中记录的计算参数的明文数据是否一致,来审计该计算节点搭载的多方安全计算算法,是否在用户不知情的情况下,在传输的作为计算参数的密文数据中恶意添加了隐私数据;如果一致,表明该计算节点搭载的由提供商提供的多方安全计算算法的实现逻辑,与该多方安全计算算法的设计一致,上述密文数据不存在隐私泄露的风险;如果不一致,表明该计算节点搭载的由算法提供方提供的多方安全计算算法,可能在用户不知情的情况下,在传输的计算参数中恶意添加了隐私数据,此时上述密文数据存在隐私泄露的风险。
[0181] 通过这种方式,使得计算节点通过对本地部署的日志存储系统中的审计日志进行简易的审计,就可以确认作为计算参数的密文数据中,是否被搭载的多方安全算法恶意添加了隐私数据,从而可以及时发现隐私泄露的风险。
[0182] 通过以上技术方案,由于参与多方安全计算的各计算节点,在基于搭载的多方安全计算算法生成了计算参数之后,还可以创建并存储与计算参数对应的审计日志,并在审计日志中记录与所述计算参数相关的描述信息,使得各计算节点的管理用户可以通过查看审计日志,就可以了解到多方安全计算算法生成的计算参数的详细信息,因此对于多方安全计算算法的使用方而言,可以获得更加便于对算法进行审计的审计信息;而对于多方安全计算算法的提供方而言,可以在不公开多方安全计算算法的源代码的前提下,使得上述多方安全计算算法变得透明可审计。
[0183] 与上述方法实施例相对应,本说明书还提供了一种多方安全计算装置的实施例。本说明书的多方安全计算装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本说明书的多方安全计算装置所在电子设备的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0184] 图3是本说明书一示例性实施例示出的一种多方安全计算装置的框图。
[0185] 请参考图3,所述多方安全计算装置30可以应用在前述图2所示的电子设备中,包括有:生成模块301、发送模块302、和创建模块303。
[0186] 生成模块301,基于多方安全计算算法生成与持有的隐私数据相关的计算参数;
[0187] 发送模块302,将所述计算参数发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算;
[0188] 创建模块303,创建对应于所述计算参数的审计日志;其中,所述审计日志记录了与所述计算参数相关的描述信息。
[0189] 在本实施例中,所述装置30还包括:
[0190] 收集模块304(图3中未示出),收集参与多方安全计算的其它各计算节点发送的计算参数,基于收集到的由其它各计算节点发送的计算参数执行多方安全计算;
[0191] 所述创建模块303进一步:
[0192] 创建对应于由所述其它各计算节点发送的计算参数的审计日志,并存储所述审计日志;其中,所述审计日志记录了与所述计算参数相关的描述信息。
[0193] 在本实施例中,所述计算参数,包括:
[0194] 参与多方安全计算的随机数;和/或,
[0195] 参与多方安全计算的密文数据。
[0196] 在本实施例中,与所述计算参数相关的描述信息,包括:
[0197] 与参与多方安全计算的随机数对应的随机数生成规则;和/或,
[0198] 与参与多方安全计算的密文数据对应的密钥。
[0199] 在本实施例中,所述装置30还包括:
[0200] 审计模块305(图3中未示出),基于所述审计日志对参与多方安全计算的计算节点发送的计算参数进行隐私审计,确认所述计算节点发送的计算参数是否存在隐私泄露风险;
[0201] 或者,将所述审计日志发送至第三方的审计节点,以由所述审计节点对参与多方安全计算的计算节点发送的计算参数进行隐私审计,确认所述计算节点发送的计算参数是否存在隐私泄露风险。
[0202] 在本实施例中,所述审计模块305进一步:
[0203] 基于所述审计日志中记录的,与参与多方安全计算的计算节点发送的随机数对应的随机数生成规则,校验所述随机数是否为基于其它各计算节点持有的隐私数据构建的随机数;
[0204] 如果是,确认所述计算节点发送的计算参数存在隐私泄露风险;
[0205] 如果否,确认所述计算节点发送的计算参数不存在隐私泄露风险。
[0206] 在本实施例中,所述审计模块305进一步:
[0207] 基于所述审计日志中记录的,参与多方安全计算的计算节点发送的密文数据对应的密钥,校验所述所述密钥是否为其它各计算节点持有的已知密钥;
[0208] 如果是,确认所述计算节点发送的计算参数存在隐私泄露风险;
[0209] 如果否,确认所述计算节点发送的计算参数不存在隐私泄露风险。
[0210] 上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0211] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0212] 上述实施例阐明的系统、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
[0213] 与上述方法实施例相对应,本说明书还提供了一种电子设备的实施例。该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
[0214] 在本实施例中,通过读取并执行所述存储器存储的与多方安全计算的控制逻辑对应的机器可执行指令,所述处理器被促使:
[0215] 基于多方安全计算算法生成与持有的隐私数据相关的计算参数;
[0216] 将所述计算参数发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算;以及,
[0217] 创建对应于所述计算参数的审计日志;其中,所述审计日志记录了与所述计算参数相关的描述信息。
[0218] 在本实施例中,通过读取并执行所述存储器存储的与多方安全计算的控制逻辑对应的机器可执行指令,所述处理器被促使:
[0219] 收集参与多方安全计算的其它各计算节点发送的计算参数,基于收集到的由其它各计算节点发送的计算参数执行多方安全计算;以及,
[0220] 创建对应于由所述其它各计算节点发送的计算参数的审计日志,并存储所述审计日志;其中,所述审计日志记录了与所述计算参数相关的描述信息。
[0221] 在本实施例中,通过读取并执行所述存储器存储的与多方安全计算的控制逻辑对应的机器可执行指令,所述处理器被促使:
[0222] 基于所述审计日志对参与多方安全计算的计算节点发送的计算参数进行隐私审计,确认所述计算节点发送的计算参数是否存在隐私泄露风险;
[0223] 或者,将所述审计日志发送至第三方的审计节点,以由所述审计节点对参与多方安全计算的计算节点发送的计算参数进行隐私审计,确认所述计算节点发送的计算参数是否存在隐私泄露风险。
[0224] 在本实施例中,通过读取并执行所述存储器存储的与多方安全计算的控制逻辑对应的机器可执行指令,所述处理器被促使:
[0225] 基于所述审计日志中记录的,与参与多方安全计算的计算节点发送的随机数对应的随机数生成规则,校验所述随机数是否为基于其它各计算节点持有的隐私数据构建的随机数;
[0226] 如果是,确认所述计算节点发送的计算参数存在隐私泄露风险;
[0227] 如果否,确认所述计算节点发送的计算参数不存在隐私泄露风险。
[0228] 在本实施例中,通过读取并执行所述存储器存储的与多方安全计算的控制逻辑对应的机器可执行指令,所述处理器被促使:
[0229] 基于所述审计日志中记录的,参与多方安全计算的计算节点发送的密文数据对应的密钥,校验所述所述密钥是否为其它各计算节点持有的已知密钥;
[0230] 如果是,确认所述计算节点发送的计算参数存在隐私泄露风险;
[0231] 如果否,确认所述计算节点发送的计算参数不存在隐私泄露风险。
[0232] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
[0233] 应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
[0234] 以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。