Entropy Broker for Distributed System Randomness
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face challenges in generating sufficient high-quality entropy, particularly in server and client devices, which is crucial for applications like encryption and random number generation, especially in large-scale deployments and devices with limited user interaction or hardware capabilities.
Innovation Solution
A system and method for sharing entropy between client devices and servers through an entropy broker, where client devices collect and share excess entropy with servers, utilizing various hardware devices like microphones and accelerometers, and employing a Digital Rights Management system for secure entropy distribution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If hardware random number generators are used in each server, then high-quality entropy is improved, but device complexity and cost increase
Solution Approach 1:
An entropy broker is introduced as an intermediary component that collects entropy from multiple sources including hardware RNGs on select devices, software-based entropy generators, and network entropy pools. The broker aggregates and validates entropy from these diverse sources, then distributes it to clients that need random numbers. This mediator approach allows the system to achieve high-quality entropy distribution without requiring every server to have expensive hardware RNGs, thus resolving the contradiction between entropy quality and system complexity.
2Reliability
If /dev/random is used for random data generation, then entropy quality is improved, but productivity decreases due to blocking behavior
Solution Approach 1:
The entropy broker pre-collects and accumulates entropy in an entropy pool before clients request random numbers. By maintaining a buffer of pre-collected high-quality entropy, the broker can immediately satisfy client requests without blocking, thus resolving the contradiction between entropy quality and generation speed. The preliminary accumulation of entropy ensures both high quality (from validated sources) and high productivity (from immediate availability).
Solution Approach 2:
The system merges multiple entropy sources including /dev/random, hardware RNGs, software-based entropy generators, and network entropy pools into a unified entropy broker. This combination allows the broker to leverage the high quality of /dev/random while supplementing it with non-blocking sources, achieving both entropy quality and productivity simultaneously.
3Productivity
If /dev/urandom is used for random data generation, then productivity is improved, but entropy quality deteriorates
Solution Approach 1:
The entropy broker acts as an intermediary between fast but lower-quality entropy sources like /dev/urandom and applications requiring high-quality randomness. The broker collects entropy from multiple sources, validates and enhances its quality, then distributes it to clients. This allows applications to receive fast entropy delivery (productivity) while ensuring high quality through the broker's validation and multi-source aggregation, resolving the contradiction between speed and quality.
4Reliability
If entropy is collected from user interaction events, then entropy quality is improved, but adaptability decreases in server environments without user interaction
Solution Approach 1:
The entropy broker is designed to work with multiple entropy sources that function across different environments. It can collect from user interaction events on client devices, hardware RNGs on servers, software-based entropy generators, and network entropy pools. This multi-functional approach allows the same entropy broker to adapt to various environments including interactive client devices and non-interactive server farms, resolving the contradiction between entropy quality from user interaction and environment compatibility.
Data Source
Figure 1
Figure 2A~2B
Figure 2C~2D
AI summary
Methods and apparatus for sharing entropy between an entropy broker and various devices are shown. The entropy broker receives a communication from a client. Responsive to determining that the client provided entropy, the entropy broker processes the provided entropy and responsive to determining that the client requested entropy, the entropy broker adds the client to an entropy queue.