<?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=Benaloh-Kryptosystem</id>
	<title>Benaloh-Kryptosystem - 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=Benaloh-Kryptosystem"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Benaloh-Kryptosystem&amp;action=history"/>
	<updated>2026-06-04T01:19:59Z</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=Benaloh-Kryptosystem&amp;diff=2662360&amp;oldid=prev</id>
		<title>imported&gt;Aka: /* Schlüsselerzeugung */ Tippfehler entfernt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Benaloh-Kryptosystem&amp;diff=2662360&amp;oldid=prev"/>
		<updated>2025-09-19T09:42:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Schlüsselerzeugung: &lt;/span&gt; &lt;a href=&quot;/index.php?title=Benutzer:Aka/Tippfehler_entfernt&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Benutzer:Aka/Tippfehler entfernt (Seite nicht vorhanden)&quot;&gt;Tippfehler entfernt&lt;/a&gt;&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;Benaloh-Kryptosystem&amp;#039;&amp;#039;&amp;#039; wurde 1994 von [[Josh Benaloh]] vorgestellt. Es handelt sich dabei um ein [[asymmetrisches Kryptosystem]]. Das Verfahren ist [[Gruppenhomomorphismus|homomorph]], d.&amp;amp;nbsp;h., zwei verschlüsselte Nachrichten können addiert werden, ohne die Nachrichten vorher zu entschlüsseln.&lt;br /&gt;
&lt;br /&gt;
Das Verfahren ist eine Erweiterung des [[Goldwasser-Micali-Kryptosystem]]s: während letzteres lediglich das Verschlüsseln von einzelnen Bits ermöglicht, erlaubt das Benaloh-Kryptosystem das Verschlüsseln von größeren Blocks. Ein kleiner Fehler in der Beschreibung wurde später von Laurent Fousse &amp;#039;&amp;#039;[[et al.]]&amp;#039;&amp;#039; korrigiert.&lt;br /&gt;
&lt;br /&gt;
== Verfahren ==&lt;br /&gt;
Im Folgenden beschreiben wir die [[Schlüssel (Kryptologie)|Schlüsselerzeugung]], und die Algorithmen zur Ver- und Entschlüsselung von Nachrichten.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Josh Benaloh |url=http://research.microsoft.com/en-us/um/people/benaloh/papers/dpe.ps |titel=Dense Probabilistic Encryption |abruf=2012-06-13 |format=PS |sprache=en}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Literatur |Autor=Laurent Fousse, Pascal Lafourcade, und Mohamed Alnuaimi |Titel=Benaloh’s Dense Probabilistic Encryption Revisited |Datum=2010-08-18 |Sprache=en |arXiv=1008.2991}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Erzeugung des öffentlichen und privaten Schlüssels ===&lt;br /&gt;
Das Schlüsselpaar wird folgendermaßen generiert:&lt;br /&gt;
* Zuerst wählt man eine Blockgröße &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;.&lt;br /&gt;
* Dann generiert man zwei zufällige [[Primzahl]]en &amp;lt;math&amp;gt;p,q&amp;lt;/math&amp;gt;, sodass &amp;lt;math&amp;gt;r|(p-1)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\operatorname{ggT}((p-1)/r, r)=1&amp;lt;/math&amp;gt; sowie &amp;lt;math&amp;gt;\operatorname{ggT}(q-1, r)=1&amp;lt;/math&amp;gt; gilt, und definiert &amp;lt;math&amp;gt;n=pq&amp;lt;/math&amp;gt;. In der Praxis sollte n zumindest 1024, besser jedoch 1536 oder 2048 [[Bit|Binärstellen]] haben.&lt;br /&gt;
* Man wählt &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; zufällig in &amp;lt;math&amp;gt;(\mathbb{Z}/n\mathbb{Z})^*&amp;lt;/math&amp;gt;, sodass für alle [[Primfaktorzerlegung|Primteiler]] &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; von &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; gilt: &amp;lt;math&amp;gt;y^{(p-1)(q-1)/s} \not \equiv 1 \mod n&amp;lt;/math&amp;gt; gilt.&lt;br /&gt;
&lt;br /&gt;
Der öffentliche Schlüssel besteht aus &amp;lt;math&amp;gt;(r,n,y)&amp;lt;/math&amp;gt;, der private Schlüssel aus &amp;lt;math&amp;gt;(p,q)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Verschlüsseln von Nachrichten ===&lt;br /&gt;
Um eine Nachricht &amp;lt;math&amp;gt;m\in (\mathbb{Z}/r\mathbb{Z})&amp;lt;/math&amp;gt; zu verschlüsseln, verfährt man wie folgt:&lt;br /&gt;
* Zuerst wählt man ein zufälliges &amp;lt;math&amp;gt;u\in (\mathbb{Z}/n\mathbb{Z})^*&amp;lt;/math&amp;gt;.&lt;br /&gt;
* Die verschlüsselte Nachricht ist dann gegeben durch &amp;lt;math&amp;gt; c=y^m u^r \mod n &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Entschlüsseln von Nachrichten (Decodierung) ===&lt;br /&gt;
Zum Entschlüsseln eines [[Geheimtext|Schlüsseltextes]] &amp;lt;math&amp;gt;c\in (\mathbb{Z}/n\mathbb{Z})^*&amp;lt;/math&amp;gt; verfährt man dann wie folgt:&lt;br /&gt;
* Man setzt &amp;lt;math&amp;gt;a=c^{(p-1)(q-1)/r} \mod n&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;b=y^{(p-1)(q-1)/r} \mod n&amp;lt;/math&amp;gt; und sucht dann ein &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; sodass &amp;lt;math&amp;gt;a=b^m\mod n&amp;lt;/math&amp;gt; gilt. Ist &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; klein, so kann dies durch [[Brute-Force-Methode|Durchprobieren]] aller möglichen Werte geschehen; ist &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; dagegen groß, hat aber nur kleine [[Primfaktorzerlegung|Primteiler]], kann der [[Index-Calculus-Algorithmus]] verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Dass die Entschlüsselung tatsächlich wieder die geheime Nachricht liefert, kann etwa folgendermaßen gesehen werden. Es gilt&lt;br /&gt;
:&amp;lt;math&amp;gt;a=c^{(p-1)(q-1)/r} = (y^m u^r)^{(p-1)(q-1)/r} \equiv y^{m(p-1)(q-1)/r} u^{(p-1)(q-1)} \equiv y^{m(p-1)(q-1)/r} = b^m\mod n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Unter der &amp;#039;&amp;#039;Higher-Residuosity&amp;#039;&amp;#039;-Annahme kann gezeigt werden, dass das Verfahren [[Sicherheitsbegriff#Semantische Sicherheit (SEM)|semantisch sicher]] gegen [[Ciphertext Indistinguishability|Angriffe mit ausgewählten Klartexten]] ist. Diese Annahme besagt, dass für einen zusammengesetzten Modul &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; nicht effizient geprüft werden kann, ob ein Element in &amp;lt;math&amp;gt;(\mathbb{Z}/n\mathbb{Z})&amp;lt;/math&amp;gt; eine &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;-te Wurzel modulo &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; besitzt oder nicht, falls &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; wie [[#Erzeugung des öffentlichen und privaten Schlüssels|oben]] beschrieben gewählt wurden.&lt;br /&gt;
&lt;br /&gt;
== Homomorphieeigenschaften ==&lt;br /&gt;
Das Benaloh-Kryptosystem ist additiv-homomorph. Das bedeutet, dass durch [[Multiplikation]] zweier Schlüsseltexte die darin enthaltenen Klartexte addiert werden, bzw. durch Exponentiation eines Schlüsseltextes mit &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; der enthaltene Wert mit &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; multipliziert wird. Außerdem kann die enthaltene Nachricht durch Multiplikation des Schlüsseltexts mit &amp;lt;math&amp;gt;y^w&amp;lt;/math&amp;gt; um &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; vergrößert werden. Allerdings gibt es keine bekannte Möglichkeit, um durch Operationen auf zwei Schlüsseltexten die enthaltenen Nachrichten miteinander zu multiplizieren.&lt;br /&gt;
&lt;br /&gt;
== Vollständiges Beispiel ==&lt;br /&gt;
Die oben angeführten Schritte sollen hier an einem kleinen Beispiel veranschaulicht werden.&lt;br /&gt;
&lt;br /&gt;
=== Schlüsselerzeugung ===&lt;br /&gt;
Zunächst wählen wir die Blockgröße &amp;lt;math&amp;gt;r=9&amp;lt;/math&amp;gt; und wählen &amp;lt;math&amp;gt;p=883&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;q=1019&amp;lt;/math&amp;gt;. Damit gilt&lt;br /&gt;
:&amp;lt;math&amp;gt;\operatorname{ggT}((p-1)/r, r)=\operatorname{ggT}(882/9, 9)=\operatorname{ggT}(98, 9)=1&amp;lt;/math&amp;gt;&lt;br /&gt;
sowie&lt;br /&gt;
:&amp;lt;math&amp;gt;\operatorname{ggT}(q-1, r)=\operatorname{ggT}(1018, 9)=1&amp;lt;/math&amp;gt;.&lt;br /&gt;
Weiters wählen wir &amp;lt;math&amp;gt;y=85.147&amp;lt;/math&amp;gt;, welches &amp;lt;math&amp;gt;85147^{882 \cdot 1018/3} \equiv 70977\not\equiv 1\mod (883 \cdot 1019)&amp;lt;/math&amp;gt; erfüllt.&lt;br /&gt;
&lt;br /&gt;
Damit erhalten wir:&lt;br /&gt;
 r = 9&lt;br /&gt;
 n = p·q = 899777&lt;br /&gt;
 y = 85147&lt;br /&gt;
&lt;br /&gt;
Der öffentliche Schlüssel ist damit gegeben durch: &amp;lt;math&amp;gt;(r,n,y) = (9,899777,85147).&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der geheime Schlüssel lautet &amp;lt;math&amp;gt;(p,q) = (883,1.019)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Verschlüsselung ===&lt;br /&gt;
Angenommen, man möchte die Nachricht &amp;lt;math&amp;gt;m=6&amp;lt;/math&amp;gt; verschlüsseln. Dazu wählen wir ein zufälliges &amp;lt;math&amp;gt;u\in(\mathbb{Z}/n\mathbb{Z})^*&amp;lt;/math&amp;gt; :&lt;br /&gt;
 u = 175884&lt;br /&gt;
Die Verschlüsselung ergibt sich damit zu:&lt;br /&gt;
 c = y&amp;lt;sup&amp;gt;m&amp;lt;/sup&amp;gt;u&amp;lt;sup&amp;gt;r&amp;lt;/sup&amp;gt; mod n = 85147&amp;lt;sup&amp;gt;6&amp;lt;/sup&amp;gt; 175884&amp;lt;sup&amp;gt;9&amp;lt;/sup&amp;gt; mod 899777 = 541197&lt;br /&gt;
&lt;br /&gt;
=== Entschlüsselung ===&lt;br /&gt;
Zur Entschlüsselung berechnen wir zuerst:&lt;br /&gt;
 a = c&amp;lt;sup&amp;gt;(p-1)(q-1)/r&amp;lt;/sup&amp;gt; mod n = 541197&amp;lt;sup&amp;gt;882·1018/9&amp;lt;/sup&amp;gt; mod 899777 = 4077&lt;br /&gt;
 b = y&amp;lt;sup&amp;gt;(p-1)(q-1)/r&amp;lt;/sup&amp;gt; mod n =  85147&amp;lt;sup&amp;gt;882·1018/9&amp;lt;/sup&amp;gt; mod 899777 = 887550&lt;br /&gt;
Eine systematische Suche liefert uns nun:&lt;br /&gt;
 y&amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt; mod n = 887550&amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt; mod 899777 = 1 &amp;lt;&amp;gt; 4077&lt;br /&gt;
 y&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; mod n = 887550 &amp;lt;&amp;gt; 4077&lt;br /&gt;
 y&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; mod n = 136547 &amp;lt;&amp;gt; 4077&lt;br /&gt;
 y&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; mod n = 425943 &amp;lt;&amp;gt; 4077&lt;br /&gt;
 y&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt; mod n = 803992 &amp;lt;&amp;gt; 4077&lt;br /&gt;
 y&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt; mod n = 553318 &amp;lt;&amp;gt; 4077&lt;br /&gt;
 y&amp;lt;sup&amp;gt;6&amp;lt;/sup&amp;gt; mod n = 4077&lt;br /&gt;
Die verschlüsselte Nachricht lautete daher &amp;lt;math&amp;gt;m=6&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:Asymmetrisches Verschlüsselungsverfahren]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Aka</name></author>
	</entry>
</feed>