DE102013213396A1 - Verfahren zum Nachbehandeln einer Ausgabe einer Zufallsquelle eines Zufallsgenerators - Google Patents

Verfahren zum Nachbehandeln einer Ausgabe einer Zufallsquelle eines Zufallsgenerators Download PDF

Info

Publication number
DE102013213396A1
DE102013213396A1 DE102013213396.0A DE102013213396A DE102013213396A1 DE 102013213396 A1 DE102013213396 A1 DE 102013213396A1 DE 102013213396 A DE102013213396 A DE 102013213396A DE 102013213396 A1 DE102013213396 A1 DE 102013213396A1
Authority
DE
Germany
Prior art keywords
compressed
random
output signal
bits
ring oscillator
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
DE102013213396.0A
Other languages
English (en)
Inventor
Eberhard Boehl
Matthew Lewis
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 DE102013213396.0A priority Critical patent/DE102013213396A1/de
Priority to US14/324,668 priority patent/US9720650B2/en
Publication of DE102013213396A1 publication Critical patent/DE102013213396A1/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
    • H03M5/145Conversion to or from block codes or representations thereof
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6011Encoder aspects

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)
  • Semiconductor Integrated Circuits (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)

Abstract

Es werden ein Verfahren und eine Anordnung zum Nachbehandeln einer Ausgabe einer Zufallsquelle eines Zufallsgenerators vorgestellt. Bei dem Verfahren wird ein Ausgangssignal der Zufallsquelle komprimiert, woraus sich eine Folge komprimierter Signalwerte ergibt, die hinsichtlich ihrer Verteilung überprüft werden.

Description

  • Die Erfindung betrifft ein Verfahren zum Nachbehandeln einer Ausgabe einer Zufallsquelle eines Zufallsgenerators und eine Anordnung zum Durchführen 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 feed-back 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: Aproveable 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 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.
  • 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 11 vorgestellt. Weitere Ausführungen ergeben sich aus den Unteransprüchen und der Beschreibung.
  • Bei dem vorgestellten Verfahren 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üft 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 Verfahren 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 Verfahren 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.
  • Die Frequenz des Ring-Oszillators kann 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 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 Belegungswerte sortiert, nämlich eine bitweise Entscheidung beginnend vom MSB; 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.
  • 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 Ausführung der Anordnung zusammen mit dem Ring-Oszillator aus 1.
  • 3 zeigt eine weitere Ausführung der Anordnung.
  • 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 gemäß Anspruch 1.
  • 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 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 internen Zufallsfolgen schon die geforderten Eigenschaften zeigen. 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.
  • 2 zeigt eine Anordnung 45 mit dem Ring-Oszillator 10 aus 1, wobei ein erstes XOR-Glied 50, ein zweites XOR-Glied 52 und ein drittes XOR-Glied 54 vorgesehen sind. Mit diesen wird eine bitweise Komprimierung vorgenommen. Diese stellen somit eine Schaltung 47 zum Komprimieren dar. Die komprimierten Werte werden in die zweiten Flipflops 40, 42 und 44 eingegeben. Deren Ausgänge sind mit s10'', s11'' und s12'' (s1i'') bezeichnet. Die Flipflops 30, 32 und 34 dienen als Speicherelemente, deren Ausgänge s10, s11 und s12 nachbehandelt werden.
  • 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. Die Weiterverarbeitung der Bits kann dann durch zusätzliche Nachbehandlungsstrukturen erfolgen, die ohne einen Zertifizierungsmodus auskommen. Dazu können die drei Bits miteinander antivalent verknüpft werden, d.h. mittels XOR, oder auch parallel in eine Nachbearbeitungsstrukur einfließen. 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 DE102013213396A1_0002
    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 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 55 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 und 64 bilden eine Schaltung 57 zum Komprimieren. Weiterhin ist eine Einrichtung 59 zum Prüfen einer Verteilung 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 obigen 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 obiger 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 komprikmierten k Bits eine Belegung bilden mit 2k möglichen Werten und das Auftreten kaller 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.
  • Die Anzahl der invertierenden Elemente im Ring-Oszillator kann wie folgt verändert werden:
    • a) Generischer Ansatz bei der Synthese mit variabler Anzahl von Invertern (kann nur in einem FPGA nach Neusynthese verwendet werden, im ASIC fest).
    • b) Struktur des Ring-Oszillators mit Invertern vorsehen, die teilweise überbrückt werden können, gesteuert durch ein Steuersignal. Diese Zusatzschaltung verstärkt die ungleichen Kapazitäten der Knoten im Ring-Oszillator. Das wirkt sich aber nicht nachteilig aus, wenn entsprechend der Komprimierungsfaktor und/oder die Abtastfrequenz so variiert wird, dass die dadurch bewirkte Un-Ausbalanciertheit kompensiert wird.
  • Eine Änderung der Betriebsbedingungen des Oszillators kann vorgesehen sein, bspw. durch:
    • a) Änderung der Betriebsspannung durch separat steuerbare Versorgungsspannung oder durch Serienwiderstände in der Versorgung des Ring-Oszillators.
    • b) Änderung der Betriebstemperatur durch Heiz- oder Kühlelemente, die wahlweise zugeschaltet werden.
  • Ein gegenseitiger Vergleich heißt bspw., dass man die größte und die kleinste Anzahl einer Belegung durch größer/kleiner-Vergleich feststellt, zum Beispiel
    • a) indem man prüft, ob eine Differenz negativ wird oder
    • b) indem man die die Belegungswerte sortiert (bitweise Entscheidung beginnend vom MSB: 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.
  • 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 [0017, 0020, 0044]
  • 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: Aproveable Secure True Random Number Generator with Built In Tolerance Attacks, IEEE Trans. on Computers, 1/2007 [0013]
    • "Design of Testable Random Bit Generators" von Bucci, M. und Luzzi, R. (CHES 2005) [0016]
    • Killmann, W., Schindler, W.: AIS 31, Version 1, BSI vom 25. September 2001 [0044]

Claims (11)

  1. Verfahren zum Nachbehandeln einer Ausgabe einer Zufallsquelle eines Zufallsgenerators (45, 55), welche ein digitales Ausgangssignal mit einer Bitbreite von mindestens einem Bit ausgibt, wobei das Ausgangssignal komprimiert 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 ein komprimiertes Ausgangssignal erzeugt wird, das eine Folge komprimierter Signalwerte umfasst, wobei die Folge der komprimierten Signalwerte hinsichtlich ihrer Verteilung überprüft wird.
  2. Verfahren nach Anspruch 1, bei dem die Überprüfung der Verteilung mittels Differenzbildung von Werten separater Zähler durchgeführt wird.
  3. Verfahren nach Anspruch 1 oder 2, bei dem in Abhängigkeit des Ergebnisses der Prüfung der Verteilung der Komprimierungsfaktor n beeinflusst wird.
  4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem als Zufallsquelle 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.
  5. Verfahren nach Anspruch 4, bei dem in Abhängigkeit des Ergebnisses der Prüfung die Frequenz des Abtasttaktes beeinflusst wird.
  6. Verfahren nach Anspruch 4 oder 5, bei dem in Abhängigkeit des Ergebnisses der Prüfung der Verteilung die Frequenz des Ring-Oszillators (10) beeinflusst wird.
  7. Verfahren nach Anspruch 6, bei dem die Frequenz des Ring-Oszillators (10) durch Wahl der Anzahl invertierender Elemente beeinflusst wird.
  8. Verfahren nach Anspruch 6, bei dem die Frequenz des Ring-Oszillators (10) durch die Veränderung der Betriebsbedingungen beeinflusst wird.
  9. Verfahren nach einem der Ansprüche 1 bis 8, bei dem das Ausgangssignal der Zufallsquelle aus mehreren Bits besteht und mindestens zwei dieser Bits durch eine lineare Verknüpfung zu einem Bit zusammengefasst werden, das entsprechend durch blockweise XOR-Verknüpfung von n aufeinanderfolgenden Bits komprimiert wird, woraus sich eine komprimierte Bitfolge ergibt, und die komprimierte Bitfolge hinsichtlich ihrer Verteilung geprüft wird.
  10. Verfahren nach einem der Ansprüche 1 bis 8, bei dem das Ausgangssignal der Zufallsquelle aus mindestens k Bits besteht, wobei jedes dieser k Bits mit einer Schaltung zur Verarbeitung des Ausgangssignals versehen ist, wobei kdie entsprechend komprimierten k Bits eine Belegung bilden mit 2 möglikchen Werten und das Auftreten aller dieser 2 möglichen Werte in getrennten Zählern gezählt werden und die Häufigkeit aller dieser Belegungen gegenseitig verglichen werden.
  11. Anordnung zum Nachbehandeln einer Ausgabe einer Zufallsquelle eines Zufallsgenerators (45, 55), welche ein digitales Ausgangssignal mit einer Bitbreite von mindestens einem Bit ausgibt, wobei die Anordnung eine Schaltung (47, 57) zum Komprimieren des Ausgangssignals umfasst, wobei im Rahmen der Komprimierung eine blockweise lineare Verknüpfung von n aufeinanderfolgenden Bits des Ausgangssignals vorgenommen wird, wobei n ein Komprimierungsfaktor ist, wodurch ein komprimiertes Ausgangssignal zu erzeugen ist, das eine Folge komprimierter Signalwerte umfasst, wobei eine Einrichtung (49, 59) vorgesehen ist, mit der die Folge der komprimierten Signalwerte hinsichtlich ihrer Verteilung zu überprüfen ist.
DE102013213396.0A 2013-07-09 2013-07-09 Verfahren zum Nachbehandeln einer Ausgabe einer Zufallsquelle eines Zufallsgenerators Withdrawn DE102013213396A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102013213396.0A DE102013213396A1 (de) 2013-07-09 2013-07-09 Verfahren zum Nachbehandeln einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
US14/324,668 US9720650B2 (en) 2013-07-09 2014-07-07 Method for post-processing an output of a random source of a random generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102013213396.0A DE102013213396A1 (de) 2013-07-09 2013-07-09 Verfahren zum Nachbehandeln einer Ausgabe einer Zufallsquelle eines Zufallsgenerators

Publications (1)

Publication Number Publication Date
DE102013213396A1 true DE102013213396A1 (de) 2015-01-15

Family

ID=52107239

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013213396.0A Withdrawn DE102013213396A1 (de) 2013-07-09 2013-07-09 Verfahren zum Nachbehandeln einer Ausgabe einer Zufallsquelle eines Zufallsgenerators

Country Status (2)

Country Link
US (1) US9720650B2 (de)
DE (1) DE102013213396A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9891889B2 (en) * 2016-06-30 2018-02-13 International Business Machines Corporation Injecting CPU time jitter to improve entropy quality for random number generator

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 (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4799259A (en) * 1986-04-10 1989-01-17 Rockwell International Corporation Monolithic random digital noise generator
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
US6910057B2 (en) * 2001-10-17 2005-06-21 Hewlett-Packard Development Company, L.P. Truth table candidate reduction for cellular automata based random number generators
US8805905B2 (en) * 2007-09-18 2014-08-12 Seagate Technology Llc On-line randomness test for restart random number generators
WO2011039846A1 (ja) * 2009-09-29 2011-04-07 株式会社 東芝 乱数生成回路
JP6034153B2 (ja) * 2012-11-21 2016-11-30 株式会社東芝 乱数生成回路

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 (4)

* 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
Sunar, B. et al: Aproveable Secure True Random Number Generator with Built In Tolerance Attacks, IEEE Trans. on Computers, 1/2007

Also Published As

Publication number Publication date
US20150019602A1 (en) 2015-01-15
US9720650B2 (en) 2017-08-01

Similar Documents

Publication Publication Date Title
EP2976707B1 (de) Vorrichtung und verfahren zum erzeugen von zufallsbits
EP1643643B1 (de) Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen
DE102008048292B4 (de) Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
DE102008047163B4 (de) Bestimmen eines Zeitintervalls auf der Grundlage eines ersten Signals, eines zweiten Signals und eines Jitters des ersten Signals
DE102012210990A1 (de) Verfahren zum Erzeugen von Zufallszahlen
DE102014200163A1 (de) Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
DE102018212833A1 (de) Vorrichtung und verfahren zur erzeugung physikalisch unklonbarer funktionen
DE102010029735A1 (de) Verfahren zum Generieren eines Bitvektors
DE102014200309A1 (de) Verfahren zum Überprüfen einer Ausgabe
DE102014200164A1 (de) Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
DE102012210361A1 (de) Verfahren zum Überwachen einer Ausgabe eines Zufallsgenerators
DE102011078643A1 (de) Verfahren zum Erzeugen einer zufälligen Ausgangsbitfolge
DE102010026688A1 (de) Vorrichtung und Verfahren zum Erzeugen von Zufallsbits
DE102013213396A1 (de) Verfahren zum Nachbehandeln einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
EP0681760B1 (de) Rückgekoppeltes schieberegister zum erzeugen von pseudozufallszahlenfolgen darstellenden digitalen signalen
WO2013004494A1 (de) Verfahren zum sicheren prüfen eines codes
DE102013213382A1 (de) Verfahren zum Prüfen einer Ausgabe eines Zufallsgenerators
DE102013205168A1 (de) Verfahren zum Erzeugen einer zufälligen Ausgangsbitfolge
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
DE102014200404A1 (de) Verfahren zum Überprüfen einer Ausgabe
DE102014216386A1 (de) Verfahren zum Testen eines Zufallsgenerators
EP3413188B1 (de) Verfahren zur optimalen anordnung eines zufallszahlengenerators

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee