DE102004037814A1 - Vorrichtung und Verfahren zum Erzeugen einer Folge von Zahlen - Google Patents

Vorrichtung und Verfahren zum Erzeugen einer Folge von Zahlen Download PDF

Info

Publication number
DE102004037814A1
DE102004037814A1 DE102004037814A DE102004037814A DE102004037814A1 DE 102004037814 A1 DE102004037814 A1 DE 102004037814A1 DE 102004037814 A DE102004037814 A DE 102004037814A DE 102004037814 A DE102004037814 A DE 102004037814A DE 102004037814 A1 DE102004037814 A1 DE 102004037814A1
Authority
DE
Germany
Prior art keywords
shift register
memory cells
sequence
output
numbers
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.)
Granted
Application number
DE102004037814A
Other languages
English (en)
Other versions
DE102004037814B4 (de
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 DE102004037814A priority Critical patent/DE102004037814B4/de
Priority to FR0508142A priority patent/FR2875316B1/fr
Priority to US11/197,776 priority patent/US20060161610A1/en
Priority to KR1020050071469A priority patent/KR100735953B1/ko
Publication of DE102004037814A1 publication Critical patent/DE102004037814A1/de
Application granted granted Critical
Publication of DE102004037814B4 publication Critical patent/DE102004037814B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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

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)
  • Error Detection And Correction (AREA)
  • Logic Circuits (AREA)

Abstract

Ein Zufallszahlengenerator zum Erzeugen einer Folge von Zahlen umfasst ein erstes Schieberegister (10) mit einer nichtlinearen Rückkopplung (101), einer ersten Anzahl von Speicherzellen (102) und einem ersten Ausgang (104), der mit der ersten Anzahl von Speicherzellen durch eine erste Kopplungseinrichtung (103) gekoppelt ist. Der Zahlengenerator umfasst ferner ein ähnlich aufgebautes zweites Schieberegister (20) sowie eine Kombinationseinrichtung (12) zum Kombinieren der ersten Datenfolge an dem ersten Ausgang (104) und der zweiten Datenfolge an dem zweiten Ausgang (204), um die Folge von Zahlen zu erhalten. Der Zahlengenerator ist effizient und gegenüber XL-Angriffen resistent.

Description

  • Die vorliegende Erfindung bezieht sich auf Zahlengeneratoren und insbesondere auf Pseudozufallszahlengeneratoren, die beispielsweise als Schlüsselgeneratoren einsetzbar sind.
  • Ein bekannter Zufallszahlengenerator ist in 7 dargestellt. Der Pseudozufallszahlengenerator von 7, der auch als lineares rückgekoppeltes Schieberegister bezeichnet wird, umfasst eine Mehrzahl von Speicherelementen 51, 52, 53, 54, die in 7 von 0 bis n durchnumeriert sind. Die Speicherzellen sind über eine Initialisierungseinrichtung 55 auf einen Startwert initialisierbar. Die Speicherzellen 51-54 bilden insgesamt eine Vorwärtskopplungseinrichtung, während das lineare Schieberegister, das durch die Speicherzellen 51-54 gebildet ist, durch eine Rückkopplungseinrichtung rückgekoppelt ist, die zwischen einen Ausgang 56 der Schaltung und der Speicherzelle n gekoppelt ist. Die Rückkopplungseinrichtung umfasst im einzelnen eine oder mehrere Kombinationseinrichtungen 57, 58, die von jeweiligen Rückkopplungszweigen 59a, 59b, 59c so gespeist werden, wie es in 7 beispielhaft dargestellt ist. Der Ausgangswert der letzten Kombinationseinrichtung 58 wird in die Speicherzelle n, die in 7 mit 54 bezeichnet ist, eingespeist.
  • Das in 7 gezeigte lineare rückgekoppelte Schieberegister wird von einem Takt betrieben, so dass in jedem Taktzyklus die Belegung der Speicherzellen um eine Stufe Bezug nehmend auf 7 nach links geschoben wird, so dass in jedem Taktzyklus der in der Speichereinrichtung 51 gespeicherte Zustand als Zahl ausgegeben wird, während gleichzeitig der Wert am Ausgang der letzten Kombinationseinrichtung 58 in die erste Speichereinheit n der Folge von Speichereinheiten eingespeist wird. Das in 7 dargestellte lineare rückgekoppelte Schieberegister liefert somit eine Folge von Zahlen anspre chend auf eine Folge von Taktzyklen. Die am Ausgang 56 erhaltene Folge von Zahlen hängt von dem Startzustand ab, der durch die Initialisierungseinrichtung 55 vor Inbetriebnahme des Schieberegisters hergestellt wird. Der durch die Initialisierungseinrichtung 55 eingegebene Startwert wird auch als Keim oder Seed bezeichnet, weshalb solche in 7 dargestellte Anordnungen auch als Seed-Generatoren bezeichnet werden.
  • Die an dem Ausgang 56 erhaltene Folge von Zahlen wird als pseudozufällige Folge von Zahlen bezeichnet, da die Zahlen scheinbar zufällig aufeinander folgen, aber insgesamt periodisch sind, obgleich die Periodendauer groß ist. Darüber hinaus ist die Folge von Zahlen eindeutig wiederholbar und damit pseudozufällig, wenn der Initialisierungswert, der durch die Initialisierungseinrichtung 55 den Speicherelementen zugeführt wird, bekannt ist. Solche Schieberegister werden beispielsweise als Key-Stream-Generatoren eingesetzt, um einen von einem speziellen Initialisierungswert (Seed) abhängigen Strom von Ver-/Ent-Schlüsselungsschlüsseln zu liefern.
  • Solche in 7 dargestellten Schieberegister haben den Nachteil einer geringen linearen Komplexität. So genügen bei einem n-Bit-LFSR (LFSR = Linear Feedback Shift Register) 2 n Bits der Ausgabefolge, um die gesamte Folge zu berechnen. Der Vorteil solcher in 7 dargestellten bekannten LFSRs besteht jedoch darin, dass der Hardwareaufwand sehr gering ist.
  • Darüber hinaus existieren unregelmäßig getaktete LFSRs. Diese zeigen einen etwas erhöhten Hardwareaufwand bei einer meist geringeren Periode. Die lineare Komplexität kann jedoch deutlich höher sein. Ein Nachteil solcher unregelmäßig getakteter Vorrichtungen ist jedoch die Tatsache, dass aufgrund der unregelmäßigen Taktung durch Strommessung im Rahmen einer SPA (SPA = Simple Power Analysis) prinzipiell auf die Ausgabefolge geschlossen werden könnte. Indem die Schieberegistervorrichtungen als Teile von Schlüsselgeneratoren verwendet wer den, die inhärent geheim zu haltende Daten, also Schlüsseldaten, erzeugen, ist es bei ihnen besonders wichtig, dass sie gegen jegliche Art von kryptographischen Angriffen sicher sind.
  • Andererseits besteht jedoch bei solchen Vorrichtungen insbesondere dann, wenn sie auf Chipkarten untergebracht werden sollen, die Anforderung, dass der Hardwareaufwand gering sein muss. In anderen Worten ausgedrückt muss die Chipfläche, die solche Vorrichtungen in Anspruch nehmen, so klein als möglich sein. Dies liegt daran, dass in der Halbleiterherstellung die Chipfläche einer gesamten Vorrichtung letztendlich den Preis und damit die Gewinnmarge des Chipherstellers bestimmt. Ferner ist besonders bei Chipkarten üblicherweise eine Spezifikation so, dass ein Kunde sagt, dass ein Prozessorchip eine maximale Fläche in Quadratmillimetern haben darf, auf der verschiedenartigste Funktionalitäten untergebracht werden müssen. Daher liegt es an dem Schaltungshersteller, diese kostbare Fläche auf die einzelnen Komponenten zu verteilen. Im Hinblick auf die immer komplexer werdenden kryptographischen Algorithmen ist eine Anstrengung des Chipherstellers dahingehend gerichtet, dass der Chip möglichst viel Speicher hat, um auch Arbeitsspeicher-intensive Algorithmen in vertretbarer Zeit berechnen zu können. Die Chipfläche für Schlüsselgeneratoren und andere derartige Komponenten muss daher so klein als möglich gehalten werden, um auf der gegebenen Chipfläche mehr Speicher unterbringen zu können.
  • Die generelle Anforderung an Schlüsselgeneratoren bzw. Vorrichtungen zum Erzeugen einer pseudozufälligen Folge von Zahlen besteht somit darin, einerseits sicher zu sein und andererseits möglichst wenig Platz zu benötigen, also einen möglichst geringen Hardware-Aufwand zu haben.
  • Alternative Ausführungsformen für komplexere Zufallszahlengeneratoren sind beispielhaft in 8 gezeigt. 8 zeigt eine Anzahl von linearen Schieberegistern, die beispielsweise so aufgebaut sein können, wie es anhand von 7 dargestellt worden ist, und die in 8 mit 81, 82, 83, 84 bezeichnet sind. Das Ausgangssignal jedes linearen Schieberegisters 81, 82, 83, 84, das mit 56a, 56b, 56c und 56d bezeichnet ist, wird in eine Ausgangsstufe 85 eingespeist, um schließlich eine ausgangsseitige Zahlenfolge an einem Ausgang 86 der Ausgangsstufe 85 zu erhalten. Diese Kombination mehrerer linearer rückgekoppelter Schieberegister (LFSR; LFSR = Linear Feedback Shift Register) bedeutet, dass die Ausgabe mehrerer LFSR als Eingangssignale für eine so genannte Boolsche Kombinations-Funktion dient, die durch die Ausgangsstufe 85 implementiert wird, deren Ausgangssignal, wie es ausgeführt worden ist, schließlich die Schlüsselfolge ist.
  • In der noch nicht veröffentlichten deutschen Patentanmeldung mit dem amtlichen Aktenzeichen 102004013481.2-42, eingereicht am 18. März 2004 beim Deutschen Patent- und Markenamt, ist ein Zufallszahlengenerator beschrieben, bei dem ein Schieberegister mit einer nichtlinearen Feedforward-Logik versehen ist. Dies bedeutet, dass verschiedene Zellen (Flip-Flops) des zugrunde liegenden linearen Schieberegisters mit Ausgängen versehen werden. Die Ausgänge dieser Zellen bilden wieder die Eingangssignale für eine nichtlineare Funktion. Das Ausgangssignal dieser Funktion wird dann als Schlüsselfolge verwendet.
  • Wenn als zugrunde liegende Schieberegister ein lineares Schieberegister LFSR eingesetzt wird, ist die Sicherheit dieser Schlüsselgeneratoren nicht optimal. So wurden Angriffe auf Systeme, denen lineare Schieberegister zugrunde liegen, herausgefunden. Diese Angriffe werden auch unter dem Namen XL-Algorithmus zusammengefasst. XL steht hier für Extended Linearization. XL bezeichnet ein heuristisches Verfahren zum effizienten Lösen stark überbestimmter algebraischer Gleichungssysteme. Überbestimmt heißt, dass mehr Gleichungen als Unbekannte vorliegen.
  • Diese Angriffe sind in Shamir, Patarin, Courtois, Klimov: „Efficient Algorithms for Solving Overdefined Systems of Multivariate Polynomial Equations", Advances in Cryptology EUROCRYPT 2000 (B. Preneel, ed.), Lecture Notes in Computer Science, vol. 1807, S. 392-407, Springer-Verlag, 2000, dargestellt.
  • Eine weitere wichtige Arbeit ist: N. Courtois and W. Meier: Algebraic attacks on stream ciphers with linear feedback, Advances in Cryptology, EUROCRYPT 2003 (E. Biham, ed.), Lecture Notes in Computer Science, vol. 2656, pp. 345-359, Springer-Verlag, 2003.
  • Daher sollten für Anwendungen, die einen hohen Sicherheitsgrad erfordern, lineare Schieberegister nicht mehr eingesetzt werden.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, ein verbessertes Konzept zum Erzeugen von Zufallszahlen zu schaffen, das sich einerseits durch Sicherheit und andererseits durch Effizienz auszeichnet.
  • Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass eine optimale Sicherheit einerseits und eine hohe Effizienz andererseits dann erreicht werden können, wenn wenigstens zwei Schieberegister mit nichtlinearer Rückkopplung verwendet werden, wobei jedes Schieberegister mit nichtlinearer Rückkopplung eine lineare Kopplungseinrichtung hat, also ein lineares Feedforward, um aus einem Schieberegister mit nichtlinearer Rückkopplung eine Ausgangsdatenfolge zu erzeugen, wobei die Ausgangsdatenfolgen aller Schieberegister mit nichtlinearer Rückkopplung dann in einer Kombinationseinrichtung kombiniert werden, um schließlich die Folge von Zahlen zu erhalten.
  • Die Verwendung mehrerer (kleinerer) Schieberegister mit nichtlinearer Rückkopplung statt einem einzigen (großen) Schieberegister mit nichtlinearer Rückkopplung ermöglicht es, Chipfläche zu sparen, da die Periodizität der Ausgangsfolge zweier kleinerer Schieberegister gleich dem Produkt der Periodizität der einzelnen Schieberegister mit nichtlinearer Rückkopplung ist, so dass trotz der Verwendung zweier Schieberegister mit einer kleineren Anzahl von Speicherzellen eine Periodizität der Ausgangsfolge erhalten werden kann, zu deren Erreichen mit einem einzigen Schieberegister mit nichtlinearer Rückkopplung wesentlich mehr Speicherzellen erforderlich sein würden als die Summe der Speicherzellen der Einzelregister. Das erfindungsgemäße Konzept ist daher chipflächeneffizient und insbesondere auch flexibel einsetzbar, da der Schaltungsentwickler nicht einen großen Fleck des Chips benötigt, um ein großes einzelnes Schieberegister anzuordnen. Statt dessen genügen mehrere kleine Flecken auf dem Chip, an denen die mehreren kleinen einzelnen Schieberegister, die schließlich kombiniert werden können, angeordnet sind.
  • Das Konzept ist dahingehend sicherer, dass nichtlineare Schieberegister verwendet werden, gegen die die XL-Angriffe fehlschlagen. Darüber hinaus ist es für einen Angreifer wesentlich schwieriger, durch Aufschleifen und Inspizieren des Chips mehrere kleine Schieberegister als ein einziges großes Schieberegister zu erkennen, da die regelmäßigen Strukturen bei einem einzigen großen Schieberegister wesentlich deutlicher sichtbar sind als bei mehreren kleinen Schieberegistern, die vorzugsweise nicht in unmittelbarer Nachbarschaft auf dem Chip angeordnet sind, sondern an unterschiedlichen Stellen auf dem Chip.
  • Bei dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung werden als einzelne Schieberegister eingesetzt, die Periodenlängen gleich 2N-1 erzeugen, wobei N die Anzahl von Speicherzellen in dem Schieberegister ist. Im Falle eines endlichen Körpers, der nicht nur die Zahlen 0 und 1 hat, sondern eine beliebige Anzahl q ist die Periodenlänge der bevorzugten Schieberegister qN-1. Auch etwas kleinere Periodenlän gen sind akzeptabel. Die maximal erreichbaren Periodenlängen 2N eignen sich jedoch nicht so gut für die Kombination bzw. für die mathematische Vorhersagbarkeit wie die etwas kleineren Periodenlängen 2N-1.
  • Bei bevorzugten Ausführungsbeispielen ist die lineare Kopplungseinrichtung, also die Feedforward-Einrichtung, wirksam, um die Ausgängen von mehreren einzelnen Speicherzellen in dem Schieberegister mit einem jeweiligen Element des endlichen Körpers zu multiplizieren und dann linear, beispielsweise durch XOR-Gatter oder XNOR-Gatter zu kombinieren, um die Ausgangs-Datenfolge des entsprechenden Schieberegisters zu liefern, die wiederum in die Kombinationseinrichtung zusammen mit den anderen Ausgangs-Datenfolgen der anderen Schieberegister eingespeist wird, um dort durch eine beliebige Art und Weise der Kombination, vorzugsweise durch Boolsche Kombinationselemente, wie Elementargatter, die Ausgangs-Folge von Zahlen aus dem endlichen Körper zu erzeugen.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen detailliert erläutert. Es zeigen:
  • 1 eine Vorrichtung zum Erzeugen einer Folge von Zahlen gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung;
  • 2 eine alternative Ausführungsform der erfindungsgemäßen Vorrichtung zum Erzeugen einer Folge von Zahlen mit einer beliebigen Anzahl von Schieberegistern mit nichtlinearer Rückkopplung und linearer Vorwärtskopplung;
  • 3 eine detaillierte Darstellung einer bevorzugten Implementierung eines Schieberegisters;
  • 4a ein Ausführungsbeispiel eines Schieberegisters mit nichtlinearer Rückkopplung;
  • 4b ein alternatives Ausführungsbeispiel eines Schieberegisters mit nichtlinearer Rückkopplung;
  • 5a ein anderes Schieberegister mit nichtlinearer Rückkopplung;
  • 5b wieder ein anderes Schieberegister mit nichtlinearer Rückkopplung;
  • 6 eine schematische Darstellung eines Schieberegisters mit allgemeiner nichtlinearer Rückkopplungsfunktion;
  • 7 ein Schieberegister mit linearer Rückkopplung; und
  • 8 eine Kombination von linearen Schieberegistern.
  • 1 zeigt eine erfindungsgemäße Vorrichtung zum Erzeugen einer Folge von Zahlen aus einem endlichen Körper. Die Vorrichtung umfasst ein erstes Schieberegister 10 mit einer nichtlinearen Rückkopplung 101 und einer ersten Anzahl von N von Speicherzellen, wobei beispielsweise die Speicherzelle SZ0 mit 102 bezeichnet ist. Das erste Register umfasst ferner eine Kopplungseinrichtung 103, die vorzugsweise als lineare Kopplungseinrichtung ausgeführt ist und Ausgangsfolgen der Speicherzellen 102 miteinander kombiniert, um daraus an einem Ausgang 104 des ersten Schieberegisters eine erste Datenfolge zu erzeugen, die das letztendliche Ergebnis des ersten Schieberegisters 10 ist. Die erfindungsgemäße Vorrichtung umfasst ein zweites Schieberegister 20, das dieselben Elemente umfasst, wie sie in Verbindung mit dem ersten Schieberegister 10 beschrieben worden sind, nämlich eine nichtlineare Rückkopplungseinrichtung, eine Anzahl von Speicherzellen sowie eine Kopplungseinrichtung, die ebenfalls wie beim ersten Schieberegister 10 vorzugsweise linear ausgeführt ist. An einem Ausgang 204 liefert das zweite Schieberegister 20 eine zweite Datenfolge, die in einer Kombinationseinrichtung 12 mit der ersten Datenfolge vorzugsweise termweise, und im Falle eines binären endlichen Körpers bitweise verknüpft wird, um eine Folge von Zahlen an einem Ausgang 14 der erfindungsgemäßen Zahlengeneratoreinrichtung, die insgesamt in 1 gezeigt ist, zu erzeugen. Ist der endliche Körper der binäre endliche Körper, der die Elemente 0 und 1 hat, so ist die Folge von Zahlen am Ausgang 14 eine Folge von Bits. Ist dagegen der endliche Körper ein Körper, der z. B. die Zahlen 0 bis 9 umfassen kann, so ist die Folge von Zahlen am Ausgang 14 eine Folge von Zahlen, die einen Wert der Werte 0 bis 9 haben können.
  • Die mathematische Vorhersagbarkeit der an dem Ausgang 14 erhaltenen Folge von Zahlen ist dann am besten, wenn die Schieberegister eine solche nichtlineare Rückkopplungseigenschaft 101 haben, dass die Periodizität einer Ausgangfolge einer Speicherzelle SZi 2N-1 ist. Dies führt wiederum dazu, dass auch die erste Datenfolge, die durch die lineare Kopplungseinrichtung 103 erzeugt wird, dieselbe Periodizität hat.
  • Bei dem in 2 gezeigten Ausführungsbeispiel sind im Gegensatz zu 1 eine beliebige Anzahl n von Schieberegistern 10, 20, 30, 40 mit der Kombinationseinrichtung 12 gekoppelt, um eine beliebige Anzahl von i Ausgangs-Datenfolgen 104, 204, 304, 404 zu kombinieren, um schließlich die Folge von Zahlen am Ausgang 14 zu erhalten.
  • 3 zeigt eine bevorzugte Ausführungsform eines Schieberegisters 10, 20, 30, 40, das sich prinzipiell in drei verschiedene Blöcke aufteilen lässt, nämlich die nichtlineare Rückkopplungseinrichtung 101, die Folge von vorzugsweise seriell angeordneten Speicherzellen, die sich zwischen einer Speicherzelle 102a niedrigster Ordnung, die auch mit x0 bezeichnet ist, und einer Speicherzelle 102b höchster Ordnung, die mit xN-1 bezeichnet ist, erstrecken. Vorzugsweise ist jeder Ausgang von jeder Speicherzellen sowohl mit der nichtlinearen Rückkopplungseinrichtung 101 verbindbar als auch mit der linearen Kopplungseinrichtung 103 verbindbar. Die lineare Kombination geschieht z. B. durch ein XOR-Gatter 103a, das auch als XNOR-Gatter ausgebildet sein könnte, um eine lineare Kombination der Eingangs-Signale zu erreichen. Jedes Eingangssignal stammt von einem Schalter 103b, wobei für jeden Ausgang eines Schieberegisters ein solcher Schalter 103b vorgesehen ist. Ferner ist jeder Ausgang einer Speicherzelle ausgebildet, um multipliziert zu werden, und zwar mit einem Element des endlichen Körpers, wobei der Multiplizierer bzw. der Gewichter 103c auch mit c0 bis cN-1 bezeichnet ist. ci ist ein Element, das in dem Schieberegister 10 softwaremäßig oder vorzugsweise hardwaremäßig für jede Speicherzellen xi fest einprogrammiert ist. Ist der endliche Körper ein endlicher Körper, der nur die Elemente 0 und 1 hat, so sind die ci entweder 0 oder 1. Ist der endliche Körper dagegen z. B. der endliche Körper, der die Zahlen 0, 1, 2, ..., 8, 9 umfasst, so sind die ci jeweils eine ganze Zahl zwischen 0 und 9.
  • Es sei darauf hingewiesen, dass die Schalter 103b lediglich vorzugsweise vorgesehen sind. Sie sollen symbolisieren, dass das in 3 gezeigte Schieberegister von Gebrauch zu Gebrauch konfiguriert werden kann, nämlich dahingehend, dass z. B. lediglich einige der Schalter geschlossen werden, was bedeutet, dass nur die Ausgabefolgen einiger (und nicht aller) Speicherzellen xi in das XOR-Gatter 103a eingespeist werden, und zwar nach der Gewichtung durch das entsprechende Element ci.
  • Darüber hinaus wird es bevorzugt, lediglich eine Anzahl von niederwertigen Speicherzellen nach ihrer Gewichtung durch das Element 103c dem XOR-Gatter zuzuführen, wie z. B. die Ausgangsfolgen der Speicherzellen xo, x1, x2 in 3, während die Ausgangsfolgen der Speicherzellen xN-1, xN-2 und xN-3 nicht in der linearen Kopplungseinrichtung verwendet werden. Allge mein wird es bevorzugt, etwa 40 bis 60% der niederwertigen Speicherzellen, also der Speicherzellen links in 3 zu verwenden und die restlichen höherwertigen Speicherzellen, also die restlichen 60 bis 40% der Speicherzellen mit höherer Wertigkeit bei der Kombination durch die lineare Kopplungseinrichtung, also durch das Gatter 103a, nicht zu verwenden.
  • Es hat sich herausgestellt, dass eine solche Folge, bei der ein Teil der Speicherzellen durch die Kopplungseinrichtung kombiniert wird, sich stärker wie eine physikalische Zufallszahlenquelle verhält, als wenn am Ausgang der linearen Kopplungseinrichtung eine Datenfolge erzeugt wird, die auf der Kombination aller Speicherzellen x0 bis xN-1 basiert.
  • Dies sei nachfolgend anhand eines Schieberegisters mit z. B. 10 Speicherzellen dargestellt. So sei ferner angenommen, dass die Ausgangsfolgen der niederwertigen 5 Speicherzellen, als x0, ..., x4 miteinander durch das XOR-Gatter 103a von 3 kombiniert sind. Dagegen gehen die höherwertigen Speicherzellen, also x5, ..., x9 nicht in die Kombination ein. Für diese Speicherzellen sind die Schalter 103b offen.
  • Damit wird erreicht, dass in der Ausgangs-Datenfolge eine statistische Gleichverteilung aller Tupel vorkommt, die eine Länge haben, die gleich der Anzahl von kombinierten niederwertigen Speicherzellen sind. Dies bedeutet, dass in der ersten Datenfolge die Tupel für k = 1, also alle Nullen und Einsen genau gleich oft vorkommen. Darüber hinaus kommen auch alle Tupel mit k = 2, also (0, 0), (0, 1), (1, 0) und (1, 1) in der ersten Datenfolge am Ausgang 104 gleich oft vor. Dies gilt auch für die Tupel mit k = 3, k = 4 und K = 5. Dies gilt jedoch nicht für die Tupel mit k = 6, k = 7, k = 8, k = 9 und k = 10. Hier gibt es Abweichungen innerhalb der Statistik, wie oft die entsprechenden k-Tupel in der ersten Datenfolge am Ausgang 104 des Schieberegisters 10 in 3 vorkommen. Durch diese eigentliche „Verschlechterung" von der idealen Statistik einer Datenfolge wird jedoch die künstliche Natur der ideal statistischen Datenfolge des Schieberegisters in 3 „verschleiert".
  • Das bewusste Einbringen von Abweichungen von der idealen Statistik für größere Tupel stellt sicher, dass ein Angreifer, wenn er die Zahlenfolge betrachtet, nicht unmittelbar sieht, dass eine solche Zahlenfolge von einem Pseudozufallszahlengenerator und nicht von einem echten Zufallszahlengenerator, wie beispielsweise einer Rauschquelle, etc. geliefert wird. Ein echter physikalischer Zufallszahlengenerator hat, wie sich herausgestellt hat, nicht die ideale Statistik, sondern immer eine Abweichung von der idealen Statistik. Erst bei unendlich langer Betrachtung der Ausgangsfolge eines physikalischen Zufallszahlengenerators wäre die Ausgangsfolge von idealer Statistik. Dies gilt jedoch nur dann, wenn sich die Verhältnisse des Zufallszahlengenerators nicht geändert haben, also z. B. die Temperatur, der Strom etc. Nachdem sich innerhalb der Betrachtungszeit die Verhältnisse von physikalischen Zufallszahlengeneratoren jedoch ohnehin sehr wahrscheinlich ändern, also nicht garantiert werden kann, dass eine Rauschquelle z. B. unendlich lang auf derselben Temperatur und mit demselben Strom betrieben wird, ist zu sehen, dass gerade eine Abweichung von der idealen Statistik, die in begrenztem (kleinem) Rahmen ist, die erfindungsgemäß erzeugte Folge von Zahlen nicht wie eine synthetische unechte Zufallszahlenfolge aussehen lässt, sondern wie eine echte von einem tatsächlichen Rauschgenerator erzeugte Zufallszahlenfolge.
  • 4a zeigt eine Rückkopplungsfunktion F(x) für N=11 Speicherzellen in der Vorwärtskopplungseinrichtung, wobei F(x) in 4a eingezeichnet ist und insbesondere zwei UND-Gatter 212, 213 und zwei XOR-Gatter 214 und 215 sowie einen Invertierer 216 umfasst. Damit kann die in 4a gezeigte Rückkopplungseigenschaft F(x) implementiert werden.
  • Eine alternative Rückkopplungseigenschaft G(x) ist in 4b samt einer möglichen Implementierung gezeigt. Es ist zu se hen, dass die beiden Rückkopplungseigenschaften F(x) und G(x) das UND-Gatter 212 und das XOR-Gatter 214 gemeinsam verwenden. Bei dem in 4b gezeigten Ausführungsbeispiel wird jedoch noch ein anderes XOR-Gatter 218 sowie ein weiteres XOR-Gatter 219 benötigt. Der in 4a und in 4b unterstrichene Bereich der beiden Gleichungen F(x) und G(x) zeigen den von beiden Rückkopplungseigenschaften gemeinsam verwendeten Teil x1 x4 + x0, wobei diese gemeinsame Verwendung dieses Terms zu Hardwareeinsparung dient.
  • Bei dem in 4a oder 4b gezeigten Schieberegister hat jede Ausgabefolge aufgrund der 11 Zellen des Schieberegisters und aufgrund einer bevorzugten nicht-linearen Rückkopplung eine Periodendauer von 211-1=2047 und eine lineare Komplexität von 211-2=2046. Die Feedback-Funktionen sind ebenfalls dargestellt, wobei ein Oberstrich über einem Symbol das binäre Kompliment bedeuten soll.
  • Die 5a und 5b zeigen eine weitere Möglichkeit für ein 4-zelliges Schieberegister mit zwei verschiedenen Rückkopplungseinrichtungen F(x) und G(x), die auf der Basis eines Umschalters 203 implementiert werden können, wie es in 4 gezeigt ist. Wieder ist die Rückkopplungseinheit in Form der ersten Kombinationseinrichtung in 5a als ein UND-Gatter und drei XOR-Gatter aufgebaut, während die Kombinationseinrichtung für die zweite Rückkopplungseinrichtung, wie es in 5b gezeigt ist, wieder zwei UND-Gatter und drei XOR-Gatter umfasst. Die „Symbiose" der 5a und 5b ist in 5c gezeigt, wo wieder zwei UND-Gatter und drei XOR-Gatter samt dem Umschalter 203 eingesetzt werden, um abhängig von dem Signal z, das dem Umschalter 203 zugeführt wird, die Rückkopplungseigenschaft F(x) und G(x) zu aktivieren bzw. zu deaktivieren.
  • Wie es bereits ausgeführt worden ist, wird es bevorzugt, dass sämtliche Schieberegister in den 5a, 5b bzw. 4a, 4b nicht-linear sind, also ein nicht-lineares Element haben, wie beispielsweise ein – nichtlineares – Multiplikationselement, das – auf Logikebene betrachtet – ein UND-Gatter ist.
  • 6 zeigt ein allgemeines rückgekoppeltes Schieberegister mit Speicherzellen D0, ..., Dn-1 mit einer Vorwärtskopplungseinrichtung sowie mit einer Rückkopplungseinrichtung, die mit F(x0, x1, ..., xn-1) bezeichnet ist.
  • Betrachtet sei ein allgemeines n-stufiges (oder n-zelliges) rückgekoppeltes Schieberegister über dem Grundkörper GF(2) = {0,1}. Das Schieberegister besteht aus n Speicherzellen (Flip-Flops) D0, D1, ..., Dn-1 und der (elektronischen) Realisierung einer Rückkopplungsfunktion F(x0, x1, ..., xn-1). Die Rückkopplungsfunktion ordnet jedem n-Tupel bestehend aus n Bits, einen eindeutigen Wert aus GF(2) zu, also den Wert 0 oder 1. In mathematischer Terminologie ist F eine Funktion mit Definitionsbereich GF(2)n und Zielbereich GF(2).
  • Das Schieberegister wird von einer äußeren Uhr gesteuert. Mit jedem Uhrentakt wird der Inhalt der Speicherzelle Dj in die linke benachbarte Zelle Dj-1 verschoben. 1 ≤ j ≤ n – 1. Der Inhalt der Speicherzelle D0 wird ausgegeben. Seien die Inhalte der Speicherzellen D0, D1, ... Dn-2, Dn-1 zum Zeitpunkt t gegeben durch st, st+1 ..., st+n-2, st+n-1
  • Dann enthalten die Speicherzellen einen Uhrentakt später, also zum Zeitpunkt t + 1, die Bits st+1, st+2, ..., st+n-1, st+n,wobei der in der Zelle Dn-1 eingeflossene Wert st+n gegeben ist durch st+n = F(st, st+1, ..., st+n-1)
  • Das n-Tupel (st, st+1, ..., st+n-1) beschreibt den Zustand des Schieberegisters zum Zeitpunkt t. Das n-Tupel (s0, s1, ..., sn-1) heißt der Anfangszustand. Als Abkürzung für das allgemeine rückgekoppelte Schieberegister mit Rückkopplungsfunktion F wird FSR(F) verwendet (FSR steht für feedback shift register). 6 zeigt ein allgemeines rückgekoppeltes Schieberegister.
  • Mit jedem Takt der äußeren Uhr gibt das Schieberegister ein Bit aus. Auf diese Weise kann das Schieberegister eine periodische Bitfolge S0, s1, s2, ... produzieren, eine sogenannte Schieberegisterfolge. Es seien s0, s1, ..., sn-1 die Anfangswerte der Schieberegisterfolge. Die Rückkopplungsfunktion F(x0, x1, ..., xn-1) und die Anfangswerte s0, s1, ..., sn-1 bestimmen die Schieberegisterfolge vollständig. Da es nur 2n verschiedene Zustände für das Schieberegister gibt, beträgt die Periodenlänge der Schieberegisterfolge s0, s1, s2, ... höchstens 2n.
  • Ein allgemeines rückgekoppeltes Schieberegister FSR(F) heißt homogen, wenn seine Rückkopplungsfunktion F homogen ist, d. h. wenn F(0, 0, ..., 0) = 0 gilt. Ein homogenes, in den Anfangszustand s0 = s1 = ... = sn-1 = 0 versetztes Schieberegister produziert die Nullfolge. Daraus folgt, dass die Periodenlänge der Ausgabefolge eines n-stufigen homogenen Schieberegisters höchstens 2n – 1 betragen kann. Wenn die Periodenlänge den maximalen Wert 2n – 1 annimmt, dann nennt man die Schieberegisterfolge eine M-Folge und das Schieberegister maximal. Es ist eine wichtige Aufgabe maximale Schieberegister zu finden.
  • Zwei. Spezialfälle des allgemeinen rückgekoppelten Schieberegisters FSR(F) sind von besonderem Interesse. Der Fall bei dem die Rückkopplungsfunktion F die Form
    Figure 00150001
    hat, wobei die Koeffizienten aij entweder 0 oder 1 sind. In diesem Fall spricht man von einer quadratischen Rückkopplungsfunktion als Beispiel für eine nichtlineare Rückkopplungsfunktion und die Bezeichnung quadratisch überträgt sich auch auf das Schieberegister.
  • Der andere Spezialfall liegt vor, wenn die Rückkopplungsfunktion F linear ist. Dann hat F die Form F(x0, x1, ..., xn-1) = a0x0 + a1x1 + ... + an-1xn-1,wobei die auftretenden Koeffizienten ai wieder gleich 0 oder 1, also Elemente aus GF(2) sind. In diesem Fall spricht man von einem linearen oder linear rückgekoppelten Schieberegister und verwendet für dieses die Abkürzung LFSR (linear feedback shift register). Beachte, dass sowohl die linear rückgekoppelten als auch die quadratisch rückgekoppelten Schieberegister homogen sind.
  • Ein n-stufiges linear rückgekoppeltes Schieberegister wird üblicherweise durch ein binäres Polynom f(x) vom Grad n in einer Variablen x charakterisiert. Man nennt dieses Polynom f das charakteristische Polynom des linear rückgekoppelten Schieberegisters. Für das Schieberegister schreibt man dann LFSR (f).
  • Die Rückkopplungsfunktion F(x0, x1, ..., xn-1) eines linear rückgekoppelten Schieberegisters ist ein Polynom in n Variablen x0, x1, ..., xn-1 und vom Grad 1. Demgegenüber ist das charakteristische Polynom f(x) desselben linearen Schieberegisters ein Polynom nur einer Variablen, nämlich der Variablen x, aber vom Grad n. Es gilt f(x) = xn + F(1, x, x2, ..., xn-1).
  • Die Nichtlinearität der Rückkopplungsfunktion kann somit durch relativ beliebige Ausgestaltungen der Rückkopplungsfunktion F durchgeführt werden. Hierzu wird es prinzipiell genügen, lediglich die Ausgangssignale von zwei Speicherzellen Di und Di+1 miteinander zu multiplizieren, woraus ein quadratisches Schieberegister entstehen würde. Selbstverständlich können auch mehr als zwei Speicherzellenausgänge miteinander multipliziert oder irgendeiner nicht-linearen Funktion unterzogen werden. Prinzipiell kann jedoch auch eine Rückkopplung mit nur einem Ausgangssignal einer einzigen Speicherzelle durchgeführt werden, indem z. B. lediglich das Ausgangssignal der Speicherzelle D0 rückgekoppelt wird, in die Funktion F(x0) eingespeist wird und das Ausgangssignal dieser Funktion z. B. in die Speicherzelle Dn-1 eingangsseitig eingespeist wird. Eine solche nicht-lineare Funktion mit nur einem einzigen Wert wäre beispielsweise eine Inversion, also eine logisch NOT-Funktion. Die nicht-lineare Funktion könnte jedoch auch irgendeine andere Funktion sein, beispielsweise eine nicht-lineare Zuordnungsfunktion oder eine kryptographische Funktion.
  • Wie es bereits ausgeführt worden ist, ist die erfindungsgemäße Vorrichtung zur Erzeugung einer langen Folge von Bits oder allgemeiner ausgedrückt von Elementen aus einem endlichen Körper dahingehend vorteilhaft, dass sie zum einen mit relativ geringem Hardwareaufwand auskommt und zum anderen Folgen mit günstigen Eigenschaften erzeugt. Solche günstigen Eigenschaften sind eine hohe Periodenlänge, eine hohe lineare Komplexität, gute Verteilungseigenschaften, eine ideale polynomielle Komplexität (maximum oder complexity). Daher ist die erfindungsgemäße Vorrichtung zur Erzeugung von Schlüsselfolgen auch für den Einsatz in einem Stream Cipher geeignet. Ferner kann sich auch als parametrisierbarer Pseudozufallszahlen-Generator (Pseudo Random Number Generator, PRNG) verwendet werden.
  • Wie es bereits ausgeführt worden ist, basiert die erfindungsgemäße Lösung auf nichtlinearen rückgekoppelten Schieberegistern (Non Linear Feedback Shift Registers, NLFSR). Hierbei werden vorzugsweise solche NLFSRs benutzt, die eine Rückkopplungsfunktion haben, die durch relativ dünn besetzte Rekursionsformeln beschrieben werden kann, was zu einer billigen Realisierung in Hardware durch die geringere Anzahl von Gattern führt. Ferner werden solche Schieberegister mit nichtlinearer Rückkopplung bevorzugt, deren Ausgabefolgen eine hohe Periodenlänge haben. Bezüglich der dünn besetzten Rekursionsformel sei darauf hingewiesen, dass solche Rekursionsformeln bevorzugt werden, bei denen die Zustände von weniger als der Hälfte oder gleich der Hälfte der Speicherzellen eingehen. So würden bei einem Schieberegister mit z. B. 10 Speicherzellen lediglich die jeweiligen Ausgangsfolgen von 5 Speicherzellen oder weniger als 5 Speicherzellen in die nichtlineare Rückkopplungsfunktion eingehen.
  • Wenn ein erfindungsgemäßes nichtlineares Schieberegister genau N Flip-Flops (als Ausgestaltung einer Speicherzelle) hat, dann kann die Ausgabefolge maximal die Periodenlänge 2N haben, wenn der binäre Fall betrachtet wird, bzw. qN im allgemeinen Fall eines zugrunde liegenden endlichen Körpers der Ordnung = Größe q. Schieberegister dieser maximal möglichen Periode sind jedoch für die vorliegende Erfindung nur suboptimal. Es wird bevorzugt, Schieberegister mit nichtlinearer Rückkopplung einzusetzen, deren erzeugte Folgen kleiner als die maximal mögliche Folge sind, also Schieberegister mit nichtlinearer Rückkopplung, die Folgen der Periodenlänge 2N-1 bzw. qN-1 erzeugen, wobei auch etwas kleinere Periodenlängen ebenfalls noch bevorzugt sind, nämlich beispielsweise Perioden, die größer oder gleich 2N-1 sind.
  • Erfindungsgemäß umfasst nun ein solches nichtlineares Schieberegister mit N Flip-Flops N Ausgänge. Wie es anhand von 3 gezeigt wurde, kann jeder Ausgang mit einem Schalter versehen werden, der geöffnet oder geschlossen werden kann.
  • Wenn alle Schalter geschlossen sind, liegen also N Outputfolgen vor. Diese werden termweise mit einem festen Körperelement ci multipliziert, und die so erzeugten Folgen werden durch ein XOR-Gatter 103a miteinander verknüpft.
  • Anders ausgedrückt wird das nichtlineare Schieberegister mit einer parametrisierbaren linearen Feedforward-Funktion versehen. Die erfindungsgemäße Zahlengeneratorvorrichtung besteht aus mehreren Schieberegistern mit nichtlinearer Rückkopplung, deren Längen vorzugsweise paarweise teilerfremd sind. Dies bedeutet, dass der größte gemeinsame Teiler zwischen den zwei Anzahlen N, M von zwei Schieberegistern 10, 20 (1) höchstens gleich 1 ist. Jedes Schieberegister mit nichtlinearer Rückkopplung hat ferner eine parametrisierbare lineare Feedforward-Logik. Die Ausgangsfolgen aus den verschiedenen Feedforward-Logiken werden dann mit Hilfe der Boolsche Kombinations-Funktion, die vorzugsweise in der Kombinationseinrichtung 12 (1) vorhanden ist, zur endgültigen Schlüsselfolge bzw. Pseudozufallsfolge miteinander kombiniert.
  • Das erfindungsgemäße Konzept, also die erfindungsgemäße Vorrichtung, das erfindungsgemäße Verfahren und das erfindungsgemäße Computer-Programm, hat folgende Vorteile: Die Vorrichtung ist immun gegenüber Attacken, die den XL-Algorithmus anwenden (siehe Punkt 2).
  • Die Vorrichtung ist parametrisierbar: Die Belegung der Zellen aller vorkommenden NLFSRs macht die kryptographischen Schlüssel aus (oder das Seed, im Kontext einer Pseudozufallszahlengenerierung). Die Stellung der Schalter der Ausgänge aus den Zellen der einzelnen NLFSRs macht die Parametrisierbarkeit aus.
  • Man kann beweisen, dass die Ausgabefolgen aus der Feedforward-Logik eines solchen NLFSRs im Allgemeinen dieselbe hohe Periodenlänge und dieselbe (hohe) lineare Komplexität haben, wie die direkte Ausgabefolge aus dem NLFSR.
  • Man kann ebenfalls beweisen, dass die Ausgabefolgen aus der Feedforward-Logik gute statistische Eigenschaften haben, vorausgesetzt dass man nur etwa die erste Hälfte der Zellen des NLFSRs ausgibt und der linearen Feedforward-Logik zuführt. Dann haben die Ausgabefolgen im binären Fall gleich viele Nullen und Einsen. Die Paare (0, 0), (0, 1), (1, 0) und (1, 1) kommen ebenfalls innerhalb einer Periode gleich oft vor. Dasselbe gilt für alle möglichen k-Tupel, sofern k nicht größer ist als N/2. Diese idealen Verteilungseigenschaften gelten auch im allgemeinen Fall eines endlichen Körpers der Ordnung q in entsprechender Weise.
  • Die Ausgabefolgen aus den Feedforward-Logiken besitzen im Allgemeinen den idealen Wert der Maximum Order-Komplexität. Wenn das NLFSR genau N Zellen hat, dann hat die direkte Ausgabefolge die Maximum Order-Komplexität N. Die Ausgabefolgen aus der Feedforward-Funktion haben dagegen im Allgemeinen die Maximum Order-Komplexität N/2. (Eine echte Zufallsfolge der Länge 2N würde ebenfalls mit hoher Wahrscheinlichkeit die Maximum Order-Komplexität 2N haben.)
  • Die erfindungsgemäßen Zahlengeneratoren haben somit vorzugsweise spezielle nichtlineare rückgekoppelte Schieberegister mit konfigurierbaren Feedforward-Logiken, deren Ausgabefolgen dann mit Hilfe einer Boolschen Kombinations-Funktion miteinander termweise kombiniert werden, um die endgültige Folge zu erzeugen. Diese Folge wird dann zum Verschlüsseln im Sinne der Vigenere-Chiffre verwendet oder dient als Pseudozufallsfolge für andere Dinge als die Verschlüsselung, nämlich für Simulationszwecke, etc.
  • Wie es bereits ausgeführt worden ist, kann die erfindungsgemäße Vorrichtung Folgen von Elementen aus einem endlichen Körper Fq erzeugen. Für den wichtigen Spezialfall gilt q = 2, d. h. Fq = F2 = GF(2). Die Elemente des endlichen Körpers F2 sind 0 oder 1, also Bits in dem binären Fall.
  • In den Figuren sind die Rückkopplungsfunktionen Funktionen von Fq N nach Fq gezeigt. Das heißt, dass die Feedback-Logik durch arithmetische Operationen im endlichen Körper Fq dargestellt werden kann. N ist hierbei die Anzahl der Speicherzellen eines Schieberegisters. N heißt auch die Länge des Schieberegisters. Jede Speicherzellen kann ein Element aus Fq speichern.
  • Wie es ausgeführt worden ist, werden solche nichtlinearen Schieberegister zugrunde gelegt, deren direkte Outputfolgen die Periodenlänge qN-1 haben, wobei N die Länge des Schieberegisters sei. Ferner wird bevorzugt, dass die Länge des Schieberegisters paarweise teilerfremd sind. Des weiteren wird eine lineare Feedforward-Logik bevorzugt. Wenn alle Schalter geschlossen sind, gilt: V(x0, x1, ..., xN-1) = c0x0 + c1x1 + ... + CN-1xN-1.
  • Die Koeffizienten c0, c1, ..., cN-1 sind Elemente aus Fq.
  • Abhängig von den Gegebenheiten kann das erfindungsgemäße Verfahren zum Erzeugen von einer Folge von Zahlen in Hardware oder in Software implementiert werden. Die Implementierung kann auf einem digitalen Speichermedium, insbesondere einer Diskette oder CD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken können, dass das Verfahren ausgeführt wird. Allgemein besteht die Erfindung somit auch in einem Computer-Programm-Produkt mit einem auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Computer-Programm-Produkt auf einem Rechner abläuft. In anderen Worten ausgedrückt kann die Erfindung somit als ein Computer-Programm mit einem Programm code zur Durchführung des Verfahrens realisiert werden, wenn das Computer-Programm auf einem Computer abläuft.
  • 10
    erstes Schieberegister
    12
    zweites Schieberegister
    14
    Zahlengeneratorausgang
    20
    zweites Schieberegister
    30
    drittes Schieberegister
    40
    viertes Schieberegister
    51
    Speicherzelle
    52
    Speicherzelle
    53
    Speicherzelle
    54
    Speicherzelle
    55
    Initialisierungseinrichtung
    56
    Ausgang
    57
    erste ODER-Verknüpfung
    58
    zweite ODER-Verknüpfung
    59a
    erste Rückkopplungsleitung
    59b
    zweite Rückkopplungsleitung
    59c
    dritte Rückkopplungsleitung
    62a, 62b, 62c, 62d
    Ausgänge der linearen Schieberegister
    81, 82, 83, 84
    lineare Schieberegister
    101
    nichtlineare Rückkopplungseinrichtung
    102
    Speicherzelle der Anzahl von Speicherzellen
    102a
    niederstwertige Speicherzelle
    102b
    höchstwertige Speicherzelle
    103
    Kombinationseinrichtung
    103a
    XOR-Gatter
    103b
    Schalter
    103c
    Gewichtungsfaktor
    104
    erste Datenfolge
    203
    Kopplungseinrichtung des zweiten Schieberegisters
    204
    zweite Datenfolge
    212
    UND-Gatter
    213
    UND-Gatter
    214
    XOR-Gatter
    215
    XOR-Gatter
    216
    Invertierer
    218
    XOR-Gatter
    219
    XOR-Gatter
    303
    Kopplungseinrichtung des dritten Schieberegisters
    304
    dritte Datenfolge
    403
    Kopplungseinrichtung des vierten Schieberegisters
    404
    vierte Datenfolge

Claims (20)

  1. Vorrichtung zum Erzeugen einer Folge von Zahlen, mit folgenden Merkmalen: einem ersten Schieberegister (10) mit einer nichtlinearen Rückkopplung (101), einer ersten Anzahl von Speicherzellen 102 und einem ersten Ausgang (104), der mit der ersten Anzahl von Speicherzellen durch eine erste Kopplungseinrichtung (103) gekoppelt ist; einem zweiten Schieberegister (20) mit einer nichtlinearen Rückkopplung, einer zweiten Anzahl von Speicherzellen und einem zweiten Ausgang (204), der mit der zweiten Anzahl von Speicherzellen durch eine zweite Kopplungseinrichtung gekoppelt ist; und einer Kombinationseinrichtung (12) zum Kombinieren einer Datenfolge an dem ersten Ausgang (104) und einer Datenfolge an dem zweiten Ausgang (204), um die Folge von Zahlen zu erhalten.
  2. Vorrichtung nach Anspruch 1, bei dem die erste Kombinationseinrichtung (103) oder die zweite Kombinationseinrichtung eine lineare Kombinationseinrichtung ist.
  3. Vorrichtung nach Anspruch 1 oder 2, bei der das erste Schieberegister (10) oder das zweite Schieberegister (20) ausgebildet sind, dass die erste Anzahl von Speicherzellen und die zweite Anzahl von Speicherzellen paarweise teilerfremd sind, d. h. keinen gemeinsamen Teiler außer „1" haben.
  4. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die erste Anzahl und die zweite Anzahl größer oder gleich 5 sind.
  5. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der das erste Schieberegister oder das zweite Schieberegister ausgebildet sind, dass eine Ausgabefolge des Schieberegisters an einer Speicherzelle eine Periodenlänge hat, die kleiner oder gleich 2N-1 ist, wobei N die Anzahl der Speicherzellen des Schieberegisters ist.
  6. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der das erste Schieberegister oder das zweite Schieberegister ausgebildet ist, dass eine Ausgabefolge des Schieberegisters eine Periodenlänge hat, die größer oder gleich 2(N-1) ist, wobei N die Anzahl der Speicherzellen des Schieberegisters ist.
  7. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der das erste Schieberegister (10) oder das zweite Schieberegister (20) ausgebildet sind, um eine Rückkopplungseinrichtung (101) zu haben, die ausgebildet ist, um Ausgängen von wenigstens zwei Speicherzellen des Schieberegisters miteinander zu kombinieren.
  8. Vorrichtung nach Anspruch 7, bei der das erste Schieberegister (10) oder das zweite Schieberegister (20) ausgebildet ist, um eine Rückkopplungseinrichtung (101) zu haben, die ausgebildet ist, um Ausgänge von weniger oder gleich N/2 Speicherzellen miteinander zu kombinieren, wobei N die Anzahl von Speicherzellen des Schieberegisters ist.
  9. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die erste Kombinationseinrichtung (101) oder die zweite Kombinationseinrichtung ausgebildet ist, um Ausgabefolgen von wenigstens zwei Speicherzellen oder von den Ausgabefolgen der wenigstens zwei Speicherzellen abgeleitete Folgen miteinander zu kombinieren.
  10. Vorrichtung nach Anspruch 9, bei der die erste Kombinationseinrichtung (101) oder die zweite Kombinationseinrichtung ausgebildet ist, um die Ausgangsfolgen oder die von den Aus gangsfolgen abgeleiteten Folgen bitweise durch ein XOR-Gatter (103a) oder ein XNOR-Gatter zu kombinieren, um die Folge von Zahlen zu erhalten.
  11. Vorrichtung nach Anspruch 9 oder 10, bei der das erste Schieberegister (10) oder das zweite Schieberegister (20) so ausgebildet sind, dass die Speicherzellen in Serie geschaltet sind, wobei eine niederstwertige Speicherzelle (102a) und eine höchstwertige Speicherzelle (102b) existieren, wobei ein Ausgang einer Rückkopplungseinrichtung (101) mit einem Eingang der höchstwertigen Speicherzelle gekoppelt ist, und wobei die Kopplungseinrichtung (103) ausgebildet ist, um nur niederwertige Speicherzellen nicht aber höherwertige Speicherzellen miteinander zu koppeln.
  12. Vorrichtung nach Anspruch 11, bei der die Kopplungseinrichtung ausgebildet ist, um höchstens N-3 oder weniger höherwertige Speicherzellen miteinander zu koppeln und wenigstens drei niederwertige Speicherzellen nicht zu koppeln.
  13. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Kopplungseinrichtung (103) ausgebildet ist, um eine Ausgabefolge einer Speicherzelle mit einer Zahl aus einem endlichen Körper, in dem die Folge von Zahlen definiert ist, zu gewichten.
  14. Vorrichtung nach einem der Ansprüche 9 bis 12, bei der die Kopplungseinrichtung (103a) ausgebildet ist, um eine Ausgangsfolge mit einer Zahl aus dem endlichen Körper zu gewichten, um die von der Ausgangsfolge abgeleitete Folge von Zahlen zu erhalten.
  15. Vorrichtung nach Anspruch 13 oder 14, bei der die erste Kopplungseinrichtung (103) oder die zweite Kopplungseinrichtung ausgebildet ist, um für die Folge von Zahlen zu Zwecken der Gewichtung eine feste Zahl zu verwenden.
  16. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Kombinationseinrichtung (12) ausgebildet ist, um die Datenfolge an dem ersten Ausgang (104) und die Datenfolge an dem zweiten Ausgang (204) termweise durch eine Boolsche Kombinationsfunktion zu verknüpfen.
  17. Vorrichtung nach Anspruch 16, bei der die erste Datenfolge (104) und die zweite Datenfolge (204) binär sind, und bei der die Kombinationseinrichtung (12) ausgebildet ist, um wenigstens ein Gatter aus der Gruppe von Gattern zu verwenden, die ein AND-Gatter, ein NAND-Gatter, ein OR-Gatter, ein NOR-Gatter, ein XOR-Gatter und ein XNOR-Gatter aufweist.
  18. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Kopplungseinrichtung (103) ausgebildet ist, um für eine Speicherzelle (102) einen Schalter (103b) zu haben, um Ausgabefolgen der Speicherzellen abhängig von einem Steuersignal für den Schalter (103b) zu Kopplungszwecken zu verwenden oder nicht.
  19. Verfahren zum Erzeugen einer Folge von Zahlen, mit folgenden Schritten: Erzeugen einer ersten Datenfolge mit einem ersten Schieberegister (10) mit einer nichtlinearen Rückkopplung (101), einer ersten Anzahl von Speicherzellen 102 und einem ersten Ausgang (104), der mit der ersten Anzahl von Speicherzellen durch eine erste Kopplungseinrichtung (103) gekoppelt ist; Erzeugen einer zweiten Datenfolge mit einem zweiten Schieberegister (20) mit einer nichtlinearen Rückkopplung, einer zweiten Anzahl von Speicherzellen und einem zweiten Ausgang (204), der mit der zweiten Anzahl von Speicherzellen durch eine zweite Kopplungseinrichtung gekoppelt ist; und Kombinieren (12) einer Datenfolge an dem ersten Ausgang (104) und einer Datenfolge an dem zweiten Ausgang (204), um die Folge von Zahlen zu erhalten.
  20. Computer-Programm mit einem Programmcode zum Ausführen des Verfahrens zum Erzeugen einer Folge von Zahlen nach Patentanspruch 19, wenn das Computer-Programm auf einem Rechner abläuft.
DE102004037814A 2004-08-04 2004-08-04 Vorrichtung und Verfahren zum Erzeugen einer Folge von Zahlen Expired - Fee Related DE102004037814B4 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102004037814A DE102004037814B4 (de) 2004-08-04 2004-08-04 Vorrichtung und Verfahren zum Erzeugen einer Folge von Zahlen
FR0508142A FR2875316B1 (fr) 2004-08-04 2005-07-29 Dispositif et procede pour produire une suite de nombres
US11/197,776 US20060161610A1 (en) 2004-08-04 2005-08-03 Device and method for generating a sequence of numbers
KR1020050071469A KR100735953B1 (ko) 2004-08-04 2005-08-04 일련 번호 생성 장치, 그 방법 및 컴퓨터 판독가능 저장매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004037814A DE102004037814B4 (de) 2004-08-04 2004-08-04 Vorrichtung und Verfahren zum Erzeugen einer Folge von Zahlen

Publications (2)

Publication Number Publication Date
DE102004037814A1 true DE102004037814A1 (de) 2006-03-16
DE102004037814B4 DE102004037814B4 (de) 2010-12-16

Family

ID=35853321

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004037814A Expired - Fee Related DE102004037814B4 (de) 2004-08-04 2004-08-04 Vorrichtung und Verfahren zum Erzeugen einer Folge von Zahlen

Country Status (4)

Country Link
US (1) US20060161610A1 (de)
KR (1) KR100735953B1 (de)
DE (1) DE102004037814B4 (de)
FR (1) FR2875316B1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220085994A1 (en) * 2020-09-15 2022-03-17 Globalfoundries Inc. Public-private encryption key generation using pcell parameter values and on-chip physically unclonable function values

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL188089A (en) * 2007-12-12 2013-02-28 Nds Ltd Bit generator
WO2011102866A2 (en) * 2009-11-25 2011-08-25 Aclara RF Systems Inc. Random number generator
US10514892B2 (en) 2013-07-26 2019-12-24 Infineon Technologies Ag Apparatus and method for detecting integrity violation
KR101717946B1 (ko) * 2015-09-24 2017-03-20 한국철도기술연구원 디지털 신호 처리 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3884048T2 (de) * 1987-05-12 1994-05-05 Communications Satellite Corp Nichtlinearer Zufallsfolgegenerator.
JP2000020284A (ja) * 1998-06-26 2000-01-21 Toyo Commun Equip Co Ltd 疑似乱数発生装置
US20030194087A1 (en) * 1998-06-25 2003-10-16 Jansen Cornelis J.A. Synchronous stream cipher
DE10229999A1 (de) * 2002-07-03 2004-01-15 Mark Diener Metallbandsäge mit aufgehängtem Sägerahmen

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3911330A (en) * 1974-08-27 1975-10-07 Nasa Nonlinear nonsingular feedback shift registers
US5365585A (en) * 1993-08-30 1994-11-15 Motorola, Inc. Method and apparatus for encryption having a feedback register with selectable taps
US6707914B1 (en) * 1999-11-29 2004-03-16 Cisco Technology, Inc. System and method for encrypting information within a communications network
US6763363B1 (en) * 1999-12-02 2004-07-13 Honeywell International Inc. Computer efficient linear feedback shift register
DE10216240A1 (de) * 2002-04-12 2003-10-30 Infineon Technologies Ag Verfahren und Vorrichtung zur Berechnung eines iterierten Zustands einer rückgekoppelten Schieberegisteranordnung
US7571200B2 (en) * 2002-04-24 2009-08-04 Hewlett-Packard Development Company, L.P. Seedable pseudo-random number generator
DE10339999B4 (de) * 2003-08-29 2005-07-14 Infineon Technologies Ag Pseudozufallszahlengenerator

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3884048T2 (de) * 1987-05-12 1994-05-05 Communications Satellite Corp Nichtlinearer Zufallsfolgegenerator.
US20030194087A1 (en) * 1998-06-25 2003-10-16 Jansen Cornelis J.A. Synchronous stream cipher
JP2000020284A (ja) * 1998-06-26 2000-01-21 Toyo Commun Equip Co Ltd 疑似乱数発生装置
DE10229999A1 (de) * 2002-07-03 2004-01-15 Mark Diener Metallbandsäge mit aufgehängtem Sägerahmen

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
N. Courtois and W. Meier: Algebraic attacks on stream ciphers with linear feedback. Advances in Cryptology EUROCRYPT 2000 (E. Biham, ed.), Lec- ture Notes in Computer Science, val. 2656, pp. 345-359, Springer-Verlag *
Shamir, Patarin, Courtois, Klimov: "Efficient Algorithms for Solving Overdefined Systems of Multivariate Polynomial Equations". Advances in Cryptology EUROCRYPT 2000 (B. Preneel, ed.), Lec- ture Notes in Computer Science, val. 1807, S. 392- 407, Springer-Verlag, 2000
Shamir, Patarin, Courtois, Klimov: "Efficient Algorithms for Solving Overdefined Systems of Multivariate Polynomial Equations". Advances in Cryptology EUROCRYPT 2000 (B. Preneel, ed.), Lec- ture Notes in Computer Science, val. 1807, S. 392-407, Springer-Verlag, 2000 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220085994A1 (en) * 2020-09-15 2022-03-17 Globalfoundries Inc. Public-private encryption key generation using pcell parameter values and on-chip physically unclonable function values
US11722298B2 (en) * 2020-09-15 2023-08-08 Globalfoundries U.S. Inc. Public-private encryption key generation using Pcell parameter values and on-chip physically unclonable function values

Also Published As

Publication number Publication date
KR20060049298A (ko) 2006-05-18
DE102004037814B4 (de) 2010-12-16
US20060161610A1 (en) 2006-07-20
FR2875316B1 (fr) 2009-05-22
KR100735953B1 (ko) 2007-07-06
FR2875316A1 (fr) 2006-03-17

Similar Documents

Publication Publication Date Title
DE10357782B3 (de) Vorrichtung und Verfahren zum Erzeugen von Zufallszahlen mit einem Pseudozufallsgenerator
DE10339999B4 (de) Pseudozufallszahlengenerator
DE10201449C1 (de) Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
DE60222052T2 (de) Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA)
DE10347455B4 (de) Pseudozufallszahlengenerator für einen Stream Cipher
DE102013213354A1 (de) Zufallsbitstromgenerator mit garantierter mindestperiode
DE102004013480B4 (de) Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen
EP2446580B1 (de) Vorrichtung und verfahren zur bildung einer signatur
DE10304451B3 (de) Modulare Exponentiation mit randomisiertem Exponenten
DE102004042826A1 (de) Verfahren und Vorrichtung zur Datenverschlüsselung
DE3138698C2 (de)
DE102004037814B4 (de) Vorrichtung und Verfahren zum Erzeugen einer Folge von Zahlen
EP3215931B1 (de) Vorrichtung und verfahren zur multiplikation zur erschwerung von seitenkanalangriffen
EP1324188A2 (de) Verfahren zum Multiplizieren zweier Faktoren aus dem Galois-Feld sowie Multiplizierer zum Durchführen des Verfahrens
EP1999571B1 (de) Verfahren und vorrichtung zur reduktion eines polynoms in einem binären finiten feld, insbesondere im rahmen einer kryptographischen anwendung
EP1556754B1 (de) Vorrichtung und verfahren zum erzeugen einer pseudozufälligen folge von zahlen
DE102004013481B4 (de) Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen mit externer Auffrischung
DE10303723B4 (de) Vorrichtung und Verfahren zum Berechnen von verschlüsselten Daten aus unverschlüsselten Daten oder von unverschlüsselten Daten aus verschlüsselten Daten
DE10201450B4 (de) Carry-Skip-Addierer für verschlüsselte Daten
DE10319508B4 (de) Vorrichtung und Verfahren zum Erzeugen einer Folge von Zahlen
EP0146865B1 (de) Verfahren zum Erzeugen zufallsähnlicher Binärzeichenfolgen
DE60302249T2 (de) Aes mixcolumn transformation
DE102004042756B3 (de) Verfahren und Anordnung zur Erzeugung von Pseudozufallszahlen
EP1044533A1 (de) Verschlüsselungsverfahren zum ausführen von kryptographischen operationen
DE102022102594A1 (de) Integrierte schaltung zum erzeugen von zufallsvektoren

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R020 Patent grant now final

Effective date: 20110316

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee