Secure Distribution of Entropy

The secure distribution of quantum entropy through secure communication channels addresses the challenges of generating and transmitting truly random entropy, enhancing the security of cryptographic systems by ensuring the integrity and reliability of encryption keys.

JP7657955B2Active Publication Date: 2025-04-07ORACLE INT CORP
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2023551740
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-02-25
Filing Date
2021-03-24
Publication Date
2025-04-07
Estimated Expiration
2041-03-24

AI Technical Summary

Technical Problem

Existing cryptographic systems face challenges in generating truly random entropy and securely transmitting it between computer systems, which can lead to weakened encryption keys and increased vulnerability to attacks.

Method used

The development of a method for securely distributing entropy, specifically using quantum entropy generated by a quantum entropy generator, to establish secure communication channels between computer systems. This involves generating encryption keys using portions of the entropy and establishing multiple communication channels to ensure secure transmission.

Benefits of technology

This solution enables the secure distribution of high-quality, truly random entropy, enhancing the security of cryptographic systems by ensuring the integrity and reliability of encryption keys, thus reducing the risk of collisions and side-channel attacks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007657955000001
    Figure 0007657955000001
  • Figure 0007657955000002
    Figure 0007657955000002
  • Figure 0007657955000003
    Figure 0007657955000003
Patent Text Reader

Abstract

Techniques are disclosed for securely distributing entropy in a distributed environment. The distributed entropy may be quantum entropy generated by a quantum entropy generator or source. Truly random entropy generated by a trusted entropy generator may be securely transmitted between computer systems or hosts using a secure communication channel established using a portion of the entropy. The distribution techniques allow computer systems and hosts to utilize such entropy generated by a trusted entropy source that would not otherwise be available.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This international patent application claims priority to U.S. patent application Ser. No. 17 / 185,646, filed February 25, 2021, entitled "Secure Distribution Of Entropy," the entire disclosure of which is incorporated herein by reference for all purposes. [Background technology]

[0002] background Entropy (also referred to as entropy information) is utilized for a variety of different purposes. For example, entropy is crucial to cryptographic systems that utilize entropy to generate cryptographic keys for a variety of purposes. However, the trust that can be placed in these cryptographic systems and the keys that they generate is limited by the confidence that can be placed in the quality of the entropy that these systems utilize to generate the keys. First, it is difficult to generate truly random entropy or to find a trusted source that can generate truly random entropy. Even if such a source is found, transmitting entropy from the entropy source to the computer where it is utilized (e.g., by a cryptographic system to generate cryptographic keys) while ensuring that the entropy has not been tampered with is a significant challenge. If the entropy is tampered with and is of poor quality, cryptographic keys can be weakened or compromised, making them susceptible to a variety of collision and side-channel attacks. As a result, truly random, high-quality entropy is unavailable to most computing devices and applications (e.g., programs, virtual machines). Summary of the Invention [Means for solving the problem]

[0003] overview The present disclosure generally relates to secure distribution of entropy. The distributed entropy may be quantum entropy generated by a quantum entropy generator or source. The teachings described herein allow truly random entropy generated by a trusted entropy generator to be securely transferred between computer systems or hosts using a secure communication channel established using a portion of the entropy. The distribution techniques allow computer systems and hosts to utilize such entropy generated by a trusted entropy source that would not otherwise be available. Various embodiments are described herein, including methods, systems, non-transitory computer readable storage media having stored thereon programs, code, or instructions executable by one or more processors, or the like.

[0004] In certain embodiments, the method includes a first host receiving entropy information from an entropy source; and establishing a communications channel between the first host and a second host using one or more encryption keys, all of which are generated using at least a portion of the entropy information, and further including transmitting another portion of the entropy information from the first host to the second host using the communications channel established between the first host and the second host.

[0005] In yet another embodiment, the communications channel is a second communications channel, and the method further includes establishing a first communications channel between the first host and the second host based on a first set of one or more encryption keys generated by the first host using the first portion of the entropy information and based on a second set of one or more encryption keys generated by the second host, and transmitting a second portion of the entropy information from the first host to the second host using the first communications channel.

[0006] In yet another embodiment, the step of establishing the second communications channel includes the first host generating a third set of one or more encryption keys using a third portion of the entropy information, the second host generating a fourth set of one or more encryption keys using a first portion of the second portion of the entropy information received by the second host from the first host, and establishing a second communications channel between the first host and the second host based on the third set of one or more encryption keys and the fourth set of one or more encryption keys.

[0007] In yet another embodiment, the method further includes determining that a condition associated with the second communications channel is satisfied, and in response to determining that the condition is satisfied, the first host again generating a new first set of one or more encryption keys using the fifth portion of the entropy information, the second host again generating a new second set of one or more encryption keys using a second portion of the second portion of the entropy information received from the first host, and establishing a new communications channel between the first host and the second host based on the new first set of one or more encryption keys and the new second set of one or more encryption keys.

[0008] In yet another embodiment, the step of determining that a condition associated with the second communications channel is satisfied includes determining that a particular period of time has elapsed.

[0009] In yet another embodiment, the step of determining that a condition associated with the second communications channel is satisfied includes determining that a particular number of packets have been exchanged between the first host and the second host.

[0010] In yet another embodiment, the second portion of the entropy information includes "N" bits, and the second host generates a fourth set of one or more cryptographic keys based on the "N" bits.

[0011] In yet another embodiment, the step of establishing the first communications channel includes performing a first Diffie-Hellman key exchange using a first set of one or more encryption keys and a second set of one or more encryption keys, and establishing the second communications channel includes performing a second Diffie-Hellman key exchange using a third set of one or more encryption keys and a fourth set of one or more encryption keys.

[0012] In yet another embodiment, the first Diffie-Hellman key exchange is a first elliptic curve Diffie-Hellman key exchange and the second Diffie-Hellman key exchange is a second elliptic curve Diffie-Hellman key exchange.

[0013] In yet another embodiment, the entropy source is a quantum entropy generator and the entropy information is quantum entropy.

[0014] In yet another embodiment, the first host is hosted by a first host machine and the second host is hosted by a second host machine.

[0015] In yet another embodiment, the step of receiving the entropy information includes the first host receiving the entropy information from an entropy source as a stream of information.

[0016] Yet another embodiment is directed to a non-transitory computer-readable storage medium having stored thereon computer-executable program instructions which, when executed by a processing device of a computing device, cause the computing device to perform the method set forth above.

[0017] Another embodiment is directed to an apparatus comprising means for performing the steps of the above method.

[0018] Yet another embodiment is directed to a computer program product including computer instructions that, when executed by a processor, perform the steps of the above method.

[0019] The above features and embodiments, together with other features and embodiments, will become more apparent with reference to the following specification, claims, and accompanying drawings. [Brief description of the drawings]

[0020] [Figure 1] FIG. 1 is a simplified block diagram of a distributed environment according to some embodiments. [Diagram 2] FIG. 2 illustrates an example of a quantum entropy generator. [Diagram 3] 1 is a swim chart illustrating a simplified process for distributing or transmitting entropy information generated by a quantum entropy generator to multiple hosts and multiple computing instances, according to certain embodiments. [Figure 4] 1 is a swim chart illustrating another simplified process for distributing or transmitting entropy information generated by a quantum entropy generator to multiple hosts and multiple computing instances according to certain embodiments. [Diagram 5] 1 is a simplified flowchart of steps performed by a first host during a process for distributing or transmitting entropy information generated by a quantum entropy generator to multiple hosts and multiple computing instances in accordance with certain embodiments. [Figure 6] 1 is a simplified flowchart of steps performed by a second host during a process for distributing or transmitting entropy information generated by a quantum entropy generator to multiple hosts and multiple computing instances in accordance with certain embodiments. [Figure 7] FIG. 1 is a simplified block diagram of a distributed cloud environment according to some embodiments. [Figure 8] FIG. 1 illustrates an example computer system that can be used to implement certain embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0021] Detailed Description In the following description, for purposes of explanation, specific details are set forth in order to provide a thorough understanding of certain embodiments. However, it will be apparent that various embodiments can be practiced without these specific details. The accompanying drawings and description are not limiting. As used herein, the word "exemplary" means "serving as an example, instance, or illustration." Any embodiment or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments or designs.

[0022] This disclosure generally relates to the secure distribution of entropy. The distributed entropy may be quantum entropy generated by a quantum entropy generator or source. The teachings described herein allow truly random entropy generated by a trusted entropy generator to be securely transmitted between computer systems or hosts using a secure communication channel established using a portion of the entropy. This distribution technique allows computer systems and hosts to utilize such entropy generated by a trusted entropy source that would not otherwise be available.

[0023] In a particular embodiment, a novel distribution technique is described for securely transmitting entropy from an entropy source to a computer system directly connected to the entropy source, and for further securely transmitting the entropy from that computer system to other computer systems in a distributed environment that may not be directly connected to the entropy source. In a particular embodiment, the computer system directly connected to the entropy source securely receives entropy information from the entropy source over a secure direct connection. The computer system receiving the entropy from the entropy source then transmits or distributes the received entropy, or a portion thereof, to one or more other computer systems that are communicatively coupled to the computer system but that may not be directly connected to the entropy source. The transmission of entropy from the directly connected computer system to the other computer systems that may not be directly connected to the entropy source is performed over a secure communication channel. The secure communication channel is provided using a portion of the entropy generated by the entropy source and received by the computer system directly connected to the entropy source. A computer system that receives entropy generated by an entropy source from another computer system may then use the methods disclosed herein to distribute the entropy, or portions thereof, to further computer systems via a secure communications channel that uses a portion of the received entropy.

[0024] In certain embodiments, novel distribution techniques are described for securely transmitting entropy from an entropy source to a host directly connected to the entropy source, and further securely transmitting the entropy from the host to other hosts in a distributed environment that may not be directly connected to the entropy source. The host may be a virtual machine computing instance or a bare metal computing instance. In certain embodiments, the host directly connected to the entropy source securely receives entropy information from the entropy source over a secure direct connection. The host receiving the entropy from the entropy source then transmits or distributes the received entropy, or a portion thereof, to one or more other hosts that are communicatively coupled to the first host, but that may not be directly connected to the entropy source. The transmission of entropy from the directly connected host to the other hosts that may not be directly connected to the entropy source is performed over a secure communication channel. The secure communication channel is established using a portion of the entropy generated by the entropy source and received by the host directly connected to the entropy source. A host that receives entropy generated by an entropy source from another host may then use the methods described in this disclosure to distribute the entropy, or portions thereof, to further hosts via a secure communications channel established using a portion of the received entropy.

[0025] For the purposes of this disclosure, the terms "entropy" and "entropy information" are used interchangeably. Various embodiments are described herein, including methods, systems, non-transitory computer-readable storage media having stored thereon programs, code, or instructions executable by one or more processors, or the like.

[0026] Figure 1 is a simplified block diagram of a distributed environment 100 according to some embodiments. The distributed environment 100 may include multiple computer systems communicatively coupled to each other via one or more communication links over one or more communication networks. The distributed environment 100 of Figure 1 includes computer system A 110, computer system B 120, computer system C 130, computer system D 140, and a quantum entropy generator 105.

[0027] The distributed environment depicted in Figure 1 is illustrative only and should not unnecessarily limit the scope of the claimed embodiments. Many variations, alternatives, and modifications are possible. For example, in some implementations, distributed environment 100 may have more computer systems or components than those depicted in Figure 1, may have fewer computer systems or components than those depicted in Figure 1, or may have other configurations or arrangements of computer systems and communication lines.

[0028] The computer systems illustrated in FIG. 1 may each include computing resources (e.g., one or more processors or CPUs), memory resources (e.g., system memory, non-volatile memory), and network resources (e.g., a network interface card (NIC). The computer systems may use these network resources to communicate with one or more other computer systems over one or more communications networks. Communications networks include, for example, the Internet, an intranet, an extranet, a LAN (local area network), a WAN (wide area network), and other networks that facilitate communications, and combinations thereof. Communications may occur over wired or wireless links using one or more wired or wireless communications protocols.

[0029] One or more of the computer systems shown in FIG. 1 may execute one or more applications that utilize entropy information. For example, the computer system may execute an application that generates one or more cryptographic keys, and the entropy information is used to generate these keys. The cryptographic keys may be used for different purposes, such as to secure stored information, to enable communications with other computer systems, for user authentication / authorization, etc. The entropy information used for these uses would need to be high quality, truly random entropy. The computer system would not be able to generate such high quality entropy information on its own.

[0030] There are various types of entropy generators capable of generating entropy of different qualities. Quantum entropy is considered to be high quality and truly random entropy due to the quantum physics involved in generating quantum entropy. Thus, quantum entropy generators are capable of generating high quality entropy. One such quantum entropy generator 105 is shown in FIG. 1. The quantum entropy generator 105 is an entropy source that the various computer systems shown in FIG. 1 can rely on. A specific implementation of the quantum entropy generator 105 is shown in FIG. 2 and described below. Although a quantum entropy generator is shown in FIG. 5, other entropy generators may be used in alternative embodiments. Thus, embodiments may include any suitable reliable entropy source.

[0031] In the embodiment shown in FIG. 1, computer systems A 110 and C 130 are directly connected to the quantum entropy generator 105 via links 111 and 131. For example, computer system A 110 may be physically located near the quantum entropy generator 105 and connected to the quantum entropy generator 105 by a direct wire. Whether through a direct wired circuit or another fully trusted communication channel, computer system A 110 can receive entropy from the trusted entropy generator without the entropy being disturbed or compromised. Similarly, computer system C 130 may be physically located near the quantum entropy generator 105 and connected to the quantum entropy generator 105 by a direct wire and can receive entropy from the trusted entropy generator without the entropy being disturbed or compromised.

[0032] Links 111 and 131 allow for safe and secure transmission of quantum entropy generated by quantum entropy generator 105 to computer systems A 110 and C 130 over a secure channel. In a particular embodiment, the secure channel may be implemented using an insulated RS-232 serial cable. The cable may be positioned at a 90 degree orthogonal position relative to other cables present in the connected environment. Also, the cable may be located no closer to another data cable than the product of the square of the electromagnetic permeability of each cable's insulation and the maximum signal voltage it carries (e.g., between 3 volts and 15 volts). In yet other embodiments, a fiber optic cable shielded from optical interference may be used to transmit the entropy information from entropy generator 105 to computer systems directly connected to the entropy generator. In other embodiments, other cables that are physically tamper-resistant may be used, and signals stored by these cables will not be subject to snooping or tampering.

[0033] In contrast to computer systems A 110 and C 130, in FIG. 1 computer systems B 120 and D 140 do not have a direct connection or other pre-established secure communication channel to / with quantum entropy generator 105. Computer systems B 120 and D 140 may be located far away from the location of quantum entropy generator 105, for example in another geographic location, such as another city, another state, or even another country. Thus, secure communication links or channels 111 and 131 that can be used to directly transmit entropy information from quantum entropy generator 105 to computer systems A 110 and C 130 are unavailable to computer systems B 120 and D 140. Thus, computer systems B 120 and D 140 cannot receive entropy from a trusted entropy generator without the risk of the entropy being intercepted or compromised.

[0034] In the embodiment shown in FIG. 1, various computer systems are communicatively coupled to each other via a lattice network having a graph clustering rate of 1.0, with each computer system connected to each other computer system. The configuration shown in FIG. 1 is not limiting. In alternative embodiments, other connection configurations between the computer systems are possible. In FIG. 1, computer system A 110 is communicatively coupled to computer systems B 120, C 130, and D 140. As will be described in more detail below, computer system A 110 can use the entropy received from quantum entropy generator 105 to establish secure communication channels with computer systems B 120, C 130, and / or D 140, and can transmit at least a portion of the entropy information received by computer system A 110 from quantum entropy generator 105 to these other computer systems using the secure communication channels.

[0035] 1, computer system C 130 is communicatively coupled to computer systems A 110, B 120, and D 140. In accordance with the techniques disclosed in this disclosure, computer system C 120 can use the entropy received from quantum entropy generator 105 to establish secure communication channels with computer systems A 110, B 120, and / or D 140 and transmit at least a portion of the entropy information received by computer system C 130 from quantum entropy generator 105 to these other computer systems using the secure communication channels.

[0036] In the embodiment shown in FIG. 1, computer system B 120 is communicatively coupled to a number of computer systems, including computer system D 140. Computer system B 120 can use entropy received from computer system A 110 or C 130 to establish a secure communication channel with computer system D 140 and transmit at least a portion of the entropy information received by computer system B 120 to computer system D 140 using the secure communication channel. Similarly, in FIG. 1, computer system D 140 is communicatively coupled to a number of computer systems, including computer system B 120. Computer system D 140 can use entropy received from computer system A 110 or C 130 to establish a secure communication channel with computer system B 120 and transmit at least a portion of the entropy information received by computer system D 140 to computer system B 120.

[0037] 2 illustrates an example of a quantum entropy generator 205, according to certain embodiments. The quantum entropy generator 205 may include a laser 206, a beam splitter 207, a sensor A 250, a sensor B 260, and a sampling unit 270. The quantum entropy generator 205 may use the various components illustrated in FIG. 2 to generate high quality entropy information.

[0038] In a particular embodiment, the laser 206 is a single photon source capable of generating short bursts of light, such as a faint laser. The laser 206 may emit photons towards the beam splitter 207. The beam splitter 207 is configured to split the photon beam received from the laser 206 so that some of the photons are reflected to the sensor A 250 and other light is reflected to the sensor B 260. For example, this can be achieved by using a 50% reflecting mirror as the beam splitter 207. The 50% mirror may be placed at a 45 degree angle with respect to the path of the laser 206 and the photons. The two sensors A 250 and B 260 are placed at precise locations that are the exit points of the photons emitted by the laser 206 and split by the splitter 207. The sampling unit 270 is capable of reading out which sensor (A 250 or B 260) the photon reached during the observation and generates a data string based on the information received from these two sensors. For example, the sampling unit 270 may create a sequence of 0's and 1's, where a photon when detected by sensor A 250 is interpreted as a 0 and a photon detected by sensor B 260 is interpreted as a 1.

[0039] For example, the laser 206 may send a single photon of light towards the splitter 207. Due to relativistic quantum electrodynamic reflection by the 50% mirror splitter 207, the photon will reach either sensor A 250 or sensor B 260 with a probability of 1:1, matching the reflectivity of the coating on the 50% mirror. When a photon is received by either sensor, the sampling unit 270 appends a bit to the previously generated entropy stream as follows: (a) if sensor A 250 receives the photon, the sampling unit 270 appends a bit "1" to the entropy stream; (b) if sensor B 260 receives the photon, the sampling unit 270 appends a bit "0" to the entropy stream. For example, if the photons generated by the laser 206 are received by sensors A and B in the following sequence "AABABBABAB", the entropy stream generated by the sampling unit 270 will be "1101001010". In certain embodiments, the entropy generation process is repeated between the laser 206 and the sensor / sampling assembly at the full Nyquist sampling frequency. This results in a stream of quantum-grade entropy being generated by the quantum entropy generator 205. The quantum entropy may then be transmitted by the quantum entropy generator 205 over a secure communication channel to one or more computer systems directly connected to the quantum entropy generator 205.

[0040] At each interaction of a photon with the beam splitter 207, the transmission or reflection of that photon is the result of quantum mechanics. As a result, the sequence of reflections and transmissions of photons is truly random and the result of quantum entropy. Subsequently, the sequence of photons detected by the sensor A 250 and the sensor B 260 is the result of quantum entropy, and the data sequence created by the sampling unit 270 is the result of quantum entropy. Therefore, the data sequence created by the sampling unit 270 can be referred to as quantum entropy.

[0041] Various inventive techniques described in this disclosure can be utilized in a distributed cloud environment. In a cloud environment, a CSP (Cloud Service Provider) may provide one or more cloud services to one or more subscribing customers. The term cloud service is generally used to refer to services that a CSP provides on demand (e.g., via a subscription model) to users or customers who utilize the systems and infrastructure (cloud infrastructure) provided by the CSP. Typically, the servers and systems that make up the CSP's infrastructure are separate from the customer's own on-premise servers and systems. Thus, customers can utilize the cloud services provided by the CSP without purchasing separate hardware and software resources for the services. Cloud services are designed to allow customers to easily and scalably access applications and computing resources without the subscribing customer having to spend money to obtain the infrastructure used to provide the services. There are various cloud service providers that provide various types of cloud services. There are various different types and different models of cloud services, including Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS), Infrastructure-as-a-Service (IaaS), and others.

[0042] In the IaaS model, the CSP provides infrastructure (called cloud service provider infrastructure or CSPI) that customers can use to build their own customizable private networks called VCNs (Virtual Cloud Networks). Customers can deploy one or more customer resources or workloads, such as computing instances (also called hosts), onto these VCNs. A computing instance or host is hosted by a computer system (called a host machine). A host can be a virtual machine computing instance or a bare metal computing instance. A VM (Virtual Machine) computing instance is an independent virtualized machine that runs on a physical bare metal computer system. Virtualization technologies such as hypervisors allow multiple virtual machine computing instances to run on the same host machine. A bare metal computing instance is hosted by a bare metal server or host machine without a hypervisor. When a bare metal computing instance is provisioned, one customer or tenant maintains control of the physical CPU, memory, and network interfaces of the host machine hosting the bare metal instance and does not share the host machine with other customers or tenants.

[0043] The entropy distribution techniques described in this disclosure can also be utilized to distribute entropy among computing instances or hosts in a distributed cloud environment. FIG. 7 is a simplified block diagram of a distributed cloud environment 700 according to some embodiments. The environment shown in FIG. 7 is very similar to the environment shown in FIG. 1, except that FIG. 7 illustrates multiple computing instances or multiple hosts rather than the computer system shown in FIG. 1. The above description of the computer system of FIG. 1 is also applicable to the computing instances shown in FIG. 7. The distributed cloud environment shown in FIG. 7 is illustrative only and does not unnecessarily limit the scope of the claimed embodiments. Many variations, alternatives, and modifications are possible. For example, in some implementations, the distributed environment 700 may have more components than those shown in FIG. 7, may have fewer components than those shown in FIG. 7, may have hosts and communication lines in different configurations or arrangements.

[0044] As shown in FIG. 7, the hosts or computing instances include Host A 710, Host B 720, Host C 730, and Host D 740 communicatively coupled to each other via a lattice network with a graph clustering rate of 1.0, and each host is connected to each other host. The configuration shown in FIG. 7 is not limiting. The hosts shown in FIG. 7 may be virtual machine computing instances or bare metal computing instances. If virtual machine computing instances, the computing instances may be hosted by different host machines or some may be hosted by the same host machine. The hosts in FIG. 7 may belong to one tenant or customer of a cloud service or to multiple different tenants or customers of a cloud service.

[0045] In certain embodiments, the ability to receive high quality entropy information may itself be offered as a service to customers, who may subscribe to such a service, whereby high quality entropy generated by quantum entropy generator 705 is made available to subscribing customer hosts utilizing the various distribution techniques described in this disclosure.

[0046] Hosts A 710 and C 730 are directly connected to the quantum entropy generator 705 via links 711 and 731. As described in Figure 1, links 711 and 731 are like links 111 and 131 and allow the entropy generated by the quantum entropy generator 705 to be securely transmitted to hosts A 710 and C 730 without being intercepted or compromised.

[0047] In contrast to hosts A 710 and C 730, hosts B 720 and D 740 do not have a direct connection or other pre-established secure communication channel to / with the quantum entropy generator 705. Hosts B 720 and D 740 may be located far away from the location of the quantum entropy generator 705, for example in another geographic location, such as another city, another state, or even another country. Thus, secure communication links or channels 711 and 731 that can be used to directly transmit entropy information from the quantum entropy generator 705 to hosts A 710 and C 730 are unavailable to hosts B 720 and D 740.

[0048] In Figure 7, host A 710 is communicatively coupled to computer instances B 720, C 730, and D 740. As will be described in more detail below, host A 710 can use the entropy received from the quantum entropy generator 705 to establish secure communication channels with hosts B 720, C 730, and / or D 740, and can use the secure communication channels to transmit at least a portion of the entropy information that host A 710 receives from the quantum entropy generator 705 to these other hosts.

[0049] 1, host C 730 is communicatively coupled to hosts A 710, B 720, and D 740. In accordance with the techniques disclosed in this disclosure, host C 720 can use the entropy received from the quantum entropy generator 705 to establish secure communication channels with hosts A 710, B 720, and / or D 740, and can utilize the secure communication channels to transmit at least a portion of the entropy information that host C 730 receives from the quantum entropy generator 705 to these other hosts.

[0050] In the embodiment shown in FIG. 1, host B 720 is communicatively coupled to multiple hosts, including host D 740. Host B 720 may establish a secure communication channel with host D 740 using entropy received from host A 710 or C 730, and may use the secure communication channel to transmit at least a portion of the entropy information received by host B 720 to host D 740. Similarly, in FIG. 7, host D 740 is communicatively coupled to multiple hosts, including host B 720. Host D 740 may establish a secure communication channel with host B 720 using entropy received from host A 710 or C 730, and may use the secure communication channel to transmit at least a portion of the entropy information received by host D 740 to host B 720.

[0051] 3-8 are various swim charts and flow charts illustrating various methods for distributing entropy according to certain embodiments. The swim charts and flow charts of FIGS. 3-8 and the associated description describe distributing entropy among hosts, which may be hosted by one host machine or different host machines. The teachings shown in FIGS. 3-8 and the accompanying description are also applicable to securely distributing entropy among various host machines or computer systems, such as among the various computer systems shown in FIG. 1. In addition, the distribution of quantum entropy is described in FIGS. 3-8 and the accompanying description without limitation. The teachings described herein may also be utilized to distribute other types of entropy information generated from other trusted sources, such as radioactive decay, thermal noise, human interaction with computer interface hardware, and / or airflow detection.

[0052] FIG. 3 illustrates a simplified swim chart 300 of a process for distributing or transmitting entropy information generated by a quantum entropy generator 705 to multiple hosts and multiple computing instances, according to certain embodiments. The process illustrated in FIG. 3 may be implemented in software (e.g., code, instructions, programs) executed by one or more processing units (e.g., processors, cores) of the respective systems, may be implemented using hardware, or a combination thereof. The software may be stored on a non-transitory storage medium (e.g., on a storage device). The method presented in FIG. 3 and described below is by way of example and not limitation. Although FIG. 3 illustrates various process steps as occurring in a particular order or sequence, this is not a limitation. In certain alternative embodiments, the process may be performed in a different order, and some steps may be performed in parallel.

[0053] Figure 3 illustrates the distribution of entropy among the various components shown in Figure 7, and the accompanying description of Figure 2 describes such distribution. More specifically, Figure 3 and the accompanying description describe the distribution of quantum entropy from a quantum entropy generator 705 to a host A 710 that is directly connected to the quantum entropy generator 705, and the subsequent distribution of quantum entropy from host A 710 to a host B 720 that is communicatively coupled to host A 710. The teachings of Figure 3 are applicable to the distribution of entropy from an entropy source to a computer system that is directly connected to the entropy source, and from that computer system to another computer system that is communicatively coupled to the first computer system. For example, in Figure 1, host A 710 may use this method to transmit entropy received from the quantum entropy generator 705 to any of computer systems B 720, C 730, or D 740 that are communicatively coupled to host A 710.

[0054] 3, at S310, a quantum entropy generator 705 (or another suitable trusted source of entropy) may generate quantum entropy. In some embodiments, the quantum entropy generator 705 may generate a stream of quantum entropy. The stream of quantum entropy may then be distributed to one or more connected computer systems.

[0055] At S312, the quantum entropy generator 705 may transmit the quantum entropy generated at S310 to a host A 710 that is directly connected to the quantum entropy generator 705. In certain embodiments, the host machine hosting the host A 710 may be directly connected to the quantum entropy generator 705. Any suitable amount of quantum entropy generated by the quantum entropy generator 705 may be transmitted. For example, 128 bits, 256 bits, 512 bits, 1024 bits, 2048 bits, or any other suitable amount of quantum entropy may be transmitted to the host A 710. In certain implementations, the quantum entropy may be transmitted in the form of a stream of quantum entropy.

[0056] In S312, the entropy information is transmitted from the quantum entropy generator 705 to the host A 710 over a trusted connection. For example, the entropy information may be transmitted over a direct, local wired connection between the quantum entropy generator 705 and the host A 710 (or between the quantum entropy generator 705 and the host machine hosting the host A 710) that is not connected to the Internet and / or other networks. The cable used for the wired connection may also be protected from external interference or tampering or snooping. Additionally or alternatively, the quantum entropy may be transmitted in an encrypted form. For example, the quantum entropy generator 705 may encrypt the quantum entropy generated in S310 and then transmit the encrypted quantum entropy to the host A 710 in S312. Upon receiving the encrypted quantum entropy, the host B 720 may decrypt it.

[0057] At S314, at least a portion of the quantum entropy received by Host A 710 from the quantum entropy generator 705 is distributed or transmitted from Host A 710 to Host B 720 over a secure communication channel established between Host A 710 and Host B 720, where the secure channel itself is provided using the portion of the quantum entropy received by Host A 710 from the quantum entropy generator 705.

[0058] In certain implementations, the secure communication channel is established using cryptographic keys, which themselves were generated using a portion of the quantum entropy received by Host A 710 from the quantum entropy generator 705. For example, Host A 710 may use a first portion of the quantum entropy received in step S312 to generate one or more cryptographic keys for use in establishing a secure communication channel with Host B 720. Host A 710 may then utilize the secure communication channel to transmit a second portion of the quantum entropy received in step S312 to Host B 720. As a result, Host B 720 may receive quantum entropy from the quantum entropy generator 705 even if there is no direct connection or previously existing secure communication channel between the quantum entropy generator 705 and Host B 720. Host B 720 may then utilize the second portion of the quantum entropy for use in updating and / or further securing the communication channel between Host B 720 and Host A 710. In some embodiments, Host B 720 may use the second portion of the quantum entropy to operate applications, for use in establishing one or more additional communication channels with other computer systems, or for any other suitable purpose.

[0059] An example of the process performed in step S314 of FIG. 3 according to some embodiments is shown in FIG. 4 and described below. FIG. 4 illustrates a simplified swim chart 400 of another process for distributing or transmitting entropy information generated by the quantum entropy generator 705 to multiple hosts and multiple computing instances according to certain embodiments. The process illustrated in FIG. 4 may be implemented in software (e.g., code, instructions, programs) executed by one or more processing units (e.g., processors, cores) of the respective systems, may be implemented using hardware, or a combination thereof. The software may be stored on a non-transitory storage medium (e.g., on a storage device). The method presented in FIG. 4 and described below is exemplary and not limiting. Although FIG. 4 illustrates various process steps as occurring in a particular order or sequence, this is not limiting. In certain other embodiments, the process may be performed in a different order and some steps may be performed in parallel. In certain embodiments, such as the embodiment illustrated in FIG. 1, the process illustrated in FIG. 4 may be performed by the quantum entropy generator 705, host A 710, and / or host B 720.

[0060] 4, at S410, a quantum entropy generator 705 (or another suitable trusted source of entropy) may generate quantum entropy. In some embodiments, the quantum entropy generator 705 may generate a stream of quantum entropy. The stream of quantum entropy may then be distributed to one or more connected computer systems.

[0061] At S412, the quantum entropy generator 705 may transmit the quantum entropy generated at S410 to a host A 710 that is directly connected to the quantum entropy generator 705. In certain embodiments, the host machine hosting the host A 710 may be directly connected to the quantum entropy generator 705. Any suitable amount of quantum entropy generated by the quantum entropy generator 705 may be transmitted. For example, 128 bits, 256 bits, 512 bits, 1024 bits, 2048 bits, or any other suitable amount of quantum entropy may be transmitted to the host A 710. In certain implementations, the quantum entropy may be transmitted in the form of a stream of quantum entropy.

[0062] In S412, the entropy information is transmitted from the quantum entropy generator 705 to the host A 710 over a trusted connection. For example, the entropy information may be transmitted over a direct, local wired connection between the quantum entropy generator 705 and the host A 710 (or between the quantum entropy generator 705 and the host machine hosting the host A 710) that is not connected to the Internet and / or other networks. The cable used for the wired connection may also be protected from external interference or tampering or snooping. Additionally or alternatively, the quantum entropy may be transmitted in an encrypted form. For example, the quantum entropy generator 705 may encrypt the quantum entropy generated in S310 and then transmit the encrypted quantum entropy to the host A 710 in S412. Upon receiving the encrypted quantum entropy, the host B 720 may decrypt it.

[0063] The operations at S414, S416, S418, S420, S422, S424, S426, and S428 are performed to establish a secure communication channel between Host A 710 and Host B 720, and to use the secure channel to distribute or transmit to Host B 720 a portion of the quantum entropy received by Host A 710 from the quantum entropy generator 705. The communication channel established between Host A 710 and Host B 720 is one in which the entropy transmitted using the channel cannot be snooped, tampered with, or blocked. The quantum entropy itself may be used as secret information, for example, during the generation of an encryption key for providing the communication channel between Host A 710 and Host B 720.

[0064] The operations of S414, S416, and S418 are performed to establish an initial communication channel between Host A 710 and Host B 720. At S414, Host A 710 may generate a first set of one or more cryptographic keys using a first portion of the quantum entropy that Host A 710 received from the quantum entropy generator 705. For example, Host A 710 may generate a first public key for use in an initial key exchange with Host B 720 to establish the initial communication channel. The size of the first portion of quantum entropy may be any suitable size, such as 256 bits or 512 bits of quantum entropy.

[0065] At S416, Host B 720 may generate a second set of one or more cryptographic keys for use in establishing an initial communications channel with Host A 710. For example, Host B 720 may generate a second public key for use in an initial key exchange with Host A 710. Because Host B 720 does not yet have access to the quantum entropy generated by the quantum entropy generator 705, it may use other entropy information for the key generation process at S416, such as a data string generated by a software-based pseudorandom number generator or another type of potentially untrusted entropy source. This entropy generated by these sources may not be as secure or trustworthy as the quantum entropy generated by the quantum entropy generator 705.

[0066] At S418, an initial communication channel is established between Host A 710 and Host B 720 using the first set of encryption keys generated by Host A 710 at S414 and the second set of encryption keys generated by Host B 720 at S416. As part of the process at S418, Host A 710 and Host B 720 may conduct an initial key exchange to create an initial shared key (e.g., a symmetric key). This may include exchanging information based on the first set of encryption keys generated by Host A 710 at S414 and exchanging information based on the second set of encryption keys generated by Host B 720 at S416. In some embodiments, the information exchange may include an Elliptic Curve Diffie-Hellman key agreement protocol.

[0067] As described above, an initial communication channel is established using a first set of encryption keys that Host A 710 generates using a portion of the quantum entropy received from the quantum entropy generator 705, and a second set of encryption keys that Host B 720 generates using entropy that is not from the quantum entropy generator 705 and is therefore less trusted. Thus, the initial communication channel is a connection whose encryption strength comes from asymmetric entropy. This initial communication channel may be a communication channel that is sufficiently reliable to transmit at least some secret information to Host B 720 without being intercepted or compromised. Thus, as described below with respect to S420, the initial communication channel is used to transmit a portion of the quantum entropy that Host A 710 receives from the quantum entropy generator 705 to Host B 720.

[0068] In S420, Host A 710 transmits a portion (second portion) of the quantum entropy received from the quantum entropy generator 705 to Host B 720 via the initial communication channel. In certain embodiments, Host A 710 may take precautions to transmit the entropy information in S420 because the initial communication channel is a connection with cryptographic strength derived from asymmetric entropy, where only one set of cryptographic keys used to establish the communication channel is generated using the entropy information generated by the quantum entropy generator 705. For example, the entropy information may be transmitted in encrypted form from Host A 710 to Host B 720 in the initial communication channel. Host A 710 may first encrypt the portion (second portion) of the quantum entropy to transmit to Host B 720, and then transmit the encrypted entropy information to Host B 720. In certain embodiments, the entropy information may be encrypted using the initial symmetric key created in step S416. Upon receiving the second portion of the quantum entropy, Host B 720 may decrypt it using the original symmetric key. The size of the second portion of the quantum entropy may be any suitable size, such as 256 or 512 bits of quantum entropy.

[0069] After S420, both Host A 710 and Host B 720 have access to the entropy information generated by the quantum entropy generator 705. Host A 710 previously received this information in S412, and Host B 720 receives the entropy information in S420. Now that they both have trusted entropy information generated by the quantum entropy generator 705, a connection can be set up between Host A 710 and Host B 720 with cryptographic strength derived from symmetric entropy, as will be described below in steps S422, S424, and S426.

[0070] At S422, Host A 710 may generate a third set of one or more cryptographic keys using a portion (third portion) of the quantum entropy received from the quantum entropy generator 705 at S412. For example, Host A 710 may generate a third public key for use in a second key exchange with Host B 720 to establish a secure channel. The size of the third portion of quantum entropy may be any suitable size, such as 256 or 512 bits of quantum entropy.

[0071] In S424 (which may be performed simultaneously with step S422), Host B 720 may generate a fourth set of one or more encryption keys using a portion of the quantum entropy generated by the quantum entropy generator 705 and received by Host B 720 in S420. For example, Host B 720 may generate a fourth public key for use in a second key exchange with Host A 710 to establish a secure communication channel. Host B 720 may use some or all of the quantum entropy it received in S420 when generating the fourth set of encryption keys. For example, if the portion of the quantum entropy it received in S420 is 512 bits in size, Host B 720 may use all 512 bits of entropy information, or fewer bits of entropy information, to generate the fourth set of one or more public keys.

[0072] At S426, a secure communications channel is established between Host A 710 and Host B 720 using the third set of encryption keys generated by Host A 710 at S422 and the fourth set of encryption keys generated by Host B 720 at S424. In some embodiments, the amount of quantum entropy generator generated entropy information transmitted from Host A 710 to Host B 720 in the first semi-secure channel at S420 is just enough to facilitate establishing a secure communications channel between Host A 710 and Host B 720. For example, the amount of entropy information transmitted at S420 may be just enough for Host B 720 to generate a fourth set of encryption keys used to establish the secure communications channel at S426. As part of the processing at S426, Host A 710 and Host B 720 may conduct a second key exchange to create a second shared key (e.g., a symmetric key). This may include exchanging the third set of encryption keys generated in S422 and exchanging the fourth set of encryption keys generated in S424. In some embodiments, this may include an elliptic curve Diffie-Hellman exchange.

[0073] Since both sets of encryption keys used to provide the communication channel were generated using the entropy information generated by the quantum entropy generator 705, the communication channel established in S426 is a connection whose encryption strength is derived from symmetric entropy. Thus, the communication channel established in S426 is considered to be a completely secure communication channel. This secure communication channel is then used by the host A 710 to further transmit to the host B 720 a portion of the quantum entropy information that the host A 710 received from the quantum entropy generator 705. This communication channel may also be used for other purposes, such as to exchange one or more messages between the host A 710 and the host B 720.

[0074] At S428, Host A 710 may transmit another portion (e.g., a fourth portion) of the quantum entropy generated by the quantum entropy generator to Host B 720 via the secure communication channel established at S426. In certain implementations, the entropy information may be transmitted as a stream of information. The magnitude of the fourth portion of quantum entropy may be any suitable size, such as 256 bits or 512 bits of quantum entropy.

[0075] At S430, Host B 720 may use the fourth portion of the quantum entropy received from Host A 710 over the secure communications channel at S428. For example, Host B 720 may use the fourth portion of the quantum entropy in the operation of one or more applications.

[0076] In certain embodiments, to maintain the security of the communication channel established in S426, the cryptographic material (e.g., encryption key) associated with the connection is itself regenerated to maintain the secure communication channel. For example, as shown in FIG. 4, in S432, after certain conditions are met, host A 710 and host B 720 may generate a new encryption key that is used to update the secure communication channel and / or establish a new secure communication channel. Here, the new encryption key is also generated using a portion of the quantum entropy information available to host A 710 and host B 720. This may be repeated each time a regeneration condition is met or occurs. This may also be referred to as encryption key rotation. The encryption key may also be referred to as an ephemeral encryption key because it is only valid for a certain period of time before it is generated again.

[0077] In one embodiment, either Host A 710 or Host B 720 may generate a new set of one or more encryption keys using quantum entropy available to the host. In the case of Host A 710, the entropy information used to generate the ephemeral encryption keys is received from the quantum entropy generator 705 via a connection between the quantum entropy generator 705 and Host A 710. In certain implementations, the quantum entropy generator 705 may be configured to continuously send a stream of quantum entropy information to Host A 710. In the case of Host B 720, the quantum entropy used to generate the ephemeral encryption keys may be received by Host B 720 from Host A 710 via the secure communication channel established in S426.

[0078] A variety of different conditions may trigger the regeneration of cryptographic material (e.g., encryption keys) in S432. In certain implementations, the trigger condition may be a time-based condition. For example, a preconfigured period of time may be configured for the connection after which the encryption keys must be generated again to maintain the channel. This preconfigured period may be, for example, a specific number of seconds, minutes, hours, etc. For example, after 30 seconds, 1 minute, 5 minutes, 10 minutes, 30 minutes, etc.

[0079] In some other embodiments, the trigger condition may be based on a preconfigured number of packets or messages exchanged between hosts A 710 and B 720. For example, encryption key regeneration may be triggered after 1 packet, 2 packets, 5 packets, 10 packets, 20 packets, or generally after "N" packets, where "N" varies depending on the entropy customer's acceptable risk exposure. A high value of N corresponds to a low ephemeral key and a high potential exposure to entropy tampering risk. For the lowest risk tolerance, the value of N may be set to 1, which results in a very ephemeral encryption key. The encryption key rotation rate may be based on the entropy customer's desired acceptable risk exposure. The clustering graph network shown in FIG. 1 and FIG. 7 represents the fastest possible rate of entropy consumption that would be required to maintain strong ephemeral keys among all connections between all hosts in the network. This is because the product of the key rotation rate and the clustering coefficient of the graph of a computer network determines how quickly entropy itself is consumed in the process of distributing it to hosts. Due to fast key rotation, as the connection duration between hosts in the network increases, the trust level of the connection increases logarithmically by a factor of the inverse of "N". This connection duration is represented by the value of N above, or the number of packets exchanged between two hosts before these two hosts generate an ephemeral key again.

[0080] As noted above, the particular order or sequence of steps depicted in FIG. 4 is not a limitation. In certain alternative embodiments, the steps may be performed in a different order, and some steps may be performed in parallel. For example, although steps S420, S422, and S424 are shown as being performed in a particular order in the swim chart 400 of FIG. 4, this is not a limitation. In alternative embodiments, the steps may be performed in any order. In still other embodiments, the processing at S420, S422, and S424 may overlap or may be performed in parallel.

[0081] In the embodiment shown and described in FIG. 4, the entropy information generated by the quantum entropy generator 705 is transmitted to host A 710 in S412. In certain embodiments, the transmission of this entropy information from the entropy source to the host directly connected to the entropy source may be performed as a one-time event. In other embodiments, the transmission of quantum entropy information from the entropy source to the host directly connected to the entropy source may be performed periodically, where after each period, new entropy information generated by the entropy source is transmitted to the connected host. In still other embodiments, the transmission of quantum entropy information from the entropy source to the host directly connected to the entropy source may be performed continuously as a stream of entropy information generated by the entropy source and transmitted to the connected host. In some other embodiments, the entropy information may be transmitted from the entropy source to the host when the host requests this information. For example, a host may send a request for entropy information to an entropy source, which may then respond to the request by transmitting the requested entropy information that it generates to the requesting host. Other transmission mechanisms may be used in other embodiments.

[0082] The transmission of entropy information from one host to another (e.g., from host A 710 to host B 720) may be performed according to a variety of different manners. In one embodiment, the first host may transmit the entropy information to the second host as a one-time event over a secure communication channel established between these two hosts. In other embodiments, the transmission of quantum entropy information from the first host to the second host may be performed periodically over the secure communication channel, where after each period, new entropy information is transmitted from the first host to the second host, where the new entropy information may be part of the entropy information received by the first host from an entropy source or another host. In still other embodiments, the transmission of quantum entropy information from the first host to the second host may be performed continuously as a stream of entropy information over the secure communication channel established between the hosts. In some other embodiments, the entropy information may be transmitted from the first host to the second host when the second host requests this information. For example, the second host may send a request for entropy information to the first host, which may then respond to the request by sending the requested entropy information to the requesting second host. Other transmission mechanisms may be used in other embodiments.

[0083] The process illustrated in FIG. 4 illustrates how entropy generated by an entropy source may be received by a host (e.g., Host A 710) that is directly connected to the entropy source (e.g., quantum entropy generator 705), and further illustrates how the host receiving the entropy information may distribute a portion of the entropy to one or more other hosts communicatively coupled to the first host. These other hosts may or may not be connected to the entropy source. Additionally, the host receiving the entropy information may distribute a portion of the received entropy information to other hosts communicatively coupled to the host. In this manner, entropy information generated by an entropy source may be securely distributed to multiple hosts in a distributed, networked environment. Entropy may be transferred to hosts that are some distance away from the entropy source (e.g., from the quantum entropy generator 705). For example, Host B 720, after receiving quantum entropy from Host A 710, may forward a portion of the received quantum entropy to Host D 740, which in turn may forward it to other connected hosts, and so on.

[0084] As described above, hosts in a network (e.g., in a lattice network) can access entropy information, such as quantum entropy, generated by a trusted entropy generating source, even if the hosts are not directly connected to the entropy source. Due to the high quality and trust in the quantum entropy information received by the hosts, the received entropy information can be used for various operations that require high trust. For example, the quantum entropy may be used by the hosts to generate trusted cryptographic keys. These cryptographic keys can be utilized for various purposes, such as, for example, to establish trusted communication channels between the hosts. This disclosure describes a method for distributing quantum entropy generated by a quantum entropy source through a lattice cryptographic network that is ephemerally keyed to all hosts (e.g., virtual machine computing instances and / or bare metal computing instances). Here, the hosts receiving the quantum entropy may not be connected to the entropy source or have a locally trusted source of entropy information.

[0085] FIG. 5 illustrates a simplified flowchart 500 of steps performed by a first host during a process for distributing or transmitting entropy information generated by a quantum entropy generator 705 to multiple hosts and multiple computing instances, according to certain embodiments. The process illustrated in FIG. 5 may be implemented in software (e.g., code, instructions, programs) executed by one or more processing units (e.g., processors, cores) of the respective systems, may be implemented using hardware, or a combination thereof. The software may be stored on a non-transitory storage medium (e.g., on a storage device). The method presented in FIG. 5 and described below is exemplary and not limiting. Although FIG. 5 illustrates various process steps as occurring in a particular order or sequence, this is not limiting. In certain alternative embodiments, the process may be performed in a different order and some steps may be performed in parallel. In certain embodiments, such as the embodiment illustrated in FIG. 1, the process illustrated in FIG. 5 may be performed by Host A 710. In some embodiments, the first host described below in FIG. 5 may represent Host A 710, and the second host described below in FIG. 5 may represent Host B 720.

[0086] A quantum entropy generator 705 (or another suitable trusted source of entropy) may generate the quantum entropy. In some embodiments, the quantum entropy generator 705 may generate a stream of quantum entropy that can then be distributed to one or more connected computer systems.

[0087] At S502, the first host receives quantum entropy from the quantum entropy generator 705. The first host may be directly connected to the quantum entropy generator 705. In certain embodiments, the host machine hosting the first host may be directly connected to the quantum entropy generator 705. Any suitable amount of quantum entropy generated by the quantum entropy generator 705 may be received. For example, 128 bits, 256 bits, 512 bits, 1024 bits, 2048 bits, or any other suitable amount of quantum entropy may be transmitted by the quantum entropy generator 705 and received by the first host. In certain embodiments, the quantum entropy may be transmitted in the form of a stream of quantum entropy.

[0088] In S502, the entropy information is transmitted from the quantum entropy generator 705 to the first host over a trusted connection. For example, the entropy information may be transmitted over a direct, local, wired connection between the quantum entropy generator 705 and the first host (or between the quantum entropy generator 705 and a host machine hosting the first host), which is not connected to the Internet and / or other networks. The cable used for the wired connection may also be protected from external interference or tampering or snooping. Additionally or alternatively, the quantum entropy may be transmitted in an encrypted form.

[0089] In S503, the first host transmits the portion of the quantum entropy received by the first host in step S502 to the second host using the secure communication channel established using the portion of the quantum entropy. For example, the first host can establish a secure communication channel with the second host using the first portion of the quantum entropy received in step S502. The first host can then transmit the second portion of the quantum entropy received in step S502 (or any quantum entropy received later) to the second host using the secure communication channel. The communication channel established between the first host and the second host is one in which the entropy transmitted using this channel cannot be snooped, tampered with, or blocked. The quantum entropy itself may be used as secret information, for example, during the generation of a cryptographic key for providing a communication channel between the first host and the second host.

[0090] The process of S503 may include the execution of the following steps S504 to S514. The processes of S504 and S506 are performed to establish an initial communication channel between the first host and the second host. In S504, the first host may generate a first set of one or more cryptographic keys using a first portion of the quantum entropy that the first host received from the quantum entropy generator 705. For example, the first host may generate a first public key for use in an initial key exchange with the second host to establish the initial communication channel. The size of the first portion of the quantum entropy may be any suitable size, such as 256 bits or 512 bits of quantum entropy.

[0091] Additionally, at the same or similar time, the second host may generate a second set of one or more cryptographic keys for use in establishing an initial communications channel with the first host. For example, the second host may generate a second public key for use in the initial key exchange with the first host. Because the second host does not yet have access to the quantum entropy generated by the quantum entropy generator 705, the second host may use other entropy information for the key generation process, such as a data string generated by a software-based pseudorandom number generator or another type of potentially untrusted entropy source. This entropy generated by these sources may not be as secure or trustworthy as the quantum entropy generated by the quantum entropy generator 705.

[0092] At S506, the first host may establish an initial communications channel with the second host using the first set of one or more encryption keys generated by the first host at S504 and a second set of encryption keys generated by the second host. As part of the processing at S506, the first host and the second host may conduct an initial key exchange to create an initial shared key (e.g., a symmetric key), which may include exchanging information based on the first set of encryption keys generated by the first host at S504 and exchanging information based on the second set of encryption keys generated by the second host. In some embodiments, the information exchange may include an Elliptic Curve Diffie-Hellman key agreement protocol.

[0093] As described above, a first communication channel is established using a first set of encryption keys generated by the first host using a portion of the quantum entropy received from the quantum entropy generator 705, and a second set of encryption keys generated by the second host using entropy that is not from the quantum entropy generator 705 and is therefore less reliable. Thus, the first communication channel is a connection with cryptographic strength derived from asymmetric entropy. This first communication channel may be a communication channel that is sufficiently reliable to transmit at least some secret information to the second host without being intercepted or compromised. Thus, as described below with respect to S508, the first communication channel is used to transmit a portion of the quantum entropy received by the first host from the quantum entropy generator 705 to the second host.

[0094] In S508, the first host transmits a portion (e.g., the second portion) of the quantum entropy received from the quantum entropy generator 705 to the second host via the first communication channel. In certain embodiments, the first communication channel is a connection having cryptographic strength derived from asymmetric entropy, where only one set of encryption keys used to establish the communication channel is generated using the entropy information generated by the quantum entropy generator 705, so the first host may take precautions to transmit the entropy information in S508. For example, the entropy information may be transmitted in an encrypted form from the first host to the second host over the first communication channel. The first host may first encrypt the portion (the second portion) of the quantum entropy to be transmitted to the second host, and then transmit the encrypted entropy information to the second host. In certain embodiments, the entropy information may be encrypted using the first symmetric key created in step S506. Upon receiving the second portion of the quantum entropy, the second host may decrypt it using the first symmetric key.

[0095] The magnitude of the second portion of quantum entropy may be any suitable magnitude, such as 256 bits or 512 bits of quantum entropy. In some embodiments, the second portion of quantum entropy may be a portion of the quantum entropy received in step S502. In other embodiments, the second portion of quantum entropy may be received from the quantum entropy generator immediately prior to performing step S508.

[0096] After S508, both the first host and the second host have access to the entropy information generated by the quantum entropy generator 705. The first host previously received this information in S502 (and may now receive additional entropy information), and the second host receives the entropy information in S508. Now that both have trusted entropy information generated by the quantum entropy generator 705, a connection can be set up between the first and second hosts with symmetric entropy-derived cryptographic strength, as will be described below in steps S510 and S512.

[0097] At S510, the first host may generate a third set of one or more cryptographic keys using a portion (e.g., a third portion) of the quantum entropy received from the quantum entropy generator 705. For example, the first host may generate a third public key for use in a second key exchange with the second host to establish a secure channel. The size of the third portion of quantum entropy may be any suitable size, such as 256 bits or 512 bits of quantum entropy.

[0098] Additionally, at the same or similar time, the second host may generate a fourth set of one or more cryptographic keys using a portion of the quantum entropy generated by the quantum entropy generator 705 and received by the second host. For example, the second host may generate a fourth public key for use in a second key exchange with the first host to establish a secure communication channel. The second host may use some or all of the quantum entropy received by the second host when generating the fourth set of cryptographic keys. For example, if the portion of the quantum entropy received by the second host is 512 bits in size, the second host may use all 512 bits of entropy information, or fewer bits of entropy information, to generate the fourth set of one or more public keys.

[0099] At S512, the first host may establish a secure communication channel between the first host and the second host using the third set of one or more encryption keys generated by the first host in step S510 and the fourth set of one or more encryption keys generated by the second host. In some embodiments, the amount of quantum entropy generator generated entropy information transmitted from the first host to the second host in the first semi-secure channel at S508 is just enough to facilitate providing a secure communication channel between the first host and the second host. For example, the amount of entropy information transmitted at S508 may be just enough for the second host to generate a fourth set of encryption keys used to establish the secure communication channel at S512. As part of the process at S512, the first host and the second host may conduct a second key exchange to create a second shared key (e.g., a symmetric key). This may include exchanging the third set of encryption keys generated at S510 and exchanging the fourth set of encryption keys generated by the second host. In some embodiments, this may involve an Elliptic Curve Diffie-Hellman exchange.

[0100] Since both sets of encryption keys used to establish the communication channel were generated using the entropy information generated by the quantum entropy generator 705, the communication channel established in S512 is a connection with cryptographic strength derived from symmetric entropy. Thus, the communication channel established in S512 is considered to be a completely secure communication channel. This secure communication channel is then used by the first host to further transmit to the second host a portion of the quantum entropy information received by the first host from the quantum entropy generator 705. This communication channel may also be used for other purposes, such as to exchange one or more messages between the first host and the second host.

[0101] In S514, the first host may transmit another portion (e.g., a fourth portion) of the quantum entropy generated by the quantum entropy generator to the second host via the secure communication channel established in S512. For example, the first host may encrypt the fourth portion of the quantum entropy using the second symmetric key created in step S512, the first host may transmit the encrypted fourth portion of the quantum entropy to the second host, and the second host may decrypt the fourth portion of the quantum entropy using the second symmetric key. In certain implementations, the entropy information may be transmitted as a stream of information. The size of the fourth portion of the quantum entropy may be any suitable size, such as 256 bits or 512 bits of quantum entropy.

[0102] The second host may use the fourth portion of the quantum entropy received from the first host via the secure communications channel at S514. For example, the second host may use the fourth portion of the quantum entropy in the operation of one or more applications.

[0103] In certain embodiments, to maintain the security of the communication channel established in S512, the cryptographic material (e.g., cryptographic key) associated with the connection is itself regenerated to maintain the secure communication channel. For example, as shown in FIG. 5, in S516, after a certain condition is met, the first host and the second host may generate a new cryptographic key that is used to update the secure communication channel and / or establish a new secure communication channel. Here, the new cryptographic key is also generated using a portion of the quantum entropy information available to the first host and the second host. This may be repeated each time a regeneration condition is met or occurs. This may also be referred to as cryptographic key rotation. The cryptographic key may also be referred to as an ephemeral cryptographic key because it is only valid for a certain period of time before it is generated again. As previously described, the first host and the second host exchange keys by Diffie-Hellman exchange (e.g., elliptic curve Diffie-Hellman exchange) to generate a shared key (e.g., a symmetric key). Because the exchange process can be performed repeatedly to create an ephemeral encryption key, this exchange can be referred to as an ephemeral Diffie-Hellman exchange or an ephemeral elliptic curve Diffie-Hellman exchange.

[0104] In one embodiment, either the first host or the second host may generate a new set of one or more encryption keys using quantum entropy available to the host. In the case of the first host, the entropy information used to generate the ephemeral encryption keys is received from the quantum entropy generator 705 via a connection between the quantum entropy generator 705 and the first host. In certain implementations, the quantum entropy generator 705 may be configured to continuously send a stream of quantum entropy information to the first host. In the case of the second host, the quantum entropy used to generate the ephemeral encryption keys may be received by the second host from the first host via the secure communication channel established in S514.

[0105] A variety of different conditions may trigger the regeneration of cryptographic material (e.g., encryption keys) at S516. In certain implementations, the trigger condition may be a time-based condition. For example, a preconfigured period of time may be configured for the connection after which the encryption keys must be generated again to maintain the channel. This preconfigured period may be, for example, a specific number of seconds, minutes, hours, etc. For example, after 30 seconds, 1 minute, 5 minutes, 10 minutes, 30 minutes, etc.

[0106] In some other embodiments, the trigger condition may be based on a preconfigured number of packets or messages exchanged between the first and second hosts. For example, encryption key regeneration may be triggered after 1 packet, 2 packets, 5 packets, 10 packets, 20 packets, or generally after "N" packets, where "N" varies depending on the entropy customer's acceptable risk exposure. A high value of N corresponds to a low ephemeral key and a high potential exposure to entropy tampering risk. For the lowest risk tolerance, the value of N may be set to 1, which results in a very ephemeral encryption key. The encryption key rotation rate may be based on the entropy customer's desired acceptable risk exposure. The clustering graph network shown in FIG. 1 and FIG. 7 represents the fastest possible rate of entropy consumption that would be required to maintain strong ephemeral keys among all connections between all hosts in the network. This is because the product of the key rotation rate and the clustering coefficient of the graph of a computer network determines how quickly entropy itself is consumed in the process of distributing it to hosts. Due to fast key rotation, as the connection duration between hosts in the network increases, the trust level of the connection increases logarithmically by a factor of the inverse of "N". This connection duration is represented by the value of N above, or the number of packets exchanged between two hosts before these two hosts generate an ephemeral key again.

[0107] As noted above, the particular order or sequence of steps depicted in Figure 5 is not a limitation. In certain alternative embodiments, the steps may be performed in a different order, and some steps may be performed in parallel.

[0108] In the embodiment shown and described in FIG. 5, the entropy information generated by the quantum entropy generator 705 is transmitted to the first host in S502. In certain embodiments, the transmission of this entropy information from the entropy source to the host directly connected to the entropy source may be performed as a one-time event. In other embodiments, the transmission of the quantum entropy information from the entropy source to the host directly connected to the entropy source may be performed periodically, where after each period of time, new entropy information generated by the entropy source is transmitted to the connected host. In still other embodiments, the transmission of the quantum entropy information from the entropy source to the host directly connected to the entropy source may be performed continuously as a stream of entropy information generated by the entropy source and transmitted to the connected host. In some other embodiments, the entropy information may be transmitted from the entropy source to the host when the host requests this information. For example, a host may send a request for entropy information to an entropy source, which may then respond to the request by transmitting the requested entropy information that it generates to the requesting host. Other transmission mechanisms may be used in other embodiments.

[0109] The transmission of entropy information from one host to another (e.g., from a first host to a second host) may be performed according to a variety of different manners. In one embodiment, the first host may transmit the entropy information to the second host as a one-time event over a secure communication channel established between these two hosts. In other embodiments, the transmission of quantum entropy information from the first host to the second host may be performed periodically over the secure communication channel, where after each period, new entropy information is transmitted from the first host to the second host, where the new entropy information may be part of the entropy information received by the first host from an entropy source or another host. In still other embodiments, the transmission of quantum entropy information from the first host to the second host may be performed continuously as a stream of entropy information over the secure communication channel established between the hosts. In some other embodiments, the entropy information may be transmitted from the first host to the second host when the second host requests this information. For example, the second host may send a request for entropy information to the first host, which may then respond to the request by sending the requested entropy information to the requesting second host. Other transmission mechanisms may be used in other embodiments.

[0110] The process illustrated in FIG. 5 illustrates how entropy generated by an entropy source may be received by a host (e.g., a first host) that is directly connected to the entropy source (e.g., quantum entropy generator 705) and further illustrates how the host receiving the entropy information may distribute a portion of the entropy to one or more other hosts communicatively coupled to the first host. These other hosts may or may not be connected to the entropy source. Additionally, the host receiving the entropy information may distribute a portion of the received entropy information to other hosts communicatively coupled to the host. In this manner, entropy information generated by an entropy source may be securely distributed to multiple hosts in a distributed, networked environment. Entropy may be transferred to hosts that are some distance away from the entropy source (e.g., from the quantum entropy generator 705). For example, a second host may receive quantum entropy from a first host, and then forward a portion of the received quantum entropy to a third host, which in turn forwards it to other connected hosts, and so on.

[0111] As described above, hosts in a network (e.g., in a lattice network) can gain access to entropy information, such as quantum entropy, generated by a trusted entropy generating source, even if the hosts are not directly connected to the entropy source. Due to the high quality and trust in the quantum entropy information received by the hosts, the received entropy information can be used for various operations that require high trust. For example, the quantum entropy may be used by the hosts to generate trusted cryptographic keys. These cryptographic keys can be utilized for various purposes, such as, for example, to establish trusted communication channels between the hosts. This disclosure describes a method for distributing quantum entropy generated by a quantum entropy source through a lattice cryptographic network that is ephemerally keyed to all hosts (e.g., virtual machine computing instances and / or bare metal computing instances). Here, the hosts receiving the quantum entropy may not be connected to the entropy source or have a locally trusted source of entropy information.

[0112] FIG. 6 illustrates a simplified flowchart 600 of steps performed by a second host during a process for distributing or transmitting entropy information generated by a quantum entropy generator 705 to multiple hosts and multiple computing instances, according to certain embodiments. The process illustrated in FIG. 6 may be implemented in software (e.g., code, instructions, programs) executed by one or more processing units (e.g., processors, cores) of the respective systems, may be implemented using hardware, or a combination thereof. The software may be stored on a non-transitory storage medium (e.g., on a storage device). The method presented in FIG. 6 and described below is exemplary and not limiting. Although FIG. 6 illustrates various process steps as occurring in a particular order or sequence, this is not limiting. In certain alternative embodiments, the process may be performed in a different order and some steps may be performed in parallel. In certain embodiments, such as the embodiment illustrated in FIG. 1, the process illustrated in FIG. 6 may be performed by Host B 720. In some embodiments, the second host described below in FIG. 6 may represent Host B 720, and the first host described below in FIG. 6 may represent Host A 710.

[0113] A quantum entropy generator 705 (or another suitable trusted source of entropy) may generate the quantum entropy. In some embodiments, the quantum entropy generator 705 may generate a stream of quantum entropy that can then be distributed to one or more connected computer systems.

[0114] The first host receives quantum entropy from the quantum entropy generator 705. The first host may be directly connected to the quantum entropy generator 705. In certain embodiments, the host machine hosting the first host may be directly connected to the quantum entropy generator 705. Any suitable amount of quantum entropy generated by the quantum entropy generator 705 may be received. For example, 128 bits, 256 bits, 512 bits, 1024 bits, 2048 bits, or any other suitable amount of quantum entropy may be transmitted by the quantum entropy generator 705 and received by the first host. In certain implementations, the quantum entropy may be transmitted in the form of a stream of quantum entropy.

[0115] The entropy information is transmitted from the quantum entropy generator 705 to the first host over a trusted connection. For example, the entropy information may be transmitted over a direct, local, wired connection between the quantum entropy generator 705 and the first host (or between the quantum entropy generator 705 and the host machine hosting the first host), which is not connected to the Internet and / or other networks. The cable used for the wired connection may also be protected from external interference or tampering or snooping. Additionally or alternatively, the quantum entropy may be transmitted in an encrypted form.

[0116] The first host may generate a first set of one or more cryptographic keys using the first portion of the quantum entropy it receives from the quantum entropy generator 705. For example, the first host may generate a first public key for use in an initial key exchange with the second host to establish an initial communications channel. The size of the first portion of quantum entropy may be any suitable size, such as 256 or 512 bits of quantum entropy.

[0117] As shown in FIG. 6, in S602, the second host generates a second set of one or more cryptographic keys for use in establishing an initial communication channel with the first host. For example, the second host may generate a second public key for use in an initial key exchange with the first host. Because the second host does not yet have access to the quantum entropy generated by the quantum entropy generator 705, the second host may use other entropy information for the key generation process, such as a data string generated by a software-based pseudorandom number generator or another type of potentially untrusted entropy source. This entropy generated by these sources may not be as secure or trustworthy as the quantum entropy generated by the quantum entropy generator 705.

[0118] At S604, the second host may establish an initial communications channel with the first host using the first set of one or more encryption keys generated by the first host and the second set of encryption keys generated in step S602. As part of the processing at S604, the second host and the first host may conduct an initial key exchange to create an initial shared key (e.g., a symmetric key). This may include exchanging information based on the first set of encryption keys generated by the first host and exchanging information based on the second set of encryption keys generated by the second host in S602. In some embodiments, the information exchange may include an Elliptic Curve Diffie-Hellman key agreement protocol.

[0119] As described above, a first communication channel is established using a first set of encryption keys generated by the first host using a portion of the quantum entropy received from the quantum entropy generator 705, and a second set of encryption keys generated by the second host using entropy that is not from the quantum entropy generator 705 and is therefore less reliable. Thus, the first communication channel is a connection with cryptographic strength derived from asymmetric entropy. This first communication channel may be a communication channel that is sufficiently reliable to transmit at least some secret information to the second host without being intercepted or compromised. Thus, as described below with respect to S508, the first communication channel is used to transmit a portion of the quantum entropy received by the first host from the quantum entropy generator 705 to the second host.

[0120] In S606, the second host receives from the first host a portion (e.g., the second portion) of the quantum entropy that the first host received from the quantum entropy generator 705 via the first communication channel. In certain embodiments, the first host may take precautions to transmit the entropy information in S606 because the first communication channel is a connection having cryptographic strength derived from asymmetric entropy, where only one set of encryption keys used to establish the communication channel is generated using the entropy information generated by the quantum entropy generator 705. For example, the entropy information may be transmitted in an encrypted form from the first host to the second host over the first communication channel. The first host may first encrypt the portion (the second portion) of the quantum entropy to be transmitted to the second host, and then transmit the encrypted entropy information to the second host. In certain embodiments, the entropy information may be encrypted using the first symmetric key created in step S604. Upon receiving the second portion of the quantum entropy, the second host may decrypt it using the first symmetric key. The magnitude of the second portion of quantum entropy may be any suitable magnitude, such as 256 bits or 512 bits of quantum entropy.

[0121] After S606, both the first host and the second host have access to the entropy information generated by the quantum entropy generator 705. The first host previously received this information (and may now receive additional entropy information), and the second host receives the entropy information in S606. Now that both have trusted entropy information generated by the quantum entropy generator 705, a connection can be set up between the first and second hosts with cryptographic strength derived from symmetric entropy, as will be described below in steps S608 and S610.

[0122] The first host may generate a third set of one or more cryptographic keys using a portion (e.g., a third portion) of the quantum entropy received from the quantum entropy generator 705. For example, the first host may generate a third public key for use in a second key exchange with the second host to establish a secure channel. The size of the third portion of quantum entropy may be any suitable size, such as 256 or 512 bits of quantum entropy.

[0123] In S608, the second host may generate a fourth set of one or more encryption keys using a portion of the quantum entropy generated by the quantum entropy generator 705 and received by the second host. For example, the second host may generate a fourth public key for use in a second key exchange with the first host to establish a secure communication channel. The second host may use some or all of the quantum entropy received by the second host when generating the fourth set of encryption keys. For example, if the portion of the quantum entropy received by the second host is 512 bits in size, the second host may use all of the 512 bits of entropy information, or fewer bits (e.g., 256 bits) of entropy information, to generate the fourth set of one or more public keys.

[0124] In S610, the second host may establish a secure communications channel between the first and second hosts using the fourth set of one or more encryption keys generated by the second host in step S608 and the third set of one or more encryption keys generated by the first host. In some embodiments, the amount of quantum entropy generator generated entropy information received by the second host in the first semi-secure channel in S606 is just enough to facilitate providing a secure communications channel between the first and second hosts. For example, the amount of entropy information transmitted in S606 may be just enough for the second host to generate a fourth set of encryption keys used to establish the secure communications channel in S610. As part of the process in S606, the first and second hosts may conduct a second key exchange to create a second shared key (e.g., a symmetric key). This may include exchanging the fourth set of encryption keys generated in S608 and exchanging the third set of encryption keys generated by the first host. In some embodiments, this may involve an Elliptic Curve Diffie-Hellman exchange.

[0125] Since both sets of encryption keys used to establish the communication channel were generated using the entropy information generated by the quantum entropy generator 705, the communication channel established in S610 is a connection whose encryption strength is derived from symmetric entropy. Thus, the communication channel established in S610 is considered to be a completely secure communication channel. This secure communication channel is then used by the second host to further receive from the first host a portion of the quantum entropy information received by the first host from the quantum entropy generator 705. This communication channel may also be used for other purposes, such as to exchange one or more messages between the second host and the first host.

[0126] At S612, the second host may receive another portion (e.g., a fourth portion) of the quantum entropy generated by the receiving quantum entropy generator from the first host via the secure communication channel established at S610. For example, the first host may encrypt the fourth portion of the quantum entropy using the second symmetric key created in step S610, the first host may transmit the encrypted fourth portion of the quantum entropy to the second host, and the second host may decrypt the fourth portion of the quantum entropy using the second symmetric key. In certain implementations, the entropy information may be transmitted as a stream of information. The size of the fourth portion of the quantum entropy may be any suitable size, such as 256 bits or 512 bits of quantum entropy.

[0127] The second host may use the fourth portion of the quantum entropy received from the first host over the secure communications channel at S612. For example, the second host may use the fourth portion of the quantum entropy in the operation of one or more applications.

[0128] In certain embodiments, to maintain the security of the communication channel established in S610, the cryptographic material (e.g., cryptographic key) associated with the connection is itself regenerated to maintain the secure communication channel. For example, as shown in FIG. 6, in S614, after a certain condition is met, the first host and the second host may generate a new cryptographic key that is used to update the secure communication channel and / or establish a new secure communication channel. Here, the new cryptographic key is also generated using a portion of the quantum entropy information available to the first host and the second host. This may be repeated each time a regeneration condition is met or occurs. This may also be referred to as cryptographic key rotation. The cryptographic key may also be referred to as an ephemeral cryptographic key because it is only valid for a certain period of time before it is generated again.

[0129] In one embodiment, both the second host and the first host may generate a new set of one or more encryption keys using quantum entropy available to the host. In the case of the first host, the entropy information used to generate the ephemeral encryption keys is received from the quantum entropy generator 705 via a connection between the quantum entropy generator 705 and the first host. In certain implementations, the quantum entropy generator 705 may be configured to continuously send a stream of quantum entropy information to the first host. In the case of the second host, the quantum entropy used to generate the ephemeral encryption keys may be received by the second host from the first host via the secure communication channel established in S610.

[0130] A variety of different conditions may trigger the regeneration of cryptographic material (e.g., encryption keys) at S610. In certain implementations, the trigger condition may be a time-based condition. For example, a preconfigured period of time may be configured for the connection after which the encryption keys must be generated again to maintain the channel. This preconfigured period may be, for example, a specific number of seconds, minutes, hours, etc. For example, after 30 seconds, 1 minute, 5 minutes, 10 minutes, 30 minutes, etc.

[0131] In some other embodiments, the trigger condition may be based on a preconfigured number of packets or messages exchanged between the first and second hosts. For example, encryption key regeneration may be triggered after 1 packet, 2 packets, 5 packets, 10 packets, 20 packets, or generally after "N" packets, where "N" varies depending on the entropy customer's acceptable risk exposure. A high value of N corresponds to a low ephemeral key and a high potential exposure to entropy tampering risk. For the lowest risk tolerance, the value of N may be set to 1, which results in a very ephemeral encryption key. The encryption key rotation rate may be based on the entropy customer's desired acceptable risk exposure. The clustering graph network shown in FIG. 1 and FIG. 7 represents the fastest possible rate of entropy consumption that would be required to maintain strong ephemeral keys among all connections between all hosts in the network. This is because the product of the key rotation rate and the clustering coefficient of the graph of a computer network determines how quickly entropy itself is consumed in the process of distributing it to hosts. Due to fast key rotation, as the connection duration between hosts in the network increases, the trust level of the connection increases logarithmically by a factor of the inverse of "N". This connection duration is represented by the value of N above, or the number of packets exchanged between two hosts before these two hosts generate an ephemeral key again.

[0132] As noted above, the particular order or sequence of steps depicted in Figure 6 is not a limitation. In certain alternative embodiments, the steps may be performed in a different order, and some steps may be performed in parallel.

[0133] In the embodiment shown and described in FIG. 6, the entropy information generated by the quantum entropy generator 705 is transmitted to the first host. In certain embodiments, the transmission of this entropy information from the entropy source to the host directly connected to the entropy source may be performed as a one-time event. In other embodiments, the transmission of the quantum entropy information from the entropy source to the host directly connected to the entropy source may be performed periodically, where after each period of time, new entropy information generated by the entropy source is transmitted to the connected host. In still other embodiments, the transmission of the quantum entropy information from the entropy source to the host directly connected to the entropy source may be performed continuously as a stream of entropy information generated by the entropy source and transmitted to the connected host. In some other embodiments, the entropy information may be transmitted from the entropy source to the host when the host requests this information. For example, a host may send a request for entropy information to an entropy source, which may then respond to the request by transmitting the requested entropy information that it generates to the requesting host. Other transmission mechanisms may be used in other embodiments.

[0134] The transmission of entropy information from one host to another (e.g., from a first host to a second host) may be performed according to a variety of different manners. In one embodiment, the first host may transmit the entropy information to the second host as a one-time event over a secure communication channel established between these two hosts. In other embodiments, the transmission of quantum entropy information from the first host to the second host may be performed periodically over the secure communication channel, where after each period, new entropy information is transmitted from the first host to the second host, where the new entropy information may be part of the entropy information received by the first host from an entropy source or another host. In still other embodiments, the transmission of quantum entropy information from the first host to the second host may be performed continuously as a stream of entropy information over the secure communication channel established between the hosts. In some other embodiments, the entropy information may be transmitted from the first host to the second host when the second host requests this information. For example, the second host may send a request for entropy information to the first host, and the first host may then respond to the request by sending the requested entropy information to the requesting second host. Other transmission mechanisms may be used in other embodiments.

[0135] The process illustrated in FIG. 6 illustrates how entropy generated by an entropy source may be received by a host (e.g., a second host) from another host (e.g., a first host) communicatively coupled to the second host. Here, the first host initially receives entropy from an entropy source (e.g., a quantum entropy generator 705). The second host may or may not be connected to the entropy source. Upon receiving the entropy information, the second host may distribute portions of the received entropy information to other hosts communicatively coupled to the second host. In this manner, entropy information generated by an entropy source may be securely distributed to multiple hosts in a distributed, networked environment. Entropy may be transferred to hosts some distance away from the entropy source (e.g., from the quantum entropy generator 705). For example, a second host may receive quantum entropy from a first host, and then forward a portion of the received quantum entropy to a third host, which in turn forwards it to other connected hosts, and so on.

[0136] As described above, hosts in a network (e.g., in a lattice network) can gain access to entropy information, such as quantum entropy, generated by a trusted entropy generating source, even if the hosts are not directly connected to the entropy source. Due to the high quality and trust in the quantum entropy information received by the hosts, the received entropy information can be used for various operations that require high trust. For example, the quantum entropy may be used by the hosts to generate trusted cryptographic keys. These cryptographic keys can be utilized for various purposes, such as, for example, to establish trusted communication channels between the hosts. This disclosure describes a method for distributing quantum entropy generated by a quantum entropy source through a lattice cryptographic network that is ephemerally keyed to all hosts (e.g., virtual machine computing instances and / or bare metal computing instances). Here, the hosts receiving the quantum entropy may not be connected to the entropy source or have a locally trusted source of entropy information.

[0137] FIG. 8 illustrates an exemplary computer system 800 that may be used to implement certain embodiments. For example, in some embodiments, computer system 800 may be utilized to implement any of the hosts or computer systems shown in FIG. 1 and / or FIG. 7, as well as the various servers and computer systems described above. As shown in FIG. 8, computer system 800 includes various subsystems, including a processing subsystem 804 that communicates with a number of other subsystems via a bus subsystem 802. These other subsystems may include a processing acceleration device 806, an I / O subsystem 808, a storage subsystem 818, and a communication subsystem 824. The storage subsystem 818 includes non-transitory computer readable storage media, including a storage medium 822 and a system memory 810.

[0138] Bus subsystem 802 provides a mechanism for allowing the various components and subsystems of computer system 800 to communicate with each other as intended. Although bus subsystem 802 is illustrated as a bus, alternative embodiments of the bus subsystem may utilize multiple buses. Bus subsystem 802 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, a local bus, etc. using various bus architectures. For example, such architectures may include an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus, which may be implemented as a Mezzanine bus manufactured in accordance with the IEEE P1386.1 standard, etc.

[0139] The processing subsystem 804 controls the operation of the computer system 800 and may include one or more processors, ASICs (application specific integrated circuits), or FPGAs (field programmable gate arrays). These processors may be single-core or multi-core processors. The processing resources of the computer system 800 may be organized into one or more processing units 832, 834, etc. The processing units may include one or more processors, one or more cores from the same or different processors, combinations of cores and processors, or other combinations of cores and processors. In some embodiments, the processing subsystem 1704 may include one or more dedicated co-processors, such as a graphics processor, digital signal processor (DSP), etc. In some embodiments, some or all of the processing units of the processing subsystem 804 may be implemented using custom circuitry, such as an ASIC (application specific integrated circuit), or an FPGA (field programmable gate array).

[0140] In some embodiments, the processing units in the processing subsystem 804 may execute instructions stored in the system memory 810 or on the computer readable storage medium 822. In various embodiments, the processing units may execute various program or code instructions and may maintain multiple simultaneously executing programs or processes. At any time, some or all of the program code being executed may reside in the system memory 810 and / or on the computer readable storage medium 822, possibly including on one or more storage devices. With suitable programming, the processing subsystem 804 may provide the various functions described above. If the computer system 800 is running one or more virtual machines, one or more processing units may be assigned to each virtual machine.

[0141] In certain embodiments, a processing acceleration unit 806 may optionally be provided for performing customized processing or for offloading some of the processing performed by the processing subsystem 804 so as to speed up the overall processing performed by the computer system 800.

[0142] I / O subsystem 808 may include devices and mechanisms for inputting information into computer system 800 and / or devices and mechanisms for outputting information through or from computer system 800. In general, use of the term "input device" is intended to include any type of device and mechanism for inputting information into computer system 800. User interface input devices may include, for example, keyboards, pointing devices such as mice or trackballs, touch pads or touch screens integrated into displays, scroll wheels, click wheels, dials, buttons, switches, keypads, voice input devices with voice command recognition systems, microphones, and other types of input devices. User interface input devices may also include motion sensing devices and / or gesture recognition devices such as Microsoft Kinect® motion sensors that allow a user to control and interact with the input devices, Microsoft Xbox® 360 game controllers, devices that provide an interface for accepting input using gesture and voice commands. The user interface input devices may also include eye gesture recognition devices, such as the Google Glass® blink detector, that detects a user's eye movements (e.g., "blinking" while taking a photo and / or making a menu selection) and translates the eye gestures as input to the input device (e.g., Google Glass®). Additionally, the user interface input devices may include a voice recognition sensing device that allows a user to interact with a voice recognition system (e.g., the Siri® navigator) via voice commands.

[0143] Other user interface input devices include, but are not limited to, 3D (three-dimensional) mice, joysticks or pointing sticks, game pads and graphic tablets, as well as audio / visual devices such as speakers, digital cameras, digital camcorders, portable media players, webcams, image scanners, fingerprint scanners, barcode readers 3D scanners, 3D printers, laser range finders, and eye-tracking devices. In addition, user interface input devices may include medical imaging input devices, such as, for example, computed tomography, magnetic resonance imaging, positron emission tomography, and ultrasound devices. User interface input devices may also include audio input devices, such as, for example, MIDI keyboards, digital musical instruments, and the like.

[0144] In general, use of the term "output device" is intended to include any type of device or mechanism for outputting information from computer system 800 to a user or to another computer. User interface output devices may include a display subsystem, indicator lights, or non-visual display devices such as audio output devices. The display subsystem may be a flat panel display such as one using a CRT (cathode ray tube), LCD (liquid crystal display) or plasma display, a projection device, a touch screen, and the like. For example, user interface output devices may include, but are not limited to, a variety of display devices that visually convey textual, graphical, and audio / visual information, such as monitors, printers, speakers, headphones, automobile navigation systems, drawing devices, audio output devices, and modems.

[0145] Storage subsystem 818 provides a repository or data store for storing information and data used by computer system 800. Storage subsystem 818 provides a tangible, non-transitory, computer-readable storage medium for storing basic programming and data structures that provide the functionality of some embodiments. Storage subsystem 818 stores software (e.g., programs, code modules, instructions) that, when executed by processing subsystem 804, provide the functionality described above. The software may be executed by one or more processing units of processing subsystem 804. Storage subsystem 818 may also provide a repository for storing data used in accordance with the teachings of the present disclosure.

[0146] The storage subsystem 818 may include one or more non-transient memory elements, including volatile and non-volatile memory elements. As shown in FIG. 8, the storage subsystem 818 comprises a system memory 810 and a computer-readable storage medium 822. The system memory 810 may include several memories, including a volatile main RAM (Random Access Memory) for storing instructions and data during program execution, and a non-volatile ROM (Read Only Memory) or flash memory in which fixed instructions are stored. In some implementations, a Basic Input / Output System (BIOS), containing the basic routines that help transfer information between elements within the computer system 800, such as during start-up, may typically be stored in ROM. The RAM typically contains data and / or program modules that the processing subsystem 804 is currently operating on and executing. In some implementations, the system memory 810 may include several different types of memory, such as a Static Random Access Memory (SRAM) or a Dynamic Random Access Memory (DRAM).

[0147] 8, system memory 810 may load running application programs (which may include various applications such as a web browser, mid-tier applications, a relational database management system (RDBMS) etc.) 812, program data 814, and operating system 816. By way of example, and without limitation, operating system 816 may include various versions of Microsoft Windows®, Apple Macintosh®, and / or Linux® operating systems, various popular UNIX® or UNIX-like operating systems (including, but not limited to, various GNU / Linux operating systems, Google Chrome® OS, etc.), and / or mobile operating systems such as iOS, Windows® Phone, Android® OS, BlackBerry® OS, Palm® OS operating systems, and others.

[0148] The computer readable storage medium 822 may store programming and data structures that provide functionality of some embodiments. The computer readable medium 822 may provide storage of computer readable instructions, data structures, program modules, and other data for the computer system 800. Software (programs, code modules, instructions) that provide the functionality described above when executed by the processing subsystem 804 may be stored in the storage subsystem 818. By way of example, the computer readable storage medium 822 may include non-volatile memory such as a hard disk drive, a magnetic disk drive, an optical disk drive such as a CD ROM, a DVD, a Blu-Ray® disk, or other optical media. The computer readable storage medium 822 may include, but is not limited to, a Zip® drive, a flash memory card, a Universal Serial Bus (USB) flash drive, a Secure Digital (SD) card, a DVD disk, a digital video tape, and the like. The computer-readable storage medium 822 may include flash memory-based SSDs, enterprise flash drives, Solid-State Drives (SSDs) based on non-volatile memory such as solid-state ROM, SSDs based on volatile memory such as solid-state RAM, dynamic RAM, static RAM, DRAM-based SSDs, magnetoresistive RAM (MRAM) SSDs, and hybrid SSDs using a combination of DRAM SSDs and flash memory-based SSDs.

[0149] In particular embodiments, storage subsystem 800 may include a computer readable storage medium reader 820, which may be further coupled to a computer readable storage medium 822. Reader 820 may be configured to receive and read data from a storage device such as a disk, a flash drive, or the like.

[0150] In certain embodiments, computer system 800 may support virtualization techniques, including, but not limited to, virtualization of processing and memory resources. For example, computer system 800 may provide support for running one or more virtual machines. In certain embodiments, computer system 800 may execute a program, such as a hypervisor, that facilitates configuration and management of virtual machines. Each virtual machine may be assigned memory, computational (e.g., processors, cores), I / O, and networking resources. Each virtual machine generally operates independently of other virtual machines. A virtual machine may run its own operating system. This operating system may be the same as or different from the operating systems executed by other virtual machines executed by computer system 800. Thus, in some cases, multiple operating systems may be executed simultaneously by computer system 800.

[0151] The communications subsystem 824 provides an interface to other computer systems and networks. The communications subsystem 824 serves as an interface for receiving data from the computer system 800 and transmitting data from the computer system 800 to other systems. For example, the communications subsystem 824 enables the computer system 800 to establish a communications channel to one or more client devices over the Internet to receive and transmit information to and from the client devices. For example, the communications subsystem may be used to establish a communications channel and / or transmit quantum entropy to other computers.

[0152] The communications subsystem 824 may support both wired and / or wireless communications protocols. For example, in certain embodiments, the communications subsystem 824 may include a Radio Frequency (RF) transceiver component, a Global Positioning System (GPS) receiver component, and / or other components for accessing wireless voice and / or data networks (e.g., using cellular technology, next generation data network technologies such as 3G, 4G, or Enhanced Data Rates For Global Evolution (EDGE), WiFi (IEEE 802.XX family of standards), other mobile communications technologies, or any combination thereof). In some embodiments, the communications subsystem 824 can provide wired network connectivity (e.g., Ethernet) in addition to or instead of a wireless interface.

[0153] The communications subsystem 824 can receive and send data in a variety of formats. For example, in some embodiments, in addition to other formats, the communications subsystem 824 can receive incoming communications in the form of structured and / or unstructured data feeds 826, event streams 828, event updates 830, etc. For example, the communications subsystem 824 can be configured to receive (or send) data feeds 826 in real time from users of social media networks and / or other communications services, such as web feeds, such as Twitter® feeds, Facebook® updates, RSS (Rich Site Summary) feeds, and / or real-time updates from one or more third party information sources.

[0154] In particular embodiments, the communications subsystem 824 may be configured to receive data in the form of a continuous data stream, which may include an event stream 828 of real-time events and / or event updates 830 that has essentially no clear end and is continuous or infinite. Applications that generate continuous data may include, for example, sensor data applications, tickers, network performance measurement tools (e.g., network monitoring and traffic management applications), clickstream analysis tools, vehicle traffic monitoring, and the like.

[0155] Communications subsystem 824 may also be configured to transmit data from computer system 800 to other computer systems or networks. This data may be transmitted in a variety of different formats, such as structured and / or unstructured data feeds 826, event streams 828, event updates 830, etc., to one or more databases that may be in communication with one or more streaming data source computers connected to computer system 800.

[0156] Computer system 800 may be one of a variety of types, including a palm-sized portable device (e.g., an iPhone® mobile phone, an IPad® computing tablet, a PDA), a wearable device (e.g., a Google Glass® head-mounted display), a personal computer, a workstation, a mainframe, a kiosk, a server rack, or other data processing system. Due to the ever-changing nature of computers and networks, the description of computer system 800 shown in FIG. 8 is illustrative only. Many other configurations are possible having more or fewer components than the system shown in FIG. 8.

[0157] Although specific embodiments have been described, various modifications, alternatives, alternative configurations, and equivalents are possible. The embodiments are not limited to operating in one particular data processing environment, but may freely operate in multiple data processing environments. In addition, the specific embodiments have been described using a particular sequence of transactions and steps, but this is not a limitation. Although some flow charts show operations as sequential processes, many of these operations may be performed in parallel or simultaneously. In addition, the order of operations may be rearranged. The process may have additional steps not included in the figures.

[0158] Additionally, while particular embodiments have been described using particular combinations of hardware and software, it should be recognized that other combinations of hardware and software are possible. Particular embodiments may be implemented solely in hardware, solely in software, or using a combination thereof. The various processes described herein may be implemented on the same processor or on different processors in any combination.

[0159] Where a device, system, component, or module is described as being configured to perform a particular operation or function, such configuration may be achieved, for example, by designing an electronic circuit to perform the operation, by programming a programmable electronic circuit (such as a microprocessor) to perform the operation, such as by executing computer instructions or code, or by designing a processor or core that is programmed to execute code or instructions stored on a non-transitory memory medium, or any combination thereof. Processes may communicate using a variety of techniques, including, but not limited to, conventional techniques for inter-process communication, where different pair processes may use different techniques, and the same pair of processes may use different techniques at different times.

[0160] Specific details have been described in this disclosure to provide a thorough understanding of the embodiments. However, the embodiments may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been illustrated without unnecessary detail so as not to obscure the embodiments. This description provides only exemplary embodiments and does not limit the scope, applicability, or configuration of the embodiments of the present invention. Rather, the description of the embodiments above provides an enabling description for implementing various embodiments. Various changes may be made in the function and arrangement of elements.

[0161] Thus, the specification and drawings should be regarded as illustrative rather than strict. However, it will be apparent that additions, subtractions, deletions, and other modifications and variations may be made to the specification and drawings without departing from the broader spirit and scope of the appended claims. Thus, while specific embodiments have been described, they are not limiting. Various modifications and equivalents are intended to be encompassed within the scope of the appended claims.

Claims

1. 1. A method comprising: a first host receiving entropy information from an entropy source; establishing a communications channel between the first host and the second host using one or more encryption keys, all of the one or more encryption keys being generated using at least a portion of the entropy information; transmitting another portion of the entropy information from the first host to the second host using the communication channel established between the first host and the second host; the communication channel is a second communication channel; establishing a first communications channel between the first host and the second host based on a first set of one or more encryption keys generated by the first host using a first portion of the entropy information and based on a second set of one or more encryption keys generated by the second host; transmitting a second portion of the entropy information from the first host to the second host using the first communications channel.

2. The method of claim 1 , wherein the entropy source is a quantum entropy generator and the entropy information is quantum entropy.

3. The method of claim 1 or 2, wherein the first host is hosted by a first host machine and the second host is hosted by a second host machine.

4. Establishing the second communication channel comprises: generating a third set of one or more cryptographic keys using a third portion of the entropy information by the first host; generating, by the second host, a fourth set of one or more encryption keys using a first portion of the second portion of the entropy information received by the second host from the first host; and establishing the second communications channel between the first host and the second host based on the third set of one or more encryption keys and the fourth set of one or more encryption keys.

5. 5. The method of claim 4, wherein establishing the first communications channel includes performing a first ephemeral Diffie-Hellman key exchange with the first set of one or more encryption keys and the second set of one or more encryption keys, and establishing the second communications channel includes performing a second ephemeral Diffie-Hellman key exchange with the third set of one or more encryption keys and the fourth set of one or more encryption keys.

6. 6. The method of claim 5, wherein the first ephemeral Diffie-Hellman key exchange is a first ephemeral elliptic curve Diffie-Hellman key exchange and the second ephemeral Diffie-Hellman key exchange is a second ephemeral elliptic curve Diffie-Hellman key exchange.

7. 7. The method of claim 1, wherein the second portion of the entropy information comprises "N" bits, and the second host generates a fourth set of the one or more encryption keys based on the "N" bits.

8. determining that a condition associated with the second communications channel is satisfied; and In response to determining that the above conditions are met, the first host regenerating a new first set of one or more cryptographic keys using a fifth portion of the entropy information; the second host regenerating a new second set of one or more cryptographic keys using a second portion of the second portion of the entropy information received from the first host; and updating the second communications channel between the first host and the second host based on the new first set of one or more encryption keys and the new second set of one or more encryption keys.

9. The method of claim 8 , wherein determining that the condition associated with the second communication channel is satisfied comprises determining that a particular period of time has elapsed.

10. 9. The method of claim 8, wherein determining that the condition associated with the second communications channel is satisfied comprises determining that a particular number of packets have been exchanged between the first host and the second host.

11. The method of any one of claims 1 to 10, wherein both the first host and the second host are hosted by a first host machine.

12. 1. A first computer system, comprising: A processor; and a memory configured to store a plurality of instructions executable by the processor, the plurality of instructions, when executed by the processor, causing a process to be performed, the process comprising: receiving entropy information from an entropy source; and establishing a communications channel between the first computer system and the second computer system using one or more encryption keys, all of the one or more encryption keys being generated using at least a portion of the entropy information, the process further comprising: transmitting another portion of the entropy information to the second computer system using the communication channel established between the first computer system and the second computer system; the communication channel is a second communication channel, and the process establishing a first communications channel between the first computer system and the second computer system based on a first set of one or more encryption keys generated by the first computer system using a first portion of the entropy information and based on a second set of one or more encryption keys generated by the second computer system; transmitting a second portion of the entropy information from the first computer system to the second computer system using the first communications channel.

13. Establishing the second communication channel comprises: and generating a third set of one or more encryption keys using a third portion of the entropy information received from the first computer system, the second computer system generating a fourth set of one or more encryption keys using a first portion of the second portion of the entropy information received from the first computer system, and establishing the second communications channel further comprises:

13. The first computer system of claim 12, further comprising establishing the second communications channel between the first computer system and the second computer system based on a third set of one or more encryption keys and a fourth set of one or more encryption keys.

14. The process further comprises: determining that a condition associated with the second communications channel is satisfied; and In response to determining that the above conditions are met, and regenerating a new first set of one or more encryption keys using a fifth portion of the entropy information, the second computer system regenerating a new second set of one or more encryption keys using a second portion of the second portion of the entropy information received from the first computer system, the instructions further comprising: In response to determining that the above conditions are met, 14. The first computer system of claim 13, further comprising updating the second communications channel between the first computer system and the second computer system based on the new first set of one or more encryption keys and the new second set of one or more encryption keys.

15. Apparatus comprising means for carrying out the steps of the method according to any one of claims 1 to 11.

16. A computer program comprising computer instructions which, when executed by a processor, cause the processor to perform the method of any one of claims 1 to 11.

Citation Information

Patent Citations

  • Encrypted message transmission / reception method and system, and transmitter device, receiver device, key server

    JP2007295366A

  • How to establish a private key between two nodes in a communication network

    JP2009545264A

  • Communication method and communication system

    JP2013179443A

  • Multi-source entropy and randomness aggregation and distribution network

    US10402172B1

  • Method for establishing a secret key between two nodes in a communication network

    US20100008508A1