掌桥专利:专业的专利平台
掌桥专利
首页

相关申请的交叉引用

这是2019年2月14日在美国提交的名称为“Distributed Randomness Generationvia Multi-Party Computation”的美国临时申请No.62/805,434的非临时申请,其全部内容通过引用并入本文。

发明背景

(1)技术领域

本发明涉及一种用于在服务器的集合中分布式生成随机值的系统,并且更具体地,涉及一种用于经由多方计算在服务器的集合中分布式生成随机值的系统。

(2)背景技术

多方计算(MPC:Multiparty computation)允许一组服务器(有时称为参与者或参与方)在存在可能破坏(corrupt)服务器固定部分的攻击者的情况下向运算(或布尔)电路提供输入值并对该电路进行安全估值。当攻击者破坏服务器时,它会了解存储在该服务器上的所有信息。攻击者可以强制破坏的服务器任意运行,而不管协议如何。

Fitzi等人在“Round-optimal and efficient verifiable secret sharing”,InTheory of Cryptography,Third Theory of Cryptography Conference,volume 3876ofLecture Notes in Computer Science,pages 329-342,2006中描述了弱可验证秘密共享协议,其通过引用并入于此,如同在本文中完全阐述一样。使用来自Fitzi等人的弱可验证秘密共享协议可以构建随机生成协议。然而,在没有破坏并且服务器访问广播信道的情况下,所得到的协议将具有O(n

持续需要一种与先前协议相比具有低通信复杂度的随机生成协议。

发明内容

本发明涉及一种用于在服务器的集合中分布式生成随机值的系统,更具体地,涉及一种用于经由多方计算在服务器的集合中分布式生成随机值的系统。该系统包括非暂时性计算机可读介质和一个或更多个处理器,所述非暂时性计算机可读介质上编码有可执行指令,使得所述可执行指令在被执行时,所述一个或更多个处理器执行多个操作。所述系统发起用于在所述一组服务器中分布式生成随机值的随机生成协议。各个服务器选择随机生成多项式,广播所述随机生成多项式的加密散列函数,并且将该服务器的随机生成多项式的所述加密散列函数的值发送到所述一组服务器。所述系统在多方计算协议中使用随机生成协议,以确保一组数据经由安全的、经认证的广播信道在所述一组服务器中被安全地电子共享。

在另一方面,系统对任何被破坏的服务器进行标记;以及从所述多方计算协议隔离被标记为被破坏的服务器。

在另一方面,当不存在被破坏的服务器时,则所述随机生成协议具有O(n

在另一方面,如果所述一组服务器中少于一半的服务器被破坏,则所述随机生成协议被保证是安全的。

在另一方面,所述一组数据包括来自至少一个载具的诊断数据。

在另一方面,所述一组数据包括密钥。

最后,本发明还包括计算机程序产品和计算机实现的方法。所述计算机程序产品包括存储在非暂时性计算机可读介质上的计算机可读指令,所述计算机可读指令能够由具有一个或更多个处理器的计算机执行,使得在执行所述指令时,所述一个或更多个处理器执行本文列出的操作。另选地,所述计算机实现的方法包括使计算机执行这些指令并执行所得操作的动作。

附图说明

根据以下结合附图对本发明各个方面的详细描述,本发明的目的、特征和优点将显而易见,其中:

图1是描绘根据本公开的一些实施方式的用于在一组服务器中分布式生成随机值的系统的部件的框图;

图2是根据本公开的一些实施方式的计算机程序产品的图示;以及

图3是例示出根据本公开的一些实施方式的服务器的集合中的分布式生成随机值的流程图。

具体实施方式

本发明涉及一种用于在服务器的集合中分布式生成随机值的系统,并且更具体地,涉及一种用于经由多方计算在服务器的集合中分布式生成随机值的系统。呈现以下描述以使本领域普通技术人员能够制造和使用本发明并将其并入特定应用的上下文中。对于本领域技术人员而言,各种修改以及在不同应用中的多种用途将显而易见,并且本文限定的一般原理可以被应用于广泛的方面。因此,本发明并非旨在限于所呈现的方面,而是与符合本文所公开的原理和新颖特征的最广范围相一致。

在下面的详细描述中,阐述了许多具体细节以便提供对本发明的更透彻理解。然而,对本领域技术人员而言将显而易见的是,本发明可以在不必限于这些具体细节的情况下来实践。在其他情况下,公知结构和设备以框图形式示出,而非详细示出,以避免模糊本发明。

请读者关注与本说明书同时提交并且与本说明书一起开放以供公众查阅的所有文件和文档,并且所有这些文件和文档的内容通过引用并入本文。除非另有明确说明,否则本说明书(包括任何所附权利要求、摘要以及附图)中公开的所有特征可以由用于相同、等同或相似目的的另选特征来代替。因此,除非另有明确说明,否则所公开的各个特征仅是一系列的等同或相似特征中的一个示例。

此外,权利要求中没有明确陈述用于执行指定功能的“设备”或用于执行特定功能的“步骤”的任何要素不应被解释为如35U.S.C.第112节第6款中规定的“装置”或“步骤”条款。特别地,在本文的权利要求中使用“……的步骤”或“……的动作”并非旨在触发35U.S.C.第112节第6款的条款。

(1)主要方面

本发明的各种实施方式包括三个“主要”方面。第一个主要方面是用于在服务器的集合中分布式生成随机值的系统。该系统通常采用计算机系统操作软件的形式或采用“硬编码”指令集的形式。该系统可以并入提供不同功能的各种各样的设备中。第二个主要方面是利用数据处理系统(计算机)操作的通常采用软件形式的方法。第三个主要方面是计算机程序产品。计算机程序产品通常表示存储在诸如光学存储设备(例如,光盘(CD)或数字通用盘(DVD))或磁存储设备(例如,软盘或磁带)之类的非暂时性计算机可读介质上的计算机可读指令。计算机可读介质的其他非限制性示例包括:硬盘、只读存储器(ROM)以及闪存型存储器。这些方面将在下面进行更详细描述。

图1中提供了描绘本发明的系统(即,计算机系统100)的示例的框图。计算机系统100被配置成执行与程序或算法相关联的计算、处理、操作和/或功能。在一个方面,本文讨论的某些处理和步骤被实现为驻留在计算机可读存储器单元内并由计算机系统100的一个或更多个处理器执行的一系列指令(例如,软件程序)。在执行时,所述指令使计算机系统100进行特定动作并展现特定行为,如本文所描述的。

计算机系统100可以包括被配置成传送信息的地址/数据总线102。另外,一个或更多个数据处理单元(诸如处理器104(或多个处理器))与地址/数据总线102联接。处理器104被配置成处理信息和指令。在一方面,处理器104是微处理器。另选地,处理器104可以是不同类型的处理器,诸如并行处理器、专用集成电路(ASIC)、可编程逻辑阵列(PLA)、复杂可编程逻辑器件(CPLD)或现场可编程门阵列(FPGA)。

计算机系统100被配置成利用一个或更多个数据存储单元。计算机系统100可以包括与地址/数据总线102联接的易失性存储器单元106(例如,随机存取存储器(“RAM”)、静态RAM、动态RAM等),其中,易失性存储器单元106被配置成存储用于处理器104的信息和指令。计算机系统100还可以包括与地址/数据总线102联接的非易失性存储器单元108(例如,只读存储器(“ROM”)、可编程ROM(“PROM”)、可擦除可编程ROM(“EPROM”)、电可擦除可编程ROM(“EEPROM”)、闪速存储器等),其中,非易失性存储器单元108被配置成存储用于处理器104的静态信息和指令。另选地,计算机系统100可以执行从诸如“云”计算中的在线数据存储单元取回的指令。在一方面,计算机系统100还可以包括与地址/数据总线102联接的一个或更多个接口,诸如接口110。所述一个或更多个接口被配置成使得计算机系统100能够与其他电子设备和计算机系统连接。由所述一个或更多个接口实现的通信接口可以包括有线(例如,串行电缆、调制解调器、网络适配器等)和/或无线(例如,无线调制解调器、无线网络适配器等)通信技术。

在一个方面,计算机系统100可以包括与地址/数据总线102联接的输入值设备112,其中,输入值设备112被配置成将信息和命令选择传送至处理器100。根据一个方面,输入值设备112是字母数字输入值设备(诸如键盘),其可以包括字母数字键和/或功能键。另选地,输入值设备112可以是除字母数字输入值设备之外的其他输入值设备。在一方面,计算机系统100可以包括与地址/数据总线102联接的光标控制设备114,其中,光标控制设备114被配置成将用户输入值信息和/或命令选择传送至处理器100。在一方面,光标控制设备114是利用诸如鼠标器、轨迹球、轨迹板、光学跟踪设备或触摸屏的设备来实现的。尽管前述如此,但在一方面,诸如响应于使用与输入值设备112相关联的特殊键和键序列命令,光标控制设备114经由来自输入值设备112的输入值而被引导和/或启用。在另选方面,光标控制设备114被配置成通过话音命令管理或引导。

在一方面,计算机系统100还可以包括一个或更多个可选计算机可用数据存储设备,诸如与地址/数据总线102联接的存储设备116。存储设备116被配置成存储信息和/或计算机可执行指令。在一个方面,存储设备116是诸如磁盘驱动器或光盘驱动器(例如,硬盘驱动器(“HDD”)、软盘、光盘只读存储器(“CD-ROM”)、数字通用盘(“DVD”))的存储设备。依据一个方面,显示设备118与地址/数据总线102联接,其中,显示设备118被配置成显示视频和/或图形。在一方面,显示设备118可以包括:阴极射线管(“CRT”)、液晶显示器(“LCD”)、场发射显示器(“FED”)、等离子体显示器,或适于显示视频和/或图形图像以及用户可识别的字母数字字符的任何其他显示设备。

本文所呈现的计算机系统100是根据一方面的示例计算环境。然而,计算机系统100的非限制示例并不严格限于作为计算机系统。例如,一个方面提供了计算机系统100表示可以根据本文所述各个方面使用的一类数据处理分析。此外,还可以实现其他计算系统。实际上,本技术的精神和范围不限于任何单一数据处理环境。因此,在一方面,使用通过计算机执行的计算机可执行指令(诸如程序模块)来控制或实现本技术的各个方面的一个或更多个操作。在一个实现中,这样的程序模块包括被配置成执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件和/或数据结构。另外,一个方面提供了通过利用一个或更多个分布式计算环境来实现本技术的一个或更多个方面,诸如,在该计算环境中,任务由通过通信网络链接的远程处理设备执行,或者诸如,在该计算环境中,各种程序模块位于包括存储器-存储设备的本地和远程计算机存储介质中。

图2中描绘了具体实施本发明的计算机程序产品(即,存储设备)的示图。计算机程序产品被描绘为软盘200或诸如CD或DVD的光盘202。然而,如先前提到的,该计算机程序产品通常表示存储在任何兼容的非暂时性计算机可读介质上的计算机可读指令。如关于本发明所使用的术语“指令”通常指示要在计算机上执行的一组操作,并且可以表示整个程序的片段或单个分离的软件模块。“指令”的非限制性示例包括计算机程序代码(源或目标代码)和“硬编码”电子设备(即,编码到计算机芯片中的计算机操作)。“指令”被存储在任何非暂时性计算机可读介质上,诸如存储在计算机的存储器中或软盘、CD-ROM以及闪存驱动器上。无论如何,这些指令被编码在非暂时性计算机可读介质上。

(2)各种实施方式的具体细节

描述了一种用于在服务器的集合中分布式生成随机值的协议。该协议在多方计算(MPC)协议的背景下使用。MPC协议允许服务器的集合向运算电路提供输入值并计算电路的输出值,而无需任何个体服务器知道电路中的中间“线(wires)”的值。只有预期接收者(该预期接收者可以是或不是MPC服务器)才会看到协议的输出值。

当构造MPC协议时,假定一些MPC服务器可能被破坏,这意味着它们可能会向攻击者实体泄露秘密数据或偏离协议规范。实际上,MPC服务器破坏可能是由攻击者实体控制服务器中的一者、服务器中的一者被恶意软件感染或服务器中的一者由于拒绝服务攻击而不可用等引起的。许多MPC协议需要用于生成公开泄露的随机值的子协议,使得即使一些MPC服务器被破坏,那些被破坏的服务器也不能影响随机值的统计分布。本公开描述了这样的子协议。

根据本公开的实施方式的协议执行加密操作,由此MPC服务器按照使得随机值在稍后的时间点不会被改变的方式来提交这些随机值。在以下协议的步骤(2)和(4)中,每个服务器将数据发送到将该数据提交给随机值的其它服务器,使得服务器稍后不能在协议中改变该值。MPC服务器联合生成不偏向于任何恶意实体的随机值的能力在MPC协议中具有广泛的应用。例如,联合生成的随机值可用于确保服务器在不向任何服务器泄露秘密的情况下正确地分发秘密的份额。

(2.1)初步工作

存在n个MPC服务器

所有计算都发生在某个有限域

(2.2)协议规范

由每个服务器P

1.选择多项式f

2.广播c

3.从每个服务器接收由各个发布者(dealer)P

4.向每个P

5.接收来自每个P

6.计算

7.向所有服务器广播v

8.接收由每个服务器

9.对前一步骤中接收到的值v

10.如果f的次数至多为t,则将f(0)作为协议的输出值并且终止。如果所有服务器都正常运行,则f是所有f

11.如果协议未被终止,则广播在步骤5中从每个

12.对于每个

13.如果任何服务器

14.对于各个j=1,…,n,广播f

15.如果在前一步骤中的任何服务器

16.如果在步骤14中的任何服务器

17.如果对于任何给定对

18.转到步骤1。换言之,重新运行随机生成协议。

在执行上述步骤之后,各个未被破坏的服务器知道了随机生成值的值,该值是被所有未被破坏的服务器知晓的。随机生成值可用于实现秘密数据在未被破坏的服务器中的安全共享,其中秘密数据经由安全的、经认证的广播信道来电子地传输。图3是例示出如本文所述的一组服务器中分布式生成随机值的流程图。本文描述的随机生成协议(元素300)中,各个服务器选择随机生成多项式,将其随机生成多项式的加密散列函数广播到其它服务器,并将其随机生成多项式的加密散列函数的值发送到其它服务器,如上面详细描述的。未被破坏的服务器对联合生成的随机值执行MPC协议(元素302),并且该联合生成的随机值用于确保服务器之间的安全秘密共享(元素304)。

(2.3)识别和隔离破坏MPC服务器

在上述协议中存在服务器可能被标记为被破坏的多个位置。具体地,这可以发生在步骤13、15、16和17中。下面给出使服务器能够确定另一个服务器何时被破坏的推理。

在步骤13中,对于正确执行步骤6和步骤7的任何服务器,式

将服务器标记为被破坏允许非破坏服务器针对协议的其余部分有效隔离该服务器。这意味着来自被标记为被破坏的服务器的输入值被忽略并且不用于产生协议的最终输出值。

下面是对本文描述的协议的通信复杂度的分析。如果没有被破坏的服务器,则协议将在步骤10处结束。在发送数据的步骤10之前只有三个步骤,并且下面单独分析这些步骤中的每一个步骤。

步骤2:每个服务器广播散列。每个散列具有O(1)的大小,并且存在O(n)个服务器,所以此步骤的复杂度是O(n)。

步骤4:每个服务器向每个其它服务器发送一个域元素,需要O(n

步骤7:每个服务器广播单个元素,因此与步骤2一样,此步骤的复杂度是O(n)。

因此,当没有破坏时,总通信是O(n

如果存在被破坏的服务器,则协议将最终重新启动,返回到步骤1。这将导致步骤2、4和7被重新运行O(n

本公开中描述的随机生成协议可以在MPC系统中使用,并且MPC对于安全、分布式数据存储和计算具有广泛的应用。例如,载具(例如汽车、飞行器)制造商可以在存储来自载具/飞行器的诊断数据并对该数据执行统计分析的MPC系统中使用该协议。作为非限制性示例,诊断数据可以是从载具收集的GPS数据,并且MPC系统可以分析交通模式而不损害个体驾驶员的隐私。另外,该协议可用于生成和存储用于签名和验证软件更新的加密密钥的MPC系统。

最后,虽然已经根据若干实施方式描述了本发明,但是本领域普通技术人员将容易认识到,本发明可以在其它环境中具有其它应用。应当注意,许多实施方式和实现是可能的。此外,所附权利要求绝不旨在将本发明的范围限于上述具体实施方式。此外,对“用于……的装置”的任何叙述旨在引起对元件和权利要求的装置加功能的理解,而没有具体使用叙述“用于……的装置”的任何元件不旨在被解读为装置加功能的元件,即使权利要求另外包括词语“装置”。此外,虽然以特定的顺序描述了特定的方法步骤,但是这些方法步骤可以以任何期望的顺序发生并且落入本发明的范围内。

相关技术
  • 经由多方计算的分布式随机生成
  • 经由分布式计算机网络的协作数据集整合
技术分类

06120113224525