Encryption Key Segmentation for Secure Data Deduplication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Third-party storage systems face challenges in performing data deduplication while maintaining data security, as user-specific encryption keys prevent identical files from being recognized as the same, leading to inefficiencies and vulnerabilities to chosen plaintext attacks.
Innovation Solution
Generating encryption keys and identifiers based on the data itself, with the option to modify the data or keys for enhanced security, allowing for data deduplication while protecting against chosen plaintext attacks by ensuring only authorized clients can locate and decrypt the data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If user-specific encryption keys are used to encrypt client data, then data security is improved, but data deduplication capability deteriorates
Solution Approach 1:
The encryption key is segmented into two parts: a data-derived component (hash of the plaintext) and a user-specific component (stored securely). This segmentation allows the system to derive consistent keys for deduplication purposes while maintaining user-specific security requirements. The data-derived portion enables identical files to produce identical keys for deduplication, while the user-specific portion ensures that only authorized users can decrypt their data.
Solution Approach 2:
A key derivation function acts as an intermediary between the plaintext data and the encryption key. This intermediary transforms the plaintext into a derived key that can be used for both deduplication identification and encryption, bridging the gap between security requirements and deduplication efficiency. The mediator ensures that identical inputs produce identical outputs while maintaining cryptographic security.
2Reliability
If user-specific encryption keys are used for each client, then unauthorized access between clients is prevented, but the ability to recognize identical files across clients is lost
Solution Approach 1:
Different parts of the encryption key serve different purposes: the data-derived portion provides local quality for file recognition and deduplication, while the user-specific portion provides local quality for security. This allows each component of the key to optimize for its specific function, enabling both file recognition and unauthorized access prevention simultaneously.
Solution Approach 2:
The system changes the parameter of the encryption key from being entirely user-specific to being a combination of data-derived and user-specific components. This parameter change enables the key to exhibit different properties in different contexts: consistency for deduplication and user-specificity for security, resolving the contradiction between file recognition and access control.
3Reliability
If encryption is performed before storage to protect data, then data confidentiality is improved, but the storage system's ability to perform deduplication deteriorates
Solution Approach 1:
The system performs preliminary key derivation from the plaintext data before encryption. This preliminary action creates a fingerprint or hash of the data that can be used for deduplication identification. By performing this action beforehand, the system enables the storage system to recognize identical files without needing to decrypt them, thus maintaining both confidentiality and storage efficiency.
Solution Approach 2:
Instead of storing the actual plaintext data for deduplication comparison, the system creates and stores a copy in the form of a derived key or hash. This copied representation is sufficient for identifying duplicate files while the actual encrypted data remains confidential. The copy enables deduplication functionality without compromising data security.
Data Source
AI summary
Various methods and systems for selectively protecting against chosen plaintext attacks when encrypting data for storage on an untrusted storage system are disclosed. One method involves generating an encryption key for use in encrypting data and generating an identifier for the data. Generation of the encryption key is based upon a hash of the data to be encrypted, and generation of the identifier is based upon the data to be encrypted and/or the encryption key. The method also involves detecting whether an encrypted copy of the data is already stored by a storage system, based upon the identifier. The method also detects whether a higher level of security has been specified for the data and, if so, modifies the data to be encrypted or the encryption key, based upon a client-specific value, prior to generating the identifier.


