Schnorr-Signatur

Schnorr-Signatur

Die Schnorr-Signatur ist ein 1989/91 vom deutschen Mathematikprofessor Claus-Peter Schnorr entworfenes kryptographisches Schema für Digitale Signaturen. Es leitet sich aus der Schnorr-Identifikation ab, indem wie bei der Fiat-Shamir-Identifikation die Interaktion durch den Einsatz einer kryptographischen Hashfunktion ersetzt wird. Die Sicherheit beruht auf der Komplexität des Diskreten Logarithmus in endlichen Gruppen (Untergruppen der multiplikativen Gruppe eines endlichen Körpers).

Das Verfahren ist von Schnorr patentiert.[1][2] Es ist exklusiv an RSA lizenziert (Siemens hat aber eine nicht-exklusive Lizenz). Schnorr warf im Rahmen der Standardisierung IEEE P1363 der NIST vor, mit dem von ihr entwickelten Signatur-Verfahren Digital Signature Algorithm, kurz DSA, sein Patent zu verletzen.

Inhaltsverzeichnis

Parameter

Systemweite Parameter

Alle Benutzer können diese Parameter gemeinsam nutzen:

  • Eine Gruppe G primer Ordnung q = | G | . Diese ist zyklisch, sei g ein Generator
  • Eine kryptografische Hash-Funktion H mit Wertebereich [0,q − 1].

Schnorr schlägt vor, eine Untergruppe G von Z_p^* für ein primes p zu wählen. Er argumentiert, dass Schlüssel- und Signaturlängen sich auf | G | beziehen, das Sicherheitsniveau sich hingegen am größeren |Z_p^*| orientiert.

Privater Schlüssel

Der private Schlüssel besteht aus einer zufällig gewählten Zahl:

  • x mit 0 < x < q

Öffentlicher Schlüssel

Der öffentliche Schlüssel ist das x entsprechende Gruppenelement y:

  • y = gx

Unterschreiben

Um eine Nachricht m zu unterschreiben, wird folgendermaßen verfahren:

  1. Wähle k zufällig mit 0 < k < q.
  2. Setze r: = gk
  3. Setze e: = H(m | | r). Dabei ist || die Konkatenation von Zahlen als Bitfolgen.
  4. Setze s := (k + xe) \mod q.

Die Unterschrift der Nachricht ist das Tupel (e,s).

Verifizieren

Um eine Unterschrift (e,s) einer Nachricht m zu verifizieren, wird folgendermaßen verfahren:

  1. Setze r_v := g^s \cdot y^{-e}
  2. Setze ev: = H(m | | rv)
  3. Akzeptiere die Unterschrift genau dann, wenn ev = e ist.

Sicherheitsdiskussion (informell)

Die Sicherheit der Schnorr-Signatur ist im Random-Oracle-Modell auf die Komplexität des diskreten Logarithmus in der verwendeten Gruppe beweisbar zu reduzieren, d. h. wer das Schnorr-Signatur-Schema bricht, kann auch effizient den diskreten Logarithmus berechnen. Es ist kein Verfahren bekannt, mit dem sich der diskrete Logarithmus in multiplikativen Gruppen von endlichen Körpern mit heutigen Computern effizient berechnen lässt. (Für die Berechnung auf Quantencomputern existiert zwar der (theoretisch) effiziente Shor-Algorithmus[3], die dafür erforderlichen Quantencomputer sind aber mit den erforderlichen Bitlängen in absehbarer Zeit nicht realisierbar.) Diese beweisbare Reduktion auf bekannte, als schwierig eingestufte Probleme ist typisch für Sicherheitsbeweise bei kryptographischen Systemen mit öffentlichen Schlüsseln.

Im Random-Oracle-Modell nimmt man an, die Hashfunktion verhalte sich wie eine zufällige Funktion und ein Angreifer kann die Funktionswerte nur über eine Orakel für die Funktionswerte berechnen. Mit Hilfe eines Widerspruchsbeweis zeigt man nun die Korrektheit des Verfahrens. Angenommen, es gäbe einen erfolgreichen Unterschriftenfälscher für das Signaturverfahren. Dieses kann man nutzen, um aus dem öffentlichen Schlüssel y = gx den geheimen Schlüssel x zu bestimmen, also den Diskreten Logarithmus x von y zu berechnen - im Widerspruch zur Annahme, der diskrete Logarithmus sei schwierig.

  1. Simuliere den Algorithmus zum Unterschreiben einer Nachricht m, speichere Zustand beim Aufruf des Orakels, um e1 = H(m | | r) zu berechnen.
  2. Wiederhole die Simulation an gespeicherten Zustand, gib allerdings ein anderes e2 = H(m | | r) zurück (Dies geht im Random-Oracle-Modell)
  3. Seien s1 und s2 die beiden (verschiedenen) Unterschriften zur gleichen Nachricht m und gleichem Zufallswert k bzw. r
  4. Es gilt s_1-s_2 = (k + xe_1)-(k + xe_2) = x(e_1-e_2)\mod q, also x=(s_1-s_2)/(e_1-e_2)\mod q

Die Division durch e1e2 ist möglich: Da q prim ist, existiert zu jeder Zahl ungleich 0 auch ein Inverses modulo q.

Literatur

Weblinks

Claus-Peter Schnorr, Vorlesung Kryptographie I/II, Kapitel 1.7 , (PDF, 454 kB)

Einzelnachweise

  1. Patent EP0384475: Angemeldet am 22. Februar 1990.
  2. Patent US4995082: Angemeldet am 23. Februar 1990.
  3. Peter W. Shor: Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. In: SIAM Journal on Computing. 26/1997, S. 1484–1509 (arXiv:quant-ph/9508027)

Wikimedia Foundation.

Игры ⚽ Поможем написать реферат

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

  • Schnorr — ist der Name von der Familie Schnorr von Carolsfeld sowie von folgenden Personen Alois Schnorr (1896–1962), deutscher Bankier und Politiker (BCSV, CDU) Claus Peter Schnorr (* 1943), deutscher Informatiker Nach Claus Peter Schnorr ist die Schnorr… …   Deutsch Wikipedia

  • Schnorr-Identifikation — Die Schnorr Identifikation ist ein 1989/91 vom deutschen Mathematikprofessor Claus Peter Schnorr entworfenes kryptographisches Identifikation Schema. Die Sicherheit beruht auf der Komplexität des Diskreten Logarithmus in endlichen Gruppen. Die… …   Deutsch Wikipedia

  • Claus-Peter Schnorr — Claus Peter Schnorr. Claus Peter Schnorr (* 4. August 1943 in Völklingen bei Saarbrücken) ist ein deutscher Mathematiker und Informatiker. Leben Schnorr studierte von 1962 bis 1966 an der Universität Saarbrücken Ma …   Deutsch Wikipedia

  • Digitale Signatur — Eine digitale Signatur ist ein kryptografisches Verfahren, bei dem zu einer „Nachricht“ (d.h. zu beliebigen Daten) eine Zahl berechnet wird. Diese digitale Signatur ermöglicht, dass ihre Urheberschaft und Zugehörigkeit zur Nachricht durch jeden… …   Deutsch Wikipedia

  • Digital Signature Standard — Der Digital Signature Algorithm (DSA) ist ein Standard der US Regierung für Digitale Signaturen. Er wurde vom National Institute of Standards and Technology (NIST) im August 1991 für die Verwendung in deren Digital Signature Standard (DSS)… …   Deutsch Wikipedia

  • ECDSA — Der Digital Signature Algorithm (DSA) ist ein Standard der US Regierung für Digitale Signaturen. Er wurde vom National Institute of Standards and Technology (NIST) im August 1991 für die Verwendung in deren Digital Signature Standard (DSS)… …   Deutsch Wikipedia

  • Digital Signature Algorithm — Der Digital Signature Algorithm (DSA) ist ein Standard der US Regierung für Digitale Signaturen. Er wurde vom National Institute of Standards and Technology (NIST) im August 1991 für die Verwendung in deren Digital Signature Standard (DSS)… …   Deutsch Wikipedia

  • Theodor Rocholl — Selbstbildnis, 1916 Theodor Rocholl (* 11. Juni 1854 in Sachsenberg, Waldeck; † 13. September 1933 in Düsseldorf) war ein deutscher Maler, Grafiker und Schriftsteller. Er war in Düsseldorf ansässig und wurde besonders durch seine… …   Deutsch Wikipedia

  • Herman Riegel — (* 27. Februar 1834 in Potsdam; † 12. August 1900 in Braunschweig) war Kunsthistoriker, Museumsdirektor und Gründer des Allgemeinen Deutschen Sprachvereins. Herman Riegel arbeitete zunächst in der Buchhandlung seines Vaters Friedrich Riegel, der… …   Deutsch Wikipedia

Share the article and excerpts

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