-
Die Erfindung betrifft ein Verfahren zum Überprüfen der Sicherheit eines Schlüsselpaars eines auf algebraischen Codes basierenden kryptographischen Systems, insbesondere dem Faure-Loidreau-Kryptosystem, wobei das Schlüsselpaar einen öffentlichen Schlüssel zum Verschlüsseln einer Nachricht und einen privaten Schlüssel zum Entschlüsseln der Nachricht umfasst. Die Schlüssel des Schlüsselpaars liegen derart vor, dass bei der Erzeugung des Schlüsselpaars verwendete Fehlervektoren derart gewählt sind, dass der Rang für alle Fehlervektoren gleich ω ist, wobei der öffentliche Schlüssel ein Codewort eines verschachtelten Gabidulin-Codes umfasst.
-
Code-basierte Public Key-Kryptosysteme (PKC) verwenden ein Schlüsselpaar, das aus einem privaten Schlüssel, der zum Entschlüsseln von Daten verwendet wird, und einem öffentlichen Schlüssel, mit dem die Daten verschlüsselt werden, besteht. Die meisten aktuellen Kryptosysteme mit öffentlichen Schlüsseln, wie z.B. Revest, Shamir und Adleman (RSA) [1] stützen sich auf harte mathematische Probleme wie das Faktorisieren großer Ganzzahlen oder das Problem des diskreten Logarithmus. Shor stellte 1999 einen Faktorisierungsalgorithmus für Quantencomputer vor, der in der Lage ist, diese schwierigen Probleme in polynomialer Zeit zu lösen [2]. Unter der Annahme, dass Quantencomputer ausreichender Leistungsfähigkeit eines Tages gebaut werden können, können gegenwärtige Kryptosysteme wie RSA in polynomialer Zeit gebrochen werden, was die meisten heutigen Kommunikationssysteme unsicher macht. Gegenwärtige post-quantum sichere Public Key-Kryptosysteme (d.h. Kryptosysteme, die gegen Angriffe auf Quantencomputern resistent sind) weisen im Vergleich zu RSA den Nachteil großer Schlüssel auf.
-
Faure und Loidreau schlugen im Jahr 2006 ein in [3] beschriebenes Kryptosystem vor, das auf dem Problem der Rekonstruktion von linearisierten Polynomen beruht. Das Faure-Loidreau (FL)-Kryptosystem ist das Rang-Metrik-Äquivalent des bekannten Augot-Finiasz-Kryptosystems [4] und erlaubt sehr kleine öffentliche Schlüssel für eine bestimmte Sicherheitsstufe, wobei für eine 80 Bit-Sicherheit eine Schlüssellänge von ca. 2 KB benötigt wird. Im Jahr 2018 haben Gaborit et al. gezeigt, dass der private Schlüssel des FL-Kryptosystems mit hoher Wahrscheinlichkeit in polynomialer Zeit aus dem bekannten öffentlichen Schlüssel wiederhergestellt werden kann. In [5] wurde gezeigt, dass der Angriff, wie dieser in der Publikation [6] beschrieben ist, dem Entschlüsselungsproblem von verschachtelten Gabidulin-Codes (sog. interleaved Gabidulin-Codes) entspricht ([7]), wobei das Kryptosystem insoweit repariert werden kann, als es auf Fehlermuster eingeschränkt wird, die den verschachtelten Gabidulin-Dekoder zum Versagen bringen.
-
Da bis zum heutigen Tag kein Quantenalgorithmus bekannt ist, der das allgemeine Dekodierproblem von Fehler-korrigierenden Codes beschleunigt, wird das FL-Kryptosystem als geeigneter Kandidat für eine sichere Post-Quantum PKC-Infrastruktur betrachtet.
-
Die
WO 2012/139919 A2 offenbart Verfahren und Vorrichtungen zum Erzeugen eines Schlüsselpaares, umfassend einen privaten und einen öffentlichen Schlüssel, zum Verschlüsseln einer Nachricht zur Übertragung durch ein unsicheres Kommunikationsmedium sowie zum Entschlüsseln der Nachricht. Die Verfahren basieren auf dem bekannten McEliece-Kryptosystem oder dessen Niederreiter-Variante. Anstelle von Permutationsmatrizen werden allgemeinere Transformationsmatrizen
Q genutzt, insbesondere zusammen mit einer geeigneten Auswahl beabsichtigter Fehlervektoren. Die Transformationsmatrizen
Q sind hierbei nicht-singuläre n x n Matrizen der Form Q = R + T, wobei die Matrix R eine Rang-z-Matrix ist und die Matrix T eine andere Matrix, die die Matrix
Q zu einer nicht-singulären Matrix macht. Die neuen Transformationsmatrizen
Q haben, obwohl zumindest möglicherweise dicht, eine begrenzte Ausbreitungswirkung auf die beabsichtigten Fehlervektoren für den autorisierten Empfänger. Die Verwendung dieser Art von Transformationsmatrizen ermöglicht eine verbesserte Verschleierung des privaten Schlüssels in dem öffentlichen Schlüssel, ohne dass sich ein weiterer Fehlerausbreitungseffekt ergibt. Basierend auf dieser Familie von Transformationsmatrizen
Q ermöglicht das Kryptosystem die Verwendung anderer Codefamilien als Goppa-Codes, wie beispielsweise RS-Codes, indem eine erhöhte Sicherheit des öffentlichen Schlüssels gewährleistet wird.
-
Horlemann-Trautmann A.-L., Marshall K. und Rosenthal J. „Considerations for Rank-based Cryptosystems"; IEEE International Symposium on Information Theory, 2016, Seiten 2544-2548 beschreibt Kryptosysteme, die auf Rang-Metrik-Codes basieren, wobei Codes mit impliziter struktureller Schwäche genutzt werden können, auch wenn die explizite Struktur nicht bestimmt ist. Diese können für einen Angriff genutzt werden, um ein auf Gabidulin-Code basiertes Kryptosystem zu brechen, das bislang strukturellen Angriffen widerstanden hat.
-
Es ist Aufgabe der Erfindung, ein Verfahren zum Überprüfen der Sicherheit eines Schlüsselpaars eines auf algebraischen Codes basierenden kryptographischen Systems, insbesondere dem Faure-Loidreau-Kryptosystem, anzugeben, so dass schwache Schlüsselpaare identifiziert und das Kryptosystem in seiner Sicherheit erhöht werden kann.
-
Diese Aufgabe wird gelöst durch das Verfahren gemäß den Merkmalen des Patentanspruches 1. Vorteilhafte Ausgestaltungen ergeben sich aus den abhängigen Patentansprüchen.
-
Es wird ein Verfahren zum Überprüfen der Sicherheit eines Schlüsselpaars eines auf algebraischen Codes basierenden kryptographischen Systems vorgeschlagen. Bei dem kryptographischen System handelt es sich insbesondere um das bekannte Faure-Loidreau (FL)-Kryptosystem. Das Schlüsselpaar weist einen öffentlichen Schlüssel zum Verschlüsseln einer Nachricht und einen privaten Schlüssel zum Entschlüsseln der Nachricht auf. Der öffentliche Schlüssel umfasst dabei ein Codewort eines verschachtelten Gabidulin-Codes. Das Verfahren umfasst die folgenden Schritte:
- a) Ermitteln eines geschätzten Codeworts aus dem öffentlichen Schlüssel, in dem eine Anzahl an Spalten und/oder Zeilen gelöscht sind, mit einem Dekoder, der einen Fehlerlösch-Dekodieralgorithmus ausführt;
- b) Ermitteln eines Fehlervektors aus dem öffentlichen Schlüssel und dem geschätzten Codewort;
- c) Überprüfung, ob der in Schritt b) ermittelte Fehlervektor einen vorgegebenen Rang aufweist;
- d) Markieren des Schlüsselpaars, das den in Schritt a) überprüften öffentlichen Schlüssel umfasst, als schwach, wenn die Überprüfung in Schritt c) positiv ist.
-
Durch das beschriebene Verfahren können schwache Schlüsselpaare in dem FL-Kryptosystem aufgefunden werden. Das Verfahren basiert auf dem Auslöschen von Spalten und/oder Zeilen. Das Verfahren verwendet ein prinzipiell bekanntes Vorgehen sog. GMD (Generalized Minimum Distance)-Algorithmen. Das Verfahren verwendet die Spalten und/oder Zeilenlöschungen, um alternative private Schlüssel von schwachen öffentlichen Schlüsseln zu rekonstruieren. Hierdurch ermöglicht es das Verfahren, schwache Schlüssel aufzuspüren, welche durch die aus dem Stand der Technik bekannten Methoden (insbesondere wie diese in den Publikationen [5, 6] beschrieben sind) nicht detektiert werden können.
-
Das Verfahren kann dabei insbesondere in beliebigen Kommunikationssystemen eingesetzt werden, welches PK (Public Key)-Verschlüsselung nutzt.
-
Gemäß einer zweckmäßigen Ausgestaltung werden die Schritte a) bis d) iterativ durchgeführt, wobei in Schritt a) dem Dekoder in jeder Iteration der öffentliche Schlüssel mit einer unterschiedlichen Teilmenge der gelöschten Anzahl an Spalten und/oder Zeilen zugeführt wird. Eine weitere Ausgestaltung sieht vor, dass die Schritte a) bis b) iterativ für alle möglichen unterschiedlichen Teilmengen der gelöschten Anzahl an Spalten und/oder Zeilen durchgeführt werden. Insbesondere kann das Löschen durch das Null-Setzen der Elemente der Anzahl an Spalten und/oder Zeilen durchgeführt werden.
-
Gemäß einer zweckmäßigen Ausgestaltung entspricht der vorgegebene Rang des in Schritt b) ermittelten Fehlervektors dem Rang der Fehlervektoren des zu prüfenden Schlüsselpaars.
-
Das Verfahren lässt sich dann besonders effizient durchführen, wenn als Dekoder ein Gabidulin-Dekoder verwendet wird.
-
Es ist weiterhin zweckmäßig, wenn in Schritt b) aus dem geschätzten Codewort und einer rechts-inversen Matrix einer Generatormatrix ein Vektor ermittelt wird. Insbesondere wird das Verfahren abgebrochen und das Schlüsselpaar als sicher markiert, wenn das geschätzte Codewort in Schritt a) eine leere Menge liefert. Das Verfahren führt dann zu einem schnellen Ergebnis, wenn der Schlüssel unsicher ist, das heißt, wenn aus dem öffentlichen Schlüssel ziemlich einfach der private Schlüssel rekonstruiert werden kann. Hierdurch ist sichergestellt, dass das Verfahren nicht unnötig Rechenzeit für die Durchführung des Verfahrens mit sämtlichen Teilmengen an gelöschten Spalten und/oder Zeilen aufgebracht wird.
-
Es ist zweckmäßig, wenn der zuvor ermittelte Vektor zusammen mit dem Fehlervektor und der Markierungsinformation als Ergebnis ausgegeben wird. Hierdurch wird eine Information erhalten, welcher öffentliche Schlüssel einen starken Schlüssel darstellt, der für das Kryptosystem verwendet werden kann.
-
Eine weitere zweckmäßige Ausgestaltung sieht vor, dass die Anzahl an maximal korrigierbaren Auslöschungen sich aus der Summe der Spaltenauslöschungen und Zeilenauslöschungen und dem Fehlerrang ergibt, wobei sich der Überprüfungsbereich der Anzahl an Spalten- und/oder Zeilenauslöschungen beschränkt auf:
worin ξ die Differenz zwischen dem Fehlerrang und dem eindeutigen Dekodierradius sowie n und k Elemente eines Gabidulin-Codes (Gab [n, k]) sind.
-
Bei der Erzeugung des Schlüsselpaars sind gemäß einer weiteren zweckmäßigen Ausgestaltung verwendete Fehlervektoren derart gewählt, dass der Rang für alle Fehlervektoren gleich ist.
-
Es wird ferner ein Computerprogrammprodukt vorgeschlagen, das direkt in den internen Speicher eines digitalen Computers geladen werden kann und Softwarecodeabschnitte umfasst, mit denen die hierin beschriebenen Schritte ausgeführt werden, wenn das Produkt auf einem Computer läuft. Das Computerprogrammprodukt kann als USB-Stick, DVD, CD-ROM oder als Festplatte verwirklicht sein, auf denen ein jeweiliges Programm zur Durchführung der in diesem Dokument beschriebenen Verfahren gespeichert ist. Von dem Computerprogrammprodukt ist ebenfalls ein über ein drahtloses oder drahtgebundenes Netzwerk ladbares Programm umfasst.
-
Die Erfindung wird nachfolgend näher anhand eines Ausführungsbeispiels in den Zeichnungen beschrieben. Es zeigen:
- 1 ein Diagramm, das die Erfolgsrate eines Spaltenlöschungsangriffs für verschiedene Typen eines ersten Typs von schwachen Schlüsseln zeigt;
- 2 ein weiteres Diagramm, das die Erfolgsrate eines Spaltenlöschungsangriffs für verschiedene Typen eines zweiten Typs von schwachen Schlüsseln zeigt;
- 3 ein schematischer Ablaufplan des erfindungsgemäßen Verfahrens.
-
Bevor das erfindungsgemäße Verfahren zum Überprüfen der Sicherheit eines Schlüsselpaars eines auf algebraischen Codes basierenden kryptographischen Systems im Detail erläutert wird, werden zunächst die dazu erforderlichen Annahmen sowie das FL-Kryptosystem im Detail erläutert.
-
Mit q wird eine Potenz einer Primzahl bezeichnet, wobei
ein endlicher Körper der Ordnung q und mit
der endliche Erweiterungskörper von
des Grads m sind. Für eine ganze Zahl u > 1 wird ein endlicher Erweiterungskörper
von
definiert, so dass gilt:
Mit B = (β
1,β
2, ...,β
u) wird eine geordnete Basis von
über
bezeichnet.
-
Die Menge von allen m × n Matrizen über
wird durch
bezeichnet. Hierbei gilt per Definition:
Matrizen und Vektoren sind nachfolgend durch fette Groß- und Kleinbuchstaben wie A und a gekennzeichnet. Das Hamming-Gewicht ω
H(a) eines Vektors a ist definiert als die Anzahl von Einträgen ungleich null in dem Vektor a.
-
Unter einer festen Basis von
über
gibt es eine bijektive Abbildung zwischen einem beliebigen Vektor
und einer korrespondierenden Matrix
-
Der Rang rk
q(a) des Vektors
wird definiert als der Rang der korrespondierenden Matrix
so dass gilt:
Die Körperspur eines beliebigen Vektors
zum endlichen Erweiterungskörper
wird als
bezeichnet. Die Körperspur
wird verwendet, um eine Element-weise Körperspur eines Vektors
zu bezeichnen.
-
Für einen gegebenen Vektor
und eine ganze Zahl r, ist die sog. Moore-Matrix definiert als
wobei
die i-te Frobenius-Potenz bezeichnet.
-
Gabidulin -Codes
-
Die Rangdistanz d
R zwischen zwei Matrizen
mit korrespondierenden Vektoren
ist definiert als
-
Ein linearer Rang-metrischer Code der Länge n ≤ m und Dimension k ist ein
Unterraum von
Die minimale Rang-Distanz d
R eines Rangmetrischen Codes der Länge n und der Dimension a ist nach oben durch die Singleton-Grenze (siehe [10]) begrenzt gemäß:
-
Codes, die die Singleton-ähnliche Grenze in Gleichung (1) mit Gleichheit erfüllen, werden Maximum-Rang-Distanz (MRD)-Codes genannt. Ein Gabidulin-Code Gab [n, k] der Länge n und Dimension k über
wird definiert durch den
Zeilenraum der Generatormatrix G = M
k(g), wobei
und
gelten (siehe [10]). Gabidulin-Codes erfüllen die Gleichung (1) mit Gleichheit, d.h. sie weisen eine minimale Distanz d
R = n - k + 1 auf und sind daher MRD-Codes.
-
Ein Rangfehler-Kanal verwendet eine Matrix
als Eingangsinformation und gibt eine Matrix
aus, so dass gilt: Y = X + E, wobei die Fehlermatrix
den Rang rk
q(E) = t aufweist.
-
Neben t Rangfehlern kann die übertragene Matrix durch Zeilen- oder Spaltenauslöschungen korrumpiert sein (siehe [11]). Eine Matrix
ist durch p Zeilenauslöschungen und ε Spaltenauslöschungen korrumpiert, wenn p Zeilen und ε Spalten gelöscht, d.h. zu null gesetzt, sind. Es existieren effiziente Fehlerlöschkorrektur-Dekoder für Gabidulin-Codes, die t Rangfehler ε Spaltenauslöschungen und p Zeilenauslöschungen bis zu
korrigieren können, was 0(n
2) Operationen im endlichen Erweiterungskörper
erfordert, wie in den Veröffentlichungen [11, 12, 13, 14, 15] beschrieben ist. Es ist zu beachten, dass ε Spaltenauslöschungen in der Matrix
zu ε Symbolfehlern in dem korrespondierenden Vektor
korrespondieren.
-
Verschachtelte Gabidulin-Codes
-
Ein homogener, verschachtelter Gabidulin-Code Gab [u; n, k] der Länge n, der Verschachtelungsordnung u und der Komponenten-Codedimension k über dem endlichen Erweiterungskörper
ist als das u-fache kartesische Produkt von einer (Komponente) des Gabidulin-Codes Gab [n, k] definiert, d.h.
-
Ein verschachtelter Gabidulin-Code IGab [u; n, k] kann Rangfehler bis zu
mit hoher Wahrscheinlichkeit korrigieren, wie dies in der Publikation [7] beschrieben ist. Es ist zu beachten, dass das Verschachteln den Dekodier-Radius für Rangfehler verbessert, der Dekodier-Radius für Zeilen- und Spaltenauslöschungen jedoch nicht verbessert wird.
-
Unter einer festen Basis von
über dem endlichen Erweiterungskörper
kann ein u-fach verschachtelter Gabidulin-Code IGab [u; n, k] über dem endlichen Erweiterungskörper
als der
lineare Zeilenraum der Generatormatrix
von Gab [n, k] repräsentiert werden.
-
Faure-Loidreau-Kryptosystem
-
Nachfolgend erfolgt eine kurze Beschreibung des FL-Kryptosystems. Mit ω wird eine ganze Zahl bezeichnet, die die Bedingung
erfüllt.
-
Die Erzeugung eines Schlüsselpaars, das einen privaten und einen öffentlichen Schlüssel umfasst, basiert auf den folgenden vier Schritten:
- 1. Es wird ein Vektor
mit zufälligem Rang rkq(g) gewählt, wobei mit G = Mk(g) die Generatormatrix des korrespondierenden Gabidulin-Codes Gab [n, k] bezeichne wird.
- 2. Es wird ein Vektor
derart gewählt, dass die letzten u Positionen des Vektors x
unabhängig und zufällig sind.
- 3. Es wird ein Vektor
gewählt, so dass der Rang rkq(s) = ω zufällig ist.
- 4. Es wird eine zufällige invertierbare Matrix
gewählt und
berechnet.
-
Der private Schlüssel setzt sich dann aus der invertierbaren Matrix P, dem Vektor z und dem Vektor x zusammen, d.h. der private Schlüssel umfasst (P, z, x). Dabei kann der Vektor x aus der invertierbaren Matrix P und dem Vektor z erhalten werden.
-
Der öffentliche Schlüssel umfasst den Vektor g, die den Gabidulin-Code definiert, die Dimension k der Moore-Matrix, den öffentlichen Schlüssel k
pub sowie t
pub, d.h. der öffentliche Schlüssel setzt sich zusammen aus (g, k, k
pub, t
pub). Darin sind
und
-
Das Codewort eines Gabidulin-Codes in Formel (4) ist durch xG gegeben, wobei z den Fehlervektor mit Rang ω bezeichnet, der derart gewählt ist, dass der Gabidulin-Code ihn nicht Dekodieren kann.
-
Verschlüsselung
-
Die Verschlüsselung eines Datums erfolgt nach folgendem Vorgehen: ein zu verschlüsselnder Klartext wird mit
bezeichnet. Für die Verschlüsselung werden die folgenden Schritte durchgeführt:
- 1. Es wird zufällig ein Element
gewählt.
- 2. Es wird ein Vektor
mit zufälligem Rang rkq(e) ≤ tpub gewählt.
- 3. Es wird der Chiffretext
berechnet gemäß
-
Entschlüsselung
-
Die Entschlüsselung des beim Empfänger erhaltenen Chiffretexts erfolgt anhand der nachfolgenden, für das Verständnis der Erfindung jedoch nicht weiter relevanten Schritten:
- 1. Es wird
Berechnet. Aufgrund der Formel
der Spur ergibt sich
woraus folgt
- 2.
wird als die letzten n - ω Spalten des Produkts GP definiert, wobei c' und e' die letzten n - ω Positionen von c und eP sind. Hieraus ergibt sich
mit dem Rang
Da
eine Generatormatrix des Gabidulin-Codes Gab [n - ω, k] ist, kann e' aus obiger Formel entfernt werden, woraus sich ergibt
- 3. Aufgrund
ergibt sich, dass die letzten u Positionen von m'
sind. Da
eine geordnete Basis von
über
bildet, kann α berechnet werden zu
worin
die duale Basis von X bezeichnet. Hieraus kann schließlich der Klartext als
berechnet werden.
-
Schlüsselwiederherstellungsangriffe auf das FL-Kryptosystem
-
Wie einleitend beschrieben, haben Gaborit, Otmani und Kalachi gezeigt, dass ein alternativer privater Schlüssel
in polynomialer Zeit aus dem öffentlichen Schlüssel k
pub und der Generatormatrix G mit hoher Wahrscheinlichkeit ermittelt werden kann, wenn für den Rang ω des Fehlervektors gilt:
-
Dies ist beispielsweise in der Publikation [6] beschrieben. Der Angriff kann nicht durch die Anpassung der Parameter verhindert werden, beispielsweise indem
gewählt wird, da ω, wie aus Formel (5) hervorgeht, t
pub reduziert, so dass ein Dekodierangriff möglich wird.
-
Für einen Angriff betrachtet man den öffentlichen Schlüssel k
pub aus Gleichung (4), worin
und
mit Rang rk
q (z) = ω gelten. Durch die Definition des öffentlichen Schlüssels
kann der öffentliche Schlüssel ausgedrückt werden als
worin
mit dem Rang rk
q(z
(j)) ≤ ω für alle j = 1, ..., u gelten. In Gleichung (7) stellt jede Zeile ein Codewort des Gabidulin-Codes dar, wobei x̂
(j)G verschachtelte Gabidulin-Codes darstellen. Je größer die Verschachtelungsordnung u ist, desto größer wird die Fehlerkorrekturleistung des Dekoders. ω müsste größer als die linke Seite der Gleichung (6) gewählt werden, damit ein effizientes Dekodieren nicht mehr möglich ist. Aufgrund der Gleichung (5) kann ω jedoch nicht beliebig gewählt werden. Es ist zu beachten, dass der öffentliche Schlüssel in Gleichung (7) ein Codewort eines verschachtelten Gabidulin-Codes IGab [u; n, k] über dem endlichen Erweiterungskörper
ist, der durch einen Fehler des Rangs ω korrumpiert ist.
-
Wachter-Zeh et al. zeigten, dass die in der Publikation [6] beschriebene Schlüssel-Wiederherstellungsattacke äquivalent zum Dekodierproblem eines verschachtelten Gabidulin-Codes ist, wie dieser in Publikation [5, Thm. 3] beschrieben ist. Dies bedeutet, die Schlüssel-Wiederherstellungsattacke ist äquivalent zum Problem des Wiederherstellens von x(1), ..., x(u) aus Gleichung (7). Aus diesem Grund kann ein Angreifer einen alternativen privaten Schlüssel rekonstruieren, indem er einen verschachtelten Dekoder über den öffentlichen Schlüssel kpub laufen lässt, was möglich ist, da die Generatormatrix G des Komponenten-Codes öffentlich ist.
-
Diese Beobachtung ermöglicht eine gezielte Reparatur des FL-Kryptosystems, indem die Fehlervektoren z
(j) für j = 1, ..., u im Schritt der Schlüsselerzeugung derart gewählt werden, dass ein verschachtelter Gabidulin-Dekoder versagt, obwohl ω die Gleichung (6) erfüllt. Die am meisten sichere Wahl für den Fehlervektor z in Gleichung (7) ist daher derart, dass gilt: z
(1) = z
(2) = ... = z
(u) mit dem Rang rk
q(z
(j)) = ω für alle j = 1, ..., u. Daher kann das FL-Kryptosystem durch die Konstruktion eines zusammengesetzten Fehlervektors von z in Gleichung (3) als
repariert werden, wobei
gelten. Die Parameter des reparierten FL-Kryptosystems in der Publikation [5] sind in Tabelle 1 zusammengefasst, wobei zusätzlich korrespondierende Worst Case-Wahrscheinlichkeiten für Zeilenfehler mit ausschließlich Nullen angegeben sind.
Tabelle 1: Parameter für das in Publikation [5] beschriebene und reparierte FL-Kryptosystem
Sicherheitslevel | q | m | u | n | k | w | Schlüsselgröße | ξ | Log2(Pr(S2ξ,2ξ)) |
80-bit | 2 | 61 | 3 | 61 | 31 | 16 | 1,86 KB | 1 | -10,82 ... |
128-bit | 2 | 63 | 3 | 63 | 31 | 18 | 1,98 KB | 2 | -19,16 ... |
256-bit | 2 | 82 | 4 | 82 | 48 | 20 | 4,20 KB | 3 | -28,36 ... |
-
Überprüfung der Sicherheit eines Schlüsselpaars
-
Nachfolgend wird ein zur Überprüfung der Sicherheit eines Schlüsselpaars verwendeter Angriff auf reparierte FL-Kryptosystem beschrieben, der es erlaubt, den privaten Schlüssel von manchen schwachen öffentlichen Schlüsseln effizient zu ermitteln. Der Angriff basiert auf dem bekannten Prinzip des GMD-Dekodierens, welches beispielsweise in der Publikation [8] beschrieben ist. Die grundsätzliche Idee des GMD-Dekodierens besteht darin, Soft-Information in den gebundenen Minimum-Distanz (Bounded Minimum Distance, BMD)-Dekodierprozess durch das Löschen von den am meisten unzuverlässigen Positionen einzubringen. Dieses Vorgehen resultiert in einer verbesserten Fehlerkorrekturleistung, da ein BMD-Dekoder doppelt so viele Auslöschungen wie Fehler korrigieren kann. Das Prinzip eines GMD-Dekodierens kann dabei auf Rang-metrische Codes erweitert werden, wie beispielsweise in der Publikation [9] beschrieben ist, wobei Rang-Fehler für Zeilen- und Spaltenauslöschungen behandelt werden können, wie sich aus Formel (2) ergibt.
-
Obwohl ein Angreifer nicht mit Soft-Information über einen Fehlervektor z, der die private Information des öffentlichen Schlüssels gemäß Gleichung (4) verschleiert, ausgestattet ist, wird nachfolgend gezeigt, dass ein GMD-basierter Schlüssel-Wiederherstellungsangriff, der die verbesserten Korrekturfähigkeiten von Zeilen- und Spaltenauslöschungen ausnutzt, für einige Fehler-Pattern z möglich ist, auch wenn alle möglichen Kombinationen von Zeilen- und Spaltenauslöschungspositionen zu berücksichtigen sind. Die Kenntnis des Fehler-Patterns z erlaubt die Gewinnung des Vektors x durch die Berechnung
wobei G
┼ die Rechts-Inverse der Generatormatrix G ist. Daher kann ein alternativer privater Schlüssel (x, z, P̃) durch die Berechnung einer invertierbaren Matrix
berechnet werden, wobei die Bedingung
mit
und dem Rang rk
q(s̃
(1) = ω zu erfüllen ist. Da die Kenntnis eines z
(j) in Gleichung (7) ausreichend ist, um den gesamten Fehlervektor z in dem reparierten FL-Kryptosystem zu gewinnen, ist es ausreichend, sich auf die erste Zeile des erweiterten öffentlichen Schlüssels aus Gleichung (7) zu konzentrieren, d.h.
mit dem Rang rk
1(z
(1) = ω.
-
Ein unmittelbarer Dekodier-Ansatz, der einen Gabidulin-Dekoder für den Code Gab [n, k] mit der Generatormatrix G nutzt, schlägt fehl, da ω = rk
q(z) derart gewählt ist, dass ω > (n - k)/2 erfüllt ist. Die Differenz zwischen dem Fehlerrang ω und dem eindeutigen Dekodierradius wird definiert als
-
Für Gabidulin-Codes existieren Algorithmen (siehe z.B. die Publikationen [11, 12, 14, 15]), die ε Spaltenauslöschungen, p Zeilenauslöschungen und die Anzahl der Fehler ω bis zu
korrigieren können, wie sich auch aus Gleichung (2) ergibt. Wird die Anzahl der Zeilen- und Spaltenauslöschungen als δ = ε + p definiert, ergibt sich
Durch das künstliche Einbringen von δ Zeilen- und/oder Spaltenauslöschungen in den Schlüssel
und damit den Fehlervektor z
(1) wird ein neuer Fehlervektor z'
(1) mit dem Fehlerrang
erhalten. Daher kann ein Fehler und Zeilen- und/oder Spaltenauslöschungs-Dekoder den Fehler z
(1) ermitteln und eine Dekodierung vornehmen, wenn gilt
-
Unter Verwendung der Formeln (8) und (9) und dem Umstand, dass ω - δ ≤ ω' ≤ ω gilt, erhält man
-
Wird DecG(·) als effizienter Fehlerauslöschungs-Dekodieralgorithmus für den Gabidulin-Code Gab [n, k] bezeichnet, der durch die Generatormatrix G charakterisiert ist, dann gibt der Algorithmus eine Schätzung von x̂(1)G des „übertragenen“ Codeworts x(1)G ∈ Gab [n, k] zurück.
-
Im schlechtesten Fall ist der Rang ω des Fehlers z
(1) durch die δ künstlich hinzugefügten Zeilen- und/oder Spaltenauslöschungen im Schlüssel
nicht ausreichend reduziert, so dass die Gleichung (9) nicht erfüllt ist. In diesem Fall erhält man eine fehlerhafte Korrektur, d.h. der Dekoder gibt eine Schätzung
oder einen Dekodierfehler Dec
G(·) = ∅ zurück.
-
Die Menge
an Zeilen- und/oder Spaltenauslöschungs-Patterns wird als
definiert, wobei die Einträge, die ungleich null sind, in a und b die Zeilen- und/oder Spaltenauslöschungs-Positionen bezeichnen.
-
Für eine beliebige Matrix
bezeichnet ε
(a,b)(Y) den Zeilen- und/oder Spaltenauslöschungs-Operator, der die Matrix
zurückgibt, in der Zeilen und/oder Spalten gemäß des Auslöschungs-Patterns (a, b)ausgelöscht, teils zu null gesetzt, sind. Der Operator ε
(a,b)(y) kann auch für den korrespondierenden Vektor
genutzt werden.
-
Der nachfolgend skizzierte Algorithmus umfasst die vorgehend beschriebenen Schritte zur erfindungsgemäßen Überprüfung der Sicherheit eines Schlüsselpaars eines auf algebraischen Codes basierenden kryptographischen Systems. Dem Algorithmus werden als Eingangsgrößen zugeführt:
Der Algorithmus gibt die Vektoren x̂
(1), z
(1) mit dem Rang rk
q (z
(1)) = ω, der derart gewählt ist, dass
erfüllt ist, zurück oder eine Markierung „Fehler“, wenn s = wahr ist.
-
Bevorzugt wird das Verfahren bei gleichzeitiger Vornahme von Zeilen- und Spaltenauslöschungen durchgeführt. Es ist jedoch festzuhalten, dass das Verfahren auch dann genutzt werden kann, wenn entweder nur Zeilenauslöschungen oder nur Spaltenauslöschungen vorgesehen werden.
-
Im schlechtesten Fall beträgt die rechentechnische Komplexität des in Algorithmus
1 gezeigten Angriffs etwa
Operationen im erweiterten Körper
Die Gabidulin-Codes, die für das FL-Kryptosystem berücksichtigt werden, sind, wie aus Tabelle 1 hervorgeht, vergleichsweise kurz, was es ermöglicht, alle möglichen Fehler-Pattern mit δ Zeilen- und/oder Spaltenauslöschungen auszuprobieren, welche die Bedingung in Gleichung (10) für die meisten Parameter erfüllen. Der Algorithmus
1 kann parallelisiert werden, um die Laufzeit des Angriffs zu verringern.
-
Der Algorithmus 1 wird als erfolgreich erachtet, wenn der Algorithmus x̂(1) und z(1) ausgibt, also kein „Fehler“ vorliegt. Dies bedeutet, es existieren Auslöschungs-Pattern derart, dass durch das Hinzufügen von δ Zeilen- und/oder Spaltenauslöschungen die Bedingung der Gleichung (9) erfüllt ist.
-
Klassifizierung von unsicheren Schlüsseln bzw. Schlüsselpaaren
-
Das oben beschriebene Verfahren ermöglicht die Klassifikation einiger Familien, welche schwache Schlüsselpaare aufweisen, insbesondere in Bezug auf den korrespondierenden Fehlervektor z, die verwundbar gegen Schlüssel-Wiederherstellungsangriffe der oben gezeigten Art sind.
-
Die in Gleichung (3) beschriebene invertierbare Matrix
kann derart aufgeteilt werden, dass gilt
mit Matrizen
welche jeweils vollen Rang aufweisen. Entsprechend der Gleichung (3) ergibt sich, dass
-
Da P
1 einen vollen Rang aufweist, kann eine Dekomposition erfolgen zu
wobei
vom vollen Rang ist und
eine Permutationsmatrix darstellt. Es werden lediglich Spaltenauslöschungs-Angriffe vorgenommen, d.h. δ = p, und es werden die schwachen Schlüssel durch die Struktur der Matrix
Q beschrieben. Durch eine Schreibweise der Gleichung (11) über dem endlichen Erweiterungskörper
erhält man ähnliche Argumente über den Zeilen von s
(1) unter der Berücksichtigung, dass das Auslöschen von Zeilen in der Matrixrepräsentation von z äquivalent zum Auslöschen von Spalten der Transponierten von z ist.
-
Es ist weiter zu berücksichtigen, dass die Zerlegung von P1 in Gleichung (12) grundsätzlich nicht eindeutig ist. Durch die Bezugnahme auf „schwache Schlüssel“ ist zu berücksichtigen, dass ein Schlüssel z durch eine Matrix P1 oder ein s(1) so konstruiert ist, dass eine Zerlegung der Gleichung (12) entweder für die Matrix P1 oder die Transponierte von s(1) existiert: Dies ergibt eine Matrix Q mit einer wie nachfolgend beschrieben Struktur:
- Fall 1: Das Rang-Gewicht entspricht dem Hamming-Gewicht
-
Wenn die Matrix
Q einer Matrix mit ausschließlich Null-Einträgen entspricht, d.h. Q = 0, dann ist das Rang-Gewicht von z gleich seinem Hamming-Gewicht, d.h. rk
q(z) = ω
H(z). Eine notwendige Bedingung für den erfindungsgemäßen Algorithmus
1, um erfolgreich zu sein, ist, dass ein Punktierungs-Pattern für die Spaltenauslöschungen bei einer bestimmten Iteration so gewählt ist, dass Gleichung (9) gilt. Mit S
ρ,1 wird ein Ereignis für eine spezifische Anzahl an Auslöschungen p bezeichnet, vorausgesetzt, dass der Fehlervektor z das Rang-Gewicht entsprechend dem Hamming-Gewicht hat. Für diesen speziellen Fall kann die Erfolgswahrscheinlichkeit Pr(S
p,1) zu
berechnet werden, wobei der Nenner die Anzahl von allen möglichen Auslöschungs-Patterns für ein gegebenes p und der Zähler die Summe der Zahl der Ereignisse ist, für welche i Fehler für Auslöschungen gehandhabt werden. Die maximale Anzahl von Fehlern für Auslöschungen, die behandelt werden kann, entspricht min(p, ω) und die minimale Anzahl von Fehlern, die für Auslöschungen gehandhabt werden kann, so dass Gleichung (9) gilt, ist
die durch das Einfügen der Beziehung ω' = ω - i in Gleichung (9) erhalten wird und nach i aufgelöst wird, unter der Verwendung der Definition von ξ, wie in Gleichung (8) gegeben. Die Erfolgsrate oder Wahrscheinlichkeit Pr(S
p,1) für die in der Publikation [5] vorgeschlagenen Parameter für eine 80 Bit-Sicherheit ist in
1 dargestellt.
-
Fall 2: Null-Reihen-Fehler-Pattern
-
Die Schwäche der Schlüssel, die durch eine Matrix mit Q = 0 beschrieben sind, kommt von der Tatsache, dass immer dann, wenn einer der ω nicht Null-Einträge im Fehlervektor z getroffen wird, der Rang von z um 1 reduziert wird. Die Anzahl dieser Ereignisse ist relativ hoch, wie z.B. der Zähler von Gleichung (13) zeigt, und verbleibt hoch, auch für Fehler-Pattern, die zerlegt werden können in einer Weise wie in Gleichung (12), welche eine Matrix
Q ergeben, die eine bestimmte Anzahl von Null-Reihen ergeben. Das Verhältnis zwischen der Anzahl von Null-Reihen in der Matrix
Q und die totale Anzahl an Reihen ω werden als η bezeichnet, d.h. η = N
0/ω, worin N
0 die Anzahl von Null-Reihen in der Matrix
Q ist. Für η = 1 liegt der Fall von z mit einem Rang-Gewicht vor, der seinem Hamming-Gewicht entspricht. Die Berechnung der exakten Erfolgswahrscheinlichkeit eines Angriffs unter Verwendung des erfindungsgemäßen Algorithmus
1 auf solche Schlüssel, bei denen η < 1 gilt, erscheint eine aufwändige Aufgabe zu sein, da sie ebenso von den verbleibenden nicht Null-Einträgen in der Matrix
Q abhängt. Nichtsdestotrotz kann eine untere Grenze für die Erfolgswahrscheinlichkeit, ähnlich dem Ausdruck in Gleichung (13), angegeben werden. Hierbei wird angenommen, dass nur Positionen im Fehlervektor z berücksichtigt werden, die einen Bezug zu den Null-Reiheneinträgen der Matrix
Q aufweisen und vorteilhaft zur Reduzierung des Rangs des Vektors z sind. Hier ist S
ρ,η das Ereignis, das für eine bestimmte Iteration des erfindungsgemäßen Algorithmus
1 für die Auswahl des rechts-punktierten Patterns mit p Spaltenauslöschungen gewählt wird, so dass Gleichung (9) gilt, wobei vorausgesetzt wird, dass der Fehlervektor z eine Matrix
Q mit ηω Null-Reihen enthält. Die Wahrscheinlichkeit von S
ρ,η ist dann nach unten begrenzt durch
-
Die Undurchlässigkeit dieser Grenze im Hinblick auf Simulationsergebnisse auf den Fehlervektor z mit unterschiedlichen Werten von η für ein Sicherheitslevel von 80 Bit unter Verwendung der Parameter wie in der Publikation [5] vorgeschlagen, ist in 2 dargestellt.
-
Das vorgeschlagene Verfahren zum Überprüfen der Sicherheit eines Schlüsselpaars auf ein FL-Kryptosystem basiert somit auf der Überlegung, die an sich bekannte GMD-Dekodierung von Rang-Metrik-Codes anzuwenden, um private Schlüssel von schwachen öffentlichen Schlüsseln zu gewinnen. Die privaten Schlüssel einiger schwacher öffentlicher Schüssel können dabei mit einem Aufwand gewonnen werden, der wesentlich geringer als das Sicherheitsniveau des Kryptosystems ist. Die Klassifikation aller schwachen Schlüssel, die durch den beschriebenen Angriff betroffen sind, ermöglicht vor der Verwendung eines zu verwendenden Schlüsselpaars mit Hilfe des beschriebenen Verfahrens eine Überprüfung auf seine Sicherheit.
-
3 zeigt einen Ablaufplan, der in schematischer Weise die iterativ wiederholten Schritte des erfindungsgemäß durchgeführtem Verfahren bis zum Erreichen eines Abbruchkriteriums illustriert. In einem Schritt
S1 (korrespondierend zu dem Schritt a)) erfolgt das Ermitteln eines geschätzten Codeworts x̂
(1)G aus dem öffentlichen Schlüssel
in dem eine Anzahl an Spalten und/oder Zeilen gelöscht sind, mit einem Dekoder Dec
G(·), der einen Fehlerlösch-Dekodieralgorithmus ausführt. In Schritt
S2 (korrespondierend zu dem Schritt b)) erfolgt das Ermitteln eines Fehlervektors z
(1) aus dem öffentlichen Schlüssel und dem geschätzten Codewort x̂
(1)G. In Schritt
S3 (korrespondierend zu dem Schritt c)) erfolgt die Überprüfung, ob der in Schritt
S2 (korrespondierend zu dem Schritt b)) ermittelte Fehlervektor z
(1) einen vorgegebenen Rang aufweist. In Schritt
S4 (korrespondierend zu dem Schritt d)) erfolgt das Markieren des Schlüsselpaars, das den in Schritt
S1 (a)) überprüften öffentlichen Schlüssel umfasst, als schwach, wenn die Überprüfung in Schritt
S3 (c)) positiv ist.
-
Die Schritte S1 bis S4 werden iterativ durchgeführt, wobei in Schritt S1 (a)) dem Dekoder in jeder Iteration der öffentliche Schlüssel mit einer unterschiedlichen Teilmenge der gelöschten Anzahl an Spalten und/oder Zeilen zugeführt wird. Das Verfahren kann optional iterativ für alle möglichen unterschiedlichen Teilmengen der gelöschten Anzahl an Spalten und/oder Zeilen durchgeführt werden. Der vorgegebene Rang des in Schritt S2 (b)) ermittelten Fehlervektors entspricht dabei dem Rang der Fehlervektoren des zu prüfenden Schlüsselpaars.
-
Referenzliste
-
- [1] R. L. Rivest, A. Shamir, and L. Adleman, „A Method for Obtaining Digital Signatures and Public-Key Cryptosystems," Communications of the ACM, vol. 21, no. 2, pp. 120-126, Feb. 1978.
- [2] P. W. Shor, „Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer," SIAM J. Comput., vol. 26, no. 5, pp. 1484- 1509, 1997.
- [3] C. Faure and P. Loidreau, „A New Public-key Cryptosystem based on the Problem of Reconstructing p-Polynomials," in Coding and cryptography. Springer, 2006, pp. 304-315.
- [4] D. Augot and M. Finiasz, „A Public Key Encryption Scheme based on the Polynomial Reconstruction Problem," in International Conference on the Theory and Applications of Cryptographic Techniques. Springer, 2003, pp. 229-240.
- [5] A. Wachter-Zeh, S. Puchinger, and J. Renner, „Repairing the Faure-Loidreau Public-Key Cryptosystem," in IEEE Int. Svmp. Inform. Theory (ISIT), Jun 2018.
- [6] P. Gaborit, A. Otmani, and H. T. Kalachi, „Polynomial-time Key Recovery Attack on the Faure-Loidreau Scheme based on Gabidulin codes," Designs, Codes and Cryptography, vol. 86, no. 7, pp. 1391-1403, 2018.
- [7] P. Loidreau and R. Overbeck, „Decoding Rank Errors Beyond the Error Correcting Capability," in International Workshop on Algebraic and Combinatorial Coding Theory (ACCT), Sep. 2006, pp. 186-190.
- [8] G. Forney, „Generalized Minimum Distance Decoding," IEEE Transactions on Information Theory, vol. 12, no. 2, pp. 125-131, 1966.
- [9] M. Bossert, E. Costa, E. Gabidulin, E. Schulz, and M. Weckerle, „Verfahren und Kommunikationsvorrichtung zum Dekodieren von mit einem Rang-Code codierten Daten,“ EP 1 521 371 A1 , 2003.
- [10] E. M. Gabidulin, „Theory of Codes with Maximum Rank Distance," Problemy Peredachi Informatsii, vol. 21, no. 1, pp. 3-16, 1985.
- [11] E. M. Gabidulin, A. V. Paramonov, and O. V. Tretjakov, „Rank Errors and Rank Erasures Correction," in 4th International Colloquium on Coding Theory, 1991.
- [12] G. Richter and S. Plass, „Error and Erasure Decoding of Rank-Codes with a Modified Berlekamp-Massey Algorithm," in International ITG Conference on Systems, Communications and Coding 2004 (SCC), 2004.
- [13] E. M. Gabidulin and N. I. Pilipchuk, „Error and Erasure Correcting Algorithms for Rank Codes," Designs, codes and Cryptography, vol. 49, no. 1-3, pp. 105-122, 2008.
- [14] D. Silva, „Error Control for Network Coding," Ph.D. dissertation, 2009.
- [15] D. Silva, F. R. Kschischang, and R. Koetter, „A Rank-Metric Approach to Error Control in Random Network Coding," IEEE transactions on information theory, vol. 54, no. 9, pp. 3951-3967, 2008.