-
Die vorliegende Erfindung betrifft eine Vorrichtung und ein Verfahren zum Erzeugen eines oder mehrerer Zufallsbits. Es wird zum Beispiel eine Zufallsbitfolge erzeugt, welche als binäre Zufallszahl verwendet wird. Die vorgeschlagenen Vorrichtungen und Verfahren zum Erzeugen von Zufallsbits dienen beispielsweise der Implementierung von Zufallszahlengeneratoren.
-
In sicherheitsrelevanten Anwendungen, beispielsweise bei asymmetrischen Authentifikationsverfahren, sind Zufallsbitfolgen als binäre Zufallszahlen notwendig. Dabei ist es gewünscht, insbesondere bei mobilen Anwendungen einen möglichst geringen Hardwareaufwand zu betreiben. Bekannte Maßnahmen, um Zufallszahlen zu erzeugen, sind beispielsweise Pseudozufallszahlengeneratoren, analoge Zufallsquellen, Ringoszillatoren und deren Abwandlungen.
-
Bei Pseudozufallszahlengeneratoren werden Seeds verwendet, von denen ausgehend deterministische Pseudozufallszahlen berechnet werden. Zur Erzeugung des Seeds wird in der Regel ein physikalischer Zufallsgenerator verwendet. Als analoge Zufallsquellen werden Rauschquellen, wie z.B. das Rauschen von Zenerdioden, verstärkt und digitalisiert. Dabei ist die Verbindung von digitaler mit analoger Schaltungstechnik meist nur aufwändig zu verwirklichen.
-
Bei Ringoszillatoren, die aus einer ungeraden Anzahl von hintereinander geschalteten Invertern aufgebaut sind, ergeben sich zufällige Jitter aus schwankenden Durchlaufzeiten der Signale durch die Inverter. Diese Jitter, also eine unregelmäßige zeitliche Schwankung in Zustandsänderungen der durch die Inverter geschickten Signale, können bei mehrfachen Durchläufen durch die Ringoszillatorschaltung akkumuliert werden, so dass letztlich ein zufälliges analoges Signal entsteht. Nachteilig bei Ringoszillatoren ist häufig die notwendige lange Zeit vom Start der Schwingung bis ein brauchbar zufälliges Signal aufgrund der Jitter-Akkumulierung entsteht. Daher ergeben sich meist niedrige nicht akzeptable Datenerzeugungsraten bei Ringoszillatoren. Ferner ist möglich, dass die sich addierenden Jitter-Beiträge sich auch selbst wieder aufheben, so dass im Mittel zufällige kurze Gatterlaufzeiten durch zufällige längere Gatterlaufzeiten kompensiert werden.
-
Fibonacci- und Galois-Ringoszillatoren erzeugen schneller zufällige Signalformen als klassische Ringoszillatoren. Allerdings werden verschiedene digitale Gatter wie XOR- und NOT-Gatter eingesetzt. Dadurch können sich insbesondere bei Implementierungen auf ASICs große Geschwindigkeitsunterschiede der Gattertypen ergeben. Häufig besteht der Wunsch, mit Hilfe von FPGAs (Field Programmable Gate Arrays) Zufallsbitfolgen zu erzeugen. Allerdings können auch bei diesen Digitalbausteinen beispielsweise aufgrund von Umgebungstemperaturschwankungen periodische Schwingungen einsetzen, die nur eine geringe Entropie oder Zufälligkeit in den Signalen haben.
-
Daher besteht eine Aufgabe der vorliegenden Erfindung darin, eine verbesserte Vorrichtung und/oder ein Verfahren zum Erzeugen von Zufallsbits bereitzustellen.
-
Demgemäß wird eine Vorrichtung zum Erzeugen von Zufallsbits vorgeschlagen, welche umfasst:
eine kombinatorische Einrichtung zur Durchführung einer Blockverschlüsselung von Eingangsdaten in Abhängigkeit von Schlüsseldaten, welche eingerichtet ist, verschlüsselte Ausgangsdaten auszugeben;
wobei die Eingangsdaten und die Schlüsseldaten der kombinatorischen Einrichtung als logische Pegel aufweisende Eingangssignale eingekoppelt sind, die Ausgangsdaten als logische Pegel aufweisende Ausgangssignale an Ausgängen der kombinatorischen Einrichtung abgreifbar sind; und
mindestens einen Rückkopplungspfad zum Rückkoppeln eines Ausgangssignals als Eingangssignal für die kombinatorische Einrichtung.
-
Die Vorrichtung umfasst somit eine kombinatorische Einrichtung, welche Blockchiffren bzw. Blockverschlüsselungen an Eingangsdaten durchführen kann. Bei einer Blockverschlüsselung wird ein deterministisches Verschlüsselungsverfahren eingesetzt, bei dem ein Klartext in der Art von Eingangsdaten unter Verwendung von Schlüsseldaten auf ein Chiffrat einer festen Bitlänge abgebildet wird. Beispielsweise sind die verschlüsselten Ausgangsdaten ein Chiffrat der Blockchiffre.
-
Als mögliche Blockchiffren sind beispielsweise DES, FEAL, Serpent, CAST, Camellia, RC6, IDEA, MARS, RC2, AES, Twofish, TEA, 3DES, Blowfish, Skipjack, XTEA und/oder Present bekannt. Grundsätzlich können all diese Blockchiffren verwendet werden.
-
Die kombinatorische Einrichtung liefert die verschlüsselten Ausgangsdaten vorzugsweise ausschließlich unter Verwendung logischer Funktionen die aus den Eingangsdaten, welche die Eingangsdaten als Klartext und die Schlüsseldaten verarbeiten und als Chiffrat ausgeben. Insbesondere hat die kombinatorische Einrichtung keine Zwischenspeicherelemente wie Latches oder Flip-Flops.
-
Der Rückkopplungspfad ist beispielsweise durch eine elektrische Verbindung zwischen einem Ausgangsanschluss, an dem ein Signalpegel anliegt, und einem Eingangsanschluss zum Einkoppeln eines Signalpegels implementiert. Es können auch mehrere Rückkopplungspfade vorgesehen sein. Der Eingangsanschluss, auf den ein Ausgangssignal rückgekoppelt wird, kann insbesondere für ein Bit eines Schlüsseldatums oder ein Bit eines Klartextdatums, benutzt werden.
-
Durch die Rückkopplung berechnet die kombinatorische Einrichtung unter Anwendung eines Blockchiffre-Algorithmus das Verschlüsselungsergebnis, welches die Veränderung eines oder mehrerer Signalpegel ausgangsseitig hervorruft. Die Rückkopplung dieser Signalpegel eingangsseitig führt dabei zu einem chaotischen Signalverhalten. Außerdem ergibt sich eine Beaufschlagung mit Jitter, so dass Zufallssignalformen mit hoher Entropie entstehen.
-
Da die Berechnung oder Durchführung der Blockverschlüsselung ausschließlich durch eine kombinatorische Einrichtung erfolgt, propagiert ein sich ändernder Eingangssignalpegel unter Beaufschlagung von Jittern durch die Kombinatorik. Diese Jitterbeiträge führen dazu, dass eingangsseitig vorliegende, wohl definierte Signalcharakteristika, wie eine steigende oder fallende Flanke, verwischt oder verzufälligt werden, sodass ausgangsseitig zufällige Signalformen vorliegen. Diese werden durch eine Erfassungseinrichtung zum Beispiel in einen oder mehrere Zufallsbitwerte umgewandelt.
-
Die Vorrichtung kann in Ausführungsbeispielen ferner mindestens eine Erfassungseinrichtung zum Erfassen eines Signalpegels mindestens eines der Ausgangssignale als Zufallssignal aufweisen.
-
Die Erfassungseinrichtung kann beispielsweise Signalpegel, welche nicht deterministisch zwischen logischen Pegeln schwanken, abtasten oder bestimmte Signalcharakteristika, wie steigende oder fallende Flanken erfassen und/oder zählen. Dies erfolgt während die kombinatorische Einrichtung chaotische Schwingungen aufgrund der Rückkopplung vollzieht. Das heißt, aufgrund der rückgekoppelten kombinatorischen Implementierung und der den Signalflanken aufgeprägten Jittern ergeben sich Zwischenzustände an den Ausgängen der kombinatorischen Einrichtung, welche chaotische nicht deterministische Signalformen haben.
-
In Ausführungsformen kann die Erfassungseinrichtung eine Zähleinrichtung zum Erfassen von Signalflanken, beispielsweise steigenden und/oder fallenden Signalflanken wenigstens eines der Ausgangssignale, umfassen. Eine Zähleinrichtung, wie ein Counter bzw. Zähler oder ein Zwischenspeicherelement, wie ein T-Flip-Flop sind geeignet, um derartige Signalcharakteristika zu erfassen bzw. zu zählen. Der jeweilige Zählerwert ergibt sich zufällig, da die Anzahl einer jeweiligen Signalflanken, beispielsweise steigende Signalflanken, von dem zufälligen Signalverlauf abhängt.
-
Es kann eine Starteinrichtung vorgesehen werden, welche eingerichtet ist, in Abhängigkeit von einem Startsignal, die Eingangsdaten und/oder die Schlüsseldaten zu einem vorgegebenen Startzeitpunkt derart zu ändern, dass wenigstens eines der Eingangssignale seinen Pegel ändert.
-
Zum Beispiel kann vor dem Startzeitpunkt ein erstes Bitmuster vorgegebener Länge als Schlüsseldaten vorliegen und ein zweites Bitmuster für die Eingangsdaten, welche unter Verwendung des Blockchiffrenverfahrens in die verschlüsselten Ausgangsdaten mit einem jeweiligen Ausgangsbitmuster ausgegeben werden. Eine Änderung der Bitwerte der Eingangsdaten führt zu einer oder mehreren Signalflanken der zugehörigen Signalpegel, wenn die Eingangsdaten auf ein neues Eingangsdatenbitmuster umgeschaltet werden.
-
In Ausführungsformen ist die kombinatorische Einrichtung eingerichtet, eine kryptographische Blockverschlüsselung mit einem Avalanche-Effekt durchzuführen. Ein Avalanche-Effekt, der auch als Lawinen-Effekt bezeichnet wird, ist die Eigenschaft eines kryptographischen Algorithmus, wonach eine minimale Änderung der Eingabe, also der Eingangsdaten und/oder der Schlüsseldaten, zur Änderung vieler Ausgangsdaten hinsichtlich ihrer Werte führt.
-
Noch bevorzugter führt die kombinatorische Einrichtung eine Blockverschlüsselung bzw. Blockchiffren von Eingangsdaten in Abhängigkeit von Schlüsseldaten durch, die ein strenges Lawinen-Kriterium bzw. ein „Strict Avalanche Criterium“ erfüllen. Dieses Kriterium verlangt, dass sich bei einer Änderung eines Eingabebitwertes jedes Bit der Ausgabe mit einer Wahrscheinlichkeit von 50% ändert. Beispielsweise hat die AES-Blockchiffre ein derartiges Avalanche-Verhalten.
-
Durch den Avalanche-Effekt wird der Jitterbeitrag jeweils vervielfältigt, sodass besonders stark zufällige Signalanteile entstehen, die sich aus den Jitterbeiträgen speisen.
-
Es wird ferner ein Verfahren zum Erzeugen von Zufallsbits mit Hilfe einer kombinatorischen Einrichtung, welche eine Blockverschlüsselung von Eingangsdaten in Abhängigkeit von Schlüsseldaten verschlüsselt und verschlüsselte Ausgangsdaten ausgibt, vorgeschlagen. Dabei sind die Eingangsdaten und die Schlüsseldaten der kombinatorischen Einrichtung als logische Pegel aufweisende Eingangssignale eingekoppelt, und das Verfahren weist die Schritte auf: elektrisches Rückkoppeln mindestens eines Ausgangssignals als Eingangssignal der kombinatorischen Einrichtung, wobei die Ausgangsdaten als logische Pegel von Ausgangssignalen an Ausgängen der kombinatorischen Einrichtung abgegriffen werden.
-
Das Verfahren kann als Betriebsverfahren für die vorstehend genannte Vorrichtung zum Erzeugen von Zufallsbits verstanden werden.
-
In Ausführungsformen des Verfahrens werden Signalflanken des wenigstens einen erfassten Signalpegels, welcher nicht deterministisch zwischen zwei logischen Pegeln schwankt, gezählt. In Abhängigkeit von einem jeweiligen Zählergebnis wird ein Zufallsbitwert bestimmt. Dies kann mit Hilfe eines Zählers, wie auch eines T-Flip-Flops, erzielt werden.
-
In Ausführungsformen des Verfahrens werden zu vorgegebenen Zeitpunkten alle Eingangssignale vorübergehend auf vorgegebene logische Pegel gesetzt, und die kombinatorische Einrichtung schwingt anschließend aufgrund der Rückkopplung chaotisch. Man kann auch von einem Neustart aus vorgegebenen Eingangszuständen der Verschlüsselungseinrichtung sprechen.
-
Durch das Setzen auf vorgegebene logische Pegel wird die Rückkopplung unterbrochen, und der Zufallszahlengenerator startet von einem definierten Zustand neu. Vorzugsweise sind die nach verschiedenen Neustarts gewonnenen Zufallsbits statistisch unabhängig voneinander.
-
Die Vorrichtung und das Verfahren ermöglichen insbesondere eine kryptographische Schlüsselerzeugung und Zufallsbiterzeugung.
-
Da eine kombinatorische Implementierung von Blockchiffren vorgesehen ist, können Zufallsbits mit hohen Bitraten erzeugt werden.
-
In Ausführungsbeispielen können die erzeugten Zufallsbits, beispielsweise wenn mehrere Bitpositionen der Ausgangssignale verwendet werden, algorithmischen Nachbehandlungen unterzogen werden. Häufig ist dies aufgrund der guten statistischen Qualität der erhaltenen Zufallsbits nicht notwendig.
-
In Ausführungsformen ist die Vorrichtung Teil einer FPGA-Einrichtung oder einer ASIC-Einrichtung.
-
Das Verfahren kann insbesondere über geeignete Beschreibungssprachen, beispielsweise VHDL oder Verilog, auf oder in einer FPGA- oder ASIC-Vorrichtung implementiert werden.
-
Weitere mögliche Implementierungen der Erfindung umfassen auch nicht explizit genannte Kombinationen von zuvor oder im Folgenden bezüglich der Ausführungsbeispiele beschriebenen Vorrichtungen oder Verfahrensvarianten. Dabei wird der Fachmann auch Einzelaspekte als Verbesserungen oder Ergänzungen zu der jeweiligen Grundform der Erfindung hinzufügen oder abändern.
-
Die oben beschriebenen Eigenschaften, Merkmale und Vorteile dieser Erfindung sowie die Art und Weise, wie diese erreicht werden, werden klarer und deutlicher verständlich im Zusammenhang mit der folgenden Beschreibung der Ausführungsbeispiele, die im Zusammenhang mit den Zeichnungen näher erläutert werden.
-
Dabei zeigen:
-
1 eine schematische Darstellung eines Ausführungsbeispiels für eine Vorrichtung zum Erzeugen von Zufallsbits;
-
Die 1 zeigt eine schematische Darstellung eines Ausführungsbeispiels für eine Vorrichtung zum Erzeugen von Zufallsbits. Die Vorrichtung 1 umfasst dabei insbesondere eine kombinatorische Einrichtung 2 zur Durchführung einer Blockverschlüsselung. Eine entsprechende Blockverschlüsselung oder Blockchiffre bildet Eingangsdaten k unter Verwendung eines kryptographischen Schlüssels S auf ein Chiffrat oder Ausgangsdaten Fs(k) ab. In der 1 ist dies schematisch angedeutet. Der Blockverschlüsselungsalgorithmus oder die kryptographische Abbildung ist mit F bezeichnet.
-
In der 1 ist das n-Bit lange Eingangsdatenwort k0 ... ki ... kn-1 angedeutet. Die Schlüsseldaten S haben eine Bitlänge q und sind mit S = S0 – Sq-1 bezeichnet. Die sich ergebende Blockchiffre der Länge p ist in der 1 mit den Bitwerten F0 ... Fj ... Fp-1 angedeutet. Jedes Bit entspricht dabei einem logischen Pegel, der an elektrischen Leitungen in der Vorrichtung 1 vorliegt. Zum Einkoppeln und Auskoppeln der entsprechenden Daten in Form von logischen Pegeln sind Leitungen vorgesehen.
-
Dazu hat die kombinatorische Einrichtung, welche auch als Verschlüsselungseinrichtung 2 bezeichnet wird, Eingänge 2E für die Eingangsdaten, Eingänge 2S für die Schlüsseldaten und Ausgänge 2F für die verschlüsselten Ausgangsdaten. Die zu verschlüsselnden Eingangsdaten k liegen mit einer festen Länge n vor und werden auf das Chiffrat Fs(k) ebenfalls mit einer festen Bitlänge q abgebildet. Die genaue Transformation wird dabei durch Schlüsseldaten S festgelegt.
-
Außerdem ist in dem Beispiel der 1 ein Rückkopplungspfad R angegeben. Das heißt, ein Signalpegel Aj eines Ausgangs 2A wird als Eingangssignal Ei einem Eingang 2E zugeführt. Im Beispiel der 1 ist beispielsweise das Ausgangsbit Fj als Eingangsbit ki rückgekoppelt. In der schaltungstechnischen Implementierung wird eine elektrische Leitung von dem Ausgang, der der Bitposition Fj entspricht, an den Eingang, der der Bitposition ki entspricht, implementiert. Dadurch ergibt sich ein rückgekoppeltes, schwingungsfähiges System aufgrund der kombinatorischen Blockchiffrenabbildung F. Es können auch weitere Rückkopplungen vorgesehen sein. Jedenfalls ist es in der 1 beispielhaft, das Ausgangssignal Aj, welches einem logischen Pegel entspricht, als Eingangssignal Ei der kombinatorischen Einrichtung 2 zugeführt.
-
Die kombinatorische Verschlüsselungseinrichtung 2 wird beispielsweise von einer Steuereinrichtung 6 mithilfe von Steuersignalen CT3 angesteuert. Ein Speicher 4, der die Bitwerte des Klartextes k bzw. der zu verschlüsselnden Eingangsdaten enthält, ist über Leitungen, welche entsprechende Eingangssignale E als logische Pegel übertragen, an die Eingänge 2E gekoppelt. Während der Rückkopplung, also im chaotischen Schwingungsfall, wird der Speicher entkoppelt, sodass die Signalpegel der Eingangsdaten veränderbar sind. Ein jeweiliger Bitwert der Eingangsdaten k entspricht dabei einem logischen H- oder L- bzw. 1- oder 0-Pegel des jeweiligen Eingangssignals aus E.
-
Ähnlich ist ein weiterer Speicher 3 zum Abspeichern der Schlüsseldaten S vorgesehen, der über Leitungen an den Schlüsseleingang 2S der kombinatorischen Verschlüsselungseinrichtung 2 gekoppelt ist.
-
An den Ausgängen 2A sind nach Durchführung der Blockverschlüsselung durch die kombinatorische Einrichtung 2 logische Pegel für die jeweiligen Bits des Blockchiffrats Fs(k) abgreifbar. Die Ausgänge 2S sind über geeignete Leitungen zur Übertragung dieser Ausgangssignale A an eine Erfassungseinrichtung 5 gekoppelt.
-
Die Erfassungseinrichtung 5 umfasst in der Ausführungsform der 1 ein T-Flip-Flop 7, welches auftretende, steigende oder fallende Signalflanken, beispielsweise einer bestimmten Bitposition des Chiffrats Fs(k), erfasst bzw. zählt. Dabei werden aufgrund der Rückkopplung zufällige jitterbehaftete Zufallssignalformen ZS erfasst.
-
Die Steuereinrichtung 6 liefert Steuersignale CT1, CT2, CT3, CT4, um beispielsweise die kombinatorische Einrichtung 2 mit einem geeigneten Verschlüsselungsalgorithmus zu versehen, die Schlüsseldaten im Speicher 3 abzulegen, die Erfassungseinrichtung 5 anzusteuern und die Eingangsdaten k festzulegen oder zu verändern. Um nun mit Hilfe der kombinatorischen Verschlüsselungseinrichtung 2 Zufallsbits zu erzeugen, werden Eingangsdaten k zu einem Startzeitpunkt verändert. Das heißt, wenigstens eines der Eingangssignale vollzieht einen Pegelwechsel, nämlich wenn der Bitwert an der jeweiligen Position der Eingangsdaten verändert wird. Außerdem sind die Rückkopplungspfade implementiert, sodass ein chaotisches Signalverhalten eintritt.
-
Untersuchungen der Anmelderin haben ergeben, dass sich echte Zufallsbits mit Hilfe der vorgeschlagenen Schaltung erzeugen lassen. Die Anmelderin hat dazu ein FPGA-Chip vom Typ Spartan-3 als Einrichtung zur Verschlüsselung mit einer Blockchiffre PRESENT implementiert. Die Schlüssellänge ist dabei 80 Bits, und das Chiffrat hat 64 Output-Bits. Bei dem Experiment wurden die Schlüsseldaten zufällig, aber fest gewählt.
-
Zum Starten der Zufallsbiterzeugung und zum Einsetzen der chaotischen Signalformen wurde ein Eingangswert mit 64 Null-Bits zum Startzeitpunkt auf 64 Eins-Bits umgeschaltet. Nach etwa 100 ns wurden mit Hilfe einer Abtast- und Halteeinrichtung als Erfassungsvorrichtung 32 der 64 Output-Bits gesampelt und abgespeichert. Die 32 erhaltenen Zufallsbitwerte, die jeweiligen abgetasteten Signalpegeln entsprechen, sind nicht statistisch unabhängig voneinander. Um die Auswertung zu vereinfachen, wurden nur die 16 niederwertigen Bits der abgetasteten Chiffrat-Bits berücksichtigt, d.h. F0 – F15. Es wurden etwa 5 Mio. Abtastungen durchgeführt.
-
Die Untersuchungen der Anmelderin ergeben, dass bei den 16 Bitwerten eine Entropie von 12,8322 Bits pro 16 Bit Sample vorliegt. Die entsprechende Mi-Entropie betrug 7,4146 Bits.
-
Bei der Untersuchung wurde festgestellt, dass die Bits nicht vollständig gleich verteilt sind zwischen 0 und 1 und eine Schiefe aufweisen. Die Anmelderin hat folgende Tabelle ermittelt, worin die Wahrscheinlichkeiten angegeben sind, das die einzelnen Bits den Wert 1 anzunehmen:
Die Wahrscheinlichkeit P lautet, P(F15) = 0,726288, für F14 0,681902, für F13 0,651021, für F12 0,663267, für F11 0,68906, für F10 0,64163, für F9 0,618273, für F8 0,797184, für F7 0,886538, für F6 0,907844, für F5 0,692619, für F4 0,832369, für F3 0,798108, für F2 0,640947, für F1 0,738466 und für F0 0,794183.
-
Da bei den erzeugten Zufallsbits möglicherweise eine Tendenz zur logischen 1 vorliegt, kann in Ausführungsformen die Vorrichtung mit einer weiteren Verarbeitungseinheit versehen sein, welche eine Schiefe ausgleicht. Insofern kann die Verarbeitungseinheit oder -einrichtung ein Verfahren zum statischen Ausgleichen und Nachbearbeiten einer Schiefe der Zufallsbits vornehmen.
-
Die Vorrichtung ist ferner implementiert, ein kryptographisches Verschlüsselungsverfahren durchzuführen.
-
Die vorgeschlagene Vorrichtung und das zugrunde liegende Verfahren eignen sich insbesondere zur Implementierung in ASICs. Die Erfindung ermöglicht also unter anderem eine schnelle Zufallsbiterzeugung bei geringem Hardwareaufwand da die Hardwareressourcen gleichzeitig zur Zufallsbiterzeugung und einer kryptographischen Verschlüsselung verwendet werden können.
-
Obwohl die Erfindung im Detail durch das bevorzugte Ausführungsbeispiel näher illustriert und beschrieben wurde, so ist die Erfindung nicht durch die offenbarten Beispiele eingeschränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen. Zum Beispiel ist auch eine Rückkopplung auf Schlüsselbits denkbar.