Entropy source with magneto-resistive element for random number generator
Abstract
An entropy source and a random number (RN) generator are disclosed. In one aspect, a low-energy entropy source includes a magneto-resistive (MR) element and a sensing circuit. The MR element is applied a static current and has a variable resistance determined based on magnetization of the MR element. The sensing circuit senses the resistance of the MR element and provides random values based on the sensed resistance of the MR element. In another aspect, a RN generator includes an entropy source and a post-processing module. The entropy source includes at least one MR element and provides first random values based on the at least one MR element. The post-processing module receives and processes the first random values (e.g., based on a cryptographic hash function, an error detection code, a stream cipher algorithm, etc.) and provides second random values having improved randomness characteristics.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . An apparatus comprising:
an entropy source comprising at least one magneto-resistive (MR) element and configured to provide first random values based on the at least one MR element; and a post-processing module configured to receive and process the first random values and provide second random values.
2 . The apparatus of claim 1 , wherein the post-processing module is configured to hash the first random values and provide the second random values.
3 . The apparatus of claim 2 , wherein the post-processing module is configured to hash the first random values based on a cryptographic hash function.
4 . The apparatus of claim 1 , wherein a total number of bits of each second random value is greater than a total number of bits of all first random values used to generate the second random value.
5 . The apparatus of claim 1 , the post-processing module comprising:
a plurality of shift registers configured to receive a plurality of sequences of first random values from a plurality of entropy sources including the entropy source, and a hash module configured to receive a plurality of sequences of intermediate values from the plurality of shift registers, hash the intermediate values, and provide the second random values.
6 . The apparatus of claim 5 , wherein each first random value comprises a 1-bit value, each intermediate value comprises a Q-bit value, and each second random value comprises a N-bit value, where Q and N are each greater than one.
7 . The apparatus of claim 1 , wherein the post-processing module is configured to generate the second random values based on the first random values and an error detection code.
8 . The apparatus of claim 7 , wherein the error detection code comprises a cyclic redundancy check (CRC).
9 . The apparatus of claim 1 , the post-processing module comprising:
a linear feedback shift register (LFSR) implementing a generator polynomial and configured to receive the first random values and provide the second random values.
10 . The apparatus of claim 1 , the post-processing module comprising:
a plurality of registers coupled in series, and at least two combiners coupled to at least two registers in the plurality of registers and configured to receive at least two sequences of first random values from at least two entropy sources, the plurality of registers and the at least two combiners implementing a generator polynomial with at least two feedback bits, and the at least two entropy sources including the entropy source.
11 . The apparatus of claim 1 , the post-processing module comprising:
an entropy accumulator configured to receive the first random values and provide intermediate random values; and a cryptographic module configured to receive the intermediate random values and provide second random values.
12 . The apparatus of claim 1 , the post-processing module comprising:
a combiner configured to receive and process a plurality of sequences of first random values from a plurality of entropy sources and provide the second random values, the plurality of entropy sources including the entropy source.
13 . The apparatus of claim 12 , the combiner comprising an exclusive OR (XOR) circuit.
14 . The apparatus of claim 12 , wherein the combiner is configured to perform modulo-M summation of a plurality of first random values in the plurality of sequences of first random values to obtain a corresponding second random value, where M is an integer greater than one.
15 . The apparatus of claim 1 , the post-processing module comprising:
a stream cipher generator configured to generate the second random values, the first random values altering operation or internal state of the stream cipher generator.
16 . The apparatus of claim 15 , wherein the stream cipher generator is configured to generate the second random values based on a stream cipher algorithm, the first random values selecting coefficients of the stream cipher algorithm.
17 . The apparatus of claim 15 , wherein the stream cipher generator is configured to generate the second random values based on a stream cipher algorithm, the first random values changing the internal state of the stream cipher generator.
18 . The apparatus of claim 1 , wherein the first random values comprise 1-bit random values and the second random values comprise multi-bit random values.
19 . The apparatus of claim 1 , the entropy source comprising:
a biasing circuit configured to provide a static current for the at least one MR element, and a sensing circuit configured to sense resistance of the at least one MR element and provide random values based on the sensed resistance.
20 . The apparatus of claim Error! Reference source not found, the entropy source comprising:
a circuit configured to generate current or voltage pulses to change a state of the at least one MR element, and a sensing circuit configured to sense resistance of the at least one MR element and provide random values based on the sensed resistance.
21 . An apparatus comprising:
an array of magneto-resistive (MR) cells arranged in a plurality of rows and a plurality of columns, each MR cell comprising at least one MR element; a plurality of word lines coupled to the plurality of rows of MR cells; a plurality of select lines coupled to the plurality of columns of MR cells; a sensing circuit coupled to the plurality of select lines and configured to sense resistance of a selected MR cell in the array and provide random values; and a plurality of programming sources coupled to the plurality of select lines and configured to provide pulses to change state of the MR cells in the array, the plurality of programming sources including a first programming source coupled to the selected MR cell when the selected MR cell is to be switched in a first direction, and a second programming source coupled to the selected MR cell when the selected MR cell is to be switched in a second direction.
22 . The apparatus of claim 21 , wherein the plurality of programming sources are configured to provide current pulses or voltage pulses to change the state of the MR cells in the array.
23 . The apparatus of claim 21 , wherein at least one of the first and second programming sources is configured to provide pulses of a variable amplitude, or a variable pulse duration, or both a variable amplitude and a variable pulse duration determined based on a target switching probability of the selected MR cell.
24 . The apparatus of claim 21 , wherein the plurality of programming sources have individually configured pulse amplitude, or pulse duration, or both pulse amplitude and pulse duration.
25 . The apparatus of claim 21 , wherein the selected MR cell is programmed in a single operation and is applied with a current pulse or a voltage pulse from the first or second programming source in the single operation.
26 . The apparatus of claim 21 , wherein the selected MR cell is programmed in a plurality of operations and is applied with a current pulse or a voltage pulse from the first or second programming source in each of the plurality of operations.
27 . The apparatus of claim 21 , wherein the MR cells in the array are selected and sensed at a first rate to generate random values at a second rate that is higher than the first rate.
28 . The apparatus of claim 21 , wherein each MR cell includes a plurality of MR elements coupled in series.
29 . The apparatus of claim 21 , wherein each MR cell includes a plurality of MR elements coupled in parallel.
30 . The apparatus of claim 29 , wherein the plurality of MR elements in each MR cell have free layers that are coupled together and fixed layers that are also coupled together.
31 . The apparatus of claim 21 , further comprising:
at least one MR cell used to provide a reference voltage for the sensing circuit.
32 . The apparatus of claim 21 , wherein the MR cells in the array comprise MR elements of different shapes, or different sizes, or different thickness, or a combination thereof.
33 . An apparatus comprising:
an entropy source comprising at least one magneto-resistive (MR) element and configured to provide first values based on the at least one MR element; and a detection module configured to receive and process the first values and provide an indication of tampering with the entropy source.
34 . The apparatus of claim 33 , wherein the detection module is configured to detect tampering with the entropy source based on percentage of zeros and percentage of ones in the first values.
35 . The apparatus of claim 33 , wherein the detection module is configured to detect tampering with the entropy source based on runs of zeros and runs of ones in the first values.
36 . The apparatus of claim 33 , wherein the detection module is configured to detect tampering with the entropy source based on number of occurrences of predetermined patterns of zeros and ones.
37 . The apparatus of claim 33 , wherein the detection module is configured to perform compression of the first values and to detect tampering with the entropy source based on an output rate of the compression.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.