Ciphertext Deduplication via Convergent Encryption and HMAC

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data deduplication mechanisms cannot effectively deduplicate ciphertext while maintaining security, as encryption algorithms render identical plaintexts as distinct ciphertexts, making integrity checking and deduplication infeasible.

Innovation Solution

A system that uses a data storage engine and retrieval engine to determine unique ciphertext values by concatenating encrypted chunk hashes with message authentication codes, allowing for deduplication of ciphertext and integrity checking in a client-server data storage system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If encryption algorithms are used to protect data security, then data confidentiality is improved, but deduplication capability deteriorates because identical plaintexts are rendered as distinct ciphertexts

Engineering Contradiction:
Improvedata confidentialityVSAvoidstorage space efficiency
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments data into fixed-size chunks before encryption, then applies convergent encryption where each chunk is encrypted independently using a key derived from the chunk's hash. This segmentation allows identical chunks to produce identical ciphertexts, enabling deduplication while maintaining security for non-identical data

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the encryption approach by using convergent encryption where the encryption key is derived from the data chunk itself (via hashing) rather than using unique keys for each encryption operation. This parameter change in the encryption scheme allows identical plaintext chunks to produce identical ciphertexts, resolving the contradiction between security and deduplication

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If convergent encryption is used to enable deduplication of ciphertext, then storage space efficiency is improved, but integrity checking capability deteriorates

Engineering Contradiction:
Improvestorage space efficiencyVSAvoidintegrity checking
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent introduces HMAC (Hash-based Message Authentication Code) as an intermediary mechanism. The HMAC is computed over the ciphertext using a separate key, creating an authentication tag that verifies integrity without affecting the deduplication capability of the ciphertext itself. This intermediary layer restores integrity checking while preserving storage efficiency

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If traditional encryption is used to maintain data security, then confidentiality is improved, but operational complexity increases due to inability to perform deduplication and integrity checking

Engineering Contradiction:
Improvedata securityVSAvoidoperational complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates a multi-functional system where the encryption mechanism simultaneously provides confidentiality, enables deduplication through convergent encryption, and supports integrity checking via HMAC. This universal approach eliminates the need for separate mechanisms for each function, reducing operational complexity while maintaining security

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

Data Source

PatentUS10374807B2Storing and retrieving ciphertext in data storage
Publication Date: 2019.08.06 HEWLETT PACKARD ENTERPRISE DEV LP
  • US10374807B2 patent drawing
  • US10374807B2 patent drawing
  • US10374807B2 patent drawing

AI summary

Storing and retrieving ciphertext in data storage can include determining a first ciphertext value for a first data chunk to be saved to a client-server data storage system using an encrypted chunk hash value associated with the first data chunk as an initial value, and storing the first data chunk on a server in the client-server data storage system in response to determining that the first ciphertext value is a unique ciphertext value. Also, storing and retrieving ciphertext in data storage can include decrypting a ciphertext value for a second data chunk received from a client in the client-server data storage system and based on an encrypted chunk hash value associated with the second data chunk, and sending the second data chunk to the client in response to determining that the decrypted ciphertext value corresponds to an original data chunk saved to the server by the client.