US11856083B2ActiveUtilityA1

Analysis and debugging of fully-homomorphic encryption

50
Assignee: IBMPriority: Jan 6, 2022Filed: Jan 6, 2022Granted: Dec 26, 2023
Est. expiryJan 6, 2042(~15.5 yrs left)· nominal 20-yr term from priority
G06F 15/80G06F 9/3887H04L 9/008
50
PatentIndex Score
0
Cited by
13
References
16
Claims

Abstract

In response to identifying that a Single Instruction, Multiple Data (SIMD) operation has been instructed to be performed or has been performed by a Fully-Homomorphic Encryption (FHE) software on one or more original ciphertexts, performing the following steps: Performing the same operation on one or more original plaintexts, respectively, that are each a decrypted version of one of the one or more original ciphertexts. Decrypting a ciphertext resulting from the operation performed on the one or more original ciphertexts. Comparing the decrypted ciphertext with a plaintext resulting from the same operation performed on the one or more original plaintexts. Based on said comparison, performing at least one of: (a) determining an amount of noise caused by the operation, (b) determining whether unencrypted data underlying the one or more original ciphertexts has become corrupt by the operation, and (c) determining correctness of an algorithm which includes the operation.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A computer-implemented method comprising:
 in response to identifying that a Single Instruction, Multiple Data (SIMD) operation has been instructed to be performed or has been performed by a Fully-Homomorphic Encryption (FHE) software on one or more original ciphertexts, performing the following steps, automatically:
 (a) performing the same operation on one or more original plaintexts, respectively, that are each a decrypted version of one of the one or more original ciphertexts; 
 (b) decrypting a ciphertext resulting from the operation performed on the one or more original ciphertexts; 
 (c) comparing the decrypted ciphertext with a plaintext resulting from the same operation performed on the one or more original plaintexts; and 
 (d) based on said comparison, performing at least one of:
 determining an amount of noise caused by the operation performed on the one or more original ciphertexts, 
 determining whether unencrypted data underlying the one or more original ciphertexts has become corrupt by the operation performed on the one or more original ciphertexts, and 
 determining correctness of an algorithm which includes the operation performed on the one or more original ciphertexts; 
 
 
 wherein the method is implemented as an implementation of an abstract Application Programming Interface (API) having a set of operators identical to a set of operators of the FHE software; and 
 wherein the abstract API comprises an abstract class programmed to interface with the FHE software so as to: provide instructions to the FHE software to perform the decryption of step (b), and receive the decrypted ciphertext from the FHE software. 
 
     
     
       2. The computer-implemented method of  claim 1 , wherein:
 steps (a) and (b) are performed by the FHE software or by a different FHE software. 
 
     
     
       3. The computer-implemented method of  claim 1 , wherein:
 the method is iterated over multiple SIMD operations; and 
 in each of the iterations:
 the one or more original ciphertexts are a result of performing the SIMD operation on the one or more original ciphertexts of the previous iteration, and 
 the one or more original plaintext are a result of performing the same operation on the one or more original plaintexts of the previous iteration. 
 
 
     
     
       4. The computer-implemented method of  claim 3 , further comprising:
 maintaining a log of the comparisons of step (c) of all the iterations. 
 
     
     
       5. The computer-implemented method of  claim 1 , wherein the abstract class is further programmed to:
 identify that the SIMD operation has been instructed to be performed by the FHE software on the one or more original ciphertexts; 
 transparently pass to the FHE software any instructions from a user's algorithm that are intended for the FHE software, except for step (b) which is performed not by the FHE software; and 
 perform the comparison of step (c). 
 
     
     
       6. The computer-implemented method of  claim 1 , performed by at least one hardware processor. 
     
     
       7. A system comprising:
 at least one hardware processor; and 
 a non-transitory computer-readable storage medium having program code embodied therewith, the program code executable by said at least one hardware processor to:
 in response to identifying that a Single Instruction, Multiple Data (SIMD) operation has been instructed to be performed or has been performed by a Fully-Homomorphic Encryption (FHE) software on one or more original ciphertexts, perform the following steps, automatically:
 (a) performing the same operation on one or more original plaintexts, respectively, that are each a decrypted version of one of the one or more original ciphertext, 
 (b) decrypting a ciphertext resulting from the operation performed on the one or more original ciphertexts, 
 (c) comparing the decrypted ciphertext with a plaintext resulting from the same operation performed on the one or more original plaintexts, and 
 (d) based on said comparison, performing at least one of:
 determining an amount of noise caused by the operation performed on the one or more original ciphertexts, 
 determining whether unencrypted data underlying the one or more original ciphertexts has become corrupt by the operation performed on the one or more original ciphertexts, and 
 determining correctness of an algorithm which includes the operation performed on the one or more original ciphertexts; 
 
 
 
 wherein the program code is implemented as an implantation of an abstract Application Programming Interface (API) having a set of operators identical to a set of operators of the FHE software; and 
 wherein the abstract API comprises an abstract class programmed to interface with the FHE software so as to: provide instructions to the FHE software to perform the decryption of step (b), and receive the decrypted ciphertext from the FHE software. 
 
     
     
       8. The system of  claim 7 , wherein:
 steps (a) and (b) are performed by the FHE software or by a different FHE software. 
 
     
     
       9. The system of  claim 7 , wherein:
 the program code is executable to be iterated over multiple SIMD operations; and 
 in each of the iterations:
 the one or more original ciphertexts are a result of performing the SIMD operation on the one or more original ciphertexts of the previous iteration, and 
 the one or more original plaintext are a result of performing the same operation on the one or more original plaintexts of the previous iteration. 
 
 
     
     
       10. The system of  claim 9 , wherein the program code is further executable to:
 maintain a log of the comparisons of step (c) of all the iterations. 
 
     
     
       11. The system of  claim 7 , wherein the abstract class is further programmed to:
 identify that the SIMD operation has been instructed to be performed by the FHE software on the one or more original ciphertexts; 
 transparently pass to the FHE software any instructions from a user's algorithm that are intended for the FHE software, except for step (b) which is performed not by the FHE software; and 
 perform the comparison of step (c). 
 
     
     
       12. A computer program product comprising a non-transitory computer-readable storage medium having program code embodied therewith, the program code executable by at least one hardware processor to:
 in response to identifying that a Single Instruction, Multiple Data (SIMD) operation has been instructed to be performed or has been performed by a Fully-Homomorphic Encryption (FHE) software on one or more original ciphertexts, performing the following steps, automatically:
 (a) performing the same operation on one or more original plaintexts, respectively, that are each a decrypted version of one of the one or more original ciphertexts; 
 (b) decrypting a ciphertext resulting from the operation performed on the one or more original ciphertexts; 
 (c) comparing the decrypted ciphertext with a plaintext resulting from the same operation performed on the one or more original plaintexts; and 
 (d) based on said comparison, performing at least one of:
 determining an amount of noise caused by the operation performed on the one or more original ciphertexts, 
 determining whether unencrypted data underlying the one or more original ciphertexts has become corrupt by the operation performed on the one or more original ciphertexts, and 
 determining correctness of an algorithm which includes the operation performed on the one or more original ciphertexts; 
 
 
 wherein the program code is implemented as an implementation of an abstract Application Programming Interface (API) having a set of operators identical to a set of operators of the FHE software; and 
 wherein the abstract API comprises an abstract class programmed to interface with the FHE software so as to: provide instructions to the FHE software to perform the decryption of step (b), and receive the decrypted ciphertext from the FHE software. 
 
     
     
       13. The computer program product of  claim 12 , wherein:
 the program code is executable to be iterated over multiple SIMD operations; 
 in each of the iterations:
 the one or more original ciphertexts are a result of performing the SIMD operation on the one or more original ciphertexts of the previous iteration, and 
 the one or more original plaintext are a result of performing the same operation on the one or more original plaintexts of the previous iteration. 
 
 
     
     
       14. The computer program product of  claim 12 , wherein the abstract class is further programmed to:
 identify that the SIMD operation has been instructed to be performed by the FHE software on the one or more original ciphertexts; 
 transparently pass to the FHE software any instructions from a user's algorithm that are intended for the FHE software, except for step (b) which is performed not by the FHE software; and 
 perform the comparison of step (c). 
 
     
     
       15. The computer program product of  claim 12 , wherein:
 steps (a) and (b) are performed by the FHE software or by a different FHE software. 
 
     
     
       16. The computer program product of  claim 12 , wherein the program code is further executable to:
 maintain a log of the comparisons of step (c) of all the iterations.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.