US8635260B2 - Random number generator incorporating channel filter coefficients - Google Patents
Random number generator incorporating channel filter coefficients Download PDFInfo
- Publication number
- US8635260B2 US8635260B2 US12/629,256 US62925609A US8635260B2 US 8635260 B2 US8635260 B2 US 8635260B2 US 62925609 A US62925609 A US 62925609A US 8635260 B2 US8635260 B2 US 8635260B2
- Authority
- US
- United States
- Prior art keywords
- channel filter
- filter coefficients
- random number
- bits
- retrieved
- 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.)
- Expired - Fee Related, expires
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
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Definitions
- the present disclosure is directed to encryption systems for devices.
- the present disclosure is directed to random number generators for generating seeds for pseudorandom number generators in devices, such as data storage devices.
- Another application of highly unpredictable random numbers is related to securing data storage devices.
- Common techniques for securing data storage devices include the use of cryptographic algorithms that rely on secret values, such as passwords or cryptographic keys. Such algorithms are typically open to the public and as such rely heavily on the secret quantity. Thus, the strength of the secret value is a function of how easy it is to guess the value. In general, the strongest secret quantity will be one that is selected through a true random process, such as random number generation. Accordingly, there is an ongoing need for techniques and systems for efficiently generating random numbers for securing data storage devices.
- a first aspect of the present disclosure is directed to a device that includes a plurality of registers configured to store channel filter coefficients.
- the device also includes a controller configured to retrieve the channel filter coefficient(s) from the plurality of registers and to implement a random number generator.
- the random number generator is configured to generate a random number based at least in part on the values of the retrieved channel filter coefficient(s).
- Another aspect of the present disclosure is directed to a data storage device that includes a controller configured to retrieve channel filter coefficients from a plurality of registers of a data receiver.
- the data storage device also includes an algorithm implemented by the controller to generate a random number based at least in part on the values of the retrieved channel filter coefficients.
- Another aspect of the present disclosure is directed to a method for encrypting a device.
- the method includes retrieving channel filter coefficients from a plurality of registers of the device, and generating at least one seed value based at least in part on the value of each of the retrieved channel filter coefficients.
- the method also includes performing a hashing algorithm on the at least one seed value, generating a random number based at least in part on the at least one hashed seed value, and outputting the random number.
- FIG. 1 is a plan view of a data storage device for storing and transferring data.
- FIG. 2 is a block diagram of data receiver of the data storage device.
- FIG. 3 is a graphical illustration of channel filter coefficients versus values of the channel filter coefficients attainable from the data receiver of the data storage device, which illustrates correlations that may occur between separate channel filter coefficients.
- FIG. 4 is a flow diagram of a method for generating random numbers based on physical entropy attainable with the channel filter coefficients of the data storage device.
- the present disclosure is directed to cryptographic pseudorandom number generators for supplying devices, such as data storage devices, with random numbers based on coefficients of adaptive channel filters (referred to as channel filter coefficients).
- the channel filter coefficients are at least partially unpredictable physical entropy sources that may be used to seed cryptographic random number generators at each power up and at special requests (e.g., while re-initializing firmware).
- the entropy obtained from the channel filter coefficients is desirably based on the full values of the channel filter coefficients rather than being based on comparisons to preset median values. As discussed below, each channel filter coefficient typically attains only a few distinct values, and a substantial portion of the variability in the given channel filter coefficient is preserved in the least significant bits. Seeding with such physical entropy sources allows a pseudorandom number generator to provide unique pseudorandom number sequences, with a negligible probability of a repeated sequence. Furthermore, with repeated access to the channel filter coefficients, the data storage device may obtain as much entropy as necessary for encryption purposes. Accordingly, generating secure random sequences in this manner precludes the need for secure, protected storage for keys or for the internal state of the generator between random number generating sessions, for example, over power cycles.
- FIG. 1 is a plan view of storage device 10 , which is an exemplary data storage device (e.g., a hard disk drive) for storing and transferring data with a host device (not shown). As shown, the components of storage device 10 are retained between base 12 and top cover 14 (shown in partial cut-away), which mate to form a partially or fully sealed housing.
- Storage device 10 also includes storage disk 16 and spindle motor 18 , where spindle motor 18 rotates storage disk 16 in a rotational direction during operation.
- Storage disk 16 includes recordable surface 20 , which is a surface of storage disk 16 having one or more recordable regions.
- Storage device 10 further includes actuation motor 22 (e.g., a voice coil motor), actuator arm 24 , suspension assembly 26 , and slider 28 , where slider 28 carries a transducing head (not shown in FIG. 1 ). Slider 28 is supported by suspension assembly 26 , which in turn is supported by actuator arm 24 . Actuation motor 22 is configured to pivot actuator arm 24 about an axis in order to sweep suspension assembly 26 and slider 28 in an arc across recordable surface 20 (represented by arrow 30 ), where slider 28 desirably floats above recordable surface 20 on a cushion or air. An additional microactuation system (not shown) may also be used to produce precise, small-scale movements of suspension assembly 26 and slider 28 .
- actuation motor 22 e.g., a voice coil motor
- actuator arm 24 e.g., a voice coil motor
- Slider 28 is supported by suspension assembly 26 , which in turn is supported by actuator arm 24 .
- Actuation motor 22 is configured to pivot actuator arm 24 about an axis in
- the transducing head carried by slider 28 may be positioned relative to selected data tracks located on recordable surface 20 . This allows the transducing head to write data to, and read from, the data tracks on recordable surface 20 during operation. Accordingly, during a read operation, the transducing head generates a read signal based on the magnetic pattern stored in recordable surface 20 . This read signal is processed by a data receiver (not shown in FIG. 1 ) to identify data represented by the magnetic pattern.
- actuator arm 24 may be prone to mechanical vibrations, which are affected by air turbulence.
- the vibration in vertical direction may influence the amplitude of the read signal, while the radial vibration may affects the noise pattern from the granular structure of the magnetic particles and crosstalk from neighbor tracks.
- servo patterns may be written to recordable surface 20 . These servo patterns may be organized in radial spokes which are typically traversed by the transducing head about 200 times per revolution.
- a controller (not shown in FIG. 1 ) evaluates the read signal and corrects the radial position accordingly. It also tunes an adaptive channel equalization filter for optimum signal shape. This may be accomplished with hard coded algorithms in the integrated circuits, or with drive firmware stored on a computer storage medium of storage device 10 (e.g., in read-only memory), which can access the channel filter coefficients, for example via a data bus or a diagnostic interface between the main control application-specific integrated circuit (ASIC) and the channel signal processor.
- ASIC application-specific integrated circuit
- the tracking correction is based on the current radial position, velocity and acceleration of the transducing head.
- the channel filter coefficients represent resistor values of an analog equalization filter, continuously tuned by the controller of the read/write channel chip to make the peaks of the output signal close to equally high. These values are affected by the turbulent airflow and mechanical vibrations, as well as by the head noise, the electronic noise, the motor speed variations, the flight height of the transducing head, the actual path of the transducing head over the track, the tracking error corrections, and the like.
- the channel filter coefficient values are constantly updated as the transducing head reads the servo patterns on recordable surface 20 to maintain correct positioning over the track. These updated values provide unpredictable physical entropy sources that may be used to seed cryptographic random number generators, as well as faster but less unpredictable pseudorandom number generators.
- FIG. 2 is a block diagram of data receiver 32 , which is an example of a suitable data receiver for use in storage device 10 (shown in FIG. 1 ).
- data receiver 32 receives a read signal from the transducing head of slider 28 on communication line 34 .
- Data receiver 32 may also include one or more preamplifiers (not shown) to amplify the read signal, and/or more signal filters (not shown) to remove noise from the read signal, and/or one or more analog-to-digital converters (not shown) to digitize the read signal.
- Communication line 34 is connected to equalization filter 36 , which is configured to modify the read signal based on the channel filter coefficients stored in registers 38 .
- suitable filters for equalization filter 36 include digital and analog equalization filters, such as finite impulse response filters.
- registers 38 include 12 separate registers 38 a - 38 l , each of which stores a channel filter coefficient (e.g., 8-bit registers). In alternative embodiments, registers 38 may include different numbers of registers based on the particular designs of storage device 10 .
- the channel filter coefficients stored in registers 38 a - 38 l are used by data receiver 32 to modify the read signals to achieve an increased quality of the received read channel signal.
- Detector 42 is a signal detector (e.g., a Viterbi detector), which receives and evaluates the equalized read signals from equalization filter 36 . This allows detector 42 to identify whether equalization filter 36 is properly modifying the read signals.
- the equalized read signals are then output from detector 42 along communication line 44 , where they may undergo post processing (e.g., parity error checking) to produce channel output signals.
- equalization filter 36 frequently updates the channel filter coefficients stored in registers 38 a - 38 l to achieve an increased quality of the received read channel signal. This may be performed with feedback lines 46 and 48 , which connects registers 38 , detector 42 , and controller 50 , thereby providing a process control loop that may be managed by controller 50 .
- detector 42 evaluates the equalized read signals. If the signal quality is not optimal, detector 42 relays one or more correction signals to registers 38 over feedback lines 46 and 48 .
- the channel filter coefficients stored in registers 38 a - 38 l may then be updated to keep the signal characteristics of the equalized read signals the most desirable. As discussed above, because storage device 10 continuously reads the servo patterns on recordable surface 20 to keep the transducing head correctly positioned over the track, the channel filter coefficients stored in registers 38 a - 38 l are constantly updated.
- the channel filter coefficients are typically updated to remain around a set of values that represent the most likely values needed to properly modify the read signal. Thus, each channel filter coefficient typically attains only a few distinct values. Furthermore, one or more of the channel filter coefficients may be fixed as an asymmetry compensation tap, which is set for the transducing head and each zone on recordable surface 20 during the manufacture of storage device 10 . In these cases, the fixed coefficients do not provide physical entropy and may be disregarded.
- a seek and read operation may be performed by the transducing head.
- the seek operation desirably results in a significant movement of actuator arm 24
- the read operation desirably reads at least a full track of data. This results in substantial changes in the channel filter coefficients, thereby reducing any potential correlations between consecutive acquired values of the same coefficients.
- controller 50 may retrieve the channel filter coefficients from registers 38 over communication line 54 for use in seeding a random number generator.
- the random number generator may be an algorithm stored on a computer storage medium (e.g., memory module 52 ) and implemented by controller 50 to generate random numbers based on the channel filter coefficients. The resulting generated random numbers may be transmitted from controller 50 on output line 56 for a desired use.
- each channel filter coefficient typically attains only a few distinct values, and a substantial portion of the variability in the given channel filter coefficient is preserved in the least significant bits.
- the least significant bits may include bits [ 1 , 2 ], [ 1 , 2 , 3 ], and/or [ 1 , 2 , 3 , 4 ].
- the entropy obtained from the channel filter coefficients is desirably based on the actual values of the channel filter coefficients rather than being based on comparison to preset median values.
- any preset median values are also subject to drift due to environmental changes, thereby potentially inducing bias and thus further entropy loss in the output sequence.
- the random number is desirably generated based at least in part on the two least-significant bits (i.e., bits [ 1 , 2 ]) of at least one of the channel filter coefficients, more desirably on the four least-significant bits (i.e., bits [ 1 , 2 , 3 , 4 ]), and even more desirably on the full number of bits (e.g., 8 bits).
- the exceptions to this generalization include coefficient 1 (about 1.5 bit), coefficient 2 (about 3.5 bits), coefficient 4 (about 2.4 bits), and coefficient 11 (zero bits, fixed as an asymmetry compensation tap). If all of the channel filter coefficients were fully independent, the overall entropy of the 12 channel filter coefficient bytes would be about 32 bits, as shown below in Table 1.
- FIG. 3 is a graphical illustration of channel filter coefficients 1-12 (x-axis) versus the values of the coefficients for 10 sample coefficient sets (y-axis), which illustrates correlations that may occur between the separate channel filter coefficients.
- the data points belonging to a particular coefficient set are connected by straight line segments.
- several segments between the coefficient values e.g., between coefficients 4 and 5) are substantially parallel, which illustrates a positive correlation.
- coefficient 4 increases, coefficient 5 will also increase, and the combined entropy of coefficients 4 and 5 is not much greater than the entropy of coefficient 4 alone.
- some segments e.g., between coefficients 7 and 8 cross each other at substantially the same half-way point, which illustrates a negative correlation.
- coefficient 7 increases, coefficients 8 decreases by substantially the same amount, and the combined entropy of coefficients 7 and 8 is not much greater than the entropy of coefficients 7 alone. Accordingly, due to correlations that may occur between the separate channel filter coefficients, the available entropy is typically less than the estimates of the coefficient samples provided in isolation.
- the available physical entropy has to be estimated.
- the hashing operations desirably modify the statistical distributions of the signals to increase the level of randomness at the expense of reducing the number of output bits (i.e., the throughput or yield).
- Suitable hashing operations include XOR trees, linear feedback shift registers, arithmetic hash functions, Secure Hash Algorithm (SHA) functions, Advanced Encryption Standard (AES) functions with discarding a few output bits, Data Encryption Standard (DES) functions also with discarding output bits, and combinations thereof.
- SHA Secure Hash Algorithm
- AES Advanced Encryption Standard
- DES Data Encryption Standard
- each possible k-bit block in the sequence of the hashed coefficient sets occurs at roughly the same number of times.
- each hashed filter coefficient set appears independently, at about the same frequency. Consequently, no filter coefficient set occurs with a probability that is substantially greater than 2 ⁇ k , and the min-entropy of one coefficient set is about k.
- n such independent blocks are used to seed the random number generator
- FIG. 4 is a flow diagram of method 58 for generating m random numbers based at least in part on the physical entropy attainable with channel filter coefficients of storage device 10 .
- the following discussion of method 58 is made with reference to a cryptographic random number generator specified in the Federal Information Processing Standards (FIPS) Publication 186-2 with the SHA-1 hash function and a 192-bit internal state to provide random number outputs x j , each having a 160-bit size.
- FIPS Federal Information Processing Standards
- storage device 10 and method 58 are also suitable for use with a variety of different random number generation and hashing algorithms (e.g., FIPS-186-2 and SHA-256).
- variables of the random number generator are desirably preset.
- the initial entropy of XKEY is zero at boot up of storage device 10 .
- XKEY may alternatively be initially set as a secret value ranging between zero and 2 192 ⁇ 1 (inclusive).
- method 58 may be performed. As shown, method 58 includes steps 60 - 80 , and initially involves generating seeds values from sources of physical entropy. This may involve retrieving one or more channel filter coefficients (e.g., with controller 50 ), as discussed above (step 60 ). Based on the above-discussed entropy estimation process, one channel filter coefficient dataset typically provides at least about 16 bits of entropy. Therefore, a sampling of eight datasets is suitable for providing 128-bits of physical entropy, desirable for generating 128-bit cryptographic keys. The retrieval of eight data sets may be performed in about 80 milliseconds, thereby allowing up to about twelve reseedings to be performed each second. In addition to the channel filter coefficients, controller 50 may also retrieve physical entropy from other sources in storage device 10 , such as by sampling a free running counter of storage device 10 . This improves security against hardware-based attacks that attempt to influence the channel filter coefficients.
- controller 50 may also retrieve physical entropy from other sources in
- the seed values for the random number generator may then be generated from the retrieved channel filter coefficients (and from any additional physical entropy sources).
- the four least-significant bits of 11 channel filter coefficients, per each of eight datasets, together with counter sampling, may provide about 384 raw seed bits. Because the random number generator in this example is limited to a 192-bit internal state, the 384 raw seed bits may be divided into two 192-bit XSEED j values for use in two separate iterations of the algorithm.
- An updated XKEY (referred to as a seed-key) may then be generated from the initialized variables (e.g., XKEY, t, and j) and the XSEED j value (step 62 ).
- X KEY (1 +X KEY+ x j )mod 2 192
- the algorithm generates XVAL based on XKEY and XSEED j , generates the random number x j based on the SHA-1 hashing function of t and XVAL, and updates XKEY based on the previous value of XKEY and the random number x j .
- the random number x j is desirably not output.
- the algorithm under method 58 desirably accumulates a suitable amount of physical entropy prior to outputting the random numbers x j , while keeping XKEY continuously updated.
- step 62 of method 58 regardless of the entropy of XSEED j , the entropy in XKEY cannot increase to more than 160 bits (i.e., the length of the added x j ), which is stored in the least-significant 160 bits of XKEY. Under a standard operation, during the next iterations only these least-significant 160 bits would be directly further modified, the most significant bits are only affected by the carry bit from manipulating the least significant bits. As a result, the accumulated entropy stored in XKEY would only increase slowly beyond 160 bits. However, as discussed below, steps 66 and 68 of method 58 are intended to compensate for this limitation.
- step 64 of method 58 controller 50 determines whether the current iteration is equal to a preset iteration value R, which is desirably preset to allow a suitable number of iterations under steps 60 - 64 to pass to accumulate physical entropy.
- R a preset iteration value
- suitable values for R range from two to about two less than the total number of entropy-accumulation iterations.
- the values in the least-significant (LS) 160 bits of XKEY may be shifted up to fill the most-significant or more-significant (MS) bits of XKEY (step 66 ). This allows subsequent iterations to only affect the least-significant 160 bits of XKEY and keeps the initial entropy stored in the most/more-significant bits of XKEY intact.
- the seeding process may be performed in two phases.
- the generated random numbers x j are discarded and only XKEY is kept updated.
- the second phase i.e., step 66
- the least-significant 160 bits of the current XKEY may be shifted to the most/more-significant bits of XKEY.
- the remaining iterations (steps 68 - 72 ) may then be used to accumulate the rest of the physical entropy for updating the least-significant 160 bits of the current XKEY.
- steps 68 and 70 may be performed in the same manner as discussed above for steps 60 and 62 for increasing the entropy in the least-significant 160 bits of XKEY.
- the outputted x j contains a high level of entropy due to the accumulated physical entropy attained with the algorithm of method 58 . Generating secure random numbers in this manner precludes the need for secure, protected storage for keys or for the internal state of the generator.
- This above-discussed process of method 58 uses multiple, successive samplings of the channel filter coefficient datasets for initialization of the cryptographic pseudorandom number generator. Later, multiple random numbers may be generated to be used for a variety of purposes (e.g., cryptographic purposes) and/or may be combined through one or more additional hashing operations for subsequent use.
- step 66 when accumulating more than 320 bits of internal entropy (i.e., when XKEY is chosen longer than 40 bytes), step 66 may be expanded to additional bit locations in XKEY. This allows subsequent iterations to only affect the least-significant 160 bits of XKEY, and keeps the entropies stored in the successive-significant bits of XKEY intact.
- the SHA-1 hash function limits the number of usable bits to 512 bits. However, in alternative embodiments, the SHA-1 hash function may be replaced by hash functions operating on larger (or on multiple) blocks.
- each channel filter coefficient may undergo one or more pre-processing operations prior to generating the XSEED in steps 60 and 68 .
- each channel filter coefficient dataset may be compressed (e.g., to 40 bits), while desirably retaining at least the four least-significant bits of each coefficient to preserve the physical entropy.
- Several of these compressed blocks may then be used concatenated in steps 62 and 70 of method 58 , thereby speeding up the seeding process by trading the slower SHA-1 hash function calls with faster data compression steps.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
Description
H=−Σp i(y i)log2 p i(y i) (Equation 1)
where pi(yi) is the probability mass function of yi and where yi is a discrete random variable with possible distinct values y1 . . . yn. In one example implementation, the exceptions to this generalization include coefficient 1 (about 1.5 bit), coefficient 2 (about 3.5 bits), coefficient 4 (about 2.4 bits), and coefficient 11 (zero bits, fixed as an asymmetry compensation tap). If all of the channel filter coefficients were fully independent, the overall entropy of the 12 channel filter coefficient bytes would be about 32 bits, as shown below in Table 1.
TABLE 1 | |||
Entropy | |||
Channel Filter | (bits) | ||
1 | 1.491 | ||
2 | 3.536 | ||
3 | 3.266 | ||
4 | 2.378 | ||
5 | 3.082 | ||
6 | 3.104 | ||
7 | 3.018 | ||
8 | 2.765 | ||
9 | 2.967 | ||
10 | 3.268 | ||
11 | 0.000 | ||
12 | 3.144 | ||
Total | 32.019 | ||
However, statistical tests show that the actual amount of Shannon entropy attainable in an exemplary 12-register system is less than 32 bits (e.g., from about 16 bits to about 24 bits) because of correlations between the channel filter coefficients.
XVAL=(XKEY+XSEEDj)mod 2192
x j =SHA1(t,XVAL).
XKEY=(1+XKEY+x j)mod 2192
As shown, the algorithm generates XVAL based on XKEY and XSEEDj, generates the random number xj based on the SHA-1 hashing function of t and XVAL, and updates XKEY based on the previous value of XKEY and the random number xj. It is noted that at this point in the algorithm, the random number xj is desirably not output. As discussed below, the algorithm under
x j =SHA1(t,XVAL).
XKEY=(1+XKEY+x j)mod 2192
Claims (18)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/629,256 US8635260B2 (en) | 2009-12-02 | 2009-12-02 | Random number generator incorporating channel filter coefficients |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/629,256 US8635260B2 (en) | 2009-12-02 | 2009-12-02 | Random number generator incorporating channel filter coefficients |
Publications (2)
Publication Number | Publication Date |
---|---|
US20110131264A1 US20110131264A1 (en) | 2011-06-02 |
US8635260B2 true US8635260B2 (en) | 2014-01-21 |
Family
ID=44069650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/629,256 Expired - Fee Related US8635260B2 (en) | 2009-12-02 | 2009-12-02 | Random number generator incorporating channel filter coefficients |
Country Status (1)
Country | Link |
---|---|
US (1) | US8635260B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10338890B1 (en) | 2015-01-07 | 2019-07-02 | Seagate Technology Llc | Random values from data errors |
US10372528B1 (en) | 2014-12-15 | 2019-08-06 | Seagate Technology Llc | Random values from data errors |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8510642B2 (en) * | 2009-09-25 | 2013-08-13 | Stmicroelectronics, Inc. | System and method for map detector for symbol based error correction codes |
CN103095662B (en) * | 2011-11-04 | 2016-08-03 | 阿里巴巴集团控股有限公司 | A kind of online transaction safety certifying method and online transaction security certification system |
US8788551B2 (en) | 2011-11-15 | 2014-07-22 | Seagate Technology Llc | Random number generation using switching regulators |
US9201630B2 (en) | 2012-02-10 | 2015-12-01 | Seagate Technology Llc | Random number generation using startup variances |
US20150304107A1 (en) | 2014-04-17 | 2015-10-22 | International Business Machines Corporation | Extracting Entropy from Machine Vibration |
US9329836B2 (en) | 2014-04-17 | 2016-05-03 | International Business Machines Corporation | Extracting entropy from the vibration of multiple machines |
US9645948B2 (en) * | 2015-01-16 | 2017-05-09 | Hamilton Sundstrand Corporation | Access key generation for computer-readable memory |
DE102016119750B4 (en) * | 2015-10-26 | 2022-01-13 | Infineon Technologies Ag | Devices and methods for multi-channel scanning |
US10790850B1 (en) * | 2019-06-28 | 2020-09-29 | Nxp B.V. | Signal amplitude aware dithering method for enhancing small signal linearity in an analog-to-digital converter |
US20220207209A1 (en) * | 2020-12-30 | 2022-06-30 | Beijing Voyager Technology Co., Ltd. | Deterministic sampling of autonomous vehicle simulation variables at runtime |
Citations (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4122405A (en) | 1977-10-21 | 1978-10-24 | National Semiconductor Corporation | Digital logic level signal indication of phase and frequency lock condition in a phase-locked loop |
US4270430A (en) * | 1979-11-19 | 1981-06-02 | Kawai Musical Instrument Mfg. Co., Ltd. | Noise generator for a polyphonic tone synthesizer |
US4641102A (en) | 1984-08-17 | 1987-02-03 | At&T Bell Laboratories | Random number generator |
US4791594A (en) * | 1986-03-28 | 1988-12-13 | Technology Inc. 64 | Random-access psuedo random number generator |
US4799259A (en) | 1986-04-10 | 1989-01-17 | Rockwell International Corporation | Monolithic random digital noise generator |
US5471176A (en) | 1994-06-07 | 1995-11-28 | Quantum Corporation | Glitchless frequency-adjustable ring oscillator |
US5541996A (en) * | 1994-12-12 | 1996-07-30 | Itt Corporation | Apparatus and method for a pseudo-random number generator for high precision numbers |
US5732138A (en) * | 1996-01-29 | 1998-03-24 | Silicon Graphics, Inc. | Method for seeding a pseudo-random number generator with a cryptographic hash of a digitization of a chaotic system |
US20030158876A1 (en) | 2002-02-21 | 2003-08-21 | Koninklijke Philips Electronics N.V. | On-line randomness test through overlapping word counts |
US20030158875A1 (en) | 2002-02-21 | 2003-08-21 | Koninklijke Philips Electronics N.V. | Randomness test utilizing auto-correlation |
US20030156713A1 (en) | 2002-02-21 | 2003-08-21 | Koninklijke Philips Electronics N.V. | On-line randomness test for detecting irregular pattern |
US20030172096A1 (en) * | 2002-03-08 | 2003-09-11 | Xie Wenxiang | Mdethod and apparatus for generating random numbers based on filter coefficients of an adaptive filter |
US20030187890A1 (en) | 2002-03-26 | 2003-10-02 | Koninklijke Philips Electronics N.V. | Gap average on-line randomness test |
US20030200238A1 (en) | 2002-04-17 | 2003-10-23 | Koninklijke Philips Electronics N.V. | Hadamard-transform on-line randomness test |
US6675113B2 (en) | 2002-03-26 | 2004-01-06 | Koninklijke Philips Electronics N.V. | Monobit-run frequency on-line randomness test |
US6993543B2 (en) | 2002-04-22 | 2006-01-31 | Koninklijke Philips Electronics N.V. | Gap histogram on-line randomness test |
US20060067527A1 (en) * | 2004-09-27 | 2006-03-30 | Urivskiy Alexey V | Method for making seed value used in pseudo random number generator and device thereof |
US7047262B2 (en) | 2002-08-21 | 2006-05-16 | Koninklijke Philips Electronics N.V. | Entropy estimation and decimation for improving the randomness of true random number generation |
US7124155B2 (en) | 2002-07-25 | 2006-10-17 | Koninklijke Philips Electronics N.V. | Latching electronic circuit for random number generation |
US7149764B2 (en) | 2002-11-21 | 2006-12-12 | Ip-First, Llc | Random number generator bit string filter |
US20070273408A1 (en) | 2004-08-09 | 2007-11-29 | Jovan Golic | Random Number Generation Based on Logic Circuits with Feedback |
US20080313249A1 (en) | 2003-06-24 | 2008-12-18 | Renesas Technology Corp. | Random number generator with ring oscillation circuit |
US20090077146A1 (en) | 2007-09-18 | 2009-03-19 | Seagate Technology Llc | On-Line Randomness Test For Restart Random Number Generators |
US20090077147A1 (en) | 2007-09-18 | 2009-03-19 | Seagate Technology Llc | Multi-Bit Sampling Of Oscillator Jitter For Random Number Generation |
US20090106339A1 (en) | 2007-10-19 | 2009-04-23 | Samsung Electronics Co., Ltd. | Random number generator |
US20090110188A1 (en) | 2007-10-30 | 2009-04-30 | Sandisk Il Ltd. | Configurable random number generator |
US20090132624A1 (en) | 2004-10-15 | 2009-05-21 | Koninklijke Philips Electronics N.V. | Integrated circuit with a true random number generator |
-
2009
- 2009-12-02 US US12/629,256 patent/US8635260B2/en not_active Expired - Fee Related
Patent Citations (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4122405A (en) | 1977-10-21 | 1978-10-24 | National Semiconductor Corporation | Digital logic level signal indication of phase and frequency lock condition in a phase-locked loop |
US4270430A (en) * | 1979-11-19 | 1981-06-02 | Kawai Musical Instrument Mfg. Co., Ltd. | Noise generator for a polyphonic tone synthesizer |
US4641102A (en) | 1984-08-17 | 1987-02-03 | At&T Bell Laboratories | Random number generator |
US4791594A (en) * | 1986-03-28 | 1988-12-13 | Technology Inc. 64 | Random-access psuedo random number generator |
US4799259A (en) | 1986-04-10 | 1989-01-17 | Rockwell International Corporation | Monolithic random digital noise generator |
US5471176A (en) | 1994-06-07 | 1995-11-28 | Quantum Corporation | Glitchless frequency-adjustable ring oscillator |
US5541996A (en) * | 1994-12-12 | 1996-07-30 | Itt Corporation | Apparatus and method for a pseudo-random number generator for high precision numbers |
US5732138A (en) * | 1996-01-29 | 1998-03-24 | Silicon Graphics, Inc. | Method for seeding a pseudo-random number generator with a cryptographic hash of a digitization of a chaotic system |
US20030158876A1 (en) | 2002-02-21 | 2003-08-21 | Koninklijke Philips Electronics N.V. | On-line randomness test through overlapping word counts |
US20030158875A1 (en) | 2002-02-21 | 2003-08-21 | Koninklijke Philips Electronics N.V. | Randomness test utilizing auto-correlation |
US20030156713A1 (en) | 2002-02-21 | 2003-08-21 | Koninklijke Philips Electronics N.V. | On-line randomness test for detecting irregular pattern |
US6947960B2 (en) | 2002-02-21 | 2005-09-20 | Koninklijke Philips Electronics N.V. | Randomness test utilizing auto-correlation |
US20030172096A1 (en) * | 2002-03-08 | 2003-09-11 | Xie Wenxiang | Mdethod and apparatus for generating random numbers based on filter coefficients of an adaptive filter |
US6931425B2 (en) | 2002-03-08 | 2005-08-16 | Seagate Technology Llc | Method and apparatus for generating random numbers based on filter coefficients of an adaptive filter |
US6675113B2 (en) | 2002-03-26 | 2004-01-06 | Koninklijke Philips Electronics N.V. | Monobit-run frequency on-line randomness test |
US20030187890A1 (en) | 2002-03-26 | 2003-10-02 | Koninklijke Philips Electronics N.V. | Gap average on-line randomness test |
US20030200238A1 (en) | 2002-04-17 | 2003-10-23 | Koninklijke Philips Electronics N.V. | Hadamard-transform on-line randomness test |
US7031991B2 (en) | 2002-04-17 | 2006-04-18 | Koninklijke Philips Electronics N.V. | Hadamard-transform on-line randomness test |
US6993543B2 (en) | 2002-04-22 | 2006-01-31 | Koninklijke Philips Electronics N.V. | Gap histogram on-line randomness test |
US7124155B2 (en) | 2002-07-25 | 2006-10-17 | Koninklijke Philips Electronics N.V. | Latching electronic circuit for random number generation |
US7047262B2 (en) | 2002-08-21 | 2006-05-16 | Koninklijke Philips Electronics N.V. | Entropy estimation and decimation for improving the randomness of true random number generation |
US7149764B2 (en) | 2002-11-21 | 2006-12-12 | Ip-First, Llc | Random number generator bit string filter |
US20080313249A1 (en) | 2003-06-24 | 2008-12-18 | Renesas Technology Corp. | Random number generator with ring oscillation circuit |
US20070273408A1 (en) | 2004-08-09 | 2007-11-29 | Jovan Golic | Random Number Generation Based on Logic Circuits with Feedback |
US20060067527A1 (en) * | 2004-09-27 | 2006-03-30 | Urivskiy Alexey V | Method for making seed value used in pseudo random number generator and device thereof |
US20090132624A1 (en) | 2004-10-15 | 2009-05-21 | Koninklijke Philips Electronics N.V. | Integrated circuit with a true random number generator |
US20090077146A1 (en) | 2007-09-18 | 2009-03-19 | Seagate Technology Llc | On-Line Randomness Test For Restart Random Number Generators |
US20090077147A1 (en) | 2007-09-18 | 2009-03-19 | Seagate Technology Llc | Multi-Bit Sampling Of Oscillator Jitter For Random Number Generation |
US20090106339A1 (en) | 2007-10-19 | 2009-04-23 | Samsung Electronics Co., Ltd. | Random number generator |
US20090110188A1 (en) | 2007-10-30 | 2009-04-30 | Sandisk Il Ltd. | Configurable random number generator |
Non-Patent Citations (3)
Title |
---|
"Cryptographically Secure Pseudorandom Number Generator", Wikipedia, 2009, <http://en.wikipedia.org/wiki/Cryptographically-secure-pseudorandom-number-generator>. |
"Cryptographically Secure Pseudorandom Number Generator", Wikipedia, 2009, <http://en.wikipedia.org/wiki/Cryptographically—secure—pseudorandom—number—generator>. |
Rick Walker: "A Monolithic High-Speed Voltage Controlled Ring Oscillator", Instrument Technology Department, HP Labs, Palo Alto, CA. |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10372528B1 (en) | 2014-12-15 | 2019-08-06 | Seagate Technology Llc | Random values from data errors |
US10338890B1 (en) | 2015-01-07 | 2019-07-02 | Seagate Technology Llc | Random values from data errors |
Also Published As
Publication number | Publication date |
---|---|
US20110131264A1 (en) | 2011-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8635260B2 (en) | Random number generator incorporating channel filter coefficients | |
US10536266B2 (en) | Cryptographically securing entropy for later use | |
US11516027B2 (en) | Method and apparatus for protecting embedded software | |
US6252961B1 (en) | Method and apparatus for performing data encryption and error code correction | |
KR101366376B1 (en) | Signal generator based device security | |
JP2008245112A (en) | Data storage device and encryption key management method | |
US20140205093A1 (en) | Method and system for generating a random number | |
JP4646927B2 (en) | Encryption key in storage system | |
CN100380507C (en) | Error-correcting device and decoder enabling fast error correction with reduced circuit scale | |
KR20010022054A (en) | Concurrent row/column syndrome generator for a product code | |
KR20090080032A (en) | Method and system for providing security for storage devices | |
EP2329622A2 (en) | Message authentication code pre-computation with applications to secure memory | |
US20090316899A1 (en) | Encryption/decryption device and security storage device | |
US8996596B2 (en) | Apparatus and method of generating random number | |
JP4718319B2 (en) | Apparatus and method for generating a secret key | |
US20250125955A1 (en) | Updateable encryption in self encrypting drives | |
EP0754341A1 (en) | A method and apparatus for protecting data from mis-synchronization errors | |
US6931425B2 (en) | Method and apparatus for generating random numbers based on filter coefficients of an adaptive filter | |
US11188306B1 (en) | Distributed random-number generator | |
US20220179567A1 (en) | Memory system and method of managing encryption key | |
US7167882B2 (en) | True random number generation | |
US20060174184A1 (en) | Method and apparatus for encoding and decoding data using a pseudo-random interleaver | |
US20090161246A1 (en) | Random Number Generation Using Hard Disk Drive Information | |
JP3683738B2 (en) | Method and apparatus for performing data encryption and error code correction | |
Panda et al. | An Efficient Noise Generator for Validation of Channels Equalizers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SEAGATE TECHNOLOGY LLC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HARS, LASZLO;REEL/FRAME:023593/0560 Effective date: 20091130 |
|
AS | Assignment |
Owner name: THE BANK OF NOVA SCOTIA, AS ADMINISTRATIVE AGENT, CANADA Free format text: SECURITY AGREEMENT;ASSIGNOR:SEAGATE TECHNOLOGY LLC;REEL/FRAME:026010/0350 Effective date: 20110118 Owner name: THE BANK OF NOVA SCOTIA, AS ADMINISTRATIVE AGENT, Free format text: SECURITY AGREEMENT;ASSIGNOR:SEAGATE TECHNOLOGY LLC;REEL/FRAME:026010/0350 Effective date: 20110118 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
SULP | Surcharge for late payment | ||
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20220121 |