IP Library › Granted Patent US 12,732,340
Granted Patent B2
US 12,732,340 · App. 18/231,716 · Granted Sep 8, 2026

Evaluating convolutions using encrypted data

Inventors: Dongwoo Kim (San Jose, CA); Cyril Guyot (San Jose, CA)
Assignee: Western Digital Technologies, Inc.
H04L9/008H04L9/06H04L9/3026
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,732,340
App. No.
18/231,716
Filed
Aug 8, 2023
Granted
Sep 8, 2026
Kind
B2
Art Unit
2436
USPC
380/28
Abstract

A client device encodes one or more input datasets of real numbers into a plaintext polynomial with integral coefficients that do not include an imaginary component and generates an input ciphertext by encrypting the plaintext polynomial according to a Fully Homomorphic Encryption (FHE) scheme. The input ciphertext includes at least encrypted coefficients of an input polynomial. A server receives the input ciphertext and performs a convolution on the input ciphertext using a kernel by at least in part separately multiplying the input polynomial by one or more kernel polynomials to result in one or more corresponding convolved polynomials. The one or more kernel polynomials include kernel coefficients encoded using kernel values for the kernel. At least a plurality of coefficients is used from each of the one or more convolved polynomials to derive an output ciphertext representing an output of the convolution on the input ciphertext using the kernel.

Claims (79)

1 . A server, comprising:

an interface configured to communicate with a client device; and

at least one processor, individually or in combination, configured to:

receive an input ciphertext from the client device including at least encrypted coefficients of an input polynomial, wherein the encrypted coefficients have been encrypted according to a Fully Homomorphic Encryption (FHE) scheme after encoding one or more input datasets of real numbers into a plaintext polynomial with integral coefficients;

perform a convolution on the input ciphertext using a kernel by at least in part separately multiplying the input polynomial by one or more kernel polynomials to result in one or more corresponding convolved polynomials, wherein the one or more kernel polynomials include kernel coefficients encoded using kernel values for the kernel;

use at least a plurality of coefficients in each of the one or more convolved polynomials to derive an output ciphertext representing an output of the convolution on the input ciphertext using the kernel; and

perform a modified bootstrapping on the output ciphertext, wherein in performing the modified bootstrapping, the at least one processor, individually or in combination, is further configured to:

convert coefficients of the output ciphertext into a plurality of slots of an input vector according to the FHE scheme;

perform a modular reduction approximated by a scaled sine function on each slot of the plurality of slots to generate a plurality of reduced slots; and

evaluate an activation function for the plurality of reduced slots to generate an output vector.

2 . The server of claim 1 , wherein the one or more convolved polynomials are a plurality of convolved polynomials, and wherein the at least one processor, individually or in combination, is further configured to:

select a subset of coefficients from each convolved polynomial of the plurality of convolved polynomials based on a scaled geometric sequence with a common ratio of two between each successive term in the geometric sequence; and

use the selected subset of coefficients from each convolved polynomial to form the output ciphertext.

3 . The server of claim 1 , wherein the input polynomial and the one or more kernel polynomials are encoded as polynomials in a ring of polynomials expressed as = [X]/(X N +1) with N being a power of two and [X] denoting integral coefficients of the polynomials in the ring.

4 . The server of claim 3 , wherein N is set as greater than or equal to the larger of Bw 2 and Bk 2 , where B is a total number of input datasets encoded into the plaintext polynomial, w is a row size or a column size of each input dataset, and k is a row size or a column size of each batch kernel of the kernel that is used in the convolution for each input dataset.

5 . The server of claim 1 , wherein in performing the modified bootstrapping, the at least one processor, individually or in combination, is further configured to at least:

extract values from the output vector based on a stride for a first convolutional layer of a Convolutional Neural Network (CNN) including the convolution; and

convert the extracted values into output coefficients of an encrypted result polynomial according to the FHE scheme.

6 . The server of claim 5 , wherein the at least one processor, individually or in combination, is further configured to set the encrypted result polynomial as a new input polynomial for a second convolutional layer of the CNN including a second convolution performed by at least in part separately multiplying the new input polynomial by one or more second layer kernel polynomials including second layer kernel coefficients encoded using second layer kernel values for a second layer kernel.

7 . A method, comprising:

receiving from a client device an input ciphertext including at least encrypted coefficients of an input polynomial, wherein the encrypted coefficients have been encrypted according to a Fully Homomorphic Encryption (FHE) scheme after encoding one or more input datasets of real numbers into a plaintext polynomial;

encoding a kernel into one or more kernel polynomials using kernel values from the kernel as kernel coefficients in the one or more kernel polynomials;

performing a convolution on the input ciphertext at least in part by separately multiplying the input polynomial by the one or more kernel polynomials to result in one or more corresponding convolved polynomials;

using at least a plurality of coefficients in each of the one or more convolved polynomials to derive an output ciphertext representing an output of the convolution on the input ciphertext using the kernel; and

performing a modified bootstrapping on the output ciphertext by at least:

converting coefficients of the output ciphertext into a plurality of slots of an input vector according to the FHE scheme;

performing a modular reduction approximated by a scaled sine function on each slot of the plurality of slots to generate a plurality of reduced slots; and

evaluating an activation function for the plurality of reduced slots to generate an output vector.

8 . The method of claim 7 , wherein the one or more convolved polynomials are a plurality of convolved polynomials, and wherein the method further comprises:

selecting a subset of coefficients from each convolved polynomial of the plurality of convolved polynomials based on a scaled geometric sequence with a common ratio of two between each successive term in the geometric sequence; and

using the selected subset of coefficients from each convolved polynomial to form the output ciphertext.

9 . The method of claim 7 , wherein the input polynomial and the one or more kernel polynomials are encoded as polynomials in a ring of polynomials expressed as = [X]/(X N +1) with N being a power of two and [X] denoting integral coefficients of the polynomials in the ring.

10 . The method of claim 9 , wherein N is set as greater than or equal to the larger of Bw 2 and Bk 2 , where B is a total number of input datasets encoded into the plaintext polynomial, w is a row size or a column size of each input dataset, and k is a row size or a column size of each batch kernel of the kernel that is used in the convolution for each input dataset.

11 . The method of claim 7 , further comprising:

extracting values from the output vector based on a stride for a first convolutional layer of a Convolutional Neural Network (CNN) including the convolution; and

converting the extracted values into output coefficients of an encrypted result polynomial according to the FHE scheme.

12 . The method of claim 11 , further comprising setting the encrypted result polynomial as a new input polynomial for a second convolutional layer of the CNN including a second convolution performed by at least in part separately multiplying the new input polynomial by one or more second layer kernel polynomials including second layer kernel coefficients encoded using second layer kernel values for a second layer kernel.

13 . A client device, comprising:

an interface configured to communicate with a server; and

at least one processor, individually or in combination, configured to:

encode one or more input datasets of real numbers into a plaintext polynomial with integral coefficients that do not include an imaginary component in a ring of polynomials expressed as = [X]/(X N +1) with N being a power of two and [X] denoting integral coefficients of the polynomials in the ring;

generate an input ciphertext by encrypting the plaintext polynomial using a first key according to a Fully Homomorphic Encryption (FHE) scheme, wherein the input ciphertext includes at least encrypted coefficients of an input polynomial; and

send the input ciphertext to the server via the interface for the server to perform at least one convolution on the input polynomial.

14 . The client device of claim 13 , wherein the at least one processor, individually or in combination, is further configured to:

receive an encrypted result polynomial from the server via the interface;

decrypt the encrypted result polynomial according to the FHE scheme using a secret key to derive a decrypted polynomial; and

determine one or more Convolutional Neural Network (CNN) results for the one or more input datasets by decoding the decrypted polynomial using decrypted coefficients of the decrypted polynomial.

15 . The client device of claim 13 , wherein the at least one processor, individually or in combination, is further configured to encode the one or more input datasets of real numbers into the plaintext polynomial by at least:

separately multiplying the real numbers of the one or more input datasets by a scaling factor; and

determining coefficients of the plaintext polynomial by rounding each of the corresponding products of the real numbers and the scaling factor to a nearest integer.

16 . The client device of claim 15 , wherein the at least one processor, individually or in combination, is further configured to:

determine if a total size of the one or more input datasets is equal to N divided by 2 S , wherein s is a positive integer greater than zero; and

in response to determining that the total size of the one or more input datasets is equal to N divided by 2 S , increase degrees of terms in the plaintext polynomial by a factor of 2 S .

17 . The client device of claim 15 , wherein the at least one processor, individually or in combination, is further configured to:

determine if a total size of a plurality of input datasets is larger than N; and

in response to determining that the total size of the plurality of input datasets is larger than N, set a subset of input datasets from the plurality of input datasets as the one or more input datasets for encoding into the plaintext polynomial.

18 . A method, comprising:

encoding one or more input datasets of real numbers into a plaintext polynomial by:

separately multiplying the real numbers of the one or more input datasets by a scaling factor;

determining coefficients of the plaintext polynomial by rounding each of the corresponding products of the real numbers and the scaling factor to a nearest integer; and

using the determined coefficients as coefficients in the plaintext polynomial, wherein the plaintext polynomial is in a ring of polynomials expressed as = [X]/(X N +1) with N being a power of two and [X] denoting integral coefficients of the polynomials in the ring;

generating an input ciphertext by encrypting the plaintext polynomial using a first key according to a Fully Homomorphic Encryption (FHE) scheme, wherein the input ciphertext includes at least encrypted coefficients of an input polynomial; and

sending the input ciphertext to a server to perform at least one convolution on the input polynomial using at least one kernel.

19 . A system, comprising:

a client device including at least one processor, individually or in combination, configured to:

encode one or more input datasets of real numbers into a plaintext polynomial with integral coefficients that do not include an imaginary component, wherein the plaintext polynomial is in a ring of polynomials expressed as = [X]/(X N +1) with N being a power of two and [X] denoting integral coefficients of the polynomials in the ring; and

generate an input ciphertext by encrypting the plaintext polynomial using a first key according to a Fully Homomorphic Encryption (FHE) scheme, wherein the input ciphertext includes at least encrypted coefficients of an input polynomial; and

a server including means for:

receiving the input ciphertext from the client device;

performing a convolution on the input ciphertext using a kernel by at least in part separately multiplying the input polynomial by one or more kernel polynomials to result in one or more corresponding convolved polynomials, wherein the one or more kernel polynomials include kernel coefficients encoded using kernel values for the kernel; and

using at least a plurality of coefficients in each of the one or more convolved polynomials to derive an output ciphertext representing an output of the convolution on the input ciphertext using the kernel.

20 . The system of claim 19 , wherein the at least one processor of the client device, individually or in combination, is further configured to encode the one or more input datasets of real numbers into the plaintext polynomial by at least:

separately multiplying the real numbers of the one or more input datasets by a scaling factor; and

determining coefficients of the plaintext polynomial by rounding each of the corresponding products of the real numbers and the scaling factor to a nearest integer.

21 . The system of claim 19 , wherein the server further includes means for:

performing a modified bootstrapping on the output ciphertext by at least:

converting coefficients of the output ciphertext into a plurality of slots of an input vector according to the FHE scheme;

performing a modular reduction approximated by a scaled sine function on each slot of the plurality of slots to generate a plurality of reduced slots; and

evaluating an activation function for the plurality of reduced slots to generate an output vector.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2025
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 070313/0840 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT- A&R Recorded Nov 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 065656/0649 →
PATENT COLLATERAL AGREEMENT - DDTL Recorded Nov 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 065657/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2023
From: KIM, DONGWOO; GUYOT, CYRIL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 064528/0747 →
Continuity (2)
Provisional Application 63423952 · Nov 9, 2022
Related Publication 20240171372A1 · May 23, 2024
References Cited (42)
US 8630422B2 · Gentry · 2014 [cited by applicant]
US 9800517B1 · Anderson · 2017 [cited by applicant]
US 10944552B2 · Leong et al. · 2021 [cited by applicant]
US 12001577B1 · Xiong · 2024 [cited by examiner]
US 20120039473A1 · Gentry · 2012 [cited by examiner]
US 20160119119A1 · Calapodescu et al. · 2016 [cited by applicant]
US 20170134158A1 · Pasol et al. · 2017 [cited by applicant]
US 20170180115A1 · Laine · 2017 [cited by examiner]
US 20180234253A1 · Camenisch et al. · 2018 [cited by applicant]
US 20190386814A1 · Ahmed · 2019 [cited by applicant]
US 20200387777A1 · Avestimehr et al. · 2020 [cited by applicant]
US 20210328765A1 · Lee · 2021 [cited by examiner]
US 20220060314A1 · Sehrawat et al. · 2022 [cited by applicant]
US 20230027010A1 · Raynal et al. · 2023 [cited by applicant]
US 20250038948A1 · Veneroso · 2025 [cited by applicant]
CN 111984990B · 2022 [cited by applicant]
EP 4694027A1 · 2026 [cited by examiner]
WO WO2022191770A1 · 2022 [cited by examiner]
Dongwoo Kim, Cyril Guyot; “Optimized Privacy-Preserving CNN Inference With Fully Homomorphic Encryption”; IEEE Transactions on Information Forensics and Security; vol. 18; Mar. 2023; pp. 2175-2187 (Year: 2023). [cited by examiner]
Aliasgari et al.; “Distributed and Private Coded Matrix Computation with Flexible Communication Load”; Jan. 2019; available at: https://arxiv.org/pdf/1901.07705.pdf. [cited by applicant]
Cheon et al.; “Homomorphic encryption for arithmetic of approximate numbers; International Conference on the Theory and Application of Cryptology and Information Security”; Sep. 2017; available at: https://eprint.iacr.o… [cited by applicant]
Dathathri et al.; “Eva: An encrypted vector arithmetic language and compiler for efficient homomorphic computation”; Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation; 2020… [cited by applicant]
Dutta et al.; “On the optimal recovery threshold of coded matrix multiplication”; IEEE Transactions on Information Theory; 2019; available at: https://arxiv.org/pdf/1801.10292.pdf. [cited by applicant]
Jahani-Nezhad et al.; “Berrut approximated coded computing: Straggler resistance beyond polynomial computing”; Feb. 2022; available at: https://arxiv.org/pdf/2009.08327.pdf. [cited by applicant]
Jeong et al.; “Approximate coded matrix multiplication is nearly twice as efficient as exact multiplication is nearly twice as efficient as exact multipliation”; 2021; available at: https://arxiv.org/pdf/2105.01973.pdf. [cited by applicant]
Kanagavalli et al.; “Big Data Security using Homomorphic Encryption”; Turkish Journal of Computer and Mathematics Education; 2021. [cited by applicant]
Kumar et al.; “Privacy preserving, verifiable and efficient outsourcing algorithm for matrix multiplication to a malicious cloud server”; Mar. 2017; available at: https://www.tandfonline.com/doi/full/10.1080/23311916.20… [cited by applicant]
Pulido-Gaytan et al.; “A Survey on Privacy-Preserving Machine Learning with Fully Homomorphic Encryption”; Sep. 2020; available at: https://www.researchgate.net/publication/344122938_A_Survey_on_Privacy-Preserving_Machi… [cited by applicant]
Ramamoorthy et al.; “Universally Decodable Matrices for Distributed Matrix-Vector Multipliation”; Jan. 2019; available at: https://arxiv.org/pdf/1901.10674.pdf. [cited by applicant]
So et al.; “CodedPrivateML: A Fast and Privacy-Preserving Framework for Distributed Machine Learning”; Jan. 2021; available at: https://eprint.iacr.org/2019/140.pdf. [cited by applicant]
Tegin et al.; “Straggler Mitigation through Unequal Error Protection for Distributed Matrix Multiplication”; 2021; available at: http://repository.bilkent.edu.tr/bitstream/handle/11693/77047/Straggler_Mitigation_through… [cited by applicant]
Troncoso-Pastoriza et al.; “Privacy-Preserving Data Sharing and Computation Across Multiple Data Providers with Homomorphic Encryption”; Jan. 2022; available at: https://link.springer.com/chapter/10.1007/978-3-030-77287… [cited by applicant]
Yu et al.; “Straggler Mitigation in Distributed Matrix Multiplication: Fundamental Limits and Optimal Coding”; IEEE Transactions on Information Theory; Jan. 2018; available at: https://arxiv.org/abs/1801.07487. [cited by applicant]
Yu et al.; “Polynomial Codes: an Optimal Design for High-Dimensional Coded Matrix Multiplication”; Jan. 2018; available at: https://arxiv.org/abs/1705.10464. [cited by applicant]
Aganya et al.; “Symmetric Fully Homomorphic Encryption Scheme with Polynomials Operations”; Mar. 2018; available at: https://ieeexplore.ieee.org/document/8474729. [cited by applicant]
Kim et al.; “ARK: Fully Homomorphic Encryption Accelerator with Runtime Data Generation and Inter-Operation Key Reuse”; May 2022; available at: https://arxiv.org/abs/2205.00922. [cited by applicant]
Hilder Vitor Lima Pereira; “Bootstrapping fully homomorphic encryption over the integers in less than one second”; Aug. 2020; available at: https://eprint.iacr.org/2020/995. [cited by applicant]
Han et al.; “Efficient Privacy Preserving Logistic Regression Inference and Training”; Nov. 2020; available at: https://eprint.iacr.org/2020/1396. [cited by applicant]
Migliore et al.; “Exploration of Polynomial Multiplication Algorithms for Homomorphic Encryption Schemes”; Dec. 2015; available at: https://ieeexplore.ieee.org/document/7393307. [cited by applicant]
Choi et al.; “Impala: Low-Latency, Communication-Efficient Private Deep Learning Inference”; May 2022; available at: https://arxiv.org/abs/2205.06437. [cited by applicant]
Viand et al.; “SoK: Fully Homomorphic Encryption Compilers”; Jan. 2021; available at: https://arxiv.org/abs/2101.07078. [cited by applicant]
Pending U.S. Appl. No. 18/231,706, filed Aug. 8, 2023, entitled “Privacy-Preserving Distributed Computing”, Dongwoo Kim. [cited by applicant]