IP Library Granted Patent US 9,548,862
Granted Patent B1
US 9,548,862 · App. 14/543,678 · Granted Jan 17, 2017

Managing entropy in computing devices for cryptographic key generation

Inventor: Ray Potter (Palo Alto, CA)
Assignee: Safelogic, Inc.
H04L9/0869H04L2209/24
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,548,862
App. No.
14/543,678
Granted
Jan 17, 2017
Kind
B1
Abstract

This disclosure describes cryptographic secure implementation of a Pseudo Random Number Generator (PRNG) architecture based on existing Fortuna algorithm, but providing improvements thereupon for gathering and measuring entropy. The improvement includes a unique step of initial seeding that is not covered by Fortuna. The solution should be adapted to a variety of computing and communicating devices, including mobile devices.

Claims (16)

1. A computer-implemented method of managing entropy for secure cryptographic key generation in a computing device, the method comprising:

initializing a seeding process by adding an initial amount of data to an entropy pool; harnessing entropy by starting entropy daemons to gather entropy from a plurality of entropy generating sources in the computing device to add to the entropy pool; and managing amount of entropy in the entropy pool by ensuring that there is a minimum amount of entropy in the entropy pool while sending out respective outputs responding to corresponding incoming requests for data, thereby maintaining a required security strength of the cryptographic key; wherein the entropy pool is one of a plurality of entropy pools, and the N-th pool of the plurality of entropy pools is reseeded for every 2 N -th incoming request for data; wherein the method includes using encryption algorithms; wherein the encryption algorithms integrate cross-platform accumulation of entropy into the entropy management scheme.

2. The method of claim 1 , wherein the managing step is performed by one or a combination of the following: managing queue of incoming requests, managing reseeding of the entropy pool, and managing length of the output data stream.

3. The method of claim 2 wherein the managing step further includes: deciding which entropy pool to use in response to an incoming request.

4. The method of claim 2 , wherein reseeding is performed by hashing the specific entropy pool.

5. The method of claim 2 , where each entropy pool collects enough entropy between reseedings to ensure the required security strength of the cryptographic key.

6. The method of claim 1 , wherein the initial amount of data added to the entropy pool in the initializing step comprises at least 64 bytes of data.

7. The method of claim 1 , wherein the initialization step comprises: loading a seed file into the entropy pool.

8. The method of claim 7 , wherein the seed the has a seed state of a cryptographically secure pseudo random number generator (CSPRNG) written on an area of a memory of the computing device that is read on application start up.

9. The method of claim 8 , wherein the seed file is backed up at least once, wherein a current seed state is available on the next application startup, obviating the need to re-establish entropy.

10. The method of claim 1 , wherein the computing device is a mobile device.

11. The method of claim 10 , wherein the plurality of entropy generating sources include one or more of: a magnetometer, an accelerometer, a gyroscope, a microphone, a navigation module, a compass, a camera, a timing clock, a user interface event, a user touch event, a battery level indicator, a power consumption indicator, a wireless access strength, a network speed, a processor temperature, a processor fan speed, an operational environment, a counter, an interruption, a non-deterministic chaos, a touch screen motion, a radio baseband, and, virtual memory statistics.

12. The method of claim 1 , wherein entropy is consumed from the entropy pool when a user interacts with applications installed in the computing device.

13. The method of claim 1 , wherein the computing device has one of the following operating systems: iOS, MacOS, Windows, Linux, Android.

14. The method of claim 13 , wherein the method includes using the encryption algorithms that are customized to be compatible with the operating system of the computing device.

15. The method of claim 1 , wherein the encryption key is backwardly secure, wherein even if the key is compromised, the future output from the entropy pool is unpredictable.

Assignments (2)
SECURITY INTEREST Recorded Nov 20, 2020
From: MARKET SQUARE INC.; SAFELOGIC INC.
To: LIVE OAK BANKING COMPANY
Reel/Frame 054431/0311 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2015
From: POTTER, RAY
To: SAFELOGIC, INC.
Reel/Frame 034989/0511 →