Context: Secure Multiparty Computation (MPC) refers to a family of cryptographic techniques where mutually untrusting parties may compute functions of their private inputs while revealing only the function output. Inquiry: It can be hard to program MPCs correctly and efficiently using existing languages and frameworks, especially when they require coordinating disparate computational roles. How can we make this easier? Approach: We present Symphony, a new functional programming language for MPCs among two or more parties. Symphony starts from the single-instruction, multiple-data (SIMD) semantics of prior MPC languages, in which each party carries out symmetric responsibilities, and generalizes it using constructs that can coordinate many parties. Symphony introduces **first-class shares** and **first-class party sets** to provide unmatched language-level expressive power with high efficiency. Knowledge: Developing a core formal language called $\lambda$-Symphony, we prove that the intuitive, generalized SIMD view of a program coincides with its actual distributed semantics. Thus the programmer can reason about her programs by reading them from top to bottom, even though in reality the program runs in a coordinated fashion, distributed across many machines. We implemented a prototype interpreter for Symphony leveraging multiple cryptographic backends. With it we wrote a variety of MPC programs, finding that Symphony can express optimized protocols that other languages cannot, and that in general Symphony programs operate efficiently. [ full abstract at https://doi.org/10.22152/programming-journal.org/2023/7/14 ]
翻译:安全多党 Computation (MPC) 指的是一组加密技术, 其中相互不信任的各方可以计算其私人投入的功能, 而只显示函数输出。 调查: 利用现有语言和框架, 特别是当它们需要协调不同的计算作用时, 很难正确和高效地编程 MPC 程序, 特别是当它们需要协调不同的计算作用时 。 方法 : 我们提出交响乐, 这是两个或两个以上政党为 MPC 提供的一种新的功能性编程语言 。 交响乐起源于一个单一教学、 多数据( SIMD) 程序, 每个政党都可以计算其私人投入的功能功能, 而每个政党则履行对等职责, 并使用能够协调许多政党和框架的构建。 交声调音频将推出** 一级共享的股份** 和** 一级政党设置**, 以提供不匹配的语言水平的表达能力 。 知识: 开发一种名为 $\lambda$- syphon 的核心正式语言, 我们证明, SIMMD 视图的直观、 直观、 直观的Symaldrocal 程序与实际的Sydal demod 一起运行。