IP Library › Granted Patent US 12,219,043
Granted Patent B1
US 12,219,043 · App. 18/759,262 · Granted Feb 4, 2025

Method and system for homomorphic encryption

Inventors: Semen Konstantinovich Rososhek (Haifa, IL); Ilya Rososhek (Haifa, IL)
H04L9/008
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 12,219,043
App. No.
18/759,262
Granted
Feb 4, 2025
Kind
B1
Abstract

A system for matrix-based homomorphic encryption including a processor of a computing node configured to host a homomorphic encryption module and connected to at least one cloud server and a memory on which are stored machine-readable instructions that when executed by the processor, cause the processor to: acquire plaintext M required to be encrypted; select a size of a matrix and modulus n; select invertible × matrix S 1 over n , wherein n is a residue ring modulo n; compute an invertible × matrix S 2 over n ; set a secret key (S 1 , S 2 ); and encode the plaintext M by an integer m over n , wherein m is encoded by an envelope matrix comprising a form V ⁡ ( m ) = ( α 0 β m ) , wherein α and β are numbers chosen at random α, β∈ n .

Claims (129)

1. A system for matrix-based homomorphic encryption, comprising:

a processor of a computing node configured to host a homomorphic encryption module and connected to at least one cloud server; and

a memory on which are stored machine-readable instructions that when executed by the processor, cause the processor to:

acquire plaintext M required to be encrypted;

select a size of a matrix and modulus n;

select invertible × matrix S 1 over n , wherein n is a residue ring modulo n;

compute an invertible × matrix S 2 over n ;

set a secret key (S 1 ,S 2 ); and

encode the plaintext M by an integer m over n ,

wherein m is encoded by an envelope matrix comprising a form

V

⁡

(

m

)

=

(

α

0

β

m

)

,

wherein α and β are numbers chosen at random α, β∈ n .

2. The system of claim 1 , wherein the machine-readable instructions that when executed by the processor, cause the processor to:

select the invertible × matrix S 1 over wherein is a field of real numbers; and

compute the invertible × matrix S 2 over .

3. The system of claim 2 , wherein the machine-readable instructions that when executed by the processor, cause the processor to encode the M by a floating-point number m, over wherein m is encoded by an envelope matrix comprising a form

V

⁡

(

m

)

=

(

α

0

β

m

)

,

wherein α and β are floating point numbers chosen over at random.

4. The system of claim 1 , wherein the machine-readable instructions that when executed by the processor, cause the processor to access the envelop matrix V(m) over n .

5. The system of claim 4 , wherein the machine-readable instructions that when executed by the processor, cause the processor to compute a ciphertext C(m) of the plaintext M by C(m)=S 2 V(m)S 1 , where (S 1 , S 2 ) is the secret key.

6. The system of claim 1 , wherein the machine-readable instructions that when executed by the processor, cause the processor to access the envelop matrix V(m) over .

7. The system of claim 5 , wherein the machine-readable instructions that when executed by the processor, cause the processor to decrypt encrypted plaintext M by:

accessing the ciphertext C(m) over n ;

computing S 2 −1 (C(m))S 1 −1 =V(m) over n , using (S 1 ,S 2 ), wherein S 1 ,S 2 are two matrices used as the secret key and S 1 −1 and S 2 −1 are inverse matrices, and

extracting the plaintext m from the envelop matrix V(m).

8. The system of claim 5 , wherein the machine-readable instructions that when executed by the processor, cause the processor to decrypt encrypted plaintext M by:

accessing the ciphertext C(m) over ;

computing S 2 −1 (C(m))S 1 −1 =V(m) over using the secret key(S 1 ,S 2 ), wherein S 1 ,S 2 are two matrices used as the secret key and S 1 −1 and S 2 −1 are inverse matrices; and

extracting the plaintext m from the envelop matrix V(m).

9. The system of claim 5 , wherein the machine-readable instructions that when executed by the processor, cause the processor to execute homomorphic operations over cyphertexts computed as C(m)=S 2 V(m)S 1 , wherein the homomorphic operations comprising any of: addition, subtraction, multiplication, and division of encrypted data.

10. The system of claim 9 , wherein the machine-readable instructions that when executed by the processor, cause the processor to execute homomorphic operations over ciphertexts computed as C(m)=S 2 V(m)S 1 , comprising any of: encrypted search based on homomorphic index, generation of homomorphic hash and homomorphic comparison.

11. A method for matrix-based homomorphic encryption, comprising:

acquiring, by a computing node, plaintext M required to be encrypted;

selecting, by the computing node, a size of a matrix and modulus n;

selecting, by the computing node, invertible × matrix S 1 over n , wherein n is a residue ring modulo n;

computing, by the computing node, an invertible × matrix S 2 over n ;

setting, by the computing node, a secret key (S 1 ,S 2 ); and

encoding the plaintext M by an integer m over n ,

wherein m is encoded by an envelope matrix comprising a form

V

⁡

(

m

)

=

(

α

0

β

m

)

,

 wherein α and β are numbers chosen at random α, β∈ n .

12. The method of claim 11 , further comprising:

selecting the invertible × matrix S 1 over , wherein is a field of real numbers; and

computing the invertible × matrix S 2 over .

13. The method of claim 11 , further comprising encoding the M by a floating-point number m, over , wherein m is encoded by an envelope matrix comprising a form

V

⁡

(

m

)

=

(

α

0

β

m

)

,

wherein α and β are floating point numbers chosen at random over .

14. The method of claim 11 , further comprising accessing the envelop matrix V(m) over n .

15. The method of claim 14 , further comprising computing a ciphertext C(m) of the plaintext M by C(m)=S 2 V(m)S 1 , where (S 1 ,S 2 ) is the secret key.

16. The method of claim 11 , further comprising accessing the envelop matrix V(m) over .

17. The method of claim 11 , further comprising decrypting encrypted plaintext M by:

accessing the ciphertext C(m) over n ;

computing S 2 −1 (C(m))S 1 −1 =V(m) over n , using (S 1 ,S 2 ), wherein S 1 ,S 2 are two matrices used as the secret key and S 1 −1 and S 2 −1 are inverse matrices, and

extracting the plaintext m from the envelop matrix V(m).

18. The method of claim 11 , further comprising decrypting encrypted plaintext M by:

accessing the ciphertext C(m) over ;

computing S 2 −1 (C(m))S 1 −1 =V(m) over using the secret key(S 1 ,S 2 ), wherein S 1 ,S 2 are two matrices used as the secret key and S 1 −1 and S 2 −1 are inverse matrices; and

extracting the plaintext m from the envelop matrix V(m).

19. A non-transitory computer-readable medium comprising instructions, that when read by a processor, cause the processor to perform:

acquiring plaintext M required to be encrypted;

selecting a size of a matrix and modulus n;

selecting invertible × matrix S 1 over n , wherein n is a residue ring modulo n;

computing an invertible matrix S 2 over n ;

setting a secret key (S 1 ,S 2 ); and

encoding the plaintext M by an integer m over n ,

wherein m is encoded by an envelope matrix comprising a form

V

⁡

(

m

)

=

(

α

0

β

m

)

,

 wherein α and β are numbers chosen at random α, β∈ n .

20. The non-transitory computer-readable medium comprising instructions, that when read by a processor, cause the processor to compute a ciphertext C(m) of the plaintext m by C(m)=S 2 V(m)S 1 , where (S 1 ,S 2 ) is the secret key.

References Cited (3)
US 20130329883A1 · Tamayo-Rios · 2013 [cited by examiner]
US 20140177828A1 · Loftus · 2014 [cited by examiner]
US 20150033033A1 · Halevi · 2015 [cited by examiner]
Cited By (1)
US 12,438,858