Entropy difference extractor using the Barkhausen effect

By employing a differential extractor to remove non-random components from the Barkhausen effect signal, the method generates high-quality, truly random numbers, addressing the limitations of conventional methods and enhancing their suitability for cryptographic applications.

JP2025517781APending Publication Date: 2025-06-10ペリソ エスエイチピーケイ
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2024568763
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-05-19
Filing Date
2022-05-30
Publication Date
2025-06-10

AI Technical Summary

Technical Problem

Conventional methods for generating random numbers based on the Barkhausen effect include non-random components, resulting in random numbers that are not truly random and may not be suitable for applications like encryption.

Method used

A differential extractor is used to remove non-random components from the Barkhausen effect signal by applying a varying magnetic field to a ferromagnetic material, capturing the Barkhausen signal, and converting it into a digital data stream, which is then processed using two memory arrays and an output sampling module to isolate the random component.

Benefits of technology

The proposed solution effectively generates high-quality, truly random numbers by removing non-random components from the Barkhausen signal, making the generated entropy suitable for cryptographic applications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025517781000001_ABST
    Figure 2025517781000001_ABST
Patent Text Reader

Abstract

A method and system are disclosed for generating the entropy of a Barkhausen effect signal and removing non-random components. In one method, a varying magnetic field is applied to a ferromagnetic material and the change in magnetic flux is measured to capture the Barkhausen signal (BS). The magnetic field is based on an oscillating signal, and the BS includes a random component and a non-random component. The BS is converted into a digital data stream and stored in a memory array. The first portion of the data stream is stored as an element of a first memory array, and the second portion of the data stream is stored as an element of a second memory array. The elements of the first memory array are subtracted from the elements of the second memory array. The result of the subtraction, which includes the random component of the BS and removes the non-random component of the BS, is stored.
Need to check novelty before this filing date? Find Prior Art

Description

Detailed Description of the Invention

[0001] [Background Art] <Technical Field> The present invention relates to the generation of entropy (random numbers) based on the Barkhausen effect, and more specifically, to a differential extractor for removing non-random components of Barkhausen effect signals.

[0002] <Related Art> Most cryptographic applications use random numbers. Accordingly, cryptographic applications are vulnerable to the quality of the random numbers used. A truly random number generator generates a random number sequence that is reasonably unpredictable with a higher probability than chance. However, it is often difficult to practically generate truly random numbers. High-quality random number generators generate random numbers in a way that is realistically impossible to model. Pseudo-random number generators appear random but actually generate predetermined numerical values because they can be reproduced if the state of the pseudo-random number generator is known.

[0003] One way to generate high-quality random numbers is to utilize the state of the attributes of the physical environment, which changes in an unpredictable way. The best source of randomness, also called entropy, is based on the quantum uncertainty associated with quantum variables. An example of this is the Barkhausen effect.

[0004] The Barkhausen effect refers to the occurrence of noise in the magnetic output of a ferromagnetic material when the magnetizing force applied to the ferromagnetic material is changed. Specifically, the Barkhausen effect is a phenomenon that occurs when the size of magnetic domains such as atoms in a ferromagnetic material changes rapidly and they are magnetically oriented in the same direction. When the external magnetic field passing through the ferromagnetic material changes, the magnetization of the ferromagnetic material changes in a series of discontinuous changes (not linearly), causing a "jump" in the magnetic flux passing through the ferromagnetic material. This jump (or microstep) can be detected, for example, by a coil of wire wound around the ferromagnetic material. The sudden transition of the magnetic flux in the ferromagnetic material generates current pulses in the coil, which can be detected as the Barkhausen signal (BS) (also called "Barkhausen noise").

[0005] Although the entropy amount of the Barkhausen signal is high, the Barkhausen signal is not completely random because it may be affected by non-random (recursive) components. Therefore, in conventional methods of extracting entropy based on the Barkhausen effect, random numbers containing both random and non-random components are generated, but such random numbers may not be desirable for many applications such as protecting payment transactions using encryption.

[0006] Therefore, there is a need to generate, extract, or capture entropy (random numbers) based on the Barkhausen effect and remove non-random components.

[0007] [Overview] The subject matter described herein includes a method, a system, and a computer program product for generating random numbers (entropy) based on the Barkhausen effect, including the use of a differential extractor to remove non-random components of the Barkhausen effect signal. According to one method, a varying magnetic field is applied to a ferromagnetic material, and a Barkhausen signal (BS) is captured by measuring the change in magnetic flux. The varying magnetic field is based on an oscillating signal such as a rectangular wave, and the BS includes both a random component and a non-random component. Next, the BS is converted into a digital data stream, which is stored in either of two memory arrays based on the oscillating signal. The first portion of the data stream is stored as one or more elements within the first memory array, and the second portion of the data stream is stored as one or more elements within the second memory array. Thereafter, based on the oscillating signal, the elements of the first memory array are subtracted from the elements of the second memory array. The result of the subtraction is stored as including the random component of the BS and removing the non-random component of the BS.

[0008] The system includes a differential extractor for removing non-random components of the Barkhausen effect signal and a Barkhausen inductor for capturing a Barkhausen signal (BS). The BS is captured by applying a varying magnetic field to a ferromagnetic material and measuring the change in magnetic flux. The varying magnetic field is based on an oscillating signal such as a rectangular wave generated by a rectangular wave generator. The BS includes a random component and a non-random component. A digitization module, such as one or more filters and an analog-to-digital converter, converts the BS into a digital data stream. A memory upside array and a memory downside array alternately store the data stream based on the oscillating signal. The first portion of the data stream is stored as one or more elements within the memory upside array. The second portion of the data stream is stored as one or more elements within the memory downside array. An output sampling module subtracts the elements of the first memory array from the elements of the second memory array based on the oscillating signal. An output memory stores the result of the subtraction, which includes the random component and removes the non-random component.

[0009] [Brief Description of the Drawings] FIG. 1 is a flow diagram showing exemplary steps for generating entropy based on the Barkhausen effect, including removal of non-random components of the Barkhausen signal, according to one embodiment of the subject matter described herein.

[0010] FIG. 2 is a system diagram showing exemplary components of entropy based on the Barkhausen effect, including removal of non-random components of the Barkhausen signal, according to one embodiment of the subject matter described herein.

[0011] FIG. 3 is a perspective view showing an exemplary configuration of a Barkhausen inductor, according to one embodiment of the subject matter described herein.

[0012] FIG. 4 is a schematic diagram of a low-pass filter and the waveform when the filter is applied to a rectangular wave signal, according to one embodiment of the subject matter described herein.

[0013] [Detailed Description] The subject matter described herein includes a differential extractor for removing non-random components of a Barkhausen effect signal. Conventional methods for generating random numbers, such as those based on physical phenomena like the Barkhausen effect, include non-random components. Thus, with conventional methods, true random numbers are not generated. In contrast, the present disclosure generates entropy based on the Barkhausen effect, including removal of (one or more) non-random components.

[0014] FIG. 1 is a flow diagram showing exemplary steps for generating entropy based on a Barkhausen effect signal including removal of non-random components related to the Barkhausen signal, according to one embodiment of the subject matter described herein. This process can be executed by one or more hardware or software components configured to extract entropy related to the Barkhausen effect and store the entropy in memory for use in applications such as payment transactions and communication encryption. The process may begin by generating an oscillating signal, such as a square wave. At least one coil surrounding the core of a ferromagnetic material is used to magnetize the ferromagnetic core and detect the resulting electrical signal. This signal is digitized and filtered to remove non-random components of the signal. For example, two memory arrays store the digitized signal. Subtraction for each sample is performed in the two memory arrays, triggered by pulses every two integer periods of the oscillating signal (square wave). In contrast to conventional methods of generating entropy, which include methods using the Barkhausen effect, the present invention enhances the randomness generated by removing non-random components of the Barkhausen effect signal.

[0015] Referring to FIG. 1, at step 100, the method includes generating an oscillating signal. In one embodiment, generating the oscillating signal includes generating a square wave using a square wave generator (SQW). However, it is understood that any type of oscillating signal generator may be used. The square wave generator preferably has a duty cycle related to maintaining symmetric charging and discharging phases of the Barkhausen inductor (LB). For example, the square wave generator may have a 50 percent duty cycle.

[0016] The rectangular wave generator may have a frequency band based on the magnetic properties of the ferromagnetic material of the Barkhausen inductor. In one embodiment, the rectangular wave generator has a frequency band that is less than one-tenth of the maximum spectrum of the Barkhausen signal generated by the Barkhausen inductor. For example, the rectangular wave generator may have a frequency band from 1 KHz to 1 MHz.

[0017] In step 102, an alternating current signal is generated based on the oscillation signal generated in step 100. In some embodiments, the fast rise time of the rectangular wave may be smoothed to a more linear rise time. A more linear rise time may be required to magnetize the Barkhausen inductor. For example, smoothing the rise time of the rectangular wave generator may be performed by a low pass filter (LPF). The LPF may be an electrical component or a software module combined with a digital to analog converter (DAC). The LPF can generate an alternating current signal used to magnetize the Barkhausen inductor (LB) in alternating directions. The purpose of the LPF is to generate an output signal that repeatedly ramps up and then ramps down many times per second. Optimally, the output signal has a complete linear ramp, although some asymmetry (e.g., 15%) does not have an undesirable effect on performance.

[0018] In one embodiment, the LPF may include a resistor capacitor (RC) low pass filter that functions as an integrator. In such an embodiment, the voltage V(CL) applied to the bypass capacitor may be part of an exponential charge / discharge RC curve rather than a complete triangular wave signal. Typical values for the RC block range from hundreds of milliseconds to microseconds, depending on the output frequency of the rectangular wave generator. Usually, the frequency band of the rectangular wave generator is less than one-tenth of the maximum spectrum of the signal (R l ·C L ~10 / f swg) To make the signal more linear, a constant current generator can also be used instead of RL. Instead of the above-described electrical / hardware-based embodiments, in a software-based embodiment, an up / down counter connected to the DAC can provide a triangular output signal.

[0019] In step 104, the ferromagnetic material is magnetized based on the signal generated in step 102. Then, in step 106, the electrical signal obtained from step 104 is detected. As described above, the Barkhausen effect occurs during the magnetization and demagnetization of the ferromagnetic material. The Barkhausen effect can be measured as a random magnetic signal caused by the gradual orientation of the internal magnetic domains of the ferromagnetic material. The random magnetic signal may appear as an electrical signal (Barkhausen signal) applied to a coil wound around the core of the ferromagnetic material. To perform magnetization, demagnetization, and reading of the Barkhausen signal, a simple configuration includes a ferromagnetic core and one coil that functions as both a magnetization coil and a reading coil for the resulting Barkhausen signal. Another configuration includes two coils. One coil is used for magnetization and demagnetization of the ferromagnetic material, and the other coil reads the Barkhausen signal separately from the first coil.

[0020] To reduce magnetic interference from the external magnetic field, the core of the ferromagnetic material may be embodied as a closed magnetic circuit. For example, a toroidal structure Barkhausen inductor may be less susceptible to external magnetic interference.

[0021] Applying a magnetizing force that changes to a ferromagnetic material can include magnetizing the ferromagnetic material to a first polarity, demagnetizing the ferromagnetic material, and magnetizing the ferromagnetic material to a second polarity opposite to the first polarity (reverse magnetization). Capturing the resulting Barkhausen signal includes measuring a change in the magnetic flux of the ferromagnetic material. Measuring a change in the magnetic flux of the ferromagnetic material can include detecting a voltage (V(LB)) applied to a Barkhausen inductor, where V(LB) is the result of random fluctuations in the voltage applied to the Barkhausen inductor related to the Barkhausen effect. It is understood that V(LB) is a signal representing entropy or randomness.

[0022] As described above, in one embodiment, the Barkhausen inductor includes at least one coil surrounding a ferromagnetic core, and the ferromagnetic core has a toroidal structure. In an embodiment where the Barkhausen inductor includes a first coil surrounding the ferromagnetic core, the first coil is configured to magnetize and demagnetize the ferromagnetic core and measure a change in the magnetic flux of the ferromagnetic core. In an embodiment where the Barkhausen inductor includes a first coil and a second coil surrounding the ferromagnetic core, the first coil is configured to magnetize and demagnetize the ferromagnetic core, and the second coil is configured to measure a change in the magnetic flux of the ferromagnetic core.

[0023] In step 108, the electrical signal resulting from the result of step 106 is digitized into a data stream. For example, the data stream may include a bit string, a byte string, a word string, or other similar data structures. In one embodiment, the digitization of the signal may be performed using a high pass filter (HPF). In another embodiment, the signal may be digitized using an analog to digital converter (ADC). For example, a high pass filter is an electrical component or software module that removes low frequency components from the signals used for magnetization and demagnetization of LB. Since the Barkhausen signal exists in a high frequency band, the HPF extracts the spectral components related to the Barkhausen signal. Alternatively, the signal can be digitized by an ADC and a digital filter can be applied. As yet another method, if the signal is already digitized, a software module can also be used.

[0024] In step 110, a pulse is generated in response to detecting a positive transition of the oscillation signal (e.g., a rectangular wave) generated in step 100. For example, a positive edge detector (PED) may be configured to generate a pulse in response to detecting a positive transition of the oscillation signal. In one embodiment, the duration of the pulse is about one tenth of the period of the oscillation signal. For example, the duration of the pulse may be between about 100 nanoseconds and 1,000 nanoseconds. Thus, the acquisition time equal to an integer period of the SWG includes one positive phase and one negative phase.

[0025] In step 112, a binary value (0 or 1) is generated based on the positive transition pulse generated in step 110. The binary value generated in step 112 is flipped (i.e., inverted or reversed) each time a positive transition pulse is received. For example, the binary value may initially be set to 0. When the first positive transition pulse is received at time T1, the binary value may be set to 1. When the second positive transition pulse is received at time T2, the binary value may be set to 0. The same applies thereafter.

[0026] As will be described in more detail in step 116 below, the binary value can be used to redirect the data stream generated in step 108 to one of the two memory arrays. For example, if the binary value is 1, the data stream may be directed to the first memory array until the binary value becomes 0 when the data stream is redirected to the second memory array.

[0027] In addition to the generation of the positive transition pulse, in step 114, a pulse is generated in response to the detection of a negative transition of the oscillation signal (e.g., a rectangular wave) generated in step 100. For example, a negative edge detector (NED) may be configured to generate a pulse in response to the detection of a negative transition of the oscillation signal. As will be detailed in step 118 below, this negative transition pulse can be used to trigger the subtraction of the values stored in the two memory arrays.

[0028] In step 116, the data stream is stored as elements in two different memory arrays based on the binary values determined in step 112. This, in one embodiment, includes using an up-down switch (UDS) of the controller to redirect the data stream from the ADC to the memory arrays. For example, the UDS may be configured to redirect the data stream by successively storing the data stream in a first memory array among the two different memory arrays and a second memory array among the two different memory arrays. The first memory array may be a memory upside (MUP) array of length k connected to the first output of the UDS. The MUP may be configured to store a data stream starting from an initial position. When the first memory array is full, the MUP may be configured to overwrite the data starting from the initial position. The second memory array among the two different memory arrays may include a memory downside (MDW) array of length k. The MDW is connected to the second output of the UDS and may be configured to store a data stream starting from an initial position. When the second memory array is full, the MDW overwrites the second memory array starting from the initial position. In another embodiment, the first memory array and the second memory array (MUP and MDW) may each be a shift register of length k.

[0029] In step 118, a result is generated in response to the reception of the negative transition pulse generated in step 114. This may include, for example, reading the MUP memory array and the MDW memory array by an output sampling block (SMP) in response to the reception of a pulse from NED, and subtracting the elements of the MUP memory array from the elements of the MDW memory array by the SMP. In step 118, it is understood that the bulk magnetostriction signals under the same conditions are captured twice and all synchronous (non-random) components of the bulk magnetostriction signal are removed by subtracting them from each other. By repeating this process, a continuous streaming of entropy (random sequence) is provided. It can also be understood that MUP is subtracted from MDW (or vice versa) every integer period of the SWG. Since the negative edge detector generates a pulse for each binary value transition, this occurs every two integer periods of the SWG.

[0030] In step 120, the result generated in step 118 is stored. In one embodiment, storing the result includes storing the result of the subtraction performed by the SMP in an output memory array (ME) element by element.

[0031] FIG. 2 is a diagram showing an exemplary system for generating random numbers (entropy) based on the magnetostrictive effect including removal of non-random components related to the magnetostrictive signal according to one embodiment of the subject matter described herein. Referring to FIG. 2, a square wave generator (SWG) 200 may include an oscillator with a 50% duty cycle. The duty cycle may be set to ensure that the successive charging and discharging phases of the LB204 are symmetric. The frequency f swg of the SWG 200 typically ranges from 1 KHz to 1 MHz, but may vary depending on the magnetic characteristics of the LB204. In one embodiment, the frequency band of the oscillator 200 may be less than one-tenth of the maximum spectrum of the magnetostrictive signal generated by the LB204.

[0032] The output of the SWG200 may be received as input by a low-pass filter (LPF) 202. The LPF 202 may be an electrical component or a software module combined with a DAC (digital to analog converter) 214. The LPF 202 may be configured to generate an alternating current signal used to magnetize the LB204 in alternating directions. The purpose of the LPF 202 is to generate an output signal that repeatedly ramps up and then ramps down many times per second. A complete linear ramp may be optimal, but even with some degree of asymmetry (e.g., about 15%), it will not significantly affect the performance. One implementation includes an RC low-pass filter that functions as an integrator. In this implementation, V(C L ) is not a complete triangular wave signal but part of an exponential charge / discharge RC curve. To make the signal more linear, a constant current generator may be used instead of R L . Alternatively, in an embodiment combining software and an up / down counter connected to a DAC (digital to analog converter), a triangular wave output signal can be obtained. Typical values of the RC block are from hundreds of milliseconds to microseconds, depending on the SWG output frequency. Usually, R l ·C L ~ 10 / f swg .

[0033] The Barkhausen inductor (LB) 204 may be an electrical component. The Barkhausen effect occurs during the magnetization and demagnetization of a ferromagnetic material. In other words, the core ferromagnetic material (FMM) may generate a random magnetic signal generated by the progressive orientation of the internal magnetic domains of the FMM. This random magnetic signal can be detected or measured as an electrical signal applied to a coil wound around the FMM. As will be described in more detail with respect to FIG. 3, for magnetization, demagnetization, and reading of the Barkhausen signal, a simple configuration includes one coil that functions as a magnetization coil and also as a Barkhausen signal reader. Another possible configuration is that the ferromagnetic core has two coils instead of one coil. In this case, one coil is used for magnetization and demagnetization of the ferromagnetic material, and the other coil reads the Barkhausen signal. To reduce magnetic interference from an external magnetic field, the core of the ferromagnetic material can also be embodied as a closed magnetic circuit such as a toroidal structure. This may make it less susceptible to the influence of external magnetic interference.

[0034] The current detector (RI) 206 is an electrical component. The random signal (entropy) generated by the LB 204 during the magnetization and demagnetization processes is the voltage V(LB) applied to the LB 204. This voltage V(LB) is added to V(CL) and can be measured as V(RI) applied to the RI 206. In other words, the RI 206 functions as a current detector for the signal resulting from V(CL)+V(LB).

[0035] The decoupling capacitor (CH) 208 is an electrical component or a software module. The signal (V(RI)) applied to RI may have a strong DC (direct current) component. CH208 removes the DC component so that the input signal (VIhpf) of the HPF becomes a zero-mean signal (|VIhpf| = 0). Alternatively, the signal V(RI) can be digitally sampled by ADC214, and the function of CH208 can be emulated by software with an operation of VIhpf = V(Ri) - |V(Ri)|. In an embodiment where the components following HPF212 are hardware-based, a smaller capacitance may already exist at the input stage of HPF212. As a result, CH208 can be omitted, so CH208 may not be necessary.

[0036] The bypass capacitor (CL) 210 is an electrical component. The Barkhausen effect is caused by random fluctuations in the voltage (V(LB)) applied to LB, and this V(LB) is a signal representing the extracted entropy. The CL bypass capacitor 210 bypasses the current that would otherwise be redirected to the LPF202 to the ground. As a result of the CL bypass effect, a stronger signal is extracted at RI206. In other words, most of the Barkhausen signal appears at RI206. The reason is that most of the power spectral density (PSD) of the Barkhausen effect signal exists in the high-frequency band, and from the perspective of high frequencies, CL210 has a very low reactance. The voltage V(CL) applied to CL210 changes slowly with respect to the high-frequency random signal (V(LB)) generated by LB204. Based on the typical maximum drive current of LPF202, CL210 may have a capacitance in the range from a few nanofarads to a few microfarads.

[0037] The high-pass filter (HPF) 212 is an electrical component or software module that removes low-frequency components from the signals used for magnetization and demagnetization of LB204. Since the Barkhausen effect signals are located at high frequencies, HPF 212 extracts the only spectral component related to the Barkhausen signals. The cut-off frequency fhpf strongly depends on the SWG frequency fswg and must be at least 10 times that, i.e., fhpf > 10fswg. HPF 212 may be implemented by a first-order RC (or higher-order) RC filter or an LR filter. As another option, when the signal is already digitized, HPF 212 can be implemented in software, or the signal can be digitized using ADC 214 and a digital filter can be applied.

[0038] The analog-to-digital converter (ADC) 214 is an electrical block that converts an analog signal into a digital signal. ADC 214 may only be required when the signal has not yet been digitized by HPF 212 as described above. The output of ADC 2114 may contain a data stream (e.g., a byte or, if more than 8 bits, a word). The data stream may have a sampling rate frequency fadc. The data stream is successively stored in two different memory arrays, namely MUP 222 and MDW 224, depending on which memory array is selected by UDS 220. In addition to receiving the data stream from ADC 214 as an input, UDS 220 also receives a positive transition pulse.

[0039] The positive edge detector (PED) 216 is an electrical or software block that receives a rectangular wave signal as an input, detects the rising time (positive transition) of the input, and outputs a pulse. The duration of the output pulse is usually one-tenth of the input period and is used as an input to a monostable block that inverts the binary value for each pulse. The typical duration of the output pulse is several hundred nanoseconds.

[0040] The bistable (BIS) 218 is an electrical component or software module that inverts the output of a binary value (i.e., between 0 and 1) each time it receives an input pulse. BIS 218 can be implemented with a logical divisor by 2. For example, BIS 218 may be implemented as a T flip-flop or a D flip-flop with feedback. Alternatively, BIS 218 can also be implemented as a software module. Or, BIS 218 has a time constant T d =R d ·C d that is at least one order of magnitude smaller than the input period (P i ). That is, in this case, T d <<P i .

[0041] The up-down switch controller (UDS) 220 is typically a software module, but can also be implemented as a hardware analog switch. In embodiments where UDS 220 is a hardware component, two ADCs 214 can be used. In this case, one ADC 214 is used for each of the memories MUP 222 and MDW 224. UDS 220 can be configured to direct or redirect the data stream from the ADC 214 to one of two memory arrays, namely MUP 222 or MDW 224, depending on the output of BIS 218. For example, if the output is 1, the data stream is redirected to MUP 222. If the output is 0, the data stream is redirected to MDW 224.

[0042] The memory upside (MUP) 222 is designed to store a byte data stream from UDS 220 in an array of length k. After the array 222 is filled with k elements, subsequent elements overwrite the past elements starting from the first position. Alternatively, MUP 222 may be implemented as a shift register of length k.

[0043] The Memory Downside (MDW) 224 is equivalent to the MUP222 but is connected to a different output of the UDS220. Thus, the MDW224 is designed to store a byte data stream from the UDS220 into an array of length k. After the array 224 is filled with k elements, subsequent elements overwrite the past elements starting from the first position. Alternatively, the MDW224 can also be implemented as a shift register of length k.

[0044] The Negative Edge Detector (NED) 226 is an electrical or software block that receives a rectangular wave signal as input and outputs a short pulse only during the rising time (positive transition) of the input. The duration of the output pulse is typically one-tenth of the input period and is used to power a monostable block that toggles for each pulse. The typical duration of the output pulse is several hundred nanoseconds.

[0045] The Output Sampling Block (SMP) 228 is an electrical component or software module that includes a trigger input (from the NED226), two memory array inputs (MUP222 and MDW224), and one memory array output (ME230). After a pulse is received as a trigger input from the NED226, the SMP228 reads the memory arrays MUP222 and MDW224, subtracts the elements of MUP222 from the elements of the array MDW224, and stores the result in the array ME230 for each element. Formally, let: k u be the length of the array MUP222. k d be the length of the array MDW224. k e be the length of the array ME. Here, k u = k d = k e = k. Further, let: Kmup[n] be the element "n" of the array MUP. Kmdw[n] be the element "n" of the array MDW. Kme[n] is the element "n" of array ME. After triggering, it becomes as follows: Kme[n]=Kmup[n]-Kmdw[n] (where 0≦n≦k)

[0046] Output memory (ME) 230 is an array memory of the same length (e.g., k) as MUP 222 and MWD 224. ME 230 is filled by SMP 228 as described above (i.e., ME 230 is filled by the difference between MUP 222 and MDW 224). Formally, ME 230 contains, for each element, a value of Kme[n]=Kmup[n]-Kmdw[n] (where 0≦n≦k). Thus, ME 230 contains the entropy (randomness) extracted from the Barkhausen signal and can be used for various quantum processes that require a true random number data stream.

[0047] FIG. 3 is a perspective view showing an exemplary configuration of a Barkhausen inductor for generating a Barkhausen effect signal according to an embodiment of the subject matter described herein. Referring to FIG. 3, a first embodiment 300 of a Barkhausen inductor includes a ferromagnetic core 302 surrounded by a magnetization coil 304 and a magnetic flux detection coil 306. As described above, capturing the resulting Barkhausen signal involves applying a changing magnetizing force to the ferromagnetic material and measuring the change in magnetic flux of the ferromagnetic material. The measurement voltage (V(LB)) applied to the Barkhausen inductor is the result of random fluctuations in the voltage applied to the Barkhausen inductor related to the Barkhausen effect and is a signal representing entropy or randomness.

[0048] A second embodiment 308 includes a toroidal ferromagnetic core 310 surrounded by a single magnetization and magnetic flux detection coil 312. As described above, coil 312 is configured to magnetize and demagnetize the ferromagnetic core and measure the change in magnetic flux of the ferromagnetic core. The toroidal core 310 may be less susceptible to external magnetic interference than the ferromagnetic core 302.

[0049] Figure 4 is a schematic diagram of a low-pass filter and the resulting waveform when applied to a square-wave generator signal, according to one embodiment of the subject matter described herein. Referring to Figure 4, the LPF circuit 400 may include a capacitor 402 and a current detector 404 in the illustrated configuration. When the circuit 400 is applied to a square wave, as shown in waveform 406, the fast rise time of the square wave is smoothed, resulting in a more linear rise time. The LPF circuit 400 functions as an integrator that supplies a ramp-up voltage to a Buckhausen inductor. During the positive phase 408 of the square wave, the signal rises, and during the negative phase 410 of the square wave, the signal falls. Also, it is understood that the square-wave generator preferably has a duty cycle, such as a 50 percent duty cycle, associated with maintaining symmetric charging and discharging phases of the Buckhausen inductor (LB). This symmetry is shown in waveform 406. In waveform 406, the maximum value is approximately 700 mV and the minimum value is approximately -700 mV.

[0050] The result is a random number with high entropy and can be understood to be usable for various applications. For example, the random number stored in step 120 can be used as an encryption key for performing an electronic payment transaction or for protecting electronic communications.

[0051] As will be understood by those skilled in the art, aspects of the present invention may be embodied as a system, method, or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.), or an embodiment combining software and hardware aspects, all of which may generally be referred to herein as a "circuit," "module," or "system." Furthermore, aspects of the present invention may take the form of a computer program product embodied on one or more computer-readable media having computer-readable program code embodied thereon.

[0052] Any combination of one or more computer-readable media may be utilized. The computer-readable media may be a computer-readable signal medium or a computer-readable storage medium (including, but not limited to, a non-transitory computer-readable storage medium). The computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer-readable storage medium include an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. As used herein, the computer-readable storage medium is any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.

[0053] The computer-readable signal medium may include a propagated data signal having computer-readable program code embodied therein, for example, as part of a baseband or as a carrier wave. Such a propagated signal may take any form including, but not limited to, an electromagnetic, optical, or any suitable combination thereof. The computer-readable signal medium is any computer-readable medium that is not a computer-readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.

[0054] The program code embodied on the computer-readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.

[0055] The computer program code for performing operations for aspects of the present invention may be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, Smalltalk, C++, and conventional procedural programming languages such as the "C" programming language. The program code may be executed entirely on the user's computer, may be executed partially on the user's computer as a stand-alone software package, may be executed partially on the user's computer and partially on a remote computer, or may be executed entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0056] Aspects of the present invention will be described below with reference to the flowchart diagrams and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present invention. It will be understood that each block of the flowchart diagrams and / or block diagrams, and combinations of blocks in the flowchart diagrams and / or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to create a machine that implements the means for performing the functions / acts specified in one or more blocks of the flowchart and / or block diagram.

[0057] These computer program instructions can be stored in a computer-readable medium and cause a computer, other programmable data processing apparatus, or other device to function in a particular manner, such that the instructions stored in the computer-readable medium produce a manufacture including instructions for implementing the functions / acts specified in one or more blocks of the flowchart and / or block diagram. They can also be stored in a computer-readable medium that can direct a computer, other programmable data processing apparatus, or other device to function in a particular manner.

[0058] Alternatively, the computer program instructions can be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device, and to generate a computer-executed process for implementing the functions / acts specified in one or more blocks of the flowchart and / or block diagram.

[0059] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagram may represent a module, segment, or portion of code, which contains one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative embodiments, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, depending upon the related functionality, or may sometimes be executed in the reverse order. It should also be noted that each block of the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

[0060] The terms used in this specification are for the purpose of describing particular embodiments only and are not intended to limit the present invention. As used in this specification, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. Further, as used in this specification, the terms "comprises" and / or "comprising" identify the presence of the described features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0061] All means or step plus function elements corresponding structures, materials, acts, and equivalents in the following claims are intended to include any structure, material, or act for performing the functions in combination with other elements specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limiting of the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. Embodiments were chosen and described in order to best explain the principles of the invention and its practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.

[0062] The description of various embodiments of the present invention has been presented for purposes of illustration, but is not intended to be exhaustive or limiting of the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used in this specification were chosen in order to best explain the principles of the embodiments, the practical application or technical improvement to technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

Brief Description of the Drawings

[0063]

Figure 1

Figure 2

Figure 3

Figure 4

Claims

1. A method comprising: applying a changing magnetic field to a ferromagnetic material and capturing a Barkhausen signal (BS) based on measuring a change in magnetic flux, wherein the changing magnetic field is based on an oscillation signal, wherein the BS includes a random component and a non-random component, the method further comprising: converting the BS into a digital data stream; and storing the data stream in one of two memory arrays based on the oscillation signal, wherein a first portion of the data stream is stored as one or more elements in a first memory array and a second portion of the data stream is stored as one or more elements in a second memory array, the method further comprising: subtracting elements of the first memory array from elements of the second memory array based on the oscillation signal; and storing a result of the subtraction, wherein the result includes the random component and removes the non-random component.

2. The method of claim 1, wherein the oscillation signal is a rectangular wave.

3. The method of claim 2, wherein the rectangular wave is set to maintain a symmetric charging phase and a discharging phase of a Barkhausen inductor.

4. The method of claim 2, wherein the rectangular wave has a frequency band from 1 kHz to 1 MHz.

5. The method of claim 2, wherein the rectangular wave has a frequency band less than one tenth of a maximum spectrum of the BS.

6. The method of claim 2, further comprising smoothing a rise time of the rectangular wave.

7. The method of claim 1, wherein applying a changing magnetizing force to the ferromagnetic material includes magnetizing the ferromagnetic material to a first polarity and demagnetizing the ferromagnetic material.

8. The method of claim 1, further comprising reverse magnetizing the ferromagnetic material, wherein reverse magnetizing includes magnetizing the ferromagnetic material to a second polarity opposite to the first polarity.

9. The method of claim 1, wherein measuring a change in magnetic flux of the ferromagnetic material includes detecting a voltage resulting from random fluctuations of a voltage related to the Barkhausen effect.

10. The method of claim 1, wherein the Barkhausen inductor includes at least one coil surrounding a ferromagnetic core.

11. The method according to claim 10, wherein the ferromagnetic core has a toroidal structure.

12. The Barkhausen inductor includes a first coil surrounding the ferromagnetic core, The method according to claim 10, wherein the first coil is configured to magnetize and demagnetize the ferromagnetic core and measure a change in magnetic flux of the ferromagnetic core.

13. The Barkhausen inductor includes a first coil and a second coil surrounding the ferromagnetic core, The first coil is isolated from the second coil, The method according to claim 10, wherein the first coil is configured to magnetize and demagnetize the ferromagnetic core, and the second coil is configured to measure a change in magnetic flux of the ferromagnetic core.

14. The first memory array of the two memory arrays includes a memory upside (MUP) of length k, The MUP is connected to a first output and is configured to store the digital data stream starting from an initial position, The method according to claim 1, wherein when the first memory array is full, the MUP overwrites the first memory array starting from the initial position.

15. The method according to claim 1, wherein the first memory array of the two memory arrays includes a shift register of length k.

16. The second memory array of the two memory arrays includes a memory downside (MDW) of length k, The MDW is connected to a second output and is configured to store the digital data stream starting from an initial position, The method according to claim 1, wherein when the second memory array is full, the MDW overwrites the second memory array starting from the initial position.

17. The method according to claim 1, wherein the second memory array of the two memory arrays includes a shift register of length k.

18. Generating a pulse in response to detection of a positive transition of the oscillation signal by a positive edge detector (PED); Generating a pulse in response to detection of a negative transition of the oscillation signal by a negative edge detector (NED); The method according to claim 1, further comprising.

19. The method according to claim 18, wherein the duration of the pulse is about one tenth of the period of the oscillation signal.

20. Receiving a series of pulses from the PED; Generating a binary output value opposite to a previous binary output value in response to reception of each of the pulses; The method according to claim 18, further comprising.

21. The method according to claim 20, wherein storing the result includes storing it element by element in an output memory array (ME).

22. The method according to claim 1, wherein the result is used for execution of an electronic payment transaction.

23. The method according to claim 1, wherein the result is used as an encryption key for protecting electronic communication.

24. A system, Comprising a Barkhausen inductor for applying a magnetic field that changes to a ferromagnetic material and capturing a Barkhausen signal (BS) based on measuring a change in magnetic flux, Wherein the changing magnetic field is based on an oscillation signal, Wherein the BS includes a random component and a non-random component, The system, A digitization module for converting the BS into a digital data stream, A memory upside array and a memory downside array for storing the data stream based on the oscillation signal, A first portion of the digital data stream is stored as one or more elements in the memory upside array, A second portion of the data stream is stored as one or more elements in the memory downside array, The system, An output sampling module for subtracting elements of the memory upside array from elements of the memory downside array based on the oscillation signal, An output memory for storing the result of the subtraction, The system, wherein the result includes the random component and removes the non-random component.

Citation Information

Patent Citations

  • Method and device for inspecting magnetic head

    JP2000163722A

  • Method and apparatus for modifying an audio signal

    US20100316240A1