0Pricing
Cryptology Academy · Lektion

Sigma-Protokolle und Schnorr-Identifikation

Implementieren Sie ein Sigma-Protokoll und verfolgen Sie die Funktionsweise des Schnorr-Beweises.

Sigma-Protokolle und Schnorr-Identifikation ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cryptology Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Struktur eines Sigma-Protokolls

Ein Sigma-Protokoll besteht aus drei Nachrichten: (1) Commitment: Der Prover sendet ein Commitment für einen zufälligen Wert. (2) Challenge: Der Verifier sendet eine zufällige Challenge. (3) Response: Der Prover sendet eine aus der Challenge und dem Geheimnis berechnete Response. Der Verifier akzeptiert oder verwirft den Beweis.

Schnorr-Identifikation

Der Prover kennt das Geheimnis x (den privaten Schlüssel); der öffentliche Schlüssel ist = g^x mod p (oder der Punkt X = x*G auf einer elliptischen Kurve). Ziel ist es, die Kenntnis von x nachzuweisen, ohne x offenzulegen. Dies ist ein Wissensbeweis für den diskreten Logarithmus.

Schritte des Schnorr-Protokolls

(1) Der Prover wählt ein zufälliges r und sendet das Commitment R = r*G. (2) Der Verifier sendet die Challenge c (eine zufällige Ganzzahl). (3) Der Prover sendet die Response s = r + c*x. (4) Der Verifier prüft s*G == R + c*X. Falls die Prüfung erfolgreich ist, wird der Beweis akzeptiert. Der Prover kennt x; die Response s kann nur mit x berechnet werden.

Sicherheitsanalyse

Vollständigkeit: Ein ehrlicher Prover erfüllt immer s*G = r*G + c*x*G = R + c*X. Korrektheit: Zwei Transkripte mit demselben R, aber unterschiedlichen Challenges c und c' liefern s und s', aus denen sich x = (s-s')/(c-c') zurückgewinnen lässt — ein Betrüger kann also nicht zwei gültige Responses für dasselbe R erzeugen.

Zero-Knowledge von Schnorr

Simulator (ohne Kenntnis von x): Wählen Sie ein zufälliges s und c und setzen Sie R = s*G - c*X. Das Tripel (R, c, s) hat dann die Verteilung eines gültigen Transkripts. Der Verifier kann echte Transkripte nicht von simulierten unterscheiden — Schnorr ist Zero-Knowledge gegenüber einem ehrlichen Verifier.

Fiat-Shamir-Transformation

Das Schnorr-Protokoll wird nicht interaktiv, indem die Challenge des Verifiers durch c = Hash(R || message) ersetzt wird. Der Prover berechnet c selbst und sendet anschließend die Response. Das Ergebnis ist ein aus zwei Elementen bestehender Beweis (R, s), den jede Person verifizieren kann. Dies ist das Schnorr-Signaturschema.

Schnorr-Signaturen

Sign(x, m): r ← zufällig; R = r*G; c = Hash(R||m); s = r + c*x. Signatur = (R, s). Verify: s*G == R + Hash(R||m)*X. Kompakt (64 Bytes für P-256), stapelweise verifizierbar und im ROM beweisbar sicher. In Bitcoin Taproot (BIP-340) eingesetzt.

Pedersen-Commitments

C = r*G + v*H, wobei H ein zweiter unabhängiger Generator ist. Damit wird der Wert v mit der Zufälligkeit r festgelegt. Bindend: Das Commitment kann nicht für einen anderen Wert v geöffnet werden (diskreter Logarithmus). Verbergend: C ist gleichverteilt. Wird in schnorrbasierten Bereichsbeweisen und Bulletproofs verwendet.

Kombination: AND-Beweise

Um die Kenntnis von x1 UND x2 gleichzeitig nachzuweisen, werden zwei Schnorr-Protokolle mit derselben Challenge ausgeführt (die Challenge wird über Fiat-Shamir geteilt). Der Verifier akzeptiert den Beweis nur, wenn beide Teilbeweise gültig sind. Dadurch lassen sich mehrere Aussagen in einer Interaktion nachweisen.

Kombination: OR-Beweise

Um die Kenntnis von x1 ODER x2 nachzuweisen, ohne offenzulegen, welches Geheimnis bekannt ist, wird für einen Zweig der Simulator verwendet, um ein gefälschtes Transkript zu berechnen; anschließend wird die Challenge auf beide Zweige aufgeteilt. Der Verifier sieht zwei gültig aussehende Transkripte, deren Challenges sich zur echten Challenge addieren. Diese Beweise werden als „ring signatures“ bezeichnet.

Anwendungen

Schnorr-Identifikationen: elektronische Reisepässe (PACE-Protokoll). Schnorr-Signaturen: Bitcoin Taproot, Monero (RingCT verwendet Schnorr-OR-Beweise), Signal Protocol (X3DH-Schlüsselaustausch). Pedersen-Commitments: Confidential Transactions, Bulletproofs, Zcash-Sapling-Notizverschlüsselung.

Kurztest

Was prüft der Verifier im letzten Schritt des Schnorr-Identifikationsprotokolls?

Zusammenfassung

Sigma-Protokolle folgen dem Ablauf Commitment–Challenge–Response. Schnorr weist die Kenntnis eines diskreten Logarithmus nach. Fiat-Shamir macht das Protokoll nicht interaktiv (Schnorr-Signatur). Als Nächstes folgen zk-SNARKs für kompakte nicht interaktive Beweise.

Häufig gestellte Fragen

Ist die Lektion „Sigma-Protokolle und Schnorr-Identifikation“ kostenlos?

Ja — der vollständige Text von „Sigma-Protokolle und Schnorr-Identifikation“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cryptology Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Sigma-Protokolle und Schnorr-Identifikation“?

Implementieren Sie ein Sigma-Protokoll und verfolgen Sie die Funktionsweise des Schnorr-Beweises. Du übst Cryptology Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Cryptology Academy zu starten?

Keine Vorkenntnisse erforderlich. Cryptology Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Sigma-Protokolle und Schnorr-Identifikation“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Cryptology Academy-Lektion Code schreiben und ausführen?

Ja. Jede Cryptology Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. ZKP-Intuition: Die Höhle von Ali Baba
  2. Sigma-Protokolle und Schnorr-Identifikation
  3. zk-SNARKs: Prägnante nicht interaktive Argumente
  4. ZKP-Anwendungen: ZK-Rollups und Privacy Coins
← Zurück zu Cryptology Academy