IP Library Granted Patent US 8,839,410
Granted Patent B2
US 8,839,410 · App. 13/682,110 · Granted Sep 16, 2014

Type-system for mixed protocol secure computation

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,839,410
App. No.
13/682,110
Granted
Sep 16, 2014
Kind
B2
Abstract

Implementations of the present disclosure are directed to for checking that a to-be-compiled program is well-typed such that the program is secure in a semi-honest model, and include actions of receiving the program, the program being provided in a human-readable, domain-specific programming language and including two or more protocols to provide secure computation based on inputs provided by two or more parties, processing the program in view of a type system to determine whether the program is secure in the semi-honest model, the type system including a secure type system extension provided as a set of typing rules that describe security types that can be assigned to one or more entities of the program, and compiling the program to generate a computer-executable program in response to determining that the program is secure in the semi-honest model.

Claims (26)

1. A computer-implemented method for checking that a to-be-compiled program is well-typed such that the program is secure in a semi-honest model, the method being executed by one or more processors and comprising:

receiving, by the one or more hardware processors, the program, the program being provided in a human-readable, domain-specific programming language and comprising two or more protocols to provide secure computation based on inputs provided by two or more parties;

processing, by the one or more processors, the program in view of a type system to determine whether the program is secure in the semi-honest model, the type system comprising a secure type system extension provided as a set of typing rules that describe security types that can be assigned to one or more entities of the program; and

compiling, by the one or more processors, the program to generate a computer-executable program in response to determining that the program is secure in the semi-honest model.

2. The method of claim 1 , wherein each entity comprises one of a variable and an expression.

3. The method of claim 1 , wherein the security type system extends functionality of the type system to ensure that execution of the computer-executable program is secure.

4. The method of claim 1 , wherein processing the program comprises assigning a type and a security type to each entity provided in the program.

5. The method of claim 4 , wherein the security types comprise tainted and untainted, and wherein an untainted entity is provided as an immutable object that contains random data that is independent of any other untainted entity.

6. The method of claim 5 , wherein an untainted entity can be used in one of a send command and a re-randomization command of the program and is cleared after use.

7. The method of claim 1 , wherein each typing rule is provided as an inference rule that describes how a security type is assigned to an entity.

8. The method of claim 1 , wherein the set of typing rules provides that a particular variable is untainted and that all other variables and expressions are tainted.

9. The method of claim 1 , wherein the set of typing rules ensure that untainted variables can only be assigned by re-randomization and output statements of the program.

10. The method of claim 1 , wherein the set of typing rules ensure that message sending commands of the program can only be executed in an untainted security context.

11. The method of claim 1 , wherein the program implements one or more functions, and processing the program ensures that execution of each function of the one or more functions is secure in the semi-honest model.

12. The method of claim 1 , wherein a protocol of the program computes a function based on a plurality of inputs and is secure in the semi-honest model, if, for each party of the two or more parties, a polynomial-time simulator is provided that, given one party's input and a resulting output of the program, is computationally indistinguishable from another party's view.

13. The method of claim 1 , wherein the type system associates data types to each value that is to be computed in the program and ensures that the program provides no type errors.

14. A non-transitory computer-readable medium coupled to the one or more computers having instructions stored thereon which, when executed by the one or more computers, cause the one or more computers to perform operations for checking that a to-be-compiled program is well-typed such that the program is secure in a semi-honest model, the operations comprising:

receiving the program, the program being provided in a human-readable, domain-specific programming language and comprising two or more protocols to provide secure computation based on inputs provided by two or more parties;

processing the program in view of a type system to determine whether the program is secure in the semi-honest model, the type system comprising a secure type system extension provided as a set of typing rules that describe security types that can be assigned to one or more entities of the program; and

compiling the program to generate a computer-executable program in response to determining that the program is secure in the semi-honest model.

15. A system for sharing data in a supply chain, the data corresponding to an item having a tag associated therewith, the system comprising:

one or more hardware computers; and

a computer-readable medium coupled to the one or more computers having instructions stored thereon which, when executed by the one or more computers, cause the one or more computers to perform operations for checking that a to-be-compiled program is well-typed such that the program is secure in a semi-honest model, the operations comprising:

receiving the program, the program being provided in a human-readable, domain-specific programming language and comprising two or more protocols to provide secure computation based on inputs provided by two or more parties;

processing the program in view of a type system to determine whether the program is secure in the semi-honest model, the type system comprising a secure type system extension provided as a set of typing rules that describe security types that can be assigned to one or more entities of the program; and

compiling the program to generate a computer-executable program in response to determining that the program is secure in the semi-honest model.

Assignments (2)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2012
From: KERSCHBAUM, FLORIAN
To: SAP AG
Reel/Frame 029546/0087 →