Kann man den Private mit dem Public Key vertauschen?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Ja das ist möglich und für moderne Kryptosysteme auch essentiell. Verschlüsselung mit einem öffentlichen Schlüssel stellt nur sicher, dass nur der gewünschte Empfänger die Nachricht lesen kann, gibt dem Empfänger jedoch keine Angabe über die Herkunft der Nachricht. Durch Verschlüsselung mit dem privaten Schlüssel ist das möglich, weshalb man das auch Signatur nennt.

Solch eine Signatur ist zum Beispiel für SSL/TLS relevant, da so die Zertifikate von Zertifizierungsstellen signiert werden.


IBAxhascox 
Beitragsersteller
 22.09.2018, 23:42

Also ist Signieren = Verschlüsseln (mit dem Private Key)? Ist das Signieren nicht etwas (wenig) anderes?

KarlRanseierIII  22.09.2018, 23:50
@IBAxhascox

Na,meist willst Du ja nicht die Datenmenge doppelt schicken, von daher nutzt Du eine Einwegfunktionfunktion, deren Ergebnis Du mit dem privaten Schlüssel verschlüsselst (signierst).

Der Empfänger kann dann den Fingerabdruck entschlüsseln und schauen, ob der Text den gleichen Abdruck liefert.

Ich habe die Darstellung bewußt einfach gehalten.

IBAxhascox 
Beitragsersteller
 25.09.2018, 00:26
@FireEraser

Frage: Ich generiere mir ein Schlüsselpaar, also zuerst einen private Key, und von diesem leite ich einen public Key her.

Wenn ich nun den hergeleiteten public Key als private Key benutzte, also geheim halte, und den private Key als public Key missbrauche, also die beiden Schlüssel einfach von Anfang an vertausche,

besteht dann die Gefahr, dass ein Angreiffer vom veröffentlichten Schlüssel meinen geheimen Schlüssel herleitet, genau so wie ich es bei der Key-Pair Generierung gemacht habe?

FireEraser  25.09.2018, 06:35
@IBAxhascox

Um den jeweils anderen Verschlüsselungsexponenten mit dem erweiterten euklidischen Algorithmus zu berechnen benötigt man den Totient des RSA-Moduls, welcher aber nur in absehbarer errechenbar ist, wenn man die Primfaktoren kennt, aus welchen das RSA-Modul berechnet wurde. Diese sind aber nach der Schlüsselerstellung nicht mehr vorhanden.

Wie du die Reihenfolge beschrieben hast, ist sie eigentlich falsch herum. Man beginnt mit dem öffentlichen Exponent und berechnet dann den privaten Exponent. Du solltest die Funktion der Schlüssel aber trotzdem nicht tauschen, da der öffentliche Exponent meist nicht zufällig gewählt wird.

Ja, vom Grundprinzip her sind beide Schlüssel in ihrer Funktion untereinander tauschbar. Welcher auf DAUER welche der Rollen übernimmt, ist reine Festlegungssache und natürlich können die Rollen nach einmaliger Festlegung nicht mehr gewechselt werden, denn Du hast den öffentlichen Schlüssel ja in der Regel veröffentlicht.

Woher ich das weiß:Studium / Ausbildung

KuekenShredder  22.09.2018, 23:27
Ja, vom Grunzprinzip her sind beide Schlüssel in ihrer Funktion untereinander tauschbar.

Wie bei den Schweinen. :)

IBAxhascox 
Beitragsersteller
 25.09.2018, 00:26
@KarlRanseierIII

Frage: Ich generiere mir ein Schlüsselpaar, also zuerst einen private Key, und von diesem leite ich einen public Key her.

Wenn ich nun den hergeleiteten public Key als private Key benutzte, also geheim halte, und den private Key als public Key missbrauche, also die beiden Schlüssel einfach von Anfang an vertausche,

besteht dann die Gefahr, dass ein Angreiffer vom veröffentlichten Schlüssel meinen geheimen Schlüssel herleitet, genau so wie ich es bei der Key-Pair Generierung gemacht habe?

KarlRanseierIII  25.09.2018, 00:33
@IBAxhascox

Du kannst weder aus dem privaten Schlüssel den öffentlichen ableiten, noch umgekehrt, es sei denn, Du kennst deren Produkt, dann wird es ja trivial.

Der public Key wird auch nicht aus dem private Key abgeleitet, sie werden unabhängig voneinander generiert.

So funktioniert das nicht. Bei antisymmetrischen Verschlüsselungsverfahren kann der public key nur verschlüsseln und der der private key nur entschlüsseln. Das macht doch sonst keinen Sinn, wenn du mit deinem private key etwas verschlüsselst, aber der public key so wie der name schon sagt öffentlich zugänglich ist. Dann braucht man auch keine Verschlüsselung.

Vielleicht meinst du ja signieren? Du kannst mit einem private key etwas signieren und mit einem public key verifizieren.


FireEraser  22.09.2018, 23:42

Mit dem privaten Schlüssel zu verschlüsseln ist signieren, da besteht kein Unterschied.

KuekenShredder  22.09.2018, 23:25

Das, was du schreibst, ist falsch!

Es ist zwar unüblich mit dem Public-Key zu verschlüsseln und mit dem Privaten zu entschlüsseln, aber dafür gibt es tatsächlich sehr gute Anwendungsfälle.

Nicht umsonst bieten so ziemlich alle größeren Cryptobibliotheken extra Funktionalitäten dafür an. :)

Ja, genauso funktioniert das!

Das wird oft genutzt, um eine Art von signierten und verschlüsselten Nachrichten zu erzeugen.


IBAxhascox 
Beitragsersteller
 25.09.2018, 00:27

Frage: Ich generiere mir ein Schlüsselpaar, also zuerst einen private Key, und von diesem leite ich einen public Key her.

Wenn ich nun den hergeleiteten public Key als private Key benutzte, also geheim halte, und den private Key als public Key missbrauche, also die beiden Schlüssel einfach von Anfang an vertausche,

besteht dann die Gefahr, dass ein Angreiffer vom veröffentlichten Schlüssel meinen geheimen Schlüssel herleitet, genau so wie ich es bei der Key-Pair Generierung gemacht habe?