US 12,438,858 B2
Method and system for a lattice-based homomorphic proxy re-encryption scheme
Arinjita Paul, Thane (IN); Rajan Mindigal Alasingara Bhattachar, Bangalore (IN); and Imtiyazuddin Shaik, Hyderabad (IN)
Assigned to Tata Consultancy Services Limited, Mumbai (IN)
Filed by Tata Consultancy Services Limited, Mumbai (IN)
Filed on Nov. 7, 2023, as Appl. No. 18/503,796.
Claims priority of application No. 202221071716 (IN), filed on Dec. 12, 2022.
Prior Publication US 2024/0195618 A1, Jun. 13, 2024
Int. Cl. H04L 9/40 (2022.01); H04L 9/00 (2022.01); H04L 9/14 (2006.01); H04L 9/30 (2006.01)
CPC H04L 63/0471 (2013.01) [H04L 9/008 (2013.01); H04L 9/14 (2013.01); H04L 9/3093 (2013.01); H04L 63/0428 (2013.01)] 17 Claims
OG exemplary drawing
 
1. A processor implemented method, the method comprising:
receiving, by a first client machine and a second client machine via corresponding one or more hardware processors, a plurality of public parameters from a trusted third party server, wherein the plurality of public parameters comprises a security parameter, a number of encryption levels and a bit value;
generating, via one or more hardware processors of the first client machine, a first public-private key pair of a first user based on the plurality of public parameters and a user index using a probabilistic key generation algorithm;
simultaneously generating, via one or more hardware processors of a second client machine, a second public-private key pair of a second user based on the plurality of public parameters and the user index using the probabilistic key generation algorithm;
generating, via the one or more hardware processors of the first client machine, a ciphertext based on a plaintext associated with the first user, the public key from the first public-private key pair and the plurality of public parameters using a probabilistic encryption algorithm;
transmitting, via the one or more hardware processors of the first client machine, the ciphertext to a proxy server machine, wherein the ciphertext is received by the proxy server machine;
performing a computation, via one or more hardware processors of the proxy server machine, on the ciphertext using a Fully Homomorphic Encryption (FHE) based technique;
generating, via the one or more hardware processors of the first client machine, a re-encryption key based on the first public-private key pair of the first user, a public key of the second user and the plurality of public parameter using a probabilistic re-encryption key generation algorithm, wherein generating the re-encryption key by the first client machine based on the first public-private key pair of the first user, the public key of the second user and the plurality of public parameter using the probabilistic re-encryption key generation algorithm comprises:
generating a plurality of random matrices using a random matrix generation technique, wherein the plurality of random matrices comprises a first random matrix, a second random matrix and a third random matrix;
computing powers of two of the first random matrix by multiplying each element of the first random matrix with increasing powers of two;
generating a first key component based on a public key from the second public-private key pair of the second user and powers of two of the first random matrix;
generating a second key component by encrypting the second random matrix using the public key from the first public-private key pair of the first user and the third random matrix; and
generating the re-encryption key by combining the first key component and the second key component;
transmitting, via the one or more hardware processors of the first client machine, the generated re-encryption key to the proxy server machine, wherein the re-encryption key is received by the proxy server machine;
generating, via the one or more hardware processors of the proxy server machine, a re-encrypted ciphertext based on the re-encryption key, the ciphertext and the plurality of public parameters using a probabilistic re-encryption algorithm;
transmitting, via the one or more hardware processors of the proxy server machine, the re-encrypted ciphertext to the second client machine, wherein the re-encrypted ciphertext is received by the second client machine; and
generating, by the one or more hardware processors of the second client machine, a resultant plaintext based on the re-encrypted ciphertext, and a private key of the second public-private key pair of the second user using a probabilistic decryption algorithm.