This invention relates to electronic circuits, and more specifically to a pseudorandom number generator.
Radio frequency identification (RFID) has become an increasingly important technology with a variety of applications, such as security and inventory. In a typical RFID system, an RFID reader continuously emits an RF interrogation signal. An RFID tag (or transponder) that is within vicinity can receive the RF interrogation signal using an RF antenna. The received RFID interrogation signal can be processed within an integrated circuit (IC) within the RFID tag, and the RFID tag can transmit a response signal via the RF antenna to the RFID reader. The response signal can include identification information about the RFID tag, such as based on a unique code. In a passive RFID tag, the processing and the generation of the response signal can be powered by storing and releasing the energy of the received RFID interrogation signal. As a result, passive RFID tags can be manufactured without an active power source, thus permitting the manufacture of RFID tags with a small form-factor.
Some RFID tags can include a pseudorandom number generator (PRNG) to generate pseudorandom numbers that are implemented for a variety purposes. As an example, an RFID reader that transmits an RFID interrogation signal to multiple RFID tags may need to be able to distinguish the RF response signals from each other. Thus, each of the RFID tags may employ a pseudorandom number as part of the respective RF response signals. For instance, an RFID tag can use a pseudorandom number as a key for encryption, when transmitting its own information. Additionally, or alternatively, the pseudorandom can be utilized in timing the response signal to mitigate collisions between responses generated at two or more separate RFID tags.
One embodiment of the invention includes a pseudorandom number generator (PRNG) for generating pseudorandom numbers for a radio frequency identification (RFID) tag. The PRNG includes an analog portion configured to generate a pseudorandom number seed having a value that varies based on sampling a received RF signal. A digital portion is configured to generate a pseudorandom number based on the pseudorandom number seed generated by the analog portion.
Another embodiment of the invention includes a method of generating pseudorandom numbers within a passive RFID tag. The method includes receiving a radio frequency (RF) signal via an antenna and providing a first analog clock signal based on detecting analog RF signal corresponding to the received RF signal. A second analog clock signal is generated by an oscillator that is powered in response to the RF signal, the second analog clock signal having a frequency that is less than a frequency of the first clock signal. The first analog clock signal is sampled according to the second analog clock signal to generate a pseudorandom number seed. Digital logic operations are performed on the pseudorandom number seed to generate a pseudorandom number.
Another embodiment of the invention includes an RFID tag. The RFID tag includes means for receiving an RFID interrogation signal. The RFID tag also includes means for generating a pseudorandom number seed having a value that varies based on sampling an analog signal derived from the received RFID interrogation signal. The RFID tag also includes means for generating a pseudorandom number by performing digital logic operations on the pseudorandom number seed.
The invention relates to electronic circuits, and more specifically to a pseudorandom number generator (PRNG). The PRNG can be implemented in an RFID tag (or transponder), such that the pseudorandom number can be generated and utilized in connection with an RF response signal from the RFID tag. The PRNG can include an analog portion and a digital portion. The analog portion can include a gate that obtains samples of an RF signal (e.g., a received RFID interrogation signal) according to an analog clock signal generated from an oscillator. The oscillator can be intentionally configured to be unstable or in accurate, such as by utilizing inexpensive components, thus providing an additional randomness to the generation of the pseudorandom numbers. The samples of the RF signal can be multi-bit, and can be provided to a buffer that shifts the samples into a linear feedback shift register (LFSR) residing in a digital portion of the PRNG. Thus, the digital samples of the RF signal are used to generate a seed for the LFSR. The LFSR therefore digitally generates a pseudorandom number from the seed. As a result, the PRNG combines the benefits of analog and digital pseudorandom number generation, such that a seed for the LFSR is pseudorandomly generated in an analog manner for the digital generation of a resultant pseudorandom number.
The RFID tag 14 can be configured as a passive RFID tag, and can thus be configured without a dedicated power source, such as a battery. In the example of
As an example, the logic component 26 can access a memory 28 to obtain a unique identification code (UID), which can be modulated into the response. In addition, in the example of
The PRNG 30 can be configured to generate the pseudorandom number based on processing performed in both the analog domain and the digital domain. As an example, the PRNG 30 can include an analog portion configured to generate a first pseudorandom number based on sampling a high-frequency RF signal, such as an analog signal derived from the RFID interrogation signal 18. Specifically, the carrier frequency of the RFID interrogation signal 18, such as provided by the high-speed oscillator 22 included in the RFID reader 12, can be detected from the RFID interrogation signal. The corresponding signal can be sampled according to a sampling frequency that is lower than the frequency signal derived from the RFID interrogation signal. The sampling frequency can be provided by a clock signal provided by an analog oscillator, such as may be powered internally from the received RFID signal. The resulting samples can be stored or buffered as to generate a seed having a value that varies based on received RFID signal and the sampling frequency the generation of the pseudorandom number. The seed can then be provided to a digital portion of the PRNG 30 that is configured to perform digital logic operations, such as via an LFSR, on the seed to generate the resultant pseudorandom number. As a result, the PRNG 30 can generate the pseudorandom number in a less predictable manner by generating a seed in an analog manner and generating the pseudorandom number from the seed in a less power intensive digital manner.
Upon generating the response, the logic component 26 provides the response to the AFE 24, which is thus configured to modulate the response for transmission. As a result, the RFID tag 14 transmits an RF response signal 32 back to the RFID reader 12. The RFID reader 12 can thus receive and demodulate the RF response signal 32 at the transceiver 20. The information that is contained within the response is thus provided to the controller 16. For example, the controller 16 can verify a UID to allow or deny access to a secured region, can increment or decrement inventory counters, and/or can provide a monetary transaction. Furthermore, the controller 16 can also receive a pseudorandom number as part of the response (e.g., for encryption or identification purposes). such that the controller 16 can distinguish the RFID tag 14 from other RFID tags that likewise received the RFID interrogation signal 18. Alternatively or additionally, the pseudorandom number can be employed by the logic 26 or other control circuitry in the RFID tag 14 to control the timing when the RF response signal 32 is transmitted.
It is to be understood that the RFID system 10 is not intended to be limited to the example of
The RFID tag 50 includes an AFE 52. The AFE 52 includes an antenna 54 configured to receive RFID interrogation signals and to transmit RF response signals in response to the RFID interrogation signals. Because the RFID tag 50 can be configured as a passive RFID tag, the energy from a received RFID interrogation signal can be provided to a power storage device (not shown) to provide power to the RFID tag 50. In addition, the received RFID interrogation signal is provided to a demodulator 56 that is configured to demodulate the received RFID interrogation signal. The demodulated RFID interrogation signal is then provided to a logic component 58 that is configured to process the RFID interrogation signal.
In response to receiving the RFID interrogation signal, the logic component 58 can access a memory 60 to obtain a UID 62 that is stored within the memory 60. In addition, the logic component 58 can provide a request to a PRNG 64 to generate a pseudorandom number, demonstrated in the example of
As a further example, the analog portion 66 can include an oscillator that provides a sampling clock signal at a sampling frequency to obtain samples of the detector output signal. For instance, the samples can be obtained at each cycle of an analog signal that is generated by the oscillator. The oscillator can have a frequency that is substantially less than analog signal provided from the detector 70, and the digital samples that are generated can be provided at a specific, desired resolution. For example, the digital samples can be single-bit samples or can be multi-bit samples (e.g., two-bits, three-bits or more). The digital samples can thus form a pseudorandom number seed that is provided to the digital portion 68. The digital portion 68 can therefore digitally generate the pseudorandom number RAN_NUM based on the pseudorandom number seed. As an example, the digital portion 68 can include an LFSR that is shifted based on stimulus from the logic component 58, or from a dedicated oscillator or logic state-machine of the RFID tag 50.
Upon receiving the UID 62 and the pseudorandom number RAN_NUM, the logic component 58 can generate a response to the RFID interrogation signal. The response can include both the UID 62. The response may also include or be encrypted based on the pseudorandom number RAN_NUM, as well as any of a variety of additional information. The response is provided to a modulator 72 that is configured to modulate the response as an RF response signal which is transmitted from the RFID tag 50 via the antenna 54. The timing of the response signal being transmitted from the RFID tag 50 also may vary as a function of the pseudorandom number RAN_NUM. As a result, the associated RFID reader can receive the RF response signal and process it appropriately, such as described above in the example of
It is to be understood that the RFID tag 50 is not limited to the example of
The PRNG 100 includes an analog portion 102 and a digital portion 104. The analog portion 102 includes an oscillator 106 and a gate 108. The oscillator 106 is activated based on an enable signal EN. As an example, the enable signal EN can be provided from the logic component 58, or can be directly coupled to the power storage device, such that it is asserted to activate the oscillator 106 in response to the RFID tag 50 being provided with power (e.g., from an RFID interrogation signal). The gate 108 can be configured as any of a variety of data capture or sampling devices. For example, the gate 108 can be configured as a latch or a flip-flop.
The oscillator 106, upon being activated by the enable signal EN, is configured to provide a clock signal SLOW_CLK to the gate 108. A detector 110 may also be included as part of the analog portion 102. Alternatively, the detector 110 may be implemented as part of an AFE of an RFID tag incorporating the PRNG 100. The detector 110 provides an analog fast clock signal (FAST_CLK) to the oscillator, which can be generated or derived from an RF signal, such as an RFID interrogation signal. As an example, the clock signal FAST_CLK can be a high-frequency (e.g., approximately 900 MHz) signal that is provided from the detector 110, thus having a frequency corresponding to the RFID interrogation signal that is provided from an RFID reader (e.g., the reader 12 of
The gate 108 can be configured to provide the digital samples SMPLS at a desired resolution. For example, the clock signal FAST_CLK can be sampled at a resolution of three bits per cycle of the clock signal SLOW_CLK. The digital samples SMPLS are provided to a buffer 112 in the digital portion 104. The buffer 112 can be configured as a shift register having a width that is commensurate with the number of bits of the digital samples SMPLS. For example, for three-bit digital samples SMPLS of the clock signal FAST_CLK, the buffer 112 can be configured as a three-bit shift register. The digital samples SMPLS stored in the buffer 112 can thus be shifted into an LFSR 114 that is likewise included in the digital portion 104. For example, the buffer 112 can be shift the digital samples SMPLS serially into the LFSR 114 in response to a stimulus signal STIM. As an example, the stimulus signal STIM can be provided from the logic component 58, and can also be provided to shift bits through the LFSR 114. As another example, the buffer 112 can be shifted by a separate signal, which could have a frequency that differs from the stimulus signal STIM. Furthermore, it is to be understood that the buffer 112 is not limited to serially loading the digital samples SMPLS into the LFSR 114. As an example, the buffer 112 can load the LFSR 114 with more than one bit at a time (e.g., three bits at a time shifted in parallel), and/or the bits can be provided via one or more logic gates to provide further variation of the digital samples SMPLS that are provided to the LFSR 114.
Based on the operation of the analog portion 102 in generating the pseudorandom digital samples SMPLS, the analog portion 102 is thus configured to generate a pseudorandom number that is provided as a seed to the LFSR 114 in the digital portion 104. The LFSR 114 is thus configured to generate a resultant pseudorandom number RAN_NUM from the seed. As an example, the LFSR 114 can include any of a variety of combinations of feedback gates, such as XOR gates, located in various numbers at various bit locations in the LFSR 114. The pseudorandom number RAN_NUM is thus output from the PRNG 100 to the logic component 58, such that it can be transmitted in the RF response signal.
Based on the operation of both the analog portion 102 in generating a pseudorandom number seed and the digital portion 104 in generating a resultant pseudorandom number RAN_NUM from the seed, the PRNG 100 eliminates the need to inject a seed at manufacture or the need for storing a seed in a dedicated EEPROM. Accordingly, the PRNG 100 provides the benefit of die size reduction and reduced manufacturing costs. Additionally, the PRNG 100 provides the combined benefits of analog and digital pseudorandom number generation. Specifically, the PRNG 100 benefits from low-predictability based on the analog portion 102 and low-power consumption based on the digital portion 104.
It is to be understood that the PRNG 100 is not limited to the example of
In view of the foregoing structural and functional features described above, certain methods will be better appreciated with reference to
At 156, analog values of the RF signal are sampled at each cycle of the clock signal to generate a pseudorandom number seed. The sampling can be accomplished via a gate structure, such as a latch or flip-flop, having a predefined resolution (e.g., fixed number of one or more bits). For multi-bit resolution, the resultant digital samples can be stored in a buffer, such as a shift register with a width commensurate with the resolution. The pseudorandom number seed can include more than one consecutive digital sample. At 158, digital logic operations are performed on the pseudorandom number seed to generate a resultant pseudorandom number. The digital logic operations can result from the shifting operation of an LFSR. As such, the pseudorandom number seed can be moved into the LFSR all at once, or can be gradually shifted into the LFSR, such that the resultant pseudorandom number is generated as the pseudorandom number seed is shifted into the LFSR.
What have been described above are examples of the invention. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the invention, but one of ordinary skill in the art will recognize that many further combinations and permutations of the invention are possible. Accordingly, the invention is intended to embrace all such alterations, modifications, and variations that fall within the scope of this application, including the appended claims.