# US 10,873,454 B2 · Cloud storage encryption with variable block sizes

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,873,454 B2
- Document ID: US10873454B2
- Status: Granted
- Kind: B2
- Application number: 16/026,279
- Filed: 2018-07-03
- Published: 2019-01-10
- Granted: 2020-12-22
- Earliest claimed: 2014-04-04
- Assignees: Zettaset, Inc.
- Applicants: Zettaset, Inc.
- Inventors: Eric A. Murray; Maksim Yankovsky
- Web page: https://patentgrep.com/patent/US10873454B2

## CPC

- H04L 9/088: {Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms (network architectures or network communication protocols for using time-dependent keys in a packet data network H04L63/068)}
- G06F 21/602: {Providing cryptographic facilities or services}
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 21/6245: {Protecting personal data, e.g. for financial or medical purposes}
- H04L 9/0637: {Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]}
- H04L 9/0822: {using key encryption key}
- H04L 63/20: {for managing network security; network security policies in general (filtering policies H04L63/0227)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques are disclosed for securing data in a cloud storage. Plaintext files are stored as secured, encrypted files in the cloud. The ciphering scheme employs per-block authenticated encryption and decryption. A unique file-key is used to encrypt each file. The file-key is wrapped by authenticated encryption in a wrapping-key that may be shared between files. A centralized security policy contains policy definitions which determine which files will share the wrapping-key. Wrapping-keys are stored in a KMIP compliant key manager which may be backed by a hardware security module (HSM). File metadata is protected by a keyed-hash message authentication code (HMAC). A policy engine along with administrative tools enforce the security policy which also remains encrypted in the system. Various embodiments support blocks of fixed as well as variable sizes read/written from/to the cloud storage.

## Claims

### Claim 1

A computer-implemented method for securing a plaintext file Fp as an encrypted, ciphertext file Fc in a cloud storage, said method comprising the steps of:
(a) providing a user U1 using a client device, a network-based access to said cloud storage;
(b) assigning to said plaintext file Fp, a symmetric file-key FK;
(c) using a first authenticated encryption to encrypt each variable sized block Mi of said plaintext file Fp with said file-key FK by utilizing a corresponding initialization vector IVi to obtain a corresponding variable sized encrypted block Ci and a corresponding authentication tag Ti;
(d) storing in said cloud storage, a corresponding data block *Ci of said encrypted, ciphertext file Fc, said data block *Ci comprising a sequence number of said corresponding block Mi, said corresponding initialization vector IVi, said corresponding variable sized encrypted block Ci and said corresponding authentication tag Ti;
(e) using a second authenticated encryption to encrypt said file-key FK by a symmetric wrapping-key WK by utilizing an initialization vector IVFK to obtain a wrapped-file-key WFK and an authentication tag TFK;
(f) storing said wrapping-key WK in a key manager in accordance with a security policy; and
(g) storing a block table BT and a default block size DBS in a metadata of said encrypted, ciphertext file Fc.

### Claim 2 (depends on 1)

The method of claim 1, recording said variable sized encrypted block Ci in said block table BT, if said variable sized encrypted block Ci is not of the same size as said default block size DBS.

### Claim 3 (depends on 1)

The method of claim 1, implementing said security policy by utilizing a policy engine and administrative tools.

### Claim 4 (depends on 3)

The method of claim 3, routing said network-based access via a proxy server residing in the same network as said policy engine.

### Claim 5 (depends on 1)

The method of claim 1, storing said initialization vector IVFK, said authentication tag TFK and a block lookaside table (BLT) in said metadata of said encrypted, ciphertext file Fc.

### Claim 6 (depends on 5)

The method of claim 5 when said metadata becomes full, storing said block table BT to said encrypted, ciphertext file Fc and recording its location in said block lookaside table BLT.

### Claim 7 (depends on 1)

The method of claim 1, using Advanced Encryption Standard (AES) in Galois/Counter Mode (GCM) for said first authenticated encryption and said second authenticated encryption.

### Claim 8 (depends on 1)

The method of claim 1, performing said step (c) in a shim layer configured above an application programming interface (API) of said cloud storage, said shim layer intercepting and servicing storage requests generated on said client device.

### Claim 9 (depends on 8)

The method of claim 8, providing said storage requests to comprise one or more of a Get, a Put and a Copy operation.

### Claim 10 (depends on 8)

The method of claim 8, configuring said shim layer to perform authenticated decryption of said variable sized encrypted block Ci to obtain corresponding said block Mi of said plaintext file Fp.

### Claim 11 (depends on 1)

The method of claim 1, providing a representational state transfer (REST) server to perform said step (c).

### Claim 12 (depends on 1)

The method of claim 1, cryptographically protecting said metadata from modification by computing a hash message authentication code (HMAC).

### Claim 13 (depends on 1)

The method of claim 1, configuring said key manager to also reside in the same cloud where said cloud storage resides.

### Claim 14 (depends on 1)

The method of claim 1, encrypting said wrapping-key WK by a master key stored in a physical and hardened hardware security module (HSM).

### Claim 15

A cloud storage encryption system comprising at least one memory device storing computer-readable instructions, at least one microprocessor coupled to said at least one memory device for executing said computer-readable instructions, said system further comprising a client device with network-based access to a cloud storage and said at least one microprocessor configured to:
(a) assign a symmetric file-key FK to a plaintext file Fp;
(b) use a first authenticated encryption to encrypt each variable sized block Mi of said plaintext file Fp with said file-key FK by utilizing a corresponding initialization vector IVi to obtain a corresponding variable sized encrypted block Ci and a corresponding authentication tag Ti;
(c) store in said cloud storage a corresponding data block *Ci of an encrypted, ciphertext file Fc, said data block *Ci comprising a sequence number of said corresponding block Mi, said corresponding initialization vector IVi, said corresponding variable sized encrypted block Ci and said corresponding authentication tag Ti;
(d) in accordance with a security policy, use a second authenticated encryption to encrypt said file-key FK by a symmetric wrapping-key WK by utilizing an initialization vector IVFK to obtain a wrapped-file-key WFK and an authentication tag TFK, and store said wrapping-key WK in a key manager; and
(e) store a block table BT and a default block size DBS in a metadata of said encrypted, ciphertext file Fc.

### Claim 16 (depends on 15)

The cloud storage encryption system of claim 15 wherein said cloud storage is hosted at one of an Amazon Web Services (AWS) data centers, Google Cloud data centers and Microsoft Azure data centers.

### Claim 17 (depends on 15)

The cloud storage encryption system of claim 15 wherein a location of said variable sized encrypted block Ci in said encrypted, ciphertext file Fc is recorded in said block table BT, if said variable sized encrypted block Ci is not of the same size as said default block size DBS.

### Claim 18 (depends on 17)

The system of claim 17 wherein if said metadata becomes full, said block table BT is stored in said encrypted, ciphertext file Fc and its location is recorded in a block lookaside table BLT contained in said metadata.

### Claim 19 (depends on 15)

The cloud storage encryption system of claim 15, wherein a policy engine and administrative tools are utilized to enforce said security policy.

### Claim 20 (depends on 15)

The cloud storage encryption system of claim 15, wherein said network-based access of said client device to said cloud storage is routed via a representational state transfer (REST) proxy server.

### Claim 21 (depends on 15)

The cloud storage encryption system of claim 15, wherein said first authenticated encryption and said second authenticated encryption are performed using Advanced Encryption Standard (AES) in Galois/Counter Mode (GCM).

### Claim 22 (depends on 15)

The cloud storage encryption system of claim 15 wherein said cloud storage is hosted at the data centers of multiple cloud storage vendors.

### Claim 23 (depends on 15)

The cloud storage encryption system of claim 15, wherein said first authenticated encryption is performed in a shim layer provided above an application programming interface (API) of said cloud storage, and wherein said shim layer intercepts and services storage requests from said client device, and wherein said storage requests comprise one or more of a Get, a Put and a Copy operation.

### Claim 24 (depends on 23)

The cloud storage encryption system of claim 23, wherein said metadata is cryptographically protecting by a hash message authentication code (HMAC).

### Claim 25 (depends on 24)

The cloud storage encryption system of claim 24, wherein a physical hardware security module (HSM) is used for storing a master key that is used for encrypting said wrapping-key WK.
