<?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=Fiat-Shamir-Protokoll</id>
	<title>Fiat-Shamir-Protokoll - 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=Fiat-Shamir-Protokoll"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Fiat-Shamir-Protokoll&amp;action=history"/>
	<updated>2026-06-25T20:47:29Z</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=Fiat-Shamir-Protokoll&amp;diff=140082&amp;oldid=prev</id>
		<title>~2025-20967-3: Tippfehler verbessert</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Fiat-Shamir-Protokoll&amp;diff=140082&amp;oldid=prev"/>
		<updated>2025-07-16T16:59:00Z</updated>

		<summary type="html">&lt;p&gt;Tippfehler verbessert&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Das &amp;#039;&amp;#039;&amp;#039;Fiat-Shamir-Protokoll&amp;#039;&amp;#039;&amp;#039; ist ein [[Authentifizierungsprotokoll|Protokoll]] aus dem Gebiet der [[Kryptografie]], mit dem man sich jemandem gegenüber [[Authentifizierung|authentifizieren]] kann. Dazu zeigt man, dass man eine [[Quadratwurzel]] ([[Geheimer Schlüssel|privater Schlüssel]]) einer vorher veröffentlichten Quadratzahl ([[öffentlicher Schlüssel]]) kennt. Bei dem Verfahren wird nur ein einziges Bit des privaten Schlüssels preisgegeben, nämlich das [[Vorzeichenbit|Vorzeichen]]. Eine Variante ist das Feige-Fiat-Shamir-Protokoll, bei dem keine Information über den privaten Schlüssel preisgegeben wird. Man spricht deswegen von einem [[Zero-Knowledge-Protokoll]]. Insbesondere ist das Protokoll [[perfekt zero-knowledge]]. Das heißt, es gibt einen Simulations-[[Algorithmus]], der in [[Polynomialzeit|polynomieller Zeit]] eine [[Mitschrift (Kryptologie)|Mitschrift]] erzeugt, die von einer echten Interaktion nicht zu unterscheiden ist.&lt;br /&gt;
&lt;br /&gt;
Das Fiat-Shamir-Protokoll wurde im Jahr [[1986]] von [[Amos Fiat]] und [[Adi Shamir]] vorgestellt. An der Entwicklung des Feige-Fiat-Shamir-Protokolls war auch [[Uriel Feige]] beteiligt.&lt;br /&gt;
&lt;br /&gt;
Das Verfahren arbeitet interaktiv, das heißt, es finden mehrere Runden zwischen Geheimnisträger und dem Prüfer statt. In jeder Runde kann die Kenntnis der Zahl zu 50 % bewiesen werden. Nach zwei Runden bleibt eine Unsicherheit von 25 %, nach der dritten Runde nur noch 12,5 % usw. Nach &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; Runden beträgt die Unsicherheit &amp;lt;math&amp;gt;2^{-n}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Die Sicherheit des Fiat-Shamir-Protokolls beruht auf der Schwierigkeit, Quadratwurzeln im [[Restklassenring]] &amp;lt;math&amp;gt;\Z_n&amp;lt;/math&amp;gt; zu berechnen. Diese Berechnung ist genauso schwierig, wie die Zahl &amp;lt;math&amp;gt;n=p\cdot q&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; sind Primzahlen) zu faktorisieren und damit praktisch nicht durchführbar, wenn die Zahlen hinreichend groß sind.&lt;br /&gt;
&lt;br /&gt;
== Protokoll ==&lt;br /&gt;
&lt;br /&gt;
Beim Fiat-Shamir-Protokoll wird eine [[Trusted Third Party|vertrauenswürdige dritte Partei]] benötigt. Diese veröffentlicht einen [[RSA-Kryptosystem|RSA-Modul]] &amp;lt;math&amp;gt;n = p \cdot q&amp;lt;/math&amp;gt;, dessen Primfaktoren &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; sie geheim hält. Die Beweiserin (Geheimnisträgerin) [[Alice und Bob|Peggy]] wählt eine zu &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; teilerfremde Zahl &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; als persönliches Geheimnis, mit dem sie sich Victor (V wie Verifizierer) gegenüber authentisieren will. Diese darf sie niemandem weitergeben. Sie berechnet &amp;lt;math&amp;gt;v \equiv s^2 \bmod n&amp;lt;/math&amp;gt; und registriert &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; als öffentlichen Schlüssel bei der dritten Partei.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Fiat-Shamir identification protocol.svg]]&lt;br /&gt;
Eine einzelne Runde im Fiat-Shamir-Protokoll besteht aus den folgenden Aktionen:&lt;br /&gt;
&lt;br /&gt;
# Peggy wählt eine [[Zufallszahl]] &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, berechnet &amp;lt;math&amp;gt;x \equiv r^2 \bmod n&amp;lt;/math&amp;gt; und sendet &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; an Victor.&lt;br /&gt;
# Victor wählt zufällig ein &amp;lt;math&amp;gt;e \in \{0,1\}&amp;lt;/math&amp;gt; und sendet dies an Peggy. &amp;lt;!-- Dabei gibt Victor zu verstehen, ob er &amp;lt;math&amp;gt;\sqrt{x}&amp;lt;/math&amp;gt; erhalten möchte (&amp;lt;math&amp;gt;e=0&amp;lt;/math&amp;gt;) oder lieber &amp;lt;math&amp;gt;\sqrt{x\cdot v}&amp;lt;/math&amp;gt; (bei &amp;lt;math&amp;gt;e=1&amp;lt;/math&amp;gt;). --&amp;gt;&lt;br /&gt;
# Peggy berechnet &amp;lt;math&amp;gt;y \equiv r \cdot s^e \bmod n&amp;lt;/math&amp;gt; und sendet &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; an Victor.&lt;br /&gt;
# Victor überprüft, ob &amp;lt;math&amp;gt;y^2 \pmod n \equiv x \cdot v^e \pmod n&amp;lt;/math&amp;gt; gilt.&lt;br /&gt;
&lt;br /&gt;
Dieses Protokoll ist noch nicht Zero-Knowledge, da es ein Bit Information über &amp;lt;math&amp;gt;r \, \bmod n&amp;lt;/math&amp;gt; preisgibt: Würde Viktor auf irgendeine Weise erfahren, dass &amp;lt;math&amp;gt;r \equiv \pm \, c \, \bmod n&amp;lt;/math&amp;gt; für eine Zahl &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; gilt, könnte er nach Ausführung des Protokolls sicher entscheiden, ob &amp;lt;math&amp;gt;r \equiv c \, \bmod n&amp;lt;/math&amp;gt; oder &amp;lt;math&amp;gt;r \equiv -c \, \bmod n&amp;lt;/math&amp;gt; gilt; er hätte das fehlende Bit Information (das Vorzeichen von &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; bzw. &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;) also aus den Daten des Protokolls gewonnen. &lt;br /&gt;
&lt;br /&gt;
Im Feige-Fiat-Shamir-Protokoll&amp;lt;ref&amp;gt;{{Literatur |Autor=Uriel Feige, Amos Fiat, Adi Shamir |Titel=Zero-knowledge proofs of identity |Sammelwerk=Journal of Cryptology |Band=1 |Nummer=2 |Datum=1988-06-01 |ISSN=1432-1378 |DOI=10.1007/BF02351717 |Seiten=77–94 |Abruf=}}&amp;lt;/ref&amp;gt; sendet Peggy im ersten Schritt entweder &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; oder &amp;lt;math&amp;gt;-x \, \bmod n&amp;lt;/math&amp;gt; an Victor. Die Wahl, welchen Wert sie sendet, trifft sie zufällig. Viktor prüft dann im letzten Schritt, dass entweder &amp;lt;math&amp;gt;y^2 \equiv x \cdot v^e \bmod n&amp;lt;/math&amp;gt; oder &amp;lt;math&amp;gt;y^2 \equiv -x \cdot v^e \bmod n&amp;lt;/math&amp;gt; gilt. Dadurch wird auch das Vorzeichen von &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; nicht preisgegeben und das Protokoll ist Zero-Knowledge.&lt;br /&gt;
&lt;br /&gt;
== Schwächen ==&lt;br /&gt;
Für die Sicherheit des Protokolls ist die Wahl der Zufallszahl r von großer Bedeutung.&amp;lt;br /&amp;gt;&lt;br /&gt;
Wird dasselbe &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; zweimal verwendet und ist &amp;lt;math&amp;gt;e&amp;lt;/math&amp;gt; dabei einmal 0 und einmal 1, lässt sich der private Schlüssel berechnen.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel ===&lt;br /&gt;
In beiden Fällen hat &amp;lt;math&amp;gt;x \equiv r^2 \bmod n&amp;lt;/math&amp;gt; denselben Wert.&lt;br /&gt;
# Runde&lt;br /&gt;
#* &amp;lt;math&amp;gt;e_1 = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
#* Peggy überträgt: &amp;lt;math&amp;gt;y_1 \equiv r \, \bmod n&amp;lt;/math&amp;gt;&lt;br /&gt;
# Runde&lt;br /&gt;
#* &amp;lt;math&amp;gt;e_2 = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
#* Peggy überträgt: &amp;lt;math&amp;gt;y_2 \equiv r \cdot s \bmod n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein Angreifer kann nun einfach &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; berechnen. Damit ist &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; kein Geheimnis mehr, das nur Peggy kennt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;s \equiv y_2 \cdot r^{-1} \equiv y_2 \cdot y_1^{-1} \bmod n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
&lt;br /&gt;
* [[Albrecht Beutelspacher]], Jörg Schwenk, Klaus-Dieter Wolfenstetter: &amp;#039;&amp;#039;Moderne Verfahren der Kryptographie.&amp;#039;&amp;#039; Vieweg+Teubner, Braunschweig/Wiesbaden 2010, 7. Auflage, ISBN 978-3-8348-1228-5, S. 49–50&lt;br /&gt;
* [[Amos Fiat]], [[Adi Shamir]]: &amp;#039;&amp;#039;How to Prove Yourself: Practical Solutions to Identification and Signature Problems.&amp;#039;&amp;#039; In: &amp;#039;&amp;#039;Proceedings on Advances in Cryptology - CRYPTO &amp;#039;86.&amp;#039;&amp;#039; Springer-Verlag, 1987, ISBN 0-387-18047-8, S. 186–194&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>~2025-20967-3</name></author>
	</entry>
</feed>