Cryptographic techniques have the potential to enable distrusting parties to collaborate in fundamentally new ways, but their practical implementation poses numerous challenges. An important class of such cryptographic techniques is known as secure multi-party computation (MPC). In an effort to provide an ecosystem for building secure MPC applications using higher degrees of automation, we present the HACCLE (High Assurance Compositional Cryptography: Languages and Environments) toolchain. The HACCLE toolchain contains an embedded domain-specific language (Harpoon) for software developers without cryptographic expertise to write MPC-based programs. Harpoon programs are compiled into acyclic circuits represented in HACCLE's Intermediate Representation (HIR) that serves as an abstraction for implementing a computation using different cryptographic protocols such as secret sharing, homomorphic encryption, or garbled circuits. Implementations of different cryptographic protocols serve as different backends of our toolchain. The extensible design of HIR allows cryptographic experts to plug in new primitives and protocols to realize computations.We have implemented HACCLE, and used it to program interesting algorithms and applications (e.g., secure auction, matrix-vector multiplication, and merge sort). We show that the performance is improved by using our optimization strategies and heuristics.
翻译:加密技术有可能使不信任方能够以根本的新方式进行合作,但实际实施却带来了许多挑战。这类加密技术的一个重要类别被称作安全的多方计算(MPC)。为了提供生态系统,利用更高程度的自动化来建立安全的MPC应用程序,我们介绍了高保证构成密码学:语言和环境)工具链。HACCLE工具链为没有加密专门知识的软件开发者提供了一个内嵌域专用语言(Harpoon),用于撰写基于MPC的程序。哈普恩程序被汇编成由HACCLE的中间代表制(HIR)中代表的循环电路,作为利用不同加密协议(例如秘密共享、同式加密或混杂电路)进行计算的一种抽象信息。执行不同的加密协议作为我们工具链的不同后端。HIR的外延式设计允许加密专家在新的原始和协议中进行计算。我们实施了HACCCLE,并使用它来进行抽象的计算,用于利用不同加密的算法和模型来进行计算,我们通过升级和升级的模型来显示我们令人感兴趣的变换的模型。