IP Library Granted Patent US 10,211,980
Granted Patent B1
US 10,211,980 · App. 15/938,500 · Granted Feb 19, 2019

Method for lattice-based decryption of data

Inventor: Yehuda Lindell (Givat Shmuel, IL)
Assignee: Bar Ilan University
H04L9/085H04L9/0825H04L9/0852H04L9/3093G06N99/002
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 10,211,980
App. No.
15/938,500
Granted
Feb 19, 2019
Kind
B1
Abstract

The subject matter discloses a method for decrypting ciphertext, comprising obtaining multiple shares of a vector representing a secret key in multiple computerized entities, receiving a request to decrypt a ciphertext from an application server, each entity of the multiple computerized entities computes a linear function, the linear function receives as input a share of the vector stored in each entity of the multiple computerized entities and a ciphertext accessible to the entity, performing a plaintext multi-party computation (MPC) process by the multiple computerized entities using the output of the computation performed by each entity independently, computing an output of the linear function receiving the secret key and the ciphertext as input, wherein none of the multiple computerized entities have access to the share stored in another computerized entity.

Claims (33)

1. A method for decrypting ciphertext, comprising:

obtaining multiple shares of a vector representing a secret key in multiple computerized entities;

receiving a request to decrypt the ciphertext from an application server;

computing a linear function by each entity of the multiple computerized entities to obtain an output, the linear function receives as input a share of the vector stored in each entity of the multiple computerized entities and the ciphertext accessible to each entity of the multiple computerized entities;

performing a plaintext multi-party computation (MPC) process by the multiple computerized entities using the output of the computation of the linear function performed by each entity of the multiple computerized entities independently;

computing an output of the linear function receiving the secret key and the ciphertext as inputs;

performing a computerized verification process configured to verify that all the multiple computerized entities correctly computed their linear function and their plaintext MPC process; and

performing a correctness verification MPC process by the multiple computerized entities using the output of the computation of the linear function performed by each entity of the multiple computerized entities only upon receiving a confirmation that all the multiple computerized entities correctly computed their linear function,

wherein none of the multiple computerized entities have access to the share of the vector stored in another computerized entity.

2. The method of claim 1 , further comprises performing a distribution multi-party computation (MPC) process to distribute shares of a vector representing a secret key in the multiple computerized entities.

3. The method of claim 1 , further comprises outputting a plaintext from the linear function receiving the secret key and the ciphertext as input.

4. The method of claim 1 , wherein the computerized verification process further comprises:

obtaining by multiple subsets of the multiple computerized entities multiple mathematically associated shares of a secret, none of the multiple computerized entities have access to the share stored in another entity;

each of the multiple subsets of the multiple computerized entities computes the linear function using the shares associated with the multiple subsets of the multiple computerized entities;

performing a correctness verification MPC process between all the multiple computerized entities using the output of the linear function computed by each of the multiple subsets of the multiple computerized entities;

responsive to determining all results of a linear combination provided by all the multiple computerized entities are equal, sending an indication to perform the plaintext MPC process and output a plaintext.

5. The method of claim 4 , wherein the mathematically associated shares are additive shares of the secret.

6. The method of claim 4 , wherein the mathematically associated shares are based on Shamir shares based on polynomials.

7. The method of claim 4 , wherein the secret is the secret key vector s.

8. The method of claim 1 , further comprises performing a computerized ciphertext verification process configured to verify that the ciphertext that was decrypted matched a predefined form.

9. The method of claim 8 , wherein the computerized ciphertext verification process comprises a multi-party computation process performed by the multiple computerized entities.

10. The method of claim 1 , further comprises sending a plaintext to a device that requested the plaintext.

11. A system for decrypting ciphertext, comprising multiple computerized entities having communication modules, memories and processing units,

said multiple computerized entities are configured to:

store multiple shares of a vector representing a secret key;

receive a request to decrypt the ciphertext from an application server,

wherein each entity of the multiple computerized entities computes a linear function to obtain an output, and

wherein the linear function receives as input a share of the vector stored in each entity of the multiple computerized entities and the ciphertext accessible to each entity of the multiple computerized entities;

perform a plaintext multi-party computation (MPC) process by the multiple computerized entities using the output of the computation of the linear function performed by each entity of the multiple computerized entities independently;

compute an output of the linear function receiving the secret key and the ciphertext as inputs; and

perform a computerized verification process configured to verify that all the multiple computerized entities correctly computed their linear function and their plaintext MPC process; and

perform a correctness verification MPC process by the multiple computerized entities using the output of the computation of the linear function performed by each entity of the multiple computerized entities only upon receiving a confirmation that all the multiple computerized entities correctly computed their linear function,

wherein none of the multiple computerized entities have access to the share of the vector stored in another entity.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2022
From: BAR ILAN UNIVERSITY
To: UNBOUND SECURITY LTD
Reel/Frame 059289/0592 →
CHANGE OF NAME Recorded Mar 17, 2022
From: UNBOUND SECURITY LTD
To: COINBASE IL RD LTD
Reel/Frame 059380/0994 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2018
From: LINDELL, YEHUDA
To: BAR ILAN UNIVERSITY
Reel/Frame 045375/0587 →