Gitter und Kryptographie - Goethe-Universität
Gitter und Kryptographie - Goethe-Universität
Gitter und Kryptographie - Goethe-Universität
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
98 KAPITEL 11. KOMPLEXITÄT, N P-VOLLSTÄNDIGKEIT<br />
3. {0, 1}-Integer-Programming:<br />
{0, 1}-IP :=<br />
{<br />
(m, n, A, b)<br />
∣<br />
A ∈ Z m×n , b ∈ Z m ,<br />
∃x ∈ {0, 1} n : Ax ≤ b<br />
}<br />
4. Schwache Zerlegung:<br />
{<br />
(n, a 1 , . . . , a n ) ∈ N n+1 ∣ ∣∣∣∣<br />
∃ (x 1 , . . . , x n ) ∈ {0, ±1} n \ {0 n } :<br />
}<br />
n∑<br />
a i x i = 0<br />
Beweis. Für 1,2,3 siehe [GaJo79][SS76], für 4 siehe [EB81]. Den Nachweis, daß es für die Sprache<br />
Integer-Programming polynomiell lange Zeugen gibt, also IP ∈ N P, werden wir in Satz 11.2.6<br />
führen.<br />
<br />
Satz 11.2.6 (von zur Gathen, Sieveking 1978)<br />
IP ∈ N P.<br />
Beweis. Wir wählen als Zeugen für (m, n, A, b) ∈ IP ein geeignetes x ∈ Z n mit Ax ≤ b. Offenbar<br />
existiert x genau dann, wenn (m, n, A, b) ∈ IP. Wir müssen noch zeigen, daß der Zeuge polynomielle<br />
Länge hat.<br />
Sei A =: (a ij ) ij <strong>und</strong> b =: (b 1 , . . . , b m ) T . Setze M := max i,j {|a ij | , |b i |}. Nach [GaSi78] gilt:<br />
(∃x ∈ Z n : Ax ≤ b) ⇐⇒ ( ∃x ∈ Z n : Ax ≤ b, ‖x‖ ∞<br />
≤ (n + 1)n n 2 M<br />
n )<br />
Die obere Schranke von ‖x‖ ∞<br />
impliziert, daß die Länge des Zeugen x polynomiell in der Länge<br />
von A <strong>und</strong> b beschränkt ist. Wegen l(m, n, A, b) ≥ nm + log 2 M gilt:<br />
l(x) = O ( n 2 (log n + log M ) = O ( l(m, n, A, b) 3)<br />
Wir definieren die Begriffe, die elementar für die weiteren Kapitel sind:<br />
i=1<br />
<br />
Definition 11.2.7 (<strong>Gitter</strong>, Basis, Dimension, Rang)<br />
Seien b 1 , . . . , b n ∈ R m linear unabhängige Vektoren. Wir nennen die additive Untergruppe<br />
L(b 1 , . . . , b n ) :=<br />
{<br />
n∑<br />
n<br />
∣ }<br />
∑ ∣∣∣∣<br />
b i Z = t i b i t 1 , . . . , t m ∈ Z<br />
i=1<br />
des R m ein <strong>Gitter</strong> mit der Basis b 1 , . . . , b n . Ist die Reihenfolge der Basisvektoren fest, sprechen<br />
wir von einer geordneten Basis. Der Rang oder auch die Dimension des <strong>Gitter</strong>s ist Rang(L) := n.<br />
i=1<br />
Betrachten wir ein Beispiel:<br />
Beispiel 11.2.8 (<strong>Gitter</strong>)<br />
Z m ist ein <strong>Gitter</strong> vom Rang m, die Einheitsvektoren bilden eine Basis. Zur Matrix A ∈ M m,n (Z)<br />
ist {x ∈ Z n | Ax = 0} ein <strong>Gitter</strong> vom Rang n − Rang(A); nach Satz 11.2.4 können wir in Polynomialzeit<br />
eine Basis konstruieren.<br />
⋄<br />
Wir versuchen, durch <strong>Gitter</strong>reduktion einen kürzesten, nicht-trivialen <strong>Gitter</strong>vektor zu finden.<br />
Im Fall der sup-Norm ist dies unter der Annahme P ≠ N P nicht immer effizient möglich: