DE10357782B3 - Vorrichtung und Verfahren zum Erzeugen von Zufallszahlen mit einem Pseudozufallsgenerator - Google Patents

Vorrichtung und Verfahren zum Erzeugen von Zufallszahlen mit einem Pseudozufallsgenerator

Info

Publication number
DE10357782B3
DE10357782B3 DE2003157782 DE10357782A DE10357782B3 DE 10357782 B3 DE10357782 B3 DE 10357782B3 DE 2003157782 DE2003157782 DE 2003157782 DE 10357782 A DE10357782 A DE 10357782A DE 10357782 B3 DE10357782 B3 DE 10357782B3
Authority
DE
Germany
Prior art keywords
random number
number generator
pseudo
sequence
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE2003157782
Other languages
English (en)
Inventor
Berndt Gammel
Rainer GÖTTFERT
Holger Sedlak
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 DE2003157782 priority Critical patent/DE10357782B3/de
Application granted granted Critical
Publication of DE10357782B3 publication Critical patent/DE10357782B3/de
Application status is Active legal-status Critical
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Card specific authentication in transaction processing
    • G06Q20/4097Mutual authentication between card and transaction partners
    • G06Q20/40975Use of encryption for mutual authentication
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system

Abstract

Ein erfindungsgemäßer Zufallszahlengenerator umfaßt einen Pseudozufallszahlengenerator (1000), einen Speicher (1400) sowie eine Ablaufsteuerung (1600). In dem Speicher (1400) sind Initialisierungsinformationen für den Pseudozufallszahlengenerator abgespeichert, die eine echte Zufallszahl sind oder von einer echten Zufallszahl abgeleitet worden sind. Die echte Zufallszahl wurde bei der Herstellung des erfindungsgemäßen Zufallszahlengenerators in der Fabrik erzeugt und in dem Speicher abgespeichert. Damit wird ein Zufallszahlengenerator geschaffen, der vollständig aus Digitalelementen besteht. Damit überragen die Eigenschaften im Hinblick auf Effizienz, Schnelligkeit, Sicherheit und Qualität der erzeugten Zufallszahlen.

Description

  • Die vorliegende Erfindung bezieht sich auf Zufallszahlengeneratoren und insbesondere auf Zufallszahlengeneratoren, die für kryptographische Anwendungen oder andere Anwendungen eingesetzt werden, bei denen Zufallszahlen mit hoher Qualität benötigt werden.
  • Bekannte Zufallszahlengeneratoren, wie sie beispielsweise für Chips eingesetzt werden, die für kryptographische Zwecke oder andere Zwecke, bei denen Zufallszahlen hoher Qualität benötigt werden, weisen typischerweise einer physikalischen Zufallszahlengenerator (RNG; RNG = Random Number Generator) auf. Dieser physikalische Zufallszahlengenerator ist z. B. in einem Mikrocontroller einer Chipkarte integriert. Solche auf eine Chipkarte eingesetzten physikalischen Zufallszahlengeneratoren, die sogenannte „echte" Zufallszahlen erzeugen, basieren in der Regel auf spannungsgesteuerten Oszillatoren, auf thermisch rauschenden Widerständen, aus Dioden, die ein Schrotrauschen aufweisen oder ähnlichen Elementen, bei denen ein Rauschen, also ein Zufallssignal, ansprechend auf einen physikalischen Prozeß erzeugt wird.
  • Die erzeugten Zufallszahlen werden für verschiedene Sicherheitsapplikationen, die innerhalb der Chipkarte ablaufen, benötigt. Zum Beispiel werden aus den bereitgestellten Zufallszahlen kryptographische Schlüssel abgeleitet. Oder es werden Zufallszahlen für sogenannte Randomisierungen benötigt, um auf diese Weise einen ablaufenden kryptographischen Algorithmus gegen Seitenkanalattacken zu schützen. Darüber hinaus können Zufallszahlen in der Chipkarte zu Konfusionszwecken eingesetzt werden. Hierbei werden Zufallszahlen in unregelmäßigen Abständen (die ihrerseits aus dem Zufallszahlengenerator abgeleitet werden) über einen internen Datenbus geschickt mit dem alleinigen Zweck, einen potentiellen Angreifer zu verwirren.
  • Ein Zufallszahlengenerator, der auf einem physikalischen Zufallsprozeß beruht, hat die folgenden Nachteile:
    • 1. Sein Aufbau auf dem Silizium des Mikrocontrollers ist umständlich und teuer.
    • 2. Die Funktionsweise des physikalischen Zufallszahlengenerators wird beeinträchtigt von äußeren Einflüssen, wie z. B. von Temperaturschwankungen.
    • 3. Nachdem der physikalische Zufallsprozeß im RNG-Analogteil digitalisiert wird (im RNG-Digitalteil), stellt sich fast immer heraus, daß die erzeugte zufällige Bitfolge mit einer Schiefe behaftet ist. Unter Schiefe versteht man ein Überwiegen der Nullen oder Einsen. Dieses Ungleichgewicht muß durch eine mathematische Nachbearbeitung behoben werden.
    • 4. Häufig ist die Geschwindigkeit, mit der die Zufallszahlen erzeugt werden, nicht groß genug.
  • Die DE 199 10 729 C1 offenbart einen Zufallszahlengenerator mit drei echten Zufallsgeneratoren, die beispielsweise in Form von spannungsgesteuerten Oszillatoren ausgeführt sind, wobei der Spannungssteuereingang eines spannungsgesteuerten Oszillators mit einer Rauschspannungsquelle verbunden ist. Die Ausgangswerte der echten Zufallszahlengeneratoren werden einem XOR-Gatter zugeführt, das ein Speicherelement speist. Das Ausgangsbit des Speicherelements wird ebenfalls dem XOR-Gatter zugeführt. Sämtliche Speicherelemente sind in einer Ringkonfiguration angeordnet, wobei von jedem Speicherelement ein Ausgangsbit geliefert wird.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, ein einfacheres und praktikableres Konzept zum Erzeugen von Zufallszahlen zu schaffen.
  • Diese Aufgabe wird durch eine Vorrichtung zum Erzeugen von Zufallszahlen nach Patentanspruch 1, eine Chipkarte nach Patentanspruch 30, ein Verfahren zum Erzeugen von Zufallszahlen nach Patentanspruch 31, ein Computer-Programm nach Patentanspruch 34, ein Verfahren zum Herstellen eines Zufallszahlengenerators nach Patentanspruch 32 oder ein Verfahren zum Personalisieren eines Zufallszahlengenerators nach Patentanspruch 33 gelöst.
  • Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß das Problem der Erzeugung und Bereitstellung von Zufallszahlen für Chipkartenanwendungen dadurch gelöst werden kann, daß ein auf physikalischen Prinzipien basierender Zufallszahlengenerator durch einen in Hardware implementierbaren Pseudozufallszahlengenerator ersetzt wird. Der verwendete Pseudozufallszahlengenerator erfüllt vorzugsweise die Anforderungen, wie sie für kryptographische Anwendungen benötigt werden, wenn er für kryptographische Zwecke eingesetzt werden soll. Darüber hinaus wird es bevorzugt, daß die vom Pseudozufallszahlengenerator erzeugte Folge von Pseudozufallszahlen eine so große Periodenlänge hat, daß diese im Verlauf einer vorbestimmten Lebensdauer des Chips bzw. der Chipkarte nicht aufgebraucht wird bzw. vorzugsweise daß höchstens die Hälfte der gesamten Periodenlänge aufgebraucht wird. Erfindungsgemäß wird dieser Pseudozufallszahlengenerator mit einer für hohe Lebensdauern vorzugsweise hohen Periodenlänge mit einer echten Zufallszahl bzw. einer von einer echten Zufallszahl abgeleiteten Initialisierungsinformation initialisiert. Erfindungsgemäß wird hierfür der Zufallszahlengenerator zunächst hergestellt, derart, daß er einen vorzugsweise vollständig digitalen Pseudozufallszahlengenerator, eine vorzugsweise vollständige digitale Ablaufsteuerung und einen vorzugsweise nicht-flüchtigen Speicher (NVM; NVM = Non-Volatile Memory) hat. In der Chipfabrik wird dann mittels eines echten Zufallszahlengenerators, der prinzipiell beliebig komplex sein kann und daher beliebig gute Zufallszahlen liefern kann, eine Zufallszahl erzeugt und in den nicht-flüchtigen Speicher des Chips geschrieben.
  • Dann wird der Chip zum Kunden ausgeliefert. Je nach Anwendung kann der Kunde diese echte Zufallszahl mit höchster Qualität vor der Inbetriebnahme seines Pseudozufallszahlengenerators auf dem Chip, den der Kunde gerade erworben hat, noch mit einer eigenen Personalisierungsinformation verschlüsseln, wenn der Kunde sichergehen will, daß die später für den Pseudozufallszahlengenerator verwendete Initialisierungsinformation nicht komplett zufällig ist, sondern auch ausschließlich ihm selbst bekannt ist. Für nicht so sichere Anwendungen kann auch auf diese Verschlüsselung der Zufallszahl verzichtet werden, und der Kunde kann die Zufallszahl direkt zur gewissermaßen ersten Inbetriebnahme des Pseudozufallszahlengenerators nehmen. Die von dem Pseudozufallszahlengenerator ausgegebene Zufallszahlenfolge ist zweifelsohne eine deterministische Abfolge von Zahlen, die jedoch eine vorzugsweise sehr hohe Periodenlänge hat. Nachdem die Auswahl der aktuellen Periode, die der Pseudozufallszahlengenerator liefert, unter allen möglichen von dem Pseudozufallszahlengenerator erzeugbaren Perioden aufgrund der Initialisierungsinformation, die eine echte Zufallszahl ist, zufällig vorgenommen wird, hat die gesamte Pseudozufallszahlenfolge, wenn die einzelnen Zufallszahlen an sich betrachtet werden, eine Zufallszahlenqualität, die höchste kryptographische Anforderungen erfüllt. In anderen Worten ausgedrückt hat die gesamte Folge eine Zufallseigenschaft, da der Ursprung bzw. Keim bzw. die Initialisierungsinformation, von der die Folge abgeleitet ist, eine Zufallszahl ist, die ihre zufällige Eigenschaft gewissermaßen auf die gesamte vom Pseudozufallszahlengenerator erzeugte Zahlenfolge „überträgt".
  • Bei einer ersten Inbetriebnahme des erfindungsgemäßen Zufallszahlengenerators wird durch eine Ablaufsteuerung zunächst die echte Zufallszahl oder die verschlüsselte Zufallszahl aus dem Speicher ausgelesen und zur Initialisierung des Pseudozufallszahlengenerators verwendet. Der Pseudozufallszahlengenerator liefert dann mit den bekannten guten Eigenschaften eine Folge von Zahlen, die aufgrund der Tatsache, daß der Pseudozufallszahlengenerator mit einer echten Zufallszahl initialisiert worden ist, eine hohe und sogar für kryptographische Anwendungen ausreichende Zufallszahleneigenschaft haben.
  • Werden dann keine Zufallszahlen mehr benötigt, wird also die Chipkarte beispielsweise außer Betrieb genommen, so wird der vorzugsweise letzte Zustand des Zufallszahlengenerators abgespeichert und entweder direkt oder verschlüsselt im Speicher des Chips abgelegt. Bei einer erneuten Inbetriebnahme des Chips wird dann der Pseudozufallszahlengenerator erneut initialisiert, nun jedoch nicht mehr mit der anfänglichen Zufallszahl, die vorzugsweise überschrieben worden ist, sondern mit dem bei der letzten Außerbetriebnahme abgespeicherten Zustand. Falls der letzte Zustand verschlüsselt abgespeichert worden ist, ist vor der Initialisierung eine Entschlüsselung des im Speicher abgelegten Initialisierungswerts erforderlich, um den Pseudozufallszahlengenerator so zu initialisieren, daß er bei der erneuten Inbetriebnahme an der Stelle in der Periode „weiter macht", die gekommen wäre, wenn der Pseudozufallszahlengenerator früher nicht außer Betrieb genommen worden wäre.
  • Wird der Zufallszahlengenerator dann wieder außer Betrieb genommen, so wird wieder der vorzugsweise letzte aktuelle Zustand des Pseudozufallszahlengenerators verwendet und je nach Ausführung verschlüsselt oder nicht-verschlüsselt und dann im Speicher abgespeichert, derart, daß dann, wenn wieder Zufallszahlen benötigt werden, an der entsprechenden Stelle in der Periode, die ursprünglich auf die echte Zufallszahl zurückgeht, wieder weitergemacht werden kann.
  • Daraus wird ersichtlich, daß die im Speicher gespeicherten Initialisierungsinformationen bei der ersten Inbetriebnahme gleich der Zufallszahl sind, die fabrikseitig eingespeichert worden ist, oder durch Verschlüsselung von der in der Fabrik eingespeicherten Zufallszahl abgeleitet worden sind. In einem Zwischen-Betrieb, also wenn der Zufallszahlengenerator einmal gelaufen ist und dann außer Betrieb genommen worden ist und dann wieder in Betrieb genommen worden ist, also wenn der Pseudozufallszahlengenerator bereits an irgendeiner Stelle innerhalb der durch die ursprüngliche Zufallszahl definierten Zufallszahlen-Ausgangsfolge ist, sind die Initialisierungsinformationen, die im Speicher gespeichert werden, nach wie vor von der Zufallszahl abgeleitet, die ursprünglich fabrikseitig dem Chip zugeordnet und abgespeichert worden ist, da unabhängig von einer Operation, die mit den Initialisierungsinformationen durchgeführt worden ist, die Zufallseigenschaft bestehen bleibt. Die Zufallseigenschaft bleibt insbesondere dann bestehen, wenn eine Zufallszahl verschlüsselt wird, oder wenn eine Zufallszahl verwendet wird, um den Pseudozufallszahlengenerator zu initialisieren, um dann zu einem späteren „Zeitpunkt" in der Ausgangsfolge wieder einen Zustand abzunehmen, der auf deterministische Art und Weise von der ursprünglichen Zufallszahl abgeleitet worden ist.
  • Die vorliegende Erfindung ist dahingehend vorteilhaft, daß nunmehr echte Zufallszahlen erzeugt werden können, jedoch ohne die Nachteile eines echten (physikalischen) Zufallszahlengenerators. So benötigt der erfindungsgemäße Zufallszahlengenerator keine Analogelemente, die im Aufbau auf dem Silizium des Mikrocontrollers umständlich und teuer sind.
  • Ferner wird die Funktionsweise des erfindungsgemäßen Zufallszahlengenerators nicht mehr durch äußere Einflüsse beeinträchtigt, wie beispielsweise durch Temperaturschwankungen etc.
  • Ferner werden keine Analog/Digital-Wandler zum Analog/Digital-Wandeln eines natürlich analogen Ausgangssignals eines analogen physikalischen Zufallszahlengenerators benötigt, so daß sämtliche damit verbundenen Problematiken, wie beispielsweise einerseits Integration und andererseits eine nötige mathematische Nachbearbeitung hinfällig werden.
  • Ferner ist die vorliegende Erfindung dahingehend vorteilhaft, daß nicht die Geschwindigkeitsnachteile eines physikalischen Zufallszahlengenerators in Kauf genommen werden müssen, da ein solcher physikalischer Zufallszahlengenerator auf dem Chips selbst nicht mehr benötigt wird. Selbstverständlich wird ein solcher physikalischer Zufallszahlengenerator fab rikseitig benötigt. Nachdem dieser jedoch eine beliebige Anzahl von Chips „seeden" kann, also mit der erfindungemäß genutzten Zufallseigenschaft in Form einer echten Zufallszahl versehen kann, kann dieser physikalische Pseudozufallszahlengenerator in der Fabrik beliebig groß, beliebig teuer und beliebig hochqualitativ ausgelegt werden, ohne daß dadurch die Kosten der Chipherstellung merkbar beeinflußt werden.
  • Ferner ist der erfindungsgemäße Zufallszahlengenerator, nachdem er vorzugsweise nur noch aus Digitalelementen besteht, beliebig skalierbar, also verkleinerbar und damit auf zukünftige Technologien ohne weiteres übertragbar, was im Hinblick auf die Zeit von erheblicher Bedeutung ist, die benötigt wird, bis ein Produkt vom Entwurfsstadium zur Marktreife gelangt. Für das erfindungsgemäße Konzept ist kein Schaltungs-Neuentwurf erforderlich, damit sie in einer neuen Herstellungstechnologie, die noch kleinere Schaltungen ermöglicht, hergestellt werden kann. Würde der erfindungsgemäße Zufallszahlengenerator dagegen Analogelemente haben, so wäre ein neuer Schaltungsentwurf erforderlich, da die Analogelemente typischerweise nicht oder nur in sehr begrenztem Umfang herunterskalierbar sind.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen detailliert erläutert. Es zeigen:
  • 1 ein Blockschaltbild der erfindungsgemäßen Vorrichtung zum Erzeugen von Zufallszahlen;
  • 2 ein Ablaufplan, wie er durch die Ablaufsteuerung bei einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung implementiert wird;
  • 3 ein Flußdiagramm zur Darstellung des erfindungsgemäßen Verfahrens zum Herstellen einer Vorrichtung zum Erzeugen von Zufallszahlen und zur Personali sierung der in einer Herstellungsumgebung hergestellten Vorrichtung zum Erzeugen von Zufallszahlen;
  • 4 ein Blockschaltbild eines erfindungsgemäßen Pseudozufallszahlengenerators gemäß der vorliegenden Erfindung;
  • 5a ein Blockschaltbild eines Pseudozufallszahlengenerators gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung;
  • 5b ein verallgemeinertes Blockschaltbild eines Pseudozufallszahlengenerators gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 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; und
  • 12 ein bekanntes lineares Schieberegister zur Erzeugung einer Zufallszahlenfolge.
  • 1 zeigt eine Vorrichtung zum Erzeugen von Zufallszahlen gemäß der vorliegenden Erfindung. Die Vorrichtung umfaßt einen Pseudozufallszahlengenerator (PZZG) 1000, der ausgebildet ist, um ausgehend von einem Initialisierungswert eine deterministische Zufallszahlenfolge an einem Zufallszahlenausgang 1200 zu erzeugen. Der Pseudozufallszahlengenerator 1000 ist mit einem Speicher 1400 gekoppelt, wobei der Speicher ausgebildet ist, um Initialisierungsinformationen zu speichern, wobei die Initialisierungsinformationen von einer echten Zufallszahl abgeleitet sind oder gleich der echten Zufallszahl sind. Die Initialisierungsinformationen können gleich dem Initialisierungswert sein, mit dem der Pseudozufallszahlengenerator initialisiert wird, oder der Initialisierungswert kann wiederum beispielsweise durch eine bestimmte deterministische Verarbeitung aus den Initialisierungsinformationen abgeleitet werden, so lange die Zufallseigenschaft in den Initialisierungsinformationen durch diese Verarbeitung verbleibt.
  • Beispiele für eine solche Verarbeitung sind eine Verschlüsselung/Entschlüsselung, eine Umsetzung gemäß einer Codetabelle oder gemäß einer Eigenschaft, um z. B. eine x-Bit-Initialisierungsinformation auf einen y-Bit-Initialisierungswert umzusetzen, wobei x und y ungleich sein können. Vorzugsweise und im Interesse einer optimalen Zufallsqualität entsprechen die Initialisierungsinformationen zumindest hinsichtlich der Anzahl von Bits dem Initialisierungswert, den der Pseudozufallszahlengenerator als Keim oder „Seed" benötigt. Hat der Pseudozufallszahlengenerator beispielsweise eine Schieberegisteranordnung mit x Speicherzellen, so werden zum Initialisieren dieser x-Speicherzellen auch x Bits benötigt, wobei der Initialisierungswert für den Pseudozufallszahlengenerator direkt dem Initialisierungs-Bitmuster für die Speicherzellen entspricht, und wobei die im Speicher gespeicherten Initialisierungsinformationen vorzugsweise genau so viel Bits haben wie Register in der Schieberegisteranordnung des Pseudozufallszahlengenerators vorhanden sind.
  • Die erfindungsgemäße Vorrichtung umfaßt ferner eine Ablaufsteuerung 1600, die ausgebildet ist, um den Pseudozufallszahlengenerator bei einer Inbetriebnahme mit Initialisierungsinformationen oder von den Initialisierungsinformationen abgeleiteten Informationen zu laden, und um bei einer Außerbetriebnahme des Pseudozufallszahlengenerators einen Zwischenzustand des Pseudozufallszahlengenerators oder einen von dem Zwischenzustand abgeleiteten Wert in dem Speicher zu speichern. Die Ablaufsteuerung 1600 ist ferner ausgebildet, um bei einer erneuten Inbetriebnahme den Zwischenzustand oder den von dem Zwischenzustand abgeleiteten Wert aus dem Speicher wieder zu gewinnen und aus dem Zwischenzustand oder dem von dem Zwischenzustand abgeleiteten Wert einen neuen Initialisierungswert für den Pseudozufallszahlengenerator abzuleiten oder den Zwischenzustand selbst als den neuen Initialisierungswert zu verwenden. Die Ablaufsteuerung 1600 ist somit ausgebildet, um sowohl auf den Betrieb des Pseudozufallszahlengenerators 1000 als auch auf den Betrieb des Speichers 1400 einzuwirken, wie es durch die entsprechenden Steuerleitungen 1800 und 2000 in 1 schematisch dargestellt ist.
  • Nachfolgend wird Bezug nehmend auf 2 auf die Funktionalität der Ablaufsteuerung 1600 von 1 eingegangen. In einem Schritt 2200 wird zunächst bestimmt, ob die Inbetriebnahme des Pseudozufallszahlengenerators gewünscht ist. Dies ist dann der Fall, wenn die Ablaufsteuerung eine Information darüber erhält, daß Zufallszahlen angefordert werden. Alternativ kann jedoch auch immer dann, wenn der Chip mit Energie versorgt wird, also am Beispiel einer Chipkarte in einen Terminal eingebracht wird, oder in einem elektromagnetischen Versorgungsfeld ist, der Zufallszahlengenerator in Betrieb genommen wird. Hierauf ist die Ablaufsteuerung 1600 in einem Schritt 2400 wirksam, um die Initialisierungsinformationen aus dem Speicher 1400 von 1 zu laden und damit den Pseudozufallszahlengenerator 1000 von 1 zu initialisieren, und zwar über eine Initialisierungsleitung 1900, die in 1 gezeigt ist. Dann, wenn der Pseudozufallszahlengenerator 1000 mit den Initialisierungsinformationen oder von den Initialisierungsinformationen abgeleiteten Informationen initialisiert worden ist, liefert er an seinem Ausgang 1200 Zufallszahlen. Dies wird so lange fortgesetzt, bis eine Außerbetriebnahme 2600 angezeigt wird. Für diesen Fall ist die Ablaufsteuerung 1600 wirksam, um in einem Schritt 2800 den aktuellen Zustand des Pseudozufallszahlengenerators in dem Speicher zu speichern, so daß der Pseudozufallszahlengenerator bei einer erneuten Inbetriebnahme, wie es durch einen Rückführpfeil 2900 dargestellt ist, bei der Periode dort weiter machen kann, wo er aufgehört hatte.
  • Zur Feststellung, ob eine Außerbetriebnahme gewünscht ist, existieren verschiedene Möglichkeiten. Eine Möglichkeit besteht darin, die Energieversorgung des Chips zu überwachen und dann, wenn ein Energieabfall festgestellt wird, also wenn beispielsweise die Chipkarte vom Terminal entfernt wird oder aus einem elektromagnetischen Versorgungsfeld entnommen wird, mit der dann noch beispielsweise in einem hierfür vorgesehenen oder ohnehin vorhandenen Kondensator gespeicherten Energie den vorzugsweise nicht-flüchtigen Speicher 1400 zu beschreiben, und zwar, mit dem aktuellen Zustand des Pseudozufallszahlengenerators oder mit einem Zustand, der zumindest in der Nähe des aktuellen Zustands liegt, also allgemein gesagt mit einem Zwischenzustand des Pseudozufallszahlengenerators. Dies könnte unter Umständen zur Folge haben, dass bei einer Neuinitialisierung die ersten paar Zahlen keine gute Zufallszahleigenschaft haben. Wenn Anwendungen vorhanden sind, die nicht besonders hohe Anforderungen haben, so spielt dies keine Rolle. Selbst bei hohen Anforderungen kann dieser Problematik einfach dadurch begegnet werden, daß standardmäßig eine bestimmte Anzahl von Zufallszahlen ab Initialisie rung weggeworfen werden, also nicht am Ausgang 1200 ausgegeben werden.
  • Alternativ könnte die Ablaufsteuerung 1600 jedoch auch ausgebildet sein, um zu bestimmten vorgegebenen gleichen oder variablen Intervallen einfach einen Zwischenzustand des Pseudozufallszahlengenerators abzuspeichern, so daß keine Energieüberwachung erforderlich ist. Statt dessen ist dann immer im Speicher ein bestimmter Zwischenzustand vorhanden, der auf jeden Fall von der ursprünglich einmal vorhandenen Zufallszahl abgeleitet ist, unabhängig davon, ob dies der aktuelle Zustand unmittelbar vor dem Ausschalten des Chips war oder nicht. Um wieder die Qualität der Zufallszahlen sicherzustellen, kann ohne weiteres eine bestimmte Anzahl von Zufallszahlen nach einer erneuten Inbetriebnahme verworfen werden, wobei die bestimmte Anzahl von dem Intervall vorzugsweise abhängt.
  • Wird der Pseudozufallszahlengenerator in Alternative zu einem Schieberegister, das aus lediglich flüchtigen Speicherzellen besteht, mit nicht-flüchtigen Speicherzellen bzw. Energiegepufferten Speicherzellen betrieben, so kann der Speicher 1400 mit dem Pseudozufallszahlengenerator 1000 zusammenfallen, dahingehend, daß der Pseudozufallszahlengenerator bzw. dessen Speicherzellen-Zustände dann, wenn die Außerbetriebnahme gewünscht ist, „eingefroren" werden, um dann, wenn eine Inbetriebnahme erwünscht ist, die Initialisierungsinformationen, die ja bereits im Speicher sind, dahingehend zu verwenden, daß der Pseudozufallszahlengenerator wieder mit der Ausgabe von weiteren Informationen beginnt. Dies bedeutet, daß im Falle des beschriebenen batteriebetriebenen bzw. gepufferten Pseudozufallszahlengenerators kein vom Zufallszahlengenerator getrennter Speicher benötigt wird, sondern daß dann der Speicher 1400 innerhalb des Pseudozufallszahlengenerators 1000 ist, also sowohl als Speicher zum Speichern des aktuellen Zustands als auch als Speicher eingesetzt wird, der im Schieberegisterbetrieb dazu benötigt wird, um Zufallszahlen am Zufallszahlenausgang 1200 zu erzeugen.
  • Nachfolgend wird Bezug nehmend auf 3 auf ein bevorzugtes Verfahren zum Herstellen eines Zufallszahlengenerators gemäß der vorliegenden Erfindung eingegangen. Zunächst wird in einem Schritt 3000 die in 1 gezeigte Vorrichtung bereitgestellt, ohne daß jedoch der Speicher bereits beschrieben ist. Dann wird in einem Schritt 3200 eine echte Zufallszahl bereitgestellt, beispielsweise durch einen beliebig komplexen und beliebig guten Zufallszahlengenerator. Hierauf wird die in dem Schritt 3200 bereitgestellte echte Zufallszahl in den Speicher 3400 des erfindungsgemäßen Zufallszahlengenerators geladen. Dann ist der erfindungsgemäße Zufallszahlengenerator fertig hergestellt. Erfindungsgemäß geschieht das „Impfen mit Zufall" in einer Herstellungsumgebung bzw. in der Fabrik. Dann wird der fertige Zufallszahlengenerator in Form eines Chips zu einem Kunden ausgeliefert. Falls in der Auslieferung eine Energieversorgung nicht sichergestellt ist, was typischerweise der Fall sein wird, wird der Speicher ein vom Zufallszahlengenerator getrennter Speicher sein, und zwar ein nicht-flüchtiger Speicher (NVM).
  • Je nach Sicherheitsstandard kann der Kunde nunmehr direkt loslegen und Zufallszahlen erzeugen, oder zunächst, wie es in 3 in einem Schritt 3600 gezeigt ist, zunächst die in dem Speicher gespeicherte echte Zufallszahl unter Verwendung einer nur ihm bekannten Benutzer-Pin verschlüsseln und die verschlüsselte Zufallszahl speichern, und zwar entweder im externen Speicher, wenn er nicht gleich Zufallszahlen erzeugen will, oder direkt im Zufallszahlengenerator, wenn dieser gleich initialisiert werden soll und mit der Zufallszahlenerzeugung loslegen soll. Im ersten Fall sind der Schritt 3600 und der Schritt 3800 des Initialisierens getrennt voneinander vorhanden, während diese beiden Schritte im zweiten Fall, also wenn nach der Verschlüsselung sofort initialisiert wird, die Schritte 3600 und 3800 von 3 in einen Vorgang zusammenfallen.
  • Dann, wenn der Pseudozufallszahlengenerator mit der verschlüsselten Zufallszahl initialisiert ist, geht das anhand von 2 beschriebene Prozedere insbesondere beim dritten Schritt 2600 weiter und führt dann zum Schritt 2800 und über die Rückführung 2900 zum Schritt 2200 etc.
  • Nachfolgend wird Bezug nehmend auf die weiteren Figuren eine bevorzugte Ausführung des Pseudozufallszahlengenerators 1000 von 1 beschrieben, die sich dadurch auszeichnet, daß mit einfachen Mitteln und theoretisch vorhersagbar hohe Periodenlängen erzeugt werden können. Im Hinblick auf die Periodenlänge sei darauf hingewiesen, daß die Periodenlänge dann erfindungsgemäß besonders groß wird, wenn als Pseudozufallszahlengenerator kein rückgekoppeltes Schieberegister mit linearer Rückkopplung verwendet wird, sondern ein rückgekoppeltes Schieberegister mit nicht-linearer Rückkopplung, das auch als NLFSR bezeichnet wird, wobei NLFSR für Nonlinear Feedback Shift Register, also für Schieberegister mit nicht-linearer Rückkopplung steht.
  • Durch vorzugsweise verwendete Pseudozufallszahlengeneratoren, wie sie nachfolgend beschrieben werden, können Bitfolgen mit Periodenlängen im Bereich von 2300 und mehr produziert werden. Kleinere Pseudozufallszahlengeneratoren, welche beispielsweise vier Schieberegister mit nicht-linearer Rückkopplung umfassen, wobei das erste Schieberegister 31 Speicherzellen hat, das zweite Schieberegister z. 32 Speicherzellen, das dritte Schieberegister beispielsweise 33 Speicherzellen und das vierte Schieberegister beispielsweise 35 Speicherzellen hat, erfordern eine Initialisierungsinformation bzw. einen Initialisierungswert von 131 Bit, der auch als 131-Bit-Seed bezeichnet wird. Damit kann eine Zufallsfolge mit einer Periodenlänge von 2130 erzeugt werden.
  • Wie es nachfolgend dargelegt wird, ist diese Periodenlänge ausreichend für höchste kryptographische Ansprüche. Um dies zu verdeutlichen sei davon ausgegangen, daß der Chip 30 Jahre lang ununterbrochen mit einer Geschwindigkeit von 1000 Gigabit pro Sekunde Zufallsbits erzeugt. Danach sind nach 30 Jahren 1019 Bits aufgebraucht. Es sei darauf hingewiesen, daß 1019 gleich 263 ist, was kleiner als 265 ist, wobei 265 gleich der Quadratwurzel aus der Periodenlänge von 2130 ist. Damit wird auch die „Philosophie" erfüllt, die für die Zufallszahlengenerierung bevorzugt wird, nämlich daß niemals die gesamte Periodenlänge verbraucht werden soll, sondern daß in etwa nur die Bits bis zur Quadratwurzel aus der Periodenlänge verbraucht werden sollen. In diesem Zusammenhang sei darauf hingewiesen, dass die vorstehende Annahme, nämlich daß der Chip 30 Jahre lang ununterbrochen Zufallsbits erzeugt, und zwar mit einer Geschwindigkeit von 1 Gigabit pro Sekunde, eine extreme Anforderung ist.
  • Ein Schieberegister mit relativ geringer Periodenlänge, das jedoch durchaus für weniger kritische Anwendungen ausreichend sein kann, 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 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 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 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.
  • Üblicherweise werden lineare Schieberegister durch ihr charakteristisches Polynom beschrieben. Der Grad des charakteristischen Polynoms ist gleich der Anzahl von Verzögerungselementen, die typischerweise als Flip-Flops ausgeführt werden, des betrachteten Schieberegisters. Die Exponenten der Terme von f(x) mit Ausnahme des führenden Terms entsprechen den Verzögerungselementen des Schieberegisters, die zu der Rückkopplung beitragen. Das in 12 dargestellte lineare Schieberegister hätte daher ein charakteristisches Polynom der Art: f(x) = xn+1 + xn + ... + x + 1 .
  • Werden solche linearen Schieberegister, wie sie in 12 beispielhaft dargestellt sind, mit einem Initialisierungszustand von der Initialisierungseinrichtung 55 geladen, wobei dieser Zustand auch als Anfangs-Zustandsvektor bezeichnet wird, so geben sie typischerweise eine periodische Sequenz aus, die abhängig von der Implementierung eine bestimmte Vorperiode oder Preperiode und eine nachfolgende Periode haben. Lineare Schieberegister sind immer periodisch. In technischen Anwendungen wird häufig angestrebt, dass die Ausgabefolge sowohl eine große Periodenlänge als auch eine hohe lineare Komplexität hat.
  • Prinzipiell werden Pseudozufallszahlengeneratoren, wie sie beispielsweise anhand von 12 dargestellt worden sind, für verschiedene Zwecke benötigt, nämlich zu Simulationszwecken, zum Durchführen von zufälligen Stichproben bei Statistikanwendungen, zum Testen von Computerprogrammen, bei der sequentiellen Chiffrierung zur Generierung einer Schlüsselfolge, für probabilistische Algorithmen, in der numerischen Mathematik, insbesondere zur numerischen Integration, zur Schlüsselgenerierung in der Kryptologie oder für Monte-Carlo-Methoden. Insbesondere werden Pseudozufallszahlengeneratoren kommerziell eingesetzt für Sicherheits-ICs, innerhalb von ty pischerweise integrierten Zufallszahlengeneratoren, innerhalb von Kryptomodulen oder für Pay-TV-Anwendungen oder auch in Chipkarten für Handys etc.
  • Grundsätzlich können Zufallszahlen auf der Basis eines physikalisch zufälligen Prozesses generiert werden, oder aber durch bestimmte mathematische Manipulationen. Lediglich im letzteren Fall spricht man von Pseudozufallszahlen, während man im ersteren Fall von echten Zufallszahlen ausgeht. Bei einem Pseudozufallszahlengenerator werden aus bestimmten Anfangswerten, dem sogenannten Seed, der durch die Initialisierungseinrichtung 55 von 12 bewirkt wird, Zahlen mit typischerweise sehr hoher Geschwindigkeit generiert, die eine ganze Reihe von Tests bestehen müssen, welche echte Zufallszahlen auch bestehen würden. Das Seed wird bei der vorliegenden Erfindung durch einen echten physikalischen Zufallsprozess in der Fabrik erzeugt oder von dem Zufallsprozeß abgeleitet. Wie es anhand von 12 dargelegt worden ist, werden lineare rückgekoppelte Schieberegister (LFSR; LFSR = Linear Feedback Shift Register) verwendet, um Pseudozufallszahlengeneratoren zu schaffen. Schieberegister mit linearer Rückkopplung sind insofern von Vorteil, da es mathematische Theorien dahingehend gibt, dass gewisse Eigenschaften der erzeugten Pseudozufallszahlen theoretisch vorhergesagt werden können. Die wichtigsten Eigenschaften sind die Periodenlänge und die lineare Komplexität der Ausgabefolge. So existieren Theorien für lineare Schieberegister, die es ermöglichen, die Ausgabefolge entweder exakt vorherzusagen oder zumindest Aussagen über die Mindestlänge der Periode sowie über die Mindestgröße der linearen Komplexität zu treffen. In anderen Worten können durch mathematische Verfahren untere Schranken für die Periodenlängen und die lineare Komplexität angegeben und bewiesen werden.
  • 4 zeigt einen bevorzugten Pseudozufallszahlengenerator mit einer Einrichtung 100 zum Liefern einer Anzahl von 2n Zahlenfolgen, wobei n größer oder gleich 2 ist. Die Einrichtung 100 ist ausgebildet, um die Zahlenfolgen ZF1, ZF2, ZF3, ... ZF(2n-2), ZF(2n-1) und ZF(2n) bereit zu stellen. Der Einrichtung zum Liefern nachgeschaltet ist eine Kombinationseinrichtung 102, die in 4 gestrichelt eingezeichnet ist. Die Kombinationseinrichtung 102 gliedert sich in eine Zwischenverarbeitungsstufe 102a und 102b unter. Die Zwischenverarbeitungsstufe 102a ist ausgebildet, um sämtliche von der Einrichtung 100 gelieferten 2n Zahlenfolgen miteinander zu kombinieren, um eine Zwischenverarbeitungsfolge auf einer Zwischenverarbeitungsfolgenleitung 104 zu liefern. Die Endverarbeitungsstufe 102b ist wiederum ausgebildet, um die Zwischenverarbeitungsfolge auf der Leitung 104 mit einer Anzahl von k Zahlenfolgen, also einer Untergruppe mit k Zahlenfolgen der ursprünglichen 2n Zahlenfolgen, zu kombinieren. Vorzugsweise ist die Endverarbeitungsstufe 102b ausgebildet, um nicht nur eine erste (obere) Untergruppe von k Zahlenfolgen 106a, sondern auch eine zweite (untere) Untergruppe von k Zahlenfolgen 106b mit der Zwischenverarbeitungsfolge auf der Leitung 104 zu kombinieren, um an einem Ausgang 108 der Endverarbeitungsstufe, welche gleichzeitig der Ausgang des Pseudozufallszahlengenerators ist, über der Zeit gesehen eine Ausgangsfolge zu erhalten, die die Pseudozufallszahlenfolge darstellt.
  • Im Hinblick auf die Ausgangsfolge am Ausgang 108 können entweder die einzelnen Bits als Pseudozufallszahlen betrachtet werden, die entweder den Wert 0 oder den Wert 1 annehmen. Alternativ kann die Ausgangsfolge auch als Pseudozufallszahlenfolge aufgefasst werden, bei der eine Pseudozufallszahl eine bestimmte Anzahl von Bits aufweist, wie beispielsweise eine 32-Bit-Zufallszahl, eine 64-Bit-Zufallszahl.
  • Nachfolgend wird Bezug nehmend auf 5a ein anderer Pseudozufallszahlengenerator gemäß einem bevorzugten Ausführungsbeispiel beschrieben. Er gliedert sich wieder in die Einrichtung 100 zum Liefern von 2n Zahlenfolgen sowie in die Zwischenverarbeitungseinrichtung 102a und die Endverarbeitungseinrichtung 102b auf. Die Einrichtung 100 zum Liefern von 2n Zahlenfolgen umfasst vorzugsweise eine Anzahl von 2n Elementarschieberegistern mit einer Anzahl von Speicherzellen, wobei die Anzahl von Speicherzellen jeweils neben dem entsprechenden Elementarschieberegister, wie beispielsweise 100a, 100b, 100c und 100d mit R, S, T bzw. U bezeichnet ist. Die einzelnen Elementarschieberegister 100a-100d, die alle vorzugsweise eine nicht-lineare Rückkopplungseigenschaft haben, sind mit einer Initialisierungseinrichtung 110 gekoppelt, die ausgebildet ist, um einen Keim bzw. „Seed" bereitzustellen, um die einzelnen Elementarschieberegister 100a-100d in einen definierten Anfangszustand zu versetzen, damit sie ausgehend von diesem Anfangszustand jeweils eine reproduzierbare definierte Pseudozufallszahlenfolge erzeugen. Es sei darauf hingewiesen, dass alle nicht-linearen Schieberegister 100a-100d auf denselben Wert oder auf unterschiedliche Werte initialisiert werden können. Typischerweise werden die Elementarschieberegister jedoch unterschiedliche Anzahlen von Speicherzellen haben, so dass sie typischerweise auf unterschiedliche Werte initialisiert werden.
  • 5a zeigt gewissermaßen eine Minimalversion, da die Einrichtung 100 lediglich vier Elementarschieberegister 100a, 100d umfasst, derart, dass der Parameter n gleich 2 ist. Aufgrund der Definition des Parameters k, der also die Anzahl der Zahlenfolgen wiedergibt, die nicht nur der Zwischenverarbeitungsstufe sondern auch der Endverarbeitungsstufe bereitgestellt werden, kann dieser Parameter bei dem in 5a gezeigten Ausführungsbeispiel nur den Wert „1" annehmen, derart, dass die obere Untergruppe von k Zahlenfolgen, die in 5a mit 106a bezeichnet ist, nur eine einzige Zahlenfolge umfasst, und dass die untere Untergruppe von Zahlenfolgen, die in 5a mit 106b bezeichnet ist, ebenfalls nur eine einzige Zahlenfolge umfasst, die von der Einrichtung 100 bereitgestellt wird.
  • Bei dem in 5a gezeigten Ausführungsbeispiel ist die Zwischenverarbeitungseinrichtung ausgebildet, um einen ersten Anfangsaddierer 120a sowie einen zweiten Anfangsaddierer 120b zu umfassen, um zunächst ein erstes Unterverarbeitungsergebnis an einer oberen Addiererausgangsleitung 122a sowie ein entsprechendes zweites Unterverarbeitungsergebnis an einer unteren Addiererausgangsleitung 122b zu erhalten. Die Signale auf den Leitungen 122a und 122b werden schließlich in einem Multiplizierer 124 miteinander multipliziert, um auf der Leitung 104 die Zwischenverarbeitungsfolge auszugeben. Die Zwischenverarbeitungsfolge wird dann der Endverarbeitungsstufe 102b zugeführt, die bei lediglich einen einzigen Addierer 126 umfasst, um die Zwischenverarbeitungsfolge auf der Leitung 104 mit der ersten Untergruppe 106a von k Zahlenfolgen und der zweiten Untergruppe 106b mit k Zahlenfolgen aufzuaddieren, um die Ausgangsfolge zu erhalten.
  • Im einzelnen besteht das Schieberegister 100a aus R Speicherzellen. Das Schieberegister 100b besteht aus S Speicherzellen. Das Schieberegister 100c besteht aus T Speicherzellen und das Schieberegister 100d umfasst U Speicherzellen. Prinzipiell sind die Schieberegister derart aufgebaut, wie es nachfolgend noch Bezug nehmend auf 41 oder die 6 und 7 dargelegt wird.
  • Bei einem bevorzugten Ausführungsbeispiel sind die Schieberegister derart aufgebaut, dass die Anzahlen R, S, T und U paarweise teilerfremd sind. Bei einem bevorzugten Ausführungsbeispiel werden die Werte R = 23, S = 19, T = 22 und U = 21 gewählt. Damit ergibt sich aufgrund der Zusammenhänge, die später noch erläutert werden, für die Periodenlänge der Schlüsselfolge ein Näherungswert folgendermaßen:
    Periodenlänge ≈ 285.
  • Für die lineare Komplexität der Schlüsselfolge ergibt sich ein Näherungswert, der aufgrund der Zusammenhänge, die später noch dargelegt werden, folgendermaßen lautet:
    Lineare Komplexität ≈ 295.
  • In einem anderen Anwendungsbeispiel könnte R = 31, S = 29, T = 30 und U = 25 gelten. In diesem Fall ergibt sich für die Periodenlänge der ungefähre Wert:
    Periodenlänge ≈ 2115.
  • Für die lineare Komplexität ergibt sich der folgende Wert: Lineare Komplexität ≈ 261.
  • Nachfolgend werden die bevorzugten Eigenschaften des in 5a dargestellten Pseudozufallszahlengenerators noch einmal übersichtlich dargestellt. Im einzelnen werden die Voraussetzungen dafür angegeben, um zum einen maximale Vorhersagbarkeit und zum anderen maximale Periodizität, maximale lineare Komplexität, beste Korrelationsimmunität und beste Lawinenkriteriumergebnisse zu erhalten:
    NLFSR#1 hat R Speicherzellen
    NLFSR#2 hat S Speicherzellen
    NLFSR#3 hat T Speicherzellen
    NLFSR#4 hat U Speicherzellen
  • Für die Zahlen R, S, T und U muss gelten ggT(R, S) = ggT(R, T) = ggT (R, U) = ggT (S, T) = ggT (S, U) = ggT (T, U) = 1. (ri) = (r0, r1, r2,...) sei die Ausgabefolge von NLFSR#1, (si) = (s0, s1, s2,...) sei die Ausgabefolge von NLFSR#2, (ti) = (t0, t1, t2,...) sei die Ausgabefolge von NLFSR#3, (ui) = (u0, u1, u2,...) sei die Ausgabefolge von NLFSR#4 .
  • Alle Schieberegister seien maximalperiodisch, und so, dass sie Ausgabefolgen von maximaler linearer Komplexität generieren. Es gilt also:
    Per((ri)) = 2R-1 und Lin. Kompl. ((ri)) = 2R-2,
    Per((si)) = 2S-1 und Lin. Kompl. ((si)) = 2S-2,
    Per((ti)) = 2T-1 und Lin. Kompl. ((ti)) = 2T-2,
    Per((ui)) = 2U-1 und Lin. Kompl. ((ui)) = 2U-2.
  • Eigenschaften der Schlüsselfolge (zi):
    • • Maximale Periodenlänge: Per((zi)) = (2R-1)(2S-1)(2T-1)(2U-1)
    • • Hohe lineare Komplexität Lin. Kompl. ((zi)) = (2R-2)(2T-2)+(2A-2)(2U-1)+(2S-2)(2T-2+(2S-2)(2U-2)+2R+2U-4
    • • Korrelationsimmunität (ri=zi)=P(si=zi)=P(ti=zi)=P(ui=zi)=½
  • 5b zeigt eine verallgemeinerte Version des Pseudozufallszahlengenerators von 5a. Es ist insbesondere die erfindungsgemäß bevorzugte Symmetrie zu sehen, dahingehend, dass zunächst 2n Zahlenfolgen bereitgestellt werden, und dass die ersten n Zahlenfolgen, also die Ausgänge der ersten n Schieberegister R1, R2, R3,..., Rn prinzipiell genauso behan delt werden wie die zweiten (unteren) n Ausgangssignale der entsprechenden Elementarschieberegister T1, T2, T3,..., Tn. Die Kombinationseinrichtung mit der Zwischenverarbeitungsstufe einerseits und der Endverarbeitungsstufe andererseits ist wieder wie in 5a aufgebaut. Im Unterschied zu 5a haben jedoch die einzelnen Addierer 120a, 120b und 126 eine größere Anzahl von Eingängen als im ersten Fall, da auch die Anzahl der Zahlenfolgen im Vergleich zum Fall von 5a nunmehr beliebig groß ist. Ferner ist in 5b der Fall gezeigt, bei dem die Zahl k = 3 (oder größer) ist.
  • Die allgemeine Vorrichtung in 5b besteht somit aus 2 × n maximalperiodischen NLFSRs. Die Anzahl der Speicherzellen der 2n NLFSRs sind vorzugsweise paarweise teilerfremd. Weiterhin enthält die Vorrichtung zwei Anfangsaddierer 120a, 120b, einen Multiplizierer 124 und einen Endaddierer 126. Es sei darauf hingewiesen, dass sich Addition und Multiplikation im binären Fall als „modulo 2" verstehen, also dass die Addition gleich der XOR-Verknüpfung ist. Darüber hinaus wird die Multiplikation ebenfalls als Modulo-Multiplikation im binären Fall verstanden, und entspricht somit einer UND-Verknüpfung.
  • Die Kombinationseinrichtung ist ausgebildet, um die Ausgabefolgen der ersten n Schieberegister dem ersten Anfangsaddierer zuzuführen, und um die Ausgangsfolgen der zweiten n Schieberegister dem zweiten Anfangsaddierer zuzuführen. Die Ausgabefolgen der beiden Anfangsaddierer werden dem Multiplizierer zugeführt. Die Ausgabefolge des Multiplizierers wird schließlich dem Endaddierer zugeführt. Ferner wird die Zahl k ausgewählt, um zwischen 1 und n-1 zu liegen. Nun werden k NLFSRs aus der Gruppe der ersten n NLFSRs ausgewählt. Ferner werden ebenfalls k NLFSRs aus der zweiten Gruppe der NLFSRs ausgewählt. Die Ausgabefolgen aller ausgewählten 2k Schieberegister werden direkt in den Endaddierer eingespeist, wie es insbesondere aus den 4 bis 5b ersichtlich ist. Nachfolgend wird für den in 5b gezeigten Fall eine Anzahl von bevorzugten Einstellungen für die Schieberegister und die Kombinationseinrichtung dargelegt, um einen optimalen Pseudozufallszahlengenerator zu erhalten, der die entsprechenden vorher genannten Eigenschaften alle in optimaler Weise aufweist.
  • R1, R2, ..., T1, T2, ... seien die Anzahlen der Speicherzellen der vorkommenden NLFSRs.
  • Die bevorzugte Voraussetzung der Teilerfremdheit lautet:
    ggT(Ri, Rj) = 1, ggT(Ti, Tj) = 1 für i ≠ j
    und ggT (Ri, Tj) = 1 für alle i, j ∈ {1, 2,..., n}.
  • Die Größen aller Schieberegister sind also paarweise teilerfremde Zahlen.
  • Alle vorkommenden Schieberegister sind nichtlinear und maximalperiodisch. Z. B. besteht das erste Schieberegister aus R1 Speicherzellen und produziert eine Bitfolge der Periodenlänge 2R1-1.
  • Die Zahl k erfüllt 1 ≤ k ≤ n-1.
  • Die Ausgabefolge (Zi), i = 1, 2, 3, ... der gesamten Vorrichtung besitzt die folgenden Eigenschaften:
    • 1. (Zi) ist korrelationsimmun bezüglich der Ausgabefolge jedes einzelnen Schieberegisters
    • 2. (Zi) erfüllt das strenge Lawinenkriterium
    • 3. Die Periodenlänge von (Zi) beträgt
      Figure 00270001
  • Die lineare Komplexität L von (Zi) beträgt
    Figure 00280001
  • Die vorstehend beschriebenen Pseudozufallszahlengeneratoren eignen sich insbesondere für die sequentielle Chiffrierung. Vorzugsweise werden die in den 4 bis 5b dargestellten Pseudozufallszahlengeneratoren als einfache Hardware-Vorrichtungen ausgebildet, um in einem Stream-Cipher eingesetzt zu werden.
  • Nachfolgend wird Bezug nehmend auf die 6 bis 10 eine Anzahl von verschiedenen Ausführungsbeispielen zur Ausgestaltung der einzelnen Elementarschieberegister gegeben. Es sei darauf hingewiesen, dass nicht unbedingt alle Schieberegister 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 Multi plexer 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 ei ne 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ückkopplungs einrichtung 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 Ausfü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 Steuereinrichtung 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 00410001
    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ückge koppelten 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.
  • Ein Pseudozufallszahlengenerator produziert bei der vorliegenden Erfindung also in Abhängigkeit von einem frei wählbaren Seed auf deterministische Weise eine Bitfolge, die alle bekannten Kriterien einer echten Zufallsfolge erfüllt. Das Seed ist eine Bitfolge die einige hundert Bits lang ist. Das Einbringen eines Seeds in den Pseudozufallszahlengenerator wird als Initialisierung des Pseudozufallszahlengenerators bezeichnet.
  • Zertifizierer verlangen, daß die für kryptographische Zwecke verwendeten Zufallszahlen echte Zufallszahlen sind, in dem Sinn, daß sie aus einem physikalischen Zufallsprozeß hergeleitet werden und nicht reproduzierbar sind. Diese Anforderungen werden auf folgende Weise erfüllt: Bei der Produktion des Chips wird in der Fabrik in einer Spezialmaschine auf der Grundlage eines physikalischen Zufallsprozesses eine zufällige Bitfolge generiert. Diese Bitfolge ist mindestens hundert Bit lang. Die Bitfolge wird nun als Seed in das NVM (non volatile memory = nichtflüchtiger Speicher, z. B.: EEPROM) des Chips geschrieben. Dieser Vorgang heißt „Personalisierung". Mit Hilfe des auf dem Chip vorhandenen Pseudozufallszahlengenerators wird dann in Abhängigkeit von dem Seed eine Bitfolge generiert, die von einer echten Zufallsfolge nicht unterscheidbar ist.
  • Diese vorzugsweise sehr lange Bitfolge liefert nun alle Zufallszahlen, die während der Lebensdauer des Chips – für welche Anwendungen auch immer – benötigt werden. (Eine Zufallszahl ist ein Teilstück dieser Bitfolge.) Wenn z. B. in einer Anwendung ein Zufalls-Byte benötigt wird, dann werden (die nächsten) acht ausgegebene(n) Bits des Pseudozufallszahlengenerators hergenommen und zu einem Byte zusammengefaßt.
  • Wenn der Chip ausgeschaltet wird, also nicht in Betrieb ist, dann ruht auch der Pseudozufallszahlengenerator. Kurz bevor der Chip ausgeschaltet wird, wird jedoch das zuletzt produzierte Teilstück der Ausgabefolge des Pseudozufallszahlengenerators (in der Länge des ursprünglichen Seeds) in das NVM geschrieben. Beim Neustart des Chips wird der Pseudozufallszahlengenerator mit genau diesem „neuen Seed" aus dem NVM initialisiert. Damit setzt der Pseudozufallszahlengenerator seine Tätigkeit vorzugsweise genau an der Stelle wieder fort, wo er stehen geblieben war vor dem Abschalten.
  • Ein physikalischer RNG (mit Analogteil) wird also durch einen reinen digitalen RNG ersetzt. Dieser ist ein in Hardware implementierter, hochperformanter, kostengünstiger Pseudozufallszahlengenerator. Die Initialisierung des Pseudozufallszahlengenerators erfolgt im Zuge der Personalisierung des Chips in der Fabrik. Hierbei wird auf der Grundlage eines physikalischen Zufallsprozesses ein chipindividuelles, echtzufälliges Seed erzeugt und in das NVM des Chips geschrieben.
  • Wie es bereits ausgeführt worden ist, wird in der Fabrik in einer sicheren Umgebung eine echte zufällige Bitfolge generiert, und zwar durch einen physikalischen Zufallsprozeß, der einen radioaktiven Zerfall, einen spannungsgesteuerten Oszillator, etc. umfassen kann. Diese echte Bitfolge ist dann das Seed. Dieses Seed wird dann vorzugsweise in das EEPROM der Chipkarte geschrieben und mit dem Seed wird der Pseudozufallszahlengenerator auf der Karte initialisiert. Die in der Folge produzierten Zufallsbits werden dann für alle Chipkartenanwendungen genutzt. Bevorzugt für kryptographische Zwecke ist, daß das Seed, und damit die Zufallszahl geheim ist bzw. nur dem Benutzer der Chipkarte bekannt ist, da der Benutzer der Chipkarte eine Zufallszahl beispielsweise zur RSA-Schlüsselerzeugung nutzen wird. Würde jemand in der Lage sein, das Seed von der Karte zu eruieren, so könnte er auch alle Zufallszahlen, die durch den erfindungsgemäßen Zufallszahlengenerator erzeugt werden, eruieren, indem er nämlich den Zufallszahlengenerator selbst nachbaut und das Seed dann einspeist. Daher wird in außerordentlich sicheren Anwendungen, die finanzielle Transaktionen, Zugangsidentifikationen etc. umfassen, bevorzugt, daß der Benutzer der Chipkarte das Seed, bevor er damit seinen Zufallszahlengenerator startet, mit einer nur ihm bekannten Identifikationsinformation (Pin) auf irgendeine Art und Weise verschlüsselt. Es sei darauf hingewiesen, daß in diesem Fall eine Entschlüsselung des verschlüsselten Seeds nicht gebraucht wird, da das verschlüsselte Seed als Startwert bzw. Initialisierungswert für den Pseudozufallszahlengenerator eingesetzt wird. Damit wird sichergestellt, daß der Benutzer auch unabhängig von dem Hersteller der Chipkarte ist, und zwar für den Fall, für den der Hersteller der Chipkarte – unerlaubterweise – die Initialisierungsinformationen, mit denen die Karte ursprünglich in der Fabrik initialisiert wurde, speichern und später herausgeben würde.
  • Es ist auch von Vorteil, daß ein Angreifer nicht dann, wenn die Chipkarte gerade nicht in Betrieb ist, das in dem NVM gespeicherte Seed irgendwie aus der Karte herausbekommen kann. Daher wird es bevorzugt, den Zustand des Pseudozufallszahlengenerators vor dem Ausschalten desselben nicht nur einfach abzuspeichern sondern vor dem Abspeichern zu verschlüsseln, so daß die im Speicher abgelegten Daten für einen Angreifer wertlos sind, es sei denn, er würde die Verschlüsselung „knacken", was mit sehr großem Aufwand verbunden ist wenn nicht unmöglich ist.
  • In diesem Fall würde der Benutzer der Chipkarte dann, wenn eine erneute Inbetriebnahme des Zufallszahlengenerators gewünscht ist, den verschlüsselt abgespeicherten Zwischenzustand zunächst entschlüsseln, um dann mit dem Entschlüsselungsergebnis den Zufallszahlengenerator zu initialisieren, damit sichergestellt wird, daß der Benutzer in der gleichen Folge bleibt, die durch die ursprünglich erzeugte Zufallszahl in der Fabrik oder durch die vom Benutzer verschlüsselte Zufallszahl begründet ist.
  • Während typischerweise im Stand der Technik auf der Chipkarte selbst alle drei Schritte zur Erzeugung von echten Zufallszahlen stattfinden, nämlich der physikalische Zufallsprozeß, die Digitalisierung der Analogdaten und die mathematische Nachbearbeitung der digitalisierten Analogdaten, um die statistischen Eigenschaften zu erreichen, die gefordert sind, finden bei dem erfindungsgemäßen Verfahren die beiden ersten Schritte, nämlich der Zufallsprozeß und die Digitalisierung der Analogdaten bereits in der Fabrik statt, und im Chip selbst findet nur noch gewissermaßen die mathematische Nachbearbeitung statt, und zwar durch einen guten Pseudozufallszahlengenerator, der hardwaremäßig ausgebildet ist.
  • Dieses Konzept ist dahingehend vorteilhaft, daß man keinen Ärger mit Analogelementen hat. Ferner liefert die vorliegende Erfindung eine Hochgeschwindigkeitsgenerierung der Zufallsbitfolge mit garantiert gleichbleibender Qualität der produzierten Zufallszahlen. Ferner ist das erfindungsgemäße Konzept nicht, wie ein physikalischer Zufallsprozeß, von außen beeinflußbar durch beispielsweise Temperaturschwankungen, Bestrahlungen oder sonstige physikalische Einflußmöglichkeiten. Ferner zeichnet sich das erfindungsgemäße Konzept durch eine gute Übertragbarkeit in eine neue Technologie (Shrinking) aus. Ferner wird eine Flächeneinsparung mit einem Faktor von etwa 10 erreicht, da analoge Elemente außerordentlich viel Platz verbrauchen im Vergleich zu einem wenn auch recht voluminösen Schieberegisterelement, das den Pseudozufallszahlengenerator darstellt. Nachdem für den Pseudozufallszahlengenerator sämtliche stromsparenden Digitaltechniken eingesetzt werden können, zeichnet sich der erfindungsgemäße Zufallszahlengenerator auch durch einen geringen Stromverbrauch aus. Schließlich ermöglicht es das erfindungsgemäße Konzept auch, die Hochfahrzeit bis zum ATR (ATR = Answer to Reset) im Ver gleich zu einem Chip mit analogem Zufallszahlengenerator zu reduzieren.
  • Abhängig von den Gegebenheiten können die erfindungsgemäßen Verfahren 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 entsprechende 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ärtskopplungseinrichtung
    62
    Kombinationseinrichtung
    100
    Einrichtung zum Liefern
    100a, 100b, 110c, 100d
    Elementarschieberegister
    102
    Einrichtung zum Kombinieren
    102a
    Zwischenverarbeitungsstufe
    102b
    Endverarbeitungsstufe
    104
    Zwischenverarbeitungsfolgenleitung
    106a
    erste Untergruppe
    106b
    zweite Untergruppe
    108
    Ausgangsleitung
    120a
    erster Anfangsaddierer
    120b
    zweiter Anfangsaddierer
    122a
    Ausgangsleitung des ersten Anfangsaddierers
    122b
    Ausgangsleitung des zweiten Anfangsaddierers
    124
    Multiplizierer
    126
    Endaddierer
    130
    Schlüsselfolgengenerator
    132
    Klartexteingang
    134
    Verknüpfungseinrichtung
    1000
    Pseudozufallszahlengenerator
    1200
    Zufallszahlenausgang
    1400
    Speicher für die Initialisierungsinformationen
    1600
    Ablaufsteuerung
    1800
    Speicher-Steuerleitung
    1900
    Initialisierungs/Zwischenzustands-Übertragungsleitung
    2000
    Pseudozufallszahlengenerator-Steuerleitung
    2200
    Inbetriebnahmeschritt
    2400
    Ladeschritt
    2600
    Außerbetriebnahmeschritt
    2800
    Speicherschritt
    2900
    Rückkopplungsschleife
    3000
    Herstellungsschritt
    3200
    Zufallszahlerzeugungsschritt
    3400
    Speicher-Ladeschritt
    3600
    Verschlüsselungsschritt
    3800
    Initialisierungsschritt

Claims (34)

  1. Vorrichtung zum Erzeugen von Zufallszahlen, mit folgenden Merkmalen: einem Pseudozufallszahlengenerator (1000), der ausgebildet ist, um nach einer Initialisierung mit einem Initialisierungswert eine deterministische Zufallszahlenfolge zu erzeugen; einem Speicher (1400) zum Speichern von Initialisierungsinformationen, wobei die Initialisierungsinformationen von einer echten Zufallszahl abgeleitet sind oder der echten Zufallszahl entsprechen; und einer Ablaufsteuerung (1600), die ausgebildet ist, um den Pseudozufallszahlengenerator (1000) bei einer Inbetriebnahme mit den Initialisierungsinformationen oder mit von den Initialisierungsinformationen abgeleiteten Informationen zu initialisieren, um bei einer Außerbetriebnahme des Pseudozufallszahlengenerators einen Zwischenzustand des Pseudozufallszahlengenerators oder eine Information, die von dem Zwischenzustand abgeleitet ist, in dem Speicher (1400) zu speichern, und um bei einer erneuten Inbetriebnahme den Zwischenzustand oder die von dem Zwischenzustand abgeleiteten Informationen für eine Initialisierung des Pseudozufallszahlengenerators (1000) zu verwenden.
  2. Vorrichtung nach Anspruch 1, bei der der Pseudozufallszahlengenerator (1000) eines oder mehrere rückgekoppelte Schieberegister mit einer Anzahl von Registerzellen umfaßt, und bei der der Initialisierungswert binär ist und eine Anzahl von Stellen hat, die gleich der Anzahl von Registerzellen ist.
  3. Vorrichtung nach Anspruch 1 oder 2, bei der der Pseudozufallszahlengenerator (1000) vollständig aus Digitalelementen aufgebaut ist.
  4. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der der Speicher ein beschreibbarer nicht-flüchtiger Speicher ist.
  5. Vorrichtung nach einem der vorhergehenden Ansprüche, die ferner folgendes Merkmal aufweist: eine Einrichtung zum Ableiten der Initialisierungsinformationen aus einem Ursprungswert, wobei die Einrichtung zum Ableiten ausgebildet ist, um die Initialisierungsinformationen unter Verwendung einer Benutzer-Identifikationsinformation aus der echten Zufallszahl abzuleiten.
  6. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die echte Zufallszahl eine Zahl ist, die von einem physikalischen Zufallszahlengenerator erzeugt worden ist.
  7. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Ablaufsteuerung ausgebildet ist, um einen in dem Speicher gespeicherten Wert bei einer Außerbetriebnahme des Pseudozufallszahlengenerators durch den Zwischenzustand oder die von dem Zwischenzustand abgeleiteten Informationen zu überschreiben.
  8. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Ablaufsteuerung (1600) ausgebildet ist, um die Initialisierungsinformationen oder von den Initialisierungsinfor mationen abgeleitete Informationen zunächst zu verschlüsseln und dann verschlüsselt im Speicher zu speichern, bei der die Ablaufsteuerung (1600) ferner ausgebildet ist, um die Initialisierungsinformationen zunächst zu entschlüsseln und dann dem Pseudozufallszahlengenerator bereitzustellen, bei der die Ablaufsteuerung (1600) ferner ausgebildet ist, um den Zwischenzustand vor der Abspeicherung zu verschlüsseln und ein Verschlüsselungsergebnis abzuspeichern, und bei der die Ablaufsteuerung (1600) ferner ausgebildet ist, um bei einer erneuten Inbetriebnahme das gespeicherte Verschlüsselungsergebnis zu entschlüsseln und ein Entschlüsselungsergebnis für eine erneute Initialisierung des Pseudozufallszahlengenerators zu verwenden.
  9. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Ablaufsteuerung ausgebildet ist, um bei einer Außerbetriebnahme des Pseudozufallszahlengenerators einen letzten definierten Zustand des Pseudozufallszahlengenerators als Zwischenzustand zu ermitteln.
  10. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der der Pseudozufallszahlengenerator ausgebildet ist, um die deterministische Zufallszahlenfolge so zu erzeugen, daß dieselbe eine Periodenlänge hat, die größer als 264 ist.
  11. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der der Pseudozufallszahlengenerator eine Mehrzahl von nicht-linear rückgekoppelten Schieberegistern aufweist, die jeweils eine Ausgangsfolge erzeugen, und bei der der Pseudozufallszahlengenerator ferner eine Kombinationseinrichtung aufweist, die ausgebildet ist, um die Ausgangsfolgen der ein zelnen nicht-linear rückgekoppelten Schieberegister zu kombinieren, um die Zufallszahlenfolge zu erzeugen.
  12. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der der Pseudozufallszahlengenerator folgende Merkmale aufweist: eine Einrichtung (100) zum Liefern einer Anzahl von 2n Zahlenfolgen, wobei n größer oder gleich 2 ist; eine Einrichtung (102) zum Kombinieren der Zahlenfolgen, um eine Ausgangsfolge zu erhalten, wobei die Einrichtung (102) zum Kombinieren folgende Merkmale aufweist: eine Zwischenverarbeitungsstufe (102a) zum Kombinieren der Zahlenfolgen, um eine Zwischenverarbeitungsfolge (104) zu erzeugen; und eine Endverarbeitungsstufe (102b) zum Kombinieren einer Untergruppe (106a, 106b) von k der Zahlenfolgen mit der Zwischenverarbeitungsfolge (104), um die Ausgangsfolge zu erhalten, wobei k größer oder gleich 1 und kleiner als n ist.
  13. Vorrichtung nach Anspruch 12, bei dem die Endverarbeitungsstufe (102b) einen Addierer (126) umfasst.
  14. Vorrichtung nach Anspruch 13, bei dem die Zahlenfolgen binäre Folgen sind und der Addierer als XOR-Gatter (126) ausgeführt ist.
  15. Vorrichtung nach einem der Ansprüche 12 bis 14, bei dem die Zwischenverarbeitungsstufe (102a) eine erste Kombinationseinrichtung (120a) zum Kombinieren einer ersten Gruppe von n Zahlenfolgen aufweist, um eine erste Gruppenzahlenfolge zu erhalten, bei der die Zwischenverarbeitungsstufe eine zweite Kombinationseinrichtung (122b) zum Kombinieren einer zweiten Gruppe von n Zahlenfolgen aufweist, um eine zweite Gruppenzahlenfolge zu erhalten, und bei dem die Zwischenverarbeitungsstufe ferner eine dritte Kombinationseinrichtung (124) aufweist, um die erste Gruppenzahlenfolge und die zweite Gruppenzahlenfolge zu kombinieren, um die Zwischenverarbeitungsfolge zu erhalten.
  16. Vorrichtung nach Anspruch 15, bei dem die erste Zwischenverarbeitungseinrichtung (120a) und die zweite Zwischenverarbeitungseinrichtung (120b) dieselbe Kombinationsvorschrift verwenden, wobei sich diese Kombinationsvorschrift von einer Kombinationsvorschrift unterscheidet, die durch die dritte Kombinationseinrichtung (124) ausführbar ist.
  17. Vorrichtung nach Anspruch 15 oder 16, bei dem die erste Kombinationseinrichtung einen Addierer aufweist, bei dem die zweite Kombinationseinrichtung (120b) einen Addierer aufweist, und bei dem die dritte Kombinationseinrichtung (124) einen Multiplizierer aufweist.
  18. Vorrichtung nach Anspruch 17, bei dem die Zahlenfolgen binäre Folgen sind, bei dem die erste Kombinationseinrichtung (120a) ein XOR-Gatter aufweist, bei dem die zweite Kombinationseinrichtung (120b) ebenfalls ein XOR-Gatter aufweist, und bei dem die dritte Kombinationseinrichtung (124) ein UND-Gatter aufweist.
  19. Vorrichtung nach einem der Ansprüche 12 bis 18, bei dem die Zwischenverarbeitungsstufe genau einen Addierer (120a) zum Addieren von n Zahlenfolgen, genau einen Addierer (120b) zum Addieren von n restlichen Zahlenfolgen und genau einen Multiplizierer (124) zum Multiplizieren von Ergebnissen des ersten und des zweiten Addierers aufweist, und bei dem Endverarbeitungsstufe (102b) genau einen Addierer (126) zum Addieren der Zwischenverarbeitungsfolge mit einer ersten Untergruppe (106a) von k Zahlenfolgen und einer zweiten Untergruppe (106b) von k anderen Zahlenfolgen aufweist.
  20. Vorrichtung nach einem der Ansprüche 11 bis 18, bei dem die Einrichtung (100) zum Liefern für jede Zahlenfolge ein eigenes rückgekoppeltes Elementarschieberegister (100a, 100b, 100c, 100d) aufweist.
  21. Vorrichtung nach Anspruch 20, bei dem zumindest eines der rückgekoppelten Elementarschieberegister ein Schieberegister mit nicht-linearer Rückkopplungseigenschaft ist.
  22. Vorrichtung nach einem der Ansprüche 12 bis 21, bei dem ein Elementarschieberegister (101, 102, 103) folgende Merkmale aufweist: eine Mehrzahl von Speicherzellen (D0, D1, D2), die in Serie zueinander geschaltet sind, wobei der Elementarschieberegister-Ausgang mit einem Ausgang einer Speicherzelle gekoppelt ist, eine Rückkopplungseinrichtung mit einem Rückkopplungseingang und einem Rückkopplungsausgang, wobei der Rückkopplungseingang mit einem Ausgang von einer Speicherzelle verbunden ist, und wobei die Rückkopplungseinrichtung ausgebildet ist, um Signale an Ausgängen von zumindest zwei Speicherzellen nichtlinear miteinander zu kombinieren.
  23. Vorrichtung nach einem der Ansprüche 20 bis 22, bei dem jedes rückgekoppelte Schieberegister eine Anzahl von Speicherzellen aufweist, wobei die Anzahlen von Speicherzellen der Elementarschieberegister zueinander unterschiedlich sind.
  24. Vorrichtung nach einem der Ansprüche 20 bis 23, bei dem jedes rückgekoppelte Schieberegister eine Anzahl von Speicherzellen aufweist, und bei dem die Anzahl der Speicherzellen der Schieberegister zueinander paarweise teilerfremd sind.
  25. Vorrichtung nach einem der Ansprüche 20 bis 24, bei dem jedes rückgekoppelte Schieberegister eine Anzahl von Speicherzellen aufweist, und bei dem die Elementarschieberegister so ausgebildet sind, dass ein größter gemeinsamer Teiler zwischen den Anzahlen der Speicherzellen unter allen Schieberegistern gleich 1 ist.
  26. Vorrichtung nach einem der Ansprüche 12 bis 25, bei dem die Einrichtung (100) zum Liefern ausgebildet ist, um die 2n Zahlenfolgen so zu erzeugen, dass dieselben maximalperiodisch sind.
  27. Vorrichtung nach einem der Ansprüche 12 bis 26, bei dem die Einrichtung (100) zum Liefern ausgebildet ist, um die 2n Zahlenfolgen so zu erzeugen, dass sie eine lineare Komplexität haben, die gleich der maximalen linearen Komplexität oder höchstens um einen vorbestimmten Betrag kleiner als die maximale lineare Komplexität ist.
  28. Vorrichtung nach Anspruch 27, bei dem der vorbestimmte Betrag bei 75% der maximalen linearen Komplexität liegt.
  29. Vorrichtung nach einem der Ansprüche 12 bis 28, bei dem die Einrichtung (102) zum Kombinieren ausgebildet ist, um le diglich Gatter zu umfassen, die aus der folgenden Gruppe ausgewählt sind: AND-Gatter, NAND-Gatter, OR-Gatter, NOR-Gatter, XOR-Gatter, XNOR-Gatter.
  30. Chipkarte mit einer Vorrichtung nach einem der vorhergehenden Ansprüche.
  31. Verfahren zum Erzeugen von Zufallszahlen unter Verwendung eines Pseudozufallszahlengenerators, der ausgebildet ist, um ausgehend von einem Initialisierungswert eine deterministische Zufallszahlenfolge zu erzeugen, einem Speicher zum Speichern von Initialisierungsinformationen, wobei die Initialisierungsinformationen von einer echten Zufallszahl abgeleitet sind oder der echten Zufallszahl entsprechen, mit folgenden Schritten: bei einer Inbetriebnahme des Pseudozufallszahlengenerators, Initialisieren des Pseudozufallszahlengenerators mit den Initialisierungsinformationen oder mit von den Initialisierungsinformationen abgeleiteten Informationen; Ausgeben von Zufallszahlen des initialisierten Pseudozufallszahlengenerators; bei einer Außerbetriebnahme des Pseudozufallszahlengenerators, Abspeichern eines Zwischenzustands des Pseudozufallszahlengenerators oder eines von dem Zwischenzustand des Pseudozufallszahlengenerators abgeleiteten Werts in dem Speicher; und bei einer erneuten Inbetriebnahme des Pseudozufallszahlengenerators, Verwenden des gespeicherten Zwischenzustands oder von von dem Zwischenzustand abgeleiteten Informationen für eine erneute Initialisierung des Pseudozufallszahlengenerators.
  32. Verfahren zum Herstellen eines Zufallszahlengenerators, mit folgenden Schritten: Bereitstellen eines Pseudozufallszahlengenerators (1000), der ausgebildet ist, um ausgehend von einem Initialisierungswert eine deterministische Zufallszahlenfolge zu erzeugen, eines Speichers (1400) zum Speichern von Initialisierungsinformationen, wobei die Initialisierungsinformationen von einer echten Zufallszahl abgeleitet sind oder der echten Zufallszahl entsprechen, und einer Ablaufsteuerung (1600), mit folgenden Schritten: Bereitstellen einer Zufallszahl; und Speichern der Zufallszahl oder von von der Zufallszahl abgeleiteten Informationen in dem Speicher als Initialisierungsinformationen.
  33. Verfahren zum Personalisieren eines Zufallszahlengenerators mit einem Pseudozufallszahlengenerator (1000), einem Speicher (1400) und einer Ablaufsteuerung, wobei in dem Speicher eine echte Zufallszahl oder eine von der echten Zufallszahl abgeleitete Information gespeichert ist, mit folgenden Schritten: Verschlüsseln der echten Zufallszahl oder der von der echten Zufallszahl abgeleiteten Information mit einer Personalisierungs-Identifikationsinformation, um eine verschlüsselte Zufallszahl zu erhalten, Abspeichern der verschlüsselten Zufallszahl in dem Speicher, so daß bei einer Inbetriebnahme des Zufallszahlengenerators die verschlüsselte Zufallszahl, die in dem Speicher abgespeichert ist, für eine Initialisierung des Pseudozufallszahlengenerators verwendbar ist.
  34. Computer-Programm mit einem Programmcode zum Durchführen des Verfahrens nach einem der Ansprüche 31, 32 oder 33, wenn das Verfahren auf einem Rechner abläuft.
DE2003157782 2003-12-10 2003-12-10 Vorrichtung und Verfahren zum Erzeugen von Zufallszahlen mit einem Pseudozufallsgenerator Active DE10357782B3 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2003157782 DE10357782B3 (de) 2003-12-10 2003-12-10 Vorrichtung und Verfahren zum Erzeugen von Zufallszahlen mit einem Pseudozufallsgenerator

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE2003157782 DE10357782B3 (de) 2003-12-10 2003-12-10 Vorrichtung und Verfahren zum Erzeugen von Zufallszahlen mit einem Pseudozufallsgenerator
US11/008,585 US20050129247A1 (en) 2003-12-10 2004-12-09 Device and method for generating random numbers using a pseudo random number generator

Publications (1)

Publication Number Publication Date
DE10357782B3 true DE10357782B3 (de) 2005-05-04

Family

ID=34399706

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2003157782 Active DE10357782B3 (de) 2003-12-10 2003-12-10 Vorrichtung und Verfahren zum Erzeugen von Zufallszahlen mit einem Pseudozufallsgenerator

Country Status (2)

Country Link
US (1) US20050129247A1 (de)
DE (1) DE10357782B3 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006011699B4 (de) * 2005-05-12 2007-08-02 Agilent Technologies, Inc. (n.d.Ges.d.Staates Delaware), Palo Alto Systeme und Verfahren zum Erzeugen von Zufallszahlverteilungen bei Vorrichtungen, die begrenzte Verarbeitungs- und Speicherfähigkeiten aufweisen
WO2009027130A1 (de) * 2007-08-27 2009-03-05 Siemens Aktiengesellschaft Vorrichtung und verfahren zum erzeugen einer zufallsbitfolge
DE102008018678A1 (de) * 2008-04-14 2009-10-22 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
DE102015100760A1 (de) * 2015-01-20 2016-07-21 Infineon Technologies Ag Generieren von Zufallszahlen

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904488B2 (en) 2004-07-21 2011-03-08 Rockwell Automation Technologies, Inc. Time stamp methods for unified plant model
US8756521B1 (en) 2004-09-30 2014-06-17 Rockwell Automation Technologies, Inc. Systems and methods for automatic visualization configuration
US7809683B2 (en) * 2005-05-13 2010-10-05 Rockwell Automation Technologies, Inc. Library that includes modifiable industrial automation objects
US7676281B2 (en) 2005-05-13 2010-03-09 Rockwell Automation Technologies, Inc. Distributed database in an industrial automation environment
US7672737B2 (en) 2005-05-13 2010-03-02 Rockwell Automation Technologies, Inc. Hierarchically structured data model for utilization in industrial automation environments
US7650405B2 (en) * 2005-05-13 2010-01-19 Rockwell Automation Technologies, Inc. Tracking and tracing across process boundaries in an industrial automation environment
US8799800B2 (en) 2005-05-13 2014-08-05 Rockwell Automation Technologies, Inc. Automatic user interface generation
US8183980B2 (en) * 2005-08-31 2012-05-22 Assa Abloy Ab Device authentication using a unidirectional protocol
US20070067458A1 (en) * 2005-09-20 2007-03-22 Rockwell Software, Inc. Proxy server for integration of industrial automation data over multiple networks
US7548789B2 (en) * 2005-09-29 2009-06-16 Rockwell Automation Technologies, Inc. Editing lifecycle and deployment of objects in an industrial automation environment
US7881812B2 (en) * 2005-09-29 2011-02-01 Rockwell Automation Technologies, Inc. Editing and configuring device
US7526794B2 (en) * 2005-09-30 2009-04-28 Rockwell Automation Technologies, Inc. Data perspectives in controller system and production management systems
US7801628B2 (en) 2005-09-30 2010-09-21 Rockwell Automation Technologies, Inc. Industrial operator interfaces interacting with higher-level business workflow
US7734590B2 (en) 2005-09-30 2010-06-08 Rockwell Automation Technologies, Inc. Incremental association of metadata to production data
US8484250B2 (en) * 2005-09-30 2013-07-09 Rockwell Automation Technologies, Inc. Data federation with industrial control systems
US8275680B2 (en) * 2005-09-30 2012-09-25 Rockwell Automation Technologies, Inc. Enabling transactional mechanisms in an automated controller system
US7660638B2 (en) * 2005-09-30 2010-02-09 Rockwell Automation Technologies, Inc. Business process execution engine
FR2892876A1 (fr) * 2005-11-02 2007-05-04 Gemplus Sa Procede de depot securise de donnees numeriques, procede associe de recuperation de donnees numeriques, dispositifs associes pour la mise en oeuvre des procedes, et systeme comprenant les dits dispositifs
DE102006028944B3 (de) * 2006-06-23 2007-09-13 Infineon Technologies Ag Schaltungsanordnung und Verfahren zum Initialisieren eines Zufallsgenerators
US20080263117A1 (en) * 2007-04-23 2008-10-23 Gregory Gordon Rose Initial seed management for pseudorandom number generator
US8060750B2 (en) * 2007-06-29 2011-11-15 Emc Corporation Secure seed provisioning
IL187035D0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Configurable random number generator
US8180816B2 (en) * 2007-11-30 2012-05-15 Infineon Technologies Ag Control of a pseudo random number generator and a consumer circuit coupled thereto
US8307210B1 (en) 2008-05-02 2012-11-06 Emc Corporation Method and apparatus for secure validation of tokens
CN103605936A (zh) * 2008-06-24 2014-02-26 Nds有限公司 集成电路内的安全
EP2316180A4 (de) 2008-08-11 2011-12-28 Assa Abloy Ab Sichere wiegand-kommunikation
FR2941114B1 (fr) * 2009-01-13 2011-07-01 Viaccess Sa Procede et module de renouvellement du code d'un algorithme cryptographique, procede et module de generation d'une graine, processeur de securite et support d'enregistrement pour ces procedes
US8024616B2 (en) * 2009-01-26 2011-09-20 International Business Machines Corporation Pseudo random process state register for fast random process test generation
US8489660B2 (en) * 2009-06-26 2013-07-16 Intel Corporation Digital random number generator using partially entropic data
JP2011134125A (ja) * 2009-12-24 2011-07-07 Toshiba Corp コントローラ及びデータストレージシステム
US9015489B2 (en) * 2010-04-07 2015-04-21 Microsoft Technology Licensing, Llc Securing passwords against dictionary attacks
US8484401B2 (en) 2010-04-15 2013-07-09 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US9392072B2 (en) 2010-04-15 2016-07-12 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US8984533B2 (en) 2010-04-15 2015-03-17 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US20110299678A1 (en) * 2010-06-07 2011-12-08 Alexander Roger Deas Secure means for generating a specific key from unrelated parameters
US9465582B1 (en) * 2010-11-18 2016-10-11 The Boeing Company Significant random number generator
US8682948B2 (en) 2011-01-06 2014-03-25 Microsoft Corporation Scalable random number generation
JP2012198065A (ja) * 2011-03-18 2012-10-18 Fujitsu Ltd 半導体集積回路、試験方法、情報処理装置、及びプログラム
US9383969B2 (en) * 2011-04-05 2016-07-05 Intrinsic Id B.V. Random number generating system based on memory start-up noise
US8793295B2 (en) * 2011-07-18 2014-07-29 Lsi Corporation Method for fast calculation of the beginning of pseudo random sequences for long term evolution
JP2014192612A (ja) * 2013-03-26 2014-10-06 Toshiba Corp 生成装置、暗号化装置、復号装置、生成方法、暗号化方法、復号方法およびプログラム
GB2508447B (en) * 2013-03-28 2014-10-22 Randomize Ltd Method and apparatus for testing electronic systems
US10452877B2 (en) 2016-12-16 2019-10-22 Assa Abloy Ab Methods to combine and auto-configure wiegand and RS485

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19910729C1 (de) * 1999-03-11 2000-11-02 Richard Vogts Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen

Family Cites Families (6)

* 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
US5383143A (en) * 1994-03-30 1995-01-17 Motorola, Inc. Self re-seeding linear feedback shift register (LFSR) data processing system for generating a pseudo-random test bit stream and method of operation
US6044388A (en) * 1997-05-15 2000-03-28 International Business Machine Corporation Pseudorandom number generator
US6763363B1 (en) * 1999-12-02 2004-07-13 Honeywell International Inc. Computer efficient linear feedback shift register
US7120696B1 (en) * 2000-05-19 2006-10-10 Stealthkey, Inc. Cryptographic communications using pseudo-randomly generated cryptography keys
DE10347455B4 (de) * 2003-10-13 2010-08-26 Infineon Technologies Ag Pseudozufallszahlengenerator für einen Stream Cipher

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19910729C1 (de) * 1999-03-11 2000-11-02 Richard Vogts Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006011699B4 (de) * 2005-05-12 2007-08-02 Agilent Technologies, Inc. (n.d.Ges.d.Staates Delaware), Palo Alto Systeme und Verfahren zum Erzeugen von Zufallszahlverteilungen bei Vorrichtungen, die begrenzte Verarbeitungs- und Speicherfähigkeiten aufweisen
WO2009027130A1 (de) * 2007-08-27 2009-03-05 Siemens Aktiengesellschaft Vorrichtung und verfahren zum erzeugen einer zufallsbitfolge
US8892616B2 (en) 2007-08-27 2014-11-18 Siemens Aktiengesellschaft Device and method for generating a random bit sequence
DE102008018678A1 (de) * 2008-04-14 2009-10-22 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
DE102008018678B4 (de) * 2008-04-14 2011-02-03 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
US8531247B2 (en) 2008-04-14 2013-09-10 Siemens Aktiengesellschaft Device and method for generating a random bit sequence
DE102015100760A1 (de) * 2015-01-20 2016-07-21 Infineon Technologies Ag Generieren von Zufallszahlen

Also Published As

Publication number Publication date
US20050129247A1 (en) 2005-06-16

Similar Documents

Publication Publication Date Title
Barenghi et al. Fault injection attacks on cryptographic devices: Theory, practice, and countermeasures
US7797361B2 (en) System and method for generating random numbers using parity feedback
US5048086A (en) Encryption system based on chaos theory
CA2633923C (en) Mixed radix number generator with chosen statistical artifacts
EP0880115B1 (de) Kommunikationssystem mit Verschlüsselung zum Erzeugen von Kennwörtern auf der Basis von Anfangsinformationen auf beiden Kommunikationsseiten
Zeng et al. Pseudorandom bit generators in stream-cipher cryptography
US6253223B1 (en) Robust random number generator
Li et al. Chaotic encryption scheme for real-time digital video
JP4596686B2 (ja) Dpaに対して安全な暗号化
US20070244951A1 (en) Accelerated Throughtput Synchronized Word Stream Cipher, Message Authenticator and Zero-Knowledge Output Random Number Generator
JP4828068B2 (ja) コンピュータで効率的な線形フィードバック・シフト・レジスタ
US6823069B1 (en) Encrypting/decrypting system with programmable logic device/unit and method thereof
Golic New methods for digital generation and postprocessing of random data
US8180055B2 (en) Cryptographic system incorporating a digitally generated chaotic numerical sequence
EP1420542A1 (de) Verfahren und Vorrichtung zur chaotischen Erzeugung einer Pseudozufallsfolge
US5623548A (en) Transformation pattern generating device and encryption function device
US5778069A (en) Non-biased pseudo random number generator
JP2009110002A (ja) 乱数列の反復周期を延長するよう構成された暗号システム
TWI327855B (en) Secure pseudo-random number generator and method for operating the same,and processing circuit and machine readable medium for cenerating pseudo-random number
DE69722367T2 (de) Pseudozufallsgenerator mit Taktauswahl
Nandi et al. Theory and applications of cellular automata in cryptography
Kocarev et al. Pseudorandom bits generated by chaotic maps
KR100610367B1 (ko) 정보 누출 공격을 방지하기 위한 갈로아 필드 상의 곱셈방법 및 장치, 역변환 장치 그리고 aes 바이트 치환연산장치
US6044388A (en) Pseudorandom number generator
EP1776757B1 (de) Zufallszahlengenerator auf der basis von logikschaltungen mit rückkopplung

Legal Events

Date Code Title Description
8100 Publication of the examined application without publication of unexamined application
8364 No opposition during term of opposition