DE102012205620B4 - Pseudozufallszahlengenerator und verfahren zur bereitstellung einer pseudozufallsfolge - Google Patents

Pseudozufallszahlengenerator und verfahren zur bereitstellung einer pseudozufallsfolge Download PDF

Info

Publication number
DE102012205620B4
DE102012205620B4 DE201210205620 DE102012205620A DE102012205620B4 DE 102012205620 B4 DE102012205620 B4 DE 102012205620B4 DE 201210205620 DE201210205620 DE 201210205620 DE 102012205620 A DE102012205620 A DE 102012205620A DE 102012205620 B4 DE102012205620 B4 DE 102012205620B4
Authority
DE
Germany
Prior art keywords
shift register
sequence
linear shift
pseudo
linear
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.)
Active
Application number
DE201210205620
Other languages
English (en)
Other versions
DE102012205620A1 (de
Inventor
Rainer Göttfert
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 DE201210205620 priority Critical patent/DE102012205620B4/de
Priority to US13/857,191 priority patent/US20140067891A1/en
Publication of DE102012205620A1 publication Critical patent/DE102012205620A1/de
Application granted granted Critical
Publication of DE102012205620B4 publication Critical patent/DE102012205620B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register

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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Logic Circuits (AREA)

Abstract

Ein Pseudozufallszahlengenerator weist ein Paar von Schieberegistern auf, wobei ein erstes Schieberegister des Paars ein lineares Schieberegister ist und ein zweites Schieberegister des Paars ein nichtlineares Schieberegister ist, wobei das lineare Schieberegister ausgebildet ist, um eine erste Ausgangsfolge des nichtlinearen Schieberegisters zu empfangen und um basierend auf der ersten Ausgangsfolge eine zweite Ausgangsfolge bereitzustellen. Der Pseudozufallszahlengenerator ist ausgebildet, um basierend auf der zweiten Ausgangsfolge eine Pseudozufallsfolge bereitzustellen.

Description

  • Technisches Gebiet
  • Ausführungsbeispiele der vorliegenden Erfindung schaffen einen Pseudozufallszahlengenerator. Weitere Ausführungsbeispiele schaffen ein Verfahren zur Bereitstellung einer Pseudozufallsfolge.
  • Technischer Hintergrund
  • Pseudozufallszahlengeneratoren werden oft zur Verschlüsselung benutzt. Es ist daher erwünscht, Pseudozufallszahlengeneratoren robust gegen Angriffe, wie beispielsweise gegen Korrelationsangriffe, zu gestalten.
  • In Hell, Martin, u. a.: A Stream Cipher Proposal: Grain-128.2006 IEEE Int. Symp. on Information Theory. Juli 2006 wird eine Stromverschlüsselung beschrieben.
  • Zusammenfassung der Erfindung
  • Es ist daher die Aufgabe der vorliegenden Erfindung, ein Konzept zu schaffen, welches einen robusteren Pseudozufallszahlengenerator ermöglicht.
  • Diese Aufgabe wird gelöst durch einen Pseudozufallszahlengenerator gemäß dem unabhängigen Patentanspruch 1.
  • Ausführungsbeispiele der vorliegenden Erfindung schaffen einen Pseudozufallszahlengenerator, der ein Paar von Schieberegistern aufweist. Ein erstes Schieberegister des Paars ist ein lineares Schieberegister und ein zweites Schieberegister des Paars ist ein nichtlineares Schieberegister. Das lineare Schieberegister ist ausgebildet, um eine erste Ausgangsfolge des nichtlinearen Schieberegisters zu empfangen und um basierend auf der ersten Ausgangsfolge eine zweite Ausgangsfolge bereitzustellen. Der Pseudozufallszahlengenerator ist ausgebildet, um basierend auf der zweiten Ausgangsfolge eine Pseudozufallsfolge bereitzustellen.
  • Weitere Ausführungsbeispiele der vorliegenden Erfindung schaffen ein Verfahren zur Bereitstellung einer Pseudozufallsfolge mit einem Schritt des Bereitstellens einer ersten Ausgangsfolge durch ein nichtlineares Schieberegister, einem Schritt des Empfangens der ersten Ausgangsfolge und des Bereitstellens einer zweiten Ausgangsfolge basierend auf der ersten Ausgangsfolge durch ein lineares Schieberegister und einen Schritt des Bereitstellens der Pseudozufallsfolge basierend auf der zweiten Ausgangsfolge.
  • Kurze Beschreibung der Zeichnungen
  • Ausführungsbeispiele der vorliegenden Erfindung werden im Folgenden anhand der beiliegenden Figuren detailliert beschrieben. Es zeigen:
  • 1 ein Blockschaltbild eines Pseudozufallszahlengenerators gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 2 beispielhafte Implementierungen für ein lineares Schieberegister und ein nichtlineares Schieberegister, wie sie bei Ausführungsbeispielen der vorliegenden Erfindung Verwendung finden können;
  • 3 ein Blockschaltbild eines Pseudozufallszahlengenerators gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung; und
  • 4 ein Flussdiagramm eines Verfahrens gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung.
  • Detaillierte Beschreibung von Ausführungsbeispielen der vorliegenden Erfindung
  • Bevor im Folgenden Ausführungsbeispiele der vorliegenden Erfindung anhand der beiliegenden Figuren detailliert beschrieben werden, wird darauf hingewiesen, dass selbe Elemente oder Elemente gleicher Funktion mit denselben Bezugszeichen versehen sind und dass auf eine wiederholte Beschreibung von Elementen, die mit denselben Bezugszeichen versehen sind, verzichtet wird. Beschreibungen für Elemente mit denselben Bezugszeichen sind daher untereinander austauschbar.
  • 1 zeigt ein Blockschaltbild eines Pseudozufallszahlengenerators 100 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Der Pseudozufallszahlengenerator 100 weist ein Paar 101-1 von Schieberegistern 103-1, 105-1 auf. Ein erstes Schieberegister 103-1 des Paars 101-1 ist ein lineares (rückgekoppeltes und/oder binäres) Schieberegister 103-1, beispielswiese ein LFSR (linear feedback shift register).
  • Ein zweites Schieberegister 105-1 des Paars 101-1 ist ein nichtlineares (rückgekoppeltes und/oder binäres) Schieberegister 105-1, beispielsweise ein NLFSR (non-linear feedback shift register). Das lineare Schieberegister 103-1 ist ausgebildet, um eine erste Ausgangsfolge 107-1 des nichtlinearen Schieberegisters 105-1 zu empfangen und um basierend auf der empfangenen ersten Ausgangsfolge 107-1 eine zweite Ausgangsfolge 109-1 bereitzustellen. Der Zufallszahlengenerator 100 ist ausgebildet, um basierend auf der zweiten Ausgangsfolge 109-1 eine Pseudozufallsfolge 111 bereitzustellen.
  • Es ist eine Idee von Ausführungsbeispielen der vorliegenden Erfindung, dass ein gegen Korrelationsangriffe resistenterer Pseudozufallszahlengenerator geschaffen werden kann, wenn die Generierung der Pseudozufallsfolge 111 basierend auf einer Kombination von Schieberegistern 103-1, 105-1 verschiedener Arten oder Typen von Schieberegistern (wie beispielsweise linear und nichtlinearen) erfolgt.
  • Durch die Kombination der in 1 gezeigten Schieberegister 103-1, 105-1 lässt sich insbesondere gegenüber Systemen, bei denen lediglich lineare Schieberegister zur Bereitstellung einer Pseudozufallsfolge genutzt werden, eine deutlich kleinere Implementierung mit einer mindestens ebenso guten Resistenz gegen Korrelationsangriffe ermöglichen. Ferner lässt sich durch die in 1 gezeigte Kombination der beiden Schieberegister 103-1, 105-1 der Nachteil der geringen Widerstandsfähigkeit gegen Korrelationsangriffe von Pseudozufallszahlengeneratoren, die lediglich auf nichtlinearen Schieberegistern basieren, umgehen.
  • Es wurde erkannt, dass bei der Nutzung von linearen Schieberegistern ein Schutz gegen Angriffe erst erreicht wird, wenn man viele (z. B. dreißig oder mehr) lineare Schieberegister nutzt, und zwar solche, die ca. 100 Zellen lang sind. Die Hardwarekosten für ein solches Design belaufen sich daher auf ca. 3.000 Speicherzellen und benötigen daher einen hohen Implementierungsaufwand. Ferner wurde erkannt, dass Designs, welche auf nichtlinearen Schieberegistern basieren, den Nachteil haben, dass sie weniger widerstandsfähig gegen Korrelationsangriffe sind als die beschriebenen „fetten” Designs, welche auf linearen Schieberegistern basieren. So kann ein Angreifer, der knapp 250 aufeinanderfolgende Bits der Folge kennt, mit einem Rechenaufwand von ca. 2100 Operationen die gegenwärtige Belegung der nichtlinearen Schieberegister ausrechnen. Dies ist kritisch, da in diesem Beispiel eine Schlüssellänge oder so genannte Seed-Länge von 128 Bit angenommen wird und es daher keinen Angriff geben soll, der signifikant weniger Rechenaufwand hat als 2128. Ferner wurde auch erkannt, dass gute nichtlineare Schieberegister, welche die Umgehung des oben genannten Problems ermöglichen, nicht verfügbar sind bzw. nicht konstruierbar sind.
  • Ausführungsbeispiele der vorliegenden Erfindung, wie beispielsweise der in 1 gezeigte Pseudozufallszahlengenerator 100, umgehen die oben genannten Probleme durch die Kombination aus dem linearen Schieberegister 103-1 und dem nichtlinearen Schieberegister 105-1. So kann beispielsweise ein kleines (und daher verfügbares) nichtlineares Schieberegister 105-1 und ein etwas größeres gutes lineares Schieberegister 103-1 aneinander gehangen werden. Genauer gesagt kann die von dem nichtlinearen Schieberegister 105-1 produzierte bzw. bereitgestellte erste Ausgangsfolge 107-1 direkt in das lineare Schieberegister 103-1 eingespeist werden. Die zweite Ausgangsfolge 109-1 (welche eine Ausgangsfolge der Kombination bzw. des Paares 101-1 aus dem linearen Schieberegister 103-1 und dem nichtlinearen Schieberegister 105-1 ist) kann als Basis für die Pseudozufallsfolge 111 dienen. Beispielsweise kann der Pseudozufallszahlengenerator 100 eine (Boolesche) Kombinationsfunktion 113 aufweisen, die ausgebildet ist, um basierend auf der zweiten Ausgangsfolge 109-1 die Pseudozufallsfolge 111 zu erzeugen und bereitzustellen. Mit anderen Worten kann die zweite Ausgangsfolge 109-1 des Paars 101-1 eine Eingangsfolge der Booleschen Kombinationsfunktion 113 (auch bezeichnet als F) bilden. Mit anderen Worten können Ausführungsbeispiele der vorliegenden Erfindung, da gute nichtlineare Schieberegister in beliebiger Größe nicht verfügbar sind, als Ersatz für ein solches gutes nichtlineares Schieberegister eine wie in 1 gezeigte Kombination aus einem linearen Schieberegister 103-1 und einem nichtlinearen Schieberegister 105-1 aufweisen.
  • Das Paar aus dem linearen Schieberegister 103-1 und dem nichtlinearen Schieberegister 105-1 kann daher auch als S-Verlängerer oder Seed-Verlängerer bezeichnet werden, da sich im Vergleich zu Systemen, welche nur aus linearen Schieberegistern oder nur aus nichtlinearen Schiebregistern bestehen, mit derselben Größe des „Seeds” oder Anfangswerts bei einem geringeren Implementierungsaufwand eine mindestens ebenso große oder sogar größere Widerstandsfähigkeit gegen Korrelationsangriffe erreichen lässt.
  • Ein nichtlineares Schieberegister wird im Englischen auch als non-linear feedback shift register, kurz NLFSR, bezeichnet und kann ferner im Deutschen auch als nichtlinear rückgekoppeltes (binäres) Schieberegister bezeichnet werden. Ein lineares Schieberegister wird im Englischen auch als linear feedback shift register, kurz LFSR, bezeichnet und kann im Deutschen auch als linear rückgekoppeltes (binäres) Schieberegister bezeichnet werden.
  • Gemäß einigen Ausführungsbeispielen kann das lineare Schieberegister 103-1 maximalperiodisch sein. Ein Schieberegister der Länge n heißt maximalperiodisch, wenn es für jede vom Alles-Null-Zustand verschiedene Ausgangsbelegung eine Ausgangsfolge der Periode 2n-1 produziert.
  • Gemäß weiteren Ausführungsbeispielen kann auch das nichtlineare Schieberegister 105-1 maximalperiodisch sein.
  • Die Nutzung maximalperiodischer Schieberegister ermöglicht eine maximale Sicherheit gegen Korrelationsangriffe bei einem minimal nötigen Implementierungsaufwand.
  • Gemäß einigen Ausführungsbeispielen kann eine Länge des nichtlinearen Schieberegisters 105-1 (beispielsweise eine Anzahl von Speicherelementen des nichtlinearen Schieberegisters 105-1) kleiner oder gleich einer Länge des linearen Schieberegisters 103-1 (beispielsweise einer Anzahl von Speicherelementen des linearen Schieberegisters 103-1) gewählt werden. Gemäß einigen Ausführungsbeispielen kann eine Länge des nichtlinearen Schieberegisters 105-1 (beispielsweise einer Anzahl von Speicherelementen des nichtlinearen Schieberegisters 105-1) in einem Bereich ≥ 5 und ≤ 50 gewählt werden oder in einem Bereich ≥ 20 und ≤ 35 gewählt werden.
  • Gemäß weiteren Ausführungsbeispielen kann eine Länge des linearen Schieberegisters 103-1 in einem Bereich ≥ 5 und ≤ 50 (beispielsweise in einem Bereich um 10 Speicherelemente) länger gewählt werden als die Länge des zugehörigen nichtlinearen Schieberegisters 105-1.
  • Die von den Schieberegistern 103-1, 105-1 generierten Ausgangsfolgen 107-1, 109-1 können Binärfolgen sein. So kann beispielsweise jedes der Schiebregister 103-1, 105-1 ausgebildet sein, um pro Taktpuls oder Taktflanke ein neues Bit in der jeweiligen Ausgangsfolge 107-1, 109-1 auszugeben.
  • Gemäß einigen Ausführungsbeispielen kann der Pseudozufallszahlengenerator ausgebildet sein, um einen Anfangswert oder so genannten „Seed” in das nichtlineare Schieberegister 105-1 zu laden (der hier beispielsweise verschieden von einem Alles-Null-Zustand ist). Ferner kann der Pseudozufallszahlengenerator 100 auch ausgebildet sein, um einen Anfangszustand oder „Seed” in das lineare Schieberegister 103-1 zu laden (der hier beispielsweise sogar den Alles-Null-Zustand annehmen kann).
  • 2 zeigt eine mögliche nicht einschränkende Implementierung des Paars 101-1 bzw. der LFSR-NLFSR-Kombination 101-1 aus dem linearen Schieberegister 103-1 und dem nichtlinearen Schieberegister 105-1. In dem in 2 gezeigten Beispiel weist das lineare Schieberegister 103-1 eine Länge von 5 auf (d. h. das lineare Schieberegister 103-1 weist fünf (Speicher-)Zellen oder Speicherelemente 201a201e auf die zwischen einen Eingang des linearen Schiebregisters 103-1 und einen Ausgang des linearen Schiebregisters 103-1 in Reihe geschaltet sind). Ferner weist das nichtlineare Schieberegister 105-1 eine Länge von 4 auf (d. h. das nichtlineare Schieberegister 105-1 weist vier (Speicher-)Zellen oder Speicherelemente 205a205d auf die zwischen einen Eingang des nichtlinearen Schiebregisters 105-1 und einen Ausgang des nichtlinearen Schiebregisters 105-1 in Reihe geschaltet sind). In einer realen Implementierung würde dabei typischerweise sowohl die Länge des linearen Schieberegisters 103-1 als auch die Länge des nichtlinearen Schieberegisters 105-1 deutlich größer gewählt. Das in 2 gezeigte Beispiel soll daher lediglich zum besseren Verständnis von Ausführungsbeispielen der vorliegenden Erfindung dienen. Die von dem nichtlinearen Schieberegister 105-1 generierte erste Ausgangsfolge 107-1 wird dabei in das lineare Schieberegister 103-1 eingespeist.
  • Eine von einem letzten Speicherelement 201e des linearen Schieberegisters 103-1 generierte Speicherelementausgangsfolge bildet die zweite Ausgangsfolge 109-1 des linearen Schieberegisters 103-1 und damit gleichzeitig auch die Ausgangsfolge des Paars 101-1.
  • Das lineare Schieberegister 103-1 weist eine erste logische Kombination 203a auf. Ferner weist das erste lineare Schieberegister eine zweite logische Kombination 203b auf.
  • Die zweite logische Kombination 203b ist ausgebildet, die zweite Ausgangsfolge 109-1 logisch mit einer Speicherelementausgangsfolge 207c eines dritten Speicherelements 201c des linearen Schieberegisters 103-1 logisch zu verknüpfen, um eine erste verknüpfte Ausgangsfolge 211 zu erhalten. Die erste logische Kombination 203a ist ausgebildet, um die erste verknüpfte Ausgangsfolge 211 logisch mit der ersten Ausgangsfolge 107-1 zu verknüpfen, um eine zweite verknüpfte Ausgangsfolge 213 zu erhalten. Die zweite verknüpfte Ausgangsfolge 213 dient als Eingangsfolge für ein erstes Speicherelement 201a des linearen Schieberegisters 103-1.
  • Die Speicherelemente 201a201e des linearen Schieberegisters 103-1 sind dabei in Reihe miteinander verschaltet. Jedes der Speicherelemente 201a201e gibt pro Zeiteinheit (pro Taktpuls oder Taktflanke) das an seinem Eingang liegende Bit an den Ausgang weiter.
  • Gemäß einigen Ausführungsbeispielen können die logische Kombinationen 201a und 201b einfache Ein-Bit-Additionen (ohne Übertrag) sein.
  • Zuerst soll im Folgenden das lineare Schieberegister 103-1 der Länge 5 isoliert betrachtet werden. Wenn es mit einem von Null (d. h. 00000) verschiedenen Anfangswert initialisiert wird, dann produziert es eine Ausgangsfolge der Periode 31 (= 25 – 1). Als ein Beispiel ergibt eine Anfangsbelegung von 00111 die Ausgangsfolge:
    0011111000110111010100001001011.
  • Diese Folge hat die Periode 31 und die lineare Komplexität 5.
  • Eine Anmerkung zur Linearität: Sei A = A1, A2, A3, ... eine beliebige periodische Bitfolge, dann kann diese Folge stets auch durch ein geeignetes lineares Schieberegister generiert werden. Die Länge des kürzesten linearen Schieberegisters, mit dem die gegebene Folge A generiert werden kann, heißt die lineare Komplexität von A. Mit anderen Worten wird sowohl die lineare Komplexität eines nichtlinearen Schieberegisters (wie beispielsweise des nichtlinearen Schieberegisters 105-1) als auch die lineare Komplexität eines linearen Schieberegisters (wie beispielsweise des linearen Schieberegisters 103-1) basierend auf demselben Kriterium ermittelt.
  • Das nichtlineare Schieberegister 105-1 weist eine logische Kombination 209 auf, die ausgebildet ist, um basierend auf der ersten Ausgangsfolge 107-1 sowie einer Speicherelementausgangsfolge 215b eines zweiten Speicherelements 205b des nichtlinearen Schieberegisters 105-1 sowie auf einer Speicherelementausgangsfolge 215c eines dritten Speicherelements 205c des nichtlinearen Schieberegisters 105-1 eine Eingangsfolge 217 für ein erstes Speicherelement 205a des nichtlinearen Schieberegisters 105-1 zu erhalten.
  • Die logische Kombination 209 weist drei lineare Kombinationen (beispielsweise Additionen) und eine nichtlineare Kombination (beispielsweise eine Multiplikation) auf.
  • Wie auch schon bei dem linearen Schieberegister 103-1 sind auch bei dem nichtlinearen Schieberegister 105-1 dessen Speicherelemente 205a205d in Reihe miteinander verschaltet. Ferner sind auch die Speicherelemente 205a205d Ein-Bit-Speicherelemente, welche ausgebildet sind, um bei jedem Taktpuls (oder jeder Taktflanke) den an ihrem Eingang anliegenden Wert (beispielsweise Bitwert logisch 0 oder logisch 1) an ihrem Ausgang bereitzustellen.
  • Im Folgenden soll nun das lineare Schieberegister 105-l (bzw. das NLFSR 105-1) der Länge 4 isoliert betrachtet werden. Wenn es mit einem von Null (d. h. 0000) verschiedenen Anfangswert oder Seed belegt wird, dann produziert es eine Ausgangsfolge der Periode 15 (= 24 – 1). Als ein Beispiel ergibt die Anfangsbelegung 0001 die Ausgangsfolge 000101101001111. Diese Folge hat die Periode 15 und die lineare Komplexität 14 (2n – 2).
  • Im Folgenden soll nun die gesamte in 2 gezeigte LFSR-NLFSR-Kombination bzw. Konstruktion 101-1 (in anderen Worten das Paar 101-1) betrachtet werden. Wenn die vier Zellen 205a205d des (treibenden) nichtlinearen Schieberegistern 105-1 beliebig initialisiert werden, aber so, dass nicht alle Zellen mit einer Null geladen werden, und wenn die fünf Zellen 201a201e (des die erste Ausgangsfolge 107-1 empfangenden) linearen Schieberegisters 103-1 beliebig initialisiert werden (hier ist auch der Alles-Null-Zustand zulässig), dann erzeugt die gesamte LFSR-NLFSR-Kombination 101-1 (bzw. das Paar 101-1) im Allgemeinen eine Ausgangsfolge (die zweite Ausgangsfolge 109-1) der Periode 15 × 31 = 465 und der linearen Komplexität 5 + 14 = 19.
  • Im Folgenden soll dieser Zusammenhang nun noch einmal an einem allgemeinen Beispiel erläutert werden.
  • So wird eine LFSR-NLFSR-Kombination bzw. ein Paar aus einem linearem Schieberegister und einem nichtlinearen Schieberegister gemäß einem Ausführungsbeispiel der vorliegenden Erfindung betrachtet, bei dem eine Eingangsfolge des linearen Schieberegisters auf einer Ausgangsfolge des nichtlinearen Schieberegisters basiert und eine Ausgangsfolge des Paars einer Ausgangsfolge des linearen Schieberegisters entspricht. Das lineare Schieberegister sei maximalperiodisch und es habe die Länge m. Das nichtlineare Schieberegister sei maximalperiodisch mit der Länge n. Das nichtlineare Schieberegister habe die lineare Komplexität h. Das heißt, die lineare Komplexität einer – und damit jeder – nichttrivialen Ausgangsfolge des nichtlinearen Schieberegisters ist h. Hier ist zu beachten, dass die einzige triviale Ausgangsfolge des nichtlinearen Schieberegisters die Nullfolge ist.
  • Typischerweise ist h nur geringfügig kleiner als die Periodenlänge einer nichttrivialen Ausgangsfolge des nichtlinearen Schieberegisters, etwa h = 2n – 2.
  • Dann gilt: Wenn man das lineare Schieberegister beliebig initialisiert und das nichtlineare Schieberegister mit einem beliebigen vom Alles-Null verschiedenen Anfangswert initialisiert, dann hat die Ausgangsfolge der zugehörigen LFSR-NLFSR-Konstruktion (beispielsweise die zweite Ausgangsfolge 109-1) mit der Wahrscheinlichkeit W = 1 – 2–m die Periode P = (2m – 1) × (2n – 1) und die lineare Komplexität L = m + h. Mit der Wahrscheinlichkeit W = 2–m hat die Ausgangsfolge der LFSR-NLFSR-Konstruktion (beispielsweise die zweite Ausgangsfolge 109-1) die Periodenlänge P = 2n – 1 und die lineare Komplexität L = h.
  • 3 zeigt ein Blockschaltbild eines Pseudozufallszahlengenerators 300 gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung. Der in 3 gezeigte Pseudozufallszahlengenerator 300 unterscheidet sich von dem in 1 gezeigten Pseudozufallszahlengenerator 100 dadurch, dass er zusätzlich zu dem Paar 101-1 von Schieberegistern 103-1, 105-1 weitere Paare 101-2 bis 101-k von Schieberegistern aufweist, die jeweils ein lineares Schieberegister 103-2 bis 103-k und ein nichtlineares Schieberegister 105-2 bis 105-k aufweisen. Der Aufbau der einzelnen Paare 101-1 bis 101-k von Schieberegistern ist in der Hinsicht identisch, dass jedes der Paare 101-1 bis 101-k von Schieberegistern jeweils ein lineares Schieberegister 103-1 bis 103-k und ein nichtlineares Schieberegister 105-1 bis 105-k aufweist, wobei das nichtlineare Schieberegister 105-1 bis 105-k jeweils ausgebildet ist, um eine erste Ausgangsfolge 107-1 bis 107-k bereitzustellen. Die linearen Schieberegister 103-1 bis 103-k der Paare 101-1 bis 101-k von Schieberegistern sind jeweils ausgebildet, um diese erste Ausgangsfolge 107-1 bis 107-k ihres jeweiligen zugeordneten nichtlinearen Schieberegisters 105-1 bis 105-k zu empfangen und um basierend auf dieser empfangenen ersten Ausgangsfolge 107-1 eine zweite Ausgangsfolge 109-1 bis 109-k bereitzustellen. Der Pseudozufallszahlengenerator 300 (oder genauer die logische (beispielsweise boolsche) Kombinationsfunktion 113) ist ausgebildet, um basierend auf der Mehrzahl von empfangenen zweiten Ausgangsfolgen 109-1 bis 109-k die Pseudozufallsfolge oder die Pseudozufallszahlenfolge 111 bereitzustellen.
  • Gemäß einigen Ausführungsbeispielen können zumindest für einen Teil der Mehrzahl von Paaren 101-1 bis 101-k von Schieberegistern verschiedene nichtlineare Schieberegister 105-1 bis 105-k verschiedener Paare 101-1 bis 101-k unterschiedliche Längen aufweisen.
  • Gemäß weiteren Ausführungsbeispielen können auch für einen Teil der Mehrzahl von Paaren 101-1 bis 101-k lineare Schieberegister 103-1 bis 103-k verschiedener Paare 101-1 bis 101-k unterschiedliche Längen aufweisen.
  • Mit anderen Worten können sich die Paare 101-1 bis 101-k von Schieberegistern dadurch unterscheiden, dass zumindest für einen Teil der Paare 101-1 bis 101-k die Längen ihrer linearen Schieberegister 103-1 bis 103-k und/oder ihrer nichtlinearen Schieberegister 105-1 bis 105-k verschieden zueinander sind.
  • Der in 3 gezeigte Pseudozufallszahlengenerator 300 besteht also aus k LFSR-NLFSR-Kombinationen 101-1 bis 101-k. Wenn k = 15 gewählt wird und die Längen der nichtlinearen Schieberegister 105-1 bis 105-k zwischen 20–35 und die Länge eines linearen Schieberegisters 103-1 bis 103-k um etwa zehn Zellen länger als die Länge des zugehörigen nichtlinearen Schieberegisters 105-1 bis 105-k (welches zu demselben Paar wie das lineare Schieberegister gehört) gewählt ist, und wenn eine gute Kombinationsfunktion 113 gewählt wird und wenn wiederum ein Schlüssel (= Seed) der Bitlänge 128 gewählt wurde, dann gilt für die von dem Pseudozufallszahlengenerator 300 bzw. die von dem Generator 300 produzierte Pseudozufallsfolge, dass sie zumindest resistent gegen Korrelationsangriffe bis zu Datenlängen 2100 ist.
  • Es sei zu bemerken, dass für die Ausgangsfolge 111 des gesamten Pseudozufallszahlengenerators 300 – und zwar für jede gewählte Kombinationsfunktion 113 – die Periode und die lineare Komplexität dieser Pseudozufallsfolge 111 abgeschätzt werden kann. Das heißt, es können obere und untere Schranken für die Periode und lineare Komplexität der Pseudozufallsfolge 111 hergeleitet werden.
  • Die in dem in 3 gezeigten Generator 300 verwendeten linearen Schieberegister 103-1 bis 103-k und nichtlinearen Schieberegister 105-1 bis 105-k sollten in ihrer Reihenfolge nicht vertauscht werden. Wenn man dies tun würde, also die LFSR-Ausgangsfolgen jeweils in ein nichtlineares Schieberegister einspeist und die so erzeugten Folgen dann mit einer Kombinationsfunktion F kombiniert, dann erhält man einen „chaotischen Generator”: In diesem Fall können keine vernünftigen unteren Schranken für Periode und lineare Komplexität der produzierten Pseudozufallsfolge angegeben werden. In der Tat variieren dann Periodenlänge und lineare Eigenschaften stark mit dem verwendeten Schlüssel (dem Seed). Dies ist jedoch eine unerwünschte Eigenschaft.
  • Zusammenfassend schaffen Ausführungsbeispiele der vorliegenden Erfindung ein Design für einen Pseudozufallszahlengenerator, das robuster ist gegenüber Korrelationsangriffen.
  • Im Folgenden soll die Funktion des Pseudozufallszahlengenerators 300 nochmals detailliert beschrieben werden.
  • Das in 3 gezeigte Design des Pseudozufallszahlengenerators 300 weist mehrere lineare rückgekoppelte binäre Schieberegister 103-1 bis 103-k sowie mehrere nichtlineare rückgekoppelte binäre Schieberegister 105-1 bis 105-k auf. Die Schieberegister 103-1 bis 103-k, 105-1 bis 105-k werden anfänglich mit einem geheimen Schlüssel, dem so genannten Seed, geladen. Danach laufen sie voneinander unabhängig. Dabei produziert jedes der Schieberegister 103-1 bis 103-k, 105-1 bis 105-k eine Ausgangsfolge 107-1 bis 107-k, 109-1 bis 109-k. Die zweiten Ausgangsfolgen 109-1 bis 109-k der linearen Schieberegister 103-1 bis 103-k werden mittels der Kombinationslogik 113 (auch bezeichnet als Boolesche Kombinationsfunktion 113 oder englisch Boolean combination function) miteinander verknüpft und die resultierende Bitfolge ist die Pseudozufallsfolge 111. Die Verknüpfung erfolgt dabei bitweise, d. h. jedes lineare Schieberegister 103-1 bis 103-k gibt pro Zeiteinheit (beispielsweise pro Taktpuls oder Taktflanke) ein Bit aus. Diese Bits bilden die jeweilige zweite Ausgangsfolge 109-1 bis 109-k des linearen Schieberegisters 103-1 bis 103-k. Die Bits pro Taktpuls und damit die zweiten Ausgangsfolgen 109-1 bis 109-k der linearen Schieberegister 103-1 bis 103-k bilden den Eingang der Kombinationsfunktion 113. Die Kombinationsfunktion 113 produziert daraus (pro Taktpuls oder Taktflanke) ein Ausgangsbit. Dieses ist das pseudozufällige Bit, produziert zum Zeitpunkt t. Die Methode wiederholt sich zum Zeitpunkt t + 1, t + 2, .... Auf diese Weise entsteht die Pseudozufallsfolge 111.
  • 4 zeigt ein Flussdiagramm eines Verfahrens 400 zur Bereitstellung einer Pseudozufallsfolge gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • Das Verfahren 400 weist einen Schritt 401 des Bereitstellens einer ersten Ausgangsfolge durch ein nichtlineares Schieberegister auf.
  • Ferner weist das Verfahren 400 einen Schritt 403 des Empfangens der ersten Ausgangsfolge und des Bereitstellens einer zweiten Ausgangsfolge basierend auf der ersten Ausgangsfolge durch ein lineares Schieberegister auf.
  • Ferner umfasst das Verfahren 400 einen Schritt 405 des Bereitstellens der Pseudozufallsfolge basierend auf der zweiten Ausgangsfolge.
  • Das Verfahren 400 kann von Ausführungsbeispielen der vorliegenden Erfindung, wie beispielsweise von dem Pseudozufallszahlengenerator 100 oder dem Pseudozufallszahlengenerator 300 durchgeführt werden. Ferner kann das Verfahren 400 um alle Merkmale der hierin beschriebenen Vorrichtungen erweitert werden.
  • Aspekte, die im Zusammenhang mit einem oder als ein Verfahrensschritt beschrieben wurden, stellen auch eine Beschreibung eines entsprechenden Blocks oder Details oder Merkmals einer entsprechenden Vorrichtung dar.
  • Ein weiteres Ausführungsbeispiel umfasst eine Verarbeitungseinrichtung, beispielsweise einen Computer oder ein programmierbares Logikbauelement, die dahin gehend konfiguriert oder angepasst ist, eines der hierin beschriebenen Verfahren durchzuführen.
  • Bei manchen Ausführungsbeispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gatterarray, ein FPGA) dazu verwendet werden, manche oder alle Funktionalitäten der hierin beschriebenen Verfahren durchzuführen. Bei manchen Ausführungsbeispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor zusammenwirken, um eines der hierin beschriebenen Verfahren durchzuführen. Allgemein werden die Verfahren bei einigen Ausführungsbeispielen seitens einer beliebigen Hardwarevorrichtung durchgeführt. Diese kann eine universell einsetzbare Hardware wie ein Computerprozessor (CPU) sein oder für das Verfahren spezifische Hardware, wie beispielsweise ein ASIC.
  • Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten einleuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden, beschränkt sei.

Claims (13)

  1. Pseudozufallszahlengenerator (100, 300) mit folgenden Merkmalen: einem Paar (101-1 bis 101-k) von Schieberegistern (103-1 bis 103-k, 105-1 bis 105-k), wobei ein erstes Schieberegister des Paars (101-1 bis 101-k) ein lineares Schieberegister (103-1 bis 103-k) ist und ein zweites Schieberegister des Paars (101-1 bis 101-k) ein nichtlineares Schieberegister (105-1 bis 105-k) ist, wobei das lineare Schieberegister (101-l bis 101-k) ausgebildet ist, um eine erste Ausgangsfolge (107-1 bis 107-k) des nichtlinearen Schieberegisters (105-1 bis 105-k) zu empfangen, und um basierend auf der ersten Ausgangsfolge (107-1 bis 107-k) eine zweite Ausgangsfolge (109-1 bis 109-k) bereitzustellen; und wobei der Pseudozufallszahlengenerator (100, 300) ausgebildet ist, um basierend auf der zweiten Ausgangsfolge (109-1 bis 109-k) eine Pseudozufallsfolge (111) bereitzustellen.
  2. Pseudozufallszahlengenerator (100, 300) gemäß Anspruch 1, wobei das lineare Schieberegister (103-1 bis 103-k) maximalperiodisch ist.
  3. Pseudozufallszahlengenerator (100, 300) gemäß einem der Ansprüche 1 oder 2, wobei das nichtlineare Schieberegister (105-1 bis 105-k) maximalperiodisch ist.
  4. Pseudozufallszahlengenerator (100, 300) gemäß einem der Ansprüche 1 bis 3, wobei eine Länge des nichtlinearen Schieberegisters (105-1 bis 105-k) kleiner oder gleich einer Länge des linearen Schieberegisters (103-1 bis 103-k) ist.
  5. Pseudozufallszahlengenerator (100, 300) gemäß einem der Ansprüche 1 bis 4, wobei eine Länge des nichtlinearen Schieberegisters (105-1 bis 105-k) in einem Bereich ≥ 5 und ≤ 50 gewählt ist.
  6. Pseudozufallszahlengenerator (100, 300) gemäß einem der Ansprüche 1 bis 5, wobei eine Länge des linearen Schieberegisters (103-1 bis 103-k) in einem Bereich ≥ 5 und ≤ 50 Speicherelemente länger gewählt ist als eine Länge des nichtlinearen Schieberegisters (105-1 bis 105-k).
  7. Pseudozufallszahlengenerator (100, 300) gemäß einem der Ansprüche 1 bis 6, wobei das lineare Schieberegister (103-1) eine Mehrzahl von in Serie miteinander verschalteten Speicherelementen (201a201e) aufweist; und wobei das lineare Schieberegister (103-1) eine logische Verknüpfung (203a) aufweist, die ausgebildet ist, um eine interne Ausgangsfolge (211), welche auf einer von einer der Mehrzahl von Speicherelementen (201a201e) generierten Speicherelementausgangsfolge (109-1, 207c) basiert, mit der zweiten Ausgangsfolge (107-1) logisch zu verknüpfen.
  8. Pseudozufallszahlengenerator (100, 300) gemäß Anspruch 7, wobei ein weiteres Speicherelement (201a) des linearen Schieberegisters (103-1) ausgebildet ist, um eine aus der logischen Verknüpfung (203a) resultierende verknüpfte Ausgangsfolge (213) zu empfangen, um basierend auf der verknüpften Ausgangsfolge (213) eine weitere Speicherelementausgangsfolge bereitzustellen.
  9. Pseudozufallszahlengenerator (100, 300) gemäß einem der Ansprüche 7 oder 8, wobei die interne Ausgangsfolge (211) gleich der zweiten Ausgangsfolge (109-1) ist oder Resultat einer oder mehrerer logischer Verknüpfungen (203b) der zweiten Ausgangsfolge (109-1) mit einer oder mehreren Speicherelementausgangsfolgen (207c) ist.
  10. Pseudozufallszahlengenerator (300) gemäß einem der Ansprüche 1 bis 9, wobei der Zufallszahlengenerator (300) eine Mehrzahl entsprechender Paare (101-1 bis 101-k) von Schieberegistern (103-1 bis 103-k, 105-1 bis 105-k) aufweist; und wobei der Pseudozahlengenerator (300) ausgebildet ist, um die Pseudozufallsfolge (111) basierend auf den zweiten Ausgangsfolgen (109-1 bis 109-k) der Mehrzahl von Paaren (101-1 bis 101-k) von Schieberegistern bereitzustellen.
  11. Pseudozufallszahlengenerator (300) gemäß Anspruch 10, ferner aufweisend eine Boolesche Kombinationsfunktion (113), die ausgebildet ist, um die von der Mehrzahl von Paaren (101-1 bis 101-k) bereitgestellten zweiten Ausgangsfolgen (109-1 bis 109-k) logisch zu kombinieren, um die Pseudozufallsfolge (111) zu erhalten.
  12. Pseudozufallszahlengenerator (300) gemäß einem der Ansprüche 10 oder 11, wobei zumindest für einen Teil der Mehrzahl von Paaren (101-1 bis 101-k) nichtlineare Schieberegister (105-1 bis 105-k) verschiedener Paare (101-1 bis 101-k) und/oder lineare Schieberegister (103-1 bis 103-k) verschiedener Paare (101-1 bis 101-k) unterschiedliche Längen aufweisen.
  13. Verfahren (400) zur Bereitstellung einer Pseudozufallsfolge mit den folgenden Schritten: Bereitstellen (401) einer ersten Ausgangsfolge (107-1 bis 107-k) durch ein nichtlineares Schieberegister (105-1 bis 105-k) eines Paars (101-1 bis 101-k) von Schieberegistern; Empfangen (403) der ersten Ausgangsfolge (107-1 bis 107-k) und Bereitstellen, basierend auf der ersten Ausgangsfolge (107-1 bis 107-k), einer zweiten Ausgangsfolge (109-1 bis 109-k) durch ein lineares Schieberegister (103-1 bis 103-k) des Paars (101-1 bis 101-k) von Schieberegistern; und Bereitstellen (405) der Pseudozufallsfolge (111) basierend auf der zweiten Ausgangsfolge (109-1 bis 109-k).
DE201210205620 2012-04-05 2012-04-05 Pseudozufallszahlengenerator und verfahren zur bereitstellung einer pseudozufallsfolge Active DE102012205620B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE201210205620 DE102012205620B4 (de) 2012-04-05 2012-04-05 Pseudozufallszahlengenerator und verfahren zur bereitstellung einer pseudozufallsfolge
US13/857,191 US20140067891A1 (en) 2012-04-05 2013-04-05 Pseudo random number generator and method for providing a pseudo random sequence

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE201210205620 DE102012205620B4 (de) 2012-04-05 2012-04-05 Pseudozufallszahlengenerator und verfahren zur bereitstellung einer pseudozufallsfolge

Publications (2)

Publication Number Publication Date
DE102012205620A1 DE102012205620A1 (de) 2013-10-10
DE102012205620B4 true DE102012205620B4 (de) 2015-04-16

Family

ID=49209933

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201210205620 Active DE102012205620B4 (de) 2012-04-05 2012-04-05 Pseudozufallszahlengenerator und verfahren zur bereitstellung einer pseudozufallsfolge

Country Status (2)

Country Link
US (1) US20140067891A1 (de)
DE (1) DE102012205620B4 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015100760A1 (de) * 2015-01-20 2016-07-21 Infineon Technologies Ag Generieren von Zufallszahlen

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3911216A (en) * 1973-12-17 1975-10-07 Honeywell Inf Systems Nonlinear code generator and decoder for transmitting data securely
US4202051A (en) * 1977-10-03 1980-05-06 Wisconsin Alumni Research Foundation Digital data enciphering and deciphering circuit and method
US4852023A (en) * 1987-05-12 1989-07-25 Communications Satellite Corporation Nonlinear random sequence generators
US5073909A (en) * 1990-07-19 1991-12-17 Motorola Inc. Method of simulating the state of a linear feedback shift register
US8949493B1 (en) * 2010-07-30 2015-02-03 Altera Corporation Configurable multi-lane scrambler for flexible protocol support

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HELL, Martin, u.a.: A Stream Cipher Proposal: Grain-128. 2006 IEEE Int. Symp. On Information Theory. Juli 2006 *

Also Published As

Publication number Publication date
US20140067891A1 (en) 2014-03-06
DE102012205620A1 (de) 2013-10-10

Similar Documents

Publication Publication Date Title
DE112011106024B4 (de) Erzeugungsvorrichtung für vorrichtungsspezifische Informationen und Erzeugungsverfahren für vorrichtungsspezifische Informationen
DE112017000855B4 (de) Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze
DE10339999B4 (de) Pseudozufallszahlengenerator
DE102013222218A1 (de) Konstruieren einer Schaltung geeignet zur Erzeugung von Zufallsbits und Schaltung zur Erzeugung von Zufallsbits
CH693252A5 (de) Verfahren und Vorrichtung zurErzeugung einer ganzen Zahl
DE102009022233A1 (de) Verwendung einer Zeichenkette in Sytemen der Kryptographie, der Statistik, der Simulation, der Randomisierung, von Spielautomaten und dgl.
DE102010029735A1 (de) Verfahren zum Generieren eines Bitvektors
DE102014203497A1 (de) Maskiertes nichtlinear rückgekoppeltes Schieberegister
DE102014102501A1 (de) Zufallszahlgenerator
DE102013213354A1 (de) Zufallsbitstromgenerator mit garantierter mindestperiode
EP2446580B1 (de) Vorrichtung und verfahren zur bildung einer signatur
DE102009007246A1 (de) Pseudozufallszahlengenerator und Verfahren zum Erzeugen einer Pseudozufallszahlenbitsequenz
DE10223176B3 (de) Integrierte Schaltung mit sicherheitskritischen Schaltungskomponenten
DE112008001707T5 (de) Finite-Feld-Operationen verwendender kryptographischer Zufallszahlengenerator
DE1474037A1 (de) Paritaets-Pruefeinrichtung fuer Datenverarbeitende Maschinen
EP1664979A1 (de) Übergang zwischen maskierten repräsentationen eines wertes bei kryptographischen berechnungen
DE102014106019A1 (de) Netzwerkteilnehmer
DE102012205620B4 (de) Pseudozufallszahlengenerator und verfahren zur bereitstellung einer pseudozufallsfolge
DE102004013480A1 (de) Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen
DE102012216677B3 (de) Identifikationsschaltung
DE112020003328T5 (de) Nichtlinear rückgekoppeltes schieberegister
DE10061315A1 (de) Verfahren und Vorrichtung zum Erzeugen einer Pseudozufallsfolge
DE102009029749A1 (de) System zur Erzeugung beliebig langer randomisierter Bitlisten auf Rechnern im Normalbetrieb
DE102008046291A1 (de) Effiziente Speicherung kryptographischer Parameter
DE102013208836A1 (de) Verfahren und Vorrichtung zur Erzeugung eines Hash-Werts

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative