Cryptography Reference
In-Depth Information
Mathematische Grundlagen
Die Funktionsweise von NTRU lässt sich mithilfe mathematischer Strukturen
erklären, die man als
Gitter
bezeichnet. Die meisten Beschreibungen des Verfah-
rens beginnen daher mit einer Einführung in die Gittertheorie. Ich folge dagegen
an dieser Stelle der originalen Beschreibung von NTRU aus der Arbeit von Hoff-
stein, Pipher und Silverman, die ohne die Betrachtung von Gittern auskommt.
In NTRU spielen Polynome der Form
f
(
x
)=
a
n-1
x
n-1
+
a
n-2
x
n-2
+...+
a
1
x
+
a
0
eine
Rolle. Die Koeffizienten
a
i
sind natürliche Zahlen, mit denen modulogerechnet
wird. Werden zwei Polynome miteinander multipliziert und entsteht dabei ein
Polynom vom Grad
n
oder größer, dann erfolgt eine Reduzierung (»Abschnei-
den«) in Form einer Teilung durch das Polynom
x
n
-1. Dieses Vorgehen, das dem
Verfahren seinen Namen gab, lässt sich vereinfacht so ausdrücken: Durch eine
Multiplikation entsteht immer ein Polynom vom Grad
n
-1 oder niedriger. Außer-
dem benötigen wir für die Nutzung von NTRU noch eine kleine natürliche Zahl
p
und eine deutlich größere natürliche Zahl
q
. Typische Werte sind
n
=503,
p
=3
und
q
=256.
Neben der Multiplikation zweier Polynome gibt es auch eine Teilung (Poly-
nomdivision). Diese funktioniert jedoch nur, wenn zum Polynom
f
, das als Teiler
dient, ein inverses Polynom
f
-1
existiert, für das gilt:
f
·
f
-1
= 1. Diese Bedingung ist
zwar nicht immer erfüllt, doch es gibt für unsere Zwecke ausreichend viele inver-
tierbare Polynome, die zudem leicht zu ermitteln sind.
Funktionsweise von NTRU
Der öffentliche NTRU-Schlüssel wird wie folgt berechnet: Alice wählt zwei Poly-
nome
f
und
g
, wobei
f
invertierbar sein muss, und berechnet daraus das Polynom
h
nach folgender Formel:
h
=
g
/
f
(mod
q
)
h
ist Alices öffentlicher Schlüssel,
f
(bzw.
f
-1
) der private. Man kann zeigen, dass
unter den gegebenen Rahmenbedingungen
g
und
f
eindeutig bestimmt sind, wenn
h
und
q
gegeben sind (wäre es nicht so, dann gäbe es zu einem öffentlichen
Schlüssel mehrere private, was nicht erwünscht ist). Die Formel, nach der
h
berechnet wird (Teilen zweier Polynome modulo
q
), gilt als Einwegfunktion.
Wäre dies nicht der Fall, dann wäre das Verfahren leicht zu knacken. Wie bei
anderen asymmetrischen Verfahren ist diese Einwegfunktion-Eigenschaft jedoch
nicht bewiesen, sondern nur eine begründete Vermutung.
Zur Verschlüsselung benötigt Bob zunächst Alices öffentlichen Schlüssel
h
.
Seine Nachricht
m
kodiert er als Polynom. Außerdem generiert er ein zufälliges
Polynom
b
, das als
Blendpolynom
bezeichnet wird (einen zufälligen Bestandteil
gibt es auch bei DSA und ElGamal, jedoch nicht bei RSA). Die Verschlüsselung
erfolgt nach folgender Formel: