US4810975A - Random number generator using sampled output of variable frequency oscillator - Google Patents

Random number generator using sampled output of variable frequency oscillator Download PDF

Info

Publication number
US4810975A
US4810975A US07/083,583 US8358387A US4810975A US 4810975 A US4810975 A US 4810975A US 8358387 A US8358387 A US 8358387A US 4810975 A US4810975 A US 4810975A
Authority
US
United States
Prior art keywords
output
oscillator
variable frequency
voltage
frequency
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 - Lifetime
Application number
US07/083,583
Inventor
Donald R. Dias
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dallas Semiconductor Corp
Original Assignee
Dallas Semiconductor Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dallas Semiconductor Corp filed Critical Dallas Semiconductor Corp
Priority to US07/083,583 priority Critical patent/US4810975A/en
Assigned to DALLAS SEMICONDUCTOR CORPORATION reassignment DALLAS SEMICONDUCTOR CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST. Assignors: DIAS, DONALD R.
Priority to US07/265,732 priority patent/US4855690A/en
Application granted granted Critical
Publication of US4810975A publication Critical patent/US4810975A/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/023Generators characterised by the type of circuit or by the means used for producing pulses by the use of differential amplifiers or comparators, with internal or external positive feedback
    • H03K3/0231Astable circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
    • H03K3/03Astable circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
    • H03K3/03Astable circuits
    • H03K3/0315Ring oscillators
    • H03K3/0322Ring oscillators with differential cells
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/84Generating pulses having a predetermined statistical distribution of a parameter, e.g. random pulse generators

Definitions

  • This invention relates to electronic circuits, and more particularly, to electronic circuits for generating random numbers.
  • One such application is in secure data systems in which a serial stream of random digital bits is generated for creating new encryption keys.
  • Shown in an illustrated embodiment is a circuit for generating random numbers which includes a first voltage generator for generating a time-varying voltage at a first node.
  • a variable frequency oscillator generates an oscillation signal at a frequency determined by the voltage at the first node.
  • a sampling circuit samples the output of the oscillator at a rate which is independent of the oscillation frequency of the first voltage generator and the frequency of the digital oscillator wherein the output of the sampling circuit is a digital signal.
  • variable frequency oscillating signal is also generated, the frequency of the variable frequency oscillating signal being controlled by the time-varying voltage.
  • the variable frequency oscillating signal is sampled at a rate independent of the time-varying voltage and independent of the variable frequency oscillating signal.
  • FIG. 1 is a block diagram of an electronic key system including a random number generator circuit according to the present invention
  • FIG. 2 is a schematic diagram of the random number generator circuit of FIG. 1;
  • FIG. 3 is a waveform of the voltage out of the analog oscillator of FIG. 1;
  • FIG. 4 is the waveform of the voltage out of the VCO of FIG. 1.
  • the random number generator of the present invention may advantageously be used in an electronic key system.
  • a block diagram of a particular electronic key system containing a random number generator according to the present invention is shown in FIG. 1.
  • the random number generator is shown as block 10 and is contained within an electronic key 12.
  • a central processing unit (CPU) 14 which has connected to it a parallel port connecter 16 through which passes a plurality of data lines and other signal lines 17.
  • Connected to the parallel port connecter 16 is an interface circuit or key ring 18.
  • Connected to the output of the key ring 18 is another parallel port connecter 19 which in turn can be connected to printer 20.
  • a clock line 22 Connected between the key ring 18 and the electronic key 12 are four lines: a clock line 22, a data line 24, a reset line 26, and a ground line 28. These four lines 22-28 are connected to an interface circuit 29 within the electronic key 12.
  • the interface circuit 29 directs the four signals appearing on lines 22-28 to different portions of the electronic key 12.
  • the random number generator 10 utilizes only the clock signal line 30 out of the interface circuit 29, which is the same signal as on the line 22 during the generation of random numbers, the data line 24 which is coupled to the data signal line 31 during the generation of random numbers, and ground line 28 as will be discussed in detail below.
  • the data lines and other signals contained within the parallel port connector 16 out of the CPU 14 are passed directly to the printer 20 with the exception of the SLCTIN signal in the parallel port connector 16 which is used to provide data to and from the electronic key 12 on line 24. Since the SLCTIN signal is not used by peripheral printers, the key ring 18 directs this SLCTIN signal directly to line 24 leading into the electronic key 12 and disconnects the SLCTIN signal line from the peripheral device 20.
  • the other three lines, the clock line signal on line 22, the reset signal on line 26 and the ground signal on line 28, are tapped off lines which are connected between the CPU 14 and the printer 20.
  • the clock signal in the preferred embodiment is connected to the data out 3 (D3) line, and the reset on line 26 is tapped off the data out 2 (D2) line.
  • the ground connection is the ground line running in the parallel port connector 16.
  • the electronic key ring 18 can be suitably modified by means known to those skilled in the art for use in virtually any communications path such as the communications path between the CPU 14 and a nonvolatile memory device, for example a ROM, inside of the CPU 14; or attached to an RS232 serial port. In at least some of these configurations the electronic key ring 18 would require an additional predetermined serial bit stream from the CPU 14 to signal the electronic key ring 18 to route certain signal lines to circuitry embodied within the electronic key 10 rather than through the normal communication channel.
  • the CPU 14 when the CPU 14 wishes to read from or write to the electronic key 12, the CPU 14 provides a serial bit stream of 24 protocol bits to the data line 24 to activate the key and to indicate to the electronic key 12 to either receive data or to write data back to the CPU 14.
  • the protocol bits are clocked into and out of the electronic key 12 by the CPU 14 which provides a clock signal on the line 22 (which is the D3 line of the parallel port connector 16). Additional bits described hereafter--including identification bits, password bits, and data bits--are likewise clocked into and out of the CPU 14 by the clock signal on the line 22.
  • the reset line 26 Prior to this transmission of the 24 bits of protocol, the reset line 26 must be first held low and then raised to a logic 1 position to reset the electronic key 12 and to also provide power to the electronic key 12. Thus, the reset line 26 must be held high during the entire data transfer procedure.
  • the electronic key 12 returns 64 bits of an identification code which are passed back to the CPU 14 on line 24.
  • a password or access code of an additional 64 bits is sent by the CPU 14 to the electronic key 12. If the password is not correct, then the electronic key 12 returns 128 bits of random data to the CPU 14 if the protocol request was for the electronic key 12 to transfer data to the CPU 14. If the password is not correct and the protocol request was to write data from the CPU 14 to the electronic key 12, then the data from the CPU 14 will be ignored. If the password is correct, then the electronic key 12 will either send 128 bits of data to the CPU 14 or receive 128 bits of data from the CPU 14 depending on the exact configuration of the 24 protocol bits.
  • the electronic key 12 shown in FIG. 1 is able, first, to recognize a protocol command from a CPU 14; secondly, to provide an identification of the key to the CPU 14 for verification by the CPU 14 software that a valid key is attached to the CPU 14; thirdly, to accept and verify a password from the CPU 14; fourthly, to return random data or to ignore data sent from the CPU 14 if the password is incorrect; and finally, if the password is correct, to return secure data from the key to the CPU 14, which the CPU 14 may use in different ways, or to receive secure data from the CPU 14.
  • the software in the CPU needs to issue a plurality of false passwords to the electronic key 12 with a read request protocol so that an authentic request will be only one of several requests.
  • the random number generation feature of the electronic key 12 may be used to provide random numbers for the software for uses unrelated to data security.
  • an analog oscillator 32 provides a time varying voltage on line 33 to the input of a voltage controlled oscillator (VCO) 34 to thus modulate the frequency of the oscillator 34.
  • VCO voltage controlled oscillator
  • the digital output of the VCO 34 on line 36 is connected to the D input of a D latch 38.
  • the clock (C) input to the D latch 38 is connected to the clock line 30 which is inverted by an inverter 39 to produce the clock bar (C bar) input to the D latch 38.
  • the Q output of the D latch 38 is connected to line 31 which is selectively coupled to the data line 24 through the interface circuit 29.
  • an enable line 40 which is used to enable or disable the random number generator of block 10.
  • the electronic key 12 places an enable signal on line 40 to enable both the analog oscillator 32 and the VCO 34.
  • the analog oscillator provides a triangular waveform at its output 33 which then modulates the VCO 34 frequency so that it alternately ramps from its highest frequency to its lowest frequency and back to its highest frequency in accordance with the output from the analog oscillator 32.
  • This frequency varying signal at the output of the VCO 34 on line 36 is then coupled into the D input of the D latch 38 where it is sampled by the clock signal from line 30 which in turn is provided by the CPU 14. Following each sample, the data at the Q output of the D latch 38 is coupled through line 31 to the data line 24 and back to the CPU 14.
  • FIG. 3 The output of the analog oscillator 32 appearing on line 33 in the preferred embodiment is shown in FIG. 3. As can be seen in FIG. 3 the output on line 33 is a triangular waveform.
  • FIG. 4A and 4B is the output of the VCO 34 which appears on line 36.
  • FIG. 4A is an output of the oscillator 34 when it is at its highest frequency which is produced when the output of the analog oscillator 32 on line 33 is the most positive as shown as point 42 in FIG. 3.
  • FIG. 4B shows the output of the VCO 34 appearing on line 36 when the oscillator frequency is at its lowest, which corresponds to the lowest voltage from the analog oscillator 32 shown as point 44 in FIG. 3.
  • the frequency of the VCO 34 varies between 40 MHz and 80 MHz.
  • the waveform shown in FIG. 4A represents an 80 MHz oscillation out of the VCO 34.
  • the VCO provides an approximate sinusoidal waveform and is the approximate upper frequency limit of the VCO generated by the circuit shown in FIG. 2 with the present day technology.
  • FIG. 4B shows the output of the VCO 34 at its lowest frequency of 40 MHz in the preferred embodiment. At this frequency the signal looks much more like a digital waveform.
  • the analog oscillator frequency is approximately 128 KHz.
  • the frequencies disclosed above are selected and based, in part, on the clock frequency which will be produced by the CPU 14.
  • the average clock frequency produced by the data transfer method described above is approximately 500 KHz.
  • the time required to transfer 128 bits of serial data is approximately 256 microseconds, which in the preferred embodiment approximately corresponds to the period of the analog oscillator 32.
  • the VCO 34 is operating at a much greater frequency; thus the polarity of the signal generated at the Q output of the D latch 38 will be essentially random, since the output frequency of the VCO 34 will be varying continuously over the time required to transfer 128 bits of data from the D latch 38 and since the CPU clock is independent of the VCO 34.
  • the clock generated by the CPU 14 is not necessarily regular. While the CPU 14 generally has a crystal based internal oscillator, the CPU 14 itself may have interrupts and other functions which it performs during the data transfer process thereby disrupting the time intervals between successive clock pulses.
  • FIG. 2 a detailed schematic diagram is shown for the analog oscillator 32 and the VCO 34.
  • the oscillator enable signal on line 40 is inverted twice by a pair of series inverters 46 and 48.
  • the output of the inverter 48 is connected to the gate of a P-channel transistor 50 and the gate of an N-channel transistor 52 which are part of the analog oscillator circuit 32.
  • the source of transistor 50 is connected to the power supply voltage VCC, which typically is at +5.0 volts, and the drain of transistor 50 is connected to the source of another P-channel transistor 54.
  • the drain of the transistor 54 is connected to an internal node 56 and to the drain of the transistor 52 and to the drain of another N-channel transistor 58.
  • the source of the transistor 58 is connected to the gate and drain of another N-channel transistor 60, the source of which is connected to ground.
  • the source of the transistor 52 is also connected to ground.
  • the node 56 is connected to the gate of another P-channel transistor 62, the source and drain of which are connected together and to VCC thus forming a capacitor between VCC and node 56.
  • the node 56 is also connected to the input of two inverters, a first inverter 64 and a second inverter 66.
  • the output of the inverter 64 is connected to the input of another inverter 68, and the output of the inverter 68 is connected to a first input of a NAND gate 70.
  • the output of the inverter 66 is connected to a first input of a NAND gate 72.
  • the output of the NAND gate 72 is connected to the second input of the NAND gate 70, and the output of the NAND gate 70 is connected to the second input of the NAND gate 72 thereby forming an R-S flip-flop.
  • the output of the NAND gate 72 is also connected to the gates of the transistors 54 and 58.
  • the node 56 is also connected to the output line 33 of the analog oscillator circuit 32.
  • the output from the analog oscillator on line 33 is connected to the gates of nine N-channel transistors 74, 76, 78, 80, 82, 84, 86, 88, and 90.
  • the sources of the transistors 74-90 are connected to ground.
  • Connected to the drain of the transistor 74 is the source of another N-channel transistor 92.
  • Connected to the drain of the transistor 92 is the drain of a P-channel transistor 94.
  • the source of the P-channel transistor 94 is connected to VCC.
  • the gates of the transistors 92 and 94 are connected to a feedback node 96.
  • the transistors 74, 92 and 94 form the first stage of a nine stage ring oscillator.
  • the common drain connection of the transistors 92 and 94 are connected to the gates of a P-channel transistor 98 and an N-channel transistor 100 which together with transistor 76 form the second stage of the nine stage ring oscillator.
  • the transistors 98 and 100 are connected in the same manner as transistors 94 and 92, and the output at the common drain connection of the transistors 98 and 100 is connected to the gates of a P-channel transistor 102 and an N-channel transistor 104.
  • the transistors 102 and 104 and 78 are connected in the same manner as transistors 94 and 92 and 74, and the output at the common drain connection of the transistors 102 and 104 is connected to the gates of a P-channel transistor 106 and an N-channel transistor 108.
  • Transistors 102, 104, and 78 thus form the third stage of the nine stage ring oscillator.
  • the transistors 106 and 108 and 80 are connected in the same manner as transistors 94 and 92 and 74, and the output at the common drain connection of the transistors 106 and 108 is connected to the gates of a P-channel transistor 110 and an N-channel transistor 112. Transistors 106, 108, and 80 thus form the fourth stage of the nine stage ring oscillator.
  • the transistors 110 and 112 and 82 are connected in the same manner as transistors 94 and 92 and 74, and the output at the common drain connection of the transistors 110 and 112 is connected to the gates of a P-channel transistor 114 and an N-channel transistor 116. Transistors 110, 112, and 82 thus form the fifth stage of the nine stage ring oscillator.
  • the transistors 114 and 116 and 84 are connected in the same manner as transistors 94 and 92 and 74, and the output at the common drain connection of the transistors 114 and 116 is connected to the gates of a P-channel transistor 118 and an N-channel transistor 120. Transistors 114, 116, and 84 thus form the sixth stage of the nine stage ring oscillator.
  • the transistors 118 and 120 and 86 are connected in the same manner as transistors 94 and 92 and 74, and the output at the common drain connection of the transistors 118 and 120 is connected to the gates of a P-channel transistor 122 and an N-channel transistor 124. Transistors 118, 120, and 86 thus form the seventh stage of the nine stage ring oscillator.
  • the transistors 122 and 124 and 88 are connected in the same manner as transistors 94 and 92 and 74, and the output at the common drain connection of the transistors 122 and 124 is connected to the gates of a P-channel transistor 126 and an N-channel transistor 128. Transistors 122, 124, and 88 thus form the eighth stage of the nine stage ring oscillator.
  • the transistors 126 and 128 and 90 are connected in the same manner as transistors 94 and 92 and 74. Transistors 126, 128, and 90 thus form the ninth stage of the nine stage ring oscillator.
  • the common drain connection of the transistors 126 and 128 is connected to the feedback node 96 and also to the gates of a P-channel transistor 130 and an N-channel transistor 132 which form an inverter. That is, the source of the transistor 130 is connected to VCC, and the source of the transistor 132 is connected to ground.
  • the drains of the transistors 130 and 132 are connected to the gates of another P-channel transistor 134 and an N-channel transistor 136.
  • the source of the P-channel transistor 134 is connected to VCC and the source of the transistor 136 is connected to the drain of another N-channel transistor 138, the source of which is connected to ground.
  • the drains of the transistors 134 and 136 are connected to the drain of P-channel transistor 140, the source of which is connected to VCC.
  • the gates of the transistors 138 and 140 are connected to the output of an inverter 142, the input of which is connected to the output of the inverter 48.
  • the common drain connection of the transistors 134, 136, and 140 is connected to the output line 36 of the VCO 34. As shown in both FIG. 1 and FIG. 2, the output line 36 is connected to the D input of the D latch 38.
  • Each of the transistors illustrated in FIG. 2 is of the enhancement mode type; and the magnitude of the threshold voltage for each of the transistors is typically approximately 1.0 volt.
  • the operation of the analog oscillator 32 is next described with reference to the detailed circuit shown in FIG. 2.
  • the oscillator enable signal on line 40 is low (a logic 0 level)
  • the voltage on the gates of the transistors 52 and 50 will be near ground which will enable or make conductive the P-channel transistor 50 but disable, or make nonconductive, the N-channel transistor 52.
  • the logic level at the output of the NAND gate 72 is high (a logic 1 level at that time, then transistor 58 will be enabled which will in turn tend to discharge the node 56 towards ground at a rate determined by the drain current characteristics of the transistors 58 and 60 and the capacitance of the transistor 62.
  • the term "low logic level” or “logic 0 level” means a logic level having a voltage near ground
  • the term “high logic level” or “logic 1 level” means a logic level having a voltage near VCC.
  • the high logic level at the output of the NAND 72 will disable the transistor 54, thus isolating node 56 from VCC. Conversely if the output of the NAND gate 72 is at a logic 0 level, near ground, then the transistor 54 will be enabled and transistor 58 will be disabled and the node 56 will be charged toward VCC at a rate determined by the drain current characteristics of the transistors 50 and 54 and the size of the capacitor formed by the transistor 62.
  • the output of the NAND gate 72 is at a logic 0 level, then the node 56 will begin charging toward VCC until the threshold or trip point of the inverter 66 is reached, at which point the output of the inverter 66 will become a low logic level to thereby force the output of the NAND gate 72 to a high logic level.
  • the high logic level at the output of the NAND gate 72 will then disable the transistor 54 but enable the transistor 58 to thereby cause the node 56 to begin to discharge toward ground.
  • the trip points of the inverters 64 and 66 are not at the same voltage, but rather the trip point for the inverter 66 is approximately +4 volts and the trip point for the inverter 64 is approximately +2 volts.
  • the voltage on the node 56 will continue to increase until it reaches the trip point of the inverter 66, about +4 volts in the preferred embodiment, at which time the output of the inverter 66 will switch to a logic 0 level, causing the output of the NAND gate 72 to switch to a logic 1 level and to thereby repeat the cycle.
  • the voltage at the node 56 in the preferred embodiment switches between +2 volts and +4 volts, and since the conducting transistors 54 and 58 each operate in essentially a constant current condition, the voltage at the node 56 will be the triangular waveform shown in FIG. 3.
  • This triangular waveform at the output of the analog oscillator 32 appearing on line 33 is used to vary the conductivity of the lower N-channel transistors on each of the nine stages of the ring oscillator in the VCO 34.
  • the switching speeds of each of the individual stages of the ring oscillator increases, thereby causing the frequency of oscillation of the ring oscillator to increase.
  • the voltage on line 33 and on the gates of the transistors 74-90 decreases the oscillator frequency is caused to decrease.
  • the inverter stage consisting of the transistors 130 and 132 serves to amplify and square up the output of the ring oscillator.
  • a second buffer stage consisting of transistors 134 and 136 also performs this function.
  • the transistors 138 and 140 operate to disable the output of the VCO 34 when the enable line 40 is at a logic 1 level. Under this condition the gates of the transistors 138 and 140 will be held low which will cause the transistor 140 to be conductive and cause the transistor 136 to be nonconductive, thereby causing the voltage on line 36 to be held to VCC.
  • the enable line 40 voltage When the enable line 40 voltage is at a logic 0, though, the voltage on the gates of the transistors 138 and 140 will be at a logic 1 which will cause the transistor 138 to be conductive and the transistor 140 to be nonconductive, thereby allowing the transistors 134 and 136 to operate as an inverter.
  • the D latch 38 is edge triggered.
  • the logic level at the D input at the time of the rising edge of the clock line 30 is passed to the Q output, and the Q output will remain at that level until the next rising edge of the clock line 30.
  • the D latch 38 is well known in the art and is not shown here in detail for the sake of brevity.

Abstract

A random number generator designed for use with an electronic key uses a triangular output analog oscillator to vary the frequency of a higher frequency voltage controlled oscillator. The output of the voltage controlled oscillator is sampled at a rate much less than the rate of oscillation of the voltage controlled oscillator to produce random digital values.

Description

REFERENCE TO RELATED APPLICATION
Reference is made to a related application entitled Electronic Key Security Method and Apparatus, Ser. No. 083,582, filed Aug. 10, 1987, in the names of Lee, Robert D. et al. That application discloses and claims a method for enhancing the security of an electronic key system by having the electronic key return random data when the electronic key receives a request for secure data with an invalid password.
TECHNICAL FIELD
This invention relates to electronic circuits, and more particularly, to electronic circuits for generating random numbers.
BACKGROUND OF THE INVENTION
It is desirable to generate random numbers or random data for various applications in electronic circuits. One such application is in secure data systems in which a serial stream of random digital bits is generated for creating new encryption keys.
Various methods have been used in the past to generate random numbers. Some of these methods generate essentially true random numbers as, for instance, circuits which amplify the shot noise in a resistor; and some circuits produce pseudo-random numbers using computer algorithms. However, with electronic keys, which tend to be small circuit modules having one or two integrated circuits, there is not a lot of chip area available on which to fabricate a random number generator.
Therefore, it can be appreciated that a random number generator circuit which produces random numbers on a relatively small area of an integrated circuit is highly desirable.
SUMMARY OF THE INVENTION
It is, therefore, an object of this invention to produce a random number generator circuit which produces a serial stream of essentially random digital bits and which can be fabricated on a relatively small area of an integrated circuit chip.
Shown in an illustrated embodiment is a circuit for generating random numbers which includes a first voltage generator for generating a time-varying voltage at a first node. A variable frequency oscillator generates an oscillation signal at a frequency determined by the voltage at the first node. A sampling circuit samples the output of the oscillator at a rate which is independent of the oscillation frequency of the first voltage generator and the frequency of the digital oscillator wherein the output of the sampling circuit is a digital signal.
Also shown in an illustrated embodiment is a method for generating random numbers in which a time-varying voltage is generated. A variable frequency oscillating signal is also generated, the frequency of the variable frequency oscillating signal being controlled by the time-varying voltage. The variable frequency oscillating signal is sampled at a rate independent of the time-varying voltage and independent of the variable frequency oscillating signal.
BRIEF DESCRIPTION OF THE DRAWINGS
The aforementioned and other features, characteristics, advantages, and the invention in general will be better understood from the following, more detailed description taken in conjunction with the accompanying drawings in which:
FIG. 1 is a block diagram of an electronic key system including a random number generator circuit according to the present invention;
FIG. 2 is a schematic diagram of the random number generator circuit of FIG. 1;
FIG. 3 is a waveform of the voltage out of the analog oscillator of FIG. 1; and
FIG. 4 is the waveform of the voltage out of the VCO of FIG. 1.
It will be appreciated that for purposes of clarity and where deemed appropriate, reference numerals have been repeated in the figures to indicate corresponding features.
DESCRIPTION OF THE PREFERRED EMBODIMENT
The random number generator of the present invention may advantageously be used in an electronic key system. A block diagram of a particular electronic key system containing a random number generator according to the present invention is shown in FIG. 1. The random number generator is shown as block 10 and is contained within an electronic key 12. Also shown in FIG. 1 is a central processing unit (CPU) 14 which has connected to it a parallel port connecter 16 through which passes a plurality of data lines and other signal lines 17. Connected to the parallel port connecter 16 is an interface circuit or key ring 18. Connected to the output of the key ring 18 is another parallel port connecter 19 which in turn can be connected to printer 20. Connected between the key ring 18 and the electronic key 12 are four lines: a clock line 22, a data line 24, a reset line 26, and a ground line 28. These four lines 22-28 are connected to an interface circuit 29 within the electronic key 12. The interface circuit 29 directs the four signals appearing on lines 22-28 to different portions of the electronic key 12. The random number generator 10 utilizes only the clock signal line 30 out of the interface circuit 29, which is the same signal as on the line 22 during the generation of random numbers, the data line 24 which is coupled to the data signal line 31 during the generation of random numbers, and ground line 28 as will be discussed in detail below.
In the preferred embodiment, the data lines and other signals contained within the parallel port connector 16 out of the CPU 14 are passed directly to the printer 20 with the exception of the SLCTIN signal in the parallel port connector 16 which is used to provide data to and from the electronic key 12 on line 24. Since the SLCTIN signal is not used by peripheral printers, the key ring 18 directs this SLCTIN signal directly to line 24 leading into the electronic key 12 and disconnects the SLCTIN signal line from the peripheral device 20.
The other three lines, the clock line signal on line 22, the reset signal on line 26 and the ground signal on line 28, are tapped off lines which are connected between the CPU 14 and the printer 20. The clock signal in the preferred embodiment is connected to the data out 3 (D3) line, and the reset on line 26 is tapped off the data out 2 (D2) line. The ground connection is the ground line running in the parallel port connector 16.
Although not shown in FIG. 1 nor discussed in detail for the sake of brevity, it will be understood that the electronic key ring 18 can be suitably modified by means known to those skilled in the art for use in virtually any communications path such as the communications path between the CPU 14 and a nonvolatile memory device, for example a ROM, inside of the CPU 14; or attached to an RS232 serial port. In at least some of these configurations the electronic key ring 18 would require an additional predetermined serial bit stream from the CPU 14 to signal the electronic key ring 18 to route certain signal lines to circuitry embodied within the electronic key 10 rather than through the normal communication channel.
With reference again to FIG. 1, when the CPU 14 wishes to read from or write to the electronic key 12, the CPU 14 provides a serial bit stream of 24 protocol bits to the data line 24 to activate the key and to indicate to the electronic key 12 to either receive data or to write data back to the CPU 14. The protocol bits are clocked into and out of the electronic key 12 by the CPU 14 which provides a clock signal on the line 22 (which is the D3 line of the parallel port connector 16). Additional bits described hereafter--including identification bits, password bits, and data bits--are likewise clocked into and out of the CPU 14 by the clock signal on the line 22. Prior to this transmission of the 24 bits of protocol, the reset line 26 must be first held low and then raised to a logic 1 position to reset the electronic key 12 and to also provide power to the electronic key 12. Thus, the reset line 26 must be held high during the entire data transfer procedure.
Once the 24 bits of protocol have been received by the electronic key 12 the electronic key 12 returns 64 bits of an identification code which are passed back to the CPU 14 on line 24.
Following the transfer of this 64 bits of identification data from the key, then, if the CPU 14 decides to continue the data exchange, a password or access code of an additional 64 bits is sent by the CPU 14 to the electronic key 12. If the password is not correct, then the electronic key 12 returns 128 bits of random data to the CPU 14 if the protocol request was for the electronic key 12 to transfer data to the CPU 14. If the password is not correct and the protocol request was to write data from the CPU 14 to the electronic key 12, then the data from the CPU 14 will be ignored. If the password is correct, then the electronic key 12 will either send 128 bits of data to the CPU 14 or receive 128 bits of data from the CPU 14 depending on the exact configuration of the 24 protocol bits.
Thus the electronic key 12 shown in FIG. 1 is able, first, to recognize a protocol command from a CPU 14; secondly, to provide an identification of the key to the CPU 14 for verification by the CPU 14 software that a valid key is attached to the CPU 14; thirdly, to accept and verify a password from the CPU 14; fourthly, to return random data or to ignore data sent from the CPU 14 if the password is incorrect; and finally, if the password is correct, to return secure data from the key to the CPU 14, which the CPU 14 may use in different ways, or to receive secure data from the CPU 14.
In order for the full security offered by the use of random data to be realized, the software in the CPU needs to issue a plurality of false passwords to the electronic key 12 with a read request protocol so that an authentic request will be only one of several requests. Also the random number generation feature of the electronic key 12 may be used to provide random numbers for the software for uses unrelated to data security.
Turning to the random number generator block diagram 10 shown in FIG. 1, an analog oscillator 32 provides a time varying voltage on line 33 to the input of a voltage controlled oscillator (VCO) 34 to thus modulate the frequency of the oscillator 34. The digital output of the VCO 34 on line 36 is connected to the D input of a D latch 38. The clock (C) input to the D latch 38 is connected to the clock line 30 which is inverted by an inverter 39 to produce the clock bar (C bar) input to the D latch 38. The Q output of the D latch 38 is connected to line 31 which is selectively coupled to the data line 24 through the interface circuit 29. Also shown in block 10 is an enable line 40 which is used to enable or disable the random number generator of block 10.
In operation, when the random number generator is required to provide random numbers, the electronic key 12 places an enable signal on line 40 to enable both the analog oscillator 32 and the VCO 34. When enabled, the analog oscillator provides a triangular waveform at its output 33 which then modulates the VCO 34 frequency so that it alternately ramps from its highest frequency to its lowest frequency and back to its highest frequency in accordance with the output from the analog oscillator 32. This frequency varying signal at the output of the VCO 34 on line 36 is then coupled into the D input of the D latch 38 where it is sampled by the clock signal from line 30 which in turn is provided by the CPU 14. Following each sample, the data at the Q output of the D latch 38 is coupled through line 31 to the data line 24 and back to the CPU 14.
The output of the analog oscillator 32 appearing on line 33 in the preferred embodiment is shown in FIG. 3. As can be seen in FIG. 3 the output on line 33 is a triangular waveform. FIG. 4A and 4B is the output of the VCO 34 which appears on line 36. FIG. 4A is an output of the oscillator 34 when it is at its highest frequency which is produced when the output of the analog oscillator 32 on line 33 is the most positive as shown as point 42 in FIG. 3. Conversely FIG. 4B shows the output of the VCO 34 appearing on line 36 when the oscillator frequency is at its lowest, which corresponds to the lowest voltage from the analog oscillator 32 shown as point 44 in FIG. 3. In the preferred embodiment the frequency of the VCO 34 varies between 40 MHz and 80 MHz. Thus the waveform shown in FIG. 4A represents an 80 MHz oscillation out of the VCO 34. As shown in FIG. 4A, at this 80 MHz frequency the VCO provides an approximate sinusoidal waveform and is the approximate upper frequency limit of the VCO generated by the circuit shown in FIG. 2 with the present day technology. FIG. 4B shows the output of the VCO 34 at its lowest frequency of 40 MHz in the preferred embodiment. At this frequency the signal looks much more like a digital waveform. In the preferred embodiment the analog oscillator frequency is approximately 128 KHz.
The frequencies disclosed above are selected and based, in part, on the clock frequency which will be produced by the CPU 14. For such CPUs as, for example, an IBM PC AT, the average clock frequency produced by the data transfer method described above is approximately 500 KHz. Thus the time required to transfer 128 bits of serial data is approximately 256 microseconds, which in the preferred embodiment approximately corresponds to the period of the analog oscillator 32. However, the VCO 34 is operating at a much greater frequency; thus the polarity of the signal generated at the Q output of the D latch 38 will be essentially random, since the output frequency of the VCO 34 will be varying continuously over the time required to transfer 128 bits of data from the D latch 38 and since the CPU clock is independent of the VCO 34. Moreover, the clock generated by the CPU 14 is not necessarily regular. While the CPU 14 generally has a crystal based internal oscillator, the CPU 14 itself may have interrupts and other functions which it performs during the data transfer process thereby disrupting the time intervals between successive clock pulses.
Turning now to FIG. 2, a detailed schematic diagram is shown for the analog oscillator 32 and the VCO 34. As shown in FIG. 2 the oscillator enable signal on line 40 is inverted twice by a pair of series inverters 46 and 48. The output of the inverter 48 is connected to the gate of a P-channel transistor 50 and the gate of an N-channel transistor 52 which are part of the analog oscillator circuit 32. The source of transistor 50 is connected to the power supply voltage VCC, which typically is at +5.0 volts, and the drain of transistor 50 is connected to the source of another P-channel transistor 54. The drain of the transistor 54 is connected to an internal node 56 and to the drain of the transistor 52 and to the drain of another N-channel transistor 58. The source of the transistor 58 is connected to the gate and drain of another N-channel transistor 60, the source of which is connected to ground. The source of the transistor 52 is also connected to ground. The node 56 is connected to the gate of another P-channel transistor 62, the source and drain of which are connected together and to VCC thus forming a capacitor between VCC and node 56. The node 56 is also connected to the input of two inverters, a first inverter 64 and a second inverter 66. The output of the inverter 64 is connected to the input of another inverter 68, and the output of the inverter 68 is connected to a first input of a NAND gate 70. The output of the inverter 66 is connected to a first input of a NAND gate 72. The output of the NAND gate 72 is connected to the second input of the NAND gate 70, and the output of the NAND gate 70 is connected to the second input of the NAND gate 72 thereby forming an R-S flip-flop. The output of the NAND gate 72 is also connected to the gates of the transistors 54 and 58. The node 56 is also connected to the output line 33 of the analog oscillator circuit 32.
Turning now to the detailed circuitry for the VCO 34 also shown in FIG. 2, the output from the analog oscillator on line 33 is connected to the gates of nine N- channel transistors 74, 76, 78, 80, 82, 84, 86, 88, and 90. The sources of the transistors 74-90 are connected to ground. Connected to the drain of the transistor 74 is the source of another N-channel transistor 92. Connected to the drain of the transistor 92 is the drain of a P-channel transistor 94. The source of the P-channel transistor 94 is connected to VCC. The gates of the transistors 92 and 94 are connected to a feedback node 96. The transistors 74, 92 and 94 form the first stage of a nine stage ring oscillator.
The common drain connection of the transistors 92 and 94 are connected to the gates of a P-channel transistor 98 and an N-channel transistor 100 which together with transistor 76 form the second stage of the nine stage ring oscillator. The transistors 98 and 100 are connected in the same manner as transistors 94 and 92, and the output at the common drain connection of the transistors 98 and 100 is connected to the gates of a P-channel transistor 102 and an N-channel transistor 104.
The transistors 102 and 104 and 78 are connected in the same manner as transistors 94 and 92 and 74, and the output at the common drain connection of the transistors 102 and 104 is connected to the gates of a P-channel transistor 106 and an N-channel transistor 108. Transistors 102, 104, and 78 thus form the third stage of the nine stage ring oscillator.
The transistors 106 and 108 and 80 are connected in the same manner as transistors 94 and 92 and 74, and the output at the common drain connection of the transistors 106 and 108 is connected to the gates of a P-channel transistor 110 and an N-channel transistor 112. Transistors 106, 108, and 80 thus form the fourth stage of the nine stage ring oscillator.
The transistors 110 and 112 and 82 are connected in the same manner as transistors 94 and 92 and 74, and the output at the common drain connection of the transistors 110 and 112 is connected to the gates of a P-channel transistor 114 and an N-channel transistor 116. Transistors 110, 112, and 82 thus form the fifth stage of the nine stage ring oscillator.
The transistors 114 and 116 and 84 are connected in the same manner as transistors 94 and 92 and 74, and the output at the common drain connection of the transistors 114 and 116 is connected to the gates of a P-channel transistor 118 and an N-channel transistor 120. Transistors 114, 116, and 84 thus form the sixth stage of the nine stage ring oscillator.
The transistors 118 and 120 and 86 are connected in the same manner as transistors 94 and 92 and 74, and the output at the common drain connection of the transistors 118 and 120 is connected to the gates of a P-channel transistor 122 and an N-channel transistor 124. Transistors 118, 120, and 86 thus form the seventh stage of the nine stage ring oscillator.
The transistors 122 and 124 and 88 are connected in the same manner as transistors 94 and 92 and 74, and the output at the common drain connection of the transistors 122 and 124 is connected to the gates of a P-channel transistor 126 and an N-channel transistor 128. Transistors 122, 124, and 88 thus form the eighth stage of the nine stage ring oscillator.
The transistors 126 and 128 and 90 are connected in the same manner as transistors 94 and 92 and 74. Transistors 126, 128, and 90 thus form the ninth stage of the nine stage ring oscillator.
The common drain connection of the transistors 126 and 128 is connected to the feedback node 96 and also to the gates of a P-channel transistor 130 and an N-channel transistor 132 which form an inverter. That is, the source of the transistor 130 is connected to VCC, and the source of the transistor 132 is connected to ground. The drains of the transistors 130 and 132 are connected to the gates of another P-channel transistor 134 and an N-channel transistor 136. The source of the P-channel transistor 134 is connected to VCC and the source of the transistor 136 is connected to the drain of another N-channel transistor 138, the source of which is connected to ground. The drains of the transistors 134 and 136 are connected to the drain of P-channel transistor 140, the source of which is connected to VCC. The gates of the transistors 138 and 140 are connected to the output of an inverter 142, the input of which is connected to the output of the inverter 48. The common drain connection of the transistors 134, 136, and 140 is connected to the output line 36 of the VCO 34. As shown in both FIG. 1 and FIG. 2, the output line 36 is connected to the D input of the D latch 38.
Each of the transistors illustrated in FIG. 2 is of the enhancement mode type; and the magnitude of the threshold voltage for each of the transistors is typically approximately 1.0 volt.
The operation of the analog oscillator 32 is next described with reference to the detailed circuit shown in FIG. 2. When the oscillator enable signal on line 40 is low (a logic 0 level), then the voltage on the gates of the transistors 52 and 50 will be near ground which will enable or make conductive the P-channel transistor 50 but disable, or make nonconductive, the N-channel transistor 52. If the logic level at the output of the NAND gate 72 is high (a logic 1 level at that time, then transistor 58 will be enabled which will in turn tend to discharge the node 56 towards ground at a rate determined by the drain current characteristics of the transistors 58 and 60 and the capacitance of the transistor 62. As used herein the term "low logic level" or "logic 0 level" means a logic level having a voltage near ground, and the term "high logic level" or "logic 1 level" means a logic level having a voltage near VCC. The high logic level at the output of the NAND 72 will disable the transistor 54, thus isolating node 56 from VCC. Conversely if the output of the NAND gate 72 is at a logic 0 level, near ground, then the transistor 54 will be enabled and transistor 58 will be disabled and the node 56 will be charged toward VCC at a rate determined by the drain current characteristics of the transistors 50 and 54 and the size of the capacitor formed by the transistor 62.
If for example, the output of the NAND gate 72 is at a logic 0 level, then the node 56 will begin charging toward VCC until the threshold or trip point of the inverter 66 is reached, at which point the output of the inverter 66 will become a low logic level to thereby force the output of the NAND gate 72 to a high logic level. The high logic level at the output of the NAND gate 72 will then disable the transistor 54 but enable the transistor 58 to thereby cause the node 56 to begin to discharge toward ground. This discharge will continue until the voltage at the input of the inverter 64 reaches its trip point at which time the output of the inverter 64 will go to a high logic level and the output of the inverter 68 will go to a low logic level thereby forcing the output of the NAND gate 70 to a high logic level. Advantageously, the trip points of the inverters 64 and 66 are not at the same voltage, but rather the trip point for the inverter 66 is approximately +4 volts and the trip point for the inverter 64 is approximately +2 volts.
Consequently, when the node 56 begins to discharge to ground the output of the inverter 66 will switch to a high logic level before the output of the inverter 64 switches. Thus, when the output of the NAND gate 70 switches to the high logic level (which will occur after the output of the inverter 64 switches) both inputs to the NAND gate 72 will be at a logic 1 level and the output of the NAND gate 72 will switch to a logic 0 level. At this point, transistor 54 will be enabled and transistor 58 will be disabled thereby tending to charge node 56 to VCC. As the voltage on node 56 increases above 2 volts, then the inverter 64 will switch and its output will go to a logic low level thereby forcing the output of the inverter 68 to a logic high level. The voltage on the node 56 will continue to increase until it reaches the trip point of the inverter 66, about +4 volts in the preferred embodiment, at which time the output of the inverter 66 will switch to a logic 0 level, causing the output of the NAND gate 72 to switch to a logic 1 level and to thereby repeat the cycle. Thus, the voltage at the node 56 in the preferred embodiment switches between +2 volts and +4 volts, and since the conducting transistors 54 and 58 each operate in essentially a constant current condition, the voltage at the node 56 will be the triangular waveform shown in FIG. 3.
This triangular waveform at the output of the analog oscillator 32 appearing on line 33 is used to vary the conductivity of the lower N-channel transistors on each of the nine stages of the ring oscillator in the VCO 34. As the lower N-channel transistors 74-90 become more conductive, the switching speeds of each of the individual stages of the ring oscillator increases, thereby causing the frequency of oscillation of the ring oscillator to increase. Conversely, as the voltage on line 33 and on the gates of the transistors 74-90 decreases the oscillator frequency is caused to decrease.
The inverter stage consisting of the transistors 130 and 132 serves to amplify and square up the output of the ring oscillator. A second buffer stage consisting of transistors 134 and 136 also performs this function. The transistors 138 and 140 operate to disable the output of the VCO 34 when the enable line 40 is at a logic 1 level. Under this condition the gates of the transistors 138 and 140 will be held low which will cause the transistor 140 to be conductive and cause the transistor 136 to be nonconductive, thereby causing the voltage on line 36 to be held to VCC. When the enable line 40 voltage is at a logic 0, though, the voltage on the gates of the transistors 138 and 140 will be at a logic 1 which will cause the transistor 138 to be conductive and the transistor 140 to be nonconductive, thereby allowing the transistors 134 and 136 to operate as an inverter.
The D latch 38 is edge triggered. The logic level at the D input at the time of the rising edge of the clock line 30 is passed to the Q output, and the Q output will remain at that level until the next rising edge of the clock line 30. The D latch 38 is well known in the art and is not shown here in detail for the sake of brevity.
In accordance with the foregoing, there has been described a random number generator which produces essentially random numbers and yet that can be fabricated on a relatively small area of an integrated circuit.
Although the invention has been described in part by making detailed reference to a certain specific embodiment, such details are intended to be, and will be understood to be, instructional rather than restrictive. It will be appreciated by those of ordinary skill in the art that many variations can be made in the structure and mode of operation without departing from the spirit and scope of the invention, as disclosed in the teachings contained herein. For example, other types of voltage controlled oscillators may be used in place of the ring oscillator of the preferred embodiment. Also, other types of analog voltages may be used to control the frequency of the VCO; for example, it is not necessary that the analog voltage have an oscillating or repetitive waveform--it can be any type of time varying voltage generated by a voltage generator.

Claims (9)

What is claimed is:
1. Apparatus for generating a digital signal, comprising:
(a) a first voltage generating means for generating a time-varying voltage at a voltage node;
(b) a variable frequency oscillator means coupled to said first voltage generating means for generating an oscillating signal wherein the frequency of said variable frequency oscillator means varies in response to the voltage at said voltage node; and
(c) sampling means coupled to said variable frequency oscillating means for sampling said oscillating signal of said variable frequency oscillator means at a rate which is independent of the oscillation frequency of said variable frequency oscillator means, said sampling means providing a digital signal output.
2. The apparatus of claim 1 wherein the frequency of said variable frequency oscillator means is much greater than the sampling rate of said sampling means.
3. The apparatus of claim 1 wherein said first voltage generating means generates a triangular waveform.
4. The apparatus of claim 1 wherein said first voltage generating means comprises an oscillator having a period for one oscillation that is approximately equal to the time required for said apparatus to generate a predetermined number of signal bits at said digital signal output.
5. The apparatus of claim 1 wherein said variable frequency oscillator means comprises a ring oscillator.
6. The apparatus of claim 1 wherein said sampling means samples said output of said variable frequency oscillator means at a rate determined by an output line of a central processing unit.
7. A random number generating circuit for use in an electronic key comprising:
(a) a first oscillator having a triangular wave form at its output terminal;
(b) a ring oscillator coupled to the output of said first oscillator wherein the frequency of said ring oscillator is dependant on the output voltage of said first oscillator, said ring oscillator having a period of oscillation of N; and
(c) a D latch having a D input coupled to the output of said ring oscillator and for generating at its Q output a serial bit stream which is an essentially random digital number, said D latch being clocked by a signal derived from the output line of a central processing unit.
8. A method for generating random numbers comprising the steps of:
(a) generating a time-varying voltage;
(b) generating a variable frequency oscillating signal in which the frequency of said variable frequency oscillating signal is controlled by said time-varying voltage; and
(c) sampling said variable frequency oscillating signal at a sampling rate independent of said time-varying voltage and independent of said variable frequency oscillating signal.
9. The method set forth in claim 8 wherein the highest frequency of said time-varying voltage and said sampling are less than the lowest frequency of said variable frequency oscillating signal.
US07/083,583 1987-08-10 1987-08-10 Random number generator using sampled output of variable frequency oscillator Expired - Lifetime US4810975A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US07/083,583 US4810975A (en) 1987-08-10 1987-08-10 Random number generator using sampled output of variable frequency oscillator
US07/265,732 US4855690A (en) 1987-08-10 1988-11-01 Integrated circuit random number generator using sampled output of variable frequency oscillator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/083,583 US4810975A (en) 1987-08-10 1987-08-10 Random number generator using sampled output of variable frequency oscillator

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US07/265,732 Continuation US4855690A (en) 1987-08-10 1988-11-01 Integrated circuit random number generator using sampled output of variable frequency oscillator

Publications (1)

Publication Number Publication Date
US4810975A true US4810975A (en) 1989-03-07

Family

ID=22179283

Family Applications (1)

Application Number Title Priority Date Filing Date
US07/083,583 Expired - Lifetime US4810975A (en) 1987-08-10 1987-08-10 Random number generator using sampled output of variable frequency oscillator

Country Status (1)

Country Link
US (1) US4810975A (en)

Cited By (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5007087A (en) * 1990-04-16 1991-04-09 Loral Aerospace Corp. Method and apparatus for generating secure random numbers using chaos
US5206905A (en) * 1989-05-15 1993-04-27 Dallas Semiconductor Corp. Password protected device using incorrect passwords as seed values for pseudo-random number generator for outputting random data to thwart unauthorized accesses
US5440221A (en) * 1992-07-08 1995-08-08 Benchmarg Microelectronics, Inc. Method and apparatus for monitoring batttery capacity with charge control
US5506991A (en) * 1989-05-15 1996-04-09 Dallas Semiconductor Corporation Printer port adapter with overlaid one-wire interface for electronic key
US5517015A (en) * 1990-11-19 1996-05-14 Dallas Semiconductor Corporation Communication module
WO1996021183A1 (en) * 1995-01-06 1996-07-11 Vlsi Technology, Inc. Digital randomizer for on-chip generation and storage of random self-programming data block
US5603000A (en) * 1989-05-15 1997-02-11 Dallas Semiconductor Corporation Integrated circuit memory with verification unit which resets an address translation register upon failure to define one-to-one correspondences between addresses and memory cells
US5604343A (en) * 1994-05-24 1997-02-18 Dallas Semiconductor Corporation Secure storage of monetary equivalent data systems and processes
WO1997011423A2 (en) * 1995-09-22 1997-03-27 United Technologies Automotive, Inc. A method of generating secret identification numbers
US5679944A (en) * 1994-06-15 1997-10-21 Dallas Semiconductor Corporation Portable electronic module having EPROM memory, systems and processes
WO1997043709A1 (en) * 1996-05-15 1997-11-20 Intel Corporation Random number generator
US5696828A (en) * 1995-09-22 1997-12-09 United Technologies Automotive, Inc. Random number generating system and process based on chaos
US5781458A (en) * 1997-03-05 1998-07-14 Transcrypt International, Inc. Method and apparatus for generating truly random numbers
US5831827A (en) * 1994-04-28 1998-11-03 Dallas Semiconductor Corporation Token shaped module for housing an electronic circuit
US5848541A (en) * 1994-03-30 1998-12-15 Dallas Semiconductor Corporation Electrical/mechanical access control systems
WO1999038069A1 (en) * 1998-01-24 1999-07-29 Motorola Limited Random number generation method and apparatus
US5966313A (en) * 1996-07-11 1999-10-12 Nec Corporation Apparatus and method for generating random numbers
US5994969A (en) * 1997-12-22 1999-11-30 Advanced Micro Devices, Inc. Ring oscillator having automatic gain and low frequency shut off circuits
US5994770A (en) * 1991-07-09 1999-11-30 Dallas Semiconductor Corporation Portable electronic data carrier
WO2001079989A1 (en) * 2000-04-18 2001-10-25 Advanced Micro Devices, Inc. Method and apparatus for generating random numbers
WO2001082056A2 (en) * 2000-04-21 2001-11-01 Intel Corporation Power management system for a random number generator
US6324558B1 (en) * 1995-02-14 2001-11-27 Scott A. Wilber Random number generator and generation method
US6374278B1 (en) 1999-03-25 2002-04-16 Intel Corporation Method and apparatus for the generation of statistically random numbers
US20020087872A1 (en) * 2000-12-29 2002-07-04 Wells Steven E. Integrated circuit chip having firmware and hardware security primitive device(s)
US20020126841A1 (en) * 2001-03-07 2002-09-12 Yoshihisa Arai Random number's seed generating circuit, driver having the same, and SD memory card system
US20020176574A1 (en) * 2001-05-11 2002-11-28 Sherman Richard H. Chaotic privacy system and method
US6643374B1 (en) 1999-03-31 2003-11-04 Intel Corporation Duty cycle corrector for a random number generator
US6667665B2 (en) 2000-01-27 2003-12-23 Infioneon Technologies Ag Random number generator
US6687721B1 (en) 2000-03-31 2004-02-03 Intel Corporation Random number generator with entropy accumulation
US20040030734A1 (en) * 2000-03-31 2004-02-12 Wells Steven E. Secure hardware random number generator
US6760739B2 (en) 2001-03-01 2004-07-06 Corrent Corporation Pipelined digital randomizer based on permutation and substitution using data sampling with variable frequency and non-coherent clock sources
US6771104B2 (en) * 2002-07-25 2004-08-03 Koninklijke Philips Electronics N.V. Switching electronic circuit for random number generation
US6795837B1 (en) 1999-03-31 2004-09-21 Intel Corporation Programmable random bit source
US20060227967A1 (en) * 2005-04-11 2006-10-12 Tomoki Nishikawa Data processing system and method
US7177888B2 (en) 2003-08-01 2007-02-13 Intel Corporation Programmable random bit source
US20090202073A1 (en) * 2005-07-14 2009-08-13 Tara Chand Singhal Random wave envelope derived random numbers and their use in generating transient keys in communication security applications part II
US20090265494A1 (en) * 2008-04-22 2009-10-22 Seiko Epson Corporation Data transmission and reception system, master device, and slave device
US7941673B1 (en) * 2001-01-19 2011-05-10 Xilinx, Inc. Copy protection without non-volatile memory
WO2012122309A2 (en) * 2011-03-07 2012-09-13 University Of Connecticut Embedded ring oscillator network for integrated circuit security and threat detection
US8386990B1 (en) 2010-12-07 2013-02-26 Xilinx, Inc. Unique identifier derived from an intrinsic characteristic of an integrated circuit
US8418006B1 (en) 2010-12-07 2013-04-09 Xilinx, Inc. Protecting a design for an integrated circuit using a unique identifier
US8427193B1 (en) 2010-12-07 2013-04-23 Xilinx, Inc. Intellectual property core protection for integrated circuits
US9098694B1 (en) * 2011-07-06 2015-08-04 Marvell International Ltd. Clone-resistant logic
US9354890B1 (en) 2007-10-23 2016-05-31 Marvell International Ltd. Call stack structure for enabling execution of code outside of a subroutine and between call stack frames
US9442758B1 (en) 2008-01-21 2016-09-13 Marvell International Ltd. Dynamic processor core switching
US9582443B1 (en) 2010-02-12 2017-02-28 Marvell International Ltd. Serial control channel processor for executing time-based instructions
US9985615B2 (en) 2013-01-11 2018-05-29 International Business Machines Corporation On-chip randomness generation
US10430159B1 (en) * 2017-07-18 2019-10-01 Honeywell Federal Manufacturing & Technologies, Llc Gas discharge tube true random number generator
US10606560B1 (en) * 2017-05-10 2020-03-31 Verily Life Sciences Llc Mitigating deterministic asymmetry in a random number generator

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4001817A (en) * 1974-10-23 1977-01-04 American Electronics Corporation Ultrasonic rodent control device and method
US4644299A (en) * 1986-02-14 1987-02-17 Hughes Aircraft Company Multimode noise generator using digital FM

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4001817A (en) * 1974-10-23 1977-01-04 American Electronics Corporation Ultrasonic rodent control device and method
US4644299A (en) * 1986-02-14 1987-02-17 Hughes Aircraft Company Multimode noise generator using digital FM

Cited By (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6035382A (en) * 1989-05-15 2000-03-07 Dallas Semiconductor Corporation Circuit for receiving a command word for accessing a secure subkey
US5206905A (en) * 1989-05-15 1993-04-27 Dallas Semiconductor Corp. Password protected device using incorrect passwords as seed values for pseudo-random number generator for outputting random data to thwart unauthorized accesses
US5506991A (en) * 1989-05-15 1996-04-09 Dallas Semiconductor Corporation Printer port adapter with overlaid one-wire interface for electronic key
US5603000A (en) * 1989-05-15 1997-02-11 Dallas Semiconductor Corporation Integrated circuit memory with verification unit which resets an address translation register upon failure to define one-to-one correspondences between addresses and memory cells
US5007087A (en) * 1990-04-16 1991-04-09 Loral Aerospace Corp. Method and apparatus for generating secure random numbers using chaos
US6217213B1 (en) 1990-05-15 2001-04-17 Dallas Semiconductor Corporation Temperature sensing systems and methods
US6112275A (en) * 1990-05-15 2000-08-29 Dallas Semiconductor Corporation Method of communicating over a single wire bus between a host device and a module device which measures thermal accumulation over time
US5619066A (en) * 1990-05-15 1997-04-08 Dallas Semiconductor Corporation Memory for an electronic token
US5517015A (en) * 1990-11-19 1996-05-14 Dallas Semiconductor Corporation Communication module
US5761697A (en) * 1990-11-19 1998-06-02 Dallas Semiconductor Corporation Identifiable modules on a serial bus system and corresponding identification methods
US5994770A (en) * 1991-07-09 1999-11-30 Dallas Semiconductor Corporation Portable electronic data carrier
US5440221A (en) * 1992-07-08 1995-08-08 Benchmarg Microelectronics, Inc. Method and apparatus for monitoring batttery capacity with charge control
US5848541A (en) * 1994-03-30 1998-12-15 Dallas Semiconductor Corporation Electrical/mechanical access control systems
US5831827A (en) * 1994-04-28 1998-11-03 Dallas Semiconductor Corporation Token shaped module for housing an electronic circuit
US5604343A (en) * 1994-05-24 1997-02-18 Dallas Semiconductor Corporation Secure storage of monetary equivalent data systems and processes
US5679944A (en) * 1994-06-15 1997-10-21 Dallas Semiconductor Corporation Portable electronic module having EPROM memory, systems and processes
WO1996021183A1 (en) * 1995-01-06 1996-07-11 Vlsi Technology, Inc. Digital randomizer for on-chip generation and storage of random self-programming data block
US5570307A (en) * 1995-01-06 1996-10-29 Vlsi Technology, Inc. Digital randomizer for on-chip generation and storage of random self-programming data block
US7096242B2 (en) 1995-02-14 2006-08-22 Wilber Scott A Random number generator and generation method
US20020169810A1 (en) * 1995-02-14 2002-11-14 Wilber Scott A. Random number generator and generation method
US6763364B1 (en) 1995-02-14 2004-07-13 Scott A. Wilber Random number generator and generation method
US6324558B1 (en) * 1995-02-14 2001-11-27 Scott A. Wilber Random number generator and generation method
US7752247B2 (en) 1995-02-14 2010-07-06 The Quantum World Corporation Random number generator and generation method
US5696828A (en) * 1995-09-22 1997-12-09 United Technologies Automotive, Inc. Random number generating system and process based on chaos
WO1997011423A3 (en) * 1995-09-22 1997-05-22 United Technologies Automotive A method of generating secret identification numbers
WO1997011423A2 (en) * 1995-09-22 1997-03-27 United Technologies Automotive, Inc. A method of generating secret identification numbers
WO1997043709A1 (en) * 1996-05-15 1997-11-20 Intel Corporation Random number generator
US6061702A (en) * 1996-05-15 2000-05-09 Intel Corporation Random number generator
US5706218A (en) * 1996-05-15 1998-01-06 Intel Corporation Random number generator
US5966313A (en) * 1996-07-11 1999-10-12 Nec Corporation Apparatus and method for generating random numbers
US5781458A (en) * 1997-03-05 1998-07-14 Transcrypt International, Inc. Method and apparatus for generating truly random numbers
US5994969A (en) * 1997-12-22 1999-11-30 Advanced Micro Devices, Inc. Ring oscillator having automatic gain and low frequency shut off circuits
WO1999038069A1 (en) * 1998-01-24 1999-07-29 Motorola Limited Random number generation method and apparatus
US6374278B1 (en) 1999-03-25 2002-04-16 Intel Corporation Method and apparatus for the generation of statistically random numbers
US6795837B1 (en) 1999-03-31 2004-09-21 Intel Corporation Programmable random bit source
US6643374B1 (en) 1999-03-31 2003-11-04 Intel Corporation Duty cycle corrector for a random number generator
US6667665B2 (en) 2000-01-27 2003-12-23 Infioneon Technologies Ag Random number generator
US6792438B1 (en) 2000-03-31 2004-09-14 Intel Corporation Secure hardware random number generator
US7269614B2 (en) 2000-03-31 2007-09-11 Intel Corporation Secure hardware random number generator
US6687721B1 (en) 2000-03-31 2004-02-03 Intel Corporation Random number generator with entropy accumulation
US20040030734A1 (en) * 2000-03-31 2004-02-12 Wells Steven E. Secure hardware random number generator
US6480072B1 (en) 2000-04-18 2002-11-12 Advanced Micro Devices, Inc. Method and apparatus for generating random numbers
WO2001079989A1 (en) * 2000-04-18 2001-10-25 Advanced Micro Devices, Inc. Method and apparatus for generating random numbers
WO2001082056A2 (en) * 2000-04-21 2001-11-01 Intel Corporation Power management system for a random number generator
WO2001082056A3 (en) * 2000-04-21 2002-03-21 Intel Corp Power management system for a random number generator
US6728893B1 (en) 2000-04-21 2004-04-27 Intel Corporation Power management system for a random number generator
US20020087872A1 (en) * 2000-12-29 2002-07-04 Wells Steven E. Integrated circuit chip having firmware and hardware security primitive device(s)
US7350083B2 (en) 2000-12-29 2008-03-25 Intel Corporation Integrated circuit chip having firmware and hardware security primitive device(s)
US8416950B1 (en) * 2001-01-19 2013-04-09 Xilinx, Inc. Copy protection without non-volatile memory
US7941673B1 (en) * 2001-01-19 2011-05-10 Xilinx, Inc. Copy protection without non-volatile memory
US6760739B2 (en) 2001-03-01 2004-07-06 Corrent Corporation Pipelined digital randomizer based on permutation and substitution using data sampling with variable frequency and non-coherent clock sources
US20020126841A1 (en) * 2001-03-07 2002-09-12 Yoshihisa Arai Random number's seed generating circuit, driver having the same, and SD memory card system
US7076065B2 (en) * 2001-05-11 2006-07-11 Lockheed Martin Corporation Chaotic privacy system and method
US20020176574A1 (en) * 2001-05-11 2002-11-28 Sherman Richard H. Chaotic privacy system and method
US6771104B2 (en) * 2002-07-25 2004-08-03 Koninklijke Philips Electronics N.V. Switching electronic circuit for random number generation
US7177888B2 (en) 2003-08-01 2007-02-13 Intel Corporation Programmable random bit source
US7889864B2 (en) * 2005-04-11 2011-02-15 Panasonic Corporation Data processing system and method
US20060227967A1 (en) * 2005-04-11 2006-10-12 Tomoki Nishikawa Data processing system and method
US20150063568A1 (en) * 2005-07-14 2015-03-05 Tara Chand Singhal Apparatus and method for generating a sequence of encryption keys for communication security in mobile wireless devices
US20090202073A1 (en) * 2005-07-14 2009-08-13 Tara Chand Singhal Random wave envelope derived random numbers and their use in generating transient keys in communication security applications part II
US9161228B2 (en) * 2005-07-14 2015-10-13 Tara Chand Singhal Apparatus and method for generating a sequence of encryption keys for communication security in mobile wireless devices
US8484268B2 (en) * 2005-07-14 2013-07-09 Tara Chand Singhal Random wave envelope derived random numbers and their use in generating transient keys in communication security applications part II
US9354890B1 (en) 2007-10-23 2016-05-31 Marvell International Ltd. Call stack structure for enabling execution of code outside of a subroutine and between call stack frames
US9442758B1 (en) 2008-01-21 2016-09-13 Marvell International Ltd. Dynamic processor core switching
US8082377B2 (en) * 2008-04-22 2011-12-20 Seiko Epson Corporation Data transmission and reception system, master device, and slave device
US20090265494A1 (en) * 2008-04-22 2009-10-22 Seiko Epson Corporation Data transmission and reception system, master device, and slave device
US9582443B1 (en) 2010-02-12 2017-02-28 Marvell International Ltd. Serial control channel processor for executing time-based instructions
US8386990B1 (en) 2010-12-07 2013-02-26 Xilinx, Inc. Unique identifier derived from an intrinsic characteristic of an integrated circuit
US8427193B1 (en) 2010-12-07 2013-04-23 Xilinx, Inc. Intellectual property core protection for integrated circuits
US8418006B1 (en) 2010-12-07 2013-04-09 Xilinx, Inc. Protecting a design for an integrated circuit using a unique identifier
US8850608B2 (en) 2011-03-07 2014-09-30 University Of Connecticut Embedded ring oscillator network for integrated circuit security and threat detection
WO2012122309A3 (en) * 2011-03-07 2012-12-27 University Of Connecticut Embedded ring oscillator network for integrated circuit security and threat detection
WO2012122309A2 (en) * 2011-03-07 2012-09-13 University Of Connecticut Embedded ring oscillator network for integrated circuit security and threat detection
US9098694B1 (en) * 2011-07-06 2015-08-04 Marvell International Ltd. Clone-resistant logic
US9985615B2 (en) 2013-01-11 2018-05-29 International Business Machines Corporation On-chip randomness generation
US10606560B1 (en) * 2017-05-10 2020-03-31 Verily Life Sciences Llc Mitigating deterministic asymmetry in a random number generator
US10430159B1 (en) * 2017-07-18 2019-10-01 Honeywell Federal Manufacturing & Technologies, Llc Gas discharge tube true random number generator

Similar Documents

Publication Publication Date Title
US4810975A (en) Random number generator using sampled output of variable frequency oscillator
US4855690A (en) Integrated circuit random number generator using sampled output of variable frequency oscillator
US6480869B1 (en) Random-number generating circuit, non-contact IC card having random-number generating circuit, reader/writer, and method of testing an apparatus having the random generating circuit
US7251734B2 (en) Secure integrated circuit including parts having a confidential nature and method for operating the same
WO1982000535A1 (en) Memory security circuit
US6247033B1 (en) Random signal generator
WO1986001658A1 (en) Assist circuit for improving the rise time of an electronic signal
US20010023423A1 (en) Pseudo-random number generator
CA1246693A (en) Phase modulated pulse logic for gallium arsenide
KR102336188B1 (en) Intrinsic data generation device, semiconductor device and authentication system
US4736119A (en) Dynamic CMOS current surge control
CA1085002A (en) Presettable dynamic delay flip-flop circuit
KR19980083244A (en) Signal Transmitter and Receiver for New Wiring System
GB2214019A (en) A distributed precharge wire-or bus
EP0202582B1 (en) A nmos data storage cell and shift register
US5148058A (en) Logic circuits as for amorphous silicon self-scanned matrix arrays
EP0070038B1 (en) Input device
JPS6242286B2 (en)
US5093581A (en) Circuitry for generating pulses of variable widths from binary input data
KR100260396B1 (en) Output buffer having low power loss in a semiconductor device
US5994931A (en) Method and circuit configuration for controlling operating states of a second device by means of a first device
US6587323B1 (en) Dual pseudo reference voltage generation for receivers
EP0527015A2 (en) Low power signaling using output impedance delay
KR0179302B1 (en) Voltage pulse converter changed pulse according to voltage variation
US4783633A (en) Pulse-edge coincidence detector and use of same for selecting a sampling signal

Legal Events

Date Code Title Description
AS Assignment

Owner name: DALLAS SEMICONDUCTOR CORPORATION, 4350 BELTWOOD PA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:DIAS, DONALD R.;REEL/FRAME:004818/0657

Effective date: 19870807

Owner name: DALLAS SEMICONDUCTOR CORPORATION,TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DIAS, DONALD R.;REEL/FRAME:004818/0657

Effective date: 19870807

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12