DE102004013480A1 - Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen - Google Patents

Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen Download PDF

Info

Publication number
DE102004013480A1
DE102004013480A1 DE102004013480A DE102004013480A DE102004013480A1 DE 102004013480 A1 DE102004013480 A1 DE 102004013480A1 DE 102004013480 A DE102004013480 A DE 102004013480A DE 102004013480 A DE102004013480 A DE 102004013480A DE 102004013480 A1 DE102004013480 A1 DE 102004013480A1
Authority
DE
Germany
Prior art keywords
memory cells
random number
feedback
output
sequence
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
DE102004013480A
Other languages
English (en)
Other versions
DE102004013480B4 (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 DE102004013480A priority Critical patent/DE102004013480B4/de
Priority to US11/084,725 priority patent/US7979482B2/en
Priority to FR0502689A priority patent/FR2868628B1/fr
Publication of DE102004013480A1 publication Critical patent/DE102004013480A1/de
Application granted granted Critical
Publication of DE102004013480B4 publication Critical patent/DE102004013480B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/583Serial finite field implementation, i.e. serial implementation of finite field arithmetic, generating one new bit or trit per step, e.g. using an LFSR or several independent LFSRs; also includes PRNGs with parallel operation between LFSR and outputs

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

Ein Zufallszahlengenerator umfasst eine Mehrzahl von seriell angeordneten Speicherzellen (100, 101, 102, 103, 104), eine Rückkopplungseinrichtung (105) zum Erzeugen eines Rückkopplungssignals und zum Einspeisen des Rückkopplungssignals in eine (104) der Speicherzellen und eine Zufallszahlenausgabeeinrichtung (106), die ausgebildet ist, um Zustände einer Gruppe von wenigstens zwei Speicherzellen zu kombinieren, um eine Ausgabefolge zu erhalten. Durch Erzeugen mehrerer Ausgabefolgen AF¶0¶, AF¶1¶, AF¶2¶, ..., AF¶k¶ durch Kombination von Zuständen verschiedener Speicherzellen können untereinander stark unterschiedliche Folgen erzeugt werden, deren Anzahl größer als die Anzahl der Speicherzellen ist, so dass eine sichere und effiziente Busverschlüsselung erreichbar ist.

Description

  • Die vorliegende Erfindung bezieht sich auf Pseudozufallszahlengeneratoren und insbesondere auf Pseudozufallszahlengeneratoren, die für Schlüsselgeneratoren bei der Busverschlüsselung geeignet sind.
  • Ein bekannter Zufallszahlengenerator ist in 12 dargestellt. Der Pseudozufallszahlengenerator von 12, der auch als lineares rückgekoppeltes Schieberegister bezeichnet wird, umfasst eine Mehrzahl von Speicherelementen 51, 52, 53, 54, die in 12 von 0 bis n durchnumeriert sind. Die Speicherzellen sind über eine Initialisierungseinrichtung 55 auf einen Startwert initialisierbar. Die Speicherzellen 5154 bilden insgesamt eine Vorwärtskopplungseinrichtung, während das lineare Schieberegister, das durch die Speicherzellen 5154 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 12 beispielhaft dargestellt ist. Der Ausgangswert der letzten Kombinationseinrichtung 58 wird in die Speicherzelle n, die in 12 mit 54 bezeichnet ist, eingespeist.
  • Das in 12 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 12 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 12 dargestellte lineare rückgekoppelte Schieberegister liefert somit eine Folge von Zahlen ansprechend 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 12 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 12 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 12 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 werden, 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 ver tretbarer 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.
  • Zufallszahlengeneratoren können beispielsweise zur Busverschlüsselung eingesetzt werden. Hierzu wird auf 13 Bezug genommen, welche ein herkömmliches Busverschlüsselungskonzept zeigt. An einem Busanfang muss ein über den Bus zu übertragendes Bit mi verschlüsselt werden, um während der Übertragung auf der Busleitung geschützt zu sein. Dann, am Busende muss das verschlüsselte Bit wieder zurück in das unverschlüsselte Bit gebracht werden, damit das Bit mi weiterverarbeitet werden kann. Der Busanfang kann beispielsweise der Ausgang eines Prozessors sein, während das Busende der Eingang in einen Speicher sein kann, in dem das Bit dann typischerweise in eine „härtere" Verschlüsselungsart umverschlüsselt wird, um schließlich im Speicher gespeichert zu werden. Alternativ kann der Busanfang natürlich auch eine Speicher-Ausgabeschnittstelle sein, und kann das Busende ein Eingang eines Prozessors sein.
  • Generell geht man davon aus, dass Bits, die auf Busleitungen übertragen werden, dort besonders gefährdet sind, so dass die Busverschlüsselung eingesetzt wird. Als typische Verschlüsselungseinrichtung wird ein XOR-Gatter verwendet, das an seinem ersten Eingang ein zu verschlüsselndes Nachrichtenbit mi ent hält, und das an seinem zweiten Eingang ein Schlüsselbit ki erhält, das typischerweise von einem Zufallszahlengenerator erzeugt wird. Typischerweise ist die zeitliche Folge von Schlüsselbits ki, wobei i der Zeitindex ist, eine Pseudozufallszahlenfolge, also eine Zahlenfolge, die wie ein Zufallszahlenfolge aussieht, die jedoch insofern deterministisch ist, dass sie reproduzierbar ist. Typische Zufallszahlengeneratoren sind, wie es später noch ausgeführt wird, rückgekoppelte Schieberegister, die ausgehend von einem definierten Anfangszustand (Seed) eine definierte Ausgangsfolge erzeugen, die eine bestimmte Periodendauer hat.
  • Bei der Busverschlüsselung wird somit, wie es in 13 gezeigt ist, am Anfang und am Ende des Busses der selbe Schlüsselfolgengenerator identischer Bauart eingesetzt, wobei die Schlüsselfolgengeneratoren – abgesehen von einer oft vernachlässigbaren Verzögerung, die das verschlüsselte Bit ci aufgrund der Übertragung über einen Bus einer bestimmten Länge „erleidet" – synchron laufen.
  • Bisher wurde als Schieberegister ein Schlüsselfolgengenerator verwendet. Da ein Bus aus mehreren Busleitungen besteht, wie beispielsweise aus 32 Busleitungen, soll jede Busleitung mit einer Schlüsselfolge versorgt werden. Dieses Problem kann dadurch gelöst werden, dass für jede Busleitung eine Speicherzelle in einem rückgekoppelten Schieberegister vorgesehen und dass der Zustand jeder Speicherzelle – über der Zeit betrachtet – zum Verschlüsselungseingang einer Busverschlüsselungseinrichtung/Busentschlüsselungseinrichtung geliefert wird. Dies bedeutet, dass beispielsweise der Zustand der siebten Speicherzelle über der Zeit als Schlüsselfolge zur Verschlüsselung der achten Busleitung dient, dass beispielsweise der Zustand der sechsten Speicherzelle über der Zeit als Schlüs selfolge zum Verschlüsseln der siebten Busleitung verwendet wird, etc.
  • Jede Zelle des Schieberegisters wird somit ausgegeben, wobei diese Ausgabefolge dann für die Verschlüsselung einer entsprechenden Busleitung verwendet wird.
  • Dies bedeutet jedoch, dass im wesentlichen immer die selbe Schlüsselfolge zur Verschlüsselung aller Busleitungen verwendet wurde, da die einzelnen Schlüsselfolgen ja nur verschobene Versionen ein und derselben Schieberegisterfolge sind.
  • Aus Sicherheitsaspekten ist dies natürlich dahin gehend nachteilhaft, dass der Angreifer dann, wenn er eine Schlüsselfolge ermittelt hat, mit dieser einen Schlüsselfolge durch zeitliche Verschiebung sozusagen alle weiteren Schlüsselfolgen, mit denen die anderen Busleitungen verschlüsselt sind, automatisch erhält.
  • Ein weiterer Nachteil besteht darin, dass Schieberegister benötigt werden, die wenigstens so viel Zellen haben, wie Busleitungen zu versorgen sind. Für einen 32 Bit breiten Bus wird also ein Schieberegister mit wenigstens 32 Schieberegisterzellen benötigt.
  • Zusammenfassend ist das beschriebene Konzept somit dahin gehend nachteilhaft, dass die Sicherheit der Verschlüsselung kritisch ist, nachdem alle Busleitungen mit der selben – nur zeitlich verschobenen – Folge verschlüsselt sind, und dass zudem ein Effizienzproblem im Hinblick auf den Chipflächenverbrauch existiert, da immer mindestens so viel Speicherzellen benötigt werden, wie Busleitungen vorhanden sind.
  • Insbesondere im Hinblick auf den Chipflächenbedarf sei darauf hingewiesen, dass dieser für in hohen Stückzahlen angebotene Produkte einen ganz erheblichen Kostenfaktor darstellt.
  • Neben dem Kostenfaktor existieren jedoch insbesondere auch für Chipkartenanwendungen weitere restriktive Anforderungen an den Chipflächenbedarf, da die Größe eines Chips durch den Anwender, also den Chipkartenhersteller vorgegeben ist. Typischerweise hat der Chiphersteller die Möglichkeit, nach seinen Bedürfnissen die zur Verfügung stehende Chipfläche auf Logikelemente, Speicherelemente etc. aufzuteilen. Aufgrund hoher Rechenleistungen wird daher immer ein möglichst hoher Anteil an Arbeitsspeicher und Rechenpower benötigt, so dass, um insgesamt die Chipflächenkriterien zu erfüllen, jede Einsparung an jedem Element, wie beispielsweise einem Schieberegister-Pseudozufallszahlengenerator von großer Bedeutung ist.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, ein sicheres und effizientes Konzept um Erzeugen von Zufallszahlen zu schaffen.
  • Diese Aufgabe wird durch einen Zufallszahlengenerator nach Patentanspruch 1, ein Verfahren zum Erzeugen von Zufallszahlen nach Patentanspruch 17 oder ein Computerprogramm nach Patentanspruch 18 gelöst.
  • Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass die Speicherzellen-Ausgabefolgen nicht einfach gewissermaßen „so wie sie sind" zur Busverschlüsselung eingesetzt werden dürfen, sondern dass Ausgabefolgen einer Gruppe von wenigstens zwei Speicherzellen kombiniert werden müssen, so dass eine Ausgabefolge aus einer Folge von wenigstens zwei (zeitverschobenen) Ausgabefolgen der zwei Speicherzellen entsteht.
  • Wird ferner eine andere Ausgabefolge durch eine Kombination zweier unterschiedlicher Speicherzellen oder durch eine andere Kombination der selben Speicherzellen erzeugt, so sind die beiden erhaltenen Ausgabefolgen nicht nur zwei zueinander zeitverschobene, jedoch ansonsten identische Folgen, sondern voneinander deutlich unterschiedliche Pseudozufalls-Bitfolgen. Ermittelt ein Angreifer in diesem Fall eine Schlüsselfolge für eine Busleitung, so ist er noch lange nicht so weit, alle anderen Busleitungen entschlüsseln zu können, da er nicht weiß, aus welchen ursprünglichen Speicherzellen-Zuständen die Folge erzeugt worden ist, und welche Kombinationseinrichtung eingesetzt worden ist. Ein Angreifer kann somit nicht mehr ohne weiteres von einer dechiffrierten Folge auf die anderen dechiffrierten Folgen durch einfache Zeitverschiebung schließen wie im Stand der Technik, sondern er wird ermitteln müssen, welche Speicherzellen kombiniert worden sind, und wie kombiniert worden ist.
  • Nachdem es beliebige Möglichkeiten der Kombination durch ein beliebiges System an Logikgattern gibt, ist diese „Rückverfolgung" zur Entschlüsselung einer zweiten Ausgabefolge aufgrund einer irgendwie entschlüsselten ersten Ausgabefolge beliebig kompliziert.
  • Darüber hinaus ist das erfindungsgemäße Konzept wesentlich effizienter, da die Anzahl der Speicherzellen nicht gleich die Anzahl der Busleitungen sein muss, sondern da die Anzahl der Speicherzellen kleiner als die Anzahl der Busleitungen sein kann. So kann ohne weiteres ein Bus mit z. B. acht Busleitungen aus einem Schieberegister mit lediglich fünf Spei cherzellen versorgt werden. Dies stellt im Vergleich zum Stand der Technik, bei dem für die acht Busleitungen acht Speicherzellen benötigt wurden, bereits eine Einsparung um drei Speicherzellen dar, wobei zusätzlich noch die erzeugten acht Ausgabefolgen voneinander deutlich unterschiedlich sind und nicht, wie im Stand der Technik, zeitverschobene Versionen der selben Schieberegisterfolge sind.
  • Erfindungsgemäß werden also Ausgabefolgen der Zellen des vorzugsweise nicht-linearen maximal periodischen Schieberegisters nicht direkt zur Busverschlüsselung genutzt, sondern es werden einige wenige dieser Ausgabefolgen miteinander addiert (termweise, modulo 2), und die so gebildeten Summenfolgen werden dann für die Busverschlüsselung genutzt. Es sei darauf hingewiesen, dass die Summenfolgen unter rein kontrollierbaren Bedingungen, beispielsweise wenn die Anzahl der Schieberegisterzellen eine Primzahl ist, eine maximale Periode, eine maximale lineare Komplexität, ein ausgewogenes Null-1-Verhältnis und eine erhöhte polynomiale Komplexität haben.
  • Ferner ist es nun möglich, einen z. B. 32 Bit breiten Bus mit beispielsweise einem Schieberegister zu versorgen, das nur 11 Zellen hat, und zwar so, dass jede der 32 Busleitungen eine eigene Verschlüsselungsfolge bekommt, und dass keine zwei Verschlüsselungsfolgen verschobene Versionen voneinander sind.
  • Damit kann Hardware eingespart werden, nachdem in typischen Bussystemen dieser Zufallszahlengenerator nicht nur an einen einzigen Stelle vorkommt, sondern beispielsweise zehnmal oder noch häufiger an verschiedenen Stellen in identischer Form in einem Prozessor-Bussystem vorkommt.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen detailliert erläutert. Es zeigen:
  • 1 ein Blockschaltbild eines erfindungsgemäßen Zufallszahlengenerators;
  • 2a ein Blockschaltbild einer Komponente der Zufallszahlenausgabeeinrichtung gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung;
  • 2b ein verallgemeinertes Blockschaltbild einer alternativen Zufallszahlenausgabeeinrichtung gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung;
  • 3 ein Blockschaltbild eines bevorzugten Ausführungsbeispiels für einen Zufallszahlengenerator mit umschaltbarer nichtlinearer Rückkopplungsfunktion;
  • 4 ein Zufallszahlengenerator gemäß einem Ausführungsbeispiel der vorliegenden Erfindung im Kontext einer Busverschlüsselung;
  • 5a eine Prinzipdarstellung einer bekannten Busverschlüsselung am Beispiel einer einzigen Busleitung;
  • 5b eine Prinzipdarstellung einer bekannten Busverschlüsselung am Beispiel mehrerer Busleitungen;
  • 6 einen bevorzugten Aufbau eines Elementarschieberegisters mit nicht-linearer Rückkopplung;
  • 7 einen alternativen Aufbau für ein Elementarschieberegister mit nicht-linearer Rückkopplung;
  • 8 einen alternativen Aufbau für ein Elementarschieberegister mit nicht-linearer Rückkopplung;
  • 9 einen alternativen Aufbau für ein Elementarschieberegister mit nicht-linearer Rückkopplungseigenschaft;
  • 10 einen beispielhaften Aufbau für ein Elementarschieberegister mit nicht-linearer Rückkopplung;
  • 11 eine allgemeine Darstellung eines Elementarschieberegisters mit Speicherzellen in der Vorwärtskopplungseinrichtung und einer Rückkopplungsfunktion F;
  • 12 ein bekanntes lineares Schieberegister zur Erzeugung einer Zufallszahlenfolge; und
  • 13 eine Prinzipskizze der Busverschlüsselung.
  • Bevor detailliert anhand der 1 bis 4 auf bevorzugte Ausführungsbeispiele der vorliegenden Erfindung eingegangen wird, sei zunächst anhand der 5a, 5b das bekannte, im Hinblick auf das sicherheitsproblematische und im Hinblick auf die Effizienz ebenfalls problematische bekannte Konzept noch einmal dargestellt. So zeigt 5a eine Folge von Speicherzellen D0, D1, D2, ..., D5 sowie eine Busverschlüsselungseinrichtung 500, die bei dem Ausführungsbeispiel als XOR-Gatter ausgeführt ist. So spielt es keine Rolle, ob das Eingangsbit auf der Leitung links vom XOR-Gatter 500 ein verschlüsseltes oder ein unverschlüsseltes Bit ist. Ist es ein unverschlüsseltes Bit, so ist das Gatter 500 eine Verschlüsselungseinheit. Ist das Bit dagegen ein verschlüsseltes Bit, so ist das Gatter 500 eine Entschlüsselungseinrichtung, der an dem Schlüsseleingang 502 der Zustand der Speicherzelle D3 – über der Zeit betrachtet – zugeführt wird, um die Schlüsselfolge 502 zu erhalten, um das Bit am Ausgang der Einrichtung 500 in verschlüsselter bzw. entschlüsselter Form zu haben, je nachdem, wie es gewünscht ist.
  • Werden verschiedene Busleitungen benötigt, wie beispielsweise acht Busleitungen 504, so könnte das in 5b gezeigte Konzept verwendet werden, bei dem viele Busleitungen für die eine Verschlüsselungseinheit vorgesehen sind, wie beispielsweise die Verschlüsselungseinheit 508 für die achte Busleitung, wobei jede Verschlüsselungseinheit 500, 508 eine eigene Verschlüsselungsleitung 502, 504 umfasst.
  • Das in 5b gezeigte Schieberegister umfasst acht Schieberegisterzellen sowie eine Rückkopplungseinheit 8, welche typischerweise ein lineares Rückkopplungspolynom umfasst.
  • Erzeugt das Schieberegister, das in 5b gezeigt ist, somit am Ausgang der Speicherzelle D0 die Folge σ0 = k0, k1, k2, k3, ..., dann erzeugt die Speicherzelle d1, die in Verarbeitungseinrichtung hinter der Speicherzelle D0 ist, eine zeitverschobene Schieberegisterfolge mit k–1, k0, k1, k2, ...
  • Die Ausgabefolge der Speicherzelle d1 ist somit eine um ein Bit verschobene Version der Ausgabefolge der Speicherzelle D0, so dass die einzelnen Schlüsselfolgen zum Verschlüsseln der einzelnen Busleitungen sehr leicht voneinander ableitbar sind.
  • Erfindungsgemäß wird daher, um diese Nachteile zu unterbinden, das in 1 gezeigte Konzept verwendet. 1 zeigt einen Zufallszahlengenerator, der eine Mehrzahl von seriell angeordneten Speicherzellen 100, 101, 102, 103, 104 aufweist, wobei eine Verarbeitungsrichtung existiert, wie sie durch die Pfeile in 1 gezeigt ist. So ist die Speicherzelle 103 in Verarbeitungsrichtung hinter der Speicherzelle 104, jedoch in Verarbeitungsrichtung vor der Speicherzelle 102 angeordnet.
  • Ferner ist eine Rückkopplungseinrichtung 105 vorgesehen, wobei die Rückkopplungseinrichtung zum Erzeugen eines Rückkopplungssignals dient, das auf der rechten Seite der Rückkopplungseinrichtung 105 erzeugt und ausgegeben wird und in die Speicherzelle 104 eingespeist wird. Das erfindungsgemäße Zufallszahlengeneratorkonzept zeichnet sich durch eine Zufallszahlenausgabeeinrichtung 106 aus, die ausgebildet ist, um Zustände von einer Gruppe von wenigstens zwei Speicherzellen zu kombinieren, um eine oder mehrere Ausgabefolgen AF0, AF1, AF2, ... zu erhalten.
  • Eine beispielhafte Version der Zufallszahlenausgabeeinrichtung 106 ist z. B. in 2a gezeigt. Hierbei werden die Ausgabefolgen, die sich durch die zeitlich aufeinanderfolgenden Zustände der Speicherzellen D4 und D3 ergeben, mit einem XOR-Gatter kombiniert, um die Ausgabefolge Afi zu erzeugen, die einer Busverschlüsselungseinheit 500 zugeführt wird, um ein Klartextbit links von der Verschlüsselungseinheit 500 zu verschlüsseln, um es auf die Busleitungen übertragen zu können. Ist dagegen das zu bearbeitende Bit ein verschlüsseltes Bit, so ist die Einrichtung 500 eine Entschlüsselungseinrichtung, und die Schlüsselfolge Afi dient zur Entschlüsselung eines Bits, das mit einer irgendwo anders auf dem Chip ange ordneten und erzeugten identischen Folge Afi verschlüsselt worden ist.
  • 2b zeigt eine alternative Ausführungsform der Zufallszahlenausgabeeinrichtung 106, wobei die Gruppe von Speicherzellen, deren Zustände kombiniert werden, nunmehr, im Gegensatz zu 2a, nicht die Speicherzellen D4 und D3 umfasst, sondern nunmehr die Speicherzellen D2, D3 und D5 umfasst. Wieder ist die Kombinationseinrichtung in der Zufallszahlenausgabeeinrichtung als XOR-Gatter ausgeführt, das nun jedoch, im Gegensatz zu 2a, drei Eingänge hat.
  • Es sei darauf hingewiesen, dass als Kombinationseinrichtung beliebige Kombinationen eingesetzt werden können, die nicht nur XOR-Gatter sein müssen, sondern auch alle anderen logischen Gatter, wie z. B. UND-Gatter, NAND-Gatter, OR-Gatter, NOR-Gatter, XNOR-Gatter etc., solange die Ausgabefolgen von wenigstens zwei Speicherzellen irgendwie kombiniert werden, um eine kombinierte Ausgabefolge zu erzeugen.
  • Ferner wird im Hinblick auf einen hohen Sicherheitsaspekt bevorzugt, dass der erfindungsgemäße Zufallszahlengenerator mehrere Ausgabefolgen liefert, die voneinander unterschiedlich sind und somit nicht durch zeitliche Verschiebung aus ein und derselben Schieberegisterfolge abgeleitet sind. Dies wird dadurch erreicht, dass, wie es in 2a und 2b gezeigt ist, unterschiedliche Gruppen von Speicherzellen im Hinblick auf ihre Ausgabefolgen kombiniert werden. Unterschiedliche Ausgabefolgen können auch durch eine unterschiedliche Kombination erreicht werden. So könnte beispielsweise eine zweite Ausgabefolge Afi mit der in 2a gezeigten Schaltung auch dazu verwendet werden, um eine Ausgabefolge Afi+1 zu erzeugen, bei der die Zustandsfolgen der Speicherzel len D4 und D3 nicht XOR-verknüpft werden, sondern z. B. UND-verknüpft werden. Selbstverständlich könnte statt XOR auch XNOR etc. verwendet werden.
  • Vorzugsweise ist die Ausgabeeinrichtung 106, wie sie in 1 dargestellt ist, somit ausgebildet, um alle Ausgabefolgen AF0 ...,AFk so zu erzeugen, dass alle Folgen voneinander unterschiedlich sind, und zwar dahin gehend, dass entweder die Gruppe von Speicherzellen, aus der die Ausgabefolge durch Kombination hervorgeht, für jede Ausgabefolge unterschiedlich ist, und/oder dass die Kombinationsvorschrift, mit den Zustandsfolgen einer Gruppe von Speicherzellen kombiniert werden, für unterschiedliche Ausgabefolgen unterschiedlich ist.
  • Darüber hinaus ist das erfindungsgemäße Konzept dahin gehend vorteilhaft, dass, wie es ebenfalls in 1 gezeigt ist, die Anzahl der Ausgabefolgen AFk wesentlich größer sein kann als die Anzahl von Speicherzellen, was bei dem in 5b gezeigten Vergleichskonzept nicht der Fall war.
  • Erfindungsgemäß wird also der Nachteil, dass im wesentlichen die selbe Folge zur Verschlüsselung der einzelnen Busleitungen verwendet wird, wie nachfolgend dargelegt überwunden.
  • Es sei ein rückgekoppeltes Schieberegister mit N Zellen D0, D1, ...,D1–1 betrachtet. Ferner sei σ0 die Ausgabefolge der vordersten Zelle D0. Es sei σ1 die Ausgabefolge der zweiten Zelle D1, ..., und es sei σN–1 die Ausgabefolge der letzten Zelle DN–1.
  • Ferner wird bevorzugt, dass das zugrunde liegende Schieberegister nicht-linear ist, also eine nicht-lineare Rückkopplungseinrichtung hat, und dass es eine maximal periodische Folge generieren kann, wobei die Periode dann gleich 2N–1 ist . Dann haben alle Folgen σ0, σ1, ...,σN–1 die maximale Periodenlänge 2N–1, und es kann gezeigt werden, dass die Folgen alle die selbe lineare Komplexität haben. Die lineare Komplexität kann den Wert 2N–2 annehmen. Sie ist aber immer mindestens 2N–1.
  • Es sei beachtet, dass die Folgen σ1, ...,σN–1 nur verschobene Versionen der Folge σ0 sind.
  • Echt andere Folgen erhält man aber, wenn die einzelnen Folgen von σ0, σ1, ...,σN–1 z. B. miteinander addiert werden, wie z. B. σ0 + σ1 oder σ2 + σ5 + σ7, etc.
  • Eine Ausführungsform der Addition ist die gliedweise Addition modulo 2. Dies bedeutet folgendes:
    σ1 = 0011010... und σ6 = 1011100..., dann gilt für die Addition modulo 2 von σ1 und σ6 = 100110 ...
  • Um die Ausgabefolgen im Falle einer Addition modulo 2 voneinander stark unterschiedlich zu machen, wird es bevorzugt, dass das zugrunde liegende Schieberegister eine nicht-lineare Rückkopplung hat. Hier liefert die Addition vollständig neue Folgen. Daher wird es bevorzugt, dass der Busverschlüsselung nicht-lineare Schieberegister zugrunde liegen.
  • Nachfolgend wird ausgeführt, wieso durch Addition erzeugte Folgen günstige Eigenschaften aufweisen. So seien σ0, σ1, ..., σN–1 Ausgabefolgen aus einem nicht-linearen Schieberegister, das Folgen maximaler Periode d.h. der Periode = 2N–1, erzeugen kann. Die Folgen σ0, σ1, ..., σN–1 haben jeweils die Periode 2N–1. Sei L die lineare Komplexität von σ0, so ist L auch die lineare Komplexität von σ1, σ2, ..., σN–1. Wenn N eine Primzahl ist, wenn also die Anzahl der Zellen des zu zugrunde liegenden Schieberegisters eine Primzahl ist, dann gilt folgendes:
    Jede Folge τ, die durch Addition von Folgen aus {σ0, σ1, ..., σN–1} entsteht, hat ebenfalls die Periodenlänge 2N–1 und die lineare Komplexität L.
  • Darüber hinaus kommen innerhalb einer vollen Periode von r fast gleich viele Nullen und Einsen vor. Genauer gesagt, kommen 2N–1–1 Nullen und 2N–1 Einsen vor.
  • Für das Beispiel N = 7 gilt folgendes:
    σ0, σ1, ..., σ6 haben die Periode 27–1 = 127 und die lineare Komplexität L = 126. Die Folge τ = σ2 + σ3 hat dann die Periode 127 und die lineare Komplexität 126. In einer vollen Periode von τ kommen somit 63 Nullen und 64 Einsen vor.
  • Das erfindungsgemäße Konzept, also die Idee, die Ausgabefolgen aus den einzelnen Schiebergisterzellen nicht direkt den einzelnen Busleitungen zuzuführen, sondern sie vorher untereinander z. B. durch eine Addition modulo 2 zu kombinieren, hat eine wichtige Konsequenz. Es ist nunmehr möglich, alle Busleitungen mit unterschiedlichen Verschlüsselungsfolgen zu versorgen, wobei die unterschiedlichen Verschlüsselungsfolgen von einem Schieberegister abgeleitet werden können, das weniger Speicherzellen enthält als es Busleitungen gibt. Z. B. wird ein 32-Bit-breiter Bus eines Chips von einem Schieberegister versorgt, das nur 11 Speicherzellen enthält.
  • Diese Idee sei nachfolgend anhand von 4 dargestellt. Das in 4 gezeigte Schieberegister hat fünf Zellen und versorgt acht Busleitungen mit unterschiedlichen Schlüsselfolgen. Für jede Busleitung ist wieder eine eigene Verschlüsselungs- bzw. Entschlüsselungseinrichtung 500 vorgesehen, wobei an dem Schlüsseleingang jeder Verschlüsselungs- bzw. Entschlüsselungseinrichtung eine Ausgabefolge AF1 bis AF8 anliegt. Wie es aus 4 ersichtlich ist, wird zum Erzeugen der Ausgabefolgen AF1 die Gruppe von Speicherzellen, die die Speicherzellen D0 und D1 umfassen, verwendet. Darüber hinaus wird zum Erzeugen der Ausgabefolge AF2 die Gruppe von Speicherzellen verwendet, die die Speicherzellen D0 + D1 + D2 umfasst. Zum Erzeugen der Ausgabefolge AF3 wird die Gruppe von Speicherzellen verwendet, die die Speicherzellen D0 und D2 umfasst.
  • Die Gruppe von Speicherzellen für die Ausgabefolge AF4 ist die Gruppe, die die Speicherzellen D0, D1 und D3 umfasst.
  • Analog hierzu wird die Ausgabefolge AF5 durch Kombination der Speicherzellen der für die fünfte Busleitung vorgesehenen Gruppe erzeugt, die die Speicherzellen D0 und D3 umfasst.
  • Ähnlich wird auch die Ausgabefolge AF6 aus den Speicherzellen erzeugt, die als D0, D1 und D4 eine Gruppe bilden.
  • Wieder analog wird die Ausgabefolge AF7 für die Busverschlüsselung der siebten Busleitung durch die Gruppe von Speicherzellen erzeugt, die D0 und D4 umfasst.
  • Schließlich wird die Ausgabefolge AF8 aus der Kombination der Zustände der Gruppen von Speicherzellen erzeugt, die die Speicherzelle D0, D2 und D4 erfasst.
  • Weitere Ausgabefolgen könnten in 4 erzeugt werden, und zwar z. B. die Ausgabefolge, bei der als Gruppe von Speicherzellen alle Speicherzellen D0, D1, D2, D3 und D4 verwendet werden.
  • Ferner werden auch alle Gruppen von Speicherzellen, die jeweils vier Speicherzellen umfassen, bei dem in 4 gezeigten Ausführungsbeispiel nicht verwendet. Daher ist zu sehen, dass aus den fünf Speicherzellen D0 bis D4 noch wesentlich mehr als acht Ausgabefolgen erzeugt werden können, wobei jede Folge dann unterschiedlich zu einer anderen Folge ist, wenn die Rückkopplungseinrichtung 105 eine nicht-lineare Rückkopplungseigenschaft umfasst, wie es später noch ausgeführt wird.
  • 3 umfasst neben den Speicherzellen x0, ...,x10 ein erstes UND-Gatter 212, ein zweites UND-Gatter 213, ein erstes XOR-Gatter 214, ein zweites XOR-Gatter 218 sowie einen Invertierer 216, um die beiden alternativen Funktionen F(x) und G(x) wie sie in 3 dargestellt sind, abhängig von der Stellung des Umschalters 203 zu implementieren. Das Ergebnis des Umschalters 203 wird mit einem weiteren XOR-Gatter 221 in die Rückkopplung gewissermaßen „eingekoppelt". Der Umschalter hat den Steuereingang 204, an dem das Steuersignal z angelegt wird. Der Steuereingang 204 ist mit einem externen Zufallszahlengenerator 210 bzw. einer externen Steuerung in dem externen Zufallszahlengenerator (RNG) zum Liefern des Steuersignals z verbunden.
  • Nachfolgend wird Bezug nehmend auf die 6 bis 10 eine Anzahl von verschiedenen Ausführungsbeispielen zur Ausgestaltung der einzelnen Elementarschieberegister 101111 in den 6 bis 9 gegeben. Es sei darauf hingewiesen, dass nicht unbedingt alle Schieberegister, beispielsweise in 5 die Schieberegister 101111, denselben Aufbau haben müssen, sondern dass sie unterschiedliche Aufbauten haben können, so lange wenigstens eines, und vorzugsweise alle Schieberegister eine nicht-lineare Rückkopplungseigenschaft haben.
  • 6 zeigt ein Elementarschieberegister mit nichtlinearer Rückkopplung zum Erzeugen einer pseudozufälligen Folge von Zahlen mit einer Vorwärtskopplungseinrichtung 1, die eine Folge von Speichereinheiten 2 bis 5 aufweist, und die ferner einen Eingang 6 sowie einen Ausgang 7 umfasst, der dem Ausgang der Vorrichtung zum Ausgeben der Folge von Pseudozufallszahlen entspricht. Es sei darauf hingewiesen, dass die Folge von Pseudozufallszahlen durch weitere Einrichtungen, die in 6 nicht gezeigt sind, ergänzt werden kann, um Folgen von Zufallszahlen zu puffern, auf irgendeine andere Art und Weise zu kombinieren etc.
  • Die in 6 gezeigte Vorrichtung umfasst ferner eine Rückkopplungseinrichtung 8, die eine veränderbare Rückkopplungseigenschaft aufweist und zwischen den Eingang 6 und den Ausgang 7 der Vorwärtskopplungseinrichtung 1 geschaltet ist. Die veränderbare Rückkopplungseigenschaft der Rückkopplungseinrichtung 8 ist in 6 dahingehend dargestellt, dass die Rückkopplungseinrichtung 8 eine erste Rückkopplungseigenschaft 9 oder eine zweite Rückkopplungseigenschaft 10 annehmen kann, wobei zwischen der ersten Rückkopplungseigenschaft 9 und der zweiten Rückkopplungseigenschaft 10 durch eine Umschalteinrichtung 11 z. B. hin- und hergeschaltet werden kann. Das Steuersignal für die Umschalteinrichtung 11 wird lediglich beispielhaft von der vierten Speichereinrichtung SE2 geliefert, wie es durch einen Signalpfad 12 symbolisch dargestellt ist. Die erste Rückkopplungseigenschaft 9 und die zweite Rückkopplungseigenschaft 10 unterscheiden sich bei einem in 6 gezeigten Ausführungsbeispiel dadurch, dass im Falle der ersten Rückkopplungseigenschaft der Zustand der Speichereinrichtung 1 (Nr. 3) in die Rückkopplung eingeht, während im Falle der zweiten Rückkopplungseigenschaft der Zustand der Speichereinrichtung 5 (SEn) zur Rückkopplung beiträgt.
  • Alternativ oder zusätzlich kann die Rückkopplungseinrichtung 8 derart ausgebildet sein, dass in der Rückkopplungseigenschaft, die den Wert am Ausgang 7 der Vorwärtskopplungseinrichtung mit einem inneren Zustand der Vorwärtskopplungseinrichtung kombiniert, je nach ausgewählter Rückkopplungseigenschaft eine andere Kombinationsvorschrift eingesetzt wird. So könnte beispielsweise in der ersten Rückkopplungseigenschaft zur Kombination des Werts am Ausgang 7 mit dem Wert der Registerzelle 3 eine UND-Kombination eingesetzt werden, während die zweite Rückkopplungseigenschaft sich von der ersten Rückkopplungseigenschaft dadurch unterscheidet, dass zur Kombination der beiden genannten Werte nicht eine UND- sondern eine OR-Kombination eingesetzt wird. Für Fachleute ist es klar, dass verschiedene Arten von unterschiedlichen Kombinationsvorschriften eingesetzt werden können.
  • Darüber hinaus müssen Werte der Speichereinrichtungen SE1 bzw. SEn nicht unmittelbar einer Kombinationseinrichtung in der Rückkopplungseinrichtung zugeführt werden, sondern diese Werte können z. B. invertiert werden, miteinander kombiniert werden oder auf irgend eine andere Art und Weise z. B. nichtlinear verarbeitet werden, bevor dann sie verarbeiteten Werte einer Kombinationseinrichtung zugeführt werden.
  • Darüber hinaus ist es nicht wesentlich, dass die Umschalteinrichtung 11 direkt von dem Zustand der Speichereinheit SE2 gesteuert wird. Statt dessen könnte der Zustand der Speichereinrichtung SE2 invertiert werden, auf irgend eine andere Art und Weise logisch oder arithmetisch verarbeitet werden oder sogar mit dem Zustand einer oder mehrerer weiterer Speichereinrichtungen kombiniert werden, so lange eine Vorrichtung zum Erzeugen einer pseudozufälligen Folge von Zahlen erhalten wird, die eine Rückkopplungseinrichtung aufweist, deren Rückkopplungseigenschaft nicht statisch ist, sondern dynamisch abhängig von der Vorwärtskopplungseinrichtung und insbesondere von einem oder mehreren Zuständen in Speichereinheiten der Vorwärtskopplungseinrichtung variierbar ist.
  • In der Vorwärtskopplungseinrichtung 1 von 6 ist ferner eine Steuereinrichtung 13 eingebracht, die zwischen zwei Speicherelementen angeordnet ist, nämlich bei dem in 6 gezeigten Beispiel den Speicherelementen 4 und 5. Nachdem ein Signalfluss von dem Speicherelement 0 bis zum Speicherelement n in 6 stattfindet, ist das Speicherelement 4 das signalflußmäßig vor der Steuereinrichtung angeordnete Speicherelement, während das Speicherelement 5 das signalflußmäßig nach der Steuereinrichtung angeordnete Signal ist. Die Steuereinrichtung 13 hat einen Steuereingang 13a, der mit einem Steuersignal beaufschlagbar ist, das prinzipiell ein beliebiges Steuersignal sein kann.
  • Das Steuersignal kann beispielsweise eine echte Zufallszahlenfolge sein, so dass die Ausgabefolge der Schieberegisteranordnung eine Zufallszahlenfolge ist. Das Steuersignal kann auch ein deterministisches Steuersignal sein, so dass ausgangsseitig eine Pseudozufallszahlenfolge erhalten wird.
  • Vorzugsweise ist der Steuereingang 13a jedoch, wie es durch die in 6 gezeigte entsprechende gestrichelte Linie dargestellt ist, mit der Rückkopplungseinrichtung 8 verbunden, derart, dass ein Signal in der Rückkopplungseinrichtung das Steuersignal für die Steuereinrichtung 13 liefert, das Steuersignal also ein deterministisches Signal ist.
  • Obgleich bei dem in 6 gezeigten Ausführungsbeispiel die Rückkopplungseinrichtung 8 als variable Rückkopplungseinrichtung bezeichnet ist, kann die Rückkopplungseinrichtung auch eine Rückkopplungseinrichtung mit konstanter Rückkopplungseigenschaft sein, wie es durch eine gestrichelte Linie 14 angedeutet ist. In diesem Fall würde das Steuersignal für den Steuereingang 13a von einem Verzweigungspunkt 14a abgeleitet werden, wie es in 6 schematisch dargestellt ist, und zwar durch die gestrichelte Linie vom Punkt 14a zu dem Steuereingang 13a der Steuereinrichtung 13.
  • Ferner wird, um die Effizienz zu steigern, der in 6 gezeigte Elementar-Zahlenfolgengenerator dazu verwendet, um z. B. nicht nur eine Folge an dem Ausgang 7 zu erzeugen, sondern um eine zweite Folge von vorzugsweise Pseudozufallszahlen an einem weiteren Ausgang 15 zu erzeugen, wobei beide Folgen oder nur eine Folge der beiden folgen in die Kombinationseinrichtung eingespeist werden kann. Das Einfügen der Steuereinrichtung 13 bewirkt, dass die an dem Ausgang 7 ausgegebene Folge tatsächlich unterschiedlich zu der am Ausgang 15 ausgegebenen Folge ist, wobei die beiden Folgen nicht nur zueinander verschoben sind, sondern, wie es ausgeführt worden ist, tatsächlich unterschiedlich sind, da sie signalflußmäßig vor bzw. hinter der Steuereinrichtung 13 „abgezapft" werden.
  • 7 zeigt ein 8-Bit-Schieberegister, bei dem abhängig von dem Zustand der Speichereinrichtung mit der Nr. 4 ein Multiplexer 20 über einen Steuereingang 20a angesteuert wird. Ist der Steuereingang 20a auf einem Null-Zustand, d. h. liegt in der Speicherzelle mit der Nr. 4 ein Null-Zustand vor, so wird der Multiplexer derart gesteuert, dass er den Zustand der Speichereinrichtung mit der Nr. 7 an einer ersten Eingangsleitung 20b desselben mit einer Ausgangsleitung 20d verbindet. Dies würde der Wirkung eines linearen Schieberegisters mit dem folgende Rückkopplungspolynom entsprechen: x8 + x7 + 1
  • Ist der Steuereingang 20a dagegen auf einem Eins-Zustand, so wird der Zustand der Speichereinrichtung mit der Nr. 6 an einem zweiten Eingang 20c mit der Ausgangsleitung 20d des Multiplexers 20 verbunden. Die Ausgangsleitung 20d ist mit einer Kombinationseinrichtung 21 verbunden, der ferner bei dem in 7 gezeigten Ausführungsbeispiel der Wert am Ausgang 7 der Vorwärtskopplungseinrichtung, der gleichzeitig den Ausgang der Vorrichtung zum Erzeugen einer pseudozufälligen Folge von Zahlen bildet, zugeführt. Das Ergebnis, das durch die Kombinationseinrichtung 21 berechnet wird, wird wiederum der ersten Speichereinrichtung mit der Nr. 7 in 7 zugeführt.
  • Ist daher der Inhalt der Speicherzelle mit der Nr. 4 gleich 1, so liegt folgendes Rückkopplungspolynom vor: x8 + x6 + 1
  • Aus dem vorstehenden wird ersichtlich, dass zwischen den beiden genannten Rückkopplungspolynomen umgeschaltet wird, und zwar abhängig von dem Inhalt der Speicherzelle mit der Nr. 4 der Vorwärtskopplungseinrichtung 1.
  • Es hat sich herausgestellt, dass die linearen Komplexitäten von erfindungsgemäß erhaltenen Sequenzen hoch sind, nämlich zwischen 234 und 254, wenn das Schieberegister 8 Flip-Flops hat. Es sei darauf hingewiesen, dass die Periodenlänge einer Sequenz, die durch ein beliebiges achtstufiges Schieberegister erzeugt wird, maximal 255 betragen kann. Der maximale Wert für die lineare Komplexität einer solchen Sequenz beträgt 254.
  • Das einfachste von allen achtstufigen Elementarschieberegistern, die eine Sequenz erzeugen können, ist das in 7 dargestellte Schieberegister mit den beiden in 7 dargestellten Rückkopplungspolynomen. Im Hinblick auf die Theorie der linearen Schieberegister als Vergleichsbeispiel sei darauf hingewiesen, dass es 16 primitive Polynome des Grads 8 gibt. Jedes derartige Polynom beschreibt ein lineares Schieberegister das eine Sequenz der Periodenlänge 255 und der linearen Komplexität 8 erzeugen kann. Demgegenüber existieren viel mehr Schieberegister – nämlich 2020 – gemäß der vorliegenden Erfindung, die Sequenzen der Periodenlänge 255 gemäß der vorliegenden Erfindung erzeugen können.
  • Darüber hinaus haben die Sequenzen, die durch die erfindungsgemäßen Schieberegister erzeugt werden, viel größere lineare Komplexitäten als ihre analogen Ausführungen gemäß dem Stand der Technik. Wie es ausgeführt worden ist, wird unter allen untersuchten Möglichkeiten für ein 8-Bit-Schieberegister mit Rückkopplungseinrichtung die in 7 gezeigte Ausführungsform bevorzugt, da sie den einfachsten Hardware-Aufwand mit sich bringt, gleichzeitig eine maximale Periodendauer hat und ferner eine maximale lineare Komplexität aufweist.
  • In 7 ist ferner wieder eine Steuereinrichtung 13 zwischen zwei Speicherelementen angeordnet, wobei dies die Speicherelemente 1 und 2 sind. Die Steuereinrichtung 13 wird mit einem Steuersignal versorgt, das aus der Rückkopplungseinrichtung 8 mit variabler Rückkopplungseigenschaft abgezapft wird. Selbstverständlich könnte das Signal für die Steuereinrichtung auch signalflußmäßig nach dem XOR-Gatter 21 „abgezapft" werden. Darüber hinaus kann die Steuereinrichtung 13 selbstverständlich auch zwischen zwei beliebigen anderen Speicherzellen ausgebildet sein, wie z. B. zwischen den Speicherzellen 5 und 6 oder zwischen den Speicherzellen 0 und 7, also entweder in Signalflussrichtung hinter der Speicherzelle 0, so dass unmittelbar das Signal am Ausgang der Speichereinrichtung an dem Ausgang 7 ausgegeben wird, oder unmittelbar vor der Speicherzelle 7.
  • Aus Signalverarbeitungsgründen wird es jedoch bevorzugt, dass sämtliche Signale, wie z. B. Ausgangsfolgen, Steuersignale und Datensignale für den Multiplexer etc. am Ausgang von Schieberegistern abgegriffen werden, so dass das Schieberegister neben seiner Funktionalität zum Erzeugen der Zahlenfolge auch dazu dient, stabile Signale für Logikgatter zu liefern. Damit müssen keine entsprechenden Ausgangsstufen für Logikgatter erzeugt werden, wenn von den Ausgängen der Logikgatter selbst Steuersignale oder Ausgangssignale abgezapft werden.
  • Nachfolgend wird auf 8 Bezug genommen, um eine spezielle Implementierung der Multiplexereinrichtung 20 von 7 darzustellen. Der Multiplexer 20 kann ohne weiteres durch zwei UND-Gatter 40a, 40b implementiert werden, die beide mit seriell geschalteten ODER-Gattern (oder XOR-Gattern) 41a, 41b so verbunden sind, wie es in 8 gezeigt ist. Im einzelnen wird der Zustand der Speicherzelle 4 dem ersten UND-Gatter 40a zugeführt, während der invertierte Zustand der Speicherzelle 4 dem zweiten UND-Gatter 40b zugeführt wird. Zur Bestimmung des entsprechenden Rückkopplungspolynoms wird der Inhalt der Speicherzelle 6 dem ersten UND-Gatter 40a als zweiter Eingang zugeführt, während der Inhalt der Speicherzelle 7 dem zweiten UND-Gatter 40b als zweiter Eingang zugeführt wird. Ferner sei darauf hingewiesen, dass die beiden hintereinander geschalteten ODER-Gatter 41a, 41b alternativ implementiert werden können. Wenn jedoch Implementierungen benötigt werden, bei denen jedes logische Gatter zwei Eingänge und einen Ausgang hat, ist die in 8 gezeigte beispielhafte Darstellung vorteilhaft.
  • Bei einem Verfahrens zum Erzeugen einer pseudozufälligen Folge von Zahlen aus einem Elementarschieberegister unter Verwendung einer Vorwärtskopplungseinrichtung 1 mit einer Mehrzahl von Speichereinrichtungen, die einen Eingang und einen Ausgang zum Ausgeben der Folge von Zahlen aufweist, und einer Rückkopplungseinrichtung, die eine veränderbare Rückkopplungseigenschaft aufweist und zwischen den Eingang und den Ausgang geschaltet ist, wird zunächst ein Schritt des Initialisierens der Speichereinrichtung in der Vorwärtskopplungseinrichtung auf einen vorbestimmten Startwert ausgeführt.
  • Ansprechend auf einen Zustand einer Speichereinrichtung der Mehrzahl von Speichereinrichtungen der Vorwärtskopplungseinrichtung wird dann in einem weiteren Schritt die Steuerungseinrichtung abhängig von dem Rückkopplungssignal gesteuert. Hierauf wird ein Zustand einer Speichereinrichtung, die mit dem Ausgang der Vorwärtskopplungseinrichtung 1 verbunden ist, ausgegeben, um eine Zahl der Folge von Zufallszahlen zu erhalten. Hierauf wird in einem Entscheidungsblock untersucht, ob weitere Zufallszahlen benötigt werden. Wird diese Frage mit nein beantwortet, so wird das Verfahren beendet. Wird dagegen festgestellt, dass weitere Zahlen benötigt werden, so wird der Entscheidungsblock mit „ja" beantwortet, woraufhin ein weiteren Schritt folgt, in dem die Mehrzahl von Speichereinrichtungen basierend auf einem vorherigen Zustand der Speichereinrichtung und auf einer Ausgabe der Rückkopplungseinrichtung neu belegt werden. In einer Schleife werden die Schritte des Steuerns der Steuerungseinrichtung, Ausgebens und Neubelegens so oft wie gewünscht wiederholt, um schließlich die pseudozufällige Folge von Zahlen zu erhalten.
  • Es sei darauf hingewiesen, dass dieses Verfahren unter Verwendung eines regelmäßigen Takts durchgeführt werden kann, oder auch unter Verwendung eines unregelmäßigen Takts, obgleich die Variante mit regelmäßigem Takt im Hinblick auf eine bessere Sicherheit gegenüber Leistungs- oder Zeit-Attacken bevorzugt wird.
  • Im Falle des in 7 dargestellten linearen Schieberegisters wird darauf hingewiesen, dass das Neubelegen der Mehrzahl von Speichereinrichtungen seriell erfolgt, und zwar basierend auf dem vorherigen Zustand der Speichereinrichtungen, der – insgesamt gesehen – um einen Schritt nach links verschoben wird, so dass ausgangsseitig ein Zustand der Speichereinrichtung 0 „herausfällt". Dieser „herausgefallene" Wert ist die Zahl, die ausgegeben wird. Durch das Links-Verschieben des insgesamt betrachteten Zustands der gesamten Speichereinrichtungen kann die ganz rechte Speichereinrichtung mit der Nr. 7 in 7 neu belegt werden. Die Mehrzahl von Speichereinrichtungen und insbesondere die Speichereinrichtung 7 wird daher abhängig von einer Ausgabe der Rückkopplungseinrichtung zum aktuellen Taktzeitpunkt neu belegt.
  • 9 zeigt ein alternatives Ausführungsbeispiel, bei dem die in 6 mit dem Bezugszeichen 14 bezeichnete Alternative der Rückkopplungseinrichtung dargestellt ist. Insbesondere ist die Rückkopplungseinrichtung 14 in 9 derart ausgebildet, dass sie keine variable Rückkopplungseigenschaft hat, sondern eine konstante Rückkopplungseigenschaft hat. Die erfindungsgemäßen Vorteile werden dadurch erreicht, dass in der Vorwärtskopplungseinrichtung zumindest eine Steuereinrichtung 13 und vorzugsweise eine weitere Steuereinrichtung 60 angeordnet sind.
  • Bei dem in 9 gezeigten Ausführungsbeispiel wird die Steuereinrichtung 13 mit einem Steuersignal gesteuert, das direkt von der Rückkopplungseinrichtung 14 abgeleitet wird. Bei der in 9 gezeigten Vorwärtskopplungseinrichtung sind lediglich zwei Speichereinrichtungen 2 und 3 vorgesehen, wobei die erste Steuereinrichtung 13 zwischen der Speicherzelle 2 und 3 geschaltet ist, während die zweite Steuereinrichtung 60 zwischen der Speicherzelle 3 und (über die Rückkopplungseinrichtung 14) der Speicherzelle 2 geschaltet ist. Ferner ist in 9 ein Signalfluss durch einen Pfeil 61 markiert, der den Signalfluss in der Vorwärtskopplungseinrichtung darstellt, der sich bei dem in 9 gezeigten Ausführungsbeispiel von rechts nach links erstreckt. Ein Bit gelangt zunächst in die Speichereinrichtung D2. Damit wird das in D2 gespeicherte Bit ausgegeben und bildet ein Bit der ersten Folge. Gleichzeitig wird das von der Speichereinrichtung 2 ausgegebene Bit mit einem gerade auf der Rückkopplungseinrichtung 14 anliegenden Bit bei dem in 9 gezeigten Aus führungsbeispiel XOR-verknüpft, um an einem Ausgang der XOR-Verknüpfung ein Ergebnisbit zu erhalten, das dann beim nächsten Zyklus in das Speicherelement 3 eingetaktet wird. Damit wird das gerade in dem Speicherelement 3 befindliche Bit aus dem Speicherelement 3 herausgetaktet und stellt damit ein Bit der zweiten Pseudozufallsfolge von Zahlen dar. Das Bit am Ausgang der Speicherzelle 3 wird dann mit einem Steuersignal für die zweite Steuereinrichtung 60 XOR-verknüpft, wobei das Steuersignal aus dem Signal an der Rückkopplungseinrichtung 14 und dem Ausgangssignal der ersten Steuereinrichtung 13 mittels einer Kombinationseinrichtung erzeugt wird. Die Kombinationseinrichtung 62 ist vorzugsweise ein logisches Gatter und insbesondere bei dem in 9 gezeigten Ausführungsbeispiel ein UND-Gatter. Die erste Folge wird über einen Ausgang 7 ausgegeben, während die zweite Folge über einen Ausgang 15 ausgegeben wird. Die beiden über die Ausgänge 7 und 15 ausgegebenen Folgen sind tatsächlich unterschiedlich und nicht nur phasenverschoben zueinander.
  • Um die Implementierung des XOR-Gatters 60 zu vereinfachen, wird bei einem anderen bevorzugten Ausführungsbeispiel in Signalflussrichtung hinter dem XOR-Gatter 60 noch ein weiteres Speicherelement vorgesehen, wobei dann, am Ausgang dieses Speicherelements, eine Folge ausgegeben wird, die lediglich phasenverschoben zu der ersten Folge am Ausgang 7 ist, die jedoch grundsätzlich unterschiedlich zur zweiten Folge am Ausgang 15 ist.
  • 10 zeigt ein 8-Bit-Elementarschieberegister mit Flip-Flops D0 – D7, die seriell zueinander geschaltet sind, wobei ferner zwischen dem vierten und dem dritten Flip-Flop die zweite Steuereinrichtung 60 vorgesehen ist, während zwischen dem siebten und dem sechsten Flip-Flop die erste Steuerein richtung 13 vorgesehen ist. Die erste Steuereinrichtung 13 wird wieder direkt mit dem Rückkopplungssignal auf der Rückkopplungseinrichtung 14 versorgt, während die zweite Steuereinrichtung 60 mit dem Ausgangssignal des UND-Gatters 62 versorgt wird, das wiederum von der Rückkopplungseinrichtung 14 einerseits und dem Ausgangssignal der fünften Zelle D5 andererseits versorgt wird. In Analogie zu dem in 9 gezeigten Ausführungsbeispiel stellt die Ausgangsfolge der vierten Zelle D4 die zweite Pseudozufallszahlenfolge dar, während die Ausgangsfolge der siebten Zelle D7 die erste Zufallszahlenfolge darstellt.
  • Die in den 9 und 10 gezeigten Ausführungsbeispiele für ein Elementarschieberegister unterscheiden sich dahingehend, dass zwischen den beiden Steuereinrichtungen zwei weitere Registerzellen D5, D6 geschaltet sind, und dass am Ausgang der XOR-Steuereinrichtung 60 weitere Speicherzellen D0 – D3 ausgebildet sind, so dass ein 8-Bit-Schieberegister entsteht. Bei einem Ausführungsbeispiel wird, um einen besonders effizienten Pseudozufallszahlengenerator zu erhalten, an dem Ausgang von jeder Speicherzelle D0 – D7 eine Pseudozufallszahlenfolge abgezapft und einer Kombinationseinrichtung zugeführt. Insbesondere sind die beiden Folgen, die von den Zellen D4 und D5 ausgegeben werden, verschobene Versionen der Folge, die von der Zelle D6 ausgegeben wird. Ferner sind die vier Folgen, die von den Zellen D2, D1, D0 und D7 ausgegeben werden, verschobene Versionen der Folge, die von der Zelle D3 ausgegeben wird. Damit ist jede Folge der Zellen D7, D0, D1, D2, D3 zu einer Folge der Zellen D4, D5, D6 essentiell verschieden.
  • Es sei darauf hingewiesen, dass der Anfangszustand, mit dem das Schieberegister initialisiert wird, als der sogenannte Seed oder Keim, der Bezug nehmend auf 7, Element 55, erläutert worden ist, dahingehend gestaltet sein soll, dass er zumindest einen Wert für ein Speicherelement umfasst, der ungleich Null ist, damit das Schieberegister gewissermaßen „anläuft" und nicht an den acht Ausgängen acht Nullfolgen ausgibt. Dann, wenn diese Bedingung erfüllt ist, sind alle acht Folgen maximal periodisch, d. h. haben eine Periodenlänge von 255. Ferner hat jede der acht ausgegebenen Folgen bei dem in 10 gezeigten Ausführungsbeispiel die maximale lineare Komplexität 254. Darüber hinaus sind, wie es ausgeführt worden ist, die beiden Folgen, die von den Zellen D3 und D6 ausgegeben werden, essentiell verschieden.
  • Wie es aus 10 ferner ersichtlich wird, ist hier die Speicherzelle D5 die Steuerungszelle. Wenn die Zelle D5 eine Null enthält, dann wird die Wirkung der Steuereinrichtung 60 zwischen den Zellen D3 und D4 unterdrückt. Nur das XOR zwischen den Zellen D6 und D7 findet dann Anwendung. Wenn die Zelle D5 dagegen eine 1 umfasst, kommen beide XOR-Einrichtungen 13 und 60 zur Anwendung.
  • 11 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). 12 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 00340001
    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 Speicherzel len 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.
  • Abhängig von den Gegebenheiten kann das erfindungsgemäße Verfahren zum Erzeugen von Zufallszahlen 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 Programmcode zur Durchführung des Verfahrens realisiert werden, wenn das Computer-Programm auf einem Computer abläuft.
  • 1
    Vorwärtskopplungseinrichtung
    2
    Speichereinrichtung
    3
    Speichereinrichtung
    4
    Speichereinrichtung
    5
    Speichereinrichtung
    6
    Eingang der Vorwärtskopplungseinrichtung
    7
    Ausgang der Vorwärtskopplungseinrichtung
    8
    Rückkopplungseinrichtung
    9
    erste Rückkopplungseigenschaft
    10
    zweite Rückkopplungseigenschaft
    11
    Auswahleinrichtung
    12
    Steuerleitung für die Auswahleinrichtung
    13
    erste Steuereinrichtung
    13a
    Steuereingang der ersten Steuereinrichtung
    14
    Rückkopplungseinrichtung
    14a
    Abzweigungspunkt
    15
    Ausgang für die zweite Folge
    20
    Auswahleinrichtung
    20a
    Steuereingang
    20b
    erster Eingang
    20c
    zweiter Eingang
    20d
    Ausgang
    21
    Kombinationseinrichtung
    40a
    erstes UND-Gatter
    40b
    zweites UND-Gatter
    41a
    erstes ODER-Gatter
    41b
    zweites ODER-Gatter
    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
    60
    zweite Steuereinrichtung
    61
    Signalflussrichtung in der Vorwärtskopplungsein
    richtung
    62
    Kombinationseinrichtung
    100
    erste Speicherzelle
    101
    Zweite Speicherzelle
    102
    Dritte Speicherzelle
    103
    Vierte Speicherzelle
    104
    Fünfte Speicherzelle
    105
    Rückkopplungseinrichtung
    106
    Zufallszahlenausgabeeinrichtung
    203
    Umschalter
    204
    Steuereingang
    206
    Ausgang
    210
    externe Steuereinrichtung
    212
    UND-Gatter
    213
    UND-Gatter
    214
    XOR-Gatter
    216
    Invertierer
    218
    XOR-Gatter
    221
    Einkoppel-XOR-Gatter
    500
    Busverschlüsselungs/Entschlüsselungs-Einheit
    502
    Steuerleitung
    504
    Steuerleitung
    508
    Busverschlüsselungs/Entschlüsselungs-Einheit

Claims (18)

  1. Zufallszahlengenerator mit folgenden Merkmalen: einer Mehrzahl von seriell angeordneten Speicherzellen (100, 101, 102, 103, 104); einer Rückkopplungseinrichtung (105) zum Erzeugen eines Rückkopplungssignals und zum Einspeisen des Rückkopplungssignals in eine der Speicherzellen; und einer Zufallszahlenausgabeeinrichtung (106), die ausgebildet ist, um Zustände einer Gruppe von wenigstens zwei Speicherzellen zu kombinieren, um eine Ausgabefolge zu erhalten.
  2. Zufallszahlengenerator nach Anspruch 1, bei dem die Zufallszahlenausgabeeinrichtung (106) ausgebildet ist, um Zustände von einer zweiten Gruppe von Speicherzellen zu kombinieren, um eine zweite Ausgabefolge zu erhalten, wobei sich die zweite Gruppe von der ersten Gruppe unterscheidet.
  3. Zufallszahlengenerator nach Anspruch 1, bei dem die Zufallszahlenausgabeeinrichtung (106) ausgebildet ist, um Zustände der Gruppe von wenigstens zwei Speicherzellen gemäß einer ersten Kombinationsvorschrift zu kombinieren, um die Ausgabefolge zu erhalten, und um die Zustände der Gruppe von Speicherzellen ferner gemäß einer zweiten Kombinationsvorschrift zu kombinieren, wobei sich die zweite Kombinationsvorschrift von der ersten Kombinationsvorschrift unterscheidet.
  4. Zufallszahlengenerator nach einem der vorhergehenden Ansprüche, bei dem eine Anzahl N von Speicherzellen vorgesehen ist; und bei dem die Zufallszahlenausgabeeinrichtung (106) ausgebildet ist, um eine Anzahl M von Ausgabefolgen zu erzeugen, wobei die Anzahl M größer als die Anzahl N ist, und wobei sich die M Ausgabefolgen voneinander aufgrund der ihnen zugrunde liegenden Gruppen von Speicherzellen oder der ihnen zugrunde liegenden Kombinationsvorschriften voneinander unterscheiden.
  5. Zufallszahlengenerator nach einem der vorhergehenden Ansprüche, bei dem die Rückkopplungseinrichtung (105) eine nicht-lineare Rückkopplungscharakteristik hat.
  6. Zufallszahlengenerator nach einem der vorhergehenden Ansprüche, bei dem die Rückkopplungseinrichtung (105) wenigstens ein UND-Gatter zum UND-Verknüpfen von Zuständen von zwei der Speicherzellen aufweist, oder bei dem die Rückkopplungseinrichtung wenigstens ein XOR-Gatter zum XOR-Verknüpfen von Zuständen von zwei der Speicherzellen aufweist.
  7. Zufallszahlengenerator nach einem der vorhergehenden Ansprüche, der ferner folgendes Merkmal aufweist: eine Takteinrichtung zum Takten der Speicherzellen, so dass bei einem Takt ein Zustand in in einer Verarbeitungsrichtung hinten angeordneten Speicherzelle in eine in der Verarbeitungsrichtung vorne angeordnete Speicherzelle eingespeist wird, so dass sich an einem Ausgang einer Speicherzelle ansprechend auf eine Folge von Taktpulsen eine Folge von Speicherzellenzuständen ergibt.
  8. Zufallszahlengenerator nach einem der vorhergehenden Ansprüche, bei dem die Rückkopplungseinrichtung (105) mit der Mehrzahl von Speicherzellen so gekoppelt ist, dass die Rückkopplungseinrichtung (105) als Eingabe einen Zustand einer in Verarbeitungsrichtung vorne angeordneten Speicherzelle enthält, und das Rückkopplungssignal in eine in Verarbeitungsrichtung hinten angeordnete Speicherzelle einspeist.
  9. Zufallszahlengenerator nach einem der vorhergehenden Ansprüche, bei dem ein durch die Mehrzahl von Speicherzellen und die Rückkopplungseinrichtung gebildetes Schieberegister nicht-linear ist und ausgebildet ist, um eine maximal periodische Folge zu generieren.
  10. Zufallszahlengenerator nach einem der vorhergehenden Ansprüche, bei dem die Anzahl von Speicherzellen eine Primzahl ist.
  11. Zufallszahlengenerator nach einem der vorhergehenden Ansprüche, bei dem die Zufallszahlenausgabeeinrichtung (106) wenigstens ein Logikgatter zum Kombinieren von Zuständen einer Gruppe von Speicherzellen aufweist.
  12. Zufallszahlengenerator nach einem der vorhergehenden Ansprüche, bei dem die Zufallszahlenausgabeeinrichtung (106) ausgebildet ist, um eine modulo 2-Addition mit Zuständen von Speicherzellen einer Gruppe von Speicherzellen durchzuführen.
  13. Zufallszahlengenerator nach einem der vorhergehenden Ansprüche, bei dem die Zufallszahlenausgabeeinrichtung (106) ein XOR-Gatter zum Kombinieren von Zuständen von Speicherzellen einer Gruppe aufweist.
  14. Zufallszahlengenerator nach einem der vorhergehenden Ansprüche, bei dem die Rückkopplungseinrichtung folgende Merkmale aufweist: eine erste Kombinationseinrichtung (9) zum Kombinieren von Zuständen von Speicherzellen, um eine erste Rückkopplungseigenschaft zu erreichen; eine zweite Kombinationseinrichtung (10) zum Kombinieren von Zuständen von Speicherzellen, um eine zweite Rückkopplungseigenschaft zu erreichen; und einen Umschalter zum Aktivieren der ersten Rückkopplungseigenschaft in einem ersten Umschaltzustand und zum Aktivieren der zweiten Rückkopplungseigenschaft in einen zweiten Umschaltzustand, wobei der Umschalter einen Steuereingang zum Erhalten eines Steuersignals von einer externen Steuerung aufweist, und wobei der Umschalter ausgebildet ist, um ansprechend auf das Steuersignal in den ersten oder den zweiten Umschaltzustand versetzt zu werden.
  15. Zufallszahlengenerator nach Anspruch 14, bei dem das Steuersignal eine Steuerperiodendauer hat, und bei dem der Zufallszahlengenerator ferner folgendes Merkmal aufweist: eine Takteinrichtung zum Takten der Mehrzahl von seriell angeordneten Speicherzellen mit einem Takt, der eine Taktperiodendauer hat, wobei die Taktperiodendauer kleiner als die Steuerperiodendauer ist.
  16. Busverschlüsselungsvorrichtung mit folgenden Merkmalen: einem Bus mit einer Anzahl N von parallelen Busleitungen; für jede Busleitung, eine Verschlüsselungs- oder Entschlüsselungseinrichtung zum Verschlüsseln oder Entschlüsseln eines Signals auf der Busleitung unter Verwendung eines Schlüssels für die Busleitung; einen Zufallszahlengenerator mit einer Mehrzahl von seriell angeordneten Speicherzellen, einer Rückkopplungseinrichtung zum Erzeugen eines Rückkopplungssignals und zum Einspeisen des Rückkopplungssignals in eine der Speicherzellen und einer Zufallszahlenausgabeeinrichtung (106), wobei die Zufallszahlenausgabeeinrichtung (106) ausgebildet ist, um für jede Busleitung durch Kombination von Zuständen einer Gruppe von Speicherzellen eine Ausgabefolge zu erzeugen und zu einer Einrichtung zum Entschlüsseln oder Verschlüsseln für die Busleitung zuzuführen, wobei die Zufallszahlenausgabeeinrichtung (106) ausgebildet ist, so dass für jede Busleitung eine Gruppe von Speicherzellen vorgesehen ist, die sich von einer Gruppe von Speicherzellen unterscheidet, die für eine andere Busleitung vorgesehen ist.
  17. Verfahren zum Erzeugen von Zufallszahlen mit einem Zufallszahlengenerator, der eine Mehrzahl von seriell angeordneten Speicherzellen und einer Rückkopplungseinrichtung (105) zum Erzeugen eines Rückkopplungssignals und zum Einspeisen des Rückkopplungssignals in eine der Speicherzellen aufweist, mit folgendem Schritt: Kombinieren von Zuständen einer Gruppe von wenigstens zwei Speicherzellen, um eine Ausgabefolge zu erhalten.
  18. Computerprogramm mit einem Programmcode zum Durchführen des Verfahrens gemäß Patentanspruch 17, wenn das Computerprogramm auf einem Computer abläuft.
DE102004013480A 2004-03-18 2004-03-18 Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen Expired - Fee Related DE102004013480B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102004013480A DE102004013480B4 (de) 2004-03-18 2004-03-18 Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen
US11/084,725 US7979482B2 (en) 2004-03-18 2005-03-18 Random number generator configured to combine states of memory cells
FR0502689A FR2868628B1 (fr) 2004-03-18 2005-03-18 Generateur de nombres aleatoires et procede de production de nombres aleatoires

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004013480A DE102004013480B4 (de) 2004-03-18 2004-03-18 Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen

Publications (2)

Publication Number Publication Date
DE102004013480A1 true DE102004013480A1 (de) 2005-10-13
DE102004013480B4 DE102004013480B4 (de) 2013-01-24

Family

ID=34982668

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004013480A Expired - Fee Related DE102004013480B4 (de) 2004-03-18 2004-03-18 Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen

Country Status (3)

Country Link
US (1) US7979482B2 (de)
DE (1) DE102004013480B4 (de)
FR (1) FR2868628B1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101818441B1 (ko) * 2011-06-30 2018-01-16 삼성전자주식회사 데이터 처리 장치 및 이의 동작 방법
US8837720B2 (en) 2012-03-16 2014-09-16 Paul de Roulet Cryptographically secure pseudorandom number generator
JP2014164342A (ja) * 2013-02-21 2014-09-08 Fujitsu Semiconductor Ltd 擬似乱数生成回路および擬似乱数生成方法
US8873750B2 (en) * 2013-03-14 2014-10-28 International Business Machines Corporation Instruction for performing a pseudorandom number generate operation
US9747076B1 (en) * 2014-12-04 2017-08-29 Altera Corporation Parallel pseudo random bit sequence generation with adjustable width
US9985791B2 (en) 2015-08-13 2018-05-29 Arizona Board Of Regents Acting For And On Behalf Of Northern Arizona University Physically unclonable function generating systems and related methods
US9971566B2 (en) 2015-08-13 2018-05-15 Arizona Board Of Regents Acting For And On Behalf Of Northern Arizona University Random number generating systems and related methods
DE102016200850A1 (de) * 2016-01-21 2017-07-27 Siemens Aktiengesellschaft Verfahren zum Betreiben einer sicherheitsrelevanten Vorrichtung und Vorrichtung
DE102016200907A1 (de) * 2016-01-22 2017-07-27 Siemens Aktiengesellschaft Verfahren zum Betreiben einer sicherheitsrelevanten Vorrichtung und Vorrichtung
WO2019027839A1 (en) * 2017-08-03 2019-02-07 Arizona Board Of Regents On Behalf Of Northern Arizona University GENERATION OF NATIVE TERNARY RANDOM NUMBERS
US10970046B2 (en) 2019-02-22 2021-04-06 International Business Machines Corporation Random number generator compatible with complementary metal-oxide semiconductor technology
US10977003B2 (en) * 2019-08-28 2021-04-13 International Business Machines Corporation Linear feedback shift register with near-maximal length sequences
US11048476B2 (en) * 2019-08-28 2021-06-29 International Business Machines Corporation Non-linear feedback shift register

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DD246663A1 (de) * 1986-03-14 1987-06-10 Adw Ddr Generator zur erzeugung pseudozufaelliger impulsfolgen
JPH04250713A (ja) * 1991-01-28 1992-09-07 Hitachi Ltd M系列生成回路
US5365585A (en) * 1993-08-30 1994-11-15 Motorola, Inc. Method and apparatus for encryption having a feedback register with selectable taps
DE4409341A1 (de) * 1994-03-18 1995-09-21 Sel Alcatel Ag Pseudozufallsfolgengenerator
JPH114144A (ja) * 1997-06-11 1999-01-06 Matsushita Electric Ind Co Ltd 符号系列生成装置
JPH1146132A (ja) * 1997-07-28 1999-02-16 Yozan:Kk 符号生成回路
DE10212605A1 (de) * 2002-03-21 2003-10-16 Infineon Technologies Ag Verfahren und Vorrichtung zur getakteten Ansteuerung eines Schaltelements

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4852023A (en) * 1987-05-12 1989-07-25 Communications Satellite Corporation Nonlinear random sequence generators
GB9003999D0 (en) * 1990-02-22 1990-04-18 Enfranchise Sixty Ltd Pseudo-random sequence generators
JP3227600B2 (ja) 1997-07-28 2001-11-12 啓一 中村 微調整無しで高精度高温度安定性を実現できる d−a変換器
JP3866105B2 (ja) * 1999-12-02 2007-01-10 インフィネオン テクノロジーズ アクチエンゲゼルシャフト 暗号化機能を備えるマイクロプロセッサ装置
US6763363B1 (en) * 1999-12-02 2004-07-13 Honeywell International Inc. Computer efficient linear feedback shift register
US7571200B2 (en) * 2002-04-24 2009-08-04 Hewlett-Packard Development Company, L.P. Seedable pseudo-random number generator
US7248696B2 (en) * 2002-09-12 2007-07-24 International Business Machines Corporation Dynamic system bus encryption using improved differential transitional encoding
DE10339999B4 (de) * 2003-08-29 2005-07-14 Infineon Technologies Ag Pseudozufallszahlengenerator
DE10347455B4 (de) * 2003-10-13 2010-08-26 Infineon Technologies Ag Pseudozufallszahlengenerator für einen Stream Cipher

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DD246663A1 (de) * 1986-03-14 1987-06-10 Adw Ddr Generator zur erzeugung pseudozufaelliger impulsfolgen
JPH04250713A (ja) * 1991-01-28 1992-09-07 Hitachi Ltd M系列生成回路
US5365585A (en) * 1993-08-30 1994-11-15 Motorola, Inc. Method and apparatus for encryption having a feedback register with selectable taps
DE4409341A1 (de) * 1994-03-18 1995-09-21 Sel Alcatel Ag Pseudozufallsfolgengenerator
JPH114144A (ja) * 1997-06-11 1999-01-06 Matsushita Electric Ind Co Ltd 符号系列生成装置
JPH1146132A (ja) * 1997-07-28 1999-02-16 Yozan:Kk 符号生成回路
DE10212605A1 (de) * 2002-03-21 2003-10-16 Infineon Technologies Ag Verfahren und Vorrichtung zur getakteten Ansteuerung eines Schaltelements

Also Published As

Publication number Publication date
DE102004013480B4 (de) 2013-01-24
US7979482B2 (en) 2011-07-12
FR2868628A1 (fr) 2005-10-07
FR2868628B1 (fr) 2007-10-12
US20050207207A1 (en) 2005-09-22

Similar Documents

Publication Publication Date Title
DE10357782B3 (de) Vorrichtung und Verfahren zum Erzeugen von Zufallszahlen mit einem Pseudozufallsgenerator
DE10339999B4 (de) Pseudozufallszahlengenerator
DE10347455B4 (de) Pseudozufallszahlengenerator für einen Stream Cipher
DE60222052T2 (de) Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA)
DE102005010779B4 (de) Schlüsseldispositionsvorrichtung und System zur Ver-/Entschlüsselung von Daten
DE102004013480B4 (de) Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen
DE69933108T2 (de) Synchrone bitstromverschlüsselung
DE102015110431A1 (de) Kryptografischer Prozessor, Verfahren zum Implementieren eines kryptografischen Prozessors und Schlüsselgenerierungsschaltung
DE102009027086A1 (de) Vorrichtung und Verfahren zur Bildung einer Signatur
DE10232348A1 (de) Integrierte Halbleiterschaltung mit interner Busdatenübertragung und zugehöriges Datenübertragungsverfahren
EP3215931B1 (de) Vorrichtung und verfahren zur multiplikation zur erschwerung von seitenkanalangriffen
DE60004409T2 (de) Schaltung und Verfahren zur Zufallszahlerzeugung
EP1342153B1 (de) Verfahren und vorrichtung zum erzeugen einer pseudozufallsfolge mittels diskretem logarithmus
EP1324188A2 (de) Verfahren zum Multiplizieren zweier Faktoren aus dem Galois-Feld sowie Multiplizierer zum Durchführen des Verfahrens
DE102004037814B4 (de) Vorrichtung und Verfahren zum Erzeugen einer Folge von Zahlen
DE102004013481B4 (de) Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen mit externer Auffrischung
DE10250831B3 (de) Vorrichtung und Verfahren zum Erzeugen einer pseudozufälligen Folge von Zahlen
DE10319508B4 (de) Vorrichtung und Verfahren zum Erzeugen einer Folge von Zahlen
DE60302249T2 (de) Aes mixcolumn transformation
DE10303723B4 (de) Vorrichtung und Verfahren zum Berechnen von verschlüsselten Daten aus unverschlüsselten Daten oder von unverschlüsselten Daten aus verschlüsselten Daten
DE102004042756B3 (de) Verfahren und Anordnung zur Erzeugung von Pseudozufallszahlen
DE10136575B4 (de) Verfahren und Einrichtung zum Ausführen von Scramblermechanismen
DE102022102594A1 (de) Integrierte schaltung zum erzeugen von zufallsvektoren
DE2044628C1 (de) Vorrichtung zum kontinuierlichen Verschlüsseln einer durch Binärzeichen dargestellten Nachricht
DE102015114234A1 (de) Zufallszahlgenerator und Verfahren zum Generieren von Zufallszahlen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R018 Grant decision by examination section/examining division
R082 Change of representative
R020 Patent grant now final

Effective date: 20130425

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