Post-Quanten-Kryptografie

Gitter-basierte Kryptografie

Gitter

Ein Gitter ist vergleichbar mit einem Vektorraum.

Definition:  

Ein Gitter L (engl.: lattice) besteht aus linear unabhängigen Vektoren a0, ..., an-1 und allen Kombinationen (= ganzzahligen Linear­kombinationen) dieser Vektoren

L  =  { z0·a0 +  ...  + zn-1·an-1   |  zi ∈ ℤ }

Die Vektoren a0, ..., an-1 sind Elemente eines m-dimensionalen Vektorraums, sie bilden eine Basis des Gitters L, ihre Anzahl n wird als Rang des Gitters L bezeichnet.

 

Beispiel:  Die Vektoren a0  =  (1,2) und a1 = (3,1) und alle Kombinationen dieser beiden Vektoren bilden ein Gitter L. Eine Kombination der beiden Vektoren a0 und a1 ist zum Beispiel der Vektor

t  =  3·(1,2) + (-1)·(3,1)  =  (3,6) – (3,1)  =  (0,5)

In diesem Beispiel ist m = n = 2.

Das folgende Bild 1 zeigt einen Ausschnitt dieses Gitters. Es ist eingebettet in den Raum ℤ2, hier als Karopapier dargestellt. Die Vektoren des Gitters L sind als dicke Punkte dargestellt. Der Vektor t ist rot dargestellt.

 

Bild 1: Gitter mit Basisvektoren (1,2) und (3,1) 

Bild 1: Gitter mit Basisvektoren (1,2) und (3,1)

 

In krypto­grafischen Anwendungen sind die Vektoren ai Elemente von ℤqm, also m-Tupel mit Komponenten aus ℤq, wobei q eine Primzahl oder eine Zweierpotenz ist. Die Vektoren werden als Spalten­vektoren geschrieben. Die n Basis­vektoren eines Gitters lassen sich als m×n-Matrix

A  =  [a0 ... an-1]

schreiben.

Beispiel:  Ein Gitter L vom Rang 3 wird erzeugt von n = 3 Basis­vektoren a0, a1, a2 der Dimension m = 5 mit Komponenten aus ℤ17. Die entsprechende 5×3-Matrix A lautet

A  =  eckige Klammer auf
5108
218
12123
11416
1276
eckige Klammer zu

Einen beliebigen Punkt t in einem Gitter L stellen Sie als Kombination der Basis­vektoren a0, ..., an-1 dar, indem Sie geeignete Koeffizienten s0, ..., sn-1  ∈  ℤq wählen:

s0·a0 +  ...  + sn-1·an-1  =  t

 

In Matrix­schreibweise lautet die Darstellung

A · s  =  t

Hierbei bilden Sie die Matrix A aus den Basis­vektoren, den Vektor s aus den Koeffizienten s0, ..., sn-1 und den Vektor t aus den Koordinaten des Punkts t.

Beispiel:  Mit der Matrix A aus dem vorherigen Beispiel und Koeffizienten s0 = -2, s1 = 1, s2 = 1 erhalten Sie beispiels­weise den folgenden Punkt t des Gitters. Beachten Sie, dass die Berechnungen modulo q = 17 durchgeführt werden, denn der zugrunde liegende Ring (bzw. hier Körper) ist ℤ17.

A · s   =  eckige Klammer auf
5108
218
12123
11416
1276
eckige Klammer zu
· eckige Klammer auf
-2
1
1
eckige Klammer zu
  =    eckige Klammer auf
8
5
8
15
6
eckige Klammer zu
  =   t

Wie finden Sie geeignete Koeffizienten s0, ..., sn-1, wenn Sie einen bestimmten Punkt t des Gitters als Kombination der Basis­vektoren a0, ..., an-1 darstellen wollen? Dies läuft auf die Lösung eines linearen Gleichungs­systems hinaus. Angenommen, Sie kennen die Werte für s0, ..., sn-1 in obigem Beispiel nicht. Sie lösen dann beliebige 3 von den 5 Gleichungen mit den 3 Unbekannten s0, s1, s2, standard­mäßig mit dem gaußschen Eliminations­verfahren.

 

Noise

Ein Gleichungs­system mit n Unbekannten zu lösen ist leicht, auch wenn n sehr groß ist. Schwer wird es dann, wenn Sie einen zusätzlichen Fehlervektor (engl.: error vector) e mit Komponenten ei ∈ {-1, 0, 1} addieren, auch als Rauschen (engl.: noise) bezeichnet.

A · s  +  e  =  t

Für das Beispiel oben gilt dann: Je nach dem, welche 3 von den 5 Gleichungen mit 3 Unbekannten Sie lösen, erhalten Sie unterschiedliche Lösungen – insgesamt also keine konsistente Lösung des gesamten Gleichungs­systems. Dies liegt daran, dass der resultierende Vektor t kein Punkt des Gitters ist. Er liegt aber nahe an einem Punkt des Gitters – nahe an welchem, ist schwer zu entscheiden (closest vector problem – CVP).

Auf diese Weise erhalten Sie das sogenannte Learning-With-Errors-Problem (LWE):

Definition:  (LWE-Problem)

Gegeben ist eine Matrix A von n Basis­vektoren ai ∈ ℤqm und ein Punkt t ∈ ℤqm.

Gesucht ist der Lösungs­vektor s ∈ ℤqn des Gleichungs­systems

A ·s + e  =  t

wobei e ein unbekannter Fehlervektor ist.

 

Der Begriff "Learning", also "Lernen", entstammt dem Bereich des maschinellen Lernens. Dort geht es vielfach darum, aus Beispielen zu lernen, also eine gemeinsame Struktur daraus abzuleiten. Beim LWE-Problem besteht diese Struktur aus den ursprüng­lichen Gleichungen, und die Beispiele sind die durch den Fehlervektor e verrauschten ursprüng­lichen Gleichungen.

Literatur

Die hier gewählte Darstellung folgt dem Buch

[PPG 24]   C. Paar, J. Pelzl, T. Güneysu: Understanding Crytography. 2. Auflage, Springer (2024)

 

Weiter mit:   [LWE-Verschlüsselung]

 


H.W. Lang   mail@hwlang.de   Impressum   Datenschutz
Created: 29.01.2025   Updated: 20.05.2026
Diese Webseiten sind größtenteils während meiner Lehrtätigkeit an der Hochschule Flensburg entstanden