# US 9,436,529 B2 · Providing random data to a guest operating system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,436,529 B2
- Document ID: US9436529B2
- Status: Granted
- Kind: B2
- Application number: 14/583,370
- Filed: 2014-12-26
- Published: 2016-06-30
- Granted: 2016-09-06
- Earliest claimed: 2014-12-26
- Assignees: Red Hat, Inc.
- Applicants: Red Hat, Inc.
- Inventors: Amit Shah
- Web page: https://patentgrep.com/patent/US9436529B2

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 21/53: by executing in a restricted environment, e.g. sandbox or secure virtual machine
- G06F 2009/45591: {Monitoring or debugging support}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Implementations for providing random data to a guest operating system are disclosed. In one implementation, a method of the disclosure comprises: receiving, by a processing device of a host computer system, a first random data item from an external computer system; updating an entropy pool using the first random data item; and providing a virtual machine running on the host computer system with a second random data derived from the host entropy pool.

## Claims

### Claim 1

A method comprising:
receiving, using a processing device of a first host computer system, a first random data item from an external computer system;
updating an entropy pool using the first random data item; and
providing a first virtual machine running on the first host computer system with a second random data item derived from the entropy pool.

### Claim 2 (depends on 1)

The method of claim 1, wherein providing the first virtual machine with the second random data item further comprises transmitting the second random data item to the first virtual machine via a virtual device driver.

### Claim 3 (depends on 1)

The method of claim 1, wherein updating the entropy pool is performed by the first virtual machine.

### Claim 4 (depends on 1)

The method of claim 1, wherein updating the entropy pool using the first random data item comprises combining the first random data item with a current value of at least part of the entropy pool.

### Claim 5 (depends on 1)

The method of claim 1, wherein receiving the first random data item comprises receiving the first random data item via a communication channel that is employed to transmit at least one of keyboard inputs, mouse inputs, commands, pointer device positions, visibility and cursor shapes, audio content, video content, or images.

### Claim 6 (depends on 1)

The method of claim 1, wherein receiving the first random data item comprises receiving the first random data item via a dedicated communication channel.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
determining that the external computer system is authorized to provide random data to virtual machines associated with a user; and
updating the entropy pool using the first random data item in response to determining that the entropy pool is associated with the user.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
receiving a request for random data from a second virtual machine; and
providing the second virtual machine with a third random data item derived from the entropy pool in response to determining that the second virtual machine is associated with the user.

### Claim 9 (depends on 8)

The method of claim 8, wherein the second virtual machine is running on the first host computer system.

### Claim 10 (depends on 8)

The method of claim 8, wherein the second virtual machine is running on a second host computer system.

### Claim 11 (depends on 1)

The method of claim 1, further comprising providing a plurality of virtual machines running on the first host computer system with random data derived from the entropy pool, wherein the plurality of virtual machines are associated with a plurality of users.

### Claim 12 (depends on 1)

The method of claim 1, further comprising:
receiving, from a plurality of external computer systems, a plurality of random data items;
generating, using the processing device, combined random data using the plurality of random data items; and
updating the entropy pool using the combined random data.

### Claim 13

A system comprising:
a memory device; and
a processing device of a host computer system, communicably coupled to the memory device, to:
receive a first random data item from an external computer system;
determine that the external computer system is authorized to provide random data to virtual machines associated with a user of the host computer system;
update an entropy pool using the first random data item in response to determining that the entropy pool is associated with the user; and
provide a virtual machine running on the host computer system with a second random data item derived from the entropy pool.

### Claim 14 (depends on 13)

The system of claim 13, wherein, to provide the virtual machine with the second random data item, the processing device is further to transmit the second random data item to the virtual machine via a virtual device driver.

### Claim 15 (depends on 13)

The system of claim 13, wherein the processing device is further to receive the first random data item via a communication channel that is employed to transmit at least one of keyboard inputs, mouse inputs, commands, pointer device positions, visibility and cursor shapes, audio content, video content, or images.

### Claim 16 (depends on 13)

The system of claim 13, wherein the processing device is further to:
receive, from a plurality of external computer systems, a plurality of random data items;
generate, using the processing device, combined random data by combining the plurality of random data items; and
update the entropy pool using the combined random data.

### Claim 17

A non-transitory machine-readable storage medium including instructions that, when accessed by a processing device of a host computer system, cause the processing device to:
receive, by the processing device, a first random data item from an external computer device;
update an entropy pool using the first random data item; and
provide a virtual machine running on the host computer system with a second random data item derived from the entropy pool.

### Claim 18 (depends on 17)

The non-transitory machine-readable storage medium of claim 17, wherein, to provide the virtual machine with the second random data item, the processing device is further to transmit the second random data item to the virtual machine via a virtual device driver.

### Claim 19 (depends on 17)

The non-transitory machine-readable storage medium of claim 17, wherein the entropy pool is updated by the virtual machine.

### Claim 20 (depends on 17)

The non-transitory machine-readable storage medium of claim 17, wherein the processing device is further to receive the first random data item via a communication channel that is employed to transmit at least one of keyboard inputs, mouse inputs, commands, pointer device positions, visibility and cursor shapes, audio content, video content, or images.
