-
Die Erfindung betrifft ein Verfahren zum Erzeugen einer Einwegfunktion für ein kryptographisches Verfahren und eine Schaltungsanordnung. Diese Schaltungsanordnung dient insbesondere zum Implementieren bzw. Realisieren der Einwegfunktion.
-
Stand der Technik
-
Eine Einwegfunktion ist eine mathematische Funktion, die „leicht“ berechenbar, aber „schwer“ umzukehren ist. Kryptographische Einwegfunktionen werden benötigt, damit ein Angreifer aus generierten Daten nicht oder nur mit ggf. unvertretbarem Aufwand einen inneren Zustand, verwendete Eingabedaten oder zuvor ausgegebene Daten berechnen kann. Ein solches Vorgehen wird auch als backtracking bezeichnet.
-
Für deratige Einwegfunktionen werden üblicherweise Multiplikationen, die Rabin-Funktion (x
2 mod N), diskrete Exponentialfunktionen oder Hash-Funktionen verwendet. Übertragslose Multiplikationen können auch eingesetzt werden, wie dies bspw. in der Druckschrift
US 20 1001 257 28 A1 beschrieben wird. Dabei wird ausgenutzt, dass eine Multiplikation einfach ausgeführt werden kann, die Umkehroperation bzw. Faktorisierung jedoch dadurch kompliziert wird, dass insbesondere mehrere Möglichkeiten zur Verfügung stehen. Diese Vielfalt wird noch erhöht, wenn ein Übertrag nicht benutzt oder wie bei der Rabin-Funktion eine modulo N Funktion verwendet wird.
-
Die Multiplikation alleine ohne Übertrag oder modulo x bietet insbesondere für Operanden mit geringer Bitbreite für manche Anwendungen nicht die erforderliche Kompliziertheit und Nichtlinearität.
-
Das vorgestellte Verfahren wird beim Erzeugen einer zufälligen Ausgangsbitfolge und somit zum Generieren von Zufallszahlen eingesetzt. Zufallszahlen, die als Ergebnis von Zufallselementen bezeichnet werden, werden für viele Anwendungen benötigt. Zur Erzeugung von Zufallszahlen werden sogenannte Zufallsgeneratoren eingesetzt. Zufallsgeneratoren sind Verfahren, die eine Folge von Zufallszahlen liefern. Ein entscheidendes Kriterium von Zufallszahlen ist, ob das Ergebnis der Generierung als unabhängig von früheren Ergebnissen angesehen werden kann.
-
Zur Erzeugung zufälliger Bitfolgen werden Zufalls-Bit-Generatoren bzw. Random Bit Generatoren eingesetzt, die bei Eingabe einer Eingangsbitfolge eine zufällige Ausgangsbitfolge liefern.
-
Es werden bspw. für kryptographische Verfahren Zufallszahlen benötigt. Diese Zufallszahlen werden verwendet, um Schlüssel für die Verschlüsselungsverfahren zu generieren. An solche Schlüssel werden hohe Anforderungen bezüglich der Zufallseigenschaften gestellt.
-
Insbesondere die Menge bzw. das Maß an Zufall, nämlich Entropie pro Bit, sollte ausreichend sein. Außerdem sollte die Bitwahrscheinlichkeiten für die Werte aus {0, 1} gleichwahrscheinlich sein. Zu beachten ist, dass die dafür von bekannten Zufallsquellen generierten Zufallswerte diese Anforderungen meist nicht erfüllen. Deshalb sind zusätzliche Verfahren notwendig, die man unter dem Begriff "Post Processing" bzw. Nachbearbeitung zusammenfasst. Für ein solches Post Processing wird typischerweise ein DRBG (Deterministischer Random Bit Generator) eingesetzt, wie dieser bspw. durch das Bundesamt für Sicherheit in der Informationstechnik (BSI) im BSI AIS 31 vom 25. September 2001 beschrieben wird. Ein solcher Generator erzeugt deterministische Bitfolgen, die aber zufällig aussehen. Man vezeichnet solche Generatoren auch als Pseudo-Zufallsgeneratoren. Wird eine nicht bekannte Seed bzw. Saat als Ausgangspunkt für die Pseudo-Zufallsfoge benutzt, so darf diese Folge nicht vorhersehbar sein, auch wenn man die schon ausgegebenen Bits der Pseudo-Zufallsfolge kennt, aber nicht die Seed.
-
Hierbei werden die Eigenschaften eines DRBG genauer untersucht und vom National Institute of Standards and Technology (NIST) gibt es Empfehlungen für ein DRBG in einem Special Paper NIST SP 800-90 von März 2007.
-
Das Post Processing nach dem Stand der Technik wird typischerweise durch Resilent Functions (elastische Funktionen), Linear Feedback Shift Registers (LFSR) und multiple input LFSR oder MISR (Multiple Input Signature Register) realisiert.
-
Verfahren nach dem Stand der Technik sind entweder sehr aufwendig, wie bspw. Resilent Functions, oder sie erfüllen nicht exakt die 50 % Bit-Wahrscheinlichkeiten, wie bspw. LFSR. Beide vorgenannten Verfahren haben darüber hinaus keine Möglichkeit, Fehler in der Anordnung, die bspw. durch Fehlerattacken verursacht sind, zu erkennen.
-
Offenbarung der Erfindung
-
Vor diesem Hintergrund werden ein Verfahren mit den Merkmalen des Anspruchs 1 und eine Schaltungsanordnung gemäß Anspruch 9 vorgestellt. Weitere Ausführungen ergeben sich aus den Unteransprüchen und der Beschreibung.
-
Mit der Verknüpfung der oberen Hälfte der Ergebnisbits einer Multiplikation mit der unteren Hälfte und damit der niederwertigen Hälfte in Abhängigkeit der Wertrelation dieser beiden Teile und der Spezialfunktion für Operanden mit dem Wert 0 kann eine ausgewogene Zuordnungstabelle erhalten werden, die sich als ROM-Version über Tabellenwerte aber auch einfach mittels einer kombinatorischen Schaltung realisieren lässt.
-
Die vorgestellte Schaltungsanordnung kann zur Implementierung einer Einwegfunktion im Rahmen eines Verfahrens zur Erzeugung einer zufälligen Ausgangsbitfolge eingesetzt werden, auf das nachfolgend eingegangen wird.
-
Hierzu wird zunächst ein Verfahren zum Generieren einer pseudo-zufälligen nAusgangsbitfolge vorgestellt, bei dem eine Anordnung von 2 jeweils gleich aufgebauten Zustandsautomaten verwendet wird, wobei die Zustandsautomaten jeweils n Zustands-Bits umfassen, wobei jeder Zustandsautomat stets einen anderen Zustand einnimmt als die anderen Zustandsautomaten der Anordnung, wobei den Zustandsautomaten eingangsseitig jeweils ein gleiches Eingangssignal zugeführt wird und diese jeweils in Abhängigkeit Ihres Zustands n Signaturbits, die zusammen eine Signatur-Bitfolge bilden, erzeugen, wobei die zufällige Ausgangsbitfolge durch Auswahl einzelner Bits aus den Signatur-Bitfolgen aller Zustandsautomaten der Anordnung erzeugt wird.
-
Das Verfahren wird bspw. mit einem Pseudo-Zufallsbitgenerator zum Generieren einer zufälligen Ausgangsbitfolge mit einer unbekannten Saat bzw. Seed durchngeführt, der eine Anordnung von 2 jeweils gleich aufgebauten Zustandsautomaten umfasst, wobei die Zustandsautomaten jeweils n Zustands-Bits umfassen, wobei jeder stets einen anderen Zustand einnimmt als die anderen Zustandsautomaten der Anordnung, wobei den Zustandsautomaten eingangsseitig ein Eingangssignal zuzuführen ist und diese jeweils in Abhängigkeit Ihres Zustands n Signaturbits, die zusammen eine Signatur-Bitfolge bilden, erzeugen, wobei die zufällige Ausgangsbitfolge durch Auswahl einzelner Bits aus den Signatur-Bitfolgen aller Zustandsautomaten der Anordnung erzeugt wird.
-
Das Verfahren hat gegenüber bekannten Verfahren die Möglichkeit, Fehlerattacken zu erkennen. Zudem bietet es eine bessere Bitwahrscheinlichkeit als ein LFSR. Dieses Verfahren hat jedoch den Nachteil, dass Kollisionen auftreten können, d. h. gleiche Ausgangsfolgen von verschiedenen Eingangsbitfolgen auftreten können. Durch solche Kollisionen können Angriffe eines Angreifers bzw. Attackierers begünstigt werden. Weiterhin ist bei dem Verfahren ein Rückverfolgen der ausgegebenen Ausgangssignale einfacher möglich, als bei dem Verfahren, das hier nachstehend vorgestellt wird.
-
Das vorstehend dargelegte Verfahren wird nunmehr dadurch erweitert, dass die Eingaben zweimal verarbeitet werden, und zwar dass diese einmal direkt in Anordnung der Zustandsmaschinen, die auch als COSSMA-Anordnung (Complete Set of State Machines) bezeichnet wird, und zusätzlich verknüpft mit einer Einwegfunktion eingehen.
-
Die direkte Eingabe gewährleistet, dass bei der Verarbeitung keine Entropie verloren geht und die zweite verknüpfte Eingabe hilft Kollisionen zu vermeiden, erschwert ein Rückverfolgen bzw. Backtracking, d. h. ein Errechnen der Vorgänger-Ausgangwerte, und erschwert eine Prediction bzw. Vorhersage künftiger Ausgangswerte, wenn die Seed bzw. die Saat nicht bekannt ist. Auf die direkte Eingabe kann man auch verzichten, wenn man nachweisen kann, dass bei der Verknüpfung mit der Einwegfunktion keine Entropie verloren geht und auch die Kollisionen dadurch nicht verstärkt auftreten.
-
Zusätzlich kann der Einfluss aller Eingangsbits auf den Ausgangswert egalisiert werden, wenn ein Parity auch noch nach der Verarbeitung der letzten Eingabe-Bits errechnet wird und in den Ausgangswert eingeht.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und den beiliegenden Zeichnungen.
-
Es versteht sich, dass die voranstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht zur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
-
Kurze Beschreibung der Zeichnungen
-
1 zeigt eine Einwegfunktion.
-
2 zeigt die Anordnung einer Ausführung des vorgestellten Verfahrens.
-
3 zeigt eine Ausführungsform der beschriebenen Einrichtung zur Durchführung des beschriebenen Verfahrens.
-
4 zeigt eine Anordnung von Zustandsautomaten.
-
5 zeigt einen 4 Bit-Zustandsautomaten.
-
6 zeigt Zustandsübergänge.
-
7 zeigt eine DRBG-Ausgangsstufe.
-
Ausführungsformen der Erfindung
-
Die Erfindung ist anhand von Ausführungsformen in den Zeichnungen schematisch dargestellt und wird nachfolgend unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.
-
1 verdeutlicht eine Einwegfunktion g = x·y mit einem Eingabe-Nibble x und einem feedback der zwischenzeitlichen Ausgabe y als Eingangsgrößen. Hieraus ergibt sich ein höherer Nibble 180 von g und ein niedrigerer Nibble 182 von g, die einer Modifikation 184 unterzogen werden, so dass ein Ergebnis 186 erzielt wird.
-
Wie in 1 dargestellt ist, wird die Einwegfunktion durch die Multiplikation von zwei Operanden erreicht. Das Ergebnis dieser Operation hat typischerweise die doppelte Bitbreite, die man in zwei Teilergebnissen mit der einfachen Bitbreite in obere Bits und untere Bits aufteilen kann. Zu beachten ist, dass es erforderlich sein kann, diese doppelte Bitbreite auf die einfache Bitbreite zurückzuführen. Hierzu werden die Zahlenwerte beider Teilergebnisse miteinander verglichen und je nach Vergleichsergebnis unterschiedlich verknüpft. Dazu werden im Ausgührungsbeispiel Operanden mit je 4 Bits betrachtet und das untere und obere Nibble des Ergebnisses verglichen, bevor beide miteinander verknüpft werden. Für den Fall, dass ein oder beide Operanden gleich Null sind, werden Spezialoperationen ohne Multiplikation verwendet. Falls ein Operand Null ist, wird der andere Operand als negativer Wert erzeugt, allerdings ohne Vorzeichen, und zu diesem Wert wird der Wert 2 addiert. Der negative Wert entspricht dem Zweierkomplement des Operanden, das durch Invertierung aller Bits mit anschließender Inkrementierung erreicht wird. Man kann den resultierenden Wert auch berechnen, indem man alle Bits des Operanden invertiert und dazu den Wert 3 addiert. Das ist eine Zusammenfassung der Inkrementierung mit der Addition von 2. Bei diesen Additionsoperationen werden Überträge unberücksichtigt gelassen. Sind beide Operanden Null, so wird ein festgelegter Wert ausgegeben. In der dargestellten Ausführung wird der Wert 2 dafür verwendet. Durch diese Operationen erreicht man die Gleichverteilung aller möglichen Werte in Tabelle 1 für alle Zeilen und Spalten. Wenn beide Operanden von Null verschieden sind, werden die höheren 4 Bits von den unteren 4 Bits abgezogen und entweder eine 1 oder eine 2 hinzuaddiert, je nachdem, ob das niederwertige Nibbel größer als das höherwertige Nibble ist oder nicht. Auch hier wird für die Operanden eine Zweierkomplementdarstellung bei negativen Werten verwendet.
-
Es kann vorgesehen sein, dass für den Fall, dass ein erster Operand Null ist, nur der Wert des zweiten Operanden nach einer vorgegebenen Vorschrift modifiziert wird und diese Modifikation so gewählt wird, dass für jeden beliebigen zweiten Operanden alle möglichen Werte – einschließlich Null – auftreten, wenn der zweite Operand so variiert wird, dass alle möglichen Werte – einschließlich Null – angenommen werden.
-
Tabelle 1 stellt eine Ergebnistabelle dar, die eine Einwegfunktion repräsentiert:
Tabelle 1
-
Durch diese Zuordnung, die Tabelle 1 zu entnehmen ist, wird gewährleistet, dass jeder Ausgang 16 mal vorkommt. Es wird hierzu auf Tabelle 2 verwiesen. Diese zeigt eine Statistik zur Transformation von Tabelle 1, indem für jeden Wert die Häufigkeit angegeben wird. Eine zusätzliche Eigenschaft der Tabelle 1 ist, dass in jeder Zeile und Spalte jeder Wert genau einmal vorkommt.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 |
Tabelle 2
-
Die Komplexität dieser Transformation kann bestimmt werden, wenn jedes einzelne Ergebnisbit nach der Transformation durch eine BOOLEsche Gleichung dargestellt wird, die man als algebraische Normalform ANF bezeichnet und die aus der antivalenten Verknüpfung XOR von konjunktiven Termen AND besteht.
-
Tabelle 3 zeigt die Ergebnisse der Auswertung dieser Gleichungen zusammengefasst und ist das Ergebnis einer Komplexitätsuntersuchung der Einzelbitfunktionen des Gesamtergebnisses für einen festen Operanden.
Tabelle 3
-
Als komplex wird dabei eine Funktion bewertet, wenn die ANF mindestens zwei konjunktive Terme mit jeweils mindestens zwei Variablen enthält, sonst wird sie als einfach bewertet. Die Zahl gibt grundsätzlich an, von wievielen Variablen die Funktion insgesamt abhängt. Es kann zusammenfassend festgestellt werden, dass nur für die festen Operanden 0x2 und 0xf jede Bitfunktion für sich als einfach eingestuft wird.
-
Die Gesamtheit aller 4 Bits hängt aber in jedem Fall von allen 4 Bits ab und alle 4 Bits haben insgesamt etwa den gleichen Einfluss auf die Gesamtfunktion. Weiterhin ist zu bemerken, dass bei den erwähnten beiden Operanden eine Schwäche vorliegt, die zu beachten ist. Diese Schwäche ist bspw. die nicht komplexe Funktion bei den Operanden 0x2 und 0xf. Insbesondere kann man, wenn auszuschließen ist, dass bei einer Mehrfachanwendung diese Operanden (0x2 oder 0xf) in überdurchschnittlicher Anzahl vorkommen, diese Schwäche akzeptieren, wenn die Einwegfunktion mehrmals zur Generierung einer Ausgangsfunktion verwendet wird.
-
Die Auswahl der Modifikation nach 1 kann grundsätzlich von verschiedenen Eigenschaften der Teilergebnisse abhängig gemacht werden. Solche Ergebnisse können sein:
- a) das Verhältnis des Dezimalwerts der Teilergebisse, wie dies in 1 gezeigt ist,
- b) das Verhältnis der Anzahl der Einsen der Teilergebnisse,
- c) das Verhältnis der Anzahl von maximal zusammenhängenden Einsen in den Teilergebnissen,
- d) das Verhältnis der Anzahl von maximal zusammenhängenden Nullen in den Teilergebnissen.
-
Auf diese Weise kann ausgewählt werden, ob die Teilergebnisse addiert oder subtrahiert werden, ob ein Wert hinzuaddiert wird oder nicht. Die gewählte Verknüpfungsoperation wird von dem Verhältnis der Eigenschaften der Teilergebnisse zueinander ausgewählt.
-
Die dargelegte Funktion kann auf einfache Weise als kombinatorische Schaltung realisiert werden, bspw. indem man eine VHDL-Beschreibung erstellt und diese synthetisiert.
-
Der Einsatz einer Einwegfunktion bei der Erzeugung einer zufälligen Ausgangsbitfolge wird nachfolgend anhand der 2 bis 7 erläutert.
-
Wie in 2 dargestellt ist, erfolgt in einem ersten Schritt 10 die Erzeugung von jeweils 4 Ausgangsbits s0, s1, s2, s3 auf der Basis von 64 Eingabe-Bits, die als Seed bezeichnet werden. Diese Seed wird vorgegeben und kann beispielsweise die Ausgabe einer TRNG-Quelle sein. Nachdem die 4 Ausgangsbits berechnet wurden, wird diese Seed durch einen eingebauten Inkrementer um 1 erhöht und diese inkrementierte Seed zur Erzeugung der nächsten vier Ausgangsbits benutzt. Dieses Vorgehen wird solange fortgesetzt, bis eine neue Seed vorgegeben wird. Von den 64 Bit Eingabe werden zunächst in dem ersten Schritt die ersten 4 Bits ausgewählt und unmittelbar auf Zustandsautomatenanordnung 12 mit sechzehn Zustandsautomaten 14 angewendet.
-
Die Funktion der Zustandsautomatenanordnung ist in den 3, 4 und 5 erläutert.
-
3 zeigt einen Aufbau einer Einrichtung zur Durchführung des Verfahrens, die insgesamt mit der Bezugsziffer 50 bezeichnet ist. Die Darstellung zeigt als Eingabe einen Eingabevektor 52, der in Blocks von 4 Bits unterteilt ist, einen ersten Anfangszustand 54, der interne Zähler der Anordnung zurücksetzt, die für die Auswahl der Ausgangsbits 58 im Zusammenhang mit den Werten des Eingabevektors 52 wirksam werden. Weiterhin zeigt die Darstellung eine Einwegfunktion 60, eine Anordnung 62 an Zustandsautomaten (COSSMA), auf die ein zweiter Anfangszustand 64 wirkt, der entweder vor jeder neuen Verarbeitung eines Eingangsvektors 52 wirksam ist oder auch erst nach einer vorgegebenen Anzahl von Einmgangsvektoren 52 den Anfangszustand der in der Anordnung 62 vorliegenden Zustandsautomaten bestimmt. Somit ergibt sich nach zweimaliger Eingabeverarbeitung ein Wert am Ausgang 66 der Anordnung 62.
-
4 verdeutlicht eine Anordnung von Zustandsautomaten, die insgesamt mit der Bezugsziffer 100 bezeichnet ist und die auch als kompletter Satz an Zustandsautomaten bezeichnet wird (COSSMA: COmplete Set of State MAchines). Somit zeigt 3 einen vollständigen Satz von Zustandsautomaten entsprechend der Anordnung 12 in 2.
-
Diese Anordnung 100 hat eine 4 Bit Eingabe s0', s1', s2', s3' und eine 64 Bit Ausgabe 102. Die Bits der Ausgabe 102 werden durch Flipflops von Zustandsautomaten 104 getrieben.
-
5 zeigt einen 4 Bit-Zustandsautomaten, der mit der Bezugsziffer 150 bezeichnet ist und als ein 4-Bit-NLMISR (non linear multiple input signature register) ausgeführt ist.
-
Anstelle des NLMISR aus 5 kann auch ein beliebiger Zustandsautomat benutzt werden, wenn für eine beliebige vorgegebene Eingangsfolge der Folgezustand und der Vorgängerzustand jeweils eindeutig bestimmt sind.
-
Die Übergangsfunktion der Schaltung aus
5 ist in der nachfolgenden Tabelle angegeben.
-
Die Eingangsbits aller 16 NLMISR sind jeweils gleich. Ihr Anfangszustand ist jedoch unterschiedlich. Damit hat nach vorstehender Voraussetzung jeder NLMISR zu jedem Zeitpunkt einen anderen Zustand als jeder andere NLMISR.
-
In 6 sind Zustandsübergänge der verwendeten Zustandsautomaten dargestellt, wenn s0' = s1' = s3' = 0 ist. Ein durchgezogener Pfeil zeigt einen Übergang für s2' = 0, wobei in diesem Fall auch ein direkter Übergang diagonal nach rechts unten über die jeweiligen Zwischenzustände für jeweils einen Takt möglich ist, wie durch den Pfeil 170 rechts angedeutet ist. Ein gestrichelter Pfeil steht für s2' = 1.
-
7 zeigt eine DRBG-Ausgangsstufe, die insgesamt mit der Bezugsziffer 200 versehen ist. Die Darstellung zeigt eine Reihe von Zustandsautomaten 202, die mit Multiplexern 204 verbunden sind. Die Ausgangsstufe 200 liefert eine zwischenzeitliche Ausgabe, die für ein feedback und eine abschließende Ausgabe verwendet wird.
-
Die Erfindung wird nachfolgend anhand der Figuren erläutert:
Als Anfangszustand der Zustandsautomatenanordnung 12, 62, 100 kann die Verteilung 0, 1, 2, 3, ... 15 gewählt werden. Es ist wichtig, dass jeder gleich aufgebaute Zustandsautomat 14 einen unterschiedlichen Anfangszustand hat. Dieser Anfangszustand muss nicht geheim sein, er kann jedoch für spezielle Anwendungen auch als geheimer Zustand behandelt werden. Dann ist eine Funktion verfügbar, die mit den sogenannten "keyed Hash-Functions" vergleichbar wäre, die weitere verbesserte krytopgraphische Eigenschaften aufweisen.
-
Entsprechend dem verwendeten Eingangsnibble s0, s1, s2, s3, für den ersten Schritt 10 identisch mit s0', s1', s2', s3', und der Schritt-Nummer i = 0 werden gemäß 2 die 4 internen Zähler z0 ... z3 bestimmt, die eine Auswahl von 4 Bits aus den Zustandsautomaten 202 aus der Zustandsautomatenanordnung 100 gemäß 4 bestimmen. Die Zustandsautomatenanordnung 100 wurde dabei durch das erste Eingabe-Nibble bereits modifiziert gemäß 4 und 5. Diese 4 Bits stellen die "Intermediate Output Feedback"-Werte, die zwischenzeitlichen Ausgabe-Rückkopplungs-Werte, dar, die in 1 mit Bezugsziffer 16 verdeutlicht sind. Mit diesen Werten wird nach dem ersten Eingabe-Schritt in einem zweiten Schritt 20 das gleiche Eingabe-Nibble modifiziert durch die Einwegfunktion, die in 1 beschrieben ist. Diese Modifikation wird in Tabelle 1 erklärt.
-
Mit dem ersten Input-Nibble s0, s1, s2, s3 als ersten Operand und der zwischenzeitlichen Ausgabe o0', o1', o2', o3', die aus einer Ausgabestufe 22, die eine Auswahl von 4 Bits trifft, als zweitem Operand erhält man für die Einwegfunktion die Ausgabe: Ergebnis = s0', s1', s2', s3', das sich von s0, s1, s2, s3 durch eine Permutation gemäß Tabelle 1 unterscheidet. Diese Ausgabe wird auf die Zustandsautomatanordnung 12 angewendet. Auf diese Weise werden alle 64 Eingabe-Bits nacheinander als Nibbel jeweils zweimal verwendet und zwar ohne und mit Einwegfunktion.
-
Nach jeweils einer bestimmten Anzahl, bspw. 5 Eingabe-Schritten wird ein Parity-Schritt eingefügt. Die Eingaben si' der vorangegangenen fünf Eingabe-Schritte werden dazu benutzt, je ein serielles Parity zu erzeugen, das im folgenden Schritt eingefügt wird. Im Ausführungsbeispiel wird aus dem LSB s0" ein gerades Parity generiert und für alle anderen Bits je ein ungerades Parity. Das Parity sollte für eine ungerade Anzahl von Eingabe-Bits ein ungerades Parity und für die restlichen Eingaben ein gerades Parity sein. Dies wird durch den unterschiedlichen Anfangszustand der Flip-Flops. Durch Anwendung der Parities auf die Anordnung 12, 62, 100 wird gewährleistet, dass sich das Umschaltsignal für die Polynome y (nach 5) für diese sechs Schritte wenigstens einmal unterscheidet.
-
Das Umschaltsignal wird bspw. in der Druckschrift
DE 10 2009 000 322 A1 näher erläutert. Dies bewirkt eine Nichtlinearität, da in Abhängigkeit der Eingangssignale ein unterschiedliches Polynom des NLMISR gewählt wird.
-
Auf das Einfügen eines Parities kann auch verzichtet werden, wenn die Einwegfunktion über Eigenschaften verfügt, die ein Umschalten des Polynoms für belibige Eingangsfolgen wahrscheinlich macht.
-
Nachdem alle Eingaben verarbeitet wurden, werden die zwischenzeitlichen Ausgaben für drei weitere Schritte direkt als Eingaben für die Anordnung 12 verwendet, um abschließend noch mit einem Parity den Verarbeitungszyklus eines 64 Bit-Vektors abzuschließen. Auch auf diese zusätzlichen Schritte kann man ggf. verzichten.
-
Die Seed wird nach der Erzeugung eines 4 Bit Ausgangswertes o0, o1, o2, o3, nach der Verarbeitung aller 64 Eingabe-Bits, jeweils inkrementiert und mit dieser modifizierten Seed werden nach gleichem Verfahren weitere 4 Bits generiert. Nach der Generierung von bspw. jeweils insgesamt 128 Ausgabe-Bits wird der Zustand der Anordnung 12, 62, 100 auf den Anfangszustand 64 zurückgesetzt. Der Anfangszustand 54 für die Auswahlzähler z0 bis z3, die für die Ansteuerung der Multiplexer 204 in 7 verwendet werden, wird demgegenüber zweckmäßigerweise nach jeder Verarbeitung eines Eingangsvektors 52 eingenommen Anstelle des Inkrementierens kann man die Seed auch dekrementieren, nach einer Codetabelle weiterzählen, verschieben, rotieren oder anderweitig modifizieren.
-
Der Zustand der Anordnung 12, 62, 100 ist durch unterschiedliche Methoden prüfbar. Das ist deshalb möglich, weil in der Anordnung 12, 62, 100 jeder Zustandsautomat zu jedem Zeitpunkt einen anderen Zustand hat. Außerdem kann das Verfahren einer Prüfung unterzogen werden. Die unterschiedlichen Zustände sind dadurch gewährleistet, dass zu Beginn alle Zustandsautomaten auf unterschiedliche Startwerte initialisiert werden. Durch die gleichartige Einwirkung der Eingaben mit eindeutigem Nachfolger und Vorgänger kann kein gleicher Zustand in zwei Zustandsautomaten erreicht werden.
-
Wenn durch eine Attacke oder durch einen transienten Fehler, z. B. durch eine kosmische Strahlung verursachter Soft-Error, die erwähnte Bedingung nicht mehr zutrifft, dann wird dieser Fehler festgestellt und es können geeignete Maßnahmen ergriffen werden, z. B. ein Rücksetzen.
-
Bei dem vorstehend beschriebenen Verfahren können auch beliebige andere Einwegfunktionen anstelle der beschriebenen Multiplikation verwendet werden. Solche Einwegfunktionen sind beispielsweise die diskrete Exponentialfunktion, die Rabin-Funktion (x2 mod N) oder eine Hash-Funktion.
-
Weiterhin kann man auf das Einfügen von Parities verzichten und auch die drei zusätzlichen Schritte mit einer direkten Anwendung der zwischenzeitlichen Ausgaben auf der Anordnung 12, 62, 100 weglassen. Das kann für Anwendungen mit geringeren Anforderungen zweckmäßig sein; die Nichtlinearität der Einwegfunktion reicht ggf. schon aus, um die entsprechenden Anforderungen zu erfüllen. Auch ist es möglich, die zweimalige Verarbeitung eines jeden Eingangsnibbles zu vermeiden und nur die mittels Einwegfunktion generierten Signale der Anordnung 12, 62, 100 zuzuführen.
-
Die beschriebene Schaltungsanordnung dient zur Erzeugung einer Einwegfunktion aus zwei Operanden, die jeweils mehrere Bits mit Hilfe einer Multiplikationsoperation umfassen. Es wird das Operationsergebnis in mindestens zwei Teile geteilt und in Abhängigkeit des Verhältnisses bzw. der Relation der Eigenschaften dieser Teile zueinander werden diese Teile mit einer jeweils anderen Funktion verknüpft, so dass für den Fall, dass ein Operand Null ist, eine Funktion von den anderen Operanden erzeugt wird, und für den Fall, dass beide Operanden Null sind, ein vorgegebener Wert ausgegeben wird.
-
Die Einwegfunktion kann in einer Tabelle abgelegt werden, die wiederum in einer Speicheranordnung abgelegt ist. Je nach Operandenwert kann die zugeordnete Speicherzelle gelesen und ausgegeben werden.
-
Alternativ kann die Einwegfunktion durch eine Schaltung mit Verknüpfungselementen realisiert werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 20100125728 A1 [0003]
- DE 102009000322 A1 [0059]
-
Zitierte Nicht-Patentliteratur
-
- BSI AIS 31 vom 25. September 2001 [0008]
- National Institute of Standards and Technology (NIST) gibt es Empfehlungen für ein DRBG in einem Special Paper NIST SP 800-90 von März 2007 [0009]