PatentDe  


Dokumentenidentifikation DE102004006570B4 21.06.2007
Titel Einmalschlüsselgenerierungsverfahren auf fraktaler Berechnungsbasis für Blockverschlüsselungsalgorithmen
Anmelder Golawski, Herbert,, Dipl.-Ing., 53902 Bad Münstereifel, DE
Erfinder Golawski, Herbert,, Dipl.-Ing., 53902 Bad Münstereifel, DE
DE-Anmeldedatum 11.02.2004
DE-Aktenzeichen 102004006570
Offenlegungstag 29.09.2005
Veröffentlichungstag der Patenterteilung 21.06.2007
Veröffentlichungstag im Patentblatt 21.06.2007
IPC-Hauptklasse H04L 9/08(2006.01)A, F, I, 20051017, B, H, DE

Beschreibung[de]
Bereich der Erfindung

Die Erfindung gehört in den Bereich der Verschlüsselungs- und Entschlüsselungsverfahren, im erweiterten Zusammenhang in den Bereich der Einmalschlüsselverfahren.

Hintergrund zur Erfindung

Verschlüsselungsverfahren werden zum Schutz von Informationen vor dem Zugriff unbefugter Dritter eingesetzt. Dabei ist der gesicherten Übermittlung von Informationen die gleiche Bedeutung beizumessen, wie der Speicherung von Informationen auf Massendatenträgern in Archivsystemen der digitalen Informationstechnik. Ziel von Verschlüsselungsverfahren ist es, die Klartextinformationen und insbesondere auch den benutzten Schlüssel geheim zu halfen.

In Blockverschlüsselungsverfahren werden Klartextinformationen in kleine Informationseinheiten in sogenannte Datenblöcke aufgespalten und blockweise ver- bzw. entschlüsselt. Symmetrische Verschlüsselungsverfahren setzen voraus, daß der verwendete Schlüssel bei Sender und Empfänger bekannt ist. Dieser Schlüssel muß mindestens einmal zwischen Sender und Empfänger ausgetauscht werden und wird üblicherweise in unregelmäßigen Zeiträumen gewechselt.

Die Klartextdatenblöcke werden mit einem Schlüssel in einer festgelegten Anzahl von Runden verschlüsselt und damit in einen Geheimtext umgewandelt. Der Geheimtext sollte nach der Verschlüsselung keinerlei statistische Abhängigkeit vom Klartext aufweisen. [3]

Diese Forderung läßt sich annähernd mit den modernen Blockverschlüsselungsverfahren erfüllen. Dazu verwendet beispielsweise der bekannte Blockverschlüsselungsalgorithmus AES-Rijndael [1, 2] einfache Datenmanipulationen, wie die Verknüpfung eines Datenblockes mit dem Schlüssel, das Verschieben von Zeichen innerhalb der Blockstruktur, das Vertauschen von Zeichen innerhalb der Blockstruktur und das Ersetzen einzelner Zeichen über sogenannte „S-Boxen" in einer festgelegten Zuordnung. Die Manipulationen werden in der Regel über mehrere Runden hinweg mit einem aus dem festen Basisschlüssel abgeleiteten Rundenschlüssel wiederholt durchgeführt. ()

Moderne Angriffsmethoden erlauben es in vielfältiger Weise den benutzten Basisschlüssel auszuspionieren. Werden bei der Verschlüsselung nur symmetrische Verfahren genutzt, und wird der benutzte Basisschlüssel nicht regelmäßig ausgewechselt, so kann ein Angreifer alle bis dahin aufgezeichneten Geheimtextdaten entschlüsseln und die Klartextinformationen auswerten.

In Erweiterung dazu verwenden Einmalschlüsselverfahren in Verbindung mit Blockverschlüsselungsalgorithmen im Idealfall für jeden zu verschlüsselnden Datenblock einen eigenen Basisschlüssel. Die Abfolge der Basisschlüssel wird dabei außer zur Entschlüsselung niemals wiederverwendet.

Das im Folgenden beschriebene, neue Einmalschlüsselgenerierungsverfahren ist eignet sich zum Einsatz in Verbindung mit allen bekannten Blockverschlüsselungsalgorithmen. Das Einmalschlüsselgenerierungsverfahren arbeitet funktionell unabhängig vom eingesetzten Blockverschlüsselungsalgorithmus, d.h. die Kernfunktionalität des verwendeten Blockverschlüsselungsalgorithmus wird durch das Einmalschlüsselgenerierungsverfahren an keiner Stelle verändert.

Beschreibung zur Erfindung

Das zu schützende Einmalschlüsselgenerierungsverfahren erzeugt eine fortlaufende Folge von Basisschlüsseln für das eingesetzte symmetrische Blockverschlüsselungsverfahren. Für jeden Klartextdatenblock einer Verschlüsselungssitzung wird mit dem Verfahren ein unabhängiger Basisschlüssel erzeugt, an den benutzten Blockverschlüsselungsalgorithmus übergeben und mit diesem verschlüsselt. Die Schlüsselsequenz ist für jede Sitzung einmalig und hängt allein von den Initialisierungsparametern des Einmalschlüsselgenerierungsverfahrens ab. Das neue Einmalschlüsselgenerierungsverfahren ist kein neuer Verschlüsselungsalgorithmus, sondern stellt lediglich eine Erweiterung für existierende symmetrische Blockverschlüsselungsalgorithmen dar. [7], ()

Das Einmalschlüsselgenerierungsverfahren ist für symmetrische Blockverschlüsselungsalgorithmen geeignet und kann auf vielen handelsüblichen Mikroprozessoren oder Mikrokontrollern in Verbindung mit einem symmetrischen Blockverschlüsselungsalgorithmus implementiert werden.

Das Einmalschlüsselgenerierungsverfahren basiert auf fraktalen Berechnungen, einem Pseudozufallszahlengenerator und einer Liste von Auswahlfunktionen, im Folgenden auch Selektionsfunktionen genannt.

Für jede neue Verschlüsselungssitzung wird ein eigenes, fraktal berechnetes Bytefeld erzeugt und der Pseudozufallszahlengenerator erneut initialisiert. Für jeden zu verschlüsselnden Datenblock wird ein neuer Basisschlüssel mit Hilfe der Selektionsfunktionen bestimmt. Die Initialisierung erfolgt im Sender und Empfänger gleichartig während der Sitzungseröffnung und ist vergleichbar mit dem Aushandeln eines Sitzungsschlüssels.

Durch die Nutzung von fraktalen Rechenmethoden verfügt das Einmalschlüsselverfahren über einen sehr großen Schlüsselraum, sodaß eine Basisschlüsselfolge außer zur Entschlüsselung niemals wiederverwendet werden muß und auch sehr große Datenmengen verschlüsselt werden können, ohne daß sich die berechnete Einmalschlüsselsequenz wiederholt. Ein Angreifer hingegen muß die gesamte Basisschlüsselfolge einer Sitzung ermitteln, um den gesamten Geheimtext entschlüsseln zu können. Die Kenntnis eines einzelnen Basisschlüssels aus der Basisschlüsselfolge erlaubt die Entschlüsselung jeweils nur eines Datenblockes, der mitprotokollierten Geheimtextinformation. Durch die einmalige Abfolge von Basisschlüsseln, kombiniert mit einem sicheren Verschlüsselungsalgorithmus, schützt das Verfahren vor Angriffsmethoden der Kryptanalyse basierend auf einer Mindestmenge von Geheimtextdaten, die mit einem gleichbleibenden Schlüssel bearbeitet wurden.

Um vollen Zugriff auf den Klartext zu bekommen, werden bei dem Einmalschlüsselverfahren sowohl initiale Schlüsselinformationen als auch Informationen zum Verfahren der Schlüsselerzeugung benötigt. Beide Informationen können im neuen Einmalschlüsselgenerierungsverfahren unabhängig voneinander verwaltet werden. Dadurch erhöht sich die Sicherheit des Gesamtsystems. Ein einzelner Nutzer des Systems allein verfügt nicht über die vollständige Information, um den Geheimtext mit einem baugleichen, jedoch nicht gleichartig initialisierten und gewarteten System zu entschlüsseln.

Alle Eigenschaften stellen sicher, daß über diesen Mechanismus eine sehr langperiodische Abfolge von Basisschlüsseln eine Einmalschlüsselsequenz erzeugt wird, bei der einzelne Basisschlüssel auch mehrfach in unregelmäßigen Intervallen auftreten können. Extrem lange Basisschlüsselsequenzen, bei denen sich keinesfalls die Abfolge der Basisschlüsselfolge wiederholen darf, können durch Neuberechnung des fraktalen Feldes bereitgestellt werden.

An die Stelle des festen Sitzungsschlüssels (Basisschlüssel) tritt aus der Sicht des Benutzers die Kenntnis der Initialwerte für das Einmalschlüsselgenerierungsverfahren. Dazu gehören Startpunkte und Sprungwerte bei der fraktalen Berechnung des Bytefeldes, der Startwert für den Zufallszahlengenerator, Daten zur Maskierung des aktuellen Zufallzahlenwertes sowie die Kenntnis aller Selektionsfunktionen. Diese Informationen entsprechen funktionell dem Basisschlüssel beim nicht erweiterten Blockverschlüsselungsverfahren und sind genau wie der feste Sitzungsschlüssel (Basisschlüssel) streng geheim zu halten. Die Initialwerte müssen sowohl im Quellsystem bei der Verschlüsselung als auch im Zielsystem vor dem Beginn der Entschlüsselung vorliegen, damit sowohl Sender als auch Empfänger die selbe, eindeutige Einmalschlüsselsequenz erzeugen.

Das Nachbilden der Einmalschlüsselsequenz darf nur unter Kenntnis aller Initialwerte und Berechnungsverfahren und niemals aufgrund statistischer Analysen der Geheimtextdaten aus einer Verschlüsselungssitzung möglich sein.

Jeder erzeugte Basisschlüssel aus der Einmalschlüsselsequenz wird mit der Schlüsselerweiterungsfunktion des eingesetzten Blockverschlüsselungsalgorithmus auf die notwendige Anzahl von Rundenschlüsseln erweitert.

Der gesamte, sicherheitsrelevante Schlüssel besteht aus den Start- und Sprungwerten zur Berechnung des Fraktalen Feldes, den Startwerten des Zufallszahlengenerators, der Kenntnis von Anzahl und Inhalt der Selektionsfunktionen sowie weiterer festgeschriebener, jedoch ebenfalls in Wartungsintervallen änderbarer Maskierungen. Die Vielzahl von Abhängigkeiten und Parametrisierungen erlaubt es, bei teilweise gleichbleibenden Parametrisierungen spezielle Zielsysteme oder eine Gruppe von Zielsystemen sicherheitstechnisch voneinander durch kleine Änderungen in den Maskierungen abzugrenzen.

Die Sicherheit des Einmalschlüsselverfahrens kann durch Verteilung der Kenntnis von Schlüsselanteilen auf verschiedene Verantwortlichkeiten in voneinander unabhängige Verantwortungsbereiche erhöht werden. Dies betrifft insbesondere die Trennung von der Verantwortung für die Erzeugung von Initialwerten (Sitzungsspezifische Schlüsselinformationen) von der Verantwortung für die eingesetzte Schar der Selektionsfunktionen (Wartbarer Anteil der Schlüsselinformationen).

Abgrenzung zum Stand der Technik bei Einmalschlüsselverfahren

Wie in der Patentschrift DE 101 29 285 C2 sehr allgemeingültig beschrieben, ist das Ziel eines Einmalschlüsselverfahrens die Erweiterung der Einsetzbarkeit und Erhöhung der Sicherheit eines Verschlüsselungssystems durch die Nutzung einer Schlüsselsequenz anstelle eines festen Schlüssels.

Im darin beschriebenen Verfahren werden ebenfalls pseudozufällige Schlüssel (S0 ... Si) und Teilschlüssel (TS0 ... TSi), sowie eine beliebige Anzahl von Schlüsselberechnungsfunktionen SFi+1 (S0, ..., Si, D0, ..., Di, TS1, ... TSi+1) beschrieben. Neben einer beliebigen Anzahl von Schlüsselberechnungsfunktionen läßt das Verfahren weiterhin auch eine beliebige Anzahl von Verschlüsselungsalgorithmen (VAi (S0, ..., Si, D0, ..., Di, TS1, ... TSi+1)) zu.

Entsprechend der Beschreibung in der Patentschrift DE 101 29 285 C2 unter Punkt [0002] werden am Beginn einer Sitzung Initialdaten benötigt, um den Einmalschlüsselgenerator vorzubereiten. Hierzu können mit den bekannten Verfahren wie Diffie-Hellmann oder RSA initiale Daten zwischen Sender und Empfänger ausgetauscht werden. In der Regel wird dabei der Sitzungsschlüssel ausgetauscht.

Diese Verfahren kommen auch für das neue Einmalschlüsselgenerierungsverfahren zur Übermittlung der Initialdaten zwischen Sender und Empfänger in Frage. Mit den Initialdaten werden dabei Start- und Sprungwerte bei der Berechnung des Fraktalen Feldes sowie die Startwerte für den Pseudozufallszahlengenerator festgelegt. Die Initialdaten beinhalten zusätzlich Informationen zur vorgesehenen Basisschlüssel- und Datenblocklänge für das eingesetzte Blockverschlüsselungsverfahren.

Abweichend von dem im Patent DE 101 29 285 C2 beschriebenen Eigenschaften lassen sich nachfolgende Neuerungen und wichtige funktionale Abweichungen beim vorgestellten Einmalschlüsselgenerierungsverfahren feststellen:

  • – Das neue Verfahren ermöglichst eine inhaltlich und zeitlich unabhängige Berechnung der Basisschlüsselfolge. Die Berechnung des Schlüssels kann parallel zur Ver- bzw. Entschlüsselung erfolgen, da es in allen Anteilen unabhängig vom Blockverschlüsselungsalgorithmus lauffähig und unabhängig von Ergebnisdaten der letzten Verschlüsselung ist. Damit eignet sich das Verfahren in besonderer Weise auch zur Implementation auf Multiprozessor- oder Multicore-Systemen. In Abweichung dazu wird im Patent DE 101 29 285 C2 unter Patentanspruch 1.ii bzw. unter [0008] eine Abhängigkeit der Schlüsselberechnung von allen Schlüsseln (S0 – Si), allen Teilschlüsseln (TS1 – TSi+1) und von allen Daten (D0 – Di) beschrieben.
  • – In neuen Einmalschlüsselgenerierungsverfahren werden an zentraler Stelle fraktale Berechnungsmethoden eingesetzt, um sichere Schlüssel und einmalige Schlüsselfolgen zu gewährleisten. (neu)
  • – Die auch zu Laufzeit gewährleistete Austauschbarkeit von Schlüsselteilen (Selektionsfunktionen) ist ein wesentlicher Bestandteil des Einmalschlüsselgenerierungsverfahrens und läßt sich auch auf modernen Mikrokontrollerarchitekturen umsetzten. Hierdurch wird eine vom Nutzer unabhängige Wartbarkeit des Gesamtschlüssels ermöglicht. (neu)
  • – Es werden geringere Datenmengen zwischen dem verschlüsselnden und dem empfangenden System übermittelt, da die Basisschlüssel der Einmalschlüsselsequenz im vorliegenden Einmalschlüsselgenerierungsverfahren nicht zusammen mit den Daten übertragen werden müssen, sondern in Sender und Empfänger gleichermaßen mit Hilfe der Initialdaten berechnet werden. Das Verfahren nach DE 101 29 285 C2 übermittelt zusammen mit jedem verschlüsselten Datensatz auch den verschlüsselten Teilschlüssel.
  • – Im neuen Einmalschlüsselgenerierungsverfahren ist es im Gegensatz zum Verfahren aus DE 101 29 285 C2 (Teile [0008] und [0030]) nicht notwendig, weder die gesamte Menge noch die korrekte Reihenfolge der übermittelten, verschlüsselten Daten zu kennen, um den Datenstrom zu entschlüsseln. Fehlende Datenblöcke unterbrechen nicht die Entschlüsselung der nachfolgenden Datenblöcke.
  • – Die Variablentypisierung bei der Berechnung des fraktalen Feldes, die Art und Funktion des Pseudozufallszahlengenerators, die Anzahl und Komplexität der Selektionsfunktionen und die Größe des Fraktalen Feldes steuern die Sicherheit des neuen Einmalschlüsselgenerierungsverfahrens. (neu)
  • – Das neue Einmalschlüsselgenerierungsverfahrens ist vollständig unabhängig vom eingesetzten Blockverschlüsselungsverfahren und verändert oder beeinträchtigt dieses nicht.
  • – Das neue Einmalschlüsselgenerierungsverfahrens kann auch dann eingesetzt werden, wenn nur ein Datenblock zu verschlüsseln ist. (siehe DE 101 29 285 C2, [0001])

Ausführliche Beschreibung der Abbildungen

: Übersicht zum Blockverschlüsselungsverfahren AES-Rijndael. Neben der Schlüsselerweiterungsfunktion für die benötigten 11–15 Rundenschlüssel sind die Kernroutinen des Rijndael-Verschlüsselungsalgorithmus dargestellt.

: Einbettung des Einmalschlüsselgenerierungsverfahrens in ein Blockverschlüsselungsverfahren

: Details zum Einmalschlüsselgeneriergsverfahren: Initialisierung von Pseudozufallszahlengenerator und Berechnung des fraktalebn Feldes, Aufbau und Struktur des fraktalen Feldes, der Schar von Selektionsfunktionen und dem Pseudozufallszahlengenerator

: Dynamik der Berechnung von Punktfolgen in der komplexen Zahlenebene am Beispiel der Abbildung z2 = z1^2 mit z = x + i*y und i^2 = –1

Detaillierte Beschreibung zum Patentanspruch a) Initialisierung des Einmalschlüsselgenerierungsverfahrens Initialisierung

Die Initialdaten beinhalten für das Einmalschlüsselgenerierungsverfahren die Daten für die Startpunkte und Sprungwerte zur Berechnung des fraktalen Feldes in der komplexen Zahlenebene, sowie die Startwerte für den Zufallszahlengenerator. Diese Daten entsprechen im Wesentlichen einem Sitzungsschlüssel und werden für jede Sitzung zwischen Sender und Empfänger erneut ausgetauscht.

Ein unabhängiger Pseudozufallszahlengenerator wird initialisiert und im Folgenden parallel zu jedem neuen Klartextdatenblock inkrementiert. Mit dem aktuellen Wert des Pseudozufallszahlengenerators wird eine Selektionsfunktion bestimmt. Sie dient dazu, Bytefolgen aus dem fraktal berechneten Bytefeld zu entnehmen und zu einem Basisschlüssel für den Blockverschlüsselungsalgorithmus zusammenzustellen. ()

Die Initialisierungsdaten können beispielsweise mit einem eigenen, unabhängigen Intrinsischen Schlüssel im Sender verschlüsselt und als Sitzungsschlüssel an den Empfänger übermittelt werden. Dabei authentifizieren sich Sender und Empfänger über die Kenntnis des Intrinsischen Schlüssel automatisch. Mit den Initialdaten wird im Empfänger das fraktale Feld berechnet und der Pseudozufallszahlengenerator auf den Startwert eingestellt. Anschließend kann die blockweise Verschlüsselung der Klartextdaten auf dem Sender, der anschließende Transfer der Geheimtextdaten zum Empfänger und die blockweise Entschlüsselung der Geheimtextimformationsblöcke auf dem Empfänger beginnen.

Über die Intialisierungsdaten können zusätzlich Konsistenzinformationen zur Kontrolle der Übertragungsqualität der Übertragungsstrecke transportiert werden.

Da die Initialdaten aus zufälligen Zahlen/Bytefolgen bestehen, würde bei einem „Brute Force" Angriff auf die Initialdaten durch Ausprobieren aller möglichen Schlüssel eine automatisierte Prüfung auf sinnvolle Prüfmuster und somit auf ein korrektes Ergebnis der Entschlüsselung fehlschlagen. Ein Angriff auf den Intrinsischen Schlüssel durch Ausprobieren aller möglichen Schlüssel (Brute Force) erscheint damit unmöglich.

b) Berechnung des fraktalen Feldes

Das fraktale Feld basiert auf speziellen, in der Sitzungseröffnung festgelegten Startwerten und der eingesetzten fraktalen Berechnungsmethode (z.B. zur Berechnung von Mandelbrot und Juiliamengen) und bleibt als Basis für die Berechnung der Basisschlüsselfolge während der Sitzung erhalten. Die fraktale Berechnungsbasis wurde für das Einmalschlüsselgenerierungsverfahren gewählt, um sicherzustellen, daß keine schwachen Basisschlüssel möglich sind.

Fraktale Berechnungen in der komplexen Ebene besitzen die Eigenschaft aufeinanderfolgende, sprunghafte Punktfolgen abzubilden, die sich über die gesamte komplexe Ebene erstrecken können und parameterabhängige Konvergenz- bzw. Divergenzeigenschaften besitzen. Außer einzelnen Attraktionspunkten wird kein Punkt in sich selbst überführt. Aufeinanderfolgende Punkte einer Berechnung sind demnach einmalig. [6], ()

Diese Eigenschaften macht sich das Einmalschlüsselgenerierungsverfahren zunutze. Ausgehend vom Startwert werden Punktfolgen mit Hilfe von iterierten Funktionensystemen vom Grad n >= 2 (z.B. Mandelbrot oder Julia-Mengen) bestimmt und derart manipuliert, daß statistische Abhägigkeiten in den Punktfolgen weitgehend ausgeschlossen werden. Anschliessend werden die sich aus dieser Berechung ergebenden Daten punktweise als Datenbasis in ein Speicherfeld übernommen. Diese Punkte entsprechen digitalen Zahlendarstellungen mit mindestens 4 Byte Datenlänge pro Punkt, wobei die Anzahl der Bytes pro Punkt mit der Deklaration der benutzten Variablen im Programmcode festgelegt wird und Einfluß auf die Sicherheit der angestrebten Einmalschlüsselfolge hat.

Unter anderem eignen sich hierbei fraktale Berechnungsmethoden für Mandelbrot- und Juliamengen. Fraktale Funktionen sind einerseits stetig, andererseits jedoch nirgends differenzierbar [6]. Abhängig von festen Startpunkten in der komplexen Gausschen Ebene werden weitere Folgepunkte in der komplexen Ebene mit unterschiedlicher Dynamik sowie Konvergenz- bzw. Divergenzeigenschaften errechnet. Bekannte grafische Darstellungen Mandelbrot und Juliamengen geben die Dynamik der Divergenz- bzw. Konvergenzeigenschaften bei der Berechnung von Punktefolgen in der komplexen Zahlenebene anschaulich wieder. Die größte Dynamik findet sich dabei in den Randbereichen der Mandelbrot- und Juliamengen. Die berechneten Punkte in der komplexen Ebene sind eindeutig reproduzierbare Folgen von Wertepaaren. Die Startwerte für die Berechnung sollten wegen der besonderen Dynamik der Punktefolgen möglichst in den Bereichen der größten Dynamik (z.B. in den Randbereichen der Mandelbrot- bzw. Juliamengen) liegen. [6]

Aus der fraktalen Berechnung werden mindestens 4-Byte lange Gleitkommazahlen als Wertepaare erhalten und in einem mindestens 1024-Byte großen Datenfeld abgelegt. Für den Fall einer 4-Byte Variablentiefe und einen 1024 Byte großen Datenfeld sind 128 Wertepaare in der komplexen Ebene zu berechnen. Dies erfolgt mit einer Mischung von Berechnungen zu Mandelbrot- und Juliamengen. Nach jeweils 4 Punkten wird der Startwert für die Berechnung der nächsten 4 Punkte um den Sprungwert aus der Initialsierung verändert. Dieses Verfahren schützt unter anderem auch vor dem Überlauf von Variablen und verringert die Möglichkeit von statistischen Abhängigkeiten in den berechneten Basisschlüsseln.

Wegen der Selbstähnlichkeit der Abbildungen in der komplexen Ebene werden die absoluten Werte der berechneten Punkte nach der Berechnung miteinander verknüpft. Dies erfolgt mit dem Hintergrund, die Punktfolgen für das fraktale Feld weiter zu durchmischen und damit eine erweiterte Unabhängigkeit von den eingesetzten fraktalen Rechenvorschriften zu erreichen.

Für die Erzeugung des fraktalen Feldes können beliebige komplexwertige Funktionen vom Grad >= 2 eingesetzt werden. Unter anderem eignen sich die Berechnungsverfahren zu Mandelbrot- und Julia-Mengen, die im Folgenden Beispielhaft das Verfahren verdeutlichen sollen:

  • Mandelbrot-Menge: z1 = z0^2 + c mit x0 = y0 = 0 und Variation von c
  • Julia-Menge: z1 = z0^2 + c mit c = konstant und Variation von z

Dabei gilt für die komplexen Rechenvorschriften z = x + iy mit x = Realteil und y = Imaginärteil eines Punktes in der komplexen Gausschen Zahlenebene. Ein Punkt entspricht einem Wertepaar bei der Berechnung des Fraktalen Feldes. Besonders günstige dynamische Eigenschaften ergeben sich beispielsweise durch die Wahl der Startwerte für die Berechnung im Randbereich der Mandelbrot- oder Juliamengen. [6]

Durch Variation der Konstanten c (Mandelbrot) oder durch Variation des Startpunktes z0 (x0 + iy0) (Julia) über einen vorgegebenen Bereich der Gauschen Komplexen Ebene, können Punktefolgen als Basis für die Berechnung des fraktalen Feldes gewonnen werden. Es gibt zu jeder Konstanten c eine eigene Juliamenge und damit unendlich viele Punkte. Die große Menge an möglichen Punktefolgen, sowie die sprunghafte Abfolge der aufeinanderfolgenden, berechneten Punkte ist der Grund für die Auswahl eines fraktal berechneten Feldes als Basis für das Einmalschüsselgenerierungsverfahren.

Insbesondere Divergenz-, Konvergenz- und Zufallseigenschaften (Bifurkationen) erhöhen die Eignung fraktaler Berechnungen für die Erzeugung von Zahlenfolgen für das fraktale Feld.

Die Kombination von Mandelbrot und Julia-Mengen bedeutet im Berechnungsbeispiel, daß sowohl die Konstante c als auch die Werte für x0 und y0 im Laufe der Berechnung des fraktalen Feldes variiert werden. Bei der Berechnung werden Gleitkommaberechnungen mit mindestens 4 Bytes grossen Variablen durchgeführt. Die berechneten Wertepaare werden vor der Speicherung im fraktalen Feld miteinander in Beziehung gesetzt und mathematisch nach behandelt, was eine weitere Konfusion der Zahlenwerte bewirkt. Dadurch sollen Selbstähnlichkeiten und sich wiederholende relative Konvergenzeigenschaften der berechneten Punktefolgen in der komplexen Zahlenebene zusätzlich unkenntlich gemacht werden, sodaß sich ein Feld mit möglichst zufälligen, sich nicht wiederholenden Werten ergibt.

Ziel ist die Schaffung von pseudozufälligen Bytefolgen aus den berechneten Punkten der komplexen Ebene als Schlüsselbasis und somit der konsequente Ausschluß von schlechten, leicht zu erratenden Basisschlüsselfolgen. [3]

Beispielberechnung eines fraktalen Feldes im Detail:

Als Vorgabe für die Berechnung der Punktefolge mit den Funktionen zur Berechnung von Fraktalen wird ein Startpunkt in der komplexen Ebene festgelegt. Im Rahmen der Berechnung wird die Variation dieses Punktes nur in einer Umgebung des Startwertes zugelassen. Hier sind jedoch auch andere Vorgaben oder Verfahren möglich. Die Anzahl der berechneten Bytewerte sollte eine Anzahl von 1024 nicht unterschreiten. In drei Schleifen werden die Daten für das Fraktale Feld ermittelt:

Die erste Programmschleife mit 4 Durchläufen ändert den Startwert der Berechnung um den festgelegten x-Sprungwert im Realteil (x-Richtung) des Startpunktes. In der darin eingebetteten zweiten Programmschleife mit 4 Durchläufen wird jeweils der Imaginärteil (iy-Richtung) des Startwertes um den y-Sprungwert geändert. In der innersten, dritten Programmschleife werden jeweils vier aufeinanderfolgende Iterationen mit den Fraktalen Rechenmethoden durchgeführt. Aus zwei aufeinanderfolgenden Punkten einer Iteration werden jeweils 4 neue Werte für das fraktale Feld berechnet. Die berechneten Werte sind jeweils mindestens 4 Byte lang, entsprechend der eingesetzten Variablentiefe. Zu jeweils zwei Wertepaaren werden die Realteile und Imaginaerteile mittels XOR verknüpft, zusätzlich wird der Abstand zum Ursprung (Radius) berechnet und durch Verknüpfung mit dem berechneten Radius zwei weitere Werte für das Fraktale Feld bestimmt.

Auf diese Weise werden im obigen Beispiel aus 64 fraktal berechneten Punkten durch die Nachbearbeitung der Punkte in der innersten Schleife 256 Werte, und bei 4 Bytes pro Punkt demnach 1024 Bytes für das Feld generiert.

c) Schar von Selektionsfunktionen

Die zweite Basis für das Einmalschlüsselverfahren stellt eine Liste von Auswahlfunktionen dar, mit deren Hilfe Bytefolgen aus dem fraktal berechneten Bytefeld entnommen und zu einem Basisschlüssel zusammengestellt werden. Die mathematisch beliebig strukturierten Selektionsfunktionen greifen über den Index auf die jeweiligen Inhalte des Bytefeldes zu und stellen einen neuen, ausreichend langen Basisschlüssel zusammen.

Um die statistische Unabhängigkeit der einzelnen Schlüsselbytes bei der Auswahl durch die selbe Selektionsfunktion aus dem Bytefeld zusätzlich zu erhöhen, wird ein quasizufälliger Offsetparameter für die Selektionsfunktionen durch eine konfigurierbare Maskierung aus dem aktuellen Wert des Zufallszahlengenerators abgeleitet.

Eine zusätzliche Erhöhung der Sicherheit des Gesamtsystems wird dadurch erreicht, daß die Schar von Selektionsfunktionen durch eine in Wartungsintervallen zur Laufzeit durchgeführte Umprogrammierung eines Programmsegments gewechselt werden kann. Sie sind damit austauschbarer Bestandteil des Einmalschlüssels und können auch automatisiert gewartet werden. Anzahl und Komplexität der Selektionsfunktionen wirken sich auf die Sicherheit des Einmalschlüsselverfahrens aus. Der Austausch kann unabhängig von persönlichen Schlüsselteilen erfolgen und von einer unabhängigen Administration oder durch Automatismen ausgeführt werden.

Die letztendlich gültige pseudozufällige Basisschlüsselsequenz wird mit Hilfe von Selektionsfunktionen aus dem Fraktalen Feld entnommen. Die Anzahl der Selektionsfunktionen muß mindestens 16 betragen. Die Anzahl der Funktionen hat direkten Einfluß auf die Sicherheit des Einmalschlüsselgenerierungsverfahrens.

Gesteuert wird die Auswahl der Selektionsfunktion durch eine Bitfolge aus dem aktuellen Wert eines Pseudozufallsgenerators, die durch Maskierung des aktuellen Zufallswertes erhalten wird. Die Maskierung stellt eine der wartbaren Parametrisierungen dar. Die so erhaltene Bytefolge wird als Basisschlüssel für das anschließend aufgerufene Standard-Schlüsselerweiterungsverfahren (z.B. der KeyScheduler beim AES-Rijndael [2], Abbildung 1) des eingesetzten Blockverschlüsselungsalgorithmus verwendet.

Die Selektionsfunktionen sind als Zeiger auf Funktionen einzurichten und können deshalb über die Startadresse im Programmcode aufgerufen werden. Struktur und Komplexität der Selektionsfunktionen sollen ähnlich aufgebaut sein und sehr ähnliches Laufzeitverhalten aufweisen. Damit ein Angriff durch Vermessen der Laufzeitunterschiede bei der Auswahl oder während der Ausführung der Funktionen weitgehend verhindert wird. [4]

Welche der mindestens 16 Funktionen aufgerufen wird, steuert ein Teil des aktuellen Zufallswertes des Pseudozufallszahlengenerators. Die Selektionsfunktionen beinhalten beliebige mathematischen Anweisungen, mit denen aus dem zuvor berechneten Fraktalen Feld sprunghaft einzelne Bytes ausgewählt werden. Die selektierte Anzahl der Bytes entspricht der vorgegebenen Schlüssellänge zum Basisschlüssels für den eingesetzten Blockverschlüsselungsalgorithmus.

Die Selektionsfunktionen ermitteln Werte auf der Basis eines Index über das fraktale Feld. Die Funktionen werden durch Maskierung der Berechnungsergebnisse so begrenzt, daß der berechnete Index niemals die Größe des maximal zulässigen Index des fraktalen Feldes überschreitet. Um die Durchmischung von erzeugten Bytefolgen noch weiter zu erhöhen, wird aus dem Zufallszahlenwert zusätzlich ein Offsetwert für die Indexberechnung hinzugefügt.

Die Selektionsfunktionen liegen in einem Codebereich, der in Wartungsintervallen ausgetauscht werden kann. Damit sind diese Funktionen austauschbar. Es ist bei der Implementierung des Einmalschlüsselgenerierungsverfahrens darauf zu achten, daß die Auswahl der nächsten Selektionsfunktion über einen direkte adressierten Funktionsaufruf im Programmlauf erfolgt, damit aus der Laufzeit der Selektion nicht auf die benutzte Funktion geschlossen werden kann.

Die Selektionsfunktionen sind eine besonders wirksame Möglichkeit das Ermitteln von Schlüsselinformationen und Schlüsselberechnungsverfahren aus den verschlüsselten Daten zu erschweren, sodaß aus einer Sammlung von bekannten Paaren von Klartext und Geheimtextdatenblöcken nicht einfach auf die Schlüsselgenerierungsverfahren zurückgeschlossen werden kann.

d) Pseudozufallszahlengenerator

Der eingesetzte Pseudozufallszahlengenerator soll mindestens über eine Periode von 2^60 verfügen [5], sodaß die damit erzeugten Zufallszahlenfolgen einen Ausreichend großen Zahlenraum beinhalten. Die damit erzeugten Sequenzen von Zufallszahlen werden maskiert und zur Auswahl einer Selektionsfunktion, sowie zur Ableitung von Indexstartwerten (Offsetwerten) zur Berücksichtigung durch die Selektionsfunktion beim Zugriff auf das fraktale Feld verwendet.

Im Rahmen der Sitzungseröffnung werden die neuen Startwerte für den Pseudozufallszahlengenerator ermittelt. Um eine einwandfreie Entschlüsselung zu gewährleisten, müssen die Startwerte des Zufallszahlengenerators vor dem Beginn einer Verschlüsselung unbedingt gesichert und vor der Entschlüsselung wieder hergestellt werden. Der Wert des Zufallszahlengenerators wird nach jeder Verschlüsselung/Entschlüsselung eines Datenblockes verändert.

Für die Beurteilung der Patentfähigkeit in Betracht gezogene Druckschriften:

Patente DE 101 29 285 C2

Literaturliste

  • [1] AES Proposal, The Rijndael Block Cipher, Rijndael Documentation, Version 2, September 1999, http://csrc.nist.gov/CryptoToolkit/aes
  • [2] J. Daemen, V. Rijmen: The Design of Rijndael, Springer Verlag 2002
  • [3] Reinhard Wobst, Abenteuer Kryptologie, Methoden, Risiken und Nutzen der Datenverschlüsselung, Addison Wessley, Bonn, 3. Auflage 2001
  • [4] P. Kocher, J. Jaffe, B. Jun, Introduction to Differential Power Analysis and Related Attacks, Cryptography Research, San Francisco 1998
  • [5] Henk C.A. van Tilborg, Fundamentals of Cryptology, Kluver Academic Publishers, Second Printing 2001
  • [6] J. Dufner, A. Roser, F. Unseld, Fraktale und Julia-Mengen, Verlag Harry Deutsch, 1998
  • [7] H. Golawski, Fraktales Verschlüsselungssystem, Elektronik 07/2005, S. 48 ff


Anspruch[de]
Einmalschlüsselgenerierungsverfahren zur Erzeugung von einmaligen Basisschlüsselsequenzen für Blockverschlüsselungsalgorithmen basierend auf dem Zusammenwirken von drei Hauptmerkmalen zur Manipulation von digital codierten Daten dadurch gekennzeichnet, dass nach der einleitenden Berechnung eines hinreichend großen Bytefeldes mittels fraktaler Berechnungsmethoden und Speicherung in einem Bytefeld, über eine Schar von austauschbaren Auswahlfunktionen (Selektionsfunktionen) Bytefolgen aus einem indizierten Bytefeld zu einer Sequenz von Basisschlüsseln zusammengestellt werden, wobei ein unabhängiger, pro Datenblock inkrementierter Pseudozufallszahlengenerator mit einer ausreichend großen Periode benutzt wird, um aus dem aktuellen Zufallszahlenwert die Selektionsfunktion, sowie die Indexstartwerte abzuleiten mit denen der nächste Basisschlüssel aus dem fraktal berechneten Bytefeld abgeleitet wird. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass in einem ersten Hauptmerkmal

a) mit Hilfe von iterierten Funktionensystemen vom Grad >= 2 (im Folgenden als fraktale Funktionen bezeichnet), ausgehend von einem vorgegebenen Startwert, eine Folge von Punkten in der komplexen, Gaußschen Zahlenebene berechnet und in einem Datenfeld gespeichert wird

b) die so berechneten Punkte bei der byteweisen Manipulation mit einfachen, mathematischen Verfahren zueinander in Relation gesetzt werden, sodaß eine erste Konfusion und Diffusion der berechneten Punktfolgen gegenüber dem benutzten Berechnungsverfahren erreicht wird und die im Speicher abgelegte Liste mit den errechneten Punkten anschließend als ein indexbehaftetes Feld von Bytes (Bytematrix, Bytefeld, Fraktales Feld) behandelt wird, wobei das Bytefeld als Basis für das anschließende Zusammenstellen einer Bytefolge zu einem Basisschlüssel mit Hilfe einer zufällig gewählten Selektionsfunktion dient;

c) die mit iterierten Funktionensystemen in der komplexen Zahlenebene berechnete Punktefolge für jede neue Sitzung im Sender und Empfänger in Abhängigkeit von den Initialisierungswerten des Einmalschlüsselgenerierungsverfahrens neu erzeugt und als Bytefeld gespeichert wird.
Verfahren nach Anspruch 1 und 2, dadurch gekennzeichnet, dass in einem zweiten Hauptmerkmal

a) die Selektionsfunktionen mathematische Anweisungen beinhalten, die den Zugriff auf den Inhalt des Bytefeldes über den Feldindex erlauben,

b) eine dieser Selektionsfunktionen aus der Liste der möglichen Selektionsfunktionen aufgrund des aktuellen Zahlenwertes eines Pseudozufallszahlengenerators ausgewählt wird,

c) aus dem aktuellen Zahlenwert des Zufallszahlengenerators durch Maskierung ein Offsetwert entnommen wird, wobei der quasizufällige Offsetwert den Startwert der Indexberechnung im Bytefeld durch die Selektionsfunktion verschiebt,

d) der nächste Teilschlüssel des Einmalschlüssels erhalten wird, indem aus der Bytematrix mittels der zufällig ausgewählten Selektionsfunktion die Anzahl von Bytes entnommen wird, die der aktuell eingestellten Schlüssellänge entspricht,

e) die Selektionsfunktionen in einem Feld von Funktionen abgelegt sind und der Zugriff auf die nächste, zufällig ausgewählte Funktion über Zeiger auf diese Funktionen erfolgt, damit aus der Laufzeit zum Auffinden der Funktion im Code keine Rückschlüsse auf die benutzte Selektionsfunktion bei der Krypanalyse gezogen werden kann,

f) die mit der jeweiligen Selektionsfunktion ausgewählte Bytefolge zum nächsten Basisschlüssel zusammengestellt wird und mit Hilfe dieses Basisschlüssels der nächstfolgende Datenblock über das eingesetzte Blockverschlüsselungsverfahren ver- bzw. entschlüsselt wird,

g) alle in einer Schar gruppierten Selektionsfunktionen eine möglichst gleichlange Verarbeitungszeit aufweisen, wobei die Verarbeitungsdauer während der Auswahl einer Bytefolge aus dem Fraktalen Feld keinen Hinweis auf mathematische Einzelheiten der eingesetzten Selektionsfunktion für die Kryptanalyse liefern darf,

h) die Schar der Selektionsfunktionen als Ganzes im Rahmen von Wartungsarbeiten ferngesteuert ausgetauscht werden kann, und somit ein automatisierter Wechsel eines Schlüsselanteils möglich ist.
Verfahren nach Anspruch 1, 2 und 3 dadurch gekennzeichnet, dass in einem dritten Hauptmerkmal

a) ein unabhängig arbeitender Pseudozufallszahlengenerator, der mindestens über eine Periode von 2 exp 60 (ca. 1,153 E18) verfügt zum Einsatz kommt,

b) aus den erzeugten Zufallszahlen durch eine erste Maskierung die Auswahl der nächsten Selektionsfunktion aus der Schar der verfügbaren Selektionsfunktionen quasizufällig gesteuert wird,

c) aus den erzeugten Zufallszahlen durch eine zweite Maskierung die quasizufällige Auswahl des Indexstartwertes für die Indexberechnungen durch die Selektionsfunktionen gewährleistet wird,

d) durch geeignete, dynamische Maskierung des Zufallszahlenwertes Gruppenfunktionen aufgebaut werden können,
Verfahren nach Anspruch 2, bei dem die Funktionenen zur Berechnung von Mandelbrot- und Juliamengen eingesetzt werden.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

  Patente PDF

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com