2个版本

0.1.1 2023年9月6日
0.1.0 2023年9月6日

#2087密码学

GPL-3.0-only

35KB
403

smol

Rust Dependency status Documentation

Smol-mpc是一个使用Rust编程语言学习安全多方计算(MPC)基础的小型库。Smol-mpc允许用户实验MPC协议的玩具示例,并帮助他们理解MPC背后的基本概念。我们基于TinySMPC中的想法开发了Smol-mpc,并从Secure Computation Library中借鉴了一些元素。在TinySMPC的情况下,我们采用了基本架构并将其调整为更适合Rust。一些元素,如虚拟机和份额非常相似,但Smol-mpc在某些方面与Rust用户的使用体验有显著差异。与Tiny SMPC的主要区别在于我们考虑虚拟机的方式。在我们的情况下,它更类似于MPC理论中理想功能指定的方式,即每个虚拟机的内存使用每个变量的ID进行寻址。对于Secure Computation Library,我们采用了在那里使用的数学库中的想法来实现$\mathbb{F}_p$(其中p = $2^{61} - 1$,这是一个梅森素数)作为我们的底层代数结构。我们还从Secure Computation Library中借鉴了使用AES-CTR实现伪随机生成器的想法。

本库的文档和一些使用示例可以在这里找到。

里程碑

  • 完全记录源代码。
  • 为虚拟机状态添加用户友好的输出功能。
  • 编写Beaver三重生成协议。
  • 允许支持其他协议。

免责声明

我们强调,这里展示的工作完全是教育性的,并不旨在展示安全或高效的实现。库的核心是向用户提供一个非常高的层面上协议如何工作的想法。因此,实现可能存在安全问题,有时可能无法代表这里介绍的技术在真实世界安全高效实现的所有细节和注意事项。

依赖关系

~1MB
~20K SLoC