用于安全实时N方计算的系统、方法和计算机程序产品与流程

文档序号:31572617发布日期:2022-09-20 22:49阅读:53来源:国知局
用于安全实时N方计算的系统、方法和计算机程序产品与流程
用于安全实时n方计算的系统、方法和计算机程序产品
1.相关申请交叉引用
2.本技术要求2020年12月11日提交的第63/124,159号美国临时专利申请的优先权,其公开内容特此以全文引用的方式并入本文中。
技术领域
3.所公开的实施例或方面大体上涉及公平交换计算机协议,并且在一个特定实施例或方面中,涉及一种用于安全实时n方计算的系统、方法和计算机程序产品。


背景技术:

4.安全多方计算(mpc)允许一组各方对其输入执行联合计算,所述联合计算仅披露最终输出而不披露其它内容。这些方可能相互不信任,并且需要安全协议来确保公平交换。然而,在许多(例如,大多数、多个、一半等)参与方腐败的设定中,安全计算通常无法提供公平性。例如,在两方设定中,恶意方可以在接收到输出之后中止安全计算协议,从而使得另一方无法获得输出。另外,使用第三方作为此类多方计算的中间方可能会在涉及的各方数量、需要的通信数量等方面浪费资源,并且第三方可能会与一方串通,从而威胁到安全性和公平性。需要解决安全计算的这些和其它不足。


技术实现要素:

5.因此,且一般来说,提供了一种用于安全实时n方计算的改进的系统、方法和计算机程序产品。
6.根据一些非限制性实施例或方面,提供了一种用于第一方与第二方之间的多方计算的系统。所述系统包括与所述第一方相关联的第一计算装置和与所述第一计算装置相关联的可信执行环境(tee)。所述第一计算装置被编程或配置成向所述tee传送第一计算输入和一次性密钥的第一部分。所述第一计算装置还被编程或配置成从所述tee接收基于所述第一计算输入和第二计算输入的计算的加密输出。所述第二计算输入和所述一次性密钥的第二部分由与所述第二方相关联的第二计算装置传送到所述tee。所述加密输出由所述tee用所述一次性密钥来加密。所述第一计算装置进一步被编程或配置成将所述加密输出传送到所述第二计算装置,以及从所述第二计算装置接收指示所述第二计算装置接收到所述加密输出的数字签名。所述第一计算装置进一步被编程或配置成将所述一次性密钥的所述第一部分传送到所述第二计算装置。所述第一计算装置进一步被编程或配置成:(i)响应于从所述第二计算装置接收到所述一次性密钥的所述第二部分,从所述一次性密钥的所述第一部分和所述一次性密钥的所述第二部分确定所述一次性密钥,并且通过用所述一次性密钥解密所述加密输出来确定所述计算;或(ii)响应于没有从所述第二计算装置接收到所述一次性密钥的所述第二部分,使用所述tee以及所述第一计算装置和所述第二计算装置均可访问的分类账执行回退计算过程以确定所述计算。
7.在另外的非限制性实施例或方面中,所述第一计算装置可进一步被编程或配置成
在所述回退计算过程中:将从所述第二计算装置接收到的所述一次性密钥的所述第一部分和所述数字签名发布到所述分类账;从所述分类账接收发布证明;将所述发布证明输入到所述tee;从所述tee接收所述一次性密钥;以及通过用所述一次性密钥解密所述加密输出来确定所述计算。
8.在另外的非限制性实施例或方面中,由所述第一计算装置发布到所述分类账的所述一次性密钥的所述第一部分可用与所述第二计算装置相关联的公钥加密。
9.在另外的非限制性实施例或方面中,所述一次性密钥可由所述tee从所述一次性密钥的所述第一部分、所述一次性密钥的所述第二部分以及与所述计算的个例相关联的唯一随机数生成。
10.在另外的非限制性实施例或方面中,所述一次性密钥的所述第一部分可从与所述第一计算装置相关联的私钥生成,并且所述一次性密钥的所述第二部分可从与所述第二计算装置相关联的私钥生成。
11.在另外的非限制性实施例或方面中,所述一次性密钥的所述第一部分和所述一次性密钥的所述第二部分可在第一时间段内传送到所述tee,并且可被配置成在后续时间段内在多方计算的连续个例内生成多个一次性密钥。
12.在另外的非限制性实施例或方面中,所述分类账可包括仅附加区块链(append-only blockchain),并且可被配置成仅可由促进所述计算的计算装置访问。
13.根据非限制性实施例或方面,提供了一种用于第一方与第二方之间的多方计算的计算机程序产品。所述计算机程序产品存储在与所述第一方相关联的第一计算装置上,并且包括至少一个非瞬态计算机可读介质,所述至少一个非瞬态计算机可读介质包括程序指令。所述程序指令在由所述第一计算装置的至少一个处理器执行时使得所述至少一个处理器向与所述第一计算装置相关联的可信执行环境(tee)传送第一计算输入和一次性密钥的第一部分。所述程序指令进一步使得所述至少一个处理器从所述tee接收基于所述第一计算输入和第二计算输入的计算的加密输出。所述第二计算输入和所述一次性密钥的第二部分由与所述第二方相关联的第二计算装置传送到所述tee。所述加密输出由所述tee用所述一次性密钥来加密。所述程序指令进一步使得所述至少一个处理器向所述第二计算装置传送所述加密输出,并且从所述第二计算装置接收指示所述第二计算装置接收到所述加密输出的数字签名。所述程序指令进一步使得所述至少一个处理器向所述第二计算装置传送所述一次性密钥的所述第一部分。所述程序指令进一步使得所述至少一个处理器:(i)响应于从所述第二计算装置接收到所述一次性密钥的所述第二部分,从所述一次性密钥的所述第一部分和所述一次性密钥的所述第二部分确定所述一次性密钥,并且通过用所述一次性密钥解密所述加密输出来确定所述计算;或(ii)响应于没有从所述第二计算装置接收到所述一次性密钥的所述第二部分,使用所述tee以及所述第一计算装置和所述第二计算装置均可访问的分类账执行回退计算过程以确定所述计算。
14.在另外的非限制性实施例或方面中,所述程序指令可进一步使得所述至少一个处理器在所述回退计算过程中:将从所述第二计算装置接收到的所述一次性密钥的所述第一部分和所述数字签名发布到所述分类账;从所述分类账接收发布证明;将所述发布证明输入到所述tee;从所述tee接收所述一次性密钥;以及通过用所述一次性密钥解密所述加密输出来确定所述计算。
15.在另外的非限制性实施例或方面中,由所述至少一个处理器发布到所述分类账的所述一次性密钥的所述第一部分可用与所述第二计算装置相关联的公钥加密。
16.在另外的非限制性实施例或方面中,所述一次性密钥可由所述tee从所述一次性密钥的所述第一部分、所述一次性密钥的所述第二部分以及与所述计算的个例相关联的唯一随机数生成。
17.在另外的非限制性实施例或方面中,所述一次性密钥的所述第一部分可从与所述第一计算装置相关联的私钥生成,并且所述一次性密钥的所述第二部分可从与所述第二计算装置相关联的私钥生成。
18.在另外的非限制性实施例或方面中,所述一次性密钥的所述第一部分和所述一次性密钥的所述第二部分可在第一时间段内传送到所述tee,并且可被配置成在后续时间段内在多方计算的连续个例内生成多个一次性密钥。
19.在另外的非限制性实施例或方面中,所述分类账可包括仅附加区块链,并且可被配置成仅可由促进所述计算的计算装置访问。
20.根据非限制性实施例或方面,提供了一种用于第一方与第二方之间的多方计算的计算机实施的方法。所述方法包括用与所述第一方相关联的第一计算装置的至少一个处理器向与所述第一计算装置相关联的可信执行环境(tee)传送第一计算输入和一次性密钥的第一部分。所述方法还包括用所述第一计算装置的至少一个处理器从所述tee接收基于所述第一计算输入和第二计算输入的计算的加密输出。所述第二计算输入和所述一次性密钥的第二部分由与所述第二方相关联的第二计算装置传送到所述tee。所述加密输出由所述tee用所述一次性密钥来加密。所述方法进一步包括用所述第一计算装置的至少一个处理器将所述加密输出传送到所述第二计算装置。所述方法进一步包括用所述第一计算装置的至少一个处理器从所述第二计算装置接收指示所述第二计算装置接收到所述加密输出的数字签名。所述方法进一步包括用所述第一计算装置的至少一个处理器将所述一次性密钥的所述第一部分传送到所述第二计算装置。所述方法进一步包括响应于没有从所述第二计算装置接收到所述一次性密钥的所述第二部分,用所述第一计算装置的至少一个处理器使用所述tee以及所述第一计算装置和所述第二计算装置均可访问的分类账执行回退计算过程以确定所述计算。
21.在一些非限制性实施例或方面中,所述回退计算过程可包括:用所述第一计算装置的至少一个处理器将从所述第二计算装置接收到的所述一次性密钥的所述第一部分和所述数字签名发布到所述分类账;用所述第一计算装置的至少一个处理器从所述分类账接收发布证明;用所述第一计算装置的至少一个处理器将所述发布证明输入到所述tee;用所述第一计算装置的至少一个处理器从所述tee接收所述一次性密钥;以及用所述第一计算装置的至少一个处理器,通过用所述一次性密钥解密所述加密输出来确定所述计算。
22.在一些非限制性实施例或方面中,发布到所述分类账的所述一次性密钥的所述第一部分可用与所述第二计算装置相关联的公钥来加密。
23.在一些非限制性实施例或方面中,所述一次性密钥可由所述tee从所述一次性密钥的所述第一部分、所述一次性密钥的所述第二部分以及与所述计算的个例相关联的唯一随机数生成。
24.在一些非限制性实施例或方面中,所述一次性密钥的所述第一部分可从与所述第
一计算装置相关联的私钥生成,并且所述一次性密钥的所述第二部分可从与所述第二计算装置相关联的私钥生成。
25.在一些非限制性实施例或方面中,所述一次性密钥的所述第一部分和所述一次性密钥的所述第二部分可在第一时间段内传送到所述tee,并且可被配置成在后续时间段内在多方计算的连续个例内生成多个一次性密钥。
26.根据非限制性实施例或方面,提供一种用于多于两个方之间的多方计算的计算机实施的方法。所述方法包括用第一计算装置的至少一个处理器将第一输入传送到多个tee中的每一者。所述方法进一步包括用所述第一计算装置的至少一个处理器从所述多个tee中的tee接收由所述tee完成的关于所述第一输入和由多个其它方计算装置传送到所述tee的多个其它输入的计算的加密输出。所述多个其它方计算装置的数量大于所述多个tee的数量。所述多个其它方计算装置的每一子集与所述多个tee中的tee相关联。所述方法进一步包括用所述第一计算装置的至少一个处理器以及响应于接收到所述加密输出,将第一方签名广播到与所述多个tee中的tee相关联的所述多个其它方计算装置中的每一者。所述方法进一步包括用所述第一计算装置的至少一个处理器以及响应于所述多个其它方计算装置接收到所述加密输出,从所述多个其它方计算装置中的每一者接收另一方签名。所述方法进一步包括用所述第一计算装置的至少一个处理器将所述第一输入传送到不与所述多个tee中的tee相关联的所述多个其它方计算装置中的每一者。所述方法进一步包括响应于从所述多个其它方计算装置中的另一方计算装置接收到所述多个其它输入:用所述第一计算装置的至少一个处理器生成关于所述第一输入和所述多个其它输入的计算。所述方法进一步包括响应于没有从所述多个其它方计算装置中的任一其它方计算装置接收到所述多个其它输入:用所述第一计算装置的至少一个处理器使用所述多个tee中的tee和共享分类账执行回退计算过程以检取关于所述第一输入和所述多个其它输入的计算。
27.根据非限制性实施例或方面,提供一种用于多于两个方之间的多方计算的系统。所述系统包括第一计算装置和与所述第一计算装置相关联的可信执行环境(tee)。所述第一计算装置的至少一个处理器被编程或配置成针对多于两个方之间的多方计算执行上文所描述的方法的一个或多个步骤。
28.根据非限制性实施例或方面,提供一种用于多于两个方之间的多方计算的计算机程序产品。所述计算机程序产品存储在第一计算装置上,并且包括至少一个非瞬态计算机可读介质,所述至少一个非瞬态计算机可读介质包括程序指令。所述程序指令在由所述第一计算装置的至少一个处理器执行时,使得所述至少一个处理器针对多于两个方之间的多方计算执行上文所描述的方法的一个或多个步骤。
29.将在以下编号的条款中阐述本公开的其它非限制性实施例或方面:
30.条款1:一种用于第一方与第二方之间的多方计算的系统,所述系统包括:与所述第一方相关联的第一计算装置;以及与所述第一计算装置相关联的可信执行环境(tee),其中所述第一计算装置被编程或配置成:向所述tee传送第一计算输入和一次性密钥的第一部分;从所述tee接收基于所述第一计算输入和第二计算输入的计算的加密输出,其中所述第二计算输入和所述一次性密钥的第二部分由与所述第二方相关联的第二计算装置传送到所述tee,并且其中所述加密输出由所述tee用所述一次性密钥来加密;向所述第二计算装置传送所述加密输出;从所述第二计算装置接收指示所述第二计算装置接收到所述加密
输出的数字签名;向所述第二计算装置传送所述一次性密钥的所述第一部分;以及(i)响应于从所述第二计算装置接收到所述一次性密钥的所述第二部分,从所述一次性密钥的所述第一部分和所述一次性密钥的所述第二部分确定所述一次性密钥,并且通过用所述一次性密钥解密所述加密输出来确定所述计算;或(ii)响应于没有从所述第二计算装置接收到所述一次性密钥的所述第二部分,使用所述tee以及所述第一计算装置和所述第二计算装置均能访问的分类账执行回退计算过程以确定所述计算。
31.条款2:根据条款1所述的系统,其中所述第一计算装置进一步被编程或配置成在所述回退计算过程中:将从所述第二计算装置接收到的所述一次性密钥的所述第一部分和所述数字签名发布到所述分类账;从所述分类账接收发布证明;将所述发布证明输入到所述tee;从所述tee接收所述一次性密钥;以及通过用所述一次性密钥解密所述加密输出来确定所述计算。
32.条款3:根据条款1或条款2所述的系统,其中由所述第一计算装置发布到所述分类账的所述一次性密钥的所述第一部分用与所述第二计算装置相关联的公钥加密。
33.条款4:根据条款1至3中任一项所述的系统,其中所述一次性密钥由所述tee从所述一次性密钥的所述第一部分、所述一次性密钥的所述第二部分以及与所述计算的个例相关联的唯一随机数生成。
34.条款5:根据条款1至4中任一项所述的系统,其中所述一次性密钥的所述第一部分从与所述第一计算装置相关联的私钥生成,并且其中所述一次性密钥的所述第二部分从与所述第二计算装置相关联的私钥生成。
35.条款6:根据条款1至5中任一项所述的系统,其中所述一次性密钥的所述第一部分和所述一次性密钥的所述第二部分在第一时间段内传送到所述tee,并且被配置成在后续时间段内在多方计算的连续个例内生成多个一次性密钥。
36.条款7:根据条款1至6中任一项所述的系统,其中所述分类账包括仅附加区块链,并且被配置成仅能由促进所述计算的计算装置访问。
37.条款8:一种用于第一方与第二方之间的多方计算的计算机程序产品,所述计算机程序产品存储在与所述第一方相关联的第一计算装置上并且包括至少一个非瞬态计算机可读介质,所述至少一个非瞬态计算机可读介质包括程序指令,所述程序指令在由所述第一计算装置的至少一个处理器执行时使得所述至少一个处理器:向与所述第一计算装置相关联的可信执行环境(tee)传送第一计算输入和一次性密钥的第一部分;从所述tee接收基于所述第一计算输入和第二计算输入的计算的加密输出,其中所述第二计算输入和所述一次性密钥的第二部分由与所述第二方相关联的第二计算装置传送到所述tee,并且其中所述加密输出由所述tee用所述一次性密钥来加密;向所述第二计算装置传送所述加密输出;从所述第二计算装置接收指示所述第二计算装置接收到所述加密输出的数字签名;向所述第二计算装置传送所述一次性密钥的所述第一部分;以及(i)响应于从所述第二计算装置接收到所述一次性密钥的所述第二部分,从所述一次性密钥的所述第一部分和所述一次性密钥的所述第二部分确定所述一次性密钥,并且通过用所述一次性密钥解密所述加密输出来确定所述计算;或(ii)响应于没有从所述第二计算装置接收到所述一次性密钥的所述第二部分,使用所述tee以及所述第一计算装置和所述第二计算装置均能访问的分类账执行回退计算过程以确定所述计算。
38.条款9:根据条款8所述的计算机程序产品,其中所述程序指令进一步使得所述至少一个处理器在所述回退计算过程中:将从所述第二计算装置接收到的所述一次性密钥的所述第一部分和所述数字签名发布到所述分类账;从所述分类账接收发布证明;将所述发布证明输入到所述tee;从所述tee接收所述一次性密钥;以及通过用所述一次性密钥解密所述加密输出来确定所述计算。
39.条款10:根据条款8或条款9所述的计算机程序产品,其中由所述至少一个处理器发布到所述分类账的所述一次性密钥的所述第一部分用与所述第二计算装置相关联的公钥加密。
40.条款11:根据条款8至10中任一项所述的计算机程序产品,其中所述一次性密钥由所述tee从所述一次性密钥的所述第一部分、所述一次性密钥的所述第二部分以及与所述计算的个例相关联的唯一随机数生成。
41.条款12:根据条款8至11中任一项所述的计算机程序产品,其中所述一次性密钥的所述第一部分从与所述第一计算装置相关联的私钥生成,并且其中所述一次性密钥的所述第二部分从与所述第二计算装置相关联的私钥生成。
42.条款13:根据条款8至12中任一项所述的计算机程序产品,其中所述一次性密钥的所述第一部分和所述一次性密钥的所述第二部分在第一时间段内传送到所述tee,并且被配置成在后续时间段内在多方计算的连续个例内生成多个一次性密钥。
43.条款14:根据条款8至13中任一项所述的计算机程序产品,其中所述分类账包括仅附加区块链,并且被配置成仅能由促进所述计算的计算装置访问。
44.条款15:一种用于第一方与第二方之间的多方计算的计算机实施的方法,所述方法包括:用与所述第一方相关联的第一计算装置的至少一个处理器向与所述第一计算装置相关联的可信执行环境(tee)传送第一计算输入和一次性密钥的第一部分;用所述第一计算装置的至少一个处理器从所述tee接收基于所述第一计算输入和第二计算输入的计算的加密输出,其中所述第二计算输入和所述一次性密钥的第二部分由与所述第二方相关联的第二计算装置传送到所述tee,并且其中所述加密输出由所述tee用所述一次性密钥来加密;用所述第一计算装置的至少一个处理器将所述加密输出传送到所述第二计算装置;用所述第一计算装置的至少一个处理器从所述第二计算装置接收指示所述第二计算装置接收到所述加密输出的数字签名;用所述第一计算装置的至少一个处理器将所述一次性密钥的所述第一部分传送到所述第二计算装置;以及响应于没有从所述第二计算装置接收到所述一次性密钥的所述第二部分,用所述第一计算装置的至少一个处理器使用所述tee以及所述第一计算装置和所述第二计算装置均能访问的分类账执行回退计算过程以确定所述计算。
45.条款16:根据条款15所述的方法,其中所述回退计算过程包括:用所述第一计算装置的至少一个处理器将从所述第二计算装置接收到的所述一次性密钥的所述第一部分和所述数字签名发布到所述分类账;用所述第一计算装置的至少一个处理器从所述分类账接收发布证明;用所述第一计算装置的至少一个处理器将所述发布证明输入到所述tee;用所述第一计算装置的至少一个处理器从所述tee接收所述一次性密钥;以及用所述第一计算装置的至少一个处理器,通过用所述一次性密钥解密所述加密输出来确定所述计算。
46.条款17:根据条款15或条款16所述的方法,其中发布到所述分类账的所述一次性
密钥的所述第一部分用与所述第二计算装置相关联的公钥加密。
47.条款18:根据条款15至17中任一项所述的方法,其中所述一次性密钥由所述tee从所述一次性密钥的所述第一部分、所述一次性密钥的所述第二部分以及与所述计算的个例相关联的唯一随机数生成。
48.条款19:根据条款15至18中任一项所述的方法,其中所述一次性密钥的所述第一部分从与所述第一计算装置相关联的私钥生成,并且其中所述一次性密钥的所述第二部分从与所述第二计算装置相关联的私钥生成。
49.条款20:根据条款15至19中任一项所述的方法,其中所述一次性密钥的所述第一部分和所述一次性密钥的所述第二部分在第一时间段内传送到所述tee,并且被配置成在后续时间段内在多方计算的连续个例内生成多个一次性密钥。
50.条款21:一种用于多于两个方之间的多方计算的计算机实施的方法,所述方法包括:用第一计算装置的至少一个处理器将第一输入传送到多个tee中的每一者;用所述第一计算装置的至少一个处理器从所述多个tee中的tee接收由所述tee完成的关于所述第一输入和由多个其它方计算装置传送到所述tee的多个其它输入的计算的加密输出,其中所述多个其它方计算装置的数量大于所述多个tee的数量,并且其中所述多个其它方计算装置的每一子集与所述多个tee中的tee相关联;用所述第一计算装置的至少一个处理器以及响应于接收到所述加密输出,将第一方签名广播到与所述多个tee中的tee相关联的所述多个其它方计算装置中的每一者;用所述第一计算装置的至少一个处理器以及响应于所述多个其它方计算装置接收到所述加密输出,从所述多个其它方计算装置中的每一者接收另一方签名;用所述第一计算装置的至少一个处理器将所述第一输入传送到不与所述多个tee中的tee相关联的所述多个其它方计算装置中的每一者;以及响应于从所述多个其它方计算装置中的另一方计算装置接收到所述多个其它输入:用所述第一计算装置的至少一个处理器生成关于所述第一输入和所述多个其它输入的计算;或响应于没有从所述多个其它方计算装置中的任一其它方计算装置接收到所述多个其它输入:用所述第一计算装置的至少一个处理器使用所述多个tee中的tee和共享分类账执行回退计算过程以检取关于所述第一输入和所述多个其它输入的计算。
51.条款22:一种用于多于两个方之间的多方计算的系统,所述系统包括第一计算装置和与所述第一计算装置相关联的可信执行环境(tee),其中所述第一计算装置的至少一个处理器被编程或配置成执行根据条款21所述的一个或多个步骤。
52.条款23:一种用于多于两个方之间的多方计算的计算机程序产品,所述计算机程序产品存储在第一计算装置上,并且包括至少一个非瞬态计算机可读介质,所述至少一个非瞬态计算机可读介质包括程序指令,其中所述程序指令在由所述第一计算装置的至少一个处理器执行时,使得所述至少一个处理器执行根据条款21所述的一个或多个步骤。
53.在参考附图考虑以下描述和所附权利要求书之后,本公开的这些和其它特征和特性以及相关结构元件和各部分的组合的操作方法和功能以及制造经济性将变得更加显而易见,所有附图形成本说明书的部分,其中相似附图标号在各图中标示对应部分。然而,应明确地理解,图式仅用于说明及描述的目的,且不希望作为对本公开的限制的定义。除非上下文另外明确规定,否则在本说明书和权利要求书中使用时,单数形式“一”和“所述”包括多个指示物。
附图说明
54.下文参考附图中示出的示例性实施例更详细地解释本公开的额外优势和细节,附图中:
55.图1是其中可实施本文所描述的系统、设备和/或方法的环境的非限制性实施例或方面的图式;
56.图2是图1的一个或多个装置的组件的非限制性实施例或方面的图式;
57.图3是用于安全实时n方计算的方法的非限制性实施例或方面的流程图;
58.图4是用于安全实时n方计算的方法的非限制性实施例或方面的流程图;
59.图5是用于安全实时n方计算的系统的非限制性实施例或方面的示意图;
60.图6是用于安全实时n方计算的系统的非限制性实施例或方面的示意图;
61.图7是根据非限制性实施例或方面的描述用于安全实时n方计算的方法的一组伪码;
62.图8是根据非限制性实施例或方面的描述用于安全实时n方计算的方法的一组伪码;
63.图9是根据非限制性实施例或方面的描述用于安全实时n方计算的方法的一组伪码;
64.图10是根据非限制性实施例或方面的描述用于安全实时n方计算的方法的一组伪码;
65.图11是根据非限制性实施例或方面的描述用于安全实时n方计算的方法的一组伪码;
66.图12是根据非限制性实施例或方面的描述用于安全实时n方计算的方法的一组伪码;
67.图13是根据非限制性实施例或方面的描述用于安全实时n方计算的方法的一组伪码;
68.图14是根据非限制性实施例或方面的描述用于安全实时n方计算的方法的一组伪码;
69.图15是根据非限制性实施例或方面的描述用于安全实时n方计算的方法的一组伪码;
70.图16是根据非限制性实施例或方面的描述用于安全实时n方计算的方法的一组伪码;并且
71.图17是根据非限制性实施例或方面的描述用于安全实时n方计算的方法的一组伪码。
72.本领域的技术人员应了解,本文中的任何框图表示体现本发明主题的原理的说明性系统的概念视图。类似地,可了解,任何流程图表、流程图、状态转换图、伪代码等表示可基本上在计算机可读介质中表示并且由计算机或处理器执行的各种过程,无论是否明确示出此类计算机或处理器。
具体实施方式
73.为了进行以下描述,术语“上”、“下”、“右”、“左”、“竖直”、“水平”、“顶部”、“底部”、“橫向”、“纵向”以及其派生词应如其在附图中的定向那样与非限制性实施例或方面相关。然而,应理解,除了明确指定为相反的情况之外,非限制性实施例或方面可采用各种替代变化和步骤顺序。还应理解,附图中所示的以及在以下说明书中描述的特定装置和过程仅仅是示例性实施例或方面。因此,与本文公开的实施例或方面有关的特定尺寸和其它物理特性不应被视为限制。
74.本文所使用的方面、组件、元件、结构、动作、步骤、功能、指令等都不应当被理解为关键的或必要的,除非明确地如此描述。且,如本文所使用,冠词“一”希望包括一个或多个项目,且可与“一个或多个”和“至少一个”互换使用。此外,如本文中所使用,术语“集合”希望包括一个或多个项目(例如,相关项目、不相关项目、相关项目与不相关项目的组合等),并且可与“一个或多个”或“至少一个”互换使用。在希望仅有一个项目的情况下,使用术语“一个”或类似语言。且,如本文中所使用,术语“具有”等希望是开放式术语。另外,除非另外明确陈述,否则短语“基于”希望意味着“至少部分地基于”。
75.本文中结合阈值描述一些非限制性实施例或方面。如本文所使用,满足阈值可以指值大于阈值、多于阈值、高于阈值、大于或等于阈值、小于阈值、少于阈值、低于阈值、小于或等于阈值、等于阈值等。
76.如本文所使用,术语“收单方机构”可指由交易服务提供商许可和/或批准以使用与交易服务提供商相关联的支付装置发起交易(例如,支付交易)的实体。收单方机构可发起的交易可包括支付交易(例如,购买、原始信用证交易(oct)、账户资金交易(aft)等)。在一些非限制性实施例或方面中,收单方机构可以是金融机构,例如银行。如本文所使用,术语“收单方系统”可以指由收单方机构或代表收单方机构操作的一个或多个计算装置,例如执行一个或多个软件应用程序的服务器计算机。
77.如本文所使用,术语“账户标识符”可包括一个或多个主账号(pan)、令牌或与顾客账户相关联的其它标识符。术语“令牌”可指用作pan等原始账户标识符的替代或替换标识符的标识符。账户标识符可以是文数字或字符和/或符号的任何组合。令牌可与一个或多个数据结构(例如,一个或多个数据库等)中的pan或其它原始账户标识符相关联,使得令牌可用于进行交易而无需直接使用原始账户标识符。在一些实例中,例如pan等原始账户标识符可以与用于不同个人或目的的多个令牌相关联。
78.如本文中所使用,术语“通信”可以指数据(例如,信息、信号、消息、指令、命令等)的接收、接纳、发送、传送、提供等。一个单元(例如,装置、系统、装置或系统的组件、其组合和/或其类似者)与另一单元通信意味着所述一个单元能够直接或间接地从所述另一单元接收信息和/或向所述另一单元发送信息。这可以指代在本质上有线和/或无线的直接或间接连接(例如,直接通信连接、间接通信连接和/或其类似者)。另外,尽管所发送的信息可以在第一单元与第二单元之间被修改、处理、中继和/或路由,但这两个单元也可以彼此通信。例如,即使第一单元被动地接收信息且不会主动地将信息发送到第二单元,第一单元也可以与第二单元通信。作为另一示例,如果至少一个中间单元处理从第一单元接收的信息且将处理后的信息传送到第二单元,那么第一单元可以与第二单元通信。
79.如本文中所使用,术语“计算装置”可以指被配置成处理数据的一个或多个电子装置。在一些示例中,计算装置可以包括接收、处理和输出数据的必要组件,例如处理器、显示器、存储器、输入装置、网络接口等。计算装置可以是移动装置。作为实例,移动装置可以包
括蜂窝电话(例如,智能手机或标准蜂窝电话)、便携式计算机、可穿戴装置(例如,手表、眼镜、镜片、服装等)、个人数字助理(pda),和/或其它类似装置。计算装置还可以是台式计算机或其它形式的非移动计算机。“应用程序”或“应用程序编程接口”(api)可指计算机代码或在计算机可读介质上排序的其它数据,其可以由处理器执行以促进软件组件之间的交互,例如客户侧前端和/或服务器侧后端的交互以用于从客户端接收数据。“界面”可指生成的显示,例如一个或多个图形用户界面(gui),用户可以直接或间接地(例如,通过键盘、鼠标等)与所述gui交互。
80.如本文所使用,术语“电子钱包”和“电子钱包应用程序”是指被配置为发起和/或进行支付交易的一个或多个电子装置和/或软件应用程序。例如,电子钱包可包括执行电子钱包应用程序的移动装置,并且还可包括用于维护交易数据并将交易数据提供给移动装置的服务器端侧软件和/或数据库。“电子钱包提供商”可包括为客户提供和/或维护电子钱包的实体,例如googleandroidapplesamsung和/或其它类似电子支付系统。在一些非限制性实例中,发行方银行可是电子钱包提供商。
81.如本文所使用,术语“发行方机构”可以指代对顾客提供用于进行交易(例如,支付交易),例如发起信用和/或借记支付的账户的一个或多个实体,例如银行。例如,发行方机构可以向客户提供唯一地标识与所述客户相关联的一个或多个账户的账户标识符,例如主账号(pan)。账户标识符可以在例如实体金融工具(例如,支付卡)等便携式金融装置上实施,和/或可以是电子的且用于电子支付。术语“发行方系统”指由发行方机构或代表发行方机构操作的一个或多个计算机装置,例如执行一个或多个软件应用程序的服务器计算机。例如,发行方系统可包括用于授权交易的一个或多个授权服务器。
82.如本文所使用,术语“商家”可以指基于例如支付交易的交易向客户提供商品和/或服务或者对商品和/或服务的访问的个人或实体。术语“商家”或“商家系统”还可以指由商家或代表商家操作的一个或多个计算机系统,例如执行一个或多个软件应用程序的服务器计算机。如本文所使用,“销售点(pos)系统”可指由商家用来与客户进行支付交易的一个或多个计算机和/或外围装置,包括一个或多个读卡器、扫描装置(例如,代码扫描仪)、通信接收器、近场通信(nfc)接收器、射频标识(rfid)接收器和/或其它非接触收发器或接收器、基于接触的接收器、支付终端、计算机、服务器、输入装置和/或可用于发起支付交易的其它类似装置。
83.如本文所使用,术语“支付装置”可指支付卡(例如,信用卡或借记卡)、礼品卡、智能卡、智能介质、工资卡、医疗保健卡、腕带、含有账户信息的机器可读介质、钥匙链装置或吊坠、rfid应答器、零售商折扣或会员卡、蜂窝电话、电子钱包移动应用程序、pda、寻呼机、安全卡、计算装置、访问卡、无线终端、应答器等。在一些非限制性实施例或方面中,支付装置可包括用以存储信息(例如,账户标识符、账户持有人姓名等)的易失性或非易失性存储器。
84.如本文所使用,术语“支付网关”可指实体和/或由此类实体或代表此类实体操作的支付处理系统,所述实体(例如,商家服务提供商、支付服务提供商、支付服务商、与收单方有合约的支付服务商、支付集合人(payment aggregator)等)将支付服务(例如,交易服务提供商支付服务、支付处理服务等)提供到一个或多个商家。支付服务可以与由交易服务提供商管理的便携式金融装置的使用相关联。如本文所使用,术语“支付网关系统”可以指
由支付网关或代表支付网关操作的一个或多个计算机系统、计算机装置、服务器、服务器群组等。
85.如本文所使用,术语“服务器”可指或包括由互联网等网络环境中的多方操作或促进所述多方的通信和处理的一个或多个计算装置,但应了解,可通过一个或多个公共或专用网络环境促进通信,并且可能有各种其它布置。另外,在网络环境中直接或间接通信的多个计算装置(例如,服务器、pos装置、移动装置等)可以构成“系统”。如本文所使用,对“服务器”或“处理器”的提及可指陈述为实施先前步骤或功能的先前所述服务器和/或处理器、不同的服务器和/或处理器,和/或服务器和/或处理器的组合。例如,如在说明书和权利要求书中所使用,陈述为实施第一步骤或功能的第一服务器和/或第一处理器可指代陈述为实施第二步骤或功能的相同或不同服务器和/或处理器。
86.如本文所使用,术语“交易服务提供商”可指从商家或其它实体接收交易授权请求且在一些情况下通过交易服务提供商与发行方机构之间的协议来提供支付保证的实体。例如,交易服务提供商可包括例如之类的支付网络,或处理交易的任何其它实体。术语“交易处理系统”可指由交易服务提供商或代表交易服务提供商操作的一个或多个计算机系统,例如执行一个或多个软件应用程序的交易处理服务器。交易处理服务器可包括一个或多个处理器,并且在一些非限制性实施例或方面中,可以由交易服务提供商或代表交易服务提供商操作。
87.如本文所使用,电子支付处理网络可指一个或多个实体之间用于处理货币资金向一个或多个交易的转移的通信。电子支付处理网络可以包括商家系统、收单方系统、交易服务提供商和发行方系统。
88.本公开的非限制性实施例或方面涉及一种用于安全实时n方计算的系统、方法和计算机程序产品。如本文所使用,“计算”可指独立输入进行组合以产生基于每个输入的结果的计算装置之间的任何联合工作。例如,计算可以包括但不限于数学计算、数据编译和交换、合同执行、交易交换等。应了解,所描述的用于两方交换的系统和方法可以扩展到n方计算,其中n》1。所描述的实施例和方面通过提供一种用于安全、公平性有保证的联合计算的架构来改进现有技术解决方案。如果参与方应停止合作,则所描述的系统和方法提供具有回退机制的公平安全计算。不需要涉及第三方中间计算装置以便确保公平性,从而缩短与外部发送相关联的通信时间并减少涉及的各方资源的数量。此外,所描述的系统和方法消除了第三方中间计算装置与一方串通从而威胁到安全性和公平性的可能性。在当前描述的方法中,如果不能保证其它参与方也可以进行联合计算,腐败方就无法接收到最终输出。此外,信息的计算和交换可以通过不依赖于第三方验证服务而实时地发生在其它过程(例如,交易处理)。
89.除了上文所描述的技术改进之外,所描述的系统和方法还通过不依赖于共享分类账(例如,区块链)而提供用于多方计算的计算效率更高的过程,除非出现任一方被证明是恶意的并且过早中止的情况以及直到出现上述情况。这一配置减少了执行公平的多方计算所需的计算资源和独立通信的数量。
90.协议术语
91.如本文所使用,用于n个方{p1,

pn}的“广播”协议以协定和有效性属性终止,其中指挥方(commander)pc∈{p1,

,pn}输入消息m。协定规定,所有诚实方输出相同的值,且有
效性规定,如果指挥方诚实,则所有方输出m。术语“广播”可指dolev-strong广播协议。
92.如本文所使用,“可信执行环境”(tee)可指主处理器的安全区域。tee可保证内部加载的代码和数据在保密性和完整性方面受到保护。包围区(enclave)程序是隔离的存储器区,包含代码和数据两者,所述包围区程序受tee平台保护(其中仅信任处理器制造商)。在tee平台(例如,sanctum
tm
等)上,中央处理单元(cpu)监控所有存储器访问,以确保非包围区软件(例如,操作系统、基本输入/输出系统(bios)软件、系统管理模式(smm)固件等)无法访问包围区的存储器。除了隔离执行之外,如本文所使用,tee平台可以提供用于远程证明的原语。在任何时候,包围区软件都可以请求经签名消息,其被称作“引号(quote)”,将包围区所提供的值与所述包围区的代码身份结合(例如,作为基于散列的测量值)。
93.如本文所使用,所描述的协议可以利用共享的仅附加分类账。这一分类账可以在“布告牌”抽象概念的上下文中提及。共享分类账允许各方获得分类账的内容并在其上发布任意字符串。此外,在成功地在共享分类账上发布字符串后,任一方都可以请求字符串确实被发布的证明(例如,可公开验证的证明),并且共享分类账保证所述字符串永远不会被修改或删除。因此,共享分类账也可以被称为仅附加分类账。在一些非限制性实施例或方面中,可以使用fork-less区块链(例如,许可区块链)或通过基于权益证明的区块链来实例化共享分类账。
94.在一些非限制性实施例或方面中,所描述的协议可以利用其中各方包括具有点对点通信信道的全连接网络且可在同步轮次(例如,随时间推移依序执行的步骤阶段)中进行通信的环境。此外,所描述的协议可以包括各方之间的公钥基础设施,其中每个部分具有公钥pki和私钥ski。诚实方使用密钥生成算法来生成密钥对。恶意方可能会生成任意密钥。在运行抛硬币协议(coin-tossing protocol)(下文进一步描述)之前,所有方都拥有与所有其它参与方相同的公钥向量。抛硬币协议可以包括公钥加密方案和数字签名方案,这使得所述各方能够经由认证信道进行通信,从而防止对手修改消息或增加声称来自不同(诚实)方的消息。
95.两方协议
96.在一些非限制性实施例或方面中,描述的是针对两方设定定制的协议,所述协议与通用n方协议相比可能更简单且轮次更高效(例如,步骤阶段更少)。两方协议的目标如下。所述方希望公平地对两方的私人输入执行一些函数f的联合安全计算:要么两方都获得f的输出,要么没有一方获得所述输出。所描述的两方协议优于先前的技术,因为在各方诚实行事并遵循协议步骤的情况下,所述协议避免了发布到共享分类账的操作(从而减少为多方计算补充额外的计算机资源)。其次,所描述的两方协议支持预处理,其中f的后续评估(对两个方的不同输入的后续评估)可以分摊协议早期阶段的工作,这有助于降低协议的轮次复杂性(例如,每个阶段的步骤更少)。
97.所描述的两方协议通过根据随机选择的密钥k加密f的输出并将k的异或份额分配给两方,将公平安全计算的问题简化为加法秘密共享方案的公平重建,异或确保每个份额都披露关于k的零信息。从这个意义上说,重建协议的责任是确保各方所拥有的份额的公平交换。应了解,两方公平交换意味着两方公平计算,反之亦然。在这种方法中,两方在一个共享分类账上,并且其中一方可以访问tee。
和p2均有权访问共享分类账(l)。函数“enc”可以表示加密函数,函数“prf”可以表示伪随机函数,而函数“sign”可以表示数字签名函数。
106.在轮次0中,p1等待p2的输入enc(sk,x2)||id。同样在轮次0中,p2将输入enc(sk,x2)||id发送到p1。在轮次1中,p1将加密输出m1=enc(k,y)发送到p2,其中k=prf(msk,id)。同样在轮次1中,p2等待p1的加密输出m1=enc(k,y)。如果p2没有接收到m1,则p2可以中止重建过程。在轮次2中,p1等待p2的签名m2=sign(sk2,id)。如果没有接收到消息,则p1可以中止重建过程。同样在轮次2中,p2将签名m2=sign(sk2,id)发送到p1,表示p2从轮次1获得加密输出。在轮次3中,p1将m3=enc(pk2,k)发送到p2。同样在轮次3中,p2等待p1的m3=enc(pk2,k)。在轮次4中,p1等待p2的m4=enc(pk1,k)。同样在轮次4中,如果p2从p1接收到m3,则p2可以将m4=enc(pk1,k)发送到p1并传回k。如果p2没有接收到m3,则p2可以休眠(例如,不进行任何动作)。在轮次5中,如果p1没有接收到m4,则p1可以通过将enc(pk2,k)发布到l来触发回退过程。同样在轮次5中,p2可以休眠。在轮次6中,p1从l接收到发布证明并且向tee提供发布证明,以获得k。同样在轮次6中,方p2从l接收到发布证明和条目,以获得k。
107.n方公平计算
108.本公开进一步提供了用于n方公平计算的通用协议。所述协议的目标是公平地对所有n个方的私人输入执行一些函数f的联合安全计算。公平交换指示:所有方均接收到函数f的输出,或者没有一方接收到所述输出。
109.所描述的n方协议是为乐观的链下执行而设计的,其中当各方诚实行事并遵循协议步骤时,所述协议避免了发布到共享分类账的操作。与在整个过程中需要发布到共享分类账的操作的其它方法相比,这减少了计算资源。其次,所述协议支持预处理,其中f的后续评估(对n个方的不同输入的后续评估)可以分摊协议早期阶段的工作。这有助于改善协议的轮次复杂性。
110.在n方协议中,通过根据随机密钥k加密f的输出并将k的异或份额k1,

,kn分配给所有n个方,将公平安全计算的问题简化为加法秘密共享方案的公平重建,使得:
111.公式2
[0112][0113]
分配异或份额确保每个份额都披露关于k的零信息。从这个意义上说,重建协议的责任是确保各方所拥有的份额的公平交换。所述n方协议可以向每一方提供加密输出以及所述方关于k的份额。此外,所有方都基于共享分类账,并且n个方中有t个方有权访问tee(针对静态腐败模型中的腐败阈值t)。
[0114]
所述n方协议依赖于将由检测恶意行为的任一tee拥有方调用的回退机制,包含将解密密钥k提供给所有方的tee分类账交互。在恶意行为期间,非tee方可等待一些诚实的tee拥有方执行这一tee分类账交互,要不然非tee方则得到没有一方能获得k的保证,从而确保对所有n个方的公平性。这一协议的设计所解决的技术挑战是让各方以安全顺序彼此共享密钥,其中无论恶意方何时违背协议(例如,在接收到足够的份额后中止),其它方都具有用以在保证公平性的情况下实行其余协议步骤的机制。
[0115]
所述n方协议可以在n个方p1,

,pn之间执行。在高级别上,如果所有方都诚实行事(乐观设定),则所述协议会在固定数量的轮次内终止,而不与共享分类账进行交互。此外,如果任一方有恶意行为,则所述协议要么终止(当保证没有一方能恢复密钥k时),要么使用
tee分类账交互公平地将k传递给所有方。
[0116]
类似于两方协议,所述n方协议可以从预处理步骤开始,在所述预处理步骤中各方将他们的秘密提交给所有t个tee,这在发送恶意行为时的回退tee分类账机制期间是有用的。类似于两方协议,f的输出根据密钥k加密,所述密钥不是随机选择的,而是从所有方所拥有的长期秘密密钥生成的。具体地说,(不公平的)多方计算协议根据密钥加密f的输出:
[0117]
公式3
[0118][0119]
其中每一方pi维护长期秘密密钥mski,并且将所述长期秘密密钥输入到协议的每一个例。因此,预处理步骤在不公平的多方计算协议和公平的重建协议的数个个例中分摊。
[0120]
n方协议保证所有n个方(或没有一方)获得解密密钥,但所述解密密钥在各方的任一子集没有从(不公平的)多方计算协议执行获得加密输出的情况下是无用的。因此,作为公平的重建协议的第一步骤,每一方发送签名,表示其接收到加密输出。签名仅发送到具有tee的t个方,并且具有所有n个签名是回退tee分类账机制的前提条件,所述机制向所有方提供k。应了解,恶意方可以稍后实行回退机制,所述机制使用tee分类账交互来公平地将解密密钥提供到所有方,但所述机制对于没有接收到加密输出的一方来说是无用的。因此,签名保护非恶意方免受发起回退tee分类账交互的恶意方的影响。
[0121]
所述n方协议强加了各方彼此披露份额的命令。由于只有具有tee的各方可以调用回退机制(如下所描述)作为对恶意行为的追索,因此所述n方协议强加命令,其中每一方pi∈{p1,

,p
t
}首先向每一pj∈{p1,

,pn}发送其k份额。应注意,pj首先共享或同时共享份额等替代方法使一些恶意方pi可能获得所有份额,从而使诚实方pj没有任何追索权。
[0122]
在接收到所有t个份额后,每一非tee方pj可将其k份额发送到每一tee拥有方pi。如果pj没有接收到所有t个份额,则它可以转换到回退机制(如下所描述)。尽管pj可能由于tee方pi中止协议而没有接收到份额,但pi可能会恶意行事,向pj隐瞒其份额ki,并且改为进行到触发回退tee分类账交互。因此,方pj不能简单地中止,而是必须在随后的时间段内读取共享分类账以进行tee分类账交互,其被设计成将k发到所有方。
[0123]
获得所有n个份额的任一方均可将k广播到所有方。例如,如果任一诚实方(tee或非tee)接收到k的所有n个份额,则所述将k广播到所有方。如果所述方没有获得所有n个份额,则所述方可尝试从诚实方接收k。如果所述方仍未获得k,则其可进入回退机制。
[0124]
所述回退机制构成tee分类账交互。任一tee拥有方pi均可向共享分类账发布包括所有n个签名的消息。所述签名不仅指示所有方都具有加密输出,在分类账上发布所述签名还使得任一其它tee方能够实行回退机制的后续步骤。应了解,恶意方可能在n方协议开始时未将其签名发送到tee方。在回退机制的后续步骤中,读取分类账条目提供发布证明,其指示条目已成功发布在共享分类账上且所有方均可访问。在向tee提供这一证明后,任一tee拥有方均可通过在共享分类账上发布第二消息来推进协议。这一消息包含根据所有非tee方的公钥的加密密钥k。最后,所有方可检取分类账条目以完成回退机制。对于非tee方,分类账条目包含解密密钥。另一方面,每一tee拥有方向本地tee提供发布证明(表示条目已成功发布在共享分类账上),所述本地tee接着验证所述证明并在本地将解密密钥发到所述方。
[0125]
n方公平抛硬币协议
[0126]
进一步描述用于任意n的公平n方抛硬币协议。所描述的抛硬币协议使得每一方pi输入选定(随机)位bi,并且诚实方输出所有诚实方的位的异或。抛硬币协议基于以下前提,即各方以漠视方式执行协议步骤,例如,直到协议的最终步骤传回输出才了解来自其它方的位。换句话说,攻击者不会从其消息中习得诚实方的输入,直到产生均匀随机输出的最后步骤。这是通过使各方在只有t个包围区已知密钥的情况下广播对其选定位的加密来实现的,例如即使控制tee的各方未习得所述位也是如此。接下来,具有tee的任一方将包围区私钥广播给所有方,从而允许每一方解密所有其它方的选定位并计算输出。
[0127]
具有tee节点的t个方在其本地机器上启动包围区程序。作为第一步骤,抛硬币协议在包围区内生成临时公钥加密(pke)密钥,并将公钥材料传送给所有方,以便与包围区建立安全信道。为此,每一包围区执行:
[0128]
公式4
[0129]
(epki,eski)

pke.keygen(λ)
[0130]
并且所述包围区将包围区公钥epki传回给本地方pi,同时将包围区私钥eski保存在包围区专用存储器中。然后,所有t个方都(并行地)参与广播协议,以将其epki发送到所有方p1,

,p
t
。具体地说,每一pi∈{p1,

,p
t
}利用以下消息调用广播协议:
[0131]
公式5
[0132]
pi:quote
hw

fct
,epki),其中(epki,eski)

pke.keygen(1
λ
)
[0133]
广播协议的每一个例都需要t+1个轮次(其中t是腐败阈值以及具有tee的各方的数量),并且所有t个方并行地执行协议个例,其中每一方在其自身的协议个例中充当指挥方。
[0134]
由于抛硬币协议的后续步骤使用加密消息的广播,因此所述协议建立供所有方使用的共享密钥,所述共享密钥的私有组成将保存在包围区内(以防止各方过早地习得其它方的输入)。通过建立用于所有方的所有将来加密的共享密钥,所述协议即使在具有tee的一些方中止的情况下也可继续。所述协议还可优化消息长度,因为它们包含仅根据一个密钥的加密。为此,所述协议建立pke密钥,其与所有包围区共享且供所有方用来加密他们的位。包围区的任务是保存这一密钥,直到所有方都广播了他们的选定位,从而阻止任一方习得诚实方的选定位。选择一方作为领导方(例如,p1)以从其包围区内生成pke密钥,并且将公钥材料广播到所有方且将秘密密钥材料广播到包围区(通过根据先前步骤的密钥进行加密)。如果领导方恶意行事(例如,诚实方在广播协议结束时输出

),则所述协议与下一领导方进行重试,其中领导方从p1迭代到p
t
。如果在这一步骤中,所有利用tee的t个方都恶意行事,则其余n-t个诚实方执行公平抛硬币协议的诚实变体(其中诚实方只需用普通文字将他们的选定位广播到其它诚实方)。
[0135]
所有n个方都必须将他们的选定位广播到每一其它方,但他们不能仅用普通文字显示这些值,以免对手使最终输出产生偏差。鉴于已建立共享公钥pk,每一方pi根据密钥pk对其位bi进行签名和加密。签名可防止复制攻击,其中攻击者复制诚实方的位并使输出产生偏差。每一方pi进一步将已签名密文广播给其它方:
[0136]
公式6
[0137][0138]
密文仅可在tee内解密,因为私钥sk的所有副本都存储在包围区存储器内。通过使各方在实行协议的同时保持对彼此的选定位的漠视来实现安全性(例如,防止对手引起的偏差)。因此,腐败方可以选择违背协议,但必须在未了解诚实方的输入的情况下作出这一决定。这允许诚实方的最终输出是未发生偏差的。
[0139]
广播协议确保所有诚实方拥有所有其它诚实方的加密位。为了计算最终输出位,即所有方的位的异或,私钥sk必须暴露在包围区之外并与所有方共享。为此,具有包围区的每一方从其本地包围区提取根据每一非包围区公钥的sk加密,并将其广播给所有方,如下所指示。
[0140]
公式7
[0141]
quote
hw

fct
,{pke.enc(pki,sk)}
i>t
)
[0142]
在这一阶段结束时,不具有tee的诚实方就是否有任何一方获得了sk加密的向量达成一致。如果没有一方接收到加密,则这意味着在这一步骤期间,所有具有tee的t个方都恶意行事。在这种情况下,其余n-t个诚实方可执行公平抛硬币协议的诚实变体(例如,一个诚实方选择随机位并将其发送给所有其它方)。这起了作用,因为此时在协议中,t个恶意方(例如,所有拥有tee的恶意方)未了解最终输出,且因此他们的中止决定与硬币的值无关。另一方面,即使具有tee的一方诚实行事,所有不具有tee的诚实方也能从广播中获得sk,并且能够解密加密并获得输出。在至少有一个诚实方具有tee的情况下,所述方可随后指令其包围区发出sk,随后所述方能够解密加密并获得其输出。
[0143]
示出了非限制性实施例和方面
[0144]
现参考图1,示出了其中可以实施本文所描述的装置、系统和/或方法的示例环境100的图式。如图1所示,环境100包括与第一方相关联的第一计算装置102、可信执行环境(tee)104、与除第一方以外的各方相关联的一个或多个其它计算装置106、共享分类账108和通信网络110。tee 104可以和与第一计算装置102相同的装置相关联和/或在所述相同的装置上实施。可以使用一个或多个其它分类账108,所述分类账可以由一个或多个其它计算装置106访问。共享分类账108可以包括仅附加区块链(例如,许可区块链),并且可以被配置成仅可由促进计算的计算装置(例如,第一计算装置102和至少一个其它计算装置106)访问。
[0145]
根据本文中所公开的步骤,一个或多个其它tee 104可以与其它计算装置106相关联和/或在其它计算装置106上实施。通信网络110可以包括一个或多个有线和/或无线网络。例如,通信网络110可以包括蜂窝网络(例如,长期演进网络、第三代(3g)网络、第四代(4g)网络、码分多址(cdma)网络等)、公共陆地移动网(plmn)、局域网(lan)、广域网(wan)、城域网(man)、电话网络(例如,公共交换电话网络(pstn))、专用网络、自组织网络、网状网络、信标网络、内联网、因特网、基于光纤的网络、云计算网络等,和/或这些或其它类型的网络的组合。
[0146]
在两个方之间的多方计算的一些非限制性实施例或方面中,第一计算装置102可以将第一计算输入(例如,第一方对计算的贡献)和一次性密钥的第一部分(例如,份额)传送到tee 104。tee 104可以从至少一个其它计算装置106接收第二计算输入(例如,第二方
对计算的贡献)和一次性密钥的第二部分(例如,份额)。tee 104可以从一次性密钥的第一部分和一次性密钥的第二部分生成一次性密钥。tee 104可以进一步从与计算个例相关联的唯一随机数生成一次性密钥(例如,当在各方之间执行多次连续计算时,针对计算的每次迭代)。一次性密钥的第一部分可以从与第一计算装置102相关联的私钥(例如,私钥与公钥对中的私钥)生成。一次性密钥的第二部分可以从与至少一个其它计算装置106相关联的私钥(例如,私钥与公钥对中的私钥)生成。一次性密钥的第一部分和第二部分可以在第一时间段内传送到tee 104,并且供tee 104使用以在后续时间段内在多方计算的连续个例内生成多个一次性密钥。tee 104可以基于第一计算输入和第二计算输入而生成计算。tee 104可进一步使用一次性密钥对计算结果进行加密,以产生加密输出。第一计算装置102可以从tee 104接收加密输出。
[0147]
第一计算装置102可进一步将加密输出传送到至少一个其它计算装置106。响应于接收到加密输出,至少一个其它计算装置106可以生成指示至少一个其它计算装置106接收到加密输出的数字签名。第一计算装置102可以从至少一个其它计算装置106接收数字签名。响应于接收到数字签名,第一计算装置102可以将一次性密钥的第一部分传送到至少一个其它计算装置106。然后,第一计算装置102可以等待从至少一个其它计算装置106接收一次性密钥的第二部分。
[0148]
响应于从至少一个其它计算装置106接收到第二部分,第一计算装置102可以从一次性密钥的第一部分和一次性密钥的第二部分确定一次性密钥。第一计算装置102可进一步通过用一次性密钥解密加密输出来确定计算。
[0149]
响应于没有从至少一个其它计算装置106接收到一次性密钥的第二部分,第一计算装置102可以使用tee 104以及第一计算装置102和至少一个其它计算装置106均可访问的分类账执行回退计算过程以确定计算。
[0150]
在一些非限制性实施例或方面中,第一计算装置102可以按一系列步骤执行回退过程。第一计算装置102可以将从第二计算装置接收到的一次性密钥的第一部分和数字签名发布到共享分类账108。发布到共享分类账108的一次性密钥可以用与至少一个其它计算装置106相关联的公钥来加密。第一计算装置102可以从分类账108接收发布证明,并将发布证明输入到tee 104。tee 104可以验证发布证明,并且作为响应,将一次性密钥或一次性密钥的第二部分发送到第一计算装置102。第一计算装置102可以从tee 104接收一次性密钥,或可用来导出一次性密钥的一次性密钥的第二部分,并且通过用一次性密钥解密加密输出来确定计算。
[0151]
示例地提供图1中示出的装置和网络的数量和布置。可能存在与图1中所示的那些相比额外的装置和/或网络、更少的装置和/或网络、不同的装置和/或网络,或不同地布置的装置和/或网络。此外,图1中所示的两个或更多个装置可在单个装置内实施,或图1中所示的单个装置可实施为多个分布式装置。另外或替代地,环境100的一组装置(例如,一个或多个装置)可以执行被描述为由环境100的另一组装置执行的一个或多个功能。
[0152]
现在参考图2,示出了装置200的示例组件的图式。装置200可对应于第一计算装置102、可信执行环境(tee)104、一个或多个其它计算装置106、共享分类账108和/或通信网络110中的一个或多个装置。在一些非限制性实施例或方面中,前文的一个或多个装置可以包括至少一个装置200和/或装置200的至少一个组件。如图2所示,装置200可以包括总线202、
处理器204、存储器206、存储组件208、输入组件210、输出组件212和通信接口214。
[0153]
总线202可包括准许装置200的组件之间的通信的组件。在一些非限制性实施例或方面中,处理器204可以硬件、软件,或硬件和软件的组合实施。例如,处理器204可以包括处理器(例如,中央处理单元(cpu)、图形处理单元(gpu)、加速处理单元(apu)等)、微处理器、数字信号处理器(dsp)和/或可以被编程为执行功能的任何处理组件(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)。存储器206可以包括随机存取存储器(ram)、只读存储器(rom),和/或存储供处理器204使用的信息和/或指令的另一类型的动态或静态存储装置(例如,快闪存储器、磁存储器、光学存储器等)。
[0154]
存储组件208可存储与装置200的操作和使用相关联的信息和/或软件。举例来说,存储组件208可包括硬盘(例如,磁盘、光盘、磁-光盘、固态盘等)、压缩光盘(cd)、数字多功能光盘(dvd)、软盘、盒带、磁带和/或另一类型的计算机可读介质,以及对应的驱动器。
[0155]
输入组件210可以包括准许装置200例如经由用户输入(例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关、麦克风、摄像头等)接收信息的组件。另外或替代地,输入组件210可包括用于感测信息的传感器(例如全球定位系统(gps)组件、加速度计、陀螺仪、致动器等)。输出组件212可以包括提供来自装置200的输出信息的组件(例如,显示屏、扬声器、一个或多个发光二极管(led),等)。
[0156]
通信接口214可以包括收发器式组件(例如,收发器、单独的接收器和发射器,等等),其使装置200能够例如经由有线连接、无线连接,或有线和无线连接的组合与其它装置通信。通信接口214可以准许装置200接收来自另一装置的信息和/或向另一装置提供信息。例如,通信接口214可包括以太网接口、光学接口、同轴接口、红外接口、射频(rf)接口、通用串行总线(usb)接口、接口、蜂窝网络接口等。
[0157]
装置200可以执行本文所描述的一个或多个过程。装置200可以基于处理器204执行由例如存储器206和/或存储组件208的计算机可读介质存储的软件指令来执行这些过程。计算机可读介质(例如,非瞬态计算机可读介质)在本文中定义为非瞬态存储器装置。非瞬态存储器装置包括位于单个物理存储装置内部的存储器空间或散布于多个物理存储装置上的存储器空间。
[0158]
软件指令可以经由通信接口214从另一计算机可读介质或从另一装置读取到存储器206和/或存储组件208中。在被执行时,存储在存储器206和/或存储组件208中的软件指令可以使处理器204执行本文描述的一个或多个过程。另外或替代地,硬接线电路系统可以替代或结合软件指令使用以执行本文中所描述的一个或多个过程。因此,本文所描述的实施例或方面不限于硬件电路系统和软件的任何特定组合。
[0159]
存储器206和/或存储组件208可以包括数据存储装置或一个或多个数据结构(例如,数据库等)。装置200能够从存储器206和/或存储组件208中的数据存储装置或一个或多个数据结构接收信息、将信息存储于所述数据存储装置或一个或多个数据结构中、向所述数据存储装置或一个或多个数据结构传送信息或搜索其中存储的信息。例如,信息可以包括加密数据、输入数据、输出数据、交易数据、账户数据或其任何组合。
[0160]
图2所示的组件的数目和布置作为示例提供。在一些非限制性实施例或方面中,与图2中所示的那些相比,装置200可以包括额外组件、更少组件、不同组件或以不同方式布置的组件。另外或替代地,装置200的一组组件(例如,一个或多个组件)可以执行被描述为由
装置200的另一组组件执行的一个或多个功能。
[0161]
现参考图3,提供了根据非限制性实施例或方面的用于安全实时n方计算的方法300。方法300的步骤可以由第一计算装置102、tee 104和/或另一计算装置106执行。方法300的一个或多个步骤可以由与执行方法300的另一步骤相同或不同的计算装置执行。尽管方法300的步骤是关于两方计算来描述的,但应了解,所述原理和步骤可以扩展到并且适用于更多数量的方,如本文所描述。
[0162]
在步骤302中,可以传送第一计算输入和一次性密钥的第一部分。例如,第一计算装置102可以将第一计算输入和一次性密钥的第一部分传送到与第一计算装置102相关联的tee104。可响应于第一方用户在第一计算装置102的界面中的输入而触发步骤302。在进行到步骤304之前,步骤302可能是程序上和顺序上必需的。
[0163]
在步骤304中,可以接收加密输出。例如,第一计算装置102可以从tee 104接收基于第一计算输入和第二计算输入的计算的加密输出。可以在步骤304之前由第二计算装置(例如,其它计算装置106中的一者)将第二计算输入和一次性密钥的第二部分传送到tee 104。可以由tee 104用从一次性密钥的第一部分和一次性密钥的第二部分生成的一次性密钥来加密所述加密输出。在进行到步骤306之前,步骤304可能是程序上和顺序上必需的。
[0164]
在步骤306中,可以将加密输出传送到第二计算装置。例如,第一计算装置102可以将加密输出(在步骤304中从tee 104接收到的加密输出)传送到第二计算装置。可响应于第一方用户在第一计算装置102的界面中的输入而触发步骤306。在进行到步骤308之前,步骤306可能是程序上和顺序上必需的。
[0165]
在步骤308中,可以从第二计算装置接收数字签名。例如,第一计算装置102可以从第二计算装置接收数字签名,所述数字签名指示第二计算装置在步骤306中接收到加密输出。在进行到步骤310之前,步骤308可能是程序上和顺序上必需的。
[0166]
在步骤310中,可以将一次性密钥的第一部分传送到第二计算装置。例如,第一计算装置102可以将一次性密钥的第一部分传送到第二计算装置。如果第二计算装置随后发送回其一次性密钥的部分,则第一计算装置102可以进行到根据其中不需要回退计算过程的协议确定计算(步骤312)。如果第二计算装置没有随后发送回其一次性密钥的部分,则第一计算装置102可以进行到根据其中需要回退计算过程的协议确定计算(步骤314)。在进行到步骤312或步骤314之前,步骤310可能是程序上和顺序上必需的。
[0167]
在步骤312中,可以确定一次性密钥,并且可以解密加密输出。例如,第一计算装置102可以响应于从第二计算装置接收到一次性密钥的第二部分,从一次性密钥的第一部分和一次性密钥的第二部分确定一次性密钥,并且通过用一次性密钥解密加密输出来确定计算。
[0168]
在步骤314中,可以执行回退计算过程。例如,第一计算装置102可以响应于没有从第二计算装置接收到一次性密钥的第二部分,使用tee以及第一计算装置102和第二计算装置均可访问的分类账执行回退计算过程以确定计算。
[0169]
现参考图4,提供了根据非限制性实施例或方面的用于安全实时n方计算的方法400。方法400的步骤可以由第一计算装置102、tee 104和/或另一计算装置106执行。方法400的一个或多个步骤可以由与执行方法400的另一步骤相同或不同的计算装置执行。尽管方法400的步骤是关于两方计算来描述的,但应了解,所述原理和步骤可以扩展到并且适用
于更多数量的方,如本文所描述。应进一步了解,方法400提供了用于图3的步骤314的示意性回退计算过程。
[0170]
在步骤402中,可以将一次性密钥的第一部分和数字签名发布到分类账108。例如,第一计算装置102可以将从第二计算装置接收到的一次性密钥的第一部分和数字签名发布到分类账108。在进行到步骤404之前,步骤402可能是程序上和顺序上必需的。
[0171]
在步骤404中,可以接收发布证明。例如,第一计算装置102可以从分类账108接收发布证明,所述发布证明指示一次性密钥的第一部分和数字签名被发布到分类账108。在进行到步骤406之前,步骤404可能是程序上和顺序上必需的。
[0172]
在步骤406中,可以将发布证明输入到tee 104。例如,第一计算装置102可以将发布证明输入tee 104。这会向tee 104指示一次性密钥的第一部分和数字签名被发布到分类账108。在进行到步骤408之前,步骤406可能是程序上和顺序上必需的。
[0173]
在步骤408中,可以从tee 104接收一次性密钥。例如,第一计算装置102响应于将发布证明输入到tee 104,可以从tee 104接收一次性密钥。还应了解,第一计算装置102可以接收一次性密钥的第二部分,可以结合一次性密钥的第一部分、借助于所述第二部分来确定一次性密钥。在进行到步骤410之前,步骤408可能是程序上和顺序上必需的。
[0174]
在步骤410中,可以确定计算。例如,第一计算装置102可以通过用一次性密钥解密加密输出来确定计算。以此方式,尽管第二计算装置提早中止过程且未将一次性密钥的第二部分发送到第一计算装置102,但若是第二计算装置偏离过程是非故意的,例如是由于错误而偏离过程,则第一计算装置102具有以还确保第二计算装置能够访问一次性密钥的第一部分的方式整体检取一次性密钥的手段。
[0175]
参考图5,描绘了根据非限制性实施例或方面的用于安全、实时、n方计算的系统500的示意图。图5的系统500描绘了两个方的多方计算:第一方(p1)502a和第二方(p2)502b。如图所示,上文所描述的两方协议可以用于系统500中。每一方502a、502b与其自身的方数据504a、504b相关联,所述数据可存储在相应计算装置上且由所述相应计算装置传送。例如,第一方502a在第一计算装置上拥有第一组方数据504a,并且第二方502b在第二计算装置上拥有第二组方数据504b。所述方502a、502b一起作用,用以通过传送它们的相应方数据504a、504b以供用于联合计算506来完成联合计算506,并且用以按一定操作次序接收联合计算506的输出,所述操作次序在不诚实方提早破坏协议时会保护诚实方。
[0176]
参考图6,描绘了根据非限制性实施例或方面的用于安全、实时、n方计算的系统600的示意图。图6的系统600描绘了多于两个方的多方计算:第一方(p1)502a、第二方(p2)502b,以及直到第n方(pn)502n的任何数量的额外方。如图所示,上文所描述的n方协议可以用于系统600中。每一方502a、502b、502n与其自身的方数据504a、504b、504n相关联,所述数据可存储在相应计算装置上且由所述相应计算装置传送。例如,第一方502a在第一计算装置上拥有第一组方数据504a,第二方502b在第二计算装置上拥有第二组方数据504b,并且直到第n方502n的任何数量的额外方可以在第n计算装置上拥有第n组方数据504n。所述方502a、502b、504n一起作用,用以通过传送它们的相应方数据504a、504b、504n以供用于联合计算606来完成联合计算606,并且用以按一定操作次序接收联合计算606的输出,所述操作次序在不诚实方提早破坏协议时会保护诚实方。
[0177]
参考图7,描绘了根据非限制性实施例或方面的用于安全实时n方计算的方法的伪
码。具体地说,图7描绘了用于两方公平交换协议的包围区程序的伪码。图7中所描绘的过程可以在tee 104上托管和执行。
[0178]
参考图8和9,描绘了根据非限制性实施例或方面的用于安全实时n方计算的方法的伪码。具体地说,图8和9描绘了用于两方公平交换协议的伪码。图8和9中所描绘的过程可以由一个或多个计算装置执行,包括与第一方相关联的第一计算装置102和与第二方相关联的至少一个其它计算装置106(例如,第二计算装置)。
[0179]
参考图10,描绘了根据非限制性实施例或方面的用于安全实时n方计算的方法的伪码。具体地说,图10描绘了用于n方公平交换协议的包围区程序的伪码。图10中所描绘的过程可以在一个或多个tee 104上托管和执行。
[0180]
参考图11和12,描绘了根据非限制性实施例或方面的用于安全实时n方计算的方法的伪码。具体地说,图11和12描绘了用于n方公平交换协议的伪码。图11和12中所描绘的过程可以由一个或多个计算装置执行,包括与第一方相关联的第一计算装置102和与其它方相关联的多个其它计算装置106。
[0181]
参考图13和14,描绘了根据非限制性实施例或方面的用于安全实时n方计算的方法的伪码。具体地说,图13和14描绘了用于针对包括多个分类账108的设定的n方公平交换协议的伪码。图13和14中所描绘的过程可以由一个或多个计算装置执行,包括与第一方相关联的第一计算装置102和与其它方相关联的多个其它计算装置106。
[0182]
参考图15,描绘了根据非限制性实施例或方面的用于安全实时n方计算的方法的伪码。具体地说,图15描绘了用于n方公平抛硬币协议的包围区程序的伪码。图15中所描绘的过程可以在一个或多个tee 104上托管和执行。
[0183]
参考图16和17,描绘了根据非限制性实施例或方面的用于安全实时n方计算的方法的伪码。具体地说,图16和17描绘了用于n方公平抛硬币协议的伪码。图16和17中所描绘的过程可以由一个或多个计算装置执行,包括与第一方相关联的第一计算装置102和与其它方相关联的多个其它计算装置106。
[0184]
尽管已出于说明的目的而基于当前被认为是最实用和非限制性的实施例或方面详细描述了本公开,但应理解,此类详细描述仅用于所述目的,且本公开不限于所公开实施例或方面,而相反,旨在涵盖属于所附权利要求书的精神和范围内的修改和等效布置。例如,应理解,本公开预期,尽可能地,任何实施例或方面的一个或多个特征可与任何其它实施例或方面的一个或多个特征组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1