IP Library › Granted Patent US 8,634,563
Granted Patent B2
US 8,634,563 · App. 12/972,420 · Granted Jan 21, 2014

Attribute based encryption using lattices

Inventors: Vinod Vaikuntanathan (Seattle, WA); Panagiotis Voulgaris (San Diego, CA)
Assignee: Microsoft Corporation
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,634,563
App. No.
12/972,420
Granted
Jan 21, 2014
Kind
B2
Abstract

A master public key is generated as a first set of lattices based on a set of attributes, along with a random vector. A master secret key is generated as a set of trap door lattices corresponding to the first set of lattices. A user secret key is generated for a user's particular set of attributes using the master secret key. The user secret key is a set of values in a vector that are chosen to satisfy a reconstruction function for reconstructing the random vector using the first set of lattices. Information is encrypted to a given set of attributes using the user secret key, the given set of attributes and the user secret key. The information is decrypted by a second user having the given set of attributes using the second user's secret key.

Claims (30)

1. A computer implemented method of transmitting data using a computer with a processor, comprising:

receiving, with the processor, a set of attributes S in an access structure A, a master public key that includes a lattice B generated for the set of attributes S and a vector y generated for the set of attributes S, as well as a master secret key that includes a trapdoor lattice T generated for the set of attributes S, wherein the access structure A identifies a type of information that can be decrypted by an entity having the set of attributes S in the access structure A;

generating, with the processor, a user secret key for the set of attributes S in the access structure A, the user secret key comprising a vector e that satisfies a reconstruction function for lattice B, given vector y by;

outputting, with the processor, the user secret key by secret sharing the vector y with the reconstruction function for lattice B for use in decrypting a message m encrypted, using the master public key, to the set of attributes S in the access structure A;

generating values for the vector e that satisfy the reconstruction function eB=y for a given attribute, where eB is a multiplication of vector e with lattice B;

receiving the message m, a subset of the attributes S to which message m is to be encrypted, and the master public key;

selecting a random vector s; and

encrypting the message m to the subset of attributes S using the master public key and the random vector s.

2. The computer implemented method of claim 1 and further comprising:

prior to generating the user secret key, receiving a set of allowed attributes U, and for each attribute in U, running a setup operation to generate the master public key and the master secret key.

3. The computer implemented method of claim 1 wherein encrypting the message m, comprises:

for each of the attributes in the subset of attributes S, generating a corresponding value c as a multiplication of the vector s and lattice B, and generating a ciphertext that is an inner product of the vector s and the vector y plus the message m; and

outputting an encrypted form of the message m as the value c and the ciphertext.

4. The computer implemented method of claim 3 and further comprising:

decrypting the encrypted form of the message m using the user secret key, the value c and the ciphertext.

5. A hardware computer readable storage medium storing computer executable instructions which, when executed by a computer, cause the computer to perform a computer implemented method of transmitting data using a computer with a processor, comprising:

receiving, with the processor, a set of attributes S in an access structure A, a master public key that includes a lattice B generated for the set of attributes S and a vector y generated for the set of attributes S, as well as a master secret key that includes a trapdoor lattice T generated for the set of attributes S, wherein the access structure A identifies a type of information that can be decrypted by an entity having the set of attributes S in the access structure A;

generating, with the processor, a user secret key for the set of attributes S in the access structure A, the user secret key comprising a vector e that satisfies a reconstruction function for lattice B, given vector y by;

outputting, with the processor, the user secret key by secret sharing the vector y with the reconstruction function for lattice B for use in decrypting a message m encrypted, using the master public key, to the set of attributes S in the access structure A;

generating values for the vector e that satisfy the reconstruction function eB=y for a given attribute, where eB is a multiplication of vector e with lattice B;

receiving the message m, a subset of the attributes S to which message m is to be encrypted, and the master public key;

selecting a random vector s; and

encrypting the message m to the subset of attributes S using the master public key and the random vector s.

6. The computer readable storage medium of claim 5 and further comprising:

prior to generating the user secret key, receiving a set of allowed attributes U, and for each attribute in U, running a setup operation to generate the master public key and the master secret key.

7. The computer readable storage medium of claim 5 wherein encrypting the message m, comprises:

for each of the attributes in the subset of attributes S, generating a corresponding value c as a multiplication of the vector s and lattice B, and generating a ciphertext that is an inner product of the vector s and the vector y plus the message m; and

outputting an encrypted form of the message m as the value c and the ciphertext.

8. The computer readable storage medium of claim 7 and further comprising:

decrypting the encrypted form of the message m using the user secret key, the value c and the ciphertext.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2011
From: VAIKUNTANATHAN, VINOD; VOULGARIS, PANAGIOTIS
To: MICROSOFT CORPORATION
Reel/Frame 025591/0241 →
Continuity (1)
Related Publication 20120155635A1 · Jun 21, 2012