IP Library Granted Patent US 12695593
Granted Patent B1
US 12695593 · App. 19/305,209 · Granted Jul 28, 2026

Homomorphic encryption-enabled parallel file system

Inventors: Christopher Girard (Sanford, FL); Ian Davies (Longmont, CO)
Assignee: VDURA, Inc.
H04L9/008G06F16/1858
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 12695593
App. No.
19/305,209
Granted
Jul 28, 2026
Kind
B1
Abstract

A storage system, for example, a parallel file system stores and processes encrypted data. The parallel file system receives a write request from a client device, to store data. The parallel file system determines a distribution map for storing the data and sends to the client device. A plurality of chunks of encrypted data encrypted using homomorphic encryption are received. The parallel file system stores each of the plurality of chunks in a storage node according to the distribution map. The parallel file system receives a request to perform a computation, for example, compression, deduplication, data mining, or collaborative processing of shared data. The parallel file system performs the computation in parallel on the plurality of storage nodes. The computation is performed on the encrypted data without decrypting the encrypted data. The parallel file system sends the result of computation to a client device.

Claims (70)

1 . A computer-implemented method, comprising:

receiving, from a client device, by a parallel file system, a write request to store data in the parallel file system, wherein the parallel file system stores data across multiple storage nodes;

responsive to receiving the write request, determining a distribution map for storing the data, the distribution map identifying a plurality of storage nodes and comprising a mapping from portions of data to storage nodes of the plurality of storage nodes;

sending the distribution map to the client device;

receiving a plurality of chunks of encrypted data, wherein the plurality of chunks of encrypted data are encrypted using homomorphic encryption, wherein encrypting the plurality of chunks comprises homomorphic encryption of a stripe of data, the stripe comprising one or more chunks of parity data;

storing, by the parallel file system, each of the plurality of chunks in a storage node according to the distribution map;

receiving, by the parallel file system, a request to perform a computation;

performing, by the parallel file system, the computation in parallel on the plurality of storage nodes, wherein the computation is performed on the encrypted data without decrypting the encrypted data; and

sending a result of computation.

2 . The computer-implemented method of claim 1 , wherein the distribution map comprises an erasure coding layout to be used for storing the data.

3 . The computer-implemented method of claim 2 , wherein the distribution map is determined by a director node of the parallel file system and encrypting the plurality of chunks is performed by the director node.

4 . The computer-implemented method of claim 1 , wherein encrypting the plurality of chunks comprises homomorphic encryption of each chunk independently.

5 . The computer-implemented method of claim 1 , wherein encrypting the plurality of chunks is performed by the client device.

6 . The computer-implemented method of claim 1 , wherein the computation comprises at least one of:

compression;

deduplication;

data mining; or

collaborative processing of shared data.

7 . The computer-implemented method of claim 1 , wherein the parallel file system includes a director node, wherein performing the computation on the encrypted data comprises:

for each storage node:

performing computation on an encrypted chunk of data stored in the storage node to determine a partial result, and

sending the partial result to the director node; and

combining, by the director node, partial results received from the storage nodes to determine the result of the computation.

8 . The computer-implemented method of claim 1 , wherein the distribution map is determined based on server loading information received from the plurality of storage nodes.

9 . A non-transitory computer readable storage medium storing instructions that when executed by one or more computer processors, cause the one or more computer processors to perform steps comprising:

receiving, from a client device, by a parallel file system, a write request to store data in the parallel file system, wherein the parallel file system stores data across multiple storage nodes;

responsive to receiving the write request, determining a distribution map for storing the data, the distribution map identifying a plurality of storage nodes and comprising a mapping from portions of data to storage nodes of the plurality of storage nodes;

sending the distribution map to the client device;

receiving a plurality of chunks of encrypted data, wherein the plurality of chunks of encrypted data are encrypted using homomorphic encryption, wherein encrypting the plurality of chunks comprises homomorphic encryption of a stripe of data, the stripe comprising one or more chunks of parity data;

storing, by the parallel file system, each of the plurality of chunks in a storage node according to the distribution map;

receiving, by the parallel file system, a request to perform a computation;

performing, by the parallel file system, the computation in parallel on the plurality of storage nodes, wherein the computation is performed on the encrypted data without decrypting the encrypted data; and

sending a result of computation.

10 . The non-transitory computer readable storage medium of claim 9 , wherein the distribution map comprises an erasure coding layout to be used for storing the data.

11 . The non-transitory computer readable storage medium of claim 9 , wherein encrypting the plurality of chunks comprises homomorphic encryption of each chunk independently.

12 . The non-transitory computer readable storage medium of claim 9 , wherein the computation comprises at least one of:

compression;

deduplication;

data mining; or

collaborative processing of shared data.

13 . The non-transitory computer readable storage medium of claim 9 , wherein the parallel file system includes a director node, wherein instructions for performing the computation on the encrypted data cause the one or more computer processors to perform steps comprising:

for each storage node:

performing computation on an encrypted chunk of data stored in the storage node to determine a partial result, and

sending the partial result to the director node; and

combining, by the director node, partial results received from the storage nodes to determine the result of the computation.

14 . The non-transitory computer readable storage medium of claim 9 , wherein the distribution map is determined based on server loading information received from the plurality of storage nodes.

15 . A computer system comprising:

one or more computer processors; and

a non-transitory computer readable storage medium storing instructions that when executed by the one or more computer processors, cause the one or more computer processors to perform steps comprising:

receiving, from a client device, by a parallel file system, a write request to store data in the parallel file system, wherein the parallel file system stores data across multiple storage nodes;

responsive to receiving the write request, determining a distribution map for storing the data, the distribution map identifying a plurality of storage nodes and comprising a mapping from portions of data to storage nodes of the plurality of storage nodes;

sending the distribution map to the client device;

receiving a plurality of chunks of encrypted data, wherein the plurality of chunks of encrypted data are encrypted using homomorphic encryption, wherein encrypting the plurality of chunks comprises homomorphic encryption of a stripe of data, the stripe comprising one or more chunks of parity data;

storing, by the parallel file system, each of the plurality of chunks in a storage node according to the distribution map;

receiving, by the parallel file system, a request to perform a computation;

performing, by the parallel file system, the computation in parallel on the plurality of storage nodes, wherein the computation is performed on the encrypted data without decrypting the encrypted data; and

sending a result of computation.

16 . The computer system of claim 15 , wherein the distribution map comprises an erasure coding layout to be used for storing the data.

17 . The computer system of claim 15 , wherein encrypting the plurality of chunks comprises homomorphic encryption of each chunk independently.

18 . The computer system of claim 15 , wherein the computation comprises at least one of:

compression;

deduplication;

data mining; or

collaborative processing of shared data.

19 . The computer system of claim 15 , wherein the parallel file system includes a director node, wherein instructions for performing the computation on the encrypted data cause the one or more computer processors to perform steps comprising:

for each storage node:

performing computation on an encrypted chunk of data stored in the storage node to determine a partial result, and

sending the partial result to the director node; and

combining, by the director node, partial results received from the storage nodes to determine the result of the computation.

20 . The computer system of claim 15 , wherein the distribution map is determined based on server loading information received from the plurality of storage nodes.