Extracting entropy from mobile devices to generate random numbers

US10037193B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10037193-B2
Application numberUS-201514963884-A
CountryUS
Kind codeB2
Filing dateDec 9, 2015
Priority dateDec 9, 2015
Publication dateJul 31, 2018
Grant dateJul 31, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Embodiments include method, systems and computer program products for extracting entropy from mobile devices to generate random numbers. In some embodiments, first vibration data may be received from a first device. Second vibration data may be received from a second device. A first piece of entropy data may be generated using the first vibration data and a second piece of entropy data may be generated using the second vibration data. The first piece of entropy data and the second piece of entropy data may be aggregated. The first piece of entropy data and the second piece of entropy data may be stored in an entropy pool.

First claim

Opening claim text (preview).

What is claimed: 1. A computer-implemented method comprising: receiving first vibration data from a first mobile device; receiving second vibration data from a second mobile device; generating a first piece of entropy data using the first vibration data and a second piece of entropy data using the second vibration data; aggregating the first piece of entropy data and the second piece of entropy data to create an aggregated entropy data; and storing the aggregated entropy data in an entropy pool, wherein the aggregating is perfumed prior to the storing. 2. The computer-implemented method of claim 1 , further comprising: receiving a request for a random number from a client device; extracting entropy data from the entropy pool; formatting the entropy data into the random number; and transmitting the random number to the client device. 3. The computer-implemented method of claim 1 , wherein the first vibration data is associated with a digital signature generated using the first vibration data and a private key, and the method further comprises: verifying the digital signature using a public key corresponding to the private key. 4. The computer-implemented method of claim 1 , wherein generating the first piece of entropy data using the first vibration data and the second piece of entropy data using the second vibration data further comprises: normalizing the first vibration data to generate the first piece of entropy data, wherein normalizing comprises filtering and formatting the first vibration data; and normalizing the second vibration data to generate the second piece of entropy data, wherein normalizing comprises filtering and formatting the second vibration data. 5. The computer-implemented method of claim 4 , wherein formatting the first vibration data comprises applying a cryptographic hash function to the first vibration data and wherein formatting the second vibration data comprises applying the cryptographic hash function to the second vibration data. 6. The computer-implemented method of claim 1 , wherein aggregating the first piece of entropy data and the second piece of entropy data further comprises: performing a bitwise exclusive OR operation on the first piece of entropy data and the second piece of entropy data and a portion of the data in the entropy pool. 7. The computer-implemented method of claim 1 , further comprising: detecting a security breach; and flushing the entropy pool. 8. A computer program product comprising a non-transitory storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising: receiving first vibration data from a first mobile device; receiving second vibration data from a second mobile device; generating a first piece of entropy data using the first vibration data and a second piece of entropy data using the second vibration data; aggregating the first piece of entropy data and the second piece of entropy data to create an aggregated entropy data; and storing the aggregated entropy data in an entropy pool, wherein the aggregating is perfumed prior to the storing. 9. The computer program product of claim 8 , the method further comprising: receiving a request for a random number from a client device; extracting entropy data from the entropy pool; formatting the entropy data into the random number; and transmitting the random number to the client device. 10. The computer program product of claim 8 , wherein the first vibration data is associated with a digital signature generated using the first vibration data and a private key, and the method further comprises: verifying the digital signature using a public key corresponding to the private key. 11. The computer program product of claim 8 , wherein generating the first piece of entropy data using the first vibration data and the second piece of entropy data using the second vibration data further comprises: normalizing the first vibration data to generate the first piece of entropy data, wherein normalizing comprises filtering and formatting the first vibration data; and normalizing the second vibration data to generate the second piece of entropy data, wherein normalizing comprises filtering and formatting the second vibration data. 12. The computer program product of claim 11 , wherein formatting the first vibration data comprises applying a cryptographic hash function to the first vibration data and wherein formatting the second vibration data comprises applying the cryptographic hash function to the second vibration data. 13. The computer program product of claim 8 , wherein aggregating the first piece of entropy data and the second piece of entropy data further comprises: performing a bitwise exclusive OR operation on the first piece of entropy data and the second piece of entropy data and a portion of the data in the entropy pool. 14. The computer program product of claim 8 , the method further comprising: detecting a security breach; and flushing the entropy pool. 15. A system, comprising: a processor in communication with one or more types of memory, the processor configured to: receive first vibration data from a first mobile device; receive second vibration data from a second mobile device; generate a first piece of entropy data using the first vibration data and a second piece of entropy data using the second vibration data; aggregate the first piece of entropy data and the second piece of entropy data to create an aggregated entropy data; and store the aggregated entropy data in an entropy pool, wherein the aggregating is perfumed prior to the storing. 16. The system of claim 15 , wherein the processor is configured to: receive a request for a random number from a client device; extract entropy data from the entropy pool; format the entropy data into the random number; and transmit the random number to the client device. 17. The system of claim 15 , wherein the first vibration data is associated with a digital signature generated using the first vibration data and a private key, and the processor is further configured to: verify the digital signature using a public key corresponding to the private key. 18. The system of claim 15 , wherein, to generate the first piece of entropy data using the first vibration data and the second piece of entropy data using the second vibration data, the processor is further configured to: normalize the first vibration data to generate the first piece of entropy data, wherein normalizing comprises filtering and formatting the first vibration data; and normalize the second vibration data to generate the second piece of entropy data, wherein normalizing comprises filtering and formatting the second vibration data. 19. The system of claim 15 , wherein, to aggregate the first piece of entropy data and the second piece of entropy data, the processor is further configured to: perform a bitwise exclusive OR operation on the first piece of entropy data and the second piece of entropy data and a portion of the data in the entropy pool. 20. The system of claim 15 , wherein the processor is configured to: detect a security breach; and flush the entropy pool.

Assignees

Inventors

Classifications

  • G06F7/588Primary

    Random number generators, i.e. based on natural stochastic processes · CPC title

  • Indexing scheme relating to groups G06F7/58 - G06F7/588 · CPC title

  • involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics · CPC title

  • using physically unclonable functions [PUF] · CPC title

  • involving digital signatures · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10037193B2 cover?
Embodiments include method, systems and computer program products for extracting entropy from mobile devices to generate random numbers. In some embodiments, first vibration data may be received from a first device. Second vibration data may be received from a second device. A first piece of entropy data may be generated using the first vibration data and a second piece of entropy data may be g…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F7/588. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 31 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).