DE102014200164A1 - Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators - Google Patents

Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators Download PDF

Info

Publication number
DE102014200164A1
DE102014200164A1 DE102014200164.1A DE102014200164A DE102014200164A1 DE 102014200164 A1 DE102014200164 A1 DE 102014200164A1 DE 102014200164 A DE102014200164 A DE 102014200164A DE 102014200164 A1 DE102014200164 A1 DE 102014200164A1
Authority
DE
Germany
Prior art keywords
random
compression
sampling
output
compressed
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
DE102014200164.1A
Other languages
English (en)
Inventor
Eberhard Boehl
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102014200164.1A priority Critical patent/DE102014200164A1/de
Priority to US14/589,345 priority patent/US20150193205A1/en
Publication of DE102014200164A1 publication Critical patent/DE102014200164A1/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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)

Abstract

Es werden ein Verfahren und eine Anordnung zum Erzeugen einer Ausgabe einer Zufallsquelle vorgestellt. Dabei wird die Zufallsquelle mit mindestens zwei Abtasteinheiten (51, 151) abgetastet, so dass jeweils ein Ausgangssignal erzeugt wird, und die Ausgangssignale jeder Abtasteinheit (51, 151) jeweils durch eine Verarbeitungseinheit (45, 145) verarbeitet werden.

Description

  • Die Erfindung betrifft ein Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators und eine Anordnung zur Durchführung des Verfahrens.
  • Stand der Technik
  • Zufallszahlen als Ergebnisse bzw. Ausgaben von Zufallsquellen in Zufallsgeneratoren werden für viele Anwendungen benötigt. Zufallsgeneratoren sind Verfahren, die eine Folge von Zufallszahlen liefern. Ein entscheidendes Kriterium der Güte von Zufallszahlen ist, ob das Ergebnis der Generierung als unabhängig von früheren Ergebnissen angesehen werden kann.
  • Zufallszahlen werden bspw. für kryptographische Verfahren benötigt, wobei diese verwendet werden, um Schlüssel für diese Verschlüsselungsverfahren zu generieren. So werden Zufallsgeneratoren bzw. Random Number Generators (RNG) verwendet, um Masterschlüssel für symmetrische Verschlüsselungsverfahren und Protokoll-Handshaking in ECC (elliptical curve cryptography) zu erzeugen, die einen Leistungsanalyse-Angriff und Angriffe durch Aufzeichnen (replay attacks) verhindern.
  • Es gibt zwei grundlegende Typen von Zufallsgeneratoren, nämlich zum einen Pseudo-Zufallszahlen-Generatoren (PRNG: pseudo random number generators) für hohe Durchsätze und niedrige Sicherheitslevels. In einen PRNG wird üblicherweise ein geheimer Wert eingegeben, und jeder Eingabewert wird immer dieselben Ausgabereihen ergeben. Ein guter PRNG wird jedoch eine Zahlenreihe ausgeben, die zufällig erscheint und die meisten Tests bestehen wird.
  • Zu beachten ist, dass an Schlüssel für kryptographische Verfahren hohe Anforderungen hinsichtlich der Zufallseigenschaften gestellt werden. Deshalb sind Pseudo-Zufallszahlen-Generatoren (PRNG), bspw. repräsentiert durch ein LFRS (linear feedback shift register), für diesen Zweck nicht geeignet. Nur ein Generator wahrer Zufallszahlen, der als True Random Number Generator (TRNG) bezeichnet wird, erfüllt die gestellten Anforderungen. Dieser stellt den anderen Typ eines Zufallsgenerators dar. Bei diesem werden natürliche Rauschprozesse ausgenutzt, um ein nicht vorhersagbares Ergebnis zu erhalten.
  • Üblich sind Rauschgeneratoren, die das thermische Rauschen von Widerständen oder Halbleitern bzw. das Schrot-Rauschen an Potenzialbarrieren, bspw. an pn-Übergängen, ausnutzen. Eine weitere Möglichkeit ist die Ausnutzung des radioaktiven Zerfalls von Isotopen.
  • Während die "klassischen" Verfahren analoge Elemente, wie bspw. Widerstände, als Rauschquellen benutzten, werden in der jüngeren Vergangenheit häufig digitale Elemente, wie bspw. Inverter, eingesetzt. Diese haben den Vorteil eines geringeren Aufwands im Schaltungslayout, weil diese als Standardelemente vorliegen. Weiterhin kann man solche Schaltungen auch in frei programmierbaren Schaltungen, wie bspw. FPGAs, einsetzen.
  • So ist bspw. der Einsatz von Ring-Oszillatoren bekannt, die eine elektronische Oszillatorschaltung darstellen. Bei diesen wird eine ungerade Anzahl von Invertern zu einem Ring zusammengeschaltet, wodurch ein Oszillieren mit einer Eigenfrequenz entsteht. Die Eigenfrequenz hängt dabei von der Anzahl der Inverter im Ring, den Eigenschaften der Inverter, den Bedingungen der Zusammenschaltung, nämlich der Leitungskapazitäten, der Betriebsspannung und der Temperatur ab. Durch das Rauschen der Inverter entsteht eine zufällige Phasenverschiebung gegenüber der idealen Oszillatorfrequenz, die man als Zufallsprozess für das TRNG nutzt. Zu beachten ist, dass Ring-Oszillatoren selbständig schwingen und keine externen Komponenten, wie z. B. Kondensatoren oder Spulen, benötigen.
  • Die Ausgabe der Ring-Oszillatoren kann komprimiert oder einer Nachbearbeitung unterzogen werden, um die Entropie zu verdichten bzw. zu bündeln, d. h. zu steigern, und jede Tendenz (bias) zu eliminieren.
  • Ein Problem in diesem Zusammenhang besteht darin, dass man den Ring-Oszillator möglichst in der Nähe einer erwarteten, idealen Flanke abtasten muss, damit man einen zufälligen Abtast-Wert erhält. Dazu wird in der Veröffentlichung von Bock, H., Bucci, M., Luzzi, R.: An Offset-compensated Oscillator-based Random Bit Source for Security Applications, CHES 2005 eine Möglichkeit gezeigt, wie durch das geregelte Verschieben des Abtastzeitpunkts die Abtastung immer in der Nähe einer Oszillator-Flanke erfolgt.
  • Aus der Druckschrift EP 1 686 458 B1 ist ein Verfahren zum Erzeugen von Zufallszahlen mit Hilfe eines Ring-Oszillators bekannt, bei dem ein erstes und ein zweites Signal bereitgestellt werden, wobei das erste Signal durch das zweite Signal getriggert abgetastet wird. Bei dem beschriebenen Verfahren wird ein Ring-Oszillator mehrfach abgetastet, wobei immer nur nicht invertierende Verzögerungen, nämlich eine geradzahlige Anzahl von Invertern als Verzögerungs-Elemente, ausgenutzt werden. Dabei wird der Oszillator-Ring beginnend von einem Anfangspunkt immer nach einer geradzahligen Anzahl von Invertern gleichzeitig oder gegenseitig verzögert abgetastet. Dadurch kann auf die Verschiebung des Abtastungszeitpunkts verzichtet werden; stattdessen werden die mehrfachen Abtastsignale ausgewertet.
  • In der Veröffentlichung "Design of Testable Random Bit Generators" von Bucci, M. und Luzzi, R., CHES 2005 wird eine Methode vorgestellt, mit der man eine Beeinflussung der Zufallsquelle feststellen kann. Damit kann man Attacken vorbeugen. Eine direkte Unterscheidung zwischen Zufallswerten und deterministischen Werten ist damit aber nicht möglich. Eine Bewertung der Güte der Zufallsquelle ist durch Zählung der Übergänge möglich.
  • Eine weitere Möglichkeit ist durch die Nutzung mehrerer Ring-Oszillatoren gegeben. Dies ist bspw. In der Veröffentlichung Sunar, B. et al: Approvable Secure True Random Number Generator with Built In Tolerance Attacks, IEEE Trans. On Computers, 1/2007 dargelegt. Dabei werden Abtastwerte mehrerer Ring-Oszillatoren miteinander verknüpft und ausgewertet.
  • Wie bereits ausgeführt wurde, wird in Ring-Oszillatoren eine ungerade Anzahl von Invertern zu einem Ring zusammengeschaltet, wodurch ein Oszillieren mit einer Eigenfrequenz entsteht. Die Eigenfrequenz hängt dabei von der Anzahl der Inverter im Ring, den Eigenschaften der Inverter, den Bedingungen der Zusammenschaltung, d. h. der Leitungskapazitäten, der Betriebsspannung und der Temperatur ab. Durch das Rauschen der Inverter entsteht eine zufällige Phasenverschiebung gegenüber der idealen Oszillatorfrequenz, die man als Zufallsprozess für das TRNG ausnutzt.
  • Eine vorteilhafte Realisierung einer TRNG-Quelle mittels eines an mehreren Stellen abgetasteten Ring-Oszillators ist in 1 gezeigt. Diese Schaltung bietet zugleich den Vorteil, dass eine Korrelation zum Systemtakt festgestellt werden kann und Fehler entdeckt werden können, wenn besondere Realisierungsbedingungen mit einer gleichmäßigen kapazitiven Belastung aller Knoten des Ring-Oszillators vorliegen und die benutzten Schaltelemente, wie bspw. Flipflops, Inverter, so konstruktiv gestaltet sind, dass sie möglichst gleichmäßig auf steigende und fallende Flanken reagieren.
  • In der Druckschrift DE 60 2004 011 081 T2 wird eine Möglichkeit beschrieben, wie man eine TRNG-Quelle nach einem "Post Processing", einer sogenannten Nachbehandlung, testen kann und wie man dazu diese Nachbehandlung in einen Zertifizierungsmodus versetzt.
  • Offenbarung der Erfindung
  • Vor diesem Hintergrund werden ein Verfahren mit den Merkmalen des Anspruchs 1 und eine Anordnung gemäß Anspruch 7 vorgestellt. Ausführungsformen ergeben sich aus den abhängigen Ansprüchen und aus der Beschreibung.
  • Es wird somit ein Verfahren vorgestellt, das in Ausgestaltung auf einem Komprimierungsverfahren zum Nachbehandeln einer Ausgabe einer Zufallsquelle eines Zufallsgenerators aufbaut. Die Zufallsquelle gibt bei diesem zugrundeliegenden Komprimierungsverfahren ein digitales Ausgangssignal mit einer Bitbreite von mindestens einem Bit aus, wobei das Ausgangssignal komprimiert wird. Dabei wird im Rahmen der Komprimierung eine blockweise lineare Verknüpfung von n aufeinanderfolgenden Bits des Ausgangssignals vorgenommen, wobei n ein Komprimierungsfaktor ist, wodurch ein komprimiertes Ausgangssignal erzeugt wird, das eine Folge komprimierter Signalwerte umfasst. Die Folge der komprimierten Signalwerte kann hinsichtlich ihrer Verteilung überprüft werden.
  • Bei diesem Komprimierungsverfahren kann in Ausgestaltung vorgesehen sein, dass die Bits des Ausgangssignals entweder direkt miteinander durch eine lineare Operation verknüpft werden und dieses kombinierte Signal seriell durch eine lineare Operation komprimiert wird oder dass zunächst bitweise komprimiert wird und die komprimierten Werte anschließend einer weiteren Behandlung unterzogen werden, bspw. linear verknüpft werden. Dabei können ein erster Nachbehandlungsschritt und ein zweiter Nachbehandlungsschritt vorgesehen sein, wobei in mindestens einem der beiden eine lineare Verknüpfung, bspw. mit einem XOR-Glied oder einem XNOR-Glied, vorgenommen wird.
  • Alle bisherigen Verfahren mit ausschließlich digitalen Elementen als Entropie-Quelle, bspw. zu einem Ring geschaltete ungeradzahlige Anzahl von Invertern, benötigen zum Teil sehr aufwendige Nachbearbeitungsschaltungen, die einmal die Entropie anreichern und zum anderen eine Gleichverteilung der Zufallsbits zwischen den Werten 0 und 1 gewährleisten. Das vorgestellte Komprimierungsverfahren bietet eine einfache Möglichkeit einer Nachbehandlung. Insbesondere kann auf die in der Druckschrift DE 60 2004 011 081 T2 beschriebene komplexe Nachbehandlung mit einem Zertifizierungsmodus verzichtet werden.
  • Gemäß dem vorgestellten Komprimierungsverfahren kann eine TRNG-Quelle mit mehreren Ausgängen benutzt werden, wobei jeder dieser Ausgänge mit einer simplen Komprimierungsfunktion, bspw. ein serielles XOR, ausgestattet ist. Der Aufwand eines solchen Verfahrens ist derart gering, dass ein TRNG mit ca. 200 Gatteräquivalenten realisiert werden kann. Das ist deutlich günstiger als bei bekannten Verfahren.
  • Eine blockweise lineare Verknüpfung kann bspw. durch ein serielles XOR erreicht werden, wobei bspw. das Ausgangssignal mit einem Zwischensignal linear durch XOR verknüpft wird. Eine Verknüpfung mit XNOR ist ebenfalls möglich. Dabei wird das Ergebnis dieser Verknüpfung in einem Speicherelement, bspw. einem Flipflop, gespeichert. Das Ausgangssignal dieses Speicherelements ist das Zwischensignal. Das derart in dem Speicherelement gebildete komprimierte Signal wird nach einer vorgegebenen Anzahl n von Takten ausgelesen. Anschließend wird das Speicherelement zurückgesetzt. Die Anzahl n sollte möglichst ungerade sein, weil dann n Nullen und n Einsen unterschiedliche Ergebnisse liefern.
  • Die Prüfung der Verteilung kann bspw. durch die Zählung des Auftretens von Bitwert 0 und Bitwert 1 in separaten Zählern für m komprimierte Ausgangsbits und die Durchführung des Vergleichs durch Differenzbildung dieser Zählerwerte sowie durch Vergleich der Differenz mit einer vorgegebenen Schranke vorgenommen werden.
  • Wird als Zufallsquelle ein Ring-Oszillator verwendet, kann dessen Frequenz durch Wahl der Anzahl von invertierenden Elementen oder auch durch Änderung der Betriebsbedingungen, wie bspw. Betriebsspannung, Temperatur usw., beeinflusst werden. Die Anzahl der invertierenden Elemente im Ring-Oszillator kann wie folgt geändert werden:
    • a) Generischer Ansatz bei der Synthese mit variabler Anzahl von invertierenden Elementen. Dies kann jedoch nur in einem FPGA nach einer erneuten Synthese vorgenommen werden.
    • b) Struktur des Ring-Oszillators mit invertierenden Elementen versehen, die teilweise überbrückt werden können, gesteuert durch ein Steuersignal. Diese Zusatzschaltung verstärkt die ungleichen Kapazitäten der Knoten im Ring-Oszillator. Dies wirkt sich jedoch nicht nachteilig aus, wenn entsprechend der Komprimierungsfaktor und/oder die Abtastfrequenz variiert wird bzw. werden.
  • Änderungen der Betriebsbedingungen können wie folgt vorgenommen werden:
    • a) durch eine separat steuerbare Versorgungsspannung, die explizit herausgeführt ist, oder durch Serienwiderstände in der Versorgung des Ring-Oszillators (Spannungsabfall),
    • b) durch Heiz- oder Kühlelemente, die wahlweise zugeschaltet werden.
  • Ein gegenseitiger Vergleich der Anzahl von Nullen und Einsen bedeutet bspw., dass man die größte und kleinste Anzahl einer Belegung durch größer/kleiner-Vergleich feststellt, z. B.
    • a) indem man prüft, ob eine Differenz negativ wird oder
    • b) indem man die Zählerwerte bitweise beginnend vom MSB vergleicht; bei der ersten Abweichung an einer Bitposition ist der Wert mit einer 1 an dieser Stelle größer als der andere und dann die Differenz aus größtem und kleinstem Wert bildet, die man wiederum mit einer festen Schranke vergleicht.
  • Es wird somit ein Komprimierungsverfahren verwendet, beim dem durch eine einfache Komprimierung mittels XOR-Verknüpfung die Gleichverteilung zwischen 0 und 1 erreicht wird. Die als "bias" bezeichnete Ungleichverteilung wird durch einen entsprechenden Komprimierungsgrad in Verbindung mit einer geeigneten Wahl der Abtastfrequenz erreicht.
  • Mit Hilfe eines geeigneten Prüfverfahrens kann festgestellt werden, ob der bias genügend klein ist oder, z. B. wegen einer Korrelation des Oszillators mit einem internen oder externen Takt, kein ausreichend hoher Zufallswert erreichbar ist.
  • Das voranstehend erläuterte Komprimierungsverfahren hat den Nachteil, dass die erzielbare Bitrate des TRNG geringer ist, als es entsprechend der verfügbaren Entropie möglich wäre. Das ist dadurch verursacht, dass mit der einfachen XOR-Komprimierung der bias durch hohe Komprimierung beseitigt wird, aber andererseits diese hohe Komprimierung Entropie vernichtet. Das wird in der Veröffentlichung von Markus Dichtl (Siemens AG): "Bad and Good Ways of Post-Processing Biased Physical Random Numbers", beschrieben: Siehe Biryukov, A. (ed.) FSE 2007, LNCS, vol. 4593, pp. 127–152, Springer, Heidelberg 2007. Es ist bisher üblich mehrere Ring-Oszillatoren einzusetzen, um die Entropie und damit die mögliche Bit-Rate des TRNG zu erhöhen.
  • Es können nunmehr an der gleichen Zufallsquelle, bspw. am gleichen Ring-Oszillator, zusätzliche Abtastelementen, wie bspw. Flip-Flops, eingesetzt werden.
  • Diese Abtastelemente können die gleichen oder andere Abtastpunkte des Ringoszillators benutzen. Die Abtastung kann mit der gleichen oder einer anderen Abtastfrequenz erfolgen. Da nur ein Ring-Oszillator benötigt wird, sind Hardware-Aufwand und Stromverbrauch geringer als beim Stand der Technik.
  • Zu beachten ist weiterhin, dass weitere Abtastungen eine kapazitive Belastung bedeuten und bei einem Ring-Oszillator dadurch sich eine geringere Frequenz ergeben kann. Dies kann durch eine geringere Anzahl an invertierenden Elementen kompensiert werden.
  • Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und den beiliegenden Zeichnungen.
  • Es versteht sich, dass die voranstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt eine Ausführung eines Ring-Oszillators.
  • 2 zeigt eine Anordnung zum Komprimieren einer Ausgabe eines Ring-Oszillators zusammen mit dem Ring-Oszillator aus 1.
  • 3 zeigt eine weitere Anordnung zum Komprimieren.
  • 4 zeigt eine Ausführung der Anordnung zur Durchführung des vorgestellten Verfahrens.
  • 5 zeigt eine weitere Ausführung der Anordnung zur Durchführung des vorgestellten Verfahrens.
  • 6 zeigt in stark vereinfachter Darstellung eine Ausführung einer Schaltungsanordnung.
  • Ausführungsformen der Erfindung
  • Die Erfindung ist anhand von Ausführungsformen in den Zeichnungen schematisch dargestellt und wird nachfolgend unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.
  • 1 zeigt eine Ausführung eines Ring-Oszillators als Zufallsquelle, der insgesamt mit der Bezugsziffer 10 bezeichnet ist. Der Ring-Oszillator 10 weist ein NAND-Glied 14 und acht Inverter 18 und somit neun invertierende Elemente auf. Damit verfügt der Ring-Oszillator 10 über eine ungerade Anzahl von invertierenden Elementen und drei Abgriffe bzw. Abtastpunkte.
  • Gestartet und gestoppt werden kann der Ring-Oszillator 10 mit einem ersten Eingang 20. Die Abtastrate wird über einen zweiten Eingang 28 vorgegeben. Weiterhin zeigt die Darstellung einen ersten Abtastpunkt 22, einen zweiten Abtastpunkt 24 und einen dritten Abtastpunkt 26. Dies bedeutet, dass beginnend von dem ersten Abtastpunkt 22 immer nach einer ungeradzahligen Anzahl von invertierenden Elementen eine Abtastung erfolgt. Dies ist für das vorgestellte Verfahren jedoch nicht unbedingt erforderlich.
  • Der erste Abtastpunkt 22 wird mit einem ersten Flipflop 30 abgetastet, es ergibt sich der Abtastwert s10. Der zweite Abtastpunkt 24 wird mit einem zweiten Flipflop 32 abgetastet, es ergibt sich der Abtastwert s11. Der dritte Abtastpunkt 26 wird mit einem dritten Flipflop 34 abgetastet, es ergibt sich der Abtastwert s12. Dem ersten Flipflop 30 ist ein weiteres viertes Flipflop 40 zugeordnet. Dies erfüllt eine Speicherfunktion und gibt den Wert s10’ aus, der dem Wert s10 zeitlich nachfolgt, d.h. s10 und s10’ sind zeitlich aufeinanderfolgende Abtastwerte des ersten Abtastpunkts 22. Entsprechend ist dem zweiten Flipflop 32 ein fünftes Flipflop 42, das s11’ ausgibt, und dem dritten Flipflop 34 ein sechstes Flipflop 44, das s12’ ausgibt, zugeordnet. Die Flipflops 40, 42 und 44 sind dazu geeignet, metastabile Zustände der Flipflops 30, 32 und 34 aufzulösen. Metastabile Zustände entstehen dadurch, dass ein Umschalten des Signals am Eingang 28 während einer Flanke am Abtastpunkt 22, 24 bzw. 26 erfolgt.
  • Die Flipflops 30, 32 und 34 benötigen dann eine bestimmte Zeit, bis ein stabiler Endzustand erreicht wird. Diese Zeit wird im vorliegenden Beispiel dadurch gewährleistet, dass erst bei der folgenden aktiven Flanke des Signals am Eingang 28 der inzwischen stabile Wert der Flipflops 30, 32 und 34 in die Flipflops 40, 42 und 44 übernommen wird. Die Flipflops 30, 32, 34, 40, 42 und 44 dienen als Speicherelemente.
  • Grundsätzlich kann somit der Ring-Oszillator 10 aus bspw. neun Invertern 18 aufgebaut sein. Dabei kann einer dieser Inverter 18 durch das NAND-Element 14 ersetzt werden, um den Ring-Oszillator 10 anhalten zu können. Alternativ kann dieses NAND-Element 14 auch durch ein NOR-Element ersetzt werden.
  • Die Werte des Ring-Oszillators 10 werden bei der gezeigten Ausführung an drei verschiedenen Invertern zeitgleich in je einem Flipflop (FF) 30, 32, 34 gespeichert. Diese Abgriffe sollen möglichst gleich über die Elemente des Ring-Oszillators 10 verteilt sein. Deshalb wird für den Fall von neun Invertierungsstufen im Ring-Oszillator 10 nach jeweils drei invertierenden Elementen ein Abgriff bzw. ein Abtastpunkt 22, 24, 26 vorgesehen. Wie bereits erwähnt, ist dies jedoch für das vorgestellte Verfahren nicht erforderlich. Es ist auch möglich, nach einer geraden Anzahl von invertierenden Elementen wieder einen Abgriff vorzusehen.
  • Die Anzahl der Inverterstufen in dem Ring-Oszillator 10 bestimmt die Frequenz des Oszillators und sollte deshalb so gewählt werden, dass die Flipflops den jeweiligen Signalwert speichern können. Wenn man eine möglichst hohe Oszillator-Frequenz verwendet, ist die Wahrscheinlichkeit, bei der Abtastung in der Nähe einer Flanke zu sein, höher. Deshalb wählt man eine möglichst geringe Anzahl von Invertern im Oszillator-Ring, jedoch so viel, dass·die Flipflops für die erzielte Frequenz arbeitsfähig sind. Für eine 180 nm Technologie wurde simulativ eine Frequenz von ca. 1 GHz für den Ring-Oszillator 102 mit neun Invertern 18 bestimmt. Die Flipflos können die Signalwerte bei dieser Frequenz speichern, wie nachgewiesen wurde.
  • Das vorgestellte Verfahren kann mit dem Ring-Oszillator 10 entsprechend 1 durchgeführt werden, der eine ungerade Anzahl an invertierenden Elementen aufweist, wobei an mindestens einem Abtastpunkt des Ring-Oszillators 10 Werte abgegriffen werden.
  • Für den Ring-Oszillator 10 kann eine Korrelation zu dem Systemtakt und damit zu dem daraus gewonnenen Abtasttakt festgestellt werden. Dazu vergleicht man, ob die drei Bitwerte am Ausgang der Flipflops 30, 32 und 34 identisch sind mit denen am Ausgang der Flipflops 40, 42 und 44. Nicht alle Korrelationen sind dabei durch den Vergleich von s10, s11, s12 mit s10', s11', s12' feststellbar, auch wenn der Teiler-Wert des Frequenzteilers durch die Anzahl der invertierenden Elemente im Oszillator-Ring teilbar ist. Es kann dabei vorkommen, dass jeweils nach einer beliebigen, ggf. konstanten Anzahl von Abtastungen immer wieder an der gleichen Position im Oszillator-Zyklus abgetastet wird. Ist diese Anzahl nicht gleichzeitig ein Teiler der Anzahl invertierender Elemente im Oszillator, bekommt man durch den vorstehend beschriebenen Vergleich keinen Hinweis auf die vorliegende Korrelation. Es ist dann trotzdem möglich, die Korrelation festzustellen, wenn man alle Abtastungen mit der aktuellen Abtastung vergleicht. Dies ist jedoch ist sehr aufwendig.
  • Für den Ring-Oszillator gemäß 1 mit bspw. 9 Invertern und 3 Abtastpunkten wechseln die an den Abtastpunkten gespeicherten Bitwerte in der Regel nach einer nicht zu hohen Anzahl von Abtastungen zumindest einen Bitwert. Eine hohe Anzahl von aufeinanderfolgenden gleichen Bitwerten wird durch die Zählung von Warnungen erkannt und entweder ein Fehler signalisiert oder ein Einfluss auf die Frequenz des Oszillators vorgenommen.
  • Für den Ring-Oszillator gemäß 1 sind somit neun Inverter und drei Abtastpunkte vorgesehen. In einem ersten Flipflop, das jeweils an einem Abtastpunkt des Oszillators angeschlossen ist, werden die Zustände des Oszillators zum Abtastpunkt abgespeichert. Die zweite Reihe von nachfolgenden Flipflops ist dazu geeignet, metastabile Zustände in den jeweils ersten Flipflops auszugleichen. Solche metastabile Zustände können dadurch entstehen, dass der Abtasttakt gerade während eines Zustandsübergangs des Oszillators aktiv wird. Durch das erneute Abspeichern des Zustands in dem jeweils zweiten Flipflop wird gewährleistet, dass der Zustand des ersten Flipflops über eine Periode des Abtasttaktes einschwingen kann, bevor dieser stabile Wert in das zweite Flipflop übernommen wird. Wenn diese Struktur ausbalanciert realisiert wird, dann kann ein gewünschtes Verhalten erreicht werden. Das Ausbalancieren erfordert jedoch, dass Spezialgatter, nämlich Inverter und Flipflops, benutzt werden, die eine hinreichend gleiche Treiberstärke für die low-high und die high-low Flanke auch für die internen Knoten der Flipflops besitzen. Darüber hinaus muss das Layout so aufgebaut werden, dass für alle Abgriffe des Ring-Oszillators und deren ansteuernde Knoten gleiche Lastkapazitäten vorliegen. Bei einer ausbalancierten Schaltung nach 1 treten bspw. die Bitbelegungen 000 und 111 nicht auf.
  • In einem vorliegenden Testchip wurden Gatter einer digitalen Standard-Bibliothek benutzt. Der Ring-Oszillator kann zusätzlich noch einen Abgriff haben, an dem zum Zwecke der Frequenzmessung ein Verstärker angeschlossen ist. Bei Messungen an diesem Testchip konnte festgestellt werden, dass die prognostizierte Verteilung der Ausgangsbits nicht zutrifft. Es treten sowohl die Werte 000 als auch 111 auf. Zusätzlich wurde festgestellt, dass die Verteilung der restlichen sechs Zustände nicht gleichmäßig verteilt auftritt, auch wenn man die Abtastfrequenzen variiert. Insbesondere wurde festgestellt, dass in dem betrachteten Testchip die Anzahl der Abtastungen mit den Dezimalwerten der drei Abtastbits 3, 5 und 6 deutlich höher ist als die von 1, 2 und 4.
  • Es wurde erkannt, dass, wenn man eine Nachbehandlung vornimmt, bei der die drei Ausgangsbits miteinander XOR-verknüpft werden, als Ergebnis die 0 viel häufiger auftritt als die 1. Eine solche Schieflage der 0-1-Verteilung (bias) sollte eigentlich vermieden werden oder zumindest durch eine geeignete Nachbearbeitung korrigiert werden. Die dabei erhaltene Folge von Zufallsbits wird auch als interne Zufallsfolge bezeichnet die eine Gleichverteilung von 0 und 1 aufweisen sollten, siehe: Killmann, W., Schindler, W.: AIS 31, Version 1, BSI vom 25. September 2001. Falls eine solche Verteilung der internen Zufallsfolgen nicht möglich ist, wird auch eine komplexe Struktur als Nachbearbeitung bzw. Post Processing zugelassen, die Zufallszahlen aus den internen Zufallsfolgen generiert. Da durch solche Strukturen möglicherweise eine Verzerrung vorgenommen wird, die das wahre, nämlich unzureichende Verhalten nur kaschiert, wird eine besondere Testbarkeit auch nach der Nachbearbeitung gefordert, wenn der Test der internen Zufallsfolgen nicht erfolgreich war. Dieser dafür erforderliche Zertifizierungsmode wird bspw. in der Druckschrift DE 60 2004 011 081 T2 beschrieben. Wenn ein solcher Test bestanden wird, dann ist die Nachbehandlungsstruktur damit als geeignet angesehen und die Tests bezüglich der Gleichverteilung von 0 und 1 können auch an den Ausgangsdaten dieser komplexen Nachbearbeitungsstruktur gezeigt werden.
  • Mit dem beschriebenen Verfahren wird erreicht, eine solche Struktur und insbesondere den Zertifizierungsmode einzusparen. Dies ist möglich, wenn die Komprimierung so vorgenommen wird, dass die internen Zustände der Nachbearbeitungsschaltung nach jeder Ausgabe eines Zufallsbits zurückgesetzt werden. Dazu wird bspw. eine einfache Komprimierung schon bitweise vorgenommen, bevor die einzelnen Bits weiterverarbeitet werden. In der Schaltung von 2 wird eine Komprimierung mit jeweils einem seriellen XOR vorgeschlagen, bevor der Wert im zweiten Flipflop gespeichert wird. Die Speicherelemente 40, 42 und 44 von 2 werden nach jeder Ausgabe an die Ausgabeeinheit 49 zurückgesetzt. Die dadurch erreichte "zustandslose" Komprimierung spart einen zusätzlichen Zertifizierungsmode ein.
  • 2 zeigt eine Anordnung 47 mit dem Ring-Oszillator 10 aus 1, wobei ein erstes 50, ein zweites XOR-Glied 52 und ein drittes XOR-Glied 54 vorgesehen sind. Mit diesen wird eine bitweise Komprimierung vorgenommen. Die komprimierten Werte stehen in den zweiten Flipflops 40, 42 und 44 nach Abschluss der Komprimierung zur Verfügung. Deren Ausgänge sind mit s10'', s11'' und s12'' (s1i'') bezeichnet. Diese Werte werden in der Ausgabeeinheit 49 gespeichert und können dort auch bezüglich ihrer Verteilung geprüft werden. Die XOR-Glieder 50, 52 und 54 zusammen mit den Flipflops 40, 42, 44 stellen eine Verarbeitungseinheit 45 zum Komprimieren dar. Die Flipflops 30, 32 und 34 dienen als Speicherelemente, deren Ausgänge s10, s11 und s12 nachbehandelt werden und stellen eine Abtasteinheit 51 dar.
  • Nachdem die Abtastwerte des Ring-Oszillators 10 in je einem der ersten Flipflops 30, 32 bzw. 34 gespeichert werden, wird jedes einzelne Bit s1i in einer zweiten Stufe mit dem Ausgang eines der zweiten Flipflops 40, 42 bzw. 44 XOR-verknüpft. Dadurch erreicht man eine Komprimierung, indem man bspw. n mal den Wert von s1i in den Wert von s1i" einfließen lässt.
  • Das zweite Flipflop 40, 42 bzw. 44 erfüllt dabei gleichzeitig noch die Aufgabe, dass metastabile Zustände im ersten Flipflop 30, 32 bzw. 34 berücksichtigt werden, indem eine ganze Abtastperiode zum Einschwingen dieses labilen Zustandes zur Verfügung steht. Der Komprimierungsgrad n sollte so groß gewählt werden, dass die vorgeschriebene 0-1-Verteilung für jedes einzelne Bit erreicht wird. In der Folge können die drei Zufallsbits zu einem einzigen Zufallsbit zusammengefasst werden. Dazu können die drei Bits miteinander antivalent verknüpft werden, d.h. mittels XOR, oder auch parallel in eine Nachbearbeitungsstruktur einfließen. Diese Nachbehandlungsstruktur kann auch ein PRNG sein, der aus den Zufallszahlen pseudozufällige Zahlenfolgen erzeugt. Wenn die ursprüngliche Zufallszahl (üblicherweise als seed bezeichnet) nicht bekannt ist, ist auch der Ausgang des PRNG nicht vorhersagbar. Dabei ist es vorteilhaft, wenn der Komprimierungsfaktor n möglichst ungerade ist. Dadurch geben n aufeinanderfolgende Nullen einen anderen Bitwert (0) als n aufeinanderfolgende Einsen (1). Weiterhin könnte zweckmäßig sein, wenn n eine Primzahl ist, weil die Komprimierung sich dann nicht aus einer Summe von mehreren Komprimierungen zusammensetzen kann.
  • Die bitweise serielle XOR-Verknüpfung erfüllt einmal den Zweck der Beseitigung von ungleichen 0-1-Verteilungen und zum anderen wird die Entropie (der Zufallswert) durch die Komprimierung angereichert.
  • Die verbesserte Verteilung von 0 und 1 wird durch die Höhe des Komprimierungsfaktors n bestimmt. Bei größerem n ergibt sich in der Regel eine bessere Gleichverteilung.
  • Dabei ist gleichzeitig zu beachten, wieviel Entropie die Abtastwerte enthalten. Dabei spielt eine Rolle, wieviel Jitter zum Zeitpunkt des Abtastens vorliegt. Mit
    Figure DE102014200164A1_0002
    kann man den Jitter berechnen. Dabei ist für Kurzkanaltransistoren
    Figure DE102014200164A1_0003
    und sind weiterhin
  • kB:
    Boltzmannkonstante (1.38·10–23 J/K)
    η:
    Technologiekonstante der verwendeten Schaltelemente (typischerweise ≈ 1)
    VDD:
    Betriebsspannung des Oszillators (z.B. 1,8 V)
    T:
    Temperatur (z. B. 298 K)
    P:
    Leistungsverbrauch des Oszillators
    VT:
    Schwellspannung der Transistoren im Oszillator
    ΔT:
    Zeitspanne zwischen zwei Abtastungen
    σΔT:
    Standardabweichung des Jitters
  • Zur Berechnung der Entropie geht man davon aus, dass in einem Bereich von ± 1.299 σΔT um eine Oszillatorflanke der Entropie-Wert 0,5 ist und außerhalb dieses Bereichs der Wert 0 angenommen wird. Wird nunmehr angenommen, dass die Abtastungen gleichmäßig über die Oszillatorperiode verteilt sind, wenn die Oszillatorfrequenz und die Abtastfrequenz nicht miteinander oszillieren, so erhält man entsprechend dem Anteil des Bereichs von ± 1.299 σΔT und der entsprechenden Anzahl der zu berücksichtigenden Flanken im Verhältnis zur Oszillatorperiode einen Entropie-Wert. Dieser Entropie-Wert wird bei einer Verdopplung der Abtastperiode den √2 = 1,414 fachen Wert annehmen, weil der Jitter sich auf den 1,414 fachen Wert nach obiger Gleichung erhöht. Im gleichen Zeitraum hat man jedoch nur einen Abtastwert, während man vor der Verdopplung der Abtastperiode zwei Abtastwerte hatte.
  • Ist die Entropie bei einfacher Abtastperiode gleich x, so wird sie bei zwei Abtastungen 2·x. Bei der Verdopplung der Abtastperiode erhält man aber nur einen Wert von 1,414·x für die Entropie im gleichen Zeitraum.
  • Es ist deshalb günstiger, die Abtastperiode nicht zu lang zu wählen und dafür mehr Abtastwerte zu komprimieren, d. h. ein möglichst hohes n. Andererseits kann es aber auch ungünstig sein, zu viele Abtastwerte mit dem seriellen XOR nach 2 zu komprimieren, weil sich Entropie-Werte dann gegenseitig kompensieren können. Zu beachten ist, dass eine gerade Anzahl von Entropie-Werten "1" sich bei der XOR-Komprimierung gegenseitig aufhebt. Experimentelle Untersuchungen haben gezeigt, dass ein Kompromiss für die Abtastwerte mit n zwischen einigen 10 und einigen 100 bis zu wenigen 1000 liegen kann. Die Abtastfrequenzen lagen in diesem Fall zwischen 300 kHz und 12,5 MHz bei einer Oszillatorfrequenz von nahe 1 GHz. Die so gewonnenen internen Zufallsfolgen passierten schon die allgemein anerkannten üblichen statistischen Tests, ohne eine zusätzliche Nachbearbeitung zu benutzen.
  • Es kann deshalb beansprucht werden, dass ein Ring-Oszillator aus digitalen Standardelementen aufgebaut wird, nämlich Inverter oder invertierende Elemente und ein NAND oder NOR zum Anhalten des Oszillators. Weiterhin kann beansprucht werden, dass der digitale Standard Design Flow für das Design des Ring-Oszillators und die Abtast-Flipflops benutzt werden kann, weil kein manueller Eingriff ins Layout notwendig ist. Im vorliegenden Testchip waren sowohl die digitalen Elemente in ihrer Treiberwirkung bezüglich der Flanken sehr unsymmetrisch als auch die kapazitive Belastung des Ring-Oszillators durch den Anschluss eines Verstärkers zur Frequenzmessung sehr unterschiedlich verteilt. Das alles hatte nach der XOR-Komprimierung bei geeigneten Parametern keinen nachteiligen Einfluss mehr auf die statistischen Tests. Die Bedingungen der Tests sind ohne zusätzliche komplexe Strukturen zum Nachbehandeln erfüllbar. Dazu können die drei komprimierten Signale miteinander durch ein XOR (Antivalenz) oder eine andere lineare Funktion, z. B. Äquivalenz, verknüpft werden und dieses Ausgangssignal weiterverarbeitet werden.
  • In einer weiteren Ausführung können die Ausgangsbits der drei Abtast-Flipflops auch schon vor der XOR-Komprimierung miteinander linear verknüpft werden, zum Beispiel durch XORs (Antivalenz) oder auch Äquivalenzoperatoren (XNOR).
  • Es ist weiterhin eine Einrichtung 49 zur Ausgabe und zum Prüfen der komprimierten Signalwerte hinsichtlich ihrer Verteilung vorgesehen. In dieser Einrichtung 49 kann bspw. auch die vorstehend erwähnte XOR-Verknüpfung der drei komprimierten Bits erfolgen, wobei jeweils ein Ausgangsbit des Zufallsgenerators erzeugt wird.
  • 3 zeigt einen Zufallsgenerator 57 als mögliche Ausgestaltung der vorgestellten Anordnung mit dem Ring-Oszillator 10 und mit einem ersten XOR-Glied 60 mit Ausgabe s01, einem zweiten XOR-Glied 62 mit Ausgabe s012 und einem dritten XOR-Glied 64. Weiterhin ist ein zweites Flipflop 70 vorgesehen, das s012'' ausgibt. Die XOR-Glieder 60, 62 bilden eine Verknüpfungseinheit 56 zum Verknüpfen der drei Ausgangssignale zu einem kombinierten, nicht komprimierten Ausgangssignal. Das XOR-Glied 64 und das Flipflop 70 bilden eine Verarbeitungseinheit 55 zum Komprimieren. Die Anzahl der Bits ni, die aus dem XOR-Glied 62 herauskommen und zu einem Zufallsbit verarbeitet werden, stimmt mit dem Komprimierungsfaktor ni überein. Weiterhin ist eine Einrichtung 59 zum Prüfen einer Verteilung zur Speicherung und zur Ausgabe der gespeicherten Zufallsbits dargestellt.
  • Der Vorteil dieser Ausführung besteht darin, dass man dann nur noch ein Signal mittels XOR seriell komprimieren muss. Zu beachten ist jedoch, dass man die Eigenschaften der Schaltung nicht mehr so gut beurteilen kann, als wenn man die drei komprimierten Signale vorliegen hat. Bedingt durch die Linearität der XOR-Operationen sind die Ausgangssignale von 2 und 3 gleich, wenn man die drei Ausgangssignale von 2 s10'', s11'' und s12'' mit XOR zu einem Signal s012'' verknüpft: s012" = s10" ⊕ s11" ⊕ s12"
  • Mit s10" = s10(0) ⊕ s10(1) ⊕ s10(2) ... ⊕ s10(n-1) s11" = s11(0) ⊕ s11(1) ⊕ s11(2) ... ⊕ s11(n-1) s12" = s12(0) ⊕ s12(1) ⊕ s12(2) ... ⊕ s12(n-1) wird aus der vorstehenden Gleichung s012" = s10(0) ⊕ s10(1) ... ⊕ s10(n-1) ⊕ s11(0) ⊕ s11(1) ... ⊕ s11(n-1) ⊕ s12(0) ⊕ s12(1) ... ⊕ s12(n-1). und nach 3: s012 = s10 ⊕ s11 ⊕ s12 und s012" = s012(0) ⊕ s012(1) ⊕ s012(2) ... ⊕ s012(n-1) wird aus vorstehender Gleichung s012" = s10(0) ⊕ s11(0) ⊕ s12(0) ⊕ s10(1) ⊕ s11(1) ⊕ s12(1) ... ⊕ s10(n-1) ⊕ s11(n-1) ⊕ s12(n-1).
  • Aufgrund des kommutativen Gesetzes der Antivalenz, wonach die Vertauschung der Operanden beliebig möglich ist, sind beide Gleichungen für s012" identisch.
  • Ein TRNG ist als IP (IP: intellectual property) mit dem vorgestellten Verfahren realisierbar. Als IP wird ein Produkt bezeichnet, das eine Schaltungsbeschreibung zusammen mit Tests so vorsieht, dass ein Kunde dieses Produkts in der Lage ist, die Schaltung auf einem Chip mit seiner eigenen Technologie zu realisieren. Wegen des äußerst geringen schaltungstechnischen Aufwandes, nämlich ca. 200 Gatter-Äquivalente, ist es praktisch überall einsetzbar, wo Zufall eine Rolle spielt.
  • Die Erfindung kann zudem in Sensor-Auswertungen zum Manipulationsschutz oder in Security-Anwendungen bei Verbindungen mit dem Internet solche TRNGs eingesetzt werden.
  • Es wird weiterhin eine Schaltungsanordnung mit mindestens einem Ring-Oszillator vorgestellt, der eine ringförmige Zusammenschaltung einer ungeradzahligen Anzahl von invertierenden Elementen umfasst, wobei dieser Ring-Oszillator an einer oder mehreren Abtastpunkten bzw. Positionen abgetastet wird, die abgetasteten Werte in Speicherelementen mit einem Abtasttakt gleichzeitig gespeichert werden, wobei die Ausgänge der Speicherelemente mit einem Eingang eines linearen Verknüpfungselementes verbunden sind.
  • Darüber hinaus wird eine Schaltungsanordnung mit einer Zufallsquelle vorgestellt mit mindestens einem digitalen Ausgangssignal mit einer Bitbreite von mindestens einem Bit und einer Schaltung zur Komprimierung dieses Ausgangssignals, wobei die Schaltung eine blockweise XOR-Verknüpfung von n bits von jedem Bit des Ausgangssignals zu jeweils einem Bit eines komprimierten Ausgangssignal vornimmt und die dadurch gebildete Folge der komprimierten Signalwerte bezüglich ihrer Verteilung geprüft wird. Die blockweise XOR-Verknüpfung bedeutet, dass n aufeinanderfolgende Bits jeweils miteinander seriell XOR-verknüpft werden. Die Prüfung der Verteilung kann für jedes einzelne Ausgangsbit nach 2 oder für das kombinierte Ausgangsbit nach 3 bspw. so vorgenommen werden, dass die Anzahl der Nullen und Einsen in dieser Bitfolge gezählt werden und diese Zählwerte miteinander verglichen werden. Dieser Vergleich kann bspw. durch Differenzbildung der beiden Zählwerte erfolgen, wobei geprüft wird, ob die Differenz einen vorgegebenen Maximalwert übersteigt. Es kann auch der Vergleich mit festen Schranken vorgenommen werden.
  • Die Schaltungsanordnung kann sich dadurch auszeichnen, dass in Abhängigkeit von dem Ergebnis der Prüfung der Verteilung Einfluss auf den Komprimierungsfaktor n genommen wird.
  • Weiterhin kann die Zufallsquelle mindestens einen Ring-Oszillator, der aus einer ringförmigen Zusammenschaltung einer ungeradzahligen Anzahl von invertierenden Elementen besteht, enthalten, wobei dieser Ring-Oszillator an mindestens einer Position mit einem Takt abgetastet wird.
  • In Abhängigkeit von dem Ergebnis der Prüfung der Verteilung Einfluss auf die Frequenz des Abtasttaktes genommen wird.
  • Weiterhin kann in Abhängigkeit von dem Ergebnis der Prüfung der Verteilung Einfluss auf die Frequenz des Ring-Oszillators genommen werden, wie zum Beispiel durch die Anzahl von invertierenden Elementen im Ring-Oszillator oder durch Änderung der Betriebsbedingungen des Oszillators (Betriebsspannung, Temperatur).
  • Das Ausgangssignal der Zufallsquelle kann aus mehreren Bits bestehen und mindestens zwei dieser Bits durch eine lineare Verknüpfung zu einem Bit zusammengefasst werden, das entsprechend durch blockweise XOR-Verknüpfung von n Bits komprimiert wird und die komprimierte Bitfolge bezüglich ihrer Verteilung geprüft wird.
  • Das Ausgangssignal der Zufallsquelle kann aus mindestens k Bits bestehen, die nicht miteinander verknüpft werden und jedes dieser k Bits mit einer Schaltung zur Verarbeitung des Ausgangssignals versehen ist, die entsprechend komprimierten k Bits eine Belegung bilden mit 2k möglichen Werten und das Auftreten aller dieser 2k möglichen Werte in getrennten Zählern gezählt werden und die Häufigkeit aller dieser Belegungen gegenseitig verglichen werden.
  • Eine Prüfung der Verteilung kann z. B. durch Zählung des Auftretens vom Bitwert 0 und Bitwert 1 in separaten Zählern für m komprimierte Ausgangsbits und die Durchführung des Vergleichs durch Differenzbildung dieser Zählerwerte sowie dem Vergleich der Differenz, ob sie eine vorgegebene Schranke überschreitet.
  • In den Ausführungen der 1 bis 3 wird eine einfache Komprimierung mittels XOR vorgeschlagen, wobei der Komprimierungsgrad n so groß gewählt werden sollte, dass die vorgeschriebene 0-1-Verteilung für jedes einzelne Bit erreicht wird, wie dies 2 zu entnehmen ist. Nach einer XOR-Verknüpfung der komprimierten 3 Bits erhält man 1 Bit Zufallswert mit einer gleichmäßigen 0-1-Verteilung und maximaler Entropie. Typischerweise ist dabei in den unkomprimierten 3 Bits mehr Entropie enthalten, als sich in dem einem komprimierten Bit dann darstellen lässt. Es wird somit Entropie vernichtet. Wie in 3 gezeigt, kann man die drei Oszillator-Abtastbits, die sogenannten Rohdaten, auch schon miteinander XOR-verknüpfen, bevor die Komprimierung mit einem einzelnen XOR erfolgt.
  • Demgegenüber hat man aber bei der einzelnen Komprimierung der 3 Bits den Vorteil, dass man die Eigenschaften der Ergebnisbits besser beurteilen kann.
  • In den 4 und 5 sind nun Anordnungen gezeigt, die eine mehrfache Abtastung des Oszillators 10 zulassen.
  • 4 zeigt eine Anordnung zu Durchführung des vorgestellten Verfahrens, die insgesamt mit der Bezugsziffer 100 bezeichnet ist und mit dem Ring-Oszillator 10 aus 1 zusammenwirkt. Dabei baut die Anordnung 100 auf der Anordnung 47 aus 2 auf. Dabei ist zusätzlich eine zweite Abtasteinheit 151 vorgesehen mit ersten Flipflops 130, 132 und 134, und einer zweiten Verarbeitungseinheit 145 mit XOR-Gliedern 150, 152 und 154 sowie zweiten Flipflops 140, 142 und 144. Die erste Verarbeitungseinheit 45 und die zweite Verarbeitungseinheit 145 arbeiten parallel zueinander, so dass zwei komprimierte Ausgangssignale erzeugt werden, die mindestens eine Bitbreite von einem Bit haben.
  • Bei der Anordnung 100 in 4 werden die gleichen Abtastpunkte 22, 24 und 26 des Ring-Oszillators 10 von beiden Verarbeitungseinheiten 45 und 145 benutzt und die ersten Flipflops 30, 32, 34 bzw. 130, 132, 134, die auch als Abtast-Flipflops bezeichnet werden, mit unterschiedlichen Takten gesteuert. Die nachfolgenden XOR-Komprimierungsschaltungen können gleiche oder unterschiedliche Komprimierungsfaktoren besitzen. Die Komprimierung kann auch einfacher, wie in 3 gestaltet realisiert werden. Die komprimierten Bits s10", s11" und s12" können auf die 1-0 Verteilung geprüft und anschließend zu einem Ausgangsbit durch XOR-Verknüpfung zusammengefasst.
  • Ebenso wird mit den Bits s20", s21" und s22" verfahren. Diese Ausgangsbits werden entweder direkt als Zufallsbits verwendet oder weiter verarbeitet, getrennt oder zusammen. Auch wenn eine einzelne Komprimierung der drei Abtastbits nach 3 stattfindet, kann die 0-1 Verteilung geprüft werden. Werden unterschiedliche Abtastfrequenzen und/oder unterschiedliche Komprimierungsfaktoren verwendet, dann muss die Verteilung für jede Komprimierungseinheit separat geprüft werden. Gleiche Abtastfrequenz und gleiche Komprimierung ist nur für die Variante von 5 sinnvoll, oder wenn für die Schaltung von 4 die zwei Abtasttakte mit der gleichen Frequenz, aber gegeneinander phasenverschoben sind.
  • 5 zeigt eine Anordnung zu Durchführung des vorgestellten Verfahrens, die insgesamt mit der Bezugsziffer 200 bezeichnet ist und mit dem Ring-Oszillator 10 aus 1 zusammenwirkt. Dabei baut die Anordnung 200 auf der Komprimierungsanordnung 47 aus 2 auf. Dabei ist neben der ersten Verarbeitungseinheit 45 zusätzlich eine zweite Verarbeitungseinheit 245 vorgesehen mit ersten Flipflops 230, 232 und 234, XOR-Gliedern 250, 252 und 254 sowie zweiten Flipflops 240, 242 und 244.
  • Wenn die zwei Abtastfrequenzen gleich sind und dabei die Abtastung entweder an verschiedenen Abtastpunkten vorgenommen werden oder die Frequenzen zueinander phasenverschoben sind, braucht man nur die Ausgangssignale einer Komprimierungseinheit bezüglich der Verteilung zu prüfen. Es muss dann die Einheit mit dem geringeren Komprimierungsfaktor geprüft werden; wie experimentelle Untersuchungen gezeigt haben, ist die Zufälligkeit der Daten bei einem höheren Komprimierungsfaktor auch gegeben, wenn an die Prüfkriterien entsprechend hohe Anforderungen gestellt werden.
  • Die Prüfung der Verteilung erfolgt durch das Zählen der Belegungen der jeweiligen Ausgangsbits einer Komprimierungseinheit bei einer festgelegten Anzahl von Abtastungen und den Vergleich mit festen Werten oder gegeneinander durch Differenzbildung. Sind die Differenzen zu hoch oder werden die vorgegebenen Limits über bzw. unterschritten, so sollten die Daten nicht verwendet werden. Durch eine Änderung der Abtastfrequenz und/oder des Komprimierungsfaktors kann eine Verbesserung der Datenqualität erreicht werden.
  • Die Abtastung mit unterschiedlichen Abtastfrequenzen hat einen weiteren Vorteil, wenn die zwei Abtasttakte voneinander unabhängig sind. In diesem Fall ist eine Korrelation zwischen dem Oszillator-Kontakt und beiden Abtasttakten nicht möglich. Tritt eine Korrelation nur zu einem Abtasttakt auf, so liefert die Schaltung mit dem anderen Abtasttakt immer noch eine Gleichverteilung der Abtastungen über die Oszillatorperiode. Das ist eine notwendige Grundvoraussetzung zur Erzielung eines genügend hohen Maßes an Zufall, gemessen durch die Entropie. Es ist jedoch auch dann nicht genügend Zufall in beiden Verarbeitungseinheiten vorhanden, wenn durch Kopplungen des Oszillators mit einem Systemtakt der Jitter wegfällt oder zumindest sehr gering wird.
  • In 6 ist die allgemeine Struktur einer Schaltungsanordnung 300 gezeigt. Dabei bezeichnet Bezugsziffer 302 die Zufallsquelle, Bezugsziffern 304 und 306 Abtast-Einheiten. Verarbeitungseinheiten sind durch Bezugsziffern 308 und 310 bezeichnet. Die Verarbeitungseinheiten 308 und 310 können eine Komprimierung oder eine andere Verarbeitung vornehmen.
  • Zu beachten ist, dass bei der vorgestellten Schaltungsanordnung der erforderliche Schaltungsaufwand sehr gering ist und digitale Standard-Verfahren eingesetzt werden können. Wegen des äußerst geringen schaltungstechnischen Aufwandes, ca. 200 Gatter-Äquivalente, ist es nahezu überall einsetzbar, wo Zufall eine Rolle spielt, wie bspw. Car2x, Smart-Phone IPs für sichere Anwendungen, on-line Banking, Kommunikation von vertraulichen Daten, Schlüsselerzeugung, Seitenkanal-Robustheit usw.
  • Bezugnehmend auf 6 wird eine Schaltungsanordnung mit mindestens einer Zufallsquelle und mindestens zwei Abtast-Einheiten vorgestellt, die an diese eine Zufallsquelle angeschlossen sind und in denen Zufallswerte gespeichert werden, wobei die beiden Abtast-Einheiten mit jeweils verschiedenen Komprimierungsanordnungen bzw. Verarbeitungseinheiten verbunden sind und diese Verarbeitungseinheiten jeweils verschiedene Ausgangssignale bereitstellen und mindestens eines dieser Ausgangssignale auf Eigenschaften geprüft wird.
  • Als Zufallsquelle kann ein Ringoszillator dienen. Die beiden Abtast-Einheiten greifen dann an gleichen oder verschiedenen Abtastpunkten den Ringoszillator ab.
  • Weiterhin können die beiden Abtast-Einheiten mit jeweils einem Takt der gleichen Frequenz die Zufallswerte an der Zufallsquelle abtasten, wobei zwischen diesen zwei Takten eine Phasenverschiebung bestehen kann. Außerdem können die beiden Abtast-Einheiten mit jeweils einem Takt verschiedener Frequenz die Zufallswerte an der Zufallsquelle abtasten.
  • Die Verarbeitungseinheiten kann eine Komprimierung mit gleichen oder unterschiedlichen Komprimierungsfaktoren vornehmen. Außerdem kann das mindestens eine Ausgangssignal dadurch geprüft werden, dass die Häufigkeit der möglichen Belegungen des Ausgangssignals gezählt wird und mit vorgegebenen Grenzen verglichen wird.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • EP 1686458 B1 [0011]
    • DE 602004011081 T2 [0016, 0020, 0054]
  • Zitierte Nicht-Patentliteratur
    • Bock, H., Bucci, M., Luzzi, R.: An Offset-compensated Oscillator-based Random Bit Source for Security Applications, CHES 2005 [0010]
    • "Design of Testable Random Bit Generators" von Bucci, M. und Luzzi, R., CHES 2005 [0012]
    • Sunar, B. et al: Approvable Secure True Random Number Generator with Built In Tolerance Attacks, IEEE Trans. On Computers, 1/2007 [0013]
    • Markus Dichtl (Siemens AG): "Bad and Good Ways of Post-Processing Biased Physical Random Numbers", beschrieben: Siehe Biryukov, A. (ed.) FSE 2007, LNCS, vol. 4593, pp. 127–152, Springer, Heidelberg 2007 [0029]
    • Killmann, W., Schindler, W.: AIS 31, Version 1, BSI vom 25. September 2001 [0054]

Claims (12)

  1. Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle (302) eines Zufallsgenerators (57), welche mindestens zwei Ausgangssignale mit einer Bitbreite von mindestens einem Bit ausgibt, wobei die Zufallsquelle (302) mit mindestens zwei Abtasteinheiten (51, 151, 304, 306) abgetastet wird, so dass jeweils ein Ausgangssignal erzeugt wird, und die Ausgangssignale jeder Abtasteinheit (51, 151, 304, 306) jeweils durch eine Verarbeitungseinheit (45, 55, 145, 245, 308, 310) verarbeitet werden.
  2. Verfahren nach Anspruch 1, bei dem in jeder Verarbeitungseinheit (45, 55, 145, 245, 308, 310) eine Komprimierung durchgeführt wird, wobei im Rahmen der Komprimierung eine blockweise lineare Verknüpfung von n aufeinanderfolgenden Bits des Ausgangssignals vorgenommen wird, wobei n ein Komprimierungsfaktor ist, wodurch jeweils ein komprimiertes Ausgangssignal erzeugt wird, das eine Folge komprimierter Signalwerte umfasst.
  3. Verfahren nach Anspruch 1 oder 2, bei dem jede Abtasteinheit (51, 151, 304, 306) an Abtastpunkten (22, 24, 26) abtastet, die sich von Abtastpunkten (22, 24, 26) der anderen Abtasteinheiten (51, 151, 304, 306) unterscheiden.
  4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem die Abtasteinheiten (51, 151, 304, 306) an gleichen Abtastpunkten (22, 24, 26) mit unterschiedlichen Abtasttakten abtasten.
  5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem die Folge der komprimierten Signalwerte mindestens einer Verarbeitungseinheit (45, 55, 145, 245, 308, 310) hinsichtlich ihrer Verteilung überprüft wird.
  6. Verfahren nach einem der Ansprüche 1 bis 5, bei dem als Zufallsquelle (302) ein Ring-Oszillator (10) verwendet wird, der eine ringförmige Zusammenschaltung einer ungeraden Anzahl von invertierenden Elementen umfasst, wobei dieser Ring-Oszillator (10) an mindestens einem Abtastpunkt (22, 24, 26) mit einem Abtasttakt abgetastet wird.
  7. Anordnung zum Erzeugen einer Ausgabe einer Zufallsquelle (302) eines Zufallsgenerators (57), welche mindestens zwei komprimierte Ausgangssignale mit einer Bitbreite von mindestens einem Bit ausgibt, wobei die Zufallsquelle (302) mit mindestens zwei Abtasteinheiten (51, 151, 304, 306) abzutasten ist, so dass jeweils ein Ausgangssignal erzeugt wird, die Ausgangssignale jeder Abtasteinheit (51, 151, 304, 306) jeweils durch eine Verarbeitungseinheit (45, 55, 145, 245, 308, 310) zu verarbeiten ist.
  8. Anordnung nach Anspruch 7, bei der in jeder Verarbeitungseinheit (45, 55, 145, 245, 308, 310) eine Komprimierung durchgeführt wird, wobei im Rahmen der Komprimierung eine blockweise lineare Verknüpfung von n aufeinanderfolgenden Bits des Ausgangssignals vorgenommen wird, wobei n ein Komprimierungsfaktor ist, wodurch jeweils ein komprimiertes Ausgangssignal erzeugt wird, das eine Folge komprimierter Signalwerte umfasst.
  9. Anordnung nach Anspruch 7 oder 8, die eine Einrichtung (49, 59) aufweist, die dazu eingerichtet ist, die Folge der komprimierten Signalwerte hinsichtlich ihrer Verteilung zu überprüfen.
  10. Anordnung nach einem der Ansprüche 7 bis 9, bei der ein Ring-Oszillator (10) als Zufallsquelle (302) dient.
  11. Anordnung nach einem der Ansprüche 7 bis 10, bei der die Abtasteinheiten (51, 151, 304, 306) dazu eingerichtet sind, an gleichen Abtastpunkten (22, 24, 26) abzutasten.
  12. Anordnung nach einem der Ansprüche 7 bis 10, bei der die Abtasteinheiten (51, 151, 304, 306) dazu eingerichtet sind, an unterschiedlichen Abtastpunkten (22, 24, 26) abzutasten.
DE102014200164.1A 2014-01-09 2014-01-09 Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators Withdrawn DE102014200164A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102014200164.1A DE102014200164A1 (de) 2014-01-09 2014-01-09 Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
US14/589,345 US20150193205A1 (en) 2014-01-09 2015-01-05 Method for generating an output of a random source of a random generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014200164.1A DE102014200164A1 (de) 2014-01-09 2014-01-09 Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators

Publications (1)

Publication Number Publication Date
DE102014200164A1 true DE102014200164A1 (de) 2015-07-09

Family

ID=53443314

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014200164.1A Withdrawn DE102014200164A1 (de) 2014-01-09 2014-01-09 Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators

Country Status (2)

Country Link
US (1) US20150193205A1 (de)
DE (1) DE102014200164A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020206723A1 (de) 2020-05-28 2021-12-02 Andreas Schubert Zufallszahlengenerator

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10140096B1 (en) * 2016-12-14 2018-11-27 Amazon Technologies, Inc. Preventing ring oscillator phase-lock
US11323548B2 (en) 2019-01-20 2022-05-03 Arilou Information Security Technologies Ltd. System and method for data compression based on data position in frames structure

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1686458B1 (de) 2005-01-28 2008-07-23 Infineon Technologies AG Oszillator-basierter Zufallszahlengenerator
DE602004011081T2 (de) 2004-11-30 2009-01-02 Infineon Technologies Ag Zufallszahlengenerator und Methode zum Testen des Generators

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE470242B (sv) * 1992-05-12 1993-12-13 Ericsson Telefon Ab L M Anordning för generering av slumptal
US5963104A (en) * 1996-04-15 1999-10-05 Vlsi Technology, Inc. Standard cell ring oscillator of a non-deterministic randomizer circuit
FR2793088B1 (fr) * 1999-04-30 2001-06-22 St Microelectronics Sa Procede et dispositif de collecte des valeurs logiques de sortie d'une unite logique dans un circuit electronique
US8805905B2 (en) * 2007-09-18 2014-08-12 Seagate Technology Llc On-line randomness test for restart random number generators

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602004011081T2 (de) 2004-11-30 2009-01-02 Infineon Technologies Ag Zufallszahlengenerator und Methode zum Testen des Generators
EP1686458B1 (de) 2005-01-28 2008-07-23 Infineon Technologies AG Oszillator-basierter Zufallszahlengenerator

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Design of Testable Random Bit Generators" von Bucci, M. und Luzzi, R., CHES 2005
Bock, H., Bucci, M., Luzzi, R.: An Offset-compensated Oscillator-based Random Bit Source for Security Applications, CHES 2005
Killmann, W., Schindler, W.: AIS 31, Version 1, BSI vom 25. September 2001
Markus Dichtl (Siemens AG): "Bad and Good Ways of Post-Processing Biased Physical Random Numbers", beschrieben: Siehe Biryukov, A. (ed.) FSE 2007, LNCS, vol. 4593, pp. 127-152, Springer, Heidelberg 2007
Sunar, B. et al: Approvable Secure True Random Number Generator with Built In Tolerance Attacks, IEEE Trans. On Computers, 1/2007

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020206723A1 (de) 2020-05-28 2021-12-02 Andreas Schubert Zufallszahlengenerator

Also Published As

Publication number Publication date
US20150193205A1 (en) 2015-07-09

Similar Documents

Publication Publication Date Title
EP1643643B1 (de) Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen
DE102008047163B4 (de) Bestimmen eines Zeitintervalls auf der Grundlage eines ersten Signals, eines zweiten Signals und eines Jitters des ersten Signals
WO2013004489A1 (de) Verfahren zum prüfen eines m aus n codes
DE102014200163A1 (de) Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
EP2329356A1 (de) Vorrichtung und verfahren zum erzeugen einer zufallsbitfolge
DE102018212833A1 (de) Vorrichtung und verfahren zur erzeugung physikalisch unklonbarer funktionen
DE102010029735A1 (de) Verfahren zum Generieren eines Bitvektors
DE102012210990A1 (de) Verfahren zum Erzeugen von Zufallszahlen
DE102013204274A1 (de) Verfahren zum Erkennen einer Korrelation
DE102014200309A1 (de) Verfahren zum Überprüfen einer Ausgabe
DE102014200164A1 (de) Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
DE102015102363A1 (de) Anordnung und verfahren zum überprüfen der entropie einer zufallszahlenfolge
DE102011078643A1 (de) Verfahren zum Erzeugen einer zufälligen Ausgangsbitfolge
DE102012210361A1 (de) Verfahren zum Überwachen einer Ausgabe eines Zufallsgenerators
DE102010026688A1 (de) Vorrichtung und Verfahren zum Erzeugen von Zufallsbits
DE102013213396A1 (de) Verfahren zum Nachbehandeln einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
DE102011078645A1 (de) Verfahren zum sicheren Prüfen eines Codes
DE102013205168A1 (de) Verfahren zum Erzeugen einer zufälligen Ausgangsbitfolge
DE102013213382A1 (de) Verfahren zum Prüfen einer Ausgabe eines Zufallsgenerators
DE102013213392A1 (de) Verfahren zur Beurteilung einer Ausgabe eines Zufallsgenerators
DE102013213385A1 (de) Verfahren zur Beurteilung einer Ausgabe eines Zufallsgenerators
DE102013204272A1 (de) Verfahren zum Erkennen einer Korrelation
DE102014224421A1 (de) Verfahren und Vorrichtung zum Erzeugen von Zufallsbits
EP3413188B1 (de) Verfahren zur optimalen anordnung eines zufallszahlengenerators
DE102013002088B4 (de) System und Verfahren für einen signaturbasierten Redundanzvergleich

Legal Events

Date Code Title Description
R005 Application deemed withdrawn due to failure to request examination