DE102017104441A1 - Zufälligkeitstestvorrichtung und Verfahren für einen Zufallszahlengenerator - Google Patents

Zufälligkeitstestvorrichtung und Verfahren für einen Zufallszahlengenerator Download PDF

Info

Publication number
DE102017104441A1
DE102017104441A1 DE102017104441.8A DE102017104441A DE102017104441A1 DE 102017104441 A1 DE102017104441 A1 DE 102017104441A1 DE 102017104441 A DE102017104441 A DE 102017104441A DE 102017104441 A1 DE102017104441 A1 DE 102017104441A1
Authority
DE
Germany
Prior art keywords
bit
bits
randomness
sum
reference value
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.)
Pending
Application number
DE102017104441.8A
Other languages
English (en)
Inventor
Karpinskyy Bohdan
Yong-Ki Lee
Mi-Jung Noh
Sang-Wook Park
Ki-tak KIM
Yong-Soo Kim
Yun-hyeok CHOI
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102017104441A1 publication Critical patent/DE102017104441A1/de
Pending 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
    • 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/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

Eine Vorrichtung zum Testen eines Zufallszahlengenerators (10) weist eine Korrelationstestschaltung (120, 220) und eine Zufälligkeitsbestimmungsschaltung (160, 260, 260a, 260b, 260c, 260d, 360, 360a, 360b) auf. Die Korrelationstestschaltung (120, 220) extrahiert eine erste Mehrzahl von Bitpaaren, von denen jedes zwei Bits aufweist, welche voneinander durch einen ersten Abstand in einem Bitstrom beabstandet sind, welcher durch den Zufallszahlengenerator (10) erzeugt wird, erlangt eine erste Summe von Differenzen zwischen jeweiligen zwei Bits der ersten Mehrzahl von Bitpaaren und erlangt eine zweite Summe von Differenzen zwischen jeweiligen zwei Bits einer zweiten Mehrzahl von Bitpaaren, wobei die zweite Mehrzahl von Bitpaaren jeweils zwei Bits aufweist, welche voneinander durch einen zweiten Abstand unterschiedlich von dem ersten Abstand in dem Bitstrom beabstandet sind. Die Zufälligkeitsbestimmungsschaltung (160, 260, 260a, 260b, 260c, 260d, 360, 360a, 360b) bestimmt eine Zufälligkeit des Bitstroms basierend auf der ersten Summe und der zweiten Summe.

Description

  • QUERVERWEIS AUF EINE VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht die Priorität der koreanischen Patentanmeldung Nr. 10-2016-0152968 , welche am 16. November 2016 beim Koreanischen Amt für Gewerblichen Rechtsschutz (Korean Intellectual Property Office) eingereicht wurde, deren Offenbarung hierin in ihrer Gesamtheit durch Bezugnahme mit eingebunden ist.
  • HINTERGRUND
  • Vorrichtungen und Verfahren, welche mit beispielhaften Ausführungsformen konsistent sind, beziehen sich auf die Erzeugung einer Zufallszahl und genauer auf eine Vorrichtung und ein Verfahren zum Testen einer Zufälligkeit einer Zufallszahl, welche durch eine Zufallszahlengenerator erzeugt wird.
  • Zufallszahlengeneratoren können auf verschiedene Anwendungen, die ein unvorhersagbares Ergebnis verwenden, wie beispielsweise eine statistische Stichprobenerhebung, Computersimulationen und Kryptographie angewandt werden. Insbesondere benötigen Anwendungen, welche eine hohe Unvorhersagbarkeit nutzen, wie beispielsweise Sicherheitsanwendungen, eine hohe Zufälligkeit des Zufallszahlengenerators und wenn die Zufälligkeit einer Zufallszahl, welche durch einen Zufallszahlengenerator erzeugt wird, nicht ausreichend ist, ist eine niedrige Sicherheit vorgesehen. Demnach ist es wünschenswert, leicht und genau zu bestimmen, ob eine Zufallszahl, welche durch einen Zufallszahlengenerator erzeugt wird, eine ausreichende Zufälligkeit bei niedrigen Kosten hat.
  • KURZFASSUNG
  • Eine oder mehrere beispielhafte Ausführungsformen sehen eine Vorrichtung und ein Verfahren zum Testen eines Zufallszahlengenerators vor und sehen insbesondere eine Vorrichtung und ein Verfahren zum Testen einer Zufälligkeit einer Zufallszahl, welche durch einen Zufallszahlengenerator erzeugt wird, vor.
  • Gemäß einem Aspekt einer beispielhaften Ausführungsform ist eine Vorrichtung zum Testen eines Zufallszahlengenerators vorgesehen, welche eine Korrelationstestschaltung aufweist, welche konfiguriert ist, um eine erste Mehrzahl von Bitpaaren zu extrahieren, wovon jedes zwei Bits, welche voneinander durch einen ersten Abstand in einem Bitstrom, welcher durch den Zufallszahlengenerator erzeugt wird, beabstandet sind, um eine erste Summe von Differenzen zwischen jeweiligen zwei Bits der ersten Mehrzahl von Bitpaaren zu erlangen, um eine zweite Summe von Differenzen zwischen jeweiligen zwei Bits einer zweiten Mehrzahl von Bitpaaren zu erlangen, wobei die zweite Mehrzahl von Bitpaaren jeweils zwei Bits aufweist, welche voneinander durch einen zweiten Abstand, unterschiedlich von dem ersten Abstand, in dem Bitstrom beabstandet sind; und eine Zufälligkeitsbestimmungsschaltung, welche konfiguriert ist, um eine Zufälligkeit des Bitstroms basierend auf der ersten Summe und der zweiten Summe zu bestimmen.
  • Gemäß einem Aspekt einer anderen beispielhaften Ausführungsform ist eine Vorrichtung zum Testen eines Zufallszahlengenerators vorgesehen, welche ein M-Bit-Schieberegister aufweist, welches konfiguriert ist, um sequenziell N-Bits zu empfangen, welche durch den Zufallszahlengenerator erzeugt werden; eine Differenzoperationsschaltung, welche konfiguriert ist, um eine Differenz zwischen zwei Bits jedes einer Anzahl K von unterschiedlichen Bitpaaren in einer M-Bitsequenz, welche von dem M-Bit-Schieberegister ausgegeben wird, zu erlangen; eine Anzahl K von Akkumulatoren, welche jeweils mit Bits einer K-Bit-Ausgabe der Differenzoperationsschaltung verbunden sind; und eine Zufälligkeitsbestimmungsschaltung, welche konfiguriert ist, um eine Zufälligkeit der N-Bits zu bestimmen, basierend auf Ausgaben der Anzahl K von Akkumulatoren, wobei jedes von „K“, „M“ und „N“ eine ganze Zahl gleich oder größer als zwei ist.
  • Gemäß einem Aspekt noch einer anderen beispielhaften Ausführungsform ist ein Verfahren zum Testen eines Zufallszahlengenerators vorgesehen, welches ein Erlangen einer Differenz zwischen zwei Bits jedes einer Anzahl K von unterschiedlichen Bitpaaren in einer Bitsequenz, welche kontinuierliche M-Bits aufweist, aufweist, wobei die M-Bits inmitten von N-Bits sind, die durch den Zufallszahlengenerator erzeugt werden; ein Ansammeln einer Anzahl K von Differenzen jeweils entsprechend der Anzahl K von unterschiedlichen Bitpaaren in einer Mehrzahl von unterschiedlichen Bitsequenzen; und ein Bestimmen einer Zufälligkeit der N-Bits basierend auf einer akkumulierten Anzahl K von Differenzen, wobei jedes von „K“, „M“ und „N“ eine ganze Zahl gleich oder größer als 2 ist.
  • Gemäß einem Aspekt noch einer anderen beispielhaften Ausführungsform ist eine Vorrichtung zum Steuern eines Zufallszahlengenerators vorgesehen, welche den Zufallszahlengenerator aufweist, welcher konfiguriert ist, um einen Bitstrom zu erzeugen; eine Zufälligkeitstestvorrichtung, welche konfiguriert ist, um eine Differenz zwischen Bitwerten von zwei Bits jedes einer ersten Mehrzahl von Bitpaaren zu erlangen, welche unterschiedliche Breiten in einer Bitsequenz, welche in dem Bitstrom enthalten ist, haben, um akkumulierte Differenzen, welche den unterschiedlichen Breiten in einer Mehrzahl von unterschiedlichen Bitsequenzen entsprechen, zu erlangen, welche durch ein Verschieben des Bitstroms erlangt werden, und konfiguriert, um ein Ausgangssignal basierend auf einer Variation in den akkumulierten Differenzen zu erzeugen; und einen Controller, welcher konfiguriert ist, um den Zufallszahlengenerator basierend auf dem Ausgangssignal der Zufälligkeitstestvorrichtung zu steuern.
  • Gemäß einem Aspekt noch einer anderen beispielhaften Ausführungsform ist eine Vorrichtung zum Testen einer Zufallszahl vorgesehen, wobei die Vorrichtung einen Variationsdetektor aufweist, welcher konfiguriert ist, um eine Variation in einer Differenz zwischen Bitwerten von zwei Bits jedes einer ersten Mehrzahl von Bitpaaren zu erfassen, welche unterschiedliche Breiten in einer kontinuierlichen Bitsequenz haben, wobei die kontinuierliche Bitsequenz wenigstens einem Abschnitt von seriellen Zufallszahlen entspricht; und einen Komparator, welcher konfiguriert ist, um die Variation mit einem Referenzwert zu vergleichen, um eine Zufälligkeit der seriellen Zufallszahlen zu bestimmen.
  • Figurenliste
  • Die obigen und andere Aspekte werden durch ein Beschreiben von bestimmten beispielhaften Ausführungsformen unter Bezugnahme auf die beigefügten Zeichnungen offensichtlicher sei, in welchen:
    • 1 ein Blockschaltbild eines Systems ist, welches eine Zufälligkeitstestvorrichtung gemäß einer beispielhaften Ausführungsform aufweist;
    • 2 ein Beispiel einer Operation der Zufälligkeitstestvorrichtung der 1 gemäß einer beispielhaften Ausführungsform veranschaulicht;
    • 3 ein Blockschaltbild der Zufälligkeitstestvorrichtung der 1 gemäß einer beispielhaften Ausführungsform veranschaulicht;
    • 4 ein Beispiel einer Differenzoperationsschaltung und von Akkumulatoren der 3 gemäß einer beispielhaften Ausführungsform veranschaulicht;
    • 5 ein Blockschaltbild ist, welches ein Beispiel einer Zufälligkeitsbestimmungsschaltung der 3 gemäß einer beispielhaften Ausführungsform veranschaulicht;
    • 6 ein Flussdiagramm ist, welches eine Operation einer Zufälligkeitstestvorrichtung der 3 gemäß einer beispielhaften Ausführungsform veranschaulicht;
    • 7 ein Blockschaltbild einer Zufälligkeitstestvorrichtung gemäß einer beispielhaften Ausführungsform ist;
    • 8A bis 8C Blockschaltbilder sind, welche Beispiele einer Mono-Bit-Testschaltung der 7 gemäß beispielhaften Ausführungsformen zeigen;
    • 9A und 9B Blockschaltbilder sind, welche Beispiele einer Zufälligkeitsbestimmungsschaltung der 7 gemäß beispielhaften Ausführungsformen veranschaulichen;
    • 10A und 10B Blockschaltbilder sind, welche Beispiele der Zufälligkeitsbestimmungsschaltung der 7 gemäß beispielhaften Ausführungsformen veranschaulichen;
    • 11 ein Flussdiagramm ist, welches eine Operation der Zufälligkeitstestvorrichtung der 7 gemäß einer beispielhaften Ausführungsform veranschaulicht;
    • 12A und 12B Blockschaltbilder sind, welche Beispiele einer Zufälligkeitsbestimmungsschaltung gemäß beispielhaften Ausführungsformen veranschaulichen;
    • 13A und 13B Flussdiagramme sind, welche Beispiele von Operationen der Zufälligkeitsbestimmungsschaltungen der 12A und 12B gemäß beispielhaften Ausführungsformen veranschaulichen;
    • 14 ein Flussdiagramm ist, welches ein Zufälligkeitstestverfahren für einen Zufallszahlengenerator gemäß einer beispielhaften Ausführungsform veranschaulicht;
    • 15 ein Flussdiagramm ist, welches ein Zufälligkeitstestverfahren für einen Zufallszahlengenerator gemäß einer beispielhaften Ausführungsform veranschaulicht; und
    • 16 ein Flussdiagramm ist, welches ein Beispiel der Operation S560 der 15 gemäß einer beispielhaften Ausführungsform veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG
  • Wie es auf dem Gebiet erfinderischer Konzepte üblich ist, werden Ausführungsformen in Einheiten von funktionalen Blöcken, Einheiten und/oder Modulen beschrieben und in den Zeichnungen veranschaulicht. Fachleute werden anerkennen, dass diese Blöcke, Einheiten und/oder Module physikalisch durch elektronische (oder optische) Schaltungen wie beispielsweise Logikschaltungen, diskrete Komponenten, Mikroprozessoren, festverdrahtete Schaltungen, Speicherelemente, Verdrahtungsverbindungen und dergleichen implementiert sind, welche unter Verwendung von halbleiterbasierten Herstellungstechniken oder anderen Herstellungstechnologien gebildet werden können. In dem Fall dass die Blöcke, Einheiten und/oder Module durch Mikroprozessoren oder Ähnliches implementiert sind, können sie unter Verwendung von Software (beispielsweise Microcode) programmiert werden, um verschiedene Funktionen durchzuführen, welche hierin diskutiert werden, und können optional durch Firmware und/oder Software getrieben bzw. betrieben werden. Alternativ kann jeder Block, Einheit und/oder Modul durch gewidmete Hardware oder als eine Kombination von gewidmeter Hardware, um einige Funktionen durchzuführen und einen Prozessor (beispielsweise einen oder mehrere programmierte Mikroprozessoren und verbundene Schaltungen) implementiert sein, um andere Funktionen durchzuführen. Ebenso kann jeder Block, Einheit und/oder Modul der Ausführungsformen physikalisch in zwei oder mehr interagierende und diskrete Blöcke, Einheiten und/oder Module unterteilt werden, ohne vom Umfang des erfinderischen Konzepts abzuweichen. Ferner können die Blöcke, Einheiten und/oder Module der Ausführungsformen physikalisch in komplexere Blöcke, Einheiten und/oder Module kombiniert werden, ohne von dem Umfang der erfinderischen Konzepte abzuweichen.
  • 1 ist ein Blockschaltbild eines Systems (oder einer Vorrichtung) 5, welche eine Zufälligkeitstestvorrichtung 100 gemäß einer beispielhaften Ausführungsform aufweist, und 2 veranschaulicht ein Beispiel einer Operation der Zufälligkeitstestvorrichtung 100 in 1 gemäß einer beispielhaften Ausführungsform.
  • Bezugnehmend auf 1 kann das System 5 einen Zufallszahlengenerator 10, einen Controller 20 und die Zufälligkeitstestvorrichtung 100 aufweisen. Das System 5 kann eine integrierte Schaltung (IC=Integrated Circuit=Integrierte Schaltung) aufweisen, in welche der Zufallszahlengenerator 10, der Controller und die Zufälligkeitstestvorrichtung 100 allesamt integriert sind, und welche durch einen Halbleiterprozess hergestellt wird. Die Zufälligkeitstestvorrichtung 100 kann in das System 5 hinzugefügt werden und kann abnehmbar an dem Zufallszahlengenerator 10 und/oder dem Controller 20 angebracht werden. Obwohl in 1 nicht gezeigt, kann das System 5 ferner einen Funktionsblock aufweisen, welcher einen Bitstrom STR empfängt, welcher durch den Zufallszahlengenerator 10 erzeugt wird, und eine Operation durch ein Nutzen des Bitstroms STR durchführt.
  • In Antwort auf ein Steuersignal CTRL und ein Taktsignal CLK, welche von dem Controller 20 empfangen werden, kann der Zufallszahlengenerator 10 den Bitstrom STR erzeugen, so dass jedes von Bits einen Wert von „0“ oder „1“ in einem unregelmäßigen Muster hat. Beispielsweise kann der Zufallszahlengenerator 10 die Erzeugung des Bitstroms STR gemäß dem Steuersignal CTRL starten oder stoppen. Ebenso kann der Zufallszahlengenerator 10 den Bitstrom STR erzeugen, so dass die Bits des Bitstroms STR mit dem Taktsignal CLK synchronisiert sind.
  • Der Zufallszahlengenerator 10 kann in verschiedenen Verfahren implementiert werden. Beispielsweise kann der Zufallszahlengenerator einen Ringoszillator aufweisen. Der Zufallszahlengenerator 10 kann eine Schwankung bzw. einen Jitter eines oszillierenden Signals abtasten, welches durch den Ringoszillator gemäß dem Taktsignal CLK erzeugt wird, um den Bitstrom STR zu erzeugen.
  • Der Controller 20 kann das Steuersignal CTRL erzeugen, um den Zufallszahlengenerator 10 zu steuern und kann das Taktsignal CLK erzeugen, um das Taktsignal CLK dem Zufallszahlengenerator 10 zuzuführen. Der Controller 20 kann den Zufallszahlengenerator 10 initialisieren oder kann eine Operation des Zufallszahlengenerators 10 durch ein Verwenden des Steuersignals CTRL wiederstarten oder stoppen. Beispielsweise kann der Controller 20 ein Ergebnissignal RES, welches Informationen über die Zufälligkeit des Zufallszahlengenerators 10 anzeigt, von der Zufälligkeitstestvorrichtung 100 empfangen und kann das Steuersignal CTRL und/oder das Taktsignal CLK, welches dem Zufallszahlengenerator 10 zuzuführen ist, basierend auf dem Ergebnissignal RES erzeugen. Das heißt, dass in Antwort auf das Ergebnissignals RES, welches die Unzulänglichkeit der Zufälligkeit des Zufallszahlengenerators 10 anzeigt, der Controller 20 das Steuersignal CTRL und/oder das Taktsignal CLK erzeugen kann, um den Zufallszahlengenerator 10 zu initialisieren oder die Operation des Zufallszahlengenerators 10 zu ändern.
  • Der Controller 20 kann die Zufälligkeitstestvorrichtung 100 ein Einstellungssignal CFG zuführen. Beispielsweise kann, wie in 1 veranschaulicht ist, der Controller 20 das Einstellungssignal CFG erzeugen, um die Zufälligkeitstestvorrichtung 100 basierend auf einer Charakteristik des Zufallszahlengenerators 10 einzustellen und kann das Einstellungssignal CFG für die Zufälligkeitstestvorrichtung 100 vorsehen. Die Zufälligkeitstestvorrichtung 100 kann den Bitstrom STR basierend auf dem Einstellungssignal CFG testen. Wie später beschrieben wird, kann der Controller 20 jeden von Referenzwerten (beispielsweise einen ersten bis vierten Referenzwert der 16), welche auf die Zufälligkeitstestvorrichtung 100 angewandt werden, basierend auf dem Einstellungssignal CFG einstellen. Das Einstellungssignal CFG kann basierend auf einer erwünschten Entropie des Bitstroms STR erzeugt werden, welcher durch den Zufallszahlengenerator 10 erzeugt wird. Demnach können die Referenzwerte basierend auf der erwünschten Entropie des Bitstroms STR bestimmt werden, welcher durch den Zufallszahlengenerator 10 gemäß der Steuerung durch den Controller 20 erzeugt wird.
  • Die Zufälligkeitstestvorrichtung 100 kann den Bitstrom STR, welcher durch den Zufallszahlengenerator 10 erzeugt wird, und das Taktsignal CLK und das Einstellungssignal CFG, welche durch den Controller 20 erzeugt werden, empfangen, um das Ergebnissignal RES zu erzeugen und kann das Ergebnissignal RES für den Controller 20 vorsehen. Wie obenstehend beschrieben ist, kann das Ergebnissignal RES Informationen über die Zufälligkeit des Bitstroms STR anzeigen. Beispielsweise kann ein aktiviertes Ergebnissignal RES PASS bzw. ERREICHT anzeigen, welches anzeigt, dass der Bitstrom STR zufällig ist (oder ausreichend zufällig), und ein deaktiviertes Ergebnissignal RES kann FAIL bzw. VERFEHLT anzeigen, welches anzeigt, dass der Bitstrom STR nicht zufällig (oder nicht ausreichend zufällig ist).
  • Gemäß einer beispielhaften Ausführungsform kann die Zufälligkeitstestvorrichtung 100 eine Mehrzahl von Bitpaaren (beispielsweise PX, PX-1, ... P1), welche dieselbe Breite in dem Bitstrom STR haben, extrahieren. Die Breite jedes der Bitpaare kann einen Abstand zwischen zwei Bits eines entsprechenden Bitpaares in dem Bitstrom STR bezeichnen, und die Mehrzahl von Bitpaaren (beispielsweise PX, PX-1, ... und P1), welche dieselbe Breite haben, können extrahiert werden (beispielsweise aufweisend zwei Bits, welche voneinander durch denselben Abstand beabstandet sind). Die Zufälligkeitstestvorrichtung 100 kann Differenzen zwischen zwei Bits des jeweiligen Bitpaares (beispielsweise PX, PX-1, ... und P1) summieren, um eine Summe davon zu erzeugen (beispielsweise SUM1). Auf diese Art und Weise kann die Zufälligkeitstestvorrichtung 100 eine Mehrzahl von Summen SUM1, SUM2, ... und SUMK jeweils entsprechend zu einer Mehrzahl von unterschiedlichen Breiten in dem Bitstrom STR erzeugen und kann die Zufälligkeit des Bitstroms STR basierend auf der Mehrzahl von Summen SUM1, SUM2, ... und SUMK bestimmen. Durch ein Nutzen der Mehrzahl von Summen SUM1, SUM2, ... und SUMK kann die Zufälligkeit des Bitstroms STR basierend auf einer relativ geringen Anzahl von Ressourcen genau bestimmt werden. Eine Operation zum Erzeugen der Mehrzahl von Summen SUM1, SUM2, ... und SUMK durch die Zufälligkeitstestvorrichtung 100 wird im Detail unter Bezugnahme auf 2 beschrieben werden.
  • Gemäß einer beispielhaften Ausführungsform kann die Zufälligkeitstestvorrichtung 100 die Zufälligkeit des Bitstroms STR basierend auf einer Variation der Mehrzahl von Summen SUM1, SUM2, ... und SUMK bestimmen. Beispielsweise kann die Zufälligkeitstestvorrichtung 100 eine Variation VAR, welche einer Differenz zwischen einem maximalen Wert MAX und einem minimalen Wert MIN der Mehrzahl von Summen SUM1, SUM2, ... und SUMK entspricht, erzeugen. Durch ein Verwenden der Variation VAR kann die Zufälligkeitstestvorrichtung 100 genau die Zufälligkeit des Bitstroms STR bestimmen. Beispielsweise kann, falls die Variation VAR, die groß ist, als eine Entropie ausgelegt werden, welche in dem Bitstrom STR klein ist, und demnach kann die Zufälligkeitstestvorrichtung 100 die Variation VAR mit einem vorbestimmen Referenzwert vergleichen, um die Zufälligkeit des Bitstroms STR zu bestimmen.
  • Bezugnehmend auf 2 kann der Bitstrom STR, welcher durch den Zufallszahlengenerator 10 erzeugt wird, acht Bits b1 bis b8 aufweisen. Die acht Bits b1 bis b8 des Bitstroms STR können nacheinanderfolgend der Zufälligkeitstestvorrichtung 100 in der Reihenfolge eines ersten Bit (b1) oder eines least significant bit bzw. am wenigsten signifikanten Bit (LSB) bis einem achten Bit b8 (oder einem most significant bit bzw. einem signifikantesten Bit (MSB)) eingegeben werden. In dem Beispiel der 2 kann die Zufälligkeitstestvorrichtung 100 zwei Summen SUM1 und SUM2, welche jeweils zwei unterschiedlichen Breiten entsprechen, erzeugen.
  • Wie in 2 veranschaulicht ist, kann die Zufälligkeitstestvorrichtung 100 Differenzen zwischen zwei Bits einer Mehrzahl von Bitpaaren summieren, welche eine erste Breite D1 haben, um eine erste Summe SUM1 zu erzeugen. Das heißt, dass die Zufälligkeitstestvorrichtung 100 fünf Bitpaare <b1, b2>, <b2, b3>, <b3, b4>, <b4, b5>, und <b5, b6> extrahieren kann, wo ein Abstand zwischen zwei Bits 1 (oder ein Bit) ist, und Differenzen zwischen zwei Bits der fünf Bitpaare <b1, b2>, <b2, b3>, <b3, b4>, <b4, b5>, und <b5, b6> summieren kann, um die erste Summe SUM1 zu erzeugen. Ähnlich kann die Zufälligkeitstestvorrichtung 100 Differenzen zwischen zwei Bits einer Mehrzahl von Bitpaaren summieren, welche eine zweite Breite D2 haben, um eine zweite Summe SUM2 zu erzeugen. Das heißt, dass die Zufälligkeitstestvorrichtung 100 fünf Bitpaare <b1, b4>, <b2, b5>, <b3, b6>, <b4, b7>, und <b5, b8> extrahieren kann, wo ein Abstand zwischen zwei Bits 3 (oder drei Bits) ist, und Differenzen zwischen zwei Bits der fünf Bitpaare <b1, b4>, <b2, b5>, <b3, b6>, <b4, b7>, und <b5, b8> summieren kann, um die zweite Summe SUM2 zu erzeugen.
  • Bezugnehmend auf 2 kann auf eine Bitsequenz, welche Bitpaare aufweist, welche unterschiedliche Breiten haben, als ein Fenster Bezug genommen werden. Beispielsweise kann, wie in 2 veranschaulicht ist, ein erstes Fenster des Bitstroms STR ein Bitpaar <b1, b2> aufweisen, welches eine erste Breite D1 hat, und ein Bitpaar <b1, b4>, welches eine zweite Breite D2 hat. Ähnlich kann ein zweites Fenster ein Bitpaar <b1, b3> aufweisen, welches eine erste Breite D1 hat, und ein Bitpaar <b1, b5>, welches eine zweite Breite D2 hat, und wie in 2 veranschaulicht ist, kann ein fünftes Fenster ein Bitpaar <b5, b6> und ein Bitpaar <b5, b8> aufweisen. Demnach kann in der Ausführungsform der 2 die Anzahl von Fenstern fünf sein, was mit der Anzahl von Bitpaaren übereinstimmen kann, welche dieselbe Breite haben. Die Anzahl von Fenstern kann basierend auf einer Länge des Bitstroms STR und einer Länge eines Fensters bestimmt werden, und beispielsweise kann die Anzahl von Fenstern (beispielsweise „fünf“ in 2) ein Wert sein, welcher durch ein Addieren von eins zu einer Differenz zwischen der Länge (beispielsweise „acht“ in 2) des Bitstroms STR und der Länge (beispielsweise „vier“ in 2) des Fensters erhalten werden kann. Die Länge (beispielsweise „vier“ in 2) des Fensters kann als ein Wert bestimmt werden, welcher durch ein Addieren von eins zu einer maximalen Breite (beispielsweise „drei“ in 2) eines Bitpaars erlangt wird, welches durch die Zufälligkeitstestvorrichtung 100 extrahiert wird, und demnach kann die Anzahl von Bitpaaren (beispielsweise die Anzahl von Fenstern), welche dieselbe Breite haben, ebenso basierend auf einer maximalen Breite von Bitpaaren bestimmt werden. Das heißt, dass, wenn der Bitstrom STR N Bits aufweist und eine Länge eines Fensters M ist, die Anzahl von Fenstern „N-M+1“ sein kann, und eine maximale Breite von Bitpaaren auf „M-1“ beschränkt sein kann. Hierin können „K“, „M“ und „N“ jeweils eine ganze Zahl gleich oder mehr als zwei sein.
  • Obwohl 2 eine Operation zum Erzeugen der Summen SUM1 und SUM2, die jeweils den zwei unterschiedlichen Breiten D1 und D2 entsprechen, durch die Zufälligkeitstestvorrichtung 100 wie untenstehend beschrieben veranschaulicht, kann die Zufälligkeitstestvorrichtung 100 Summen erzeugen, welche jeweils drei oder mehr unterschiedlichen Breiten entsprechen. Ebenso sind in 2 die zwei Breiten D1 und D2 lediglich ein Beispiel und es kann verstanden werden, dass Bitpaare, welche Breiten anders als 1 und 3 haben, extrahiert werden können.
  • 3 veranschaulicht ein Blockschaltbild der Zufälligkeitstestvorrichtung 100 der 1 gemäß einer beispielhaften Ausführungsform.
  • Wie obenstehend unter Bezugnahme auf die 1 und 2 beschrieben ist, kann die Zufälligkeitstestvorrichtung 100 Differenzen zwischen zwei Bits einer Mehrzahl von Bitpaaren summieren, welche dieselbe Breite haben, welche von dem Bitstrom STR extrahiert werden, und kann eine Mehrzahl von Summen erzeugen, welche einer Mehrzahl von unterschiedlichen Breiten entsprechen. 3 veranschaulicht ein Beispiel, in dem der Bitstrom STR N Bits aufweist, eine Länge eines Fensters M ist und Bitpaare, welche einer Anzahl K von unterschiedlichen Breiten entsprechen, extrahiert werden. Wie in 3 veranschaulicht ist, kann die Zufälligkeitstestvorrichtung 100 eine Korrelationstestschaltung 120 und eine Zufälligkeitsbestimmungsschaltung 160 aufweisen.
  • Die Korrelationstestschaltung 120 kann das Taktsignal CLK und den Bitstrom STR, welcher die N Bits aufweist, empfangen, um die Anzahl K von Summen SUM1, SUM2, ... und SUMK zu erzeugen. Wie obenstehend unter Bezugnahme auf 1 beschrieben ist, kann jedes der Bits des Bitstroms STR mit dem Taktsignal CLK durch den Zufallszahlengenerator der 1 synchronisiert werden. Wie in 3 veranschaulicht ist, kann die Korrelationstestschaltung 120 ein Schieberegister 122, eine Differenzoperationsschaltung 124 und eine Mehrzahl von Akkumulatoren 126 aufweisen.
  • Das Schieberegister 122 kann den Bitstrom STR eins um eins in Synchronisation mit dem Taktsignal CLK verschieben, um eine Bitsequenz SEQ auszugeben, welche M Bits aufweist. Das heißt, dass in 3 das Schieberegister 122 ein M-Bit-Schieberegister sein kann. Bezugnehmend auf 3 zusammen mit 2 kann die Bitsequenz SEQ, welche von dem Schieberegister 122 ausgegeben wird, einem Fenster entsprechen. Das heißt, dass das Schieberegister 122 sequenziell eine Anzahl „N-K+1“ von unterschiedlichen Bitsequenzen SEQ aus dem Bitstrom STR in Synchronisation mit dem Taktsignal CLK ausgeben kann.
  • Die Differenzoperationsschaltung 124 kann eine Differenz zwischen zwei Bits jeder der Anzahl K von unterschiedlichen Bitpaaren in den Bitsequenzen SEQ berechnen, welche von dem Schieberegister 122 ausgegeben werden, um eine Anzahl K von Differenzen DIFF1, DIFF2, ... und DIFFK auszugeben. Beispielsweise kann die Differenzoperationsschaltung 124 eine Anzahl K von Differenzberechnungsoperationen parallel durchführen, um die K Differenzen DIFF1, DIFF2, ... und DIFFK zu erzeugen und/oder kann eine Anzahl geringer als K von Differenzberechnungsoperationen eine Mehrzahl von Malen durchführen, um die K Differenzen DIFF1, DIFF2, ... und DIFFK zu erzeugen.
  • Die Anzahl K von unterschiedlichen Bitpaaren, welche der Differenzoperationsschaltung 124 zugeführt werden, kann auf verschiedene Art und Weise bestimmt werden. Beispielsweise kann, wie in 3 veranschaulicht ist, jedes der K unterschiedlichen Bitpaare ein erstes Bit (oder ein LSB), nämlich „SEQ [1]“ der Bitsequenz SEQ aufweisen. Einige der Bitpaare, welche in 3 veranschaulicht sind, sind lediglich ein Beispiel, und es kann verstanden werden, dass eine Mehrzahl von Bitpaaren, welche unterschiedliche Breiten haben, der Differenzoperationsschaltung 124 zugeführt werden können.
  • Die Akkumulatoren 126 können jede der K Differenzen DIFF1, DIFF2, ... und DIFFK, welche durch die Differenzoperationsschaltung 124 erzeugt werden, ansammeln, um die Anzahl K von Summen SUM1, SUM2, ... und SUMK zu erzeugen. Die Akkumulatoren 126 können jede der K Differenzen DIFF1, DIFF2, ... und DIFFK durch die Anzahl der Bitsequenzen SEQ, welche von dem Schieberegister 122 ausgegeben werden, ansammeln, und demnach kann jede der K Differenzen DIFF1, DIFF2, ... und DIFFK einen Wert bezeichnen, welcher durch ein Summieren von Differenzen zwischen zwei Bits von Bitpaaren erlangt wird, welche dieselbe Breite in dem Bitstrom STR haben. Beispielsweise können die Akkumulatoren 126 eine Anzahl von K Akkumulatoren aufweisen, welche eine Anzahl K von Akkumulieroperationen parallel durchführen.
  • Die Zufälligkeitsbestimmungsschaltung 160 kann die Anzahl K von Summen SUM1, SUM2, ... und SUMK von der Korrelationstestschaltung 120 empfangen und kann das Ergebnissignal RES basierend auf der Anzahl K von Summen SUM1, SUM2, ... und SUMK ausgeben. Das Ergebnissignal RES kann die Informationen über die Zufälligkeit des Bitstroms STR anzeigen. Beispielsweise kann, wenn der Bitstrom STR als ausreichend zufällig bestimmt ist, die Zufälligkeitsbestimmungsschaltung 160 das aktivierte Ergebnissignal RES ausgeben, welches PASS anzeigt, und wenn der Bitstrom STR als nichtausreichend zufällig bestimmt wird, kann die Zufälligkeitsbestimmungsschaltung 160 das deaktivierte Ergebnissignal RES ausgeben, welches FAIL anzeigt. Details der Zufälligkeitsbestimmungsschaltung 160 werden untenstehend unter Bezugnahme auf 5 beschrieben werden.
  • 4 veranschaulicht Beispiele 124' und 126' der Differenzoperationsschaltung 124 und der Akkumulatoren 126 der 3 gemäß einer beispielhaften Ausführungsform.
  • Wie unter Bezugnahme auf 3 beschrieben ist, kann die Differenzoperationsschaltung 124' eine Anzahl K von Bitpaaren einer Bitsequenz SEQ empfangen, welche von dem Schieberegister 122 der 3 ausgegeben wird, und kann eine arithmetische Operation auf Differenzen zwischen den K Bitpaaren durchführen, um eine Anzahl K von Differenzen DIFF1, DIFF2, ... und DIFFK zu erzeugen. Gemäß einer beispielhaften Ausführungsform kann, wie in 4 veranschaulicht ist, die Differenzoperationsschaltung 124' eine Anzahl K von XOR-Gates bzw. XOR-Gattern 124_1, 124_2, ... 124_K aufweisen. Die K XOR-Gatter 124_1 bis 124_K können jeweils die K Bitpaare empfangen, um die K Differenzen DIFF1, DIFF2, ... und DIFFK auszugeben. Beispielsweise kann ein erstes XOR-Gatter 124_1 ein Bitpaar <SEQ [1], SEQ [2]> empfangen, um eine Differenz DIFF1 zwischen zwei Bits SEQ [1] und SEQ [2] auszugeben. Das heißt, dass, wenn alle der zwei Bits SEQ [1] und SEQ [2] gleich „null“ oder „eins“ sind, die Differenz DIFF1 „null“ sein kann, und wenn die zwei Bits SEQ [1] und SEQ [2] sich unterscheiden, die Differenz DIFF1 „eins“ sein kann.
  • Wie obenstehend unter Bezugnahme auf 3 beschrieben ist, können die Akkumulatoren 126' jede der K Differenzen DIFF1, DIFF2, ... und DIFFK ansammeln, um die Anzahl K von Summen SUM1, SUM2 ... und SUMK zu erzeugen. Gemäß einer beispielhaften Ausführungsform können, wie in 4 veranschaulicht ist, die Akkumulatoren 126' eine Anzahl K von Akkumulatoren 126_1, 126_2, ... 126_K aufweisen. Die K Akkumulatoren 126_1 bis 126_K können jede der K Differenzen DIFF1, DIFF2, ... und DIFFK empfangen, um die Anzahl K von Summen SUM1, SUM2 ... und SUMK auszugeben. Wie obenstehend beschrieben ist, kann, da die Akkumulatoren 126' eine Akkumulieroperation „N-M+1“-mal durchführen, jede der Anzahl K von Summen SUM1, SUM2, ... und SUMK eine größere Anzahl von Bits als „log2 (N-M+1)“ aufweisen, und wenn L eine ganze Zahl größer als „log2 (N-M+1)“ ist, kann jeder der K Akkumulatoren 126_1 bis 126_K einem L-Bit-Akkumulator entsprechen.
  • 5 ist ein Blockschaltbild, welches ein Beispiel der Zufälligkeitsbestimmungsschaltung 160 der 3 gemäß einer beispielhaften Ausführungsform veranschaulicht.
  • Wie obenstehend unter Bezugnahme auf 3 beschrieben ist, kann eine Zufälligkeitsbestimmungsschaltung 160' eine Anzahl K von Summen SUM1, SUM2, ... und SUMK von der Korrelationsschaltung 120 der 3 empfangen und kann ein Ergebnissignal RES basierend auf der Anzahl K von Summen SUM1, SUM2, ..., SUMK-1 und SUMK ausgeben. Wie in 5 veranschaulicht ist, kann die Zufälligkeitsbestimmungsschaltung 160', einen Variationsdetektor 161 und einen Komparator 162 aufweisen.
  • Der Variationsdetektor 161 kann eine Variation der Anzahl K von Summen SUM1, SUM2, ... und SUMK (oder SUM) erfassen, um eine Variation VAR zu erzeugen. Beispielsweise kann, wie in 5 veranschaulicht ist, der Variationsdetektor 161 einen Maximums-/Minimums-Extraktor 161_2 und einen Subtrahierer 164_2 haben. Der Maximums-/Minimums-Extraktor 161_2 kann einen maximalen Wert MAX und einen minimalen Wert MIN unter der Anzahl K von Summen SUM1, SUM2, ... und SUMK extrahieren und ausgeben, und der Subtrahierer 164_2 kann den minimalen Wert MIN von dem maximalen Wert MAX subtrahieren, um die Variation VAR zu erzeugen.
  • Der Komparator 162 kann die Variation VAR, welche durch den Variationsdetektor 161 erzeugt wird, mit einem ersten Referenzwert REF1 vergleichen. Der erste Referenzwert REF1 kann, wie in 5 veranschaulicht ist, von außerhalb der Zufälligkeitsbestimmungsschaltung 160' empfangen werden, oder im Gegensatz zu der Veranschaulichung der 5 kann es ein Wert sein, welcher in der Zufälligkeitsbestimmungsschaltung 160' gespeichert ist. Beispielsweise kann der erste Referenzwert REF1 basierend auf dem Einstellsignal CFG bestimmt werden, welches der Zufälligkeitstestvorrichtung 100 durch den Controller 20 der 1 zugeführt wird. Wenn die Variation VAR geringer ist als der erste Referenzwert REF1, kann der Komparator 162 ein deaktiviertes Ergebnissignal RES ausgeben, und andernfalls kann der Komparator 162 ein aktiviertes Ergebnissignal RES ausgeben. Das heißt, dass, wenn die Variation VAR (beispielsweise eine Differenz zwischen dem maximalen Wert MAX und dem minimalen Wert MIN) der Anzahl K von Summen SUM1, SUM2, ... und SUMK größer ist als der erste Referenzwert REF1, die Zufälligkeitsbestimmungsschaltung 160' das deaktivierte Ergebnissignal RES ausgeben kann, welches FAIL anzeigt, und andernfalls die Zufälligkeitsbestimmungsschaltung 160' das aktivierte Ergebnissignal RES, welches PASS anzeigt, ausgeben kann.
  • Wie obenstehend beschrieben ist, kann die Zufälligkeitsbestimmungsschaltung 160' die Zufälligkeit des Bitstroms STR der 3 basierend auf der Variation VAR der Anzahl K von Summen SUM1, SUM2, ... und SUMK, die jeweils einer Anzahl K von unterschiedlichen Breiten entsprechen, genau bestimmen. Das heißt, dass es, wenn die Variation VAR der Anzahl K von Summen SUM1, SUM2, ... und SUMK ausreichend groß ist, als eine Entropie ausgelegt werden kann, welche in dem Bitstrom STR der 3 klein ist. Beispielsweise kann, basierend auf einer Korrelation zwischen zwei Bits jedes von Bitpaaren, wobei eine Breite in den Bitstrom STR 4 ist, wenn eine zweite Summe SUM2, welche von dem zweiten Akkumulator 126_2 der 4 ausgegeben wird, geringer ist als eine erste und eine K-te Summe SUM1, SUM2, ... und SUMK, die jeweils von dem ersten und K-ten Akkumulator 126_1 und 126_K der 4 ausgegeben werden, und eine Differenz (beispielsweise die Variation VAR) zwischen dem maximalen Wert MAX und dem minimalen Wert MIN größer ist als der erste Referenzwert REF1, der Bitstrom STR als eine niedrige Entropie habend bestimmt werden.
  • 6 ist ein Flussdiagramm, welches eine Operation der Zufälligkeitstestvorrichtung 100 der 3 gemäß einer beispielhaften Ausführungsform veranschaulicht.
  • In einer beispielhaften Ausführungsform kann die Operation S120 der 6 durch die Korrelationstestschaltung 120 der 3 durchgeführt werden, und Operation S160 der 6 kann durch die Zufälligkeitsbestimmungsschaltung 160 der 3 durchgeführt werden. Wie in 6 veranschaulicht ist, kann Operation S120 eine Mehrzahl von Operationen (beispielsweise S121 bis S126) aufweisen, und Operation S160 kann eine Mehrzahl von Operationen (beispielsweise S161 bis S164) aufweisen. Hierin nachstehend wird 6 unter Bezugnahme auf 3 beschrieben werden.
  • In Operation S121 kann eine Initialisierungsoperation durchgeführt werden. Beispielsweise kann, wie in 6 veranschaulicht ist, eine Operation zum Zurücksetzen (beispielsweise Setzen auf null) der Anzahl K von Summen SUM1, SUM2, ... und SUMK und ein Setzen einer Variable „i“ auf eins durchgeführt werden.
  • In Operation 122 kann eine Operation des Erlangens eines 1-Bit bi eines Bitstroms durchgeführt werden. Beispielsweise kann die Zufälligkeitstestvorrichtung 100 das 1-Bit bi des Bitstroms STR an jeder ansteigenden (oder abfallenden) Flanke des Taktsignals CLK latchen.
  • In Operation S123 kann eine Operation zum Bestimmen, ob die Variable „i“ gleich oder mehr als „M“ ist, durchgeführt werden. „M“ kann eine Länge des Fensters der 2 sein, und es kann bestimmt werden, ob ein erstes Fenster des Bitstroms STR mit kontinuierlichen Bits des Bitstroms STR gefüllt ist. In anderen Worten gesagt kann „M“ die Anzahl von Bits der Bitsequenz SEQ sein, welche von dem Schieberegister 122 der 3 ausgegeben wird, und es kann bestimmt werden, ob das Schieberegister 122 mit kontinuierlichen Bits des Bitstroms STR gefüllt ist. Wenn die Variable „i“ geringer ist als „M“ (beispielsweise wenn das erste Fenster der 2 nicht mit den kontinuierlichen Bits des Bitstroms STR gefüllt ist), kann eine Operation zum Erhöhen der Variable „i“ um eins in Operation S124 durchgeführt werden, und eine Operation zum Erlangen eines neuen 1-Bits des Bitstroms STR kann in Operation S122 durchgeführt werden. Andererseits kann, wenn die Variable „i“ gleich zu oder mehr als „M“ ist, eine Bitsequenz SEQ, welche eine Anzahl M von Bits bi, ... und bi-(M-1) aufweist,extrahiert werden.
  • In Operation S125 kann eine Operation zum Akkumulieren einer Differenz zwischen zwei Bits jedes der Anzahl K von Bitpaaren in der Bitsequenz SEQ durchgeführt werden. Beispielsweise kann, wie in 6 veranschaulicht ist, eine erste Summe SUM1 durch ein Akkumulieren einer Differenz zwischen zwei Bits (bi-(M-1), bi-(M-2)) eines Bitpaares <bi-(M-1), bi-(M-2)> aktualisiert werden. In dieser Art und Weise kann die Anzahl K von Summen SUM1, SUM2, ... und SUMK aktualisiert werden.
  • In Operation S126 kann eine Operation zum Bestimmen, ob die Variable „i“ mit „N“ übereinstimmt, durchgeführt werden. Das heißt, es kann bestimmt werden, ob alle Bits des Bitstroms STR vollständig erlangt sind. Wenn die Variable „i“ nicht mit „N“ übereinstimmt (es sind nicht alle Bits des Bitstroms STR erlangt), kann eine Operation zum Erhöhen der Variable „i“ um eins in Operation S124 durchgeführt werden, und dann kann eine Operation zum Erlangen eines neuen 1-Bits des Bitstroms in Operation S122 durchgeführt werden. Andererseits kann, wenn die Variable „i“ mit „N“ übereinstimmt (beispielsweise sind alle Bits des Bitstroms STR erlangt), die Anzahl K von Summen SUM1, SUM2, ... und SUMK ausgegeben werden.
  • Nachfolgend kann eine Operation zum Subtrahieren eines minimalen Wertes der Anzahl K von Summen SUM1, SUM2, ... und SUMK von einem maximalen Wert der Anzahl K von Summen SUM1, SUM2, ... und SUMK in Operation S161 durchgeführt werden. Das heißt, dass eine Differenz zwischen dem maximalen Wert und dem minimalen Wert der Anzahl K von Summen SUM1, SUM2, ... und SUMK als eine Variation VAR erzeugt werden kann.
  • In Operation S162 kann eine Operation zum Vergleichen der Variation VAR mit einem ersten Referenzwert REF1 durchgeführt werden. Wenn die Variation VAR größer ist als der erste Referenzwert REF1, kann ein Ergebnissignal RES FAIL in Operation S123 anzeigen. Andererseits kann, wenn die Variation VAR gleich oder geringer als der erste Referenzwert REF1 ist, das Ergebnissignal RES PASS in Operation S164 anzeigen.
  • 7 ist ein Blockschaltbild einer Zufälligkeitstestvorrichtung 200 gemäß einer beispielhaften Ausführungsform.
  • Ähnlich zu der Zufälligkeitstestvorrichtung 100 der 1 kann die Zufälligkeitstestvorrichtung 200 der 7 einen Bitstrom STR und ein Taktsignal CLK empfangen, um ein Ergebnissignal RES auszugeben. Wie in 7 veranschaulicht ist, kann die Zufälligkeitstestvorrichtung 200 eine Korrelationstestschaltung 220, eine Mono-Bit-Testschaltung 240 und eine Zufälligkeitsbestimmungsschaltung 260 aufweisen.
  • In Vergleich mit der Zufälligkeitstestvorrichtung 100 der 3 kann die Zufälligkeitstestvorrichtung 200 der 7 ferner eine Mono-Bit-Testschaltung 240 aufweisen, welche Zählsignale CNTS erzeugt. Ähnlich zu der obigen Beschreibung, welche unter Bezugnahme auf 3 getätigt ist, kann die Korrelationstestschaltung 220 eine Mehrzahl von Summen SUM aus einem Bitstrom STR erzeugen, und die Zufälligkeitsbestimmungsschaltung 260 kann das Ergebnissignal RES basierend auf der Mehrzahl von Summen SUM und den Zählsignalen CNTS erzeugen.
  • Die Mono-Bit-Testschaltung 240 kann Bits zählen, welche denselben Bitwert in dem Bitstrom STR haben, um die Zählsignale CNTS zu erzeugen. Die Zufälligkeitsbestimmungsschaltung 260 kann ein Verhältnis von „eins“ und/oder ein Verhältnis von „null“ in dem Bitstrom STR basierend auf den Zählsignalen CNTS erfassen und kann eine Zufälligkeit des Bitstroms STR basierend auf dem erfassten Verhältnis bestimmen. Details der Mono-Bit-Testschaltung 240 werden untenstehend unter Bezugnahme auf die 8A bis 8C beschrieben werden und Details der Zufälligkeitsbestimmungsschaltung 260 werden untenstehend unter Bezugnahme auf die 9A, 9B, 10A und 10B beschrieben werden.
  • Die 8A bis 8C sind Blockschaltbilder, welche Beispiele 240a bis 240c der Mono-Bit-Testschaltung 240 der 7 gemäß beispielhaften Ausführungsformen veranschaulichen. Wie obenstehend unter Bezugnahme auf 7 beschrieben ist, kann die Mono-Bit-Testschaltung 240a, 240b oder 204c Bits, welche denselben Bitwert in einem Bitstrom STR haben, zählen, um Zählsignale CNTSa, CNTSb oder CNTSc zu erzeugen. Wie obenstehend unter Bezugnahme auf 1 beschrieben ist, können Bits des Bitstroms STR mit einem Taktsignal CLK synchronisiert werden, und die Mono-Bit-Testschaltung 240a, 240b oder 240c kann Bits, welche denselben Bitwert in dem Bitstrom STR haben, in Synchronisation mit dem Taktsignal CLK zählen.
  • Wenn die Anzahl von Bits, welche denselben Bitwert in dem Bitstrom STR haben, geringer ist als eine vorbestimmte Anzahl (beispielsweise ein zweiter Referenzwert REF2 der 9A), kann eine Entropie des Bitstroms STR als klein ausgelegt werden. Demnach können die Mono-Bit-Testschaltungen 240a bis 240c die Anzahl von Bits zählen, welche denselben Bitwert in dem Bitstrom STR haben, wodurch die Zufälligkeit des Bitstroms STR getestet wird.
  • Bezugnehmend auf 8A kann die Mono-Bit-Testschaltung 240a einen ersten Zähler 241a, einen zweite Zähler 242a und einen Inverter 245a aufweisen. Wie in 8A veranschaulicht ist, kann der erste Zähler 241 den Bitstrom STR empfangen, und der zweite Zähler 242a kann einen Bitstrom /STR empfangen, welcher durch eine Inversion durch den Inverter 245a erlangt wird. Demnach kann der erste Zähler 241a ein Bit, welches einen Bitwert „eins“ hat, in dem Bitstrom STR in Synchronisation mit dem Taktsignal CLK zählen, um ein erstes Zählsignal CNT1 auszugeben. Ebenso kann der zweite Zähler 242a ein Bit, welches einen Bitwert „null“ hat, in dem Bitstrom STR in Synchronisation mit dem Taktsignal CLK zählen, um ein zweites Zählsignal CNT2 auszugeben. Eine Summe eines Werts, welcher durch das erste Zählsignal CNT1 angezeigt wird, welches von dem ersten Zähler 241a ausgegeben wird, und ein Wert, welcher durch das zweite Zählsignal CNT2 angezeigt wird, welches von dem zweiten Zähler 242a ausgegeben wird, kann mit der Anzahl von Bits des Bitstroms STR übereinstimmen.
  • Bezugnehmend auf 8B kann die Mono-Bit-Testschaltung 240b einen ersten Zähler 241b, einen zweiten Zähler 242b, einen dritten Zähler 243b und einen Inverter 245b aufweisen. Wie in 8B veranschaulicht ist, kann der erste Zähler 241b einen Bitstrom STR empfangen, der zweite Zähler 242b kann einen Bitstrom /STR empfangen, welcher durch eine Inversion durch den Inverter 245b erlangt wird, und der dritte Zähler 243b kann „eins“ empfangen. Demnach kann der erste Zähler 241b ein Bit, welches einen Bitwert „eins“ in dem Bitstrom STR hat, in Synchronisation mit einem Taktsignal CLK zählen, um ein erstes Zählsignal CNT1 auszugeben. Ebenso kann der zweite Zähler 242b ein Bit, welches einen Bitwert „null“ in dem Bitstrom STR hat, in Synchronisation mit dem Taktsignal CLK zählen, um ein zweites Zählsignal CNT2 auszugeben. Der dritte Zähler 243b kann Bits des Bitstroms STR zählen, um ein drittes Zählsignal CNT3 auszugeben. Das heißt, dass eine Summe eines Werts, welcher durch das erste Zählsignal CNT1, welches von dem ersten Zähler 241b ausgegeben wird, und eines Werts, welcher durch das zweite Zählsignal CNT2 angezeigt wird, welches von dem zweiten Zähler 242b ausgegeben wird, mit einem Wert übereinstimmen kann, welcher durch das dritte Zählsignal CNT3 angezeigt wird, welches von dem dritten Zähler 243b ausgegeben wird.
  • Bezugnehmend auf 8C kann die Mono-Bit-Testschaltung 240c einen ersten Zähler 241c und einen dritten Zähler 243c aufweisen. Wie in 8C veranschaulicht ist, kann der erste Zähler 241c einen Bitstrom STR empfangen, und der dritte Zähler 243c kann „eins“ empfangen. Demnach kann der erste Zähler 241c ein Bit, welches einen Bitwert „eins“ hat, in dem Bitstrom STR in Synchronisation mit einem Taktsignal CLK zählen, um ein erstes Zählsignal CNT1 auszugeben. Ebenso kann der dritte Zähler 243c Bits des Bitstroms STR zählen, um ein drittes Zählsignal CNT3 auszugeben. Eine Differenz zwischen dem dritten Zählsignal CNT3, welches von dem dritten Zähler 243c ausgegeben wird, und dem ersten Zählsignal CNT1, welches von dem ersten Zähler 241c ausgegeben wird, kann mit der Anzahl von Bits übereinstimmen, welche einen Bitwert „null“ in dem Bitstrom STR haben. In einer beispielhaften Ausführungsform kann im Gegensatz zu der Veranschaulichung der 8C anstelle des ersten Zählsignals CNT1, das zweite Zählsignal CTN2, welches durch einen zweiten Zähler (beispielsweise 242a in 8A) erzeugt wird, welcher die Anzahl von Bits zählt, welche einen Bitwert von „null“ in dem Bitstrom STR haben, zusammen mit dem dritten Zählsignal CNT3 ausgegeben werden, welches die Anzahl von Bits des Bitstroms STR anzeigt. Das heißt, dass der erste Zähler 241c, welcher ein Bit zählt, welches einen Bitwert „eins“ in dem Bitstrom STR hat, durch den zweiten Zähler ersetzt werden kann, welcher ein Bit zählt, welches einen Bitwert „null“ in dem Bitstrom STR hat.
  • Die 9A und 9B sind Blockschaltbilder, welche Beispiele 260a und 260b der Zufälligkeitsbestimmungsschaltung 260 der 7 gemäß beispielhaften Ausführungsformen veranschaulicht.
  • Wie obenstehend unter Bezugnahme auf 7 beschrieben ist, können Zufälligkeitsbestimmungsschaltungen 260a und 260b eine Mehrzahl von Summen SUM empfangen, welche durch die Korrelationstestschaltung 220 erzeugt werden, und Signale CNTS zählen, welche durch die Mono-Bit-Testschaltung 240 erzeugt werden, und können ein Ergebnissignal RES erzeugen, welches Informationen über eine Zufälligkeit des Bitstroms STR basierend auf der Mehrzahl von Summen SUM und der Zählsignale CNTS anzeigt.
  • Bezugnehmend auf 9A kann die Zufälligkeitsbestimmungsschaltung 260a einen Variationsdetektor 261a, eine Mehrzahl von Komparatoren 262a, 263a und 264a und ein AND-Gate bzw. UND-Gatter 265a aufweisen. Ähnlich zu dem Variationsdetektor 161 der 5 kann der Variationsdetektor 261a eine Variation VAR der Mehrzahl von Summen SUM ausgeben. Ein erster Komparator 262a kann einen ersten Referenzwert REF1 mit der Variation VAR vergleichen, um ein erstes Vergleichssignal CMP1 zu erzeugen. Das erste Vergleichssignal CMP1 kann deaktiviert werden, wenn die Variation VAR größer ist als der erste Referenzwert REF1.
  • Der zweite Komparator 263a kann einen zweiten Referenzwert REF2 mit einem ersten Zählsignal CNT1 vergleichen, welches die Anzahl von Bits „eins“ in dem Bitstrom STR anzeigt, um ein zweites Vergleichssignal CMP2 auszugeben. Wie in 9A veranschaulicht ist, kann, wenn das erste Zählsignal CNT1 geringer als der zweite Referenzwert REF2 ist, das zweite Vergleichssignal CMP2 deaktiviert werden. Ebenso kann der dritte Komparator 264a den zweiten Referenzwert REF2 mit einem zweiten Zählsignal CNT2 vergleichen, welches die Anzahl von Bits „null“ in dem Bitstrom STR anzeigt, um ein drittes Vergleichssignal CMP3 auszugeben. Wie in 9A veranschaulicht ist, kann, wenn das zweite Zählsignal CNT geringer als der zweite Referenzwert REF2 ist, das dritte Vergleichssignal CMP3 deaktiviert werden.
  • Das UND-Gatter 265a kann das erste bis dritte Vergleichssignal CMP1 bis CMP3 empfangen, um das Ergebnissignal RES auszugeben. Das heißt, dass, wenn wenigstens eines des ersten bis dritten Vergleichssignals CMP1 bis CMP3 deaktiviert ist, das Ergebnissignal deaktiviert sein kann, nämlich anzeigen kann, dass die Zufälligkeit des Bitstroms STR FAIL ist. Demnach kann, wenn die Variation VAR der Mehrzahl von Summen SUM nicht größer ist als der erste Referenzwert REF1 und das erste und das zweite Zählsignal CNT1 und CNT2 größer sind als der zweite Referenzwert REF2, die Zufälligkeit des Bitstroms STR als PASS bestimmt werden. Das heißt, dass, wenn die Variation VAR der Mehrzahl von Summen SUM geringer ist als der erste Referenzwert REF1 oder wenigstens eines des ersten und zweiten Zählsignals CNT1 und CNT2 geringer ist als der zweite Referenzwert REF2, die Zufälligkeit des Bitstroms STR als FAIL bestimmt werden kann.
  • Bezugnehmend auf 9B kann die Zufälligkeitsbestimmungsschaltung 260b einen Variationsdetektor 261b, eine Mehrzahl von Komparatoren 262b, 263b und 264b und ein AND-Gate bzw. UND-Gatter 265b und einen zweiten Referenzwertgenerator 266b aufweisen. In Vergleich zu der Zufälligkeitsbestimmungsschaltung 260a der 9A kann in der Zufälligkeitsbestimmungsschaltung 260b der 9B, wenn ein erstes Zählsignal CNT1 oder ein zweites Zählsignal CNT2 größer ist als ein zweiter Referenzwert REF2', die Zufälligkeit des Bitstroms STR als FAIL bestimmt werden. Das heißt, dass der zweite Referenzwert REF2' der 9B größer sein kann als der zweite Referenzwert REF2 der 9A und beispielsweise kann der zweite Referenzwert REF2' der 9B mit einer Differenz zwischen dem zweiten Referenzwert REF2 der 9A und „N“ übereinstimmen, welches die Anzahl von Bits des Bitstroms STR ist.
  • Die 10A und 10B sind Blockschaltbilder, welche Beispiele 260c und 206d der Zufälligkeitsbestimmungsschaltung 260 der 7 gemäß beispielhaften Ausführungsformen veranschaulichen.
  • Bezugnehmend auf 10A kann eine Zufälligkeitsbestimmungsschaltung 260c einen Variationsdetektor 261c, eine Mehrzahl von Komparatoren 262c, 263c und 264c und ein AND-Gate bzw. UND-Gatter 265c und einen zweiten Referenzwertgenerator 266c aufweisen. In Übereinstimmung mit der Zufälligkeitsbestimmungsschaltung 260a der 9A und der Zufälligkeitsbestimmungsschaltung 260b der 9B kann die Zufälligkeitsbestimmungsschaltung 260c der 10A ferner einen zweiten Referenzwertgenerator 266c aufweisen, welcher ein zweites Referenzsignal REF2 basierend auf einem dritten Zählsignal CNT3 erzeugt.
  • Der zweite Referenzwertgenerator 266c kann das zweite Referenzsignal REF2 basierend auf dem dritten Zählsignal CNT3 erzeugen, welches die Anzahl von Bits eines Bitstroms STR anzeigt, und ferner basierend auf einem erwünschten Verhältnis zwischen der Anzahl der Bits des Bitstroms STR und der Anzahl von Bits, welche denselben Bitwert haben, wobei das erwünschte Verhältnis basierend auf einem erwünschten Entropieniveau für den Bitstrom STR bestimmt wird. Das heißt, dass der zweite Referenzwertgenerator 266c das vorbestimmte erwünschte Verhältnis mit einem Wert multiplizieren kann, welcher durch das dritte Zählsignal CNT3 angezeigt wird, um das zweite Referenzsignal REF2 zu erzeugen.
  • Ähnlich zu der Ausführungsform der 9A wird das zweite Referenzsignal REF2 mit dem ersten und zweiten Zählsignal CNT1 und CNT2 verglichen, und wenn eines des ersten und zweiten Zählsignals CNT1 und CNT2 geringer ist als der zweite Referenzwert REF2, wird die Zufälligkeit des Bitstroms STR als FAIL bestimmt.
  • Bezugnehmend auf 10B kann eine Zufälligkeitsbestimmungsschaltung 260d einen Variationsdetektor 261d, eine Mehrzahl von Komparatoren 262d, 263d und 264d und ein AND-Gate bzw. UND-Gatter 265d und einen zweiten Referenzwertgenerator 266d aufweisen. Die Zufälligkeitsbestimmungsschaltung 260d kann bestimmen, ob das erste Zählsignal CNT1 oder ein zweites Zählsignal CNT2 innerhalb eines bestimmten Bereichs ist. Beispielsweise kann, wie in 10B veranschaulicht ist, der zweite Referenzwertgenerator 266d zwei zweite Referenzwerte REF2_H und REF2_L erzeugen, und der zweite Komparator 263d kann einen hohen zweiten Referenzwert REF2_H mit dem ersten oder zweiten Zählsignal CNT1 oder CNT2 vergleichen, wodurch ein zweites Vergleichssignal CMP erzeugt wird. Ebenso kann der dritte Komparator 264d einen niedrigen zweiten Referenzwert REF2_L mit dem ersten oder zweiten Zählsignal CNT1 oder CNT2 vergleichen, wodurch ein drittes Vergleichssignal CMP3 erzeugt wird. Wenn das erste oder zweite Zählsignal CNT1 oder CNT2 nicht zwischen dem zweiten Referenzwert REF2_H und REF2_L ist, kann wenigstens eines des zweiten und dritten Vergleichssignals CMP2 und CMP3 deaktiviert werden, und demnach kann das Ergebnissignal RES deaktiviert werden.
  • Der zweite Referenzwertgenerator 266d kann die zwei zweiten Referenzwerte REF2_H und REF2_L basierend auf dem dritten Zählsignal CNT3 erzeugen und weiterhin basierend auf einem erwünschten Verhältnis zwischen der Anzahl von Bits des Bitstroms STR und der Anzahl von Bits, welche denselben Bitwert haben, wobei das erwünschte Verhältnis basierend auf einem erwünschten Entropieniveau für den Bitstrom STR bestimmt wird. Beispielsweise kann der zweite Referenzwertgenerator 266d das vorbestimmte erwünschte Verhältnis mit einem Wert multiplizieren, welcher durch das dritte Zählsignal CNT3 angezeigt wird, um den niedrigen zweiten Referenzwert REF2_L zu erzeugen, und kann den niedrigen zweiten Referenzwert REF2_L von einem Wert, welcher durch das dritte Signal CNT3 angezeigt wird, subtrahieren, um den hohen zweiten Referenzwert REF2_H zu erzeugen.
  • 11 ist ein Flussdiagramm, welches einen Betrieb der Zufälligkeitstestvorrichtung 200 der 7 gemäß einer beispielhaften Ausführungsform veranschaulicht.
  • In einer beispielhaften Ausführungsform kann die Operation S240 der 11 durch die Mono-Bit-Testschaltung 240 der 7 durchgeführt werden, und die Operation S260 der 11 kann durch die Zufälligkeitsbestimmungsschaltung 260 der 7 durchgeführt werden. Wie in 11 veranschaulicht ist, kann Operation S240 eine Mehrzahl von Operationen (beispielsweise S241 bis S247) aufweisen, und Operation S260 kann eine Mehrzahl von Operationen aufweisen (beispielsweise S261 bis S265).
  • In Operation S241 kann eine Initialisierungsoperation durchgeführt werden. Beispielsweise können, wie in 11 veranschaulicht ist, eine Operation zum Zurücksetzen (beispielsweise Setzen auf null) eines ersten Zählsignals CNT1 und eines zweiten Zählsignals CNT2 und ein Einstellen einer Variable „i“ auf eins durchgeführt werden.
  • In Operation S242 kann eine Operation zum Erlangen eines 1-Bit bi eines Bitstroms durchgeführt werden. Beispielsweise kann die Zufälligkeitstestvorrichtung 200 das 1-Bit bi des Bitstroms STR zu jeder ansteigenden (oder abfallenden) Flanke des Taktsignals CLK latchen.
  • In Operation S243 kann eine Operation zum Bestimmen, ob das erlangte Bit bi „eins“ ist, durchgeführt werden. Wenn das erlangte Bit bi „eins“ ist, kann eine Operation zum Erhöhen des ersten Zählsignals CNT1 um eins in Operation S244 durchgeführt werden. Andererseits kann, wenn das erlangte bi nicht „eins“ ist (beispielsweise wenn das erlangte Bit bi „null“ ist), eine Operation zum Erhöhen des zweiten Zählsignals CNT um eins in Operation S245 durchgeführt werden.
  • In Operation S246 kann eine Operation zum Bestimmen, ob die Variable „i“ mit „N“ übereinstimmt, durchgeführt werden. Das heißt, es kann bestimmt werden, ob alle Bits des Bitstroms STR erlangt werden. Wenn die Variable „i“ mit „N“ nicht übereinstimmt (beispielsweise alle Bits des Bitstroms STR nicht erlangt werden), kann eine Operation zum Erhöhen der Variable „i“ um eins in Operation S247 durchgeführt werden, und eine Operation zum Erlangen eines neuen 1-Bit des Bitstroms kann in Operation S242 durchgeführt werden. Andererseits kann, wenn die Variable „i“ mit „N“ übereinstimmt (beispielsweise alle Bits des Bitstroms STR erlangt sind), das erste Zählsignal CNT1 und das zweite Zählsignal CNT2 ausgegeben werden.
  • Nachfolgend kann eine Operation zum Subtrahieren eines minimalen Wertes einer Anzahl K von Summen SUM1, SUM2, ... und SUMK von einem maximalen Wert der Anzahl K von Summen SUM1, SUM2, ... und SUMK in Operation S261 durchgeführt werden. Das heißt, dass eine Differenz zwischen dem maximalen Wert und dem minimalen Wert der Anzahl K von Summen SUM1, SUM2, ... und SUMK als eine Variation VAR erzeugt werden kann.
  • In Operation S262 kann eine Operation zum Vergleichen der Variation VAR mit einem ersten Referenzwert REF1 durchgeführt werden. Wenn die Variation VAR größer ist als der erste Referenzwert REF1, kann ein Ergebnissignal RES FAIL in Operation S265 anzeigen. Andererseits kann, wenn die Variation VAR gleich oder geringer als der erste Referenzwert REF1 ist, eine Operation zum Vergleichen des ersten Zählsignals CNT1 oder des zweiten Zählsignals CNT2 mit einem zweiten Referenzwert REF1 in Operation S263 durchgeführt werden. Wenn das erste Zählsignal CNT1 und das zweite Zählsignal CNT2 geringer sind als ein zweiter Referenzwert REF2, kann das Ergebnissignal RES FAIL in Operation S265 anzeigen. Andererseits kann, wenn das erste Zählsignal CNT1 und das zweite Zählsignal CNT2 gleich oder größer als der zweite Referenzwert REF2 sind, das Ergebnissignal RES PASS in Operation S264 anzeigen. In einem Fall, in dem „N“ 2048 ist, und der zweite Referenzwert REF2 880 ist, zeigt ein Experimentergebnis, dass, auch wenn eine Wahrscheinlichkeit, dass ein Bit einen Wert von „eins“ hat, gleich 0,385 ist, eine Wahrscheinlichkeit der Bestimmung, dass der Bitstrom STR nicht ausreichend zufällig ist, gleich 0,99998362 ist.
  • Die 12A und 12B sind Blockschaltbilder, welche Beispiele einer Zufälligkeitsbestimmungsschaltung 360 gemäß beispielhaften Ausführungsformen veranschaulichen.
  • Ähnlich zu der Zufälligkeitsbestimmungsschaltung 160 der 3 können eine Zufälligkeitsbestimmungsschaltung 360a der 12A und eine Zufälligkeitsbestimmungsschaltung 360b der 12B jeweils eine Anzahl K von Summen SUM1, SUM2, ... und SUMK (oder SUM) empfangen, um ein Ergebnissignal RES auszugeben. Hierin nachstehend wird eine wiederholende Beschreibung der Strukturen und Operationen ähnlich zu oder gleich zu denjenigen, welche obenstehend beschrieben sind, ausgelassen.
  • Bezugnehmend auf 12A kann die Zufälligkeitsbestimmungsschaltung 360a einen Variationsdetektor 361a, einen ersten Komparator 362a, ein AND-Gate bzw. UND-Gatter 365a und eine Normalitätsüberprüfungsschaltung 368a aufweisen.
  • Ähnlich zu dem Variationsdetektor 161 der 5 kann der Variationsdetektor 361a eine Variation der Anzahl K von Summen SUM1, SUM2, ... und SUMK (oder SUM) erfassen, um eine Variation VAR auszugeben. Der erste Komparator 362a kann einen ersten Referenzwert REF1 mit der Variation VAR vergleichen, um ein erstes Vergleichssignal CMP1 auszugeben.
  • Die Normalitätsüberprüfungsschaltung 368a kann bestimmen, ob eine beliebige Summe SUMj (1 ≤ j ≤ K) der Anzahl K von Summen SUM1, SUM2, ... und SUMK (oder SUM) innerhalb eines bestimmten Bereiches ist. Das heißt, dass die Normalitätsüberprüfungsschaltung 368a bestimmen kann, ob die beliebige Summe SUMj der Anzahl K von Summen SUM1, SUM2, ... und SUMK (oder SUM) zwischen einem dritten Referenzwert REF3 und einem vierten Referenzwert REF4 ist.
  • Wie in 12A veranschaulicht ist, kann die Normalitätsüberprüfungsschaltung 368a zwei Komparatoren 368_2a und ein AND-Gate bzw. UND-Gatter 368_4a aufweisen. Die Summe SUMj kann jedem der zwei Komparatoren 368_2a eingegeben werden und kann mit dem dritten Referenzwert REF3 und dem vierten Referenzwert REF4 verglichen werden. Das UND-Gatter 368_4a kann eine AND- bzw. UND-Operation auf Ausgangssignalen der Komparatoren 368_2a durchführen. Demzufolge kann, wenn die Summe SUMj zwischen dem dritten Referenzwert REF3 und dem vierten Referenzwert REF4 ist, ein viertes Vergleichssignal CMP4, welches von dem UND-Gatter 368_4a ausgegeben wird, aktiviert werden, und andernfalls kann das vierte Vergleichssignal CMP4 deaktiviert werden. Beispielsweise kann, wenn eine erwünschte Entropie in dem Bitstrom STR höher wird, eine Differenz zwischen dem dritten Referenzwert REF3 und dem vierten Referenzwert REF4 verringert werden.
  • Wenn wenigstens eines des ersten Vergleichssignals CMP1 und des vierten Vergleichssignals CMP4 deaktiviert ist, kann das Ergebnissignal RES deaktiviert sein. Das heißt, dass, wenn die Variation der Anzahl K von Summen SUM1, SUM2, ... und SUMK (oder SUM) geringer ist als der erste Referenzwert REF1 und die beliebige Summe SUMj der Anzahl K von Summen SUM1, SUM2, ... und SUMK (oder SUM) zwischen dem dritten Referenzwert REF3 und dem vierten Referenzwert REF4 ist, das Ergebnissignal RES aktiviert werden kann. Demnach kann die Zufälligkeitsbestimmungsschaltung 360 eine Zufälligkeit des Bitstroms STR basierend auf einem Wert der beliebigen Summe SUMj der Anzahl K von Summen SUM1, SUM2, ... und SUMK (oder SUM) sowie der Variation der Anzahl K von Summen SUM1, SUM2, ... und SUMK (oder SUM) überprüfen.
  • Bezugnehmend auf 12B kann, ähnlich zu der Zufälligkeitsbestimmungsschaltung 360a der 12A die Zufälligkeitsbestimmungsschaltung 360b einen Variationsdetektor 361b, einen ersten Komparator 362b und ein AND-Gate bzw. UND-Gatter 365b und eine Normalitätsüberprüfungsschaltung 368b aufweisen. Im Vergleich mit der Normalitätsüberprüfungsschaltung 368a der 12A kann die Normalitätsüberprüfungsschaltung 368b der 12B bestimmen, ob jede der Anzahl K von Summen SUM1, SUM2, ... und SUMK (oder SUM) innerhalb eines bestimmten Bereichs ist. Das heißt, dass die Normalitätsüberprüfungsschaltung 368b bestimmen kann, ob jede der Anzahl K von Summen SUM1, SUM2, ... und SUMK (oder SUM) zwischen einem dritten Referenzwert REF3 und einem vierten Referenzwert REF4 ist.
  • Wie in 12B veranschaulicht ist, kann die Normalitätsüberprüfungsschaltung 368b eine Mehrzahl von Komparatoren 368_2b und eine Mehrzahl von AND-Gates bzw. UND-Gattern 368_4b und 368_6b aufweisen. Jede der Anzahl K von Summen SUM1, SUM2, ... und SUMK (oder SUM) kann jedem Paar der Komparatoren 368_2b eingegeben werden und kann mit dem dritten Referenzwert REF3 und dem vierten Referenzwert REF4 verglichen werden. Die UND-Gatter 368_4b und 368_6b können jeweils eine UND-Operation auf Ausgabesignalen der Komparatoren 368_2b durchführen. Demzufolge kann, wenn jede der Anzahl K von Summen SUM1, SUM2, ... und SUMK (oder SUM) zwischen dem dritten Referenzwert REF3 und dem vierten Referenzwert REF4 ist, ein viertes Vergleichssignal CMP4, welches von dem UND-Gatter 368_6b ausgegeben wird, aktiviert sein, und andernfalls kann das vierte Vergleichssignal CMP4 deaktiviert sein.
  • Die 13A und 13B sind Flussdiagramme, welche Beispiele von Operationen der Zufälligkeitsbestimmungsschaltungen der 12A und 12B gemäß beispielhaften Ausführungsformen veranschaulichen.
  • In einer beispielhaften Ausführungsform kann eine Operation S364a der 13A durch die Normalitätsüberprüfungsschaltung 368a der 12A durchgeführt werden, und eine Operation S364b der 13B kann durch die Normalitätsüberprüfungsschaltung 368b der 12B durchgeführt werden.
  • Bezugnehmend auf 13A kann in Operation S361a eine Operation zum Subtrahieren eines minimalen Wertes einer Anzahl K von Summen SUM1, SUM2, ... und SUMK von einem maximalen Wert der Anzahl K von Summen SUM1, SUM2, ... und SUMK durchgeführt werden. Das heißt, dass eine Differenz zwischen dem maximalen Wert und dem minimalen Wert der Anzahl K von Summen SUM1, SUM2, ... und SUMK als eine Variation VAR erzeugt werden kann.
  • In Operation S362a kann eine Operation zum Vergleichen der Variation VAR mit einem ersten Referenzwert REF1 durchgeführt werden. Wenn die Variation VAR größer ist als der erste Referenzwert REF1, kann ein Ergebnissignal RES FAIL in Operation S368a anzeigen. Andererseits kann, wenn die Variation VAR gleich oder geringer als der erste Referenzwert REF1 ist, eine Operation zum Bestimmen eines Bereichs einer beliebigen Summe SUMj der Anzahl K von Summen SUM1, SUM2, ... und SUMK in Operation S364a durchgeführt werden. Wenn die beliebige Summe SUMj nicht zwischen einem dritten Referenzwert REF3 und einem vierten Referenzwert REF4 ist, kann das Ergebnissignal RES FAIL in Operation S368a anzeigen. Andererseits kann, wenn die beliebige Summe SUMj zwischen dem dritten Referenzwert REF3 und dem vierten Referenzwert REF4 ist, das Ergebnissignal RES PASS in Operation S366a anzeigen.
  • Bezugnehmend auf 13B kann ähnlich zu den Operationen S361a und S362a der 13A eine Differenz zwischen einem maximalen Wert und einem minimalen Wert der Anzahl K von Summen SUM1, SUM2, ... und SUMK als eine Variation VAR in Operation S361b erzeugt werden, und eine Operation zum Vergleichen der Variation VAR mit einem ersten Referenzwert REF1 kann in Operation S362b durchgeführt werden.
  • In Operation S364b kann eine Operation zum Bestimmen eines Bereichs von jeder der Anzahl K von Summen SUM1, SUM2, ... und SUMK durchgeführt werden.
  • In Operation S364_1b kann eine Operation zum Setzen einer Variablen „j“ auf eins als eine Initialisierungsoperation durchgeführt werden. In Operation S364_2b wird eine Operation zum Bestimmen, ob eine j-te Summe SUMj der Anzahl K von Summen SUM1, SUM2, ... und SUMK zwischen einem dritten Referenzwert REF3 und einem vierten Referenzwert REF4 ist, durchgeführt. Wenn die j-te Summe SUMj nicht zwischen dem dritten Referenzwert REF3 und dem vierten Referenzwert REF4 ist, kann das Ergebnissignal RES in Operation S368b FAIL anzeigen. Andererseits kann, wenn die j-te Summe SUMj zwischen dem dritten Referenzwert REF3 und dem vierten Referenzwert REF4 ist, eine Operation zum Bestimmen, ob die Variable „j“ mit „K“ übereinstimmt, in Operation S364_3b durchgeführt werden. Das heißt, es kann durchgeführt werden, ob eine Operation zum Bestimmen eines Bereiches auf allen der Anzahl K von Summen SUM1, SUM2, ... und SUMK vollendet ist. Wenn die Variable „j“ nicht mit „K“ übereinstimmt (beispielsweise ist eine Operation des Bestimmens eines Bereiches nicht auf allen der Anzahl K von Summen SUM1, SUM2, ... und SUMK durchgeführt), kann eine Operation zum Erhöhen der Variablen „j“ um eins in Operation S364_4b durchgeführt werden, und eine Operation zum Bestimmen, ob die j-te Summe SUMj der Anzahl K von Summen SUM1, SUM2, ... und SUMK zwischen dem dritten Referenzwert REF3 und dem vierten Referenzwert REF4 ist, kann in Operation S364_2b durchgeführt werden. Andererseits kann, wenn die Variable „j“ mit „K“ übereinstimmt (beispielsweise wird die Operation zum Bestimmen des Bereichs auf allen der Anzahl K von Summen SUM1, SUM2, ... und SUMK durchgeführt), das Ergebnissignal RES in Operation S366b PASS anzeigen.
  • 14 ist ein Flussdiagramm, welches ein Zufälligkeitstestverfahren für einen Zufallszahlengenerator gemäß einer beispielhaften Ausführungsform veranschaulicht.
  • Wie in 14 veranschaulicht ist, kann das Zufälligkeitstestverfahren eine Mehrzahl von Operationen (S420 und S460) aufweisen. Beispielsweise kann Operation S420, welche eine Mehrzahl von Operationen aufweist (beispielsweise S422, S424, S426 und S428) durch die Korrelationstestschaltung 120 der 3 durchgeführt werden, und Operation S460 kann durch die Zufälligkeitsbestimmungsschaltung 160 der 3 durchgeführt werden. Hierin nachstehend wird 14 unter Bezugnahme auf 3 beschrieben werden.
  • In Operation S422 kann eine Operation zum Extrahieren einer M-Bit-Bitsequenz aus einem N-Bit-Bitstrom durchgeführt werden. Beispielsweise kann die Bitsequenz eine Anzahl M von kontinuierlichen Bits aufweisen. Ähnlich zu einer Operation des Schieberegisters 122 der 3 kann ein LSB einer vorangehend extrahierten Bitsequenz entfernt werden, und durch ein Addieren eines neuen Bits von dem Bitstrom als ein MSB kann eine neue Bitsequenz extrahiert werden.
  • In Operation S424 kann eine Operation zum Berechnen einer Differenz zwischen zwei Bits jedes der Anzahl K von unterschiedlichen Bitpaaren in der Bitsequenz durchgeführt werden. Die K unterschiedlichen Bitpaare können unterschiedliche Breiten haben, und eine Differenz zwischen zwei Bits jedes der Bitpaare kann durch ein Durchführen beispielsweise einer XOR-Operation auf den zwei Bits berechnet werden. Eine Breite eines Bitpaares kann einen Abstand zwischen zwei Bits des Bitpaares bezeichnen.
  • In Operation S426 kann eine Operation zum Akkumulieren einer Anzahl K von Differenzen, die den K unterschiedlichen Bitpaaren entsprechen, durchgeführt werden. Das heißt, dass die Differenzen, welche Bitpaaren entsprechen, welche dieselbe Bitbreite haben, angesammelt werden können, und demnach eine Anzahl K von angesammelten Summen in Operation S426 aktualisiert werden kann.
  • In Operation S428 kann eine Operation zum Bestimmen, ob die Bitsequenz eine letzte Bitsequenz ist, durchgeführt werden. In Operation S422 kann eine Anzahl „N-M+1“ von unterschiedlichen M-Bit-Bitsequenzen aus dem N-Bit-Bitstrom extrahiert werden. Demnach kann bestimmt werden, ob die Bitsequenz, welche in Operation S422 extrahiert wird, eine (N-M+1)-te Bitsequenz ist, und wenn die Bitsequenz die (N-M+1)-te Bitsequenz ist, kann die Bitsequenz als eine letzte Bitsequenz bestimmt werden. Wenn die extrahierte Bitsequenz nicht die letzte Bitsequenz ist, kann eine Operation zum Extrahieren einer neuen Bitsequenz aus dem Bitstrom in Operation S422 durchgeführt werden. Andererseits kann, wenn die extrahierte Bitsequenz die letzte Bitsequenz ist, Operation 460 durchgeführt werden.
  • In Operation S460 kann eine Operation zum Bestimmen einer Zufälligkeit des N-Bit-Bitstroms basierend auf den K angesammelten Differenzen durchgeführt werden. Da Differenzen, welche einer ersten Bitsequenz zu der letzten Bitsequenz entsprechen, in Operation S426 angesammelt werden, kann eine Operation zum Bestimmen einer Zufälligkeit des N-Bit-Bitstroms basierend auf der aktualisierten Anzahl K von Summen durchgeführt werden. Beispielsweise kann, wie obenstehend unter Bezugnahme auf 6 beschrieben ist, eine Differenz (beispielsweise eine Variation der Anzahl K von Summen) zwischen einem maximalen Wert und einem minimalen Wert der Anzahl K von Summen erfasst werden, und die Zufälligkeit des N-Bit-Bitstroms kann basierend auf der erfassten Variation bestimmt werden. Das heißt, dass, wenn die erfasste Variation der Anzahl K von Summen größer ist als ein bestimmter Wert (beispielsweise ein erster Referenzwert), der N-Bit-Bitstrom als nichtausreichend zufällig bestimmt werden kann, und andernfalls der N-Bit-Bitstrom als ausreichend zufällig bestimmt werden kann. Ebenso kann, wie obenstehend unter Bezugnahme auf die 13A und 13B beschrieben ist, getestet werden, ob wenigstens eine der Anzahl K von Summen innerhalb eines bestimmten Bereichs (beispielsweise zwischen einem dritten Referenzwert und einem vierten Referenzwert) ist. Wenn die wenigstens eine Summe außerhalb des bestimmten Bereichs als ein Ergebnis des Tests ist, kann der N-Bit-Bitstrom als nichtausreichend zufällig bestimmt werden und andernfalls kann der N-Bit-Bitstrom als ausreichend zufällig bestimmt werden.
  • 15 ist ein Flussdiagramm, welches ein Zufälligkeitstestverfahren für einen Zufallszahlengenerator gemäß einer beispielhaften Ausführungsform veranschaulicht.
  • Im Vergleich mit dem Zufälligkeitstestverfahren der 14 kann das Zufälligkeitstestverfahren der 15 zusätzlich die Anzahl von Bits nutzen, welche denselben Bitwert in einem Bitstrom haben. Wie in 15 veranschaulicht ist, kann das Zufälligkeitstestverfahren eine Mehrzahl von Operationen (beispielsweise S520, S540 und S560) aufweisen. Beispielsweise kann Operation S520 durch die Korrelationsschaltung 220 der 7 durchgeführt werden, Operation S540 kann durch die Mono-Bit-Testschaltung 240 der 7 durchgeführt werden, und die Operation S560 kann durch die Zufälligkeitsbestimmungsschaltung 260 der 7 durchgeführt werden.
  • In Operation S520 kann eine Operation zum Erzeugen einer Anzahl K von Summen, welche einer Anzahl K von unterschiedlichen Bitpaaren in einem N-Bit-Bitstrom entspricht, durchgeführt werden. Beispielsweise kann ähnlich zu Operation S420 der 14 eine Anzahl K von Differenzen von jeder einer Mehrzahl von Bitsequenzen berechnet werden, welche von dem N-Bit-Bitstrom extrahiert werden, und die Anzahl K von Summen kann durch ein Akkumulieren jeder der K Differenzen für die Mehrzahl von Bitsequenzen erzeugt werden.
  • In Operation S540 kann eine Operation zum Zählen von Bits, welche denselben Bitwert in dem N-Bit-Bitstrom haben, durchgeführt werden. Beispielsweise können, wie obenstehend unter Bezugnahme auf 11 beschrieben ist, Bits, welche einen Wert von „eins“ in dem N-Bit-Bitstrom haben, gezählt werden, und/oder es können Bits, welche einen Wert von „null“ haben, gezählt werden.
  • In Operation S560 kann eine Operation zum Bestimmen einer Zufälligkeit des N-Bit-Bitstroms basierend auf der Anzahl der gezählten Bits und der Anzahl K von Summen durchgeführt werden. Beispielsweise kann, wie obenstehend unter Bezugnahme auf 11 beschrieben ist, wenn die Anzahl der gezählten Bits, welche einen Wert von „eins“ haben oder die Anzahl der gezählten Bits „null“ geringer als eine bestimmte Anzahl ist (beispielsweise ein zweiter Referenzwert), der N-Bit-Bitstrom als nichtausreichend zufällig bestimmt werden. Ebenso kann eine Differenz (beispielsweise eine Variation der Anzahl K von Summen) zwischen einem maximalen Wert und einem minimalen Wert der Anzahl K von Summen erfasst werden, und wenn die erfasste Variation größer als ein bestimmter Wert ist (beispielsweise der erste Referenzwert), kann der N-Bit-Bitstrom als nichtausreichend zufällig bestimmt werden.
  • 16 ist ein Flussdiagramm, welches ein Beispiel von Operation S560 der 15 gemäß einer beispielhaften Ausführungsform veranschaulicht.
  • Wie obenstehend unter Bezugnahme auf 15 beschrieben ist, kann eine Operation zum Bestimmen einer Zufälligkeit eines N-Bit-Bitstroms basierend auf der Anzahl von gezählten Bits und der Anzahl K von Summen in Operation S560' durchgeführt werden. Wie in 16 veranschaulicht ist, kann Operation S560' eine Mehrzahl von Operationen (beispielsweise S561 bis S565) aufweisen.
  • In Operation S561 kann eine Operation zum Bestimmen, ob eine Differenz zwischen einem maximalen Wert und einem minimalen Wert der Anzahl K von Summen größer als ein erster Referenzwert ist, durchgeführt werden. Wenn die Differenz zwischen dem maximalen Wert und dem minimalen Wert der Anzahl K von Summen größer als der erste Referenzwert ist, kann eine Operation zum Bestimmen des Bitstroms als nichtausreichend zufällig in Operation S564 durchgeführt werden. Beispielsweise kann, wie obenstehend unter Bezugnahme auf die 6, 11, 13A und 13B beschrieben ist, eine Variation der Anzahl K von Summen durch ein Extrahieren des maximalen Werts und des minimalen Werts der Anzahl K von Summen erfasst werden, und wenn die Variation der Anzahl K von Summen größer als der erste Referenzwert ist, kann der Bitstrom als nichtausreichend zufällig bestimmt werden, basierend auf einem niedrigen Entropieniveau des Bitstroms. Andererseits kann, wenn die Differenz zwischen dem maximalen Wert und dem minimalen Wert der Anzahl K von Summen nicht größer als der erste Referenzwert ist, Operation S562 durchgeführt werden.
  • In Operation S562 kann eine Operation zum Bestimmen, ob die Anzahl von Bits, welche denselben Bitwert haben, geringer als ein zweiter Referenzwert ist, durchgeführt werden. Wenn die Anzahl von Bits, welche denselben Bitwert haben, geringer als der zweite Referenzwert ist, kann eine Operation zum Bestimmen des Bitstroms als nicht zufällig (oder nicht ausreichend) in Operation S564 durchgeführt werden. Beispielsweise kann, wie obenstehend unter Bezugnahme auf 11 beschrieben ist, die Anzahl von Bits, welche denselben Bitwert in dem Bitstrom haben, gezählt werden, und wenn die gezählte Anzahl der Bits geringer als der zweite Referenzwert ist, kann der Bitstrom als nicht zufällig bestimmt werden, basierend auf einem niedrigen Entropieniveau des Bitstroms. Andererseits kann, wenn die Anzahl von Bits, welche denselben Bitwert haben, nicht geringer ist als der zweite Referenzwert, Operation S563 durchgeführt werden.
  • In Operation S563 kann eine Operation zum Bestimmen, ob es eine Summe gibt, welche nicht zwischen einem dritten Referenzwert und einem vierten Referenzwert ist, unter der Anzahl K von Summen durchgeführt werden. Wenn es eine Summe, welche nicht zwischen dem dritten Referenzwert und dem vierten Referenzwert ist, unter der Anzahl K von Summen gibt, kann eine Operation zum Bestimmen des Bitstroms als nicht zufällig (oder nichtausreichend zufällig) in Operation S564 durchgeführt werden. Beispielsweise kann, wie obenstehend unter Bezugnahme auf die 13A und 13B beschrieben ist, wenigstens eine der Anzahl K von Summen mit dem dritten Referenzwert und dem vierten Referenzwert verglichen werden, und wenn die wenigstens eine Summe nicht zwischen dem dritten Referenzwert und dem vierten Referenzwert ist, kann der Bitstrom als nicht zufällig, nichtausreichend bestimmt werden, basierend auf einem niedrigen Entropieniveau des Bitstroms. Andererseits kann, wenn alle der Anzahl K von Summen zwischen dem dritten Referenzwert und dem vierten Referenzwert sind, eine Operation zum Bestimmen des Bitstroms als zufällig (oder ausreichend zufällig) in Operation S565 durchgeführt werden.
  • 16 veranschaulicht drei Operation S561, S562 und S563 zum Testen, ob ein Bitstrom zufällig ist, gemäß einer beispielhaften Ausführungsform aber kann es verstanden werden, dass die Operation S560 der 5 nur wenigstens eine der wenigstens drei Operationen S561, S562 und S563 aufweisen mag. Ebenso ist in 16 eine Reihenfolge, in welcher die drei Operationen S561, S562 und S563 durchgeführt werden, lediglich ein Beispiel, und es kann verstanden werden, dass die drei Operationen S561, S562 und S563 in einer Reihenfolge unterschiedlich von einer Reihenfolge, welche in 16 veranschaulicht ist, durchgeführt werden können.
  • Obwohl einige Ausführungsformen gezeigt und beschrieben wurden, würde es durch Fachleute anerkannt werden, dass Änderungen in den beispielhaften Ausführungsformen getätigt werden können, ohne von den Prinzipien und dem Gedanken der Offenbarung abzuweichen, deren Umfang in den Ansprüchen und ihren Äquivalenten definiert ist.
  • 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
    • KR 1020160152968 [0001]

Claims (25)

  1. Vorrichtung zum Testen eines Zufallszahlengenerators (10), wobei die Vorrichtung Folgendes aufweist: eine Korrelationstestschaltung (120, 220), welche konfiguriert ist, um eine erste Mehrzahl von Bitpaaren zu extrahieren, wovon jedes zwei Bits aufweist, welche voneinander durch einen ersten Abstand in einem Bitstrom, welcher durch den Zufallszahlengenerator (10) erzeugt wird, beabstandet sind, um eine erste Summe von Differenzen zwischen jeweiligen zwei Bits der ersten Mehrzahl von Bitpaaren zu erlangen, und um eine zweite Summe von Differenzen zwischen jeweiligen zwei Bits einer zweiten Mehrzahl von Bitpaaren zu erlangen, wobei die zweite Mehrzahl von Bitpaaren jeweils zwei Bits aufweist, welche voneinander durch einen zweiten Abstand unterschiedlich von dem ersten Abstand in dem Bitstrom beabstandet sind; und eine Zufälligkeitsbestimmungsschaltung (160, 260, 260a, 260b, 260c, 260d, 360, 360a, 360b) welche konfiguriert ist, um eine Zufälligkeit des Bitstroms basierend auf der ersten Summe und der zweiten Summe zu bestimmen.
  2. Vorrichtung nach Anspruch 1, wobei die erste Summe und die zweite Summe in einer Mehrzahl von Summen enthalten sind, welche eine Mehrzahl von unterschiedlichen Abständen zwischen zwei Bits in dem Bitstrom entsprechen, und wobei die Zufälligkeitsbestimmungsschaltung (160, 260, 260a, 260b, 260c, 260d, 360, 360a, 360b) konfiguriert ist, um die Zufälligkeit des Bitstroms basierend auf einer Differenz zwischen einem maximalen Wert und einem minimalen Wert der Mehrzahl von Summen zu bestimmen.
  3. Vorrichtung nach Anspruch 2, wobei, in Antwort darauf, dass die Differenz zwischen dem maximalen Wert und dem minimalen Wert größer als ein erster Referenzwert ist, die Zufälligkeitsbestimmungsschaltung (160, 260, 260a, 260b, 260c, 260d, 360, 360a, 360b) konfiguriert ist, um den Bitstrom als nicht zufällig zu bestimmen.
  4. Vorrichtung nach Anspruch 1, wobei die Korrelationstestschaltung (120, 220) konfiguriert ist, um eine XOR-Operation auf zwei Bits jedes der ersten Mehrzahl von Bitpaaren oder zwei Bits der zweiten Mehrzahl von Bitpaaren durchzuführen, um eine Differenz zwischen den zwei Bits zu erlangen.
  5. Vorrichtung nach Anspruch 1, wobei eine Anzahl der ersten Mehrzahl von Bitpaaren oder eine Anzahl der zweiten Mehrzahl von Bitpaaren einer Differenz zwischen einem maximalen Wert des ersten Abstands und des zweiten Abstands und einer Anzahl von Bits des Bitstroms entspricht.
  6. Vorrichtung nach Anspruch 1, ferner aufweisend: eine Mono-Bit-Testschaltung (240, 240a, 240b, 240c), welche konfiguriert ist, um eine Zählausgabe durch ein Zählen einer Anzahl von Bits, welche denselben Bitwert in dem Bitstrom haben, zu erzeugen, wobei die Zufälligkeitsbestimmungsschaltung (160, 260, 260a, 260b, 260c, 260d, 360, 360a, 360b) konfiguriert ist, um die Zufälligkeit des Bitstroms zu bestimmen, ferner basierend auf der Zählausgabe.
  7. Vorrichtung nach Anspruch 6, wobei, in Antwort darauf, dass die Zählausgabe geringer ist als ein zweiter Referenzwert, die Zufälligkeitsbestimmungsschaltung (160, 260, 260a, 260b, 260c, 260d, 360, 360a, 360b) konfiguriert ist, um den Bitstrom als nicht zufällig zu bestimmen.
  8. Vorrichtung nach Anspruch 7, wobei der zweite Referenzwert basierend auf einer erwünschten Entropie des Bitstroms bestimmt wird.
  9. Vorrichtung nach Anspruch 6, wobei die Mono-Bit-Testschaltung (240, 240a, 240b, 240c) konfiguriert ist, um die Zählausgabe zu erzeugen, welche wenigstens eine einer Anzahl von Bits, welche einen Bitwert von „null“ und einer Anzahl von Bits, welche einen Bitwert „eins“ haben, aufweist.
  10. Vorrichtung nach Anspruch 1, wobei die Zufälligkeitsbestimmungsschaltung (160, 260, 260a, 260b, 260c, 260d, 360, 360a, 360b) konfiguriert ist, um wenigstens eine Summe unter der ersten Summe und der zweiten Summe mit jedem eines dritten Referenzwerts und eines vierten Referenzwerts zu vergleichen, und um in Antwort darauf, dass wenigstens eine Summe nicht zwischen dem dritten Referenzwert und dem vierten Referenzwert ist, die Zufälligkeitsbestimmungsschaltung (160, 260, 260a, 260b, 260c, 260d, 360, 360a, 360b) konfiguriert ist, um den Bitstrom als nicht zufällig zu bestimmen.
  11. Vorrichtung zum Testen eines Zufallszahlengenerators (10), wobei die Vorrichtung Folgendes aufweist: ein M-Bit-Schieberegister (122), welches konfiguriert ist, um sequenziell N-Bits zu empfangen, welche durch die Zufallszahlengenerator (10) erzeugt werden; eine Differenzoperationsschaltung (124, 124'), welche konfiguriert ist, um eine Differenz zwischen zwei Bits jedes einer Anzahl K von unterschiedlichen Bitpaaren in einer M-Bitsequenz, welche von dem M-Bit-Schieberegister (122) ausgegeben wird, zu erlangen; eine Anzahl K von Akkumulatoren (126, 126', 126_1 bis 126_K), welche jeweils mit Bits eines K-Bit-Ausgangs der Differenzoperationsschaltung (124, 124') verbunden sind; und eine Zufälligkeitsbestimmungsschaltung (160, 260, 260a, 260b, 260c, 260d, 360, 360a, 360b), welche konfiguriert ist, um eine Zufälligkeit der N-Bits basierend auf Ausgaben der Anzahl K von Akkumulatoren (126, 126', 126_1 bis 126_K) zu bestimmen, wobei jedes von „K“, „M“ und „N“ eine ganze Zahl gleich oder größer als 2 ist.
  12. Vorrichtung nach Anspruch 11, wobei die Zufälligkeitsbestimmungsschaltung (160, 260, 260a, 260b, 260c, 260d, 360, 360a, 360b) konfiguriert ist, um die Zufälligkeit der N Bits zu bestimmen, basierend auf einer Differenz zwischen einem maximalen Wert und einem minimalen Wert der Ausgaben der Anzahl K von Akkumulatoren (126, 126', 126_1 bis 126_K).
  13. Vorrichtung nach Anspruch 12, wobei, in Antwort darauf, dass die Differenz zwischen dem maximalen Wert und dem minimalen Wert größer als ein erster Referenzwert ist, die Zufälligkeitsbestimmungsschaltung (160, 260, 260a, 260b, 260c, 260d, 360, 360a, 360b) konfiguriert ist, um die N-Bits als nicht zufällig zu bestimmen.
  14. Vorrichtung nach Anspruch 11, wobei die Differenzoperationsschaltung (124, 124') eine Anzahl K von XOR-Gattern (124_1 bis 124_K) aufweist, welche jeweils konfiguriert sind, um jedes der Anzahl K von Bitpaaren zu empfangen, um die K-Bit-Ausgabe zu erzeugen.
  15. Vorrichtung nach Anspruch 11, wobei die Anzahl K von Akkumulatoren (126, 126', 126_1 bis 126_K) konfiguriert ist, um „N-M+1“-mal jedes der Bits der K-Bit-Ausgabe der Differenzoperationsschaltung (124, 124') anzusammeln.
  16. Vorrichtung nach Anspruch 11, ferner aufweisend: eine Zählschaltung, welche konfiguriert ist, um eine Anzahl von Bits zu zählen, welche denselben Bitwert unter den N-Bits haben, wobei die Zufälligkeitsbestimmungsschaltung (160, 260, 260a, 260b, 260c, 260d, 360, 360a, 360b) konfiguriert ist, um die Zufälligkeit der N-Bits ferner basierend auf einer Ausgabe der Zählschaltung zu bestimmen.
  17. Vorrichtung nach Anspruch 16, wobei, in Antwort darauf, dass die Ausgabe der Zählschaltung geringer ist als ein zweiter Referenzwert, die Zufälligkeitsbestimmungsschaltung (160, 260, 260a, 260b, 260c, 260d, 360, 360a, 360b) konfiguriert ist, um die N-Bits als nicht zufällig zu bestimmen.
  18. Vorrichtung nach Anspruch 17, wobei der zweite Referenzwert basierend auf einem erwünschten Entropieniveau der N-Bits bestimmt wird.
  19. Vorrichtung nach Anspruch 17, wobei die Zählschaltung einen ersten Zähler (241a, 241b) aufweist, welcher konfiguriert ist, um eine Anzahl von Bits zu zählen, welche einen Bitwert von „null“ unter den N-Bits haben, und einen zweiten Zähler (242a, 242b), welcher konfiguriert ist, um eine Anzahl von Bits zu zählen, welche einen Bitwert von „eins“ unter den N-Bits haben, und in Antwort darauf, dass wenigstens eine einer Ausgabe des ersten Zählers (241a, 241b) und einer Ausgabe des zweiten Zählers (242a, 242b) geringer ist als der zweite Referenzwert, die Zufälligkeitsbestimmungsschaltung (160, 260, 260a, 260b, 260c, 260d, 360, 360a, 360b) konfiguriert ist, um die N-Bits als nicht zufällig zu bestimmen.
  20. Vorrichtung nach Anspruch 11, wobei die Zufälligkeitsbestimmungsschaltung (160, 260, 260a, 260b, 260c, 260d, 360, 360a, 360b) konfiguriert ist, um wenigstens eine Ausgabe unter den Ausgaben der Anzahl K von Akkumulatoren (126, 126', 126_1 bis 126_K) mit jedem eines dritten Referenzwerts und eines vierten Referenzwerts zu vergleichen, und in Antwort darauf, dass die wenigstens eine Ausgabe nicht zwischen dem dritten Referenzwert und dem vierten Referenzwert ist, die Zufälligkeitsbestimmungsschaltung (160, 260, 260a, 260b, 260c, 260d, 360, 360a, 360b) konfiguriert ist, um die N-Bits als nicht zufällig zu bestimmen.
  21. Vorrichtung zum Steuern eines Zufallszahlengenerators (10), wobei die Vorrichtung Folgendes aufweist: den Zufallszahlengenerator (10), welcher konfiguriert ist, um einen Bitstrom zu erzeugen; eine Zufälligkeitstestvorrichtung (100, 200), welche konfiguriert ist, um eine Differenz zwischen Bitwerten von zwei Bits jedes einer Mehrzahl von Bitpaaren zu erlangen, welche unterschiedliche Breiten in einer Bitsequenz, welche in dem Bitstrom enthalten ist, haben, um angesammelte Differenzen zu erlangen, welche den unterschiedlichen Breiten in einer Mehrzahl von unterschiedlichen Bitsequenzen entsprechen, welche durch ein Verschieben des Bitstroms erlangt werden, und konfiguriert, um ein Ausgangssignal basierend auf einer Variation in den angesammelten Differenzen zu erzeugen,; und einen Controller (20), welcher konfiguriert ist, um den Zufallszahlengenerator (10) basierend auf dem Ausgangssignal der Zufälligkeitstestvorrichtung (100, 200) zu steuern.
  22. Vorrichtung nach Anspruch 21, wobei der Controller (20) konfiguriert ist, um wenigstens eines von einem Initialisieren, Wiederstarten und Stoppen einer Operation des Zufallszahlengenerators (10) basierend auf dem Ausgangssignal der Zufälligkeitstestvorrichtung (100, 200) durchzuführen.
  23. Vorrichtung nach Anspruch 21, wobei die Zufälligkeitstestvorrichtung (100, 200) konfiguriert ist, um jede der angesammelten Differenzen, welche derselben Breite unter den unterschiedlichen Breiten entspricht, basierend auf einer zweiten Mehrzahl von Bitpaaren, welche dieselbe Breite in der Mehrzahl von unterschiedlichen Bitsequenzen haben, zu erlangen.
  24. Vorrichtung nach Anspruch 23, wobei die Zufälligkeitstestvorrichtung (100, 200) konfiguriert ist, um die Variation mit einem Referenzwert zu vergleichen, um das Ausgangssignal basierend auf einem Vergleichsergebnis zu erzeugen.
  25. Vorrichtung nach Anspruch 24, wobei der Controller (20) konfiguriert ist, um ein Einstellsignal basierend auf einer erwünschten Entropie des Bitstroms zu erzeugen und das Einstellsignal für die Zufälligkeitstestvorrichtung (100, 200) vorzusehen, und wobei der Referenzwert basierend auf dem Einstellsignal erzeugt wird.
DE102017104441.8A 2016-11-16 2017-03-03 Zufälligkeitstestvorrichtung und Verfahren für einen Zufallszahlengenerator Pending DE102017104441A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160152968A KR20180055299A (ko) 2016-11-16 2016-11-16 난수 생성기의 랜덤성 시험 장치 및 방법
KR10-2016-0152968 2016-11-16

Publications (1)

Publication Number Publication Date
DE102017104441A1 true DE102017104441A1 (de) 2018-05-17

Family

ID=62026378

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017104441.8A Pending DE102017104441A1 (de) 2016-11-16 2017-03-03 Zufälligkeitstestvorrichtung und Verfahren für einen Zufallszahlengenerator

Country Status (4)

Country Link
US (1) US10146507B2 (de)
KR (1) KR20180055299A (de)
CN (1) CN108089840B (de)
DE (1) DE102017104441A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180055299A (ko) * 2016-11-16 2018-05-25 삼성전자주식회사 난수 생성기의 랜덤성 시험 장치 및 방법
EP3577927A1 (de) * 2017-02-06 2019-12-11 Telefonaktiebolaget LM Ericsson (PUBL) Gesetzeskonforme abhörsicherheit
EP3852026A4 (de) * 2018-09-13 2021-10-06 Fujitsu Limited Optimierungsvorrichtung und steuerungsverfahren für optimierungsvorrichtung
EP3674884A1 (de) * 2018-12-27 2020-07-01 Secure-IC SAS Vorrichtung und verfahren zum testen einer von einem zufallszahlengenerator erzeugten sequenz
KR102372740B1 (ko) * 2019-04-09 2022-03-14 한국전자통신연구원 난수 생성 장치 및 이의 동작 방법

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1320026A1 (de) * 2001-12-13 2003-06-18 STMicroelectronics S.r.l. Verfahren zum Generieren einer Zufallszahlensequenz und eines relativen Zufallbitgenerators
US6947960B2 (en) * 2002-02-21 2005-09-20 Koninklijke Philips Electronics N.V. Randomness test utilizing auto-correlation
US7295674B2 (en) 2002-02-21 2007-11-13 Nxp B.V. On-line randomness test for detecting irregular pattern
US20030158876A1 (en) 2002-02-21 2003-08-21 Koninklijke Philips Electronics N.V. On-line randomness test through overlapping word counts
US20030187889A1 (en) 2002-03-26 2003-10-02 Koninklijke Philips Electronics N.V. Functional gap average on-line randomness test
US6889236B2 (en) * 2002-03-26 2005-05-03 Koninklijke Philips Electronics N.V. Gap average on-line randomness test
US6675113B2 (en) * 2002-03-26 2004-01-06 Koninklijke Philips Electronics N.V. Monobit-run frequency on-line randomness test
US7031991B2 (en) 2002-04-17 2006-04-18 Koninklijke Philips Electronics N.V. Hadamard-transform on-line randomness test
US6993543B2 (en) 2002-04-22 2006-01-31 Koninklijke Philips Electronics N.V. Gap histogram on-line randomness test
US7788479B2 (en) 2002-07-25 2010-08-31 International Business Machines Corporation Apparatus, system and method of ensuring that only randomly-generated numbers that have passed a test are used for cryptographic purposes
JP4094570B2 (ja) 2004-03-02 2008-06-04 株式会社東芝 乱数検査回路、乱数生成回路、半導体集積装置、icカードおよび情報端末機器
US7827223B2 (en) * 2004-04-22 2010-11-02 Fortress Gb Ltd. Accelerated throughput synchronized word stream cipher, message authenticator and zero-knowledge output random number generator
JP4413858B2 (ja) 2005-12-13 2010-02-10 株式会社東芝 乱数検定回路
JP4883273B2 (ja) * 2006-01-11 2012-02-22 日本電気株式会社 乱数品質管理装置および管理方法
JP2008242815A (ja) 2007-03-27 2008-10-09 Toshiba Corp 乱数発生回路用テスト回路及び乱数発生回路用テスト方法
KR20090012528A (ko) * 2007-07-30 2009-02-04 삼성전자주식회사 난수 발생 장치의 자발적인 온라인 테스트 장치 및 방법
US8805905B2 (en) 2007-09-18 2014-08-12 Seagate Technology Llc On-line randomness test for restart random number generators
US8676870B2 (en) 2007-09-18 2014-03-18 Seagate Technology Llc Active test and alteration of sample times for a ring based random number generator
JP2009098973A (ja) 2007-10-17 2009-05-07 Toshiba Corp 乱数生成回路搭載集積回路の検査方法および乱数生成回路搭載集積回路
US8200727B2 (en) 2008-02-14 2012-06-12 Apple Inc. Method and apparatus for verifying and diversifying randomness
US8868630B1 (en) * 2011-03-18 2014-10-21 Board Of Regents Of The University Of Texas System Verification of pseudorandom number streams
US9135129B2 (en) * 2013-01-11 2015-09-15 Freescale Semiconductor, Inc. Method and apparatus for testing a random number generator tester
US20150199175A1 (en) * 2013-02-14 2015-07-16 Yongge Wang Systems and Methods for Performing Randomness and Pseudorandomness Generation, Testing, and Related Cryptographic Techniques
KR20140111844A (ko) 2013-03-12 2014-09-22 삼성전자주식회사 난수 발생기 및 난수 품질 테스트 방법
DE102013213385A1 (de) * 2013-07-09 2015-01-15 Robert Bosch Gmbh Verfahren zur Beurteilung einer Ausgabe eines Zufallsgenerators
JP6176076B2 (ja) * 2013-11-22 2017-08-09 富士通株式会社 物理乱数生成装置、物理乱数生成方法、及び物理乱数生成システム
KR101557761B1 (ko) 2014-02-12 2015-10-06 한국전자통신연구원 실난수 발생기의 출력 수열 안정화 장치 및 방법
KR101583471B1 (ko) 2014-12-31 2016-01-08 고려대학교 산학협력단 임의성을 검증하는 통계적 기법을 이용하여 난수를 공급하는 장치 및 방법
KR20180055299A (ko) * 2016-11-16 2018-05-25 삼성전자주식회사 난수 생성기의 랜덤성 시험 장치 및 방법

Also Published As

Publication number Publication date
CN108089840A (zh) 2018-05-29
US10146507B2 (en) 2018-12-04
CN108089840B (zh) 2022-03-08
KR20180055299A (ko) 2018-05-25
US20180136907A1 (en) 2018-05-17

Similar Documents

Publication Publication Date Title
DE102017104441A1 (de) Zufälligkeitstestvorrichtung und Verfahren für einen Zufallszahlengenerator
DE10045568B4 (de) Ereignisgestütztes Halbleiterprüfsystem
DE102018131578A1 (de) Verwenden einer rückführenden verzögerungsleitung mit einem zeit-digital-wandler
EP1643643A1 (de) Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen
DE112005001349T5 (de) Taktgenerator und Halbleitertestvorrichtung
DE102014102501A1 (de) Zufallszahlgenerator
DE102013204274A1 (de) Verfahren zum Erkennen einer Korrelation
DE102019122145A1 (de) Gesicherte x-modulare redundanz
DE102012210990A1 (de) Verfahren zum Erzeugen von Zufallszahlen
DE102016119750B4 (de) Vorrichtungen und Verfahren zur Mehrkanalabtastung
DE102014200163A1 (de) Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
DE102008008099B4 (de) Verfahren und Vorrichtung zum Verteilen von Zufallselementen
DE102014200309A1 (de) Verfahren zum Überprüfen einer Ausgabe
WO2013004490A1 (de) Verfahren zum erzeugen einer zufälligen ausgangsbitfolge
DE102018112635A1 (de) Digitalregisterkomponente und Analog-Digital-Wandler, Detektierend eine Signalverzerrung in Hochstrahlungsumgebungen
DE102006027448B4 (de) Schaltungsanordnung
DE102014105218A1 (de) Suchvorrichtung mit Verwendung von endlichen Automaten für Teilworte
DE112008001433T5 (de) Halbleiter-Testgerät und Testverfahren
DE102014200164A1 (de) Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
DE102015115944A1 (de) Datenwiederherstellungsschaltung
Pomeranz et al. A diagnostic test generation procedure based on test elimination by vector omission for synchronous sequential circuits
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
DE102013213095A1 (de) Erzeugen von einer Anzahl von Zufallsbits

Legal Events

Date Code Title Description
R012 Request for examination validly filed