LLL-Algorithmus

LLL-Algorithmus

Der LLL-Algorithmus ist ein nach Arjen Lenstra, Hendrik Lenstra und László Lovász benannter Algorithmus, der für ein Gitter eine Basis aus möglichst kurzen Vektoren berechnet. Diese Vektoren sind Approximationen für die kürzesten voneinander linear unabhängigen Vektoren des Gitters. Bei seiner Entdeckung war der LLL-Algorithmus der erste effiziente Gitterreduktionsalgorithmus.

Inhaltsverzeichnis

Kurze Gittervektoren

Eine Gitterbasis lässt sich als Matrix B = [b_1, \dots, b_n] \in \mathbb R^m angeben. Der kürzeste Gittervektor minimiert die Norm des Vektors \textstyle \sum_{i=1}^n t_i b_i, wobei t_1, \dots, t_n \in \mathbb Z nicht alle gleich 0 sind. Der LLL-Algorithmus führt diese Minimierung bezüglich der euklidischen Norm durch.

LLL-Basen

Definition

Üblicherweise werden LLL-Basen über ihre QR-Zerlegung B = QR definiert. Eine LLL-Basis B = QR zum Reduktionsfaktor \delta \in [0.25, 1] wird über folgende zwei Eigenschaften definiert:

  1. 2|r_{i, j}| \le r_{j, j}, 1 \le j < i \le n (Längenreduktion),
  2. \delta r_{i, i}^2 \le r_{i+1, i}^2 + r_{i+1, i+1}^2, 1 \le i < n (LLL-Eigenschaft)

Dabei sind ri,j die Einträge der Matrix R. Es wird angenommen, dass die QR-Zerlegung von B so durchgeführt wird, dass die Diagonale von R keine negativen Elemente enthält.

Der Reduktionsfaktor δ gibt die Stärke der Reduktion an: Je näher er an 1 liegt, desto kürzer sind die Vektoren der reduzierten Basis. Für δ = 1 ist nicht bekannt, ob es einen effizienten Algorithmus gibt.

Eigenschaften

LLL-reduzierte Basen approximieren die kürzesten Vektoren mit einem Approximationsfaktor, der exponentiell in der Anzahl der Vektoren ist. Im Folgenden sei \alpha := \tfrac1{\delta-\frac14}. Offensichtlich ist \alpha \ge \tfrac43. Der i-te LLL-reduzierte Vektor bi approximiert das i-te sukzessive Minimum auf folgende Weise: \tfrac{||b_i||^2}{\lambda_i^2} \le \alpha^{n-1}, wobei das i-te sukzessive Minimum die Länge des i-t kürzesten Vektors ist, der von keiner Menge kürzerer Vektoren linear abhängig ist.

Algorithmus

  1. Berechne die erste Spalte von R.
  2. Setze k: = 2 (k ist die Spalte, die gerade bearbeitet werden soll; die ersten k − 1 Spalten sind immer LLL-reduziert)
  3. Solange k \le n wiederhole: Berechne die k-te Spalte von R, längenreduziere sie (Algorithmus siehe unten). Prüfe, ob die LLL-Eigenschaft für die Spalten k − 1 und k erfüllt ist.
  4. Falls ja: Setze k: = k + 1
  5. Falls nein: Vertausche Spalten k − 1 und k, setze k: = max(k − 1,2).

Der Algorithmus folgt unmittelbar aus der Definition: Erzwinge Spalte für Spalte, dass B eine LLL-Basis ist. Längenreduktion lässt sich leicht herbeiführen. Lediglich die LLL-Eigenschaft ist kompliziert, weil sie indirekt weit voneinander entfernte Spalten in Beziehung bringt. Darum ist es nötig, Spalten zu vertauschen und wieder einen Schritt zurückzugehen.

Längenreduktion

Die Matrix R ist eine obere Dreiecksmatrix mit positiver Diagonale. Ziel der Längenreduktion ist es, alle Nicht-Diagonalelemente möglichst (betragsmäßig) klein zu machen, ohne das Gitter zu verändern. Jede Zeile von R hat folgenden Aufbau: null oder mehr Nullen, das Diagonalelement, null oder mehr weitere Elemente. Dabei besitzen die Nullen schon den kleinstmöglichen Betrag. Die LLL-Eigenschaft sorgt dafür, dass das Diagonalelement nicht allzu groß sein kann. Die Längenreduktion bewirkt nun für alle folgenden Elemente, dass sie betragsmäßig höchsten halb so groß wie das Diagonalelement sind. Das lässt sich dadurch herbeiführen, dass für jedes zu große Nicht-Diagonalelement die Spalte, die das entsprechende Diagonalelement enthält, so oft addiert oder subtrahiert wird, bis das zu große Element betragsmäßig minimal ist. Der folgende Algorithmus längenreduziert die k-te Spalte von R:

  1. Für i = k-1, \dots, 1 wiederhole:
  2. R_i := R_i - [\frac{r_{i,k}}{r_{k,k}}]

Dabei ist Ri der i-te Spaltenvektor von R und [\cdot] die Rundungsfunktion, die auf die nächste ganze Zahl rundet. Es ist wichtig, dass Schritt 2. mit fallendem und nicht mit steigendem i ausgeführt wird.

Literatur

Weblinks

  • Gitter und Kryptographie. Johann Wolfgang Goethe-Universität Frankfurt am Main, 5. Juni 2009 (Skript für die Vorlesungen von Prof. C. P. Schnorr, Sommersemester 2009).

Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • LLL — ist die Abkürzung für: L 3 Communications Corporation, ein US amerikanisches Internetdienstleister Lack Leder Latex, Sammelbegriff in erotischen Bereichen, siehe hierzu insbesondere Sexueller Fetischismus La Leche Liga, eine Non Profit… …   Deutsch Wikipedia

  • Euklidischer Algorithmus — Der euklidische Algorithmus ist ein Algorithmus aus dem mathematischen Teilgebiet der Zahlentheorie. Mit ihm lässt sich der größte gemeinsame Teiler zweier natürlicher Zahlen berechnen. Das Verfahren ist nach dem griechischen Mathematiker Euklid… …   Deutsch Wikipedia

  • Gitter (Mathematik) — Ausschnitt eines Gitters. Die blauen Punkte gehören zum Gitter. In der Mathematik sind Gitter in gewissem Sinne regelmäßige Mengen. Sie finden u. a. Anwendung in der Gruppentheorie, der Geometrie und bei Approximationsfragestellungen. Die… …   Deutsch Wikipedia

  • Gittertheorie — Ausschnitt eines Gitters. Die blauen Punkte gehören zum Gitter. In der Mathematik sind Gitter in gewissem Sinne regelmäßige Mengen. Sie finden u. a. Anwendung in der Gruppentheorie und der Geometrie. Die einzelnen Elemente eines Gitters heißen… …   Deutsch Wikipedia

  • Gittervektor — Ausschnitt eines Gitters. Die blauen Punkte gehören zum Gitter. In der Mathematik sind Gitter in gewissem Sinne regelmäßige Mengen. Sie finden u. a. Anwendung in der Gruppentheorie und der Geometrie. Die einzelnen Elemente eines Gitters heißen… …   Deutsch Wikipedia

  • NTRUEncrypt — ist ein asymmetrisches Verschlüsselungsverfahren, das 1996 von den Mathematikern J. Hoffstein, J.Pipher und J.H. Silverman entwickelt wurde. Es basiert lose auf Gitterproblemen, die selbst mit Quantenrechnern als nicht knackbar gelten. Allerdings …   Deutsch Wikipedia

  • László Lovász — (* 9. März 1948 in Budapest) ist ein ungarischer Mathematiker, der vor allem für seine Arbeiten auf dem Gebiet der Kombinatorik und Graphentheorie bekannt ist …   Deutsch Wikipedia

  • Hendrik Lenstra — in Berkeley Hendrik Willem Lenstra Junior (* 16. April 1949 in Zaandam, Niederlande) ist ein niederländischer Mathematiker, der sich mit Zahlentheorie beschäftigt. Lenstra wurde 1977 an der Universität Amsterdam bei Frans Oort promoviert mit… …   Deutsch Wikipedia

  • Experimentelle Mathematik — Die Experimentelle Mathematik ist eine Disziplin der Mathematik, die zwischen der klassischen Mathematik und dem Rechnen mit dem Computer angesiedelt ist. Im Gegensatz zum wissenschaftlichen Rechnen, das der Lösung praktischer Probleme dient,… …   Deutsch Wikipedia

  • abc-Vermutung — Die abc Vermutung ist eine 1985 von Joseph Oesterlé und David Masser aufgestellte mathematische Vermutung. Dabei geht es um eine Eigenschaft von Tripeln zueinander teilerfremder natürlicher Zahlen, bei denen die dritte die Summe der beiden… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”