NTRUSign

digitales Signaturverfahren

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, wird aber ebenfalls als unsicher betrachtet.

Beschreibung des Verfahrens Bearbeiten

Ebenso wie in NTRUEncrypt laufen auch NTRUSign die Berechnungen (mit Ausnahme der Division durch die Resultante) im Ring   ab, wobei die Multiplikation „*“ eine zyklische Faltung modulo   ist: Das Produkt zweier Polynome   und   ist  .

Es kann bei NTRUSign entweder das Standard- oder das transponierte Gitter zugrunde gelegt werden. Das transponierte Gitter hat den Vorteil, dass das Polynom   nur Koeffizienten in {-1, 0, 1} enthält und sich dadurch schneller multiplizieren lässt.

Weiterhin kann der Parameter  , die Zahl sogenannter Perturbationen, gewählt werden. Es hat sich allerdings herausgestellt, dass 0 Perturbationen unsicher und mehr als eine nicht notwendig sind, daher ist   in der Praxis immer gleich 1.

Außerdem sind die Größen   (Anzahl Polynomkoeffizienten),   (Modulus),   (Anzahl Koeffizienten = −1),   (Normkorrekturfaktor) und   (Normschranke) von Bedeutung.

Schlüsselerzeugung Bearbeiten

Es werden   sogenannte Basen erzeugt. Jede davon besteht aus 3 Polynomen, die mit   und   bezeichnet werden. Das Polynom   der ersten Basis bildet den öffentlichen Schlüssel, alle anderen Polynome sämtlicher Basen bilden zusammen den Privatschlüssel.

Basiserzeugung Bearbeiten

Es wird hier die Variante nach Hoffstein et al.[2] beschrieben. Im EESS-Standard[3] findet die Invertierung der Polynome   und   nicht in  , sondern in   statt. Dadurch kommt man zwar ohne Kommazahlen aus und erhält „bessere“ (normkleinere) Polynome F und G, muss aber zusätzlich eine aufwändige Resultantenberechnung durchführen.

Zur Generierung einer Basis   geht man wie folgt vor:

  1. Wahl eines zufälligen Polynoms  , dessen Koeffizienten in {-1, 0, 1} liegen und das modulo   invertierbar ist.
  2. Wahl eines zufälligen Polynoms  , dessen Koeffizienten in {-1, 0, 1} liegen und das modulo   invertierbar ist.
  3. Resultante   von   und ein Polynom   berechnen, so dass   für ein beliebiges Polynom   gilt. Dieser Schritt ist der rechenintensivste. Mildern kann man dies, indem man für mehrere Primzahlen   die Resultante modulo   berechnet und die Gesamtresultante aus den Moduli rekonstruiert. Zu Einzelheiten der Resultantenberechnung siehe Abschnitte 2.2.7.1 und 2.2.7.2 des EESS-Standards[3].
  4. Resultante   von   und ein Polynom   berechnen, so dass   für ein beliebiges Polynom   gilt.
  5. Wenn  ≠1 ist, wieder bei Schritt 1 anfangen.
  6. Mittels des erweiterten euklidischen Algorithmus zwei Zahlen   und   ermitteln, so dass   gilt.
  7.   und   setzen.
  8. Inverse   und   in   auf genügend viele Dezimalstellen berechnen.
  9.  . Anmerkung:   und   sind Gaußklammern.
  10.   und  .
  11.   = die Inverse von   modulo  .
  12. Im Standardfall:   und  
  13. Im transponierten Fall:   und  

Signierung Bearbeiten

Sei m die zu signierende Nachricht.

Für   bis 0 werden folgende Schritte ausgeführt:

  1.   =  -te Basis
  2.  
  3.  
  4.  
  5.  
  6.  

  ist die Signatur.

Beachte: Unter bestimmten Umständen kann es vorkommen, dass die Signatur trotz gültigen Schlüssels ungültig ist. Es empfiehlt sich daher, die Signatur nach der Erzeugung zu überprüfen und ggf. nochmals zu signieren.

Signaturprüfung Bearbeiten

Sei   die Nachricht,   der öffentliche Schlüssel und   die Signatur. Die Norm   eines Polynoms   sei durch   gegeben, wobei   ist (letztere wird als zentrierte Euklidische Norm bezeichnet).

Die Signatur wird dann wie folgt überprüft:

  1.  
  2. Die Signatur ist gültig, wenn   ist.

Bemerkung: Die Berechnung der Norm über die Definition ist ineffizient. Eine bessere Methode ist es, auf alle Polynomkoeffizienten eine Konstante zu addieren, so dass die zwei Koeffizienten mit dem größten Abstand gleich weit von   entfernt sind (jeweils modulo  ). Die Norm ergibt sich dann durch die zentrierte Euklidnorm (s. o.) des so entstandenen Polynoms.

Effizienz Bearbeiten

Um die Multiplikation zu beschleunigen, können die Parameter   und   so gewählt werden, dass viele Koeffizienten Null sind. Dazu wird ein Parameter   gewählt und bei der Wahl von   und   werden   Koeffizienten gleich 1,   Koeffizienten gleich −1 und der Rest gleich 0 gesetzt.

Die Prüfung mehrerer Signaturen lässt sich beschleunigen, indem man statt der einzelnen Normen die Norm der Summe der Signaturen überprüft. Die Parameter   und   müssen dazu erhöht werden.

Sicherheit Bearbeiten

Die mit dem Verfahren erstellten Signaturen verraten Informationen über den geheimen Schlüssel. Diese Tatsache wurde 2006 ausgenutzt um das Verfahren anzugreifen: Ungefähr 400 Signaturen reichten aus, um den geheimen Schlüssel zu berechnen.[4] Das Verfahren wurde nach diesem Angriff angepasst, Perturbationen sollten das Berechnen des geheimen Schlüssels erheblich erschweren. Das verbesserte Verfahren wurde 2012 angegriffen, der geheime Schlüssel konnte aus mehreren Tausend Signaturen berechnet werden.[5]

Einzelnachweise Bearbeiten

  1. Jeffrey Hoffstein, Nick Howgrave-Graham, Jill Pipher, Joseph H. Silverman, William Whyte: NTRUSign: Digital Signatures Using the NTRU Lattice. (securityinnovation.com [PDF]).
  2. Hoffstein, Pipher, Silverman: An Introduction to mathematical Cryptography, Springer 2008, ISBN 978-0-387-77993-5
  3. a b Archivierte Kopie (Memento des Originals vom 16. März 2012 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/grouper.ieee.org Efficient Embedded Security Standard
  4. Phong Q. Nguyen und Oded Regev: Learning a Parallelepiped: Cryptanalysis of GGH and NTRU Signatures. In: EUROCRYPT 2006 (= LNCS). Band 4004. Springer, 2006, S. 271–288 (ens.fr [PDF]).
  5. Léo Ducas und Phong Q. Nguyen: Learning a Zonotope and More: Cryptanalysis of NTRUSign Countermeasures. In: ASIACRYPT 2012 (= LNCS). Band 7658. Springer, 2012, S. 433–450 (ens.fr [PDF]).

Weblinks Bearbeiten