DE102015100760A1 - Generieren von Zufallszahlen - Google Patents

Generieren von Zufallszahlen Download PDF

Info

Publication number
DE102015100760A1
DE102015100760A1 DE102015100760.6A DE102015100760A DE102015100760A1 DE 102015100760 A1 DE102015100760 A1 DE 102015100760A1 DE 102015100760 A DE102015100760 A DE 102015100760A DE 102015100760 A1 DE102015100760 A1 DE 102015100760A1
Authority
DE
Germany
Prior art keywords
random number
transformation
shift registers
shift register
stage
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
DE102015100760.6A
Other languages
English (en)
Inventor
Rainer Göttfert
Berndt Gammel
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 DE102015100760.6A priority Critical patent/DE102015100760A1/de
Priority to US14/994,367 priority patent/US10754617B2/en
Publication of DE102015100760A1 publication Critical patent/DE102015100760A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Es wird eine Vorrichtung zum Generieren von Zufallszahlen vorgeschlagen, wobei die Vorrichtung mindestens zwei Schieberegister und eine Transformationsfunktion, die die Zufallszahl auf der Grundlage von mindestens einer Zelle von jedem der mindestens zwei Schieberegister generiert, umfasst.

Description

  • HINTERGRUND DER ERFINDUNG
  • Ausführungsformen der vorliegenden Erfindung beziehen sich auf einen Ansatz, der das effiziente Generieren von mindestens einer Zufallszahl ermöglicht.
  • KURZE DARSTELLUNG
  • Eine erste Ausführungsform bezieht sich auf eine Vorrichtung zum Generieren einer Zufallszahl, wobei die Vorrichtung Folgendes umfasst:
    • – mindestens zwei Schieberegister,
    • – eine Transformationsfunktion, die die Zufallszahl auf der Grundlage von mindestens einer Zelle von jedem der mindestens zwei Schieberegister generiert.
  • Eine zweite Ausführungsform bezieht sich auf ein Verfahren zum Generieren einer Zufallszahl, wobei das Verfahren Folgendes umfasst:
    • – Generieren der Zufallszahl basierend auf mindestens einer Zelle von jedem von mindestens zwei Schieberegistern mittels einer Transformationsfunktion.
  • Eine dritte Ausführungsform bezieht sich auf eine Vorrichtung zum Generieren einer Zufallszahl, wobei die Vorrichtung Folgendes umfasst:
    • – Mittel zum Generieren der Zufallszahl basierend auf mindestens einer Zelle von jedem von mindestens zwei Schieberegistern mittels einer Transformationsfunktion.
  • Eine vierte Ausführungsform ist auf ein Computerprogrammprodukt gerichtet, das direkt in einen Speicher einer digitalen Verarbeitungsvorrichtung ladbar ist, umfassend Softwarecodeanteile zum Durchführen der Schritte des hierin beschriebenen Verfahrens.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Ausführungsformen werden gezeigt und mit Bezug auf die Zeichnungen dargestellt. Die Zeichnungen dienen dazu, das grundlegende Konzept darzustellen, sodass nur Aspekte, die zum Verständnis des grundlegenden Konzepts benötigt werden, dargestellt sind. Die Zeichnungen sind nicht maßstabsgetreu. In den Zeichnungen bezeichnen die gleichen Bezugszeichen äquivalente Merkmale.
  • 1 zeigt einen Pseudozufallszahlengenerator, der mehrere nichtlinear rückgekoppelte Schieberegister („nonlinear feedback shift register“, NLFSR) umfasst;
  • 2 zeigt ein beispielhaftes Benutzungsfallszenario, das vier NLFSR umfasst;
  • 3 zeigt einen beispielhaften Zufallsgenerator, der drei Schieberegister umfasst, wobei jedes Schieberegister ein NLFSR ist.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Zufallszahlen werden von verschiedenen Anwendungen benötigt. Zum Beispiel kann ein Mikrocontroller, ein Prozessor oder irgendeine Verarbeitungsvorrichtung solche Zufallszahlen brauchen. Eine Anwendung kann im Verbergen und/oder Randomisieren von Daten in einem Sicherheitsszenario liegen.
  • Es ist anzumerken, dass sich „zufällig“ auf ein „echtes“ Zufallsereignis oder ein „Pseudo-“Zufallsereignis beziehen kann. Zum Beispiel kann ein Zufallsgenerator echte Zufallszahlen oder Pseudozufallszahlen produzieren. Je nach Benutzungsfallszenario können Zufallszahlen echte Zufallszahlen oder Pseudozufallszahlen sein. In dieser Beschreibung bezieht sich der Begriff „Zufallszahl“ entweder auf eine echte Zufallszahl oder eine Pseudozufallszahl.
  • Gemäß einem Beispiel kann eine Smartcard vier Zufallsbytes (oder Pseudozufallsbytes, s. o.) mit jedem Taktzyklus benötigen. Die Smartcard kann diese Zufallsbytes für verschiedene Anwendungen verwenden. Hierin dargestellte Beispiele beziehen sich auf einen Generator (Zufallszahlengenerator, Zufallsgenerator), der das effiziente Produzieren von Zufallsbytes ermöglicht, insbesondere mit weniger Hardware, was zu einer reduzierten Fläche auf einem Chip führt.
  • Um vier Zufallsbytes (d.h. 32 Zufallsbits) pro Taktzyklus zu produzieren, würden 32 parallele Schieberegister benötigt werden, was eine beträchtliche Menge an Chipfläche ergibt. Insbesondere zeigen dargestellte Beispiele, wie so eine große Chipfläche reduziert werden kann, was auch zu einer wirtschaftlichen Implementierung des Generators führt.
  • Hierin dargestellte Beispiele stellen insbesondere einen effizienten Generator bereit, der eine vordefinierte Anzahl an Zufallsbits (oder Zufallsbytes) pro Taktzyklus produziert. Der Generator kann z.B. ein Pseudozufallszahlengenerator („pseudo-random number generator“, PRNG) sein.
  • Die Zufallsbits können statistisch unabhängig voneinander sein, d.h. ein einzelner Zufallsbit deutet nicht auf irgendeinen anderen Zufallsbit bzw. stellt keinerlei Informationen darüber bereit.
  • Es ist anzumerken, dass irgendeine Zufallseinheit, die nicht ein Zufallsbit ist, verwendet werden kann. Jede Zufallseinheit kann k Bits umfassen, wobei k ≥ 2 ist. Wenn die Zufallseinheit ein Byte ist, ist k = 8.
  • Der Generator kann eine Anzahl an r rückgekoppelte Schieberegister umfassen, insbesondere eine Anzahl an r nichtlinear rückgekoppelten Schieberegistern („nonlinear feedback shift register“, NLFSR). Jeder NLFSR stellt gleichzeitig mehrere angrenzende Zellen (d.h. Bits) bereit. Anders ausgedrückt, produziert jeder NLFSR pro Taktsignal einen Ausgabevektor anstatt nur ein Ausgabebit.
  • Eine Transformation T (die entweder eine bijektive Funktion oder eine Kompressionsfunktion umfasst) wird auf einen Ausgabevektor u eines NLFSR angewandt, wodurch sich ein Vektor v wie folgt ergibt: v = T(u)
  • Die Transformation T stellt eine Datenkompression bereit, wenn der sich ergebende Vektor v kürzer als der Ausgabevektor u ist.
  • 1 zeigt einen Pseudozufallszahlengenerator, der r NLFSR 101, 102, 103 umfasst.
  • Das NLFSR 101 produziert einen Ausgabevektor u1, der von einer Transformation T1 in einen Vektor v1 verarbeitet wird. Das NLFSR 102 produziert einen Ausgabevektor u2, der von einer Transformation T2 in einen Vektor v2 verarbeitet wird. Das NLFSR 103 produziert einen Ausgabevektor ur, der von einer Transformation Tr in einen Vektor vr verarbeitet wird.
  • Jede Transformation Ti (mit i = 1, ..., r) ergibt einen neuen Vektor vi. Die Vektoren vi werden konkateniert (d.h. verknüpft), wodurch sich ein Vektor v wie folgt ergibt: v = (v1|v2|...|vr)
  • Dieser Vektor v wird von einer zusätzlichen Transformation S (eine S-Box) verarbeitet, um einen Ausgabevektor w zu erhalten. Der Ausgabevektor w kann die gleiche Länge wie der Vektor v aufweisen oder er kann kürzer als der Vektor v sein. Im letzteren Szenario führt die Transformation S eine Datenkompression durch, d.h., die Transformation S umfasst eine Kompressionsfunktion.
  • Im Beispiel, das in 1 gezeigt wird, kann der Ausgabevektor w in Teile (z.B. Bits, Bytes, Wörter) wi unterteilt werden, mit i = 1, ..., t.
  • 2 zeigt ein beispielhaftes Benutzungsfallszenario, das r = 4 NLFSR 201 bis 204 umfasst. Der NLFSR 201 hat eine Länge von 29 Bit, der NLFSR 202 hat eine Länge von 31 Bit, der NLFSR 203 hat eine Länge von 33 Bit und der NLFSR 204 hat eine Länge von 35 Bit. Daher umfassen die NLFSR 201 bis 204 128 Zellen (Flipflops); anders ausgedrückt hat der interne Zustand des PRNG, der in 2 gezeigt ist, eine Größe von 128 Bit.
  • Der PRNG kann initialisiert werden, indem ein Zufallsstartwert auf dessen 128 Zellen übertragen wird. Der Zufallsstartwert kann von einem echten Zufallsgenerator oder irgendeiner anderen echten Zufallsquelle oder Pseudozufallsquelle erhalten werden.
  • Die NLFSR 201 und 202 geben jeweils ihre ersten 14 Zellen aus, wodurch sich Ausgabevektoren u1 und u2, jeweils mit einer Größe von 14 Bit, ergeben. Die NLFSR 203 und 204 geben jeweils ihre ersten 16 Zellen aus, wodurch sich Ausgabevektoren u3 und u4, jeweils mit einer Größe von 16 Bit, ergeben. Es ist anzumerken, dass die Formulierung „ein Vektor a mit einer Größe von n Bit“ den Ausdrücken „ein Vektor a der Länge n“ bzw. „ein Vektor a mit einer Bitlänge von n“ entspricht.
  • Für jedes NLFSR wird eine Transformation Ti durchgeführt, die einen Vektor vi gemäß vi = Tiui, mit i = 1, ..., 4, ergibt. Alle Transformationen Ti, die in 2 gezeigt sind, umfassen Kompressionsfunktionen.
  • Im Beispiel, das in 2 gezeigt ist, komprimiert jede Transformation T1, T2 die 14-Bit Eingabevektoren in 10-Bit-Ausgabevektoren v1, v2 und jede Transformation T3, T4 komprimiert die 16-Bit Eingabevektoren in 12-Bit-Ausgabevektoren v3, v4. Der Vektor v wird gebildet, indem die Vektoren v1, v2, v3 und v4 konkateniert werden; daher ergibt sich eine Länge des Vektors v von 44 Bit.
  • Die Ausgabe der Transformation Ti wird an eine Transformation S geliefert, wobei die Transformation S einen 40-Bit(5 Byte)-Ausgabevektor w ergibt. Daher ist r gleich 4 und t gleich 5 in diesem Beispiel.
  • Daher stellt der Zufallsgenerator, der in 2 gezeigt ist, 5 Byte bereit, die von den verschiedenen Anwendungen eines Chips verwendet werden können.
  • Die hierin beschriebenen Beispiele können t Zufallswörter w1, w2, ..., wt bereitstellen, die bevorzugt
    • – gleichmäßig verteilt und
    • – statistisch unabhängig sind.
  • Daher kann ein Zufallswort w der Länge k irgendeinen von dessen 2k möglichen Werten aufnehmen, jeweils mit der gleichen Wahrscheinlichkeit p = 2–k.
  • Die verschiedenen Wörter nehmen deren jeweilige Werte unabhängig voneinander auf. Daher ermöglicht ein Wissen über einen Wert eines einzelnen Worts nicht eine Vorhersage mit Bezug auf einen Wert von irgendeinem anderen Wort.
  • Die Zufallswörter w1, w2, ..., wt können im Wesentlichen gleichmäßig verteilt und statistisch voneinander unabhängig sein, wenn das Folgende zutrifft:
    • (1) Jedes der zugrunde liegenden NLFSR hat eine Periode, die sich zu 2N – j ergibt, wobei N die Länge des Schieberegisters und j ≥ 1 eine kleine Zahl ist. In so einem Szenario hat das NLFSR fast die maximale Zykluslänge 2N, d.h. der Ausgangszustand des NLFSRs wird sich nur nach 2N – j Taktzyklen wiederholen. Dazwischen wird es 2N – j verschiedene Zustände geben; d.h. es werden fast alle der 2N verschiedenen möglichen Zustände des Schieberegisters auftreten (da j bevorzugt eine kleine Zahl sein kann). Daher ist der Vektor ui, der vom Schieberegister i ausgegeben wird, (im Wesentlichen) gleichmäßig verteilt. Über einen langen Zeitraum kann jeder Wert des Vektors ui fast gleich oft vorkommen.
    • (2) Die Transformationen Ti (mit i = 1, ..., r) und S können ein Merkmal aufweisen, das als „ausgeglichen“ bezeichnet werden kann: für jeden möglichen Ausgabevektor gibt es die gleiche Anzahl an Eingabevektoren, die auf dem jeweiligen Ausgabevektor abgebildet werden. Das bedeutet Folgendes: Wenn die Eingabevektoren gleichmäßig verteilt sind, sind die Ausgabevektoren auch gleichmäßig verteilt. Die Transformation T1 (siehe 2) wandelt den 14-Bit-Eingabevektor u1 in den 10-Bit-Ausgabevektor v1 um. Es gibt 214 verschiedene Eingabevektoren und 210 verschiedene Ausgabevektor. Die Transformation T1 ist ausgeglichen, wenn Folgendes für jede Ausgabe gilt: Es gibt 24 = 16 verschiedene Eingabevektoren die auf einem Ausgabevektor abgebildet werden.
  • Gemäß einem Beispiel kann der PRNG Schieberegister (z.B. NLFSR) und mindestens eine Transformation (Ti, S) umfassen, sodass die generierten Zufallszahlen insbesondere gleichmäßig verteilt und/oder statistisch unabhängig sind.
  • Um eine wirtschaftliche Implementierung zu ermöglichen, können die Transformationen als lineare Funktionen realisiert werden. Dies ist akzeptabel, da die zugrunde liegenden Schieberegister schon nichtlinear sind. Durch die Verwendung von linearen Funktionen als Transformationen Ti und S ergeben sich die Vorteile von guten Diffusionseigenschaften und der möglichen wirtschaftlichen Realisierung der Funktionen in Hardware.
  • Eine lineare Abbildung, die einen binären n-Bit-Vektor in einen binären m-Bit-Vektor (m ≤ n) transformiert, kann mittels einer binären m×n-Matrix A realisiert werden. Diese lineare Abbildung ist ausgeglichen, wenn (und nur wenn) die Matrix A einen maximalen Rang aufweist, d.h. wenn in diesem Fall rang(A) = m gilt.
  • Für die linearen Funktionen ist es eine Gestaltungsmöglichkeit, dass die assoziierten Matrizen den maximalen Rang aufweisen.
  • 3 zeigt einen beispielhaften Zufallsgenerator, der drei Schieberegister 301 bis 303 umfasst, wobei jedes Schieberegister ein NLFSR ist.
  • Das Schieberegister 301 hat eine Länge von 17 Bit und produziert einen Ausgabevektor u1 mit einer Größe von 8 Bit. Der Ausgabevektor u1 wird einer (linearen) Transformation T1 zugeführt, die einen Vektor v1 mit einer Größe von 5 Bit produziert.
  • Das Schieberegister 302 hat eine Länge von 19 Bit und produziert einen Ausgabevektor u2 mit einer Größe von 9 Bit. Der Ausgabevektor u2 wird einer (linearen) Transformation T2 zugeführt, die einen Vektor v2 mit einer Größe von 5 Bit produziert.
  • Das Schieberegister 303 hat eine Länge von 21 Bit und produziert einen Ausgabevektor u3 mit einer Größe von 10 Bit. Der Ausgabevektor u3 wird einer (linearen) Transformation T3 zugeführt, die einen Vektor v3 mit einer Größe von 6 Bit produziert.
  • Ein Vektor v der Länge 16 wird gebildet, indem die Vektoren v1, v2, v3 konkateniert werden. Der Vektor v wird von einer (linearen) Transformation S in einen 16-Bit-Ausgabevektor w verarbeitet. Der Vektor w stellt zwei Bytes 304, 305 für die weitere Verarbeitung bereit. Daher produziert der Generator nach 3 zwei statistisch unabhängige Bytes pro Taktzyklus.
  • Am Anfang können die drei Schieberegister 301 bis 303 in irgendeinem Zustand ungleich null gestartet werden. Das Schieberegister 301 hat die Periode von 217 – 1 für alle initialen Zustände ungleich null. Demgemäß hat das Schieberegister 302 die Periode von 219 – 1 für alle initialen Zustände ungleich null und das Schieberegister 303 die Periode von 221 – 1 für alle initialen Zustände ungleich null.
  • Die linearen Transformationen sind wie folgt:
    Figure DE102015100760A1_0002
  • Die lineare Transformation S kann wie folgt definiert werden:
    Figure DE102015100760A1_0003
  • Die Ränge der verwendeten Matrizen werden durch Folgendes gegeben:
    rang(T1) = 5
    rang(T2) = 5
    rang(T3) = 6
    rang(S) = 16
  • Die hierin vorgeschlagenen Beispiele können insbesondere einer der folgenden Lösungen zugrunde liegen. Insbesondere können Kombinationen der folgenden Merkmale verwendet werden, um ein erwünschtes Resultat zu erzielen. Die Merkmale des Verfahrens können mit irgendeinem Merkmal bzw. irgendwelchen Merkmalen der Vorrichtung, der Einrichtung oder des Systems kombiniert werden, oder umgekehrt.
  • Es wird eine Vorrichtung zum Generieren einer Zufallszahl bereitgestellt, wobei die Vorrichtung Folgendes umfasst:
    • – mindestens zwei Schieberegister,
    • – eine Transformationsfunktion, die die Zufallszahl auf der Grundlage von mindestens einer Zelle von jedem der mindestens zwei Schieberegister generiert.
  • Jedes Schieberegister kann mehrere Zellen umfassen. Das Schieberegister kann ein zyklisches Schieberegister, insbesondere ein rückgekoppeltes Schieberegister sein. Das Schieberegister kann ein nichtlinear rückgekoppeltes Schieberegister sein.
  • Die Transformationsfunktion kann nur einen Anteil der Zellen (bzw. alle Zellen) des Schieberegisters als Grundlage zum Generieren der Zufallszahl verwenden.
  • In diesem Zusammenhang kann eine Zufallszahl irgendeine echte Zufallszahl oder Pseudozufallszahl sein, die z.B. insbesondere mehrere Bits, Bytes oder Wörter umfassen kann. Vorteilhafterweise ermöglicht die dargestellte Lösung ein Generieren der Zufallszahl für jeden Taktzyklus.
  • Die mindestens zwei Schieberegister können mittels eines echten Zufallsstartwerts oder eines Pseudozufallsstartwerts initialisiert werden, zum Beispiel mittels einer Zufallszahl, die durch Hardware und/oder Software bereitgestellt werden kann.
  • In einer Ausführungsform umfasst die Transformationsfunktion
    • – eine erste Transformationsstufe für jedes Schieberegister, die die mindestens eine Zelle des jeweiligen Schieberegisters auf mindestens einer Zwischenausgabe abbildet, wobei die Zwischenausgaben der mindestens zwei Schieberegister kombiniert werden,
    • – eine zweite Transformationsstufe, die die kombinierten Zwischenausgaben auf der Zufallszahl abbildet.
  • Die mehreren zwischen Ausgaben der mindestens zwei Schieberegister können konkateniert und von der zweiten Transformationsstufe verarbeitet werden. Jede Transformationsstufe kann eine Abbildungsregel umfassen, um, verglichen mit der Anzahl an Bits, die in die Transformationsstufe eingegeben werden, die gleiche Anzahl an Bits oder eine reduzierte Anzahl an Bits bereitzustellen.
  • In einer Ausführungsform führt die erste Transformationsstufe eine Datenkompression durch, wobei die Datenkompression, verglichen mit ihrer Anzahl an Eingabezellen, eine reduzierte Anzahl an Zwischenausgabebits ergibt.
  • In einer Ausführungsform ist die zweite Transformationsstufe dazu angeordnet, eine Datenkompression durchzuführen, wobei die Datenkompression, verglichen mit der Anzahl an eingegebenen Bits als Zwischenausgaben der ersten Transformationsstufe, eine reduzierte Anzahl an Bits der Zufallszahl ergibt.
  • Es ist jedoch möglich, dass die erste und/oder die zweite Transformationsstufe keine Datenkompression bereitstellt.
  • In einer Ausführungsform umfasst die erste Transformationsstufe oder die zweite Transformationsstufe lineare Funktionen.
  • In einer Ausführungsform umfassen die erste Transformationsstufe und die zweite Transformationsstufe lineare Funktionen.
  • In einer Ausführungsform sind mehrere generierte Zufallszahlen im Wesentlichen gleichmäßig verteilt und im Wesentlichen statistisch unabhängig.
  • In einer Ausführungsform wird die Zufallszahl mit jedem Taktzyklus, der am Schieberegister und an der Transformationsfunktion angelegt wird, generiert.
  • In einer Ausführungsform weist jedes der mindestens zwei Schieberegister eine Periode auf, die sich zu 2N – j ergibt, wobei N die Länge des Schieberegisters und j eine kleine Zahl ist.
  • Die kleine Zahl j kann 1, 2 oder 3 sein und ist bevorzugt klein verglichen mit der Anzahl 2N an möglichen Zuständen des Schieberegisters.
  • In einer Ausführungsform ist die Transformationsfunktion derart angeordnet, dass es für jeden möglichen Ausgabevektor eine gleiche Anzahl an Eingabevektoren, die auf dem jeweiligen Ausgabevektor abgebildet werden, gibt.
  • In einer Ausführungsform ist jedes Schieberegister ein nichtlinear rückgekoppeltes Schieberegister.
  • In einer Ausführungsform sind die mindestens zwei Schieberegister und die Transformationsfunktion auf einem Die oder Chip implementiert.
  • In einer Ausführungsform weisen die mindestens zwei Schieberegister mindestens zum Teil eine unterschiedliche Länge auf.
  • In einer Ausführungsform generiert die Transformationsfunktion die Zufallszahl auf der Grundlage eines Anteils der Zellen der mindestens zwei Schieberegister, wobei eine verschiedene Anzahl an Zellen oder die gleiche Anzahl an Zellen für die mindestens zwei Schieberegister verwendet wird.
  • Es wird auch ein Verfahren zum Generieren einer Zufallszahl vorgeschlagen, wobei das Verfahren Folgendes umfasst:
    • – Generieren der Zufallszahl auf der Grundlage von mindestens einer Zelle von jedem der mindestens zwei Schieberegister mittels einer Transformationsfunktion.
  • In einer Ausführungsform umfasst die Transformationsfunktion
    • – eine erste Transformationsstufe für jedes Schieberegister, die die mindestens eine Zelle des jeweiligen Schieberegisters auf mindestens einer Zwischenausgabe abbildet, wobei die Zwischenausgaben der mindestens zwei Schieberegister kombiniert werden,
    • – eine zweite Transformationsstufe, die die kombinierten Zwischenausgaben auf der Zufallszahl abbildet.
  • Ferner wird eine Vorrichtung zum Generieren einer Zufallszahl vorgeschlagen, wobei die Vorrichtung Folgendes umfasst:
    • – Mittel zum Generieren der Zufallszahl auf der Grundlage von mindestens einer Zelle von jedem der mindestens zwei Schieberegister mittels einer Transformationsfunktion.
  • Es wird ein Computerprogrammprodukt bereitgestellt, das direkt in einen Speicher einer digitalen Verarbeitungsvorrichtung ladbar ist, umfassend Softwarecodeanteile zum Durchführen der Schritte des Verfahrens, wie es hierin beschrieben ist.
  • In einem oder mehreren Beispielen können die hier beschriebenen Funktionen wenigstens teilweise in Hardware implementiert werden, wie spezifischen Hardware-Komponenten oder einem Prozessor. Allgemeiner können die Techniken in Hardware, Prozessoren, Software, Firmware oder einer beliebigen Kombination davon implementiert werden. Bei der Implementierung in Software können die Funktionen als eine oder mehrere Instruktionen oder Code auf einem computerlesbaren Medium gespeichert oder über dieses übertragen werden und durch eine Hardware-basierte Verarbeitungseinheit ausgeführt werden. Computerlesbare Medien können computerlesbare Speichermedien umfassen, die einem greifbaren Medium entsprechen, wie Datenspeichermedien oder Kommunikationsmedien, die ein beliebiges Medium umfassen, das den Transfer eines Computerprogramms von einem Ort zu einem anderen erleichtert, z.B. gemäß einem Kommunikationsprotokoll. Auf diese Weise können computerlesbare Medien allgemein entsprechen: (1) greifbaren computerlesbaren Speichermedien, die nicht-transitorisch sind oder (2) einem Kommunikationsmedium, wie einem Signal oder einer Trägerwelle. Datenspeichermedien können beliebige verfügbare Medien sein, auf die von einem oder mehreren Computern oder einem oder mehreren Prozessoren zugegriffen werden kann, um Instruktionen, Code und/oder Datenstrukturen zur Implementierung der in dieser Offenbarung beschriebenen Techniken abzurufen. Ein Computerprogrammprodukt kann ein computerlesbares Medium umfassen.
  • Als Beispiel und nicht als Einschränkung können solche computerlesbaren Speichermedien umfassen: RAM, ROM, EEPROM, CD-ROM oder einen anderen optischen Plattenspeicher, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen, Flash-Speicher, oder ein beliebiges anderes Medium, das verwendet werden kann, um einen gewünschten Programmcode in der Form von Instruktionen oder Datenstrukturen zu speichern, und auf das von einem Computer zugegriffen werden kann. Es wird auch eine beliebige Verbindung geeignet als computerlesbares Medium bezeichnet, d.h. ein computerlesbares Transmissionsmedium. Falls beispielsweise Instruktionen von einer Website, einem Server oder einer anderen entfernten Quelle unter Verwendung eines Koaxialkabels, eines faseroptischen Kabels, eines verdrillten Paars, einer Digital Subscriber Line (DSL) oder drahtloser Technologien, wie Infrarot, Funk und Mikrowellen, gesendet werden, dann sind das Koaxialkabel, das faseroptische Kabel, das verdrillte Paar, die DSL oder drahtlose Technologien, wie Infrarot, Funk und Mikrowellen, in der Definition von Medium eingeschlossen. Es ist jedoch klar, dass die computerlesbaren Speichermedien und Datenspeichermedien Verbindungen, Trägerwellen, Signale oder andere flüchtige Medien nicht umfassen, sondern stattdessen auf nicht-flüchtige, greifbare Speichermedien gerichtet sind. Disk und Disc, wie hier verwendet, umfassen Compact Disc (CD), Laser-Disc, optische Platte, Digital Versatile Disc (DVD), Diskette und Blu-ray Disc, wobei Disks üblicherweise Daten magnetisch reproduzieren, während Discs Daten optisch mit Lasern reproduzieren. Kombinationen der Obigen sollten auch innerhalb des Umfangs computerlesbarer Medien eingeschlossen sein.
  • Instruktionen können von einem oder mehreren Prozessoren ausgeführt werden, wie von einer oder mehreren Zentraleinheiten (CPU), digitalen Signalprozessoren (DSPs), Universal-Mikroprozessoren, anwendungsspezifischen Integrationsschaltungen (ASICs), feldprogrammierbaren Logikanordnungen (FPGAs) oder anderen äquivalenten integrierten oder diskreten Logikschaltungen. Demgemäß kann sich der hier verwendete Ausdruck „Prozessor“ auf eine beliebige der obigen Strukturen oder eine beliebige andere Struktur beziehen, die zur Implementierung der hier beschriebenen Techniken geeignet ist. Zusätzlich kann in einigen Aspekten die hier beschriebene Funktionalität innerhalb dedizierter Hardware- und/oder Software-Module vorgesehen werden, die zur Codierung und Decodierung ausgelegt sind, oder in einem kombinierten Codec eingeschlossen werden. Die Techniken könnten auch in einer oder mehreren Schaltungen oder Logikelementen vollständig implementiert werden.
  • Die Techniken dieser Offenbarung können in verschiedensten Vorrichtungen oder Einrichtungen implementiert werden, die ein drahtloses Handset, eine integrierte Schaltung (IC) oder einen Satz von ICs (z.B. einen Chipsatz) umfassen. Verschiedene Komponenten, Module oder Einheiten werden in dieser Offenbarung beschrieben, um funktionelle Aspekte von Vorrichtungen hervorzuheben, die ausgelegt sind, die offenbarten Techniken durchzuführen, erfordern jedoch nicht unbedingt eine Realisierung durch verschiedene Hardware-Einheiten. Stattdessen können, wie oben beschrieben, verschiedene Einheiten in einer einzelnen Hardware-Einheit kombiniert werden oder durch eine Ansammlung interoperativer Hardware-Einheiten vorgesehen werden, die einen oder mehrere Prozessoren umfassen, wie oben beschrieben, in Verbindung mit geeigneter Software und/oder Firmware.
  • Wenngleich diverse Ausführungsbeispiele der Erfindung offenbart worden sind, wird Fachleuten auf dem Gebiet klar ersichtlich sein, dass verschiedene Änderungen und Modifikationen vorgenommen werden können, die manche Vorteile der Erfindung hervorbringen können, ohne dabei vom Geist und dem Schutzumfang der Erfindung abzuweichen. Es wird für Fachleute mit durchschnittlichen Kenntnissen auf dem Gebiet offensichtlich sein, dass andere Komponenten, die dieselben Funktionen ausüben, passenderweise ersetzt werden können. Es ist anzumerken, dass Merkmale, die unter Bezugnahme auf eine spezielle Figur erklärt wurden, mit Merkmalen aus anderen Figuren kombiniert werden können, sogar in solchen Fällen, in denen dies nicht ausdrücklich erwähnt wurde. Außerdem können die Verfahren der Erfindung entweder in allen Software-Ausführungen unter Verwendung der passenden Prozessor-Anleitungen oder in Hybrid-Ausführungen, die eine Kombination aus Hardware-Logik und Software-Logik verwenden, zum Erreichen derselben Resultate eingesetzt werden. Solche Modifikationen an dem erfinderischen Konzept sind als durch die beigefügten Patentansprüche abgedeckt anzusehen.

Claims (18)

  1. Vorrichtung zum Generieren einer Zufallszahl, wobei die Vorrichtung Folgendes umfasst: – mindestens zwei Schieberegister, – eine Transformationsfunktion, die die Zufallszahl auf der Grundlage von mindestens einer Zelle von jedem der mindestens zwei Schieberegister generiert.
  2. Vorrichtung nach Anspruch 1, wobei die Transformationsfunktion Folgendes umfasst: – eine erste Transformationsstufe für jedes Schieberegister, die die mindestens eine Zelle des jeweiligen Schieberegisters auf mindestens eine Zwischenausgabe abbildet, wobei die Zwischenausgaben der mindestens zwei Schieberegister kombiniert werden, – eine zweite Transformationsstufe, die die kombinierten Zwischenausgaben auf die Zufallszahl abbildet.
  3. Vorrichtung nach Anspruch 2, bei der die erste Transformationsstufe eine Datenkompression durchführt, wobei die Datenkompression, verglichen mit ihrer Anzahl an Eingabezellen, eine reduzierte Anzahl an Zwischenausgabebits ergibt.
  4. Vorrichtung nach Anspruch 2, bei der die zweite Transformationsstufe eingerichtet ist, eine Datenkompression durchzuführen, wobei die Datenkompression, verglichen mit der Anzahl eingegebener Bits als Zwischenausgaben der ersten Transformationsstufe, eine reduzierte Anzahl an Bits der Zufallszahl ergibt.
  5. Vorrichtung nach Anspruch 2, bei der die erste Transformationsstufe oder die zweite Transformationsstufe lineare Funktionen umfasst.
  6. Vorrichtung nach Anspruch 2, bei der die erste Transformationsstufe und die zweite Transformationsstufe lineare Funktionen umfassen.
  7. Vorrichtung nach Anspruch 1, bei der mehrere generierte Zufallszahlen im Wesentlichen gleichverteilt und im Wesentlichen statistisch unabhängig sind.
  8. Vorrichtung nach Anspruch 1, bei der die Zufallszahl mit jedem Taktzyklus, der an dem Schieberegister und an der Transformationsfunktion angelegt wird, generiert wird.
  9. Vorrichtung nach Anspruch 1, bei der jedes der mindestens zwei Schieberegister eine Periode aufweist, die 2N – j beträgt, wobei N die Länge des Schieberegisters und j eine kleine Zahl ist.
  10. Vorrichtung nach Anspruch 1, bei der die Transformationsfunktion derart eingerichtet ist, dass es für jeden möglichen Ausgabevektor eine gleiche Anzahl an Eingabevektoren gibt, die auf den jeweiligen Ausgabevektor abgebildet werden.
  11. Vorrichtung nach Anspruch 1, bei der jedes Schieberegister ein nichtlinear rückgekoppeltes Schieberegister ist.
  12. Vorrichtung nach Anspruch 1, bei der die mindestens zwei Schieberegister und die Transformationsfunktion auf einem Die oder Chip implementiert sind.
  13. Vorrichtung nach Anspruch 1, bei der die mindestens zwei Schieberegister mindestens teilweise eine unterschiedliche Länge aufweisen.
  14. Vorrichtung nach Anspruch 1, bei der die Transformationsfunktion die Zufallszahl auf der Grundlage eines Anteils der Zellen der mindestens zwei Schieberegister generiert, wobei eine unterschiedliche Anzahl an Zellen oder die gleiche Anzahl an Zellen für die mindestens zwei Schieberegister verwendet wird.
  15. Verfahren zum Generieren einer Zufallszahl, wobei das Verfahren Folgendes umfasst: – Generieren der Zufallszahl basierend auf mindestens einer Zelle von jedem von mindestens zwei Schieberegistern mittels einer Transformationsfunktion.
  16. Verfahren nach Anspruch 15, wobei die Transformationsfunktion Folgendes umfasst: – eine erste Transformationsstufe für jedes Schieberegister, die die mindestens eine Zelle des jeweiligen Schieberegisters auf mindestens eine Zwischenausgabe abbildet, wobei die Zwischenausgaben der mindestens zwei Schieberegister kombiniert werden, – eine zweite Transformationsstufe, die die kombinierten Zwischenausgaben auf die Zufallszahl abbildet.
  17. Vorrichtung zum Generieren einer Zufallszahl, wobei die Vorrichtung Folgendes umfasst: – Mittel zum Generieren der Zufallszahl basierend auf mindestens einer Zelle von jedem von mindestens zwei Schieberegistern mittels einer Transformationsfunktion.
  18. Ein Computerprogrammprodukt, das direkt in einen Speicher einer digitalen Verarbeitungsvorrichtung ladbar ist, umfassend Softwarecodeanteile zum Durchführen der Schritte des Verfahrens nach Anspruch 15.
DE102015100760.6A 2015-01-20 2015-01-20 Generieren von Zufallszahlen Pending DE102015100760A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102015100760.6A DE102015100760A1 (de) 2015-01-20 2015-01-20 Generieren von Zufallszahlen
US14/994,367 US10754617B2 (en) 2015-01-20 2016-01-13 Generating of random numbers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015100760.6A DE102015100760A1 (de) 2015-01-20 2015-01-20 Generieren von Zufallszahlen

Publications (1)

Publication Number Publication Date
DE102015100760A1 true DE102015100760A1 (de) 2016-07-21

Family

ID=56293316

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015100760.6A Pending DE102015100760A1 (de) 2015-01-20 2015-01-20 Generieren von Zufallszahlen

Country Status (2)

Country Link
US (1) US10754617B2 (de)
DE (1) DE102015100760A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102652735B1 (ko) 2016-11-24 2024-04-02 삼성전자주식회사 조절 가능한 메타-스테이블 전압을 이용하는 난수 생성기 및 난수 생성 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10357782B3 (de) * 2003-12-10 2005-05-04 Infineon Technologies Ag Vorrichtung und Verfahren zum Erzeugen von Zufallszahlen mit einem Pseudozufallsgenerator

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834291B1 (en) * 2000-10-27 2004-12-21 Intel Corporation Gold code generator design
US7398287B2 (en) * 2002-08-19 2008-07-08 Analog Devices, Inc. Fast linear feedback shift register engine
US20040049525A1 (en) * 2002-09-06 2004-03-11 Koninklijke Philips Electronics N.V. Feedback random number generation method and system
AU2003252595A1 (en) * 2002-10-07 2004-04-23 Kobayashi, Akira Pseudo-random number generation method and pseudo-random number generator
US20040078401A1 (en) * 2002-10-22 2004-04-22 Hilton Howard E. Bias-free rounding in digital signal processing
DE102012205620B4 (de) * 2012-04-05 2015-04-16 Infineon Technologies Ag Pseudozufallszahlengenerator und verfahren zur bereitstellung einer pseudozufallsfolge
US8861725B2 (en) * 2012-07-10 2014-10-14 Infineon Technologies Ag Random bit stream generator with enhanced backward secrecy
US9417845B2 (en) * 2013-10-02 2016-08-16 Qualcomm Incorporated Method and apparatus for producing programmable probability distribution function of pseudo-random numbers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10357782B3 (de) * 2003-12-10 2005-05-04 Infineon Technologies Ag Vorrichtung und Verfahren zum Erzeugen von Zufallszahlen mit einem Pseudozufallsgenerator

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GAMMEL, Berndt M.; GOTTFERT, Rainer; KNIFFLER, Oliver: An NLFSR-based stream cipher. In: Circuits and Systems, 2006. ISCAS 2006. Proceedings. 2006 IEEE International Symposium on. IEEE, 2006. S. 4 pp.-2920. IEEE Xplore [online]. DOI: 10.1109/ISCAS.2006.1693235, In: IEEE *

Also Published As

Publication number Publication date
US10754617B2 (en) 2020-08-25
US20160210121A1 (en) 2016-07-21

Similar Documents

Publication Publication Date Title
EP0010195B1 (de) Vorrichtung zur Adressumwandlung in einer Datenverarbeitungsanlage
DE112017000855B4 (de) Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze
DE102015117019B4 (de) Serielle Peripherieschnittstellen-Kettenkommunikation mit rahmengebundener Antwort
DE102013208213B4 (de) System zur Verringerung von Hash-Kollisionen
DE112011106024B4 (de) Erzeugungsvorrichtung für vorrichtungsspezifische Informationen und Erzeugungsverfahren für vorrichtungsspezifische Informationen
DE112010004652T5 (de) Zuverlässige Replikation mit hohem Durchsatz von umgewandelten Daten in Datensystemen
DE102018124919A1 (de) Skalierbare speicheroptimierte Hardware für Matrix-Solve
DE102014102501A1 (de) Zufallszahlgenerator
DE102015107823A1 (de) Randomisierter Speicherzugriff
DE102007060782A1 (de) Kompensierung für Data Strobe-Zeitgebung
DE112020007010T5 (de) Inferenzmaschinen-schaltungsarchitektur
DE10235740A1 (de) Register, das zum Korrespondieren mit einem Breitfrequenzband geeignet ist, und Signalerzeugungsverfahren, das dasselbe verwendet
DE102018129032A1 (de) Hardwarebeschleuniger für sql-scans
DE69225095T2 (de) Wirksamer Arbiter
DE102015102602A1 (de) Zufallszahlengenerator
DE112016006015T5 (de) Maximieren der Netzwerk-Fabric-Leistung durch feingranulares Router-Link-Strommanagement
DE202014011350U1 (de) FFT- Beschleuniger
DE102015100760A1 (de) Generieren von Zufallszahlen
DE112018001951T5 (de) Fehlerkorrekturdecodieren mit verringerter latenz
DE112017005197T5 (de) Hybrid-Komprimierungsschema zur effizienten Speicherung synaptischer Gewichte in neuromorphen Hardware-Kernen
DE102019127335A1 (de) Erzeugen von Hash-Werten
DE102006011699A1 (de) Systeme und Verfahren zum Erzeugen von Zufallszahlverteilungen bei Vorrichtungen, die begrenzte Verarbeitungs- und Speicherfähigkeiten aufweisen
DE112018006405T5 (de) Verfahren und Vorrichtung zur Berechnung der Hashfunktion
EP3289685B1 (de) Verfahren und vorrichtung zur erzeugung einer geräte-spezifischen kennung und geräte umfassend einen personalisierten programmierbaren schaltungsbaustein
DE69330539T2 (de) Steuerungseinrichtung zur Schnittstellensteuerung zwischen einer Testmaschine und einer elektronischen Mehrkanalschaltung, insbesondere nach dem "Boundary Test Standard"

Legal Events

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