DE102014203649A1 - Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits - Google Patents

Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits Download PDF

Info

Publication number
DE102014203649A1
DE102014203649A1 DE201410203649 DE102014203649A DE102014203649A1 DE 102014203649 A1 DE102014203649 A1 DE 102014203649A1 DE 201410203649 DE201410203649 DE 201410203649 DE 102014203649 A DE102014203649 A DE 102014203649A DE 102014203649 A1 DE102014203649 A1 DE 102014203649A1
Authority
DE
Germany
Prior art keywords
random
signal
ring oscillator
bit patterns
bits
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
Application number
DE201410203649
Other languages
English (en)
Inventor
Markus Dichtl
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE201410203649 priority Critical patent/DE102014203649A1/de
Publication of DE102014203649A1 publication Critical patent/DE102014203649A1/de
Priority to PCT/EP2015/052486 priority patent/WO2015128168A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

Ein Verfahren zum Klassifizieren und/oder Erzeugen von Zufallsbits (ZB) umfasst die Schritte: Bereitstellen (S1) von Ausgangssignalen (A1–An) von logischen Elementen (21–2n) eines Ringoszillatorschaltkreises (2), wobei die logische Elemente (21–2m) zumindest teilweise rückgekoppelt sind und jeweils ein Eingangssignal (E1–En) in ein Ausgangssignal (A1–An) ausgeben; gleichzeitiges Erfassen (S2) von mehreren Ausgangssignalen (Ap–Aq) verschiedener logischer Elemente (2p–2q) des Ringoszillatorschaltkreises (2) zum Erzeugen von Prüfbits (Pp–Pq); Zuordnen (S3) der gleichzeitig erfassten Prüfbits (Pp–Pq) zu einem jeweiligen Bitmuster (BMi); und Klassifizieren (S4) eines ausgewählten Ausgangssignals (An) als zufälliges Zufallssignal (ZS) oder als nichtzufällig in Abhängigkeit von einer Häufigkeit der aufgetretenen Bitmuster (Bi). Eine Vorrichtung (1) zum Erzeugen von Zufallsbits (ZB) umfasst: einen Ringoszillatorschaltkreis (2) mit mehreren zumindest teilweise rückgekoppelten logischen Elementen (21–2m), welche jeweils ein Eingangssignal (E1–En) in ein Ausgangssignal (A1–An) ausgeben; eine Abtasteinrichtung (3), welche eingerichtet ist, mehrere der Ausgangssignale (Ap–Aq) gleichzeitig zu erfassen und jedem erfassten Ausgangssignal (Ap–Aq) ein Prüfbit (Pq–Pq) zuzuordnen, wobei die gleichzeitig erfassten Prüfbits (Pp–Pq) ein Bitmuster (BMi) bilden; und eine Auswerteeinrichtung (5), welche eingerichtet ist, eine Häufigkeit von aufgetretenen Bitmustern (BMi) bei einem mehrfachen gleichzeitigen Erfassen zu bestimmen.

Description

  • Die vorliegende Erfindung betrifft eine Vorrichtung und ein Verfahren zum Klassifizieren und/oder 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.
  • Die vorgeschlagenen Verfahren und Vorrichtungen dienen beispielsweise der Erkennung von Zufallsbits oder Zufallsbitfolgen, die gute zufällige Eigenschaften haben, und andererseits Bits, die als nicht zufällig gelten. Zufallsdaten werden beispielsweise bei Sicherheitsanwendungen benötigt, wobei aus erzeugten Zufallsbits beispielsweise kryptographische Schlüssel oder dergleichen abgeleitet werden.
  • 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.
  • 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.
  • Bei Ringoszillatoren, die 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 nicht akzeptable 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 Gatterlaufzeiten durch zufällige längere Gatterlaufzeiten kompensiert werden.
  • Fibonacci- und Galois-Ringoszillatoren können chaotische Schwingungszustände aufweisen und erzeugen dann schneller zufällige Signalformen als klassische Ringoszillatoren. Allerdings werden verschiedene digitale Gatter wie XOR- und NOT-Gatter eingesetzt. Dadurch können sich insbesondere bei Implementierungen auf ASICs große Geschwindigkeitsunterschiede der Gattertypen ergeben. Häufig besteht der Wunsch, mit Hilfe von FPGAs (Field Programable Gate Arrays) Zufallsbitfolgen zu erzeugen. Allerdings können auch bei diesen Digitalbausteinen periodische Schwingungen einsetzen, die nur eine geringe Entropie oder Zufälligkeit in den Signalen haben. Die Ursache dieser periodischen Schwingungen ist bisher nicht bekannt; ihr Auftreten kann von Umgebungsbedingungen wie der Temperatur abhängen, aber auch von chipindividuellen Schwankungen bei der Herstellung.
  • Bei idealen Zufallsbits oder Zufallsbitfolgen haben die erzeugten Bits eine gleiche Auftrittswahrscheinlichkeit von 0- und 1-Bits und sind voneinander statistisch unabhängig. Als Quelle für entsprechende zufällige Bits sind Einrichtungen mit hoher Entropie gewünscht. Unter anderem können physikalische Prozesse, wie radioaktive Zerfälle, die zufällige Ereignisse sind, als zufallsgebende Objekte verwendet werden.
  • Eine Schwierigkeit besteht meist darin, aufwandsgünstige Messungen an entsprechenden physikalischen Systemen durchzuführen, um Zufallsbits oder -daten ableiten zu können, und dann zu klassifizieren.
  • Wünschenswert ist es insbesondere, aufwandsgünstige Hardware-Zufallszahlengeneratoren zu verwenden, die dennoch für die jeweilige Anwendung ausreichend gute Zufälligkeiten, also statistische Unabhängigkeit und geringe Schiefe (Abweichung der Wahrscheinlichkeit von Null- bzw. Eins-Bits vom Idealwert ½), in ihren erzeugten Zufallsbits haben. Um die Zufälligkeit beispielsweise bei physikalischen Zufallszahlengeneratoren zu bestimmen, werden üblicher Weise statistische Tests eingesetzt, um Abweichungen vom statistischen Ideal zu erkennen. Dabei wird eine große Anzahl von Zufallsbits erfasst und dann auf einem geeigneten Rechnersystem statistisch ausgewertet. Es sind in der Vergangenheit so genannte Online-Tests wichtiger geworden, die direkt auf dem System, das auch die Zufallszahlen oder -bits erzeugt, ablaufen können und wenig Implementierungsaufwand haben. Derartige Online-Tests ermöglichen es, bei einer starken Abweichung vom statistischen Ideal der erzeugten zufälligen Daten eine Warnung auszusenden bzw. die Zufallszahlenproduktion zu unterbinden.
  • Wünschenswert ist daher eine einfach mögliche Implementierung hinsichtlich der Rechen- und Speicheranforderungen von Zufälligkeitstests, die online an Zufallsdaten durchgeführt werden sollen. Insofern ist es eine Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren und/oder eine verbesserte Vorrichtung zum Erzeugen und/oder Klassifizieren von Zufallsbits bereitzustellen.
  • Demgemäß wird ein Verfahren zum Klassifizieren und/oder Erzeugen von Zufallsbits vorgeschlagen. Das Verfahren umfasst die Schritte:
    Bereitstellen von Ausgangssignalen von logischen Elementen eines Ringoszillatorschaltkreises, wobei die logischen Elemente zumindest teilweise rückgekoppelt sind und jeweils ein Eingangssignal in ein Ausgangssignal ausgeben;
    gleichzeitiges Erfassen von mehreren Ausgangssignalen verschiedener logischer Elemente des Ringoszillatorschaltkreises zum Erzeugen von Prüfbits;
    Zuordnen der gleichzeitig erfassten Prüfbits zu einem jeweiligen Bitmuster; und
    Klassifizieren eines ausgewählten Ausgangssignals als zufälliges Zufallssignal oder als nichtzufällig in Abhängigkeit von der Häufigkeit der aufgetretenen Bitmuster.
  • Unter einem Ringoszillatorschaltkreis soll dabei nicht nur die klassische Variante von einer ungeraden Zahl von Inverter in einer logischen Ringstruktur verstanden werden, sondern z. B. auch Verallgemeinerungen wie Fibonacci- oder Galois-Ringoszillatoren sowie allgemein zumindest teilweise rückgekoppelte schwingende Logikschaltungen.
  • Das vorgeschlagene Verfahren zum Klassifizieren und/oder Erzeugen von Zufallsbits eignet sich insbesondere zur Implementierung als Online-Test, um beispielsweise in FPGAs implementierte Ringoszillatoren, die zur Erzeugung von Zufallsbits genutzt werden sollen, zu klassifizieren. Wird beispielsweise in Abhängigkeit von der Häufigkeit der aufgetretenen Bitmuster erkannt, dass kein ausreichender Zufall vorliegt, wird eine Zufallsbitproduktion unterbunden. Andererseits kann bei einem Erkennen von zufälligen Signalformen, bzw. chaotischen Schwingungsformen, beispielsweise an einem der Ausgangssignale ein entsprechend zuverlässiges echtes Zufallssignal abgegriffen werden.
  • In Ausführungsformen umfasst das Verfahren ferner: Bestimmen einer Anzahl von verschiedenen Bitmustern, welche zu unterschiedlichen Abtastzeitpunkten erfasst wurden.
  • Beispielsweise können getaktet oder in vorgegebenen Zeitabständen oder zu Zeitpunkten die Ausgangssignale von einer Auswahl der z. B. als Inverter implementierten logischen Elemente erfassen. Die sich ergebenden Bitmuster werden vorzugsweise abgespeichert und hinsichtlich des Auftretens ihrer Häufigkeit gezählt.
  • In Ausführungsformen umfasst das Verfahren ferner einen Schritt des Vergleichens der Anzahl verschiedener Bitmuster mit einem Schwellwert. Ein Schwellwert kann dahingehend festgelegt werden, dass beispielsweise, wenn die Anzahl unterschiedlicher Bitmuster zu gering ist, geschlossen wird, dass keine ausreichende Zufälligkeit der Ausgangssignale vorliegt.
  • In weiteren Ausführungsformen des Verfahrens wird das ausgewählte Ausgangssignal als Zufallssignal ausgegeben, falls eine Anzahl von zu unterschiedlichen Abtastzeitpunkten erfassten unterschiedlichen Bitmustern größer ist als ein vorgegebener Schwellwert.
  • Es wird vorgeschlagen, dass, wenn die verschiedenen zugeordneten Prüfbits an den Ausgängen der logischen Elemente, beispielsweise der Inverter, möglichst viele verschiedene Bitmuster ausbilden, auf eine ausreichende Zufälligkeit geschlossen wird. Dadurch kann im Wesentlichen ausgeschlossen werden, dass statische oder periodische oszillatorische Zustände in dem jeweiligen Ringoszillator vorliegen.
  • Bei dem Verfahren kann die Häufigkeit der aufgetretenen Bitmuster über eine vorgegebene Anzahl von Abtastzeitpunkten ermittelt werden. Beispielsweise wird zur Klassifizierung des jeweiligen Ringoszillatorschaltkreises mit einer ungeraden Anzahl von Invertern über eine begrenzte Anzahl, von beispielsweise einigen Tausend Malen, ein Bitmuster ermittelt.
  • Die Anzahl der vorgegebenen Abtastzeitpunkte wird beispielsweise in Abhängigkeit von der Anzahl der gleichzeitig erfassten Ausgangssignale bestimmt.
  • Bei dem Verfahren kann ferner ein Abtasten des Zufallssignals zum Erzeugen eines Zufallsbits durchgeführt werden. Das als zufällig erkannte Zufallssignal hat eine zeitlich unregelmäßige Signalform und schwankt zufällig zwischen einem logischen H- und L-Pegel. Erst durch das Abtasten, beispielsweise mit Hilfe eines Zwischenspeicherelements, wie einem Flip-Flop, wird ein festgelegter Zufallsbitwert erzeugt. Dabei ergibt sich zufällig ein logischer H- oder L-Pegel am Ausgang des jeweiligen Flip-Flops.
  • Es wird ferner eine Vorrichtung zum Erzeugen von Zufallsbits vorgeschlagen, welche umfasst:
    einen Ringoszillatorschaltkreis mit mehreren, zumindest teilweise rückgekoppelten logischen Elementen, welche jeweils ein Eingangssignal in ein Ausgangssignal ausgeben;
    eine Abtasteinrichtung, welche eingerichtet ist, mehrere der Ausgangssignale gleichzeitig zu erfassen und jedem erfassten Ausgangssignal ein Prüfbit zuzuordnen, wobei die gleichzeitig erfassten Prüfbits ein Bitmuster bilden;
    eine Auswerteeinrichtung, welche eingerichtet ist, eine Häufigkeit von aufgetretenen Bitmustern bei einem mehrfachen gleichzeitigen Erfassen zu bestimmen.
  • Die Vorrichtung ist insbesondere eingerichtet, ein wie zuvor und im Folgenden beschriebenes Verfahren durchzuführen.
  • Die Vorrichtung umfasst einen Ringoszillatorschaltkreis, der in der Regel aus einer ungeraden Anzahl von Invertereinrichtungen gebildet ist. Einige der Rückkopplungspfade liefern dann ein meist zufälliges Schwingungsverhalten. Es kann jedoch geschehen, dass der Ringoszillatorschaltkreis in einen statischen Zustand oder periodischen oszillatorischen Zustand verfällt, so dass an den Ausgangsknoten der logischen Elemente in der Regel kein genügend zufälliges Signal mehr abgreifbar ist. Der verwendete Ringoszillatorschaltkreis kann dabei insbesondere als Fibonacci- oder Galois-Ringoszillator ausgestaltet sein.
  • Aufgrund der effizienten Prüfung und Klassifizierung der im Ringoszillatorschaltkreis vorliegenden Signalformen als zufällig oder nicht zufällig eignet sich die Vorrichtung insbesondere als Implementierung in einem FPGA oder ASIC. Die Vorrichtung und das Verfahren ermöglichen einen Online-Test ohne aufwändige Speicher- oder Rechenoperationen.
  • In Ausführungsformen ist die Auswerteeinrichtung eingerichtet, eine Anzahl von verschiedenen Bitmustern zu zählen.
  • Es kann ferner eine Speichereinrichtung zum Speichern der Bitmuster vorgesehen sein. Der Ringoszillatorschaltkreis kann ferner einen Ausgang aufweisen, an dem eines der Ausgangssignale als Zufallssignal abgreifbar ist.
  • Es ist möglich, dass die Abtasteinrichtung mehrere Abtast- und Halteglieder zum Erfassen der mehreren Ausgangssignale unterschiedlicher logischer Elemente umfasst. Die Abtast- und Halteglieder können getaktet oder von einer Steuereinrichtung gesteuert operieren. Die Abtast- und Halteglieder setzen dabei den erfassten Signalpegel in einen Prüfbitpegel um.
  • In Ausführungsformen ist die Vorrichtung Teil einer FPGA-Einrichtung oder einer ASIC-Einrichtung.
  • Das Verfahren kann insbesondere über geeignete Beschreibungssprachen, beispielsweise VHDL oder Verilog, auf oder in einer FPGA- oder ASIC-Vorrichtung implementiert werden.
  • Weiterhin wird ein Computerprogramm-Produkt vorgeschlagen, welches auf einer programmgesteuerten Einrichtung die Durchführung eines entsprechenden Verfahrens veranlasst.
  • 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.
  • Weiterhin wird ein Datenträger mit einem gespeicherten Computerprogramm mit Befehlen vorgeschlagen, welche die Durchführung eines entsprechenden Verfahrens auf einer programmgesteuerten Einrichtung veranlassen.
  • 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.
  • 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.
  • Dabei zeigen:
  • 1 ein schematisches Ablaufdiagramm für ein Verfahren zum Klassifizieren von Zufallsbits;
  • 2 eine schematische Darstellung eines Ausführungsbeispiels für eine Vorrichtung zum Erzeugen und Klassifizieren von Zufallsbits;
  • 3, 7 schematische Darstellungen von weiteren Ausführungsbeispielen für eine Vorrichtung zum Erzeugen und Klassifizieren von Zufallsbits mit Fibonacci-Ringoszillatoren; und
  • 46, 8 Darstellungen von Signalverläufen in Ausführungsbeispielen von Vorrichtungen zum Erzeugen und Klassifizieren von Zufallsbits mit Fibonacci-Ringoszillatoren.
  • In den Figuren sind funktionsgleiche Elemente mit denselben Bezugszeichen versehen, sofern nichts anderes angegeben ist.
  • In der 1 ist ein schematisches Ablaufdiagramm für ein Verfahren zum Klassifizieren oder Erzeugen von Zufallsbits dargestellt, welches beispielsweise mit einer Vorrichtung, wie sie in der 2 als schematische Darstellung als Ausführungsbeispiel für eine Vorrichtung zum Erzeugen und Klassifizieren von Zufallsbits gezeigt ist, durchgeführt werden kann.
  • Das Verfahren und die Vorrichtung eignen sich beispielsweise dazu, bei Zufallszahlengeneratoren, die mit Hilfe von Ringoszillatoren zufällige Signalformen erzeugen, zu erkennen, ob ein ungewünschter Oszillationszustand eintritt. In diesem Fall kann ein Fehleralarm ausgelöst werden, so dass die erzeugten Bits nicht als Zufallsbits verwendet werden.
  • In einem ersten Schritt S1 werden Ausgangssignale von logischen Elementen eines Ringoszillatorschaltkreises bereitgestellt. In diesem Schritt S1 wird beispielsweise ein Ringoszillator 2 der Vorrichtung zum Erzeugen von Zufallsbits 1 betrachtet. Der Ringoszillator 2 umfasst eine ungerade Anzahl von Invertern 2 12 n, die miteinander verkettet sind. Jeder der Inverter 2 12 n hat einen Eingang und einen Ausgang, der nicht explizit bezeichnet ist. Am jeweiligen Eingang werden Eingangssignale E1–En empfangen, die invertiert als Ausgangssignale A1–An ausgegeben werden.
  • An einigen Stellen sind Rückkopplungsschleifen vorgesehen, die eine unregelmäßige Schwingungs- oder Signalform innerhalb des Ringoszillatorschaltkreises hervorrufen. In dem Ausführungsbeispiel der 2 ist zum Beispiel zwischen dem p-ten und p + 1-ten Inverter eine Rückkopplung vorgesehen.
  • An einem Ausgang 8 des Ringoszillators 2 ist ein Zufallssignal ZS abgreifbar. Das Zufallssignal ZS entspricht dabei dem Ausgangssignal An des n-ten Inverters 2 n. Es sind abweichende Ringoszillatoren, beispielsweise in der Art von Galois- oder Fibonacci-Oszillatoren denkbar. Außerdem können weitere logische Elemente vorgesehen werden.
  • Um nun zu überprüfen, ob eine zufällige Signalform am Ausgang 8 vorliegt, und nicht etwa ein Oszillationszustand oder statischer Zustand erreicht wird, werden mehrere Ausgangssignale Ap–Aq abgegriffen. Es können grundsätzlich alle Ausgangssignale A1–An verwendet werden. Um Speicher und Aufwand zu sparen, genügt jedoch eine Auswahl von Ausgangssignalen.
  • In einem zweiten Schritt S2 werden die mehreren Ausgangssignale Ap – Aq der verschiedenen logischen Elemente 2 p2 q zum Erzeugen von Prüfbits erfasst. Die q-p-Prüfbits werden in einer Abtasteinrichtung 3 mit Hilfe von q-p Abtast- und Haltegliedern 3 p3 q erzeugt. Die Abtast- und Halteglieder haben jeweils einen Takteingang, dem ein Taktsignal oder Abtastsignal CK zugeführt ist.
  • In Abhängigkeit von dem Takt- oder Abtastsignal CK liefern die Abtast- und Halteglieder 3 p3 q einen logischen Ausgangspegel, der als Prüfbit Pp–Pq verwendet wird. In dem Ausführungsbeispiel der 2 wird das Abtasten beispielsweise zu vorgegebenen Zeitpunkten mehrfach hintereinander oder in Abhängigkeit von dem Taktsignal CK durch eine Steuereinrichtung 5 durchgeführt. Die q-p Prüfbits PP–Pq werden einer Speichereinrichtung 4 zugeführt, die die Prüfbits PP–Pq für einen jeweiligen Abtastzeitpunkt als Bitmuster BM1–BMi abspeichert. Bei p-q abgetasteten Ausgangssignalen Ap–Aq sind 2p-q unterschiedliche Bitmuster BMi möglich.
  • Der Speicher 4 ist über Steuer- oder Datensignale CT an die Steuereinrichtung 5 gekoppelt. Die Steuereinrichtung 5 steuert ferner über einen Setz- oder Starteingang 7 den Ringoszillatorschaltkreis 2. Zum Starten einer (chaotischen oder unregelmäßigen) Oszillation der miteinander verketteten Inverter 2 12 n werden beispielsweise zunächst alle Eingangssignale E1–En zunächst auf einen vorgegebenen wohldefinierten Pegel gebracht. Die Oszillation wird angestoßen, indem eine Signalflanke beispielsweise als Starteingangssignal E1 angekoppelt wird und die übrigen Eingangssignalpegel E2–En frei oszillierend gelassen werden.
  • Im Verfahren gemäß der 1 erfolgt im Schritt S3 ein Zuordnen der gleichzeitig erfassten Prüfbits Pp–Pq zu einem jeweiligen Bitmuster BMi. In Abhängigkeit von der Häufigkeit des Auftretens verschiedener Bitmuster BMi werden nun beispielsweise mit Hilfe der Steuereinrichtung 5 das ausgewählte Ausgangssignal An bzw. ZS als zufällig oder nicht zufällig klassifiziert. Diese Klassifizierung oder der Erzeugungsschritt S4 können mehrere Unterschritte umfassen.
  • Zunächst werden im Schritt S40 die Anzahl von verschiedenen Bitmustern Bi, welche zu unterschiedlichen Abtastzeitpunkten erfasst wurden, bestimmt. Dabei wird insbesondere die Anzahl verschiedener Bitmuster, die auftreten, erfasst. Die Anzahl der verschiedenen Bitmuster wird in einem Vergleichsschritt S41 mit einem Schwellwert verglichen. Der Schwellwert kann beliebig angepasst werden und bestimmt beispielsweise die Sensibilität des Tests oder des Klassifizierungsvorgangs für zufällige oder nicht zufällige Daten. Wird erkannt, dass nur wenige verschiedene Bitmuster an den verschiedenen Ausgangssignalen Ap–An abgeleitet werden, also die Anzahl unterhalb des vorgegebenen Schwellwertes liegt, wird im Schritt S42 der Ringoszillator bzw. das Ausgangssignal An bzw. ZS als nicht zufällig eingestuft.
  • Die Steuereinrichtung 5 kann beispielsweise ein entsprechendes Alarm- oder Warnsignal A an einem Warnausgang 10 ausgeben. Die Steuereinrichtung 5 kann auch eine Ausgabe des Signals ZS unterbinden. Wird jedoch im Schritt S41 erkannt, dass viele unterschiedliche Bitmuster BMi vorliegen, d.h. die erfasste Anzahl von unterschiedlichen Bitmustern ist größer als der vorgegebene Schwellwert, erfolgt eine Klassifizierung der abgetasteten oder erfassten Ausgangssignale Ap–Aq und insbesondere des Zufallssignals ZS als zufällig.
  • In der Folge wird im Schritt S5 beispielsweise gemäß der 2 durch die Steuereinrichtung 5 gesteuert, das Zufallssignal ZS, welches dem n-ten Ausgangssignal des Inverters 2 n entspricht, abgetastet. Das Abtasten kann mit Hilfe einer Zwischenspeichereinrichtung, wie beispielsweise einem Flip-Flop 6, erfolgen. Das Flip-Flop 6 liefert aus dem oszillierenden, mit einem nicht definierten logischen Pegel behafteten Zufallssignal ZS ein Zufallsbit mit einem Pegel 1 oder 0. Dieses Zufallsbit ZB wird am Ausgang 9 ausgegeben. Insofern liefern die Vorrichtung und das Verfahren eine zuverlässige Maßnahme zum Erzeugen von echten Zufallsbits.
  • Die Anmelderin hat nun verschiedene als Zufallsbitgeneratoren verwendete Ringoszillatorschaltkreise mit Hilfe des vorgeschlagenen Verfahrens untersucht. In 3 ist ein Ringoszillator 11 wiedergegeben, der als Fibonacci-Ringoszillator ausgestaltet ist. Es sind sieben verkettete Inverter 2 12 7 vorgesehen, wobei Rückkopplungen gemäß dem Rückkopplungspolynom x7 + x6 + x3 + x2 + x + 1 implementiert sind. An den jeweiligen Ausgängen der Inverter 2 12 7 werden sieben Ausgangssignale A1–A7 abgegriffen. Diese abgegriffenen Ausgangssignale können Prüfbits P1–P7 zugeordnet werden. Die sieben Prüfbits P1–P7 bilden zu jedem Abtastzeitpunkt ein Bitmuster BMi.
  • In den 4, 5 und 6 sind nun Signalformen des Ausgangssignals A7 wiedergegeben, das als Zufallssignal ZS betrachtet werden kann. In den 4, 5 und 6 ist jeweils ein Zeitraum von 400 ns dargestellt. Man erkennt, dass über die ersten etwa 50 ns bei jedem Start des Ringoszillators 11 eine ähnliche Signalform erreicht wird. Ab etwa 50 ns sind die Signale jedoch qualitativ als zufällig zu erachten. Untersuchungen der Anmelderin haben nun ergeben, dass bei einem Abtasten oder Samplen von 5000 Mal in einem Abstand von 200 ns 123 verschiedene Bitmuster auftreten. Insgesamt sind bei sieben Prüfbits 27 = 128 verschiedene Bitmuster Bi denkbar.
  • Die 7 zeigt eine weitere Ausführungsform eines Fibonacci-Ringoszillators 12. Im Wesentlichen sind dieselben Elemente wie in der 3 enthalten, wobei jedoch das Rückkopplungspolynom zu x7 + x6 + x2 + 1 gewählt ist. Betrachtet man nun den Signalverlauf A7 am Ausgang des letzten Inverters 2 7, ergibt sich ein gleichmäßiges Schwingungsverhalten. Das heißt, wie es in der 8 dargestellt ist, ist ein periodischer oszillativer Verlauf des Ausgangssignals A7 zu erkennen, der kaum zufällige Eigenschaften aufweist. Der Ringoszillator, wie er in der 7 dargestellt ist, eignet sich daher nicht zum Erzeugen von Zufallsbits.
  • Die Anmelderin hat auch hier die Bitmuster BMi über 5000 Durchläufe ermittelt. Es erfolgten wiederum 5000 Abtastungen von Prüfbits P1–P7 im Abstand von 200 ns. Dabei wurden lediglich 14 der 128 möglichen Bitmuster mit 7 Bits erzeugt.
  • Die Zahl der aufgetretenen Bitmuster unterscheiden sich mit Werten von 14 im Fall des periodisch schwingenden Generators und von 123 im Fall der chaotischen Schwingungen ganz erheblich. Die Wahl des Schwellwerts ist also unkritisch.
  • Ein geeigneter Schwellwert kann zum Beispiel bei 50 angesetzt werden, wobei erkannt würde, dass lediglich 14 verschiedene Bitmuster auftreten, also die Anzahl von unterschiedlichen Bitmustern aus 7 Bits über 5000 Durchläufe oder Takt- oder Abtastzeitpunkte unterhalb des Schwellwerts von 50 liegt. Der genaue Schwellwert kann angepasst an die Anzahl und Länge der Inverterketten erfolgen. Die Untersuchungen der Anmelderin erfolgten auf einem FPGA-Chip des Typs Spartan-3 der Fa. Xilinx.
  • In weiteren Untersuchungen der Anmelderin wurden Fibonacci-Ringoszillatoren der Länge 16 mit verschiedenen Rückkopplungspolynomen getestet. Bei jeweils 5000 Samples im Abstand von 2 µs sind 16 Bit lange Bitmuster BMi betrachtet worden. Diejenigen Rückkopplungspolynome, die zu periodischen Schwingungen führen, führten lediglich zu 32, 40, 51 und 62 verschiedenen Prüfbitmustern. bei 26 anderen Rückkopplungspolynomen, die zu chaotischen Schwingungen führen, liegt die Zahl der verschiedenen erfassten Bitmuster zwischen 1261 und 2154. Insofern kann beispielsweise bei Fibonacci-Ringoszillatoren der Länge 16 ein Schwellwert für unterschiedliche Bitmuster zwischen 200 und 500 gewählt werden.
  • Das Verfahren liefert aufwandsgünstig einen Online-Test für insbesondere in FPGAs implementierten Zufallsbitgeneratoren, die Ringoszillatoren einsetzen. Es ergibt sich eine sichere Erkennung von Fehlfunktionen, und damit periodischem oszillatorischen Verhalten des eingesetzten Ringoszillators. Es wird nur ein geringer Speicheraufwand benötigt, da für jedes der 2p-q möglichen Bitmuster jeweils nur ein Bitspeicherplatz benötigt wird. Durch eine geeignete Wahl der ausgekoppelten Prüfbits kann das Verfahren und der Hardwareaufwand skaliert werden.
  • Es ist auch möglich, beispielsweise bei Fibonacci-Ringoszillatoren mit 16 eingesetzten Invertern nur eine Auswahl von Ausgangssignalen, beispielsweise die acht ersten Ausgangssignale A1–A8, zu verwenden. Die Untersuchungen der Anmelderin ergaben auch dabei, dass bei den periodisch schwingenden Fibonacci-Ringoszillatoren nur 16 oder 20 unterschiedliche Bitmuster auftreten. Bei chaotischen Signalverläufen sind jedoch zwischen 240 und 256 verschiedene Bitmuster der 28 möglichen aufgetreten. Bei einem Abgriff von nur acht beispielsweise niedersignifikanten Bits bei Fibonacci-Ringoszillatoren der Länge 16 kann eine Schwelle von 100 gewählt werden, ab der der Ringoszillator Zufallsbits bzw. Zufallssignale liefern kann.
  • Obgleich in den vorbeschriebenen Beispielen Fibonacci-Ringoszillatoren untersucht wurden, kann dies genauso auf andere kompliziertere Ringoszillatoren angewendet werden. Beispielsweise kann das Verfahren insbesondere für Galois-Ringoszillatoren zur Zufallsbiterzeugung verwendet werden.
  • 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.

Claims (15)

  1. Verfahren zum Klassifizieren und/oder Erzeugen von Zufallsbits (ZB) umfassend: Bereitstellen (S1) von Ausgangssignalen (A1–An) von logischen Elementen (2 12 n) eines Ringoszillatorschaltkreises (2), wobei die logischen Elemente (2 12 m) zumindest teilweise rückgekoppelt sind und jeweils ein Eingangssignal (E1–En) in ein Ausgangssignal (A1–An) ausgeben; gleichzeitiges Erfassen (S2) von mehreren Ausgangssignalen (Ap–Aq) verschiedener logischer Elemente (2 p2 q) des Ringoszillatorschaltkreises (2) zum Erzeugen von Prüfbits (Pp–Pq); Zuordnen (S3) der gleichzeitig erfassten Prüfbits (Pp–Pq) zu einem jeweiligen Bitmuster (BMi); und Klassifizieren (S4) eines ausgewählten Ausgangssignals (An) als zufälliges Zufallssignal (ZS) oder als nichtzufällig in Abhängigkeit von einer Häufigkeit der aufgetretenen Bitmuster (Bi).
  2. Verfahren nach Anspruch 1, ferner umfassend: Bestimmen (S40) einer Anzahl von verschiedenen Bitmustern (Bi), welche zu unterschiedlichen Abtastzeitpunkten erfasst wurden.
  3. Verfahren nach Anspruch 1 oder 2, ferner umfassend: Vergleichen (S41) der Anzahl verschiedener Bitmuster (Bi) mit einem Schwellwert.
  4. Verfahren nach einem der Ansprüche 1–3, wobei das ausgewählte Ausgangssignal (An) als Zufallssignal (ZS) ausgegeben wird, falls eine Anzahl von zu unterschiedlichen Abtastzeitpunkten erfassten unterschiedlichen Bitmustern (BMi) größer ist als ein vorgegebener Schwellwert.
  5. Verfahren nach einem der Ansprüche 1–4, wobei die Häufigkeit der aufgetretenen Bitmuster (Bi) über eine vorgegebene Anzahl von Abtastzeitpunkten ermittelt wird.
  6. Verfahren nach einem der Ansprüche 1–5, ferner umfassend: Abtasten (S5) des Zufallssignals (ZS) zum Erzeugen eines Zufallsbits (ZB).
  7. Vorrichtung (1) zum Erzeugen von Zufallsbits (ZB) umfassend: einen Ringoszillatorschaltkreis (2) mit mehreren zumindest teilweise rückgekoppelten logischen Elementen (2 12 m), welche jeweils ein Eingangssignal (E1–En) in ein Ausgangssignal (A1–An) ausgeben; einer Abtasteinrichtung (3), welche eingerichtet ist, mehrere der Ausgangssignale (Ap–Aq) gleichzeitig zu erfassen und jedem erfassten Ausgangssignal (Ap–Aq) ein Prüfbit (Pq–Pq) zuzuordnen, wobei die gleichzeitig erfassten Prüfbits (Pp–Pq) ein Bitmuster (BMi) bilden; einer Auswerteeinrichtung (5), welche eingerichtet ist, eine Häufigkeit von aufgetretenen Bitmustern (BMi) bei einem mehrfachen gleichzeitigen Erfassen zu bestimmen.
  8. Vorrichtung nach Anspruch 7, wobei die Vorrichtung eingerichtet ist, ein Verfahren nach einem der Ansprüche 1–6 durchzuführen.
  9. Vorrichtung nach Anspruch 7 oder 8, wobei die Auswerteeinrichtung (5) ferner eingerichtet ist, eine Anzahl von verschiedenen Bitmustern (BMi) zu zählen.
  10. Vorrichtung nach einem der Ansprüche 7–9, wobei die logischen Elemente (2 12 n) Invertereinrichtungen sind.
  11. Vorrichtung nach einem der Ansprüche 7–10, ferner mit einer Speichereinrichtung (4) zum Speichern der Bitmuster (BMi).
  12. Vorrichtung nach einem der Ansprüche 7–11, wobei der Ringoszillatorschaltkreis (2) einen Ausgang aufweist, an dem eines der Ausgangssignale (An) als Zufallssignal (ZS) abgreifbar ist.
  13. Vorrichtung nach einem der Ansprüche 7–12, wobei der Ringoszillatorschaltkreis (2) als Fibonacci-, Galois-, oder Mehrspur-Ringoszillator ausgestaltet ist.
  14. Vorrichtung nach einem der Ansprüche 7–13, wobei die Abtasteinrichtung (3) mehrere Abtast- und Halteglieder (3 p3 q) umfasst.
  15. Vorrichtung nach einem der Ansprüche 7–14, wobei die Vorrichtung Teil eines FPGAs oder ASICs ist.
DE201410203649 2014-02-28 2014-02-28 Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits Withdrawn DE102014203649A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE201410203649 DE102014203649A1 (de) 2014-02-28 2014-02-28 Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits
PCT/EP2015/052486 WO2015128168A1 (de) 2014-02-28 2015-02-06 Verfahren und vorrichtung zum klassifizieren und/oder erzeugen von zufallsbits

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE201410203649 DE102014203649A1 (de) 2014-02-28 2014-02-28 Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits

Publications (1)

Publication Number Publication Date
DE102014203649A1 true DE102014203649A1 (de) 2014-05-28

Family

ID=50679221

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201410203649 Withdrawn DE102014203649A1 (de) 2014-02-28 2014-02-28 Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits

Country Status (2)

Country Link
DE (1) DE102014203649A1 (de)
WO (1) WO2015128168A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014224423A1 (de) * 2014-11-28 2016-06-02 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Messen eines Jitters
DE102014226996A1 (de) * 2014-12-29 2016-06-30 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Erzeugen von Zufallsbits

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206797B2 (en) * 2003-04-14 2007-04-17 M-Systems Flash Disk Pioneers Ltd. Random number slip and swap generators
DE602005008362D1 (de) * 2005-01-28 2008-09-04 Infineon Technologies Ag Oszillator-basierter Zufallszahlengenerator
DE102012210361A1 (de) * 2012-06-20 2013-12-24 Robert Bosch Gmbh Verfahren zum Überwachen einer Ausgabe eines Zufallsgenerators

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014224423A1 (de) * 2014-11-28 2016-06-02 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Messen eines Jitters
DE102014226996A1 (de) * 2014-12-29 2016-06-30 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Erzeugen von Zufallsbits

Also Published As

Publication number Publication date
WO2015128168A1 (de) 2015-09-03

Similar Documents

Publication Publication Date Title
EP2976707B1 (de) Vorrichtung und verfahren zum erzeugen von zufallsbits
DE102008048292B4 (de) Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
DE102004047425B4 (de) Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen
DE112011106024B4 (de) Erzeugungsvorrichtung für vorrichtungsspezifische Informationen und Erzeugungsverfahren für vorrichtungsspezifische Informationen
DE10344327B3 (de) Zufallszahlengenerator und Verfahren zum Erzeugen einer Zufallszahl
DE102014203649A1 (de) Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits
DE102014200163A1 (de) Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
DE102012210361A1 (de) Verfahren zum Überwachen einer Ausgabe eines Zufallsgenerators
DE102014224421A1 (de) Verfahren und Vorrichtung zum Erzeugen von Zufallsbits
DE102013213095A1 (de) Erzeugen von einer Anzahl von Zufallsbits
DE102014219651A1 (de) Verfahren und Vorrichtung zum Erzeugen von Zufallsbits
DE102014226996A1 (de) Verfahren und Vorrichtung zum Erzeugen von Zufallsbits
DE102015203580A1 (de) Vorrichtung und Verfahren zum Erzeugen von Zufallsbits
DE102008033162A1 (de) Physikalischer Zufallszahlengenerator
DE102013213385A1 (de) Verfahren zur Beurteilung einer Ausgabe eines Zufallsgenerators
DE102016200850A1 (de) Verfahren zum Betreiben einer sicherheitsrelevanten Vorrichtung und Vorrichtung
DE102014208236A1 (de) Prüfen einer Authentizität einer Schaltkreiseinheit
DE102014209964A1 (de) Verfahren und Vorrichtung zum Erzeugen von Zufallsbits
EP3413188B1 (de) Verfahren zur optimalen anordnung eines zufallszahlengenerators
WO2015043855A2 (de) Erzeugen von zufallsbits
DE102013201687A1 (de) Verfahren und Vorrichtung zum Erzeugen von Zufallsbits
DE102014219693A1 (de) Verfahren und Vorrichtung zum Erzeugen von Zufallsbits
DE102014224423A1 (de) Verfahren und Vorrichtung zum Messen eines Jitters
DE102015207926A1 (de) Prüfen einer Authentizität einer rückgekoppelten Schaltkreiseinheit
EP2799980A2 (de) Vorrichtung und Verfahren zum Erzeugen von Zufallsbits

Legal Events

Date Code Title Description
R230 Request for early publication
R163 Identified publications notified
R163 Identified publications notified

Effective date: 20141103

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee