US 11,856,083 B2
Analysis and debugging of fully-homomorphic encryption
Ehud Aharoni, Kfar Saba (IL); Omri Soceanu, Haifa (IL); Allon Adir, Kiryat Tivon (IL); Gilad Ezov, Nesher (IL); and Hayim Shaul, Kfar Saba (IL)
Assigned to International Business Machines Corporation, Armonk, NY (US)
Filed by International Business Machines Corporation, Armonk, NY (US)
Filed on Jan. 6, 2022, as Appl. No. 17/569,672.
Prior Publication US 2023/0216657 A1, Jul. 6, 2023
Int. Cl. H04L 9/00 (2022.01); G06F 9/38 (2018.01)
CPC H04L 9/008 (2013.01) [G06F 9/3887 (2013.01)] 16 Claims
OG exemplary drawing
 
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.