DE102015114234A1 - Zufallszahlgenerator und Verfahren zum Generieren von Zufallszahlen - Google Patents

Zufallszahlgenerator und Verfahren zum Generieren von Zufallszahlen Download PDF

Info

Publication number
DE102015114234A1
DE102015114234A1 DE102015114234.1A DE102015114234A DE102015114234A1 DE 102015114234 A1 DE102015114234 A1 DE 102015114234A1 DE 102015114234 A DE102015114234 A DE 102015114234A DE 102015114234 A1 DE102015114234 A1 DE 102015114234A1
Authority
DE
Germany
Prior art keywords
internal state
random number
number generator
state
subsequent
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
DE102015114234.1A
Other languages
English (en)
Inventor
Rainer Göttfert
Berndt Gammel
Bernd Meyer
Markus Gail
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies 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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102015114234.1A priority Critical patent/DE102015114234A1/de
Publication of DE102015114234A1 publication Critical patent/DE102015114234A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

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)
  • Storage Device Security (AREA)

Abstract

Gemäß einer Ausführungsform ist ein Zufallszahlgenerator beschrieben, aufweisend einen Speicher, der zum Speichern eines internen Zustands einer Stromchiffre konfiguriert ist, einen Prozessor, der zum Generieren einer Abfolge von internen Zuständen konfiguriert ist, durch Generieren, für einen internen Zustand der Stromchiffre, eines anschließenden internen Zustands für den internen Zustand der Stromchiffre durch Anwenden einer Folgezustandsfunktion bei dem internen Zustand, und eine Steuerung, die zum Detektieren konfiguriert ist, ob die Abfolge anschließender interner Zustände eine vorbestimmte Länge erreicht hat und, wenn die Abfolge anschließender Zustände eine vorbestimmte Länge bei einem aktuellen internen Zustand erreicht hat, Ändern des aktuellen internen Zustands anhand eines vorbestimmten Werts und Steuern des Prozessors, um die Folgezustandsfunktion an dem derart geänderten, aktuellen internen Zustand anstelle des aktuellen internen Zustand anzuwenden, um den anschließenden internen Zustand für den aktuellen internen Zustand zu generieren.

Description

  • Die vorliegende Offenbarung betrifft Zufallszahlgeneratoren und Verfahren zum Generieren von Zufallszahlen.
  • Zufallszahlen sind häufig in elektronischen Vorrichtungen, wie Chipkarten, zum Beispiel für kryptografische Anwendungen notwendig. Zufallszahlen können zum Beispiel durch einen hybriden Zufallszahlgenerator generiert werden, der eine Nachbearbeitung einer Zufallszahl enthält, die durch einen wahren Zufallszahlgenerator bereitgestellt wird. Die Nachbearbeitung kann zum Beispiel unter Verwendung einer Stromchiffre erfolgen. In Hinblick auf Sicherheit kann es notwendig sein, dass die Stromchiffre eine Rückverfolgungsbeständigkeit aufweist, d. h., ein Angreifer darf nicht imstande sein (mit angemessenem Aufwand) frühere interne Zustände der Stromchiffre zu bestimmen, wenn der Angreifer Kenntnis eines aktuellen internen Zustands der Stromchiffre erlangt hat. Daher sind Zufallszahlgeneratoren wünschenswert, die auf einer Stromchiffre mit Rückverfolgungsbeständigkeit beruhen.
  • Gemäß einer Ausführungsform wird ein Zufallszahlgenerator bereitgestellt, der einen Speicher, der zum Speichern eines internen Zustands einer Stromchiffre konfiguriert ist, einen Prozessor, der zum Generieren einer Abfolge von internen Zuständen, durch Generieren, für einen internen Zustand der Stromchiffre, eines anschließenden internen Zustands für den internen Zustand der Stromchiffre durch Anwenden einer Folgezustandsfunktion bei dem internen Zustand konfiguriert ist, und eine Steuerung enthält, die zum Detektieren, ob die Abfolge anschließender interner Zustände eine vorbestimmte Länge erreicht hat, und, wenn die Abfolge anschließender Zustände eine vorbestimmte Länge bei einem aktuellen internen Zustand erreicht hat, Ändern des aktuellen internen Zustands anhand eines vorbestimmten Werts und Steuern des Prozessors konfiguriert ist, um die Folgezustandsfunktion an dem derart geänderten, aktuellen internen Zustand anstelle des aktuellen internen Zustands anzuwenden, um den anschließenden internen Zustand für den aktuellen internen Zustand zu generieren.
  • In den Zeichnungen beziehen sich gleiche Bezugszeichen allgemein auf dieselben Teile in allen verschiedenen Ansichten. Die Zeichnungen sind nicht unbedingt im Maßstab gezeichnet und der Schwerpunkt liegt stattdessen im Allgemeinen auf einer Veranschaulichung der Prinzipien der Erfindung. In der anschließenden Beschreibung sind verschiedene Aspekte unter Bezugnahme auf die anschließenden Zeichnungen beschrieben, in welchen:
  • 1 eine Chipkarte gemäß einer Ausführungsform zeigt.
  • 2 einen hybriden Zufallszahlgenerator zeigt.
  • 3 eine Stromchiffre veranschaulicht.
  • 4 einen Zufallszahlgenerator gemäß einer Ausführungsform zeigt.
  • 5 ein Ablaufdiagramm zeigt, das ein Verfahren zum Generieren von Zufallszahlen gemäß einer Ausführungsform veranschaulicht.
  • 6 eine Stromchiffre gemäß einer Ausführungsform zeigt.
  • 7 eine Stromchiffre gemäß einer anderen Ausführungsform zeigt.
  • 8 veranschaulicht, wie eine Rückverfolgungsbeständigkeit gemäß verschiedenen Ausführungsformen erreicht wird.
  • Die anschließende ausführliche Beschreibung bezieht sich auf die beiliegenden Zeichnungen, die zur Veranschaulichung spezielle Einzelheiten und Aspekte dieser Offenbarung zeigen, in welchen die Erfindung ausgeführt werden kann. Es können andere Aspekte verwendet werden und strukturelle, logische und elektrische Änderungen können vorgenommen werden, ohne vom Umfang der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung sind nicht unbedingt wechselseitig ausschließend, da einige Aspekte dieser Offenbarung mit einem oder mehreren Aspekt(en) dieser Offenbarung kombiniert werden können, um neue Aspekte zu bilden.
  • 1 zeigt eine Chipkarte 100 gemäß einer Ausführungsform.
  • Die Chipkarte 100 enthält einen Träger 101, auf dem ein Chipkartenmodul 102 angeordnet ist. Das Chipkartenmodul 102 enthält verschiedene Datenverarbeitungskomponenten wie zum Beispiel einen Speicher 103, einen Prozessor 104 oder zum Beispiel einen zweckbestimmten Kryptoprozessor 105. Das Chipkartenmodul 103 enthält einen Zufallszahlgenerator 106. Der Zufallszahlgenerator kann zum Beispiel dem Prozessor 104 oder dem Kryptoprozessor eine Zufallszahlabfolge zuleiten, der zum Beispiel eine kryptografische Operation anhand der Zufallszahlabfolge durchführen kann. Der Zufallszahlgenerator 106 ist zum Beispiel ein hybrider Zufallszahlgenerator (HRNG) wie in 2 dargestellt.
  • 2 zeigt einen hybriden Zufallszahlgenerator (HRNG) 200.
  • Der HRNG 200 enthält einen wahren Zufallszahlgenerator (TRNG) 201 und eine kryptografische Nachbearbeitungseinheit 202, die eine kryptografische Nachbearbeitung durchführt. Der TRNG 201 erzeugt wahre Zufallsbits durch Nutzung eines unvorhersagbaren physikalischen Phänomens wie radioaktiver Zerfall, thermisches Rauschen, Jitter eines Ringoszillators, usw.
  • Die kryptografische Nachbearbeitung ist die Implementierung eines kryptografischen Algorithmus. Der Algorithmus kann in Hardware oder in Software implementiert sein.
  • Der TRNG 201 enthält eine physikalische Rauschquelle (Nutzung eines physikalischen Zufallsphänomens) 203, einen Digitalisierer 204, der die von der Rauschquelle erzeugten physikalischen Analogdaten in eine Abfolge von Bits umwandelt, und eine mathematische Nachbearbeitungseinheit 204, die diese Bitabfolge bearbeitet, um ihre statistische Eigenschaft zu verbessern und/oder ihre Pro-Bit-Entropie zu erhöhen, wobei letztgenannte durch die mathematische Nachbearbeitungseinheit erreicht wird, die die vom Digitalisierer 204 empfangene Bit-Abfolge komprimiert.
  • Die kryptografische Nachbearbeitungseinheit 202 empfängt Eingangsbits vom TRNG 201, verarbeitet diese Bits und gibt die endgültigen Zufallsbits (z. B. in der Form von Zufallsworten) aus, die dann in einer Reihe von Anwendungen verwendet werden können, beispielweise zum Erzeugen kryptografischer Schlüssel oder elektronischer Signaturen.
  • Die Motivation für einen HRNG gegenüber einem reinen TRNG ist auf der Tatsache begründet, dass die kryptografische Nachbearbeitung eine zusätzliche Sicherheitsebene bereitstellt. Für eine kryptografisch starke Nachbearbeitung ist es rechnerisch nicht machbar, die Eingabeabfolge zu bestimmen, selbst wenn längere Abschnitte der Ausgabeabfolge bekannt sind. Wenn daher der TRNG 201 aus irgendeinem Grund schwach wird (z. B. versagt) und wenn die Schwäche unerkannt bleibt, ist die erzeugte HRNG Ausgabeabfolge (die noch in einigen Anwendungen verwendet wird) noch immer sicher (zumindest im Rahmen einer rechnerischen Komplexität).
  • Kryptografische Nachbearbeitungsalgorithmen können in zwei Klassen unterteilt werden: Blockchiffren und Stromchiffren.
  • Zum Beispiel kann die standardisierte Blockchiffre AES (für ”advanced encryption standard”, fortgeschrittener Verschlüsselungsstandard) für eine kryptografische Nachbearbeitung verwendet werden. Wenn jedoch der AES in Hardware implementiert wird, ist dies (im Sinne einer Siliziumfläche und eines Stromverbrauchs) teuer. In Hinblick auf Hardware-Kosten ist es effizienter, eine passende Stromchiffre für die Aufgabe zu verwenden.
  • 3 veranschaulicht eine Stromchiffre 300.
  • Die Stromchiffre 300 hat einen internen Zustand 301. Typischerweise beträgt die interne Zustandsgröße einer Stromchiffre etwa 300 bis 500 Bits.
  • Eine Folgezustandsfunktion 302 transformiert den interner Zustand St zum Zeitpunkt t in den nächsten internen Zustand St+1 zum Zeitpunkt t + 1.
  • Der interne Zustand S0 zum Zeitpunkt t = 0 wird als Anfangszustand bezeichnet. Der Anfangszustand So der Stromchiffre wird durch Einführen (Laden) eines Geheimschlüssels 303 (z. B. eines 128 Bits langen Bit-Strings) in den leeren (oder undefinierten) internen Zustand zum Zeitpunkt t = –1 geschaffen. Dies wird durch Anwenden eines gut definierten Schlüsselladealgorithmus erreicht.
  • Sobald der Anfangszustand So erreicht ist, wird durch wiederholtes Aufrufen der Folgezustandsfunktion 302 (und ohne Zustandseingabe) eine Abfolge interner Zustände 301 erzeugt: S0 → S1 → S2 → S3 → S4 → S5 → ...
  • Diese Abfolge wird deterministisch erzeugt. Wenn zum Beispiel die Stromchiffre 300 von der kryptografischen Nachbearbeitungseinheit 203 für die kryptografische Nachbearbeitung verwendet wird (und der Geheimschlüssel 303 vom TRNG 201 bereitgestellt wird), gibt es keine weitere Eingabe vom TRNG 201 nach der Eingabe des Geheimschlüssels 303 für das Generieren der Abfolge interner Zustände.
  • Zum Zeitpunkt t wird aus dem internen Zustand St, ein Ausgabebit rt durch Anwenden einer Ausgabefunktion 304 bei einigen (möglicherweise allen) Zustandsbits erzeugt. Das erzeugte Ausgabebit rt wird als Schlüsselstrombit zum Zeitpunkt t bezeichnet. Die Abfolge r0, r1, r2, r3, r4, r5 wird als der Schlüsselstrom bezeichnet.
  • Eine Stromchiffre ist auch ein Pseudozufallszahlgenerator (oder Pseudozufallsbitgenerator). Das Gegenteil ist jedoch nicht wahr. Es gibt Pseudozufallsbitgeneratoren, die sich nicht als Schlüsselstromgeneratoren für eine Stromchiffre qualifizieren, da sie keine ausreichende Stärke gegen kryptografische Angriffe bereitstellen. Der Begriff Pseudozufallsbitgenerator impliziert, dass eine statistisch unauffällige Bitabfolge erzeugt wird, die zufällig aussieht. Aber die Abfolge muss nicht imstande sein, ausgeklügelten kryptografischen Angriffen zu widerstehen.
  • Wenn eine Stromchiffre als Pseudozufallsbitgenerator betrachtet wird, werden die erzeugten Schlüsselstrombits als Pseudozufallsbits bezeichnet, der Geheimschlüssel, der zum Errichten des Anfangszustands verwendet wird, wird als Seed bezeichnet und der Schlüsselladealgorithmus wird als Seeding Algorithmus bezeichnet.
  • Da eine Stromchiffre 300 ein deterministischer Automatismus ist, bestimmt der aktuelle Zustand St den anschließenden Zustand St+1 einzigartig. einzigartig. Ferner bestimmt der aktuelle Zustand St auch den vorangehenden Zustand St-1 einzigartig, wenn die Folgezustandsfunktion bijektiv ist.
  • Betrachten wir die Entwicklung interner Zustände S0 → S1 → S2 → S3 → S4 → ... → St-1 → St → St+1.
  • Wenn ein Angreifer Kenntnis des internen Zustands St zum Zeitpunkt t erlangt, ist er imstande, alle zukünftigen internen Zustände St+1, St+2, ... zu erzeugen. Und infolgedessen ist er imstande, alle Ausgabebits rt, rt+1, rt+2, ... zu erzeugen.
  • Unter der Annahme der Bijektivität der Folgezustandsfunktion, ist der Angreifer auch imstande, alle vorangehenden internen Zustände St-1, St-2, ..., S0 und somit alle Ausgabebits rt-1, rt-2, ..., r0, die in der Vergangenheit erzeugt wurden, zu erzeugen.
  • Dies bedeutet, dass es bei Kenntnis des internen Zustands St zu einem gewissen Zeitpunkt immer möglich ist, in die Zukunft zu blicken (d. h., aufeinanderfolgende interne Zustände und Ausgabebits zu berechnen). Die Möglichkeit jedoch, auch in die Vergangenheit zu blicken (d. h., vorangehende interne Zustände und Ausgabebits zu berechnen) kann verhindert werden.
  • Von einem kryptografischen Algorithmus für den es nicht möglich ist, vorangehende Ausgabebits anhand der Kenntnis des aktuellen internen Zustands zu berechnen, wird behauptet, dass er die Eigenschaft einer verbesserten rückwärts gerichteten Geheimhaltung (oder die Eigenschaft einer Rückverfolgungsbeständigkeit) besitzt. Verschiedene internationale Normierungskörperschaften fordern, dass der kryptografische Nachbearbeitungsalgorithmus, der in einem hybriden Zufallszahlgenerator verwendet wird, eine rückwärts gerichtete Geheimhaltung bieten muss. Die Eigenschaft einer rückwärts gerichteten Geheimhaltung für einen kryptografischen Algorithmus mit Speicher (d. h., mit einem internen Zustand) ist häufig wie folgt definiert:
    Es ist ein Zeitpunkt t gegeben. Es wird angenommen, dass ein Angreifer den internen Zustand St zum Zeitpunkt t und alle Ausgabebits rk mit k >= t kennt (d. h., alle Ausgabebits, die nach dem Zeitpunkt t erzeugt werden, plus Ausgabebit, das zum Zeitpunkt t erzeugt wird). Dann ist er trotz dieser Kenntnis nicht imstande, ein Ausgabebit rj mit j < t (d. h., ein Ausgabebit, das vor Zeitpunkt t erzeugt wurde) zu berechnen.
  • Es sollte festgehalten werden, dass diese Definition einer rückwärts gerichteten Geheimhaltung der oben stehenden Definition äquivalent ist (d. h., die Kenntnis von St ermöglicht die Berechnung anschließender Zustände St+1, St+2, ...), da ein Anwenden der Ausgabefunktion an den anschließenden Zuständen (und dem Zustand St) die Ausgabebits rt, rt+1, rt+2, ... ergibt.
  • Eine Strategie zum Erreichen einer Rückverfolgungsbeständigkeit für einen auf Stromchiffre beruhenden Zufallszahlgenerator ist das Betreiben der Stromchiffre im Schlüsselstromrückkopplungsmodus. Die erzeugten Schlüsselstrombits werden permanent, Bit für Bit, in den internen Zustand, zurückgekoppelt. Alle Schlüsselstrombits werden zurückgekoppelt, aber auch als gültige Ausgabebits verwendet. Für viele Stromchiffren bewirkt diese Strategie, dass die Folgezustandsfunktion nicht-bijektiv wird. Eine nicht-bijektive Folgezustandsfunktion garantiert jedoch nicht, dass der Rechenaufwand zum Berechnen vorangehender Ausgabebits (in Kenntnis des gegenwärtigen internen Zustands St) eine bestimmte Arbeitslast von z. B. 2100 arithmetischen Operationen im binären Feld überschreitet. Tatsächlich zeigen Untersuchungen, dass der Schlüsselstromrückkopplungsmodus an sich für die meisten Stromchiffren keine Rückverfolgungsbeständigkeit einer Stärke > 2100 erzeugt.
  • In der Folge ist ein Zufallszahlgenerator beschrieben, der die Verwendung einer Stromchiffre für das Generieren einer Zufallszahl (oder eines Schlüsselstroms) ermöglicht, während er Rückverfolgungsbeständigkeit hat.
  • 4 zeigt einen Zufallszahlgenerator 400 gemäß einer Ausführungsform.
  • Der Zufallszahlgenerator 400 enthält einen Speicher 401, der zum Speichern eines internen Zustands einer Stromchiffre konfiguriert ist, und einen Prozessor 402, der zum Generieren einer Abfolge von internen Zuständen durch Generieren, für einen internen Zustand der Stromchiffre, eines anschließenden internen Zustands für den internen Zustand der Stromchiffre durch Anwenden einer Folgezustandsfunktion beim internen Zustand konfiguriert ist.
  • Ferner enthält der Zufallszahlgenerator 400 eine Steuerung 403, die zum Detektieren konfiguriert ist, ob die Abfolge anschließender interner Zustände eine vorbestimmte Länge erreicht hat und, wenn die Abfolge anschließender Zustände eine vorbestimmte Länge bei einem aktuellen internen Zustand erreicht hat, Ändern des aktuellen internen Zustands anhand eines vorbestimmten Werts und Steuern des Prozessors 402, um die Folgezustandsfunktion an dem derart geänderten, aktuellen internen Zustand anstelle des aktuellen internen Zustands anzuwenden, um den anschließenden internen Zustand für den aktuellen internen Zustand zu generieren.
  • Mit anderen Worten, gemäß einer Ausführungsform wird der interne Zustand einer Stromchiffre zur Zufallszahlgenerierung anhand eines vorbestimmten Werts teilweise geändert, wenn die Anzahl interner Zustände (z. B. nach der letzten Teileinstellung des internen Zustands auf einen vorbestimmten Wert oder dem Seeding der Stromchiffre) einen gewissen Wert erreicht hat. Zum Beispiel bedeutet ein teilweises Ändern des internen Zustands anhand eines vorbestimmten Werts dass, wenn der interne Zustand durch n Bits dargestellt ist, dass m < n Bits, z. B. m = n/2 Bits, anhand des vorbestimmten Werts geändert werden, z. B. auf den vorbestimmten Wert gestellt werden, der durch den vorbestimmten Wert geändert ist.
  • Die Komponenten des Zufallszahlgenerators 400 (z. B. der Speicher 401, der Prozessor 402 und die Steuerung 403) können zum Beispiel durch eine oder mehrere Schaltung(en) implementiert sein. Eine ”Schaltung” kann als eine Art einer Logik implementierenden Einheit verstanden werden, die ein Spezialzweckschaltkreis oder ein Prozessor, der eine Software ausführt, die in einem Speicher gespeichert ist, Firmware oder jede Kombination davon sein kann. Somit kann eine ”Schaltung” eine hartverdrahtete logische Schaltung oder eine programmierbare logische Schaltung wie ein programmierbarer Prozessor, z. B. ein Mikroprozessor sein. Eine ”Schaltung” kann auch ein Prozessor sein, der eine Software ausführt, z. B. jede Art von Computerprogramm. Jede andere Art von Implementierung der entsprechenden Funktionen, die in der Folge ausführlicher beschrieben ist, kann als eine ”Schaltung” verstanden werden.
  • Gemäß einer Ausführungsform wird ein Verfahren zum Generieren von Zufallszahlen bereitgestellt, wie in 5 dargestellt ist.
  • 5 zeigt ein Ablaufdiagramm 500, das ein Verfahren zum Generieren von Zufallszahlen veranschaulicht.
  • In 501 wird eine Abfolge interner Zustände einer Stromchiffre durch Generieren, für einen internen Zustand der Stromchiffre, eines anschließenden internen Zustands für den internen Zustand der Stromchiffre durch Anwenden einer Folgezustandsfunktion beim internen Zustand generiert.
  • In 502, wird detektiert, ob die Abfolge anschließender interner Zustände eine vorbestimmte Länge erreicht hat.
  • In 503, wenn die Abfolge anschließender Zustände eine vorbestimmte Länge bei einem aktuellen internen Zustand erreicht hat, wird der aktuelle interne Zustand anhand eines vorbestimmten Werts geändert.
  • In 504 wird die Folgezustandsfunktion an dem derart geänderten, aktuellen internen Zustand anstelle des aktuellen internen Zustands angewendet, um den anschließenden internen Zustand für den aktuellen internen Zustand zu generieren.
  • In der Folge sind verschiedene Ausführungsformen angeführt.
  • Ausführungsform 1 ist ein Zufallszahlgenerator wie in 4 dargestellt.
  • Ausführungsform 2 ist ein Zufallszahlgenerator von Ausführungsform 1, wobei die Steuerung konfiguriert ist zum Steuern des Prozessors, um ein Anwenden der Folgezustandsfunktion beim internen Zustand zu pausieren, wenn die Abfolge anschließender Zustände eine vorbestimmte Länge bei einem aktuellen internen Zustand erreicht hat, und zum Steuern des Prozessors, um die Folgezustandsfunktion weiterhin beim internen Zustand anzuwenden, nachdem der aktuelle interne Zustand anhand des vorbestimmten Werts geändert wurde.
  • Ausführungsform 3 ist ein Zufallszahlgenerator von Ausführungsform 1 oder 2, wobei die Steuerung zum Einstellen zumindest eines Teils des aktuellen internen Zustands auf den vorbestimmten Wert konfiguriert ist.
  • Ausführungsform 4 ist ein Zufallszahlgenerator von Ausführungsform 1 oder 2, wobei der interne Zustand mehrere Bits aufweist und die Steuerung zum Einstellen zumindest eines Teils der mehreren Bits des aktuellen Zustands auf Bitwerte des vorbestimmten Werts konfiguriert ist.
  • Ausführungsform 5 ist ein Zufallszahlgenerator von Ausführungsform 1 oder 2, wobei der interne Zustand mehrere Bits aufweist und die Steuerung zum Einstellen einiger Bits der mehreren Bits des aktuellen Zustands auf Bitwerte des vorbestimmten Werts konfiguriert ist.
  • Ausführungsform 6 ist ein Zufallszahlgenerator von Ausführungsform 1 oder 2, wobei der interne Zustand mehrere Bits aufweist und die Steuerung zum Einstellen einiger Bits der mehreren Bits des aktuellen Zustands auf Null konfiguriert ist oder zum Einstellen mehrerer Bits der mehreren Bits des aktuellen Zustands auf Eins konfiguriert ist.
  • Ausführungsform 7 ist ein Zufallszahlgenerator einer der Ausführungsformen 1 bis 6, wobei der vorbestimmte Wert ein Nicht-Zufallswert ist.
  • Ausführungsform 8 ist ein Zufallszahlgenerator einer der Ausführungsformen 1 bis 7, des Weiteren aufweisend eine Ausgabeschaltung, die zum Generieren eines Ausgabeschlüsselstroms anhand der Abfolge anschließender Zustände konfiguriert ist.
  • Ausführungsform 9 ist ein Zufallszahlgenerator von Ausführungsform 8, wobei die Steuerung zum Steuern der Ausgabeschaltung konfiguriert ist, um dem Generieren des Ausgabeschlüsselstroms von anschließenden Zuständen nach dem Ändern des aktuellen internen Zustands anhand des vorbestimmten Werts für eine Anzahl anschließender Zustände zu pausieren.
  • Ausführungsform 10 ist ein Zufallszahlgenerator von Ausführungsform 8, wobei der vorbestimmte Wert ein Teil des Ausgabeschlüsselstroms ist, der von der Abfolge anschließender Zustände bis zum aktuellen internen Zustand generiert wird, mit dem die Abfolge anschließender Zustände die vorbestimmte Länge erreicht hat.
  • Ausführungsform 11 ist ein Zufallszahlgenerator von Ausführungsform 8, wobei die Ausgabeschaltung zum Teilen des Ausgabeschlüsselstroms, der von der Abfolge anschließender Zustände bis zum aktuellen internen Zustand generiert wurde, mit dem die Abfolge anschließender Zustände die vorbestimmte Länge erreicht hat, in ein erstes Teilsegment und ein zweites Teilsegment konfiguriert ist, um das erste Teilsegment für die Steuerung bereitstellen und das zweite Teilsegment vom Zufallszahlgenerator auszugeben, wobei die Steuerung zum Verwenden des ersten Teilsegments als den vorbestimmten Wert konfiguriert ist.
  • Ausführungsform 12 ist ein Zufallszahlgenerator von Ausführungsform 11, wobei die Ausgabeschaltung zum Vermeiden einer Ausgabe des ersten Teilsegments vom Zufallszahlgenerator konfiguriert ist.
  • Ausführungsform 13 ist ein Zufallszahlgenerator von Ausführungsform 11 oder 12, wobei die Ausgabeschaltung zum Ausgeben des zweiten Teilsegments als Zufallswort an eine Komponente konfiguriert ist, für die Zufallsworte bereitgestellt werden sollen.
  • Ausführungsform 14 ist ein Zufallszahlgenerator einer der Ausführungsformen 1 bis 13, des Weiteren aufweisend eine Seeding-Schaltung, die zum Initialisieren des internen Zustands mit einem Zufalls-Seed konfiguriert ist, wobei der Prozessor zum Generieren der Abfolge interner Zustände, beginnend mit dem initialisierten internen Zustand konfiguriert ist.
  • Ausführungsform 15 ist ein Zufallszahlgenerator von Ausführungsform 14, wobei die Steuerung zum Ändern des aktuellen internen Zustands anhand des vorbestimmten Werts zwischen zwei Initialisierungen des internen Zustands mit einem Zufalls-Seed durch die Seeding-Schaltung konfiguriert ist.
  • Ausführungsform 16 ist ein Zufallszahlgenerator von Ausführungsform 14, wobei die Steuerung zum mehrmaligen Ändern des aktuellen internen Zustands anhand des vorbestimmten Werts zwischen zwei Initialisierungen des internen Zustands mit einem Zufalls-Seed durch die Seeding-Schaltung konfiguriert ist.
  • Ausführungsform 17 ist ein Zufallszahlgenerator nach einer der Ausführungsformen 14 bis 16, wobei die Steuerung zum Ändern des aktuellen internen Zustands anhand des vorbestimmten Werts durch die Seeding-Schaltung konfiguriert ist.
  • Ausführungsform 18 ist ein Zufallszahlgenerator nach einer der Ausführungsformen 14 bis 17 ist, wobei die Seeding-Schaltung zum Initialisieren des internen Zustands mit dem Seed gemäß einem Seeding-Algorithmus konfiguriert ist und wobei die Steuerung zum Ändern des aktuellen internen Zustands anhand des vorbestimmten Werts durch Eingeben des vorbestimmten Werts in die Seeding-Schaltung und Steuern der Seeding-Schaltung, um zumindest teilweise den Seeding-Algorithmus anhand des vorbestimmten Werts durchzuführen, konfiguriert ist.
  • Ausführungsform 19 ist ein Zufallszahlgenerator einer der Ausführungsformen 1 bis 18, wobei der vorbestimmte Wert ein Nicht-Zufallswert ist.
  • Ausführungsform 20 ist ein Zufallszahlgenerator einer der Ausführungsformen 1 bis 19, wobei die Steuerung zum periodischen Ändern des aktuellen internen Zustands anhand eines vorbestimmten Werts und Steuern des Prozessors, um die Folgezustandsfunktion an dem derart geänderten, aktuellen internen Zustand anstelle des aktuellen internen Zustands anzuwenden, um den anschließenden internen Zustand für den aktuellen internen Zustand zu generieren, konfiguriert ist.
  • Ausführungsform 21 ist eine Chipkarte, die einen Zufallszahlgenerator nach einer der Ausführungsformen 1 bis 20 aufweist.
  • Ausführungsform 22 ist ein Verfahren zum Generieren von Zufallszahlen wie in 5 dargestellt.
  • Es sollte festgehalten werden, dass eines oder mehrere der Merkmale einer der oben genannten Ausführungsformen mit einer der anderen Ausführungsformen kombiniert werden kann.
  • In der Folge sind Ausführungsformen ausführlicher beschrieben.
  • Gemäß einer ersten Ausführungsform, wie in der Folge beschrieben, wird eine Stromchiffre modifiziert, um eine rückwärts gerichtete Geheimhaltung bereitzustellen, indem die Stromchiffre auf einer regelmäßigen Basis eine signifikante Menge interner Zustandsbits (z. B. zumindest 100 Zustandsbits) löscht. Dies ist in 6 dargestellt.
  • 6 zeigt eine Stromchiffre 600.
  • Ähnlich der Stromchiffre 300 hat die Stromchiffre 600 einen internen Zustand, der eine Anzahl von Bits enthält, die in einer Speicherzelle mehrerer Speicherzellen 601 gespeichert sind. Der aktuelle interne Zustand wird an eine Ausgabeschaltung 602 ausgegeben (die eine Ausgabefunktion implementiert), die zum Generieren von Schlüsselstrombits anhand des internen Zustands konfiguriert ist, wie unter Bezugnahme auf 3 erklärt wurde.
  • Ferner wird der aktuelle interne Zustand (zum Zeitpunkt t) von einem Prozessor 603 verarbeitet (der eine Folgezustandsfunktion implementiert), der den anschließenden internen Zustand (zum Zeitpunkt t + 1) festlegt und die Speicherzellen 601 mit dem festgelegten anschließenden internen Zustand lädt. Durch Wiederholen der Prozedur, beginnend mit einem Seed 604, der in die Speicherzellen 601 geladen wird, als Anfangszustand (zum Zeitpunkt t = 0), z. B. durch eine Seeding-Funktion oder einen Seeding-Algorithmus, generiert die Stromchiffre 600 somit eine Abfolge interner Zustände und einen entsprechenden Schlüsselstrom.
  • In dieser Ausführungsform ist eine Steuerung 605 bereitgestellt, die zum Zählen der Anzahl generierter interner Zustände konfiguriert ist und, wenn die Anzahl interner Zustände einen gewissen vorbestimmten Wert erreicht hat (z. B. wenn ein Zeitpunkt t = T erreicht ist), konfiguriert ist, einen Teil des internen Zustands in den Speicherzellen 601 mit einem vorbestimmten Wert 606 zu überschreiben, z. B. einer Reihe binärer Nullen.
  • Zum Beispiel hätte die Stromchiffre eine interne Zustandsgröße von 400 Bits, d. h., die Speicherzellen 601 sind 400 1-Bit-Zellen. Zum Beispiel ist jede Speicherzelle als ein Flip-Flop implementiert.
  • Wenn die vorbestimmte Anzahl interner Zustände erreicht ist (z. B. 128 oder 256), stellt die Steuerung 128 im Voraus gewählte Speicherzellen der mehreren Speicherzellen 601 zurück. Diese Rückstellung wird auch als Löschphase bezeichnet. Nach dem Rückstellen der 128 Zellen ist der interne Zustand (vorübergehend) unausgeglichen, das heißt, enthält signifikant mehr Nullen als Einser.
  • Es sollte festgehalten werden, dass der Überschuss an Nullen im internen Zustand sich nicht in der entsprechenden Ausgabeabfolge zeigt, wenn anschließende interne Zustände und Ausgabebits generiert werden. Für eine Stromchiffre ausreichender Qualität ist die Ausgabeabfolge noch immer ausgeglichen.
  • Nach dem Löschen gewählter interner Zustandsbits (z. B. Überschreiben der gewählten internen Zustandsbits mit Nullen), wendet der Prozessor mehrere Male die Folgezustandsfunktion 603 an, aber die Ausgabeschaltung 602 generiert keine Ausgabebits anhand der derart generierten internen Zustände (oder die Ausgabeschaltung 602 generiert Ausgabebits, die aber verworfen werden, d. h., nicht zu einer Komponente, z. B. Prozessor 104 oder Kryptoprozessor 105, geleitet werden, der Schlüsselstrombits bereitgestellt werden sollen). Dies wird als die Erholungsphase bezeichnet.
  • Zum Beispiel wird die Folgezustandsfunktion in der Erholungsphase 128 Mal angewendet, ohne Ausgabebits zu generieren. Der Mangel an Ausgeglichenheit des internen Zustands, der durch Rückstellen von 128 Speicherzellen verursacht wird, wird während der Erholungsphase behoben.
  • Nach der Erholungsphase werden anschließende Zustände und Ausgabeschlüsselstrombits wieder normal generiert. Dies wird als die Produktionsphase bezeichnet. Diese wird zum Beispiel fortgesetzt, bis die Anzahl generierter anschließender Zustände den Schwellenwert (z. B. seit dem Beginn der Produktionsphase) erreicht hat, und die Steuerung die nächste Löschphase einleitet.
  • Zum Beispiel wird die in der Produktionsphase generierte Abfolge der Schlüsselstrombits als eine (Pseudo)Zufallswort angesehen, das somit eine vorbestimmte Anzahl von Schlüsselstrombits hat, die in einem Register gespeichert werden, wo sie auf ihre spätere Verwendung durch eine andere Komponente, z. B. Prozessor 104 oder Kryptoprozessor 105, warten.
  • Nach dem Generieren eines Zufallsworts wird die Löschphase wieder ausgeführt, gefolgt von einer Zustandserholungsphase und der Produktion eines weiteren Zufallsworts. Die drei Phasen können wiederholt werden, bis die erforderliche Anzahl von Zufallsworten generiert wurde.
  • Nach der Erholungsphase wird zum Beispiel die Stromchiffre 128 Mal getaktet (d. h., es werden weitere 128 Ausführungen der Folgezustandsfunktion durchgeführt), wodurch 128 Ausgabebits erzeugt werden. Die 128 Ausgabebits bilden ein Zufallswort W1.
  • Durch mehrmaliges Wiederholen der drei Phasen wird eine Abfolge von Zufallsworten W1, W2, W3, W4 erzeugt, die die gewünschte Eigenschaft einer rückwärts gerichteten Geheimhaltung aufweist.
  • Zusätzlich wird zum Beispiel ein Wort W0 in einer Produktionsphase zwischen dem Seeding der Stromchiffre und der ersten Löschphase generiert, das auch zur Verwendung in einer Komponente gespeichert werden kann, die Zufallsworte benötigt.
  • Die Eigenschaft einer rückwärts gerichteten Geheimhaltung kann sich aus der Schwierigkeit (Mehrdeutigkeit), den internen Zustand der Chiffre festzustellen, unmittelbar bevor das Rückstellen der 128 Speicherzellen stattfindet, ergeben.
  • Gemäß einer zweiten Ausführungsform, wie in der Folge beschrieben, wird eine vorbestimmte Anzahl von Schlüsselstrombits generiert und ein Teil der generierten Schlüsselstrombits wird in den internen Zustand zurückgekoppelt. Dies ist in der Folge unter Bezugnahme auf 7 beschrieben.
  • 7 zeigt eine Stromchiffre 700.
  • Ähnlich der Stromchiffre 600 hat die Stromchiffre 700 einen internen Zustand, der eine Anzahl von Bits enthält, die in einer Speicherzelle mehrerer Speicherzellen 701 gespeichert sind. Der aktuelle interne Zustand wird an eine Ausgabeschaltung 702 ausgegeben (die eine Ausgabefunktion implementiert), die zum Generieren von Schlüsselstrombits anhand des internen Zustands konfiguriert ist, wie unter Bezugnahme auf 3 erklärt ist.
  • Ferner wird der aktuelle interne Zustand (zum Zeitpunkt t) von einem Prozessor 703 verarbeitet (der eine Folgezustandsfunktion implementiert), der den anschließenden internen Zustand (zum Zeitpunkt t + 1) festlegt und die Speicherzellen 701 mit dem festgelegten anschließenden internen Zustand lädt. Durch Wiederholen dieser Prozedur, beginnend mit einem Seed 704, der von einer Seeding-Schaltung 705, die eine Seeding-Funktion implementiert, in die Speicherzellen 701 geladen wird, als Anfangszustand (zum Zeitpunkt t = 0) generiert die Stromchiffre 700 somit eine Abfolge interner Zustände und einen Schlüsselstrom 706.
  • In dieser Ausführungsform wird eine Steuerung 709 bereitgestellt, die zum Zählen der Anzahl von Schlüsselstrombits konfiguriert ist und, wenn die Anzahl von Schlüsselstrombits einen gewissen vorbestimmten Wert erreicht hat, z. B. ein Schlüsselstromsegment der Länge N generiert wurde, das Schlüsselstromsegment in ein erstes Teilsegment 707 und ein zweites Teilsegment 708 der Länge N1 bzw. N2 teilt und zum Beispiel die zwei Teilsegmente 707, 708 in zwei Registern speichert.
  • Das zweite Teilsegment 708 wird zum Beispiel von einer Komponente als Zufallswort verwendet, der Zufallsworte bereitgestellt werden sollen, aber das erste Teilsegment 707 wird nicht als Zufallswort verwendet (z. B. verhindert die Steuerung 709 ein Weiterleiten des ersten Teilsegments 707 zu einer anderen Komponente wie dem Prozessor 104). Stattdessen führt die Steuerung 709 das erste Teilsegment 707 unter Verwendung der Schlüsselladefunktion (z. B. des vollen Schlüsselladealgorithmus oder eines Teils des Schlüsselladealgorithmus) in den internen Zustand ein (als ob es ein Seed wäre).
  • Zum Beispiel hätte die Stromchiffre eine interne Zustandsgröße von 400 Bits, d. h., die Speicherzellen 601 sind 400 1-Bit-Zellen. Zum Beispiel ist jede Speicherzelle als ein Flip-Flop implementiert. Die Stromchiffre wird zum Beispiel 256 Mal getaktet, um ein 256-Bit Schlüsselstromsegment 706 zu erzeugen. Die Steuerung 709 teilt das Schlüsselstromsegment 706 in zwei 128-Bit Teilsegmente 707, 708. Das zweite Teilsegment 708 wird als 128-Bit Zufallswort W1 verwendet. Die Steuerung 709 führt das erste 128-Bit Teilsegment 707 in einen internen Zustand ein, z. B. durch Anwenden der Schlüsselladefunktion (d. h., des Seeding-Algorithmus) der Stromchiffre.
  • Die Steuerung 709 kann auch eine verkürzte (oder beschleunigte) Version der Schlüsselladefunktion durch Anwenden eines Teilsatzes von Schritten anwenden, die den Schlüsselladealgorithmus definieren (unter der Annahme, dass, wie für eine typische Stromchiffre, der Schlüsselladealgorithmus aus einer Abfolge mehrerer Schritte besteht).
  • Das Einführen des 128-Bit Teilsegments in den internen Zustand unter Verwendung einer beschleunigten Version des Schlüsselladealgorithmus kann zum Beispiel in 128 Taktzyklen erfolgen.
  • Nach Beendigung des Einführens des ersten Teilsegments 707 in den internen Zustand generiert die Stromchiffre ein nächstes Schlüsselstromsegment einer Länge N (durch normales Generieren anschließender Zustände unter Verwendung der Folgezustandsfunktion und Generieren von Ausgabebits) und die oben beschriebene Prozedur kann wiederholt werden.
  • Wenn zum Beispiel das Einführen des ersten 128-Bit Teilsegments 707 in den internen Zustand beendet ist und das zweite 128-Bit Teilsegment 708 gespeichert oder als Zufallswort W1 weitergeleitet wurde, erzeugt die Stromchiffre ein nächstes 256-Bit Schlüsselstromsegment, das wiederum das nächste 128-Bit Zufallswort W2 liefert, usw.
  • Auf diese Weise kann die Stromchiffre 700 eine Abfolge von 128-Bit Zufallsworten erzeugen: W1, W2, W3, W4, ..., wobei 384 Taktzyklen erforderlich sind, um ein Zufallswort zu erzeugen (unter der Annahme eines Taktzyklus für das Generieren eines Ausgabebits).
  • Die derart generierte Abfolge von Zufallsworten hat die Eigenschaft einer rückwärts gerichteten Geheimhaltung, die so betrachtet werden kann, dass sie auf der Tatsache beruht, dass es für eine gute Stromchiffre rechnerisch nicht machbar ist, den internen Zustand aus einer gegebenen begrenzten Menge eines Schlüsselstroms zu bestimmen.
  • Es sollte festgehalten werden, dass die Aufgaben der Teilsegmente 707, 708 auch umgekehrt werden können, d. h., das erste Teilsegment 707 kann gespeichert oder als Zufallswort zur Verwendung durch eine andere Komponente weitergeleitet werden und das zweite Teilsegment kann in den internen Zustand eingeführt werden.
  • 8 veranschaulicht, wie die Rückverfolgungsbeständigkeit gemäß verschiedenen Ausführungsformen erreicht wird.
  • Unter der Annahme einer bijektiven Zustandsübergangsfunktion könnte ein Angreifer für einen Zustand St vorherige Zustände St-1, St-2, ..., St-k nachrechnen, wobei angenommen wird, dass der Zustand St-k ein interner Zustand ist, für den zumindest ein Teil anhand eines vorbestimmten Werts geändert wurde, der z. B. teilweise auf Nullen gesetzt wurde, wie in dem Beispiel von 6, oder der durch Einführen eines ersten Schlüsselstromteilsegments, wie in dem Beispiel von 7, geändert wurde. An diesem Punkt, d. h., in Zustand St-k, kann der Angreifer den vorherigen Zustand St-k-1 nicht leicht bestimmen, da der Angreifer den vorbestimmten Wert nicht kennt und es eine Vielzahl möglicher vorheriger Zustände 801 gibt, die nicht leicht vom Angreifer eliminiert werden können. Mit anderen Worten, der Angreifer sieht sich plötzlich einer hohen Anzahl möglicher vorheriger Zustände (z. B. 2128) gegenüber, was einen zu hohen Arbeitsaufwand bedeutet, da der Angreifer alle vorherigen Zustände für die weitere Rückverfolgung berücksichtigen muss, bis der Angreifer imstande ist, diese der Reihe nach zu eliminieren.
  • Während spezielle Aspekte beschrieben wurden, sollte für Fachleute auf dem Gebiet klar sein, dass verschiedene Änderungen in Form und Einzelheit an diesen vorgenommen werden können, ohne vom Wesen und Umfang der Aspekte dieser Offenbarung abzuweichen, wie durch die beiliegenden Ansprüche definiert. Der Umfang ist somit durch die beiliegenden Ansprüche gegeben und alle Änderungen, die in der Bedeutung und im Bereich einer Äquivalenz der Ansprüche liegen, sollen daher enthalten sein.

Claims (22)

  1. Zufallszahlgenerator, aufweisend: einen Speicher, der zum Speichern eines internen Zustands einer Stromchiffre konfiguriert ist; einen Prozessor, der zum Generieren einer Abfolge von internen Zuständen durch Generieren, für einen internen Zustand der Stromchiffre, eines anschließenden internen Zustands für den internen Zustand der Stromchiffre durch Anwenden einer Folgezustandsfunktion beim internen Zustand konfiguriert ist; und eine Steuerung, die zum Detektieren konfiguriert ist, ob die Abfolge anschließender interner Zustände eine vorbestimmte Länge erreicht hat und, wenn die Abfolge anschließender Zustände eine vorbestimmte Länge bei einem aktuellen internen Zustand erreicht hat, Ändern des aktuellen internen Zustands anhand eines vorbestimmten Werts und Steuern des Prozessors, um die Folgezustandsfunktion an dem derart geänderten, aktuellen internen Zustand anstelle des aktuellen internen Zustands anzuwenden, um den anschließenden internen Zustand für den aktuellen internen Zustand zu generieren.
  2. Zufallszahlgenerator nach Anspruch 1, wobei die Steuerung konfiguriert ist zum Steuern des Prozessors, um ein Anwenden der Folgezustandsfunktion beim internen Zustand zu pausieren, wenn die Abfolge anschließender Zustände eine vorbestimmte Länge bei einem aktuellen internen Zustand erreicht hat, und zum Steuern des Prozessors, weiterhin die Folgezustandsfunktion beim internen Zustand nach einem Ändern des aktuellen internen Zustands anhand des vorbestimmten Werts anzuwenden.
  3. Zufallszahlgenerator nach Anspruch 1 oder 2, wobei die Steuerung zum Einstellen zumindest eines Teils des aktuellen internen Zustands auf den vorbestimmten Wert konfiguriert ist.
  4. Zufallszahlgenerator nach Anspruch 1 oder 2, wobei der interne Zustand mehrere Bits aufweist und die Steuerung zum Einstellen zumindest eines Teils der mehreren Bits des aktuellen Zustands auf Bitwerte des vorbestimmten Werts konfiguriert ist.
  5. Zufallszahlgenerator nach Anspruch 1 oder 2, wobei der interne Zustand mehrere Bits aufweist und die Steuerung zum Einstellen einiger Bits der mehreren Bits des aktuellen Zustands auf Bitwerte des vorbestimmten Werts konfiguriert ist.
  6. Zufallszahlgenerator nach Anspruch 1 oder 2, wobei der interne Zustand mehrere Bits aufweist und die Steuerung zum Einstellen einiger Bits der mehreren Bits des aktuellen Zustands auf Null konfiguriert ist oder zum Einstellen einiger Bits der mehreren Bits des aktuellen Zustands auf Eins konfiguriert ist.
  7. Zufallszahlgenerator nach einem der Ansprüche 1 bis 6, wobei der vorbestimmte Wert ein Nicht-Zufallswert ist.
  8. Zufallszahlgenerator nach einem der Ansprüche 1 bis 7, des Weiteren aufweisend eine Ausgabeschaltung, die zum Generieren eines Ausgabeschlüsselstroms anhand der Abfolge anschließender Zustände konfiguriert ist.
  9. Zufallszahlgenerator nach Anspruch 8, wobei die Steuerung zum Steuern der Ausgabeschaltung konfiguriert ist, um das Generieren des Ausgabeschlüsselstroms von anschließenden Zuständen nach dem Ändern des aktuellen internen Zustands anhand des vorbestimmten Werts für eine Anzahl anschließender Zustände zu pausieren.
  10. Zufallszahlgenerator nach Anspruch 8, wobei der vorbestimmte Wert ein Teil des Ausgabeschlüsselstroms ist, der von der Abfolge anschließender Zustände bis zum aktuellen internen Zustand generiert wurde, mit dem die Abfolge anschließender Zustände die vorbestimmte Länge erreicht hat.
  11. Zufallszahlgenerator nach Anspruch 8, wobei die Ausgabeschaltung zum Teilen des Ausgabeschlüsselstroms, der von der Abfolge anschließender Zustände bis zum aktuellen internen Zustand generiert wurde, mit dem die Abfolge anschließender Zustände die vorbestimmte Länge erreicht hat, in ein erstes Teilsegment und ein zweites Teilsegment konfiguriert ist, um der Steuerung das erste Teilsegment bereitzustellen und das zweite Teilsegment von dem Zufallszahlgenerator auszugeben, wobei die Steuerung zum Verwenden des ersten Teilsegments als den vorbestimmten Wert konfiguriert ist.
  12. Zufallszahlgenerator nach Anspruch 11, wobei die Ausgabeschaltung zum Vermeiden einer Ausgabe des ersten Teilsegments vom Zufallszahlgenerator konfiguriert ist.
  13. Zufallszahlgenerator nach Anspruch 11 oder 12, wobei die Ausgabeschaltung zum Ausgeben des zweiten Teilsegments als Zufallswort an eine Komponente konfiguriert ist, der Zufallsworte bereitgestellt werden sollen.
  14. Zufallszahlgenerator nach einem der Ansprüche 1 bis 13, des Weiteren aufweisend eine Seeding-Schaltung, die zum Initialisieren des internen Zustands mit einem Zufalls-Seed konfiguriert ist, wobei der Prozessor zum Generieren der Abfolge interner Zustände, beginnend mit dem initialisierten internen Zustand konfiguriert ist.
  15. Zufallszahlgenerator nach Anspruch 14, wobei die Steuerung zum Ändern des aktuellen internen Zustands anhand des vorbestimmten Werts zwischen zwei Initialisierungen des internen Zustands mit einem Zufalls-Seed durch die Seeding-Schaltung konfiguriert ist.
  16. Zufallszahlgenerator nach Anspruch 14, wobei die Steuerung zum mehrmaligen Ändern des aktuellen internen Zustands anhand des vorbestimmten Werts zwischen zwei Initialisierungen des internen Zustands mit einem Zufalls-Seed durch die Seeding-Schaltung konfiguriert ist.
  17. Zufallszahlgenerator nach einem der Ansprüche 14 bis 16, wobei die Steuerung zum Ändern des aktuellen internen Zustands anhand des vorbestimmten Werts durch die Seeding-Schaltung konfiguriert ist.
  18. Zufallszahlgenerator nach einem der Ansprüche 14 bis 17, wobei die Seeding-Schaltung zum Initialisieren des internen Zustands mit dem Seed gemäß einem Seeding-Algorithmus konfiguriert ist und wobei die Steuerung zum Ändern des aktuellen internen Zustands anhand des vorbestimmten Werts durch Eingeben des vorbestimmten Werts in die Seeding-Schaltung und Steuern der Seeding-Schaltung, um zumindest teilweise den Seeding-Algorithmus anhand des vorbestimmten Werts durchzuführen, konfiguriert ist.
  19. Zufallszahlgenerator nach einem der Ansprüche 1 bis 18, wobei der vorbestimmte Wert ein Nicht-Zufallswert ist.
  20. Zufallszahlgenerator nach einem der Ansprüche 1 bis 19, wobei die Steuerung zum periodischen Ändern des aktuellen internen Zustands anhand eines vorbestimmten Werts und Steuern des Prozessors, um die Folgezustandsfunktion an dem derart geänderten, aktuellen internen Zustand anstelle des aktuellen internen Zustands anzuwenden, um den anschließenden internen Zustand für den aktuellen internen Zustand zu generieren, konfiguriert ist.
  21. Chipkarte, aufweisend einen Zufallszahlgenerator nach einem der Ansprüche 1 bis 20.
  22. Verfahren zum Generieren von Zufallszahlen, aufweisend: Generieren einer Abfolge interner Zustände einer Stromchiffre durch Generieren, für einen internen Zustand der Stromchiffre, eines anschließenden internen Zustands für den internen Zustand der Stromchiffre durch Anwenden einer Folgezustandsfunktion beim internen Zustand; Detektieren, ob die Abfolge anschließender interner Zustände eine vorbestimmte Länge erreicht hat, wenn die Abfolge anschließender Zustände eine vorbestimmte Länge bei einem aktuellen internen Zustand erreicht hat, Ändern des aktuellen internen Zustands anhand eines vorbestimmten Werts; und Anwenden der Folgezustandsfunktion an dem derart geänderten, aktuellen internen Zustand anstelle des aktuellen internen Zustands, um den anschließenden internen Zustand für den aktuellen internen Zustand zu generieren.
DE102015114234.1A 2015-08-27 2015-08-27 Zufallszahlgenerator und Verfahren zum Generieren von Zufallszahlen Pending DE102015114234A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102015114234.1A DE102015114234A1 (de) 2015-08-27 2015-08-27 Zufallszahlgenerator und Verfahren zum Generieren von Zufallszahlen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015114234.1A DE102015114234A1 (de) 2015-08-27 2015-08-27 Zufallszahlgenerator und Verfahren zum Generieren von Zufallszahlen

Publications (1)

Publication Number Publication Date
DE102015114234A1 true DE102015114234A1 (de) 2017-03-02

Family

ID=58010675

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015114234.1A Pending DE102015114234A1 (de) 2015-08-27 2015-08-27 Zufallszahlgenerator und Verfahren zum Generieren von Zufallszahlen

Country Status (1)

Country Link
DE (1) DE102015114234A1 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007025754A1 (de) * 2006-06-05 2007-12-13 Infineon Technologies Ag Verfahren und Vorrichtung zur Nachverarbeitung einer Rohbitsequenz einer Rauschquelle
DE102006037016B4 (de) * 2006-08-08 2009-04-23 Giesecke & Devrient Gmbh Pseudo-Zufallszahlengenerator für eine Chipkarte
DE102013213316A1 (de) * 2012-07-10 2014-01-16 Infineon Technologies Ag Zufallsbitstromgenerator mit verbesserter rückwärts gerichteter Gemeinhaltung

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007025754A1 (de) * 2006-06-05 2007-12-13 Infineon Technologies Ag Verfahren und Vorrichtung zur Nachverarbeitung einer Rohbitsequenz einer Rauschquelle
DE102006037016B4 (de) * 2006-08-08 2009-04-23 Giesecke & Devrient Gmbh Pseudo-Zufallszahlengenerator für eine Chipkarte
DE102013213316A1 (de) * 2012-07-10 2014-01-16 Infineon Technologies Ag Zufallsbitstromgenerator mit verbesserter rückwärts gerichteter Gemeinhaltung

Similar Documents

Publication Publication Date Title
DE69506675T2 (de) Verfahren zur Ausführung von modularen Reduktion nach der Montgomery-Methode
DE69118977T2 (de) Verschlüsselungssystem auf Grundlage der Chaostheorie
DE102011088502B3 (de) Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken
DE4293456B4 (de) Elektronische Logikschaltung
EP3686871A1 (de) Verfahren zum härten von softwareapplikationen
DE10339999B4 (de) Pseudozufallszahlengenerator
DE102013213316A1 (de) Zufallsbitstromgenerator mit verbesserter rückwärts gerichteter Gemeinhaltung
DE102007007699A1 (de) Reduktion von Seiten-Kanal-Informationen durch interagierende Krypto-Blocks
DE102020102453A1 (de) Integrierte Schaltung zum modularen Multiplizieren von zwei ganzen Zahlen für ein kryptographisches Verfahren und Verfahren zur kryptographischen Verarbeitung von Daten basierend auf modularer Multiplikation
DE102010029735A1 (de) Verfahren zum Generieren eines Bitvektors
DE102005028662A1 (de) Verfahren und Vorrichtung zum Berechnen einer Polynom-Multiplikation, insbesondere für die elliptische Kurven-Kryptographie
DE102014203497A1 (de) Maskiertes nichtlinear rückgekoppeltes Schieberegister
WO2002061570A2 (de) Zufallszahlengenerator und verfahren zum erzeugen einer zufallszahl
DE102009007246A1 (de) Pseudozufallszahlengenerator und Verfahren zum Erzeugen einer Pseudozufallszahlenbitsequenz
DE112015006865T5 (de) Vorrichtung zum Erzeugen eines Nachrichten-Authenticators, Verfahren zum Erzeugen eines Nachrichten-Authenticators und Programm zum Erzeugen eines Nachrichten-Authenticators
DE102008057907B4 (de) Steuerung eines Pseudozufallszahlengenerators und einer Verbraucherschaltung, die mit demselben gekoppelt ist
DE112008001707T5 (de) Finite-Feld-Operationen verwendender kryptographischer Zufallszahlengenerator
DE102004013480B4 (de) Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen
DE102015102363A1 (de) Anordnung und verfahren zum überprüfen der entropie einer zufallszahlenfolge
DE69707717T2 (de) Modulo-arithmetischer koprozessor mit einer schaltung für die division ganzer zahlen
DE102014200309A1 (de) Verfahren zum Überprüfen einer Ausgabe
DE10061315A1 (de) Verfahren und Vorrichtung zum Erzeugen einer Pseudozufallsfolge
DE102011012328A1 (de) Verschlüsseltes Rechnen
DE102015114234A1 (de) Zufallszahlgenerator und Verfahren zum Generieren von Zufallszahlen
DE102015214427A1 (de) Ableitung eines Sitzungsschlüssels mit Zugriff auf eine physikalisch unklonbare Funktion

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication