DE102019200402B3 - Verfahren zum Überprüfen der Sicherheit eines Schlüsselpaars eines auf algebraischen Codes basierenden kryptographischen Systems - Google Patents

Verfahren zum Überprüfen der Sicherheit eines Schlüsselpaars eines auf algebraischen Codes basierenden kryptographischen Systems Download PDF

Info

Publication number
DE102019200402B3
DE102019200402B3 DE102019200402.4A DE102019200402A DE102019200402B3 DE 102019200402 B3 DE102019200402 B3 DE 102019200402B3 DE 102019200402 A DE102019200402 A DE 102019200402A DE 102019200402 B3 DE102019200402 B3 DE 102019200402B3
Authority
DE
Germany
Prior art keywords
error
rank
key
public key
key pair
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102019200402.4A
Other languages
English (en)
Inventor
Hannes Bartz
Thomas Jerkovits
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Deutsches Zentrum fuer Luft und Raumfahrt eV
Original Assignee
Deutsches Zentrum fuer Luft und Raumfahrt eV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Deutsches Zentrum fuer Luft und Raumfahrt eV filed Critical Deutsches Zentrum fuer Luft und Raumfahrt eV
Priority to DE102019200402.4A priority Critical patent/DE102019200402B3/de
Application granted granted Critical
Publication of DE102019200402B3 publication Critical patent/DE102019200402B3/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/134Non-binary linear block codes not provided for otherwise
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/005Countermeasures against attacks on cryptographic mechanisms for timing attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Error Detection And Correction (AREA)

Abstract

Die Erfindung beschreibt ein Verfahren zum Überprüfen der Sicherheit eines Schlüsselpaars eines auf algebraischen Codes basierenden kryptografischen Systems, insbesondere dem Faure-Loidreau-Kryptosystem. Das Schlüsselpaar umfasst einen öffentlichen Schlüssel zum Verschlüsseln einer Nachricht und einen privaten Schlüssel zum Entschlüsseln der Nachricht, wobei der öffentliche Schlüssel ein Codewort (G ∈ Gab [n, k]) eines verschachtelten Gabidulin-Codes umfasst. Das erfindungsgemäße Verfahren umfasst in einem Schritt a) das Ermitteln eines geschätzten Codeworts (x̂G) aus dem öffentlichen Schlüsselin dem eine Anzahl an Spalten und/oder Zeilen gelöscht sind, mit einem Dekoder (Dec(·)), der einen Fehlerlösch-Dekodieralgorithmus ausführt. In einem Schritt b) ist das Ermitteln eines Fehlervektors (ẑ) aus dem öffentlichen Schlüssel und dem geschätzten Codewort (x̂G) umfasst. In Schritt c) erfolgt die Überprüfung, ob der in Schritt b) ermittelte Fehlervektor (ẑ) einen vorgegebenen Rang aufweist. Schließlich wird in Schritt d) das Schlüsselpaar, das den in Schritt a) überprüften öffentlichen Schlüssel umfasst, als schwach markiert, wenn die Überprüfung in Schritt c) positiv ist.

Description

  • 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:
    1. 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;
    2. b) Ermitteln eines Fehlervektors aus dem öffentlichen Schlüssel und dem geschätzten Codewort;
    3. c) Überprüfung, ob der in Schritt b) ermittelte Fehlervektor einen vorgegebenen Rang aufweist;
    4. 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: 2 ξ δ n k ,
    Figure DE102019200402B3_0002
    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 F q
    Figure DE102019200402B3_0003
    ein endlicher Körper der Ordnung q und mit F q m
    Figure DE102019200402B3_0004
    der endliche Erweiterungskörper von F q
    Figure DE102019200402B3_0005
    des Grads m sind. Für eine ganze Zahl u > 1 wird ein endlicher Erweiterungskörper F q m u
    Figure DE102019200402B3_0006
    von F q m
    Figure DE102019200402B3_0007
    definiert, so dass gilt: F q F q m F q m u .
    Figure DE102019200402B3_0008
    Mit B = (β12, ...,βu) wird eine geordnete Basis von F q m u
    Figure DE102019200402B3_0009
    über F q m
    Figure DE102019200402B3_0010
    bezeichnet.
  • Die Menge von allen m × n Matrizen über F q
    Figure DE102019200402B3_0011
    wird durch F q m × n
    Figure DE102019200402B3_0012
    bezeichnet. Hierbei gilt per Definition: F q n = def F q 1 × n .
    Figure DE102019200402B3_0013
    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 F q m
    Figure DE102019200402B3_0014
    über F q
    Figure DE102019200402B3_0015
    gibt es eine bijektive Abbildung zwischen einem beliebigen Vektor a F q m n
    Figure DE102019200402B3_0016
    und einer korrespondierenden Matrix A F q m × n .
    Figure DE102019200402B3_0017
  • Der Rang rkq(a) des Vektors a F q m n
    Figure DE102019200402B3_0018
    wird definiert als der Rang der korrespondierenden Matrix A F q m × n ,
    Figure DE102019200402B3_0019
    so dass gilt: rk q ( a ) = def rk q ( A ) .
    Figure DE102019200402B3_0020
    Die Körperspur eines beliebigen Vektors α F q m u
    Figure DE102019200402B3_0021
    zum endlichen Erweiterungskörper F q m
    Figure DE102019200402B3_0022
    wird als Tr q m u / q m ( α )
    Figure DE102019200402B3_0023
    bezeichnet. Die Körperspur Tr q m u / q m ( α )
    Figure DE102019200402B3_0024
    wird verwendet, um eine Element-weise Körperspur eines Vektors a F q m u n
    Figure DE102019200402B3_0025
    zu bezeichnen.
  • Für einen gegebenen Vektor a F q m n
    Figure DE102019200402B3_0026
    und eine ganze Zahl r, ist die sog. Moore-Matrix definiert als M r ( a ) = def ( α 1 α 2 α n α 1 [ 1 ] α 2 [ 1 ] α n [ 1 ] α 1 [ r 1 ] α 2 [ r 1 ] α n [ r 1 ] ) ,
    Figure DE102019200402B3_0027
    wobei [ i ] = def q i
    Figure DE102019200402B3_0028
    die i-te Frobenius-Potenz bezeichnet.
  • Gabidulin -Codes
  • Die Rangdistanz dR zwischen zwei Matrizen A , B F q m × n
    Figure DE102019200402B3_0029
    mit korrespondierenden Vektoren a , b F q m n
    Figure DE102019200402B3_0030
    ist definiert als d R ( A , B ) = d R ( a , b ) = def rk q ( A B ) = rk q ( a b ) .
    Figure DE102019200402B3_0031
  • Ein linearer Rang-metrischer Code der Länge n ≤ m und Dimension k ist ein F q linearer
    Figure DE102019200402B3_0032
    Figure DE102019200402B3_0033
    Unterraum von F q m × n .
    Figure DE102019200402B3_0034
    Die minimale Rang-Distanz dR eines Rangmetrischen Codes der Länge n und der Dimension a ist nach oben durch die Singleton-Grenze (siehe [10]) begrenzt gemäß: d R n k + 1
    Figure DE102019200402B3_0035
  • 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 F q m
    Figure DE102019200402B3_0036
    wird definiert durch den F q m linearen
    Figure DE102019200402B3_0037
    Zeilenraum der Generatormatrix G = Mk(g), wobei g F q m n
    Figure DE102019200402B3_0038
    und rk q ( g ) = n
    Figure DE102019200402B3_0039
    gelten (siehe [10]). Gabidulin-Codes erfüllen die Gleichung (1) mit Gleichheit, d.h. sie weisen eine minimale Distanz dR = n - k + 1 auf und sind daher MRD-Codes.
  • Ein Rangfehler-Kanal verwendet eine Matrix X F q m × n
    Figure DE102019200402B3_0040
    als Eingangsinformation und gibt eine Matrix Y F q m × n
    Figure DE102019200402B3_0041
    aus, so dass gilt: Y = X + E, wobei die Fehlermatrix E F q m × n
    Figure DE102019200402B3_0042
    den Rang rkq(E) = t aufweist.
  • Neben t Rangfehlern kann die übertragene Matrix durch Zeilen- oder Spaltenauslöschungen korrumpiert sein (siehe [11]). Eine Matrix X F q m × n
    Figure DE102019200402B3_0043
    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 2 t + ρ + ε n k
    Figure DE102019200402B3_0044
    korrigieren können, was 0(n2) Operationen im endlichen Erweiterungskörper F q m
    Figure DE102019200402B3_0045
    erfordert, wie in den Veröffentlichungen [11, 12, 13, 14, 15] beschrieben ist. Es ist zu beachten, dass ε Spaltenauslöschungen in der Matrix X F q
    Figure DE102019200402B3_0046
    zu ε Symbolfehlern in dem korrespondierenden Vektor x F q m n
    Figure DE102019200402B3_0047
    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 F q m
    Figure DE102019200402B3_0048
    ist als das u-fache kartesische Produkt von einer (Komponente) des Gabidulin-Codes Gab [n, k] definiert, d.h. IGab [ u ; n , k ] def _ _ { ( c ( 1 ) c ( 2 ) c ( u ) ) : c ( j ) Gab [ n , k ] , j = j , , u } .
    Figure DE102019200402B3_0049
  • Ein verschachtelter Gabidulin-Code IGab [u; n, k] kann Rangfehler bis zu t u u + 1 ( n k )
    Figure DE102019200402B3_0050
    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 F q m u
    Figure DE102019200402B3_0051
    über dem endlichen Erweiterungskörper F q m
    Figure DE102019200402B3_0052
    kann ein u-fach verschachtelter Gabidulin-Code IGab [u; n, k] über dem endlichen Erweiterungskörper F q m
    Figure DE102019200402B3_0053
    als der F q m u
    Figure DE102019200402B3_0054
    lineare Zeilenraum der Generatormatrix G F q m k × n
    Figure DE102019200402B3_0055
    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 n k 2 < ω < n k
    Figure DE102019200402B3_0056
    erfüllt.
  • Die Erzeugung eines Schlüsselpaars, das einen privaten und einen öffentlichen Schlüssel umfasst, basiert auf den folgenden vier Schritten:
    1. 1. Es wird ein Vektor g F q m n
      Figure DE102019200402B3_0057
      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. 2. Es wird ein Vektor x F q m u k
      Figure DE102019200402B3_0058
      derart gewählt, dass die letzten u Positionen des Vektors x F q m linear
      Figure DE102019200402B3_0059
      unabhängig und zufällig sind.
    3. 3. Es wird ein Vektor s = ( s 1 s 2 s ω ) F q m u ω
      Figure DE102019200402B3_0060
      gewählt, so dass der Rang rkq(s) = ω zufällig ist.
    4. 4. Es wird eine zufällige invertierbare Matrix P F q n × n
      Figure DE102019200402B3_0061
      gewählt und z = ( s | 0 ) P 1
      Figure DE102019200402B3_0062
      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 kpub sowie tpub, d.h. der öffentliche Schlüssel setzt sich zusammen aus (g, k, kpub, tpub). Darin sind k pub = xG + z
    Figure DE102019200402B3_0063
    und t pub = n k ω 2
    Figure DE102019200402B3_0064
  • 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 m = ( m 1 m 2 m k u | 0 0 ) F q m k
    Figure DE102019200402B3_0065
    bezeichnet. Für die Verschlüsselung werden die folgenden Schritte durchgeführt:
    1. 1. Es wird zufällig ein Element a F q m u
      Figure DE102019200402B3_0066
      gewählt.
    2. 2. Es wird ein Vektor e F q m n
      Figure DE102019200402B3_0067
      mit zufälligem Rang rkq(e) ≤ tpub gewählt.
    3. 3. Es wird der Chiffretext c F q m n
      Figure DE102019200402B3_0068
      berechnet gemäß
    c = mG + Tr q m u / q m ( α k pub ) + e .
    Figure DE102019200402B3_0069
  • 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. 1. Es wird cP = mGP + Tr q m u / q m ( α k pub ) P + eP .
      Figure DE102019200402B3_0070
      Berechnet. Aufgrund der Formel F q m Linearität
      Figure DE102019200402B3_0071
      der Spur ergibt sich Tr q m u / q m ( α k pub ) P = Tr q m u / q m ( α x ) GP + ( Tr q m u / q m ( α s ) | 0 ) ,
      Figure DE102019200402B3_0072
      woraus folgt cP = ( m + Tr q m u / q m ( α x ) ) GP + ( Tr q m u / q m ( α s ) | 0 ) + eP .
      Figure DE102019200402B3_0073
    2. 2. G p '
      Figure DE102019200402B3_0074
      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 c ' = ( m + Tr q m u / q m ( α x ) ) G p ' + e '
      Figure DE102019200402B3_0075
      mit dem Rang r k q ( e ' ) t p u b = n k ω 2 .
      Figure DE102019200402B3_0076
      Da G p '
      Figure DE102019200402B3_0077
      eine Generatormatrix des Gabidulin-Codes Gab [n - ω, k] ist, kann e' aus obiger Formel entfernt werden, woraus sich ergibt m ' = m + Tr q m u / q m ( α x ) .
      Figure DE102019200402B3_0078
    3. 3. Aufgrund m = ( m 1 m 2 m k u | 0 0 u )
      Figure DE102019200402B3_0079
      ergibt sich, dass die letzten u Positionen von m' m i ' = Tr q m u / q m ( α x i ) , i = k u + 1, , k
      Figure DE102019200402B3_0080
      sind. Da X d e f _ _ ( k k u + 1 , , x k )
      Figure DE102019200402B3_0081
      eine geordnete Basis von F q m u
      Figure DE102019200402B3_0082
      über F q m
      Figure DE102019200402B3_0083
      bildet, kann α berechnet werden zu α = i = k u + 1 k Tr q m u / q m ( α x i ) x i = i = k u + 1 k m i ' x i
      Figure DE102019200402B3_0084
      worin X def _ _ ( x k u + 1 , , x k )
      Figure DE102019200402B3_0085
      die duale Basis von X bezeichnet. Hieraus kann schließlich der Klartext als m = m ' Tr q m u / q m ( α x )
      Figure DE102019200402B3_0086
      berechnet werden.
  • Schlüsselwiederherstellungsangriffe auf das FL-Kryptosystem
  • Wie einleitend beschrieben, haben Gaborit, Otmani und Kalachi gezeigt, dass ein alternativer privater Schlüssel k pub '
    Figure DE102019200402B3_0087
    in polynomialer Zeit aus dem öffentlichen Schlüssel kpub und der Generatormatrix G mit hoher Wahrscheinlichkeit ermittelt werden kann, wenn für den Rang ω des Fehlervektors gilt: ω u u + 1 ( n k )
    Figure DE102019200402B3_0088
  • Dies ist beispielsweise in der Publikation [6] beschrieben. Der Angriff kann nicht durch die Anpassung der Parameter verhindert werden, beispielsweise indem ω > u u + 1 ( n k )
    Figure DE102019200402B3_0089
    gewählt wird, da ω, wie aus Formel (5) hervorgeht, tpub reduziert, so dass ein Dekodierangriff möglich wird.
  • Für einen Angriff betrachtet man den öffentlichen Schlüssel kpub aus Gleichung (4), worin x F q m u k
    Figure DE102019200402B3_0090
    und z F q m u n
    Figure DE102019200402B3_0091
    mit Rang rkq (z) = ω gelten. Durch die Definition des öffentlichen Schlüssels k pub = i = 1 u k pub ( i ) β i , z = i = 1 u z ( i ) β i  und  x = i = 1 u x ( i ) β i
    Figure DE102019200402B3_0092
    kann der öffentliche Schlüssel ausgedrückt werden als ( k pub 1 k pub 2 k pub u ) = ( x ( 1 ) G x ( 2 ) G x ( u ) G ) + ( z ( 1 ) z ( 2 ) z ( u ) )
    Figure DE102019200402B3_0093
    worin x ( j ) F q m k  und  k pub ( j ) , z ( j ) F q m k
    Figure DE102019200402B3_0094
    mit dem Rang rkq(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 F q m
    Figure DE102019200402B3_0095
    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 rkq(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 z ( j ) = ( s ( 1 ) | 0 ) P 1 , j = 1, , u
    Figure DE102019200402B3_0096
    repariert werden, wobei s ( 1 ) F q m ω  und rk q ( s ( 1 ) ) = ω
    Figure DE102019200402B3_0097
    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 x = ( k pub z ) G ,
    Figure DE102019200402B3_0098
    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 P ˜
    Figure DE102019200402B3_0099
    F q n × n
    Figure DE102019200402B3_0100
    berechnet werden, wobei die Bedingung zP = ( s ˜ ( 1 ) | 0 )
    Figure DE102019200402B3_0101
    mit s ˜ ( 1 ) F q m ω
    Figure DE102019200402B3_0102
    und dem Rang rkq(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. k pub ( 1 ) = x ( 1 ) G + z ( 1 )
    Figure DE102019200402B3_0103
    mit dem Rang rk1(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 ω = rkq(z) derart gewählt ist, dass ω > (n - k)/2 erfüllt ist. Die Differenz zwischen dem Fehlerrang ω und dem eindeutigen Dekodierradius wird definiert als ξ def _ _ ω n k 2
    Figure DE102019200402B3_0104
  • 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 2 ω + + ρ n k
    Figure DE102019200402B3_0105
    korrigieren können, wie sich auch aus Gleichung (2) ergibt. Wird die Anzahl der Zeilen- und Spaltenauslöschungen als δ = ε + p definiert, ergibt sich 2 ω + δ n k .
    Figure DE102019200402B3_0106
    Durch das künstliche Einbringen von δ Zeilen- und/oder Spaltenauslöschungen in den Schlüssel k pub ( 1 )
    Figure DE102019200402B3_0107
    und damit den Fehlervektor z(1) wird ein neuer Fehlervektor z'(1) mit dem Fehlerrang ω ' def _ _ rk q ( z' ( 1 ) ) ω
    Figure DE102019200402B3_0108
    erhalten. Daher kann ein Fehler und Zeilen- und/oder Spaltenauslöschungs-Dekoder den Fehler z(1) ermitteln und eine Dekodierung vornehmen, wenn gilt 2 ω ' + δ n k
    Figure DE102019200402B3_0109
  • Unter Verwendung der Formeln (8) und (9) und dem Umstand, dass ω - δ ≤ ω' ≤ ω gilt, erhält man 2 ξ δ n k
    Figure DE102019200402B3_0110
  • 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 k pub ( 1 )
    Figure DE102019200402B3_0111
    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 x ^ ( 1 ) G x ( 1 ) G
    Figure DE102019200402B3_0112
    oder einen Dekodierfehler DecG(·) = ∅ zurück.
  • Die Menge δ
    Figure DE102019200402B3_0113
    an Zeilen- und/oder Spaltenauslöschungs-Patterns wird als δ def _ _ { ( a , b ) : a F 2 m , b F 2 n  mit  ω H ( a ) + ω H ( b ) = δ }
    Figure DE102019200402B3_0114
    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 Y F q m × n
    Figure DE102019200402B3_0115
    bezeichnet ε(a,b)(Y) den Zeilen- und/oder Spaltenauslöschungs-Operator, der die Matrix Y F q m × n
    Figure DE102019200402B3_0116
    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 y F q m n
    Figure DE102019200402B3_0117
    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: k pub ( 1 ) , G , ω , δ , N max .
    Figure DE102019200402B3_0118
    Der Algorithmus gibt die Vektoren x̂(1), z(1) mit dem Rang rkq (z(1)) = ω, der derart gewählt ist, dass x ^ ( 1 ) G + z ^ ( 1 ) = k pub ( 1 )
    Figure DE102019200402B3_0119
    erfüllt ist, zurück oder eine Markierung „Fehler“, wenn s = wahr ist.
    Figure DE102019200402B3_0120
  • 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 | δ | O ( n 2 )
    Figure DE102019200402B3_0121
    Operationen im erweiterten Körper F q m .
    Figure DE102019200402B3_0122
    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 P 1 F q n × n
    Figure DE102019200402B3_0123
    kann derart aufgeteilt werden, dass gilt P 1 = ( P 1 P 2 )
    Figure DE102019200402B3_0124
    mit Matrizen P 1 F q ω × n  und  P 2 F q ( n ω ) × n ,
    Figure DE102019200402B3_0125
    welche jeweils vollen Rang aufweisen. Entsprechend der Gleichung (3) ergibt sich, dass z ( 1 ) = s ( 1 ) P 1
    Figure DE102019200402B3_0126
  • Da P1 einen vollen Rang aufweist, kann eine Dekomposition erfolgen zu P 1 = A [ I ω × ω | Q ] B
    Figure DE102019200402B3_0127
    wobei A F q ω × ω
    Figure DE102019200402B3_0128
    vom vollen Rang ist und B F q n × n
    Figure DE102019200402B3_0129
    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 F q m
    Figure DE102019200402B3_0130
    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. rkq(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(Sp,1) zu Pr ( S ρ ,1 ) = i = ξ + ρ / 2 min ( ρ , ω ) ( ω i ) ( n ω ρ i ) ( n ρ )
    Figure DE102019200402B3_0131
    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 ξ + ρ / 2
    Figure DE102019200402B3_0132
    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(Sp,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. η = N0/ω, worin N0 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 Pr ( S ρ , η ) P ( ρ , η ) def _ _ i = ξ + ρ / 2 min ( ρ , ω η ) ( ω η i ) ( n ω η ρ i ) ( n ρ ) .
    Figure DE102019200402B3_0133
  • 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 k pub ( 1 )
    Figure DE102019200402B3_0134
    in dem eine Anzahl an Spalten und/oder Zeilen gelöscht sind, mit einem Dekoder DecG(·), 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.

Claims (12)

  1. Verfahren zum Überprüfen der Sicherheit eines Schlüsselpaars eines auf algebraischen Codes basierenden kryptografischen 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, wobei bei der Erzeugung des Schlüsselpaars verwendete Fehlervektoren (z(j) für j = 1, ..., u) derart gewählt sind, dass der Rang rkq(z(j)) für alle j Fehlervektoren gleich ist, und wobei der öffentliche Schlüssel ein Codewort (x(1)G E Gab[n,k]) eines verschachtelten Gabidulin-Codes umfasst, umfassend die folgenden Schritte: a) Ermitteln eines geschätzten Codeworts (x̂(1)G) aus dem öffentlichen Schlüssel k pub ( 1 )
    Figure DE102019200402B3_0135
    in dem eine Anzahl an Spalten und/oder Zeilen gelöscht sind, mit einem Dekoder (DecG(·)), der einen Fehlerlösch-Dekodieralgorithmus ausführt; b) Ermitteln eines Fehlervektors (z(1)) aus dem öffentlichen Schlüssel und dem geschätzten Codewort (x̂(1)G); c) Überprüfung, ob der in Schritt b) ermittelte Fehlervektor (z(1)) 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.
  2. Verfahren nach Anspruch 1, bei dem die Schritte a) bis d) iterativ durchgeführt wird, wobei in Schritt a) dem Dekoder in jeder Iteration der öffentliche Schlüssel k pub ( 1 )
    Figure DE102019200402B3_0136
    mit einer unterschiedlich Teilmenge der gelöschten Anzahl an Spalten und/oder Zeilen zugeführt wird.
  3. Verfahren nach Anspruch 2, bei dem die Schritte a) bis d) iterativ für alle möglichen unterschiedlichen Teilmengen der gelöschten Anzahl an Spalten und/oder Zeilen durchgeführt werden.
  4. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Löschen durch das Null-Setzen der Elemente der Anzahl an Spalten und/oder Zeilen durchgeführt wird.
  5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der vorgegebene Rang des in Schritt b) ermittelten Fehlervektors dem Rang der Fehlervektoren des zu prüfenden Schlüsselpaars entspricht.
  6. Verfahren nach einem der vorhergehenden Ansprüche, bei dem als Dekoder ein Gabidulin-Dekoder verwendet wird.
  7. Verfahren nach einem der vorhergehenden Ansprüche, bei dem in Schritt d) aus dem geschätzte Codewort (x̂(1)G) und einer rechts-inversen Matrix (G) einer Generatormatrix (G) ein Vektor (x̂(1)) ermittelt wird.
  8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Verfahren abgebrochen und das Schlüsselpaar als sicher markiert wird, wenn das geschätzte Codewort (x̂(1)G) in Schritt a) eine leere Menge liefert.
  9. Verfahren nach Anspruch 8, bei dem der Vektor (x̂(1)) zusammen mit dem Fehlervektor (z(1)) und der Markierungsinformation als Ergebnis ausgegeben wird.
  10. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Anzahl δ an maximal korrigierbaren Auslöschungen sich aus der Summe der Spaltenauslöschungen ε und Zeilenauslöschungen p und dem Fehlerrang ω ergibt, wobei sich der Überprüfungsbereich der Anzahl an Spalten und/oder Zeilenauslöschungen beschränkt auf: 2 ξ δ n k ,
    Figure DE102019200402B3_0137
    worin ξ die Differenz zwischen dem Fehlerrang ω und dem eindeutigen Dekodierradius sowie n eine Länge und k eine Komponenten-Codedimension eines Gabidulin-Codes (Gab[n, k]) sind.
  11. Verfahren nach einem der vorhergehenden Ansprüche, bei dem bei der Erzeugung des Schlüsselpaars verwendete Fehlervektoren (z(j) für j = 1, ..., u) derart gewählt sind, dass der Rang rkq(z(j)) für alle j Fehlervektoren gleich ist.
  12. Computerprogrammprodukt, das direkt in den internen Speicher eines digitalen Computers geladen werden kann und Softwarecodeabschnitte umfasst, mit denen die Schritte gemäß einem der vorhergehenden Ansprüche ausgeführt werden, wenn das Produkt auf einem Computer läuft.
DE102019200402.4A 2019-01-15 2019-01-15 Verfahren zum Überprüfen der Sicherheit eines Schlüsselpaars eines auf algebraischen Codes basierenden kryptographischen Systems Active DE102019200402B3 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102019200402.4A DE102019200402B3 (de) 2019-01-15 2019-01-15 Verfahren zum Überprüfen der Sicherheit eines Schlüsselpaars eines auf algebraischen Codes basierenden kryptographischen Systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019200402.4A DE102019200402B3 (de) 2019-01-15 2019-01-15 Verfahren zum Überprüfen der Sicherheit eines Schlüsselpaars eines auf algebraischen Codes basierenden kryptographischen Systems

Publications (1)

Publication Number Publication Date
DE102019200402B3 true DE102019200402B3 (de) 2020-03-26

Family

ID=69725366

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019200402.4A Active DE102019200402B3 (de) 2019-01-15 2019-01-15 Verfahren zum Überprüfen der Sicherheit eines Schlüsselpaars eines auf algebraischen Codes basierenden kryptographischen Systems

Country Status (1)

Country Link
DE (1) DE102019200402B3 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012139919A2 (en) * 2011-04-09 2012-10-18 Universität Zürich Method and apparatus for public-key cryptography based on error correcting codes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012139919A2 (en) * 2011-04-09 2012-10-18 Universität Zürich Method and apparatus for public-key cryptography based on error correcting codes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HORLEMANN-TRAUTMANN, A.-L.; MARSHALL, K.; ROSENTHAL, J.: Considerations for Rank-based Cryptosystems. IEEE International Symposium on Information Theory, 2016, S. 2544-2548. IEEE Xplore [online]. DOI: 10.1109/ISIT.2016.7541758, In: EPOQUENet *

Similar Documents

Publication Publication Date Title
DE102018108313A1 (de) Verfahren und Verarbeitungsvorrichtung zum Ausführen einer kryptografischen Operation auf Gitterbasis
DE60215332T2 (de) System und Verfahren zum Verabreiten eines gemeinsamen Geheimnisses
DE102011054410B4 (de) Vorrichtung und Verfahren zur Erzeugung einer Bitfolge
DE102012200197B4 (de) Vorrichtung und Verfahren zur Fehlerkorrektur und zum Schutz vor Datenverfälschung
DE102018122278A1 (de) Ausführen einer kryptographischen Operation
DE102019108095A1 (de) Ausführen einer kryptografischen Operation
DE102014215252B9 (de) Wirksame fehlerkorrektur von mehrbitfehlern
DE102016102590B4 (de) Datenverarbeitungseinrichtungen und verfahren zum rekonstruieren eines puf-werts
DE102019200402B3 (de) Verfahren zum Überprüfen der Sicherheit eines Schlüsselpaars eines auf algebraischen Codes basierenden kryptographischen Systems
DE102018200617B4 (de) Verfahren zum Dekodieren einer verschlüsselten Nachricht eines asymmetrischen kryptographischen Systems
DE102013219088B9 (de) Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
DE102019207941B4 (de) Verfahren zur effizienten Dekodierung übertragener Daten
DE102013201422B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/ oder beschädigter Daten
DE102018200616B4 (de) Asymmetrisches kryptographisches System und Verfahren zum Erzeugen eines öffentlichen Schlüssels für das asymmetrische kryptographische System
DE102022111624B4 (de) Fehlerkorrektur mit schneller Syndromberechnung
DE102014204828B4 (de) Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten
Jerkovits et al. Weak keys in the Faure–Loidreau cryptosystem
DE102018221399B4 (de) Asymmetrisches kryptographisches System und Verfahren zum Dekodieren einer verschlüsselten Nachricht
DE102022128556A1 (de) Verfahren und system zur fehlerkorrekturcodierung basierend auf verallgemeinerten verketteten codes mit eingeschränkten fehlerwerten für codebasierte kryptographie
EP0739107B1 (de) Public-Key-Verfahren zur Verschlüsselung von Daten
EP4170964B1 (de) Verfahren zur herstellung eines öffentlichen schlüsselsystems in einer qap-basierten homomorphen verschlüsselung
DE102014214451B4 (de) Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten
EP3089390B1 (de) Decodierungsverfahren und -vorrichtung für systemcode
DE102014218384B3 (de) Rückgewinnung eines binären Response-Musters von einem verrauschten Kanal
DE102022124546A1 (de) Produktautokodierer für eine Fehlerkorrektur mittels Unterstufenverarbeitung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final