-
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.
-
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 201a–201e 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 205a–205d 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 201a–201e des linearen Schieberegisters 103-1 sind dabei in Reihe miteinander verschaltet. Jedes der Speicherelemente 201a–201e 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 205a–205d in Reihe miteinander verschaltet. Ferner sind auch die Speicherelemente 205a–205d 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-1 (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 205a–205d 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 201a–201e (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.
-
Obwohl manche Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, versteht es sich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, sodass ein Block oder ein Bauelement einer Vorrichtung auch als ein entsprechender Verfahrensschritt oder als ein Merkmal eines Verfahrensschrittes zu verstehen ist. Analog dazu stellen Aspekte, die im Zusammenhang mit einem oder als ein Verfahrensschritt beschrieben wurden, auch eine Beschreibung eines entsprechenden Blocks oder Details oder Merkmals einer entsprechenden Vorrichtung dar.
-
Je nach bestimmten Implementierungsanforderungen können Ausführungsbeispiele der Erfindung in Hardware oder in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, beispielsweise einer Floppy-Disk, einer DVD, einer Blu-ray Disc, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers, einer Festplatte oder eines anderen magnetischen oder optischen Speichers durchgeführt werden, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem derart zusammenwirken können oder zusammenwirken, dass das jeweilige Verfahren durchgeführt wird. Deshalb kann das digitale Speichermedium computerlesbar sein. Manche Ausführungsbeispiele gemäß der Erfindung umfassen also einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem derart zusammenzuwirken, dass eines der hierin beschriebenen Verfahren durchgeführt wird.
-
Allgemein können Ausführungsbeispiele der vorliegenden Erfindung als Computerprogrammprodukt mit einem Programmcode implementiert sein, wobei der Programmcode dahin gehend wirksam ist, eines der Verfahren durchzuführen, wenn das Computerprogrammprodukt auf einem Computer abläuft. Der Programmcode kann beispielsweise auch auf einem maschinenlesbaren Träger gespeichert sein.
-
Andere Ausführungsbeispiele umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren, wobei das Computerprogramm auf einem maschinenlesbaren Träger gespeichert ist.
-
Mit anderen Worten ist ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens somit ein Computerprogramm, das einen Programmcode zum Durchführen eines der hierin beschriebenen Verfahren aufweist, wenn das Computerprogramm auf einem Computer abläuft. Ein weiteres Ausführungsbeispiel der erfindungsgemäßen Verfahren ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren aufgezeichnet ist.
-
Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist somit ein Datenstrom oder eine Sequenz von Signalen, der bzw. die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren darstellt bzw. darstellen. Der Datenstrom oder die Sequenz von Signalen kann bzw. können beispielsweise dahin gehend konfiguriert sein, über eine Datenkommunikationsverbindung, beispielsweise über das Internet, transferiert zu werden.
-
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.
-
Ein weiteres Ausführungsbeispiel umfasst einen Computer, auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren installiert ist.
-
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.