Beschreibung
Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
Die vorliegende Erfindung betrifft Vorrichtungen und Verfahren zum Erzeugen von Zufallsbits und Zufallsbitfolgen. Dies dient beispielsweise zur Implementierung eines Zufallszahlengenerators .
Zufallszahlen, welche in digitaler Form als Zufallsbitfolgen auftreten, werden häufig in sicherheitsrelevanten Anwendungen benötigt. Es ist beispielsweise bei asymmetrischen Authenti- fikationsverfahren notwendig, Zufallszahlen zu erzeugen und zu verwenden. Insbesondere bei RFID-Tags mit Sicherheitsfunk- tionalität sind entsprechende Zufallszahlen mit besonders niedrigem Hardwareaufwand zu generieren. Wünschenswert ist es dabei, lediglich digitale Logikschaltungen, welche aufwandsgünstig implementiert werden können, einzusetzen.
In der Vergangenheit wurden Zufallszahlengeneratoren zum Beispiel unter Verwendung analoger Rauschquellen, deren Signale digitalisiert werden, verwendet. Hybride Analog/Digital- Schaltungen sind jedoch nur aufwändig zu implementieren.
Ein Zufallszahlengenerator, der praktisch ausschließlich digitale Logikschaltungen aufweist, ist in der
WO 2006/015624 Al beschrieben. In dieser internationalen Patentanmeldung wird vorgeschlagen, zufällige Phasenschwankungen von aus digitalen Gattern aufgebauten Ringoszillatoren zu verwenden. Gemäß der WO 2006/015624 Al eignen sich jedoch lediglich sehr spezielle Ringoszillatoren, nämlich Fibonacci- oder Galois-Ringoszillatoren mit besonderen Eigenschaften zum Einsatz in einen Zufallszahlengenerator. Bei einem derart aufgebauten Schaltkreis wird davon ausgegangen, dass die Ringoszillatoren keine Fixpunkte aufweisen dürfen. Diese Bedingung kann insbesondere für Fibonacci- oder Galois- Oszillatorschaltkreise durch mathematische Gleichungen dargestellt werden, die gemäß der WO 2006/015624 Al erfüllt sein
müssen. Bei einer entsprechenden Implementierung ist daher zunächst zu prüfen, ob ein Ringoszillator Fixpunkte aufweist. Nachteilig ist damit die Auswahl von in Frage kommenden Oszillatorschaltkreisen sehr eingeschränkt.
Es ist daher eine Aufgabe der vorliegenden Erfindung, eine verbesserte Vorrichtung zum Erzeugen von Zufallsbits zu schaffen .
Diese Aufgabe wird durch eine Vorrichtung mit den Merkmalen des Patentanspruchs 1 gelöst.
Demgemäß weist eine Vorrichtung zum Erzeugen einer Zufallsbitfolge einen digitalen Ringoszillatorschaltkreis mit min- destens einem ersten Rückkopplungspfad und einem zweiten
Rückkopplungspfad auf. Dabei erfolgt zu vorgebbaren Zeitpunkten eine Umschaltung zwischen den Rückkopplungspfaden, und an einem Ausgangsknoten des Ringoszillatorschaltkreises ist ein Zufallssignal mit einem zufälligen Pegelverlauf abgreifbar.
Bei digitalen Ringoszillatorschaltungen ist in der Regel eine ungerade Anzahl von logischen Gattern rückgekoppelt. Das heißt, der Ausgang eines der logischen Gatter ist mit dem Eingang eines anderen logischen Gatters verknüpft. Dadurch können Oszillationen entstehen, die unter bestimmten Bedingungen nicht voraussagbare Signalformen annehmen, also Zufallssignale darstellen. Es nun vorgesehen, mehrere mögliche Rückkopplungspfade vorzusehen, zwischen denen umgeschaltet werden kann. Dadurch lässt sich eine verbesserte zufällige Signaleigenschaft des Zufallssignals erzielen. Durch die Umschaltung, welche veränderte Oszillationseigenschaften des Ringoszillators hervorrufen, lassen sich damit ohne größeren Aufwand Zufallsbits erzeugen.
Durch thermische oder quantenmechanische Vorgänge innerhalb der zur Implementierung des Oszillators verwendeten Halbleiterbauelemente entstehen zum Beispiel Phasenschwankungen oder Jitter, welche zufällige interne Signal- oder Potenzialver-
laufe hervorrufen. Die logischen Bauelemente, beispielsweise eine ungerade Anzahl von Inverterschaltungen, können zum Beispiel zum Ausbilden eines Ringoszillators kaskadenförmig zu einem Ring gekoppelt sein. In der Regel hängt die grundlegen- de Oszillationsfrequenz von der Anzahl der verwendeten Inver- ter- oder Logikschaltungen ab. Durch unterschiedlich auftretende Verzögerungen bei der Signalverarbeitung durch die einzelnen logischen Bauelemente stellt sich in der Regel keine konstante Phase sondern ein Jitter ein, so dass häufig unre- gelmäßige Signalformen auftreten.
Es kann jedoch nicht grundsätzlich davon ausgegangen werden, dass auch für lange Zeiträume immer ein absolut zufälliger "Schwingungsverlauf" vorliegt. Jeder Ringoszillatorschalt- kreis weist in seinem Signalverlauf nach dessen Aktivierung beziehungsweise Starten zufällige zeitliche Pegelverläufe auf, die prinzipiell allerdings auch nach einem Einschwingvorgang in einem deterministischen Verlauf münden können.
Durch das Umschalten der Rückkopplungspfade wird jedoch das Einschwingen in beispielsweise einen Fixpunkt verhindert. Es kann zum Beispiel taktgesteuert oder periodisch die jeweilige Rückkopplung des Ringoszillatorschaltkreises verändert werden. Selbst wenn das Grundkonzept des jeweiligen Ringoszilla- tors zu periodischen Schwingungen neigt, und dieser daher zunächst ungeeignet erscheint, Zufallssignale zu erzeugen, erreicht man durch die Umschaltung, dass derartige potentiell periodische Schwingungen gestört werden. Es stellt sich dadurch immer ein nicht periodisches zufälliges Schwingungsver- halten ein, aus dem eine große Entropie zum weiteren Erzeugen von zufälligen Bitwerten gewonnen werden kann. Es ist dabei auch möglich, kürzere Fibonacci- oder Galois-Ringoszillatoren einzusetzen, wodurch der Hardware- und Implementierungsaufwand reduziert wird. Eine Umschaltung erfolgt zum Beispiel derart, dass zwischen mindestens zwei verschiedenen Galois- beziehungsweise Fibonacci-Rückkoppelungen umgeschaltet wird.
Die Vorrichtung zum Erzeugen einer Zufallsbitfolge hat daher insbesondere den Vorteil, dass sie einfach zu implementieren ist und Berechnungen, wie sie beispielsweise beim Stand der Technik zum Ausschließen eines Fixpunktes notwendig sind, nicht durchgeführt werden müssen. Als Ringoszillatorschaltkreise kommt damit eine größere Klasse von Oszillatoren in Frage. Ferner haben allgemeine Ringoszillatoren, die in dem einen oder anderen Betriebszustand, welcher abhängig von der eingestellten Rückkopplung ist, den Vorteil, dass selbst bei Erreichen des Fixpunktes, was bei der vorgeschlagenen Vorrichtung zum Erzeugen einer Zufallsbitfolge für die Güte der Zufälligkeit unschädlich ist, der Energieverbrauch stark zurückgeht. Dies trifft insbesondere bei einer Implementierung der entsprechenden Schaltungsanordnungen in CMOS-Technologie zu .
Die Umschaltung zwischen Rückkopplungspfaden ermöglicht die Verwendung von nur wenigen seriell verschalteten logischen Bauelementen. Dadurch wird eine zusätzliche Energieeinsparung erzielt. Es ist zum Beispiel in einem Ausführungsbeispiel lediglich eine Schalteinrichtung zusätzlich vorgesehen, welche zu vorgegebenen Zeitpunkten eine Umschaltung des Rückkopplungspfades vornimmt. Dies kann zum Beispiel in Abhängigkeit von einem Schaltsignal erfolgen. Das Schaltsignal entspricht vorzugsweise einem Takt, wodurch eine Umschaltung zwischen den Rückkopplungspfaden periodisch vorgenommen wird.
Durch die besonders aufwandsgünstige Implementierung, die vorzugsweise ausschließlich digitale Bauelemente aufweist, ist eine Realisierung in der Art einer FPGA-Schaltung besonders günstig. Unter einem FPGA versteht man programmierbare integrierte Schaltkreise in der Digitaltechnik. FPGAs können durch eine Konfiguration interner Strukturen, die logische Gatter bilden können, "im Feld" programmiert werden (FPGA = Field Programable Gate Array) . Selbstverständlich kann die entsprechende Vorrichtung zum Erzeugen von Zufallszahlen auch als anwendungsspezifische integrierte Schaltung (ASIC = Application Specific Integrated Circuit) ausgeführt werden, zum
Beispiel in CMOS. Die gegenüber üblichen Schaltungsanordnungen zum Erzeugen von Zufallssignalen verbesserte Vorrichtung kann auch aus diskreten Bauelementen aufgebaut werden, wenn zum Beispiel eine bereits eingesetzter älterer Zufallsbitge- nerator ersetz oder umgebaut wird, um die Zufälligkeit des erzeugten Signals zu erhöhen.
In einer Ausführungsform der Vorrichtung ist ein an den Ausgangsknoten gekoppeltes Zwischenspeicherelement vorgesehen, welches in Abhängigkeit von dem Zufallssignal einen logischen Pegel speichert.
Es ist zum Beispiel möglich, ein Zwischenspeicherelement als Flip-Flop auszubilden, welches beim Durchlaufen eines vorbe- stimmbaren logischen Schwellwertes seinen internen abgespeicherten Zustand wechselt. Bekannte Flip-Flops wechseln zum Beispiel den intern abgespeicherten logischen Zustand bei jeder steigenden oder fallenden Signalflanke des eingekoppelten Zufallssignals. Das heißt, sofern das Zufallssignal zwischen zwei logischen Pegeln unregelmäßig schwankt, liefert das Zwischenspeicherelement einen Zufallsbitwert, der von der nicht bestimmbaren Anzahl von beispielsweise steigenden oder fallenden Flanken des Zufallssignals abhängt. Beispielsweise kann das Zwischenspeicherelement einen dem Zufallssignal ent- sprechenden logischen Pegel speichern.
Es ist dabei denkbar, dass das Zwischenspeicherelement, wie beispielsweise ein Flip-Flop, in Abhängigkeit von einem Abtastsignal einen dem Zufallssignal entsprechenden logischen Pegel speichert. Ein Abtastsignal, beispielsweise ein externes Taktsignal, führt dazu, dass zu bestimmten Zeitpunkten der Pegel des Zufallssignals von dem Zwischenspeicherelement erfasst wird und entweder als Zufallsbit verwendet wird oder auch ein Invertieren des gespeicherten logischen Pegels im Zwischenspeicherelement hervorruft. Das Schaltsignal zum Umschalten zwischen den Rückkopplungspfaden kann vorzugsweise eine höhere Frequenz aufweisen als das Abtastsignal. Ebenso denkbar ist jedoch auch, dass Das Startsignal, das Umschalt-
signal und das Abtastsignal dieselbe Frequenz haben und synchron oder gegeneinander zeitlich versetzt sind. Letzteres hat den Vorteil, dass nicht unterschiedliche Signalerzeugungseinrichtungen für die Signale notwendig sind.
Ein entsprechendes Startsignal zum Neustarten des Ringoszillators kann zum Beispiel von einer Rechtecksignalerzeugungs- einrichtung geliefert werden, welche ein Startsignal mit wechselnden logischen Pegeln erzeugt. Insofern wird der ein- gesetzte Ringoszillatorschaltkreis regelmäßig neu gestartet und zeigt ein zufälliges Einschwingverhalten.
In einer bevorzugten Ausführungsform der Vorrichtung ist eine Steuerungseinrichtung vorgesehen, welche zum Beispiel gemäß einer Programmierung ein Abgreifen eines Zufallsbitwertes an dem Ausgangsknoten oder Zwischenspeicherelement und/oder die Erzeugung des Startsignals und/oder des Umschaltsignals ver- anlasst .
Die Erzeugung einer Zufallsbitfolge kann insbesondere durch
Invertieren eines an den Ausgangsknoten angeschlossenen Flip- Flops bei jedem 0-1-Durchgang des Zufallssignals erfolgen, wobei die Zufallsbits auch durch periodisches Sampeln oder Abtasten des zwischengespeicherten logischen Pegels dieses Flip-Flops bestimmbar sind.
Die Erfindung sieht auch eine Verwendung eines digitalen Ringoszillatorschaltkreises mit mindestens einem ersten Rückkopplungspfad und einem zweiten Rückkopplungspfad vor. Dabei wird ein jeweiliger Rückkopplungspfad zu vorgegebenen Zeitpunkten umgeschaltet, und an einem Ausgangsknoten des Ringoszillators ist ein Zufallssignal mit einem zufälligen Pegelverlauf abgreifbar. Dies dient dem Erzeugen mindestens eines Zufallsbits .
In einer Weiterbildung der Erfindung ist ein Zufallszahlengenerator mit einer vorbeschriebenen Vorrichtung zum Erzeugen einer Zufallsbitfolge vorgeschlagen. Diese kann zum Beispiel
in einem RFID-Chip eingesetzt werden. Der Chip weist dann eine Vorrichtung zur Erzeugung einer Zufallsbitfolge und einer Kryptographieeinrichtung auf, wobei mehrere von dem Zufallssignal abgeleitete Zufallsbits von der Kryptographieeinrich- tung zur Durchführung einer kryptographischen Authentikation, zur Erzeugung einer kryptografischen Signatur und/oder zur Erzeugung eines kryptographischen Schlüssels verwendet werden .
Die Erfindung betrifft ferner ein Verfahren zum Erzeugen einer Zufallsbitfolge gemäß Patentanspruch 19.
Demgemäß ist ein Verfahren zum Erzeugen einer Zufallsbitfolge vorgeschlagen, bei dem in Abhängigkeit von einem Pegelverlauf eines an einem digitalen Ringoszillatorschaltkreis abgegriffenen Zufallssignal Zufallsbitwerte bestimmt werden vor, wobei der verwendete digitale Ringoszillatorschaltkreis mindestens einen ersten Rückkopplungspfad und einen zweiten Rückkopplungspfad aufweist. Zu vorgegebenen Zeitpunkten erfolgt ein Umschalten zwischen den Rückkopplungspfaden. Dabei ist an einem Ausgangsknoten des Ringoszillatorschaltkreises ein Zufallssignal mit einem zufälligen Pegelverlauf abgreifbar.
In einer Variante der Verfahrens werden dabei die folgenden Verfahrensschritte durchgeführt: Aktivieren eines digitalen Ringoszillatorschaltkreises, Umschalten zwischen dem ersten und dem zweiten Rückkopplungspfad, und Abgreifen eines oder mehrerer Pegelwerte eines von dem Ringoszillatorschaltkreis erzeugten oszillierenden Zufallssignals.
Das entsprechende Verfahren kann zum Beispiel durch geeignete Programmierung programmierbarer digitaler Logikschaltungen, wie beispielsweise FPGAs implementiert werden. Ein Aktivieren des Ringoszillatorschaltkreises kann zum Beispiel durch Ein- schalten oder Ankoppeln einer geeigneten Versorgungsspannung an die entsprechende Schaltungsanordnung erfolgen. Ferner ist ein Aktivieren entsprechend einer jeweiligen Implementierung der Ringoszillatorschaltung durch Ankoppeln eines geeigneten
Steuer- oder Startsignals möglich. Unter Aktivieren ist ein Vorgang zu verstehen, der in einer Oszillation des Ringoszillatorschaltkreises, vorzugsweise ausgehend von einem vorgegebenen Startzustand der eingesetzten Logikgatter, resultiert.
Dabei kann der Ringoszillatorschaltkreis zum Erzeugen mehrerer Zufallsbitwerte mehrfach aktiviert werden. Die vorgeschlagenen Verfahrensschritte können dabei zeitlich unabhängig voneinander durchgeführt werden. Insbesondere die Um- schaltvorgänge zwischen den Rückkopplungspfaden fördern dabei die Randomisierung im Pegelverlauf.
Wie bereits hinsichtlich der Vorrichtung zum Erzeugen einer Zufallsbitfolge erläutert wurde, kann das Zufallssignal mehr- fach abgetastet werden und in Abhängigkeit von einem jeweiligen Pegelwert des Zufallssignals ein logischer Pegel eines Zufallsbits verändert werden. Dies kann beispielsweise durch ein Zwischenspeicherelement wie zuvor beschrieben wurde erzielt werden.
Weitere vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche sowie der im Folgenden beschriebenen Ausführungsbeispiele.
Im Folgenden wird die Erfindung unter Bezugnahme auf die beigelegten Figuren und anhand einiger Ausführungsbeispiele näher erläutert. Es zeigt dabei:
Fig. 1 ein Ausführungsbeispiel eines Zufallszahlengenera- tors;
Fig. 2 eine erste Ausführungsform eines Ringoszillatorschaltkreises;
Fig. 3 einen Verlauf eines Zufallssignals der ersten Ausführungsform eines Ringoszillatorschaltkreises;
Fig. 4 eine zweite Ausführungsform eines Ringoszillatorschaltkreises;
Fig. 5 einen Verlauf eines Zufallssignals der zweiten Aus- führungsform eines Ringoszillatorschaltkreises;
Fig. 6 eine dritte Ausführungsform eines Ringoszillatorschaltkreises; und
Fig. 7 ein beispielhaftes Ablaufdiagramm eines Verfahrens zum Erzeugen von Zufallsbitfolgen.
In den Figuren sind gleiche oder funktionsgleiche Elemente mit denselben Bezugszeichen versehen worden, sofern nichts anderes angegeben ist.
In der Fig. 1 ist beispielhaft ein Zufallszahlengenerator 1 dargestellt. Der Zufallszahlengenerator 1 weist einen Ringoszillatorschaltkreis 2 mit einem Eingangsknoten 3 und einem Ausgangsknoten 4 auf. Ausführungsbeispiele für Ringoszillatoren sind zum Beispiel in den folgenden Fig. 2, 4 und 6 näher erläutert .
Beispielsweise kann ein Ringoszillator durch kaskadierte Ver- Schaltung mehrerer Inverter realisiert werden. Inverter oder auch andere logische Bauelemente dienen dabei als Verzögerungselemente, wobei nicht vorhersagbare Schwankungen der einzelnen Verzögerungszeiten nicht vorhersagbare Oszillationsvariationen, so genannte Jitter, hervorrufen. Die Verzöge- rungsschwankungen beruhen in der Regel auf verschiedenen internen und externen Rauschfaktoren, wie beispielsweise die Hardwareimplementierung der Bauelemente und Strom-, Span- nungs- und/oder Temperaturschwankungen. Sofern, wie es bei Inverter oder logischen Gattern der Fall ist, die Verzöge- rungszeit extrem kurz ist, liefern diese nichtvorhersagbaren Fluktuationen zufällige Pegelverläufe des prinzipiell oszillierenden Signals, welches an dem Ausgangsknoten 4 als Zufallssignal OS abgreifbar ist.
Der Ringoszillator 2 weist ferner einen Anschluss 5 für ein Umschaltsignal CTl auf. Intern hat der Ringoszillatorschaltkreis wie bereits oben angedeutet seriell oder kaskadiert verschaltete logische Bauelemente, die jedoch über mindestens zwei verschiedene Rückkopplungspfade rückkoppelbar sind. In Abhängigkeit von dem Umschaltsignal CTl erfolgt eine Veränderung des Rückkopplungspfades im Ringoszillator 2. Damit ist eine zusätzliche Randomisierung geschaffen, da beim Verändern des jeweiligen Rückkopplungspfades eine Störung der sich einstellenden Signalverläufe erfolgt.
Der Ringoszillatorschaltkreis 2 lässt sich durch ein geeignetes Startsignal ST, welches dem Eingangsknoten 3 eingekoppelt ist, aktivieren beziehungsweise starten. Es ist prinzipiell möglich, dass der Ringoszillatorschaltkreis 2 aufgrund seines internen Aufbaus einen Fixpunkt aufweist, das heißt stabile Zustände existieren, in denen die logischen Bauelemente logische Zustände aufweisen, die sich zeitlich nicht mehr ändern. Bis zum Erreichen eines derartigen Fixpunktes erfolgt jedoch eine praktisch zufällige Veränderung der entsprechenden abgreifbaren Pegel. Zudem wird durch die Umschaltung und damit Veränderung der Schaltungstopologie des Ringoszillators 2 in der Regel verhindert, dass überhaupt ein stabiler Zustand in- nerhalb des Ringoszillators entsteht.
Das Zufallssignal OS ist einem Zwischenspeicherelement 8, zum Beispiel einer Flip-Flop-Einrichtung, zugeführt. Die Flip- Flop-Einrichtung 8, beispielsweise ein D-Flip-Flop, nimmt an einem Dateneingang das Zufallssignal an und liefert an einem Datenausgang einen zwischengespeicherten logischen Pegel als Zufallsbit ZB. Da das Zufallssignal OS zeitlich fluktuiert und zufällig schwankt, ist zum Beispiel denkbar, dass durch Einkoppeln eines Abtastsignals, beispielsweise in der Form eines Taktsignals CLK, an einen Takteingang des Flip-Flop 8, der zum Abtastzeitpunkt also zum Beispiel beim Vorliegen einer steigenden oder fallenden Taktflanke, gegenwärtige Wert
des Zufallssignals OS erfasst beziehungsweise zwischenspeichert wird.
Ein entsprechendes Abtast- oder Taktsignal CLK wird in der beispielhaften Darstellung der Fig. 1 durch eine Steuereinrichtung 6 geliefert. Die Steuereinrichtung 6 erzeugt ebenfalls ein geeignetes Umschaltsignal CTl, welches zum Umschalten des Rückkopplungspfades im Ringoszillatorschaltkreis 2 an dessen Anschluss 5 geführt ist, und ein Steuersignal CT2, um einen Rechtecksignalgenerator 7, der das Startsignal ST an den Eingangsknoten 3 des Ringoszillators 2 liefert, zu steuern .
Durch beispielsweise periodisches Umschalten zwischen den Rückkopplungspfaden und damit den inhärenten Oszillationseigenschaften des Ringoszillatorschaltkreises 2 sind potentiell vorhandene Fixpunkte unkritisch für die Zufallszahl beziehungsweise Zufallsbiterzeugung. Durch das Vorsehen mehrerer Kopplungsmöglichkeiten beziehungsweise Pfade und die Umschal- tung zwischen denselben, wird in der Regel nur das Einschwingverhalten, welches nicht deterministisch erfolgt, beim Abgreifen des Zufallssignals OS berücksichtigt. Insofern eignet sich zum Einsatz als Ringoszillatorschaltkreis jeder konventionelle Ringoszillator, der dahingehend modifiziert wird, dass mehrere alternative Rückkopplungspfade vorgesehen werden, zwischen denen umgeschaltet werden kann.
Es sind verschiedene Ausführungsbetriebsmodi des Zufallszahlengenerators 1 denkbar. Zum Beispiel kann, wie zuvor be- schrieben wurde, zu jedem Abtastzeitpunkt das Zufallssignal
OS durch das Zwischenspeicherelement 8 erfasst werden und als ein Zufallsbit ZB ausgegeben werden. Dies wird beispielsweise in ein Schieberegister 9 eingeführt. Nach einer vorgegebenen Anzahl von Abtastzeitpunkten liegt damit eine Zufallsbitfolge in dem Schieberegister 9 vor. Alternativ kann, auch wenn es in der Fig. 1 nicht explizit dargestellt ist, auch das Schieberegister durch das Taktsignal CLK angesteuert werden. An einem Ausgang 11 des Zufallszahlengenerators 1 ist dann eine
binär kodierte Zufallszahl ZZ abgreifbar, deren binäre Stellen beispielsweise taktweise auslesbar sind.
Alternativ kann das Zwischenspeicherelement oder Flip-Flop 8 auch derart ausgestaltet sein, dass bei jedem 0-1- oder auch 1-0-Durchgang des Zufallssignals OS der intern gespeicherte Wert des Zufallsbits ZB im Zwischenspeicherelement 8 geändert wird. Damit wird als zusätzliches zufälliges Element die Anzahl der Schwankungen oder Oszillationen des Zufallssignals OS zur Erzeugung eines Zufallsbits verwendet. In Abhängigkeit von dem Abtast- oder Taktsignal CLK wird dann der zufällig erzeugte Pegelzustand im Zwischenspeicherelement 8 als Zufallsbit ZB ausgegeben.
Es ist weiterhin denkbar, vor jeder Zufallsbiterzeugung den Ringoszillatorschaltkreis 2 zurückzusetzen beziehungsweise erneut zu starten, um die Gefahr des Erreichens eines Fixpunktes zu reduzieren. Vorzugsweise wird bei dem Rücksetzen oder Initialisieren des Ringoszillatorschaltkreises vorgege- ben, dass der Startzustand, also die logischen Pegel aller logischen und digitalen Bauelemente, welche in dem Ringoszillatorschaltkreis 2 verwendet werden, nicht dem eines Fix- punktzustandes entsprechen.
Im Folgenden sind beispielhafte Ringoszillatorschaltkreise mit umschaltbaren Rückkopplungspfaden näher erläutert, welche sich zum Einsatz in einer Vorrichtung zur Erzeugung von Zufallsbitfolgen eignen.
Der Figur 2 ist ein Ringoszillatorschaltkreis 2 dargestellt, der sechzehn seriell verschaltete logische Bauelemente 12-27 aufweist. Dabei ist das nullte logische Bauelement als NAND- Gatter 12 ausgeführt und die übrigen logischen Bauelemente 13-27 als Inverterstufen . Diese Anordnung ist äquivalent zu 16 seriell angeordneten Inverter-Gattern . Die jeweiligen Ausgangssignale sind als W0-W15 bezeichnet. Das erste logische Bauelemente 12, also das NAND-Gatter hat zwei Eingänge 37 und 38, wovon der zweite Eingang 38 an den Eingangsknoten 3 des
Ringoszillators 2 verbunden ist. An den Eingangsknoten 3 ist ein Startsignal ST gekoppelt. Am Ausgang 39 des NAND-Gatters 12 ist das Zufallssignal OS abgreifbar, welches an den Ausgangsknoten 4 des Ringoszillators 2 geführt ist.
Das Ausgangssignal W15 des letzten, also fünfzehnten Inver- ters 27 ist als ein äußeres Rückkopplungssignal R15 dem Eingang 37 des NAND-Gatters 12 zugeführt. Neben diesem äußeren Rückkopplungspfad R sind ferner an den Ausgängen des ersten Inverters 13, des dritten Inverters 15, des fünften Inverters 15, des achten Inverters 20, des elften Inverters 23 und des vierzehnten Inverters 26 die jeweilige Ausgangssignale Wl, W3, W5, W8, WIl und W14 abgegriffen und liegen als potentielle Rückkopplungssignale Rl, R3, R5, R8, RIl und R14 bereit.
Die Rückkopplungssignale Rl, R3, R5 und RIl sind über Addierer 29, 30, 31, 33 dem äußeren Rückkopplungssignal R15 aufaddiert und bilden damit feste unveränderbare Rückkopplungspfade. Die ebenfalls vorliegenden Rückkopplungssignale R8 und R14 lassen sich über eine Schalteinrichtung 28 ebenfalls als Rückkopplungspfade schalten. Dazu sind die Rückkopplungssignale R8 und R14 an Eingänge 34, 35 einer Schalteinrichtung 28 geführt, welche in Abhängigkeit von dem Schaltsignal CTl, welches über den Schalteingang 5 der Ringoszillatorschaltung 2 anliegt, an ihrem Ausgang 51 ein geschaltetes Rückkopplungssignal RS liefert. Das geschaltete Rückkopplungssignal RS ist über einen Addierer 32 dem äußeren Rückkopplungspfad R15, welcher mit dem Rückkopplungssignal RIl über den Addierer 33 gekoppelt ist, aufaddiert. Die als Addierer 29, 30, 31, 32, 33 dargestellten Bauelemente entsprechen logischen XOR-Bauelementen .
Die Schalteinrichtung 28 kann zum Beispiel als Multiplexer aufgefasst werden. Es ist somit möglich, über die Schaltein- richtung 28 zwischen den beiden Rückkopplungspfaden R8 und
R14 umzuschalten. Durch eine Umschaltung im Betrieb des Ringoszillatorschaltkreises, also während sich eine in der Regel zufällige Oszillation oder Schwingung in dem Signalpfad durch
die Kette von logischen Bauelementen 12-27 einstellt, wird dieselbe gestört, wodurch eine weitere Randomisierung des insbesondere am Ausgang des ersten logischen Bauelementes 12 vorliegenden Zufallssignals OS bewirkt wird. Der in der Figur 2 dargestellte Ringoszillator entspricht im Wesentlichen einem Fibonacci-Ringoszillator der Länge 16, der mit der folgenden Rückkopplungsfunktion dargestellt werden kann:
WO = NOT{W15 XOR [ (W14 AND CT2) OR (W8 AND NOT CT2)] XOR W3 XOR WIl XOR W5 XOR WIl XOR Wl }, mit Wi+1 = NOT Wi.
Das Zufallssignal OS erhält dadurch praktisch vollständig zufälliges Verhalten.
In der Figur 3 ist beispielsweise der Signalverlauf des Zufallssignals OS für einen als FPGA-implementierten Ringoszillator gemäß Figur 2 dargestellt. Dabei wurde davon ausgegangen, dass eine Umschaltung zwischen den beiden möglichen Rückkopplungspfaden R8 und R14 alle 10 ns erfolgt. Dies kann zum Beispiel über eine geeignete Realisierung des Schaltsignals CTl implementiert werden. Zum Beispiel kann der Schalteingang 36 des Multiplexers oder der Schalteinrichtung 28 mit einem entsprechenden Taktsignal als Schaltsignal bestückt werden. Der in der Figur 3 dargestellte Signalverlauf ist in Abhängigkeit von der Zeit t in ns dargestellt. Das Signal ist als Spannungsverlauf in beliebigen Einheiten angegeben.
Man erkennt, dass keinerlei periodische oder deterministische Signalverläufe sichtbar sind. Durch das Umschalten zwischen den verschiedenen Rückkopplungssignalpfaden wird jegliches sich einstellendes Schwingungsverhalten derart gestört, dass, wie in der Figur 3 dargestellt ist, ein zufälliger Signalverlauf entsteht. Wie oben erläutert, kann durch geeignetes Abgreifen oder Zwischenspeichern dieses Zufallssignals OS ein jeweiliges Zufallsbit abgeleitet werden.
In der Figur 4 ist eine zweite Ausführungsform eines Ringoszillators 200 dargestellt. Der Ringoszillator 200 ist eben-
falls als Fibonacci-Ringoszillator, allerdings mit sieben In- vertern, ausgeführt. Dabei ist der erste Inverter wiederum als NAND-Gatter 12 ausgeführt, an den sechs seriell verschaltete Inverter 13-18 angeschlossen sind. Hinsichtlich der Sig- nalbezeichnungen gilt das für die Figur 2 Gesagte. Prinzipiell ähnelt der Aufbau des Ringoszillators 200 dem in der Figur 2 dargestellten Ringoszillator, wobei auf gleiche Elemente nicht erneut eingegangen wird.
Es ist an dem Ausgang des ersten Inverters beziehungsweise
NAND-Gatters 12 das Zufallssignal OS abgreifbar und dem Ausgangsknoten 4 zugeführt. An den Ausgängen der Inverter 13, 15, 17 und 18 sind entsprechende Rückkopplungssignale Rl, R3, R5 und R6 abgreifbar. Das letztere Rückkopplungssignal R6 dient als äußeres Rückkopplungssignal und wird dem Eingang 37 des NAND-Gatters 12 zugeführt. Ferner lassen sich die Rückkopplungspfade Rl und R2 über die Schalteinrichtung 28 untereinander umschalten, so dass prinzipiell unterschiedliche Fi- bonacci-Ringoszillator-Architekturen entstehen. Das Rückkopp- lungssignal R3 ist fest über einen Addierer beziehungsweise ein XOR-Gatter 30 dem äußeren Rückkopplungssignal R6 aufaddiert .
In Abhängigkeit von einem Schaltsignal CTl wird entweder das Rückkopplungssignal Rl oder das Rückkopplungssignal R5 als geschaltetes Rückkopplungssignal RS ebenfalls dem äußeren Rückkopplungssignal R6 über einen Addierer beziehungsweise ein XOR-Gatter 29 aufaddiert. Es ergeben sich somit wiederum zwei mögliche Rückkopplungspfade, die entweder vom Ausgang des ersten Inverters 13 zum Eingang 37 des NAND-Gatters führen oder ein Rückkopplungspfad, der von dem Ausgang des fünften Inverters zum Eingang 37 des NAND-Gatters 12 führt.
Durch Pegelwechsel des Startsignals RS lässt sich der Ringos- zillator 200 anstoßen und beginnt eine zufällige Schwingung. Da nur sieben Inverter beziehungsweise logische Bauelemente vorgesehen sind, ergibt sich prinzipiell eine sehr hohe Frequenz der Schwingungen, die beispielsweise am Ausgang des
NAND-Gatters als Zufallssignal abgegriffen werden können. Um zu verhindern, dass sich stabile Schwingungen oder Fixpunkte einstellen können, wird ebenfalls mit relativ hoher Frequenz zwischen den Rückkopplungspfaden umgeschaltet. Dies kann durch die Einstellung der Periode oder des Taktes beziehungsweise der Frequenz des Schaltsignals CTl eingestellt werden.
In der Figur 5 ist der Signalverlauf analog der Figur 3 für das Zufallssignal OS des Ringoszillators 200 dargestellt. Die in der Figur 5 dargestellte Kurve entspricht dem Fall, bei dem alle 100 ns zwischen den beiden alternativen Rückkopplungspfaden Rl und R3 umgeschaltet wird. Man kann erkennen, dass sich zum Beispiel im Bereich zwischen 50 und 120 ns eine quasiperiodische Schwingung einstellt. Durch Umschaltung auf den jeweils anderen Rückkopplungspfad, also eine Veränderung der Schwingungseigenschaften des sich ergebenden Fibonacci- Ringoszillators etwa bei 125 ns, wird dieses quasi periodische Verhalten jedoch gestört, so dass sich eine relativ hohe Entropie in dem sich zufällig ergebenden Signalverlauf ein- stellt. Durch das beispielsweise periodische Umschalten, ergibt sich ein komplexes nichtperiodisches Verhalten des Zufallssignals OS, welches, wie zuvor beschrieben wurde, geeignet ist, Zufallsbitwerte zu erzeugen.
Untersuchungen der Anmelderin haben ergeben, dass insbesondere bei Ringoszillatorschaltungen, die ≥ 7 logische Bauelemente kaskadiert vorsehen, eine zuverlässige zufällige Signalausbeute ermöglichen. Vorzugsweise sind jedoch mehr als 10 in Serie verschaltete logische Bauelemente vorzusehen.
In der Figur 6 ist ein weiteres Beispiel für die Implementierung eines Ringoszillators 201 dargestellt. Dabei sind acht NAND-Gatter 40-47 kaskadiert vorgesehen. An jeweils einen der Eingänge der NAND-Gatter 40-47 ist das Startsignal ST ange- koppelt. Dabei ist das am Ausgang des nullten NAND-Gatters 40 vorliegende Zufallssignal OS ebenfalls als inneres Rückkopplungssignal RO verwendet. Ein weiteres Rückkopplungssignal Rl am Ausgang des ersten NAND-Gatters 41 realisiert einen weite-
ren Rückkopplungspfad neben dem äußeren Rückkopplungspfad, welcher durch das Rückkopplungssignal R6 gegeben ist. Die jeweiligen Rückkopplungssignale sind über XOR-Gatter 48, 49 aufaddiert .
Ferner sind zwei mögliche alternative Rückkopplungspfade vorgesehen, die sich durch die am Ausgang des vierten und fünften NAND-Gatters 44, 45 vorliegenden Signale R4, R5 ergeben. Als schaltbares Rückkopplungssignal RS, welches von einem Multiplexer 28 in Abhängigkeit von dem Schaltsignal CTl geliefert wird, ergibt sich somit eine Rückkopplung durch das Rückkopplungssignal R4 oder R5. Durch das Startsignal und die Verwendung von NAND-Gattern als logische Bauelemente kann bei einem Wechsel von 0 auf 1, also bei einer steigenden logi- sehen Flanke des Startsignals ST, die Ringoszillatorschaltung 201 aktiviert oder gestartet werden.
In der Figur 7 ist schließlich ein beispielhaftes Ablaufdiagramm für ein Verfahren zum Erzeugen von Zufallsbitfolgen schematisch dargestellt. Wie bereits zuvor beschrieben, eignet sich insbesondere ein Ringoszillator gemäß der Ausführungsbeispiele in den Figuren 2, 4 oder 6 zum Erzeugen von Zufallssignalen. Somit wird in einem optionalen Vorbereitungsschritt SO ein entsprechender Ringoszillator bereitge- stellt, der derart ausgestaltet ist, dass zwischen mehreren Rückkopplungspfaden umgeschaltet werden kann.
In prinzipiell zeitlich unabhängig voneinander ablaufenden Verfahrensschritten Sil, S12 und S13 wird der entsprechende Ringoszillator, beispielsweise der in der Figur 2 dargestellte, gestartet (Schritt Sil) . Das Zufallssignal OS wird abgetastet (Schritt S12), um daraus einen Zufallsbitwert abzuleiten, was im Folgeschritt S2 geschieht. Zeitlich parallel dazu erfolgt kontinuierlich zu vorgegebenen Zeitpunkten eine Um- Schaltung zwischen den potentiell vorliegenden Rückkopplungspfaden im Schritt S13.
Aus den bestimmten beziehungsweise vom Zufallssignal OS abgeleiteten Zufallsbits, zum Beispiel im Schritt S2, kann anschließend im Schritt S3 eine Zufallsbitfolge erstellt werden. Diese Zufallsbitfolge entspricht einer binär codierten Zufallszahl, welche für weitere Anwendungen bereitsteht.
Wie bereits angedeutet, kann das Starten des Ringoszillators das Abtasten des Zufallssignals OS und die Umschaltung zwischen verschiedenen Rückkopplungspfaden zeitlich unabhängig erfolgen. Es ist möglich, die Umschaltung häufiger vorzunehmen als ein Abtasten des Zufallssignals erfolgt. Wie bereits hinsichtlich der Figur 1 dargestellt und erläutert wurde, sind mehrere Varianten des Abtastens und Ableitens des einzelnen Zufallsbit möglich. Grundsätzlich sollte die Umschalt- frequenz für den Wechsel von einem ersten zu einem zweiten Rückkopplungspfad derart gewählt werden, dass zwischenzeitlich keine stabile periodische Schwingung vorliegt. Dies kann beispielsweise durch vorherige Experimente oder Simulationen ermittelt werden. Prinzipiell ist davon auszugehen, dass je weniger logische Bauelemente im Ringoszillatorschaltkreis vorliegen, desto höher die notwendige Umschaltfrequenz sein muss, um sich potentiell einstellende periodische Schwingungen zu unterbrechen und zu stören.
Die Erfindung in Form der beispielhaft dargestellten Zufallszahlengeneratoren, Ringoszillatoren und Verfahrensabläufe erreicht eine zuverlässige Erzeugung von Zufallszahlen bei extrem geringem Hardwareaufwand. Die Zufallsbitfolgen oder Zufallszahlen erreichen eine hohe statistische Qualität und können zum Beispiel bei Verschlüsselungsverfahren oder Au- thentifizierungsalgorithmen, insbesondere auch auf RFID- Chips, eingesetzt werden.