DE102014219795A1 - Apparatus and method for generating random bits - Google Patents
Apparatus and method for generating random bits Download PDFInfo
- Publication number
- DE102014219795A1 DE102014219795A1 DE102014219795.3A DE102014219795A DE102014219795A1 DE 102014219795 A1 DE102014219795 A1 DE 102014219795A1 DE 102014219795 A DE102014219795 A DE 102014219795A DE 102014219795 A1 DE102014219795 A1 DE 102014219795A1
- Authority
- DE
- Germany
- Prior art keywords
- ring oscillator
- circuit
- gate
- circuits
- oscillator circuit
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
Abstract
Eine Vorrichtung (1) zum Erzeugen von Zufallsbits hat mindestens zwei Ringoszillatorschaltungen (2, 2‘), wobei jede Ringoszillatorschaltung (2) mehrere Gatterschaltungen (30–32n), die jeweils einen Eingangspegel (E0–E2n) in einen Ausgangspegel (A0–A2n) ausgeben, und mehrere auswählbare Rückkopplungspfade (Zi) zum Einkoppeln eines Ausgangspegels (A0–A2n) einer ausgewählten Gatterschaltung (30–32n) als Eingangspegel (E0–E2n) einer anderen Gatterschaltung (30–32n) aufweist. der jeweils ausgewählte Rückkopplungspfad (Zi) einer Ringoszillatorschaltung (2, 2‘) von wenigstens einem Ausgangspegel (A0–A2n) abhängt, der an einer Gatterschaltung (30–32n) einer anderen Ringoszillatorschaltung (2, 2‘) abgreifbar ist. Bei einem Verfahren zum Erzeugen von Zufallsbits mit Hilfe von mindestens einer ersten Ringoszillatorschaltung (2) und einer zweiten Ringoszillatorschaltung (2‘), wobei jede Ringoszillatorschaltung (2, 2‘) mehrere Gatterschaltungen (30–32n), die jeweils einen Eingangspegel (E0–E2n) in einen Ausgangspegel (A0–A2n) ausgeben, und mehrere auswählbare Rückkopplungspfade zum Einkoppeln eines Ausgangspegels (A0–A2n) einer ausgewählten Gatterschaltung (30–32n) als Eingangspegel (E0–E2n) einer anderen Gatterschaltung (30–32n) der Ringoszillatorschaltung (2, 2‘) aufweist, wird während des Betriebs der Ringoszillatorschaltungen (2, 2‘) der Rückkopplungspfad der ersten der Ringoszillatorschaltungen (2) abhängig von einem Ausgangspegel (A0–A2n) der zweiten Ringoszillatorschaltung (2‘) gewählt. An random bit generating apparatus (1) has at least two ring oscillator circuits (2, 2 '), each ring oscillator circuit (2) having a plurality of gate circuits (3 0 -3 2n ) each having an input level (E 0 -E 2n ) in an output level (A 0 -A 2n ) and a plurality of selectable feedback paths (Z i ) for coupling an output level (A 0 -A 2n ) of a selected gate circuit (3 0 -3 2n ) as an input level (E 0 -E 2n ) of another gate circuit (3 0 -3 2n ). the respectively selected feedback path (Z i ) of a ring oscillator circuit (2, 2 ') depends on at least one output level (A 0 -A 2n ) which can be tapped on a gate circuit (3 0 -3 2n ) of another ring oscillator circuit (2, 2') is. In a method for generating random bits by means of at least a first ring oscillator circuit (2) and a second ring oscillator circuit (2 '), each ring oscillator circuit (2, 2') having a plurality of gate circuits (3 0 -3 2n ) each having an input level ( E 0 -E 2n ) to an output level (A 0 -A 2n ), and a plurality of selectable feedback paths for coupling an output level (A 0 -A 2n ) of a selected gate circuit (3 0 -3 2n ) as an input level (E 0 -E 2n ) of another gate circuit (3 0 -3 2n ) of the ring oscillator circuit (2, 2 '), during operation of the ring oscillator circuits (2, 2'), the feedback path of the first of the ring oscillator circuits (2) is dependent on an output level (A 0 -A 2n ) of the second ring oscillator circuit (2 ').
Description
Die vorliegende Erfindung betrifft eine Vorrichtung und ein Verfahren zum Erzeugen eines oder mehrerer Zufallsbits. Es wird zum Beispiel eine Zufallsbitfolge erzeugt, welche als binäre Zufallszahl verwendet wird. Die vorgeschlagenen Vorrichtungen und Verfahren zum Erzeugen von Zufallsbits dienen beispielsweise der Implementierung von Zufallszahlengeneratoren. Die Erfindung ermöglicht beispielsweise die Erzeugung echter Zufallsbits im Gegensatz zu Pseudozufallsbits. The present invention relates to an apparatus and method for generating one or more random bits. For example, a random bit sequence is generated which is used as a binary random number. The proposed devices and methods for generating random bits serve, for example, the implementation of random number generators. For example, the invention allows for the generation of true random bits as opposed to pseudorandom bits.
Die vorgeschlagenen Verfahren und Vorrichtungen dienen insbesondere der Erzeugung von Zufallsbits oder Zufallsbitfolgen, die gute zufällige Eigenschaften haben, also eine möglichst hohe Entropie aufweisen. Zufallsdaten werden beispielsweise bei Sicherheitsanwendungen benötigt, wobei aus erzeugten Zufallsbits beispielsweise kryptographische Schlüssel oder dergleichen abgeleitet werden. The proposed methods and devices are used in particular to generate random bits or random bit sequences which have good random properties, that is to say have the highest possible entropy. Random data is needed, for example, in security applications, where, for example, cryptographic keys or the like are derived from random bits generated.
In sicherheitsrelevanten Anwendungen, beispielsweise bei asymmetrischen Authentifikationsverfahren, sind Zufallsbitfolgen als binäre Zufallszahlen notwendig. Dabei ist es gewünscht, insbesondere bei mobilen Anwendungen einen möglichst geringen Hardwareaufwand zu betreiben. Bekannte Maßnahmen, um Zufallszahlen zu erzeugen, sind beispielsweise Pseudozufallszahlengeneratoren, analoge Zufallsquellen, Ringoszillatoren und deren Abwandlungen. In security-relevant applications, for example in asymmetric authentication methods, random bit sequences are necessary as binary random numbers. It is desired, in particular for mobile applications to operate as little hardware as possible. Known measures for generating random numbers are, for example, pseudo-random number generators, analog random sources, ring oscillators and their modifications.
Bei Pseudozufallszahlengeneratoren werden Seeds verwendet, von denen ausgehend deterministische Pseudozufallszahlen berechnet werden. Zur Erzeugung des Seeds wird in der Regel ein physikalischer Zufallsgenerator verwendet. Als analoge Zufallsquellen werden Rauschquellen, wie z.B. das Rauschen von Zenerdioden, verstärkt und digitalisiert. Dabei ist die Verbindung von digitaler mit analoger Schaltungstechnik meist nur aufwändig zu verwirklichen. For pseudo-random number generators, seeds are used, from which deterministic pseudorandom numbers are calculated. To create the seed, a physical random number generator is usually used. As analog random sources, noise sources such as e.g. the noise of zener diodes, amplified and digitized. At the same time, the connection between digital and analog circuit technology is usually difficult to realize.
Bei Ringoszillatoren, die aus hintereinander geschalteten Invertern aufgebaut sind, ergeben sich zufällige Jitter aus schwankenden Durchlaufzeiten der Signale durch die Inverter. Diese Jitter, also eine unregelmäßige zeitliche Schwankung in Zustandsänderungen der durch die Inverter geschickten Signale, können bei mehrfachen Durchläufen durch die Ringoszillatorschaltung akkumuliert werden, so dass letztlich ein zufälliges analoges Signal entsteht. Nachteilig bei Ringoszillatoren ist häufig die notwendige lange Zeit vom Start der Schwingung bis ein brauchbar zufälliges Signal aufgrund der Jitter-Akkumulierung entsteht. Daher ergeben sich meist niedrige Datenerzeugungsraten bei Ringoszillatoren. Ferner ist möglich, dass die sich addierenden Jitter-Beiträge sich auch selbst wieder aufheben, so dass im Mittel zufällige kurze Gatterdurchlaufzeiten durch zufällige längere Gatterdurchlaufzeiten kompensiert werden. In ring oscillators, which are constructed of series-connected inverters, random jitter resulting from fluctuating throughput times of the signals through the inverter. These jitter, that is, an irregular variation with time in state changes of the signals sent by the inverters, can be accumulated in the case of multiple passes through the ring oscillator circuit, so that ultimately a random analog signal is produced. A disadvantage of ring oscillators is often the necessary long time from the start of the oscillation until a usable random signal due to the jitter accumulation arises. Therefore, low data generation rates usually occur with ring oscillators. Furthermore, it is possible that the adding jitter contributions also cancel themselves out, so that on average random short gate transit times are compensated by random longer gate transit times.
Bei vielen Sicherheitsverfahren sind Zufallszahlengeneratoren beispielsweise zur kryptographischen Schlüsselerzeugung wichtige Komponenten. Meist werden anwendungsspezifische integrierte Schaltungen (ASIC = application specific integrated circuit) benötigt, die Zufallszahlengeneratoren implementieren sollten. Auch auf FPGAs werden in einigen Anwendungen Zufallszahlengeneratoren implementiert. Auf FPGAs basieren die logischen Funktionen in der Regel auf look-up-tables (LUTs) und weisen dadurch alle ungefähr die gleichen Verzögerungszeiten auf. Die auf ASICs implementierten logischen Gatter hingegen zeigen ein davon sehr verschiedenes Verhalten; ihre Verzögerungszeiten hänger sehr stark von der realisierten logischen Funktion ab. Zum Beispiel kann ein in CMOS implementiertes XOR-Gatter eine zehnfach höhere Verzögerungszeit der eines Inverters haben. Deshalb liefern viele Verfahren, die auf FPGAs gut funktionieren, auf ASICs schlechte Ergebnisse. Es ist daher wünschenswert, Zufallszahlengeneratoren zu schaffen, die auch auf ASICs gute Zufallsbits liefern und günstig implementierbar sind. For many security methods, random number generators are important components for cryptographic key generation, for example. Mostly, application specific integrated circuits (ASIC) are needed which should implement random number generators. Also on FPGAs, random number generators are implemented in some applications. On FPGAs, the logical functions are usually based on look-up tables (LUTs), all of which have approximately the same delay times. The logic gates implemented on ASICs, on the other hand, show a very different behavior; their delay times depend very much on the realized logical function. For example, an XOR gate implemented in CMOS may have ten times the delay time of an inverter. Therefore, many methods that work well on FPGAs provide poor results on ASICs. It is therefore desirable to provide random number generators that also provide good random bits on ASICs and are low cost implementable.
Insofern ist es eine Aufgabe der vorliegenden Erfindung, eine verbesserte Vorrichtung und/oder ein verbessertes Verfahren zum Erzeugen von Zufallsbits insbesondere auf ASICs bereitzustellen. In this respect, it is an object of the present invention to provide an improved apparatus and / or method for generating random bits, in particular on ASICs.
Demgemäß wird eine Vorrichtung zum Erzeugen von Zufallsbits mit mindestens zwei Ringoszillatorschaltungen vorgeschlagen, wobei jede Ringoszillatorschaltung mehrere Gatterschaltungen, die jeweils einen Eingangspegel in einen Ausgangspegel ausgeben, und mehrere auswählbare Rückkopplungspfade zum Einkoppeln eines Ausgangspegels einer ausgewählten Gatterschaltung als Eingangspegel einer anderen Gatterschaltung, aufweist. Die Vorrichtung ist derart ausgestaltet, dass der jeweils ausgewählte Rückkopplungspfad einer Ringoszillatorschaltung von wenigstens einem Ausgangspegel abhängt, der an einer Gatterschaltung einer anderen Ringoszillatorschaltung abgreifbar ist. Accordingly, an apparatus for generating random bits having at least two ring oscillator circuits is proposed, each ring oscillator circuit having a plurality of gate circuits each outputting an input level to an output level and a plurality of selectable feedback paths for launching an output level of a selected gate circuit as an input level of another gate circuit. The device is designed such that the respective selected feedback path of a ring oscillator circuit depends on at least one output level which can be tapped off at a gate circuit of another ring oscillator circuit.
Bei Ausführungsbeispielen der Vorrichtung wird eine Auswahl oder Umschaltung des jeweiligen Rückkopplungspfads nicht getaktet vorgenommen, sondern beim Betrieb und in Abhängigkeit der sich ergebenden kontinuierlichen Ausgangspegel in einer anderen Ringoszillatorschaltung. Aufgrund der sich ergebenden Jitter erfolgt eine Umschaltung von Rückkopplungspfaden zufällig. In embodiments of the device, a selection or switching of the respective feedback path is not made clocked, but in operation and in response to the resulting continuous output levels in another ring oscillator circuit. Due to the resulting jitter, switching of feedback paths occurs at random.
Es wird ferner eine erweiterte oder alternative Vorrichtung zum Erzeugen von Zufallsbits mit mindestens drei Ringoszillatorschaltungen vorgeschlagen. Jede Ringoszillatorschaltung weist dabei mehrere Gatterschaltungen, die jeweils einen Eingangspegel in einen Ausgangspegel ausgeben, auf. Es sind mehrere auswählbare Rückkopplungspfade zum Einkoppeln eines Ausgangspegels einer ausgewählten Gatterschaltung als Eingangspegel einer anderen Gatterschaltung vorgesehen. Dabei hängt der jeweils ausgewählte Rückkopplungspfad einer Ringoszillatorschaltung von zwei Ausgangspegeln ab, die an Gatterschaltungen der beiden anderen Ringoszillatorschaltungen abgreifbar sind. There is also an extended or alternative apparatus for generating random bits with at least three ring oscillator circuits proposed. Each ring oscillator circuit has a plurality of gate circuits each outputting an input level to an output level. There are provided a plurality of selectable feedback paths for launching an output level of a selected gate circuit as an input level of another gate circuit. In this case, the respectively selected feedback path of a ring oscillator circuit depends on two output levels, which can be tapped at gate circuits of the two other ring oscillator circuits.
Bei der vorgeschlagenen Vorrichtung sind Ringoszillatorschaltungen beispielsweise aus einer ungeraden Anzahl von hintereinander geschalteten Invertern implementiert. Jede der wenigstens drei Ringoszillatorschaltungen wird dynamisch während des Betriebs hinsichtlich ihrer Länge verändert, also der Anzahl von hintereinander gekoppelten Invertern. Dies erfolgt in Abhängigkeit von Zuständen von zwei anderen Ringoszillatoren. Durch das dynamische Umschalten entsteht eine zufällige Signalform, die als Basis für eine Zufallsbiterzeugung benutzt werden kann. Beispielsweise wird ein beliebiges Ausgangssignal oder ein Ausgangspegel einer der Gatterschaltungen abgegriffen, und es wird ein Zufallsbit zugeordnet. Die jeweiligen Signalpegel schwanken dabei unvorhersehbar zwischen einem logischen L- und einem logischen H-Pegel bzw. zwischen einem 0- und einem 1-Pegel. Man erhält insofern ein Zufallssignal, dass schwankende Spannungen aufweist, mit geringem Hardware-Aufwand. In the proposed device, ring oscillator circuits are implemented, for example, from an odd number of inverters connected in series. Each of the at least three ring oscillator circuits is changed dynamically during operation in terms of their length, that is, the number of inverters coupled in series. This is done depending on conditions of two other ring oscillators. Dynamic switching creates a random waveform that can be used as the basis for random bit generation. For example, an arbitrary output signal or output level of one of the gate circuits is tapped and a random bit is assigned. The respective signal levels fluctuate unpredictably between a logical L and a logical H level or between a 0 and a 1 level. In this respect, a random signal is obtained which has fluctuating voltages with little hardware effort.
In Ausführungsformen hat jede der Ringoszillatorschaltungen eine erste und eine letzte Gatterschaltung zwischen denen mittlere Gatterschaltungen verkettet sind. Die Ausgangspegel von wenigstens zwei mittleren Gatterschaltungen und der letzten Gatterschaltung sind, insbesondere über ein schaltbares Rückkopplungsnetzwerk, als Eingangspegel der ersten Gatterschaltung zuführbar. Durch Schalten zwischen möglichen Rückkopplungspfaden entstehen während des Betriebs unterschiedlich lange Ringoszillatorschaltungen. Vorzugsweise ist immer nur ein ausgewählter Ausgangspegel in einer jeweiligen Ringoszillatorschaltung über den Rückkopplungspfad als Eingangspegel der ersten Gatterschaltung zugeführt. In embodiments, each of the ring oscillator circuits has first and last gate circuits between which middle gate circuits are interlinked. The output levels of at least two middle gate circuits and the last gate circuit can be supplied as input levels to the first gate circuit, in particular via a switchable feedback network. Switching between possible feedback paths results in ring oscillator circuits of different lengths during operation. Preferably, only a selected output level in a respective ring oscillator circuit is always supplied via the feedback path as an input level to the first gate circuit.
In Ausführungsformen der Vorrichtung hat jede Ringoszillatorschaltung eine auswählbare Länge entsprechend der Anzahl der verketteten und rückgekoppelten Gatterschaltungen. Mit Hilfe eines kombinatorischen Schaltnetzwerks kann die Länge jeder der Ringoszillatorschaltungen in Abhängigkeit von wenigstens einem Ausgangspegel einer Gatterschaltung einer ersten anderen Ringoszillatorschaltung und einem Ausgangspegel einer Gatterschaltung einer zweiten anderen Ringoszillatorschaltung wählbar sein. In embodiments of the apparatus, each ring oscillator circuit has a selectable length corresponding to the number of chained and feedback gate circuits. With the aid of a combinatorial switching network, the length of each of the ring oscillator circuits may be selectable in response to at least one output level of a gate circuit of a first other ring oscillator circuit and an output level of a gate circuit of a second other ring oscillator circuit.
In Ausführungsformen ist die Vorrichtung zum Erzeugen von Zufallsbits derart eingerichtet, dass eine Pegeländerung eines Ausgangspegels einer ausgewählten Gatterschaltung einer Ringoszillatorschaltung zu einer Änderung des Rückkopplungspfads einer anderen Ringoszillatorschaltung führt. Man erhält somit eine dynamische Veränderung der Ringoszillatorlängen, wobei die aktuelle Länge einer Ringoszillatorschaltung von Zuständen von zwei anderen Ringoszillatorschaltungen abhängt. Diese Verknüpfung von logischen Pegeln oder logischen Zuständen der Ringoszillatorschaltungen untereinander führt zu zufälligen Signalformen, die beispielsweise durch Abtasten und Zuordnen von Bitwerten oder logischen Pegeln zu Zufallsbitfolgen und damit Zufallszahlen zusammengesetzt werden können. In embodiments, the means for generating random bits is arranged such that a level change of an output level of a selected gate circuit of a ring oscillator circuit results in a change of the feedback path of another ring oscillator circuit. Thus, one obtains a dynamic change of the ring oscillator lengths, wherein the actual length of a ring oscillator circuit depends on states of two other ring oscillator circuits. This combination of logic levels or logical states of the ring oscillator circuits with each other leads to random waveforms, which can be assembled, for example, by sampling and assigning bit values or logic levels to random bit sequences and thus random numbers.
In Ausführungsformen ist die Vorrichtung mit einem in dem Rückkopplungspfad vorgesehenen Leitungsknoten ausgestattet, welcher zum Abgreifen eines Zufallssignals dient. In embodiments, the device is provided with a line node provided in the feedback path, which serves to pick up a random signal.
Die Vorrichtung kann ferner mit einer an den Leitungsknoten gekoppelten Abtasteinrichtung zum Abtasten und Halten eines Zufallssignalpegels ausgestattet sein. Beispielsweise kann ein Abtast- und Halteglied oder auch eine andere Zwischenspeichereinrichtung, wie z.B. ein Latch oder ein Flipflop, eingesetzt werden. In bevorzugten Ausführungsformen ist an den Leitungsknoten ein T-Flip-Flop angekoppelt, das aufgrund der schwankenden zufälligen Signalform des Zufallspegels bei einem Abtast- oder Ausgabezeitpunkt einen zufälligen Bitwert liefern kann. Denkbar sind auch andere Zwischenspeichereinrichtungen zum Bereitstellen eines Zufallsbitwerts. The apparatus may further be equipped with a sampling device coupled to the line node for sampling and holding a random signal level. For example, a sample and hold member or other intermediate storage means such as e.g. a latch or flip-flop. In preferred embodiments, a T flip-flop is coupled to the line node which can provide a random bit value at a sample or output time due to the random random waveform of the random level. Also conceivable are other temporary storage devices for providing a random bit value.
In Ausführungsformen können die Gatterschaltungen einer jeweiligen Ringoszillatorschaltung Inverter sein oder aufweisen. Ringoszillatoren umfassen in den meisten Fällen eine ungerade Anzahl von Invertern, die nacheinander geschaltet sind. Aufgrund der Rückkopplung ergibt sich ein oszillierendes Signal, welches mit einem Jitter beaufschlagt ist, der sich aufgrund von Laufzeitunterschieden der jeweiligen Inverter einstellen kann. Durch Akkumulieren dieses Jitters bei mehrfachen Durchläufen durch den Ringoszillator sind steigende und/oder fallende Signalflanken derart verschoben und verzerrt, dass sie nach einer gewissen Laufzeit der Vorrichtung nicht mehr erkennbar sind und einer zufälligen Signalform entsprechen. Diese in sich schon zufälligen Signalpegel bestimmen nun die aktuelle Länge anderer Ringoszillatoren, die dadurch sich ständig verändernde Signaleigenschaften haben. In embodiments, the gate circuits of a respective ring oscillator circuit may be or include inverters. Ring oscillators in most cases comprise an odd number of inverters connected in series. Due to the feedback results in an oscillating signal, which is acted upon by a jitter, which can be adjusted due to runtime differences of the respective inverter. By accumulating this jitter in multiple passes through the ring oscillator rising and / or falling signal edges are so shifted and distorted that they are no longer recognizable after a certain period of the device and correspond to a random waveform. These already random signal levels now determine the current length of other ring oscillators, which thereby have constantly changing signal properties.
In Ausführungsformen hat eine jeweilige Ringoszillatoreinrichtung wenigstens 29 Gatterschaltungen. Denkbar sind auch Ringoszillatoren mit weniger als 29 Gatterschaltungen. Es können auch mehr als drei Ringoszillatoren eingesetzt werden, die gegenseitig im Betrieb ihre Länge verändern. In embodiments, a respective ring oscillator device has at least 29 gate circuits. Also conceivable are ring oscillators with fewer than 29 gate circuits. It can also be more than three ring oscillators are used, which mutually change their length during operation.
Es wird darüber hinaus ein Verfahren zum Erzeugen von Zufallsbits mit Hilfe mindestens einer ersten, einer zweiten und einer dritten Ringoszillatorschaltung vorgeschlagen, wobei jede Ringoszillatorschaltung mehrere Gatterschaltungen, die jeweils einen Eingangspegel in einen Ausgangspegel ausgeben, aufweist. Es sind mehrere auswählbare Rückkopplungspfade zum Einkoppeln eines Ausgangspegels einer ausgewählten Gatterschaltung als Eingangspegel einer anderen Gatterschaltung der Ringoszillatorschaltung möglich. Das Verfahren umfasst die Schritte:
Abgreifen eines ersten Ausgangspegels einer Gatterschaltung der ersten Ringoszillatorschaltung;
Abgreifen eines zweiten Ausgangspegels einer Gatterschaltung der zweiten Ringoszillatorschaltung; und
Auswählen des Rückkopplungspfads einer dritten Ringoszillatorschaltung als Funktion des ersten und des zweiten Ausgangspegels. It is also proposed a method for generating random bits by means of at least a first, a second and a third ring oscillator circuit, each ring oscillator circuit having a plurality of gate circuits, each outputting an input level to an output level. Several selectable feedback paths are possible for coupling an output level of a selected gate circuit as an input level of another gate circuit of the ring oscillator circuit. The method comprises the steps:
Picking up a first output level of a gate circuit of the first ring oscillator circuit;
Picking up a second output level of a gate circuit of the second ring oscillator circuit; and
Selecting the feedback path of a third ring oscillator circuit as a function of the first and second output levels.
Das Verfahren kann insbesondere in FPGAs oder ASICs implementiert werden. Es ergibt sich insbesondere ein kontinuierlicher Betrieb, bei dem die Rückkopplungspfade verändert werden und der Ausgangspegel einer Gatterschaltung als Zufallssignal abgetastet wird. The method can be implemented in particular in FPGAs or ASICs. In particular, there is a continuous operation in which the feedback paths are changed and the output level of a gate circuit is sampled as a random signal.
In Ausführungsformen ist die Vorrichtung Teil einer FPGA-Einrichtung oder einer ASIC-Einrichtung. In embodiments, the device is part of an FPGA device or an ASIC device.
Weiterhin wird ein Computerprogramm-Produkt vorgeschlagen, welches auf einer programmgesteuerten Einrichtung die Durchführung eines entsprechenden Verfahrens veranlasst. Das Verfahren kann insbesondere über geeignete Beschreibungssprachen, beispielsweise VHDL oder Verilog, auf oder in einer FPGA- oder ASIC-Vorrichtung implementiert werden. Furthermore, a computer program product is proposed, which causes the execution of a corresponding method on a program-controlled device. The method can in particular be implemented on or in an FPGA or ASIC device via suitable description languages, for example VHDL or Verilog.
Ein Computerprogramm-Produkt wie ein Computerprogramm-Mittel kann beispielsweise als Speichermedium, wie Speicherkarte, USB-Stick, CD-ROM, DVD, oder auch in Form einer herunterladbaren Datei von einem Server in einem Netzwerk bereitgestellt oder geliefert werden. Dies kann zum Beispiel in einem drahtlosen Kommunikationsnetzwerk durch die Übertragung einer entsprechenden Datei mit dem Computerprogramm-Produkt oder dem Computerprogramm-Mittel erfolgen. Als programmgesteuerte Einrichtung kommt insbesondere eine Steuereinrichtung, wie zum Beispiel ein Mikroprozessor für eine Smartcard oder dergleichen, in Frage. Das Verfahren oder die Vorrichtung kann auch festverdrahtet oder in konfigurierbaren FPGAs oder ASICSs implementiert werden. A computer program product such as a computer program means can be provided or supplied, for example, as a storage medium, such as a memory card, USB stick, CD-ROM, DVD, or even in the form of a downloadable file from a server in a network. This can be done, for example, in a wireless communication network by the transmission of a corresponding file with the computer program product or the computer program means. As a program-controlled device is in particular a control device, such as a microprocessor for a smart card or the like, in question. The method or device may also be hardwired or implemented in configurable FPGAs or ASICSs.
Weiterhin wird ein Datenträger mit einem gespeicherten Computerprogramm mit Befehlen vorgeschlagen, welche die Durchführung eines entsprechenden Verfahrens auf einer programmgesteuerten Einrichtung veranlassen. Furthermore, a data carrier with a stored computer program with commands is suggested, which cause the implementation of a corresponding method on a program-controlled device.
Weitere mögliche Implementierungen der Erfindung umfassen auch nicht explizit genannte Kombinationen von zuvor oder im Folgenden bezüglich der Ausführungsbeispiele beschriebenen Vorrichtungen oder Verfahrensvarianten. Dabei wird der Fachmann auch Einzelaspekte als Verbesserungen oder Ergänzungen zu der jeweiligen Grundform der Erfindung hinzufügen oder abändern. Further possible implementations of the invention also include not explicitly mentioned combinations of devices or method variants described above or below with regard to the exemplary embodiments. The skilled person will also add or modify individual aspects as improvements or additions to the respective basic form of the invention.
Die oben beschriebenen Eigenschaften, Merkmale und Vorteile dieser Erfindung sowie die Art und Weise, wie diese erreicht werden, werden klarer und deutlicher verständlich im Zusammenhang mit der folgenden Beschreibung der Ausführungsbeispiele, die im Zusammenhang mit den Zeichnungen näher erläutert werden. The above-described characteristics, features, and advantages of this invention, as well as the manner in which they will be achieved, will become clearer and more clearly understood in connection with the following description of the embodiments, which will be described in detail in conjunction with the drawings.
Dabei zeigen: Showing:
In den Figuren sind funktionsgleiche Elemente mit denselben Bezugszeichen versehen, sofern nichts anderes angegeben ist. In the figures, functionally identical elements are provided with the same reference numerals, unless stated otherwise.
Die
Die erste Ringoszillatorschaltung
Beim Betrieb des Zufallszahlengenerators
Der Ringoszillatorschaltung
Als Auswahlsignale S empfängt die Auswahleinrichtung
Im Wesentlichen sind die Ringoszillatorschaltungen
Beim Betrieb der Vorrichtung zum Erzeugen von Zufallsbits
Die eingesetzten Auswahlschaltungen
Obwohl lediglich drei Ringoszillatorschaltungen
Die
Die erste Ringoszillatorschaltung
Die Auswahleinrichtung
Ähnlich sind die zweiten und dritten Ringoszillatorschaltungen
Die Anmelderin hat eine Vorrichtung gemäß der
Die jeweils aktuelle Länge des ersten Ringoszillators
Ähnlich erfolgt die Umschaltung zwischen den Längen der Ringoszillatoren
Für den dritten Ringoszillator
Bei einer Implementierung auf einem FPGA kann die Verschaltung in einer Hardwarebeschreibungssprache (z.B. VHDL oder Verilog) als Konfigurationsdatei abgespeichert werden. When implemented on an FPGA, the circuitry may be stored in a hardware description language (e.g., VHDL or Verilog) as a configuration file.
In den
Man erkennt, dass bereits nach etwa t > 80 ns die Kurven der
In der
Wird das Zufallssignal ZS abgetastet, erhält man einen Signalpegel, der unvorhersehbar 0 oder 1 entspricht. Insbesondere bei der Implementierung auf ASICs ist es vorteilhaft, dass aufgrund der relativ einfachen Topologie der Ringoszillatorschaltungen auf XOR-Gatter verzichtet werden kann, die auf ASICs im Vergleich zu den eingesetzten Invertern meist deutlich langsamer sind. Es kann schnell, in dem vorliegenden Beispiel bereits nach 80 ns, ein echtes Zufallsbit abgegriffen werden. Das vorgeschlagene Verfahren bzw. die vorgeschlagene Vorrichtung zum Erzeugen von Zufallsbits haben insbesondere den Vorteil der einfachen Implementierung auf ASICs und FPGAs bei geringem Hardwareaufwand und einer hohen Zufallsbitrate. If the random signal ZS is sampled, one obtains a signal level which unpredictably corresponds to 0 or 1. In particular, when implemented on ASICs, it is advantageous that due to the relatively simple topology of the ring oscillator circuits can be dispensed with XOR gates, which are usually much slower on ASICs compared to the inverters used. It can quickly, in the present example after 80 ns, a real random bit can be tapped. The proposed method and the proposed device for generating random bits in particular have the advantage of simple implementation on ASICs and FPGAs with a low hardware outlay and a high random bit rate.
Ein drittes Ausführungsbeispiel ist in der
Obwohl die Erfindung im Detail durch das bevorzugte Ausführungsbeispiel näher illustriert und beschrieben wurde, so ist die Erfindung nicht durch die offenbarten Beispiele eingeschränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen. Although the invention has been further illustrated and described in detail by the preferred embodiment, the invention is not limited by the disclosed examples, and other variations can be derived therefrom by those skilled in the art without departing from the scope of the invention.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102014219795.3A DE102014219795A1 (en) | 2014-09-30 | 2014-09-30 | Apparatus and method for generating random bits |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102014219795.3A DE102014219795A1 (en) | 2014-09-30 | 2014-09-30 | Apparatus and method for generating random bits |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102014219795A1 true DE102014219795A1 (en) | 2016-03-31 |
Family
ID=55485787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102014219795.3A Withdrawn DE102014219795A1 (en) | 2014-09-30 | 2014-09-30 | Apparatus and method for generating random bits |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102014219795A1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102008018678A1 (en) * | 2008-04-14 | 2009-10-22 | Siemens Aktiengesellschaft | Apparatus and method for generating a random bit string |
-
2014
- 2014-09-30 DE DE102014219795.3A patent/DE102014219795A1/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102008018678A1 (en) * | 2008-04-14 | 2009-10-22 | Siemens Aktiengesellschaft | Apparatus and method for generating a random bit string |
Non-Patent Citations (1)
Title |
---|
Li, Lijuan; LI, Shuguo: A digital TRNG based on cross feedback ring oscillators. In: IEICE transactions, E, English transactions, A, Fundamentals of electronics, communications and computer sciences, Vol. E97-A, 2014, no. 1, S. 284-291. - ISSN 1745-1337 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2976707B1 (en) | System and method for generating random bits | |
DE112011106024B4 (en) | Device specific information generating apparatus and device specific information generating method | |
DE102008048292B4 (en) | Apparatus and method for generating a random bit string | |
EP1354264B1 (en) | Random number generator and method for generating a random number | |
DE60122787T2 (en) | DIGITAL FREQUENCY RECYCLER | |
DE102013222218A1 (en) | Method for constructing circuit used for generating random bits used in asymmetric authentication method, involves linking specific functions with a pretext of a related function as another function, to perform fixed point free mapping | |
WO2009127475A1 (en) | Device and method for generating a random bit sequence | |
DE102014102501A1 (en) | Random number generator | |
DE112008001707T5 (en) | Cryptographic random number generator using finite field operations | |
DE102016119750A1 (en) | Apparatus and methods for multichannel scanning | |
DE102014200163A1 (en) | A method for generating an output of a random source of a random number generator | |
DE102014219795A1 (en) | Apparatus and method for generating random bits | |
DE102014224421A1 (en) | Method and apparatus for generating random bits | |
DE102015203580A1 (en) | Apparatus and method for generating random bits | |
DE19910729C1 (en) | Random number generator and method for generating random numbers | |
DE102014203648A1 (en) | Device for generating random bits in random number generator, has detecting device that is provided to detect various random bits when successive level of input signal changes | |
DE102014203649A1 (en) | Method for classifying and/or generating random bits, for mobile applications, involves classifying output signal from logic elements in ring oscillator circuit as random coincidence signal/non-random function of occurring bit patterns | |
DE102008027391A1 (en) | Circuit, method for receiving a signal and use of a random generator | |
WO2015000640A1 (en) | Generation of a number of random bits | |
DE102013210147A1 (en) | Generate random bits | |
DE102014226996A1 (en) | Method and apparatus for generating random bits | |
WO2015176836A1 (en) | Apparatus and method for generating random bits | |
DE102016207448A1 (en) | Device with a plurality of digital gate circuits and method for operating the same | |
EP2799980A2 (en) | Device and method for generating random bits | |
DE102014219693A1 (en) | Method and apparatus for generating random bits |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R163 | Identified publications notified | ||
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |