Kryptografie (7) : El-Gamal

avatar

Der Algorithmus von El-Gamal basiert auf das Schlüsselaustauschverfahren von Diffie-Hellman und stellt eine asymmetrische Verschlüsselung dar. Zunächst wird mit dem Protokoll von Diffie-Hellman jeweils ein Schlüsselpaar generiert, sodass zwei Kommunikationspartner sicher Nachrichten austauschen können [1].

Als Beispiel möchten wir, der Sender, eine Nachricht m verschlüsselt an dem Empfänger zusenden. Dafür benötigen wir seinen Public-Key den er uns mitteilen muss. Die Parameter p,g,k des Empfängers wurden bereits mithilfe von Diffie-Hellman bestimmt.

Kurze Wiederholung

p ist die Zahl die den endlichen Körper bildet, g ist ein Element des endlichen Körpers und k ist eine zufällige Zahl, wobei 1 < k < p-1 gilt.

Rechenbeispiel

Nehmen wir mal ein paar konkrete Werte. Der Empfänger veröffentlicht uns seinen Public-Key mit den Tupel (p,g,a)=(23,7,17). Das a wird mit g^k mod p = 7^5 mod 23 = 17 berechnet, wobei die zufällige Zahl des Empfängers k=5 lautet.

Nun möchte der Sender seine Nachricht m=8 mit den Public-Key des Empfängers verschlüsseln und zusenden. Der Sender wählt hierfür seinerseits eine zufällig Zahl k=3 aus 1 < k < p-1 und berechnet
b=g^k mod p=7^3 mod 23 = 21 und i=a^k mod p=17^3 mod 23=14 (gemeinsamer Schlüssel aus Diffie-Hellman), um das Chiffrat
c=i * m mod p = 14 * 8 mod 23 = 20 zu bestimmen. Dann sendet der Sender den Geheimtext welcher aus den Tupel (b,c)=(21,20) besteht an den Empfänger.

Der Empfänger berechnet zunächst inv(k)=b^(p-1-k) mod p = 21^(22-5) mod 23 = 5 und anschließend entschlüsselt er den Geheimtext mit m=inv(k) * c mod p = 5 * 20 mod 23 = 8. Somit gilt m=m -> 8=8. Die Ver- und Entschlüsselung der Nachricht m war erfolgreich. Jetzt könnte der Empfänger noch dem Sender antworten. Dafür benötigt er den Public-Key des Senders und dieser Prozess wiederholt sich.



0
0
0.000
4 comments
avatar

Congratulations @ozelot47! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You received more than 1000 upvotes. Your next target is to reach 2000 upvotes.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Vote for @Steemitboard as a witness to get one more award and increased upvotes!
0
0
0.000
avatar

Alles richtig gemacht, weiter viel Erfolg...

Du hast ein kleines Upvote von einem Kurator des GSB erhalten. Zusätzlich erhältst du bis zu 30 weitere Votes von Mitgliedern die uns in einen Trail folgen.
Schließe dich uns an!!! klicke auf diesen Link. Wir helfen und unterstützen neue Mitglieder und Chatten in einem freundschaftlichen Miteinander.

Aktueller Kurator ist @don-thomas

N E U - jeden Donnerstag findet bei uns ab 19 Uhr die Quasselstunde statt wo du nicht nur mit uns reden kannst - es werden auch tolle Preise verlost

Eine neue Aktion von GSB um ein wenig leben in die Bude zu bringen. Zeigt etwas Gemeinschaftssinn und macht dort mit.
Sei auch du dabei beim täglichen Story Feed.
Ein Schnappschuss von Dir den du uns zeigen möchtest? Ein Kaffebildchen am frühen Morgen in dem du alle Gruppenmitglieder begrüßt? Ein kleiner Joke und auch mal ein etwas derber Witz den du uns mitteilen möchtest? Dann bist du dort genau richtig

https://steemit.com/deutsch/@steem-bootcamp/story-feed-deutsch-20-07-2019-fuer-alles-moegliche-and-unmoegliche

0
0
0.000
avatar

@ozelot47, thank you for supporting @steemitboard as a witness.

Here is a small present to show our gratitude
Click on the badge to view your Board of Honor.

Once again, thanks for your support!

0
0
0.000
avatar


This post has been voted on by the SteemSTEM curation team and voting trail. It is elligible for support from @curie.

If you appreciate the work we are doing, then consider supporting our witness stem.witness. Additional witness support to the curie witness would be appreciated as well.

For additional information please join us on the SteemSTEM discord and to get to know the rest of the community!

0
0
0.000