Processor and compiler for secure multiparty computation
AssigneeRegents of the University of Minnesota
InventorsJohn Mario Sartori, Shashank Ganapathi Hegde
Life of this patent
Estimating the term…
Abstract
A system for Multi-Party Computation (MPC) includes a general-purpose programming language, an MPC processor, an MPC Instruction Set Architecture (ISA), and a compiler. The general-purpose programming language is used for writing an MPC application. The MPC processor executes the MPC application. The MPC ISA corresponds to the MPC processor. The compiler generates an intermediate representation for the MPC application and generates machine code for the intermediate representation by mapping and assembling MPC ISA instructions.
Claims20
A system for Multi-Party Computation (MPC), the system comprising:
- a general-purpose programming language for writing an MPC application;
- an MPC processor for executing the MPC application;
- an MPC Instruction Set Architecture (ISA) corresponding to the MPC processor;
- and
- a compiler to generate an intermediate representation for the MPC application and to generate machine code for the intermediate representation by mapping and assembling MPC ISA instructions.
A Multi-Party Computation (MPC) processor comprising:
- fetch logic incorporating an elastic fetch unit for extracting multiple instructions until a fence instruction is encountered;
- decode logic in conjunction with the fetch logic to generate instruction groups;
- issue logic for creating symbol table entries and dispatching instructions to an execute logic;
- the execute logic comprising a scoreboard for managing an overall execution status of a group and facilitating the dispatch of instructions to corresponding processing elements;
- and
- write-back logic for writing back results as the status of all bits of a result symbol are marked as done.
A method comprising:
- receiving a Multi-Party Computation (MPC) program written using a general-purpose programming language;
- compiling the MPC program to generate an MPC intermediate representation;
- assembling the MPC intermediate representation to generate optimized MPC machine code;
- and
- executing the MPC machine code on an MPC processor to perform secure MPC.
Dependencies are inferred from the claim text.