-
Die vorliegende Erfindung bezieht sich auf das Steuern eines Pseudozufallszahlengenerators und eine Verbraucherschaltung, die mit demselben gekoppelt ist.
-
Pseudozufallszahlengeneratoren (PRNG; PRNG = pseudo random number generator) geben eine Sequenz von Pseudozufallszahlen aus, deren Qualität von der Menge an echter Zufälligkeit und/oder der Menge an echten Zufallszahlendaten abhängt, die in den Pseudozahlengenerator eingegeben werden. Anders ausgedrückt, es ist notwendig, ausreichend echte Zufallszahlendaten in den Pseudozufallszahlengenerator einzugeben, um Pseudozufallszahlen der erforderlichen Qualität zu erhalten. Ein echter Zufallszahlengenerator (TRNG; TRNG = true random number generator) kann verwendet werden, um die echten Zufallszahlendaten zu erzeugen.
-
Die
US 2002/0156819 A1 beschreibt einen TNRG bzw. eine TNRG-Schaltung mit einem LFSR, das als Kompressor fungiert, der ständig dazu da ist, eingangsseitig von der Rauschquelle erhaltene Bits in wenige zu komprimieren, um die echten Zufallszahlen zu erhalten.
-
Die
US 2007/0140485 A1 befasst sich mit der laufenden Verbesserung einer PRNG-Sequenz durch laufende Einmischung von Zufallsbits eines TRNG in das LFSR des PRNG.
-
Es ist die Aufgabe der vorliegenden Erfindung, ein System, eine Vorrichtung und ein Verfahren zum Steuern eines Pseudozufallszahlengenerators und einer Verbraucherschaltung, die mit demselben gekoppelt ist, sowie ein Computerprogramm und ein computerlesbares Medium mit verbesserten Charakteristika zu schaffen, so dass ein PRNG-Ausgangssignal effektiver genutzt werden kann.
-
Diese Aufgabe wird durch ein System gemäß Anspruch 1, eine Vorrichtung gemäß Anspruch 7, ein Verfahren gemäß Anspruch 11, ein Computerprogramm gemäß Anspruch 15 sowie ein computerlesbares Medium gemäß Anspruch 16 gelöst.
-
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
-
1a und 1b Diagramme, die die Qualität des Pseudozufallszahlenausgangssignals über der Zeit für unterschiedliche Startparametereinstellungsszenarien aufzeigen;
-
2 ein Blockdiagramm einer Schaltungsanordnung, die einen Pseudozufallszahlengenerator umfasst, der gemäß einem Ausführungsbeispiel gesteuert wird;
-
3 ein Blockdiagramm einer Verbraucherschaltung von 2 gemäß einem Ausführungsbeispiel;
-
4 ein Flussdiagramm zum Darstellen einer Funktionsweise der Steuerung von 3 gemäß einem Ausführungsbeispiel;
-
5a und 5b schematisch Startparametereinstellungsszenarien mit unterschiedlicher Zeitgebung, die möglicherweise mit der Schaltungsanordnung von 2 verwendet werden;
-
6 ein Blockdiagramm eines Ausführungsbeispiels für den Echte-Zufallszahlen-Generator von 2;
-
7 ein Blockdiagramm eines Ausführungsbeispiels für den Pseudozufallszahlengenerator von 2; und
-
8 ein Blockdiagramm eines Ausführungsbeispiels für das Rückkopplungsschieberegister von 7 gemäß einem Ausführungsbeispiel.
-
Innerhalb der Figuren sind gleiche Elemente oder Elemente mit gleicher Funktionalität durch gleiche oder ähnliche Bezugszeichen angezeigt, und Beschreibungen bezüglich der dargestellten Elemente, die sich auf die vorhergehenden Figuren beziehen, werden bei der Beschreibung von nachfolgenden Figuren nicht wiederholt.
-
1a und 1b zeigen unterschiedliche Möglichkeiten der Startparametereinstellung (seeding) eines Pseudozufallszahlengenerators. In dem Fall von 1a wird der Startparameter des Pseudozufallszahlengenerators beispielhaft eingestellt mit 24 Bits echter Zufallszahlendaten, bis zu einem Zeitpunkt t0. Von diesem Zeitpunkt an nimmt die Qualität des Pseudozufallszahlenausgangssignals des Pseudozufallszahlengenerators einen Wert von Q0 an. Beispielsweise findet die Startparametereinstellung mit den 24 Echte-Zufallszahlen-Bits fortlaufend statt während einer Zeitperiode von aufeinanderfolgenden Taktzyklen des Pseudozufallszahlengenerators, wobei die Zeitperiode zu dem Zeitpunkt t0 endet.
-
Im Vergleich dazu zeigt 1b die Qualität Q des Pseudozufallszahlenausgangssignals des Pseudozufallszahlengenerators über der Zeit t im Fall der Startparametereinstellung des Pseudozufallszahlengenerators intermittierend bei mehr als einem Zeitpunkt. In 1b sind beispielhaft drei Zeitpunkte t–2, t–1 und t0 gezeigt. In den Zeitintervallen zwischen den Zeitpunkten t–2, t–1 und t0 kann der Pseudozufallszahlengenerator in einem freilaufenden Modus arbeiten, d. h. unbeeinflusst durch echte Zufallszahlendaten. Zu jedem Zeitpunkt t–2, t–1 und t0 erfolgt eine Startparametereinstellung des Pseudozufallszahlengenerators beispielhaft mit 8 Bits echter Zufallszahlendaten. Folglich, wie es in 1b dargestellt ist, liefert der Pseudozufallszahlengenerator ein Pseudozufallszahlenausgangssignal von zunehmender Qualität Q–2, Q–1 und Q0'.
-
Beim Vergleich der Szenarien von 1a und 1b wird klar, dass von dem Zeitpunkt t0 an, d. h. der Zeit, die der Echte-Zufallszahlen-Generator benötigt, um 24 Bits echter Zufallszahlendaten zu erzeugen, beispielsweise von einem Einschalten des Echte-Zufallszahlen-Generators, der Pseudozufallszahlengenerator in einem freilaufenden Modus Pseudozufallszahlendaten von gleicher oder ähnlicher Qualität Q0 bzw. Q0' liefert. Im Fall des Startparametereinstellungsszenarios von 1b ist es jedoch möglich, das Pseudozufallszahlenausgangssignal vor dem Zeitpunkt t0 zu verwenden. Beispielsweise kann das Pseudozufallszahlenausgangssignal, das durch den Pseudozufallszahlengenerator ausgegeben wird, vor dem Zeitpunkt t0 für Aufgaben verwendet werden, die nicht die volle Qualität Q0 oder Q0' erfordern, die wiederum nach dem Zeitpunkt t0 geliefert wird.
-
Vor der Beschreibung der folgenden Ausführungsbeispiele muss angemerkt werden, dass die Beispiele von 1a und 1b lediglich darstellender Natur waren. Dies gilt insbesondere für die Anzahl von Bits, die für die einzelnen Startparametereinstellungsschritte verwendet werden, die beispielhaft in 1a und 1b angezeigt sind. Diese Vereinfachung gilt jedoch auch für die Steilheit des Qualitätsanstiegs zu den einzelnen Zeitpunkten t0, t1– bzw. t–2. Anders ausgedrückt, obwohl 1a und 1b darauf schließen lassen, dass sich die Qualität des Pseudozufallszahlenausgangssignals sofort erhöht aus die Startparametereinstellung hin mit einer Mehrzahl von Bits, können die einzelnen Startparametereinstellungsschritte so durchgeführt werden, dass der Qualitätsanstieg zu einem allmählichen Qualitätsanstieg führt. Beispielsweise zeigt 1a mit einer gestrichelten Linie einen allmählichen Qualitätsanstieg des Pseudozufallszahlenausgangssignals von dem Zeitpunkt 0 zu dem Zeitpunkt t0, was zu einer Qualität Q0 zum Zeitpunkt t0 führt. 1b zeigt eine ähnliche allmähliche Erhöhung von dem Zeitpunkt 0 zu dem Zeitpunkt t0, wobei sich die Qualität allmählich von 0 zu Q0' erhöht. In diesem Fall ist die Differenz zwischen beiden Startparametereinstellungsszenarien, dass das Pseudozufallszahlenausgangssignal in dem Fall von 1a nur nach dem Zeitpunkt t0 verwendet wird, während das Pseudozufallszahlenausgangssignal des Pseudozufallszahlengenerators auch vor dem Zeitpunkt t0 verwendet wird, wodurch eine frühere Durchführung von Aufgaben ermöglicht wird, die nicht die volle Qualität Q0' erfordern.
-
2 zeigt eine Schaltungsanordnung, die einen Echte-Zufallszahlen-Generator 10, einen Pseudozufallszahlengenerator 12, eine Verbraucherschaltung 14 und eine Steuerung 16 umfasst, wobei der Pseudozufallszahlengenerator 12 in Reihe geschaltet ist zwischen den Echte-Zufallszahlen-Generator 10 und die Verbraucherschaltung 14, und die Steuerung 16 mit dem Pseudozufallszahlengenerator 12 gekoppelt ist.
-
Der Echte-Zufallszahlen-Generator 10 erzeugt ein Echte-Zufallszahlen-Ausgangssignal 18 und gibt dasselbe aus. Wie es später mit Bezugnahme auf 6 näher beschrieben wird, kann der Echte-Zufallszahlen-Generator 10 eine physikalische Rauschquelle umfassen, um das Echte-Zufallszahlen-Ausgangssignal 18 zu erzeugen. Das Echte-Zufallszahlen-Ausgangssignal 18 kann eine Sequenz von Bits sein, die regelmäßig zeitlich beabstandet sind. Es ist jedoch auch möglich, dass der Echte-Zufallszahlen-Generator 10 das Echte-Zufallszahlen-Ausgangssignal 18 erzeugt und intermittierend in Gruppen von Bits ausgibt, regelmäßig oder unregelmäßig zeitlich beabstandet, und wobei die Gruppen eine gleiche Größe aufweisen oder nicht.
-
Der Pseudozufallszahlengenerator 12 kann ein Rückkopplungsschieberegister umfassen, wie es nachfolgend mit Bezugnahme auf 7 und 8 näher beschrieben wird. Der Pseudozufallszahlengenerator 12 erzeugt ein Pseudozufallszahlenausgangssignal 20 und gibt dasselbe aus. Das Pseudozufallszahlenausgangssignal 20 kann eine Sequenz von Bits sein, die nacheinander durch den Pseudozufallszahlengenerator 20 in aufeinanderfolgenden Taktzyklen eines Takts 22 ausgegeben werden, durch den die Pseudozufallszahl 12 getaktet wird. Insbesondere kann die Rate, mit der der Pseudozufallszahlengenerator 12 das Pseudozufallszahlenausgangssignal 20 erzeugt und ausgibt, größer sein als die Rate, mit der der Echte-Zufallszahlen-Generator 10 das Echte-Zufallszahlen-Ausgangssignal 18 erzeugt und ausgibt.
-
Der Pseudozufallszahlengenerator 12 ist steuerbar, um in einem Startparametereinstellungsmodus oder in einem freilaufenden Modus zu arbeiten. In dem Startparametereinstellungsmodus ist der Pseudozufallszahlengenerator 12 mit dem Echte-Zufallszahlen-Ausgangssignal 18 gekoppelt, so dass sein interner Zustand beeinflusst wird durch das Echte-Zufallszahlen-Ausgangssignal 18, und so dass eine Qualität des Pseudozufallszahlenausgangssignals 20 sich erhöht aufgrund eines Anstiegs der Unsicherheit, die durch das Echte-Zufallszahlen-Ausgangssignal 18 in den inneren Zustand des Pseudozufallszahlengenerators 12 eingeführt wird. In dem freilaufenden Modus ist der Pseudozufallszahlengenerator 12 entkoppelt von dem Echte-Zufallszahlen-Ausgangssignal 18, so dass sein interner Zustand nicht durch das Echte-Zufallszahlen-Ausgangssignal 18 beeinflusst wird. Während des freilaufenden Modus stagniert die Qualität des Pseudozufallszahlenausgangssignals 20 und der Pseudozufallszahlengenerator gibt weiterhin PRNG-Daten aus.
-
Die Steuerung 16 steuert den Pseudozufallszahlengenerator 12, um in dem freilaufenden Modus oder dem Startparametereinstellungsmodus zu arbeiten. Anders ausgedrückt, die Steuerung 16 dient dazu, die Qualität des Pseudozufallszahlenausgangssignals des Pseudozufallszahlengenerators 12 zu erhöhen. Weitere Einzelheiten diesbezüglich werden nachfolgend aufgeführt.
-
Die Verbraucherschaltung 14 ist konfiguriert, um das Pseudozufallszahlenausgangssignal 20 zu verwenden. Die Verbraucherschaltung 14, von der ein Ausführungsbeispiel nachfolgend mit Bezugnahme auf 3 näher beschrieben wird, kann eine kryptographische Schaltung umfassen, wie z. B. eine Verschlüsselungseinrichtung oder eine Entschlüsselungseinrichtung. Alternativ umfasst die Verbraucherschaltung 14 eine nicht-kryptographische Schaltung, wie z. B. eine Übertragungsschaltung für Datenkommunikation mit einem externen Gerät. Gemäß noch einem weiteren Ausführungsbeispiel kann die Verbraucherschaltung 14 unterschiedliche Verbraucherentitäten umfassen, die für unterschiedliche Verbraucheraufgaben verantwortlich sind, die für ihre Durchführung die Verwendung eines Pseudozufallszahlenausgangssignals 20 erfordern.
-
Wie es nachfolgend näher beschrieben wird, ist die Verbraucherschaltung 14 insbesondere konfiguriert, um das Pseudozufallszahlenausgangssignal 20 vor und nach einer Erhöhung der Qualität des Pseudozufallszahlenausgangssignals 20 zu verwenden, die durch die Steuerung 16 verursacht wird, und den Pseudozufallszahlengenerator 12 mit dem Echte-Zufallszahlen-Ausgangssignal 18 zu koppeln. Zu diesem Zweck kann die Verbraucherschaltung 14 so implementiert sein, dass die Verbraucherschaltung 14 das Pseudozufallszahlenausgangssignal 20 vor und nach der Erhöhung verwendet. Beispielsweise kann die Verbraucherschaltung 14 eine erste Aufgabe, die eine geringere Qualität des Pseudozufallszahlenausgangssignal 20 erfordert, vor der Erhöhung durchführen, und kann das Durchführen einer zweiten Aufgabe, die einen höheren Pegel von Pseudozufallszahlenqualität erfordert, nach der Erhöhung beginnen. Um sicherzustellen, dass die Verbraucherschaltung 14 das Verwenden der zweiten Aufgabe lediglich nach der Erhöhung beginnt, kann die Steuerung 16 eine jeweilige Funktion implementieren, um die Durchführung der zweiten Aufgabe durch die Verbraucherschaltung 14 zu beginnen, oder die Verbraucherschaltung 14 kann auf eine Weise implementiert sein, dass die Durchführung der zweiten Aufgabe in jedem Fall nach der Erhöhung beginnt.
-
Obwohl dies nicht notwendig ist, kann die Verbraucherschaltung 14 den Takt 22 empfangen und die Durchführung der zweiten Aufgabe abhängig von diesem Takt 22 beginnen, um sicherzustellen, dass der Zeitpunkt des Beginns der Durchführung der zweiten Aufgabe nach der Erhöhung der Qualität liegt, so dass die Qualität des Pseudozufallszahlenausgangssignals 20 mit der erforderlichen Qualität der zweiten Aufgabe übereinstimmt. Gemäß einem weiteren Ausführungsbeispiel kann die Verbraucherschaltung 14 nicht durch die Steuerung 16 gesteuert werden, sondern kann durch die Steuerung 16 über die Erhöhung der Qualität bei dem Pseudozufallszahlenausgangssignal informiert werden, durch Koppeln des Pseudozufallszahlengenerators 12 mit dem Echte-Zufallszahlen-Ausgangssignal 18, um in der Lage zu sein, über jeweilige Anforderungen zum Durchführen einer Aufgabe zu entscheiden, abhängig von der aktuellen Qualität im Vergleich zu der Qualität, die durch die jeweilige Aufgabe gefordert wird. Die letztere Möglichkeit wird nachfolgend mit Bezugnahme auf 4 näher beschrieben.
-
Die Schaltungsanordnung von 2 kann in einer Chipkarte oder in einer kryptographischen Steuerung implementiert sein, für die Verwendung in einer Chipkarte oder Smartcard. Ferner ist die Verbraucherschaltung 14 nicht auf die oben erwähnten Ausführungsbeispiele begrenzt. Stattdessen kann die Verbraucherschaltung 14 Schaltungen umfassen, die das Pseudozufallszahlenausgangssignal 20 verwenden, zum Zweck des Maskierens interner Signale, Randomisierens interner Signale oder Randomisierens eines Leistungsverbrauchs, um Korrelationsangriffen, wie z. B. Differenzfehlerangriffen, entgegenzuwirken.
-
3 zeigt ein beispielhaftes Ausführungsbeispiel für die Verbraucherschaltung 14. Gemäß 3 umfasst die Verbraucherschaltung 14 eine Steuerung 30, einen ersten Verbraucher 32 und einen zweiten Verbraucher 34. Die Steuerung 30 kann eine zentrale Verarbeitungseinheit umfassen oder kann fest verdrahtet sein oder kann sogar als ein feldprogrammierbares Array implementiert sein. Die Verbraucher 32 und 34 können Coprozessoren sein oder können andere Programme oder Anwendungen sein. Die Verbraucher 32 und 34 sind konfiguriert, um unterschiedliche Aufgaben durchzuführen. Wenn die unterschiedlichen Aufgaben durchgeführt werden, verwenden die Verbraucher 32 und 34 das Pseudozufallszahlenausgangssignal 20. Beispielhaft erfordert der Verbraucher 34 einen höheren Grad an Qualität des Pseudozufallszahlenausgangssignals 20 als der Verbraucher 32. Die Steuerung 30 steuert die Verbraucher 32 und 34. Insbesondere steuert die Steuerung 30 Verbraucher 32 und 34 derart, dass der Verbraucher 32 das Durchführen seiner Aufgabe lediglich nach dem Zeitpunkt beginnt, zu dem die Qualität des Pseudozufallszahlenausgangssignals 20 die Qualität überschreitet oder zumindest erreicht, die von der Aufgabe gefordert wird, die durch den Verbraucher 34 durchgeführt wird, während der Verbraucher 32 das Durchführen seiner Aufgabe vor diesem Zeitpunkt beginnt.
-
Die Steuerung 30 kann beispielsweise eine zentrale Verarbeitungseinheit sein, während die Verbraucher 32 und 34 Coprozessoren und/oder Softwareroutinen sind, die durch die zentrale Verarbeitungseinheit 30 auf den Empfang jeweiliger Programmbefehle hin gestartet werden können. Die zentrale Verarbeitungseinheit 30 kann verschiedene Programme ausführen. Beim Ausführen dieser Programme kann die zentrale Verarbeitungseinheit 30 Befehle oder Anforderungen empfangen zum Durchführen der Aufgabe des Verbrauchers 34 oder der Aufgabe des Verbrauchers 32 und somit den Verbraucher 34 oder Verbraucher 32 starten. Auf den Empfang eines solchen Befehls hin prüft die zentrale Verarbeitungseinheit 30, ob die aktuelle Qualität des Pseudozufallszahlenausgangssignals 20 die Anforderung gefüllt bezüglich der Qualität, die durch die jeweilige Aufgabe gefordert wird, um zu bestimmen, ob der jeweilige Verbraucher 32 oder 34 gestartet werden kann oder nicht. Die Steuerung 30 kann die aktuelle Qualität ableiten basierend auf einer Zeitperiode, die seit einem Einschalten des Echte-Zufallszahlen-Generators 10 vergangen ist, oder basierend auf einer Anzahl von Taktzyklen des Takts 22. Alternativ kann die Steuerung 30 die Qualität von einem jeweiligen Signal ableiten, das von der Steuerung 16 empfangen wurde, wie es durch den gestrichelten Pfeil 36 angezeigt ist. Beispielsweise inkrementiert die Steuerung 16 einen Index 36 jedes Mal, wenn oder während der Pseudozufallszahlengenerator 12 mit dem Echte-Zufallszahlen-Ausgangssignal 18 gekoppelt ist.
-
Alternativ ist die Steuerung 30 fest verdrahtet und initiiert die Verbraucher 32 und 34 bedingungslos, so dass beispielsweise jeder Verbraucher so früh wie möglich beginnt, d. h., sobald die aktuelle Qualität des Pseudozufallszahlenausgangssignals 20 die Qualität überschreitet oder erreicht, die durch den jeweiligen Verbraucher 32 bzw. 34 gefordert wird. In diesem Fall kann die Steuerung 30 auch als ein programmierbares Gatter-Array konfiguriert sein. So implementiert kann die Steuerung 30 abhängig von dem Signal 36 auf dem Takt 22 arbeiten, um die Verbraucher 32 bzw. 34 entsprechend einzuleiten.
-
Alternativ ist die Steuerung 30 fest verdrahtet auf einem programmierbaren Gatter-Array und empfängt Anforderungssignale von den Verbrauchern 32 und 34, die ebenfalls als fest verdrahtete Schaltungsanordnung oder feldprogrammierbares Array implementiert sind, und aktiviert die jeweiligen Verbraucher 32 und 34 durch jeweilige Aktivierungssignale zu den vorher erwähnten Zeiten – d. h., wenn die Qualität des Pseudozufallszahlenausgangssignals 20 die jeweilige Qualität, die durch den jeweiligen Verbraucher 32 bzw. 34 erforderlich ist, erreicht oder überschritten hat. Nur wenn dieselben aktiviert sind, beginnen die jeweiligen Verbraucher 32 bzw. 34 damit, ihre jeweilige Aufgabe durchzuführen.
-
4 zeigt ein Beispiel für Schritte, die in der Steuerung 30 von 3 ausgeführt wurden, in dem Fall, in dem die Steuerung 30 als eine Einrichtung zum Verarbeiten von Anforderungen zum Durchführen jeweiliger Aufgaben wirkt. Obwohl 4 die beispielhafte Funktionsweise der Steuerung 30 durch funktionale Schritte zeigt, wird angemerkt, dass die in 4 gezeigten funktionalen Schritte als jeweilige Schaltungsteile, Subroutinen oder dergleichen implementiert sein können, so dass 4 auch so gesehen werden kann, dass sie eine Einrichtung zum Durchführen der jeweiligen Funktionen zeigt, die in den Blöcken von 4 gezeigt sind, wobei diese Einrichtung in der Steuerung 30 implementiert ist.
-
Der in 4 gezeigte Prozess beginnt bei Schritt 40, wo die Steuerung 30 eine Anforderung empfängt zum Durchführen einer Aufgabe, die eine zugeordnete Qualität erfordert. Insbesondere kann die Steuerung 30 die Anforderung zum Durchführen einer Aufgabe, die eine zugeordnete Qualität erfordert, von einer Softwareanwendung empfangen. Die Aufgabe, die durchgeführt werden soll, kann eine Differenzleistungsangriffsgegenmaßnahme, eine Maskierung oder eine Verschlüsselung oder Entschlüsselung sein. Die erforderliche Qualität kann der Aufgabe, die durchzuführen ist, zugeordnet sein, gemäß der Anforderung, und/oder kann der anfordernden Entität zugeordnet sein.
-
Beispielsweise könnte in dem Fall, in dem die Schaltungsanordnung von 2 in einer Mehranwendungschipkarte enthalten ist, die Anforderung in Schritt 40 von einer einer Mehrzahl von unterschiedlichen Anwendungen stammen, wie z. B. einer elektronischen Zahlungsanwendung, einer Fahrscheinzahlanwendung für öffentliche Verkehrsmittel oder dergleichen. Alle diese Anwendungen könnten unterschiedlichen Sicherheitsebenen zugeordnet sein. Trotzdem könnte es sein, dass einige dieser Anwendungen mit unterschiedlichen Sicherheitspegeln die Durchführung einer gemeinsamen Ausgabe erfordern. In diesem Fall kann eine Anwendung, die der höheren Sicherheit zugeordnet ist, erfordern, dass die Aufgabe unter Verwendung einer höheren Qualität des Pseudozufallszahlenausgangssignals durchgeführt wird als die andere Anwendung. Mit Bezugnahme auf 3 müssen in diesem Fall diese Anwendungen mit unterschiedlichen Sicherheitsebenen als die Verbraucher in 3 interpretiert werden, wobei beide Verbraucher die gleiche Aufgabe durchführen, aber mit unterschiedlichen Anforderungen bezüglich der Höhe der Qualität des Pseudozufallszahlenausgangssignals.
-
Als Nächstes vergleicht die Steuerung 30 in Schritt 42 die erforderliche Qualität mit der aktuellen Qualität. Wie es oben bereits beschrieben wurde, kann die Steuerung 30 die aktuelle Qualität von Informationen ableiten, die von der Steuerung 16 empfangen werden. Ferner ist es möglich, dass die Steuerung 30 die aktuelle Qualität einstellt oder die aktuelle Qualität basierend auf einer entsprechenden Zeitbasis ableitet, wie z. B. basierend auf der Zeit oder der Anzahl von Taktzyklen, die vergangen sind oder auftreten seit einem Einschalten des Echte-Zufallszahlen-Generators 10, wobei die Anzahl von Takten auf den Takt 22 bezogen sein kann, durch den der Pseudozufallszahlengenerator 12 getaktet wird.
-
Falls der Vergleich in Schritt 42 offenbart, dass die erforderliche Qualität größer ist als die aktuelle Qualität, kann die Steuerung 30 den Zeitpunkt abwarten, zu dem die Qualität des Pseudozufallszahlenausgangssignals die erforderliche Qualität erreicht oder überschreitet, durch warten, indem einfach der Schritt 42 wiederholt wird. Alternativ, wie es in dem gestrichelten Kasten in 4 angezeigt ist, kann die Steuerung 30 eine alternative Verarbeitung 44 durchführen, wie z. B. das Beginnen anderer Aufgaben, als in Schritt 40 gefordert, woraufhin der Prozess von 4 erneut zu Schritt 42 zurückkehrt.
-
Falls die aktuelle Qualität jedoch gleich oder größer ist als die angeforderte Qualität, bewirkt die Steuerschaltung 30 die Durchführung der Aufgabe unter Verwendung des Pseudozufallszahlenausgangssignals 20.
-
Nachfolgend werden unterschiedliche Szenarien von Startparametereinstellungs- und Aufgabendurchführungen, die mit den vorher erwähnten Ausführungsbeispielen möglich sind, mit Bezugnahme auf 5a und 5b beschrieben. In beiden Figuren werden Klammern verwendet, um die Zeitperiode anzuzeigen, während der eine jeweilige Startparametereinstellung des Pseudozufallszahlengenerators 12 (2) oder eine Durchführung der jeweiligen Aufgabe durch einen der Verbraucher 32 bzw. 34 (3) stattfindet.
-
In 5a und 5b wird angenommen, dass der Startparametereinstellungsprozess der Startparametereinstellung des Pseudozufallszahlengenerators 12 mit dem Echte-Zufallszahlen-Ausgangssignal 18 (siehe 2) kein sofortiger Prozess ist, d. h. ein Prozess, der lediglich einen Pseudozufallszahlentaktzyklus benötigt. Stattdessen wird angenommen, dass der Startparametereinstellungsprozess oder die Startparametereinstellungsschritte sich über mehrere aufeinanderfolgende Taktzyklen erstrecken. Wie es bereits mit Bezugnahme auf 1a und 1b angemerkt wurde, ist es jedoch auch möglich, dass die Startparametereinstellungsschritte innerhalb eines Taktzyklus ausgeführt werden.
-
5a zeigt ein Beispiel, wo der Pseudozufallszahlengenerator innerhalb des Zeitintervalls [t1, t2] einer Startparametereinstellung unterzogen wird, woraufhin die Durchführung einer ersten Aufgabe, nämlich Aufgabe Nr. 1, zu dem Zeitpunkt t3 ≥ t2 begonnen wird, gleichzeitig mit oder zeitlich getrennt von dem Zeitpunkt t2. Ein zweiter Startparametereinstellungsschritt wird während des Zeitintervalls [t5, t6] durchgeführt. Später, d. h. zu einem Zeitpunkt t7 ≥ t6 wird die Durchführung einer zweiten Aufgabe, nämlich Aufgabe Nr. 2, begonnen. Beide Aufgaben, d. h. Aufgabe Nr. 1 und Aufgabe Nr. 2 verwenden das Pseudozufallszahlenausgangssignal. Somit wird in 5a das Pseudozufallszahlenausgangssignal vor und nach der Erhöhung der Qualität des Pseudozufallszahlenausgangssignals verwendet, auf die Startparametereinstellung innerhalb des Zeitintervalls [t5, t6] hin. Vorausgesetzt, dass die Qualität des Pseudozufallszahlenausgangssignals nach dem Zeitpunkt t2 hoch genug oder gleich ist wie die Qualität, die durch die Aufgabe Nr. 1 benötigt wird, und die Qualität des Pseudozufallszahlenausgangssignals nach dem Zeitpunkt t6 gleich oder höher ist als die Qualität, die durch die zweite Aufgabe, Aufgabe Nr. 2, benötigt wird, werden ferner alle Sicherheitsanforderungen und somit Anforderungen an die Qualität des Pseudozufallszahlenausgangssignals erfüllt.
-
Lediglich der Vollständigkeit halber wird angemerkt, dass das Ende der Durchführung der ersten Aufgabe, nämlich der Aufgabe Nr. 1, vor dem Zeitpunkt t5 (siehe t4), während des Startparametereinstellungsschritts [t5, t6] (siehe t4'), oder nach dem zweiten Startparametereinstellungsschritt, d. h. nach dem Zeitpunkt t6 (siehe t4') auftreten kann.
-
5b zeigt ein Beispiel, wo der Pseudozufallszahlengenerator während eines Zeitintervalls t1 bis t2, d. h. [t1, t2] fortlaufend einer Startparametereinstellung unterzogen wird. Wie es mit Bezugnahme auf 1a und 1b beschrieben ist, erhöht sich die Qualität des Pseudozufallszahlenausgangssignals allmählich während dieses Zeitintervalls. Die Durchführung der ersten Aufgabe, Aufgabe Nr. 1, wird zu einem Zeitpunkt t3 > t1 begonnen. Die Durchführung einer zweiten Aufgabe, Aufgabe Nr. 2, wird zu einem Zeitpunkt t5 > t2 begonnen. Erneut verwenden beide Aufgaben, d. h. Aufgabe Nr. 1 und Aufgabe Nr. 2, das Pseudozufallszahlenausgangssignal. Gleichartig zu dem Fall von 5a wird das Pseudozufallszahlenausgangssignal vor und nach der Erhöhung der Qualität des Pseudozufallszahlenausgangssignals verwendet, daraufhin, dass die Startparametereinstellung während des Zeitintervalls stattfindet, das von t3 bis t2 reicht (t2 > t3 > t1). Erneut wird lediglich der Vollständigkeit halber angemerkt, dass das Ende der Durchführung der ersten Aufgabe in das Startparametereinstellungszeitintervall [t1, t2] fallen kann, oder nach diesem Zeitintervall auftreten kann (siehe t4 oder t4').
-
6 zeigt ein Beispiel für einen Echte-Zufallszahlen-Generator, der in 2 verwendet werden kann. Insbesondere umfasst der Echte-Zufallszahlen-Generator von 6 eine physikalische Rauschquelle 50 und eine Komprimierungseinrichtung 52. Die physikalische Rauschquelle 50 kann auf einer Phasenregelschleife basieren und gibt eine rauschhafte Sequenz von Bits 54 aus. Die Komprimierungseinrichtung 52 kann ein Rückkopplungsschieberegister umfassen und dient zum Verbessern der Zufälligkeitseigenschaften der rauschhaften Sequenz von Bits 54, um an ihrem Ausgang das Echte-Zufallszahlen-Ausgangssignal 18 zu erhalten. Zu diesem Zweck gibt die Komprimierungseinrichtung 52 das Echte-Zufallszahlen-Ausgangssignal 18 mit einer Rate aus, die geringer ist als die rauschhafte Sequenz von Bits 54, die von der physikalischen Rauschquelle 50 zu der Komprimierungseinrichtung 52 geleitet wird, wodurch die Sequenz 54 etwas „komprimiert” wird. Die physikalische Rauschquelle 50 und die Komprimierungseinrichtung 52 können so konfiguriert werden, dass dieselben lediglich in Kombination aktivierbar und deaktivierbar sind, so dass, anders ausgedrückt, keine dieser beiden Entitäten ohne die andere laufen kann.
-
7 zeigt ein Beispiel für einen Pseudozufallszahlengenerator, wie er in 2 gezeigt ist. Der Pseudozufallszahlengenerator 12 von 7 umfasst ein Rückkopplungsschieberegister 60 und einen Multiplexer 62. Das Rückkopplungsschieberegister 60 wird durch einen Takt 22 getaktet und gibt synchron mit dem Takt das Pseudozufallszahlenausgangssignal 20 aus. Das Rückkopplungsschieberegister 60 umfasst einen internen Zustand, der dem Inhalt der Speicherzellen des Rückkopplungsschieberegisters 60 entspricht. Der innere Zustand ändert sich pro Taktzyklus des Takts 22 gemäß einer Rückkopplungsfunktion des Rückkopplungsschieberegisters 60. Der interne Zustand kann beeinflusst werden durch ein Signal 62 an einem Eingang des Rückkopplungsschieberegisters 60. Mit diesem Eingang ist ein Ausgang des Multiplexers 62 verbunden. Ein erster Eingang des Multiplexers 62 empfängt das Echte-Zufallszahlen-Ausgangssignal 18. Ein zweiter Eingang des Multiplexers 62 empfängt ein konstantes Signal, wie z. B. 0, wie es in 7 zu Darstellungszwecken angezeigt ist. Der Multiplexer 62 weist einen Steuereingang auf, zum Empfangen eines Steuersignals 66 von der Steuerung 16. Abhängig von dem Steuersignal 66 leitet der Multiplexer 62 das Echte-Zufallszahlen-Ausgangssignal 18 oder das konstante Signal 65 als Signal 64 zu dem Eingang des Rückkopplungsschieberegisters 60. Obwohl das konstante Signal 65 ausgewählt ist, um den internen Zustand des Rückkopplungsschieberegisters 60 unbeeinflusst zu lassen, beeinflusst das Echte-Zufallszahlen-Ausgangssignal 18, wenn es zu dem Eingang des Rückkopplungsschieberegisters 60 geleitet wird, den internen Zustand desselben, wodurch der Unsicherheitsbetrag innerhalb des Rückkopplungsschieberegisters 60 und die Qualität des Pseudozufallszahlenausgangssignals 20 erhöht wird.
-
Lediglich der Vollständigkeit halber wird angemerkt, dass das Rückkopplungsschieberegister ein nichtlineares Rückkopplungsschieberegister oder ein lineares Rückkopplungsschieberegister sein kann. Ferner kann ein Rückkopplungsschieberegister 60 von 7 eine Rückkopplungsschieberegisterschaltung sein, die aus mehr als einem Schieberegister besteht, wobei eine Rückkopplungsschaltung eine Rückkopplung von dem jeweiligen Ausgangsende jedes Schieberegisters zu dem jeweiligen Eingangsende liefert.
-
Insbesondere kann das Rückkopplungsschieberegister 60 von 7 eine Rückkopplungsschieberegisterschaltung sein, die Rückkopplungsschieberegister umfasst, die parallel zueinander geschaltet sind, mit einem arithmetischen Kombinierer, der die Ausgaben der einzelnen Rückkopplungsschieberegister mit einem gemeinsamen Pseudozufallszahlenausgangssignal kombiniert.
-
Die letztere Möglichkeit ist in 8 gezeigt. 8 zeigt eine Rückkopplungsschieberegisterschaltung, die eine Mehrzahl von Schieberegistern 70 und 72 umfasst. Obwohl in 8 nur zwei Schieberegister gezeigt sind, die die Rückkopplungsschieberegisterschaltung 60 umfasst, können mehr als zwei Schieberegister vorgesehen sein. Beispielhaft haben beide Schieberegister eine unterschiedliche Anzahl von Bitpositionen oder Speicherzellen, d. h. n1 ≠ n2. Beide Schieberegister haben einen Eingang und einen Ausgang, wobei der Ausgang der Schieberegister 70 und 72, sowie ein oder mehrere der Zwischenspeicherzellenausgänge mit einer jeweiligen Rückkopplungsfunktionsschaltung 74 bzw. 76 gekoppelt sind. Jede Rückkopplungsfunktionsschaltung 74 und 76 kombiniert die ankommenden Bits gemäß einer Rückkopplungsfunktion und gibt ein Rückkopplungssignal aus. Insbesondere kombiniert die Rückkopplungsfunktionsschaltung 74 die Ausgabe des Schieberegisters 70 sowie Zwischenspeicherzelleninhalte in dem Schieberegister 70, um das Rückkopplungssignal zu erhalten. Ein XOR-Gatter 78 ist zwischen den Ausgang der Rückkopplungsfunktionsschaltung 74 und den Eingang des Schieberegisters 70 gekoppelt, um das Rückkopplungssignal ohne Änderungen an den Eingang des Schieberegisters 70 zu koppeln, solange das Signal an dem weiteren Eingang des logischen XOR-Gatters 78 bei einem vorbestimmten logischen Wert bleibt, wie z. B. 0. Selbstverständlich könnte ein anderes logisches Gatter verwendet werden, so dass der vorbestimmte logische Wert 1 sein könnte. Gleichartig dazu ist ein XOR-Gatter 80 zwischen den Ausgang der Rückkopplungsfunktionsschaltung 76 und den Eingang des Schieberegisters 72 gekoppelt. Die weiteren Eingänge der XOR-Gatter 78 und 80 können mit dem Echte-Zufallszahlen-Ausgangssignal 18 gekoppelt werden, abhängig von einem Steuersignal von der Steuerung 16 (siehe 2), wobei ein Beispiel für die Steuerbarkeit mit Bezugnahme auf 7 bereitgestellt wurde.
-
Somit bilden das Schieberegister 70, die Rückkopplungsfunktionsschaltung 74 und das XOR-Gatter 78 ein erstes Rückkopplungsschieberegister, während das Schieberegister 72, die Rückkopplungsfunktionsschaltung 76 und das XOR-Gatter ein anderes Rückkopplungsschieberegister bilden. Beide Rückkopplungsschieberegister können durch den gleichen Takt getaktet werden, wie z. B. den Takt 22. Während jedes Taktzyklus erzeugen die Rückkopplungsfunktionsschaltungen 74 und 76 jeweils ein Rückkopplungsbit, das zu dem Eingang der jeweiligen Schieberegister 70 bzw. 72 geleitet wird. Das Rückkopplungssignal kann jedoch beeinflusst werden durch das Echte-Zufallszahlen-Ausgangssignal 18, vorausgesetzt, die Steuerung 16 entscheidet, den Pseudozufallszahlengenerator aktuell einer Startparametereinstellung zu unterziehen. Somit wird in jedem Taktzyklus das jeweilige Rückkopplungsschieberegister 70, 74 und 78 bzw. 72, 76 und 80 durch ein Bit des Echte-Zufallszahlen-Ausgangssignals beeinflusst. Somit erhöht sich in aufeinanderfolgenden Startparametereinstellungstaktzyklen die Qualität des Ausgangssignals dieser Rückkopplungsschieberegister allmählich. Insbesondere sind die Ausgänge der Schieberegister 70 und 72 mit jeweiligen Eingängen einer arithmetischen Kombinationseinheit 82 verbunden, die ebenfalls in der Rückkopplungsschieberegisterschaltung 60 enthalten ist. Die arithmetische Kombinationseinheit 82 kombiniert pro Taktzyklus die ankommenden Bits durch eine arithmetische Funktion, um pro Taktzyklus ein kombiniertes Bit an seinem Ausgang auszugeben, uns somit das Pseudozufallszahlenausgangssignal 20 zu erhalten.
-
Es sollte angemerkt werden, dass die oben gegebenen Ausführungsbeispiele lediglich darstellender Natur sind. Dies gilt insbesondere für 6–8. Die darin dargestellten Ausführungsbeispiele dienen lediglich dazu, das Verständnis des Betriebs beispielhafter Instantiierungen der jeweiligen Elemente in den vorhergehenden Figuren zu erleichtern, wie z. B. 2. Ferner können die Ausführungsbeispiele in 6– 8 variiert werden. Beispielsweise kann die Anzahl von Bits, die pro Taktzyklus in dem Startparametereinstellungsmodus in den Komparator 52 eingegeben werden, 1 überschreiten. Das gleiche gilt für den Ausgang der PRNG-Bitsequenz.
-
Die obigen Ausführungsbeispiele können Nachteile und Verzögerungen vermeiden, wenn ein Pseudozufallszahlengenerator verwendet wird, die sich aus dem Einschalten und der Ausgaberate des Echte-Zufallszahlen-Generators ergeben. Ein Einschalten eines Echte-Zufallszahlen-Generators ist eine zeitaufwendige Prozedur. Ferner ist ein Echte-Zufallszahlen-Generator normalerweise langsamer oder hat eine langsamere Ausgaberate als ein Pseudozufallszahlengenerator. Gemäß den obigen Ausführungsbeispielen kann ein langsamer Echte-Zufallszahlen-Generator, der nach einer langen Einschaltzeit fertig ist, auf effektive Weise mit einem schnellen Pseudozufallszahlengenerator kombiniert werden, falls der Pseudozufallszahlengenerator früh gestartet wird, mit nur einigen wenigen echten Zufallszahlenbits von dem Echte-Zufallszahlen-Generator, und somit ein echtes Pseudozufallszahlenausgangssignal verfügbar macht. Während dieser Zeit liefert der Pseudozufallszahlengenerator Pseudozufallsbits mit geringerer Qualität. Durch Übertragen weiterer echter Zufallszahlenbits von dem Echte-Zufallszahlen-Generator ist jedoch die Menge an Bytes für den Pseudozufallszahlengenerator 16 erhöht während des Betriebs des Pseudozufallszahlengenerators, wodurch nacheinander die Qualität des Pseudozufallszahlenausgangssignals erhöht wird. Sobald die Menge an echten Zufallszahlen von dem Echte-Zufallszahlen-Generator hoch genug ist, können die Module, d. h. der Pseudozufallszahlengenerator und der Echte-Zufallszahlen-Generator, entkoppelt werden und unabhängig voneinander laufen.
-
Es wird ferner angemerkt, dass die obigen Ausführungsbeispiele modifiziert werden könnten, dadurch, dass die Rate, mit der die Pseudozufallszahlenausgangsbits durch die nachfolgende Verbraucherschaltung verwendet werden, begrenzt wird, abhängig von dem Verhältnis der Ausgaberate des Pseudozufallszahlengenerators und des Echte-Zufallszahlen-Generators. Falls beispielsweise der Pseudozufallszahlengenerator x-mal schneller ist als der Echte-Zufallszahlen-Generator, dann sollten gemäß einem Ausführungsbeispiel nur x/2 Bits verwendet werden.
-
Obwohl
8 das Beeinflussen des Rückkopplungssignals mit dem Echte-Zufallszahlen-Ausgangssignal vorschlägt, findet das Beeinflussen des internen Zustands des Rückkopplungsschieberegisters gemäß weiteren Ausführungsbeispielen an einigen Zwischenabschnitten des Schieberegisters näher zu dem Ausgang des Rückkopplungsschieberegisters statt. Obwohl
1 ferner die Startparametereinstellung des Pseudozufallszahlengenerators mit einer Menge an Bits des Echte-Zufallszahlen-Ausgangssignals gleich dem Fall vorschlägt, wo das Echte-Zufallszahlen-Ausgangssignal während eines fortlaufenden Zeitintervalls an den Pseudozufallszahlengenerator angelegt wird, könnte in dem Fall der Zwischenstartparametereinstellungsschritte die Menge an Echte-Zufallszahlen-Ausgangssignalbits, mit denen der Pseudozufallszahlengenerator einer Startparametereinstellung unterzogen wird, erhöht werden relativ zu der Startparametereinstellung in einem fortlaufenden Zeitintervall, wodurch Q
0' erhöht wird oder Q
0' an Q
0 angepasst wird. Beispielsweise könnte in dem Fall eines Rückkopplungsschieberegisters, das n Speicherzellen und eine Periodenlänge von zwischen 2
n-1 und 2
n aufweist, die Erhöhung der Qualität des Pseudozufallszahlenausgangssignals in einer Anzahl I von Schritten ausgeführt werden, wobei insgesamt der Pseudozufallszahlengenerator mit n
i Bits des Echte-Zufallszahlen-Ausgangssignals des Echte-Zufallszahlen-Generators gekoppelt wird, pro Schritt i der Mehrzahl von Schritten, wobei
-
Abhängig von einer tatsächlichen Implementierung können die obigen Ausführungsbeispiele in Hardware oder in Software implementiert werden. Daher beziehen sich dieselben auch auf ein Computerprogramm, das auf einem computerlesbaren Medium, wie z. B. einer CD, einer Diskette oder jedem anderen Datenträger gespeichert sein kann. Diese Ausführungsbeispiele definieren daher auch ein Computerprogramm mit einem Programmcode, der, wenn er auf einem Computer ausgeführt wird, die obigen Verfahren ausführt, die in Verbindung mit den obigen Figuren beschrieben sind.
-
Obwohl diese Erfindung bezüglich mehrerer bevorzugter Ausführungsbeispiele beschrieben wurde, gibt es Änderungen, Permutationen und Äquivalente, die in den Schutzbereich dieser Erfindung fallen. Es sollte auch angemerkt werden, dass es viele alternative Möglichkeiten zum Implementieren der Verfahren und Anordnungen der vorliegenden Erfindung gibt.