DE102014200309A1 - Verfahren zum Überprüfen einer Ausgabe - Google Patents

Verfahren zum Überprüfen einer Ausgabe Download PDF

Info

Publication number
DE102014200309A1
DE102014200309A1 DE102014200309.1A DE102014200309A DE102014200309A1 DE 102014200309 A1 DE102014200309 A1 DE 102014200309A1 DE 102014200309 A DE102014200309 A DE 102014200309A DE 102014200309 A1 DE102014200309 A1 DE 102014200309A1
Authority
DE
Germany
Prior art keywords
difference
random
value
bit
output
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
DE102014200309.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 DE102014200309.1A priority Critical patent/DE102014200309A1/de
Priority to US14/590,537 priority patent/US20150199174A1/en
Publication of DE102014200309A1 publication Critical patent/DE102014200309A1/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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

Es werden ein Verfahren und eine Anordnung zum Überprüfen einer Ausgabe einer Zufallsquelle vorgestellt. Die Zufallsquelle wird mit einer Abtasteinheit (51) abgetastet, so dass jeweils ein Ausgangssignal erzeugt wird. Dies wird durch eine Verarbeitungseinheit verarbeitet. Am Ausgangssignal der Verarbeitungseinheit werden die Nullen und Einsen gezählt.

Description

  • Die Erfindung betrifft ein Verfahren zum Überprüfen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators und eine Anordnung zur Durchführung des Verfahrens.
  • Stand der Technik
  • sZufallszahlen 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 Abtastwert 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 12 vorgestellt. Ausführungsformen ergeben sich aus den abhängigen Ansprüchen und aus der Beschreibung.
  • Es wird 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 vorgestellte Verfahren stellt eine Möglichkeit bereit, die Güte der internen Zufallszahlen nach einer einfachen Komprimierung zu prüfen.
  • Dabei kann eine TRNG-Quelle mit mehreren Ausgängen benutzt werden, wobei alle Ausgänge miteinander linear verknüpft werden, bspw. XOR, XNOR, und dieses kombinierte Ausgangssignal mit einer simplen linearen Komprimierungsfunktion, bspw. serielles XOR oder XNOR, ausgestattet ist. Der Aufwand eines solchen Verfahrens ist so gering, dass ein TRNG mit ca. 200 Gatteräquivalenten realisiert werden kann. Das ist deutlich günstiger als bei bekannten Verfahren.
  • Für das in Ausgestaltung komprimierte Ausgangssignal werden die enthaltenen Nullen und Einsen gezählt und eine Differenzbildung dieser beiden Zählwerte vorgenommen. Dabei ist es besonders vorteilhaft, wenn ein simpler Vor-/Rückwärtszähler eingesetzt wird, der bei jeder "1" inkrementiert und bei jeder "0" dekrementiert. Dadurch wird im Zähler die Differenz unmittelbar gebildet. Nach einer fest vorgegebenen Anzahl von Ausgangsbits wird diese Differenz mit einem vorgegebenen festen Vergleichs-Wert verglichen.
  • 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 den Ring-Oszillator mit nachfolgender XOR-Verknüpfung und Komprimierung.
  • 3 zeigt das Zählen von Nullen und Einsen in separaten Zählern.
  • 4 zeigt eine Differenzbildung von Zählerständen.
  • 5 zeigt eine Differenzbildung von Zählerständen mittels Vorwärts-/Rückwärtszähler.
  • 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. Das Speicherelement 106 von 2, 3 und 5 wird nach jeder Ausgabe zurückgesetzt. Die dadurch erreichte "zustandslose" Komprimierung spart einen zusätzlichen Zertifizierungsmode ein.
  • Für den Ring-Oszillator sind gemäß 1 sind 9 Inverter und 3 Abtastpunkte vorgesehen. In einem ersten Flipflop, das jeweils an einem Abtastpunkt des Ring-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 Abtasttakts einschwingen kann, bevor dieser stabile Wert in das zweite Flipflop übernommen wird.
  • In einem vorliegenden Testchip wurden Gatter einer digitalen Standard-Bibliothek für die vorstehend beschriebene Oszillatorschaltung benutzt. Da diese Gatter ungleiche Treiberstärken für low-high und high-Iow Flanken besitzen und der Oszillator außerdem noch mit einem zusätzlichen Ausgang zur Frequenzmessung versehen ist, sind die möglichen Belegungen der Ausgangssignale nicht gleichverteilt, sondern haben eine starke Verzerrung (bias).
  • Wenn man nun eine Nachbehandlung vornimmt, bei der die drei Ausgangsbits miteinander XOR-verknüpft werden, so tritt als Ergebnis die 0 viel häufiger auf, als die 1. Eine solche Schieflage der 0-1-Verteilung (bias) sollte eigentlich vermieden werden (Forderung des BSI an TRNGs) oder zumindest durch eine geeignete Nachbearbeitung korrigiert werden. Die dadurch erhaltenen internen Zufallsfolgen sollten eine Gleichverteilung von 0 und 1 aufweisen (siehe: Killmann, W., Schindler, W.: AIS 31, Version 1, BSI vom 25.9.2001). Falls eine solche Verteilung der internen Zufallsfolgen nicht möglich ist, wird auch eine komplexe Struktur als Post Processing zugelassen, die Zufallszahlen aus den internen Zufallsfolgen generiert. Da durch solche Strukturen möglicherweise eine Verzerrung vorgenommen wird, die das wahre (unzureichende) Verhalten nur kaschiert, fordert das BSI eine besondere Testbarkeit auch nach dem Post Processing, 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, ist die Nachbehandlungsstruktur (das Post Processing) 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.
  • Es wird nunmehr der Nachweis erbracht, dass durch eine einfache Komprimierung gemäß dem vorstehend beschriebenen Verfahren interne Zufallszahlen erzeugt werden, die den Erfordernissen der Gleichverteilung entsprechen.
  • Nach dem vorgeschlagenen Verfahren kann eine einfache Komprimierung schon bitweise vorgenommen werden, bevor die einzelnen Bits weiterverarbeitet werden. Diese Variante hat den Nachteil, dass man jedes abgetastete Signal einzeln komprimieren muss und anschließend die Verteilung aller acht möglichen Belegungen bezüglich ihrer Verteilung geprüft werden muss. Wie Auswertungen am Testchip und an einer FPGA-Realisierung gezeigt haben, lässt auch die Untersuchung der Gleichverteilung eines aus diesen drei Ausgangssignalen kombinierten Signals den Schluss zu, ob die erforderliche Zufälligkeit des Signals erreicht wird. Es wird weiterhin vorgeschlagen, die Zählerwerte der möglichen Belegungen, bspw. acht bei drei Signalen oder zwei bei einem kombinierten Signal, dahingehend zu überprüfen, ob ein vorgegebener Maximalwert von mindestens einem dieser Zähler überschritten wird.
  • 2 zeigt eine Anordnung 100 mit dem Ring-Oszillator 10 aus 1, der mit einer Abtasteinheit 51, die die drei ersten Flipflops 30, 32, 34 umfasst, abgetastet wird. Ausgänge s10, s11 und s12 der Abtasteinheit 51 werden in einem ersten XOR-Glied 102 und einem zweiten XOR-Glied 104 verarbeitet. Der Ausgang des zweiten XOR-Glieds 104 wird in ein zweites Flipflop 106 gegeben.
  • In der Anordnung 100 von 2 wird eine Komprimierung mit einem seriellen XOR vorgeschlagen, nachdem die mehreren Ausgänge der Zufallsquelle miteinander linear verknüpft wurden (XOR, XNOR). Dieser komprimierte Wert wird im zweiten Flipflop 106 gespeichert. Das zweite Flipflop 106 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. Anstelle der Komprimierung kann auch eine andere Verarbeitung vorgesehen sein. Hierfür ist eine Verarbeitungseinheit vorgesehen.
  • Wie weitergehende Untersuchungen an dem Testchip und FPGA gezeigt haben, ist eine Untersuchung der Gleichverteilung des kombinierten Signals aus mehreren Abtastwerten des Ring-Oszillators 10 ausreichend, um den Grad des Zufalls für dieses Signal zu bestimmen. Statistische Tests sind erfolgreich, wenn die Nullen und Einsen nahezu gleichverteilt sind. Dazu wird nun eine Anordnung vorgeschlagen, die eine Differenz aus der Anzahl der Nullen und der Anzahl der Einsen bildet und diese Differenz bezüglich eines vorgegebenen Maximalwerts verglichen wird. Dabei kann man die Einsen und Nullen in zwei getrennten Zählern zählen und anschließend durch eine Subtrahierschaltung die Differenz bestimmen, wie dies in 4 gezeigt ist.
  • 3 zeigt die Abtasteinheit 51 mit den ersten Flipflops 30, 32, 34, das erste XOR-Glied 102. das zweite XOR-Glied 104 und das zweite Flipflop 106. Weiterhin sind ein Taktteiler 120, ein 1 aus 2 Dekoder 122, ein separater Zähler bzw. Einzelzähler für Nullen 124, ein Einzelzähler für Einsen 126 und ein weiteres Flipflop 130, in das ein Systemtakt 131 eingeht und ein Speicher- und Rücksetzsignal 133 ausgeht, vorgesehen. Die Darstellung zeigt das Zählen der Nullen und Einsen der komprimierten Abtastwerte.
  • Ein Subtrahierer kann dabei als Addierer so ausgebildet werden, dass er den einen Operanden (den Subtrahenden) als Zweierkomplement zugeführt bekommt. Dabei wird das Zweierkomplement des Operanden so gebildet, dass alle Bits des Subtrahenden invertiert werden. Dadurch erhält man das Einerkomplement und wenn man dazu eine 1 addiert das Zweierkomplement. Dabei kann auch die 1 dadurch addiert werden, dass man bei dem Addierer den einlaufenden Übertrag fest mit 1 belegt, wie dies in 4 mit dem Signal 151 dargestellt ist.
  • 4 zeigt die Differenzbildung der Zählerstände mittels Addierer und Zweierkomplement sowie den Vergleich. Die Darstellung zeigt insbesondere den Zähler für Nullen 124, den Zähler für Einsen 126, einen Inverter 150, einen Addierer 152 und einen Vergleicher 154. Ausgang 160 des Addierers ist eine Differenz. Diese geht neben einem festen Vergleichswert 162 in den Vergleicher 154 ein. An dessen Ausgang 170 wird ein Fehler angezeigt, wenn der vorgegebene Vergleichswert 162 überschritten wird. Es wird somit mit einem vorgegebenen Wert verglichen.
  • Das Ergebnis dieser Operation ist die Differenz der Einsen und Nullen. Diese Differenz kann als positive Zahl entstehen, wenn der erste Operand, der Minuend, z. B. die Anzahl der Einsen, größer ist als der zweite, abzuziehende Operand, der Subtrahend. Im umgekehrten Fall ist das Ergebnis negativ und wird als Zweierkomplement dargestellt, bei dem das höchstwertige Bit (MSB: most significant bit, Vorzeichenbit) gleich 1 ist. Im letzteren Fall müsste man alle Ergebnisbits invertieren und eine 1 addieren, um den entsprechenden positiven Wert zu erhalten. Der positive Differenzwert müsste dann mit einem fest vorgegebenen Wert verglichen werden. Vom BSI wird dazu eine zulässige Abweichung in der Vorschrift AIS 31 P2.i)(vii) vorgeschrieben. Dabei wird für 100000 Zufalls-Bits eine Abweichung der Anzahl der Einsen um weniger als 2500 vom Erwartungswert 50000 zugelassen. Berücksichtigt man, dass bei einer höheren Anzahl von Einsen gleichzeitig die Anzahl der Nullen um den gleichen Betrag sinkt (und umgekehrt), so darf die oben beschriebene Differenz nicht den Wert 5000 bei 100000 Zufallsbits erreichen. Gegen diesen Wert wird deshalb die Differenz verglichen (siehe 4).
  • In einer Ausgestaltung des Verfahrens kann die Differenzbildung auch einfach dadurch erfolgen, dass nur ein Zähler verwendet wird, der vorwärts und rückwärts zählen kann. Zählt man nun bei einer 1 vorwärts und bei einer 0 rückwärts, so entsteht die Differenz unmittelbar nach Abschluss der Prüfung im Zähler, wie dies 5 zu entnehmen ist.
  • 5 zeigt die Differenzbildung der Zählerstände mittels Vorwärts-/Rückwärtszähler. Die Darstellung zeigt die Abtasteinheit 51 mit den drei ersten Flipflops 30, 32, 34, die XOR-Glieder 102, 104, den Taktteiler 120 und das weitere Flipflop 130. Ausgang s012'' des zweiten Flipflops 106 geht in einen Vorwärts-/Rückwärtszähler 200 ein, an dessen Ausgang 202 eine Differenz anliegt.
  • In einer weiteren Ausgestaltung kann man die Differenz in Abhängigkeit von dem obersten Ergebnisbit bzw. Vorzeichenbit invertieren. Man erhält dadurch immer eine positive Zahl, die im Falle einer negativen Differenz um den Wert 1 geringer ist, als es tatsächlich der Fall ist. Das ist dadurch zu erklären, dass negative Zahlen im Zweierkomplement dargestellt werden. Das Zweierkomplement wird durch Invertierung aller Bits und einer anschließenden Addition von 1 gebildet. Im obigen Vorschlag wird die Addition von 1 weggelassen und muss dann bei der Prüfung berücksichtigt werden.
  • Im Fall von 2500 Einsen zu viel würde die Differenz 5000 betragen oder Hexadezimal dargestellt als 0x1388. Im Falle von 2500 Einsen zu wenig wäre die Differenz -5000 oder hexadezimal 0xEC78 bei einer Darstellung mit 16 Bits. Benutzt man das oberste Bit zur Invertierung aller Bits, so erhält man als positiven Wert 0x1387, d. h. eins weniger als im obigen Fall. Da die Differenz immer eine gerade Zahl sein muss (eine 1 mehr ist gleichzeitig eine 0 weniger) reicht es aus, wenn man die oben gebildete positive Differenz immer vergleicht, ob sie <4999 (hexadezimal 0x1387) ist. Der feste Wert in 4 ist dann auf 4999 zu setzen. Die Prüfung wird nach jeweils 100000 Zufallsbits durchgeführt. Anschließend werden die Zähler auf 0 zurückgesetzt. Ist die Differenz nicht kleiner als 4999, so wird ein Fehlersignal ausgegeben. Dieses Fehlersignal kann dazu benutzt werden, dass die erzeugten Zufallsbits nicht verwendet werden oder der Zufallsgenerator seine Ausgabe sperrt, bis der Test wieder erfolgreich ist. Weiterhin kann sowohl die Frequenz des Abtasttakts als auch der Komprimierungsfaktor n so variiert werden, bis der Test erfolgreich ist.
  • Zu beachten ist, dass der erforderliche Schaltungsaufwand sehr gering ist und digitale Standardverfahren eingesetzt werden können.
  • Ein TRNG ist mit dem vorgestellten Verfahren realisierbar. Wegen des äußerst geringen schaltungstechnischen Aufwands (ca. 200 Gatter-Äquivalente) ist es praktisch überall einsetzbar, wo Zufall eine Rolle spielt. Künftig kann man in Sensor-Auswertungen zum Manipulationsschutz oder in Security-Anwendungen bei Verbindungen mit dem Internet solche TRNGs einsetzen.
  • Es wird weiterhin eine Schaltungsanordnung vorgestellt, die eine Zufallsquelle mit mindestens einem Ausgang umfasst, der eine Sequenz von Zufallsbits liefert, die durch eine serielle lineare Verknüpfung um einen Faktor n komprimiert wird und dadurch ein komprimiertes Zufallsbit erzeugt wird und in der Folge der komprimierten Zufallsbits die Einsen und Nullen gezählt werden. Für eine feste Anzahl von Zufallsbits wird die Differenz der Nullen und Einsen gebildet und diese Differenz wird mit einem vorgegebenen Wert verglichen.
  • In der Zufallsquelle können mehrere Signale miteinander linear zu einem Ausgang verknüpft werden. Weiterhin können die Einsen und Nullen in separaten Zählern gezählt werden.
  • Die Differenzbildung kann durch einen Addierer erfolgen, dem ein Operand bitweise invertiert zugeführt wird (Einerkomplement) und der einlaufende Übertrag des Addierers auf 1 gesetzt wird.
  • Weiterhin kann vorgesehen ein, dass ein Vor-/Rückwärtszähler zum Zählen und der Differenzbildung benutzt wird, bei dem der Zähler vorwärts zählt, wenn das betreffende komprimierte Zufallsbit gleich 1 ist und rückwärts zählt, wenn dieses besagte Zufallsbit gleich 0 ist, sodass nach Abschluss des Prüfvorgangs die Differenz im Zähler vorliegt.
  • Außerdem kann vorgesehen sein, dass die Differenz als Zweierkomplement dargestellt ist, wobei das höchstwertige Bit (MSB) dieser Differenz das Vorzeichenbit ist und alle Bits der Differenz in Abhängigkeit von dem Wert des MSB invertiert werden, sodass das Ergebnis immer ein positiver Wert ist.
  • In einer Ausführung wird der positive Wert gegen einen festen Vergleichswert verglichen, wobei bei der Wahl des Vergleichswertes berücksichtigt wird, dass im Falle einer negativen Differenz durch die Invertierung aller Bits ein positiver Wert gebildet wird, der um den Wert 1 kleiner ist, als die tatsächliche Differenz und die Differenzbildung zwischen Nullen und Einsen immer doppelt so groß ist wie die Abweichung der Anzahl der Einsen oder Nullen vom idealen Mittelwert.
  • Zudem kann bei einem nicht erfolgreichen Vergleich ein Fehlersignal ausgegeben werden.
  • Im Falle eines Fehlersignals kann die Prüfoperation zurückgesetzt, die Prüfung für neu generierte Zufallsbits erneut durchgeführt und darüber entschieden werden, ob die vorher gebildeten Zufallsbits verworfen werden.
  • In Abhängigkeit des Vergleichs der Differenz mit dem Vergleichswert kann der Komprimierungsfaktor n variiert werden.
  • Es kann vorgesehen sein, dass die Zufallsquelle aus mindestens einem Ring-Oszillator besteht, der an mindestens einer Position abgetastet wird und die Abtastfrequenz in Abhängigkeit des Vergleichs der Differenz mit dem Vergleichswert variiert wird.
  • Die voranstehend genannten Ausführungen bezogen auf eine Schaltungsanordnung mit einer Zufallsquelle sind auch in Verbindung mit einer Anordnung zum Überprüfen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators denkbar.
  • 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, 0022, 0055, 0060]
  • Zitierte Nicht-Patentliteratur
    • Bock, H., Bucci, M., Luzzi, R.: An Offset-compensated Oscillator-based Random Bit Source for Security Applications, CHES 2005 [0010]
    • vable Secure True Random Number Generator with Built In Tolerance Attacks, IEEE [0013]
    • Killmann, W., Schindler, W.: AIS 31, Version 1, BSI vom 25. September 2001 [0055]
    • Killmann, W., Schindler, W.: AIS 31, Version 1, BSI vom 25.9.2001 [0060]

Claims (13)

  1. Verfahren zum Überprüfen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators, welche mindestens ein Ausgangssignal mit einer Bitbreite von mindestens einem Bit ausgibt, wobei die Zufallsquelle mit mindestens einer Abtasteinheit (51) abgetastet wird, so dass jeweils ein Ausgangssignal erzeugt wird, das Ausgangssignal jeder Abtasteinheit (51) jeweils durch eine Verarbeitungseinheit verarbeitet wird und am Ausgangssignal dieser Verarbeitungseinheit die Einsen und Nullen gezählt werden und für eine feste Anzahl von Zufallsbits die Differenz von Einsen und Nullen gebildet wird und diese Differenz mit einem vorgegebenen Wert verglichen wird.
  2. Verfahren nach Anspruch 1, bei dem in jeder Verarbeitungseinheit 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 ein komprimiertes Ausgangssignal erzeugt wird, das eine Folge komprimierter Signalwerte umfasst, wobei in der Folge der komprimierten Signalwerte die Einsen und Nullen gezählt werden.
  3. Verfahren nach Anspruch 1 oder 2, bei dem die Nullen und Einsen in separaten Zählern (124, 126) gezählt werden.
  4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem die Differenzbildung durch einen Addierer (152) erfolgt, dem ein Operand bitweise invertiert zugeführt wird und der einlaufende Übertrag des Addierers (152) auf 1 gesetzt wird.
  5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem ein Vorwärts-/Rückwärtszähler (200) zum Zählen und der Differenzbildung benutzt wird, bei dem der Zähler (200) vorwärts zählt, wenn das betreffende komprimierte Zufallsbit gleich 1 ist und rückwärts zählt, wenn dieses besagte Zufallsbit gleich 0 ist, sodass nach Abschluss des Prüfvorgangs die Differenz im Zähler (200) vorliegt.
  6. Verfahren nach einem der Ansprüche 1 bis 5, bei dem die Differenz als Zweierkomplement dargestellt ist, wobei das höchstwertige Bit (MSB) dieser Differenz das Vorzeichenbit ist und alle Bits der Differenz in Abhängigkeit von dem Wert des MSB invertiert werden, sodass das Ergebnis immer ein positiver Wert ist.
  7. Verfahren nach einem der Ansprüche 1 bis 6, bei dem der positive Wert gegen einen festen Vergleichswert (162) verglichen wird, wobei bei der Wahl des Vergleichswerts (162) berücksichtigt wird, dass im Falle einer negativen Differenz durch die Invertierung aller Bits ein positiver Wert gebildet wird, der um den Wert 1 kleiner ist, als die tatsächliche Differenz und die Differenzbildung zwischen Nullen und Einsen immer doppelt so groß ist wie die Abweichung der Anzahl der Einsen oder Nullen vom idealen Mittelwert.
  8. Verfahren nach einem der Ansprüche 1 bis 7, bei dem bei einem nicht erfolgreichen Vergleich ein Fehlersignal ausgegeben wird.
  9. Verfahren nach Anspruch 8, bei dem im Falle eines Fehlersignals die Prüfoperation zurückgesetzt wird, die Prüfung für neu generierte Zufallsbits erneut durchgeführt wird und darüber entschieden wird, ob die vorher gebildeten Zufallsbits verworfen werden.
  10. Verfahren nach einem der Ansprüche 1 bis 9, bei dem in Abhängigkeit des Vergleichs der Differenz mit dem Vergleichswert der Komprimierungsfaktor n variiert wird.
  11. Verfahren nach einem der Ansprüche 1 bis 10, bei dem die Zufallsquelle aus mindestens einem Ring-Oszillator (10) besteht, der an mindestens einer Position abgetastet wird und die Abtastfrequenz in Abhängigkeit des Vergleichs der Differenz mit dem Vergleichswert variiert wird.
  12. Anordnung zum Überprüfen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators, welche mindestens ein Ausgangssignal mit einer Bitbreite von mindestens einem Bit ausgibt, wobei die Zufallsquelle mit mindestens einer Abtasteinheit (51) abzutasten ist, so dass jeweils ein Ausgangssignal erzeugt wird, das Ausgangssignale jeder Abtasteinheit (51) jeweils durch eine Verarbeitungseinheit zu verarbeiten ist, wobei die Anordnung dazu eingerichtet ist, in der Folge der Ausgangssignale der Verarbeitungseinheit die Einsen und Nullen zu zählen und für eine feste Anzahl von Zufallsbits die Differenz der Nullen und Einsen zu bilden und diese Differenz mit einem vorgegebenen Wert zu vergleichen.
  13. Anordnung nach Anspruch 12, bei der in jeder Verarbeitungseinheit eine Komprimierung durchzuführen ist, wobei im Rahmen der Komprimierung eine blockweise lineare Verknüpfung von n aufeinanderfolgenden Bits des Ausgangssignals vorzunehmen ist, wobei n ein Komprimierungsfaktor ist, wodurch ein komprimiertes Ausgangssignal erzeugt wird, das eine Folge komprimierter Signalwerte umfasst.
DE102014200309.1A 2014-01-10 2014-01-10 Verfahren zum Überprüfen einer Ausgabe Withdrawn DE102014200309A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102014200309.1A DE102014200309A1 (de) 2014-01-10 2014-01-10 Verfahren zum Überprüfen einer Ausgabe
US14/590,537 US20150199174A1 (en) 2014-01-10 2015-01-06 Method for Checking an Output

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014200309.1A DE102014200309A1 (de) 2014-01-10 2014-01-10 Verfahren zum Überprüfen einer Ausgabe

Publications (1)

Publication Number Publication Date
DE102014200309A1 true DE102014200309A1 (de) 2015-07-16

Family

ID=53484861

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014200309.1A Withdrawn DE102014200309A1 (de) 2014-01-10 2014-01-10 Verfahren zum Überprüfen einer Ausgabe

Country Status (2)

Country Link
US (1) US20150199174A1 (de)
DE (1) DE102014200309A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3525085A1 (de) * 2018-02-12 2019-08-14 Siemens Aktiengesellschaft Testen von physischen zufallszahlengeneratoren
CN109120608B (zh) * 2018-08-01 2020-11-24 飞天诚信科技股份有限公司 一种防重放安全通讯处理方法及装置
US11497566B2 (en) * 2018-10-26 2022-11-15 Biosense Webster (Israel) Ltd. Loose mode for robot
US11449606B1 (en) * 2020-12-23 2022-09-20 Facebook Technologies, Llc Monitoring circuit including cascaded s-boxes for fault injection attack protection

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
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
DE102005042135B3 (de) * 2005-09-05 2006-08-31 Infineon Technologies Ag Vorrichtung und Verfahren mit Computerprogramm zur Zufallszahlenerzeugung mit Schiefenregelung und algorithmischer Nachbearbeitung
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 (4)

* Cited by examiner, † Cited by third party
Title
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
Killmann, W., Schindler, W.: AIS 31, Version 1, BSI vom 25.9.2001
vable Secure True Random Number Generator with Built In Tolerance Attacks, IEEE

Also Published As

Publication number Publication date
US20150199174A1 (en) 2015-07-16

Similar Documents

Publication Publication Date Title
EP3028140B1 (de) Konstruieren einer schaltung geeignet zur erzeugung von zufallsbits und schaltung zur erzeugung von zufallsbits
EP1643643B1 (de) Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen
EP2976707B1 (de) Vorrichtung und verfahren zum erzeugen von zufallsbits
DE112011106024B4 (de) Erzeugungsvorrichtung für vorrichtungsspezifische Informationen und Erzeugungsverfahren für vorrichtungsspezifische Informationen
DE102011078642A1 (de) Verfahren zum Prüfen eines m aus n Codes
DE102012210990A1 (de) Verfahren zum Erzeugen von Zufallszahlen
DE102010029735A1 (de) Verfahren zum Generieren eines Bitvektors
DE102014200309A1 (de) Verfahren zum Überprüfen einer Ausgabe
DE102014200163A1 (de) Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
DE102013204274A1 (de) Verfahren zum Erkennen einer Korrelation
EP2446580B1 (de) Vorrichtung und verfahren zur bildung einer signatur
DE102014200164A1 (de) Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
WO2013004490A1 (de) Verfahren zum erzeugen einer zufälligen ausgangsbitfolge
DE102012210361A1 (de) Verfahren zum Überwachen einer Ausgabe eines Zufallsgenerators
WO2013004494A1 (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
DE102013213396A1 (de) Verfahren zum Nachbehandeln einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
DE102013213392A1 (de) Verfahren zur Beurteilung einer Ausgabe eines Zufallsgenerators
DE102013213385A1 (de) Verfahren zur Beurteilung einer Ausgabe eines Zufallsgenerators
DE102014200404A1 (de) Verfahren zum Überprüfen einer Ausgabe
WO2015128015A1 (de) Vorrichtung und verfahren zum erzeugen von zufallsbits
DE102013204272A1 (de) Verfahren zum Erkennen einer Korrelation
DE102013205166A1 (de) Verfahren zum Erzeugen einer Einwegfunktion
DE102013219768A1 (de) Erzeugen von Zufallsbits

Legal Events

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