Online Encryption Root Key Change in Distributed Database Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing database management systems face challenges in changing encryption root keys online while maintaining data consistency and availability, especially in distributed environments, where unplanned events or errors can occur during the key change process.
Innovation Solution
The system implements an online change process for encryption root keys by generating a new key, storing multiple versions of root keys, and propagating these changes across multiple sites, ensuring that encrypted data can be decrypted even in case of errors or disruptions, using a hierarchical key structure and versioning to maintain consistency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the encryption root key is changed offline to ensure data consistency, then data security is improved, but system availability deteriorates
Solution Approach 1:
The system dynamically switches between old and new root keys during the transition period. Multiple root key versions are maintained simultaneously, allowing the system to adaptively select which key to use based on the data's encryption state, enabling both online key changes and continuous data access
Solution Approach 2:
The new root key is generated and stored in advance before the old key is discarded. Version information is prepared ahead of time, and the system proactively manages the transition by maintaining both keys temporarily, ensuring that data can be decrypted regardless of which key version is used
2Productivity
If the root key change process is simplified for online operation, then system availability is improved, but data consistency deteriorates
Solution Approach 1:
Version information associated with each root key provides feedback mechanisms to track which key version is current. This version tracking system monitors the key transition state and ensures that the correct key is used for encrypting or decrypting data, maintaining consistency throughout the online key change process
Solution Approach 2:
Version information acts as an intermediary between the old and new root keys. This metadata layer coordinates the transition by indicating which key should be used for specific operations, ensuring data consistency without requiring complex coordination protocols
3Reliability
If multiple versions of root keys are maintained for error recovery, then data security is improved, but storage complexity deteriorates
Solution Approach 1:
Multiple versions of the root key are stored as copies in the secured area. Each version is associated with version information that identifies its sequence number. This copying approach enables error recovery by allowing the system to try different key versions if decryption fails, without requiring complex recovery mechanisms
4Loss of time
If root key propagation across distributed sites is accelerated, then security response time is improved, but network load deteriorates
Solution Approach 1:
The root key propagation process is segmented into discrete versioned updates. Each site receives and processes key changes incrementally with version information, allowing for efficient incremental synchronization rather than requiring complete key redistribution across all sites
Solution Approach 2:
Version information parameters are used to track and manage key propagation across distributed sites. By changing and tracking version parameters, the system can efficiently determine which sites need updates and propagate only necessary changes, reducing redundant network traffic
Data Source
AI summary
A request is received to change a first, current encryption root key used to encrypt and decrypt a set of data in a database. A new, second encryption root key is generated. The second encryption root key is stored in a secured area in disk storage as a new current encryption root key. The first encryption root key is maintained in the secured area as a historical encryption root key. New root key version information that identifies the new, second encryption root key is generated and stored as current root key version information. A request is received to encrypt the set of data. The second encryption root key is identified as the current encryption root key based on the current root key version information. The second encryption root key is used to encrypt the set of data to create an encrypted set of data.


