DE102013204678A1 - Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits - Google Patents

Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits Download PDF

Info

Publication number
DE102013204678A1
DE102013204678A1 DE102013204678.2A DE102013204678A DE102013204678A1 DE 102013204678 A1 DE102013204678 A1 DE 102013204678A1 DE 102013204678 A DE102013204678 A DE 102013204678A DE 102013204678 A1 DE102013204678 A1 DE 102013204678A1
Authority
DE
Germany
Prior art keywords
bit
random
bits
counter
bit pattern
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102013204678.2A
Other languages
English (en)
Inventor
Pascale Böffgen
Markus Dichtl
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE102013204678.2A priority Critical patent/DE102013204678A1/de
Publication of DE102013204678A1 publication Critical patent/DE102013204678A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

Verfahren zum Klassifizieren von Zufallsbits (ZBi) umfassend: a) Bereitstellen (S0) von Zufallsbits (ZBi) als eine Bitfolge (BF); b) Erfassen (S1) einer vorgegebenen Anzahl (n) von Bits (B1–Bn) der Bitfolge (BF) als Bitgruppe (BG); c) Zuordnen (S2) der erfassten Bitgruppe (BG) zu einem Bitmuster, wobei dem Bitmuster ein Bitmusterzähler zum Zählen des Auftretens des Bitmusters zugeordnet ist; d1) Inkrementieren (S4) des Bitmusterzählers, welcher dem Bitmuster zugeordnet ist, dem die erfasste Bitgruppe (BG) zugeordnet ist, falls der Wert (BZ1–BZ2 n) des Bitmusterzählers geringer ist als ein vorgegebener Bitmusterzählerschwellwert (BZS) größer als Eins; d2) Inkrementieren (S5) eines Kollisionszählers, welcher der Bitfolge (BF) zugeordnet ist, falls der Wert (BZ1–BZ2 n) des Bitmusterzählers, dem das Bitmuster der erfassten Bitgruppe (BG) zugeordnet ist, größer oder gleich ist als der vorgegebene Bitmusterzählerschwellwert (BZS); e) Vergleichen (S6) des Werts (KZ) des Kollisionszählers mit einem vorgegebenen Kollisionsschwellwert (KZS); und f) Klassifizieren (S7, S8) der Zufallsbits (ZBi) als zufällig oder nicht zufällig in Abhängigkeit von dem Vergleichen (S6).

Description

  • Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits. Beispielsweise werden Zufallsbits als Sequenzen oder Folgen erzeugt, die als binäre Zufallszahlen weiterverwendet werden können.
  • Die vorgeschlagenen Verfahren und Vorrichtungen dienen beispielsweise der Erkennung von Zufallsbits oder Zufallsbitfolgen, die gute zufällige Eigenschaften haben, und andererseits Zufallsbits, die als nicht zufällig gelten. Zufallsdaten werden beispielsweise bei Sicherheitsanwendungen benötigt, wobei aus erzeugten Zufallsbits beispielsweise kryptographische Schlüssel oder dergleichen abgeleitet werden.
  • Bei echten Zufallsbits oder Zufallsbitfolgen haben die erzeugten Bits eine gleiche Auftrittswahrscheinlichkeit von 0- und 1-Bits und sind voneinander statistisch unabhängig. Als Quelle für entsprechende zufällige Bits sind Einrichtungen mit hoher Entropie gewünscht. Unter anderem können physikalische Prozesse, wie radioaktive Zerfälle, die zufällige Ereignisse sind, als zufallsgebende Objekte verwendet werden.
  • Eine Schwierigkeit besteht meist darin, aufwandsgünstige Messungen an entsprechenden physikalischen Systemen durchzuführen, um Zufallsbits oder -daten ableiten zu können, und dann zu klassifizieren. Einfacher realisierbare Pseudozufallszahlengeneratoren erzeugen meist in Abhängigkeit von einem Algorithmus und so genannten Seed-Daten Zufallsbits.
  • Wünschenswert ist es insbesondere, aufwandsgünstige Hardware-Zufallszahlengeneratoren zu verwenden, die dennoch für die jeweilige Anwendung ausreichend gute Zufälligkeiten, also statistische Unabhängigkeit und geringe Schiefe (Abweichung der Wahrscheinlichkeit von Null- bzw. Eins-Bits vom Idealwert 1/2), in ihren erzeugten Zufallsbits haben. Um die Zufälligkeit beispielsweise bei physikalischen Zufallszahlengeneratoren zu bestimmen, werden üblicher Weise statistische Tests eingesetzt, um Abweichungen vom statistischen Ideal zu erkennen. Dabei wird eine große Anzahl von Zufallsbits erfasst und dann auf einem geeigneten Rechnersystem statistisch ausgewertet. Es sind in der Vergangenheit so genannte Online-Tests wichtiger geworden, die direkt auf dem System, das auch die Zufallszahlen oder -bits erzeugt, ablaufen können und wenig Implementierungsaufwand haben. Derartige Online-Tests ermöglichen es, bei einer starken Abweichung vom statistischen Ideal der erzeugten zufälligen Daten eine Warnung auszusenden bzw. die Zufallszahlenproduktion zu unterbinden.
  • In der Vergangenheit wurden solche statistischen Tests von Zufallszahlen mit Hilfe aufwändiger Speicher- und Rechenoperationen durchgeführt. Bekannt ist beispielsweise der so genannte n-Tupel-Test, wobei zu testende Daten in nicht überlappende Blöcke von einer vorgegebenen Bitzahl, beispielsweise n, aufgeteilt werden. Aus der Häufigkeit des Auftretens der in entsprechend n-Bit-langen Blöcken vorliegenden Bitmuster wird dann mit Hilfe des Chi-Quadrat-Tests statistisch eine Abweichung vom statistisch erwarteten Wert durchgeführt. Entsprechende Chi-Quadrat-Prüfungen sind jedoch nur mit hohem Rechenaufwand möglich, insbesondere bei längeren Bitblöcken rechenintensiv und daher unerwünscht. Um Chi-Quadrat-Statistiken auszuwerten, müssen Potenzen der Abweichungen vom Erwartungswert bestimmt werden, so dass besonders aufwändige Subtraktions- und Multiplikationsschaltungen selbst bei einer fest verdrahteten Implementierung notwendig werden.
  • Bekannt ist ferner ein so genannter Kollisionstest, bei dem die zu testenden Bitfolgen in n-Tupel von Bits aufgeteilt werden. Es wird dann laufend überprüft, ob ein vorliegendes n-Bit-Muster bereits zuvor aufgetreten ist oder nicht. Jedes Mal, wenn ein Bitmuster zuvor bereits erfasst wurde, wird ein Kollisionszähler um Eins erhöht. Anhand des Kollisionszählers wird nach Durchlauf der Zufallsdaten entschieden, ob die Daten als zufällig akzeptiert werden können. Beim Kollisionstest werden aussagekräftige Klassifizierungen von Zufallsdaten nur bei größeren Werten von n erreicht, da ansonsten nach kurzer Zeit ausschließlich Kollisionen gezählt werden. Bei beispielsweise möglichen n-Werten von n = 30 ergibt sich dann ein sehr hoher Speicherbedarf, was insbesondere in prozessorlosen Systemen unerwünscht ist.
  • Wünschenswert ist daher eine einfach mögliche Implementierung hinsichtlich der Rechen- und Speicheranforderungen von Zufälligkeitstests, die online an Zufallsdaten durchgeführt werden sollen. Insofern ist es eine Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren und/oder eine verbesserte Vorrichtung zum Erzeugen und/oder Klassifizieren von Zufallsbits bereitzustellen.
  • Demgemäß wird ein Verfahren zum Klassifizieren von Zufallsbits vorgeschlagen, welches die Schritte umfasst:
    • a) Bereitstellen von Zufallsbits als eine Bitfolge;
    • b) Erfassen einer vorgegebenen Anzahl von Bits der Bitfolge als Bitgruppe;
    • c) Zuordnen der erfassten Bitgruppe zu einem Bitmuster, wobei dem Bitmuster ein Bitmusterzähler zum Zählen des Auftretens des Bitmusters zugeordnet ist;
    • d1) Inkrementieren des Bitmusterzählers, welcher dem Bitmuster zugeordnet ist, dem die erfasste Bitgruppe zugeordnet ist, falls der Wert des Bitmusterzählers geringer ist als ein vorgegebener Bitmusterzählerschwellwert, wobei der Bitmusterzählerschwellwert größer als Eins ist;
    • d2) Inkrementieren eines Kollisionszählers, welcher der Bitfolge zugeordnet ist, falls der Wert des Bitmusterzählers, dem das Bitmuster der erfassten Bitgruppe zugeordnet ist, größer oder gleich ist als der vorgegebene Bitmusterzählerschwellwert;
    • e) Vergleichen des Bitwertes des Kollisionszählers mit einem vorgegebenen Kollisionszählerschwellwert; und
    • f) Klassifizieren der Zufallsbits als zufällig oder nicht zufällig in Abhängigkeit von dem Vergleichen.
  • Bei dem vorgeschlagenen Verfahren können die beispielsweise von einem Zufallsbitgenerator bereitgestellten oder erzeugten Zufallsbits in Gruppen oder Tupel erfasst werden, die eine vorgegebene Anzahl n von Bits aufweisen. Insofern ist ein geringer Speicherbedarf von zunächst nur n Bits notwendig. Aus den n Bits können sich 2n unterschiedliche Muster ergeben, welche mit Hilfe von Bitmusterzählern hinsichtlich der Häufigkeit des Auftretens in den zu klassifizierenden Zufallsbitdaten erfasst werden.
  • Für die Bitmusterzähler werden ein oder mehrere Bitmusterzählerschwellwerte vorgegeben, so dass ein Kollisionszähler nur dann inkrementiert wird, wenn ein Bitmuster zuvor bereits eine gewisse Anzahl von Malen in den Zufallsbits bzw. der Bitfolge aufgetreten ist. Der Kollisionszähler wird daher nicht bei jedem doppelten Auftreten eines Bitmusters automatisch erhöht.
  • Bei der Bestimmung oder Auswahl des Kollisionszählerschwellwerts und der Bitmusterzählerschwellwerte oder eines einzigen Bitmusterzählerschwellwerts können Werte so gewählt werden, dass hinsichtlich der Klassifizierungszuverlässigkeit und der benötigten Speicherplatz- und Rechenleistungsanforderungen ein günstiger Kompromiss erzielt wird.
  • Wird schließlich der Kollisionszähler auf oder über den Kollisionszählerschwellwert hinweg inkrementiert, kann die erfasste Bitfolge als nicht ausreichend zufällig klassifiziert werden. Wird bei den überprüften Zufallsbits der Bitfolge der Kollisionszähler nicht auf oder über den gegebenen Kollisionszählerschwellwert inkrementiert, erfolgt beispielsweise eine Klassifikation als ausreichend zufällige Daten bzw. Zufallsbits. Das vorgeschlagene Verfahren lässt sich einfach implementieren und kann als eine Mischung von n-Tupel und Kollisionstest verstanden werden.
  • Es wird ferner eine Vorrichtung zur Durchführung des vorgeschlagenen Klassifizierungs- und/oder Erzeugungsverfahren für Zufallsbits beansprucht.
  • Eine Ausführungsform der Vorrichtung, welche insbesondere geeignet ist, das vorgeschlagene Klassifizierungs- und/oder Erzeugungsverfahren für Zufallsbits durchzuführen, umfasst mindestens:
    eine Speichereinrichtung zum Abspeichern einer vorgegebenen Anzahl von Bits der Zufallsbits als Bitgruppe;
    mehrere Bitmusterzählerspeicher zum Speichern von Werten von Bitmusterzählern, wobei so viele Bitmusterzählerspeicher vorgesehen sind, wie sich verschiedene Bitmuster aus der vorgegebenen Anzahl von Bits der Bitgruppen bilden lassen;
    einen Kollisionszählerspeicher zum Speichern eines Wertes eines Kollisionszählers;
    eine Vergleichseinrichtung, welche eingerichtet ist, die Werte der Bitmusterzähler mit einem Bitmusterzählerschwellwert zu vergleichen, und/oder welche eingerichtet ist, den Wert des Kollisionszählers mit einem Kollisionszählerschwellwert zu vergleichen, wobei die Vergleichseinrichtung jeweils ein Vergleichsergebnis liefert;
    eine Inkrementiereinrichtung, welche eingerichtet ist, den Wert des Kollisionszählers in Abhängigkeit von dem Vergleichsergebnis der Vergleichseinrichtung zu inkrementieren, wenn der Wert des Kollisionszählers kleiner ist als der Kollisionszählerschwellwert, und/oder welche eingerichtet ist, den Wert eines jeweiligen Bitmusterzählers in Abhängigkeit von in der Speichereinrichtung gespeicherten Bits zu inkrementieren; und
    eine Klassifizierungseinrichtung, welche eingerichtet ist, in Abhängigkeit von dem Wert des Kollisionszählers die Zufallsbits als zufällig oder nicht zufällig zu klassifizieren.
  • Bei der Vorrichtung ist zum Beispiel eine jeweilige Adresse der Bitmusterzähler durch die in der Speichereinrichtung als Bitgruppe abgespeicherten Bits vorgegeben. Denkbar ist zum Beispiel, dass die als Bitgruppe vorliegenden Bitwerte als Zeiger auf den Speicher für den jeweiligen Bitmusterzähler verwendet werden.
  • Die Zufallsbits, welche Gruppen zugeordnet werden, können beispielsweise nacheinander erzeugt werden und dann jeweils zu Bitgruppen, beispielsweise mit einer Anzahl von n = 4 Bits, zusammengefasst werden. Es ist jedoch auch möglich, überlappende n-Tupel von Bits als jeweilige Bitgruppe zu benutzen.
  • In Ausführungsformen des Verfahrens oder der Vorrichtung wird die Bitgruppe als eine Binärzahl mit einer Anzahl von Stellen verarbeitet, die der Anzahl von Bits einer Bitgruppe entspricht. Dabei kann die Bitgruppe eine Speicheradresse für den Bitmusterzähler bestimmen.
  • In Ausführungsformen des Verfahrens erfolgt die Durchführung der Schritte b) bis d) mehrfach nacheinander. Insofern lässt sich eine vorgegebene Anzahl von Zufallsbits in die Bitgruppen zuordnen bzw. erfassen und führt nach der Durchführung des Klassifizierungsverfahrens zu einem Kollisionszählerschwellwert, der als ausreichend für eine Zuverlässigkeit der betrachteten Zufallsbits gilt oder nicht.
  • In Ausführungsformen des Verfahrens erfolgt die Durchführung der Schritte b) bis e) mehrfach nacheinander. Insofern lässt sich eine vorgegebene Anzahl von Zufallsbits in die Bitgruppen zuordnen bzw. erfassen und führt nach der Durchführung des Inkrementierungsschritts d2) zu einem Kollisionszählerschwellwert, der als ausreichend für eine Zuverlässigkeit der betrachteten Zufallsbits gilt oder nicht. Bei der mehrfachen Ausführung des Schrittes e) brauchen die zum Vergleichen verwendeten Kollisionszählerschwellwerte nicht alle gleich zu sein. Sinnvoll sind dabei insbesondere Kollisionszählerschwellwerte, die bei späteren Anwendungen des Schrittes e) größer oder gleich den Kollisionszählerschwellwerten bei früheren Anwendungen des Schrittes e) sind. Durch die Verwendung zunächst kleinerer Kollisionszählerschwellwerte kann erreicht werden, dass besonders schwerwiegende Defekte der Zufallszahlenquelle früher entdeckt werden, so dass auch früher die Erzeugung von Zufallszahlen schlechter Qualität abgebrochen werden oder eine Warnung ausgegeben werden kann.
  • Insofern kann eine Ausführungsform umfassen, dass der jeweilige Kollisionszählerschwellwert in Abhängigkeit von einem vorherigen Abarbeiten oder Durchführen der Schritte a) bis e) bestimmt wird. Man kann daher einen veränderlichen Kollisionszählerschwellwert haben.
  • Es ist möglich, dass in Varianten des Verfahrens mindestens ein Zufallsbit der Bitfolge mehrfach in unterschiedlichen Bitgruppen erfasst oder zugeordnet wird.
  • In Ausführungsformen des Verfahrens ist die vorgegebene Anzahl von Bits als Bitgruppe weniger als 16 Bits, vorzugsweise weniger als 8. In Ausführungsformen kann bei dem Verfahren die Bitgruppe zwischen 2 und 8 Bits umfassen. Die Anzahl der möglichen Bitmuster, welche mit Hilfe von Bitmusterzählern hinsichtlich ihrer Häufigkeit gezählt werden, ist dann bei einer Anzahl n von Bits 2n.
  • In Ausführungsformen des Verfahrens werden ausschließlich die Zufallsbits einer einzelnen Bitgruppe, die Werte der Bitmusterzähler und der Wert des Kollisionszählers gleichzeitig gespeichert. Es ist nicht notwendig, alle zu untersuchenden Bits der Bitfolge gleichzeitig abzuspeichern. Vielmehr kann bei einer hardwaremäßigen Implementierung des Verfahrens der Speicherplatz sehr gering gehalten werden.
  • Das vorgeschlagene Verfahren und die Vorrichtung zum Klassifizieren und Erzeugen von Zufallsbits haben insbesondere den Vorteil, dass das Verfahren als Online-Test einfach auch auf prozessorloser Hardware realisierbar ist. Es sind keine üblichen aufwändigen statistischen Operationen mit Potenzbestimmungen notwendig. Es kann daher ein aussagekräftiger Test für die Qualität der betrachteten Zufallsdaten erzeugt werden, ohne notwendigerweise Mikroprozessoren einzusetzen.
  • Es ist möglich, die vorgeschlagenen Testverfahren auch mehrfach an einer Auswahl oder mehrfach an verschiedenen Teilsequenzen von zuvor bereitgestellten Zufallsbits durchzuführen und anhand der Einzeltestergebnisse die Zufallsdaten zu klassifizieren.
  • Vorteilhaft bei dem vorgeschlagenen Verfahren ist ferner, dass der Speicheraufwand durch die Wahl der Größe der Bitmusterzählerschwellwerte und Kollisionszählerschwellwerte gering gehalten werden kann. Es werden ausschließlich Vergleiche von Werten und Inkrementieren von Zählern als Rechenoperationen notwendig. Eine Online-Klassifizierung von Zufallsdaten wird einfach möglich gemacht.
  • Weiterhin wird ein Computerprogramm-Produkt vorgeschlagen, welches auf einer programmgesteuerten Einrichtung die Durchführung eines entsprechenden Verfahrens veranlasst.
  • Ein Computerprogramm-Produkt wie ein Computerprogramm-Mittel kann beispielsweise als Speichermedium, wie Speicherkarte, USB-Stick, CD-ROM, DVD oder auch in Form einer herunterladbaren Datei von einem Server in einem Netzwerk bereitgestellt oder geliefert werden. Dies kann zum Beispiel in einem drahtlosen Kommunikationsnetzwerk durch die Übertragung einer entsprechenden Datei mit dem Computerprogramm-Produkt oder dem Computerprogramm-Mittel erfolgen. Als programmgesteuerte Einrichtung kommt insbesondere eine Steuereinrichtung, wie zum Beispiel ein Mikroprozessor für eine Smartcard oder dergleichen in Frage. Das Verfahren oder die Vorrichtung kann auch festverdrahtet oder in konfigurierbaren FPGAs oder Asics implementiert werden.
  • Weiterhin wird ein Datenträger mit einem gespeicherten Computerprogramm mit Befehlen vorgeschlagen, welche die Durchführung eines entsprechenden Verfahrens auf einer programmgesteuerten Einrichtung veranlassen.
  • Weitere mögliche Implementierungen der Erfindung umfassen auch nicht explizit genannte Kombinationen von zuvor oder im Folgenden bezüglich der Ausführungsbeispiele beschriebenen Verfahrensschritte, Merkmale oder Ausführungsformen des Verfahrens oder der Vorrichtung zum Erzeugen und/oder Klassifizieren von Zufallsbits. Dabei wird der Fachmann auch Einzelaspekte als Verbesserungen oder Ergänzungen zu der jeweiligen Grundform der Erfindung hinzufügen oder abändern.
  • Die oben beschriebenen Eigenschaften, Merkmale und Vorteile dieser Erfindung sowie die Art und Weise, wie diese erreicht werden, werden klarer und deutlicher verständlich im Zusammenhang mit der folgenden Beschreibung der Ausführungsbeispiele, die im Zusammenhang mit den Zeichnungen näher erläutert werden.
  • Dabei zeigen:
  • 1 ein schematisches Ablaufdiagramm für ein Verfahren zum Klassifizieren von Zufallsbits;
  • 2 eine schematische Darstellung eines Ausführungsbeispiels für eine Vorrichtung zum Erzeugen und Klassifizieren von Zufallsbits;
  • 3 eine schematische Darstellung für eine mögliche Zuordnung von Zufallsbits in Bitgruppen; und
  • 46 Darstellungen von kumulativen Verteilungsfunktionen von Kollisionszählerwerten beim Betreiben des Klassifizierungsverfahrens mit Testzufallsbits.
  • In den Figuren sind gleiche oder funktionsgleiche Elemente mit denselben Bezugszeichen versehen, sofern nichts anderes angegeben ist.
  • In der 1 ist ein schematisches Ablaufdiagramm für ein Verfahren zum Klassifizieren von Zufallsbits dargestellt, und die 2 zeigt ein Ausführungsbeispiel für eine Vorrichtung, welche zur Durchführung des Verfahrens geeignet ist.
  • Bei dem Verfahren werden Zufallsdaten in der Form von Zufallsbits, die logische Zustände High und Low oder 1 und 0 darstellen, überprüft. Bei echten Zufallszahlen tritt jedes Bit 0 oder 1 mit der gleichen Wahrscheinlichkeit 1/2 auf. Die zu klassifizierenden Daten werden beispielsweise im Schritt S0, wie in der 1 angedeutet ist, bereitgestellt. Die Bits können dabei taktweise erzeugt werden oder auch in einem Speicher vorliegen und untersucht werden.
  • In der 2, die eine Vorrichtung 1 zum Erzeugen und Klassifizieren von Zufallsdaten bzw. Zufallsbits zeigt, ist ein Zufallsbitgenerator 2 angedeutet. Der Zufallsbitgenerator 2 erzeugt im Sinne des Schritts S0 Zufallsbits als eine Bitfolge BF.
  • Zum Prüfen und Klassifizieren der Zuverlässigkeit der erzeugten Bits wird im Schritt S1 eine vorgegebene Anzahl von Bits der Bitfolge BF erfasst. Bei einer Implementierung der Vorrichtung, wie sie in der 2 gezeigt ist, wird eine Bitgruppe BG mit einer vorgegebenen Anzahl von n Bits B1–Bn im Speicher 3 abgelegt. Das Erfassen oder Speichern der Bits B1–Bn der Bitgruppe BG kann beispielsweise durch einfaches nacheinander Einlesen der Bits der Bitfolge in die n Speicherzellen erfolgen. Es sind jedoch auch andere Erfassungsmöglichkeiten der Bits B1–Bn der Bitgruppe BG möglich.
  • In der 3 ist schematisch angedeutet, wie in einer Ausführungsform die erzeugten Zufallsbits einer Bitgruppe zugeordnet bzw. erfasst werden. Die 3 zeigt dabei eine Bitfolge BF mit nacheinander beispielsweise vom Zufallsbitgenerator 2 erzeugten Zufallsbits ZB1–ZBp. Dabei kann p im Grunde eine beliebige Zahl sein. Um nun die erzeugten Zufallsbits ZB1–ZBp in zufällige oder nicht zufällige Zufallsbits zu klassifizieren, wird eine Bitgruppe BG herausgegriffen, die beispielsweise nacheinander erzeugte Zufallsbits ZB1, ZB2, ZB3 und ZB4 umfasst. Dies ist in der unteren Zeile der 3 angedeutet. Man erhält somit für den weiteren Verfahrensablauf ein Tupel von n = 4 Bits. Diese sind, wie in der 2 angedeutet, in der Speichereinrichtung 3 als Bitgruppe BG abgelegt. In der 1 ist dies als Schritt S1 zum Erfassen einer vorgegebenen Anzahl von n Bits der Bitfolge BF als Bitgruppe BG bzw. n-Tupel von Bits angedeutet.
  • Im Folgeschritt S2 wird die erfasste Bitgruppe BG einem Bitmuster zugeordnet. Aus n Bits lassen sich 2n verschiedene Bitmuster erzeugen. Insofern sind Bitmusterzähler vorgesehen, deren Werte BZ1 bis BZ2 n in einem Bitmusterzählerspeicher 4 abgelegt werden können. Nach dem Bestimmen oder Erfassen des der Bitgruppe BG zugeordneten Bitmusters wird im Schritt S3 geprüft, ob der entsprechende Bitmusterzähler bereits einen Schwellwert erreicht hat oder nicht. Falls im Schritt S3 der Bitmusterzähler geringer als ein vorgegebener Bitmusterzählerschwellwert BZS ist, wird der Wert des Bitmusterzählerschwellwertes im Schritt S4 um Eins inkrementiert. In der Implementierung als Vorrichtung, wie es in der 2 dargestellt ist, ist dazu eine Vergleichseinrichtung 8 vorgesehen, die beispielsweise den Wert BZi eines i-ten Bitmusterzählers mit dem im Speicher 5 abgelegten Bitmusterzählerschwellwert BZS vergleicht. Ist BZi kleiner BZS, liefert die Vergleichseinrichtung 8 ein entsprechendes Signal an eine Inkrementiereinrichtung 6, welche ein Inkrementiersignal IS1 an den Speicher 6 sendet, so dass der Wert des Bitmusterzählers BZi erhöht wird. Insofern zählen die Bitmusterzähler die Häufigkeit des Auftretens der Bitmuster in den erfassten Gruppen von Zufallsbits.
  • Anschließend erfolgt, wie in der 1 dargestellt ist, das erneute Erfassen eines weiteren n-Tupel von Bits oder einer weiteren Bitgruppe BG gemäß Schritt S1. Es wird erneut eine Zuordnung zu einem Bitmuster vorgenommen (Schritt S2) und geprüft, ob der entsprechende Bitmusterzähler schon den Bitmusterzählerschwellwert BZS erreicht hat. Falls dies im Schritt S3 der Fall ist, wurde das aktuell betrachtete Bitmuster, welches durch die Bitgruppe BG realisiert ist, bereits BZS mal erfasst, und im Schritt S5 wird der Wert eines Kollisionszählers KZ erhöht. Dazu ist, wie in der 2 der Vorrichtung zum Erzeugen und Klassifizieren von Zufallsbits 1 dargestellt ist, ein Kollisionszählerspeicher 7 vorgesehen, der den Wert des Kollisionszählers abspeichert. Falls somit im Schritt S3 festgestellt wurde, dass das betrachtete Bitmuster bereits BZS mal zuvor erfasst wurde, d.h. der Wert des Bitmusterzählers BZS ist, veranlasst die Vergleichseinrichtung 8 mit Hilfe der Inkrementiereinrichtung 6, dass der Kollisionszählerwert KZ erhöht wird. Dazu wird ein Inkrementiersignal IS2 erzeugt.
  • In einem folgenden Schritt S6 wird geprüft, ob der Kollisionszählerwert KZ gleich oder kleiner ist als der festgelegte Kollisionszählerschwellwert KZS im Schwellwertspeicher 5. Falls der Kollisionszählerwert KZ gleich oder kleiner als der Kollisionszählerschwellwert KZS ist, wird im Schritt S8 klassifiziert, dass die Zufallsbitfolge BF noch akzeptabel zufällig ist und, wie es in der 1 dargestellt ist, werden weitere Bitgruppen oder n-Tupel von Bits B1–Bn geprüft. Falls der Kollisionszählerwert KZ größer als der Kollisionszählerschwellwert KZS ist, was mit Hilfe der Vergleichseinrichtung 8 geprüft wird, wird im Schritt S7 die zu prüfende Bitfolge von Zufallsbits als nicht ausreichend zufällig klassifiziert.
  • Insofern kann eine Klassifizierungseinrichtung 10, welche den Speicher 7 des Kollisionszählers ausliest, ein entsprechendes Klassifizierungsergebnis oder Signal erzeugen. Alternativ oder zusätzlich kann die Vorrichtung auch mit einer Schnittstelle 9 zum Auslesen des Kollisionszählers bzw. des Speichers 7 mit dem Wert des Kollisionszählers KZ vorgesehen sein. Die Vorrichtung, wie sie in der 2 zum Klassifizieren und Erzeugen von Zufallsbits dargestellt ist, kann dabei computerimplementiert sein, oder auch fest verdrahtet.
  • Ein Pseudocode für die Durchführung des Verfahrens zum Klassifizieren ist im Folgenden wiedergegeben:
    Figure DE102013204678A1_0002
  • Bei dem obigen Pseudocode werden Gruppen von n Bits oder n-Tupel verwendet. Daraus ergeben sich 2n Bitmusterzähler, die als Feld bitmusterzaehler[·] angegeben sind. Der Variablen kollisionszaehler ist der Wert des Kollisionszählers KZ zugeordnet. Die Zahl ntupelzahl gibt die Anzahl der zu prüfenden n-Tupel an, d.h. die gesamte Zahl der zum Testen oder Klassifizieren benötigten Zufallsbits ist ntupelzahl × n. Als gettupleasinteger(·) ist eine Funktion bezeichnet, die das nächste n-Tupel von Bits liefert und einer ganzen Zahl zuordnet. Man betrachtet insofern das n-Tupel als Binärzahl. Mit g ist der Bitmusterzählerschwellwert bezeichnet, die Variable kollisionszaehler enthält den aktuellen Kollisionszählerwert KZ, und schwelle wird der Kollisionszählerschwellwert KZS zugewiesen.
  • In der ersten Schleife werden die Bitmusterzähler und der Kollisionszähler mit Null initialisiert.
  • In der zweiten Schleife werden die ntupelzahl Gruppen oder Tupel von n Bits gemäß der 1 schematisch erfasst und deren Häufigkeit erfasst. Sobald ein Bitmuster mindestens g mal bzw. BZS mal vorkommt, wird der Kollisionszähler inkrementiert. Sofern nach Durchlauf oder Prüfen aller Bits bzw. Bitmuster der Kollisionszähler gleich schwelle bzw. KZS oder größer ist, werden die Zufallsbits als nicht in Ordnung erkannt, während ansonsten die betrachteten Zufallsbits als zufällig klassifiziert.
  • Im Folgenden sind Beispiele der Durchführung des Klassifizierungsverfahrens, welches online durchgeführt werden kann, mit ausgewählten Werten für die Anzahl von Bits der Bitgruppen, der Kollisions- und Bitmusterzählerschwellwerten dargestellt. Bei Untersuchungen der Anmelderin wurden beispielsweise 4096 n-Tupel verwendet, wobei n = 4 Bits pro Tupel betrachtet werden. Der Kollisionszählerschwellwert beträgt 160, und der Bitzählerschwellwert 255:
    n = 4
    ntupelzahl = 4096
    g = 255
    schwelle = 160.
  • Entsprechende Parameter ermöglichen einen geringen Hardware-Aufwand, so dass beispielsweise kein Prozessor für die Klassifizierung der 4096 n-Tupel nötig ist. Für die Bitmusterzähler werden 24 Bytes verwendet, und 12 Bit Speicherplatz für den Kollisionszähler und den n-tupel_Zähler. Es kann ein Rechenwerk zum Inkrementieren der 12- und/oder 8-Bitzahlen eingesetzt werden. Eine Vergleichseinrichtung oder ein Komparator, der die 12-Bit-Zahlen mit den vorgegebenen Schwellwerten vergleicht, kann auch zum Vergleichen der jeweiligen Bitmusterzählerstände mit dem Bitmusterzählerschwellwert g eingesetzt werden.
  • In den 4, 5 und 6 ist jeweils die kumulierte Verteilungsfunktion des Kollisionszählers KZ dargestellt. Dabei wurden Testdaten verwendet, die kryptographisch starken Pseudozufallszahlen entsprechen.
  • In der 4 wurden 10.000 Klassifikationen an den kryptographisch starken Zufallsbits als Testdaten vorgenommen. Das Verfahren liefert dabei, wie man in der 4 erkennt, bei den vorgenannten Parametern hinsichtlich der ntupelzahl und der Schwellwerte sowie der jeweiligen Bitbreite nur eine Wahrscheinlichkeit von 0,46%, dass die Zufallsdaten als nicht zufällig abgelehnt werden. D.h., in nur 46 Fällen von den 10.000 Durchläufen des Verfahrens war der Kollisionszähler größer als 160. Insofern ergibt sich eine zuverlässige Klassifizierung der kryptographisch starken Pseudozufallszahlen als geeignete Zufallsbits oder Zufallsbitfolge mit Hilfe des vorgeschlagenen Verfahrens bzw. einer entsprechend eingerichteten Vorrichtung.
  • Um das vorgeschlagene Klassifizierungsverfahren bzw. die Vorrichtung hinsichtlich ihrer Erkennungseigenschaften für schiefe Zufallsdaten zu prüfen, werden, wie in der 5 dargestellt ist, Zufallsdaten klassifiziert, die eine Abweichung von der Auftretenswahrscheinlichkeit 1/2 für 1 oder 0 bei zufälliger Verteilung haben. Daher wurden Bits mit einer 0-Wahrscheinlichkeit von 0,45 und einer 1-Wahrscheinlichkeit von 0,55 klassifiziert. Die 5 zeigt dabei die entsprechende kumulative Verteilungsfunktion für den Kollisionszähler. Es wurden, wie in der 4, 10.000 Versuche durchgeführt. Diese 5%-ige Schiefe der klassifizierten Zufallsdaten hinsichtlich der Auftretenswahrscheinlichkeit von 0 und 1 führt dazu, dass der Kollisionszähler immer größer als 248 ist. Insofern erkennt das vorgeschlagene Verfahren zuverlässig eine 5-prozentige Schiefe von Zufallsdaten.
  • Es wurde ferner untersucht, wie das Verfahren Abweichungen von einer optimalen Zufälligkeit erkennt, die aufgrund eines Hängenbleibens oder Klebens von aufeinanderfolgenden Bits zustande kommen. Dazu wurden Testzufallsdaten verwendet, bei denen aufeinander folgend erzeugte Bits eine Wahrscheinlichkeit von 55% haben, in demselben Zustand zu verbleiben. Bei echten Zufallszahlen ist die Wahrscheinlichkeit, dass das Folgebit denselben Wert hat, bei genau 50%.
  • Die 6 zeigt bei 10.000 Klassifizierungsvorgängen die kumulative Verteilungsfunktion für den Kollisionszähler KZ mit Testdaten, bei denen eine Wahrscheinlichkeit von 55% besteht, dass ein Folgebit denselben Wert hat wie das aktuelle Bit. Man erkennt in der 6, dass der niedrigste Wert des Kollisionszählers immer höher ist als 160. Bei den in 6 dargestellten Daten ist der kleinste Kollisionszählerwert KZ gleich 208. Insofern wurde mit Hilfe des vorgeschlagenen Klassifizierungsverfahrens zuverlässig erkannt, dass die zugrunde gelegten und geprüften Zufallsdaten unzuverlässig sind, d.h. als nicht zufällig klassifiziert werden müssen.
  • Die vorgeschlagenen Verfahren und Vorrichtungen haben insbesondere den Vorteil, eine Online-Klassifizierung aufwandsgünstig durchführen zu können. Dabei ist insbesondere bei physikalischen Zufallszahlengeneratoren eine hardwaremäßig besonders günstige Implementierung möglich, um die zur weiteren Verwendung vorgesehenen Zufallsbitfolgen oder -sequenzen, die auch als Zufallszahlen oder Zufallsdaten bezeichnet werden können, zu klassifizieren.
  • Obwohl die Erfindung im Detail durch das bevorzugte Ausführungsbeispiel näher illustriert und beschrieben wurde, so ist die Erfindung nicht durch die offenbarten Beispiele eingeschränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen.

Claims (15)

  1. Verfahren zum Klassifizieren von Zufallsbits (ZBi) umfassend: a) Bereitstellen (S0) von Zufallsbits (ZBi) als eine Bitfolge (BF); b) Erfassen (S1) einer vorgegebenen Anzahl (n) von Bits (B1–Bn) der Bitfolge (BF) als Bitgruppe (BG); c) Zuordnen (S2) der erfassten Bitgruppe (BG) zu einem Bitmuster, wobei dem Bitmuster ein Bitmusterzähler zum Zählen des Auftretens des Bitmusters zugeordnet ist; d1) Inkrementieren (S4) des Bitmusterzählers, welcher dem Bitmuster zugeordnet ist, dem die erfasste Bitgruppe (BG) zugeordnet ist, falls der Wert (BZ1–BZ2 n) des Bitmusterzählers geringer ist als ein vorgegebener Bitmusterzählerschwellwert (BZS), welcher einen Wert größer als Eins aufweist; d2) Inkrementieren (S5) eines Kollisionszählers, welcher der Bitfolge (BF) zugeordnet ist, falls der Wert (BZ1–BZ2 n) des Bitmusterzählers, dem das Bitmuster der erfassten Bitgruppe (BG) zugeordnet ist, größer oder gleich ist als der vorgegebene Bitmusterzählerschwellwert (BZS); e) Vergleichen (S6) des Werts (KZ) des Kollisionszählers mit einem vorgegebenen Kollisionszählerschwellwert (KZS); und f) Klassifizieren (S7, S8) der Zufallsbits (ZBi) als zufällig oder nicht zufällig in Abhängigkeit von dem Vergleichen (S6).
  2. Verfahren nach Anspruch 1, wobei die Zufallsbits (ZBi) nacheinander erzeugt werden und jeweils die vorgegebene Anzahl (n) von Bits einer Bitgruppe (BG) abgespeichert wird.
  3. Verfahren nach Anspruch 1 oder 2, wobei die Bitgruppe (BG) als eine Binärzahl mit einer Anzahl Stellen (n) verarbeitet wird, die der vorgegebenen Anzahl von Bits (B1–Bn) einer Bitgruppe (BG) entspricht.
  4. Verfahren nach einem der Ansprüche 1–3, wobei die Bitgruppe (BG) eine Speicheradresse für den Bitmusterzähler bestimmt.
  5. Verfahren nach einem der Ansprüche 1–4, wobei die Schritte b) bis d) mehrfach nacheinander durchgeführt werden.
  6. Verfahren nach einem der Ansprüche 1–4, wobei die Schritte b) bis e) mehrfach nacheinander durchgeführt werden, und Kollisionszählerschwellwerte (KZS) bei den Ausführungen des Schritts e) verschiedene Werte haben.
  7. Verfahren nach einem der Ansprüche 1–6, ferner umfassend: Erzeugen der Zufallsbits (ZBi) mit Hilfe eines Zufallsbitgenerators (2) als die Bitfolge (BF).
  8. Verfahren nach einem der Ansprüche 1–7, wobei mindestens ein Zufallsbit (ZBi) der Bitfolge (BF) mehrfach in unterschiedlichen Bitgruppen (BG) erfasst wird.
  9. Verfahren nach einem der Ansprüche 1–8, wobei die vorgegebene Anzahl (n) von Bits als Bitgruppe (BG) 8 oder weniger ist.
  10. Verfahren nach einem der Ansprüche 1–9, wobei ausschließlich die Zufallsbits (B1–Bn) einer einzelnen Bitgruppe (BG), die Werte (BZ1–BZ2 n) der Bitmusterzähler, der Wert (KZ) des Kollisionszählers gleichzeitig gespeichert werden.
  11. Vorrichtung (1) zum Klassifizieren von Zufallsbits (ZBi) mit: einer Speichereinrichtung (3) zum Abspeichern einer vorgegebenen Anzahl von Bits (B1–Bn) der Zufallsbits (ZBi) als Bitgruppe (BG); mehreren Bitmusterzählerspeichern (4) zum Speichern von Werten (BZ1–BZ2 n) von Bitmusterzählern, wobei so viele Bitmusterzählerspeicher vorgesehen sind wie sich verschiedene Bitmuster aus der vorgegebenen Anzahl (n) von Bits (B1–Bn) der Bitgruppen (BG) bilden lassen; einem Kollisionszählerspeicher (7) zum Speichern von einem Wert (KZ) eines Kollisionszählers; einer Vergleichseinrichtung (8), welche eingerichtet ist, die Werte (BZ1–BZ2 n) der Bitmusterzähler mit einem Bitmusterzählerschwellwert (BZS) größer als Eins zu vergleichen, und/oder welche eingerichtet ist, den Wert (KZ) des Kollisionszählers mit einem Kollisionszählerschwellwert (KZS) zu vergleichen, wobei die Vergleichseinrichtung (8) jeweils ein Vergleichsergebnis liefert; einer Inkrementiereinrichtung (6), welche eingerichtet ist, den Wert (KZ) des Kollisionszählers in Abhängigkeit von dem Vergleichsergebnis der Vergleichseinrichtung (8) zu inkrementieren, wenn der Wert (KZ) des Kollisionszählers gleich oder kleiner ist als der Kollisionszählerschwellwert (KZS), und/oder welche eingerichtet ist, den Wert (BZ1–BZ2 n) eines jeweiligen Bitmusterzählers in Abhängigkeit von in der Speichereinrichtung (3) gespeicherten Bits (B1–Bn) zu inkrementieren; einer Klassifizierungseinrichtung (10), welche eingerichtet ist, in Abhängigkeit von dem Wert (KZ) des Kollisionszählers die Zufallsbits (ZBi) als zufällig oder nicht zufällig zu klassifizieren.
  12. Vorrichtung (1) nach Anspruch 11, welche eingerichtet ist, ein Verfahren nach einem der Ansprüche 1–10 durchzuführen.
  13. Vorrichtung (1) nach Anspruch 11 oder 12, ferner mit einem Zufallsbitgenerator (2) zum Erzeugen der Zufallsbits (ZBi).
  14. Vorrichtung (1) nach einem der Ansprüche 11–13, wobei die Vorrichtung (1) als festverdrahtete Vorrichtung ausgestaltet ist.
  15. Vorrichtung (1) nach einem der Ansprüche 11–14, wobei die in der Speichereinrichtung (3) abgespeicherten Bits (B1–Bn) einer Bitgruppe (BG) einer jeweiligen Bitmusterzählerspeicheradresse entsprechen.
DE102013204678.2A 2013-03-18 2013-03-18 Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits Withdrawn DE102013204678A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102013204678.2A DE102013204678A1 (de) 2013-03-18 2013-03-18 Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102013204678.2A DE102013204678A1 (de) 2013-03-18 2013-03-18 Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits

Publications (1)

Publication Number Publication Date
DE102013204678A1 true DE102013204678A1 (de) 2014-09-18

Family

ID=51418848

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013204678.2A Withdrawn DE102013204678A1 (de) 2013-03-18 2013-03-18 Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits

Country Status (1)

Country Link
DE (1) DE102013204678A1 (de)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Donald E. KNUTH: The Art of Computer Programming. Bd. 2 Seminumerical Algorithms. 3. Aufl. Boston : Addison-Wesley, 2002. S.70,71. - ISBN 0-201-89684-2 *

Similar Documents

Publication Publication Date Title
EP2940620B1 (de) Ableiten eines gerätespezifischen wertes mit hilfe einer unklonbaren funktion
DE102014208212A1 (de) Ableiten eines gerätespezifischen Wertes
DE102013013047B4 (de) Bestimmung einer Kennung
EP3684015B1 (de) Vorrichtung und verfahren zur klassifizierung von daten insbesondere für ein controller area netzwerk oder ein automotive ethernet netzwerk
DE112012004809T5 (de) Kantenverfolgung mit Hysterese-Schwellenwertbildung
EP1504336B1 (de) Vorrichtung und verfahren zum erzeugen einer zufallszahl
WO2019052798A1 (de) Verfahren und vorrichtung zum erkennen eines angriffs auf ein serielles kommunikationssystem
DE102015102602A1 (de) Zufallszahlengenerator
EP3460727A1 (de) Verfahren zur untersuchung eines funktionsverhaltens eines technischen systems und auswerteeinheit
DE102013204678A1 (de) Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits
EP3951529A1 (de) Überwachungsvorrichtung und verfahren zur anomaliedetektion
DE102020207449A1 (de) Verfahren, Computerprogramm und Vorrichtung zum Verarbeiten von Signalen
EP4095697A1 (de) Verfahren zur charakterisierung des betriebszustands eines computersystems
DE10015286A1 (de) System, Verfahren und Produkt mit Computerbefehlssatz zum automatischen Abschätzen experimenteller Ergebnisse
EP2835931B1 (de) Verfahren zur Verschlüsselung von Zeichenketten
DE202021105895U1 (de) System zur Morphologie-Segmentierung von Gehirn-MRI-Modalitäten auf Basis von E-Fuzzy Merkmalen und Schwellenwerten
DE102017001748B4 (de) Signalprüfungsvorrichtung, signalprüfungssystem, signalprüfungsverfahren und signalprüfungsprogramm
DE102014203646A1 (de) Verfahren und Vorrichtung zum Klassifizieren und/oder Erzeugen von Zufallsbits
DE102017119426B4 (de) Test und verwaltung von speicherzellen
DE112016006791B4 (de) Datenverarbeitungsvorrichtung, Datenverarbeitungsverfahren und Datenverarbeitungsprogramm
DE69734123T2 (de) Verfahren zur erzeugung eines klassifikationsmodells
DE1813044A1 (de) Verfahren zur Zeichenerkennung und Anordnung zur Durchfuehrung des Verfahrens
DE102023200400A1 (de) Verfahren zum Trainieren eines Autoencoders
DE102009039440A1 (de) Verfahren und Systeme zum Sichern von Fahrzeugdaten
DE102021211641A1 (de) Verfahren und Vorrichtung zum Verarbeiten von mit einem Signal assoziierten Daten

Legal Events

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