US20060072747A1 - Enhancing entropy in pseudo-random number generators using remote sources - Google Patents
Enhancing entropy in pseudo-random number generators using remote sources Download PDFInfo
- Publication number
- US20060072747A1 US20060072747A1 US09/822,548 US82254801A US2006072747A1 US 20060072747 A1 US20060072747 A1 US 20060072747A1 US 82254801 A US82254801 A US 82254801A US 2006072747 A1 US2006072747 A1 US 2006072747A1
- Authority
- US
- United States
- Prior art keywords
- entropy
- prng
- seeding information
- remote
- temporary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
Definitions
- This invention relates to enhancing entropy, in general, and more specifically to entropy amplification in pseudo-random numbers using remote sources.
- each user's key has a public and private component.
- the public component generates public encryption, while the private component generates private decryption of the encrypted text. This makes the system much more secure, because it is difficult to break an encryption, unless the corresponding private key is also known.
- a typical public-key system uses a pseudo-random number generator (PRNG) to generate random numbers through a deterministic process. Consequently, the security of such system is dependent upon having a strong pseudo-random number generation (PRNG) algorithm.
- PRNG pseudo-random number generator
- a PRNG uses a random internal state and a process called stirring to produce a stream of bits that satisfy various statistical tests of cryptographic randomness. The internal state is initialized with a random value called a seed. The seed must have a high level of entropy to ensure that the stream of bits are sufficiently hard to guess.
- Existing methods of gathering entropy use information gathered from a local system to seed the PRNG. If the seed gathered from the local system does not have sufficient entropy, an attacker can guess the output of the PRNG with relative ease, and break the system. This is especially true in constrained environments such as the Java Virtual Machine.
- FIG. 1 is a block diagram of a typical computer system upon which one embodiment of the present invention may be implemented
- FIG. 2 is a block diagram illustrating an exemplary network upon which the present invention may be implemented
- FIG. 3 is a block diagram illustrating symmetric-key and public-key encryptions
- FIG. 4 is a block diagram illustrating logic for using a set of redundant entropy servers, according to one embodiment of the present invention
- FIG. 5 is a flow diagram illustrating the process for using a set of redundant entropy servers, according to one embodiment of the present invention
- FIG. 6 is a block diagram illustrating logic for implementing a secure entropy collection protocol, according to one embodiment of the present invention.
- FIG. 7 is a flow diagram illustrating the process for implementing a secure entropy collection protocol, according to one embodiment of the present invention.
- a method and apparatus are described for enhancing entropy in a pseudo-random number generator using a remote source.
- embodiments of the present invention allows the stirring of a pseudo-random number generator using both the local seeding information and, for additional security, remote seeding information generated by remote entropy servers.
- one or more remote entropy servers generate seeding information, which is securely gathered along with the local seeding information.
- An attacker can easily break into a system using only the local seeding information, and predict the state of a PRNG.
- the use of the remote seeding information adds to the randomness of the PRNG making a system much more secure from cryptographic attacks.
- Protecting systems from cryptographic attacks by enhancing entropy using remote sources can secure all types of transactions, such as emailing, baking transactions, and communication between applications.
- the present invention includes various steps, which will be described below.
- the steps of the present invention may be performed by hardware components or may be embodied in machine-executable instructions, which may be used to cause a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the steps.
- the steps may be performed by a combination of hardware and software.
- the present invention may be provided as a computer program product, which may include a machine-readable medium having stored thereon instructions which may be used to program a computer (or other electronic devices) to perform a process according to the present invention.
- the machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory, or other type of media/machine-readable medium suitable for storing electronic instructions.
- the present invention may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
- a communication link e.g., a modem or network connection
- FIG. 1 is a block diagram of a typical computer system upon which one embodiment of the present invention may be implemented.
- Computer system 100 comprises a bus or other communication means 101 for communicating information, and a processing means such as processor 102 coupled with bus 101 for processing information.
- Computer system 100 further comprises a random access memory (RAM) or other dynamic storage device 104 (referred to as main memory), coupled to bus 101 for storing information and instructions to be executed by processor 102 .
- Main memory 104 also may be used for storing temporary variables or other intermediate information during execution of instructions by processor 102 .
- Computer system 100 also comprises a read only memory (ROM) and/or other static storage device 106 coupled to bus 101 for storing static information and instructions for processor 102 .
- ROM read only memory
- a data storage device 107 such as a magnetic disk or optical disc and its corresponding drive may also be coupled to computer system 100 for storing information and instructions.
- Computer system 100 can also be coupled via bus 101 to a display device 121 , such as a cathode ray tube (CRT) or Liquid Crystal Display (LCD), for displaying information to an end user.
- a display device 121 such as a cathode ray tube (CRT) or Liquid Crystal Display (LCD), for displaying information to an end user.
- an alphanumeric input device 122 including alphanumeric and other keys, may be coupled to bus 101 for communicating information and/or command selections to processor 102 .
- cursor control 123 such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 102 and for controlling cursor movement on display 121 .
- a communication device 125 is also coupled to bus 101 .
- the communication device 125 may include a modem, a network interface card, or other well-known interface devices, such as those used for coupling to Ethernet, token ring, or other types of physical attachment for purposes of providing a communication link to support a local or wide area network, for example.
- the computer system 100 may be coupled to a number of clients and/or servers via a conventional network infrastructure, such as a company's Intranet and/or the Internet, for example.
- steps described herein may be performed under the control of a programmed processor, such as processor 102
- the steps may be fully or partially implemented by any programmable or hard-coded logic, such as Field Programmable Gate Arrays (FPGAs), TTL logic, or Application Specific Integrated Circuits (ASICs), for example.
- FPGAs Field Programmable Gate Arrays
- ASICs Application Specific Integrated Circuits
- the method of the present invention may be performed by any combination of programmed general-purpose computer components and/or custom hardware components. Therefore, nothing disclosed herein should be construed as limiting the present invention to a particular embodiment wherein the recited steps are performed by a specific combination of hardware components.
- FIG. 2 is a block diagram illustrating an exemplary network upon which the present invention may be implemented.
- an Ethernet network 210 is shown.
- Such a network may utilize Transmission Control Protocol/Internet Protocol (TCP/IP).
- TCP/IP Transmission Control Protocol/Internet Protocol
- TCP/IP Transmission Control Protocol/Internet Protocol
- Ethernet and TCP/IP will be referred.
- a local system 220 Connected to this network 210 is a local system 220 .
- one or more remote independent systems 230 and 240 are connected to the network 210 .
- the remote independent systems 230 and 240 include entropy servers 230 and 240 .
- the number and arrangement of this equipment may vary depending on the application.
- FIGS. 3A and 3B are block diagrams illustrating symmetric-key and public-key encryptions.
- the original data 305 is encrypted 315 using the symmetric-key 310 .
- the same symmetric-key 310 is used to decrypt the data into its original form 320 .
- the symmetric-key process 300 is extremely time-and processor-efficient, because only native processor instructions such as addition, bitwise logical-OR, bitwise logical-AND, and bitwise logical-exclusive-OR based on the key are used to encrypt and decrypt the text.
- the system is secured only to the extent that the two parties can keep the key secret.
- Public-key encryption 350 uses a public key 360 , and a private key 370 to obtain the encrypted data 365 and decrypted data 375 , respectively.
- the text 355 is encrypted 365 , with the receiving party's public key 360 .
- the receiver may decrypt 375 the encrypted text 365 using the corresponding private key 370 . Since only the private key 370 is kept secret, while the public key 360 is openly distributed, the need for both parties to share a secret is eliminated.
- Data is most often exchanged between parties encrypted with a symmetric key, and the symmetric key is encrypted with the public key of the receiving party and sent with the encrypted data.
- the symmetric key is encrypted with the public key of the receiving party and sent with the encrypted data.
- Encrypting a symmetric key with the recipient's public key is called a key exchange.
- the entire process of encrypting data with a symmetric key, encrypting the symmetric key, and sending encrypted data and encrypted symmetric key to the recipient is often referred to as “encrypting with the recipient's public key.” It will be used this way for the rest of the description.
- FIG. 4 is a block diagram illustrating logic for enhancing entropy using a set of redundant entropy servers (see FIG. 2 ), according to one embodiment of the present invention.
- a local system 405 comprises a pseudo-random number generator (PRNG) 415 , and at least a system of gathering local seeding information 410 , and the stirring process 425 .
- PRNG pseudo-random number generator
- the local system 405 also gathers remote seeding information 420 generated by one or more remote entropy servers 430 and 445 .
- the remote entropy servers 430 and 445 comprise a random state machine 435 and 450 , and generate seeding information 440 and 455 to later stir the PRNG 425 .
- a PRNG uses a random internal state and the stirring process to produce a stream of bits that satisfy various statistical tests of cryptographic randomness.
- the internal state is initialized with a random value called a seed.
- the seed must have a high level of entropy to ensure that the stream of bits is sufficiently hard to guess.
- methods of gathering entropy include using seeding information gathered 410 from the local system 405 to seed and stir the PRNG 425 . However, unless the seeding information gathered 410 from the local system 405 has sufficient entropy, an attacker can guess the output of the PRNG 415 with relative ease, and break into the system.
- additional seeding information is obtained 420 from one or more remote entropy servers 430 and 445 , using a secured link 460 .
- the remote entropy servers 430 and 445 which comprise random state machines 435 and 450 , generate the additional seeding information 440 and 455 .
- the process of securely obtaining seeding information 420 from one or more remote entropy servers 430 and 445 is repeated for redundant entropy servers.
- the additional seeding information generated 440 and 455 by the remote entropy servers 430 and 445 , is gathered 420 , in addition to the local seeding information 410 , for the stirring process 425 .
- the stirring process 425 involves receiving and mixing of the gathered local seeding information 410 , and remote seeding information 420 .
- Using the combination of local and remote seeding information provides the unpredictable state that a system must have in order to fully secure the information.
- the security of a system depends on having a cryptographically secure PRNG algorithm. It is easy for an attacker to predict the state of a PRNG if only the local seeding information is utilized.
- the stirring process 425 using local and remote seeding information 425 the much-needed entropy is amplified, making the system extremely secure, and difficult to break into for the attacker.
- the stirring process 425 of the present invention provides security against cryptographic breaks when two applications communicate with each other, or even when information is sent from one computer to another over the Internet.
- secure data collection from entropy servers 420 is done using a privacy protocol, such as a Secure Sockets Layer (SSL) or Transport Layer Security (TLS).
- SSL Secure Sockets Layer
- TLS Transport Layer Security
- an entropy server which is a machine or piece of software, maintains a constantly updated random state pool that is used to supply hosts with seeding information that can be stirred into their PRNG state value.
- An attacker is more likely to be able to negatively influence the initial state seeding, and succeed when only one entropy server is used.
- a local host may use more than one entropy server so that the attacker cannot influence the initial state seed by compromising a single entropy server.
- FIG. 5 is a flow diagram illustrating a process for enhancing entropy using a set of redundant entropy servers, according to one embodiment of the present invention.
- a PRNG is initialized in processing block 505 .
- a local host When a local host requires a PRNG, it seeds the initial state using locally unpredictable information in processing block 510 .
- the local system seeding information is obtained in processing block 510 .
- seeding information is also securely obtained from one or more remote entropy servers in processing block 515 . If there are no redundant servers in decision block 520 , the PRNG is stirred in processing block 525 . However, the process of obtaining seeding information is repeated for each redundant entropy server in decision block 520 .
- a local host may use more than one entropy server so that the attacker cannot influence the initial state seed by compromising a single entropy server.
- the PRNG is stirred using both the local and remote seeding information in processing block 525 .
- FIG. 6 is a block diagram illustrating logic for implementing a secure entropy collection protocol, according to one embodiment of the present invention.
- a secure entropy collection protocol may be used to interact with one or more entropy servers. For instance, in an environment requiring remote entropy server, the privacy protocols may not be acceptable for securing the exchange, because the privacy protocols themselves require unpredictable random numbers to be secured.
- a temporary asymmetric key pair is generated 605 .
- the temporary public key created 605 on the host-side 600 is then encrypted with a remote entropy server's public key 610 .
- the encrypted public key is then sent to the remote entropy server 650 .
- the private key is used to decrypt the corresponding public key's encrypted information.
- the host's temporary public key is then decrypted using the server's private key 620 .
- the server then generates random data 625 , and encrypts it using the host's temporary public key 630 .
- the encrypted random data is sent to the host 635 .
- the random data is received on the host-side 600 , and then decrypted using the host's temporary private key 640 . Finally, the result of the decryption of the random data is used to stir the internal state of the local PRNG 645 .
- random states from one or more external sources are added when gathering seeding information.
- This method provides additional security, because an attacker who is attempting to perform a cryptographic attack is likely to fail in predicting the random states from multiple external sources.
- the method allows the state of multiple independent systems to securely contribute to the strength of the local PRNG output. Thus, eliminating cryptographic breaks into a system by having strong and remote sources of randomness.
- FIG. 7 is a flow diagram illustrating the process for implementing a secure entropy collection protocol, according to one embodiment of the present invention.
- a secure entropy collection protocol may be used to interact with one or more entropy servers.
- a temporary asymmetric key pair is generated in processing block 705 .
- the temporary public key created on the host-side is then encrypted with a remote server's public key in processing block 710 .
- the encrypted public key is sent to the remote server in processing block 715 .
- the host's temporary public key is decrypted using the server's private key in processing block 720 .
- the server then generates random data in processing block 725 , and encrypts it using the host's temporary public key in processing block 730 .
- the encrypted random data is then sent to the host in processing block 735 .
- the random data is received by the host, and then decrypted using the host's temporary private key in processing block 740 . Finally, the result of the decryption of the random data is used to stir the internal state of the local PRNG in processing block 745 .
Abstract
A system, apparatus, and method are provided for enhancing entropy in a pseudo-random number generator (PRNG) using remote sources. According to one embodiment of the present invention, first, the PRNG's internal state is initialized. Local seeding information is then obtained from a local host. For added security, additional seeding information is obtained from one or more remote entropy servers operating independently to each maintain a constantly updated state pool. Finally, the PRNG is stirred based upon the local seeding information, and the additional seeding information.
Description
- Contained herein is material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction of the patent disclosure by any person as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all rights to the copyright whatsoever.
- This invention relates to enhancing entropy, in general, and more specifically to entropy amplification in pseudo-random numbers using remote sources.
- Securing data through encryption/decryption methods, especially, when transmitting it over insecure channels, from cryptographic attacks is widely known. Traditionally, a method of symmetric encryption was used to secure the information between two users. The method of symmetric encryption required creating a single secret key known only to the two users. However, the secrecy was only guaranteed to the extent the two users kept the key secret. Additionally, the method of prior exchange of the key made the system even more cumbersome. To make the system more secure and reliable, the public-key system was introduced.
- In a public-key system, also known as the asymmetric or two-key system, each user's key has a public and private component. The public component generates public encryption, while the private component generates private decryption of the encrypted text. This makes the system much more secure, because it is difficult to break an encryption, unless the corresponding private key is also known.
- A typical public-key system uses a pseudo-random number generator (PRNG) to generate random numbers through a deterministic process. Consequently, the security of such system is dependent upon having a strong pseudo-random number generation (PRNG) algorithm. A PRNG uses a random internal state and a process called stirring to produce a stream of bits that satisfy various statistical tests of cryptographic randomness. The internal state is initialized with a random value called a seed. The seed must have a high level of entropy to ensure that the stream of bits are sufficiently hard to guess. Existing methods of gathering entropy use information gathered from a local system to seed the PRNG. If the seed gathered from the local system does not have sufficient entropy, an attacker can guess the output of the PRNG with relative ease, and break the system. This is especially true in constrained environments such as the Java Virtual Machine.
- The appended claims set forth the features of the invention with particularity. The invention, together with its advantages, may be best understood from the following detailed description taken in conjunction with the accompanying drawings of which:
-
FIG. 1 is a block diagram of a typical computer system upon which one embodiment of the present invention may be implemented; -
FIG. 2 is a block diagram illustrating an exemplary network upon which the present invention may be implemented; -
FIG. 3 is a block diagram illustrating symmetric-key and public-key encryptions, -
FIG. 4 is a block diagram illustrating logic for using a set of redundant entropy servers, according to one embodiment of the present invention; -
FIG. 5 is a flow diagram illustrating the process for using a set of redundant entropy servers, according to one embodiment of the present invention; -
FIG. 6 is a block diagram illustrating logic for implementing a secure entropy collection protocol, according to one embodiment of the present invention; -
FIG. 7 is a flow diagram illustrating the process for implementing a secure entropy collection protocol, according to one embodiment of the present invention. - A method and apparatus are described for enhancing entropy in a pseudo-random number generator using a remote source. Broadly stated, embodiments of the present invention allows the stirring of a pseudo-random number generator using both the local seeding information and, for additional security, remote seeding information generated by remote entropy servers.
- According to one embodiment, one or more remote entropy servers generate seeding information, which is securely gathered along with the local seeding information. An attacker can easily break into a system using only the local seeding information, and predict the state of a PRNG. The use of the remote seeding information adds to the randomness of the PRNG making a system much more secure from cryptographic attacks. Protecting systems from cryptographic attacks by enhancing entropy using remote sources can secure all types of transactions, such as emailing, baking transactions, and communication between applications.
- In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form.
- The present invention includes various steps, which will be described below. The steps of the present invention may be performed by hardware components or may be embodied in machine-executable instructions, which may be used to cause a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the steps. Alternatively, the steps may be performed by a combination of hardware and software.
- The present invention may be provided as a computer program product, which may include a machine-readable medium having stored thereon instructions which may be used to program a computer (or other electronic devices) to perform a process according to the present invention. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory, or other type of media/machine-readable medium suitable for storing electronic instructions. Moreover, the present invention may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
-
FIG. 1 is a block diagram of a typical computer system upon which one embodiment of the present invention may be implemented.Computer system 100 comprises a bus or other communication means 101 for communicating information, and a processing means such asprocessor 102 coupled withbus 101 for processing information.Computer system 100 further comprises a random access memory (RAM) or other dynamic storage device 104 (referred to as main memory), coupled tobus 101 for storing information and instructions to be executed byprocessor 102.Main memory 104 also may be used for storing temporary variables or other intermediate information during execution of instructions byprocessor 102.Computer system 100 also comprises a read only memory (ROM) and/or otherstatic storage device 106 coupled tobus 101 for storing static information and instructions forprocessor 102. - A
data storage device 107 such as a magnetic disk or optical disc and its corresponding drive may also be coupled tocomputer system 100 for storing information and instructions.Computer system 100 can also be coupled viabus 101 to adisplay device 121, such as a cathode ray tube (CRT) or Liquid Crystal Display (LCD), for displaying information to an end user. Typically, analphanumeric input device 122, including alphanumeric and other keys, may be coupled tobus 101 for communicating information and/or command selections toprocessor 102. Another type of user input device iscursor control 123, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections toprocessor 102 and for controlling cursor movement ondisplay 121. - A
communication device 125 is also coupled tobus 101. Thecommunication device 125 may include a modem, a network interface card, or other well-known interface devices, such as those used for coupling to Ethernet, token ring, or other types of physical attachment for purposes of providing a communication link to support a local or wide area network, for example. In this manner, thecomputer system 100 may be coupled to a number of clients and/or servers via a conventional network infrastructure, such as a company's Intranet and/or the Internet, for example. - It is appreciated that a lesser or more equipped computer system than the example described above may be desirable for certain implementations. Therefore, the configuration of
computer system 100 will vary from implementation to implementation depending upon numerous factors, such as price constraints, performance requirements, technological improvements, and/or other circumstances. - It should be noted that, while the steps described herein may be performed under the control of a programmed processor, such as
processor 102, in alternative embodiments, the steps may be fully or partially implemented by any programmable or hard-coded logic, such as Field Programmable Gate Arrays (FPGAs), TTL logic, or Application Specific Integrated Circuits (ASICs), for example. Additionally, the method of the present invention may be performed by any combination of programmed general-purpose computer components and/or custom hardware components. Therefore, nothing disclosed herein should be construed as limiting the present invention to a particular embodiment wherein the recited steps are performed by a specific combination of hardware components. -
FIG. 2 is a block diagram illustrating an exemplary network upon which the present invention may be implemented. In this example, anEthernet network 210 is shown. Such a network may utilize Transmission Control Protocol/Internet Protocol (TCP/IP). Of course, many other types of networks and protocols are available and are commonly used. However, for illustrative purposes, Ethernet and TCP/IP will be referred. - Connected to this
network 210 is alocal system 220. In addition to thelocal system 220, one or more remoteindependent systems network 210. As illustrated, the remoteindependent systems entropy servers -
FIGS. 3A and 3B are block diagrams illustrating symmetric-key and public-key encryptions. As illustrated, theoriginal data 305 is encrypted 315 using the symmetric-key 310. The same symmetric-key 310 is used to decrypt the data into itsoriginal form 320. The symmetric-key process 300 is extremely time-and processor-efficient, because only native processor instructions such as addition, bitwise logical-OR, bitwise logical-AND, and bitwise logical-exclusive-OR based on the key are used to encrypt and decrypt the text. However, the system is secured only to the extent that the two parties can keep the key secret. - In contrast, as illustrated by
FIG. 3B , Public-key encryption 350 uses apublic key 360, and aprivate key 370 to obtain theencrypted data 365 and decrypteddata 375, respectively. In public-key encryption, thetext 355 is encrypted 365, with the receiving party'spublic key 360. Upon reception, the receiver may decrypt 375 theencrypted text 365 using the correspondingprivate key 370. Since only theprivate key 370 is kept secret, while thepublic key 360 is openly distributed, the need for both parties to share a secret is eliminated. - Data is most often exchanged between parties encrypted with a symmetric key, and the symmetric key is encrypted with the public key of the receiving party and sent with the encrypted data. Thus, it has the performance benefits of symmetric encryption, with the advantages of public-key encryption. Encrypting a symmetric key with the recipient's public key is called a key exchange. The entire process of encrypting data with a symmetric key, encrypting the symmetric key, and sending encrypted data and encrypted symmetric key to the recipient is often referred to as “encrypting with the recipient's public key.” It will be used this way for the rest of the description.
-
FIG. 4 is a block diagram illustrating logic for enhancing entropy using a set of redundant entropy servers (seeFIG. 2 ), according to one embodiment of the present invention. As illustrated, alocal system 405 comprises a pseudo-random number generator (PRNG) 415, and at least a system of gatheringlocal seeding information 410, and thestirring process 425. However, thelocal system 405, according to one embodiment of the present invention, also gathersremote seeding information 420 generated by one or moreremote entropy servers remote entropy servers random state machine information PRNG 425. - Generally, a PRNG uses a random internal state and the stirring process to produce a stream of bits that satisfy various statistical tests of cryptographic randomness. The internal state is initialized with a random value called a seed. The seed must have a high level of entropy to ensure that the stream of bits is sufficiently hard to guess. Typically methods of gathering entropy include using seeding information gathered 410 from the
local system 405 to seed and stir thePRNG 425. However, unless the seeding information gathered 410 from thelocal system 405 has sufficient entropy, an attacker can guess the output of thePRNG 415 with relative ease, and break into the system. - To provide further security, according to one embodiment of the present invention, additional seeding information is obtained 420 from one or more
remote entropy servers secured link 460. Theremote entropy servers random state machines additional seeding information information 420 from one or moreremote entropy servers remote entropy servers local seeding information 410, for thestirring process 425. - The
stirring process 425 involves receiving and mixing of the gatheredlocal seeding information 410, andremote seeding information 420. Using the combination of local and remote seeding information provides the unpredictable state that a system must have in order to fully secure the information. The security of a system depends on having a cryptographically secure PRNG algorithm. It is easy for an attacker to predict the state of a PRNG if only the local seeding information is utilized. However, with thestirring process 425 using local andremote seeding information 425, the much-needed entropy is amplified, making the system extremely secure, and difficult to break into for the attacker. Thus, thestirring process 425 of the present invention provides security against cryptographic breaks when two applications communicate with each other, or even when information is sent from one computer to another over the Internet. - According to one embodiment of the present invention, secure data collection from
entropy servers 420 is done using a privacy protocol, such as a Secure Sockets Layer (SSL) or Transport Layer Security (TLS). This prevents an attacker from getting a copy of the data supplied by the entropy server and reproducing the PRNG state on his machine. If the exchange is not done securely, its value could be greatly diminished. Additionally, privacy protocols, such as SSL and TLS, themselves require unpredictable random numbers to be secured. Thus, in environments requiring remote entropy servers, the privacy protocols may not be acceptable for securing the exchange, and therefore, an alternative may be required. - According to one embodiment of the present invention, an entropy server, which is a machine or piece of software, maintains a constantly updated random state pool that is used to supply hosts with seeding information that can be stirred into their PRNG state value. An attacker is more likely to be able to negatively influence the initial state seeding, and succeed when only one entropy server is used. Hence, according to one embodiment of the present invention, a local host may use more than one entropy server so that the attacker cannot influence the initial state seed by compromising a single entropy server.
-
FIG. 5 is a flow diagram illustrating a process for enhancing entropy using a set of redundant entropy servers, according to one embodiment of the present invention. First, a PRNG is initialized inprocessing block 505. When a local host requires a PRNG, it seeds the initial state using locally unpredictable information inprocessing block 510. The local system seeding information is obtained inprocessing block 510. Further, seeding information is also securely obtained from one or more remote entropy servers inprocessing block 515. If there are no redundant servers indecision block 520, the PRNG is stirred inprocessing block 525. However, the process of obtaining seeding information is repeated for each redundant entropy server indecision block 520. According to one embodiment of the present invention, a local host may use more than one entropy server so that the attacker cannot influence the initial state seed by compromising a single entropy server. Finally, the PRNG is stirred using both the local and remote seeding information inprocessing block 525. -
FIG. 6 is a block diagram illustrating logic for implementing a secure entropy collection protocol, according to one embodiment of the present invention. In situations in which it is undesirable to use a standard privacy protocol or when a standard privacy protocol is unavailable, a secure entropy collection protocol may be used to interact with one or more entropy servers. For instance, in an environment requiring remote entropy server, the privacy protocols may not be acceptable for securing the exchange, because the privacy protocols themselves require unpredictable random numbers to be secured. - According to one embodiment of the present invention, on the host-
side 600, a temporary asymmetric key pair is generated 605. The temporary public key created 605 on the host-side 600 is then encrypted with a remote entropy server's public key 610. The encrypted public key is then sent to theremote entropy server 650. As discussed above, in a public-key system there is a corresponding private key to a public key. Generally, the private key is used to decrypt the corresponding public key's encrypted information. Thus, on the server-side 650, the host's temporary public key is then decrypted using the server'sprivate key 620. - The server then generates
random data 625, and encrypts it using the host's temporarypublic key 630. The encrypted random data is sent to the host 635. The random data is received on the host-side 600, and then decrypted using the host's temporaryprivate key 640. Finally, the result of the decryption of the random data is used to stir the internal state of thelocal PRNG 645. - According to one embodiment of the present invention, random states from one or more external sources (e.g., redundant entropy servers) are added when gathering seeding information. This method provides additional security, because an attacker who is attempting to perform a cryptographic attack is likely to fail in predicting the random states from multiple external sources. In other words, the method allows the state of multiple independent systems to securely contribute to the strength of the local PRNG output. Thus, eliminating cryptographic breaks into a system by having strong and remote sources of randomness.
-
FIG. 7 is a flow diagram illustrating the process for implementing a secure entropy collection protocol, according to one embodiment of the present invention. In situations in which it is undesirable to use a standard privacy protocol or when a standard privacy protocol is unavailable, a secure entropy collection protocol may be used to interact with one or more entropy servers. First, on the host-side 600, a temporary asymmetric key pair is generated inprocessing block 705. The temporary public key created on the host-side is then encrypted with a remote server's public key inprocessing block 710. The encrypted public key is sent to the remote server inprocessing block 715. Then, on the server-side, the host's temporary public key is decrypted using the server's private key inprocessing block 720. - The server then generates random data in
processing block 725, and encrypts it using the host's temporary public key inprocessing block 730. The encrypted random data is then sent to the host inprocessing block 735. The random data is received by the host, and then decrypted using the host's temporary private key inprocessing block 740. Finally, the result of the decryption of the random data is used to stir the internal state of the local PRNG in processing block 745.
Claims (21)
1. A method comprising:
initializing a pseudo-random number generator (PRNG);
obtaining local seeding information from a host;
securely obtaining additional seeding information from one or more remote entropy servers using a secure entropy collection protocol, wherein the secure entropy collection protocol to perform:
generating a key pair including, a temporary asymmetric public key and a temporary asymmetric private key,
encrypting the temporary public key with a public key associated with a remote entropy server,
decrypting the temporary public key with a private key associated with the remote entropy server,
encrypting the additional seeding information with the temporary public key, and
decrypting the additional seeding information with the temporary private key; and
stirring the PRNG with the local seeding information and the additional seeding information.
2. The method of claim 1 , wherein the initializing of the PRNG comprises initializing an internal state of the PRNG with a random value.
3. The method of claim 2 , wherein the random value comprises a seed.
4. (canceled)
5. The method of claim 1 , wherein the one or more remote entropy servers maintain random state pool to supply the host with the random value.
6. The method of claim 1 , wherein the securely obtaining of the seeding information from the one or more remote entropy servers includes using a privacy protocol.
7. The method of claim 6 , wherein the privacy protocol comprises secure sockets layer (SSL) protocol.
8. The method of claim 6 , wherein the privacy protocol comprises transport layer security (TLS) protocol.
9. The method of claim 1 , wherein the stirring of the PRNG comprises producing a cryptographically random stream of bits.
10-16. (canceled)
17. An entropy enhancing system comprising:
a local system including a host and a pseudo-random number generator (PRNG),
the local system to
initialize the PRNG by obtaining local seeding information from the host,
securely obtain additional seeding information from one or more remote entropy servers using a secure entropy collection protocol, the secure entropy collection protocol to perform:
generating a key pair including a temporary asymmetric public key and a temporary asymmetric private key,
encrypting the temporary public key with a public key associated with a remote entropy server,
decrypting the temporary public key with a private key associated with the remote entropy server,
encrypting the additional seeding information with the temporary public key, and
decrypting the additional seeding information with the temporary private key; and
stir the PRNG with the local seeding information and the additional seeding information.
18. The entropy enhancing system of claim 17 , wherein the local system generates the local seeding information at the host.
19. The entropy enhancing system of claim 17 , wherein the one or more remote systems generates the remote seeding information at the one or more entropy servers.
20. The entropy enhancing system of claim 17 , wherein the entropy servers comprise one or more of the following: hardware and software.
21-24. (canceled)
25. A machine-readable medium having stored thereon data representing sets of instructions which, when executed by a machine, cause the machine to:
initialize a pseudo-random number generator (PRNG);
obtain local seeding information from a host;
securely obtain additional seeding information from one or more remote entropy servers using a secure entropy collection protocol, wherein the secure entropy collection protocol to:
generate a key pair including a temporary asymmetric public key and a temporary asymmetric private key,
encrypt the temporary public key with a public key associated with a remote entropy server,
decrypt the temporary public key with a private key associated with the remote entropy server,
encrypt the additional seeding information with the temporary public key, and
decrypt the additional seeding information with the temporary private key; and
stir the PRNG with the local seeding information and the additional seeding information.
26. The machine-readable medium of claim 25 , wherein the initializing of the PRNG comprises initializing an internal state of the PRNG with a random value.
27. The machine-readable medium of claim 26 , wherein the random value comprises a seed.
28. (canceled)
29. The machine-readable medium of claim 25 , wherein the one or more remote entropy servers maintain random state pool to supply the host with the random value.
30. The machine-readable medium of claim 25 , wherein the stirring of the PRNG comprises producing a cryptographically random stream of bits.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/822,548 US20060072747A1 (en) | 2001-03-30 | 2001-03-30 | Enhancing entropy in pseudo-random number generators using remote sources |
US11/013,572 US7664269B2 (en) | 2001-03-30 | 2004-12-15 | Encrypting message for secure transmission |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/822,548 US20060072747A1 (en) | 2001-03-30 | 2001-03-30 | Enhancing entropy in pseudo-random number generators using remote sources |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/013,572 Division US7664269B2 (en) | 2001-03-30 | 2004-12-15 | Encrypting message for secure transmission |
Publications (1)
Publication Number | Publication Date |
---|---|
US20060072747A1 true US20060072747A1 (en) | 2006-04-06 |
Family
ID=36125574
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/822,548 Abandoned US20060072747A1 (en) | 2001-03-30 | 2001-03-30 | Enhancing entropy in pseudo-random number generators using remote sources |
US11/013,572 Expired - Fee Related US7664269B2 (en) | 2001-03-30 | 2004-12-15 | Encrypting message for secure transmission |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/013,572 Expired - Fee Related US7664269B2 (en) | 2001-03-30 | 2004-12-15 | Encrypting message for secure transmission |
Country Status (1)
Country | Link |
---|---|
US (2) | US20060072747A1 (en) |
Cited By (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020196764A1 (en) * | 2001-06-25 | 2002-12-26 | Nec Corporation | Method and system for authentication in wireless LAN system |
US20040109567A1 (en) * | 2002-12-05 | 2004-06-10 | Canon Kabushiki Kaisha | Encryption key generation in embedded devices |
US20050144440A1 (en) * | 2003-12-31 | 2005-06-30 | International Business Machines Corp. | Method for securely creating an endorsement certificate in an insecure environment |
US20050149733A1 (en) * | 2003-12-31 | 2005-07-07 | International Business Machines Corporation | Method for securely creating an endorsement certificate utilizing signing key pairs |
US20070288747A1 (en) * | 2006-06-07 | 2007-12-13 | Nang Kon Kwan | Methods and systems for managing identity management security domains |
US20080005339A1 (en) * | 2006-06-07 | 2008-01-03 | Nang Kon Kwan | Guided enrollment and login for token users |
US20080022122A1 (en) * | 2006-06-07 | 2008-01-24 | Steven William Parkinson | Methods and systems for entropy collection for server-side key generation |
US20080022086A1 (en) * | 2006-06-06 | 2008-01-24 | Red. Hat, Inc. | Methods and system for a key recovery plan |
US20080022121A1 (en) * | 2006-06-06 | 2008-01-24 | Red Hat, Inc. | Methods and systems for server-side key generation |
US20080046216A1 (en) * | 2006-08-16 | 2008-02-21 | Novell, Inc. | Managing supplied data |
US20080056496A1 (en) * | 2006-08-31 | 2008-03-06 | Parkinson Steven W | Method and system for issuing a kill sequence for a token |
US20080059790A1 (en) * | 2006-08-31 | 2008-03-06 | Steven William Parkinson | Methods, apparatus and systems for smartcard factory |
US20080059793A1 (en) * | 2006-08-31 | 2008-03-06 | Lord Robert B | Methods and systems for phone home token registration |
US20080069341A1 (en) * | 2006-08-23 | 2008-03-20 | Robert Relyea | Methods and systems for strong encryption |
US20080069338A1 (en) * | 2006-08-31 | 2008-03-20 | Robert Relyea | Methods and systems for verifying a location factor associated with a token |
US20080133514A1 (en) * | 2006-12-04 | 2008-06-05 | Robert Relyea | Method and Apparatus for Organizing an Extensible Table for Storing Cryptographic Objects |
US20080189543A1 (en) * | 2007-02-02 | 2008-08-07 | Steven William Parkinson | Method and system for reducing a size of a security-related data object stored on a token |
US20080189356A1 (en) * | 2007-02-05 | 2008-08-07 | Novell, Inc. | Stealth entropy collection |
US20080209225A1 (en) * | 2007-02-28 | 2008-08-28 | Robert Lord | Methods and systems for assigning roles on a token |
US20080229401A1 (en) * | 2007-03-13 | 2008-09-18 | John Magne | Methods and systems for configurable smartcard |
US20090083539A1 (en) * | 2003-12-31 | 2009-03-26 | Ryan Charles Catherman | Method for Securely Creating an Endorsement Certificate in an Insecure Environment |
US20100023749A1 (en) * | 2008-01-07 | 2010-01-28 | Aruba Networks, Inc. | Harvesting Entropy from Trusted Cryptographic Sources |
US7822209B2 (en) | 2006-06-06 | 2010-10-26 | Red Hat, Inc. | Methods and systems for key recovery for a token |
US7992203B2 (en) | 2006-05-24 | 2011-08-02 | Red Hat, Inc. | Methods and systems for secure shared smartcard access |
US8099765B2 (en) | 2006-06-07 | 2012-01-17 | Red Hat, Inc. | Methods and systems for remote password reset using an authentication credential managed by a third party |
US8098829B2 (en) | 2006-06-06 | 2012-01-17 | Red Hat, Inc. | Methods and systems for secure key delivery |
US8180741B2 (en) | 2006-06-06 | 2012-05-15 | Red Hat, Inc. | Methods and systems for providing data objects on a token |
WO2012159192A1 (en) * | 2011-05-26 | 2012-11-29 | Certicom Corp. | Randomness for encryption operations |
US8332637B2 (en) | 2006-06-06 | 2012-12-11 | Red Hat, Inc. | Methods and systems for nonce generation in a token |
US8412927B2 (en) | 2006-06-07 | 2013-04-02 | Red Hat, Inc. | Profile framework for token processing system |
US8806219B2 (en) | 2006-08-23 | 2014-08-12 | Red Hat, Inc. | Time-based function back-off |
US20140244785A1 (en) * | 2013-02-28 | 2014-08-28 | Amazon Technologies, Inc. | Computing infrastructure for configurable-quality random data |
US8832453B2 (en) | 2007-02-28 | 2014-09-09 | Red Hat, Inc. | Token recycling |
US20150372813A1 (en) * | 2014-06-23 | 2015-12-24 | Entersekt, LLC | System and method for generating a random number |
DE102014226388A1 (en) | 2014-12-18 | 2016-03-24 | Siemens Aktiengesellschaft | Configuration device and method for configuring field devices |
US9495190B2 (en) | 2009-08-24 | 2016-11-15 | Microsoft Technology Licensing, Llc | Entropy pools for virtual machines |
US20180115419A1 (en) * | 2016-10-26 | 2018-04-26 | Nxp B.V. | Method of generating an elliptic curve cryptographic key pair |
EP3306509A4 (en) * | 2016-01-27 | 2018-09-26 | Huawei Technologies Co., Ltd. | Vtpm-based method and system for virtual machine security and protection |
EP3654173A1 (en) * | 2018-11-13 | 2020-05-20 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | A method for generating a random number, random number generation circuit and computer program |
US11153758B2 (en) | 2019-09-19 | 2021-10-19 | Tile, Inc. | End-to-end encryption with distributed key management in a tracking device environment |
US11201748B2 (en) * | 2019-08-20 | 2021-12-14 | Tile, Inc. | Data protection in a tracking device environment |
US20220121755A1 (en) * | 2020-10-15 | 2022-04-21 | Microsoft Technology Licensing, Llc | Systems and methods for enhancing security of device-internal encryption with externally generated entropy |
US11317237B2 (en) | 2014-10-09 | 2022-04-26 | Tile, Inc. | Secure and private cloud based broadcast identification |
US11368290B2 (en) | 2019-10-20 | 2022-06-21 | Tile, Inc. | Key diversification in a tracking device environment |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BRPI0315078B1 (en) * | 2002-10-07 | 2019-08-20 | Telefonaktiebolaget Lm Ericsson (Publ) | VIOLATION RESISTANT SAFETY DEVICE AND USER TERMINAL |
ES2611408T3 (en) * | 2002-10-31 | 2017-05-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Implementation and safe use of device-specific security data |
US20070172066A1 (en) * | 2003-09-12 | 2007-07-26 | Secured Email Goteborg Ab | Message security |
US8761390B2 (en) * | 2008-06-30 | 2014-06-24 | Gm Global Technology Operations | Production of cryptographic keys for an embedded processing device |
TWI435328B (en) * | 2009-07-20 | 2014-04-21 | Silicon Motion Inc | Method for performing data pattern management regarding data accessed by a controller of a flash memory, and associated memory device and controller thereof |
US9049232B2 (en) * | 2013-02-28 | 2015-06-02 | Amazon Technologies, Inc. | Configurable-quality random data service |
AU2014223194B2 (en) * | 2013-02-28 | 2016-07-28 | Amazon Technologies, Inc. | Configurable-quality random data service |
US9436529B2 (en) | 2014-12-26 | 2016-09-06 | Red Hat, Inc. | Providing random data to a guest operating system |
US10116441B1 (en) | 2015-06-11 | 2018-10-30 | Amazon Technologies, Inc. | Enhanced-security random data |
CN108418679B (en) * | 2017-02-10 | 2021-06-29 | 阿里巴巴集团控股有限公司 | Method and device for processing secret key under multiple data centers and electronic equipment |
CN110166239B (en) * | 2019-06-04 | 2023-01-06 | 成都卫士通信息产业股份有限公司 | User private key generation method and system, readable storage medium and electronic device |
US11620149B2 (en) | 2020-06-25 | 2023-04-04 | Red Hat, Inc. | Safe entropy source for encrypted virtual machines |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956406A (en) * | 1996-03-21 | 1999-09-21 | Alcatel Alstrom Compagnie Generale D'electricite | Method of setting up secure communications and associated encryption/decryption system |
US6061819A (en) * | 1997-12-29 | 2000-05-09 | Hewlett-Packard Company | Generation of reproducible random initial states in RTL simulators |
US6073242A (en) * | 1998-03-19 | 2000-06-06 | Agorics, Inc. | Electronic authority server |
US6182220B1 (en) * | 1998-03-30 | 2001-01-30 | International Business Machines Corporation | System and method for building and exchanging encrypted passwords between a client and server |
US6253223B1 (en) * | 1999-06-08 | 2001-06-26 | General Instrument Corporation | Robust random number generator |
US6601170B1 (en) * | 1999-12-30 | 2003-07-29 | Clyde Riley Wallace, Jr. | Secure internet user state creation method and system with user supplied key and seeding |
US6628786B1 (en) * | 1997-09-30 | 2003-09-30 | Sun Microsystems, Inc. | Distributed state random number generator and method for utilizing same |
US6687375B1 (en) * | 1999-06-02 | 2004-02-03 | International Business Machines Corporation | Generating user-dependent keys and random numbers |
US6772340B1 (en) * | 2000-01-14 | 2004-08-03 | Microsoft Corporation | Digital rights management system operating on computing device and having black box tied to computing device |
US6931128B2 (en) * | 2001-01-16 | 2005-08-16 | Microsoft Corporation | Methods and systems for generating encryption keys using random bit generators |
US6948065B2 (en) * | 2000-12-27 | 2005-09-20 | Intel Corporation | Platform and method for securely transmitting an authorization secret |
US7242766B1 (en) * | 2001-11-21 | 2007-07-10 | Silicon Image, Inc. | Method and system for encrypting and decrypting data using an external agent |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2679674B2 (en) | 1994-05-02 | 1997-11-19 | 日本電気株式会社 | Semiconductor production line controller |
-
2001
- 2001-03-30 US US09/822,548 patent/US20060072747A1/en not_active Abandoned
-
2004
- 2004-12-15 US US11/013,572 patent/US7664269B2/en not_active Expired - Fee Related
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956406A (en) * | 1996-03-21 | 1999-09-21 | Alcatel Alstrom Compagnie Generale D'electricite | Method of setting up secure communications and associated encryption/decryption system |
US6628786B1 (en) * | 1997-09-30 | 2003-09-30 | Sun Microsystems, Inc. | Distributed state random number generator and method for utilizing same |
US6061819A (en) * | 1997-12-29 | 2000-05-09 | Hewlett-Packard Company | Generation of reproducible random initial states in RTL simulators |
US6073242A (en) * | 1998-03-19 | 2000-06-06 | Agorics, Inc. | Electronic authority server |
US6182220B1 (en) * | 1998-03-30 | 2001-01-30 | International Business Machines Corporation | System and method for building and exchanging encrypted passwords between a client and server |
US6687375B1 (en) * | 1999-06-02 | 2004-02-03 | International Business Machines Corporation | Generating user-dependent keys and random numbers |
US6253223B1 (en) * | 1999-06-08 | 2001-06-26 | General Instrument Corporation | Robust random number generator |
US6601170B1 (en) * | 1999-12-30 | 2003-07-29 | Clyde Riley Wallace, Jr. | Secure internet user state creation method and system with user supplied key and seeding |
US6772340B1 (en) * | 2000-01-14 | 2004-08-03 | Microsoft Corporation | Digital rights management system operating on computing device and having black box tied to computing device |
US6948065B2 (en) * | 2000-12-27 | 2005-09-20 | Intel Corporation | Platform and method for securely transmitting an authorization secret |
US6931128B2 (en) * | 2001-01-16 | 2005-08-16 | Microsoft Corporation | Methods and systems for generating encryption keys using random bit generators |
US7242766B1 (en) * | 2001-11-21 | 2007-07-10 | Silicon Image, Inc. | Method and system for encrypting and decrypting data using an external agent |
Cited By (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020196764A1 (en) * | 2001-06-25 | 2002-12-26 | Nec Corporation | Method and system for authentication in wireless LAN system |
US20040109567A1 (en) * | 2002-12-05 | 2004-06-10 | Canon Kabushiki Kaisha | Encryption key generation in embedded devices |
US20050144440A1 (en) * | 2003-12-31 | 2005-06-30 | International Business Machines Corp. | Method for securely creating an endorsement certificate in an insecure environment |
US20050149733A1 (en) * | 2003-12-31 | 2005-07-07 | International Business Machines Corporation | Method for securely creating an endorsement certificate utilizing signing key pairs |
US8495361B2 (en) | 2003-12-31 | 2013-07-23 | International Business Machines Corporation | Securely creating an endorsement certificate in an insecure environment |
US7751568B2 (en) * | 2003-12-31 | 2010-07-06 | International Business Machines Corporation | Method for securely creating an endorsement certificate utilizing signing key pairs |
US7644278B2 (en) * | 2003-12-31 | 2010-01-05 | International Business Machines Corporation | Method for securely creating an endorsement certificate in an insecure environment |
US20090083539A1 (en) * | 2003-12-31 | 2009-03-26 | Ryan Charles Catherman | Method for Securely Creating an Endorsement Certificate in an Insecure Environment |
US7992203B2 (en) | 2006-05-24 | 2011-08-02 | Red Hat, Inc. | Methods and systems for secure shared smartcard access |
US8762350B2 (en) | 2006-06-06 | 2014-06-24 | Red Hat, Inc. | Methods and systems for providing data objects on a token |
US20080022121A1 (en) * | 2006-06-06 | 2008-01-24 | Red Hat, Inc. | Methods and systems for server-side key generation |
US8364952B2 (en) | 2006-06-06 | 2013-01-29 | Red Hat, Inc. | Methods and system for a key recovery plan |
US9450763B2 (en) | 2006-06-06 | 2016-09-20 | Red Hat, Inc. | Server-side key generation |
US8180741B2 (en) | 2006-06-06 | 2012-05-15 | Red Hat, Inc. | Methods and systems for providing data objects on a token |
US8098829B2 (en) | 2006-06-06 | 2012-01-17 | Red Hat, Inc. | Methods and systems for secure key delivery |
US7822209B2 (en) | 2006-06-06 | 2010-10-26 | Red Hat, Inc. | Methods and systems for key recovery for a token |
US8332637B2 (en) | 2006-06-06 | 2012-12-11 | Red Hat, Inc. | Methods and systems for nonce generation in a token |
US8495380B2 (en) | 2006-06-06 | 2013-07-23 | Red Hat, Inc. | Methods and systems for server-side key generation |
US20080022086A1 (en) * | 2006-06-06 | 2008-01-24 | Red. Hat, Inc. | Methods and system for a key recovery plan |
US20080005339A1 (en) * | 2006-06-07 | 2008-01-03 | Nang Kon Kwan | Guided enrollment and login for token users |
US8589695B2 (en) * | 2006-06-07 | 2013-11-19 | Red Hat, Inc. | Methods and systems for entropy collection for server-side key generation |
US8707024B2 (en) | 2006-06-07 | 2014-04-22 | Red Hat, Inc. | Methods and systems for managing identity management security domains |
US20080022122A1 (en) * | 2006-06-07 | 2008-01-24 | Steven William Parkinson | Methods and systems for entropy collection for server-side key generation |
US9769158B2 (en) | 2006-06-07 | 2017-09-19 | Red Hat, Inc. | Guided enrollment and login for token users |
US20070288747A1 (en) * | 2006-06-07 | 2007-12-13 | Nang Kon Kwan | Methods and systems for managing identity management security domains |
US8099765B2 (en) | 2006-06-07 | 2012-01-17 | Red Hat, Inc. | Methods and systems for remote password reset using an authentication credential managed by a third party |
US8412927B2 (en) | 2006-06-07 | 2013-04-02 | Red Hat, Inc. | Profile framework for token processing system |
US8606834B2 (en) | 2006-08-16 | 2013-12-10 | Apple Inc. | Managing supplied data |
US20080046216A1 (en) * | 2006-08-16 | 2008-02-21 | Novell, Inc. | Managing supplied data |
US8787566B2 (en) | 2006-08-23 | 2014-07-22 | Red Hat, Inc. | Strong encryption |
US8806219B2 (en) | 2006-08-23 | 2014-08-12 | Red Hat, Inc. | Time-based function back-off |
US20080069341A1 (en) * | 2006-08-23 | 2008-03-20 | Robert Relyea | Methods and systems for strong encryption |
US9762572B2 (en) | 2006-08-31 | 2017-09-12 | Red Hat, Inc. | Smartcard formation with authentication |
US20080059793A1 (en) * | 2006-08-31 | 2008-03-06 | Lord Robert B | Methods and systems for phone home token registration |
US20080056496A1 (en) * | 2006-08-31 | 2008-03-06 | Parkinson Steven W | Method and system for issuing a kill sequence for a token |
US20080059790A1 (en) * | 2006-08-31 | 2008-03-06 | Steven William Parkinson | Methods, apparatus and systems for smartcard factory |
US8074265B2 (en) | 2006-08-31 | 2011-12-06 | Red Hat, Inc. | Methods and systems for verifying a location factor associated with a token |
US8356342B2 (en) | 2006-08-31 | 2013-01-15 | Red Hat, Inc. | Method and system for issuing a kill sequence for a token |
US9038154B2 (en) | 2006-08-31 | 2015-05-19 | Red Hat, Inc. | Token Registration |
US8977844B2 (en) | 2006-08-31 | 2015-03-10 | Red Hat, Inc. | Smartcard formation with authentication keys |
US20080069338A1 (en) * | 2006-08-31 | 2008-03-20 | Robert Relyea | Methods and systems for verifying a location factor associated with a token |
US8693690B2 (en) | 2006-12-04 | 2014-04-08 | Red Hat, Inc. | Organizing an extensible table for storing cryptographic objects |
US20080133514A1 (en) * | 2006-12-04 | 2008-06-05 | Robert Relyea | Method and Apparatus for Organizing an Extensible Table for Storing Cryptographic Objects |
US20080189543A1 (en) * | 2007-02-02 | 2008-08-07 | Steven William Parkinson | Method and system for reducing a size of a security-related data object stored on a token |
US8813243B2 (en) | 2007-02-02 | 2014-08-19 | Red Hat, Inc. | Reducing a size of a security-related data object stored on a token |
US20080189356A1 (en) * | 2007-02-05 | 2008-08-07 | Novell, Inc. | Stealth entropy collection |
US9026638B2 (en) * | 2007-02-05 | 2015-05-05 | Novell, Inc. | Stealth entropy collection |
US20080209225A1 (en) * | 2007-02-28 | 2008-08-28 | Robert Lord | Methods and systems for assigning roles on a token |
US8832453B2 (en) | 2007-02-28 | 2014-09-09 | Red Hat, Inc. | Token recycling |
US8639940B2 (en) | 2007-02-28 | 2014-01-28 | Red Hat, Inc. | Methods and systems for assigning roles on a token |
US20080229401A1 (en) * | 2007-03-13 | 2008-09-18 | John Magne | Methods and systems for configurable smartcard |
US9081948B2 (en) | 2007-03-13 | 2015-07-14 | Red Hat, Inc. | Configurable smartcard |
US20100023749A1 (en) * | 2008-01-07 | 2010-01-28 | Aruba Networks, Inc. | Harvesting Entropy from Trusted Cryptographic Sources |
US8250127B2 (en) * | 2008-01-07 | 2012-08-21 | Aruba Networks, Inc. | Harvesting entropy from trusted cryptographic sources |
US9495190B2 (en) | 2009-08-24 | 2016-11-15 | Microsoft Technology Licensing, Llc | Entropy pools for virtual machines |
WO2012159192A1 (en) * | 2011-05-26 | 2012-11-29 | Certicom Corp. | Randomness for encryption operations |
US9325642B2 (en) | 2011-05-26 | 2016-04-26 | Certicom Corp. | Randomness for encryption operations |
US9819727B2 (en) * | 2013-02-28 | 2017-11-14 | Amazon Technologies, Inc. | Computing infrastructure for configurable-quality random data |
US20140244785A1 (en) * | 2013-02-28 | 2014-08-28 | Amazon Technologies, Inc. | Computing infrastructure for configurable-quality random data |
US11621996B2 (en) | 2013-02-28 | 2023-04-04 | Amazon Technologies, Inc. | Computing infrastructure for configurable-quality random data |
EP2961094A1 (en) * | 2014-06-23 | 2015-12-30 | Entersekt International Limited | System and method for generating a random number |
US20150372813A1 (en) * | 2014-06-23 | 2015-12-24 | Entersekt, LLC | System and method for generating a random number |
US11770672B2 (en) | 2014-10-09 | 2023-09-26 | Tile, Inc. | Secure and private cloud based broadcast identification |
US11317237B2 (en) | 2014-10-09 | 2022-04-26 | Tile, Inc. | Secure and private cloud based broadcast identification |
DE102014226388A1 (en) | 2014-12-18 | 2016-03-24 | Siemens Aktiengesellschaft | Configuration device and method for configuring field devices |
EP3306509A4 (en) * | 2016-01-27 | 2018-09-26 | Huawei Technologies Co., Ltd. | Vtpm-based method and system for virtual machine security and protection |
US10922117B2 (en) | 2016-01-27 | 2021-02-16 | Huawei Technologies Co., Ltd. | VTPM-based virtual machine security protection method and system |
US20180115419A1 (en) * | 2016-10-26 | 2018-04-26 | Nxp B.V. | Method of generating an elliptic curve cryptographic key pair |
US10680810B2 (en) * | 2016-10-26 | 2020-06-09 | Nxp B.V. | Method of generating an elliptic curve cryptographic key pair |
EP3654173A1 (en) * | 2018-11-13 | 2020-05-20 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | A method for generating a random number, random number generation circuit and computer program |
US11907683B2 (en) * | 2018-11-13 | 2024-02-20 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Method for generating a random number, random number generation circuit and computer program |
US11201748B2 (en) * | 2019-08-20 | 2021-12-14 | Tile, Inc. | Data protection in a tracking device environment |
US20220060338A1 (en) * | 2019-08-20 | 2022-02-24 | Tile, Inc. | Data protection in a tracking device environment |
US11265716B2 (en) | 2019-09-19 | 2022-03-01 | Tile, Inc. | End-to-end encryption with distributed key management in a tracking device environment |
US11770711B2 (en) | 2019-09-19 | 2023-09-26 | Tile, Inc. | End-to-end encryption with distributed key management in a tracking device environment |
US11153758B2 (en) | 2019-09-19 | 2021-10-19 | Tile, Inc. | End-to-end encryption with distributed key management in a tracking device environment |
US11368290B2 (en) | 2019-10-20 | 2022-06-21 | Tile, Inc. | Key diversification in a tracking device environment |
US11641270B2 (en) | 2019-10-20 | 2023-05-02 | Tile, Inc. | Key diversification in a tracking device environment |
US11876892B2 (en) | 2019-10-20 | 2024-01-16 | Tile, Inc. | Key diversification in a tracking device environment |
US20220121755A1 (en) * | 2020-10-15 | 2022-04-21 | Microsoft Technology Licensing, Llc | Systems and methods for enhancing security of device-internal encryption with externally generated entropy |
US11775657B2 (en) * | 2020-10-15 | 2023-10-03 | Microsoft Technology Licensing, Llc | Systems and methods for enhancing security of device-internal encryption with externally generated entropy |
Also Published As
Publication number | Publication date |
---|---|
US7664269B2 (en) | 2010-02-16 |
US20070189534A1 (en) | 2007-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7664269B2 (en) | Encrypting message for secure transmission | |
US7305548B2 (en) | Using atomic messaging to increase the security of transferring data across a network | |
US11316677B2 (en) | Quantum key distribution node apparatus and method for quantum key distribution thereof | |
US6628786B1 (en) | Distributed state random number generator and method for utilizing same | |
US5812671A (en) | Cryptographic communication system | |
US7961882B2 (en) | Methods and apparatus for initialization vector pressing | |
US6182214B1 (en) | Exchanging a secret over an unreliable network | |
US6061454A (en) | System, method, and computer program for communicating a key recovery block to enable third party monitoring without modification to the intended receiver | |
EP0438154B1 (en) | Multimedia network system | |
US5732137A (en) | Method and apparatus for secure remote authentication in a public network | |
US6941457B1 (en) | Establishing a new shared secret key over a broadcast channel for a multicast group based on an old shared secret key | |
US20150244520A1 (en) | One-time-pad data encryption with media server | |
US6987855B1 (en) | Operational optimization of a shared secret Diffie-Hellman key exchange among broadcast or multicast groups | |
US20050226408A1 (en) | Apparatus and method for encryption and decryption | |
EP1049287A2 (en) | Encryption/decryption method and authentication method using multi-affine key system and apparatuses using the same | |
JPH088895A (en) | Method for key control of internet procedure and its device | |
KR20010043748A (en) | Multi-node encryption and key delivery | |
MXPA06009235A (en) | Method and apparatus for cryptographically processing data. | |
US20150229621A1 (en) | One-time-pad data encryption in communication channels | |
US7167981B2 (en) | Method of transmitting email, device for implementing same method, and storing medium storing program for transmitting email | |
CN102088352B (en) | Data encryption transmission method and system for message-oriented middleware | |
US7277543B1 (en) | Cryptographic combiner using two sequential non-associative operations | |
US20010014156A1 (en) | Common key generating method, common key generator, cryptographic communication method and cryptographic communication system | |
US20020021804A1 (en) | System and method for data encryption | |
US5841872A (en) | Encryption enhancement system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WOOD, MATTHEW D.;GRAUNKE, GARY L.;REEL/FRAME:012052/0729 Effective date: 20010426 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |