Deduplicated Data Encryption Using Deterministic Initialization Vectors
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing encryption systems face challenges in generating a non-repeating initialization vector (IV) for deduplication of encrypted data sets, which is essential for protecting against precalculation attacks and ensuring unique ciphertext blocks, while also supporting data deduplication in file systems like ZFS and TrueCrypt.
Innovation Solution
The system generates a cryptographically secure IV using a key'd SHA256 message authentication code (HMAC-SHA256) for deduplicated data sets, derived from the full plaintext block, and a truncated unkey'd SHA256 message digest for non-deduplicated data sets, ensuring unique IVs and enhanced security against attacks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a non-repeating initialization vector (IV) is generated for each encryption operation, then security against precalculation attacks is improved, but data deduplication capability deteriorates
Solution Approach 1:
The patent applies local quality by using different IV generation strategies for different data blocks: deduplicated blocks use a deterministic IV generation method (based on block address and key) that enables deduplication, while non-deduplicated blocks use a random IV generation method that ensures security. This localized application of different quality characteristics resolves the contradiction between security and deduplication capability.
2Reliability
If a random initialization vector (IV) is generated, then uniqueness of ciphertext blocks is improved, but data deduplication capability deteriorates
Solution Approach 1:
The patent implements dynamics by making the IV generation method adaptive: the system dynamically selects between random IV generation and deterministic IV generation based on whether the plaintext block is identified as deduplicated. This dynamic adjustment allows the system to optimize for uniqueness when needed and for deduplication when applicable, resolving the contradiction between these two requirements.
3Ease of operation
If an initialization vector (IV) is transmitted with the packet, then decryption capability is improved, but communication overhead increases
Solution Approach 1:
The patent extracts the IV from the encryption process for deduplicated blocks by generating it deterministically from the block address and encryption key. This extracted IV is then stored with the ciphertext, allowing the recipient to regenerate the same IV for decryption without requiring transmission of the IV itself in the packet, thereby reducing communication overhead while maintaining decryption capability.
Data Source
AI summary
A method for encrypting data includes receiving a block of plaintext for a data set at one or more computers, acquiring a cryptographic key for the data set, generating an initialization vector for the block of plaintext based on the block of plaintext, and encrypting the block of plaintext using the cryptographic key and the initialization vector.

