Per-File Key Encryption for Semi-Trusted File Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing distributed file systems fail to provide secure and efficient file access under the semi-trusted user threat model, where files are accessed from untrusted client devices, and existing solutions do not meet the performance requirements for high availability and 'big data' cluster computing.

Innovation Solution

A computer system and method that secures plaintext files using symmetric per-file keys and wrapping keys, with encryption and decryption performed in a shim layer above the API layer, employing Advanced Encryption Standard (AES) in Galois/Counter Mode (GCM) and message authentication codes (MAC) for metadata integrity, along with centralized policy management and automatic key generation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If existing encrypted distributed file systems (Tahoe, JigDFS) use Information Dispersal Algorithm and recursive encryption to enhance security and fault tolerance, then security and availability are improved, but system complexity and performance overhead increase significantly

Engineering Contradiction:
Improvefault toleranceVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The file is divided into multiple blocks, and each block is encrypted with a unique per-block key derived from the file key through HMAC-SHA256. This segmentation approach provides fault tolerance and security without requiring complex Information Dispersal Algorithms, as each block can be independently encrypted and managed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A key derivation function (HMAC-SHA256) is introduced as an intermediary to generate per-block keys from the file key. This mediator enables secure block-level encryption without requiring complex key management infrastructure, simplifying the overall system while maintaining security and fault tolerance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If block-level encryption and storage network encryption are implemented separately to secure data at rest and in transit, then security is improved, but encryption burden and processing overhead increase

Engineering Contradiction:
ImprovesecurityVSAvoidperformance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent combines block-level encryption for data at rest with transport encryption for data in transit into a unified encryption framework. The file key serves as the foundation for both encryption layers, eliminating the need for separate encryption operations and reducing processing overhead while maintaining comprehensive security.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The file key derived from the user's password has universal applicability, serving as the root key for both block-level encryption (data at rest) and transport encryption (data in transit). This multi-functional key approach reduces the number of cryptographic operations required compared to maintaining separate key systems for different security contexts.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Manufacturing precision

If per-block keys are derived using HMAC-SHA256 from the file key for each block, then data integrity and security are improved, but computational overhead increases

Engineering Contradiction:
Improvedata integrityVSAvoidcomputational overhead
Core Design Contradiction:
Manufacturing precisionVSUse of energy by moving object

Solution Approach 1:

The patent uses HMAC-SHA256 to derive per-block keys from the file key by incorporating the block index as a varying parameter. This approach ensures data integrity through cryptographic binding of each block to its position in the file, while the efficient HMAC construction minimizes computational overhead compared to more complex key derivation methods.

Inventive Principle:
Principle #35Parameter changes

4Reliability

If files are encrypted and split into slices uploaded to different servers, then fault tolerance and security are improved, but system complexity and access overhead increase

Engineering Contradiction:
ImproveavailabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The file is divided into blocks that can be distributed across different storage servers. Each block is independently encrypted with a per-block key, enabling fault tolerance through distribution while maintaining simpler system architecture compared to Information Dispersal Algorithms. The block structure enables parallel processing and efficient recovery without complex reconstruction algorithms.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10298555B2Securing files under the semi-trusted user threat model using per-file key encryption
Publication Date: 2019.05.21 TPK INVESTMENTS LLC
  • US10298555B2 patent drawing
  • US10298555B2 patent drawing
  • US10298555B2 patent drawing

AI summary

A computer system and methods for securing files in a file system with storage resources accessible to an authenticable user using an untrusted client device in a semi-trusted client threat model. Each file is secured in the file system in one or more ciphertext blocks along with the file metadata. Each file is assigned a unique file key FK to encrypt the file. A wrapping key WK assigned to the file is used for encrypting the file key FK to produce a wrapped file key WFK. The file is encrypted block by block to produce corresponding ciphertext blocks and corresponding authentication tags. The authentication tags are stored in the file metadata, along with an ID of the wrapping key WK, wrapped file key WFK, last key rotation time, an Access Control List (ACL), etc. The integrity of ciphertext blocks is ensured by authentication tags and the integrity of the metadata is ensured by a message authentication code (MAC).