NTRUEncrypt

NTRUEncrypt

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 ist NTRUEncrypt bisher nicht so gut untersucht wie gebräuchlichere Verfahren (z.B. RSA).

Der Algorithmus ist in den USA patentiert; die Patente laufen im Jahr 2021 aus[1]. NTRUEncrypt ist durch IEEE P1363.1 standardisiert. Eingesetzt wird es z.B. von den US-Firmen WiKID [2], Echosat [3] und yaSSL[4].

Inhaltsverzeichnis

Beschreibung des Verfahrens

Es wird im folgenden lediglich der Kernalgorithmus beschrieben. Dieser ist für sich alleine genommen anfällig gegenüber bestimmten Angriffen; siehe den Abschnitt „Vor- und Nachbearbeitung“.

Alle Berechnungen finden, soweit nicht anders vermerkt, im Ring R = \Z_q[X]/(X^N-1) statt, d.h. der Grad des Polynoms übersteigt nie N. Die Multiplikation „*“ ist eine zyklische Faltung modulo q: Das Produkt zweier Polynome f = [f_0, f_1, \ldots, f_{N-1}] und g = [g_0, g_1, \ldots, g_{N-1}] ist f*g = \sum_{i+j \equiv k \mod N}f_i \cdot g_j \mod q.

Schlüsselerzeugung

  1. Wahl der Parameter N,p,q mit q > p,ggT(p,q) = 1.
  2. Wahl eines zufälligen Polynoms f, dessen Koeffizienten in {-1, 0, 1} liegen. Die Inversen fp (das Inverse modulo p) und fq (das Inverse modulo q) müssen existieren.
  3. Erzeugung eines Zufallspolynoms g, dessen Koeffizienten in {-1, 0, 1} liegen.
  4. h \equiv f_q * g \mod q ist der öffentliche Schlüssel, f der geheime Schlüssel. (Zur schnelleren Entschlüsselung kann auch fp mit in den geheimen Schlüssel aufgenommen werden.)

Verschlüsselung

  1. Umwandlung des Klartexts in ein Polynom m.
  2. Wahl eines zufälligen Polynoms r mit kleinen Koeffizienten.
  3. Das Polynom e \equiv pr*h+m \mod q ist der Geheimtext.

Entschlüsselung

  1. Berechnung von a \equiv f*e \mod q mit Wahl der Repräsentanten der Koeffizienten von a im Intervall [ − q / 2,q / 2).
  2. Berechnung von c \equiv f_p*a \mod p.
  3. Durch Umwandlung des Polynoms c in die Textdarstellung ergibt sich der Klartext.

Korrektheit

Für das Polynom a gilt: a \equiv f*e \equiv f*pr*h + f*m \mod q = f*pr*f_q*g + f*m \mod q = pr*g + f*m \mod q. Weil die Koeffizienten alle klein sind, gibt diese Gleichung auch im Ring R. Deshalb wird im zweiten Schritt c = f_p*pr*g + f_p*f*m \mod p = m \mod p korrekt berechnet.

Effizienz

Um die Multiplikation zu beschleunigen, können die Polynome f und g so gewählt werden, dass viele Koeffizienten Null sind. Dazu werden Parameter df,dg gewählt und bei der Wahl von f werden df Koeffizienten gleich 1, df − 1 Koeffizienten gleich -1 und der Rest gleich 0 gesetzt. Bei der Wahl von g werden dg Koeffizienten gleich 1, dg − 1 Koeffizienten gleich -1 und der Rest gleich 0 gesetzt (Bem.: Die Anzahl Einsen muss ungleich der Anzahl Minus-Einsen sein, weil das Polynom sonst nicht invertierbar ist).

Die Entschlüsselung lässt sich effizienter bewerkstelligen, wenn man das Polynom f nach der Formel f=1+p \cdot f_{1} mit f_1 \in \Z_p[X] bildet. Da dann f_{p}^{-1}=1 gilt, entfällt die Berechnung der Inversen modulo p. Es ist jedoch darauf bei der Parameterwahl zu achten, dass das gewünschte Maß an Sicherheit erhalten bleibt, da ein Angreifer nun die Menge der f1 durchsuchen kann.[5]

Weiterhin besteht zur Beschleunigung der Multiplikation die Möglichkeit, das Polynom f nach der Formel f(x) = 1 + p(f1(x) * f2(x) + f3(x) zu bilden, wobei f1, f2 und f3 sehr dünn besetzt sein können[5]. An die Stelle des Parameters df treten dann die drei Parameter df1, df2 und df3. Die Effizienzsteigerung ergibt sich dadurch, dass df1 + df2 + df3 < df gilt (f1 * f2 + f3 aber dennoch genügend Koeffizienten ungleich null hat) und deshalb mit f1 * f2 + f3 schneller als mit f multipliziert werden kann.

Schließlich kann p statt einer Primzahl auch als Polynom gewählt werden, wobei p(x) = x + 2 die günstigste Wahl ist[5]. Diese Variante taucht aber nur in der älteren Literatur auf.

Sicherheit

Es gibt für NTRUEncrypt keinen formalen Sicherheitsbeweis wie für andere kryptographische Verfahren, dennoch wird das Verfahren für hinreichend große Parameter für sicher gehalten. Anfang 2011 erschien eine Arbeit der Kryptologen Damien Stehlé und Ron Steinfeld, in der ein Sicherheitsbeweis für eine abgewandelte Form von NTRUEncrypt geführt wird.[6]

Es sind verschiedene Angriffe auf NTRUEncrypt möglich. Der simpelste davon ist das Durchprobieren aller Polynome f, die für die Parameter N und df in Frage kommen. Ein effektiverer Angriff ist der Hälftenangriff (engl. Meet-in-the-middle-Attack), bei dem statt eines Polynoms der vollen Länge N zwei Polynome mit nur N / 2 Koeffizienten gleichzeitig durchprobiert werden. Dadurch benötigt dieser Angriff nur die Quadratwurzel der Anzahl der Schritte, die beim primitiven Durchprobieren ausgeführt werden. Noch effektiver ist eine Gitterreduktion, z.B. mittels des LLL-Algorithmus'.

Vor- und Nachbearbeitung

Der NTRUEncrypt-Kernalgorithmus bietet keine Sicherheit gegenüber Angreifern, die die Daten nach der Verschlüsselung manipulieren. Behoben wird dies durch das Beifügen von Kontrolldaten bei der Verschlüsselung, anhand derer der Empfänger manipulierte Chiffretexte erkennen kann.

Es sind drei solcher Verfahren bekannt. SVES-1 und SVES-2 sind älter und gegen Angriffe, die Entschlüsselungsfehler ausnutzen, anfällig[7]. SVES-3 behebt diese Schwächen und ist im P1363.1-Standard unter der Bezeichnung SVES beschrieben.

Parameter mit 256 Bit Sicherheitsniveau

Ursprünglich wurden für die Länge von N Werte zwischen 167 und 503 empfohlen, nach dem Bekanntwerden diverser Angriffe wurden die Empfehlungen aber entsprechend angepasst. Die folgenden Parameter werden allen derzeit bekannten (Stand 9/2011) Angriffen gerecht:

Bezeichnung N p q df dg
Geringste Schlüssellänge EES1087EP2 1087 3 2048 120 362
Mittlere Schlüssellänge, mittlere Dauer EES1171EP1 1171 3 2048 106 390
Geringste Ver- und Entschl.dauer EES1499EP1 1499 3 2048 79 499

Einzelnachweise

  1. US-Patent 7.031.468, läuft nach der 20jährigen Spanne am 24. August 2021 ab
  2. WiKID-Authentifizierungsgeräte
  3. Artikel über NTRU in Networkworld vom 20. April 2011
  4. Die kommerzielle TLS-Implementierung CyaSSL
  5. a b c Hoffstein u. Silverman: Optimizations for NTRU
  6. Damien Stehlé and Ron Steinfeld: Making NTRU as Secure as Worst-Case Problems over Ideal Lattices. (http://perso.ens-lyon.fr/damien.stehle/downloads/ntruenc.pdf).
  7. The impact of decryption failures on the security of NTRU encryption

Weblinks


Wikimedia Foundation.

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

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

  • NTRUEncrypt — (аббревиатура Nth degree TRUncated polynomial ring или Number Theorists aRe Us)  это криптографическая система с открытым ключом, ранее называвшаяся NTRU. Криптосистема NTRUEncrypt, основанная на решётчатой криптосистеме (англ.),… …   Википедия

  • NTRUEncrypt — The NTRUEncrypt public key cryptosystem, also known as the NTRU encryption algorithm, is a lattice based alternative to RSA and ECC and is based on the shortest vector problem in a lattice (i.e. is not breakable using quantum computers).… …   Wikipedia

  • NTRUEncrypt — Le système de cryptographie asymétrique NTRUEncrypt, aussi connu comme l algorithme NTRUEncrypt, est une alternative a RSA et ECC basé sur les réseaux et sur le problème du plus court vecteur (c est à dire qu il n est pas cassable par un… …   Wikipédia en Français

  • NTRU — is an asymmetric (public/private key) cryptosystem. It has two characteristics that make it interesting as an alternative to RSA and Elliptic Curve Cryptography; speed and quantum computing resistance. There are two NTRU based algorithms:… …   Wikipedia

  • NTRUSign — NTRUSign, also known as the NTRU Signature Algorithm, is a public key cryptography digital signature algorithm based on the GGH signature scheme. It was first presented at the rump session of Asiacrypt 2001 and published in peer reviewed form at… …   Wikipedia

  • Public-key cryptography — In an asymmetric key encryption scheme, anyone can encrypt messages using the public key, but only the holder of the paired private key can decrypt. Security depends on the secrecy of that private key …   Wikipedia

  • NTRU Cryptosystems, Inc. — Ntru Cryptosystems, Inc. is a provider of embedded security solutions. It was founded in 1996 by Joseph H. Silverman, Jeffrey Hoffstein, Jill Pipher and Daniel Lieman, four mathematicians at Brown University. In 2009, the company was acquired by… …   Wikipedia

  • Шифрование — Шифрование  преобразование информации в целях сокрытия от неавторизованных лиц, с предоставлением, в это же время, авторизованным пользователям доступа к ней. Главным образом, шифрование служит задаче соблюдения конфиденциальности… …   Википедия

  • NTRUSign — ist ein digitales Signaturverfahren, das 2003 entwickelt wurde[1]. Es basiert auf dem Goldreich Goldwasser Halewi Signaturverfahren und ist der Nachfolger des unsicheren NSS Verfahrens. Es ist mit NTRUEncrypt verwandt. Inhaltsverzeichnis 1… …   Deutsch Wikipedia

  • Elliptic curve cryptography — (ECC) is an approach to public key cryptography based on the algebraic structure of elliptic curves over finite fields. The use of elliptic curves in cryptography was suggested independently by Neal Koblitz[1] and Victor S. Miller[2] in 1985.… …   Wikipedia

Share the article and excerpts

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