DE102014226996A1 - Verfahren und Vorrichtung zum Erzeugen von Zufallsbits - Google Patents

Verfahren und Vorrichtung zum Erzeugen von Zufallsbits Download PDF

Info

Publication number
DE102014226996A1
DE102014226996A1 DE102014226996.2A DE102014226996A DE102014226996A1 DE 102014226996 A1 DE102014226996 A1 DE 102014226996A1 DE 102014226996 A DE102014226996 A DE 102014226996A DE 102014226996 A1 DE102014226996 A1 DE 102014226996A1
Authority
DE
Germany
Prior art keywords
feedback
random
signals
feedback signals
output signal
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
DE102014226996.2A
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 DE102014226996.2A priority Critical patent/DE102014226996A1/de
Publication of DE102014226996A1 publication Critical patent/DE102014226996A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

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)
  • Manipulation Of Pulses (AREA)

Abstract

Bei einem Verfahren zum Erzeugen von Zufallsbits (ZB) mit Hilfe eines Fibonacci-Ringoszillatorschaltkreises (2), welcher mehrere verkettete Inverter-Einrichtungen (31–3n) umfasst, wobei eine jeweilige Inverter-Einrichtung (3p) ein Ausgangssignal (Ap) ausgibt und mehrere Ausgangssignale (Ap, As, Aq, An) als Rückkopplungssignale (Rp, Rs, Rq, Rn) gemäß einem Rückkopplungspolynom (P) rückgekoppelt werden, werden die Schritte durchgeführt: Vertauschen (S2) von wenigstens zwei Rückkopplungssignalen (Rp, Rq) zu einem vorgegeben Vertauschungszeitpunkt (tv); und Erfassen (S3) von mindestens einem Ausgangssignal (An) als Zufallssignal (ZS) zum Erzeugen eines Zufallsbitwerts (ZB) nach dem Vertauschungszeitpunkt (tv). Eine Vorrichtung (1) zum Erzeugen von Zufallsbits (ZB) umfasst einen Fibonacci-Ringoszillatorschaltkreis (2), welcher mehrere verkettete Inverter-Einrichtungen (31–3n) umfasst, wobei eine jeweilige Inverter-Einrichtung (3p) ein Ausgangssignal (Ap) ausgibt und mehrere Ausgangssignale (Ap, As, Aq, An) als Rückkopplungssignale (Rp, Rs, Rq, Rn) gemäß einem Rückkopplungspolynom (P) rückgekoppelt sind; eine Vertauschungseinrichtung (4) zum Vertauschen von wenigstens zwei Rückkopplungssignalen (Rp, Rq) zu einem vorgegeben Vertauschungszeitpunkt (tv); und eine Erfassungseinrichtung (7) zum Erfassen von mindestens einem Ausgangssignal (An) zum Erzeugen eines Zufallsbitwerts (ZB) nach dem Vertauschungszeitpunkt (tv).

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 Verfahren und Vorrichtungen zum Erzeugen von Zufallsbits dienen beispielsweise der Implementierung von Zufallszahlengeneratoren. Die Erfindung ermöglicht insbesondere die Erzeugung echter Zufallsbits zum Einsatz in Verschlüsselungseinrichtungen.
  • 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.
  • Es sind Zufallszahlenerzeuger bekannt, die Ringoszillatoren aufweisen, welche aus hintereinander geschalteten Invertern aufgebaut sind. Es ergeben sich dann 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.
  • Fibonacci- und Galois-Ringoszillatoren können ferner chaotische Schwingungszustände aufweisen und erzeugen dann schneller zufällige Signalformen als klassische Ringoszillatoren. Wünschenswert sind beispielsweise Fibonacci-Oszillatoren, die fixpunktfrei sind. Allerdings können auch bei diesen 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. In der Vergangenheit wurden daher Prüfalgorithmen eingesetzt, die ständig die Funktionsfähigkeit des jeweiligen Zufallszahlengenerators überwachen bzw. bei ungewünschten Periodizitäten des Ringoszillatorsignals Warnmeldungen erzeugen.
  • Es ist wünschenswert, Chips mit Zufallszahlengeneratoren herstellen zu können, die zuverlässig chaotisches Schwingungsverhalten aufweisen und keine periodischen Schwingungssignale entwickeln.
  • Insofern besteht eine Aufgabe der vorliegenden Erfindung darin, einen verbesserten Zufallszahlengenerator bereitzustellen, der insbesondere auf Fibonacci-Ringoszillatoren basiert.
  • Demgemäß wird ein Verfahren zum Erzeugen von Zufallsbits vorgeschlagen, bei dem mit Hilfe eines Fibonacci-Ringoszillatorschaltkreises, welcher mehrere verkettete Inverter-Einrichtungen umfasst, wobei eine jeweilige Inverter-Einrichtung ein Ausgangssignal ausgibt und mehrere Ausgangssignale als Rückkopplungssignale gemäß einem Rückkopplungspolynom rückgekoppelt werden. Das Verfahren umfasst die Schritte:
    Vertauschen von wenigstens zwei Rückkopplungssignalen zu einem vorgegebenen Vertauschungszeitpunkt; und
    Erfassen von mindestens einem Ausgangssignal als Zufallssignal zum Erzeugen eines Zufallsbitwertes nach dem Vertauschungszeitpunkt.
  • Bei dem vorgeschlagenen Verfahren kann ein Fibonacci-Ringoszillatorschaltkreis mit einem festen Rückkopplungspolynom eingesetzt werden. Durch das Vertauschen oder Permutieren von zwei oder mehreren Rückkopplungssignalen kann zuverlässig ein chaotischer Schwingungszustand eingestellt werden. Dies kann beispielsweise mit Hilfe einer Permutationsschaltung, die ansteuerbar ist, erzielt werden. Die Vertauschung erfolgt insbesondere dauerhaft bis zu einem neuen Vertauschungszeitpunkt.
  • Durch das Vertauschen der Rückkopplungssignale kann eine Veränderung der Schwingungscharakteristik des Fibonacci-Ringoszillatorschaltkreises auftreten, so dass aufwandsgünstig ein periodisches Schwingungsverhalten unterbunden werden kann.
  • Bei dem Verfahren kann ferner ein Abtasten des mindestens eines Ausgangssignals zu einem Abtastzeitpunkt erfolgen. Beim Erfassen des mindestens einen Ausgangssignals als Zufallssignal wird beispielsweise mit Hilfe eines Abtast- und Haltegliedes oder eines Zwischenspeicherelementes, wie eines D-Flip-Flops, ein logischer Pegel aus dem zufällig schwankenden Ausgangssignal abgeleitet. Diesem Pegel L oder H, der einer jeweiligen elektrischen Spannung entspricht, wird ein Zufallsbitwert zugeordnet, wie 0 oder 1 bzw. L oder H.
  • In Ausführungsformen des Verfahrens werden mehrere Zufallsbitwerte zu aufeinanderfolgenden Abtastzeitpunkten erzeugt und zu einer Zufallsbitfolge bzw. einem Zufallsbitwort zusammengesetzt. Das Zufallsbitwort wird vorzugsweise in einem kryptographischen Verfahren zum Verschlüsseln von Daten eingesetzt. Insofern ist das Verfahren in Ausführungsformen mit dem Schritt des kryptographisch Verschlüsselns in Abhängigkeit von dem oder den Zufallsbitwerten Teil eines Verschlüsselungsverfahrens. Bei einem Datenübertragungsverfahren wird mit Hilfe des Verfahrens zum Erzeugen von Zufallsbits ein kryptografischer Schlüssel erzeugt, Daten mit Hilfe des erzeugten Schlüssels einem kryptografischen Verschlüsselungsverfahren unterzogen, und die verschlüsselten Daten werden zu einem Empfänger übermittelt. Beim Empfänger erfolgt eine Entschlüsselung in Abhängigkeit von dem erzeugten Schlüssel. Der Schlüssel kann auf einem autonomen Übertragungskanal dem Empfänger zugeleitete werden.
  • In Ausführungsformen des Verfahrens wird ein jeweiliges Rückkopplungssignal einer XODER-Einrichtung zugeführt. Die Vorrichtung hat vorzugsweise mehr als vier Inverter.
  • Insbesondere wird mit Hilfe des Vertauschens eine Phasenlage der wenigstens zwei Rückkopplungssignale vor dem Abtastzeitpunkt verändert.
  • Durch die Veränderung der Phasenlage wird beispielsweise von einem erkannten periodischen Schwingungsverhalten zu einem chaotischen Schwingungsverhalten gewechselt, so dass ein zuverlässiger Zufallsbitwert erzeugt werden kann.
  • In einer Variante des Verfahrens erfolgen die Schritte:
    Überwachen von mindestens einem Ausgangssignal zum Erkennen eines periodischen Signalverlaufs; und
    Festlegen des Vertauschungszeitpunkts, falls ein periodischer Signalverlauf erkannt wird.
  • Beispielsweise kann, sobald erkannt wird, dass der Fibonacci-Ringoszillator ein periodisches Schwingungsverhalten zeigt, dieser in eine chaotischen Schwingungsverhalten-Charakteristik überführt werden, indem mehrere Rückkopplungssignale vertauscht werden.
  • In Ausführungsformen des Verfahrens wird eine jeweilige Vertauschung und damit die Rückkopplungspfade für den jeweiligen Fibonacci-Ringoszillatorschaltkreis vor dem Erfassen der eigentlichen Zufallsbits derart festgelegt, dass zuverlässig chaotische Schwingungszustände auftreten.
  • In einer weiteren Variante des Verfahrens werden mehrere Vertauschungszeitpunkte, insbesondere getaktet, festgelegt. D.h., in regelmäßigen Abständen erfolgt ein Vertauschen und damit eine Veränderung der Phasenlage der Rückkopplungspfade, sodass ein Auftreten von periodischem Schwingungsverhalten kaum entstehen kann. Man kann beispielsweise eine entsprechend eingerichtete Permutation oder Vertauschungseinrichtung derart ansteuern, dass in regelmäßigen Abständen die der Vertauschungseinrichtung zugeführten Rückkopplungssignale permutiert werden.
  • Insbesondere werden zu aufeinanderfolgenden Vertauschungszeitpunkten unterschiedliche Vertauschungen von Rückkopplungssignalen auf vertauschte Rückkopplungssignale vorgenommen.
  • Es ist denkbar, dass bei dem Verfahren zum Erkennen von periodischen Signalverläufen gleichzeitig mehrere Ausgangssignale verschiedener Inverter-Einrichtungen des Fibonacci-Ringoszillatorschaltkreises zum Erzeugen von Prüfbits erfasst werden. Es erfolgt ferner ein Zuordnen der gleichzeitig erfassten Prüfbits zu einem jeweiligen Bitmuster. Ferner kann eine Häufigkeit der aufgetretenen Bitmuster erfasst werden.
  • Das Verfahren kann ferner umfassen:
    Bestimmen einer Anzahl von verschiedenen Bitmustern, welche zu unterschiedlichen Abtastzeitpunkten erfasst wurden; und
    Vergleichen der Anzahl verschiedener Bitmuster mit einem Schwellwert.
  • Falls eine Anzahl von zu unterschiedlichen Abtastzeitpunkten erfassten unterschiedlichen Bitmustern niedriger ist als ein vorgegebener Schwellwert, wird ein Vertauschungszeitpunkt festgelegt, so dass ein Vertauschen der Rückkopplungssignale erfolgt.
  • Es wird ferner eine Vorrichtung zum Erzeugen von Zufallsbits vorgeschlagen, welche umfasst:
    einen Fibonacci-Ringoszillatorschaltkreis, welcher mehrere verkettete Inverter-Einrichtungen umfasst, wobei eine jeweilige Inverter-Einrichtung ein Ausgangssignal ausgibt und mehrere Ausgangssignale als Rückkopplungssignale gemäß einem Rückkopplungspolynom rückgekoppelt sind;
    eine Vertauschungseinrichtung zum Vertauschen von wenigstens zwei Rückkopplungssignalen zu einem vorgegebenen Vertauschungszeitpunkt; und
    eine Erfassungseinrichtung zum Erfassen von mindestens einem Ausgangssignal zum Erzeugen eines Zufallsbitwertes nach dem Vertauschungszeitpunkt.
  • Die Vorrichtung ist insbesondere eingerichtet, ein wie zuvor und im Folgenden beschriebenen Verfahren durchzuführen bzw. gemäß dem Verfahren betrieben zu werden. Es kann eine Steuereinrichtung vorgesehen sein, welche die Durchführung eines wie zuvor beschriebenen Verfahrens koordiniert.
  • Die Vorrichtung kann dazu weitere Elemente, wie XODER-Gatter, Speichereinrichtungen, programmgesteuerte Mikroprozessoren und Verschlüsselungseinrichtungen umfassen.
  • In Ausführungsformen ist die Vorrichtung Teil einer Verschlüsselungsvorrichtung zum Erzeugen von kryptografisch verschlüsselten Daten. Die Verschlüsselungsvorrichtung kann Teil eines Übertragungssystems sein, welches verschlüsselte Daten zu einem Empfänger überträgt.
  • Das vorgeschlagene Verfahren und eine entsprechende Vorrichtung erlauben insbesondere die Implementierung als Hardware-Chip mit einem Zufallszahlengenerator basierend auf einem Fibonacci-Ringoszillatorschaltkreis (FIRO). Dabei kann in einem Kalibrierverfahren, welches das zuvor und im Folgenden beschriebene Verfahren zum Erzeugen von Zufallsbits umfasst, eine geeignete Vertauschung oder Permutation für die Rückkopplungssignale festgelegt werden, bei der zuverlässig ein chaotisches Schwingungsverhalten auftritt.
  • Insofern ist es nicht mehr nötig, Online-Tests oder Klassifizierungen der erzeugten Zufallsbits vorzunehmen. Bei den eingesetzten Fibonacci-Ringoszillatorschaltkreisen werden die Rückkopplungssignale über XODER-Gatter miteinander verknüpft. Durch die Vertauschungseinrichtung oder den Vertauschungsschritt wird nicht das Rückkopplungspolynom verändert, sondern die Reihenfolge der XODER zu verknüpfenden Signale. Die sich dadurch ändernde Phasenlage führt zu einer Veränderung der Schwingungscharakteristik, die vorzugsweise chaotisch eingestellt wird.
  • Ohne zusätzlichen Hardware-Aufwand kann dadurch ein chaotisch schwingender Fibonacci-Ringoszillator aufgebaut werden. Vorzugsweise entspricht das Rückkopplungspolynom einem fixpunktfreien Fibonacci-Ringoszillator.
  • 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 Erzeugen von Zufallsbits;
  • 2 eine schematische Darstellung eines Ausführungsbeispiels für eine Vorrichtung zum Erzeugen von Zufallsbits;
  • 3 ein schematisches Ablaufdiagramm für eine Variante des Verfahren zum Erzeugen von Zufallsbits;
  • 4 eine schematische Darstellung eines weiteren Ausführungsbeispiels für eine Vorrichtung zum Erzeugen von Zufallsbits;
  • 59 Darstellungen von Verteilungen von auftretenden Bitmustern 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 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 von Zufallsbits gezeigt ist, durchgeführt werden kann.
  • In der 2 ist eine Vorrichtung zum Erzeugen von Zufallsbits schematisch dargestellt. Die Vorrichtung 1 umfasst dabei einen Fibonacci-Ringoszillatorschaltkreis 2. Bei einem Fibonacci-Ringoszillator (FIRO) ist eine vorgegebene Anzahl n von Invertern 3 13 n miteinander verkettet. Jeder Inverter 3 13 n empfängt dabei ein Eingangssignal und gibt ein Ausgangssignal aus. In der 2 sind die Eingangssignale mit Ei und die Ausgangssignale mit Ai mit i = 1 ... n bezeichnet. Beispielsweise hat der p-te Inverter 3 p ein Eingangssignal Ep und gibt dieses invertiert als Ausgangssignal Ap aus.
  • Dem in der 2 mit 3 1 bezeichneten ersten Inverter wird als Eingangssignal E1 das Ergebnis der miteinander XODERverknüpften Rückkopplungssignale zugeführt. Die jeweiligen Rückkopplungssignale ergeben sich aus dem jeweiligen Rückkopplungspolynom P.
  • In dem Beispiel der 2 ist beispielsweise das Ausgangssignal Ap des p-ten Inverters 3 p als Rückkopplungssignal Rp benutzt, das Ausgangssignal As des s-ten Inverters 3 s als Rückkopplungssignal Rs und das Ausgangssignal Aq des q-ten Inverters 3q als Rückkopplungssignal Rq mit 1 < p < s < q < n. Ferner ist das letzte bzw. n-te Ausgangssignal An als Rückkopplungssignal Rn benutzt. Bei einem reinen FIRO entspricht dies einem Rückkopplungspolynom P = 1 + xp + xs + xq + xn. Die „VerXODERung“ erfolgt über XODER bzw. XOR-Gatter 5 p, 5 s, 5 q.
  • Um möglichst einen fixpunktfreien Ringoszillator zu erhalten, der zum Erzeugen von Zufallsbits keine periodischen Schwingungen aufweist, wird der FIRO 2, wie es in der 1 schematisch dargestellt ist, betrieben. Um periodische Schwingungen zu unterbinden, werden einige Rückkopplungssignale, im Beispiel die Rückkopplungssignale Rp und Rq mit Hilfe einer Vertauschungs- oder Permutationsvorrichtung 4 als permutierte bzw. vertauschte Rückkopplungssignale Rp' und Rq' den jeweiligen XODER-Gattern 5 p und 5 q zugeführt.
  • In dem schematischen Ablaufdiagramm gemäß der 1 wird somit zunächst der Fibonacci-Ringoszillatorschaltkreis 2 in einen Schwingungszustand versetzt (Schritt S1), in einem Folgeschritt S2 erfolgt zu einem Vertauschungszeitpunkt tv ein Vertauschen von mehreren Rückkopplungssignalen (gemäß der 2 die zwei Rückkopplungssignale Rp und Rq), bevor sie der VerXODERung zugeführt werden. Im Schritt S2 werden somit die Rückkopplungssignale Rp und Rq auf die vertauschten Rückkopplungssignale Rp' und Rq' abgebildet. Dies kann mit Hilfe einer ansteuerbaren Vertauschungseinrichtung 4 erfolgen, die eine vorgegebene Anzahl von Signalen an Eingängen auf dieselbe Anzahl von Ausgängen vertauscht abbildet. Die Vertauschungsmöglichkeiten können festverdrahtet, als Lookup-Tabelle oder programmtechnisch implementiert sein.
  • Im Schritt S3 erfolgt jedenfalls nach dem Vertauschungszeitpunkt tv ein Erfassen des an dem Endinverter 3 n anliegenden Ausgangssignals An zum Bestimmen eines Zufallsbits. Das Ausgangssignal An wird als Zufallssignal ZS aufgefasst. Das Zufallssignal ZS schwankt chaotisch zwischen den logischen Pegeln L und H bzw. 0 und 1.
  • Der Schritt S2 kann optional die Schritte S21 und S22, wie in der 1 angedeutet, umfassen. Im optionalen Schritt S21 wird überwacht, ob ein periodischer Signalverlauf, insbesondere am Zufallssignal ZS, vorliegt. Beispielsweise kann eine Mustererkennung am Zufallssignal ZS durchgeführt werden, und sofern wiederkehrende periodische Eigenschaften oder Signalcharakteristika auftreten, wird ein periodischer Signalverlauf erkannt. Unter periodisch kann verstanden werden, dass über einen vorgegebenen Zeitraum wiederkehrende Pegelverläufe auftreten. Sofern dies erkannt wird, erfolgt im Schritt S22 ein Vertauschen wenigstens einer Auswahl (in der 2 der zwei Rückkopplungssignale Rp und Rq) von Rückkopplungssignalen.
  • Falls im Schritt S21 kein periodischer Signalverlauf erkannt wird, wird im Schritt S3 das Zufallssignal ZS direkt erfasst, beispielsweise abgetastet, so dass ein Zufallsbitwert ausgegeben werden kann.
  • Die Schritt S1, S2 und S3 können wiederholt erfolgen, so dass mit jedem Erfassen und/oder Abtasten des Zufallssignals ZS ein Zufallsbit ZB erzeugt wird. Da im Schritt S2 gewährleistet ist, dass chaotische Signalverläufe vorliegen, ergeben sich auch zuverlässig echte Zufallsbits ZB mit Hilfe des Fibonacci-Ringoszillators 2.
  • Die 3 zeigt einen Ausschnitt für ein Ablaufdiagramm zum Betreiben eines Fibonacci-Ringoszillatorschaltkreises zum Erzeugen von Zufallsbits, wie er in der 4 dargestellt ist. Der Ausschnitt des Ablaufdiagramms aus 3 kann insbesondere anstelle der in der 1 als S2 angegebenen Schritte betrieben werden. Das Verfahren zum Betreiben eines FIROs entlang der Teilverfahrensschritte, wie sie in der 3 dargestellt sind, wird anhand einer Ausführungsform für eine Vorrichtung zum Erzeugen von Zufallsbits gemäß der 4 näher erläutert.
  • Die Vorrichtung 10 zum Erzeugen von Zufallsbits beschreibt lediglich beispielhaft eine Ausführungsform mit fünf Invertern 3 13 5, die nacheinander verkettet sind. Grundsätzliche können FIROs mit einer beliebigen Zahl von Invertern größer als 3 implementiert werden. Ein jeweiliges Eingangssignal, beispielsweise E1, wird dem Inverter 3 1 zugeführt und als Ausgangssignal A1 abgegriffen. Die Ein- und Ausgangssignale der übrigen Inverter 3 23 5 sind entsprechend bezeichnet. Die fünf Inverter 3 13 5 bilden einen Fibonacci-Ringoszillator aus, der ein Rückkopplungspolynom P = 1 + x2 + x4 + x5 hat.
  • Die Rückkopplungssignale R2, R4 und R5 werden einer Vertauschungs- oder Permutationseinrichtung 4 zugeführt. Die Permutationseinrichtung 4 führt eine Vertauschung der drei Rückkopplungssignale R2, R4, R5 auf vertauschte Rückkopplungssignale R2', R4', R5' durch. Die vertauschten Rückkopplungssignale R2' und R4' werden einem XODER-Gatter 5 4 zugeführt. Das sich ergebende Signal R4'' und das vertauschte Rückkopplungssignal R5' werden einem zweiten XODER-Gatter 5 5 zugeführt. Das sich ergebende Rückkopplungssignal R5'' ist als Eingangssignal E1 dem ersten Inverter 3 1 zugeführt.
  • Die Vertauschungseinrichtung 4 wird von einer Steuereinrichtung 8 mit Hilfe von Steuersignalen CT angesteuert. Die Vertauschungseinrichtung ist eingerichtet, verschiedene Vertauschungen, die beispielsweise in der Steuereinrichtung 8 in einem Speicher 9 abgelegt sind, durchzuführen. Das Ausgangssignal A5 des letzten Inverters 3 5 wird als Zufallssignal ZS verwendet und einer Erfassungseinrichtung 7 zugeführt.
  • Die Erfassungseinrichtung 7 kann zum Beispiel ein Abtast- und Halteglied, einen binären Zähler und/oder ein Zwischenspeicherelement umfassen. Es ist auch denkbar, dass die Erfassungseinrichtung 7 ein T-Flip-Flop umfasst, das in Abhängigkeit von dem Zufallssignal ZS einen L- oder H-Pegel als Zufallsbit ZB ausgibt. Die Erfassungseinrichtung 7 liefert ein Zufallsbit ZB an die Steuereinrichtung 8.
  • Die Ausgangssignale A1–A5 werden jeweils Abtast- und Haltegliedern 6 16 5 zugeführt. Die Abtast- und Halteglieder 6 16 5 erfassen bzw. tasten das jeweilige Ausgangssignal A1–A5 zu einem Abtastzeitpunkt ts, der von einem Steuersignal CTS festgelegt ist, gleichzeitig ab. Insofern werden gleichzeitig die Ausgangspegel der Inverter-Einrichtungen 3 13 5 als Prüfbits P1–P5 erfasst. Die fünf Prüfbits P1–P5 bilden somit ein Bitmuster, welches mit BMi bezeichnet ist.
  • Zu jedem Abtastzeitpunkt ts, welcher durch das Abtast- oder Taktsignal CTS vorgegeben ist, wird ein Bitmuster BMi erzeugt, welches im Bitmusterspeicher 11 der Steuereinrichtung 8 abgelegt ist. Die Steuereinrichtung 8 umfasst ferner einen Zufallsbitspeicher 12, um eine Zufallsfolge oder eine binäre Zufallszahl ZZ bereitzustellen.
  • Die Steuereinrichtung 8 ist an eine Verschlüsselungseinrichtung 13 gekoppelt, der die binäre Zufallszahl ZZ zugeführt wird. Die Verschlüsselungseinrichtung 13 ist eingerichtet, in Abhängigkeit von der Zufallszahl ZS Eingangsdaten D in verschlüsselte Daten DS zu überführen. Dabei wird ein kryptographischer Verschlüsselungsalgorithmus eingesetzt, der beispielsweise in einem Programmspeicher 14 abgelegt ist. Die mit Hilfe eines chaotisch schwingenden FIROs erzeugten Zufallsbits ZB werden somit als kryptographischer Schlüssel für einen Verschlüsselungsalgorithmus verwendet. Man kann die Ausführungsform der 4 auch als Verschlüsselungsvorrichtung auffassen. Die mit Hilfe des chaotisch schwingenden Ringoszillators erzeugten binären Zufallszahlen ZZ liefern somit eine zuverlässige und sichere Verschlüsselung der Daten D zu verschlüsselten Daten DS.
  • Beim Betrieb der Vorrichtung 10 wird, wie in der 3 dargestellt ist, ein jeweiliges Bitmuster BMi aus den gleichzeitig abgetasteten Ausgangssignalen A1–A5 im Schritt S211 erfasst. Die Steuereinrichtung 8 ist ferner eingerichtet, die Anzahl von erfassten Bitmustern (Schritt S212) über ein Zeitintervall oder eine Anzahl von aufeinander folgenden Abtastzeitpunkten zu zählen. Ferner wird gezählt, wie viele verschiedene Bitmuster BMi über das Zeitintervall auftreten.
  • Dies erfolgt im Schritt S213. Die Steuereinrichtung 8 ist dazu mit einem Bitmusterzählspeicher 11 ausgestattet.
  • Falls über eine vorgegebene Anzahl von Abtastungen bzw. das Zeitintervall viele verschiedene Bitmuster erfasst werden, kann davon ausgegangen werden, dass kein periodischer Schwingungszustand vorliegt. Im Schritt S214 wird überprüft, ob die Anzahl der verschiedenen Bitmuster BMi über einer vorgegebenen Schwelle liegt. Falls dies der Fall ist, erfolgt im Schritt S216, wie in der 1 angedeutet ist, die Erfassung des jeweiligen Zufallsbits im Schritt S3.
  • Falls die Anzahl von erfassten unterschiedlichen Bitmustern über die vorgegebene Anzahl von Abtastungen unterhalb der Schwelle liegt, wird im Schritt S215 erkannt, dass eine periodische Schwingung vorliegt. Ist dies der Fall, erfolgt gemäß der 2 im Schritt S22 eine Vertauschung der Rückkopplungssignale R2, R4 und R5. Dadurch wird die Phasenlage der Rückkopplungen verändert, so dass erneut ein chaotisches Schwingungsverhalten entstehen kann.
  • Die Anmelderin hat nun Untersuchungen an einem Ringoszillator der Länge 16 mit einem festen Rückkopplungspolynom auf einem FPGA-Chip vom Typ Spartan-III von Xilinx durchgeführt. Das Rückkopplungspolynom wurde so gewählt, dass ein fixpunktfreier Fibonacci-Ringoszillator mit neun Rückkopplungspfaden bzw. Rückkopplungssignalen vorliegt. Die neun Rückkopplungssignale werden einer Permutation in einer entsprechenden Vertauschungsvorrichtung unterzogen. Dabei sind 32 verschiedene Permutationen möglich. Diese wurden zufällig gewählt, so dass die neun Rückkopplungssignale auf genau neun permutierte Rückkopplungssignale abgebildet werden. Es wurden also 32 zufällige Permutationen ausgewählt.
  • Die XODER- bzw. XOR-Verknüpfung wurde, wie in der 4 angedeutet, kaskadiert vorgenommen. In Abhängigkeit von der Permutation durchlaufen die Rückkopplungssignale eine verschiedene Anzahl von Gattern, so dass aufgrund dieser Laufzeitunterschiede chaotische oder periodische Schwingungen auftreten können. Bei den Untersuchungen der Anmelderin wurden für die 32 verschiedenen Permutationen wiederholt ein wohldefinierter Anfangszustand für die Inverterein- und -ausgänge angenommen und dann der FIRO in einen frei schwingenden Zustand versetzt. Nach einem Zeitraum von 600 ns wurden die Inverterausgänge, also die 16 Ausgangssignale, jeweils gleichzeitig abgetastet. Dies erfolgt für jede der 32 Permutationen 10.000 Mal. Für jede der 32 verschiedenen Permutationen wurden 101 Neustarts durchgeführt. Daraus ergeben sich 3.232 Versuche.
  • Die 5 zeigt nun eine Verteilung der dabei erhaltenen verschiedenen 16 Bit langen Bitmuster. Auf der x-Achse sind die 3.232 Versuche aufgeführt. Die 32 möglichen Permutationen wurden dahingehend untersucht, ob 300 oder weniger verschiedene Bitmuster aufgetreten sind. Bei den die Verteilung der 5 liefernden Permutationen wurden bei fünf Permutationen 90, 101, 100 und 13 Mal weniger als 301 verschiedene Bitmuster erkannt. Insofern erkennt man, dass nur bei diesen fünf Permutationen der Ringoszillator periodische Schwingungen aufweist. D.h., bei den übrigen Permutationen kann davon ausgegangen werden, dass chaotisches Schwingungsverhalten vorliegt. Wird nun eine chaotische Schwingungen verursachende Permutation fest eingestellt, kann der FIRO als zuverlässiger Zufallszahlen- oder Zufallsbitgenerator eingesetzt werden.
  • Die Anmelderin hat weitere Versuche durchgeführt, die im Folgenden erläutert sind.
  • Die 6 zeigt eine Verteilung für 32 verschiedene Permutationen, bei denen drei Paare von Rückkopplungssignalen paarweise vertauscht wurden oder nicht und bei den verbleibenden drei Rückkopplungssignalen vier der möglichen sechs Permutationen ausgewählt wurden. Es ergeben sich wiederum 32 Möglichkeiten, die entsprechende Vertauschungseinrichtung zu implementieren oder programmieren. Jede der 32 Möglichkeiten wurde zum Erzeugen der Verteilung in 6 in 186 Versuchen untersucht. Es wurden wiederum 10.000 gleichzeitige Abtastungen an den Ausgängen von allen 16 Invertern des FIROs gewonnen. Die Abtastungen wurden in Abständen von 600 ns vorgenommen.
  • Bei den 5.952 Versuchen, die auf der x-Achse angedeutet sind, erkennt man, dass die nur wenigen verschiedenen erfassten Bitmuster im linken Bereich der Verteilung auf periodische Schwingungen hindeuten. Als Kriterium für das Auftreten von chaotischen Schwingungen kann man annehmen, dass mindestens 3.000 verschiedene Bitmuster auftreten müssen. Bei den 186 Versuchen mit den 32 Permutationen ergeben sich dann neun verschiedene Fälle, also Permutationen, in denen nicht zuverlässig eine chaotische Schwingung angenommen werden kann. Wird beispielsweise vor oder während des Betriebs des Zufallszahlengenerators erkannt, dass ein periodisches Schwingungsverhalten droht, kann auf die 23 übrigen Permutationen umgeschaltet werden, so dass dann zuverlässig eine chaotische Schwingung erzielt wird.
  • Die 7 zeigt eine Permutation, bei der mehr als 3.000 verschiedene Bitmuster bei dem vorhergehenden Versuch erzeugt wurden. Bei dieser Permutation ergeben sich aus den 186 Versuchen (x-Achse) immer mehr als 3.800 verschiedene Bitmuster. Dies ist ein Indikator für deutlich chaotisches Schwingungsverhalten.
  • Die 8 hingegen zeigt eine Verteilung von Bitmustern für eine Permutation, bei denen weniger als 100 verschiedene Bitmuster aufgetreten sind. Des Weiteren ist für die Erzeugung der 9 eine Permutation gewählt, bei der nur einmal 100 oder weniger verschiedene Bitmuster aufgetreten sind. Man erkennt, dass der entsprechende 16 Inverter lange FIRO in fast allen Fällen dennoch chaotisches Verhalten zeigt. Allerdings kann ein Schwingungszustand auftreten, bei dem gemäß der 9 nur 31 verschiedene Bitmuster entstehen. Aus dem Beispiel der 9 ist ersichtlich, dass es vorteilhaft sein kann, kontinuierlich das Auftreten von Periodizitäten im Schwingungs- oder Ringoszillatorsignal zu überwachen und gegebenenfalls auf eine veränderte Permutation der Rückkopplungssignale hinzuwirken.
  • Insgesamt ermöglichen die vorgeschlagenen Verfahren und die Vorrichtungen zum Erzeugen von Zufallsbits mit geringem zusätzlichem Hardwareaufwand in der Art einer Permutationseinrichtung die zuverlässige Erzeugung von Zufallsbits. Es wird zuverlässig verhindert, dass ein FIRO in einen periodischen Schwingungszustand fällt und dann keine „guten“ Zufallsbits mehr liefert. Die vorgeschlagenen Verfahren und Vorrichtungen gewährleisten einen praktisch ständigen chaotischen Signalverlauf, der zum Ableiten von Zufallsbitpegeln dient.
  • 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 (10)

  1. Verfahren zum Erzeugen von Zufallsbits (ZB) mit Hilfe eines Fibonacci-Ringoszillatorschaltkreises (2), welcher mehrere verkettete Inverter-Einrichtungen (3 13 n) umfasst, wobei eine jeweilige Inverter-Einrichtung (3 p) ein Ausgangssignal (Ap) ausgibt und mehrere Ausgangssignale (Ap, As, Aq, An) als Rückkopplungssignale (Rp, Rs, Rq, Rn) gemäß einem Rückkopplungspolynom (P) rückgekoppelt werden, mit den Schritten: Vertauschen (S2) von wenigstens zwei Rückkopplungssignalen (Rp, Rq) zu einem vorgegebenen Vertauschungszeitpunkt (tv); und Erfassen (S3) von mindestens einem der Ausgangssignale (An) als Zufallssignal (ZS) zum Erzeugen eines Zufallsbitwerts (ZB) nach dem Vertauschungszeitpunkt (tv).
  2. Verfahren nach Anspruch 1, wobei das Erfassen (S3) ein Abtasten des mindestens einen Ausgangssignals (An) zu einem Abtastzeitpunkt (ts) umfasst.
  3. Verfahren nach Anspruch 1 oder 2, wobei ein jeweiliges Rückkopplungssignal (Rp, Rq) einer XODER-Einrichtung (5 p, 5 q) zugeführt wird und mit Hilfe des Vertauschens (S2) eine Phasenlage der wenigstens zwei Rückkopplungssignale (Rp, Rq) vor dem Abtastzeitpunkt (ts) verändert wird.
  4. Verfahren nach einem der Ansprüche 1–3, ferner umfassend: Überwachen von mindestens einem Ausgangssignal (An) zum Erkennen eines periodischen Signalverlaufs, und Festlegen des Vertauschungszeitpunkts (tv), falls ein periodischer Signalverlauf erkannt wird.
  5. Verfahren nach einem der Ansprüche 1–4, wobei mehrere Vertauschungszeitpunkte (tv), insbesondere getaktet, festgelegt werden.
  6. Verfahren nach Anspruch 5, wobei zu aufeinander folgenden Vertauschungszeitpunkten (tv, tv’) unterschiedliche Vertauschungen von Rückkopplungssignalen (Rp, Rq) vorgenommen werden.
  7. Verfahren nach einem der Ansprüche 1–6, wobei das Rückkopplungspolynom (P) unverändert bleibt.
  8. Verfahren nach einem der Ansprüche 1–7, ferner umfassend: Permutieren einer Auswahl von Rückkopplungssignalen zu dem Vertauschungszeitpunkt (tv).
  9. Vorrichtung (1) zum Erzeugen von Zufallsbits (ZB) umfassend: einen Fibonacci-Ringoszillatorschaltkreis (2), welcher mehrere verkettete Inverter-Einrichtungen (3 13 n) umfasst, wobei eine jeweilige Inverter-Einrichtung (3 p) ein Ausgangssignal (Ap) ausgibt und mehrere Ausgangssignale (Ap, As, Aq, An) als Rückkopplungssignale (Rp, Rs, Rq, Rn) gemäß einem Rückkopplungspolynom (P) rückgekoppelt sind; eine Vertauschungseinrichtung (4) zum Vertauschen von wenigstens zwei Rückkopplungssignalen (Rp, Rq) zu einem vorgegeben Vertauschungszeitpunkt (tv); und eine Erfassungseinrichtung (7) zum Erfassen von mindestens einem Ausgangssignal (An) zum Erzeugen eines Zufallsbitwerts (ZB) nach dem Vertauschungszeitpunkt (tv) wobei die Vorrichtung insbesondere eingerichtet ist, ein Verfahren nach einem der Ansprüche 1–8 durchzuführen.
  10. Verschlüsselungsvorrichtung zum Verschlüsseln von Daten (D) in verschlüsselte Daten (DS) mit einer Vorrichtung (1) nach Anspruch 9 zum Erzeugen einer Zufallszahl (ZZ) für einen kryptografischen Schlüssel.
DE102014226996.2A 2014-12-29 2014-12-29 Verfahren und Vorrichtung zum Erzeugen von Zufallsbits Withdrawn DE102014226996A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102014226996.2A DE102014226996A1 (de) 2014-12-29 2014-12-29 Verfahren und Vorrichtung zum Erzeugen von Zufallsbits

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014226996.2A DE102014226996A1 (de) 2014-12-29 2014-12-29 Verfahren und Vorrichtung zum Erzeugen von Zufallsbits

Publications (1)

Publication Number Publication Date
DE102014226996A1 true DE102014226996A1 (de) 2016-06-30

Family

ID=56116729

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014226996.2A Withdrawn DE102014226996A1 (de) 2014-12-29 2014-12-29 Verfahren und Vorrichtung zum Erzeugen von Zufallsbits

Country Status (1)

Country Link
DE (1) DE102014226996A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017114010A1 (de) * 2017-06-23 2019-02-21 PHYSEC GmbH Verfahren zur Prüfung der Integrität einer dedizierten physikalischen Umgebung zum Schutz von Daten

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008018678B4 (de) * 2008-04-14 2011-02-03 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
DE102014203649A1 (de) * 2014-02-28 2014-05-28 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008018678B4 (de) * 2008-04-14 2011-02-03 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
DE102014203649A1 (de) * 2014-02-28 2014-05-28 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017114010A1 (de) * 2017-06-23 2019-02-21 PHYSEC GmbH Verfahren zur Prüfung der Integrität einer dedizierten physikalischen Umgebung zum Schutz von Daten

Similar Documents

Publication Publication Date Title
DE102004047425B4 (de) Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen
DE112011106024B4 (de) Erzeugungsvorrichtung für vorrichtungsspezifische Informationen und Erzeugungsverfahren für vorrichtungsspezifische Informationen
EP1354264B1 (de) Zufallszahlengenerator und verfahren zum erzeugen einer zufallszahl
DE102008048292B4 (de) Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
WO2009086878A1 (de) Schaltung und verfahren zur generierung einer echten, schaltungsspezifischen und zeitinvarianten zufallszahl
EP2271980A1 (de) Vorrichtung und verfahren zum erzeugen einer zufallsbitfolge
DE102009008224B4 (de) Invertierende Zelle
EP1504336B1 (de) Vorrichtung und verfahren zum erzeugen einer zufallszahl
DE102014200163A1 (de) Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
DE102014226996A1 (de) Verfahren und Vorrichtung zum Erzeugen von Zufallsbits
DE102014224421A1 (de) Verfahren und Vorrichtung zum Erzeugen von Zufallsbits
DE102014203649A1 (de) Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits
DE102014200164A1 (de) Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
WO2015000640A1 (de) Erzeugen von einer anzahl von zufallsbits
DE102015203580A1 (de) Vorrichtung und Verfahren zum Erzeugen von Zufallsbits
WO2014117983A1 (de) Verfahren und vorrichtung zum erzeugen von zufallsbits
DE102015203573A1 (de) Verfahren und Vorrichtung zum Erzeugen von Zufallsbits
DE102014221831A1 (de) Vorrichtung und Verfahren zum Erzeugen von Zufallsbits
EP1459476B1 (de) Datenverarbeitungsvorrichtung zum Wechsel eines Schlüssels in unregelmässigen zeitlichen Abständen
DE102016207448A1 (de) Vorrichtung mit einer Mehrzahl von digitalen Gatterschaltungen und Verfahren zum Betreiben derselben
DE102008033162A1 (de) Physikalischer Zufallszahlengenerator
DE102014221827A1 (de) Vorrichtung und Verfahren zum Erzeugen von Zufallsbits
WO2015043855A2 (de) Erzeugen von zufallsbits
DE102016200850A1 (de) Verfahren zum Betreiben einer sicherheitsrelevanten Vorrichtung und Vorrichtung
DE102014219693A1 (de) Verfahren und Vorrichtung zum Erzeugen von Zufallsbits

Legal Events

Date Code Title Description
R163 Identified publications notified
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee