<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Schnorr-Identifikation</id>
	<title>Schnorr-Identifikation - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Schnorr-Identifikation"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Schnorr-Identifikation&amp;action=history"/>
	<updated>2026-06-08T15:11:24Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Schnorr-Identifikation&amp;diff=1283402&amp;oldid=prev</id>
		<title>imported&gt;Rigormath: /* Sicherheitsdiskussion (informell) */ Erweiterter euklidischer Algorithmus: Linkziel ersetzt durch eines mit Beispiel zur Inversenberechnung.</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Schnorr-Identifikation&amp;diff=1283402&amp;oldid=prev"/>
		<updated>2026-02-22T11:15:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Sicherheitsdiskussion (informell): &lt;/span&gt; Erweiterter euklidischer Algorithmus: Linkziel ersetzt durch eines mit Beispiel zur Inversenberechnung.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Die &amp;#039;&amp;#039;&amp;#039;Schnorr-Identifikation&amp;#039;&amp;#039;&amp;#039; ist ein 1989/91 von [[Claus-Peter Schnorr]] entworfenes kryptographisches Identifikations-Schema, das auf der Schwierigkeit beruht, den [[Diskreter Logarithmus|diskreten Logarithmus]] zu berechnen. Aus der Schnorr-Identifikation leitet sich die [[Schnorr-Signatur]] ab. Diese [[digitale Signatur]] erfordert eine kryptographische [[Hashfunktion]], eine mehrstufige Interaktion wie bei der [[Fiat-Shamir-Identifikation]] ist dagegen nicht erforderlich. Schnorr-Identifikation und Schnorr-Signatur wurden patentiert&amp;lt;ref&amp;gt;{{Patent|Land=EP|V-Nr=0384475|A-Datum=1990-02-22}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Patent|Land=US|V-Nr=4995082|A-Datum=1990-02-23}}&amp;lt;/ref&amp;gt; und exklusiv an [[RSA Security|RSA]] sowie nicht-exklusiv an [[Siemens]] lizenziert; das Patent ist am 23.&amp;amp;nbsp;Februar 2010 abgelaufen.&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
=== Systemweite Parameter ===&lt;br /&gt;
Alle Benutzer können diese Parameter gemeinsam nutzen:&lt;br /&gt;
* Eine Gruppe &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; primer Ordnung &amp;lt;math&amp;gt;q=|G|&amp;lt;/math&amp;gt;. Diese ist [[Zyklische Gruppe|zyklisch]], &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; sei ein Generator.&lt;br /&gt;
&lt;br /&gt;
Schnorr schlägt vor, eine Untergruppe &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; von &amp;lt;math&amp;gt;Z_p^*&amp;lt;/math&amp;gt; für eine Primzahl &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; zu wählen. Er argumentiert, dass Schlüssel- und Signaturlängen sich auf &amp;lt;math&amp;gt;|G|&amp;lt;/math&amp;gt; beziehen, das Sicherheitsniveau sich hingegen am größeren &amp;lt;math&amp;gt;|Z_p^*|&amp;lt;/math&amp;gt; orientiert.&lt;br /&gt;
&lt;br /&gt;
=== Privater Schlüssel ===&lt;br /&gt;
Der nur dem Prover P bekannte private Schlüssel besteht aus einer zufällig gewählten Zahl:&lt;br /&gt;
* &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;0 &amp;lt; x &amp;lt; q &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Öffentlicher Schlüssel ===&lt;br /&gt;
Der öffentliche Schlüssel ist das &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; entsprechende Gruppenelement &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;:&lt;br /&gt;
*&amp;lt;math&amp;gt;y = g^{x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Drei-Schritt-Protokoll ==&lt;br /&gt;
Der Prover P identifiziert sich gegenüber dem Verifier V durch ein Protokoll bestehend aus 3 Schritten:&lt;br /&gt;
# Hinterlegung (Commitment): P wählt &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; zufällig mit &amp;lt;math&amp;gt;0 &amp;lt; k &amp;lt; q&amp;lt;/math&amp;gt; und sendet &amp;lt;math&amp;gt;r:=g^k \bmod q&amp;lt;/math&amp;gt; an V.&lt;br /&gt;
# Frage (Challenge): V wählt &amp;lt;math&amp;gt;e&amp;lt;/math&amp;gt; zufällig mit &amp;lt;math&amp;gt;0 &amp;lt; e &amp;lt; q&amp;lt;/math&amp;gt; und sendet &amp;lt;math&amp;gt;e&amp;lt;/math&amp;gt; an P.&lt;br /&gt;
# Antwort (Response): P sendet &amp;lt;math&amp;gt;s := (k + xe) \bmod q&amp;lt;/math&amp;gt; an V.&lt;br /&gt;
&lt;br /&gt;
V akzeptiert die Antwort genau dann, wenn &amp;lt;math&amp;gt;g^s = ry^e&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Sicherheitsdiskussion (informell) ==&lt;br /&gt;
Die Sicherheit der Schnorr-Identifikation basiert [[Beweisbare Sicherheit|beweisbar]] auf der Komplexität des [[Diskreter Logarithmus|diskreten Logarithmus]]. Von diesem Problem nimmt man allerdings nach Jahrzehnten intensiver Forschung an, dass es nicht effizient zu lösen ist.&lt;br /&gt;
&lt;br /&gt;
Einerseits könnte man mit der Möglichkeit, effizient diskrete Logarithmen zu berechnen, das Verfahren brechen, da der geheime Schlüssel &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; sich als Logarithmus des öffentlichen Schlüssels &amp;lt;math&amp;gt;y=g^x&amp;lt;/math&amp;gt; zur Basis &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; in der Gruppe &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; ergibt.&lt;br /&gt;
&lt;br /&gt;
Wäre man andererseits in der Lage, das Verfahren zu brechen, also bei gegebener Gruppe &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; zu beliebigem Generator &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; und öffentlichem Schlüssel &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; auf jede Frage &amp;lt;math&amp;gt;e&amp;lt;/math&amp;gt; die korrekte Antwort &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; zu geben, könnte man damit effizient diskrete Logarithmen berechnen. Um den diskreten Logarithmus von &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; zur Basis &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; zu berechnen, kann man nämlich als P folgendermaßen das Protokoll mit &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; als Generatorparameter und &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; als öffentlichem Schlüssel nutzen: Man führt das Protokoll mehrmals aus und sendet dabei im ersten Schritt immer dasselbe &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, und zwar wiederholt man das Protokoll so oft, bis V in zwei Durchgängen im jeweils zweiten Schritt zwei verschiedene Fragen &amp;lt;math&amp;gt;e&amp;lt;/math&amp;gt; gestellt hat. Diese seien &amp;lt;math&amp;gt;e_1&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;e_2&amp;lt;/math&amp;gt;. (Wenn V die Frage &amp;lt;math&amp;gt;e&amp;lt;/math&amp;gt; im zweiten Schritt zufällig und gleichverteilt unter den &amp;lt;math&amp;gt;q - 1&amp;lt;/math&amp;gt; infrage kommenden Werten wählt, braucht man [[Erwartungswert|im Mittel]]&lt;br /&gt;
:&amp;lt;math&amp;gt;\frac{2q-3}{q-2} = 2 + \frac{1}{q-2}&amp;lt;/math&amp;gt;&lt;br /&gt;
Durchläufe, siehe [[geometrische Verteilung]].) Die zugehörigen Antworten, die man auf &amp;lt;math&amp;gt;e_1&amp;lt;/math&amp;gt; bzw. &amp;lt;math&amp;gt;e_2&amp;lt;/math&amp;gt; dann im dritten Schritt gegeben hat, seien &amp;lt;math&amp;gt;s_1&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;s_2&amp;lt;/math&amp;gt;. Wegen &amp;lt;math&amp;gt;e_1 \neq e_2&amp;lt;/math&amp;gt; gilt &amp;lt;math&amp;gt;e_1 - e_2 \neq 0&amp;lt;/math&amp;gt; und weil &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; eine Primzahl ist, besitzt &amp;lt;math&amp;gt;e_1 - e_2&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;\Z/q\Z&amp;lt;/math&amp;gt; ein multiplikatives [[Inverses Element|Inverses]], also eine Zahl &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, für die&lt;br /&gt;
:&amp;lt;math&amp;gt;d \cdot \left(e_1 - e_2\right) = 1 \pmod q&amp;lt;/math&amp;gt;&lt;br /&gt;
gilt (&amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; lässt sich beispielsweise mit dem [[Restklassenring#Invertierbarkeit und Inversenberechnung|erweiterten euklidischen Algorithmus]] effizient bestimmen). Der diskrete Logarithmus von &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; zur Basis &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; ist jetzt &amp;lt;math&amp;gt;d \cdot \left(s_1 - s_2\right) \bmod q&amp;lt;/math&amp;gt;, denn da &amp;lt;math&amp;gt;s_1&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;s_2&amp;lt;/math&amp;gt; korrekte Antworten auf die Fragen &amp;lt;math&amp;gt;e_1&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;e_2&amp;lt;/math&amp;gt; sind, gilt&lt;br /&gt;
:&amp;lt;math&amp;gt;g^{s_1} = ry^{e_1}&amp;lt;/math&amp;gt;&lt;br /&gt;
und&lt;br /&gt;
:&amp;lt;math&amp;gt;g^{s_2} = ry^{e_2}&amp;lt;/math&amp;gt;&lt;br /&gt;
und es folgt&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{aligned}&lt;br /&gt;
  g^{d \cdot \left(s_1 - s_2\right)} &amp;amp;= g^{d \cdot s_1 - d \cdot s_2}&lt;br /&gt;
  \\&lt;br /&gt;
  &amp;amp;= g^{d \cdot s_1} \cdot g^{-d \cdot s_2}&lt;br /&gt;
  \\&lt;br /&gt;
  &amp;amp;= \left(g^{s_1}\right)^d \cdot \left(g^{s_2}\right)^{-d}&lt;br /&gt;
  \\&lt;br /&gt;
  &amp;amp;= \left(ry^{e_1}\right)^d \cdot \left(ry^{e_2}\right)^{-d}&lt;br /&gt;
  \\&lt;br /&gt;
  &amp;amp;= r^d \cdot y^{d \cdot e_1} \cdot r^{-d} \cdot y^{-d \cdot e_2}&lt;br /&gt;
  \\&lt;br /&gt;
  &amp;amp;= y^{d \cdot e_1 - d \cdot e_2}&lt;br /&gt;
  \\&lt;br /&gt;
  &amp;amp;= y^{d \cdot \left(e_1 - e_2\right)}&lt;br /&gt;
  \\&lt;br /&gt;
  &amp;amp;= y&lt;br /&gt;
  \text{.}&lt;br /&gt;
\end{aligned}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Identifikationsprotokoll]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Rigormath</name></author>
	</entry>
</feed>